From 750c0cab351cc331b07af3f5c064fa85055b172e Mon Sep 17 00:00:00 2001 From: louist103 <35883445+louist103@users.noreply.github.com> Date: Sun, 17 Oct 2021 07:32:09 -0400 Subject: [PATCH] Update ZAPD (#1001) * remove fake match * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "3e9ed72e2" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "3e9ed72e2" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * new extraction script and a hack to make clear tag work * fix clear tag again * remove static from clear tag DLists * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "e7a8a48cf" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "e7a8a48cf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "e243634e5" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "e243634e5" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "d0cd6b397" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "d0cd6b397" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * Update ovl_En_Clear_Tag.xml --- extract_assets.py | 4 + tools/ZAPD/.gitignore | 6 +- tools/ZAPD/.gitrepo | 4 +- tools/ZAPD/ExporterTest/CollisionExporter.cpp | 74 + tools/ZAPD/ExporterTest/CollisionExporter.h | 10 + tools/ZAPD/ExporterTest/ExporterTest.vcxproj | 159 + .../ExporterTest/ExporterTest.vcxproj.filters | 42 + tools/ZAPD/ExporterTest/Main.cpp | 79 + tools/ZAPD/ExporterTest/Makefile | 28 + tools/ZAPD/ExporterTest/RoomExporter.cpp | 372 + tools/ZAPD/ExporterTest/RoomExporter.h | 10 + tools/ZAPD/ExporterTest/TextureExporter.cpp | 14 + tools/ZAPD/ExporterTest/TextureExporter.h | 11 + tools/ZAPD/Jenkinsfile | 114 +- tools/ZAPD/Makefile | 88 +- tools/ZAPD/README.md | 9 +- tools/ZAPD/ZAPD.sln | 36 + tools/ZAPD/ZAPD/Declaration.cpp | 227 +- tools/ZAPD/ZAPD/Declaration.h | 68 +- tools/ZAPD/ZAPD/GameConfig.cpp | 184 + tools/ZAPD/ZAPD/GameConfig.h | 58 + tools/ZAPD/ZAPD/Globals.cpp | 322 +- tools/ZAPD/ZAPD/Globals.h | 83 +- tools/ZAPD/ZAPD/HighLevel/HLAnimation.h | 12 - .../HighLevel/HLAnimationIntermediette.cpp | 110 - .../ZAPD/HighLevel/HLAnimationIntermediette.h | 32 - .../ZAPD/ZAPD/HighLevel/HLFileIntermediette.h | 5 - .../ZAPD/HighLevel/HLModelIntermediette.cpp | 1185 - .../ZAPD/HighLevel/HLModelIntermediette.h | 312 - tools/ZAPD/ZAPD/HighLevel/HLTexture.cpp | 13 - tools/ZAPD/ZAPD/HighLevel/HLTexture.h | 31 - tools/ZAPD/ZAPD/ImageBackend.cpp | 19 +- tools/ZAPD/ZAPD/ImageBackend.h | 2 +- tools/ZAPD/ZAPD/Main.cpp | 304 +- .../ZAPD/OtherStructs/SkinLimbStructs.cpp | 341 + .../ZAPD/ZAPD/OtherStructs/SkinLimbStructs.h | 113 + tools/ZAPD/ZAPD/OutputFormatter.cpp | 7 +- tools/ZAPD/ZAPD/OutputFormatter.h | 5 +- tools/ZAPD/ZAPD/Overlays/ZOverlay.cpp | 305 +- tools/ZAPD/ZAPD/Overlays/ZOverlay.h | 26 +- tools/ZAPD/ZAPD/Path.h | 53 - tools/ZAPD/ZAPD/ZAPD.vcxproj | 64 +- tools/ZAPD/ZAPD/ZAPD.vcxproj.filters | 106 +- tools/ZAPD/ZAPD/ZAnimation.cpp | 327 +- tools/ZAPD/ZAPD/ZAnimation.h | 43 +- tools/ZAPD/ZAPD/ZArray.cpp | 69 +- tools/ZAPD/ZAPD/ZArray.h | 7 +- tools/ZAPD/ZAPD/ZBackground.cpp | 77 +- tools/ZAPD/ZAPD/ZBackground.h | 25 +- tools/ZAPD/ZAPD/ZBlob.cpp | 59 +- tools/ZAPD/ZAPD/ZBlob.h | 7 +- tools/ZAPD/ZAPD/ZCollision.cpp | 178 +- tools/ZAPD/ZAPD/ZCollision.h | 26 +- tools/ZAPD/ZAPD/ZCutscene.cpp | 157 +- tools/ZAPD/ZAPD/ZCutscene.h | 21 +- tools/ZAPD/ZAPD/ZCutsceneMM.cpp | 43 +- tools/ZAPD/ZAPD/ZCutsceneMM.h | 10 +- tools/ZAPD/ZAPD/ZDisplayList.cpp | 597 +- tools/ZAPD/ZAPD/ZDisplayList.h | 45 +- tools/ZAPD/ZAPD/ZFile.cpp | 1255 +- tools/ZAPD/ZAPD/ZFile.h | 103 +- tools/ZAPD/ZAPD/ZLimb.cpp | 647 +- tools/ZAPD/ZAPD/ZLimb.h | 129 +- tools/ZAPD/ZAPD/ZMtx.cpp | 55 +- tools/ZAPD/ZAPD/ZMtx.h | 13 +- tools/ZAPD/ZAPD/ZPath.cpp | 76 +- tools/ZAPD/ZAPD/ZPath.h | 10 +- tools/ZAPD/ZAPD/ZPlayerAnimationData.cpp | 97 + tools/ZAPD/ZAPD/ZPlayerAnimationData.h | 28 + tools/ZAPD/ZAPD/ZResource.cpp | 146 +- tools/ZAPD/ZAPD/ZResource.h | 146 +- .../ZRoom/Commands/SetActorCutsceneList.cpp | 18 +- .../ZRoom/Commands/SetActorCutsceneList.h | 4 +- .../ZAPD/ZAPD/ZRoom/Commands/SetActorList.cpp | 122 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.h | 31 +- .../ZRoom/Commands/SetAlternateHeaders.cpp | 47 +- .../ZAPD/ZRoom/Commands/SetAlternateHeaders.h | 3 +- .../Commands/SetAnimatedMaterialList.cpp | 397 +- .../ZRoom/Commands/SetAnimatedMaterialList.h | 102 +- .../ZAPD/ZRoom/Commands/SetCameraSettings.cpp | 4 +- .../ZAPD/ZRoom/Commands/SetCameraSettings.h | 5 +- .../ZRoom/Commands/SetCollisionHeader.cpp | 17 +- .../ZAPD/ZRoom/Commands/SetCollisionHeader.h | 7 +- .../ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.cpp | 37 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.h | 8 +- .../ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.cpp | 35 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.h | 10 +- .../ZAPD/ZRoom/Commands/SetEchoSettings.cpp | 2 +- .../ZAPD/ZRoom/Commands/SetEchoSettings.h | 5 +- .../ZAPD/ZRoom/Commands/SetEntranceList.cpp | 34 +- .../ZAPD/ZRoom/Commands/SetEntranceList.h | 12 +- .../ZAPD/ZAPD/ZRoom/Commands/SetExitList.cpp | 28 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.h | 5 +- .../ZAPD/ZAPD/ZRoom/Commands/SetLightList.cpp | 15 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.h | 7 +- .../ZRoom/Commands/SetLightingSettings.cpp | 16 +- .../ZAPD/ZRoom/Commands/SetLightingSettings.h | 18 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.cpp | 350 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.h | 136 +- .../ZAPD/ZRoom/Commands/SetMinimapChests.cpp | 16 +- .../ZAPD/ZRoom/Commands/SetMinimapChests.h | 6 +- .../ZAPD/ZRoom/Commands/SetMinimapList.cpp | 17 +- .../ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.h | 5 +- .../ZAPD/ZRoom/Commands/SetObjectList.cpp | 19 +- .../ZAPD/ZAPD/ZRoom/Commands/SetObjectList.h | 8 +- .../ZAPD/ZAPD/ZRoom/Commands/SetPathways.cpp | 29 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.h | 8 +- .../ZAPD/ZRoom/Commands/SetRoomBehavior.cpp | 5 +- .../ZAPD/ZRoom/Commands/SetRoomBehavior.h | 19 +- .../ZAPD/ZAPD/ZRoom/Commands/SetRoomList.cpp | 114 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.h | 37 +- .../ZAPD/ZRoom/Commands/SetSkyboxModifier.cpp | 2 +- .../ZAPD/ZRoom/Commands/SetSkyboxModifier.h | 7 +- .../ZAPD/ZRoom/Commands/SetSkyboxSettings.cpp | 2 +- .../ZAPD/ZRoom/Commands/SetSkyboxSettings.h | 11 +- .../ZAPD/ZRoom/Commands/SetSoundSettings.cpp | 2 +- .../ZAPD/ZRoom/Commands/SetSoundSettings.h | 9 +- .../ZAPD/ZRoom/Commands/SetSpecialObjects.cpp | 4 +- .../ZAPD/ZRoom/Commands/SetSpecialObjects.h | 7 +- .../ZRoom/Commands/SetStartPositionList.cpp | 13 +- .../ZRoom/Commands/SetStartPositionList.h | 5 +- .../ZAPD/ZRoom/Commands/SetTimeSettings.cpp | 4 +- .../ZAPD/ZRoom/Commands/SetTimeSettings.h | 9 +- .../ZRoom/Commands/SetTransitionActorList.cpp | 20 +- .../ZRoom/Commands/SetTransitionActorList.h | 15 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.cpp | 2 +- tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.h | 11 +- .../ZRoom/Commands/SetWorldMapVisited.cpp | 2 +- tools/ZAPD/ZAPD/ZRoom/Commands/Unused09.cpp | 6 +- tools/ZAPD/ZAPD/ZRoom/Commands/Unused1D.cpp | 4 +- .../ZAPD/ZRoom/Commands/ZRoomCommandUnk.cpp | 4 +- tools/ZAPD/ZAPD/ZRoom/ZNames.h | 4 +- tools/ZAPD/ZAPD/ZRoom/ZRoom.cpp | 332 +- tools/ZAPD/ZAPD/ZRoom/ZRoom.h | 43 +- tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.cpp | 38 +- tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.h | 12 +- tools/ZAPD/ZAPD/ZScalar.cpp | 40 +- tools/ZAPD/ZAPD/ZScalar.h | 12 +- tools/ZAPD/ZAPD/ZSkeleton.cpp | 135 +- tools/ZAPD/ZAPD/ZSkeleton.h | 18 +- tools/ZAPD/ZAPD/ZString.cpp | 28 +- tools/ZAPD/ZAPD/ZString.h | 5 +- tools/ZAPD/ZAPD/ZSymbol.cpp | 25 +- tools/ZAPD/ZAPD/ZSymbol.h | 4 +- tools/ZAPD/ZAPD/ZTexture.cpp | 114 +- tools/ZAPD/ZAPD/ZTexture.h | 18 +- tools/ZAPD/ZAPD/ZTextureAnimation.cpp | 702 + tools/ZAPD/ZAPD/ZTextureAnimation.h | 151 + tools/ZAPD/ZAPD/ZVector.cpp | 63 +- tools/ZAPD/ZAPD/ZVector.h | 16 +- tools/ZAPD/ZAPD/ZVtx.cpp | 32 +- tools/ZAPD/ZAPD/ZVtx.h | 8 +- tools/ZAPD/ZAPD/genbuildinfo.py | 6 +- tools/ZAPD/ZAPD/packages.config | 8 + tools/ZAPD/ZAPDUtils/Color3b.h | 21 + tools/ZAPD/ZAPDUtils/Makefile | 28 + tools/ZAPD/ZAPDUtils/StrHash.h | 51 + tools/ZAPD/ZAPDUtils/Utils/BinaryReader.cpp | 148 + tools/ZAPD/ZAPDUtils/Utils/BinaryReader.h | 43 + tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.cpp | 95 + tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.h | 35 + .../{ZAPD => ZAPDUtils/Utils}/BitConverter.h | 6 +- .../{ZAPD => ZAPDUtils/Utils}/Directory.h | 2 +- tools/ZAPD/{ZAPD => ZAPDUtils/Utils}/File.h | 14 +- tools/ZAPD/ZAPDUtils/Utils/MemoryStream.cpp | 96 + tools/ZAPD/ZAPDUtils/Utils/MemoryStream.h | 33 + tools/ZAPD/ZAPDUtils/Utils/Path.h | 50 + tools/ZAPD/ZAPDUtils/Utils/Stream.h | 41 + .../{ZAPD => ZAPDUtils/Utils}/StringHelper.h | 6 +- tools/ZAPD/ZAPDUtils/Vec2f.h | 19 + tools/ZAPD/ZAPDUtils/Vec3f.h | 21 + tools/ZAPD/{ZAPD => ZAPDUtils}/Vec3s.h | 0 tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj | 165 + .../ZAPD/ZAPDUtils/ZAPDUtils.vcxproj.filters | 78 + tools/ZAPD/copycheck.py | 2 + .../docs/zapd_extraction_xml_reference.md | 111 +- tools/ZAPD/docs/zapd_xml_spec.md | 55 + .../ZAPD/lib/assimp-built/assimp-vc142-mt.dll | Bin 5542400 -> 0 bytes .../ZAPD/lib/assimp-built/assimp-vc142-mt.lib | Bin 374310 -> 0 bytes .../lib/assimp/include/assimp/.editorconfig | 8 - .../lib/assimp/include/assimp/BaseImporter.h | 418 - tools/ZAPD/lib/assimp/include/assimp/Bitmap.h | 125 - .../lib/assimp/include/assimp/BlobIOSystem.h | 338 - .../lib/assimp/include/assimp/ByteSwapper.h | 287 - .../assimp/include/assimp/Compiler/poppack1.h | 22 - .../assimp/include/assimp/Compiler/pstdint.h | 912 - .../include/assimp/Compiler/pushpack1.h | 43 - .../assimp/include/assimp/CreateAnimMesh.h | 58 - .../assimp/include/assimp/DefaultIOStream.h | 140 - .../assimp/include/assimp/DefaultIOSystem.h | 93 - .../assimp/include/assimp/DefaultLogger.hpp | 188 - .../ZAPD/lib/assimp/include/assimp/Defines.h | 49 - .../lib/assimp/include/assimp/Exceptional.h | 125 - .../lib/assimp/include/assimp/Exporter.hpp | 505 - .../assimp/include/assimp/GenericProperty.h | 133 - tools/ZAPD/lib/assimp/include/assimp/Hash.h | 118 - .../lib/assimp/include/assimp/IOStream.hpp | 142 - .../assimp/include/assimp/IOStreamBuffer.h | 355 - .../lib/assimp/include/assimp/IOSystem.hpp | 357 - .../lib/assimp/include/assimp/Importer.hpp | 659 - .../lib/assimp/include/assimp/LineSplitter.h | 285 - tools/ZAPD/lib/assimp/include/assimp/LogAux.h | 131 - .../lib/assimp/include/assimp/LogStream.hpp | 111 - .../ZAPD/lib/assimp/include/assimp/Logger.hpp | 305 - tools/ZAPD/lib/assimp/include/assimp/Macros.h | 49 - .../lib/assimp/include/assimp/MathFunctions.h | 86 - .../assimp/include/assimp/MemoryIOWrapper.h | 244 - .../lib/assimp/include/assimp/NullLogger.hpp | 99 - .../lib/assimp/include/assimp/ParsingUtils.h | 259 - .../ZAPD/lib/assimp/include/assimp/Profiler.h | 99 - .../assimp/include/assimp/ProgressHandler.hpp | 145 - .../assimp/include/assimp/RemoveComments.h | 91 - .../lib/assimp/include/assimp/SGSpatialSort.h | 150 - .../lib/assimp/include/assimp/SceneCombiner.h | 403 - .../include/assimp/SkeletonMeshBuilder.h | 125 - .../assimp/include/assimp/SmoothingGroups.h | 108 - .../assimp/include/assimp/SmoothingGroups.inl | 138 - .../lib/assimp/include/assimp/SpatialSort.h | 174 - .../assimp/include/assimp/StandardShapes.h | 200 - .../lib/assimp/include/assimp/StreamReader.h | 343 - .../lib/assimp/include/assimp/StreamWriter.h | 303 - .../assimp/include/assimp/StringComparison.h | 233 - .../lib/assimp/include/assimp/StringUtils.h | 143 - .../lib/assimp/include/assimp/Subdivision.h | 131 - .../lib/assimp/include/assimp/TinyFormatter.h | 166 - tools/ZAPD/lib/assimp/include/assimp/Vertex.h | 348 - .../ZAPD/lib/assimp/include/assimp/XMLTools.h | 83 - .../include/assimp/ZipArchiveIOSystem.h | 87 - tools/ZAPD/lib/assimp/include/assimp/aabb.h | 76 - .../lib/assimp/include/assimp/ai_assert.h | 57 - tools/ZAPD/lib/assimp/include/assimp/anim.h | 577 - tools/ZAPD/lib/assimp/include/assimp/camera.h | 221 - .../ZAPD/lib/assimp/include/assimp/cexport.h | 261 - .../ZAPD/lib/assimp/include/assimp/cfileio.h | 138 - .../ZAPD/lib/assimp/include/assimp/cimport.h | 565 - tools/ZAPD/lib/assimp/include/assimp/color4.h | 104 - .../ZAPD/lib/assimp/include/assimp/color4.inl | 209 - tools/ZAPD/lib/assimp/include/assimp/config.h | 1018 - .../lib/assimp/include/assimp/config.h.in | 1018 - tools/ZAPD/lib/assimp/include/assimp/defs.h | 310 - .../lib/assimp/include/assimp/fast_atof.h | 373 - .../lib/assimp/include/assimp/importerdesc.h | 146 - .../lib/assimp/include/assimp/irrXMLWrapper.h | 149 - tools/ZAPD/lib/assimp/include/assimp/light.h | 259 - .../ZAPD/lib/assimp/include/assimp/material.h | 1600 -- .../lib/assimp/include/assimp/material.inl | 390 - .../lib/assimp/include/assimp/matrix3x3.h | 183 - .../lib/assimp/include/assimp/matrix3x3.inl | 357 - .../lib/assimp/include/assimp/matrix4x4.h | 280 - .../lib/assimp/include/assimp/matrix4x4.inl | 685 - tools/ZAPD/lib/assimp/include/assimp/mesh.h | 859 - .../ZAPD/lib/assimp/include/assimp/metadata.h | 380 - .../lib/assimp/include/assimp/pbrmaterial.h | 77 - .../port/AndroidJNI/AndroidJNIIOSystem.h | 92 - .../lib/assimp/include/assimp/postprocess.h | 684 - tools/ZAPD/lib/assimp/include/assimp/qnan.h | 165 - .../lib/assimp/include/assimp/quaternion.h | 130 - .../lib/assimp/include/assimp/quaternion.inl | 286 - tools/ZAPD/lib/assimp/include/assimp/scene.h | 425 - .../ZAPD/lib/assimp/include/assimp/texture.h | 227 - tools/ZAPD/lib/assimp/include/assimp/types.h | 541 - .../ZAPD/lib/assimp/include/assimp/vector2.h | 107 - .../lib/assimp/include/assimp/vector2.inl | 244 - .../ZAPD/lib/assimp/include/assimp/vector3.h | 146 - .../lib/assimp/include/assimp/vector3.inl | 309 - .../ZAPD/lib/assimp/include/assimp/version.h | 115 - tools/ZAPD/lib/json/include/nlohmann/json.hpp | 20406 ---------------- tools/ZAPD/lib/libgfxd/.gitrepo | 6 +- tools/ZAPD/lib/libgfxd/gbi.h | 26 +- tools/ZAPD/lib/libgfxd/uc_argtbl.c | 5 - tools/ZAPD/lib/libgfxd/uc_macrofn.c | 26 +- tools/ZAPD/lib/tinygltf/tiny_gltf.h | 7584 ------ 272 files changed, 7790 insertions(+), 58414 deletions(-) create mode 100644 tools/ZAPD/ExporterTest/CollisionExporter.cpp create mode 100644 tools/ZAPD/ExporterTest/CollisionExporter.h create mode 100644 tools/ZAPD/ExporterTest/ExporterTest.vcxproj create mode 100644 tools/ZAPD/ExporterTest/ExporterTest.vcxproj.filters create mode 100644 tools/ZAPD/ExporterTest/Main.cpp create mode 100644 tools/ZAPD/ExporterTest/Makefile create mode 100644 tools/ZAPD/ExporterTest/RoomExporter.cpp create mode 100644 tools/ZAPD/ExporterTest/RoomExporter.h create mode 100644 tools/ZAPD/ExporterTest/TextureExporter.cpp create mode 100644 tools/ZAPD/ExporterTest/TextureExporter.h create mode 100644 tools/ZAPD/ZAPD/GameConfig.cpp create mode 100644 tools/ZAPD/ZAPD/GameConfig.h delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLAnimation.h delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.cpp delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.h delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLFileIntermediette.h delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.cpp delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.h delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLTexture.cpp delete mode 100644 tools/ZAPD/ZAPD/HighLevel/HLTexture.h create mode 100644 tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.cpp create mode 100644 tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.h delete mode 100644 tools/ZAPD/ZAPD/Path.h create mode 100644 tools/ZAPD/ZAPD/ZPlayerAnimationData.cpp create mode 100644 tools/ZAPD/ZAPD/ZPlayerAnimationData.h create mode 100644 tools/ZAPD/ZAPD/ZTextureAnimation.cpp create mode 100644 tools/ZAPD/ZAPD/ZTextureAnimation.h create mode 100644 tools/ZAPD/ZAPD/packages.config create mode 100644 tools/ZAPD/ZAPDUtils/Color3b.h create mode 100644 tools/ZAPD/ZAPDUtils/Makefile create mode 100644 tools/ZAPD/ZAPDUtils/StrHash.h create mode 100644 tools/ZAPD/ZAPDUtils/Utils/BinaryReader.cpp create mode 100644 tools/ZAPD/ZAPDUtils/Utils/BinaryReader.h create mode 100644 tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.cpp create mode 100644 tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.h rename tools/ZAPD/{ZAPD => ZAPDUtils/Utils}/BitConverter.h (96%) rename tools/ZAPD/{ZAPD => ZAPDUtils/Utils}/Directory.h (96%) rename tools/ZAPD/{ZAPD => ZAPDUtils/Utils}/File.h (80%) create mode 100644 tools/ZAPD/ZAPDUtils/Utils/MemoryStream.cpp create mode 100644 tools/ZAPD/ZAPDUtils/Utils/MemoryStream.h create mode 100644 tools/ZAPD/ZAPDUtils/Utils/Path.h create mode 100644 tools/ZAPD/ZAPDUtils/Utils/Stream.h rename tools/ZAPD/{ZAPD => ZAPDUtils/Utils}/StringHelper.h (97%) create mode 100644 tools/ZAPD/ZAPDUtils/Vec2f.h create mode 100644 tools/ZAPD/ZAPDUtils/Vec3f.h rename tools/ZAPD/{ZAPD => ZAPDUtils}/Vec3s.h (100%) create mode 100644 tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj create mode 100644 tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj.filters create mode 100644 tools/ZAPD/docs/zapd_xml_spec.md delete mode 100644 tools/ZAPD/lib/assimp-built/assimp-vc142-mt.dll delete mode 100644 tools/ZAPD/lib/assimp-built/assimp-vc142-mt.lib delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/.editorconfig delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/BaseImporter.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Bitmap.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/BlobIOSystem.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/ByteSwapper.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Compiler/poppack1.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Compiler/pstdint.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Compiler/pushpack1.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/CreateAnimMesh.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/DefaultIOStream.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/DefaultIOSystem.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/DefaultLogger.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Defines.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Exceptional.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Exporter.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/GenericProperty.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Hash.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/IOStream.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/IOStreamBuffer.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/IOSystem.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Importer.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/LineSplitter.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/LogAux.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/LogStream.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Logger.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Macros.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/MathFunctions.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/MemoryIOWrapper.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/NullLogger.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/ParsingUtils.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Profiler.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/ProgressHandler.hpp delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/RemoveComments.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SGSpatialSort.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SceneCombiner.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SkeletonMeshBuilder.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/SpatialSort.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/StandardShapes.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/StreamReader.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/StreamWriter.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/StringComparison.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/StringUtils.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Subdivision.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/TinyFormatter.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/Vertex.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/XMLTools.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/ZipArchiveIOSystem.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/aabb.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/ai_assert.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/anim.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/camera.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/cexport.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/cfileio.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/cimport.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/color4.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/color4.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/config.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/config.h.in delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/defs.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/fast_atof.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/importerdesc.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/irrXMLWrapper.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/light.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/material.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/material.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/matrix3x3.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/matrix3x3.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/matrix4x4.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/matrix4x4.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/mesh.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/metadata.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/pbrmaterial.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/postprocess.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/qnan.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/quaternion.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/quaternion.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/scene.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/texture.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/types.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/vector2.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/vector2.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/vector3.h delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/vector3.inl delete mode 100644 tools/ZAPD/lib/assimp/include/assimp/version.h delete mode 100644 tools/ZAPD/lib/json/include/nlohmann/json.hpp delete mode 100644 tools/ZAPD/lib/tinygltf/tiny_gltf.h diff --git a/extract_assets.py b/extract_assets.py index 7f02be04ca..6a7afd1e37 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -20,6 +20,10 @@ def ExtractFile(xmlPath, outputPath, outputSourcePath): return execStr = "tools/ZAPD/ZAPD.out e -eh -i %s -b baserom/ -o %s -osf %s -gsf 1 -rconf tools/ZAPDConfigs/MqDbg/Config.xml" % (xmlPath, outputPath, outputSourcePath) + + if "overlays" in xmlPath: + execStr += " --static" + if globalUnaccounted: execStr += " -wu" diff --git a/tools/ZAPD/.gitignore b/tools/ZAPD/.gitignore index 4a9671810a..68c502e36a 100644 --- a/tools/ZAPD/.gitignore +++ b/tools/ZAPD/.gitignore @@ -333,5 +333,9 @@ ASALocalRun/ *.o *.d lib/libgfxd/libgfxd.a +ExporterTest/ExporterTest.a +ZAPDUtils/ZAPDUtils.a .vscode/ -ZAPD/BuildInfo.h \ No newline at end of file +build/ +ZAPDUtils/build/ +ZAPD/BuildInfo.h diff --git a/tools/ZAPD/.gitrepo b/tools/ZAPD/.gitrepo index 73ce262034..1034fcf320 100644 --- a/tools/ZAPD/.gitrepo +++ b/tools/ZAPD/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/zeldaret/ZAPD.git branch = master - commit = 6be9af65d39a1608ef854efbaf0bf9399aac5da1 - parent = 913b88b160c735d81f2d4f1d14717de8c7ba8dee + commit = d0cd6b3974706fc4d89c9b6545b8c17dd424b664 + parent = c0e02913038e871221b2fcfc8be65b8dc281aa4a method = merge cmdver = 0.4.3 diff --git a/tools/ZAPD/ExporterTest/CollisionExporter.cpp b/tools/ZAPD/ExporterTest/CollisionExporter.cpp new file mode 100644 index 0000000000..e00f5c1b0b --- /dev/null +++ b/tools/ZAPD/ExporterTest/CollisionExporter.cpp @@ -0,0 +1,74 @@ +#include "CollisionExporter.h" + +void ExporterExample_Collision::Save(ZResource* res, [[maybe_unused]] fs::path outPath, + BinaryWriter* writer) +{ + ZCollisionHeader* col = (ZCollisionHeader*)res; + + writer->Write(col->absMinX); + writer->Write(col->absMinY); + writer->Write(col->absMinZ); + + writer->Write(col->absMaxX); + writer->Write(col->absMaxY); + writer->Write(col->absMaxZ); + + writer->Write(col->numVerts); + writer->Write(col->vtxAddress); + + writer->Write(col->numPolygons); + writer->Write(col->polyAddress); + writer->Write(col->polyTypeDefAddress); + writer->Write(col->camDataAddress); + + writer->Write(col->numWaterBoxes); + writer->Write(col->waterBoxAddress); + + writer->Write(col->vtxSegmentOffset); + writer->Write(col->polySegmentOffset); + writer->Write(col->polyTypeDefSegmentOffset); + writer->Write(col->camDataSegmentOffset); + writer->Write(col->waterBoxSegmentOffset); + + uint32_t oldOffset = writer->GetBaseAddress(); + + writer->Seek(col->vtxSegmentOffset, SeekOffsetType::Start); + + for (uint16_t i = 0; i < col->vertices.size(); i++) + { + for (uint32_t j = 0; j < col->vertices[i].dimensions; j++) + { + writer->Write(col->vertices[i].scalars[j].scalarData.s16); + } + } + + writer->Seek(col->polySegmentOffset, SeekOffsetType::Start); + + for (uint16_t i = 0; i < col->polygons.size(); i++) + { + writer->Write(col->polygons[i].type); + writer->Write(col->polygons[i].vtxA); + writer->Write(col->polygons[i].vtxB); + writer->Write(col->polygons[i].vtxC); + writer->Write(col->polygons[i].a); + writer->Write(col->polygons[i].b); + writer->Write(col->polygons[i].c); + writer->Write(col->polygons[i].d); + } + + writer->Seek(col->polyTypeDefSegmentOffset, SeekOffsetType::Start); + + for (uint16_t i = 0; i < col->polygonTypes.size(); i++) + writer->Write(col->polygonTypes[i]); + + writer->Seek(col->camDataSegmentOffset, SeekOffsetType::Start); + + for (auto entry : col->camData->entries) + { + writer->Write(entry->cameraSType); + writer->Write(entry->numData); + writer->Write(entry->cameraPosDataSeg); + } + + writer->Seek(oldOffset, SeekOffsetType::Start); +} diff --git a/tools/ZAPD/ExporterTest/CollisionExporter.h b/tools/ZAPD/ExporterTest/CollisionExporter.h new file mode 100644 index 0000000000..5f48e6557e --- /dev/null +++ b/tools/ZAPD/ExporterTest/CollisionExporter.h @@ -0,0 +1,10 @@ +#pragma once + +#include "ZCollision.h" +#include "ZResource.h" + +class ExporterExample_Collision : public ZResourceExporter +{ +public: + void Save(ZResource* res, fs::path outPath, BinaryWriter* writer) override; +}; \ No newline at end of file diff --git a/tools/ZAPD/ExporterTest/ExporterTest.vcxproj b/tools/ZAPD/ExporterTest/ExporterTest.vcxproj new file mode 100644 index 0000000000..a709a35091 --- /dev/null +++ b/tools/ZAPD/ExporterTest/ExporterTest.vcxproj @@ -0,0 +1,159 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {65608eb0-1a47-45ad-ab66-192fb64c762c} + ExporterTest + 10.0 + ExporterExample + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + StaticLibrary + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + $(SolutionDir)\ZAPD\;$(SolutionDir)ZAPDUtils;$(SolutionDir)lib\tinyxml2;$(SolutionDir)lib\libgfxd;$(SolutionDir)lib\elfio;$(SolutionDir)lib\stb;$(ProjectDir);$(IncludePath) + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + stdcpp17 + stdc11 + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + + diff --git a/tools/ZAPD/ExporterTest/ExporterTest.vcxproj.filters b/tools/ZAPD/ExporterTest/ExporterTest.vcxproj.filters new file mode 100644 index 0000000000..166f563a17 --- /dev/null +++ b/tools/ZAPD/ExporterTest/ExporterTest.vcxproj.filters @@ -0,0 +1,42 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/tools/ZAPD/ExporterTest/Main.cpp b/tools/ZAPD/ExporterTest/Main.cpp new file mode 100644 index 0000000000..732dcedc2f --- /dev/null +++ b/tools/ZAPD/ExporterTest/Main.cpp @@ -0,0 +1,79 @@ +#include +#include +#include +#include + +enum class ExporterFileMode +{ + ModeExample1 = (int)ZFileMode::Custom + 1, + ModeExample2 = (int)ZFileMode::Custom + 2, + ModeExample3 = (int)ZFileMode::Custom + 3, +}; + +static void ExporterParseFileMode(const std::string& buildMode, ZFileMode& fileMode) +{ + if (buildMode == "me1") + fileMode = (ZFileMode)ExporterFileMode::ModeExample1; + else if (buildMode == "me2") + fileMode = (ZFileMode)ExporterFileMode::ModeExample2; + else if (buildMode == "me3") + fileMode = (ZFileMode)ExporterFileMode::ModeExample3; +} + +static void ExporterParseArgs([[maybe_unused]] int argc, char* argv[], int& i) +{ + std::string arg = argv[i]; + + if (arg == "--do-x") + { + } + else if (arg == "--do-y") + { + } +} + +static bool ExporterProcessFileMode(ZFileMode fileMode) +{ + // Do whatever work is associated with these custom file modes... + // Return true to indicate one of our own file modes is being processed + if (fileMode == (ZFileMode)ExporterFileMode::ModeExample1) + return true; + else if (fileMode == (ZFileMode)ExporterFileMode::ModeExample2) + return true; + else if (fileMode == (ZFileMode)ExporterFileMode::ModeExample3) + return true; + + return false; +} + +static void ExporterFileBegin(ZFile* file) +{ + printf("ExporterFileBegin() called on ZFile %s.\n", file->GetName().c_str()); +} + +static void ExporterFileEnd(ZFile* file) +{ + printf("ExporterFileEnd() called on ZFile %s.\n", file->GetName().c_str()); +} + +static void ImportExporters() +{ + // In this example we set up a new exporter called "EXAMPLE". + // By running ZAPD with the argument -se EXAMPLE, we tell it that we want to use this exporter + // for our resources. + ExporterSet* exporterSet = new ExporterSet(); + exporterSet->processFileModeFunc = ExporterProcessFileMode; + exporterSet->parseFileModeFunc = ExporterParseFileMode; + exporterSet->parseArgsFunc = ExporterParseArgs; + exporterSet->beginFileFunc = ExporterFileBegin; + exporterSet->endFileFunc = ExporterFileEnd; + exporterSet->exporters[ZResourceType::Texture] = new ExporterExample_Texture(); + exporterSet->exporters[ZResourceType::Room] = new ExporterExample_Room(); + exporterSet->exporters[ZResourceType::CollisionHeader] = new ExporterExample_Collision(); + + Globals::AddExporter("EXAMPLE", exporterSet); +} + +// When ZAPD starts up, it will automatically call the below function, which in turn sets up our +// exporters. +REGISTER_EXPORTER(ImportExporters) \ No newline at end of file diff --git a/tools/ZAPD/ExporterTest/Makefile b/tools/ZAPD/ExporterTest/Makefile new file mode 100644 index 0000000000..a2bfa9a814 --- /dev/null +++ b/tools/ZAPD/ExporterTest/Makefile @@ -0,0 +1,28 @@ +# Only used for standalone compilation, usually inherits these from the main makefile +CXXFLAGS ?= -Wall -Wextra -O2 -g -std=c++17 + +SRC_DIRS := $(shell find -type d -not -path "*build*") +CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) +H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h)) + +O_FILES := $(foreach f,$(CPP_FILES:.cpp=.o),build/$f) +LIB := ExporterTest.a + +# create build directories +$(shell mkdir -p $(foreach dir,$(SRC_DIRS),build/$(dir))) + +all: $(LIB) + +clean: + rm -rf build $(LIB) + +format: + clang-format-11 -i $(CPP_FILES) $(H_FILES) + +.PHONY: all clean format + +build/%.o: %.cpp + $(CXX) $(CXXFLAGS) $(OPTFLAGS) -I ./ -I ../ZAPD -I ../ZAPDUtils -I ../lib/tinyxml2 -c $(OUTPUT_OPTION) $< + +$(LIB): $(O_FILES) + $(AR) rcs $@ $^ diff --git a/tools/ZAPD/ExporterTest/RoomExporter.cpp b/tools/ZAPD/ExporterTest/RoomExporter.cpp new file mode 100644 index 0000000000..c4a6844fb5 --- /dev/null +++ b/tools/ZAPD/ExporterTest/RoomExporter.cpp @@ -0,0 +1,372 @@ +#include "RoomExporter.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void ExporterExample_Room::Save(ZResource* res, fs::path outPath, BinaryWriter* writer) +{ + ZRoom* room = dynamic_cast(res); + + // MemoryStream* memStream = new MemoryStream(); + // BinaryWriter* writer = new BinaryWriter(memStream); + + for (size_t i = 0; i < room->commands.size() * 8; i++) + writer->Write((uint8_t)0); + + for (size_t i = 0; i < room->commands.size(); i++) + { + ZRoomCommand* cmd = room->commands[i]; + + writer->Seek(i * 8, SeekOffsetType::Start); + + writer->Write((uint8_t)cmd->cmdID); + + switch (cmd->cmdID) + { + case RoomCommand::SetWind: + { + SetWind* cmdSetWind = (SetWind*)cmd; + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + writer->Write(cmdSetWind->windWest); // 0x04 + writer->Write(cmdSetWind->windVertical); // 0x05 + writer->Write(cmdSetWind->windSouth); // 0x06 + writer->Write(cmdSetWind->clothFlappingStrength); // 0x07 + } + break; + case RoomCommand::SetTimeSettings: + { + SetTimeSettings* cmdTime = (SetTimeSettings*)cmd; + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + writer->Write(cmdTime->hour); // 0x04 + writer->Write(cmdTime->min); // 0x05 + writer->Write(cmdTime->unk); // 0x06 + writer->Write((uint8_t)0); // 0x07 + } + break; + case RoomCommand::SetSkyboxModifier: + { + SetSkyboxModifier* cmdSkybox = (SetSkyboxModifier*)cmd; + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + writer->Write(cmdSkybox->disableSky); // 0x04 + writer->Write(cmdSkybox->disableSunMoon); // 0x05 + writer->Write((uint8_t)0); // 0x06 + writer->Write((uint8_t)0); // 0x07 + } + break; + case RoomCommand::SetEchoSettings: + { + SetEchoSettings* cmdEcho = (SetEchoSettings*)cmd; + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)0); // 0x04 + writer->Write((uint8_t)0); // 0x05 + writer->Write((uint8_t)0); // 0x06 + writer->Write((uint8_t)cmdEcho->echo); // 0x07 + } + break; + case RoomCommand::SetSoundSettings: + { + SetSoundSettings* cmdSound = (SetSoundSettings*)cmd; + + writer->Write((uint8_t)cmdSound->reverb); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)0); // 0x04 + writer->Write((uint8_t)0); // 0x05 + + writer->Write(cmdSound->nightTimeSFX); // 0x06 + writer->Write(cmdSound->musicSequence); // 0x07 + } + break; + case RoomCommand::SetSkyboxSettings: + { + SetSkyboxSettings* cmdSkybox = (SetSkyboxSettings*)cmd; + + writer->Write((uint8_t)cmdSkybox->unk1); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)cmdSkybox->skyboxNumber); // 0x04 + writer->Write((uint8_t)cmdSkybox->cloudsType); // 0x05 + writer->Write((uint8_t)cmdSkybox->isIndoors); // 0x06 + } + break; + case RoomCommand::SetRoomBehavior: + { + SetRoomBehavior* cmdRoom = (SetRoomBehavior*)cmd; + + writer->Write((uint8_t)cmdRoom->gameplayFlags); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(cmdRoom->gameplayFlags2); // 0x04 + } + break; + case RoomCommand::SetCsCamera: + { + SetCsCamera* cmdCsCam = (SetCsCamera*)cmd; + + writer->Write((uint8_t)cmdCsCam->cameras.size()); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + writer->Write(cmdCsCam->segmentOffset); // 0x04 + } + break; + case RoomCommand::SetMesh: + { + SetMesh* cmdMesh = (SetMesh*)cmd; + + int baseStreamEnd = writer->GetStream().get()->GetLength(); + + writer->Write((uint8_t)cmdMesh->data); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + writer->Write(baseStreamEnd); // 0x04 + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(baseStreamEnd, SeekOffsetType::Start); + + // TODO: NOT DONE + + writer->Write(cmdMesh->meshHeaderType); + + if (cmdMesh->meshHeaderType == 0) + { + // writer->Write(cmdMesh->) + } + else if (cmdMesh->meshHeaderType == 1) + { + } + else if (cmdMesh->meshHeaderType == 2) + { + } + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::SetCameraSettings: + { + SetCameraSettings* cmdCam = (SetCameraSettings*)cmd; + + writer->Write((uint8_t)cmdCam->cameraMovement); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(cmdCam->mapHighlight); // 0x04 + } + break; + case RoomCommand::SetLightingSettings: + { + SetLightingSettings* cmdLight = (SetLightingSettings*)cmd; + + writer->Write((uint8_t)cmdLight->settings.size()); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(cmdLight->segmentOffset); // 0x04 + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(cmdLight->segmentOffset, SeekOffsetType::Start); + + for (LightingSettings setting : cmdLight->settings) + { + writer->Write(setting.ambientClrR); + writer->Write(setting.ambientClrG); + writer->Write(setting.ambientClrB); + + writer->Write(setting.diffuseClrA_R); + writer->Write(setting.diffuseClrA_G); + writer->Write(setting.diffuseClrA_B); + + writer->Write(setting.diffuseDirA_X); + writer->Write(setting.diffuseDirA_Y); + writer->Write(setting.diffuseDirA_Z); + + writer->Write(setting.diffuseClrB_R); + writer->Write(setting.diffuseClrB_G); + writer->Write(setting.diffuseClrB_B); + + writer->Write(setting.diffuseDirB_X); + writer->Write(setting.diffuseDirB_Y); + writer->Write(setting.diffuseDirB_Z); + + writer->Write(setting.fogClrR); + writer->Write(setting.fogClrG); + writer->Write(setting.fogClrB); + + writer->Write(setting.unk); + writer->Write(setting.drawDistance); + } + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::SetRoomList: + { + SetRoomList* cmdRoom = (SetRoomList*)cmd; + + writer->Write((uint8_t)cmdRoom->romfile->rooms.size()); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + + auto baseStreamEnd = writer->GetLength(); + writer->Write(baseStreamEnd); // 0x04 + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(baseStreamEnd, SeekOffsetType::Start); + + for (const auto& entry : cmdRoom->romfile->rooms) + { + writer->Write(entry.virtualAddressStart); + writer->Write(entry.virtualAddressEnd); + } + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::SetCollisionHeader: + { + SetCollisionHeader* cmdCollHeader = (SetCollisionHeader*)cmd; + + int streamEnd = writer->GetStream().get()->GetLength(); + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(streamEnd); // 0x04 + + // TODO: NOT DONE + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(streamEnd, SeekOffsetType::Start); + + ExporterExample_Collision colExp = ExporterExample_Collision(); + + colExp.Save(cmdCollHeader->collisionHeader, outPath, writer); + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::SetEntranceList: + { + SetEntranceList* cmdEntrance = (SetEntranceList*)cmd; + + uint32_t baseStreamEnd = writer->GetStream().get()->GetLength(); + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(baseStreamEnd); // 0x04 + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(baseStreamEnd, SeekOffsetType::Start); + + for (EntranceEntry entry : cmdEntrance->entrances) + { + writer->Write((uint8_t)entry.startPositionIndex); + writer->Write((uint8_t)entry.roomToLoad); + } + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::SetSpecialObjects: + { + SetSpecialObjects* cmdSpecObj = (SetSpecialObjects*)cmd; + + writer->Write((uint8_t)cmdSpecObj->elfMessage); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)0); // 0x04 + writer->Write((uint8_t)0); // 0x05 + writer->Write((uint16_t)cmdSpecObj->globalObject); // 0x06 + } + break; + case RoomCommand::SetStartPositionList: + { + SetStartPositionList* cmdStartPos = (SetStartPositionList*)cmd; + + uint32_t baseStreamEnd = writer->GetStream().get()->GetLength(); + + writer->Write((uint8_t)cmdStartPos->actors.size()); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write(baseStreamEnd); // 0x04 + + uint32_t oldOffset = writer->GetBaseAddress(); + writer->Seek(baseStreamEnd, SeekOffsetType::Start); + + for (ActorSpawnEntry entry : cmdStartPos->actors) + { + writer->Write(entry.actorNum); + writer->Write(entry.posX); + writer->Write(entry.posY); + writer->Write(entry.posZ); + writer->Write(entry.rotX); + writer->Write(entry.rotY); + writer->Write(entry.rotZ); + writer->Write(entry.initVar); + } + + writer->Seek(oldOffset, SeekOffsetType::Start); + } + break; + case RoomCommand::EndMarker: + { + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)0); // 0x04 + writer->Write((uint8_t)0); // 0x05 + writer->Write((uint8_t)0); // 0x06 + writer->Write((uint8_t)0); // 0x07 + } + break; + default: + printf("UNIMPLEMENTED COMMAND: %i\n", (int)cmd->cmdID); + + writer->Write((uint8_t)0); // 0x01 + writer->Write((uint8_t)0); // 0x02 + writer->Write((uint8_t)0); // 0x03 + writer->Write((uint8_t)0); // 0x04 + writer->Write((uint8_t)0); // 0x05 + writer->Write((uint8_t)0); // 0x06 + writer->Write((uint8_t)0); // 0x07 + + break; + } + } + + // writer->Close(); + // File::WriteAllBytes(StringHelper::Sprintf("%s", res->GetName().c_str()), + // memStream->ToVector()); +} diff --git a/tools/ZAPD/ExporterTest/RoomExporter.h b/tools/ZAPD/ExporterTest/RoomExporter.h new file mode 100644 index 0000000000..ee531dc87b --- /dev/null +++ b/tools/ZAPD/ExporterTest/RoomExporter.h @@ -0,0 +1,10 @@ +#pragma once + +#include "ZResource.h" +#include "ZRoom/ZRoom.h" + +class ExporterExample_Room : public ZResourceExporter +{ +public: + void Save(ZResource* res, fs::path outPath, BinaryWriter* writer) override; +}; \ No newline at end of file diff --git a/tools/ZAPD/ExporterTest/TextureExporter.cpp b/tools/ZAPD/ExporterTest/TextureExporter.cpp new file mode 100644 index 0000000000..6488bed3a2 --- /dev/null +++ b/tools/ZAPD/ExporterTest/TextureExporter.cpp @@ -0,0 +1,14 @@ +#include "TextureExporter.h" +#include "../ZAPD/ZFile.h" + +void ExporterExample_Texture::Save(ZResource* res, [[maybe_unused]] fs::path outPath, + BinaryWriter* writer) +{ + ZTexture* tex = (ZTexture*)res; + + auto data = tex->parent->GetRawData(); + + for (offset_t i = tex->GetRawDataIndex(); i < tex->GetRawDataIndex() + tex->GetRawDataSize(); + i++) + writer->Write(data[i]); +} diff --git a/tools/ZAPD/ExporterTest/TextureExporter.h b/tools/ZAPD/ExporterTest/TextureExporter.h new file mode 100644 index 0000000000..ffe6001dca --- /dev/null +++ b/tools/ZAPD/ExporterTest/TextureExporter.h @@ -0,0 +1,11 @@ +#pragma once + +#include +#include "ZResource.h" +#include "ZTexture.h" + +class ExporterExample_Texture : public ZResourceExporter +{ +public: + void Save(ZResource* res, fs::path outPath, BinaryWriter* writer) override; +}; \ No newline at end of file diff --git a/tools/ZAPD/Jenkinsfile b/tools/ZAPD/Jenkinsfile index 3062c4851b..051e5f9982 100644 --- a/tools/ZAPD/Jenkinsfile +++ b/tools/ZAPD/Jenkinsfile @@ -1,70 +1,90 @@ pipeline { agent { - label "ZAPD" + label 'ZAPD' } stages { + // Non-parallel ZAPD stage stage('Build ZAPD') { steps { sh 'make -j' } } - stage('Checkout oot') { - steps { - dir('oot') { - git url: 'https://github.com/zeldaret/oot.git' - } - } - } - stage('Set up oot') { - steps { - dir('oot') { - sh 'cp /usr/local/etc/roms/baserom_oot.z64 baserom_original.z64' - // Identical to `make setup` except for copying our newer ZAPD.out into oot - sh 'git submodule update --init --recursive' - sh 'make -C tools' - sh 'cp ../ZAPD.out tools/ZAPD/' - sh 'python3 fixbaserom.py' - sh 'python3 extract_baserom.py' - sh 'python3 extract_assets.py' + // CHECKOUT THE REPOS + stage('Checkout Repos') { + parallel { + stage('Checkout oot') { + steps { + dir('oot') { + git url: 'https://github.com/zeldaret/oot.git' + } + } } - } - } - stage('Build oot') { - steps { - dir('oot') { - sh 'make -j' + + stage('Checkout mm') { + steps{ + dir('mm') { + git url: 'https://github.com/zeldaret/mm.git' + } + } } } } - stage('Checkout mm') { - steps { - dir('mm') { - git url: 'https://github.com/zeldaret/mm.git' - } - } - } - stage('Set up mm') { - steps { - dir('mm') { - sh 'cp /usr/local/etc/roms/mm.us.rev1.z64 baserom.mm.us.rev1.z64' + // SETUP THE REPOS + stage('Set up repos') { + parallel { + stage('Setup OOT') { + steps { + dir('oot') { + sh 'cp /usr/local/etc/roms/baserom_oot.z64 baserom_original.z64' - // Identical to `make setup` except for copying our newer ZAPD.out into mm - sh 'git submodule update --init --recursive' - sh 'make -C tools' - sh 'cp ../ZAPD.out tools/ZAPD/' - sh 'python3 tools/extract_rom.py baserom.mm.us.rev1.z64' - sh 'python3 extract_assets.py' + // Identical to `make setup` except for copying our newer ZAPD.out into oot + sh 'git submodule update --init --recursive' + sh 'make -C tools' + sh 'cp ../ZAPD.out tools/ZAPD/' + sh 'python3 fixbaserom.py' + sh 'python3 extract_baserom.py' + sh 'python3 extract_assets.py' + } + } + } + + stage('Setup MM') { + steps { + dir('mm') { + sh 'cp /usr/local/etc/roms/mm.us.rev1.z64 baserom.mm.us.rev1.z64' + + // Identical to `make setup` except for copying our newer ZAPD.out into mm + sh 'make -C tools' + sh 'cp ../ZAPD.out tools/ZAPD/' + sh 'python3 tools/fixbaserom.py' + sh 'python3 tools/extract_baserom.py' + sh 'python3 extract_assets.py -t 4' + } + } } } } - stage('Build mm') { - steps { - dir('mm') { - sh 'make assembly -j' - sh 'make -j' + + // BUILD THE REPOS + stage('Build repos') { + parallel { + stage('Build oot') { + steps { + dir('oot') { + sh 'make -j' + } + } + } + stage('Build mm') { + steps { + dir('mm') { + sh 'make -j disasm' + sh 'make -j all' + } + } } } } diff --git a/tools/ZAPD/Makefile b/tools/ZAPD/Makefile index afd50e0167..737b85ecf7 100644 --- a/tools/ZAPD/Makefile +++ b/tools/ZAPD/Makefile @@ -1,78 +1,118 @@ +# use variables in submakes +export OPTIMIZATION_ON ?= 1 ASAN ?= 0 DEPRECATION_ON ?= 1 DEBUG ?= 0 -CXXFLAGS ?= -COPYCHECK_ARGS ?= +COPYCHECK_ARGS ?= +LLD ?= 0 -CXX := g++ -INC := -I ZAPD -I lib/assimp/include -I lib/elfio -I lib/json/include -I lib/stb -I lib/tinygltf -I lib/libgfxd -I lib/tinyxml2 -CXXFLAGS += -fpic -std=c++17 -Wall -fno-omit-frame-pointer +# Use clang++ if available, else use g++ +ifeq ($(shell command -v clang++ >/dev/null 2>&1; echo $$?),0) + CXX := clang++ +else + CXX := g++ +endif + +INC := -I ZAPD -I lib/elfio -I lib/libgfxd -I lib/tinyxml2 -I ZAPDUtils +CXXFLAGS := -fpic -std=c++17 -Wall -Wextra -fno-omit-frame-pointer +OPTFLAGS := ifneq ($(DEBUG),0) OPTIMIZATION_ON = 0 - DEPRECATION_OFF = 1 - CXXFLAGS += -g3 -DDEVELOPMENT + CXXFLAGS += -g3 -DDEVELOPMENT -D_DEBUG COPYCHECK_ARGS += --devel DEPRECATION_ON = 0 +else + CXXFLAGS += -Werror endif ifeq ($(OPTIMIZATION_ON),0) - CXXFLAGS += -O0 + OPTFLAGS := -O0 else -CXXFLAGS += -O2 -march=native -mtune=native + OPTFLAGS := -O2 -march=native -mtune=native endif ifneq ($(ASAN),0) - CXXFLAGS += -fsanitize=address + CXXFLAGS += -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined endif ifneq ($(DEPRECATION_ON),0) CXXFLAGS += -DDEPRECATION_ON endif # CXXFLAGS += -DTEXTURE_DEBUG -LDFLAGS := -lstdc++ -lm -ldl -lpng +LDFLAGS := -lm -ldl -lpng + +# Use LLD if available. Set LLD=0 to not use it +ifeq ($(shell command -v ld.lld >/dev/null 2>&1; echo $$?),0) + LLD := 1 +endif + +ifneq ($(LLD),0) + LDFLAGS += -fuse-ld=lld +endif UNAME := $(shell uname) ifneq ($(UNAME), Darwin) LDFLAGS += -Wl,-export-dynamic -lstdc++fs endif -SRC_DIRS := ZAPD ZAPD/ZRoom ZAPD/ZRoom/Commands ZAPD/Overlays ZAPD/HighLevel +ZAPD_SRC_DIRS := $(shell find ZAPD -type d) +SRC_DIRS = $(ZAPD_SRC_DIRS) lib/tinyxml2 -ZAPD_CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) -ZAPD_H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h)) +ZAPD_CPP_FILES := $(foreach dir,$(ZAPD_SRC_DIRS),$(wildcard $(dir)/*.cpp)) +ZAPD_H_FILES := $(foreach dir,$(ZAPD_SRC_DIRS),$(wildcard $(dir)/*.h)) CPP_FILES += $(ZAPD_CPP_FILES) lib/tinyxml2/tinyxml2.cpp -O_FILES := $(CPP_FILES:.cpp=.o) +O_FILES := $(foreach f,$(CPP_FILES:.cpp=.o),build/$f) +O_FILES += build/ZAPD/BuildInfo.o +# create build directories +$(shell mkdir -p $(foreach dir,$(SRC_DIRS),build/$(dir))) + + +# Main targets all: ZAPD.out copycheck -genbuildinfo: +build/ZAPD/BuildInfo.o: python3 ZAPD/genbuildinfo.py $(COPYCHECK_ARGS) + $(CXX) $(CXXFLAGS) $(OPTFLAGS) $(INC) -c $(OUTPUT_OPTION) build/ZAPD/BuildInfo.cpp copycheck: ZAPD.out python3 copycheck.py clean: - rm -f $(O_FILES) ZAPD.out + rm -rf build ZAPD.out $(MAKE) -C lib/libgfxd clean + $(MAKE) -C ZAPDUtils clean + $(MAKE) -C ExporterTest clean rebuild: clean all format: clang-format-11 -i $(ZAPD_CPP_FILES) $(ZAPD_H_FILES) + $(MAKE) -C ZAPDUtils format + $(MAKE) -C ExporterTest format -.PHONY: all genbuildinfo copycheck clean rebuild format +.PHONY: all build/ZAPD/BuildInfo.o copycheck clean rebuild format -%.o: %.cpp - $(CXX) $(CXXFLAGS) $(INC) -c $< -o $@ +build/%.o: %.cpp + $(CXX) $(CXXFLAGS) $(OPTFLAGS) $(INC) -c $(OUTPUT_OPTION) $< -ZAPD/Main.o: genbuildinfo ZAPD/Main.cpp - $(CXX) $(CXXFLAGS) $(INC) -c ZAPD/Main.cpp -o $@ +# Submakes lib/libgfxd/libgfxd.a: $(MAKE) -C lib/libgfxd -ZAPD.out: $(O_FILES) lib/libgfxd/libgfxd.a - $(CXX) $(CXXFLAGS) $(INC) $(O_FILES) lib/libgfxd/libgfxd.a -o $@ $(FS_INC) $(LDFLAGS) +.PHONY: ExporterTest +ExporterTest: + $(MAKE) -C ExporterTest + +.PHONY: ZAPDUtils +ZAPDUtils: + $(MAKE) -C ZAPDUtils + + +# Linking +ZAPD.out: $(O_FILES) lib/libgfxd/libgfxd.a ExporterTest ZAPDUtils + $(CXX) $(CXXFLAGS) $(O_FILES) lib/libgfxd/libgfxd.a ZAPDUtils/ZAPDUtils.a -Wl,--whole-archive ExporterTest/ExporterTest.a -Wl,--no-whole-archive $(LDFLAGS) $(OUTPUT_OPTION) diff --git a/tools/ZAPD/README.md b/tools/ZAPD/README.md index 719492d92b..e2764b6277 100644 --- a/tools/ZAPD/README.md +++ b/tools/ZAPD/README.md @@ -30,7 +30,8 @@ You can configure a bit your ZAPD build with the following options: - `DEBUG`: If non-zero, ZAPD will be compiled in _development mode_. This implies the following: - Debugging symbols enabled (`-g3`). They are disabled by default. - `OPTIMIZATION_ON=0`: Disables optimizations (`-O0`). - - `DEPRECATION_OFF=1`: Disables deprecation warnings. + - `DEPRECATION_ON=0`: Disables deprecation warnings. +- `LLD=1`: builds with the LLVM linker `ld.lld` instead of the system default. As an example, if you want to build ZAPD with optimizations disabled and use the address sanitizer, you could use the following command: @@ -109,6 +110,10 @@ ZAPD also accepts the following list of extra parameters: - Can be used only in `e` or `bsf` modes. - `-tm MODE`: Test Mode (enables certain experimental features). To enable it, set `MODE` to `1`. - `-wno` / `--warn-no-offsets` : Enable warnings for nodes that dont have offsets specified. Takes priority over `-eno`/ `--error-no-offsets`. -- `-eno`/ `--error-no-offsets` : Enable errors for nodes that dont have offsets specified. +- `-eno` / `--error-no-offsets` : Enable errors for nodes that dont have offsets specified. +- `-se` / `--set-exporter` : Sets which exporter to use. +- `--gcc-compat` : Enables GCC compatible mode. Slower. +- `-s` / `--static` : Mark every asset as `static`. + - This behaviour can be overridden per asset using `Static=` in the respective XML node. Additionally, you can pass the flag `--version` to see the current ZAPD version. If that flag is passed, ZAPD will ignore any other parameter passed. diff --git a/tools/ZAPD/ZAPD.sln b/tools/ZAPD/ZAPD.sln index 4280808b49..82538dd9f4 100644 --- a/tools/ZAPD/ZAPD.sln +++ b/tools/ZAPD/ZAPD.sln @@ -5,6 +5,10 @@ VisualStudioVersion = 16.0.30320.27 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZAPD", "ZAPD\ZAPD.vcxproj", "{B53F9E5B-0A58-4BAE-9AFE-856C8CBB8D36}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExporterExample", "ExporterTest\ExporterTest.vcxproj", "{65608EB0-1A47-45AD-AB66-192FB64C762C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZAPDUtils", "ZAPDUtils\ZAPDUtils.vcxproj", "{A2E01C3E-D647-45D1-9788-043DEBC1A908}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -33,6 +37,38 @@ Global {B53F9E5B-0A58-4BAE-9AFE-856C8CBB8D36}.RelWithDebInfo|x64.Build.0 = Release|x64 {B53F9E5B-0A58-4BAE-9AFE-856C8CBB8D36}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 {B53F9E5B-0A58-4BAE-9AFE-856C8CBB8D36}.RelWithDebInfo|x86.Build.0 = Release|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Debug|x64.ActiveCfg = Debug|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Debug|x64.Build.0 = Debug|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Debug|x86.ActiveCfg = Debug|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Debug|x86.Build.0 = Debug|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.MinSizeRel|x64.ActiveCfg = Debug|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.MinSizeRel|x64.Build.0 = Debug|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.MinSizeRel|x86.ActiveCfg = Debug|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.MinSizeRel|x86.Build.0 = Debug|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Release|x64.ActiveCfg = Release|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Release|x64.Build.0 = Release|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Release|x86.ActiveCfg = Release|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.Release|x86.Build.0 = Release|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.RelWithDebInfo|x64.ActiveCfg = Release|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.RelWithDebInfo|x64.Build.0 = Release|x64 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 + {65608EB0-1A47-45AD-AB66-192FB64C762C}.RelWithDebInfo|x86.Build.0 = Release|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Debug|x64.ActiveCfg = Debug|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Debug|x64.Build.0 = Debug|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Debug|x86.ActiveCfg = Debug|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Debug|x86.Build.0 = Debug|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.MinSizeRel|x64.ActiveCfg = Debug|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.MinSizeRel|x64.Build.0 = Debug|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.MinSizeRel|x86.ActiveCfg = Debug|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.MinSizeRel|x86.Build.0 = Debug|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Release|x64.ActiveCfg = Release|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Release|x64.Build.0 = Release|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Release|x86.ActiveCfg = Release|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.Release|x86.Build.0 = Release|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.RelWithDebInfo|x64.ActiveCfg = Release|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.RelWithDebInfo|x64.Build.0 = Release|x64 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 + {A2E01C3E-D647-45D1-9788-043DEBC1A908}.RelWithDebInfo|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tools/ZAPD/ZAPD/Declaration.cpp b/tools/ZAPD/ZAPD/Declaration.cpp index 63a3918050..d2a86ffcc5 100644 --- a/tools/ZAPD/ZAPD/Declaration.cpp +++ b/tools/ZAPD/ZAPD/Declaration.cpp @@ -1,37 +1,31 @@ #include "Declaration.h" -Declaration::Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nText) +#include "Globals.h" +#include "Utils/StringHelper.h" + +Declaration::Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nText) { + address = nAddress; alignment = nAlignment; - padding = nPadding; size = nSize; text = nText; } -Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, std::string nText) - : Declaration(nAlignment, DeclarationPadding::None, nSize, nText) +Declaration::Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + const std::string& nText) + : Declaration(nAddress, nAlignment, nSize, nText) { varType = nVarType; varName = nVarName; isArray = nIsArray; } -Declaration::Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nVarType, std::string nVarName, bool nIsArray, - std::string nText) - : Declaration(nAlignment, nPadding, nSize, nText) -{ - varType = nVarType; - varName = nVarName; - isArray = nIsArray; -} - -Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, size_t nArrayItemCnt, - std::string nText) - : Declaration(nAlignment, DeclarationPadding::None, nSize, nText) +Declaration::Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + size_t nArrayItemCnt, const std::string& nText) + : Declaration(nAddress, nAlignment, nSize, nText) { varType = nVarType; varName = nVarName; @@ -39,10 +33,10 @@ Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::str arrayItemCnt = nArrayItemCnt; } -Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, std::string nArrayItemCntStr, - std::string nText) - : Declaration(nAlignment, DeclarationPadding::None, nSize, nText) +Declaration::Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + const std::string& nArrayItemCntStr, const std::string& nText) + : Declaration(nAddress, nAlignment, nSize, nText) { varType = nVarType; varName = nVarName; @@ -50,30 +44,179 @@ Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::str arrayItemCntStr = nArrayItemCntStr; } -Declaration::Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, size_t nArrayItemCnt, - std::string nText, bool nIsExternal) - : Declaration(nAlignment, nSize, nVarType, nVarName, nIsArray, nArrayItemCnt, nText) +Declaration::Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + size_t nArrayItemCnt, const std::string& nText, bool nIsExternal) + : Declaration(nAddress, nAlignment, nSize, nVarType, nVarName, nIsArray, nArrayItemCnt, nText) { isExternal = nIsExternal; } -Declaration::Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nVarType, std::string nVarName, bool nIsArray, - size_t nArrayItemCnt, std::string nText) - : Declaration(nAlignment, nPadding, nSize, nText) -{ - varType = nVarType; - varName = nVarName; - isArray = nIsArray; - arrayItemCnt = nArrayItemCnt; -} - -Declaration::Declaration(std::string nIncludePath, size_t nSize, std::string nVarType, - std::string nVarName) - : Declaration(DeclarationAlignment::None, DeclarationPadding::None, nSize, "") +Declaration::Declaration(offset_t nAddress, const std::string& nIncludePath, size_t nSize, + const std::string& nVarType, const std::string& nVarName) + : Declaration(nAddress, DeclarationAlignment::Align4, nSize, "") { includePath = nIncludePath; varType = nVarType; varName = nVarName; } + +bool Declaration::IsStatic() const +{ + switch (staticConf) + { + case StaticConfig::Off: + return false; + + case StaticConfig::Global: + return Globals::Instance->forceStatic; + + case StaticConfig::On: + return true; + } + + return false; +} + +std::string Declaration::GetNormalDeclarationStr() const +{ + std::string output; + + if (preText != "") + output += preText + "\n"; + + if (IsStatic()) + { + output += "static "; + } + + if (isArray) + { + if (arrayItemCntStr != "") + { + output += StringHelper::Sprintf("%s %s[%s];\n", varType.c_str(), varName.c_str(), + arrayItemCntStr.c_str()); + } + else if (arrayItemCnt == 0) + { + output += StringHelper::Sprintf("%s %s[] = {\n", varType.c_str(), varName.c_str()); + } + else + { + output += StringHelper::Sprintf("%s %s[%i] = {\n", varType.c_str(), varName.c_str(), + arrayItemCnt); + } + + output += text + "\n"; + } + else + { + output += StringHelper::Sprintf("%s %s = { ", varType.c_str(), varName.c_str()); + output += text; + } + + if (output.back() == '\n') + output += "};"; + else + output += " };"; + + if (rightText != "") + output += " " + rightText + ""; + + output += "\n"; + + if (postText != "") + output += postText + "\n"; + + output += "\n"; + + return output; +} + +std::string Declaration::GetExternalDeclarationStr() const +{ + std::string output; + + if (preText != "") + output += preText + "\n"; + + if (IsStatic()) + { + output += "static "; + } + + if (arrayItemCntStr != "") + output += + StringHelper::Sprintf("%s %s[%s] = {\n#include \"%s\"\n};", varType.c_str(), + varName.c_str(), arrayItemCntStr.c_str(), includePath.c_str()); + else if (arrayItemCnt != 0) + output += StringHelper::Sprintf("%s %s[%i] = {\n#include \"%s\"\n};", varType.c_str(), + varName.c_str(), arrayItemCnt, includePath.c_str()); + else + output += StringHelper::Sprintf("%s %s[] = {\n#include \"%s\"\n};", varType.c_str(), + varName.c_str(), includePath.c_str()); + + if (rightText != "") + output += " " + rightText + ""; + + output += "\n"; + + if (postText != "") + output += postText + "\n"; + + output += "\n"; + + return output; +} + +std::string Declaration::GetExternStr() const +{ + if (IsStatic() || varType == "") + { + return ""; + } + + if (isArray) + { + if (arrayItemCntStr != "") + { + return StringHelper::Sprintf("extern %s %s[%s];\n", varType.c_str(), varName.c_str(), + arrayItemCntStr.c_str()); + } + else if (arrayItemCnt != 0) + return StringHelper::Sprintf("extern %s %s[%i];\n", varType.c_str(), varName.c_str(), + arrayItemCnt); + else + return StringHelper::Sprintf("extern %s %s[];\n", varType.c_str(), varName.c_str()); + } + + return StringHelper::Sprintf("extern %s %s;\n", varType.c_str(), varName.c_str()); +} + +std::string Declaration::GetStaticForwardDeclarationStr() const +{ + if (!IsStatic() || isUnaccounted) + return ""; + + if (isArray) + { + if (arrayItemCntStr == "" && arrayItemCnt == 0) + { + // Forward declaring static arrays without specifying the size is not allowed. + return ""; + } + + if (arrayItemCntStr != "") + { + return StringHelper::Sprintf("static %s %s[%s];\n", varType.c_str(), varName.c_str(), + arrayItemCntStr.c_str()); + } + else + { + return StringHelper::Sprintf("static %s %s[%i];\n", varType.c_str(), varName.c_str(), + arrayItemCnt); + } + } + + return StringHelper::Sprintf("static %s %s;\n", varType.c_str(), varName.c_str()); +} diff --git a/tools/ZAPD/ZAPD/Declaration.h b/tools/ZAPD/ZAPD/Declaration.h index fa8653b858..138524a4c2 100644 --- a/tools/ZAPD/ZAPD/Declaration.h +++ b/tools/ZAPD/ZAPD/Declaration.h @@ -3,28 +3,32 @@ #include #include +// TODO: should we drop the `_t` suffix because of UNIX compliance? +typedef uint32_t segptr_t; +typedef uint32_t offset_t; + +#define SEGMENTED_NULL ((segptr_t)0) + enum class DeclarationAlignment { - None, Align4, Align8, Align16 }; -enum class DeclarationPadding +enum class StaticConfig { - None, - Pad4, - Pad8, - Pad16 + Off, + Global, + On }; class Declaration { public: + offset_t address; DeclarationAlignment alignment; - DeclarationPadding padding; - size_t size = 0; + size_t size; std::string preText; std::string text; std::string rightText; @@ -38,28 +42,38 @@ public: bool isArray = false; size_t arrayItemCnt = 0; std::string arrayItemCntStr; - std::vector references; + std::vector references; bool isUnaccounted = false; bool isPlaceholder = false; + bool declaredInXml = false; + StaticConfig staticConf = StaticConfig::Global; - Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, std::string nText); - Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nVarType, std::string nVarName, bool nIsArray, std::string nText); - Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, size_t nArrayItemCnt, std::string nText); - Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, std::string nArrayItemCntStr, - std::string nText); - Declaration(DeclarationAlignment nAlignment, size_t nSize, std::string nVarType, - std::string nVarName, bool nIsArray, size_t nArrayItemCnt, std::string nText, - bool nIsExternal); - Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nVarType, std::string nVarName, bool nIsArray, size_t nArrayItemCnt, - std::string nText); - Declaration(std::string nIncludePath, size_t nSize, std::string nVarType, std::string nVarName); + Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + const std::string& nText); + Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + size_t nArrayItemCnt, const std::string& nText); + Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + const std::string& nArrayItemCntStr, const std::string& nText); + Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nVarType, const std::string& nVarName, bool nIsArray, + size_t nArrayItemCnt, const std::string& nText, bool nIsExternal); + + Declaration(offset_t nAddress, const std::string& nIncludePath, size_t nSize, + const std::string& nVarType, const std::string& nVarName); + + bool IsStatic() const; + + std::string GetNormalDeclarationStr() const; + std::string GetExternalDeclarationStr() const; + + std::string GetExternStr() const; + + std::string GetStaticForwardDeclarationStr() const; protected: - Declaration(DeclarationAlignment nAlignment, DeclarationPadding nPadding, size_t nSize, - std::string nText); + Declaration(offset_t nAddress, DeclarationAlignment nAlignment, size_t nSize, + const std::string& nText); }; diff --git a/tools/ZAPD/ZAPD/GameConfig.cpp b/tools/ZAPD/ZAPD/GameConfig.cpp new file mode 100644 index 0000000000..f197493a4a --- /dev/null +++ b/tools/ZAPD/ZAPD/GameConfig.cpp @@ -0,0 +1,184 @@ +#include "GameConfig.h" + +#include +#include + +#include "Utils/Directory.h" +#include "Utils/File.h" +#include "Utils/Path.h" +#include "ZFile.h" +#include "tinyxml2.h" + +using ConfigFunc = void (GameConfig::*)(const tinyxml2::XMLElement&); + +GameConfig::~GameConfig() +{ + for (auto& declPair : segmentRefFiles) + { + for (auto& file : declPair.second) + { + delete file; + } + } +} + +void GameConfig::ReadTexturePool(const fs::path& texturePoolXmlPath) +{ + tinyxml2::XMLDocument doc; + tinyxml2::XMLError eResult = doc.LoadFile(texturePoolXmlPath.c_str()); + + if (eResult != tinyxml2::XML_SUCCESS) + { + fprintf(stderr, "Warning: Unable to read texture pool XML with error code %i\n", eResult); + return; + } + + tinyxml2::XMLNode* root = doc.FirstChild(); + + if (root == nullptr) + return; + + for (tinyxml2::XMLElement* child = root->FirstChildElement(); child != nullptr; + child = child->NextSiblingElement()) + { + if (std::string_view(child->Name()) == "Texture") + { + std::string crcStr = child->Attribute("CRC"); + fs::path texPath = child->Attribute("Path"); + std::string texName; + + uint32_t crc = strtoul(crcStr.c_str(), nullptr, 16); + + texturePool[crc].path = texPath; + } + } +} + +void GameConfig::GenSymbolMap(const fs::path& symbolMapPath) +{ + auto symbolLines = File::ReadAllLines(symbolMapPath); + + for (std::string& symbolLine : symbolLines) + { + auto split = StringHelper::Split(symbolLine, " "); + uint32_t addr = strtoul(split[0].c_str(), nullptr, 16); + std::string symbolName = split[1]; + + symbolMap[addr] = std::move(symbolName); + } +} + +void GameConfig::ConfigFunc_SymbolMap(const tinyxml2::XMLElement& element) +{ + std::string fileName = element.Attribute("File"); + GenSymbolMap(Path::GetDirectoryName(configFilePath) / fileName); +} + +void GameConfig::ConfigFunc_ActorList(const tinyxml2::XMLElement& element) +{ + std::string fileName = element.Attribute("File"); + std::vector lines = + File::ReadAllLines(Path::GetDirectoryName(configFilePath) / fileName); + + for (auto& line : lines) + actorList.emplace_back(std::move(line)); +} + +void GameConfig::ConfigFunc_ObjectList(const tinyxml2::XMLElement& element) +{ + std::string fileName = element.Attribute("File"); + std::vector lines = + File::ReadAllLines(Path::GetDirectoryName(configFilePath) / fileName); + + for (auto& line : lines) + objectList.emplace_back(std::move(line)); +} + +void GameConfig::ConfigFunc_TexturePool(const tinyxml2::XMLElement& element) +{ + std::string fileName = element.Attribute("File"); + ReadTexturePool(Path::GetDirectoryName(configFilePath) / fileName); +} + +void GameConfig::ConfigFunc_BGConfig(const tinyxml2::XMLElement& element) +{ + bgScreenWidth = element.IntAttribute("ScreenWidth", 320); + bgScreenHeight = element.IntAttribute("ScreenHeight", 240); +} + +void GameConfig::ConfigFunc_ExternalXMLFolder(const tinyxml2::XMLElement& element) +{ + const char* pathValue = element.Attribute("Path"); + if (pathValue == nullptr) + { + throw std::runtime_error( + StringHelper::Sprintf("Parse: Fatal error in configuration file.\n" + "\t Missing 'Path' attribute in `ExternalXMLFolder` element.\n")); + } + if (externalXmlFolder != "") + { + throw std::runtime_error(StringHelper::Sprintf("Parse: Fatal error in configuration file.\n" + "\t `ExternalXMLFolder` is duplicated.\n")); + } + externalXmlFolder = pathValue; +} + +void GameConfig::ConfigFunc_ExternalFile(const tinyxml2::XMLElement& element) +{ + const char* xmlPathValue = element.Attribute("XmlPath"); + if (xmlPathValue == nullptr) + { + throw std::runtime_error( + StringHelper::Sprintf("Parse: Fatal error in configuration file.\n" + "\t Missing 'XmlPath' attribute in `ExternalFile` element.\n")); + } + const char* outPathValue = element.Attribute("OutPath"); + if (outPathValue == nullptr) + { + throw std::runtime_error( + StringHelper::Sprintf("Parse: Fatal error in configuration file.\n" + "\t Missing 'OutPath' attribute in `ExternalFile` element.\n")); + } + + externalFiles.push_back(ExternalFile(fs::path(xmlPathValue), fs::path(outPathValue))); +} + +void GameConfig::ReadConfigFile(const fs::path& argConfigFilePath) +{ + static const std::map ConfigFuncDictionary = { + {"SymbolMap", &GameConfig::ConfigFunc_SymbolMap}, + {"ActorList", &GameConfig::ConfigFunc_ActorList}, + {"ObjectList", &GameConfig::ConfigFunc_ObjectList}, + {"TexturePool", &GameConfig::ConfigFunc_TexturePool}, + {"BGConfig", &GameConfig::ConfigFunc_BGConfig}, + {"ExternalXMLFolder", &GameConfig::ConfigFunc_ExternalXMLFolder}, + {"ExternalFile", &GameConfig::ConfigFunc_ExternalFile}, + }; + + configFilePath = argConfigFilePath; + tinyxml2::XMLDocument doc; + tinyxml2::XMLError eResult = doc.LoadFile(configFilePath.c_str()); + + if (eResult != tinyxml2::XML_SUCCESS) + { + throw std::runtime_error("Error: Unable to read config file."); + } + + tinyxml2::XMLNode* root = doc.FirstChild(); + + if (root == nullptr) + return; + + for (tinyxml2::XMLElement* child = root->FirstChildElement(); child != nullptr; + child = child->NextSiblingElement()) + { + auto it = ConfigFuncDictionary.find(child->Name()); + if (it == ConfigFuncDictionary.end()) + { + fprintf(stderr, "Unsupported configuration variable: %s\n", child->Name()); + continue; + } + + std::invoke(it->second, *this, *child); + } +} diff --git a/tools/ZAPD/ZAPD/GameConfig.h b/tools/ZAPD/ZAPD/GameConfig.h new file mode 100644 index 0000000000..c478d16ceb --- /dev/null +++ b/tools/ZAPD/ZAPD/GameConfig.h @@ -0,0 +1,58 @@ +#pragma once + +#include +#include +#include +#include + +#include "Utils/Directory.h" +#include "tinyxml2.h" + +struct TexturePoolEntry +{ + fs::path path = ""; // Path to Shared Texture +}; + +class ExternalFile +{ +public: + fs::path xmlPath, outPath; + + ExternalFile(fs::path nXmlPath, fs::path nOutPath); +}; + +class ZFile; + +class GameConfig +{ +public: + std::string configFilePath; + std::map> segmentRefFiles; + std::map symbolMap; + std::vector actorList; + std::vector objectList; + std::map texturePool; // Key = CRC + + // ZBackground + uint32_t bgScreenWidth = 320, bgScreenHeight = 240; + + // ExternalFile + fs::path externalXmlFolder; + std::vector externalFiles; + + GameConfig() = default; + ~GameConfig(); + + void ReadTexturePool(const fs::path& texturePoolXmlPath); + void GenSymbolMap(const fs::path& symbolMapPath); + + void ConfigFunc_SymbolMap(const tinyxml2::XMLElement& element); + void ConfigFunc_ActorList(const tinyxml2::XMLElement& element); + void ConfigFunc_ObjectList(const tinyxml2::XMLElement& element); + void ConfigFunc_TexturePool(const tinyxml2::XMLElement& element); + void ConfigFunc_BGConfig(const tinyxml2::XMLElement& element); + void ConfigFunc_ExternalXMLFolder(const tinyxml2::XMLElement& element); + void ConfigFunc_ExternalFile(const tinyxml2::XMLElement& element); + + void ReadConfigFile(const fs::path& configFilePath); +}; diff --git a/tools/ZAPD/ZAPD/Globals.cpp b/tools/ZAPD/ZAPD/Globals.cpp index 5de7843cdb..51880b5d51 100644 --- a/tools/ZAPD/ZAPD/Globals.cpp +++ b/tools/ZAPD/ZAPD/Globals.cpp @@ -1,10 +1,11 @@ #include "Globals.h" -#include -#include "File.h" -#include "Path.h" -#include "tinyxml2.h" -using namespace tinyxml2; +#include +#include + +#include +#include +#include "tinyxml2.h" Globals* Globals::Instance; @@ -12,176 +13,183 @@ Globals::Globals() { Instance = this; - files = std::vector(); - segments = std::vector(); - symbolMap = std::map(); - segmentRefs = std::map(); - segmentRefFiles = std::map(); game = ZGame::OOT_RETAIL; genSourceFile = true; testMode = false; profile = false; useLegacyZDList = false; useExternalResources = true; - lastScene = nullptr; verbosity = VerbosityLevel::VERBOSITY_SILENT; outputPath = Directory::GetCurrentDirectory(); } -std::string Globals::FindSymbolSegRef(int32_t segNumber, uint32_t symbolAddress) -{ - if (segmentRefs.find(segNumber) != segmentRefs.end()) - { - if (segmentRefFiles.find(segNumber) == segmentRefFiles.end()) - { - XMLDocument doc; - std::string filePath = segmentRefs[segNumber]; - XMLError eResult = doc.LoadFile(filePath.c_str()); - - if (eResult != tinyxml2::XML_SUCCESS) - return "ERROR"; - - XMLNode* root = doc.FirstChild(); - - if (root == nullptr) - return "ERROR"; - - for (XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - if (std::string(child->Name()) == "File") - { - ZFile* file = new ZFile(fileMode, child, "", "", filePath, true); - file->GeneratePlaceholderDeclarations(); - segmentRefFiles[segNumber] = file; - break; - } - } - } - - return segmentRefFiles[segNumber]->GetDeclarationName(symbolAddress, "ERROR"); - } - - return "ERROR"; -} - -void Globals::ReadConfigFile(const std::string& configFilePath) -{ - XMLDocument doc; - XMLError eResult = doc.LoadFile(configFilePath.c_str()); - - if (eResult != tinyxml2::XML_SUCCESS) - { - throw std::runtime_error("Error: Unable to read config file."); - return; - } - - XMLNode* root = doc.FirstChild(); - - if (root == nullptr) - return; - - for (XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - if (std::string(child->Name()) == "SymbolMap") - { - std::string fileName = std::string(child->Attribute("File")); - GenSymbolMap(Path::GetDirectoryName(configFilePath) + "/" + fileName); - } - else if (std::string(child->Name()) == "Segment") - { - std::string fileName = std::string(child->Attribute("File")); - int32_t segNumber = child->IntAttribute("Number"); - segmentRefs[segNumber] = fileName; - } - else if (std::string(child->Name()) == "ActorList") - { - std::string fileName = std::string(child->Attribute("File")); - std::vector lines = - File::ReadAllLines(Path::GetDirectoryName(configFilePath) + "/" + fileName); - - for (std::string line : lines) - cfg.actorList.push_back(StringHelper::Strip(line, "\r")); - } - else if (std::string(child->Name()) == "ObjectList") - { - std::string fileName = std::string(child->Attribute("File")); - std::vector lines = - File::ReadAllLines(Path::GetDirectoryName(configFilePath) + "/" + fileName); - - for (std::string line : lines) - cfg.objectList.push_back(StringHelper::Strip(line, "\r")); - } - else if (std::string(child->Name()) == "TexturePool") - { - std::string fileName = std::string(child->Attribute("File")); - ReadTexturePool(Path::GetDirectoryName(configFilePath) + "/" + fileName); - } - else if (std::string(child->Name()) == "BGConfig") - { - cfg.bgScreenWidth = child->IntAttribute("ScreenWidth", 320); - cfg.bgScreenHeight = child->IntAttribute("ScreenHeight", 240); - } - } -} - -void Globals::ReadTexturePool(const std::string& texturePoolXmlPath) -{ - XMLDocument doc; - XMLError eResult = doc.LoadFile(texturePoolXmlPath.c_str()); - - if (eResult != tinyxml2::XML_SUCCESS) - { - fprintf(stderr, "Warning: Unable to read texture pool XML with error code %i\n", eResult); - return; - } - - XMLNode* root = doc.FirstChild(); - - if (root == nullptr) - return; - - for (XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - if (std::string(child->Name()) == "Texture") - { - std::string crcStr = std::string(child->Attribute("CRC")); - fs::path texPath = std::string(child->Attribute("Path")); - std::string texName = ""; - - uint32_t crc = strtoul(crcStr.c_str(), NULL, 16); - - cfg.texturePool[crc].path = texPath; - } - } -} - -void Globals::GenSymbolMap(const std::string& symbolMapPath) -{ - auto symbolLines = File::ReadAllLines(symbolMapPath); - - for (std::string symbolLine : symbolLines) - { - auto split = StringHelper::Split(symbolLine, " "); - uint32_t addr = strtoul(split[0].c_str(), NULL, 16); - std::string symbolName = split[1]; - - symbolMap[addr] = symbolName; - } -} - void Globals::AddSegment(int32_t segment, ZFile* file) { if (std::find(segments.begin(), segments.end(), segment) == segments.end()) segments.push_back(segment); + if (cfg.segmentRefFiles.find(segment) == cfg.segmentRefFiles.end()) + cfg.segmentRefFiles[segment] = std::vector(); - segmentRefs[segment] = file->GetXmlFilePath(); - segmentRefFiles[segment] = file; + cfg.segmentRefFiles[segment].push_back(file); } bool Globals::HasSegment(int32_t segment) { return std::find(segments.begin(), segments.end(), segment) != segments.end(); } + +std::map* Globals::GetExporterMap() +{ + static std::map exporters; + return &exporters; +} + +void Globals::AddExporter(std::string exporterName, ExporterSet* exporterSet) +{ + auto exporters = GetExporterMap(); + (*exporters)[exporterName] = exporterSet; +} + +ZResourceExporter* Globals::GetExporter(ZResourceType resType) +{ + auto exporters = *GetExporterMap(); + + if (currentExporter != "" && exporters[currentExporter]->exporters.find(resType) != + exporters[currentExporter]->exporters.end()) + return exporters[currentExporter]->exporters[resType]; + else + return nullptr; +} + +ExporterSet* Globals::GetExporterSet() +{ + auto exporters = *GetExporterMap(); + + if (currentExporter != "") + return exporters[currentExporter]; + else + return nullptr; +} + +bool Globals::GetSegmentedPtrName(segptr_t segAddress, ZFile* currentFile, + const std::string& expectedType, std::string& declName) +{ + if (segAddress == 0) + { + declName = "NULL"; + return true; + } + + uint8_t segment = GETSEGNUM(segAddress); + uint32_t offset = Seg2Filespace(segAddress, currentFile->baseAddress); + ZSymbol* sym; + + sym = currentFile->GetSymbolResource(offset); + if (sym != nullptr) + { + if (expectedType == "" || expectedType == sym->GetSourceTypeName()) + { + declName = sym->GetName(); + return true; + } + } + sym = currentFile->GetSymbolResource(segAddress); + if (sym != nullptr) + { + if (expectedType == "" || expectedType == sym->GetSourceTypeName()) + { + declName = sym->GetName(); + return true; + } + } + + if (currentFile->IsSegmentedInFilespaceRange(segAddress)) + { + if (currentFile->GetDeclarationPtrName(segAddress, expectedType, declName)) + return true; + } + else if (HasSegment(segment)) + { + for (auto file : cfg.segmentRefFiles[segment]) + { + offset = Seg2Filespace(segAddress, file->baseAddress); + + sym = file->GetSymbolResource(offset); + if (sym != nullptr) + { + if (expectedType == "" || expectedType == sym->GetSourceTypeName()) + { + declName = sym->GetName(); + return true; + } + } + sym = file->GetSymbolResource(segAddress); + if (sym != nullptr) + { + if (expectedType == "" || expectedType == sym->GetSourceTypeName()) + { + declName = sym->GetName(); + return true; + } + } + + if (file->IsSegmentedInFilespaceRange(segAddress)) + { + if (file->GetDeclarationPtrName(segAddress, expectedType, declName)) + return true; + } + } + } + + const auto& symbolFromMap = Globals::Instance->symbolMap.find(segAddress); + if (symbolFromMap != Globals::Instance->symbolMap.end()) + { + declName = "&" + symbolFromMap->second; + return true; + } + + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; +} + +bool Globals::GetSegmentedArrayIndexedName(segptr_t segAddress, size_t elementSize, + ZFile* currentFile, const std::string& expectedType, + std::string& declName) +{ + if (segAddress == 0) + { + declName = "NULL"; + return true; + } + + uint8_t segment = GETSEGNUM(segAddress); + + if (currentFile->IsSegmentedInFilespaceRange(segAddress)) + { + bool addressFound = currentFile->GetDeclarationArrayIndexedName(segAddress, elementSize, + expectedType, declName); + if (addressFound) + return true; + } + else if (HasSegment(segment)) + { + for (auto file : cfg.segmentRefFiles[segment]) + { + if (file->IsSegmentedInFilespaceRange(segAddress)) + { + bool addressFound = file->GetDeclarationArrayIndexedName(segAddress, elementSize, + expectedType, declName); + if (addressFound) + return true; + } + } + } + + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; +} + +ExternalFile::ExternalFile(fs::path nXmlPath, fs::path nOutPath) + : xmlPath{nXmlPath}, outPath{nOutPath} +{ +} diff --git a/tools/ZAPD/ZAPD/Globals.h b/tools/ZAPD/ZAPD/Globals.h index 61c07f8d1c..e90efc25fc 100644 --- a/tools/ZAPD/ZAPD/Globals.h +++ b/tools/ZAPD/ZAPD/Globals.h @@ -3,9 +3,10 @@ #include #include #include +#include "GameConfig.h" #include "ZFile.h" -#include "ZRoom/ZRoom.h" -#include "ZTexture.h" + +class ZRoom; enum class VerbosityLevel { @@ -14,25 +15,23 @@ enum class VerbosityLevel VERBOSITY_DEBUG }; -struct TexturePoolEntry -{ - fs::path path = ""; // Path to Shared Texture -}; +typedef void (*ExporterSetFunc)(ZFile*); +typedef bool (*ExporterSetFuncBool)(ZFileMode fileMode); +typedef void (*ExporterSetFuncVoid)(int argc, char* argv[], int& i); +typedef void (*ExporterSetFuncVoid2)(const std::string& buildMode, ZFileMode& fileMode); +typedef void (*ExporterSetFuncVoid3)(); -class GameConfig +class ExporterSet { public: - std::map segmentRefs; - std::map segmentRefFiles; - std::map symbolMap; - std::vector actorList; - std::vector objectList; - std::map texturePool; // Key = CRC - - // ZBackground - uint32_t bgScreenWidth = 320, bgScreenHeight = 240; - - GameConfig() = default; + std::map exporters; + ExporterSetFuncVoid parseArgsFunc = nullptr; + ExporterSetFuncVoid2 parseFileModeFunc = nullptr; + ExporterSetFuncBool processFileModeFunc = nullptr; + ExporterSetFunc beginFileFunc = nullptr; + ExporterSetFunc endFileFunc = nullptr; + ExporterSetFuncVoid3 beginXMLFunc = nullptr; + ExporterSetFuncVoid3 endXMLFunc = nullptr; }; class Globals @@ -56,35 +55,37 @@ public: bool warnNoOffset = false; bool errorNoOffset = false; bool verboseUnaccounted = false; + bool gccCompat = false; + bool forceStatic = false; std::vector files; + std::vector externalFiles; std::vector segments; - std::map segmentRefs; - std::map segmentRefFiles; - ZRoom* lastScene; std::map symbolMap; + std::string currentExporter; + static std::map* GetExporterMap(); + static void AddExporter(std::string exporterName, ExporterSet* exporterSet); + Globals(); - std::string FindSymbolSegRef(int32_t segNumber, uint32_t symbolAddress); - void ReadConfigFile(const std::string& configFilePath); - void ReadTexturePool(const std::string& texturePoolXmlPath); - void GenSymbolMap(const std::string& symbolMapPath); + void AddSegment(int32_t segment, ZFile* file); bool HasSegment(int32_t segment); -}; -/* - * Note: In being able to track references across files, there are a few major files that make use - * of segments... - * Segment 1: nintendo_rogo_static/title_static - * Segment 2: parameter_static - * Segment 4: gameplay_keep - * Segment 5: gameplay_field_keep, gameplay_dangeon_keep - * Segment 7: link_animetion - * Segment 8: icon_item_static - * Segment 9: icon_item_24_static - * Segment 12: icon_item_field_static, icon_item_dungeon_static - * Segment 13: icon_item_nes_static - * - * I'm thinking a config file could be usable, but I'll have to experiment... - */ + ZResourceExporter* GetExporter(ZResourceType resType); + ExporterSet* GetExporterSet(); + + /** + * Search in every file (and the symbol map) for the `segAddress` passed as parameter. + * If the segment of `currentFile` is the same segment of `segAddress`, then that file will be + * used only, otherwise, the search will be performed in every other file. + * The name of that variable will be stored in the `declName` parameter. + * Returns `true` if the address is found. `false` otherwise, + * in which case `declName` will be set to the address formatted as a pointer. + */ + bool GetSegmentedPtrName(segptr_t segAddress, ZFile* currentFile, + const std::string& expectedType, std::string& declName); + + bool GetSegmentedArrayIndexedName(segptr_t segAddress, size_t elementSize, ZFile* currentFile, + const std::string& expectedType, std::string& declName); +}; diff --git a/tools/ZAPD/ZAPD/HighLevel/HLAnimation.h b/tools/ZAPD/ZAPD/HighLevel/HLAnimation.h deleted file mode 100644 index 52d6847a66..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLAnimation.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include - -/* - * The high level format for animations. - */ - -class HLAnimation -{ -public: -}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.cpp b/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.cpp deleted file mode 100644 index a316ddf6f4..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include "HLAnimationIntermediette.h" - -using namespace tinyxml2; - -HLAnimationIntermediette::HLAnimationIntermediette() -{ - limit = 0; - limbCount = 0; - frameCount = 0; - rotationValues = std::vector(); - rotationIndices = std::vector(); -} - -HLAnimationIntermediette::~HLAnimationIntermediette() -{ -} - -HLAnimationIntermediette* HLAnimationIntermediette::FromXML(std::string xmlPath) -{ - HLAnimationIntermediette* anim = new HLAnimationIntermediette(); - XMLDocument doc; - - doc.LoadFile(xmlPath.c_str()); - - XMLElement* root = doc.RootElement(); - - anim->limit = root->IntAttribute("Limit"); - anim->limbCount = root->IntAttribute("LimbCount"); - anim->frameCount = root->IntAttribute("FrameCount"); - - for (XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - if (std::string(child->Name()) == "RotationValues") - { - for (XMLElement* child2 = child->FirstChildElement(); child2 != NULL; - child2 = child2->NextSiblingElement()) - { - std::string value = child2->GetText(); - anim->rotationValues.push_back(atoi(value.c_str())); - } - } - else if (std::string(child->Name()) == "RotationIndices") - { - for (XMLElement* child2 = child->FirstChildElement(); child2 != NULL; - child2 = child2->NextSiblingElement()) - anim->rotationIndices.push_back(RotationIndex(child2->IntAttribute("X"), - child2->IntAttribute("Y"), - child2->IntAttribute("Z"))); - } - } - - return anim; -} - -HLAnimationIntermediette* HLAnimationIntermediette::FromZAnimation(ZAnimation* zAnim) -{ - HLAnimationIntermediette* anim = new HLAnimationIntermediette(); - - return anim; -} - -ZAnimation* HLAnimationIntermediette::ToZAnimation() -{ - ZAnimation* zAnim = new ZNormalAnimation(nullptr); - - return zAnim; -} - -std::string HLAnimationIntermediette::OutputXML() -{ - std::string output = ""; - XMLDocument doc; - - XMLElement* root = doc.NewElement("HLAnimationIntermediette"); - root->SetAttribute("Limit", limit); - root->SetAttribute("LimbCount", limbCount); - root->SetAttribute("FrameCount", frameCount); - - doc.InsertFirstChild(root); - - XMLElement* rotValues = doc.NewElement("RotationValues"); - - for (size_t i = 0; i < rotationValues.size(); i++) - { - XMLElement* rotValue = doc.NewElement("Value"); - rotValue->SetText(rotationValues[i]); - rotValues->InsertEndChild(rotValue); - } - - root->InsertEndChild(rotValues); - - XMLElement* rotIndices = doc.NewElement("RotationIndices"); - - for (size_t i = 0; i < rotationIndices.size(); i++) - { - XMLElement* rotIndex = doc.NewElement("Value"); - rotIndex->SetAttribute("X", rotationIndices[i].x); - rotIndex->SetAttribute("Y", rotationIndices[i].y); - rotIndex->SetAttribute("Z", rotationIndices[i].z); - rotIndices->InsertEndChild(rotIndex); - } - - root->InsertEndChild(rotIndices); - - XMLPrinter printer; - - doc.Accept(&printer); - return printer.CStr(); -} \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.h b/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.h deleted file mode 100644 index 171ac9d4d9..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLAnimationIntermediette.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include "../ZAnimation.h" -#include "HLFileIntermediette.h" -#include "tinyxml2.h" - -/* - * An intermediette format for animations. Going to use XML. - * Goes from FBX->XML->C - * Note: At the moment this is a very direct representation of the output format. - * Optimally we can determine where the keyframes are and remove redundant information. - */ - -class HLAnimationIntermediette -{ -public: - int16_t frameCount; - int16_t limit; - int16_t limbCount; - std::vector rotationValues; - std::vector rotationIndices; - - HLAnimationIntermediette(); - ~HLAnimationIntermediette(); - - std::string OutputXML(); - ZAnimation* ToZAnimation(); - - static HLAnimationIntermediette* FromXML(std::string xmlPath); - static HLAnimationIntermediette* FromZAnimation(ZAnimation* zAnim); -}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/HighLevel/HLFileIntermediette.h b/tools/ZAPD/ZAPD/HighLevel/HLFileIntermediette.h deleted file mode 100644 index ef16bb8fd9..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLFileIntermediette.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -class HLFileIntermediette -{ -}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.cpp b/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.cpp deleted file mode 100644 index f08dec4a86..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.cpp +++ /dev/null @@ -1,1185 +0,0 @@ -#include "HLModelIntermediette.h" -#include "../File.h" -#include "../Globals.h" -#include "../Path.h" -#include "../StringHelper.h" -#include "../ZDisplayList.h" - -#ifdef USE_ASSIMP -#include -#include -#include -#include -#endif - -using namespace tinyxml2; - -HLModelIntermediette::HLModelIntermediette() -{ - blocks = std::vector(); - startIndex = 0; - meshStartIndex = 0; - hasSkeleton = false; - lastTrans = Vec3s(0, 0, 0); -} - -HLModelIntermediette::~HLModelIntermediette() -{ -} - -HLModelIntermediette* HLModelIntermediette::FromXML(tinyxml2::XMLElement* root) -{ - HLModelIntermediette* model = new HLModelIntermediette(); - - for (XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - std::string childName = child->Name(); - HLIntermediette* block = nullptr; - - if (childName == "Mesh") - block = new HLMeshIntermediette(); - else if (childName == "Limb") - block = new HLLimbIntermediette(); - else if (childName == "Vertices") - block = new HLVerticesIntermediette(); - else if (childName == "Texture") - block = new HLTextureIntermediette(); - else if (childName == "Material") - block = new HLMaterialIntermediette(); - - if (block != nullptr) - { - block->parent = model; - block->InitFromXML(child); - model->blocks.push_back(block); - } - } - - return model; -} - -void HLModelIntermediette::FromZDisplayList(HLModelIntermediette* model, ZDisplayList* zDisplayList) -{ - HLLimbIntermediette* limb = new HLLimbIntermediette(); - limb->name = zDisplayList->GetName(); - - // Go through verts - std::vector finalVerts; - - int32_t vStart = -1; - - for (auto& pair : zDisplayList->vertices) - { - if (vStart == -1) // TODO: Find a better way to do this - vStart = pair.first; - - for (auto& v : pair.second) - finalVerts.push_back(v); - } - - HLVerticesIntermediette* vertIntr = new HLVerticesIntermediette(); - vertIntr->vertices = finalVerts; - vertIntr->name = StringHelper::Sprintf("%s_verts", zDisplayList->GetName().c_str()); - model->blocks.push_back(vertIntr); - - // Go through textures - // TODO: Textures are now stored directly in ZFile - /* - for (pair pair : zDisplayList->textures) - { - HLTextureIntermediette* texIntr = new HLTextureIntermediette(); - texIntr->tex = pair.second; - texIntr->name = texIntr->tex->GetName(); - - model->blocks.push_back(texIntr); - } - */ - - // Analyze display lists to determine components - HLDisplayListIntermediette* dList = new HLDisplayListIntermediette(); - dList->address = zDisplayList->GetRawDataIndex(); - int32_t startIndex = 0; - - // Go through the display lists and setup commands - int32_t meshCnt = 0; - - HLMeshIntermediette* mesh = new HLMeshIntermediette(); - mesh->name = StringHelper::Sprintf("%s_%i", zDisplayList->GetName().c_str(), meshCnt); - - int32_t matCnt = 0; - HLMaterialIntermediette* lastMat = new HLMaterialIntermediette(); - lastMat->name = StringHelper::Sprintf("Material_%i", matCnt); - - uint8_t lastClrR = 0, lastClrG = 0, lastClrB = 0, lastClrA = 0, lastClrM = 0, lastClrL = 0; - - startIndex = 0; - - for (size_t i = startIndex; i < zDisplayList->instructions.size(); i++) - { - uint64_t data = zDisplayList->instructions[i]; - F3DZEXOpcode opcode = (F3DZEXOpcode)(data >> 56); - - if (opcode == F3DZEXOpcode::G_SETOTHERMODE_L) - { - } - else if (opcode == F3DZEXOpcode::G_SETPRIMCOLOR) - { - int32_t mm = (data & 0x0000FF0000000000) >> 40; - int32_t ff = (data & 0x000000FF00000000) >> 32; - int32_t rr = (data & 0x00000000FF000000) >> 24; - int32_t gg = (data & 0x0000000000FF0000) >> 16; - int32_t bb = (data & 0x000000000000FF00) >> 8; - int32_t aa = (data & 0x00000000000000FF) >> 0; - - lastClrR = rr; - lastClrG = gg; - lastClrB = bb; - lastClrA = aa; - lastClrL = ff; - lastClrM = mm; - - lastMat->clrR = rr; - lastMat->clrG = gg; - lastMat->clrB = bb; - lastMat->clrA = aa; - lastMat->clrL = ff; - lastMat->clrM = mm; - } - else if (opcode == F3DZEXOpcode::G_SETTILE && - (F3DZEXOpcode)(zDisplayList->instructions[i - 1] >> 56) != - F3DZEXOpcode::G_RDPPIPESYNC) - { - int32_t cc = - (data & 0b0000000000000000000000000000000000000000000011000000000000000000) >> 18; - int32_t dd = - (data & 0b0000000000000000000000000000000000000000000000000000001100000000) >> 8; - - lastMat->cmtH = (HLMaterialCmt)cc; - lastMat->cmtV = (HLMaterialCmt)dd; - - matCnt++; - - if (matCnt > 1 && mesh->commands.size() > 0) - { - model->blocks.push_back(lastMat); - limb->commands.push_back(new HLLimbCommand(mesh->name, lastMat->name)); - lastMat = new HLMaterialIntermediette(); - lastMat->name = StringHelper::Sprintf("Material_%i", matCnt); - - lastMat->clrR = lastClrR; - lastMat->clrG = lastClrG; - lastMat->clrB = lastClrB; - lastMat->clrA = lastClrA; - lastMat->clrL = lastClrL; - lastMat->clrM = lastClrM; - - // Bit of a hack here... - // int32_t lastData = (int32_t)(zDisplayList->instructions[i - 1]); - // TODO - // string texName = zDisplayList->textures[lastData & 0x00FFFFFF]->GetName(); - // lastMat->textureName = texName; - - // -------------------------- - model->blocks.push_back(mesh); - - meshCnt++; - - mesh = new HLMeshIntermediette(); - mesh->name = - StringHelper::Sprintf("%s_%i", zDisplayList->GetName().c_str(), meshCnt); - } - } - else if (opcode == F3DZEXOpcode::G_SETTIMG) - { - // int32_t texAddress = data & 0x00FFFFFF; - - // TODO - // string texName = zDisplayList->textures[texAddress]->GetName(); - // lastMat->textureName = texName; - } - else if (opcode == F3DZEXOpcode::G_VTX) - { - int32_t nn = (data & 0x000FF00000000000ULL) >> 44; - int32_t aa = (data & 0x000000FF00000000ULL) >> 32; - int32_t startIndex = ((aa >> 1) - nn); - uint32_t vtxAddr = data & 0x00FFFFFF; - uint32_t diff = vtxAddr - vStart; - - startIndex += diff / 16; - - mesh->commands.push_back(new HLMeshCmdLoadVertices(nn, startIndex)); - } - else if (opcode == F3DZEXOpcode::G_TRI1) - { - int32_t aa = ((data & 0x00FF000000000000ULL) >> 48) / 2; - int32_t bb = ((data & 0x0000FF0000000000ULL) >> 40) / 2; - int32_t cc = ((data & 0x000000FF00000000ULL) >> 32) / 2; - - mesh->commands.push_back(new HLMeshCmdTriangle1(aa, bb, cc, 0)); - } - else if (opcode == F3DZEXOpcode::G_TRI2) - { - int32_t aa = ((data & 0x00FF000000000000ULL) >> 48) / 2; - int32_t bb = ((data & 0x0000FF0000000000ULL) >> 40) / 2; - int32_t cc = ((data & 0x000000FF00000000ULL) >> 32) / 2; - int32_t dd = ((data & 0x00000000FF0000ULL) >> 16) / 2; - int32_t ee = ((data & 0x0000000000FF00ULL) >> 8) / 2; - int32_t ff = ((data & 0x000000000000FFULL) >> 0) / 2; - - mesh->commands.push_back(new HLMeshCmdTriangle2(aa, bb, cc, 0, dd, ee, ff, 0)); - } - - // int32_t bp = 0; - } - - limb->commands.push_back(new HLLimbCommand(mesh->name, lastMat->name)); - model->blocks.push_back(lastMat); - model->blocks.push_back(mesh); - model->blocks.push_back(limb); -} - -void HLModelIntermediette::FromZSkeleton(HLModelIntermediette* model, ZSkeleton* zSkeleton) -{ - model->hasSkeleton = true; - - // Start at the root skeleton node, go down... - // ProcessZSkeletonLimb(model, zSkeleton, zSkeleton->limbs[0]); -} - -void HLModelIntermediette::ProcessZSkeletonLimb(HLModelIntermediette* model, ZSkeleton* zSkeleton, - ZLimb* limb) -{ - /* - if (limb->dList == nullptr && limb->dListPtr != 0) - limb->dList = (ZDisplayList*)zSkeleton->parent->FindResource(limb->dListPtr); - - if (limb->dList != nullptr) - { - auto cmdTrans = new HLSetTranslation(limb->transX, limb->transY, limb->transZ); - cmdTrans->parent = model; - model->blocks.push_back(cmdTrans); - - FromZDisplayList(model, limb->dList); - } - */ - - /*for (ZLimb* childLimb : limb->children) - { - ProcessZSkeletonLimb(model, zSkeleton, childLimb); - }*/ -} - -std::string HLModelIntermediette::ToOBJFile() -{ - std::string output = ""; - - for (HLIntermediette* block : blocks) - { - block->parent = this; - std::string code = block->OutputOBJ(); - - output += code; - - if (code != "") - output += "\n"; - } - - return output; -} - -std::string HLModelIntermediette::ToAssimpFile() -{ -#ifdef USE_ASSIMP - Assimp::Exporter exporter; - aiScene* newScene = new aiScene(); - newScene->mMeshes = new aiMesh*[128]; - newScene->mRootNode = new aiNode(); - newScene->mRootNode->mName = "RootNode"; - - std::vector vertices; - - int32_t idx = 0; - - for (HLIntermediette* block : blocks) - { - block->parent = this; - block->OutputAssimp(newScene, &vertices); - - idx++; - } - - newScene->mRootNode->mNumChildren += newScene->mNumMeshes; - newScene->mRootNode->mChildren = new aiNode*[newScene->mRootNode->mNumChildren]; - - for (size_t i = 0; i < newScene->mNumMeshes; i++) - { - aiNode* child = new aiNode(); - child->mName = StringHelper::Sprintf("OBJ_%i", i); - child->mNumMeshes = 1; - child->mMeshes = new uint32_t[1]; - child->mMeshes[0] = i; - child->mTransformation.Translation(aiVector3D(meshTranslations[i].x * 10, - meshTranslations[i].y * 10, - meshTranslations[i].z * 10), - child->mTransformation); - newScene->mRootNode->mChildren[i] = child; - } - - newScene->mNumMaterials = 1; - newScene->mMaterials = new aiMaterial*[1]; - newScene->mMaterials[0] = new aiMaterial(); - - exporter.Export(newScene, "fbx", "__export.fbx"); -#endif - - return ""; -} - -std::string HLModelIntermediette::OutputCode() -{ - std::string output = ""; - - for (HLIntermediette* block : blocks) - { - std::string code = block->OutputCode(); - - output += code; - - if (code != "") - output += "\n"; - } - - return output; -} - -std::string HLModelIntermediette::OutputXML() -{ - std::string output = ""; - XMLDocument doc; - - XMLElement* root = doc.NewElement("HLModelIntermediette"); - - for (HLIntermediette* block : blocks) - block->OutputXML(&doc, root); - - doc.InsertEndChild(root); - - XMLPrinter printer; - - doc.Accept(&printer); - return printer.CStr(); -} - -template -inline T* HLModelIntermediette::FindByName(std::string name) -{ - for (HLIntermediette* block : blocks) - { - if (typeid(*block) == typeid(T)) - { - if (block->name == name) - return (T*)block; - } - } - - return nullptr; -} - -template -inline T* HLModelIntermediette::FindByType() -{ - for (HLIntermediette* block : blocks) - { - if (typeid(*block) == typeid(T)) - return (T*)block; - } - - return nullptr; -} - -HLIntermediette::HLIntermediette() -{ - name = ""; - parent = nullptr; -} - -HLIntermediette::~HLIntermediette() -{ -} - -void HLIntermediette::InitFromXML(XMLElement* xmlElement) -{ - name = xmlElement->Attribute("Name"); -} - -std::string HLIntermediette::OutputCode() -{ - return ""; -} - -std::string HLIntermediette::OutputOBJ() -{ - return ""; -} - -void HLIntermediette::OutputAssimp(aiScene* scene, std::vector* verts) -{ -} - -void HLIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root) -{ -} - -void HLMeshCommand::InitFromXML(XMLElement* xmlElement) -{ -} - -std::string HLMeshCommand::OutputCode(HLModelIntermediette* parent) -{ - return ""; -} - -std::string HLMeshCommand::OutputOBJ(HLModelIntermediette* parent) -{ - return ""; -} - -void HLMeshCommand::OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh) -{ -} - -void HLMeshCommand::OutputXML(tinyxml2::XMLElement* parent) -{ -} - -HLVerticesIntermediette::HLVerticesIntermediette() : HLIntermediette() -{ - vertices = std::vector(); -} - -void HLVerticesIntermediette::InitFromXML(XMLElement* verticesElement) -{ - name = verticesElement->Attribute("Name"); - - /* - for (XMLElement* child = verticesElement->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - vertices.push_back(ZVtx(child->IntAttribute("X"), child->IntAttribute("Y"), - child->IntAttribute("Z"), child->IntAttribute("Flags"), - child->IntAttribute("S"), child->IntAttribute("T"), - child->IntAttribute("R"), child->IntAttribute("G"), - child->IntAttribute("B"), child->IntAttribute("A"))); - */ -} - -void HLVerticesIntermediette::InitFromVertices(std::vector dispListVertices) -{ - for (auto v : dispListVertices) - vertices.push_back(v); -} - -std::string HLVerticesIntermediette::OutputCode(HLModelIntermediette* parent) -{ - std::string output = ""; - - output += StringHelper::Sprintf("Vtx %s_verts[] = \n{\n", name.c_str()); - - for (auto v : vertices) - { - output += StringHelper::Sprintf(" { %i, %i, %i, %i, %i, %i, %i, %i, %i, %i },\n", v.x, - v.y, v.z, v.flag, v.s, v.t, v.r, v.g, v.b, v.a); - } - - output += StringHelper::Sprintf("};\n"); - - return output; -} - -std::string HLVerticesIntermediette::OutputOBJ() -{ - std::string output = ""; - - for (auto& v : vertices) - { - output += StringHelper::Sprintf("v %f %f %f %i %i %i %i\n", (float)v.x * 0.1f, - (float)v.y * 0.1f, (float)v.z * 0.1f, v.r, v.g, v.b, v.a); - } - - return output; -} - -void HLVerticesIntermediette::OutputAssimp(aiScene* scene, std::vector* verts) -{ - verts->clear(); - - for (size_t i = 0; i < vertices.size(); i++) - { - verts->push_back(aiVector3D(vertices[i].x, vertices[i].y, vertices[i].z)); - } -} - -void HLVerticesIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root) -{ - XMLElement* element = doc->NewElement("Vertices"); - - element->SetAttribute("Name", name.c_str()); - - for (auto& v : vertices) - { - XMLElement* vElem = doc->NewElement("Vertex"); - vElem->SetAttribute("X", v.x); - vElem->SetAttribute("Y", v.y); - vElem->SetAttribute("Z", v.z); - vElem->SetAttribute("Flag", v.flag); - vElem->SetAttribute("S", v.s); - vElem->SetAttribute("T", v.t); - vElem->SetAttribute("R", v.r); - vElem->SetAttribute("G", v.g); - vElem->SetAttribute("B", v.b); - vElem->SetAttribute("A", v.a); - - element->InsertEndChild(vElem); - } - - root->InsertEndChild(element); -} - -HLMeshCmdGeoSettings::HLMeshCmdGeoSettings() -{ - on = ""; - off = ""; -} - -void HLMeshCmdGeoSettings::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - on = xmlElement->Attribute("On"); - off = xmlElement->Attribute("Off"); -} - -std::string HLMeshCmdGeoSettings::OutputCode(HLModelIntermediette* parent) -{ - std::string output = ""; - - if (off != "") - output += - StringHelper::Sprintf("gsSPClearGeometryMode(G_TEXTURE_ENABLE | %s),\n", off.c_str()); - - if (on != "") - output += StringHelper::Sprintf("gsSPSetGeometryMode(G_TEXTURE_ENABLE | %s),", on.c_str()); - - return output; -} - -HLMeshCmdTriangle1::HLMeshCmdTriangle1() -{ - v0 = 0; - v1 = 0; - v2 = 0; - flag = 0; -} - -HLMeshCmdTriangle1::HLMeshCmdTriangle1(int32_t nV0, int32_t nV1, int32_t nV2, int32_t nFlag) -{ - v0 = nV0; - v1 = nV1; - v2 = nV2; - flag = nFlag; -} - -void HLMeshCmdTriangle1::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - v0 = xmlElement->IntAttribute("v0"); - v1 = xmlElement->IntAttribute("v1"); - v2 = xmlElement->IntAttribute("v2"); - flag = xmlElement->IntAttribute("flag"); -} - -std::string HLMeshCmdTriangle1::OutputCode(HLModelIntermediette* parent) -{ - return StringHelper::Sprintf("gsSP1Triangle(%i, %i, %i, %i),", v0, v1, v2, flag); -} - -void HLMeshCmdTriangle1::OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh) -{ - aiFace* face = new aiFace(); - face->mNumIndices = 3; - face->mIndices = new uint32_t[3]; - face->mIndices[0] = parent->startIndex + v0; - face->mIndices[1] = parent->startIndex + v1; - face->mIndices[2] = parent->startIndex + v2; - - mesh->mFaces[mesh->mNumFaces++] = face[0]; -} - -void HLMeshCmdTriangle1::OutputXML(tinyxml2::XMLElement* parent) -{ - XMLElement* elem = parent->GetDocument()->NewElement("Triangle1"); - - elem->SetAttribute("V0", v0); - elem->SetAttribute("V1", v1); - elem->SetAttribute("V2", v2); - elem->SetAttribute("Flag", flag); - - parent->InsertEndChild(elem); -} - -HLMeshCmdTriangle2::HLMeshCmdTriangle2() -{ - v0 = 0; - v1 = 0; - v2 = 0; - flag0 = 0; - v10 = 0; - v11 = 0; - v12 = 0; - flag1 = 0; -} - -HLMeshCmdTriangle2::HLMeshCmdTriangle2(int32_t nV0, int32_t nV1, int32_t nV2, int32_t nFlag0, - int32_t nV10, int32_t nV11, int32_t nV12, int32_t nFlag1) -{ - v0 = nV0; - v1 = nV1; - v2 = nV2; - flag0 = nFlag0; - v10 = nV10; - v11 = nV11; - v12 = nV12; - flag1 = nFlag1; -} - -void HLMeshCmdTriangle2::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - v0 = xmlElement->IntAttribute("V0"); - v1 = xmlElement->IntAttribute("V1"); - v2 = xmlElement->IntAttribute("V2"); - flag0 = xmlElement->IntAttribute("Flag0"); - v10 = xmlElement->IntAttribute("V10"); - v11 = xmlElement->IntAttribute("V11"); - v12 = xmlElement->IntAttribute("V12"); - flag1 = xmlElement->IntAttribute("Flag1"); -} - -std::string HLMeshCmdTriangle2::OutputCode(HLModelIntermediette* parent) -{ - return StringHelper::Sprintf("gsSP2Triangles(%i, %i, %i, %i, %i, %i, %i, %i),", v0, v1, v2, - flag0, v10, v11, v12, flag1); -} - -std::string HLMeshCmdTriangle2::OutputOBJ(HLModelIntermediette* parent) -{ - std::string output = ""; - - int32_t startIndex = parent->startIndex; - - output += StringHelper::Sprintf("f %i %i %i\n", startIndex + v0 + 1, startIndex + v1 + 1, - startIndex + v2 + 1); - output += StringHelper::Sprintf("f %i %i %i\n", startIndex + v10 + 1, startIndex + v11 + 1, - startIndex + v12 + 1); - - return output; -} - -void HLMeshCmdTriangle2::OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh) -{ - { - aiFace* face = new aiFace(); - face->mNumIndices = 3; - face->mIndices = new uint32_t[3]; - face->mIndices[0] = parent->startIndex + v0; - face->mIndices[1] = parent->startIndex + v1; - face->mIndices[2] = parent->startIndex + v2; - - mesh->mFaces[mesh->mNumFaces++] = face[0]; - } - - { - aiFace* face = new aiFace(); - face->mNumIndices = 3; - face->mIndices = new uint32_t[3]; - face->mIndices[0] = parent->startIndex + v10; - face->mIndices[1] = parent->startIndex + v11; - face->mIndices[2] = parent->startIndex + v12; - - mesh->mFaces[mesh->mNumFaces++] = face[0]; - } -} - -void HLMeshCmdTriangle2::OutputXML(tinyxml2::XMLElement* parent) -{ - XMLElement* elem = parent->GetDocument()->NewElement("Triangle2"); - - elem->SetAttribute("V0", v0); - elem->SetAttribute("V1", v1); - elem->SetAttribute("V2", v2); - elem->SetAttribute("Flag0", flag0); - elem->SetAttribute("V10", v10); - elem->SetAttribute("V11", v11); - elem->SetAttribute("V12", v12); - elem->SetAttribute("Flag1", flag1); - - parent->InsertEndChild(elem); -} - -HLMeshCmdLoadVertices::HLMeshCmdLoadVertices() : HLMeshCommand() -{ - numVerts = 0; - startIndex = 0; -} - -HLMeshCmdLoadVertices::HLMeshCmdLoadVertices(uint8_t nNumVerts, uint8_t nStartIndex) -{ - numVerts = nNumVerts; - startIndex = nStartIndex; -} - -void HLMeshCmdLoadVertices::OutputXML(tinyxml2::XMLElement* parent) -{ - XMLElement* elem = parent->GetDocument()->NewElement("LoadVertices"); - - elem->SetAttribute("StartIndex", startIndex); - elem->SetAttribute("NumVerts", numVerts); - - parent->InsertEndChild(elem); -} - -void HLMeshCmdLoadVertices::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - numVerts = xmlElement->IntAttribute("NumVerts", 0); - startIndex = xmlElement->IntAttribute("StartIndex", 0); -} - -std::string HLMeshCmdLoadVertices::OutputOBJ(HLModelIntermediette* parent) -{ - parent->startIndex = startIndex; - return ""; -} - -void HLMeshCmdLoadVertices::OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh) -{ - parent->startIndex = startIndex; -} - -std::string HLMeshCmdLoadVertices::OutputCode(HLModelIntermediette* parent) -{ - HLVerticesIntermediette* verts = parent->FindByType(); - return StringHelper::Sprintf("gsSPVertex(&%s[%i], %i, %i),", verts->name.c_str(), startIndex, - numVerts, 0); -} - -HLMaterialIntermediette::HLMaterialIntermediette() -{ - textureName = ""; - clrR = 0; - clrG = 0; - clrB = 0; - clrA = 0; - clrM = 0; - clrL = 0; - cmtH = HLMaterialCmt::Wrap; - cmtV = HLMaterialCmt::Wrap; -} - -void HLMaterialIntermediette::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - name = xmlElement->Attribute("Name"); - textureName = xmlElement->Attribute("TextureName"); - clrR = xmlElement->IntAttribute("ClrR"); - clrG = xmlElement->IntAttribute("ClrG"); - clrB = xmlElement->IntAttribute("ClrB"); - clrA = xmlElement->IntAttribute("ClrA"); - clrM = xmlElement->IntAttribute("ClrM"); - clrL = xmlElement->IntAttribute("ClrL"); -} - -std::string HLMaterialIntermediette::OutputCode() -{ - return ""; -} - -void HLMaterialIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* parent) -{ - XMLElement* elem = parent->GetDocument()->NewElement("Material"); - - elem->SetAttribute("Name", name.c_str()); - elem->SetAttribute("TextureName", textureName.c_str()); - elem->SetAttribute("ClrR", clrR); - elem->SetAttribute("ClrG", clrG); - elem->SetAttribute("ClrB", clrB); - elem->SetAttribute("ClrA", clrA); - elem->SetAttribute("ClrL", clrL); - elem->SetAttribute("ClrM", clrM); - elem->SetAttribute("CmtH", (int32_t)cmtH); - elem->SetAttribute("CmtV", (int32_t)cmtV); - - parent->InsertEndChild(elem); -} - -HLDisplayListIntermediette::HLDisplayListIntermediette() -{ - commands = std::vector(); -} - -std::string HLDisplayListIntermediette::OutputCode() -{ - return std::string(); -} - -void HLDisplayListIntermediette::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - for (XMLElement* child = xmlElement->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - std::string name = child->Name(); - - HLDisplayListCommand* cmd = nullptr; - - if (name == "DrawMesh") - cmd = new HLDisplayListCmdDrawMesh(); - else if (name == "PipeSync") - cmd = new HLDisplayListCmdPipeSync(); - - if (cmd != nullptr) - { - cmd->InitFromXML(child); - commands.push_back(cmd); - } - } -} - -void HLDisplayListCommand::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ -} - -std::string HLDisplayListCommand::OutputCode() -{ - return ""; -} - -void HLDisplayListCmdDrawMesh::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - meshName = xmlElement->Attribute("Mesh"); - materialName = xmlElement->Attribute("Material"); -} - -std::string HLDisplayListCmdDrawMesh::OutputCode() -{ - return ""; -} - -HLTextureIntermediette::HLTextureIntermediette() -{ - tex = nullptr; -} - -void HLTextureIntermediette::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - name = xmlElement->Attribute("Name"); - - fileName = xmlElement->Attribute("TextureName"); - // std::string format = xmlElement->Attribute("Format"); - std::string format = "rgba16"; // TEST - - // tex = HLTexture::FromPNG(fileName, - // (HLTextureType)ZTexture::GetTextureTypeFromString(format)); - tex = new ZTexture(nullptr); - tex->ZTexture::FromPNG(Path::GetDirectoryName(Globals::Instance->inputPath.string()) + "/" + - fileName, - ZTexture::GetTextureTypeFromString(format)); -} - -std::string HLTextureIntermediette::OutputCode() -{ - return StringHelper::Sprintf("#include <../%s/%s.inc.c>", Globals::Instance->outputPath.c_str(), - name.c_str()); -} - -void HLTextureIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root) -{ - XMLElement* element = doc->NewElement("Texture"); - - element->SetAttribute("Name", name.c_str()); - element->SetAttribute("TextureName", - (name + "." + tex->GetExternalExtension() + ".png").c_str()); - tex->Save(Globals::Instance->outputPath.string()); - - root->InsertEndChild(element); -} - -void HLDisplayListCmdPipeSync::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ -} - -std::string HLDisplayListCmdPipeSync::OutputCode() -{ - return "gsDPPipeSync(),"; -} - -HLMeshCmdCull::HLMeshCmdCull() : HLMeshCommand() -{ - indexStart = 0; - indexEnd = 0; -} - -void HLMeshCmdCull::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - indexStart = xmlElement->IntAttribute("IndexStart", 0); - indexEnd = xmlElement->IntAttribute("IndexEnd", 0); -} - -std::string HLMeshCmdCull::OutputCode(HLModelIntermediette* parent) -{ - return StringHelper::Sprintf("gsSPCullDisplayList(%i, %i),", indexStart, indexEnd); -} - -HLMeshIntermediette::HLMeshIntermediette() : HLIntermediette() -{ - commands = std::vector(); -} - -void HLMeshIntermediette::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - name = xmlElement->Attribute("Name"); - - for (XMLElement* child = xmlElement->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - std::string name = child->Name(); - - HLMeshCommand* cmd = nullptr; - - if (name == "Triangle1") - cmd = new HLMeshCmdTriangle1(); - else if (name == "Triangle2") - cmd = new HLMeshCmdTriangle2(); - else if (name == "LoadVertices") - cmd = new HLMeshCmdLoadVertices(); - else if (name == "GeoSettings") - cmd = new HLMeshCmdGeoSettings(); - else if (name == "Cull") - cmd = new HLMeshCmdCull(); - - if (cmd != nullptr) - { - cmd->InitFromXML(child); - commands.push_back(cmd); - } - } -} - -std::string HLMeshIntermediette::OutputCode(std::string materialName) -{ - std::string output = ""; - - HLMaterialIntermediette* mat = parent->FindByName(materialName); - HLTextureIntermediette* tex = parent->FindByName(mat->textureName); - - output += StringHelper::Sprintf(" gsDPPipeSync(),\n"); - output += StringHelper::Sprintf(" gsDPSetPrimColor(%i, %i, %i, %i, %i, %i),\n", mat->clrL, - mat->clrM, mat->clrR, mat->clrG, mat->clrB, mat->clrA); - output += StringHelper::Sprintf(" gsDPPipeSync(),\n"); - output += StringHelper::Sprintf(" gsSPTexture(65535, 65535, 0, 0, G_ON),\n"); - - output += StringHelper::Sprintf( - " gsDPLoadMultiBlock(%s, 0, 0, %s, %s, %i, %i, 0, 0, 0, 5, 5, 0, 0),\n", - mat->textureName.c_str(), tex->tex->GetIMFmtFromType().c_str(), - tex->tex->GetIMSizFromType().c_str(), tex->tex->GetWidth(), tex->tex->GetHeight()); - - for (HLMeshCommand* cmd : commands) - output += " " + cmd->OutputCode(parent) + "\n"; - - return output; -} - -std::string HLMeshIntermediette::OutputOBJ() -{ - std::string output = ""; - - output += StringHelper::Sprintf("o %s\n", name.c_str()); - - for (HLMeshCommand* cmd : commands) - output += cmd->OutputOBJ(parent); - - return output; -} - -void HLMeshIntermediette::OutputAssimp(aiScene* scene, std::vector* verts) -{ - aiMesh* mesh = new aiMesh(); - mesh->mVertices = - new aiVector3D[8192]; // TODO: Replace these hardcoded counts with the actual count - mesh->mNormals = new aiVector3D[8192]; - mesh->mFaces = new aiFace[8192]; - mesh->mPrimitiveTypes = 8; - mesh->mName = name; - - for (HLMeshCommand* cmd : commands) - { - cmd->OutputAssimp(parent, scene, mesh); - } - - parent->meshTranslations.push_back(parent->lastTrans); - // parent->objects.push_back(new HLModelObj(parent->lastTransX, )) - - scene->mMeshes[scene->mNumMeshes++] = mesh; -} - -void HLMeshIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root) -{ - XMLElement* element = doc->NewElement("Mesh"); - - element->SetAttribute("Name", name.c_str()); - - for (HLMeshCommand* cmd : commands) - { - cmd->OutputXML(element); - } - - root->InsertEndChild(element); -} - -HLLimbIntermediette::HLLimbIntermediette() -{ - commands = std::vector(); -} - -void HLLimbIntermediette::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - name = xmlElement->Attribute("Name"); - - for (XMLElement* child = xmlElement->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) - { - std::string name = child->Name(); - - HLLimbCommand* cmd = nullptr; - - if (name == "DrawMesh") - cmd = new HLLimbCommand(); - - if (cmd != nullptr) - { - cmd->InitFromXML(child); - commands.push_back(cmd); - } - } -} - -std::string HLLimbIntermediette::OutputCode() -{ - std::string output = ""; - - output += StringHelper::Sprintf("Gfx %s[] = \n{\n", name.c_str()); - - for (HLLimbCommand* cmd : commands) - output += cmd->OutputCode(parent); - - output += StringHelper::Sprintf(" gsSPEndDisplayList(),\n"); - output += StringHelper::Sprintf("};\n"); - - return output; -} - -void HLLimbIntermediette::OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root) -{ - XMLElement* element = doc->NewElement("Limb"); - - element->SetAttribute("Name", name.c_str()); - - for (HLLimbCommand* cmd : commands) - cmd->OutputXML(element); - - root->InsertEndChild(element); -} - -HLLimbCommand::HLLimbCommand() -{ - meshName = ""; - materialName = ""; -} - -HLLimbCommand::HLLimbCommand(std::string nMeshName, std::string nMaterialName) -{ - meshName = nMeshName; - materialName = nMaterialName; -} - -void HLLimbCommand::InitFromXML(tinyxml2::XMLElement* xmlElement) -{ - meshName = xmlElement->Attribute("Mesh"); - materialName = xmlElement->Attribute("Material"); -} - -void HLLimbCommand::OutputXML(tinyxml2::XMLElement* parent) -{ - XMLElement* elem = parent->GetDocument()->NewElement("DrawMesh"); - - elem->SetAttribute("Mesh", meshName.c_str()); - elem->SetAttribute("Material", materialName.c_str()); - - parent->InsertEndChild(elem); -} - -std::string HLLimbCommand::OutputCode(HLModelIntermediette* parent) -{ - std::string output = ""; - - // Time to generate the display list... - HLMeshIntermediette* mesh = parent->FindByName(meshName); - - output += mesh->OutputCode(materialName); - - return output; -} - -HLTerminator::HLTerminator() -{ -} - -HLTerminator::~HLTerminator() -{ -} - -void HLTerminator::OutputAssimp(aiScene* scene, std::vector* verts) -{ - for (uint32_t i = parent->meshStartIndex; i < scene->mNumMeshes; i++) - { - scene->mMeshes[i]->mNumVertices = verts->size(); - - for (uint32_t j = 0; j < verts->size(); j++) - scene->mMeshes[i]->mVertices[j] = verts[0][j]; - - parent->meshStartIndex++; - } - - verts->clear(); -} - -HLSetTranslation::HLSetTranslation() -{ - transX = 0; - transY = 0; - transZ = 0; -} - -HLSetTranslation::HLSetTranslation(float nTransX, float nTransY, float nTransZ) -{ - transX = nTransX; - transY = nTransY; - transZ = nTransZ; -} - -void HLSetTranslation::OutputAssimp(aiScene* scene, std::vector* verts) -{ - parent->lastTrans = Vec3s(transX, transY, transZ); -} - -HLModelObj::HLModelObj(Vec3s nPos, Vec3s nRot, std::vector nVerts, - std::vector nIndices) -{ - pos = nPos; - rot = nRot; - vertices = nVerts; - indices = nIndices; -} diff --git a/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.h b/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.h deleted file mode 100644 index e591e2c8f0..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLModelIntermediette.h +++ /dev/null @@ -1,312 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include "../ZDisplayList.h" -#include "../ZSkeleton.h" -#include "HLFileIntermediette.h" -#include "tinyxml2.h" - -/* - * An intermediette format for models. Goes from FBX<-->Intermediette<-->Display List C Code. - */ - -class HLModelIntermediette; - -class HLIntermediette -{ -public: - std::string name; - HLModelIntermediette* parent; - - HLIntermediette(); - ~HLIntermediette(); - - virtual std::string OutputCode(); - virtual std::string OutputOBJ(); - virtual void OutputAssimp(aiScene* scene, std::vector* verts); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root); - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); -}; - -class HLModelObj -{ -public: - Vec3s pos; - Vec3s rot; - std::vector vertices; - std::vector indices; - - HLModelObj() = default; - HLModelObj(Vec3s nPos, Vec3s nRot, std::vector nVerts, - std::vector nIndices); -}; - -class HLModelIntermediette : public HLFileIntermediette -{ -public: - std::vector blocks; - std::vector meshTranslations; - std::vector objects; - Vec3s lastTrans; - - bool hasSkeleton; - - bool startsWithPipeSync; - bool startsWithClearGeometryMode; - bool lerpBeforeTextureBlock; - - uint32_t startIndex; - uint32_t meshStartIndex; - - HLModelIntermediette(); - ~HLModelIntermediette(); - - static HLModelIntermediette* FromXML(tinyxml2::XMLElement* root); - static void FromZDisplayList(HLModelIntermediette* model, ZDisplayList* zDisplayList); - static void FromZSkeleton(HLModelIntermediette* model, ZSkeleton* zSkeleton); - static void ProcessZSkeletonLimb(HLModelIntermediette* model, ZSkeleton* zSkeleton, - ZLimb* limb); - std::string ToOBJFile(); - std::string ToAssimpFile(); - - std::string OutputCode(); - std::string OutputXML(); - - template - T* FindByName(std::string name); - - template - T* FindByType(); -}; - -class HLTextureIntermediette : public HLIntermediette -{ -public: - ZTexture* tex; - std::string fileName; - - HLTextureIntermediette(); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root); -}; - -class HLSetTranslation : public HLIntermediette -{ -public: - float transX, transY, transZ; - - HLSetTranslation(); - HLSetTranslation(float nTransX, float nTransY, float nTransZ); - - virtual void OutputAssimp(aiScene* scene, std::vector* verts); -}; - -class HLTerminator : public HLIntermediette -{ -public: - HLTerminator(); - ~HLTerminator(); - - virtual void OutputAssimp(aiScene* scene, std::vector* verts); -}; - -enum class HLMaterialCmt -{ - Wrap, - Mirror, - Clamp -}; - -class HLMaterialIntermediette : public HLIntermediette -{ -public: - std::string textureName; - // int32_t repeatH, repeatV; - uint8_t clrR, clrG, clrB, clrA, clrM, clrL; - // bool clampH, clampV; - // bool mirrorH, mirrorV; - HLMaterialCmt cmtH, cmtV; - - // TODO: Remember to add lerp params here... - - HLMaterialIntermediette(); - - virtual std::string OutputCode(); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* parent); - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); -}; - -class HLMeshCommand -{ -public: - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(HLModelIntermediette* parent); - virtual std::string OutputOBJ(HLModelIntermediette* parent); - virtual void OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh); - - virtual void OutputXML(tinyxml2::XMLElement* parent); -}; - -class HLVerticesIntermediette : public HLIntermediette -{ -public: - std::vector vertices; - - HLVerticesIntermediette(); - - virtual void InitFromXML(tinyxml2::XMLElement* verticesElement); - void InitFromVertices(std::vector dispListVertices); - virtual std::string OutputCode(HLModelIntermediette* parent); - virtual std::string OutputOBJ(); - virtual void OutputAssimp(aiScene* scene, std::vector* verts); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root); -}; - -class HLMeshCmdTriangle1 : public HLMeshCommand -{ -public: - int32_t v0, v1, v2, flag; - - HLMeshCmdTriangle1(); - HLMeshCmdTriangle1(int32_t nV0, int32_t nV1, int32_t nV2, int32_t nFlag); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(HLModelIntermediette* parent); - virtual void OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh); - virtual void OutputXML(tinyxml2::XMLElement* parent); -}; - -class HLMeshCmdTriangle2 : public HLMeshCommand -{ -public: - int32_t v0, v1, v2, flag0, v10, v11, v12, flag1; - - HLMeshCmdTriangle2(); - HLMeshCmdTriangle2(int32_t nV0, int32_t nV1, int32_t nV2, int32_t nFlag0, int32_t nV10, - int32_t nV11, int32_t nV12, int32_t nFlag1); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(HLModelIntermediette* parent); - virtual std::string OutputOBJ(HLModelIntermediette* parent); - virtual void OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh); - virtual void OutputXML(tinyxml2::XMLElement* parent); -}; - -class HLMeshCmdLoadVertices : public HLMeshCommand -{ -public: - uint8_t numVerts; - uint8_t startIndex; - - HLMeshCmdLoadVertices(); - HLMeshCmdLoadVertices(uint8_t nNumVerts, uint8_t nStartIndex); - - virtual void OutputXML(tinyxml2::XMLElement* parent); - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputOBJ(HLModelIntermediette* parent); - virtual void OutputAssimp(HLModelIntermediette* parent, aiScene* scene, aiMesh* mesh); - virtual std::string OutputCode(HLModelIntermediette* parent); -}; - -class HLMeshCmdCull : public HLMeshCommand -{ -public: - uint8_t indexStart; - uint8_t indexEnd; - - HLMeshCmdCull(); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(HLModelIntermediette* parent); -}; - -class HLMeshCmdGeoSettings : public HLMeshCommand -{ -public: - std::string on, off; - - HLMeshCmdGeoSettings(); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(HLModelIntermediette* parent); -}; - -class HLMeshIntermediette : public HLIntermediette -{ -public: - std::vector commands; - - HLMeshIntermediette(); - - void InitFromXML(tinyxml2::XMLElement* xmlElement); - std::string OutputCode(std::string materialName); - virtual std::string OutputOBJ(); - virtual void OutputAssimp(aiScene* scene, std::vector* verts); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root); -}; - -class HLDisplayListCommand -{ -public: - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(); -}; - -class HLDisplayListCmdDrawMesh : public HLDisplayListCommand -{ -public: - std::string meshName, materialName; - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(); -}; - -class HLDisplayListCmdPipeSync : public HLDisplayListCommand -{ -public: - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual std::string OutputCode(); -}; - -class HLDisplayListIntermediette : public HLIntermediette -{ -public: - std::vector commands; - uint32_t address; - - HLDisplayListIntermediette(); - - virtual std::string OutputCode(); - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); -}; - -class HLLimbCommand -{ -public: - std::string meshName, materialName; - - HLLimbCommand(); - HLLimbCommand(std::string nMeshName, std::string nMaterialName); - - virtual void InitFromXML(tinyxml2::XMLElement* xmlElement); - virtual void OutputXML(tinyxml2::XMLElement* parent); - virtual std::string OutputCode(HLModelIntermediette* parent); -}; - -class HLLimbIntermediette : public HLIntermediette -{ -public: - std::vector commands; - - HLLimbIntermediette(); - - void InitFromXML(tinyxml2::XMLElement* xmlElement); - std::string OutputCode(); - virtual void OutputXML(tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* root); -}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/HighLevel/HLTexture.cpp b/tools/ZAPD/ZAPD/HighLevel/HLTexture.cpp deleted file mode 100644 index b7e3a93e01..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLTexture.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "HLTexture.h" -#include "../StringHelper.h" - -HLTexture* HLTexture::FromPNG(std::string pngFilePath, HLTextureType texType) -{ - // int32_t comp; - HLTexture* tex = new HLTexture(); - tex->type = texType; - // tex->bmpRgba = (uint8_t*)stbi_load((pngFilePath).c_str(), (int32_t*)&tex->width, - // (int32_t*)&tex->height, &comp, STBI_rgb_alpha); - - return tex; -} diff --git a/tools/ZAPD/ZAPD/HighLevel/HLTexture.h b/tools/ZAPD/ZAPD/HighLevel/HLTexture.h deleted file mode 100644 index 53f1cadee6..0000000000 --- a/tools/ZAPD/ZAPD/HighLevel/HLTexture.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include -#include -#include - -// TODO: This was duplicated from ZTexture. It's probably going to be modified to differentiate from -// ZTexture but if not, we're going to need to have the two share an enum. -enum class HLTextureType -{ - RGBA32bpp, - RGBA16bpp, - Palette4bpp, - Palette8bpp, - Grayscale4bpp, - Grayscale8bpp, - GrayscaleAlpha4bpp, - GrayscaleAlpha8bpp, - GrayscaleAlpha16bpp, - Error -}; - -class HLTexture -{ -public: - static HLTexture* FromPNG(std::string pngFilePath, HLTextureType texType); - - HLTextureType type; - uint32_t width, height; - uint8_t* bmpRgba; -}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/ImageBackend.cpp b/tools/ZAPD/ZAPD/ImageBackend.cpp index 0b4bce360a..137e326c33 100644 --- a/tools/ZAPD/ZAPD/ImageBackend.cpp +++ b/tools/ZAPD/ZAPD/ImageBackend.cpp @@ -5,7 +5,7 @@ #include #include -#include "StringHelper.h" +#include "Utils/StringHelper.h" /* ImageBackend */ @@ -216,7 +216,9 @@ void ImageBackend::WritePng(const char* filename) void ImageBackend::WritePng(const fs::path& filename) { - WritePng(filename.c_str()); + // Note: The .string() is necessary for MSVC, due to the implementation of std::filesystem + // differing from GCC. Do not remove! + WritePng(filename.string().c_str()); } void ImageBackend::SetTextureData(const std::vector>& texData, @@ -385,11 +387,22 @@ void ImageBackend::SetPalette(const ImageBackend& pal) { for (size_t x = 0; x < pal.width; x++) { + size_t index = y * pal.width + x; + if (index >= paletteSize) + { + /* + * Some TLUTs are bigger than 256 colors. + * For those cases, we will only take the first 256 + * to colorize this CI texture. + */ + return; + } + uint8_t r = pal.pixelMatrix[y][x * bytePerPixel + 0]; uint8_t g = pal.pixelMatrix[y][x * bytePerPixel + 1]; uint8_t b = pal.pixelMatrix[y][x * bytePerPixel + 2]; uint8_t a = pal.pixelMatrix[y][x * bytePerPixel + 3]; - SetPaletteIndex(y * pal.width + x, r, g, b, a); + SetPaletteIndex(index, r, g, b, a); } } } diff --git a/tools/ZAPD/ZAPD/ImageBackend.h b/tools/ZAPD/ZAPD/ImageBackend.h index 25ab83216f..9e05a2eed1 100644 --- a/tools/ZAPD/ZAPD/ImageBackend.h +++ b/tools/ZAPD/ZAPD/ImageBackend.h @@ -3,7 +3,7 @@ #include #include -#include "Directory.h" +#include "Utils/Directory.h" class RGBAPixel { diff --git a/tools/ZAPD/ZAPD/Main.cpp b/tools/ZAPD/ZAPD/Main.cpp index 839e1ba990..298ca02629 100644 --- a/tools/ZAPD/ZAPD/Main.cpp +++ b/tools/ZAPD/ZAPD/Main.cpp @@ -1,11 +1,8 @@ -#include "BuildInfo.h" -#include "Directory.h" -#include "File.h" +#include +#include +#include #include "Globals.h" -#include "HighLevel/HLAnimationIntermediette.h" -#include "HighLevel/HLModelIntermediette.h" #include "Overlays/ZOverlay.h" -#include "Path.h" #include "ZAnimation.h" #include "ZBackground.h" #include "ZBlob.h" @@ -23,17 +20,17 @@ #endif #include +#include #include "tinyxml2.h" -using namespace tinyxml2; +extern const char gBuildHash[]; -bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, ZFileMode fileMode); +bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath, + ZFileMode fileMode); void BuildAssetTexture(const fs::path& pngFilePath, TextureType texType, const fs::path& outPath); void BuildAssetBackground(const fs::path& imageFilePath, const fs::path& outPath); void BuildAssetBlob(const fs::path& blobFilePath, const fs::path& outPath); -void BuildAssetModelIntermediette(const fs::path& outPath); -void BuildAssetAnimationIntermediette(const fs::path& animPath, const fs::path& outPath); #if !defined(_MSC_VER) && !defined(__CYGWIN__) #define ARRAY_COUNT(arr) (sizeof(arr) / sizeof(arr[0])) @@ -116,34 +113,7 @@ int main(int argc, char* argv[]) } } - Globals* g = new Globals(); - - // Parse File Mode - std::string buildMode = argv[1]; - ZFileMode fileMode = ZFileMode::Invalid; - - if (buildMode == "btex") - fileMode = ZFileMode::BuildTexture; - else if (buildMode == "bren") - fileMode = ZFileMode::BuildBackground; - else if (buildMode == "bovl") - fileMode = ZFileMode::BuildOverlay; - else if (buildMode == "bsf") - fileMode = ZFileMode::BuildSourceFile; - else if (buildMode == "bblb") - fileMode = ZFileMode::BuildBlob; - else if (buildMode == "bmdlintr") - fileMode = ZFileMode::BuildModelIntermediette; - else if (buildMode == "bamnintr") - fileMode = ZFileMode::BuildAnimationIntermediette; - else if (buildMode == "e") - fileMode = ZFileMode::Extract; - - if (fileMode == ZFileMode::Invalid) - { - printf("Error: Invalid file mode '%s'\n", buildMode.c_str()); - return 1; - } + Globals* g = new Globals; // Parse other "commands" for (int32_t i = 2; i < argc; i++) @@ -152,76 +122,63 @@ int main(int argc, char* argv[]) if (arg == "-o" || arg == "--outputpath") // Set output path { - Globals::Instance->outputPath = argv[i + 1]; + Globals::Instance->outputPath = argv[++i]; if (Globals::Instance->sourceOutputPath == "") Globals::Instance->sourceOutputPath = Globals::Instance->outputPath; - - i++; } else if (arg == "-i" || arg == "--inputpath") // Set input path { - Globals::Instance->inputPath = argv[i + 1]; - i++; + Globals::Instance->inputPath = argv[++i]; } else if (arg == "-b" || arg == "--baserompath") // Set baserom path { - Globals::Instance->baseRomPath = argv[i + 1]; - i++; + Globals::Instance->baseRomPath = argv[++i]; } else if (arg == "-osf") // Set source output path { - Globals::Instance->sourceOutputPath = argv[i + 1]; - i++; + Globals::Instance->sourceOutputPath = argv[++i]; } else if (arg == "-gsf") // Generate source file during extraction { - Globals::Instance->genSourceFile = std::string(argv[i + 1]) == "1"; - i++; + Globals::Instance->genSourceFile = std::string_view(argv[++i]) == "1"; } else if (arg == "-tm") // Test Mode (enables certain experimental features) { - Globals::Instance->testMode = std::string(argv[i + 1]) == "1"; - i++; + Globals::Instance->testMode = std::string_view(argv[++i]) == "1"; } else if (arg == "-crc" || arg == "--output-crc") // Outputs a CRC file for each extracted texture. { - Globals::Instance->outputCrc = true; + Globals::Instance->testMode = std::string_view(argv[++i]) == "1"; } else if (arg == "-ulzdl") // Use Legacy ZDisplay List { - Globals::Instance->useLegacyZDList = std::string(argv[i + 1]) == "1"; - i++; + Globals::Instance->useLegacyZDList = std::string_view(argv[++i]) == "1"; } else if (arg == "-profile") // Enable profiling { - Globals::Instance->profile = std::string(argv[i + 1]) == "1"; - i++; + Globals::Instance->profile = std::string_view(argv[++i]) == "1"; } else if (arg == "-uer") // Split resources into their individual components (enabled by default) // TODO: We may wish to make this a part of the config file... { - Globals::Instance->useExternalResources = std::string(argv[i + 1]) == "1"; - i++; + Globals::Instance->useExternalResources = std::string_view(argv[++i]) == "1"; } else if (arg == "-tt") // Set texture type { - Globals::Instance->texType = ZTexture::GetTextureTypeFromString(argv[i + 1]); - i++; + Globals::Instance->texType = ZTexture::GetTextureTypeFromString(argv[++i]); } else if (arg == "-cfg") // Set cfg path (for overlays) // TODO: Change the name of this to something else so it doesn't // get confused with XML config files. { - Globals::Instance->cfgPath = argv[i + 1]; - i++; + Globals::Instance->cfgPath = argv[++i]; } else if (arg == "-rconf") // Read Config File { - Globals::Instance->ReadConfigFile(argv[i + 1]); - i++; + Globals::Instance->cfg.ReadConfigFile(argv[++i]); } else if (arg == "-eh") // Enable Error Handler { @@ -253,18 +210,93 @@ int main(int argc, char* argv[]) { Globals::Instance->verboseUnaccounted = true; } + else if (arg == "-se" || arg == "--set-exporter") // Set Current Exporter + { + Globals::Instance->currentExporter = argv[++i]; + } + else if (arg == "--gcc-compat") // GCC compatibility + { + Globals::Instance->gccCompat = true; + } + else if (arg == "-s" || arg == "--static") + { + Globals::Instance->forceStatic = true; + } + } + + // Parse File Mode + ExporterSet* exporterSet = Globals::Instance->GetExporterSet(); + std::string buildMode = argv[1]; + ZFileMode fileMode = ZFileMode::Invalid; + + if (buildMode == "btex") + fileMode = ZFileMode::BuildTexture; + else if (buildMode == "bren") + fileMode = ZFileMode::BuildBackground; + else if (buildMode == "bovl") + fileMode = ZFileMode::BuildOverlay; + else if (buildMode == "bsf") + fileMode = ZFileMode::BuildSourceFile; + else if (buildMode == "bblb") + fileMode = ZFileMode::BuildBlob; + else if (buildMode == "e") + fileMode = ZFileMode::Extract; + else if (exporterSet != nullptr && exporterSet->parseFileModeFunc != nullptr) + exporterSet->parseFileModeFunc(buildMode, fileMode); + + if (fileMode == ZFileMode::Invalid) + { + printf("Error: Invalid file mode '%s'\n", buildMode.c_str()); + return 1; + } + + // We've parsed through our commands once. If an exporter exists, it's been set by now. + // Now we'll parse through them again but pass them on to our exporter if one is available. + + if (exporterSet != nullptr && exporterSet->parseArgsFunc != nullptr) + { + for (int32_t i = 2; i < argc; i++) + exporterSet->parseArgsFunc(argc, argv, i); } if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) printf("ZAPD: Zelda Asset Processor For Decomp: %s\n", gBuildHash); + // TODO: switch if (fileMode == ZFileMode::Extract || fileMode == ZFileMode::BuildSourceFile) { - bool parseSuccessful = - Parse(Globals::Instance->inputPath, Globals::Instance->baseRomPath, fileMode); + bool procFileModeSuccess = false; - if (!parseSuccessful) - return 1; + if (exporterSet != nullptr && exporterSet->processFileModeFunc != nullptr) + procFileModeSuccess = exporterSet->processFileModeFunc(fileMode); + + if (!procFileModeSuccess) + { + bool parseSuccessful; + + for (auto& extFile : Globals::Instance->cfg.externalFiles) + { + fs::path externalXmlFilePath = + Globals::Instance->cfg.externalXmlFolder / extFile.xmlPath; + + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) + { + printf("Parsing external file from config: '%s'\n", + externalXmlFilePath.c_str()); + } + + parseSuccessful = Parse(externalXmlFilePath, Globals::Instance->baseRomPath, + extFile.outPath, ZFileMode::ExternalFile); + + if (!parseSuccessful) + return 1; + } + + parseSuccessful = Parse(Globals::Instance->inputPath, Globals::Instance->baseRomPath, + Globals::Instance->outputPath, fileMode); + if (!parseSuccessful) + return 1; + } } else if (fileMode == ZFileMode::BuildTexture) { @@ -279,33 +311,26 @@ int main(int argc, char* argv[]) { BuildAssetBlob(Globals::Instance->inputPath, Globals::Instance->outputPath); } - else if (fileMode == ZFileMode::BuildModelIntermediette) - { - BuildAssetModelIntermediette(Globals::Instance->outputPath); - } - else if (fileMode == ZFileMode::BuildAnimationIntermediette) - { - BuildAssetAnimationIntermediette(Globals::Instance->inputPath, - Globals::Instance->outputPath); - } else if (fileMode == ZFileMode::BuildOverlay) { ZOverlay* overlay = ZOverlay::FromBuild(Path::GetDirectoryName(Globals::Instance->inputPath), Path::GetDirectoryName(Globals::Instance->cfgPath)); - if (overlay) + if (overlay != nullptr) File::WriteAllText(Globals::Instance->outputPath.string(), overlay->GetSourceOutputCode("")); } + delete g; return 0; } -bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, ZFileMode fileMode) +bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath, + ZFileMode fileMode) { - XMLDocument doc; - XMLError eResult = doc.LoadFile(xmlFilePath.string().c_str()); + tinyxml2::XMLDocument doc; + tinyxml2::XMLError eResult = doc.LoadFile(xmlFilePath.string().c_str()); if (eResult != tinyxml2::XML_SUCCESS) { @@ -313,7 +338,7 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, ZFileMode file return false; } - XMLNode* root = doc.FirstChild(); + tinyxml2::XMLNode* root = doc.FirstChild(); if (root == nullptr) { @@ -321,37 +346,78 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, ZFileMode file return false; } - for (XMLElement* child = root->FirstChildElement(); child != NULL; + for (tinyxml2::XMLElement* child = root->FirstChildElement(); child != NULL; child = child->NextSiblingElement()) { - if (std::string(child->Name()) == "File") + if (std::string_view(child->Name()) == "File") { - ZFile* file = new ZFile(fileMode, child, basePath, "", xmlFilePath, false); + ZFile* file = new ZFile(fileMode, child, basePath, outPath, "", xmlFilePath); Globals::Instance->files.push_back(file); + if (fileMode == ZFileMode::ExternalFile) + { + Globals::Instance->externalFiles.push_back(file); + file->isExternalFile = true; + } + } + else if (std::string(child->Name()) == "ExternalFile") + { + const char* xmlPathValue = child->Attribute("XmlPath"); + if (xmlPathValue == nullptr) + { + throw std::runtime_error(StringHelper::Sprintf( + "Parse: Fatal error in '%s'.\n" + "\t Missing 'XmlPath' attribute in `ExternalFile` element.\n", + xmlFilePath.c_str())); + } + const char* outPathValue = child->Attribute("OutPath"); + if (outPathValue == nullptr) + { + throw std::runtime_error(StringHelper::Sprintf( + "Parse: Fatal error in '%s'.\n" + "\t Missing 'OutPath' attribute in `ExternalFile` element.\n", + xmlFilePath.c_str())); + } + + fs::path externalXmlFilePath = + Globals::Instance->cfg.externalXmlFolder / fs::path(xmlPathValue); + fs::path externalOutFilePath = fs::path(outPathValue); + + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) + { + printf("Parsing external file: '%s'\n", externalXmlFilePath.c_str()); + } + + // Recursion. What can go wrong? + Parse(externalXmlFilePath, basePath, externalOutFilePath, ZFileMode::ExternalFile); } else { - throw std::runtime_error( - StringHelper::Sprintf("Parse: Fatal error in '%s'.\n\t Found a resource outside of " - "a File element: '%s'\n", - xmlFilePath.c_str(), child->Name())); + throw std::runtime_error(StringHelper::Sprintf( + "Parse: Fatal error in '%s'.\n\t A resource was found outside of " + "a File element: '%s'\n", + xmlFilePath.c_str(), child->Name())); } } - for (ZFile* file : Globals::Instance->files) + if (fileMode != ZFileMode::ExternalFile) { - if (fileMode == ZFileMode::BuildSourceFile) - file->BuildSourceFile(); - else - file->ExtractResources(); + ExporterSet* exporterSet = Globals::Instance->GetExporterSet(); + + if (exporterSet != nullptr && exporterSet->beginXMLFunc != nullptr) + exporterSet->beginXMLFunc(); + + for (ZFile* file : Globals::Instance->files) + { + if (fileMode == ZFileMode::BuildSourceFile) + file->BuildSourceFile(); + else + file->ExtractResources(); + } + + if (exporterSet != nullptr && exporterSet->endXMLFunc != nullptr) + exporterSet->endXMLFunc(); } - // All done, free files - for (ZFile* file : Globals::Instance->files) - delete file; - - Globals::Instance->files.clear(); - return true; } @@ -360,7 +426,7 @@ void BuildAssetTexture(const fs::path& pngFilePath, TextureType texType, const f std::string name = outPath.stem().string(); ZTexture tex(nullptr); - tex.FromPNG(pngFilePath, texType); + tex.FromPNG(pngFilePath.string(), texType); std::string cfgPath = StringHelper::Split(pngFilePath.string(), ".")[0] + ".cfg"; if (File::Exists(cfgPath)) @@ -384,43 +450,9 @@ void BuildAssetBlob(const fs::path& blobFilePath, const fs::path& outPath) ZBlob* blob = ZBlob::FromFile(blobFilePath.string()); std::string name = outPath.stem().string(); // filename without extension - std::string src = blob->GetSourceOutputCode(name); + std::string src = blob->GetBodySourceCode(); File::WriteAllText(outPath.string(), src); delete blob; } - -void BuildAssetModelIntermediette(const fs::path& outPath) -{ - XMLDocument doc; - - HLModelIntermediette* mdl = HLModelIntermediette::FromXML(doc.RootElement()); - std::string output = mdl->OutputCode(); - - File::WriteAllText(outPath.string(), output); - - delete mdl; -} - -void BuildAssetAnimationIntermediette(const fs::path& animPath, const fs::path& outPath) -{ - std::vector split = StringHelper::Split(outPath.string(), "/"); - ZFile* file = new ZFile(split[split.size() - 2]); - HLAnimationIntermediette* anim = HLAnimationIntermediette::FromXML(animPath.string()); - ZAnimation* zAnim = anim->ToZAnimation(); - zAnim->SetName(Path::GetFileNameWithoutExtension(split[split.size() - 1])); - zAnim->parent = file; - - zAnim->GetSourceOutputCode(split[split.size() - 2]); - std::string output = ""; - - output += file->declarations[2]->text + "\n"; - output += file->declarations[1]->text + "\n"; - output += file->declarations[0]->text + "\n"; - - File::WriteAllText(outPath.string(), output); - - delete zAnim; - delete file; -} diff --git a/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.cpp b/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.cpp new file mode 100644 index 0000000000..9d16de4389 --- /dev/null +++ b/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.cpp @@ -0,0 +1,341 @@ +#include "SkinLimbStructs.h" + +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" +#include "ZDisplayList.h" +#include "ZFile.h" + +/* Struct_800A57C0 */ + +Struct_800A57C0::Struct_800A57C0(ZFile* nParent) : ZResource(nParent) +{ +} + +void Struct_800A57C0::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + unk_0 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x00); + unk_2 = BitConverter::ToInt16BE(rawData, rawDataIndex + 0x02); + unk_4 = BitConverter::ToInt16BE(rawData, rawDataIndex + 0x04); + unk_6 = BitConverter::ToInt8BE(rawData, rawDataIndex + 0x06); + unk_7 = BitConverter::ToInt8BE(rawData, rawDataIndex + 0x07); + unk_8 = BitConverter::ToInt8BE(rawData, rawDataIndex + 0x08); + unk_9 = BitConverter::ToUInt8BE(rawData, rawDataIndex + 0x09); +} + +std::string Struct_800A57C0::GetBodySourceCode() const +{ + return StringHelper::Sprintf("0x%02X, %i, %i, %i, %i, %i, 0x%02X", unk_0, unk_2, unk_4, unk_6, + unk_7, unk_8, unk_9); +} + +std::string Struct_800A57C0::GetSourceTypeName() const +{ + return "Struct_800A57C0"; +} + +ZResourceType Struct_800A57C0::GetResourceType() const +{ + // TODO + return ZResourceType::Error; +} + +size_t Struct_800A57C0::GetRawDataSize() const +{ + return 0x0A; +} + +/* Struct_800A598C_2 */ + +Struct_800A598C_2::Struct_800A598C_2(ZFile* nParent) : ZResource(nParent) +{ +} + +void Struct_800A598C_2::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + unk_0 = BitConverter::ToUInt8BE(rawData, rawDataIndex + 0x00); + x = BitConverter::ToInt16BE(rawData, rawDataIndex + 0x02); + y = BitConverter::ToInt16BE(rawData, rawDataIndex + 0x04); + z = BitConverter::ToInt16BE(rawData, rawDataIndex + 0x06); + unk_8 = BitConverter::ToUInt8BE(rawData, rawDataIndex + 0x08); +} + +std::string Struct_800A598C_2::GetBodySourceCode() const +{ + return StringHelper::Sprintf("0x%02X, %i, %i, %i, 0x%02X", unk_0, x, y, z, unk_8); +} + +std::string Struct_800A598C_2::GetSourceTypeName() const +{ + return "Struct_800A598C_2"; +} + +ZResourceType Struct_800A598C_2::GetResourceType() const +{ + // TODO + return ZResourceType::Error; +} + +size_t Struct_800A598C_2::GetRawDataSize() const +{ + return 0x0A; +} + +/* Struct_800A598C */ + +Struct_800A598C::Struct_800A598C(ZFile* nParent) : ZResource(nParent) +{ +} + +void Struct_800A598C::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + unk_0 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x00); + unk_2 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x02); + unk_4 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x04); + unk_8 = BitConverter::ToUInt32BE(rawData, rawDataIndex + 0x08); + unk_C = BitConverter::ToUInt32BE(rawData, rawDataIndex + 0x0C); + + if (unk_8 != 0 && GETSEGNUM(unk_8) == parent->segment) + { + uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); + for (size_t i = 0; i < unk_0; i++) + { + Struct_800A57C0 unk8_data(parent); + unk8_data.ExtractFromFile(unk_8_Offset); + unk_8_arr.push_back(unk8_data); + + unk_8_Offset += unk8_data.GetRawDataSize(); + } + } + + if (unk_C != 0 && GETSEGNUM(unk_8) == parent->segment) + { + uint32_t unk_C_Offset = Seg2Filespace(unk_C, parent->baseAddress); + for (size_t i = 0; i < unk_2; i++) + { + Struct_800A598C_2 unkC_data(parent); + unkC_data.ExtractFromFile(unk_C_Offset); + unk_C_arr.push_back(unkC_data); + + unk_C_Offset += unkC_data.GetRawDataSize(); + } + } +} + +void Struct_800A598C::DeclareReferences(const std::string& prefix) +{ + std::string varPrefix = prefix; + if (name != "") + varPrefix = name; + + if (unk_8 != 0 && GETSEGNUM(unk_8) == parent->segment) + { + const auto& res = unk_8_arr.at(0); + std::string unk_8_Str = res.GetDefaultName(varPrefix); + + size_t arrayItemCnt = unk_8_arr.size(); + std::string entryStr = ""; + + for (size_t i = 0; i < arrayItemCnt; i++) + { + auto& child = unk_8_arr[i]; + child.DeclareReferences(varPrefix); + entryStr += StringHelper::Sprintf("\t{ %s },", child.GetBodySourceCode().c_str()); + + if (i < arrayItemCnt - 1) + entryStr += "\n"; + } + + uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); + Declaration* decl = parent->GetDeclaration(unk_8_Offset); + if (decl == nullptr) + { + parent->AddDeclarationArray(unk_8_Offset, res.GetDeclarationAlignment(), + arrayItemCnt * res.GetRawDataSize(), + res.GetSourceTypeName(), unk_8_Str, arrayItemCnt, entryStr); + } + else + decl->text = entryStr; + } + + if (unk_C != 0 && GETSEGNUM(unk_C) == parent->segment) + { + const auto& res = unk_C_arr.at(0); + std::string unk_C_Str = res.GetDefaultName(varPrefix); + + size_t arrayItemCnt = unk_C_arr.size(); + std::string entryStr = ""; + + for (size_t i = 0; i < arrayItemCnt; i++) + { + auto& child = unk_C_arr[i]; + child.DeclareReferences(varPrefix); + entryStr += StringHelper::Sprintf("\t{ %s },", child.GetBodySourceCode().c_str()); + + if (i < arrayItemCnt - 1) + entryStr += "\n"; + } + + uint32_t unk_C_Offset = Seg2Filespace(unk_C, parent->baseAddress); + Declaration* decl = parent->GetDeclaration(unk_C_Offset); + if (decl == nullptr) + { + parent->AddDeclarationArray(unk_C_Offset, res.GetDeclarationAlignment(), + arrayItemCnt * res.GetRawDataSize(), + res.GetSourceTypeName(), unk_C_Str, arrayItemCnt, entryStr); + } + else + decl->text = entryStr; + } +} + +std::string Struct_800A598C::GetBodySourceCode() const +{ + std::string unk_8_Str; + std::string unk_C_Str; + Globals::Instance->GetSegmentedPtrName(unk_8, parent, "Struct_800A57C0", unk_8_Str); + Globals::Instance->GetSegmentedPtrName(unk_C, parent, "Struct_800A598C_2", unk_C_Str); + + std::string entryStr = StringHelper::Sprintf("\n\t\tARRAY_COUNTU(%s), ARRAY_COUNTU(%s),\n", + unk_8_Str.c_str(), unk_C_Str.c_str()); + entryStr += + StringHelper::Sprintf("\t\t%i, %s, %s\n\t", unk_4, unk_8_Str.c_str(), unk_C_Str.c_str()); + + return entryStr; +} + +std::string Struct_800A598C::GetSourceTypeName() const +{ + return "Struct_800A598C"; +} + +ZResourceType Struct_800A598C::GetResourceType() const +{ + // TODO + return ZResourceType::Error; +} + +size_t Struct_800A598C::GetRawDataSize() const +{ + return 0x10; +} + +/* Struct_800A5E28 */ + +Struct_800A5E28::Struct_800A5E28(ZFile* nParent) : ZResource(nParent) +{ +} + +void Struct_800A5E28::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + unk_0 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x00); + unk_2 = BitConverter::ToUInt16BE(rawData, rawDataIndex + 0x02); + unk_4 = BitConverter::ToUInt32BE(rawData, rawDataIndex + 0x04); + unk_8 = BitConverter::ToUInt32BE(rawData, rawDataIndex + 0x08); + + if (unk_4 != 0 && GETSEGNUM(unk_4) == parent->segment) + { + uint32_t unk_4_Offset = Seg2Filespace(unk_4, parent->baseAddress); + for (size_t i = 0; i < unk_2; i++) + { + Struct_800A598C unk_4_data(parent); + unk_4_data.ExtractFromFile(unk_4_Offset); + unk_4_arr.push_back(unk_4_data); + + unk_4_Offset += unk_4_data.GetRawDataSize(); + } + } +} + +void Struct_800A5E28::DeclareReferences(const std::string& prefix) +{ + std::string varPrefix = prefix; + if (name != "") + varPrefix = name; + + ZResource::DeclareReferences(varPrefix); + + if (unk_4 != 0 && GETSEGNUM(unk_4) == parent->segment) + { + const auto& res = unk_4_arr.at(0); + std::string unk_4_Str = res.GetDefaultName(varPrefix); + + size_t arrayItemCnt = unk_4_arr.size(); + std::string entryStr = ""; + + for (size_t i = 0; i < arrayItemCnt; i++) + { + auto& child = unk_4_arr[i]; + child.DeclareReferences(varPrefix); + entryStr += StringHelper::Sprintf("\t{ %s },", child.GetBodySourceCode().c_str()); + + if (i < arrayItemCnt - 1) + entryStr += "\n"; + } + + uint32_t unk_4_Offset = Seg2Filespace(unk_4, parent->baseAddress); + Declaration* decl = parent->GetDeclaration(unk_4_Offset); + if (decl == nullptr) + { + parent->AddDeclarationArray(unk_4_Offset, res.GetDeclarationAlignment(), + arrayItemCnt * res.GetRawDataSize(), + res.GetSourceTypeName(), unk_4_Str, arrayItemCnt, entryStr); + } + else + decl->text = entryStr; + } + + if (unk_8 != 0 && GETSEGNUM(unk_8) == parent->segment) + { + uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); + + int32_t dlistLength = ZDisplayList::GetDListLength( + parent->GetRawData(), unk_8_Offset, + Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); + ZDisplayList* unk_8_dlist = new ZDisplayList(parent); + unk_8_dlist->ExtractFromBinary(unk_8_Offset, dlistLength); + + std::string dListStr = + StringHelper::Sprintf("%sSkinLimbDL_%06X", varPrefix.c_str(), unk_8_Offset); + unk_8_dlist->SetName(dListStr); + parent->AddResource(unk_8_dlist); + } +} + +std::string Struct_800A5E28::GetBodySourceCode() const +{ + std::string unk_4_Str; + std::string unk_8_Str; + Globals::Instance->GetSegmentedPtrName(unk_4, parent, "Struct_800A598C", unk_4_Str); + Globals::Instance->GetSegmentedPtrName(unk_8, parent, "Gfx", unk_8_Str); + + std::string entryStr = "\n"; + entryStr += StringHelper::Sprintf("\t%i, ARRAY_COUNTU(%s),\n", unk_0, unk_4_Str.c_str()); + entryStr += StringHelper::Sprintf("\t%s, %s\n", unk_4_Str.c_str(), unk_8_Str.c_str()); + + return entryStr; +} + +std::string Struct_800A5E28::GetSourceTypeName() const +{ + return "Struct_800A5E28"; +} + +ZResourceType Struct_800A5E28::GetResourceType() const +{ + // TODO + return ZResourceType::Error; +} + +size_t Struct_800A5E28::GetRawDataSize() const +{ + return 0x0C; +} diff --git a/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.h b/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.h new file mode 100644 index 0000000000..33edd07cae --- /dev/null +++ b/tools/ZAPD/ZAPD/OtherStructs/SkinLimbStructs.h @@ -0,0 +1,113 @@ +#pragma once + +#include +#include +#include + +#include "ZResource.h" + +// TODO: check if more types exists +enum class ZLimbSkinType +{ + SkinType_0, // Segment = 0 + SkinType_4 = 4, // Segment = segmented address // Struct_800A5E28 + SkinType_5 = 5, // Segment = 0 + SkinType_DList = 11, // Segment = DList address +}; + +class Struct_800A57C0 : public ZResource +{ +public: + Struct_800A57C0(ZFile* nParent); + + void ParseRawData() override; + + std::string GetBodySourceCode() const override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; + +protected: + uint16_t unk_0; + int16_t unk_2; + int16_t unk_4; + int8_t unk_6; + int8_t unk_7; + int8_t unk_8; + uint8_t unk_9; +}; + +class Struct_800A598C_2 : public ZResource +{ +public: + Struct_800A598C_2(ZFile* nParent); + + void ParseRawData() override; + + std::string GetBodySourceCode() const override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; + +protected: + uint8_t unk_0; + int16_t x; + int16_t y; + int16_t z; + uint8_t unk_8; +}; + +class Struct_800A598C : public ZResource +{ +public: + Struct_800A598C(ZFile* nParent); + + void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; + +protected: + uint16_t unk_0; // Length of unk_8 + uint16_t unk_2; // Length of unk_C + uint16_t unk_4; // 0 or 1 // Used as an index for unk_C + segptr_t unk_8; // Struct_800A57C0* + segptr_t unk_C; // Struct_800A598C_2* + + std::vector unk_8_arr; + std::vector unk_C_arr; +}; + +class Struct_800A5E28 : public ZResource +{ +public: + Struct_800A5E28(ZFile* nParent); + + void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; + +protected: + uint16_t unk_0; // Vtx count + uint16_t unk_2; // Length of unk_4 + segptr_t unk_4; // Struct_800A598C* + segptr_t unk_8; // Gfx* + + std::vector unk_4_arr; + // ZDisplayList* unk_8_dlist = nullptr; +}; diff --git a/tools/ZAPD/ZAPD/OutputFormatter.cpp b/tools/ZAPD/ZAPD/OutputFormatter.cpp index 65b45f3c3e..393ec1936a 100644 --- a/tools/ZAPD/ZAPD/OutputFormatter.cpp +++ b/tools/ZAPD/ZAPD/OutputFormatter.cpp @@ -101,10 +101,9 @@ int (*OutputFormatter::StaticWriter())(const char* buf, int count) return &WriteStatic; } -OutputFormatter::OutputFormatter(uint32_t tabSize, uint32_t defaultIndent, uint32_t lineLimit) - : tabSize{tabSize}, defaultIndent{defaultIndent}, lineLimit{lineLimit}, col{0}, nest{0}, - nestIndent{defaultIndent}, currentIndent{defaultIndent}, - wordNests(0), wordP{word}, spaceP{space} +OutputFormatter::OutputFormatter(uint32_t tabSize, uint32_t indentation, uint32_t lineLimit) + : tabSize{tabSize}, lineLimit{lineLimit}, col{0}, nest{0}, nestIndent{indentation}, + currentIndent{indentation}, wordNests(0), wordP{word}, spaceP{space} { } diff --git a/tools/ZAPD/ZAPD/OutputFormatter.h b/tools/ZAPD/ZAPD/OutputFormatter.h index b887b42588..28955b1cd1 100644 --- a/tools/ZAPD/ZAPD/OutputFormatter.h +++ b/tools/ZAPD/ZAPD/OutputFormatter.h @@ -8,7 +8,6 @@ class OutputFormatter { private: const uint32_t tabSize; - const uint32_t defaultIndent; const uint32_t lineLimit; uint32_t col; @@ -30,7 +29,7 @@ private: static int WriteStatic(const char* buf, int count); public: - OutputFormatter(uint32_t tabSize = 4, uint32_t defaultIndent = 4, uint32_t lineLimit = 120); + OutputFormatter(uint32_t tabSize = 4, uint32_t indentation = 4, uint32_t lineLimit = 120); int (*StaticWriter())(const char* buf, int count); // Must be `int` due to libgfxd @@ -38,4 +37,4 @@ public: int Write(const std::string& buf); std::string GetOutput(); -}; \ No newline at end of file +}; diff --git a/tools/ZAPD/ZAPD/Overlays/ZOverlay.cpp b/tools/ZAPD/ZAPD/Overlays/ZOverlay.cpp index a30d89ff5c..a842a7e7d9 100644 --- a/tools/ZAPD/ZAPD/Overlays/ZOverlay.cpp +++ b/tools/ZAPD/ZAPD/Overlays/ZOverlay.cpp @@ -1,18 +1,57 @@ #include "ZOverlay.h" -#include "../Directory.h" -#include "../File.h" -#include "../Path.h" -#include "../StringHelper.h" + +#include +#include + +#include +#include +#include +#include +#include "Globals.h" using namespace ELFIO; +const char* RelocationEntry::GetSectionName() const +{ + switch (sectionType) + { + case SectionType::Text: + return ".text"; + case SectionType::Data: + return ".data"; + case SectionType::RoData: + return ".rodata"; + case SectionType::Bss: + return ".bss"; + case SectionType::ERROR: + return ".ERROR"; + } + assert(!"Oh no :c"); +} + +const char* RelocationEntry::GetRelocTypeName() const +{ + switch (relocationType) + { + case RelocationType::R_MIPS_32: + return "R_MIPS_32"; + case RelocationType::R_MIPS_26: + return "R_MIPS_26"; + case RelocationType::R_MIPS_HI16: + return "R_MIPS_HI16"; + case RelocationType::R_MIPS_LO16: + return "R_MIPS_LO16"; + } + assert(!"Oh no :c"); +} + ZOverlay::ZOverlay() { name = ""; entries = std::vector(); } -ZOverlay::ZOverlay(std::string nName) : ZOverlay() +ZOverlay::ZOverlay(const std::string& nName) : ZOverlay() { name = nName; } @@ -25,15 +64,22 @@ ZOverlay::~ZOverlay() entries.clear(); } -ZOverlay* ZOverlay::FromBuild(std::string buildPath, std::string cfgFolderPath) +static const std::unordered_set sRelSections = { + ".rel.text", + ".rel.data", + ".rel.rodata", +}; +static const std::unordered_set sSections = { + ".text", ".data", ".symtab", ".rodata", ".rodata.str1.4", ".rodata.cst4", ".rodata.cst8", +}; + +ZOverlay* ZOverlay::FromBuild(fs::path buildPath, fs::path cfgFolderPath) { - std::string cfgText = File::ReadAllText(cfgFolderPath + "/overlay.cfg"); + std::string cfgText = File::ReadAllText(cfgFolderPath / "overlay.cfg"); std::vector cfgLines = StringHelper::Split(cfgText, "\n"); ZOverlay* ovl = new ZOverlay(StringHelper::Strip(cfgLines[0], "\r")); - - std::vector relSections = {".rel.text", ".rel.data", ".rel.rodata"}; - std::vector sections = {".text", ".data", ".rodata"}; + ovl->cfgLines = cfgLines; int32_t sectionOffs[5] = {0}; std::vector textRelocs; @@ -44,8 +90,7 @@ ZOverlay* ZOverlay::FromBuild(std::string buildPath, std::string cfgFolderPath) std::vector readers; for (size_t i = 1; i < cfgLines.size(); i++) { - std::string elfPath = - buildPath + "/" + cfgLines[i].substr(0, cfgLines[i].size() - 2) + ".o"; + std::string elfPath = buildPath / (cfgLines[i].substr(0, cfgLines[i].size() - 2) + ".o"); elfio* reader = new elfio(); if (!reader->load(elfPath)) @@ -62,102 +107,119 @@ ZOverlay* ZOverlay::FromBuild(std::string buildPath, std::string cfgFolderPath) readers.push_back(reader); } - for (auto curReader : readers) + for (size_t curReaderId = 0; curReaderId < readers.size(); curReaderId++) { + auto& curReader = readers[curReaderId]; + Elf_Half sec_num = curReader->sections.size(); for (int32_t i = 0; i < sec_num; i++) { section* pSec = curReader->sections[i]; - if (pSec->get_type() == SHT_REL && std::find(relSections.begin(), relSections.end(), - pSec->get_name()) != relSections.end()) + if (pSec->get_type() != SHT_REL || + sRelSections.find(pSec->get_name()) == sRelSections.end()) { - SectionType sectionType = GetSectionTypeFromStr(pSec->get_name()); + continue; + } - if (sectionType == SectionType::ERROR) - fprintf(stderr, "WARNING: One of the section types returned ERROR\n"); + symbol_section_accessor currentSymbols(*curReader, + curReader->sections[(Elf_Half)pSec->get_link()]); - relocation_section_accessor relocs(*curReader, pSec); - for (Elf_Xword j = 0; j < relocs.get_entries_num(); j++) + SectionType sectionType = GetSectionTypeFromStr(pSec->get_name()); + + if (sectionType == SectionType::ERROR) + fprintf(stderr, "WARNING: One of the section types returned ERROR\n"); + + relocation_section_accessor relocs(*curReader, pSec); + for (Elf_Xword j = 0; j < relocs.get_entries_num(); j++) + { + Elf64_Addr offset = 0; + Elf_Word symbol = 0; + Elf_Word type = 0; { - Elf64_Addr offset = 0; - Elf_Word symbol = 0; - Elf_Word type = 0; + Elf_Sxword addend = 0; + relocs.get_entry(j, offset, symbol, type, addend); + } + + std::string curSymName; + Elf_Half curSymShndx = SHN_UNDEF; + { + Elf64_Addr value; + Elf_Xword size; + unsigned char bind; + unsigned char type; + unsigned char other; + currentSymbols.get_symbol(symbol, curSymName, value, size, bind, type, + curSymShndx, other); + } + + // check symbols outside the elf but within the overlay + if (curSymShndx == SHN_UNDEF) + { + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) { - Elf_Sxword addend = 0; - relocs.get_entry(j, offset, symbol, type, addend); + printf("Symbol '%s' doesn't exist in current .o file (%s). Searching...\n", + curSymName.c_str(), cfgLines[curReaderId + 1].c_str()); } - std::string curSymName; - Elf_Half curSymShndx = SHN_UNDEF; + for (size_t readerId = 0; readerId < readers.size(); readerId++) { - symbol_section_accessor symbols( - *curReader, curReader->sections[(Elf_Half)pSec->get_link()]); - Elf64_Addr value; - Elf_Xword size; - unsigned char bind; - unsigned char type; - unsigned char other; - symbols.get_symbol(symbol, curSymName, value, size, bind, type, curSymShndx, - other); - } + auto& reader = readers[readerId]; - // check symbols outside the elf but within the overlay - if (curSymShndx == SHN_UNDEF) - { - for (auto reader : readers) + if (curSymShndx != SHN_UNDEF) + break; + + if (reader == curReader) + continue; + + auto sectionData = reader->sections[(Elf_Half)pSec->get_link()]; + curSymShndx = + ovl->FindSymbolInSection(curSymName, sectionData, *reader, readerId); + if (curSymShndx != SHN_UNDEF) + break; + + if (Globals::Instance->gccCompat) { - if (curSymShndx != SHN_UNDEF) - break; - - if (reader == curReader) - continue; - - auto sectionData = reader->sections[(Elf_Half)pSec->get_link()]; - - if (sectionData == nullptr) - continue; - - symbol_section_accessor symbols(*reader, sectionData); - - for (Elf_Xword symIdx = 0; symIdx < symbols.get_symbols_num(); symIdx++) + // Symbol wasn't found, try checking every section + Elf_Half sec_num = reader->sections.size(); + for (int32_t otherSectionIdx = 0; otherSectionIdx < sec_num; + otherSectionIdx++) { - Elf_Half shndx = SHN_UNDEF; - Elf64_Addr value; - std::string name; - Elf_Xword size; - unsigned char bind; - unsigned char type; - unsigned char other; - - symbols.get_symbol(symIdx, name, value, size, bind, type, shndx, - other); - - if (name == curSymName) + if (curSymShndx != SHN_UNDEF) { - curSymShndx = shndx; break; } + + auto sectionDataIter = reader->sections[otherSectionIdx]; + + curSymShndx = ovl->FindSymbolInSection(curSymName, sectionDataIter, + *reader, readerId); } } } + } - if (curSymShndx != SHN_UNDEF) + if (curSymShndx != SHN_UNDEF) + { + RelocationType typeConverted = (RelocationType)type; + offset += sectionOffs[static_cast(sectionType)]; + + RelocationEntry* reloc = + new RelocationEntry(sectionType, typeConverted, offset); + + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) { - RelocationType typeConverted = (RelocationType)type; - offset += sectionOffs[sectionType]; - - RelocationEntry* reloc = - new RelocationEntry(sectionType, typeConverted, offset); - - // this is to keep the correct reloc entry order - if (sectionType == SectionType::Text) - textRelocs.push_back(reloc); - if (sectionType == SectionType::Data) - dataRelocs.push_back(reloc); - if (sectionType == SectionType::RoData) - rodataRelocs.push_back(reloc); + printf(".word 0x%08X # %s %s 0x%04X\n", reloc->CalcRelocationWord(), + reloc->GetSectionName(), reloc->GetRelocTypeName(), reloc->offset); } + + // this is to keep the correct reloc entry order + if (sectionType == SectionType::Text) + textRelocs.push_back(reloc); + if (sectionType == SectionType::Data) + dataRelocs.push_back(reloc); + if (sectionType == SectionType::RoData) + rodataRelocs.push_back(reloc); } } } @@ -167,20 +229,18 @@ ZOverlay* ZOverlay::FromBuild(std::string buildPath, std::string cfgFolderPath) { section* pSec = curReader->sections[i]; if (pSec->get_type() == SHT_PROGBITS && - std::find(sections.begin(), sections.end(), pSec->get_name()) != sections.end()) + sSections.find(pSec->get_name()) != sSections.end()) { SectionType sectionType = GetSectionTypeFromStr(pSec->get_name()); - sectionOffs[sectionType] += pSec->get_size(); + sectionOffs[static_cast(sectionType)] += pSec->get_size(); } } } - for (auto reloc : textRelocs) - ovl->entries.push_back(reloc); - for (auto reloc : dataRelocs) - ovl->entries.push_back(reloc); - for (auto reloc : rodataRelocs) - ovl->entries.push_back(reloc); + ovl->entries.reserve(textRelocs.size() + dataRelocs.size() + rodataRelocs.size()); + ovl->entries.insert(ovl->entries.end(), textRelocs.begin(), textRelocs.end()); + ovl->entries.insert(ovl->entries.end(), dataRelocs.begin(), dataRelocs.end()); + ovl->entries.insert(ovl->entries.end(), rodataRelocs.begin(), rodataRelocs.end()); for (auto r : readers) delete r; @@ -189,23 +249,27 @@ ZOverlay* ZOverlay::FromBuild(std::string buildPath, std::string cfgFolderPath) return ovl; } -std::string ZOverlay::GetSourceOutputCode(const std::string& prefix) +std::string ZOverlay::GetSourceOutputCode([[maybe_unused]] const std::string& prefix) { - std::string output = ""; + std::string output; output += ".section .ovl\n"; + output += StringHelper::Sprintf("# %sOverlayInfo\n", name.c_str()); output += StringHelper::Sprintf(".word _%sSegmentTextSize\n", name.c_str()); output += StringHelper::Sprintf(".word _%sSegmentDataSize\n", name.c_str()); output += StringHelper::Sprintf(".word _%sSegmentRoDataSize\n", name.c_str()); output += StringHelper::Sprintf(".word _%sSegmentBssSize\n", name.c_str()); + output += "\n"; - output += StringHelper::Sprintf(".word %i\n", entries.size()); + output += StringHelper::Sprintf(".word %i # reloc_count\n", entries.size()); for (size_t i = 0; i < entries.size(); i++) { RelocationEntry* reloc = entries[i]; - output += StringHelper::Sprintf(".word 0x%08X\n", reloc->CalcRelocationWord()); + output += StringHelper::Sprintf(".word 0x%08X # %s %s 0x%04X\n", + reloc->CalcRelocationWord(), reloc->GetSectionName(), + reloc->GetRelocTypeName(), reloc->offset); } size_t offset = (entries.size() * 4) + 20; @@ -216,11 +280,13 @@ std::string ZOverlay::GetSourceOutputCode(const std::string& prefix) offset += 4; } - output += StringHelper::Sprintf(".word 0x%08X\n", offset + 4); + output += "\n"; + output += + StringHelper::Sprintf(".word 0x%08X # %sOverlayInfoOffset\n", offset + 4, name.c_str()); return output; } -SectionType ZOverlay::GetSectionTypeFromStr(std::string sectionName) +SectionType ZOverlay::GetSectionTypeFromStr(const std::string& sectionName) { if (sectionName == ".rel.text" || sectionName == ".text") return SectionType::Text; @@ -234,3 +300,50 @@ SectionType ZOverlay::GetSectionTypeFromStr(std::string sectionName) return SectionType::ERROR; } + +ELFIO::Elf_Half ZOverlay::FindSymbolInSection(const std::string& curSymName, + ELFIO::section* sectionData, ELFIO::elfio& reader, + size_t readerId) +{ + if (sectionData == nullptr) + return SHN_UNDEF; + + auto sectionDataName = sectionData->get_name(); + if (sSections.find(sectionDataName) == sSections.end()) + return SHN_UNDEF; + +#ifdef DEVELOPMENT + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) + { + printf("\t File '%s' section: %s \n", cfgLines[readerId + 1].c_str(), + sectionDataName.c_str()); + } +#endif + + symbol_section_accessor symbols(reader, sectionData); + + Elf_Xword symbolNum = symbols.get_symbols_num(); + for (Elf_Xword symIdx = 0; symIdx < symbolNum; symIdx++) + { + Elf_Half shndx = SHN_UNDEF; + Elf64_Addr value; + std::string name; + Elf_Xword size; + unsigned char bind; + unsigned char type; + unsigned char other; + + symbols.get_symbol(symIdx, name, value, size, bind, type, shndx, other); + + if (name == curSymName) + { + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) + { + printf("\t Symbol '%s' found in '%s' '%s' \n", curSymName.c_str(), + cfgLines[readerId + 1].c_str(), sectionDataName.c_str()); + } + return shndx; + } + } + return SHN_UNDEF; +} diff --git a/tools/ZAPD/ZAPD/Overlays/ZOverlay.h b/tools/ZAPD/ZAPD/Overlays/ZOverlay.h index 08e573de14..98ead90132 100644 --- a/tools/ZAPD/ZAPD/Overlays/ZOverlay.h +++ b/tools/ZAPD/ZAPD/Overlays/ZOverlay.h @@ -1,10 +1,11 @@ #pragma once -#include -#include "../ZResource.h" +#include "Utils/Directory.h" +#include "ZResource.h" +#include "elfio/elfio.hpp" #include "tinyxml2.h" -enum SectionType +enum class SectionType { Text = 1, Data = 2, @@ -13,7 +14,7 @@ enum SectionType ERROR = 255 }; -enum RelocationType +enum class RelocationType { R_MIPS_32 = 2, R_MIPS_26 = 4, @@ -39,12 +40,15 @@ public: { uint32_t relocationWord = 0; - relocationWord |= sectionType << 30; - relocationWord |= relocationType << 24; + relocationWord |= static_cast(sectionType) << 30; + relocationWord |= static_cast(relocationType) << 24; relocationWord |= offset; return relocationWord; } + + const char* GetSectionName() const; + const char* GetRelocTypeName() const; }; class ZOverlay @@ -52,16 +56,20 @@ class ZOverlay public: std::string name; - ZOverlay(std::string nName); + ZOverlay(const std::string& nName); ~ZOverlay(); - static ZOverlay* FromBuild(std::string buildPath, std::string cfgFolderPath); + static ZOverlay* FromBuild(fs::path buildPath, fs::path cfgFolderPath); std::string GetSourceOutputCode(const std::string& prefix); private: std::vector entries; + std::vector cfgLines; ZOverlay(); - static SectionType GetSectionTypeFromStr(std::string sectionName); + static SectionType GetSectionTypeFromStr(const std::string& sectionName); // static std::string GetOverlayNameFromElf(ELFIO::elfio& reader); + + ELFIO::Elf_Half FindSymbolInSection(const std::string& curSymName, ELFIO::section* sectionData, + ELFIO::elfio& reader, size_t readerId); }; diff --git a/tools/ZAPD/ZAPD/Path.h b/tools/ZAPD/ZAPD/Path.h deleted file mode 100644 index 68cfaea4bc..0000000000 --- a/tools/ZAPD/ZAPD/Path.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -#include -#include -#include "StringHelper.h" - -#if __has_include() -#include -namespace fs = std::filesystem; -#else -#include -namespace fs = std::experimental::filesystem; -#endif - -class Path -{ -public: - static std::string GetFileName(const std::string& input) - { - std::vector split = StringHelper::Split(input, "/"); - return split[split.size() - 1]; - }; - - static std::string GetFileNameWithoutExtension(const std::string& input) - { - std::vector split = StringHelper::Split(input, "/"); - return split[split.size() - 1].substr(0, split[split.size() - 1].find_last_of(".")); - }; - - static std::string GetFileNameExtension(const std::string& input) - { - return input.substr(input.find_last_of("."), input.length()); - }; - - static std::string GetPath(const std::string& input) - { - std::vector split = StringHelper::Split(input, "/"); - std::string output = ""; - - for (std::string str : split) - { - if (str.find_last_of(".") == std::string::npos) - output += str + "/"; - } - - return output; - }; - - static std::string GetDirectoryName(const fs::path& path) - { - return path.parent_path().u8string(); - }; -}; diff --git a/tools/ZAPD/ZAPD/ZAPD.vcxproj b/tools/ZAPD/ZAPD/ZAPD.vcxproj index 59aaf11473..c74d28cbec 100644 --- a/tools/ZAPD/ZAPD/ZAPD.vcxproj +++ b/tools/ZAPD/ZAPD/ZAPD.vcxproj @@ -71,12 +71,16 @@ - $(SolutionDir)lib\tinyxml2;$(SolutionDir)lib\libgfxd;$(SolutionDir)lib\elfio;$(SolutionDir)lib\assimp\include;$(SolutionDir)lib\stb;$(ProjectDir);$(IncludePath) - $(SolutionDir)lib\libgfxd;$(SolutionDir)lib\assimp-built;$(LibraryPath) + $(SolutionDir)lib\libgfxd;$(SolutionDir)x64\Debug;$(SolutionDir)packages\libpng.1.6.28.1\build\native\lib\x64\v140\dynamic\Debug;$(LibraryPath) + $(SolutionDir)ZAPDUtils;$(SolutionDir)lib\tinyxml2;$(SolutionDir)lib\libgfxd;$(SolutionDir)lib\elfio;$(SolutionDir)lib\stb;$(ProjectDir);$(IncludePath) $(IncludePath) + + $(SolutionDir)ZAPD\lib\tinyxml2;$(SolutionDir)ZAPD\lib\libgfxd;$(SolutionDir)ZAPD\lib\elfio;$(SolutionDir)ZAPD\lib\stb;$(ProjectDir);$(IncludePath) + $(SolutionDir)ZAPD\lib\libgfxd;$(SolutionDir)x64\Debug;$(SolutionDir)packages\libpng.1.6.28.1\build\native\lib\x64\v140\dynamic\Debug;$(LibraryPath) + Level3 @@ -84,6 +88,8 @@ true true stdcpp17 + stdc11 + _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true @@ -96,13 +102,13 @@ true true stdcpp17 - _CRT_SECURE_NO_WARNINGS;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;USE_ASSIMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) EnableFastChecks stdc11 true - assimp-vc142-mt.lib;%(AdditionalDependencies) + libpng16.lib;ZAPDUtils.lib;/WHOLEARCHIVE:ExporterExample.lib;%(AdditionalDependencies) cd .. @@ -148,10 +154,9 @@ python3 ZAPD/genbuildinfo.py + - - - + @@ -160,8 +165,9 @@ python3 ZAPD/genbuildinfo.py + - + @@ -204,6 +210,7 @@ python3 ZAPD/genbuildinfo.py + @@ -222,29 +229,18 @@ python3 ZAPD/genbuildinfo.py - - - - - + - - - - - + - - - @@ -256,8 +252,9 @@ python3 ZAPD/genbuildinfo.py + - + @@ -266,7 +263,6 @@ python3 ZAPD/genbuildinfo.py - @@ -293,9 +289,9 @@ python3 ZAPD/genbuildinfo.py - + @@ -307,10 +303,22 @@ python3 ZAPD/genbuildinfo.py - - Document - + - + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/ZAPD.vcxproj.filters b/tools/ZAPD/ZAPD/ZAPD.vcxproj.filters index 0feff6f205..2d3050ed42 100644 --- a/tools/ZAPD/ZAPD/ZAPD.vcxproj.filters +++ b/tools/ZAPD/ZAPD/ZAPD.vcxproj.filters @@ -40,18 +40,6 @@ {73db0879-6df8-4f6a-8cc2-a1f836e9e796} - - {9464ff21-96af-4b7d-a57b-f62bd9b7389a} - - - {e9865c34-fd69-413c-8cce-3f51331c3503} - - - {0f9980bb-ae46-4891-a39e-275bf255f010} - - - {11dbd8e6-d97a-42a5-b40c-e1350389544d} - {be9a5be0-ec6a-4200-8e39-bb58c7da7aa8} @@ -174,15 +162,6 @@ Source Files\Z64 - - Source Files\HighLevel - - - Source Files\HighLevel - - - Source Files\HighLevel - Source Files\Z64 @@ -249,9 +228,6 @@ Source Files\Z64\ZRoom\Commands - - Source Files\Z64\ZRoom\Commands - Source Files\Z64\ZRoom\Commands @@ -267,17 +243,23 @@ Source Files\Z64 + + Source Files\Z64\ZRoom\Commands + + + Source Files\Z64 + + + Source Files + + + Source Files + + + Source Files\Z64 + - - Header Files - - - Header Files - - - Header Files - Header Files\Z64\ZRoom @@ -296,9 +278,6 @@ Header Files\Z64\ZRoom\Commands - - Header Files - Header Files\Z64\ZRoom\Commands @@ -359,9 +338,6 @@ Header Files\Libraries\elfio - - Header Files - Header Files @@ -389,12 +365,6 @@ Header Files\Z64\ZRoom\Commands - - Header Files\Z64\ZRoom - - - Header Files\Z64\ZRoom - Header Files\Z64\ZRoom\Commands @@ -407,21 +377,12 @@ Header Files\Z64\ZRoom\Commands - - Header Files - - - Header Files\Libraries - Header Files\Libraries Header Files\Libraries - - Header Files\Libraries - Header Files\Z64 @@ -446,24 +407,9 @@ Header Files\Z64 - - Header Files\HighLevel - - - Header Files\HighLevel - - - Header Files\HighLevel - - - Header Files\HighLevel - Header Files\Z64 - - Header Files\HighLevel - Header Files\Z64\ZRoom\Commands @@ -521,9 +467,6 @@ Header Files\Z64\ZRoom\Commands - - Header Files\Z64\ZRoom\Commands - Header Files\Z64\ZRoom\Commands @@ -539,6 +482,21 @@ Header Files\Z64 + + Header Files\Z64\ZRoom\Commands + + + Header Files + + + Header Files\Z64 + + + Header Files + + + Header Files\Z64 + @@ -546,8 +504,6 @@ - - Resource Files - + \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/ZAnimation.cpp b/tools/ZAPD/ZAPD/ZAnimation.cpp index 742d8135ee..9242f657a8 100644 --- a/tools/ZAPD/ZAPD/ZAnimation.cpp +++ b/tools/ZAPD/ZAPD/ZAnimation.cpp @@ -1,10 +1,11 @@ #include "ZAnimation.h" + #include -#include "BitConverter.h" -#include "File.h" + #include "Globals.h" -#include "HighLevel/HLAnimationIntermediette.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Animation, ZNormalAnimation); @@ -24,85 +25,15 @@ void ZAnimation::ParseRawData() frameCount = BitConverter::ToInt16BE(parent->GetRawData(), rawDataIndex + 0); } -void ZAnimation::Save(const fs::path& outFolder) -{ - if (Globals::Instance->testMode) - { - HLAnimationIntermediette* anim = HLAnimationIntermediette::FromZAnimation(this); - std::string xml = anim->OutputXML(); - File::WriteAllText(outFolder / (name + ".anmi"), xml); - - delete anim; - } -} - -std::string ZAnimation::GetSourceOutputCode(const std::string& prefix) -{ - return ""; -} - ZResourceType ZAnimation::GetResourceType() const { return ZResourceType::Animation; } +/* ZNormalAnimation */ + ZNormalAnimation::ZNormalAnimation(ZFile* nParent) : ZAnimation(nParent) { - rotationValues = std::vector(); - rotationIndices = std::vector(); - limit = 0; -} - -std::string ZNormalAnimation::GetSourceOutputCode(const std::string& prefix) -{ - if (parent != nullptr) - { - std::string defaultPrefix = name.c_str(); - defaultPrefix.replace(0, 1, "s"); // replace g prefix with s for local variables - - std::string headerStr = StringHelper::Sprintf("\n\t{ %i },\n", frameCount); - headerStr += StringHelper::Sprintf("\t%sFrameData,\n", defaultPrefix.c_str()); - headerStr += StringHelper::Sprintf("\t%sJointIndices,\n", defaultPrefix.c_str()); - headerStr += StringHelper::Sprintf("\t%i\n", limit); - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), StringHelper::Sprintf("%s", name.c_str()), - headerStr); - - std::string indicesStr = ""; - std::string valuesStr = " "; - const uint8_t lineLength = 14; - const uint8_t offset = 0; - - for (size_t i = 0; i < rotationValues.size(); i++) - { - valuesStr += StringHelper::Sprintf("0x%04X, ", rotationValues[i]); - - if ((i - offset + 1) % lineLength == 0) - valuesStr += "\n "; - } - - for (size_t i = 0; i < rotationIndices.size(); i++) - { - indicesStr += - StringHelper::Sprintf(" { 0x%04X, 0x%04X, 0x%04X },", rotationIndices[i].x, - rotationIndices[i].y, rotationIndices[i].z); - - if (i != (rotationIndices.size() - 1)) - indicesStr += "\n"; - } - - parent->AddDeclarationArray(rotationValuesSeg, DeclarationAlignment::Align16, - rotationValues.size() * 2, "static s16", - StringHelper::Sprintf("%sFrameData", defaultPrefix.c_str()), - rotationValues.size(), valuesStr); - - parent->AddDeclarationArray(rotationIndicesSeg, DeclarationAlignment::Align16, - rotationIndices.size() * 6, "static JointIndex", - StringHelper::Sprintf("%sJointIndices", defaultPrefix.c_str()), - rotationIndices.size(), indicesStr); - } - - return ""; } size_t ZNormalAnimation::GetRawDataSize() const @@ -121,23 +52,26 @@ void ZNormalAnimation::ParseRawData() const uint8_t* data = parent->GetRawData().data(); - rotationValuesSeg = BitConverter::ToInt32BE(data, rawDataIndex + 4) & 0x00FFFFFF; - rotationIndicesSeg = BitConverter::ToInt32BE(data, rawDataIndex + 8) & 0x00FFFFFF; + rotationValuesSeg = BitConverter::ToInt32BE(data, rawDataIndex + 4); + rotationIndicesSeg = BitConverter::ToInt32BE(data, rawDataIndex + 8); limit = BitConverter::ToInt16BE(data, rawDataIndex + 12); - uint32_t currentPtr = rotationValuesSeg; + rotationValuesOffset = Seg2Filespace(rotationValuesSeg, parent->baseAddress); + rotationIndicesOffset = Seg2Filespace(rotationIndicesSeg, parent->baseAddress); + + uint32_t currentPtr = rotationValuesOffset; // Read the Rotation Values - for (uint32_t i = 0; i < ((rotationIndicesSeg - rotationValuesSeg) / 2); i++) + for (uint32_t i = 0; i < ((rotationIndicesOffset - rotationValuesOffset) / 2); i++) { rotationValues.push_back(BitConverter::ToInt16BE(data, currentPtr)); currentPtr += 2; } - currentPtr = rotationIndicesSeg; + currentPtr = rotationIndicesOffset; // Read the Rotation Indices - for (uint32_t i = 0; i < ((rawDataIndex - rotationIndicesSeg) / 6); i++) + for (uint32_t i = 0; i < ((rawDataIndex - rotationIndicesOffset) / 6); i++) { rotationIndices.push_back(RotationIndex(BitConverter::ToInt16BE(data, currentPtr), BitConverter::ToInt16BE(data, currentPtr + 2), @@ -146,31 +80,71 @@ void ZNormalAnimation::ParseRawData() } } +void ZNormalAnimation::DeclareReferences(const std::string& prefix) +{ + std::string defaultPrefix = prefix.c_str(); + if (name != "") + defaultPrefix = name; + + // replace g prefix with s for local variables + if (defaultPrefix.at(0) == 'g') + defaultPrefix.replace(0, 1, "s"); + + std::string indicesStr = ""; + std::string valuesStr = " "; + const uint8_t lineLength = 14; + const uint8_t offset = 0; + + for (size_t i = 0; i < rotationValues.size(); i++) + { + valuesStr += StringHelper::Sprintf("0x%04X, ", rotationValues[i]); + + if ((i - offset + 1) % lineLength == 0) + valuesStr += "\n "; + } + + parent->AddDeclarationArray(rotationValuesOffset, DeclarationAlignment::Align16, + rotationValues.size() * 2, "s16", + StringHelper::Sprintf("%sFrameData", defaultPrefix.c_str()), + rotationValues.size(), valuesStr); + + for (size_t i = 0; i < rotationIndices.size(); i++) + { + indicesStr += StringHelper::Sprintf(" { 0x%04X, 0x%04X, 0x%04X },", rotationIndices[i].x, + rotationIndices[i].y, rotationIndices[i].z); + + if (i != (rotationIndices.size() - 1)) + indicesStr += "\n"; + } + + parent->AddDeclarationArray(rotationIndicesOffset, DeclarationAlignment::Align16, + rotationIndices.size() * 6, "JointIndex", + StringHelper::Sprintf("%sJointIndices", defaultPrefix.c_str()), + rotationIndices.size(), indicesStr); +} + +std::string ZNormalAnimation::GetBodySourceCode() const +{ + std::string frameDataName; + Globals::Instance->GetSegmentedPtrName(rotationValuesSeg, parent, "s16", frameDataName); + std::string jointIndicesName; + Globals::Instance->GetSegmentedPtrName(rotationIndicesSeg, parent, "JointIndex", + jointIndicesName); + + std::string headerStr = + StringHelper::Sprintf("\n\t{ %i }, %s,\n", frameCount, frameDataName.c_str()); + headerStr += StringHelper::Sprintf("\t%s, %i\n", jointIndicesName.c_str(), limit); + + return headerStr; +} + +/* ZLinkAnimation */ + ZLinkAnimation::ZLinkAnimation(ZFile* nParent) : ZAnimation(nParent) { segmentAddress = 0; } -std::string ZLinkAnimation::GetSourceOutputCode(const std::string& prefix) -{ - if (parent != nullptr) - { - std::string segSymbol = - segmentAddress == 0 ? - "NULL" : - parent->GetDeclarationName( - segmentAddress, - StringHelper::Sprintf("%sSeg%06X", name.c_str(), segmentAddress)); - std::string headerStr = - StringHelper::Sprintf("\n\t{ %i },\n\t0x%08X\n", frameCount, segmentAddress); - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), StringHelper::Sprintf("%s", name.c_str()), - headerStr); - } - - return ""; -} - size_t ZLinkAnimation::GetRawDataSize() const { return 8; @@ -185,8 +159,16 @@ void ZLinkAnimation::ParseRawData() { ZAnimation::ParseRawData(); - const uint8_t* data = parent->GetRawData().data(); - segmentAddress = (BitConverter::ToInt32BE(data, rawDataIndex + 4)); + const auto& rawData = parent->GetRawData(); + segmentAddress = BitConverter::ToInt32BE(rawData, rawDataIndex + 4); +} + +std::string ZLinkAnimation::GetBodySourceCode() const +{ + std::string segSymbol; + Globals::Instance->GetSegmentedPtrName(segmentAddress, parent, "", segSymbol); + + return StringHelper::Sprintf("\n\t{ %i }, %s\n", frameCount, segSymbol.c_str()); } /* ZCurveAnimation */ @@ -208,7 +190,7 @@ TransformData::TransformData(ZFile* parent, const std::vector& rawData, { } -std::string TransformData::GetBody(const std::string& prefix) const +std::string TransformData::GetBody([[maybe_unused]] const std::string& prefix) const { return StringHelper::Sprintf("0x%04X, 0x%04X, %i, %i, %ff", unk_00, unk_02, unk_04, unk_06, unk_08); @@ -256,8 +238,8 @@ void ZCurveAnimation::ParseRawData() unk_0C = BitConverter::ToInt16BE(rawData, rawDataIndex + 12); unk_10 = BitConverter::ToInt16BE(rawData, rawDataIndex + 14); - limbCount = - BitConverter::ToUInt8BE(rawData, Seg2Filespace(skelOffset, parent->baseAddress) + 4); + uint32_t limbCountAddress = Seg2Filespace(skelOffset, parent->baseAddress) + 4; + limbCount = BitConverter::ToUInt8BE(rawData, limbCountAddress); size_t transformDataSize = 0; size_t copyValuesSize = 0; @@ -293,14 +275,6 @@ void ZCurveAnimation::ParseRawData() } } -void ZCurveAnimation::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align16, GetRawDataSize(), - GetSourceTypeName(), name, ""); -} - void ZCurveAnimation::DeclareReferences(const std::string& prefix) { if (refIndex != 0) @@ -321,7 +295,7 @@ void ZCurveAnimation::DeclareReferences(const std::string& prefix) Declaration* decl = parent->GetDeclaration(refIndexOffset); if (decl == nullptr) { - parent->AddDeclarationArray(refIndexOffset, DeclarationAlignment::None, + parent->AddDeclarationArray(refIndexOffset, DeclarationAlignment::Align4, arrayItemCnt * 1, "u8", refIndexStr, arrayItemCnt, entryStr); } @@ -338,7 +312,7 @@ void ZCurveAnimation::DeclareReferences(const std::string& prefix) "%sCurveAnime_%s_%06X", prefix.c_str(), transformDataArr.at(0).GetSourceTypeName().c_str(), transformDataOffset); - std::string entryStr = ""; + std::string entryStr; uint16_t arrayItemCnt = transformDataArr.size(); size_t i = 0; @@ -351,7 +325,7 @@ void ZCurveAnimation::DeclareReferences(const std::string& prefix) Declaration* decl = parent->GetDeclaration(transformDataOffset); if (decl == nullptr) { - parent->AddDeclarationArray(transformDataOffset, DeclarationAlignment::None, + parent->AddDeclarationArray(transformDataOffset, DeclarationAlignment::Align4, arrayItemCnt * transformDataArr.at(0).GetRawDataSize(), transformDataArr.at(0).GetSourceTypeName(), transformDataStr, arrayItemCnt, entryStr); @@ -380,7 +354,7 @@ void ZCurveAnimation::DeclareReferences(const std::string& prefix) Declaration* decl = parent->GetDeclaration(copyValuesOffset); if (decl == nullptr) { - parent->AddDeclarationArray(copyValuesOffset, DeclarationAlignment::None, + parent->AddDeclarationArray(copyValuesOffset, DeclarationAlignment::Align4, arrayItemCnt * 2, "s16", copyValuesStr, arrayItemCnt, entryStr); } @@ -391,81 +365,28 @@ void ZCurveAnimation::DeclareReferences(const std::string& prefix) } } +std::string ZCurveAnimation::GetBodySourceCode() const +{ + std::string refIndexStr; + Globals::Instance->GetSegmentedPtrName(refIndex, parent, "u8", refIndexStr); + std::string transformDataStr; + Globals::Instance->GetSegmentedPtrName(transformData, parent, "TransformData", + transformDataStr); + std::string copyValuesStr; + Globals::Instance->GetSegmentedPtrName(copyValues, parent, "s16", copyValuesStr); + + return StringHelper::Sprintf("\n\t%s,\n\t%s,\n\t%s,\n\t%i, %i\n", refIndexStr.c_str(), + transformDataStr.c_str(), copyValuesStr.c_str(), unk_0C, unk_10); +} + size_t ZCurveAnimation::GetRawDataSize() const { return 0x10; } -std::string ZCurveAnimation::GetSourceOutputCode(const std::string& prefix) +DeclarationAlignment ZCurveAnimation::GetDeclarationAlignment() const { - std::string bodyStr = ""; - uint32_t address = Seg2Filespace(rawDataIndex, parent->baseAddress); - - std::string refIndexStr = "NULL"; - if (refIndex != 0) - { - uint32_t refIndexOffset = Seg2Filespace(refIndex, parent->baseAddress); - Declaration* decl = parent->GetDeclaration(refIndexOffset); - if (decl == nullptr) - { - refIndexStr = StringHelper::Sprintf("%sCurveAnime_%s_%06X", prefix.c_str(), "Ref", - refIndexOffset); - } - else - { - refIndexStr = decl->varName; - } - } - - std::string transformDataStr = "NULL"; - if (transformData != 0) - { - uint32_t transformDataOffset = Seg2Filespace(transformData, parent->baseAddress); - Declaration* decl = parent->GetDeclaration(transformDataOffset); - if (decl == nullptr) - { - transformDataStr = StringHelper::Sprintf( - "%sCurveAnime_%s_%06X", prefix.c_str(), - transformDataArr.at(0).GetSourceTypeName().c_str(), transformDataOffset); - } - else - { - transformDataStr = decl->varName; - } - } - - std::string copyValuesStr = "NULL"; - if (copyValues != 0) - { - uint32_t copyValuesOffset = Seg2Filespace(copyValues, parent->baseAddress); - Declaration* decl = parent->GetDeclaration(copyValuesOffset); - if (decl == nullptr) - { - copyValuesStr = StringHelper::Sprintf("%sCurveAnime_%s_%06X", prefix.c_str(), "Copy", - copyValuesOffset); - } - else - { - copyValuesStr = decl->varName; - } - } - - bodyStr = - StringHelper::Sprintf("\n %s,\n %s,\n %s,\n %i, %i\n", refIndexStr.c_str(), - transformDataStr.c_str(), copyValuesStr.c_str(), unk_0C, unk_10); - - Declaration* decl = parent->GetDeclaration(address); - if (decl == nullptr) - { - parent->AddDeclaration(address, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), name, bodyStr); - } - else - { - decl->text = bodyStr; - } - - return ""; + return DeclarationAlignment::Align16; } std::string ZCurveAnimation::GetSourceTypeName() const @@ -479,14 +400,6 @@ ZLegacyAnimation::ZLegacyAnimation(ZFile* nParent) : ZAnimation(nParent) { } -void ZLegacyAnimation::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZAnimation::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), name, ""); -} - void ZLegacyAnimation::ParseRawData() { ZAnimation::ParseRawData(); @@ -556,7 +469,7 @@ void ZLegacyAnimation::DeclareReferences(const std::string& prefix) if (GETSEGNUM(jointKey) == parent->segment && !parent->HasDeclaration(jointKeyOffset)) { const auto res = jointKeyArray.at(0); - std::string jointKeyBody = ""; + std::string jointKeyBody; for (size_t i = 0; i < jointKeyArray.size(); i++) { @@ -580,8 +493,10 @@ std::string ZLegacyAnimation::GetBodySourceCode() const { std::string body = "\n"; - std::string frameDataName = parent->GetDeclarationPtrName(frameData); - std::string jointKeyName = parent->GetDeclarationPtrName(jointKey); + std::string frameDataName; + std::string jointKeyName; + Globals::Instance->GetSegmentedPtrName(frameData, parent, "s16", frameDataName); + Globals::Instance->GetSegmentedPtrName(jointKey, parent, "JointKey", jointKeyName); body += StringHelper::Sprintf("\t%i, %i,\n", frameCount, limbCount); body += StringHelper::Sprintf("\t%s,\n", frameDataName.c_str()); @@ -590,20 +505,6 @@ std::string ZLegacyAnimation::GetBodySourceCode() const return body; } -std::string ZLegacyAnimation::GetSourceOutputCode(const std::string& prefix) -{ - std::string body = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - if (decl == nullptr || decl->isPlaceholder) - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), name, body); - else - decl->text = body; - - return ""; -} - std::string ZLegacyAnimation::GetSourceTypeName() const { return "LegacyAnimationHeader"; diff --git a/tools/ZAPD/ZAPD/ZAnimation.h b/tools/ZAPD/ZAPD/ZAnimation.h index f7d2a7cf17..e5b69d3ef8 100644 --- a/tools/ZAPD/ZAPD/ZAnimation.h +++ b/tools/ZAPD/ZAPD/ZAnimation.h @@ -13,12 +13,7 @@ struct RotationIndex // uint16_t transX, transY, transZ; uint16_t x, y, z; - RotationIndex(uint16_t nX, uint16_t nY, uint16_t nZ) - { - x = nX; - y = nY; - z = nZ; - }; + RotationIndex(uint16_t nX, uint16_t nY, uint16_t nZ) : x(nX), y(nY), z(nZ) {} }; class ZAnimation : public ZResource @@ -28,12 +23,10 @@ public: ZAnimation(ZFile* nParent); - std::string GetSourceOutputCode(const std::string& prefix) override; ZResourceType GetResourceType() const override; protected: void ParseRawData() override; - void Save(const fs::path& outFolder) override; }; class ZNormalAnimation : public ZAnimation @@ -41,18 +34,22 @@ class ZNormalAnimation : public ZAnimation public: std::vector rotationValues; std::vector rotationIndices; - uint32_t rotationValuesSeg; - uint32_t rotationIndicesSeg; - int16_t limit; + segptr_t rotationValuesSeg = 0; + segptr_t rotationIndicesSeg = 0; + offset_t rotationValuesOffset = 0; + offset_t rotationIndicesOffset = 0; + int16_t limit = 0; ZNormalAnimation(ZFile* nParent); - std::string GetSourceOutputCode(const std::string& prefix) override; + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; std::string GetSourceTypeName() const override; -protected: - virtual void ParseRawData() override; + void ParseRawData() override; }; class ZLinkAnimation : public ZAnimation @@ -62,12 +59,12 @@ public: ZLinkAnimation(ZFile* nParent); - std::string GetSourceOutputCode(const std::string& prefix) override; + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; std::string GetSourceTypeName() const override; -protected: - virtual void ParseRawData() override; + void ParseRawData() override; }; class TransformData @@ -121,16 +118,17 @@ protected: std::vector copyValuesArr; public: - ZCurveAnimation(); ZCurveAnimation(ZFile* nParent); void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; + DeclarationAlignment GetDeclarationAlignment() const override; std::string GetSourceTypeName() const override; }; @@ -162,13 +160,10 @@ class ZLegacyAnimation : public ZAnimation public: ZLegacyAnimation(ZFile* nParent); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; - std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; + std::string GetBodySourceCode() const override; std::string GetSourceTypeName() const override; diff --git a/tools/ZAPD/ZAPD/ZArray.cpp b/tools/ZAPD/ZAPD/ZArray.cpp index e514960fb0..b1ba3a6693 100644 --- a/tools/ZAPD/ZAPD/ZArray.cpp +++ b/tools/ZAPD/ZAPD/ZArray.cpp @@ -1,7 +1,9 @@ #include "ZArray.h" + #include + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Array, ZArray); @@ -53,23 +55,56 @@ void ZArray::ParseXML(tinyxml2::XMLElement* reader) } } -std::string ZArray::GetSourceOutputCode(const std::string& prefix) +Declaration* ZArray::DeclareVar(const std::string& prefix, const std::string& bodyStr) { - std::string output = ""; + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + ZResource* res = resList.at(0); + Declaration* decl; + if (res->IsExternalResource()) + { + auto filepath = Globals::Instance->outputPath / name; + std::string includePath = StringHelper::Sprintf("%s.%s.inc", filepath.c_str(), + res->GetExternalExtension().c_str()); + decl = parent->AddDeclarationIncludeArray(rawDataIndex, includePath, GetRawDataSize(), + GetSourceTypeName(), name, arrayCnt); + decl->text = bodyStr; + decl->isExternal = true; + } + else + { + decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), name, arrayCnt, bodyStr); + } + + decl->staticConf = staticConf; + return decl; +} + +std::string ZArray::GetBodySourceCode() const +{ + std::string output; for (size_t i = 0; i < arrayCnt; i++) { - output += resList.at(i)->GetBodySourceCode(); + const auto& res = resList[i]; + output += "\t"; - if (i < arrayCnt - 1) + if (res->GetResourceType() == ZResourceType::Scalar || + res->GetResourceType() == ZResourceType::Vertex) + output += resList.at(i)->GetBodySourceCode(); + else + output += StringHelper::Sprintf("{ %s }", resList.at(i)->GetBodySourceCode().c_str()); + + if (i < arrayCnt - 1 || res->IsExternalResource()) output += ",\n"; } - if (parent != nullptr) - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - resList.at(0)->GetSourceTypeName(), name, arrayCnt, output); - - return ""; + return output; } size_t ZArray::GetRawDataSize() const @@ -80,7 +115,21 @@ size_t ZArray::GetRawDataSize() const return size; } +std::string ZArray::GetSourceTypeName() const +{ + return resList.at(0)->GetSourceTypeName(); +} + ZResourceType ZArray::GetResourceType() const { return ZResourceType::Array; } + +DeclarationAlignment ZArray::GetDeclarationAlignment() const +{ + if (resList.size() == 0) + { + return DeclarationAlignment::Align4; + } + return resList.at(0)->GetDeclarationAlignment(); +} diff --git a/tools/ZAPD/ZAPD/ZArray.h b/tools/ZAPD/ZAPD/ZArray.h index f43dc1242e..46a04d7329 100644 --- a/tools/ZAPD/ZAPD/ZArray.h +++ b/tools/ZAPD/ZAPD/ZArray.h @@ -14,11 +14,16 @@ public: void ParseXML(tinyxml2::XMLElement* reader) override; - std::string GetSourceOutputCode(const std::string& prefix) override; + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; + std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; + DeclarationAlignment GetDeclarationAlignment() const override; + protected: size_t arrayCnt; std::string childName; diff --git a/tools/ZAPD/ZAPD/ZBackground.cpp b/tools/ZAPD/ZAPD/ZBackground.cpp index 2bc4cbc9a5..4125f239f3 100644 --- a/tools/ZAPD/ZAPD/ZBackground.cpp +++ b/tools/ZAPD/ZAPD/ZBackground.cpp @@ -1,30 +1,22 @@ #include "ZBackground.h" -#include "BitConverter.h" -#include "File.h" + #include "Globals.h" -#include "Path.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/Path.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Background, ZBackground); #define JPEG_MARKER 0xFFD8FFE0 #define MARKER_DQT 0xFFDB +#define MARKER_EOI 0xFFD9 ZBackground::ZBackground(ZFile* nParent) : ZResource(nParent) { } -ZBackground::ZBackground(const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent) - : ZResource(nParent) -{ - rawDataIndex = nRawDataIndex; - name = GetDefaultName(prefix.c_str(), rawDataIndex); - outName = name; - - ParseRawData(); -} - void ZBackground::ParseRawData() { ZResource::ParseRawData(); @@ -36,7 +28,7 @@ void ZBackground::ParseRawData() uint8_t val = rawData.at(rawDataIndex + i); data.push_back(val); - if (BitConverter::ToUInt16BE(rawData, rawDataIndex + i) == 0xFFD9) + if (BitConverter::ToUInt16BE(rawData, rawDataIndex + i) == MARKER_EOI) { data.push_back(rawData.at(rawDataIndex + i + 1)); break; @@ -60,12 +52,6 @@ void ZBackground::ParseBinaryFile(const std::string& inFolder, bool appendOutNam CheckValidJpeg(filepath.generic_string()); } -void ZBackground::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - DeclareVar("", ""); -} - void ZBackground::CheckValidJpeg(const std::string& filepath) { std::string filename = outName; @@ -132,16 +118,28 @@ size_t ZBackground::GetRawDataSize() const return Globals::Instance->cfg.bgScreenHeight * Globals::Instance->cfg.bgScreenWidth * 2; } -void ZBackground::DeclareVar(const std::string& prefix, const std::string& bodyStr) const +Declaration* ZBackground::DeclareVar(const std::string& prefix, + [[maybe_unused]] const std::string& bodyStr) { std::string auxName = name; + std::string auxOutName = outName; - if (name == "") - auxName = GetDefaultName(prefix, rawDataIndex); + if (auxName == "") + auxName = GetDefaultName(prefix); - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align8, GetRawDataSize(), - GetSourceTypeName(), auxName, "SCREEN_WIDTH * SCREEN_HEIGHT / 4", - bodyStr); + if (auxOutName == "") + auxOutName = GetDefaultName(prefix); + + auto filepath = Globals::Instance->outputPath / fs::path(auxOutName).stem(); + + std::string incStr = + StringHelper::Sprintf("%s.%s.inc.c", filepath.c_str(), GetExternalExtension().c_str()); + + Declaration* decl = parent->AddDeclarationIncludeArray(rawDataIndex, incStr, GetRawDataSize(), + GetSourceTypeName(), auxName, 0); + decl->arrayItemCntStr = "SCREEN_WIDTH * SCREEN_HEIGHT / 4"; + decl->staticConf = staticConf; + return decl; } bool ZBackground::IsExternalResource() const @@ -160,7 +158,7 @@ void ZBackground::Save(const fs::path& outFolder) File::WriteAllBytes(filepath.string(), data); } -std::string ZBackground::GetBodySourceCode() +std::string ZBackground::GetBodySourceCode() const { std::string bodyStr = " "; @@ -177,23 +175,9 @@ std::string ZBackground::GetBodySourceCode() return bodyStr; } -std::string ZBackground::GetSourceOutputCode(const std::string& prefix) +std::string ZBackground::GetDefaultName(const std::string& prefix) const { - std::string bodyStr = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - - if (decl == nullptr) - DeclareVar(prefix, bodyStr); - else - decl->text = bodyStr; - - return ""; -} - -std::string ZBackground::GetDefaultName(const std::string& prefix, uint32_t address) -{ - return StringHelper::Sprintf("%sBackground_%06X", prefix.c_str(), address); + return StringHelper::Sprintf("%sBackground_%06X", prefix.c_str(), rawDataIndex); } std::string ZBackground::GetSourceTypeName() const @@ -205,3 +189,8 @@ ZResourceType ZBackground::GetResourceType() const { return ZResourceType::Background; } + +DeclarationAlignment ZBackground::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align8; +} diff --git a/tools/ZAPD/ZAPD/ZBackground.h b/tools/ZAPD/ZAPD/ZBackground.h index 292d8a4363..e3728bd984 100644 --- a/tools/ZAPD/ZAPD/ZBackground.h +++ b/tools/ZAPD/ZAPD/ZBackground.h @@ -11,25 +11,24 @@ protected: public: ZBackground(ZFile* nParent); - ZBackground(const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent); + + void ParseBinaryFile(const std::string& inFolder, bool appendOutName); void ParseRawData() override; - void ParseBinaryFile(const std::string& inFolder, bool appendOutName); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - void CheckValidJpeg(const std::string& filepath); + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; + std::string GetDefaultName(const std::string& prefix) const override; - size_t GetRawDataSize() const override; - - void DeclareVar(const std::string& prefix, const std::string& bodyStr) const; + void Save(const fs::path& outFolder) override; bool IsExternalResource() const override; - std::string GetExternalExtension() const override; - void Save(const fs::path& outFolder) override; - std::string GetBodySourceCode(); - std::string GetSourceOutputCode(const std::string& prefix) override; - static std::string GetDefaultName(const std::string& prefix, uint32_t address); - std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; + std::string GetExternalExtension() const override; + + size_t GetRawDataSize() const override; + DeclarationAlignment GetDeclarationAlignment() const override; + + void CheckValidJpeg(const std::string& filepath); }; diff --git a/tools/ZAPD/ZAPD/ZBlob.cpp b/tools/ZAPD/ZAPD/ZBlob.cpp index 6964e4ea99..c1f0788206 100644 --- a/tools/ZAPD/ZAPD/ZBlob.cpp +++ b/tools/ZAPD/ZAPD/ZBlob.cpp @@ -1,11 +1,11 @@ #include "ZBlob.h" -#include "BitConverter.h" -#include "File.h" -#include "Path.h" -#include "StringHelper.h" -#include "ZFile.h" -using namespace tinyxml2; +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/Path.h" +#include "Utils/StringHelper.h" +#include "ZFile.h" REGISTER_ZFILENODE(Blob, ZBlob); @@ -14,19 +14,6 @@ ZBlob::ZBlob(ZFile* nParent) : ZResource(nParent) RegisterRequiredAttribute("Size"); } -// Build Source File Mode -ZBlob* ZBlob::BuildFromXML(XMLElement* reader, const std::string& inFolder, bool readFile) -{ - ZBlob* blob = new ZBlob(nullptr); - - blob->ParseXML(reader); - - if (readFile) - blob->blobData = File::ReadAllBytes(inFolder + "/" + blob->name + ".bin"); - - return blob; -} - ZBlob* ZBlob::FromFile(const std::string& filePath) { ZBlob* blob = new ZBlob(nullptr); @@ -49,14 +36,38 @@ void ZBlob::ParseRawData() parent->GetRawData().begin() + rawDataIndex + blobSize); } -std::string ZBlob::GetSourceOutputCode(const std::string& prefix) +Declaration* ZBlob::DeclareVar(const std::string& prefix, + [[maybe_unused]] const std::string& bodyStr) { - sourceOutput = ""; + std::string auxName = name; + std::string auxOutName = outName; + + if (auxName == "") + auxName = GetDefaultName(prefix); + + if (auxOutName == "") + auxOutName = GetDefaultName(prefix); + + std::string path = Path::GetFileNameWithoutExtension(auxOutName); + + std::string assetOutDir = + (Globals::Instance->outputPath / Path::GetFileNameWithoutExtension(GetOutName())).string(); + + std::string incStr = + StringHelper::Sprintf("%s.%s.inc.c", assetOutDir.c_str(), GetExternalExtension().c_str()); + + return parent->AddDeclarationIncludeArray(rawDataIndex, incStr, GetRawDataSize(), + GetSourceTypeName(), auxName, blobData.size()); +} + +std::string ZBlob::GetBodySourceCode() const +{ + std::string sourceOutput; for (size_t i = 0; i < blobData.size(); i += 1) { if (i % 16 == 0) - sourceOutput += " "; + sourceOutput += "\t"; sourceOutput += StringHelper::Sprintf("0x%02X, ", blobData[i]); @@ -72,14 +83,14 @@ std::string ZBlob::GetSourceOutputCode(const std::string& prefix) return sourceOutput; } -std::string ZBlob::GetSourceOutputHeader(const std::string& prefix) +std::string ZBlob::GetSourceOutputHeader([[maybe_unused]] const std::string& prefix) { return StringHelper::Sprintf("extern u8 %s[];\n", name.c_str()); } void ZBlob::Save(const fs::path& outFolder) { - File::WriteAllBytes(outFolder / (name + ".bin"), blobData); + File::WriteAllBytes((outFolder / (name + ".bin")).string(), blobData); } bool ZBlob::IsExternalResource() const diff --git a/tools/ZAPD/ZAPD/ZBlob.h b/tools/ZAPD/ZAPD/ZBlob.h index 2f8d315729..86623b5119 100644 --- a/tools/ZAPD/ZAPD/ZBlob.h +++ b/tools/ZAPD/ZAPD/ZBlob.h @@ -8,13 +8,14 @@ class ZBlob : public ZResource public: ZBlob(ZFile* nParent); - static ZBlob* BuildFromXML(tinyxml2::XMLElement* reader, const std::string& inFolder, - bool readFile); static ZBlob* FromFile(const std::string& filePath); void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; - std::string GetSourceOutputCode(const std::string& prefix) override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; + std::string GetSourceOutputHeader(const std::string& prefix) override; void Save(const fs::path& outFolder) override; diff --git a/tools/ZAPD/ZAPD/ZCollision.cpp b/tools/ZAPD/ZAPD/ZCollision.cpp index 822b36584c..f9c0bf7d62 100644 --- a/tools/ZAPD/ZAPD/ZCollision.cpp +++ b/tools/ZAPD/ZAPD/ZCollision.cpp @@ -1,9 +1,11 @@ #include "ZCollision.h" -#include + +#include #include -#include "BitConverter.h" + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" REGISTER_ZFILENODE(Collision, ZCollisionHeader); @@ -13,9 +15,6 @@ ZCollisionHeader::ZCollisionHeader(ZFile* nParent) : ZResource(nParent) ZCollisionHeader::~ZCollisionHeader() { - for (WaterBoxHeader* waterBox : waterBoxes) - delete waterBox; - delete camData; } @@ -51,8 +50,16 @@ void ZCollisionHeader::ParseRawData() vertices.reserve(numVerts); polygons.reserve(numPolygons); + uint32_t currentPtr = vtxSegmentOffset; + for (uint16_t i = 0; i < numVerts; i++) - vertices.push_back(VertexEntry(rawData, vtxSegmentOffset + (i * 6))); + { + ZVector vec(parent); + vec.ExtractFromBinary(currentPtr, ZScalarType::ZSCALAR_S16, 3); + + currentPtr += vec.GetRawDataSize(); + vertices.push_back(vec); + } for (uint16_t i = 0; i < numPolygons; i++) polygons.push_back(PolygonEntry(rawData, polySegmentOffset + (i * 16))); @@ -74,34 +81,38 @@ void ZCollisionHeader::ParseRawData() polyTypeDefSegmentOffset, polygonTypes.size()); for (uint16_t i = 0; i < numWaterBoxes; i++) - waterBoxes.push_back(new WaterBoxHeader( + waterBoxes.push_back(WaterBoxHeader( rawData, waterBoxSegmentOffset + (i * (Globals::Instance->game == ZGame::OOT_SW97 ? 12 : 16)))); +} - std::string declaration = ""; +void ZCollisionHeader::DeclareReferences(const std::string& prefix) +{ + std::string declaration; + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); if (waterBoxes.size() > 0) { for (size_t i = 0; i < waterBoxes.size(); i++) { - declaration += StringHelper::Sprintf("\t{ %i, %i, %i, %i, %i, 0x%08X },", - waterBoxes[i]->xMin, waterBoxes[i]->ySurface, - waterBoxes[i]->zMin, waterBoxes[i]->xLength, - waterBoxes[i]->zLength, waterBoxes[i]->properties); + declaration += + StringHelper::Sprintf("\t{ %s },", waterBoxes[i].GetBodySourceCode().c_str()); if (i + 1 < waterBoxes.size()) declaration += "\n"; } - } - if (waterBoxAddress != 0) parent->AddDeclarationArray( - waterBoxSegmentOffset, DeclarationAlignment::None, 16 * waterBoxes.size(), "WaterBox", - StringHelper::Sprintf("%s_waterBoxes_%06X", name.c_str(), waterBoxSegmentOffset), 0, - declaration); + waterBoxSegmentOffset, DeclarationAlignment::Align4, 16 * waterBoxes.size(), "WaterBox", + StringHelper::Sprintf("%s_waterBoxes_%06X", auxName.c_str(), waterBoxSegmentOffset), + waterBoxes.size(), declaration); + } if (polygons.size() > 0) { - declaration = ""; + declaration.clear(); for (size_t i = 0; i < polygons.size(); i++) { @@ -113,17 +124,13 @@ void ZCollisionHeader::ParseRawData() declaration += "\n"; } - if (polyAddress != 0) - { - parent->AddDeclarationArray( - polySegmentOffset, DeclarationAlignment::None, polygons.size() * 16, - "CollisionPoly", - StringHelper::Sprintf("%s_polygons_%08X", name.c_str(), polySegmentOffset), 0, - declaration); - } + parent->AddDeclarationArray( + polySegmentOffset, DeclarationAlignment::Align4, polygons.size() * 16, "CollisionPoly", + StringHelper::Sprintf("%s_polygons_%08X", auxName.c_str(), polySegmentOffset), + polygons.size(), declaration); } - declaration = ""; + declaration.clear(); for (size_t i = 0; i < polygonTypes.size(); i++) { declaration += StringHelper::Sprintf("\t{ 0x%08lX, 0x%08lX },", polygonTypes[i] >> 32, @@ -135,58 +142,76 @@ void ZCollisionHeader::ParseRawData() if (polyTypeDefAddress != 0) parent->AddDeclarationArray( - polyTypeDefSegmentOffset, DeclarationAlignment::None, polygonTypes.size() * 8, + polyTypeDefSegmentOffset, DeclarationAlignment::Align4, polygonTypes.size() * 8, "SurfaceType", - StringHelper::Sprintf("%s_surfaceType_%08X", name.c_str(), polyTypeDefSegmentOffset), 0, - declaration); + StringHelper::Sprintf("%s_surfaceType_%08X", auxName.c_str(), polyTypeDefSegmentOffset), + polygonTypes.size(), declaration); - declaration = ""; + declaration.clear(); if (vertices.size() > 0) { - declaration = ""; + declaration.clear(); for (size_t i = 0; i < vertices.size(); i++) { - declaration += StringHelper::Sprintf("\t{ %6i, %6i, %6i },", vertices[i].x, - vertices[i].y, vertices[i].z); + declaration += + StringHelper::Sprintf("\t{ %s },", vertices[i].GetBodySourceCode().c_str()); if (i < vertices.size() - 1) declaration += "\n"; } + const auto& first = vertices.front(); if (vtxAddress != 0) parent->AddDeclarationArray( - vtxSegmentOffset, DeclarationAlignment::None, vertices.size() * 6, "Vec3s", - StringHelper::Sprintf("%s_vtx_%08X", name.c_str(), vtxSegmentOffset), 0, - declaration); - - declaration = ""; + vtxSegmentOffset, first.GetDeclarationAlignment(), + vertices.size() * first.GetRawDataSize(), first.GetSourceTypeName(), + StringHelper::Sprintf("%s_vtx_%08X", auxName.c_str(), vtxSegmentOffset), + vertices.size(), declaration); } +} - declaration = ""; - char waterBoxStr[2048]; - - if (waterBoxAddress != 0) - sprintf(waterBoxStr, "%s_waterBoxes_%06X", name.c_str(), waterBoxSegmentOffset); - else - sprintf(waterBoxStr, "NULL"); +std::string ZCollisionHeader::GetBodySourceCode() const +{ + std::string declaration; declaration += "\n"; - declaration += StringHelper::Sprintf(" { %i, %i, %i },\n { %i, %i, %i },\n", absMinX, - absMinY, absMinZ, absMaxX, absMaxY, absMaxZ); + declaration += StringHelper::Sprintf("\t{ %i, %i, %i },\n", absMinX, absMinY, absMinZ); + declaration += StringHelper::Sprintf("\t{ %i, %i, %i },\n", absMaxX, absMaxY, absMaxZ); - declaration += StringHelper::Sprintf( - " %i,\n %s_vtx_%08X,\n %i,\n %s_polygons_%08X,\n %s_surfaceType_%08X,\n " - "%s_camDataList_%08X,\n %i,\n %s\n", - numVerts, name.c_str(), vtxSegmentOffset, numPolygons, name.c_str(), polySegmentOffset, - name.c_str(), polyTypeDefSegmentOffset, name.c_str(), camDataSegmentOffset, numWaterBoxes, - waterBoxStr); + std::string vtxName; + Globals::Instance->GetSegmentedPtrName(vtxAddress, parent, "Vec3s", vtxName); + declaration += StringHelper::Sprintf("\t%i,\n\t%s,\n", numVerts, vtxName.c_str()); - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, DeclarationPadding::Pad16, - GetRawDataSize(), "CollisionHeader", - StringHelper::Sprintf("%s", name.c_str(), rawDataIndex), declaration); + std::string polyName; + Globals::Instance->GetSegmentedPtrName(polyAddress, parent, "CollisionPoly", polyName); + declaration += StringHelper::Sprintf("\t%i,\n\t%s,\n", numPolygons, polyName.c_str()); + + std::string surfaceName; + Globals::Instance->GetSegmentedPtrName(polyTypeDefAddress, parent, "SurfaceType", surfaceName); + declaration += StringHelper::Sprintf("\t%s,\n", surfaceName.c_str()); + + std::string camName; + Globals::Instance->GetSegmentedPtrName(camDataAddress, parent, "CamData", camName); + declaration += StringHelper::Sprintf("\t%s,\n", camName.c_str()); + + std::string waterBoxName; + Globals::Instance->GetSegmentedPtrName(waterBoxAddress, parent, "WaterBox", waterBoxName); + declaration += StringHelper::Sprintf("\t%i,\n\t%s\n", numWaterBoxes, waterBoxName.c_str()); + + return declaration; +} + +std::string ZCollisionHeader::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sCol_%06X", prefix.c_str(), rawDataIndex); +} + +std::string ZCollisionHeader::GetSourceTypeName() const +{ + return "CollisionHeader"; } ZResourceType ZCollisionHeader::GetResourceType() const @@ -213,15 +238,6 @@ PolygonEntry::PolygonEntry(const std::vector& rawData, uint32_t rawData d = BitConverter::ToUInt16BE(data, rawDataIndex + 14); } -VertexEntry::VertexEntry(const std::vector& rawData, uint32_t rawDataIndex) -{ - const uint8_t* data = rawData.data(); - - x = BitConverter::ToInt16BE(data, rawDataIndex + 0); - y = BitConverter::ToInt16BE(data, rawDataIndex + 2); - z = BitConverter::ToInt16BE(data, rawDataIndex + 4); -} - WaterBoxHeader::WaterBoxHeader(const std::vector& rawData, uint32_t rawDataIndex) { const uint8_t* data = rawData.data(); @@ -238,11 +254,18 @@ WaterBoxHeader::WaterBoxHeader(const std::vector& rawData, uint32_t raw properties = BitConverter::ToInt32BE(data, rawDataIndex + 12); } +std::string WaterBoxHeader::GetBodySourceCode() const +{ + return StringHelper::Sprintf("%i, %i, %i, %i, %i, 0x%08X", xMin, ySurface, zMin, xLength, + zLength, properties); +} + CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, const std::vector& rawData, uint32_t rawDataIndex, - uint32_t polyTypeDefSegmentOffset, uint32_t polygonTypesCnt) + uint32_t polyTypeDefSegmentOffset, + [[maybe_unused]] uint32_t polygonTypesCnt) { - std::string declaration = ""; + std::string declaration; // Parse CameraDataEntries int32_t numElements = (polyTypeDefSegmentOffset - rawDataIndex) / 8; @@ -257,7 +280,7 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, entry->cameraPosDataSeg = BitConverter::ToInt32BE(rawData, rawDataIndex + (entries.size() * 8) + 4); - if (entry->cameraPosDataSeg != 0 && GETSEGNUM(entry->cameraPosDataSeg) != 2) + if (entry->cameraPosDataSeg != 0 && GETSEGNUM(entry->cameraPosDataSeg) != SEGMENT_SCENE) { cameraPosDataSeg = rawDataIndex + (entries.size() * 8); break; @@ -294,7 +317,7 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, } parent->AddDeclarationArray( - rawDataIndex, DeclarationAlignment::None, entries.size() * 8, "CamData", + rawDataIndex, DeclarationAlignment::Align4, entries.size() * 8, "CamData", StringHelper::Sprintf("%s_camDataList_%08X", prefix.c_str(), rawDataIndex), entries.size(), declaration); @@ -302,7 +325,7 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, if (numDataTotal > 0) { - declaration = ""; + declaration.clear(); for (uint32_t i = 0; i < numDataTotal; i++) { CameraPositionData* data = @@ -317,12 +340,21 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, int32_t cameraPosDataIndex = GETSEGOFFSET(cameraPosDataSeg); uint32_t entrySize = numDataTotal * 0x6; parent->AddDeclarationArray( - cameraPosDataIndex, DeclarationAlignment::None, entrySize, "Vec3s", + cameraPosDataIndex, DeclarationAlignment::Align4, entrySize, "Vec3s", StringHelper::Sprintf("%s_camPosData_%08X", prefix.c_str(), cameraPosDataIndex), numDataTotal, declaration); } } +CameraDataList::~CameraDataList() +{ + for (auto entry : entries) + delete entry; + + for (auto camPosData : cameraPositionData) + delete camPosData; +} + CameraPositionData::CameraPositionData(const std::vector& rawData, uint32_t rawDataIndex) { x = BitConverter::ToInt16BE(rawData, rawDataIndex + 0); diff --git a/tools/ZAPD/ZAPD/ZCollision.h b/tools/ZAPD/ZAPD/ZCollision.h index 8b53f25035..0c6710e472 100644 --- a/tools/ZAPD/ZAPD/ZCollision.h +++ b/tools/ZAPD/ZAPD/ZCollision.h @@ -3,6 +3,7 @@ #include "ZFile.h" #include "ZResource.h" #include "ZRoom/ZRoom.h" +#include "ZVector.h" class PolygonEntry { @@ -14,17 +15,14 @@ public: PolygonEntry(const std::vector& rawData, uint32_t rawDataIndex); }; -class VertexEntry -{ -public: - int16_t x, y, z; - - VertexEntry(const std::vector& rawData, uint32_t rawDataIndex); -}; - class WaterBoxHeader { public: + WaterBoxHeader(const std::vector& rawData, uint32_t rawDataIndex); + + std::string GetBodySourceCode() const; + +protected: int16_t xMin; int16_t ySurface; int16_t zMin; @@ -32,8 +30,6 @@ public: int16_t zLength; int16_t pad; int32_t properties; - - WaterBoxHeader(const std::vector& rawData, uint32_t rawDataIndex); }; class CameraPositionData @@ -61,6 +57,7 @@ public: CameraDataList(ZFile* parent, const std::string& prefix, const std::vector& rawData, uint32_t rawDataIndex, uint32_t polyTypeDefSegmentOffset, uint32_t polygonTypesCnt); + ~CameraDataList(); }; class ZCollisionHeader : public ZResource @@ -81,17 +78,22 @@ public: uint32_t vtxSegmentOffset, polySegmentOffset, polyTypeDefSegmentOffset, camDataSegmentOffset, waterBoxSegmentOffset; - std::vector vertices; + std::vector vertices; std::vector polygons; std::vector polygonTypes; - std::vector waterBoxes; + std::vector waterBoxes; CameraDataList* camData; ZCollisionHeader(ZFile* nParent); ~ZCollisionHeader(); void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + std::string GetBodySourceCode() const override; + std::string GetDefaultName(const std::string& prefix) const override; + + std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; size_t GetRawDataSize() const override; diff --git a/tools/ZAPD/ZAPD/ZCutscene.cpp b/tools/ZAPD/ZAPD/ZCutscene.cpp index 2c0f7d3e33..237481079f 100644 --- a/tools/ZAPD/ZAPD/ZCutscene.cpp +++ b/tools/ZAPD/ZAPD/ZCutscene.cpp @@ -1,6 +1,7 @@ #include "ZCutscene.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZResource.h" REGISTER_ZFILENODE(Cutscene, ZCutscene); @@ -84,10 +85,9 @@ CutsceneCommandSceneTransFX::~CutsceneCommandSceneTransFX() { } -std::string ZCutscene::GetBodySourceCode() +std::string ZCutscene::GetBodySourceCode() const { - std::string output = ""; - size_t size = 0; + std::string output; uint32_t curPtr = 0; output += StringHelper::Sprintf(" CS_BEGIN_CUTSCENE(%i, %i),\n", commands.size(), endFrame); @@ -97,7 +97,6 @@ std::string ZCutscene::GetBodySourceCode() CutsceneCommand* cmd = commands[i]; output += " " + cmd->GenerateSourceCode(curPtr); curPtr += cmd->GetCommandSize(); - size += cmd->GetCommandSize(); } output += StringHelper::Sprintf(" CS_END(),\n", commands.size(), endFrame); @@ -105,32 +104,6 @@ std::string ZCutscene::GetBodySourceCode() return output; } -std::string ZCutscene::GetSourceOutputCode(const std::string& prefix) -{ - std::string bodyStr = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - - if (decl == nullptr) - DeclareVar(prefix, bodyStr); - else - decl->text = bodyStr; - - return ""; -} - -void ZCutscene::DeclareVar(const std::string& prefix, const std::string& bodyStr) const -{ - std::string auxName = name; - - if (auxName == "") - auxName = StringHelper::Sprintf("%sCutsceneData0x%06X", prefix.c_str(), rawDataIndex); - - parent->AddDeclarationArray(getSegmentOffset(), DeclarationAlignment::Align4, - DeclarationPadding::Pad16, GetRawDataSize(), "s32", auxName, 0, - bodyStr); -} - size_t ZCutscene::GetRawDataSize() const { size_t size = 0; @@ -151,12 +124,6 @@ size_t ZCutscene::GetRawDataSize() const return size; } -void ZCutscene::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - DeclareVar(parent->GetName(), ""); -} - void ZCutscene::ParseRawData() { ZResource::ParseRawData(); @@ -447,7 +414,8 @@ ZResourceType ZCutscene::GetResourceType() const return ZResourceType::Cutscene; } -CutsceneCommand::CutsceneCommand(const std::vector& rawData, uint32_t rawDataIndex) +CutsceneCommand::CutsceneCommand([[maybe_unused]] const std::vector& rawData, + [[maybe_unused]] uint32_t rawDataIndex) { } @@ -478,7 +446,7 @@ CutsceneCameraPoint::CutsceneCameraPoint(const std::vector& rawData, ui continueFlag = data[rawDataIndex + 0]; cameraRoll = data[rawDataIndex + 1]; nextPointFrame = BitConverter::ToInt16BE(data, rawDataIndex + 2); - viewAngle = BitConverter::ToInt32BE(data, rawDataIndex + 4); + viewAngle = BitConverter::ToFloatBE(data, rawDataIndex + 4); posX = BitConverter::ToInt16BE(data, rawDataIndex + 8); posY = BitConverter::ToInt16BE(data, rawDataIndex + 10); @@ -522,12 +490,12 @@ std::string CutsceneCommandSetCameraPos::GetCName() return ""; } -std::string CutsceneCommandSetCameraPos::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandSetCameraPos::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; - std::string listStr = ""; - std::string posStr = ""; + std::string listStr; + std::string posStr; if (commandID == (int32_t)CutsceneCommands::SetCameraFocus) { @@ -554,11 +522,14 @@ std::string CutsceneCommandSetCameraPos::GenerateSourceCode(uint32_t baseAddress for (size_t i = 0; i < entries.size(); i++) { - result += StringHelper::Sprintf(" %s(%i, %i, %i, 0x%06X, %i, %i, %i, %i),\n", - posStr.c_str(), entries[i]->continueFlag, + std::string continueMacro = "CS_CMD_CONTINUE"; + if (entries[i]->continueFlag != 0) + continueMacro = "CS_CMD_STOP"; + result += StringHelper::Sprintf(" %s(%s, 0x%02X, %i, %ff, %i, %i, %i, 0x%04X),\n", + posStr.c_str(), continueMacro.c_str(), entries[i]->cameraRoll, entries[i]->nextPointFrame, - *(uint32_t*)&entries[i]->viewAngle, entries[i]->posX, - entries[i]->posY, entries[i]->posZ, entries[i]->unused); + entries[i]->viewAngle, entries[i]->posX, entries[i]->posY, + entries[i]->posZ, entries[i]->unused); } return result; @@ -610,9 +581,9 @@ std::string CutsceneCommandFadeBGM::GetCName() return "CsCmdMusicFade"; } -std::string CutsceneCommandFadeBGM::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandFadeBGM::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_FADE_BGM_LIST(%i),\n", entries.size()); @@ -663,9 +634,9 @@ CutsceneCommandPlayBGM::CutsceneCommandPlayBGM(const std::vector& rawDa } } -std::string CutsceneCommandPlayBGM::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandPlayBGM::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_PLAY_BGM_LIST(%i),\n", entries.size()); @@ -706,9 +677,9 @@ CutsceneCommandStopBGM::CutsceneCommandStopBGM(const std::vector& rawDa } } -std::string CutsceneCommandStopBGM::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandStopBGM::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_STOP_BGM_LIST(%i),\n", entries.size()); @@ -764,9 +735,9 @@ CutsceneCommandEnvLighting::CutsceneCommandEnvLighting(const std::vector& raw } } -std::string CutsceneCommandUnknown9::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandUnknown9::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_CMD_09_LIST(%i),\n", entries.size()); @@ -878,9 +849,9 @@ CutsceneCommandUnknown::CutsceneCommandUnknown(const std::vector& rawDa } } -std::string CutsceneCommandUnknown::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandUnknown::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_UNK_DATA_LIST(0x%02X, %i),\n", commandID, entries.size()); @@ -936,9 +907,9 @@ std::string CutsceneCommandDayTime::GetCName() return "CsCmdDayTime"; } -std::string CutsceneCommandDayTime::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandDayTime::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_TIME_LIST(%i),\n", entries.size()); @@ -987,9 +958,9 @@ std::string CutsceneCommandTextbox::GetCName() return "CsCmdTextbox"; } -std::string CutsceneCommandTextbox::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandTextbox::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_TEXT_LIST(%i),\n", entries.size()); @@ -1033,9 +1004,9 @@ ActorAction::ActorAction(const std::vector& rawData, uint32_t rawDataIn endPosX = BitConverter::ToInt32BE(data, rawDataIndex + 24); endPosY = BitConverter::ToInt32BE(data, rawDataIndex + 28); endPosZ = BitConverter::ToInt32BE(data, rawDataIndex + 32); - normalX = BitConverter::ToInt32BE(data, rawDataIndex + 36); - normalY = BitConverter::ToInt32BE(data, rawDataIndex + 40); - normalZ = BitConverter::ToInt32BE(data, rawDataIndex + 44); + normalX = BitConverter::ToFloatBE(data, rawDataIndex + 36); + normalY = BitConverter::ToFloatBE(data, rawDataIndex + 40); + normalZ = BitConverter::ToFloatBE(data, rawDataIndex + 44); } CutsceneCommandActorAction::CutsceneCommandActorAction(const std::vector& rawData, @@ -1053,10 +1024,10 @@ CutsceneCommandActorAction::CutsceneCommandActorAction(const std::vectoraction, entries[i]->startFrame, entries[i]->endFrame, entries[i]->rotX, - entries[i]->rotY, entries[i]->rotZ, entries[i]->startPosX, entries[i]->startPosY, - entries[i]->startPosZ, entries[i]->endPosX, entries[i]->endPosY, entries[i]->endPosZ, - *(int32_t*)&entries[i]->normalX, *(int32_t*)&entries[i]->normalY, - *(int32_t*)&entries[i]->normalZ); + "\t\t%s(0x%04X, %i, %i, 0x%04X, 0x%04X, 0x%04X, %i, %i, %i, %i, %i, %i, %.11ef, " + "%.11ef, %.11ef),\n", + subCommand.c_str(), entries[i]->action, entries[i]->startFrame, entries[i]->endFrame, + entries[i]->rotX, entries[i]->rotY, entries[i]->rotZ, entries[i]->startPosX, + entries[i]->startPosY, entries[i]->startPosZ, entries[i]->endPosX, entries[i]->endPosY, + entries[i]->endPosZ, entries[i]->normalX, entries[i]->normalY, entries[i]->normalZ); } return result; @@ -1111,9 +1081,9 @@ std::string CutsceneCommandTerminator::GetCName() return "CsCmdBase"; } -std::string CutsceneCommandTerminator::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandTerminator::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_TERMINATOR(0x%04X, %i, %i),\n", base, startFrame, endFrame); @@ -1133,9 +1103,9 @@ CutsceneCommandEnd::CutsceneCommandEnd(const std::vector& rawData, uint endFrame = (uint16_t)BitConverter::ToInt16BE(rawData, rawDataIndex + 4); } -std::string CutsceneCommandEnd::GenerateSourceCode(uint32_t baseAddress) +std::string CutsceneCommandEnd::GenerateSourceCode([[maybe_unused]] uint32_t baseAddress) { - std::string result = ""; + std::string result; result += StringHelper::Sprintf("CS_END(),\n"); @@ -1187,9 +1157,9 @@ CutsceneCommandSpecialAction::CutsceneCommandSpecialAction(const std::vectorAddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, 0, bodyStr); + decl->staticConf = staticConf; + return decl; +} + +std::string ZCutsceneBase::GetSourceTypeName() const +{ + return "CutsceneData"; +} diff --git a/tools/ZAPD/ZAPD/ZCutscene.h b/tools/ZAPD/ZAPD/ZCutscene.h index 2167379589..cbb6a78b02 100644 --- a/tools/ZAPD/ZAPD/ZCutscene.h +++ b/tools/ZAPD/ZAPD/ZCutscene.h @@ -49,7 +49,7 @@ public: int8_t continueFlag; int8_t cameraRoll; int16_t nextPointFrame; - uint32_t viewAngle; + float viewAngle; int16_t posX, posY, posZ; int16_t unused; @@ -352,7 +352,7 @@ public: int16_t rotX, rotY, rotZ; int32_t startPosX, startPosY, startPosZ; int32_t endPosX, endPosY, endPosZ; - int32_t normalX, normalY, normalZ; + float normalX, normalY, normalZ; ActorAction(const std::vector& rawData, uint32_t rawDataIndex); }; @@ -412,9 +412,10 @@ class ZCutsceneBase : public ZResource { public: ZCutsceneBase(ZFile* nParent); - virtual std::string GetBodySourceCode() = 0; - virtual void DeclareVar(const std::string& prefix, const std::string& bodyStr) const = 0; - virtual uint32_t getSegmentOffset() const = 0; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + + std::string GetSourceTypeName() const override; }; class ZCutscene : public ZCutsceneBase @@ -425,18 +426,14 @@ public: void ParseRawData() override; - std::string GetBodySourceCode() override; - void DeclareVar(const std::string& prefix, const std::string& bodyStr) const override; - std::string GetSourceOutputCode(const std::string& prefix) override; + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; - CutsceneCommands GetCommandFromID(int32_t id); - uint32_t getSegmentOffset() const override { return rawDataIndex; } ZResourceType GetResourceType() const override; - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; + CutsceneCommands GetCommandFromID(int32_t id); -protected: int32_t numCommands; int32_t endFrame; std::vector commands; diff --git a/tools/ZAPD/ZAPD/ZCutsceneMM.cpp b/tools/ZAPD/ZAPD/ZCutsceneMM.cpp index ed663da81b..d0208bc070 100644 --- a/tools/ZAPD/ZAPD/ZCutsceneMM.cpp +++ b/tools/ZAPD/ZAPD/ZCutsceneMM.cpp @@ -1,6 +1,7 @@ #include "ZCutsceneMM.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" ZCutsceneMM::ZCutsceneMM(ZFile* nParent) : ZCutsceneBase(nParent) { @@ -12,9 +13,9 @@ ZCutsceneMM::~ZCutsceneMM() delete cmd; } -std::string ZCutsceneMM::GetBodySourceCode() +std::string ZCutsceneMM::GetBodySourceCode() const { - std::string output = ""; + std::string output; output += StringHelper::Sprintf(" CS_BEGIN_CUTSCENE(%i, %i),", numCommands, endFrame); @@ -22,51 +23,19 @@ std::string ZCutsceneMM::GetBodySourceCode() { if ((i % 4) == 0) output += "\n "; - output += StringHelper::Sprintf("0x%08X,", data[i]); + output += StringHelper::Sprintf("0x%08X, ", data[i]); } return output; } -std::string ZCutsceneMM::GetSourceOutputCode(const std::string& prefix) -{ - std::string bodyStr = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - - if (decl == nullptr) - DeclareVar(prefix, bodyStr); - else - decl->text = bodyStr; - - return ""; -} - -void ZCutsceneMM::DeclareVar(const std::string& prefix, const std::string& bodyStr) const -{ - std::string auxName = name; - - if (auxName == "") - auxName = StringHelper::Sprintf("%sCutsceneData0x%06X", prefix.c_str(), rawDataIndex); - - parent->AddDeclarationArray(getSegmentOffset(), DeclarationAlignment::Align4, GetRawDataSize(), - "s32", auxName, 0, bodyStr); -} - size_t ZCutsceneMM::GetRawDataSize() const { return 8 + data.size() * 4; } -void ZCutsceneMM::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - DeclareVar(parent->GetName(), ""); -} - void ZCutsceneMM::ParseRawData() { - segmentOffset = rawDataIndex; const auto& rawData = parent->GetRawData(); numCommands = BitConverter::ToInt32BE(rawData, rawDataIndex + 0); diff --git a/tools/ZAPD/ZAPD/ZCutsceneMM.h b/tools/ZAPD/ZAPD/ZCutsceneMM.h index 5cda5a1eeb..41b7de37f3 100644 --- a/tools/ZAPD/ZAPD/ZCutsceneMM.h +++ b/tools/ZAPD/ZAPD/ZCutsceneMM.h @@ -10,22 +10,16 @@ class ZCutsceneMM : public ZCutsceneBase { public: - uint32_t segmentOffset; - ZCutsceneMM(ZFile* nParent); virtual ~ZCutsceneMM(); - std::string GetBodySourceCode() override; - void DeclareVar(const std::string& prefix, const std::string& bodyStr) const override; - std::string GetSourceOutputCode(const std::string& prefix) override; + std::string GetBodySourceCode() const override; + size_t GetRawDataSize() const override; - uint32_t getSegmentOffset() const override { return segmentOffset; } void ParseRawData() override; ZResourceType GetResourceType() const override; - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - protected: int32_t numCommands; int32_t endFrame; diff --git a/tools/ZAPD/ZAPD/ZDisplayList.cpp b/tools/ZAPD/ZAPD/ZDisplayList.cpp index 9d9cca3fe9..f7be34a22d 100644 --- a/tools/ZAPD/ZAPD/ZDisplayList.cpp +++ b/tools/ZAPD/ZAPD/ZDisplayList.cpp @@ -1,26 +1,22 @@ #include "ZDisplayList.h" -#include -#include #include #include #include -#include -#include "BitConverter.h" -#include "Globals.h" -#include "HighLevel/HLModelIntermediette.h" -#include "OutputFormatter.h" -#include "StringHelper.h" -#include "gfxd.h" +#include -using namespace tinyxml2; +#include "Globals.h" +#include "OutputFormatter.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/Path.h" +#include "Utils/StringHelper.h" +#include "gfxd.h" REGISTER_ZFILENODE(DList, ZDisplayList); ZDisplayList::ZDisplayList(ZFile* nParent) : ZResource(nParent) { - defines = ""; - sceneSegName = ""; lastTexWidth = 0; lastTexHeight = 0; lastTexAddr = 0; @@ -30,7 +26,6 @@ ZDisplayList::ZDisplayList(ZFile* nParent) : ZResource(nParent) lastTexLoaded = false; lastTexIsPalette = false; name = ""; - scene = nullptr; dListType = Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX; } @@ -48,21 +43,30 @@ void ZDisplayList::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDat rawDataIndex = nRawDataIndex; ParseXML(reader); - int32_t rawDataSize = ZDisplayList::GetDListLength( - parent->GetRawData(), rawDataIndex, - Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); - numInstructions = rawDataSize / 8; - ParseRawData(); + // Don't parse raw data of external files + if (parent->GetMode() != ZFileMode::ExternalFile) + { + int32_t rawDataSize = ZDisplayList::GetDListLength( + parent->GetRawData(), rawDataIndex, + Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); + numInstructions = rawDataSize / 8; + ParseRawData(); + } - DeclareVar("", ""); + Declaration* decl = DeclareVar("", ""); + decl->declaredInXml = true; } -ZDisplayList::ZDisplayList(uint32_t nRawDataIndex, int32_t rawDataSize, ZFile* nParent) - : ZDisplayList(nParent) +void ZDisplayList::ExtractFromBinary(uint32_t nRawDataIndex, int32_t rawDataSize) { rawDataIndex = nRawDataIndex; - name = StringHelper::Sprintf("DL_%06X", rawDataIndex); + name = GetDefaultName(parent->GetName()); numInstructions = rawDataSize / 8; + + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; + ParseRawData(); } @@ -79,14 +83,24 @@ void ZDisplayList::ParseRawData() } } -Declaration* ZDisplayList::DeclareVar(const std::string& prefix, const std::string& bodyStr) +Declaration* ZDisplayList::DeclareVar([[maybe_unused]] const std::string& prefix, + const std::string& bodyStr) { - return parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align8, GetRawDataSize(), - GetSourceTypeName(), name, 0, bodyStr, true); + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), name, numInstructions, bodyStr); + decl->isExternal = true; + decl->staticConf = staticConf; + return decl; } -void ZDisplayList::ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, std::string prefix, - char* line) +std::string ZDisplayList::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sDL_%06X", prefix.c_str(), rawDataIndex); +} + +void ZDisplayList::ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, + const std::string& prefix, char* line) { switch (opcode) { @@ -258,10 +272,10 @@ void ZDisplayList::ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, st sprintf(line, "gsSPBranchLessZraw(%sDlist0x%06X, 0x%02X, 0x%02X),", prefix.c_str(), h & 0x00FFFFFF, (a / 5) | (b / 2), z); - ZDisplayList* nList = new ZDisplayList( - h & 0x00FFFFFF, GetDListLength(parent->GetRawData(), h & 0x00FFFFFF, dListType), - parent); - nList->scene = scene; + ZDisplayList* nList = new ZDisplayList(parent); + nList->ExtractFromBinary( + h & 0x00FFFFFF, GetDListLength(parent->GetRawData(), h & 0x00FFFFFF, dListType)); + nList->SetName(nList->GetDefaultName(prefix)); otherDLists.push_back(nList); i++; @@ -277,7 +291,8 @@ void ZDisplayList::ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, st } } -void ZDisplayList::ParseF3DEX(F3DEXOpcode opcode, uint64_t data, std::string prefix, char* line) +void ZDisplayList::ParseF3DEX(F3DEXOpcode opcode, uint64_t data, const std::string& prefix, + char* line) { switch (opcode) { @@ -411,31 +426,40 @@ int32_t ZDisplayList::GetDListLength(const std::vector& rawData, uint32 DListType dListType) { uint8_t endDLOpcode; + uint8_t branchListOpcode; if (dListType == DListType::F3DZEX) - endDLOpcode = (uint8_t)F3DZEXOpcode::G_ENDDL; + { + endDLOpcode = static_cast(F3DZEXOpcode::G_ENDDL); + branchListOpcode = static_cast(F3DZEXOpcode::G_DL); + } else - endDLOpcode = (uint8_t)F3DEXOpcode::G_ENDDL; + { + endDLOpcode = static_cast(F3DEXOpcode::G_ENDDL); + branchListOpcode = static_cast(F3DEXOpcode::G_DL); + } uint32_t ptr = rawDataIndex; size_t rawDataSize = rawData.size(); while (true) { - if (ptr > rawDataSize) + if (ptr >= rawDataSize) { - throw std::runtime_error( - StringHelper::Sprintf("%s: Fatal error.\n" - "\t End of file found when trying to find the end of the " - "DisplayList at offset: '0x%X'.\n", - __PRETTY_FUNCTION__, rawDataIndex)); - throw std::runtime_error(""); + throw std::runtime_error(StringHelper::Sprintf( + "%s: Fatal error.\n" + "\t End of file found when trying to find the end of the " + "DisplayList at offset: '0x%X'.\n", + "Raw data size: 0x%zX.\n", __PRETTY_FUNCTION__, rawDataIndex, rawDataSize)); } uint8_t opcode = rawData.at(ptr); + bool dlNoPush = rawData.at(ptr + 1) == 1; ptr += 8; - if (opcode == endDLOpcode) + if (opcode == endDLOpcode || (opcode == branchListOpcode && dlNoPush)) + { return ptr - rawDataIndex; + } } } @@ -461,7 +485,7 @@ bool ZDisplayList::SequenceCheck(std::vector sequence, int32_t sta } int32_t ZDisplayList::OptimizationChecks(int32_t startIndex, std::string& output, - std::string prefix) + const std::string& prefix) { int32_t result = -1; @@ -474,13 +498,8 @@ int32_t ZDisplayList::OptimizationChecks(int32_t startIndex, std::string& output } int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std::string& output, - std::string prefix) + [[maybe_unused]] const std::string& prefix) { - if (scene == nullptr) - { - return -1; - } - std::vector sequence = {F3DZEXOpcode::G_SETTIMG, F3DZEXOpcode::G_SETTILE, F3DZEXOpcode::G_RDPLOADSYNC, F3DZEXOpcode::G_LOADBLOCK, F3DZEXOpcode::G_RDPPIPESYNC, F3DZEXOpcode::G_SETTILE, @@ -498,7 +517,7 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std uint32_t texAddr, tmem, rtile, fmt, siz, sizB, width, height, width2, height2, pal, cms, cmt, masks, maskt, shifts, shiftt; - std::string texStr = ""; + std::string texStr; // gsDPSetTextureImage { @@ -514,17 +533,7 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std lastTexSeg = segmentNumber; - ZFile* auxParent = parent; - if (parent->segment != segmentNumber && Globals::Instance->HasSegment(segmentNumber)) - auxParent = Globals::Instance->segmentRefFiles.at(segmentNumber); - - Declaration* decl = auxParent->GetDeclaration(texAddr); - if (Globals::Instance->HasSegment(segmentNumber) && decl != nullptr) - texStr = decl->varName; - else if (lastTexture != nullptr) - texStr = lastTexture->GetName(); - else - texStr = auxParent->GetDeclarationPtrName(data & 0xFFFFFFFF); + Globals::Instance->GetSegmentedPtrName(data & 0xFFFFFFFF, parent, "", texStr); } // gsDPSetTile @@ -593,12 +602,12 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std height2 = (vvv >> 2) + 1; } - std::string fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", + const char* fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", "G_IM_FMT_I"}; - std::string sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; + const char* sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; // output += StringHelper::Sprintf("gsDPLoadTextureBlock(%s, %s, %s, %i, %i, %i, %i, %i, %i, - // %i, %i, %i),", texStr.c_str(), fmtTbl[fmt].c_str(), sizTbl[siz].c_str(), width, height, + // %i, %i, %i),", texStr.c_str(), fmtTbl[fmt], sizTbl[siz].c_str(), width, height, // pal, cms, cmt, masks, maskt, shifts, shiftt); if (siz == 2 && sizB == 0) @@ -606,26 +615,26 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std if (tmem != 0) output += StringHelper::Sprintf( "gsDPLoadMultiBlock_4b(%s, %i, %i, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - texStr.c_str(), tmem, rtile, fmtTbl[fmt].c_str(), width2, height2, pal, cms, - cmt, masks, maskt, shifts, shiftt); + texStr.c_str(), tmem, rtile, fmtTbl[fmt], width2, height2, pal, cms, cmt, masks, + maskt, shifts, shiftt); else output += StringHelper::Sprintf( "gsDPLoadTextureBlock_4b(%s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - texStr.c_str(), fmtTbl[fmt].c_str(), width2, height2, pal, cms, cmt, masks, - maskt, shifts, shiftt); + texStr.c_str(), fmtTbl[fmt], width2, height2, pal, cms, cmt, masks, maskt, + shifts, shiftt); } else if (siz == 2 && sizB != 0) { if (tmem != 0) output += StringHelper::Sprintf( "gsDPLoadMultiBlock(%s, %i, %i, %s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - texStr.c_str(), tmem, rtile, fmtTbl[fmt].c_str(), sizTbl[sizB].c_str(), width2, - height2, pal, cms, cmt, masks, maskt, shifts, shiftt); + texStr.c_str(), tmem, rtile, fmtTbl[fmt], sizTbl[sizB], width2, height2, pal, + cms, cmt, masks, maskt, shifts, shiftt); else output += StringHelper::Sprintf( "gsDPLoadTextureBlock(%s, %s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - texStr.c_str(), fmtTbl[fmt].c_str(), sizTbl[sizB].c_str(), width2, height2, pal, - cms, cmt, masks, maskt, shifts, shiftt); + texStr.c_str(), fmtTbl[fmt], sizTbl[sizB], width2, height2, pal, cms, cmt, + masks, maskt, shifts, shiftt); } else { @@ -638,15 +647,15 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std lastTexSiz = (F3DZEXTexSizes)siz; lastTexLoaded = true; - TextureGenCheck(prefix); + TextureGenCheck(); return -1; } output += StringHelper::Sprintf( "gsDPLoadMultiBlock(%s, %i, %i, %s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - texStr.c_str(), tmem, rtile, fmtTbl[fmt].c_str(), sizTbl[siz].c_str(), width, - height, pal, cms, cmt, masks, maskt, shifts, shiftt); + texStr.c_str(), tmem, rtile, fmtTbl[fmt], sizTbl[siz], width, height, pal, cms, cmt, + masks, maskt, shifts, shiftt); } lastTexAddr = texAddr; @@ -656,7 +665,7 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std lastTexSiz = (F3DZEXTexSizes)siz; lastTexLoaded = true; - TextureGenCheck(prefix); + TextureGenCheck(); return (int32_t)sequence.size(); } @@ -664,7 +673,7 @@ int32_t ZDisplayList::OptimizationCheck_LoadTextureBlock(int32_t startIndex, std return -1; } -void ZDisplayList::Opcode_G_DL(uint64_t data, std::string prefix, char* line) +void ZDisplayList::Opcode_G_DL(uint64_t data, const std::string& prefix, char* line) { int32_t pp = (data & 0x00FF000000000000) >> 56; int32_t segNum = GETSEGNUM(data); @@ -704,20 +713,12 @@ void ZDisplayList::Opcode_G_DL(uint64_t data, std::string prefix, char* line) } else { - ZDisplayList* nList = new ZDisplayList( - GETSEGOFFSET(data), GetDListLength(parent->GetRawData(), GETSEGOFFSET(data), dListType), - parent); + ZDisplayList* nList = new ZDisplayList(parent); + nList->ExtractFromBinary(GETSEGOFFSET(data), GetDListLength(parent->GetRawData(), + GETSEGOFFSET(data), dListType)); + nList->SetName(nList->GetDefaultName(prefix)); - // if (scene != nullptr) - { - nList->scene = scene; - otherDLists.push_back(nList); - } - // else - //{ - // nList->SetName(StringHelper::Sprintf("%sDlist0x%06lX", prefix.c_str(), - // SEG2FILESPACE(data))); nList->GetSourceOutputCode(prefix); - //} + otherDLists.push_back(nList); } } @@ -780,10 +781,10 @@ void ZDisplayList::Opcode_G_MTX(uint64_t data, char* line) else pp = (data & 0x000000FF00000000) >> 32; - std::string matrixRef = ""; + std::string matrixRef; - if (Globals::Instance->symbolMap.find(mm) != Globals::Instance->symbolMap.end()) - matrixRef = StringHelper::Sprintf("&%s", Globals::Instance->symbolMap[mm].c_str()); + if (Globals::Instance->cfg.symbolMap.find(mm) != Globals::Instance->cfg.symbolMap.end()) + matrixRef = StringHelper::Sprintf("&%s", Globals::Instance->cfg.symbolMap[mm].c_str()); else matrixRef = StringHelper::Sprintf("0x%08X", mm); @@ -832,29 +833,28 @@ void ZDisplayList::Opcode_G_VTX(uint64_t data, char* line) StringHelper::Sprintf("0x%08X", segmented), ""); return; } - references.push_back(vtxAddr); + references.push_back(data); { uint32_t currentPtr = Seg2Filespace(data, parent->baseAddress); + Declaration* decl; // Check for vertex intersections from other display lists // TODO: These two could probably be condenced to one... - if (parent->GetDeclarationRanged(vtxAddr + (nn * 16)) != nullptr) + decl = parent->GetDeclarationRanged(vtxAddr + (nn * 16)); + if (decl != nullptr) { - // Declaration* decl = parent->GetDeclarationRanged(vtxAddr + (nn * 16)); - uint32_t addr = parent->GetDeclarationRangedAddress(vtxAddr + (nn * 16)); - int32_t diff = addr - vtxAddr; + int32_t diff = decl->address - vtxAddr; if (diff > 0) nn = diff / 16; else nn = 0; } - if (parent->GetDeclarationRanged(vtxAddr) != nullptr) + decl = parent->GetDeclarationRanged(vtxAddr); + if (decl != nullptr) { - // Declaration* decl = parent->GetDeclarationRanged(vtxAddr); - uint32_t addr = parent->GetDeclarationRangedAddress(vtxAddr); - int32_t diff = addr - vtxAddr; + int32_t diff = decl->address - vtxAddr; if (diff > 0) nn = diff / 16; else @@ -869,8 +869,7 @@ void ZDisplayList::Opcode_G_VTX(uint64_t data, char* line) for (int32_t i = 0; i < nn; i++) { ZVtx vtx(parent); - vtx.SetRawDataIndex(currentPtr); - vtx.ParseRawData(); + vtx.ExtractFromFile(currentPtr); vtxList.push_back(vtx); currentPtr += 16; @@ -899,13 +898,13 @@ void ZDisplayList::Opcode_G_TEXTURE(uint64_t data, char* line) nnnnnnn == 1 ? "G_ON" : "G_OFF"); } -void ZDisplayList::Opcode_G_SETTIMG(uint64_t data, std::string prefix, char* line) +void ZDisplayList::Opcode_G_SETTIMG(uint64_t data, const std::string& prefix, char* line) { int32_t __ = (data & 0x00FF000000000000) >> 48; int32_t www = (data & 0x00000FFF00000000) >> 32; - std::string fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", + const char* fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", "G_IM_FMT_I"}; - std::string sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; + const char* sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; uint32_t fmt = (__ & 0xE0) >> 5; uint32_t siz = (__ & 0x18) >> 3; @@ -913,7 +912,7 @@ void ZDisplayList::Opcode_G_SETTIMG(uint64_t data, std::string prefix, char* lin if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) printf("TextureGenCheck G_SETTIMG\n"); - TextureGenCheck(prefix); // HOTSPOT + TextureGenCheck(); // HOTSPOT lastTexFmt = (F3DZEXTexFormats)fmt; lastTexSiz = (F3DZEXTexSizes)siz; @@ -945,13 +944,15 @@ void ZDisplayList::Opcode_G_SETTIMG(uint64_t data, std::string prefix, char* lin sprintf(texStr, "0x%08lX", data & 0xFFFFFFFF); } - sprintf(line, "gsDPSetTextureImage(%s, %s, %i, %s),", fmtTbl[fmt].c_str(), - sizTbl[siz].c_str(), www + 1, texStr); + sprintf(line, "gsDPSetTextureImage(%s, %s, %i, %s),", fmtTbl[fmt], sizTbl[siz], www + 1, + texStr); } else { - sprintf(line, "gsDPSetTextureImage(%s, %s, %i, %sTex_%06lX),", fmtTbl[fmt].c_str(), - sizTbl[siz].c_str(), www + 1, scene->GetName().c_str(), GETSEGOFFSET(data)); + std::string texName; + Globals::Instance->GetSegmentedPtrName(data, parent, "", texName); + sprintf(line, "gsDPSetTextureImage(%s, %s, %i, %s),", fmtTbl[fmt], sizTbl[siz], www + 1, + texName.c_str()); } } @@ -975,21 +976,21 @@ void ZDisplayList::Opcode_G_SETTILE(uint64_t data, char* line) int32_t bbbb = (data & 0b0000000000000000000000000000000000000000000000000000000011110000) >> 4; int32_t uuuu = (data & 0b0000000000000000000000000000000000000000000000000000000000001111); - std::string fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", + const char* fmtTbl[] = {"G_IM_FMT_RGBA", "G_IM_FMT_YUV", "G_IM_FMT_CI", "G_IM_FMT_IA", "G_IM_FMT_I"}; - std::string sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; + const char* sizTbl[] = {"G_IM_SIZ_4b", "G_IM_SIZ_8b", "G_IM_SIZ_16b", "G_IM_SIZ_32b"}; if (fff == (int32_t)F3DZEXTexFormats::G_IM_FMT_CI) lastCISiz = (F3DZEXTexSizes)ii; lastTexSizTest = (F3DZEXTexSizes)ii; - sprintf(line, "gsDPSetTile(%s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i),", - fmtTbl[fff].c_str(), sizTbl[ii].c_str(), nnnnnnnnn, mmmmmmmmm, ttt, pppp, cc, aaaa, - ssss, dd, bbbb, uuuu); + sprintf(line, "gsDPSetTile(%s, %s, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i),", fmtTbl[fff], + sizTbl[ii], nnnnnnnnn, mmmmmmmmm, ttt, pppp, cc, aaaa, ssss, dd, bbbb, uuuu); } -void ZDisplayList::Opcode_G_SETTILESIZE(uint64_t data, std::string prefix, char* line) +void ZDisplayList::Opcode_G_SETTILESIZE(uint64_t data, [[maybe_unused]] const std::string& prefix, + char* line) { int32_t sss = (data & 0x00FFF00000000000) >> 44; int32_t ttt = (data & 0x00000FFF00000000) >> 32; @@ -1023,7 +1024,7 @@ void ZDisplayList::Opcode_G_SETTILESIZE(uint64_t data, std::string prefix, char* if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) printf("TextureGenCheck G_SETTILESIZE\n"); - TextureGenCheck(prefix); + TextureGenCheck(); sprintf(line, "gsDPSetTileSize(%i, %i, %i, %i, %i),", i, sss, ttt, uuu, vvv); } @@ -1060,13 +1061,13 @@ void ZDisplayList::Opcode_G_SETCOMBINE(uint64_t data, char* line) int32_t ab1 = (data & 0b00000000000000000000000000000000000000000000000000000000111000) >> 3; int32_t ad1 = (data & 0b00000000000000000000000000000000000000000000000000000000000111) >> 0; - std::string modesA[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", + const char* modesA[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", "1", "NOISE", "0", "9", "10", "11", "12", "13", "14", "0"}; - std::string modesB[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", + const char* modesB[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", "CENTER", "K4", "8", "9", "10", "11", "12", "13", "14", "0"}; - std::string modesC[] = {"COMBINED", + const char* modesC[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", @@ -1098,21 +1099,20 @@ void ZDisplayList::Opcode_G_SETCOMBINE(uint64_t data, char* line) "29", "30", "0"}; - std::string modesD[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", + const char* modesD[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", "1", "0"}; - std::string modes2[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", + const char* modes2[] = {"COMBINED", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", "1", "0"}; - std::string modes2C[] = {"LOD_FRACTION", "TEXEL0", "TEXEL1", "PRIMITIVE", + const char* modes2C[] = {"LOD_FRACTION", "TEXEL0", "TEXEL1", "PRIMITIVE", "SHADE", "ENVIRONMENT", "PRIM_LOD_FRAC", "0"}; sprintf(line, "gsDPSetCombineLERP(%s, %s, %s, %s, %s, %s, %s, %s,\n %s, %s, " "%s, %s, %s, %s, %s, %s),", - modesA[a0].c_str(), modesB[b0].c_str(), modesC[c0].c_str(), modesD[d0].c_str(), - modes2[aa0].c_str(), modes2[ab0].c_str(), modes2C[ac0].c_str(), modes2[ad0].c_str(), - modesA[a1].c_str(), modesB[b1].c_str(), modesC[c1].c_str(), modesD[d1].c_str(), - modes2[aa1].c_str(), modes2[ab1].c_str(), modes2C[ac1].c_str(), modes2[ad1].c_str()); + modesA[a0], modesB[b0], modesC[c0], modesD[d0], modes2[aa0], modes2[ab0], modes2C[ac0], + modes2[ad0], modesA[a1], modesB[b1], modesC[c1], modesD[d1], modes2[aa1], modes2[ab1], + modes2C[ac1], modes2[ad1]); } void ZDisplayList::Opcode_G_SETPRIMCOLOR(uint64_t data, char* line) @@ -1257,7 +1257,7 @@ void ZDisplayList::Opcode_G_SETOTHERMODE_L(uint64_t data, char* line) G_RM_VISCVG2, G_RM_OPA_CI2}; - std::map str = { + std::map str = { {G_RM_FOG_SHADE_A, "G_RM_FOG_SHADE_A"}, {G_RM_FOG_PRIM_A, "G_RM_FOG_PRIM_A"}, {G_RM_PASS, "G_RM_PASS"}, @@ -1383,60 +1383,49 @@ void ZDisplayList::Opcode_G_SETOTHERMODE_L(uint64_t data, char* line) if (mode2Str == "") { - int32_t remainingFlags = mode2; - if (mode2 & AA_EN) { mode2Str += "AA_EN | "; - remainingFlags ^= AA_EN; } if (mode2 & Z_CMP) { mode2Str += "Z_CMP | "; - remainingFlags ^= Z_CMP; } if (mode2 & Z_UPD) { mode2Str += "Z_UPD | "; - remainingFlags ^= Z_UPD; } if (mode2 & IM_RD) { mode2Str += "IM_RD | "; - remainingFlags ^= IM_RD; } if (mode2 & CLR_ON_CVG) { mode2Str += "CLR_ON_CVG | "; - remainingFlags ^= CLR_ON_CVG; } if (mode2 & CVG_DST_CLAMP) { mode2Str += "CVG_DST_CLAMP | "; - remainingFlags ^= CVG_DST_CLAMP; } if (mode2 & CVG_DST_WRAP) { mode2Str += "CVG_DST_WRAP | "; - remainingFlags ^= CVG_DST_WRAP; } if (mode2 & CVG_DST_FULL) { mode2Str += "CVG_DST_FULL | "; - remainingFlags ^= CVG_DST_FULL; } if (mode2 & CVG_DST_SAVE) { mode2Str += "CVG_DST_SAVE | "; - remainingFlags ^= CVG_DST_SAVE; } int32_t zMode = mode2 & 0xC00; @@ -1444,35 +1433,29 @@ void ZDisplayList::Opcode_G_SETOTHERMODE_L(uint64_t data, char* line) if (zMode == ZMODE_INTER) { mode2Str += "ZMODE_INTER | "; - remainingFlags ^= ZMODE_INTER; } else if (zMode == ZMODE_XLU) { mode2Str += "ZMODE_XLU | "; - remainingFlags ^= ZMODE_XLU; } else if (zMode == ZMODE_DEC) { mode2Str += "ZMODE_DEC | "; - remainingFlags ^= ZMODE_DEC; } if (mode2 & CVG_X_ALPHA) { mode2Str += "CVG_X_ALPHA | "; - remainingFlags ^= CVG_X_ALPHA; } if (mode2 & ALPHA_CVG_SEL) { mode2Str += "ALPHA_CVG_SEL | "; - remainingFlags ^= ALPHA_CVG_SEL; } if (mode2 & FORCE_BL) { mode2Str += "FORCE_BL | "; - remainingFlags ^= FORCE_BL; } int32_t bp = (mode2 >> 28) & 0b11; @@ -1502,14 +1485,15 @@ void ZDisplayList::Opcode_G_SETOTHERMODE_H(uint64_t data, char* line) if (sft == 14) // G_MDSFT_TEXTLUT { - std::string types[] = {"G_TT_NONE", "G_TT_NONE", "G_TT_RGBA16", "G_TT_IA16"}; - sprintf(line, "gsDPSetTextureLUT(%s),", types[dd >> 14].c_str()); + const char* types[] = {"G_TT_NONE", "G_TT_NONE", "G_TT_RGBA16", "G_TT_IA16"}; + sprintf(line, "gsDPSetTextureLUT(%s),", types[dd >> 14]); } else sprintf(line, "gsSPSetOtherMode(0xE3, %i, %i, 0x%08X),", sft, nn + 1, dd); } -void ZDisplayList::Opcode_G_LOADTLUT(uint64_t data, std::string prefix, char* line) +void ZDisplayList::Opcode_G_LOADTLUT(uint64_t data, [[maybe_unused]] const std::string& prefix, + char* line) { int32_t t = (data & 0x0000000007000000) >> 24; int32_t ccc = (data & 0x00000000003FF000) >> 14; @@ -1523,27 +1507,27 @@ void ZDisplayList::Opcode_G_LOADTLUT(uint64_t data, std::string prefix, char* li if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) printf("TextureGenCheck G_LOADTLUT (lastCISiz: %i)\n", (uint32_t)lastCISiz); - TextureGenCheck(prefix); + TextureGenCheck(); sprintf(line, "gsDPLoadTLUTCmd(%i, %i),", t, ccc); } -void ZDisplayList::Opcode_G_ENDDL(std::string prefix, char* line) +void ZDisplayList::Opcode_G_ENDDL([[maybe_unused]] const std::string& prefix, char* line) { sprintf(line, "gsSPEndDisplayList(),"); if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_DEBUG) printf("TextureGenCheck G_ENDDL\n"); - TextureGenCheck(prefix); + TextureGenCheck(); } -std::string ZDisplayList::GetSourceOutputHeader(const std::string& prefix) +std::string ZDisplayList::GetSourceOutputHeader([[maybe_unused]] const std::string& prefix) { return ""; } -static int32_t GfxdCallback_FormatSingleEntry(void) +static int32_t GfxdCallback_FormatSingleEntry() { ZDisplayList* self = static_cast(gfxd_udata_get()); gfxd_puts("\t"); @@ -1580,9 +1564,15 @@ static int32_t GfxdCallback_FormatSingleEntry(void) } // dont print a new line after the last command - if (macroId != gfxd_SPEndDisplayList) + switch (macroId) { + case gfxd_SPEndDisplayList: + case gfxd_SPBranchList: + break; + + default: gfxd_puts("\n"); + break; } return 0; @@ -1592,24 +1582,17 @@ static int32_t GfxdCallback_Vtx(uint32_t seg, int32_t count) { ZDisplayList* self = static_cast(gfxd_udata_get()); uint32_t vtxOffset = Seg2Filespace(seg, self->parent->baseAddress); - std::string vtxName = ""; - // Probably an external asset we are unable to track - if (!Globals::Instance->HasSegment(GETSEGNUM(seg))) + if (GETSEGNUM(seg) == self->parent->segment) { - vtxName = StringHelper::Sprintf("0x%08X", seg); - } - else - { - self->references.push_back(vtxOffset); + Declaration* decl; // Check for vertex intersections from other display lists // TODO: These two could probably be condenced to one... - if (self->parent->GetDeclarationRanged(vtxOffset + (count * 16)) != nullptr) + decl = self->parent->GetDeclarationRanged(vtxOffset + (count * 16)); + if (decl != nullptr) { - // Declaration* decl = self->parent->GetDeclarationRanged(vtxOffset + (count * 16)); - uint32_t addr = self->parent->GetDeclarationRangedAddress(vtxOffset + (count * 16)); - int32_t diff = addr - vtxOffset; + int32_t diff = decl->address - vtxOffset; if (diff > 0) count = diff / 16; @@ -1617,11 +1600,10 @@ static int32_t GfxdCallback_Vtx(uint32_t seg, int32_t count) count = 0; } - if (self->parent->GetDeclarationRanged(vtxOffset) != nullptr) + decl = self->parent->GetDeclarationRanged(vtxOffset); + if (decl != nullptr) { - // Declaration* decl = self->parent->GetDeclarationRanged(vtxOffset); - uint32_t addr = self->parent->GetDeclarationRangedAddress(vtxOffset); - int32_t diff = addr - vtxOffset; + int32_t diff = decl->address - vtxOffset; if (diff > 0) count = diff / 16; @@ -1638,29 +1620,26 @@ static int32_t GfxdCallback_Vtx(uint32_t seg, int32_t count) for (int32_t i = 0; i < count; i++) { ZVtx vtx(self->parent); - vtx.SetRawDataIndex(currentPtr); - vtx.ParseRawData(); + vtx.ExtractFromFile(currentPtr); vtxList.push_back(vtx); currentPtr += 16; } self->vertices[vtxOffset] = vtxList; } - - vtxName = "@r"; } - gfxd_puts(vtxName.c_str()); + self->references.push_back(seg); + gfxd_puts("@r"); return 1; } static int32_t GfxdCallback_Texture(segptr_t seg, int32_t fmt, int32_t siz, int32_t width, - int32_t height, int32_t pal) + int32_t height, [[maybe_unused]] int32_t pal) { ZDisplayList* self = static_cast(gfxd_udata_get()); uint32_t texOffset = Seg2Filespace(seg, self->parent->baseAddress); - uint32_t texSegNum = GETSEGNUM(seg); self->lastTexWidth = width; self->lastTexHeight = height; @@ -1671,32 +1650,20 @@ static int32_t GfxdCallback_Texture(segptr_t seg, int32_t fmt, int32_t siz, int3 self->lastTexLoaded = true; self->lastTexIsPalette = false; - self->TextureGenCheck(self->curPrefix); + self->TextureGenCheck(); - std::string texName = ""; - - ZFile* auxParent = self->parent; - if (self->parent->segment != texSegNum && Globals::Instance->HasSegment(texSegNum)) - auxParent = Globals::Instance->segmentRefFiles.at(texSegNum); - - Declaration* decl = auxParent->GetDeclaration(texOffset); - if (Globals::Instance->HasSegment(texSegNum) && decl != nullptr) - texName = decl->varName; - else if (self->lastTexture != nullptr) - texName = self->lastTexture->GetName(); - else - texName = auxParent->GetDeclarationPtrName(seg); + std::string texName; + Globals::Instance->GetSegmentedPtrName(seg, self->parent, "", texName); gfxd_puts(texName.c_str()); return 1; } -static int32_t GfxdCallback_Palette(uint32_t seg, int32_t idx, int32_t count) +static int32_t GfxdCallback_Palette(uint32_t seg, [[maybe_unused]] int32_t idx, int32_t count) { ZDisplayList* self = static_cast(gfxd_udata_get()); uint32_t palOffset = Seg2Filespace(seg, self->parent->baseAddress); - uint32_t palSegNum = GETSEGNUM(seg); self->lastTexWidth = sqrt(count); self->lastTexHeight = sqrt(count); @@ -1707,21 +1674,10 @@ static int32_t GfxdCallback_Palette(uint32_t seg, int32_t idx, int32_t count) self->lastTexLoaded = true; self->lastTexIsPalette = true; - self->TextureGenCheck(self->curPrefix); + self->TextureGenCheck(); - std::string palName = ""; - - ZFile* auxParent = self->parent; - if (self->parent->segment != palSegNum && Globals::Instance->HasSegment(palSegNum)) - auxParent = Globals::Instance->segmentRefFiles.at(palSegNum); - - Declaration* decl = auxParent->GetDeclaration(palOffset); - if (Globals::Instance->HasSegment(palSegNum) && decl != nullptr) - palName = decl->varName; - else if (self->lastTlut != nullptr) - palName = self->lastTlut->GetName(); - else - palName = auxParent->GetDeclarationPtrName(seg); + std::string palName; + Globals::Instance->GetSegmentedPtrName(seg, self->parent, "", palName); gfxd_puts(palName.c_str()); @@ -1734,23 +1690,20 @@ static int32_t GfxdCallback_DisplayList(uint32_t seg) uint32_t dListOffset = GETSEGOFFSET(seg); uint32_t dListSegNum = GETSEGNUM(seg); - if ((dListSegNum <= 6) && Globals::Instance->HasSegment(dListSegNum)) + std::string dListName = ""; + bool addressFound = Globals::Instance->GetSegmentedPtrName(seg, self->parent, "Gfx", dListName); + + if (!addressFound && self->parent->segment == dListSegNum) { - ZDisplayList* newDList = new ZDisplayList( + ZDisplayList* newDList = new ZDisplayList(self->parent); + newDList->ExtractFromBinary( dListOffset, - self->GetDListLength(self->parent->GetRawData(), dListOffset, self->dListType), - self->parent); - newDList->scene = self->scene; - newDList->parent = self->parent; + self->GetDListLength(self->parent->GetRawData(), dListOffset, self->dListType)); + newDList->SetName(newDList->GetDefaultName(self->parent->GetName())); self->otherDLists.push_back(newDList); + dListName = newDList->GetName(); } - ZFile* auxParent = self->parent; - if (self->parent->segment != dListSegNum && Globals::Instance->HasSegment(dListSegNum)) - auxParent = Globals::Instance->segmentRefFiles.at(dListSegNum); - - std::string dListName = auxParent->GetDeclarationPtrName(seg); - gfxd_puts(dListName.c_str()); return 1; @@ -1758,30 +1711,26 @@ static int32_t GfxdCallback_DisplayList(uint32_t seg) static int32_t GfxdCallback_Matrix(uint32_t seg) { - std::string mtxName = ""; + std::string mtxName; ZDisplayList* self = static_cast(gfxd_udata_get()); - if (Globals::Instance->symbolMap.find(seg) != Globals::Instance->symbolMap.end()) - mtxName = StringHelper::Sprintf("&%s", Globals::Instance->symbolMap[seg].c_str()); - else if (Globals::Instance->HasSegment(GETSEGNUM(seg))) + bool addressFound = Globals::Instance->GetSegmentedPtrName(seg, self->parent, "Mtx", mtxName); + if (!addressFound && GETSEGNUM(seg) == self->parent->segment) { Declaration* decl = self->parent->GetDeclaration(Seg2Filespace(seg, self->parent->baseAddress)); if (decl == nullptr) { - ZMtx mtx(self->GetName(), Seg2Filespace(seg, self->parent->baseAddress), self->parent); + ZMtx mtx(self->parent); + mtx.SetName(mtx.GetDefaultName(self->GetName())); + mtx.ExtractFromFile(Seg2Filespace(seg, self->parent->baseAddress)); + mtx.DeclareVar(self->GetName(), ""); mtx.GetSourceOutputCode(self->GetName()); self->mtxList.push_back(mtx); mtxName = "&" + mtx.GetName(); } - else - { - mtxName = "&" + decl->varName; - } } - else - mtxName = StringHelper::Sprintf("0x%08X", seg); gfxd_puts(mtxName.c_str()); @@ -1790,7 +1739,7 @@ static int32_t GfxdCallback_Matrix(uint32_t seg) std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) { - std::string sourceOutput = ""; + std::string sourceOutput; if (Globals::Instance->useLegacyZDList) sourceOutput += ProcessLegacy(prefix); @@ -1823,49 +1772,29 @@ std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) } } - if (scene == nullptr) // TODO: Bit of a hack but it works for now... - parent->defines += defines; - // Generate Vertex Declarations for (auto& item : vertices) { - std::string declaration = ""; + std::string declaration; - uint32_t curAddr = item.first; + offset_t curAddr = item.first; + auto& firstVtx = item.second.at(0); for (auto vtx : item.second) { - if (curAddr != item.first) - declaration += "\n"; - - declaration += vtx.GetBodySourceCode(); - - curAddr += 16; + declaration += StringHelper::Sprintf("\t%s,\n", vtx.GetBodySourceCode().c_str()); } - vtxDeclarations[item.first] = declaration; - - if (parent != nullptr) - { - parent->AddDeclarationArray(item.first, DeclarationAlignment::None, - item.second.size() * 16, "static Vtx", - StringHelper::Sprintf("%sVtx_%06X", prefix.c_str(), - item.first, item.second.size()), - item.second.size(), declaration); - } + Declaration* decl = parent->AddDeclarationArray( + curAddr, firstVtx.GetDeclarationAlignment(), + item.second.size() * firstVtx.GetRawDataSize(), firstVtx.GetSourceTypeName(), + firstVtx.GetDefaultName(name), item.second.size(), declaration); + decl->isExternal = true; } } - if (scene != nullptr) - defines += scene->extDefines; - - if (parent != nullptr) - { - Declaration* decl = DeclareVar("", sourceOutput); - decl->references = references; - // return ""; - // return sourceOutput; - } + Declaration* decl = DeclareVar("", sourceOutput); + decl->references = references; // Iterate through our vertex lists, connect intersecting lists. if (vertices.size() > 0) @@ -1894,9 +1823,6 @@ std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) } } - if (scene == nullptr) // TODO: Bit of a hack but it works for now... - parent->defines += defines; - // Generate Vertex Declarations std::vector vtxKeys; @@ -1908,18 +1834,13 @@ std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) { auto& item = vertices[vtxKeys[i]]; - std::string declaration = ""; + std::string declaration; int32_t curAddr = vtxKeys[i]; for (auto& vtx : item) { - if (curAddr != vtxKeys[i]) - declaration += "\n"; - - declaration += - StringHelper::Sprintf(" VTX(%i, %i, %i, %i, %i, %i, %i, %i, %i),", vtx.x, - vtx.y, vtx.z, vtx.s, vtx.t, vtx.r, vtx.g, vtx.b, vtx.a); + declaration += StringHelper::Sprintf("\t%s,\n", vtx.GetBodySourceCode().c_str()); curAddr += 16; } @@ -1929,22 +1850,21 @@ std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) // that warning when building the OoT repo. declaration += "\n"; - vtxDeclarations[vtxKeys[i]] = declaration; - if (parent != nullptr) { - std::string vtxName = - StringHelper::Sprintf("%sVtx_%06X", prefix.c_str(), vtxKeys[i]); + std::string vtxName; + ZResource* vtxRes = parent->FindResource(vtxKeys[i]); + + if (vtxRes != nullptr) + vtxName = vtxRes->GetName(); + else + vtxName = StringHelper::Sprintf("%sVtx_%06X", prefix.c_str(), vtxKeys[i]); auto filepath = Globals::Instance->outputPath / vtxName; std::string incStr = StringHelper::Sprintf("%s.%s.inc", filepath.c_str(), "vtx"); - parent->AddDeclarationArray(vtxKeys[i], DeclarationAlignment::None, - item.size() * 16, "static Vtx", vtxName, item.size(), - declaration); - Declaration* vtxDecl = parent->AddDeclarationIncludeArray( - vtxKeys[i], incStr, item.size() * 16, "static Vtx", vtxName, item.size()); + vtxKeys[i], incStr, item.size() * 16, "Vtx", vtxName, item.size()); vtxDecl->isExternal = true; } } @@ -1959,7 +1879,7 @@ std::string ZDisplayList::GetSourceOutputCode(const std::string& prefix) std::string ZDisplayList::ProcessLegacy(const std::string& prefix) { char line[4096]; - std::string sourceOutput = ""; + std::string sourceOutput; for (size_t i = 0; i < instructions.size(); i++) { @@ -1999,9 +1919,9 @@ std::string ZDisplayList::ProcessLegacy(const std::string& prefix) return sourceOutput; } -std::string ZDisplayList::ProcessGfxDis(const std::string& prefix) +std::string ZDisplayList::ProcessGfxDis([[maybe_unused]] const std::string& prefix) { - std::string sourceOutput = ""; + std::string sourceOutput; OutputFormatter outputformatter; int32_t dListSize = instructions.size() * sizeof(instructions[0]); @@ -2026,7 +1946,6 @@ std::string ZDisplayList::ProcessGfxDis(const std::string& prefix) else gfxd_target(gfxd_f3dex); - this->curPrefix = prefix; gfxd_udata_set(this); gfxd_execute(); // generate display list sourceOutput += outputformatter.GetOutput(); // write formatted display list @@ -2034,10 +1953,10 @@ std::string ZDisplayList::ProcessGfxDis(const std::string& prefix) return sourceOutput; } -void ZDisplayList::TextureGenCheck(std::string prefix) +void ZDisplayList::TextureGenCheck() { - if (TextureGenCheck(scene, parent, prefix, lastTexWidth, lastTexHeight, lastTexAddr, lastTexSeg, - lastTexFmt, lastTexSiz, lastTexLoaded, lastTexIsPalette, this)) + if (TextureGenCheck(lastTexWidth, lastTexHeight, lastTexAddr, lastTexSeg, lastTexFmt, + lastTexSiz, lastTexLoaded, lastTexIsPalette, this)) { lastTexAddr = 0; lastTexLoaded = false; @@ -2045,12 +1964,11 @@ void ZDisplayList::TextureGenCheck(std::string prefix) } } -bool ZDisplayList::TextureGenCheck(ZRoom* scene, ZFile* parent, std::string prefix, - int32_t texWidth, int32_t texHeight, uint32_t texAddr, +bool ZDisplayList::TextureGenCheck(int32_t texWidth, int32_t texHeight, uint32_t texAddr, uint32_t texSeg, F3DZEXTexFormats texFmt, F3DZEXTexSizes texSiz, bool texLoaded, bool texIsPalette, ZDisplayList* self) { - int32_t segmentNumber = GETSEGNUM(texSeg); + uint32_t segmentNumber = GETSEGNUM(texSeg); if (!texIsPalette) self->lastTexture = nullptr; @@ -2064,58 +1982,53 @@ bool ZDisplayList::TextureGenCheck(ZRoom* scene, ZFile* parent, std::string pref if ((texSeg != 0 || texAddr != 0) && texWidth > 0 && texHeight > 0 && texLoaded && Globals::Instance->HasSegment(segmentNumber)) { - if (segmentNumber != SEGMENT_SCENE) + ZFile* auxParent = nullptr; + if (segmentNumber == self->parent->segment) { - if (texAddr < parent->GetRawData().size()) + auxParent = self->parent; + } + else + { + // Try to find a non-external file (ie, one we are actually extracting) + // which has the same segment number we are looking for. + for (auto& otherFile : Globals::Instance->cfg.segmentRefFiles[segmentNumber]) { - ZTexture* tex = parent->GetTextureResource(texAddr); - if (tex != nullptr) - tex->isPalette = texIsPalette; - else + if (!otherFile->isExternalFile) { - tex = new ZTexture(parent); - tex->FromBinary(texAddr, texWidth, texHeight, - TexFormatToTexType(texFmt, texSiz), texIsPalette); - parent->AddTextureResource(texAddr, tex); + auxParent = otherFile; } - - if (!texIsPalette) - self->lastTexture = tex; - else - self->lastTlut = tex; - - return true; } } - else if (scene != nullptr) + + if (auxParent == nullptr) { - if (scene->parent->GetDeclaration(texAddr) == nullptr) + // We can't declare the texture in any of the files we are extracting. + return false; + } + + if (auxParent->IsOffsetInFileRange(texAddr)) + { + ZTexture* tex = auxParent->GetTextureResource(texAddr); + if (tex != nullptr) + tex->isPalette = texIsPalette; + else { - ZTexture* tex = scene->parent->GetTextureResource(texAddr); - if (tex != nullptr) - tex->isPalette = texIsPalette; - else - { - tex = new ZTexture(scene->parent); - tex->FromBinary(texAddr, texWidth, texHeight, - TexFormatToTexType(texFmt, texSiz), texIsPalette); - - scene->parent->AddTextureResource(texAddr, tex); - } - - if (!texIsPalette) - self->lastTexture = tex; - else - self->lastTlut = tex; - - auto filepath = Globals::Instance->outputPath / - Path::GetFileNameWithoutExtension(tex->GetName()); - auto filename = StringHelper::Sprintf("%s.%s.inc.c", filepath.c_str(), - tex->GetExternalExtension().c_str()); - scene->parent->AddDeclarationIncludeArray(texAddr, filename, tex->GetRawDataSize(), - tex->GetSourceTypeName(), tex->GetName(), - 0); + tex = new ZTexture(auxParent); + tex->ExtractFromBinary(texAddr, texWidth, texHeight, + TexFormatToTexType(texFmt, texSiz), texIsPalette); + auxParent->AddTextureResource(texAddr, tex); } + + if (!texIsPalette) + self->lastTexture = tex; + else + self->lastTlut = tex; + + if (auxParent->GetDeclaration(texAddr) == nullptr) + { + tex->DeclareVar(self->GetName(), ""); + } + return true; } } @@ -2166,13 +2079,6 @@ TextureType ZDisplayList::TexFormatToTexType(F3DZEXTexFormats fmt, F3DZEXTexSize return TextureType::RGBA16bpp; } -void ZDisplayList::GenerateHLIntermediette(HLFileIntermediette& hlFile) -{ - HLModelIntermediette* mdl = (HLModelIntermediette*)&hlFile; - HLModelIntermediette::FromZDisplayList(mdl, this); - mdl->blocks.push_back(new HLTerminator()); -} - bool ZDisplayList::IsExternalResource() const { return false; @@ -2197,3 +2103,8 @@ size_t ZDisplayList::GetRawDataSize() const { return instructions.size() * 8; } + +DeclarationAlignment ZDisplayList::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align8; +} diff --git a/tools/ZAPD/ZAPD/ZDisplayList.h b/tools/ZAPD/ZAPD/ZDisplayList.h index 09394b263e..d538666750 100644 --- a/tools/ZAPD/ZAPD/ZDisplayList.h +++ b/tools/ZAPD/ZAPD/ZDisplayList.h @@ -288,14 +288,15 @@ class ZDisplayList : public ZResource protected: static TextureType TexFormatToTexType(F3DZEXTexFormats fmt, F3DZEXTexSizes siz); - void ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, std::string prefix, char* line); - void ParseF3DEX(F3DEXOpcode opcode, uint64_t data, std::string prefix, char* line); + void ParseF3DZEX(F3DZEXOpcode opcode, uint64_t data, int32_t i, const std::string& prefix, + char* line); + void ParseF3DEX(F3DEXOpcode opcode, uint64_t data, const std::string& prefix, char* line); // Various Instruction Optimizations bool SequenceCheck(std::vector sequence, int32_t startIndex); - int32_t OptimizationChecks(int32_t startIndex, std::string& output, std::string prefix); + int32_t OptimizationChecks(int32_t startIndex, std::string& output, const std::string& prefix); int32_t OptimizationCheck_LoadTextureBlock(int32_t startIndex, std::string& output, - std::string prefix); + const std::string& prefix); // int32_t OptimizationCheck_LoadMultiBlock(int32_t startIndex, std::string& output, std::string // prefix); @@ -303,7 +304,7 @@ protected: void Opcode_F3DEX_G_SETOTHERMODE_L(uint64_t data, char* line); // Shared Opcodes between F3DZEX and F3DEX - void Opcode_G_DL(uint64_t data, std::string prefix, char* line); + void Opcode_G_DL(uint64_t data, const std::string& prefix, char* line); void Opcode_G_MODIFYVTX(uint64_t data, char* line); void Opcode_G_CULLDL(uint64_t data, char* line); void Opcode_G_TRI1(uint64_t data, char* line); @@ -311,22 +312,19 @@ protected: void Opcode_G_MTX(uint64_t data, char* line); void Opcode_G_VTX(uint64_t data, char* line); void Opcode_G_TEXTURE(uint64_t data, char* line); - void Opcode_G_SETTIMG(uint64_t data, std::string prefix, char* line); + void Opcode_G_SETTIMG(uint64_t data, const std::string& prefix, char* line); void Opcode_G_SETTILE(uint64_t data, char* line); - void Opcode_G_SETTILESIZE(uint64_t data, std::string prefix, char* line); + void Opcode_G_SETTILESIZE(uint64_t data, const std::string& prefix, char* line); void Opcode_G_LOADBLOCK(uint64_t data, char* line); void Opcode_G_SETCOMBINE(uint64_t data, char* line); void Opcode_G_SETPRIMCOLOR(uint64_t data, char* line); void Opcode_G_SETOTHERMODE_L(uint64_t data, char* line); void Opcode_G_SETOTHERMODE_H(uint64_t data, char* line); - void Opcode_G_LOADTLUT(uint64_t data, std::string prefix, char* line); - void Opcode_G_ENDDL(std::string prefix, char* line); + void Opcode_G_LOADTLUT(uint64_t data, const std::string& prefix, char* line); + void Opcode_G_ENDDL(const std::string& prefix, char* line); public: - std::string sceneSegName; - ZRoom* scene; std::vector instructions; - std::string curPrefix; int32_t lastTexWidth, lastTexHeight, lastTexAddr, lastTexSeg; F3DZEXTexFormats lastTexFmt; @@ -337,44 +335,41 @@ public: DListType dListType; std::map> vertices; - std::map vtxDeclarations; std::vector otherDLists; ZTexture* lastTexture = nullptr; ZTexture* lastTlut = nullptr; - std::vector references; - - std::string defines; // Hack for special cases where vertex arrays intersect... + std::vector references; std::vector mtxList; ZDisplayList(ZFile* nParent); - ZDisplayList(uint32_t rawDataIndex, int32_t rawDataSize, ZFile* nParent); ~ZDisplayList(); void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; + void ExtractFromBinary(uint32_t nRawDataIndex, int32_t rawDataSize); void ParseRawData() override; - Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr); + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetDefaultName(const std::string& prefix) const override; - void TextureGenCheck(std::string prefix); - static bool TextureGenCheck(ZRoom* scene, ZFile* parent, std::string prefix, int32_t texWidth, - int32_t texHeight, uint32_t texAddr, uint32_t texSeg, - F3DZEXTexFormats texFmt, F3DZEXTexSizes texSiz, bool texLoaded, - bool texIsPalette, ZDisplayList* self); + void TextureGenCheck(); + static bool TextureGenCheck(int32_t texWidth, int32_t texHeight, uint32_t texAddr, + uint32_t texSeg, F3DZEXTexFormats texFmt, F3DZEXTexSizes texSiz, + bool texLoaded, bool texIsPalette, ZDisplayList* self); static int32_t GetDListLength(const std::vector& rawData, uint32_t rawDataIndex, DListType dListType); size_t GetRawDataSize() const override; + DeclarationAlignment GetDeclarationAlignment() const override; std::string GetSourceOutputHeader(const std::string& prefix) override; std::string GetSourceOutputCode(const std::string& prefix) override; std::string ProcessLegacy(const std::string& prefix); std::string ProcessGfxDis(const std::string& prefix); - virtual void GenerateHLIntermediette(HLFileIntermediette& hlFile) override; bool IsExternalResource() const override; - virtual std::string GetExternalExtension() const override; + std::string GetExternalExtension() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; diff --git a/tools/ZAPD/ZAPD/ZFile.cpp b/tools/ZAPD/ZAPD/ZFile.cpp index b09dc55c32..82cb84f83f 100644 --- a/tools/ZAPD/ZAPD/ZFile.cpp +++ b/tools/ZAPD/ZAPD/ZFile.cpp @@ -1,13 +1,17 @@ #include "ZFile.h" + #include #include +#include #include -#include "Directory.h" -#include "File.h" + +#include +#include #include "Globals.h" -#include "HighLevel/HLModelIntermediette.h" #include "OutputFormatter.h" -#include "Path.h" +#include "Utils/Directory.h" +#include "Utils/File.h" +#include "Utils/Path.h" #include "ZAnimation.h" #include "ZArray.h" #include "ZBackground.h" @@ -25,8 +29,6 @@ #include "ZVector.h" #include "ZVtx.h" -using namespace tinyxml2; - ZFile::ZFile() { resources = std::vector(); @@ -38,13 +40,15 @@ ZFile::ZFile() rangeEnd = 0xFFFFFFFF; } -ZFile::ZFile(std::string nName) : ZFile() +ZFile::ZFile(const fs::path& nOutPath, const std::string& nName) : ZFile() { name = nName; + outName = nName; + outputPath = nOutPath; } -ZFile::ZFile(ZFileMode mode, tinyxml2::XMLElement* reader, const fs::path& nBasePath, - std::string filename, const fs::path& nXmlFilePath, bool placeholderMode) +ZFile::ZFile(ZFileMode nMode, tinyxml2::XMLElement* reader, const fs::path& nBasePath, + const fs::path& nOutPath, const std::string& filename, const fs::path& nXmlFilePath) : ZFile() { xmlFilePath = nXmlFilePath; @@ -53,8 +57,16 @@ ZFile::ZFile(ZFileMode mode, tinyxml2::XMLElement* reader, const fs::path& nBase else basePath = nBasePath; - ParseXML(mode, reader, filename, placeholderMode); - DeclareResourceSubReferences(); + if (nOutPath == "") + outputPath = Directory::GetCurrentDirectory(); + else + outputPath = nOutPath; + + mode = nMode; + + ParseXML(reader, filename); + if (mode != ZFileMode::ExternalFile) + DeclareResourceSubReferences(); } ZFile::~ZFile() @@ -68,10 +80,17 @@ ZFile::~ZFile() { delete d.second; } + + for (auto sym : symbolResources) + { + delete sym.second; + } } -void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, bool placeholderMode) +void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename) { + assert(mode != ZFileMode::Invalid); + if (filename == "") name = reader->Attribute("Name"); else @@ -87,11 +106,11 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b const char* gameStr = reader->Attribute("Game"); if (reader->Attribute("Game") != nullptr) { - if (std::string(gameStr) == "MM") + if (std::string_view(gameStr) == "MM") Globals::Instance->game = ZGame::MM_RETAIL; - else if (std::string(gameStr) == "SW97" || std::string(gameStr) == "OOTSW97") + else if (std::string_view(gameStr) == "SW97" || std::string_view(gameStr) == "OOTSW97") Globals::Instance->game = ZGame::OOT_SW97; - else if (std::string(gameStr) == "OOT") + else if (std::string_view(gameStr) == "OOT") Globals::Instance->game = ZGame::OOT_RETAIL; else throw std::runtime_error( @@ -107,14 +126,15 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b if (reader->Attribute("RangeEnd") != nullptr) rangeEnd = StringHelper::StrToL(reader->Attribute("RangeEnd"), 16); - // Commented until ZArray doesn't use a ZFile to parse it's contents anymore. - /* - if (reader->Attribute("Segment") == nullptr) - throw std::runtime_error(StringHelper::Sprintf( - "ZFile::ParseXML: Error in '%s'.\n" - "\t Missing 'Segment' attribute in File node. \n", - name.c_str())); - */ + if (rangeStart > rangeEnd) + throw std::runtime_error("Error: RangeStart must be before than RangeEnd."); + + // Not every XML may have a segment number, so this doesn't make much sense anymore. + // if (reader->Attribute("Segment") == nullptr) + // throw std::runtime_error( + // StringHelper::Sprintf("ZFile::ParseXML: Error in '%s'.\n" + // "\t Missing 'Segment' attribute in File node. \n", + // name.c_str())); if (reader->Attribute("Segment") != nullptr) { @@ -122,13 +142,21 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b Globals::Instance->AddSegment(segment, this); } - if (mode == ZFileMode::Extract) + if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile) { if (!File::Exists((basePath / name).string())) throw std::runtime_error( StringHelper::Sprintf("Error! File %s does not exist.", (basePath / name).c_str())); rawData = File::ReadAllBytes((basePath / name).string()); + + /* + * TODO: In OoT repo ovl_Boss_Sst has a wrong RangeEnd (0xAD40 instead of 0xAD70), + * so uncommenting the following produces wrong behavior. + * If somebody fixes that in OoT repo, uncomment this. I'm too tired of fixing XMLs. + */ + // if (reader->Attribute("RangeEnd") == nullptr) + // rangeEnd = rawData.size(); } std::unordered_set nameSet; @@ -138,16 +166,13 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b auto nodeMap = *GetNodeMap(); uint32_t rawDataIndex = 0; - for (XMLElement* child = reader->FirstChildElement(); child != nullptr; + for (tinyxml2::XMLElement* child = reader->FirstChildElement(); child != nullptr; child = child->NextSiblingElement()) { const char* nameXml = child->Attribute("Name"); const char* outNameXml = child->Attribute("OutName"); const char* offsetXml = child->Attribute("Offset"); - if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) - printf("%s: 0x%06X\n", nameXml, rawDataIndex); - // Check for repeated attributes. if (offsetXml != nullptr) { @@ -170,6 +195,10 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b throw std::runtime_error( StringHelper::Sprintf("Error no offset specified for %s", nameXml)); } + + if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) + printf("%s: 0x%06X\n", nameXml, rawDataIndex); + if (outNameXml != nullptr) { if (outNameSet.find(outNameXml) != outNameSet.end()) @@ -197,18 +226,27 @@ void ZFile::ParseXML(ZFileMode mode, XMLElement* reader, std::string filename, b { ZResource* nRes = nodeMap[nodeName](this); - if (mode == ZFileMode::Extract) + if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile) nRes->ExtractFromXML(child, rawDataIndex); - auto resType = nRes->GetResourceType(); - if (resType == ZResourceType::Texture) + switch (nRes->GetResourceType()) + { + case ZResourceType::Texture: AddTextureResource(rawDataIndex, static_cast(nRes)); - else - resources.push_back(nRes); + break; + + case ZResourceType::Symbol: + AddSymbolResource(rawDataIndex, static_cast(nRes)); + break; + + default: + AddResource(nRes); + break; + } rawDataIndex += nRes->GetRawDataSize(); } - else if (std::string(child->Name()) == "File") + else if (std::string_view(child->Name()) == "File") { throw std::runtime_error(StringHelper::Sprintf( "ZFile::ParseXML: Error in '%s'.\n\t Can't declare a File inside a File.\n", @@ -234,21 +272,13 @@ void ZFile::DeclareResourceSubReferences() void ZFile::BuildSourceFile() { - if (!Directory::Exists(Globals::Instance->outputPath)) - Directory::CreateDirectory(Globals::Instance->outputPath); + if (mode == ZFileMode::ExternalFile) + return; - GenerateSourceFiles(Globals::Instance->outputPath); -} + if (!Directory::Exists(outputPath)) + Directory::CreateDirectory(outputPath); -std::string ZFile::GetVarName(uint32_t address) -{ - for (std::pair pair : declarations) - { - if (pair.first == address) - return pair.second->varName; - } - - return ""; + GenerateSourceFiles(); } std::string ZFile::GetName() const @@ -256,6 +286,11 @@ std::string ZFile::GetName() const return name; } +ZFileMode ZFile::GetMode() const +{ + return mode; +} + const fs::path& ZFile::GetXmlFilePath() const { return xmlFilePath; @@ -268,28 +303,56 @@ const std::vector& ZFile::GetRawData() const void ZFile::ExtractResources() { - if (!Directory::Exists(Globals::Instance->outputPath)) - Directory::CreateDirectory(Globals::Instance->outputPath); + if (mode == ZFileMode::ExternalFile) + return; - if (!Directory::Exists(GetSourceOutputFolderPath().string())) - Directory::CreateDirectory(GetSourceOutputFolderPath().string()); + if (!Directory::Exists(outputPath)) + Directory::CreateDirectory(outputPath); - for (ZResource* res : resources) - res->PreGenSourceFiles(); + if (!Directory::Exists(GetSourceOutputFolderPath())) + Directory::CreateDirectory(GetSourceOutputFolderPath()); + + for (size_t i = 0; i < resources.size(); i++) + resources[i]->ParseRawDataLate(); + for (size_t i = 0; i < resources.size(); i++) + resources[i]->DeclareReferencesLate(name); if (Globals::Instance->genSourceFile) - GenerateSourceFiles(Globals::Instance->outputPath); + GenerateSourceFiles(); + + MemoryStream* memStream = new MemoryStream(); + BinaryWriter writer = BinaryWriter(memStream); + + ExporterSet* exporterSet = Globals::Instance->GetExporterSet(); + + if (exporterSet != nullptr && exporterSet->beginFileFunc != nullptr) + exporterSet->beginFileFunc(this); for (ZResource* res : resources) { if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO) printf("Saving resource %s\n", res->GetName().c_str()); - res->Save(Globals::Instance->outputPath); + res->Save(outputPath); + + // Check if we have an exporter "registered" for this resource type + ZResourceExporter* exporter = Globals::Instance->GetExporter(res->GetResourceType()); + if (exporter != nullptr) + exporter->Save(res, Globals::Instance->outputPath.string(), &writer); } - if (Globals::Instance->testMode) - GenerateHLIntermediette(); + if (memStream->GetLength() > 0) + { + File::WriteAllBytes(StringHelper::Sprintf("%s%s.bin", + Globals::Instance->outputPath.string().c_str(), + GetName().c_str()), + memStream->ToVector()); + } + + writer.Close(); + + if (exporterSet != nullptr && exporterSet->endFileFunc != nullptr) + exporterSet->endFileFunc(this); } void ZFile::AddResource(ZResource* res) @@ -321,87 +384,101 @@ std::vector ZFile::GetResourcesOfType(ZResourceType resType) return resList; } -Declaration* ZFile::AddDeclaration(uint32_t address, DeclarationAlignment alignment, size_t size, - std::string varType, std::string varName, std::string body) +Declaration* ZFile::AddDeclaration(offset_t address, DeclarationAlignment alignment, size_t size, + const std::string& varType, const std::string& varName, + const std::string& body) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; - Declaration* decl = new Declaration(alignment, size, varType, varName, false, body); - declarations[address] = decl; + Declaration* decl = GetDeclaration(address); + if (decl == nullptr) + { + decl = new Declaration(address, alignment, size, varType, varName, false, body); + declarations[address] = decl; + } + else + { + decl->alignment = alignment; + decl->size = size; + decl->varType = varType; + decl->varName = varName; + decl->text = body; + } return decl; } -Declaration* ZFile::AddDeclaration(uint32_t address, DeclarationAlignment alignment, - DeclarationPadding padding, size_t size, std::string varType, - std::string varName, std::string body) +Declaration* ZFile::AddDeclarationArray(offset_t address, DeclarationAlignment alignment, + size_t size, const std::string& varType, + const std::string& varName, size_t arrayItemCnt, + const std::string& body) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; - declarations[address] = - new Declaration(alignment, padding, size, varType, varName, false, body); - return declarations[address]; + Declaration* decl = GetDeclaration(address); + if (decl == nullptr) + { + decl = + new Declaration(address, alignment, size, varType, varName, true, arrayItemCnt, body); + declarations[address] = decl; + } + else + { + if (decl->isPlaceholder) + decl->varName = varName; + decl->alignment = alignment; + decl->size = size; + decl->varType = varType; + decl->isArray = true; + decl->arrayItemCnt = arrayItemCnt; + decl->text = body; + } + + return decl; } -Declaration* ZFile::AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, - size_t size, std::string varType, std::string varName, - size_t arrayItemCnt, std::string body) +Declaration* ZFile::AddDeclarationArray(offset_t address, DeclarationAlignment alignment, + size_t size, const std::string& varType, + const std::string& varName, + const std::string& arrayItemCntStr, const std::string& body) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; - declarations[address] = - new Declaration(alignment, size, varType, varName, true, arrayItemCnt, body); - return declarations[address]; + Declaration* decl = GetDeclaration(address); + if (decl == nullptr) + { + decl = new Declaration(address, alignment, size, varType, varName, true, arrayItemCntStr, + body); + declarations[address] = decl; + } + else + { + decl->alignment = alignment; + decl->size = size; + decl->varType = varType; + decl->varName = varName; + decl->isArray = true; + decl->arrayItemCntStr = arrayItemCntStr; + decl->text = body; + } + return decl; } -Declaration* ZFile::AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, - size_t size, std::string varType, std::string varName, - std::string arrayItemCntStr, std::string body) +Declaration* ZFile::AddDeclarationPlaceholder(offset_t address, const std::string& varName) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; - declarations[address] = - new Declaration(alignment, size, varType, varName, true, arrayItemCntStr, body); - return declarations[address]; -} - -Declaration* ZFile::AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, - size_t size, std::string varType, std::string varName, - size_t arrayItemCnt, std::string body, bool isExternal) -{ - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); - - declarations[address] = - new Declaration(alignment, size, varType, varName, true, arrayItemCnt, body, isExternal); - return declarations[address]; -} - -Declaration* ZFile::AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, - DeclarationPadding padding, size_t size, - std::string varType, std::string varName, - size_t arrayItemCnt, std::string body) -{ - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); - - declarations[address] = - new Declaration(alignment, padding, size, varType, varName, true, arrayItemCnt, body); - return declarations[address]; -} - -Declaration* ZFile::AddDeclarationPlaceholder(uint32_t address) -{ - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); Declaration* decl; - if (declarations.find(address) == declarations.end()) { - decl = new Declaration(DeclarationAlignment::None, 0, "", "", false, ""); + decl = new Declaration(address, DeclarationAlignment::Align4, 0, "", varName, false, ""); decl->isPlaceholder = true; declarations[address] = decl; } @@ -411,114 +488,165 @@ Declaration* ZFile::AddDeclarationPlaceholder(uint32_t address) return decl; } -Declaration* ZFile::AddDeclarationPlaceholder(uint32_t address, std::string varName) +Declaration* ZFile::AddDeclarationInclude(offset_t address, const std::string& includePath, + size_t size, const std::string& varType, + const std::string& varName) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); - Declaration* decl; + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; - if (declarations.find(address) == declarations.end()) + Declaration* decl = GetDeclaration(address); + if (decl == nullptr) { - decl = new Declaration(DeclarationAlignment::None, 0, "", varName, false, ""); - decl->isPlaceholder = true; + decl = new Declaration(address, includePath, size, varType, varName); declarations[address] = decl; } else - decl = declarations[address]; - + { + decl->includePath = includePath; + decl->size = size; + decl->varType = varType; + decl->varName = varName; + } return decl; } -Declaration* ZFile::AddDeclarationInclude(uint32_t address, std::string includePath, size_t size, - std::string varType, std::string varName) +Declaration* ZFile::AddDeclarationIncludeArray(offset_t address, std::string& includePath, + size_t size, const std::string& varType, + const std::string& varName, size_t arrayItemCnt) { - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); - - if (declarations.find(address) == declarations.end()) - declarations[address] = new Declaration(includePath, size, varType, varName); - - return declarations[address]; -} - -Declaration* ZFile::AddDeclarationIncludeArray(uint32_t address, std::string includePath, - size_t size, std::string varType, - std::string varName, size_t arrayItemCnt) -{ - assert(GETSEGNUM(address) == 0); - AddDeclarationDebugChecks(address); + bool validOffset = AddDeclarationChecks(address, varName); + if (!validOffset) + return nullptr; if (StringHelper::StartsWith(includePath, "assets/extracted/")) includePath = "assets/" + StringHelper::Split(includePath, "assets/extracted/")[1]; if (StringHelper::StartsWith(includePath, "assets/custom/")) includePath = "assets/" + StringHelper::Split(includePath, "assets/custom/")[1]; - auto declCheck = declarations.find(address); - - if (declCheck != declarations.end()) + Declaration* decl = GetDeclaration(address); + if (decl == nullptr) { - declCheck->second->includePath = includePath; - declCheck->second->varType = varType; - declCheck->second->varName = varName; - declCheck->second->size = size; - declCheck->second->isArray = true; - declCheck->second->arrayItemCnt = arrayItemCnt; - - return declCheck->second; - } - else - { - Declaration* decl = new Declaration(includePath, size, varType, varName); + decl = new Declaration(address, includePath, size, varType, varName); decl->isArray = true; decl->arrayItemCnt = arrayItemCnt; declarations[address] = decl; - return declarations[address]; } + else + { + decl->includePath = includePath; + decl->varType = varType; + decl->varName = varName; + decl->size = size; + decl->isArray = true; + decl->arrayItemCnt = arrayItemCnt; + } + return decl; } -void ZFile::AddDeclarationDebugChecks(uint32_t address) +bool ZFile::AddDeclarationChecks(uint32_t address, const std::string& varName) { assert(GETSEGNUM(address) == 0); -#ifdef _DEBUG + assert(varName != ""); +#ifdef DEVELOPMENT if (address == 0x0000) { - int32_t bp = 0; + [[maybe_unused]] int32_t bp = 0; } #endif + + if (!IsOffsetInFileRange(address)) + { + fprintf(stderr, + "%s: Warning in %s\n" + "\t Tried to declare a variable outside of this file's range. Ignoring...\n" + "\t\t Variable's name: %s\n" + "\t\t Variable's offset: 0x%06X\n", + __PRETTY_FUNCTION__, name.c_str(), varName.c_str(), address); + return false; + } + + return true; } -std::string ZFile::GetDeclarationName(uint32_t address) const -{ - return GetDeclarationName(address, - "ERROR_COULD_NOT_FIND_DECLARATION"); // Note: For now that default - // message is just for testing -} - -std::string ZFile::GetDeclarationName(uint32_t address, std::string defaultResult) const -{ - Declaration* decl = GetDeclaration(address); - if (decl != nullptr) - return decl->varName; - - return defaultResult; -} - -std::string ZFile::GetDeclarationPtrName(segptr_t segAddress) const +bool ZFile::GetDeclarationPtrName(segptr_t segAddress, const std::string& expectedType, + std::string& declName) const { if (segAddress == 0) - return "NULL"; + { + declName = "NULL"; + return true; + } - Declaration* decl = GetDeclaration(Seg2Filespace(segAddress, baseAddress)); + uint32_t offset = Seg2Filespace(segAddress, baseAddress); + Declaration* decl = GetDeclaration(offset); + if (GETSEGNUM(segAddress) != segment || decl == nullptr) + { + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; + } - if (!Globals::Instance->HasSegment(GETSEGNUM(segAddress)) || decl == nullptr) - return StringHelper::Sprintf("0x%08X", segAddress); + if (expectedType != "" && expectedType != "void*") + { + if (expectedType != decl->varType && "static " + expectedType != decl->varType) + { + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; + } + } if (!decl->isArray) - return "&" + decl->varName; + declName = "&" + decl->varName; + else + declName = decl->varName; + return true; +} - return decl->varName; +bool ZFile::GetDeclarationArrayIndexedName(segptr_t segAddress, size_t elementSize, + const std::string& expectedType, + std::string& declName) const +{ + if (segAddress == 0) + { + declName = "NULL"; + return true; + } + + uint32_t address = Seg2Filespace(segAddress, baseAddress); + Declaration* decl = GetDeclarationRanged(address); + if (GETSEGNUM(segAddress) != segment || decl == nullptr || !decl->isArray) + { + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; + } + + if (expectedType != "" && expectedType != "void*") + { + if (expectedType != decl->varType && "static " + expectedType != decl->varType) + { + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; + } + } + + if (decl->address == address) + { + declName = decl->varName; + return true; + } + + if ((address - decl->address) % elementSize != 0 || !(address < decl->address + decl->size)) + { + declName = StringHelper::Sprintf("0x%08X", segAddress); + return false; + } + + uint32_t index = (address - decl->address) / elementSize; + declName = StringHelper::Sprintf("&%s[%u]", decl->varName.c_str(), index); + return true; } Declaration* ZFile::GetDeclaration(uint32_t address) const @@ -540,86 +668,47 @@ Declaration* ZFile::GetDeclarationRanged(uint32_t address) const return nullptr; } -uint32_t ZFile::GetDeclarationRangedAddress(uint32_t address) const -{ - for (const auto decl : declarations) - { - if (address >= decl.first && address < decl.first + decl.second->size) - return decl.first; - } - - return 0xFFFFFFFF; -} - bool ZFile::HasDeclaration(uint32_t address) { assert(GETSEGNUM(address) == 0); return declarations.find(address) != declarations.end(); } -void ZFile::GenerateSourceFiles(fs::path outputDir) +void ZFile::GenerateSourceFiles() { - std::string sourceOutput = ""; + std::string sourceOutput; sourceOutput += "#include \"ultra64.h\"\n"; sourceOutput += "#include \"z64.h\"\n"; sourceOutput += "#include \"macros.h\"\n"; sourceOutput += GetHeaderInclude(); + bool hasZRoom = false; + for (const auto& res : resources) + { + ZResourceType resType = res->GetResourceType(); + if (resType == ZResourceType::Room || resType == ZResourceType::Scene || + resType == ZResourceType::AltHeader) + { + hasZRoom = true; + break; + } + } + + if (hasZRoom) + { + sourceOutput += GetZRoomHeaderInclude(); + } + + sourceOutput += GetExternalFileHeaderInclude(); + GeneratePlaceholderDeclarations(); // Generate Code for (size_t i = 0; i < resources.size(); i++) { ZResource* res = resources.at(i); - std::string resSrc = res->GetSourceOutputCode(name); - - if (res->IsExternalResource()) - { - std::string path = Path::GetFileNameWithoutExtension(res->GetName()).c_str(); - - std::string assetOutDir = - (outputDir / Path::GetFileNameWithoutExtension(res->GetOutName())).string(); - std::string declType = res->GetSourceTypeName(); - - std::string incStr = StringHelper::Sprintf("%s.%s.inc", assetOutDir.c_str(), - res->GetExternalExtension().c_str()); - - if (res->GetResourceType() == ZResourceType::Texture) - { - ZTexture* tex = static_cast(res); - - if (!Globals::Instance->cfg.texturePool.empty()) - { - tex->CalcHash(); - - // TEXTURE POOL CHECK - if (Globals::Instance->cfg.texturePool.find(tex->hash) != - Globals::Instance->cfg.texturePool.end()) - { - incStr = Globals::Instance->cfg.texturePool[tex->hash].path.string() + "." + - res->GetExternalExtension() + ".inc"; - } - } - - incStr += ".c"; - } - else if (res->GetResourceType() == ZResourceType::Blob || - res->GetResourceType() == ZResourceType::Background) - { - incStr += ".c"; - } - - AddDeclarationIncludeArray(res->GetRawDataIndex(), incStr, res->GetRawDataSize(), - declType, res->GetName(), 0); - } - else - { - sourceOutput += resSrc; - } - - if (resSrc != "" && !res->IsExternalResource()) - sourceOutput += "\n"; + res->GetSourceOutputCode(name); } sourceOutput += ProcessDeclarations(); @@ -650,6 +739,11 @@ void ZFile::GenerateSourceHeaderFiles() formatter.Write("\n"); } + for (auto& sym : symbolResources) + { + formatter.Write(sym.second->GetSourceOutputHeader("")); + } + formatter.Write(ProcessExterns()); fs::path headerFilename = GetSourceOutputFolderPath() / outName.stem().concat(".h"); @@ -660,26 +754,48 @@ void ZFile::GenerateSourceHeaderFiles() File::WriteAllText(headerFilename, formatter.GetOutput()); } -void ZFile::GenerateHLIntermediette() +std::string ZFile::GetHeaderInclude() const { - // This is kinda hacky but it gets the job done for now... - HLModelIntermediette* mdl = new HLModelIntermediette(); + std::string headers = StringHelper::Sprintf("#include \"%s.h\"\n", + (outName.parent_path() / outName.stem()).c_str()); - for (ZResource* res : resources) - { - if (res->GetResourceType() == ZResourceType::DisplayList || - res->GetResourceType() == ZResourceType::Skeleton) - res->GenerateHLIntermediette(*mdl); - } - - // std::string test = mdl->ToOBJFile(); - // std::string test2 = mdl->ToAssimpFile(); + return headers; } -std::string ZFile::GetHeaderInclude() +std::string ZFile::GetZRoomHeaderInclude() const { - return StringHelper::Sprintf("#include \"%s\"\n\n", - (outName.parent_path() / outName.stem().concat(".h")).c_str()); + std::string headers; + headers += "#include \"segment_symbols.h\"\n"; + headers += "#include \"command_macros_base.h\"\n"; + headers += "#include \"z64cutscene_commands.h\"\n"; + headers += "#include \"variables.h\"\n"; + return headers; +} + +std::string ZFile::GetExternalFileHeaderInclude() const +{ + std::string externalFilesIncludes = ""; + + for (ZFile* externalFile : Globals::Instance->files) + { + if (externalFile != this) + { + fs::path outputFolderPath = externalFile->GetSourceOutputFolderPath(); + if (outputFolderPath == this->GetSourceOutputFolderPath()) + { + outputFolderPath = externalFile->outName.stem(); + } + else + { + outputFolderPath /= externalFile->outName.stem(); + } + + externalFilesIncludes += + StringHelper::Sprintf("#include \"%s.h\"\n", outputFolderPath.c_str()); + } + } + + return externalFilesIncludes; } void ZFile::GeneratePlaceholderDeclarations() @@ -687,8 +803,17 @@ void ZFile::GeneratePlaceholderDeclarations() // Generate placeholder declarations for (ZResource* res : resources) { - if (GetDeclaration(res->GetRawDataIndex()) == nullptr) - AddDeclarationPlaceholder(res->GetRawDataIndex(), res->GetName()); + if (GetDeclaration(res->GetRawDataIndex()) != nullptr) + { + continue; + } + + Declaration* decl = res->DeclareVar(GetName(), ""); + decl->staticConf = res->GetStaticConf(); + if (res->GetResourceType() == ZResourceType::Symbol) + { + decl->staticConf = StaticConfig::Off; + } } } @@ -710,9 +835,52 @@ ZTexture* ZFile::GetTextureResource(uint32_t offset) const return nullptr; } +void ZFile::AddSymbolResource(uint32_t offset, ZSymbol* sym) +{ + symbolResources[offset] = sym; +} + +ZSymbol* ZFile::GetSymbolResource(uint32_t offset) const +{ + auto sym = symbolResources.find(offset); + if (sym != symbolResources.end()) + return sym->second; + + return nullptr; +} + +ZSymbol* ZFile::GetSymbolResourceRanged(uint32_t offset) const +{ + for (const auto decl : symbolResources) + { + if (offset >= decl.first && offset < decl.first + decl.second->GetRawDataSize()) + return decl.second; + } + + return nullptr; +} + fs::path ZFile::GetSourceOutputFolderPath() const { - return Globals::Instance->sourceOutputPath / outName.parent_path(); + return outputPath / outName.parent_path(); +} + +bool ZFile::IsOffsetInFileRange(uint32_t offset) const +{ + if (!(offset < rawData.size())) + return false; + + return rangeStart <= offset && offset < rangeEnd; +} +bool ZFile::IsSegmentedInFilespaceRange(segptr_t segAddress) const +{ + uint8_t segnum = GETSEGNUM(segAddress); + uint32_t offset = Seg2Filespace(segAddress, baseAddress); + + if (segment != segnum) + return false; + + return IsOffsetInFileRange(offset); } std::map* ZFile::GetNodeMap() @@ -729,7 +897,7 @@ void ZFile::RegisterNode(std::string nodeName, ZResourceFactoryFunc* nodeFunc) std::string ZFile::ProcessDeclarations() { - std::string output = ""; + std::string output; if (declarations.size() == 0) return output; @@ -738,7 +906,6 @@ std::string ZFile::ProcessDeclarations() // Account for padding/alignment uint32_t lastAddr = 0; - uint32_t lastSize = 0; // printf("RANGE START: 0x%06X - RANGE END: 0x%06X\n", rangeStart, rangeEnd); @@ -756,21 +923,24 @@ std::string ZFile::ProcessDeclarations() { if (curItem.second->varType == lastItem.second->varType) { - // TEST: For now just do Vtx declarations... - if (lastItem.second->varType == "static Vtx") + if (!curItem.second->declaredInXml && !lastItem.second->declaredInXml) { - int32_t sizeDiff = curItem.first - (lastItem.first + lastItem.second->size); - - // Make sure there isn't an unaccounted inbetween these two - if (sizeDiff == 0) + // TEST: For now just do Vtx declarations... + if (lastItem.second->varType == "Vtx") { - lastItem.second->size += curItem.second->size; - lastItem.second->arrayItemCnt += curItem.second->arrayItemCnt; - lastItem.second->text += "\n" + curItem.second->text; - declarations.erase(curItem.first); - declarationKeys.erase(declarationKeys.begin() + i); - i--; - continue; + int32_t sizeDiff = curItem.first - (lastItem.first + lastItem.second->size); + + // Make sure there isn't an unaccounted inbetween these two + if (sizeDiff == 0) + { + lastItem.second->size += curItem.second->size; + lastItem.second->arrayItemCnt += curItem.second->arrayItemCnt; + lastItem.second->text += "\n" + curItem.second->text; + declarations.erase(curItem.first); + declarationKeys.erase(declarationKeys.begin() + i); + i--; + continue; + } } } } @@ -791,35 +961,21 @@ std::string ZFile::ProcessDeclarations() { if (item.second->alignment == DeclarationAlignment::Align16) { - // int32_t lastAddrSizeTest = declarations[lastAddr]->size; int32_t curPtr = lastAddr + declarations[lastAddr]->size; while (curPtr % 4 != 0) { declarations[lastAddr]->size++; - // item.second->size++; curPtr++; } - - /*while (curPtr % 16 != 0) - { - char buffer[2048]; - - sprintf(buffer, "static u32 align%02X = 0;\n", curPtr); - item.second->text = buffer + item.second->text; - - declarations[lastAddr]->size += 4; - curPtr += 4; - }*/ } else if (item.second->alignment == DeclarationAlignment::Align8) { - int32_t curPtr = lastAddr + declarations[lastAddr]->size; + size_t curPtr = lastAddr + declarations[lastAddr]->size; while (curPtr % 4 != 0) { declarations[lastAddr]->size++; - // item.second->size++; curPtr++; } @@ -827,299 +983,58 @@ std::string ZFile::ProcessDeclarations() { char buffer[2048]; - sprintf(buffer, "static u32 align%02X = 0;\n", curPtr); + sprintf(buffer, "u32 %s_align%02zX = 0;\n", name.c_str(), curPtr); item.second->preText = buffer + item.second->preText; declarations[lastAddr]->size += 4; - // item.second->size += 4; curPtr += 4; } } } - if (item.second->padding == DeclarationPadding::Pad16) - { - int32_t curPtr = item.first + item.second->size; - - while (curPtr % 4 != 0) - { - item.second->size++; - curPtr++; - } - - while (curPtr % 16 != 0) - { - item.second->postText += StringHelper::Sprintf("static u32 pad%02X = 0;\n", curPtr); - - item.second->size += 4; - curPtr += 4; - } - } - lastAddr = item.first; } - // Handle unaccounted data - lastAddr = 0; - lastSize = 0; - std::vector declsAddresses; - for (const auto& item : declarations) - { - declsAddresses.push_back(item.first); - } - declsAddresses.push_back(rawData.size()); - - for (uint32_t currentAddress : declsAddresses) - { - if (currentAddress >= rangeEnd) - { - break; - } - - if (currentAddress < rangeStart) - { - lastAddr = currentAddress; - continue; - } - - if (currentAddress != lastAddr && declarations.find(lastAddr) != declarations.end()) - { - Declaration* lastDecl = declarations.at(lastAddr); - lastSize = lastDecl->size; - - if (lastAddr + lastSize > currentAddress) - { - Declaration* currentDecl = declarations.at(currentAddress); - - fprintf(stderr, - "WARNING: Intersection detected from 0x%06X:0x%06X (%s), conflicts with " - "0x%06X (%s)\n", - lastAddr, lastAddr + lastSize, lastDecl->varName.c_str(), currentAddress, - currentDecl->varName.c_str()); - } - } - - uint32_t unaccountedAddress = lastAddr + lastSize; - - if (unaccountedAddress != currentAddress && lastAddr >= rangeStart && - unaccountedAddress < rangeEnd) - { - int diff = currentAddress - unaccountedAddress; - bool nonZeroUnaccounted = false; - - std::string src = " "; - - for (int i = 0; i < diff; i++) - { - uint8_t val = rawData.at(unaccountedAddress + i); - src += StringHelper::Sprintf("0x%02X, ", val); - if (val != 0x00) - { - nonZeroUnaccounted = true; - } - - if (Globals::Instance->verboseUnaccounted) - { - if ((i % 4 == 3)) - { - src += StringHelper::Sprintf(" // 0x%06X", unaccountedAddress + i - 3); - if (i != (diff - 1)) - { - src += "\n\t"; - } - } - } - else - { - if ((i % 16 == 15) && (i != (diff - 1))) - src += "\n "; - } - } - - if (declarations.find(unaccountedAddress) == declarations.end()) - { - if (diff > 0) - { - std::string unaccountedPrefix = "unaccounted"; - - if (diff < 16 && !nonZeroUnaccounted) - { - unaccountedPrefix = "possiblePadding"; - - // Strip unnecessary padding at the end of the file. - if (unaccountedAddress + diff >= rawData.size()) - break; - } - - Declaration* decl = AddDeclarationArray( - unaccountedAddress, DeclarationAlignment::None, diff, "static u8", - StringHelper::Sprintf("%s_%06X", unaccountedPrefix.c_str(), - unaccountedAddress), - diff, src); - decl->isUnaccounted = true; - - if (Globals::Instance->warnUnaccounted) - { - if (nonZeroUnaccounted) - { - fprintf( - stderr, - "Warning in file: %s (%s)\n" - "\t A non-zero unaccounted block was found at address '0x%06X'.\n" - "\t Block size: '0x%X'.\n", - xmlFilePath.c_str(), name.c_str(), unaccountedAddress, diff); - } - else if (diff >= 16) - { - fprintf(stderr, - "Warning in file: %s (%s)\n" - "\t A big (size>=0x10) zero-only unaccounted block was found " - "at address '0x%06X'.\n" - "\t Block size: '0x%X'.\n", - xmlFilePath.c_str(), name.c_str(), unaccountedAddress, diff); - } - } - } - } - } - - lastAddr = currentAddress; - } + HandleUnaccountedData(); // Go through include declarations // First, handle the prototypes (static only for now) - int32_t protoCnt = 0; for (std::pair item : declarations) { - if (StringHelper::StartsWith(item.second->varType, "static ") && - !item.second->isUnaccounted) - { - if (item.second->isArray) - { - if (item.second->arrayItemCntStr != "") - { - output += StringHelper::Sprintf("%s %s[%s];\n", item.second->varType.c_str(), - item.second->varName.c_str(), - item.second->arrayItemCntStr.c_str()); - } - else if (item.second->arrayItemCnt == 0) - { - output += StringHelper::Sprintf("%s %s[];\n", item.second->varType.c_str(), - item.second->varName.c_str()); - } - else - { - output += StringHelper::Sprintf("%s %s[%i];\n", item.second->varType.c_str(), - item.second->varName.c_str(), - item.second->arrayItemCnt); - } - } - else - output += StringHelper::Sprintf("%s %s;\n", item.second->varType.c_str(), - item.second->varName.c_str()); - - protoCnt++; - } + output += item.second->GetStaticForwardDeclarationStr(); } - if (protoCnt > 0) - output += "\n"; + output += "\n"; // Next, output the actual declarations - for (std::pair item : declarations) + for (const auto& item : declarations) { - if (item.first < rangeStart || item.first >= rangeEnd) - { + if (!IsOffsetInFileRange(item.first)) continue; - } if (item.second->includePath != "") { if (item.second->isExternal) { // HACK - std::string extType = ""; + std::string extType; if (item.second->varType == "Gfx") extType = "dlist"; - else if (item.second->varType == "Vtx" || item.second->varType == "static Vtx") + else if (item.second->varType == "Vtx") extType = "vtx"; - auto filepath = Globals::Instance->outputPath / item.second->varName; + auto filepath = outputPath / item.second->varName; File::WriteAllText( StringHelper::Sprintf("%s.%s.inc", filepath.c_str(), extType.c_str()), item.second->text); } - // Do not asm_process vertex arrays. They have no practical use being overridden. - // if (item.second->varType == "Vtx" || item.second->varType == "static Vtx") - if (item.second->varType != "u64" && item.second->varType != "static u64" && - item.second->varType != "u8" && item.second->varType != "static u8") - { - output += StringHelper::Sprintf( - "%s %s[] = {\n #include \"%s\"\n};\n\n", item.second->varType.c_str(), - item.second->varName.c_str(), - StringHelper::Replace(item.second->includePath, "assets/", "../assets/") - .c_str()); - } - else - { - if (item.second->arrayItemCntStr != "") - output += StringHelper::Sprintf( - "%s %s[%s] = {\n #include \"%s\"\n};\n\n", item.second->varType.c_str(), - item.second->varName.c_str(), item.second->arrayItemCntStr.c_str(), - item.second->includePath.c_str()); - else - output += StringHelper::Sprintf( - "%s %s[] = {\n #include \"%s\"\n};\n\n", item.second->varType.c_str(), - item.second->varName.c_str(), item.second->includePath.c_str()); - } + output += item.second->GetExternalDeclarationStr(); } else if (item.second->varType != "") { - if (item.second->preText != "") - output += item.second->preText + "\n"; - - { - if (item.second->isArray) - { - if (item.second->arrayItemCntStr != "") - { - output += StringHelper::Sprintf( - "%s %s[%s];\n", item.second->varType.c_str(), - item.second->varName.c_str(), item.second->arrayItemCntStr.c_str()); - } - else - { - if (item.second->arrayItemCnt == 0) - output += - StringHelper::Sprintf("%s %s[] = {\n", item.second->varType.c_str(), - item.second->varName.c_str()); - else - output += StringHelper::Sprintf( - "%s %s[%i] = {\n", item.second->varType.c_str(), - item.second->varName.c_str(), item.second->arrayItemCnt); - } - - output += item.second->text + "\n"; - } - else - { - output += StringHelper::Sprintf("%s %s = { ", item.second->varType.c_str(), - item.second->varName.c_str()); - output += item.second->text; - } - - if (output.back() == '\n') - output += "};"; - else - output += " };"; - } - - output += " " + item.second->rightText + "\n\n"; - - if (item.second->postText != "") - output += item.second->postText + "\n"; + output += item.second->GetNormalDeclarationStr(); } } @@ -1132,84 +1047,41 @@ void ZFile::ProcessDeclarationText(Declaration* decl) { size_t refIndex = 0; - if (decl->references.size() > 0) + if (!(decl->references.size() > 0)) + return; + + for (size_t i = 0; i < decl->text.size() - 1; i++) { - for (size_t i = 0; i < decl->text.size() - 1; i++) + char c = decl->text[i]; + char c2 = decl->text[i + 1]; + + if (c == '@' && c2 == 'r') { - char c = decl->text[i]; - char c2 = decl->text[i + 1]; + std::string vtxName; + Globals::Instance->GetSegmentedArrayIndexedName(decl->references[refIndex], 0x10, this, + "Vtx", vtxName); + decl->text.replace(i, 2, vtxName); - if (c == '@' && c2 == 'r') - { - if (refIndex >= decl->references.size()) - break; + refIndex++; - Declaration* refDecl = GetDeclarationRanged(decl->references[refIndex]); - uint32_t refDeclAddr = GetDeclarationRangedAddress(decl->references[refIndex]); - - if (refDecl != nullptr) - { - if (refDecl->isArray) - { - if (refDecl->arrayItemCnt != 0) - { - int32_t itemSize = refDecl->size / refDecl->arrayItemCnt; - int32_t itemIndex = - (decl->references[refIndex] - refDeclAddr) / itemSize; - - decl->text.replace(i, 2, - StringHelper::Sprintf( - "&%s[%i]", refDecl->varName.c_str(), itemIndex)); - } - else - { - decl->text.replace(i, 2, - StringHelper::Sprintf("ERROR ARRAYITEMCNT = 0")); - } - } - else - { - decl->text.replace(i, 2, refDecl->varName); - } - } - else - decl->text.replace(i, 2, "ERROR"); - - refIndex++; - } + if (refIndex >= decl->references.size()) + break; } } } std::string ZFile::ProcessExterns() { - std::string output = ""; + std::string output; - for (std::pair item : declarations) + for (const auto& item : declarations) { - if (item.first < rangeStart || item.first >= rangeEnd) + if (!IsOffsetInFileRange(item.first)) { continue; } - if (!StringHelper::StartsWith(item.second->varType, "static ") && - item.second->varType != "") // && item.second->includePath == "") - { - if (item.second->isArray) - { - if (item.second->arrayItemCnt == 0) - output += - StringHelper::Sprintf("extern %s %s[];\n", item.second->varType.c_str(), - item.second->varName.c_str()); - else - output += StringHelper::Sprintf( - "extern %s %s[%i];\n", item.second->varType.c_str(), - item.second->varName.c_str(), item.second->arrayItemCnt); - } - else - output += StringHelper::Sprintf("extern %s %s;\n", item.second->varType.c_str(), - item.second->varName.c_str()); - } + output += item.second->GetExternStr(); } output += "\n"; @@ -1219,12 +1091,12 @@ std::string ZFile::ProcessExterns() return output; } -std::string ZFile::ProcessTextureIntersections(std::string prefix) +std::string ZFile::ProcessTextureIntersections([[maybe_unused]] const std::string& prefix) { if (texturesResources.empty()) return ""; - std::string defines = ""; + std::string defines; std::vector> texturesSorted(texturesResources.begin(), texturesResources.end()); @@ -1249,11 +1121,13 @@ std::string ZFile::ProcessTextureIntersections(std::string prefix) // Shrink palette so it doesn't overlap currentTex->SetDimensions(offsetDiff / currentTex->GetPixelMultiplyer(), 1); declarations.at(currentOffset)->size = currentTex->GetRawDataSize(); + currentTex->DeclareVar(GetName(), ""); } else { - std::string texName = GetDeclarationPtrName(currentOffset); + std::string texName; std::string texNextName; + GetDeclarationPtrName(currentOffset, "", texName); Declaration* nextDecl = GetDeclaration(nextOffset); if (nextDecl == nullptr) @@ -1264,6 +1138,7 @@ std::string ZFile::ProcessTextureIntersections(std::string prefix) defines += StringHelper::Sprintf("#define %s ((u32)%s + 0x%06X)\n", texNextName.c_str(), texName.c_str(), offsetDiff); + delete declarations[nextOffset]; declarations.erase(nextOffset); texturesResources.erase(nextOffset); texturesSorted.erase(texturesSorted.begin() + i + 1); @@ -1275,3 +1150,155 @@ std::string ZFile::ProcessTextureIntersections(std::string prefix) return defines; } + +void ZFile::HandleUnaccountedData() +{ + uint32_t lastAddr = 0; + uint32_t lastSize = 0; + std::vector declsAddresses; + for (const auto& item : declarations) + { + declsAddresses.push_back(item.first); + } + + bool breakLoop = false; + for (uint32_t currentAddress : declsAddresses) + { + if (currentAddress >= rangeEnd) + { + breakLoop = true; + break; + } + + if (currentAddress < rangeStart) + { + lastAddr = currentAddress; + continue; + } + + breakLoop = HandleUnaccountedAddress(currentAddress, lastAddr, lastSize); + if (breakLoop) + break; + + lastAddr = currentAddress; + } + + if (!breakLoop) + { + // TODO: change rawData.size() to rangeEnd + // HandleUnaccountedAddress(rangeEnd, lastAddr, lastSize); + HandleUnaccountedAddress(rawData.size(), lastAddr, lastSize); + } +} + +bool ZFile::HandleUnaccountedAddress(uint32_t currentAddress, uint32_t lastAddr, uint32_t& lastSize) +{ + if (currentAddress != lastAddr && declarations.find(lastAddr) != declarations.end()) + { + Declaration* lastDecl = declarations.at(lastAddr); + lastSize = lastDecl->size; + + if (lastAddr + lastSize > currentAddress) + { + Declaration* currentDecl = declarations.at(currentAddress); + + fprintf(stderr, + "WARNING: Intersection detected from 0x%06X:0x%06X (%s), conflicts with " + "0x%06X (%s)\n", + lastAddr, lastAddr + lastSize, lastDecl->varName.c_str(), currentAddress, + currentDecl->varName.c_str()); + } + } + + uint32_t unaccountedAddress = lastAddr + lastSize; + + if (unaccountedAddress != currentAddress && lastAddr >= rangeStart && + unaccountedAddress < rangeEnd) + { + int diff = currentAddress - unaccountedAddress; + bool nonZeroUnaccounted = false; + + std::string src = " "; + + if (currentAddress > rawData.size()) + { + throw std::runtime_error(StringHelper::Sprintf( + "ZFile::ProcessDeclarations(): Fatal error while processing XML '%s'.\n" + "\t Offset '0x%X' is outside of the limits of file '%s', which has a size of " + "'0x%X'.\n" + "\t Aborting...", + xmlFilePath.c_str(), currentAddress, name.c_str(), rawData.size())); + } + + for (int i = 0; i < diff; i++) + { + uint8_t val = rawData.at(unaccountedAddress + i); + src += StringHelper::Sprintf("0x%02X, ", val); + if (val != 0x00) + { + nonZeroUnaccounted = true; + } + + if (Globals::Instance->verboseUnaccounted) + { + if ((i % 4 == 3)) + { + src += StringHelper::Sprintf(" // 0x%06X", unaccountedAddress + i - 3); + if (i != (diff - 1)) + { + src += "\n\t"; + } + } + } + else + { + if ((i % 16 == 15) && (i != (diff - 1))) + src += "\n "; + } + } + + if (declarations.find(unaccountedAddress) == declarations.end() && diff > 0) + { + std::string unaccountedPrefix = "unaccounted"; + + if (diff < 16 && !nonZeroUnaccounted) + { + unaccountedPrefix = "possiblePadding"; + + // Strip unnecessary padding at the end of the file. + if (unaccountedAddress + diff >= rawData.size()) + return true; + } + + Declaration* decl = AddDeclarationArray( + unaccountedAddress, DeclarationAlignment::Align4, diff, "u8", + StringHelper::Sprintf("%s_%s_%06X", name.c_str(), unaccountedPrefix.c_str(), + unaccountedAddress), + diff, src); + decl->isUnaccounted = true; + + if (Globals::Instance->warnUnaccounted) + { + if (nonZeroUnaccounted) + { + fprintf(stderr, + "Warning in file: %s (%s)\n" + "\t A non-zero unaccounted block was found at offset '0x%06X'.\n" + "\t Block size: '0x%X'.\n", + xmlFilePath.c_str(), name.c_str(), unaccountedAddress, diff); + } + else if (diff >= 16) + { + fprintf(stderr, + "Warning in file: %s (%s)\n" + "\t A big (size>=0x10) zero-only unaccounted block was found " + "at offset '0x%06X'.\n" + "\t Block size: '0x%X'.\n", + xmlFilePath.c_str(), name.c_str(), unaccountedAddress, diff); + } + } + } + } + + return false; +} diff --git a/tools/ZAPD/ZAPD/ZFile.h b/tools/ZAPD/ZAPD/ZFile.h index 8ea976e8c3..93234761d0 100644 --- a/tools/ZAPD/ZAPD/ZFile.h +++ b/tools/ZAPD/ZAPD/ZFile.h @@ -1,9 +1,10 @@ #pragma once +#include #include #include -#include "Directory.h" -#include "ZResource.h" + +#include "ZSymbol.h" #include "ZTexture.h" #include "tinyxml2.h" @@ -11,13 +12,13 @@ enum class ZFileMode { BuildTexture, BuildOverlay, - BuildModelIntermediette, - BuildAnimationIntermediette, BuildBlob, BuildSourceFile, BuildBackground, Extract, - Invalid + ExternalFile, + Invalid, + Custom = 1000, // Used for exporter file modes }; enum class ZGame @@ -30,19 +31,20 @@ enum class ZGame class ZFile { public: - std::map declarations; + std::map declarations; std::string defines; std::vector resources; uint32_t segment; uint32_t baseAddress, rangeStart, rangeEnd; + bool isExternalFile = false; - ZFile(std::string nName); - ZFile(ZFileMode mode, tinyxml2::XMLElement* reader, const fs::path& nBasePath, - std::string filename, const fs::path& nXmlFilePath, bool placeholderMode); + ZFile(const fs::path& nOutPath, const std::string& nName); + ZFile(ZFileMode nMode, tinyxml2::XMLElement* reader, const fs::path& nBasePath, + const fs::path& nOutPath, const std::string& filename, const fs::path& nXmlFilePath); ~ZFile(); - std::string GetVarName(uint32_t address); std::string GetName() const; + ZFileMode GetMode() const; const fs::path& GetXmlFilePath() const; const std::vector& GetRawData() const; void ExtractResources(); @@ -51,45 +53,54 @@ public: ZResource* FindResource(uint32_t rawDataIndex); std::vector GetResourcesOfType(ZResourceType resType); - Declaration* AddDeclaration(uint32_t address, DeclarationAlignment alignment, size_t size, - std::string varType, std::string varName, std::string body); - Declaration* AddDeclaration(uint32_t address, DeclarationAlignment alignment, - DeclarationPadding padding, size_t size, std::string varType, - std::string varName, std::string body); - Declaration* AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, size_t size, - std::string varType, std::string varName, size_t arrayItemCnt, - std::string body); - Declaration* AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, size_t size, - std::string varType, std::string varName, size_t arrayItemCnt, - std::string body, bool isExternal); - Declaration* AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, size_t size, - std::string varType, std::string varName, - std::string arrayItemCntStr, std::string body); - Declaration* AddDeclarationArray(uint32_t address, DeclarationAlignment alignment, - DeclarationPadding padding, size_t size, std::string varType, - std::string varName, size_t arrayItemCnt, std::string body); - Declaration* AddDeclarationPlaceholder(uint32_t address); - Declaration* AddDeclarationPlaceholder(uint32_t address, std::string varName); - Declaration* AddDeclarationInclude(uint32_t address, std::string includePath, size_t size, - std::string varType, std::string varName); - Declaration* AddDeclarationIncludeArray(uint32_t address, std::string includePath, size_t size, - std::string varType, std::string varName, + Declaration* AddDeclaration(offset_t address, DeclarationAlignment alignment, size_t size, + const std::string& varType, const std::string& varName, + const std::string& body); + + Declaration* AddDeclarationArray(offset_t address, DeclarationAlignment alignment, size_t size, + const std::string& varType, const std::string& varName, + size_t arrayItemCnt, const std::string& body); + Declaration* AddDeclarationArray(offset_t address, DeclarationAlignment alignment, size_t size, + const std::string& varType, const std::string& varName, + const std::string& arrayItemCntStr, const std::string& body); + + Declaration* AddDeclarationPlaceholder(offset_t address, const std::string& varName); + + Declaration* AddDeclarationInclude(offset_t address, const std::string& includePath, + size_t size, const std::string& varType, + const std::string& varName); + Declaration* AddDeclarationIncludeArray(offset_t address, std::string& includePath, size_t size, + const std::string& varType, const std::string& varName, size_t arrayItemCnt); - std::string GetDeclarationName(uint32_t address) const; - std::string GetDeclarationName(uint32_t address, std::string defaultResult) const; - std::string GetDeclarationPtrName(segptr_t segAddress) const; + + bool GetDeclarationPtrName(segptr_t segAddress, const std::string& expectedType, + std::string& declName) const; + bool GetDeclarationArrayIndexedName(segptr_t segAddress, size_t elementSize, + const std::string& expectedType, + std::string& declName) const; + Declaration* GetDeclaration(uint32_t address) const; Declaration* GetDeclarationRanged(uint32_t address) const; - uint32_t GetDeclarationRangedAddress(uint32_t address) const; bool HasDeclaration(uint32_t address); - std::string GetHeaderInclude(); + + std::string GetHeaderInclude() const; + std::string GetZRoomHeaderInclude() const; + std::string GetExternalFileHeaderInclude() const; + void GeneratePlaceholderDeclarations(); void AddTextureResource(uint32_t offset, ZTexture* tex); ZTexture* GetTextureResource(uint32_t offset) const; + void AddSymbolResource(uint32_t offset, ZSymbol* sym); + ZSymbol* GetSymbolResource(uint32_t offset) const; + ZSymbol* GetSymbolResourceRanged(uint32_t offset) const; + fs::path GetSourceOutputFolderPath() const; + bool IsOffsetInFileRange(uint32_t offset) const; + bool IsSegmentedInFilespaceRange(segptr_t segAddress) const; + static std::map* GetNodeMap(); static void RegisterNode(std::string nodeName, ZResourceFactoryFunc* nodeFunc); @@ -98,23 +109,27 @@ protected: std::string name; fs::path outName = ""; fs::path basePath; + fs::path outputPath; fs::path xmlFilePath; + // Keep track of every texture of this ZFile. // The pointers declared here are "borrowed" (somebody else is the owner), // so ZFile shouldn't delete/free those textures. std::map texturesResources; + std::map symbolResources; + ZFileMode mode = ZFileMode::Invalid; ZFile(); - void ParseXML(ZFileMode mode, tinyxml2::XMLElement* reader, std::string filename, - bool placeholderMode); + void ParseXML(tinyxml2::XMLElement* reader, const std::string& filename); void DeclareResourceSubReferences(); - void GenerateSourceFiles(fs::path outputDir); + void GenerateSourceFiles(); void GenerateSourceHeaderFiles(); - void GenerateHLIntermediette(); - void AddDeclarationDebugChecks(uint32_t address); + bool AddDeclarationChecks(uint32_t address, const std::string& varName); std::string ProcessDeclarations(); void ProcessDeclarationText(Declaration* decl); std::string ProcessExterns(); - std::string ProcessTextureIntersections(std::string prefix); + std::string ProcessTextureIntersections(const std::string& prefix); + void HandleUnaccountedData(); + bool HandleUnaccountedAddress(uint32_t currentAddress, uint32_t lastAddr, uint32_t& lastSize); }; diff --git a/tools/ZAPD/ZAPD/ZLimb.cpp b/tools/ZAPD/ZAPD/ZLimb.cpp index ce62bac272..77c66871fe 100644 --- a/tools/ZAPD/ZAPD/ZLimb.cpp +++ b/tools/ZAPD/ZAPD/ZLimb.cpp @@ -1,379 +1,31 @@ #include "ZLimb.h" + #include -#include "BitConverter.h" + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" REGISTER_ZFILENODE(Limb, ZLimb); -Struct_800A57C0::Struct_800A57C0(const std::vector& rawData, uint32_t fileOffset) +ZLimb::ZLimb(ZFile* nParent) : ZResource(nParent), segmentStruct(nParent) { - unk_0 = BitConverter::ToUInt16BE(rawData, fileOffset + 0x00); - unk_2 = BitConverter::ToInt16BE(rawData, fileOffset + 0x02); - unk_4 = BitConverter::ToInt16BE(rawData, fileOffset + 0x04); - unk_6 = BitConverter::ToInt8BE(rawData, fileOffset + 0x06); - unk_7 = BitConverter::ToInt8BE(rawData, fileOffset + 0x07); - unk_8 = BitConverter::ToInt8BE(rawData, fileOffset + 0x08); - unk_9 = BitConverter::ToUInt8BE(rawData, fileOffset + 0x09); -} -Struct_800A57C0::Struct_800A57C0(const std::vector& rawData, uint32_t fileOffset, - size_t index) - : Struct_800A57C0(rawData, fileOffset + index * GetRawDataSize()) -{ -} - -std::string Struct_800A57C0::GetSourceOutputCode() const -{ - return StringHelper::Sprintf("0x%02X, %i, %i, %i, %i, %i, 0x%02X", unk_0, unk_2, unk_4, unk_6, - unk_7, unk_8, unk_9); -} - -size_t Struct_800A57C0::GetRawDataSize() -{ - return 0x0A; -} - -std::string Struct_800A57C0::GetSourceTypeName() -{ - return "Struct_800A57C0"; -} - -Struct_800A598C_2::Struct_800A598C_2(const std::vector& rawData, uint32_t fileOffset) -{ - unk_0 = BitConverter::ToUInt8BE(rawData, fileOffset + 0x00); - x = BitConverter::ToInt16BE(rawData, fileOffset + 0x02); - y = BitConverter::ToInt16BE(rawData, fileOffset + 0x04); - z = BitConverter::ToInt16BE(rawData, fileOffset + 0x06); - unk_8 = BitConverter::ToUInt8BE(rawData, fileOffset + 0x08); -} -Struct_800A598C_2::Struct_800A598C_2(const std::vector& rawData, uint32_t fileOffset, - size_t index) - : Struct_800A598C_2(rawData, fileOffset + index * GetRawDataSize()) -{ -} - -std::string Struct_800A598C_2::GetSourceOutputCode() const -{ - return StringHelper::Sprintf("0x%02X, %i, %i, %i, 0x%02X", unk_0, x, y, z, unk_8); -} - -size_t Struct_800A598C_2::GetRawDataSize() -{ - return 0x0A; -} - -std::string Struct_800A598C_2::GetSourceTypeName() -{ - return "Struct_800A598C_2"; -} - -Struct_800A598C::Struct_800A598C(ZFile* parent, const std::vector& rawData, - uint32_t fileOffset) - : parent(parent) -{ - unk_0 = BitConverter::ToUInt16BE(rawData, fileOffset + 0x00); - unk_2 = BitConverter::ToUInt16BE(rawData, fileOffset + 0x02); - unk_4 = BitConverter::ToUInt16BE(rawData, fileOffset + 0x04); - unk_8 = BitConverter::ToUInt32BE(rawData, fileOffset + 0x08); - unk_C = BitConverter::ToUInt32BE(rawData, fileOffset + 0x0C); - - if (unk_8 != 0) - { - uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); - for (size_t i = 0; i < unk_0; i++) - { - unk_8_arr.emplace_back(rawData, unk_8_Offset, i); - } - } - - if (unk_C != 0) - { - uint32_t unk_C_Offset = Seg2Filespace(unk_C, parent->baseAddress); - for (size_t i = 0; i < unk_2; i++) - { - unk_C_arr.emplace_back(rawData, unk_C_Offset, i); - } - } -} -Struct_800A598C::Struct_800A598C(ZFile* parent, const std::vector& rawData, - uint32_t fileOffset, size_t index) - : Struct_800A598C(parent, rawData, fileOffset + index * GetRawDataSize()) -{ -} - -void Struct_800A598C::PreGenSourceFiles(const std::string& prefix) -{ - std::string entryStr; - - if (unk_8 != 0) - { - uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); - std::string unk_8_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A57C0::GetSourceTypeName().c_str(), unk_8_Offset); - - size_t arrayItemCnt = unk_8_arr.size(); - entryStr = ""; - size_t i = 0; - - for (auto& child : unk_8_arr) - { - entryStr += StringHelper::Sprintf(" { %s },%s", child.GetSourceOutputCode().c_str(), - (++i < arrayItemCnt) ? "\n" : ""); - } - - Declaration* decl = parent->GetDeclaration(unk_8_Offset); - - if (decl == nullptr) - { - parent->AddDeclarationArray(unk_8_Offset, DeclarationAlignment::None, - arrayItemCnt * Struct_800A57C0::GetRawDataSize(), - Struct_800A57C0::GetSourceTypeName(), unk_8_Str, - arrayItemCnt, entryStr); - } - else - { - decl->text = entryStr; - } - } - - if (unk_C != 0) - { - uint32_t unk_C_Offset = Seg2Filespace(unk_C, parent->baseAddress); - std::string unk_C_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A598C_2::GetSourceTypeName().c_str(), unk_C_Offset); - - size_t arrayItemCnt = unk_C_arr.size(); - entryStr = ""; - size_t i = 0; - - for (auto& child : unk_C_arr) - { - entryStr += StringHelper::Sprintf(" { %s },%s", child.GetSourceOutputCode().c_str(), - (++i < arrayItemCnt) ? "\n" : ""); - } - - Declaration* decl = parent->GetDeclaration(unk_C_Offset); - if (decl == nullptr) - { - parent->AddDeclarationArray(unk_C_Offset, DeclarationAlignment::None, - arrayItemCnt * Struct_800A598C_2::GetRawDataSize(), - Struct_800A598C_2::GetSourceTypeName(), unk_C_Str, - arrayItemCnt, entryStr); - } - else - { - decl->text = entryStr; - } - } -} - -std::string Struct_800A598C::GetSourceOutputCode(const std::string& prefix) const -{ - std::string entryStr; - - std::string unk_8_Str = "NULL"; - - if (unk_8 != 0) - { - uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); - unk_8_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A57C0::GetSourceTypeName().c_str(), unk_8_Offset); - } - - std::string unk_C_Str = "NULL"; - - if (unk_C != 0) - { - uint32_t unk_C_Offset = Seg2Filespace(unk_C, parent->baseAddress); - unk_C_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A598C_2::GetSourceTypeName().c_str(), unk_C_Offset); - } - - entryStr = StringHelper::Sprintf("\n ARRAY_COUNTU(%s), ARRAY_COUNTU(%s),\n", - unk_8_Str.c_str(), unk_C_Str.c_str()); - entryStr += StringHelper::Sprintf(" %i, %s, %s\n ", unk_4, unk_8_Str.c_str(), - unk_C_Str.c_str()); - entryStr = StringHelper::Sprintf("\n ARRAY_COUNTU(%s), ARRAY_COUNTU(%s),\n", - unk_8_Str.c_str(), unk_C_Str.c_str()); - entryStr += StringHelper::Sprintf(" %i, %s, %s\n ", unk_4, unk_8_Str.c_str(), - unk_C_Str.c_str()); - - return entryStr; -} - -size_t Struct_800A598C::GetRawDataSize() -{ - return 0x10; -} - -std::string Struct_800A598C::GetSourceTypeName() -{ - return "Struct_800A598C"; -} - -Struct_800A5E28::Struct_800A5E28(ZFile* parent, const std::vector& nRawData, - uint32_t fileOffset) - : parent(parent) -{ - unk_0 = BitConverter::ToUInt16BE(nRawData, fileOffset + 0x00); - unk_2 = BitConverter::ToUInt16BE(nRawData, fileOffset + 0x02); - unk_4 = BitConverter::ToUInt32BE(nRawData, fileOffset + 0x04); - unk_8 = BitConverter::ToUInt32BE(nRawData, fileOffset + 0x08); - - if (unk_4 != 0) - { - uint32_t unk_4_Offset = Seg2Filespace(unk_4, parent->baseAddress); - - for (size_t i = 0; i < unk_2; i++) - { - unk_4_arr.emplace_back(parent, nRawData, unk_4_Offset, i); - } - } -} - -Struct_800A5E28::~Struct_800A5E28() -{ - delete unk_8_dlist; -} - -void Struct_800A5E28::PreGenSourceFiles(const std::string& prefix) -{ - if (unk_4 != 0) - { - uint32_t unk_4_Offset = Seg2Filespace(unk_4, parent->baseAddress); - std::string unk_4_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A598C::GetSourceTypeName().c_str(), unk_4_Offset); - - std::string entryStr = ""; - uint16_t arrayItemCnt = unk_4_arr.size(); - - size_t i = 0; - - for (auto& child : unk_4_arr) - { - child.PreGenSourceFiles(prefix); - entryStr += - StringHelper::Sprintf(" { %s },%s", child.GetSourceOutputCode(prefix).c_str(), - (++i < arrayItemCnt) ? "\n" : ""); - } - - Declaration* decl = parent->GetDeclaration(unk_4_Offset); - - if (decl == nullptr) - { - parent->AddDeclarationArray(unk_4_Offset, DeclarationAlignment::None, - arrayItemCnt * Struct_800A598C::GetRawDataSize(), - Struct_800A598C::GetSourceTypeName(), unk_4_Str, - arrayItemCnt, entryStr); - } - else - { - decl->text = entryStr; - } - } - - if (unk_8 != 0) - { - uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); - - int32_t dlistLength = ZDisplayList::GetDListLength( - parent->GetRawData(), unk_8_Offset, - Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); - unk_8_dlist = new ZDisplayList(unk_8_Offset, dlistLength, parent); - - std::string dListStr = - StringHelper::Sprintf("%sSkinLimbDL_%06X", prefix.c_str(), unk_8_Offset); - unk_8_dlist->SetName(dListStr); - unk_8_dlist->GetSourceOutputCode(prefix); - } -} - -std::string Struct_800A5E28::GetSourceOutputCode(const std::string& prefix) const -{ - std::string entryStr = ""; - - std::string unk_4_Str = "NULL"; - - if (unk_4 != 0) - { - uint32_t unk_4_Offset = Seg2Filespace(unk_4, parent->baseAddress); - Declaration* decl = parent->GetDeclaration(unk_4_Offset); - - if (decl == nullptr) - { - unk_4_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A598C::GetSourceTypeName().c_str(), unk_4_Offset); - } - else - { - unk_4_Str = decl->varName; - } - } - - std::string unk_8_Str = "NULL"; - if (unk_8 != 0) - { - uint32_t unk_8_Offset = Seg2Filespace(unk_8, parent->baseAddress); - Declaration* decl = parent->GetDeclaration(unk_8_Offset); - if (decl == nullptr) - { - // Something went wrong... - unk_8_Str = StringHelper::Sprintf("0x%08X", unk_8); - } - else - { - unk_8_Str = decl->varName; - } - } - - return StringHelper::Sprintf("\n %i, ARRAY_COUNTU(%s),\n %s, %s\n", unk_0, - unk_4_Str.c_str(), unk_4_Str.c_str(), unk_8_Str.c_str()); -} - -size_t Struct_800A5E28::GetRawDataSize() -{ - return 0x0C; -} - -std::string Struct_800A5E28::GetSourceTypeName() -{ - return "Struct_800A5E28"; -} - -ZLimb::ZLimb(ZFile* nParent) : ZResource(nParent) -{ - dListPtr = 0; - dList2Ptr = 0; RegisterOptionalAttribute("LimbType"); RegisterOptionalAttribute("Type"); } -ZLimb::ZLimb(ZLimbType limbType, const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent) - : ZLimb(nParent) +void ZLimb::ExtractFromBinary(uint32_t nRawDataIndex, ZLimbType nType) { rawDataIndex = nRawDataIndex; - parent = nParent; - type = limbType; + type = nType; - name = StringHelper::Sprintf("%sLimb_%06X", prefix.c_str(), GetFileAddress()); + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; ParseRawData(); } -void ZLimb::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclaration(GetFileAddress(), DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), name, ""); -} - void ZLimb::ParseXML(tinyxml2::XMLElement* reader) { ZResource::ParseXML(reader); @@ -385,37 +37,29 @@ void ZLimb::ParseXML(tinyxml2::XMLElement* reader) if (limbType == "") { - fprintf(stderr, - "ZLimb::ParseXML: Warning in '%s'.\n" - "\t Missing 'LimbType' attribute in xml.\n" - "\t Defaulting to 'Standard'.\n", - name.c_str()); - type = ZLimbType::Standard; + throw std::runtime_error(StringHelper::Sprintf("ZLimb::ParseXML: Error in '%s'.\n" + "\t Missing 'LimbType' attribute in xml.\n", + name.c_str())); } - else + + type = GetTypeByAttributeName(limbType); + if (type == ZLimbType::Invalid) { - type = GetTypeByAttributeName(limbType); - if (type == ZLimbType::Invalid) - { - fprintf(stderr, - "ZLimb::ParseXML: Warning in '%s'.\n" - "\t Invalid LimbType found: '%s'.\n" - "\t Defaulting to 'Standard'.\n", - name.c_str(), limbType.c_str()); - type = ZLimbType::Standard; - } + throw std::runtime_error(StringHelper::Sprintf("ZLimb::ParseXML: Error in '%s'.\n" + "\t Invalid 'LimbType' found: '%s'.\n", + name.c_str(), limbType.c_str())); } } void ZLimb::ParseRawData() { ZResource::ParseRawData(); - const auto& rawData = parent->GetRawData(); + if (type == ZLimbType::Curve) { - childIndex = rawData.at(rawDataIndex + 0); - siblingIndex = rawData.at(rawDataIndex + 1); + childIndex = BitConverter::ToUInt8BE(rawData, rawDataIndex + 0); + siblingIndex = BitConverter::ToUInt8BE(rawData, rawDataIndex + 1); dListPtr = BitConverter::ToUInt32BE(rawData, rawDataIndex + 4); dList2Ptr = BitConverter::ToUInt32BE(rawData, rawDataIndex + 8); @@ -446,7 +90,7 @@ void ZLimb::ParseRawData() { case ZLimbType::LOD: dList2Ptr = BitConverter::ToUInt32BE(rawData, rawDataIndex + 12); - // Intended fallthrough + [[fallthrough]]; case ZLimbType::Standard: dListPtr = BitConverter::ToUInt32BE(rawData, rawDataIndex + 8); break; @@ -455,12 +99,16 @@ void ZLimb::ParseRawData() skinSegmentType = static_cast(BitConverter::ToInt32BE(rawData, rawDataIndex + 8)); skinSegment = BitConverter::ToUInt32BE(rawData, rawDataIndex + 12); - if (skinSegmentType == ZLimbSkinType::SkinType_4 && skinSegment != 0) + if (skinSegmentType == ZLimbSkinType::SkinType_4) { - uint32_t skinSegmentOffset = Seg2Filespace(skinSegment, parent->baseAddress); - segmentStruct = Struct_800A5E28(parent, rawData, skinSegmentOffset); + if (skinSegment != 0 && GETSEGNUM(skinSegment) == parent->segment) + { + uint32_t skinSegmentOffset = Seg2Filespace(skinSegment, parent->baseAddress); + segmentStruct.ExtractFromFile(skinSegmentOffset); + } } break; + default: throw std::runtime_error("Invalid ZLimb type"); break; @@ -469,8 +117,13 @@ void ZLimb::ParseRawData() void ZLimb::DeclareReferences(const std::string& prefix) { - ZResource::DeclareReferences(prefix); + std::string varPrefix = name; + if (varPrefix == "") + varPrefix = prefix; + ZResource::DeclareReferences(varPrefix); + + std::string suffix; switch (type) { case ZLimbType::Legacy: @@ -479,8 +132,10 @@ void ZLimb::DeclareReferences(const std::string& prefix) uint32_t childOffset = Seg2Filespace(childPtr, parent->baseAddress); if (!parent->HasDeclaration(childOffset)) { - ZLimb* child = new ZLimb(ZLimbType::Legacy, prefix, childOffset, parent); - child->GetSourceOutputCode(prefix); + ZLimb* child = new ZLimb(parent); + child->ExtractFromBinary(childOffset, ZLimbType::Legacy); + child->DeclareVar(varPrefix, ""); + child->DeclareReferences(varPrefix); parent->AddResource(child); } } @@ -489,18 +144,47 @@ void ZLimb::DeclareReferences(const std::string& prefix) uint32_t siblingdOffset = Seg2Filespace(siblingPtr, parent->baseAddress); if (!parent->HasDeclaration(siblingdOffset)) { - ZLimb* sibling = new ZLimb(ZLimbType::Legacy, prefix, siblingdOffset, parent); - sibling->GetSourceOutputCode(prefix); + ZLimb* sibling = new ZLimb(parent); + sibling->ExtractFromBinary(siblingdOffset, ZLimbType::Legacy); + sibling->DeclareVar(varPrefix, ""); + sibling->DeclareReferences(varPrefix); parent->AddResource(sibling); } } break; - // TODO - case ZLimbType::Standard: - case ZLimbType::LOD: - case ZLimbType::Skin: case ZLimbType::Curve: + case ZLimbType::LOD: + suffix = "Far"; + if (type == ZLimbType::Curve) + suffix = "Curve2"; + DeclareDList(dList2Ptr, varPrefix, suffix); + [[fallthrough]]; + case ZLimbType::Standard: + suffix = ""; + if (type == ZLimbType::Curve) + suffix = "Curve"; + DeclareDList(dListPtr, varPrefix, suffix); + break; + + case ZLimbType::Skin: + switch (skinSegmentType) + { + case ZLimbSkinType::SkinType_4: + if (skinSegment != 0 && GETSEGNUM(skinSegment) == parent->segment) + { + segmentStruct.DeclareReferences(varPrefix); + segmentStruct.GetSourceOutputCode(varPrefix); + } + break; + + case ZLimbSkinType::SkinType_DList: + DeclareDList(skinSegment, varPrefix, ""); + break; + + default: + break; + } break; case ZLimbType::Invalid: @@ -530,18 +214,20 @@ size_t ZLimb::GetRawDataSize() const return 0x0C; } -std::string ZLimb::GetSourceOutputCode(const std::string& prefix) +std::string ZLimb::GetBodySourceCode() const { - std::string limbPrefix = type == ZLimbType::Curve ? "Curve" : ""; - std::string dListStr = GetLimbDListSourceOutputCode(prefix, limbPrefix, dListPtr); - limbPrefix = type == ZLimbType::Curve ? "Curve" : "Far"; - std::string dListStr2 = GetLimbDListSourceOutputCode(prefix, limbPrefix, dList2Ptr); + std::string dListStr; + std::string dListStr2; + Globals::Instance->GetSegmentedArrayIndexedName(dListPtr, 8, parent, "Gfx", dListStr); + Globals::Instance->GetSegmentedArrayIndexedName(dList2Ptr, 8, parent, "Gfx", dListStr2); std::string entryStr = "\n\t"; if (type == ZLimbType::Legacy) { - std::string childName = parent->GetDeclarationPtrName(childPtr); - std::string siblingName = parent->GetDeclarationPtrName(siblingPtr); + std::string childName; + std::string siblingName; + Globals::Instance->GetSegmentedPtrName(childPtr, parent, "Gfx", childName); + Globals::Instance->GetSegmentedPtrName(siblingPtr, parent, "Gfx", siblingName); entryStr += StringHelper::Sprintf("%s,\n", dListStr.c_str()); entryStr += @@ -556,24 +242,28 @@ std::string ZLimb::GetSourceOutputCode(const std::string& prefix) { entryStr += StringHelper::Sprintf("{ %i, %i, %i }, ", transX, transY, transZ); } - entryStr += StringHelper::Sprintf("0x%02X, 0x%02X,\n", childIndex, siblingIndex); switch (type) { case ZLimbType::Standard: - entryStr += StringHelper::Sprintf(" %s\n", dListStr.c_str()); + entryStr += StringHelper::Sprintf("\t%s\n", dListStr.c_str()); break; case ZLimbType::LOD: case ZLimbType::Curve: entryStr += - StringHelper::Sprintf(" { %s, %s }\n", dListStr.c_str(), dListStr2.c_str()); + StringHelper::Sprintf("\t{ %s, %s }\n", dListStr.c_str(), dListStr2.c_str()); break; case ZLimbType::Skin: - entryStr += GetSourceOutputCodeSkin(prefix); - break; + { + std::string skinSegmentStr; + Globals::Instance->GetSegmentedPtrName(skinSegment, parent, "", skinSegmentStr); + entryStr += + StringHelper::Sprintf("\t0x%02X, %s\n", skinSegmentType, skinSegmentStr.c_str()); + } + break; case ZLimbType::Legacy: break; @@ -583,15 +273,12 @@ std::string ZLimb::GetSourceOutputCode(const std::string& prefix) } } - Declaration* decl = parent->GetDeclaration(GetFileAddress()); + return entryStr; +} - if (decl == nullptr) - parent->AddDeclaration(GetFileAddress(), DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), name, entryStr); - else - decl->text = entryStr; - - return ""; +std::string ZLimb::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sLimb_%06X", prefix.c_str(), rawDataIndex); } std::string ZLimb::GetSourceTypeName() const @@ -663,126 +350,34 @@ ZLimbType ZLimb::GetTypeByAttributeName(const std::string& attrName) return ZLimbType::Invalid; } -uint32_t ZLimb::GetFileAddress() +void ZLimb::DeclareDList(segptr_t dListSegmentedPtr, const std::string& prefix, + const std::string& limbSuffix) { - return Seg2Filespace(rawDataIndex, parent->baseAddress); -} + if (dListSegmentedPtr == 0 || GETSEGNUM(dListSegmentedPtr) != parent->segment) + return; -// Returns the ptrname of a dlist. Declares it if it has not been declared yet. -std::string ZLimb::GetLimbDListSourceOutputCode(const std::string& prefix, - const std::string& limbPrefix, segptr_t dListPtr) -{ - if (dListPtr == 0) - return "NULL"; + uint32_t dlistOffset = Seg2Filespace(dListSegmentedPtr, parent->baseAddress); + if (parent->HasDeclaration(dlistOffset)) + return; - uint32_t dListOffset = Seg2Filespace(dListPtr, parent->baseAddress); + if (!parent->IsOffsetInFileRange(dlistOffset) || dlistOffset >= parent->GetRawData().size()) + return; - // Check if pointing past the object's size - if (dListOffset > parent->GetRawData().size()) - return StringHelper::Sprintf("0x%08X", dListPtr); - - // Check if it is already declared - Declaration* decl = parent->GetDeclaration(dListOffset); - if (decl != nullptr) - return decl->varName; - - // Check if it points to the middle of a DList - decl = parent->GetDeclarationRanged(dListOffset); - if (decl != nullptr) - { - // TODO: Figure out a way to not hardcode the "Gfx" type. - if (decl->varType == "Gfx") - { - uint32_t declAddress = parent->GetDeclarationRangedAddress(dListOffset); - if (dListOffset < declAddress + decl->size) - { - uint32_t index = (dListOffset - declAddress) / 8; - return StringHelper::Sprintf("&%s[%u]", decl->varName.c_str(), index); - } - } - } - - // Create the DList - std::string dListStr = - StringHelper::Sprintf("%s%sLimbDL_%06X", prefix.c_str(), limbPrefix.c_str(), dListOffset); + std::string dlistName; + bool declFound = Globals::Instance->GetSegmentedArrayIndexedName(dListSegmentedPtr, 8, parent, + "Gfx", dlistName); + if (declFound) + return; int32_t dlistLength = ZDisplayList::GetDListLength( - parent->GetRawData(), dListOffset, + parent->GetRawData(), dlistOffset, Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); - auto dList = new ZDisplayList(dListOffset, dlistLength, parent); - dList->SetName(dListStr); - dList->GetSourceOutputCode(prefix); - return dListStr; -} - -std::string ZLimb::GetSourceOutputCodeSkin_Type_4(const std::string& prefix) -{ - assert(type == ZLimbType::Skin); - assert(skinSegmentType == ZLimbSkinType::SkinType_4); - - if (skinSegment == 0) - return "NULL"; - - uint32_t skinSegmentOffset = Seg2Filespace(skinSegment, parent->baseAddress); - - std::string struct_800A5E28_Str; - Declaration* decl = parent->GetDeclaration(skinSegmentOffset); - if (decl == nullptr) - { - struct_800A5E28_Str = - StringHelper::Sprintf("%sSkinLimb_%s_%06X", prefix.c_str(), - Struct_800A5E28::GetSourceTypeName().c_str(), skinSegmentOffset); - - segmentStruct.PreGenSourceFiles(prefix); - std::string entryStr = segmentStruct.GetSourceOutputCode(prefix); - - parent->AddDeclaration(skinSegmentOffset, DeclarationAlignment::None, - Struct_800A5E28::GetRawDataSize(), - Struct_800A5E28::GetSourceTypeName(), struct_800A5E28_Str, entryStr); - } - else - { - struct_800A5E28_Str = decl->varName; - } - - return struct_800A5E28_Str; -} - -std::string ZLimb::GetSourceOutputCodeSkin(const std::string& prefix) -{ - assert(type == ZLimbType::Skin); - - std::string skinSegmentStr = "NULL"; - - if (skinSegment != 0) - { - switch (skinSegmentType) - { - case ZLimbSkinType::SkinType_4: - skinSegmentStr = "&" + GetSourceOutputCodeSkin_Type_4(prefix); - break; - case ZLimbSkinType::SkinType_DList: - skinSegmentStr = GetLimbDListSourceOutputCode(prefix, "Skin", skinSegment); - break; - default: - fprintf(stderr, - "ZLimb::GetSourceOutputCodeSkinType: Error in '%s'.\n\t Unknown segment type " - "for SkinLimb: '%i'. \n\tPlease report this.\n", - name.c_str(), static_cast(skinSegmentType)); - break; - case ZLimbSkinType::SkinType_0: - case ZLimbSkinType::SkinType_5: - fprintf(stderr, - "ZLimb::GetSourceOutputCodeSkinType: Error in '%s'.\n\t Segment type for " - "SkinLimb not implemented: '%i'.\n", - name.c_str(), static_cast(skinSegmentType)); - skinSegmentStr = StringHelper::Sprintf("0x%08X", skinSegment); - break; - } - } - - std::string entryStr = - StringHelper::Sprintf(" 0x%02X, %s\n", skinSegmentType, skinSegmentStr.c_str()); - - return entryStr; + ZDisplayList* dlist = new ZDisplayList(parent); + dlist->ExtractFromBinary(dlistOffset, dlistLength); + + std::string dListStr = + StringHelper::Sprintf("%s%sDL_%06X", prefix.c_str(), limbSuffix.c_str(), dlistOffset); + dlist->SetName(dListStr); + dlist->DeclareVar(prefix, ""); + parent->AddResource(dlist); } diff --git a/tools/ZAPD/ZAPD/ZLimb.h b/tools/ZAPD/ZAPD/ZLimb.h index ac9f17d838..53a4143292 100644 --- a/tools/ZAPD/ZAPD/ZLimb.h +++ b/tools/ZAPD/ZAPD/ZLimb.h @@ -3,6 +3,8 @@ #include #include #include + +#include "OtherStructs/SkinLimbStructs.h" #include "ZDisplayList.h" #include "ZFile.h" @@ -16,117 +18,14 @@ enum class ZLimbType Legacy, }; -// TODO: check if more types exists -enum class ZLimbSkinType -{ - SkinType_0, // Segment = 0 - SkinType_4 = 4, // Segment = segmented address // Struct_800A5E28 - SkinType_5 = 5, // Segment = 0 - SkinType_DList = 11, // Segment = DList address -}; - -class Struct_800A57C0 -{ -protected: - uint16_t unk_0; - int16_t unk_2; - int16_t unk_4; - int8_t unk_6; - int8_t unk_7; - int8_t unk_8; - uint8_t unk_9; - -public: - Struct_800A57C0(const std::vector& rawData, uint32_t fileOffset); - Struct_800A57C0(const std::vector& rawData, uint32_t fileOffset, size_t index); - - [[nodiscard]] std::string GetSourceOutputCode() const; - - static size_t GetRawDataSize(); - static std::string GetSourceTypeName(); -}; - -class Struct_800A598C_2 -{ -protected: - uint8_t unk_0; - int16_t x; - int16_t y; - int16_t z; - uint8_t unk_8; - -public: - Struct_800A598C_2(const std::vector& rawData, uint32_t fileOffset); - Struct_800A598C_2(const std::vector& rawData, uint32_t fileOffset, size_t index); - - [[nodiscard]] std::string GetSourceOutputCode() const; - - static size_t GetRawDataSize(); - static std::string GetSourceTypeName(); -}; - -class Struct_800A598C -{ -protected: - ZFile* parent; - - uint16_t unk_0; // Length of unk_8 - uint16_t unk_2; // Length of unk_C - uint16_t unk_4; // 0 or 1 // Used as an index for unk_C - segptr_t unk_8; // Struct_800A57C0* - segptr_t unk_C; // Struct_800A598C_2* - - std::vector unk_8_arr; - std::vector unk_C_arr; - -public: - Struct_800A598C(ZFile* parent, const std::vector& rawData, uint32_t fileOffset); - Struct_800A598C(ZFile* parent, const std::vector& rawData, uint32_t fileOffset, - size_t index); - - void PreGenSourceFiles(const std::string& prefix); - [[nodiscard]] std::string GetSourceOutputCode(const std::string& prefix) const; - - static size_t GetRawDataSize(); - static std::string GetSourceTypeName(); -}; - -class Struct_800A5E28 -{ -protected: - ZFile* parent; - - uint16_t unk_0; // Vtx count - uint16_t unk_2; // Length of unk_4 - segptr_t unk_4; // Struct_800A598C* - segptr_t unk_8; // Gfx* - - std::vector unk_4_arr; - ZDisplayList* unk_8_dlist = nullptr; - -public: - Struct_800A5E28() = default; - Struct_800A5E28(ZFile* parent, const std::vector& rawData, uint32_t fileOffset); - Struct_800A5E28(ZFile* parent, const std::vector& rawData, uint32_t fileOffset, - size_t index); - ~Struct_800A5E28(); - - void PreGenSourceFiles(const std::string& prefix); - [[nodiscard]] std::string GetSourceOutputCode(const std::string& prefix) const; - - static size_t GetRawDataSize(); - static std::string GetSourceTypeName(); -}; - class ZLimb : public ZResource { -protected: +public: ZLimbType type = ZLimbType::Standard; ZLimbSkinType skinSegmentType = ZLimbSkinType::SkinType_0; // Skin only segptr_t skinSegment = 0; // Skin only Struct_800A5E28 segmentStruct; // Skin only - segptr_t dList2Ptr; // LOD and Curve Only // Legacy only float legTransX, legTransY, legTransZ; // Vec3f @@ -134,29 +33,24 @@ protected: segptr_t childPtr; // LegacyLimb* segptr_t siblingPtr; // LegacyLimb* - std::string GetLimbDListSourceOutputCode(const std::string& prefix, - const std::string& limbPrefix, segptr_t dListPtr); - - std::string GetSourceOutputCodeSkin(const std::string& prefix); - std::string GetSourceOutputCodeSkin_Type_4(const std::string& prefix); - -public: segptr_t dListPtr = 0; - segptr_t farDListPtr = 0; // LOD only + segptr_t dList2Ptr = 0; // LOD and Curve Only + int16_t transX, transY, transZ; uint8_t childIndex, siblingIndex; ZLimb(ZFile* nParent); - ZLimb(ZLimbType limbType, const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; + void ExtractFromBinary(uint32_t nRawDataIndex, ZLimbType nType); void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; + std::string GetBodySourceCode() const override; + std::string GetDefaultName(const std::string& prefix) const override; + size_t GetRawDataSize() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; @@ -165,6 +59,7 @@ public: static const char* GetSourceTypeName(ZLimbType limbType); static ZLimbType GetTypeByAttributeName(const std::string& attrName); - uint32_t GetFileAddress(); - void SetFileAddress(uint32_t nAddress); +protected: + void DeclareDList(segptr_t dListSegmentedPtr, const std::string& prefix, + const std::string& limbSuffix); }; diff --git a/tools/ZAPD/ZAPD/ZMtx.cpp b/tools/ZAPD/ZAPD/ZMtx.cpp index f92506cede..b9ca3f22d2 100644 --- a/tools/ZAPD/ZAPD/ZMtx.cpp +++ b/tools/ZAPD/ZAPD/ZMtx.cpp @@ -1,6 +1,7 @@ #include "ZMtx.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Mtx, ZMtx); @@ -9,13 +10,6 @@ ZMtx::ZMtx(ZFile* nParent) : ZResource(nParent) { } -ZMtx::ZMtx(const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent) : ZResource(nParent) -{ - name = GetDefaultName(prefix.c_str(), rawDataIndex); - ExtractFromFile(nRawDataIndex); - DeclareVar("", ""); -} - void ZMtx::ParseRawData() { ZResource::ParseRawData(); @@ -26,29 +20,12 @@ void ZMtx::ParseRawData() mtx[i][j] = BitConverter::ToInt32BE(rawData, rawDataIndex + (i * 4 + j) * 4); } -void ZMtx::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - DeclareVar("", ""); -} - size_t ZMtx::GetRawDataSize() const { return 64; } -void ZMtx::DeclareVar(const std::string& prefix, const std::string& bodyStr) const -{ - std::string auxName = name; - - if (name == "") - auxName = GetDefaultName(prefix, rawDataIndex); - - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align8, GetRawDataSize(), - GetSourceTypeName(), auxName, bodyStr); -} - -std::string ZMtx::GetBodySourceCode() +std::string ZMtx::GetBodySourceCode() const { std::string bodyStr = "\n"; @@ -65,25 +42,6 @@ std::string ZMtx::GetBodySourceCode() return bodyStr; } -std::string ZMtx::GetSourceOutputCode(const std::string& prefix) -{ - std::string bodyStr = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - - if (decl == nullptr) - DeclareVar(prefix, bodyStr); - else - decl->text = bodyStr; - - return ""; -} - -std::string ZMtx::GetDefaultName(const std::string& prefix, uint32_t address) -{ - return StringHelper::Sprintf("%sMtx_%06X", prefix.c_str(), address); -} - std::string ZMtx::GetSourceTypeName() const { return "Mtx"; @@ -93,3 +51,8 @@ ZResourceType ZMtx::GetResourceType() const { return ZResourceType::Mtx; } + +DeclarationAlignment ZMtx::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align8; +} diff --git a/tools/ZAPD/ZAPD/ZMtx.h b/tools/ZAPD/ZAPD/ZMtx.h index 7a98650efb..eed502374b 100644 --- a/tools/ZAPD/ZAPD/ZMtx.h +++ b/tools/ZAPD/ZAPD/ZMtx.h @@ -8,22 +8,17 @@ class ZMtx : public ZResource { public: ZMtx(ZFile* nParent); - ZMtx(const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent); void ParseRawData() override; - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - size_t GetRawDataSize() const override; - - void DeclareVar(const std::string& prefix, const std::string& bodyStr) const; - - std::string GetBodySourceCode(); - std::string GetSourceOutputCode(const std::string& prefix) override; - static std::string GetDefaultName(const std::string& prefix, uint32_t address); + std::string GetBodySourceCode() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; + size_t GetRawDataSize() const override; + DeclarationAlignment GetDeclarationAlignment() const override; + protected: std::array, 4> mtx; }; diff --git a/tools/ZAPD/ZAPD/ZPath.cpp b/tools/ZAPD/ZAPD/ZPath.cpp index 890fa5e58d..4a95c5b91e 100644 --- a/tools/ZAPD/ZAPD/ZPath.cpp +++ b/tools/ZAPD/ZAPD/ZPath.cpp @@ -1,8 +1,8 @@ #include "ZPath.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Path, ZPath); @@ -13,14 +13,6 @@ ZPath::ZPath(ZFile* nParent) : ZResource(nParent) RegisterOptionalAttribute("NumPaths", "1"); } -void ZPath::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align4, pathways.size() * 8, - GetSourceTypeName(), name, pathways.size(), ""); -} - void ZPath::ParseXML(tinyxml2::XMLElement* reader) { ZResource::ParseXML(reader); @@ -43,8 +35,7 @@ void ZPath::ParseRawData() for (size_t pathIndex = 0; pathIndex < numPaths; pathIndex++) { PathwayEntry path(parent); - path.SetRawDataIndex(currentPtr); - path.ParseRawData(); + path.ExtractFromFile(currentPtr); if (path.GetListAddress() == 0) break; @@ -62,9 +53,23 @@ void ZPath::DeclareReferences(const std::string& prefix) entry.DeclareReferences(prefix); } +Declaration* ZPath::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), name, pathways.size(), bodyStr); + decl->staticConf = staticConf; + return decl; +} + std::string ZPath::GetBodySourceCode() const { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& entry : pathways) @@ -80,20 +85,6 @@ std::string ZPath::GetBodySourceCode() const return declaration; } -std::string ZPath::GetSourceOutputCode(const std::string& prefix) -{ - std::string declaration = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - if (decl == nullptr || decl->isPlaceholder) - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align4, pathways.size() * 8, - GetSourceTypeName(), name, pathways.size(), declaration); - else - decl->text = declaration; - - return ""; -} - std::string ZPath::GetSourceTypeName() const { return "Path"; @@ -134,10 +125,7 @@ void PathwayEntry::ParseRawData() for (int32_t i = 0; i < numPoints; i++) { ZVector vec(parent); - vec.SetRawDataIndex(currentPtr); - vec.SetScalarType(ZScalarType::ZSCALAR_S16); - vec.SetDimensions(3); - vec.ParseRawData(); + vec.ExtractFromBinary(currentPtr, ZScalarType::ZSCALAR_S16, 3); currentPtr += vec.GetRawDataSize(); points.push_back(vec); @@ -150,12 +138,18 @@ void PathwayEntry::DeclareReferences(const std::string& prefix) if (points.empty()) return; - std::string declaration = ""; + std::string pointsName; + bool addressFound = + Globals::Instance->GetSegmentedPtrName(listSegmentAddress, parent, "Vec3s", pointsName); + if (addressFound) + return; + + std::string declaration; size_t index = 0; for (const auto& point : points) { - declaration += StringHelper::Sprintf("\t%s,", point.GetBodySourceCode().c_str()); + declaration += StringHelper::Sprintf("\t{ %s },", point.GetBodySourceCode().c_str()); if (index < points.size() - 1) declaration += "\n"; @@ -163,14 +157,13 @@ void PathwayEntry::DeclareReferences(const std::string& prefix) index++; } - Declaration* decl = parent->GetDeclaration(GETSEGOFFSET(listSegmentAddress)); + uint32_t pointsOffset = Seg2Filespace(listSegmentAddress, parent->baseAddress); + Declaration* decl = parent->GetDeclaration(pointsOffset); if (decl == nullptr) { - parent->AddDeclarationArray(GETSEGOFFSET(listSegmentAddress), DeclarationAlignment::Align4, - DeclarationPadding::Pad4, points.size() * 6, - points.at(0).GetSourceTypeName(), - StringHelper::Sprintf("%sPathwayList0x%06X", prefix.c_str(), - GETSEGOFFSET(listSegmentAddress)), + pointsName = StringHelper::Sprintf("%sPathwayList_%06X", prefix.c_str(), pointsOffset); + parent->AddDeclarationArray(pointsOffset, points.at(0).GetDeclarationAlignment(), + points.size() * 6, points.at(0).GetSourceTypeName(), pointsName, points.size(), declaration); } else @@ -179,8 +172,9 @@ void PathwayEntry::DeclareReferences(const std::string& prefix) std::string PathwayEntry::GetBodySourceCode() const { - std::string declaration = ""; - std::string listName = parent->GetDeclarationPtrName(listSegmentAddress); + std::string declaration; + std::string listName; + Globals::Instance->GetSegmentedPtrName(listSegmentAddress, parent, "Vec3s", listName); if (Globals::Instance->game == ZGame::MM_RETAIL) declaration += diff --git a/tools/ZAPD/ZAPD/ZPath.h b/tools/ZAPD/ZAPD/ZPath.h index 23e2933e61..e519decff4 100644 --- a/tools/ZAPD/ZAPD/ZPath.h +++ b/tools/ZAPD/ZAPD/ZPath.h @@ -11,12 +11,12 @@ public: void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; - std::string GetBodySourceCode() const; + std::string GetBodySourceCode() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; - size_t GetRawDataSize() const; + size_t GetRawDataSize() const override; segptr_t GetListAddress() const; protected: @@ -32,14 +32,12 @@ class ZPath : public ZResource public: ZPath(ZFile* nParent); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex); - void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; - std::string GetBodySourceCode() const; - std::string GetSourceOutputCode(const std::string& prefix) override; + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; diff --git a/tools/ZAPD/ZAPD/ZPlayerAnimationData.cpp b/tools/ZAPD/ZAPD/ZPlayerAnimationData.cpp new file mode 100644 index 0000000000..a96604fda0 --- /dev/null +++ b/tools/ZAPD/ZAPD/ZPlayerAnimationData.cpp @@ -0,0 +1,97 @@ +#include "ZPlayerAnimationData.h" + +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" +#include "ZFile.h" + +REGISTER_ZFILENODE(PlayerAnimationData, ZPlayerAnimationData); + +ZPlayerAnimationData::ZPlayerAnimationData(ZFile* nParent) : ZResource(nParent) +{ + RegisterRequiredAttribute("FrameCount"); +} + +void ZPlayerAnimationData::ParseXML(tinyxml2::XMLElement* reader) +{ + ZResource::ParseXML(reader); + + std::string& frameCountXml = registeredAttributes.at("FrameCount").value; + + frameCount = StringHelper::StrToL(frameCountXml); +} + +void ZPlayerAnimationData::ParseRawData() +{ + ZResource::ParseRawData(); + + const auto& rawData = parent->GetRawData(); + + size_t totalSize = GetRawDataSize(); + // Divided by 2 because each value is an s16 + limbRotData.reserve(totalSize * frameCount / 2); + + for (size_t i = 0; i < totalSize; i += 2) + { + limbRotData.push_back(BitConverter::ToUInt16BE(rawData, rawDataIndex + i)); + } +} + +Declaration* ZPlayerAnimationData::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (auxName == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), name, limbRotData.size(), bodyStr); + decl->staticConf = staticConf; + return decl; +} + +std::string ZPlayerAnimationData::GetBodySourceCode() const +{ + std::string declaration = ""; + + size_t index = 0; + for (const auto& entry : limbRotData) + { + if (index % 8 == 0) + { + declaration += "\t"; + } + + declaration += StringHelper::Sprintf("0x%04X, ", entry); + + if ((index + 1) % 8 == 0) + { + declaration += "\n"; + } + + index++; + } + + return declaration; +} + +std::string ZPlayerAnimationData::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sPlayerAnimationData_%06X", prefix.c_str(), rawDataIndex); +} + +std::string ZPlayerAnimationData::GetSourceTypeName() const +{ + return "s16"; +} + +ZResourceType ZPlayerAnimationData::GetResourceType() const +{ + return ZResourceType::PlayerAnimationData; +} + +size_t ZPlayerAnimationData::GetRawDataSize() const +{ + // (sizeof(Vec3s) * limbCount + 2) * frameCount + return (6 * 22 + 2) * frameCount; +} diff --git a/tools/ZAPD/ZAPD/ZPlayerAnimationData.h b/tools/ZAPD/ZAPD/ZPlayerAnimationData.h new file mode 100644 index 0000000000..20835f2369 --- /dev/null +++ b/tools/ZAPD/ZAPD/ZPlayerAnimationData.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#include "ZResource.h" + +class ZPlayerAnimationData : public ZResource +{ +public: + int16_t frameCount = 0; + std::vector limbRotData; + + ZPlayerAnimationData(ZFile* nParent); + + void ParseXML(tinyxml2::XMLElement* reader) override; + void ParseRawData() override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + + std::string GetBodySourceCode() const override; + std::string GetDefaultName(const std::string& prefix) const override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; +}; diff --git a/tools/ZAPD/ZAPD/ZResource.cpp b/tools/ZAPD/ZAPD/ZResource.cpp index f64ce4aa05..cb811f4c3b 100644 --- a/tools/ZAPD/ZAPD/ZResource.cpp +++ b/tools/ZAPD/ZAPD/ZResource.cpp @@ -2,7 +2,8 @@ #include #include -#include "StringHelper.h" + +#include "Utils/StringHelper.h" #include "ZFile.h" ZResource::ZResource(ZFile* nParent) @@ -19,23 +20,43 @@ ZResource::ZResource(ZFile* nParent) RegisterOptionalAttribute("OutName"); RegisterOptionalAttribute("Offset"); RegisterOptionalAttribute("Custom"); + RegisterOptionalAttribute("Static", "Global"); } -void ZResource::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) +void ZResource::ExtractFromXML(tinyxml2::XMLElement* reader, offset_t nRawDataIndex) { rawDataIndex = nRawDataIndex; + declaredInXml = true; if (reader != nullptr) ParseXML(reader); - ParseRawData(); - CalcHash(); + // Don't parse raw data of external files + if (parent->GetMode() != ZFileMode::ExternalFile) + { + ParseRawData(); + CalcHash(); + } + + if (!isInner) + { + Declaration* decl = DeclareVar(parent->GetName(), ""); + if (decl != nullptr) + { + decl->declaredInXml = true; + decl->staticConf = staticConf; + } + } } -void ZResource::ExtractFromFile(uint32_t nRawDataIndex) +void ZResource::ExtractFromFile(offset_t nRawDataIndex) { rawDataIndex = nRawDataIndex; + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; + ParseRawData(); CalcHash(); } @@ -110,15 +131,59 @@ void ZResource::ParseXML(tinyxml2::XMLElement* reader) isCustomAsset = registeredAttributes["Custom"].wasSet; + std::string& staticXml = registeredAttributes["Static"].value; + if (staticXml == "Global") + { + staticConf = StaticConfig::Global; + } + else if (staticXml == "On") + { + staticConf = StaticConfig::On; + } + else if (staticXml == "Off") + { + staticConf = StaticConfig::Off; + } + else + { + throw std::runtime_error("Invalid value for 'Static' attribute."); + } + declaredInXml = true; } } -void ZResource::Save(const fs::path& outFolder) +void ZResource::ParseRawData() { } -void ZResource::PreGenSourceFiles() +void ZResource::DeclareReferences([[maybe_unused]] const std::string& prefix) +{ +} + +void ZResource::ParseRawDataLate() +{ +} + +void ZResource::DeclareReferencesLate([[maybe_unused]] const std::string& prefix) +{ +} + +Declaration* ZResource::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclaration(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, bodyStr); + decl->staticConf = staticConf; + return decl; +} + +void ZResource::Save([[maybe_unused]] const fs::path& outFolder) { } @@ -157,19 +222,24 @@ std::string ZResource::GetExternalExtension() const return ""; } +DeclarationAlignment ZResource::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align4; +} + bool ZResource::WasDeclaredInXml() const { return declaredInXml; } -uint32_t ZResource::GetRawDataIndex() const +StaticConfig ZResource::GetStaticConf() const { - return rawDataIndex; + return staticConf; } -void ZResource::SetRawDataIndex(uint32_t value) +offset_t ZResource::GetRawDataIndex() const { - rawDataIndex = value; + return rawDataIndex; } std::string ZResource::GetBodySourceCode() const @@ -177,33 +247,31 @@ std::string ZResource::GetBodySourceCode() const return "ERROR"; } -std::string ZResource::GetSourceOutputCode(const std::string& prefix) +std::string ZResource::GetDefaultName(const std::string& prefix) const { + return StringHelper::Sprintf("%s%s_%06X", prefix.c_str(), GetSourceTypeName().c_str(), + rawDataIndex); +} + +std::string ZResource::GetSourceOutputCode([[maybe_unused]] const std::string& prefix) +{ + std::string bodyStr = GetBodySourceCode(); + + Declaration* decl = parent->GetDeclaration(rawDataIndex); + if (decl == nullptr || decl->isPlaceholder) + decl = DeclareVar(prefix, bodyStr); + else + decl->text = bodyStr; + decl->staticConf = staticConf; + return ""; } -std::string ZResource::GetSourceOutputHeader(const std::string& prefix) +std::string ZResource::GetSourceOutputHeader([[maybe_unused]] const std::string& prefix) { return ""; } -void ZResource::ParseRawData() -{ -} - -void ZResource::DeclareReferences(const std::string& prefix) -{ -} - -void ZResource::GenerateHLIntermediette(HLFileIntermediette& hlFile) -{ -} - -std::string ZResource::GetSourceTypeName() const -{ - return "u8"; -} - ZResourceType ZResource::GetResourceType() const { return ZResourceType::Error; @@ -235,12 +303,24 @@ void ZResource::RegisterOptionalAttribute(const std::string& attr, const std::st registeredAttributes[attr] = resAtrr; } -uint32_t Seg2Filespace(segptr_t segmentedAddress, uint32_t parentBaseAddress) +offset_t Seg2Filespace(segptr_t segmentedAddress, uint32_t parentBaseAddress) { - uint32_t currentPtr = GETSEGOFFSET(segmentedAddress); + offset_t currentPtr = GETSEGOFFSET(segmentedAddress); if (GETSEGNUM(segmentedAddress) == 0x80) // Is defined in code? - currentPtr -= GETSEGOFFSET(parentBaseAddress); + { + uint32_t parentBaseOffset = GETSEGOFFSET(parentBaseAddress); + if (parentBaseOffset > currentPtr) + { + throw std::runtime_error( + StringHelper::Sprintf("\nSeg2Filespace: Segmented address is smaller than " + "'BaseAddress'. Maybe your 'BaseAddress' is wrong?\n" + "\t SegmentedAddress: 0x%08X\n" + "\t BaseAddress: 0x%08X\n", + segmentedAddress, parentBaseAddress)); + } + currentPtr -= parentBaseOffset; + } return currentPtr; } diff --git a/tools/ZAPD/ZAPD/ZResource.h b/tools/ZAPD/ZAPD/ZResource.h index 6ebfcf8fce..727eca2ccb 100644 --- a/tools/ZAPD/ZAPD/ZResource.h +++ b/tools/ZAPD/ZAPD/ZResource.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -8,7 +9,7 @@ #include "Declaration.h" #include "tinyxml2.h" -#include "Directory.h" +#include #define SEGMENT_SCENE 2 #define SEGMENT_ROOM 3 @@ -20,16 +21,14 @@ #define GETSEGOFFSET(x) (x & 0x00FFFFFF) #define GETSEGNUM(x) ((x >> 24) & 0xFF) -typedef uint32_t segptr_t; - class ZFile; -class HLFileIntermediette; enum class ZResourceType { Error, Animation, Array, + AltHeader, Background, Blob, CollisionHeader, @@ -39,13 +38,17 @@ enum class ZResourceType LimbTable, Mtx, Path, + PlayerAnimationData, Room, RoomCommand, Scalar, + Scene, Skeleton, String, Symbol, Texture, + TextureAnimation, + TextureAnimationParams, Vector, Vertex, }; @@ -53,8 +56,8 @@ enum class ZResourceType class ResourceAttribute { public: - std::string key = ""; - std::string value = ""; + std::string key; + std::string value; bool isRequired = false; bool wasSet = false; }; @@ -66,54 +69,127 @@ public: bool outputDeclaration = true; uint32_t hash = 0; + /** + * Constructor. + * Child classes should not declare any other constructor besides this one + */ ZResource(ZFile* nParent); virtual ~ZResource() = default; // Parsing from File - virtual void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex); - virtual void ExtractFromFile(uint32_t nRawDataIndex); + virtual void ExtractFromXML(tinyxml2::XMLElement* reader, offset_t nRawDataIndex); + virtual void ExtractFromFile(offset_t nRawDataIndex); // Misc + /** + * Parses additional attributes of the XML node. + * Extra attritbutes have to be registered using `RegisterRequiredAttribute` or + * `RegisterOptionalAttribute` in the constructor of the ZResource + */ virtual void ParseXML(tinyxml2::XMLElement* reader); + /** + * Extracts data from the binary file + */ virtual void ParseRawData(); + /** + * Declares any data pointed by this resource that has not been declared already. + * For example, a Vtx referenced by a Dlist should be declared here if it wasn't + * declared previously by something else + */ virtual void DeclareReferences(const std::string& prefix); - virtual std::string GetBodySourceCode() const; + virtual void ParseRawDataLate(); + virtual void DeclareReferencesLate(const std::string& prefix); + + /** + * Adds this resource as a Declaration of its parent ZFile + */ + virtual Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr); + /** + * Returns the body of the variable of the extracted resource, without any side-effect + */ + [[nodiscard]] virtual std::string GetBodySourceCode() const; + /** + * Creates an automatically generated variable name for the current resource + */ + [[nodiscard]] virtual std::string GetDefaultName(const std::string& prefix) const; virtual std::string GetSourceOutputCode(const std::string& prefix); virtual std::string GetSourceOutputHeader(const std::string& prefix); - virtual void PreGenSourceFiles(); - virtual void GenerateHLIntermediette(HLFileIntermediette& hlFile); virtual void CalcHash(); + /** + * Exports the resource to binary format + */ virtual void Save(const fs::path& outFolder); // Properties + /** + * Returns true if the resource will be externalized, and included back to the C file using + * `#include`s + */ virtual bool IsExternalResource() const; - virtual bool DoesSupportArray() const; // Can this type be wrapped in an node? - virtual std::string GetSourceTypeName() const; - virtual ZResourceType GetResourceType() const = 0; - virtual std::string GetExternalExtension() const; + /** + * Can this type be wrapped in an node? + */ + virtual bool DoesSupportArray() const; + /** + * The type of the resource as a C struct + */ + [[nodiscard]] virtual std::string GetSourceTypeName() const = 0; + /** + * The type in the ZResource enum + */ + [[nodiscard]] virtual ZResourceType GetResourceType() const = 0; + /** + * The filename extension for assets extracted as standalone files + */ + [[nodiscard]] virtual std::string GetExternalExtension() const; // Getters/Setters - const std::string& GetName() const; + [[nodiscard]] const std::string& GetName() const; void SetName(const std::string& nName); - const std::string& GetOutName() const; + [[nodiscard]] const std::string& GetOutName() const; void SetOutName(const std::string& nName); - virtual uint32_t GetRawDataIndex() const; - virtual void SetRawDataIndex(uint32_t value); - virtual size_t GetRawDataSize() const = 0; + [[nodiscard]] offset_t GetRawDataIndex() const; + /** + * The size of the current struct being extracted, not counting data referenced by it + */ + [[nodiscard]] virtual size_t GetRawDataSize() const = 0; + /** + * The alignment of the extracted struct + */ + [[nodiscard]] virtual DeclarationAlignment GetDeclarationAlignment() const; void SetInnerNode(bool inner); - bool WasDeclaredInXml() const; + /** + * Returns `true` if this ZResource was declared using an XML node, + * `false` otherwise (for example, a Vtx extracted indirectly by a DList) + */ + [[nodiscard]] bool WasDeclaredInXml() const; + [[nodiscard]] StaticConfig GetStaticConf() const; protected: std::string name; std::string outName; - uint32_t rawDataIndex; + offset_t rawDataIndex; std::string sourceOutput; - bool isInner = false; // Is this resource an inner node of another resource? inside of - bool canHaveInner = false; // Can this type have an inner node? - bool isCustomAsset; // If set to true, create a reference for the asset in the file, but don't - // actually try to extract it from the file + + // Inner is used mostly for nodes + /** + * Is this resource an inner node of another resource? + * (namely inside an ) + */ + bool isInner = false; + /** + * Can this type have an inner node? + */ + bool canHaveInner = false; + + /** + * If set to true, create a reference for the asset in the file, but don't + * actually try to extract it from the file + */ + bool isCustomAsset; bool declaredInXml = false; + StaticConfig staticConf = StaticConfig::Global; // Reading from this XMLs attributes should be performed in the overrided `ParseXML` method. std::map registeredAttributes; @@ -129,7 +205,15 @@ protected: void RegisterOptionalAttribute(const std::string& attr, const std::string& defaultValue = ""); }; -uint32_t Seg2Filespace(segptr_t segmentedAddress, uint32_t parentBaseAddress); +class ZResourceExporter +{ +public: + ZResourceExporter() = default; + + virtual void Save(ZResource* res, fs::path outPath, BinaryWriter* writer) = 0; +}; + +offset_t Seg2Filespace(segptr_t segmentedAddress, uint32_t parentBaseAddress); typedef ZResource*(ZResourceFactoryFunc)(ZFile* nParent); @@ -148,3 +232,11 @@ typedef ZResource*(ZResourceFactoryFunc)(ZFile* nParent); } \ }; \ static ZRes_##nodeName inst_ZRes_##nodeName + +#define REGISTER_EXPORTER(expFunc) \ + class ZResExp_##expFunc \ + { \ + public: \ + ZResExp_##expFunc() { expFunc(); } \ + }; \ + static ZResExp_##expFunc inst_ZResExp_##expFunc; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.cpp index 18cfd1ef61..60391a9d1d 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.cpp @@ -1,8 +1,8 @@ #include "SetActorCutsceneList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -29,7 +29,7 @@ void SetActorCutsceneList::DeclareReferences(const std::string& prefix) { if (cutscenes.size() > 0) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < cutscenes.size(); i++) { @@ -45,24 +45,20 @@ void SetActorCutsceneList::DeclareReferences(const std::string& prefix) std::string typeName = cutscenes.at(0).GetSourceTypeName(); parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::Align4, cutscenes.size() * 16, typeName, + segmentOffset, GetDeclarationAlignment(), cutscenes.size() * 16, typeName, StringHelper::Sprintf("%s%sList_%06X", prefix.c_str(), typeName.c_str(), segmentOffset), - 0, declaration); + cutscenes.size(), declaration); } } std::string SetActorCutsceneList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "ActorCutscene", listName); return StringHelper::Sprintf("SCENE_CMD_ACTOR_CUTSCENE_LIST(%i, %s)", cutscenes.size(), listName.c_str()); } -size_t SetActorCutsceneList::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (cutscenes.size() * 16); -} - std::string SetActorCutsceneList::GetCommandCName() const { return "SCmdCutsceneActorList"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.h index d36dd4c2ff..8fd48e425c 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorCutsceneList.h @@ -26,6 +26,8 @@ public: class SetActorCutsceneList : public ZRoomCommand { public: + std::vector cutscenes; + SetActorCutsceneList(ZFile* nParent); void ParseRawData() override; @@ -35,8 +37,6 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; private: - std::vector cutscenes; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.cpp index b93623b986..919d86f573 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.cpp @@ -1,8 +1,8 @@ #include "SetActorList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZNames.h" #include "ZRoom/ZRoom.h" @@ -15,10 +15,26 @@ void SetActorList::ParseRawData() { ZRoomCommand::ParseRawData(); numActors = cmdArg1; +} + +void SetActorList::DeclareReferences(const std::string& prefix) +{ + if (numActors != 0 && cmdArg2 != 0) + { + std::string varName = + StringHelper::Sprintf("%sActorList_%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationPlaceholder(segmentOffset, varName); + } +} + +void SetActorList::ParseRawDataLate() +{ + ZRoomCommand::ParseRawDataLate(); + size_t actorsAmount = zRoom->GetDeclarationSizeFromNeighbor(segmentOffset) / 0x10; uint32_t currentPtr = segmentOffset; - for (size_t i = 0; i < numActors; i++) + for (size_t i = 0; i < actorsAmount; i++) { ActorSpawnEntry entry(parent->GetRawData(), currentPtr); @@ -27,50 +43,53 @@ void SetActorList::ParseRawData() } } -void SetActorList::DeclareReferences(const std::string& prefix) +void SetActorList::DeclareReferencesLate(const std::string& prefix) { - if (!actors.empty()) + if (actors.empty()) + return; + + std::string declaration; + + size_t largestlength = 0; + for (const auto& entry : actors) { - std::string declaration = ""; - - size_t index = 0; - for (const auto& entry : actors) - { - declaration += - StringHelper::Sprintf("\t{ %s }, // 0x%06X", entry.GetBodySourceCode().c_str(), - segmentOffset + (index * 16)); - - if (index < actors.size() - 1) - declaration += "\n"; - - index++; - } - - const auto& entry = actors.front(); - - DeclarationPadding padding = DeclarationPadding::Pad16; - if (Globals::Instance->game == ZGame::MM_RETAIL) - padding = DeclarationPadding::None; - - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::Align4, padding, - actors.size() * entry.GetRawDataSize(), entry.GetSourceTypeName(), - StringHelper::Sprintf("%sActorList_%06X", prefix.c_str(), segmentOffset), - GetActorListArraySize(), declaration); + size_t actorNameLength = ZNames::GetActorName(entry.GetActorId()).size(); + if (actorNameLength > largestlength) + largestlength = actorNameLength; } + + size_t index = 0; + for (auto& entry : actors) + { + entry.SetLargestActorName(largestlength); + declaration += StringHelper::Sprintf("\t{ %s },", entry.GetBodySourceCode().c_str()); + + if (index < actors.size() - 1) + declaration += "\n"; + + index++; + } + + const auto& entry = actors.front(); + + std::string varName = StringHelper::Sprintf("%sActorList_%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationArray(segmentOffset, DeclarationAlignment::Align4, + actors.size() * entry.GetRawDataSize(), entry.GetSourceTypeName(), + varName, GetActorListArraySize(), declaration); } std::string SetActorList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "ActorEntry", listName); + if (numActors != actors.size()) + { + printf("%s: numActors(%i) ~ actors(%li)\n", parent->GetName().c_str(), numActors, + actors.size()); + } return StringHelper::Sprintf("SCENE_CMD_ACTOR_LIST(%i, %s)", numActors, listName.c_str()); } -size_t SetActorList::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + ((int32_t)actors.size() * 16); -} - size_t SetActorList::GetActorListArraySize() const { size_t actorCount = 0; @@ -110,27 +129,31 @@ ActorSpawnEntry::ActorSpawnEntry(const std::vector& rawData, uint32_t r posX = BitConverter::ToInt16BE(rawData, rawDataIndex + 2); posY = BitConverter::ToInt16BE(rawData, rawDataIndex + 4); posZ = BitConverter::ToInt16BE(rawData, rawDataIndex + 6); - rotX = BitConverter::ToInt16BE(rawData, rawDataIndex + 8); - rotY = BitConverter::ToInt16BE(rawData, rawDataIndex + 10); - rotZ = BitConverter::ToInt16BE(rawData, rawDataIndex + 12); + rotX = BitConverter::ToUInt16BE(rawData, rawDataIndex + 8); + rotY = BitConverter::ToUInt16BE(rawData, rawDataIndex + 10); + rotZ = BitConverter::ToUInt16BE(rawData, rawDataIndex + 12); initVar = BitConverter::ToInt16BE(rawData, rawDataIndex + 14); } std::string ActorSpawnEntry::GetBodySourceCode() const { - std::string body = "\n"; + std::string body; - body += "\t\t" + ZNames::GetActorName(actorNum) + ",\n"; - body += StringHelper::Sprintf("\t\t{ %6i, %6i, %6i },\n", posX, posY, posZ); + std::string actorNameFmt = StringHelper::Sprintf("%%-%zus ", largestActorName + 1); + body = + StringHelper::Sprintf(actorNameFmt.c_str(), (ZNames::GetActorName(actorNum) + ",").c_str()); + + body += StringHelper::Sprintf("{ %6i, %6i, %6i }, ", posX, posY, posZ); if (Globals::Instance->game == ZGame::MM_RETAIL) - body += StringHelper::Sprintf("\t\t{ SPAWN_ROT_FLAGS(%i, 0x%04X), SPAWN_ROT_FLAGS(%i, " - "0x%04X), SPAWN_ROT_FLAGS(%i, 0x%04X)},\n", + body += StringHelper::Sprintf("{ SPAWN_ROT_FLAGS(%#5hX, 0x%04X)" + ", SPAWN_ROT_FLAGS(%#5hX, 0x%04X)" + ", SPAWN_ROT_FLAGS(%#5hX, 0x%04X) }, ", (rotX >> 7) & 0b111111111, rotX & 0b1111111, (rotY >> 7) & 0b111111111, rotY & 0b1111111, (rotZ >> 7) & 0b111111111, rotZ & 0b1111111); else - body += StringHelper::Sprintf("\t\t{ %6i, %6i, %6i },\n", rotX, rotY, rotZ); - body += StringHelper::Sprintf("\t\t0x%04X\n ", initVar); + body += StringHelper::Sprintf("{ %#6hX, %#6hX, %#6hX }, ", rotX, rotY, rotZ); + body += StringHelper::Sprintf("0x%04X", initVar); return body; } @@ -149,3 +172,8 @@ uint16_t ActorSpawnEntry::GetActorId() const { return actorNum; } + +void ActorSpawnEntry::SetLargestActorName(size_t nameSize) +{ + largestActorName = nameSize; +} diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.h index bb4091fe3e..7b341256cd 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetActorList.h @@ -5,6 +5,16 @@ class ActorSpawnEntry { public: + uint16_t actorNum; + int16_t posX; + int16_t posY; + int16_t posZ; + uint16_t rotX; + uint16_t rotY; + uint16_t rotZ; + uint16_t initVar; + size_t largestActorName = 16; + ActorSpawnEntry(const std::vector& rawData, uint32_t rawDataIndex); std::string GetBodySourceCode() const; @@ -13,35 +23,28 @@ public: int32_t GetRawDataSize() const; uint16_t GetActorId() const; - -protected: - uint16_t actorNum; - int16_t posX; - int16_t posY; - int16_t posZ; - int16_t rotX; - int16_t rotY; - int16_t rotZ; - uint16_t initVar; + void SetLargestActorName(size_t nameSize); }; class SetActorList : public ZRoomCommand { public: + uint8_t numActors; + std::vector actors; + SetActorList(ZFile* nParent); void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; + void ParseRawDataLate() override; + void DeclareReferencesLate(const std::string& prefix) override; + std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; protected: size_t GetActorListArraySize() const; - - uint8_t numActors; - std::vector actors; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.cpp index c5f9387bd6..629d4a0b05 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.cpp @@ -1,17 +1,22 @@ #include "SetAlternateHeaders.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" SetAlternateHeaders::SetAlternateHeaders(ZFile* nParent) : ZRoomCommand(nParent) { } -void SetAlternateHeaders::DeclareReferences(const std::string& prefix) +void SetAlternateHeaders::DeclareReferences([[maybe_unused]] const std::string& prefix) { - if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); + if (cmdArg2 != 0) + { + std::string varName = + StringHelper::Sprintf("%sAlternateHeaders0x%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationPlaceholder(segmentOffset, varName); + } } void SetAlternateHeaders::ParseRawDataLate() @@ -23,8 +28,14 @@ void SetAlternateHeaders::ParseRawDataLate() int32_t address = BitConverter::ToInt32BE(parent->GetRawData(), segmentOffset + (i * 4)); headers.push_back(address); - if (address != 0) - zRoom->commandSets.push_back(CommandSet(address)); + if (address != 0 && parent->GetDeclaration(GETSEGOFFSET(address)) == nullptr) + { + ZRoom* altheader = new ZRoom(parent); + altheader->ExtractFromBinary(GETSEGOFFSET(address), zRoom->GetResourceType()); + altheader->DeclareReferences(parent->GetName()); + + parent->resources.push_back(altheader); + } } } @@ -32,30 +43,30 @@ void SetAlternateHeaders::DeclareReferencesLate(const std::string& prefix) { if (!headers.empty()) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < headers.size(); i++) { - if (headers.at(i) == 0) - declaration += StringHelper::Sprintf("\tNULL,"); - else - declaration += - StringHelper::Sprintf("\t%sSet%04X,", prefix.c_str(), GETSEGOFFSET(headers[i])); + std::string altHeaderName; + Globals::Instance->GetSegmentedPtrName(headers.at(i), parent, "", altHeaderName); + + declaration += StringHelper::Sprintf("\t%s,", altHeaderName.c_str()); if (i + 1 < headers.size()) declaration += "\n"; } - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, headers.size() * 4, "SCmdBase*", - StringHelper::Sprintf("%sAlternateHeaders0x%06X", prefix.c_str(), segmentOffset), 0, - declaration); + std::string varName = + StringHelper::Sprintf("%sAlternateHeaders0x%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationArray(segmentOffset, GetDeclarationAlignment(), headers.size() * 4, + "SceneCmd*", varName, headers.size(), declaration); } } std::string SetAlternateHeaders::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "SceneCmd*", listName); return StringHelper::Sprintf("SCENE_CMD_ALTERNATE_HEADER_LIST(%s)", listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.h index e6e7baf45c..e66df936d5 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAlternateHeaders.h @@ -6,6 +6,8 @@ class SetAlternateHeaders : public ZRoomCommand { public: + std::vector headers; + SetAlternateHeaders(ZFile* nParent); void DeclareReferences(const std::string& prefix) override; @@ -18,5 +20,4 @@ public: std::string GetCommandCName() const override; private: - std::vector headers; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.cpp index aeef2e8ca4..0b9a67e0ec 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.cpp @@ -1,137 +1,42 @@ +/** + * File: SetAnimatedMaterialList.cpp + * Description: Defines a class SetAnimatedMaterialList to enable ZRoom to declare + * ZTextureAnimations, using that ZResource to do the work. + */ #include "SetAnimatedMaterialList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" +#include "ZTextureAnimation.h" -SetAnimatedMaterialList::SetAnimatedMaterialList(ZFile* nParent) : ZRoomCommand(nParent) +SetAnimatedMaterialList::SetAnimatedMaterialList(ZFile* nParent) + : ZRoomCommand(nParent), textureAnimation(nParent) { } void SetAnimatedMaterialList::ParseRawData() { ZRoomCommand::ParseRawData(); - int32_t currentPtr = segmentOffset; - bool keepGoing = true; - - do - { - AnimatedMaterial lastTexture(parent->GetRawData(), currentPtr); - keepGoing = (lastTexture.segment != 0) && (lastTexture.segment > -1); - currentPtr += 8; - textures.push_back(lastTexture); - } while (keepGoing); + textureAnimation.ExtractFromFile(segmentOffset); } void SetAnimatedMaterialList::DeclareReferences(const std::string& prefix) { - std::string nameStr = - StringHelper::Sprintf("%sAnimatedMaterialList0x%06X", prefix.c_str(), segmentOffset); - - for (auto& texture : textures) - { - size_t declSize = 0; - std::string declTypeName = ""; - std::string declName = StringHelper::Sprintf("%sAnimatedMaterialParams0x%06X", - prefix.c_str(), texture.segmentOffset); - std::string declaration = ""; - size_t index = 0; - - switch (texture.type) - { - case 0: - case 1: - for (const auto& param : texture.params) - { - declaration += param->GenerateSourceCode(zRoom, texture.segmentOffset); - - if (index < texture.params.size() - 1) - declaration += "\n"; - - index++; - } - - declSize = texture.params.size() * 4; - declTypeName = "AnimatedMatTexScrollParams"; - - parent->AddDeclarationArray(texture.segmentOffset, DeclarationAlignment::Align4, - declSize, declTypeName, declName, texture.params.size(), - declaration); - break; - case 2: - case 3: - case 4: - declSize = texture.params.at(0)->GetParamsSize(); - declTypeName = "AnimatedMatColorParams"; - declaration = texture.params.at(0)->GenerateSourceCode(zRoom, texture.segmentOffset); - - parent->AddDeclaration(texture.segmentOffset, DeclarationAlignment::Align4, declSize, - declTypeName, declName, - StringHelper::Sprintf("\n\t%s\n", declaration.c_str())); - break; - case 5: - declSize = texture.params.at(0)->GetParamsSize(); - declTypeName = "AnimatedMatTexCycleParams"; - declaration = texture.params.at(0)->GenerateSourceCode(zRoom, texture.segmentOffset); - - parent->AddDeclaration(texture.segmentOffset, DeclarationAlignment::Align4, declSize, - declTypeName, declName, - StringHelper::Sprintf("\n\t%s\n", declaration.c_str())); - break; - case 6: - continue; - - default: - throw std::runtime_error( - StringHelper::Sprintf("Error in SetAnimatedMaterialList::DeclareReferences (%s)\n" - "\t Unknown texture.type: %i\n", - nameStr.c_str(), texture.type)); - } - } - - if (!textures.empty()) - { - std::string declaration = ""; - - for (size_t i = 0; i < textures.size(); i++) - { - std::string textureName = parent->GetDeclarationPtrName(textures.at(i).segmentAddress); - - declaration += StringHelper::Sprintf("\t{ %2i, %2i, %s },", textures.at(i).segment, - textures.at(i).type, textureName.c_str()); - - if (i + 1 < textures.size()) - declaration += "\n"; - } - - parent->AddDeclarationArray(segmentOffset, DeclarationAlignment::Align4, - DeclarationPadding::Pad16, textures.size() * 8, - "AnimatedMaterial", nameStr, textures.size(), declaration); - } + textureAnimation.SetName(textureAnimation.GetDefaultName(prefix.c_str())); + textureAnimation.DeclareReferences(prefix); + textureAnimation.GetSourceOutputCode(prefix); } std::string SetAnimatedMaterialList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "AnimatedMaterial", listName); return StringHelper::Sprintf("SCENE_CMD_ANIMATED_MATERIAL_LIST(%s)", listName.c_str()); } -size_t SetAnimatedMaterialList::GetRawDataSize() const -{ - size_t paramsSize = 0; - for (const auto& texture : textures) - { - for (const auto& param : texture.params) - { - paramsSize += param->GetParamsSize(); - } - } - - return ZRoomCommand::GetRawDataSize() + paramsSize; -} - std::string SetAnimatedMaterialList::GetCommandCName() const { return "SCmdTextureAnimations"; @@ -141,273 +46,3 @@ RoomCommand SetAnimatedMaterialList::GetRoomCommand() const { return RoomCommand::SetAnimatedMaterialList; } - -AnimatedMaterial::AnimatedMaterial(const std::vector& rawData, uint32_t rawDataIndex) - : segment(rawData.at(rawDataIndex)), type(BitConverter::ToInt16BE(rawData, rawDataIndex + 2)) -{ - segmentAddress = BitConverter::ToInt32BE(rawData, rawDataIndex + 4); - segmentOffset = GETSEGOFFSET(segmentAddress); - - switch (type) - { - case 0: - params.push_back(std::make_shared(rawData, segmentOffset)); - break; - case 1: - params.push_back(std::make_shared(rawData, segmentOffset)); - params.push_back(std::make_shared(rawData, segmentOffset + 4)); - break; - case 2: - case 3: - case 4: - params.push_back(std::make_shared(rawData, segmentOffset, type)); - break; - case 5: - params.push_back(std::make_shared(rawData, segmentOffset)); - break; - case 6: // Some terminator when there are no animated textures? - break; - } -} - -ScrollingTexture::ScrollingTexture(const std::vector& rawData, uint32_t rawDataIndex) - : xStep(rawData.at(rawDataIndex + 0)), yStep(rawData.at(rawDataIndex + 1)), - width(rawData.at(rawDataIndex + 2)), height(rawData.at(rawDataIndex + 3)) -{ -} - -std::string ScrollingTexture::GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) -{ - return StringHelper::Sprintf(" { %i, %i, 0x%02X, 0x%02X },", xStep, yStep, width, height); -} - -size_t ScrollingTexture::GetParamsSize() -{ - return 4; -} - -F3DPrimColor::F3DPrimColor(const std::vector& rawData, uint32_t rawDataIndex) - : r(rawData.at(rawDataIndex + 0)), g(rawData.at(rawDataIndex + 1)), - b(rawData.at(rawDataIndex + 2)), a(rawData.at(rawDataIndex + 3)), - lodFrac(rawData.at(rawDataIndex + 4)) -{ -} - -FlashingTextureEnvColor::FlashingTextureEnvColor(const std::vector& rawData, - uint32_t rawDataIndex) - : r(rawData.at(rawDataIndex + 0)), g(rawData.at(rawDataIndex + 1)), - b(rawData.at(rawDataIndex + 2)), a(rawData.at(rawDataIndex + 3)) -{ -} - -FlashingTexture::FlashingTexture(const std::vector& rawData, uint32_t rawDataIndex, - int32_t type) - : cycleLength(BitConverter::ToUInt16BE(rawData, rawDataIndex + 0)), - numKeyFrames(BitConverter::ToUInt16BE(rawData, rawDataIndex + 2)) -{ - uint16_t length = (type == 2) ? cycleLength : numKeyFrames; - - primColorSegmentAddr = BitConverter::ToInt32BE(rawData, rawDataIndex + 4); - envColorSegmentAddr = BitConverter::ToInt32BE(rawData, rawDataIndex + 8); - keyFrameSegmentAddr = BitConverter::ToInt32BE(rawData, rawDataIndex + 12); - - primColorSegmentOffset = GETSEGOFFSET(primColorSegmentAddr); - envColorSegmentOffset = GETSEGOFFSET(envColorSegmentAddr); - keyFrameSegmentOffset = GETSEGOFFSET(keyFrameSegmentAddr); - - int32_t currentPtr = primColorSegmentOffset; - for (uint16_t i = 0; i < length; i++) - { - primColors.push_back(F3DPrimColor(rawData, currentPtr)); - currentPtr += 5; - } - - currentPtr = envColorSegmentOffset; - for (uint16_t i = 0; i < length; i++) - { - envColors.push_back(FlashingTextureEnvColor(rawData, currentPtr)); - currentPtr += 4; - } - - currentPtr = keyFrameSegmentOffset; - for (uint16_t i = 0; i < length; i++) - { - keyFrames.push_back(BitConverter::ToUInt16BE(rawData, currentPtr)); - currentPtr += 2; - } -} - -std::string FlashingTexture::GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) -{ - if (primColorSegmentOffset != 0) - { - std::string declaration = ""; - size_t index = 0; - - for (F3DPrimColor& color : primColors) - { - declaration += StringHelper::Sprintf(" { 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X },", - color.r, color.g, color.b, color.a, color.lodFrac); - - if (index < primColors.size() - 1) - declaration += "\n"; - - index++; - } - - zRoom->parent->AddDeclarationArray(primColorSegmentOffset, DeclarationAlignment::Align4, - primColors.size() * 5, "F3DPrimColor", - StringHelper::Sprintf("%sAnimatedMaterialPrimColor_%06X", - zRoom->GetName().c_str(), - primColorSegmentOffset), - primColors.size(), declaration); - } - - if (envColorSegmentOffset != 0) - { - std::string declaration = ""; - size_t index = 0; - - for (FlashingTextureEnvColor& color : envColors) - { - declaration += StringHelper::Sprintf(" { 0x%02X, 0x%02X, 0x%02X, 0x%02X },", color.r, - color.g, color.b, color.a); - - if (index < envColors.size() - 1) - declaration += "\n"; - - index++; - } - - zRoom->parent->AddDeclarationArray( - envColorSegmentOffset, DeclarationAlignment::Align4, envColors.size() * 4, - "F3DEnvColor", - StringHelper::Sprintf("%sAnimatedMaterialEnvColors0x%06X", zRoom->GetName().c_str(), - envColorSegmentOffset), - envColors.size(), declaration); - } - - if (keyFrameSegmentOffset != 0) - { - std::string declaration = ""; - size_t index = 0; - - for (uint16_t keyFrame : keyFrames) - { - declaration += StringHelper::Sprintf(" 0x%02X,", keyFrame); - - if (index < keyFrames.size() - 1) - declaration += "\n"; - - index++; - } - - zRoom->parent->AddDeclarationArray( - keyFrameSegmentOffset, DeclarationAlignment::Align4, keyFrames.size() * 2, "u16", - StringHelper::Sprintf("%sAnimatedMaterialKeyFrames0x%06X", zRoom->GetName().c_str(), - keyFrameSegmentOffset), - keyFrames.size(), declaration); - } - - std::string primName = zRoom->parent->GetDeclarationPtrName(primColorSegmentAddr); - std::string envName = zRoom->parent->GetDeclarationPtrName(envColorSegmentAddr); - std::string keyName = zRoom->parent->GetDeclarationPtrName(keyFrameSegmentAddr); - - return StringHelper::Sprintf("%i, %i, %s, %s, %s", cycleLength, numKeyFrames, primName.c_str(), - envName.c_str(), keyName.c_str()); -} - -size_t FlashingTexture::GetParamsSize() -{ - return 16; -} - -AnimatedMatTexCycleParams::AnimatedMatTexCycleParams(const std::vector& rawData, - uint32_t rawDataIndex) - : cycleLength(BitConverter::ToUInt16BE(rawData, rawDataIndex + 0)) -{ - textureSegmentOffsetsSegmentAddress = BitConverter::ToInt32BE(rawData, rawDataIndex + 4); - textureIndicesSegmentAddress = BitConverter::ToInt32BE(rawData, rawDataIndex + 8); - - textureSegmentOffsetsSegmentOffset = GETSEGOFFSET(textureSegmentOffsetsSegmentAddress); - textureIndicesSegmentOffset = GETSEGOFFSET(textureIndicesSegmentAddress); - - int32_t currentPtr = textureIndicesSegmentOffset; - int32_t maxIndex = 0; - - for (uint16_t i = 0; i < cycleLength; i++) - { - uint8_t newIndex = rawData.at(currentPtr); - textureIndices.push_back(newIndex); - currentPtr++; - if (newIndex > maxIndex) - maxIndex = newIndex; - } - - currentPtr = textureSegmentOffsetsSegmentOffset; - for (int32_t i = 0; i < maxIndex + 1; i++) - { - textureSegmentOffsets.push_back(GETSEGOFFSET(BitConverter::ToInt32BE(rawData, currentPtr))); - currentPtr += 4; - } -} - -std::string AnimatedMatTexCycleParams::GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) -{ - if (textureSegmentOffsetsSegmentOffset != 0) - { - std::string declaration = ""; - size_t index = 0; - - for (uint32_t offset : textureSegmentOffsets) - { - declaration += - StringHelper::Sprintf(" %sTex_%06X,", zRoom->GetName().c_str(), offset); - - if (index < textureSegmentOffsets.size() - 1) - declaration += "\n"; - - index++; - } - - zRoom->parent->AddDeclarationArray( - textureSegmentOffsetsSegmentOffset, DeclarationAlignment::Align4, - textureSegmentOffsets.size() * 4, "u64*", - StringHelper::Sprintf("%sAnimatedMaterialTexSegOffsets0x%06X", zRoom->GetName().c_str(), - textureSegmentOffsetsSegmentOffset), - textureSegmentOffsets.size(), declaration); - } - - if (textureIndicesSegmentOffset != 0) - { - std::string declaration = ""; - size_t index = 0; - - for (uint8_t textureIndex : textureIndices) - { - declaration += StringHelper::Sprintf(" 0x%02X,", textureIndex); - - if (index < textureIndices.size() - 1) - declaration += "\n"; - - index++; - } - - zRoom->parent->AddDeclarationArray( - textureIndicesSegmentOffset, DeclarationAlignment::Align4, textureIndices.size(), "u8", - StringHelper::Sprintf("%sAnimatedMaterialTexIndices0x%06X", zRoom->GetName().c_str(), - textureIndicesSegmentOffset), - textureIndices.size(), declaration); - } - - std::string segmName = - zRoom->parent->GetDeclarationPtrName(textureSegmentOffsetsSegmentAddress); - std::string indexesName = zRoom->parent->GetDeclarationPtrName(textureIndicesSegmentAddress); - - return StringHelper::Sprintf("%i, %s, %s", cycleLength, segmName.c_str(), indexesName.c_str()); -} - -size_t AnimatedMatTexCycleParams::GetParamsSize() -{ - return 12; -} diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.h index 3284d819ff..3dbbf9684a 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetAnimatedMaterialList.h @@ -1,104 +1,7 @@ #pragma once -#include #include "ZRoom/ZRoomCommand.h" - -// TODO move into header and add all types -class AnitmatedTextureParams -{ -public: - virtual std::string GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) = 0; - virtual size_t GetParamsSize() = 0; -}; - -class ScrollingTexture : public AnitmatedTextureParams -{ -public: - ScrollingTexture(const std::vector& rawData, uint32_t rawDataIndex); - std::string GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) override; - size_t GetParamsSize() override; - - int8_t xStep; - int8_t yStep; - uint8_t width; - uint8_t height; -}; - -class F3DPrimColor -{ -public: - F3DPrimColor(const std::vector& rawData, uint32_t rawDataIndex); - - uint8_t r; - uint8_t g; - uint8_t b; - uint8_t a; - uint8_t lodFrac; -}; - -class FlashingTextureEnvColor -{ -public: - FlashingTextureEnvColor(const std::vector& rawData, uint32_t rawDataIndex); - - uint8_t r; - uint8_t g; - uint8_t b; - uint8_t a; -}; - -class FlashingTexture : public AnitmatedTextureParams -{ -public: - FlashingTexture(const std::vector& rawData, uint32_t rawDataIndex, int32_t type); - std::string GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) override; - size_t GetParamsSize() override; - - uint16_t cycleLength; - uint16_t numKeyFrames; - - segptr_t primColorSegmentAddr; - segptr_t envColorSegmentAddr; - segptr_t keyFrameSegmentAddr; - - uint32_t primColorSegmentOffset; - uint32_t envColorSegmentOffset; - uint32_t keyFrameSegmentOffset; - - std::vector primColors; - std::vector envColors; - std::vector keyFrames; -}; - -class AnimatedMatTexCycleParams : public AnitmatedTextureParams -{ -public: - AnimatedMatTexCycleParams(const std::vector& rawData, uint32_t rawDataIndex); - std::string GenerateSourceCode(ZRoom* zRoom, uint32_t baseAddress) override; - size_t GetParamsSize() override; - - uint16_t cycleLength; - - segptr_t textureSegmentOffsetsSegmentAddress; - segptr_t textureIndicesSegmentAddress; - uint32_t textureSegmentOffsetsSegmentOffset; - uint32_t textureIndicesSegmentOffset; - - std::vector textureSegmentOffsets; - std::vector textureIndices; -}; - -class AnimatedMaterial -{ -public: - AnimatedMaterial(const std::vector& rawData, uint32_t rawDataIndex); - - int8_t segment; - int16_t type; - segptr_t segmentAddress; - uint32_t segmentOffset; - std::vector> params; -}; +#include "ZTextureAnimation.h" class SetAnimatedMaterialList : public ZRoomCommand { @@ -111,9 +14,8 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; private: - std::vector textures; + ZTextureAnimation textureAnimation; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.cpp index fb41b88626..ae2d31c81e 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.cpp @@ -1,7 +1,7 @@ #include "SetCameraSettings.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" SetCameraSettings::SetCameraSettings(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.h index 1a0eb11b8c..a8fed44ec2 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCameraSettings.h @@ -5,6 +5,9 @@ class SetCameraSettings : public ZRoomCommand { public: + uint8_t cameraMovement; + uint32_t mapHighlight; + SetCameraSettings(ZFile* nParent); void ParseRawData() override; @@ -15,6 +18,4 @@ public: RoomCommand GetRoomCommand() const override; private: - uint8_t cameraMovement; - uint32_t mapHighlight; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.cpp index 569a7c0785..03aaa4bbbc 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.cpp @@ -1,7 +1,8 @@ #include "SetCollisionHeader.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -12,21 +13,23 @@ SetCollisionHeader::SetCollisionHeader(ZFile* nParent) : ZRoomCommand(nParent) void SetCollisionHeader::ParseRawData() { ZRoomCommand::ParseRawData(); + collisionHeader = new ZCollisionHeader(parent); - collisionHeader->SetRawDataIndex(segmentOffset); collisionHeader->SetName( StringHelper::Sprintf("%sCollisionHeader_%06X", parent->GetName().c_str(), segmentOffset)); - collisionHeader->ParseRawData(); + collisionHeader->ExtractFromFile(segmentOffset); + parent->AddResource(collisionHeader); } -SetCollisionHeader::~SetCollisionHeader() +void SetCollisionHeader::DeclareReferences(const std::string& prefix) { - delete collisionHeader; + collisionHeader->DeclareVar(prefix, ""); } std::string SetCollisionHeader::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "CollisionHeader", listName); return StringHelper::Sprintf("SCENE_CMD_COL_HEADER(%s)", listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.h index 7ea15eff8a..f7d5ecf358 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCollisionHeader.h @@ -6,16 +6,15 @@ class SetCollisionHeader : public ZRoomCommand { public: + ZCollisionHeader* collisionHeader; + SetCollisionHeader(ZFile* nParent); - ~SetCollisionHeader(); void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; std::string GetBodySourceCode() const override; std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - ZCollisionHeader* collisionHeader; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.cpp index 0402d939e7..5cf0a3d034 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.cpp @@ -1,7 +1,8 @@ #include "SetCsCamera.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -33,31 +34,23 @@ void SetCsCamera::ParseRawData() for (int32_t i = 0; i < numPoints; i++) { ZVector vec(parent); - vec.SetRawDataIndex(currentPtr); - vec.SetScalarType(ZScalarType::ZSCALAR_S16); - vec.SetDimensions(3); - vec.ParseRawData(); + vec.ExtractFromBinary(currentPtr, ZScalarType::ZSCALAR_S16, 3); currentPtr += vec.GetRawDataSize(); points.push_back(vec); } } - - if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); } void SetCsCamera::DeclareReferences(const std::string& prefix) { if (points.size() > 0) { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (auto& point : points) { - declaration += - StringHelper::Sprintf("\t%s, //0x%06X", point.GetBodySourceCode().c_str(), - cameras.at(0).segmentOffset + (index * 6)); + declaration += StringHelper::Sprintf("\t{ %s },", point.GetBodySourceCode().c_str()); if (index < points.size() - 1) declaration += "\n"; @@ -76,8 +69,10 @@ void SetCsCamera::DeclareReferences(const std::string& prefix) if (!cameras.empty()) { - std::string camPointsName = parent->GetDeclarationName(cameras.at(0).GetSegmentOffset()); - std::string declaration = ""; + std::string camPointsName; + Globals::Instance->GetSegmentedPtrName(cameras.at(0).GetCamAddress(), parent, "Vec3s", + camPointsName); + std::string declaration; size_t index = 0; size_t pointsIndex = 0; @@ -98,8 +93,8 @@ void SetCsCamera::DeclareReferences(const std::string& prefix) std::string camTypename = entry.GetSourceTypeName(); parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::Align4, DeclarationPadding::Pad16, - cameras.size() * entry.GetRawDataSize(), camTypename, + segmentOffset, DeclarationAlignment::Align4, cameras.size() * entry.GetRawDataSize(), + camTypename, StringHelper::Sprintf("%s%s_%06X", prefix.c_str(), camTypename.c_str(), segmentOffset), cameras.size(), declaration); } @@ -107,16 +102,12 @@ void SetCsCamera::DeclareReferences(const std::string& prefix) std::string SetCsCamera::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "CsCameraEntry", listName); return StringHelper::Sprintf("SCENE_CMD_ACTOR_CUTSCENE_CAM_LIST(%i, %s)", cameras.size(), listName.c_str()); } -size_t SetCsCamera::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (cameras.size() * 8) + (points.size() * 6); -} - std::string SetCsCamera::GetCommandCName() const { return "SCmdCsCameraList"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.h index e62b073902..5e0e3c8257 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCsCamera.h @@ -25,6 +25,9 @@ public: class SetCsCamera : public ZRoomCommand { public: + std::vector cameras; + std::vector points; + SetCsCamera(ZFile* nParent); void ParseRawData() override; @@ -33,10 +36,5 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; - -private: - std::vector cameras; - std::vector points; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.cpp index d9ecb7962b..e51e550b09 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.cpp @@ -1,8 +1,8 @@ #include "SetCutscenes.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -10,10 +10,16 @@ SetCutscenes::SetCutscenes(ZFile* nParent) : ZRoomCommand(nParent) { } +SetCutscenes::~SetCutscenes() +{ + for (ZCutsceneBase* cutscene : cutscenes) + delete cutscene; +} + void SetCutscenes::ParseRawData() { ZRoomCommand::ParseRawData(); - std::string output = ""; + std::string output; numCutscenes = cmdArg1; if (Globals::Instance->game == ZGame::OOT_RETAIL || Globals::Instance->game == ZGame::OOT_SW97) @@ -32,7 +38,7 @@ void SetCutscenes::ParseRawData() else { int32_t currentPtr = segmentOffset; - std::string declaration = ""; + std::string declaration; for (uint8_t i = 0; i < numCutscenes; i++) { @@ -40,8 +46,9 @@ void SetCutscenes::ParseRawData() cutsceneEntries.push_back(entry); currentPtr += 8; + // TODO: don't hardcode %sCutsceneData_%06X, look up for the declared name instead declaration += StringHelper::Sprintf( - " { %sCutsceneData0x%06X, 0x%04X, 0x%02X, 0x%02X },", zRoom->GetName().c_str(), + " { %sCutsceneData_%06X, 0x%04X, 0x%02X, 0x%02X },", zRoom->GetName().c_str(), entry.segmentOffset, entry.exit, entry.entrance, entry.flag); if (i < numCutscenes - 1) @@ -61,9 +68,9 @@ void SetCutscenes::ParseRawData() for (ZCutsceneBase* cutscene : cutscenes) { - if (cutscene->getSegmentOffset() != 0) + if (cutscene->GetRawDataIndex() != 0) { - Declaration* decl = parent->GetDeclaration(cutscene->getSegmentOffset()); + Declaration* decl = parent->GetDeclaration(cutscene->GetRawDataIndex()); if (decl == nullptr) { cutscene->GetSourceOutputCode(zRoom->GetName()); @@ -76,15 +83,10 @@ void SetCutscenes::ParseRawData() } } -SetCutscenes::~SetCutscenes() -{ - for (ZCutsceneBase* cutscene : cutscenes) - delete cutscene; -} - std::string SetCutscenes::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "CutsceneData", listName); if (Globals::Instance->game == ZGame::MM_RETAIL) return StringHelper::Sprintf("SCENE_CMD_CUTSCENE_LIST(%i, %s)", numCutscenes, @@ -92,11 +94,6 @@ std::string SetCutscenes::GetBodySourceCode() const return StringHelper::Sprintf("SCENE_CMD_CUTSCENE_DATA(%s)", listName.c_str()); } -size_t SetCutscenes::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize(); -} - std::string SetCutscenes::GetCommandCName() const { return "SCmdCutsceneData"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.h index 0d1def29a1..ad032bbe6a 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetCutscenes.h @@ -18,6 +18,10 @@ public: class SetCutscenes : public ZRoomCommand { public: + std::vector cutscenes; + std::vector cutsceneEntries; // (MM Only) + uint8_t numCutscenes; // (MM Only) + SetCutscenes(ZFile* nParent); ~SetCutscenes(); @@ -26,11 +30,5 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; - -private: - std::vector cutscenes; - std::vector cutsceneEntries; // (MM Only) - uint8_t numCutscenes; // (MM Only) }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.cpp index 275dc632db..79a278bc69 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.cpp @@ -1,5 +1,5 @@ #include "SetEchoSettings.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetEchoSettings::SetEchoSettings(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.h index 59632631b4..82b8c27dbc 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEchoSettings.h @@ -5,6 +5,8 @@ class SetEchoSettings : public ZRoomCommand { public: + uint8_t echo; + SetEchoSettings(ZFile* nParent); void ParseRawData() override; @@ -13,7 +15,4 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - uint8_t echo; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.cpp index 4ba73a2e80..8099bacf12 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.cpp @@ -1,7 +1,9 @@ #include "SetEntranceList.h" -#include "BitConverter.h" + +#include "Globals.h" #include "SetStartPositionList.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -9,10 +11,14 @@ SetEntranceList::SetEntranceList(ZFile* nParent) : ZRoomCommand(nParent) { } -void SetEntranceList::DeclareReferences(const std::string& prefix) +void SetEntranceList::DeclareReferences([[maybe_unused]] const std::string& prefix) { if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); + { + std::string varName = + StringHelper::Sprintf("%sEntranceList0x%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationPlaceholder(segmentOffset, varName); + } } void SetEntranceList::ParseRawDataLate() @@ -30,34 +36,34 @@ void SetEntranceList::ParseRawDataLate() } } -void SetEntranceList::DeclareReferencesLate(const std::string& prefix) +void SetEntranceList::DeclareReferencesLate([[maybe_unused]] const std::string& prefix) { if (!entrances.empty()) { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& entry : entrances) { - declaration += - StringHelper::Sprintf(" { %s }, //0x%06X", entry.GetBodySourceCode().c_str(), - segmentOffset + (index * 2)); + declaration += StringHelper::Sprintf(" { %s },", entry.GetBodySourceCode().c_str()); if (index + 1 < entrances.size()) declaration += "\n"; index++; } - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, entrances.size() * 2, "EntranceEntry", - StringHelper::Sprintf("%sEntranceList0x%06X", zRoom->GetName().c_str(), segmentOffset), - entrances.size(), declaration); + std::string varName = + StringHelper::Sprintf("%sEntranceList0x%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationArray(segmentOffset, DeclarationAlignment::Align4, + entrances.size() * 2, "EntranceEntry", varName, + entrances.size(), declaration); } } std::string SetEntranceList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "EntranceEntry", listName); return StringHelper::Sprintf("SCENE_CMD_ENTRANCE_LIST(%s)", listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.h index 5e76f9f6c9..e13e9a8ce6 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetEntranceList.h @@ -5,18 +5,19 @@ class EntranceEntry { public: + uint8_t startPositionIndex; + uint8_t roomToLoad; + EntranceEntry(const std::vector& rawData, uint32_t rawDataIndex); std::string GetBodySourceCode() const; - -protected: - uint8_t startPositionIndex; - uint8_t roomToLoad; }; class SetEntranceList : public ZRoomCommand { public: + std::vector entrances; + SetEntranceList(ZFile* nParent); void DeclareReferences(const std::string& prefix) override; @@ -27,7 +28,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - std::vector entrances; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.cpp index 5bfd19a578..ddc4c5d43e 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.cpp @@ -1,7 +1,8 @@ #include "SetExitList.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -9,10 +10,14 @@ SetExitList::SetExitList(ZFile* nParent) : ZRoomCommand(nParent) { } -void SetExitList::DeclareReferences(const std::string& prefix) +void SetExitList::DeclareReferences([[maybe_unused]] const std::string& prefix) { if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); + { + std::string varName = + StringHelper::Sprintf("%sExitList_%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationPlaceholder(segmentOffset, varName); + } } void SetExitList::ParseRawDataLate() @@ -30,11 +35,11 @@ void SetExitList::ParseRawDataLate() } } -void SetExitList::DeclareReferencesLate(const std::string& prefix) +void SetExitList::DeclareReferencesLate([[maybe_unused]] const std::string& prefix) { if (!exits.empty()) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < exits.size(); i++) { @@ -43,16 +48,17 @@ void SetExitList::DeclareReferencesLate(const std::string& prefix) declaration += "\n"; } - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::Align4, exits.size() * 2, "u16", - StringHelper::Sprintf("%sExitList_%06X", zRoom->GetName().c_str(), segmentOffset), - exits.size(), declaration); + std::string varName = + StringHelper::Sprintf("%sExitList_%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationArray(segmentOffset, DeclarationAlignment::Align4, exits.size() * 2, + "u16", varName, exits.size(), declaration); } } std::string SetExitList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "u16", listName); return StringHelper::Sprintf("SCENE_CMD_EXIT_LIST(%s)", listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.h index 8d220b1cd1..9d2791a83d 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetExitList.h @@ -5,6 +5,8 @@ class SetExitList : public ZRoomCommand { public: + std::vector exits; + SetExitList(ZFile* nParent); void DeclareReferences(const std::string& prefix) override; @@ -15,7 +17,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - std::vector exits; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.cpp index a12832c0a3..2e023ff206 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.cpp @@ -1,6 +1,8 @@ #include "SetLightList.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" SetLightList::SetLightList(ZFile* nParent) : ZRoomCommand(nParent) { @@ -9,7 +11,7 @@ SetLightList::SetLightList(ZFile* nParent) : ZRoomCommand(nParent) void SetLightList::ParseRawData() { ZRoomCommand::ParseRawData(); - std::string declarations = ""; + std::string declarations; numLights = cmdArg1; int32_t currentPtr = segmentOffset; @@ -26,7 +28,7 @@ void SetLightList::DeclareReferences(const std::string& prefix) { if (!lights.empty()) { - std::string declarations = ""; + std::string declarations; for (size_t i = 0; i < lights.size(); i++) { @@ -40,7 +42,7 @@ void SetLightList::DeclareReferences(const std::string& prefix) const auto& light = lights.front(); parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, lights.size() * light.GetRawDataSize(), + segmentOffset, DeclarationAlignment::Align4, lights.size() * light.GetRawDataSize(), light.GetSourceTypeName(), StringHelper::Sprintf("%sLightInfo0x%06X", prefix.c_str(), segmentOffset), lights.size(), declarations); @@ -49,7 +51,8 @@ void SetLightList::DeclareReferences(const std::string& prefix) std::string SetLightList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "LightInfo", listName); return StringHelper::Sprintf("SCENE_CMD_LIGHT_LIST(%i, %s)", numLights, listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.h index 389ffef0f9..c089d82a54 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightList.h @@ -27,6 +27,9 @@ protected: class SetLightList : public ZRoomCommand { public: + uint8_t numLights; + std::vector lights; + SetLightList(ZFile* nParent); void ParseRawData() override; @@ -36,8 +39,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - uint8_t numLights; - std::vector lights; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.cpp index e677738f5c..08cd83d141 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.cpp @@ -1,6 +1,8 @@ #include "SetLightingSettings.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -21,13 +23,12 @@ void SetLightingSettings::DeclareReferences(const std::string& prefix) { if (settings.size() > 0) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < settings.size(); i++) { - declaration += StringHelper::Sprintf("\t{ %s }, // 0x%06X", - settings.at(i).GetBodySourceCode().c_str(), - segmentOffset + (i * 22)); + declaration += + StringHelper::Sprintf("\t{ %s },", settings.at(i).GetBodySourceCode().c_str()); if (i + 1 < settings.size()) declaration += "\n"; } @@ -42,7 +43,8 @@ void SetLightingSettings::DeclareReferences(const std::string& prefix) std::string SetLightingSettings::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "LightSettings", listName); return StringHelper::Sprintf("SCENE_CMD_ENV_LIGHT_SETTINGS(%i, %s)", settings.size(), listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.h index 7717957fa3..29caf4aa6a 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetLightingSettings.h @@ -5,13 +5,6 @@ class LightingSettings { public: - LightingSettings(const std::vector& rawData, uint32_t rawDataIndex); - - std::string GetBodySourceCode() const; - - size_t GetRawDataSize() const; - -protected: uint8_t ambientClrR, ambientClrG, ambientClrB; uint8_t diffuseClrA_R, diffuseClrA_G, diffuseClrA_B; uint8_t diffuseDirA_X, diffuseDirA_Y, diffuseDirA_Z; @@ -20,11 +13,19 @@ protected: uint8_t fogClrR, fogClrG, fogClrB; uint16_t unk; uint16_t drawDistance; + + LightingSettings(const std::vector& rawData, uint32_t rawDataIndex); + + std::string GetBodySourceCode() const; + + size_t GetRawDataSize() const; }; class SetLightingSettings : public ZRoomCommand { public: + std::vector settings; + SetLightingSettings(ZFile* nParent); void ParseRawData() override; @@ -34,7 +35,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - std::vector settings; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.cpp index f2a9676901..4fa1f05cb2 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.cpp @@ -1,8 +1,8 @@ #include "SetMesh.h" #include -#include -#include "BitConverter.h" -#include "StringHelper.h" +#include +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZBackground.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -22,15 +22,15 @@ void SetMesh::ParseRawData() switch (meshHeaderType) { case 0: - polyType = std::make_shared(parent, parentRawData, segmentOffset, zRoom); + polyType = std::make_shared(parent, segmentOffset, zRoom); break; case 1: - polyType = std::make_shared(parent, parentRawData, segmentOffset, zRoom); + polyType = std::make_shared(parent, segmentOffset, zRoom); break; case 2: - polyType = std::make_shared(parent, parentRawData, segmentOffset, zRoom); + polyType = std::make_shared(parent, segmentOffset, zRoom); break; default: @@ -49,37 +49,23 @@ void SetMesh::DeclareReferences(const std::string& prefix) polyType->DeclareAndGenerateOutputCode(prefix); } +// TODO: is this really needed? void GenDListDeclarations(ZRoom* zRoom, ZFile* parent, ZDisplayList* dList) { if (dList == nullptr) { return; } - std::string srcVarName = - StringHelper::Sprintf("%s%s", zRoom->GetName().c_str(), dList->GetName().c_str()); - dList->SetName(srcVarName); - dList->scene = zRoom->scene; std::string sourceOutput = dList->GetSourceOutputCode(zRoom->GetName()); for (ZDisplayList* otherDList : dList->otherDLists) GenDListDeclarations(zRoom, parent, otherDList); - - for (const auto& vtxEntry : dList->vtxDeclarations) - { - DeclarationAlignment alignment = DeclarationAlignment::Align4; - if (Globals::Instance->game == ZGame::MM_RETAIL) - alignment = DeclarationAlignment::None; - parent->AddDeclarationArray( - vtxEntry.first, alignment, dList->vertices[vtxEntry.first].size() * 16, "static Vtx", - StringHelper::Sprintf("%sVtx_%06X", zRoom->GetName().c_str(), vtxEntry.first), - dList->vertices[vtxEntry.first].size(), vtxEntry.second); - } } std::string SetMesh::GenDListExterns(ZDisplayList* dList) { - std::string sourceOutput = ""; + std::string sourceOutput; sourceOutput += StringHelper::Sprintf("extern Gfx %sDL_%06X[];\n", zRoom->GetName().c_str(), dList->GetRawDataIndex()); @@ -87,22 +73,16 @@ std::string SetMesh::GenDListExterns(ZDisplayList* dList) for (ZDisplayList* otherDList : dList->otherDLists) sourceOutput += GenDListExterns(otherDList); - sourceOutput += dList->defines; - return sourceOutput; } std::string SetMesh::GetBodySourceCode() const { - std::string list = parent->GetDeclarationPtrName(cmdArg2); + std::string list; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "", list); return StringHelper::Sprintf("SCENE_CMD_MESH(%s)", list.c_str()); } -size_t SetMesh::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize(); -} - std::string SetMesh::GetCommandCName() const { return "SCmdMesh"; @@ -113,14 +93,8 @@ RoomCommand SetMesh::GetRoomCommand() const return RoomCommand::SetMesh; } -PolygonDlist::PolygonDlist(const std::string& prefix, const std::vector& nRawData, - uint32_t nRawDataIndex, ZFile* nParent, ZRoom* nRoom) +PolygonDlist::PolygonDlist(ZFile* nParent) : ZResource(nParent) { - rawDataIndex = nRawDataIndex; - parent = nParent; - zRoom = nRoom; - - name = GetDefaultName(prefix.c_str(), rawDataIndex); } void PolygonDlist::ParseRawData() @@ -151,22 +125,57 @@ void PolygonDlist::DeclareReferences(const std::string& prefix) xluDList = MakeDlist(xlu, prefix); } -ZDisplayList* PolygonDlist::MakeDlist(segptr_t ptr, const std::string& prefix) +std::string PolygonDlist::GetBodySourceCode() const { - if (ptr == 0) + std::string bodyStr; + std::string opaStr; + std::string xluStr; + Globals::Instance->GetSegmentedPtrName(opa, parent, "Gfx", opaStr); + Globals::Instance->GetSegmentedPtrName(xlu, parent, "Gfx", xluStr); + + if (polyType == 2) { - return nullptr; + bodyStr += StringHelper::Sprintf("{ %6i, %6i, %6i }, %6i, ", x, y, z, unk_06); } - uint32_t dlistAddress = Seg2Filespace(ptr, parent->baseAddress); + bodyStr += StringHelper::Sprintf("%s, %s", opaStr.c_str(), xluStr.c_str()); - int32_t dlistLength = ZDisplayList::GetDListLength( - parent->GetRawData(), dlistAddress, - Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); - ZDisplayList* dlist = new ZDisplayList(dlistAddress, dlistLength, parent); - GenDListDeclarations(zRoom, parent, dlist); + return bodyStr; +} - return dlist; +std::string PolygonDlist::GetSourceOutputCode(const std::string& prefix) +{ + std::string bodyStr = StringHelper::Sprintf("\n\t%s\n", GetBodySourceCode().c_str()); + + Declaration* decl = parent->GetDeclaration(rawDataIndex); + if (decl == nullptr) + { + DeclareVar(prefix, bodyStr); + } + else + { + decl->text = bodyStr; + } + + return ""; +} + +std::string PolygonDlist::GetSourceTypeName() const +{ + switch (polyType) + { + case 2: + return "PolygonDlist2"; + + default: + return "PolygonDlist"; + } +} + +ZResourceType PolygonDlist::GetResourceType() const +{ + // TODO + return ZResourceType::Error; } size_t PolygonDlist::GetRawDataSize() const @@ -186,96 +195,41 @@ void PolygonDlist::SetPolyType(uint8_t nPolyType) polyType = nPolyType; } -void PolygonDlist::DeclareVar(const std::string& prefix, const std::string& bodyStr) +ZDisplayList* PolygonDlist::MakeDlist(segptr_t ptr, [[maybe_unused]] const std::string& prefix) { - std::string auxName = name; - if (name == "") + if (ptr == 0) { - auxName = GetDefaultName(prefix, rawDataIndex); + return nullptr; } - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), auxName, bodyStr); + + uint32_t dlistAddress = Seg2Filespace(ptr, parent->baseAddress); + + int32_t dlistLength = ZDisplayList::GetDListLength( + parent->GetRawData(), dlistAddress, + Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX); + ZDisplayList* dlist = new ZDisplayList(parent); + dlist->ExtractFromBinary(dlistAddress, dlistLength); + dlist->SetName(dlist->GetDefaultName(prefix)); + GenDListDeclarations(zRoom, parent, dlist); + + return dlist; } -std::string PolygonDlist::GetBodySourceCode(bool arrayElement) +/* BgImage */ + +BgImage::BgImage(ZFile* nParent) : ZResource(nParent) { - std::string bodyStr = ""; - std::string opaStr = parent->GetDeclarationPtrName(opa); - std::string xluStr = parent->GetDeclarationPtrName(xlu); - if (arrayElement) - { - bodyStr += " { "; - } - else - { - bodyStr += "\n "; - } - - if (polyType == 2) - { - bodyStr += StringHelper::Sprintf("{ %6i, %6i, %6i }, %6i, ", x, y, z, unk_06); - } - - bodyStr += StringHelper::Sprintf("%s, ", opaStr.c_str()); - bodyStr += StringHelper::Sprintf("%s", xluStr.c_str()); - - if (arrayElement) - { - bodyStr += " },"; - } - else - { - bodyStr += "\n"; - } - - return bodyStr; } -void PolygonDlist::DeclareAndGenerateOutputCode() -{ - std::string bodyStr = GetBodySourceCode(false); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - if (decl == nullptr) - { - DeclareVar("", bodyStr); - } - else - { - decl->text = bodyStr; - } -} - -std::string PolygonDlist::GetDefaultName(const std::string& prefix, uint32_t address) -{ - return StringHelper::Sprintf("%sPolyDlist_%06X", prefix.c_str(), address); -} - -std::string PolygonDlist::GetSourceTypeName() -{ - switch (polyType) - { - case 2: - return "PolygonDlist2"; - - default: - return "PolygonDlist"; - } -} - -std::string PolygonDlist::GetName() -{ - return name; -} - -BgImage::BgImage(bool nIsSubStruct, const std::string& prefix, const std::vector& nRawData, - uint32_t nRawDataIndex, ZFile* nParent) +BgImage::BgImage(bool nIsSubStruct, const std::string& prefix, uint32_t nRawDataIndex, + ZFile* nParent) + : BgImage(nParent) { rawDataIndex = nRawDataIndex; parent = nParent; isSubStruct = nIsSubStruct; - name = GetDefaultName(prefix.c_str(), rawDataIndex); + name = GetDefaultName(prefix); ParseRawData(); sourceBackground = MakeBackground(source, prefix); @@ -306,28 +260,32 @@ void BgImage::ParseRawData() ZBackground* BgImage::MakeBackground(segptr_t ptr, const std::string& prefix) { if (ptr == 0) - { return nullptr; - } uint32_t backAddress = Seg2Filespace(ptr, parent->baseAddress); - ZBackground* background = new ZBackground(prefix, backAddress, parent); + ZBackground* background = new ZBackground(parent); + background->ExtractFromFile(backAddress); + + std::string defaultName = background->GetDefaultName(prefix); + background->SetName(defaultName); + background->SetOutName(defaultName); + background->DeclareVar(prefix, ""); parent->resources.push_back(background); return background; } -size_t BgImage::GetRawDataSize() +size_t BgImage::GetRawDataSize() const { return 0x1C; } -std::string BgImage::GetBodySourceCode(bool arrayElement) const +std::string BgImage::GetBodySourceCode() const { std::string bodyStr = " "; - if (arrayElement) + if (!isSubStruct) { bodyStr += "{ \n "; } @@ -337,16 +295,14 @@ std::string BgImage::GetBodySourceCode(bool arrayElement) const bodyStr += StringHelper::Sprintf("0x%04X, ", unk_00); bodyStr += StringHelper::Sprintf("%i, ", id); bodyStr += "\n "; - if (arrayElement) - { - bodyStr += " "; - } + bodyStr += " "; } - std::string backgroundName = parent->GetDeclarationPtrName(source); + std::string backgroundName; + Globals::Instance->GetSegmentedPtrName(source, parent, "", backgroundName); bodyStr += StringHelper::Sprintf("%s, ", backgroundName.c_str()); bodyStr += "\n "; - if (arrayElement) + if (!isSubStruct) { bodyStr += " "; } @@ -354,7 +310,7 @@ std::string BgImage::GetBodySourceCode(bool arrayElement) const bodyStr += StringHelper::Sprintf("0x%08X, ", unk_0C); bodyStr += StringHelper::Sprintf("0x%08X, ", tlut); bodyStr += "\n "; - if (arrayElement) + if (!isSubStruct) { bodyStr += " "; } @@ -362,7 +318,7 @@ std::string BgImage::GetBodySourceCode(bool arrayElement) const bodyStr += StringHelper::Sprintf("%i, ", width); bodyStr += StringHelper::Sprintf("%i, ", height); bodyStr += "\n "; - if (arrayElement) + if (!isSubStruct) { bodyStr += " "; } @@ -370,14 +326,14 @@ std::string BgImage::GetBodySourceCode(bool arrayElement) const bodyStr += StringHelper::Sprintf("%i, ", fmt); bodyStr += StringHelper::Sprintf("%i, ", siz); bodyStr += "\n "; - if (arrayElement) + if (!isSubStruct) { bodyStr += " "; } bodyStr += StringHelper::Sprintf("0x%04X, ", mode0); bodyStr += StringHelper::Sprintf("0x%04X, ", tlutCount); - if (arrayElement) + if (!isSubStruct) { bodyStr += " \n }, "; } @@ -389,40 +345,26 @@ std::string BgImage::GetBodySourceCode(bool arrayElement) const return bodyStr; } -std::string BgImage::GetDefaultName(const std::string& prefix, uint32_t address) -{ - return StringHelper::Sprintf("%sBgImage_%06X", prefix.c_str(), address); -} - -std::string BgImage::GetSourceTypeName() +std::string BgImage::GetSourceTypeName() const { return "BgImage"; } -std::string BgImage::GetName() +ZResourceType BgImage::GetResourceType() const { - return name; + // TODO + return ZResourceType::Error; } /* PolygonType section */ -PolygonTypeBase::PolygonTypeBase(ZFile* nParent, const std::vector& nRawData, - uint32_t nRawDataIndex, ZRoom* nRoom) - : rawDataIndex{nRawDataIndex}, parent{nParent}, zRoom{nRoom} +PolygonTypeBase::PolygonTypeBase(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom) + : ZResource(nParent), zRoom{nRoom} { + rawDataIndex = nRawDataIndex; type = BitConverter::ToUInt8BE(parent->GetRawData(), rawDataIndex); } -void PolygonTypeBase::DeclareVar(const std::string& prefix, const std::string& bodyStr) -{ - std::string auxName = name; - if (name == "") - auxName = GetDefaultName(prefix); - - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), auxName, bodyStr); -} - void PolygonTypeBase::DeclareAndGenerateOutputCode(const std::string& prefix) { std::string bodyStr = GetBodySourceCode(); @@ -453,25 +395,14 @@ std::string PolygonTypeBase::GetSourceTypeName() const } } -std::string PolygonTypeBase::GetName() const +ZResourceType PolygonTypeBase::GetResourceType() const { - return name; + // TODO + return ZResourceType::Error; } -void PolygonTypeBase::SetName(const std::string& newName) -{ - name = newName; -} - -std::string PolygonTypeBase::GetDefaultName(const std::string& prefix) const -{ - return StringHelper::Sprintf("%s%s_%06X", prefix.c_str(), GetSourceTypeName().c_str(), - rawDataIndex); -} - -PolygonType1::PolygonType1(ZFile* nParent, const std::vector& nRawData, - uint32_t nRawDataIndex, ZRoom* nRoom) - : PolygonTypeBase(nParent, nRawData, nRawDataIndex, nRoom) +PolygonType1::PolygonType1(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom) + : PolygonTypeBase(nParent, nRawDataIndex, nRoom), single(nParent) { } @@ -490,10 +421,10 @@ void PolygonType1::ParseRawData() if (dlist != 0) { - PolygonDlist polyGfxList(zRoom->GetName(), rawData, - Seg2Filespace(dlist, parent->baseAddress), parent, zRoom); + PolygonDlist polyGfxList(parent); + polyGfxList.zRoom = zRoom; polyGfxList.SetPolyType(type); - polyGfxList.ParseRawData(); + polyGfxList.ExtractFromFile(Seg2Filespace(dlist, parent->baseAddress)); polyGfxList.DeclareReferences(zRoom->GetName()); polyDLists.push_back(polyGfxList); } @@ -501,26 +432,27 @@ void PolygonType1::ParseRawData() void PolygonType1::DeclareReferences(const std::string& prefix) { - polyDLists.at(0).DeclareAndGenerateOutputCode(); + polyDLists.at(0).GetSourceOutputCode(prefix); uint32_t listAddress; - std::string bgImageArrayBody = ""; + std::string bgImageArrayBody; switch (format) { case 1: - single = BgImage(true, prefix, parent->GetRawData(), rawDataIndex + 0x08, parent); + single = BgImage(true, prefix, rawDataIndex + 0x08, parent); break; case 2: if (list != 0) { listAddress = Seg2Filespace(list, parent->baseAddress); + uint32_t auxPtr = listAddress; for (size_t i = 0; i < count; ++i) { - BgImage bg(false, prefix, parent->GetRawData(), - listAddress + i * BgImage::GetRawDataSize(), parent); + BgImage bg(false, prefix, auxPtr, parent); multiList.push_back(bg); - bgImageArrayBody += bg.GetBodySourceCode(true); + auxPtr += bg.GetRawDataSize(); + bgImageArrayBody += bg.GetBodySourceCode(); if (i + 1 < count) { bgImageArrayBody += "\n"; @@ -531,9 +463,9 @@ void PolygonType1::DeclareReferences(const std::string& prefix) if (decl == nullptr) { parent->AddDeclarationArray( - listAddress, DeclarationAlignment::Align4, count * BgImage::GetRawDataSize(), - BgImage::GetSourceTypeName(), multiList.at(0).GetName().c_str(), count, - bgImageArrayBody); + listAddress, DeclarationAlignment::Align4, + count * multiList.at(0).GetRawDataSize(), multiList.at(0).GetSourceTypeName(), + multiList.at(0).GetName().c_str(), count, bgImageArrayBody); } } break; @@ -565,26 +497,26 @@ std::string PolygonType1::GetBodySourceCode() const bodyStr += "{ "; bodyStr += StringHelper::Sprintf("%i, %i, ", type, format); - std::string dlistStr = parent->GetDeclarationPtrName(dlist); + std::string dlistStr; + Globals::Instance->GetSegmentedPtrName(dlist, parent, "", dlistStr); + bodyStr += StringHelper::Sprintf("%s, ", dlistStr.c_str()); bodyStr += "}, \n"; std::string listStr = "NULL"; - // bodyStr += " { \n"; switch (format) { case 1: - bodyStr += single.GetBodySourceCode(false); + bodyStr += single.GetBodySourceCode(); break; case 2: - listStr = parent->GetDeclarationPtrName(list); + Globals::Instance->GetSegmentedPtrName(list, parent, "BgImage", listStr); bodyStr += StringHelper::Sprintf(" %i, %s, \n", count, listStr.c_str()); break; default: break; } - // bodyStr += " } \n"; return bodyStr; } @@ -603,9 +535,8 @@ std::string PolygonType1::GetSourceTypeName() const // return "PolygonType1"; } -PolygonType2::PolygonType2(ZFile* nParent, const std::vector& nRawData, - uint32_t nRawDataIndex, ZRoom* nRoom) - : PolygonTypeBase(nParent, nRawData, nRawDataIndex, nRoom) +PolygonType2::PolygonType2(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom) + : PolygonTypeBase(nParent, nRawDataIndex, nRoom) { } @@ -621,9 +552,10 @@ void PolygonType2::ParseRawData() uint32_t currentPtr = GETSEGOFFSET(start); for (size_t i = 0; i < num; i++) { - PolygonDlist entry(zRoom->GetName(), rawData, currentPtr, parent, zRoom); + PolygonDlist entry(parent); + entry.zRoom = zRoom; entry.SetPolyType(type); - entry.ParseRawData(); + entry.ExtractFromFile(currentPtr); entry.DeclareReferences(zRoom->GetName()); polyDLists.push_back(entry); currentPtr += entry.GetRawDataSize(); @@ -634,17 +566,18 @@ void PolygonType2::DeclareReferences(const std::string& prefix) { if (num > 0) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < polyDLists.size(); i++) { - declaration += polyDLists.at(i).GetBodySourceCode(true); + declaration += + StringHelper::Sprintf("\t{ %s },", polyDLists.at(i).GetBodySourceCode().c_str()); if (i + 1 < polyDLists.size()) declaration += "\n"; } std::string polyDlistType = polyDLists.at(0).GetSourceTypeName(); - std::string polyDListName = ""; + std::string polyDListName; polyDListName = StringHelper::Sprintf("%s%s_%06X", prefix.c_str(), polyDlistType.c_str(), GETSEGOFFSET(start)); @@ -653,14 +586,16 @@ void PolygonType2::DeclareReferences(const std::string& prefix) polyDlistType, polyDListName, polyDLists.size(), declaration); } - parent->AddDeclaration(GETSEGOFFSET(end), DeclarationAlignment::Align4, - DeclarationPadding::Pad16, 4, "static s32", "terminatorMaybe", + parent->AddDeclaration(GETSEGOFFSET(end), DeclarationAlignment::Align4, 4, "s32", + StringHelper::Sprintf("%s_terminatorMaybe_%06X", + parent->GetName().c_str(), GETSEGOFFSET(end)), "0x01000000"); } std::string PolygonType2::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(start); + std::string listName; + Globals::Instance->GetSegmentedPtrName(start, parent, "", listName); std::string body = StringHelper::Sprintf("\n %i, %i,\n", type, polyDLists.size()); body += StringHelper::Sprintf(" %s,\n", listName.c_str()); @@ -673,3 +608,8 @@ size_t PolygonType2::GetRawDataSize() const { return 0x0C; } + +DeclarationAlignment PolygonType2::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align4; +} diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.h index 20ec9c3ae2..566711a9a7 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMesh.h @@ -5,51 +5,45 @@ #include "ZDisplayList.h" #include "ZRoom/ZRoomCommand.h" -class PolygonDlist +class PolygonDlist : public ZResource { public: - PolygonDlist() = default; - PolygonDlist(const std::string& prefix, const std::vector& nRawData, - uint32_t nRawDataIndex, ZFile* nParent, ZRoom* nRoom); + ZRoom* zRoom; - void ParseRawData(); - void DeclareReferences(const std::string& prefix); + uint8_t polyType; - size_t GetRawDataSize() const; - void SetPolyType(uint8_t nPolyType); - - void DeclareVar(const std::string& prefix, const std::string& bodyStr); - - std::string GetBodySourceCode(bool arrayElement); - void DeclareAndGenerateOutputCode(); - - static std::string GetDefaultName(const std::string& prefix, uint32_t address); - std::string GetSourceTypeName(); - std::string GetName(); - -protected: int16_t x, y, z; // polyType == 2 int16_t unk_06; // polyType == 2 segptr_t opa = 0; // Gfx* segptr_t xlu = 0; // Gfx* - uint8_t polyType; - ZDisplayList* opaDList = nullptr; // Gfx* ZDisplayList* xluDList = nullptr; // Gfx* - uint32_t rawDataIndex; - ZFile* parent; - ZRoom* zRoom; - std::string name; + PolygonDlist(ZFile* nParent); + void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + + std::string GetSourceOutputCode(const std::string& prefix) override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; + + void SetPolyType(uint8_t nPolyType); + +protected: ZDisplayList* MakeDlist(segptr_t ptr, const std::string& prefix); }; -class BgImage +class BgImage : public ZResource { -protected: +public: uint16_t unk_00; uint8_t id; segptr_t source; @@ -64,63 +58,44 @@ protected: ZBackground* sourceBackground; - uint32_t rawDataIndex; - ZFile* parent; - std::string name; bool isSubStruct; - void ParseRawData(); - ZBackground* MakeBackground(segptr_t ptr, const std::string& prefix); + BgImage(ZFile* nParent); + BgImage(bool nIsSubStruct, const std::string& prefix, uint32_t nRawDataIndex, ZFile* nParent); -public: - BgImage() = default; - BgImage(bool nIsSubStruct, const std::string& prefix, const std::vector& nRawData, - uint32_t nRawDataIndex, ZFile* nParent); + void ParseRawData() override; - static size_t GetRawDataSize(); + std::string GetBodySourceCode() const override; - std::string GetBodySourceCode(bool arrayElement) const; + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; - static std::string GetDefaultName(const std::string& prefix, uint32_t address); - static std::string GetSourceTypeName(); - std::string GetName(); -}; - -class PolygonTypeBase -{ -public: - PolygonTypeBase(ZFile* nParent, const std::vector& nRawData, uint32_t nRawDataIndex, - ZRoom* nRoom); - - virtual void ParseRawData() = 0; - virtual void DeclareReferences(const std::string& prefix) = 0; - - virtual std::string GetBodySourceCode() const = 0; - void DeclareVar(const std::string& prefix, const std::string& bodyStr); - void DeclareAndGenerateOutputCode(const std::string& prefix); - - virtual std::string GetSourceTypeName() const; - - std::string GetName() const; - void SetName(const std::string& newName); - virtual size_t GetRawDataSize() const = 0; - - std::string GetDefaultName(const std::string& prefix) const; + size_t GetRawDataSize() const override; protected: - uint8_t type; + ZBackground* MakeBackground(segptr_t ptr, const std::string& prefix); +}; +class PolygonTypeBase : public ZResource +{ +public: + uint8_t type; std::vector polyDLists; - uint32_t rawDataIndex; - ZFile* parent; + PolygonTypeBase(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom); + + void DeclareAndGenerateOutputCode(const std::string& prefix); + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + +protected: ZRoom* zRoom; - std::string name; }; class PolygonType1 : public PolygonTypeBase { -protected: +public: uint8_t format; segptr_t dlist; @@ -132,9 +107,7 @@ protected: segptr_t list; // BgImage* std::vector multiList; -public: - PolygonType1(ZFile* nParent, const std::vector& nRawData, uint32_t nRawDataIndex, - ZRoom* nRoom); + PolygonType1(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom); void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; @@ -149,8 +122,11 @@ public: class PolygonType2 : public PolygonTypeBase { public: - PolygonType2(ZFile* nParent, const std::vector& nRawData, uint32_t nRawDataIndex, - ZRoom* nRoom); + uint8_t num; + segptr_t start; + segptr_t end; + + PolygonType2(ZFile* nParent, uint32_t nRawDataIndex, ZRoom* nRoom); void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; @@ -158,16 +134,16 @@ public: std::string GetBodySourceCode() const override; size_t GetRawDataSize() const override; - -protected: - uint8_t num; - segptr_t start; - segptr_t end; + DeclarationAlignment GetDeclarationAlignment() const override; }; class SetMesh : public ZRoomCommand { public: + uint8_t data; + uint8_t meshHeaderType; + std::shared_ptr polyType; + SetMesh(ZFile* nParent); void ParseRawData() override; @@ -176,12 +152,8 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; private: - uint8_t meshHeaderType; - std::shared_ptr polyType; - std::string GenDListExterns(ZDisplayList* dList); }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.cpp index bd9c8a004a..ec432b7d99 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.cpp @@ -1,8 +1,8 @@ #include "SetMinimapChests.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -28,7 +28,7 @@ void SetMinimapChests::ParseRawData() void SetMinimapChests::DeclareReferences(const std::string& prefix) { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& chest : chests) @@ -42,14 +42,15 @@ void SetMinimapChests::DeclareReferences(const std::string& prefix) } parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, chests.size() * 10, "MinimapChest", + segmentOffset, DeclarationAlignment::Align4, chests.size() * 10, "MinimapChest", StringHelper::Sprintf("%sMinimapChests0x%06X", prefix.c_str(), segmentOffset), chests.size(), declaration); } std::string SetMinimapChests::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "MinimapChest", listName); return StringHelper::Sprintf("SCENE_CMD_MINIMAP_COMPASS_ICON_INFO(0x%02X, %s)", chests.size(), listName.c_str()); } @@ -64,11 +65,6 @@ RoomCommand SetMinimapChests::GetRoomCommand() const return RoomCommand::SetMinimapChests; } -size_t SetMinimapChests::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (chests.size() * 10); -} - MinimapChest::MinimapChest(const std::vector& rawData, uint32_t rawDataIndex) : unk0(BitConverter::ToUInt16BE(rawData, rawDataIndex + 0)), unk2(BitConverter::ToUInt16BE(rawData, rawDataIndex + 2)), diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.h index b18534d5ef..0db09a8a25 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapChests.h @@ -20,6 +20,8 @@ protected: class SetMinimapChests : public ZRoomCommand { public: + std::vector chests; + SetMinimapChests(ZFile* nParent); void ParseRawData() override; @@ -28,9 +30,5 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; - -private: - std::vector chests; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.cpp index c94ef30d73..be5d8f15d1 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.cpp @@ -1,8 +1,8 @@ #include "SetMinimapList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -31,7 +31,7 @@ void SetMinimapList::ParseRawData() void SetMinimapList::DeclareReferences(const std::string& prefix) { { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& entry : minimaps) @@ -51,7 +51,8 @@ void SetMinimapList::DeclareReferences(const std::string& prefix) } { - std::string listName = parent->GetDeclarationPtrName(listSegmentAddr); + std::string listName; + Globals::Instance->GetSegmentedPtrName(listSegmentAddr, parent, "MinimapEntry", listName); std::string declaration = StringHelper::Sprintf("\n\t%s, 0x%08X\n", listName.c_str(), unk4); parent->AddDeclaration( @@ -63,7 +64,8 @@ void SetMinimapList::DeclareReferences(const std::string& prefix) std::string SetMinimapList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "MinimapList", listName); return StringHelper::Sprintf("SCENE_CMD_MINIMAP_INFO(%s)", listName.c_str()); } @@ -77,11 +79,6 @@ RoomCommand SetMinimapList::GetRoomCommand() const return RoomCommand::SetMinimapList; } -size_t SetMinimapList::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (minimaps.size() * 10); -} - MinimapEntry::MinimapEntry(const std::vector& rawData, uint32_t rawDataIndex) : unk0(BitConverter::ToUInt16BE(rawData, rawDataIndex + 0)), unk2(BitConverter::ToUInt16BE(rawData, rawDataIndex + 2)), diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.h index 079e7b3a3c..5b18b3dd78 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetMinimapList.h @@ -20,6 +20,8 @@ protected: class SetMinimapList : public ZRoomCommand { public: + std::vector minimaps; + SetMinimapList(ZFile* nParent); void ParseRawData() override; @@ -28,12 +30,9 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; private: - std::vector minimaps; - segptr_t listSegmentAddr; uint32_t listSegmentOffset; uint32_t unk4; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.cpp index d3184b4e62..fdd41e6cb4 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.cpp @@ -1,8 +1,8 @@ #include "SetObjectList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZNames.h" #include "ZRoom/ZRoom.h" @@ -23,16 +23,13 @@ void SetObjectList::ParseRawData() objects.push_back(objectIndex); currentPtr += 2; } - - if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); } void SetObjectList::DeclareReferences(const std::string& prefix) { if (!objects.empty()) { - std::string declaration = ""; + std::string declaration; for (size_t i = 0; i < objects.size(); i++) { @@ -45,7 +42,7 @@ void SetObjectList::DeclareReferences(const std::string& prefix) } parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, objects.size() * 2, "s16", + segmentOffset, DeclarationAlignment::Align4, objects.size() * 2, "s16", StringHelper::Sprintf("%sObjectList_%06X", prefix.c_str(), segmentOffset), objects.size(), declaration); } @@ -53,15 +50,11 @@ void SetObjectList::DeclareReferences(const std::string& prefix) std::string SetObjectList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "s16", listName); return StringHelper::Sprintf("SCENE_CMD_OBJECT_LIST(%i, %s)", objects.size(), listName.c_str()); } -size_t SetObjectList::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (objects.size() * 2); -} - std::string SetObjectList::GetCommandCName() const { return "SCmdObjectList"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.h index c952333fb7..03c159483c 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetObjectList.h @@ -5,17 +5,15 @@ class SetObjectList : public ZRoomCommand { public: + std::vector objects; + SetObjectList(ZFile* nParent); void ParseRawData() override; - void DeclareReferences(const std::string& prefix); + void DeclareReferences(const std::string& prefix) override; std::string GetBodySourceCode() const override; std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; - -private: - std::vector objects; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.cpp index 13ee7a7cab..52d400a848 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.cpp @@ -1,7 +1,8 @@ #include "SetPathways.h" -#include "BitConverter.h" + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -9,10 +10,14 @@ SetPathways::SetPathways(ZFile* nParent) : ZRoomCommand(nParent), pathwayList(nP { } -void SetPathways::DeclareReferences(const std::string& prefix) +void SetPathways::DeclareReferences([[maybe_unused]] const std::string& prefix) { if (segmentOffset != 0) - parent->AddDeclarationPlaceholder(segmentOffset); + { + std::string varName = + StringHelper::Sprintf("%sPathway_%06X", prefix.c_str(), segmentOffset); + parent->AddDeclarationPlaceholder(segmentOffset, varName); + } } void SetPathways::ParseRawDataLate() @@ -23,30 +28,24 @@ void SetPathways::ParseRawDataLate() pathwayList.SetNumPaths(numPaths); } - pathwayList.SetRawDataIndex(segmentOffset); - pathwayList.ParseRawData(); + pathwayList.ExtractFromFile(segmentOffset); } void SetPathways::DeclareReferencesLate(const std::string& prefix) { - pathwayList.SetName(StringHelper::Sprintf("%sPathway_%06X", prefix.c_str(), segmentOffset)); + std::string varName = StringHelper::Sprintf("%sPathway_%06X", prefix.c_str(), segmentOffset); + pathwayList.SetName(varName); pathwayList.DeclareReferences(prefix); pathwayList.GetSourceOutputCode(prefix); } std::string SetPathways::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "Path", listName); return StringHelper::Sprintf("SCENE_CMD_PATH_LIST(%s)", listName.c_str()); } -size_t SetPathways::GetRawDataSize() const -{ - int32_t size = pathwayList.GetRawDataSize(); - - return ZRoomCommand::GetRawDataSize() + size; -} - std::string SetPathways::GetCommandCName() const { return "SCmdPathList"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.h index 30b765b564..9abc93d32e 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetPathways.h @@ -8,6 +8,8 @@ class SetPathways : public ZRoomCommand { public: + ZPath pathwayList; + SetPathways(ZFile* nParent); void DeclareReferences(const std::string& prefix) override; @@ -15,14 +17,8 @@ public: void ParseRawDataLate() override; void DeclareReferencesLate(const std::string& prefix) override; - void DeclareVar(const std::string& prefix, const std::string& bodyStr); - std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; - -private: - ZPath pathwayList; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp index d667328b78..8c6f4bf514 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp @@ -1,7 +1,8 @@ #include "SetRoomBehavior.h" -#include "BitConverter.h" + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" SetRoomBehavior::SetRoomBehavior(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.h index 7989ea37ab..47b772d77f 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomBehavior.h @@ -5,16 +5,6 @@ class SetRoomBehavior : public ZRoomCommand { public: - SetRoomBehavior(ZFile* nParent); - - void ParseRawData() override; - - std::string GetBodySourceCode() const override; - - RoomCommand GetRoomCommand() const override; - std::string GetCommandCName() const override; - -protected: uint8_t gameplayFlags; uint32_t gameplayFlags2; @@ -27,4 +17,13 @@ protected: uint8_t enablePosLights; uint8_t kankyoContextUnkE2; + + SetRoomBehavior(ZFile* nParent); + + void ParseRawData() override; + + std::string GetBodySourceCode() const override; + + RoomCommand GetRoomCommand() const override; + std::string GetCommandCName() const override; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.cpp index 8cac82e87f..43c3968221 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.cpp @@ -1,8 +1,8 @@ #include "SetRoomList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZRoom.h" @@ -15,30 +15,28 @@ void SetRoomList::ParseRawData() ZRoomCommand::ParseRawData(); int numRooms = cmdArg1; - int32_t currentPtr = segmentOffset; + romfile = new RomFile(parent); + romfile->numRooms = numRooms; + romfile->ExtractFromFile(segmentOffset); - for (int32_t i = 0; i < numRooms; i++) - { - RoomEntry entry(parent->GetRawData(), currentPtr); - rooms.push_back(entry); - - currentPtr += 8; - } + parent->resources.push_back(romfile); zRoom->roomCount = numRooms; } void SetRoomList::DeclareReferences(const std::string& prefix) { - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, rooms.size() * 8, "RomFile", - StringHelper::Sprintf("%sRoomList0x%06X", prefix.c_str(), segmentOffset), 0, ""); + ZRoomCommand::DeclareReferences(prefix); + + romfile->DeclareVar(prefix, ""); } std::string SetRoomList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); - return StringHelper::Sprintf("SCENE_CMD_ROOM_LIST(%i, %s)", rooms.size(), listName.c_str()); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "RomFile", listName); + return StringHelper::Sprintf("SCENE_CMD_ROOM_LIST(%i, %s)", romfile->rooms.size(), + listName.c_str()); } std::string SetRoomList::GetCommandCName() const @@ -51,28 +49,93 @@ RoomCommand SetRoomList::GetRoomCommand() const return RoomCommand::SetRoomList; } -void SetRoomList::PreGenSourceFiles() +RomFile::RomFile(ZFile* nParent) : ZResource(nParent) { - std::string declaration = ""; +} + +void RomFile::ParseXML(tinyxml2::XMLElement* reader) +{ + ZResource::ParseXML(reader); + + if (reader->Attribute("NumRooms") != nullptr) + { + numRooms = StringHelper::StrToL(std::string(reader->Attribute("NumRooms"))); + } +} + +void RomFile::ParseRawData() +{ + ZResource::ParseRawData(); + + uint32_t currentPtr = rawDataIndex; + + for (int32_t i = 0; i < numRooms; i++) + { + RoomEntry entry(parent->GetRawData(), currentPtr); + rooms.push_back(entry); + + currentPtr += 8; + } +} + +Declaration* RomFile::DeclareVar(const std::string& prefix, const std::string& body) +{ + std::string auxName = name; + if (name == "") + auxName = StringHelper::Sprintf("%sRoomList0x%06X", prefix.c_str(), rawDataIndex); + + return parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align4, + rooms.size() * rooms.at(0).GetRawDataSize(), + GetSourceTypeName(), auxName, rooms.size(), body); +} + +std::string RomFile::GetBodySourceCode() const +{ + std::string declaration; + bool isFirst = true; for (ZFile* file : Globals::Instance->files) { for (ZResource* res : file->resources) { - if (res->GetResourceType() == ZResourceType::Room && res != zRoom) + if (res->GetResourceType() == ZResourceType::Room) { std::string roomName = res->GetName(); + if (!isFirst) + declaration += "\n"; + declaration += - StringHelper::Sprintf("\t{ (u32)_%sSegmentRomStart, (u32)_%sSegmentRomEnd },\n", + StringHelper::Sprintf("\t{ (u32)_%sSegmentRomStart, (u32)_%sSegmentRomEnd },", roomName.c_str(), roomName.c_str()); + isFirst = false; } } } - parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, rooms.size() * 8, "RomFile", - StringHelper::Sprintf("%sRoomList0x%06X", zRoom->GetName().c_str(), segmentOffset), 0, - declaration); + return declaration; +} + +std::string RomFile::GetSourceOutputCode(const std::string& prefix) +{ + DeclareVar(prefix, GetBodySourceCode()); + + return ""; +} + +std::string RomFile::GetSourceTypeName() const +{ + return "RomFile"; +} + +ZResourceType RomFile::GetResourceType() const +{ + // TODO + return ZResourceType::Error; +} + +size_t RomFile::GetRawDataSize() const +{ + return 8 * rooms.size(); } RoomEntry::RoomEntry(uint32_t nVAS, uint32_t nVAE) @@ -86,3 +149,8 @@ RoomEntry::RoomEntry(const std::vector& rawData, uint32_t rawDataIndex) BitConverter::ToInt32BE(rawData, rawDataIndex + 4)) { } + +size_t RoomEntry::GetRawDataSize() const +{ + return 0x08; +} diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.h index eaa2013f4d..4fb2ced176 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetRoomList.h @@ -5,28 +5,49 @@ class RoomEntry { public: + int32_t virtualAddressStart; + int32_t virtualAddressEnd; + RoomEntry(uint32_t nVAS, uint32_t nVAE); RoomEntry(const std::vector& rawData, uint32_t rawDataIndex); -protected: - int32_t virtualAddressStart; - int32_t virtualAddressEnd; + size_t GetRawDataSize() const; +}; + +class RomFile : public ZResource +{ +public: + RomFile(ZFile* nParent); + + void ParseXML(tinyxml2::XMLElement* reader) override; + void ParseRawData() override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& body) override; + std::string GetBodySourceCode() const override; + std::string GetSourceOutputCode(const std::string& prefix) override; + + std::string GetSourceTypeName() const override; + virtual ZResourceType GetResourceType() const override; + + virtual size_t GetRawDataSize() const override; + + uint8_t numRooms = 0; + std::vector rooms; }; class SetRoomList : public ZRoomCommand { public: + // Borrowed reference. Don't delete. + RomFile* romfile = nullptr; + SetRoomList(ZFile* nParent); void ParseRawData() override; - virtual void DeclareReferences(const std::string& prefix); + void DeclareReferences(const std::string& prefix) override; std::string GetBodySourceCode() const override; - void PreGenSourceFiles() override; RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - std::vector rooms; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.cpp index d8af2d11f1..b16f1355b2 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.cpp @@ -1,6 +1,6 @@ #include "SetSkyboxModifier.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetSkyboxModifier::SetSkyboxModifier(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.h index 1b0e02231d..65935bf928 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxModifier.h @@ -5,6 +5,9 @@ class SetSkyboxModifier : public ZRoomCommand { public: + uint8_t disableSky; + uint8_t disableSunMoon; + SetSkyboxModifier(ZFile* nParent); void ParseRawData() override; @@ -13,8 +16,4 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - uint8_t disableSky; - uint8_t disableSunMoon; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.cpp index 43c5c1e9cd..d5ae7ef761 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.cpp @@ -1,6 +1,6 @@ #include "SetSkyboxSettings.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetSkyboxSettings::SetSkyboxSettings(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.h index 380addcf0f..1c7e01ad40 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSkyboxSettings.h @@ -5,6 +5,11 @@ class SetSkyboxSettings : public ZRoomCommand { public: + uint8_t unk1; // (MM Only) + uint8_t skyboxNumber; + uint8_t cloudsType; + uint8_t isIndoors; + SetSkyboxSettings(ZFile* nParent); void ParseRawData() override; @@ -13,10 +18,4 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - uint8_t unk1; // (MM Only) - uint8_t skyboxNumber; - uint8_t cloudsType; - uint8_t isIndoors; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.cpp index 9472468cec..54b91328fb 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.cpp @@ -1,5 +1,5 @@ #include "SetSoundSettings.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetSoundSettings::SetSoundSettings(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.h index 0e35af7d12..f378e5e4ed 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSoundSettings.h @@ -5,6 +5,10 @@ class SetSoundSettings : public ZRoomCommand { public: + uint8_t reverb; + uint8_t nightTimeSFX; + uint8_t musicSequence; + SetSoundSettings(ZFile* nParent); void ParseRawData() override; @@ -13,9 +17,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - uint8_t reverb; - uint8_t nightTimeSFX; - uint8_t musicSequence; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.cpp index b202c4d9d3..0c24a2f328 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.cpp @@ -1,6 +1,6 @@ #include "SetSpecialObjects.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" SetSpecialObjects::SetSpecialObjects(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.h index 959133d9e2..3327d44c38 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetSpecialObjects.h @@ -5,6 +5,9 @@ class SetSpecialObjects : public ZRoomCommand { public: + uint8_t elfMessage; + uint16_t globalObject; + SetSpecialObjects(ZFile* nParent); void ParseRawData() override; @@ -13,8 +16,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - uint8_t elfMessage; - uint16_t globalObject; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.cpp index 01bd1bf6e0..f75b5e0d5e 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.cpp @@ -1,8 +1,8 @@ #include "SetStartPositionList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZNames.h" #include "ZRoom/ZRoom.h" @@ -29,7 +29,7 @@ void SetStartPositionList::DeclareReferences(const std::string& prefix) { if (!actors.empty()) { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& entry : actors) @@ -43,14 +43,15 @@ void SetStartPositionList::DeclareReferences(const std::string& prefix) parent->AddDeclarationArray( segmentOffset, DeclarationAlignment::Align4, actors.size() * 16, "ActorEntry", - StringHelper::Sprintf("%sStartPositionList0x%06X", prefix.c_str(), segmentOffset), 0, - declaration); + StringHelper::Sprintf("%sStartPositionList0x%06X", prefix.c_str(), segmentOffset), + actors.size(), declaration); } } std::string SetStartPositionList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "ActorEntry", listName); return StringHelper::Sprintf("SCENE_CMD_SPAWN_LIST(%i, %s)", actors.size(), listName.c_str()); } diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.h index 02cf7c65ad..10075adf3c 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetStartPositionList.h @@ -6,6 +6,8 @@ class SetStartPositionList : public ZRoomCommand { public: + std::vector actors; + SetStartPositionList(ZFile* nParent); void ParseRawData() override; @@ -15,7 +17,4 @@ public: RoomCommand GetRoomCommand() const override; std::string GetCommandCName() const override; - -private: - std::vector actors; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.cpp index 708c421228..9d4d356df7 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.cpp @@ -1,6 +1,6 @@ #include "SetTimeSettings.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" SetTimeSettings::SetTimeSettings(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.h index cafafc16e4..7ff2711d4e 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTimeSettings.h @@ -5,6 +5,10 @@ class SetTimeSettings : public ZRoomCommand { public: + uint8_t hour; + uint8_t min; + uint8_t unk; + SetTimeSettings(ZFile* nParent); void ParseRawData() override; @@ -13,9 +17,4 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - uint8_t hour; - uint8_t min; - uint8_t unk; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.cpp index 9d70e6d7b2..a33d1c6e1c 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.cpp @@ -1,8 +1,8 @@ #include "SetTransitionActorList.h" -#include "BitConverter.h" #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" #include "ZRoom/ZNames.h" #include "ZRoom/ZRoom.h" @@ -28,7 +28,7 @@ void SetTransitionActorList::ParseRawData() void SetTransitionActorList::DeclareReferences(const std::string& prefix) { - std::string declaration = ""; + std::string declaration; size_t index = 0; for (const auto& entry : transitionActors) @@ -43,24 +43,20 @@ void SetTransitionActorList::DeclareReferences(const std::string& prefix) } parent->AddDeclarationArray( - segmentOffset, DeclarationAlignment::None, transitionActors.size() * 16, + segmentOffset, DeclarationAlignment::Align4, transitionActors.size() * 16, "TransitionActorEntry", - StringHelper::Sprintf("%sTransitionActorList_%06X", prefix.c_str(), segmentOffset), 0, - declaration); + StringHelper::Sprintf("%sTransitionActorList_%06X", prefix.c_str(), segmentOffset), + transitionActors.size(), declaration); } std::string SetTransitionActorList::GetBodySourceCode() const { - std::string listName = parent->GetDeclarationPtrName(cmdArg2); + std::string listName; + Globals::Instance->GetSegmentedPtrName(cmdArg2, parent, "TransitionActorEntry", listName); return StringHelper::Sprintf("SCENE_CMD_TRANSITION_ACTOR_LIST(%i, %s)", transitionActors.size(), listName.c_str()); } -size_t SetTransitionActorList::GetRawDataSize() const -{ - return ZRoomCommand::GetRawDataSize() + (transitionActors.size() * 16); -} - std::string SetTransitionActorList::GetCommandCName() const { return "SCmdTransiActorList"; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.h index dba7a80e8c..a5ce2e66fd 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetTransitionActorList.h @@ -5,11 +5,6 @@ class TransitionActorEntry { public: - TransitionActorEntry(const std::vector& rawData, int rawDataIndex); - - std::string GetBodySourceCode() const; - -protected: uint8_t frontObjectRoom; uint8_t frontTransitionReaction; uint8_t backObjectRoom; @@ -18,11 +13,17 @@ protected: int16_t posX, posY, posZ; int16_t rotY; uint16_t initVar; + + TransitionActorEntry(const std::vector& rawData, int rawDataIndex); + + std::string GetBodySourceCode() const; }; class SetTransitionActorList : public ZRoomCommand { public: + std::vector transitionActors; + SetTransitionActorList(ZFile* nParent); void ParseRawData() override; @@ -31,9 +32,5 @@ public: std::string GetBodySourceCode() const override; RoomCommand GetRoomCommand() const override; - size_t GetRawDataSize() const override; std::string GetCommandCName() const override; - -private: - std::vector transitionActors; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.cpp index 3b50c811f1..1893b56018 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.cpp @@ -1,5 +1,5 @@ #include "SetWind.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetWind::SetWind(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.h b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.h index 8e00b4fd8d..05eaafeda8 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.h +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWind.h @@ -5,6 +5,11 @@ class SetWind : public ZRoomCommand { public: + uint8_t windWest; + uint8_t windVertical; + uint8_t windSouth; + uint8_t clothFlappingStrength; + SetWind(ZFile* nParent); void ParseRawData() override; @@ -13,10 +18,4 @@ public: std::string GetCommandCName() const override; RoomCommand GetRoomCommand() const override; - -private: - uint8_t windWest; - uint8_t windVertical; - uint8_t windSouth; - uint8_t clothFlappingStrength; }; diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWorldMapVisited.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWorldMapVisited.cpp index 4420c9d4fe..d20e4a3e29 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/SetWorldMapVisited.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/SetWorldMapVisited.cpp @@ -1,6 +1,6 @@ #include "SetWorldMapVisited.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" SetWorldMapVisited::SetWorldMapVisited(ZFile* nParent) : ZRoomCommand(nParent) { diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/Unused09.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/Unused09.cpp index 69db353a49..9dfcaa5c23 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/Unused09.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/Unused09.cpp @@ -1,5 +1,5 @@ #include "Unused09.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" Unused09::Unused09(ZFile* nParent) : ZRoomCommand(nParent) { @@ -7,12 +7,12 @@ Unused09::Unused09(ZFile* nParent) : ZRoomCommand(nParent) std::string Unused09::GetBodySourceCode() const { - return StringHelper::Sprintf("{ %s, 0x00, 0x00 }", GetCommandHex().c_str()); + return "SCENE_CMD_UNK_09()"; } std::string Unused09::GetCommandCName() const { - return "SCmdBase"; + return "SceneCmd"; } RoomCommand Unused09::GetRoomCommand() const diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/Unused1D.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/Unused1D.cpp index 14ac6e410a..b8ea13652f 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/Unused1D.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/Unused1D.cpp @@ -1,5 +1,5 @@ #include "Unused1D.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" Unused1D::Unused1D(ZFile* nParent) : ZRoomCommand(nParent) { @@ -12,7 +12,7 @@ std::string Unused1D::GetBodySourceCode() const std::string Unused1D::GetCommandCName() const { - return "SCmdBase"; + return "SceneCmd"; } RoomCommand Unused1D::GetRoomCommand() const diff --git a/tools/ZAPD/ZAPD/ZRoom/Commands/ZRoomCommandUnk.cpp b/tools/ZAPD/ZAPD/ZRoom/Commands/ZRoomCommandUnk.cpp index 3f35c13182..a892086c2a 100644 --- a/tools/ZAPD/ZAPD/ZRoom/Commands/ZRoomCommandUnk.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/Commands/ZRoomCommandUnk.cpp @@ -1,6 +1,6 @@ #include "ZRoomCommandUnk.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZRoom/ZRoom.h" ZRoomCommandUnk::ZRoomCommandUnk(ZFile* nParent) : ZRoomCommand(nParent) diff --git a/tools/ZAPD/ZAPD/ZRoom/ZNames.h b/tools/ZAPD/ZAPD/ZRoom/ZNames.h index bee03869e0..94e08de0d2 100644 --- a/tools/ZAPD/ZAPD/ZRoom/ZNames.h +++ b/tools/ZAPD/ZAPD/ZRoom/ZNames.h @@ -3,7 +3,7 @@ #include #include "Globals.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" class ZNames { @@ -29,7 +29,7 @@ public: { int32_t flags = id & 0xF000; id &= 0xFFF; - std::string name = ""; + std::string name; if (id < ZNames::GetNumActors()) name = Globals::Instance->cfg.actorList.at(id); else diff --git a/tools/ZAPD/ZAPD/ZRoom/ZRoom.cpp b/tools/ZAPD/ZAPD/ZRoom/ZRoom.cpp index 32dad6106f..edc0cad029 100644 --- a/tools/ZAPD/ZAPD/ZRoom/ZRoom.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/ZRoom.cpp @@ -1,11 +1,8 @@ #include "ZRoom.h" -#include #include +#include #include -#include "../File.h" -#include "../Globals.h" -#include "../StringHelper.h" -#include "../ZBlob.h" +#include #include "Commands/EndMarker.h" #include "Commands/SetActorCutsceneList.h" #include "Commands/SetActorList.h" @@ -39,13 +36,17 @@ #include "Commands/Unused09.h" #include "Commands/Unused1D.h" #include "Commands/ZRoomCommandUnk.h" +#include "Globals.h" +#include "Utils/File.h" +#include "Utils/Path.h" +#include "Utils/StringHelper.h" +#include "ZBlob.h" #include "ZCutscene.h" #include "ZFile.h" -using namespace tinyxml2; - REGISTER_ZFILENODE(Room, ZRoom); REGISTER_ZFILENODE(Scene, ZRoom); +REGISTER_ZFILENODE(AltHeader, ZRoom); ZRoom::ZRoom(ZFile* nParent) : ZResource(nParent) { @@ -64,122 +65,84 @@ void ZRoom::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) { ZResource::ExtractFromXML(reader, nRawDataIndex); - scene = Globals::Instance->lastScene; - - if (std::string(reader->Name()) == "Scene") - { - scene = this; - Globals::Instance->lastScene = this; - } - - uint32_t cmdCount = UINT32_MAX; - - if (name == "syotes_room_0") + if (hackMode == "syotes_room") { SyotesRoomHack(); - cmdCount = 0; } - - for (XMLElement* child = reader->FirstChildElement(); child != nullptr; - child = child->NextSiblingElement()) + else { - std::string childName = - child->Attribute("Name") == NULL ? "" : std::string(child->Attribute("Name")); - std::string childComment = child->Attribute("Comment") == NULL ? - "" : - "// " + std::string(child->Attribute("Comment")) + "\n"; - - // TODO: Bunch of repeated code between all of these that needs to be combined. - if (std::string(child->Name()) == "DListHint") - { - std::string addressStr = child->Attribute("Offset"); - int32_t address = strtol(StringHelper::Split(addressStr, "0x")[1].c_str(), NULL, 16); - - ZDisplayList* dList = new ZDisplayList( - address, - ZDisplayList::GetDListLength(parent->GetRawData(), address, - Globals::Instance->game == ZGame::OOT_SW97 ? - DListType::F3DEX : - DListType::F3DZEX), - parent); - dList->SetInnerNode(true); - - dList->GetSourceOutputCode(name); - delete dList; - } - else if (std::string(child->Name()) == "CutsceneHint") - { - std::string addressStr = child->Attribute("Offset"); - int32_t address = strtol(StringHelper::Split(addressStr, "0x")[1].c_str(), NULL, 16); - - ZCutscene* cutscene = new ZCutscene(parent); - cutscene->SetInnerNode(true); - cutscene->ExtractFromXML(child, address); - - cutscene->GetSourceOutputCode(name); - - delete cutscene; - } - else if (std::string(child->Name()) == "AltHeaderHint") - { - std::string addressStr = child->Attribute("Offset"); - int32_t address = strtol(StringHelper::Split(addressStr, "0x")[1].c_str(), NULL, 16); - - uint32_t commandsCount = UINT32_MAX; - - if (child->FindAttribute("Count") != NULL) - { - std::string commandCountStr = child->Attribute("Count"); - commandsCount = strtol(commandCountStr.c_str(), NULL, 10); - } - - commandSets.push_back(CommandSet(address, commandsCount)); - } - else if (std::string(child->Name()) == "PathHint") - { - std::string addressStr = child->Attribute("Offset"); - int32_t address = strtol(StringHelper::Split(addressStr, "0x")[1].c_str(), NULL, 16); - - // TODO: add this to command set - ZPath* pathway = new ZPath(parent); - pathway->SetInnerNode(true); - pathway->SetRawDataIndex(address); - pathway->ParseRawData(); - pathway->DeclareReferences(name); - pathway->GetSourceOutputCode(name); - - delete pathway; - } - -#ifdef DEPRECATION_ON - fprintf(stderr, - "ZRoom::ExtractFromXML: Deprecation warning in '%s'.\n" - "\t The resource '%s' is currently deprecated, and will be removed in a future " - "version.\n" - "\t Use the non-hint version instead.\n", - name.c_str(), child->Name()); -#endif + DeclareVar(name, ""); } - - commandSets.push_back(CommandSet(rawDataIndex, cmdCount)); - ProcessCommandSets(); } -void ZRoom::ParseCommands(std::vector& commandList, CommandSet commandSet) +void ZRoom::ExtractFromBinary(uint32_t nRawDataIndex, ZResourceType parentType) { + rawDataIndex = nRawDataIndex; + name = GetDefaultName(parent->GetName()); + + zroomType = ZResourceType::AltHeader; + switch (parentType) + { + case ZResourceType::Scene: + case ZResourceType::Room: + case ZResourceType::AltHeader: + parentZroomType = parentType; + break; + + default: + // TODO: error message or something + assert(false); + break; + } + + ParseRawData(); + DeclareVar(name, ""); +} + +void ZRoom::ParseXML(tinyxml2::XMLElement* reader) +{ + ZResource::ParseXML(reader); + + // TODO: HACK: remove this specific check when the repo uses the correct HackMode="syotes_room" + if (name == "syotes_room_0") + { + hackMode = "syotes_room"; + } + + std::string nodeName = std::string(reader->Name()); + if (nodeName == "Scene") + { + zroomType = ZResourceType::Scene; + } + else if (nodeName == "Room") + zroomType = ZResourceType::Room; + else if (nodeName == "AltHeader") + zroomType = ZResourceType::AltHeader; + + if (reader->Attribute("HackMode") != nullptr) + { + hackMode = std::string(reader->Attribute("HackMode")); + if (hackMode != "syotes_room") + throw std::runtime_error( + StringHelper::Sprintf("ZRoom::ParseXML: Fatal error in '%s'.\n" + "\t Invalid value for attribute 'HackMode': '%s'\n", + name.c_str(), hackMode.c_str())); + } +} + +void ZRoom::ParseRawData() +{ + if (hackMode == "syotes_room") + return; + bool shouldContinue = true; uint32_t currentIndex = 0; - uint32_t rawDataIndex = GETSEGOFFSET(commandSet.address); - - uint32_t commandsLeft = commandSet.commandCount; + uint32_t currentPtr = rawDataIndex; const auto& rawData = parent->GetRawData(); while (shouldContinue) { - if (commandsLeft <= 0) - break; - - RoomCommand opcode = static_cast(rawData.at(rawDataIndex)); + RoomCommand opcode = static_cast(rawData.at(currentPtr)); ZRoomCommand* cmd = nullptr; @@ -287,8 +250,8 @@ void ZRoom::ParseCommands(std::vector& commandList, CommandSet co cmd = new ZRoomCommandUnk(parent); } - cmd->ExtractCommandFromRoom(this, rawDataIndex); - cmd->DeclareReferences(GetName()); + cmd->commandSet = rawDataIndex; + cmd->ExtractCommandFromRoom(this, currentPtr); if (Globals::Instance->profile) { @@ -300,74 +263,82 @@ void ZRoom::ParseCommands(std::vector& commandList, CommandSet co cmd->cmdIndex = currentIndex; - commandList.push_back(cmd); + commands.push_back(cmd); if (opcode == RoomCommand::EndMarker) shouldContinue = false; - rawDataIndex += 8; + currentPtr += 8; currentIndex++; - - commandsLeft--; } } -void ZRoom::ProcessCommandSets() +void ZRoom::DeclareReferences(const std::string& prefix) { - while (commandSets.size() > 0) + for (auto& cmd : commands) + cmd->DeclareReferences(prefix); +} + +void ZRoom::ParseRawDataLate() +{ + for (auto& cmd : commands) + cmd->ParseRawDataLate(); +} + +void ZRoom::DeclareReferencesLate(const std::string& prefix) +{ + for (auto& cmd : commands) + cmd->DeclareReferencesLate(prefix); +} + +Declaration* ZRoom::DeclareVar(const std::string& prefix, const std::string& body) +{ + std::string auxName = name; + if (auxName == "") + auxName = GetDefaultName(prefix); + if (zroomType == ZResourceType::Scene || zroomType == ZResourceType::Room) + auxName = StringHelper::Sprintf("%sCommands", name.c_str()); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, commands.size(), body); + decl->staticConf = staticConf; + return decl; +} + +std::string ZRoom::GetBodySourceCode() const +{ + std::string declaration; + + for (size_t i = 0; i < commands.size(); i++) { - std::vector setCommands = std::vector(); + ZRoomCommand* cmd = commands[i]; + declaration += StringHelper::Sprintf("\t%s,", cmd->GetBodySourceCode().c_str()); - int32_t commandSet = commandSets[0].address; - ParseCommands(setCommands, commandSets[0]); - commandSets.erase(commandSets.begin()); - - for (auto& cmd : setCommands) - { - cmd->ParseRawDataLate(); - cmd->DeclareReferencesLate(name); - } - - if (!setCommands.empty()) - { - std::string declaration = ""; - - for (size_t i = 0; i < setCommands.size(); i++) - { - ZRoomCommand* cmd = setCommands[i]; - cmd->commandSet = GETSEGOFFSET(commandSet); - declaration += StringHelper::Sprintf("\t%s,", cmd->GetBodySourceCode().c_str()); - - if (i + 1 < setCommands.size()) - declaration += "\n"; - } - - parent->AddDeclarationArray( - GETSEGOFFSET(commandSet), DeclarationAlignment::Align16, 8 * setCommands.size(), - "static SCmdBase", - StringHelper::Sprintf("%sSet%04X", name.c_str(), GETSEGOFFSET(commandSet)), - setCommands.size(), declaration); - - sourceOutput += "\n"; - - for (ZRoomCommand* cmd : setCommands) - commands.push_back(cmd); - } + if (i + 1 < commands.size()) + declaration += "\n"; } + + return declaration; +} + +std::string ZRoom::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sSet_%06X", prefix.c_str(), rawDataIndex); } /* - * There is one room in Ocarina of Time that lacks a header. Room 120, "Syotes", dates back to very - * early in the game's development. Since this room is a special case, this hack adds back a header - * so that the room can be processed properly. + * There is one room in Ocarina of Time that lacks a header. Room 120, "Syotes", dates + * back to very early in the game's development. Since this room is a special case, + * declare automatically the data its contains whitout the need of a header. */ void ZRoom::SyotesRoomHack() { - PolygonType2 poly(parent, parent->GetRawData(), 0, this); + PolygonType2 poly(parent, 0, this); poly.ParseRawData(); poly.DeclareReferences(GetName()); - parent->AddDeclaration(0, DeclarationAlignment::Align4, poly.GetRawDataSize(), + parent->AddDeclaration(0, poly.GetDeclarationAlignment(), poly.GetRawDataSize(), poly.GetSourceTypeName(), poly.GetDefaultName(GetName()), poly.GetBodySourceCode()); } @@ -421,26 +392,14 @@ size_t ZRoom::GetCommandSizeFromNeighbor(ZRoomCommand* cmd) return 0; } -std::string ZRoom::GetSourceOutputHeader(const std::string& prefix) +std::string ZRoom::GetSourceOutputCode([[maybe_unused]] const std::string& prefix) { - return "\n" + extDefines + "\n\n"; -} + if (hackMode == "syotes_room") + return ""; -std::string ZRoom::GetSourceOutputCode(const std::string& prefix) -{ - sourceOutput = ""; + DeclareVar(prefix, GetBodySourceCode()); - sourceOutput += "#include \"segment_symbols.h\"\n"; - sourceOutput += "#include \"command_macros_base.h\"\n"; - sourceOutput += "#include \"z64cutscene_commands.h\"\n"; - sourceOutput += "#include \"variables.h\"\n"; - - if (scene != nullptr) - sourceOutput += scene->parent->GetHeaderInclude(); - - ProcessCommandSets(); - - return sourceOutput; + return ""; } size_t ZRoom::GetRawDataSize() const @@ -453,21 +412,14 @@ size_t ZRoom::GetRawDataSize() const return size; } +std::string ZRoom::GetSourceTypeName() const +{ + return "SceneCmd"; +} + ZResourceType ZRoom::GetResourceType() const { - return ZResourceType::Room; -} - -void ZRoom::PreGenSourceFiles() -{ - for (ZRoomCommand* cmd : commands) - cmd->PreGenSourceFiles(); -} - -/* CommandSet */ - -CommandSet::CommandSet(uint32_t nAddress, uint32_t nCommandCount) -{ - address = nAddress; - commandCount = nCommandCount; + assert(zroomType == ZResourceType::Scene || zroomType == ZResourceType::Room || + zroomType == ZResourceType::AltHeader); + return zroomType; } diff --git a/tools/ZAPD/ZAPD/ZRoom/ZRoom.h b/tools/ZAPD/ZAPD/ZRoom/ZRoom.h index 518ca82bb8..0993a9d302 100644 --- a/tools/ZAPD/ZAPD/ZRoom/ZRoom.h +++ b/tools/ZAPD/ZAPD/ZRoom/ZRoom.h @@ -8,42 +8,43 @@ #include "ZRoomCommand.h" #include "tinyxml2.h" -struct CommandSet -{ - uint32_t address; - uint32_t commandCount; // Only used if explicitly specified in the XML - - CommandSet(uint32_t nAddress, uint32_t nCommandCount = UINT32_MAX); -}; - class ZRoom : public ZResource { -protected: - std::vector commands; - - std::string GetSourceOutputHeader(const std::string& prefix) override; - std::string GetSourceOutputCode(const std::string& prefix) override; - void ProcessCommandSets(); - void SyotesRoomHack(); - public: - ZRoom* scene; - std::vector commandSets; + std::vector commands; int32_t roomCount; // Only valid for scenes - std::string extDefines; + std::string hackMode; + + ZResourceType zroomType = ZResourceType::Error; + ZResourceType parentZroomType = ZResourceType::Error; ZRoom(ZFile* nParent); virtual ~ZRoom(); void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; + void ExtractFromBinary(uint32_t nRawDataIndex, ZResourceType parentType); - void ParseCommands(std::vector& commandList, CommandSet commandSet); + void ParseXML(tinyxml2::XMLElement* reader) override; + void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + void ParseRawDataLate() override; + void DeclareReferencesLate(const std::string& prefix) override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& body) override; + std::string GetBodySourceCode() const override; + + std::string GetSourceOutputCode(const std::string& prefix) override; + + std::string GetDefaultName(const std::string& prefix) const override; size_t GetDeclarationSizeFromNeighbor(uint32_t declarationAddress); size_t GetCommandSizeFromNeighbor(ZRoomCommand* cmd); ZRoomCommand* FindCommandOfType(RoomCommand cmdType); size_t GetRawDataSize() const override; + std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; - void PreGenSourceFiles() override; + +protected: + void SyotesRoomHack(); }; diff --git a/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.cpp b/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.cpp index 6c45c32c65..711c86a409 100644 --- a/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.cpp +++ b/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.cpp @@ -1,7 +1,7 @@ #include "ZRoomCommand.h" -#include "BitConverter.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZRoom.h" ZRoomCommand::ZRoomCommand(ZFile* nParent) : ZResource(nParent) @@ -24,25 +24,12 @@ void ZRoomCommand::ParseRawData() cmdArg1 = parentRawData.at(rawDataIndex + 1); cmdArg2 = BitConverter::ToUInt32BE(parentRawData, rawDataIndex + 4); - segmentOffset = GETSEGOFFSET(cmdArg2); + segmentOffset = Seg2Filespace(cmdArg2, parent->baseAddress); } -void ZRoomCommand::ParseRawDataLate() +RoomCommand ZRoomCommand::GetRoomCommand() const { -} - -void ZRoomCommand::DeclareReferencesLate(const std::string& prefix) -{ -} - -std::string ZRoomCommand::GetCommandCName() const -{ - return "SCmdBase"; -} - -ZResourceType ZRoomCommand::GetResourceType() const -{ - return ZResourceType::RoomCommand; + return RoomCommand::Error; } size_t ZRoomCommand::GetRawDataSize() const @@ -50,6 +37,21 @@ size_t ZRoomCommand::GetRawDataSize() const return 0x08; } +std::string ZRoomCommand::GetSourceTypeName() const +{ + return GetCommandCName(); +} + +ZResourceType ZRoomCommand::GetResourceType() const +{ + return ZResourceType::RoomCommand; +} + +std::string ZRoomCommand::GetCommandCName() const +{ + return "SceneCmd"; +} + std::string ZRoomCommand::GetCommandHex() const { return StringHelper::Sprintf("0x%02X", static_cast(cmdID)); diff --git a/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.h b/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.h index e428704fd0..e4029984c9 100644 --- a/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.h +++ b/tools/ZAPD/ZAPD/ZRoom/ZRoomCommand.h @@ -56,6 +56,8 @@ public: int32_t cmdAddress; uint32_t cmdIndex; uint32_t commandSet; + RoomCommand cmdID; + offset_t segmentOffset; ZRoomCommand(ZFile* nParent); virtual ~ZRoomCommand() = default; @@ -64,16 +66,12 @@ public: void ParseRawData() override; - virtual void ParseRawDataLate(); - virtual void DeclareReferencesLate(const std::string& prefix); - - virtual std::string GetBodySourceCode() const = 0; - + std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; // Getters/Setters virtual RoomCommand GetRoomCommand() const = 0; - size_t GetRawDataSize() const override; + size_t GetRawDataSize() const final override; virtual std::string GetCommandCName() const; virtual std::string GetCommandHex() const; @@ -81,8 +79,6 @@ public: protected: ZRoom* zRoom; - RoomCommand cmdID; uint8_t cmdArg1; segptr_t cmdArg2; - uint32_t segmentOffset; }; diff --git a/tools/ZAPD/ZAPD/ZScalar.cpp b/tools/ZAPD/ZAPD/ZScalar.cpp index 2f631acd44..062fb0e079 100644 --- a/tools/ZAPD/ZAPD/ZScalar.cpp +++ b/tools/ZAPD/ZAPD/ZScalar.cpp @@ -1,8 +1,9 @@ #include "ZScalar.h" -#include "BitConverter.h" -#include "File.h" + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Scalar, ZScalar); @@ -14,9 +15,16 @@ ZScalar::ZScalar(ZFile* nParent) : ZResource(nParent) RegisterRequiredAttribute("Type"); } -ZScalar::ZScalar(const ZScalarType scalarType, ZFile* nParent) : ZScalar(nParent) +void ZScalar::ExtractFromBinary(uint32_t nRawDataIndex, ZScalarType nScalarType) { - this->scalarType = scalarType; + rawDataIndex = nRawDataIndex; + scalarType = nScalarType; + + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; + + ParseRawData(); } void ZScalar::ParseXML(tinyxml2::XMLElement* reader) @@ -247,15 +255,6 @@ std::string ZScalar::GetBodySourceCode() const } } -std::string ZScalar::GetSourceOutputCode(const std::string& prefix) -{ - if (parent != nullptr) - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), GetName(), GetBodySourceCode()); - - return ""; -} - ZResourceType ZScalar::GetResourceType() const { return ZResourceType::Scalar; @@ -265,3 +264,16 @@ bool ZScalar::DoesSupportArray() const { return true; } + +DeclarationAlignment ZScalar::GetDeclarationAlignment() const +{ + switch (scalarType) + { + case ZScalarType::ZSCALAR_S64: + case ZScalarType::ZSCALAR_U64: + case ZScalarType::ZSCALAR_F64: + return DeclarationAlignment::Align8; + default: + return DeclarationAlignment::Align4; + } +} diff --git a/tools/ZAPD/ZAPD/ZScalar.h b/tools/ZAPD/ZAPD/ZScalar.h index ca2082756b..d269995cca 100644 --- a/tools/ZAPD/ZAPD/ZScalar.h +++ b/tools/ZAPD/ZAPD/ZScalar.h @@ -44,25 +44,25 @@ class ZScalar : public ZResource friend class ZVector; public: + ZScalarData scalarData; + ZScalarType scalarType; + ZScalar(ZFile* nParent); - ZScalar(const ZScalarType scalarType, ZFile* nParent); + + void ExtractFromBinary(uint32_t nRawDataIndex, ZScalarType nScalarType); void ParseRawData() override; void ParseXML(tinyxml2::XMLElement* reader) override; std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; bool DoesSupportArray() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; size_t GetRawDataSize() const override; + DeclarationAlignment GetDeclarationAlignment() const override; static size_t MapTypeToSize(const ZScalarType scalarType); static ZScalarType MapOutputTypeToScalarType(const std::string& type); static std::string MapScalarTypeToOutputType(const ZScalarType scalarType); - -protected: - ZScalarData scalarData; - ZScalarType scalarType; }; diff --git a/tools/ZAPD/ZAPD/ZSkeleton.cpp b/tools/ZAPD/ZAPD/ZSkeleton.cpp index 3e530a14fd..ebdf6455e6 100644 --- a/tools/ZAPD/ZAPD/ZSkeleton.cpp +++ b/tools/ZAPD/ZAPD/ZSkeleton.cpp @@ -1,9 +1,10 @@ #include "ZSkeleton.h" #include -#include "BitConverter.h" -#include "HighLevel/HLModelIntermediette.h" -#include "StringHelper.h" + +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" REGISTER_ZFILENODE(Skeleton, ZSkeleton); REGISTER_ZFILENODE(LimbTable, ZLimbTable); @@ -14,14 +15,6 @@ ZSkeleton::ZSkeleton(ZFile* nParent) : ZResource(nParent), limbsTable(nParent) RegisterRequiredAttribute("LimbType"); } -void ZSkeleton::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), name, ""); -} - void ZSkeleton::ParseXML(tinyxml2::XMLElement* reader) { ZResource::ParseXML(reader); @@ -34,24 +27,18 @@ void ZSkeleton::ParseXML(tinyxml2::XMLElement* reader) type = ZSkeletonType::Curve; else if (skelTypeXml != "Normal") { - fprintf(stderr, - "ZSkeleton::ParseXML: Warning in '%s'.\n" - "\t Invalid Type found: '%s'.\n" - "\t Defaulting to 'Normal'.\n", - name.c_str(), skelTypeXml.c_str()); - type = ZSkeletonType::Normal; + throw std::runtime_error(StringHelper::Sprintf("ZSkeleton::ParseXML: Error in '%s'.\n" + "\t Invalid Type found: '%s'.\n", + name.c_str(), skelTypeXml.c_str())); } std::string limbTypeXml = registeredAttributes.at("LimbType").value; limbType = ZLimb::GetTypeByAttributeName(limbTypeXml); if (limbType == ZLimbType::Invalid) { - fprintf(stderr, - "ZSkeleton::ParseXML: Warning in '%s'.\n" - "\t Invalid LimbType found: '%s'.\n" - "\t Defaulting to 'Standard'.\n", - name.c_str(), limbTypeXml.c_str()); - limbType = ZLimbType::Standard; + throw std::runtime_error(StringHelper::Sprintf("ZSkeleton::ParseXML: Error in '%s'.\n" + "\t Invalid LimbType found: '%s'.\n", + name.c_str(), limbTypeXml.c_str())); } } @@ -77,6 +64,8 @@ void ZSkeleton::DeclareReferences(const std::string& prefix) if (defaultPrefix == "") defaultPrefix = prefix; + ZResource::DeclareReferences(defaultPrefix); + if (limbsArrayAddress != 0 && GETSEGNUM(limbsArrayAddress) == parent->segment) { uint32_t ptr = Seg2Filespace(limbsArrayAddress, parent->baseAddress); @@ -91,29 +80,22 @@ void ZSkeleton::DeclareReferences(const std::string& prefix) std::string ZSkeleton::GetBodySourceCode() const { - std::string limbTableName = parent->GetDeclarationPtrName(limbsArrayAddress); + std::string limbArrayName; + Globals::Instance->GetSegmentedPtrName(limbsArrayAddress, parent, "", limbArrayName); - std::string headerStr; switch (type) { case ZSkeletonType::Normal: case ZSkeletonType::Curve: - headerStr = StringHelper::Sprintf("\n\t%s, %i\n", limbTableName.c_str(), limbCount); - break; + return StringHelper::Sprintf("\n\t%s, %i\n", limbArrayName.c_str(), limbCount); + case ZSkeletonType::Flex: - headerStr = StringHelper::Sprintf("\n\t{ %s, %i }, %i\n", limbTableName.c_str(), limbCount, - dListCount); - break; + return StringHelper::Sprintf("\n\t{ %s, %i }, %i\n", limbArrayName.c_str(), limbCount, + dListCount); } - return headerStr; -} - -void ZSkeleton::GenerateHLIntermediette(HLFileIntermediette& hlFile) -{ - HLModelIntermediette* mdl = (HLModelIntermediette*)&hlFile; - HLModelIntermediette::FromZSkeleton(mdl, this); - mdl->blocks.push_back(new HLTerminator()); + // TODO: Throw exception? + return "ERROR"; } size_t ZSkeleton::GetRawDataSize() const @@ -129,25 +111,6 @@ size_t ZSkeleton::GetRawDataSize() const } } -std::string ZSkeleton::GetSourceOutputCode(const std::string& prefix) -{ - std::string headerStr = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(GetAddress()); - - if (decl == nullptr) - { - parent->AddDeclaration(GetAddress(), DeclarationAlignment::Align16, GetRawDataSize(), - GetSourceTypeName(), name, headerStr); - } - else - { - decl->text = headerStr; - } - - return ""; -} - std::string ZSkeleton::GetSourceTypeName() const { switch (type) @@ -168,9 +131,9 @@ ZResourceType ZSkeleton::GetResourceType() const return ZResourceType::Skeleton; } -segptr_t ZSkeleton::GetAddress() +DeclarationAlignment ZSkeleton::GetDeclarationAlignment() const { - return rawDataIndex; + return DeclarationAlignment::Align16; } uint8_t ZSkeleton::GetLimbCount() @@ -186,14 +149,6 @@ ZLimbTable::ZLimbTable(ZFile* nParent) : ZResource(nParent) RegisterRequiredAttribute("Count"); } -void ZLimbTable::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), name, limbsAddresses.size(), ""); -} - void ZLimbTable::ExtractFromBinary(uint32_t nRawDataIndex, ZLimbType nLimbType, size_t nCount) { rawDataIndex = nRawDataIndex; @@ -237,9 +192,9 @@ void ZLimbTable::ParseRawData() void ZLimbTable::DeclareReferences(const std::string& prefix) { - std::string varPrefix = prefix; - if (name != "") - varPrefix = name; + std::string varPrefix = name; + if (varPrefix == "") + varPrefix = prefix; ZResource::DeclareReferences(varPrefix); @@ -252,22 +207,39 @@ void ZLimbTable::DeclareReferences(const std::string& prefix) uint32_t limbOffset = Seg2Filespace(limbAddress, parent->baseAddress); if (!parent->HasDeclaration(limbOffset)) { - ZLimb* limb = new ZLimb(limbType, varPrefix, limbOffset, parent); + ZLimb* limb = new ZLimb(parent); + limb->ExtractFromBinary(limbOffset, limbType); + limb->SetName(limb->GetDefaultName(varPrefix)); + limb->DeclareVar(varPrefix, ""); limb->DeclareReferences(varPrefix); - limb->GetSourceOutputCode(varPrefix); parent->AddResource(limb); } } } } +Declaration* ZLimbTable::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, limbsAddresses.size(), bodyStr); + decl->staticConf = staticConf; + return decl; +} + std::string ZLimbTable::GetBodySourceCode() const { - std::string body = ""; + std::string body; for (size_t i = 0; i < count; i++) { - std::string limbName = parent->GetDeclarationPtrName(limbsAddresses[i]); + std::string limbName; + Globals::Instance->GetSegmentedPtrName(limbsAddresses[i], parent, "", limbName); body += StringHelper::Sprintf("\t%s,", limbName.c_str()); if (i + 1 < count) @@ -277,20 +249,6 @@ std::string ZLimbTable::GetBodySourceCode() const return body; } -std::string ZLimbTable::GetSourceOutputCode(const std::string& prefix) -{ - std::string body = GetBodySourceCode(); - - Declaration* decl = parent->GetDeclaration(rawDataIndex); - if (decl == nullptr || decl->isPlaceholder) - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::Align4, GetRawDataSize(), - GetSourceTypeName(), name, limbsAddresses.size(), body); - else - decl->text = body; - - return ""; -} - std::string ZLimbTable::GetSourceTypeName() const { switch (limbType) @@ -305,6 +263,7 @@ std::string ZLimbTable::GetSourceTypeName() const return StringHelper::Sprintf("%s*", ZLimb::GetSourceTypeName(limbType)); case ZLimbType::Invalid: + // TODO: Proper error message or something. assert("Invalid limb type.\n"); } diff --git a/tools/ZAPD/ZAPD/ZSkeleton.h b/tools/ZAPD/ZAPD/ZSkeleton.h index 29720fcb9c..ed003ceafd 100644 --- a/tools/ZAPD/ZAPD/ZSkeleton.h +++ b/tools/ZAPD/ZAPD/ZSkeleton.h @@ -20,15 +20,15 @@ class ZLimbTable : public ZResource public: ZLimbTable(ZFile* nParent); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; void ExtractFromBinary(uint32_t nRawDataIndex, ZLimbType nLimbType, size_t nCount); void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; - std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + + std::string GetBodySourceCode() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; @@ -53,22 +53,18 @@ public: ZSkeleton(ZFile* nParent); - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; + std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; - void GenerateHLIntermediette(HLFileIntermediette& hlFile) override; - - size_t GetRawDataSize() const override; - std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; - segptr_t GetAddress(); + size_t GetRawDataSize() const override; + DeclarationAlignment GetDeclarationAlignment() const override; + uint8_t GetLimbCount(); protected: diff --git a/tools/ZAPD/ZAPD/ZString.cpp b/tools/ZAPD/ZAPD/ZString.cpp index 50545dafcb..965d4d6360 100644 --- a/tools/ZAPD/ZAPD/ZString.cpp +++ b/tools/ZAPD/ZAPD/ZString.cpp @@ -1,7 +1,7 @@ #include "ZString.h" -#include "File.h" -#include "StringHelper.h" +#include "Utils/File.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(String, ZString); @@ -29,20 +29,26 @@ void ZString::ParseRawData() strData.assign(dataStart, dataStart + size); } +Declaration* ZString::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, 0, bodyStr); + decl->staticConf = staticConf; + return decl; +} + std::string ZString::GetBodySourceCode() const { return StringHelper::Sprintf("\t\"%s\"", strData.data()); } -std::string ZString::GetSourceOutputCode(const std::string& prefix) -{ - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), name, 0, GetBodySourceCode()); - - return ""; -} - -std::string ZString::GetSourceOutputHeader(const std::string& prefix) +std::string ZString::GetSourceOutputHeader([[maybe_unused]] const std::string& prefix) { return StringHelper::Sprintf("#define %s_macro \"%s\"", name.c_str(), strData.data()); } diff --git a/tools/ZAPD/ZAPD/ZString.h b/tools/ZAPD/ZAPD/ZString.h index 3c0c2905a1..6c58ebdcb5 100644 --- a/tools/ZAPD/ZAPD/ZString.h +++ b/tools/ZAPD/ZAPD/ZString.h @@ -9,8 +9,9 @@ public: ZString(ZFile* nParent); void ParseRawData() override; - std::string GetBodySourceCode() const; - std::string GetSourceOutputCode(const std::string& prefix) override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; std::string GetSourceOutputHeader(const std::string& prefix) override; std::string GetSourceTypeName() const override; diff --git a/tools/ZAPD/ZAPD/ZSymbol.cpp b/tools/ZAPD/ZAPD/ZSymbol.cpp index 25a1e49581..b24c3de4b0 100644 --- a/tools/ZAPD/ZAPD/ZSymbol.cpp +++ b/tools/ZAPD/ZAPD/ZSymbol.cpp @@ -1,5 +1,6 @@ #include "ZSymbol.h" -#include "StringHelper.h" + +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Symbol, ZSymbol); @@ -54,6 +55,18 @@ void ZSymbol::ParseXML(tinyxml2::XMLElement* reader) if (countXml != "") count = StringHelper::StrToL(countXml, 0); } + + if (registeredAttributes.at("Static").value == "On") + { + fprintf(stderr, "A can't be marked as static.\n\t Disabling static\n"); + } + staticConf = StaticConfig::Off; +} + +Declaration* ZSymbol::DeclareVar([[maybe_unused]] const std::string& prefix, + [[maybe_unused]] const std::string& bodyStr) +{ + return nullptr; } size_t ZSymbol::GetRawDataSize() const @@ -64,19 +77,17 @@ size_t ZSymbol::GetRawDataSize() const return typeSize; } -std::string ZSymbol::GetSourceOutputHeader(const std::string& prefix) +std::string ZSymbol::GetSourceOutputHeader([[maybe_unused]] const std::string& prefix) { if (isArray) { if (count == 0) - return StringHelper::Sprintf("extern %s %s%s[];\n", type.c_str(), prefix.c_str(), - name.c_str()); + return StringHelper::Sprintf("extern %s %s[];\n", type.c_str(), name.c_str()); else - return StringHelper::Sprintf("extern %s %s%s[%i];\n", type.c_str(), prefix.c_str(), - name.c_str(), count); + return StringHelper::Sprintf("extern %s %s[%i];\n", type.c_str(), name.c_str(), count); } - return StringHelper::Sprintf("extern %s %s%s;\n", type.c_str(), prefix.c_str(), name.c_str()); + return StringHelper::Sprintf("extern %s %s;\n", type.c_str(), name.c_str()); } std::string ZSymbol::GetSourceTypeName() const diff --git a/tools/ZAPD/ZAPD/ZSymbol.h b/tools/ZAPD/ZAPD/ZSymbol.h index 1094a0222c..7cb14aa9b4 100644 --- a/tools/ZAPD/ZAPD/ZSymbol.h +++ b/tools/ZAPD/ZAPD/ZSymbol.h @@ -16,10 +16,12 @@ public: void ParseXML(tinyxml2::XMLElement* reader) override; - size_t GetRawDataSize() const override; + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; std::string GetSourceOutputHeader(const std::string& prefix) override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; + + size_t GetRawDataSize() const override; }; diff --git a/tools/ZAPD/ZAPD/ZTexture.cpp b/tools/ZAPD/ZAPD/ZTexture.cpp index 956a2f7b40..33ee54d1bc 100644 --- a/tools/ZAPD/ZAPD/ZTexture.cpp +++ b/tools/ZAPD/ZAPD/ZTexture.cpp @@ -1,12 +1,13 @@ #include "ZTexture.h" #include -#include "BitConverter.h" + #include "CRC32.h" -#include "Directory.h" -#include "File.h" #include "Globals.h" -#include "Path.h" +#include "Utils/BitConverter.h" +#include "Utils/Directory.h" +#include "Utils/File.h" +#include "Utils/Path.h" REGISTER_ZFILENODE(Texture, ZTexture); @@ -21,21 +22,8 @@ ZTexture::ZTexture(ZFile* nParent) : ZResource(nParent) RegisterOptionalAttribute("TlutOffset"); } -void ZTexture::ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) -{ - ZResource::ExtractFromXML(reader, nRawDataIndex); - - auto filepath = Globals::Instance->outputPath / fs::path(name).stem(); - - std::string incStr = - StringHelper::Sprintf("%s.%s.inc.c", filepath.c_str(), GetExternalExtension().c_str()); - - parent->AddDeclarationIncludeArray(rawDataIndex, incStr, GetRawDataSize(), GetSourceTypeName(), - name, 0); -} - -void ZTexture::FromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeight, - TextureType nType, bool nIsPalette) +void ZTexture::ExtractFromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeight, + TextureType nType, bool nIsPalette) { width = nWidth; height = nHeight; @@ -45,6 +33,10 @@ void ZTexture::FromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeigh name = GetDefaultName(parent->GetName()); outName = name; + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; + ParseRawData(); CalcHash(); } @@ -52,17 +44,10 @@ void ZTexture::FromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeigh void ZTexture::FromPNG(const fs::path& pngFilePath, TextureType texType) { format = texType; - name = StringHelper::Split(Path::GetFileNameWithoutExtension(pngFilePath), ".")[0]; + name = StringHelper::Split(Path::GetFileNameWithoutExtension(pngFilePath.string()), ".")[0]; PrepareRawDataFromFile(pngFilePath); } -void ZTexture::FromHLTexture(HLTexture* hlTex) -{ - width = hlTex->width; - height = hlTex->height; - format = static_cast(hlTex->type); -} - void ZTexture::ParseXML(tinyxml2::XMLElement* reader) { ZResource::ParseXML(reader); @@ -116,6 +101,12 @@ void ZTexture::ParseXML(tinyxml2::XMLElement* reader) void ZTexture::ParseRawData() { + if (rawDataIndex % 8 != 0) + fprintf(stderr, + "ZTexture::ParseXML: Warning in '%s'.\n" + "\t This texture is not 64-bit aligned.\n", + name.c_str()); + switch (format) { case TextureType::RGBA16bpp: @@ -329,7 +320,7 @@ void ZTexture::PrepareBitmapPalette8() } } -void ZTexture::DeclareReferences(const std::string& prefix) +void ZTexture::DeclareReferences([[maybe_unused]] const std::string& prefix) { if (tlutOffset != static_cast(-1)) { @@ -340,15 +331,10 @@ void ZTexture::DeclareReferences(const std::string& prefix) if (format == TextureType::Palette4bpp) tlutDim = 4; - auto filepath = Globals::Instance->outputPath / fs::path(name).stem(); - std::string incStr = StringHelper::Sprintf("%s.%s.inc.c", filepath.c_str(), - GetExternalExtension().c_str()); - tlut = new ZTexture(parent); - tlut->FromBinary(tlutOffset, tlutDim, tlutDim, TextureType::RGBA16bpp, true); + tlut->ExtractFromBinary(tlutOffset, tlutDim, tlutDim, TextureType::RGBA16bpp, true); parent->AddTextureResource(tlutOffset, tlut); - parent->AddDeclarationIncludeArray(tlutOffset, incStr, tlut->GetRawDataSize(), - tlut->GetSourceTypeName(), tlut->GetName(), 0); + tlut->DeclareVar(prefix, ""); } else { @@ -686,7 +672,7 @@ std::string ZTexture::GetIMSizFromType() } } -std::string ZTexture::GetDefaultName(const std::string& prefix) +std::string ZTexture::GetDefaultName(const std::string& prefix) const { const char* suffix = "Tex"; if (isPalette) @@ -722,14 +708,14 @@ void ZTexture::Save(const fs::path& outFolder) // process for generating the Texture Pool XML. if (Globals::Instance->outputCrc) { - File::WriteAllText(Globals::Instance->outputPath / (outName + ".txt"), + File::WriteAllText((Globals::Instance->outputPath / (outName + ".txt")).string(), StringHelper::Sprintf("%08lX", hash)); } auto outPath = GetPoolOutPath(outFolder); - if (!Directory::Exists(outPath)) - Directory::CreateDirectory(outPath); + if (!Directory::Exists(outPath.string())) + Directory::CreateDirectory(outPath.string()); auto outFileName = outPath / (outName + "." + GetExternalExtension() + ".png"); @@ -747,9 +733,45 @@ void ZTexture::Save(const fs::path& outFolder) #endif } +Declaration* ZTexture::DeclareVar(const std::string& prefix, + [[maybe_unused]] const std::string& bodyStr) +{ + std::string auxName = name; + std::string auxOutName = outName; + + if (auxName == "") + auxName = GetDefaultName(prefix); + + if (auxOutName == "") + auxOutName = GetDefaultName(prefix); + + auto filepath = Globals::Instance->outputPath / fs::path(auxOutName).stem(); + + std::string incStr = + StringHelper::Sprintf("%s.%s.inc.c", filepath.c_str(), GetExternalExtension().c_str()); + + if (!Globals::Instance->cfg.texturePool.empty()) + { + CalcHash(); + + // TEXTURE POOL CHECK + const auto& poolEntry = Globals::Instance->cfg.texturePool.find(hash); + if (poolEntry != Globals::Instance->cfg.texturePool.end()) + { + incStr = StringHelper::Sprintf("%s.%s.inc.c", poolEntry->second.path.c_str(), + GetExternalExtension().c_str()); + } + } + + Declaration* decl = parent->AddDeclarationIncludeArray( + rawDataIndex, incStr, GetRawDataSize(), GetSourceTypeName(), auxName, GetRawDataSize() / 8); + decl->staticConf = staticConf; + return decl; +} + std::string ZTexture::GetBodySourceCode() const { - std::string sourceOutput = ""; + std::string sourceOutput; for (size_t i = 0; i < textureDataRaw.size(); i += 8) { @@ -827,7 +849,7 @@ fs::path ZTexture::GetPoolOutPath(const fs::path& defaultValue) return defaultValue; } -TextureType ZTexture::GetTextureTypeFromString(std::string str) +TextureType ZTexture::GetTextureTypeFromString(const std::string& str) { TextureType texType = TextureType::Error; @@ -839,11 +861,11 @@ TextureType ZTexture::GetTextureTypeFromString(std::string str) { texType = TextureType::RGBA16bpp; #ifdef DEPRECATION_ON - fprintf(stderr, - "ZTexture::GetTextureTypeFromString: Deprecation warning.\n" - "\t The texture format 'rgb5a1' is currently deprecated, and will be removed in a future " - "version.\n" - "\t Use the format 'rgba16' instead.\n"); + fprintf(stderr, "ZTexture::GetTextureTypeFromString: Deprecation warning.\n" + "\t The texture format 'rgb5a1' is currently deprecated, and will be " + "removed in a future " + "version.\n" + "\t Use the format 'rgba16' instead.\n"); #endif } else if (str == "i4") diff --git a/tools/ZAPD/ZAPD/ZTexture.h b/tools/ZAPD/ZAPD/ZTexture.h index 807468a627..ef67c3f6ef 100644 --- a/tools/ZAPD/ZAPD/ZTexture.h +++ b/tools/ZAPD/ZAPD/ZTexture.h @@ -1,8 +1,5 @@ #pragma once -#include - -#include "HighLevel/HLTexture.h" #include "ImageBackend.h" #include "ZResource.h" #include "tinyxml2.h" @@ -58,18 +55,17 @@ public: bool isPalette = false; - void ExtractFromXML(tinyxml2::XMLElement* reader, uint32_t nRawDataIndex) override; - void FromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeight, TextureType nType, - bool nIsPalette); + void ExtractFromBinary(uint32_t nRawDataIndex, int32_t nWidth, int32_t nHeight, + TextureType nType, bool nIsPalette); void FromPNG(const fs::path& pngFilePath, TextureType texType); - void FromHLTexture(HLTexture* hlTex); - - static TextureType GetTextureTypeFromString(std::string str); + static TextureType GetTextureTypeFromString(const std::string& str); void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; void DeclareReferences(const std::string& prefix) override; - std::string GetBodySourceCode() const; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; void CalcHash() override; void Save(const fs::path& outFolder) override; @@ -81,7 +77,7 @@ public: size_t GetRawDataSize() const override; std::string GetIMFmtFromType(); std::string GetIMSizFromType(); - std::string GetDefaultName(const std::string& prefix); + std::string GetDefaultName(const std::string& prefix) const override; uint32_t GetWidth() const; uint32_t GetHeight() const; void SetDimensions(uint32_t nWidth, uint32_t nHeight); diff --git a/tools/ZAPD/ZAPD/ZTextureAnimation.cpp b/tools/ZAPD/ZAPD/ZTextureAnimation.cpp new file mode 100644 index 0000000000..4332fcf1e5 --- /dev/null +++ b/tools/ZAPD/ZAPD/ZTextureAnimation.cpp @@ -0,0 +1,702 @@ +/** + * File: ZTextureAnimation.cpp + * ZResources defined: ZTextureAnimation, ZTextureAnimationParams (XML declaration not supported for + * the latter) + * Purpose: extracting texture animating structures from asset files Note: data type is exclusive to + * Majora's Mask + * + * Structure of data: + * A texture animation consists of a main array of data of the form + * `SS 00 00 0T PPPPPPPP`, + * where `S` is the segment that the functionality is sent to (and read by DLists), `T` is the + * "type" (see below), and `P` is a pointer to the type's subsidiary information, which is + * invariably just above this main array. Details of this subsidiary data are given below. + * + * Segment + * === + * The segment starts at 1 and is incremented in each entry; the final one is negated, which is used + * as the indication to stop reading. The actual segment the game will use to draw is S + 7. + * + * Types + * === + * There are 7 values that `T` can take: + * `0`: A single texture scroll (Implemented by Gfx_TexScroll): subsidiary params are given as + * an array with one entry, a struct `XX YY WW HH` containing xStep, yStep, width, height + * (all u8). + * + * `1`: A dual texture scroll (Implementated by Gfx_TwoTexScroll): same as type `0`, but with + * two entries in the params array. + * + * `2`: Color changing: Changes the primColor (with a LOD factor) and envColor + * `KKKK LLLL PPPPPPPP QQQQQQQQ RRRRRRRR` + * - `K` (u16) is the total length of the animation (and in this case, the total number of + * colors) + * - `L` (u16) is seemingly always 0 for this type, and not used in the code + * - `P` segmented pointer to array of augmented primColors + * - `Q` segmented pointer to array of envColors, and can be NULL + * - `R` segmented pointer to array of frameData (u8), which is also seemingly always NULL + * for this type. + * + * envColors take the form `RR GG BB AA` as usual, while primColors have an extra LODFrac + * element: RR GG BB AA LL + * + * `3`: Color changing (LERP): similar to type `2`, but uses linear interpolation. The structure + * is similar to `2`, but + * - `K` is now just the animation length, while + * - `L` is the total number of colors, and + * - the frameData is used to determine which colors to interpolate. + * + * `4`: Color changing (Lagrange interpolation): For extraction purposes identical to type 3. + * Uses a nonlinear interpolation formula to change the colours more smoothly. + * + * `5`: Texture cycle: functions like a gif. Subsidiary params: + * `FFFF 0000 PPPPPPPP QQQQQQQQ` + * where + * - `F` (u16) time between changes in frames + * - `P` pointer to array of segmented pointers to textures to cycle through + * - `Q` array of indices, indicating which texture to use next when a change frame is + * reached. The maximum indicates the number of textures in the texture array. + * + * `6`: This is used to indicate an empty/unimplemented params set. It is ignored by the game's + * function provided that the segment is 0. A generic empty one takes the form + * `00 00 00 06 00000000`, + * and has no extra data. + * + * Implementation + * === + * - ZTextureAnimation requires a declaration in the XML to extract anything. It handles the main + * array. It uses a POD struct for each entry, and declares references to the params structs. + * + * - ZTextureAnimationParams is not (currently) declarable in an XML. It is a parent class for the + * three classes that handle the various cases: + * - TextureScrollingParams for types `0` and `1` + * - TextureColorChangingParams for types `2`,`3`,`4` + * - TextureCyclingParams for type `5` + * Each of these will declare all its subsidiary arrays, using POD structs. + */ +#include "ZTextureAnimation.h" + +#include +#include +#include + +#include "Globals.h" +#include "Utils/BitConverter.h" +#include "ZFile.h" +#include "ZResource.h" +#include "tinyxml2.h" + +REGISTER_ZFILENODE(TextureAnimation, ZTextureAnimation); + +/* Constructors */ +ZTextureAnimationParams::ZTextureAnimationParams(ZFile* parent) : ZResource::ZResource(parent) +{ +} +TextureScrollingParams::TextureScrollingParams(ZFile* parent) + : ZTextureAnimationParams::ZTextureAnimationParams(parent) +{ +} +TextureColorChangingParams::TextureColorChangingParams(ZFile* parent) + : ZTextureAnimationParams::ZTextureAnimationParams(parent) +{ +} +TextureCyclingParams::TextureCyclingParams(ZFile* parent) + : ZTextureAnimationParams::ZTextureAnimationParams(parent) +{ +} + +/* TextureAnimationParams */ +/* This class only implements the functions common to all or most its inheritors */ + +void ZTextureAnimationParams::ExtractFromBinary(uint32_t nRawDataIndex) +{ + rawDataIndex = nRawDataIndex; + + ParseRawData(); +} + +// Implemented by TextureScrollingParams only[ +void ZTextureAnimationParams::ExtractFromBinary([[maybe_unused]] uint32_t nRawDataIndex, + [[maybe_unused]] int count) +{ +} + +std::string +ZTextureAnimationParams::GetDefaultName([[maybe_unused]] const std::string& prefix) const +{ + return "ShouldNotBeVIsible"; +} + +ZResourceType ZTextureAnimationParams::GetResourceType() const +{ + return ZResourceType::TextureAnimationParams; +} + +/* TextureScrollingParams */ + +void TextureScrollingParams::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + for (int i = 0; i < count; i++) + { + rows[i].xStep = BitConverter::ToUInt8BE(rawData, rawDataIndex + 4 * i); + rows[i].yStep = BitConverter::ToUInt8BE(rawData, rawDataIndex + 4 * i + 1); + rows[i].width = BitConverter::ToUInt8BE(rawData, rawDataIndex + 4 * i + 2); + rows[i].height = BitConverter::ToUInt8BE(rawData, rawDataIndex + 4 * i + 3); + } +} + +void TextureScrollingParams::ExtractFromBinary(uint32_t nRawDataIndex, int nCount) +{ + rawDataIndex = nRawDataIndex; + count = nCount; + + ParseRawData(); +} + +std::string TextureScrollingParams::GetSourceTypeName() const +{ + return "AnimatedMatTexScrollParams"; // TODO: Better name +} + +std::string TextureScrollingParams::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sTexScrollParams_%06X", prefix.c_str(), rawDataIndex); +} + +size_t TextureScrollingParams::GetRawDataSize() const +{ + return 4 * count; +} + +/** + * Overrides the parent version to declare an array of the params rather than just one entry. + */ +Declaration* TextureScrollingParams::DeclareVar(const std::string& prefix, + const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + return parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, count, bodyStr); +} + +std::string TextureScrollingParams::GetBodySourceCode() const +{ + std::string bodyStr; + + for (int i = 0; i < count; i++) + { + bodyStr += StringHelper::Sprintf("\t{ %d, %d, 0x%02X, 0x%02X },\n", rows[i].xStep, + rows[i].yStep, rows[i].width, rows[i].height); + } + + bodyStr.pop_back(); + + return bodyStr; +} + +/* TextureColorChangingParams */ + +/** + * Also parses the color and frameData arrays + */ +void TextureColorChangingParams::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + animLength = BitConverter::ToUInt16BE(rawData, rawDataIndex); + colorListCount = BitConverter::ToUInt16BE(rawData, rawDataIndex + 2); + + // Handle type 2 separately + uint16_t listLength = + ((type == TextureAnimationParamsType::ColorChange) ? animLength : colorListCount); + + if (listLength == 0) + throw std::runtime_error(StringHelper::Sprintf( + "When processing file %s: in input binary file %s, offset 0x%06X:" + "\n\t" + "\033[97m" + "TextureColorChangingParams::ParseRawData:" + "\033[0m" + "\033[91m" + " error: " + "\033[0m" + "\033[97m" + "color list length cannot be 0\n" + "\033[0m", + Globals::Instance->inputPath.c_str(), parent->GetName().c_str(), rawDataIndex)); + + primColorListAddress = BitConverter::ToUInt32BE(rawData, rawDataIndex + 4); + envColorListAddress = BitConverter::ToUInt32BE(rawData, rawDataIndex + 8); + frameDataListAddress = BitConverter::ToUInt32BE(rawData, rawDataIndex + 0xC); + + uint32_t primColorListOffset = Seg2Filespace(primColorListAddress, parent->baseAddress); + uint32_t envColorListOffset = Seg2Filespace(envColorListAddress, parent->baseAddress); + uint32_t frameDataListOffset = Seg2Filespace(frameDataListAddress, parent->baseAddress); + + uint32_t currentPtr; + + F3DPrimColor currentPrimColor; + + for (currentPtr = primColorListOffset; currentPtr < primColorListOffset + 5 * listLength; + currentPtr += 5) + { + currentPrimColor = {BitConverter::ToUInt8BE(rawData, currentPtr), + BitConverter::ToUInt8BE(rawData, currentPtr + 1), + BitConverter::ToUInt8BE(rawData, currentPtr + 2), + BitConverter::ToUInt8BE(rawData, currentPtr + 3), + BitConverter::ToUInt8BE(rawData, currentPtr + 4)}; + primColorList.push_back(currentPrimColor); + } + + F3DEnvColor currentEnvColor; + + for (currentPtr = envColorListOffset; currentPtr < envColorListOffset + 4 * listLength; + currentPtr += 4) + { + currentEnvColor = {BitConverter::ToUInt8BE(rawData, currentPtr), + BitConverter::ToUInt8BE(rawData, currentPtr + 1), + BitConverter::ToUInt8BE(rawData, currentPtr + 2), + BitConverter::ToUInt8BE(rawData, currentPtr + 3)}; + envColorList.push_back(currentEnvColor); + } + + uint16_t currentFrameData; + + for (currentPtr = frameDataListOffset; currentPtr < frameDataListOffset + 2 * listLength; + currentPtr += 2) + { + currentFrameData = BitConverter::ToUInt16BE(rawData, currentPtr); + frameDataList.push_back(currentFrameData); + } +} + +std::string TextureColorChangingParams::GetSourceTypeName() const +{ + return "AnimatedMatColorParams"; // TODO: Better name +} + +std::string TextureColorChangingParams::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sColorParams_%06X", prefix.c_str(), rawDataIndex); +} + +size_t TextureColorChangingParams::GetRawDataSize() const +{ + return 0x10; +} + +void TextureColorChangingParams::DeclareReferences([[maybe_unused]] const std::string& prefix) +{ + if (primColorListAddress != 0) // NULL + { + std::string primColorBodyStr; + + for (const auto& color : primColorList) + { + primColorBodyStr += StringHelper::Sprintf("\t{ %d, %d, %d, %d, %d },\n", color.r, + color.g, color.b, color.a, color.lodFrac); + } + + primColorBodyStr.pop_back(); + + parent->AddDeclarationArray( + Seg2Filespace(primColorListAddress, parent->baseAddress), DeclarationAlignment::Align4, + primColorList.size() * 5, "F3DPrimColor", + StringHelper::Sprintf("%sTexColorChangingPrimColors_%06X", parent->GetName().c_str(), + Seg2Filespace(primColorListAddress, parent->baseAddress)), + primColorList.size(), primColorBodyStr); + } + + if (envColorListAddress != 0) // NULL + { + std::string envColorBodyStr; + + for (const auto& color : envColorList) + { + envColorBodyStr += StringHelper::Sprintf("\t{ %d, %d, %d, %d },\n", color.r, color.g, + color.b, color.a); + } + + envColorBodyStr.pop_back(); + + parent->AddDeclarationArray( + Seg2Filespace(envColorListAddress, parent->baseAddress), DeclarationAlignment::Align4, + envColorList.size() * 4, "F3DEnvColor", + StringHelper::Sprintf("%sTexColorChangingEnvColors_%06X", parent->GetName().c_str(), + Seg2Filespace(envColorListAddress, parent->baseAddress)), + envColorList.size(), envColorBodyStr); + } + + if (frameDataListAddress != 0) // NULL + { + std::string frameDataBodyStr = "\t"; + + for (const auto& frame : frameDataList) + { + frameDataBodyStr += StringHelper::Sprintf("%d, ", frame); + } + + frameDataBodyStr.pop_back(); + + parent->AddDeclarationArray( + Seg2Filespace(frameDataListAddress, parent->baseAddress), DeclarationAlignment::Align4, + frameDataList.size() * 2, "u16", + StringHelper::Sprintf("%sTexColorChangingFrameData_%06X", parent->GetName().c_str(), + Seg2Filespace(frameDataListAddress, parent->baseAddress)), + frameDataList.size(), frameDataBodyStr); + } +} + +std::string TextureColorChangingParams::GetBodySourceCode() const +{ + std::string primColorListName; + std::string envColorListName; + std::string frameDataListName; + + Globals::Instance->GetSegmentedPtrName(primColorListAddress, parent, "", primColorListName); + Globals::Instance->GetSegmentedPtrName(envColorListAddress, parent, "", envColorListName); + Globals::Instance->GetSegmentedPtrName(frameDataListAddress, parent, "", frameDataListName); + + std::string bodyStr = StringHelper::Sprintf( + "\n %d, %d, %s, %s, %s,\n", animLength, colorListCount, primColorListName.c_str(), + envColorListName.c_str(), frameDataListName.c_str()); + + return bodyStr; +} + +/* TextureCyclingParams */ + +void TextureCyclingParams::ParseRawData() +{ + const auto& rawData = parent->GetRawData(); + + cycleLength = BitConverter::ToUInt16BE(rawData, rawDataIndex); + if (cycleLength == 0) + throw std::runtime_error( + StringHelper::Sprintf("When processing file %s: in input binary file %s, offset 0x%06X:" + "\n\t" + "\033[97m" + "TextureCyclingParams::ParseRawData:" + "\033[0m" + "\033[91m" + " error: " + "\033[0m" + "\033[97m" + "cycleLength cannot be 0\n" + "\033[0m", + Globals::Instance->inputPath.c_str(), parent->GetName().c_str(), + Seg2Filespace(rawDataIndex, 0))); + + textureListAddress = BitConverter::ToUInt32BE(rawData, rawDataIndex + 4); + textureIndexListAddress = BitConverter::ToUInt32BE(rawData, rawDataIndex + 8); + + uint32_t textureListOffset = Seg2Filespace(textureListAddress, parent->baseAddress); + uint32_t textureIndexListOffset = Seg2Filespace(textureIndexListAddress, parent->baseAddress); + + uint32_t currentPtr; + + uint8_t currentIndex; + uint8_t maxIndex = 0; // To find the length of the texture list + + for (currentPtr = textureIndexListOffset; currentPtr < textureIndexListOffset + cycleLength; + currentPtr++) + { + currentIndex = BitConverter::ToUInt8BE(rawData, currentPtr); + textureIndexList.push_back(currentIndex); + if (currentIndex > maxIndex) + maxIndex = currentIndex; + } + + for (currentPtr = textureListOffset; currentPtr <= textureListOffset + 4 * maxIndex; + currentPtr += 4) + { + textureList.push_back(BitConverter::ToUInt32BE(rawData, currentPtr)); + } +} + +std::string TextureCyclingParams::GetSourceTypeName() const +{ + return "AnimatedMatTexCycleParams"; // TODO: Better name +} + +std::string TextureCyclingParams::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sTexCycleParams_%06X", prefix.c_str(), rawDataIndex); +} + +size_t TextureCyclingParams::GetRawDataSize() const +{ + return 0xC; +} + +void TextureCyclingParams::DeclareReferences([[maybe_unused]] const std::string& prefix) +{ + if (textureListAddress != 0) // NULL + { + std::string texturesBodyStr; + std::string texName; + std::string comment; + + for (const auto& tex : textureList) + { + bool texFound = Globals::Instance->GetSegmentedPtrName(tex, parent, "", texName); + + // texName is a raw segmented pointer. This occurs if the texture is not declared + // separately since we cannot read the format. In theory we could scan DLists for the + // format on the appropriate segments. + if (!texFound) + { + comment = " // Raw pointer, declare texture in XML to use proper symbol"; + + fprintf(stderr, + "When processing file %s: in input binary file %s, offset 0x%06X:" + "\n\t" + "\033[97m" + "TextureCyclingParams::DeclareReferences:" + "\033[0m" + "\033[95m" + " warning: " + "\033[0m" + "\033[97m" + "TexCycle declared here points to unknown texture at address %s. " + "Please declare the texture in the XML to use the proper symbol.\n" + "\033[0m", + Globals::Instance->inputPath.c_str(), parent->GetName().c_str(), + Seg2Filespace(textureListAddress, parent->baseAddress), texName.c_str()); + } + texturesBodyStr += StringHelper::Sprintf("\t%s,%s\n", texName.c_str(), comment.c_str()); + } + + texturesBodyStr.pop_back(); + + parent->AddDeclarationArray( + Seg2Filespace(textureListAddress, parent->baseAddress), DeclarationAlignment::Align4, + textureList.size() * 4, "TexturePtr", + StringHelper::Sprintf("%sTexCycleTexPtrs_%06X", parent->GetName().c_str(), + Seg2Filespace(textureListAddress, parent->baseAddress)), + textureList.size(), texturesBodyStr); + } + + if (textureIndexListAddress != 0) // NULL + { + std::string indicesBodyStr = "\t"; + + for (uint8_t index : textureIndexList) + { + indicesBodyStr += StringHelper::Sprintf("%d, ", index); + } + + indicesBodyStr.pop_back(); + + parent->AddDeclarationArray( + Seg2Filespace(textureIndexListAddress, parent->baseAddress), + DeclarationAlignment::Align4, textureIndexList.size(), "u8", + StringHelper::Sprintf("%sTexCycleTexIndices_%06X", parent->GetName().c_str(), + Seg2Filespace(textureIndexListAddress, parent->baseAddress)), + textureIndexList.size(), indicesBodyStr); + } +} + +std::string TextureCyclingParams::GetBodySourceCode() const +{ + std::string textureListName; + std::string textureIndexListName; + + Globals::Instance->GetSegmentedPtrName(textureListAddress, parent, "", textureListName); + Globals::Instance->GetSegmentedPtrName(textureIndexListAddress, parent, "", + textureIndexListName); + + std::string bodyStr = StringHelper::Sprintf( + "\n %d, %s, %s,\n", cycleLength, textureListName.c_str(), textureIndexListName.c_str()); + + return bodyStr; +} + +/* ZTextureAnimation */ + +ZTextureAnimation::ZTextureAnimation(ZFile* nParent) : ZResource(nParent) +{ +} + +/** + * Builds the array of params + */ +void ZTextureAnimation::ParseRawData() +{ + ZResource::ParseRawData(); + + TextureAnimationEntry currentEntry; + auto rawData = parent->GetRawData(); + int16_t type; + + for (uint32_t currentPtr = rawDataIndex;; currentPtr += 8) + { + type = BitConverter::ToInt16BE(rawData, currentPtr + 2); + + currentEntry.segment = BitConverter::ToInt8BE(rawData, currentPtr); + currentEntry.type = (TextureAnimationParamsType)type; + currentEntry.paramsPtr = BitConverter::ToUInt32BE(rawData, currentPtr + 4); + entries.push_back(currentEntry); + + if ((type < 0) || (type > 6)) + { + throw std::runtime_error(StringHelper::Sprintf( + "When processing file %s: in input binary file %s, offset 0x%06X:" + "\n\t" + "\033[97m" + "ZTextureAnimation::ParseRawData:" + "\033[0m" + "\033[91m" + " error: " + "\033[0m" + "\033[97m" + "unknown TextureAnimationParams type 0x%02X in TextureAnimation: entry reads\n\t{ " + "0x%02X, 0x%02X, 0x%08X }\n(type should be between " + "0x00 and 0x06)\n" + "\033[0m", + Globals::Instance->inputPath.c_str(), parent->GetName().c_str(), rawDataIndex, type, + currentEntry.segment, type, currentEntry.paramsPtr)); + } + + if (currentEntry.segment <= 0) + break; + } +} + +#include +/** + * For each params entry, + */ +void ZTextureAnimation::DeclareReferences(const std::string& prefix) +{ + std::string varPrefix = name; + if (varPrefix == "") + varPrefix = prefix; + + ZResource::DeclareReferences(varPrefix); + + for (const auto& entry : entries) + { + if (entry.paramsPtr != 0 && GETSEGNUM(entry.paramsPtr) == parent->segment) + { + uint32_t paramsOffset = Seg2Filespace(entry.paramsPtr, parent->baseAddress); + if (!parent->HasDeclaration(paramsOffset)) + { + ZTextureAnimationParams* params; + int count = 2; + switch (entry.type) + { + case TextureAnimationParamsType::SingleScroll: + count = 1; + [[fallthrough]]; + case TextureAnimationParamsType::DualScroll: + params = new TextureScrollingParams(parent); + params->ExtractFromBinary(paramsOffset, count); + break; + + case TextureAnimationParamsType::ColorChange: + case TextureAnimationParamsType::ColorChangeLERP: + case TextureAnimationParamsType::ColorChangeLagrange: + params = new TextureColorChangingParams(parent); + params->type = entry.type; + params->ExtractFromBinary(paramsOffset); + break; + + case TextureAnimationParamsType::TextureCycle: + params = new TextureCyclingParams(parent); + params->ExtractFromBinary(paramsOffset); + break; + + case TextureAnimationParamsType::Empty: + fprintf(stderr, + "When processing file %s: in input binary file %s: offset 0x%06X:" + "\n\t" + "\033[97m" + "ZTextureAnimation::DeclareReferences:" + "\033[0m" + "\033[95m" + " warning: " + "\033[0m" + "\033[97m" + "TextureAnimationParams entry has empty type (6), but params pointer " + "is not NULL. Params read\n\t\t" + "{ 0x%02X, 0x%02X, 0x%08X }\n" + "\033[0m", + Globals::Instance->inputPath.c_str(), parent->GetName().c_str(), + rawDataIndex, entry.segment, (int)entry.type, entry.paramsPtr); + return; + default: + // Because GCC is worried this could happen + assert(entry.type < TextureAnimationParamsType::SingleScroll || + entry.type > TextureAnimationParamsType::Empty); + return; + } + + params->SetName(params->GetDefaultName(varPrefix)); + params->DeclareVar(varPrefix, ""); + parent->AddResource(params); + } + } + } +} + +std::string ZTextureAnimation::GetSourceTypeName() const +{ + return "AnimatedMaterial"; // TODO: Better name +} + +ZResourceType ZTextureAnimation::GetResourceType() const +{ + return ZResourceType::TextureAnimation; +} + +/** + * The size of the main array + */ +size_t ZTextureAnimation::GetRawDataSize() const +{ + return entries.size() * 8; +} + +std::string ZTextureAnimation::GetDefaultName(const std::string& prefix) const +{ + return StringHelper::Sprintf("%sTexAnim_%06X", prefix.c_str(), rawDataIndex); +} + +Declaration* ZTextureAnimation::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + std::string auxName = name; + + if (name == "") + auxName = GetDefaultName(prefix); + + Declaration* decl = + parent->AddDeclarationArray(rawDataIndex, GetDeclarationAlignment(), GetRawDataSize(), + GetSourceTypeName(), auxName, entries.size(), bodyStr); + decl->staticConf = staticConf; + return decl; +} + +std::string ZTextureAnimation::GetBodySourceCode() const +{ + std::string bodyStr; + + for (const auto& entry : entries) + { + std::string paramName; + Globals::Instance->GetSegmentedPtrName(entry.paramsPtr, parent, "", paramName); + + bodyStr += StringHelper::Sprintf("\t{ %d, %d, %s },\n", entry.segment, entry.type, + paramName.c_str()); + } + + bodyStr.pop_back(); + + return bodyStr; +} diff --git a/tools/ZAPD/ZAPD/ZTextureAnimation.h b/tools/ZAPD/ZAPD/ZTextureAnimation.h new file mode 100644 index 0000000000..6b03eb7cf4 --- /dev/null +++ b/tools/ZAPD/ZAPD/ZTextureAnimation.h @@ -0,0 +1,151 @@ +#pragma once + +#include +#include +#include +#include + +#include "ZResource.h" + +enum class TextureAnimationParamsType +{ + /* 0 */ SingleScroll, + /* 1 */ DualScroll, + /* 2 */ ColorChange, + /* 3 */ ColorChangeLERP, + /* 4 */ ColorChangeLagrange, + /* 5 */ TextureCycle, + /* 6 */ Empty // An empty TextureAnimation has the form 00 00 00 06 00000000 +}; + +class ZTextureAnimationParams : public ZResource +{ +public: + ZTextureAnimationParams(ZFile* parent); + + void ExtractFromBinary(uint32_t nRawDataIndex); + virtual void ExtractFromBinary(uint32_t nRawDataIndex, int count); + + virtual std::string GetDefaultName(const std::string& prefix) const; + ZResourceType GetResourceType() const; + + TextureAnimationParamsType type; +}; + +struct TextureScrollingParamsEntry +{ + int8_t xStep; + int8_t yStep; + uint8_t width; + uint8_t height; +}; + +class TextureScrollingParams : public ZTextureAnimationParams +{ +public: + TextureScrollingParams(ZFile* parent); + + void ParseRawData() override; + void ExtractFromBinary(uint32_t nRawDataIndex, int count) override; + + std::string GetSourceTypeName() const override; + std::string GetDefaultName(const std::string& prefix) const override; + size_t GetRawDataSize() const override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; + + int count; // 1 for Single, 2 for Dual + TextureScrollingParamsEntry rows[2]; // Too small to make a vector worth it +}; + +struct F3DPrimColor +{ + uint8_t r; + uint8_t g; + uint8_t b; + uint8_t a; + uint8_t lodFrac; +}; + +struct F3DEnvColor +{ + uint8_t r; + uint8_t g; + uint8_t b; + uint8_t a; +}; + +class TextureColorChangingParams : public ZTextureAnimationParams +{ +public: + TextureColorChangingParams(ZFile* parent); + + void ParseRawData() override; + + std::string GetSourceTypeName() const override; + std::string GetDefaultName(const std::string& prefix) const override; + size_t GetRawDataSize() const override; + + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + + uint16_t animLength; // size of list for type 2 + uint16_t colorListCount; + segptr_t primColorListAddress; + segptr_t envColorListAddress; + segptr_t frameDataListAddress; + std::vector primColorList; + std::vector envColorList; + std::vector frameDataList; +}; + +class TextureCyclingParams : public ZTextureAnimationParams +{ +public: + TextureCyclingParams(ZFile* parent); + + void ParseRawData() override; + + std::string GetSourceTypeName() const override; + std::string GetDefaultName(const std::string& prefix) const override; + size_t GetRawDataSize() const override; + + void DeclareReferences(const std::string& prefix) override; + + std::string GetBodySourceCode() const override; + + uint16_t cycleLength; + segptr_t textureListAddress; + segptr_t textureIndexListAddress; + std::vector textureList; + std::vector textureIndexList; +}; + +struct TextureAnimationEntry +{ + int8_t segment; + TextureAnimationParamsType type; + segptr_t paramsPtr; +}; + +class ZTextureAnimation : public ZResource +{ +public: + ZTextureAnimation(ZFile* nParent); + + void ParseRawData() override; + void DeclareReferences(const std::string& prefix) override; + + std::string GetSourceTypeName() const override; + ZResourceType GetResourceType() const override; + size_t GetRawDataSize() const override; + std::string GetDefaultName(const std::string& prefix) const override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; + std::string GetBodySourceCode() const override; + +private: + std::vector entries; +}; diff --git a/tools/ZAPD/ZAPD/ZVector.cpp b/tools/ZAPD/ZAPD/ZVector.cpp index d1aef444f5..c940b0b0de 100644 --- a/tools/ZAPD/ZAPD/ZVector.cpp +++ b/tools/ZAPD/ZAPD/ZVector.cpp @@ -1,9 +1,11 @@ #include "ZVector.h" -#include -#include "BitConverter.h" -#include "File.h" + +#include + #include "Globals.h" -#include "StringHelper.h" +#include "Utils/BitConverter.h" +#include "Utils/File.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Vector, ZVector); @@ -12,10 +14,25 @@ ZVector::ZVector(ZFile* nParent) : ZResource(nParent) { scalarType = ZScalarType::ZSCALAR_NONE; dimensions = 0; + RegisterRequiredAttribute("Type"); RegisterRequiredAttribute("Dimensions"); } +void ZVector::ExtractFromBinary(uint32_t nRawDataIndex, ZScalarType nScalarType, + uint32_t nDimensions) +{ + rawDataIndex = nRawDataIndex; + scalarType = nScalarType; + dimensions = nDimensions; + + // Don't parse raw data of external files + if (parent->GetMode() == ZFileMode::ExternalFile) + return; + + ParseRawData(); +} + void ZVector::ParseXML(tinyxml2::XMLElement* reader) { ZResource::ParseXML(reader); @@ -33,9 +50,8 @@ void ZVector::ParseRawData() for (uint32_t i = 0; i < dimensions; i++) { - ZScalar scalar(scalarType, parent); - scalar.rawDataIndex = currentRawDataIndex; - scalar.ParseRawData(); + ZScalar scalar(parent); + scalar.ExtractFromBinary(currentRawDataIndex, scalarType); currentRawDataIndex += scalar.GetRawDataSize(); scalars.push_back(scalar); @@ -83,21 +99,17 @@ std::string ZVector::GetSourceTypeName() const std::string ZVector::GetBodySourceCode() const { - std::string body = ""; + std::string body; - for (size_t i = 0; i < this->scalars.size(); i++) - body += StringHelper::Sprintf("%6s, ", scalars[i].GetBodySourceCode().c_str()); + for (size_t i = 0; i < scalars.size(); i++) + { + body += StringHelper::Sprintf("%6s", scalars[i].GetBodySourceCode().c_str()); - return "{ " + body + "}"; -} + if (i + 1 < scalars.size()) + body += ", "; + } -std::string ZVector::GetSourceOutputCode(const std::string& prefix) -{ - if (parent != nullptr) - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, GetRawDataSize(), - GetSourceTypeName(), GetName(), GetBodySourceCode()); - - return ""; + return body; } ZResourceType ZVector::GetResourceType() const @@ -105,12 +117,11 @@ ZResourceType ZVector::GetResourceType() const return ZResourceType::Vector; } -void ZVector::SetScalarType(ZScalarType type) +DeclarationAlignment ZVector::GetDeclarationAlignment() const { - scalarType = type; -} - -void ZVector::SetDimensions(uint32_t dim) -{ - dimensions = dim; + if (scalars.size() == 0) + { + return DeclarationAlignment::Align4; + } + return scalars.at(0).GetDeclarationAlignment(); } diff --git a/tools/ZAPD/ZAPD/ZVector.h b/tools/ZAPD/ZAPD/ZVector.h index d700d43963..d1a738968d 100644 --- a/tools/ZAPD/ZAPD/ZVector.h +++ b/tools/ZAPD/ZAPD/ZVector.h @@ -10,24 +10,22 @@ class ZVector : public ZResource { public: + std::vector scalars; + ZScalarType scalarType; + uint32_t dimensions; + ZVector(ZFile* nParent); + void ExtractFromBinary(uint32_t nRawDataIndex, ZScalarType nScalarType, uint32_t nDimensions); + void ParseXML(tinyxml2::XMLElement* reader) override; void ParseRawData() override; std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; bool DoesSupportArray() const override; std::string GetSourceTypeName() const override; ZResourceType GetResourceType() const override; size_t GetRawDataSize() const override; - - void SetScalarType(ZScalarType type); - void SetDimensions(uint32_t dim); - -protected: - std::vector scalars; - ZScalarType scalarType; - uint32_t dimensions; + DeclarationAlignment GetDeclarationAlignment() const override; }; diff --git a/tools/ZAPD/ZAPD/ZVtx.cpp b/tools/ZAPD/ZAPD/ZVtx.cpp index bead96fee9..d5214e840a 100644 --- a/tools/ZAPD/ZAPD/ZVtx.cpp +++ b/tools/ZAPD/ZAPD/ZVtx.cpp @@ -1,6 +1,7 @@ #include "ZVtx.h" -#include "BitConverter.h" -#include "StringHelper.h" + +#include "Utils/BitConverter.h" +#include "Utils/StringHelper.h" #include "ZFile.h" REGISTER_ZFILENODE(Vtx, ZVtx); @@ -36,27 +37,19 @@ void ZVtx::ParseRawData() a = rawData[rawDataIndex + 15]; } +Declaration* ZVtx::DeclareVar(const std::string& prefix, const std::string& bodyStr) +{ + Declaration* decl = ZResource::DeclareVar(prefix, bodyStr); + decl->isExternal = true; + return decl; +} + std::string ZVtx::GetBodySourceCode() const { return StringHelper::Sprintf("VTX(%i, %i, %i, %i, %i, %i, %i, %i, %i)", x, y, z, s, t, r, g, b, a); } -std::string ZVtx::GetSourceOutputCode(const std::string& prefix) -{ - std::string output = GetBodySourceCode(); - - if (parent != nullptr) - { - Declaration* decl = - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::Align16, GetRawDataSize(), - GetSourceTypeName(), name, output); - decl->isExternal = true; - } - - return ""; -} - size_t ZVtx::GetRawDataSize() const { return 16; @@ -86,3 +79,8 @@ std::string ZVtx::GetExternalExtension() const { return "vtx"; } + +DeclarationAlignment ZVtx::GetDeclarationAlignment() const +{ + return DeclarationAlignment::Align16; +} diff --git a/tools/ZAPD/ZAPD/ZVtx.h b/tools/ZAPD/ZAPD/ZVtx.h index feed307665..018a1d4a9a 100644 --- a/tools/ZAPD/ZAPD/ZVtx.h +++ b/tools/ZAPD/ZAPD/ZVtx.h @@ -18,8 +18,9 @@ public: ZVtx(ZFile* nParent); void ParseRawData() override; + + Declaration* DeclareVar(const std::string& prefix, const std::string& bodyStr) override; std::string GetBodySourceCode() const override; - std::string GetSourceOutputCode(const std::string& prefix) override; bool IsExternalResource() const override; bool DoesSupportArray() const override; @@ -28,6 +29,5 @@ public: std::string GetExternalExtension() const override; size_t GetRawDataSize() const override; - -protected: -}; \ No newline at end of file + DeclarationAlignment GetDeclarationAlignment() const override; +}; diff --git a/tools/ZAPD/ZAPD/genbuildinfo.py b/tools/ZAPD/ZAPD/genbuildinfo.py index fedd3ed575..91a567d317 100644 --- a/tools/ZAPD/ZAPD/genbuildinfo.py +++ b/tools/ZAPD/ZAPD/genbuildinfo.py @@ -9,10 +9,10 @@ parser = argparse.ArgumentParser() parser.add_argument("--devel", action="store_true") args = parser.parse_args() -with open("ZAPD/BuildInfo.h", "w+") as buildFile: +with open("build/ZAPD/BuildInfo.cpp", "w+") as buildFile: label = subprocess.check_output(["git", "describe", "--always"]).strip().decode("utf-8") now = datetime.now() if args.devel: label += " ~ Development version" - buildFile.write("const char gBuildHash[] = \"" + label + "\";\n") - #buildFile.write("const char gBuildDate[] = \"" + now.strftime("%Y-%m-%d %H:%M:%S") + "\";\n") + buildFile.write("extern const char gBuildHash[] = \"" + label + "\";\n") + #buildFile.write("extern const char gBuildDate[] = \"" + now.strftime("%Y-%m-%d %H:%M:%S") + "\";\n") diff --git a/tools/ZAPD/ZAPD/packages.config b/tools/ZAPD/ZAPD/packages.config new file mode 100644 index 0000000000..a7f2abbd29 --- /dev/null +++ b/tools/ZAPD/ZAPD/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Color3b.h b/tools/ZAPD/ZAPDUtils/Color3b.h new file mode 100644 index 0000000000..7e59f6b7f7 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Color3b.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +struct Color3b +{ + uint8_t r, g, b; + + Color3b() + { + r = 0; + g = 0; + b = 0; + }; + Color3b(uint8_t nR, uint8_t nG, uint8_t nB) + { + r = nR; + g = nG; + b = nB; + }; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Makefile b/tools/ZAPD/ZAPDUtils/Makefile new file mode 100644 index 0000000000..aef6780313 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Makefile @@ -0,0 +1,28 @@ +# Only used for standalone compilation, usually inherits these from the main makefile +CXXFLAGS ?= -Wall -Wextra -O2 -g -std=c++17 + +SRC_DIRS := $(shell find -type d -not -path "*build*") +CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) +H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h)) + +O_FILES := $(foreach f,$(CPP_FILES:.cpp=.o),build/$f) +LIB := ZAPDUtils.a + +# create build directories +$(shell mkdir -p $(foreach dir,$(SRC_DIRS),build/$(dir))) + +all: $(LIB) + +clean: + rm -rf build $(LIB) + +format: + clang-format-11 -i $(CPP_FILES) $(H_FILES) + +.PHONY: all clean format + +build/%.o: %.cpp + $(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $(OUTPUT_OPTION) $< + +$(LIB): $(O_FILES) + $(AR) rcs $@ $^ diff --git a/tools/ZAPD/ZAPDUtils/StrHash.h b/tools/ZAPD/ZAPDUtils/StrHash.h new file mode 100644 index 0000000000..68d22b9cd6 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/StrHash.h @@ -0,0 +1,51 @@ +#pragma once + +#include +#include +#include + +typedef uint32_t strhash; + +[[maybe_unused]] static strhash CRC32B(unsigned char* message, int32_t size) +{ + int32_t byte = 0, crc = 0; + int32_t mask = 0; + + crc = 0xFFFFFFFF; + + for (int32_t i = 0; i < size; i++) + { + byte = message[i]; + crc = crc ^ byte; + + for (int32_t j = 7; j >= 0; j--) + { + mask = -(crc & 1); + crc = (crc >> 1) ^ (0xEDB88320 & mask); + } + } + + return ~(uint32_t)(crc); +} + +[[maybe_unused]] constexpr static strhash CRC32BCT(const char* message, int32_t size) +{ + int32_t byte = 0, crc = 0; + int32_t mask = 0; + + crc = 0xFFFFFFFF; + + for (int32_t i = 0; i < size; i++) + { + byte = message[i]; + crc = crc ^ byte; + + for (int32_t j = 7; j >= 0; j--) + { + mask = -(crc & 1); + crc = (crc >> 1) ^ (0xEDB88320 & mask); + } + } + + return ~(uint32_t)(crc); +} \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.cpp b/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.cpp new file mode 100644 index 0000000000..a4cf782294 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.cpp @@ -0,0 +1,148 @@ +#include "BinaryReader.h" +#include +#include +#include "Stream.h" + +BinaryReader::BinaryReader(Stream* nStream) +{ + stream.reset(nStream); +} + +void BinaryReader::Close() +{ + stream->Close(); +} + +void BinaryReader::Seek(uint32_t offset, SeekOffsetType seekType) +{ + stream->Seek(offset, seekType); +} + +uint32_t BinaryReader::GetBaseAddress() +{ + return stream->GetBaseAddress(); +} + +void BinaryReader::Read([[maybe_unused]] char* buffer, int32_t length) +{ + stream->Read(length); +} + +char BinaryReader::ReadChar() +{ + return (char)stream->ReadByte(); +} + +int8_t BinaryReader::ReadByte() +{ + return stream->ReadByte(); +} + +uint8_t BinaryReader::ReadUByte() +{ + return (uint8_t)stream->ReadByte(); +} + +int16_t BinaryReader::ReadInt16() +{ + int16_t result = 0; + + stream->Read((char*)&result, sizeof(int16_t)); + return result; +} + +int32_t BinaryReader::ReadInt32() +{ + int32_t result = 0; + + stream->Read((char*)&result, sizeof(int32_t)); + return result; +} + +uint16_t BinaryReader::ReadUInt16() +{ + uint16_t result = 0; + + stream->Read((char*)&result, sizeof(uint16_t)); + return result; +} + +uint32_t BinaryReader::ReadUInt32() +{ + uint32_t result = 0; + + stream->Read((char*)&result, sizeof(uint32_t)); + return result; +} + +uint64_t BinaryReader::ReadUInt64() +{ + uint64_t result = 0; + + stream->Read((char*)&result, sizeof(uint64_t)); + return result; +} + +float BinaryReader::ReadSingle() +{ + float result = NAN; + + stream->Read((char*)&result, sizeof(float)); + + if (isnan(result)) + throw std::runtime_error("BinaryReader::ReadSingle(): Error reading stream"); + + return result; +} + +double BinaryReader::ReadDouble() +{ + double result = NAN; + + stream->Read((char*)&result, sizeof(double)); + if (isnan(result)) + throw std::runtime_error("BinaryReader::ReadDouble(): Error reading stream"); + + return result; +} + +Vec3f BinaryReader::ReadVec3f() +{ + return Vec3f(); +} + +Vec3s BinaryReader::ReadVec3s() +{ + return Vec3s(0, 0, 0); +} + +Vec3s BinaryReader::ReadVec3b() +{ + return Vec3s(0, 0, 0); +} + +Vec2f BinaryReader::ReadVec2f() +{ + return Vec2f(); +} + +Color3b BinaryReader::ReadColor3b() +{ + return Color3b(); +} + +std::string BinaryReader::ReadString() +{ + std::string res; + char c; + + do + { + c = ReadChar(); + + if (c != 0) + res += c; + } while (c != 0); + + return res; +} \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.h b/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.h new file mode 100644 index 0000000000..cf0eeb42c9 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/BinaryReader.h @@ -0,0 +1,43 @@ +#pragma once + +#include +#include +#include +#include +#include "../Color3b.h" +#include "../Vec2f.h" +#include "../Vec3f.h" +#include "../Vec3s.h" +#include "Stream.h" + +class BinaryReader +{ +public: + BinaryReader(Stream* nStream); + + void Close(); + + void Seek(uint32_t offset, SeekOffsetType seekType); + uint32_t GetBaseAddress(); + + void Read(char* buffer, int32_t length); + char ReadChar(); + int8_t ReadByte(); + int16_t ReadInt16(); + int32_t ReadInt32(); + uint8_t ReadUByte(); + uint16_t ReadUInt16(); + uint32_t ReadUInt32(); + uint64_t ReadUInt64(); + float ReadSingle(); + double ReadDouble(); + Vec3f ReadVec3f(); + Vec3s ReadVec3s(); + Vec3s ReadVec3b(); + Vec2f ReadVec2f(); + Color3b ReadColor3b(); + std::string ReadString(); + +protected: + std::shared_ptr stream; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.cpp b/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.cpp new file mode 100644 index 0000000000..87bc0ac684 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.cpp @@ -0,0 +1,95 @@ +#include "BinaryWriter.h" + +BinaryWriter::BinaryWriter(Stream* nStream) +{ + stream.reset(nStream); +} + +BinaryWriter::BinaryWriter(std::shared_ptr nStream) +{ + stream = nStream; +} + +void BinaryWriter::Close() +{ + stream->Close(); +} + +std::shared_ptr BinaryWriter::GetStream() +{ + return stream; +} + +uint64_t BinaryWriter::GetBaseAddress() +{ + return stream->GetBaseAddress(); +} + +uint64_t BinaryWriter::GetLength() +{ + return stream->GetLength(); +} + +void BinaryWriter::Seek(int32_t offset, SeekOffsetType seekType) +{ + stream->Seek(offset, seekType); +} + +void BinaryWriter::Write(int8_t value) +{ + stream->Write((char*)&value, sizeof(int8_t)); +} + +void BinaryWriter::Write(uint8_t value) +{ + stream->Write((char*)&value, sizeof(uint8_t)); +} + +void BinaryWriter::Write(int16_t value) +{ + stream->Write((char*)&value, sizeof(int16_t)); +} + +void BinaryWriter::Write(uint16_t value) +{ + stream->Write((char*)&value, sizeof(uint16_t)); +} + +void BinaryWriter::Write(int32_t value) +{ + stream->Write((char*)&value, sizeof(int32_t)); +} + +void BinaryWriter::Write(uint32_t value) +{ + stream->Write((char*)&value, sizeof(uint32_t)); +} + +void BinaryWriter::Write(int64_t value) +{ + stream->Write((char*)&value, sizeof(int64_t)); +} + +void BinaryWriter::Write(uint64_t value) +{ + stream->Write((char*)&value, sizeof(uint64_t)); +} + +void BinaryWriter::Write(float value) +{ + stream->Write((char*)&value, sizeof(float)); +} + +void BinaryWriter::Write(double value) +{ + stream->Write((char*)&value, sizeof(double)); +} + +void BinaryWriter::Write(const std::string& str) +{ + int strLen = str.size(); + stream->Write((char*)&strLen, sizeof(int)); + + for (char c : str) + stream->WriteByte(c); +} diff --git a/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.h b/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.h new file mode 100644 index 0000000000..e224d182e3 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/BinaryWriter.h @@ -0,0 +1,35 @@ +#pragma once + +#include +#include +#include +#include +#include "Stream.h" + +class BinaryWriter +{ +public: + BinaryWriter(Stream* nStream); + BinaryWriter(std::shared_ptr nStream); + + std::shared_ptr GetStream(); + uint64_t GetBaseAddress(); + uint64_t GetLength(); + void Seek(int32_t offset, SeekOffsetType seekType); + void Close(); + + void Write(int8_t value); + void Write(uint8_t value); + void Write(int16_t value); + void Write(uint16_t value); + void Write(int32_t value); + void Write(uint32_t value); + void Write(int64_t value); + void Write(uint64_t value); + void Write(float value); + void Write(double value); + void Write(const std::string& str); + +protected: + std::shared_ptr stream; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/BitConverter.h b/tools/ZAPD/ZAPDUtils/Utils/BitConverter.h similarity index 96% rename from tools/ZAPD/ZAPD/BitConverter.h rename to tools/ZAPD/ZAPDUtils/Utils/BitConverter.h index a36cc534f9..5cca35b319 100644 --- a/tools/ZAPD/ZAPD/BitConverter.h +++ b/tools/ZAPD/ZAPDUtils/Utils/BitConverter.h @@ -136,7 +136,8 @@ public: static_assert(sizeof(uint64_t) == sizeof(double), "expected 64-bit double"); // Checks if the float format on the platform the ZAPD binary is running on supports the // same float format as the object file. - static_assert(std::numeric_limits::is_iec559, "expected IEC559 floats on host machine"); + static_assert(std::numeric_limits::is_iec559, + "expected IEC559 floats on host machine"); std::memcpy(&value, &floatData, sizeof(value)); return value; } @@ -152,7 +153,8 @@ public: static_assert(sizeof(uint64_t) == sizeof(double), "expected 64-bit double"); // Checks if the float format on the platform the ZAPD binary is running on supports the // same float format as the object file. - static_assert(std::numeric_limits::is_iec559, "expected IEC559 doubles on host machine"); + static_assert(std::numeric_limits::is_iec559, + "expected IEC559 doubles on host machine"); std::memcpy(&value, &floatData, sizeof(value)); return value; } diff --git a/tools/ZAPD/ZAPD/Directory.h b/tools/ZAPD/ZAPDUtils/Utils/Directory.h similarity index 96% rename from tools/ZAPD/ZAPD/Directory.h rename to tools/ZAPD/ZAPDUtils/Utils/Directory.h index adb2e17d28..eaa6a26abb 100644 --- a/tools/ZAPD/ZAPD/Directory.h +++ b/tools/ZAPD/ZAPDUtils/Utils/Directory.h @@ -23,7 +23,7 @@ public: static void CreateDirectory(const std::string& path) { - std::string curPath = ""; + std::string curPath; std::vector split = StringHelper::Split(path, "/"); for (std::string s : split) diff --git a/tools/ZAPD/ZAPD/File.h b/tools/ZAPD/ZAPDUtils/Utils/File.h similarity index 80% rename from tools/ZAPD/ZAPD/File.h rename to tools/ZAPD/ZAPDUtils/Utils/File.h index 4cb7b56093..e3f8880cb6 100644 --- a/tools/ZAPD/ZAPD/File.h +++ b/tools/ZAPD/ZAPDUtils/Utils/File.h @@ -6,7 +6,7 @@ #include #include #include "Directory.h" -#include "StringHelper.h" +#include "Utils/StringHelper.h" class File { @@ -58,6 +58,18 @@ public: file.write((char*)data.data(), data.size()); }; + static void WriteAllBytes(const std::string& filePath, const std::vector& data) + { + std::ofstream file(filePath, std::ios::binary); + file.write((char*)data.data(), data.size()); + }; + + static void WriteAllBytes(const std::string& filePath, const char* data, int dataSize) + { + std::ofstream file(filePath, std::ios::binary); + file.write((char*)data, dataSize); + }; + static void WriteAllText(const fs::path& filePath, const std::string& text) { std::ofstream file(filePath, std::ios::out); diff --git a/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.cpp b/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.cpp new file mode 100644 index 0000000000..6c27399d6c --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.cpp @@ -0,0 +1,96 @@ +#include "MemoryStream.h" +#include + +#ifndef _MSC_VER +#define memcpy_s(dest, destSize, source, sourceSize) memcpy(dest, source, destSize) +#endif + +MemoryStream::MemoryStream() +{ + buffer = std::vector(); + bufferSize = 0; + baseAddress = 0; +} + +MemoryStream::MemoryStream(char* nBuffer, size_t nBufferSize) : MemoryStream() +{ + buffer = std::vector(nBuffer, nBuffer + nBufferSize); + bufferSize = nBufferSize; + baseAddress = 0; +} + +MemoryStream::~MemoryStream() +{ +} + +uint64_t MemoryStream::GetLength() +{ + return buffer.size(); +} + +void MemoryStream::Seek(int32_t offset, SeekOffsetType seekType) +{ + if (seekType == SeekOffsetType::Start) + baseAddress = offset; + else if (seekType == SeekOffsetType::Current) + baseAddress += offset; + else if (seekType == SeekOffsetType::End) + baseAddress = bufferSize - 1 - offset; +} + +std::unique_ptr MemoryStream::Read(size_t length) +{ + std::unique_ptr result = std::make_unique(length); + + memcpy_s(result.get(), length, &buffer[baseAddress], length); + baseAddress += length; + + return result; +} + +void MemoryStream::Read(const char* dest, size_t length) +{ + memcpy_s((void*)dest, length, &buffer[baseAddress], length); + baseAddress += length; +} + +int8_t MemoryStream::ReadByte() +{ + return buffer[baseAddress++]; +} + +void MemoryStream::Write(char* srcBuffer, size_t length) +{ + if (baseAddress + length >= buffer.size()) + { + buffer.resize(baseAddress + length); + bufferSize += length; + } + + memcpy_s(&buffer[baseAddress], length, srcBuffer, length); + baseAddress += length; +} + +void MemoryStream::WriteByte(int8_t value) +{ + if (baseAddress >= buffer.size()) + { + buffer.resize(baseAddress + 1); + bufferSize = baseAddress; + } + + buffer[baseAddress++] = value; +} + +std::vector MemoryStream::ToVector() +{ + return buffer; +} + +void MemoryStream::Flush() +{ +} + +void MemoryStream::Close() +{ +} \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.h b/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.h new file mode 100644 index 0000000000..5a17bb0c36 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/MemoryStream.h @@ -0,0 +1,33 @@ +#pragma once + +#include +#include +#include "Stream.h" + +class MemoryStream : public Stream +{ +public: + MemoryStream(); + MemoryStream(char* nBuffer, size_t nBufferSize); + ~MemoryStream(); + + uint64_t GetLength() override; + + void Seek(int32_t offset, SeekOffsetType seekType) override; + + std::unique_ptr Read(size_t length) override; + void Read(const char* dest, size_t length) override; + int8_t ReadByte() override; + + void Write(char* srcBuffer, size_t length) override; + void WriteByte(int8_t value) override; + + std::vector ToVector(); + + void Flush() override; + void Close() override; + +protected: + std::vector buffer; + std::size_t bufferSize; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Utils/Path.h b/tools/ZAPD/ZAPDUtils/Utils/Path.h new file mode 100644 index 0000000000..496a0ae13c --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/Path.h @@ -0,0 +1,50 @@ +#pragma once + +#include +#include +#include "Utils/StringHelper.h" + +#if __has_include() +#include +namespace fs = std::filesystem; +#else +#include +namespace fs = std::experimental::filesystem; +#endif + +class Path +{ +public: + static std::string GetFileName(const fs::path& input) + { + // https://en.cppreference.com/w/cpp/filesystem/path/filename + return input.filename(); + }; + + static std::string GetFileNameWithoutExtension(const fs::path& input) + { + // https://en.cppreference.com/w/cpp/filesystem/path/stem + return input.stem(); + }; + + static std::string GetFileNameExtension(const std::string& input) + { + return input.substr(input.find_last_of("."), input.length()); + }; + + static fs::path GetPath(const std::string& input) + { + std::vector split = StringHelper::Split(input, "/"); + fs::path output; + + for (std::string str : split) + { + if (str.find_last_of(".") == std::string::npos) + output /= str; + } + + return output; + }; + + static fs::path GetDirectoryName(const fs::path& path) { return path.parent_path(); }; +}; diff --git a/tools/ZAPD/ZAPDUtils/Utils/Stream.h b/tools/ZAPD/ZAPDUtils/Utils/Stream.h new file mode 100644 index 0000000000..060e23cd27 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Utils/Stream.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +enum class SeekOffsetType +{ + Start, + Current, + End +}; + +// TODO: Eventually account for endianess in binaryreader and binarywriter +enum class Endianess +{ + Little = 0, + Big = 1, +}; + +class Stream +{ +public: + virtual ~Stream() = default; + virtual uint64_t GetLength() = 0; + uint64_t GetBaseAddress() { return baseAddress; } + + virtual void Seek(int32_t offset, SeekOffsetType seekType) = 0; + + virtual std::unique_ptr Read(size_t length) = 0; + virtual void Read(const char* dest, size_t length) = 0; + virtual int8_t ReadByte() = 0; + + virtual void Write(char* destBuffer, size_t length) = 0; + virtual void WriteByte(int8_t value) = 0; + + virtual void Flush() = 0; + virtual void Close() = 0; + +protected: + uint64_t baseAddress; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/StringHelper.h b/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h similarity index 97% rename from tools/ZAPD/ZAPD/StringHelper.h rename to tools/ZAPD/ZAPDUtils/Utils/StringHelper.h index 26516d0fd8..74607ce3a2 100644 --- a/tools/ZAPD/ZAPD/StringHelper.h +++ b/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h @@ -7,13 +7,11 @@ #include #include -#ifndef __PRETTY_FUNCTION__ #ifdef _MSC_VER #define __PRETTY_FUNCTION__ __FUNCSIG__ -#else +#elif not defined(__GNUC__) #define __PRETTY_FUNCTION__ __func__ #endif -#endif class StringHelper { @@ -83,7 +81,7 @@ public: { char buffer[32768]; // char buffer[2048]; - std::string output = ""; + std::string output; va_list va; va_start(va, format); diff --git a/tools/ZAPD/ZAPDUtils/Vec2f.h b/tools/ZAPD/ZAPDUtils/Vec2f.h new file mode 100644 index 0000000000..9d4beeb465 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Vec2f.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +struct Vec2f +{ + float x, y; + + Vec2f() + { + x = 0; + y = 0; + }; + Vec2f(float nX, float nY) + { + x = nX; + y = nY; + }; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/Vec3f.h b/tools/ZAPD/ZAPDUtils/Vec3f.h new file mode 100644 index 0000000000..4bfbb3c254 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/Vec3f.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +struct Vec3f +{ + float x, y, z; + + Vec3f() + { + x = 0; + y = 0; + z = 0; + }; + Vec3f(float nX, float nY, float nZ) + { + x = nX; + y = nY; + z = nZ; + }; +}; \ No newline at end of file diff --git a/tools/ZAPD/ZAPD/Vec3s.h b/tools/ZAPD/ZAPDUtils/Vec3s.h similarity index 100% rename from tools/ZAPD/ZAPD/Vec3s.h rename to tools/ZAPD/ZAPDUtils/Vec3s.h diff --git a/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj b/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj new file mode 100644 index 0000000000..803cdb5f01 --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {a2e01c3e-d647-45d1-9788-043debc1a908} + ZAPDUtils + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + StaticLibrary + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj.filters b/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj.filters new file mode 100644 index 0000000000..48117c845f --- /dev/null +++ b/tools/ZAPD/ZAPDUtils/ZAPDUtils.vcxproj.filters @@ -0,0 +1,78 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {d8c2c1e7-b065-4b0f-86a2-46ab46eedc0b} + + + {e047919d-7186-49ca-b115-e48fbb5c8743} + + + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files + + + Header Files\Utils + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files\Utils + + + Source Files\Utils + + + Source Files\Utils + + + \ No newline at end of file diff --git a/tools/ZAPD/copycheck.py b/tools/ZAPD/copycheck.py index d13f9843d4..36288f6853 100755 --- a/tools/ZAPD/copycheck.py +++ b/tools/ZAPD/copycheck.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + import os from shutil import copyfile diff --git a/tools/ZAPD/docs/zapd_extraction_xml_reference.md b/tools/ZAPD/docs/zapd_extraction_xml_reference.md index 9d84525631..818d9f1c70 100644 --- a/tools/ZAPD/docs/zapd_extraction_xml_reference.md +++ b/tools/ZAPD/docs/zapd_extraction_xml_reference.md @@ -13,7 +13,9 @@ This document aims to be a small reference of how to create a compatible xml fil - [Background](#background) - [Blob](#blob) - [DList](#dlist) + - [TextureAnimation](#textureanimation) - [Scene and Room](#scene-and-room) + - [AltHeader](#altheader) - [Animation](#animation) - [PlayerAnimation](#playeranimation) - [CurveAnimation](#curveanimation) @@ -30,6 +32,7 @@ This document aims to be a small reference of how to create a compatible xml fil - [Cutscene](#cutscene) - [Array](#array) - [Path](#path) + - [PlayerAnimationData](#playeranimationdata) ## Basic XML @@ -42,7 +45,7 @@ An example of an object xml: - + @@ -67,6 +70,20 @@ For most resources inside a `` tag **you should also set an `Offset` attri It's worth noting that every tag expects a `Name="gNameOfTheAsset"`. This is will be the name of the extracted variable in the output C code. Every asset must be prefixed with `g` and the suffix should represent the type of the variable. +Every tag can accept a `Static` attribute to specify if the asset should be marked as `static` or not. +There are 3 valid values (defaults to `Global`): + +- `Global`: Mark static if the flag `--static` was used. +- `On`: Override the global config and **always mark** as `static`. +- `Off`: Override the global config and **don't mark** as `static`. + +This table summarizes if the asset will be marked `static` (✅) or not (❌) +| `Static=""` attribute in XML | Without `--static` flag | With `--static` flag | +| ---------------------------- | ----------------------- | -------------------- | +| `On` | ✅ | ✅ | +| `Global` (default) | ❌ | ✅ | +| `Off` | ❌ | ❌ | + ------------------------- ### File @@ -129,7 +146,7 @@ The following is a list of the texture formats the Nintendo 64 supports, with th | 16-bit red, green, blue, alpha (RGBA) (5/5/5/1) | `G_IM_FMT_RGBA, G_IM_SIZ_16b` | `rgba16` | | 16-bit IA (8/8) | `G_IM_FMT_IA, G_IM_SIZ_16b` | `ia16` | | 16-bit YUV (Luminance, Blue-Y, Red-Y) | `G_IM_FMT_YUV, G_IM_SIZ_16b` | (not used) | -| 32-bit RGBA (8/8/8/8) | `G_IM_FMT_RGBA, G_IM_SIZ_32b` | `rgba8` | +| 32-bit RGBA (8/8/8/8) | `G_IM_FMT_RGBA, G_IM_SIZ_32b` | `rgba32` | If you want to know more about this formats, you can check [`gsDPLoadTextureBlock`](http://n64devkit.square7.ch/n64man/gdp/gDPLoadTextureBlock.htm) for most formats, or [`gDPLoadTextureBlock_4b`](http://n64devkit.square7.ch/n64man/gdp/gDPLoadTextureBlock_4b.htm) for the 4-bit formats. @@ -196,9 +213,77 @@ A.k.a. Display list, or Gfx. ------------------------- +### TextureAnimation + +A data type exclusive to Majora's Mask, that has scrolling, color changing, and texture changing capabilities. Declaring the main array will generate everything else; textures for the TextureCycle type must be declared manually in the XML to use symbols. (If it does reference any undeclared textures, ZAPD will warn and give the their offsets.) + +```xml + +``` + +- Attributes: + + - `Name`: Required. Suxffixed by `TexAnim`. + +------------------------- + ### Scene and Room -TODO. I'm hoping somebody else will do this. +`Scene`s and `Room`s are a bit special, because `Room`s usually needs assets declared in their respective `Scene` (which is in a different file), so they need to be extracted together. + +To accomplish this, the scene and each of their rooms must be declared in the same XML. + +- Example: + +```xml + + + + + + + + + + + + + + +``` + +- Attributes: + + - `HackMode`: Optional. This is a simple non-hardcoded way to handle some edge cases. Valid values: `syotes_room`. + +------------------------- + +### AltHeader + +Like `Scene`s and `Room`s, `AltHeader`s is special too. It should always be declared in the same `File` as a `Scene` or a `Room`. + +- Example: + +```xml + + + + + + + + + + + + + + +``` + +- Attributes: + + - `Name`: Required. Suxffixed by `AltHeader`. ------------------------- @@ -331,6 +416,7 @@ extern u8 gJsjutanShadowTex[2048]; - `Type`: The type of the declared variable. If missing, it will default to `void*`. - `TypeSize`: The size in bytes of the type. If missing, it will default to `4` (the size of a word and a pointer). Integer or hex value. - `Count`: Optional. If it is present, the variable will be declared as an array instead of a plain variable. The value of this attribute specifies the length of the array. If `Count` is present but it has no value (`Count=""`), then the length of the array will not be specified either in the declared variable. Integer or hex value. + - `Static`: This attribute can't be enabled on a Symbol node. A warning will be showed in this case. ------------------------- @@ -499,8 +585,6 @@ Currently, only [`Scalar`](#scalar), [`Vector`](#vector) and [`Vtx`](#vtx) suppo ------------------------- -------------------------- - ### Path - Example: @@ -515,3 +599,20 @@ Currently, only [`Scalar`](#scalar), [`Vector`](#vector) and [`Vtx`](#vtx) suppo - `NumPaths`: Optional. The amount of paths contained in the array. It must be a positive integer. ------------------------- + +### PlayerAnimationData + +Allows the extraction of the specific data of the player animations which are found in the `link_animetion` file. + +- Example: + +```xml + +``` + +- Attributes: + + - `Name`: Required. Suxffixed by `AnimData`. + - `FrameCount`: Required. The length of the animation in frames. It must be a positive integer. + +------------------------- diff --git a/tools/ZAPD/docs/zapd_xml_spec.md b/tools/ZAPD/docs/zapd_xml_spec.md new file mode 100644 index 0000000000..9fcc0d4aab --- /dev/null +++ b/tools/ZAPD/docs/zapd_xml_spec.md @@ -0,0 +1,55 @@ +# ZAPD XML specification + +ZAPD XMLs use a restrictive subset of the XML standard: any ZAPD XML must be a valid XML (All elements starting with `` ending appropriately with ``, single "empty-element" tags with `/` at the end, etc.). + +Reminder that in + +```xml + + + + + + + + + +``` + +``, ``, `` are *children* of ``, but `` is not. `` is a *descendent* of `` and a child of ``. + +- Every XML's outermost element start/end tag is a single ``. +- The children of a `` must be ``s. +- A `` has *resources* as children. A resource is almost always single empty-element tag, and has one of the types + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + - `` + +- A `` cannot descend from a ``. +- All resources must be children of a ``. +- `` is the only paired resource tag enclosing an element; the element must be a single resource tag, one of + - `` + - `` + - `` diff --git a/tools/ZAPD/lib/assimp-built/assimp-vc142-mt.dll b/tools/ZAPD/lib/assimp-built/assimp-vc142-mt.dll deleted file mode 100644 index bf7a2f862fea102a0bac9f16308b20a8950da62b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5542400 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~PW}$ZU#6Xb;p86H zGZkN^omn`0(%B?1J@srJn4WyL1WZpqoAYJb8N)f#&t`)4O+SC7`AI_nD~n10hT1uPzvnVbQ#6Y2~MD!`S2A*GFtVbAiD@i55`3`z>z zOng!ddFBiZda_{QmaQfX3<6+g10#q6v6&bc*g$Ls1kG?E1QN&$3=GT+35+mJP`wP8 ze29p`eQ$;*?->|a&igQc!kfV$grR_yfq~&dAj6UXCa5h83=9q-41c;A7!o$xGsqxB z;j9gt>=`r|7#JEh+A|n{9SW6dFlR8}fU>brdL^k9B@7G$Fcg_1sbXMoU|?|2gD7KIa1LaMF9X9N76yhlKIrNW z=oLT|g8g_QkbxnHiGg8VAi6pSy`tixWCjLEm>7gW13Uzay40NfWCm~;fx?QR2NXFN z>YPwCjsT8F^BWD1Uf#VM0~uZ@#4<2=^zuFwGiUHi5Ds!3=AIKJ}L$ty&&P{gB&je!9pPUUfx!5a|Vx2 z*0ha*5Tj4dG+{X7(aSqi!kppdo|z^L5O;{C23vrvO#AG^@WOT?$P(T*38-_Xg7tJC z@o0QA1C%291$d=e%t6Y_HwH3%<`?vM!5@CP~xBwzffQSPiH9J78 z4Ip9#h`Rv9ngJpvfQXJ4$`K3<9*svpHXJ^4<_y$bvB$vfQseMtc(HT>*j@8r?)p0e zxHO$2UGWSIwD;5Le!;!)TKhy$w@)|u@_0*+aq9m=dt-Rys(9+^Mk3I zilj~!V%|28`$Qq?>R{?}k<>9l)U5-ld)o*0?>d+|S0r^)A@(i<*?SbC?jB5?ERwof zh&r(Q=0eo*NkjedbsECITOsPMf$S}XsI!BqJBy^w5u$D#$X;KFx;&V=rAX>BA?lWa z%u|J^n+H=@i=^)8VQ~2EWA$Zt@wXT3-*Yf^p-Ad3LezzU?7a$6_YbB{7fIb;h`K(I zy=x)r^kks^WkphV7NSlKq^=dBE)J&d?o>p$$U@ZpWASBp5ere*2UE8dNnIdBofyb{ zrVw@eVCs62)I~znodc=kg{XT6QlAQ-Vh2*U7oyG& zrcM+|-BO6XW*~J_A?oU2>fTO4^6wdNeCUDHM90;^*K<+rchVE@{|)cGQ*^V9^Z+XpJw&O+4X!PKcD zsarS^tgZ~CZYf0FJeaz_lM(*qeFRq5#|`v+2|3sI*h5A|;=lDe;N!SObY2UPw+)WyNn#UiN-gqYU{DktxDfy1Q_rp^>e z-CjGe`<{W+ZH1`Y2UEw3q;4)mogK)(y%2TpVCtSuLWD~$MBO)#d8rU}atcs?>_t*% z3Q@NXq|O$i&JU(;Dv~;0h&ncqy`m6xbue|gNa~K>2m8Yg6mM@k!TwzbQ|F4L?kq$d zIDU^p)ZK%rlSNYZ6{3z06d!XT>i86){`fi($-fYFY#@6}A?oa4>dqpmD}|^7yU!P* zE)S+|DU!Ok_rU%D=QmY|x_K~lwMgnxA?Edg?ETvT_U}2Ex=R(nQb&3#m+d$=RD@0u!Ox@iHh;W&?6>RT0kh)lix;~h? ztw`$b-UX{`1F18GsM`lq*Ndbs@)}s(JdiqGh`M($b*V_|WFhuW1F3u34h|PNWvD-F zk<@KW0h`wcQnweP&JU(e6iJ=tGjM);1`6k?5OsAhb#MC-{$+%ylLMufT!^}LFm*?f z)cw5!w$}_~uPa2|J(#+=Na}nyg4OAP?3IP6<5Pk9qZCP9Atd~cf#U6J8`!^gFm=92 z>Yknhn+HyRXCdnHVCqzn)NQo_tNR8rZz)9GJeaz_eF*=GLhSVemG`v}b?0E}t|F_m z0h8V2f+lr*l7NSlJ6n?A_b#X9tu}JDtA^zY4 zx$kZ(I9&Q*>P(T;@iO~@8rFHs0vTRhtYTo8z#o1fjlZ6?cUd5VN3SR!L^>ZNy$MOW z4isC)lI;O@c=^>&NxJ3?9ZuKwY5#&*tPC44%iGAMi6UFdTDHF<|iQ4L;%7 z>%HT}Hg5$6{_q2z`RiHVuMA}H=;rX~6UFG4{4Uf!pw<_s@fdQ8B5wg3;~GcP{(gF0bH5~2@-`emGI<_s@Y zK=P1&O|6VID16U>!eePOINa{R!sBl@DE;^H>Vouq=mz&04MFTD5Vk3ZeFMU_1hLOR z*tQ_{0SMa>#NGm7yMov&AZ$+%dk%!{3t~@zumeHt77)Aph(~7xhev0HfKO+EM5sq^ z#zK$AHxn2@-ewJ32aOt6caP>&aR$eIpm_1=ER{dz$_`4%ybnO}?92Y*LK6eS1drZO zc8^})=P$Ut;Bi&F0v1=9U=}#8(m+gDTs5En@6jFm9u!*|-N(U^#eBR}78)%A5FsAs z?#aCO9dqd@+v9u1v1vwb*)aF!k2A|GS`(v)^Aa}>!2fJJS zg#^^y>K?tm-(LiI!rgs(In3P$!7Q-5_kox&cYAcl{wLMZ_5ww+9^J7Z+tgn;fLz%f zY7cevPaAL$^2&nJ){9P1+VXV=C9N5~CJa8kb5uZ);@KT7;MrX*;oDuT;Mx5+7Tm|i z8;6tD5Qsz1d*HBOf5FoTb^tUE-8|r70WNpI`K=XH0(FDKq6x%=g#|U@(9i}Y4qsU_ zFn|*st~i`|7wm5J7aw2&&QYH zMJPnwIheY&Na}1M>ZXCz=|a@~gQ;spQg;?&uOCPqD@2_htUirJQfCS=FAb#bZXMWt zaWHkJNb0si)YXC1ZH1`ogQ??1Qs)b?cN@sRy%2T#VCtT>A^ckz1+K^ZKfXWB z?L|_j3K{=$1F5rxsFQ=$Pg9Z9ZT$@nzkOc53@=0>>il5pa*@={g{a#GQunqN?B6<= zI#(ohSAT)c;{&NX3Q@NXrcM?~-Cl?~Hjuix5Ow!p>b|xj{0lYjpQkUwi&BU>K3IKm z7D=5d#Jp>udc_x_&JLz-DU!OqoR*;a=N(9$Dnwl#OkFLKx~D(E{$K;y`?m({-+3@~ zp-Ad9!R04!9mu?^5OwEZ>U5FReSHtgqrBku!di&Be=v2dNa{Qx_V&5^GQ4PosMAx2 zwioWUAi`xMxUAwm<^~%7fT)XusoRRAjuB#B9LPLVh`K(Qx?Uu8h7f;ZU@} z`N7n^ZASQ4^anUTt~vWMyvT*9tAnXKilj~wV%|BBI#-Cgbue{vk<_KW1INcRkbh+% z>h8hRl_II*gqU{^WZu^*uz&e9q5kkiQfCTLCkBd-vk-N5FmQcXh{ox0)cPT_& z9!%ZeCWL=2A?nyb>S`hC=E2lmMN-EKQ6~p-UnoS~IheY&Na|u+!R^{i)sh zwIZqe3W?u7ka?^Sb$VJ*|HdMz>oowELvA2-cPqi+5(iUfilpx09dJ0$1I6!Fh`K(Q zI$k7otdR6K4P;&~MBP4^x~GkZaCwO2zEp_1cQAE(k<{&lsA~h6XA4m$rw#STR3vrK z_>FS{m46U*elT^pNb06S{2>NX_qGD;-#VB&S7deVVE^WU)E$MWTL)7oi=<8zl3vn4 z>gGb!-Giz7+JNxyM~J;(_mx7_@##SQaTZCP>sN5PG6R*Tz7TbGFm+3j)cHd4(K%4P zpbAl!2UAyzq;Bpvuz6`9b$`pj{+$O?7mB3rDa77?AbYPu)SZK=(?wEO3Q-5HKh{Fj z{e!7vMN)ScqV62XyjF-hJzc1O@75#2B^KhoXCQU45Or}dbz70tefo*xeZj_^Fq|^gQ-hJQg_xHobK0w)IBW&hs!&dI$I=lu@HOJKM4cZ@-P<~Ze``O3{ZR(0XL2Fx>R{@QBB@J-sLKPXbA_l|2U9l} zNgdR@G>|%3h`M_)b)`t^&VB;hYX_=7zLtXh%cl?ZhcA-4R3>n}8U|8#7NX7$rcM<} zT`$DEJdnDj5OsMlb$@FS{=Ik|oR6M?%F|kix_K~lSCQ1seF0YY52P*>qV60_-C87d zA3uWq@eN%5LDc<&scS`27YVUf52TJ2qE62M>fcx-bt@s}9RsPmTLKQ3IG8$9By~3- z=GB49p{)>geK2*rNb0U$1N);4R37v~)a`?*ds>4Cm$lEq>cHhoDn#8on7X}4>RKV@ zEd!Zn3sEO$2=&KQBz1c~fWyTOq)rr~&JU(87fId0t6+Q0KVh;*V{h zaQ20$vxBKyilpx0d$51=K>hfUfYLV2fg{W(D1kHaHf&DuVrY;mo9cvx9Ui}9$ z?EIj4ytNQ@|6uA^k<^(&=26yx)U`s?=@~=)d$$S^E}f8YVFTG4 z3sDybQ@0gK-CBsf|3K!MLe%xa)b%2%>x8HSyN?&5ZXZltDw4WXh`M(m^PU!h!{r@J zoh_0&X#5^?@MUQs@`h5oPu^*^3X0?q$J)Rmb*&HGz{U1IM*vz5!wj!yEg{Wf#sbhtxGlQv%MN;Pr zQTGqzkGuKca7lxyGeuHo3sLtCq;4xj-87gwUL-P3YVxOB#- zaD;kvzwu~(A$` zcrU8+7#Jp`@#nKHyJ61onZLf(ff1|}v;fPaSCpd{tQ5q15s=5gaI7_ek%6HEGSuEG zzydOFD###@-d@lGy%+AupwXGmy#^qu&b<~Os&^_#zejJc0t*Af3)N%>hAyx%9jy)^ z>CU|hj0_Auom({^RtqqKOcf371X~T_y||hSbtMDTl?Nam+5qv87DOqC_hMBp$dwnE z85l}DI`>9EEJy%Ry;DJEdGz*rfSfTe3F6QSkW}a11`yRd6=Z}*Z*K-jMNJaOp&*kw zT020}oqHJ|4&{J2^aE%Fw^wve2iTz?-U}U=L&L8_f^!DMp&by1PJ}20@m?^39l8SK zP-t*209n#I6=aY{Z|?+<8-650TzLQ_)w%Zsi0YjR((lpRy8)!)S|Z4mAY(dOFMy;w z_dZ|%2j>gWlDm$*7a*<-gIEpXy=cpU2It0W5LXsJT$uoIr8Yz}^!EM$sn7*G6l79Is{}~8 zbMFC&Lr*{)x&h+QrS711a4(4W;%+w7p&U?$dO#d%0dZ(m7dYfWyce6YK@N=oITRY4 z1|Um%r-BRur9D;#h8HUnAi)^`lIq+W0it@Rg7kaz_Bw!6v?qXq6J$(BYXV5RbMFF( zD_1~V2^t~x=oJ-j2U`u|y)cKlGU+NLI29nS6o9z$O&eG#i1&gA>`DWWD?K{*RzNIh z08zbDL1ux{9>^ICP>0R{Np&bG6Mry)v-t}qa9)F^OAzlxW)>(QIhYw3GNA!^0Aze` zXaOk6fvirBhlJt-ka*|b7a*#4DoC?OZ|?<=3P-TxKxTBbegH{#)+YFLmS#9~)CPF; zip~NL8Tbag_?roJmIl;W7a-0$0C83kSY0oO_u^6}$XO4VAo-eu4U)`2RBvbiD2;*a zJsAganFdI_bFTr2>YWPG@6p>U!N$PwVtE`W*g(c~v|50qJ8K<$I!iqqI%*9(dPN1m zHu@U8NQSwr?=mF7RzO@f1LCq5E#No>@m^SfT?Q)LVdY`~$l%^k15ly@S!x7zRsl%7 zb8iKR>YWPG?9tns08$|Ub{5Etj@AZ{bZ4!CPiLuyLr1NEN3SR+IJNl-yf~8q4Y2Q* zAkJ!lII95StV*!DUJ&oa!VFM=O<-bRDE8>wI|FR!-UT44H&g(Wia_?xh=l~$4v=`~ z-UA@2cPdD~M{n;6kczTcP=JAq>1aIxlJ2Yp&GK+Kbku(E=oKvoCvM*lFN|O=i-o!@ z0^%|ch|B!J>Uu%E7wlk{WiTO9*aMKky`djK=?7#fBh*<8?BHnT08zbDL7F{!dq03w z+>Ze{3uHz|s{ly4v-W{cXXy)vj@k3y=y| zu**QkbhJi*q&sU5_;i+@aOkMr;L$6}2DZ_6!wW{3%XFYFYWPG@6p?P0;EC&>@tus9jz}w z(w(&pKAoi<4jnZrph7GKoY#C*3SOK`g}UwMd5GI~K-{(h;x=or!d?*X#o|;@key&e zq%j5#P*E2GGP3sr$lf_okT6pKNp$Yj08zbDLApJ9dj&Wc7+zFGfx--ANJlGZ1-eIP zjY@(~XNgJ%$ZepKYy~(reN+No7{S~Y3w7HBh}%F*?mc=%>%j_pLA)32V7Dy*xy_?< zuLsE9&b4L4qy=;=Bk*(47D)>;>^&WTb$Ct^(vdXlk1P zG90{Uy0^ChWOE|aZ5u!moqKnHsNSg{-5$NY3qUID!EOT?($RVVEZqufAA(jOD0uX? zo&X7Tx~OP?+QAAQy}asOfebI4a`YG``1JDbYT#t(4fk;Abr*!SEBB|HFihwz7x1v$ zTENJ_P^9Y7Jr`;phfwBfc0<0ae2H}Dn zsNg{jPRp$`U^YWz0YtsH3sTxW6(k3>d9obD=3uDJ$SJ|HL?r`aa{y@dL%@r9VC^9) z8Bon(AU;|;v)p7UW~(oM*Z91 z@}m^Qmm5z)e2Lubv@Fd4TN&Wd>l^UmzZBS)u-v%=#6@n*T5bjHO#>H4&;~GwdT|1z zu6rs-4r*l`)Ji+3mB~v7y^=m8nR0glzFgq zh%C1Tz}x}tO@XKv2SFOTr-J05MwCO{VGeZ%a)-`xE2t+3b_cZ62BKcnKnwxNK@Bki ziD2zMT5hd?xdYnw1W_+6K^nTJg5;n^yqAE4$NJ-t@IdYXTW$q)ox$#ac5y+}i!TzO zq%ajE2Q_3BNCazt+j8pym^+}IbrAJpBS=H{RFE9hh;*ns)S>P`9xt%m3L0nty8}8V z0HR*xKnwxNK@Cv?iC`U_u-tkA<__r428ep03DVF#6(k2W;=VW}Jmw#Rga`5fizRqu z2J8;#2nvXL@kAUP9-vVhs3EgJB3OrWEVp{V>JsQ!5QuuQ5Tv1dDo74$L^#wP;!t-W z4@X&o$FacffDSoS)Fr|P7;(9@&VxV!k_34mBLZD$Y z$U?7T3D53o1>f#s4d`Mo&{&;EuV`u&r~%GvRu5YL6AfxR^1gzthgqA9W!$i*4RhRZ zM;*qv;m%_4xZyVy(755!I$wqt@yQ@3`hv#|`O`sc!sCYZAdPttqnK4e3f&cy2mQdbI5R|Qjd7D=6{9$1|n zNS!Z4-71*6rAX?IUIT~Awnkru7pf3-w_xgOk<_h)s9Oh8_ZPI2ua}n#w$3FKN!`<{ zVDs2O>aIf6S;5rlBB?tIQTMOGm*K@)h`KD8I#wigQ1iZl)U`s?&4Q`Bn}7%xQ;2!z zKIQY3Y@5PR9G zeHmVS4FmhP3Z~8%NuB5^u>1a1`7*pX3sJWUrcM<}-P;{tb!H&*mO|9sf~or(hw!iJ zWpI3)1DRI~QO5;a=W-QEohHP*V<2^*5Or2Cb!(B-m7WCKdk^GaU5L6Yn7URZb&?SC zu7S*Bg{YeaQx}V*&K07L4-_AFL&4#43Z~8!NnPnBus_^D_HKo!`vp_Si=@sIqV69k zTzVnuv|#IDp2i}=MHHe=4CKC4h`K14y1hv1audMyLLbOpTZpR2J^pbcc6 zC`8>Zn7Ujfb#uAF`N$5W?rjLzzpr5GT#?j$+zt-sX&`?bg{YH)t#gq@QYQ+rw-03A zT!=a^n7Xeq2>*VBq(89xN+Ig1VCv2ysXGf%R|hiB7ou(zOx;o>bS~eHErs}l52WsIFxbCbuyrn>$m){7{!Ig^y9!Zf1yiSsq)ru*UgALN)#c_A9K&ESoO@gl3@_3Yj6qYY|6$74 zfs~)|=;i$hQojJqI|By}pj{URT`npPzTFpHx_nd|Ji9OWb|30+QBm;dzWD+)1>(_t z*rWM~K{R-6d1s7@fKR83iiAg}j|xY)NAnv6&+eNZ-9J4#1wEP*IT&_YfOfQlN3%QK zIXt>SqeR_YAk_gLy&eiapluXBy)G&NUBWNw{{R0E8dP!c==SG$VE~>T^ylzsKF9$U zeIbVs5rByBa569$pY-T<=Q!rVA;IAB|DZ?nPo|o89^J=5!vz)|%|{gC51%>XLD-!J zAa{bMCp-wcGYmZ26QTlfX9s9Js2kaxWe5?dJ5xXtn?$&iQ22|0hJHy4f6%cMFF@06 zAb)jpcY4Tld$V+UD1ZYH9MH!>1D7Zs*oqK=dSEd-Q2|XvI46L@88n*;cMrdSGYh|< zg95*Rw+O$WhXKEUvkJeUg9E>Sw+X+XM*za5vIuuUlLR+H1nSbCY(%+~s5IdLa%%}_ zDy-9;0~B@&9=#qK9?gjY3?9vi5)6(z6u?O#nB&Ea3{cKXmSFHW?yLaX26N1rg8||4 zWY8=DN*D(sM4&FWC(h*_-Aw#o`vn+0x(|NluV*}b#-p35Tfn3HAUMl)3LXZ>11L8d zcyu4~?7rdA{nOR>fJgTU<4Z4892ppVy7^tYFL-vJG(O-ON7LCrh{-I~^4^Fus=WW(H+j2bWGzKIjcm zQRsA0aq;Lr|DuGOfx+kiDEoPU$_Y^RgXBLP?wR5Mc8@E_DJQ|M5wvtdbBqhvHLf7n zNIF_O$`lEI<`)3Fhwrl^zaZE}N?@U07Zr!k{DL62Kpo`(a@2h;3`c>&h$Gyi@eOG1 z5i^+n+Jm}?;>IU^x)1qudvUxLaDs|WLE59@m+5h4zj0_BE z&FK;h&|203lFi|3eX!XDF7>q_cJT`^^9wr2fKoocpob15y*t=IlDmgbx3@#5M-1F0 znh?98E|G@tpf2IX?h>SRN7&o~F4gD#h4>pZk%OgV_vj7gcwq)A0(wC+E8XW`ECiSI zun?IH;X&Qe%78UQ2)F~>;t+$lgI|F8Gk?7UxK;*7fDyz3sJB7qd3p5uL#-3TWgVy< z@aP292cUIfpcq&1=)UFJb;6@t$fNtGPdB4ScM!*mI3{p0;A(u*v(tgYqg&jg+nEDY z9s6`UakyG|NS0cAc5{FVf>M5uZbqN(gC5-{Tr4~!OFsH^GJ(}Qad>ol2)t$o)j8ds z0wA>|pFKLA1YUD_bP9QNvwL(p2zYeIs2ISSVBm5J(n1_{(~u4)a4C7yqx+&y_hC>$ zv^d^`!K0VO8Y#L#bt|Mx5Ekwj0xMx1yKee+Kk(`P1u9Lu4I8Q?8A=0vdYxoEy05(m z{0+{KKAj01j$Q5&9qtkhb&?Do{I1_Y#dL&A*J+>bqTQr9xZI=w3Ma)u=q6E`y9rd^H~s>( z2Z|(ox*dObG#^s;)IQ>J^`xhU%pajWcV+dqG1j?=HSdB28J^p)~8B5 zKnW67`26w!^-zN)JU|T+Zcxql|ImwBpw!cxEC6c1OMqG&$Cw!)weJ1WOGqgj(tZ#K z3wI3jXnteh+x-F5Na()lv11hkaCulda+IWidbkQ6%_%Ax43IuqMv@Zz#7=uiicDIB1@0Y8hPk3}+2h|t7J}L??;y!}1bO8tS%mp9NnF}XNxORaX9-9CD|K}HQ zQ8Do8J_ho;fk*fG&;0c+Dh4lh*@5Qjn2$MgFnV;CsAPaf9J(PnIw1b=3uZ@9GY(Rp z(A&R|I9|ns)xZBfVD~S$@niWHr+-h`;`Ohv1K7Vl-FG}Yqd7b~vjsdmizPs{dw@sx zM{wkFg4^zn9G;!dH^5N|iZ+xuRv<2pMY^37Kyl0ijpLWoLG6$oeUB|bh}px^jf1~s zHUp@!d%~mp8a%4kgT0;si|QIsRR1rr_UI0G0B18Ek8Xd^bo&dVKmY%GG^blIcpP_k z0OvDz4e&7;8Xm2nv;l6M@&18_)lq2LI0sD|^K6j9DhDZTbeE_Ucr+gYC6GsUpa4S* zO9g`q{7`5$WZ={N3Y;%Kd1xDgGle!Is4efg<39wjds-jhZ+QY*k=k3q=+W&d;Gxa$ zaquTAD3C9{^6Wm~p?%21`a~J4XZQWr+#bC$T%OkVJ^7vPdvroNFrL;o_}f>4LazI? z$H9lJFAP5a|L@cN0hIkTJer?9@L>Mn)0?K?)0v_ICMrCd(?EUtG*F{@iVCP_2kIJt zPCo^u@CuLaa1M`dejn>srL4Z)&t6OUbf5R_KIYkd^~G6M(2D626|fr5?z3Q-BQLhG zg1Tber+q<{<~2|?-C_jlXB-2U9`TNGj<*_3Da4F;YIV$|Nk56B^gRKLcNuvVgV|XKz$yCc-_DY z9PZIwDB;n4%A@%tzlZhta(R#LYaZRlJubcir~VJ+d>*|lMxcyjeZqs^>4!(JKjRCJ z51@2@6qL?AJiD)ZbY=^9bf56(td{WU{_vtC)P%wD7>gc*NAo{{B0*5i+Z)FCLjK49 z|300@uX#aP-2-%tj_GGmL7Jly04@0)KtUb>YtY3Xej#EF%Hg2?)j@C^2!w`(Lw3O= zG^f5msrG!jJvn?jeIGbBR7x_Gn)-GNfOx)^feOVUp4|={o|cXp#atj=;E^3(&+d!I zT|q0v7(fF&AWbFbz}26ON4JxLrzJx%mq)jghNq#S?^Bz%@gaN3W}b zPp7K|C?qs|dU>aVrgwT>EkFe(C|p3}>7eyiyI+8O3a=u4Z$L^xP%3%B{vA{bx;_9` zkf9GC^`q;97qiWgionAj-HvVkp%HpM3uAtU{ z>jM`{4~1HAV0d&p2)yP6wFMx70c#4}1c!wnq?)LKHwDT)c7#FzEA{}G2Aa>q5&%iq z0|1nyU$A|{9ssk<@CLwR3vd9Sl{=oGmKvz(_d*|(y0m{oGW5a!%pScg|3C>0R$jrz zOfm#KIt#${tb=FwM{qF+t~fd)Zg_M?Jn#Vxq*$LSQTG5h8=FC6zo4@5^oxIb(7~Qg z&@oe>;T!9}r8hy**nJt4ytBT7BK3X0S2o?(;8LgFr*lX+Ib|Ku$Q$2Ci-0 zUNCs{mMM7j`n~Y5K3jUo7c^6H9aKMD`2uoP3}{y4ILK8VAXkC*fI)|oK<)xJEfqkS zzEjYr(~)B*IG%#ufLg4egNdQ%6?=5wcv1KsB$XFbrOVzW@I}?YOf9 zBO|Cp0S$|HN`gWI8Uts}d;ODu6{3K%zQe(F%~L23WKJBx>@RU!Vm%3JH=h z_{=ZR1FnuiayFm&1p`?=^9x3DfFvyrpD{kLi-DoR-lNlzqtj8qqtj8Q(^18v)6t;Q z(E>Cy(kbZC87Sh>8K}`2Xak*xf^{SFAyZauW{ltzd)42Xa0y&9^F4b z^GBTK*XNy}WzJ9*_nAL}caoMl1HZ<>|DwLqpcPI6-ZK0eH$L;nc#C}IkGTDrKkoEr zenEeh&-?P77p&pg+$`Jw^rwe*Hsb zDg63}%i=%tN3d#vj6GQY;5|Du&(YXrPm zKJ!N$0GYu9GlKvC0 zNk*jWBS2fn^O32oIVytll7JjZS%#Yyobc3E;2~)M|Qh z98{cwm%Afn#b>WUj)2*B1Hyyacj`5{_JNv9FT%0eR|c^Gn)NdvJg9w9WZMU>6Q4f^ zc?B&z*&sGR?fdZxqy#dnV({YCD?|uSQ+}-2gW6;@wFWf=y>ty%oJ^&d{J@3JM7&6Z9(djPm zA_LUe1kW#nk`SoqMQu;MU^jx-T>_vv3JH%+Pu4$=>m@a!yB@a*&kCwv1Ba0kJom-RL1_^?h!kKRb|sD_6} zvoeE6b20}5c&zZUXRr5*7n^_n|3AT_H=M%-w9o)lA##Eu5Ij}_nnzN2Aq(ofbh}G* zx=DC+yDNBfx+!>cyK8uKx@may`WYZ5U_E-n4PNxCgE}_u0Un)h0nov}08rfpYA_mr z+UPzi9H4a#pcM=ry{tDtC%A&5H;}`l`Je#8FwgD_FPuSUHG3QU2L(d&5ryc(XTWpv zP`z^?dO`8v2+<8nAjciSBSsyJ9=)PLislS29vXrg04SzF$BmHkE@+nNr$;ZV2gFQ| zZYK_Kl0$KmNAn?p7wgnO9&|SF=yW%LmOs#%5)^~T8 z%z@4h?PU#x8rOaB@EKV6^s>5xJkos=lth~kfkKDlg$a0e1GHWQ6q0Aoc=WO=f>d=f zLW2+#e4UOG9^D5Id-SrhLYxiafz^sCm@{++a)3+(TXhChuzK{e{skQZ-N^`7_ZGs3 zdKY5WO%$2v575s4pv3^)xA>h8dNdzm zap^wb(d*CB$^K%dhY3SB`!N>_76yKSW)>C(27bYIFeT6}0_OFDDS>7cFs~g<33Qu) zdHo>Dqq`ZjyW69)9Yl3E2e2?Obhd*?kM3s3X7F|p)!hu*65iPkB0ajBLHoTuI@`fi zcXI&?D5-!7m(F$w`#7lE1Zr1;>!yRp99bBU({%SCk6vC@IdjnAsUDr&pm{HkUJnj_ zL8ccM-9h8}tP-G;!#kPb83K_XzY;6*UtL~i3m zt`fT(xK@hAE(dNLJHq5(ev<^93Tg`K{I;Gf(e>yK=J4r0{2~mbtUFl1Lt7Xm)%@te z3wDqYto(#_GQcGgq%1)ickt+r|j{mx$mobdZw~c?r~a0F6jTa)3sQKrVz1DV=}840hpZuvQ27VCBm!hMQh4>Uo(Gu^T2aU7(aqZA4LY>cQ^2EJ;x(s-rMEx{ zhex-xhxLupPaf7cN^Cs3y#+u%;_~Qb+yxrL|1aRt?ai?ZlrKPM=7LI1ZpeJEBL`@- z>p!o#cOb)ySG>H&NUOYMuyy_LfS3=R*`c zdJ7G}QOxJK50s@qDH9ygYLKzRYoM{iSD@;?`?M!$KuP+A!ZYZo)m@KnKF{uJFZe-D z>5W(L0UgH->M;9uJ8-<<1T~Ypxxu4!FWx)_weiXY9QT3pv`04|R(teN?Ah@Y&7S2T zL%R9VwSqgtpFxdCxD#uUwDNqs=1K_xkM7S! z%%J?-St;NHs)NsYc3*s9?qtGnjKz-OH8*%Y*Yy`l;9vm_wt^;OLCykY57>MsN*Qqz zG;rYT(Ot#i0cz4-_vvQz(7py)&2qrw;4fy6gFl!(tS^*tytp6(S|Pv;9qaw~5R^7f zyyyej1!_J*d=4JKz&^hZ8fWor*At-AtgiM<*kw_0fEg<%O(+2}3vYF&7C?+XK?*5Nw9DJs^z^K}Zus z0Mh6XY=*Qwz>N-mL2whqqZ{1l@aP0LLAt@Mj!tk3#G@PB=V_%*J4<`-;H0qtZ1NsEAapgnaU9%v}0MFn&m3y7xx zmb(GDz{*j=kzcd;#bD_T=_MfPq^}Hdhc-M*9>0a%C8wc!$S{E=7qHO_wKhiC(hghaA9@@w4S*Ej~U4Q%C2 zkQMwI=RpD>>%o%zky}(C<_iXLIPz;;`0T2@-KLhPC!S+kzeDOBfm!R3x18OAR`WccHxgW?#QoEeZ!Go zaI)%9URucm+uHMOS_e?;Rl49anyhh55pfKjJ;e;Sw(V z8Z{~cpZP%nDVPaLF_AK!-H$=((4+fEFla?6BLl-{et|?2kM5hF`2_+&!+?<%pZNtc zZ9s_(G~nn3($}H_+8+-R0*y(wsDREh0P$o#^G6=x*DL@hJr#b<3Q){eYPj%gI-CF{ z4@Vsreoc=ZF8rDSD_r01 zI5{SQ(;zstMV|W1FW933+QrYWar!fVq?ZmT>_Ij~{(_`8CmWE+$O@@pLU%pVB} ziI-4O4X{F}IiL`YxBydU0g}21RR{9*ACSNWs9KQ6KY;{Jz|@<3=8t#>vJ&L_h?9;W ze}SU{lR=K`p^Bbh$)M`nRWN`J!4*Z9mI0W#t+$Zw!Q&JQpR7N7YeKEjl#fL!+EGk*j~ z8mv|XBy#IBe+1kHlh3aF5g^w`e*VlK@e;&40+I(Yj)9`q5R_0_ROW!<#f4wM5me?p z14%@J%948^RwAe%y!M$tGKt5dw?hJydif)xK+@pAmvKZ&p^-+P`6C{D=8p^l8FU2X z0h`bK5f5Q%Kwf(Q3to`dKm`d{8OUolVamW>n*&b%pfVJu0qj3m1_eheSgQ%h+e;uh z)s;Wu1Gp>!4f2D+8{|`v-!Fg*VsM7w7i{?P@Be?W062+*)@WCN6n+7VK@zE;i%J2Q z3k@5=8kG!CVCASJfT$3a2oU9?0-BESQSor(*Esi?U$6$eRJ}w6G_?UL$3RAFeC8KS zQBipD3p8NYJ4Xd{P6w!11;tzS1AYMpPziVeR9YSY6`mVF<>~@ZkvV~1keOe=Lx5k< zTYz7{L4jY;S%F``!@#5aFu$O;fh)g8c7rRw#^!?m|Np!4YwS+=|Np;d_v2{r{3&WX zvHMf=GsbU+m`V&idMkhU^z!CLfSQBsyCOjQAwDRXFtmOv5%9+PV{GhK&R z5AJIhf~uX#PP#VtV2d65Bii`t7**BBUD-wA`-3;IW1gorPz#V{~ zaY9hr)uXdS1u|&}4n9z#a)yT79`ITL_FbSYG%sc=m@qheJH}Xo6n67Lp&&?W!C`Xzb(%*n>rIH;JbEiZD`P-iUR`iEDV*a4*9}n9I$Xd*Tim1h(F2ce{ujHi z|NrmNtj^%koX!Cv1R%B{h5g3=44|X|cFofNpiwlk(kv|8^`O23htytq^mK6;6pmoO z!NPqbI5dyH28H`yF7$90hPV!F8as;XP!ld9+~M=bxYMo@)QzA^m0w6=xKSSN#)FSo zz~Rq}-Xo>oQaSW+tOkV(N;qbMLkAL$y4>jDc=|8c zjo@(H|Cbmy!qTrtFKZgexbB5hpk>Ve6F5NqWsl}60ftf*qXVxcz~e-q z(I6p@?oxD}dH~#g_H3?@5GZ2y?Pfq$#^~`sK?8EXGEQ^UP|N|_*&WCM z8W8fZzEG;y&1-5G$dKyM&7umb_#JnEV#=di ztHMB=u9^=#@L)a!c9};n?{2d|h8MRKOcF*ut=|{2pf3gbSg;K95L_)>&V$=3@?7jnSkyO-^AC~>UQLD>}2eAlyU5IWa)O)aqM&ib$ippcKl2NggGN)_S@`vye&!dDmEtgGsA4Kn;n%qQnLq9dsMqGg zA9;yi;}pnZ@KD2f7k-ToF8mrlKl2Otv+(Pktzs$>1$T7f4u0m3`~hlh9{>?2`1QV4 zF_ox(=8wC_uW=aE4RGX-1dmjl0hxB!gA(cpzgFriAn+JhBQzT z0UewJZcp}-JsKU9>+uGlyK&$L*Kx8a|$GHg7(BU zz5yLW^_gFQ@iTuUc-@jGsMifz%M=J2C;*M^M6!J5kBpQ6jX8i=iQo}1fzSMrnJl0* z4NB19)C@{gj-d4Cu>;y|ER?|1!k%6G(A6X~?im1b%UHK!Qg1iEX zh?ocb8lZ^wRDsAj@<)Qkr5r(V74ZO+V)!E+LA_^3u2LfrRdYgdRW>`|;2Gkq<#yAAjZ-0FB5*g8H(Lph}K@=8rrG z((@XmaO98t z4Kn%}*d$P@dGVP)56e1s4(fo-0EG!C$HzSX%pZ9Ol&)@ogdhV{pb(A#X*dW9 z(Uahz5LbS%iz3f}lHZBXpq${s9|KYZ8W}kV?jXAIM_vbYG#`S@1oilKfb?Gmx#$7N zMWDQA11gdtzk-xK`pgeDE_ek<8OSFw4?*J3z(Zr8(&-4OpV$E!>O!w6I6&>j=0hwm zt5cXj8)rZR%rCFQ*l#RA6>x$FWQ7K}?wY?ATrXNc>Ss*(`;dATD(}G`e!v5?;ThD! zH2|%NRd~?|Qqk=L?l-%D*7OPZsF-}_7i0u4%L8?Z9YKYWCyPh(5l}PW%*)~pEFibN ze7qS#+pmJq!fPRPHiYld>nH&p%j$)C@^?* z-vX643ddYjR2W`lftt9zAu1}MzN@4Fs2SA*RtwsstSe)};L&&lWLWg!Py7Oo8W8_$ zxbkm1@M1OxBT}_|1~jJK{3gP)Ir#&FM|X<~=qzr}PUjaOHfXTHv(xzjhz%N5@a%NH z0b+x8KYMmMUjVT|n*cmJolm^Dz5yK85r@y5d6~Qk>{mqmy?n{R$Z!UC8$jZWM>iv+ zj}K}4foF4ndRRJgfZG;^9^C;yJi2edc4>G#0L|p~oC0;1l0PtPVDvcd`~zG`J3nCX zXm%HP0BO)c8kLZF4p-v?K9)`bVDn7DOMgK7Nv)j)O2j?7Pxy2?2>5h5NW6FsT07C~ z%%Sj_58T)}?a_VVMcBFj|2Hs#rW!#9iXi!GA}1pQxc%~?zKn?hw2Hh}^ezMRat0HS z5U76%@{<8520^=94}n^;;JAG8{}QO%z~I^KpyAQ!t^k@zj8Spube8~ae~3T)iC@qY z6nCI_d-+)W8vk~F=9~Q6{h7KCAAHDt@PU9w^KlmA6UH~Y z4qT9b5!W ziTZRO^1S%MQ~Q92^@Vai&t4V*59`Ao{7#2KS*G=5iMYqXN6ar`LGD56<#|}&E!XmZ zE($c-5Ap%12h_<9S{4Xi69|fcPIm!N%8x(%f}abt2`3OlLc<5%@7xDkHi6zC{MsG9im@Jgr!eCJY{(c>+G2WfC6UF`&~CKpRS$k0^lmPD0kuK->r#qynFy zq2SRi3El{@@tW7e+F77f9klwaJDLM5@%FWZM>jX<$N}*21fW$&u;U3lyHC6T z4S;}0ctM+K4<82k06NPKiF3$UH+ap8Pp_AN@i$Mu=ZU+HR z>qGpl;99;rhyx^7%Hr7>z~Rx&>|+_gQOf4i>A>-t&&N`zl+~w`={1W_r;~tBx3sUN zaH%Fpc?qje_o>&?p4}Y2-6y~{Ku%>i=>g&vNS1u`?d109=JvG=6ev}N=PA1Q8 zPSA#BFa=sM#O-4l$Wh7$()(J-v)hZq$5ODA)uWT~H4A99G)Tmy%R|DW(}TmY%S)oe zL&CMgOTuA0ql?vf{??t~1FV>RtQ|P`TR^8J`*h!Ow5X8aZ=DU6;qtLQ$lrPzT)cS+ zI9L=)l!iETR7!YsdkHvn6iIk=GlEW;@BjsMfn+I*2RI<1D`&fzJ*+_i3bOmP5O_hY zwE)O%93Z!O2!PHc>-6FPn`Kcb$=~`Iw8s;4j8CORDIci*cK|u11vEnr=e2?ku669F zlQSg6!@9?c!th?LG`T`oqUMg5zZ~cx{X$hljO?04Vi=O!evH@a*&y@agmf z2TzxiM2DkSd zCf`mc4&P2E0moww5{xf@Gcqt3f3qy&C`L7CA3 zbaK0u;{7kfh5FO1jWs76h#ov_=o*?%O_{+^?B^x=%VDbCh881U0KYI3N+o?9uJP z;nU3tvfKlA{y?@w7`z7&GZntP0!p|R1rnw5AZtM3gKkv-2P`pxhAMqQJF`J&4>$;5 ziE3t0Sp_=LNCBdTxi%>WT_mIAFQ1f7Y| z%e(TU8N-W<%%Bq>z+>ea9=*IvKbSGR*o!J=_{EIj#Y(6cq~8XrIa^PbXnJ%zR)9{< zQt;>or*DZDbDl9Uc(fiUo9F)U|?`H{sucSOuM~Hm2MsW2cy#-y zD0pZe1g}GEJx~(q(Jk{4w10c2BxqN{4^W!yKK(yH0X)%n)uY?P;=kz4r=S715^0bB z$1n}C{!p|VRAjh-j<4kT;L*(p*8KqzjJuYC&n5#|+Iq4?5Og@DfrmC^5pdUTP~;o~ z#S8Kt&F&hN4A8ZBj&YDaHK+}TG)D{yQP3{xQ!m({PPTRiFX*g>FX%J|IUd|O0iXVr zCIMa0DdN+87P6)j6z1NCK<$A{WT; z;`KpL*fDr?Mi{(kPGe$dIZz_qY#SjL$iV2pKjpZq@k!TSN6zl+#wTA$Br!3(kWT|m z;d40d01b11&a&%1;rKt0V*)7d!TX;;n_vwEM;N|Y%eifws3JNEM7b&Trp^*t$dz2WVq_>1&XSL9OQ#U}Ya)-}2~==Xk9SUhCZ}dQ2ve!K0UVzf2&* zi%Z}Ri;8h1L$}YV6A%o%I|Zo%SA`^#UHvsxxH*85mwXNMT|Chra=6BNueD z(;3)$f1hsFY?(j?&+Y&Y&+Z%G4e6>r-JCv_UJ9VDq$7uirIQBeR722dmf&8q5J*wU zJ@86&VUKQS1rJNcVqTAKXARImSTVC__YF_$8>OtxC;q<;OScPT^Avb|3zW{mQP+L*#q(q)2IK!N z2TJ*ye}hxzi>b*>44oAmow94BL6Hc`^N=wbk7nBwkv(3y&@H^BuO^fbo#uR%Pp#ERP>CM2;z^?(lEeGzgKl)p~ANO=pIYx7Yt0Cl9R zZ-WHkeI}@S(7ZRu4n>F-(4mI=-a~X*fONSc>jKXuww^2jH6OuM3qQ1KVSlmlJp;pQ zcJR9O*Ptn0&@kK?@U}S69z6rk?gK8M^G9!j%fbte-6vmMj%Q*3jTuKkY9vKaVXo++ zqVZbLqnG#4BhXL~s0atm_4@R>s6=>li^fQSQ(mZ4Aj1ovZU6sI;1_UFQTWVX58B4` znh(qa)fNt)`RhTB0G(zG-pLKxmL>>pFM!+FjuM@L3a~wH382&t&Y!G@!1)u$iYw4^ zE6`~S(TC5t8XtJc0IvH^f@#ovP-ldMM`wXTXMg~xp8`4_4Sq6>XZJ_n?iby+e7ZmG z1TRqt`DYCFx(29};RSVQ7hMNM&X3njpfd3rf6F9r7slMP*RR6E`dkTQTfns!@}Rvm zy1qx93 zP=+UH!3=1KL&3BA3P}FshX4P&V^lIcdczDnd;36hTX54=L8fk%gQB)tmr2=O#e{R4}x?0u|;QKAjl~9^Dr}+f*GG85vx<4}-T@oPW{x8RS=R z3Crox?NH&-Y4O?!q-^60ki-R#Uf$VZJ`694e*FLM(fYqc3?#Sr1_J|lwG)VQ2b}J^ z4})7Q-7zW!pyH$gRHlMYh65de1DemX08MQuFo14@1f>Rx!!DpBtvf?NM}+#QaG;(a zcFQHG-U|d2n;)W==_Vy z-ynZr34D|1APG?5%Z2(dy!iSJDexVxBL#l^El{BY4gBUK4)7q40~Lkfx(vKDEWo3i zm0JlqF#|qM_9vu$w(SZ7!vy2o9-W|pwBs%+;A43@Kxb-nUk9nscv0~Uyp=daMZ=@H zM#VwEgWnm%24~U>?->|c4)9Ms3~JXw4*lVSo<6JbV)aI_MjsW07d_V)7$!hn+3lm^ z0h;J>0oU!IR1Q8-3R3R}@Cz_@JAyXv@C$effE)liwATSNrv*N+*WiWec~H6FqN30Z zaxCbm3Q!Rt=q=FctN=Qj3gU0j8uR8i3H$<#9^E%VM)3=q4Q_vfaMH+)jh2zOXNXiGsx#J z*iQZbzYEm<0ku+VZ-DkWgEsh`0iD?)7@{HpF8P}e3V=#thZii%K*0>!iFxJ>I8TA3 zAySb`5mMlJ9?;q%E|2De1}~D}x_m(mn`Uqk2Ri%=JV*;lE_dYN$;AOYo_y1@Ir#>I z=W*u;phny=7Zn8t&)xtQ&tC5nFM_{-Z0hw^09mX6I<5C4*n;j5P{sU9pa_;M6kbeO z4^rCgqv8Nc1$GRewp@$~sK5vSxBo!pck`Qy&-?;e0+4CsBp%QN{bzoGA`#Fm{bzoG zDhc>hJ!omVrUz)+R=^9ir6d3}H7gLv0$%g)$ggn;y!aV3sSjRMq5_($2QT2~0EsC& z@@pIc?~oB`aS|l-GodU^GDop z1@E)qk37e(QSbsJ{}?iD4cP-B2wEQARcHCfWsoW0~7|JN&j=;S$*(664;IqL6F>MSoqurhq(*CU?FI8fr$ztd_IF# zz;`?HfKG-1okIdT0*0mAQ3AvVEiiBt>2&1i1|3Nw2s#!<1T?1z(j(CA2s%RsLD#&)2bUGTq%mf)`(dlT??WhB?Q>W7rG~Es?h_vW6F_s?paB;UTLV##D0o0hXOC`> zLES$G&Mp1);@ssG~jkAfW|jqb}5{J zizf&mu{q9ch=H8LPT(#K(BA78DvLq&wmS#%kHh!GOV|Il%&cgw*91huA?!NTHpI+6$U^>-Oh( z(YF-cy)_6CsC%=P66IddMp%#TL!cQ!CZBF60gvtrFS)rHAoKE|@g)IJn;FtzhMd=K z;L`QWqx+}v?M~3ipxqZedOdEu*rCF}Fu@{5MT5U(6SzAp?vd=o;?wP7q0#MQA>rBU z@Zb2GXY&t64}Sj-jSoTBkGk|0vo!y7C^2fiU0UYR`mIh4G*p=E!O|6C8R60GW9ji< zwD!CiL-UXSj{Gk7z_$HA_xd7eU3#(;i(}Vyk8U3ekN=_(sES%|m#Tw|Q^GV(524Zn zWYlX;(BN?Z_=wYPc8_Ea7LVo>OVF{H5DxQsSK|ZSm;a0IJ!i%+;l-=>#tbdsu{j?V zh5w=+=gmNUw~wF)s3pJ-9`6#E-~rk`90TeYfeuq`K4JiBi9zZ!$UJ0; ziUPO?20Itfzz4L<7#_B#URbb!);WCe>1Ov$_F(bsF0s@A`HjoN`a>P7hxUipOvc|p z^RD2A7wC?F2@N$W8VsdeyFqJ4UqWUjz;OYJ21vkz0v&9M0%i#DoC61Vi4!P%ZbO3_ zeBdQ4v>%-{WAL;-R;mDUhYF?%r_O>+D3t)a032(`LHn8yWb$E*aEAwV&{boF8P;*iNv>6!`PecYaw7dhQa`<*{$R_WDpd`--I%C23whwsF-xG8V!-*HQEG7)C z2TGYXGj_qd;_$NFiNokNXygJk^}__Zw4n>!cfSZ)1l-N};wwL>>03gU-ckYb_5LNK z7gQ&JRvyWCbPM`+Gk|wOdw^z68D6Xu#9}X~x%guLzyJSR4)8;lRD#QUq%klL@X>sr zb<^FyUQA#HrPBl8LA>)XCV4P082<-%Ezfy$)(L<{t~%=^TzcIVUc3Oe@Q-qA9$;2~95q$1W~`E-V; z7=VtT)$r*))D@x<0m@(sphk0nD5Sn@KH?C4_=VRC(8M^XyhixR!2@*E-whAYILN0L zd%!LY7Vz8&T?kU|qkRgruFCpEk)ua5cx3r7C>1e#fbHx)*A=3Y06K38G$I1E_WX;V zA|Pu)w=;rDgAx_c=|~Rohr#D$K*BT}v{MAdJJ5p&AZZkIJ^?swMuG-`J*#Y zalB9lgcw0dx+D+cWbk6couFRxi%+vb^~?{@7?6fXuZMs~_th6pGN5h>u2ZznzxXuo z|9_8O*eTjiKs?M-wBzGqL5FCw-8N%*(f7)j0o>+An#%x%NP$Q9El``+qc>m$*vTJX zOk-wX_{1;ZAiytR@CnrY3jmiR;3HS0J$l0xKywx=!Kt>C+oRLE!5^v0+Zcy?z?cz{M;q6Iv= zixoV(AIBelF%xv61t>buhCmd2yI=TpKl13l2|CPQ+tR1Iki$pY5PpJky|48L{+9Ki zsYuYQjH7^uHX~>S-^G_cpj>mHjMcOI+iPx*UK2)7>u;X?PTxTDr5T{JLD*)&n@m_W>X4Mh*PYR)`}B+N9H3;; z%?+ylc%X;6yx6x8It9(`NI=&wIe2ty zx`LL9d;ncu0b1Xo3Gbm=G(c0w>UP%7zYU7=7L>(Oa++zE6EE(2JF0Z0W%!UL2P5

kIrX&Y+pM?mM2H(Hx$g*%F?e#R}o@%YvHU7=Wfn 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

NGViH~PDWF-#D5Kp-+Mk}M@5xDBryag`H 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

16ColMPn}9EM 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 z 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�}8=wvjs4KJx zuFmy@M|0{829Ivv4WNDyXnx`VAzM2TEf30KhF-e`+uK^IX>aOKy?ZgAz- z*bF)~*OgymcLKPj{1`Et9((wOhXkn8 zngXKX0`d%?ElAPelNc`ZYuxqdbdTWIcsOkEpo$iC?hZ0d%YZc>mC0 zkh}&+-jP2BTseY|L;zjD=MK7Z9ee=9AySn1>-$HPC5vVBv3_q7`&nxWCZA1 zCeTqbpt~`f-vsz}PXvuhf$mA@zUA5N#PM3n!_q^cNT8I>#nM3obinluk8Xz7Ea0QH zLH8p(aIx@~EOqv<_EspeEoF1DcGf5|^|ZcKV&K!w1R8KRcwx91lqsAIKsQ$?fP@_Q z1sFWL1;BF{3NIeb2ThrPhLk;;j|6}gSb+M@kn@SaM<#mg1)V|j|Nnn`(7_GeKRv9k zme+Z7b9#VgUBbZ&(hvS(^65V0dGUp(_5ly;3*~&Cy(|JA)`va#oeqOfNIO{~?s4!D z(~G&6Kz&Pf(CL(*BcIX*7(A@+mTP$&e9QzIUnn~D{6FN>s!n$B?HkO8A#*vM?x4%p z6yguR@D~Lo)rlYyrr`t^cbiC}(Xi%Yg4t&bL zN4MDv(M!+&gKu`|K3{U%r3*YycGaUZn!}@0+M_dCzyow#HOOiUkaHkc!hsG#jejXT z7koY(IVJ#Fe##LR4!-#ddVjJ{wFPg&~rCz_RO>UFxbVfJP-b50&PVA z@0xw#)9onW*?q!O`@CoOVT>se@R@xcoh^_Xw5)%WvU*y7FA+9602c#|iJO6%Qr5rt z+eE-C!OnYXpTuUE=PpX4 z_2|C&n%lEiM!>`RrU$>%O>o3{THoStzXfV#_VPr7nu9NFjz9nJ)BONc&l!02Le9+b zWIpTB%X0#>6uTR?9`O2$pmqQM`*t4zEwci3JR0_ZJ3?-6|;CmAVJU|;31^op)o834hUVa4ayz4AcaR5yP7=Q>+M+Q6|09iK)-l`Dc z2|6hM9Jb&EIo0}CS&)bJFVN7xhe!8y&?58lwg17F@_~JP0K880+zY+Mkem8Iu~`jj z+=99ZQ^1Qi`33nt@e76tcr+iA@U;G3`u=qkXy2SiuMK3)MfZIV?fbrJ$m2HK!}>$%d!$(L>}CT+jAtj03TObQ`A7nyK8`;8 zVut{zc*_EjkUGJDw7ZQ2KquWufKnNxltH`O2(*Fi1r1PpxczX4>l))t|k`*oec^~+8m%_9DLBGfk*czpI+YhU{eO;+djRl*8)Lf zb)7LP3NM~(g2wB9fEJ2+fTAJ!3dk9t8$eFHINbso`ThY~Ne(_U2Q)nEeg`rD=+n!q z;AqAGGQ+2r^=}2pz!$T?hTQ<2(&GU=rVn&2jRE|wcj$R-Q1_eH5T`5zYTYf1;RbK5chC_4a4Ogq;qLO2g-tnt~tSV$VCs(S(Tlx4?t(Wm1_BR zgYRJQvGhA-C)Jg3q1h0@sQ!7M^;J z^^93lZqQ+gIM0}^;|0|Wp!6XS3L4Fat?~5eX0^A1jploR4sGlewc=D_coA3uUI4(g z1Jvt$37QY`=oQrfIk@}u3lp#;f9pfgpnI>VEL2z)DtrneECdy10}GdM?EuXly#(EF z2^zca71aaD_xftQSgQgm7JFIWa)3?%yx`I6%kknU=kyD#74!+*JXzjQE%< z=mfz~2aq!UrYKNu1zm9MtMS6(K_h>u< zTIduDxyu$bPvRKj2sy*Oca4ewsB6^t<^yOHwVU;p1vHRbA25R!$iDFC{^isC)7AJ1 zXf1|=OK0i@myXmcj=d!+{4N$r1|@PnovAx~I#UmLG#?W1==ELkBAf~2xzH88ai3nR z`gEqw@aQaE;L?%W;n6GlnH`jpd^=u<@q!g~>;{bnc7o1tZmbgc&&OGgUpm2ZccN;I1v{{`#p4qX5WmLlk!M#l@) z6QBjn2#aAi;2uC$w&KOV_<=&szlty0^(Ud zkKR7eAs{cl|N8&`HR}#=260h|0T*zcE-D6~u!l#$Brkae&=R`d5S18EuuVcTvH+wK z6iat~z=^8P3l#Gn-F=`f7B6~~WEep8sx2taIUsQ^=%SK7%TQ37fNd3bh5NI)VjVKeAxx)Y$r zkO#WYW;cNYjza4&LR1jq3&(*Bv3?(_J9pX??Gx(5Jha!?*Q6xQuh>0P(^={Vad%jZgGC`R?rD9mbdswv=rj=yko#L5KnGlO zgMznPMFkYZt#kkV{}0;s=g?K6;?R8Jzx5CPmM@_FO2=O|GJ|gY*a})?<^xJypyRqv zxEg;$4}H*jcNfq#Z7)Fgn3W29SO+Q;@p@XHDBQpr!^6=^03d#>Yom)Yj zB#&P3qOTW|euH+m^omYn1XWlNu~}>0fR>^b`}DSg)@^z8inc&xK^gc3_@D-f06~ zWA-Ba;Pd}G1wf}t%;kcdL!SW3x8Mtuou`2k%nwjX`Ul<%DFs1OHiCSI3P=h6F?&}7KNZ5p)-evHnYdUAI!ZG|3O&-bRNeF zQ0qJO>;L~A-5i~f8Xn!?W4@5x3JQ`Js}F!`UT}bV9B%~$D5&w`(yU--+)Ft~K=kp*!) zyZ^&OgWChNoKE{7$iJXqEpqAH3o340I`)16HHms#K|D~32Q?GG+k-?^dE^;9x_N%S zuvqfue>d1pYp}9XIdEA#6{52jWY-HGSs4aUlfVhoSpI(;l%P5sKCH4=sE*Y zir1)UfOYxw^7?XvDhtr*1v5Ze(x$!vpIPDoGCBiS!pHz64EcPNgz^7`M|Ur%UL!02T)N?$KB1AGtZCzR5v?;Oad-k{oQejv&Ud53IpX?0f`WXlQg zg-zE$LrU;rI)ix7m4^(VK7#^ybgS_V=m;{<`X4=LCD5W$0Lty%pL{?|(J#DMAP1Tz z18+h!07b0@=-7?}{H>os+ZwysKy4?l?hr!((B?hR5|`d$evi&A;KsB=#~u|>YZ|l- z4@AH4VFGswTA-q$JN_y%fFwcZxV(^N2YKs8Z#W~QqWP@@Dh42Z1CJN6!XO^FG1FEI zE)^hqL0@QCf=UJm=f9}hV{qv(1-#J@oaF?-#Y2w@*bei(pbq{X74VMr&Mjb7AXkDU zLEHDhT>#LgKiKv?u(KKWKL0<#=)lXx3=9m=+D2^(xVHH|*^B{nKhTL6nNr{irz8b@ zv(SkbvD)B+QT;ePu-?%QJK&--M8&`Z_n9vS9^DsS1PQ$S@35WmwV3gLP-Gf_TM~Ew zC^EeGQUD%5WQLp*+kM*czkoy6anK+ZI1Y`^y!gihN(ysSK;w8GjYmL{4H{a6-Ajx- zu7EYIDV+gD3OKEu_D4x;S2Dn9tq|OK!jaadfbubTtrKcbYDEWRjT30+C+;;)9^I_v z+R#+l3R-Up&I`AE;0x0{na?A&*^B>xYHVGb4A^FZYZBln;cxi>I(y26U!VchP617S zu--S22dy9209hCiX?orObdH}lhiCUm4{dJ5_9oDQ1du&eKHZl*55BVZXg^(!Y|khst|mwPnU>&a)sO;BUs4c+nESmIx6JT3)TiY4zT<53x9slD1ID_^(g=f_p*z0+{h2`@lwn&zTeX#4iXss=gs;=lI~+&F_)y$pV)5?LKOJ$&>lK2dMf{038R> z%iGjr#_(dI7$^gQ547}11|7lnk3alm>$eK_&mR0*=Rj9!ob$N&(xdxW^8-c??h_zU z(9HkI&-?2TFg?HEMV^@p)K(Dw9JbAJ9qq?OAM~QW$)X zpS1ET(6WdF{Ndj~OS(XP9njQbju>d)2Kd)^p*HIpEXnEda@Pc*0~K52zJm zeXW?U8ypB?N}xRCEdU-k04FHODmX~Pv^$u?)B0kGkWZ(QPiGPiUrF=86Zcj~_z1K^ zTnO2|07{{tObE^?!aki!pzX9c%sS5vHw&8G@R$V(Zcwgs!eLkwnqiLo8lc5;xE)8x zKtqIqV4o5+kbrL=a>0EIHt!R^Ksz`(`AHACsc^Fd+9Bx%Rz3*yL(K#qnTrw|AP<8Q zEa=KHY~_{%!q9%Gp}n9eCg^dH!CZLa`8g-V=a5P9c1Qw;I@pCj0un`_A`YC<_yr-! z5p<*{Xv+dpoA_YFM@my z$ugh#1-Wo%zd0aNdJ!c!Xt=I~v(pH&&yow&nKF10&JLPN@=0Y444RC`M(l-IMJfYoLu(2JRKwZS8 z;I1yLKerSlIKyxg;pvDrYyTQN=IUFC<&hqSzjzDY?KwBFF z+L#*e80QGO?-O)=o%h%0c=ifBRD`z5Kzjv1>&w9tE{veAfCplY|K&Jv6M0P>xSi+; z>iM)D0But_2I}Z{pLoId`Tzgd1s;$%K++f$57t-=(I|ka(edm5|F6w4HC{{vYqWxB zyv`>B8MFf(P1b!GH04zQ?v$T?5mE%|oP*Myvx0~AL64Px{{R2a-*T9NfuY%wk-u#h z0|Ubb#+O?`bq>^dpd{kaoQiG#LD^Sux^R{7=oMY}5tJx=EnfKkLZk@L{sUbFP$~c= z2@tQJ4a5WQKiH85NfbL?#OZ(&#g6}?3D>}h0)78M~Ob zvIBvE5tIcmcOZcJe<=M-(3~Q-Idl%M$rKc0p!vWTlX*b~fNJ*=@SGz54p91n%qf;< zV9qIi-Ve!;KE1quD&TX9D`P+gzHkE@hIJ0l`cz3Gs-qM@>-|A3{dn*VZzLVG(0p9N z!}?z-bcIYe(j85p1Ia++nH;EVC_saqKHaB0x1^bb!v3zW5T<&(J;yx;Ty1v-|#Q zZjW9WK~L-Zp8QVtLBXQnX?=sg{U9hg!j?89E(0xX_yFpW8+i2c)O+;Wobc&QmjEr| z(*P~+=l1|z5)L|HtCQWc+ZDV3#xiEdbtW)y?PAy+#F8 z<@#8^DrNQUe)d|{ryI01#k2eB3qSDUge`F8p514`l1E;cFfcGo@aaAcUJ-B&H1xGf z0n}DK?$Lb20Wr7{efY(<56}Ofd9eaS!tc=o?KJ{jDd*FD*{2t@zUHE<@ok?@Y5z_c zCeLn%A0C~|9?gd(Ji8gZJ6V`~J0pJhc1k#Qd2l#)_%Lz!_Bu#-_ImvAus&6K%D4L< zxL`T`VlBAa3B6zp6n@|te*@5gz}+`tTbWW?z=efr3#13n|6)04#IPB*GN|=HiG)YD zKL=l5Y;L-R7)RFM$X5ABpaz{0a^}Tqc~Ddp zM|gBc2fWN>WMFUvpXce(je7Nu%pOR#h7FE&q=CBHtQRA|`8tmi)SY_a(Opr1QaeA} zjjHRD9XP~iLv&ei$}o6>8uKS!*z$l}@dI?0&ra}>zz@DiGx&6W@aS~y0FCd-@qy9O(q`eKuYHK!<&~sBm~% zvZ(O4{0GmM9QWwpV?cE6<=Ku0Ws_iZ;G0VOCzo{Bx}(VPl8(kJx-gD3cK0^c1k zSe`up@6jtN`xaag?RX(D_04~Wt{>ndXhH1@=*;hq7uu_y|95ElUjmw!Vh06EQ!FS@ zdRdE{T>&~YXamS_(4hu1UMznM9_nX}hbigxo$!J!3sjrdfR1weU&04D zn7Bs80_0Z%&^gcGG1Gt!7nKOl?hq9YPwNmBff7ldPAiYjDh^Ol<)aeN;UwVM?4rUU z@mdJf^7HWQKJ&s4bn|_;k4k_e=+@BIlO;Be-JnZA9XTACkCv)};wS(SM<5wc936$6 zoD~4Q47(e=p9$o+?$8b3_7XGzX1vf^`TRdCZ48m&ab!Nq-}>$^ zDE`4R0UR$MfQqhO(d)0lv3KLeJkTm+kKWK5;L~_I9)AGE?MZcG(9XvnFZQv@Fidzc z?=`5g207_ULtx@MwO?So+$d*Z25~0wd5g-!ac_&<&Tq$6ri{1)p;f z3c6dsRUWk6Wjknx$^A5bkyHHO`_=?pw}0XnbO!IOVTUU?p2jcY`mYN!^9y<>fHZ<_D)8t&3|e0e@p!a` zXLm95=oRR?4%pgQ9~BPpD0uUm0C0i)(E|}WA)qMeWc27Ql<;U)WAJEB1Fg$V6JYS@ zu8IKNYN{O^06KIJbjPziatV8ZzkLg+rtUuXqCgO|?XNllTz-L$90slGa{v{#ugg8U zwLQ9hAt&*Abf0~(W80hmAOWN~$esD%0y7J=*z3{@b{0@u4BVeFco7#1%5x-~bffzl zwComgFl38o_c5Q|7?l9eZcyML&ZT(~{POw#31`4(_@Iv1=BV8CXnX^jQS#_!eJBd6 z&%{CL3N+CUs#`llK$-rdN2l+4q;S-Mq%xo0N(s+qbp}t!`r)VmlqrqfTS1;jIac$C z1=#bspp|8pUT`skJP+QC$`2k2yWt7CpVhND4SaF)c1XRk;+-_8D&HdV)Xz2j$0W)R_Hr6pZV|DedGgZRe&S&5zsm6Y#xwO11!h`66Eyg z1`9%_h{1~jK%0PFTi)`wc!ST=^|SEkW&|zC>x@aV3n0NLBZjXQkydvul_hlNk8HaL9LG-2Um0qUEy9^h{U-`?Jh z6h3jE(ZZ)Nii+VA1+HNIEIfPT6g;{a!Ly(6FtTN2V0dik6z#FFB0!S zYEen3LXTeG^Dho0{r~US;b!2`9r_-*p1S^`Y0>lljtzAN45j>_!+O{~x|uyYK?NzZ zC+MDHa9gD1K#2@kGL2uKxl9lw@!}gVXgD^4`4hh&^Cx}*=1-3NF`(N}1l=@1mpFC% zii27hcRoQ{7@!knJQ|OHvN%c$qgQm*Q*dQ;{)M0rxYrtb-lNy|`-|Uqz?G4WBDga8 z{=)FTG{XdsUeVJK<=&8dm z3h6LpeXoK?cOdwlZAhyH)am+v=tb#5P#+j{!FDg}OiOtNkK@jeMSsqq6|>Bswe!)3 zp?eT|S>r(_b|dZ|1`P(j@Hz>apoMl1z-1k{e*oHd(0vPZN!AM!QP4JNRz;BRPIl0e zINn_r;B0*U1rJy^Xv;wNagc4GO)7Bv-ak}i09Ufm`;IF>OA&6JK(-IA_Ar`SaLacc zcD2*d)PfGCdC`QT7T(VRg<1D6k8a5AW%>ZbYh@-iBOsuootAJ9x8=&bNH zf22V}Mf@$y;Hhu$%#jE4d8qPN=V0nuKe*n8!YbPiPzi7c>n#D)3X)oPD>t)fMH$5L_ zU?a#t&?FgT7!ob0*b89lB0=gPLFKR$ob9+l7I%ZU!GIU#$brY@u7bwp96;l8y{v}! z!Ex@Clcc<32lYw3ghyw*f=6e( zhDT?-fk!9kI{A19kM2^`L)><+0kwbpkgu=YlL`w;KClxmc=Y;9yhsZM#ZsvU%Hr5s zOx@pW4eDhe-F|CDBcY&QP~ zx@z)gQ7q`z!ed2Y4b=kROX0v*#qr00Hq&1F#2?S=AqbivjJ;4I_=!Kl2XvEoM2Lz4 zzsAAWBH(MLG(LgPh7bq=T{Rwa(W9H2U*m)a==f<359S~I8s9-u46~@tw*;b=$L>C$S%mpgP-^X zcvs(4WO(u5hcsvb0q?w4!AKe^IH!a$vKh4#+bYgD%WF2D*%_NF1~c6T~X!h3)BN zXz=Jh0X|j|z%4%2d)2L zD1oeyJ$%Na`HctYAWj3&5fGX+prHQvUv$zTIZ(9mYaIJ8%6AClrkEcf_Xw~y><1qN z_yg>wA8GvhKd`vT0Carcagf6lAnx!u+)!!2z^`%BqdU-|gy$1~M4-ec{)kA4*Pz1{ zJV9y35wxZB)F=L!!~7Z-`895MbTjd5oCb}F{!h?=ok__7D$NTZarBE{6SUd(Cg?<* z6Z{&#plMPwU3DWQ4`>WKgO954 zjsUIq3CMWi4poMTZBUj4U2W+Ajv`mkUVm5qNJs?3QUEkXfVNyaJA8shV=yQhouSc) zln_A2qd*b@bVD=0ASjN*L2>L3k7H1l(>V2sKhn{_qx;Y&{zy-d>46~A9YNUxlrJIz zL5J)>X1G7`3kC_m)@y-6$pDmd6~M-P0`GD9`Cl}CA1J#D@Lt~y+BXg=G{9N)Ac$4W z>#>so0vbHJ5BhZbg9f%0Jhe}L^5NGx;KO_XF@o%YI-&9Zga`8>AL|39QlP}aFW>+= z`p@GBxIZE2E$|Z5wdD^#;M;njg8h>xzt(}*5}w@$JiAYLTzm;x5A(@`UkkLC{J>=wyNw*dOXWpxV!X&FVhr(e0_=(|w3P{D6nHhXj_8Kjm@orM<`h zlOD{cD%ion_gd7W`(X1!MvsdxJh%^ngh0zdKzr*2LF>5>fbx)|2H1S4Wgg9MK>dGk zZbq-1`9S@><|7v1y@lYld5}g+XN81g7<7!Mdyfieq}iwY6R5m_){OibpTMQA3%|x; zM6v6_uNeV4nk=ECyF~?b2%HNjc_x64HQ1s8y7bY7U$aIf0CY~(Cm(*TAI*Efsz7H{ zfezjfP))g^2s%wC<{ZDqKUaQ@J1(G`nqB$h&X?79Zvm_I=w=4_1ax`;X#L#(08o|8 z0WOk2UD_~EQi|J(fp3Fv;$PkfmTx8`5?^zQuTqq9dtXU^&S=QS**>VTm^Dl z_v!xu9H0@Fd7#o)19Zwl%z+onK7h)l)BGAAUgUx=ypCkeHh%= zP#$O?6kKSZro@XfAg3PZ*En7V3Zfbnh1YDK_ys^KoB1^k{6EgG@%?4RzyJSTz%?Fd zloZtC2USV@8pl1mizPg}s}*pr696C2;L5L&3_3%jxB;|mAP$uFA?H~`_k@Cm-a!RZ zZwTn7whtcNKOt$5HSrp#cYOI1=;$C1k8aT6MIkB<$6Zt`Kr7#yL1+4a_c&{S#z4WV z_@hC?;h=ksHZXqT7i0r%N6i2o#sI1}Kz4%5LyvAosCA$k5*(iF9^DXYG+@>!{0AK^ z2iiQ>e8d1$*+Rz4IXpTcbuH+2N=MLf<)BKFU*i5B^{R6?z9>+WRmcgiiMQG9N@MO_?uXJ75@eZ;og81<=H)<8RQy zntTP1?s|!rGr?_aKMv4PjW!?1D9~L1w?I`Z${ph`KL7jwzoA}$p)?KbPS9OTeBcfJ zCqbIfW&>}PIDih&_w404_}b93`Go{%kB2Tl^yY9!=+)t{Lq0vhcZNHHE)aL*7Yq>a zv_4UK3UmpphxK3n);Mra5!@Ni0o`^}qT&FWlkotJia5p{e!+GbF)slwV?eP5ZEJ(u zar_#eJ-QkBHGc7HTm~Ih(*5y&fCgxu)%dnY>jBT5u#*cs_+4*!X!C<^`u_gXr`MSg z!~%Ql6u7WtzUa~IFW{lg@56iu!_U~l9F$SPVSfI_*`J`pVq?C83gp(?kP`PWXj$iB zP!kACH5T{52d*}t_v?s*gAjD+n+K?o=OqBTY)9fXH)v;O_xTsg z9>4hii9h0>NAqjO(w(5@Q2{7XSAgoS08o|$Ra^=2hhLn$`27DF(6|P;^_!5!uXh=g z$h&`niq`;e6R-w!!0qoUu2K$=XjCrf-_VI~c7e0MNXn0aUmgL*07ah-14+YK6vgssMCP6n-g03R9y3IoI# zBWRG%rt{bs-DR?r-i{Tug0jJ&0m}{5JXM@II{6X7l zGTh*6m)?R_MO}K)1vU)p+9gmu1WrGo;tlGa{en>Um?7Nb4mJYep2L$6?$O5Lp5?RP z?paZ1$^i0{PcLgM#67>jgK0#&M<3>%W&H5)*$y@W;T~fo_sn*}3?FfXdn!EO;d9mu zWZ;V|uwg{IXFe!cK<8J8A>5-5HUikjRSOaVW*n_ zNV@^}UXY`p6Q24(W7;5Da03gnG{zXb1PFY8T@I+$E&<(YdjxcfRN!fFz2l>TwnR?B zxBG=p_al$)pP*6+v`Q{L4FWv74|#rniFpzdXu<|mX+x_R77xT(ygMK|)7ZeP!{!Zx(M6hfoCV9 zXY)Y~M^NA1nP1R_=>=#O(c{M_XMRB+rXQZ&9NwKgOuoGi8lJr#4?yeePI`791os^w z$+bj90_1!HUr-bFlaDr|FQ_I0-IWBNbMpND!ngY{cq-k+Nx`T4q))e_f=8#Lf={QD0zwza2<$q+NAhrb zb~1W&a>3>myCpqZZaW(5poOu)pbN5IEMfvh0H~5%+^x6k#iDLKe2niqxnq&xIbP3y8MO{(FOt4w4ehO zzrO-4#W?t%$)o$Y2Y6BH50B>m%*C9bg^MpAgL9`NY(75Ky-<9h?N#^%B&{uo!#NKomCPy8{Z z55SjfbPIptj|BC&L8IKDUN`9Q*$<$R?(Thx3~8SHbst|S>VcxznZu{sRlvvkKnZvO zME8joijAQ5ku&(15bF~qj-U7i1VMu{9H01O96(2R27qky1i8Qibln2z(imt5KLT`Q z^uZUF52YE>`1L=Ov3fK+bG!hz5J4k-37*~2;2y1K_hZo7AJBMz;~Vhy3P*kc0nhFm zpyVDQ02<~1u?jdqBdZ`*B?ox0;}d_(zfb%zg&d&$TaE(YaSza`p@%_y&QJU?k)ZQ= zi#R}HpmA(L@WGFuAxQp6C(w4h6QB4aqd@wgqa?1N^F>|wBb7e!M+$x7kMsf^S{ebm zSK<@sxX_26_#-~^hnrqgkO$2x+yf0q+yR|M`XcOsG-#YeKy>pXIq-1Ag>nVZ=!D$^ z$mqm{vaE(Z;Hy#@N-RN#j$SUe1>Heaqf!9s<%9eT?$#qFLcl}Wh#tLX_v7fppuq!K z#=VLRWrsm0mVqYu_yw5x1wj)O-k=VRhrkBL*DD?QHIBSEavy4Q`E=09(qGc}^-bsP zm18LH;153l8eisbuLgG!TU0>ifCggEed3P<9q$}@4CGnR7+y6f=pvj!p&$s#s}&%= zpo75c8KC*(?jxXk>wP*MBtnr_Z1-mD@MwGky1~Y`Tf(RNm2Ye$9dvzS@`h zH7jQLbpHg!Uk88qe;0nujtbDUQ21>Ze$5HcQ}btl7R-P~sbpX8kz;V-*IWQSK7R%1 z_+?+$Xt-R+Yx;9h%e|Axa-E3JbNAfdwl;68Vdb?z@wKZ$oLW{ zNrjvSS2aARL8Dfj9^b$7hx5LZ1MN&_2?EKx90n!$Lm=5e4$tO;paY&k6H5Xthe2X2 zprblLmyw+M#2<0fv-uTc>6A2n{rhEXuKXIGUvq*yW14nOjscW3QyGlEf#_Ut!mSnX z=#DJ_9agIjBJx3kG4%o-ptJh~SQr>wji2~-n|buQF&bZT<=434@%_6azs6CIUWmg? zj)9DFImYqHnLozFZ1`Q#{J^I8S^8#Xq zU@GW{RDpD``%}P1#l8CE&MzQh@`*nZe2VD<(Ediyni|&t@DLPe2<#|SGQu5{FkK_S z5*nb>;^7jY906L_=g2PrT3G`+z&`TWCw@?Vj(iNtOLxjyKxcNR@#{Y?XXe*<&aZI| ze9$(33Cw>8^4Q3Ic&{B*gr-3r&?JuKQPs-iEt^|1lv~Jc1bk(7YipMAL0aV}(coHB54j^v?@C!0Qu0M39Q(2ne@&A}-^AQOT(Dg%~e?u$j-Z?6u64t|#8B}k8vQqU8{;A;E&J&=C&K;oo z19aGS^bF95aEB|u#%fSG>jJ8M3&7*c37`RD_`b5}Sa7=$bxzu{KIfvf{aD9D;vyw-dHuk>*};nD4T0JLB2;1Aa3$BfO-89kWqgXYXilwQ@MvBN zS|r5a(Hm~y(d(P>!ge!cQ(cBfuP7r}o3F=LABmfNzAo_5!q&60)r>;f2L{ z5DzSos1M%E;QQhQ`&ZD02;Ud~MLFj~w$&vdudnoYp;QSPYD$fOUoDhy%+-UzqkAgI zMIfd8P4Xc3cl&0%1A0DmWO2s^&cjeR`P-J-F zqx<{+%iExfTf#wC-+-rz37gLI#G5&Q4| z|JQ18HCFGzYWQ2gWmETI&_JpIXjDsa8c5<>i6K;J!i)NMAQznmZK*H-ZMJDWP{IXL zxtNE6;k6uS&fzR81H)?(pKiDs(2fYu4T2LuJ6$|L2?~4x2Kf3~&}r>o$`Pl!dw?#z ziC_S!1l?21-|`(4pWu5fK=;zZ1|o6Zc?&LGJ$iXp>{n!Xp|11$|LZQ$$T}!hfsd4F z#)y<&Uym1Tdmu@}!=qPp-+oYv^38a0_W(F)fNy~ZT@}3d87L{h5{CR)5D%O%Jal0R zxaZt*iqjCdOVKp8BWh2l?0Oax~Xx|@{+u$cluHXQ*lN;ZFE`ETWhvM7) z5VTngw374ZPVnipr}l%4z2R#77PJ6S(x+3yr!#}Yr!zyqr!zysr!zyrr!xb5QrcaQ z&e#)>CGk_inm%}Rwt^;SK^j%SYuzyx#wSEDLD&xWqfDs1dqRcy`PAbesEh zr*nAhhow$m>o5E*3qVK2@C%sM9hPJ8=>G25ZP&RMT>F9d=&~q*c8{~vd-Sp#2G=s6 z{L<~BV&Tyn3f+)#Rt{7afQ}8e4pE6H;Q}2P=Ase+xxpG{lE;g-6EFUQ55@}J02ztf zsR-_3hi>@94{F#6xbFDG9|>x;vm*+u!c@5T> z^@^ZVtUxW%S_Q~GTi}y6b2}gjz#<3Kxpo0g{T;SqEJO17Pc~nJ)4iQfTE+d2E6KXD>(hZBg&(f zw||!+!;4#Lpd1XoW*c@NH@tKTD@H1vz)=n>oJzpAa65qAhUXS;Q6vKlKn6H~3`hW# zgWy}Z6F{r^GhS@_@asQ_1-|YZd{rO(Sa?Wjhd$i1w+P`dNOA||8?ENk|GN)^H+wK2 zE|mclexSV`5FsAs!=;Fw9-vMuTXdIWUPR0MuinF z9^I@mkD#@>>kr@V2R@(`W*549++TruBcwW-^2aVP@6>{ogEPLv3m;8T#*cPD3Afh`AoqF0-4_nG z$`PzL0yUWTpea9K3GH5N>7j$Z@?~NB6tH9M9 z>j9_&k6zykFVYP_w}SIeIqcCL`T^9Ofz@s|UT73N|KD=EM3rAd^y&^p25^5NjXx56 zLp3N0TvP%+f!4)=q9nkxI|g)$XN`)22l$Lj9~BNyZ5|cGd^2RS8FW@Z%6bUTZa)D} z(B^mI)cI^pA(=FN8gT5{EWThel|8&sVvfbRStta_gzA!N`xb}uK zx^#x9*mT#ZSoFI8cj?Lj9X=bP65-p;qT7Xsb< zdxBrk72JadTPNuI09-x0sDSPss{!q225m3sbWzc8=>X?G-wU82f6&?*Q2AT&LgO_! zdRrEP=jg*YTwC6j#CuwY36zNQ3$TH%Y~>g51Jw>*kb4F|OA(HNLRb3mi~pY8VH{w! zQlPj`fT;FS0o{cLQx3jHI02;L)u9*v9h;9cy*40P%XW~K|HoZh-a7J6Ir`cJ7x?S>;9j=Y1+U4|6N=Edvw=M;BNt)-vo!yvUWzB|D8 zmVpMhLF*P>H-HAbK?AvR@Kl<)%$chB&(K3HPy*?rMd`vUv~`Kyqc0%^s73-d3qZ$S#XPrl&HdJew1!KeF# zWA|~7>=Q3OIq?gKaDs+70>Nw-PVl&x;|Gw04<~s28|YRkPzwUooB$1vgN6?x4!#gO z1sx*i1zk7s!twukuvL!D|C!2EJiEgbJgvhtO1NA)tvs9E6j)v>fI1B(p1pn&FD~wX z@&C1eYwQ0KZiwFIv5KA7%k|Y21SM!hVq~Z z5#Jx6HgV}5X$DXg23l8$dK3*>753u%I?z1XNf7DLeFSyfcf}9Tp76#uCqVUvX2A;3 zP%n6#7dFU?KEjJWunW2$6?88u=zdfQP@}t>RrofvB5VZ>h5B}X1XYKft_ys+UwL#+ z1-I!zOF__TM$T$T2@hJT2C5rMnvSCHUl66h+<29IvEdNR2R zXvQCr5TL>J6Kc%loVrBmYSG4C&6{rfIB#7_2u_U47)bi!o2DQ)&Z`^ z3SLMm{r?ZzW`b5}ZUY;DvI$roZY3w!0JM6u1ye^WcLe>m1pYKxBJ=0u zanVN5=^3EoG-iPMdy*cV79O1y93Gt&0v??e5}=ii9-S2$uh~I2fp^x<@af!Zz|6n^ z=`N&h1cllUkIvQ~puT)(D`*1?$QWGR#*k&8ZX>%-XT88{PUHU`oqItVeLDBP0QG)5 z_ks@J^yrQ&KxrSHE(fI*l&H@64c;JJD*_%ok~%8Q;M;u+d|Sv5Vcxt=iY>sUQY3}uvcyYQ8)Ew*d zb@1#iQIYWI+zJ{I_w5GVSkPK@fu*2e0?DR=mQJ^NfF$_^T|xK#3akYMC`c~X0;IFm0wn3eFX-9< z;_d|nK1j9}bf8Nl!8WxSAa_3 z>+?aoxdd#>*D5kVTjLoXpz%!bupaEvLukVjbVQR&x1Mk7+fvq-XCxUI95*t8&mh0< z(c60gbU{6f5V#T2dIMx7s3}_UiC+LL1#W{DeBzG)Z9$v*03r`+z(yQ;VRHyP&lWE5 zi9cp4sDk*!FTnqaKN2Jz11|g^y3_deS?{d@I~X)U64MHvm4#XpapDty#Hli;G=BYa z{L?`b{u!WgMT?dL9{et+yn0!3L0d>XnU8w(iW~qRJjUt0fSB;8+Pj{(=OGk~0 z0jM>s!Y|kwz{~)eMiKB)0X18D6F_bH|Hq6kd3GQ3{Qea*DakLua-3hV6?FLw=t}D2 zV09-TB|5)gD`?vR=(JPNGJTKU*bI+e7ZnTFmj537E;qpIBtVlq(opM|K(hc4t3Zo& z!OK;_16`+I{M`QHzeg|FIPee%$dw8{y}clNeR{#}1cgxntcsa?A5=_1&XEJz!!NKE z#zJxap3(60=5%ZDKhwU zmnMMXFZ6&fg!U7^Kq6?xj^QVMflL9=-VgrB&=vd|;CVpMRO$tOjkBORK~TFJw38$B$0vTl zsV~5V;60GUeW+s4pxF(m;+|~H4PiL-#Pv=_D zIpRKwIVu4@-9Dhr4kvv;qk^8=ClCt=Knv2lPk9{t$>h;}5L5_zFrV<~o(n!Evol5| zg1;q}g@M8Nn@{&zklCQHE$sju4;27Pm>~wB2EKp|=u{$s7y|(p(9#kY{z%sq;CnhF zT~snaD=7}}Yk*c2M4kk34uS}9Sti)}19TMt=qhzr{>bwnEsp$7bh-){U-J0=5tJ!G&P_Q0 zcCHC%zF8pW07`s<3YrYi#6BpF_#=HMK&P)E5y}9{y&5PH3W|N~5y}B6A@D}105b!F zPv=_Du@;~iJO+ZDe&1SQ$e6=|w*{)wY5(K;y!vGk1rl_EC_Q z0FUky9tVH2f({Q%@M!+Y$ltaf)IREU{O{4}D&gDx*VX8)tML=?`O%=t&9k>2R4IWb z>|;RFmf+<9pu#&IbVPH^jZgfMx1qgA5F3=bZ+_wz2nQ7d*FW(KxPw+CfUaQ`@CU6? ziUD;$VRP&t_9akpoyMX6zQKHa%Hz@wUA2cP6`@c^BP(pxLx(_IV7i}IiN1(t$ZFrWA%(?5X9 z8_=>k*} zsI>!)_o*F_G520jo97dMq(4~G46q=?CXhepg4#f!V(=4xMDGf)q+l;7{dsh|zwqd6 z%>bvHBWe61hxi3s3qT2jUjVG&6Te_@12_?E?EqCF*7r+fJvy2B1)V|5IlLu&I*S!N znh$Gubb>SEYfYbCuxX$}1bZPTzJ9p^nmz+xMGwoe-99P_@W6e@-*omL=;DxC4$zX! z2vCvu%|#_Zp+umeM#Yf9k$=h|myQq>!`G}XT_GxlKHa6@YZXZ=Eqts$f=UJ73H(hj z!S`lCik;3}36E}YL+TU1fbG{Mh_V^d#wk(BaOsLsF?h}G(G5-dt~)$HOO(K;+IniA z@!W;9h8J8;{qi{Yp9QgU5ParGwns1T@`Z{FFU|>p$K73bfVu<1KH4ulo1Z@Lgq(PB zFZ%ia3BIjQN{l_aeK|a}&v@*BnGG`d;4kFy@LrKg9tR&WgHB0W2GR#gixw}<1Q-}R zn*THMw}GP9wdHncJZO3`fWf2J9eiF=fN%E~(4lex9=-AZL4uyl$3dmfcaL6{NuIqT zM?iyAqSyZa_xyj{v-y~YkM-}O8=(3Mykh|rH{kF<_}aJEMJ2%1_$0_IAL|qR%_kWc z7(mOn92q^ngG~jMX#t=W12G{-Kr4g=JU}H|jL#9!NQ;2O4$w%9%Ms8b8*F*=XIY?U zug3<^7At=r>%%4Hpgl+07d^UN1i@=i`2}1AIiM?6eFPy(Rz12|1U)(#J(>?{c=WOe zdRQMWJr6!n27FHQYj)572R)k)Xn1s=21Q^ucyTrOfKsGr<8Rdh4Q+sG7Zi1ZjbtTcHi*q4N=kXw7yVc z=+W!-z@yvI!K2erf?vQ2gG)V~>%<|}+>HuCIfBwY}rvLw6 za)I|CLQ=gVYN~$`0Xl@$Ma2RsO|?ELF@WX)tSi}(68}n=b`SU^y}qpn_*;s3L1&JI zsCam4U-0Zc@zR)=fx%b%gy&w^l%;3)QIO}mF?zWtUgRdA_Hr+P+U9Fm!TpK=(Ar7? zi%L337H~n^4KDlhP)!eN z1owgtt_BI52h|a2{Q6Tt<6iue4}jWX{M!zIX51pWKR}vdt|!1p#l|xDbjIFrHNNE2 zU3k#fkz22B4ccAdMn{3I|ZX;sB`m(_P`=(Yf~oh}r8909wxM<6(WM z#KKeifM>T4gMw$Lhk_%&fC~d?lYs*$0}1#rfU=gLhlFQ04})hX2Ph+Z_VO@*merpI zl?|Ps+o(FHg4%|@*1t^w2)-!F=9vCwL6A z6I8ibpX6_XtWW#tt9=NZ)Lvj{_3UMl1eLwumY;7g%OQ|^|4hT?{ITy4n*Og!6F({>{fcx)rL3;SXEBIVjfYK&t0AMO8M)|>~ zGJre%5f4E!sXtu#HC}_#^b4ql2O!}WP=%mzg@~6Rkz7#AIWkt`6Mtl^0Z8CBC=Fi% zvB1ec_Jv0`sITPD0ouii*cSo0ItD#fJi1*4JeZGxL)WMK7O0;c;L+^60etyS#A`0Z z?KB`SimFUj1g#4foC;du4escbsDSp+f~K_Im&KVLtVm#kbd+5k(z*sOSV} zQ>_p4K~RtTpy&4w9-ULcgMi)q-n}f*`~oZo`2|}qfSY0hKA;mC1bZKV#`=0$f}oNU zK-q;KCbCw_ss5DkJcDhZ%Lik}PR7|JriLmwbp z9Qk9;fCBU!Xq7o=@oB_qaNz-!1Fzo&Ejx`n{)s>0gbSzya|LN}<&Qk~33QSGXc7Hs zN6;-Aj{Gs8RlTmDg`aW9K@oJ~wIIkMkOx4)*$Z+ksI>AGaOBsx_=!K}B4}xUD`+VX z$YB1MUXaiEHGY2Lj|AVa1~!*JvK3sG@yGn&*8m+VvK7LOgp_FfF`%L}vK3ss@kfFW z`v)0&2&~zWKk@)%w$1lX{E@y2ASZov1g)V4^%8M7>Bo9VB<=;d>5~h8+z;rAXwafv(7cnNs|QpB zyvFwcXxajF0U;AOJ}ZF8l%|kc9AIz8phY z5I7|3x^{fxk9Yx&nn+)ZPy7)tKk-N8f)^pb{lp)cx&l1K4C?lR)~LsV z`n;e4h*WSV@Cm=h6=*aF%moDzq?kDh>Li0!|9E@?rC@%@ymL;sB12hS8o&OpPy7P4 z9z_+PkpR$Ky#{Ds0BG+CXs66eXcc`Nv>N^sf8>)-{E=@z@kc!U#2@+X6Mw|BPy7O` zCue|HE*~i~fi(}0d4P8CUGhBmiv`qZ0q+&Q;L{np!G&Mr5@@^yRJgq61l#P>9l8Ou zgbCUL1!?s_X<72Oc!K+rE-DhB1lbDm8HiyTI0IZ%34nrBAOMsMGC+Mk34V>QSOXv2 z4goboz=Jf7{4t;TH9#IoMGkyucN84>puT7-IPgKrauI?53REfQ7>Vm*}<)D$WsgPc|;8Y37whPcW!(33O9Htl2TaUN_(+lmK-~7ZM zF&EM~7o4jA(fi;Nf8kd_Rn zAtacNsK%8+BaYyP7o-|*U4&YVgHoGM_gqi~3s-)Po3B}Yy1}Oy zpZC!AJ%OkfLANP@((@_LgFl%-t5U$}`2?t&>ENO5qhbM506n<_Ha7yR4w2j0klrg| zj{cA*^8p|06XkNCXaPl7E%=hFW|u>P=6mf(g5mB`*i0@l%RG0?|VbL z|3=WR50Tyf<=&tURP79qOF;80F8l)E2ADuCsHr6Y8OX>5wX_6MK`ko*$iz=5Xjz6W z(-cMU(qjum_X!jX7NFqr0I%~qj5{23y%Fp2VDmKHz8N3`K;c*cTHT<15x4%gULcpJ zE&$B}U2Fw8*J@OU<6N#di3(jOjKleA^z{z{|TTY z=FK2y3%i5w1J?BDo(q{SW%lSk4Y?MW|DZGYh+$rj?p}x-Dy$G7{CNB1!wZD!1~Fq(fcmBoR3+n}XOKHc0N z-RFHeLsS%AO#b}uzel$>2WYdeHa950_4-TrfJ_SHfSjxY%bzZtppH6d`hv@)lL_gf zD2Eq%b3w%hXxnf%XlHCQ^o*a@OC`x5$8&(T$$-zeR6sfb1GKjKqlfi{a?qJLK_0y_ zM?rI39^I#3Fgt=4&9Z?8eVGq~)?0O7_vmyJc+t!O>Y0O%ya8>fM;t)=LaGNGPS&SN z!ol`|_Czay!l^e>z@yij(MO?N}tV-KD=1!0a{?5{DHxvIr#^J z2Y5s9VFQm|=MNs%$4ifZhOWRTg24Aa>!O<9eG_#5=;;@Rpc`eI4<~q7-!FZOtP8r{ z9CR=#$Wa9z-M9EP3to8i2CVSx1|81yVjHM6&M)8~z%O6`-s2VkI_5i|p+b_ORQD4< zXvd0xhe8^^-oYxqQqZYs4jO6v`fePrSn zPd7Vgk(z=}_c_o>1hI2KWlsTzM{@!PIOl4BLW2u@rtph7?w|~H3^bwU;L&~lGk<-F zio*+|j_3c6Idd?A_7o*Rx3LsUfDY#FJ`CB=@;LtRi;^x-=$|MIF=hUn1_FM!|g z^V0`(asgr(h4hmPRzUz0_~Zi6jVV4&rUwiPCpLMPCo(9ZddSiDBZ3co}F$Sp53kjo}F$2uTKxg86cDs6b zcDi|ZcKTX)f=aSZUyzyr&raU}&rY`h$1c|h#}2m$pHA4NK;ax7paT<-?hx{U+#z({ z2egpm>WeJUf*B;`;5&rQ`*t6B5x@e!LkN0^f?PRh*}*Z;=>?#z6OfC^q7T2=)B#!? zmI5Nd`-4F%(p@^eI6OL?1U$MuI6OMJTr4~#OT9rOx1hNUM{vUR=;W&6FXaUZI&h@% z>pN<|67PYQ10|du-JSxD-3MRucyxLRfR9S`=;rKn;s6;{vI}(j-x<(3l|G#w3ZT8n z;9D^|Junm5L&y!a9-uX3KYg`-cpm)E47vfuz@yiZ12m1K;M1+?(`^8{XmU5>?I0!0 z=Rv7m!&Cbz=qd_O5B}l{&+dbs+6TaQNqKZ1e9i6I%Oc=meb9s7>7Ykv3;2d7PwRvH z?LMI7cJKi+*j=DaL3}o#BnLh@*}$j!v9I=1&x3!M{d!p*fb;JZ=;cp6Dxl853kARD z|2>=kGnR6JuBd1A=|28i27KtqagXlHpyeX}eL)%ewRbOzjZZJjai8vUp550#63=`= z>#Mr?K$%~_qdQChQWpMrG1D1T>e_)yAJE|UaqyWY-7YE$9?T%N0D5WwtzpqV3<^E3 zUY@_8vKwNFkM)mY8_({49@;;_rxu-mQS1vc*^L9ty$&kjpH2f^McsYQ2ULz+@#u#7 z%FFlp|JPbRy)2SGoh@LGf)txTwS)b4*t7cz=qz%1kT+g}>d+T5ZJ<+KRdj~$SB{V(rfeWTpPs7R-mi`Qofcr@O$5WuPWpCurOnR1tN<&t7W=AK)?p>7^8xy z_CUoxsJQP1?NI6d`Qi|0nP#_(N&>i)2hCK1P6;Gb%5!vhbG&Q@&3o>cq~ZxeETDp( zzXdd22rlefAc+LDUfHLYcS4sU184z)0jT;l0B!vNZ3O~V2@Wq@j6talsWJfXHRA%G zv;U&s@%ewyisS%L-P;S^1_!DUTvQBRC^SK81dmQ;M125?#AwJ7t1r@9K+ym_iwbhT z7=Ozq&^$*s=#DWDA8q&@V=+tz{5xZqPIz`Z>;Tm%&4&{_yB!XAce*eg@a%Rt0b-o+ z?Tpyr+Zl1dw=?1d=$w=b&Y*KrE`ZL+djLKq6&~;`4zP%0!p1mGBJgiUgw?_X5tsaJ5X~qQJ0SY~u z^o;QV(5Wz@pn0NBP{HB|KBvzEbR@uQkM4tq!D$dw+Z%Xx-{98-Ewkzd-C*|1$J$Y# z#MRUKMyY@!zX0QBNB(*SP&-QCwf1L6{(M8v-hdDM0!#>TQ0m_`8FXfypm7?%=(kV& zg2fyjo${~wAlI$ECFK1afXS==xJ8 z$oe6Wi<|^}z-N|v3V4EUKkM`Y9d(O1_YQQRBj_x#?nsV?YDtDt4WDjj0Z=;XKL3K* z4U~XRgA`{(~bib`&Kbn`<+K^X*;EneE$gA&Ed>O$~c6ECkr>FqCH|38Cr zZkeYAs92Ks=ne*VA(|ikdBJ24ZlYO$nrIFn0<<}l8>CFmqdOQ{dVP3t8&qS1+i%IB zk}M}W@xu>hTql1$r6F9+obpL#jJR3avXLH90!x6sa9 z20Avt1+?HPLm#Q@x6v%Ubjz#Lk)*?WL=ABXBTc(Fg^C1U5N2gq#^kX?wq zJ>cVOUc6c>$pGCN+M)s)ZTIM$qXHVB|IAFp>Er}? z1`q3h{4Jn69Y7Hcn)Na2klYR49lA+~5sS&720}iY17O)pzOM5iG5b&@*0ooVD$uGe0 znZKU#Gk-mYNAp3DaOne3yDP#&+eO90D(w_8WWv)c#M%;*8PD?uYKprf7-_*lQ>Z+QdSE8qIRR36lg{txy(NTX-Bi;6_I zO$Ye&nf0K)C-^8fQ21d6A1IKar<8*l@2(7BWhX(W3!%ovIZ#}HFF@#QQCR@0?K@jk zK&uTs!25BP%a_76EMo0&n#-cyY2D z5nWM1xm{xYe0)lUUGvMi9j+a zsAZtx(GAJmkiN}_7kkZM{YUdhhmIML~k&o2k0)(D z6o0NWJdlb$iLICgnv05oWA{aHU>rOH%7i|kTP1x|3_P_@A`Wc;tx*KuRe_xDn}0Eu z==xaus92PWdi3%p)hIH&xcD5jsRw*K>T5NRUfy1i;GXBd{)1MY7(ff*1kdi1FZOdo z#&*G5`oYQ92UPYMfI`*ch2ksFAbtqwuvAdu2Cd>d4w)T5c0sR5kjKGCEHBO*At&|b z6cq>1g{>Md_AdivGGC1svz8-gFys?fKD?NOq#5ai74R7Z{2tmjJ(?eX@aVq$BFpIc zf6$gnP%886j#lvOF4pkut_Izc08PQ5#2e=r134D}bdF>=G*N=~|1W|!8Vf)rU$>-3 zcO_^aX9*vux1b6t(3%e?ynYKRcfcx)&%9XQ1lsHbzfc}zGiYGiqx%T@*cjTrO%6~h zXnX^z&p@a2k-Tryv-_h@_a&e1pPg5=GyZtzPE&2Fcfnv`+@JH$2VU%~s4@@Gtoq^hR5H&+tSL&nU z@FMK?KhR#+5YT}Mk)abl@e6>@pNn*z0reXA)PzXTmimZ`pj}LtK-je7l8gs>`-K^FI!v4HbI<{vv7r7Szo08yvT*>d za1nG-$#4O!NOIwi^Z;GV^oc*x0klC8w5LwM1DXt6_#?pEY&<}-*@ECR79tBAKJiBe zfKtLI(DgOolmLq951;rW3P9&gmZ((tbccTM>5lF2?iRW1Z5?u%qof9W`muwDN4JN= z>kyE|{4t)O6#qnJj2Y%A;~IegQ_% zR&vlmAE2{!1$|Tk_%*;6pn~rCSPm-5z!sMFgD;Q?0HqQQ*OrqdTprDN90o7JhqqbZ z1no2f<9(pf#bOb0t9IrJ#L!piOpe91^cNK*h-Ph8O=q zdL2Nc#2KXNjc$1H|F~-dsDlbRBm{b|Jl}E90U`|G%j8)=``KI@K>G~%>RC@}F!K2sp25EK)fb8mZz2VX8x`8yE*XlrPd0kWz9J@d#lMAG|@YlzvICwVyl`m%X z{D1T{x2y46(6LTFouw0eI&)`$5|IaZyyx;GP)E<9Rlt#d>OoKI8zuZM{2H;~UWdlZ zkUya2R_zI&?$Qg0I^Cn&R{+#I;4{7iYUhLI&r>x)vrKzI>w`SuHU3M`DkslwIgifR z4xdgR6%AkOr~ECEj0_CE-8L$o-Tncd+WrnmJqK`85~=p{1RXJ^%?7FsJeUu8SRX2r z@w7h7-ws+8<&tLJEK47l`HnEjo7Ok4)kK6(NrN zkxbxIVIBDeyujr-q*`#~k4OToLQmbmuki}B5-`0&car@K`EG&k9NECJL+^RfP3!UHw)W&1Z!w1V1iy>q~$QY5Tc z0X1fk&k}vHEDO{bTL30!Wq~?lkTFy6T|=P07}D9I381q@UAsPjHlKjjRDnnAH?$?bSqG=>kZIQhC2snnK@`&gFlW{yjYO|B*+iC z3-c3y94}k3B7+CN+d{MBj;I`&$l1~l#wqXIe$T>$w2Q23eXsBLxdVPTNn z#6=vSnaXY{kLH7*8(|U0t@!ljTX=Mq7J%+tZFveB!*k&mV7*ufS_kFK;bF z0ZlQRJo*10bX~5Co*U$T1i^7Ml0LJ#eW zuem|PLI+>4di07kftZ~kDhbUG~2?9=)MEJbGOdAft$$-Dg3f3NLmP1Z%yBGU0}YM&K)mJv z_1Xle*CHRoy~gljhc@|M3vB@V%(cOz)3w8+H}nJ+e?5qN_1~l06+B+(X?>i(>GfaG z(lvh$pKfp({C^CzV&dQr79Z;m{7sdhu5Wi~fd^wEmIDj*%bbHG;`q7_=` z1rvC!2xLqM>2A3YN6_KA&2Johx(ywS-ui$#+o0RLDsJ$HUjohKoZt_?ZFIo1`<^eT zGs_9u-2mFxSs=&YxCgX52ed|#H7^f5+`|njVv03EMF>x}B15q}XzmKMu;oXw2xtez z_bf$*VlJZtkXv+(7jb9Wu_5cohSN`w=p4RX9Tlzsm3x_iYBrxysw-){f@7x2;dkB<5oZ^e- z6kD85QHDCj6Xq0nSbO|G{lXdS2rOY;qT&Dw>j235x@-y0?qUVc?rIHCSYH4~1t`G5 z_dX)-XMnAVLaj?y+yI>>-uUJP3j+gL<35<@b=`#Y>0LF9zj<_)TDbJ4F}if5s2G7x zast;{om)YtWAF>Q3b^uzKLIuLK|8-(_ytoHK-ZXn`icsm!q&*6cPdyzZ!hTJg%{4+ z$iqht79}c1r5p}j|6Y2Ef{*P1DdHDwg=`h;bpRd4BM3g5g&%s{k6;)Zd!!O{V06Qp1z{7xFvlnz!4!?kd1HWb~_=q3@j{ttn zUeNhK`~nUM{F<$xO;-E@9tHfGy`WuA&~TjL(OJ3zRQok}be2v4F&scEaXVd9B0M@> z13bE0BUl(1T=)e*tLYp-J-AlTq@^pr#>F&Oe$k7ds~$k@P|#kclOP7DqY3I93#yR#Q`9FK?fLH-s_VbDQA0y1&5nT7gU+)8@gWBz2)2Tc z3E~%M1s$FMk_Syuf#g9c1H=bUbny$cf)11b@j=sFAbC(a0`Wn++(Bi!ty45)SkiQ5 zh9ZMQSBZ+DLkEcHssXV;t+(#l1wNg%KYY4#XZS!)N-k{xU8u~E3Ocm20vt1-egrsX zAp2B67rmzOi+%?W4@81DmVqn-s{rqO0qr3J#Yq~!{^2r(7m8KVhzQ}21Z{5vZ!bIO z(e1k7wH&yK)4G9?fx#7Y+zP+IR!}$e6TiS-keEkzgu*cw&>1t$6$T9aEp4FbK*%;W z&~7r&kt6&O7r;Ab9Qh+bCk=tegRYb%fTSJ4yO=;5`yd;+V9tXinYc=Dd0Gm(4W$;e zIVRE-bpQ5u(1jfzKqDDHK)2vnR7x{|+Ed5Mcs;sfH-Jh61CQ=#191Df7t}j^5&apo z?65aj0(6)g0|Ud0U#=hjPw?pO1&#LjbT0)d0_~}XcVxh0Q)owIc{KlGDv$B#?gee- z19e43Ji4cX4m^YONB_LIDh1gI!QZkMwECcXD!4DCeFbb7&VjBoFXl=;|NpX!4VS44|#30wpRApklW~rNX7R zh|#0F7IM&&W7jv=mjC>%si1+}UY>eT+aTwR2B=QWIRoky3#6O@ZOn{GIRn}yBoJ~2 zv|TzzMGMBNiZD2}H5a5l}xlhUbh6zs5~a>2U{?v_OZ~y70$< zM+#$9B3$@2ZiD1*ed3P2Zxq#;A60QS?WEY zi+?K|yM3lIfa=8v59XhsSczc)M?eY-Xpz-ca6#qBA8En@D!w4a7|36s8(IXwXXik! zu!#WelH3X{2G@d%M@Rlh9k4D);R)6Sy2}f^VHm0lv}1BDXto=4JOH>*cI1x~0qcSk z*2Z1 zyQpNO@#`Oj_P>vTdg-7oh@c@6-xvHEtbWO$jDn(t^;D1?=pGkXr~Ly&lMBB9sK_k^ zZB!DBec{pT`of{*TS+>o<_2B-;>xdo8ElOUzy7f@7SPBtDEA0}6ngZ6a~0^8uA5*r z{QBQPrh+%Yf(DxfVcAa*k|Fs8_d>IuAXw+?B+!v@P-}jJjd0=De+IVZ8OR#Yx$Q4N zJy-{jCHKH89QpOXf>pc&sQ_)K5`<-8L0G01%uxZ4PlNArzUYyX3 zJ(;h8N+}O(&`xWRx~9v&|NjS#*av_sL!WL?%~#ss(d`-l>ZV43CmJe1V^JR6t{$&J z3;V!_HiM4R^yv0=fZUJ*TEN7_-!>OCg#+3u?aCkX$%S9zKIj6h8~hsJLtV~;Zn**# zB1b&B4?`B>gSC~Zfcr;}i=-L&H9mm$EZ+ka4lgbhfm{6_%Dh1KfG_|4=mDA@?{swl zufB}+0GH38vboz8Jd_#X(djz@>}*hL%8_5=FDUSRR4PFAs4Kt5bx-Yk9tVH3cr^cJ z;%^6C;_Tb{wnQ9StAG~vH$VCVS~XuI0;yO^OhKE!Km%-`Lv~-a9AWj7&$87Gu>n#_=B!O(+Dka;TQ0Y0M+~+%?CiuzzrVO zt)PY%e@hSt1GGQ-vg$iHIt5~PfC2|}WbzHr5XXx(g`h$*lGQ3n4qP3isAPcmrju!N6VL`VzY zWB`wYzxZ|PE$9%j6CTaKS@@@b<|w*jR0=?S=@v=Q{8ewUghwy6G~fG&T6-Yf&%%Lp3k0o_i~0LqrW5};;+kBS3$^DFwWH}d)g(3wE3 z*Fjxi@ChQl;C8_aNlsAxF%?wZgIu5oaY5^P(0I2Czd$QU0u+Ma({(_}8*&Pz3%?*V zkOlUFMp%&oTc8(w4vY)GAUM>)%P>M4Kyw2YFU((oCS}1V@qii?oS+dy&;gF1DMN=B zGf#j(_JR@^sDUcr!S8+oR1C9~v3_y|?Wc1AU2ut! z7(IL4Ky6b{GW^6Z0B+761Zf4;$ZnwJ!^c5&1o(_nPNcAe1YyHo&?YK|k|@v;Z*3oy z0`zD`I)KZk*CxoPyHo?z%~0^~_W8%*-_7#RqZ>4K=6m3U(CPpG{d-yddGt;N9hTzJ z>#Ol%kuzxA_OM6qRM3$s;N#7Ook79pIs;U=6?k;tfJ8{^$r2Z6D2J#xym)ntjOd!k z|NMWKi;4m0)E^&c-{&<8XgCg(DOz9u0S(@PDumb$AM4NjEuBmZ3{d~`xBLUOYEd(T zOV@dyZqVVEp$9-!qQ#4dGvFlVYv5t+Yr)?#51imZ*ST~uf~Imn=T?CiH+pz}nwKauP^gFK<<(BEyS=M?p)7N*mx!a?o*?p!E6&I%#MDNv|)Dk`VwC_z(f` zQu6S!5S9D_y`b`yU$7U{E9MsfpSZy<2tKg@QarY1fO1dsQc$lPeCroz zXwwB0+b$j8uDp+R?TQjl56F>qo}KKTo&Fpi-C&zNJKY704;bHeWpur;IsQDwn=aYgC!vuHIBEUyyKu@ra0PP#t3L1(7ot;quQ2;t+W^Dt6 z4LW>wYX_JuSRepi@N9jMzt#8u|Nq9{94xki3iJ|j&{b2QJD7UGP6qq8_Xa2kK#4eZ z#(q%#d945{CgEw?r@OS_HIwl-hpu}LUB5wFvkE}%RZ#4rF6GtW0>|685)qH?&gQWRM1c@B!hf-F^dzHL7+!2g9mawx??p!F0u9jg#xGu>^}WM zobBa*kM2+lkW;#0r(J-yzaD&H@5u~b@C$N)3+MCy4qeAV3nf9L&}efv_%5;}ctpZo z(5V*=@Y^djSP!^^4&emNEi>_J@Gf#!WB~1DO5oS5Q3>D|bOjw25eqsuJahrSpzj7x z>jV5PUqRKC2Jf{H@YM4segWNR7dZy-T}T3@pnFJCH-IkZ<`?t@UH1c;-vZ4$J8*#J zGoh2wT_KRkXz=_GXfnDoM3KRh-|Zr(H#`G0Qv_-^fDWN$0_g(xe|tl3fMr3-()jhy zf>fOS#4i9+u>*9IwnuO14A3<61Y~6oLCPL};ukRT>GfR!8aae2OWp8^U$Ars)U;C| zWuOE8q&%7rfJTf%K{v3(t^j$s)eJNzE#SKWv{Nv_qx&FeLIHH=ZXifuq{L_bdQOk# zBL%UDxf}tHP7jXIFvKpX-W-($9*u861GTUVtw57FGeEa1hvYxAgqRt10t z!z?_QPlD(Q{uV#5n{Rj=e9Yp_ETiUX^cFHZ7~?MSVqX$$CKEJpBM>g}S{f#)@nRud z5_~;(xQ63a&`GGE6NqEn6<##KrNMgr6<({uW@+6GUZkMO8ocHN9pl{61*-0v|NZB0 zDFh#!)$&5zpL$2e246Fk}rYTR0QXdeSLO$|T`o4QYVXrJ@2{sih~fc#qE(G42u z0H2QzCcgRfW->xr_T7g;4MlHe7SJ9>0nj0cj^N2;fd~%Jl2%84&}r46<%W<^e9#uH za+gp1g5dE}(9wRNE@F&IhG%y;ho^P80C+)?&?m?+Qj!3JXR|wp#A_i?Lni{X^s_nw z)UpIMt9zXp!KWd5bl>u9e#^+;3c8=xv)iA;vs>JQ`I~n)*hws)*#Nx@RZgW2X)gSF zJ|8%$%u7u@y0`8CHQSqOR022|SR18Bn5UE#%S zxID;!a)s9ls45IzRKit&OehB(!%_npP8KWykIV?72bTB1_u#F(m*>j)F8*j-XRzUVs}iy+INnK|@D=0noU$K!5F)^(OIJs z;Msg6!MD4V!4rJc^f}a|kGgu_`WJsw(l1a4YK{u1zVPghM&IEBY65_6wGQ6k%C8Z< z0Cbo21Xq5I>;_Q%4@qf{9pMYlVh=-H2tJCa`@?Hi2>1U1Pzo(kvGC|V1ll-f0Ln8S z9{&%5a+QaNwU0^#f9p=j>D^%e^zt@)Dl)t<+WPDNOZor*|AY1s1$#8U0nfiU@(X}A z$KM34Qh+Z}0M%|gK;s7~(HJLkdX9tN2P(w`O!9&h{pi9Zgs;g)rZw<1G1-%AnD zZF`{MepmiTkio|s`62g1fDfAl-TMIAjmv5Wb4w`5EElk4po1zwwnu`9hyyS5z@i{0 zoB}!Q9C#Gdkv|f2{^ALcw#PB3P7w4~WZ-X`1UZTC@QWicARmJCA9}GP1~M|t-`33l zo+CZu2wD^3${zdzYBCwFn=qkj{`b!^Mx@; z2Be3-Z5jgu!^B_J1@&z;0Ew&Gw5N-jTiYj2b&O(u) zO1@O~6Td(UIFesni-wefAIdmD4szuWe+zXHXi)pbc966qzuxgGxl+(J{T8sLFBX7= zUHJ7sfW7gAKl~eL*!NEvXq7tXsL?+l?vHY2(EaX?{Q4h2tZ$&i6lw{cbU9wm%&+kS zT$eEOYk-#CfR>uQ@QenOpC=&GG0OP7zSt2;R0&aDtLB3jt1}JZ+ruuz2O%CRsNBn=2oT#C~tq_7bvtq%HSFY zAer2SU%(TzH2}0&v_%C}EQ5{>;NaKz0nhV+p!x7h4HtgRh#9W@8n?h16qFu7p1lFi z_TbE}0M6_JF8rD{Dxi}tUHAnG4M0m%UHAnm!4rwD{2I@}=^vc!UHBuxdG!&OlvAz|Jk{bd>PubOarTui??@XyDQ5XyMW6=JpPyy&?7OgfI@5w#Cfj#pi4g@TOi@aA9;p9{PHJ9{+MqdHD^A#fbaYf z4CLSs2VDl239`!*6ro>0@*sl*Jr(%FKY!vEECf%-1%gUz@b#Z_z?<4Z>F|X|H>gOd zz5z;#SkL+cr(MvMF`zZ?j}L>^B{KPRJ8^hgA1E>X#4jLvz(NsJA%g}-96)UqM-ah@ z+=x!&*S}EC1M0?kS|2FAY;@r82FAmnx(c$su|NQ{&N>vlw6Qm1hDYNY(CQf2mRDcU z`Es8?dvUr0I6S*KUfkILTJ*^VI-?9c^#SU-B)s^QjlAa-bj5ThXs)8Wn!}@8+7oom z3Iph@hEMzgw)0)V4mN!+2RftSK5XbVL5%O z0jjtIJgqOH?0N-lj28ga@6e6$9v~kWyvS()wYflNu7elN-!I_;?JjkAnGTvA>h)1E zcoDVtWq;K?FT5ZtOj-#zTxeax{p zkP#Fq2``!_K)2X}_ws_b*h06We|Vw){TXO&Kjcgl&=>%Cf9{VL^4Z}1xj(>Z5>)7e zlCvjx&1o@~y|wX;M#;2P9|0XZ``ucKxVoGrzc89*E9K__OE_u|eA%3rYO1>p>6UU-)w z3BJ0Qgb|H0N1C8Q=M)MqxF*5pegRi{=EfIze?Ck&z z?7b+u_3wX!HK=iYl3#<@M-RNlK@fC6xPSv_tSADsswn|nfGv)%3j9*{F#KwGUX(9T231`lJMf3fr9 z8_>pGr~?JSZW91I%M)}uQnwtx2J2S?(5d{q_YA`i-Yo+f8I1u~%rzxb}%ZQuq^pBxoot6?6f+GH6RNsQn630BUxEmeqkSzV#OP#2;}3v?^}G zC$O9&KX`2zXhojyj8FWLUv5Yz#A@(JXT3Q+U^4QQzp z$b}XliQ69hZl}`t^{<1vA-_OAk_0;!!~zd~R)8k>uYmjk+HF^(0!mAQF)9`yQ$W$1 zqT&EjaTsJ`0MxKgAj3X^j9>&20v_Grp!H`ZDxg3V1O=iCY}717MFH$o4G++OnE=0l zi;BW${(2^lW_J#O*P@`YG6j$B^DkbPgO2Ef#3ATD4N%haXg&-|<0&c$pulf!{s*dS z$~ZuYNc%H51-%1pZ$nu%RKX6KT{!ew)T8@Q^CL!&i!VI54}pY08HIomd@yA@`*Ek2_ z@`oQtE`oyWWEl&jIWNEj3UW}60)-MIzXtD0YjCZ{ z2#TRYptJ_+Q9(31^6Q@hYdi&-%=pAF$N_4*e&QDd-KZr1a$;*DxH$q|Y58Jtk2l@hkIH(sPxE9=H86V9D!EQ0vLWl*9ZIp;47BFIzgi; zpbK9?b3&jA9|7>vUVcH}5BvhXpoPTzg1!R$g02iN*y=$00$dmH3;1quFsbI~d1R-lI8HpTVQsk;6lq(c|C`(EhbnP}?7L+NBIyVWtCK z)aon$;`N(1|2=wrpTBVW`wVn2k=$!9pKj2sN;+7yM-en};``jglB0yjqn9_wT#?}g z^O9fxJ-UB;YTJ1n{Lcze&JI?7bQNfllf$F4(!itnu!5&`97pK}ehpSrOYp+b@1U_5 zL0@){URQb0!WRYK?sGo9uFpMsL%)0U`m(=R%f!HN+%+Av%*~@aRNX^6R33B?g~!2H zOdh>)5q?DiAz(B?xQ3Psw|jO}vgN1)?` zx-Wos;vWqI&8XI@dvwRjdsyEu@#hZ*jl+O?5(3LxgP^f%@bX!St)M0#=&&?-59@m+?jF6>5+2>5 zFFdS6Ka|Mu3$XJGGVu%e3-AkifxPv?qxq16M`!4Z*8)D>pc{N2ywEEKnGpH{v;fMZ z`8cRJFFokleGP2<+&_?|Ob=k;@&OVq4_ z+>;qp3s|P{>)RD)f+`qC0m#xh5zr8r1gOY&<0xZKxw59=GHO&;B` z^|1BL{4FuyJ5L1IAT_Nshrr8FW(M$jJiBsM&}uw8(5d(!ryM8;E$lwv(Op{)T`0;1 z_va~4RoETQ0j|3F9rU@b_KD?}4$Z#d|jzAoTr?rd@Yms9=*QzKk*C3J_k(*DZDWM`yb>;evNyeQq;x50h}V7IY22Q z0-Pdlcyv2(fF<5~bl(7_2o8_#8=xcrN)e3UBy$2R{}JrNRypvkx&KS5L1*xQ{BgKU z7v`S(zTHPa#UZHJ2RWnmyhpDu$YHV9A?{iJ2fS^Q4K(Hl9^nUPie;cNO>o$QoDVXL zU(oeA$SfCrLD&1BLZ-7uMd3x}pa1_~R)Rwqk~D~p;m5h8r;7C`dO$7#`Gi1Hs)A_( zdk55b0jFB1E+KvaS40AQxehds*Xs&Ow=Y5K@qIyw|MUwpuo=NZ^xLyE{{e!9)=+q!+AP8~(gaWAR3mFG$d~*S^`xS9!FSxt} z_jF;sTv!(u*1tvX)OvKYW{1EJY|{W2p+7(akqJKC4?#!OgBMcu^2+HeGQ3co{p-K+ z?T#1~190cG1$@dZc!B`5y~YQ0&MtJ3s*wli_QW3W)aVPV)BpZk#HbkYw-|wUytaUa zL1%V??nC9*=urV30|z?HGXQ+)a*GORt0hQ20nG1F0iSyy*rNiyhPg!rw4)VlG3X*@ z(CLyOlU}@h_8+pTwFP{zCBJ}&0KX>Wh)~G3R>;|){NR19J>b(CL49yg=eb1%ysyZG zUqH3m5Zv()Oi=-y((swTz6U(z1UjD<)VB8N2GzOdpaT-L&w0XENP1#fmRO<=ue>1# z2hS7%EjEOh_oDmJoBvS5_%&GXDuUX9kb!-E4c>iVZVzPCpI=}Pgy903H3LnVcv^qs zZvh=#2CB(;D-|J~Y1;}#MbKu;_m2D;&mH+SzJt&Egp`p}z=8gWKN55tb&CpUQR*lD zNKgR)I>ku<5(l67BmF@AUeFq=IVzy_tDpEI<-l`wpeTW90CkIdR3Q6fAsRqC;{=v~ z;|Vm=09wh>q5`_s3!=q^KLT`eSr0VcKzdw2H++Np`JhEwkb`JHfo6n2`#(X&^v!a1 z7k-Vu{2I?d2iJl`LGcWl>+#@sKM3wSv-4~Ga^ctb0}2FC1qTl$!5-)&ir^F#=r-9o zD&PgUurqLbd%%29hY-Ha=@7WmJp?ihJUIf13{V-gM+H**2u@J}tv?346EtcCI%ye{ zCQ6h*5d)F}SMA+Xz*C#BD@Q4G&Z>!rs zP+>2K?yJ`#AQwV?=mJU`P{-9kwnzFv`uj^%6hPI23+Mz57f@ybZQ}%arUl{$SN@ov zAnqRU8NiUnX^RSIl{F}(gUToHD0T+uAngk1tV)jxXr=0lg+bs^ztfO&nq5HWG`B#) z*@a&~)>{XX8b!T841NLAS*-F5pzXyLKGrYzTkeAgiw=4~mM}zk^zt}>mO3PObc3dh zT2!EW@mx-Tns`0XA|{dtw7C~_&HWVc0mPu&4^Mzn>Y*3YY^51M(RhQuJr7)bxhnW{ zJ8*!?F3?JKpKb;4UA1ShWl+$rTmCk4P%#Q#+25ja0<;FI`!gsAZh-d4bZ=3)z|6ql zYyE(~MHjTB)|Fo%MTG;joIytgM3$(4_6`d`iaO|xl95+IF*F67$za>qkAMc6KJg1| zffRNcpi4)=+owURDW|Bs0Np1Eic3(Y1MMbrUvS z2)R}ev^{i=$_I!kYrq+iU*j%lW)*A-91}}#IjSPXt z@(#aPVhvprG5r82Gl6Ud9c2v)!j=Ob{4S^X1vo*q2}l6cxEBD|6kuP0ghAye1V9%MfujDk2I%x;kQBIU)B{c;FD|8kGVc}@|UPw`yVk71}Kr^WT zBohmWvS}(Z_*y^XZ#fGp#vSYqEM{fbPWsB~jUAbwvix z=A#jy60w03SUJEk19RfM%6kR0=#ST~spoTg5;v^4=bm z7fcKcFTVPLW=Ei$GyY)L`+$xOJz3%n8kWrft+6b4u_*sFc&knY$o34-(cPf-2WapB zX=nzzUY_~Ij9V~2f+l=BV^k_Yhwp;R`qq;rv7iJF=5$X1AGiOaXCi2@Y6|q8q8>=C z0J;DY&n^%XxE-jq2*@T-eFqPGP=yH#{Qoy$4uh=g0p${qywQP|9Ne(eZCg}2Kq;+r zjtc04at~0E3~KmyZvoe`p73LpHhuCS6soDD?nGmgW3fkx1!_zKex8}I;f57@Ua zYA1nmMG5%21&}gO0t1;qM6Q4(B|Xrjb2l_wfT#PRYuT%cB?cbd;-G6S!2C{m56}e!oh{&c+oLm{!vi#V)!70z z$D=b|0CYm=6mS^~>gQN^fKKA-Z2?zc9@Ym-41Bs3eL9yw_??pAQR7ZX<>k>C$>GuM zC;&RuA5>F$bVdri=J4r;CFW4wZ=~I0fv_$r+Pv;tN2@Gqofle6#Sq9po z+B6G;IJ%=OBAa_&}w9a|>9I1G?54 zR5ybh_adzgbPC%M0Uzrn;QEape0KXz0g#*gz;1%Hv_Z}i2i4>tU7&q$x(bqD2M4@n z1+_v0e7iv>Lc1w|{0FLJ!Tt*eP5wb!Z=m!H3JY*@v)%$;(o`bv(JANA8OPz#87BZ9 z3BK&nd`!Zla|<{aUt55J8LSaB^4SB9j2Ev>KszBJDqt}LPsiPe#0}lO_v3}x)o1@b zdi`E_cC)B}PmKj7NKhPjSRVqfmxM$?yc|*#n1jl04^TXK@N0R33M5E0c<^g6f+~1| zvC!-H0<^uv1AKESI0hU!I9~ICs)>jfA6lM+T?A@edw?dZJggzj3s4g9fG!y5z6f$d zzzcPGNd|E9#d-<2`NH425_|+_ib?=zqrZhbC{y=BnyDax|8gLK?iO&16J%fnC>MYl zT;MpV105sK&7uO?m+qnxu#*`yXxZrl+FlK6@5}*rIzI77Mu5Bx+TJDr>sm#En)TN| z@e3?bfgbMh7~BDc9Ge6_uo}{r1Rn_E$PZd*7Xg}hT>>sRKk*B!0p9@fi9Zr_%r*34 z5YT}w{1Kp&I(k$aZ@8zHBFfNccr&hLQ? z5kPJH_=#U|3$#Llj>UpzE#L>C772g`RwY1lsnGhX`}_+A4N$8Q911Qf0r1fAXnx5E zS{CNP-+K2SxcLAY_+S8+Ox@5W^SsBIz+u?z$iecO3lzl(FD9yi+fy7q)+s6x{H>mQUG$93a5brUAmmZ))*t&aEKzbn8Ylwhs1CP6{YMOv zfZ9#ajw`6I1730I!Y?4IAO||A2B}a6r6y2u4=z(Nipp-t?garz7uTbEj|ym%3Vdav zMU09;X&`7q8B}3{+V7y$so>Ln3RJLwTJfMk?uzPv|6!rq<)UKP;Q~6vy9eAu0o@zg zaQ?-Ak6vC$Sw)5yFIs>7p8#qMI)e%dr1JRnSx{t70T(i!+E>B-OB@X_&^a3-7oUO5 zc>=n3Z3?)f1BsD8pcwgn0aPbK&n76*1%)E0XF;f4cL1ghe7`hu`>-jMl=fl81z3V0 zu6>x(PI~)L1a1fJ_8~a=fZBhML(UvnXnDkv|2+r(HK$k}bA2Y@i#J`w`p-nnQ0L07-^sDQ?1L3hiv z$V2Xy0S*2_XVppGd4fKx9_ttrfB3~ZLD0+{sHTP7?+Kc6kZ=T@aS6J{&$IiZM>i*U z>FqC2yUq?YujSKy_{IKK(5_);0mLk(k2bSMH@D~a7vLFc^z-*wUvQp#_TQt^+Pjyf z3^dOJzJ=A9!vn+xUwwV>0V_zXyGF&qqZ4#5BlNmON6^`jp4|t0x=;CZ9|WD3-F@<< zL+k(l&^rmcZ-VZ0Y&}`x19RKq7En9|Be~5(TiBzU8~0}R+_TUAdtke55vLvd@!Ekj zmkaHVvA*EMWrt_?LEr8RKHax`x=;FaAMotHSB?ds zb9_O4TF`8+186qa!?RNkw7=58qxpyeILHxm+n9D&a(MO@NFeO)KJH=ty+j7o7V_x6 z_QG!oxN{@nVf`IseJuy*f}L*v7m(8j6g;}ae?ap3j~Aa$gHlEL3y;q74<4Q6KRmi! zIUtT|KJWtUFpo}G4w!Q>9EnJ`po=FRKzsVSe}Go_D0p;#e4z!-ur4YF;CpF7tMx!z z<~+ccI3wRa?v8x>cnPydHyg+a5ui(4yAOjxB>;3;Fz9X?pYA)JozViGoy8KKo!%TE zOF=euGj%e0^hR-b^j30sc7m3gUk24UtLDG>KLK=NHK^KoF$c;s@aXk7cp)dizyOl- z@aXmTc(Lc}hyUHq37zf<-OeeU?kS){GrK`6zq&zZXElTF;ynXuEN}#SG`}(Ea#3;c z?Y`*J<)h-@*?qyc`w*xu^XR_$A_cULr5kj!t3fnq&oemv;!zJeNC4EnZ$3ht`WQ6x zLE$d|x+g;d>^g9Gc!F}|PmfMPkLE-UhMk~64jX1AKO> z0jOaU&?Wpr3fvb4UyJ0=@q*zfsO{kox>Aq>6r~O?-W`F9fER>0yts4Z*?;4cpw8bh z7Y+#q(D-umPo|o8-~KS!XPH=B2;vjZ+%J}s9sKDL147C2V7v|0ggsY(L zbVGiUK`Ok+ECHXB;sd%-hZ!;n;G$w+e5o@;#lq1d zK(bV`+ff0OL=7CR9TbXrkGp_-+YG+l46ivrihR2r1V9Q)Zh7nog#cC$OJ|M}Q_xU> z2ETxdiUD|5!~j(PK<TICP`54 z>2(B^MBsbfKY4V&EHwo0eeVX}$a@x)_`C0WblZFMdTYFp;$>ji1*EDtC^w2)&+x-J{aT4fC*XAD@bx9uo4}k7F z_vkf&ER5^b;q&P=ISLv$_UOLq+snfDVm`Q2cgC-mMa@I|oKN>@&+aQPy1;_}J-g3) zX#exnKIhSW-KYDsZ};&RpgCQi?$bV?wSQMUy3c}~>i}}D2dG3102SyFAUA`zz{b3E zWMp6f=S>czJI=xTf12Nb?m34n=mXtg-2&Q-;?Y~l^19ZeJ6OS|`+T>)M>oqWm+lFm z4!0wy$mTiZVm%SWD;DwTb!YMD248{YDf!~RW2fG0N1tBzKd#*pUfnFWT&%&minUxj zC4IY3cyxO!cs9RaaqMPr0UbTXa?qoj=Vf;T$Sli75LtB1u~XBd`8W&sCWI<*RKzy1a&Fj2$N08~?h^dhz0e7bLWbpQ11 z4pi{${?N_o2wDTja>}P$N3NDlATJg3ICgS($~$&TgVefovw^BQo=w`X-)y;DdVh|)~irE}HgPx)GZEV|-jeXLl^r`uZrbR<8|!ESJ}aO`IA z?B+RW3FZ`WmveeHA7JsZK34P$T%=roZ3#+R-RzE_v)y?PL6X-@P*}NG&j3+HBIVM) z)(1;C9lIGEJ2f0T89^p^HXmg1u|8LH$k+N>nX6}S&>v8G>elk;W_jt-4c6Gr?$OP2 z(8U^TSdn14j7Rf(77y!RC2Za7o%)?jp3SdVJepsz_*#Dg8&j&`V|}h96=WAzH@{;y zLnpgqCr39w$U4Vv#!hxnQgrO(eBJEXeCUsl^|?|FkcmFl*GqUDyScjA9Xpvi`Cl`E zbbymJSpUng|Ns9xf|3N2V<)3yC)Z0ySV9K%W4l3VxVuCpz_Zidx6_>iB|UdzYln6_ zXn6KU{P(!{+qe6pC+G;2n;zYtUR(O~@(6i!2Pimq`*d^obhDfSF<3mhMNV~hfx^+z zvI9hUNT2lR4P^3UzUbJ^GugS5XR=TCB@gS%HTz42LHB)^@;Y|=?Ed4^8~)$1lV`H0 z^`}}>kg>kKUjH4t`8+TFbncev_UUH1g<*6tk8`KYWZ&+Kp4K00PJ>H_7!?6fK_mgn zunM3gs^Q$pGTAW>T)zll=G8;sym}CHXG!yeKOW6LIBGohfmY)B^cMZ`(EjMy%?4@| zIDqn~Z}+iob|3BIp!=$gFL`vIckE;XWlMz@hd~SFo8Pf`^|F|GK+UN=f+HtG?@&i7 z3qh?tkM2XDjG=wdv-<_O2K@NC!lU&qf8QeTga~*CgaT-JXZN)i9pIaeTvQZ5WiMz= zu=X*Ji+{luGrt5c`91H`eH3(ZqlQQG!#^I@2Wv$@b4v=KCARh8)KH?L@mdHpK&S!A zhv4mY-8CQskAu$o0C~X{)J5j+uK*n-2P!nKgEX7{0(H8;Wg;vcc{Cp}h(8Qk58Vw` z@*H$@0$fAuzyJSVpM}(PDTxa$i>@OS|ONM*^*hAK&hQo(K~1xHJUB2JG^;bYDm z46n

v(sLk}8j0R|TI=R}0XHk%mt%?<;Oa&=J2Dpt`>MI!F|B(Eo)OT^m8IrveU- z<^&D~k8a-^pzbi&E^up1Z~wFZpcV3i?IZ`(ZqG950jsAw~~NcMg7N)ruMnkGZf1 z1NRqDG@}KBj7Rf9jTaf!;lP%zWQB~I)Cvgk9G0O8sN?oEj8#qRx8fAM<%^M6p+A6$RZ)BljBZzwAc|8rpX zzZZ7@gY$*h9vuGvgWv!E;Qp5Y_b9;y!B0?Y++e2!sQbgq3Yk%{0L>oBgV!Z8>;&ch zP7jVw575Sp&;IfZ9-SPJ%_8z1-SHeApen8Pc8ON=`TyO=Kky%P=3qWvDg(L?qWkoJ z0f-O}^YKzns89e0sF-#DRfC`=9V9+L9anH?M8TsOG<^LNsgoQclU%x z_l*};+dzWe;2xL33mpg#+}kpEA-C<>|Fq-I5{%$31ZWZysmlts54m0J(fmdMw6y&v z@`(rCMjqW+93IwROFTTf@4{Ce%6othf@b!xzESS(aquxSs25Sa2^8$?KHUdEVd2w# z-h=tDNB32a?sFcU?gB5Kn0);Yk^uSI0Nkem9mS6rfOuj37aT9(F$K`z;0rBX&}! z<|7KxFJJ8h8Sc@1kmIF10|Nu7Tx@=$0Ug@o+Lgn?!0_VU!{`4!nvZC}+mF?HL&XxRbnNZ$46=JV{n_M#YMb8oSL<33Q1_2}lq zYKY~2WJB!H4bcM`(#?&o^)e{Y{o9AEl?6#FH`q;}QC{%)FL>Y=JoxzX-gam{NSGT{QoWm(D}37=U!~P4@xJ;IXtZYmfrH{&UWzV zuC_o`f4ukg|6QQTXprVMRQ28gkmQyR67Kf403`rJ&gqG(dy_gGX<%z+QYoeGU>|;CyNS;>tFp`10t!`ry$!!`d^#qnq)6 zK!Qj257250eId{t>>oUulLZ(&jyp^6GcYh5V`c!k6I7piv>qts1Wm_uut>b-1MjT5 z2Fle9;h@kz?a^E=Qmox!8^e~ApZIl|uQ&e7@4Dhm%vyq+LdYiu`h?Ri>RBZNwPr83G(FIfii#joY zGVO^M`x0LMcL7~XIu$g@4mOk@Y$!x^`=)3AJ)6(`cWwE`-(tbUz~I>Hqhk5uz;7uA zP(LRC)R;1ZtS|!I*VX#Jg!99H(3pLU3V1p)z44|vUv{N-anZLMnfX+AS1~7uVp;7FMuR8K-tdV#X}=)c9ost$hNS@D*f&189W90~GzB zL~7vJedGiGL3a*E<|Cj&o!z7R{C@$cAP-28(*rbUb^br76JbzC`AfN4M_^4{hHCj{89OV|ZGh<8KlJPf)oY@X&VM;c0!0zljwjaPTLyXSaJs zr-uND>h=(D>^|o4{h>$q4^MuFKcK0)^y`r5X+2QF@6&x8G>CKJ#SR{622cRr1?lqW zjF14)KHUzWEw?K?x_uYC*s=!Hy74{Wq3yfF18$1~NL{yw0%+P2#TG_vwgjQsq5;zF z)9s+)(H(lgquY1K3%@nb{`*+wUML9zNga0p?LuJyMaIT!&;NUN`)7b=S3pu8-5#Ke zRxWsSGD5hZ*o(d3VSTGax|^w!*`@n{NAn>Tk6v$<7u&g|8M>KWI&vgfJbHZ_UifN) zCnS9vUNnCL?E>y)H4gxlT&@p1x_v)@+BP6>Gk9oUd||f^R6yl^fRq)kKRkL_qu+rN zuWWSr(k~AekwNgM})%q(Sq#qE?=u#)5Cf3r&b!p%os`LfZzSNf1es zGnX_2q@Psa(am~Z23ozjfUYaN`Jz7()CA#g1=V97y^yY?!wc4M&^~m2Q1b2ums1X) zmW{#-#c!bNX>YucjC}bYUO!8FbYBJ)*k>YM{+|E|VdMse!i#KBLT*k`F<|fjO^|_` z0WK;E3?Q}WjS+j0+HN0}1W>fR0@Z=dM+%}3JAh6c1uqcozWL&I1jx;$F3>$hJ}L?? zDx|@IcNyZ$AZ8G+7bF3?O=kjV;V5Y7?2D!9pfK$Ludwi27##!E zu$W=AJscy9LO>V(f#M1rFnUZl!l+RVIgIKrpoEb}H|x?(#tfjdB0;MK5auI(0^X2^f`ajCK`1Q|~vw}|G1P!t*`=`M0Li7Ls|DRp>1wreCUHCP?lcj>y zETB!V4xjl2i#b4Nvx62;Bt%2{?U1qda1VGh{k|kTE(<)mf9?eL^|d~Ovil9tl92-? z1)T;C9R(~Nof|kn&4JDh0uV|9LMcEf@M5Xs4WOGG7#JGtJvuj7KqSCdKy+>ZT^Hri zxdC(&Lg$7E76yhLxA{*xbT-F;RW&EDFfep(2908Z);!+>RhkONn^{;GK&!qPUfu+y zqF(Uwh4U|_d;u4cqDy{&iX0!6fEP~S$ShF-tyIte)hH`vz}GJ_eBu{u7GYsv=yu@f zY?fhRV0c~S(JR`$5L7&XG;%^TYJxPHfHb=N`~Sb2qq7_2_-+rD&Tbo+Zje7-+j#Vf zhQf894g;m35_OPn2as+ysBRaKCXjBBufcZvfV|lq0y?t+sc#YRqF@DRgi5sXJ1DoG zf04=ns$BV71wbtr&}cpA`XA#nFBpGHfe-Eibv8V^qoEi1K8^?F`{p;0fe6ot*TNp% z-jJ$X0MtAafpa-p4wOCy_3ok%Z(w}=4KmjOJ;fzQWr9cJ8_?vjM>p#QacFXI%>Yk# z-1O-7jCkz=Hwa`de~Ue6{|u5-QY{#KI!hgnxoR+YbcZG&EAe=70HP!Uq$J^(D`@N?Q~_BD z$BVhkAPWe6GeAYO`*%=QngibV=h1is6wHos@v)$2xC0tzgUwYdgocBT)X7oV>CyNG z+=J+5bryp~hB<7x*H4e$Q1KU&KK}nd!NKSoh~v>*t1sZe?;I))N`Wf>Aa{y^uB`Rw z4ZRK$O983&=oMuE=NI4WFN8zD={6E1nGM=&+0EwJ?ZM&Mec`pBrK3zSn@6{&z-u<} zkRfM7r6fbi%LdSd4y(133}_eI1yAb>{4MW6n_c+@oIvMVF?Ty@bUJf5Y-4;G4@w)o zqPsyUy4Uymi)F!J%VI#5{bOQa@a=XJAj7sfNVYlifUOfb=B&v0@;$g{5G{t;X9lq^ z5M*B;#6ATw>~n|Ncg$IV@g-=9hDWdHr$wNG!}t1&i$P#d$$0dJ?gv?9DFH8Um_hm7 znd5boN3Wb|x9Dmbq&;|FPaSGq-FI1O2`~ULQ-~azXmseVW&(#4nGoYzk`~~Y0P?OHr z9F!_Ieu0!Hpo9iJX~zO|0s<&ydi08VeFJB`?=N10?(6gD_5J>0wlt&}cO2rv?=Q~5 zr5d18S71_`;ZmtksfRGB8E`2tY0yA3xJ>~nzh1180u_Cwf*!rRufHlVywLg%-p=_t z8eVo}cy!-ruvRExZLsDnW%c-f`1QvIYu<7({(a0l8BG`%_!l26=Je?0z4KLp;q`vU z4UC|2*}?;K-%aW3{~p$dOF^>FK(Y%zgKA$3NQnrlY#`&i;DIua?w`iDLB$@pbu7{S zq4hwWx<|KvME7N%Zbrxd0SX@7Cp>yZCwj^;{1;t+22{$GNd7-;eXr(b^NIhUCbt1- zgavGR{9%YruvreTAA#+HS@U9>Bm;vnXxIznuw0PCazM(#iZgt=4>PgPc-~8s8MbBWmzun`TrpQwnM!#vwNdoICcs4 z%0x8$GN^sxYki`GrTg$}eve+>cu*K0`}+Ss+{vI}L&*3K$bA7G-K>WNq2-SYXtm8R zkM5h`V`)LbssIXB?ziBgRdn|UP;vpaCU^RS^93JBw)gvg(3D2NYX^^BQH2?xoC8ua z4Wb0(LmwTsgV6OK zq$>iVYpXw!UH@NBhUhx{5o*^nU$6`1K?nALbSXh}^&{&#|2n~=SJc2s9yF-O|6(&l zixfz?^q>F#Kl2N^ZujZsy{roIb?EljIv%~ESuhJ)A*#(ls^9*GsNU_<%ez+vta`WO z4$#66m(Cg$1DDPc6%7ypPJVMrLE|5wquG$kIsO;2^TAE3OA(OB5c&>|jMhrhT<29#Guj}y_lK!BkhOa&-MOD5BrKmaJ z%_JU;M?kwgr&@ZrJm^aVe6YmG_(s3F(*26DAJYY`tbnYBVTBK`tRt7?E2T=as@ zb~Qc#YQyyUs1&@=fG~XQSAf%s&O31OdhwziVo^52gs%l~i$H}0+dBn@*HaPF*TB*! z7MuX}Y71U?fGq%b5+pz#Um}30GZnyPGT;T72Iq-DZs$c{o%EXN3W<5%>0`kAU~BDygudA>ly;82opelH-p%q$oN{! zr`Od0E-nWVS77w$hV&Bno7RJhA#jV0<3;hTXa8T$`}hBU^S}T6EmuMJp>+Lq?Rx6i zeYN|Pi$xBP0)NXbkZ8;QQa+DfmXj_PIjw=NU4KiM9k(;OwmdydKbX0<8tXV0%?No;WT-1_RVupG3nD?16s8n$^dFf7eQOeFJ9cA0j@n-93W-t zl@H*Q-n#x5sKiYH?ZtEf?fZ~$vB;L>Z#@W3tHGdEY6dT2&VqA5s0AoV>=poBv-<&5 zN@#d?hiiCRhZ~e|d4QIix@$nU3~PAy`YXKH>GAx(WAmT?B{D9ZDJlV=shkK<(HQ`W z70}3g#Ragrz7{W@=Zhi|@s778=KgSeosz862FLvalzRSTEW=LdBS&Nu`k z%|kZ6fs7-t>aj!XP{`hDpH9eO87`1rIJZDGsspG-1#Nxa37W8e5%U1ldIL>IwH_z| zx82t1fR0H00J>QdGK}t`lHqFn1hn_H0=(NG06L3l0Gi57040?I(21K74K*qX4E(KA zLFHce6zDMn=U=RQ2T3KhjG#G^d!Plb0Up}-Jr4e60$(5D(|s5;aoBzS#f+=}|98#< zjdr!(F3IdZ4XQjDJib5l>Hgq({OJGx|Nr~)JA4IAF9huaH9KyArkePDyN^L8MHYXS zVtCDDeA}aQ9%!u0)%bvmWgEz}GDVN>K9G=8H%q%yCrhK_{{t@8V5y>~uUR~s&w@K9 z89v&-JrDk8cIn&)8i{jl{a=#n*nNHnXbK1HiXXoG4u3(3?($yHrLG^K)D&ey!-LolGO0|>qq`3ziHt&TTssb`H;{iDDh;Fd~mHIv4HJ~qqok68Ie@ipSu6vtlzx~ORQSbr?xbL<2iWyAu`#IF@W*;oS<^Sz+K#*i1F7zGX8gA3m75|s#0 zCw8Mpuc)dYlJiQOK+Y=>06XXW3)j#8|GyLlWvyP(yH-f*d?4xqeR_G1TFEhh=7vEN z4d-7R1}#JeImy@hPl+Jt=H=$&96p^jDg`f3Lyrs805$%4eN-}DSh;{AIz^=doXTIW z0wwKU(TK;O3=0jf$BrNe@wfItH_&{>q=U+&F{QnJw7yU**?q{@QsiK%i?8+95*f!%KF{W3 zkca@CBnn=a?C;U-%<@xw4Uh{(vLoxsjF+etsg0`)L zx)Pu|jK3)kbUFa2Z2^rp;YrW_zw`tN_KMDb2yqI?<`+Vcxs4w1JkN^*oZ#XXy5|(U zb|uuKH=_eODh!&!;Mc6U0iL@6op%YE#Ryp80=lmXc01Jy(0X*xNtd9@9bEV|cSL|g zhqaLrT3EXtfUG0s5C8U=U$8_)19ZkPXy(F4MaPvt{1S*6qGABLhZV$(QL%944}St; zrl{C}u15edb3pffhJz5db!ptBhNdGv~2e4xPaLgFPP7n_2T zW^ZT%D8M7`K+1yy4?w};+wg+j9vmwQpqeiNqyluL-6wtlP@Bd@MFZ5RaZxdNo#xRi z+QI~GdN;hdY=_X30@7mzIU^aO#{#0q;k6N{Pb>@7GasTy4rEUONDmvb9?+4tpoJ_R zy`t+Tg0i@8!;4&q4q1@mt8f1Q=hyfFn)~7P=;h@Cd5`l6$Sd8UGeD6KYrr(TkedK* zz?{DinNbja0S<)L-~YffMFJrz2B5(5QPF|UIl1r)4&w5N zi{NHP)S(wqZ=@JN=g;s*o#2nUn8vR!dhd=bLm8-@zV@C128=ixR_ux@VmCyW< z$3a{$aUR6_4kE6Di2I-UBSAdD)CN!v$(;ZiYgqtdy0(Bw-zgxnbP0$I?EsOnGd}YR zmaYIXYkR;Jfbx**oX`9MJ}Lp9`2~H~yaqYv+Fb>P7fT<4(w%DqzaTTehVKM^L2m(m z4c7(yg3b#38onF&1-%VGYmK{o4}jW%(f1&u%AiROPw-Vs)u3x5ipjiw0DKNFXniDT z^^5{&P*MT3(D;@|rxj>}c_j;cz<3oXKm2^~|374)zS|En36|l}eS&`*hl+BWQ&cP%Kv~klaRcLv@c7sN!69M+N?3aw8Z1CVuNGjf2VQ^l zX#USw!rEY=Q|bs>QP=Ci=+XS2sb(%%ivu|PTt4#)GJob5^kxB#0DFML2DG#iGPc^w ztNB2I;bjo0Z0zNA1+m>gY?vRB_A4qhD=~nU4JNUG_Tw}saWK5-WCr^e6gNg7t&72} z7wFO*kXMcWIEbf0hiUn180lCgxl`6pv34`_|UYf$%%1vC+R8tgYv za4>c;A;R&{>yORVr>4;Tr2gm2IQMw-re^V7+$k`^zz=iufXsk z5j@TY+DZ?a&;*4>H>hj@uQrB^H-pxVg7+VR2A%zW8#8zqAMxmP{Q#~qK6>=payiQ} zyacz_dPBi?98A0hD*Jjx1#f|i@e3~;EWt%GFSyNg?uF^g|Np_0wQCH)rRjwi@?Zs} z!5+P$D~zCG+z>H)k6zIwE>N-W79fL4wZRAbBaJIwcyY7~)CvXdw|%ki5u{Mf{r~^} zYcWivv${a*G0%ghAV4j$b1w|R8#R7_TGNru77V2Z9=*J^Hx(FO=)90(um!E4tC#I$ z_ej3s(d*9w+O*Xx8V8c@e=fyv%*7g%2;4F}Ix9H9%Yi`c-&>F_7idBlJh}~8g(G+q z8Xg9}Kuzgh-wQ7ufwuXA*8xkw^HG6EH|w*X&~SDEjgtKG=>7=G2MRCDu0n!#k~1ho zKqK}~%wPTowS3RD94PSv?MvJI0@MwScks}Tx9~Xln;EoD#R6Ol!4}ObyqMnk?0>KG zf6!Pwc&Up0El}AIqf!7V7(jQhJ&r&8;tgoj2()4zX^IZ1v3Sv=o6{mvvgDOTlw@h1 zwUa_orl<9Vk`$kACk>BocMFehe+Lik6QI>!ttU(PeJmMDH2)t49rI*;v*;r>cm3~p z_TTux%M?&b#WJn%pyS#9?!zx#LDIdVv%tv<)ct(`TBiybBAE!K4m4){DZl~9+}HnVuH+NDp7@VL386rK>-Gyyx_Yj#Q=&~@QnRSk6zKc z*FbR#ijZKKV-#M1hQ`mFIRjb0l;F|L%8zhQgh%(y7uk0~adiQlrhHT^Ufh2KN*JJ7 zbdX89pv_RdqD;(23?R=byfAwz1={`rPA?pwy^spvJ~(K`r1_15NB6Itpe121I4?>u zxElWlrDt%5dap3(WG3)r$bHZ-cm=raug&iX-^c-8j`z|7w0Yx`$H8~@9?YM*zjYR~ z>;+A7bRYHj{>-O0^|L3x!x7NrO6Yn}oBROCd}+|CHc3#F`gB(OaOt%0U_R>6{Eo5o z18C*zaUbw;HQ^i{-TW^Ww}5h}zk-LhzXXzfhdd6xu=ilTP~y{F%;EvI3ue#TbtKp$ z;n5wg;L+_b@xlshk-LS5wz~mnb1HvR9|Hr!@n+C;DiZ?(1BN}V>z;!H3+kC(4-TKs z${#MBmLAM!VV(hP1MYM#aP2jre4FgaubArXEm&Mbg zJGkI8zW~b#evyNpocIMST91b9i*;2Y6`b zdw3lD%jCEZwD|(O4D%^CB$^L!c=9`eL;m(!h)cCRIyF3c3phM_Srsxsr!9aE?CRw` zA^76IPxnzr(6I^UUU*%X0G< z^XPW>=;rBg?Bs)ud4R3%KJg-BE$G5_Hx9?{>#mk|WkTJjJV8T)IvxLyf<`mNir)P{ zW?jrtw6@zlp_94WJ*Bf5JPgo%*rzuJG#CfE=qTF*G=B{`!9ONG4zkt>Wlq--G|BAI zoEX61(dnq+(G9tr)}!0fqr05rwY*Qa8>GK|`o+m^P%1hH-d*a^ZT8}9%d`Itb&?Dv zw>>)RIY4_zJUZ>89+lsy}s{X>^=_i zPUw5Ej$5~%{qMTr(H+VTu9bMe>+pTwzhG*9_P^zJ2|K8F!tmP3qq$a|p@bE*Ucv-4 zFs1L)nfe@bjvvD@7ZnZgJ`Biy5zuZ7(A`j=F@x^&FZyL6+eM6SgD-|cY9;W$nBN51 zECQJ?^t=qIra=>h9*svpK6Q+9jDgM<_OfzbS70~{9_Iv=u#Im(w>o%qvwD4k1_k88 z2hZ-GpwmM@q5RRKc?o#f5x#zE3wTWHn2SmQgGa9@$1c#u3eXJVs$<}t6`(_poA-d# zfc92^xzK$h(%@C*pu>{>gEm+E0F6~gfJPJ`BkD-g?FBDRG=i2!L9GTI)D2Ptv9$F+ ze~S_5Hc0T1pe`yJ9*~A6bP2nLM{fWlcw7!N6l&lLIz|k(E8s#gw@)vRpbuy~?6p%F z_*i=I)&T1ZDEk6FJp;9;d{hixOL#)}1$cI!e9`>^BzywoZUa!gso|r2(xaQ*^Z!Zc zF}k2VkC0XL(7SpyJhV?7bK&^U02)Hk0GF`!pv4W%DJlUBu14P+cL;%!Zm%cw!`c$8C&0psfu)+Ab;@FLEoG7+$l!*k{VX;M#Qz)PQmTt)&IU z^NYQl3=9)|dfg&G13n-TkPIjxytv-N$S}dB%Pj>Y0}=rZxN7YN-EP*SvV)O<;l)kR za9=muXZ}dms5`Qt9^+^Js1qLD=l%z1fJUf1K<;+{?W!{dRga>ejdZaM@WSBS3xgG) z!r(B6r}e$kTX2gnwK0O$NB4k_nSSwr2Q&f?8r=u2{Z;_AmI7eA=Wf&^j_Pv&MQ8v6 zID|neWk4#ytHd`UsX|0MWZ5xjPXlPg_5f(~#rVt%y9?kETTluIjo8M=feIAS1!kb} z5vYTz--FsFy-;2&sNw3-%^KSdT2BiqYe4N+*q&3+IV<}>`O>3Tbn+Di1{cUpG%0(Y z|8G6u(JQ+AiUNa2_i6sA2V9L0bht;p@Pf&#g{$VDdZ5ES>V*MJW;3cx^b0YV%uZC9 zm=}L`L+#m)DiizS5lm()s!ZIA6EK3V6DKMG+sHP>psDjB{MKvwy zMFLpHrTZAzf5{%bqOTxIUbul}JbFbLucCxb$_t&{(2~0K0I0UG0BcPJt&f7PF$J|P zH@}4zOQ0P}-8WyvgXS{35pBz6@Hx}4w&g|8J#f9E%YGO_+m^R(LE4t!I;enOvqS}C zXdJ@O08j(EIYq?*ybj(2T++L!fc9;Q&bS0={2IKtbP$|KKs&v=xnJn)WMlv>N#Od- zFJQWTi!8%y_2v{61qPp9Ue|C_2A^J5zHn0p$mGccP@k#wK*^QQ`~n3WphWBet{z~W z7K0a$YM%Y)*Ej}B=>ebtjjpp&44@U%pwp!aKuh4ycr?G!fVdEHA+G~ub;^rpH>DW5 z!6gZ3hx8e+I?$b*P*tGu1QnRtT{oo|!2N1aoebJf-TVer6oHmof;K~b0u5?8ID+S7 zUi96RV)z7FtA?Z&lpP%yV9KEiQ$gJYgbP58aB%w_sU6|b?Fc#s$)h_{!c+MGXv44v z^8t_Un4=7!YXVg~x^s?lyyo_>z6&}qRT|Wm>Gc+P(Rbz9|CR$KFFd*rgGL07gGwIE zL$Gk$cMD?QLGXku^8wJgL)|q;IXtX?m2!D>3WFO_ueCsygGc`VmY8{TgPK|40-!=o z0Al-dP*v5*4Bn#+IXV%%lM%em4iqv9@rOM+tzU0C<7#};bBC(3Qp=M$pH71=o0N0p z-^Rk}xob11tN=}Z7$5Nbf6$kI{UIOgQ$>$FyAK?OoGZxT*_jPJTd*2>W|U|52hd?j z-8VgUOj7X#Ar=oyM*;p8QBaxI>&W5R>HNa8Ir#&_PS9P5FQylPT8=M3^^t~0Z-szI zbGiV7M{~La11K=N&%ZF*0#e|o;L+(1y6n}XxgNB~(W9H+qdQ#Sg#)P5+5N$zJ6OP@ z`4A(2_<;)c&mR0*hh9r~bf5CL_!4xL>jOp)?h_!p_o;FPa}RdT<{EsXOtRKjP$P{(540R85eChvy>|rd!ngopPS65PRi6W$ zV$&M}I&9|j3tjNR#%Dn_odVeHr(axie)Zq8lMU3b>P9_jrn^QZ0(9IA=s2HVUcINX z3@`c)NI}jPLpqw!qx&cLs7BCna~{o!0?y9)|(*U*v+HT{F8~l71TEb9gpf^9V`G|0^rf?%)#-R$EO!GD{}h9 z4h>M*d;Wz08z>$S28Ey+RBB}DCs1nL?I!X6fTN|GM5zJ7P#@452autfFhi3yp8tO> z-FmV_v-u}uiBR)TmJ;6PpRD}g+iF`+mIyg^v#9((vGVu-|Nl#pUmE}a|9_tYsOx&} zh0a0He7P&gHzoYwS;gz1I4NXgV3^?99k1Zo>8=3UoDNP$$3Y9KK)u1!FZRrb_~XJv z5PhS$LV&T<5Hx#X&I;Cf95#4md;&5Sl;GJNZQ zZbruqjNlQ;6EBPzK(6lwolfDb0P1Xrfouhh>FxsQ1958Rf%-X+K~h*^1-k*%Ujp?H zQ2R@&&tOSa-xbtD1YN)D(dl~~+^Q9HJr7#E2wvz|0=ih#wdH>)xS41)0TfuE*kRyr zodPPzy3f6s3R+y&4O(o#-!hL8v|mQxC8&?x{DYOhH4v<*n!~4?+oL)4JE#}-A6z%P zK4SpT5p%AgAY-GbXB{(1w8&A zdhw+g)Tc{U0G&Oc0gg~-0S55EUF*pbu3g|N?E***()h&7^=ja}0dB)7cyvpG3Ib73 zEwYb+fdQJ7PrukW8`S+c0y=>PIyMO!bMWZ)lmMOb2kT@M7lX!PK{E~>oz4;-oz4m# zoz5DdMrZU(cT{_BdNdzYc+m!~A-y?3y%5l$AQCW>G(pY;566JdQfN+=fR0(f+!+Zj zvA_-$MRq6$l0!YPp0fwuURB8f8XxbL2lcqJ4dCN1pv7kJ@t3``Kv691VSOJo{Ng9! z(H*7$b6+Q@Wzd`^!Qj#B$KlbO20E1_4Ya=qJT?M976dUd@)EQ+78IA=jshOtffC@O zUb`7RtOGboS&R?7=Jx1y;s6&v;8I8ca^7$lXfy^ixX<|rS~j?-B!F97pzac=5z$-) zX>o9QbO#B%IQI>7koW;`5q18>iLd|vdsw@3fUe+mFaTv3QBX@5Jbd492s|2H0P41Z z$C5?mE`ZWFXb`#Q40xo0wLk>4X6^!LAlc!?;?v-ie+^V~%m?-4py>cKW}f{J?mEbr zxuXKeHerx$;IVHZh;0GjF5*>iSq-u%`XSg%aA#cMg(t{V@V-~@J%in>A~0hi7lL_o z-|Pf8XFNGT3qU|84jlZ!?9zS6$NE6AtXDVapwS-i-5a2${(MlS*LVbE6xh~ssI3|= zQnkN>w%LP?I`LxmR?s~qCqO-S0Z>nU_wIL~7RF^z9~&&N2{b(b8OH;~hJptu$U&K~ z`;ZpSHZZz(8be{*uPY7sfxQ|N23%MjvpC8sKvv~??ScwY0hIPtZ&w@K; z;Czw*>VLIf0^LM$>V?o!Q27aNAU6O1|NjiwRM8o5+oqiYM+P{$6<$1f0ycN&E10=& z&w$MZ^_M`+aJCnAAVXeE0g{S&mpmzDbjXsnazbxCu* z!her$&Qh5MOP>->k6u>66ABEkpLl@oc>aIz#q>}A|Gy4wu+##}#e(Ecbh~qCAMA8d zF#v5MVyy&;Z2@(}EEqtmi3~jc9|SjEUzmG?rd9npJS=@wEI{-6thHcUK__&9+s%;3 z1cx`+|My7nKd8z?_WwN;|Ns5}A2JUFGM63M+-4<)=1Kvk5+RRXRyI%!b~5pYA9&fq zz`)R4sqnwl6tuCai$TX_#b2Sq51Lu|JNZe{62#2 z$c#Gh+7l!P^1KFUbXr@|qnq=EV)nEDJ3vQ>fdWIp!}ErcLNcxBd2a3E$HzzE8d^`$CAHf_R{|~+>|M36+Ym0724v_B+v|;bch_N`vge_i1-S>L%csf??Lsa^BrV=Ui}U8CuqD3vTniyoEcC& z`|k+EvxOL*O*w|_*{=8h|G)O@cI41z1RV$m9@_nt zhqJ%HrPe{8?o-AmJvzA@n=1sEO87i_S(zbTH$Lz>-?6zu;lF3MK&f1Vl_xk6=p9vH z@a$xK{SdUQ!LvJn<0Z$t|NmXOgd7`w>6S=4b{%qT_@!Mc{#wAsvRt&6r;~r%fnLuS zy*wTs{||LB*%;J5_p}b+0OzBoBMJo8nfVW=;k8@@rOYcc)Z}a1vcP1gg5Kwf6%=bkg-;jv(t^=dUW6P?9^zk z5@0Hk^XO&We+U#z3?7}C0v^X5!ADm)bZEW=)qc%Y3ja&vJ-Uq=?1I6;kPHfjOCH@p zpsO$#U+j4E|G!7_51(E?R*%kX@C{+m!>=4Vw85PSQP5aKXSIN5_r({Jj!7{%bm&;W zPIKux3R-qw7oFAk4xP|@z8{R6ZP2ecQG)evNpOoN3|sX#;Jf2C3`kLKh5 ze0n_?Ur+VuWwky6adY=+u)Ro@_KH5ABg^oj41DSdxH*O~z62RJfUKcF-m47`(Qel1 zH=uFpY7X8w54yU=quY%G((GUYwQpEFI{i4n?zZ+4;BR>j?pASvvLAoz9dM1u=+Wu= z9^7aL-5&4L>-!os>jY|^fu^{Yh%qp@beFz%ZT-gIQqRc1urbrZ_c?#-9{7E1uHQYH zQ`s3nM@4CP^tyfrjYKJcj)d=Zeec+P?Zqk)1_sCOe;%O8PHi^O%&?F3hca&HZ0?5! z&?J8Bch}Z$B}U!MovyDvy2Cg;tiuFKI6Ij=n?-@%k zd348q_W+%d1?n_{=iRiy2M|t7fA;_770{`n+&@6;5c~u@wD~+hXCqr5ER*xt30m;} z|Nnn`59@>c?ck19H+X$dD%dIKUz`LrNxN@=eFZ--fd825chFqd5kb%j72oeK_OAvv ze2#nchJFX-iqD|N6zGVxP<{_kwt)5tzrSEg2laST*+IMaA*O)NChe{lc&!IIFtYhD z$BW|MpnaeCeBQh3`F~I&|ExzhWHWWjcF=If9Pp$H^nM`tX6hHGS3diH#-mrX{}8B| z=KKA{v}>>&=llIdD|mZrujtRiU|I1O6$n}J7wO+X*%4A_fy;6%=}!I{sp*afJhuc* zci^3+-T2d;jtEk^Tg3oRcMpk9cSb^>baxFc-En}@QFR?8(HZ{-B|GbG=GFuJ9ZMM* z81N@Qj-Ai{|3B{0e3-@2`d`sWX!G*wojCd~-&*{eT1y3vzndJ3+jX#`7}H-7y8-+G|J2!F`D z+YU*dCtv>m_y7M3@8yv6#|}w<;xELmJo`TZJYXRHf(?3-%BTI{&&x=O^TlV# zO0b%PU|I1Ow-K`9FHS*a>tM2bL9$ST*M5ezL9mZqWnPA*T6H2zOVCx|9^KGXD+4Y% zL8Pj@8;sJv6~>Gi$s)9ZR2ys^Re{);j}aH_oxE-jBSGB9+-Uhj3Dv*Is*>wiST zeGVDX>ICft>veq&E--z&L1Sn49lNh}oqkcy&%n^|JEhduqdWFF*sLZ7P-6b~iC=&@ zjX&xDXu<7mctOecnO~5}qt}VWqtgvC#Csc*$|JXd#zPKsfJ@7xuk9LsrlUueeQ)ML_egoy$sR_E^WbQUv!6l_kfhP%1O`uzq}19ZRdiM z8Qvs)4Uwe3S3#0=^aoHG4NB7A;mZq3{~vRG4k~TKc;pyBqkJy{m%)?tb5Lp9`W~bU zl%yfUVbId{`HLxu;3WMWRN6vJft9wVuq6HU(|_>paDo9Su@#c4L8Ei(puXVyjgSV- z1&}wOD=VO*b1%Y|K+?SQUU0&F{z3_K6CmhZnqJ@MF9e~-p~OOD*(2JyW=yzVCWvu>Tz&}I0DZQQlI$+ zK{$xzGryo0$7g;)Cmv8!LIB*9*a6BMKc0azhXOcr^uI24Z1|T}nhV+==K*m9$7g;4 zXO_?W0^FbZ1%m&4<`;-GK6wmHB4#zGx0j)7Y$GzX!cOTqxrDHi#(_ZBHH-*1zdN0 z=C21g`;g+w=P4u~&i3f`{Q=5{>FXf*5VVX1dKxZdc?WnVr*juL2i|zG;4Hjix$&YO zdTvPdPN-}XvTPw#RurOl$BPt%?2Z?~P}%tqy*pmGA)dP+@Lkld!(A^Iix0f%fZ0lc<~)d`<)p%AM-(Kswj`{*!SR?3Uo)w zCw>8MQ2qtwTX=nSACyra!}BO8le^yk1gg23-Jmm*_dz+6?aG(`ph5tgNw&TY1XWu; zP~%J7Kl2NCgK{Nk!-FfaMsB_gHWE@3?gg0zuE{vTAsYH0T9ZXaKl}gkE2t*B{2G*r zU|EkDHS5WPvt9;RFF5NJ@`4sooqsX$B}f-2>-}edXFYb%vO$kt(H>SgP)+v!Mf-es zP4*s?^>)92Wj(ZYgQudvS?@n6>w!%{%6c57#o%n`>e0>pLiG(K+ua9cJ5b2I5Qd5n z5!y2@eF1kYw!vngxK~5+7M42BqgQn5c5v?Df8hcdi3OdY#{a_j6{OK7zYQ$={)HMs z_WcV{sH`GPF9$-F|HXIcNg>VC$rbE5UGxLbSY z9lI}q>dFpQ1_n??2}y8ZyH>4QrRDJ*vUDA`l-$Gm7p(eBJM;oveU=u0s?IZzs`I%= z^I;C$RVS#jJP*o)mqD$^>+p;y`k7x)2vkpkDofDO2yPra;Ck{rC^sf(gKqXbECJ4q zi(aRI>&dv*+a;hJ53&)I8ByvfPUX1VF<~+%E!NKr;1tP^Nz21m#@@)ukTI zhb3MZKt&MoDE5h8!1X++K<#$D4nE@oB_gM5z5r+RMIPP0;Kr=da!5vh07^ZLM?e_~ zsS>@j37nPLUqpkJ^g^1k>@U1PJ7+w4Ma>|x&tKRgWS_s#fy!DyWZ7THBV^fM@Ihsx zV6u$JvLBxQ|3Be{&`eN92d_WCHTJOhC@iPjLvlK3fEYgJg{>BS11_qeZQ=VM-(rqE zd`BMh+Q1C1ML}ay{4Fh@F|Qo(nAbr>7w*4Db1FZ){rewWaUzX*Z37*`1?phA33!0V zyqJ;4yktOULUzZ32Oms92PK0C;Glgm&~Y80wko6}_a2l7d04@1RY>)9-lIGAKe+k= zpK$}~(?dF9vqGNze+lYfy$}JXXh`lj_!DdO1wID{GVIj{UL|n;#id8Ee87+Bh>0I_ z{SRt6p8W?};_dtY#fcg4eDEJsef@a|(go^>i6gfh|G(f40p|mLP)7`63ale$0PBdA zJO>@t1{!?C?RNndNZaqUN4Kv%sO^`%1kb3-rD>2(*tGTF)cgO%+{5t7oto)0-$DmFaDD828+Hdglv~pBlBF=16Jq$~I?7rPEJ-dInbboT_`smRe zTkhF?(X*T5h5t3sp)Ef=n%P-AL09eYzpw?1JOGIppLA&Wmr^3+(C{y<#K@uHUuKDp zL&LwEQr4ZIm1Hjb>pwbnUxO}OX9i_`Pwf*P))$L;y?a>dYA1WVn0K3>Ujp&UiWa&S!rCLH88&IFXq0H1Rcs=2VM^8+V0Ys z+7F7sZfDRqbEoTkk51p|j=kZ`9=*QpFD$M~GB{cvFE|RSU_%Nz_bo;V{;%@yS zNRb0NUl-{lGo&+H)~*Fd&GQ#eKr3#+13S-OTzLqIw*r{taU{v@4?)oeKDWiA`AvXF zH*4cTXdHnL&G`tL;O*W69w-GD6^B5h`Wn$Z4P@0UjXh!9^m7X9jivWE}^1rX18O!FPUvM>p%e z18^rscyz<>u}}a_=7E+TgUmGo_vAoZ8@gju6g;#KgNDvMnturJw;F;=wDT|QW1s!+ zX6|GM?Hl)I0qw5#2ay8793XZ$h!lwC0kPwGKJyC{3w-7mEEni@7U^^s`OGg+E%BLO zuwDYB+gS#r%3TK3%~kl!FBq@znO`7TZn#CavrVTvXivYOKiE2ug9O9DW`a86^BO&0KMu2GQ?@a#TQ#Nye_ zqvF{eq9X8O(q&Mq!_KGsgRgR_fiLqnZ%du;rF`CWf@*9p8{Is0g5XH(78(j;0xNqKnEFvq6u^rc_D{~wxP$tf6Pd?qgh`l zPx0wB0R=GlB83E3P=W$)KMDX<+@M7-L*t$op>`O%LT zmcGyadvscR^s;;hdDF9(#SU~)4rpyUXeqJ+Xqn#O7wi*2O&C~OLfls-=+XVtqZ`z| z2Cd+g0xe;)2QQE7HilN5&=qo*d_WavvH}BmF`P&DX^-R1@Rf2ewt!^2?|HO-D?RAZ z%@0)rTCmd%+SLb|;eR>7=h=VIaWNj9juN14L!F>~hzC771${alIb1qDK?}Fw`@fps zfR-Tp?m-ktj-Z`iAAGt&Ykj)6sDSpDdUSJv8|0v?5n;-aFK)nv5OFq30jGopf zN?aQ(l}cG#F7Zz})N-j*y}?qUT*8BYAEW0^Ml%LbdC%YpIw}{s#Hi%}e=F$n1dsm* zJ*`ia9&WkB-wHAhvPx57Drl7^^z1A}-)=U~{|7*aaDwJ1UAlWzc7R*T;-FPtqM)<| zS{VRNm7ulGnjWBOLuU>S&t^3S&t`S-79wz&VK@gobDscd7e|>P%OMTnD$LPTEQYFh zzY=DKD4L2!X6QZG@VQ<1nsE3j`8#((U-1Zk|TKck!$xkSEDDcMxaLM0Z_et zg2APW-4%2O=RVLSKf6KOfgKxu@RkdJ5AAgUg*>a{CdSvyu11%PPx5a&s#LBVZhZ29QCx~nG#G|wJgiA*X z=uFfY6^+gk6$RJsb3VPUCp>yV7nhuVvFz{v|E@;=UrK_U!N2cB^GhZEmVb;449zdO z_*>S38GQULrCjltY zoq{9e21?lRus*%+jG$IQ_lXyEfBye}%>-I@6U+fxf$!1jdZC0DmNH-d0$-8j3SQ@? z|MS`ZmoGt=aDjFm;c|g5+y%@?E|}+Pd=h;A1=yRo^a}p@|9=zXOHlvPwdFs5%VVfz zjK^J6G(h2mB_i+s{{R1V7--3{BFJn;TxM_m4GWp`-*z3sb!tZjzh54Mv|Kl&sKqres$9S7(Kx%l_1or%3i)VUTohE$)TV%1--sEUMPcCu=I*vhbfqbrT~;dKx;$8Kr0(TizyttKY+_S zk6uwOuqM!nYzZJ;pull~uW$4K6#*G9+RPE_8x3B>>;bPsG&}@ZhiLF3bqT17Is>km zKsRz2bh)TF_;z1(>GA<>9lzk)eW(L`W%JD!H^4)@he2CeAbY()XY>1Xx~L#+0svhG z-Tf1`4*;^{e}NsSG6LPz1wMP03uIS-N3RF?PI&`R(H77p{Gtk!=zBpcb-MjIUMz3~ z)p`CLpgT7~t9cw=^dUsRH4haU(62s=7Of~Po*MlNmRtm0v z@w*dr5!j0#worHWdMJR7;0y5R764V-7ND!N13>Py=n{Sr2Fk5)cm8ldcjq&N2-KZd z9PqjmzQzj_E*u2n0CaQ^=+vC%BLHzPthx!y09|HK}19S=HiwqlRd~|brbb_M9o5Q2iLj#-~K+Eu7RNI4G zi=0R@5h74`g+tv%Ad!HVN(mSr0EJkmBWUHg0H{gg(R~nhN32J;5U6_w+L-0hoG8KY zqO}&<_yNa9GVBgb(1o#B&R1~a03DnTI;hB_`=?L0lYmEa5@sP%}## zdUYiS=;}%W_gR8kqOitPCp#$7gIZLFA?vVE&USE;fY=S%X9u!d!J|0|)Uu0I0Qu1e z)aGivT|$c8;5~2WUx=^KInap%)*jvcpaK=tw$%sSE}96DEm4APU~Q2BZ(#M6 zfo)(tKVOOgwAq#87&B-@`!&ZgX2#F_0uIo-lDl(MJV34l-S=Y<504`h_kaQl)Gj~g z*?qyY8+0q@i!8ma`MO-?}eL9N;JfO=6T{?_k z2O$OC15ljy)_}vd_1L!1f1)pBlN-0?2{hkYs(~^zH*crj@?mi7N)u*#q z;srC<)fgd$wBHgEZlLj50nj2C39$PWe7iq-f;v$@tp$s#Jew;77)pw}KY3){106Ey z!5qoq*;pa)pP7N7T+OlDL!gt}v$+DaEyS~%!3T6a!v*jib;5I{7`mB{xk!LcpK=%Q zVEzVfMI2}Ozz8aB**ZZ14sLz1J9e{mGQDO3ZL{_l*udz~8S;?>v3&vD8$#SL3|<2Z z$-h*0bNn1!ZU!Ba{vxOY+0A^N91u6VgQ~#~92=0fT;Omsa$ZvK1dTc#@aX<&Ey&*t zT1yWJ>RQr+dc|xEXM>JKI?nQe4HVR~+u_a@1kEgf&Y5KB_T}jGz~ce%Dpt^`Yv587 zR43sL^J<9WOGtP8>sc6%2MwSeXZZkX+P%2f26sG%XE&b*34spU{{&f!T%v+2eV0Sr zT|m0KjWOK~O4!XR9~fR}A{@=`*u~aCeBuVV+4@w8HaNgR1)2hQYUC!U^|4xnfx)Bs zum))L=zCDB!2nU8!2Jo*698Ui4<4o91Z}PWonr#3v|UsTK&Q)=>biDwfaW<2Tr53g zYPq4R9RyzUd30X@T_Fhah(|XANO8%v2GHG2g56Fsj+P8HoF1LR$DBDBUMImvWY|3{ z-8o89eY;P1bYBM*0N{JGrh%56br*1WG$(-0De_SP-w?^QO97N3cUnLD&oAJjVgTB> z*$Y04;XL@@Y=akGHK0}v^D$=*Mo?vx0ct&T$EbjgPzZ=W{9fR6Wo4$bvec=5;z z+~fh>!{}@QTCj7>8Ptw|`rUCCxS6@v>e>I-rXD-`9$SDAvxlWKM~NF~t33D!6b**Y z{PiU&2B2mfcu2#t8WbSx$J{{ya@?nP4*2{Y&+cde&+csSO>UqgCJMj1hz)*?q|K`%9nhPo4+=v4D;w zIQYWehxvm?wH_sgqooQ^~%geOEd+Vzhp)=Rmbbz)? zUVI6vNVN}wCU;mpyYIi|_UM%n^t8V3$?pU{=uW}Y`UZbHs2lIm%QM^K;6vsY6AeIZ z4e)TLfp;&@HlJRT6TZD^8lcnVH5|Kr85}$Lj8A%Y`f+%6`U!Y;yK;DTx^Z}Ry9#)A zx(Rr8`f_-7`U-e<`bl_p`YCvJyGnR=x=DC;yDE5gx+!>e`bv0q`YM3VU;+=@ftKiZ z^Z9hI0iW^YWBsa>)u;RUYgwOe(1{M7-B(|n;9y|z=-i_MQ|{S))~EZNZ}*WG>o`D1 z6m_5W1vPK4gXT9Ms4y~s!n65^188i{5i}?q7k&5zOZBt=XI^Zpg2Yvf3i{b1j-aB( z6SU_3lSlW;}pE zSU=)#%LGjTX`lD_{?Y?A!R>@6xbA}<+J}6sAMm$>#^1bpd6Yn1VGAGa>y5p=k`g0J;Q{`Rem3=E(o22OX9dZ5#= zz^9LZ${i2w^By~3`33Ge*n$kOBYIgnJ$hM=GJwW#nU8vOwt$n6M=#4Hk6s(7@Lxze z0v!tmNk2W{>AM%VSs{rEG-Bh~{D-lW-_!bjDVJ|I_ykLh*J|J-cGLqjLqnm5*Na0uyZ?J?{{yG&^DmBqUF*j28noV1!?Tyi4z!bK^GDEz z=ijBTJ$psuKs8zS=@<4t{{NoIS8E*9V|n zTB-%EEnFXfDvM$+h*AfE*Sw&%gX;_Aro&Be(*agh6v5jLE-=32{at&Y5{6ZbYBOFf~w*RFDzw2+alq0i0=(h@0SaFP~wYJV^9_1`T!IW zy`c|0xW{-7-E$zRwE0K^=qQF4PGzt%X)yVJB6k1VrvCfy(T&6Z zMmYQrIy(T5|4YICM{iFxzbWwOzUA5d!lO6f259g>ZxX0lDp5%Qw~nO2t)uRm7W0dBwnf1WgTf z=BOBeM%zIbMu7%p9bRODS8c-m>7(KSifDO{=7S2xmtL#~uhN7Ha)GOY7wLu|-@B*; zfTJI!Mfn4CLJ%YXKnH#nc!07dqV)u6I9Zo~f&ttghD;fQ_ew#|^?@XD$d0^Ul;#Fe zXv3+9$D>pHm^%l<%k|(egU(4adsw=0@V9IRiJ@hRr~OEY;u<1TOnC{KNrnej>yUamf}8;5G8Cw@Y~8hi}LjfP&KX0r+NhP)0iU znZMrk!HW$A@P;TT91}c1r?fXfX+?@-TnFEOA$C2A^VaQK*f>usgfd}?#n*C zjsiZ~7hR2SJ9ayK=w$ZqjA8oW-zmccnS(50`S9O?!?WArhj*t7(+|&X2JcQ5CXgZy z5Fy~%?H~Xin}I6h0QG}FN;y2cJp{ZveV7D1n-6Gs_IiBqus&5f8+=S8cnje=@KzSk zs66O25%4}?n7c9{?oxoe>p>?o$Xt+(FF?cx&u)hoAX{E|b~}6kF+TWqM!fLtjQ9YO zhPofs&Ay!xKYTkSe0v>0u6Y1*%~FJG6i{3PAB%*K3pj$#>1lrB0B#E1@&FCQoPdw6 zaCmkH2)u~g3|gl3!UxpBIS%S2D1aJXyElPEp*;;Ak4|n-C+#KZ7BA$($J_+?Ti8Gi zj$SuN2N1MM#R7VgmV_Fp0RV1zT6i=kfX*060G%;%-J{n-;KjD|XaBqX6&ySL4LrKT zNH}54kAxG(*dQm28GwA$`}O6256HSUy?dY(e%80w9Xx6cmOi!d|9^e~P-n?S1-xIS z8$1nj6{I!m`^*0xkQ@)K<`O^$*=B$$KG0>J;5Gqh842%!8L|v76iT3TJXqSLpp%h6 z@!(;7szl2Ja(1qyM|UsiF7p>$q0j&C0$of5IzRVs2xw^^AQ7FM^I%O+YmFJiov21r4MA1Xlrm@*$wsX4zn3}HvqCn>XN<+3Qge8J#W(SK5CjJ)iYX9zN4v%i> zm!P{4K^-S=jTc5{kfG%C&K%GY0ld>#!6V@Otgw;fji6D&)&nJOpi#E&Kn|bogRg}= zES(fUcP|AAyk_$OB?%!1i!8~K7mgMglBH~()(#5A%s$-*eXI|b@`2Cjx&S(f?3yvi zJGA<4Zvk^|H*hn}Tn0UbH&_ErF$ zrL_WVS~B{`kv|8h-NOYLIBEf@0na9Zhh(93EOeBs`zGlAy%!6>TQIr7Z6Z)ch<@p( z0jiNv+yTBZmgE_&a0#%Jxjnl1K`#EL4)QENeHLW|o#FS=Ukpq`)`Y^x8$CKJAZL6kcywn9fV|Wl$>D1J z4RpR2;zVU*&gcJkf$lp1)k*jKK#AfohlllD(D`2Z8Xn#83aIMe|9SNveC{Mj{W>)D z4j$d{7O3i**`NR4D&%d;M2Jsw4Ch4>>Hq)edmKpMW1eF zaF_oyI5q3Jf{sMvh9v)1urc#N1u3d3mycimgS-hk2k}KbSk-n=*}E4svgpyx2RabL z#iCfURL!T`8Ft3LvJR*_bJ_#6u3P$rrs}i*ASESt!RoKRkboEiD$>CsksKgt6cZk5 zBb)GC1Du0JKI@b24;2 zo(pIxD`<73XLIrm2G8Tp55U9rp!HiGy`o($3JjjT-X~tnO$XQ2pr%PT_lxgwjG%e+ z5@XnG@*@UtUHbTs3G}Gw)CS0`ENHsTf#VauAbYoiK&Ly$Ywl)shURn@hURq8q(}(p z03)Px@(o@rPy(eI@ZxCj3DO?LpxH0TkiQ3L$l@?)t&>Od8^rn7laRe~6V#x`a{l#! zMo{0;N5$a9r8IV(DgofdZNEG^r>KC+Rv*wJHqce1-A(}>mQEi0Ey7$33_C%U(F>hSDF&bJ53a^f zKs|PEmrezjjszADP{GZ>!0=(eXJ;Fz_vG8TOn`-f!L@T4sBh!jxl94V1Jx|Poy!a$ zJW$=_+qujEG=9qL+x-PJZvk4y?AhyY0Xjeqe7!T559s`2M-GnHygt1x;APG)7M%wb zPfJul8>W3am#AofJkT3106u7uiGkt8(+JS^r_LoR44@URdqMf$r*n-82Wb0e#}XCL zDh0>hSVj-aIbbt9_?;jOpWYr70gz$Md%%VY`0zVJMS6R{+B~iAmdko{&H~2R?X!TVD4(tdDu{JKezT1<&S#;1B{i z)6@Dcf4eKFtAXkjhiZgZUK%hmFzn_A)%Mg0r^i(Y!{Om{3RIW&iVC+Qg;U>Y{NWTP z3%aX?zXj6lfW$I-cp-%qH-FQ4(6D0jfv+Tl6*nj~LBk3o$|bOQz)EmIVh0} zN>VQt%0MC)l4#d}Rk?I50jD>|9iXXm(7~Y~3qclxwXCTG-HWjY9OvLQIkwOQ;MmCq zQVde$0ZXbL{LWLrhPgl$dG`9TyvVGSVsPwcbL&VkU;&v6YK^?``vB^B_WGz)ytr)( z?zXZf*MrXAYf&)(rT$)47bw>P!c~QG9U$DYR)}H`Fc)-Fu#GmT0PHUJ@afJE@U;HQ z-vT*4x<)0zr(4YtygCS!eIdqAfn=rbGcOK21+UPZ0~YY<-lOsZv_S`S-LEt#ae`Jq z`lv*}iqW)h;9}JL8>ATZw0Lo&0$lX-x6A^s)pig71%O1u`5|K!FCbD_$&l z1{#**@aas{08N2C0NDyUQp_Kkr9rm7SS|JJ|7%;A2YA1OJy7-);sGC(2#;=0ix)x= zUzCV~#%dybx(|Q`2r@vu?I-&|c^q_C%YFXVx8OT9AYlbAfp3?HgKP#B7m!U@KR|Or z7E++z+c6GMG_=-%_3VKb>@_M0;E{;>7I1+3cE14?pCJ98_yt(^M<{@n4?zmqPy7PB z+aLmvyMRH?Il2+lPyYa#4g|I6K|)EJK$Crt;eS`-+n^mUCZL6g`Ys)yy+r#I{Xlbw z3=JNgTU5Y$cHG|x9uKbvnF4BryY?nCzUFoW9aYBw+O`k?pU3HzcCm<-SU#J7BvOpa01d{=1y_<$duZv0rbPyeu*3Q4!lLd0Tvw*AdZ5N9O z$r3}4ZfB0yyeRiLgC#(N7obUVP`H4K5s)Ka7J-K0Bh!}I@8BS1s*%zqrM_kna2Eq|fw@cchWth)`Qt@S`jjAwTrs8$A9AK=)1 zyY)bcBUA`<=)BEA(6RK&9^L(5>)+Ww|Gx`V!GjXOLwm3_Al)D%neRAS&jXoSwEx91 zdzdw#s=oC=iLYmOAE>$qS>p(?#?+(xV)tR6ZkB_-tp`dZ9J{Z0cAt15!U#4LthO6G zvj8?1WK7XTkM2`1vO!J&HAz6Da&h*c-~e4#+3eu(160m{OU7Q&yWr+!54Zq$!2p^p z>%QUGeFanyg6fVJwQb;H3w%N|Sl~_$NT9bz16ZMUJyCoZx(y@e}Zr8{}Ksb?f0Gs|1x{^io9h2&8Byse=!Xt30f7D0qP1v zGCTOfbxAW&uOC$7c7saQJdirjX37dsKeqvNC%PWEpW7RvQUNK1%w<6h!qXnz(vX=_ zYq4klK?+N*gY`iK)j;OJrqv-nAl{t3K10^m{+0YpSDwb!w|hAV*56S%a`^#g^9y920b z15J&BXwa;AcLYagj7rE(P@Z}5A{Nw!{$YFolsv>8JJ}sO+*uqu+d(UEJv-Y$IqWsF z4`{ti3)m(P@FlS2=8m20pb7|N5vbA!SuOys^g$w^N+0Ab&t89)7bS(DN}t{7n2QAq zgJb7>kjao1#`nh_{0_%Fnh$Vz@H>ISfXxPSsiU4pr-Vmu1n5%7{og^8fsjib+b6&K z@6zp}5&~Y_2dZ8QQ^9d@+p}{%$f?FBJAG6_K!qRJ!=O#F(iYy5{H-fN$1n&KE2Qz~ zA4}sezQK{^!C!X(6e8eixI2KuLtDV(;4danzXPoI;6qlA&K~ggKF@A&ICO?EN_2mM zUJCgPkx~wVV$a7KR7QYHBv29n?F#hhbm8KFM)otb$d*MY_vxMkv8B_6TL9#&5B%W= zK6&tK9r(l_cO29PNchAb*#H`thdShwBflUEv+*UD?o*aiR6wpRD+OgJkXIbLFZy-Am z`ATO9C>KnDq;XKQ2G&ynrM4GW1i=X%UYE*wbi0G=(h7l6UJp>(b>IM3jBh= zHJ|w7u7Bc>ya2i_-Gg7N2i&mu#2C=AV7l1Sy zT)PjuT7pXt{x;AIiX&(<0kjwqIpNxU+Qo7fD7%ztICdZO=;d+n=xzcf^H2N&EGItk z#~l2`FUWEN94TEObwxKIdO$fFSr4du!lnnL4yFfGcp>Wn)tcD!fYcS;aAiK?Y7K5K z@Hc_326ybf>}oj=RA`m?cAtVpUN_GPuoq{790xM|gvY^$te)MCFi$YTJi!Pyuo0xL z=!PTn6-Vo7Aj66_f8vk12uknMKw3Pz!NKp@*#>essKmlnp&jK1^|!lSRM0Cl4}Fvh zZ7xV1xMG4;X#A~_KS5FN44(FbR%%INpwxw^)YAB2mD)?Spa1{A;M)XRC&jVp+5ZVI z%mm*2Kl8!>L}IR)0;jc3$dp zWF0)ZfAVXVs2J=7g)(Hq^2Ob7aQCGouUUa%Cur=ac>yRs7@8M=!k(dd0T1XTk>&-U zuxDsq07_I0%?o58f}mu<(7eC|#Ov%3VPRnC>`-B0U^wQ$!f?C+l$dVwd)gmw&|zU< zID6)d?ePXs8;yaX%EhDCKLgY}4uE%jAjjFj`#b?J?DswU@6lKd-U{N;?Ox!~UGbw_ zwcA;slii~kc1b9>r{d278t!1smSX5;2Uj?tTKofek{^^rAl!RHjC7mUb`124A3qj>#FCVzTu1inUIvh2U_z4S}Ae%#TwAI+h))#)BRHD zt!3!jy1;9kB*4?+j^Q5Q6;7bTB!e7b7`e7ZmG1g&iF?EdJ{ed|R;D5%W@ zZgHtJgGOOGK;a2Zi5}3T2uf5h$|RnF_Dlcw=ms4FQM&=OXBu>CnUx3p*0K$tCIZtQ z&}x%5P=@p94c+0{d_VxyOgE2WVDNx#FH!~VF5>rS2JbHNKT zjveP0^fq|0o! zG(QkPV=l#7ek)Ix9GQIx7TTGkbR5-v=6??KIwLW5dAkqSWyD zf5*L`asV{MEDpLq?u1LHrAtR8iznzt^jF~P-95XHgHHG8=62izxv>0*$M=Um-5)%A zT~yxt@H>0}B{(fZP+#H$$Q*uOSYM(#4Sq3sv4BT+JIIk9oe>2d-QZfmqZ?8u%=*H> z;L`oUr?d8g$8pyiAQ!rH)Pk;$-I58)B)$h;B>RH9Nc~_Fx+4o*EUn8@Jh~yr4n%u& z7jr*9_?<%!xPa7vM(0kaN-=b^xpdSRuz-$=Iu4pLWdIMBy*LyI z3ak?#x3ju*8i2y-JV*^_nY%}K=nYTnD@D-bln=ac<#_fV&HZgS-Om7X|6(6x_ZJp4 z+cB2qdvyC=0CmsPJi6mJJelu0?gfoJdRm_?SM5I7$qhO}0?i-ZEH9Wr{$O_LsF7d+ z9VC3*0d(CF)FVFwuzAD{v|eB0H5&wxhAC2w>OF_jg-A|xH` zA?u^%hMmnEpluJm7%|e#!@9^58W?_A!G__N zR-ArmPKWx14Z|9|QUdY|NC@H=(9k~AFOmK@~Wks-rmI;ZMv*pI!2Rpk31hD%?M1Xaf66%|7Kb*b+UGaySZTK*K^WF!SZ#ZGT$?-(@4J$6+h=^eKjf4mT!;5o? zAm4zLfP4cIg7_u?w9Fn-2<-L6>6-|QxN%^?h?|MaarwqO6&g45JkWi^hCQ80NMQGi zj06M23ns8%KuSP<0SQ6;l7R5bM<1Mi$-wYS2{VRY3UT_SKLzTSOYZ1?VaF9SGBVhG zqaee;@WLbk6f+eKmko>%D8<~f#I8FOc=fqZvFqCKm6Ng{wQo!%+YYD zj~F06f>cu71qID^9A)LO5-kssbHF8lz!mIxNK2tNbOWrlP;nR3iT&Ww4Q&j7DpM~0wpQ>^E~G-Ofy5TH zoYT<2?l~O|28I_~VnLn*DFJy7Bn0ssXxs_3>w70?2l$Hxo*>VGTa!YdaS~9ZF*tVn zf%kqhgEt+4;%)+Xf&{(AAk2UfcMjKa6&7mQ(BxR?0`WemD)i_Ed6K)V0#=acqj*q9 z2fGIibQl<3T#f;G5Tpd;L68u{gP_SZM2WHA1LQ&UCJ@L^9pL6ax}WU-KSgf^sayx& zn~bFuw+gff9u%c>ozeZogUe3_2H5>%V!*)g;(s*APaq{AKY@fGegch4f_A$@GTCc) zgr9ui%{s83K;0LN1eyI0!%u&%;que7cxXJGbVBzNFD^fsm|*vlg$V=03vIBUKuSP< z0trF<1RC~4_(>eMpFsUE3_nf(i{U2~H(ce063kCu9l?HrmKzlX&GvjK?{A@)1bLquX8Jcmrs@2T^Xgy1`?K4XNA!9R|?>>Q7>L>Bt|D zmwX?94!tb!1xPA3VOguN!8BV{3jh;It@BIVnB;SJ3A6s7#LhS3RrwPH-P#~KAjstV zKAjstLnuC-8$iP)E}a`dV;&x`fuII^pUw@S(I}tJ4WKy?pUw@S88x5I4WQ8hm(C3l zAhSC+WPlgwfVTejdIxxPx+-89HsSNlKwk=6-L1s=Vj4?gq9nf^}&kKMe8zXh6TKlhnm!1oEi z#<9=*g55SOpb@)EpZO!3K}?X;gU|et=RWgCmcDRNEPc`K3Z_2u3pRuN1k&Te0vZw$ z1Zx1#f(vf;0T}}xcxnc9w?RWq&7dKLZr2we9iXrQ4P7nsl4al*0S)~&gF=-*`~bhm zq0VMd(0<|=?!9=*JWV-y%(vwQUNcEu<#ywIG^z~Iuk85EJA17pq|Zw4_z>GFl#e30uSS;a!Y zfdcXvDC%ESwL`@J1%rC$y;|;PU@|#cRW>8Z4%pV7e4zQxv z#vld1y+8`$j=4Y-xO8p?831w^XlU#;KPX&4I(<4fg9JdsrjV^WpbP?9)9K&{+H6Mr z*x9Wsh_SQ0E8wxS!(kX>XA?kIhZ8Y&rT`i{gPkYao1-$pqwx)>)#uU8dNBhwz>xqR zz5V6W{SdV7zyNeUL4Z&9UQk&FPFM9VDi*HBZ+$v*R6IbF+0I3v!Q&60kuifJM$q~> z@Nuk`Z2T=RLCamb-8ei!oI8vR4B$=4mp!}Bya+u3D&}7_b1;DpA_LuxhjHb=Esuk* z?LC-pb>DXEjAhvYY88M+o8S|w;6W!<1<;_=0axSyps@rQ(4do)NAm&D=*th6P79A- z2OikKlW+HN-%eKn@SOwQd@u69KK<|5ecrYExNkR~C+MVE?T;P@|1o*Aek+mk?7rUX z$mnWmGm+o-VD|~f{|6kqFL+pAD|*>|Py420XDr7K(7+6udms~!V0ZP(Lna=zJUS(O zdMiK^kC$#fgPzge%Ujj_{J%^0Vep!H(9G^H4=D!U&b^?T$JO|NYxj%RZzZ{|-48sw z*<3AISZV@1yYG889~U^z3`*&c%2o?xMfVBNK#^xRn`1W%ODCgauPdYVF-K4Xg29pB zr$Uy&@6|j zMl`sVc6gB=2x^1f*aga_pxOM07jMDqNV~ze7Dv4B2anJ6f^KRKm;_#l;QQc(9B36o zukVBZq6#wL6$qgb&;e4=K_$KpFD$=3{qNJM@6(yj;nSHf0NOp(?F+uB`#QK*n*&}A z;n8>ml&(R8e2{}2Vh@Az9BTSsqmls1H;r!=fa;oV)^n-QEYLauw2Gzsflv1*AJCC* zSqVEqk^O?#9(1~-i;4v(squm)X*ZvG^&d0^$YlHe<^5YK()HSb>j5NqFIT2vp*8bVh1`(<11aNiNX2!_A;8Xm~*iEkI@2tfkNX8{h7X zZRm(?0l7W^L_~P@h6#Xz)8WNEJy4UO6SVZ^xQj{!Xbi6-MkQf47pPfo30j`S?-ZjF z06OE)!K1lGB?7eG(?`Vtq&vZ*`8R*LILO2T=sHj3ASs4pE;0!WuerekvzK4+f~x&q z(RY!c81+#}cyVPBWaT1geFkXK6n5)s!iz;;p8jvS&EEpPF0eU8rGUW$=B8sVDhUjr zS?2(c<{w=AO^3lN$qsz;Xg>Yl!}>5}RVT<4bdlZU z@PhBl)Bnb|L0$|1IVJ)cKn^aw&ftS|5#;7Q`8lUv(W&LFjx}qSo0W^cQ?)0nw zp1pn+9=)R1U&}JQn6~i6|CR$KTE|^f3_z70_?*`m@RqjS6|xMDJ0Lj)yj1`E3xm5a z{)5kyxDF~Gq!utRfX?qw@a^?0KnR0&>iKq`@$Gdh@aP6B%-qSq;M>~<>T39QpMeUV z*#fE+<2axx5_GOPBwN8E(BZ|yPf!2%I{)|R?gb@&P(!cX8PrOgqw)ikI~tFGG6`~i zdXYXAd|(eKd?Dv+fwm|Z_#}s@B=~~%ba_~Kbl>vrb^uKc`f49^>^|gq@CUP}^#T6o zHUs&Sr3X7Id{bC`Vn` z2hMoiV9`!Tjn`5hy}Z}M6c}Et>H&q&`4>S23=B|B;5*B^OF$bPju^xrb_hj2ex)}@ zWrj!N8_>!rk8ai}iO`b6HNv<1A$SJt7wClcPHRl;dOlvm_mqDlI_i*WiUa z=!&Lp3E%E?1JCYq4NvPYC3@f~EYLyJ+@SO6K=W5DuerfzE@{iXD} z57>jxo4*Be^M?nAhb0Gp%Uw{J(|zuR zSr#LMXLm1X0@|Zn(8Z#NxkTEdo5KUN9>)4q34b@EC1a_pNAp1z(Dw4rpgd;)3K|8U z?p{#k=i7b6qx+g?_t_U;1Q{40n`uEO$6AM|c$7qf&WZ<@6bD&Am%V{cU;y7u&r~h9r124Y>nbixb=2kdE zsyPRc+bldf*+JFZ>uR4~Hvx}cQLPYAS?Fu=Vxkvn?H2HYKOR&ZLu$8x7lq)VlwKc| zfEPvGklO9W3x{mbelp)1|3#fdA+=ioa_wgEBKke3Ck@&hxI-FmL;HI>#oi4 z=}t{>>E?Fn^t}N}#va`lUkiZ`XM^Y43m%Ak>m*sq=3?z7Q_BoGjl%k3X)x&UA@B)N z3clS(Jwfwfz78)IGk~tay#l@kW_I&<`FUmv7k! z%GOEn=23_~A)^&BV%#WiRphDZ0c7x&&i zg)A<-?a}S~03>qeEhsvUgO-1R3RKWGCPZk1`ncUkP)mgs5+EBJ->d+w4$~}H;nB@n z5eqFFT0!HHE}-(wr_)u!r~8#hXXpgbqNPsX4?f+k;Ds3WdqJ(@4<4PaGeGJ0MH(n( zK7bN-1c-kj4b;8{pL0+E;_m?SAAsZ&Ji5D~xvrs#gP}wSB=3?6-l=oUMa6-!lodoV z7=x~~Xg=r z&;Nr?E_dvVV{zOA>I67;AMyD9*t6G1<+BGrWa?R71k&0D-)JD=(F?k=q3}nip(pbh zaO?l$Yi5t`W1v&U96Recy6+Qcyk8K87-s-pHCVyn(OJ8|qnB0i9HIfgvmDWY2c<_# zTPaXaxBH(*XXygZ&V8T)2^2!QpeX46;n4{?KOY=Wp74$i=!7-s^=hY}*M)(WD*JPI zYV$+ox^H=0{Eaxl0Cbqw_s7s_dzj~ypspq8d2p01Ndcv)8y=mm3?TQVrht;v1CLJE z2A}Q&&?vX?=q&XBUHs#r%?-aQ4C5*|{uWm7a##-zPi+p*J)qm^KsUyL-T2bu;xEJz zbo{NN;L60G!vo~ABcPM4P~=SiIQ1?e%|`?sHIQU^BG^bj_nj_c5Pd z76x#4jk*03v-FK;nWa4IGaD58`$kXnCFWA^xVs z|NsB{^rl+)bfz{Sg6OrFM`vln%VVG-w9~c0xAg#j%TDm>X=vPoLkKPI_k+@Y_i<2{ zv)3P<@>K;PNfkZvJ($m!bjYW^1@~KkNSI*}Dx?N_v7Cqn)lC zKHWb+t&0LsyY%b}(_~PxgSHkL!G87Q@YLo*OAS(B`JjMDr|$xnP7B}e_n<1d0=z8Q^ZRqO!e%QUsLBl8;L+*C;n;l~G_EEOB7~cN zFqW``R|mZo2J3yzvjY_PuUWzU8b?kx*Vh01Eug(4;0k4hM|bRm?i$d+-A)`Xohodu z-G9JSf8D+(K+A`lf3OrOcDty!ICZit1eFRd9=)Lf;94m4_vinh1-G4v3Lpg@y&~Yo zT7gG5gMTke3h16g&_dG*pPcvwSsJ@tCU7`)x-@clc85uLv|cJvhG+sUegzfEptbKT z9bmOh-7Xy_wZWsC!L!>>1Do}rIJ8Vr2`P(rQA~Z| z)1AxV-)mCeUHhWDL?y(r`-(^R=@lh*$w?!L_beY$f6e7Z{~fVZ8T zdtnJO-ABd6sfxlO?+N-5n^KO1h9#qY~#^cy27P9Ma9SQ z{}FIH1bO*CI4ycMzhwjs1%jr9H}JRWgEwS>7Y>5cXo*V3YZj1dP#W|AwadW!51Nm& zKoT#gm6rGyG`pBPp*uz;0MwKA?LO<#T`S=OI;88GPj~GHPzQMG$N&EuYE&E;O0+yc zO#@KZ0Mvo@=xznA#sM{f6nwkSLNtLiSg3)<&<}tP08;=bI0I01R|nd74LUN`N2S1{ z8+5^w>jIDNS`E3?u@ z-vzXl(RYJqwhfR0BX2E8#u5tD?w+_wh6H?Fnn_67hn%=nj|e5)~hx?jMfb$6UKv+Fd$bRD3`K4j$d7Kz$bn8PK^wpe{IM%mH+C zWXX$$N=XJ#-^Ed;m>G0HuJtMYmhYenyceV!Ry3XZ1}>Vq9Thx!WgI-aTR{^qpZNt` z8$R<#u*~?(F9;$8d|N*ANBGPDU3Lp51zbBm^GCSM;P}ih=rV)Dw|gmQo(6pAYCi*L z21FqA!DmPQ2$4CT9r*=C=73Cm0upeU!vYckQTzhFFF-;*b2vakAc{Zoz-Ru*OP~28 z4t?g2Jo%YF;^2Q#e@nZp4JL&yKeT&zn}JouZo{R3s+(iuM8wH%;bUkRT74}k6fNdWD1i12Ja z#Nz|mZQ;5Blt4gNuXKZsg$3;;0bPgNvD2cCRqdU%8m}dMdR-YnhcWj0D!hoB0P3EX8i4Y)=l>(< z*%WjnZBry@^tT&4mU)N+lF_Y0fAF`;fyF@uMDsxo&>TpChqdnl{??bjK_0FB;L#nc z;GzB7beK*MO@a<~t~^5|x{ z?9s_`5wxk!`g+kz&+d8wPwjdRkfET4f`o_mXODybm_2$$K$n3tfXW5C`%gi4!uf&* zGfJ#Hx5Yb5=bQHxFl?kBsf8!BQzZlVjj*dP2BJ}?2{}W#L-+%r8%nMHt32Min zj??F;T<~ao16tGP(aoyq2klOSj$QR_041~va98DB z9-Xco;34j-pnlrjwV>h~-ovg7hjo7@fU1XdkoxWqpt%qZPi-C*Pk87;`(vP93#_l^ z*crxxP}zOJ<2(2~X5{`Fq5*pxx-;)MXxgBF6|{2{dB&>OgTtq@@`p>Or3bA2`X00> z_Bg1|>eGDybn_wysJs4R$1PCoxN$(P^ks7FbmKrwHZZ|Ew)_sqLDOI!{7zsS|AB6> zZ9Pz;1MAWDvO4ca^k!dYfM(Gk(@~&M%GQIdA_i?q1odP=?Mu-0#@09ZTV{d^z3vCy z#-Kh!C+HZO=HmjL1}@$2z|B67@8~<(nm~4g#uz|t#_nUF)*`V@#@25o;-HJ5KrKWY zM#ulhJ$gM^KuwO)*PzCPr}Z8F)?!c>t2-6kTJZoy;;v9oSK|k`u+iqgS{uQlu%rea zfzaB9xE{!Q=I8&7FM+0kq(QkA+z0XK4E)h42#>xGpdp7tpaaZ7D+0R1IXt@gU;MuD z^gqHuAjgV^f)d~l5c5_D$lV{H{WPe1kP{q#O9JSWlWxZV<#gx8!NpgrlI!QD!#uh6P%D zWA9`iV1)GH5RvWEnfb$|Qxn$9{s79WM?t65gY#-Qhi5nc3%=`5|09wYyd=R=On`C{ zM(^93XiGJ~DJ+b`qnq!=%xh2ogKFUdL^1;nfG2>;Y7HOlgPGT@cei# z1E?Q)!qxaBC>J5m+k5EuA3xA*Km>DlSa-~%dvy2V~gedZT%V(Dh;WcB#}fbcZ-RtuK^5bUe-u>UV-V{YN=Gn~$?J|3@kW_?wLW|Nrl54DzE-ckK+%=HmvS z4*$6q(rA7IO;X{HKDZaL_x!v5gZ2p>K=)t951&pAk6s5zr~mzHX5a3kzM$cLNCe)v z^7KE*?Z-L5Lja&O?9-il!Lz#+GQ7*tP|3^y>Yj-Fsi6!Ej-74bDKhXesNFRx z704EGFq9a9S{{G=z~jgzs-QEv3>cbyR5U=CXzwj(2fFnMQ1dE)zhxcx5D93H3p6T@)ZuD@ceq}FW^-dZ zF#22G(EgTS8K}Pn8q56P+3gPPZ=C=wXYjB-&ENJCY>CVbkdONO!3_g2y9&a701{7w zup6M=E$|TOJtd@#UE1K@7LN*AZ_7so+}*lq1nO?Fs5l*SQ2=+hAZNfqcd{_NsJ;s7 zZoT#C_HDr4)B45;o*DJ&bUon#>u84>Xh#cl2$$;$=WZ7cj!sZJ9CX+`tiOg!^L`Y~JD{2mG^ePzfcsf4j@_3) zWsAoPpCoWcs{+)~a$(?aV+K_z-6bj&kWQ9kH&44quZ*W>cZ&+FKePh1KePtDKePe4 zKLpYU>JWK!x-J0suzR4Lq8*?4BSb*GDi9&yx(BQY)T?p<^{oVa4}gsY^{RY8eJgC; zA%{OQpzcs6w=6@M#b-quQ2?DLxh-e1&g1}i2l-;^x zJ3Rg$_UJ^*Le@7x1q^@FPH?{`bb?1Ss5=xo!2{eIY6OddX5~S>A!{F%h?nkQA<)f6 z+TdOg==2mPXcq`P0_cG;Y*_c}*?-T@Hc;2c_>yNgjy_PWfTwmXybmM<>H{@D`vJa9 z<@5{tOVG}RuL7uN@j?l*JfQ>BylFfF>K-6^7O{t4{J8|`SbVz#>R5aLk&*G71Dmj=89-2(2>EeG8h%UiG( ze0Y-OTF@dtP*HSS59GlgF!=_Eyd+$HH%J~dqzall@##!a(Eu$efDVFz$4WtCZZBN! zgHOW>Q2{R(h9Axpp!_tk3&vLS*R<; z067*OG$aM;V4`{Y0K(J!*O5J)@Iu)VWGKkf0iNCee5^|&Ku4lOu0<~4?#A%+Vr7V@ zJ*;aZO0W5X8jrGI4}~UpYG3p0KKGIpl+Ph6-rgC5*8~K-sMP}5f>`mE@#41~VogBC zi&#|<4}26(TsCA)z=sz)-rzL>AO4H#eU$;7xf7ZJ8lvNG+6Wp-1+RJwc;S5h>Hn7t z{{8=NeA}~gjtXeWGH4Nx189m3621pP!zqrPEh?a8vp(I2U#t-WB_Ghjj@FYUf*{r4 z;Q~->eLV;2Li!efve80$kTS@jFCL9YKsf;=8?g#K`#%AEPdjYgXyY5u7A}u&)_Hc& z?9!qF+M?#!{nMuta%qfj_Ya>=7ZnTe8dAuKJD{skHp(&hbRPnp@&ej5;L!~}y5Pm~ zXABGzAmbA*Dh{A39<+3=y9Ipg1*nB#06I%wdkXkW6KFmw(SqkOd2k+M2i-^0>!afE z!eurn5|DJmjE(?}EM$Q1YAXO8aR^F5pj&PrZYfcT0JU=qKu5HImg|8Bgqy)F22Kyl zND2PdRAvT-7eb8SmQbmnM=x)iz5>IG&@2Xqm#)kV44{!~pI+XDE5O;fXayu2pLijn z4LT3!1-ROh1)0}bqLKj0sTKSJ?EIQ7;Io+c1^fm0HG5P*3s(3A+!a9Lpxv_k0{#Xd zanKOAFX;Z~1EA0Y?N0%%p|#BdCn6V>0#Go4FI|oR9S;SOzY0>a%Z!1caD&I-^; z%08ep(b)n%ZUxjV6@r-t8k7)Edhs9BXFUu$#0In%2h@g4@UX5?$td9it%Cs%wAH92 zyp{r40#O0JjXvVVd(hQ)pjj!OZucLa-C(P~&jT%~0*C82AM5WW{=VI6KGroV7A5kI z$J;?`@IlK;AWK=}zksTTcF>A^pH2ne&OIuiW$nJ*e>{7qsDKuUd%zB@TKMMaf6wM) z9Iw}aj)Da3Yk*qm)4c?I=o84-BELYhuDqS=Wd5A7D{`EeznO%4A%ntyNf z82EIn`?fwQ5e2z*Nz#k|yFjr6;uL=d9d37=18jTg4Va%`UiAe{iG&(}RA&AGH5ppK z{_*JMu!v+U5e7vIQru6wh^B-ULy0+fK^$o4%sNCRpoGt(o6Q4M0l27maJ=UA={^Rk zw;WywfG_eZ0ZlqWPs?jPSpq&55WIQ~RJcF-@nYU7*f=93KtY)dEZ;pv#R63BgO+Cs zfJQvKdsIN~e35esR1ob^0S(vrbl0d@cyxo-VRiR_&%ps*O8qhi+|~fyn4=9|`Sp{d zCy~vDi9xjhaaGcAK_1+0swsA1HUh<@<>q!4QP3E{|5DqEj&ASfRY-d zPz2o#05Vz|RD?1+b~b>Lrcd|r7g>T*3=>}S7~cj@v4Tqn-_~!S%c-V7E;7`<=F$A< z2WTt);*+2u(bjJzq98LfKn;TCM?XMI<~qSL-5?8EPnO7oqyr$sr9WQeo`eM$c%>J( z*z185bFC*!L_E5oXF5W|*X|@Jw0gjWEvV>zCJ8z}^9ZOkMikl6hhGHofEH$=pKIXJ zo3YTN@eL@bJ-S&RSwPEfSAUQ0n~>5$PYATU+4VW7WB{*jZj5{J-=q7)YbMYTTr()f zz}xeiQ~xvU;0LXx>vUy5=K7w&qd8R`G|Z}g%$1+PqgOOm3tS=czfj->9h}qa`re~A zlpoZX;12<3yij#e6$jhk&;KIj1juK*!8UZ4b9gk?{s(Q#FW2jK{SQ7|;Jrt4Ej#Eq zu+aA|-LC&VK&K1js!B0*vmJ9W0Clt=dV78OUu?JnYKolj>2~J;wHr>qu>T2a3v`FF zBis4@#fRe{JAM5@Avs3^w5MqfI30R+M}x1X^z5$I@a%pJT2co+gPX&%vsl2hvsxk) zboNN&8%PE6%L8=Ih^vKXr}GS-ZeIhB-q05>W_yCq=5&4G(HnXJlnjF0!5)vj;h`OS z0kkT-6MVSG4)6sI7(+h+??Fizy!TNDG`^?_y2r+&Iq?I-amOE^?JCf<4$$QT65!^#DV2>Jf(K)DsNdt^uH0*`wRl15{xccyzlufEXGc zy{-p93-*xxgRKk< zs8@UzOL%ryE07(A;T~vV$mfO;hM>JkIKq(U9Xt$GL1Cx_4@1<&B9Op)1`RyW<|a@l z8ytX;5&@JQT#maQ0EPQ;*CP<>1c)LsAZLZ)2*}){*aC9;7Q6xJ(fB3;G)T~O0@Rl3 zz6dIz6<(a03A%{DM@8WU&%FQtJsOXI)EtJC0UREk1>ifrJvsvf5a*lpW`I^OgIaDL z-E%?JBk01&?vIGObbPvdL6y93_YaTmpT6CJ9KPCup5I@g-q~2<+T99jLHU4Axm*h> z?mfG&KvG#NXaEs3JPlsqtKrcNUkI)6LM#|G4a4lyUCi-vDtJPnn8T-=8MF(pc`3*- z43PDK%%IRO0G;I84How3X7=a}WpL^41zE};e!vH6YWMk1Ui?}t4?gk7vHsNuo%9+B zKHCa()R!y6i)(xg44&Xc6B3}SmmK-)T|a;)~Dk8X%>yAOjs4C)kuE{g;8kGfmITVFv}#J%VbfqVOPmS^`d zSL2gVyFvbp@adikQVY`E%?vuU59Fm2p8pSme5H=;D}F&HkKP~&(8g${PyB*T9~`@# zI69qv!2NU%vhI@E$NFT^CZFzJaGRENkAV8#2#<4@;hF_^j57m7Cd zYJc!N_>URfAIk;x4YmLI^yUfpXg>qx0*4n{&OQC_-D{)c(Hkn@(d++%Ux0yMz(asv z)3t$Lz(Iju({}>DfQJFUrt1RG)UxZ3&-{X}JzypSzozd75X<)uNN~+(enH9it zo;-gR3`o|-yc4`?ms+wgMWYweev`iNHABzv-uq(f9qV(9DnZ|aMQ!HJKDgryBNIh z7j?@o>Gfo>6IvOs<$zJfgPQ+1%6N?zvP0CT z)4->*K*FW7K*6P>K*goAfCDrs^$)bpO2MP~ZG%U5D2Io2r~vdxGgru+1K_LY&c4vg zfA+t-8C39gvb%Javv_njLrU+>Aj+fDUBaW=Im6@o4G-yW9?j1lcr+iY@L>K7Djs@$ zR5V`H1%QV(M49A3`=3A}D{@|db~_1r^oo9!g$eRAgQi44H{CY>U@n&e!!=u-ql+IG{|7B8?W|}3@ghLHZyuc+ zKr2o?yHCE@XvzrMA`8=*;GqZ}o^^--^}4|ug}N_zYKH~D20Ap+20E%iOJ90HgS*jP z&;EOMyTLX3cGm@XHlO?N)44|lR8ad^|KM+t2Jd9#2Mx?XYL+uECYyn#K3c$I4WK(I zK+`{JV1jM0iYAZK_>ZhS0s3JJ7j>I4eo_^ z?g95)z_!XTF@P3c!KVqtLE|i-7Rd`GFNo!!6IXn!-06WzLbc7V3lTzuu(%QC^mlA~C_r`LhSqxr;t(273h6QCiUQy#4+ z>u-Yg{xBT|^@4g-z@}<5f(8+h+*88m*~tbPZ2?F9Yk3Tpea`~r=MvDCy%?1U&;Kqe zKe}C1D*hjMxdc>WbVJevXc89WK2SP&c^P!hV|R;60%$}4+)(Uo0e8GW9S{T1RlA^s z2jYMax(D}E6nwfNr{IDPB?k3(K?O$wC{94l*B4LMf)-{$QayO3cQ<$eDkQadbVH&X zPdj~9n`!isZ{ zddU7(=mpuJiFHvA@YZqoYONQOcY?+Px*>@ds^TYjZC9_zUj_ySh8Kkp6`-=H^<)XZ zhxSd6=EpxkXN`vMd5LPyJs#Xtid zuEyU$xy1vt^}cf}DEvV_%YY6WCxF&jAN;}W*a>c#`*t6DQN|zz8iNMikJEaRzeOB8 z=pCX`;Guo-<)?rD|G)V9`{{pZJud*-@Cmw;YN`gjh6?cLz6mv(}Yrs2UGpB;bPlG1G#!s(^LXJCN?ylef zIo<=MST}f~vE%7~&>aGx87kv5FD`;>#TbrIi=uxn?SC7ua4qMQ0al?x+z9U z(AWj&x~b$p$nMe#ev@Q4W3}0dw#s(B>>q&M@%k=6=BgbujpPtix=`S4^o+ z1iSj(1emJ}L?B^|`+BTH+n)aC*Ej~6?giiOmBkKP*9RIAY(7$exW5wa_9iuA0y{+v z=Js#D5P|J&@xuQTB(%Yfzx7sz;k7y}$TKE@9d8JC{AOW7j%P)4{8~0N$3yPNf~V)B zswj@fk)B1N>De09=~F&3F!aVVd9)rVW$FI?S`C`6Cr$!8yQ&`+=6^t=ZLJ5of0y7& z*?wD}{%`)z%q?mpb&~O*7wt~`=dv%uefLT4WI5$ zFD4v(`roJ5SKO!jFle*o`4``y5QR zy@l5x1?nKN?;tUAkl1ICm_A4hbP}?wJxJ^~NX!}}#tz~#zwiWG3malP=GhIp#vC$2 zL|0*cafFr{m5Qe3pO+Qf55cdb9G&D&LIRmKlfg|H>FDx?h1qr30gPTz^ zKqd=X8bWn@lQJ=G7lFI|+jkVV`@ctW`>j_f>Ax53c0;(^HwzGQJ1d&o*D|BI9W*n> z0Y0XwH%DbBVw8A~64V#2=HSDcZh3TuzIQeL=F(aE+Sjr`prpj3mzP~ef#F3Q$Pu7} zoX^8gLgMdoecl1uo!uD%F4^x(D}Xlrdvu2jyeQ}W^53)h(h{sJD&FPS{7 z4;Cx?bQTME9Crrakm%B3?9=PO1X|9}efq`!&}aX_H_rQ5mJ5`~`*fD7`*fD-gJgSs z#a~kd^^rkqS^fXw?}sNB3#4r+5o-R)SIWY#aS&|o zpTAH&%^*D>o3t)N&8>uqRKOVJAO`dfOHg}azC1LFKue&zaa~{8C;*BIPFTM5lo2oM0O82bBA=o3Z`p3;LN=nw4$*DS9?NrJxY7x+rmXPgm5eBPWm+}KR_LY z#y1?GIrDB-LzoX*K|2UNyKnk{)`Ec!=y~bU-CDo|x~9u@f=7321%%n*(cRhrVK#Vl zw|0P;pnJ2rTPHx-1s=V=D_$rx{r^9~_`grLu}^n3$4h_kkyYT`lo=k))ddXvt)Pw? zWIdqhX>m{p^@4h#FZ#i!Qo~kz^n%*!FSunv!yuqDARzo~W)Qy@!pQtcO zFa=%a4PpNmHMtC4`7ssLZ3pF3{-z_K={3;e4~SjPYoGpq3GVZD{|3#Y-7aMW?f2qf zD9wPnED_0NU%|&qqq?k62ILZi%Pum3_)wQ!08O>PTs9kYSvSmOvo6UnOn3>|#q6Bm z(HjcdBC_H|dll%g1=QQ+xI8+gJeuK`EM&a674r-{Rqt#4oxgR(zyF|-R0Rf~Uf$Yv z6VUane(jKy<8SfeJtt_91Zd^v4C70VJ3t}s0d?CdPALXgqi?Q8|Be6m`hWj^@b~}! z|M^=$_ltqn?Vf${+Z%L=+)~hp0fWc!R#3MbR5l(1_h}eFYe#x}K^?yrlRki2K44+E zM}&Al;|j4S8bG&CiFot|D|kRv8?ZkEjbE{NbjPmn=$!Kx6u%zbQ$faqqNs=;Jg@{Y zdCBUh|2?c@SMaxhW+jkU&~h>Gw{(K$H+sDtTtKt;S3JAVzVNXJugWO)?R8NBohoui z6p^efz~^bhBG322i|taNm;%L|?}Zmqj37?0?}Zl?E})UpUf+lpuhc+=zHh{T(Ki=R z(@~KL#F60i`hV5a|F4xDw=p*V=PBpf(ILRVz`yuMk)UhWzt=n--L5MT15cJ_t156DCOtydTr z7>>E91Tcao^1-W8JU}e)ZFLSFp!JX79)GuM2dIM&nt+@DVrW3D2j9sA&MV+!U_uvw z!m0#xn0faNkg^Qp1D4I8;owp?OYlL4rFNF!;|WX6Ji5C%Kr38~E`j0`a&?> zLD#t&|99+lXY2$mYQF8b2V&5kyWlioUAuz6-??x2P1#G z2&m+1KJMVs0Xl@J8@kK~yww>Tpcb$I1%)FxKtbUM4p0Rj&|)Fi8AuM%Q3g#tfzJ}j zX#UO0-?|1g-qq{P;?oUwFer_H9J~cI%X-X3#RCzCq*@6xYA0ynH2Ca`9mWSN!8d^M zw}QgVvK_RVm%sH30|SF)J7^M@zZH~!VK?yQTmZ#lKWHZVMFNBkj>V7*pdnB2`7fRq zp8bCbN^ae!n_u$rw_FC5FE1HO0-Jv_^0(duO%CJ2@E`7_?4zyQm~we&E9W<0a^Bz2@KC zkkE7K^=3kgwEv*OfI5-Jq6nJO03BEYkF-)pNQ9MILL#fw5EfB~K_{YgLn3NBgbj|U z)#u<5wcy;d|F0FW9CQcw@uo0LAA5AeD??aG3rbZltd>3fZ~WiUav!)DaCWrZ2TDn$ zR*sh7tMf_?J-hqB1%W2m1%2QoBnx4KT?RVC#S>I$oqNFsa+wmsW#FrrK}YcMfyRzA zK#?IH1}biGl=|zIKK&1hB9H%vnL&HuL1*d-@;5#H{r|sbZ!ct!9F(;}cf4>u`yO&) zL8XIFx9bYXC553YzzvY)x$w&geOJ7QTncJF_ktQZpyo5vH%SJM#v`Cc5Yk{EXi*Bd z&jy++k^mj}pb+jD<_I2-^X&fU+5N(!`xodQ98f{^BJ7pfzjgVt- z%T>E^9)Ej=5pw)3_}YxKFJ=dT5A<>X4a9<~Nl=My0pfrn7Q`_Calnln$c%Ffcv&7u z20Z=?T8jW$k=A_~wBjoB&j0`WK&xlE&%IDQ^9;O~5`6873-sER;~tQsYWFjO&XU>< z@egQ$KX2D<8HVF7DiNR=T#xR_ATNUNWCERl>%`IRq7u>RBmj#2lc#Z*3ktE$-H_n3 z;1569oT3uJ;L$x9B+d^yJ{M|~k4i+Rmw-q2VV~X@l?2c3Xa&#iY|!K>c&;hlF)ki* zPBQo&B?;J^ANb;;U!ZwDaP&=o1C2iLJfD?Irvd0dWEc2>$RJByIyXR~Zv!OyHbA_) z0pvHI&JD2Wy9Y`%6&^&yod5$Q?!ZSEL)S?{s%}KAfa41kE1)RS07V{n{2a7C05o0? z>fJ)(%cJ}3i@&!K@l|*V60Uq6#~nC8vEb8L0KO{cm`7(b$OF(ggLuh+UxPLKgA9X5 zH(2g7f4u_-D0Z}=rf~Um7I3&AnE(n9SnL=;V#fn}?06tz2Q&)^jh)Aiaq)5J=l!iw z0Zrw3K#unE=w@9g2<=g|g8T{IF5o)@yzbf6!K3?^M<-}&Rx5Z#TPL_*0$O+qI%UbD zyA`xo0d%C5M|UfDU1X>03GlUPFV?&QMfC^JJ;Mh|OgkkyB3L?SfRdR<=M1o~W`Kgk zqjLr*kUD38BH5#J1}Ks}I%hy4*`xcjM`vjUJdRaB`I8MkC<8g3+7Em@wa!0DhHkcw z7y}m1?){J)S-Ze-52*2MF&8wk!ryX~4b-oi3!07c>0AoR_#LqY9=)Q%ET9IfZ@~+@ zr{IoaXaQ*H{>(d|wv%aJ9jJM4+h1h@9@*Cgt&H~VJ_lcm$@EVWEFtmo&L>TcVBbpu)cp2MNI(X6ge7oH&Ko%u{d<1JIqxkBlJj_=gpq3f>be4XATJ{5KnFZ+V7BpX# zg3cQ(c=4eJ;;T~7^?slbzTwds`@*B!RRdHUDuBV#a_r?pWLQsdoXtw?@QSxX$AmGs%@xkM`19%y!N2i1*^HGoH_l%`4 zUbA>~#x{5$nd=EQ5&it9BVa=(fDDxbZ3U8r8`>H117Y4*nwJVOZwAObC6IaI zIL!0tuAKpzyZ-F~x+<^xphtJ;2GERl^A8UGCeUG&9^JkUFU&kZw{b#-yI<5f-*tw z1jxQl=1%a1=$(C_61}qzRLJ{ut^*h4;BGSbDpZfoeV}6BquX}_XcAe*qdW8fY!$A- zYWU;;O*vU>o`4nMJ9P1 ze8l|X#w@tG;1ms7@@@m!RTv6h>n;v9%-6zG`yAMym#7OuVFrO3X+5)^Laqr182~yq zMgTNleJvK`8s8P3+UM~baQ=li#DFLKEvG=cfI&r2cc_ME_n8+HA%-mQ)INjXkTWkk z!E0dL5`211KbM26rZ2@N43Jy{D+R5OmpDMn3UJy0^{p>};vLkt2Jdr5?pybQ4(kN1 zed_k@c%gjx|Nocgz+)k2Uraj)Y1(jlbVhJ=MhJjX>|u{i@I~~;!58s@nxmjYIIvV( zd;iFT2KozLytoUmwtN@7aJmYqx0KQAt(~CGLF<7ME^xio?IG}530L*m?W0ohiC+LT zhR_Xm%qM<92aZk;0jxF3l^LK;i0cfGZU;~axWdEwcu62Qe_e9{b!A;wfWiu#bD(*N zgz#E_;s5`apx!=cv?1*PB)s5FK@X%r1GRFFgKy@=6KEB`p@Fvf4sxLJUV#J}M(d;H zE2O5y*81QFuk2_}Q7Hi}U#egLd-<_5=;ELgpgv)NM{j5ZIP14P0;OSa_Y%AYwBC^e zYe;rYhlHe0w*$E5BR7#Py7vD+_`FC^pc#TrZfQMGf}Y4gWySF}P*H*>yexh}!>jo= za(Lan1PL#UL>BS|5?;_m79j9i5-pTKM<~J47P#{bTFA@M8Hkd$AnWja3tm)A16kXB z40O^sXpr0Z%nRA);7%^a;Xt6fIZp(0u5B=}nK$*bI;3t_7ghc1LW4 zN3ZDiui%J@c=77y)Bh7Xzz4(os2KS4x<-JC8t~!N%E6GmECtBz;D{G0Q=k6-?7}a= zd;66vgGG#rL5cfket{4b3&`nT0xl{xpZP(X-y<%3<`?h*tyBh|26oYrU;kp6^nM5M z2z9RlXq>9oMa2TNMf==~d(xoBKe{s&V9s>L?aZ1Wtj?^R^7KF0b#5fMPKtlmdk&x8 z-UXbM7!Az>(+e_93{hWss{Lh3WWK#7V4_?WcFYoIW8 zQL%C4*Ej$=E)8_L04P9fR2=v<&VS~QJpY+L0vx9NZEF}97#h!mLKK`vq!v8=4@w!D ztq(v)LxUHkg9mxQ2}HA%0d%krcxigC0263EhTzsWj0_B)UHAoC|9}|$f_r(G7#JM+ z!+*Q-haUzTdKA>~7hvGmY<&RHF2JwZ`vJ@ZEp~5ZU}gZVe>dRQ>=j@J>;3$hUvTRi zkOg3aK@5<=pn+zL^mzRfG%Ta8;|$Bm0a(Lw$|Oic^S6NdY~UcYfdwJIKn*B7kALQm zJpP$K;sPX09US>JPJqJn1S|;40-DbYfW3Kd9xUt@Ai{0~m)ia<`R}3$Tz`R&~4W}13_+$0r#)&X5f~I%CUWBI-kQZ(EH3)k# zkbl>EF0dbe&4u|<0TOATs07^-0Zktc5K&N61~5a?hYp0^YXhP|e)Pc_jSe57(Kz`k zPCuUU!|KPg6JUO%JSQ-KZv^y>cp(7yX#&JgAfFb1nc&!L05id{3A%{_6pJ}9AJ%{v z{DOOXAgLLV6L!ym1>XaRc95YTz)Y~A44|8^pxFy_P9J|bBqxB(0|nh55CfDGK$Aik z$%OSYGzbH(;0(e}U#vmc)ej3ocupWanFKVS2X$~GUR(jS`N0_;w0ag?$7uF~mhM7R z3265|xTewU1s%8t4m(f|;1}Fm1EN7*?ZKK8oM1U2_cBf|F7v_a#pQjFf>YG!7_8u& z4mqBs1XM0w`|QXcbLlfYPdM_&9D?L|3uvB?IR!bK5?n!@fK*u#ryTk9PnLl)2oE@e z+yr$?z+PVfj#kjFp56^$COC!#M!7dVNhVBz8%wZuxh;XZPvt1)b#vYE)V{g66T$y~qdMri+pGKE8#fy(<@SxGvxY zFLu}QL0!k+0xJC=VIJYguWUw}8$l1I?$l%w+)GzjqESB?^|B!@$4*mI9si#jkPB1Jw9&1RaLTA9wIGzaYc^ z!=O3Zru_f^L5sq`2{B*>+|wZQAT>E?)&iObL2XEA9t1fA;?B?ff~}yYB)Iiu^O;|; z7vw6ioC8P>G+Fdo9h4tHPH=b$YRd9!oCk4iUS@+9VfXSre<#oIf=P{m!T2_2<8jk# zXfj!Q9!D~^`B(%yL8qYH|fJS?J!RL*D!wr&*R|tZIL2J#CQ};wc z(7;SDNchFiYS5Jq=nc#3ub^Idbq=Q&l(Bn31?mNAG}%}jKo0edc#%F07SW(_c4+Db z4YETc8g&05G@?N#27n4%(A9t7CL83|M!~(H8yHcVY(fY_K{*MMdO-65Fhe1t;Ch}B z(PYzsmEJZW2EX85A4Ud-@5jsEGcxeE@PTh(Xai3$fKGzo`;Ui5=5-R|}M@n3Y}I`Gnx zP_&-Ms*b1sJ$tu-(l2PuMla}?q3&}pcE12w7Ng<;URNUkT2})aw7K*6DQHa%Gw3)` zYq?TZSL1K5SzNk{9gM%Z^wu%DaDVsc-3!VmuC4$0TcjBo7@Gfal&XQ|7LHav2REPv z*}*X(=nw5$xkI~F{sxdk3^FfDGJwWy5O=igmIbYWyz!a|ly71{C*hw1I~CNE_fg4s zaaa}UcsJE<4}nf@l*8RTdO^2&UU>2Mi6lce^D!3*(0K#s;jpM3lvvpL1;Oi6z{j}= zc7t!z1fAw0*bKU$6nvPAU^nQ-$mV}cWs;uVp&Xvj4S7^6n!)JVWH?+!4C^XupWL$K!QTRqqh~*v-hz6QQBs7 zz@xht%rido;^;L=@R0+)jp7%M{2J9aT=_MePq^}Hc<*rK*9czW%C8YU1GM!o z-Z2hxS0MNrCGcKMyz{dE&w(cEZb0{6(rI3{;t?pUp;yXMV_w$t$p8QQK*L2Y7F)o( z>q?>>yRW%eZUzk_mHC4X#A~}E!vH$A33OpXGiZznRBxT&_{<-92(&{P#1im1!Sk6v z@)T(6GKeMMazX$uFTi}wdNRnkqMiFeGZo$EU*v;s(glrNqR-ue2EaQvg9==qP6N>8 zw0C!dC+j^RbAVVT>pj4e_2*y6K#hctB%)6$cWwp^wfl5}=98r_f##FJ%fvqOgU9Z` zQ}h^qVLZA5|Vge9(uv$Ux&-{YHpv~~n93I^{ zpi@4fKI(?-6mo#AcL)Wob#M$v>@*1aWW?ZMd<3@l(6jraZ}$hEZqOL>pXYhm^d6DqqwCn5t9^E&5dRY}^$FO^$<>>V#hcl?QXcyI?(_i~B)KJmMgCj|za6=}15}S*%fM0Bt^O zeA58xZ+5eWe1!VG71R;->HgTw*m?l6Jg(P6;KkHakb>L+G)V?Nna4T|bnobg*G!Nj zRvkRM!!$gt!wf)syNx`X-848}gBLM5c=q}!ya+UW_W!txipSYAKK935RD7Ux0F(wb zKS1N%8Xy9^Kv(3f41*)&;ND));ZWV@UTB7cPeMolE$>WW@aW}bI4i^OBK@8ubYr#x zcnCH52547yuju15G7O-clJesCT}jZbqA3uwA(v!c1498tTV{i<<-3-2~@d6+bP`3zvBqU^sqB94_ zYaXyGyHCGh)PMHh_@wbAkUM<4)%?0+lq7t+xm~+$Iy}3bIXoff=6G5kFLQAPbqbJ# z4waR8TiRSK)pqQ4XLRgj>40elnFTTcUBmJ6{T>kad03w-n)s6C|NsBKtp`d#Cs6+I z)V=^Ze$uo1#0$kbP>T~>iaS6y^cQ=8k_o6*kBN^x{Nha==sZxfgHQjTfz|CHDgvN_ z2zIbxZ;r}CkH$Bk4xDHAPw;lRN07}Y$N#*YluDR$4%_U>@C^FP^)Cj!>5H=$3x@3^b6@Tdm;HD=PXzo&nT8 zw$uh6x4`DoS(^Xa%A;450V<&Yk>EV;3Oaj};kBGcujq^C5KSy#IsO)RW(J1iuKA!% zCO+Ny3ZNrw6n28D>K9VSK!qCkFg0Gt2@@Q!di9@2XYF%{sxL=Dsz8@2+y@m=DxfuR zf(*wUI6xtF+<^x~dGxYg1zFq4=FwRPUhVbGqqFwAM`!7Oh#~8bN-}^>b89^Sy4M4A zm<7}--|l}towfHNsye}{KvuoSXVs+V@(iAxY`$Qtz{{^|*?l@o`F*=n9elM@Ej$nY zVfN^D7x2(#2NgO#)(^_$5V;$4JxKd0aJLG)*!Y77XgRC9fG1cr6RK)^uf06KC`!L!@L!V`2EE+mzBS|8vqlWbe#{H>u3Go z_}`7gr?YmsPiN_R&}HZ>AO5?6u0Y)G(OJ6Rr#m$rav6nnh>AdoYA2IVXB9YOcr>T3 zXYlB(lJMv(QZPR0(doP2v)M(3L*uo8Pp|8IQ2$TB@&A91Zr}Zm&FBAv7Bm<*b|3%1 zf6$S`k@>7xj}3xaRSI|dLUhn{0H5@_9=LFvw3!(gV+TUg;)j^4d9pnZrOh;u>|RYY0?3m zkOLqnEeui9Ev#TQSi3B4+{c{k?J?-Oe1Zc|EKn1WI{5x^IAv zK?h5`_2|CwS{f|E;bKuJS<3IxeG_z~d-n;j{6`myVoClM(0#@p-M;;x6A?kBjfb`G z^p}r7>x@Cy<<3z7t*Q5DJOV1Y5UYe^55M?P2`clP_B{PR;f2kfr~l8qFawhhDqsIU z18duY+9jZ>GZb8P_U5P@@MwGkTK?zJ&AR&qv|-|E04@?gbl+#r0+0_zS(enEFQg~8$kM6K>Cu)UjIMl zqM``8i;WGWtp`P03QQXtX#0HuNSiN6+m2GOHU);}bN{=qb)Rd!UE=AeeYeB{MCgDB zX%NBVXnnWTqPLLQ_|j{=eV|gLt`iHHtc8rZjT`v#n zdw4XzF#t6Rdy7~+x_=#GWAN+^$nfmG;n7$H9`o?%ep#;A?Ih62?$KNYIf+OJH005J z?#0(jk__GK$6PEx<3N)^Gh?8}X9W24Z*lOxldYf=Ok9ml`hp6W6Q11;9Iu5uECb*- zdxK6D0bPmg0lv!IQ?gXp!#Yr*h}YBlLc-vYXB^B9|!Pp>L);u12@J56^V`{?oPPb}3iufl@X{&~9Am zUJnDu|A!p;*B^A;%;?y`;rai7_6?9!iQ*2>vNOl;FI~D%IUfAUklytKAb= z;gjJB?hN{Le*`u4zV*RZsDV#k@AY+facS+-|DZLx;3jHsh>C`1Zy#t2){9VAaBnX( z0^EUvt{irF@u?VeN@$LX#>@8%3=EF{T@Ani14{h?FI*o#{XbzBGicQZc-2MZZcy{) z$0h@iw8D#L?x1kL0qRbI@Aqy4pUZl}qx*f6?IS zp#D%O_;#I$7YAiQ8}>pSKwWOZ63|vBbms*ZgSw)r0idH*K|2esd4N3mb`1_s7PugL z64Fccb$G#B3|eXfT7G)`9cafp=;HB{Gh`SVYE%pu_*>XO^9tR*8KC?#>o9l;4k+Xy zHAsA1bS&C=B%j-Tcw4-vUI$)bRLaU9{ta=Q$4np4 ziagdNAIM(N6EB{ehpacc`I%p!0PFE7W<{t+G2A;O$-u7x8DYS77Rk4V#JGFLMVPy@ zwxPKD@LGtw!Do?p-9bK!;f^=h@k_m7j#q~|9``{im4&E|S44L_(s>^6{%mi?36I7% zpyk^9ngu8LH7j<27Co(S;n(y4Eq{vW@CD@z(0GYY_e0O_2o6te3D7ZUIF8NxI0KaC zz>Rw7(Wszx!OaOD7@8A)Ff=FpVQ2;|UU!fHpDPPG8uhm z=mI`Y5pU;X!6T-1z5BIRKNy+^18!|Ni|RZgQrYgK=Y3tpcN_?Ky#*`>1-F+5*9~(jgz41 zRUZ`}kOI&>ix)vx6@une9X|6%9s{j&apBj$Rc65-Zp*)1hT${6V2z543x7B(BZ%h$ zs&GAA_``WWEt3H+`tecm;SV=`0^;!tg67c$TvQxB^VhR^G#>*;3xDf%(ER|d|4TSP z-9M}8&;El>-vy-+Sp5eY^8NrC@_qms^1c8X@;(3>?cRXgFNXAmk-Nd&Z$LLKebk}D1bk;ub=?*RM=?q-~Ioi(k0OWSm z3-GIxLG=WvM+_SN=)UD~@HY$S3a*1M>|Huj7kDt=C;?sIxWEH6ALV=Ch3g$qF9l?J z=n9{1ISNoCzyKa8u?AgBZ>e*z zlsS!-6CWz6^^NBzFl9x5lrxF>@?xSAX zET2Am@M~T0(gsN!0I?5(?x^|f%pb$E9X#^x%pbwC-MO1Z36z{$U-)#F-Z1{=`Tw9N zcxdM|e-o&<|I9Ct`r$LbK_}bODd%;}V|DhdF$#ZHZHfh;spH5GN)FG>GF1J~)J9FR0Rm52u1g zSs^u(V+`mRkry(#puUY*E~qEt(R~DUohbOI^B>4U45+`-&H19p1T^S!!x&TmuJ0}9_vkF$?$A*?-=kM__BBw2 z;XD6@)dtYH02-&W+Wj8AqJ|LL_P;o@9&FowxNZKYL4j7H65s%~ z%>!cF{ulXB+dROwT}QTU|BFvqVB5~a&T)rW(^=c^(djxJbYvT7Me4z;ARqduM7#(G zTk4_`0k`!g_~`x`m4JqNNrqA(kKS+vP>C7w;>S^lCq25YJ-S1ugRODBtSwVN z5mt_%9l_^cY~W;I07rE{%z2QY=mvL-B3=Znd-{KZD`;LlM8yF#mLl&4>gC@6g-V1c z@z{NX-o}hRwkxI#pJUKe~b%wTISnl{>cBI`6Ir6b_K2Sb>xo#<#EW;58FyUexzKsHL}IC#0tY${nB@0%=kdRxiYYvKVL<6fy?|KNoH74QS?pGyt)m zi>A;e%i!7Ted2}kT9jr~%@Rnkuyo&tABtAv3J#G}Cs>F)2Mr{)9_YT0^Q;@ojHmyb zf3xtr{YEC7e40;@XcAg%ZYtNvcr|3$Idl_Kv-Mt#cy&`Dty#WbhM!0*Mk3bsO zINf_K4b{DM+fhRodInN~M>p&2Yw(aw@aVqzB3c+U3Jp0j$D`Mq1C%iwUR)G-_J6_) z?dSjgdvsp_O*Vr2K?*P4u73%d!F%yk=*54J=4wbcTN=~?=sxk{fZz+zZO5PmCCJls z3NOq-&TCFlF#u1~SwIUB1qRSG9i*2BD{dTKaD&u#gHE$FKJ#MRHt@Mf1+a4#J-S(M zUqyBQY$0s!7X-UM`x(0Xb)oK8#peDSxZGc!3hLVt=YDUHTA2I4ZAEfFq&ol#^XGyf zHkkS#ZVi z`w?->40bb094`Q^R)xoL)h=)$0E%wZI6iw1IgU?vpvEz%)#TBeqjJ!r@eO1p4(o|a z(BN`a2OmUm%cJ|JM`!5$=G5y9o}hkWZ|L(E-Wx&bsJZq#L#ZBk=G~Y5MSKvbF1+B; z>-+qLbuy@j87dF1{h@;{>@RAQK%oLUN)CF!-!W!};h0CauRJI?Zfyhy2guKk zaj@$9O!F^}`ofa*)=MSP&94|s{6K^wh%f;W>L5Z2MDRBMVk|B2=w;Pzlw~*!q7TZ0 z>Bk2k^l2y^eHg;O45e2?>24^^4AR&9inAmRWNaXaZ~+nKAVLd7$btxg=3k5@%*F>m zRtbQ#c=WPV)IfKrLI3wd{PY}3i$mq# zgDmjqWjzk1mqTfJkUrAWqD$WDFXIo3$8}4j~6Fdt1EtJPX{QDTRz@twkQs;;{s`ZLV6t z+BV^PAZ-QQ<5?@?P{*?Z*P{)_ffnFMz|Xb>707Alpze1CT`U9Lc4vIM`8Q8FAM{wV z8~jbj85kJ4FM|pMDbPR%_z+C!v6rB;DZ%Hu`QCW3chOVuav#vT72gAp9nYZA(i1Pf zOGC;L*vXfm)AW3Ay!a9O^nXL`0fv%HP#5@2^KXGt3(zpoiO>8oy!lf>V>20nyG z^}=WV7}h8-C-M?xmqNrv*jBpNa*(|W0>?E1yJAqIJ83OibfdRrE6<=f9($i*&R%HS`~3oB zr+dx-JG}&UHn=Y&d78o9yJIKBy|_+L=7~W$8+_{;P=F)431=LFJ(}Nu&d0ob8pV}3 zvJ~rHSe9}}ap%J6V0WUO4L;uj9J(E*u+Zg#xEBA};E~ZN=VLN~oQ&mca3!J~{A3r* z!PDj=0@mB&#rtUx7lX@yRa=k~1&1lv*%wV<&JG53S6UC0;4TA}MxiDO-_>Y|0%Lq; z1;=mjKHeRykbS%!-K+tppi$5|frWtqbop+9C*&GY577Kt0O*>vP9K#7pI%%aUh_gF!D?@Alc zg{t6iSOBvMbhrBi(7n~5ae2^Q^%dZwh^!Ctw-ka8GW_Pz&GBM?3OF2GI!nMuGrutg zhr?cDP@KO=0^0_eGPVfpur2( zh^PO3I!hfqj=Oq*x`Qqqr3Rqg_@Kp=*4JR?$AMk*EBxvIZr22#Uf&cS<`c-Xp^Uno z{|`bYM8Ds5+yR~q?Yif<2jo8RoahgvInf`CrP7X@89~#c9h@M2;K@<&oahh65?Sb+ z=nI$bLyiZ3FgbP~0MCgYaJ9ZtwAr=8(4{jp0mH$)p(!4{z6LK|&jt_h8F=(g1v%NL zI|Xz_&6yYJ+d&~c7qkx2#iCdebSfw4v{GM#7plM)8TxY3+PiLtIXcGw7gK85%9s%id z4e;m{O+NrCq-@*2F60zADNwes2jZXXo`&+gCw&u-TU z(1|q%e}IlU=WlBP@8uC->H5qccMLr9W*h;G<>Y{;9+QW1Zi|(Z?}Be3~jfV&p=eK-JoSyFM9hS zH7xRQXRiUcm@U%<6|p&HLr@>Na)2lCZuxY7bT$6((^-4NvA3SzqqFvbOGoVqk6zKcPeH2{ zd{4Ycm=5+9=!7KjseZk_CqO6q^@gZafL3A|UVyZ)A0YQ$PrR5G^z^^u9#F5|#iB;V zp+v)_GeyO~rL#sw14JnJ^zv?=C&S>{>!QL98X&9y#qdduS74_gIin2bjGN#iLwYfs z5!wNA#p?4|T_F(k^gmAfPczEG7r2LZfb93gwEx``XfQS$6KC=0OKwSnju&}L~D z6&Ih*+8; zcwqQX#SdqU9o#0*;J5>p&;md)7N-JEXg@rTyE1?x4H{wM55d{}#fz*-ki_-^hWH0P1@>(QC$bkWW=@1AGVqOR;6w&WTQ9(6dFT#M(h@rfNm^(L z=d=$j4`V6Bmzg6HOy~|!$g)6Pf|Ld#VQD}F z!=g0;WO=(1Bp8q^|FQ)d0@EiTMd_z@NR(nEKwdR)Y+h4^#b(4xYzZ(1)2)lWArXni zr3Js?an&255(9GST}7x%Q4?So%(XB3kzDHnbuBBXh=b>qBvr6ewc$=(y8_}=$g(*| z=>{GyL@x_|c;R&F+s(*%B?07ABSp|gGhYr+JF09pWab#urtpMZ0_y>qLH+=nHwNvq z0k0=gKweMOyGEq})Vyna(*Qb6wwpC=7qlVLTEGh0Nb}IA(+9M$^@dM3XgP*Qr;mz< zPxsabte{~4(A|Q~OTk;zJdT5p%LQfGW8jl@L8JAd;6&aFa?^{Aec*7L3Tl9X9BB}Ae|n)y`c3aFG7|){XYRVIB*=2w@)ZT zQiHd_3(w`?FfLV61m9G^`xc^N8A63RL`8{(55z=|=DnaHc>y1OXRr+(y#XA@L3+Av*GHhL z8zHI}Ayg|b1BX(HpYgZua}E{-9Q;!ccKWEez_fOjsAz!39l&K9q-e$wTA-ci8|7a8 ze+fEb85S)EAQl=TEZnqIk^yoFZZ^n6-A)3wppgYfe&^$zt)PQ)5KFjSx(|5t_NIWw zWb~FwGIWEb9XhtKf`oi}TS2J+DbB!rkXu2U>w2ex%mTUTs{AX^)bvzP)PgHoe#kW& zAl)x!xPv-f(xAlFI`c2+V#*p750CDtpp!2=y21B_fEJvAZk5b+fBN6}wnyh&&`M?g z@B?Z5^{rrKkkjK|XqthxjJc?Acyt?hfV#eWIY4J?xCwal!jdg$z59!~-~r$6Is=c^ z|NJd^91IMdb3tzHm<#fjM{jt>4p4&kuyhhA*9R?X2YVY4D&Wx>NT^6GfrU!P9B`m` zbWevZaZdm*aaRE?tFfE~TAR+_23qg#+q)ga0WWrU;PC7|@fyowcZM?6xpQ~p@!V5{x*Z(IV&Xxcj=jpgp2z2%yC|SajSD7q0d4)pu97B8a2`}tj zpZ;%N3d#x$`~vP4{DR=r>C?-ahGxws4isxZ`3}?>>x@y+0PVPeSa`y5hX`o6t#>LY z)q+yByEIm7Pq;k&-x;Ig(h;NL;L$l3v^>D$cq?d0AgCbjmkkj@-=Hzv=F?!mf-abET?*dOH-85xl)9xM<5@>Qm$g8P=>78G61GDgT23mw z&|C-_rhNb&KxP9kAUyFxbuVbU=Le5&j@KNPkdb5-4{HyO(oZkiyr2H}w07g*ZvkCb z0@@Sj3fkXu4K%vOwhuHw>%rk+$x#yN+I`HUH#7kx{%#Lw!_`#K87bf-^=dZA`Jojp z2TEnZ!3a+-0?tqWJN`fB*!+*9Xw_>`*Y1C)@*kX@{&#Ht|DV5gCMX5=g3l-N=oPhC z0ggye9r|L;T<{DyD+@>rv-*t_$3D;^1m6$;MZGd0$H<_i?PMp=h)`+)XjxzdC|ww4!G+z3R1@aX4LW{20o1zRu?scTY?%p9HPT== z!&A*Iho}ERhhA|Mt$i)h{To$suLI~p(*OLe>rvu?Z5bjSs%Aq{%%!EE9mb%=APFxf z%>vnW1D;@>tp_#JKTmdmX@4#X~d=D%ZB-60Qf{_CWvB2s8zNp2e`Nw~L zm*br-DlW~SRK?%A9mOBdKyL2s1xMT_(81F_y{wx+V$k$-3LI*P6O=Mu$e{S74m3gn z$rJUrVLtH%tqI8so;VTG*AMS z1eHNARzW2}H)?}*LQ_Ae&U?{o2a0$zPwNsD4*pi>@1PoeD)`0=kTFn|p!WBRWU$I! zP=5f_)8Od`4RFp;xdG}hG#&x<8xSM5v4;_BeH@`zW`gE$`PV_a6|Ns3+hIWa6uNIh zhBzO%_NMdubf&&=>8QQn(JLyo1e9idFTAL20wq{bn-o+xg6c`1Uf&C#o^kheP#>aG z3fzYXeF63zG@o2}vB?%Z=JEi^Nb&hlBehVB1Z^WjHPQ^bk@1*Dwk(DkdA$+Ym7uso zHS)0}R#)<18tDi#vIWIR(3VnEBPU=ta;FW3$Nw#Yy3&w_#z?8^g%y*o{13jp1=yn2{DJMsi{p>4M$JTudXGU`9Tz zNA@@yhLIn|v3gtz)5zTmq0uu5#Yk2RBj;f^^0*a-$4g*F+M^f=x`h@s5qV=bvINt} zK$wwl>X1E-nbd!XVfDBorjgGUKs`Pa#YoIVv=qCM=PW_Rm+uEqiB#1EURRm`E{0+t zD-L0MS7GOefKQ#t@aSf3T?s3RUSO6)H=rdEY_eqnq}Vv|;&Uys$Dt(=c>EVq68(qV z`w{xUwKreD)A}lG{`~m;Qgk&NsRulCxO)P<#xSW8An`I!0=mCna z@0w%y+6ZQ1D2j>DG=${FM64!uW19G5E;JmOQA~uELr5m_V>Qtd)5L8s6E{{PhasnM_|2Dz!H3Q7VViXfG)0 zRuj(}V)*ycOlaD6MKKXGP6Dx-SdD4o0+@-POJQCHxe+r?{)=KOy)`jS%!8S@5N;xt zIN5;JxLXDoUbcrB7ldRSMw}#KHLe@eI02Y(%y8pC{srB!;sae@0%`B?V>Qvz0Nf~h z0cw;zZ2&jQGQf>8*rr9uc_JZ>&~pGA-+;z9J-S&x%!f6~KEO{C*{Q(F!0^JXQj)>d z_z7rg1-u0A)o#!dxF4V;aDO~HYZrKShY5IEhe?1ASG4kMb`#(LE%0((;MwcP@#5=! z&^`<|0Z(l=4$w(ry%GOAV;A^z)~@jE?E`h0eR^G2fEKF0i2euKTLii@T?4+vi?b7a zWjf1iPM==a1ut}(pZ)jgOg-S!nR>#rH(bD@*LTBwCe|`d+!1M`!EJep7c_pm z^aOHmd&3JCJy5Cyg-huPmyXm8jyn_>KqFeApaG^0FOs_@89aLDzX6GX9MyWDM9#w& zH04ol*2(PA8wv><4}Ry+4KCfT2VM(!Sl=s=?q=&`22Tiuv4GBaej(EhIa@bHg2kg7 z-3bSEK@L0a(GBSjWYvN9+kny*IQ2og1TTUwJpDfbe!gId3es|{H7XB43*;K#fYO{t zH*3ONXnJe~t+53iJ=Fclqk9)<$OSYm;{e+EP?E*KFrnK=C7}5r(~H>$K_?=7@aSv? zEenO7uHf2RqrwkbT;kG^dH^)8kq88zdM(vjNW(JLwdk!*O84VLT$Z>CrPIhy&wi?G-K{!i%k5CG4dLRRkbJD>0L zWk5`4z!&VYytvc}TCfXBZ>%h?mTLTMy^yE@tp?<80R@_8cN~X@_3?5QaQrlQG}q1$ z0L4#(OSkI;aBTE}%wTruNReRi>~<44&H!pF?gSkp{GzoKG&}^p65armYt_4b84zyb z06C=B19X5F%L@;LDWLp(2V@lJYBrDV&>zTY?7@o%+Tb+y0knq2r6cu$M|bE9WEBlB z_CZu20HwS3lwO@xMLpNBB zOUDukkPyi4E}aPiJ3+0*7Y-$$Ks*5oKURkh3sC5s0jcol^pF6bL53Lsd$mB02Ty0p zzXaVQ;?r9#0IgbhE7-x)Av0M((;=SS{t7RoIv^9lVm`ed9KPMhyRU)9qE+7h`~T7l zboYE`3aDb|Er)1KKxll}j!h%?tAGDrf)@Y6Y%GIlR7YrBfmP$L*Z=;%1PyJ%G^(~CNMX8Lag#aSarG$5-P$d!5RDN-~a!|Jh~wh&e{J!W31ql zb$wJKVDrqZnxLeeq7ng_V+PN%`lxukI4KUAF6af7KcMP#S|xOS2PEZTVhPp1>%?u<^TyQ6cE-Muv#ym+Vtb{xP*NLpIN z2y?Rv#Lc*m11MJqXE60d?#8Y-G1`qPf)-;?{2rFt=8;fWsHJ zTTiQ@y0y3*C1m02jxz*2ItwH`Ix7?$!#tYbD0p<=^lU!&-=o`80JLU-!9&}d1AO>! z>&cQd(6zD;J-R=5@;iJ3EwM}T1Gl$8B@w?*_c73M%qL!KZkA+t&1C%Fqq`Y2L*UU_ zA>q;OEdVwMDs=ECbEk)Z50uv(Ea1`Y&EebaAn{^DF36eQ8Xnr-3NUNaJ<#oa<%`8$ zYYcleJi4JKL2UxttAMZv-fZlx_>P^y1gMLA=_(! zu-Cz(+uOpo+ri?+fgG@ZBRsUd1902>%Lj{py)o>K@aXo2n1pO^0K#67f&kxchlm#* z5PJ(ew7oNM+uMZA-ph^X{>|{{_J){*Y;OX>-U5$q?+o8=hm02&vO)gs25tWK(C!Ac zCt$W0W5hBGHrqonZ1?c!MllcB4GwTOOa@!o4Yty^+ri_78`vc=Dh8nQ?kzyO9>CWG zcz84)QE-d{?N9b-ek0-0%cA1g{DY@d@;HkMXc6vl7tn* zKm-TFCw>8jZU>G}{DMrKP8=THhdi2(NFe6Dpr<9SQ8@uwSZ4v6C+lYAoeVA4T0w10 z&+eO`4Rqa~K-=dkd_cSSeH%Qwdsl$AL3H|nHWi)pY_0^Iy5ZT)>De79@M6dEfB${D zPe3-~SAbfea?3%TmI4mYR-gip)^GeRLF^0+9@ga?{4E|JR=1mhM|XsShjxSoXaiWc zLqMmCiU(-T2@7cU9<;`-doO6`1@!oopF5D3LwbN(1m}Ld1f7@ck$l*r)3u}ZHhs2k(aI~BD01himCf6f2@;DG^`?(;sqtT{QLRxecc+zZoRFaI~E zsAPanYjp{Iqpaq;PeC<4ub_ks+2k@4W){|O%5Q$Y)0z->n8{3uwrvm#`YcrLnCb3xJ; zF)A+nEs3Cb?G@#?0169;nK!s0OJdwWQkIZqW-XTB>K$cCj3H!8pC@EV%sUNGp^v&G z#sRe5Dgd;yr4@8EmS;C?U5tgZB!8$oC_+!lA)5}`;$Cv?Bl6xz>5UK+$ zivb-s$ls#R1Zr}ec);uK7utt7R98w zfEL9}1?5Ljg183S<=i_J6p|jj;0t12fW`_vy1`3jS`L)TA%`hQ*NgY^Pyhcv23j7o z@U?_X_csg$=j1^vWd8lT3XWEg;EOKsz-}+=qZa6T2Z-JCD?vf{ z!Lc`t$)neI!i&$~m8sp=z??A9zz3KWu^X~XK;nfOXdO?luf%^*4Oj3o0kFF5056y+QE_+)>P;dXeir1&-d?c7FM`Kr zdsz!XVxR>M5Qjgj06QGIX2y5I3rl2|&nW>nFMKDwn70e&@*L3W4zSDfT=2NOQ4XKW zJ-Q)_c9GTvfL-Yg(nYQHGf{s*jpGuP0?_)I3ZL%UhL@ma3y|eApyuX8(0=o7NczeF zFP{OYFVIfEfEOj8P2Q*}EVm34Sm2myIZ&#M5nH{o(8V<1%u_V$wK#M|4K!iGO_{ZiWYJBibFXvxq&j(fc9vrU5 zpfmdUTRcIH3u}K4{uX->t2@#Fe43^a8)#wUVUOOaplc36?f6+sK$UWhih@h`+5}bx z2G{PhKE13LQb6?)SP^IePwf@68QJ-3u}TITwSJy*Mrj>OF&P^5{gi1+Y zodT{i=YhQH(Jk#_Q7y^ex`!DwDgpKpuh~~{jr;!#yvAKnhNy89L4&j1Ctl2%1gd$l zE=2vS@bte2xW+XB-8qO<}c)P$9|RvI{)e>C6FMzv|NquA4o2Mg2iu==IHb5e6#4e0o{G)j-<} zz8){~zybIHTJM6~exME6Q%VR=DZ@SWaT3f^pKY*uiU+%=UaEmk{zkowqC&C+c^RsU zMJ4KG6cv&sAHhklrSxHP#^ADGDkLYH=nKsFO2ZOb~tg zADl$^TR}B@XN?N1Mue`Og(md^kdr~l!oC1BV&BVZ4-$a-AsifB$bMMag6s!wgdcd| zez*lXU!fP2*6&zh^}|;YBK>ei3Z6m%)m<3%9PC^k>lSE@1{q<*aV`&IDJU6$j=EYO0SX=17$au@c&rZX zTpsq1;NtSbTS#$v;zdy*coYo(xjYAjQO@PbN&!zjCP2@U1g$^qZzjgAi6t<%GNZUP z)*qW&qd$P%>H>G`u>vC8DvIjXeaSGlf(~2&cjW~@cjHMQ#_GC1dUSJw?@RmT(R#AP z4s`pMPxs*$+SfqM17`sb@QEg%)4P4NnLWC>LAR0}{KWzqm;hf%cEO`pWRl0hN6ar~ z3W2t6SbO)fZ1d>lIquO3Is}wu8)#(20xZy71KLO8EdaU?!T>r<0zQXH!J|7;0Cf0+ zG3ZXM){~(1^1%Wg+804re7$f4ncJ+)-~qbC(4#q7fMFNtf-2AwT|291|3L;p;{u;K zKVJM41hsCln)A&PW{zj~0iW(uKHw8*JiAZ6RJr=^KPc=V*UW)7C~`nA5mA6FGWO|q zU5Cn8Tx+`vu3Nf1tB-&ii&B1D&$ieHs*K5g@;UF3)(W`|tn%7cwDF z(eCmAT@|U|(Jcr%F{#^$!vl1ff47xK>;Do(&@RYce}NavU;O*O%K=$tr8UrkZtiV4+(&5fyL8Jk8Vy-I`M&}6Xq+RHe)bSI`PmJ21Vod zS032YNg>Eml=uW$6n*%NXZJzh?h8KMw|u%!`g9-g?7rmLefs6U2mfIAwt>CpYJ3tj zHhdFwEnlK<>&X&UkJkUC^4(TGyn8&{GY#E)TjHnM`xt~XqH?)SCZivi#5Y*Sy$r&pj$k+Kvlf}hCa|al%N1= zKB5qR7(U;dqXN0)5p=I5Xr#&!bhh{hkM3I@-7n!ayTXfSpyjCGGbKUCb$Wn~cQ#_hjTas}!Nnuw#Mc*_x7Feh7x<_s{1+7jTMzTL zF~m=Amcjfq3#0)wegg8KD9E^OsGmx9Ap7ZFC&)yYpYDJ{uN#k_x{rV-gF6cZKobl; zoe2uiq1B8V9+1;leY=17bc4E3uHA(Sj@_ODj?JJEp_SlU7AqxQfSULo-G~}m;RQQr zeXM8q6;O~XyvPKd?%FHbRsr+L1+e46Z4iYQhe4cP(I=I#fY}5QDBcY61~_1TfPw;% z9t=U|h+bX_qCjEMm;zdV0tvSlf52y?f@5CeMKtL8m6xDxaE{%T5-(&x+u~3h8V6c{ z3U}xMkltR=yX7#GA?NBs9V!KJmp9y@oGD1Dw8Q|UNz@cB`#SmQe@AF^{TB^|NXx+; zeI^;n(e5CNA!;>VEQ8#=;=AI7NCzkgd{_Jz6$6LBF{G5K;MrZQ;n`hn;M<)HyXFae z$5Zn!rXnrl0}VBT|7=~l4>C>jOnBp4tZv8y`4) zrr~FO8S{q!hxxZ1^yuYns*q>sV&MSgX;|7on%jb`Dr$bCV0_!R`+-OIC!g-0pu#8H z17vY(_hFx29zn;3%73=K*+05}yL5l%pK`!M`$P9($A(Iq(R`GxLah6G_u0$8n%{Cbb%-c?{6F0I{69YfgXjNaKGxrgPIz=5 ze$50bmq1%FyK_L>ib31syK7V+bwa#joMQ}l&H=Qw6g2EF0IsW$cjJR6=YINjzwq3# zdKCotbbm6w?b&_6^ZQee&UgXPt-HtF!9}F!#rGZZ-n}gKKHU#M)l-45_EV6;<|EAB zy*xS|2Olzde1GWCecq${lgGt(9?k#w%SAwYXFAITdV_6Wyi1p4=#Vjg&F8q$)}`w( z=vHD*PS7OOYtXSxDn7j|YZ<_m&~?zD323{Y$N!_A&BvHMt=|_t1P#+=__jVNNd=9- z75Hes?2J)K@a;b8)hl8M%3TRBGSfj*)^2~m%Tz!u`6LDg2CrV8rC?*>J_I@P;;Rx_ zkLG#_0gvwEpabUEJ+u#d{6Bom#o)iKhxM(Z$Dq2k0(3zYXzB(Ol;D9EP_jDX!M_ib zIG&b469;-(2wrT~{6@i{E0fWq`&JjDOV?MIu1cn^3o6Wx2mY}fc);S&@RZ-N;Tivd zUra7s9~=%mWpeB~-tfr&zz;UZhUfMw%%0sp9JpS1bbp4Qgl^n*>P6H4|NlE!>`;Uq zyUxAH0*SlWF``H~be(+>2$5idnB5N-a+Si<4a%X+{@27Dy&j}pjnxeuW92Pl02N-u!Y4Iui=nKLh~ zofsHEcMUebvGD9>@C3C+K!-_zu0``~PT*hw9Vny#N?jT+CfGADcr+ie0HxuV`A~hG zF)HBuw*w$eEnm?56r%^^7HEYRXJbIcf47f{hDSHEPdDgNRu>fm<4c_(Di)3w0g|O! z9^H-#KAoT=)2tm7ig}N_sDQShfv*33%>h#7+wC9#Qdx4#V@D_iuzFZJbCj5Za*zhU zfD7oxg?bki15kqy(ziJMBGv=c&SgL5&cO&uGu<)ZOU(k}55HLL1zrQ@(=F)ReaaKm z0P8*h+QwO`<=ZXcV;Kp)2F_F9wWwo5r6fZMhmUonf)BsbNuTbE9^IT^v72D2QfAL? zMzBt4&u$J6YY&BD4xjE59^DMDSwM%}fuu@a_;d<+bRY8R^x`;t2HSi*yv*|GE;R7% z{^8N>DB-F6(WASP!-M&o4`|Vu%m)wa`z661-6bD5UUPuf#<_cROM~w>^A>o~9uGcU z@P$XWHR#eE29Ug*M{l@*XZLxZ?&mMkA@bZF-S!^;kNQ|YD}ChIDd*XlC-9oXvpG$G z!L!p2oZ3JwVR#z!?5yJeU8s&ya^ZD9sNm_o>7jiPM34UmKr1hO zx<7axe8%F@YjPBv`+Ifxe0y2=Ji4#GC;?w2a>lQhMa@I|oKN>@&+aQP;=zLdJ-g3) zX#exnKIhSW-KYDsZ};&RuAoB$Kn?NZpxUwfEZFs+30@CSHzokh*)PQyK?$6I+i!qt zi;o`Gr%EC{dMi0z`+0Qh`*c6|>=yIrKKuW2%YhORpI&zk@Euy`UT{S|`|sJQ_gclL zxBka#KF@A;&rTK<-|pw0&F?upyTze;N}qXl>Zo`$ALsC}{#Uvd>d<3QXM$@8^vVHL zc0rnOpgtgEy@r8D_b1Qp8y?ypeY!t-9Q?=Z(f!Zk;{Vqw9{$46G6}Jo4%kaKz^|A zc|5w=e7gBPI@x_X`8>MCJ-hk9;))*K?4I3xo}FwSo%|l%Vqig#Vh^xl50GL|Q@k70 zR{?h}LFIScVMu%kcywk+cytyhcyxMjfUXCJwC|eVD1iHTk36&w`F6kXIQWCbv-!Xe z&+apx-8VgYZ4QCj{&}GJBG8>=*3XNbJi5hwddq)6T~%rXjyJH&OVvEP|M^-!E4uSq z#sd^HV0V{_dVpdUqJq<-`51?%_1B{NKHcAZy8pj6MAEK^@NB7^r}eiI9?xzzk8VDX zPBza@KCsT_V;sKLUyDxpTK_3?_3X|60k+4N0TdRcpd&vSJh~w^sdzNM=kT!pTf*nj z?Fth0=w$ck^ko1g8;|C<9KP1iiw^l(|0&h?wf%bNfH|9dtc|KV%>wNwXWfsgfnkOl0X-Ta;)^Z7w1Wb%77zvBRz1rp(V=?&5Z zi#pFv{+DLpItVnmDI>G%+P+jB*s&)^bK`P6@@rN9DpcMxi zp1m3WJudzQCD_gol?>nRm!NV1RGggxRTS1&YxO;PZE8WgPCUCq{{8Um=J^K-uM%dD z|K~v|*t3)6n@9I|59_}**FX)73=iwSrNWNijx(0>dUw10`vFqm*<1b}RP1-oQ2~tu zdv>4m1(gTaKRes&-2r;;IPcSa)I%Fo3pYRf;bDESRs?h% zivnm`s2&{eB`O-Pg+Rfq0m@q0V6hsIfyY6HfjnRfTKT}=U-2JwX3k+yi>~|Ji)Ek% zF5Rf@-R2_(@rOZcR6zR#&b`q7jjW;d-~a!w&w|<;oiX6+-95nDG84e($9Mk(4P1cw zsuw*#H-2@xJ^)pspqiP(qto?)kEMq~F&9LsgTQNEkM0Y{U0;AEraZbCKq^aaHdKMH zyXtmQ@U&zo;`HbgKIY89@VXqi?cmN)QsvR>s^HV_Ao~s2YF?C-D ziGuC~yYNEsC1_5ofWrgS6!Pfyy#X3m;o1d0oYwdMlmGkzt`9&3Z*S-WkM8rI`RiRD zym)92YI`sra|X3N4tsRZQ2~!7Hy=p=9U=ch%Lz1A11h&UKrMgJMu_G&4xXT@|CR^n z3XBt;%@vSkKOCOj0Rk@$HiJfQUVvBr90$#|f#XdXEDDO!){`YX9-Z7EkG=%osNfW>-2=jOVo7=XrTEf{u!2A5tme0%cWryD%7W#Q4e2kcCr-X3sP^66~> z^SeaPXM=*qL*Rw)y>Fmd(=Y*#=0lA9;Rh<%KYQ?N9eOR{(S6F};!BV2L(LBuJ-APR zL=S%Ek2v7b?PmeHOtSSPMCr-bq8{A`Jubdze#q#-eGsJX#Ap79lb`wH4)W`>@lQX{ za-hTjlqg>veF3_R2*m7O2O8r%>)Q)DR|$Ms>A4r`P5=J$3ov}W-=h-|`Y|d69?eG_KxG#w_&s`gRWoH6UbMPMf||YHya(xqfd{TUx_|BjPb(g9 z1Fd00EMiyV4?n;!$gl&H+B%&%I-PkudRd(d6wmJ{A9Mcn2&Ax(L?TTi#4mPV#6u_+prN8d0FRbu5pgTv!0aOx# z7rud<0`|8Axcdq7cQ;cfqepWh2LpIG4U$6QzC8Kw(G3m-3sB0l0IkEQ{r==X?Di;& z7x^F_$g{ov5+2QpAl*6`{x3L2K!Jy4^W;fsPV?VR#69z0h$` zsR-`tfE)(S7og>A;G=#OJUYSSq|J#E4B$iFyF)+=<9>olX^_~9O7Mmh(9L(9ZWbQh z$2>aYG(hGVcy!hofP4%Ke2}>c$o>UgoZ|!X@j;Fk!LrZ(Pw?oBm+RgFYYwL8H9Qi3$uJ zoq-aNHYhj=g5`Qy^V2~In-N?CgA_F%6!7T2<=K7F103NU#-PGA-T<1nz*7{Ubb~bZ z?a2Wuq-8vs4+^}9y$C8hy}=?};Gy#u(|$fdn~#tL`ArlwS24?&fngUoCc96+XjOzw zIDq@fFaCoD@?rKM^c>s#{6BoMBM?~+B)@ZbbY>vdU&H%*KE0J39-t9udE>Vp-O{fU zJ-UlEK*yYmf=aQeXP^Jyr2$Ga-REBXQ2-6fI14yfWJrRhU7R^y^Lil94}&FO^TQk- z-8UR8GQso1j2_)LJ-SbT9 z(6Jt@w42YPJCXwwj-_fo-Od8wS)X$+4E}*iNl>rVqg(og+4m>^K}t&QdUW%Fda|nD zpZxbk*XjvcGkNaC*T2YGe}98%1$C*que^Bm4J7Sv0lHojGS&9u#Wj#vufK*zXTF6; zXTF0+XTHaaxljN9_w43Jb)F}vJ9z%ZL=-!wBiX?Z?m(k9-%y7uUuJ-mgXVh`JbGC# zCxezm-1O*V^ym)M00$!vXcK|Q|3feALC$JUR$%Zr?yLbS0gpKgfJTcH;PZaHtio9^ z{of8TmT>I?6?HG<|O?lS`Niu-i zpy2Iu%Ai?159?q7&<0l~k7j2Mj@MD3Q8@!pi6yf1>HpW>pjMp+187}$066GfR4hQJ zuNG&3nr=QS7B5UKpZ=dDWIR5a9dUH^d_KZh2lZPcE|D*$;{$cYQ z&^}rNk8V$k7wm!z;MK+_JerSayaY9&!0`-;u8t5D0Yvw)@eSxOS&wek`^nJQYf%C3 zFaa%)_fZM>=BU8T-x|jas^T04jBkV2JO^@v7Q0n)_;#y%c87C#cDoBeZgK!!7tGAx z1X2zPF%OUKAPx^`3-`s^PVlla(7L+TOZ=?~+@O6`;T#^_P8`h@3jg_ApMVFNK6_Zs zQ30Ln$lrFEk%3_!$oVe4d3+wdE#Q{2NAn&PP{{$>APEt1vXC+0Z|w&~GafZ128{fz zSs+E7b5uYjnos8%6;L_ZF-HZIP<^}4fo3^-r$B7!?E#Cvm_7|OqS`q}1yrtqw15h> z4#-8!zP)Ztp3Nu!dmw27Et-3g1k&Ww%la!Clpv<4fCNF|04fb%O!NV-Y-s_T55Cl; zM+MZ`d$Gq9bh_{bkU~)J`UT5pP%59I0zVWIa?}`9wcV#D|2;bAsDP$cLGA*n>X-vI z$)kIU3OGN2)@i{sf$ipmY68uJfi!_sbwKaj>Ykzk@*6mf!Zd*#{^H64qxr>pb>yxQIlwS2G8#E|3!_ZWf)oy@VDB7Vzn1^uW56QN(CrkfY`mF z?}cO;UcB;?WN1B5>bvsp=-?8!x zFZjT=@wY0oGcfD~Rhcg;h_T2bzyJ#QHli))*$1=W9t$kSZ-hf*{JA(J z#%plorR&l13@_$+gG0@3C%C-gA=>7u3ox5gK=bZcBBcRjygkHtn_iEM7wgT44Y!F` zVTQBgFkBmC_#-c{+iiM15?%xmZTOedFvC|dgVt_>3KrCCe=ka&;YBOhaQ@a=%nS@W z!G-sGQ)1nJ@eIrgcV<|$+&wP~DdGaeAkhNK+}JW=1;}=Gi0v&hIGmUaQuN3ZALxN8o~iA$JZPF&Xpb>do4kP}Poc7iI^7vD{Y^>=R#%us*0p_MR0 zBTx)oM6{tY%`iiMfiK1am1-rC&@|2rG1R8lBjSZW(MGyf!HirEH_{Mh9?u>>Q3QnraK}L2HQ(;|P12ghJ11ypj!i?mA8yWB-glHr6 zR>O>312-}bX5?03u-C13f?8uQ{u>cn)m1Km8u~g4QlHDfOiYHD7y+ru)}ooH3F>zk zfCvqomA341sM*MsHV3rQp3t1G@Xw>WUH~*04>@uf))r5A@%{y5bgIn9+rpNk6piW0G zR9+K9z8^)N6GJ}#5oj70awn*QPp@ZzNB6B4m%x2Oc;6AUCMZAv)LS+1>GS}N8~OBl z2zVTK08bLU039sl(G5~<0J=gQVwQtPw~I=FPj6rWsM%%U(R~Ya--U*&@kyV~5EX?N z_d)d!Sd#-t6L?IAY&#NA>~P%32(hCY!w#QL2MLeP0D<68P;b`3qx+Zf+s=#=9-Ueq zomm_nomm3M9ZrCHB0jwi5+1z)7d*R9zR=8 zDh8#S!Pg8lg90A4FAQ2M1nTW3ZGQUyb(&AFvxWyK{;k6WN_aiH89X|fJeu7(Kr0x! z&%cPB2I@)>JEV2PqZ{nTQhxAw79)H}3+%_z$sWC;4Ilsi2h~RvFRuB4PC$3(@X=-m z&CB_8bAa8^&HrM`6Hxeo1`QnIW1|nhIH3XVwu1Yj9H2EQpo@?l;rq98R6cq%z5zA& zK=+@9Lc61`|6RL&x^(!?2hGZLh939nPA&K8OkM73{MMy2cd=vlT_4Nb`Z96PZk{_Y zo;iWb-@E5M{vYC>t2)0xlV)0r=D+;uS|23_MldPBE+bo=JNNWBYkV(fMg z(6LZgJ-SQxdw{MX%>gA4&<)8R0xlMr;6Xr)NCZnDN1`igB!cBXdRQMT-RjwW6gHwE zjW(hY2C}L9{EImoL7R^5@wa>g%{TUf*7NbXw)`()e^JNC!0?*&MLSrb1BXwyhG(}g zgGZGQ6#*>`>gM||%FYKW ztxKdmx_#Gs{yz?y*7mWktuH#~YW&ut^<=3!=qAIr;HZNpAvSmt;s%w|-RED3Pl2Q& z7hD6QU}?$Il%{~nZ}eAmBd^TCy# zTpocU3v}qzf6xHQS8z23>6m*o9swmB(5w@9#yl?e@QX;br~l9RbbE5R8Xo{{_3L)z zz;+jhi-m(^$qN??N6-kab)Z5Kr>FJF5*D9sM-9(z(9p^mkM2P5xXR1*|G{I@;K8_V zPm7oHp?uKXDrhK70=$MK6gf#R@MwGkx_rc=o3%CwmZT$mx?h4XH~8n$SpqsN!BN7a zJ3_&yvvh@PZyo3Ws|_w4r87KwMH|6|yzh(`Pe4bH^!m>5Xs+D=>frj$@aPU*@j^5m zG+TGTqZe{*9$(tO{~p%P9FE=hK&O~Q7=W*u1dRefH{#5A!T#t8=yuo@KAp7?OImO9 zw_E}>9J`|xz*`xQf?J`_d^$@{_;l7@aOo)B;n6EU9oOp4% z803y0yFe=)Kqftgif;ysfAHuPO@x^v0yd{aei!H*V36AFV6`AyEnY-}Y;8Wz_*%oG zIaLF66N3Ri0|Ub`R|(Ka-$4=35?^157e1<>b-At*&F7gqYe3VzsVf*fno~D0fCqMb zXS{HidisBY!?)v1B}UE9|AN(YhZ-P-*SbQXnAxZMfRFWo(sWnjZ$6!+ zFQ5tXgG)#04Ub+?jbLyj+;|bJ0vZe9&bI;eG~;Q`85pbMOQ zyU+P{Lsq$+c<~5a+I;Z*f8;e2C@5-FEI@hO!L!#l0W@$0o~5jKk$vs|f1l106%UYP zfM>670Z7urqc^nUh5t3s3}!cm|L=jK`_2|*fdfpdSTG@jJ^SdEM6eQ&N9ed08 zJvvLpT{=qtd-RG{`+;rw|H4iQlpB2idoc@k7g{RfSqXC#8M zsyBy6r|)+U>x0OJl{j(${C^R37nD*;5q5zJD|yf`v1PFWe~T!H)mf_V(OGKl(orf8 zN}qz@j4A(Ovm)e#5e-Ia-{&tPZ$c8SIkKJdFP_~2+X*++ z$FlS}e@i+e1H*367OU>lFGSQpNyzm&I0boh`@RQ_46=Oq@5sTg;rcv{zuxt_Pp|8B zkUiZeUi^Ca|3BzBxnmyP+rdMn(3$7fZzUq2Lg(AG=l?<5U%Jn|Xl4P;i+9Jq2baU3 zK6>-{|J}#IQ^3r}Av-6b6TSivVIGk1a!}(CGC3T;@p2}p0f8DQuYJJrBmZKa0xT8C zzc_UrtM{MZe)1pYQEgRFpYDT4C&aIk9=*Q*Us&A(EieLY2LicX2Dk5oLGls^-z{YZ zO+5M9gX(Te9Z32GB{t9QXbsQqVgt~wCeYx%LG((Ov*u zg8E`tJS@>(043VZahO#r+ASDsZh=z{^cIZL3*cDX4jPl{E>-}a7PJbq1HKb<-+k%{ zmyXg69=)RF5NB+7!6Xlw769K;vjG%xW*MMda>Dr13x!ND>&1h-fB!q%K|N4Vjfq$rVHMB$}_xZk%I;F zh8G*ILQ=*FR4dNjMDt#+sFoKr3|&DdlVFBnSsYRro_moW3kpLw4$p2x^8_snGtez* zyY^u$BSmL$)Hg@Op`BP!w8K6n91H~ zCfCDF&V-t*2{w5TxR6FqqLr8?%fU?k2x>VZr43cM$^1~0&u4)`12jj6>1O$BPyWM> z=RK_kDs5v_3J^tYHF%>~oMQ~Qyv=fzXL!Nt_7vJg*zlt80;mY+72W6p4Zs(!PvMdw zP{}JW$V^lB;5@qle6+I%zq9WKkM7U|F9f4tc@~_7xFSJ$)|sP}#rQvHXGjI86NFZj zFxb%x*WK&UjeG@MSVegJdT5k zqZ2P?fjc)hUW3*kHm5FN@a;|K03BNmI^7y{JWJOVQ0Irkqcc*&qq|!9V3u-qzfZNRnJ**FwIC(UuJ^*?7 z#WB|lppaed3J%!|FWMx)E#@%DBHRtsJXydJ%xNsyF#;f0_xvd62>f;`?Ustl3d@ZysbBGt!1CEXyB7hYTi zNqTfc1I->H?R(+HUKDZlv$*m@?;4c{AZIteQ2ZBbfzkJ z9CrmTeRAnY74Ya4je$5s;Kg=PaI9YT==BwN@#qXFQoBRJ>!c-abO2zm7O zg4*pbWYR!q6?CRP@Hp=J0%|Cz)hPin^uh~aQE;50H$YrML2(8OtP7yPascfFH8}|m zEVP!A-34%5J=g&<-J{bLd<;Hl6{rJfl-7g4ewu0s-T{=<=JbFc2AqEz_FhCes@FE&wAmr?u=3fH*O*&wsd<$MmgBhTp12q|5 zJWPQE9cavj1LQfEj#SXNO)A9P4=-*AgM;paM{_L)IGug)=niFg!5IPyI#4h311Qv( zg8zZ<6ZP!=0!r=$plW~vJRZHg7eQ|8eV=xumz66aELI#!~+V7kN1K#L=lz{>4CtpD-19{c_O|7&}n zPLwi>(H@-WC%otpd7&8{o^9)LQE~9?zUb2BqvGJ%eZjZ;PzQKN#!c*VZVDdVLZF!(&`NN~ zvhIznAS*ztM?q6<$r=pM<)GmHHIe&dW(I)T(CGVQe*1$&p$QyqpUfl`PY`0ky-xU zw<|H@q1+dDJcv&w6c42)G7K-S@FUK=YHT>4L=8v5{>2*6%B-} z#*33++2&=S+Lghhc^RmBW$*;8qH8@+0^K#j?$Ox>k_QWSwt0zMw zuK@Qsl0b!Zuc*sWP{rXb@Z$WYm;YN1l(>5|r(OruviCu?>@nBlpgw^-$hW<|$6plj zfSUus1|A^ZoWqc^@jj?%=5OK!nb_@n{N*2Tw-&5u`HOBgh@$PFgNA%P6hpsz9CrmB z*}>2e`rM;e^s@~psrWvBA%|K%RPES+d<=HP2M06dw{o|uz7U5alB^t==S3PO|bX6F88oLQKAPr zmlEOx_80d-_Lc;7ykt9^K9c9-WS$ zX2gE5G9Hg^-{l}jZaD_3ARt#xOa-rUjpqPuanV8^y)BjT=oSX;-x2D*{(=8sFc0(f zQckE)5C>>0RkyD?sD6J7IYENK zr`JKiqc=d}#S|ZKlJW*8DNurQ04FK%M1{kPGM|6{K|80KL21ULvl)_Jnjz^0v`7O| z-}JJYT7h>2LH7oLrZrH{N2~MzZ&;UqE#}efZ2+q2xjecV!4q-+1;Eo4_e-C8bk74@ z(0aQBBN!mtnBW80pkM$Cfi^MuMR;_FCBXJxL>&e7)6*gtJbL{+Jet!I7(ANOG8kSM zRe<8!PXgTg(gq!g_Tz;fL@j7~&X2>RIZXkiR)Yc5B8KivLu`kC`LX;TWKS~k-UkNw z-UrZrIndgQPj5gSP4vAF$a>EFgYB09O%8zc?8B$$7pNNU4pe|8AWsfZ0xCWN@@BFG zgGcvikK@h?;Oywk!SEvQ-~a#M2|!-x=A_dv;=#rrhIk8d;1+1C1=&p&a5sUr0fOA5 z1=fV(4^TRa;6T|c1-h#u0kq7b`y=FNnBF|ly-T3uVfa0|!v$U}_WHd-JZ@>Q(?o{#{S`5`I-C}$0WH&JK!bU*Ux ze%YM5g8{OA(KW)S*A+DL7XcdZ;5zpI|8ZCF23F7RQVx%9J5Y19B?xrRMsKWxPj5Zw z$PiD^89YVIprZpoA?ykcjuXD!$31#OZ-C12)ovh$68gcVQ&e-pUKJ>t=P1oi4Wcstuk0G#W*I6R;` zi<*D16f1&HP4ws${q{u~w1*0O!jnh$>0`_cFUnb;{(sF4J~Qz2iy&}C3M(MN>(L^> z`wK%syJ$e$$$K*vdNjTPbyfH^3r_HBR_t)$*K}Cn(aqXr0BaKb_v!v<{NJVfe`oD> z$k-idXN>Ru7oS7Hg?8+Im)>*%AIsG19{kR+`#pL^)l5MHW2awe$$uesqejK3l{X9A=B|!JyE&uuC{{+xJhwq@X9{5{&z~dO9-#x9b@Hf?iIG}Y6pwsbAzvz<%yR8Mhc%xUe8e~QH=@;ctVFrlm8xJ6=6QIJYKpDAL zG!&}Z6Dm9zB76>Nwh>gg1|qBtRV@t_PK5|7K!sVr!lf>tL|Vdu5<(iD;AViQ!i)8R zpuBVgRH>_c11&dV?KFl2N@pAgI1FC)LX5o%67N3!Vyz6wgAik7aT)6n1UL5VSFo{8 zAnl+dT42VSL5%GJiFcoV5e7DvzXi0u)1z0k87gcK6_y0$>0Z$asIUf97`$AfSJW|5 z7F1EZ5QGZ91~-pH^AsWJ<(D+b$^0!>Aj0WT;m1(ny%6C9sPGx6F!;2wUQyWuh}m1g z!X=>bpg6D-8vY6>d(y3f40 z$_9!aP>BUjz*_L=`2gxZX?y^cdaYl;;V1>NsFV3KzhE(kNB8fSpBNYzAf?;{up#hV z5b6oKL9g4};Kgc~A>JA<=KKBo@4~Nfz@yt+;l(7d#E;MXf~D(0DL@Hg#d1S%3gFi` z@5nE5;uF81A4j+A`c5|ikM4gjo51H9o_V2!YMUC|$-aUA{&#~D)aB1$7i&O_gQcg} z4xj}2m=)w>xMMZp+W7+i{ck0 zc@L<;310~Jh6get0V;uDBNC4M8pR(R`8BE^xbkZ_UjS8QpaWSzcY=Z!d|X5< z__(JHE34!^LC0eJ@acA~cQyXja)}>2>)>NqD8b(fYMlFYmY#R)jpO&|jJ@vCQMw1phVE4*O3Ep z5u;}(!;7qU|Nn!gPg+4YT!5V48v)XX;`*llPe2X@yPgT;*k0fJFCtkWu779_O3R?R z=l?G*!iF`wPrPW|25~)_+ZOEtyB=f**lix&p=kbVfT%$B-*w~=*#9DK*OULo2VNcq zE$09QeGBNsAduU4gPMovVSnTw!u3zgz+r#?#cXDX>tBNez+wOYg)oxqk8j25`X@UH zx&9DD1>E&7ZU2KVJ17BNDZuMH4ZOX!ZVGIBtpd15<0}v9-8gW8kGTeoDS{5|jRqYk zh&?^}X;PXVH~d9}$puht3R=F>&IAdQc8~x#OzywG9TU!s+qTAB5|RK#m2a$CHc@*9U?Gz^?xfJ_~vRXoR`@#EY++ zA+ASDk3wi}!%UAKwqy7YEj^ywPD*+-L2`WvsE!7?o*U}=XpjKZ_06CGSg7mGvAaG5 z;x>55V!GZ4q5>W}DCzO&bZ~lnHxZT|Cy0QGV@P`3z>X_D!q=s*QPBV`QEq&515_<{ zvu;&`Cd^jQ%)4**N6-d_0PulApTG^xR`7Aeoi3n_0j(Y&O`R?(79QQL2~f6!M|UfD z#us!sn5!}PPKOe=t;6D5D zR?xm1P+8#8u@~H_=?(!Moze?pzu5BY$^QwC`#}rdK}Xgbc=S#MiG%8yOxJ(^TMm@6 zx^{hk&FpIQ4b<){k@4uB3NjB|20- zmb)$>w>a=mIquON8UeN(S_L?~h~4_+zeCG^{?-(B1_p2stG*TFB%e-j0Qhv)2EZ(U znY|Cxn1w8v02}|w3Dh#X;L!^S6#WoTTN}foFI%4ccj*8hzva#0q0Q}a@F$B$_tXGT zY*}9{=Jh!Eh{c0h*rPL;6@=XPxcS4`b0Dh@uNGa)^@ zSyY_5c{)70*_^s~>{v?B-$iIQWpogPGfzUx0<_Gk-m! zZ*MeCkgEeE+0+*Jbf$tG?$cePVgWwf z(>LKo-FH;CZ*qXT-Php-n-^AxZ{GyU9|t_TLp?mYeH}m}R|kJFffjAFbb_kxZY)vj z*3Hx4369zZN9La{*5`{O{h)E{(G8wT_0R?<6;K-UOBQMLvA)3Hd;oNa`@u&nKFr{( zjFt)<`31mwaj`yMwBGao0Uzr_MIE4VI$4kI&;XDNn;-po@o(c3$kjvj zt_~i}sR0Zxvmo8IRDDoe=lqMW@sP9-4NePh`N2aM=)s696_|WO4ap39L`bd(z#5Xd z8$qpFP%!@T=yrAR(Ej0Z@IQ-(^|E*_tOj9N%np4 zVzmxMhoC<9q`qUAsP-GuUA2`K-8Rvjd~`1cvr^+qt)`#QX6bHnO%^Yx%fDqjyz z(Df9c{0BNbhRMVFc!{t_FYihnd4?BvJVBA$?d$M5i$DCNYxi-`2A}w5%m1YUj@<`5 zARhb7U(fN{3N!n8Bnx_gav!Mk4OR`R3&0r=su7a!K*y!AIQ~E2X??PEDKyc5Dpf>& z>syD&Z=gcRqZ=G0;KT*$XL@vl%VkLR{O}@v-IM>XbCDAKKG0H8k6uwRc!Hn8ij?4A z@UegruITPbvd|n-3Yy~u9pDDZFz=W_@}R`d;{ghfUf%~V_GyB|d>{N5J#bl?!K1qu z)S>}3(`WvZVDM->0&4MqCLbVss-j~LgDcuzQ0x80HK=>!v_TorH{r!mkN~*yoeEL_ zD*KD9p{dU|;f34^28IcqpriYJ6JE>&srBd;eW(S}3^A}3BnH+W3a&UzVVWV*_m+be zQbGC(INN5Dvb1WONo#>xVkckRkAk($ST#T*=U$uzi;&PZllX|UZFbfg)E*+XZDzd& zRQI5@&FVBEg^5`dq%c_vE54TyZkyG804?Bvw#^*DZo%F*JGdI!HuEC7ZKeb=8xp9^HE(jWXC-j-Uz`(kNqh>z3(o>}BD$K2faa(<=gQ zm3eftId=0fd2};>0=39MLrE+re0zgfJeyy`n`E~<{~rW3$2NnTW4sv6v1UkfY?nGD z4vQinaR@rY3EUieKyrn!`WnS^4BYXs!ZFQw&tV`XEIpC@vwbFm|_Y zlLlAjkFM6|ibMS1aS3jP`E<_(bvQh=4}%hwSF%l`hxHHs=AGcRh%TTDCqV6RaFjdp z3$XnD#4pHl0^9&Q1a5%2TAwT00&Rfxf-c2tJ&9T;RINa*6JBOQnqZGqq46IEiGQ-1 zU>o0{hTv0EXw3UMym*PdG5cycmL?c8t|pj{IH>;V73EO|72=?pg$Xo<1|ALsx38*C zgPUL`n_*3`N8pqDkegr;U?m{EWsa~~NkbV{D`}lYZi3wdwU)X=171df7`+rU!N7M& zLYiQLV6#LER3IVF5DE!#R#+4456L;s@-=F>=bAvn9a7Ncd16hx`OBa=4!kA+)DJxc zDd^y>FgA}~mS2eW*C9}v1cfz9`>P`ZEz|v$B9!Tn+Fy0AP@TTX80vIT|Hl@qySFce zx4(S4T^%3=Fu47t?9t1ssVvX%BE|s}v!Koqs3F}3nt*`xLtbY%c3=0kK3Edy*lh8? zl)L+sM>n%ir_G7ihR}wXPdB)!<*5z!t#7h~kM#}yX3#b|uv&0QdkdWHJev=&{6FMt zeXw*h$Q{0|2TJ5Y?R7{$7kp_N&r;OfhPMUwAXCP37vo87YJ&Qftp|TK8mFY9>-lXKx0oX9i;)VL5YADOP_<9T#$q3z+3KnLA|o` zFJg^g?X7>Hv9SM+-;Obsh?dy`o$Spwi>?i$ejB(qj_1&Gn7Hr4!ud0uRqYb}RUFZUuE@T{>zDJVAGM`4+t3 z1i8(lH?#n>Qsayv$U*#54nxO`kcY$yUU)5f^1tOae`__o)#V!C(^;F~(+Rc$i{WdY z!E-d&{0I85^bqjE!2_J5!DCaX_B>h$EsUUJTT{U!m)+-HnC86#?JA1!>2?hOHN|#A zZ%xtyo%8bjrBC-M&x=1nU9p2N?0uL|_;z0}DfI2W@6){(G~VgcouXm^8sKt(4scEI z>}GfB7Mak?!exD;*xIAl2Hcc#0o}jh%FxZi?$Ima;L*(o&gaaad_K{++l85<(`6!u zM{hlgXY)HokW)%8c>X`+*?gGC*ZN}7VsP6Ee7Ib9XaXevzuXOJSS89qB1+O95>e;D z5%q+>>}q|dIM1)w zW-bG`-1d#|=`IZb-w$)xxo7u@ z7k2aEr8z9@ULJ%rpBBqNV%gXi63hAESpLS}l7@(71D{S%K-VU~V>!d6qc#8%%KW7X0F*CR=)hvx;01>(B*4+ih_&;;HKB!P_eq~_R|72B1GKj4;(zd9$_slB<{uu` zdqEisZEVZq#bsVd!)mi6q@wY7vGOaZV+QIx`>1&Q7gah0Zdl!3329h)yy*N2s%aqE zv=^-8|3Q!v9~F-mvKEla=E95fkPUPf{)=8b3~5+_mhbVm=zxN)JJjLjByeNM)xg90 z188iE&j+-I!Pfw^n$o8ev~I-J!lOG(06aVgnj-HEb@1sv2wFlF>HyAlkC+%3UUq^G zD(DrJm4?K^T5m`!fLd+fPD~&ZY)qL@UVHZt9t+^Srlbvvg@6}L&X8C@OZMt>apbkC zOuTswR5odV&S&oRHF!~mX74I3n7sur{uyJncl{ht?8jDkb|3cX_AT%PFEwKFum(^1 zltg><^2$odGrR~e2SrA=ZvkjLRtcJ_A!9y&US!X~NYWnNz5(DNq7G24*c}R98VS3} zP3z@z1_p-aR0D?QR1=2gR0{^z?(0Z7-1;p zCw>7}15iHfaOte+-~gRvhA(e>CUbgNpW<&;VPs%%>^|hv%i@V#HlyWe&*p8sJ=fvILQfK}$COcy^zBQ8630m#2bD9Eg{@4|{xng;Lsh^oj&|9DKy|!gThN z|F3i4BV`^hrf@;B&l?F?_R0DL&OYGV8$Dh;`2cRGO{|Bs(>z{ygHFW-oyr2rIxmib zr9nC8u?Z-$dVMdvmsx zd3acd1wc>#cJttP%?D})8F=*iIlK_{1nrwS%;9N$zqA`{J!r9`D5#?L@X)^O(fsI# zNB8L$i)Mh++cD6x(g4V&>udwh?qcw!>v+ew_`_)9m^mshJsRJDT819otRWoG2DB?X zcvktQN2l+8k8am`kSi5l%!S;G!McI!a*uoTib_FDJ^n%$Vd`;^ zsfntfME=90I~2T;0A}j(7X=VguX`MK1@A@x83Znky(3=C0M7zk_vrO5c+sE-E`1M! zmgs}>--qYm{09m-l>Fz>E9xo?_S*3mI_yuOd%TXnm@$z7d=Cvq_=9e^)c}{VtXJ4z z;Vpf$DZuEuYDJM$xa zJM$BKJM%L)aI`w=y^EiAu^8|c*w}Tw(+o|WAl{wxyPyaji)^fOXAMXv9croR<1j7W7N^q^uYP$}hve)V5 ze~_wpf$qyMa-ixCK-8U8dj`%g3O>EOsStJDmtVL;6wPm72Ay`H?bDgf;nSHd;Mu!> z23Q1s44-fB`VC-_+zG}9JUd+(JUd-EJUd+le7kE@6nsG&@xOx_>z%GIJdV450QKcM zTyKE(-dMaqi3TSU^uLr+J zr|$=lL7lEAJUV?Zbhz&D=oS6R4K{Pfix!ZXKHaXMT^~C@hHh5^U2+cE^4X1kfZ35L zP-9O(j0Kz3=?Xf}NT9>@hexmIHi)r5Ug+KgRW-gpJeq3-1VBd?fRaAPi#SP;i%ejj0NLl?3)-5AegahF6j=4>q7nc)@2|5)B>|i-d{hEn)LVga6X-S`OBa=ZQqV?J z4{mve7v~NBL%S6&Di%JSHK38o5S0qhJdni;J8&DyMa99x(nZArtjQXrX_f(K<38vL z9&HyD3(tc;m^`}u1U$6)Jomsld7j-z(A)ez)`!aE;J1B=`dA;}Zx01cRCiwh<@dn9 zpfi7bR2)FJp;>@0OM^9DRza?z_3U;N@YH7W0NH1Kp$u_8qCIHZtsQh;4QMxS%o>P6 z5g>yCus8&?fWyG2o86<^A390EN7N1GH|&1hhF7r=2Ks66n@B!>j|<9wwlbB3z)Vp_<_t%(~Ma-QFB8l)%=3 z7KwoNJZOW~@ErWb1on<^w=08Zw=Y)zcy_zOEC87ep6xL3>^}R#={wXvzTHPbnqS;x zdiEcb$1uDCx~2G^NB1!gaQE#4s0C~R>IFJ@bh>uNNBcwX~>?wRjTdG^0MM8(AM|8Z!bGdulfSstzUBR>5fsccx~+1 z&E0+Q`-Rq%;BdI;)6MPC&F78Q)8 zLairD_&j=fZ?nrYy!fQ^|375w)r-w?p!|OUfeF~;QAL-bE4P3tnA>j^~Q@ekXZq63FLd@g=iP3W!vk!EH28+ z2G+OZMF~h6bcu@Zju#I=k}ujWJ^6p;MFWUDgE0;XX+wc(O^zyJI$i&R zhaNwAbox$5w4oxuLfW5!te`d&8~9kevIw8fvIL*bvJ9WjvI3vZvI?J0@NOZW-gS^F zyOhDVvy{WPvsA#NyIR2mR8@hFbMfgcJ@0Yc^*X4k02?= zq5DCt`~(?Lwc^?jTGNd@=C=PuULUAkReB!Qt^zMk_UQyIfp&!~f$kOUQUrDQeeb`x zdI@gqeUP!7GN1|tbPfXAx>bojXkGOlQdfQNaJ}!*>AK#d(|3D^>wJ%1(Pu1Rr_O)T zh%j?L$jq(MpwxB4qdRmvvPQE$uIuywPpgj}dUG6XEO#A;I zZcaS1IpAKosz>)^aMKyQvGC7}t34p^CKoVxG$&Uucr-5tNiukJdq;q5we{!@&hUU$ zYFePKJg$yv55%AdkU^lGjL8`YH>rS@n0CgfpxsLf+T-cb%Q}k*luQ{tx;sHlCu7io zy`Y=BCLaI|+(4bF2Qs~LHAsO+=jt6GnaN1CCK$-E8Xnz~SAb-odVY0-ntZFl z(w(apfMhyXgB5glgBo%$Jrh7OP(8;Wdce}1t2;n4ovXnLdb>d_M4w*X)iTfigKu$l z=|0w5C(wQUh2Ry?zRYe0&{1f;yq6b0`R~$wto!CV-V?#gPg zf^Khc8n;AB<9I^xRwu~o*##b**%cnJ4kaYr%Yf58)V@s+brBw&*$Ez<*%_dHtdJ|i zazG28OH?5DO}@1I13Jh8yk8Zx*%Wlg+4=u+44_rhpbhq&UwPHJMiUeGqC^go3I;V0(yo9`@H#x zLflKg-*Eqe&Xrey+_7fy8@6XS0+hVF&%fx}09u-evOgD879i>If$ISU0;qTnBdBK$ zTo35#Baj{?f_f6*dxyaZuKWCpck40S*6nC<7_=81a_)7GibNRb{MhC<3Ld>1LE2nE z_fE@!PT)L#^be?DvyS87Z(RxY>_kxHd1z0Bc*BpQIYq^R!9)AB2WZtSXoBMZA#l6h zqnBkeq}}c&0BZ0#cz{=7Fo7DoT%fLn(buQ2hV(hmM*kN#zk{x-bmQ>pZU@@|y>GCa z&C~isiA=X(X8?;w^8t?69L$290v^2%EFR4VSv;*zl)m?11b4kXx*?Z=cFTc|4(J4D zHSN=&#oPyfGQCy;ouq#8m1i%@1Q%KAt0Pf*{FJq67JAB5Yw-HpJ9QNpSbO48CZzCu~K>Pv--!TG0 zH-gHr!ydhjpi%=gZWInW?-YKLp87XfL+1l%dZ9CP1?Vt3$L1d#MLOW~-aMcOP(jap zW8Vdu7x2CCV$vy4*EICPZqOcq*IMAS_dJ?YPcS%kU+`!?#Nl!95vvFDMUP(J4KJGZ zgVk=>&BVaK&>6eHqd6UP*mTqBm@0) z>1MtE!IS~CFo&W0mR~o^0jF*jMoZRTuS^;0RXuvW6`Fr@c=YmkgJQ(MqnG8pM=$Tu zSEdXe{LTkKje_{Y9=*J0UYRnyXud4L&}@6)l_|sj(qkUIyz{f98D5;b2&$%dSA!HV zU6x>Yy#}W{!m+ty63iVsSlkhd?v50YHNP)`+z|nHM=;18ZV-1kgA`O^vx0 zG`|7e#3=j)mL`69G^f5`@Bo)Pu+bEcUeR5@=+T@i!Qi+bl$3lrYZZ>Ua)6e4&zS>m9do?cejGk+ z!~t^mYXOjxKtnGI$Sqlp7r&Z7UQd-^fSUrEL;=kV9&^q{fTo5F;%>Mmm5@0UiEy{zZ%+$O)hggdQ&#B>sWNBfC$(a0LsWc)=?E z??329azBn2_n;>C`g(XY*Cv2RjXXTMLnB^ju)|^mbjSeMXOh*R7>VV0EeEp3+u+3) zuuJyy$5JB^2KbP%5yv1WE;SR6sH8*&U4-90wf$4cf6-s>)D*#E+~P&udr;rKS2PWzxEFLuX~=cZq8QM&EFTq%|DscufZ|lN z4K8nT{mK7b;3Gsp%KwX&Kom@T0a6DtKp31xK&+jT|Nl>Txez?Ai}1fkuc*jE8BhjN zc%ckB0-UB5Ji0>-UWBlKq8W5(A2`H)nL%e%x^o~O+J_d%ZuO{v?Au$% z;d$^ms}J*U(E0D1r9l^`z1VX2$$yX5ZzT?(d~xo@U0zuHf!Zf8>O{a?(75aTdQkIb zDyVV=M<#Ud8(7)xx+niVd)*W~ds*B(dPNR<^tw8L#{Ct1AREfSXN{bGv4)$0;U#G1 z8?+DpJE%E(?!^urNK`3Lf3Q8n1;sdYu?uEfqZYeGhqbUjQwE^RYfy`qD$&R{=cM zYJIU3G;YKUvTT>s|NpP~JbHs8JbHZ!eWDM(fXWh3*6X{BnoG|?6uf={QU_9ydl^)cgIL01kh1!~ zi=&_$xO;sM{1-jGP@3VjhG(yzj%P2ApGU9AX&kBCjtMk8hp|9^do?&a2KaR5M!0mO zI^fzz+FuPS{CmNDUgI+_EY5)2br>5=Fy`ez^P=FEcsHxfYiPml`X4lsXMEeI`;kYd z>weI2RGqQ!LHCz_m1F3Lz295S@7w*-qu2MoM`!JK-|i1DmVz3v&9&b_ZJhfa-J$P6 zb20Z{T>Jm`zfU))jdS0lH}p7YO!;^*s74L_?$c{q@>Pz(!!km^qn9=Es~m$5zxxkx z5h3i+?Ry_|Zqx26P{^{{fYfzg@Bq63VrNI}{TGJV?M%Y7GZCP2GMKKE2bxLqXbp1wOs= zKqEXp-M;$~xfOI1nul-qQIGF0eL7=6$4H)mF0TN213V*ep(FObNAEoFNY8QC@1WKe zsM%}b(HWv*02<%%GB2+oJ&C9nic~ zXAEet;Vje}5HEQ2vgUr4V*ooDw96d4E4!C96)fhWqVR(M5Xj{*DhZ%YS_bHp(gKg> zBLVS;5#!6Cr3<||DhE6o-+*^^ce8GK0ZWMnp4}gPyB~nAvFrZn)4df`Z+LX?1b0BS z!S@(?9Q@A&9xDC@Do&eIK{vKTjx9dsDgbI@%7Wa|>nrerVK2P-Apkly#Doo8OM%MB zPJT#R0DOosY}Q=hg;fP80gAr<1Sz4N)gYyd9%wkNo7tz^n*+2U+6Z30XuPO^EH)KA z0MgRyqoVP`?>x9&0AhX?1l8i!OrTokAZ)U%`3GZ}7m^8PP!pEHP2fS8FjW{*!fbev z{2Aml-wppoQ|C%E_;hpobb536b|3WY_OI~N_D734q6*?SFISM=mLXfOaYs}{@wTA`>7+ON$7Is>Go2NF7< ze)_#T|Np;?gH#7N5{P#oCAa)1IR;R<@Ej_96m$s`$b~5D^qD~0BtZ-G zccCuOX96t_M_Hi1_%?KU4m7R+n*XzcyR?|YL)+Nn;6El0>+k$6#~EO^TY;l#KWN#h zN3ZDokC1|2{VKx4XzMlz_28r_u z{Qp1Ubp%qBCPU4xhMR4PZ1#)Ir$KQknh*t9Fs1QA>g*H9z&^;lsbE4Gjjy?P$q3qTFGtluQwDE6xln*?Gv%WohhwdWe7YxsYC)gwlijC0 zyBk4ME|3i|Odi%JikOWL9Cqwx>2mC3@a%2`g>N@chi7*qIM91pI-uux!p^L1e&YaM zR0cYo*0cMBXLAMUE(XtT4$tlYffq-={r&IJjeeG}I#`sVGo4#9LCa%5fbx`uN9P_D z&|s%eFSIi6Z2|MUM9V-~vDZW3#oN1YK)n-soF)9u;>CZ^nd#l0mebr0uJq5sA}Qgw7Jyyd%xc$ISK)D>$2j2lQ>*VLZ z;7cS+S&YAdmUe?r&PTh$@nAlvj7mMh;L}+Pu?95G=+jyI0Wz#8$^)_U#tUtToi{w1 zK_iTykwwrDUx{pYD&Kvzs$~Alv3&EG&V<+21#E;G;Er>ny+n zPU!-Uy)i2M9-Z+LE*8&;gAOi=DJmwQ84mC=R};{gXs5sY1)ba9 z1|GcYbWs7Tae%9F0I69HR?~g{#kxPB*n8pAnF{KG+;HhgJpj6&7gX5v`W|?(dJ{O# z4|p`!-T;rg9PsE4z3}4BCy*{soF4$q+F$+n_rIsLD~BV}WeGRHogL_6x&trH<$^nU za7%nTQ#W{Y#_n+GNL}F3D=H7MaKQ^Jh=mJ0nrnA}Edt9uYQB% zK_jjWFZ!53E$JH`);~%dJ-Wjsz!q_XuW9Cg@ihnJv2=lbkPc2cD3)A$-2}mx@|}Mn zatbs&oGjqcSuEkwq5PT^qOLo12H2D&uqnO`FV^Ke`Tsh^r!y61P^pAVM=B`)iM$5q zKZY0b8=w4#9)ZB{!Yc#PpN2RF8q5qY(sMxZCAuXAbY|xH7jHIz9G7a~(OC)^u0%fk z_C*k=QU{$sh;$P_3GU_8Xr3e{BZpoArwJLj)hZC_4uAboYrDVd)S*L;BHBKRa-L;PijcNz*YZ6{KkJg|0&f?*@9-1j_2&F)9I| z-E0w_)_3_^>_OeTZfhUQbP4_z(B%-Ik=>7TLACk^kJbaFzCN9)6FiQ)&HyDdmyXm1 zk6zKPm*9|Vc)_|J8c4mq4KEDRAfW_KVEj#2K>ZVN8QAc`GwaF!mxmb{7+gA2z)N}^ zyupW?3A#cKH#_%Y^Kl6VpY8{so=z(}l0tWg!WS+ugyVr_ zH5GQ7sz>v24&Ux&pwT&$R0cjMy6zpQbU6V|2_Y&Dp1pmbqU^=}x1cNuIm?*cv%3$Z z+0*(=2{g&DK&*W5!ubf)%I*^{ltDInbcdoP83%BC0(43;1I%>M@1U^e@aQZw0Ig-S z0M*c2B^Vf9f;;2Q$2mN^%PKJ4dg(2~t)UA%d;JPtm?OE9#k1S5!o&I;%#rOcz)|+# z#k|7^N7ki4VhqiZvokso~q< z)7`s(k%8gGx?E5`=w-e26x6hZZbh)z0cw?WIy-bayLj{#dw^EGJNCNrdvv-fMy>qyjZ##RH|a!@pHCtyZ?f&3XMwIzt<8I+Y6cy#ma7u$4ZYxelOHuUtBEL5CR51EmGfmL)@o^#&fzwH{#W zL02a@yhwsuZve7B8pZkyg!LKVBh?^XN^t3C@WLBny#vg850I5Uow*5+>#TA?#}%7H ztPgmxX(ibA0Uph@8DQ%JJi0>@UOavY^L+rw`a3U>eP4jEz5sI*_?Z;2?-O9wXSj6a zg2ufMcyzj+aOue1;L$630uuKdUKm5HN58Bv1#bNYkoB=B)>j~`ufSYI;R~_;0L*%@ zl|G%h3p_eqSGaWKg6?8Vgjhe}#g-Ld-=p8f_VfkJ_Y*+Y-+K=6J?Ogo3{do-U43*b z8QjcY09v@Q0#t7ubDh8d9?WcJU;yv1I{%{S6R1!JO^t%e*%!(`LEImp9i(m^-C>Z{ z4Wy~X_o54IUYY=d$8k6Cf$PWE7#w#ffJWLtry!ntvHSq2MGjhAa@-xFfStjk8~gQC zwjjg0T~s2BzkzDImPV+PPP};k5#$Dtlfc!^gdZU84I z7qy@N{^!^D0BSLxf3X89nDO~9sH@~`@tI$+*aoDv07>g4s46F9t+h}=U8q(EkX9Gp z*0&`|#+N|t{TQeMnQwppcQ%6-QFdPgiMv3>S-|3;G1pz7t}RGP6DsxcD@Y4y!R0Py z@Oj*4U+_Vt&VBv+|Fxh`=WdWjm(JZFa~->ncQ!u(Cn?bG9Z)=gj?M>p@x+U(??L_s zr3}!L&=+OkfsGFyy}Ln!MA*9r*AhUvzFq)!(qX!UONYH{uZxNxXg;C){EN?fL2*$h z;M18V;nHD;d^s94b%5>a1DgXrrvYZvQc$%AIts$0S9JRWaH(DJ;@6TV|0jU9e`tWN zl~(}mJ+J_cJM_91fMzE=K(_Y!s8qa|8H3s+w)E+&66Aymf*Q!R4IZukOLU;pU_J6sX%szN zP{9BW(DiK~FM&Hopw#Tq?OX6-YCI?aYZv%*rmk@5s09^MUWdS*o$!Je=2-0!1G?17 zrxPV?%I<>QI^o5~Mc_sq=w!qRFJz)1Elfy2m_s_96JA)xJ^BAy6SQdtv>R`-J-9Q# zVhL&EpLnrsw*&*|k_dK>&Sr3Hsrfhu$Pum8pc#3Pt6Kk;h=8s;_t3r$*}QuG#nV{O zgi!Zkq&x4r)=4n%Yiv;gcWWAtfZB>^?MjE>Fwk`vkfHF#HxIy_A=a+5(3WJ2$_2=* z5@-O>!51{b2p&9%0JSPJK!ORNsXYf~28I`r$&g0n(%ay16yM%73*-NupyIH%oF7~m zI(FEocy`uhcy^W*ICj)Ucy{gsB|Fc~ZJ;X1v7@fSvvVJ4aj<9SKG1}mXXidp{`TzL z2P&sQWlQC2P&se|WU&WmII;oM$Lido0@`Ko(6I-+EXku+)T<2Ce(V8rUnDLBRjCk; zNAn)AT2R9RD$+eg1!T&Lriaifb_!S@aUcbHV2$zAXh0u zjC&Cu16q2$2W+MXy30EEsDMs_1Bruno`YO`0px>TQHxuk)YGE^;=WkF;K_fV-aTLr z$R?0lkWD`P&M-mH44H(7^^Fo|k6v#9kLF6yXs|~&r{fL=@GidV|3$yHN;7~;(UagZ zRT{L*%fqAFfddqH6&}_%N{_3vdM7;;u{=>)mL5ZVhcZdpF z8)bhasNGZp>c*9*NPu!Aq}k-z4Q`;^+a|%_*;y~(*;y{(*kKO}&kj(T0BSSA5(n6t z@<>Rd3AFp3zXefKYa^U90py(1;30({zP)J`xSXVe-$~w>PFjKPB(POaA|OtJ9M_9* z(v0Wu5ZVB8k_FsJ5xAT*GXifY?bwPDN+-~r1hy&=+Mr2r4@+kb{ua>L zo}h-!=@);Vfnv*|xkBMTe+#Is`a{|8^1(Xtw32=k9_9~FcD2VWlq zZ_(ZhF3!)t*i!%Wzh@_Sq}mr!%6fF4@4gONAp+{cT67-*+2aDTB@%4Q1@I7F5Qm5M z1&`)eOdh=+jJ}{-)m>C9e6>&bGJ}nJ(F?M>8+4H@^NH>d6@&kWUa#@7{>k5(4LV?E z8@MEL;PBKw?$P{%mA|QviGjhf!9J)Y4pf+fb{T=n6AmUwdGZ001>atWlqVqWiz&0g zmFrbdat90S4gy!OQ&d2@z_}?HT*>yRfTb^lJ^BCI5mdf;_J%V$?qC5q0n}u9@ny3F z11M-bJNrPD%!@^J@DOq7c2P0#>-a=NTi>_)4RMi%!D$r!w3w9(`V1Yc4D$j1n$mPo# zP^5xe5gxsw)yNvpK?WTz(0(h6lQz5w>+V z*aMs&AN_a{5CZCnCxd1I;hP$}PkS^UQHXwdCKhynNsJ2Q4nWWlT`y||$T;wxDsW@E z8{7|o8O97YY%xfN!J`+liLH4tsHXthRR!uqF}yerUVH@EVb(nv)UJZ*J{k;i3Uo78 zuXlw<^J0)RNGmACF}#=p)>;kjZ)!s>fp!O9aSiWsKn20KTO)Tlf&;(_hsUGa+XA$} zE(&ZFXagtsV#EOO5QMV@^is#>BMR{^&&PnaSV7j7fmW1(_LO;FM1IP z-b311op8+A136r_M`MOd@C8J;bb^|~puK~vFLPmK z@;yA1K&p;8S1@>V2N%FqM}Sn9fmMU{!gf{{9CHTw2R#`CLzIC0ciN+~I^Y;;5;zlu zoc_UkU0y8tgTBX3trFx*e0%J6!1aJS?4V(iPZfmpwETtH1JkpQpq>o)9y?G%0@>4r zRS(j>p2jzzgy7N5YHz{{Np~eA}bj^?*mW?+(~? zhoHv$E>L}CeVD%ubYhrCH_y!%Va?#`z0}P^(G@;!-r))wHvfDMRC4)Vc#$^++!YMx z@BkfxHNzWJx`H+cfm(3^;L_dq!i%l`PyWAl0w1m9)62Ww0Ne*{(1P_rmDWmt2FEve z^!i(X=I%VK0|lUmD>-s-yyo=jb=~k{@Bb(NJ^mj?ce(Xp{&s&*yS(*e325;81gs2l z^anN3AX~)V&WCIz0fmrfcQj&8(F^u~SN|s<)^S2Qr@c8UKRg=WfG@D`W__^_9-cm+ zb`hd$Y5_X9?8TW7NM|(Q0=P2@I>@ZE&ce5|&cU~{&cnB}F2J|5F2c97F2T36F2lF8 zuE4jmuEMi-AILR6o%I5az46ege|wK!(UslGo>8um*=!^r69r_rRyKw!xz_wgWUSRN&Dodh$FdhI~{CUYwo;>KOT`6nHe( zc7Qq&AZB-H!;4>+KspbA510TA8GgD58tZjY;c!Is9YQ<6c@Z*?1TyWVFLnN_;`( zMJoCz^KJeX(B)^4_N~kvP!lzR!>5}AbkJ7>)J;e)>&@-Ds33ZNhbPXqs42};^ADha*8{9vbafF|)knFAK00WYS5 z4EgWd`oE+EG!lCLMbK@KPeAJuF1+~m5X8O#8Z39f7%Y$VdGg<*vrYiE&#g|vp~KF# z*B!Dj;oOUAuJ&I^#Vf_<&>3H0TFV`||Q^aQhOJ)sfnlpeyGf z?FG<&LjhQ$A@7VFgYh>HP@CzdNB2&UhsdZ6!6iB<1%R3jpxh0r;wF1N`44R_Yz9}m zox4Hm96C0GRdhr4y2EsVN)C{&ST9igZwA$z9-X^EjR%L0&0xuH?+j4QE#uK0TmdT) z^}(u(Gdwzr3p_fDD?GZr!RNYw6oHO)0gdjx;DRU$@aQa#@aQZ~0JpOshteaOnom7J z_7+=sbQU{!bQXIcHuIOLSb$ob@h_u-L5&Mg4uiBgA$9Hwc)bR0b9JA8v8fPe{b}IQ z9hu?LU0Lv2&7+&!rjd36MVW$uY)!} zbjO|t&C(zI#q86YZvi=u$&~?gD7)wW{}3SWVSS-Y($o4ne|s>vzkK$^7SX5wK_+-~ z$DRk7qJ7!p;4fy6-tqvCZZ`oBZO}nj%m{5tpl)IJxfiwAwRO8!cxbz4fGh>+kpf%w z2;ANE&v@a1tjYQwu;R-q* zu;C=Quz3C=xd&8Zb%PEMfBvG+8MF*Un2~`2)F<`n>LC4vv@ep{9XG+>1b_^?}YsO;J$*og(R~1a{jyMVQ+rAepA@ z(H&mkVI5upZIZYbaJ&xj>2*Es(d(b_LhbvL|F2y=np3}nW+3Kx4leKE1p@j)Q^$G>qDr0~$-c29i(!Rl*K08aKZA z@6nyX;nAGH!2qgNJV52CwMTb2Y)5CezXGVBD{%z{Pr3nv$8mQHa2UHQFn~_5@&J`` zT)R9N7#LpoyFU5PFW>@Nadi|_0ULO9p93$-HF)s=bYws$^D$=*M$mzq1sM9$GyU%oAu!qSUK^*v-<}4xJTa=FU~`51!I*y4r=_dd-j$? zR&=WQbf$6mbfyXT_Lc|ucB=Vyrg8X!xSi=4zMbg>zMbh6p1tj$vf8Ip!KX8U!>2Pr z05k^1co|gT|M2Ndh1be19jTxxs`tl0A?dr}#jg(dE}#vdzJcB)kQUHRbF{k8)&W#&Hw}Ogsj0fCp|DbUA^lR#X=VfL+iJN-Qs= z?tm8lB2K>$nk)fYpj?5-_|dV4J$glN9RVkn3oimUfjelI!Tqy6HlWg{SCr)_RMr?- zcAgDrzzH?|_vWY|oqKv`BPkB-NyH|ixluJi_f=B0k zkdHwH_S^HIV0-~8IUGECSs$s$g8GX;JbGD`K_h6Lt_&W%tOlz=b+ao6a^3s`Qa6Wy z_U@g2!4w6qoNH7PKnEFSfSR-czSe*ETb_a{hwinYrj}>7yhn4j1OtD|a`0u*-%5gf zdW$(cnyVEAikN-7&0LM17=HsTTTlW`a~XJai-4DCEt@C7(0ZVR3%pGBYtiG^%#K?a z!DpF+r_{PjR6IcAl?EW213>va*9X$M4)joTUEy)ubpy!X9j-GxdPV;o2FK2f7lN(e zxC71a&Uj%1j=S#A4aiOS880Fop8WR&t+cfMQz8bw)z+ia-NK_cn8TyjKjFo%C{Xhk zd_h%=iUsHtJIiv5QWsDH_c-o)0c5F5M=9u_(;E<5cf6S00=IR?i(}TH6oYZV>0^6P z$x;eGf7PX<6m$UV6Nni%UW9|paOnVVy2(*d@By84*8=cp+d9_O_2o0;ofVvHH`oY}>Y-buWLKZGGy!gTW^}k22sO4UL&;rAT7i@E&dptn%;9(xkZ$Pz5 z_c~~Xa#6_uPawsH1Kr;rA)zcO)@~n_! z!~@ZbbF=X5j&tzr40C8c4_!Zf9I}4;c&Q9@SYMzUEX2cn9Buuy10+tsvK-9Ek){T~ zLLdz&Qv;xk3hLzWfk%!&?yj;0H=d4xDtqv;Ac}p^0xvE;E*fa2wZuPZxjJBIIikM7d?7h=wkfSt4-9I&p&PkcMmEPOlD96WpLJbXIUeLB-Qd^*zw zKuy)$)8Ih%=}d*UeO)?IL5<(pkl23yBCQc6d_fady{^x}D{*|czYwrQ4qe3Bba>c0 zg4f^NE`hGUaR#rYk%I*6LnO{yTxvHc#Pj>R(u1_sByptK3<%ULE$@V6cUHQGMqL5e{)pU%|lKApMu zT{==h=YwZK*5e$1!P@{%0M|WweUHDeFo%>z;G@C$o51x0Xf2!X@fU&CPyW9yf-QPa zmIb%yWyC-&dQit~-wbg7U^!@=y$+gPelWWh)+5<<#*Bes!s|&M-QgS_*5R-LNp}v8 z*E~MGuFF9UFU{AWme64ikPlnI=QDx=s`WN_!OVP6h(S+#-(m$e7&Pp_4k|xly20fK zD3zjA+%JyTJ^_tKg7PS&-|W%Lx_=LBOy2mvM|UUK)2%1Lr#pgcT<8gS0al=v19&>X zqZ7Pb+M{zfSOMl>z@HaNVAa(b9-Y+%9-Ym-YW{kbi!H$58@dN7rmyEI7knu-e|pD0-eHfhD|1cvx)#@GRYY> znFJOD<)8DQp#lTQfW=Cu|NkLlKA>I^XpSfy$(@nll8k)Qy+Nj*K{a0-$$U?6M@HVG zJ3Inb=QLP=5?4CtXwvim29M@+(7Z=Hh3+`)2#O9QcR+OJqb`fby)R4j*I{;-cbkzZ@2D#;{l%( zQC<$K2!4PXtj(1X4E(L2n@T|Q5liJ5pmQV}p!w^Cvp=YM=#Jgs(_Om56I6iR2U~9J z(Od^=9D*umP$_Ag1uecj6wwc(=Kw`-ukVc)-qqm719*z$#*0!TND&5UeN=-hI^P>F zCYgb*l7kIz*hqkjuUJ7?@%4W)XwS|MQ0ZlWY1Q9d;0EK37Z0kCt>OY%^?I^TuN$Z> z7~s(xdg8^e_s|U{l@6dGGmzI>RsVy;VmE*)6VQ0W0i=@amno=cp%trLdR~_v!TA4{G#ux*qrF{^isC(xWr@pqGlClEy}Y7J;4yXHqubNt#T;L7i$3)_=)il>hzWGC41Xon z53QuUm_Q?Ksn@|HZPs`ATTH+b+&-3t68x<^puw-;3`qR?`E-`DdmMM=2i0IM9i`tr zdPTqQ1c&E^Ml&y{7s{ECKJ$ zY7qm+b16S8p2a6Y;6X6@$+WNT$X*1m2BZErO7=`Bd`Y_0<>)bs5& zGydjbS-QW>-lH27&XDfP_le-{3b)7qV;jGRzOsAKAlz`&9I8@IVfj4JOPzO zpy8=I9^IwK9ruCGbLVfp@DH4D&chPUeWZkQ&=@q31ZpvhgKE627RXo?_<-HUBcQ~9 zsQF?Kzc^P08hintxoiOHSS5fKDS(C!U#NiYQtf4x+y(01F@tWAYd&HSeHi_YLCD$O zph@86#0PRik>8u0oO9FMO`E-M4y!L~V z3+&vMEk7mr@i4?Dog{`reyh^@~( znrr`qZGG<19s2#nl5H@*J_q@A?pBCjeY?McX7|8b#nA>orx}9%ih5rRXg*9FG9Tu2 z0Mz_G@q+2t-~W!_F$d5(H_&`FWadu^EDxUf^Xbgp4w(&e?7r^N843wD>(eEM;F&+) z<(}5}%f&o8W4A-+{o?v07+gAXWS76@cI`Uq(S7-a2dLid4&CnoYUE+v4*bjjD&5^zXeo6K<>D3 zw(&*~?5R8f zXj(`1)VUW%z1Tek?L04kaakW+79D|Ix>MZ%Zs3BlBO;rFPG>!H23sC?09CHNtf}DX z734e~?9u!NtvnEcsMW+!3*NN|J!b_p!2@Z^uxiYQl?CFy-5))>KY$tloxb~hx_#?k z@SB3_`Ciu9TS27@@+k`4=U$ZU1*PO4;O!=$%6`{gP-KASWv{=8I|4c!uh;jwM|16a zaO%GfI=^v_9K(y*J>arc$pc+>8A!GkBFkcQ`!&;MMxS0+kiHU-^}W8|Uu1)Z>^ovW z`5g~s=nQutdDtWtTy~SNcrO%OtrbBd{`-qt zy5JT^=zDM?hYDYRaTp>DFaERZ!07=LC7|>GK1>00PA8W5HTn1dzeg{t!>nqAE}& ze$2T5wA2W8LnCM|^#7q3++fAY;Le7}acA&7vB#W2&2P{$Iz^DZ9=)u4K{j?Wz7&M= z=R*0QW(rc<+M}1%86?vU>FZG1hhR5@wB37IWkIHPGQOPnAEnO%Y0F=Mx0gY)BB0va zFN9FLd;?q$q{Ddrg%m+OU*LLR_B;zFWDlsp06Nu~7u<6Lxos0cJ!>%RsUxW828JFl z3_Xx>qcG4x!WTUn-+)>q9^I_JX2D7ec~4Mj@x!OvwcgeETgxT>mTJ(kVBoglY*2f& zv-G@UZydizXDs+44)B5q-~BIQ@JZycSM9`xbbb}7~>>iJ92G3507j2+bpsfe^!S^bIt|aM=0O><<{k%Mc z>*YX>?e)F?qO=&|`oGISISu6c|1aJ)gERg$(BR5KRfy}++_p~>?0S$LV7Gyq2gt6! z|6&eA#e0uVxc{yrtJwddN)vQD$xF~OA8@n0#SC_52c!K3f6roAC6xM@F&8P>G7X#=%@ zAv3ozmEhtKl;#{kpn7mm6O^=HUAz`u@BmfSR`!A$HL&VVZ zcwQM2CTMrXyirH>u?I$aJOxn!4>f%0@f&DWCV}+GhvfP`kYhnH`m_Mz`dp9z*!BNk z#DWH3p{^H%x*jb(>Y=#}Gd=P^RKQ~t)Qm<=kFV57Nsj^9h_EkM3=aGIFVvx~F9!)g zT|XZ*$_aISuo5Kf(Oh4k1`d08$YQ$Q526C@dX)6|kOQ0^xfo&TaZNKKJ)S8eHa*^& zN@;qu$wGul%p!1@{C^>w4~bD>kN`ML?!V{;jmAR5#9k2+CTQs~Mim?;a35o)M=OX5 zc&On^k7*I$&OYAqu`Uzg`hN?-uD|~xG!NqXyC4Cu>;JzvTZbqg8xc z-G&*XH4qiZ{zEGtqf|&qj|V`ffcQY_rUwh4uAiO@as6|U0MzyTNUlFDkJa@LlnJ?h zA4CP*^(g6a*!+&V$@suJd>Cphm^#Sw1VSoPx zJJj{zAOWcB>mg&P;MRsQcGm|$+y)O>OxNo{RKQ~gB|W}m1ecGme#6pZ52(umU1_zZ z5Hmgcbl>spj27_h%$D%%^yUbITyPWM*?rR!vU$0?MFrHF_Uv@t@uHs{6ym+CpO=G1 zoY+8fj2_MEpizAe5Fr3sg_hq1n}Gw}@YsF&#Xj)0?A@Tdkw9lMfX*()I=-ojHVHQe z)I;t*|03%xsM8PD4$^CVuOt|>GFpMb2egitwS9#gIO}o0`1l31Jp!~wtMx#MB4QxW zqmv0T5D30d5quY>*#%H<3Owaix(PIWVgVZb!?@n~usnD?0R4L7$Dr2E;TI2+K+B53 z{dJ^8nV@-F$W#JrNk1%Cv-@^Ggsr&uy^k2evtxq<=%i)f05!ht*%=q$*%=q%*%_DM z*;|+4(JAlI8P5S)n+;k)xN0q^@BRVQ(DXR&3SOtz5eu5Z-Pr+7cF$idNd^z1p$}(W zT?`ro01e%NFFiiD2(*O9jRQV{hBlUUN)8l0=&J!+Zb+Wbg}RaHnG%c$B>R{EIKEK#A{%PiN@`kK?X4KwTb}j#AL+jZHJa$@ajD zw+SHKzUZen$}I%x1SQ)8pcM?_3qYf=?i`LtE6>nQZxoOLm+co|W4|{*Hu-dxe(>mY z{o&G4`oN=CGzZjV?e%@|q8wuD1CQp~AK=k1&^o~nFIFso+4=xv>%#dETj2x0Xs4ge zl?GK79-XcqAXiWR=x_xsO%(9x^p)sv1ubB)-Uc4xW_ZB{iYXuPRWIP%JFHfM7UO}6 ztnN_6zH^UmUxpX%FjEB}rh<*?blu?5>AR!D6?78iT2L#q*LT5-4e_Ab6Kv`Nkb|GB z0J$G@4G`K%lb@xaF5Lhz6KoJ@+c9V%Yr=~yC;x(ufaMo-tKb*#5a1W=1En>70S5(s zLGUJ9egO{yenIf|U(gtCua8Q?i+YGAk6v)p^9wRUw0a6a^f@X(GK#8;Uc8M5hZD9AA7ff3~3opS3=Bx*e^LP8GaCmC-sDLi{@a%Tw z@YDvcJZJK-KEdDm7&Ls*%RB3@41*8!&_V~$0vn4L-bUce9;4y_TCL{cX??H643cAg zy3hOcvc6sj%dvMqgBvHM+|X&n(i^YYJv!SUDHpVbxp^Om%}`()}2E|qzXmAuV%(CFcM`3UUAo>y1Y6Zz=Aj@8c z%5uZ>dLheh6$XzVf~)MtH=sdDk8W0mPG~-d95oCZ{Q>861JKbUpgr?1?#Y1ysF#&% z0l3~lEXV>4X1Oj0RWdiA1IFiHbb|R8KxxF|h0eOapdla^6%UVIQDLyFL0hvci%}L1 zfr7dF0H~-1U+r;S1nZcuXD3~kWlaI!r~vK=!&YWxym%lEjzP>NTgO2Xp55Sm+@Nd# zir(xDaP)$L8q@>;E!={RcR;T40*%*$)poO1v_s>;RUCYC0^}53-}i{R-{~JD4vx(O z$AM#Wng@etZ(RUtiwcyVw=4xmh(~iOJ7~2sc=q;~>vvGek_c)WgNEGKfX*K2_5JSA zT+0tG%D#JahqAx8I~!CKfC|v>pn1P*vq1H}GY3i)3mFTCj>Ua{aZU_e_oG>bsQatH zt~v2SYXz+C_vz)WY=Bp{=RuPUC-p#{>n^PAhW!|=V zu*^H*Ex5V`%`unYs&2s(zwXCCUP4s2;OPQTb&EXJdrcHx-Gb+O>(aoH4T?`tUIq{L zzjzw~YV(1{`$1#&ujj}yfM<9aLG$>a1()(3-NEp+FD;@VYeBoZo0CC<@5!LGFVMa0 zplk@9LjsvI8QC20mM4%o@GVa^5OXp>_vylJ=LL=Qx1KBkse|r%`tw2rq7G(NGjsv~ zym!8Ufq?;TpEI(3;Dw?fbD--)|GYRO0(Lj->fUD1mB66Q*iieR{`>P{2}B)eZ4ZY3 zKvU}|>%ZpD289)M<`53cg69z6{%HoA4VgRf1n&j|`3D*m@=*nEWt_;w%MuXd;N0e)oc!&eEr>h3 zL7rHAg1;HG8r28x7IO{;1{cr)?#DoD*1ONYPy-8mK&TMqU|?`HKH%E=t<;`>U+DVg zSIH$Rj@nmC_?urbl?XMzVlLrr{>5A>?6?DTLEdX_$cZqonO(b&y7I3-?qYp_zqJu` zVIilh^;iDZHw+96-3L4vnP2|>_y50Vr=dspG0#pG6<8leGZ9>@m#p+0~7&E99)qUax2PdQv z^=Bqn{`d=J&^Rv!wfwK z8puU5bP`m-HJF06XbK8B7#P6wsPH_KT#qBq%=+{HKWNcJkqIQ6L09nhf^MCx&jGCy zXXXGcCQ<-3Zo#?caXfmi`8XZqbd3AD3A|zl3=F>D1PU@y;>DeRpnaJyAVQ%0bNb)^ z|F0!p)PT)L5(nK0*bO>?_WUsy6$1v)CIAM|)*J<&?$eO`vLBpYels&L?9>1)$_@<& ztwOut(doJ#)FD>`Uu1Oth2C#atHDJ@!Eq<(rcIx2(8X$?JJC+P_zvm6Z-?)^| zwnW3HTNr#D;rSP8zyAOC?R8=V_xl~eR|%ZObmHy_~{EWx5 z`53QHCuox~c&Fa9pa1`RS|8_cwgMHJ-RC{DPk36N<8OM(2#e5`P*8w@`~r?pRfJ!n zej@qB)%YaTBkCZ#LD3J}NsAhv>p}6Uz30h)-|pwW+RvcrgAeSEBgN)E-S2(1-}y4X zcj+pv2kim^pBw->FY-D_<0?>|?G^^5+1o!rPCrs~3$)`I67DxbP~3_X?(2Raxz%we zxFUjtd&LiMxUa{N{J_qw+5P0d@kx(vVdDc0HcSkqZvPK>#5;7zt+By}g;0T%m z&_z9<(@tAp3KpX&NQaux4O7sBroauVU=~b4BANnKsDh6$1rBHmSeQYj9B5ruIC$A~ z^P32dZq`qg(2~ssbn)L!(CO}=CAuF$$Mk{5yga)(U&wv`|KFvnMFmtCx^|s#{C3kr z`egG%W{>{|J**G%H=O~uVL)}eYs&$j?iLl0#uBa&Ig~bv`fC+qWWv^%- zT!{?2lKY@@BRqOVx#3EFf>z%mo3e)y5{{s@JG|anT>%e95Aem*Kf$St`^BTL;ChRt z$QaTtfY)2cQ$a3gW`SHH1a0i;fV|U<+}M+v2=R`_ivm=KXuL3nI0RB}g?WH?FoW*= zmWR2;^#^zi^Oi^VN6+RT()>-J@gTm z1!Vt*L^ym~!7or3wpX+-6=Wmm`qU?7;PJ%spqu-8L9;l$J}MC}K79ut84Ml=Qh4zM zbj@k6=*~vazCcj&dz%d280gXb#=^JTgM&Z(0C?BBf^X}|63!2f{~b9%!k*m>pzD1U zz?BYYAX?+aBwJ7#I%0A7j7RqokIo1IkIoDUkIn)Gk4_KB?ji7M$5$TRKX-y6@kOma zsPzLr(-w4?W{D1e_yK-F25@Ji)0v~wna87-m7xl<@UGWe0NmQW`XcH7|NpOcuqBJ|GX?c&}ukv$cyH{ZIc3x8-p(I z0yhdXAm-Y_%`JqO3wASP>j)&jfbQOUUjog$po6qP-guF_@fqa2OVGTYM|0`{(4Z3d z;GAQw8$g3fZzh0Jg71bG;hspI4BY_Ue7*l0_==$y>L62^t3j*tJ-VgAsr$r>R~w)G zpMZHlPc;ju1CFuR9(~_>2uN8sVJyE{NvdOi-+e!KA^9i#x={aO(BgVH=`^(AB>C`i{% zW{@suv78bD&aDB6@js+?^+%7!H=tzd(al;?3=8`IKApbveY+p{bieZG44n?XQ46%F zKDONWzei{7`QCDVkIvHT4jr|i^>!&`;PBu7;<`I{R%E|NbM1BTpx%Da6wwQg4%ndH zeo*;r{_fFP+wRf*+oLnKA9QA}fJf^k{ua=JR?qG;p3OBX z5&}gm;3NKH+CgqT;oE)0qc?QDC+J4*gKePUOvvpxES}xI8Xn!Q(><&`G)kg9x+^U} zhi7nn`0vgE=5!Z=u7qm$=&bE`Y(4|tx@+m!eFVIB*OB=M=yZ4RMmPbeAP-0o`TC>U zevj_b_SY;R-JsR@5}wWV3JfKJKE1B(;4^&By=eLU|NrachT3|DQa6w0)c2tL0KNtI znCpE|eqiYX$H)B_?rz}0;?Vh^E0#!}?T-Ho6{A zit^_K>&O7k zFMYZ{c^>@70`keh7xq5PA3VA}IXtxaJi8Bp?lV64i^Ze+kjKFn_8!a^Ja<5JPGa%2 zzQEt&3L0GLtzz`(_7lLN!=w9@$HkYP-3LJD09s!tWA*I5|C-yQS4Pm&`o1T>(|wQ^ z6+EqP@VEa3H4d^*TfDgY{qcW~?jN9P$iO%In}rYa2hjQJpu-e2j8A%Y@_Bapad>w6 z33zt9f-kuPO+IzHae$9M>U0zE?DS>u?DXaE?DQ4z?DUiH?DSLc?DW&{>~@v#>~xdx z>~>Y~>~vG`>~_`g>~z!c?DUoJ?DSRe?DW-e>~=M9>~u5m>D&T2V+Pba>E`q4UIV@z z(#QH$DXUNS^VhPV^9H()dv;%a5eDi;ckY2J_v}9F(|yjj`^XC$P{Y`#`?N2pDg*aR zCTTM;fI_P(1pmphckqc!k0v571eQr@*nea?agD z>yNoq!D8{3=fVG+p54bmQRTz@0}_k;@L1$Tj>U6%55tp{Y#G3@co{rZSH$Si?JwY= zja3JhSiA>|#e1IoPWM2um;sK(Zcr>{o;F}%V0a<&4HS{!`!*|lGyj9ce3*ZL&q+J~ zVmm01S$TMfofX?`rz>+r%K*c^HRFC?-IRZkkPzB`; zR#1!~=M6*{u_A|RS&}*kF@Zz%5ja#qc>^_6k#t}QRrI_u2b}7_0XrQOu-T_GUhMk< z4^<7{>~9&6?2!S=9txoTO#=fcJkGsPVrBpj!c>5Q&ZC2Ww&|pmCVNk4kG#&?2*8fT$fo>JC0PVc%25kri?dt~JeGZ<>0U2X` zioXSvvV6KP`}8_$_-J2rHNNfBDed1G!}I_|yzuOHxZ%;s3@S@KyB!{Qce*e=@a%SY z0b;!H?TonL+Zpk|w=?1eNc9I0@x#AUhRL(r;R8s?2hVPYA0WmL&u#|qP8KHL&WI1b zoe@8LJ0%>uJvf{@eV90WdmSu1dp&M=Sf46wf{nhNejy7Q`RP6kN`TRaK{)~KUS9>z z?w24>bi=|z0vZ;es~S9-4`+BZAJ6cx{#W|KryI0C3{=Yh1&xk$=YZ~#KMX14yFsh0 zAOYjkeaNFbkOO>(X^yM$NuN$GpH43hpH43U&u#|L@n+zg5u7+YyB!2PI-LZ3J2`wi zJwRB%r_)Qqr_)Qpr_)Qrv)e(!qti*kv)e(zqti*jv)e(#qti*lx6?zyx6?zxx6?zz zvD?9*)5*Z2*^$HI@XJ|0L6bXRKZ52O6hOx*{j>$$(y;SCI6vRwcRuLRe2B#bG$`!P z(#ifJGF*b8oBf!J1q(xWGYbm?LuWgP>~7`&vq5BcGY^;zBDefj=Jq z_h?oI&2)m66ebIRj)hVH?UM!PQ&2-6Vy1^jcQA)f_u&`j-$A=~LFU8CRS#`p(BXez zE0BxA>`NIhK7#6f0_J;4fE*2)LDT>_wfWJX7rVgPKyy{i$qFFHX)u7SXgvukbAkn6 z$|i%AVR1c1x#iJY=>hf(Kj>1glO?X80@SDb_zRP7An$|=c zCwXLFvUs5cvar+KqqCgD19W#+x3_`E{?)6%KnvsxV~_4&2hdHx+8044T>OQoOgwr; zf;p{o;WvXvP;>E<%b#@LUe0c@3WLd=c{>b|!WNSl9U% ztH8QI)k`-t_k+u^&@jYk3u{~|v{&e&QsCJ25j=?X%A*%_pp!`bJK(}ji=X{(IZzttVHu;6P{Qia@~y-Z)NcZvE0zXQ1-eYxqn9-c z%J%4pQ855*$ON7Ec>;8Z%}(&#LNB=Ud=)f?y}JL&|JO_#7`twO&WwU=D1`NY177U> z^7wz(VbBCr0jMLAfbPTSE#>#<+zPs6#ie6y1n3~qUeS-*(hMHGy&&F; zi58$yjNVod$D?^KNTGlazcYm2eHnC6nm`dVc=Vs$qx<~-015Ef$>4#mgcsKFuRuc@ zQ$gCmYlonBoq|29`qT<=81{m0ReixT7j*ij)%<7wJ$fM$&3i$Y$AE?-Abil>we!KlK2t#w z$YBIB=tbQpa2SDa#p&D%QsUCF79``*+j|4#I>kJYtzhKUd!o%9NgTMWNGy^#IB)o99eD%NkLuZMK z3n(`wyfC+X_1~rY1B9amlDq-hhz}X7bY0-nnY+QU`yXglF~YU=TM3V2H|Ws11uxbs zFfc$B-SFwmec{o4t@Rt|x@g}UFZ2}|7}KpP4z+MoS@&FtBI z)U(r_<1@d2DSx9J1HZ;U7k-Unp3P_ece^%dyQow&|6t^A`o|4(wBDT;|M~ZwXnvW@ z-@?Goz|j1X3(^g4e#yq)0-98A{>jMS>LSg+;Mf`O(0aRMd-rMZ?7YYKho1ZnM?hAy zN`mh3aQATSc6abR_<$KS5^&;0sGkIbWA|5A%X|m^wwDZ`c{Py3bwCd9z5#N#m`Ae$ zgHLCMgiB|Jf=fq+3g}EzkRR@LpY!Z?_weYHIROd2_S-K&MbIY*@2>f)|DDVb_C*le znWfvh^*?`0h7<$%Qmq6j1_u81Kf2FDZj?c|G+N^6e~(UQiT~$4{vY?~wb|ieeZ0il zqc?&PVw(Kz7ymn)p&TI)2Wkx)i0%CUm^0IVkKSk&k6!2h9@fW8PyRpVXkG5W-=y&W z|Nn0AwOBPO5#1#!E-!oj{r~UMnL7h?TtUOX|No6Ix%4_^c=Y-fys-9_fW>eDfB4DI z{Pn${LhUnueJf~`6vPKj`+)eM=^GFqa(IsG0}pH07bU_Ty`cr5fENJO-_5QMGG2p5 zm3BcX{kauJpA$x~GC%395a&596%&pS}a@2Q6>|H5EX*Kr0&w=voifHL-(Py5j7Rxce=6e!6$IVqUvSGXFt~zJk0B!iXa#~Vi133J zHbEw@{`2oY0WBviJepHI7`ktQJm%Yd(WBSb;>D7}r~fBFd9qc_w7R3TS=0w)`Vhd35@I@aZ;pHGb>W?PAQ~rOjgO zaqtII>wyw&NLcZky!!9e&13A;$+FV%|4|fGF4ixKZhC-5=|Mw^%`X{2rj>4RHGb;| zi?0jDpvd9xbm2De=#94UY<|O7`t&vE)@+FJ8;n6Iz^Aut18B*Uzf1Q6P$>C>CaKQ7 z*u4WB`>ycV=Q4Tq-?N(yDe`|9!$jb5{}f4x0~GaOOZP$Sa{$}tVwt1j!QZ0I2q}=1 z!2^qBCqPaJaOr*waza4&Wzbly1;hzPa3{3GO^2nwQn(1%3DG=Y`!2e6KlK6KHtNse zseQt8C#(tY*?rIhJzaqY%vXY1V%$P}1x}7DuStfM4{dg_l(d{kK?e@cxWnu|Sv)_;Zj{lD#ndM^r zp=dM0IgbC2Ah{BY+gz+4@i!%d=F7Mcx_r7_R4P2152%2Kxhj0XRc)~t14BcNii1I& zNkffFpmC|LN4Gx*c!Uqb$A>(b4x?^YjKinBR15`R&-{Wt}{)JRzyL5kl zdF{vl|KJRF@dv2rUJJT6)1_mr3o`>l^HLXf&@#BC9uUe0MDc5|im#Mr;MZ&o0M(pJ z6F`E^OH&|J2AJy2VP|0Y@6qkL!o%8iLy3Y%?^KYnpu)Qye5_dP3J>VuQD^Lm*E&AE ztq^(8i2(~<9DW5VrejyU7Vhr8@caM&juy!)zyJUL-wfhFA}r?$xN5xL4Hk3hSR(;a z0gPq= zIRfQ=fyi!!a(_U$at5#dcRK$8m6!ajQ~n{v!pm@Q{~C0|aPt8kr1<+O#K7R#eb=-5 z?>^AHGQ^xX15nO%=kQ|g15RpKr2*_HGUS6>>IffUyt`ZE6`#|GZj@HNOWjonDl5cqQ`m;c0DLTKJ(?GQf{?+b za|I~qJUTakg3Y6O0VrBPsvN-Sqj`Y`lnwyVE}bhPSQr>~+~z;&(AgdX8awN3PheqS zaOqs1!NR}*3-SnXkn_GQkz;uA!C8U0DdD4r)WKEddvICEVZ=u>wNXfGBK1F7Jt7SMIjCnmi3@6&x4bkX{m7t2j07+$mcc0cv$%$0ELKHBM`;^NU=`oN>J z^oLJ(=?x$2Z;+$XJ)4gOcy`-)cE|nju)fdVvW9_y0dxlYKKM8#DEPH~7kG3ZgVf$g z8E{x%Y)q|)1LDLP6|Br&)*qR9*7b*SG z?V{r1*?cVH{{fKqJbT?Xcvv3;2|Dg&U|?Y2Z&d~hVFAO%y+!_@6kIQRJ37LT|N<6H77(hsD{C+`llbV>f0dq_D%=YHOHA47#bY0 z>e-qG(gP|aLCZ{+Z-4Rsxa$SbH9a8JAYl~Omm^g7hF$>aDBb?zf3rP9i4@p_pt+k~ z)<|7x2Jno~xfgspU;OU|Pf<8pyE_zdxq^Dj%^MjQ7>>EKXt{Qu0|~qEJDu?94QF)( z-NVb^+Iq55!0{N9uIK+lj=MoctK;{Zjyo7m&9Zhi`sUbuaHiw;AFeImO1WAOl(IQC z|6nYYaoon(>tW#7!3EOu|F9$f`U5W7CqQx~iaXNN($XBizi{b3P= zm=8EM{(iyCz)-Z-@fZ_>W3Ti7PIj;#Agg3S=WJ-fz2Uy&#eeVanl~KY+BR=I4*qBE z{@+>6u>+J)Jib5oIDQaxqPGXX!$D|aauAfd-myRZ4;pYkP@?D2Y2njbzyaPG+{>za z2(&=P1$><8)$FJLUAm9=h6#W=1L20C^2De6n@4Bq2cOQ(p#2u!-7IhXyF=b^xO987 zcv>GS(e38&$v&9j!|Zya+k?d;`=W&>bASiv8W0a{F3{#x7v_^Lo!+1Z56A0sj@>^Y z$?f}d&*Miy?)2n$I0|x~A3G@Zp8(Yi5uj8q2O88>^k_cF;n7+6qtno%*AvpI{ov7k z;x&f{s4wTE65-M5Ezn)f0yh+D8Uxrg(9UNLjU><`awmm?e=ovs=l);IWD)-f|MbTj*8|H$xRuD#Li%;J&# z!@`rf-ovA_Rsh<)00n9HNykn;*k}@Re0QIC!NvwE+T1vrQ+F^lr|w|@Epj{NqT;~d zYW&32QjNb2JaOIaqY}{_JHxg6h)<{M44-a!-)?cwZcyLtl*bPEfXermDDxN2-7Jee ztPd4wzfkRhmHe-BoKy((KX8&#wG2F55UhJMs(E^!@nk z$RAU)jRnLj>H7lWnQY_NIQE%8@)*Cy`Oo~3=RfmD9CYN@xbWGLKk~w7{)j{WMgOr# zGr00=T>k9BA9ul(U*ptg7yig|j{F+0KJ!Pu|Lh7<=*TaSvJYfSObW!ZkbNLqVnQI6 z@$3WH#j}lHBa%x!~r@S+qXO1z_Z)m!c+T{Cwx%N6EuqU(x>~B=f$6(zWhPZ zBBm4kE#UrpbA7`95?e^R;fJV1NiaUvr;0!q0y}lHG=O3NkqBHFz^UN1uSd7L1W4M` z`e2dbi?i*pbhSB4j^V|$4iMK}0^}cX!h)#=8RpsTZt#g;fTaVJs9YJkT{<`%J6$;( z`85uMg4Puj+Jdeup3O&jz+nNpxyY$gror+5k^hH1nvd~#be3{>HXq~xt;LOSwN~SA zdi&@9|IXMM9^J7&K%3&h8MOJB0JxyEj@96AjsF8$0$pq1)14{-&dZ=G_y4g@@Z~VB zD?qIS$Nz_1Izv=kJiAZeZz#A}U*d1N|NZ}eSL3%H&FBBS_Lg$^wmvB_@$8LJ`Qg*c zI{`F%(9OIH)J6oY&Do#?>YxaNCog+Nu7X-Mps~=6%uoMM@azuf05y0zyFeWY5DQ*B zfEtzECtkc`eEJ_0Qy!g-piYKs_fc2Ne1S4)N6^?4XvJX%NZ6&5WuoK%1FqKY0!2?9 zyZsX!nf(JiyWKfDJ3xIG5UU%^YCQ=#P7$UQ@eeT6Ekjs%< zFOvD7i2VWU>2P>-cYxG;bXtOJ@PPC)JbHQGrpqzB_+lo(U<>LuVsskMfuzIDz`Y-N z7LVS3P-6sS0>3~5hzUNDp##)q;}-;-%FqDnt?>(j4rb^8^^5ogJq=#Oo&r@o=UynH zJF+AXha)RFKz1NpX%2FRA5K?FfTTB?LR|^g3iWO`Biy0jo*Taa)Uo|wHw!@B3tn-- zF93CNKgi{v1mn@|djm8S?cvkw3c5S&!3(wPp#DfGsQ+;TG%&s6C}^?Onr5#Tu_(9B=Ki+TS+ zONL`qGCX5r-K)1)p!0tAI2!U>oL0+%g3!3T#&9VMdhn!Ilnl1J0j&^Y5*C_tr z$gffTz?EOa8C2qWA8_T@2;ShzuMxe#v->e((G++G!9DPL{@xi(3=A)X+#!>FAP#8S z4b+-e0^OS0EBZYUv^u>PbQ$^!O%n-*36P-(hZN8hG(`6tLy&Ip8CE-9y!Hmo)`=bf zYxCXl;;XR)!vsh-H$@ech%SH)fanZThwrl#hZqQ&xqR_j{sm}G71V#+@nROlz4huEuShoi_5%C&LI5b3e0RKHg=#uph;ZI!bWO(~nr6c^T`&R%lISEPO?Bv+CPFl& z!8FZ=YKleDG2S~^ny2b{) znuSRB==q>5-SW}C=!vTooObE)e~-+g;Bg`}XJj6Oh=P_EVz>mpHj3!5ak&T!8(7hf z95(0${J)Ffu*tv-n+zOb1HM7`6zI-IP_y9V%LNzy|3?=)Z~?SeGe$)LbRV_=c+oHT zAfDzo3Lca4`TYgvI(YbEcMt0ii=PX`0odnJ9ftRKS_<;5{ z9{??N^XTS&5pWfJPslm&X6ftD>xv^lYeGT$#$L|+`~Uw777^I`ZerX98|s3)jT6+A z0XJ_ycRK7q@5iC6GCuM6b7RAJ~kF2dmki(9zckk?4>0Ih;f zQZHiyxeXL<885hSI_wO7ht+}{c18#qZr!ImGcSOA`ts=c$B;E=kmv<3MuqIFK%83N zoCsQ>2s+fDIT5sQ!cpUe7Y_qN%Yl;kouDILUR;m>EeZiGvuZt1!U^i*2Z1;7b%L%} z?|{txUw3KXcPUo7JW=>=^Isa62>)kQ%Q!KRE147)&vfjA!DL0hSkLHEXj7pK8i z%YjoMY>lMx0niFl(CSjqdQ;GW9-yV8pyi~XrJU3tPY{O z85AdA11ew!=s~Qn0G~t;Hb5P009Yy546stD8CN~Jn?X?sGNTzBr3Zg7gM48EHl`aS zw2R>Y)FXGlfPw+60b~+f1Jtndp!sJHP&)2*Ht^_lw(#h7_VDO*4)Ex9uJGstyTGFx zqN@{ZibwZkP?ZQ>*45n&PAdNoy@)yU_`e5aWX5%=|sb$donnwg7235@#4#AustAOdUS3E1%yW@ z^k#bR3Xld>kM7Cf1P|447_6bV!lM&%AARR$uxz(C_{=2Gjq~s`lV(7aCU|s0ucq(z z2498-QUpCP>Boy=h$0V<&f)+M(AD&y^}5h&=^a3QmF7o3Uid*2VJyc5nFL*s{Nsft zL=pPBTXFEZTkVT4IKlFG7T1FE9%KuJPq(LnNB2+gsT!W$juM`|kp>>!-W(p?0RbL6 z7I*9IdavPKIM7vB@<|{&&T>?F`HK}OV?|&GEhPj@X$U48q)HyK2atFw#l>mBFHiw z{rCT0i}`4ugj(j=eeuNsEASFC4xes!h<%_<37)+X9^j4d9vL2pE@E;Z#OCjhAl_sp z-kbBLp?TBS4&qI8Ybzkua(L|Mhg?1W*aO{KHsY;SN4NHxEmmu1fRa7L<^uTW<|+)E z`H8oA?Nl@m$3SfcE#*ekOEI7(Z;pxtXw!}YxU~1_25n^c2#$J4RO|rfW6;u(ZUK+v zEEbP$agXl1pxd^sUly}@^s;EZ)-N-J+}e2vwAa}B20VeCe{n?j2`qsf2MrLvNY)39 z=DTyWzO7UA==M_prv*^4-wCltz$016gE@@jg@P(*Gzr@da8Uk$)E%G=)e?@Nt8NuQ z4hP*{`4Qx5kM4jB&u)hRPi+TqIqj2d1S(3sc7n?C7dHezCWmo2?f`K;nL%ehdvxD; zu}%df?xz5nz4Pb}1TCoi1zPyn?WW+-?GfOi?co85fuBX&K;dWrYNJ|sbl0djfNC|z zxWkb4GSWSP5Vv`B2g0*4N`CU@0EJ_BK?FD-CHt}XB%6V<713GhrZ#4l$~A{%DG$)q z_Mjbh$!;uQPkJVRTn+7Ybk{(3)H}w#+@=g_2f@+;tf>qR&~F~yKcN9y;Mv^(DwjRA z8$ihwRF*)4HFqzlUh?QZ`=X8?WD=-F1zEDn@6&x0vb?oSS%Tp;Xoo+@LET5e?m7L! z24r)$yMhn%SC8%vu(6#oA3Z<|q}&xex;sGjd1ylJr3)9o$c(|yoa`=IB+AIv`1 zhsroTd%>-#*LuYU9^K9wp4taN{`0UtR4f24!904sC0;~KdinpgfT#8apI&E)7hG20 zysQ9Os?ov+N;{x51!}5*y>|kXrlLTDcHQ7K#o^H%DB;m5Bks|BoWrB>Kd8PcItcO( zMwB48kMN{%4$tleP`krZ+X38^fX0XKPSE*tFFx|ZoCM+`oOE0fBo20xhevl{g-53h zBAIu9%=6IpsDP#P%^(M2rgWn6V1Q@0gN3KI1GuFHb)45uP;2Z(2;6ZXF2ZqI2*>Go zbO#!sIL^buL)*gu<}#dl5Vj8rw4dvyhovJ&iSLUHMo{a$#069jUHA(cg*^RY3g}Fq z?$a*}Koj!ar(ZaLPYpW#Vh-pOs_xS-DnR!{f%cm~#n1fu|9=DHYbK)upp*yM>n8vj zH$W;sJ({Z|1VGCux?h6!EeLsZdul-Tinko#Zvib9f$wRM_UQK2@abiJ_)CfbRBnQH zluLMYfA9dUgY5@3@w){)x=;KM((vew=q?&}`bKj3BX=@$+f@G|%?NbigLp!1+XV-VeJKA^3&!m!f-&;18oT6+z&%v%FA z6be=YIs}06e}IC~0Z>w~0A)P~P{{{9kOS3&hCLVBuLR z+EBshRLb8_!4zD|*-*h8P|Cc4@vzYW@E#)YnIaq>of+VK3#xw#Ji2dzMqGLWZg_Nm ze8Hv!YUb9cBsA1ZGL%Yt^oA>diWzm;C!qE1+#a3Q9nKstw}ZlJM<1lZX7;dj7t_H)5}{LD97N@3p&)fGe^Y$w1XIQ10-mO)Zs;_?wkJ}-5DGn zpmp`2Qr!d8=dt$a4z~a|i+R8W>i?7+K+WM}?w~#&=p>!ilO z_WldygOC673%IBRfHrmZhJY+P2R?Ph;KdfuDFmI&$DBDBeR@Gh?sOma?2Z=j?9P_( z>@HUD?0y`7_{Dc-aHkig@A%@7F{qo?%X%*WwDpSFqZxE;DfleWUhj+-8W%wBO0Hn= zXog-!*1Q;0$S{D`^MFno1=UZeVU8#(jo*6ovbKTEW%TJS%<$;Ui~!F&XC`=d+j(@$ zzib5svt_nHiKRz(wF4+@3_zRTT2Gcpdvu3GH`@Jpp>+V%lGpd>%;)gv%ohO94uN{d zS}#Cx=`7%2ks%4%n&-^%n%BcRLZFn_19YmL0|!{*tw;Bb*U}!{93I^_94s;=OZh#z z8Ns{pPJrbSkGY^ zC>UUk_|E+x2j*3HbglyzcAe`$vcBDH5Tn4?KQrEc^53(Y4-%CTAPwE;K&jsVl=>|| zsow#TLYj{#IL5tHvjs&KxJ(44Vg<+^vSS1a+Z}68#_e)<;xiJZ} za|AT2_2Lsdq%QUVwS2%!a$G_{^F`qGJ06{J93IX4K?^1rN{l^vr-Qq5ja34mX{>Uk zZYP0GW^hpkF2sC5yLr7?Ui3;!Fmy8?bCFvzgO(yCfi^Tj5~WY4hk{QhXisv00P^NE@cB{&KHV=}jh{fL zgDx0@)_gqp%wO;N!qxb{PiO59k8Z~dk8TN%?%ErmDQ56`h3B9^>kf7R-OrH5#sFH% z#NW~c5(KR}@aS~~uXGpPT?LOks9qIv6c>%OXz0>ssDBvPM=k@V=cCvXk9|JE) zc`f17>v{rmW8#Y!ow-l``*hcWRMyf=+O-_lO0^ech=qjt3Ci)-P7xP;YD;V zDEdnufZXW#{|Km8)=(kIfHgOOC1APXhDSF?L!~4GC^y^$XNVJE`H!B~u^IfWlHdv~ z_JW7@Z_sKRpYGHE$IcoR0ng^M|6Bi;Sa+Xy>~-aYY(WCAWodfye7YZkI;Ga2g`?d!j6tg! z`CC96`M^cPnHOOo2~ajOVS=rY>t;b(A?M@{nq~U{I*I2yR7)@mD2Mzw&IVc?23`W? ziE|0m>qnsDX%3X=_<+_jXK;A*vKq__^=N*@ zSo#rU&T)@UHvtc@PMEGp;&e%%>QW|7R{^T7w+|t{7xh4O-fJZ1Rk(Dn11%rytWmM( ztWhxl%?&Yhwt-^2vki3bwP&}Sr*#}hi4Ult2KDAaiOAH^vO=Ox-?7_)U^OB@F4}fZX2hZ+k1JCYk2hZ+e z59Hb5!=OF76FuY@4nxk?3kTgD`M{&`4QP_gqnmY~26WS{tAJd9^__VpU&D7&_l(_-$;QD@7?f% z=`Sc}HK#6M@ae2wam;lB=!m6Ai0p(HPyRdx-7nxf!Kc@C1E@>`okuDP3aHuz45gwz zy{;2HdP7tcKyB`oyxO}6v?i z4|K*SRCW1Fkm~Nx70~t<_|D1+FHUTK{2$~tkQ+Tfj`iq9Kdx-)c2H9&^#I5pP+x+A zBI*RF0QMCC&EZ>dfDdc}g{)(Id|Y(wVeq+wqPu2*CR%+jyl@l(?@eZH{Qzp8gC@j3 zyoeM81uJN}-ABdaMYRri{yD%1G#d#LXb}NTD0*~r86N;ehP4+*iIPt@r(<^@$Ny8` z4}nu2yJvEsga`8>(8@tiYY&dndyuv;7pMu)eaHi(Nyej_(X%&@vAIHm!IR(bB1kQ0 zi4#cq6Hm}-4<6lIuAnmZ6j;5MN4KCy>!lKj9buuNq2IG4z^gZ3$U8D$@JPPo!+Z&3 zfTy)5N9i?B&}reIv)aJ>-W@<`qMJ2M4Vtc6z-w?lyFYaQ>b?oxrwj_XqpDB-PXKL( z^HEXwFZ%u#C`3TZ-80`yF}#?-3kuZ}-Piw%UIoeYPEip6nF~HCJRN+G3sj{0+>6cI zK#HfRXn<6J4ssI&RW;o`U@b4+ZUrU4-X8FYpDz|0g2ETV`7gTgHptcK*@Z#^! z$NwjQRxSH^cy_x5fKIN048`-efJ#}PZkvxjowW;mdR;F#c8AM2cJsej2RbRa*Y$!& zZ|Dk-UjK|2zM$j&yJL4WR7*0H3VQSgD}WE^%M$=)MbOPo@fjYL@foFdkdxlr{)sby zTEU=0M?t%MAzhH>1Of1v3CJdo-p~VJlaGG_bzV6B>n4?0l*Qbxfl(cU#G9H5SJJ`wn zrv@Ox#G~5{+|mQBNSzL9KK2GHfQ~_UfH&&DmD*e%0c^Pgdj_%_blHmoND-(8ix&VLa(uwE`-(@eZ^w&-P*7IlRh%cy z@WKTm<|f{vws(sH2G z3*^NNk6zL3PM~g!?}`_EyrAarhZoD@p8fZ1t^*xF>Dz4vYAko3co7)~K8Yao064Wl z&ad!Y@#5D;khi)+8<2!SK6$hebT&bXN`=R9SFmSYI#N_JJi0>{fE7aTMCo|3Yvbep z-7YF7p3Ud}J6azr5e4<=eY?;5fRASbxp)s70|R(0)Lp};)8@o~cLmTf8VO)yAkF}l z-9;N8{|B|mT`Ur?_fNqR$Sragi$rk$6xt#O%YXE+j?3V0%>)lIO#@{Y5ACoDkAuIM zyDxQyJHQ&wutfgz1~`#>fO=Tn5ar!|6))1(f!xvy$~T~ruAdQH(t+|7DDy#&jf0%& z0qYV%2Az@Hvb&UL{nDfR=8Jw-1_qB#=LB%JC}(6~IL-jtzu?jB zoY2hyUz3TnM8EsQi(rr|yS)=!jh}$d#B}7atdrnx1Dyr#)19MI;o0q;;F0Vn;=z2r zo2P@>kH@py-NGmNqi46j0krh=vHrl{{F8x!!LQroBj~QF7SL@3p3Q%l%A7!ntH1-4 zxK6toKY8&ERC+)hSfb|G>!ZR0ap8-z*FiOhcLL;SCg%i?ZVwK}ZdZm*MiA-I?JEFU zB<%-U(k$S{;?XPO;0WHD>@tz%GryqEL=Mo>QP4h~ZeIzIN;d@%8KweJ=_d1;Ul5`+ z1X*bTNRgiaR1r^e%0vzZuyHI1<0?RE+$5lCL||%MCW6)ccV+PWf5ao%O#(ETVEu!? z33QG=Xfz=J)JTm0jV2_3Mik+33mT_^#j8RXC{95&8su!%-Ez=U6?|;=N6@J&-H$xF z*MQG^@#)?It~ousB|WVpIZ745XF;ER5e8bf(kt5kNQwcpZ$kR>Yi;E{7|99BVh)w&qwU7ThbR7pR&IBK>J@215 z1E`@K0BtD48_6-C(SA@puK=p&Lma_}Ps0uZW}Pn!4I9@FzM!`8Cy(x%&0PN-n>qe_ zG*=2R@V9&f_5FK!H$9VLcwx&8s@hJ&$78uc#XM-w+LUKfpgm%s`Pvsen_hwsqip{1 zpTA`@NH?hI;J61=`ucRHzBuN3fx)Ny1o%{%%iucxRRE~j*zGOgqkZ1<|4Hy6zCN9) z;8v(luR9~S|K+>k#i0ODiR^p9qq+74D4cyS{1;WbBE`_j=F#iB!K1nM1Xy&#e^G%e zQVforY?!Uw{cGT@T!{IY$NSC!DFK}bV0`9<$6rt@V~z^=7z@bBK#p;aG2pr!6s8=Y zsRo5m#QDVjGO+N3o#)*v>iqzehEBY={sF!=_kc%p>IDXm=F}IUis=I=XpXtw0M%Vx zHsFfk#*397z+DH|8{l?K_vsfiPJj|xcjyOjDGV*lZ@hTB8dUJb9sv8*`c_H3M=!6Z zjU2;^37j}0OWQ^c9$E1lUV^Ub_+Mh~(aS3Z(iVwJ+aGI$HVvq@(kKs55(af9tZ$XJ zdUVGga4-TNYpdV`8Y=2O{h|}>KG0q+-vf~G#0M`dS3?u8?+;L6{pdF&?Sf867Vzw@ z*6{3p9D5iP>)q#HoIMK71ED8C#=l;4=FFKhj@=x_2dup~iiNrldK`Sf;=$YmYH0pH z=-9~t?i+N*sDRqF9*u86i|0MMS+_|+Bc??KG#umE{n016M`Z!1>j=K%%Fo2I$XGzy4?RknT%cT|G`WaF3<{=V=he0 z|2>)yv3NB80vTC!oPV2(imOL&ZG}&_KZj3mh>EL^Hvdjt(2fZ8T9ji7Ck;T#^;;Q}RG9-UI?*Ws#1K7ma-b@zZ{8-g3 zls6s$B@1vi2A_ilEgM6@mo4}~#a0^gT12W1MWE7}+g-*>|-!HN9 z=`0rT=`5CT+@Sy}!+S$i0zh4(JuDL7Gg1?FfeJ0qa#5($K;=MZjEco;MW0?5klM=- zM=2fw%@Khn{JX&`6EIz;4R_sf7nKZHHW!y_G?g+*ZO{m4Gwpyz}&STWI*?I zY%Y^Qby@pikjp|;GQe8Er79xGrY!>nS?L0g&e|0&9iwH+Y$xTq9#IWTs(b6|=xb+~h4iZXY&bGdZXb02fv zqUGBSK99;*+qc5=;7?}$ZLV9vB@(Ex^*Gq!x)oY1b>DRSe%rP6B)I(P4c+R|>$(kl zIpo^%AGsWI+>X3m_aJ1uE-B@ZOQ-J!5AggJIItC5jlY39(h9D&(56 z|9kX?UU2E+GCt{H=`B!Z3!c!e26eAJx|v-pcsNQGJwSV`nrlCRlC$d#AJ9@>umYcM z<}L=u4i*mZojKkDMTbG-ZN09SJghI2uJOQVfn_fOg%YGGBMz?g!86n~Dit2hM*_fo zPRO_qxar;e26XR>x)99oAHehXppil4Yf=p0*~uR-);t4wKveJ=sO5O>#as}#xf&E2 zH^GH5Z+Dvv!;5wQ#TmeDagXlPpjk(5Q2X1bmp89XhQYJ>#D7pBr10X8$7j&70-)wp z^N;_ax#ROMD)v17|FREc6sTGl=?82}z2^wB;CYQRGc^65SXGRUL*@(XsTS)jhubhi=dnZyred4=$8PdSu_X0HxUd zGe9Pv@aSao=yc=oU_K0;4AYw4{|m4t!Z135$$w3fa%Qo^Ixo8!ev(3y?h!r+X_IxyYc``32~xzoU>`*nC7G{xHtF41yuEECC+Y_e;_4G5{T91wKRs z?I3)#^V$)oc;UIrfFFJeJ`3WAT~B!M;yte&Ne5ZywOhR4n+}RF@G1D9^V%&S=e1ja z#wt3b*~ysM!}>ybfJd*)B#(oSSwNw=ViKtGIsm>r%NmM)Rp)K!m@HdM` z^Y4^mzFjGxvZ(v~i_J4$g1W88Ku(1&6oWeT3~XKM%@@D8L5&gCaZAidE2o`ml=61L;70p&kqQts0t~Pmg5*e#Ue=Wwpx9@8`4Y4(6jYui_>84q^-pFT7rhGk9n} z;Md%uVju=;8?q*_L7VZd3ZkGY?WYfD5gh0|_a{D`sRbU#T`NFMJ(rHu1dm=(ElAHU z;l0xBGxDb#i6!=nk!bHYULfIuc%dp9<>a zq1pf*N8;m$jU&0f@aatb0qw~5hQ0vJvi>jug-9$&2HkOc)xq7Vgck-N$3Yeif=`R~ z=nYNq=mmG!Ul^Q!3_J6;6|@)4r*r8B(B?+a7@bFNFG%QxjsOD#^ju&U6%SBDBEqK^ z+!uzgj_`P){pJ7v37-344JD6muwGD#3is&+8|~3O6|}wO#m6t8*?Y(d&`?#{7eV`a z!8^B+8$!JzlROSSVtH|U3T&JmY!K9q9^F&H1Gk{$#t-VyLB=3ntex`se;R*2Yp%02 z1L#0(&>*i%$5K$=9W&S)reFp;Xfn#<zmLs^x1`mEtE3UMV!rbK|Nk~T{4Iqb z+LFJ$iG_i|lYj9+{$|jcEZ6Qg9=k!y0vR;^Gh>+L*kH$7&gICzj}7cf3&#dK%W@-- z4Icc94;O1Vb|3ZV4dw9Y6=`zZzzFKhJxT>l?SF9mf7G%0FOTC6MiT~xqU9hqs5o~h zv2<+y%UNRl;+Q?C3IKI;Q&i;`Uewz^`wvm<30mRL0CJ7zE=DuZm^A~#%dMd6*1P|B zcHaZLNCW1gVmXj;r93{prm?DWpc7kP>-zMXzC0$y;MjfVwIafZ25W_KE)V{F%%1#< z4;6uf@r|SQJ)iD61&?kw4UbOO1|RDmCHCE?Jvx0Ccv|}ll&ZGgF3|y9qSssx8Yl1s z9iMgXMdAl>hSmcm!XDsD5PTPSHXjcF>12I<%Cq~wD`+9gr{F}dA%%d|lzz4Ks{o0GB_u>pL9W}BJulaqu&$)tT@Gif|oC$6OhB|ok z_JWp;yomS#UdH98;bHA(P{Qxgec{DSP>s>-rV;R306g`5(WBQ-;YIdmkV2>~vtJ-i zcW4B1S>f>F^h8iIzfQxW`F+4=egRj|;r+fmpeW*R?Pg>E&CR-YeC8MQ?E%Sxj<9u| zaNKnY_~_Z*cni=%8GeD%4iC^`8UD}w^+ur8G6Eps*8)Dht{tGp)MwDS_ub(Rcom&P zR>TcA=`|0`l(iC1|AX8h@|j=Ib;oCZ0bdD_yY_&@K$Fd`2RwS?5i573U}s@5b-Nzu zbm9QHiwEwm9UynTP6jP64c7pfpa3#;1;|ttkg01xVj3W^4PaM;OVN66C_{DfQ?N68QJZkl7TQbm;-c5zl%x& z$f=)_5FQ5y=LL{U!NGY2WHLB7Z-Cti_V@*`d9F85i~~h4c!l8-B-6mbcn4$}I2a#* zOalkw6R>H#ph&sX?fT>;`~Uy{eR^H*yp;L>|G#hdKgR}pg>o)W{(bC_Jn8xW`0LlM z-OpV?mz6`WHUJH5l=!-Kzwxoo7ATcOsTD!R&E+@X+{g{?z*yfe;dp(`qx-X~@qa|l zM-(WK0>-!XKe#C3Z;AQ!|G#7R9neau&QzqVnu?ZHT_9QY`fE^DO@U|CBcOq-eN#bI zcW0`EPiHD2RVVi%-F^woGF%L%&WxEnMjV(p?5Q6d5^K)X-8 zh&T)Chq2>7*U#(g8I9kvLmWD96FfGg-?Ob*E5X`s`<1wDIfIXpUR8(caUfNXtj3qEWYbdAX| z(E2>PEuhxd4^Z9X+3m~W(%lGBg}Bh9<)t_SNW!CYCul=}W4Et>W2dhIsv$o&gC>YU z3zRxtH5|LYfX-hI0FCq}fYyR|cvzp{Z_x%#I`&oyfEHbXFV1$C@U(On;BR>kp1*YE zaIpkCu*4V=Ge56@V`c?BW_%PuF>?bnOLWJhQyvtM9-YmgjR>Gs@A96F_Mj=-ay7?p z_D*Kc-tZ5e&Gj7MYlnnDl~b=b%Zte`#2LDoT{==ESUkJ^B|NqL1(5sc&{#O-aqy+R z2lJ`!lbzk5DOuQZDp){sgMHha0cyi^gSwsd5}>1lTNFXVQQbcrJI#H2>scTt?;3-A z(R!c+yyWne80cWn51=K7UqF|=xJvkRnw)U#+y+_;4?f<{!4a~D65 z#?p5nhn(^4^b>IGc4P7BWdYq|!{pH&tl-&w@B!Kc4=pLp?OBV^G(nr)y{Ts%R06Ck#Eb|3NVbTe@6c4P4bEs*FA zwg4r;zt6-Oz=wf4eote$_{ydGk!xof2k26t?@y3D205}Ce9CMG)IMFGP6dzN0?-zV zv!KiJAQPLsrJ_&&yLKOeE_M8VOB{46>1#Gu<0p>YUpzavf!1ZXc9(HL1{c4%cE9no z{#N4X)BVh&`Ivy?aTXQOV!EB69T+cUH-fU2iwcMF$=*O_&u$kL4wp_HM$mcDy`C)K zZ5OXRt-qBXay5PeS!-&437m3wz*FwCSkUT#51^F$gsh zWJU(i`q2~>4X|pTUfwX!3MTO87mwc14$!)XoH&rrLO^rNMjp+FI6yPp1s5KR`#@c)*oF zdZixSz6>7SjNlI8e*ur~UQqWLH1l))I%p}-92HQ1+Y@$7Ao6~XIPhtJ4U*u_s>2I* z(BfT>UQo-~x8sE@=veh$(NBz^-37iKFVvriGeA!O+$RCmG4~;;0`FygxF0mr2->5- z@nY)(Q2QISN5Qw_#f{(Kxwo}2LmoXA2Mw`+$IZ~kKRvo{;ym;0&Qs8M5V2>TskMR6 z^|Ao1Z?pg(aAplYRD|G}XC*2Epg~LMnGSFVfmic^4`H(dwTMA?OD=~y2-fY!bBpthfbse*}&&Ipr0{z<_YGxVEIh-XfHDeb3=ifwCyeuqf^kMIgx{5rv~WM%O};K2m*~ygO}%U zfkt!#JbFE35Gzi)gkOYh`~4rZtlj~9oXC?pP^kEGfHt^*MPFP(hzLML4%9vVZ+z0D z+nwW>3x@;)Xn3OeCsWNk56EN)>^PJ&pdB>HpwS7);UZvndh7sS*tu#I6KG1b`y*)J z-NB<*CdlL9V^&btL?7&EHqh-4oo?WLu*`=+6Zf5N0x$l977&0By#h_ff)g2dEck`f zF;HyaoEL58VE|30CSaKt1%(OPlqlxi;L7O{1uJvjTft`RKzD<4;JzE219?^ys+9pe zV~6W*a3mdAW<~G4hTiaw{cdnjYw*R7N>IFkQ#0spaF7_{Zt&@#aVGFVA?LyS!uTO~ zgM*q>kh{S_`!Icb+rhd(2N;BNfYz=!u)wC~Ao<|@i*L4|am?eOkzvFNj_AWL4jlna z&6R*i(0m8zka5J;V~|2p{zL{>rBtErfkQdlNl+ z9XUWvSp}bNO`pyj6%C(m@LD(v&^SBz^yPD)1FON8Pay>;c;M3;ygLLW?_>Rozs(24 z)jkWFmN@teNv-EDcyx6i^3XoyWBr4_{U~S!XD^QxD5+TZY99sd6#Nc4nG#8(Pxm3u zi!VUwL;HY-^@TE4kM5tZxjlPr1U#&Ndhk2_^yu6Jy?gu@e|sgU)sT4}6x=WDD<1#% z>3#t680Z8kPwlfFJ7A&V@%^Pw_bbnXe>pt6&w|>*KFlwDGmnDw`7$2?Ez0Pg0y&PM zyGI2yH2I>JiGjhh`9EW+l&AH*Qc<7obH1R~*ELXWt??qCiGkrYXkCLZXmj>uh+q^G z1A})ji@s0h0ffQeEheX5*g+=3Vf$6CfLa=#tU;OShy!v0@X$Vu5thE0&q3yaR#900 z^6b7=?Bm(}&r|yk_(aF^FCK%!pwo@xwXjFydyqoUULG6JVvBd6{q5GjLAQ6G11-Bj z_u?u>28P%AzP&6mKAq6RD7sI-m;yBpWF2UF^125sNUA^+%rCwE|Ns9&`Vc6Yo;?U! zp8*=n2OZM{nUnMEzTp9ynEeSVLtuBSr+{42co^h3kH+I*3g_MGpkht{boVWIbA5tO zx1dM&t!B^)ZqR{0mwdZH_lf&HaBKkWIyZOh=J4tCec)*6DN`g}&gIzcz~X4>s8Gc3 z*?sZ2>kCkO&$pZNH3!H5-)>I&g*z8Ajja*>uTW(y7K%wDA7SS z(yavFk6r*ftHT$3&NSC9a5b{B7IgB4>jO~H(Hr`}qx(GQn1BZ_Z1;hx7x1wgp!HMT zkc9*u%|{YIOJ`rS9RQcfM1(W=EL&p389c8JKjQ>(-i9k^hv5roB(`2E@%QMB)Bvr0 z_2+Qub&7c5dP|(ar_4u!2q;fscIx9{~$$WrGVw$oWa2IvSL|z{lSj_=3}y zk2a%k_eId4L;@m{dwzcbjtx+W=-GYQnUJ*D z4H^z(W(O@<0v+cF9%?ya5D%N@haS1>;0fBYaSL?dl=X#@82;_T9?gfDdYc$D{{M&U z+*9+gzE@Jgza2DQ#?;%$paPR{J@|;L@eqT`fm(hB6vBj`LOlSlVYThL<9ouJ_pkM3Li&Idt@^}%~7{aHHMU&LM)XXs`>=3>FZ zz%S4YIq)8Oj(j)x0C_>^Ir7brbMK+&$ajMdkmnbKoFm^29;ktxW#8Ql8e{^+pMghb zJA@6c-s2CSIrDO|8F>B}RJI{E;ks{v4upi;NRZwL0(zAodObWks{=ebt0O$H9Vq#?0#qhd z8+de9TX=LA9rbXRgXSmaBVYWQ@!3xLnq zIQL>pEvVgg9$eCTblbnMsd)S!q^RV!M>ii>^o1tKDc#+mvqC*kF1)w*=$;HtS@?zL%}H*d>ZJV7h55EAW3^QBx$b(D?l7k3ep44 z0#H4T5IvAQvKln=>(RLytN_e(uD2bc*TbVTJHVqeI|7oQP-+EGenQVjy_Fu|w80PBA9Aup%LCj* zKmOuJ(ewY16QIOF2SPPJ`tU*(Y=gN+XE}#QXSo14?W3dxkQW^Yc=16g$cx3GMMD-I zoyG9X0n)2MK<^TWUi3p)jlg*Zf81n(wGud=6;cL*`-C?^Z7}I>CQ#Ye$p|X_nh&zP zNW26ZF$SNN#4i9T^aLSApa7)M6ND6j0+2#a5K;sRfD1i-L2wc1(G9-N5IR=v(G4l@ zI-x}%c;%b{s8j~W6}X)NK1U7I#t4O{v-U-eE2mdoc)=9WN_h?T2&Tz~%ox!KqH67HM?e%^B!foU8{}Wt|FL{7A_<$Oz z9^J9eU5!ujhrjjcZUY(N)Xg)&qq_}cmrt)uhikX73%|xuevPmE8h;&o-TwFTfMyE8 zLTC9ku7WR*ozB3(;M$$j&EnHt=i%JTlH%I!(#+xw-n@Ghbc+sXYpqH@=x(Ew>7W~P z1X!knI4=DxpZQ}RfMk98!CQVqrgQLX+yu$VOb6Xf2Aob3ZGskCsL2s6B zo(Z1aO`tIQ%rEH7;nQo<;R@d0;@NzR#j)4ne=mzecSsY9D`*GgG|;l+?lmf)64tf* zfn&FxqxHoSR!8fXrA98@M?oikX)!S{SXz{@T2`=>iZxVlFq8_oSXz`gTUwOZH(UHK zvFbK(>Fxn{T|JwR@pNDH1l^mx)unq4*hfCyQ^2M-|NCE}?P&eAL=EKee=mhV*W5d> zI9eYsIRMjdeY|83Xfv_vhu2#?nsZbX82MYz|N9SGDd5cVnO}hWGrvGE$7lY?1E2XL zPk!c)yac-63v#WO`b;SXetp&+Ryl?;z0dptqCqR97(VmIUEtR^1iIvlKa%+~e{{6AT77(Yqnh4{GfqI>WJt&vJqnp+9fdPYu z@exppjd(F(`^*3TPc;8vEEfWG$0I<)+#e2rH#lS*_UIMuVF7j6d{iu6Sb>M3dqY&f z*YYa7@Oug#iB^6MYgLDz1+}Un{VjMq1iWVvyaIA2sBkj=@1Z>t6!#w8FFg+aW&*8> zO!w$+1qpTY?C|J@F6uJraOq|PHBm6)zr?_``-2PU1jDng-N#=zfNo*6_+QG>Y4Mt~ zxq{_?DRXB9i%0V@9>?zMo}g=vFN1gK|1O#dsudkTBiJ6GMNt8uk`@$fkbVoI@9f~w z{n63-LNRA&sDewUtIBJ3mrhrO&QKN5gtSlZL{O8;x0}fov?MiD!L$2>OSi9zM`x&o zXSV~#Ye~xhnIeI5HWy0|g(42nC}KAQ=v)^E0T+u1$&!aI7Lk&rI@W+kUeT3HL6c9u7B74@fhR#+ zEnIuc1$-<^1AO?MT`fGiFZ);)OMtc#344GN2WXoic%MFKn&iQYe>cDjbwdL{XU#!3 zpj*7i$px($sP%x^)9uQj?fS#f`WS!HYj*Hr#5DeT7ZnHo@RMo$^*$;AU~U4KU696K z@7j>YU++5s#9H9fS-SzW%p+qPcv=rUs|udZ<#z&2et{>X?|XE{p780c%>b>ibm^## z@aPq_05#NmeIs5JgN`ehWz&$N~=YyT##fKifp%Ffor3D`R&Y=;YCP!~CXhYG9 z*C#;}cA!$$rDG2(NXVl*v;fJ65ih!O9{+dgtbrX{b9)CU6u}$*K*QNRE-(H&?ggD; z4B9v6;b9%35&+(p?8BI&;sM(J=XwIv6LxsfCj(l;916bw+~LIvG0-u0t`j`FPk3ni zb|8iez+-}+JP-Z@uUCLvU*gkQdH{UMJ9yT$+joISZ|Dv1F*T*&gy*`zqtkT-!~xo% z4SNTFF?WV5fC`)h4{gw;ng@R}clrx}Rtr>kXoGgB9{j=F=^o(GeENUur4q^RQ=Xt> z>_FGP9R^JlPn!JXf49E?Xdd-AXgPZ8$r7>dlc;L)CO`QPQy}4DSszd$-VM51?x+X& z`Z%yTUPx*pTrBGqO2k~c-4#HK9zd=IO-X3HNIxOY;9^-X0G1Pg$whc{`%Ap=hR6kg zi05ij&lh%@+hKZh)0Fxdi1GoXWNVQT=|7(lBSz;nUhJ$iYw|I0GGs5${# zSEAU-2EMM`j|DUa*(>S;lD>N!w63Jam<1Fr9^JkZFrvl--0g*}TR;s@<`bQLpdNOK z2x>sNPJ#zi8>p8IYUKNNzXzG`)9u;;I-DPQL>OYlArElTa)H04n~8w|bUY7eh}^r^ zh6CbXm(3vmx?X@!eNX=nTJi3rO*ZLiQ6X@J0$SGhB zn?MUEet?32%crw~!>6+XoMitWX9tb2?gR~>yf{7qvS5PKrPIQtqk;uwF(^%Qbn`Es&haAcN_$X*~!++4~hX1bJ-+e&+ zw9efHpw%{=wHhABT@4_MrfMZTdPRBu%7Tsvlz4G}4R|dUndNdxDO7$Ch55j)2lDxO)gquTWR`s1$gD&c8ndb%>Ak zhoWXsz5-Q(prUd&Y!J)0^<;@X=q5x@?Tetg8@z-ZX^savhy_}bGc66gr~zIpfy@Jy zrUjtWF|9qiLuYtuU%+d|i5Ed>;F__6Kl}j5oC#q4pk9cq2k7uF@Sw_%7dmj8TvQ5t zI%^w1$|69@t3IO{-CffEWi}=LtF`qxED7SYZH6;q6qI(_K^?K=Wz= z9^JklUfk&gWxm)Kpa!8f=(0)3jg7=y;s|P5fSRqAplZ2$j>-d2+oSOas0jjU-$72- z0-Xj4YR}&J2~PJBFN_a>(>JdG+(vL@UYtX4bdI~*fEFmf*aa73f3XhEb{BZDaLvpA&7c#HsTFzU~0_x9#{8P@s zuL0Te7Xb1UD1N}x8=yVw#h0N?P0$g6;5|3pP8!xu5+%N%X3)x2FaNuAAMok!2Q{@l zy8A&5TTkti$jxWS-P6#z^P-RSp<-R{UKR((V=j#xjNQ%}*3J^8n<2^H_{@vbpbD;g z4!FPQ0h)6HrLJ$^K&cDVTjBxjQUfhlfcBOYZh%wR*Snw;=A)wULh}G9iGkw7aO zNdr6v^%3N9bE8We(1gong#Xv{QrNqyN0#9MCna%bc6ad(3KD1 za6#TDgnV|U_a$gJ!OqS!{ssvs{+38a1_pW z;9vsHP4oHmx-J0KVsDPU`~Oi6KSpcCFhIXtaH1xmP@l^8smT{$4~Yd}K+ z##^8KcQt5GeJIUTLBJUk8b|}4{d)ByeWgf8Fbc~ zOQ-XX&f-6v#-Ovmn-BB+Kjvbcx}<26NAG-4f7Y?vO~cXJO@hDm@W226n^QM1G^cK1 z09}*r(d(Z8I&-)C+KV6iU!qG@K&9^PfB7G@of3N5R}{ELoudLC1&5yY74H}aE8aYM zMIF9?QlIaI7yTDNWm|73sBqixV(C?I(yO`+N_xH?WaqC(g^4zy52P^3ZR{c zjc*=+cJOzzs$GC4lGY30r5nFIx<59js3b5Pb5TiQ@aXML0o_2lBIogcSL1Il|A7)q z_xTqyKz+aN8=!#&g>HWd(3;xr3mykwDKK9IrR0aaul~Dq|7iRj>>1(6-vSydYW(fy z=jp=VvY3H^q4Bq8u%Bm1JyR6a&NS z0+((V6&1&eFTg{Z;Nw1C1c-wYu8&HBhxLgP|89;>AC&|b(41ia3#glu@?z#5afWUe zm4st1EGZ1Hbs<{8-ihU4V0bM9GQD~kC@Fk+&5tDe{^$Sy-QgPA;Q}BPy@Fr=JAy{K z&cEQ|eFe&i+U^p~KREcCKZ7qB@eA3A^vd3ba; zf*P0}ovkaFLHqZ>>#sdJTQ`7tZW$idZUrUcpdd&9^?{r~3%nZLGCj{p4;uushLb~#zU7tXy#z)2BMZ`I9vH^9_ zdVN$hUgUsoI_(v8ya`G;Ac4}|@G=XYb{gM+`V=1Bte?(8(@cvBXyFcMfT#P@&K%HT zW9G}jEmMzfa9g;_1=7;>>D&Qo0sD0B-~qQ$cYvl4eL8o@KzN`jM3>GTI-s*JjyHgg zvjSDAKAk&2M_T!G?f_Zh)42l_WImlcK#p+f+yM%V9k=;UI&`+jfHZc3kMefu+z)EU zgBqdWV}&$cf_6lKiqWS({{Qdxlkn)ipzS9BI~NphUa*1!IX+^AE-n&gR9S2xEAybR0bM0cz;K7K5;v85kH|b3xdk z@nTRW*|Qj2b$#X+Y~}zZgEa^~D8^sRLGT4Y@;wMXC@H+CLGUF&@;PAsb&z?WGy)27 zg%|apooC(GyE!_$K?$SVgQc_E1{C$6Q^>m=I69j_3FSouLK!F=z{)~Ul!21Y3&ZdK z|AUNjVPRkZs{ti1kM8qegM2`ac)keiDNvK;4vhKZ#YG4c8yCF< zjR=e06#(tyjK2m_2$~iD%r9UXI|(%CE5Lel8;Fkk#IJGgzbH$y6vKbfV@*;Fpf(eD zPD6lo^)`^;%O;SzNL$}6Al_myFZPEEzy9$u78ibvVg` z1~nB5K+P%84QC0^dpn_LAAyHzd)KHqK&pZRkg7oX6f|46ZU9#WpamVEkPmpl`VCad zfDckjc=6*aoKx`PHH_oi@Zvt0efov^!k7QM4}fN*JovQ^eC8Jf-zs+c1^>dA|1Z7( zb^Srdk@qeDRV>|tpz`nZi_Z&?<$Nc+C=z5~fGn+lvIx{)b5ZdCA8rTTR?)5pABVdK zY6N*W?gyn&(C8TWq-hQCX;nVGywjFSF}U`+bAt*~@WF9w^ z7`*uJVp%$&%pB}D*Y5K^y{!8efz*HwWjp<%8>FBUq`lXl$)}ffF_K)q0Vuq%A6Dq$ z(S80!6$hw9=>^BU@tGIbS3uUkgOUd1B-d&S=nNC+ASqCgOMtGk0iAIRy2KCEF28*o znts6T@=u^e!riA{NX~!xAG9Rt+zbBsFaP&uFn0TCSo=woWP=L6Kl8xVFNpaO%sk*| zeXrQG`?N=|2&mn~;M3g?YL9w!_k&gjfSU0Ke=>C+23??)>eQ*j_5Uzv?$*)zUeQ&@ z?t6|PFm_$_lKeLUe^H9yJb#ga;Cz1(jo`4q@I!EJ zzi>owUcWFwaDKl~M{u}bNFg})U+^M0?_V$=IR9UKo(p#l|BGh`&f^z15uDF2&LB9< zFZR!U`JZ3FU%;a`6jWln3VZbWit`Jw^9%Z_^9%SJ@C&+%^9#5u@C*97^9#C~ztAcJ zFY^-z&1!;zgVw*m-REBP|N8&`wGx!G?c4wVuSKDp+%NzCzvcir0<>$I>ON3=G}w8qnr((-TGp z2FLxuVIgiH&!&N=2f#gs3@kl{^^C9ncYkoSzR%x&kb!}LzhxD;p8)AUfJy>zU%`dH zC7lt}e+Uk8b}h+h{2lD>;#%V0_&eCy(XGU+@prI?qZ@yVGgytIucKRuVB_x~PhU6w zR?tmzFSQs!-nb5Szvb`$|6fWX32gZA|Nl!4Bmr-bz;|$hf@mpw|NsBXXGj7^-~Rvq z@+y+R3LXZAmq)-(4+!%0J(I7ZgdLo|0xaM<KWI$6H{?*<=Z#m<0|HkJPU{|^q$_Ya{Ay}SSa^J};|@N2rL6!2@f2JmaTHt=h> zCh%*zPT<#YE#TL5T>xrT6uhu^e)|8j3%`JmN&%=1<9h+b2~jBlaYC}AWrNJ z5GS<(#7=zxV&}Gi*tt(Y?9vVpyYvN!T{{89uKfVo3qA$3rTzs>eabfz9~=}1ulpUG+fIz0S^(OFQo>V5;-f0y9V z-3pq6_UZ0@0Xioce6=YPVr8CBckKr7X!mty(8SCUk8a-`p4#U@>#IP^`9V{6ETFB% zkf}S5?p6jy1_q~Ykp|~(o<@)ER`B>juSo}Jl2QD{8t^bUXfV*~i7dm5)IU%EJ9b~` zKIG9W;{e(+v8zj!&R=q(!$&2S=xi zibFT(ngAXLk8beMDhLH0Pz3?qZX8e(Kw0pU3)l!3enD3QsEUkESBua50yQc&poK@j zKJyFYs95l890lv19&`CFI&1#Nb$-Qd%mD&f+dqmtm!3p#r&j>E$`PM{J9D^nGkYFs8_muUS2s zlQ|eXn%y`AUV{#)5CCn*?LPP7is$qH6F?iA-j_W2@A&_yODD)F*mARL_fa3~1CDz@ z6IJ|85#U|3r5cDl?rQwjrDLrNs9Ngnbzx;-cp(${_K+o>QMDgT>_d4 z>Fot6e6e69s3-@^b*y0p34u#w!B&udehuFMe!<=lRt5%eu`Jk{0%rOa@C){qure@s z_LfQbbh~l*cAxOk<^!FJ?9XQ3^8@~tv!HE3 zz4ZaE-G4z#TP)pw@VE59uiTTEDh|5Iu>`!9;yn0PkQ<<}n!BJ5MTAf9X7GW1yKMvje1;e;L=@;%cQa*h#!bBMgos9`otSka2&iN0W|F6(zzQ{ zDYe9;?g)k8bY* zOd0T$yE9ACBG>M(E|%FGWy+4-=RkXEJ-Wkxcrah|VD1K0VlQrZJpb z9me5d9R?mYlLF;U4oI;S0cxdB`uX_3=l|oN%{ji-fB2ii!373r`zIugcZ13f);yumB+zf$mam|iUfHa ze8dV;I??0t{|VrB*8lS$O}z&|?Q!EXFAQdax~+3m68J&8C8Glz`8BFPfR=+kaOKzV zzTnEQ5q!XvUn6>hE5Ana0#|;G>evjfWqtw?P*Z-vAxl(0%TOf8WdhX`Rd- zz0pkI4N|YYdu7r=eJ}-(krpo|ZvZVR-~b}j67atdkGj#JG zbFl>7&FiBAKF`n&WS9Zy$bzYEkN>~c?`B=P#)JXYWv~V7ptYN8Oc-9Q1epWbvja*{ z-Mye_0!^25O&4eIXgmUnMsRG$fbUEM6}cE=IO5x&aSR^A0Zj(MrVQJ_-JJ6;JbNMI zIp<&4_kzX>rhz8FJi7ZpYd$@+Pk9{t$>d>uv$&>PWESX*z&_CYV(WntJD=V{4&Ppr zY27azyX8Q=nGTTlUYTf*Znuih{DLeqK!U{}L5P6M3>M$sG9HiSw~VD{AQPbctySQj zDQF#;@tGG!(?F>o`=E{8P1vAK4&-7&_-fXMUEoQw&;zhRo6bexK^u?Oll(26U|)h3 zPa_|wt6+TF5wyka7igb(xKD4PM@IyQXZJauUI&iuYu)c�b9p-}te_2l?e8}m(4xymoqXQm| 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 z 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

C;?*%oqQQDNq>ylJJu7RzIG6yGa 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�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%0Alu=4=O^z(wR`^+47-v03p&Vlx5Mo&#cuZ` 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�vr>}piUAboq-&U=z~LphokuiV<|Dmy}*wx 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 z

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

XqR@JzJ1@`)$y8$YIcU2J~z} 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,~^J2hbe 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

a+U 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�N-vD1g$ie6a$`$CW>hK;@y%VhGO6 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

6Nz37poF1uG0}@bAPF{S)d;y9(h+j8 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

9jc^yQG~AN~ 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�&3zA?6Iw8v7 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≦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%0AM=#qhot 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 foOrIt&8uyclNm=`e`&L(Bxx6QFDm%`*Wa4x&4t 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

K5M2|tG%A4WJ z5S0MYk1LDWCkq{m>r8IoUYHtR98Zia|=Y}RAA z2xVW{tjA!n1tJcjlc4M=Tl5%SZGq^0vqg_Vbt^=T0f+`+F%O2Ct$GXxpllE=zYU^B zVVfR9Fq9p#O^;#1c8EJcbkq)rnK3)`81C)RV>lz@!SG;*9)tHzhiQ z%T7Ipg;4gMoq7!4cS6kf*rms?cNawcfn9nGzji^y|LoFZsNJi_Fd@gAp<%BcL)Sh% zh8-c^3_bhw7+Ux1G4zCZGj#0NW4OIvkKsg)H^ZI%dJOspAZ&vJdJNhJA?+ELgL(|l z59%>2N$_BJaZryz`w+x@okMyIUykW92;_K!>AR=(7<#h386KS0WB7MQkHI0-n}Ol1 z9)s>VJ%%3{-V6rk^cWVM*JBU~^=4RdUXLO9f*!+@5O0Q*3wjLCF6l8$$?#@)aY>IM zTvVSSA<~;6LR6ojPFA16Ai|rWK~|q3R8yZ}MVL23gr+`2x`{qRL8v!FhKWAI0VjQi zfGlq??c}V_;E?If;Nq;$AQz&~kdW!kpb(p z47;}LgU1T?Y}aQ9*#TjL=#xA2!ELrPJMeQ=-a$Uc3B`2G6ec4NYR zeTJ9&A#RX4pwF=OpgzNtJa2{#2lW|P59x!;6OKdr47GQ5ZfXHY+^&j4ye797@R zSaDb%oKE%})@QIj0#R>sM4v(Us6NA%0&fP9qxuX@NA($A$a*le9Mxx-eH7xhIY;#w zHbdDi$MhMhjzPq0j_EUOg0in1(`V2<4iPsvuFtUdxIQ?o9yqSga2qOq=eRxt=Lv`! zpA-5FCr;>t>mU&Aa#Ek+Pp3Bnh<<)jpMj&xo8iSteTJ-4`V4zIy%};&=`*mL)@PW} z=?$jmLfH#W>oe$`(PvoE>CIqpMxWvL8GUg3=g%2^hAC$u>OpkCIemr;o!$%}n&rGc zgG`q<1Bh-quMciJwVc;yaJZn)u%N>mOfy{6XSmSe%>bhBUDRh_==5fIa8aM(=_P#z zi%w8F)Mr?BS)U=J)0<(%WqpR?tNIKAt=ZY0{2e6ySiI9`So#j4 zcf~t>hMf11v<;%yyoZ<%qRT%(%&GXG&%p5!q8CJae1xb0(XOBL8GPEk89YAeGfe#i ziT4?w^cmDYL)2(|)@N}43`w6JpY<6MK10$!i01sF&v3!XgMsIZK10P9Ncvy!MV}$z zhd#rbc5g7P_D7$grrn!CvZDu;}n+NcpeN@ajJ#uHXFE zXAoyF0Ov;u1_Oq73}=oB(w z_|xUh&?98P5F%p0aG~29Ov{QHFgWyp=GP1u@+1rxTDrX%3M32|ETs$>)^vL_*hm>L zT$M3k$msTFxFKV}5Fls3(9q)zrkms;?rD)XVAug=gJ@1=1BN5L-V8j-1`Jv%2H-xj zj*0<;g1P}i$3hP&;N(X278BVZbn@*PB7d!+_zEhXKPC1rLTR9tI4oo(2qCY&{q_JPjC{JPjCfW_mL$ z@ibug;b{PFpMdDSUIq*?&K?X0ybKu9y$u+6G(8zIybT!sK-nOAf)7L-L|^nZVA!DI z$>8E=z%V<+fI(xrH^UMT9SZTUMyLUUcbEagl^Na)K4At73E>6|HZ#4!^sz_-hL9QF z3@0KD7`mbi7+7X{GxS6mFszS;sNWE6z)%=#!0=(ZH$zFR0fSD00mF+vZ!q1PY{0-W z!JA=1vH`=k6a$6_6TBIAq!=))PBmbdGr^l-O{xKdX_^58gRcjJMVbMFe}(}=O20Ql zK!yQBbd~|bk$!K6m@ET^o^k_*f@$7hI;O&ap{3880YtB_FkpBv-J4-Ug#p8d4g-c0 zlfA*T`ZNQEj!E7O8q*9I;%68zFiiDkNSI;3&@sz^A!4dGnBFqSfMLN@Zw3&3ah?Ig zi>clWSLPWo{90hZpfk;z;m-mChJ7my7@kb@W;n3YfT3s=B&NTIibdWGC$<yX4H)Eh88Fx^^JY-kWxx=;%YXqib{ewFfT0!2?$~9(@O_s7!7L~^(Olb z7^XwnGxi%WY~BwkAGYi_U@$lUVS{M@I@Fj?r$5OdUk;rwv}h9xt-87>?*VEA?%V&;$I1`Kv5AZ!N^ zeGO(V0mI@`2H<umyfU-d}%UOsT5N&$dfPrDDH-p7x1BMkhAbA`_&%9~C5V63UVa`nhhP>Mb z3>OqV7z%D1FtFY=V31hg&0uiPfMNT61BMrKy%~1gH(*G3Xuu#d&l^l1e`LTAFwdLe z#3KWSxF-e-4IuF+1`O>_4H&k}^JeIHYQV7mnE}I-dEN{go*6J)e-079@!Wtx@udNS z%zSSKm6rw#4X+FseCB(DX{k2`3^nt;8D!oVFjT)aVAwFc!9@YRDidW(clFWW)>^mP6Sq#0(jn#SOvcyNDYyglY7&4g5_GUO@V#ttbYRGVBmN!F=sUbtZxgkTt z9B+mR=7tOlEe#nw=6EwKu{31xwlW0wNqwvg8JesN8BQ$nW@xc8WY`5|@3Asu=&(0r zuvzR4rXM>SGH5LIW_aRk$gtkkkbz^dH-m_qA%m)iA;W|D-V7EVh72CQh72*Yyuoz2 zuOYatSmA5Pu*~0(L1dOU!wP>x2J1jWhJG8_prWN?Z1 z0MoO>4H**VdNa%kH)L>%Fa+1FE)j+dPa+M$X#+%eL>q$h6o~GKH)O~Fg@3#u!`^sE zcpiv1WQa2^@@8!I3%nUlz3-uNOl6a--0YA)&|+Twa0b$58f@B149NVu(9IG;66L!;%Hw z3>>9~40WXtw>6X+G8`#`m;<8i%MHQhn?t!F!_{&_2A>7q3^zb@1te^JDhwI+LD>f? z3>o4oq4ri9GF+{MsJT&T$iP$uF<+<3kf9&SUQlJoU{!4h9&@&-He?8_HDs9L?ZFUI zYslc!WXMpl$Qw-8HW`BJ=!PakhEq)t_n&DpWawx%WQbYk4W^k|3>iW;fYwqPGNiW| zG9;|`X2@tWWZ2dQ@ym`jLk8OpLxu@;UJMQ$h79XE3>kDbcr$G1Fl2D^5YWveuhnPq!gMaE~E_&nj<*kRC&Z ziatYzkY(OrdSM^Lk4yRt8FuvvThgl-1r09@7mO zI%XI$%vkLWriEug)z30y2$^ljpt8mrOrM!!$Plu|n*l^S%rj(YS>w$BqCd?yWZ1IC zo8ilRLx${yh72#(cr)ZIG-R+?YRE8Wr8k&fw!)C1V4XL^iWPoW4oLTP8ux6tn z!=}B43@$6Y8Mf>-WQg1cDMMoR88Xa0V8{@#(wkwy0Yiq3hYT4cR(dmRIb_HXeHc=P z#2hwcm~K#h8D!5GGN`QgW>7d|$nfc`A;XPz z-V9&P8ZsO^4`H7;Z^$tDBBX5janX=r>J>ujwM zHDq|Q%$s4(T|oe{f|OAY9vL#scxuSNu+ke$ z%e*jTxUkxr0YpD~VaTA;WKjNU$Z%k-H-pMoLx!8*AbIxAH$w)t?~wGS^4*Z(>UT&QyYbzS z;n)vD@OavZABGGWKMffUZ14utM}I-m-icp^49$NG8IElBW@!0i$l(9qkilT1H$%XG zLx#owA!aW5Z^*EV!H9upvp2&Y1|xt&U}NvWFh|UY;hwk=!<5b53=hPO82TlQ!1dq+2_uGG zl1AWievhOPgNPKwdpKpRL{u5sF3(o0W_hYPNbaY*8{|Xj3*~Fxl$O(4lO^Afp0tGl<>*WrOIu zYDNrqwtF)?P%~nv)HGt)u+^KPM$?EPSjUJ#Vuv?Fh>j7%LLG?SB|1h7UvwaT0nzIW zjTj8Jdoye>G-7BsH)5Ev&6}aa+=yYlyAi{it=IDEdKocXLA(b8N1PFZPP`Grn;qU@+BM6FAz-IBgGZJT!}n|>2AQ4S3_r4s z7%t};F^KH;X1J1T#Nd(#aX*MYnQz3fVW&64nS3J#yFw#yJ>^hn#L!l3#L%$Io1vrF zh#{}nh(TbNH^ZG?BL?F>BXC*j1EN7#%!A=VpAmybKg3KBoz@RY0~!5B3_qaaAlh+) z5yKig4~BvXMhw>{7%_m>oZOgT#9%fN!nT-b#BdhMzA@2=A#;imgU4=fhMXxz3>{O9 z!0i(d?Ka(rA!RqH>@{LoH4~Ed*32|w*f`sWVa;xD28KCC3^ntO7^dv@2GfTZ7%{YH zc`zJVV8kG^5R%3~^!0^C3=O-z8Ez~zVz65TVMi=6V&Gf~@#BuAMhy3tLj3Y$nGwU} z|%zCK!dLxFX>mlMV)*CU@Y=D>pq8TCo~dyE(s?SbfJ*=xiwV=u%#Ao|6ABZfJ9yct0Bssj)=uQ_1E@csZK zUwk-V#IXIK5yPIn-V8eq8Zq=AGGaKf$D3ioAtMIS!w|nn95!MwKWxNMVBx`FaoC9A z{1GDtj=kOtPmUNdOgL)9(6iSYO#eS-#89vow7$!Tq2@TmJs`U6gb{_9s8ZoF`gO~}TXF%B?+Utf9L(D$V`g|jX*Eb;f z=*$}=N|CEq;3^u!lN3`-7x*4`U2 zynJZ{ZZo`jX~e+%+K8cMkp~0IYa@os?~E9x?DuB4^3I5%@;xN|TzPNAp!Nacca0B5 z4DBBv{_6N(#PAi${_(+xA@w6fe8op2hU*_8VH@$uh+)kqh&YHA{0vDCBA<;I{60g( z13nuu^h4PbJ{vJy_zbZNL@RxP_+90T5kuS;i28&tMhpkOK+FNrKcM0u+W0F(jmcLd zhLmqc3_tdHGc@4qbZ|h_fM`=5V}=tg9t;*d#tadB5b+26#taX{j2UDOc!TL+ zNn-|{eclWqlEw@&(#8xk4tO(|NEb4#^AbA$Jm&m)YzCo=a4tU7Gq6a$P3V+`m>V2Ad<^3><;R40i(|>FPnC zF++C{B))orj2X5E8#CA(_GZ`-Y|QX5)R-aVus6e#P-6z}Flg9@88f(q88gf{>wdF9pRAp0?`YgY!JNz%03fr%+MBL%)oHWo1r7ZnBj3GMDLSG zV+OS-h+d5-V}`R)#tdhUdNW*zGG@?@hWJY-+L)mk%03Zo%y1_fq8>#1#X!^q#27P_ z#u$Uwg!IH1GhB{=n9mVw%n%uC%wTiOo1r1rm_a1Ym?7nuH<)gZgTzrsoH4_iIEa6@ z#2GWF#Y4>0h&N_PhO$%QjTt^e*eNqBx8n%Bx8mR$GpMx@+64f6-mYnlaq}Z z4jl7lm;$1cA?6%NHfFe=0&)L?6k~?DsSq<4q#85)PBUisaLk+GPnt1S}1!%u`$EDVq@?a&WB=S2L2Lbh6~5N83am<84OE|87eG1 z7)(lx8A74#2oPOj3~sknlo&HihpL}ZV$84uDt@5Em_fJHnBm58Zw7->V}`s^h~GO( zjT!EiLelwzQey_eGKkw0%8VI2p=_TrV}@cVyP?dOVH=daqs*AWtQ-NC7~HNfXf|dDYB6SrIO)w0(qhbz-D(W(+vc<%n;TMDWf8~jTxGIj2Spicr&Bz_ z8Z+c*d4OrHeq)A~6W$Cu{l*MT6O6%q5S9tX3^fyt85~Y{gXx}05cPW|88h6RY|QW{ z#)H9PiZMg%6o`KlrWi9!odOAy15=C{ET=-k&1R}G!?mf#3_hlw3^%44Gek{;l!r0X zj2Z4h*$<`}GfbEcsk=dR?hJ^Uf*HmPduKt+IWWtZp=vfnyk@pBgVP*{T`qHs8Me`etK>1t+~3ZfrJYSiS|4&R1+PW(eDA%)oNmn;~MWF~g;;5Oc0rvA%4u(goV&&h9QPo0f#}EgApUxC&zRxQJxG}VqMaTXGem&YKQLx!_-4#daT?Ta zG-f#Q4dONsz4$xCoGsst8Sa0Fq^k$tjTs7lK+FWupMOBazx*&}nD-MRe&eSx!>wPC zaJ%!%nBn4YV}=Q*y&1mzHfCV|Z_MyO#)CnD$%J7pn+e03)7}gV*i0DiahWh&IPJ~w zfXjq|hu;L8=0P-{un7ZbuY`cG34@V@3AlbYkuYIURWt$TO$|j8hO3Gu;I`-uMH7ZF z6^M9*iU~uriU|Y9R1bz06%&R{Dkk7I>J}9f247VOdx@$EL$taHxLq2fZo*KnWdg1j z8njFp+H@dhcIcQee1x*U=$J6f*M;a^plib5rf&k?Q&XUC!oXwzF(<&#gkgd)#GD_- zCJf(AAnKo(nlQwenSk4$AbPn4#4jr>Oc-9-m@t$CdoU!}nlRMZn=rgM?G2{698AFF zXN`jigRY|q187{`z|n-k&B=sefvN|Chm#4zH5Z7zH(X2@{&|`(Fr4vbVDK_w=Rah+jbT5pRgwK=dRZ2z!c;2}6P}gbku){2*)){SM0h;Ag_H${!-W#@~dYG62G^ z2{2*c3WTtE0!#1Z95-F=40+ zH364n4WT9s$zdi8bIy1(q=cC;1csY1cwF#i2njb~u#Yfd*l@|4!6CwgVN(ReUt1zf z7#>7G!WKk}M?%6}BGQDxJrW|G6KTS59LhcsX~JL;1rZ0)y-_9%ELXi5CPbMqe2Ow* zcyPs=;Y*YWLqN0%!;UN7U|Jx?gyF>*Zw3&30m=r^6JjCaD`HI;-o=_QIGp!p_z-Kt zU={~qTf~_#6vRR70@3|Y_JlYS2EKTRI|brR7Zjs=~WPRMwJPJZZ(8$P;J5xU2noL=d3qFOuY$%N|Oo0l?&cr`bUcigUw}c z1`vI|)r3Ldf;Yp3RuhJ`Z6*vgm%JG^w3#p*Yd2x&xZ=%lqTPfcveSfN&UtT!m`)Q0 z-Yydcg-hNH0$nByo4ZUHQm%M2Z0Ry#c+mw3LlCXh4PmQvn=r&c*$v$$4DCJ8a;(RM zfw>RDX6Z9w5bTGrMfyz`geRCVTsZH|ATq&(L4BeLgU2Or291d(4Azq%Y@10Y3=NY_ z7-G(QgX#JyCJbLLdNVXkF=42m3T00Ghz4&W&fCF!q76) zgrVb{H<-4cW5UpK(VM|xjtRq$c_s{BK;bjbgu#A+34_X6Zw7}2CJgr$m@rJa;LY%0 zfeAzHLKB8Rm%JGo7Md_bFEU{e0EN#Y69%8fCJaX|dV^`(B_<3OSG*Z!EHPoYumln> zCzhHp7%wwn(75W&V6x1FVd^pyhJdTy3^SIQFkD#%QFCXR34`czNEk{iH(~IBvO#nr zl%2BNgrNt@2GI+l>?O-h7+6+7!V^TBtbmvUqCKE&5Iu1P#I7kTOc>->Lf8r`O&E5p zG-2qt>J6svK*d2c>neyEj#VZMPEfYXDien2RS@%IR+%v9tcH|nAUb3xr7tcK_X z(NCak5beDNBJQ)sgrRp0ME!&{CJdjU;$PO7FbJ-Nh>NT>VaQ)=!m#10H$%Z%6NdL| zA@vl)Iui!PbtViuu6i@5tTSQoUk5QWV4VrW;dLeqd#-vjJXmMK5U}2a;mK9ddL$Eu zmh})dAUbq|3Bw6*4~B>hCJfmdAa>+OZ8vD$0G zPzGfm+H1n_0LuQc*Mvc7A4HAbJ`;vuC>ul<>@#7A5cgmJ(Y;VMh+e(Vgkg`k2gCDy zCJajZp?de5FoZ$bAi5382GLvgL(Dn0--O`{lx=jtgu(v+L>xrtK-p6cnlNlU2oc|V z(1bzikO_l?vIj%bArpp4hah%==pBb3YCyExVG{-u9S??}!zK(>hoNc?n=q_D3{eB3 z&p_EA`X!VNqS=l>)PQJZC>umOK-nNV7Rm`wSPEtDJ#NBq3(Dp@VZxw&0;1mhgb70klwEPc zgkdU_z4L?#gY7931_dh*hTKyo4AW0R!URMggtBj*GGSmm4G{;?nou@~4urBnbR(2K z@w5rUK`8s?X%hy!Q=7(le$c@u^g9v%!Jy8b-G9O(-t4Bi(Y?C=XF4DC=hh~5rm_g^$&*nSbB z21NgavO%=wC5X81WfO+Z%aD8uqBld?k1v}ra9)A9Q}l`ngEf@B@`?$=btwD$RTBo0 zYY;UV*Gw2DT!WYiqAx<(me)-fGOt6#-(ELi(7XX*N8T`D=!CKzZ<;V9-h`L~qPw8% zMK?_tF5QHvzjxDwLH-tm-F?f1;o>bwe!qLmghBE)L|pZ@34_yZh&kVHn=mNcfv`ce z8um4LfIg?4$216v!QGdy#vYy(O+Ie>;lmSZy;%28#@O%q#PwQI~hDA{JuD2!(f8IjOad~IL(C`kz2GM(z7LD?XB869&F-5H~;j zX2Kx;9l~b+VZxyD1Hzv0!-Qcil)dwZ3B#Ko5W7IM{7(oQL`Or}AbL8K4WchY+4a9n z80P`3ErvMC(A=Ale7Y2GKcCHi+(lvO)A3C>undfwDjRGhq<;4>1!& z8$j7h{+lpd{|^Zhb_P=hX9iPnyAedUK-oM@rVJiT5OEOQ1!aTiV^H=!W>bcH%%LOqltF!Y zK-nOA8I%p8pYxi6+sPn0n$MJBgRmz9h@Q@83T|VA=y!ak3{QkT8JGl38I%Me_UZ|m zGWbE+X@aH<(*z-Qf#`iu_AfzG1}PzkdJydlW%~=6GSmw})UOdXWjHAeQ3Il%LD?Xh zSp*`^FJj7I2W5lkTqt|1h$+J*DEpg;DTACS#LP5NQ-*#~h~CqprVJmUY!EFj1`!9* zkzx?_AbKj4eOAnr;T2R3h-Mdus23JDWiWuUZNyC(BBAU~aZ`q6P&SA@3}v4eH)VJO zWrJu=35YqO5~d7BP_~_fDMK`r-7R6tumZ{k(Jv(+Zj+QWWiXS3=mpWiP&SAzfU-e! zFOJZAl)**{Vor#ZDMLS$yH84WcDwAm)H*Cn(!b#+0EP%5Ii1W!NtRagVR8DMOYlM17g8DZ^wad%mnG z!+t3Hx2!3Hv>ZeYh_;5Z-Q`RfI^`hdfauduHi%}FhlqpdNO@CmyBb8#k~amnt3mW_ zs2UJ0qX1D~qhQLg1Ih-`4;3Kx?o>2oxTy$XgJ=#V2s=Q@l%YonqIZUpDZ^H%xRA0b zL$$Ig!K`kcGBB$^*dSU5%63sPWk`gwD^*Mxra{@eR7@GJL)pJo zOc^9pA$ljMnlfyFvahI`GJJ%xIn_)V)YKqq?9@ydQlM-Q-3w)d=*>_zh`s}5gJ>Rg zh+jaoAC&E>VakxE0Wou$hAG1~C>uoIhqApjO&LlwA!<%&nle0vvN^R(87#FRW`gKa zC>um?gt7y*O&J=sA!>THO&L~cL(Boum!RSxT0#d>7J=v(C>untg0eyMB^`)4AevDZ z!UoYsP&SB8gt9^OEGQd9UxuR{h_=>;s0YzqP&SCZ z31x$5MgxdBAle+t2GQwIHi(`LWrOH!LsJHqTu%lNZEXZ8pF#9SBU6ToVowGTEo2N~ zgJ>&bQ}Eaeh)#mCLA1OH#2gU4!^D)KqsWs1L`$1O^n&O*C>umSgt9@jiy1@>h@M~u zF&{+VfwDoghB-tWM3+F>Ao{vFL@$W8wSa^Vh_17Mgae4)4`qXB21|%Ih<1dsL39(8 z4WbW2*&v$53ZfoFyF%HeR;CP_tsv`LA1U#L>xrtLfIgCr8UGHCL2=*T^opB zKy(C@ZDVW7kZKFj3!?j=Y!JO2%06#v%J2iq2GNRk5cRHhrVOc2cBh>w!%aI#m^`&J zW#F@ir~%RDP&SB8fU-e!CzL(a-jrbEtCzSC43<2L3FbZL_LW9=wr&@FvXJrM92G@G6+oZ zWB}1;p==Os?FSJD(JP^B5Y6Xr%AhjOlL16m`kOL*nd`{_qMv}o`#c#yw0{7^E)cyX z0OB?fEg1;W3!+;BA$mdddysgaCj*F%3WDeb(fflSdO@^GFoX@FJE3e4{Vo_{CWwv< zftU%RcZWd24MZ!1LiB>@?oddWfaq_b5W7HhVi+XNfao(}kTe6L&BGyV5WOfIq8CK- zMnLp}=!ytP`T^0;A|UAmM2AE|*dY24lntVFqafyh=owKEb3in6G(;Rk=S4%rLGU5qKij)k5KAbMpCL_LTWiG`>K(Uq}~Fagm|Vj*DyqW$9_>Ou6bIEZ=> zEgugF9}wLFWrOIK@ep%BbVvfk91y)f0pec}t(yq(BZ!_2WrJwWB#1bO&P#%r1EOyx zLCgWsF3AvcK=h_$hrVLk>doqCNi#etYQ&xB~+|4m% zaLR?a8ALCKvO%kp>x;YQx1`z!b$_CN#`4DjseHO|F(G~@!3?^$l89?;n0#gQ& zHJ%J0ny(PT2GKQzrVLM3doqCNdxemE1fo5QAmIk0w-iCb4Md9-L)3ui#$rfW2cq8; zL&`c39bN)qgXlda5PyMa#ZpMx0MR|AkhB4!KSISpbW9mU97G>4gSY`i8;lm{pllE=RR<9V(e-r@ zH-qR`br8RR=+JtI+d%YzdWhRVv}yxHJ&2yr08tO3e}lyPJQ+ZAS|da~h(6H>u?s|- zH9^u6h+fhJNi!f?s2Rcr(G5^Gh<*oUgXqW>h8(;vNt^r4{0y1+AtG zd~K!-E;~HIbWNKngUAj~1`z!U$_CL9?GSMgeGJM5(Iy=baS*)-$_CK_oe*&lUDOHj z7l^(BWrJwTE{Jh5Y2Bs_$GRbER`r-N zTQq0MQTULd*xz7V}IQT)uiTn9Vn3Xq#`!@aLT;m|i>| zV%PflrVKZrY>ow{3>pg{;vo9k0!Uxr(E?KjorR_h3@<&wbkIVG8W3FpWj|SH%D}Y< zA`YUBq3p?vOc^#q*^d{QGB7NLsOem6%CHQ|2GNJ1Y!Lkb$_CMYp==N>wFIIUM4Lm| zAUXuf2GNC3Hi+(nvO)A}C>undfU-gKQz#omGcARf52EFvY!Gb&WrOJTOCjL^qOU^5 zLG*7Z8$_!tgO~%NeW7d+odspjTxQB}2+BUU%#`5^l+Cc*ltFVjL~rDBQ-&reJ9mXC z!@?C1aS(kK$_CM#D=)}y893HM)a$G_W$=Nr3)Y)5ELacG3!*PT*$>v6GW>h94Us>Or*0MhN@EMpFibO%OJS_JFcMbRCopq91HBWq2dw#Q>reH$(E~ z&CR9^a$6wf28eds0x<_fH$mAT`Y@CYq91R8xJP)aDTDJ?h@;O)g|a8^G-Wur6Ji&Lz6TY5wbPV=eHTQp`7Tq2 za3~u@mq6JddLon!qSry$yLOo}T!*sX?=oeO*bOlUMB72xNxMxM>Y;29JqOAL(L14R z5Pc2G2GO6PY!EH52Vy3O)`hY`v=@{OqSK-5?meaq$M-<|czus4gXCTa8$^df*_-#7 zGCbY~5r4nWl!0eI#C(17+8oFlCqtWp6xT%5WXZ z2GI;BA?kTfnlc2QgqYcT(v)E>R9y6wDTDPXh?@LUrVKq$Hp6LC2D{S`aS&YtWrOHl zP&SDE0cC?|vojF&Ai4y~2GN_K?0siU88pvA`V=5~%2`OC0!06ZvO#ppIY=84M4vwg zX&-`U+w+iiAc$TKWrJwR3lMP--Eslab^_7wFF@K(AUf(I#2gTP;vz&nh&HybN)J;$>5Y{>!Ee49mR0^xw;-3>TJqF@WgoD-bq_z6oW6X!olSaS*)~$_CNO z*C65`dLon!qW?qLAUgLtL=A|(4P}F9&l?bN5WV^aq&)_rd2d44AUYq)2GJLxY!Gd8 z3*vVWz3LXkzaU!THiQkL+n{U^{rWbVf91!jF0Fq8X^x6lIbONF!9zxh4y7nPN zJ&1k;WrJwnM-X>{=pBzB?gY`Yk0I(objM?e8W8>YF+>fBj(Y+LD-eC=2_$?#wAE7x z8$_>wvOzTOGl-cWy5bqcOc4F}8N^Hw?eQEk&H$n}KZlGnfM|&q5WOI}`31zkAo|@4 zh#x_8dl@AwMwFNl`?1_^TzUH=VY4v2mTWrJv+?~u3y(c8a6;tND8 z{eZARbo&p8IUxEClntW8e?sg9(T9FQ>;=&Vzaafb5Iye~q|XSVd45CKAi4_52GK8| zY!Ds%2QpRwqWArQj1Pcl&A$*fh@Sq}lwrmJF9s0J`p=XhumOF`0qm5kxOxG6RqO zf@n@=Gw|3oh%R9^1COhK==;oO;BgfY?ZpCNgXkSBX5euZ5G};IUi~oy}zi9(xDT*SO5UWA7l^f*Yb2M9+ecj=z07Qb3inM0E7*qlb~!6 zeFVw|(Q1MaH6XeJ$_CM|pllHBBLqgcXQxk%X8JqTfqG%mmRRs*-$o! zW{`oH38Ir^AZCK-BTzPoR+EK@gXj(@8$`d7H3QFUfap*;NW6pS!*Y;=&$p==PXtp@Qgh@Pefi7yb%s1AuQ z5S;^MgXoLukUR*YZ8RWx5Jb<@fS3=WnKdDP2hpjT5OENFToY0*foL5qh#C+*5y}S9 z-=J&|9jy(q3q&8&hS&w7HFO~6fau9O5I2M9e>xC1gXm0M2pdG7(}kD=qAm3x=78uW zdXO>-MDy!I$|w+B1!aTi7y6Jg3Pk%FK+FNrI}9M^fM{hyh#Nq3pCQCv5d9O%2GMaw z5WOJ!q!C0fh}JfSgb#?GUO3h~8)kF&{*WSwYMJ(T!FRyFm0CD~Ng!9c~Q~2hoSDA>trf*9MZFLG)}JNV)~l zoVE})h%Se+LG&G4h+QDs(GJ1}(QE7==7VT)dx-fUy2c)&21Gx%ho}M3K@Jc#AbPt4 zL=A{ma)gvKAiCEPQqF+rA5b=kPIiL08AM-ng18ez+dD(pAbKs74WcDnAohajW*3OP zAo_(1#9j~`>qW8H%)PQJBH;6chp5g`(2hl&>AbLS`oI8XKqEEU*)Praf4~TjY zJ>LT&4x+g{A>tr9-xH!2MBnm+r~%QgUJx}PdV?2497IcdL&QOJgEvGkh<@!2Q3ImG zd?0E-^ll%B8W64K3kh2gJ<%5uwjlZslntWO{UBirqObZv!V^S0`$O0udLxt#qQwFr z=7Z>JC>un-41koeAUZq{QhtKyqfj=8HV%S_gXo1&Hi+g4hWG_Umj^@q0-_%UL)-?U z141C~0nz)QY!Iyz3K0j<6GI_x1JQp%A!dT;^e~8-Ao@}mL>xrhhC{?b^onqZIEWUG zfQW0b6^n`4PdqDJ8koY`L1`wT)193lyKAi*UcYtWiTu5I7L@$T3L9}QdL>xpn zL)jquMIIzfKy+|E#7q#qH6P+05G`H+VT0(V0!Y0HqTd!k>P-+GQ3zp!=v{>n^&ncl z2;xT&-B<(>2hoqAY!K~Q3=s#>tBN7+0nwr*5ch!S@)C#|5PcKM2GK61kh}n*H77(3P4k<%G^bIH*M7vc$#6k2HC>umeRzmy&qN^(*?g7!y zDj{J4q64cS;Q*rdK-nN#tJ;h~<&PHwh@Mex#_;907Xyf9tAVgVbP1FVq8~xoAUdEH zq6S27t%ZaSh*qeBgb#>rt%JA?L_e>Cw6#FAPd!9Eh~8cgQ4gY(8X#^4(Y*~2H-qRO zP&SB;YJ~U^MDKyJL9}8M#4Zrs+yqerqMt(9AUdEKVm^r8-3&1wM60zx*dTgh3#2Uv zqW`o&+HxQ|y%oX+(N|j`Z8;F_&;~IRM6Ygxm;<84+97NZUEL0G8;HK!4sjcZ_UJGJ z_cuZG<_<`n0?`tkknjP~&7F|&0nsm@;vhP>3nC7pcXUD2gJ|V$h&YJu=!S@c=+97b z5FOD25eLzSdm!pTv}!NJZ6LZG$_CLdp==QC*9Y+nh~C@>F$YA;^+U`7(VhJee}U*P z{SbeF=&%WpGytLxPJpNZ(K-_$YC!bFi4ZeE^q+|kGeLCvBuF@e=u49zVGE*dCqvjE zdeLNvUJ%VY1)>*3S4@G#DTsbN1rm=S+HWd^4Wjo? zd_Z*AbO;+n@172^7euSgfY=M7yJtYc3PgW^vO#pvOh`C@=)E%`{sPe&vmkx}(UYNU z5dCi!#62K7b2h|1Ao}!dh#Nq(?i>gkL{FLnu@^-Dodc<}Ky=1jNIeCjFGJZN+H@X7 zFNmHFWrOISP&SB8nGXp=5Pg0=B-}u>)dC0`M6Xx?2}2OgwGd(^h|XUK2_F!BYat|j zK(y;3h}%H)hD8v!foSQ)5H^TzTMY3#i2k@3;&%`oyaZxCh~5figJ|)k5OEM)31x%m z=S$5PI0U>IKy>IbGlm=d-V7l6Fq93V4VOd2LG*km8$|Q2fQW5ULJi0*{4LG*Vh8$>5-UU$)qRVzc)Pv~TAn|#g3?SNV zH^h7py>U0hk04rR55$ikx*f^}(VzA}(g27~*b9kw5Pc5H2GKVAAmSi;-ad%iKs3XC z2pdGF?uYmhL|@nsaRZ1pIsj1vqNhOFAo}M4NEm|XxPuVAAo}D%h+Yt_eF&l#L{B&b zQ3IlXAA+a>(Funk;vo9;VTd@0Hah}IOCWm55lH$0(LzTdY!KZ5WrOH4x-Q9gNTD@gZq#&97IoovO)Bh`w;hl=*R~U zy&(F?1BhM_t@#iVo*=pp$_CLtA41|6M5jE0#4m_G4`qXBtH+RZ2%?uhhNMFf&He;p zFNn^30&yFNJ`H7qXoIH^_kifxPa*CB(G1TZ?g7zx&mesn5Pjzvq|XAPy`DqZAbJOs z4WiXvK*T|G_X~(QAo>H84WdI|LhJ?62VO$#1<~5CApQl>(_TUR3!)icL)aiX?KQ+q z5Pjt}#BCtj=?%nQ5WNA)2GMeFA>tsq2g(M~@7_Yf2Sf+FgRnvL)^`x|LA3aLh&YID zdJhR_5dHQ&B%DFC{|AT~5WVpOB%DFC@J9$6MAviz70L$D-#un-hO$9)Bojmph&~QwgJ@G`h&YH|3}u68K^BNOh^}EV2lpRA^m7(-@O&kR z_GE>)2Sl%ivO%-}n>oV|b8m(P?B)!|*v%P0=l_6cb`Ep!p7Es|<_vE+%o!Yfycr@n z%^B)BA!unVLfMU6<_ycB?1Nn941c*G_JU|T zZV3A>pE(03KZFgUU7>6c-Og_g-X8~|Px6~H

`|fM{+3hz*(aWZ2&Y-LaVT0%lMTi;@y#&ez(NCdlT_tk{ ze=IfID`L>xp1LfO44 z<_xEyY!J<<3Q+^1O`&WMJw?@=q2{VL1BhOuYR<6Ysy73Oz716aqS@6TdO@@*h<(kQ z0Yuw?*y0`xAUYJv2GN;NHi(|DX3k)7-J4;7nmNN)HFNNJp+D5j8K$b6gU>IWp>EFb zRvjY#LEW4oQv)KNqhZc)Py-@^O}84R@`YD~1u z89Jft9xZc*hfwwtEprA-ZHO8hZF7c+Q1%pUbB32t_8V<;21gx;8W$aNhM7?I9369p zk5Kj(9diaxU5FYVU2}$oQ1%jCbB3Q#_8(nyhCn@tnh-s6hLuqE8a;CcMtz7li@rHS zB$OSaZ_cn0%HE=H&cJB^QNv?k&X5RYrx=(s?1ZxS7??8%8bZ{F7@9L=LfJWn<_rg+ z>?4Ne43b6=H8Mu#424j3iIF+ONhte_kvW5+F+`1uu{lE}lwD(N&TtXRzG7_7plJe8 zqhn&u&n3yx%gtG6Lm@^ofLe!X;nlp4l**&J_3=g5~C#L2MmSzw&HfH7w6QS%W zX66hpq3kzi<_wPJ5H&95<_t5T>^bJ<3?HHFFXrY9o)!=_J{IN-3!&^K7Um2;q3k~v z<_v+B5H%r|<_s&L>@}9=42)I~aTY6chDazo#>$*wBb2?x%AA4I8lr~B+MFQ~%1*I1 zXV?j4@3AVV1)5wS66$b_=IjZhLceC8C!D( zMLUQZ6+3f=N+`R=&Ya;Qlzqj{oI%qbqDIHwoS_lQZm~CKxCv$7u{UQhbbzQaaWH4- zgtB`a%o!d+*-sqI87v(kYHS?M874y6Qyk41UP9R%PUZ};P7pN-PUZ|-q3j(_<_x^f z5OD!#a|Ul`bMV=uKF;P0?ND}yvpK_EsG0}P<_yX%5cMi9<_wikwv4MeL!m1~e2uF) z1EU*+&EjUx5D8_+xS2C-gtE7|nKN*@L)7rNn=>Rr*(vVk3_GFhJ?`cVf*uexA|B=p znNW6)hdIMRDEo+qIfJApM2(E6IYS|oUE*oZa1zQs<7v*I=mk-u;$_ZI31!!KnKN93 zvafiVGiZ84)aZDdGc-ckE#Bq~H=*o1-sTL3J`gn~KIROaPk^5QrL?5Oan?D7z%Y zoZ%#teI~@5K`|7fMkUmop%Tij2{mW92xVUhHD}NagQ(F7GiPXovRlH;8E!(^cf!mW z48tL6Ov23>I-%^IaC3%-Q1+8>a|X)@h#H#+bB2jf_LK;7hL=$Gn+S6T$4H18mq>Gl znNaqeNOOjdQ1+Kda|X{Sh#H?LbB2Xb_L3-bhM!ROpD1&Nz-Wk?kZ5y;l~DGYXmbX} z7>GDaj5$LjlpPae&ae^6-V$TZz!?is!xL-HkO*a`#F{hggtGU3DEmyjIfG&XM2$*oDnFvv%lW5M+2xYet0bq3kKi<_s^P>^I5g42~%fH7+UU3^SqZIVt80AEE3oDdr5GsSq_jspbp|q3k88 z<_tff>_4gI41sA7H6dx{3@f4RHEHGyjOh?@mUMH5NGLld-JD?~l)WY0oPjd~qJ}5K zoFNg)PRTH5*a>Ct$uMUS%!H^B$uwukgtBuo%^40t*+(+X86>kHYGks^84987k}PwE zlTh}VEOQ3MY=|0_Y;%TkD7zxtoZ&2#eIeVNK{W@WMkB|Zp%%(+$T4TQ3T5BOF=x=t zg{U#eHD_prvO99k8SX;a4|2^JO!FXWEb`15dZFwIdFBjHq3joV<_xy^5H$|@<_uGz z>>2sy3~!=lLP41b|) zh9Yx@&?1PMh$3@_wNUnkB69}TVu(0Lu{lF5l$}s)&af5A-cfAMz*_=QBT!<_kP2mI zl$bN@g|ZKnm@|l$Lexl~UtLfJE_%o*N7*&nLR8C&rorOQ9via#2~=Hz@Wgu&>+FUz+l0^(12<& zBLgD?14957aV7=^h72s?>?|093=9m644f0m*xFGkhu&DtYAKj7Kid! z7#JAXp==nniV376n4yHBh#`|9k0G7GjUkgEhar{0lOc~GjUk_bfuRko#(=?u!GOV> z0YoP;7%(s}q%f#4FfuqZm6f-a|_%LKLB!l_I45M$YjW8 z$OCC-@MkChyHtU}5o}T_LkWWdgD2R$e1;-059FUDh9ZVUh9ZVa1_lNV1`Y-WxY=P~ ze}UWpGZPm21`HewjNottxvPjFk0FsE2g&uQZf9T!VUS>8Wbk1~Wk?6B1cht?LnYYN z=?obRB@7JU&_)$gV9;Q2X3%6%U@&4ZU@%}XW6%Y&3>hpL7#QprxEUB3{Gn!mVi@EG zSR8{~1d2HZ24uJBF{Ci$Fyw&4Cj=ah0SrY9`3xxxr3}doB}hJCAS?XL7`VVW2-!^Z zP&8%GV=#bYuu~XZz_}(291k!bAW|sNCAV5eMN4L zLRo52ab|v=t-7I}fx1F!UUGg)W?s6jdT5B7u7$cnaY*zvTb&}TnY*{B}JvhC7yX{`B2l82$*K91lFgZU{jo$Tw0V_QVHcNDA*LG z7M7+Km!zfy6lIoW=A@>l7Q-cxrClphlS@l7^YeUC%TjX`azLc5dSbC>URi#2YLU7^ zX{KXxa%yq0t$JEwPI0QbfSb1ROiIo>t-dOoy<%^XcR{mJYu!>`qz$%GV3ad0$8LYBc<*>?QRlurWtL|t1DJFtnOGnVfBpF3s$dKyjtdUrwutsBz!5WJ-4r@Ht1gwczldvXZO~IOqH4SSz)=XG4W6gp! zE7ojSvt!MHH7C|wSaV~|gEcSKd|2~i4Z~WFwE}A;)+(&kSZlD>Vy(kkkF^17Bi1IY z%~)Howqk9=+K#mo*3MYFVC{;v8`kbvdtmK}wHMajSo>h@i?tut{#eVfj$@s`I*D}( z>onFGtg~3>u+C#$z`BTa3F|V}6|AdR*RZZ*-Gp^B)-71KV%>&yJJuaocVgXzbvM>M zSodPxhjl;JF|6lUFR)%>y~28p^#52@6&%*sx&7f*T7SEO@ct!-5|R7#12Vv{>k{FkoTC!i0qx3kw!jENocVv2en| z84DLIT(NM&!W|0_EIhIB!onL1A1r*a@Wa9%3mF!1EYetHu*hPO!y=DG0gECQB`nHV zRIsRGQNyB+MH3dyShQf#ibWe1?O1eR(TPPD7Ts9%V9|?39~S*s#ITrSvA|-9#R`ix z78@+KSnROaV{yRZh{XwuGZq&tu2|f#xMT5z#WNN!SiEBKhQ&J;A6R^1@rA`V7C%`0 zV)2K?KNd4A;aDQDL}H1;k`GIMEMZv6u~cBG#8QQ&8cQvfIxO{A8n85CX~NQsr3FhX zmNqQySUO?pjHL^fu2{NZ>5iobmY!I8Vd;&f50<`I`e7-uq0zi!4dWK7h7$}749MjV zv3dQ(@(asvEPt?^b~O{M%-6tKn!`$RP|H7rfq?;1USY;!$MOlwXDnZ^e8ut&%Xch4 zupCr>!D@~U95n=kfCWPYsBZ@^PhlnLjKzo)Q?aCBNym~2OJ*!tumn~IuE0~k1sTDFXvTfdzvHsDBEr*={VvUPHlJJ{dULIt&dEa~hU) zESs=w#%U&$|uBu{=2afmPSxpdkhQ=2OxffwGv;f#NOUxxBy894AAz9#exYKWizO~f=Ex; z+Y|?uoLF*U$&DpHmS8U(U@gTTt3ip=0$e5`+Pe%43?Cq2jA-}3!p>qj_I5L@y{Unt zeF>_BEJ5QZ43NCHV#$dm*mFOubv|PSIW22YMzv&^0ZQIPw%!C5Ni0%8Yr|o--fk=+ zzIBG9EvjJ2(8IvM0BI-UYtLycF<4@;#9;|?O@~}=tyr>Q$&MwkIDW9?1x5=HwbVdw z1A@vlONIlC3=9qnVRbsK+o-hm6Sj8k54Q#dJeXzb1s9(eoV9DUXz`y`%*MZVCsJ8%W?}K~~Y9A@A&;a*-L490M9}?8-1NF*4 zy)aNOiy^@hG)@XmE1(_`xWBU00^GL%g&3$;0P6pO`m~@@0MxGp_0kv$EWzcpz(NUd zuL_jXKxrS;pD9>U0j}XddO)j>ULke@((R!|=m)YAm@C1E{CP;Zf8f+fQo zP%*gR#R8CiP%Q>3=RqR_pb-I3%Mn{Y9n>R7?{|a39@eV{^{7ETX;A!udd#3+GN^wH z>JNkZ!LYtBsMiZ>7a{j&K|NS-|8;>SLjh>47~Wb(Zl{CV<)EG_sAmdl5u%r4pk64b z{|TzsK`l;f{YXgoIe<$OP)P#nN5aZwSpN~$Zv^!hL3s++M+AiwDBpnc3@9Zb_Y*OuW^P;Va8{si^bL49@P@*I@;L!cfCD4b#AK%m?S3Tx1~4`{Rp6xN_{294~%Msz?a8lL8j%6@L_uW~Xe;R27eOUTqDQKJt6yl(o7rD#;g*vES1@##~X&ls31@#X=wG*gzKpt@dg*K?n z0EIRvZG%dAPQX15=2c=_Je-2dh zfO_ztQA$va2pf|Gg*28l{Q#1tLG5=?ng)%nfLid#B?u^8gT@qLX&W?#2x@?LE*~A1IVTX&Y1*g2o^~V|k!D z4VJ!Pt$5Iw9w@Xy{WDM~gVHuAUBgDjLFpSb4h|Xt2bI*Iv<(`|hK*x`(lw}_28BAP zPYN120fjR1xHG6<3JPsd2?7dfP`d&&nhXnR(6}+EJ_L;w!$yWd?G8}e1vK^xDmg&y z2vF$(O4FcmUQh|b@WGNH0$fIOfJbscDH=3t1qx$aBe$SYTF_W5XdD*SV*-UUZ2T2e zQX`MGf<{Pv#c8B~6N!WuL$02-S@4r9>RKCH9`jb?zx z@j+wupi&wZwxE(3HVzL8XVB<7C`E(D*+Hoo6t18#a|Q-01_x-k!p6!$X&5w82ujBn z7Tj0>DkWg)7E}X*#=t>g3#ti0B?V|48UEJ3p{ zpg9=WoC~P@g_RDVRt0D-1r(N`_8X}D1&uGk%3V;K4OH%e+KiyG7Zi@5mISE01+^qV zZAj2;1!!IZG%Eos1sDXZ!08fHpMmBXK=oP2f(h{PRM3n9sH6pj87RC!B`v5u4r-x+ z(j_Q8g7Q5q9fImH(C9v>E`yAARxAOv_d#R*uofDqqy?ozP@V_XXP}lDD8EC-VGf{- zdVu;Zpn457t_BJ>$XpntWd_UlpfLc@d>1GTLFo}x!h+i6pzs8xNl49@I1CC_ z3^zc-2MajBb2p%HWmw3u5R~6RZ39^U9n>cPg(;{U1?6?nj0-4CLH!j_-yM_|K|NXOsS8Twpjk^$=hKQ|3aF2cV}=hj*MU9)1k0B{ zR)SiZnDfe@Gyg4&Rv*;xx5v#ksttQcZI!)efYQ;!9pRtjjQGhz{_EC8i( z4IDGopu7!gInBT^kITSd4IX=j%`HVNgymw8`H1)f-!(ux5~9U|;~v&x6W;(D(qTX9?;BG8kAhXfQG`z~;q3Z8uQ+0+c^N?f{h& z$RnztHWH}b0hOD`>j6OZIH)WD)#adi2xJ$i{RHY4z}ir--Y#g|1UYTPdRL&TO}pvO{LrG4n61A4cVwbq8yP3GlW8EEbXb6rhnJV&=}V$2+xV&=r=+-+yl{A=CCYcS;4Z7Web+=SaxCAi)9SUC6*g3_gJ2=ykhx; znxSoL8Q$7+Su7OMkRXRK~mJ!AET)hAXzSp8$Q zz#5G;4r?OT6s+l3vtZ4RH5b;rSi`VZVy(eikF^PFE7nd}yJGEuwKvv&Sj(|aVV%Xg zfOQ$`8rIENw_)9hbr074SSPSvW4*)ri1h{QJJv5)zhnJ{^)J>l1Xwd9fa61AfdP1J zL&bs#3sx*Ru;9jm4+}UJDlD{E7_bmDaxr7!hJ_~fn_(AeOSh^Tw%Gz z@_^+T%Nv%@SiWKTiRBNL|5z@tLSu!)iii~jD>_yzSg~Wpg%vMWFszhVX|U2`Wx~pe zl@nI3Sb1ROjg=o(a;#EVWw9z?RmQ4@RWnv?Sao96gH;TxB~}}(_E?>;x?=T&)hkvX zSbbylht(Ww6xLX*30RY{reV#DH5=BPSo2`bk2L~oHP$+;jaXZ-wqxyrwL8{cSo>lv z!#as|2J1Z5C9JDhH(}k1bqChnSodKa$9jeJ7V87nXRL2nKV$ud^(WRpfUF})ux5y1 zWMB|jps~PVLBxWB1sw|(EZ6~_DQ8$HvCv?l$HIh#6$>XUT(R)L!W#=eEaX_Eu*hOj zz@m&r4U1+h+OX)vq6dq9ED~6(vDjg8#NvX*9g7z%-m&KCgS)<~=|SmUuK zVNJ!F32RoYIk4u&nh$F@)+(&ESR1f5V{OCQ8EZGJJ+bz|+8=8L)@iJBSQoLbU|q+$ z1?zUKyRh!XI)?QU>kZa>tWQ{9v3|n(73&YIzp?%UXl}Cs6271nAQlS(7Gx}FSTJM3 zh6N`UJXr8!fxtqIg$@fN78We*Sh!%}j)fN%zF5exNMez}B9BE0iz*gPShQl%fkihK zeOSb?SYffn;()~&iyIctSiE8JiNy~V|5z-rL}Q7=l87Y*OFEV;Sh8cug(WYRFf5f= zYOvH}X~NQqr4yE}SbAXTjin!!ax7C=X0a?_S;n%4Wiys-SaxFBgJnOK2`txG?yx*! zdBO6I!s$NPr- z4I3cgJ6bl-sNHa2v}~YR*>J%cyq;n(lno3YtifXtuyq+Pz_Z(!Jw^rw8wM6oJAIMB zB85c;iyRgOEJ^^+XrZna2F=*QW)!KrRv0vzh&&gGZDav7@&ub*0L`p}MjR2Vi_!bQ zpz&M$>x)5i#-PzC(5M<{K*5H=fRTX#HV*${5p3=#13U|jIXA1wimgl<^1 z1H4-TwnxHZwF7u>1ZW-`wC@2l^8}hn1R40h82|FLGu8hxj)c~CeZ2(*jP65yf$e38kRyq0L}Y>W?5mQub_DV*clyZr$BRopq(b5aY@je0BAi9Xe=Bu zas}$mB*1rtfI=QL4+xqU0L`(0<_17>RiJr5&^mI^$SH$^4MPbd0|RJg8#GS^8nc6q zM8W0(LF2Zt`6|$E4bb`l&@4A-bQmD9l0Yi$Lq}KR-1!~w000j)d*tsDc*zkucuK)C?4G6uBv z6_olx^Dv+l9I)|d(EJN%%`Is41}q04j~RkiZ-90Vf#zX$tU3VREd-ih0L^$ito8u! z3IdI5g60W9`+Y#`kU;x-Kx4tM`B(JZ0E!FHxFTq71~jJtT2}yCp9D(%$n&oZ0g&_$ zn&U#=O#_-EgyjR+cqwRPA2de;8U+OHngPudf<|^h?!G+{f}`DJ<+kYuiBcv7mGhT1^0&I|0pkfl3-sScB3zXdVC* z=Aa#4pfOy~Dg#isgLZj==1M^69W<8%3TseF1DZbs%^iZ$I;f-pt>6Q#P6DNO&<-rn z7&0i#L2JN3r4DFi5@;Um2HJiqP-z58|Dd(wpmAMLNdy|V1(i6U`EStNB50NXv|0(Y z;sCb315^ruW(`2|V&D}t2{zz415nt5c5=YRs&_1a%&UOb(SX+8fmVru${)}eIcVK5 zXpRgtF9upu09u&@S`DwU6jG~$$`Md04q6KdN}HfH0ibdKl;1&n$v`D4C_RDJqk!@* zXg(Q~RzU6q?Y&|suwh66P01|Su>h18L3s~U&VlB%K=BI7BcPT5sB8k|2he;PC@+BO zLQuK~g+0hF*c=aNP8+nU3p8H{ny&_>MTQ0&@Vo@5>;;X>gUVRY{1IqA8kC(xP(B3J#Gv_2P`L)GSwQ6#Xv`m!)RWjQG1 zLG35>^bBe(fm$%2IdD*I3M)roH7aO65>}Rg(lscqK#+@&lHpLA5AoO$R7FgW?`}T_dP00nP1#_636GC_wWPpt)VpJUJ*` zfac0U=>k-SfYLK4j6r+)K=YoUbseA?Fi@C-R)aAtuwhsMY7?XFQ391Gp!kKP<{Jw@ zWeF%PgXYmeX&E&43rf$R^)sM3Ur_ji=6yjkK%npktwjK(JJ{L|&`LZ|nGTBs(4G)b zJb+rep!r}>9stelz{(iVygKsgB~W?-)vd7g9-z7vv?33bjzQ~KL38V%bsnIVkDxLK zRL6pLIe=P(pt1)PKcI97YUP0DjXbfdk6Lpc)tyL$Lk`D3(Aq0cZsdY{niIOQ0Q%pqd!e3IgSPP%8+u z8W=PS4yu7+IR_L|pjZNxJg`^-)yAM)1S%y!u>-0RK(l(V8UYkrpxwTp7z5P|pjkc8 zj2>w26%0fM)VRt4%;L1jr>6)~bMF3szr)+Do8yYM}BB6mzf`1GQB_u>~sYKzRw&MgrBg}fJVgf!9`JmU1lmqaNG%SEC(t?$SdIeq zAwW3_RF8w=3bZx?G;<27%R%)ks7(c`caV1$gVw!(auuiy1obIEJBdNL3smQW>LSpZ zB2e8A%3ZMaZLs-vSk8jAaY5?}L3@Qk?JH271j=2Y_7!M96{t@EiXTv24q96T+Or4B zRiIuTsO$r^BS7UJsGSRIcY)#!RNsT@CQ$sq$~(}$DNt^L)&HROEhx@F}dj0_C0_Ae-3f$AyHs#;L}1e*m1wHH8f1h86>L>5DE>fo z6{r*hwKG9^3{+ns_Y*;Dlwj>;P}>63HU#A}Q2c@74OAL};tQ15z;)LL8-^L+x(n1> z1l3odSVQiu!*&ybav7+F0a{H0TB!$W<$-bI1Db0j-q=m#fO;~Zm;tpYK&2q46#;7Tf$AyH*a@ig1H}rcZUVLTkYff`Pl0k2sPu#NVnB5j zXr&sc=MIV)aBG`^fx#ABM}cAm)Q=%Q2hkj0|3iUpu7ZHhXu<|px6QBB~Yw@ z%0N)-0yO>w8uGRzPJRD5gN;E1(zx#SW-V4vHbrS|CvQ2kLXe+UKCW1d1(C41rSu!5c%Xa&D&s&g0_szNS`eVI6;N3R8tDR;a{{(V z?LE-^o5cdqh!?D-2Z|q1n;aH5pw=F!{Q&A4A-5qw-`IetLxa!~w$$~;gz z0u(o(Rv#!{Ksz5n@d7IEK%>u~J`${)1LYdzxB=xHP+J02CxQBvpq&MvxB=xLQ2QKI z)`8j(pj-rM<$-n-fZ_%H^cPS$2Z|d|I|9@X1?3`8`vFwmf!0le$~#co9MqNoX?f$|Y(EDY3!0Occ4YaGNtcC)OYl7knz1;wcCs6GKDg#0722c&f;9$$J05s>azyiMW61l|yYL|oJ36!ru z6i1+z1E{wP%44AN50s}stp?b51Sl^d z*GI5&50tk+brL9^K>a6J{sQ%%KzR$4uR!GLO690W{+RiYHK=1j<*i z_=2rr1+~pV`3RJUK=l!<{{(B(A?GDfxd&^PgUUNlJb}tQP)`@sf&j%2XxtN2AA#E9 zpuQ8RZ3kJ044DG}^>RUD|FCu)sH}sH8-eO7P+npPum!I_1&#ZIMj?>rUqJZ?GztN# zpFsU4P#+f*N3eVZiX+gN5vbh&>N9~xAwX>gP+mgMN1(b1mXAPvT-ewVD1JbFB~Td$ zY9D~|3#e@X>Kno01JwQo^=)DC0?I?6I05yQK%)N0ksoAEjm!Vfa)Sp`38#{SRDk)H=uX`jZ1^- zA5ggl8hL=V89;FYT5k**9|HAjLGb}<)qzGHK;w6?@Q1anL2&@<6M@>;3<Kss>0EIiK6%86w0L=w}+H0VGDkyJ&;sI1{fm+m{(H~HI05ls3$`_z^8Yuih=}4KLnsSQEMPEzutEKI1_yiaSs9?T3z{zh)ddUz z_Tcs8ps`@c>UGelFUa*P7BeK+gZIvZ+A*MU5YYS)C{KghG!TElYC+_^kf5_rAa;W5 ziv{)!ccA-UVB^xDGt49wX)Ll>xc0u-~L zb~~t4gylR?Ee0zgL8G>?QW8|FfqKTE+z1+T0<{{Eb0w&j1LaKQUNfi^CGmu|4ff!( zbwK+ik^KfbpDkbkDCK~1FlasPkA=u-<-{UTfcP@(0Ud<^Zk57Lvx1cbpdLABV!}K_g(Gz8|PH1nOykX0AZ3B2cLgYRQ6n@Sq+C zDCL4mcu?vEl_aoI9+r|py%5l787M`AYGzQ1{;`-rz?Y$efq?;*&p~A{sO>4R61^o4 z8xusHu>;j?)QD5iVM)FW0id-QX!}k;`Aq?S$`+!P2g@I@-s_H~uu=}xZ)I2^utH&l z!3qcP8H)ug8dgkLv0%l96$e&aSn*)RhZPJf1y(AoG+61dGGJxG%7T>*D<`a6uyVu7 z11m4Ae6aGvN`_Ses}xolta4Ztuqt6y!K#K;6ILx)wPDqPRTox0SoL8Q!)k%m3abrP zJFE^^ov^xKb;Ifjs~4=^u=>F23#%Wj{;-;1jldd(H3n-O)cSW~d3Vap*kS4eKVX1GT#kth=!8!MYFY7}g7{S6FYb-eG;f`h@ib>l@ZjSifNXhV=*5 zUs(SDvewqXm!Sf5Q1AkQ1qurc7C0;jSdg%wU_rxz2@4i1*s$Qhf(r{CEcmd10er5S z0r;%JgoOnQ8x~GjxM1Oig$EX1SomP!hlLDi>w_8=O<1&G(S}6_7F}5MV9|#~42uO8 zD=aox?65dsal+z)#SM!mEMBm9!{P&rFD!nr_`_m`B?3znmKZE?SQ4-#VM)P~h9wi0 zELgH($$=#omVkB)Gb|NYioU95!O{&&4=lZ~^a1!pK!Ifn%M6w|EDKncu&iKN!?Fp> z7A)Ja?7*@M%N{KIu#923z;cD<2Fo3m2P{umUa-7j`Gn;QmTy>oVEF~m31iC#UrKT|-zu0d@9Y-?jc?K04K4rt^J)II~v?SaO0U~L6hI~vwk1&t+u<|9Ds z2tZ>!ps`d?f0g_*lt7~ppxJU*j|nu62OA{<^_poN4kw=b^dl~4XEU+F2sPzNtC4yQ&pcx!cPZ7Bn0&4vZ^Ku|y zv>X^M2SB4TqvZf-1t_TB3tN8(+ItV1&jpPef%?IqaahneA87mtG)4jH6NAQ)Kw}l4 z*$!;;h_LZ=(Aq6fe;K(i2wGbK8fQnJ4+f3pg8I_1@m$y#6lly4)W1faDFMx6fyNJE zeQwbDN7y(bX#4{-P6ZmP2aWk6_rpPB_V6*r1Yd?5;Q21}m3p92$IN!QEE_jTKRA_r++d6tuzwHZueoMTM=VhRr~LMpHp6eL*ALpxHgp z%qwVC0<@9=w89#Bb^^3g5;kuRI!y>PlLT7l1zSl3n^gkM0FLO|h=F0kXuEW@T{_w> z9q}c>g3)qdv>X^M2S$83uwk?u7%c}z%YhMJ4jk|Wp8<}2{(pFnQ-Rjmf!4Qy)=Yuc z=@2)IQL(0D&5SiG*6dhwV$F>;FV_56!?Ctu?S{2C)-tTqSeLPG!nz&n9<1Y7Z?QgO z{fzY|K&O{o@CDz8qOl-iLBoO-3vPh#xtp-?!9s^c9g9vZ`mji0al_&ZizSwLEU8$s zVaban3QHrFPFQ+i>5rub%QBYDSaxHX#PWdU9m@|a|FPU)MaGI5D^9FnSh-^5jg=g$ zELLT#nz8D{svoN~R!6LESiNKQi`5cq0@hTlS+VB98i}nF#5#|473(&v z`?1bqeZ~3>>mRIVc;E}ZAJm=5Dtgl$VV*L%!Iawck z8I~}B&ZD=OSn zG}Ihc6|7pY>cT39)ds5*R!>-cVD*R93Tpz^G=N?z*7OZ=)PGNn)`U9Xa67YlE9J|0_LBoO*3k1OSKUfIb zC3awuz~YF-GZtT1tgxhE$%Q2rOBjc(ktlzMn!2x0iDBe~qc(A}>;e>@h7CJ0iu;|00gvA>cD=aBk z@?eRdcx`lt3B3CSo2|x!`cmN zKdcQ{w_qK|`hfKtK&xC5AbyEhuwVhh!hnT47BVbKShNA0Gd3({0OwSLr4378EHzj* zVcCUc2FnYUUs$fNV!{fBl?5v=tn>iKiO1>*;M4}Xdo5t?gtZ^m8mybJ?!r2Y^$no7 zFM#+3w3_h10u6ASC@h+==)t0Z#S0b-EJ;{$Vu`@gf~6alax4pgrmqjnL1(HftSngh zV5I>#O>3+!Sbbr&!kUgX2i7R8O<22Q?T57<>l(o6xd9UQ4UqJ#u%KYUg9Qo;8x}rT zr~uAOpj37MoXR#VkyskAbj8vKOD&c)EPDV>%b=1cVa0(J3@am6PC$wskbMGc3f3H0 zW3aXWoPR)m0_EKg>lr3M!p&pBgascKI4oST@WVn#xFsw;uvh?`XB?JpSjw=hVA+Lb z4$CKi^XiTjA69s*Y*_hVr2@EQlUSXw`oL<2HR!1sltUk^XIKES!(hRJ1s@h9EZndV zbmQECMGT7*7B5)Lu*3nLX9Si7EZeY5VtK;y1It0F85I8;Rx+$ASakqPDg)&gkPYB+ zaszVQfJ&eP&=jDsxM1;(#R5w*mMmEEV~N4i2}o(6VflyU1}i44xByMh3acts9ayCR z_Km=r25^WqtbGAa1rOE*tY5I6;ea3bPBu`UIj}%rVZ*`;3mq0sSj4b604cmCEM)+v z0DSOD?EfrSR(bnLNs!r~8$4VH8)Ij}@xX~NP2OBt4day}$R7*>EvF%EDk z_F-kjstK!JtTI?V0i}f5uvTJSz`7OdKCBA>*~Gx`0TM3)3mO(2SRk=5VId@57Ayjt z1GHc<#}bDnGnQOfVz3nCCxK-d%Qh?%SRSx^!}1Ty16C|pA+R!G<%N}~e%i3+!9^)-|j<0Iuc0XI2XMgXne=J9oWk29$CM;KOSR(*#jiA&r z3=9hX;B*$SV8H@`g#imUEc~!AV$p&{0^oWEmM=l&8LTdwu>8aFf)y851gzWuwgcpw z6RSb_{=piBwGC@8thIoaGN6_YgMmM|or9W=8y3A-WUzPwxZM@8q+!X1B@e*m49G_e z%N&+ffKMi7SndHXqam$`iWMtX+*rY|Qe$Pr%8r#gR(@EiunLqmKtw>$1;ay4a*KJ`?1VmdB*Y;;1*87iVZ7ntl(H_ zu`*-jjFl%={#dE8Dq>Z~svWCdtP%jX3pcEOu$p6y#hQ#YGuE6~^J9&|+5m97^}$+! zbq?za)-70f0qn{INZlU*aihV425>6}RF?^WYndO53>GIW?tr$yG?oM`0o{slV#y0| z=oKuTvGl;w7fThEMS$xbj^z&E@O!abVMWA>3E*}sDC{<@ys?sDmBy-oRTZlitU9sk z!zzi@4y!X(PguQU^@G&{YXa6xSaV_x$65z)dik(cV_m|!8S5^r<5=$iu4}<*G{K*t zfB|&=Py)QQ=&-P0;R0|tS}e*~v;d{7vH<5hg=HNmbt0rZ{IJpiT<=z_-mscujl&vH zEGDeIur^}dgmoX*Ie=Oa3=9SS;Pw!todRkt?^yU@VE{CLgW6phOA3~Nas{Z39I$M` zGJ)j@%P%0cB0#omSjDiqVD$mCmP*6A59@+zv-BLqKg6NNw1#_QzTWa9h%1eF3;7%P;|A zj{-E0H!S=BEgJ*CWupT)Pk>6R8%trOmBaEG%P%Z9SOLm?0xKI4=W8;Em-wn z73hqp8{qN^R3ZkfT>)<4!Bg4=Ncj%3X9Ku}53vW-_S&%6V95k<%j?5ZQ0opmTJS=2Wt)1Em-$qT>>O6KY-*Ni3I@*AnjpL%gbQVf<+G&IV^4f zw<6HPjbS+`+#Z1I_#Z0_R(7mB0Pja+fcp^+;6A6t+Jdzw*1}Q%w9Wbf5_SRL@&wd2 z2K6Qa7OhzHVG$&?f&BGgiN{hWI}7zsWYTp~NCk?0{0kgvCFg?IchQv|;Ior2)$(Ec>v`V0j0)EP%8u zcEI~#1*;#dHUO8Ppg!z}wMacA1_p-!aN7lxS6_h3Hc)%40p8{Vjel?~bpZF95q(NX z`xw-3Ralh(?uD%Y=hFq?(%{Bg1!&u)05Xmc5CATx1)%-OhJ`Os$~9O@1Ladt9)k3c zPJqj4P>E2m5_FGn2DncN^UH%Zpgz(McG+YuyDab26$f_)Juw3GGWOJuw56HYJl5gnC)>;dmq$){Q!*}P^%BtP6D?p8zBBs zSO97(Gc1JkULdK!VsXLZ3yTGo6fD`WL||#c(i2Msz~d~S`h5XB-GN%L3swrO3Rng5 zQ^4v4s|D61tT_R0`-9rBp!x?|0!@JU2iAt20Uiy5)N!B@6o(}fpgkB+*dc1tj1?Q8 z?PLXTe;m}m__5kx&4e|e7=nynJXi+}vjq@462SFN0oVpePYk`k54txDQno?b;h>&4 zC~jc+2Qo%-V2uE@ZCSAH0Jv2!VLihJNLpi9-~cU0VdDy*oYS!Q#bSje6-y4l>ubnZ zOaXi>2Gk!9ST$kQhgA-%H>_q@ld%R;BWzg9ur32!g9fZ$0qTz*fW(c#f`SD%76>fN zShxT>egU!P!(vcv4M_nXpeaCMIjH^-0QY1*tN``NK%)yAR!OW50Qda^zZj{pB&VWkyr$3k%M}%ke=BMsE=T24Ky|h8ZEi8LSkjY$^$DEpgpr0 zt1p1-xf^Q))&{KI03Ki3uufrp2dKyN0OBWx1qlmIfJ@W^3l$b6fP0vbaV&!+4NE|E zLdDVp(DVi=Q9(9A(g7^Bfkv_pfLm@G)^M!#SPQD}EWqQP3XpNT56FH3m8YP-{|s<# zw*VYVp!@@ARe}05pq?4%21-yr5H!jF>S-YQ<{wr=S|X4U4bTW7s4W7%$DAP$+$LpM z02(z@SXi*|#zKKb4vS_ix&R(GJFr+{NdR~Z05o>;VJT=72$Y95EN56@v7%tbi4_7X zGgdBG$pCJ>gGPc1R)g9k32Q)OX93_*tqO2IZ2{=k5e5c z@dHW;4C@NkU0CO_egdd;V_+}{gx0Mq7JOI`uy6vj%m$4%g2prymUO^-&XCptq@NC| z87`~<H4BGCBlhQ%Ki z2Y|LgGZabYE>Tz#+#Qg(yd^AC_l(jFkOX=;IxZ|W0M8kqwjMVu*MRo53c#cG0jpN5 zdH^0(`>`6-OMS2g(%NQN7Xj_5tbpXF4S@_L3=9m&V=4jQk~Ls4sBHpE;TcOeECr23 zu2}Y9nFU5a5|S1`BSjJ5v1rhk>VmZw)-tS9SO*%%1?4G)^#SX_tp^5%1A*YZ*#Zk9 R7ED<1V1dEHiiMzE!T@s1C!_!X diff --git a/tools/ZAPD/lib/assimp-built/assimp-vc142-mt.lib b/tools/ZAPD/lib/assimp-built/assimp-vc142-mt.lib deleted file mode 100644 index 88e0a99f026c1a1155a86440ca28da5990d60c07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374310 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

JlCC=*m1VCaO(z;r^wEwD5Z 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

qbtPGbtIO5GBZ4yz{>Dx8#BYQ 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 YqLG}|vDw=!AAb;JZ#6c1v3r*b0HIiA6#xJL diff --git a/tools/ZAPD/lib/assimp/include/assimp/.editorconfig b/tools/ZAPD/lib/assimp/include/assimp/.editorconfig deleted file mode 100644 index 9ea66423ad..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -# See for details - -[*.{h,hpp,inl}] -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -indent_size = 4 -indent_style = space diff --git a/tools/ZAPD/lib/assimp/include/assimp/BaseImporter.h b/tools/ZAPD/lib/assimp/include/assimp/BaseImporter.h deleted file mode 100644 index 55f7fe3754..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/BaseImporter.h +++ /dev/null @@ -1,418 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Definition of the base class for all importer worker classes. */ -#ifndef INCLUDED_AI_BASEIMPORTER_H -#define INCLUDED_AI_BASEIMPORTER_H - -#include "Exceptional.h" - -#include -#include -#include -#include -#include -#include - -struct aiScene; -struct aiImporterDesc; - -namespace Assimp { - -class Importer; -class IOSystem; -class BaseProcess; -class SharedPostProcessInfo; -class IOStream; - -// utility to do char4 to uint32 in a portable manner -#define AI_MAKE_MAGIC(string) ((uint32_t)((string[0] << 24) + \ - (string[1] << 16) + (string[2] << 8) + string[3])) - - -// --------------------------------------------------------------------------- -/** FOR IMPORTER PLUGINS ONLY: The BaseImporter defines a common interface - * for all importer worker classes. - * - * The interface defines two functions: CanRead() is used to check if the - * importer can handle the format of the given file. If an implementation of - * this function returns true, the importer then calls ReadFile() which - * imports the given file. ReadFile is not overridable, it just calls - * InternReadFile() and catches any ImportErrorException that might occur. - */ -class ASSIMP_API BaseImporter { - friend class Importer; - -private: - /* Pushes state into importer for the importer scale */ - virtual void UpdateImporterScale( Importer* pImp ); - -public: - - /** Constructor to be privately used by #Importer */ - BaseImporter() AI_NO_EXCEPT; - - /** Destructor, private as well */ - virtual ~BaseImporter(); - - // ------------------------------------------------------------------- - /** Returns whether the class can handle the format of the given file. - * - * The implementation should be as quick as possible. A check for - * the file extension is enough. If no suitable loader is found with - * this strategy, CanRead() is called again, the 'checkSig' parameter - * set to true this time. Now the implementation is expected to - * perform a full check of the file structure, possibly searching the - * first bytes of the file for magic identifiers or keywords. - * - * @param pFile Path and file name of the file to be examined. - * @param pIOHandler The IO handler to use for accessing any file. - * @param checkSig Set to true if this method is called a second time. - * This time, the implementation may take more time to examine the - * contents of the file to be loaded for magic bytes, keywords, etc - * to be able to load files with unknown/not existent file extensions. - * @return true if the class can read this file, false if not. - */ - virtual bool CanRead( - const std::string& pFile, - IOSystem* pIOHandler, - bool checkSig - ) const = 0; - - // ------------------------------------------------------------------- - /** Imports the given file and returns the imported data. - * If the import succeeds, ownership of the data is transferred to - * the caller. If the import fails, NULL is returned. The function - * takes care that any partially constructed data is destroyed - * beforehand. - * - * @param pImp #Importer object hosting this loader. - * @param pFile Path of the file to be imported. - * @param pIOHandler IO-Handler used to open this and possible other files. - * @return The imported data or NULL if failed. If it failed a - * human-readable error description can be retrieved by calling - * GetErrorText() - * - * @note This function is not intended to be overridden. Implement - * InternReadFile() to do the import. If an exception is thrown somewhere - * in InternReadFile(), this function will catch it and transform it into - * a suitable response to the caller. - */ - aiScene* ReadFile( - Importer* pImp, - const std::string& pFile, - IOSystem* pIOHandler - ); - - // ------------------------------------------------------------------- - /** Returns the error description of the last error that occurred. - * @return A description of the last error that occurred. An empty - * string if there was no error. - */ - const std::string& GetErrorText() const { - return m_ErrorText; - } - - // ------------------------------------------------------------------- - /** Called prior to ReadFile(). - * The function is a request to the importer to update its configuration - * basing on the Importer's configuration property list. - * @param pImp Importer instance - */ - virtual void SetupProperties( - const Importer* pImp - ); - - // ------------------------------------------------------------------- - /** Called by #Importer::GetImporterInfo to get a description of - * some loader features. Importers must provide this information. */ - virtual const aiImporterDesc* GetInfo() const = 0; - - /** - * Will be called only by scale process when scaling is requested. - */ - virtual void SetFileScale(double scale) - { - fileScale = scale; - } - - virtual double GetFileScale() const - { - return fileScale; - } - - enum ImporterUnits { - M, - MM, - CM, - INCHES, - FEET - }; - - /** - * Assimp Importer - * unit conversions available - * if you need another measurment unit add it below. - * it's currently defined in assimp that we prefer meters. - * */ - std::map importerUnits = { - {ImporterUnits::M, 1}, - {ImporterUnits::CM, 0.01}, - {ImporterUnits::MM, 0.001}, - {ImporterUnits::INCHES, 0.0254}, - {ImporterUnits::FEET, 0.3048} - }; - - virtual void SetApplicationUnits( const ImporterUnits& unit ) - { - importerScale = importerUnits[unit]; - applicationUnits = unit; - } - - virtual const ImporterUnits& GetApplicationUnits() - { - return applicationUnits; - } - - // ------------------------------------------------------------------- - /** Called by #Importer::GetExtensionList for each loaded importer. - * Take the extension list contained in the structure returned by - * #GetInfo and insert all file extensions into the given set. - * @param extension set to collect file extensions in*/ - void GetExtensionList(std::set& extensions); - -protected: - ImporterUnits applicationUnits = ImporterUnits::M; - double importerScale = 1.0; - double fileScale = 1.0; - - - - // ------------------------------------------------------------------- - /** Imports the given file into the given scene structure. The - * function is expected to throw an ImportErrorException if there is - * an error. If it terminates normally, the data in aiScene is - * expected to be correct. Override this function to implement the - * actual importing. - *
- * The output scene must meet the following requirements:
- *

    - *
  • At least a root node must be there, even if its only purpose - * is to reference one mesh.
  • - *
  • aiMesh::mPrimitiveTypes may be 0. The types of primitives - * in the mesh are determined automatically in this case.
  • - *
  • the vertex data is stored in a pseudo-indexed "verbose" format. - * In fact this means that every vertex that is referenced by - * a face is unique. Or the other way round: a vertex index may - * not occur twice in a single aiMesh.
  • - *
  • aiAnimation::mDuration may be -1. Assimp determines the length - * of the animation automatically in this case as the length of - * the longest animation channel.
  • - *
  • aiMesh::mBitangents may be NULL if tangents and normals are - * given. In this case bitangents are computed as the cross product - * between normal and tangent.
  • - *
  • There needn't be a material. If none is there a default material - * is generated. However, it is recommended practice for loaders - * to generate a default material for yourself that matches the - * default material setting for the file format better than Assimp's - * generic default material. Note that default materials *should* - * be named AI_DEFAULT_MATERIAL_NAME if they're just color-shaded - * or AI_DEFAULT_TEXTURED_MATERIAL_NAME if they define a (dummy) - * texture.
  • - *
- * If the AI_SCENE_FLAGS_INCOMPLETE-Flag is not set:
    - *
  • at least one mesh must be there
  • - *
  • there may be no meshes with 0 vertices or faces
  • - *
- * This won't be checked (except by the validation step): Assimp will - * crash if one of the conditions is not met! - * - * @param pFile Path of the file to be imported. - * @param pScene The scene object to hold the imported data. - * NULL is not a valid parameter. - * @param pIOHandler The IO handler to use for any file access. - * NULL is not a valid parameter. */ - virtual void InternReadFile( - const std::string& pFile, - aiScene* pScene, - IOSystem* pIOHandler - ) = 0; - -public: // static utilities - - // ------------------------------------------------------------------- - /** A utility for CanRead(). - * - * The function searches the header of a file for a specific token - * and returns true if this token is found. This works for text - * files only. There is a rudimentary handling of UNICODE files. - * The comparison is case independent. - * - * @param pIOSystem IO System to work with - * @param file File name of the file - * @param tokens List of tokens to search for - * @param numTokens Size of the token array - * @param searchBytes Number of bytes to be searched for the tokens. - */ - static bool SearchFileHeaderForToken( - IOSystem* pIOSystem, - const std::string& file, - const char** tokens, - unsigned int numTokens, - unsigned int searchBytes = 200, - bool tokensSol = false, - bool noAlphaBeforeTokens = false); - - // ------------------------------------------------------------------- - /** @brief Check whether a file has a specific file extension - * @param pFile Input file - * @param ext0 Extension to check for. Lowercase characters only, no dot! - * @param ext1 Optional second extension - * @param ext2 Optional third extension - * @note Case-insensitive - */ - static bool SimpleExtensionCheck ( - const std::string& pFile, - const char* ext0, - const char* ext1 = NULL, - const char* ext2 = NULL); - - // ------------------------------------------------------------------- - /** @brief Extract file extension from a string - * @param pFile Input file - * @return Extension without trailing dot, all lowercase - */ - static std::string GetExtension ( - const std::string& pFile); - - // ------------------------------------------------------------------- - /** @brief Check whether a file starts with one or more magic tokens - * @param pFile Input file - * @param pIOHandler IO system to be used - * @param magic n magic tokens - * @params num Size of magic - * @param offset Offset from file start where tokens are located - * @param Size of one token, in bytes. Maximally 16 bytes. - * @return true if one of the given tokens was found - * - * @note For convenience, the check is also performed for the - * byte-swapped variant of all tokens (big endian). Only for - * tokens of size 2,4. - */ - static bool CheckMagicToken( - IOSystem* pIOHandler, - const std::string& pFile, - const void* magic, - unsigned int num, - unsigned int offset = 0, - unsigned int size = 4); - - // ------------------------------------------------------------------- - /** An utility for all text file loaders. It converts a file to our - * UTF8 character set. Errors are reported, but ignored. - * - * @param data File buffer to be converted to UTF8 data. The buffer - * is resized as appropriate. */ - static void ConvertToUTF8( - std::vector& data); - - // ------------------------------------------------------------------- - /** An utility for all text file loaders. It converts a file from our - * UTF8 character set back to ISO-8859-1. Errors are reported, but ignored. - * - * @param data File buffer to be converted from UTF8 to ISO-8859-1. The buffer - * is resized as appropriate. */ - static void ConvertUTF8toISO8859_1( - std::string& data); - - // ------------------------------------------------------------------- - /// @brief Enum to define, if empty files are ok or not. - enum TextFileMode { - ALLOW_EMPTY, - FORBID_EMPTY - }; - - // ------------------------------------------------------------------- - /** Utility for text file loaders which copies the contents of the - * file into a memory buffer and converts it to our UTF8 - * representation. - * @param stream Stream to read from. - * @param data Output buffer to be resized and filled with the - * converted text file data. The buffer is terminated with - * a binary 0. - * @param mode Whether it is OK to load empty text files. */ - static void TextFileToBuffer( - IOStream* stream, - std::vector& data, - TextFileMode mode = FORBID_EMPTY); - - // ------------------------------------------------------------------- - /** Utility function to move a std::vector into a aiScene array - * @param vec The vector to be moved - * @param out The output pointer to the allocated array. - * @param numOut The output count of elements copied. */ - template - AI_FORCE_INLINE - static void CopyVector( - std::vector& vec, - T*& out, - unsigned int& outLength) - { - outLength = unsigned(vec.size()); - if (outLength) { - out = new T[outLength]; - std::swap_ranges(vec.begin(), vec.end(), out); - } - } - -protected: - /// Error description in case there was one. - std::string m_ErrorText; - /// Currently set progress handler. - ProgressHandler* m_progress; -}; - - - -} // end of namespace Assimp - -#endif // AI_BASEIMPORTER_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/Bitmap.h b/tools/ZAPD/lib/assimp/include/assimp/Bitmap.h deleted file mode 100644 index e6b5fb1327..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Bitmap.h +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Bitmap.h - * @brief Defines bitmap format helper for textures - * - * Used for file formats which embed their textures into the model file. - */ - -#ifndef AI_BITMAP_H_INC -#define AI_BITMAP_H_INC - -#include "defs.h" -#include -#include - -struct aiTexture; - -namespace Assimp { - -class IOStream; - -class ASSIMP_API Bitmap { -protected: - - struct Header { - uint16_t type; - uint32_t size; - uint16_t reserved1; - uint16_t reserved2; - uint32_t offset; - - // We define the struct size because sizeof(Header) might return a wrong result because of structure padding. - // Moreover, we must use this ugly and error prone syntax because Visual Studio neither support constexpr or sizeof(name_of_field). - static const std::size_t header_size = - sizeof(uint16_t) + // type - sizeof(uint32_t) + // size - sizeof(uint16_t) + // reserved1 - sizeof(uint16_t) + // reserved2 - sizeof(uint32_t); // offset - }; - - struct DIB { - uint32_t size; - int32_t width; - int32_t height; - uint16_t planes; - uint16_t bits_per_pixel; - uint32_t compression; - uint32_t image_size; - int32_t x_resolution; - int32_t y_resolution; - uint32_t nb_colors; - uint32_t nb_important_colors; - - // We define the struct size because sizeof(DIB) might return a wrong result because of structure padding. - // Moreover, we must use this ugly and error prone syntax because Visual Studio neither support constexpr or sizeof(name_of_field). - static const std::size_t dib_size = - sizeof(uint32_t) + // size - sizeof(int32_t) + // width - sizeof(int32_t) + // height - sizeof(uint16_t) + // planes - sizeof(uint16_t) + // bits_per_pixel - sizeof(uint32_t) + // compression - sizeof(uint32_t) + // image_size - sizeof(int32_t) + // x_resolution - sizeof(int32_t) + // y_resolution - sizeof(uint32_t) + // nb_colors - sizeof(uint32_t); // nb_important_colors - }; - - static const std::size_t mBytesPerPixel = 4; - -public: - static void Save(aiTexture* texture, IOStream* file); - -protected: - static void WriteHeader(Header& header, IOStream* file); - static void WriteDIB(DIB& dib, IOStream* file); - static void WriteData(aiTexture* texture, IOStream* file); -}; - -} - -#endif // AI_BITMAP_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/BlobIOSystem.h b/tools/ZAPD/lib/assimp/include/assimp/BlobIOSystem.h deleted file mode 100644 index d005e5c119..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/BlobIOSystem.h +++ /dev/null @@ -1,338 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Provides cheat implementations for IOSystem and IOStream to - * redirect exporter output to a blob chain.*/ - -#ifndef AI_BLOBIOSYSTEM_H_INCLUDED -#define AI_BLOBIOSYSTEM_H_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace Assimp { - class BlobIOSystem; - -// -------------------------------------------------------------------------------------------- -/** Redirect IOStream to a blob */ -// -------------------------------------------------------------------------------------------- -class BlobIOStream : public IOStream -{ -public: - - BlobIOStream(BlobIOSystem* creator, const std::string& file, size_t initial = 4096) - : buffer() - , cur_size() - , file_size() - , cursor() - , initial(initial) - , file(file) - , creator(creator) - { - } - - - virtual ~BlobIOStream(); - -public: - - // ------------------------------------------------------------------- - aiExportDataBlob* GetBlob() - { - aiExportDataBlob* blob = new aiExportDataBlob(); - blob->size = file_size; - blob->data = buffer; - - buffer = NULL; - - return blob; - } - - -public: - - - // ------------------------------------------------------------------- - virtual size_t Read( void *, - size_t, - size_t ) - { - return 0; - } - - // ------------------------------------------------------------------- - virtual size_t Write(const void* pvBuffer, - size_t pSize, - size_t pCount) - { - pSize *= pCount; - if (cursor + pSize > cur_size) { - Grow(cursor + pSize); - } - - memcpy(buffer+cursor, pvBuffer, pSize); - cursor += pSize; - - file_size = std::max(file_size,cursor); - return pCount; - } - - // ------------------------------------------------------------------- - virtual aiReturn Seek(size_t pOffset, - aiOrigin pOrigin) - { - switch(pOrigin) - { - case aiOrigin_CUR: - cursor += pOffset; - break; - - case aiOrigin_END: - cursor = file_size - pOffset; - break; - - case aiOrigin_SET: - cursor = pOffset; - break; - - default: - return AI_FAILURE; - } - - if (cursor > file_size) { - Grow(cursor); - } - - file_size = std::max(cursor,file_size); - return AI_SUCCESS; - } - - // ------------------------------------------------------------------- - virtual size_t Tell() const - { - return cursor; - } - - // ------------------------------------------------------------------- - virtual size_t FileSize() const - { - return file_size; - } - - // ------------------------------------------------------------------- - virtual void Flush() - { - // ignore - } - - - -private: - - // ------------------------------------------------------------------- - void Grow(size_t need = 0) - { - // 1.5 and phi are very heap-friendly growth factors (the first - // allows for frequent re-use of heap blocks, the second - // forms a fibonacci sequence with similar characteristics - - // since this heavily depends on the heap implementation - // and other factors as well, i'll just go with 1.5 since - // it is quicker to compute). - size_t new_size = std::max(initial, std::max( need, cur_size+(cur_size>>1) )); - - const uint8_t* const old = buffer; - buffer = new uint8_t[new_size]; - - if (old) { - memcpy(buffer,old,cur_size); - delete[] old; - } - - cur_size = new_size; - } - -private: - - uint8_t* buffer; - size_t cur_size,file_size, cursor, initial; - - const std::string file; - BlobIOSystem* const creator; -}; - - -#define AI_BLOBIO_MAGIC "$blobfile" - -// -------------------------------------------------------------------------------------------- -/** Redirect IOSystem to a blob */ -// -------------------------------------------------------------------------------------------- -class BlobIOSystem : public IOSystem -{ - - friend class BlobIOStream; - typedef std::pair BlobEntry; - -public: - - BlobIOSystem() - { - } - - virtual ~BlobIOSystem() - { - for(BlobEntry& blobby : blobs) { - delete blobby.second; - } - } - -public: - - // ------------------------------------------------------------------- - const char* GetMagicFileName() const - { - return AI_BLOBIO_MAGIC; - } - - - // ------------------------------------------------------------------- - aiExportDataBlob* GetBlobChain() - { - // one must be the master - aiExportDataBlob* master = NULL, *cur; - for(const BlobEntry& blobby : blobs) { - if (blobby.first == AI_BLOBIO_MAGIC) { - master = blobby.second; - break; - } - } - if (!master) { - ASSIMP_LOG_ERROR("BlobIOSystem: no data written or master file was not closed properly."); - return NULL; - } - - master->name.Set(""); - - cur = master; - for(const BlobEntry& blobby : blobs) { - if (blobby.second == master) { - continue; - } - - cur->next = blobby.second; - cur = cur->next; - - // extract the file extension from the file written - const std::string::size_type s = blobby.first.find_first_of('.'); - cur->name.Set(s == std::string::npos ? blobby.first : blobby.first.substr(s+1)); - } - - // give up blob ownership - blobs.clear(); - return master; - } - -public: - - // ------------------------------------------------------------------- - virtual bool Exists( const char* pFile) const { - return created.find(std::string(pFile)) != created.end(); - } - - - // ------------------------------------------------------------------- - virtual char getOsSeparator() const { - return '/'; - } - - - // ------------------------------------------------------------------- - virtual IOStream* Open(const char* pFile, - const char* pMode) - { - if (pMode[0] != 'w') { - return NULL; - } - - created.insert(std::string(pFile)); - return new BlobIOStream(this,std::string(pFile)); - } - - // ------------------------------------------------------------------- - virtual void Close( IOStream* pFile) - { - delete pFile; - } - -private: - - // ------------------------------------------------------------------- - void OnDestruct(const std::string& filename, BlobIOStream* child) - { - // we don't know in which the files are closed, so we - // can't reliably say that the first must be the master - // file ... - blobs.push_back( BlobEntry(filename,child->GetBlob()) ); - } - -private: - std::set created; - std::vector< BlobEntry > blobs; -}; - - -// -------------------------------------------------------------------------------------------- -BlobIOStream :: ~BlobIOStream() -{ - creator->OnDestruct(file,this); - delete[] buffer; -} - - -} // end Assimp - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/ByteSwapper.h b/tools/ZAPD/lib/assimp/include/assimp/ByteSwapper.h deleted file mode 100644 index 20a2463fb8..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/ByteSwapper.h +++ /dev/null @@ -1,287 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Helper class tp perform various byte oder swappings - (e.g. little to big endian) */ -#ifndef AI_BYTESWAPPER_H_INC -#define AI_BYTESWAPPER_H_INC - -#include -#include -#include - -#if _MSC_VER >= 1400 -#include -#endif - -namespace Assimp { -// -------------------------------------------------------------------------------------- -/** Defines some useful byte order swap routines. - * - * This is required to read big-endian model formats on little-endian machines, - * and vice versa. Direct use of this class is DEPRECATED. Use #StreamReader instead. */ -// -------------------------------------------------------------------------------------- -class ByteSwap { - ByteSwap() AI_NO_EXCEPT {} - -public: - - // ---------------------------------------------------------------------- - /** Swap two bytes of data - * @param[inout] _szOut A void* to save the reintcasts for the caller. */ - static inline void Swap2(void* _szOut) - { - ai_assert(_szOut); - -#if _MSC_VER >= 1400 - uint16_t* const szOut = reinterpret_cast(_szOut); - *szOut = _byteswap_ushort(*szOut); -#else - uint8_t* const szOut = reinterpret_cast(_szOut); - std::swap(szOut[0],szOut[1]); -#endif - } - - // ---------------------------------------------------------------------- - /** Swap four bytes of data - * @param[inout] _szOut A void* to save the reintcasts for the caller. */ - static inline void Swap4(void* _szOut) - { - ai_assert(_szOut); - -#if _MSC_VER >= 1400 - uint32_t* const szOut = reinterpret_cast(_szOut); - *szOut = _byteswap_ulong(*szOut); -#else - uint8_t* const szOut = reinterpret_cast(_szOut); - std::swap(szOut[0],szOut[3]); - std::swap(szOut[1],szOut[2]); -#endif - } - - // ---------------------------------------------------------------------- - /** Swap eight bytes of data - * @param[inout] _szOut A void* to save the reintcasts for the caller. */ - static inline void Swap8(void* _szOut) - { - ai_assert(_szOut); - -#if _MSC_VER >= 1400 - uint64_t* const szOut = reinterpret_cast(_szOut); - *szOut = _byteswap_uint64(*szOut); -#else - uint8_t* const szOut = reinterpret_cast(_szOut); - std::swap(szOut[0],szOut[7]); - std::swap(szOut[1],szOut[6]); - std::swap(szOut[2],szOut[5]); - std::swap(szOut[3],szOut[4]); -#endif - } - - // ---------------------------------------------------------------------- - /** ByteSwap a float. Not a joke. - * @param[inout] fOut ehm. .. */ - static inline void Swap(float* fOut) { - Swap4(fOut); - } - - // ---------------------------------------------------------------------- - /** ByteSwap a double. Not a joke. - * @param[inout] fOut ehm. .. */ - static inline void Swap(double* fOut) { - Swap8(fOut); - } - - - // ---------------------------------------------------------------------- - /** ByteSwap an int16t. Not a joke. - * @param[inout] fOut ehm. .. */ - static inline void Swap(int16_t* fOut) { - Swap2(fOut); - } - - static inline void Swap(uint16_t* fOut) { - Swap2(fOut); - } - - // ---------------------------------------------------------------------- - /** ByteSwap an int32t. Not a joke. - * @param[inout] fOut ehm. .. */ - static inline void Swap(int32_t* fOut){ - Swap4(fOut); - } - - static inline void Swap(uint32_t* fOut){ - Swap4(fOut); - } - - // ---------------------------------------------------------------------- - /** ByteSwap an int64t. Not a joke. - * @param[inout] fOut ehm. .. */ - static inline void Swap(int64_t* fOut) { - Swap8(fOut); - } - - static inline void Swap(uint64_t* fOut) { - Swap8(fOut); - } - - // ---------------------------------------------------------------------- - //! Templatized ByteSwap - //! \returns param tOut as swapped - template - static inline Type Swapped(Type tOut) - { - return _swapper()(tOut); - } - -private: - - template struct _swapper; -}; - -template struct ByteSwap::_swapper { - T operator() (T tOut) { - Swap2(&tOut); - return tOut; - } -}; - -template struct ByteSwap::_swapper { - T operator() (T tOut) { - Swap4(&tOut); - return tOut; - } -}; - -template struct ByteSwap::_swapper { - T operator() (T tOut) { - Swap8(&tOut); - return tOut; - } -}; - - -// -------------------------------------------------------------------------------------- -// ByteSwap macros for BigEndian/LittleEndian support -// -------------------------------------------------------------------------------------- -#if (defined AI_BUILD_BIG_ENDIAN) -# define AI_LE(t) (t) -# define AI_BE(t) ByteSwap::Swapped(t) -# define AI_LSWAP2(p) -# define AI_LSWAP4(p) -# define AI_LSWAP8(p) -# define AI_LSWAP2P(p) -# define AI_LSWAP4P(p) -# define AI_LSWAP8P(p) -# define LE_NCONST const -# define AI_SWAP2(p) ByteSwap::Swap2(&(p)) -# define AI_SWAP4(p) ByteSwap::Swap4(&(p)) -# define AI_SWAP8(p) ByteSwap::Swap8(&(p)) -# define AI_SWAP2P(p) ByteSwap::Swap2((p)) -# define AI_SWAP4P(p) ByteSwap::Swap4((p)) -# define AI_SWAP8P(p) ByteSwap::Swap8((p)) -# define BE_NCONST -#else -# define AI_BE(t) (t) -# define AI_LE(t) ByteSwap::Swapped(t) -# define AI_SWAP2(p) -# define AI_SWAP4(p) -# define AI_SWAP8(p) -# define AI_SWAP2P(p) -# define AI_SWAP4P(p) -# define AI_SWAP8P(p) -# define BE_NCONST const -# define AI_LSWAP2(p) ByteSwap::Swap2(&(p)) -# define AI_LSWAP4(p) ByteSwap::Swap4(&(p)) -# define AI_LSWAP8(p) ByteSwap::Swap8(&(p)) -# define AI_LSWAP2P(p) ByteSwap::Swap2((p)) -# define AI_LSWAP4P(p) ByteSwap::Swap4((p)) -# define AI_LSWAP8P(p) ByteSwap::Swap8((p)) -# define LE_NCONST -#endif - - -namespace Intern { - -// -------------------------------------------------------------------------------------------- -template -struct ByteSwapper { - void operator() (T* inout) { - ByteSwap::Swap(inout); - } -}; - -template -struct ByteSwapper { - void operator() (T*) { - } -}; - -// -------------------------------------------------------------------------------------------- -template -struct Getter { - void operator() (T* inout, bool le) { -#ifdef AI_BUILD_BIG_ENDIAN - le = le; -#else - le = !le; -#endif - if (le) { - ByteSwapper1?true:false)> () (inout); - } - else ByteSwapper () (inout); - } -}; - -template -struct Getter { - - void operator() (T* inout, bool /*le*/) { - // static branch - ByteSwapper1)> () (inout); - } -}; -} // end Intern -} // end Assimp - -#endif //!! AI_BYTESWAPPER_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/Compiler/poppack1.h b/tools/ZAPD/lib/assimp/include/assimp/Compiler/poppack1.h deleted file mode 100644 index e033bc1472..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Compiler/poppack1.h +++ /dev/null @@ -1,22 +0,0 @@ - -// =============================================================================== -// May be included multiple times - resets structure packing to the defaults -// for all supported compilers. Reverts the changes made by #include -// -// Currently this works on the following compilers: -// MSVC 7,8,9 -// GCC -// BORLAND (complains about 'pack state changed but not reverted', but works) -// =============================================================================== - -#ifndef AI_PUSHPACK_IS_DEFINED -# error pushpack1.h must be included after poppack1.h -#endif - -// reset packing to the original value -#if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) -# pragma pack( pop ) -#endif -#undef PACK_STRUCT - -#undef AI_PUSHPACK_IS_DEFINED diff --git a/tools/ZAPD/lib/assimp/include/assimp/Compiler/pstdint.h b/tools/ZAPD/lib/assimp/include/assimp/Compiler/pstdint.h deleted file mode 100644 index 4de4ce2a90..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Compiler/pstdint.h +++ /dev/null @@ -1,912 +0,0 @@ -/* A portable stdint.h - **************************************************************************** - * BSD License: - **************************************************************************** - * - * Copyright (c) 2005-2016 Paul Hsieh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - **************************************************************************** - * - * Version 0.1.15.4 - * - * The ANSI C standard committee, for the C99 standard, specified the - * inclusion of a new standard include file called stdint.h. This is - * a very useful and long desired include file which contains several - * very precise definitions for integer scalar types that is - * critically important for making portable several classes of - * applications including cryptography, hashing, variable length - * integer libraries and so on. But for most developers its likely - * useful just for programming sanity. - * - * The problem is that some compiler vendors chose to ignore the C99 - * standard and some older compilers have no opportunity to be updated. - * Because of this situation, simply including stdint.h in your code - * makes it unportable. - * - * So that's what this file is all about. Its an attempt to build a - * single universal include file that works on as many platforms as - * possible to deliver what stdint.h is supposed to. Even compilers - * that already come with stdint.h can use this file instead without - * any loss of functionality. A few things that should be noted about - * this file: - * - * 1) It is not guaranteed to be portable and/or present an identical - * interface on all platforms. The extreme variability of the - * ANSI C standard makes this an impossibility right from the - * very get go. Its really only meant to be useful for the vast - * majority of platforms that possess the capability of - * implementing usefully and precisely defined, standard sized - * integer scalars. Systems which are not intrinsically 2s - * complement may produce invalid constants. - * - * 2) There is an unavoidable use of non-reserved symbols. - * - * 3) Other standard include files are invoked. - * - * 4) This file may come in conflict with future platforms that do - * include stdint.h. The hope is that one or the other can be - * used with no real difference. - * - * 5) In the current version, if your platform can't represent - * int32_t, int16_t and int8_t, it just dumps out with a compiler - * error. - * - * 6) 64 bit integers may or may not be defined. Test for their - * presence with the test: #ifdef INT64_MAX or #ifdef UINT64_MAX. - * Note that this is different from the C99 specification which - * requires the existence of 64 bit support in the compiler. If - * this is not defined for your platform, yet it is capable of - * dealing with 64 bits then it is because this file has not yet - * been extended to cover all of your system's capabilities. - * - * 7) (u)intptr_t may or may not be defined. Test for its presence - * with the test: #ifdef PTRDIFF_MAX. If this is not defined - * for your platform, then it is because this file has not yet - * been extended to cover all of your system's capabilities, not - * because its optional. - * - * 8) The following might not been defined even if your platform is - * capable of defining it: - * - * WCHAR_MIN - * WCHAR_MAX - * (u)int64_t - * PTRDIFF_MIN - * PTRDIFF_MAX - * (u)intptr_t - * - * 9) The following have not been defined: - * - * WINT_MIN - * WINT_MAX - * - * 10) The criteria for defining (u)int_least(*)_t isn't clear, - * except for systems which don't have a type that precisely - * defined 8, 16, or 32 bit types (which this include file does - * not support anyways). Default definitions have been given. - * - * 11) The criteria for defining (u)int_fast(*)_t isn't something I - * would trust to any particular compiler vendor or the ANSI C - * committee. It is well known that "compatible systems" are - * commonly created that have very different performance - * characteristics from the systems they are compatible with, - * especially those whose vendors make both the compiler and the - * system. Default definitions have been given, but its strongly - * recommended that users never use these definitions for any - * reason (they do *NOT* deliver any serious guarantee of - * improved performance -- not in this file, nor any vendor's - * stdint.h). - * - * 12) The following macros: - * - * PRINTF_INTMAX_MODIFIER - * PRINTF_INT64_MODIFIER - * PRINTF_INT32_MODIFIER - * PRINTF_INT16_MODIFIER - * PRINTF_LEAST64_MODIFIER - * PRINTF_LEAST32_MODIFIER - * PRINTF_LEAST16_MODIFIER - * PRINTF_INTPTR_MODIFIER - * - * are strings which have been defined as the modifiers required - * for the "d", "u" and "x" printf formats to correctly output - * (u)intmax_t, (u)int64_t, (u)int32_t, (u)int16_t, (u)least64_t, - * (u)least32_t, (u)least16_t and (u)intptr_t types respectively. - * PRINTF_INTPTR_MODIFIER is not defined for some systems which - * provide their own stdint.h. PRINTF_INT64_MODIFIER is not - * defined if INT64_MAX is not defined. These are an extension - * beyond what C99 specifies must be in stdint.h. - * - * In addition, the following macros are defined: - * - * PRINTF_INTMAX_HEX_WIDTH - * PRINTF_INT64_HEX_WIDTH - * PRINTF_INT32_HEX_WIDTH - * PRINTF_INT16_HEX_WIDTH - * PRINTF_INT8_HEX_WIDTH - * PRINTF_INTMAX_DEC_WIDTH - * PRINTF_INT64_DEC_WIDTH - * PRINTF_INT32_DEC_WIDTH - * PRINTF_INT16_DEC_WIDTH - * PRINTF_UINT8_DEC_WIDTH - * PRINTF_UINTMAX_DEC_WIDTH - * PRINTF_UINT64_DEC_WIDTH - * PRINTF_UINT32_DEC_WIDTH - * PRINTF_UINT16_DEC_WIDTH - * PRINTF_UINT8_DEC_WIDTH - * - * Which specifies the maximum number of characters required to - * print the number of that type in either hexadecimal or decimal. - * These are an extension beyond what C99 specifies must be in - * stdint.h. - * - * Compilers tested (all with 0 warnings at their highest respective - * settings): Borland Turbo C 2.0, WATCOM C/C++ 11.0 (16 bits and 32 - * bits), Microsoft Visual C++ 6.0 (32 bit), Microsoft Visual Studio - * .net (VC7), Intel C++ 4.0, GNU gcc v3.3.3 - * - * This file should be considered a work in progress. Suggestions for - * improvements, especially those which increase coverage are strongly - * encouraged. - * - * Acknowledgements - * - * The following people have made significant contributions to the - * development and testing of this file: - * - * Chris Howie - * John Steele Scott - * Dave Thorup - * John Dill - * Florian Wobbe - * Christopher Sean Morrison - * Mikkel Fahnoe Jorgensen - * - */ - -#include -#include -#include - -/* - * For gcc with _STDINT_H, fill in the PRINTF_INT*_MODIFIER macros, and - * do nothing else. On the Mac OS X version of gcc this is _STDINT_H_. - */ - -#if ((defined(__SUNPRO_C) && __SUNPRO_C >= 0x570) || (defined(_MSC_VER) && _MSC_VER >= 1600) || (defined(__STDC__) && __STDC__ && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined (__WATCOMC__) && (defined (_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || (defined(__GNUC__) && (__GNUC__ > 3 || defined(_STDINT_H) || defined(_STDINT_H_) || defined (__UINT_FAST64_TYPE__)) )) && !defined (_PSTDINT_H_INCLUDED) -#include -#define _PSTDINT_H_INCLUDED -# if defined(__GNUC__) && (defined(__x86_64__) || defined(__ppc64__)) && !(defined(__APPLE__) && defined(__MACH__)) -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "l" -# endif -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -# else -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# ifndef PRINTF_INT32_MODIFIER -# if (UINT_MAX == UINT32_MAX) -# define PRINTF_INT32_MODIFIER "" -# else -# define PRINTF_INT32_MODIFIER "l" -# endif -# endif -# endif -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER -# endif -# ifndef PRINTF_INT64_HEX_WIDTH -# define PRINTF_INT64_HEX_WIDTH "16" -# endif -# ifndef PRINTF_UINT64_HEX_WIDTH -# define PRINTF_UINT64_HEX_WIDTH "16" -# endif -# ifndef PRINTF_INT32_HEX_WIDTH -# define PRINTF_INT32_HEX_WIDTH "8" -# endif -# ifndef PRINTF_UINT32_HEX_WIDTH -# define PRINTF_UINT32_HEX_WIDTH "8" -# endif -# ifndef PRINTF_INT16_HEX_WIDTH -# define PRINTF_INT16_HEX_WIDTH "4" -# endif -# ifndef PRINTF_UINT16_HEX_WIDTH -# define PRINTF_UINT16_HEX_WIDTH "4" -# endif -# ifndef PRINTF_INT8_HEX_WIDTH -# define PRINTF_INT8_HEX_WIDTH "2" -# endif -# ifndef PRINTF_UINT8_HEX_WIDTH -# define PRINTF_UINT8_HEX_WIDTH "2" -# endif -# ifndef PRINTF_INT64_DEC_WIDTH -# define PRINTF_INT64_DEC_WIDTH "19" -# endif -# ifndef PRINTF_UINT64_DEC_WIDTH -# define PRINTF_UINT64_DEC_WIDTH "20" -# endif -# ifndef PRINTF_INT32_DEC_WIDTH -# define PRINTF_INT32_DEC_WIDTH "10" -# endif -# ifndef PRINTF_UINT32_DEC_WIDTH -# define PRINTF_UINT32_DEC_WIDTH "10" -# endif -# ifndef PRINTF_INT16_DEC_WIDTH -# define PRINTF_INT16_DEC_WIDTH "5" -# endif -# ifndef PRINTF_UINT16_DEC_WIDTH -# define PRINTF_UINT16_DEC_WIDTH "5" -# endif -# ifndef PRINTF_INT8_DEC_WIDTH -# define PRINTF_INT8_DEC_WIDTH "3" -# endif -# ifndef PRINTF_UINT8_DEC_WIDTH -# define PRINTF_UINT8_DEC_WIDTH "3" -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_UINT64_HEX_WIDTH -# endif -# ifndef PRINTF_UINTMAX_HEX_WIDTH -# define PRINTF_UINTMAX_HEX_WIDTH PRINTF_UINT64_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_UINT64_DEC_WIDTH -# endif -# ifndef PRINTF_UINTMAX_DEC_WIDTH -# define PRINTF_UINTMAX_DEC_WIDTH PRINTF_UINT64_DEC_WIDTH -# endif - -/* - * Something really weird is going on with Open Watcom. Just pull some of - * these duplicated definitions from Open Watcom's stdint.h file for now. - */ - -# if defined (__WATCOMC__) && __WATCOMC__ >= 1250 -# if !defined (INT64_C) -# define INT64_C(x) (x + (INT64_MAX - INT64_MAX)) -# endif -# if !defined (UINT64_C) -# define UINT64_C(x) (x + (UINT64_MAX - UINT64_MAX)) -# endif -# if !defined (INT32_C) -# define INT32_C(x) (x + (INT32_MAX - INT32_MAX)) -# endif -# if !defined (UINT32_C) -# define UINT32_C(x) (x + (UINT32_MAX - UINT32_MAX)) -# endif -# if !defined (INT16_C) -# define INT16_C(x) (x) -# endif -# if !defined (UINT16_C) -# define UINT16_C(x) (x) -# endif -# if !defined (INT8_C) -# define INT8_C(x) (x) -# endif -# if !defined (UINT8_C) -# define UINT8_C(x) (x) -# endif -# if !defined (UINT64_MAX) -# define UINT64_MAX 18446744073709551615ULL -# endif -# if !defined (INT64_MAX) -# define INT64_MAX 9223372036854775807LL -# endif -# if !defined (UINT32_MAX) -# define UINT32_MAX 4294967295UL -# endif -# if !defined (INT32_MAX) -# define INT32_MAX 2147483647L -# endif -# if !defined (INTMAX_MAX) -# define INTMAX_MAX INT64_MAX -# endif -# if !defined (INTMAX_MIN) -# define INTMAX_MIN INT64_MIN -# endif -# endif -#endif - -/* - * I have no idea what is the truly correct thing to do on older Solaris. - * From some online discussions, this seems to be what is being - * recommended. For people who actually are developing on older Solaris, - * what I would like to know is, does this define all of the relevant - * macros of a complete stdint.h? Remember, in pstdint.h 64 bit is - * considered optional. - */ - -#if (defined(__SUNPRO_C) && __SUNPRO_C >= 0x420) && !defined(_PSTDINT_H_INCLUDED) -#include -#define _PSTDINT_H_INCLUDED -#endif - -#ifndef _PSTDINT_H_INCLUDED -#define _PSTDINT_H_INCLUDED - -#ifndef SIZE_MAX -# define SIZE_MAX (~(size_t)0) -#endif - -/* - * Deduce the type assignments from limits.h under the assumption that - * integer sizes in bits are powers of 2, and follow the ANSI - * definitions. - */ - -#ifndef UINT8_MAX -# define UINT8_MAX 0xff -#endif -#if !defined(uint8_t) && !defined(_UINT8_T) && !defined(vxWorks) -# if (UCHAR_MAX == UINT8_MAX) || defined (S_SPLINT_S) - typedef unsigned char uint8_t; -# define UINT8_C(v) ((uint8_t) v) -# else -# error "Platform not supported" -# endif -#endif - -#ifndef INT8_MAX -# define INT8_MAX 0x7f -#endif -#ifndef INT8_MIN -# define INT8_MIN INT8_C(0x80) -#endif -#if !defined(int8_t) && !defined(_INT8_T) && !defined(vxWorks) -# if (SCHAR_MAX == INT8_MAX) || defined (S_SPLINT_S) - typedef signed char int8_t; -# define INT8_C(v) ((int8_t) v) -# else -# error "Platform not supported" -# endif -#endif - -#ifndef UINT16_MAX -# define UINT16_MAX 0xffff -#endif -#if !defined(uint16_t) && !defined(_UINT16_T) && !defined(vxWorks) -#if (UINT_MAX == UINT16_MAX) || defined (S_SPLINT_S) - typedef unsigned int uint16_t; -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "" -# endif -# define UINT16_C(v) ((uint16_t) (v)) -#elif (USHRT_MAX == UINT16_MAX) - typedef unsigned short uint16_t; -# define UINT16_C(v) ((uint16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef INT16_MAX -# define INT16_MAX 0x7fff -#endif -#ifndef INT16_MIN -# define INT16_MIN INT16_C(0x8000) -#endif -#if !defined(int16_t) && !defined(_INT16_T) && !defined(vxWorks) -#if (INT_MAX == INT16_MAX) || defined (S_SPLINT_S) - typedef signed int int16_t; -# define INT16_C(v) ((int16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "" -# endif -#elif (SHRT_MAX == INT16_MAX) - typedef signed short int16_t; -# define INT16_C(v) ((int16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef UINT32_MAX -# define UINT32_MAX (0xffffffffUL) -#endif -#if !defined(uint32_t) && !defined(_UINT32_T) && !defined(vxWorks) -#if (ULONG_MAX == UINT32_MAX) || defined (S_SPLINT_S) - typedef unsigned long uint32_t; -# define UINT32_C(v) v ## UL -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "l" -# endif -#elif (UINT_MAX == UINT32_MAX) - typedef unsigned int uint32_t; -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -# define UINT32_C(v) v ## U -#elif (USHRT_MAX == UINT32_MAX) - typedef unsigned short uint32_t; -# define UINT32_C(v) ((unsigned short) (v)) -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef INT32_MAX -# define INT32_MAX (0x7fffffffL) -#endif -#ifndef INT32_MIN -# define INT32_MIN INT32_C(0x80000000) -#endif -#if !defined(int32_t) && !defined(_INT32_T) && !defined(vxWorks) -#if (LONG_MAX == INT32_MAX) || defined (S_SPLINT_S) - typedef signed long int32_t; -# define INT32_C(v) v ## L -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "l" -# endif -#elif (INT_MAX == INT32_MAX) - typedef signed int int32_t; -# define INT32_C(v) v -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#elif (SHRT_MAX == INT32_MAX) - typedef signed short int32_t; -# define INT32_C(v) ((short) (v)) -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#else -#error "Platform not supported" -#endif -#endif - -/* - * The macro stdint_int64_defined is temporarily used to record - * whether or not 64 integer support is available. It must be - * defined for any 64 integer extensions for new platforms that are - * added. - */ - -#undef stdint_int64_defined -#if (defined(__STDC__) && defined(__STDC_VERSION__)) || defined (S_SPLINT_S) -# if (__STDC__ && __STDC_VERSION__ >= 199901L) || defined (S_SPLINT_S) -# define stdint_int64_defined - typedef long long int64_t; - typedef unsigned long long uint64_t; -# define UINT64_C(v) v ## ULL -# define INT64_C(v) v ## LL -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# endif -#endif - -#if !defined (stdint_int64_defined) -# if defined(__GNUC__) && !defined(vxWorks) -# define stdint_int64_defined - __extension__ typedef long long int64_t; - __extension__ typedef unsigned long long uint64_t; -# define UINT64_C(v) v ## ULL -# define INT64_C(v) v ## LL -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# elif defined(__MWERKS__) || defined (__SUNPRO_C) || defined (__SUNPRO_CC) || defined (__APPLE_CC__) || defined (_LONG_LONG) || defined (_CRAYC) || defined (S_SPLINT_S) -# define stdint_int64_defined - typedef long long int64_t; - typedef unsigned long long uint64_t; -# define UINT64_C(v) v ## ULL -# define INT64_C(v) v ## LL -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || (defined (__BORLANDC__) && __BORLANDC__ > 0x460) || defined (__alpha) || defined (__DECC) -# define stdint_int64_defined - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -# define UINT64_C(v) v ## UI64 -# define INT64_C(v) v ## I64 -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "I64" -# endif -# endif -#endif - -#if !defined (LONG_LONG_MAX) && defined (INT64_C) -# define LONG_LONG_MAX INT64_C (9223372036854775807) -#endif -#ifndef ULONG_LONG_MAX -# define ULONG_LONG_MAX UINT64_C (18446744073709551615) -#endif - -#if !defined (INT64_MAX) && defined (INT64_C) -# define INT64_MAX INT64_C (9223372036854775807) -#endif -#if !defined (INT64_MIN) && defined (INT64_C) -# define INT64_MIN INT64_C (-9223372036854775808) -#endif -#if !defined (UINT64_MAX) && defined (INT64_C) -# define UINT64_MAX UINT64_C (18446744073709551615) -#endif - -/* - * Width of hexadecimal for number field. - */ - -#ifndef PRINTF_INT64_HEX_WIDTH -# define PRINTF_INT64_HEX_WIDTH "16" -#endif -#ifndef PRINTF_INT32_HEX_WIDTH -# define PRINTF_INT32_HEX_WIDTH "8" -#endif -#ifndef PRINTF_INT16_HEX_WIDTH -# define PRINTF_INT16_HEX_WIDTH "4" -#endif -#ifndef PRINTF_INT8_HEX_WIDTH -# define PRINTF_INT8_HEX_WIDTH "2" -#endif -#ifndef PRINTF_INT64_DEC_WIDTH -# define PRINTF_INT64_DEC_WIDTH "19" -#endif -#ifndef PRINTF_INT32_DEC_WIDTH -# define PRINTF_INT32_DEC_WIDTH "10" -#endif -#ifndef PRINTF_INT16_DEC_WIDTH -# define PRINTF_INT16_DEC_WIDTH "5" -#endif -#ifndef PRINTF_INT8_DEC_WIDTH -# define PRINTF_INT8_DEC_WIDTH "3" -#endif -#ifndef PRINTF_UINT64_DEC_WIDTH -# define PRINTF_UINT64_DEC_WIDTH "20" -#endif -#ifndef PRINTF_UINT32_DEC_WIDTH -# define PRINTF_UINT32_DEC_WIDTH "10" -#endif -#ifndef PRINTF_UINT16_DEC_WIDTH -# define PRINTF_UINT16_DEC_WIDTH "5" -#endif -#ifndef PRINTF_UINT8_DEC_WIDTH -# define PRINTF_UINT8_DEC_WIDTH "3" -#endif - -/* - * Ok, lets not worry about 128 bit integers for now. Moore's law says - * we don't need to worry about that until about 2040 at which point - * we'll have bigger things to worry about. - */ - -#ifdef stdint_int64_defined - typedef int64_t intmax_t; - typedef uint64_t uintmax_t; -# define INTMAX_MAX INT64_MAX -# define INTMAX_MIN INT64_MIN -# define UINTMAX_MAX UINT64_MAX -# define UINTMAX_C(v) UINT64_C(v) -# define INTMAX_C(v) INT64_C(v) -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH -# endif -#else - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; -# define INTMAX_MAX INT32_MAX -# define UINTMAX_MAX UINT32_MAX -# define UINTMAX_C(v) UINT32_C(v) -# define INTMAX_C(v) INT32_C(v) -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT32_MODIFIER -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT32_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT32_DEC_WIDTH -# endif -#endif - -/* - * Because this file currently only supports platforms which have - * precise powers of 2 as bit sizes for the default integers, the - * least definitions are all trivial. Its possible that a future - * version of this file could have different definitions. - */ - -#ifndef stdint_least_defined - typedef int8_t int_least8_t; - typedef uint8_t uint_least8_t; - typedef int16_t int_least16_t; - typedef uint16_t uint_least16_t; - typedef int32_t int_least32_t; - typedef uint32_t uint_least32_t; -# define PRINTF_LEAST32_MODIFIER PRINTF_INT32_MODIFIER -# define PRINTF_LEAST16_MODIFIER PRINTF_INT16_MODIFIER -# define UINT_LEAST8_MAX UINT8_MAX -# define INT_LEAST8_MAX INT8_MAX -# define UINT_LEAST16_MAX UINT16_MAX -# define INT_LEAST16_MAX INT16_MAX -# define UINT_LEAST32_MAX UINT32_MAX -# define INT_LEAST32_MAX INT32_MAX -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST32_MIN INT32_MIN -# ifdef stdint_int64_defined - typedef int64_t int_least64_t; - typedef uint64_t uint_least64_t; -# define PRINTF_LEAST64_MODIFIER PRINTF_INT64_MODIFIER -# define UINT_LEAST64_MAX UINT64_MAX -# define INT_LEAST64_MAX INT64_MAX -# define INT_LEAST64_MIN INT64_MIN -# endif -#endif -#undef stdint_least_defined - -/* - * The ANSI C committee pretending to know or specify anything about - * performance is the epitome of misguided arrogance. The mandate of - * this file is to *ONLY* ever support that absolute minimum - * definition of the fast integer types, for compatibility purposes. - * No extensions, and no attempt to suggest what may or may not be a - * faster integer type will ever be made in this file. Developers are - * warned to stay away from these types when using this or any other - * stdint.h. - */ - -typedef int_least8_t int_fast8_t; -typedef uint_least8_t uint_fast8_t; -typedef int_least16_t int_fast16_t; -typedef uint_least16_t uint_fast16_t; -typedef int_least32_t int_fast32_t; -typedef uint_least32_t uint_fast32_t; -#define UINT_FAST8_MAX UINT_LEAST8_MAX -#define INT_FAST8_MAX INT_LEAST8_MAX -#define UINT_FAST16_MAX UINT_LEAST16_MAX -#define INT_FAST16_MAX INT_LEAST16_MAX -#define UINT_FAST32_MAX UINT_LEAST32_MAX -#define INT_FAST32_MAX INT_LEAST32_MAX -#define INT_FAST8_MIN INT_LEAST8_MIN -#define INT_FAST16_MIN INT_LEAST16_MIN -#define INT_FAST32_MIN INT_LEAST32_MIN -#ifdef stdint_int64_defined - typedef int_least64_t int_fast64_t; - typedef uint_least64_t uint_fast64_t; -# define UINT_FAST64_MAX UINT_LEAST64_MAX -# define INT_FAST64_MAX INT_LEAST64_MAX -# define INT_FAST64_MIN INT_LEAST64_MIN -#endif - -#undef stdint_int64_defined - -/* - * Whatever piecemeal, per compiler thing we can do about the wchar_t - * type limits. - */ - -#if defined(__WATCOMC__) || defined(_MSC_VER) || defined (__GNUC__) && !defined(vxWorks) -# include -# ifndef WCHAR_MIN -# define WCHAR_MIN 0 -# endif -# ifndef WCHAR_MAX -# define WCHAR_MAX ((wchar_t)-1) -# endif -#endif - -/* - * Whatever piecemeal, per compiler/platform thing we can do about the - * (u)intptr_t types and limits. - */ - -#if (defined (_MSC_VER) && defined (_UINTPTR_T_DEFINED)) || defined (_UINTPTR_T) -# define STDINT_H_UINTPTR_T_DEFINED -#endif - -#ifndef STDINT_H_UINTPTR_T_DEFINED -# if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (_WIN64) || defined (__ppc64__) -# define stdint_intptr_bits 64 -# elif defined (__WATCOMC__) || defined (__TURBOC__) -# if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__) -# define stdint_intptr_bits 16 -# else -# define stdint_intptr_bits 32 -# endif -# elif defined (__i386__) || defined (_WIN32) || defined (WIN32) || defined (__ppc64__) -# define stdint_intptr_bits 32 -# elif defined (__INTEL_COMPILER) -/* TODO -- what did Intel do about x86-64? */ -# else -/* #error "This platform might not be supported yet" */ -# endif - -# ifdef stdint_intptr_bits -# define stdint_intptr_glue3_i(a,b,c) a##b##c -# define stdint_intptr_glue3(a,b,c) stdint_intptr_glue3_i(a,b,c) -# ifndef PRINTF_INTPTR_MODIFIER -# define PRINTF_INTPTR_MODIFIER stdint_intptr_glue3(PRINTF_INT,stdint_intptr_bits,_MODIFIER) -# endif -# ifndef PTRDIFF_MAX -# define PTRDIFF_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX) -# endif -# ifndef PTRDIFF_MIN -# define PTRDIFF_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN) -# endif -# ifndef UINTPTR_MAX -# define UINTPTR_MAX stdint_intptr_glue3(UINT,stdint_intptr_bits,_MAX) -# endif -# ifndef INTPTR_MAX -# define INTPTR_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX) -# endif -# ifndef INTPTR_MIN -# define INTPTR_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN) -# endif -# ifndef INTPTR_C -# define INTPTR_C(x) stdint_intptr_glue3(INT,stdint_intptr_bits,_C)(x) -# endif -# ifndef UINTPTR_C -# define UINTPTR_C(x) stdint_intptr_glue3(UINT,stdint_intptr_bits,_C)(x) -# endif - typedef stdint_intptr_glue3(uint,stdint_intptr_bits,_t) uintptr_t; - typedef stdint_intptr_glue3( int,stdint_intptr_bits,_t) intptr_t; -# else -/* TODO -- This following is likely wrong for some platforms, and does - nothing for the definition of uintptr_t. */ - typedef ptrdiff_t intptr_t; -# endif -# define STDINT_H_UINTPTR_T_DEFINED -#endif - -/* - * Assumes sig_atomic_t is signed and we have a 2s complement machine. - */ - -#ifndef SIG_ATOMIC_MAX -# define SIG_ATOMIC_MAX ((((sig_atomic_t) 1) << (sizeof (sig_atomic_t)*CHAR_BIT-1)) - 1) -#endif - -#endif - -#if defined (__TEST_PSTDINT_FOR_CORRECTNESS) - -/* - * Please compile with the maximum warning settings to make sure macros are - * not defined more than once. - */ - -#include -#include -#include - -#define glue3_aux(x,y,z) x ## y ## z -#define glue3(x,y,z) glue3_aux(x,y,z) - -#define DECLU(bits) glue3(uint,bits,_t) glue3(u,bits,) = glue3(UINT,bits,_C) (0); -#define DECLI(bits) glue3(int,bits,_t) glue3(i,bits,) = glue3(INT,bits,_C) (0); - -#define DECL(us,bits) glue3(DECL,us,) (bits) - -#define TESTUMAX(bits) glue3(u,bits,) = ~glue3(u,bits,); if (glue3(UINT,bits,_MAX) != glue3(u,bits,)) printf ("Something wrong with UINT%d_MAX\n", bits) - -#define REPORTERROR(msg) { err_n++; if (err_first <= 0) err_first = __LINE__; printf msg; } - -int main () { - int err_n = 0; - int err_first = 0; - DECL(I,8) - DECL(U,8) - DECL(I,16) - DECL(U,16) - DECL(I,32) - DECL(U,32) -#ifdef INT64_MAX - DECL(I,64) - DECL(U,64) -#endif - intmax_t imax = INTMAX_C(0); - uintmax_t umax = UINTMAX_C(0); - char str0[256], str1[256]; - - sprintf (str0, "%" PRINTF_INT32_MODIFIER "d", INT32_C(2147483647)); - if (0 != strcmp (str0, "2147483647")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str0)); - if (atoi(PRINTF_INT32_DEC_WIDTH) != (int) strlen(str0)) REPORTERROR (("Something wrong with PRINTF_INT32_DEC_WIDTH : %s\n", PRINTF_INT32_DEC_WIDTH)); - sprintf (str0, "%" PRINTF_INT32_MODIFIER "u", UINT32_C(4294967295)); - if (0 != strcmp (str0, "4294967295")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str0)); - if (atoi(PRINTF_UINT32_DEC_WIDTH) != (int) strlen(str0)) REPORTERROR (("Something wrong with PRINTF_UINT32_DEC_WIDTH : %s\n", PRINTF_UINT32_DEC_WIDTH)); -#ifdef INT64_MAX - sprintf (str1, "%" PRINTF_INT64_MODIFIER "d", INT64_C(9223372036854775807)); - if (0 != strcmp (str1, "9223372036854775807")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str1)); - if (atoi(PRINTF_INT64_DEC_WIDTH) != (int) strlen(str1)) REPORTERROR (("Something wrong with PRINTF_INT64_DEC_WIDTH : %s, %d\n", PRINTF_INT64_DEC_WIDTH, (int) strlen(str1))); - sprintf (str1, "%" PRINTF_INT64_MODIFIER "u", UINT64_C(18446744073709550591)); - if (0 != strcmp (str1, "18446744073709550591")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str1)); - if (atoi(PRINTF_UINT64_DEC_WIDTH) != (int) strlen(str1)) REPORTERROR (("Something wrong with PRINTF_UINT64_DEC_WIDTH : %s, %d\n", PRINTF_UINT64_DEC_WIDTH, (int) strlen(str1))); -#endif - - sprintf (str0, "%d %x\n", 0, ~0); - - sprintf (str1, "%d %x\n", i8, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i8 : %s\n", str1)); - sprintf (str1, "%u %x\n", u8, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u8 : %s\n", str1)); - sprintf (str1, "%d %x\n", i16, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i16 : %s\n", str1)); - sprintf (str1, "%u %x\n", u16, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u16 : %s\n", str1)); - sprintf (str1, "%" PRINTF_INT32_MODIFIER "d %x\n", i32, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i32 : %s\n", str1)); - sprintf (str1, "%" PRINTF_INT32_MODIFIER "u %x\n", u32, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u32 : %s\n", str1)); -#ifdef INT64_MAX - sprintf (str1, "%" PRINTF_INT64_MODIFIER "d %x\n", i64, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i64 : %s\n", str1)); -#endif - sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "d %x\n", imax, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with imax : %s\n", str1)); - sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "u %x\n", umax, ~0); - if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with umax : %s\n", str1)); - - TESTUMAX(8); - TESTUMAX(16); - TESTUMAX(32); -#ifdef INT64_MAX - TESTUMAX(64); -#endif - -#define STR(v) #v -#define Q(v) printf ("sizeof " STR(v) " = %u\n", (unsigned) sizeof (v)); - if (err_n) { - printf ("pstdint.h is not correct. Please use sizes below to correct it:\n"); - } - - Q(int) - Q(unsigned) - Q(long int) - Q(short int) - Q(int8_t) - Q(int16_t) - Q(int32_t) -#ifdef INT64_MAX - Q(int64_t) -#endif - - return EXIT_SUCCESS; -} - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/Compiler/pushpack1.h b/tools/ZAPD/lib/assimp/include/assimp/Compiler/pushpack1.h deleted file mode 100644 index 4c9fbb857f..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Compiler/pushpack1.h +++ /dev/null @@ -1,43 +0,0 @@ - - -// =============================================================================== -// May be included multiple times - sets structure packing to 1 -// for all supported compilers. #include reverts the changes. -// -// Currently this works on the following compilers: -// MSVC 7,8,9 -// GCC -// BORLAND (complains about 'pack state changed but not reverted', but works) -// Clang -// -// -// USAGE: -// -// struct StructToBePacked { -// } PACK_STRUCT; -// -// =============================================================================== - -#ifdef AI_PUSHPACK_IS_DEFINED -# error poppack1.h must be included after pushpack1.h -#endif - -#if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) -# pragma pack(push,1) -# define PACK_STRUCT -#elif defined( __GNUC__ ) || defined(__clang__) -# if !defined(HOST_MINGW) -# define PACK_STRUCT __attribute__((__packed__)) -# else -# define PACK_STRUCT __attribute__((gcc_struct, __packed__)) -# endif -#else -# error Compiler not supported -#endif - -#if defined(_MSC_VER) -// C4103: Packing was changed after the inclusion of the header, probably missing #pragma pop -# pragma warning (disable : 4103) -#endif - -#define AI_PUSHPACK_IS_DEFINED diff --git a/tools/ZAPD/lib/assimp/include/assimp/CreateAnimMesh.h b/tools/ZAPD/lib/assimp/include/assimp/CreateAnimMesh.h deleted file mode 100644 index a60173588f..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/CreateAnimMesh.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file CreateAnimMesh.h - * Create AnimMesh from Mesh - */ -#ifndef INCLUDED_AI_CREATE_ANIM_MESH_H -#define INCLUDED_AI_CREATE_ANIM_MESH_H - -#include - -namespace Assimp { - -/** Create aiAnimMesh from aiMesh. */ -ASSIMP_API aiAnimMesh *aiCreateAnimMesh(const aiMesh *mesh); - -} // end of namespace Assimp -#endif // INCLUDED_AI_CREATE_ANIM_MESH_H - diff --git a/tools/ZAPD/lib/assimp/include/assimp/DefaultIOStream.h b/tools/ZAPD/lib/assimp/include/assimp/DefaultIOStream.h deleted file mode 100644 index 994d728ff5..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/DefaultIOStream.h +++ /dev/null @@ -1,140 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Default file I/O using fXXX()-family of functions */ -#ifndef AI_DEFAULTIOSTREAM_H_INC -#define AI_DEFAULTIOSTREAM_H_INC - -#include -#include -#include -#include - -namespace Assimp { - -// ---------------------------------------------------------------------------------- -//! @class DefaultIOStream -//! @brief Default IO implementation, use standard IO operations -//! @note An instance of this class can exist without a valid file handle -//! attached to it. All calls fail, but the instance can nevertheless be -//! used with no restrictions. -class ASSIMP_API DefaultIOStream : public IOStream -{ - friend class DefaultIOSystem; -#if __ANDROID__ -# if __ANDROID_API__ > 9 -# if defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) - friend class AndroidJNIIOSystem; -# endif // defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) -# endif // __ANDROID_API__ > 9 -#endif // __ANDROID__ - -protected: - DefaultIOStream() AI_NO_EXCEPT; - DefaultIOStream(FILE* pFile, const std::string &strFilename); - -public: - /** Destructor public to allow simple deletion to close the file. */ - ~DefaultIOStream (); - - // ------------------------------------------------------------------- - /// Read from stream - size_t Read(void* pvBuffer, - size_t pSize, - size_t pCount); - - - // ------------------------------------------------------------------- - /// Write to stream - size_t Write(const void* pvBuffer, - size_t pSize, - size_t pCount); - - // ------------------------------------------------------------------- - /// Seek specific position - aiReturn Seek(size_t pOffset, - aiOrigin pOrigin); - - // ------------------------------------------------------------------- - /// Get current seek position - size_t Tell() const; - - // ------------------------------------------------------------------- - /// Get size of file - size_t FileSize() const; - - // ------------------------------------------------------------------- - /// Flush file contents - void Flush(); - -private: - // File data-structure, using clib - FILE* mFile; - // Filename - std::string mFilename; - // Cached file size - mutable size_t mCachedSize; -}; - -// ---------------------------------------------------------------------------------- -inline -DefaultIOStream::DefaultIOStream() AI_NO_EXCEPT -: mFile(nullptr) -, mFilename("") -, mCachedSize(SIZE_MAX) { - // empty -} - -// ---------------------------------------------------------------------------------- -inline -DefaultIOStream::DefaultIOStream (FILE* pFile, const std::string &strFilename) -: mFile(pFile) -, mFilename(strFilename) -, mCachedSize(SIZE_MAX) { - // empty -} -// ---------------------------------------------------------------------------------- - -} // ns assimp - -#endif //!!AI_DEFAULTIOSTREAM_H_INC - diff --git a/tools/ZAPD/lib/assimp/include/assimp/DefaultIOSystem.h b/tools/ZAPD/lib/assimp/include/assimp/DefaultIOSystem.h deleted file mode 100644 index 2dd5c801b5..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/DefaultIOSystem.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Default implementation of IOSystem using the standard C file functions */ -#ifndef AI_DEFAULTIOSYSTEM_H_INC -#define AI_DEFAULTIOSYSTEM_H_INC - -#include - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** Default implementation of IOSystem using the standard C file functions */ -class ASSIMP_API DefaultIOSystem : public IOSystem { -public: - // ------------------------------------------------------------------- - /** Tests for the existence of a file at the given path. */ - bool Exists( const char* pFile) const; - - // ------------------------------------------------------------------- - /** Returns the directory separator. */ - char getOsSeparator() const; - - // ------------------------------------------------------------------- - /** Open a new file with a given path. */ - IOStream* Open( const char* pFile, const char* pMode = "rb"); - - // ------------------------------------------------------------------- - /** Closes the given file and releases all resources associated with it. */ - void Close( IOStream* pFile); - - // ------------------------------------------------------------------- - /** Compare two paths */ - bool ComparePaths (const char* one, const char* second) const; - - /** @brief get the file name of a full filepath - * example: /tmp/archive.tar.gz -> archive.tar.gz - */ - static std::string fileName( const std::string &path ); - - /** @brief get the complete base name of a full filepath - * example: /tmp/archive.tar.gz -> archive.tar - */ - static std::string completeBaseName( const std::string &path); - - /** @brief get the path of a full filepath - * example: /tmp/archive.tar.gz -> /tmp/ - */ - static std::string absolutePath( const std::string &path); -}; - -} //!ns Assimp - -#endif //AI_DEFAULTIOSYSTEM_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/DefaultLogger.hpp b/tools/ZAPD/lib/assimp/include/assimp/DefaultLogger.hpp deleted file mode 100644 index 1946e250a6..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/DefaultLogger.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ -/** @file DefaultLogger.hpp -*/ - -#ifndef INCLUDED_AI_DEFAULTLOGGER -#define INCLUDED_AI_DEFAULTLOGGER - -#include "Logger.hpp" -#include "LogStream.hpp" -#include "NullLogger.hpp" -#include - -namespace Assimp { -// ------------------------------------------------------------------------------------ -class IOStream; -struct LogStreamInfo; - -/** default name of logfile */ -#define ASSIMP_DEFAULT_LOG_NAME "AssimpLog.txt" - -// ------------------------------------------------------------------------------------ -/** @brief CPP-API: Primary logging facility of Assimp. - * - * The library stores its primary #Logger as a static member of this class. - * #get() returns this primary logger. By default the underlying implementation is - * just a #NullLogger which rejects all log messages. By calling #create(), logging - * is turned on. To capture the log output multiple log streams (#LogStream) can be - * attach to the logger. Some default streams for common streaming locations (such as - * a file, std::cout, OutputDebugString()) are also provided. - * - * If you wish to customize the logging at an even deeper level supply your own - * implementation of #Logger to #set(). - * @note The whole logging stuff causes a small extra overhead for all imports. */ -class ASSIMP_API DefaultLogger : - public Logger { - -public: - - // ---------------------------------------------------------------------- - /** @brief Creates a logging instance. - * @param name Name for log file. Only valid in combination - * with the aiDefaultLogStream_FILE flag. - * @param severity Log severity, VERBOSE turns on debug messages - * @param defStreams Default log streams to be attached. Any bitwise - * combination of the aiDefaultLogStream enumerated values. - * If #aiDefaultLogStream_FILE is specified but an empty string is - * passed for 'name', no log file is created at all. - * @param io IOSystem to be used to open external files (such as the - * log file). Pass NULL to rely on the default implementation. - * This replaces the default #NullLogger with a #DefaultLogger instance. */ - static Logger *create(const char* name = ASSIMP_DEFAULT_LOG_NAME, - LogSeverity severity = NORMAL, - unsigned int defStreams = aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE, - IOSystem* io = NULL); - - // ---------------------------------------------------------------------- - /** @brief Setup a custom #Logger implementation. - * - * Use this if the provided #DefaultLogger class doesn't fit into - * your needs. If the provided message formatting is OK for you, - * it's much easier to use #create() and to attach your own custom - * output streams to it. - * @param logger Pass NULL to setup a default NullLogger*/ - static void set (Logger *logger); - - // ---------------------------------------------------------------------- - /** @brief Getter for singleton instance - * @return Only instance. This is never null, but it could be a - * NullLogger. Use isNullLogger to check this.*/ - static Logger *get(); - - // ---------------------------------------------------------------------- - /** @brief Return whether a #NullLogger is currently active - * @return true if the current logger is a #NullLogger. - * Use create() or set() to setup a logger that does actually do - * something else than just rejecting all log messages. */ - static bool isNullLogger(); - - // ---------------------------------------------------------------------- - /** @brief Kills the current singleton logger and replaces it with a - * #NullLogger instance. */ - static void kill(); - - // ---------------------------------------------------------------------- - /** @copydoc Logger::attachStream */ - bool attachStream(LogStream *pStream, - unsigned int severity); - - // ---------------------------------------------------------------------- - /** @copydoc Logger::detatchStream */ - bool detatchStream(LogStream *pStream, - unsigned int severity); - -private: - // ---------------------------------------------------------------------- - /** @briefPrivate construction for internal use by create(). - * @param severity Logging granularity */ - explicit DefaultLogger(LogSeverity severity); - - // ---------------------------------------------------------------------- - /** @briefDestructor */ - ~DefaultLogger(); - - /** @brief Logs debug infos, only been written when severity level VERBOSE is set */ - void OnDebug(const char* message); - - /** @brief Logs an info message */ - void OnInfo(const char* message); - - /** @brief Logs a warning message */ - void OnWarn(const char* message); - - /** @brief Logs an error message */ - void OnError(const char* message); - - // ---------------------------------------------------------------------- - /** @brief Writes a message to all streams */ - void WriteToStreams(const char* message, ErrorSeverity ErrorSev ); - - // ---------------------------------------------------------------------- - /** @brief Returns the thread id. - * @note This is an OS specific feature, if not supported, a - * zero will be returned. - */ - unsigned int GetThreadID(); - -private: - // Aliases for stream container - typedef std::vector StreamArray; - typedef std::vector::iterator StreamIt; - typedef std::vector::const_iterator ConstStreamIt; - - //! only logging instance - static Logger *m_pLogger; - static NullLogger s_pNullLogger; - - //! Attached streams - StreamArray m_StreamArray; - - bool noRepeatMsg; - char lastMsg[MAX_LOG_MESSAGE_LENGTH*2]; - size_t lastLen; -}; -// ------------------------------------------------------------------------------------ - -} // Namespace Assimp - -#endif // !! INCLUDED_AI_DEFAULTLOGGER diff --git a/tools/ZAPD/lib/assimp/include/assimp/Defines.h b/tools/ZAPD/lib/assimp/include/assimp/Defines.h deleted file mode 100644 index 15e1d83c26..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Defines.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2012, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -// We need those constants, workaround for any platforms where nobody defined them yet -#if (!defined SIZE_MAX) -# define SIZE_MAX (~((size_t)0)) -#endif - -#if (!defined UINT_MAX) -# define UINT_MAX (~((unsigned int)0)) -#endif - diff --git a/tools/ZAPD/lib/assimp/include/assimp/Exceptional.h b/tools/ZAPD/lib/assimp/include/assimp/Exceptional.h deleted file mode 100644 index 5109b8f077..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Exceptional.h +++ /dev/null @@ -1,125 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2008, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -#ifndef INCLUDED_EXCEPTIONAL_H -#define INCLUDED_EXCEPTIONAL_H - -#include -#include -using std::runtime_error; - -#ifdef _MSC_VER -# pragma warning(disable : 4275) -#endif - -// --------------------------------------------------------------------------- -/** FOR IMPORTER PLUGINS ONLY: Simple exception class to be thrown if an - * unrecoverable error occurs while importing. Loading APIs return - * NULL instead of a valid aiScene then. */ -class DeadlyImportError - : public runtime_error -{ -public: - /** Constructor with arguments */ - explicit DeadlyImportError( const std::string& errorText) - : runtime_error(errorText) - { - } - -private: -}; - -typedef DeadlyImportError DeadlyExportError; - -#ifdef _MSC_VER -# pragma warning(default : 4275) -#endif - -// --------------------------------------------------------------------------- -template -struct ExceptionSwallower { - T operator ()() const { - return T(); - } -}; - -// --------------------------------------------------------------------------- -template -struct ExceptionSwallower { - T* operator ()() const { - return NULL; - } -}; - -// --------------------------------------------------------------------------- -template <> -struct ExceptionSwallower { - aiReturn operator ()() const { - try { - throw; - } - catch (std::bad_alloc&) { - return aiReturn_OUTOFMEMORY; - } - catch (...) { - return aiReturn_FAILURE; - } - } -}; - -// --------------------------------------------------------------------------- -template <> -struct ExceptionSwallower { - void operator ()() const { - return; - } -}; - -#define ASSIMP_BEGIN_EXCEPTION_REGION()\ -{\ - try { - -#define ASSIMP_END_EXCEPTION_REGION(type)\ - } catch(...) {\ - return ExceptionSwallower()();\ - }\ -} - -#endif // INCLUDED_EXCEPTIONAL_H diff --git a/tools/ZAPD/lib/assimp/include/assimp/Exporter.hpp b/tools/ZAPD/lib/assimp/include/assimp/Exporter.hpp deleted file mode 100644 index ea0303e804..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Exporter.hpp +++ /dev/null @@ -1,505 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Exporter.hpp -* @brief Defines the CPP-API for the Assimp export interface -*/ -#pragma once -#ifndef AI_EXPORT_HPP_INC -#define AI_EXPORT_HPP_INC - -#ifndef ASSIMP_BUILD_NO_EXPORT - -#include "cexport.h" -#include - -namespace Assimp { - -class ExporterPimpl; -class IOSystem; -class ProgressHandler; - -// ---------------------------------------------------------------------------------- -/** CPP-API: The Exporter class forms an C++ interface to the export functionality - * of the Open Asset Import Library. Note that the export interface is available - * only if Assimp has been built with ASSIMP_BUILD_NO_EXPORT not defined. - * - * The interface is modeled after the importer interface and mostly - * symmetric. The same rules for threading etc. apply. - * - * In a nutshell, there are two export interfaces: #Export, which writes the - * output file(s) either to the regular file system or to a user-supplied - * #IOSystem, and #ExportToBlob which returns a linked list of memory - * buffers (blob), each referring to one output file (in most cases - * there will be only one output file of course, but this extra complexity is - * needed since Assimp aims at supporting a wide range of file formats). - * - * #ExportToBlob is especially useful if you intend to work - * with the data in-memory. -*/ -class ASSIMP_API ExportProperties; - -class ASSIMP_API Exporter { -public: - /** Function pointer type of a Export worker function */ - typedef void (*fpExportFunc)(const char*, IOSystem*, const aiScene*, const ExportProperties*); - - /** Internal description of an Assimp export format option */ - struct ExportFormatEntry { - /// Public description structure to be returned by aiGetExportFormatDescription() - aiExportFormatDesc mDescription; - - // Worker function to do the actual exporting - fpExportFunc mExportFunction; - - // Post-processing steps to be executed PRIOR to invoking mExportFunction - unsigned int mEnforcePP; - - // Constructor to fill all entries - ExportFormatEntry( const char* pId, const char* pDesc, const char* pExtension, fpExportFunc pFunction, unsigned int pEnforcePP = 0u) - { - mDescription.id = pId; - mDescription.description = pDesc; - mDescription.fileExtension = pExtension; - mExportFunction = pFunction; - mEnforcePP = pEnforcePP; - } - - ExportFormatEntry() : - mExportFunction() - , mEnforcePP() - { - mDescription.id = NULL; - mDescription.description = NULL; - mDescription.fileExtension = NULL; - } - }; - - /** - * @brief The class constructor. - */ - Exporter(); - - /** - * @brief The class destructor. - */ - ~Exporter(); - - // ------------------------------------------------------------------- - /** Supplies a custom IO handler to the exporter to use to open and - * access files. - * - * If you need #Export to use custom IO logic to access the files, - * you need to supply a custom implementation of IOSystem and - * IOFile to the exporter. - * - * #Exporter takes ownership of the object and will destroy it - * afterwards. The previously assigned handler will be deleted. - * Pass NULL to take again ownership of your IOSystem and reset Assimp - * to use its default implementation, which uses plain file IO. - * - * @param pIOHandler The IO handler to be used in all file accesses - * of the Importer. */ - void SetIOHandler( IOSystem* pIOHandler); - - // ------------------------------------------------------------------- - /** Retrieves the IO handler that is currently set. - * You can use #IsDefaultIOHandler() to check whether the returned - * interface is the default IO handler provided by ASSIMP. The default - * handler is active as long the application doesn't supply its own - * custom IO handler via #SetIOHandler(). - * @return A valid IOSystem interface, never NULL. */ - IOSystem* GetIOHandler() const; - - // ------------------------------------------------------------------- - /** Checks whether a default IO handler is active - * A default handler is active as long the application doesn't - * supply its own custom IO handler via #SetIOHandler(). - * @return true by default */ - bool IsDefaultIOHandler() const; - - // ------------------------------------------------------------------- - /** Supplies a custom progress handler to the exporter. This - * interface exposes an #Update() callback, which is called - * more or less periodically (please don't sue us if it - * isn't as periodically as you'd like it to have ...). - * This can be used to implement progress bars and loading - * timeouts. - * @param pHandler Progress callback interface. Pass nullptr to - * disable progress reporting. - * @note Progress handlers can be used to abort the loading - * at almost any time.*/ - void SetProgressHandler(ProgressHandler* pHandler); - - // ------------------------------------------------------------------- - /** Exports the given scene to a chosen file format. Returns the exported - * data as a binary blob which you can write into a file or something. - * When you're done with the data, simply let the #Exporter instance go - * out of scope to have it released automatically. - * @param pScene The scene to export. Stays in possession of the caller, - * is not changed by the function. - * @param pFormatId ID string to specify to which format you want to - * export to. Use - * #GetExportFormatCount / #GetExportFormatDescription to learn which - * export formats are available. - * @param pPreprocessing See the documentation for #Export - * @return the exported data or NULL in case of error. - * @note If the Exporter instance did already hold a blob from - * a previous call to #ExportToBlob, it will be disposed. - * Any IO handlers set via #SetIOHandler are ignored here. - * @note Use aiCopyScene() to get a modifiable copy of a previously - * imported scene. */ - const aiExportDataBlob* ExportToBlob(const aiScene* pScene, const char* pFormatId, - unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr); - const aiExportDataBlob* ExportToBlob( const aiScene* pScene, const std::string& pFormatId, - unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr); - - // ------------------------------------------------------------------- - /** Convenience function to export directly to a file. Use - * #SetIOSystem to supply a custom IOSystem to gain fine-grained control - * about the output data flow of the export process. - * @param pBlob A data blob obtained from a previous call to #aiExportScene. Must not be NULL. - * @param pPath Full target file name. Target must be accessible. - * @param pPreprocessing Accepts any choice of the #aiPostProcessSteps enumerated - * flags, but in reality only a subset of them makes sense here. Specifying - * 'preprocessing' flags is useful if the input scene does not conform to - * Assimp's default conventions as specified in the @link data Data Structures Page @endlink. - * In short, this means the geometry data should use a right-handed coordinate systems, face - * winding should be counter-clockwise and the UV coordinate origin is assumed to be in - * the upper left. The #aiProcess_MakeLeftHanded, #aiProcess_FlipUVs and - * #aiProcess_FlipWindingOrder flags are used in the import side to allow users - * to have those defaults automatically adapted to their conventions. Specifying those flags - * for exporting has the opposite effect, respectively. Some other of the - * #aiPostProcessSteps enumerated values may be useful as well, but you'll need - * to try out what their effect on the exported file is. Many formats impose - * their own restrictions on the structure of the geometry stored therein, - * so some preprocessing may have little or no effect at all, or may be - * redundant as exporters would apply them anyhow. A good example - * is triangulation - whilst you can enforce it by specifying - * the #aiProcess_Triangulate flag, most export formats support only - * triangulate data so they would run the step even if it wasn't requested. - * - * If assimp detects that the input scene was directly taken from the importer side of - * the library (i.e. not copied using aiCopyScene and potentially modified afterwards), - * any post-processing steps already applied to the scene will not be applied again, unless - * they show non-idempotent behavior (#aiProcess_MakeLeftHanded, #aiProcess_FlipUVs and - * #aiProcess_FlipWindingOrder). - * @return AI_SUCCESS if everything was fine. - * @note Use aiCopyScene() to get a modifiable copy of a previously - * imported scene.*/ - aiReturn Export( const aiScene* pScene, const char* pFormatId, const char* pPath, - unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr); - aiReturn Export( const aiScene* pScene, const std::string& pFormatId, const std::string& pPath, - unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr); - - // ------------------------------------------------------------------- - /** Returns an error description of an error that occurred in #Export - * or #ExportToBlob - * - * Returns an empty string if no error occurred. - * @return A description of the last error, an empty string if no - * error occurred. The string is never NULL. - * - * @note The returned function remains valid until one of the - * following methods is called: #Export, #ExportToBlob, #FreeBlob */ - const char* GetErrorString() const; - - // ------------------------------------------------------------------- - /** Return the blob obtained from the last call to #ExportToBlob */ - const aiExportDataBlob* GetBlob() const; - - // ------------------------------------------------------------------- - /** Orphan the blob from the last call to #ExportToBlob. This means - * the caller takes ownership and is thus responsible for calling - * the C API function #aiReleaseExportBlob to release it. */ - const aiExportDataBlob* GetOrphanedBlob() const; - - // ------------------------------------------------------------------- - /** Frees the current blob. - * - * The function does nothing if no blob has previously been - * previously produced via #ExportToBlob. #FreeBlob is called - * automatically by the destructor. The only reason to call - * it manually would be to reclaim as much storage as possible - * without giving up the #Exporter instance yet. */ - void FreeBlob( ); - - // ------------------------------------------------------------------- - /** Returns the number of export file formats available in the current - * Assimp build. Use #Exporter::GetExportFormatDescription to - * retrieve infos of a specific export format. - * - * This includes built-in exporters as well as exporters registered - * using #RegisterExporter. - **/ - size_t GetExportFormatCount() const; - - // ------------------------------------------------------------------- - /** Returns a description of the nth export file format. Use # - * #Exporter::GetExportFormatCount to learn how many export - * formats are supported. - * - * The returned pointer is of static storage duration if the - * pIndex pertains to a built-in exporter (i.e. one not registered - * via #RegistrerExporter). It is restricted to the life-time of the - * #Exporter instance otherwise. - * - * @param pIndex Index of the export format to retrieve information - * for. Valid range is 0 to #Exporter::GetExportFormatCount - * @return A description of that specific export format. - * NULL if pIndex is out of range. */ - const aiExportFormatDesc* GetExportFormatDescription( size_t pIndex ) const; - - // ------------------------------------------------------------------- - /** Register a custom exporter. Custom export formats are limited to - * to the current #Exporter instance and do not affect the - * library globally. The indexes under which the format's - * export format description can be queried are assigned - * monotonously. - * @param desc Exporter description. - * @return aiReturn_SUCCESS if the export format was successfully - * registered. A common cause that would prevent an exporter - * from being registered is that its format id is already - * occupied by another format. */ - aiReturn RegisterExporter(const ExportFormatEntry& desc); - - // ------------------------------------------------------------------- - /** Remove an export format previously registered with #RegisterExporter - * from the #Exporter instance (this can also be used to drop - * built-in exporters because those are implicitly registered - * using #RegisterExporter). - * @param id Format id to be unregistered, this refers to the - * 'id' field of #aiExportFormatDesc. - * @note Calling this method on a format description not yet registered - * has no effect.*/ - void UnregisterExporter(const char* id); - -protected: - // Just because we don't want you to know how we're hacking around. - ExporterPimpl* pimpl; -}; - -class ASSIMP_API ExportProperties { -public: - // Data type to store the key hash - typedef unsigned int KeyType; - - // typedefs for our four configuration maps. - // We don't need more, so there is no need for a generic solution - typedef std::map IntPropertyMap; - typedef std::map FloatPropertyMap; - typedef std::map StringPropertyMap; - typedef std::map MatrixPropertyMap; - -public: - /** Standard constructor - * @see ExportProperties() - */ - ExportProperties(); - - // ------------------------------------------------------------------- - /** Copy constructor. - * - * This copies the configuration properties of another ExportProperties. - * @see ExportProperties(const ExportProperties& other) - */ - ExportProperties(const ExportProperties& other); - - // ------------------------------------------------------------------- - /** Set an integer configuration property. - * @param szName Name of the property. All supported properties - * are defined in the aiConfig.g header (all constants share the - * prefix AI_CONFIG_XXX and are simple strings). - * @param iValue New value of the property - * @return true if the property was set before. The new value replaces - * the previous value in this case. - * @note Property of different types (float, int, string ..) are kept - * on different stacks, so calling SetPropertyInteger() for a - * floating-point property has no effect - the loader will call - * GetPropertyFloat() to read the property, but it won't be there. - */ - bool SetPropertyInteger(const char* szName, int iValue); - - // ------------------------------------------------------------------- - /** Set a boolean configuration property. Boolean properties - * are stored on the integer stack internally so it's possible - * to set them via #SetPropertyBool and query them with - * #GetPropertyBool and vice versa. - * @see SetPropertyInteger() - */ - bool SetPropertyBool(const char* szName, bool value) { - return SetPropertyInteger(szName,value); - } - - // ------------------------------------------------------------------- - /** Set a floating-point configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyFloat(const char* szName, ai_real fValue); - - // ------------------------------------------------------------------- - /** Set a string configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyString(const char* szName, const std::string& sValue); - - // ------------------------------------------------------------------- - /** Set a matrix configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyMatrix(const char* szName, const aiMatrix4x4& sValue); - - // ------------------------------------------------------------------- - /** Get a configuration property. - * @param szName Name of the property. All supported properties - * are defined in the aiConfig.g header (all constants share the - * prefix AI_CONFIG_XXX). - * @param iErrorReturn Value that is returned if the property - * is not found. - * @return Current value of the property - * @note Property of different types (float, int, string ..) are kept - * on different lists, so calling SetPropertyInteger() for a - * floating-point property has no effect - the loader will call - * GetPropertyFloat() to read the property, but it won't be there. - */ - int GetPropertyInteger(const char* szName, - int iErrorReturn = 0xffffffff) const; - - // ------------------------------------------------------------------- - /** Get a boolean configuration property. Boolean properties - * are stored on the integer stack internally so it's possible - * to set them via #SetPropertyBool and query them with - * #GetPropertyBool and vice versa. - * @see GetPropertyInteger() - */ - bool GetPropertyBool(const char* szName, bool bErrorReturn = false) const { - return GetPropertyInteger(szName,bErrorReturn)!=0; - } - - // ------------------------------------------------------------------- - /** Get a floating-point configuration property - * @see GetPropertyInteger() - */ - ai_real GetPropertyFloat(const char* szName, - ai_real fErrorReturn = 10e10f) const; - - // ------------------------------------------------------------------- - /** Get a string configuration property - * - * The return value remains valid until the property is modified. - * @see GetPropertyInteger() - */ - const std::string GetPropertyString(const char* szName, - const std::string& sErrorReturn = "") const; - - // ------------------------------------------------------------------- - /** Get a matrix configuration property - * - * The return value remains valid until the property is modified. - * @see GetPropertyInteger() - */ - const aiMatrix4x4 GetPropertyMatrix(const char* szName, - const aiMatrix4x4& sErrorReturn = aiMatrix4x4()) const; - - // ------------------------------------------------------------------- - /** Determine a integer configuration property has been set. - * @see HasPropertyInteger() - */ - bool HasPropertyInteger(const char* szName) const; - - /** Determine a boolean configuration property has been set. - * @see HasPropertyBool() - */ - bool HasPropertyBool(const char* szName) const; - - /** Determine a boolean configuration property has been set. - * @see HasPropertyFloat() - */ - bool HasPropertyFloat(const char* szName) const; - - /** Determine a String configuration property has been set. - * @see HasPropertyString() - */ - bool HasPropertyString(const char* szName) const; - - /** Determine a Matrix configuration property has been set. - * @see HasPropertyMatrix() - */ - bool HasPropertyMatrix(const char* szName) const; - -protected: - - /** List of integer properties */ - IntPropertyMap mIntProperties; - - /** List of floating-point properties */ - FloatPropertyMap mFloatProperties; - - /** List of string properties */ - StringPropertyMap mStringProperties; - - /** List of Matrix properties */ - MatrixPropertyMap mMatrixProperties; -}; - -// ---------------------------------------------------------------------------------- -inline -const aiExportDataBlob* Exporter::ExportToBlob( const aiScene* pScene, const std::string& pFormatId, - unsigned int pPreprocessing, const ExportProperties* pProperties) -{ - return ExportToBlob(pScene,pFormatId.c_str(),pPreprocessing, pProperties); -} - -// ---------------------------------------------------------------------------------- -inline -aiReturn Exporter :: Export( const aiScene* pScene, const std::string& pFormatId, - const std::string& pPath, unsigned int pPreprocessing, - const ExportProperties* pProperties) -{ - return Export(pScene,pFormatId.c_str(),pPath.c_str(),pPreprocessing, pProperties); -} - -} // namespace Assimp - -#endif // ASSIMP_BUILD_NO_EXPORT -#endif // AI_EXPORT_HPP_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/GenericProperty.h b/tools/ZAPD/lib/assimp/include/assimp/GenericProperty.h deleted file mode 100644 index 183ecd5197..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/GenericProperty.h +++ /dev/null @@ -1,133 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -#ifndef AI_GENERIC_PROPERTY_H_INCLUDED -#define AI_GENERIC_PROPERTY_H_INCLUDED - -#include -#include -#include "Hash.h" - -#include - -// ------------------------------------------------------------------------------------------------ -template -inline -bool SetGenericProperty(std::map< unsigned int, T >& list, - const char* szName, const T& value) { - ai_assert(nullptr != szName); - const uint32_t hash = SuperFastHash(szName); - - typename std::map::iterator it = list.find(hash); - if (it == list.end()) { - list.insert(std::pair( hash, value )); - return false; - } - (*it).second = value; - - return true; -} - -// ------------------------------------------------------------------------------------------------ -template -inline -const T& GetGenericProperty(const std::map< unsigned int, T >& list, - const char* szName, const T& errorReturn) { - ai_assert(nullptr != szName); - const uint32_t hash = SuperFastHash(szName); - - typename std::map::const_iterator it = list.find(hash); - if (it == list.end()) { - return errorReturn; - } - - return (*it).second; -} - -// ------------------------------------------------------------------------------------------------ -// Special version for pointer types - they will be deleted when replaced with another value -// passing NULL removes the whole property -template -inline -void SetGenericPropertyPtr(std::map< unsigned int, T* >& list, - const char* szName, T* value, bool* bWasExisting = nullptr ) { - ai_assert(nullptr != szName); - const uint32_t hash = SuperFastHash(szName); - - typename std::map::iterator it = list.find(hash); - if (it == list.end()) { - if (bWasExisting) { - *bWasExisting = false; - } - - list.insert(std::pair( hash, value )); - return; - } - if ((*it).second != value) { - delete (*it).second; - (*it).second = value; - } - if (!value) { - list.erase(it); - } - if (bWasExisting) { - *bWasExisting = true; - } -} - -// ------------------------------------------------------------------------------------------------ -template -inline -bool HasGenericProperty(const std::map< unsigned int, T >& list, - const char* szName) { - ai_assert(nullptr != szName); - const uint32_t hash = SuperFastHash(szName); - - typename std::map::const_iterator it = list.find(hash); - if (it == list.end()) { - return false; - } - - return true; -} - -#endif // !! AI_GENERIC_PROPERTY_H_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/Hash.h b/tools/ZAPD/lib/assimp/include/assimp/Hash.h deleted file mode 100644 index 30657be198..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Hash.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -#ifndef AI_HASH_H_INCLUDED -#define AI_HASH_H_INCLUDED - -#include -#include - -// ------------------------------------------------------------------------------------------------ -// Hashing function taken from -// http://www.azillionmonkeys.com/qed/hash.html -// (incremental version) -// -// This code is Copyright 2004-2008 by Paul Hsieh. It is used here in the belief that -// Assimp's license is considered compatible with Pauls's derivative license as specified -// on his web page. -// -// (stdint.h should have been been included here) -// ------------------------------------------------------------------------------------------------ -#undef get16bits -#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ - || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) -#define get16bits(d) (*((const uint16_t *) (d))) -#endif - -#if !defined (get16bits) -#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ - +(uint32_t)(((const uint8_t *)(d))[0]) ) -#endif - -// ------------------------------------------------------------------------------------------------ -inline uint32_t SuperFastHash (const char * data, uint32_t len = 0, uint32_t hash = 0) { -uint32_t tmp; -int rem; - - if (!data) return 0; - if (!len)len = (uint32_t)::strlen(data); - - rem = len & 3; - len >>= 2; - - /* Main loop */ - for (;len > 0; len--) { - hash += get16bits (data); - tmp = (get16bits (data+2) << 11) ^ hash; - hash = (hash << 16) ^ tmp; - data += 2*sizeof (uint16_t); - hash += hash >> 11; - } - - /* Handle end cases */ - switch (rem) { - case 3: hash += get16bits (data); - hash ^= hash << 16; - hash ^= data[sizeof (uint16_t)] << 18; - hash += hash >> 11; - break; - case 2: hash += get16bits (data); - hash ^= hash << 11; - hash += hash >> 17; - break; - case 1: hash += *data; - hash ^= hash << 10; - hash += hash >> 1; - } - - /* Force "avalanching" of final 127 bits */ - hash ^= hash << 3; - hash += hash >> 5; - hash ^= hash << 4; - hash += hash >> 17; - hash ^= hash << 25; - hash += hash >> 6; - - return hash; -} - -#endif // !! AI_HASH_H_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/IOStream.hpp b/tools/ZAPD/lib/assimp/include/assimp/IOStream.hpp deleted file mode 100644 index 0623d0f70b..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/IOStream.hpp +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -/** @file IOStream.hpp - * @brief File I/O wrappers for C++. - */ - -#pragma once -#ifndef AI_IOSTREAM_H_INC -#define AI_IOSTREAM_H_INC - -#include "types.h" - -#ifndef __cplusplus -# error This header requires C++ to be used. aiFileIO.h is the \ - corresponding C interface. -#endif - -namespace Assimp { - -// ---------------------------------------------------------------------------------- -/** @brief CPP-API: Class to handle file I/O for C++ - * - * Derive an own implementation from this interface to provide custom IO handling - * to the Importer. If you implement this interface, be sure to also provide an - * implementation for IOSystem that creates instances of your custom IO class. -*/ -class ASSIMP_API IOStream -#ifndef SWIG - : public Intern::AllocateFromAssimpHeap -#endif -{ -protected: - /** Constructor protected, use IOSystem::Open() to create an instance. */ - IOStream() AI_NO_EXCEPT; - -public: - // ------------------------------------------------------------------- - /** @brief Destructor. Deleting the object closes the underlying file, - * alternatively you may use IOSystem::Close() to release the file. - */ - virtual ~IOStream(); - - // ------------------------------------------------------------------- - /** @brief Read from the file - * - * See fread() for more details - * This fails for write-only files */ - virtual size_t Read(void* pvBuffer, - size_t pSize, - size_t pCount) = 0; - - // ------------------------------------------------------------------- - /** @brief Write to the file - * - * See fwrite() for more details - * This fails for read-only files */ - virtual size_t Write(const void* pvBuffer, - size_t pSize, - size_t pCount) = 0; - - // ------------------------------------------------------------------- - /** @brief Set the read/write cursor of the file - * - * Note that the offset is _negative_ for aiOrigin_END. - * See fseek() for more details */ - virtual aiReturn Seek(size_t pOffset, - aiOrigin pOrigin) = 0; - - // ------------------------------------------------------------------- - /** @brief Get the current position of the read/write cursor - * - * See ftell() for more details */ - virtual size_t Tell() const = 0; - - // ------------------------------------------------------------------- - /** @brief Returns filesize - * Returns the filesize. */ - virtual size_t FileSize() const = 0; - - // ------------------------------------------------------------------- - /** @brief Flush the contents of the file buffer (for writers) - * See fflush() for more details. - */ - virtual void Flush() = 0; -}; //! class IOStream - -// ---------------------------------------------------------------------------------- -inline -IOStream::IOStream() AI_NO_EXCEPT { - // empty -} - -// ---------------------------------------------------------------------------------- -inline -IOStream::~IOStream() { - // empty -} -// ---------------------------------------------------------------------------------- - -} //!namespace Assimp - -#endif //!!AI_IOSTREAM_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/IOStreamBuffer.h b/tools/ZAPD/lib/assimp/include/assimp/IOStreamBuffer.h deleted file mode 100644 index 58abd97a02..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/IOStreamBuffer.h +++ /dev/null @@ -1,355 +0,0 @@ -#pragma once - -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -#include -#include - -#include "ParsingUtils.h" - -#include - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** - * Implementation of a cached stream buffer. - */ -template -class IOStreamBuffer { -public: - /// @brief The class constructor. - IOStreamBuffer( size_t cache = 4096 * 4096 ); - - /// @brief The class destructor. - ~IOStreamBuffer(); - - /// @brief Will open the cached access for a given stream. - /// @param stream The stream to cache. - /// @return true if successful. - bool open( IOStream *stream ); - - /// @brief Will close the cached access. - /// @return true if successful. - bool close(); - - /// @brief Returns the file-size. - /// @return The file-size. - size_t size() const; - - /// @brief Returns the cache size. - /// @return The cache size. - size_t cacheSize() const; - - /// @brief Will read the next block. - /// @return true if successful. - bool readNextBlock(); - - /// @brief Returns the number of blocks to read. - /// @return The number of blocks. - size_t getNumBlocks() const; - - /// @brief Returns the current block index. - /// @return The current block index. - size_t getCurrentBlockIndex() const; - - /// @brief Returns the current file pos. - /// @return The current file pos. - size_t getFilePos() const; - - /// @brief Will read the next line. - /// @param buffer The buffer for the next line. - /// @return true if successful. - bool getNextDataLine( std::vector &buffer, T continuationToken ); - - /// @brief Will read the next line ascii or binary end line char. - /// @param buffer The buffer for the next line. - /// @return true if successful. - bool getNextLine(std::vector &buffer); - - /// @brief Will read the next block. - /// @param buffer The buffer for the next block. - /// @return true if successful. - bool getNextBlock( std::vector &buffer ); - -private: - IOStream *m_stream; - size_t m_filesize; - size_t m_cacheSize; - size_t m_numBlocks; - size_t m_blockIdx; - std::vector m_cache; - size_t m_cachePos; - size_t m_filePos; -}; - -template -inline -IOStreamBuffer::IOStreamBuffer( size_t cache ) -: m_stream( nullptr ) -, m_filesize( 0 ) -, m_cacheSize( cache ) -, m_numBlocks( 0 ) -, m_blockIdx( 0 ) -, m_cachePos( 0 ) -, m_filePos( 0 ) { - m_cache.resize( cache ); - std::fill( m_cache.begin(), m_cache.end(), '\n' ); -} - -template -inline -IOStreamBuffer::~IOStreamBuffer() { - // empty -} - -template -inline -bool IOStreamBuffer::open( IOStream *stream ) { - // file still opened! - if ( nullptr != m_stream ) { - return false; - } - - // Invalid stream pointer - if ( nullptr == stream ) { - return false; - } - - m_stream = stream; - m_filesize = m_stream->FileSize(); - if ( m_filesize == 0 ) { - return false; - } - if ( m_filesize < m_cacheSize ) { - m_cacheSize = m_filesize; - } - - m_numBlocks = m_filesize / m_cacheSize; - if ( ( m_filesize % m_cacheSize ) > 0 ) { - m_numBlocks++; - } - - return true; -} - -template -inline -bool IOStreamBuffer::close() { - if ( nullptr == m_stream ) { - return false; - } - - // init counters and state vars - m_stream = nullptr; - m_filesize = 0; - m_numBlocks = 0; - m_blockIdx = 0; - m_cachePos = 0; - m_filePos = 0; - - return true; -} - -template -inline -size_t IOStreamBuffer::size() const { - return m_filesize; -} - -template -inline -size_t IOStreamBuffer::cacheSize() const { - return m_cacheSize; -} - -template -inline -bool IOStreamBuffer::readNextBlock() { - m_stream->Seek( m_filePos, aiOrigin_SET ); - size_t readLen = m_stream->Read( &m_cache[ 0 ], sizeof( T ), m_cacheSize ); - if ( readLen == 0 ) { - return false; - } - if ( readLen < m_cacheSize ) { - m_cacheSize = readLen; - } - m_filePos += m_cacheSize; - m_cachePos = 0; - m_blockIdx++; - - return true; -} - -template -inline -size_t IOStreamBuffer::getNumBlocks() const { - return m_numBlocks; -} - -template -inline -size_t IOStreamBuffer::getCurrentBlockIndex() const { - return m_blockIdx; -} - -template -inline -size_t IOStreamBuffer::getFilePos() const { - return m_filePos; -} - -template -inline -bool IOStreamBuffer::getNextDataLine( std::vector &buffer, T continuationToken ) { - buffer.resize( m_cacheSize ); - if ( m_cachePos >= m_cacheSize || 0 == m_filePos ) { - if ( !readNextBlock() ) { - return false; - } - } - - bool continuationFound( false ); - size_t i = 0; - for( ;; ) { - if ( continuationToken == m_cache[ m_cachePos ] ) { - continuationFound = true; - ++m_cachePos; - } - if ( IsLineEnd( m_cache[ m_cachePos ] ) ) { - if ( !continuationFound ) { - // the end of the data line - break; - } else { - // skip line end - while ( m_cache[m_cachePos] != '\n') { - ++m_cachePos; - } - ++m_cachePos; - continuationFound = false; - } - } - - buffer[ i ] = m_cache[ m_cachePos ]; - ++m_cachePos; - ++i; - if (m_cachePos >= size()) { - break; - } - if ( m_cachePos >= m_cacheSize ) { - if ( !readNextBlock() ) { - return false; - } - } - } - - buffer[ i ] = '\n'; - ++m_cachePos; - - return true; -} - -static inline -bool isEndOfCache( size_t pos, size_t cacheSize ) { - return ( pos == cacheSize ); -} - -template -inline -bool IOStreamBuffer::getNextLine(std::vector &buffer) { - buffer.resize(m_cacheSize); - if ( isEndOfCache( m_cachePos, m_cacheSize ) || 0 == m_filePos) { - if (!readNextBlock()) { - return false; - } - } - - if (IsLineEnd(m_cache[m_cachePos])) { - // skip line end - while (m_cache[m_cachePos] != '\n') { - ++m_cachePos; - } - ++m_cachePos; - if ( isEndOfCache( m_cachePos, m_cacheSize ) ) { - if ( !readNextBlock() ) { - return false; - } - } - } - - size_t i( 0 ); - while (!IsLineEnd(m_cache[ m_cachePos ])) { - buffer[i] = m_cache[ m_cachePos ]; - ++m_cachePos; - ++i; - if (m_cachePos >= m_cacheSize) { - if (!readNextBlock()) { - return false; - } - } - } - buffer[i] = '\n'; - ++m_cachePos; - - return true; -} - -template -inline -bool IOStreamBuffer::getNextBlock( std::vector &buffer) { - // Return the last block-value if getNextLine was used before - if ( 0 != m_cachePos ) { - buffer = std::vector( m_cache.begin() + m_cachePos, m_cache.end() ); - m_cachePos = 0; - } else { - if ( !readNextBlock() ) { - return false; - } - - buffer = std::vector(m_cache.begin(), m_cache.end()); - } - - return true; -} - -} // !ns Assimp diff --git a/tools/ZAPD/lib/assimp/include/assimp/IOSystem.hpp b/tools/ZAPD/lib/assimp/include/assimp/IOSystem.hpp deleted file mode 100644 index 78139c2839..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/IOSystem.hpp +++ /dev/null @@ -1,357 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file IOSystem.hpp - * @brief File system wrapper for C++. Inherit this class to supply - * custom file handling logic to the Import library. -*/ - -#pragma once -#ifndef AI_IOSYSTEM_H_INC -#define AI_IOSYSTEM_H_INC - -#ifndef __cplusplus -# error This header requires C++ to be used. aiFileIO.h is the \ - corresponding C interface. -#endif - -#include "types.h" - -#ifdef _WIN32 -# include -# include -# include -#else -# include -# include -# include -#endif // _WIN32 - -#include - -namespace Assimp { - - class IOStream; - -// --------------------------------------------------------------------------- -/** @brief CPP-API: Interface to the file system. - * - * Derive an own implementation from this interface to supply custom file handling - * to the importer library. If you implement this interface, you also want to - * supply a custom implementation for IOStream. - * - * @see Importer::SetIOHandler() - */ -class ASSIMP_API IOSystem -#ifndef SWIG - : public Intern::AllocateFromAssimpHeap -#endif -{ -public: - - // ------------------------------------------------------------------- - /** @brief Default constructor. - * - * Create an instance of your derived class and assign it to an - * #Assimp::Importer instance by calling Importer::SetIOHandler(). - */ - IOSystem() AI_NO_EXCEPT; - - // ------------------------------------------------------------------- - /** @brief Virtual destructor. - * - * It is safe to be called from within DLL Assimp, we're constructed - * on Assimp's heap. - */ - virtual ~IOSystem(); - - // ------------------------------------------------------------------- - /** @brief For backward compatibility - * @see Exists(const char*) - */ - AI_FORCE_INLINE bool Exists( const std::string& pFile) const; - - // ------------------------------------------------------------------- - /** @brief Tests for the existence of a file at the given path. - * - * @param pFile Path to the file - * @return true if there is a file with this path, else false. - */ - virtual bool Exists( const char* pFile) const = 0; - - // ------------------------------------------------------------------- - /** @brief Returns the system specific directory separator - * @return System specific directory separator - */ - virtual char getOsSeparator() const = 0; - - // ------------------------------------------------------------------- - /** @brief Open a new file with a given path. - * - * When the access to the file is finished, call Close() to release - * all associated resources (or the virtual dtor of the IOStream). - * - * @param pFile Path to the file - * @param pMode Desired file I/O mode. Required are: "wb", "w", "wt", - * "rb", "r", "rt". - * - * @return New IOStream interface allowing the lib to access - * the underlying file. - * @note When implementing this class to provide custom IO handling, - * you probably have to supply an own implementation of IOStream as well. - */ - virtual IOStream* Open(const char* pFile, - const char* pMode = "rb") = 0; - - // ------------------------------------------------------------------- - /** @brief For backward compatibility - * @see Open(const char*, const char*) - */ - inline IOStream* Open(const std::string& pFile, - const std::string& pMode = std::string("rb")); - - // ------------------------------------------------------------------- - /** @brief Closes the given file and releases all resources - * associated with it. - * @param pFile The file instance previously created by Open(). - */ - virtual void Close( IOStream* pFile) = 0; - - // ------------------------------------------------------------------- - /** @brief Compares two paths and check whether the point to - * identical files. - * - * The dummy implementation of this virtual member performs a - * case-insensitive comparison of the given strings. The default IO - * system implementation uses OS mechanisms to convert relative into - * absolute paths, so the result can be trusted. - * @param one First file - * @param second Second file - * @return true if the paths point to the same file. The file needn't - * be existing, however. - */ - virtual bool ComparePaths (const char* one, - const char* second) const; - - // ------------------------------------------------------------------- - /** @brief For backward compatibility - * @see ComparePaths(const char*, const char*) - */ - inline bool ComparePaths (const std::string& one, - const std::string& second) const; - - // ------------------------------------------------------------------- - /** @brief Pushes a new directory onto the directory stack. - * @param path Path to push onto the stack. - * @return True, when push was successful, false if path is empty. - */ - virtual bool PushDirectory( const std::string &path ); - - // ------------------------------------------------------------------- - /** @brief Returns the top directory from the stack. - * @return The directory on the top of the stack. - * Returns empty when no directory was pushed to the stack. - */ - virtual const std::string &CurrentDirectory() const; - - // ------------------------------------------------------------------- - /** @brief Returns the number of directories stored on the stack. - * @return The number of directories of the stack. - */ - virtual size_t StackSize() const; - - // ------------------------------------------------------------------- - /** @brief Pops the top directory from the stack. - * @return True, when a directory was on the stack. False if no - * directory was on the stack. - */ - virtual bool PopDirectory(); - - // ------------------------------------------------------------------- - /** @brief CReates an new directory at the given path. - * @param path [in] The path to create. - * @return True, when a directory was created. False if the directory - * cannot be created. - */ - virtual bool CreateDirectory( const std::string &path ); - - // ------------------------------------------------------------------- - /** @brief Will change the current directory to the given path. - * @param path [in] The path to change to. - * @return True, when the directory has changed successfully. - */ - virtual bool ChangeDirectory( const std::string &path ); - - virtual bool DeleteFile( const std::string &file ); - -private: - std::vector m_pathStack; -}; - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -IOSystem::IOSystem() AI_NO_EXCEPT -: m_pathStack() { - // empty -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -IOSystem::~IOSystem() { - // empty -} - -// ---------------------------------------------------------------------------- -// For compatibility, the interface of some functions taking a std::string was -// changed to const char* to avoid crashes between binary incompatible STL -// versions. This code her is inlined, so it shouldn't cause any problems. -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -IOStream* IOSystem::Open(const std::string& pFile, const std::string& pMode) { - // NOTE: - // For compatibility, interface was changed to const char* to - // avoid crashes between binary incompatible STL versions - return Open(pFile.c_str(),pMode.c_str()); -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::Exists( const std::string& pFile) const { - // NOTE: - // For compatibility, interface was changed to const char* to - // avoid crashes between binary incompatible STL versions - return Exists(pFile.c_str()); -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::ComparePaths (const std::string& one, const std::string& second) const { - // NOTE: - // For compatibility, interface was changed to const char* to - // avoid crashes between binary incompatible STL versions - return ComparePaths(one.c_str(),second.c_str()); -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::PushDirectory( const std::string &path ) { - if ( path.empty() ) { - return false; - } - - m_pathStack.push_back( path ); - - return true; -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -const std::string &IOSystem::CurrentDirectory() const { - if ( m_pathStack.empty() ) { - static const std::string Dummy(""); - return Dummy; - } - return m_pathStack[ m_pathStack.size()-1 ]; -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -size_t IOSystem::StackSize() const { - return m_pathStack.size(); -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::PopDirectory() { - if ( m_pathStack.empty() ) { - return false; - } - - m_pathStack.pop_back(); - - return true; -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::CreateDirectory( const std::string &path ) { - if ( path.empty() ) { - return false; - } - -#ifdef _WIN32 - return 0 != ::_mkdir( path.c_str() ); -#else - return 0 != ::mkdir( path.c_str(), 0777 ); -#endif // _WIN32 -} - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::ChangeDirectory( const std::string &path ) { - if ( path.empty() ) { - return false; - } - -#ifdef _WIN32 - return 0 != ::_chdir( path.c_str() ); -#else - return 0 != ::chdir( path.c_str() ); -#endif // _WIN32 -} - - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE -bool IOSystem::DeleteFile( const std::string &file ) { - if ( file.empty() ) { - return false; - } - const int retCode( ::remove( file.c_str() ) ); - return ( 0 == retCode ); -} -} //!ns Assimp - -#endif //AI_IOSYSTEM_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/Importer.hpp b/tools/ZAPD/lib/assimp/include/assimp/Importer.hpp deleted file mode 100644 index 4941df4122..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Importer.hpp +++ /dev/null @@ -1,659 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Importer.hpp - * @brief Defines the C++-API to the Open Asset Import Library. - */ -#pragma once -#ifndef AI_ASSIMP_HPP_INC -#define AI_ASSIMP_HPP_INC - -#ifndef __cplusplus -# error This header requires C++ to be used. Use assimp.h for plain C. -#endif // __cplusplus - -// Public ASSIMP data structures -#include - -namespace Assimp { - // ======================================================================= - // Public interface to Assimp - class Importer; - class IOStream; - class IOSystem; - class ProgressHandler; - - // ======================================================================= - // Plugin development - // - // Include the following headers for the declarations: - // BaseImporter.h - // BaseProcess.h - class BaseImporter; - class BaseProcess; - class SharedPostProcessInfo; - class BatchLoader; - - // ======================================================================= - // Holy stuff, only for members of the high council of the Jedi. - class ImporterPimpl; -} //! namespace Assimp - -#define AI_PROPERTY_WAS_NOT_EXISTING 0xffffffff - -struct aiScene; - -// importerdesc.h -struct aiImporterDesc; - -/** @namespace Assimp Assimp's CPP-API and all internal APIs */ -namespace Assimp { - -// ---------------------------------------------------------------------------------- -/** CPP-API: The Importer class forms an C++ interface to the functionality of the -* Open Asset Import Library. -* -* Create an object of this class and call ReadFile() to import a file. -* If the import succeeds, the function returns a pointer to the imported data. -* The data remains property of the object, it is intended to be accessed -* read-only. The imported data will be destroyed along with the Importer -* object. If the import fails, ReadFile() returns a NULL pointer. In this -* case you can retrieve a human-readable error description be calling -* GetErrorString(). You can call ReadFile() multiple times with a single Importer -* instance. Actually, constructing Importer objects involves quite many -* allocations and may take some time, so it's better to reuse them as often as -* possible. -* -* If you need the Importer to do custom file handling to access the files, -* implement IOSystem and IOStream and supply an instance of your custom -* IOSystem implementation by calling SetIOHandler() before calling ReadFile(). -* If you do not assign a custion IO handler, a default handler using the -* standard C++ IO logic will be used. -* -* @note One Importer instance is not thread-safe. If you use multiple -* threads for loading, each thread should maintain its own Importer instance. -*/ -class ASSIMP_API Importer { -public: - /** - * @brief The upper limit for hints. - */ - static const unsigned int MaxLenHint = 200; - -public: - - // ------------------------------------------------------------------- - /** Constructor. Creates an empty importer object. - * - * Call ReadFile() to start the import process. The configuration - * property table is initially empty. - */ - Importer(); - - // ------------------------------------------------------------------- - /** Copy constructor. - * - * This copies the configuration properties of another Importer. - * If this Importer owns a scene it won't be copied. - * Call ReadFile() to start the import process. - */ - Importer(const Importer& other)=delete; - - // ------------------------------------------------------------------- - /** Assignment operator has been deleted - */ - Importer &operator=(const Importer &) = delete; - - // ------------------------------------------------------------------- - /** Destructor. The object kept ownership of the imported data, - * which now will be destroyed along with the object. - */ - ~Importer(); - - - // ------------------------------------------------------------------- - /** Registers a new loader. - * - * @param pImp Importer to be added. The Importer instance takes - * ownership of the pointer, so it will be automatically deleted - * with the Importer instance. - * @return AI_SUCCESS if the loader has been added. The registration - * fails if there is already a loader for a specific file extension. - */ - aiReturn RegisterLoader(BaseImporter* pImp); - - // ------------------------------------------------------------------- - /** Unregisters a loader. - * - * @param pImp Importer to be unregistered. - * @return AI_SUCCESS if the loader has been removed. The function - * fails if the loader is currently in use (this could happen - * if the #Importer instance is used by more than one thread) or - * if it has not yet been registered. - */ - aiReturn UnregisterLoader(BaseImporter* pImp); - - // ------------------------------------------------------------------- - /** Registers a new post-process step. - * - * At the moment, there's a small limitation: new post processing - * steps are added to end of the list, or in other words, executed - * last, after all built-in steps. - * @param pImp Post-process step to be added. The Importer instance - * takes ownership of the pointer, so it will be automatically - * deleted with the Importer instance. - * @return AI_SUCCESS if the step has been added correctly. - */ - aiReturn RegisterPPStep(BaseProcess* pImp); - - // ------------------------------------------------------------------- - /** Unregisters a post-process step. - * - * @param pImp Step to be unregistered. - * @return AI_SUCCESS if the step has been removed. The function - * fails if the step is currently in use (this could happen - * if the #Importer instance is used by more than one thread) or - * if it has not yet been registered. - */ - aiReturn UnregisterPPStep(BaseProcess* pImp); - - // ------------------------------------------------------------------- - /** Set an integer configuration property. - * @param szName Name of the property. All supported properties - * are defined in the aiConfig.g header (all constants share the - * prefix AI_CONFIG_XXX and are simple strings). - * @param iValue New value of the property - * @return true if the property was set before. The new value replaces - * the previous value in this case. - * @note Property of different types (float, int, string ..) are kept - * on different stacks, so calling SetPropertyInteger() for a - * floating-point property has no effect - the loader will call - * GetPropertyFloat() to read the property, but it won't be there. - */ - bool SetPropertyInteger(const char* szName, int iValue); - - // ------------------------------------------------------------------- - /** Set a boolean configuration property. Boolean properties - * are stored on the integer stack internally so it's possible - * to set them via #SetPropertyBool and query them with - * #GetPropertyBool and vice versa. - * @see SetPropertyInteger() - */ - bool SetPropertyBool(const char* szName, bool value) { - return SetPropertyInteger(szName,value); - } - - // ------------------------------------------------------------------- - /** Set a floating-point configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyFloat(const char* szName, ai_real fValue); - - // ------------------------------------------------------------------- - /** Set a string configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyString(const char* szName, const std::string& sValue); - - // ------------------------------------------------------------------- - /** Set a matrix configuration property. - * @see SetPropertyInteger() - */ - bool SetPropertyMatrix(const char* szName, const aiMatrix4x4& sValue); - - // ------------------------------------------------------------------- - /** Get a configuration property. - * @param szName Name of the property. All supported properties - * are defined in the aiConfig.g header (all constants share the - * prefix AI_CONFIG_XXX). - * @param iErrorReturn Value that is returned if the property - * is not found. - * @return Current value of the property - * @note Property of different types (float, int, string ..) are kept - * on different lists, so calling SetPropertyInteger() for a - * floating-point property has no effect - the loader will call - * GetPropertyFloat() to read the property, but it won't be there. - */ - int GetPropertyInteger(const char* szName, - int iErrorReturn = 0xffffffff) const; - - // ------------------------------------------------------------------- - /** Get a boolean configuration property. Boolean properties - * are stored on the integer stack internally so it's possible - * to set them via #SetPropertyBool and query them with - * #GetPropertyBool and vice versa. - * @see GetPropertyInteger() - */ - bool GetPropertyBool(const char* szName, bool bErrorReturn = false) const { - return GetPropertyInteger(szName,bErrorReturn)!=0; - } - - // ------------------------------------------------------------------- - /** Get a floating-point configuration property - * @see GetPropertyInteger() - */ - ai_real GetPropertyFloat(const char* szName, - ai_real fErrorReturn = 10e10) const; - - // ------------------------------------------------------------------- - /** Get a string configuration property - * - * The return value remains valid until the property is modified. - * @see GetPropertyInteger() - */ - const std::string GetPropertyString(const char* szName, - const std::string& sErrorReturn = "") const; - - // ------------------------------------------------------------------- - /** Get a matrix configuration property - * - * The return value remains valid until the property is modified. - * @see GetPropertyInteger() - */ - const aiMatrix4x4 GetPropertyMatrix(const char* szName, - const aiMatrix4x4& sErrorReturn = aiMatrix4x4()) const; - - // ------------------------------------------------------------------- - /** Supplies a custom IO handler to the importer to use to open and - * access files. If you need the importer to use custom IO logic to - * access the files, you need to provide a custom implementation of - * IOSystem and IOFile to the importer. Then create an instance of - * your custom IOSystem implementation and supply it by this function. - * - * The Importer takes ownership of the object and will destroy it - * afterwards. The previously assigned handler will be deleted. - * Pass NULL to take again ownership of your IOSystem and reset Assimp - * to use its default implementation. - * - * @param pIOHandler The IO handler to be used in all file accesses - * of the Importer. - */ - void SetIOHandler( IOSystem* pIOHandler); - - // ------------------------------------------------------------------- - /** Retrieves the IO handler that is currently set. - * You can use #IsDefaultIOHandler() to check whether the returned - * interface is the default IO handler provided by ASSIMP. The default - * handler is active as long the application doesn't supply its own - * custom IO handler via #SetIOHandler(). - * @return A valid IOSystem interface, never NULL. - */ - IOSystem* GetIOHandler() const; - - // ------------------------------------------------------------------- - /** Checks whether a default IO handler is active - * A default handler is active as long the application doesn't - * supply its own custom IO handler via #SetIOHandler(). - * @return true by default - */ - bool IsDefaultIOHandler() const; - - // ------------------------------------------------------------------- - /** Supplies a custom progress handler to the importer. This - * interface exposes an #Update() callback, which is called - * more or less periodically (please don't sue us if it - * isn't as periodically as you'd like it to have ...). - * This can be used to implement progress bars and loading - * timeouts. - * @param pHandler Progress callback interface. Pass NULL to - * disable progress reporting. - * @note Progress handlers can be used to abort the loading - * at almost any time.*/ - void SetProgressHandler ( ProgressHandler* pHandler ); - - // ------------------------------------------------------------------- - /** Retrieves the progress handler that is currently set. - * You can use #IsDefaultProgressHandler() to check whether the returned - * interface is the default handler provided by ASSIMP. The default - * handler is active as long the application doesn't supply its own - * custom handler via #SetProgressHandler(). - * @return A valid ProgressHandler interface, never NULL. - */ - ProgressHandler* GetProgressHandler() const; - - // ------------------------------------------------------------------- - /** Checks whether a default progress handler is active - * A default handler is active as long the application doesn't - * supply its own custom progress handler via #SetProgressHandler(). - * @return true by default - */ - bool IsDefaultProgressHandler() const; - - // ------------------------------------------------------------------- - /** @brief Check whether a given set of post-processing flags - * is supported. - * - * Some flags are mutually exclusive, others are probably - * not available because your excluded them from your - * Assimp builds. Calling this function is recommended if - * you're unsure. - * - * @param pFlags Bitwise combination of the aiPostProcess flags. - * @return true if this flag combination is fine. - */ - bool ValidateFlags(unsigned int pFlags) const; - - // ------------------------------------------------------------------- - /** Reads the given file and returns its contents if successful. - * - * If the call succeeds, the contents of the file are returned as a - * pointer to an aiScene object. The returned data is intended to be - * read-only, the importer object keeps ownership of the data and will - * destroy it upon destruction. If the import fails, NULL is returned. - * A human-readable error description can be retrieved by calling - * GetErrorString(). The previous scene will be deleted during this call. - * @param pFile Path and filename to the file to be imported. - * @param pFlags Optional post processing steps to be executed after - * a successful import. Provide a bitwise combination of the - * #aiPostProcessSteps flags. If you wish to inspect the imported - * scene first in order to fine-tune your post-processing setup, - * consider to use #ApplyPostProcessing(). - * @return A pointer to the imported data, NULL if the import failed. - * The pointer to the scene remains in possession of the Importer - * instance. Use GetOrphanedScene() to take ownership of it. - * - * @note Assimp is able to determine the file format of a file - * automatically. - */ - const aiScene* ReadFile( - const char* pFile, - unsigned int pFlags); - - // ------------------------------------------------------------------- - /** Reads the given file from a memory buffer and returns its - * contents if successful. - * - * If the call succeeds, the contents of the file are returned as a - * pointer to an aiScene object. The returned data is intended to be - * read-only, the importer object keeps ownership of the data and will - * destroy it upon destruction. If the import fails, NULL is returned. - * A human-readable error description can be retrieved by calling - * GetErrorString(). The previous scene will be deleted during this call. - * Calling this method doesn't affect the active IOSystem. - * @param pBuffer Pointer to the file data - * @param pLength Length of pBuffer, in bytes - * @param pFlags Optional post processing steps to be executed after - * a successful import. Provide a bitwise combination of the - * #aiPostProcessSteps flags. If you wish to inspect the imported - * scene first in order to fine-tune your post-processing setup, - * consider to use #ApplyPostProcessing(). - * @param pHint An additional hint to the library. If this is a non - * empty string, the library looks for a loader to support - * the file extension specified by pHint and passes the file to - * the first matching loader. If this loader is unable to completely - * the request, the library continues and tries to determine the - * file format on its own, a task that may or may not be successful. - * Check the return value, and you'll know ... - * @return A pointer to the imported data, NULL if the import failed. - * The pointer to the scene remains in possession of the Importer - * instance. Use GetOrphanedScene() to take ownership of it. - * - * @note This is a straightforward way to decode models from memory - * buffers, but it doesn't handle model formats that spread their - * data across multiple files or even directories. Examples include - * OBJ or MD3, which outsource parts of their material info into - * external scripts. If you need full functionality, provide - * a custom IOSystem to make Assimp find these files and use - * the regular ReadFile() API. - */ - const aiScene* ReadFileFromMemory( - const void* pBuffer, - size_t pLength, - unsigned int pFlags, - const char* pHint = ""); - - // ------------------------------------------------------------------- - /** Apply post-processing to an already-imported scene. - * - * This is strictly equivalent to calling #ReadFile() with the same - * flags. However, you can use this separate function to inspect - * the imported scene first to fine-tune your post-processing setup. - * @param pFlags Provide a bitwise combination of the - * #aiPostProcessSteps flags. - * @return A pointer to the post-processed data. This is still the - * same as the pointer returned by #ReadFile(). However, if - * post-processing fails, the scene could now be NULL. - * That's quite a rare case, post processing steps are not really - * designed to 'fail'. To be exact, the #aiProcess_ValidateDS - * flag is currently the only post processing step which can actually - * cause the scene to be reset to NULL. - * - * @note The method does nothing if no scene is currently bound - * to the #Importer instance. */ - const aiScene* ApplyPostProcessing(unsigned int pFlags); - - const aiScene* ApplyCustomizedPostProcessing( BaseProcess *rootProcess, bool requestValidation ); - - // ------------------------------------------------------------------- - /** @brief Reads the given file and returns its contents if successful. - * - * This function is provided for backward compatibility. - * See the const char* version for detailed docs. - * @see ReadFile(const char*, pFlags) */ - const aiScene* ReadFile( - const std::string& pFile, - unsigned int pFlags); - - // ------------------------------------------------------------------- - /** Frees the current scene. - * - * The function does nothing if no scene has previously been - * read via ReadFile(). FreeScene() is called automatically by the - * destructor and ReadFile() itself. */ - void FreeScene( ); - - // ------------------------------------------------------------------- - /** Returns an error description of an error that occurred in ReadFile(). - * - * Returns an empty string if no error occurred. - * @return A description of the last error, an empty string if no - * error occurred. The string is never NULL. - * - * @note The returned function remains valid until one of the - * following methods is called: #ReadFile(), #FreeScene(). */ - const char* GetErrorString() const; - - // ------------------------------------------------------------------- - /** Returns the scene loaded by the last successful call to ReadFile() - * - * @return Current scene or NULL if there is currently no scene loaded */ - const aiScene* GetScene() const; - - // ------------------------------------------------------------------- - /** Returns the scene loaded by the last successful call to ReadFile() - * and releases the scene from the ownership of the Importer - * instance. The application is now responsible for deleting the - * scene. Any further calls to GetScene() or GetOrphanedScene() - * will return NULL - until a new scene has been loaded via ReadFile(). - * - * @return Current scene or NULL if there is currently no scene loaded - * @note Use this method with maximal caution, and only if you have to. - * By design, aiScene's are exclusively maintained, allocated and - * deallocated by Assimp and no one else. The reasoning behind this - * is the golden rule that deallocations should always be done - * by the module that did the original allocation because heaps - * are not necessarily shared. GetOrphanedScene() enforces you - * to delete the returned scene by yourself, but this will only - * be fine if and only if you're using the same heap as assimp. - * On Windows, it's typically fine provided everything is linked - * against the multithreaded-dll version of the runtime library. - * It will work as well for static linkage with Assimp.*/ - aiScene* GetOrphanedScene(); - - // ------------------------------------------------------------------- - /** Returns whether a given file extension is supported by ASSIMP. - * - * @param szExtension Extension to be checked. - * Must include a trailing dot '.'. Example: ".3ds", ".md3". - * Cases-insensitive. - * @return true if the extension is supported, false otherwise */ - bool IsExtensionSupported(const char* szExtension) const; - - // ------------------------------------------------------------------- - /** @brief Returns whether a given file extension is supported by ASSIMP. - * - * This function is provided for backward compatibility. - * See the const char* version for detailed and up-to-date docs. - * @see IsExtensionSupported(const char*) */ - inline bool IsExtensionSupported(const std::string& szExtension) const; - - // ------------------------------------------------------------------- - /** Get a full list of all file extensions supported by ASSIMP. - * - * If a file extension is contained in the list this does of course not - * mean that ASSIMP is able to load all files with this extension --- - * it simply means there is an importer loaded which claims to handle - * files with this file extension. - * @param szOut String to receive the extension list. - * Format of the list: "*.3ds;*.obj;*.dae". This is useful for - * use with the WinAPI call GetOpenFileName(Ex). */ - void GetExtensionList(aiString& szOut) const; - - // ------------------------------------------------------------------- - /** @brief Get a full list of all file extensions supported by ASSIMP. - * - * This function is provided for backward compatibility. - * See the aiString version for detailed and up-to-date docs. - * @see GetExtensionList(aiString&)*/ - inline void GetExtensionList(std::string& szOut) const; - - // ------------------------------------------------------------------- - /** Get the number of importers currently registered with Assimp. */ - size_t GetImporterCount() const; - - // ------------------------------------------------------------------- - /** Get meta data for the importer corresponding to a specific index.. - * - * For the declaration of #aiImporterDesc, include . - * @param index Index to query, must be within [0,GetImporterCount()) - * @return Importer meta data structure, NULL if the index does not - * exist or if the importer doesn't offer meta information ( - * importers may do this at the cost of being hated by their peers).*/ - const aiImporterDesc* GetImporterInfo(size_t index) const; - - // ------------------------------------------------------------------- - /** Find the importer corresponding to a specific index. - * - * @param index Index to query, must be within [0,GetImporterCount()) - * @return Importer instance. NULL if the index does not - * exist. */ - BaseImporter* GetImporter(size_t index) const; - - // ------------------------------------------------------------------- - /** Find the importer corresponding to a specific file extension. - * - * This is quite similar to #IsExtensionSupported except a - * BaseImporter instance is returned. - * @param szExtension Extension to check for. The following formats - * are recognized (BAH being the file extension): "BAH" (comparison - * is case-insensitive), ".bah", "*.bah" (wild card and dot - * characters at the beginning of the extension are skipped). - * @return NULL if no importer is found*/ - BaseImporter* GetImporter (const char* szExtension) const; - - // ------------------------------------------------------------------- - /** Find the importer index corresponding to a specific file extension. - * - * @param szExtension Extension to check for. The following formats - * are recognized (BAH being the file extension): "BAH" (comparison - * is case-insensitive), ".bah", "*.bah" (wild card and dot - * characters at the beginning of the extension are skipped). - * @return (size_t)-1 if no importer is found */ - size_t GetImporterIndex (const char* szExtension) const; - - // ------------------------------------------------------------------- - /** Returns the storage allocated by ASSIMP to hold the scene data - * in memory. - * - * This refers to the currently loaded file, see #ReadFile(). - * @param in Data structure to be filled. - * @note The returned memory statistics refer to the actual - * size of the use data of the aiScene. Heap-related overhead - * is (naturally) not included.*/ - void GetMemoryRequirements(aiMemoryInfo& in) const; - - // ------------------------------------------------------------------- - /** Enables "extra verbose" mode. - * - * 'Extra verbose' means the data structure is validated after *every* - * single post processing step to make sure everyone modifies the data - * structure in a well-defined manner. This is a debug feature and not - * intended for use in production environments. */ - void SetExtraVerbose(bool bDo); - - // ------------------------------------------------------------------- - /** Private, do not use. */ - ImporterPimpl* Pimpl() { return pimpl; } - const ImporterPimpl* Pimpl() const { return pimpl; } - -protected: - - // Just because we don't want you to know how we're hacking around. - ImporterPimpl* pimpl; -}; //! class Importer - - -// ---------------------------------------------------------------------------- -// For compatibility, the interface of some functions taking a std::string was -// changed to const char* to avoid crashes between binary incompatible STL -// versions. This code her is inlined, so it shouldn't cause any problems. -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE const aiScene* Importer::ReadFile( const std::string& pFile,unsigned int pFlags){ - return ReadFile(pFile.c_str(),pFlags); -} -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE void Importer::GetExtensionList(std::string& szOut) const { - aiString s; - GetExtensionList(s); - szOut = s.data; -} -// ---------------------------------------------------------------------------- -AI_FORCE_INLINE bool Importer::IsExtensionSupported(const std::string& szExtension) const { - return IsExtensionSupported(szExtension.c_str()); -} - -} // !namespace Assimp - -#endif // AI_ASSIMP_HPP_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/LineSplitter.h b/tools/ZAPD/lib/assimp/include/assimp/LineSplitter.h deleted file mode 100644 index 4afe45b92a..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/LineSplitter.h +++ /dev/null @@ -1,285 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file LineSplitter.h - * @brief LineSplitter, a helper class to iterate through all lines - * of a file easily. Works with StreamReader. - */ -#pragma once -#ifndef INCLUDED_LINE_SPLITTER_H -#define INCLUDED_LINE_SPLITTER_H - -#include -#include "StreamReader.h" -#include "ParsingUtils.h" - -namespace Assimp { - -// ------------------------------------------------------------------------------------------------ -/** Usage: -@code -for(LineSplitter splitter(stream);splitter;++splitter) { - - if (*splitter == "hi!") { - ... - } - else if (splitter->substr(0,5) == "hello") { - ... - // access the third token in the line (tokens are space-separated) - if (strtol(splitter[2]) > 5) { .. } - } - - std::cout << "Current line is: " << splitter.get_index() << std::endl; -} -@endcode -*/ -// ------------------------------------------------------------------------------------------------ -class LineSplitter { -public: - typedef size_t line_idx; - - // ----------------------------------------- - /** construct from existing stream reader - note: trim is *always* assumed true if skyp_empty_lines==true - */ - LineSplitter(StreamReaderLE& stream, bool skip_empty_lines = true, bool trim = true); - - ~LineSplitter(); - - // ----------------------------------------- - /** pseudo-iterator increment */ - LineSplitter& operator++(); - - // ----------------------------------------- - LineSplitter& operator++(int); - - // ----------------------------------------- - /** get a pointer to the beginning of a particular token */ - const char* operator[] (size_t idx) const; - - // ----------------------------------------- - /** extract the start positions of N tokens from the current line*/ - template - void get_tokens(const char* (&tokens)[N]) const; - - // ----------------------------------------- - /** member access */ - const std::string* operator -> () const; - - std::string operator* () const; - - // ----------------------------------------- - /** boolean context */ - operator bool() const; - - // ----------------------------------------- - /** line indices are zero-based, empty lines are included */ - operator line_idx() const; - - line_idx get_index() const; - - // ----------------------------------------- - /** access the underlying stream object */ - StreamReaderLE& get_stream(); - - // ----------------------------------------- - /** !strcmp((*this)->substr(0,strlen(check)),check) */ - bool match_start(const char* check); - - // ----------------------------------------- - /** swallow the next call to ++, return the previous value. */ - void swallow_next_increment(); - - LineSplitter( const LineSplitter & ) = delete; - LineSplitter(LineSplitter &&) = delete; - LineSplitter &operator = ( const LineSplitter & ) = delete; - -private: - line_idx mIdx; - std::string mCur; - StreamReaderLE& mStream; - bool mSwallow, mSkip_empty_lines, mTrim; -}; - -inline -LineSplitter::LineSplitter(StreamReaderLE& stream, bool skip_empty_lines, bool trim ) -: mIdx(0) -, mCur() -, mStream(stream) -, mSwallow() -, mSkip_empty_lines(skip_empty_lines) -, mTrim(trim) { - mCur.reserve(1024); - operator++(); - mIdx = 0; -} - -inline -LineSplitter::~LineSplitter() { - // empty -} - -inline -LineSplitter& LineSplitter::operator++() { - if (mSwallow) { - mSwallow = false; - return *this; - } - - if (!*this) { - throw std::logic_error("End of file, no more lines to be retrieved."); - } - - char s; - mCur.clear(); - while (mStream.GetRemainingSize() && (s = mStream.GetI1(), 1)) { - if (s == '\n' || s == '\r') { - if (mSkip_empty_lines) { - while (mStream.GetRemainingSize() && ((s = mStream.GetI1()) == ' ' || s == '\r' || s == '\n')); - if (mStream.GetRemainingSize()) { - mStream.IncPtr(-1); - } - } else { - // skip both potential line terminators but don't read past this line. - if (mStream.GetRemainingSize() && (s == '\r' && mStream.GetI1() != '\n')) { - mStream.IncPtr(-1); - } - if (mTrim) { - while (mStream.GetRemainingSize() && ((s = mStream.GetI1()) == ' ' || s == '\t')); - if (mStream.GetRemainingSize()) { - mStream.IncPtr(-1); - } - } - } - break; - } - mCur += s; - } - ++mIdx; - - return *this; -} - -inline -LineSplitter &LineSplitter::operator++(int) { - return ++(*this); -} - -inline -const char *LineSplitter::operator[] (size_t idx) const { - const char* s = operator->()->c_str(); - - SkipSpaces(&s); - for (size_t i = 0; i < idx; ++i) { - - for (; !IsSpace(*s); ++s) { - if (IsLineEnd(*s)) { - throw std::range_error("Token index out of range, EOL reached"); - } - } - SkipSpaces(&s); - } - return s; -} - -template -inline -void LineSplitter::get_tokens(const char* (&tokens)[N]) const { - const char* s = operator->()->c_str(); - - SkipSpaces(&s); - for (size_t i = 0; i < N; ++i) { - if (IsLineEnd(*s)) { - throw std::range_error("Token count out of range, EOL reached"); - } - tokens[i] = s; - - for (; *s && !IsSpace(*s); ++s); - SkipSpaces(&s); - } -} - -inline -const std::string* LineSplitter::operator -> () const { - return &mCur; -} - -inline -std::string LineSplitter::operator* () const { - return mCur; -} - -inline -LineSplitter::operator bool() const { - return mStream.GetRemainingSize() > 0; -} - -inline -LineSplitter::operator line_idx() const { - return mIdx; -} - -inline -LineSplitter::line_idx LineSplitter::get_index() const { - return mIdx; -} - -inline -StreamReaderLE &LineSplitter::get_stream() { - return mStream; -} - -inline -bool LineSplitter::match_start(const char* check) { - const size_t len = ::strlen(check); - - return len <= mCur.length() && std::equal(check, check + len, mCur.begin()); -} - -inline -void LineSplitter::swallow_next_increment() { - mSwallow = true; -} - -} // Namespace Assimp - -#endif // INCLUDED_LINE_SPLITTER_H diff --git a/tools/ZAPD/lib/assimp/include/assimp/LogAux.h b/tools/ZAPD/lib/assimp/include/assimp/LogAux.h deleted file mode 100644 index 558485272e..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/LogAux.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file LogAux.h - * @brief Common logging usage patterns for importer implementations - */ -#ifndef INCLUDED_AI_LOGAUX_H -#define INCLUDED_AI_LOGAUX_H - -#include -#include -#include - -namespace Assimp { - -template -class LogFunctions { -public: - // ------------------------------------------------------------------------------------------------ - static void ThrowException(const std::string& msg) - { - throw DeadlyImportError(Prefix()+msg); - } - - // ------------------------------------------------------------------------------------------------ - static void LogWarn(const Formatter::format& message) { - if (!DefaultLogger::isNullLogger()) { - ASSIMP_LOG_WARN(Prefix()+(std::string)message); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogError(const Formatter::format& message) { - if (!DefaultLogger::isNullLogger()) { - ASSIMP_LOG_ERROR(Prefix()+(std::string)message); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogInfo(const Formatter::format& message) { - if (!DefaultLogger::isNullLogger()) { - ASSIMP_LOG_INFO(Prefix()+(std::string)message); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogDebug(const Formatter::format& message) { - if (!DefaultLogger::isNullLogger()) { - ASSIMP_LOG_DEBUG(Prefix()+(std::string)message); - } - } - - // https://sourceforge.net/tracker/?func=detail&atid=1067632&aid=3358562&group_id=226462 -#if !defined(__GNUC__) || !defined(__APPLE__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) - - // ------------------------------------------------------------------------------------------------ - static void LogWarn (const char* message) { - if (!DefaultLogger::isNullLogger()) { - LogWarn(Formatter::format(message)); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogError (const char* message) { - if (!DefaultLogger::isNullLogger()) { - LogError(Formatter::format(message)); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogInfo (const char* message) { - if (!DefaultLogger::isNullLogger()) { - LogInfo(Formatter::format(message)); - } - } - - // ------------------------------------------------------------------------------------------------ - static void LogDebug (const char* message) { - if (!DefaultLogger::isNullLogger()) { - LogDebug(Formatter::format(message)); - } - } - -#endif - -private: - static const char* Prefix(); - -}; -} // ! Assimp - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/LogStream.hpp b/tools/ZAPD/lib/assimp/include/assimp/LogStream.hpp deleted file mode 100644 index d0281e2d02..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/LogStream.hpp +++ /dev/null @@ -1,111 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file LogStream.hpp - * @brief Abstract base class 'LogStream', representing an output log stream. - */ -#ifndef INCLUDED_AI_LOGSTREAM_H -#define INCLUDED_AI_LOGSTREAM_H - -#include "types.h" - -namespace Assimp { - -class IOSystem; - -// ------------------------------------------------------------------------------------ -/** @brief CPP-API: Abstract interface for log stream implementations. - * - * Several default implementations are provided, see #aiDefaultLogStream for more - * details. Writing your own implementation of LogStream is just necessary if these - * are not enough for your purpose. */ -class ASSIMP_API LogStream -#ifndef SWIG - : public Intern::AllocateFromAssimpHeap -#endif -{ -protected: - /** @brief Default constructor */ - LogStream() AI_NO_EXCEPT; - -public: - /** @brief Virtual destructor */ - virtual ~LogStream(); - - // ------------------------------------------------------------------- - /** @brief Overwrite this for your own output methods - * - * Log messages *may* consist of multiple lines and you shouldn't - * expect a consistent formatting. If you want custom formatting - * (e.g. generate HTML), supply a custom instance of Logger to - * #DefaultLogger:set(). Usually you can *expect* that a log message - * is exactly one line and terminated with a single \n character. - * @param message Message to be written */ - virtual void write(const char* message) = 0; - - // ------------------------------------------------------------------- - /** @brief Creates a default log stream - * @param streams Type of the default stream - * @param name For aiDefaultLogStream_FILE: name of the output file - * @param io For aiDefaultLogStream_FILE: IOSystem to be used to open the output - * file. Pass NULL for the default implementation. - * @return New LogStream instance. */ - static LogStream* createDefaultStream(aiDefaultLogStream stream, - const char* name = "AssimpLog.txt", - IOSystem* io = nullptr ); - -}; // !class LogStream - -inline -LogStream::LogStream() AI_NO_EXCEPT { - // empty -} - -inline -LogStream::~LogStream() { - // empty -} - -// ------------------------------------------------------------------------------------ -} // Namespace Assimp - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/Logger.hpp b/tools/ZAPD/lib/assimp/include/assimp/Logger.hpp deleted file mode 100644 index 89cade6c33..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Logger.hpp +++ /dev/null @@ -1,305 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Logger.hpp - * @brief Abstract base class 'Logger', base of the logging system. - */ -#ifndef INCLUDED_AI_LOGGER_H -#define INCLUDED_AI_LOGGER_H - -#include -#include - -namespace Assimp { - -class LogStream; - -// Maximum length of a log message. Longer messages are rejected. -#define MAX_LOG_MESSAGE_LENGTH 1024u - -// ---------------------------------------------------------------------------------- -/** @brief CPP-API: Abstract interface for logger implementations. - * Assimp provides a default implementation and uses it for almost all - * logging stuff ('DefaultLogger'). This class defines just basic logging - * behavior and is not of interest for you. Instead, take a look at #DefaultLogger. */ -class ASSIMP_API Logger -#ifndef SWIG - : public Intern::AllocateFromAssimpHeap -#endif -{ -public: - - // ---------------------------------------------------------------------- - /** @enum LogSeverity - * @brief Log severity to describe the granularity of logging. - */ - enum LogSeverity { - NORMAL, //!< Normal granularity of logging - VERBOSE //!< Debug infos will be logged, too - }; - - // ---------------------------------------------------------------------- - /** @enum ErrorSeverity - * @brief Description for severity of a log message. - * - * Every LogStream has a bitwise combination of these flags. - * A LogStream doesn't receive any messages of a specific type - * if it doesn't specify the corresponding ErrorSeverity flag. - */ - enum ErrorSeverity { - Debugging = 1, //!< Debug log message - Info = 2, //!< Info log message - Warn = 4, //!< Warn log message - Err = 8 //!< Error log message - }; - -public: - - /** @brief Virtual destructor */ - virtual ~Logger(); - - // ---------------------------------------------------------------------- - /** @brief Writes a debug message - * @param message Debug message*/ - void debug(const char* message); - void debug(const std::string &message); - - // ---------------------------------------------------------------------- - /** @brief Writes a info message - * @param message Info message*/ - void info(const char* message); - void info(const std::string &message); - - // ---------------------------------------------------------------------- - /** @brief Writes a warning message - * @param message Warn message*/ - void warn(const char* message); - void warn(const std::string &message); - - // ---------------------------------------------------------------------- - /** @brief Writes an error message - * @param message Error message*/ - void error(const char* message); - void error(const std::string &message); - - // ---------------------------------------------------------------------- - /** @brief Set a new log severity. - * @param log_severity New severity for logging*/ - void setLogSeverity(LogSeverity log_severity); - - // ---------------------------------------------------------------------- - /** @brief Get the current log severity*/ - LogSeverity getLogSeverity() const; - - // ---------------------------------------------------------------------- - /** @brief Attach a new log-stream - * - * The logger takes ownership of the stream and is responsible - * for its destruction (which is done using ::delete when the logger - * itself is destroyed). Call detachStream to detach a stream and to - * gain ownership of it again. - * @param pStream Log-stream to attach - * @param severity Message filter, specified which types of log - * messages are dispatched to the stream. Provide a bitwise - * combination of the ErrorSeverity flags. - * @return true if the stream has been attached, false otherwise.*/ - virtual bool attachStream(LogStream *pStream, - unsigned int severity = Debugging | Err | Warn | Info) = 0; - - // ---------------------------------------------------------------------- - /** @brief Detach a still attached stream from the logger (or - * modify the filter flags bits) - * @param pStream Log-stream instance for detaching - * @param severity Provide a bitwise combination of the ErrorSeverity - * flags. This value is &~ed with the current flags of the stream, - * if the result is 0 the stream is detached from the Logger and - * the caller retakes the possession of the stream. - * @return true if the stream has been detached, false otherwise.*/ - virtual bool detatchStream(LogStream *pStream, - unsigned int severity = Debugging | Err | Warn | Info) = 0; - -protected: - /** - * Default constructor - */ - Logger() AI_NO_EXCEPT; - - /** - * Construction with a given log severity - */ - explicit Logger(LogSeverity severity); - - // ---------------------------------------------------------------------- - /** - * @brief Called as a request to write a specific debug message - * @param message Debug message. Never longer than - * MAX_LOG_MESSAGE_LENGTH characters (excluding the '0'). - * @note The message string is only valid until the scope of - * the function is left. - */ - virtual void OnDebug(const char* message)= 0; - - // ---------------------------------------------------------------------- - /** - * @brief Called as a request to write a specific info message - * @param message Info message. Never longer than - * MAX_LOG_MESSAGE_LENGTH characters (ecxluding the '0'). - * @note The message string is only valid until the scope of - * the function is left. - */ - virtual void OnInfo(const char* message) = 0; - - // ---------------------------------------------------------------------- - /** - * @brief Called as a request to write a specific warn message - * @param message Warn message. Never longer than - * MAX_LOG_MESSAGE_LENGTH characters (exluding the '0'). - * @note The message string is only valid until the scope of - * the function is left. - */ - virtual void OnWarn(const char* essage) = 0; - - // ---------------------------------------------------------------------- - /** - * @brief Called as a request to write a specific error message - * @param message Error message. Never longer than - * MAX_LOG_MESSAGE_LENGTH characters (exluding the '0'). - * @note The message string is only valid until the scope of - * the function is left. - */ - virtual void OnError(const char* message) = 0; - -protected: - LogSeverity m_Severity; -}; - -// ---------------------------------------------------------------------------------- -// Default constructor -inline -Logger::Logger() AI_NO_EXCEPT -: m_Severity(NORMAL) { - // empty -} - -// ---------------------------------------------------------------------------------- -// Virtual destructor -inline -Logger::~Logger() { - // empty -} - -// ---------------------------------------------------------------------------------- -// Construction with given logging severity -inline -Logger::Logger(LogSeverity severity) -: m_Severity(severity) { - // empty -} - -// ---------------------------------------------------------------------------------- -// Log severity setter -inline -void Logger::setLogSeverity(LogSeverity log_severity){ - m_Severity = log_severity; -} - -// ---------------------------------------------------------------------------------- -// Log severity getter -inline -Logger::LogSeverity Logger::getLogSeverity() const { - return m_Severity; -} - -// ---------------------------------------------------------------------------------- -inline -void Logger::debug(const std::string &message) { - return debug(message.c_str()); -} - -// ---------------------------------------------------------------------------------- -inline -void Logger::error(const std::string &message) { - return error(message.c_str()); -} - -// ---------------------------------------------------------------------------------- -inline -void Logger::warn(const std::string &message) { - return warn(message.c_str()); -} - -// ---------------------------------------------------------------------------------- -inline -void Logger::info(const std::string &message) { - return info(message.c_str()); -} - -// ------------------------------------------------------------------------------------------------ -#define ASSIMP_LOG_WARN_F(string,...)\ - DefaultLogger::get()->warn((Formatter::format(string),__VA_ARGS__)) - -#define ASSIMP_LOG_ERROR_F(string,...)\ - DefaultLogger::get()->error((Formatter::format(string),__VA_ARGS__)) - -#define ASSIMP_LOG_DEBUG_F(string,...)\ - DefaultLogger::get()->debug((Formatter::format(string),__VA_ARGS__)) - -#define ASSIMP_LOG_INFO_F(string,...)\ - DefaultLogger::get()->info((Formatter::format(string),__VA_ARGS__)) - - -#define ASSIMP_LOG_WARN(string)\ - DefaultLogger::get()->warn(string) - -#define ASSIMP_LOG_ERROR(string)\ - DefaultLogger::get()->error(string) - -#define ASSIMP_LOG_DEBUG(string)\ - DefaultLogger::get()->debug(string) - -#define ASSIMP_LOG_INFO(string)\ - DefaultLogger::get()->info(string) - - -} // Namespace Assimp - -#endif // !! INCLUDED_AI_LOGGER_H diff --git a/tools/ZAPD/lib/assimp/include/assimp/Macros.h b/tools/ZAPD/lib/assimp/include/assimp/Macros.h deleted file mode 100644 index 6515303372..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Macros.h +++ /dev/null @@ -1,49 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/* Helper macro to set a pointer to NULL in debug builds - */ -#if (defined ASSIMP_BUILD_DEBUG) -# define AI_DEBUG_INVALIDATE_PTR(x) x = NULL; -#else -# define AI_DEBUG_INVALIDATE_PTR(x) -#endif - diff --git a/tools/ZAPD/lib/assimp/include/assimp/MathFunctions.h b/tools/ZAPD/lib/assimp/include/assimp/MathFunctions.h deleted file mode 100644 index f49273bb34..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/MathFunctions.h +++ /dev/null @@ -1,86 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2016, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#pragma once - -/** @file MathFunctions.h -* @brief Implementation of math utility functions. - * -*/ - -#include - -namespace Assimp { -namespace Math { - -// TODO: use binary GCD for unsigned integers .... -template < typename IntegerType > -inline -IntegerType gcd( IntegerType a, IntegerType b ) { - const IntegerType zero = (IntegerType)0; - while ( true ) { - if ( a == zero ) - return b; - b %= a; - - if ( b == zero ) - return a; - a %= b; - } -} - -template < typename IntegerType > -inline -IntegerType lcm( IntegerType a, IntegerType b ) { - const IntegerType t = gcd (a,b); - if (!t) - return t; - return a / t * b; -} - -template -inline -T getEpsilon() { - return std::numeric_limits::epsilon(); -} - -} -} diff --git a/tools/ZAPD/lib/assimp/include/assimp/MemoryIOWrapper.h b/tools/ZAPD/lib/assimp/include/assimp/MemoryIOWrapper.h deleted file mode 100644 index c522787184..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/MemoryIOWrapper.h +++ /dev/null @@ -1,244 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file MemoryIOWrapper.h - * Handy IOStream/IOSystem implemetation to read directly from a memory buffer */ -#ifndef AI_MEMORYIOSTREAM_H_INC -#define AI_MEMORYIOSTREAM_H_INC - -#include -#include -#include -#include - -namespace Assimp { - -#define AI_MEMORYIO_MAGIC_FILENAME "$$$___magic___$$$" -#define AI_MEMORYIO_MAGIC_FILENAME_LENGTH 17 - -// ---------------------------------------------------------------------------------- -/** Implementation of IOStream to read directly from a memory buffer */ -// ---------------------------------------------------------------------------------- -class MemoryIOStream : public IOStream { -public: - MemoryIOStream (const uint8_t* buff, size_t len, bool own = false) - : buffer (buff) - , length(len) - , pos((size_t)0) - , own(own) { - // empty - } - - ~MemoryIOStream () { - if(own) { - delete[] buffer; - } - } - - // ------------------------------------------------------------------- - // Read from stream - size_t Read(void* pvBuffer, size_t pSize, size_t pCount) { - ai_assert(nullptr != pvBuffer); - ai_assert(0 != pSize); - - const size_t cnt = std::min( pCount, (length-pos) / pSize); - const size_t ofs = pSize * cnt; - - ::memcpy(pvBuffer,buffer+pos,ofs); - pos += ofs; - - return cnt; - } - - // ------------------------------------------------------------------- - // Write to stream - size_t Write(const void* /*pvBuffer*/, size_t /*pSize*/,size_t /*pCount*/) { - ai_assert(false); // won't be needed - return 0; - } - - // ------------------------------------------------------------------- - // Seek specific position - aiReturn Seek(size_t pOffset, aiOrigin pOrigin) { - if (aiOrigin_SET == pOrigin) { - if (pOffset > length) { - return AI_FAILURE; - } - pos = pOffset; - } else if (aiOrigin_END == pOrigin) { - if (pOffset > length) { - return AI_FAILURE; - } - pos = length-pOffset; - } else { - if (pOffset+pos > length) { - return AI_FAILURE; - } - pos += pOffset; - } - return AI_SUCCESS; - } - - // ------------------------------------------------------------------- - // Get current seek position - size_t Tell() const { - return pos; - } - - // ------------------------------------------------------------------- - // Get size of file - size_t FileSize() const { - return length; - } - - // ------------------------------------------------------------------- - // Flush file contents - void Flush() { - ai_assert(false); // won't be needed - } - -private: - const uint8_t* buffer; - size_t length,pos; - bool own; -}; - -// --------------------------------------------------------------------------- -/** Dummy IO system to read from a memory buffer */ -class MemoryIOSystem : public IOSystem { -public: - /** Constructor. */ - MemoryIOSystem(const uint8_t* buff, size_t len, IOSystem* io) - : buffer(buff) - , length(len) - , existing_io(io) - , created_streams() { - // empty - } - - /** Destructor. */ - ~MemoryIOSystem() { - } - - // ------------------------------------------------------------------- - /** Tests for the existence of a file at the given path. */ - bool Exists(const char* pFile) const override { - if (0 == strncmp( pFile, AI_MEMORYIO_MAGIC_FILENAME, AI_MEMORYIO_MAGIC_FILENAME_LENGTH ) ) { - return true; - } - return existing_io ? existing_io->Exists(pFile) : false; - } - - // ------------------------------------------------------------------- - /** Returns the directory separator. */ - char getOsSeparator() const override { - return existing_io ? existing_io->getOsSeparator() - : '/'; // why not? it doesn't care - } - - // ------------------------------------------------------------------- - /** Open a new file with a given path. */ - IOStream* Open(const char* pFile, const char* pMode = "rb") override { - if ( 0 == strncmp( pFile, AI_MEMORYIO_MAGIC_FILENAME, AI_MEMORYIO_MAGIC_FILENAME_LENGTH ) ) { - created_streams.emplace_back(new MemoryIOStream(buffer, length)); - return created_streams.back(); - } - return existing_io ? existing_io->Open(pFile, pMode) : NULL; - } - - // ------------------------------------------------------------------- - /** Closes the given file and releases all resources associated with it. */ - void Close( IOStream* pFile) override { - auto it = std::find(created_streams.begin(), created_streams.end(), pFile); - if (it != created_streams.end()) { - delete pFile; - created_streams.erase(it); - } else if (existing_io) { - existing_io->Close(pFile); - } - } - - // ------------------------------------------------------------------- - /** Compare two paths */ - bool ComparePaths(const char* one, const char* second) const override { - return existing_io ? existing_io->ComparePaths(one, second) : false; - } - - bool PushDirectory( const std::string &path ) override { - return existing_io ? existing_io->PushDirectory(path) : false; - } - - const std::string &CurrentDirectory() const override { - static std::string empty; - return existing_io ? existing_io->CurrentDirectory() : empty; - } - - size_t StackSize() const override { - return existing_io ? existing_io->StackSize() : 0; - } - - bool PopDirectory() override { - return existing_io ? existing_io->PopDirectory() : false; - } - - bool CreateDirectory( const std::string &path ) override { - return existing_io ? existing_io->CreateDirectory(path) : false; - } - - bool ChangeDirectory( const std::string &path ) override { - return existing_io ? existing_io->ChangeDirectory(path) : false; - } - - bool DeleteFile( const std::string &file ) override { - return existing_io ? existing_io->DeleteFile(file) : false; - } - -private: - const uint8_t* buffer; - size_t length; - IOSystem* existing_io; - std::vector created_streams; -}; - -} // end namespace Assimp - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/NullLogger.hpp b/tools/ZAPD/lib/assimp/include/assimp/NullLogger.hpp deleted file mode 100644 index c45d01bd48..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/NullLogger.hpp +++ /dev/null @@ -1,99 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file NullLogger.hpp - * @brief Dummy logger -*/ - -#ifndef INCLUDED_AI_NULLLOGGER_H -#define INCLUDED_AI_NULLLOGGER_H - -#include "Logger.hpp" - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** @brief CPP-API: Empty logging implementation. - * - * Does nothing! Used by default if the application hasn't requested a - * custom logger via #DefaultLogger::set() or #DefaultLogger::create(); */ -class ASSIMP_API NullLogger - : public Logger { - -public: - - /** @brief Logs a debug message */ - void OnDebug(const char* message) { - (void)message; //this avoids compiler warnings - } - - /** @brief Logs an info message */ - void OnInfo(const char* message) { - (void)message; //this avoids compiler warnings - } - - /** @brief Logs a warning message */ - void OnWarn(const char* message) { - (void)message; //this avoids compiler warnings - } - - /** @brief Logs an error message */ - void OnError(const char* message) { - (void)message; //this avoids compiler warnings - } - - /** @brief Detach a still attached stream from logger */ - bool attachStream(LogStream *pStream, unsigned int severity) { - (void)pStream; (void)severity; //this avoids compiler warnings - return false; - } - - /** @brief Detach a still attached stream from logger */ - bool detatchStream(LogStream *pStream, unsigned int severity) { - (void)pStream; (void)severity; //this avoids compiler warnings - return false; - } - -private: -}; -} -#endif // !! AI_NULLLOGGER_H_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/ParsingUtils.h b/tools/ZAPD/lib/assimp/include/assimp/ParsingUtils.h deleted file mode 100644 index 6b9574fc67..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/ParsingUtils.h +++ /dev/null @@ -1,259 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - - -/** @file ParsingUtils.h - * @brief Defines helper functions for text parsing - */ -#ifndef AI_PARSING_UTILS_H_INC -#define AI_PARSING_UTILS_H_INC - -#include "StringComparison.h" -#include "StringUtils.h" -#include - -namespace Assimp { - -// NOTE: the functions below are mostly intended as replacement for -// std::upper, std::lower, std::isupper, std::islower, std::isspace. -// we don't bother of locales. We don't want them. We want reliable -// (i.e. identical) results across all locales. - -// The functions below accept any character type, but know only -// about ASCII. However, UTF-32 is the only safe ASCII superset to -// use since it doesn't have multi-byte sequences. - -static const unsigned int BufferSize = 4096; - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -char_t ToLower( char_t in ) { - return (in >= (char_t)'A' && in <= (char_t)'Z') ? (char_t)(in+0x20) : in; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -char_t ToUpper( char_t in) { - return (in >= (char_t)'a' && in <= (char_t)'z') ? (char_t)(in-0x20) : in; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool IsUpper( char_t in) { - return (in >= (char_t)'A' && in <= (char_t)'Z'); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool IsLower( char_t in) { - return (in >= (char_t)'a' && in <= (char_t)'z'); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool IsSpace( char_t in) { - return (in == (char_t)' ' || in == (char_t)'\t'); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool IsLineEnd( char_t in) { - return (in==(char_t)'\r'||in==(char_t)'\n'||in==(char_t)'\0'||in==(char_t)'\f'); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool IsSpaceOrNewLine( char_t in) { - return IsSpace(in) || IsLineEnd(in); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipSpaces( const char_t* in, const char_t** out) { - while( *in == ( char_t )' ' || *in == ( char_t )'\t' ) { - ++in; - } - *out = in; - return !IsLineEnd(*in); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipSpaces( const char_t** inout) { - return SkipSpaces(*inout,inout); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipLine( const char_t* in, const char_t** out) { - while( *in != ( char_t )'\r' && *in != ( char_t )'\n' && *in != ( char_t )'\0' ) { - ++in; - } - - // files are opened in binary mode. Ergo there are both NL and CR - while( *in == ( char_t )'\r' || *in == ( char_t )'\n' ) { - ++in; - } - *out = in; - return *in != (char_t)'\0'; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipLine( const char_t** inout) { - return SkipLine(*inout,inout); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipSpacesAndLineEnd( const char_t* in, const char_t** out) { - while( *in == ( char_t )' ' || *in == ( char_t )'\t' || *in == ( char_t )'\r' || *in == ( char_t )'\n' ) { - ++in; - } - *out = in; - return *in != '\0'; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool SkipSpacesAndLineEnd( const char_t** inout) { - return SkipSpacesAndLineEnd(*inout,inout); -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool GetNextLine( const char_t*& buffer, char_t out[ BufferSize ] ) { - if( ( char_t )'\0' == *buffer ) { - return false; - } - - char* _out = out; - char* const end = _out + BufferSize; - while( !IsLineEnd( *buffer ) && _out < end ) { - *_out++ = *buffer++; - } - *_out = (char_t)'\0'; - - while( IsLineEnd( *buffer ) && '\0' != *buffer ) { - ++buffer; - } - - return true; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE bool IsNumeric( char_t in) { - return ( in >= '0' && in <= '9' ) || '-' == in || '+' == in; -} - -// --------------------------------------------------------------------------------- -template -AI_FORCE_INLINE -bool TokenMatch(char_t*& in, const char* token, unsigned int len) -{ - if (!::strncmp(token,in,len) && IsSpaceOrNewLine(in[len])) { - if (in[len] != '\0') { - in += len+1; - } else { - // If EOF after the token make sure we don't go past end of buffer - in += len; - } - return true; - } - - return false; -} -// --------------------------------------------------------------------------------- -/** @brief Case-ignoring version of TokenMatch - * @param in Input - * @param token Token to check for - * @param len Number of characters to check - */ -AI_FORCE_INLINE -bool TokenMatchI(const char*& in, const char* token, unsigned int len) { - if (!ASSIMP_strincmp(token,in,len) && IsSpaceOrNewLine(in[len])) { - in += len+1; - return true; - } - return false; -} - -// --------------------------------------------------------------------------------- -AI_FORCE_INLINE -void SkipToken(const char*& in) { - SkipSpaces(&in); - while ( !IsSpaceOrNewLine( *in ) ) { - ++in; - } -} - -// --------------------------------------------------------------------------------- -AI_FORCE_INLINE -std::string GetNextToken(const char*& in) { - SkipSpacesAndLineEnd(&in); - const char* cur = in; - while ( !IsSpaceOrNewLine( *in ) ) { - ++in; - } - return std::string(cur,(size_t)(in-cur)); -} - -// --------------------------------------------------------------------------------- - -} // ! namespace Assimp - -#endif // ! AI_PARSING_UTILS_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/Profiler.h b/tools/ZAPD/lib/assimp/include/assimp/Profiler.h deleted file mode 100644 index 6ff9d41c0a..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Profiler.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Profiler.h - * @brief Utility to measure the respective runtime of each import step - */ -#ifndef INCLUDED_PROFILER_H -#define INCLUDED_PROFILER_H - -#include -#include -#include "TinyFormatter.h" - -#include - -namespace Assimp { -namespace Profiling { - -using namespace Formatter; - -// ------------------------------------------------------------------------------------------------ -/** Simple wrapper around boost::timer to simplify reporting. Timings are automatically - * dumped to the log file. - */ -class Profiler { -public: - Profiler() { - // empty - } - -public: - - /** Start a named timer */ - void BeginRegion(const std::string& region) { - regions[region] = std::chrono::system_clock::now(); - ASSIMP_LOG_DEBUG((format("START `"),region,"`")); - } - - - /** End a specific named timer and write its end time to the log */ - void EndRegion(const std::string& region) { - RegionMap::const_iterator it = regions.find(region); - if (it == regions.end()) { - return; - } - - std::chrono::duration elapsedSeconds = std::chrono::system_clock::now() - regions[region]; - ASSIMP_LOG_DEBUG((format("END `"),region,"`, dt= ", elapsedSeconds.count()," s")); - } - -private: - typedef std::map> RegionMap; - RegionMap regions; -}; - -} -} - -#endif - diff --git a/tools/ZAPD/lib/assimp/include/assimp/ProgressHandler.hpp b/tools/ZAPD/lib/assimp/include/assimp/ProgressHandler.hpp deleted file mode 100644 index 4e47f1d0a6..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/ProgressHandler.hpp +++ /dev/null @@ -1,145 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file ProgressHandler.hpp - * @brief Abstract base class 'ProgressHandler'. - */ -#pragma once -#ifndef AI_PROGRESSHANDLER_H_INC -#define AI_PROGRESSHANDLER_H_INC - -#include "types.h" - -namespace Assimp { - -// ------------------------------------------------------------------------------------ -/** @brief CPP-API: Abstract interface for custom progress report receivers. - * - * Each #Importer instance maintains its own #ProgressHandler. The default - * implementation provided by Assimp doesn't do anything at all. */ -class ASSIMP_API ProgressHandler -#ifndef SWIG - : public Intern::AllocateFromAssimpHeap -#endif -{ -protected: - /// @brief Default constructor - ProgressHandler () AI_NO_EXCEPT { - // empty - } - -public: - /// @brief Virtual destructor. - virtual ~ProgressHandler () { - } - - // ------------------------------------------------------------------- - /** @brief Progress callback. - * @param percentage An estimate of the current loading progress, - * in percent. Or -1.f if such an estimate is not available. - * - * There are restriction on what you may do from within your - * implementation of this method: no exceptions may be thrown and no - * non-const #Importer methods may be called. It is - * not generally possible to predict the number of callbacks - * fired during a single import. - * - * @return Return false to abort loading at the next possible - * occasion (loaders and Assimp are generally allowed to perform - * all needed cleanup tasks prior to returning control to the - * caller). If the loading is aborted, #Importer::ReadFile() - * returns always NULL. - * */ - virtual bool Update(float percentage = -1.f) = 0; - - // ------------------------------------------------------------------- - /** @brief Progress callback for file loading steps - * @param numberOfSteps The number of total post-processing - * steps - * @param currentStep The index of the current post-processing - * step that will run, or equal to numberOfSteps if all of - * them has finished. This number is always strictly monotone - * increasing, although not necessarily linearly. - * - * @note This is currently only used at the start and the end - * of the file parsing. - * */ - virtual void UpdateFileRead(int currentStep /*= 0*/, int numberOfSteps /*= 0*/) { - float f = numberOfSteps ? currentStep / (float)numberOfSteps : 1.0f; - Update( f * 0.5f ); - } - - // ------------------------------------------------------------------- - /** @brief Progress callback for post-processing steps - * @param numberOfSteps The number of total post-processing - * steps - * @param currentStep The index of the current post-processing - * step that will run, or equal to numberOfSteps if all of - * them has finished. This number is always strictly monotone - * increasing, although not necessarily linearly. - * */ - virtual void UpdatePostProcess(int currentStep /*= 0*/, int numberOfSteps /*= 0*/) { - float f = numberOfSteps ? currentStep / (float)numberOfSteps : 1.0f; - Update( f * 0.5f + 0.5f ); - } - - - // ------------------------------------------------------------------- - /** @brief Progress callback for export steps. - * @param numberOfSteps The number of total processing - * steps - * @param currentStep The index of the current post-processing - * step that will run, or equal to numberOfSteps if all of - * them has finished. This number is always strictly monotone - * increasing, although not necessarily linearly. - * */ - virtual void UpdateFileWrite(int currentStep /*= 0*/, int numberOfSteps /*= 0*/) { - float f = numberOfSteps ? currentStep / (float)numberOfSteps : 1.0f; - Update(f * 0.5f); - } -}; // !class ProgressHandler - -// ------------------------------------------------------------------------------------ - -} // Namespace Assimp - -#endif // AI_PROGRESSHANDLER_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/RemoveComments.h b/tools/ZAPD/lib/assimp/include/assimp/RemoveComments.h deleted file mode 100644 index 404b496719..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/RemoveComments.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Declares a helper class, "CommentRemover", which can be - * used to remove comments (single and multi line) from a text file. - */ -#ifndef AI_REMOVE_COMMENTS_H_INC -#define AI_REMOVE_COMMENTS_H_INC - - -#include - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** \brief Helper class to remove single and multi line comments from a file - * - * Some mesh formats like MD5 have comments that are quite similar - * to those in C or C++ so this code has been moved to a separate - * module. - */ -class ASSIMP_API CommentRemover -{ - // class cannot be instanced - CommentRemover() {} - -public: - - //! Remove single-line comments. The end of a line is - //! expected to be either NL or CR or NLCR. - //! \param szComment The start sequence of the comment, e.g. "//" - //! \param szBuffer Buffer to work with - //! \param chReplacement Character to be used as replacement - //! for commented lines. By default this is ' ' - static void RemoveLineComments(const char* szComment, - char* szBuffer, char chReplacement = ' '); - - //! Remove multi-line comments. The end of a line is - //! expected to be either NL or CR or NLCR. Multi-line comments - //! may not be nested (as in C). - //! \param szCommentStart The start sequence of the comment, e.g. "/*" - //! \param szCommentEnd The end sequence of the comment, e.g. "*/" - //! \param szBuffer Buffer to work with - //! \param chReplacement Character to be used as replacement - //! for commented lines. By default this is ' ' - static void RemoveMultiLineComments(const char* szCommentStart, - const char* szCommentEnd,char* szBuffer, - char chReplacement = ' '); -}; -} // ! Assimp - -#endif // !! AI_REMOVE_COMMENTS_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/SGSpatialSort.h b/tools/ZAPD/lib/assimp/include/assimp/SGSpatialSort.h deleted file mode 100644 index 5b4f3f41f2..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SGSpatialSort.h +++ /dev/null @@ -1,150 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** Small helper classes to optimize finding vertices close to a given location - */ -#ifndef AI_D3DSSPATIALSORT_H_INC -#define AI_D3DSSPATIALSORT_H_INC - -#include -#include -#include - -namespace Assimp { - -// ---------------------------------------------------------------------------------- -/** Specialized version of SpatialSort to support smoothing groups - * This is used in by the 3DS, ASE and LWO loaders. 3DS and ASE share their - * normal computation code in SmoothingGroups.inl, the LWO loader has its own - * implementation to handle all details of its file format correctly. - */ -// ---------------------------------------------------------------------------------- -class ASSIMP_API SGSpatialSort -{ -public: - - SGSpatialSort(); - - // ------------------------------------------------------------------- - /** Construction from a given face array, handling smoothing groups - * properly - */ - explicit SGSpatialSort(const std::vector& vPositions); - - // ------------------------------------------------------------------- - /** Add a vertex to the spatial sort - * @param vPosition Vertex position to be added - * @param index Index of the vrtex - * @param smoothingGroup SmoothingGroup for this vertex - */ - void Add(const aiVector3D& vPosition, unsigned int index, - unsigned int smoothingGroup); - - // ------------------------------------------------------------------- - /** Prepare the spatial sorter for use. This step runs in O(logn) - */ - void Prepare(); - - /** Destructor */ - ~SGSpatialSort(); - - // ------------------------------------------------------------------- - /** Returns an iterator for all positions close to the given position. - * @param pPosition The position to look for vertices. - * @param pSG Only included vertices with at least one shared smooth group - * @param pRadius Maximal distance from the position a vertex may have - * to be counted in. - * @param poResults The container to store the indices of the found - * positions. Will be emptied by the call so it may contain anything. - * @param exactMatch Specifies whether smoothing groups are bit masks - * (false) or integral values (true). In the latter case, a vertex - * cannot belong to more than one smoothing group. - * @return An iterator to iterate over all vertices in the given area. - */ - // ------------------------------------------------------------------- - void FindPositions( const aiVector3D& pPosition, uint32_t pSG, - float pRadius, std::vector& poResults, - bool exactMatch = false) const; - -protected: - /** Normal of the sorting plane, normalized. The center is always at (0, 0, 0) */ - aiVector3D mPlaneNormal; - - // ------------------------------------------------------------------- - /** An entry in a spatially sorted position array. Consists of a - * vertex index, its position and its pre-calculated distance from - * the reference plane */ - // ------------------------------------------------------------------- - struct Entry { - unsigned int mIndex; ///< The vertex referred by this entry - aiVector3D mPosition; ///< Position - uint32_t mSmoothGroups; - float mDistance; ///< Distance of this vertex to the sorting plane - - Entry() AI_NO_EXCEPT - : mIndex(0) - , mPosition() - , mSmoothGroups(0) - , mDistance(0.0f) { - // empty - } - - Entry( unsigned int pIndex, const aiVector3D& pPosition, float pDistance,uint32_t pSG) - : mIndex( pIndex) - , mPosition( pPosition) - , mSmoothGroups(pSG) - , mDistance( pDistance) { - // empty - } - - bool operator < (const Entry& e) const { - return mDistance < e.mDistance; - } - }; - - // all positions, sorted by distance to the sorting plane - std::vector mPositions; -}; - -} // end of namespace Assimp - -#endif // AI_SPATIALSORT_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/SceneCombiner.h b/tools/ZAPD/lib/assimp/include/assimp/SceneCombiner.h deleted file mode 100644 index f69a25f43b..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SceneCombiner.h +++ /dev/null @@ -1,403 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Declares a helper class, "SceneCombiner" providing various - * utilities to merge scenes. - */ -#ifndef AI_SCENE_COMBINER_H_INC -#define AI_SCENE_COMBINER_H_INC - -#include -#include -#include -#include -#include -#include -#include - -#include - -struct aiScene; -struct aiNode; -struct aiMaterial; -struct aiTexture; -struct aiCamera; -struct aiLight; -struct aiMetadata; -struct aiBone; -struct aiMesh; -struct aiAnimMesh; -struct aiAnimation; -struct aiNodeAnim; - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** \brief Helper data structure for SceneCombiner. - * - * Describes to which node a scene must be attached to. - */ -struct AttachmentInfo -{ - AttachmentInfo() - : scene (NULL) - , attachToNode (NULL) - {} - - AttachmentInfo(aiScene* _scene, aiNode* _attachToNode) - : scene (_scene) - , attachToNode (_attachToNode) - {} - - aiScene* scene; - aiNode* attachToNode; -}; - -// --------------------------------------------------------------------------- -struct NodeAttachmentInfo -{ - NodeAttachmentInfo() - : node (NULL) - , attachToNode (NULL) - , resolved (false) - , src_idx (SIZE_MAX) - {} - - NodeAttachmentInfo(aiNode* _scene, aiNode* _attachToNode,size_t idx) - : node (_scene) - , attachToNode (_attachToNode) - , resolved (false) - , src_idx (idx) - {} - - aiNode* node; - aiNode* attachToNode; - bool resolved; - size_t src_idx; -}; - -// --------------------------------------------------------------------------- -/** @def AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES - * Generate unique names for all named scene items - */ -#define AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES 0x1 - -/** @def AI_INT_MERGE_SCENE_GEN_UNIQUE_MATNAMES - * Generate unique names for materials, too. - * This is not absolutely required to pass the validation. - */ -#define AI_INT_MERGE_SCENE_GEN_UNIQUE_MATNAMES 0x2 - -/** @def AI_INT_MERGE_SCENE_DUPLICATES_DEEP_CPY - * Use deep copies of duplicate scenes - */ -#define AI_INT_MERGE_SCENE_DUPLICATES_DEEP_CPY 0x4 - -/** @def AI_INT_MERGE_SCENE_RESOLVE_CROSS_ATTACHMENTS - * If attachment nodes are not found in the given master scene, - * search the other imported scenes for them in an any order. - */ -#define AI_INT_MERGE_SCENE_RESOLVE_CROSS_ATTACHMENTS 0x8 - -/** @def AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES_IF_NECESSARY - * Can be combined with AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES. - * Unique names are generated, but only if this is absolutely - * required to avoid name conflicts. - */ -#define AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES_IF_NECESSARY 0x10 - -typedef std::pair BoneSrcIndex; - -// --------------------------------------------------------------------------- -/** @brief Helper data structure for SceneCombiner::MergeBones. - */ -struct BoneWithHash : public std::pair { - std::vector pSrcBones; -}; - -// --------------------------------------------------------------------------- -/** @brief Utility for SceneCombiner - */ -struct SceneHelper -{ - SceneHelper () - : scene (NULL) - , idlen (0) - { - id[0] = 0; - } - - explicit SceneHelper (aiScene* _scene) - : scene (_scene) - , idlen (0) - { - id[0] = 0; - } - - AI_FORCE_INLINE aiScene* operator-> () const - { - return scene; - } - - // scene we're working on - aiScene* scene; - - // prefix to be added to all identifiers in the scene ... - char id [32]; - - // and its strlen() - unsigned int idlen; - - // hash table to quickly check whether a name is contained in the scene - std::set hashes; -}; - -// --------------------------------------------------------------------------- -/** \brief Static helper class providing various utilities to merge two - * scenes. It is intended as internal utility and NOT for use by - * applications. - * - * The class is currently being used by various postprocessing steps - * and loaders (ie. LWS). - */ -class ASSIMP_API SceneCombiner { - // class cannot be instanced - SceneCombiner() { - // empty - } - - ~SceneCombiner() { - // empty - } - -public: - // ------------------------------------------------------------------- - /** Merges two or more scenes. - * - * @param dest Receives a pointer to the destination scene. If the - * pointer doesn't point to NULL when the function is called, the - * existing scene is cleared and refilled. - * @param src Non-empty list of scenes to be merged. The function - * deletes the input scenes afterwards. There may be duplicate scenes. - * @param flags Combination of the AI_INT_MERGE_SCENE flags defined above - */ - static void MergeScenes(aiScene** dest,std::vector& src, - unsigned int flags = 0); - - // ------------------------------------------------------------------- - /** Merges two or more scenes and attaches all scenes to a specific - * position in the node graph of the master scene. - * - * @param dest Receives a pointer to the destination scene. If the - * pointer doesn't point to NULL when the function is called, the - * existing scene is cleared and refilled. - * @param master Master scene. It will be deleted afterwards. All - * other scenes will be inserted in its node graph. - * @param src Non-empty list of scenes to be merged along with their - * corresponding attachment points in the master scene. The function - * deletes the input scenes afterwards. There may be duplicate scenes. - * @param flags Combination of the AI_INT_MERGE_SCENE flags defined above - */ - static void MergeScenes(aiScene** dest, aiScene* master, - std::vector& src, - unsigned int flags = 0); - - // ------------------------------------------------------------------- - /** Merges two or more meshes - * - * The meshes should have equal vertex formats. Only components - * that are provided by ALL meshes will be present in the output mesh. - * An exception is made for VColors - they are set to black. The - * meshes should have the same material indices, too. The output - * material index is always the material index of the first mesh. - * - * @param dest Destination mesh. Must be empty. - * @param flags Currently no parameters - * @param begin First mesh to be processed - * @param end Points to the mesh after the last mesh to be processed - */ - static void MergeMeshes(aiMesh** dest,unsigned int flags, - std::vector::const_iterator begin, - std::vector::const_iterator end); - - // ------------------------------------------------------------------- - /** Merges two or more bones - * - * @param out Mesh to receive the output bone list - * @param flags Currently no parameters - * @param begin First mesh to be processed - * @param end Points to the mesh after the last mesh to be processed - */ - static void MergeBones(aiMesh* out,std::vector::const_iterator it, - std::vector::const_iterator end); - - // ------------------------------------------------------------------- - /** Merges two or more materials - * - * The materials should be complementary as much as possible. In case - * of a property present in different materials, the first occurrence - * is used. - * - * @param dest Destination material. Must be empty. - * @param begin First material to be processed - * @param end Points to the material after the last material to be processed - */ - static void MergeMaterials(aiMaterial** dest, - std::vector::const_iterator begin, - std::vector::const_iterator end); - - // ------------------------------------------------------------------- - /** Builds a list of uniquely named bones in a mesh list - * - * @param asBones Receives the output list - * @param it First mesh to be processed - * @param end Last mesh to be processed - */ - static void BuildUniqueBoneList(std::list& asBones, - std::vector::const_iterator it, - std::vector::const_iterator end); - - // ------------------------------------------------------------------- - /** Add a name prefix to all nodes in a scene. - * - * @param Current node. This function is called recursively. - * @param prefix Prefix to be added to all nodes - * @param len STring length - */ - static void AddNodePrefixes(aiNode* node, const char* prefix, - unsigned int len); - - // ------------------------------------------------------------------- - /** Add an offset to all mesh indices in a node graph - * - * @param Current node. This function is called recursively. - * @param offset Offset to be added to all mesh indices - */ - static void OffsetNodeMeshIndices (aiNode* node, unsigned int offset); - - // ------------------------------------------------------------------- - /** Attach a list of node graphs to well-defined nodes in a master - * graph. This is a helper for MergeScenes() - * - * @param master Master scene - * @param srcList List of source scenes along with their attachment - * points. If an attachment point is NULL (or does not exist in - * the master graph), a scene is attached to the root of the master - * graph (as an additional child node) - * @duplicates List of duplicates. If elem[n] == n the scene is not - * a duplicate. Otherwise elem[n] links scene n to its first occurrence. - */ - static void AttachToGraph ( aiScene* master, - std::vector& srcList); - - static void AttachToGraph (aiNode* attach, - std::vector& srcList); - - - // ------------------------------------------------------------------- - /** Get a deep copy of a scene - * - * @param dest Receives a pointer to the destination scene - * @param src Source scene - remains unmodified. - */ - static void CopyScene(aiScene** dest,const aiScene* source,bool allocate = true); - - - // ------------------------------------------------------------------- - /** Get a flat copy of a scene - * - * Only the first hierarchy layer is copied. All pointer members of - * aiScene are shared by source and destination scene. If the - * pointer doesn't point to NULL when the function is called, the - * existing scene is cleared and refilled. - * @param dest Receives a pointer to the destination scene - * @param src Source scene - remains unmodified. - */ - static void CopySceneFlat(aiScene** dest,const aiScene* source); - - - // ------------------------------------------------------------------- - /** Get a deep copy of a mesh - * - * @param dest Receives a pointer to the destination mesh - * @param src Source mesh - remains unmodified. - */ - static void Copy (aiMesh** dest, const aiMesh* src); - - // similar to Copy(): - static void Copy (aiAnimMesh** dest, const aiAnimMesh* src); - static void Copy (aiMaterial** dest, const aiMaterial* src); - static void Copy (aiTexture** dest, const aiTexture* src); - static void Copy (aiAnimation** dest, const aiAnimation* src); - static void Copy (aiCamera** dest, const aiCamera* src); - static void Copy (aiBone** dest, const aiBone* src); - static void Copy (aiLight** dest, const aiLight* src); - static void Copy (aiNodeAnim** dest, const aiNodeAnim* src); - static void Copy (aiMetadata** dest, const aiMetadata* src); - - // recursive, of course - static void Copy (aiNode** dest, const aiNode* src); - - -private: - - // ------------------------------------------------------------------- - // Same as AddNodePrefixes, but with an additional check - static void AddNodePrefixesChecked(aiNode* node, const char* prefix, - unsigned int len, - std::vector& input, - unsigned int cur); - - // ------------------------------------------------------------------- - // Add node identifiers to a hashing set - static void AddNodeHashes(aiNode* node, std::set& hashes); - - - // ------------------------------------------------------------------- - // Search for duplicate names - static bool FindNameMatch(const aiString& name, - std::vector& input, unsigned int cur); -}; - -} - -#endif // !! AI_SCENE_COMBINER_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/SkeletonMeshBuilder.h b/tools/ZAPD/lib/assimp/include/assimp/SkeletonMeshBuilder.h deleted file mode 100644 index f9b8d9f55c..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SkeletonMeshBuilder.h +++ /dev/null @@ -1,125 +0,0 @@ -/** Helper class to construct a dummy mesh for file formats containing only motion data */ - -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file SkeletonMeshBuilder.h - * Declares SkeletonMeshBuilder, a tiny utility to build dummy meshes - * for animation skeletons. - */ - -#ifndef AI_SKELETONMESHBUILDER_H_INC -#define AI_SKELETONMESHBUILDER_H_INC - -#include -#include - -struct aiMaterial; -struct aiScene; -struct aiNode; - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** - * This little helper class constructs a dummy mesh for a given scene - * the resembles the node hierarchy. This is useful for file formats - * that don't carry any mesh data but only animation data. - */ -class ASSIMP_API SkeletonMeshBuilder -{ -public: - - // ------------------------------------------------------------------- - /** The constructor processes the given scene and adds a mesh there. - * - * Does nothing if the scene already has mesh data. - * @param pScene The scene for which a skeleton mesh should be constructed. - * @param root The node to start with. NULL is the scene root - * @param bKnobsOnly Set this to true if you don't want the connectors - * between the knobs representing the nodes. - */ - SkeletonMeshBuilder( aiScene* pScene, aiNode* root = NULL, - bool bKnobsOnly = false); - -protected: - - // ------------------------------------------------------------------- - /** Recursively builds a simple mesh representation for the given node - * and also creates a joint for the node that affects this part of - * the mesh. - * @param pNode The node to build geometry for. - */ - void CreateGeometry( const aiNode* pNode); - - // ------------------------------------------------------------------- - /** Creates the mesh from the internally accumulated stuff and returns it. - */ - aiMesh* CreateMesh(); - - // ------------------------------------------------------------------- - /** Creates a dummy material and returns it. */ - aiMaterial* CreateMaterial(); - -protected: - /** space to assemble the mesh data: points */ - std::vector mVertices; - - /** faces */ - struct Face - { - unsigned int mIndices[3]; - Face(); - Face( unsigned int p0, unsigned int p1, unsigned int p2) - { mIndices[0] = p0; mIndices[1] = p1; mIndices[2] = p2; } - }; - std::vector mFaces; - - /** bones */ - std::vector mBones; - - bool mKnobsOnly; -}; - -} // end of namespace Assimp - -#endif // AI_SKELETONMESHBUILDER_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.h b/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.h deleted file mode 100644 index 92d65cea02..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Defines the helper data structures for importing 3DS files. -http://www.jalix.org/ressources/graphics/3DS/_unofficials/3ds-unofficial.txt */ - -#ifndef AI_SMOOTHINGGROUPS_H_INC -#define AI_SMOOTHINGGROUPS_H_INC - -#include -#include -#include - -// --------------------------------------------------------------------------- -/** Helper structure representing a face with smoothing groups assigned */ -struct FaceWithSmoothingGroup { - FaceWithSmoothingGroup() AI_NO_EXCEPT - : mIndices() - , iSmoothGroup(0) { - // in debug builds set all indices to a common magic value -#ifdef ASSIMP_BUILD_DEBUG - this->mIndices[0] = 0xffffffff; - this->mIndices[1] = 0xffffffff; - this->mIndices[2] = 0xffffffff; -#endif - } - - - //! Indices. .3ds is using uint16. However, after - //! an unique vertex set has been generated, - //! individual index values might exceed 2^16 - uint32_t mIndices[3]; - - //! specifies to which smoothing group the face belongs to - uint32_t iSmoothGroup; -}; - -// --------------------------------------------------------------------------- -/** Helper structure representing a mesh whose faces have smoothing - groups assigned. This allows us to reuse the code for normal computations - from smoothings groups for several loaders (3DS, ASE). All of them - use face structures which inherit from #FaceWithSmoothingGroup, - but as they add extra members and need to be copied by value we - need to use a template here. - */ -template -struct MeshWithSmoothingGroups -{ - //! Vertex positions - std::vector mPositions; - - //! Face lists - std::vector mFaces; - - //! List of normal vectors - std::vector mNormals; -}; - -// --------------------------------------------------------------------------- -/** Computes normal vectors for the mesh - */ -template -void ComputeNormalsWithSmoothingsGroups(MeshWithSmoothingGroups& sMesh); - - -// include implementations -#include "SmoothingGroups.inl" - -#endif // !! AI_SMOOTHINGGROUPS_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.inl b/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.inl deleted file mode 100644 index 84ea4a1b00..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SmoothingGroups.inl +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2012, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Generation of normal vectors basing on smoothing groups */ - -#ifndef AI_SMOOTHINGGROUPS_INL_INCLUDED -#define AI_SMOOTHINGGROUPS_INL_INCLUDED - -// internal headers -#include - -// CRT header -#include - -using namespace Assimp; - -// ------------------------------------------------------------------------------------------------ -template -void ComputeNormalsWithSmoothingsGroups(MeshWithSmoothingGroups& sMesh) -{ - // First generate face normals - sMesh.mNormals.resize(sMesh.mPositions.size(),aiVector3D()); - for( unsigned int a = 0; a < sMesh.mFaces.size(); a++) - { - T& face = sMesh.mFaces[a]; - - aiVector3D* pV1 = &sMesh.mPositions[face.mIndices[0]]; - aiVector3D* pV2 = &sMesh.mPositions[face.mIndices[1]]; - aiVector3D* pV3 = &sMesh.mPositions[face.mIndices[2]]; - - aiVector3D pDelta1 = *pV2 - *pV1; - aiVector3D pDelta2 = *pV3 - *pV1; - aiVector3D vNor = pDelta1 ^ pDelta2; - - for (unsigned int c = 0; c < 3;++c) - sMesh.mNormals[face.mIndices[c]] = vNor; - } - - // calculate the position bounds so we have a reliable epsilon to check position differences against - aiVector3D minVec( 1e10f, 1e10f, 1e10f), maxVec( -1e10f, -1e10f, -1e10f); - for( unsigned int a = 0; a < sMesh.mPositions.size(); a++) - { - minVec.x = std::min( minVec.x, sMesh.mPositions[a].x); - minVec.y = std::min( minVec.y, sMesh.mPositions[a].y); - minVec.z = std::min( minVec.z, sMesh.mPositions[a].z); - maxVec.x = std::max( maxVec.x, sMesh.mPositions[a].x); - maxVec.y = std::max( maxVec.y, sMesh.mPositions[a].y); - maxVec.z = std::max( maxVec.z, sMesh.mPositions[a].z); - } - const float posEpsilon = (maxVec - minVec).Length() * 1e-5f; - std::vector avNormals; - avNormals.resize(sMesh.mNormals.size()); - - // now generate the spatial sort tree - SGSpatialSort sSort; - for( typename std::vector::iterator i = sMesh.mFaces.begin(); - i != sMesh.mFaces.end();++i) - { - for (unsigned int c = 0; c < 3;++c) - sSort.Add(sMesh.mPositions[(*i).mIndices[c]],(*i).mIndices[c],(*i).iSmoothGroup); - } - sSort.Prepare(); - - std::vector vertexDone(sMesh.mPositions.size(),false); - for( typename std::vector::iterator i = sMesh.mFaces.begin(); - i != sMesh.mFaces.end();++i) - { - std::vector poResult; - for (unsigned int c = 0; c < 3;++c) - { - unsigned int idx = (*i).mIndices[c]; - if (vertexDone[idx])continue; - - sSort.FindPositions(sMesh.mPositions[idx],(*i).iSmoothGroup, - posEpsilon,poResult); - - aiVector3D vNormals; - for (std::vector::const_iterator - a = poResult.begin(); - a != poResult.end();++a) - { - vNormals += sMesh.mNormals[(*a)]; - } - vNormals.NormalizeSafe(); - - // write back into all affected normals - for (std::vector::const_iterator - a = poResult.begin(); - a != poResult.end();++a) - { - idx = *a; - avNormals [idx] = vNormals; - vertexDone[idx] = true; - } - } - } - sMesh.mNormals = avNormals; -} - -#endif // !! AI_SMOOTHINGGROUPS_INL_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/SpatialSort.h b/tools/ZAPD/lib/assimp/include/assimp/SpatialSort.h deleted file mode 100644 index 61b345bcbf..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/SpatialSort.h +++ /dev/null @@ -1,174 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** Small helper classes to optimise finding vertizes close to a given location */ -#ifndef AI_SPATIALSORT_H_INC -#define AI_SPATIALSORT_H_INC - -#include -#include - -namespace Assimp { - -// ------------------------------------------------------------------------------------------------ -/** A little helper class to quickly find all vertices in the epsilon environment of a given - * position. Construct an instance with an array of positions. The class stores the given positions - * by their indices and sorts them by their distance to an arbitrary chosen plane. - * You can then query the instance for all vertices close to a given position in an average O(log n) - * time, with O(n) worst case complexity when all vertices lay on the plane. The plane is chosen - * so that it avoids common planes in usual data sets. */ -// ------------------------------------------------------------------------------------------------ -class ASSIMP_API SpatialSort -{ -public: - - SpatialSort(); - - // ------------------------------------------------------------------------------------ - /** Constructs a spatially sorted representation from the given position array. - * Supply the positions in its layout in memory, the class will only refer to them - * by index. - * @param pPositions Pointer to the first position vector of the array. - * @param pNumPositions Number of vectors to expect in that array. - * @param pElementOffset Offset in bytes from the beginning of one vector in memory - * to the beginning of the next vector. */ - SpatialSort( const aiVector3D* pPositions, unsigned int pNumPositions, - unsigned int pElementOffset); - - /** Destructor */ - ~SpatialSort(); - -public: - - // ------------------------------------------------------------------------------------ - /** Sets the input data for the SpatialSort. This replaces existing data, if any. - * The new data receives new indices in ascending order. - * - * @param pPositions Pointer to the first position vector of the array. - * @param pNumPositions Number of vectors to expect in that array. - * @param pElementOffset Offset in bytes from the beginning of one vector in memory - * to the beginning of the next vector. - * @param pFinalize Specifies whether the SpatialSort's internal representation - * is finalized after the new data has been added. Finalization is - * required in order to use #FindPosition() or #GenerateMappingTable(). - * If you don't finalize yet, you can use #Append() to add data from - * other sources.*/ - void Fill( const aiVector3D* pPositions, unsigned int pNumPositions, - unsigned int pElementOffset, - bool pFinalize = true); - - - // ------------------------------------------------------------------------------------ - /** Same as #Fill(), except the method appends to existing data in the #SpatialSort. */ - void Append( const aiVector3D* pPositions, unsigned int pNumPositions, - unsigned int pElementOffset, - bool pFinalize = true); - - - // ------------------------------------------------------------------------------------ - /** Finalize the spatial hash data structure. This can be useful after - * multiple calls to #Append() with the pFinalize parameter set to false. - * This is finally required before one of #FindPositions() and #GenerateMappingTable() - * can be called to query the spatial sort.*/ - void Finalize(); - - // ------------------------------------------------------------------------------------ - /** Returns an iterator for all positions close to the given position. - * @param pPosition The position to look for vertices. - * @param pRadius Maximal distance from the position a vertex may have to be counted in. - * @param poResults The container to store the indices of the found positions. - * Will be emptied by the call so it may contain anything. - * @return An iterator to iterate over all vertices in the given area.*/ - void FindPositions( const aiVector3D& pPosition, ai_real pRadius, - std::vector& poResults) const; - - // ------------------------------------------------------------------------------------ - /** Fills an array with indices of all positions identical to the given position. In - * opposite to FindPositions(), not an epsilon is used but a (very low) tolerance of - * four floating-point units. - * @param pPosition The position to look for vertices. - * @param poResults The container to store the indices of the found positions. - * Will be emptied by the call so it may contain anything.*/ - void FindIdenticalPositions( const aiVector3D& pPosition, - std::vector& poResults) const; - - // ------------------------------------------------------------------------------------ - /** Compute a table that maps each vertex ID referring to a spatially close - * enough position to the same output ID. Output IDs are assigned in ascending order - * from 0...n. - * @param fill Will be filled with numPositions entries. - * @param pRadius Maximal distance from the position a vertex may have to - * be counted in. - * @return Number of unique vertices (n). */ - unsigned int GenerateMappingTable(std::vector& fill, - ai_real pRadius) const; - -protected: - /** Normal of the sorting plane, normalized. The center is always at (0, 0, 0) */ - aiVector3D mPlaneNormal; - - /** An entry in a spatially sorted position array. Consists of a vertex index, - * its position and its pre-calculated distance from the reference plane */ - struct Entry { - unsigned int mIndex; ///< The vertex referred by this entry - aiVector3D mPosition; ///< Position - ai_real mDistance; ///< Distance of this vertex to the sorting plane - - Entry() AI_NO_EXCEPT - : mIndex( 999999999 ), mPosition(), mDistance( 99999. ) { - // empty - } - Entry( unsigned int pIndex, const aiVector3D& pPosition, ai_real pDistance) - : mIndex( pIndex), mPosition( pPosition), mDistance( pDistance) { - // empty - } - - bool operator < (const Entry& e) const { return mDistance < e.mDistance; } - }; - - // all positions, sorted by distance to the sorting plane - std::vector mPositions; -}; - -} // end of namespace Assimp - -#endif // AI_SPATIALSORT_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/StandardShapes.h b/tools/ZAPD/lib/assimp/include/assimp/StandardShapes.h deleted file mode 100644 index 3791569b83..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/StandardShapes.h +++ /dev/null @@ -1,200 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Declares a helper class, "StandardShapes" which generates - * vertices for standard shapes, such as cylnders, cones, spheres .. - */ -#ifndef AI_STANDARD_SHAPES_H_INC -#define AI_STANDARD_SHAPES_H_INC - -#include -#include - -struct aiMesh; - -namespace Assimp { - -// --------------------------------------------------------------------------- -/** \brief Helper class to generate vertex buffers for standard geometric - * shapes, such as cylinders, cones, boxes, spheres, elipsoids ... . - */ -class ASSIMP_API StandardShapes -{ - // class cannot be instanced - StandardShapes() {} - -public: - - - // ---------------------------------------------------------------- - /** Generates a mesh from an array of vertex positions. - * - * @param positions List of vertex positions - * @param numIndices Number of indices per primitive - * @return Output mesh - */ - static aiMesh* MakeMesh(const std::vector& positions, - unsigned int numIndices); - - - static aiMesh* MakeMesh ( unsigned int (*GenerateFunc) - (std::vector&)); - - static aiMesh* MakeMesh ( unsigned int (*GenerateFunc) - (std::vector&, bool)); - - static aiMesh* MakeMesh ( unsigned int n, void (*GenerateFunc) - (unsigned int,std::vector&)); - - // ---------------------------------------------------------------- - /** @brief Generates a hexahedron (cube) - * - * Hexahedrons can be scaled on all axes. - * @param positions Receives output triangles. - * @param polygons If you pass true here quads will be returned - * @return Number of vertices per face - */ - static unsigned int MakeHexahedron( - std::vector& positions, - bool polygons = false); - - // ---------------------------------------------------------------- - /** @brief Generates an icosahedron - * - * @param positions Receives output triangles. - * @return Number of vertices per face - */ - static unsigned int MakeIcosahedron( - std::vector& positions); - - - // ---------------------------------------------------------------- - /** @brief Generates a dodecahedron - * - * @param positions Receives output triangles - * @param polygons If you pass true here pentagons will be returned - * @return Number of vertices per face - */ - static unsigned int MakeDodecahedron( - std::vector& positions, - bool polygons = false); - - - // ---------------------------------------------------------------- - /** @brief Generates an octahedron - * - * @param positions Receives output triangles. - * @return Number of vertices per face - */ - static unsigned int MakeOctahedron( - std::vector& positions); - - - // ---------------------------------------------------------------- - /** @brief Generates a tetrahedron - * - * @param positions Receives output triangles. - * @return Number of vertices per face - */ - static unsigned int MakeTetrahedron( - std::vector& positions); - - - - // ---------------------------------------------------------------- - /** @brief Generates a sphere - * - * @param tess Number of subdivions - 0 generates a octahedron - * @param positions Receives output triangles. - */ - static void MakeSphere(unsigned int tess, - std::vector& positions); - - - // ---------------------------------------------------------------- - /** @brief Generates a cone or a cylinder, either open or closed. - * - * @code - * - * |-----| <- radius 1 - * - * __x__ <- ] ^ - * / \ | height | - * / \ | Y - * / \ | - * / \ | - * /______x______\ <- ] <- end cap - * - * |-------------| <- radius 2 - * - * @endcode - * - * @param height Height of the cone - * @param radius1 First radius - * @param radius2 Second radius - * @param tess Number of triangles. - * @param bOpened true for an open cone/cylinder. An open shape has - * no 'end caps' - * @param positions Receives output triangles - */ - static void MakeCone(ai_real height,ai_real radius1, - ai_real radius2,unsigned int tess, - std::vector& positions,bool bOpen= false); - - - // ---------------------------------------------------------------- - /** @brief Generates a flat circle - * - * The circle is constructed in the planned formed by the x,z - * axes of the cartesian coordinate system. - * - * @param radius Radius of the circle - * @param tess Number of segments. - * @param positions Receives output triangles. - */ - static void MakeCircle(ai_real radius, unsigned int tess, - std::vector& positions); - -}; -} // ! Assimp - -#endif // !! AI_STANDARD_SHAPES_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/StreamReader.h b/tools/ZAPD/lib/assimp/include/assimp/StreamReader.h deleted file mode 100644 index 9116c14261..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/StreamReader.h +++ /dev/null @@ -1,343 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Defines the StreamReader class which reads data from - * a binary stream with a well-defined endianness. - */ - -#ifndef AI_STREAMREADER_H_INCLUDED -#define AI_STREAMREADER_H_INCLUDED - -#include -#include - -#include "ByteSwapper.h" -#include "Exceptional.h" -#include - -namespace Assimp { - -// -------------------------------------------------------------------------------------------- -/** Wrapper class around IOStream to allow for consistent reading of binary data in both - * little and big endian format. Don't attempt to instance the template directly. Use - * StreamReaderLE to read from a little-endian stream and StreamReaderBE to read from a - * BE stream. The class expects that the endianness of any input data is known at - * compile-time, which should usually be true (#BaseImporter::ConvertToUTF8 implements - * runtime endianness conversions for text files). - * - * XXX switch from unsigned int for size types to size_t? or ptrdiff_t?*/ -// -------------------------------------------------------------------------------------------- -template -class StreamReader { -public: - // FIXME: use these data types throughout the whole library, - // then change them to 64 bit values :-) - using diff = int; - using pos = unsigned int; - - // --------------------------------------------------------------------- - /** Construction from a given stream with a well-defined endianness. - * - * The StreamReader holds a permanent strong reference to the - * stream, which is released upon destruction. - * @param stream Input stream. The stream is not restarted if - * its file pointer is not at 0. Instead, the stream reader - * reads from the current position to the end of the stream. - * @param le If @c RuntimeSwitch is true: specifies whether the - * stream is in little endian byte order. Otherwise the - * endianness information is contained in the @c SwapEndianess - * template parameter and this parameter is meaningless. */ - StreamReader(std::shared_ptr stream, bool le = false) - : stream(stream) - , le(le) - { - ai_assert(stream); - InternBegin(); - } - - // --------------------------------------------------------------------- - StreamReader(IOStream* stream, bool le = false) - : stream(std::shared_ptr(stream)) - , le(le) - { - ai_assert(stream); - InternBegin(); - } - - // --------------------------------------------------------------------- - ~StreamReader() { - delete[] buffer; - } - - // deprecated, use overloaded operator>> instead - - // --------------------------------------------------------------------- - /** Read a float from the stream */ - float GetF4() - { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a double from the stream */ - double GetF8() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a signed 16 bit integer from the stream */ - int16_t GetI2() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a signed 8 bit integer from the stream */ - int8_t GetI1() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read an signed 32 bit integer from the stream */ - int32_t GetI4() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a signed 64 bit integer from the stream */ - int64_t GetI8() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a unsigned 16 bit integer from the stream */ - uint16_t GetU2() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a unsigned 8 bit integer from the stream */ - uint8_t GetU1() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read an unsigned 32 bit integer from the stream */ - uint32_t GetU4() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Read a unsigned 64 bit integer from the stream */ - uint64_t GetU8() { - return Get(); - } - - // --------------------------------------------------------------------- - /** Get the remaining stream size (to the end of the stream) */ - unsigned int GetRemainingSize() const { - return (unsigned int)(end - current); - } - - // --------------------------------------------------------------------- - /** Get the remaining stream size (to the current read limit). The - * return value is the remaining size of the stream if no custom - * read limit has been set. */ - unsigned int GetRemainingSizeToLimit() const { - return (unsigned int)(limit - current); - } - - // --------------------------------------------------------------------- - /** Increase the file pointer (relative seeking) */ - void IncPtr(intptr_t plus) { - current += plus; - if (current > limit) { - throw DeadlyImportError("End of file or read limit was reached"); - } - } - - // --------------------------------------------------------------------- - /** Get the current file pointer */ - int8_t* GetPtr() const { - return current; - } - - // --------------------------------------------------------------------- - /** Set current file pointer (Get it from #GetPtr). This is if you - * prefer to do pointer arithmetics on your own or want to copy - * large chunks of data at once. - * @param p The new pointer, which is validated against the size - * limit and buffer boundaries. */ - void SetPtr(int8_t* p) { - current = p; - if (current > limit || current < buffer) { - throw DeadlyImportError("End of file or read limit was reached"); - } - } - - // --------------------------------------------------------------------- - /** Copy n bytes to an external buffer - * @param out Destination for copying - * @param bytes Number of bytes to copy */ - void CopyAndAdvance(void* out, size_t bytes) { - int8_t* ur = GetPtr(); - SetPtr(ur+bytes); // fire exception if eof - - ::memcpy(out,ur,bytes); - } - - // --------------------------------------------------------------------- - /** Get the current offset from the beginning of the file */ - int GetCurrentPos() const { - return (unsigned int)(current - buffer); - } - - void SetCurrentPos(size_t pos) { - SetPtr(buffer + pos); - } - - // --------------------------------------------------------------------- - /** Setup a temporary read limit - * - * @param limit Maximum number of bytes to be read from - * the beginning of the file. Specifying UINT_MAX - * resets the limit to the original end of the stream. - * Returns the previously set limit. */ - unsigned int SetReadLimit(unsigned int _limit) { - unsigned int prev = GetReadLimit(); - if (UINT_MAX == _limit) { - limit = end; - return prev; - } - - limit = buffer + _limit; - if (limit > end) { - throw DeadlyImportError("StreamReader: Invalid read limit"); - } - return prev; - } - - // --------------------------------------------------------------------- - /** Get the current read limit in bytes. Reading over this limit - * accidentally raises an exception. */ - unsigned int GetReadLimit() const { - return (unsigned int)(limit - buffer); - } - - // --------------------------------------------------------------------- - /** Skip to the read limit in bytes. Reading over this limit - * accidentally raises an exception. */ - void SkipToReadLimit() { - current = limit; - } - - // --------------------------------------------------------------------- - /** overload operator>> and allow chaining of >> ops. */ - template - StreamReader& operator >> (T& f) { - f = Get(); - return *this; - } - - // --------------------------------------------------------------------- - /** Generic read method. ByteSwap::Swap(T*) *must* be defined */ - template - T Get() { - if ( current + sizeof(T) > limit) { - throw DeadlyImportError("End of file or stream limit was reached"); - } - - T f; - ::memcpy (&f, current, sizeof(T)); - Intern::Getter() (&f,le); - current += sizeof(T); - - return f; - } - -private: - // --------------------------------------------------------------------- - void InternBegin() { - if (!stream) { - // in case someone wonders: StreamReader is frequently invoked with - // no prior validation whether the input stream is valid. Since - // no one bothers changing the error message, this message here - // is passed down to the caller and 'unable to open file' - // simply describes best what happened. - throw DeadlyImportError("StreamReader: Unable to open file"); - } - - const size_t s = stream->FileSize() - stream->Tell(); - if (!s) { - throw DeadlyImportError("StreamReader: File is empty or EOF is already reached"); - } - - current = buffer = new int8_t[s]; - const size_t read = stream->Read(current,1,s); - // (read < s) can only happen if the stream was opened in text mode, in which case FileSize() is not reliable - ai_assert(read <= s); - end = limit = &buffer[read-1] + 1; - } - -private: - std::shared_ptr stream; - int8_t *buffer, *current, *end, *limit; - bool le; -}; - -// -------------------------------------------------------------------------------------------- -// `static` StreamReaders. Their byte order is fixed and they might be a little bit faster. -#ifdef AI_BUILD_BIG_ENDIAN - typedef StreamReader StreamReaderLE; - typedef StreamReader StreamReaderBE; -#else - typedef StreamReader StreamReaderBE; - typedef StreamReader StreamReaderLE; -#endif - -// `dynamic` StreamReader. The byte order of the input data is specified in the -// c'tor. This involves runtime branching and might be a little bit slower. -typedef StreamReader StreamReaderAny; - -} // end namespace Assimp - -#endif // !! AI_STREAMREADER_H_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/StreamWriter.h b/tools/ZAPD/lib/assimp/include/assimp/StreamWriter.h deleted file mode 100644 index c7cf6c0d74..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/StreamWriter.h +++ /dev/null @@ -1,303 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file Defines the StreamWriter class which writes data to - * a binary stream with a well-defined endianness. */ - -#ifndef AI_STREAMWRITER_H_INCLUDED -#define AI_STREAMWRITER_H_INCLUDED - -#include "ByteSwapper.h" -#include - -#include -#include - -namespace Assimp { - -// -------------------------------------------------------------------------------------------- -/** Wrapper class around IOStream to allow for consistent writing of binary data in both - * little and big endian format. Don't attempt to instance the template directly. Use - * StreamWriterLE to write to a little-endian stream and StreamWriterBE to write to a - * BE stream. Alternatively, there is StreamWriterAny if the endianness of the output - * stream is to be determined at runtime. - */ -// -------------------------------------------------------------------------------------------- -template -class StreamWriter -{ - enum { - INITIAL_CAPACITY = 1024 - }; - -public: - - // --------------------------------------------------------------------- - /** Construction from a given stream with a well-defined endianness. - * - * The StreamReader holds a permanent strong reference to the - * stream, which is released upon destruction. - * @param stream Input stream. The stream is not re-seeked and writing - continues at the current position of the stream cursor. - * @param le If @c RuntimeSwitch is true: specifies whether the - * stream is in little endian byte order. Otherwise the - * endianness information is defined by the @c SwapEndianess - * template parameter and this parameter is meaningless. */ - StreamWriter(std::shared_ptr stream, bool le = false) - : stream(stream) - , le(le) - , cursor() - { - ai_assert(stream); - buffer.reserve(INITIAL_CAPACITY); - } - - // --------------------------------------------------------------------- - StreamWriter(IOStream* stream, bool le = false) - : stream(std::shared_ptr(stream)) - , le(le) - , cursor() - { - ai_assert(stream); - buffer.reserve(INITIAL_CAPACITY); - } - - // --------------------------------------------------------------------- - ~StreamWriter() { - stream->Write(buffer.data(), 1, buffer.size()); - stream->Flush(); - } - -public: - - // --------------------------------------------------------------------- - /** Flush the contents of the internal buffer, and the output IOStream */ - void Flush() - { - stream->Write(buffer.data(), 1, buffer.size()); - stream->Flush(); - buffer.clear(); - cursor = 0; - } - - // --------------------------------------------------------------------- - /** Seek to the given offset / origin in the output IOStream. - * - * Flushes the internal buffer and the output IOStream prior to seeking. */ - aiReturn Seek(size_t pOffset, aiOrigin pOrigin=aiOrigin_SET) - { - Flush(); - return stream->Seek(pOffset, pOrigin); - } - - // --------------------------------------------------------------------- - /** Tell the current position in the output IOStream. - * - * First flushes the internal buffer and the output IOStream. */ - size_t Tell() - { - Flush(); - return stream->Tell(); - } - -public: - - // --------------------------------------------------------------------- - /** Write a float to the stream */ - void PutF4(float f) - { - Put(f); - } - - // --------------------------------------------------------------------- - /** Write a double to the stream */ - void PutF8(double d) { - Put(d); - } - - // --------------------------------------------------------------------- - /** Write a signed 16 bit integer to the stream */ - void PutI2(int16_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a signed 8 bit integer to the stream */ - void PutI1(int8_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write an signed 32 bit integer to the stream */ - void PutI4(int32_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a signed 64 bit integer to the stream */ - void PutI8(int64_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a unsigned 16 bit integer to the stream */ - void PutU2(uint16_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a unsigned 8 bit integer to the stream */ - void PutU1(uint8_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write an unsigned 32 bit integer to the stream */ - void PutU4(uint32_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a unsigned 64 bit integer to the stream */ - void PutU8(uint64_t n) { - Put(n); - } - - // --------------------------------------------------------------------- - /** Write a single character to the stream */ - void PutChar(char c) { - Put(c); - } - - // --------------------------------------------------------------------- - /** Write an aiString to the stream */ - void PutString(const aiString& s) - { - // as Put(T f) below - if (cursor + s.length >= buffer.size()) { - buffer.resize(cursor + s.length); - } - void* dest = &buffer[cursor]; - ::memcpy(dest, s.C_Str(), s.length); - cursor += s.length; - } - - // --------------------------------------------------------------------- - /** Write a std::string to the stream */ - void PutString(const std::string& s) - { - // as Put(T f) below - if (cursor + s.size() >= buffer.size()) { - buffer.resize(cursor + s.size()); - } - void* dest = &buffer[cursor]; - ::memcpy(dest, s.c_str(), s.size()); - cursor += s.size(); - } - -public: - - // --------------------------------------------------------------------- - /** overload operator<< and allow chaining of MM ops. */ - template - StreamWriter& operator << (T f) { - Put(f); - return *this; - } - - // --------------------------------------------------------------------- - std::size_t GetCurrentPos() const { - return cursor; - } - - // --------------------------------------------------------------------- - void SetCurrentPos(std::size_t new_cursor) { - cursor = new_cursor; - } - - // --------------------------------------------------------------------- - /** Generic write method. ByteSwap::Swap(T*) *must* be defined */ - template - void Put(T f) { - Intern :: Getter() (&f, le); - - if (cursor + sizeof(T) >= buffer.size()) { - buffer.resize(cursor + sizeof(T)); - } - - void* dest = &buffer[cursor]; - - // reinterpret_cast + assignment breaks strict aliasing rules - // and generally causes trouble on platforms such as ARM that - // do not silently ignore alignment faults. - ::memcpy(dest, &f, sizeof(T)); - cursor += sizeof(T); - } - -private: - - std::shared_ptr stream; - bool le; - - std::vector buffer; - std::size_t cursor; -}; - - -// -------------------------------------------------------------------------------------------- -// `static` StreamWriter. Their byte order is fixed and they might be a little bit faster. -#ifdef AI_BUILD_BIG_ENDIAN - typedef StreamWriter StreamWriterLE; - typedef StreamWriter StreamWriterBE; -#else - typedef StreamWriter StreamWriterBE; - typedef StreamWriter StreamWriterLE; -#endif - -// `dynamic` StreamWriter. The byte order of the input data is specified in the -// c'tor. This involves runtime branching and might be a little bit slower. -typedef StreamWriter StreamWriterAny; - -} // end namespace Assimp - -#endif // !! AI_STREAMWriter_H_INCLUDED diff --git a/tools/ZAPD/lib/assimp/include/assimp/StringComparison.h b/tools/ZAPD/lib/assimp/include/assimp/StringComparison.h deleted file mode 100644 index 8acef277b9..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/StringComparison.h +++ /dev/null @@ -1,233 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Definition of platform independent string workers: - - ASSIMP_itoa10 - ASSIMP_stricmp - ASSIMP_strincmp - - These functions are not consistently available on all platforms, - or the provided implementations behave too differently. -*/ -#ifndef INCLUDED_AI_STRING_WORKERS_H -#define INCLUDED_AI_STRING_WORKERS_H - -#include -#include -#include "StringComparison.h" - -#include -#include -#include - -namespace Assimp { - -// ------------------------------------------------------------------------------- -/** @brief itoa with a fixed base 10 - * 'itoa' is not consistently available on all platforms so it is quite useful - * to have a small replacement function here. No need to use a full sprintf() - * if we just want to print a number ... - * @param out Output buffer - * @param max Maximum number of characters to be written, including '\0'. - * This parameter may not be 0. - * @param number Number to be written - * @return Length of the output string, excluding the '\0' - */ -AI_FORCE_INLINE -unsigned int ASSIMP_itoa10( char* out, unsigned int max, int32_t number) { - ai_assert(NULL != out); - - // write the unary minus to indicate we have a negative number - unsigned int written = 1u; - if (number < 0 && written < max) { - *out++ = '-'; - ++written; - number = -number; - } - - // We begin with the largest number that is not zero. - int32_t cur = 1000000000; // 2147483648 - bool mustPrint = false; - while (written < max) { - - const unsigned int digit = number / cur; - if (mustPrint || digit > 0 || 1 == cur) { - // print all future zeroe's from now - mustPrint = true; - - *out++ = '0'+static_cast(digit); - - ++written; - number -= digit*cur; - if (1 == cur) { - break; - } - } - cur /= 10; - } - - // append a terminal zero - *out++ = '\0'; - return written-1; -} - -// ------------------------------------------------------------------------------- -/** @brief itoa with a fixed base 10 (Secure template overload) - * The compiler should choose this function if he or she is able to determine the - * size of the array automatically. - */ -template -AI_FORCE_INLINE -unsigned int ASSIMP_itoa10( char(& out)[length], int32_t number) { - return ASSIMP_itoa10(out,length,number); -} - -// ------------------------------------------------------------------------------- -/** @brief Helper function to do platform independent string comparison. - * - * This is required since stricmp() is not consistently available on - * all platforms. Some platforms use the '_' prefix, others don't even - * have such a function. - * - * @param s1 First input string - * @param s2 Second input string - * @return 0 if the given strings are identical - */ -AI_FORCE_INLINE -int ASSIMP_stricmp(const char *s1, const char *s2) { - ai_assert( NULL != s1 ); - ai_assert( NULL != s2 ); - -#if (defined _MSC_VER) - - return ::_stricmp(s1,s2); -#elif defined( __GNUC__ ) - - return ::strcasecmp(s1,s2); -#else - - char c1, c2; - do { - c1 = tolower(*s1++); - c2 = tolower(*s2++); - } - while ( c1 && (c1 == c2) ); - return c1 - c2; -#endif -} - -// ------------------------------------------------------------------------------- -/** @brief Case independent comparison of two std::strings - * - * @param a First string - * @param b Second string - * @return 0 if a == b - */ -AI_FORCE_INLINE -int ASSIMP_stricmp(const std::string& a, const std::string& b) { - int i = (int)b.length()-(int)a.length(); - return (i ? i : ASSIMP_stricmp(a.c_str(),b.c_str())); -} - -// ------------------------------------------------------------------------------- -/** @brief Helper function to do platform independent string comparison. - * - * This is required since strincmp() is not consistently available on - * all platforms. Some platforms use the '_' prefix, others don't even - * have such a function. - * - * @param s1 First input string - * @param s2 Second input string - * @param n Macimum number of characters to compare - * @return 0 if the given strings are identical - */ -AI_FORCE_INLINE -int ASSIMP_strincmp(const char *s1, const char *s2, unsigned int n) { - ai_assert( NULL != s1 ); - ai_assert( NULL != s2 ); - if ( !n ) { - return 0; - } - -#if (defined _MSC_VER) - - return ::_strnicmp(s1,s2,n); - -#elif defined( __GNUC__ ) - - return ::strncasecmp(s1,s2, n); - -#else - char c1, c2; - unsigned int p = 0; - do - { - if (p++ >= n)return 0; - c1 = tolower(*s1++); - c2 = tolower(*s2++); - } - while ( c1 && (c1 == c2) ); - - return c1 - c2; -#endif -} - - -// ------------------------------------------------------------------------------- -/** @brief Evaluates an integer power - * - * todo: move somewhere where it fits better in than here - */ -AI_FORCE_INLINE -unsigned int integer_pow( unsigned int base, unsigned int power ) { - unsigned int res = 1; - for ( unsigned int i = 0; i < power; ++i ) { - res *= base; - } - - return res; -} - -} // end of namespace - -#endif // ! AI_STRINGCOMPARISON_H_INC diff --git a/tools/ZAPD/lib/assimp/include/assimp/StringUtils.h b/tools/ZAPD/lib/assimp/include/assimp/StringUtils.h deleted file mode 100644 index d68b7fa479..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/StringUtils.h +++ /dev/null @@ -1,143 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ -#ifndef INCLUDED_AI_STRINGUTILS_H -#define INCLUDED_AI_STRINGUTILS_H - -#include - -#include -#include -#include - -/// @fn ai_snprintf -/// @brief The portable version of the function snprintf ( C99 standard ), which works on visual studio compilers 2013 and earlier. -/// @param outBuf The buffer to write in -/// @param size The buffer size -/// @param format The format string -/// @param ap The additional arguments. -/// @return The number of written characters if the buffer size was big enough. If an encoding error occurs, a negative number is returned. -#if defined(_MSC_VER) && _MSC_VER < 1900 - - AI_FORCE_INLINE - int c99_ai_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) { - int count(-1); - if (0 != size) { - count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); - } - if (count == -1) { - count = _vscprintf(format, ap); - } - - return count; - } - - AI_FORCE_INLINE - int ai_snprintf(char *outBuf, size_t size, const char *format, ...) { - int count; - va_list ap; - - va_start(ap, format); - count = c99_ai_vsnprintf(outBuf, size, format, ap); - va_end(ap); - - return count; - } - -#else -# define ai_snprintf snprintf -#endif - -/// @fn to_string -/// @brief The portable version of to_string ( some gcc-versions on embedded devices are not supporting this). -/// @param value The value to write into the std::string. -/// @return The value as a std::string -template -AI_FORCE_INLINE -std::string to_string( T value ) { - std::ostringstream os; - os << value; - - return os.str(); -} - -/// @fn ai_strtof -/// @brief The portable version of strtof. -/// @param begin The first character of the string. -/// @param end The last character -/// @return The float value, 0.0f in cas of an error. -AI_FORCE_INLINE -float ai_strtof( const char *begin, const char *end ) { - if ( nullptr == begin ) { - return 0.0f; - } - float val( 0.0f ); - if ( nullptr == end ) { - val = static_cast< float >( ::atof( begin ) ); - } else { - std::string::size_type len( end - begin ); - std::string token( begin, len ); - val = static_cast< float >( ::atof( token.c_str() ) ); - } - - return val; -} - -/// @fn DecimalToHexa -/// @brief The portable to convert a decimal value into a hexadecimal string. -/// @param toConvert Value to convert -/// @return The hexadecimal string, is empty in case of an error. -template -AI_FORCE_INLINE -std::string DecimalToHexa( T toConvert ) { - std::string result; - std::stringstream ss; - ss << std::hex << toConvert; - ss >> result; - - for ( size_t i = 0; i < result.size(); ++i ) { - result[ i ] = toupper( result[ i ] ); - } - - return result; -} - -#endif // INCLUDED_AI_STRINGUTILS_H diff --git a/tools/ZAPD/lib/assimp/include/assimp/Subdivision.h b/tools/ZAPD/lib/assimp/include/assimp/Subdivision.h deleted file mode 100644 index 43feb73b30..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Subdivision.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Defines a helper class to evaluate subdivision surfaces.*/ -#pragma once -#ifndef AI_SUBDISIVION_H_INC -#define AI_SUBDISIVION_H_INC - -#include -#include - -struct aiMesh; - -namespace Assimp { - -// ------------------------------------------------------------------------------ -/** Helper class to evaluate subdivision surfaces. Different algorithms - * are provided for choice. */ -// ------------------------------------------------------------------------------ -class ASSIMP_API Subdivider { -public: - - /** Enumerates all supported subvidision algorithms */ - enum Algorithm { - CATMULL_CLARKE = 0x1 - }; - - virtual ~Subdivider(); - - // --------------------------------------------------------------- - /** Create a subdivider of a specific type - * - * @param algo Algorithm to be used for subdivision - * @return Subdivider instance. */ - static Subdivider* Create (Algorithm algo); - - // --------------------------------------------------------------- - /** Subdivide a mesh using the selected algorithm - * - * @param mesh First mesh to be subdivided. Must be in verbose - * format. - * @param out Receives the output mesh, allocated by me. - * @param num Number of subdivisions to perform. - * @param discard_input If true is passed, the input mesh is - * deleted after the subdivision is complete. This can - * improve performance because it allows the optimization - * to reuse the existing mesh for intermediate results. - * @pre out!=mesh*/ - virtual void Subdivide ( aiMesh* mesh, - aiMesh*& out, unsigned int num, - bool discard_input = false) = 0; - - // --------------------------------------------------------------- - /** Subdivide multiple meshes using the selected algorithm. This - * avoids erroneous smoothing on objects consisting of multiple - * per-material meshes. Usually, most 3d modellers smooth on a - * per-object base, regardless the materials assigned to the - * meshes. - * - * @param smesh Array of meshes to be subdivided. Must be in - * verbose format. - * @param nmesh Number of meshes in smesh. - * @param out Receives the output meshes. The array must be - * sufficiently large (at least @c nmesh elements) and may not - * overlap the input array. Output meshes map one-to-one to - * their corresponding input meshes. The meshes are allocated - * by the function. - * @param discard_input If true is passed, input meshes are - * deleted after the subdivision is complete. This can - * improve performance because it allows the optimization - * of reusing existing meshes for intermediate results. - * @param num Number of subdivisions to perform. - * @pre nmesh != 0, smesh and out may not overlap*/ - virtual void Subdivide ( - aiMesh** smesh, - size_t nmesh, - aiMesh** out, - unsigned int num, - bool discard_input = false) = 0; - -}; - -inline -Subdivider::~Subdivider() { - // empty -} - -} // end namespace Assimp - - -#endif // !! AI_SUBDISIVION_H_INC - diff --git a/tools/ZAPD/lib/assimp/include/assimp/TinyFormatter.h b/tools/ZAPD/lib/assimp/include/assimp/TinyFormatter.h deleted file mode 100644 index 1226b482e6..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/TinyFormatter.h +++ /dev/null @@ -1,166 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file TinyFormatter.h - * @brief Utility to format log messages more easily. Introduced - * to get rid of the boost::format dependency. Much slinker, - * basically just extends stringstream. - */ -#ifndef INCLUDED_TINY_FORMATTER_H -#define INCLUDED_TINY_FORMATTER_H - -#include - -namespace Assimp { -namespace Formatter { - -// ------------------------------------------------------------------------------------------------ -/** stringstream utility. Usage: - * @code - * void writelog(const std::string&s); - * void writelog(const std::wstring&s); - * ... - * writelog(format()<< "hi! this is a number: " << 4); - * writelog(wformat()<< L"hi! this is a number: " << 4); - * - * @endcode */ -template < typename T, - typename CharTraits = std::char_traits, - typename Allocator = std::allocator -> -class basic_formatter -{ - -public: - - typedef class std::basic_string< - T,CharTraits,Allocator - > string; - - typedef class std::basic_ostringstream< - T,CharTraits,Allocator - > stringstream; - -public: - - basic_formatter() {} - - /* Allow basic_formatter's to be used almost interchangeably - * with std::(w)string or const (w)char* arguments because the - * conversion c'tor is called implicitly. */ - template - basic_formatter(const TT& sin) { - underlying << sin; - } - - - // The problem described here: - // https://sourceforge.net/tracker/?func=detail&atid=1067632&aid=3358562&group_id=226462 - // can also cause trouble here. Apparently, older gcc versions sometimes copy temporaries - // being bound to const ref& function parameters. Copying streams is not permitted, though. - // This workaround avoids this by manually specifying a copy ctor. -#if !defined(__GNUC__) || !defined(__APPLE__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) - explicit basic_formatter(const basic_formatter& other) { - underlying << (string)other; - } -#endif - - -public: - - operator string () const { - return underlying.str(); - } - - - /* note - this is declared const because binding temporaries does only - * work for const references, so many function prototypes will - * include const basic_formatter& s but might still want to - * modify the formatted string without the need for a full copy.*/ - template - const basic_formatter& operator << (const TToken& s) const { - underlying << s; - return *this; - } - - template - basic_formatter& operator << (const TToken& s) { - underlying << s; - return *this; - } - - - // comma operator overloaded as well, choose your preferred way. - template - const basic_formatter& operator, (const TToken& s) const { - underlying << s; - return *this; - } - - template - basic_formatter& operator, (const TToken& s) { - underlying << s; - return *this; - } - - // Fix for MSVC8 - // See https://sourceforge.net/projects/assimp/forums/forum/817654/topic/4372824 - template - basic_formatter& operator, (TToken& s) { - underlying << s; - return *this; - } - - -private: - mutable stringstream underlying; -}; - - -typedef basic_formatter< char > format; -typedef basic_formatter< wchar_t > wformat; - -} // ! namespace Formatter - -} // ! namespace Assimp - -#endif diff --git a/tools/ZAPD/lib/assimp/include/assimp/Vertex.h b/tools/ZAPD/lib/assimp/include/assimp/Vertex.h deleted file mode 100644 index 2a7f0256ad..0000000000 --- a/tools/ZAPD/lib/assimp/include/assimp/Vertex.h +++ /dev/null @@ -1,348 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ -/** @file Defines a helper class to represent an interleaved vertex - along with arithmetic operations to support vertex operations - such as subdivision, smoothing etc. - - While the code is kept as general as possible, arithmetic operations - that are not currently well-defined (and would cause compile errors - due to missing operators in the math library), are commented. - */ -#ifndef AI_VERTEX_H_INC -#define AI_VERTEX_H_INC - -#include -#include -#include -#include - -namespace Assimp { - - /////////////////////////////////////////////////////////////////////////// - // std::plus-family operates on operands with identical types - we need to - // support all the (vectype op float) combinations in vector maths. - // Providing T(float) would open the way to endless implicit conversions. - /////////////////////////////////////////////////////////////////////////// - namespace Intern { - template struct plus { - TRES operator() (const T0& t0, const T1& t1) const { - return t0+t1; - } - }; - template struct minus { - TRES operator() (const T0& t0, const T1& t1) const { - return t0-t1; - } - }; - template struct multiplies { - TRES operator() (const T0& t0, const T1& t1) const { - return t0*t1; - } - }; - template struct divides { - TRES operator() (const T0& t0, const T1& t1) const { - return t0/t1; - } - }; - } - -// ------------------------------------------------------------------------------------------------ -/** Intermediate description a vertex with all possible components. Defines a full set of - * operators, so you may use such a 'Vertex' in basic arithmetics. All operators are applied - * to *all* vertex components equally. This is useful for stuff like interpolation - * or subdivision, but won't work if special handling is required for some vertex components. */ -// ------------------------------------------------------------------------------------------------ -class Vertex -{ - friend Vertex operator + (const Vertex&,const Vertex&); - friend Vertex operator - (const Vertex&,const Vertex&); - -// friend Vertex operator + (const Vertex&,ai_real); -// friend Vertex operator - (const Vertex&,ai_real); - friend Vertex operator * (const Vertex&,ai_real); - friend Vertex operator / (const Vertex&,ai_real); - -// friend Vertex operator + (ai_real, const Vertex&); -// friend Vertex operator - (ai_real, const Vertex&); - friend Vertex operator * (ai_real, const Vertex&); -// friend Vertex operator / (ai_real, const Vertex&); - -public: - - Vertex() {} - - // ---------------------------------------------------------------------------- - /** Extract a particular vertex from a mesh and interleave all components */ - explicit Vertex(const aiMesh* msh, unsigned int idx) { - ai_assert(idx < msh->mNumVertices); - position = msh->mVertices[idx]; - - if (msh->HasNormals()) { - normal = msh->mNormals[idx]; - } - - if (msh->HasTangentsAndBitangents()) { - tangent = msh->mTangents[idx]; - bitangent = msh->mBitangents[idx]; - } - - for (unsigned int i = 0; msh->HasTextureCoords(i); ++i) { - texcoords[i] = msh->mTextureCoords[i][idx]; - } - - for (unsigned int i = 0; msh->HasVertexColors(i); ++i) { - colors[i] = msh->mColors[i][idx]; - } - } - - // ---------------------------------------------------------------------------- - /** Extract a particular vertex from a anim mesh and interleave all components */ - explicit Vertex(const aiAnimMesh* msh, unsigned int idx) { - ai_assert(idx < msh->mNumVertices); - position = msh->mVertices[idx]; - - if (msh->HasNormals()) { - normal = msh->mNormals[idx]; - } - - if (msh->HasTangentsAndBitangents()) { - tangent = msh->mTangents[idx]; - bitangent = msh->mBitangents[idx]; - } - - for (unsigned int i = 0; msh->HasTextureCoords(i); ++i) { - texcoords[i] = msh->mTextureCoords[i][idx]; - } - - for (unsigned int i = 0; msh->HasVertexColors(i); ++i) { - colors[i] = msh->mColors[i][idx]; - } - } - -public: - - Vertex& operator += (const Vertex& v) { - *this = *this+v; - return *this; - } - - Vertex& operator -= (const Vertex& v) { - *this = *this-v; - return *this; - } - - -/* - Vertex& operator += (ai_real v) { - *this = *this+v; - return *this; - } - - Vertex& operator -= (ai_real v) { - *this = *this-v; - return *this; - } -*/ - Vertex& operator *= (ai_real v) { - *this = *this*v; - return *this; - } - - Vertex& operator /= (ai_real v) { - *this = *this/v; - return *this; - } - -public: - - // ---------------------------------------------------------------------------- - /** Convert back to non-interleaved storage */ - void SortBack(aiMesh* out, unsigned int idx) const { - - ai_assert(idxmNumVertices); - out->mVertices[idx] = position; - - if (out->HasNormals()) { - out->mNormals[idx] = normal; - } - - if (out->HasTangentsAndBitangents()) { - out->mTangents[idx] = tangent; - out->mBitangents[idx] = bitangent; - } - - for(unsigned int i = 0; out->HasTextureCoords(i); ++i) { - out->mTextureCoords[i][idx] = texcoords[i]; - } - - for(unsigned int i = 0; out->HasVertexColors(i); ++i) { - out->mColors[i][idx] = colors[i]; - } - } - -private: - - // ---------------------------------------------------------------------------- - /** Construct from two operands and a binary operation to combine them */ - template

*@S;)~lwSobs}yQ= zJ-VF)x;!L3x(~Z_6brPRECC(Q?b2Dy@$v`AvQFdU&S2ACf(9A8&%X}i@4E;J{BF=4 z9OqoR93)*qlOP`5ZXBQmH6Gw)Ehj+BT0kBsfh=orL0#730$$bvk}u8bK5t#2P?HSu zF(?x%xOA4NXuMVivq2}ua(i?;2tWk+Ji1>TcToY|tjplh%>dG0a^1zERI*gmx>lh^ zz@t<9xHIU=bB1Hi0*tRM_(21+AYXw7XJ2cASRl7@dUP6tJosANqmvoxyVu+vokqu; z1Q=a9i(rS;Wq@YLK<9otID${a2aT_T!Vf&Kq~Oub=-K_DIf;V-G)T}1YF2_KDy3d) zdGvZKcz{ki369itO1V0_>;k4I;`0O<0029Iv(PIvGzMI{#?bpoX1gmx0Z zWj3gUPyjE{Xa;3JDbOiQ9vY7U^&-Y0F-kL=7ZPPDlqH<6>c8g zpaZ8hz&Y4ifZ>G@NVfaFN9+I69S}=V%1)5qAQx-E+iJeuAHdDEo5ue;L9>(Hj6RSy z8Yj4Q#pP-Jp^ViN)p8Vs+^ zLCvsv9uRxs4Lk{t|DudXzzw{T6=3JRJ_1rW2NWU!;5k^RDa@xqP2=nTMHd|gwb#x+ zL20k)9wFQ`26tTHC-6d>#-O-`tPKPo9S`YoDEM?23V7^>)xsX#hh4jVdTJj7op)q? zh`(t&I0Q2#e0x>IJiD)WG@s)4u)YjBIQuMUs_)`U(A2i|3-IbpO^@zd9@ZB;_?>Qe z^m;SC;GYUAqFg{HUVrfEOcwy%@zfbF0V*_`{|XeTfoAl&FTXJQ1-i{Kl+mrj#>}Jp zw9_#cGe(9N_vU~!o4=L^jcxIRm4v7SK-8Rvs(CaWRIY+M0pQbpLB|b)5B7BgU61nO z@O`v$50uapkS8ZFeec`-63O?VlS)8GhI{tvh^E)0bN9uqf!9&JvcByRUk7pLrqs z6BH<6jE=`xbQnM_taGzL2a4Oj)&Paa{~yR|KmGuz4N(bzDn9?>(pcAMoUXCxEyho_2%; zkOJ7#NCC8V7E%D+`wk8usM;^z(F14&C~0;hryMK+)O;5lK=8H#G{=C?;=c)R_tbk> zU*K<_$pG5UU&-O4ZRr8NT!9<3d zLCqQPEeaW4y*w5k-Pb&|uY*p{GXbrK0$p}+4BAq7@s0sYLtyJnkiU&Rds)mt$Dn%l zvecH zOJmSR6p-UU^ZB&!Do?z@wMN95e?8t;3-G(q0)s z(0nczIElh~n-DorkFEQbkM=?1OD}GGHD&;Rdqw{WfmVX~K6qjE#TYb1b_TSv6?8(X zhxIA`mNnoB=Sz;=4l5x1Jnr69SW~`eXJb>N_j!Y z9(Ox%fX#mE(|rJJgirSYxDmeH2jND5+}axc|Ns9DjNtW5AbtyEp%}vLpy_4MIJbf$ zzn+5ve-~&vV$gZQ5AF$go`AGJ;dv13H_+M8bmE4=6u0}Xxf zxAcJoyP=D5F^d(+6FJQ0y%pf~JU>9u z3tp)6)}#9e)QBHQM*Q^Xh8baf@1^(u|No5+yk^?K2ug~m3vr0>r-G%k0^FY(9=+Zg zFTTA2wX}z%Kf&wL9Ki8;3pCK{HR3Lz6vo$^#Gn@fA2_o+g zk+*@%bD+xWL*!-P@-NVU7!&gw4>d%dqIM* zqw8fMJn+k4`rZ@R8u4m6M&InH8k_z(Gwo zaJ(v@y9cz_=0!~>$Z9nA%Hng# z+sqg|dRg_rDw#c+lQS5OJA;n11|2d5N?4HHRPb}G!54CO-}HbU#D0vC;YHjPP_rJ^ zmI2M%BaQ2U*C@lUrSt)y-4}EwM*Y*EDxNDOy z0O}ut`*-JF#JvHvszOviO zc0ka$hJQ@#zYS90p*;`PfOai>z4iaDcL2}U8@#tmM0P97HFVNY9sPUD%1sq>> z$3QU)iLd750<_2iMK5IN0^GKC3t*ZeCfyG(Hm;XsCU_P#T1Gp-~oC6FYd4 z%Xh&G{zss$2;$zR6`%n}F7QUV7yiAV^Wy4DH-O^07h=itv!Fqr!vZhM!B>$T2i@8P zI*N@{|S)3W~fJRj><}p#y60$BG$)$d>A~8k9c&tx`V3x zUe>BZpfG1_PW=uVl4hNK!i)jriT}r4*+B>3eBu}2&4-Bj@*j5^tpL_JWx_flGzK3kJ4t@SY_22*h z;A6Hyr?)aNFnqB00IhcFbk^`_PIdrYr|AL8TF0D0lgr5g;0{E$uREw0bMFo)<GJ?BAm9ciIo)-jvDgOoyzJLf#($>O{iEAd%`i z$1cc?bT@Z`OYtU<;oT=d&NMJS07^AHE?vh#L;o!QL2Hj7hvh@Ij)E#J$mk!WF9wQn z@R|Fe`^>PM*RS{j)OBZl08SC0g|47!muScwmH~KP2fShNCTOmR$)lH-e;+96fL7B& z&i&^PKX42*atm%bfGz;I@EmMlKeB7;A53q1G z{_oRS$>9S!$hxyq!lRewkKRfRpU!##pU!#-P;NYQ7!(SE)e!$c(`g+!YTNcyR-~*!6_tK2Vi~lhtwjfHs#0+er z_1|K7k6w3#VSfcc35MCFgU7<9qsD>}9D3kvaQelSSD<3>ut%@xq=TR;z(*zFg~8+h z|0nqLvQ~gZx-WoIlfw&l&@%1r8!tASFfqWxR~kG|d*a116Yy$(&?G772!CGaDouwM ztR0~7ni`b=kK-;X5ujqkrK1M4pE?AzCJ$-lUc!r8?Vxl6y80P%Ul*u+sk;FwUqELp zL(3O<8JncVzyK*@A;k>nqP*re3g7{&myr6uIZ=Y)h0($P|0i_2DRjCjbi1i^x~h0| zyJ>iIx@vT}8FaWBc=X0vfGRc*kKQl~PkmP>0VEXh zf(Np0)!P6jl<^`Hq_NwrqSLhk)XD%4xPdZ%Tr6n+4Q!o;1V{s9ai?eZN5}3P;3_i_ zw5A&5+Li$KYYfcm-Xm=u-*KEpqq|CSBi87NJ3C3gF*#V ziVAvk3xQ^4Ji2`(JU}b|PnK|k7x!?0r%t?BENdhMN;N&YeIx@wb&8CK_30Av|DtbJ zfeI1ugbPRoX#3M^W{2&J4jpxnei3M8HDX&Cc-0LrVNsV$JtJpQZlfZPF^n}fzfBdE>q(Hq$SO1{YfEFQhA2ls%Y zwuK8U(+yDokx}1c#^BQ11d?#+Y~d;ax1dgYbTYq?1YeAF`oHLtm7vnczXOyw4M5di zyvKjl{FP>)!7)&{!qQkHsO^esuP3+`Y~cdSbVC$C>|MVbY%fRxWN!+>-i4~5_Q2`? zqB+>?ZHL$k4HMA5-o1#da{J|#p+ey72TjsIS?~ICt|eTE)fMqYLEgG19YAE=@*R_YKatVT3)>gl(Mkjvw{ehUe@W`L5UcAuT*!S2W&Fc(*QJ?`nVBf2B@9cTg~Bd z+!@i<1homU1m-+&C?GDGS=5Len4krkh&1%FwGl0jZh|)Yd2+m%aSoIKsyRR_>P11# z7WZY)74;xa+DedYum#kq{||X|dn>%KfH)PjV#68S^gQManlcU+@BnQST=($*e@N;8 zRq5bMctFMLOD2#LzJzjURT7wEr$lYGufeBELb$fb%;vl{O z90w7gwtfOA;~#VOVDRWhzi8P4qRax+vzGyN@R9CW2Hi{74cT082udD4z0MpjoIx78 zgC#t)gE>HV*nkgI{ZtRO40MQZGN{%|mH_S80i{AjI%_^?@gi;}s5=lW0d^`ksLk{L z(2K1Q%>p2oqFzu0KL6~Eh6gCO;#fopO3ZLOUZfra&opy+baVd~J-QS;!Xb=vRUjzG zgVuk8$|Cr@au{T2X0KxRUY z#R1O;2Y`wM&|K2t&-?<6{CZ6MU0*==cD8~h(m*5dEc|*-Ec{*f!GfU4OpqW4zn&8Z zf7dCn;1STd@caUfJp6i2Jp5gtp?v;U&>|p^N&$X7CjtI0&|D3F>nx~B5q>=<5&o`j zu=ZA{paj33lSEZjX$44|48NX}OjT}aHi)CZujiytl~5W7;;8WJIjK|ymj;438vJ@r z8dYwkE+CE$zn+s$m1U_ph-1L7=VVZ&Q>q2xnDFa4nN-P_%7Qo+{CZ9nRYIkp+Z-Hi z`1PD@s#r^zA(IiHlP%I0JBQ9Kns$(Pxy3S^y$9o z*?rK*nz2+2bh=F^7pNBX?LOhzeE>ATUUCOyR;k2m(2)lMpaWSzt8XBq^q)OIst-Z> zX$l^_GeILXpyJjUG`I@tjvP^l_V}-QVv!kxN3!D|5A72#c|bD-P&QaOsJsM?XF}#3 zx_^1}ZUohr9^E%zw1AhCo&GP{zQ~LLd}uK5t`{Kv-REBHSpq5?z}fy7s7(hOumz=4 zXr0;1x_pZn1L%ewMvv~FFP6!Hbe#V$TDZszdSGw`*s$|2@)3r?4h#mHgXS(!eF}0{ z3d~*a7sA~IUe45g?u81%C>-tr%`x755%U{!Z^Dbk;Jpb2pgr1m7K2<1Ug8017C_t5 zaKCY{2h}a0>pr_7=O912VGQ*a=p=AZ(KrKa1~`mh-h#~!JAw|Lg`5_{>iHVp`P~3s zd-c%~v`Frg59nMoLC^{=k8V&|4OtiG1L`4w7QPYfY1vSD0L5*z+K?(b1tA|7uP_YI)fK!pa1`#;0ZcF?4SU6>QC^6^fhol z!bc_J#huBZ5;z2O^3^YaB3P%+;DtdI=wt=)ZYPIc55`U}2aoO^6;OzQdTeJ-f#!rItw#Z^ECA0m7kG5DUU>-(bXU;2Jdf^=KD|`}p3U~m{7s*kKvD0h z03P@N^z8hY+O$Jpgpiu_j10L4CCyEszqYSPGJbGO>cr@3Z0ELL_2GB6W zF&7TdO$V;V2ON6?7{S`N-vW6QX*k8Vo8PzfWQmq%uOnz2+|&A)55Lm^ALfIvIee@S zmI!(NKjGM5pJp`QnIY*foDP`(435mWjO zY6d@Os}civA0g;eDc|0L|32F1J(^P=fV}+z;_V9zp8vs%#zD~@APws1qC~k*x9bD2 zmmH)(a^2`r8e0zXDLA3Pg9SA1%lJQlqvZg9%PP=`OQ0aLzER@g)9VXSg%bo*`qHN>u! zft=y{0hE)PjvF&T7xqRwcyPqWhuv)c+ePYw^!>dJ-XRIqv@biDI`3)e|U7d9`NW6eE{_m zsL||u;srCvOU3((9{ z0EdtDkJ51CZ?3IRN&+04|1*_}@^9yUQE=Iqq1*RGnl*PxPMY-39vmy8)&50uz=GT;Ay%+dNw(FUX2pr$k*=<*NnSWEYL z$NvIdhdsJ|e}E!@@t85FWtspD^tkBQ!uJ%EX<{upVO=lPx7#b|!^S6R7q-m&R+|Az#D&`w1nfCLy zf(rE)7K)&az9&3-McLMyF}#pe03C9{?AhzV3|cewLb3>ycpz6pY9I9I4fuP^bpeBi z^@U|)8t-|G7R|Nj?H@X-JfZW;wa@flxPyqId zx~~OiqYE#@KqIQ)%BI(M#S0zKEvvnvjPJY{JV1Q23!oW$&^|@jJ~;`{{AQ?Qh$G}+ ziQbG3kH$9vpzPYsy66!sAvu7T?`H}a|2O{T(wi>e+xnKjMGH4~+5B_F*h<+r!hdjCum$G{NKmK|@lIY=5 zS&#q6u^Yi!_k!0=zRYC5Q4cfzqt#O}o|&=EY{Cmg#%>=|FIg>XE2Mbp=qF}(N%K9wg_ z0c4lOiwB^x{{^2M6Dav8_*kY|c9YBM|0{6P~H0hQup2frQ#be)@=c`C40j(JbHa^ykI#6YSr?$ z^n#L8Z|Dus?9CU@!oB9&7YzI@WsD3Au15bsNb}yvy;&bv^J1|!GnMC!D3dA|A${c0_%k7*bb__t#6d5qKGam2NfF!e0seZ zp;_<7i<82jrHgEy-Jp|{9J)S0G}L|o+3b7cMIOkY?i*;L5g<`!*B2hvH~3rjFfcGU z?f}iWdi07`tpKIb)Bi<9XM)Z!E9LZPKFs_QbZR4-5uzX?tZ$SmIPL&V>U#8wI>WTy zngQ0z=FxnZ>2+j-wSI|igLO=ahC`RNL&Ja7QfD-yPJt@aZr>Lk+NV935587$=rDHZ z`sZTxuT&D;?hU;F((s~Q7}R=}@c4h)q08E(>%YhU!!JPtMxK!7@C}b;N-%%#LK6(= zG!W3HNziClC+LtL&|SG6pu2LNKwHK6TR@`|9{*2(8qc2A2SLjVp)E>Ci|{QT5UO;L5*^%dt0b zf5R_H=Ux^L{%t25`Q1-CckqaL{y*eneYNzSM{}A0185#w!=pJ(f&sKO%Jh^m!)tk{ zgy_o!W(*$3-N3_G9^L1Tu`#^J+6XF)j)9KR^8htL>h^+yJO^>=O@Lz@bbcK)-388{ zpvGR`9cXZadQqRi5vt(PU18zTeZGsmx=m-6V0 zeE>>Apsm=x7hd$9G-f#FB71@1wXje3NpNX&*#p$RE+~dH3NLu{h8_U9$jwg==-c+yG$Co9<4C1?!X zLBOY*!N>YQiJ7D21W*^al-;qR!hxZb)wi4B^)t`z2n)w%2b2G$f}k<#UeFq==7Rz+ z#6anw8*+FMWCRbgj!3|xvjC%xo#D~=#sO4Zb+g*thJ~jAX77JBBLjm=cd~&a|E@P& z4OK1-F8nUZ2B0lOKHUZ$y}=RaM>d6k_SE+Vdq9qOf{qi~F9jVBl%3((yA3q{;|UrS z^ys$p>2~J;4Ha~sdvUV>w5I~;XtgvB2A3`u6$Q_3@WF$O>7Y@;;0p9JoD!G*|Np{A z9CU0Rf9p!nAj*F+Sbem2Dd;X9F(w9h^{nyY;!RNO^@@Vzz**qMa?q5iM=xk#85F+{kSZ3oVG7&_5P0!F6O{2% z6+o2+WTTWTC~Np`c(D?6gLkj*hX10g`^^|UyV=3Ef(i^!B`f6GeFStU=?k}&pkkXJ zG$i+8(lXFV5Y86IoE;cnsDhl)4Qe!SgM20j=E4R(_*+9k6>7Jy0VppS?Sj;jpeV*& zOJek;K!X(eH(|-)hc9S@%P&wR*m{Y-1#}oPxM#WnJWv4c3V^#Zpi`IlTc?6V6kS4^(CJ9NH(o@8RDlX? zpI%o;feq?`-SFrQ-Qm$(djTBoJHWYJ0%56PT6oS5P?$T68#JBDf|+sf3Y@m;f>Yr4rr; z(;5oVinkI*Hp&%bRJZR5^h)>{tP+O!^cOcuCHx##34>w~6!VWj_pzh5reLujyBgG> z>h@D0E%qVfbiOxUbf$sQST|_o>z4qm!Mo!{Q5qh4B+K4X)wQed>h} zXau&?J;3-j_@GPBeg@F;#O`b0PQHY1_i@m2lwKbdhZo7W|Noz`6WrgGSPxmor2t>X zCC3aZ$ZmiJr4>Mgfk!vH4@jF2XyY@)G!KNy0uw;xnZt|kPas~_0qycu0CoDo2hF)K zBh9iE_ksq7KxVx-@#O!1(BfCbsOGn=;89JGk3nGs+GYeA2k4AZQ2?!>g7?#MR3>;d zz9|6bHrAh4paJ8W;M)DtxBCI;FaZUR?pq$+KfAYH0Ppem4;zc|Wny6P>8uU#IPMBv zCR6L+(JQ)k4yb$N>+m9AC8W-E@Mx}$5C9be4v66#pu!L zYv9p~tfzxT@R*ArBg1Q9m#!0t!A^x2r;h&r@A3b*XY(7z(v2Ryp>TUZy~oopwjKaA zQNTwMxi;*5z`(%3P$KMMeYk{=f1k(y|Dwjd;KE0<0d#yJ0|S4{B2aV7`Zs^eOa=yq zF8BX7ypVkpHeCEIZJG-(|Nl>L1l`5~T4UHP0$vJc z@uCAX^Vl2e0Mh30B98~u9+<-i?r}qsC#cKq0P1p=@j}`IXesf1BFtj}j=kml9-XBT zE*+rs?t9?H^t+(OhVOy@qBGmg7#y}UdUT_Q%Z5a7LN@T|ECnYRkJj7#E#JUZ{plC0 zI~f>WzWfJTLjfuwI6&iZkU2H*Ss0*kdC+!i(0m_g3_=ogpcW_vm3sU?;n95ZzXy2K z{)8v<>DL^d)~8EiJ^r6;u+%I4?5Ta)qxt9m5+6@U^TfAX$g?+!(S!LWc*VPPHz@u~ zv_O+R0^kHnf^5J6E;ks|`C`$5&z$1ae{QkD&jubGS>Cu|_k+=0e{zzqqH{|OF| z{y4}F3ZdbSVW0)q&2KW1_n?&6f^*D{Q*3BX!u&M%mB142{dxp zea*xALm8hBXgs|8{EL%E|Nnn2>>p)lAcvy!ElyDwnV(|Fy&heTDX1pEfsu*ZLA#Vey4F^8#BHF;S zyVwFWCLR|L+FK`jX%;Bi`d)ak@;o>lgZsfdUhD^LBj^>Katl1zw&TUgJ;tDmC`Bj3 zlvklBp8!#w3R6A{r2IwIB5-=@J`(EDo3R7hPXM1O(#FS_Eutx5?{qgw$~z8-T0 zoeJ)|;)MxlTBp}{#eY#VkR{!|8lZwgXuUB5zs437(3Vut6={qN44`=iP#p(4mIk~W zk^{Du8(hENgq|7#s^JB~KvgXGgqHyDLi+=tF=>x(?iXrDK|V!0(Bo|^sBdHK1=`Ho z>C6G%)C$_i3tKb^UdI4gtMSdT0Cdb|iK$1oqXTHuTr24GjBe)$k7NN4=8LcSJi46& zKxEr9TvQZ%y3axFzDr%v zc3*sJ<@u(Xs>7Jg$Z)k_OehZXj1O9|!MO1MeU}-dy?O z#9vTp0a;^@RR4fn0^0v@6UBWVAjdfh_*fq=N(NmYp?w@uB_l02M|K``xw((_anPt2 z^Tij>!EJYB$E{5I|K9_r~e59e5Nr`;y-w` z%t8KLnG)QPHNT*NMaY6$*jXtG-y92=z=6o$s?W&4(ERH^_&z^1a1913A1pk&9V0xF zIXsxpgKAv`59^=Bpg8+48dz_};Lu?JT^gU!ee5OZVjxg?u@^M5=hJQBseRt#`+X1T z{~pReJ*@v0$$B(`>PdT06{utXnh$j0T)l_&U;bv$PGHa(QIdh6?(K0~F zm0q9{sM|TfrPJWGCP=`i+dIRjn*roRU+v?*%*R}{Pe9fBbb^EfTsk?roeNelmhgE% z4*#AK@&A9fb3yY7Mvv~(oz4aSMWgD#-hRpR|NnpR&IfS0g1#3GbeJGCP2{LR@{>om zqXp=E#7iiBR<`Q7CxYy?C9XzeZ#Zc4qD`M zd0Kj96tj4CdS!TaJ4twUXJxo_gU$o({t8-_qy5>n^<+teWAjVK5`M?#pN#yipsRB{ zx{tkfb?iRS{D9epnZE^eM2_RP1B@kNpyPQsK@G>&X$+uV&v6g!!>^?sza3!WZvhXK zww^3y^=Q3aTIJDw@bx3(13t_*e5~)4XZyC^E)fHp!3s)W(I71)te|Pg0KZ-ykO_<> zf*=_l-%dV9?U$b2P63@7U{zWmRjQudPN4MZ+3n=u!OY>=?WEwSebS>-0we&s#HrgU zqLag?Qwnru1lNBL$k|6RDgwp_Kw&2VDj5|({a6jiHCl&2Bf_9IBQz`v1Uxz`Bz!sx zK*znnLedemf;fW1ms!HI+YEbv`gVI|cywDp3P&I78|4`wpNfEPlxGDs;WN9waUV66f{pWOLO%0rI9xCkIFoZf~CO=(K=%lK~V8=-veRFh+#~us zi6FKf-Hs98B09?2FU9n8PLYg_*Fmy04cDZPl;1gg-i8D2xq@xT7UIR;drffukj zfR3$?KYYfg+tb3gn-R2DD9{6Jpnxay1t04}#jK9}+ZYam-P&xyPy%s>u19xZhKIF) z2fvemr}c$0S&z=Z4A5x~os8NSK>9lcATH(L-^O^j`NV&4yQP=4v(Jp-utzWJMkpOQ z!HmJ9lMysf4Za@%bVzHbqksqK*oiZco!q^wCLl%N-MAo?2SNH3K|-C3pm2xXx#c7P zx1+5M^c8RNG@OeGc`y_G+FdU-*o9)i|bfUfm>Q8LGvq4gW+T3LRN zUJ*}^UXiOD;0$>FMPV&CBfge=(fJuuy_i1%JWMPAI?oE!gFXE}Kw<)zBks{16aeb81t@@TD1k)__&i`x*lhs$ zwKEWOZ4S8qMc^D>(30~P0^Xnotvg3Icc+H}c&&4%hX!c&2XZj5svjs7fVQt61n=~A zcp;1s0q;I{c){pL%t5;dKZEX>>a0t0&SKDsWTo65 z-Iqbbm(M{YZ}%zCb+4dcIQY`uU*?M*plo%ijL#FK`t*x*SvBV zWh5wWKqrWTdLrP)3b?^}29)tLKnWb$27#>h{^imA5ov3&^@Va*k6xJ|kAsg{KuML| z6J**6P}2}}bOG~Wk4`tRegn{s4hm;*aToxZ7zHg_wX>ecm*dI_Jz&BTereMMQk-%Byqd#c7wu=flK)_RV-RD2^*Sn|~yl4XL zYze9bGQb0fpwpqjmpHsQJqg^f_UOd8(gXQC%TJ(#ED!!;276nZ5p)+B{9H?U zPixpkOTD0OrKf<0Hn+#YpUjX0tiTQMLmt-PGpvri=Jx1i;qtIP=E3iD3>1JFAl=}r zdwqIsK=<@9fbLTfbq9GC-1V*S>oxh{+3m~V2|DZpwCMr;#7hluVuPM|>Ba#%@lrGr z(LomQ=my=B47tJV1So-aT6^^JdDkL;@6qWk;Msi))ICLv;zb{RadYDT|7Tuw zgGf+Y;2>z1fHc1VgCoBnL$`;3NAm#@$4(Cc&*lRn9@d9SpL%v50F~$PHUp^ebbucc z;?e1G!=uyVflsHy3s5EiwVz)wtz}?nPS#-XXg+KJN^u$^K7fJfJSGzeg|2B#&Mh(DnoH>2WQtpt6`9w4k}uoddMX7<6AYXwDSW zCw_4kG*So}o&sleP*)T*Cwx&2dAc8-4IR92PF`@T0NQ%NxX*lS~KPkGweb{D$a(n*FpL;`nZ~mP0RV zG9>&U?g6O=@5|guNIe#}G~(2g4|63rULtX-`wnpn#B8`*G;yk*4p9$rJ0vW-oTNG& zrT7J$WcURgW%vcWbod25b@&CGZ1@EoZTJPeeE0=DeY%`tIvis_Hekem8?J!rf>`E( zCH`A5;~%Fn!H}?k`O!(i1GIM^()R0RwZ*CLH^h3FzJs84crPn2PW7`f)kDVdKJg1M zd34|W#4pGQN)6421VGpAf>vqV`3)&JAS*P$>0oUuuHe`Wi4`>W)RL&)7pMAcn9mM^ z?v>I2Ehho*t7I1k)xSqT`zk?ay@N00=;nOs1KtCJnz|uwLzD>+|AX7zpbdDS%P5=# zKsgxPh;BY8@nRlmJPEY#AAA!JSS2WMpe=OdbOug4pzuSIhuDXdKhfkN`awEDbptlH zVwZ#HBQt%YxdGxvk8b322MHIP=>k-T3HpG{=@tT?Gymc;XaONSn80mwr13Qmq`rp< zwC^z$yhfUR7ifUz#gBe)-$U4=TioN|BUX>*LmZ$vh@S9tQ4v=zC zl@^x|k^)z0*!vxbHY;YoXX;|m`fPS^C+0;B#BOnqZj63UCEWhx#ZdcU{hoVyWY}*A z^?PqL#C{9V5}-eQV807^WQ$wCJk9{OI4K%xF-R@QaFey*Yz3j@5L z+tUjUZ*1}12@YG3-`|U}K++p5zTf3g;P=`^NPg#m*pD9Wyl}hy7oqvRh!VR`E=96? zLJ!#Q=yp#82QJ9pvzMaT{Vkgef5XCE@Grz}P$0e#f!K{L+y&wG-~R)(AEX78=E}&i zAC~5}N-%@t9h87yOzFnz_o?8(1^K;Qf*BI$Amt#te`QhN_pKWseg~g-Cjqe=?sudz zP84o`^9HEjL0UleSCL~stc)?0hxi>-ZoHV$1@=2i88ZhQvLKIh$wNI3QVX(}5tqey z${1Lj_i94y)c}=k3J`mt{_aE`Q<8;SAFTQU*?;yios9?8S6>j%&U8ui7%0YH_Wl-SnT6-kB zS9Dqf(N3)xc61xSF?bg9=w=Uf7$98CTPf91l->~%dum<99P=WDcLp#{t z(Da5fhPf8(L6G0q*FfzDX#s`15b^d`a(MKzKB@yZfx(kqprJMJDHV-83=H4~1*qY2 zAPsbMDC^EDkV0mMZ^sx*cy|eaM^jI~SPYT`9|eIjiwbFTdGxY2gLHwKqm17UF_v(F zFI;_*2i64ZP=fOzXkPxsFkrLRCswm|E3t*gu!UWC15WPsf7rqd3Zl7^fN4qA?*+6`J;tN^;s z40KXNf&jxY7nKC?*kS@`Wl_Q#@D<$OJi6svjla2AmI{>FdUU%=cy-%+09_u*=(rQK z#ondcoyDU&TmTdSsvAKG;QWifubCM>^9wp_IQ~Bd8q9F9E)^&`?Aaa9u@e+{FBY~z zmK`R5+`;G3%NtP(3SbV8&H~W6n4n>WUeP6$pk*DWK?8B1%PSza4#dU2On3$A%YbG~ zMH?&47$E0pzVvzp8d2zWgq&pr9uAZUMcE4tzV5FZa?i@aAI!VtLD2}B5qR;AlYzl; z4=5EmcAt5{0(P9M0q6*!10`Ibpjhh2!~nWR{kTV`s{v@$h2uW(kUHo{Y)+3(CLhLP z$Z{G3P$=ww0~!)O^I~@^$d|4LAWwpg5kofya>_M^0d-IVs?ZJi>44@A90u6F`Trks zV5~X15nam6s9wQg#IM)?|L+6UBi-j-d}=}SNU8*JhHQNeimG!jHliC4;ZK}LN?!l} z@3yk4R{kvoC`9b2Be@Hz|6!#RFtZ}`u~3?s7>-h5#0!%<-~d7$xBEmJZM4-h5u#5 zd15ixfb%crqZ_a)i#Qh~K@EsQH$YO2I2R~F4Uk1QK%<>F7d&|J|NlBT!A&zc9lo@eexb+<3g=-CH zVQ_acabB1SHsJh=sptlLm_nQZ5nuz(ya)jq0A4j+qQD=1!1w^aARBl_sQcWD4$zT` zy{w$Ypz4JURD^%`=qv>n;jnVg2(|EL0-JjN#lLzqf62}u&RGYafdc0Ii@oRuIPeo^ zKm*u-GcRh;4e)&@p%x`|S)rz`CE#rm;Co_9R6vunu=QNr2$NV(-w2@`0F{7jdl z#9`2}iJ+nBm$&^uO`J2I`2{^CKx4#^HInePM0+6qbq4hEr3>K8mjoe~t{evKdTO?309}It8djU+aqtn-i;2dd6=~`W z9?j{XrenGQgNOCqawCskmf6U&L~+`nQVKNn)5-1unhpX@5`mhsp!J&I3E&sjWuRHL zS`Z0sH+M$~xEh}X&2x4iaxn8io?bhpzV z$4(c)Kiy1Doh)1)y+Irvy-t5TtPhqx1+R$*9Rz>v#Z*>MU*g1TdCy*+ldna(nH@VB zeS1AQx}8}(nh$e0b~^s?u)bIN+yiuF0c4&Lw7>wItPty$GT{4A9l_l!pYA{oaQ?9L z?7ra9{n11FvTyef&)t@Nk1hHhTkv^;b~&8_O^0fq_vt?6dGIGQXua0K7xq5PCp^0k zdwhTC(|ySE;16cdZK?-f+WRmc^tC=wR_xL3CjgQMt#3rjUOv{R$^^l;f}VTvSOerM zJ6Gca-n}{pJPtl(@nC-KVSTqm+C%%dM=y^&=#C*h&^4ruhe1b+dRX5rec{s$n#Mi{ zUIKac#S9jZ5iedlc=zg@gqZN&)A~N>UOCVPr57JS+tM44gLOj;@wC2Q`pBm{jKin< z7@3)XxbECVqE8ohpy=)DM9H2VhBx5Xd5;4% z=;`(5@ag3>;ALRg1!{M=^g11W5mpM?oB|0r&_bVEkQ@Lu<;)q7IbL9MK09JL^6WnFnh&%- ztdqf``2Yv_k^}2grEkIOq)_uF$WRAQ@a5AU-LE{le|mIA-0mJsk{ zJ`4(-`G+A(U%C$>-4Fw-19DU#18ShKQoysW$k3zvF8DgW(=U<~@vaam1}{Sc9mD|2 z!Q#mK!!P=?!EG~8c7dEv3o0WNz+nPf#D4&^@)xvb0ClZZ257C7_BD?kuqFnm zadGe$Got!Hy4&0OLV18kugoRbQb!pDP#fxi2crE9YC3n;fL8XM2N?|NcKv%8e0=17p zYs7*)dS$>3O3*N9f;`^f_JunedkT1=0C6_Bo+2Ta+hfN%_lH#?>)aV3PS3mru1~v9zgQ(lIK+2>R@2}M@zhMvI#YQ643tg?uE|RV zhc~?Hg{{d0Rju&wo(Tb9M|*qp%1rV&_?Q(G)?Z}thV@#wgK>oQmJDzbfrK?IMZcIg z13XCZITbWW!0yqU9s%m{C4h(w=%hk5$l~rBprxAzkj2Q|Ctl0~Wwc(%jWPx=dO*C+ z_ymvU^a2Kt=H;NXWf(k;w}a|&@TN)k3Xm}9h!zkHI{lboX9Q@lRt}rtwjkr+hUJ_A1= z=jMw^pu2&4S>J=hg4y_hN2hawN2ha!N2havN2hazM`tsrsP^atA0O+{*$ncYM`ttG zWu46+UwL#kgYD>S2D#6pvl(<7kVj`T=$rzN&SvoCz@5#YeeWKf&EV6AJDb7#r#hR# zXa06JgYHW8=xhevWA4$}EC5>W-PtSwp+HxzdUQ5}E*1CaYzA*J?QFJy$bk-I0ri~0 z%fCS77t$3O;NB4E7B2w?@Ks(fQer{3c{nR{x+{3}`fGqX$QIqs8l8+Dy}<^c+Wv*o zU(oVmXAgcscMpC6?+AWD{|J5o=L~*9_Y8gk?+SiF|B5bfICQjwVjCK&&~g;ox9w%M zjs#8cfX}Q4trKcK$niqM1f1d~LP8ntWYE|MtYqzU1l^944^{!Xz5=v=!Y~<>Lcu&( zoZ(#a^x_NX=0L;}C!{!bgV??qY#QPM4rpBj*`5o{9H0{>UWl21`ue@BT3`+A-Odr6 z?hzin!3iF{{s}J*`~b;zgOY}OMK?Hgbhd-jNbh8DsPy)Os23*2Aa%Wy!AYdIA4I+2 z_ze*Qr;y%$5cQ(v=l}oR;Kb6|4o))N&?M6iN;zHNgwxRuN{H7dRz# zw1d)9SMy8It+4GN5*jDajbe~EK@GD`M~+YY0!}=i_yrw#x}8Ki9YsKV2@qeR+ex9* zQK8#O#iRLgjCbW#c!_&X!MKq#bmId$p#D_&B+!Z!U1%WKk6y^`4Bar z-BQkw-BQe;lTJZr@O$*KHYR}6E99Ip_F@x+^&v>LnRK_guI`&O12w zqFxnLoSokVSz=-Tf?eVNe~_Y*+aBF~V9^&}K*d>iaDfNto**8NZtn=txwrQ~qM*Ik zpq(nmoeRJvuX6+gq-789vAkS17gQ4eY4&fY@0OwgiYB2VpCK*g+t6@9qp11_sFdYB&E2JFr+i zhez`}#?p5ljfXW@7#Mm%H?wfRPy)+Eb9jK3$-hJM39Ri3b4zz4$Ucwmo2>^*GCjIG zK{kSX7Hj;!^*~9GM|U?^q}${tXwRL6M|U6C-TT}??(PHWeX$9`2D#wHGB*Z>T^8Uz z;JFtw!4hBt{vWsA4N_dR?nSd314DN+NOkLhl0c8{ZUd0=){`Z!U@NU)B2X(8U{-pA zj0Oc1=-@Xyh|wUeAfrL16&-t_0X7 zZ#`M!2o5$gmkEaV!he_|J|SpJlw#e*V~}eS)toq z19ab@^{Eon6~ABKf+}-&4}L*s4}Jmv2!28D2z~+g41Pi941NLs3VuQFiY{<9-T|)C zL6tIiUllx!K<kLYxc@aT0<@UZ?+V&~DF!2vqyu=}b{ zH=C#SHIHsL0Z;7%9@ZDixIt-BQV29+%I4916*L*qEDov@PP`CS0(AmFm-)I^c=S#O zH7-1QyTMeab453}?E!72qNM_d7u-UihSzjZ`MT3N*oa zfOlkpE{}w^$56{6_?}qU`oXC`K)H_{vg#@!5xkxZynYaAKWw5CC_5j2E$z|E`ZfYw zC%1lst<*Z=0FuO9nT}Zw!tI8w*}OSl8oXW=+>3dV0Ja;nW-|huR=Ur>c;N^#8?=aR z-F#^V@Pc@dT2NQc7l*ar^hdzYjt?OAf_e=vav=5!dt{1(_%N$;;Z_SjfLaZf?mqqE zl0C>(m_9y(X}2YO(VU@2cR#qMoC4O}532lLbU@gk+UiA(J-nto|03U>fdRUV4!nY@ z`}B(#uv$<7h_Z|hVke|D0k^hw;#r`#j)0S1_xTq}V4dJf3wrAaIBt;i+?WDePX}7} z0$S1c&JN^9e0ts(utV+f0QH`_&%fA3P>;zsm^~9fBk$ekU$kM@0~!htfH)9*rxB!e z1S;QQwZ`9{pmfU&*-x<|4pwVG_fnjGvDTh}VFEM=A&rFdFC@X1fro!kH&GzM!=qc! z_&<2RX7^1G?L(j~o1k@RMjqWfzd+XWd2};^TMGXJ!1v`ftNdaBpFS?^(e2Cu(_#Ii z=p3kggZ_-~OTr-3Zn= zZla8EJpx)T2U?p1S}tdeZp=Rq;*9xs7_!LWR}7k0mYVSs<&M3F|Nq|y8tdpj_hKu$ zA%Bc{h%%%C?27X*O3)4HmuDl&0Q19;7%@gS;8H&)Q3iZF^#A`(P~rIELo`}QnBSBp z%81Q}KtXx_#d>rD`ecaRc7f~Ux^5Fmfj(b71oMZRd7xU4L;j$wxPLd9S0`%;QICKLF zmlGGDickY&(G6HpPF$2eH~?|Mok+Bhh@VQF0rQ~-%tklhkri=eRUG&Lv2!n?&P-PD)HCaK%KvvC(yLKN3O@^L$!IT54htIuu z^OCsAV9!2~o6f)35snrvpL>W4-fFM`XI_+}8}P}HxEyN*HNXtrfXo`=g7xQKkQdIp z_!@@hg&qguT(D#B|NlEdy^j~0(2aP=OI+Dix))TRftpmHn8^ki)BORw2EX+{i9I}a zQnDbi^R6B|YRbCE57d-r^XRP0@Hp-U9_n)FsEhFE?E{sAFS4co|DOP=(h02v{kG@- z|DB-QBwl<7MGJ(_pZJK%CY$#_LUBF10ajCpt4fQ&2AqA7hi<^nE5sRK2sYr%3te;r zKEwzR<%JKsL0&lj;!Oxz7_9apE`O~D8*ui;YIFn2l!z>C_Kw?D-d7AY(y0RA6n_sW0S-@)$4F08VrR6p9pyGT_Wk zkjKuxI1z*vGK;&Eh%%si=l}nZBgtFQjSzTFTzTUGcEkA>F6ahCuOrS4>|g`VzFJRWr10(g?-B4{Dw#TSrqrE)&cUKRll>*F5$ zPRBv(m|IVl2)|g#4jNcPnLg=0|Dyf>zyF}ih(YV}K!;#D3m|m~Uu^V3%zdMrpQYfj z?|7jM2r)wE9IdbMLx+ky1w8k`*GFjcgU;W#qWsx$k2lGV_>&qVePM1N(fz~K{ zfX+Df0ZrlZzu0yY6dU2-qkOc%`v|eDki7&Nj(u^M4dhF8(6lyuHS@i46OUe*+pu*Q zQ~v$?4_XRhfwU3>Ja7wIj?rDC0v=*?j63`y+w=ebGcVSHNKoGxvfcs`8GGTYCBS?A z(AH<+cHfYT+^NWwHm_CB6&yGf3p|S5T$X9sRXV3Nk`R6W(g!%_P zPT>nFpuW1s-ws+P4L&+-A8ZYV2Ru%h(bi6a2Wn4w;9Yy}g%qzsH$cN9?x1+}(PsDP z=J&+5yd(1xxOMxI1v4D(l^c6x-Udm7M%#A(0R;hQ@CmWR25ZDlat8&(6%dISf6RfM zb>WnblQp9dZZ@)STmXbBp($g_&X$1P;`Q51`x?w0F$^vcYJtp<7a8{{dx z@p{+|4*A{epf=^cE{x7;o#|$)G%K@6M)qqcr z3V^0Z_cMW9o~!`6czw1x=+-D_$Td370t}$C4&n{SS^>~?Q1wO7BgtJrs}OI(CTWa4 znyVEUN_0HBoeexdx3jAJ7d6o_V*uTs6QZK z5ugLYKZ0tW<|7G+bFrb0XZtUDR~zK`BO1^;=#RCqkQWoO_ zuQ~pUMuJS4;Q_kU9Tv6(?3D-UfCLt_ynxROIfCvqX?~;Nu^)8e@Bjb*>s|Tx{RFQI zz3E|noxgoHIKvc5fQtF%ll&gm=gZ~6$NV4nxcCY*0%`pLyfwuLw2;*Lga^OV5074d z#uwjz{QD2OLZQ<|#lxrjs7Gfu=%yr(&T7z29pDi`$73vd44`XtiUdJ>C3?dcUz}qA z-Ed(1nisTc33P|dvxLtzc}m+ni_|UOM~ZuK!dpo@N<(r zK=XYduhqNqZ~qBhH4O3>=+;kphrHzA*jq@4xXS&>|`i z@D+rhPENH1Xdar!6LfLQKacKnX`ff8Id+Pac{Km!DDnh*LnIe;)7=YZs8<|8E6BRx zf%T$%mPap(7E)lrR!7!@g3ZJFM7iPXM!5H%{(=-5IK6+w2~=csfk;R`Q1IvulmL|* z&A&K`1VHVIUXf6+iwgh$16}WO+*yJh6sMie0%@JhkW>bpOMp~~&{oN*5;w3>pal!u zAanj7dZ7nuWHcuWFhDPb>%Q)B9I}$aqxeAy0icQ@oRHqa^96F>`;7ygUpfKB6{a@eCg6m|(Q__nSMF9Jc$ z3G`c~Jut3J*82AkaycOQw&E*(h?^M%JiDRyte!aoSx5Pk6`-Qa%n!8c`3R_k9SvF60zaFeH%DcGN8_6W z@N5dJE6f?L5gw5E@AOg80G%+7XMx@5>(=Sd$8Z-EG zmJ9fF)=Ri_n0s`G20&{SkX~Pl7n$JJ#kv2Y3Mys{FE4>^|LrW*0A0u9(ore_Nm3Fo zt~>nyKLI@V0*V%c7mKsO!x*BU?LhZafG%#W3N8To*Euya%vfMUAw2q?lqM`%K> z8ibUapu3zv^+5L(jtX%-gmY~ZJLHW-EbWr&<@crVT z1Od9337l%BJrL=)`?5#(iT|Qg;K>1$>o|&#lf#A=*M5QgTzdd?pF1eT(p)-gH$bx< zs@e-LR)LDd)^FhB??DB^PSAM>FD58~W)N?9bh@qp%`*A>bV5u6t*CP8sNDd*XUliP z3kLiD|0nDRosZpFyTGHDwM8G)p=b8!EC%f)5by!r($HBc0V+gZd;o8#^fvhan%T4a zzQecUp!3r)iVZ1{dq9(1aKq2F}|eF{`HxpbNYgRYo3>DqM+)Udt=S_{}*Ey3Xdz3sO%M@0i< z6KD$r=;&g&jen#;*%y3T{$Wr@5?t>FfKD$4RlWw`!`IRL1FAh7Jem_eFn~M*KAF7x zW^=*=2A}Rj9?c0i7(f=mEm#b)092KLmcAvw0C@`(SI3wcJbG*Ydw>ol7XkGeJF5kZ zFTD^CgB~x=2RT{9qx<>`!|$NhVKwNA4an8S9^f;5LAHQc1`Iyk$3XsrS_!Ji75?g?{~vcf z0!mXJy}ZVTW(+S5frj-!TNzJ-@`M1WBYI*^77W=gq+d(y3uj>U+Vd{iYm_~m8_um5?6P?u($CzPt zdv7S{+LRZSpm8~nYhVs}&EnBr`@*C7zd#YMM{hWzN4M{V7os3D5Sd_~J0uf;m#j1& zDS#9<;5IL)oqjzH8l)~N0pKw8QPF5lQBh!c0lKymRBVC+6Yfz^y9#uBd+ULcV#J-f zKKxE6e3(zZ=J2sTSrYB}|D+@6zN$|?+9y3h_f>g<5`hDQ$8i@G4^TiJb5Sv10M}2K zK}EE|3&mNW0vmK?YWL|Ef4+eV%@EK&%U>Xmf$9oSA#d{y)BrmSs%Qg1HR=;L(48od z&H$(_jdbNb7JV~@7n4CFeE5^g9X+JvA`UuRzxl_1 z{ua%a)QSl9#FRx+On@+r>v|B5&M!M&f<2MqY*A7lnn{JSDrMG8o* zBG^7J(EeWqpH2q}k4_KBf#05>bGtu!bP9qGGUZKji=aPy7N70{j97pjCA$37~>A0kkBzRNA9ATmiHj)X5)oQ+O%2N2hg%Gsny6 zpj^Mh7y_6*EZsQxTR^$Nr<)C&Tz$IF`hePE9^Ih)4Dx#hhevY)sM}nl0>0nD+M_$% z0@~E+_E!LPpzA(^qBh-t!Q;3)_#VAu?g|W`v}^%dUBa~s9L$lQ|NRH`(0W5ax$)d* z{`wM?fEVvUl^^6ta(;~xl>(pMIVzxbq-S@wga>FpcC>(JcQGt-L8EM{W{5FHl>K3j zpd;16jrva>-7ic1eY&A5r_a7P3%&sGzDKt`cquceuK`*d4R-v&Pawx98!&*K392TJ zJ3~C-tibSM@uz=~HP#zJ)f4h=Y48$Ar29HSt2aElS(B2W8M6i4diCkvqtd|0z~BkG zA_RJGC+I2)7tq#t9~A}19pIVudH%)>p1nNsuetfRF?;+!e9VPKfziYIX6XlyUJ-N8 zULL#Gy!_i38){e-7)rE3$;kRt(K`=t!QKP52vlmUa{{-+K`wzb2BHspXrBk&uyPYR zZiT#$p;?gu)IV%ak9~IagYX+X(pz98Nz-!rzzj<^Pa(HwW3V3uDg0`6S z7=zktjJ&t3?=ZI1JwBB1X(OC0bWN8Zeu`$9$fz^G$-;ffVLU-26FgxGB$%IF>Zo1oKrFc zca@>zG@$#}pyN!?e7X@-h=E3ZK=lqR{y;-Fy_Fmu-5))=HB~G!SMwttv$Lc6+C)b{~LlM15|~>c3~&{|NkF;P@g#H?C4(B7ofI(Co}kVkk*qW zhM=?leR`caUPyy{1nS#q2XlaBLAygvy#r@^(4c=ZsEGwG@OL=skcKCLjrIh_eju->O zYc9xMjRcS}pvnwx>lq9)O0bxr0Wkw~Fxm?lTxNiVr@(6s9YC$*?w>D`7(vU1kAd&XT~rhpKoyO`i@S#4 zel0ksdn>$f`~Uxc*A0*E5EV$}0=Z||M@8XwZ`sE|8p3vL<(K*mWS>(5J6 zAX_XUe)Z@DZ5%rHf?vUqq4hv%ILKT7mBDQ9UJr#Ar$M{hJ3*IQwH_!D@aPr?<%>9Q zvb^z{$@sQQH#@lX+I{ZD5;a2xYxWX;k8Wm2C%yahe*xp$9?(ng!E52cXJ>#@4J7^q zKx0l4p&q?!R1`qPLgSkUpgwUot9uMIj9S6F1wc&^&?YASmd~I{xw&3|fxi{BRqMq* zd5~lITW>QkFn~K7pf;ufhzZ(u18TuK?gUjEKA^^SZwRQ~=YO$M4x(u)0|SGli%JcD zOE&`pLw9V02l8N3hbw5TYJ*4fZ~k&|kIvWwF5QPcdP6U~_~!v?&dY9KcrD=5>w5vx zf_?Gi)4%@{z&-CvObiU58^LNo;RU|Oc?xJ_X|F$rPxlG%Wul;p{e}5=P^@C~USnQ^ z+DiN{T;vTInt#mUZ&d|_Om{ChAdJtv_+kxe$<0v#g_LJ^w1j7OwSs5&WAMBwJdLqO zL&Fb}#$L1Al$WG?{y*T@#n5t~^b;hIKn-zlQtJQ}+2HF^iuFNmg48MA3NJt%dC@Cd)8M|Ze{PxoOD=8K-)Ctv&o zbvPK~1)vR61f$Qi8%N;o~Vk9&aTP)!)GrqhYsjKQqaY$0xzC`j?!;EP@)a;qmT6gPkyHZpr&Or z^d?DeAMFD^oz4QFTPAx&7+*BF8Z&hBJ_``FICirLShDW* z31Hyw{|+unOuuw_Gx+qT{rBkAz1ii>;L&XRvdfzRH0Y;$5+v3A85+z!-NqiEKCShK zavu-SZRDVVIS=h)e!VsZzP;{@zS_q;yU)Fr2aU{hUj;3aS9LW8?T|9{_9l;H)dt1*K|>j97MAEg&S(UJjb;((5=03Xi^y4n7)r}jUO=Kudo9(Z({27nya zeHrQyk8WX)UjP4~@Bk$dCC^?5*k#Zj%%@(1chK;HFN4-E{p_KA3Uogo=(_0hr79l1 zJa#_T2R-?nPJkL$urOry(LU(Y%fsQ>ec?4op1(>24{Qr^}lybC>`SjXoKtl1TNB3Dr z{(WLE_B+Euk-uddc$e5Q(5PYei5IJ#!6DC&67sK4d1(KAxg2D4FYivT0EQQ9OpF?9{@Vx1Jw8fm36(WE5Rp41zLbkx9DZP4(2(6 z&Oy-t4V#0`y69yUgfKy^W>6ggzW1b;bv4NUosOV$QszLI1|FdMdq8_cK_hqykn#T) zr$Ix7-QgUdF}QC27X?p21u*2mxbA2Uk8bJL72qoQxjjIG8|PmrgZeSu&H|wRAZQPrGx!9#2!T>waIx>e0hV~{(S75! zH0ZX*?i&r2k_@GYbL7DCA3^P+k|t0>N19XW_EdOj{vSLS=nxDZ(DrD418M+eg&-;? z-|i1k@4W#H9wNLq@d>*3UV^VW?FDrku0h&Gyk(&3;sR)M*E1UsGepJ0q3Z>>$IT1s zRD*l1+)w`fcW8NAVgd>sq>usiqhKL39dv|3Gbm*Ez}fo(D0{QL06Bpwfy3Y842s%r zXv56F1X5Xo`a7|pc_2_&T?gGNeCEss{ljNGnk~VrlsrJ&A=7&;LP_WX(q$q7R>O>^|UXd{TwkhOv~> zrXnv#N+I_>P`;x2i0njz5+>XsZnH>429B}-9z@wYVv-^~1 z_vQZq65nrtr_(`mZyw!DpqcFd2@1H)766$Iy8qj!(*?AD(nkf->+u9_uKfugqw)Za zQ3>1vjZwLCc=UpHnblVbG39MQ3nt8PXL+ z>id9B6zl%s(R~x#3O!+b>BR)`|Npx$xPpe#m_a9mcYA=YTMU!|UAO2d@R|*D=W{nF z=s3udm!MN1O9iY0WQw>wtq+v2c{CqT0Ij41`v{tq!EG97Idlj-7J;x!1-o6~s~vIK zrGT(Y1FK!2H3N{%Qea!j9IFz20PeIJFzf=Q3Q&Urd93RDeY|5;U_VpG9liHq?r;Dl zx$e^*$nMA|;10}l!V17AO}_Bx4Y&as*bK7=m3uWRXhWIhR^S#hY$$U($m$)Cvm5)M zLz#O()2yJO%oY{UmM~D$Ov9&_w^|8QJ%W0CojEE7pfVEFW&@Qc4lgRf9Y3T|P7ly^ z09ZyjXWRpM8p|lB2WVJ;3mhdcitqjV&oAJj5&#|QH1OyK4RwNUUt|HDoB$c>^y!UJ zDS!`eW=lYZI3LF!e&MbNu3JEHg*;Y-JXQz3uw<1w*bO}+BfM2LHoct!K3>oWH(Bu8n|6l!U5`yLyos$_GnHB zU;s_aG#`xc=oJ+cG-G(NRPq1+o#4R_X7DL@CqQFi(vUG~P}{%*T>bU3ddh=_XBb~I zfeQ_fP7aT5=3@>Vj3BB3wAqhgCukSyi@o6O{a{mgJbGE96i~H!2!J#=NH9X2q40wB zI4E&)do&-kc+orm|9{A>2B%d)Q&HeUVZmqq3-E^@;1^^7`NiNL_%4P2pxbdfcN_qv z+HP*pmBOzjKxTFecyxDyMLWGXz=!H}b9-1jI+Q*F6{g@32FTz7C`~|W2#@ZY#{WG! zEgd>4IXpTm1spmmB|JJS6+AjCH9R^i4Lmw4Ej&6a9XvWKJv=%q13Wq_GdzwvLN`NH zMtC$Itaygz(bh`$Jhut8bog(j%0-rEh@!S`bAtAGC;I(CCX%cFBQ*pa9MRvzGl zc@R2Y=F`pS0lHiKCU~H)2Q)s=%?&<&5xoBAW!UY1|6yy%Jh~-4T5p%=_;fRSbc5Ed zf%RMfpU=Y$$xG_D|NRFapa7avHUc#>!8HYPIQ#^y7-~MK@Phy7|No$I8F3HL#oyXa z7O+jOhM?$ovhe8UIRVP1yzs5Apn;$Nhr3UsXs|v}bkU=m3sa>>x0e7m(Wn5BFGN8u z45?sb03X>0;xvQW%AldrZg8lzo-E-74{1fngVHMXE0ocr+I= zAc!{i4WG+bFn;UNyAc#epdtKjK9}Co1dr}W4hM^D$x<~?Cks@_b)S1NA5>Czp9c3Z zq+eXU`R_kSNy%N0Za&ZMYcGy~%LwohTBs4R8>|l+5%a*Rwu5E?9rr;_pW(x5+g(r* z3AZgB-L^2WIpq}|-PpCyL(#5*u3a3Yy*nI!xQ%}VX!3~>B-)vu;c?s@n!xiTJi7hC zQ%^D;-QgavlWT5(%BRkJ3y;ox2anEt4-e4nRqM$TkRk(^qRkLR3Lc&L8Xleb29V}| zH)uUAc$}{rc1CU-G|hYTvd#xBn}CfGgYA{~=njV4n*cHraavGwvIl6PsTCinoWU|$ zoeNTqK3XjU5^PRJ8Lb9qhBIf*y!2Nz2Az!rS_}39)UF1PA3-{CFY_UC(6(4Ft2HmE zQ4KnG3v@4y*tbKVQR!>{|Nnmty`$z7sCfY zqEmDxf0!Jo-wPTt1dqupG%{AOFff2dni)O1e|0w{fa{=- zuDv`BE}fj+O`wx(Tzgp#x^yyH&H{1DWIej4M}SqG^XL}2^#att{(sndK1j0YF*KFJ z=24()@WR5u>wZAJ(=)E{-l>Oc7jzyH)cfgn2=Hhz>Kr6{a zx5pt;fZas(#a&G_Pd78D@`Y5xFML1${|~Nz zJ-WGHEV+zS1+NDmOb41AaR>mHG2K2Y9-t{1GZj!2K_>1!nvVp4MgX8`5R~TO%cMam z(a9N+5)Kx$Mf|LrqAf_inO&4xp1h3lZ6_u0%rOWd#-tr@-!q?IuFQTQw ze-F`8A$WxyyH9t8g-3UQgQxa&@HzS2CtSOa`B)#~2OnwU-)-~VqZ`z$WOV61IVXCNnn<9UV{a)P#F#F6OkUIZs-&~@rs zb@&r>7u;+c6tkUhWtK*;+3cX@0-)Sq!r}P;*vp^b!ZOgoLp#s{5(b_E9$*ju50C)O zWOqA)${o-RTMiYR1sq@@a4Y!5LQtWxrWTX|M0r7u=|1sdX)P#aW2V)GACS`Oj|)g? zmH8(qV6ddsE=ADbZj4HRXLq!LXLqrMXZK_9VhPYtD0mD4ye_XdN9BS?;~UUY3Xg8q zUI%ERb=81OF}^q_4o(lCakbu1@IAMxpb@HW4v)@A2XIRdR3Iw6xC~kd>d`CuTLjbt z1x;tJR0q2ZI@+hK1{&8AeFB&6QU?iya)7jJyeO#p|9`@Zc{QNW2<7l-u2ley@q;Wp z@uH#{6e!)H3gDqZ9uLr3GGC4tAJ2ojsi_hS9>-l3z{Q{|2WSoTiWjrJK}P$o_%Ay5 zt0{v=x32~$^HwT=d@@G`JTcIC1mt7LIyz8&=F#nGV0-}7@MZJpX8a!jT9pYN-$Jd= zJi0BRO9QO$m&AE=dxOsnaaeH)2 zzxZ(O-~WbcNe0ldh@h5qXFZ2Ur@cpKy?{q^8fYOCqM8K9H&WXH?1^6<-JTY&IXx^b zOSnA1XM6cMlzx1%@fs)(-SDt>b12aS4H58qbhATZy8HZp0gvu52M^Gp^WBGEygLnw z0yl>ruZ29i{R}|C#|bXxuKy2Ez^tpmWACWptO4D3gDnmMpmLBl9elnBbU(A`63YOF zouGLmpKg{5PTeewmaH3%0vPI*Ji5KX?%)Br1JrW#_@7|m(aTzF6u+~o7INoeAsK)=I3qF~GS{asbwa1k~`3#nY*Oq~@ z@a+n0S$JzX)-0@d29$oVW#Jp{AfrK9_|`{67TzWU@*|ck3`yVM_PYmUi)Qy}k6zI* z0W${29fAy?HQ&3wnu036)&r$18yG<&68?yE0vgrkaOpbW*mVGsYMYNJK<@^Dnt2nH zoVqIlK>0xeG`--T3GW1-e^K`t6bI;|I064n8D8Ay2M0GOe}WAKjfHnJdNd!104?eV zFJ)!`?PrFK6&471bXG`!+p`AXxs{I|y&f-KxV!}$Bj?c_t>Dqk=3yP7Q6dakIj z!U(k9x%n{1>n9$~H7Xhm{4JuO6x1C9T3sgX(aSqi#EjuZjRq+6KC~VvQR`;!&EEO>%ro|eBPs1G!LZovbr$?qqzrYx~92K0_;jNP%F_=!*LuzCVU25Y>V`)*2W)Z*64occ8bA7U zyQnC5THh$~_UPrkCTzy=VyimT8~iOw|Ns9-@(O>m;Q#;sQN6Pmq=g0SotK}%vyd(- z3gA{Cc%1}je&xmKm;e7mMsK=771xZDptT^~F`xxLpjE5gH7cN@$N;oRADj#r4nyW| zKu3SQa00bqKvOEG!Nto<(B3f6TnM92w}XO5w}%Gk4v~XDnLVs87BL$iIPBTYa^dh9 zk8VMaZYK>7Z6^iL01o0DR|(iwJJ7=Je-_Z<0zA(8v5QGZYsGK=7FSRora46geKj_y zDm8eK%lrTT1Rv0TZQs`arHY`HMjqgr6SmUG;KjBRpnP}Y|H~VoWYP;-dDmS68ZQQS z`u~Hf-g7TjUVzjCVCiP4;FJsh{`)Zh0NVswv+lv~eC|a(NU-~ar}gm?RS)eOuKe2= z9eV@zJN7y#@NYZO@JrH>-~EJB2M@RB|AW5P=S%N_v@5(Qc=iAP1kY|ZkM05m(1KnC z5Zk&ygTLi3xQGMI0)bXdf#XR11?b#Iq#72M z6f2+-6y*9BZ3>_=v?Lg0fp&oc=-w-ExT&Pd--ut$Q*k)3uFmw z{#6ZM5(j(lWfHhk4^Qf^K=VbQkwj=xe|^)V`54E`Z{Spl;(0AphkZYW;xImNiwLy3 z{vKEYwDlFb;TF8czCj$)5=`*yj#lvOE;fL-1U>#Adb#{BXdvFB8+Ur;xd2M_;3+<= zYqw#`Nfca-pZN4v@%VHqd34`$=}h8q?Ns;aOcL!4g@=ZYP%310|vdAFw$7KgfIm)IjPC=5TEO$x(C_qy==I6N(l&s1~ta z76-@w2SFNoMVerGu6T6&OL%p&9Q3hV06MU@B+aF}19W09XreXBsaNEbYxfzjry$B) zEEj-e%j_EufrdUDyHA2l`hO5)rB^r00gvtmkTIa)-tI;g&~edV&%kVPu?8DnbP!~v zvHXZ<- zYU$X0(xY4Cgi9xLH==2tFwOkB3J+my>v%48|7CN$#hQu8QtkD(ksH@*?qnWA_AbZLYy9uSs{k+rVKCo*})Bg!{BiV zQ2Q2CmoR#CI|v;9%r6+CA^~ZYa)PGH9XuKjg2u96bUpn4|1&>m^)KjfdKd6CJh(9q zRR)?SNqhMJe>bR!4C?m4>o-o&>Z0yj9*qYfWAGPzyAQsweh4~EnE||7U62{PR$b6r z0JK!yqx&$wptAzMpf`B_IU4RCggKzO7Z1>U`oS0RpnLwnJEgiWctG}|oPGh?uL+tE zLiSt0VUKRcE(Z>p+1LE{{$ok7h>>j@MkE2=I6@qYzXvxjT4t zJNy7G!htk8K`U@T^QPc25%5|a@Va))<$ut9&!~MS&|(EpBtc>tRSp#FU^(=DtD}HV z_azT)M+xvUNsxm<*Fjky^yvQS!SD3JgBi5T{T^tE2mksTpi3Ap$Qm;lkw7t@z0-6nS1#jO0EvW!k4V@_}1+Kj%D*T|0Hx(`& zDJlt|hCsrL-7KIq-3!_kF+l)4vcu+MnGjGS^P)Eg)SD1BV+X~R&RA9Rwx3aAU>zyWFqgNN!gK&ciy zU>tnzA9#Q59ndD*JD_f;0ccp)&8HL9#l51sAS1yGoUNI`;SU-g?mqqEA*8E;;qS(M z|Nc9IHsbV({sZTWb1!!BFff2ib~ev$4+YO|2MrJHgP``TYxh4N>mSATUfn!DJ-QiP zjZgY^gZJJi{0|UlIZzS~>cez9DEM{T{BZ3)=Fuy<8fs)Z4+Dd5>wo^%^Pt8RD0WdI z)97TG&@SU@TE+>0695bv~n zWMNFb_8f(0g`fhMFl})RN#2n%m|7HkWn0<(!&Ad^9Ub)XV5ZmjF4db9{@V~ z1Jt}nOQ1LQKocmcRlcp?N@P5{**v??{SVOa>3#s7o#gcCX7ud7=J-EA!LyqkJT$A| z1KK*fL+J#aU;JkH|9=9=cmdCDF%OvNQ_zVW zy$~%Py`oW29pLOIDh|nhks!Z!L$jZb80eUs4=-k9Ffw>r)=3mG`*xdwCv;D|=*fU) z6g0oS+5PXotMNBbRt!M$ZV9OGh9ghz+zrZ;Y|x=;SJ26H{{sX-nZyg5F}SFi zuc$IeZ}+(u!JMEC{d_)_g#r96U5pG2j{Lixa`87G1ZOj7adn6rJk@Xw6o=q=dYT4u zG#iZXV_6Wu-`WXUsJ9=YbP8nok@fW=Sh)vkP`(HSxuA0kI0^Z5E&(fY>DU5JE+9{8 zqfW&fx`{NrEx8L6Kj2NNYLCDf0;72Rwi8@D?gCACm~k^RfQ-ZvZsts|h>QG(9B%(# zK#fI9O!IewYzC!_08pi+0jd==UYK?<;IiNvBg}#ye~~Tt_Zqtec02$5cjVvomCF&d z1pVBLLr?$zf6eRJ8xFd1D&occ%OLytV3S!5pe9M{?Gks)6j8_kv$!6`;#L%kVI4z< z7e{x1oY##bwwCVz6&OUvmdFjH*vj4kax*x#Djxj*Kj9@4C~f^e_Hx~?|L{a82X-zr zkx2?e@_y}q(7+xv?;C)wX6S}jy?epO3}RG4|F(l1nxcZ7)l=|f^>f=njx+OUJ{Ix9 zDTR^216-{Dq4~N;&ZC_TQ` zg)~IEOF-ig&_oN1gM=53+re?b=FttCRqO$`l0b74ciF)kT0zYy&>W3pENGJfXmKg1 z0v7-`wLk}oG`@jca>n{p4c^cK&11NBKlJVX-~(P-;L+WpG66iSV|)IUDR>_Pzv~Z= z)=T^?phbhephTI}xgFS0;m#bs|!GTO1iIsidai#aC49u9A=WBRb-H^(A+1daA~OM6(ys2G%_g7-l+S6c`av3PU`EBJs;P3!Fe>wEDt9HgA6DWi?x zegb5WbSe7C(G*Z!-h2>rSQUo{v?F4L)Dh8m!Jqp7KV%XI+|*D3&jR#{&iM%%)Avzv zc=3xHCZ7v52tP#ybZRt6#N)-uIM5jX_XJS$2`b*aM+G#a1{yPjigcfN zaW?^!vAU;#rND!au<8M1)(f*Opz+5gDiMsJ_IW47gkvpWix@za4Jb*zxS|iTzDEVb z`7e6urYUGK#uRY4qZkQ_fftWALyQDR5_(hLR17Gov=fY<#`sMeibbIkvoDG zFZz@J|9`PB9u#n*|G$Guz7sFD$1^g(?1XmQe7Zdae7Y~XwjL8u zuw(NNrcz#zh`5jTDbMbUub+YU=`x@4=)UM_eX{I2Xtx)5+__@{s4D_Z>#%i{;5&R; zFO}N%dMUivd<&H7E_k$FDv|T(tN_nAcyv~9z}da5U%r5{Hxqa%rvP|iCPZK zQ_GOmK%$ouI{xwEB8mZ^xg5waibvx?(748n$`#0(LGqn~urmiy=9fWdse=3I-HsBV z33&&|JQHX)vGIY|dEj|we+AIwtRQT1)?cIa;|mc`6UEwHqeR!E*MkGRLm*t^McO)0 z;&<2h@ggP`oWlNsg0uU?i_lm`2IB*-L$}kP!RiL^ z1Tn%5pb6p$peo=U^iTZy5V9B)C~t9;vb>nov~Ql08THU zwKR~;#o&1`h3-#2-5iaPZJR<#F&QbN6u%>x0E2;2U7N8Nm~MEeA?D{vUsR+33J)F6P^>w{2hq zCkgP0sE~DUh_i0bfa5R*dNp(?Xv_mt5%;c9IRIMu(fGyzG#As&8X^y^L|Vc1Q1?yn znONQ6rDF;&w#k9ZR#7ET@Pnr_de}fBpz~xvGfr%vqilPpf)|5>m%AiJg38(cXiz{x zgq!z*iaAgz3*mR4cu^4zE@Y>IB)|nCKX@Xb7i7$f%ituj6m*UlgU9h!kQz`A<5(+5 z7P3sD1iXI^G{;(Y#gySitsf&p_YIJfeFa{uk^ldH!neZ$9=)uUUqO|&ZPO!D2H)=I zKK!l^99r&s^s*Ly1qpoj;dlM;?J#JsTn0!Xzw3_|lTZBr-~Hi54~Y8l!W3+-N3SSI z-lNx7;YB~lyWJ06^#2!Ah8IR~?i&zS8P2^5;)+1Hp5519aKf0^UiWd1^|NlK8?Ej+wFM&MY3r;b{ zXI|X+Ys3IL-UF1RJiDVUJiCh>pi?!DG4ZkBa-{oU^MeGNgi?tYMUfyUiGBu6%6Ff5 zp&iM{V07TM^bQ6_2L|O6)+b8&Uid?lD10_$czt^VBXns3=)Obn)Hge*bp4+o0N%6K z%jzi@z;GD6Ma!qtM@0d&>CdD2jfH3T2anzyl?uqb`isk;IV{jIU_RaFK+6yn7(jcg zyRU=B;+jt~{TKao)s&(6uil+&2u z45**Q5e#nNLdFuC-zfNYzwqgP&2=H2>l&h;<&;C(2kox{tl)_UL8d@~}SU!S8eoG-jIt z(%lX^L%^rkrj>yKbaKu47ZVqQIt<|54HbU9CL0{PeHk1(`9KHxdUSL9bRY1sepDjn z16uig-(UK4|MEQepUJcPIOs}kALbvR#mgR`v#AexfX^F8I&|A}$0`Wm^0dCd-vU0o zvA2lPquXBqhYrwgzl$%yfqM{iRUfNo_dQVH$_RQ|-}B^mx(6!3Gd!(t@V9q?qlPEi zF*AiC@4^06h6}{S&{SkBWn5_c?w+ z(7v@NpsKv}fBh+tLlZ!AbQz#Ix&qMTeFbE>FDS^oL_q!&;nzP{rV0uK0jW>?0zm@& zf=sZ$@Dkt`l>Edm7%1?WU%*Smkze0Kq|BXPfXR_x0F=rFA_N>EVdn+n3VI0e3krSW z7mNa__Y~pR_Yx_S02z&Hq~Irh!AOC_khMCgNE-Xi?^C(3#G z^$(VFcxvDDu>M^1#KZb{u?$%5GrxcXvI6FV9@fW;UV_%hc3*yN4>AN4S|C52DAxrU zV&GwYutWjmIRS}J`~m?2kbrfi3rKr1AB0!{O8U&O*!C9i zWWEV=_)Aw%{n&iyg@^U|(g1LPT?ToVnI9#Yc!S&qN+!~u_yvQ(W^2RDW&pV#!}^!+ z|A8i5nfL`HKk*9$3h)aue&QGK0-56}z%MBEiC-{C;N@{pqZHnT_3V@bC1nH8PB#wF zZ4=E$6d-Guj(BuNaCmeg%0SQFivOVb!HfTWK%25Zfhv3J>$M&py&}@aw?XLy6#6cQ zbsYKiT@Jf=_p$`>Pdn`K|F8%1Egw)TmM7YgUx4MbBflWaVNl@voCc?CpThzk*7s|6 zfbze#` zN3Vz{$nwh~Whx*ee7Y}!Y`l!nd>LWm$C|^A`~r+1&vSqjgYvQfC@)KZ^0ES4k0(qE zsBIMis!qEvfzG?!ji^x%d!pBw9?id)YQjLC^!foVR6LtsfszQgC^_r`+9mGDFTeyY zQ}_iK9pMFoBfp@RfRFY?Pw*ujNL7hX_aWm;FH%8q*L)-b>pZq&*A0)oFjs-wP)B{V z4|;U}^85}uBJs7HOV?rW*<{lJ zVn6Wlyd^5|MHvQ;v4;`i8vFDAe*`ZawAuAIQdtb{z=Img;8EBYm*@Ta@1gx0lmrbt z4*qBI=w;alN`cVMHe^lnXMO=zAp_LiYbf!%vzreC8Jr?Y;r(Hyr-VA9sOY;}pNfq0ju0+@JX)omoEfM+S3z<`?At z%r6My2?le3T0@9+7@$iW1VF7*JJ47pQmv|e(E~kMdi07wZdz$y0P5PqPmgN`-5>#3 zo&j2)-~qaA`ZK>k5XkmGmTo5wP_4)DnLpB#12n{<06wx)eWK%@Ag38l_znMVmS`NOj_h7!^(tX&a z`?ll77mf#CGrg8_>^=Z46SWV!G9Py2*AF=<;==EC!13a1$L8ORlV3mNkVqM~N9`jfBqKG93H=Zu?T-#FC%Exdp6H!egWSfpZNts|9p1jj|pP|k$j&)Ep!me z4HTc3KJ!PO{LCMD01{mh7x?vmm8rQ{*0Pi;cyxzxcvy!ClyG-5cQSc2yK%6*<_32S z&%F@;1Uk9qu!KkRQ3((0-~26-jG*u;p>l4&aHUKr06+D`cIDmSJpvJOKx1$6ih52YZ3V;qO;Q-YJ2Y)evF1D z`?lV_EM*?OJjX%(TMrN$+ztT=fYu^|db=Q>fyTMPtq{;y^(n7j5pdu8r3%Q5?o-~q zA`Tu0A2Gia0r4SgnBeQV977!8V+4-fFC4o+dK`Sp0-E(=e&x~q)3xco zZZ8gNLw+a2?ql7BEY`>Poj+I?a_~D9a(FZ!67aCTT6(vkMx}tkaSsav14C!Igk$#+ z-`*UR-z6Tsaf}|{AA9mU90i?d&~+FzhsiP*G(6zZ=`H}i!_KGs!;9-bj2L?Tm>j#0 zczk~dQyl}k%a{3xM<@GhgI+%-BpIi}kY(w{mpl(XVDjlLVDaoe=hJEaqW^~xg9qq- zkM3ih-RJj##x*^AMcSH`7(AJ;_*nlfF?Z=^1YLjwDgf9WyBQrBP1;Kj|XVSS`4VF%>mslRHBm5 z3_3{}weNlyw9d=}bR;XNQOfy39OT4qZ;lsy5QYG_ZhOga2;4IE=sw6V$Ovi^^9y={ z4*c@yX6(M?(#QwkI$Sr!vh{$0d+Kdu#BxB=^$Zjr47_=>E)U2aquD2i`x@W##Z+G^xAa5 z$5tG>eFYplagD1;fX{4%jjM=&##LCo(8pD{g|LsStOgx(@gf#PqSeFT^Bb^@tH6R2 zKCa>eI${Ylw1ONCprMs)k6tfE&fg&E z_F@xwFa>RdWiD6{+XzcDX(KElpjr~OZ47Gg1whAGK>O*ePn8sU^hS!jPU{BU&2$(1=6%V}3!y&P>pliU_DrH5F8(CV#x9qzM}G(DAgsP$B~w@96dt;1}TH z7i4nmb^ryFBflVrW2c9JC-Y@r=EFYL$BXv+Sf4BN_U#RP12P00Fy080^gXq2ds^QD z8^+WPTENZCFUaf&N_ftoVG}OLPA>sp?bE*6mp!dN7VYt|K3D4NV||>zWgDo=XMLdr zlvLpwA^P|QxjI4a;_e2Gi(Ce|6Ktr10O%A@=G!nwz6ABcJev=`@v%N$>f)(=+sFEJ zi44C0vtzd>B3hjVAkoU*33eXHOzq3y{K1TD-An%e|Nnz}{EpooAk7@0;WbB4`sj23 z`GnK4(^KH(b5I8x)F=Usg@D>5i1Cpya5u>@4!u7CD#vh)jkv(aMkav**QHs-yO(DY zXo#ZO0(ESJWj1J}q8T*m(Cygm(k$TE>Cz1z7uf^K!|LF15k-)0?_QP$(6~tR8`!uA zSi>K%2GE#@CCDmA0ngr`{~nO^2ewe4OaY|br~49in?BVX2Zau(u;2hG#4;Yz4GAun zZh^z#zG(n_G{j>!EGu|)ANJ|K=?U(OBj*IrfJm@ox7QzVVc^;PN~F_A#Q{7L;?WHn ziGd7;ID%pqoLs#HAW7>oD06k6hHRXN)tivfkYZ3|H6H<;ehr#YkN{5cv7srTE-`d$2gm*bo=7V?$GaU>h6iKIqYUsf6FLo1+tS;2DcY^DD;E zkC6PO;L$5H5ma%^gWiY(8Bl?=qXaxU3nV~g4`|m3cnySsWA{x*&{2_~r4ZOghm0XZ zNS%=JBhbLo&Ksr-|3#IzL&l84kAZ0LfYE11{z$&hj{JgrprIp2{zx}aXI~IZMuu^K zWWqR(fi9(U=|1fOnu59pI;2$>bY>U0=!{W8-MnM~8dXMZtAmD^Y{3(tJK(Vo8)8C= zDvw@~Ngf9uF}+af0}U}@UaAT%i$EPz@ceG;$r9+e6;Xzs?*$o(ecTGQEe8r~NcYmC z`Hh1|Z>4}w_bVSz52*WtkG8lg^8t_UkFMPhK@+2%J7Jc4b{_>0q-ODSRdeT2VJ5GI`X&s{0n7v(78#jt=~%O zK{KMgEZW_tL1#HS@~=PR$$a(`zX0QBet|&H;8hq)waZn8t?A>OB?JMAkRPFgn zcy=EKjp?CReV~JFF1|SUis`kIXRimNXD?5OXD?6Zi<2x2436C=T$m4OpK`Ij;KJ{B z@ZziHUyS89K^=J+6t#0%7#LivFVsTD^PYh12A#a+D}k`lr~8)Y!PoYl|4;ic-+C?S z(aX}{(d)qC*~`=TA{L^*4m#-PX??ipzIQKAgJ-Wyr$?{1zzZ9YW2}$!_x6C|uD2RA z)aMW0!VMZG4gUig-$RV|v4gnShx@=Iv<@%cFf%YT|6r@fJIS435^v`FkqBWAosWBnLDMP@)1las^x^f;ujcau8*X3S16?Td5;rU*K=~#{eDf6#x(Sf==M@=ysLh*AMu^-~NyR6xWwryANG_ z<#_M~(`$+DLmr@}p!NYr<_n;~+)e?0w+o=L-sT^S<&Rn~m574mK}|WAP65zRE^G6l z|D~@z|DOU6;x>TvGzye){y)@x$kX~z(QB}B{>cBJDCO5L7APz5fJNhHegP6<5Hw(m zH`;RUfQM=k(Zq2Em}&L*l*VC_%%L(Z>s4&=K1{v=w!x&znDP>CV)m!elmd~z=QdMhxNr` zHqTy`39k*xj66V>DQF)6l~e&92Y)bu7NKx~){0;K`v3oHVGr$#pd0-_qeL~J+Pl-4 z!>2o3z!h{lrax#iqo?*MevM}y-$BL3GuQ5esHHN0%NI~w^9!*1_sTSUcIFp|nZ@Dx z|G;Pd$aog#Zk}16o%thOX0dp5GlL|3X7POHkM!qo>E!A7%pY;XquZIoLz@|7Bgk!^ z`6F(A=8w4NV|}2w#Jg9d0aVv{bh``i>&Gw&lqG_O1(;Ys3on>BK0EWrgvK{v>6X~ zGvew$-^4M742y2~7&6xSzYWw>w)XC2+2+y9(+(X&-Uf1v1y}&oU&A(r3_4dFv{)Z< zsBakLBtYn)`##-{96s8Nh`Z^*Y3!5d!GFx4b_}=$`2kS{dszP{ck}4w*$*C6YpaEK z0s?%xPlK1*LfZRJ%)kR==V1$vPJ=QBr1Xl5k9&Fd-~azFJWhbCz%w4;F>P?XzjSB? z`7uUC0KCY~qZ7wD=-?xNIY72|x^r|3cLvBncSiVgyijcbISToxb76!C_&{QZ7mN*f zk2;4=KqA()BAjspv>CV)dSxK!_LvuqH6Z&gcyzjR@Cz`1=C5}U@Mum@0B!I9-O!U@ zz~IsCE#T1!I;`DU!lTnk!=u|-!K2g30O^83@O&Yt840=v5IoBa8vDmsg8(ky6^w5? zf_4pm0uSgPC}s8Nlzi>zar_|Y9`PNZbBsN{KlSPU>cQ`D5Hvy$Iv>)blfCsV=yX$l zk8Uv!=F=};OEWNdG=tWpmT`DCzhf+Y0*WEz-PK5^n^Mm$F{?pGl%ToAS#Chwa$yw~ zx7;2Wx42+)i?#fKgv*YVSi&WLVBDgE%`LkJ#w`n0U zT%N0v<`(pMOy~%f@om_qy_emeEhWqJyZ?D)o(G-f;=%08(aq>+&0Z?v(tW_QH=M+1-Jt>=%>SEhezBHn zdUS{U;sDJD%62n(_WH57bRTf+WbE&Gn+9(a`X}feE2OrA* zLgBm-gU7+=EFRrgL5rC{i|S6l*m%nbyy*xv_`&TZ(0C;Wczq^lib%nu+YnT*wtg## z?!E=9$-pO8e18mfS@($-iclA+bYBMTWtIhXU7HhsFf=FrVQ5xlXij8d@aXjv01qHN z_c-{N#iRQgXmLd+=s40Bs!+EeUuFia-?6$Q0^ttuT_y;3%v=Hq83l+tB+=aA(d)?r zcEf9*UY2N&PIl0AHhA&%i5ClQLIMQU5ugFEVrYQCC-T8lx`<``p!y!Xpv?M0xraxu z3}{h41E@vMTmot^v4K{Tg4g4m^I$#U0BZHvkW4Uwk2ws)a6vLEtr?NB4!}E|6Wg9^DKe z#UXib0jb)W8o;3bJK%0SD< zx(i?zK7*DEww^5E+68WU&#e6SA2d1!4v}8)edgys^Vfq`h--n4CV<>*0!nHbp!Hnf zv9RVN0r7`l6z>5A5!k=rFqHuL*T7@PBo$8(VgVnid(*?xk%PZwJ!mYZ8+z$e5y(CN zojITl{WuQL^;a68V2%KlBMvWgK{=rt-QEhIQCJm^?qKMt{~uoLtpJaRf*SD2pay(0r~x0N0@lI13)JKXC6ehN zRo&pRnd2aTf=@q;2OXUHbiFCVi`@N2pkw$6?cMq1qiyNYUC7~~ZRm0E9}9e%hTqfr z1Ahx>n#SY*G4QaiHn+#YpDb9m?fe7nEV1G8u>R-4@AMC}VkyJZ`UihI_~1QoiG2RW zy?oGV8<349p3Toc_%QzfuYLIJ$X^e--joA#N+SUj1(d2|+Yc=hs_gLP{QW{EPO!wZou1apu29seOtt? z8}J4d(0(A$-Y4)5CwB!IS4JD^-PD@&P`i{t|ec;xss)f=)nwSBiQ9GH7xav?eJ2@N3Wl0#FiQ z@N7OH09h7ws`RyI_kqJ_Kr1Xj%d#0jdsiGmdsjT04=8wmw$EFiDt!!A11ejE!I!>( zt_=t42Tk6*1>fxl9*^em=!A@MIlveFdUSf+@aXh-;M3{w0%U-SN3$|RGbp3=dKDxEx<4?BRewuVRZd&bf`;BpsyUBd$KG#L0KumDiDivTV7iwB)~hNG_xzRwGM zFRAsZ5+{%Dm%iN}Jhfl=Xn*vu{#_#1%?xVjc`%>uWOwO4;L$6h`QrCQBZhANV=k5~ z3?7Zg!OgbD!(ht#UMYCrivegt6x=;VSs4zR;Q>uCF?w`5a(Hwf1npS{^Pyajhaf{R zpfXPZ9CF=1JwSm6xx>gj2XuuJs5I>aT~7tMb3H5{BnZ35$pgXz4`Ud-u*%1GuM*@s z9|z+@;se!K1TK!K1TK1C%p_E*dd-^fqr` zU|@h;V$|!$!7u0_;L*7mbPz}9X3znQ9-W)P=PY(^2HjZf(6RXgXvyH_51=b5Iye7- zPz>Nob2A5o5@2Ou=-ey;A`L*J^d6n&9=-J(9?dTqK}+vSR4l;OIU7Ju%X8otbPnJb zbWQ-3-QeYspg0GeQvoXb6_EEFPXH}4X?#-vvbCG_!6R=5591>qovjJX3=G{&pp}rI z0Pp?*xnaHgW+&r5P~>(W^E`e8G=Spq{kbQ=^<8PpWZja6qb`Ee*zT^el9U=}sFyF!vJQnss`X@so)5{ZuiBbG$GL9qr)RUF?CpqxuYJ|AGd1e=Jh_4^#|+ZWV&fJ%jJ> zGKJQ8x}f?HbUxxIP@AnARR0Nsq?#Wcco7fQi8+aV=FAz;CC%W&LAp6#?)dWm|4U^n z(3Va3Ih!{@2Z*$u1l{5aGV-EF^P@j6_;H&Da~l?YA6{I~1GVz7x&x2C2QTImuMZv! zufa#3gWL=ch6o(SAldB+-h%?VJxT%6e)#Z039Jj-WId>EL0|LY(OU?*z1pLjulp7H z-AC6zCzUS;Ur2i%+ElQAaX1%o_Yogh^u>l;(A`Hz8B2Jfhku`bv2`k_O9|>tg3=MF z>xJk6f!ira?RwBy18A7qQnEy)Tim1hAd9QObG^m)+toUM>3f z-?uxK!}zvmcPT^n3zzOC;PnnZ+V?yU{$_LOzUnTMq-4n}izvxbR_iR8VrGy+>kFm4j{grig62RE7Yn@J=n7gS ze;rhF>zOhzKz*$R^|f#J+3v#-6)v4ApaZyg4!!`L4-daQ>Ke%Z$jeZhj~IZqQ-B-q zp!N(jouRG^?f%(%vXtHUz{@EN3=BI#dt+am*a9jrZ-9z+9>l>|ubGT*gG=g8YfycA z3>5T``t}&8zO|nWsc(fnx=)~2wcXsH$`)2XdUSvA-_NS^#zq7j@_XQFWTq-``_v6;R!mc z&d$U7Ux}NgJLr7jZhH^wf2E&a>-lu%ZgA;L-Qm&ek2v;=pI^Xr!)N|_@Yz!WuQ`2s zT{pZ4`SAb0hxK><)=7|-uJHkWLDviXg02q~T`zp*uXnw{AAa&Pf4%PupI+Asp50=g z)n4Y1MUB1>Ks{nvkM7V9u!6cW^y$o$@afDw z;L@3T0^Fs79gPff8b}k8(+<4Y`TqZZ$N$Gc;bIL5m!>!1Q*;9XKy%c53j4A8_c%VBrrx>Cw4j1*nkjT)_dMKnIR{bglrMGw#v30(2fZzhFZK z3j+hcU<2rmJAT224hU}snCbu>pw2JY0Xl)4U$6s|>i7jaK&cpXZSq~v+%ae%8GNi@ z>JgA5HiK;PY(D?LyBTD)<33QM)T8xVNksP#$L?d0vg9}@r+n^%lqE9V*CF?j^m=f3 zbY}kO)bs?k-a(5DL6#i#0iA--*$g)K-~%S;K<)R#Mhp-uJi0f7y#=uYG$ju1AAs%X zC(RC!IY@)SlacKJhZ#0Iv`MoAWDb%Y`p9;GA_NpxLES%4{c*gPq_6^+gJj3)Lq-hU zf4k2&|K})T=|1|J+rx6rX>hDhJJg4&BrenrxdKpya zfyX_-gXurP-kb<(tAL{Hh0Gcw&=H^|d7v{r85kPup+1Cquz3OK#sY@s1t8BeG%o-} zAw%;58BnLKc>yRY7@8NDfOwr9BA|rOp~Aud4wmB$p!9K@-_!nhgANM=!`U-uY>zj9 z5(@)Em5bvJknJ9z>8Z=0603PXD6Bx9fJ_NM;_5Wa{h)yk$lMI5iE;}xIRHAZbPmWH zp!*tLgsz5oqipAG{*w-!2Av%-;9|K0bfKt2M*)jR=LT@-cWwZA$fI)u$h97w8$dqs z=-dEub>{|vl&EopLme~wz3(Neq6f2f*#$|Ks=C_TK5_;bhm+W6eMML zw}IlSvl&EsSl=s=?q=&`1`kn&v3T@)v%ClaX<$C)BEiDY-3D??XETWWf7CjkgTD!K ztOIy@A_sgklLGV}PEgo4K*JuTLj#>~2j>t-LEy;9z_1r|)lB!<7e7`&5*Il5*S`k! z0KvfznrZ}lS=*{x--R96r6o|N{|Cg9_%R$o# zcm&7;G3&dy4SAb0=&YFQplCa{+lT=iWpd>MXh z2B;tgFF$~mPoPN^P^U@&)PV(^x(naFjg%KAGBPl9bAh6+9dsdPIcN~Ali3Hfzgx_+ z+mFMi+kwL)^Ab3%FkgJ}{skx#@WDGvkd=yvGf%*? zyHvoj`@RSB?QWO544o|ZJiC1bxJQ{c4>WQ2_eD#Hzy=@RS^ z0AD22>2i<5@&9pGYdij?GoU>}-7%nT**Qr2lwzT0-l7+49-sl3n~wWHjbO*_b1zmc zg_dZ>-{581uaBUU@_v8{(tjSE)}Y2O=m7NdFS5Y{ep5l?bD#+m9*^FB5c|d6zo4rC zwu4Gv-_~y>*4^_#1wB07qDK0YW>9h04pQvX3)!p>y)}RbWPI;@P*LvE-3}_(J-VlY zc%WHM-`oHHTW$vlmPvJ=1D!nE&2z$|b0?@4_NA>h%O`N0FF z`|uWI4O;hs8QLD%u^nt5*iEh9N}{@VgX$L4Mt2bDwt&ooj09W*l|4ZaTfj9)>$j5l z?%kk(LAB)#=tAz+10|{uzbL}}a@_F;sHx+D=nuU>_7KQWB&(ip19=EXNd}H<@HNGt zb{3+Yf>f1&Es52S~XG zylzPayP#YG6l?Q2{>)lxnK45A+P|EJnoG!ueTDtp0_l+0d8$dUA9royS zmw-lyI#@TTZH3el0lV7?nnodmmY{(k1xQ~3(o-?La|k>0udHP@=gLl-6GCK-R(M(H&L*ia{&T-3H8{6%w891uorg z1}>fM1|Farle)t!UUXamdBe@YrPJNPqu1ZVqdUywh5HS#pn^-MyMjlrzlKM5n8u5~ zYhb|umrnNpk6!->kM6LD7jLhE1ruC4-4i@|{WCne!!lm@Km-L`I^6|4dO?f*!z5nZ zz6LsQ)t>`&KFtfe-~a!2vw>Qr{uQ8c4StVqw+fIynY$x6IwLtincV_3_38lH(*(L_ z33OBmNM!}I9xG7+FX~VLFXi|N4#5&%4@=1sQIBrU7gpeq;(xL43n;|oUn@a^bov6M zAms)H&Rnp98y=nVjypi14vxyxFJizWi>M24KAM^yv=f=>7rPu6^(qn{Vr-5`RbQk0ti5;4wBf?`{_fq!HLkv=P{bN=b&2m*Dj@ ztkzYCF<4p0{|6nr4}$igY=kV|gN`;i8dg5tDJlw{-7+ek)_3?@zJXfmpgQ8krFll6 zt4~3xMcJiO!=)pG#ibKmcKbleZVyNo^2NtQ&<#w!-CrHM`#~0Zc0tYZcyt$Qcyw1Qcv%1AZvmbA}(`$D>=^qwx?(-n0Ac3!ZEL{U>j%7Y`U2 z8D1NEbhGmdfI9|`{DQ6w`~n@Ia^I0(&{u$80Nn8di7W66bbxwOAaMiG%p7R6vdPu> ztz$QMa2(oWc@Axf!opv%22|gJW-m)bL7ih^&>a*Wy$&4Ux#&-?nSHy@`gZn#x)7iZ z2CrQ`tdEtr`E*OTc3*Y1Tn+M3nJ#Fip?fk&jZ?SJAr{9@PnK>E4ku=wLyn!Cj{gsV z27q0yCxa9hUG@Mi3$b?ADBbGOEe(q5R#EW4V~UD`<37+rD9>&e6%L_6M249r#KY?;Bq-v*hjX7K5@c>zki z37|f%f@^m_D0W=C+d**vTGkA*>8mL-1L#tcGoZ#YC{4XcpAD)CZQnLlR(Br{<49tOaV8vOH?Gl^){j`?SA9Y_y$sE zu--cWEk|8H_;!Ev?7jh-t}}k(X??Sl!>3d6Wd|Dr!%k2y_l3wTa90H~#Bll!D7XCp z<*GkEo%SBx%-tQJ)h&*l{UFMxGxdSvUeIarKApKQTsl%Ocy#~v>@E8NDK0<@V0=1L z5BPNEo^a_%-QdydyWz!;Dd0oSLpOLd*PZ~KQXjg(r`z>_N3ZXN7b2fQa^0aPz=zcH zfDftn-SEON;NO4H#D=^_FK=L{DZ`69Ye6OK0gql$r%uqVB)%73-24Q}MC{!jERKx+ zEFRtL-5wl{jG)?_y&HVNsUst}j0MSXICAoPG#}^iwEoB68VFh`)?0ePqq+74$T_7K zK=Wx;YmFFeLB(#pieqQ{8&Iz;`G;q3KiEs49ZJ_;++1VC;M%do9wg+^eDc4mWjYIg zizK)RWp?S!V@6s)xZcOvZ|2~!p68tTo@iT}cK{G!f zM}m*igsg|}KJj988QhW5pi&pS+#8omCEzZV0Cm;SUAk~J*rj)Vft&_%=`4^-mx3LR z%cY=OdHGvFCjf$O=H+i;0iDSN4%A-^pgpzqEKv6zhs>t(JAkKBzm$TK?+Z|gCIfP| z6jA^~R;a&cEPW43-EVw5^A$k;-T|IV0q+C=8?mtz?sL3Gcy@y#NdxY61(4VEks=9H zZ!QB5tBH3zAw^w~1}MGttO5th@t?3jIXc6X;l%`S7{LPtbRrz{3lHWGut=QZ(ar4G z{D*_T8FUAtYxf(k=9(7;4A23J3Kjpc(A9Wze{X4)LHj6}}b2{h|W$3#i-2fpxFM zd&bh|Q2#tPfcxix0mwf>F5M0+o(CVWfTHQ?3b1Ds;GUT`-IU?QOE4GgnS&2mJeWVi z;%7U^FXm9cK#B+s{+5$qXP0w8o&5~lv_aZ*Vh3_}>wyv-k4^)R-U`r#8O^$&>c~Y! z!Kas3`#Pvca}2!W1T@~bdX5nTsF3*M*|{Gyy64(`#{;y$;fhB$hYRTHVSi9_=imbt zALd4oJm`=Se$Q^uM4&&1YwPV2Y1i&Eu9gaA!j9b+LE z_-;Nf05T4ATk%F0=13Ng<^vp_*2hX`xLPg;HC;>iz(X~cJ-g4p5CgAwvIYgYD9C}A zbpHR}1*%&>oZ2Grws8(m>wBfQJi0?)AQ$x)UbuOIigDi$pf=B^S&%jls0t&{=GlVM ze}ylE1kbBGxOP7Pk0So`=w<>fp0al0DAfRU)g)eQeh%tXhM>Hq(ifgq#0 z89X}KU%D|eFzg1|4pPkiqU|{Y!)sa4fY66Ypth1LxZ}$SY7u;Y2D;4w)LlIN;xdvX zxE*!t8R#6KAE0*B|DB-0uNNE8l`!82<&F=aH0aq`&f(F^n>*Q*;l-C_uv$pAlg%Uf z2Ba6sN`hldwml-h}b1`ON@azub@YEIqZBR#DLGx7SUzjq0LZI6hyb3@7c@;ph2WXvB4CwfL%$rIe zeO3kJ#Spz~R5pNGK8c0A- z(Cy!UkkXQ?9uU2r-B(}4xc&Q&>hpH`yGj#aju;%QyE-)0~oPsb?rXo zV|}975)}TPppzmVuz7T|NO)MX2$%A^ce?a4Ky}5aIDm@N?t@S}AsUNLJN`f50T*=a zzTjbffxoF5bXHyWamXT9N96;ZE-EqnEudKlSI|-+m>J*`z|Mjzl^>4H&jmaVK4SgG)Le6$g*rKm!kE(9$k`&^|es?O@^2Epo!6*9)}vs9Wd-Z}q?boi3ng0vXbL(7=QF zJSeD5JbI^svdjyeQ=mmVM<9XR%_8q&onTP3#nt$UBWS-0GzK7n@7Vp%!}%a*)#rFWH zI;hD81>g^lPB#x%;{%|h%_G3^@6(;5;^3)$7VfL13=9me#@~Fq|9KvK&SreuyIVxx zGRmPW!lT=D256Ah&6;IHiMqqLV=N^W9^FA69^E3hKvh-WOHd=gMJ3|3C^&Rqt^yUA z-A*1J-8?ruI>Fr=kYONm{vWoEawysg8m+AG=yu)U)~T|=r~A2&cAAIh!9UE7|6wk4 zQSpGf@F*xhxORW=vHrl{6bEU*Ks~L%-;&D&_B5=A@5%1~_H|npsI?99wT5f=5ztDv z4A<^6pf#2zVBdpsGxV}GNSvxNfofmy?y!XJ7!?bj?vI`apRxHce{$`91JW1a*)8T` znWVtqwga42U1zvh^K_KReLKv;-_i$~F6ln%(G6-riyQ*AJXSpT|Nk|gWA|B)ZqWG> zJSRLm`8~VEy4@TsogDaEyufpO?9CM%4E$|YU=vGJ5`4OIH-M8jgGaZ_3CA6rpw3>e zC`%8hXX(xIUvyQrDQMWC6|@+}r+YGJ6u_~eibadR^(v@@Za&27*?r0Qq+=J;Yf&4^ za?xI%PX28NdOctC@_2asKh(u!V^I6twcBSagCqDpIv3`Xl>&~(m~=h=A9CEy1j@MI zZyMcp+`({ambGK|!I_TVf3(~#6-laEVx zj!Fb5s$7kqcs3sg?>GlDY0j@I~{~vYf%u$JOvCdN9ZwdsDlDU9}FI+c(PK5UD zKJKIKrr~+;2QxTvIQ~Bfs>w}2`vN?mi33yzvN?92^yu_aNdQ*|&;R}hTP@eJVF5Tb)Du!IFS!R?dfJ+uDkM1A|k8Y7)ps}c( z_d%h;=hE$>V)B~XquWWsqnqc4XD44b%RI(L(BOz?^Dz#PnIPl-AGfX&DB27TL!a&% zSeV$%@a_KRqg^NAdGJ3o*vZh$2niFYlfjwMvHOOH^$q?eUr1*3Xg&>FTG`;!nL5Fv z8`KmE;PB8E@HqI31=MkoLE74CeSyDy9XkW)Hot}!W}FNR`$03qE|zHlC1Txv0o}(z zOGBUmxj*gye^7toh)1XE36D;<2p7w=gc9*?Kk(_n-ygyPd^(c43m%M zXEL}@$N(+x0aa$*t}}dkZ8|_9lmI$F8FY14^E&~L&e9hi-M$+nj1YifL>=tSC=#ISsY7MSnV_*Q~0G1MUN6-=DVEsJu!W&_Gz70Ji!9#OiOIB`PMC1qS?WUqLlXw}S=D<`1ATA)jmi|G(z& z=w|ug+3Csv_BCYBH@Nr#wdYDCVcz%b_GNe>4t4~83+P~XP}vO&1F)nW3uvE*XSXYZ znKcntQFBB+Wk0CkVMJ3&M1kYMc&i5 z&J6M(*gqh%J-Sa=gN-j*(Osfq0*>bY$3Xt{Y(B~X&g9@YC@|n};s%Yc{`UbDd8IEr zV7a#Wy@O}-dlqnx2Icz-L2zN<(GAXqFHJy`fS}9YKuh6!LmNE0V?Tg0?P74h!kNPZ zeC~j6gNLzA-W(-z9tR(?c`$=ouV70!UpQU({~v6`HwI9T3RN$-gHm)9EPsuGfdP6;w(pM@ z|3SC;di09EZwA$|zCT`En*bik4*mdIrsL7;`{TtC(9!$7qKyqu6k6x5SH%g#Z72I;$l-y1g@A zR6{r!9^Kv%FY+Lq2#;=WjTea!j)q6Kx5bMP2*<*wvzh}G^&Hn27o?N>F<1_HA&ntP?0;aR8aE3hMkg zfLbyhFaGWUbpb*^2UdcTmo{jh-hmhC=AhxNUeGuOXoO3k12la#M`Zs(=3{fYyqlFDdzHe7pNo_i0P;Vy7|*k8bdqCYSDm{|`DbnlxDVgXRf~UO;y~ z$v}5Lbwl=%tphciVEf2m2cDIvKvxXoI!{x&Uy}yPJ55edI68-WDW+8Zf?-97kEEZC$nd_8;2+8 z5?5~yk4|UsA`b)4PCpLNNdcgJ?I5=(U^_z)ytTf&lEXvW5~bBup6qe(87ru6OVs`M z-=`bA9s%u;!0G$J0~qKBN<4UBWeUo^#vaYjA9ynV^XRPR@aknT1MPwa1s7<~KV&)U z3)TwIeWmDWL=e<^>UQD)Pmp&@fo7&1z|+#*#-PLs+EQr%$p{}_oHqgO0|npKl?*-Y z1AfNGW{_O>J&)FJr3XB^`Jv({tB79qn}E+Vfee$M^6b9wvKAx)PfG>ho8x^tGZY{T zJHZ391+K>bL04;ebpQIqFJPM7WXj;v{SkD%mSgw#Py7P5j!mWvE|$AM^%#Gf4-*4} zYi~X%t%K^PPy7Pl3D`7#JyyjgQwGqwJed>xU7(pP{?=)rZaH|>aO(lk4zh00Y;yMn z(4xyUe*GV1%={WZ()jg{ffye=K~rt77)u{^H-k)u>HsagB0>jfCKsv$EAshUoI#ghX|M)0f~pSi z+6))P+6_Lvz6V?sYqx;5V!0^R?(pah-Qc2F3lclxqF8$Zv~}wRSK`0_P%BHlJ-g2y z2QQBXE!ci>JqohGkISdCg2$z^LIl+4Kh7`UdcmU;ygb{d(*kskBgYFv@aQxsSMRSk zWq2WUkAVT|=+Z#2nV?_;o7oI96TG*)gbidY$VkvVs;(QlU3YkNc7p=-6ThG%N2jBJ zPp9RJ>-S*g#Zr*TJMMx_289dMWDpZG@%R6Kk8-~%5%@y8zj#2@qF6TjegP(lKod79wU z8>3R-*&VIm*lyW-m0F4j0bh353vv_ukdGzvtE)VVk-Q`pw3LXKF zb8P;>TpIM+urrFoqxlezhxLWhFRz_EI-^)%+|RF#L07|Y@awVWWtcKlsg^3kq@KSB zxeJSerdm^m7qa&l7>=`nECuynJ(`cPfcDeyx5oef|KC!+G{mL*uw^_)nU7ERbkJmy zOZREV?h_u&Cmp**PJz}v%Yz8v=3k5@?BI_2YhmzO+}Au{kGy6D4dgJmaGwBobopJZ z-8qW(d056P@VDFnwT><0CHTRYOM6(xYw)*%cJXzWvq0AXLFZ;66K35fUWi6OQm`~= zIV5;W+M_e_N2erYlJXs6=?BmXM9>OI4a<0zvO14$e}(SD{||eB?hfmAm-x&tkTMZ; z9=gj!&@s9^6F>7ux=i5U*SPtaKQd(kNK9nHXa2~T383@ReLw;+4?rj3^GAk&bVRyL zaGDF zWDPnJA5^bEmcD}~6coZi>o&ma2w2tTL+3tPR6xs}J-R;{|L?vJTEpFa2sBtB588bW z9+fx*s%5(Wf_4CaHbr$GvW^lcdf0v6vdW-L-lO{hSRrTt7pySp7gV8jltIxG%PIx_ zRux7D2Foe|{uXJ_v=?YiQ1|Hjs_k>Y(A#sdM7Ei;BannUeO$T~u74v93im`>4%`osF5{Mba%;iuVAS>UCO#^kBZ=V|}TN&$Igys5LxM9W=qn3_1<2``n9WEl?Zt z#0z0l5DjYA!J0ClW(>$#;K3C#?ux(oA9Rux_%P%jpos#+#qSq?d33{WW%1k*3IU?v ztqF3!q9Ajf$lHxT#~T_S0JYOP zA;%?kItqAn8+mkRad=pNElKm}zKXcI(L?(h=;BqBkb?&`==45+(Cy0}y)vM^qTo{z z-ztGlCu9d5NZskq;nRH{bc!EnJH*UFUO0B!2katYx7UPNDv1VLE#b}olM8uKwUS8B9<4% zU`1`94J(}*miY>$O2^$5Ad(y}#K4m78lWQJl_O^L`{4Gro-8r*=nmHK=spJ0gv$+@ z5Q8K@X21?6><0InOu-((uluz+h7Y>6q&2I9ZtUa$5dsXL?F}&Npk;6jJlTSd+5p)Hx>EDS zWF^ozeYk{2ueStTunr<<-~l=x4zy&k%iW{H*#pf~kRKqsV-bE3^Z{koZXwXEuLdu& zeu6eRAPh&9^?}GjY~wy7VvZg?$-qfga(7J*@ATGdROcK4HY%M;Q+122c4(i z{m4g~5!}UF;n97QU$bI{3%{mAhYP=E2k1@@7kap-XQ@hs^E9bestEz=_h4gS;MX|zUv#0bDT6D&#`VuG{Bajt z`88g-@@qW$?8+bc!j)g+*k>31$mfpy8h=3|mq9lEbLH2#?+9v;y6_9G4PXRcJra40 zU*r5|NB)R2pZOzBfY(e!9ei=3$%uhJ{NyM8s1y8A7t{FlMMH{B8Ok_Z`8Dpj@@pJ- z$ng77j^Y9WdOyWXhk&WO7!DC-QFCIAb)_u+Ozwlhc-9Jz>|*r8pk}o zzXXT8BY)&USALCKAg4b6%r9W;5N*l;a_SAA?pK}{|ANe8{ZeSkz#k4y0S7>fP!GPa z=MO&*(sIp*`31<#6QB77!5;g}FX-CwnP0Fs0W@{ZuW|J=zo2gqNXbS1@arJ@!e@TL zsTrV%kzbGzM0kQP-wNdLU@Yc%&F|Ce+TjU068H2A-EW{qdN62D zDd;p@&@lKXenHm;59?ro624FTf=n)*MG$S^dz%bEHO7yx5KXXH|HvQy-H~4dbjMF5 zIC1~{%r96vg+JWZE6Nmfg?Z!;S5Q)O<&Ql0nP0GWh6{f&_F1zqQW zEfxLDFKG0cU$BY=ln0z3cJui3x=sOET?@4uWWfTESxZ2wTvy=Nx&Wlr391#WRQMCW zKxxA#enBI+|Aat8uweg5d`koFxQ?fFpc zV8x)=Lih#|TV7B_AZOnM5f4GcMUb=agNWxK0#tAa#vTFLoq7U9hMoZ%3if~$NFWIu zA3+EY909rDE#zc2um@rJD~jV;4{Bq=o7G6BA@vMnLhIida-=w7esRO9gwXSpFvyEizQq-b6=R|bgoPNq&T7MD&ZRP8@N+IN9ApF^~>IrjRpce--8_PTO( z`trDRx(eXa&H>V1jnK~N*z3#H>7t_G+Uv^Q>7$|oS}vpkHh~|-0nj_wK-z6S{r?ZH z%-VB7Wo-C2P)TGvFU*tyyfqtI`!#9)1kJqHN*MotX~zz(90Yn)z?GUKzd(x$s8$1A zEj2|2RHuFBj|AOabn-KQp$X<6LaCr0 zp#|h0Vw~oK&_b*&k_as@TS`<=k_~c=2u_~Q-eCj);pDlI98EQ-nm|E7$Z?(sEwCUc zLCS8}lBXEyS{}be2?AmqwgFWOamllq98GShnuu|nFhUC~)CeWd2XA2YN)2dtFQ{U1 zXLRiKXX7f8Bp67yZegM@i?#zz8{w$Ev-JKP+bQeY` z-NCgJ!iXq@5p0gV{_IdAI7l!;9AN~fW3NB7j&Vn;WAM7-3iyZ{ut#_td;NK#uHYlV z6%!Fg@H_VUgO)NWxc0gWl3;`%!U!S9UVmYzD?nFABUP4oJ;IGJLe#O>Ukqx5II1gf z*0*O~fwF}+2l8MXx5xLFkZu69)$han!d3e{f6D`A1_sE*rDTB6wdvt#Xb?!Yn!QCD33BcBY0wr7?okkwbjvO4Xd3<`o zEvFZG$N&BJwEj{e=h)4n;@KOb0=lB7lMS>v^6d{R}{TXV76N;MMb>`zn08A0S!ps{pnEV!JDd1GC)M z04xKs+tqopIMtN8^OK-PlXLbTEA@SZ(Wp637hzy`CH%%`X^BKY`|*u6uM&1I4dT z_wnxQ$HB9^;Il@$`#_>jy)0IpVD0}8d31vro}DZlzP%0{j@DO;ZaVS{uzB?QD)0+} z1I$l=Ul1HvZXgj*{P`JxLu)2z2XMDHhv!b%K!%4lw`=!tSjcI*sDMMxv-=>wrjJU1 z$M=`~nxM%OLMQn5umXRaNqh8SV!bsuoa;G z`e*)#mmrn=kxL9SAGrW6R!Lk-aB0RHG)^T@@quTaOKxX?r`PT zSPdE)bLH3A3>q49<=5B^8XAMnD1*-*j*E_koY@=d(Yr>a0JKo9@y!ItY~hb4=xkwY z1E>%J&EdUpiGfVjd4N(aFK9K>tLID%9^E%yGa26o-3XJw;BnkVB?GiH?3jy60E0)b z=#K=*gj&E0uke5WyIoWg(2t-f@aP4tZECJj$pEcK3sDIGok`K_qf+wXU_SUfih^S< zEF}z}#ZVdGg=xIt-P}GZ0WXq-{{3%GQBh!kOwerxtvTxrQ7Hg*5z<~UF@Pov85tND zAZNpaxh^1s%N$S%v~$djj4C4;rZ4@q#lNX)FAJxuCocKJLw<+mFL>4|t=n zHlN2{c*Xwf9jeZ;pnN98j(;oR~#_}bos`BwLBkMEB=<5@iU9gc#cAlec#b1e&6 zl_LS#m5j76)sy**NAqjO(l;KRpett%fDWYb=;nK|itpe5?syi@?js)GAHz%%B-SJe z$9|O^`mIOjde9O9W60rxWuSW!T=)f8PlMvS z+fBlwmnWA2Gz-Ukw)-ylrZVRFAoV`ICLNyLXO1&7GcYi`Fa+7$>CEBS&DY7{*zLvw zx&*k>5ln&4Hgx3h>1K26W&=&?gXKZxO1B&6a(V%i4p9F#rGo`T`E-E9VnFlyj{Gq` z6Tm!^37{nvAn6>4bPiZtAOx%@CS(Fws}0DU7@G#&_aQ0kg5OU zpTPrTk$*n($GrH=FBqd@@R>jI_GkW>U!VB}b5u+|^GCh~cU~<%^GE*w%nvS#-t%i5 z{V%%095jY_@-u(b3DB7E!7`!d6crN&@Qqf-T~rJ}^#*9CfyFLRm^gN``SzBvfG?de z06E{I+g$>*)}X_s)1?D)MCfhsaeVwulR;zh-C-7x>Pq0&?0b;?~lL{ z-F@Q4DKk(ULXMy5KH$+EX5rE8XYj(D=imS4<)A5W2KagxkM851-PszR-Ngo;-PIPL z!t4TgMGSoLOB|@60-uxKeI(eU@y!L$`X$YR7m!(i8=%Z}!i8VcV}}dBX21#;e$5Eb z%s>KYW?%)V_;cac+yE;6T=+G2fQr8tFYNyP2aTKS@vd__*%rB5^^O;{D+XBS*22BkJ1gkjmYkUOpqeVXR3$WgE0ga->9Rv?< z^GAOF%rDrY@&Xig8lc1lN_uBp_%)t^hWbFM?8Ik&!6_;WKqVz;V3uESjtXe?+h@>7 zxC@B40vtesJt}7)YEFSooB$Ga;g5OnnLqNZBfrK$P=$KnGk?s9&-?<;prN)F70?m( zARY%;#}Dv;w16`YnD+tfBG734QE+I3_U1$9LC%6k>3@J61F4DyTU02k( zP_Y5E1(L8@R6r*-g1md~ zzyn1q*k;grZis_h5au3%IR_l!{4vKq^9yWIfuxDZdtiMa8K}oV@d+x)en71_=mKs< z38?xwLFPP8ff6btxqar30nNaG#)u=As6bLj)%=k?DxhTd*@Zs>lx(MfvjvFv@H4-l z@MnI3Dd2<#N*+tVaxVPgPe4Q1$t<7wW2S%;9oYNOWCO}iFe?OlR6xn@Gu#sX$SDv{ zx$p}tfu*fGpZR0vfRhxcISHBUf|(FG2cjO-sswejKnV)TxQH8YPeD@#)cyPsH^E8R zg+Fo*#DCCW2?k9~UHuGl2sB5}0s9JMwIiewY5`lx9}XHbkLCe2XdU@A&Vg-(M+ms= z2*2`~Uocnz97d278uHZPN`6EHOrw8mHs6SM|jslf+pFy4hm4cu7BhP_??;I%j;I2ObE`dQNID+K) z1-(IaMGqvUIr7Jx0c+!rIQyAjU=6s?0nHmi+z~kinw=v+rhwc4Eqh!b)1Kgo*>j&k zMFlv8JMu@o0_8KP8+AaT2})Mha(Kjhke3gF!s{QX6nh6Ej=AuM{{iLBYKzbOg4rgZ z#A5^MCV?6X9^HpQJtfe@a`gjn;{w!EIsob^Z2NPdmo zpba6O-H)RoeIw8^N&%Gp0yjOoKYDa?g74V)1zMt_=L5Qu3BIPlNBg2Du5~9HSwZWl zti5|#$~<~`+C4f!_t3GFf!5YofCV7i2fPJ9OFY5%vN^)I<Fy(9@+;%%e?qJdRYWLtPgweJ014uzTweq z&j7j%iXXmIhY93d)Ws*(cgu}DKo{{Mtqwc?=kI^e8X*hNQRSdzV4$mOK?`C)hhl;k zMZH+#4qE5-4n#uk{(-KK`3d#|WC@WE=ngidU_9vg{RO!116vOWcUKk*XaNrDq8Mh7 z<=vnSU7&Snpi92o1weNpdVn`)G=naALRvNB(S6Drw08I4Bc_)!Ak$hem4NTHMP6jN zV-*B&f!Dx*@9cGfu8cbh?r(ITesTHt-~XVSZM#7mTsc4&D}p?K9ei1EF?d7;91xIu zf}!hPUOaOHZE^rD$?*g&w1KTT125izEJKn5FGB+F_4)Inni=F>)D=^QB|vxHUWBI; z(EWYZr%H%0@5c*mBF*c>dza`ZA8kX=ga4R4x*a(@v>81P{$PgRCn^s*NuuQ}C{gwn zFoIU0g2q4&{$%#(zUXoBm1p+>&>jftB0BdPcq1Kn zl^4==t3O`IFo83rM=#HJP=@sE<*|p{wR#M+ObM}#D*EsXT~|;tzV8BxzB3-6qX|3| zd^#N@JURmeKY2Uj6_7-ySr?qm1wNo%GLRY`w2B#2 zXTC^@|Nq~!`9EVR7wAYPR-f+UuVs9?&w=hQ@4gJ$pz0hC8Yg}2-OFO*)63HC(|yjf z`x;0>D;~7YvYQW7nhJPyhe0oR{qv%c0TeZMpzV1Y9=$B>klmUtDheLV$3a;PbXzHM z1c44~1|P7&WlmT|FxD+FN>s4XNwBRqoC2H3aEA@_2*wC$Nm35;bq4E|NmdGID-<( zHYZR*d1?Lk?|<0dJ8-$@(=F-KeaWZWlfwhPe%n|3v6b#bQ~|NWOP3OOR);%wf>A(%q+D?EDS#MLfrA*D_~tF6%z*seKw$?jQWcgjh%o zTH?(MUgCZJg&G3`!)q~*ZhsD6?TeluR~&x%IwEMcjN);YA84m_e6P98rjVnY;p&Es)v)-Qd;M2mb&6|Lrj7YDCakxS+FX zW~qQiN+a~blBRpz^D5aXn$n{Xf1IkXs~$e z3I+zyR7(=_e-Ej6<_UBrH@-K@wd!m22E^LEBJ!a6=?lG{|n6@ptC&KJv-ew9J@mW zKu1O?Kqqt0zxea}KlG#x7Zn4~?k_%_DJl+*-G4wwFQ|YjatqMTbpwb?Qb1Q!ocHW@ zmGJ3SIRR3d03tlV%P{L*13a2j6F?`j1%S&ckpBchqtxBCpaXvbJgkrNw=^(;dLasOWfhv-|b( zJn-yxsx#wXfB*kK-dUrf;%Hqfz~3|nJf!*CQ~Mt%Y#cjl1w6ZbC0?i~ z{r~UU?Fu;_#`F6F=nNkCaK-KuFJ3DC2VM3d0r8Dz_qi9*-~ayi><$H=VH5CzR}eJo z=+EJ)&5zU?|Naux(mnW_3AE7q;0t>X<{QvW|2`@iFE}$nZIfQnlOCV}NRY^V&`GtB zz{>b98Yv4B7rg|RJ^+@!4hqYR|Dsk9>BDg8g&^tP&;XEp!Hf3A|3Lfymx4;V&;XC- zTJTIuXaFco`j>#W{fB0FH2)GPf*zC`@Pgy#-~T?HsR9=*OFUTiJ_ z6$`!}{)=vvGi3m6W#?}(2DMGJzj-u2`{4nq(9gX%`Qz{Zm!R7QJ-RQ0Hn|`C#oQU9 zq63bfUY>f-Zgz0-4Qe?;QkMW|W|{@EFb$NtUWEIAE)cv|BIwhp3{OHYDIj@x;CU?q1zyDxY=IZF7;E62{*EK?%8FruR{@H#Zr=jXG*gHNWSZ#$s0?d7 z0=i8I(WZ$#eCFUQ$%aRaU560$0;t{u?N|qGq!n`m?Q{bb#V@9t{QvKfe8HnLSOQus zL&{i`@^X#J1W>YXd{Y2ADxjN{FCAKBwt{9keY=17bh_RET{X}ddcdR8H=w%-G_2@h z?I^+D#=*zH&>aLnn6LtLA!uy}Xe*xqs8|3WOIYz@!>9lMCv@Kj<<$zyeIVUs72T&j zy4yhGJU-nfCmfr>=dv@D1$D-#B!ITbfzQ4MP4k`rjT*bCq;#{K0L@2u_VSzoHG4cj z3mEu8&AR1shqk>HlHtc_1tIgF0wM9i25QF5Ph)pd$dG zC8vQ$XRU)rZ?L?_!B?yxBS44$8N4_SKBl`CRHgR%8oa0xU|^VFS;xWOwwi~5p|f^H z^NIhRt~)@R1v_h09J;}FKur|z=&V&hnCQB~qt{p9MH$3E4NxBT6?mZyG7zExlzcmD zR3f_FI6$QofAp zpo7and)Pg?eGOie{{=ORz`ddZkM7tR-Ty&nH@;%+KHvOMeg|ms^YR17R+j1ft^YvD z>)>-159WQKQErdU+6$n|4?1&HOk6DW`P+m+^4;znPTf2!z-K&nx^4iUC}(rTv)kne zho|;&P#+JxG6OV@11e;@eFa{8{R48r0Z_jz19aFG=o*U(pYGfV?%g)eT{>$wI6_?H zh~}gTr4gRpXML<+m+-k*T9$BvE|&1HK3)3h#bVHSg7x82V-M@t6D7PZoz@=Bhgm#2 zV`scp0NpMMiKGcHj6FcrkLv;t(D72;u`@uH`hX5ia{PbHr`zVcN4Lv&n6q8GpZQon z;BQI??f>Ym1s~pH0#2f^!-ia}_4%8AgYrgq=>eDS5)~WJX*30(@)~^52k1aCCeWEb z4xkFI+cyB5C)yW*8lBdcOME;)f$`!uC@@a=bf-@6Xg>U>n;U%D>zMiyBJ7xD){`8Uf+ZlkLUdR@6osywE6;c+FZFyH+YE>^u+XDh{EQ* zpyeB&WddM6REH@bL&Hho%$gI88r zc{aOqa6sy>0?=rM@S=bJT{`nwKxI~dhc+nBAN;`tZWrE#T(b(AG5`M9x3})IC%*&a z{!_{S|BWw!$^n+ADx2WJ62yamVN{+2Ra0r&G)bjlPGbr3}Y#?1<&Lk zgUsZE&2dMV178(@!yE|@%P+ zS;M9Kl~3<}&}g?$Z+U@F_cI^u=iZhgCMDh=hq-mfvp_a=e}9bDDhr0YP#R>zviUqkosAM)&EbM9ubaqMIVWxeKO9G=a`Ssa`HauiK>>Hg)@TW;WODWX>52eQu- zWFL5~!}rIY$B%->Twv4OkHujjA_KAyd>%X~j6FI9J$gL_z{@V)gJa9HlkGK&XY<+r zj{lE?PC{^O{?Ab~8`NA0@X!X`D0uKUljDAnEsmhm^C0UnkXB4oii6K#10@SBk4_1n z-U84$-n%b?Mn)j#cqdnb##IhGc3%gzMxQ!>PVx5b{_4{SzM~IRI+#Fe9@if}ow*#K zqu{`$wNJ0>4p8Oe`{TulBJgRpPeF=pAZZqSuC4Y#&`=b(%zp-I<#pe6>9(2adGI-l z52PCL>8!ngwB!PGTLp9X3Ghh`pfzx)XTq-&0}WR=bGUYYb+OduZ_8r@Z8yK~qkYe% zJ4MCB5i}s=&e1K>;nD5P;nJzn;oAMiqucd|Q>VxZP-m{drMcNLJm6HX0XnS#yDaFAq+ZZ{R7@Z-ZmhkR@gmJ9ggzp9(4a@Be=n$gM@)J}M57 z)gBnPeLfWdMI?BUNB1;Pa|@cj9{6Lm9lOsoKa>aehb}*IZVhQ=;BNso5OO<`2jq4nk4~8rkjs%gt?!k{ zI6`j(_3VY-2Qe!*@K1(G!Y-@x4rqCm2s z`-u1jyFpa*V$i}*&_Sp!){tOmVg+qR1)T}%)1CSQ)UmAq9jaIA3pyIP^nnlPrWVI; zM$n}kuEv+VyM2x_cz3%TiiK+vbB~_k569 z&@=!ln2vzDj4y;BOSmLKqbaSoOHgkWe$80=-V<`ivt#pekbVYmiUeCxv=HQD@Ogx; z#wWpNM^9z|4Y^$L=q`QW*v;hAE92m5{LQ=D23sB;?X@3v>4X0*MYGUEa2A31M>Y{hHjS|EKZ#+hgcl{A44_QvHPBf z^^KzC;2d;_#nt*ee-mic5GYtYx?LX_{|5y%=%ls}kWqv`An(6@`4@DA+mjNI1c#^g z6_4gee?TJ;S3nXT-L4Zrx@0`MeNTXn6FvBo$)i^UbXPZM^y$TVh$7I5)vYH>Xuz}f27gl$ zXlI;dtwD*HM|Y@$hjyp|$Z6nif(69d7?lc8ZRHHgq7@$9pyLovzc}&~)X)p<@X)@D zJYew(ZG^U0B*^37BWBR(_p2A6c>(aQJ5UF9vLz^2&QaL_>QOcx0d*{qJFwtA-Vvbn zlA!xoK^y!7pqByux7-Cfqkz8+G*k~MLL5$bbXMHxe%}=#06Kgbd|*L0PY0+&;@j<} z&=I4e;M?tUfWx<&=pG z=Ac0vd_8)3j(cF6clPW)06OR&G)4^??R)9-7*y!Ts3?G{V#r|`Vd1b-^lo}|7jk%L z8+si4$K^?o&!Rkp8NBn_8Hji z9=$BvL5CuE_OjT44@Cf97Yn-n7ZipsyfwjN%8+q$(3o#Gcv9I17H0jAKuIAODa<^y zg+02tJ-*{e=Py`6_BNx=x*k!8J`9}?z+y)=$#yJ!`u9KDBy}^`4$z1x%2YHoMC(DL zh}}Oy;Ti`%IH$Kr9(`{Ik8k3eDQ&f(D+ zFVXy1zD&rYTfF=94#@Dp{}YNXoBn_rq{z1{zK~^LU^wI1ebBf2f=~A?pYD@B-3L6o zFL`#Kep%)G|NogY9?fqwJbHOkO-vbHoYgjBICJLAndV>2{7tXGBMC=5IzgGfLLk(m zH)Ekk;~P+`o?o-zg=hB-e$9#-{Nexk^^SM{!nTOBijBXe2)tG>>cERICs6T%wlM)T zRRr2xAAaeR3xCuF&+dah-G_Qb>OC+1@a#U}0iJL==+W&h;Gxa!!+Z!dB?ela3|mUz zV|}Ph&I5kvjgR#K{&vX4&ESp52Yng9d;Dd07=zZ+9{B9RuXWt`zbn7SX-9sIPvGtA z{E?sy-*G1tYfpm`8E6%X>+#S0f~DudTS`Sh0!*D%paHES4v%JM4j$0P8`tBY0`%y% z|NlYDS$^_s9RDvmnHzkX!vQd-j@y($vGzK@#s{#ej{K3IKD&Ze_3#Up-UgZJdKs_z z;Ik`Jw}DeThhpu0#oEV;wa>v?cs)9;K-*&BZn+O~i{-Ze|6Ta?@AJ1C{ReGWn*(0s z=Gh%B;MrXbT18cidj*YW_v6^ZFT~ZrdC#%=Co_Lj0(j8_H1Z**HHJEdI)-`l=BP~Y zXna!uTJ)(|aD!jt1L%N8Q0(t;;nz3>TE@Eqw2XI#D}VSUM}ECej@=(YD|$hTc^81H zWfy+U6`;vg(4t<@VqVaqUeGZgpu{qb6*Rds7o5bx4|u{?(tCCv{mdT)N(iuB7~Q`- zF8&7{*#jPg|MB97J?K1(|DX7yet>EqNB*b-FP_*NF?{BaG@T>~-V_ZAb^+dANmJ0d zA5k|zfmJ35S|#epAO6vWU*kT%#*f!59?j?fg9JbG#~kO6y3QYU;uC))Z@#Q4LmI#S zsWN8%@c%AdTR}@nU0c4DN;&fD{i@<{+zDETUBc$LlZ}Ca!G(YQx!26D#wS5b(?OfT zv_X5rV5t~1m;VDac?zBrKG4fj=Ge>P=)(*?ECOw*54QAuoCP#70Z!i!y%-oi^9%6a zG=L;;egV-{65vF543yN5@rU1b{<(Bv_*Y zTEi@u0^S-Vn4=Q#U$lb*>7+4XV32bp}Io>H-Fke#r44!p%w`UJ*-k z66km&SRp$Dq$^?L|Nr1z#>U@r3^YpH9Sl06u@x4(wa~*tK!>TULAV1m(n0Q60y2>g z>JHFMg$ihMn-6%Cnk)E>57#ZALnn5C4H5&NH{rrB2u?g+NTIO-WX`b-kkDvO-NVqF zdIVI}2)aVf_z(ek2&@s+M|(i}`ZoLrpE(e`#G)21kDVqn|;W6GJ}p3xt5O zgg}f+1b@3fXggQ)|NkZRsAUOqCFo)Ot2n`@m!;klwCJZ>*rWM4vtzf900-#oI~M^S z5XB<^Is%VHz_Hs!K*X`rMS#Pz`zT1rM}Wt%(?>wWx7R@hWCdt}7g{0YVg0LU1!y%U zsLY47dLaj#I`V7asZ{VT%XEx$jEz0~Vu?Js$^osxf;2Mw-P6Zu{7R=$$@*i{pO2dB8{xWb$2--s#3fiXP8Um8p0ZRFx z?GmmAATDSLZRirPLeOTFP>^a@P@!51%3`sgVlcMlGw7rZ(C(I4(B6kqiO>9ku^T}7 z5mZT(f_Bo!f;7jj04r2E?s~!Mtg!uY*DDa}2AFbDNr2KRP&&ivtnmKhE-C>~eh8Ew z0p%M&X%ncp1(kL?F&InaH z0hFYwph{i3Q#C*)yFyMH0h`R^(wW5J0aFe>n!+2Zyu0)U*l;0`;TOOrgO0I)nhf@! z0#vC>cP*#}sucih0C~{L1=Ng$nJWNt#^==#4}#TzT?{&?8Eh_6z=2D@6Ua)%!POv2 z%?UCWToZyT&RNK+L6#dqj%b3q6dbx`$ZGKT$PZZ^t`O2hRs{CRf^OFp=sp3TA@y$+ zlBXd)3Ft0Si2y5x1}FF=h5%3yU0C)1KS&nTt_KGb$TwJmas{%fAT?Ng+=8qIVl$pF z48v5d06JM1>`rL(fI}RdL^Lo}qqIHX@dIvp{91_=2H-HolAf<3D*|~5i?=r-s{tLz z<)RV*b|5q$!43omWIM7-i02);T~s{4s*%0p01Ea5KvxDg|rETUAjw8 zfJzD_c+v-HIRNrqHCRjO37D492jHY7*j@Spq(caNTw68dl(z>U4PGn$|L+Ffb`;D3 zRtfea&J-?#?0m2vvBd88hXzRpw_eQ{t`n-XyYvU>)V>d3=kS8g?t`Uukc+{W{KP?(f|YKx<`i!2?dXe8@@(hQNa*NFjhDO!pwG!S0Ef$V$MTz>@k(kQE7byFxQRG$nxo z1e~UQ(Ud_-6;O8-RH%cLf%B0XvNEuhSi+4FSrK-p-&;&L1a={-frKfZ1lxn8n!m+c zkbwbQ+@R;Qmv(|gwBYQahCy3!wTKp+6}+GYg$cNgAp}(nPD>znx;D6U=XRi^6i}%Q zZofTU1S;WjJ3s|ocj*mKI=ukah!IZUme#gKNZ|x7w?Jo6GQo>ZkR!n6_980;I|5H_ zk^pu@Ex0zpW4R@=nPAIt6q*81g|L>UFH%brHGP1a5f2w4c?!F~_d%6_TbM5V0zo*8FuUKk(J;!Ndl@2WNirO zF3Dhl5+U$Vj|;z`5X@q5DFJS=zF0ue<42K|;4^CuvO>%<1e`J}kkw%KX(+N1aPVS@ zFau;o;4&Czvw#&@DRwI#%|{9a{HAS3RtiehE-H8`!%k$?*zHb3Rsu5+XS>{DK3cmR z96(soA3w6OI3nZqJS1=9i`hfS3L$R9Q=3jfR*l2z0%SD=O>}~){=_d(qEZ0PC4$fq zMkACo4X*h_psK;@aM=F=e69_&S&7H26Ugeo1rCnVZa%U?T#-_RtO#Tp&Tc~hvPwuZ z)d9556Wnir7x>_2D!9F)Fc(yamw+yAhI$H@8@_?gt?7m;f;1rsB(mvSp3d{p$Lmf_h&(T4K@iJKsXE3Eyzkic^A~W zsD-vJK*!QnbAV4A2Dbv*XMuvJ7Tmf3n~f*4MMDiHvYVv?RSq^5l$%_kc@ydecuRyC zSs^$mQ9}uw+V0In3IMPoEYY(QSrI-fCm<`tWm-0}B5;`FOq34DO2Ot~i9>0qA|iW% zZ)PC*n20iF&kRshVw5ph95M;nWc+1JIQHC|WrAgd&3ZXB{|aD3qGRU1Q<649&XfGP!-5#U6F zCF?()iV*;K1`)R+tHx;4f&224kd;7uj>o_hOx1W&ff=%D?A8k-D}h*#$H1pkkbI9? z7lTSra7*AIvKs7`&O=rL4r$a@DR^+G5}5q8TAk(Gcg!(t8(vLa!Z?p(+S z0=yOl^?<=c2#+U&3btJExFk5CV7GM7WTb!sTdD*%3lvgdv!-Jx!jj;MkQHIK%pX|^ zj#$w~Rs$)(4Pfmv=;asH9Ip}Wv)_|I{si5P25bLexBK!WB#%OhZ*V~aZ+9X}nia@O zAx^;CPOX4C!2{kz#O{OuWOE^<47`>4^4L4j+8@x>*4?LHs3EHa#|oBo$2jT#fBtRY z%b-DXyr4-|&+cdg&+cLe&+cju@EmV1iz{e-3+SxU2bd@DBrgChfs6-D={m;59)5A2 z5j?32UoVPnP8YtC40L*eL)S0R94^Wwc)r~SL6f|oqZD5FbUO-ob|3b*_zScqOq<)M z`;tfVAr;Squk3x8FJaEzUMf>VUK4hKzukumGB%%OTWih~Rn%?>mJ04Wa%+ z+75b8NZ$!iGjJ&59O*#p|yZhfLe3^b#;-?5X?vD1;o5p?q! zXygxc2Mjy(4j9b|NGTOuX)Nz{T@S7lk%kkOgM#E=KSZfZcj|p`CI_V|*Xtm)DC4Z) z^EEEQ6+>6ZffXNzD2DcvKv^EVKyC?Cad#;{*kJIa9y>@atY!u&Wd}K;5~>ue4xgC; z$O^$8+urTEA8aO)$F_saRD~*a>CXL+F!wu1ElTn99i;e2A0!mO3h_Af0LLA9I7+E0?bhh|q!7os&*H!#wA%p?WDH_O1@h7dnZJ;)=Yd)v}3|e~*Y5+GM zU`A;JqqcEhe}kL_2D{H4wn83!fV^WkbgKmDqzurx7l^fr9@>J?rHY>2hd`TFw7EeH z*m^`864oPTaf8~l;Pr?%WgzPj&oY75BWB+=0j&y`o&U;&0hB5}^T*xb*LcjYaT#)S zu4vUO69&*KaQ;Zu=}e#_rXzV5LughAUocf2w31LCv=SC{>U1b*1!5}bVg%RQAc^}R ziRYkYhoB|fq3=Orvp@3-rp^bkPJ?96gJju3TyBsAKZq+1;!1;L<-ymYD}3e`Oi=+X zHVkbCiFSkJmxGkA1}R?;;%)~?>;`f7gVrc&gNWZCVmgQbZPbVXF9VP5hZG^7`303e z^9x3SmN^C?E!b5DHHSo7kBKYHrPeWUAj}Dr2}lmHb@6JJ1c>8q=Jiw?o#yTJ*X89 z-$nv%-hXOFau3+$(;;qw`4!Y)2mAE|vPv<~`os2a*M5*<(7Y4e)OJv~%t2NQE(pNI zD5mwr$O^%RBG(6SL&0^hJF;4^Q=t_CEZ9I!1qYifRHaLIEuLgHYAr=m4p7QBeQ~0?b_ShyXY}O+!}-Yaqguf*cHX zLJo#XXlV_LUyw?0{5nBZx^$bY*fL4OS)q;B@FB&1i z05%mI6}aPf53*WNAh_ZRu1Ux$!6^Y;C16^giL4N8BrZ?cBdY{E6nB~tMpg?p6<5Z5 z*?{hS>d^xNcRJXDp%!;kbReq*I{-&Yh(}fk_7!eJjWN{Xb}T!F+Ueb{;F2As z00S3xx9gAs0qj^Dp|uHFAvkVvC9n=;m0)ij?{)%$E4gk(RtdHoN0jy;D+C*fD|06ytHfudC9*=Wk+@vRkF1h#rg~6= z?tNSVwGCM%I7X*Kn+ova4KzXrPEcJn|NnPG8VbY|u+hjygM$HFEyK+P)dyg6jgS?B zg8`RoIgnL?U5mT0xKoW324J&G*Lo`vqj=&YY%@_vb&fDS0 zYVn$?i>wkHTHuxeN@#)I$^trarx$W{!4A+6H>lhFKZIeZ?S zIiNlMB`Ol(j#H(oP)cHiwj-u!~GLJ1ftoF zGcz)Pn*DxAR}Xq>^Fa@cn!D3-GB#Pdl?Y zzz1M9AK(C=8{K{4#e;MIzz1Y#dGr==cywxb^s=gUf{s=^=hMr3-UxJ90Qf4WqmJFz zU-8KL?$U3ToD7k>ATm=zTIcLomo7)Px^Fv3wU;mfevf|ZKZp`!3^55e)u&L=m6gs zl?2e?_!*!>{tIA74}5n zrjLBO4|y~nk^qG(j>7~{CXNp9x7Q*zTbJ;HYzr3f>GtMmPQAk5xEC~M)SP+)x`l5C zWb0n)3Wny?2Mo=rFBqCrKQJ_>eqm@%JpkU~cii;?=;E&9t{WH_8ulM|T>{}ff$)An zcqc$SU+YsP;*QOV435o-EDVmvL6>hf*!wVMLw10CfX?x_mVpveFo#QbDr6fNxU2(j z0|Pbw!RmQ@dLbL#B;blmSAeS=u;K-foOss?epo7P7q-tat;+P|$!a+yUTqzgbYlU{mqf?u4ukpMjE4g`iC{ z)}W=opdRZ3kma37o(C@-dshPSJR!S}VW`7y-aKS=U^n83qEe{B?%ERwyAOcfh!pDJ z$#gHMQm{I(nK)un5knyk%YPK3`x?8=7m(F~ZN?FW%P|zb<$9rp0n zLso~+g{;U5@mPGf2q|d52I2_AEyxPN24Z(%PZ4Oqat`=nIs)yE#z(Mr2lUPXCk~J9 zTRz%MhznjlyAO8%^!)z95quI1%3Uk1Crfy`&pU!PhJ)(XZ=gdcKxeLKbGv3Au)$FX zN+HjlA1F8Q>;`XdDCPhi&T;w$`|JPzTmP5vfd+PrnHd;7n%^^)eu5l41Gy&V>_eEF z5%=zdI)d&W=zinT{3gMto8&^9lY~Nh1{0`>1a|X&c0{2K+H1e~EohfDtXMt*8Ykr~ zzX}>J6?8oSQc(34!g&JXv_d(c8?$_W9Ctmjdey3Z$6X&BkN&vtxa$iD?*fE(1H=QB z+Y%V%HssV8exF`fSi#*>07+0Tu$&HV&Vo}ts3?SJ0F~U}ydDQvUHSr?-@&TEDGNLw z03VD1mtF=?)!n6#q8prEAw@Ux=p(r7W`U|DZ0fCih>N>x(Q6u%Ry8=#*Fn{SO~q$@ zD~3XFzQQyy23aB4_qf8!h-j4@$ST3E#9{gUJc!r9-T_;VE9kf8fwFasN&+lTD|mK8 zj!J;`C1MZ1*mw_=H@c66B40Aoo1?PBqw$Rg%}%g9d~Koz(i@qnq(Fzkmnm8f8!_58(I=x+ai6^5kd! z$V;F3BMyG%k2v&S)b6kegJ-utN_T?a)%dN)_m`k^U_ck8xbSP7@acZ!dGQbErdjZ* zH4j`{pYXTvut1Ji5;eVK!rJ5Guk2G%pZ&yc2v-h-0_QHc$wh>ud$x zpXkW1aRGEg(Pu~g$P0+TFg#=eI>bXDMkU1+bR>=ozX0S^o46mY{2Jd~`8D2yF3I}_ zBHlZKFJ}a~5p=KT;!UI0ZN1zoNH5WmSxdys76mpUk$Ul)E zK&GDnIR|uasSAHZjEV_}m!bl?YZi1l++pxJIu(xm8dpGSL07Du1TnzG6@;yF2SMeb z0B_I*u5`y4x6_HlIAsCa;NzWHkQIT}=(#p@gA)|E&E%kLD0U+aA zv;O}F$%A|bb|=^g9o^tGis^&|ke)zf(;Y;6mpA|Dbd%YJbjz!Lj)$v#a$R{-(dbK}Fvj6;KfdS~Ezci_M|;Eh%6-s}OY0 znoqYQhmSTR;=oJK?=O71KY3pK2f9NFTvmNRv}Qc4f0Vmk$v{a#S-_5VT^KPF@k!|rxM_Av8{cRjc~`~Y-uiBC5!4>SJw_y5I) z>)XqT5)OwBV~_ubUqAEsf4EDyR`;fGQQn`6Td^-^(<|HoZh4wUe_bg?4|zx3@s;@N%Oqx<}S(JgyH z4lS|v_-VgSBh3Y1m^d^%lJBtX~2ae#XWo}ep5eu54#Z%*W3*crgY z!0_Tr7xduB?hus#k8UoI>Hv>k4+WoI9~JPW9|2v$FX}*-D)fe^IDoDdd+`OFJ^VR5 znh$b-#<3h;JVJ;FKtwL|{{0U+=FXktmTtyj()i^#{Mk z;cnL-osOUj;v>CyK+1vyK%|ohT(Kt)x@r-S3NHx|86*QDofHtNCD2uaFQoQT0jUep z0Fh2Q{3545@e6u_)<*Sm1M;1_iL;Mx3wvGj>Y_d$>5 zBLcC9A^8ar7neMG9SwZDZ}@Zyf{u~x4CL_X3>0wfbpp{6;J64>@aYWH@aYtA=?uUT z4+1_ADMUO7aC-Izn}ANw zZ%{l%c!JKsLe?hH305lL35pnjKv2X8IO_Onp9VS28zdMJ3=)iR*74Q8%r9~Z=1OqH zbvo*R{Nf|{2SkYof=CxZme2eVUVlFGM+kl9k8olEIS>?gLVsX-9XnlwSUj2!@qlk1 z*z4KbJOy-Pwj;lQ3nNIM1K2no#?Sl_93VZQ#-4x+Bgk9_(6SfbFCdG27&$)kM|gl$ zfRcspAASK>kkWb=ravCd2L!=VeE_+-``n95 zpfbPv^e#{};n6Mq;#$w&{|(iW3?;WgDFgW=VUW`WLc_u#rE~&lfZL<{r$;v@xaPkI zn*Q?WbbSD_s#MFjn*+r0vGhjfMh%?TU~9^Jk-K(j1dVE?`N+5PuFzkurl(EYx> zp$|N|&x7t}dhnw63@ApKk2!NNf@;_9IVzybR6UxHB*e$X9)5A{960{E4}zkw&T)4G zc;4ZJXZH!mU7%?>egQ^DenCcl0Z#!(enC$GegQ`XM}9#^1%3ff1CWRTzks6yNW_6( zz%u|O62LFum;e$<@MS*DFW_0=$$T0l{=u{P6=Uf-egQ@gR#3(QncM9t;MfVei{uq! zX$Sn=>Ry?P9^IE;%=!ds(?P4yGav`T&+!M<+aS~4dvqT>eCCX+@g>lqhY(++c{Cps zaoi0`XD*!r9=(AwKAnLd9Km-4_;d#T0G0O8qTZ!5P{OBE$fYxg15%^BU@U#_(HmF; zQ!V5Jk%E*c?>(6hdorK)1PwPXISg&T3xFCNkmiX;vmyg1-5?q#;Z1-4gPIctphz?T zl^@+VUX+1SelO@=?GP1%7a0&9xYc3sBC7T8|Fq-I5{!(Xc1EW>D5XO4^%;;qPlBo} zP}`x?6VhPl1yx#}5-#0`urwOL6%G+_W;w+W6j zP@dxeO??R%{|9@j`=m#wrAKEahev0nfJbMgghywkf=6eiMz24IN2f(+1+@Ns$yoZq z6VeXa37Sdv=(O;FND6=_S>JnfI|(>;-|*=bi3VS20vclxWOV9wnZN0cBZ`5=#%uDvc6jkU~8qg%U7@3Lf1~8b}fkFO|h1hpC?a|8`cmqd0^ke;PKV8J6g+xaOs53+*!lTnS19Tsw?5po1Gh!&*=cGrs-%53;)Z^oxo5Obq-Q7d(1H8({8@ z`}OaCr;Cb*WA}BatHGC$Azbaz>-*z{1jxyt%f~EyK$jqTc7FxY0lux@_*+2t75jAC ze0J@A>S~$K!QVCu+>9zwaq!Ii2P%p@m}`H4;u>^^)xpOsp3L(>Ylpg-TMv}zJA!VJ zaprL8X6XQp$Mp6ZFf%Z`xC?IUT>vE~wm<*>JN`e~&Fo_RqUa)j_({+K_$NRzGyeSl z&ur}Y|A^=RV;+siK{mNsr*k-hE~{ZEn$%gMV&T(S0=lsg93my40TNKK{67Y2KnHkQ zf8%d*0kx8QLATE8eg6--Hs~9FizgFkYB6<&2k5f)BOaZu8$7$uf!aBsn~(gubrf8? z|G8S0a`3mYFflMVcK`P{_?*R)c`wLQuHDDF`CCu&w_FA{^uswEyAQZ@^EA11`ly(= z_69JzbcU$d^g8}`>^|jUeZZ05oe6jnGhcW23(H)@M;XHan3qU1w#tZW=p!&+-f13vr14B2M zZ2rN--)_ywz|j1Ik-t@(k%7Ub`><#CRS#$&S9}L)xdFP?*#sh7z{bGvBJn%u_L{>U zpmj#QpeD?V!|y>uz-^%B59oS>Ua%;nh3wdU$+g$3j$eS0UyuRRPUaW%05_BQ1s%Yx zWPU*pa3h&t&;i^=<`?t;H<9@T9TGg54}x0A{DK}IJef~|2XeMSO!DY;)9`@UIrN7|ub;+?o}d5!g968Kz{LD%(V zcyvpE?r&?UWn^IJ?gm9tuRCM&PbPlnFOBXt4>j%x(p#@#zF>1{ZbR zAu1N2Tel26dLgD?WBmVr0;t3@@#qHKy%pL3y1EBiM4s^J%)J3p4!WH9#0xEaYBhX1 zb1gjnAA%{@c=4M7JPT2y5&wf}o|fAi_iJz;#nvs=og`-G)4N12Oj z_d(Bt4_JJdn?dD^OZN>&ONKI4$L`af-439u7#*2ItXMp{T^qW2COH0g>1A;If7sPp zqUf&i0muIbU97!1iuQOmAL8(6e#cn4+^0KthO6-%e7b!#e6`Owc7|}WFbjJAKj6{p$>L*upy(~QxCh-8<=cJNv-`WJ_E+ETe?Hy0 z8a~}iK>_M&{LQo5#@My{nu}#QM_Gt#_bJbV4_SPe`$2AZ?7rt}X;@|oa=IhL>A^6U z|3B#34RU+01EXUnh|$gM$b8DVlc(kXVMl98(8Y;|T&%-6iq?2GALj4`ElimTuIWG? z0{Ow!_!58k0e;O^P>IDKev)6a7c`c_ui5Ir#J~VTH} zmKH!3BwHLYWB^?N-Flz|ye9b#8>p=R0b1ev$D^}$hex;T2aish8?N0)y2CkKEYmp3 zM}!Rv96)*BZr zf~+^z@#(bi=#2o~g1R*ZaSLiJ+yDQr-N$!<3;~Vq-8~IiaeT+46Ve`t=Q#M7sWYC% z5qxF`cvPbkAm(-Ji7qqQ3AK{dUd)yFL3H^Sq9oQ>(tq@97H?*KmK|u=n~%U+!>zD=l+9j z4TIWhP~ro!)g5FjIEuf6E~GpLvNarTE1|o1LDm|8tXb0S&T;SoQ>Qyi_o2=Z6$_W{ zU)`rH!#Kcsp1%#$P;u#g;Cb)~ix2ZMaC*JvXepw?-{#K7z|eirPq%M_Yd1?{>+Mnw$8H&w|EFIw{XgB!Gs~IT=N5}& zw@9aB_X!v4L-01_AxD1a3$Qk%hflAohez*J(CwlS>pr{$l@k)6&6-#*099a3~;4vp}T5%@iYuv`c605l>JM`E>hkaO&pi02R_8JqeD?K1abtKB&F# z(&?gNwm>?#0?DF@?A76SaO9xMzD#~2trx?MG#x>*`Lx*;usUYRD3&e#VY z-L5B`xDD?9`s zgB1=6kiiNM1IS>7g9Bu+!Xp4OSmBTW8L2qQFW^xC8m;hTJ_swVK_H@|99zr-!0I3sYKtW+kpd=SV3vnr8@?6$^B8sZk`5bW}jayu9h;L z{4JS`pu~05#rjpzqZi8+7(n;2di09w9yMWjQJ@IwljY9vXg$3sfDyuzm$G1l&t%U}s=>A^H&1 zOKJrf=FvM9B;?WC3o58yG(Q5%fGqduoeC0yCDKfg4Co>-&t3->s3174dUV(BaG^oR z%B8#Z$ji433=FQVZ%bMJpL)&W*c;Fl|UROpJ>zDj4$GcB>bUT4sd7#Yi%pCF;obS6u zCV;zC_)4V&pI+AlkKU=E!V_Xi)KgGiX7Fr0U;*k@_fCdTkcd-#`2W90?^H;*gWF~= zF1-eoVzCcio(1>B4uHxYSaHSyDi0uK){7=k|NZ~*?$`s4)-o#HJ}M^sP5XcT{|~x; z#Q4(x1E7V6)@~g9O%r~C3?@09_H<{0MxBu?ASyxAjR0Nalto z;ud2*u#87HxCaB$D&f&R72F5Xz5uyS_{57>1rW1+R5CoeBRTei<^WxdpI8J-mg<1V zxO+oXG9W>_8gywaXdRTaNB8v?8w>vacdD%O1^-et=q*uk%6O*lyn+pcz7akM2+o&^Y-H_@Fs>N;SX|DsTxMu!Ql+=ARtJ`aaz*rwV*q50t2a4Uq?3 z?fm~BNQXMjea6-J0C=v)z^^;xkbz_O3DAU%GFYpuNAp2W(0(oC z85__#)OwafuTLF@oFgdU(Fr+6(4*6X1F;XRH)Eqm;~U6wpO26kZlCUlpaIzK(sI|< zZ>63dt+)AGZZk13xLD-Ym&kZ%fAZ*N_vmD?^Xb$F4Tpkz1aDsM1aV;o@FS1)HX!IHDeV@+U_aMe`pU&Ltp8NkpfIKL*iF#V! z=Wp);nF$*4@csW{l@+KV>H6M7+x5N&==OK(8)XnxX>e8dU$j6}UH8y-Jr3?`Ti+;? zN4|&o27f!Kzv=-t_4o^uw*UWqyZ?gycn>_B`pu{Ny^r=g|85mMpUzZq$7UN9h7vna zL$mn-v!gYON~z(CB1u@KDX`as;YF|n14Bb?JwpkXZ>O4fvx*+W>nhLgE1-LxpYZ(u z|2o&BIrTe(M|bFR59`qPCEOm(N(>&&uFp9@t8HDsd-VF=fALxd6+rGtheW?$UCf?$mJ5n)L3_|32NW?4H&aN+n;ck%0N4YmW)Ti&9AjhL@m( z;G=!W^WYC=m(CIu1)px;`<~rrUdX%vbt=z#bi1DS==MGCp?we>x~&IFbbY&zI(3UQ zdUU(q_v+?3;L*u*&GG+1G?lL12SFnn*T8AW$g}$^D3Y~&x=p@=3MElcQ2q6V7DFJ; zipl@}d;CAaPsl!_Pr0vydXvIA&P#y@Ioj8 zCpM36-~S**pwfgNrbspW?|)G70rI+MceDlU&?2M)B=+zN>vezsPk3Rv?k{K$bBKz7 zNAnwtE*F&q&@7#YPq$!)i;4zl@L9pP`vhbgk>h{R@i|8<4nyWEyPX6)x^LQox<)(y zgBr8W2RoTPnyVxPikLmRgt z;L&^}AR632fG&yXz6rVn{6*13P$u#g@MuovU;ssQt?_?L>#|(XrmgPl9?X|qx>+vz zbo*T7aBV$MV($prE^Y)SRl%ehn3M#QJdVvj7)v!Adjq&%OYH*1#%p2l+}dlNU7!Gd z%?cjU_3S?R;`fAq|NkGiwl10uvgpN|3IG0kG$#u%KxW^Xk0``L+zOfw5r9sJH-aJ$ zJZuc!VC~jD85FCnmr87m|F>Q$G4tr|hNv+430mzc11eLu|NsAgR|N|w*PeUP2C@aB z=>Ku+-5}jXr(P65L_ta6MGBZb8|Nkxt&`56g=@-sm1u-hfiDnD(f!Gz`5?=Sb4Lw9OO07Qx(~nBGyZQ0wzW(N?$&D_-8?^E>;cX7v>qts zfxGJ-WdAoIdp?1}qxDjW9oVu&qAc?#&NAQD1N<#Xphhk1z_AQ?h3FUp-dWfDM#1=Y z_b*S-^1P3rV+TY*GdaD<9G=|=KqJQ-pajM4(YXUcyX}r-+vc~GVs!zX^?om;d$@@^NVMPL94y{KteCJ^!@wa zJq=`>XZI22>mJ`9!HlRwHsUf!BgmxAHn6tEhYcCJ`#{=!Ktm{CL67dMU{$?5Ctfrk zHe_Jj2a*RR0RO&!|6kjAb|3NS{_gSpIm`x`KF|OnSa0k95($rP7HyAiu(LcmS-3r! z?|>VEFFK*-#DJDK=YVbm0nhf;K-czz*KZ&800kas91AqjEdg45qX1nEo8ZySy6h^n zAaecD&FInnv)hx!)%ZZC>lKggTL&L7ss8!Tz|iS?gMaoCcy?E7fNyYz?3b4a4R;Ll057Emm7HI%z#Z%X zTK;#_qx+)cK2Qmhs@2>;EC`4GMWg#Y11KZLIW z;eUBi58`*TyY~A1b?tRi@#sG9(HnZ6pY!Nu`yU|C z&Fu02sE757qSYSVY#zO$7q*x%K#X<;l_lpuN}O3d{vY?S{=wf=4Jrh{%jLUsKq(V+ zj|8~b1+U|j04>D@JKe#fn^o;HG&)^C@K~&|6O`rdB9;FqM`r}bRQK1 zP+gX^85HWE?rwLEN(Sgy3eZ^?plk!F*FYhC6S7^moSgo_tz@xL$qO;P$qqEYZ zvogS=vofNyGQp#>GQ*>@vY^*r;Kkh4u=N_?Wo-@}6+Ew*J-Uy3bUIgn7ioeDen==m z(mhI&=U?!2{rlhTEYNzO#LT0)T7scO-}ry)ff7xRZf6OP zZj&FN`brd3UunBQTXZ1KwN7v)SuId>9h6R99P0#`q5w5T1KAV}6jLsmGciCXGtRx3 z05wGcY>LK<2CyjxP*W_BO|d{R#oy`Q|6QPx8{`%*s3`_uQ!HLsflYB}Jy2rq(Om7p zP+|b~k(Nidvj@x+F^_IPi5CK$|NigNfL6iGP-7g5u6cBOd%XDE0rFBn>wywAkLKzK zh7x(OF_IqL-VwWUz?yh|zBt@Ub!F_bfa#hJ)s+C&mGPpz z1Ju;1E`ayq-+hDE?B`!(f@GVM3t$1~T>)u}fL4cqT88m2-8&#>%=faYPBCFPyhD(I zf#L9(GalWnyv$wssj|- z{DK{zkl+{W07W6cUiXd?|urIMf%ZG1Wtf4FoidNQ8{Pu+fa&FtHK#;3Cz1g=l}nb zsP5IE&;w6(dVGHhJKAVUD`aj{#-sIZi4-h)d^#09dO-`g-!hiI2Sxi4k514&30F|u zOaU7Rn!A57V;5+u)2CAnH1Ys$vGhZ%_2}IUN@A|Pc`QDbOYFcdNQJlnI>`!-#;4$^ z*6tH8cw3R9@ofo4LV3$r3QH(_Fz-(Rn+p#DZVbn?Kz6!ygO}w6fTjl$K$+1I)NG1% zi~*JXoq?d~T&0QN<$T5mJUSf(JUSgEJUSf}(mEYAJUSZI zP=D?xc=dCnfQNOYM2V3{w=pQGD|mp8f@(ck!sXG;2=2N37l4v)OM za~|FP0-(08yhnGq0<4$(KN{3&OBZ19Xik>^5em@mO)u-0evqx8t3Nu~LH+^x1MD_% zYr&(J)p;FA0cfousQu&#Zb&0J!=smVBFKnNW`}Rb8B3%*x=%ZNJI+$d{$f${zyGhf zz|MRztr=9{frAdR8W`HI_UL5|2I+>cWfc2%2&6X+NpBQXFJxUKq(AP_%PNgcpB_XX zD6zg!Leb~(U-e|I2?L}}5$@6W2GXWxy>bfLqG(Y84URWgg0@Y78WtsHFHV35U`~J= z!9KmLiEB+5c7d`zs99m~f@|Hs|B%4~a0>|3KA#Tmqx67H0yPorLA7}I92IacuJH)S zN?7?LPMpw5sa_NHNIn@--+v7XaH0Tjp#4YM##px6~0ncO}N|2&{Goq1w%j zYWI{iAb*1z@Nj=CqS<|NB{qL!={kmi_I9~;fAHun)b#0wX3ke0-9LAOn!!HWhe1UFuaHWDQ27x5;D5o5wGFV9WU@&(xaQ(rPUC$0>zU9Y$4q3+(D0BW zzv~YVYexytQe+Mf%R-J4TMy8>6l*7m(zlT5evO5O450aC3s6gd4YX&XfCGHiGH8ki zeEtWYM<)~LcovS=f}ED1p-a#*fbP>TUa|lCzkw0zRQTp($k;W9M`s42yABF-1CMUm zoL`;{zTF=kyMJ`Q^635u8siXqA0;=^}X+C6up^J)!ha#xv>Se8)4pQm@E+`j)w1L)Q`lu+p zSQ-iPuQRA#e$@q40~*)V0M(Ippw)&Npb<}l7ZRbMX{iv<=6W9$4M@fL;Ki|!zyDv0 zdvvq;^s;(E&Fwz-KS08x(;2jY{`PAo)TTh8MF>T!e500@wPVK+4wLZc1zikv_(ebGrzKcp;Thn7X>{|k6@%5DZJ z1n=YpM;Ny7@Y#ShJTy@J1L>O~_K`$#fCpxNf=WUSk8Wv??o%(AK?ZgEbNIlfB|N&X z{SOuZ$7MI;{{UzR!#jpZVFDRbk6Q^!)!rPS3M1O%zp7k?2?MB~c*^6y>ZTGf8{`hO z_~=;=8l|t60Nqy(n&05|>2?+{zU^aupp*|Z+pV%5Jd(_`nXwDGNq5G>`c#Pra)5x^ zQ6AmF65#m+ZjWwm&}>2xICX(W*pE9)fQs#7%nTmQhc!H`@0VUe4x%%lmEs)82Sqi% zQSj}4;nV%dqx&alJH9rj=dScL2=MGa(|wTVGd!(t@VA3Dt$XzH%=S3=koiTi2PhiAXRTCt_wsD>=`}gw$S>f^;K(n? z=EyJL3)(sBCjgp0c2xjv`Eyh7=nm)b=;rt7KHy{hs6@=C`@CoOl^06j5ruFL&+aq6 zy>1#l-REEMvoJ7B@Bu9uI1X+-oPWWq0y+Th7%0x+y_2};!!JxH|NVdF#q&v^ZFpxu zi(?`CQc(lg0UW@mKmknE&;{+R@S#HJDu6@xJg6psg|4VOJai3Uq3he5rs30>qN3s1 zoF>5F*_mVFD@~nN6Z~XkQJba zaX^WfITJw<;|C(a{S!#py=tsDQz0@}_A zKI!L#ul2=ZKJQ+ZNuIqthdnyIIbOS#IeT<_3V^g|pY}jc|3222%6L7y!S@2Hg3ebK z^XT^G@YTNP39|O^i>F|(IdfpolhBi9z*WFU&z*>@bdkRu96cb1Yx8;TfVmx%Z9p0H zm*>I%ES}xxJr2IK_hJ6&(d{STq0I-8^*HzoDTBhY+dV`|WF@a_KT+5N+# z`xU4V4Da7pO) zf&tXk_w4jBh2phj;uxLJ4{G$i2x8j1*j`vcT2 ze60-GlMmi&nA5^e7D0ns>(C}zJsNrFKs`Q3uH>e&pJ^*T7$biNwIvo{2 z0}!Aq6+xpHAa%{J7{LdmK+i@&8nfsIjWd4&wQsB|1wf;(=>jkhg2x%U&%Zdl0#ucx z2{3pZcLV3MV{8l_-EImVo$d;tj)cZ*ZqRWA-Pd1a|Awp{!!pkZ>)zY~ZAI=3Q8CyF zngo4OIR&Y^A`e;xD#!qCQFnT9bb5exI=U|gHTgI^IwJ%;KpW-bIXpVuIY2e6R`dD) z-N!%hA9UtmK3*yVZjGJ(F8~qZVLo2U2^9(eCx7Tc9nkqz*fcQcm?57|M~o|l5wQHvf5&nW4*#tjO!vIo_ zfR9H2os9rK*W#i_ukVK!UH?FPjJjMEpl5a@fh=oI1!XGV4=+HcolfxRjT7+bjMeaf z?d0|W4bxo)Yxf3e_vj55Z~+@}`h^mTe$ZwYkbVVR`X58}E5P(~xq=qX^~M?C(%}l# zVF1(Nf?{J36L`DUF;G;4h7b)vr))smI-mgwkM5f2|7X_ zbQxHIghwyy%TAEN%%FLzdmf$T93GwJ0-$2m0+M}qO@KJl0@A#0Jy0S8$-|ui9GwB6 z>}xR}WB@q(f($w4(FxAL0v+KJ9-ZY19pM@tz5WIsorWHrg&ZE8g#sR(+u!WJz|q zq^|=CJ6I-;1eZNd9^HnZws3bPM?<|N1L#BrcL8wQ?evSi-k`S3`CXtA#iQH)g{#}& z{~$%618KOyqA!fxKuSRKf5`2AP{1Pf8$l~tLFF7iyOu)j0+lEryKcH7+XWJRaST+5 zfIBUtv$z~#?nk8aO^7iPksH9P(sFD~YQ@(sK<1KMNB{bC6?Z=>~QdRa?B zBPE^epgay8@CMZ#xW*todReD{?C$;us(iaMEj+p-4PIM%bXO~YI-@$E4&RF)u=V|* zSs`%$7MyKf;lc>fZ7!LASK|g)ZNlU9=(1BFK&XC3HHV*faB;gERKXzKtAE# zWQUN;JQCk?4Zkr!Hc(E2F1S@Tk z)=Pm;x9SFs03wZ3!s7nsi(lNJu#^U+Ofk@axflZj!!A&v1>zKDgVqd#V;fTLK-$3` z-IkyxM(cmj(4IfX3$JXDe?$Hfa+I=0eK=ne=RgZ3O@OoiXr5PaIb{^fq6&~=mE#BnU2&$}`lQS4R zK$E&2&B+y@iwP6Jonju)+%u?G90O4l!QgS+8C-rHbM{~WISgc*yhnGi1IUi%M?YQ| zK~x%mjI#g{4h$aM(E^|_C9zclOPSz&fLu-?&a|+Ao@r6Zz{KFw%?@6D_QIeGe5QrC zM>oGmuZX7y(zzD8;E+H5TJnWE0~15*w-R2k7Ets~$^^w5bie?)I6>53kkc%{jk^@6 zYG`r*w}l|-0W_9&^M%8o|Np_`sz@_V2ASX)rwCB0R)OjV7hd3z8sszuF(U_y8E-Pc zW`Ikt2N_5%#xTR9`zFX3PmUKm!0Niuawh0(F|Z4Hq51Rli+->|Xb?aQ^y$9i*%>Y2 z*;x!;wp&ER$SZ}ZbXu8VcMfB{y|62}}uy}OGD}aVP13awn@lQPr zPKDs5o}lg5FRt4E{SO+{@llBYO<>hcKv`)8I?elW{9(`LO3=br-)>IN<_ZXl;U(z) zpfjMeF2ms00yVw?ZF}(OX3bv@^-+t;1JEc-r;kd6FQ~Wl$*21vs9llZ(cPjF0q$?Q zsCay1;wTXWjelkTX9Ud$u(}$3d(G^)jnT84Ma82V)Iec0zU0#D#PUBt!Lyr3#iRM4 zhexldM6n6Oi{;IK{~O;1iTZSBW`Gai@aXm|@YFtwlwHxg!XDPQ_?y{5gDbr(vq1yV z7M|VLJ-dC5GQ5~R2Q=8l-}(@I)_;nM1A`-ISo9hwR2^QNeF{1@1nw$une5W*#QZ-1 zJbLK>%32v7-EI}2wwORe1rI|hSGNO)>hJ&c|6YS{)(KIuaP6+Ss^G%CM%{awK*1F>*uNeWqhK>*ofsG60J(z|MUOJN9yx>_ceox&6g}+ddR`&)7&|dAxEj3$?RxS6MUDh$ZCbBr z%oIp)9N}PK0FARxJqq5h4~k((@Owal-w_=C{LR}K7#O^|O}=@6>Moz_*@A zz#Oh%CsctERKeS=U@OGn3T8kQl(4$Cye;Jct-}MYqdfONK*90ZDQ9)1Ev7-$~`D5fTV z1@XYq$MO{veLX4*K!vdS=l}mFc=T=o^I#$E!SDLPm4DkYk6uys$)LbK_hLRTXkbi4 z#i#omxaStc;nQ8C65$CNWh+s!aQ+|iRl>6yS>ChzJX91EGvE>dys+D)`_TUYg$W+L zP#4S$0X5=VZKa!3!H>i~~)2AeGdh$!&0bDgatr zDS>oubbw>`OW*DvKHZOex<7h=R`^PQu5V)iwJnT6gM%;5CW5>Iuj<&luf2HnmsSApn}Jg?3WhIGTSj zmdb&%(7FH6PKq0>lfnkc@}T+)l;lC4)9B0rO+@l)_Ji()I1b%R^!Uer&_c@q&u%_Y zaI$>(4;ono&7Xq?+qyyL8Ab|#TKihf=l*ve`@nzDorC!pXlRNZbe6UNM2Ls^7-(n; zEEK?D{Qq?VsNK)a2+BWv9-WNTG#wNq-4-Cn!ky#{b&@b>W?rcK+6VrF!92{@Ku!V+ z1#x(EANT2v0hJ@5%{bZcYXm_jgM%U+(uM=4t)HNo`qtYe`rwpR9FLN+xWHBEi(b&e zNJ#hQ^oszn5_VAH^5_-S$_5o4{E$or>JEb%R4-RlgAOx|fnHGvUb=(WF9%*0Uf|Kq zdT$xDLE`$u)%d?-_kWkp+6^APg$5qoaz5Q<9IwSadPOsPK^B~Taq|gyCeRZ!N#$vM zuk^_aeeizJ6CS;yvAre?FJ3(Q|KIokY&Eu5JEYB2fO9{RPj|5bXy?>+k6zxCEE9$o z(o+l>Y(e{q>g63f-2^<6Z+Q0liTHFM_UILL1}UhSY{=l&QDZFP+x-sg#59hVilEB1 z+gZWW`WSx;XltftXDg@)>I0e~`wd#$D^SGj(`^l!yaVl26yK!>p8q)iB5pFc`YB=c z)IR>2#iRMee^*dX>9R-jkN>4oKAp8Md^&4Cc=Y<-cu@-4t=SuTqxn4JYYm^y+7lkf zT`z#jM3;`*9iX)?p3Nu!d-VG5coBUQ)Qt??(R`i_6qb!u0w52St93gGICi=UAT~?+ zbRY2S^%Z%sVv-?)W4Eh-TStwCh{LzzOeH$a&;Nq-c86X7mv=ni^3He13wu-0Ax5Z{ zgPYbe&CmZqbbLV8apMKADX36Atl?>WhrjjOKhXHjF^_J@BtR%Q_V_$H{Wv_kkG*vH z_y0d=PL$E3`GAK9q(SS^4Ovgi=+W&_;Gyl2fxGQ^2s$nf9Y+9-QNK70s$Q*c6oIN& zC68W_*&fZmMT>bodRcp~g9eybF1+Rj?ZfQ$$nfZ8xrjVU0L~c>9EUx+1wjYKH!Cqf z&gpdJ-*(`IJ_D#x!awzZ2l(7R@HO%h9?fq+1Ns7>j)2398$tj6f9403o1l~Z&YS_A z9|2YZk=_~f?|(M~L_4(K1)6#3z6CnTtofjUZ}-6$Q-l8f=NDk$7XY3Az|1cII{v|1 zfM3AFz@z&xzo4@Mzo0j`>jAbopeGZa8(>$Hgmat&8=%@#!T2PoIWE@eA<*F=;?c?B(b)ki)<8R-L8HJo zJ-Xc`JUW>@y4^WIt8hFz{W)Okfh;^g2lx4?XuQ~)1*rx+K%-!w-m%6DyQiSWXgBDB z2T&V~7hJf2)IKx-B}>pLH^ygP^fZE8G6ypK3q1lGc-%hI1AMAD)Zk;THyA+EnVA<awL)*asLKQe zUvU6vc@wyx74yJw+$w!gupNd~d%+EmY7ew2%K&nT@MA~FMkG-9VH~LsYGD2X4d!-7 zW_WaG7I;|SEs+MDlG@GvLb(^z=Pt1X)wmwkcS~P*bn|(12NrlVAI$Ku4iqR+;TK@% z7i8iW@E710^b+{QFW|25iC@r3!K2xcL*q3ssAKI!Fxv~Kzm0^SV2ZOdUOX$cxqqt=nPbN&Edo7so>EasNmCm>NN}KC~c2! zM+pz>3uU}7j6nDQfJO_uoh5v%Pk8b>AN1&SmM{ht)R6K4RIayPa^#Z_UHtSF)$x< z&|rM62{IluFk*eaL>4q+$ctDg4jNtWtWfai1}TNE`-TJns7`sQ%)r2K=FAyvbxDUZ zs1n6mkK9#)N_jLNGGlC|{K`9_2!^1kF0JPAZ z+oSvH3$1QY?z01(lhk^kgc~&OYwcf9`tY@&M|XGuXe@e*7RX}vf*X)>9V1S$+jkQ@ zHxG)wSDyUqe|mO*^yn3_1TAST;{nx7Mc|`LycIl{y*Ye9Q$AN;aDqBgjMWMr-OdUg zmY~g1IVu(&{LapxwSN*G-N!(qDGm@J-@#|TL}T1$}rUdWlU@DUY2bhy*$T3t2{hF zY;bJ{66mf`aq#H$MpS#q>x2dHyG!2(G{_Gh)b`Q7=!tVqWsNo&4gt-9fLbf9CqZ!w z-N_Ij0Bw%I&Lao!UqBvn2Q_v)L5HND0#D0a@a#VMa>C93|6z3(Y);4rHepeG6SS5f z7%5ymAX67Oy>l0wtT3mD&Ukd6^6nLB0L>%4+yPPq+T{&SWZ(uLX!R#JPUS!wOF;vJ z=U?o+2+FnWpj^x1(H&87%$WzeG#Zvpn%`J}j~j3`KKX(jGzr;!!~(p3>xf5Z1bn?T z$N~e8?w6n|je0#4z)ASi3;sv{|AYEumXK8k3ZRBo>wywkNSC>nw>ZIs!2{8A?gUMr zDu7ydy*?@tFG_!d5AI0-jp9UjG^eO&FhJHab%K^wcVB&B10EIhQHkij@xtX9C>V28 zKy5b2iWAU=;pQU-@!&I~vAFf4WA_cv#Y!ICzh0z0{QuwhE!ZNL?$e;51_f}|y7r>s zJ;)27Ll?nr5(FJK-TeZr^2G)4QAyw#*P|%QTMXh4gYu4iFl>&T?Ksk4j%gsMy?F#u z)o*7tm-YXzOP8jThNqOW^b8;OGQ75HuD7%d{Zpc)VB$)(#$} z^mrli<^O+Bg#YjWZ5RK*z`)S!E%D-0A*jsq=kVzM@FJ)UR0$R^f|i)I1%Q&l3s5rP z_w7CgDzi_#xZVodq0UNv?x^I#idrTVFD1t1pbSLf(_$;v9lH7u($qL9A<|wOV6X5|3wGbByq4oeE&sx z!RFk91d7fRP?+X`j*14)Wq?=5fbNC^rQz0-C6=%_0-x(J3v3;H$Ozi8-|`G;)TkV! z1TxbDienQL{ZSyvZf}7XfnWyr3s3)lh+`0JK!Omh(Ebc){lvOUfB!cp%YX)sb|-@> zO=geo!^fQ^Zu5KEgO*A~ANJ^FT?m$8d^z*d-~XU9(2>)#M`wisto;7u(f#s;&1I0E zL0$f!dJ~2hvX}n7-?C1i%*mys!u&A;uoBfslC zN9KRlbpl0qT5gw!z4&|yW{@Vxpf{KP|9>s=;x1e?7$myyB1jQxqXlU~^~{+w4UZVR z4uQfOJf{q5Wy7akdRN>4-Fn~n<^$;59?gOs{F)UjK)0#RaN*bV=y2iJoB+L2bq4fG z)dkQiRaZc-RNVkNGR}oxa|h^3RgZ4g^;4k@-B$4NeBB>Fy~+yElAX>_0iW)d9-Y1o zphNpCs}%TK`}r6cTzk`bTw0V$C10?>JvOV(gyF^Ci~s+>%;jTX@Ug6tD3yHi6zow@ zuxVX~P#?kG;(jCCj&EV6^GJ613Ht2HFOULO6a%7M`2}LSz-mF1E5Cq9 z7f7Q>7f7E-Gf1CEH;5h63^FPvrW<_CnhHoPMx`5cVOUN#SSF{N#f4wv%V!t<$j>hP z8h=5IUyl45$38pq#~kO^|4_ySIv72#$b{iFizC0rSyz6&e^mmdeEb^M9QifwI`V5g z<=1%U%CGSWr1dl8ti_|BUHD@@fCN5%cHtK+7|@NQn`ehluZbrp zz*4q@f<-`QJBSmror7QFD(HH?Yar)2@<$&3%pY-qU*q&=et{a0!y?ar=8w1tx>S%q z@({nqna})@r#|z?fNo%`0bfrX^OIlW=x6@OLm=0JLPW4cB?9E-8kLyO{DL*0%Z;y{QAer>>WYg{TDs$0kO;)&9Xx-{2CX)mSsRKJMF@+0g7ZFl^l?3uDI}PJOW!(0P%)n-|w>K-Rz639?=Jp!LC$Fp$C+bcG*YtOG0j zfKaFlQka6S@XL!8{klZHPk-i*0Yz~QBwhNb z#DE;<0=~BTAV|SMevR{=`N1h26t@>ZVxU{J5B(Q??*@)r{ zbWwq&qm$4y1i64)FhnKc}c_W;@K0=b%0~4sz!SP$}uM9dwy@jfw@h^l;>l zJO<8Vu3%dteIOa_AjH`j;Ftwx1|O9IkWu{L8@W$_oP7dx)3qbN2I%U^$cvE7pbhau znF(6@Jb*}>V9yIeljTK7l6=hqiil7A0xl{M;PVf+bi1e|ICr{i0aXMpDjDE&6gPLf zs1!JLx@_k7f85&cvkSifxSSFImq`Mt;OoarIY8pIEBKoVKr^x3wE{lfpqeoBfaCw8 zF4p-R{7sxcLH*|32GFc@g-5Ti#EYlZ|Nc+#?Dhq3Pj~QWPHkZD>2+=J=oPJwG+}t5 zX9H^Tf+dwfjZ#o6Q_8XXm`|^bgXh8LEI!PZKAp8YK-EgU#%lx6DQb+ci)GwdKu1V` zZAqT+@4ruPEvTN}0UC%lKF!GB!msfIdK~=;kLJ`H44~S?RpP&BlZy#R@&iN?bO2g& zib?Sxd>-wK~@9~BQD(5bgB-PgLWfok3E zbIlLscYtPZFF$Z>Wtq(1dX1TZ!MoQa$fMg`z@t}W17v8_mBXXkUBRQ%wZWs?UBjc( z^?+yhK~L=i&_n-x`CU)=bb?Ip^#$F9ejRkJ^-=KQYoQlBv_nsTu5j>ZKEw*zCm8^` z98()~?A*a0OrWtYCFJuMFYvdsf=~PRQE_;&%mmbC1r4KuPUQEnzE~pc(rE-*YUJV3 ze24|K;mG5)2()Vf$c7;!OZG%sD=>gYnmQHY6)V2GC=fStEj@<{EAIO8e-hBcZQckTb>-k&1 zF@Qpf#lfT7cf)6XfsjTPk8WR3E(+Pm@|j;_PlU}*+bIG{N6X$HyrYy@2- zdeMbn{}uQ|X8!iopp5FsFA&lKYD7eaYzI*SEG=N&+u^!f!1v|)fU;@?Nc*SqQjo>X zAk~o}+dz~6%eK$_kx(1?1wa-$@<;k?gW340+{wc_L?xhv+ohAqquE8pg9Q?R6`+2Y z!;2repu@>xRBW8OS=M`W`!?{eKH=2KvK|zUpg;tNz2pDG;J^j#kAnoNWA|wf>l6G< z`~N|%GS@8$1c#~sC_7pBbl2|S*8p8{532sox$tXTbK%#x=fbb?%oVg76?7}J_C;_S zX}wfpYYaNZy%BU(9q3Y6o1V|E{1GlaEFj9K2b7Z|M7lq_@JE1}TrT_(DczvU5*)h^ zcvv4QItnYl4xkpP$i>kdM-xyfb_S@$0xsWN=YW`?v?1ubfT-%% z2iZIq{zyn;sRLxp&Cj6LQ4fd-X%0;QUmEG7;^EnS5S$eenW!Yn_!6jL++8}sv72QA z$p4V`t|Px7OOI=3Ob-WWy^BLP&jirXupqe(a9g;u1k@Bh1kT=Q#yWOi^02;8wBDyX zb_J-l3@RlYyT7?um$MXez5EIuVg}uf-Fl!z85Fevo{+z#kgS%6p@d`1I?y2BD6~qG27J@zE zfB$b_dL4jPyS3B1eu`+tICcc=_V`oCznwF!eq?^IA% z%%j)Wj)TVVs*!SUi+!LNU=oSR?c18DPu{=sr)P-lZbl9e5zmg&on=6S&!Djv@OWJF8&HC)IPRii06PAu(?vxCRM|R$E{JeZQFxL3h7mOH z>v0&e4i_%Y!U#)fdr- zk;J&z!ydi7$9zl}UiifrG9ZoNygC5V&nlb`8^3`J+*PTL3_fwojAaYLb|y? z30~BrTN1KWf?X8kOC%bwjgnp2N6 zeCCf7UAGH#cEzXW)YIVRMFvN6>Ujo!jkBNmBY9`-@?-$jI?buq8JbgXGc>2(XJ}4+ z&d{9t8YF(PIrTm062BMxniV%dX_2h})JVO?-_#3Qiree^+@t%PPp|8BkKWMZFA|S4 zGJNJ2@V#yfT18O${4;;dN6R`E{HE!O#40ppLPi%REpe z>N5jGy3FAC%pc&e9nP21HXa2}o@z4B` zrQbjEN8I?#9|!8ifBDQGar3hyzhDR`DMoz#%pVb}{Fy(Zl=(A%Oe`oiOONwwoaWa! z_FuHn5)wMRxv)5$o`4iO#h?+M*xN5n!Dak4(2;}f!VKU;>OncyvpZVAv%6Trv%6Zs zx4T#aQGI|{cFMD=>0OeUwUO%)Al-F;8v#%q+04T4& zhvoHk+d!Ei;sU5#02KzHVgQ!!L4gL!`}~>(@VqXS1J3J3r9QpBpuou^oBlv zQF$1g|l((Bx z`Z*Xr^T(b3%pZ3M)SvBV`OGiK(r+EiQgryG6lm-jo}ce+1^E)3pRaEPc_EVbGMI+v z=b{pHCtf=QapHA|6YqnZ2uk3w=fO?{?ez8NMsXrI`*wgzACOmEkK=RUk(U+VoEs^d z1a?TIY8-^tjRMo~EQ{$dTU3XE!w&2)NZ5fcwn1|kDC}6k4g(j91RQoBl!rjM@_`gA zSDy3e6`i%kli`IZc)bQVqk_W=nkylZsseFXDI~;dK_ONOa#$@S#M(jTB8ONGI8tRg zAVYGw()=2iLAmt%XMTYcP)tX<{^r*>0}Vw;rt<}5#S5SLBU9x+^GCb}rMb`i5pO{G zlle1$M6NO{mU7R3=8wDfnLqCRXMRDE{?Gh^IsGiw!7ThumH$B(z06TT&rE0;2~^L6 z=QcPzI-z;V5wzDHQg?zT-pi+ZHK(YkFn~tEKttsk48GkTn^UJV`1Ja=H>b{K z0N0}PL8AfFn^W5vJi5;{r*<MbBRgF9H9bI+BmpyC#2x@AyktRGp1PlruQKikG1T2sZN^Pb)GfZH4QwS^$Ptg2Lw;321Kr=)v{B4db3=E33 z>s`8Q*Ms`8qLVT}4MBLpZUgGk2!QL)m>LxY&_IumiV8?2sK|HWk8x4a;MX`09R@xR z>S>}3J%R4TJoI0*zywsV379T%2GMaJAT7z`|3&W`gIsxzU*iWz>jw~V5?mCffptXK z{!0fJfDwoOAOGygANLDXPd7!IFz|~U2ao8_bM35|#{sIZn_U0@|NpWObOt^=cQb4P z1r9iO|J(=)oJiiUU>bX1m@uOTMr%4!V7TxLfNQjx87z=sQ25LrQ-dBDj{F)YL1S5t z{E;U=Lk6_q<8aWxNHzuqf`I9CClHMk7?+HY0|V6XiaY@hj7YGK2-}Zon1N9mg*z}n zTMt2Xza-etk*cB)T2~NE!wV9W1Od9n0y#l6reTDE3#3|i;g9iwBncN470@_4xP4Wl z0;+gU!aC5P`$8fQAO^LeVGwTw^1FcPWJeH<6b9!Ek;4EfL4<;JMA*Jf#SDYONZetN z09uUP>%0Ahju^Pi+74++JX`O{@FI~Lo)0V;QKP;q70KKD0wJJgnSjj<(D*xlr0Z@M z(71pLf21#HFcdWY8R>fbGk;_)XqqG9#Akki7*HeP5U9;?8axXT>AN3Pg53s%b)opY9E8r7DyBn+>rDY0}1T|pB?$J z1oAHfP~Zxf>N$XDq(IIzz!AtFz&avqJ5n$MnI{5kAYcCn>TrS^Bfq#HjS)~0=m|am z9kea4+5l00qV;2;cVWar?~(zPrxKv~ZN$3x-W4xEL#>T(K7dZ`)hsx{uUP>q5gk@| zbhB41=P6#^>=%<2P3Z4*u3{EDQ{w+2GC^ z6%U`z8kGRY-g1rZb1!oL|M?HPcefL?>7f^V)Y^#`JxriJ7~~)cix+huUS|yGqV4~n zd0q!s%UT8gwmYD`ciqk$pj+Cy!F!X1J-Q`5y05)ZWrz3hpj){*89@DD506d<4zT5* zgOgk}e7aRm_;jYIR5*4Y?{radakZ>b;oxtp2i*gG0<`DJr`zO&PiJX^XRjZNN3ZBy zke}wHfR-Whw^}oSwpYx9tU`@Zv2d}p=5JABVqkcYwi&!NAf%i7h58Xj29NF=j@^Br z>n2_l9ARYe0Ue(gqoU#1-3B_37*bcW1|^y>>;l~+;?e87;l+{2fB#?H-vkZI&vaO`daxyiB_M3yQ;onzSya#X1Z=;jiSUeV79CJZlDC4+oi!u|ia zqjil6N3rhfogUrIAdi3I7hw1Vw!Pbdqtitt1ymG)$r6qcI!hW&XxrNrK+F#1sp^i`SlJ|NtH@~I1>DN$Ex^Bc|dF#e!b&WOeGv1 z-3%Vqhf2?RSYIgN>Gn|Q^ieT**$ldl&G?(EWvM_}l1q1rii2mjtAtm#%?B6D<)B-$ zN-d3Vd-S>&cr;ru@V9^(7yl1?G#}t-{>@SJ`bF(VXb6kGjx%9+VYU%;zG)5U5cwDt z3&;P*T&+t5iq?W1?9-j1QUP**257800yNa>@#5q=(2PSVXqAIYr!_PLL1Qe?u!Y1e zZ&`u~gKMulBd9fE0J?f7^&NPNOcG6%E zC;VV&PWZzBxt^B?d@lBD&`pLX9lMYFbov}G0LN1|H|T&!PY_`MA|#uCGM4&)yd2{J zx-r8?rQn7B=l}m-TljV#go_Bi|NsBB8mcNukeCpvnB%wq|6N8cpJwCmnXKOteAOegDhM;w`=>0vUHY#XC-)DY-L>7L{0>p$SvxB_Bcb>Y_s%?O94r=Ghren#-rxclK)*pI%=qCV2FQg53}bc0(wJ8$5d*BwllR_B!x@Rx=#{HF+E% zjV^9bNICuouYVBy%pb`H3P|qH{E_UR`6Gos^GBTc%pY^{vlG9dh=phKaTdqsU(EbX zpdD7|u0*rrvlG7ni@|?Tqw5$*JBxv5^D&m@pUnJClm7kx|MC?Bcpy#pxfyuE2Rzk& z%#mN?&u9L~KcLC_N3comv!FP9;|N|k6LAzIbq$o*&VU+=uKY2eN%t3ypanSmk)S@w zS5WeD)4tRDKYj}3!Y006@NI=Uj_+2j?p&q?CDl4H^0`hCH z>id|0`oH`dCyu+aGcYvR`}Dd#=NAOy?=KvG{|627x<2>lJ`5TReBGQX&Cr~x&G4CD z&{r5F^7%8rpez4pegRidFWyxg#QF}Bl?TcG2FWUe#QuZC)Inm*AeJ$B%3IJ?A0)@l zFX(H1+|?UoJ->jjJV=u{zkn-0zaTTefU7>gAZTxyuRVNYS@#_9)@P5#BcMIkAkQ6q zB?MdUcm`hHW(asd??iM2UjgL`I*1rFk>O(L$-&?DACjD8Q@lYnav~#W)fP)6sLdpx z$^fB7L9}D{MUR7zSUi{~gICX4G4nTV2VF(fE#+$T&8Itv!@=mStI>bQ?%$w09J`r7 zGku^@;y!-;8)X9g`X^kwZxpe*c71ux?ArB*U;hZGtUTnvzwNDK_YX&Y=Qpm*M?9Mk zvA9?>6&-M~mMV#{wknALoi)(y#NpJ<)8GMG`o=H7(gxDY3ff|?05Y20q2+BU`)hfJ zmbWE}AW<3Dmj5N({Q8HAgql^_7+&-6>z^oMKhDwy3RqX>BOnV_yE30~vG(TRZ&C&A zKJI1F9S-F@@LwPm2*0_*v3 zj5#5MnoSTj)%eu(LDZ;Ys`2P$Ed+})zHD3unh)w_HH7jDq5O|wAln&VCW85B^F^Th z(@^J&W-0yq4{C84fablxI{@HwgbI*3rWqJ>Olbu5lwjyF!mbCju3Z3hxDV_U#b2Q1 z%(=^8%`xS0(A3*f(8~7i&zA85Ws)A<;SwI*XF)q$L=L^kXJ%mdf6TgEpy;_}yh53{ zM|Ze}M>lAd^Q{;5ObiVF4_n786uo>Q4L9*6D15-@?x60@dHG_=|NmgWgPbD(nj}>K zts(CI_~PDDm~-BQf!cpdK+XX<24tNC_+lxMTQ5{VPC0BHFHrRI#TvMdTL|kwhk=7a z_+{M^@V+Y8_#skR0b1Ul;L&}{r~BiJ47eG~LQNQ6c!HeQ>!YIZBApe~z6=Jf$p@|E zm*D^pU{ni$d><^~3A*P>?ivf94qXvUBnO|7Q-q5{H+S2VY4bv6+I_;s zvI*2LEYouAJ_x$|vzN!gqq_;zHv~;Aoe=oUA9)b8_UnXzi**-BWzjVk%O=o07-e=I z-Ay2$c=z%+IQ~BXR?h=h&jXbO3!@kV)?EZzz7Cl$N2CYP_KIJYQ55KzapRNJGw4dftDcM>#w>jAQs^?)0w z+>hkl0j5DUIOt4NP{QRXngPw4u%rVnzd(5!;UFaEj-sO&E`XI~r#!lE zy;%S2|9{W|Da+ZQ!I?4{kM8atETA)Icy7Kh|MmYrXnl`0Sgz;^XgWF?V{Z;MhW&5`+zbreU@X5(*`n?TOvZ_@ye zl{AB#=+iCo!LxZ6C?zqtc6Wj5l#&qR|E{ekOMH!Q`$E!~WA{Pr$KahRreoyljx!qc@tzvD;+=hf}8u^B>TVG|vRbPM--Jj@Cbmwt6;$ zuVrCCH64^fsbRYDThHEEpbFBX*_xpw$kq58$Om4=|9!fdL0Lxom@D%aknoex?MWZ}_U4{^R@r;7!$^Ife!7VU6kegitdzxgjm(Hzg_U7+;KP*M*Gs0!oT zp52o`Ldag>7vK@@_7Ua)T~`DOHI^pO+9F}6ZkHyGP8VSgP@wTNId%Fpad>u50u?cz zU|Nurg8~(%1iAjnilM~P_%_JXMy|#OJiCP)yH9GLc4WTesC~wR z`Q&FO{(K%LegT$KpPl&YS(to#9Rxn}*Ylimw7yw%(UJL&XY(PB=KmZ;TOFCdI9hK8 zr;{e|7M1Q86$wxSMFG@6(Ev423>@PeLCq8BIuKAhsr6E+NW{RZut_U` zqz!y5ois|cz=}YF?Jj6$XrPCjfUnkHymzX^2M8^}6O zP`6K@5#+Yd`~sbzWW^tTm_PjVXMRDLXd~!yxX=88FjfEx53-AIKA8eGt&gTuwziKS>Cp7Ivl&iKqPAS$h4!eIR0v-`tm zet{+xuv0-3>Rk{Ifb0N^dUW3cDS!kG$SSY`pYD&J`31UUz}moSK?*<$dB8$og&^6_ z{DMs&A&?Zv^Zel;sU{H9au?{{sj?`30XC1`$)F0HU%*cQG>D}D8qZbW7jRSH7xYmv z;1}>S0Esw&cmXer1VD|T$)L;nKx2CfkXFjC7kr>p&pr6LTVd&$tw55EAqceDG(i&`JhDdOPMM2>qLN8B0# zZe)TQd=Pse=UIU&ZiR68Zn)+*3Lf2s0v@{|7u5f+_vk+C+x^i)`%u{7rwr zqpq0}KD{bpp513Wnosh3Sf4JJ2OTESec0pTD-Z2M9@a0)`8;}Aw7^@^Pk8V<-SFu3 zW_&U8*`NQO+TVOS(*-;_<0X8$e}K-g2=MJb=GO}vT|VK{o5u($-6}kLWlTJp{|Xe@ zcy!BqbYFh4!W*<#Geo5Te3QVL7c;yK8N7N$jD5S0diL^|yyyVQ_l7cp_NUvu`}5zY z)Bd#y==zO(kVH2^W4yN^gJ-XZop1M1klFx{bT4=j-uV~0FF|uIpv88ey@@$02_UzC zE-O`luU$O+g2NEJW&eyra2T{v{?YgnD1kWq7u_Rh0y+$kbxx2U1ITM09^JeiLM9CV zMK=k8^7s$X)-Vt23W;KVk8TeEk8T;z4JM`OppzpSDpVLsgkNx)8Zv-Y@OpGRfK>bd zEy!~PHG4cjENhQ$@M(%3|3&*iW;Xx$4?5mAMg@GANC3!BeI}r=Vg{W$1v!x2!=qD{ z6Xc{`9~FoHqH-X8-QW$q@t~_NiZ~b;CP2pu1Ux!36hNnkgn@1bZhm9n*!|M6`-2bY zwydAc2@(v=H7W%RB?=zBtn0nOJv)!agP^h7|Dx?eCJYmfyQqL>HyJ#7<3R_xfT|?W zQF`b9iwZ!(hTS9CgTn_(7``PlL;6kN>Ldf}pEzV1DmqeGaakKzAB?bO#!M7a8+-bbCsG4&uH1>d$`< za7c8Y_Big08W=Bgr-8-<^%YE8&FXe0Xp~e{ENN|j0`T_4_uAEfp+F^0;z0HQSo2^tzUKklb~|~Q&d1l z2BxTJfJHz@bNUvzb{~TnvH2V$LqlzeR!O!;b7}&E$8pyTa6WJiVDRV-E%E5}4S3q+Sh;k2J2?J7>C?+P%MCHNTk_(C^}qivoh2#?F5TySdRY$| zfu@#13qbpAdJix%IQ~Bho_YMj-{c3XoQ^mD7vgUM9nINYq7v}`7|7?=#R~jQZ2$lN z2ZalG<|*UF!f^1+lqjel2`Z&CUXgWcdd{i=CgxiC%dT0Ph zzTk!JB+x4S>?xr16dK^sT$=$}e;*nETIL@+<^TT)9^IiC&`be3B!i6h{qSEjix-q8d%5WG~aSyL@;$jaUd?f=PkANf@ zQ0d(L#-s5Ks08%rX0-~3CKJ~mpdNVlPmku*6AX^~K(XS}S$g4^>kiOioXXN5U;6HN zu}=H%{|P?5zB_z+S=01Ef}uA+b;l+Z(B_8b;}W1lFuKpb*u)45K8)jxZa)Ki@dblV zXXyvfiAo+A$I$HnDe2|CDR08?BEtpbz4IQ;^`HZgJ-Ye3LN|1TsAz!dNClr>-YxPb z44%y={(E$X3%q#m13I)O^#sUlu)BSFJs80i$#wAAdGcMLKnw-%Df|5l)a*h(0nZj> zb+_*i(9GsbGmzDgnFEi;BcR}d9JB-qNAR#3=y0mvq0r!SQHk(quFPQY=)PIv(@j#edQFoS^$JOEf^! zVCv03m`Wo-wHD~K6X-e7VPGf4s8o1>j?6j?k_GqXKt@`4X#XgY_v!8iITVxvEquC< zgOl@rQ9gbX1`q2WrJN1bg`i8_UavJe@OmZ4ACS>X&{0gs96=Q%=v*ZJDF-?nYyOLN zaGEfHPRa}fWp4uppI*>JF?gFi*u5Z85AcFO(AA{>MJIv_OOW3>!H4%KfEI{Ycyv00 zumgzW;nC?F;L+(E;nBGp?8*|%G(uY+FfuTJPZRnC+Ef<+x~r?R6?A&GtMOZ(&b0-gYmYkD zg4VZsc3<%5?FBVoUaXb{CHvl~AdYKqt$>f^UXTh8erKpqDx*thii(13udjn^ud52k zBMC2degpNpT~rdFZJbsoQ1$M@lK=`fupq3N!xQ7tJGBA449rI*;lHRbhY16}fB<-V zv`6!)|NP-6)A;ibrSTWv;7Ie}uR9DPE_g8C0MREsm`{Pan5~ak7#JM8uXyzO7QEOQ z1a`5gBFIjVzyvF>0NA}?73`Lvd?RWAQ;-ijN*Cq|--;K(y`Yk=u^&{@f!*d~xpxN0 ziTuuBE~vz_o&YZKrh>#ht*;mHLv|a1eDdP>BT%z@?F5jPIF0a6$>M2lENzOaDbh z*-RK-^La3z0H5{!Uo@8;RM0{Kvlkri(rk!$#~bG-JU~Z>GM@m)`zz3b^IqOMDHDbl zy!M6+p55nsE$bwTm_57sxA6QpgmzYVhMCcsZaN5 zP`kOe7ZhzTHno83iB=E?Ii7+(f|5FNJcZ(jrwtFl$pREl;Hz~#I>A}VrDH89qFj32 z1(BlZpe;0-I;$mII<#N2LbPCysW6Di7eEQFb1x_^T{_l+;?ScTYXVh!Ky1viun~w^ zYZla)oy>|JvyLp}#4M=I2+PsW{lFPmbh#bKY~O+x`^^4=wryVn=VnV&P(~81lYmMt zGz0OWY0J0bMQbN0H*fC7mz!g|ap&fr_rTEx&dr_RasVwS&xrzA2+hf}SwJ0MP?~;W z@daWiC`Y2_*(DG|L1_Us8F+SwNq`iC?!5Hu=6g|n@6UhNuBR{OfR-Gd_Bi;G$&>jE zwywJm(C0YmyQe-m(C21*UY}%e_cECS-O2x9GHDnEF3%eJv-|` zvtORgb)ZI%XE&cGXsb{2ssEtvkE+N26F%LCJgg7-@H-vwVLtep!^iqy37@a_5yu7# zz0yxU+6P}V`*a`j>0G-3l)#U-g0^Twi?{`#a_c|nwp&P61@T|7H-ghkFNovOy%j?3 z1?lo={ts%jo_k^Q6g0qb!=o3X2qvuh^v{2vZm>N*%rDSo*}GV5%Z#;TM4Q)UP5p3>@t6iX3n71tlN`yUnMdguX%oYFs_vvm0 z`Dh2|I(8rH13vuj2RwSGf}Pt8b}q=RV7_OsKgWO3{cI)--99QNph7mlquas5r_<(y zNB2~S&wdHODj|>wFP!dxlP$;sNYT*=HqxbIEl3)iJYG!uh)AK}mOHc-1C>WF7$F8= zPoiMeurzx8_MiX0op}PDoplnf9eR#kM?AWFL9Go?v$IGC((LpAEyis;0@^-{+@J^T z*8t6%K}L|EU3gHNQ|?6y_<%QX`|sNg59$9N%D?}MIWUsUKpchdB;Ixfj-)Y zy?S}9J(#b*s5A!!|FPFn#hc<}2YL^0@k z?beeecm__o55Hytou>{u1+W=>+8|`lGU^$;@Q$LOC$wSg`U7;UBWMkf_4QKF3B1Cf zVy4^C0kkH#MBbx2Fv2I9$%mQ2$C9B~;J@gBf5r?B9R}UUz>Cj3V8PIG3p{hk1w$Ht^~7J?H^C2^h4V*r(U^fJd+E z1&}g@|Dw5nj2T)FRCqW4V65YA{=r=8$iL6`!0XvQ-K8f$dVI7$l*qyRR=ziUyN^M; zR+|}37<{ZhlnQwCx*j;@T*&BQ>3X62SSeHYaoCZ)3p5~0WI@jL>;^B9wE(Rt1D)Cn zPAA~CBcR-%;L+`9;n985_-*$uk8bceDw-bM&JrG$9K{OFzy6nS@NaYcZ+)l~d<%f+ z_20$}&Hw-NyZr4w{<;hrAfP)&)0_YQFG=#S%+4s~ci`W4{=euR1``I*vGdn_K-X{e z1{Zi*3Y0kbbbCuUbXa+IGkRDbDv|K$Yz759D6l<}IXsy;JUY8U5#re?*nJul6WXVm z4;FfWBEmVKljC(KxZ@4pq76E<6*5BrNkfo10_adM*jqlmg$0hFQ#L<9h8cV;4N3(Z zL93y;!2RY@W{>~pV2Puo=EbxR|3Mci6@ykLur~i?ED`tU?gs^-3uyfP+JDiT|3Pt9 z8Uz&vtp#`ZFFG3{Y6Ci>1!RSSM|VHOQ`13S@qi>McMH&o*WK>mMCD!rTG{O2(VWb| z;L*wbn%kq98#Fe_!2rq~pz{|yodrMxx80zz^5!E7&_P~M+#xOb@$7cs@a+EJ$;<%q zAT*VOCOI-Oda;lJ+$}vireK2VWEiK0^|A>8S(w>_=bFEbdK@)=Q<_zO4sJ*<5=a zSwKtJ4Xpph4vj*a$?Jf=XY7P!Hsxs(u%E2?Q!n!FdIoNpw8Ag9Ch$nLu@c zhxLhK8OL6S|D8-8-QE_U1O9uR7(F@}`L{8>{01tin!$q)45b{P>u8>Udhwtv*6R!_ zgeHR%N_RIX*?4w>${tW^0hdMK^a6IjM{{)sL#gC{(Mf-e8Jf@kw?59_GL4aefq&bN zmwjMcQeS{ZH^E1egT}f3i)KJnzWmAn8a4NQ;bHCjp;*DA*OAeq)Aa?YnDJAnA zy{-pA<(mPhXaX@bJbGPEfEWtkg0b5>GXwp63T6fB#aD>p-QWrRxQd zn@U4rR=M8r=ng&Mp?$%p+x3Ny^&wAwrwbrA!Q_2!_-G&U>2!VJ`Tu|i^Tih?2B4}G z99sWHv;P<~SRe1cz~9RF|NsBj5im_4Lu+4nfDTd7{^`N|!=v?ooxI2Y^ZfgG_@U|T zzv#c;#-Nd?IyR8H*AMx()gE{)1}dfnK`ulX#lO!2^8oeCOMm_&3S(hql)@N!Z5L<_ zEGYef>uqqE1x{t)6ei-)?Hu5dEa1U>(Zl*wF)RNz#@F(o#Yo+!{|8uf|7bq(-}*-h zuSYjCXj8}O{{adhD?vpgq*Mf(3ohqD^QIEv;Qb5DZ$PIFgJ;M-`nDdZ2i2v&89+0% zl^F~r-2X-Mz8W*Udg8$uzWgevKh=60RDXiC_;eoy*PUQ3Q+|P*b=XJyfT#8k z(8^6n+bRdNB?WZc38=J+**%+o%NMhH{yz-b>)_7fYJA(XlhL;`lEb6wO=1fC`*$-v^)h>s>E^jz9A0cD>+Z>HDFS&BN07M~NF~g$%35 z|C6sdcglk<#c6)Y0!qKE9{*3h=G+AldcgwrqDN=w4bXXOjE>z5C9M3bFT7^v-+aNb zli~F`pH5fMd1d?puAt4w^-LbkM+`uD6;g+R=2+FL{{Bw`U%1fAdWjb_bP76%7(6X` z_zdVC;k{r%#+Ra1pm{}5e+HBd!Grj)wXuh)Kuv4VM#~GjCJZkYSHjlD>VTRO9^E20 znyna1K#OEwSc6X;F5v-Xu=6i$xfvM#p9U>+6ezm#q8e_@N?p)I4LB*lRz1G-t^AL4 z266%V{?Hti2GGO|s2b5MIN{OFI@cCf<0W`>gKlv&zTGJW+M&o_4<2Zb0i8l0qvBx^ zDN!QO9mD~e>;Rv~ZNUvXw)S;rjEYY8>CPAxjczv%N6;Qe2GGpiLq-OMPy7O=eYz$L z-9Ni;dK`Sr;=w!*v_8?LqeMl)_)=$xii%4&w`=Q3{uX1<36S0YK#TC2f3lSEIrh3U zI$9reNHpmji?h5cPl{CX@+RrRH{pp`#eEKdA-E=?>|`K7sFJ_nf3Q59br>)3qazY8OC zH?u4A3CHeJF4h-{6&p}p$G`KQfa6Hb^{C?ls zdyc)Xj14s^3Ji|?E=OIuUpO|@s7NrBmVr(mWN>A^=4ySBzsVD{+9pIr1tclSP@>sv z&0MMiS}@Ul`b7mB0|R)gMbwEje*KSS93Vv!45i`SAPvmdKw;&|{LiJE+Yw~cm4E;L zcl)SlbhEi?pDT$55rMAO=Stk0PjI~U2Q@VfUc9{w8cw+mI&QG}xqLUz1pd`OJ9#F6 zw7u4YC^>~ii7WHF*EgC^u)OAIKEd>w*^&ELCz~VlxlWL6ZXBSMVtW7n|99!kQPBad zBz()?62r*A;Ajz}BEjFX2)y6ow@dfq)&nJFj@@^By4QhX+_C$Q$HC_;p3HwC76)Gb z^WU}mi08oV!ss$7p!K z^Af%eFN{w8`R~yg8{l!=H3Bqv))DIfKK=C`=$7kV-v|FiAG|kaaOwIC4mD6oCkWct z3cWx0&x=nd|NM9CI_A;sn*bWtnJoovcYp@qAe}(OK1on-Fy1i^vODt3!B+w(bGESd z$SqK3qWiQ*uPC1;cvbm}OKkuCw;u5573Br5v^dQ_^#CaGceqQu*bW+#1dYG69^jvP zpu=4fR2s%3_NGJXA5f>$z!7whRre>*{?p!o7oOcOKl9f+ya1J}OrVBrH@8Rkj~CV# zK_h(!JX-%(%7d!L?>9jmvhyC_FM1q&$?DO|(+fHz7c}}P45m-QSh|BSjy^YeWFCwvB8R= zn+a5@oB&lSCpwwHbt9|C|AVh@8lME6n)w=hIhX^u@&+|KxDhfAJWqJ*h3ExPzBcyI{@`)&ACt$yXRIE~#T>q^-}qZWz`#h*@@HqIB$;0|$F`H*E%kCWNN9WMb|{Ke_h zSuXJsG?C`f&Hp0rJTx+ISE_+dkobPHL=HrEUqFjb(0PWPp$A^`gSx*5U$A=ivNV8B zI`!xV4VW2&4*~U;@Bm+zbh1(jbc*Ts8zoX6-3LKaqTerg9DKp*(aX{bN*f;97eM91 zL6DeduSf&GhVOyqhw>hszBfENLoe`axL!!(uXlZr#$WGyz@zmWD4iYi_mUqmv zJ6glDyV$_9yBa(S6YmH*8?XEPi^zxn{)6X-A$QAwvIgWG9XLQz8$h}s8o&xXdVLRo#4mKZ-gp6;s{{obzs3*n*$D=q z4oGk40e%h8WrY`BD1g==Yh2*h03DeO+F+T$uTi5C;L&`fAok^TMh4J+?a%xIUZ6v) zJUKq|3kZGY7jR(Qv4WOYK?He8ke=~U;e9Y?6?YhH*`G$ve=z&r$4{O&G{4EPXp6~XP@Mt{= zN{|Pk3GyIXyh0NsIB`P?K5%LTr9^%W*A1YAy@6lD7nH(%K}r1pNaTP|ukQw^!w-Nf zm%E=qjyLe==6iAK^q>ErIr~qbBy;c=lgGhFtZDqk_rSCIA3T^ZfIP)`4|Fa8*i*Ak zgNmLD9<8@Q?mX=QDWFedW@u2xISk5#9=#$>&5z|hI>kX1HS|VN&~=(92d{x67;@%X z^BW6(jTfNQr@*iAiC^O(DAs2EG6tQ02s)eU-DmLj-@D-B-9d-v$6Wc$A9?pPe+)P0%tym+n*D!2%xLHXnPP{#$=2R`uu( zmT>KLWOVF4>Dqn5tDEJJM<)wNO|R2`Q0wo$N4K{`uhV~zW|e~s|GmN2yo!Q~$74(W z{@|Z59ED%T_1RKf-k58B@ED*i-L#tZ&3Pp04mKvM_z!U z+Udvt|1Z~rvR>OtaGK9ojX~Y zx|>1jUORRlEVb=*{O{U*(Z%{iv6=@|eXkRvWA`c7?hDY)L3cMud9NcliQMXS{O|bx zWGC1N$NvYrPq z%LX+zS^X7E7>iG21csAL7D z*K^N7NfcTcfCrFVyHD_IJoY^Jkj01jq^I@Cl6;@uKn@S>Q$D>;9H9LrF^r%?$6_Kt zq<|CXi2WD`5GlX~Itl``SzaIrw52{KfaNoPaOvI% z+7n}Z8+7`IE2yE>2p-tl3EC9n)4d2pfzH>+mjdn4x4G}xZE~l3J!pG|^*Rt)TJ6z0 z4ZQ8Aw;x2kSZ4nhH1CjNe6saziJ?z7_)H<6?takrA;)f(6ONWFCrjPH+kQ@h1JvaN z3%~w{a^wF8t-nN{g}f>2VUPm z@*m;xfL>kLctD0vH~54ohZme#u$~mVoC(8=R~i5RJ2uw}Fz~n7vw~K6`3it1%ssw8 z^f-PPl%hTO9S(y!K0Z%DQ|cc;U3L%0ZeM|3XI79RsI1;oP#Ofw1{nYEtWnW%HHMre z1G-HZG>Wj78D#u@(9os==#(J8Zj~RP!+1Ih85z1SICk@>9DK;*XxyU$iXi5bAl3^8 z28M$VxgCvtR5%VkWO3|vQDN~gKGA*1;4}! zW9Kmg$dsf+xnlsrJD)lx)!kI zj+X5pH}JQXfdySuI2?FtyhxcgUZD7kW@bq8P!OsDBq-vi{BA z>H{;<06d|K-ADttk*Y{W8oUVp4G9Ex6eE9vYb+NPhlUCX2L4uMu;;IUX5r*3!w3BHs4O36aNqXKV*Hr=(z`I#e^@%i#X6S$D66( z7;Xh!(BRk|E1-QJJPr;SXvxt4d7@WzjwEPNkB>^i3nziU|0i^Vul7s$FS_OqWSj;r ztqj`!)*A|5(3|msGa0n@%sdr5PUGRxT$=zMr||$4SDLAiahe3=aT<>oT{}R%veXFB zWLpA10|Ub`SI}x;-xn`TOhC1=?~DJUX7`L496M_TUW>lCodPQ@4JAz&UhGK*8QS^{ z6b0vAggyBCe*);rcn(lE!Q%la&G}}4hHvh05IuZzrtuL2qX0wWF9rqy&|+)&xf+MS z!~CETWIulzyBfQGtLsA@tNqupu!ZX{|VZs|H-5Kr%U%~%bB2NOqrrb_jG8p z$npO{P!p${r_HI8r^&^-AEcn@zU6#yTSnHSyC2k+0S{vG+RU1lm)AwCpZUmrI*@OmNgnlFRT`~r?V z;BBliPCVdv^635v>W)Pnco89t6gTI};y&{WxC?ydk8u{@k2>(e3RTttBr5`v6#>c0 zpvo$NWI;W6XAY3;KOq#8SvD}fW&&OJ5ToLN-;?#y1||p*Pk56?wc-M zy`b67u2#@?tqvCz1>f#Npk5tlSGh+wGj@yW@om=%(;q-yQ!&-EJB) zcyx2WXuA#C5TnchN};|MpmI!v#gM_H@dzkH;^U%YA?1xrhmVSaPp69t%7!xV2&aLo z(SKLtC&u4AyAQZ@zw+t+*m{Y-B?A_2P^ymQMi4=hDVfB~Z!-(gx;nR56u+ZgKm6%%k}@kE8Y1Vj+)i*MOI2 zLAyq4C70|*uVeJfJzY- zemy6aDy>q`o_t3Remy6SD%nzLkPHvMo)Zt$H;nvxOjWF<%#iLFXm8Dn{r~^}H(>-{ zCk?7M&{GY3#o&DfScU^_E%WJq`64zJR{LrTnJ~Pti~0ZG)#yogumEIE({+VMbLtKT zmyXm0KE19BJbHasytrlZ@Bakj|E|X0EUN`T=hXyDcy)_>^6WnQ!kn3bq4hwCspA&L z<{wO@x}c?Ue%&@7d|UsQh=LlI=O)1$OXpuy-uV09quX_bQ!~$o|F6YBgGpZ9ET23& zS$=_qJ8d@nKMuMO$hugdXom4O%VGoYK|~fFQ0vY>&J8LyD0=DI@}xxHx>}$_r1gJE zwMTF03Xg7Yju&Zc3=Eys0x!y9VBV||G+}s=AM^kJYta`8aM5`nQO9U-{`Otr(R#8( zz@s~K2WYgt`O%*j+t>g34_iE#%m7+M18JhdcA=Yu4%v>#w+Kq1C!!Rvb+Ji2dz>f!E5pw6~O_eaq6D6N-DMJy+S zdfTNumXkr2@VB^tIvxLAddnGIdg~<|t*@1Ze&!bll(pT6tZ{f}SJ;1j=Kg+Mph zUXb~q+BghkKFCKeet!d-@8;1BzCsypzVkIu6B}ec$h|Klpyu;5C-5+UuK#XM5Ml7> z1fSiDVhhMuAX~yd^9z7&0q+6`{SLOp(WAQ?#E08*_bSX5kiHk2u0njl0kg%Uvl*-& z>WSB^j@JK5MPBel!P40meiMcl*TG!yumfmGa(9hN0%&nEc-X-JG)4~^c6D%!2d#-iR1eXSLp*Tovt3xZ2G{bv-X2W zFYG2@S5Wc&;Kc?5&@I5VKR}Ir-v=*JkN*Q*QuW=%vYw+X(zQ38vHKomp#ivC)@;oH zn$Plm@Z!OiKmQ#;%ci_JT)J5%!Y;pUegK*ncj4cBu#;zkEAt;0YwMyLj?7=I%Q-+- zZ!$1|uJB5A0JW}sEG84Wu;5|^ z1=oy-|Nr+fF)%Q^PIzjje+E+YCOv`$2ojeR|Uix<7k1+o&)=ws7`( z|M%$io4q~I1W3xI#^KXt~yY9n2z1u;?`SzN$dGwYSc=Vba zbKDEs$l#*=8Z_L0`!cAiR%38%R%7t!E#vU*Eo1R)e#=<;sQa_yHb&4PF-JH+CxJHq zS?Cja?&e1L5(e3--h4*Ig97*?OkAttk>i|G& z6mE9%OmMU`FO~A__UGshWa&Nynt*G5B;U=_!N2-~V<$_8ks3i9Vony?u?OV$M7k<}o9=-7jK9<%cCLq-sAbqeX zT?)|x>Ss$qGA!sqc8wQvFM;-^)oZwPee>w`*8rsleGJVN5X~d$}BQGL);Gn^|7d z)8x_3=F%;nh&%qbD$eqiF=$%WHwn|k9s9s{#25sjBw^NYYD579d#+SJvc*n^l zz{5%BUo5)-s?w3i$?d58n-5c3q?50rH_^+{=LA|NjrZ z;ziWIusX9sA=IOHg#>8PL*pCJJ|Iwy392YTSEhjOP4NKT5)c5oHzfjexqJfX4C@up z%jGv@{Qv(SbcsCZa(Rz#)+}*Yqszdt8`SRd==K5)Me?`gFf%ZKjtAv$O9JgJ>UI+F z>2+lB=nY`;&_2=a3_8e9bOty0Hq~FBK^uxe$LF2`U5D(#uK~LHSwOay+l0ZDU*obX zzs6@rehtvQ+MiwdH9+S>CH-;X*FRGRx)B)Ey3}&v*MAD;J^jot5XIucum2j%ea)}` zyo{M&;}5_7I}rWV5p)hKNZVo1;l2@|G4%+I&-@W7f`34#|MJHk;s;GOpZ)B}AA8<~ zU*jj(zE~H~m4AXD(vd&@u?xS(ozIT^@vmG!laG%4@t~VDKYKPG;PGfa#N*NYf|0)! zG@S#waRPK(cMRx4${5f|!ZDzGqGG;)jy67Od=h*+;1B-k2VMB}Z}3k)V11Ck)r5(G z!T2P<{s;c)2aOMa4)umgNP{I@`1KFKWIjM;7(o>Z=!|R^{>XEn^REAkTAecn-@B`7 z$OS%-JMsv>{&D_x(0n=MjOEDV|3yVXiX8bta>w}FLG{pQ{>bm(Yg2xmH3r@17J0-G zWM4aI+!u5v^JNfm&5=Lq(2FQ$P#^uyL6x;5f7HPjj$nzCkim{~{B6mg zVLYKAP$|gY3R-jp@7-#=SSM2dQYHvjkfsA#-s{PXAk1W5N)Cd14aM`n9*--GYR|YSv{XxCk%s_DOR=}gVRs-C-1)W9pB03P<`VG}U9?cVYv1bXm zcdGyz&C`I4<_R!>S0SV+fXWTu4gW_>0AW-Wcw6d@R zeD68GAkr~opd-D&XNn29z|REQT(2z-ea_}Is2jxul8?#qyq8o`GY8~=CgW?Bh8 zs!_uibX4Q<|0i6!4>)%7>~w^l)acyF)A;|mV>eUxiHk3-e-_;UpAs3(QM45{KH_Tt z>UGci0y;injtVGmL#9HjLHEiOlX)LzEb`o=mOm(5SWiEI_4`1j4Q$?VD_E5ArL6zo z|M32zmjr0lL+i;>&^6yYFA`6KS{}&~piu(&9t;l9T6M@qFwjgT=%folVQ9euI_Uy5 zbNTW`pFgZL&0z=ibNv4Q|HjNwTIOK%AJl&mC^H51vOxVOkM6TCYX1NK@4)rr|1nSp z>zPB#{}QnmK5!GfKqk2Q|NsA5-<1j95>6 z%@?GYb@_c`9P_!o_d%h}`0}VPteygg7j(Z9D6}36B8L|EFyI8RH$daR_t;DrUO4*x z|No7hqqNTGw(&R1a)B~?m)|0pFjZyI_8gm+wGPEj{L6o9GSm?P6xi0M}ihWloUlr-U0c^;07E z;?s%0|3U3i=@$WT=azw->*@RdztMr0{}~w=y5m_qjvoZIDRw~a<9O`B?{E+_C^qB7 zUvU3U4m95)2|5(3Iq?TWbK)O{W<>^%UQZs6=GTm+uZ_QXbh=AemUHm8tp%Bf-0|q< zZvM$!8~_@#KFQzG%*eoS-1P_p!-0C2Zr>xvUH5>P$6XJAD35Mu(6#EWdz`v?8bF5_ zf;VZ2c!G`ro!|mG7}dp^x#;FgJMbo=Z~>3*V2*AkpI#P+ZYLI>ULJ?f&in!)T`awh z|35qP$AmPofCNgqI6%CTCJ-fH(*@$#GXgM}jVS1YJ`Bx}QPNb;D== zm|vi?_CYrbd;s5JC0M)TGk@fD@cm_irCUCOZ@7;DT^(@fzi8KSV+MYG*3H+98OroP z4@1u_X_*Ex_0pdq{spd;zGeC8Jn-Qj9{z{QfeOxvZ~cLyv8H^73h zSH#n!+g}0{gcDsleI{~%gAjD|H3xrF@W226H!y-mloLRw9il8o0$;ZT>cs|tSCE`J z(|zdRE7pTAWE&nasxWpqN^~7UE*FKoKuMQX_>M8dac2pUDrX1uVKI+h)~~lA`S`CV zG#^WV^05L^K9=Ug$j39hK=}%k&BRzt7+zF*g7YzdD`?>XEH693^0Eu4(*ViNQ$Vu` zXxaG=I6J$+O?<*^!tlc03!I$|;G$rA1U*64LbJ2aJ4ALi@a)b8FJ**g=MT`4XNwnY zyr|iEmJldRMDrzJ*?I9V1Nd4yA!rse}WpCuEtM5T_|NeK}3(CVTE&8R>FJi%d00mt$ zlL^C%Fi&un&twN@c~8)K;K$I656ke&k3cfKG(5xmbSD0A=~VP&J`2w4A6_$if*R89 z5{}(pTrAT$_}f73CX}%TNR|(G?LGq9&oB{`_x5Xb;E;^!G&Mr26%r*y^l%&==QRN?syigiBakh z$Xf84m<-UE1~^g5fodU)M9JaV{RL!J2B;)=m*CfD?PV}w;BN{Col6qW;?kK~0cxM~ z*Sj|Obf!)~8ceJ3==E)Qkt_=uOiP^s9!zU^A+hD({|T<$Z#=qV8(b{YS@_%Dg63el zPrq2S5HwH&UKx?$+I`fq`zmO}#4V6G#nsoL>V}Kb-@mZ%2L&(Dt!N(4w}KhQ43_nSn-t*Yw2ulbP(j0=))$I)I{rWEVx7;z-=q%865X*49<8_eTmFJ$J#>PH z_GOReM}I&AVV%?e{D1irwA@CtY`-xmH9v6dz5_`l=Rn(k_JRT$Gy-Yk0E&CBUXdLr zac{s2ItIsG0(@rqj!&TcT;SC0vV)`3MWq67qQDjq{4Jo1bsf9EICZlu1eJfF?Q@^_ z1z0-3COdSybbt)@`0TVEX<(+4cb~!O#8LSuIMF#;A4Q}TPbW*6g(Zfc z`2|8$3P5cU(EZ9TDlVV-BVANVKJ$aFL>2H+@%YRi>7!Bsy0^-aU;j#x5NL?u(`WvO z8Wk7N%~UQb9{-O)d;v+)F5S<3tRL_<+5ZP!+5;-*;3+^5w0NhxM1`p2<+Bf*yh_i) zl2+;Pw{VL3n#h2HxH>@aR4S9`gh(v|I)5Oo-kF?FH_>30eoz zec}bR45^1$o8K8TfZBWt;BimTOeduO+8LuF0Bwqa z&WQmJ;obDuu?hmXJS-hKN|Hg77z&`X2sIdXg2n}3H(f01cA{ zcyz~cfCf!7K<7k&&)}@=|MTCY*PjC3cov)hZqr<2nYw6mj=!L!qo!?QDp!xMC)ruF3#5#Mf3 zU+YsPJTQI5??B63VpKRhyAMO=?Llo-L?2zjvFnCM_bZR?j~?BJJX$Z61bH<7U@UO~ ztyjPJ9(1BL=HWaBThOr18kL8)E?ljd~)wt?1ITH5iqtp#rdJ?_!%CjglT z09^zEy61NyXb{+BBEQD#&-{_uERg)k%&&0`bXWOA&Xg2u5e>ooXVwlgy@SX%J6tq0whEx-&~UE{zn;4Q$f>7wGmFW{`euj!)_ zz%Sr!01`<6@d{pCZUj|)7eKez2y}a}dm@jj!FoKDp835Q8g+FpZNt-BR=yB=BOxuLV&;J zJ1i1GOKDuX|2uXc_vn>z@aT2}xeau+vkSif%M8%9d*F+k9ii8eA94g0yc(xLl_hA% zJM#2re(-LA$S)wZuKbb5K~kW20rfAgeCCh%z^`!{yn)A&Kk^)?x;*rmKjI_k{y!J~ z2+)Ybc}M~QbtK?zE9mfn_jXWoNbz2wlXw+LG5SIPQCx4C0il>S#iXe0UWC!2a*!2 z7NAB=r^`$ZM^LP~gEr;$&QSrCeV)WzvJGmTEC97mCb;rzWH-3-Yius~|Np-$zsBx_ z|De0OAA_c4q3hZ}^&@2CF0?fN1-jxew$9{HhE6&2z}7`&Bo~YDddP&@PEmZO`sbu$d5h zUrYg;SR&}$%c9;1vRV)76sXyb|BriWA9d{pZAoVK?7r$_eV}M1s3Yb8xw|KG8DKFD%V!ENE$eciEhKZyI{gx0_R zj-3#x?lzGByLncCng|x19UuiBz2JMm!6F`=9Uy0Wc876zT89ag@IytJJe%D(I9~ID zPpt-Zb{AWLR@=C7cxtnG9Q?uD>+#OjOx5hW%)08y}R`~WV03{-R&59YG-Dg09^Bs=eKVA4WJ3vhdNMmCHv^4=* z7z3J8UI1!MxbSPPuz*Z4ZvdGIYGr_?s=@t=7k3muchzqNojz;)&8K@W2P5d*k+lqr z3=ADEDlXl}K<9y2ZUzTj+aY!a2GD>|GbA26Ji1#!du%+q9V9%uZBBHzf);#QL-*ZO zvV%^^>IHck+;){`U~sX1!QYw)7Ka!Sq7u-}Gr^;~RRWYvI(<|knpryjm+E=+PJaU$ zmgt=iqCBi`l}LlG6!m6t=|0fO4BGJjV&YQ+hHhqujuHtL2a6IF7syUu=r9pz1mCfn z%@efEqnF3Qv)f(3qnD@SMa)wJ2FGtlnM#x)3MDWVN`Ms_Llm;`x4Z{!X#@{Gfle-P zKs8kXte6et6tEHvO!G9rN*+HkV0gKN1r)Z&EX!H=+fIX80o~ABl|XB}1!6!Kh6?C( zfLmh%DIFaA8ec)Byo(A8zs6O^ZtxAmCMx_IXB?Ricy{}P?#zw!QQ-hxDCo!^8KNQp zs`0@MK}Y_`92Ic0&Jom|2HmS08KVMf+I@sI?Hu_dQ&d1}03v-fdBEYZd z+TaKpa#i5h^ql|}GvL>BUBIvDyWxdw1-)8rsY^cd3*@cYz3k*O0v zWbPCYSqi>hymrB7e!&#bn1f)BiUTN}@V9{O$L+ocjxx}#^N#!)r@Ifk@@s(RWk4;m zKaTtw-(jO9poU8a3usCQJa-)fo~yP2&1ai{2+(C&r$NoI1CHSKGidNP;sV}@*1LMpS9MQ0hCJk1$a;I zF=k*s?Ah%v@gKCZ1MDS%92JMp{BfY|7@)h;BSDi+pmyR%(BcJtk>j9t8>j_edZpX- z3Mg`|<5~EdctCOc?I;U>3uwO^I2i7MONeKnkZ|lif*BN`rmQ=n4HwBW1Jp5@0qT3$ z%=pY7X#yf>8x;L(;6ZU;W(Jq+pG#vjQ0ryipKJybD)o;38-+(;lVx7*y-=qbu7E@Fb zy6-vi?|RBnY~Jn8(tR1DNOQSf;L#m&y#QRWaXm0#_jf(-~$#tHby3o-XIpw=9i46A7AHsbc4@TEC6q4@BrUP9GHu(1F$< zbB_6RmZ%tjTB;f@ojEEBzTGSbUf6&C|Ns9nYp^**J3s@HpjHZKFcNg3eDw{`Oz#O- zehu#(pb^Oxpf>*uP@BKQm0x2usJQ}a_Ji6gpk_a41&(3HL&(3TC z&(31-Ehh;c-Ax`Wppg;qK;lbKTR4qhpaIk@^5~rfqWA?mM8J0?UH0tt-T@j2SKt?D z0N*AExw)?cbn_ud9C~?Q>4HE1A@!61=w?6ARqLSf2Jl_$pz#JlX9a#iZv$v6QQo6_ z8Ysv>w>}^D=oUHjA{5k-I1X(JJ_Jp9!ydDRsF9Tib`4W6XljSUM zj362B(JgZ8#gYI2|1=?*TVgJ-dH^cA$5^?EdU%IRn(bD+>hgZv=Ozy3cisbb$AvcI#Yl zv0e&F7oZa+uYx8l{)jR#Shj$h&!s%wuHe+?%Hhb!{{NWuc92O$J3%KC78u`#_P{KB zy4ykF=GuLxy9cZf)XRV;EZ=UH8=$r}XvvHLC_rI7vlE~Ib@1$tw(#uEcJS;j_CQW3 z(6g{mcCYlVm;oANZ+v6G#K6FhJoW9-%_{KDlflFIh(~8DD2ss4d~ z!!OtjN`Q|10)9IDg59802oks97i)R4Z&+cCEu8P#9fB%E;tpqK? zj#&El|NrCGyFr?YPJ48BgS5PGS_)cPy%@v>Z6XF)W&N{gDrA1ab%IZ4>H=4bGztEe zr{G1oZXBTDWd$FQGkQZOfPDMq11N}GXLxA4P5||{Je$vg*YKo+jyh&O;n?d6y-eXK zXob(VC7?Oh8!p{$0+5RoK)WYSym)xifWfERb%sZG=ma0_L!QkKet@+1@|=Eg?4|*O z2S^HPKBJp}N4KBEiw=-UopBQ2phy$oZ!2MAVCcRN8Yu%E=jhW7zBm=+!Zh%y?x29< zx#82f5ad^gDxMoIoeM$X@&CAWoj}o{mxdrC+!UA(bYCdp^yu}S@WRX!6h5g9KAou@ zkO_!4#h?-88=!DV08K6=fV{cYpa5*}=yc%lXin{5@agq!a0ShC zUIT?rgAk~XSKHyy?b`sZCOx~4gSJ??gXb30@q zp$kd`Jvy0ux@%{6HXrBk>8zdcS_l*+8Q?fi(gK~FQ9Hx8yZ#5LMt1CU=Kxjej-Bo- zpfL{zQ0F*fhXAM#`u&L~zr#_F<^vp_{7&E$eq|wKNsFFOr-Dy!0_d(r$rw-r!3DH+ zh4&yU=u9UUm5g0r{oQ9?*q=6F03FNy#J6)fsLBUf;Q?M5=Lt2v`^1a7g@6Bpb`P{3 zD3S4PeNrL?S(f1V!=;lEv@p)I`3+;~d(dK;1D>7k0^Keu367oMzIJ!8z_&w8CGJ>_ zRVT?<39wl#{4JoP__3OIeZk-V#+N{KuQbS&;3a$>oq<0(1>uhT0Gekyf05^CqKWII~-Y}BN3Q@Pdf|>UK(ms8fe~b7=^W5(X#fN0FhdJa9tr^EAxImoGX!*t zVv0%vYF6q4U-%&nE&!}=^0(&w`TrkW!a&Ey5?rj)6!@EZeuDk3fa3%n6rHa24g#38`PYueewybCfA}pYmWn>CxQ`PVAj3 zC!kE9&Xg12McW)jcR>w__Yu(TogmJvdEnZsPM~N3*kZ5)d>cHq4}j{NPB#J9?lY|i zN|YSCFM?_Z&u*3r9-S-~!Mk7l1d7=}E`I$83aLbSPl!$r8jIBqLZJQm8_w0(~1^yeHfa-aV-e4AwZaC+}8(wmL!v2qu79BH$sV$Oh0pN!a)ge`E*bKJ18#pZOyufOai@ z=8xO}YO8$akDLM8tO%L(i(H@szDhje%V++G4WQe&KZB7{y(H!v-;_itEcSCPJkGKHwXeY!}kh>!{ zf=vF*A2}1ry$ccU6)aJSK)4g6uiHf>q7&RA`^+ye8)OG4oI$|_3TIFN4Tw8SHz1q| za!j}D2FR9FP_re0zv=8>&;a`%7t6E&r1TSkl76(f;pqnwlmeSUferE($ViC424ngG zxe}6oK<)&^3n(5y@dAyX#h{pjxPKti56Cr;^aFAa$eobXC$Jfs-WP*X;efakIsJef z15Q66*MQPb03`i@8~LrrK&N5tuK-^kdHzM*E(7pw<>1ATyr5?81~yPCx&dlt-0|qH zN^3{bmQv;9UnX&&&Wd zh~hZ9!vvatF_v0@l5VMyi)C6usZQr)P$#k1i}^(tNL9BVheu~4Xi5QmM|yV$i0RU) z_!4wYa<^Xq^C@P(gwAeI9~h*dy92}mkC8yGa09o=9Ka_10F|U3osE#rCMdrM@V8B7 zU|`q@^6`uOo#@^@$cp6MPI-{|9-Ymg;vC);6FK40cnE140umI>haf@0brv2J$H5~l zpi^&lf{x35v35Er2*48^E}a&jIrQe^94^*%0{l&&?UtZ^A2>gQnlupio!^1(K1H1F za|Pd(Y6d3Ja*V zc@cKTfWfhwMaAiuivkOHav$Qb0LMKHpe622pe7B(c?tY&3*fH!)^O#@%R2eJ3#?RNx{2ISL^T+@B%rC%NvIMklAQCi!4O#*TT7(N)CiLkuf8>MD z{1J~`yN`f_wwr;00W>1p?Iz*VEpo!O`;4n)5=&VYXqJW57-WbGf824$?t`F-D$i~& zP-MA)7AD0U1r3FR)-T0?He6o#%pZBd5gcHVH$l4sCw}ISIr7;NeC(xQh)My!$YJn+ zJ-Fs@naJS?I^WHUrDzFgfYjPefWN5}w3O=Ou-u(aHeFM6W()YxRl-qy)Pw?m!6}bXhZRUI8h4o?3F3Qjy9=*ON{);Z{2MLR^ z!DM9*|M}k?x(6cJ0g?Q98KlPd#0v(HxGCm?>)i5zyR8K3E_92cyV7Gy!Ub{NCLe55_*jx$dngW*`Rw6!DA4+K^rhV zI_HAaxpXWANrUfa2jAh{>l^T2^zH;>hTh;$Ah*3Jyan-cCd_Rfhd^Eq3joRf7v0nc z@{VXQOjhgApa0!qpp~g7{)r!dC|P}Q3T{IdHmkuz~`;xEV#F@_=pp9?>E>- z+!Kr$5YagICd5xWFM%BId*VgOL6Dz9L8mpJ_%C{|7bGmY93~rf5acHTh=&hCBtd&9 zKmso;528kuEZ9%pVxZlzkf^~DRVHG1qN+a=pPx)Yw{L>|WZn6dHwpoOl>Y~BSLX9Hc9R>A=pihC^x>d1M@ zGJ;kKbb^N;LCZ@)i#fq-GC}KkB%lj|6+laQK00>40H0R!(K1S)%ow!N95k|Ly$U?u zECU+6>IW@@=oSMNh#nr@=Q>?fJYFom{2$cKiWew43tGG502*xu9bXQ;*zMpe4)~r> z&>1wKHIcmfM?ed@Pw_W7fD3;C)@K($0vGt3^dSO)9Q^vH_?r|#d#3a+@Hc^GoJ zz`|TGVMeHG0kH6AP<;tf{R(n`RiFe|_zq0?GE`UwEPNCu460{AW-EY&*TIBAhg*S! zRlvgF-J>A0`=EyCfQ3P~Hu39UD5?gjG~m}iRa6M#=76{+AZ`+f8w=uEfVjaRuHR>V z0YOl`_~tyw*QbhXL4~?Hc$d(HBG6fHfg&KqY9PgmAiWwOt~iJbI{iJ+2E^q6aiIrE zf!0T%oB^ExUby@Vlu#62_!j^9Z+x3yfPr7I9n{a`7w{0^7wiW$p+W02`32iSZD)P~ z4+DO|e$b#ebf!QSx>gHzXwgjM=>YJdhXtTB2P-_9k0gMO!GWCjAMVlk2GmReZHopi z_XSKl$iheo+TETake=6vV4$uu7p)i>bs4|i-tf4YKDhlAc zH>6(F7J)YDobc&oeGF3E8v?qD;PeZ##gL(_UQwUD5Ys_Ec9(&8*Ix(XS9cqTNBwH0@kDmqa!31psgzUitX^1}T(aXB_EM)&> ztpI3kG$=iQSL%Vb?pv{Y*e98~GMJfCW zbmGQU!=w9_Pxr&-DglO4!58NRKxMCJ##v*Am(idz5%z%ux96wf$zKGzvz(;V}=*`U{gg8fRcRoi5CHUp!Sll2IxeDp3RV& z1{6!6ohYEmInV^~2Ur~w6AzlkJ#+9Ccf%t_&`uNBo^u7{HI%(8EFklB6R^zJC0v3= zdussr2CEOCao`Zpc8Jc<8KC{Dpao+d-IG8SmaFkw(3S}u7t4H(GBqE|e1Q^$Zg-Z} z10|Bp_ADgc9jx4Q&rnc6PULL-p)-F=|Ru*)DFKD{E{j@@5v73d_lCea=qxm3r4)1Gyq;vzQz)2gnGfM{j7t3m(4z z|6k7j_y0e52d7K7KZ{E@sN4ZB;PB}6Rd`W%1az)2&I66Qmu$${{xeS9Hg7xOC>In1H;(U+>D`)0r!P*r4g6V&c*3%kbjh zW6C9c=38q%~bmngG==L=LO`17$yR-Q8vNS@?+~Luj zdV;~F3%pd~qDQaqju*DSz`4!W0IJgXfT#6|5)tD|-Hg^3_?-`dVyOFqr}c@_cfC9g z;MEG}dRJngE`Ez;r9?Fw3VI05AF0^jb3pnFlAnr#{w_}eN#D=oWy8D40mgQ~Ox z;HxXTU3YY!cIoEn@agoO-~sAVb#s9FxS)xJ0+;Te-4{W7QbD);bRTSfAn(!X`k?y+ zVsq*Q{#H=Ahpoq)#VkHd5TDGqeM=%?-Q=#sGAlz5{6Sj0fn@GS_Ys zMwiYKl>kTUdnJCJ)?Z6_T{_J?nvbz~be67otq5xV1%N6t(EeYIO`tFWMNR1npKjj< zpYG5O*G>}^&*md6PXBqfBP@ZMe-7lO3YSg;n4c;@yJoamx~-ig$^=|HS-L@;M$k3C z|6NpUKsg2EWY6YTj377jw}N)Dcy!l-=B_XJbi3a0>GqxA*v&ElbkG|A>JyHgEE7Nr zi9mtJ-?|sPjH+}2XaRMEOLqupQFsjKAV1d^9-s*wr)HH#22kPP*nPtlw3;?VCBxJD zN=XvfvE58A-7Jl+tp`d}9lK9CYV$NZ^|CmEE|9f$mvG^CI|w$z)%su^t84d(ZYglq zw!Tt&9OOQb2?=1Mt#6ciz83IkKK7?u4itjTHZvK@*?p|PmA(d@J$R#3+auYX#mD+a ztyXu4ipl>&ogpeFp8pT~bjGM8IKfoksO5S6r2AIuZT`-we?jHt{}*#OLG_?dcj^cJ zRz1+J4Hp#~{_y{wJ@~bLAQv9|aX(%daQ^?_T*1M}-wL`h7qorlGk?tY&yM_YA3pO( znkpVg^wbhwd_E1SGjAUQRgJz0FHUU+_0&RCLO=z~e^KKGkhtgtnDpw+fBu8k$U$VE zLS%QrWP3M*YRvNx$rBBrv7mDh&TgfGSV$y>iD~L37%@pdQPMrt6>%6PW#9w6W2c0VPNxe|U7q{s3)rgREnFZRyg@ zJtNqUN;9n-MUJ=lCG6qm* z>t7To5+DZ>f^`aju8;xmQ$F$HAy^VrbRRze+6{XA<-Q-_wd~OTAZUZ%P0&KRUeSGr zjTs!l6WlM}PyhSB6LvcKnKK^Nr%H6eok4Iz5mcFX-vkxyr(ZCNfNst`Ea72&zw|An zg$mh;;nC@%!hyUv9(M2UBaiNnKHaB$v^hO@RaQWNXZIn`?=OA2UwIz<%MLmO;NS~; zALbX}Lk6_@Ji8Bhe1GY2@E5xW=+254_8!a^Ja>G600vL%3;ZoIpoNFMRg9p`bspGt zcyyogxcJhu`v7Pkz4e7MR?qJHuem*XWduE~?|bq)fv?oa@U*_c-+l!&Vwiavw7&ku zlt5643qF0I!Z-6RNX&=%g=hC!@Djh?fI85L#e$6d0{#O0f}R5W0`3a@f{qIO0{#a4 zf}RHa0`3m{f{qUS0{#K~f}R2V0`3X?f{qCu%%}JT{0sO6JwJFb{{kJAR=N#h5@?9j zqnppS`C=76^WaY=&u-BDT=qW9Cw#3h7R!2c2Xc7#vIKed${hCT zJ_u^gfaYI8mtnnjEpzth_7nh_pnVz=ouKv#sILM^g`l(1q3ICRNojs#08YFgJ$FJJyo$@y`XYb(O;Ch`Jfh9# zxdY}GP*MRU%3q!b|1)`lF5!G>@5B5Pp2QAdxDb}a4nmVyjz>2nReALCM0*^3$o#_1 zAD)^tynA`-J$iXgfO3k0NB4D4?dv|>$6myPq62gYfKT^1U(oKSFb>dBr8W$ZsP=(H zHE72+D2n6bqFtUh@a=7YFaGINbCSe>;g#a0!ZuuNbCVf>;p*b1E?8LIuB%nC-Y%X=F=bxJgiUgw^oA&p&(_S z@d41%$<|9Hq96}5o4>yHC8>^9QsvOjZWoczomcaUG7 zoqzg)mIEbOpp2O*11hI3fS7EcMA_|b;HiAngZTi|>jyYIyG2w$>4w{*GZfLKBQV=kDbh>`<==A-;ui^Rubnn>*kM7bBzMys7$2`IJg}>mFV*nk# ze$1JJ5p=;@H~7ZM640Wu8Wofi+(8=@eLuYJ_UPq}+HcJ8V%IDKhBM$T?tvU0)`0>g z+2AtWrPrelbi*OPAd@3xOvp>X5i%&`qyQ2z;1~2V0Esy83pzP~L<0B)y#hcY3H*Xi z37*WLYr8!Pe3=jO3wnJ37w+qzCVDhFa)2_z;g`1|^)M(Earks!GClylNECE2D!a$Q zSInN)r#$%GFM#^T_8!f@n2IbtyBR#15B~7z<+}&uUZ}DJ0;L+`Kh{MC$o1;X+qg&)qHyb2+xZ%HN6tDcu*R&f(X2N z&Zo2ThfAj=_&luljHTf7u#UTSUx%K3?qUfxrOe8+TMT-5I_O^R|A%}sPk^Eyv_AuU z6R6-P(4ixZj@>ST98R4sjT|o4lR@@_wkURkmR5ir2O3O%p$B&ysD<<$?zmqSBsdOa zB+PNv5XXUpusY5~kO$#95fs-Qg`U`saNUFoSkR%mE`}7>f!2_qxeg?R!*!sua|Bty zVW)uMI?##=gzG+)V|U%YauUK0WF(sFKtecNr-BGO9aPsjcK-*h9qxYL{GX$U)v^2d zYi=LQJ+DDaKlrB}XgR>&G8^0;=>ZG9Fax=LGbmB)0Ig8;`2GyMwzd1j3kIm`WjtEH z!Iqv@{_yFv^yu{z@MwMqU3z-lqq7BUlxz2SnEOpVyZJo2VZsL;{~z?sz98t!e88jm z5T^(8RS)J%`~oZ&KRfZ)vm9`-?gm+3bo&4Cmu{fVW!>)~xvBea^Is${{01!ofqG#J z#0y}d7sX|N|96AE06l09oJO9(cIsG^!DHcD2}bsM2g_a_oh@MFT)XeXyy4~38_we2 zD-z^+@DUR@Iro5-ICdX){C^lJv-vWg!j<1<^1DjuMcEdW$( zMu5sPP*ck>_AqDYT_bA|S50>Hu;U3UY zI8gUYE5;H&sU*5b1K}PG9PYtVpg`T@*!>+;pnxtZXa-%K-2Kj@+vhdtvOxZpiJ-ZU zOOUnUFJ2dcoeC{Sp2NzK9Yv79lL1w4&?W3h<;Z(PIpXr#z_t5)w=-yr-Vj`bfJF$D zAKlI@pbKBm|3B7!;bj=O0Qn9nK)_Dk#lXM-adH8;#9jq;@*+@Xuz)xjx!eFHLh!k? z3{ZCysFpoCU0xTscHf6M+s&sp6t&3kd0jw!c>(szjiO^@b%TmFXvY}R2lD8? z`6BKM$Qsu9t)N*!W>6Cvd>}P!uGsjtN3WxSPxncWPDzi>NKjkVqcc*#qcc*%qcc*$ zqcc*Y*PFwmQvy^f_B!x*fOcno@a$~_oz$=s3w3tEHqlCku?XLl2*-R0VS z!@E}`8gxwEgintAf{fiR6F3|@9XUL^n?Q{c(0&DBxU3@&R9eKdy9v}P07>g2q$Qxz z3ZC6fplTT*qXL!Dap^wn*nPsW`3FZ4OZVZ|+@6+mPQk0J5;f267BCldKwvMAC)@y+ zP6LPuE}a&y_hB;xUUiqKfD8d~J-aV^FkkX$KFI08eA4m%0e%4%&}lvOEGJ(d05x$r zJi9?dEU>xo<~Ir+pjmKF36Jh@1=vavWp_}+I9-Clqd8pxL})O8#yoItG5YKVN=A^? z@F0cI74b1D2B0b|{^eyi@c0ib?gKeMJz#A?(5m|8M?YR{ar^V%_y9_8_=rOE;WIBm zhxng4bLM5W5Ca1!UG%aRHiJ?N<4em=e~|B1_UOI|YS@E!KH2zmI}0G%HaBCxfy@vH*j_x8sZ@yioU_eqodc8ZSKz3OI;YkoOUS zMs^@)=Yl3S`61KKH?~6OA)(XHKVO7>0v%xhnoLaDV9fBs{Num>#@}8veERplGqmM8<1weKl{_yYr%a5Sq?wF(Yu{8d?5B$;J()ja^@kfKFqd_C= z``5!q*g@0M6SjaxcY8%YtOpIHgGAEifX3Kiv(hUvLE@shaB25BpuG<;=}w4r7+hLo z4rq`aHZ7e5mWEABGra%vf5Hnrkehqar==A>{`)_{qZ@r%x)D?=HK$^kmexK1Dpo+# z(z;p349(me9^H^xXtt@4Ia^RbGFc#TF5197hgf9pCNl>(dV8)*S9vlnE*O- zOtWBzM>p%+&CsZBEdVW)?!M6p-s<+tr~9X?@i!mKA_4xE)0_+pE|x_s{A~w085n#l zH-YA#`CGO?ggN-zR&g>g@P|VV*0li5Tp2>j;a=YZFDyWlgx&ru{NV@SLm~$;heQs1 z=8phHqbrEP`n}4S!5FlTl$UosX!*{;BC*f>F$eke4;J%!>;$dZ1>K70(G40+(YfHk zd;xrcSgRmtDdsm9%W{q~XO!cVL02~^ID+m4bLQ~rW$Ezf4b=c^$$I<$zvKU7F4o3H z55NcdI_?9RUUaZKMg@9zlndyH-4d0AZg&MNQ6QH@**o8=^1DpADmZ*RO$^x`br_Pw+#nMDjCIz1l zECCuL0F7SpgN{H|ae&OTE0!vNXO*ZvFe;r#BT61>oa(ODF8& z0#$0Db9vRH|NVFDKIYNuZ{TBTSi=4PfJgH|4p2G%q4hwiB1EbHU8?y9qf1ALia{Cc zF&7mBMwjmOA3%q>bmpiyK)mXrk^%BXg~vYFz=3P)+mZ~&?yDeuhM+Jo1O-&a3$~Y_ zy&U&kEVqM=RbDcbGW{S7pIYT?seyTAo}Oh+^m=;T1qk*Bc8^?e5#QuRIIVadVYq6=OteGGI7 za<6Z|i=Ep+M=HBEc=Uz_fY!yl-17H7*g%i&*ba~G!#>@y4W8PE;fDsl2kngPKIhoY z((T%9(hj<}y<;~>Eb|_w*m2(C$9w)h+VMqqjE!wAN?U z_y7MPW`id1A!1!%8%or{XYYayE?Vx=4LZ!F`QQH%tL|ft{JY-CyLOtiztjW|fyQ=# zdn>;#Qb_eR!%*TXTv1_EK@fc)T9a9#%d0uJC&Kz;!a@E{<+fCG38 z(1ZChzko*pc>Is~Ft|;$4PufCf;Gp?~-l^cQHF^y#2f%5xXrHU`xBtgLnbf+Rg}({3 z&HTmW*PzOdzjZk%F5F)KgUSM)E~ zCf|S;HdFun?*?su0j-)|4$cb?NK!^E)7H@$hZIeKDiEe{Q zKAi%p*}$c5#EUb}L3QS@m;e5Q3*_cn2k=rZ4NwFA$_q%H>43bHOXG#FEocRCsfEXJ zR|n8aE|-o{4UgVl(87xsUqKgZL)iaCzkn?cQ3(JIr#HWcBoQ;mZg@GQ<UjtVvcCMglxrZ!1%>AG$(6#%XtEFL? zyesIM`#=uR)z*&PJnj6uKFT|F@-#XAKkRBPS@h8H{~;IaaE_uwklYV)Dt})Mc!Aeb zkM4HR!aC1x85U5S^Vhp-_;lu4bWaAYAq9`E)}sjbypt+RfAM+Iq6W*`*V7m^A22stYXO6YqUItbHv?#6aHl@aSX& z83C#YJUV?1UW4IrasJi0+gpI-zm zMtCt1t_*a9e(nVDqO6=X;2YfkgI6DHK-#^VYz4~9-Js&P^<;@H$a&!Nvf%^u5cjbA zbRY6O_`=?k`2ws*pb57J+;+)P0qt2h@Z#L3|NpxWL+2dHsvxoJs;!yZHU3m}d3+1^!y(U+|wOseP z7p;b%;^qTrphUo;pL|uSQ2xZK~v-<#Obqi=^!v)XolP?e40Ufsyqrw5&M*$5p z@O&|-$G-!#QvUz{|NI`^FFpA8p4bgqj?sPCkItts-S7z?otkqUZ?*a+=qR; zkAW2ZKj?A!u}813gh#K4^a~YGcc{CT!=u;vzelI5fk$Vog-5r&r}aPnmSv#!GwAFU zdyigkffu^q6cQ@o(|y86+1J3A`J}(4$*EFq?@pOh-kmY0I9}&?ce|Y8==K({_7EsF z@#yC8us&V##HZVt!?V-EqdT0#qmv6f_y8Kw3FPnrt+wcN=6HS3quYVQ+C!iuz}u4L zROv?)9ZVkG9vtAoBhUft?i`?W2C~wl`##8(t+7}J(VCAaIL151#UJ+RW&kB{k4`Jl zc!p0WBWQuFN2i2mC&)~YgPb{DZ}sTq%~)v6@Zv=cXsZi!j2?8h5;&j3Hm~@07jS@f z8~k?^@aPSY04-7JEa33$KIz&0(X;!-i@OG(dfkr$)bVq8ao*t1f6q=ckIqsKk8XDZ z(Dg|k%7?+zq9O-9tiw4<**rQ;4!#!hu)Ydq^7vSm9ONiv_2?`)2%ZS_0JWRCbHJzC zL-)CW@{a=O$TI=Zx(^PR+du;`-Gv+;+J>N-2DJc6K`ww;bU_8s56~jd0H5yDpiKka z!5kjl+%MudK^?VjZcz3EU5X_D8%4Tn0?y|iy)557I-NN@ds*x}Iw4sJGPMyGA9wi0 z>T-CwgVlYXJi2fCfKJWVW<<25J-@&3>Hg$-@E^M;q=o3i{J{ghG|R*KL%FL5q<8Vc zTL+iJuipLte*$c^%XRQlJIF-<;2?Y1_51(-7rY?X!See}(12Cz$r2w>((vg%{37}$ zsKyHxK&t4pg+awLxXi&;_MJ2ajjSP$IDtmUq7Q>^(c}berD6HZ9}@&3xIlNabA0BH zaRMDnu4*$MRDMKW`ph4B@-uj2V+80hh70`qSNPkvK=v7Vf(|GT6abk3BD_FcM-h+_ zpyS%HYpsN81#jyy0ciyhULdZc1xTyKXMP;Ef-XY)%rD>xI_o=72BZ~4c!9W%3Lvct zIJGiEZB+qzSp%dMM0kO?jyfQ%Iykk0_9wc6CM!YvqCg9VdnbYJ+Vapo<;R30jQV{F8&f2XqwN2FAli2M&95pYqJS0IF_Yt~Ep%(*$+wAkj zf>zIX@@pM9F%|A5w`%*z&AXEzInM>nT;Cl7~bCnM<6ARi8JAiD6g@arEe z)9~)*;qdBa;rHs~;rH%j0pFJA!olLmukXlG#^s67$}ix>;?sS}SNnn^zrGhsnV@Gk zmq#~~M<SYf zwJ&&R-v?>+V&T{KW+@W_wPCuMJUh8OI+-EjAkrCZuA(Q%TxQQsZjhyp`~pra{QAx; zWt<>Q5FH?wIP>fKaIlmKgFFXuBiL&oDUewpO$W>Jz;1+C1oD6ri!;Bz3kOSCC|Fx3 z7f8=*&{3TrmwB?3fyd3EK4ygb*a6}&uwe|Iog7Hsbp(5t6C6a~D?Kr*8W9=(+uuYEnb%0H)==J|mCJeekq>~BMCu)Al0gA!$w;r8R9?i!&Jgonft^>8}EWlM1 zsDXvl2nCJtgYJO=UE(5vaFc;Y_b1SOC)yuDE<5;-*`xcP$Ho7zl|BBS?}!1NqvZoS zC=)b5e_l2@i6N`hr#!UiPrQUUb37`dpc{Z*SlakikwMoe=xMI^{jJZ+lwbD&Ya8 z@@{4ia60wXKJBZ0+0*)C(HS4>bER4y*4Ili!B%*7b9g{iF?e({`-1iXa)C54-}dNa zdfnp*TK{Ezy;RFn`?inu=@LGVZf4JJPR~w8k4|pT0bbm`+J`~w#5$QhJ2_s)fDh;A zgrs=SPR5s@qs76^dr)l+YTbKw%7Nm-69A;tx;(?s5=R7&x+&33zq090aQZ z?YX&8bK4Vi1rEqD-8G=Z!EzC6UNP|KJ_Jse2SIaa%@2NfH2)B&@!SVW7Cya2KRmQQ zdUmscuHOQmT;~94NO!aQXdm}H_=6d=j{Ur6CmSdMzhDA|So1p$uU-~252!)4;Atl; z$rdtqht#eIEdT{O<)(-BL1cf=*8X%^Y?^m;ZY7vi{A0%n^!S zgVm>?@B=|DfTLUeOOzjTv4nzWVRK@omd^fiiK(mAvObBcCrU z7{J5k@d8CJUrd1OxHlEFdlyteg8R^*TJmMm)qnp%_X~4ECXhhoSoaa|?)L+r@X;&)-T$-0qnma9OxSD^XaXC2;OIk-PTvAoQzY4y4LB*q!$)nkkgX1+9Xt+V;#WmG`|NkF%wB8Rgv1rr(!!F&+ zKrROzgQ??aeW$3&r#rO(wD(TMv-=-nEx(U-iHZe(%W)Ra#MpmV(1_jn7b^`w%Zh(^ zfG*SOKIEg#0Lns+-7YE;phM@{K#AOODw~4A`1O8NF_nPIY}4*|P>U<>1E}r9Yyg_%JocGC(t!nZ zp%9Bl^I;B8>v)dRhakUtG#{7nu&z7wERI=e4|0W^07J|#v0l!-lFWGaKMhctcy%6=A}+UJmZAD|5ozdR29X96v|01ur1 z0BtSvC`m9r;M1$);N30r&f7ZX9Y=|aOJ`~Uw9XN9E$L?VfW+!~c&ze)!V4a$oIbs- z1uvLX{{08}32a8`0muJG9J`NrSRXH1)IAU6a^wGoZQ*8-6H6JC_A z0`1nUQK8UBj3`LTRA&jkL}H#>PIyw>v8W&vMO(g{8~&bwRW zxIaiQ^fXxy$O_yS70m_=|BqXPtt^`8+VYma2$zB7H1&hqW?1?_QkE%@ID3cA)Y{PbPYuI?*yo<3P={5!XffKVENDj z@G+~u&w(a1G%tcDGzvVL_kxaJ2hV8~fCi%_E`sMYrh-I~r!@**l&OHa)Js8|I2b&R zgRdb4&2AiXEdcFP7kDAH090T23j7z9@iJzZ;M@8HbdF<)N`a^L6_4gee?U=er1A%} z(d~bU7pUy=09AGYp55nP98v()6Co-QpuuJMZX?iIC0spxkgg}nfBwJbLX>E}t=~%Q zKn8=3vsbYIZJx`78tmYyeGR{H=Uz-z2903!f~y7NGcW8)Aj8g}`opt3+Q75B*uk^A z+5^0v0lWv@vm1Od5@-w>yssWMesKsq+5?)0u<8fxxdSD|7u5+Ud+uOrZ@$=f4is*z z_d!!soshA{WDN$7G%ZD5xz(zm5Yi4 zq^LRtJ`XzuQB>91fa}vcKHWJg2`-lD0%fM4)3mv?z@<>PKWN9oMVIa-&<;<~<*o-` zu{t(C02NFw{HqUk@=O5T?kP}o*~cc_1V#7_ za3=;lC$q^^*Xp33xH>A_Idf_*QHM$W>CV-Tyqg z-8KBWRel)X?wkusKOJ+yV;nxecb2F) z9CuLx9R|wKoT8!uA`}>WdU@@7jTu~e-IzhHcL3Qe`W>`~@a&7d8h`$S4wD9l-E(Nz z{p{qK0G>5%c=5F#QYeW+3Z;e@XUf3>U?+jkmfj6Me_OOC5?t^!fX5g;dP70yId{C6 zbP80^95@3mXfiyS_kv0ea6yv+3g_vkAq5Rc6q<7XAM)t-&3M79@CTHjK-W`y9B&25 zgEE3kM=Ho%ju)F|gCfY65s|KmWV^6%Z!|90rZ`d+<9P26@iS9aK|%aO}R)?XJ*zpoG8slxwF--~U71 z?h4iyiaxq_|LHyf*9+Ao=nkr{K`FHROSiuQXubF)(DIG$voD0yp;aUJrivVufbM(U z*Ff9_XUu3DA!+4DdBXr z7KH3hbNqh*v_;>=`dHCL*VaoV?5>?Q^Bn&l|9`C8U%~n#f0H-3F3eF$02LM1KlxjF zL5t|R??a|vzN6nz&*}!6oBiO^%L1w>89<%56EDK5L5C26Zedp7Zv!pD0~HD1RY9ZQ zpvyNvrzITrJotjO`*ia|dGOIMmmfK`iZt-IfOh=4cdPVyb@My}uR-3#z`)SF6qGv| zj~BP#JjwRz&i& zb#{RZ%l`*ltlb5Q?s#5_wpljUDy;$G^p7VVRn)3zM z;a4Gb_}LeEGJpPe*Qoe_mY=o$FXaH;pnVLfHPi57PdB)n5cTPVmJ5@ML9LnVpfcmX z=s$aqsAxP)vaA?fruX_b{1<%$kqd^&MHPecIJO(OI@=xF>P~uMDDp2-FgYtH2 z1-8;8Wje?PP-&9pXw2|h;0&-ly>%^c7?{u~tsHU@DBp;fBu2he0y_fL=J)B~V{ z3r>KFonx*W7(9AKx%@$4MtiZ4fROf=GexSwcF=qjW7b+mxZg9bR(4(6lss^>k&j3;bI>QQe97X|j zSIaMt?vIvIW$GT?Y#!Y@H#}P3f?AwsU)=fi2X_4T*%#Lx!N-5g7u^JHvp(tg_rFK8 z8bh->1895%fg)qr?%~NdR4zk`A-)D#*S_3hl%2Tfpx>|963| zS^(Mg+X2~cZyhM}n+B5K#5}rvC0@*S`1^ksXtg`YvObt)H$Wb1AYd7^joN+l#l6FS z{x>H}FnIK`a)%j%)_^O3_Va>TN5o`spUoa-b3b@U!hC~REC4*X>Cq`j<^>E^-E^Fg_q*zUxeHL{qM+p*E(LI=n6=!OJ}}< zPqzg~UCDa}2GF>Sfln`QM6xl%Zt$|%&J-05m+r&IT~r)q&6KnUH`|W8sJMVQp55n< zyQp}8n4pHW!VAy02qS!3j2S?p8elCh-G@OO1&9`hvuAv4L8d@y4-ox=`z`2P0bUiT z#sHU&6qS${o+Snhw*Q$K80r-~l5cqQin6pAGx&5L2Hji*YOaU8SXpeq;L?#I6XI%o z5^RZ2FYERsP`ma#$nJm_S??Ga9KX9sfW{_EEWyDAsQFj4WxqK^(!a}Zxr2XJy601N(ZG1E}Z%=9v_6IxSvhN3@?rx`1c>wS1Dy~ zR{#Fu7(~*c*lf)3V#)!K_FixjHa_#>Y$~K~IRHxI zjYmL99ldU0L8)7?tvTtglyEgV0IpeH^6z@iUCh>^n-ZK$r@0_2j8%RH{EIIXu{yN;FY)l~KKa7S z=I?*6=9J$BAX6M#{+AkcUu*uyQLO0Fea^G_AfI0^&uPzY#$K=g{||X|x|}ZX?e*kn z{>4%B%A= z@#uw~tZKL88krjV#Ck>{~b4gX967@yAFU>KY2iUZt(Rl@N*pzV+MYWkV7)P z0>A?Xtp`d)UR3P|r4&%n=Fn)&@WL6Ca3F;zqMR+;2QO!XgFvMzWGn$Pba2L_m(><5 z%J?#MAC5Bi0qA^y#y1L}woNx{Sre>`6#x$g-16uQP4MXS)o?Zb=3-eSP%8Q2@jjTd zJ~n{T|K5N9UyAZFFuXVgm*4=oclF+X|M|lY@C&*=;156fnZMpgrNF1Nw4vKupqGWS z`$Fr15?)ZrQt-m|{-6Kd-U5zY-#|Lwhnmsbe2Yd26=KkdVM`! zOqdF42zA$bcy!iIa0FkCn*+L?rn~fwOLy%Hm+ssrF5RgQKnI0?-~yGEr3+j-YnQlm z=B{z+OkDxGV$jzCa>S&`36IXw2OgcJ0^MxgCz>BJcKWDfl(2)ZV@X}Hf~kZTw1mAg zcMbT)nT!=IAc5l`)1U$zAc12pouvyP0?j`eODjOzVp<&~O3gqG_6iSe7nK6gBz`A5 zXz;7T!#cE~gxjOj$fMasrGn$NjZd$u03;}a4*vQ7S_icCTNE@O6#f}r@t=FaWC`jT zI7@hR`#N|utDFFhT_-SlG#?iL1;fiXoD2{VNT6qUbWZ~<26pLo;{e_G=)-)-_++PV z$7{K6rsf~a<=p>I{C8>1==SY+&GFy0g!x3LZwKT+s|%%fL3TIq2OYuTDgas?+?k`2 z;%fZgr?b|=t-EG#hHLA8{+1^k3=EFlXC1*K5ssIiftK95v=&J4x1Qnv4J5g!Ap0D0 zRa99d(p6Eqb3h#tR}Ms=2z!8Lwm}-34}h;ft9UK!)9VU8VYA?cDQNdmw~I=JPj|u( zpU%_^9=+2*i_JZI=cs^a==H>?_X2#%F<|IsKIS69!T>s&uDcCXFgkX&sDNnK&KeaC z&+hx+&9k20pL-rZ4(ic+@;e*{O-Fe0I~@o0>~qW^r^~h;C^7QrlS7;u>3YDY)AfYoK2Y1h$I?xp#JBqfXhY2R z$6%**pLlW843rp7cyzjM01Yv<9w-5ibAV2tFt32^L=QDFg18Y4_?hMT&B6jOJAOqKAlbW`AO0bNUu#biym$p?%N zfL601oa@o)_@k2%=Gu=Q-M$B2vx6oOJ6#We3|7Em+$~d>_fL@G&=Vl@G<}2!k_PycM&0^`;$?n;FoCP$s z;L)5rgR!*Rr*|tTxp?%pf~oF*KHdL(w0}761v$#2yYvCXRpua98I%Ne$FqP_F{Z25 znc#30^ujANR~bNE1#*gK^IOK!>BtjjuAsEc;L_ouk_ak~6Fqu;KfEyE`1gN;@omUF zXzKxw?%D|@elFc5DjAOd&-rxMe(>mJiS`67M~2Kc`E;|~Fuvs2-2j@sbo~CU`+`Te zqkxAtBdCz{0G;FZV&yf^MhA$A);B;KUkcxs=QL1b-VR69dC*uKx$DPw=yse_UQzzzJ-STJrC_09-XlUuHAP*8r`~8R(N!W3V^mj#C!Mh zqVZ+ogk}(}}~Q`4EpsXXplx?$8~` z3MFtT+~Lt3dH|%*0cxTG4uuCiy4^Iua-h)zOdC(Q8ej701rK!jbTj$39w^ZVndsT= zB3=O22HO420CJ^crvry4XcKuSljHwG9?ge196_zSlMn+yF$Oh2!?XJg__{I|VFP{v zmJ^>H`Rf@xK|9P*bzT6)f=jpS4Yy8~8Q=p$U2i!4Kk90&$KMnI+Cu?4l-O6ovpJ1} z!L#|GfKR8d1SpyOKhzmI!#a$Ezv=Yf|NkLr3zSxkFSQ;h(e~)B1)VAS!K0Ta$g|t! z1c#?3%ZU=U|Lve=-Ty<@(?B%n6usIB9^J7Qx|>0K&=6q{XfhSLr2P9sv<)PNhM+nQ zd}pYu@qbWVYPk-ik-sezl;*mBdvyDL@b6Wr_v&_e$l+zl@{qqp9V`Q$m-Xv5`LPpp z&CUy(AW%o)2B`47U82y*+~Lg93Epu6-GAcI3qD%tMU3d5|DaVvH=tX1ygFrGcv{~p zk#X#11J{h6y8hNdGH^zD`*QO_{uc!IIrh-^i4Ig29TpEBt5!MfTr&R zn-v+F6ImEQ8*4nlC)_~&R|HoY*GtB%=+rWdR z;Mn;9Dt(=NdO^c&p`e34Uxc!NTCJfB9@>|Yr}S~`oB@rtRkQ#35898I0&W22sHFIG z*IIb~KMraHc{Cqq0X4cDoBy)#H@yVy-s^T10PXWJ_UMiH;nU083z}N!X5J+MUao)Q z#ae$*^f7}jTk+@>xe6)6Prq1a0B*^idy)GRsih~O|M$N~cWeTri3)A)xpbE! z`(&rL060o9PfPaF1GRlFcyv00F0KTd?b3Y+v>D2?`=V#}sTbMF1`ID=Yy!<_@wYCbUR2memlV7)64s@#F)XSSCq{PG@x+Fli&5CTVMbK*d0MN!*573f(2bazo6$_6}7Zn50*ouY^==w#_&5OOPb4rY17c=#O zRsz3Zj{N)oh1@1kaya49I~6P@zUklp7hEtg(E}yM3@=`901qwudVpFhvL4-`5sK+3Fu0Y28gmBFRWNWQ%Jqwj+F747mq_hDPWFD0jQ_d zcm&kpLhk8%^olm7fd_yyUPzRJ#&#idY9C(cRe?sUMVT8wmw)(vcwvzQ+7NN@6+e7j z0M;Kw^e5elA^pi;j^O?zXc=HMd`%{NpAUS`O7}10+uf5umx1|o{{(fLK&MFibZ-Y8 zq|yD^qg&Ir`yk zGtfc^&^gSd=RoBn==u!nPh~2ey`KLadmULkzCZKecK{#uBCG>SHXpj%K~}dOC~*Uw z&j`Nv+NJw&_o;544i{)g(6gJ}xtB)(bTqbO^UwdFxh6i(=3^|5{|`8VPB*;|G2{Os z>kCDDtUr|Tcy#xJT>s*XHYgn*>jdA2?Q!q{laKZXpH8sPUQ5ChE!Y10zjHpw5gwiM zLE0?mg9_a;dFU+|p55o6V?;auf!Zb3U};cg06Kl88-B19qKkh9w8&Qnyucf=HtwcJ zw>QTNE0Bwt4-0^f*L?>WkOr-DJACGhPp1oL?f`nYDeMr+<~IgD-H$*!Te?5_XdC); zS917hTY4V+&*BN+YvgPFgTLhosI~h4IQZZxZGMk~KUqMlgfG7G1f7oy%GrqXak=2< z4gvItW$m;>qn*RFM>hGyDEUrz4Zi@i6B)z z-RFI~kAn6ffu<;ppr@gN?`6IQ+8!Gr1Ddox20IlMGT{<^_=Sus=m^wvE}+dVkn<$q z=LmuV+X1}y=Y~i3E6|ihXT%MU&WHy-ogObhaiR)8lB657E#(C$rF(#4qccWD1KgRm z{#$w*?C{H=YQO|stALk_27m^0B0z&V2_DTy9O4hd^4-lB@793wD679cc-^Ff6F>L9xk0zr%UU+($)|36$GbZ?9!6pHnBy#`{UVdz@l=#ozVh(EmfJ!0Ix#lm5*FcMEQO|s1h8H2L!NW?Q z`RiRDcr>SeU@-pQ?JUrGphVuM+gZY=*Y|;MH_H!D+@5>!hlzpV|M6~T0qY;2yz2YH zL)-TOIA2(w;BNt~YXlt*^J1kssE9zw;;!bBK`J|)B|v@7ZqPCEz7Igh0w4SVK7zv# zG-G|pMKN6TAV@T16{K2v0IHTi_00!Jee>bPsehm>3tG0)U7`{JT0aL)rl5VY zpg6`K=HS*SD9n98#|Zpi1#`($kev@!qJ_Du@qzAO&}np5KHc6D-rYP0n=KjnTfT$V z*nsAm4;8&O{*M_S9o*pf2o|vZg&H5=b_Y_7h^rABBNtUc?Q0suh>jQo!;9}LVd20E z3WpCX!7=g>E~*a_J+uN>j9C1|6(gYa%=4hW$gG9LM=C{ zT2NjSK)K~*jfw+gP7OTY(9PPG0~_z%z|6ql)9E|Iv-^inr|X2y5YS<}H@h7r94#F< z_}hv(85mx?SOE);X*tFWFCMP=_uu$Zw>!u8VhNY-7o9FD7B0O7j9?+h@84Xye{{O2 zB z>N>&0b{@U+K;wLl-N!w8`#~(wYEHRsMsUBzqc;%JuVILU_iMV{I9#otmWu2IEtYcB zKIh24{(QGP2lK&BHx8HX58we4&+pGXj~|5&`=MMfU#bimI5`Pw*6aCn8hG?ZfNq%I zeit$17vKK(ziam~$KFuzg=-IdKtp~fLB|5z^yr)i>e@PXUvcDLf4wsVbQAbT(BTIL z-F_UsEP~b-iseBk--8N^c92RJW&;mUUl(-L+GkM9*1)B+jKy(3WDL+>pv2y>`yR;a z;NiNXpzyk)1b3jcYb*SiP0t@Lot&P`=fMLz;8Sc5dUU!8_*nW&l(@QB`m>aQjPmS0 z?tw6>lN6&Qd@TJH_*+0D^gfpU8vHGwGbO{oY6WU3ZC!fpa&DzGEl5za@`e zi7(il?jGIuc7Q?_)EGT}5ET2c8m%75O2iSY;4noU!#n8N$>#X~2yEESvH1^2(NtH^ z8TlnD4xY`&3_wJzOVv3096uLU)ZyiX&*_L>p-1gh#K;2^UN4A|Iz-7JWDu@WI*!W4nI6PnO!us zeL%NKgDrLZf85o2AIR-RQ{gW1Q2|w^5dZpGpXP6AVPs&~3F;ucSmprg)ZGA`M%{X# zMA@a&!lk2v#ierx$Oxa#9T10hfCg1w9AXBI%y@R+?*=a=hX$KRr_71};0+{>-E2ES zGw`;cYlQio4|cjP0N)l28m{qO@k^M%*99KdH%er>T^B$LKW`R~ z-q0m4m_e$TT{>z&H$sCvsSVodaPS8+WUvS{lml`MIRiZ|*6&N@Ji8%*-w8h1#kX@G z*oTmFUS7L^%2d$M2IiQLrW|C<2Xv4MXv{|la-uN@c)SOEkjimvgFc`mg1S$<&|E)%p>CQwez6RqX`OOtg@%_Ce3)2R}SPsqW;9O<#Zi2d`Q1 zQ894seh4aq9b7E^IQZLiz(>p7@nF8~(cK0rgO9V^UaLX9e;|8*zF76MH?mn=VPM4b;j@{>)Uow`+g9zc~ zpNu8!;3G9(3xlt#e$4|urRp^+xYFX}11%y3U38ZV>RWYx^U?kenp7nK+2;*$9RJ7UB;%|quX5pRHA!;ivJQPuqGRyUKW@pg-=fW z0xS?aoM3i<7Q%RR`)Od4^XYXj@a-1xZM{^Y)?ClRPzHB`cQ+3k*a=NA7dL@j3_9Jq z`2dGw^G}YVqu{ld?gmg36u>4(fi8PszU0|`+JpI|cQ*^0BfkL4rO*8JEGLllo(7fQ z9?iKOjNoA9Z(aNE|9_Y66cq>X9B_(?gNt<<2Y=HQPyz#WT0uv2b-FfqbeGNmU+ZEW zCQu^4FW{n5@tMD#$)nkgL*O+pXl|qeG>dw$3e-PJQ89s<1}Q~cdrKKzt)IDc*Qn(1 zH+=$+AD(}ac@;hec>aZm^xyxl^+A24iq6mm&+b4DPtbJ+2%9{c9pN^C);EM#fy%XB zP&*E^s;|TuR5Hy`;Q-C!Hy#1C_mGF1z-!*n+lB&=wjt=WGLLT7tRz_5@ByT4xC7EQ z+|U`K5(3&R-08aj(mrJ2Z(G0x>Z+f3;kyttYwV(u(CyCxF8;rlN%Tg5E~o(Y*cw0$ zyV42GJ}L(P!TlFdI2nMCcWQX?Fa9sIIr+K!#KD)$%m-b%|8Ij~AG2738 z!L{{&iH-;OZZy{p&~d5F2bet%zF_jO_U-WHcRvcsbUdJ2^_oxpf05;90A2CmqGACW zW$}Pb0p|;pc)D2Tvy?e|cHeOX9Y^@Yx3}&yY&Q6`1f+D8aczA9IW*p*Iq?UBOQ$Am zS`|F&coftO1T`Pd|M#)Xmnd-t8)@s=ea91QB+R%P;*FE=vCLQCZ|MSU?6S<);BNs9 z1%ZvN!Z219YOK5ms3C~Wp|7CL9FRj5P^YF}h!gEa4cG3kptVB9ajxC}{48_+8E7c|t@>!V`vVm&8lIe(3c!OIM0(598| zo(G??_;i9wD{x)r*e%26*nPG2c8QvAw+kDG3uqx@XoF)nL$4R3W3x@ue}30f-4}g( z9az9)xX-%%SeQ>aTA$%>S7Qb(rpZ0v)0uk$LE-Z z|Nr*r2K(Ey+lP(AwOfVXquaH?shej3Xc(E-v)lEDVh@#tU_R;D%_4!T{_OVs(e1|K*vY~V zng>Y$Z?)J6YDKxR`1G1Mcy-Hs^suWdobeGNmc@>m4 zI(ZiScVmIH3vyI482MXw{{0Vb69j;2Yy;4wV`q(ufs17tONo%p}f7{ z;D2VDQo}C5FTPzp+`ybi~ z`+vm6dO0|{nqt8%!5S3e;Eurf!-GSObEkHC-`9KY? z0#E~0p#VGs?W1A=O2Q@19<3*Rx=R;8+gspMr}4bd3<@)Ep|Gzc>HKq$XLsTl@Wd*o34GtDi zVF7Ko7k~;2&U{c~vKQ3y1+}KtEI{sJ z(R~v#yaJuH=w%Iq&_e9)YaYy(Ji41fvzFaFI~*;2E^(A<`&j#aC=qn+WCR%i z+N9^x>HFffh)=Jpf+x7S{oqBm6(|+@zHsezV+5^P0-Nv0;i-Mf!6!|ax=(h3-43phF&7AEf|PfHT?y)oTY}Ys z=2s_!O!Me=ec;s1)8W*~)8+X8po=wFy6BigzG6Vb*d;2^;{=+IIDn!Jv~e5M>_A>i4>`c( zCg|R^Zcb0oQJk+pM#{sc+;kp+5^=DA2V%-C5@bWCw#UI|EFR2XLC14>bQW`XF#iS3 z6Iy@=<2*X6QIEGggMOCem4}eCBypb4=h0os;h_yW$dmfXP6h7Dmlczz`%@Ls00FH6-aW8-T`~Uw%yEZ6 zmF)frDs(|tlI-*VUE30S2Na?gK=*O-3o!EwItX-o3v_xYbbE_*dZ=`JOLTf@bbHHm zdgydJD|9*;c=UQ%fE&;tBRsl;HNf}s3B7pAh`77N0^}Ibxu2l;fE=HQ)Bd}+LH;~J zoc)fSjs_mR!5W^uo)$0C*)VJbUora()NSd$~xdx>~s_G{O`u$(Jk#^eZM5ex3^9JA`8*aej603kePNY=JbZBXn;;#5xMvK zzelehhiCWo7aSmVGiblJXQw&B?9vsW=yd=kJP*)_WdP_L3Q%ktIL03at@%rb26Bmt z1jvVw8Q+hnsmcX36MOJ63ux{;=N8CmCpFj0eF7=`iuFXjaVS5 zZcxS84LWfQJj?r{N)?o-z}A80pFp>HfXl)FP;hqof@W@CfKHHj@S+4fzwQb;0px;5 zbLtHSNT__g39|YF=u&i_?%EgNm16%(`8|3=Z@l2V3kizXX5ed_J3-4NYd?5&)_QpK zh8nzh1xlv9pd&v+Jzm@ebG$))lN&ECfH>Xf!G;{U^ZUPVXB~%Ur0y1UL>uG*NPd7$j(4Aa@md;uJ2H6r#(PkJLoY7@ol68iUkwzz1|B>59$SDA zGo%Lauyo|$Z|MiEegKuhpnE?+dy+i+nKfX-ronAUo-gliW#2QPmB z3e^}D574nG-Jo6a-~*yOdU?N!8#BD9RR^ssg4SiBVPH>ykGulaUmiQsAb<_zkCHr4 zSpiMvkSMde0W$mtzkn+PG%xrHK=J~}gP=R*!5-`c70JEe1JF;rumdIjUVpIvGhP^g zcrfoA2Zb#-^@8HVqn9@bUTfs>k6okDY zDv)qq1QsF~&fcIV0W9#L;cR~&6cpIPxmV1X;e{y36By}50bJ5|e*_n{9-z&t&FLHr zFP>imrS=feFc|3mhVBy{-8Wvaf!qeVqNz7T#o)ycP-f|r_W+GOf^xqDDCnRiD|CGf zC@vkKiMZ3_hDWEz1D{TZ7obu>3N#m^@FE{nxi^C@odZpW7=Vn>01csbpMLQHG%g5P z#t{Hn`2tBJNM~7xLN+@mfYx#M7HaSdFm}3L@aX>4?I_~WeY4Z`ibwagZbyku*BjlA zGM%n>x*ZifdVOE;3%VZYbbavR7y|Ug>lf>2|%*=`PXj zdZ*J}rrY&Fr@Mkjuj>m?4~HM5w>R_!sDxW24%(?w`(hucDEH`g=kNgUZsrG7{lXsI zk{;dHUKD|fn{Mz0Om96v?T_<5y)h~Yp54&`p54U~p54_7pdHgMz3%@04+$4YI}jA) z3gG&$`=bY>3j77hDI!;~M5!?-`@o}A6~qG_~=r@TkEANT}f3vg)+T3Q7v za6A3Mr~JX|P>8kNKaEd%bn@>2-5Lfy(b=8Hqtjoc(_iMeyTZG7@7{TI`fGS}`Wrx8 z)N}=uV8N%N7=U(j8h{2=7hVTB6I6DB64_)BuQMKe{t~#j2bc8l^$0g#ylVgRAG+ta z-WRmu2xTuCbS)F8`t<0&S>o;iIxe0q7Q7ju!?XD?q!*5#ldoz+%x7uLV51 zPw#?6lk|&wppv5XcIj(S^C22^pDfh;Zb{J6UsDgrk;(7{Q+l9XZrv!Yx7i>g;ETbU zlLZ*yW+AV``tlRcI;`v9^ITDkb-`gQs7!}dC4m~Cg=yWO)%ywz9^G7^)F$fDEeZDC z3nq{Wko5K%bYKHm6qFqy70t^>x4`MFmsQdS6v~V*JKI3(x%()5)E`xBg$RGu&`6;zU9&V^TmRH|NnnG4AQFruB^|$ zXhYTuPWaGr)dR~Jgc_h!(fDQqI|Bpg;xc~CiXATenhq;m_%%IdcyzN0dcr1F64*fJ zp?&h`3~c}%AJyrjQt_g>6}HIcqPH=_iVEoOpoP)m&w5rds z`OJThZg!7unGcTLVD*;ZJq-M<|3FK}Aal!>;HhQ)*4LoMd2cny8Rv~b%fipU*lh}O zNvXU?cQfd=z;2FC-z`wKM`tU@IWM<@Vystms~1E^Cq#!JR24|aj+dbOGd+4m7edvf zLe%gfsoC?oz@t}`!4zVM3q(PzORs~7NB3lq)gGX5m}X+Y;KG>B(S6RkoTFIErPq_u zr<=X|qIWmT3C~WJ3y$3K=V(=ouDNv{H_N(T@Sc|u3@TeaP0o( z(d{nb)h+VD#S*;boWB)xe33_URRIHk%W=>sFervxP8E23zu_wV-$l80OY@#C(Buen zk>rc%O|Z1C>S@gIBBA-;|Cf_M5eVv1ce{3Ybn_U1YGLb}CFY>(4nUrJA@uwI{}%9; z{A!gFUQo9Rq|#c(;Pow!UT+JZUT{M2=oWlo@)gu)_wDdtKIdUAS!(SAS~k%w_#)&B zNE~E5ivj2&1DDQ96%UXh-4MP<^Fd@|-hP2z!c;E6-^2-OCUyIs0AHB^ZY+QV-j*S0DU99uLb$SJVQ~e*1HAg_xn;EXwX$p{m zW&S4bKmY$XpZf3EeYZ0Pv;gL-WA|ThK6mUs+UcTF;A)vCz~9!!$p9+eZ9P1V8C<%5 zcy_x#0?K$T=E=%{7~ z5ip0Rl#5@#LV>^iEC&OFYu8!FuCK1$M_nPsQw7*C2@mTV{4H(Zjlw59daDIo`1Slb zsXT=M7SYIwZ=F@!~bY{qskD&DG4LL`e5!ANncINQtbmZ`8KJnj^(VYV{-+cbX z!5{zsgZp`){J-bY@Ba=h-}qaU*g@s`UvT(HypHbnHfa0_Y5-zZ(+(c25EQ#`w`If4iGeJr*3ryS^D^ym%Z@Bkgv|AMjfwP&}uM>o@J zzHSedV=cTO^^Bmk($q-wV&A~r z(i>jQHQx#tO7c9qnH_t58DDd|SZ1h{2>n0k(aqp!eWvJxXE(oxHDjq;cNq(g^`-LP zLEFN9fMz{%K?gl#fz~NDC;VV&PWZzBs!%{%WkI_jU%&SE>aO`#@H!B;VVAza4O0La zCX3rJCgcAe-K96YI%~cabUUkfbWb@7ie3-vUnRobps89G2hW2Km_RM%ecA>L;5lR- z2ajHpeiwc{Z&|jO+;@hQU*K}TTA>Wuwr@GW-`dIqP8u2f8mvJw#ti&| zt`YniC-?Dr)x7i#s6E-d^b3eO4sJ+7#6by|p?N6_Xp;YUD+h>T zXs|!-$^n*6~F9of>V`yFqIuwwBUxU@u z3FMg8I}8jA$6XD;DpO4unp15Uj=MTQxE>76sXh$HT?0T|P*Ril%rDpqDvdyQ4#<4w z7X)ALcf1wU$Yo$)us_}kY6yc_t}+Y^4Ev9}f|mR4|I9B?tiZ4Ty-b&1V*^wV~|E!>^1;|nn5ckAqenDRsegSa6 z@e8(ssyu#yUQlM|7X+VV+YJt*&ejFsY&aFK5IuseOTfb}U_JbT zy<0%dHL#}6)+1o8p%EUvy&y#|d?ETkY<@x41^fbF)%=3K8@j=2J6#WWfbJItHH#I& zYF!tAkA4yG-M}yC`=J{&&I4+kf^Hyv@Z#Ug-~V5yf94km2VJh9&aZLjGk;|44}Oh9 zpZOzQ|9s{LU+@ykz^`%YGk>J-6Ml^&Ac+T``6Etz=8y1w@tHsF^k;rS{?Gi8sc$~> zM}~s#r+oC8KO*(ZXa2aypZNvTSwO>Q9?i#jK=)!yaqPYdY8}3?VP$}99+r0P{_1O8 z&cWYg{QLj^?iiJn?h=)pZWomT@UGedPy@}?_^qS0n?SKf^Qr$Ymwf{*RzB)$sRwF1 zffiqbFRNt+T}_QAYT&&yb2?0{9BOUQq+^ z$%hcJ6eZLO<;**9RiTTd#8K(be{iu3s)7ECu7apgMp7XUQgIz#-E=@y)EXn|q`!)w zLLX9#K&zX3C7|ktryOr}^R*05brW!ki0bCOE68SOb@T4M5yNZI7t_n2rL1VKoiW3U zic+v8z8#T^| z3aHPG{oH0(ehudfuKXI_2T)INKKM!)z7Gf7r!U~}=&X}^_y~$$pZNuf1o*@M^Xq-*@0tj@c%ZeL5!4vh;o1i(xj=(1hZu}O z?W~ry3=9m%Tpbv?og`Whl=7zW=Nj1lU3cbV1$r2-(=^J{$a>1FK)c|Z;10e7$mY8e?A zz9D zvTjlaNyU7Cw(&r>JG?dnZ^9ORZ2`(XAd!P|fBsMS%rD>%KCH>$zvz$G;5_;gu429% z=#B#LMeGLuMQ?(oLnT1t>lQD{3qjdzX)!39g-Uod*BXG@bD;Eg`_{<++ z>TeD5hG4mXM|UqcbsC>}ku46%8lYtC*rj}@_h{Fymu{~2iP;l*}l zl>KMmam>yT$g!Xfpv#E5e|mI-x^tjyqt4(%5Lh||UK_VwDmCtQR&nWdVgc=i^y%g0 zR5E6OomLGRWRB=`QPBWR6}zY?yeOH&z|akvdg+$-u$C{~0vhmyO*Vk-1kHy*&LZ^z zT_E$*1J9V?{-dDM0n*6>k2irv{W=*y%uWXm4{*f*IzN=(19T*p8wYrd-Jb(Av+U6c z8e}g~fli;Gk4JiR3wnTV>x7NnT7hm2RR&$-)awtLb+dg9?}MFxVF7l=Z;#g7pd+>T zpnWrtTe@Kuyc9Y5`@c)~E&lLJptUs`{NcCx!=E_!vPAnNUvTVZaPDN8;MncJo zfyc3%(YcdlqGPush(D31o5`t@Wm2~jk5i}1Bp%n++jR+`3yU;;wGVn~Uv%xh4B|OT zKyCz+_{<-3^s_U63=imLHGxc?&(8djE*w0co%kbtxOl+Vv^nt$xNu2)cH)m=;qq)g z2oikwnLqLu+fgFd=fbV5&eiQMTUqI8n;)J1-cv!D4R-+}Zy@@s(ZnL7gV0Kdj@ zkjbAN`6GXT%mK-{@JF2j34m^od(R(r6J!^E`Py8{jKk-LC z`otgkDve+NL77Mzzy6CdzEAuSPt*AIzrfnVpkZzYehtvdL4FMv6$KZ54IdQ&7k&*9 z6_4g45r@x!X5*6461&HaPzVqO&)$6mt^9EC=w%7==!G1^0P5@?-u3%GXqLYFga`9s z$lN?=s{VyEs1*mkk`_Ek4@-21U)*8^&Ci1llettP;L*w02^vc{$m0Qu;}0I)2M;67 z>j>q6${N<@|3)aA+RvN;oiCUR7G-?Nng^PLfZfZJApjc}hur%Gp8tONVnrUbgcdz! zX3X%SGxy(r2c!SSw=LrY%G_Lfiy1w--9QIe-v9-K5a|5bEZC8p{~h^V|2Z<>vyKxe zx(Pa3QtU+(+_V`W(}MH<{eLa;!UZmR3M8tU3$hZN<#JS@YjU~~H}it_;WDGv{}CK8 zw}(2yj$puguMjAKLdNu6_%#DMT=+F-RDef&G#6w*=oJwVdIRW=E*E~y9TwohLskJp zXcNL!z^D5Ycn488(>_pN!KF9sqpR`T)&r$lj$LP6EVDSuR6V*UfjTd)-EJKG+fFuH zF+1|Rp7LP6=Bs_E^j*uz*GwxoO4*GLyj;x*8t6F-zG*0rqfE;evZu+l+mFMsTcG(D zb2+Oc^QqTd%?JN6pR)eN@AS)u`IxWvsnUnd556~_U~%kZ>%IxPIS%z)Go*EmDK9`N zfp_boKmS49S9S36#tIIf&e{zgoj#zuk$8Q5K>J+|dvss(>^}eEyr2OC=m5OGKApK6 zJiEX5x-)g(08LHs*SlWu>CAlqn#M2yO=B2<)`~;SS+Pn;!iL797>8$PW=qzP$Z2r$&E(Ka+)qG6A zrPC6k1AJ!K%SzCgTJwJv{?_A6ps^6p!A`Emmq5qPc!2J-b?kNh-~52No23!7j@+@= z^&f=i)63!jI`j`bMgbGzad7Nr;R0O|1S$i4dcehV$`sJ7+r!VG@d^u&xJwVXL=Bk& zDnKuM290dkfJ#T5DW6^WV|02xyYmZ#v~YmR%8Q@^zorGG@CS%#(gM0<)1(K)j_CoJ zd-F4BOvD7Fr=*7kq~`;OZPNoX%cjSXU*jmK$UF+^ex3TvA90XhjD%xCAof5=2W2REz3%sFnw={2FII zyYNSza|P86F8q=`nb{T>a3aGW=*nPa)rIn%6Ma86((fE>UuREh> z_krdI%%J&xh>RfUoEwkkLo6Q6zc^|h`t;@rcr+hVa6Ik`+S$vn6STSH#jz)#>$Y4u zx_wkkIysClIrh4PlAUL_F9*Vu<8V_RxEj9&bxn3l7&E+F0Upvj3A*W`Gql0A^?#k2 zPq*s@&;l|K=WdohQ0fHl!t43u$S=s?*zMB80Y2C5|3Tkg2Ob~mQ#Ch0iVK=kR1!e9 zkfeZ!3t5Y!w_c){`g|NqbY0zN7U{2}K)^9#hNr0|E_ z`wWWZ41SG6{2|AT54iLOFgkXh;@3Z2Ce5#ZqKpkJoxnf+fbmIw{S*At4}uCbA%6WE zWxU`WAjT)bDpFj)r3}CRAs2qPoBVDkj4%0iANT3@-QnB%pT7^Z0t@6=56|vjj@>NN ze0oJ3x(~LVERoVaUczgAyi^F3Q(UHSyyk~6SYES%7%WphJMs&%T!iUy>^|(;dYd?1 zE*Dvju}Cp^FkknyzEIN%vL3u9HNX+v?$i~vLXQ6rK}>J{#l+td2$~S=mAUBC8T$gX{5-(7 zSLdKlXYL0Or^2&W=AcJsEciCeSQgO0t0TWa$Uzp+P^=@rKr#z|)DwPxYJCYXLxfIz;*WUwi9hBsNFB>Th~R@y{1I>D8^3kZ9Tx>2U;xT+ndSa(d|0Hr#tn9Pj~4D z&`LnxUSH6?!~&d-{CYepRYIkp(K7*821kB97ZsK&rV?*{J?<)jQa+I7t_=Ko&LBZE zM}9rND#22Ih^QmKo*PJ59=vD#3TStL!Ko&dxKMZ!2$NvK! zovsr+n~!pMS|8x=DF;>g*0CKP-LVVc!3{cH5PWW}?~ZOC6&sK4&>1e>Au6D)$QGdL zKLC_xJ-RQvl=%1me{+qB3lo0}Xz9IA_dAc~V*;>z?%D0i;n8}al&9B&=f(90@a%5U z$pMlA8Qtl@0%C%SBNG?Uo~&-y8IUCA(jg+@s{IR;(tNsI8$h{%zkkMGkk{UUGJL8} z_dkeb?4Z)g6SNqr^+2f*$gXU#UG5wZlZ;OqU$WpX5pZNa<;i@h!A6Rq^b5$+P7a8O ztMS{HouD51jucSi3v_~Yo31g#i^3GprBQEvx_udZtk0F`f!3LMfY#!7GdXtiG<0%x zJF$QnUM$^C91s=<_y9-ibEVfo#pR2C_d&OME==^`Ah-8lH0qQF8g&G5B9lyB8!AC3}&4)NZgWcK>LD!RYf|~}O z+TT46{$p|MEaLzzBjNfE5Ana1Xq5I>;_kUjm@B4Os@PIyA%HZ|Bo`f1&I(B3mqv? z6uEPBda!_mdRc@#m=C{Z1F@M8xmakFeg(yMrw7N&xPSlup8>V)L2F_VeQuBLkKpyt zr#!lEy^s+B@6__?J`9<7%((sUzwv+2Hoxw39-Vap9^E%QI_o4{dfgRX6bXYu{1{{* zJg5V5+*txNl;O}}4eH_>fEHbW)~>m>9wuFJ)oDM&Owav zH&Dsz0h&iV3lh+Jv7euT;r}tvJ;>IdK`Sm$PiE_`0j=sh0=k+QRHP+%^olaM7&Cwl z{c`C(2f94A6Eq58#KpjH26XZSNWo5LV+P;uW1TT73NIu<5)`}fvIvQ8jC00xV;?7y z8%2@aSPGJ$*p1HOB)V~z6Q&zqfiA6sg=3);A{;M*Bq(+xzXFMF6vN_1H;_|cZanLV zaHB3r!WA@1co5WohGYc9p^30gVe=aY-|m-=-8Xzdr}Kf5C4UQO^^x)a*4rhyz2%HP z-M_#S-QWaT^(9k5-N!t8S&o1jL+B%Qi$Vbd z(3&goc4|<9H2_WQIsQKe*5hLRx#&3Po-NQVl-9qCW`Y)^IzYy~vn?QZ7Q$~Sj6dwr z-J$|I@YhSzY@kaDsUK#S1V{)oTYj2^*(3+dFyjLG*QXmEW_|XEFnh=;Ph z8HeD|uy9Av28rf386MrNUlgEY11>57zTH1vK|7H?d33)7MZy7aas-uAaeqMktE6U_)(ZF?jG zy3-*Vboa?UaJmCuYCJ~)RNaA@nX-_x928u-Py2$-+!A#M%{6tOeZkEN-cKWfq%Q@b z&k#f3aXV0h?(B=pETCk9;b#V-{5%h*pBtD7_&FU^?Kk7}^9p&mpG#%X{TvK+yEqGm zp9>KBY%%m*wuSilJ~P@Lui+TG`0 zIQ#@{vvxKBt7U?yweaX=y#P^r6Itz6S z=F!W#0-|;!vf2aR|Nnon92_v92Jusn9H>75I@~n=WnBa)#M~vmF))?{do))|FqFo; z{0Q0_)m&}CP@3>k5HxbwT%EyCn)1>R!j51l&3G9IVS6x?=DaL~ur(M;rg`*=I)iOE z|013dR2=n+aw~(<87cW7} zsC_^oBKl7OGRYY6qU8&CW!nXi5``B=3V;54^op{pfzEygZ5XrW0PTMQjk6={3k?qU z=v}b_w5YZ5jROy8M+@s(DQGp)YQPN=xaHBiw}6|0;l-c7py5&ukLHt%pn*^g%MkN8{rVN;y z0zjiA9^kcbFr@}Bwt|#)_ksh#_{@vAU;3ac96^B;9}U_D44L0^0Uf*ys)rG6y8zej z7vP57Psi>PFM`rRf%w6rvqc4TBbBT1x8}3|jc+?z#;9reV}s`nE6{TfEGv{cC?OB;V9bf z(Y*z1KImQ;>tp<_lR=})pkpDpkS;Se0F6^SFdS=9nE_hbY)5N0U)h+X)yF~@GK*$oh0$&GoQU&B7H&^Rp{Jo%a z;yrqcSv-109hgBy$GI0aY+yebHSY#Fo`t_v9khF3HxCN~0}FqX6lkINWYD^Q_(FQe zPM+y6FM|r)UeV305JSGRf(?;@7{bWkn#IV#&(hPCrTeHyuc(t2$l>R~ z_s9J|3|jAQ9U)M(staNv_~Hpr*fuTs_y2#(r4mn&&EXQ3Q37Rl9^Fn7pvz7?x(_*8 zt^ixE;Mi=>P%7owTv5PKD(ulKsth$=9lXiTT>@mq1&|GgKz9p@fD*L>=!SIgZR+P= zJXr>62+V;r)}b3#AqQi}9`0@iMFpr)@6z23iU`nDV6W&)4TuLqfB*k~28S9^O^6yp zkQz{16O_zBoec%o?sFc!qOMRg1VLpMXjni4bVR9wOZQob9dFek`ak~q|No3nFX%`d z(UnlKyTAVbpMb+&U#Ph|LHa-?3DVvlaCiUai(TM;Q$J|aglp@`5-*SD{h+NA3?%`^ z-#`MI9^LIA0T0kYMl2sdXYF`;bYFiF1U@$stndFZN9&J8*C7KA@VWQH9=)P#)j;k( z{lXGtzbj~PTJ#sV;ynFA4J72!eaxd*)LhM&;e{B851#Mt#4<$T;M4sHG|%k`I&|;` zs8Pfu$iM)(zydVa?D82@o|ejcH17souF1gPdYyrR!4iDm27k*YCI*I=pm9wPNW_5; z(OJvHz+n8AU*j66E4q?_fdMoE-v^4FW+`KaGF6XWmRwLNz^`%e6MqD2-UA~B z59Xtv_yuGRrt$0F;BW6^Vqj=}TjCE>2$AIh$zCk7OyiF_)a&{mlF%D2sdeH*f*aUST)LswfqyItHi5#?E4JzmOo5KJ9|KAPv7RcG4 zbvDr5FJM1`mUzPbvm{-HY1VyoKY?!YX?wLd_WP&X)nA(;sG7O1S_Zwdi>3zW`4-U2Nu_2}*f#U$8U zA)tLuZ$UDk#g-`XbXx+8pN`!__fsNhu^@IoeJsN8lbRklsy^{Y9mDRYo8Q5H0y_{b zs!R@cH-r3P{er(K=>Px!tp`fQASEk9DQ`3QSRMxc7VywVH~2L19MEavB`OJ^GX*k0 zEgw)1#KAERlz(!erPt4I|Nox>x9&u%phC|OLesUu&V6wiB$UPIQy{VbA_Bxm=xv15krv(f7At!UeQQt zV+N2PF1!c^orcqVL<1C3%+kgTFD`urjjn>rIdK20c^4?tFo3#J-9Jk~mxO+iG-h}q z{S7=h)(o~d{3O5LLD06F&-?=53wS_Wg;F^X*97D;y@R0X3y)sW7m|>0y7LvHJq9GJ z-<-h0z)8Pp~wRR0*bbO&*Od#t}ax^KFI&Xey0?c(c}^6ut249+RZOrZW? zC#a%w1+6LE2b%Nho(Rr-AobwwW{sdc2fD;d!?F1%D}PfasA<8}e1O%(`UHPdH0apY zUdR6pHUbR%t*W3azT`o}9XyWBKUw&jR6qiJ%|BR5Il;y`4>~c`brf(gH9Fo z;MZfVxMsuvjpDOlHK$+v1T~y-86*I%!Op+%ff%F+f7F3AetlLAJ!6J4 zP(;6nn!5P&|NoBQL-agAHz=HbaSych4Lr396*vnP08J1<1@?diSU}+c(XtvW0NP0c zRWS=Jz>ZMS2^L^Q2vmRt*boBgU;$2qKp0qn3nAbN7T`t*n1DhS-l0D1+IYW8T`4rTN+5p;4*L~EbJDkIDKWLMLYwM+wBG6?Lp!qE3 z=@&pP9!vca-)=5Y)&igTs(rqjy~NN_`+SMKqxJa`-sT4!pcBD`Sr`~zt2RGi0dd4Y z9Es)!OdyUVh{Nrud>q8dWnp0OvCQJ&Z)pat5MVy;YJI4vuRELtlvVk`lKBFqyr6Yk zE|wbnEq|C971-h!M`hz~I<@)(3Pz=+uLb-ABQPhE6?TeUQI3 z5M(aMv^3BmvzF^Yen2uX0JQiz`~c|iSnz@&pUzy+fmj~Bz87B1z4`CIYxh?d%Y2Tq z0@v<;kbRE(K_<9%^E)>F{9n(&z~8P4vZ4DasHtcT-u&#&(Jj(p9nQkv`~`F_`Yq5D z-isxRLG9`bpflE9vNk`K?`G-XUwxyKr3-w*w0hA|Xoxd^cd;(#D4O8d1-c8IrOX1X zJ8d!OXrc?gpvduO@$A0faqtzZC+I?1dB^VKmmfH`vP|ONcH5EP<-RZTabNB8rMEr0 zT`z!-x9QA%(Q+GHO5BhDCC_s&WIp`=?+WUBxEJ_!jYJ&)0~`>zYsJnNUm z_8#5flkP$HAasiy^y=n$*v)9oR4M^#D1g_;9AtT6`duG1bkULyF8Ghbwf`(S=-U0& z)%qoWQzoc2=g$JlbG@~UuH9c-PnP(Bn(4fn#te?#$3F85ur%}QvHrUNuHm)#qi&?} z>whlhO5@j;{i$KhP$Ukj;cvQvy9W=T@s{%L|9@9-0%0lI1)o6nItUtF1}%gEWpCIt zar2`;FC=FE{tueE0i7iRowlj=05z}zP$zM_5BON-94{#00>^H9J|uQQ34p)(H)ws) zT}Ox#1DKK+WF`N>Ndu@0|Iax7Kk3mcS}J7B@Zt=J z@6vt3rTdUaujnkOs%;=qk6zJTLJ$j=LHSKk{xm3G3aY*h#CPdF;R-gT2P#?s67}d6 z-2&w&fSuJV>LLa)H2@^<+IZ-esI5n@Y&58w0!f{qWclJWXxB>X0S|uH8=%|iKqG7rgR`J6IrjShf2cFWL8k(3 z1Mxx2D8YULbvsW$t(XIn0kua#FSEX}C3}uoopwU0kU10Z}eKGAd zs0#ts+s$$lqU%3sd0hlc+h@>1s5Wb`4Mp=n{b~o$xGefj=MV!ep$1-k1xjI{u}if6 za|qNU0gxIIba3Y-{uWRgez6xc3(%X-0;*v=tSdN5cs(rVdw|-tEuNrKvAZACx&;?C z+d+*1%lV-51o>M)quP*Vq@Y8SK+A_fjc$+b00D4Y544>l?()C?F5RCk!S}wEB|3JW z^XP`&J!jJavaj1gz{UCpe>2En*Y4+_!?X-u)Xe?;-?jU^=fRh(j?GWx-MU#i9J|ke z7ja#FfzGG^-D(9oc4<0D$fH~25a_(4-Jqin55sPt0~H?up54(3p556R zp54U;p54_Ju+k&u@c$E_9KV7ZP*uM4BreZ~7 zh8MFyhI#ag&I56Jp`4o_P6LPo%NyW6mGJ>ccgn-kNung*rQ3&=nQlPo27ytji7W3(K;&5!R&;xhDeuBhjy!ijW%b8=Nqt?Mql2(Vx ze7l@EwGLVxDs$;_<^nUUyPUbf3?oqb2la^+;z1p~Tc94?%jcl9-YfbR#JL0I7=R2u z59R!ZcCPk=_-D>|G*?1Kzd6Cn?;+#Tpn*2GW2JS&;Q-KHe|BHt0F=7Cn1O}?$J;1Yu4xrhJc*q@)0*H$S!6D`eTKD}Ee%K>u z|M!c6F3=deJBLRv=rF?s(429C1p}xRDs<-ef6yd>19(MNO)se31UiH2AovtFhZk80 z5dpBe7ZJU`{~MnKEr31d!Xd%n@&BMl^G~Llci>a#Kqm)+yOr>>vwT!w2POS{G1V4S zdG@kS1*NJ^c8}(C&<-eng%>hgKoZUAAcv(}Fzhq{ZQ0-533AL0(6}Yy7^_=7Aos$K zu{s0db;cVsr#mn-r@JsTr+YAXG^YoEhzJmoz<};7NL+wJ%A=Q+8{`tu(U^>&fnLu5 zP>z=I=nhW+E&c-4>P{0uAr~Lu(HS4%(HWoM(d%#UVr|*~{~o>Z3O=B_@<100`gS{T zys+K~YEg0T0*5#kNMHAPL}Gfm!3Gl5kl=vK)q<9KLCz-10F`&$=U=?q0Wt*CJBQEJ zg3DM1jothfgWMIP63|dB$xtfj(HjgprS8Lv^RIq`j+|lk?3VZF4&?yP zG4X(>qkKQS2B0(~N&`bE&UfnT6a19i$jEl~nNJ{yNZZ zaTk>We!+H-D8GPj1HWKD*aQLB3H*ZXU=sv<7w`-AgG})4KH}Le23j*+FxyE-DdFoBjHJ|9{DZCTQ6Qx&-JO#9J1# zKp}4LqgVo3Ra~Ot;n?dZ@uIF36#3wTSP_YGE-0n;f({c6QL%W@58`!#PTd0^_}DG! zVSSUoB?)w+Z+Ec(sI*RK2B$rS(i9KSJ=<6|Z%Vw_dhz#v$L2GPKE19I9=)L-Kq=4k zEy!|L22jyu(NH1DP%7rp8vu%Li5Gz{K&cOuvMfrNK?j#uA3x@zqQF?f3ZfVsza3#L zk#cN)^3S6ieFy2bp5Ol)YE%>$N{WpyxpcRILKRdS%KCKoff`D_-Jt=F-8>T=n{B!n z%l-c!ao@*Z5l{;5{sv1ynxLcrO+lK76r_nrL7JcxD8qR4`fhkJb2TUzxo+SWgycg3-vj)D zkZdU6dVyaMk_`oXAMgu;vmvN(O90RNfs(7ki&{`o*li5SN(MNy(kW1l-F@$6=fD5| zU5%f3bXN(ni>pi|7V+f~A&+e5;m+vXz3rykwT0v@a&Cw~U* zxa1df{qUJzzyq|+)AtMLm?sXQ#YM`QScj&g8N0Euyc z)Tw~f@qpB6fW!nmdVN2<5EKMWq+bAuvUGd!bb@Vg0ITBY_K@iG0NLXp0g@N#c97|G z0@>jt!!N+ZFX$@4FW@D>FX*e$?WEA@Y5_VJ-O`k+l*Ypu;8`4}!ey-7DhY(d{nqnO~q}0>~#a6F&0`q)g!8 z*LeMzKQdDQv@MB0(oy6yf5Z#W&L#dxPl?a`5idXUM`X(IYh3=!9~r0sRipyiQVLb1 z@tHs3;%EMdK%LM0k%ge0uacknBR+rTk4yyZ+5YmGKcbN5Gryq8gwOnfIUuVALnd&5 zrkO!|?CQXGSyg~G$bh5-K&l|FdI#E$^ai@&=`hSyj{K3J?OHEEyIdXlBQHYbL7QJM zKpX_xPIVEa_dAHV2X>1if8^88{1IQUIYR-|hHT*k^~0L$H5m9?Ku7g~T*cq^g#jGy zF$3f>(A>;`*zE|q-b-zusspmw9a^vYs5rdX4Hk|8&E5H^7=W~JcQ=EYQ6APO%G^D=!RP6}Si277 z9H;`79pGX6?+?+gTCuzuwHX`G%p4*z?a?|bb{xQJh~@?gg_l!4bWnI6_0Ml z*HRwc9s(YnT;PMhI%k6V?4XhwTya_-EPdGRqGI64=<0%ckRIfuHn6{bf$L*5e`&mU z3>Nlv0Ig;1zoyUN(>q56)Ts6Bj*dW_Ye4p%3GiXl;P$fwYWw*G=m^=yHxF1DK&N`{ z@aSgs{OZBrVSL1+vlTSb?$Q0pr~9R=@qbXu*Wkq-L(qyo(9D3As4>Hfxd#9K`*zm4 zxOUb$cy^XbxODCXEy?Z<6Y%Vf4FLBFyg59zPk0>s$>d>uv6#)Xmu13hqcRgv!R)Dh zz~kT#CZFC`kRA`~3uRoOw$s^9fBwG~_RzivTD%3iS-#{es9pnI!yU!}Y8dNqGcb7e z)+%^(gD%JB@BmHFoPTj_2}o5mhexNhM`yHvPiH-7_mF`{w}j^&&p*zi(%nf#-2I3s76$wIfZzqq`TR1C+M8AbqG~&AR$rm(KNivj*g2K+D*SFwB@;yl4fqe#=O990RvxlWS2Y-tV zC#b3GTL243(279j8=$EN2M(W3Na|=#;9vmtAvHh)(AFN^!H9tL==N54vA79zs7SH_ zgU4}aa7Z3=1|34|qoRQnj&)7YaCGqLh8PR#B7r<1aQHW9)6-OtpW!j&(d}FC!mH`` zf5-pFJ-Q*m=VA>GKmMkJ|3K$j9s}hJ>oNoWrkSAjNjE6W1^C;F!D0T~wfi6Fu1T+M zmY>Z#K$8ay{B0hL3=ALv@GVIVpd0y!3HFF%=)r#LAu+-J<__*)KMn3opay%-HPV7z zr;&(YXK%z6>@yGI3iitlpw5hIfKxNe4kmDA9G5Ccxru;SMlQ zR?I@+-({i$Y;hgo0IRRV7GR?LaR-=h9W1~CAOW@$)KP!Yc3htUyc-Z)h&b*6mE53a ztqnAx`E)J?6(rz9)+?&O2U-Q~TkvA?q2K=}fQ||RO>%qmh8BRTJ0;Cd(gCi1JwbhRXl*19vJ+Ot!b-b& zcX7v-1fX#F+=768mEf5k<$D8f;OPv=QV>hHzMoB9mh5Q&aGtXsf?k8T`3 zof|+cJICW~pr$1#y1;iCzpz{a+MV16X%_l%cyw~WW@9RLf?Ib2C7@O-+EA^2IbsOV z;DsWH*BPTy0qPJ}c!G`;Ir~E4HRu#Rux+5p>-V6Qz&{wv%zQw5c6-6@^RfO=5)5&w zV<#KP8@*FO?gfo6ym)j&pTV)4&8?%xfaSHWXE)S|9H5gJpgf;W3s5U&n-H|w4&t;f z2DOtx{@nrc?+aNC$Qgh489+-LTwNS3T^;yaKvw~Rr-D3seLG&Pd<81Adqrn*gOhc~ zi-t?T|4(r24s`%Y{}+8Z&j@rH>?)Xa;-%mJ9lJwaAhM^yvY`bYy}lD(SgC>z56e&o zA0AfV(YzOwYryA+6@Z3L!_~nn<*{UjtyS>MfL^Hg`U<>=`UVPcUxELkF$;_sUW>e7 z1z7=J(4x(4%<$rw>c9V<-L3(iovsn6t;mL17_CT9v0DLZ&iiy)AfLtyj&GeRP<*4c z<||%^f`xm*4QS&tFZP{+H0VLCY|rlK0C0mIHk}pg7z1jZ`+#nU=@sSX0*7kBi&rnf z!3+v1AC-g`|KEYUBzonG8v|(gB;f_eb$x~jFAnVa{eQxXU0`wxm|O=YSAfYyd%$-p zK;~CVAcvbNfX4ShQ!Xyuhb?D;#!<=?pkpYG-4`7HAL!>h)vGXqec4t~a1_YsfAH=rE)nO}hMGrvG2Xc!_> z1hk&`GrvHg4Cst3&~Za2T=+E(fClV$fW|L8L1*K>_{=ZZqOt?h6L)0c*Z2WCjc5f( zK9J`#e`KYI3%_Q>3|D@QTcE>FZh)18vp2tH0%+Vn2XqjXW(nvZDoq;|(8(t*`~rm% zpd(;h_ysCCKJ!N&bLH1~4jL^09o6z4WXxgE2`ZqYS}uTiuR(GbKl2ODQ2}jH{LCM7 z0d^A0LD1-jBV^>^98>~)I?FMT1W15iPjtq5BZexqQjjkW)PoMAV(E0`=yc@ibQI`x z6zO!7=ya6nbX0iB13p$!K(%DO5d-K*n>U~N;~stH7nq^~@(@VmFK7S;H16>kJXGV# zA9L7|U*qIw{z%Xvp{GCd3&>i7H1kLP;SYcPnLp+P$o)qgL8rgC@<;yr%r6M>@n`L%1DnPlxdki&*5Lx;ft}{c zA9MaQe`E_Jd>r{>zJU+Zap8}-0Jh16Kk^KJIA{#%3xD`&kejaXhkyReFBk|Kfhzh;n&Ckow_s!ylDiKS6+B@gO0taz5(k0o&X(pxdU`&zzWcr z0iZOH+~ERRUjjOG%tpnt`|;s32VaT7_fCPP6(u}6Yg81V*ZCB9bh9QugZ6S=KS1YI zn^O;fW-(5HD)VEm8$e~4-zrd1=DXp=&0W7i`+R&i`1G=JvVn4F=mk*aeRnfxx~@C) z1h@|30oOsk8(xT&fvPqP^TI)=#9nxzpa$M@8TtZQ(}fogOF>16?+4HbK<_b7ff1up z0GR`?)&O0_gR)Oi!KYi&r~8smw1 zQW>vj_a%@ol^GZqUW<8jdvo||U-Sf7diVu5XymLD)F}r|(Sc_=LC3pr1jD!eLhoVo z+zC18EmYLg`XYb(S#S;O$>E{R=LtVk!n6B;$M=_@jpY~rdv>4qIQY`uhxw;Rx1Rt= z8CVjv+U6O4Xo zpZE8_N3V>ahxPrUsbG6Nt#6i1exbbm_y035Qb8nWd`Prek)b(}g`wG#eD-WH&~F-V;UOkE5_odrmV1BmbdsZ#){ zv-Ri>Ht>MQ8Au2CC=f)Nfgc4T1~CORho7tgG6i&4#%ZvVUv82EozVvhMdbNk6Zl@; z3UC5B|Kb&>CPv+>3#!L_x&sv)yKlO7AMokE>C%158+7(qw@VX?cdv-2qovCv7Jl$q z&!F|E9^C;Fe%(B${JL2VHJ|!#85mN+AY#?dl3qJ+<}+k=DIM@7TY z+B>2=!?C*ov`*F0vJpg;MtF8l1ohEfjW2l*s7dfVJnE=ij>-a$#y6l{ zZ64jMJ0HSIssQj{+((!0BmvM31u8G}%Ag14rD^q{2BsR}6!0KGSCO zIQWAZl+id|q}%=Z-yJ5OQV-rP3F`6l{Cp9i z%D~{%>9UvwWS~bkvs1Ip0>(0Hr{ja9Xx^$6^$3hpz$@w z?kiyV|DtmygK8krR=B+I@!z2Ehf3Fir9%ZkT!R;{B|*(;Nf~f+TEL^ZRs-CY2HpDc z;UHvm*y-QN%D4$o290ICxjkATuGsOW_4-}C4d^<@D0&)49E2*kso zpqfzNh1L_0C8Gadf*Q5H0xwL?=rcgp%OLHS!)&jrU}>)^c=U>R{%4s0YqQ?L(Po{G zzs<_O>yc=&Qum?8N1y?tgD?117&{yTc7Rf9%cWB0ZpV;L$B+$-hm8(E)*NvlkES=j z2>_iJ^r?FisM+k%{jzfpxC!IZ{T{Rw9JHmwr+XS`2E?P=SHZRWFKFqA1?W^g1NUy0 zU7(_@*`|@PjI-ONk>lkJP-ynXCV=W)AJ8@N2R*e9g0oxeff7NVPHzs+?vvfqKvsct zyY`kccJ2Z17VX>v-U92=ecq+}zKiuI{$>_N&_MNjk8be%i%a(}w{DgV9^I}AuH6s3 zdwCq1Z8{kFTX!)qFgSOMtn%nS3pxZ$;YHW4|NlYj<$J(oGH7ZQbozmZgkLYqLl5g< zr0nGk$zG>lq|1VOl&%sk-92EpxOC3}JH`X%aSzZi-b2upSuV^TEH2Cu9FY0@|0i5J zp;|g2TDp0foH}_nxiBsR`O&2tJZa?0{N=R(y5XP`3Jo0pA9L)!?rQy=ze(i(|NrjY zEUR3)*MK7c5`;CNlTuwJAR7yqL3!1O`H+VtH-F11kpHZ`Vg6zCXa@O*+XGaloqjPz z26WVxZw4rnIrwxl8((@MD*gArM{leJ=o)2kK=6asF*txr8jx0ApI-1>*y$JHV9lU= zF1wvMJhYiX5%~Xvb2fB*l7t_wmsIRJD%fXJa2U7(}S zVe5b%f-ZOk4?Uvomqm6Me@i*|@GM9n=*+HHDBX)xT%`{_lZyN8w=!59|A-7m&3L zAVf5FWj(qBIUo&QnZrKa2SK$^Bxp@lXFSJi*D_~F+xM_1r0sj~7Zai(gJ}Gof1w6# z{QAQizsFznfwCs({z-8A1l;%quhsNXL2CaRfCJ#8=T7jsX{%Oof!n_~K}ikNXvg0E zJ@}sqR|6Quh3GBd9B2zT1KI*+e$kc)ZvksSTfiqkEp!D$GZ=J{8E9org%3(w*oJ|D z0lh7304mVq1ZOh5cPWtcp>9X@z;GJ7;1mhkL$_~G5@!t}$lo58!2g~_)w;)8Ez z#1G$23Ey4^3C~`S4<6R1N)P&iViB~=@WlksB?jGx!A(j~zX)O{XpQVmP+LnBWH6|A z(&;P!vH*Mn^lR_|45wd&VATt1oBtCAolC(Q{tJ92wDAFtPG=2|PGJxk2@=X?oL6o+oP9N9;6S_25&y7@nV4xXi*5X*}Gd9)a*q{(~xzK2jJ~q(2zc; zee$UvRDgmyRq%C>ojxiYp`each+`;tO?fwHvsDG?43Gp!B6BtV=3}`D)E4D$kp=Dk zX#zDyK_iL$%nS@J9i;)TUC&%PQzN=>xOA2#Kn5*c5BPMJUhwD*kOyt+@#%F1UAlPS z1?OwfVT7eOxY_n_NeJi1wKx>zm%tykf1 z12vF90v_EHI9M1MK0EOXlssbL*E98;2VU1-!>?baP-N-U&GN{x*{1z}iI%ISNqec( z3q@g2iv%<^ZT{1U;l(TPxVmq`Yd**0EbXAx<*!*>J5Aa_2Vfq2!Rpa{y7{5JbGJw% zcw^w@2d#&|cb2&+@arGrpMId_KnW}V>Qk?o`8S_(?i6W+>>qSxet_&|Ylxehd_cuY z_hnEpg7#RQcI-X?-W)a2m4Dk?SALfluFN00!6D>g{ei#fKj<>V&fEx4P`PxcM!2>- z;cs~kT3>Jc&84$6!UcS@^BeQZyw#?J#Ze~E}uBMIUKuL`dzypxLC4$;%}P< z+8fvX0X&%qk`?K2?B6_qU{jnqkZYO8~{XNj!`4n)g^nz#iIgf)cQ8t7@)OPzO zKzwR_qFA;2CP+&nL<^QJWZ;kk2MO4HF4iia_?tk-^|*AGMz}J60Q&`e7Y(R;2eH7T zyVS$@cI$x>XOP*fxu8PogiE)ZgiCKQWA|xjAU>3L>^=ku!cq zZW4~nx2)%bQd`jl=ur}(JCIJ2n3eMT{{-LGwGEIQLMU0h!p*s%JWrOCR9X_3@Cp>zCp*hb*MFn*2 z#f!e@psbgA0i5-Ayl}4j3mRDe)9ohU(*41wyLJbt!C26Gpu`8Xxbj3cDDZxC-*@T$ z?s@PXt4DVj=s=KLpnyH``~QFEZl3MUkL4jL`6ehO-*oQe+5Z1H#60UCMMr$PYg7sx zyYD!5`^td!R@#9!6Vc14<8M)80d1x`{~{D@C1|hQ1mEr>uHENc zLDLsV+XBH!0vvIZdz~5iT@H8O@ce(k6LbLobx?_L7hD{rs3>^$x@v&xo&-=!Nx>7; z(mL^i>&O59kPvcFG4SmE13CfN!Lj>DCn$hGw=;u|o;3i6YMV01r0yS}9W8#{DnCF< z13*Ls%zz4y=F|=b$L{N(Z0Xp2zWJd%)O8-+z7twmCi1uFf;Q&$x~Nomc3%O7+BeXY zR(Fm{g->^CgRk`){ua>XT#)_9-7YEt-5sEG*Xg4I+M%Gs;H&-A^WYyA-_|GmEw>mL z7>o~qE80#Ul?V^!13tYrM;RCx7<`%kdV;#6t(QuKz*ElMejG3E`~=FflSi{7hrnx2pI+A) zFHB$l0WH)n5d^KF1=pt>pp`UroM@&Et-U$cVMz4*@ynH>V%g9qw4d$?*p zhs_J!croz;q%YeDJ}b!g#*2&{;CZ1d9=*Od{)=8}0rzB;&w?o58!x5C?)6|Ajp&# zlM_H~%%z}Rv!JysAT^-=?XgynENF##!V8l-px&o%!hcb-Hc*=ubOzHNr$7I9DS%e< zc7wR79e@76YypoJrlj1U28qV$5|OI`pYzF>t~2c%H@07|iI;(!0|c2Q9QpBk)U z?Ir+nVFrKGqd%ZUNHr=29^I!swad2Ce_W#qkNGa{5yo$kbkNL27*F#q9NvF$D1aK8;5}OWzQM zbL`=RucT1M^CA5L=*WHdX^&pfQy+{NT#XOBxHtO`=md6AwP~P)CVKh<=ztoJ?$i8J z4|KSzyqG>46s|EU2A}x_-4#G>IM6Y@XFR%(fX+Gd==4BsY4v98@MwGky1$ZNvtWfs z_b;FBhuyP4smb_TXDPI-aRuG1FauGXyGDTKI$s=k2nxy41)wbG+wr2b0#uqepZ)LB znHzykYP6&vIRE=PX-5*39a<8GEy zu9i9tC2EeAG7Y6-FCKBi;_b(KBZe2Nx&HkJH=Pk%7cy^cTqt!q}Uw!SD$#z;>f@GgnK7T7wCX&h5yHpykNZn z_vRB-7u9<=eTtHW+0sXn%#x@v`eRN zh70p+S8JUQ{7qT^LB&97LwAUZ256AP!NnS!j*3NGt$99_^0{}KOm}9K+2Ycj8}XVO zM7l7)2BlBt%g}(bzQEt~_TT^i#^1W{wH_$(b?N@>+|9Dx8r+&KHU@2x0u@&_$)Nk5 zj(Hw@!3s_i(B$CMD$-EG*L>o?BO}We$e_pe|A)KXIjnCKZ3Ufk^_CxeBo8FUTvP(U zn@zgUb^1oM9w_ky^$S3{W_% zX~Xk3UHSL_zi;c45)qGXP&@t#q`7|P z#ia;vJN`dd;sR2|u@fW#Y9oP`@PlPvcxYb$Y4hkl@nSYi)&MlaAq={c07Zuuv3PXGzIZJGZb$e&coDN2loDz|7fHPE==Qzg*?dgEv-vG!=^l^n(g2U{&#Yw(CXpV|0Pwf#@|4TgFAf#e7iF>yt`fWIJ~u4^q|i11ucE; ze&FBDqUXze+|#mvqg2Dg8pA0fFsEExg>Z^z^Kk*s<~NL`2R*ud10YT~CgIWilF_5n zH=uMvGkC0*p-jXBvUlmlow`5&J(`z+#?C=U+W2&rK7cf9m^#6`qFPUu7jmGn!2DusC}=aTwRbN|nMW_ranN+W2Z-Gbx{3fK z&|RYfnm!hQkEc4u9rgsxnVtfVgkJFMKKat;)&KvHaWfClPH9e%n|xqy(tiayCLtKf zO&;39puybluW-0Y5#%PcQQad7(T728D-X1@1$}!XS$6zn620Kq$>`e~$l=(@?Acqv z;@HUq5)E+dWbo{b;OJ!UWCl%~%ma;?_Byh3gKl0D0A1G(+R4P|(fyHMpV_1P1!!-V z2fzDgetmY(4y!*N{O<4h^$(RZ^J{>%Wbt`)gLZwnf)>{Zf)<*vf94nD1~pQc`1Kh< zG&6`0^yGIx#jnrc2{tLhye}L|#2Oq2L(VQs3;J8Bp6b{|jUVPo4&*0IVCcxlv+zouz_AxdFkN=<@ zsX3r3E*9LQ$N&}e;0kYpAE=+>58lU~@nR8(*ICQq(P<6c5gq~FLmwA=*rS*CNS6`A z3!hn_X}B|>@lQsNPDc)pPDcUAG6qCk76^Di?vu?}=+XEF)TwGt-OgZqyE%0?gGcwT z=G6TR9^D_CQ;#z=r=DhLPCd^6UG`-fx!s5XwDRjSzksdhb|VJZ3b13~6<{v>8t1@E zyI*7OpBJO*D5(%ii=+Vt{&!^Y-xKFR^ z_U=Fy&-+vQzkus`k6zdFj{N!uK^)K>&9&D-hJaQqh2D1L*FWIV z>kC?l<$4?>6nh_H=&>?pevJ*_A&6v<~XPe^H()&`n*DtQAjKdS`!$GeBACoKG*WE@;>vbZ&@C_wnwlFSr)zGrVRp{$~8&ayQ71vI39p zW>9a`_^nU3$qz@!0mo$loi!=}o{&?HKl2N?ykO~O0WD5+Q3(Ov9_G=@a}F^)18S87 zfZCAFjvO4Xxj^m5fESFufB*kK>SzrU|KrwR`-&!bbRT=o1e&q{?`F$U0gXr+ zfL0tGhSVVvpgKe$G~6-F1Kj=y@aSe;v)==3fgv-=5k(JwS2qaoqI-c>Kim259i)hDY;%{&F#o&e|6~-N!w< zFTO}$qt9^6#r6inYaUQzyZic!z%cNdIoBH=-C`cy=U%)8otNv;9r^)0Rs&rtcjLt? zPp$hzxYrwhv)x;j$NFuUwU@m1jz_^>|iv5d1~>AB6g6Q zxnDma#ie^!!(7S@b?Nd@(9ZR9pq=Y5$2wqltgYYg{|(j*FK7Mx|Nq5?U*Iu3k6zJl z4~!UIWP-WAKR_!Y&d$?kfSqAu;MrXaKD#C^KK3y9Om)OLL7=)p0aP%0^cJz~*zUY5 z(4)7Cqm#+EH-e>;&9^szqm$jU`z1)`qO0*qN6=-zHyt~f9Xpv^EInEH+oVAe-R&&k z-OJ_OZnP0F3WSL-&3Wo>3`*D7KGY@|EbNu>`K-KaU(28KF za|Ad*hfRXYMWN69f^47p1^GeMF%yUo;MYG2qM1GU-4F5WAM@mQKh3Xy1#X1ne^7Z0 zx>`~YbSs)5q+WKh_GaO4dI~xj1Uy084Z9;1H102e81n(GCj;d%0dO>cZ(jb{9moQj zx$O27c;N!M%a8X)GpP6yVE@b?!~B_FARcrBWi%+9!$Fr$27{IoANQ(h#Jwdnb_<-v0Pd=b2|I07V`~?@e zydgAl187}a_eCGeK#3AA$6hC97t27Fa#nCh(Z@1Sp@iSZGEk$0({UpsScciP>y%6P z0mtrBj?E`nTw6}M@Vgvn{>f2n?9zSG&obmxL5Ze|We`i5@(xhRbNPV__W`HoJzb#H z!px;yJ3v_%EcpN6>l2RMr$Aa|yAS$Uh8!{|5drJu11?U z&1N3(>C6R$_zI)|^ey63?^Og^2dJ6yZZf;y@Go}eKf_HL05 z@Lg-nlR;xbuH8pnEVarsKx0ad-6uS{oj6>&MLOIqO{SN!J9pYl_xOJtytkUE=z&jn zZGhwdgO1%NJ+03aZSm-x3_1nVr*|8evi?*e+sy>s-O+rA1-!L`eK~Y%M~(qYcQa^J zVrLtO>}Kv{^Xzu#@B}ZyW9oF{=&WOL+y}Ze)3N)Q$M@&Hy>*{G`5lgff}x=hQZved zHmbJ%FOl@<_2BU7%>3cfsp-jl4%Ct@1qaem&<)Ezme~>|PA-<&EM+#HV6$N6Sde0l zgpXym0)Gp5{M<5IqofXOVg;&+&k9IznF6ZbRix3#sJ2%69RcWnO0QJm)3eay$w<#0hsjEki+OIg?sP>_OJ9Q+Q)Kw)W8@aI2B z1LzzxXmCnFg46MbODCg8uP0>b?|V?9JK)*r%HZ71V&mA!?)m>1_(H|z<1DYIfct@^ z2|m4b20q=XJ3O1uLadL1T5nJi0Jh$12k44FkMGYt`5lgetlyfC+j<|c^#b7Ngjo-< z_BhAu1z?jrzdu19@khD`IVK+x6FNSf3Ld=`93H)_3pGJQ*e;;ukG!6j|NQsuJ_5dR z5Hx;tat62o_1^<>$)Kz8H{aGLKD~Jcka1??|32Nh0iNBi3@+U^J0ORc?gnKSkAu%y zJRo-#J9e{ovUi`r(QQ8ix}m$%9dz=tizR!RnooD?0Z@W>>K17L9n$64%`(NQlcmw~ z|AB6HAL|1}k3azlUIzBh)A~RNKhex-w1gJ!jYp!NtD3bt9qu@{m z9+PtPXs*^^D6s;oHu328Q^28G!=u|z1Dl-j0gqnL8gEO667K&8Jem)3fR06d?*ghH zYC$g1^y&30@a|@@^z7!uW`J+6Cx>VAYsS*sV51B?nlX$z(0ZUm)tC8_FY`Cg?yH{N zEaD#BTu%G~EEhgI@z=9_^ym%Z@N9m;So-AuaqDUp{-y)}{{QcGjre|H1tWh;FX)bp z)Ch*|$)LtFbWH39xUC2ojP<05e1N&zf85p`xfakhAzCZNo{@`&OwC3i&55L0) z(419z4ro;B2PjPWeY=l=R`{NHv11`TX@hzM&C5Whf~pl4%hezze_JUd1A}w3&3Xp@ zmMBIBhMl1OQ7`g)L33C?K=;r8FHz`Z?{H`71RpTv(b*1K%i_`74;o*6(I4>pKj>(v zAKiT*(>%J{K(=^v+MIy+10F&qFFdXPmB=`Dvvsn&bRU51>-1-N@nwNNLpS>|7Yh~! zM}C1ekfHp7?I6mLU!V`Pm7ia*A4Gvk3$}wOkgNmfoFBn{5ar&jvK|~VXk|k8 zi5CIckg`D1qx%G?;uD1KZSVl6t2d0L@1cHz95e)u!Vpje=-E9DO_ zx>!R3y{Q{KR16sret|S1yxa*i^W5!v02GU$A>Ru~L%v;3pbp?M5A@X@XU?>qEb(l9 z$yj0oBJ@Fo5{M9O{>fMZD*RqtHDWmI(aXwn4MP8c@^3)t2T=M9l->iP&zw2a{FALd zyu`QlWQillJQEP14kDyL1aI?C#?mm4URFzxa*tkCK`6}#rC(lwSa%ajpM}z3`R14G zxE#$6cC<0n6lEyQ4W&OrO}P!FS3~LDAo>i_oom0|fJTd0qi2BEzLcyv}MAkJv-%>a$nfg0u>-KQKD-7URX86sm+jzVSuauI>S9^XQfBYjeZ=GYW0-l5(m>{c zR!p}Z04)^;8z&8EQ=u8h3Nfm)M#aOYv$oyGvR;9|1vHM~V_C1k-vYX>4s1gWstpZL z8$3Wogq#P&!FX)&K-KOD*6!MltQ)s?+xIzuCy_z5Nw4qn7n!s58C<}1ORw+q7tymp z?fLJZ1|O)o8RXLa&CjytdqIf@*x^nPn_;cJSROQu0=^u$*Mq~OIq?SrQYeF) zddIywUA`{=f9&;2$L{aoo3cHd&-@2j5eBuwpu`7kg&Vjb=<)rrC%?lHP?ItVYKbD$ z5*bj?gDvrBR%Gz#^@Ox2-+~&nU~8WLKlXZQH+U7^KJbX#F_>x12RJ zjRegLv>qr?^5~TC=}q7Ok9Pa?^3Ht;x{~m4_chRjcuk)^!)s>W?&pr(_aU?3tp`dR zKnE>%w}UE2uWp_L-Ho7Xp;yEKv{Aydm*gFWY7hdfD|NlP>(QkdD=zweYdC;mR z1IO<3;49`W>pA$_QkWPRx^H?Me9Yp(JRj5`b?tr+O7Rvhme%}jpiMxo-QQg-_k*ft z{{(6=Zj{gt5J_NE0920JxJS#v=kj@+x3&;NlL08)wxL9lRH{JOA z|3BzvdhlX78*6_K{-)(1A@I5gP(+!yc7F#oKtaoRL3!P=`y2GS0FQ2-4<6l}phWY6 zCF#$9pI)0X@9vmC9Nv~Pe@g1TwPpTz9Q@4;Zka){6}aEGHxblQy#OkLq&>P%fX+b@ zMQW9KfLiz8CyI{Q4TIV(<}gFvZ)Til2iN8-NtMbmp^obo)zyj1&h|QbI2#LKK1KN8Ke{ zy20|`4X%3NgslNmrTiirs>;Ko(_O)%+h5~FBv{0?-J{c81EkHxI=7#H>H&{#Uv6nLD_+d9FKZ1a(&O-z&ng9}2_{=ZpqY?p93p)P6MI{4t z#w=Jcg+KfxzaZ$aS;`p>U92G~qv;vwdhSb>(>|~;FqEZvbhrHgEs-}q;M2`>!PT;H z1xVP{v%3*gN`iJ$LXx86{{zIPMOSOEAw|3YAF>A9QZ&o)|8W=VdIA0>UeJ_fcQ|MS z3^Z0@4Z4}Aca91ut9ybkM*uA-tTyoNPPPCYlkvfkU!(c~V!{_%^nfme_36Ij(fkG! z?1?NM-Jr>#OwdeFCJ(=64LCk4d0hE5y>Eb$EvGBLX7C9|evO+TULc1fzs5z-F|eSM zIwCz;T=_Ml!3VX-9?k;K-m9p9jzw|h*Ld`qKN2*H9r*~9x^F?xM|tv@KLT_*>&egj zF`(HRPZp5uDbQ&kfuQ8V#IJGiGk*+duJ|JOM3sp1{2CxfIr2w5apBic0Zl9&_{<-1 z=`(-C$QUJ|`?*L7zp8`#dpZLrlaR9_S2~sNp%4c3OptDA9cr+i0I1IXv zSsKe4&I_-bpQ0|6`gnt#5w&!Hy^SPc`it@S2QUbEDTz9Eb&4REEnl6 z0q(AX#Xz0Z_`~3(3?AT;?g(VjOoc$GNAHRZ$Uc+_j0_C?8m#x~L2H|5ftthM;t5=4 zfr}@fUe^QQ;t5t_flgld2`;8UJDyThEWqn9KMnSJ11+pvR2(41j*m(Jzov^y0(cHE2NaMlDn6h2 z1#47dUQ7mS4ZQ%GY=M?_{F{L7@AY(fX-_MVerYzt_`4~22?`%wtz|+P%?Av0EvN$D&GkpF;JQ0It3&K zDyV#CfW$y0lIsGH7^s-?UBVv@N(-(lKJyE(UQ0J(;1~2=!>{23$}obid-yd#3s!qW z8~6o%LH@Y_l1ktg^!>mu==uOsPL%|JiylxpB>*X>d{i7jMWh3yqyhyMxTtbbNdOg$ z1uvYyI$Ts7KqtV0<6FQ7v;v`80$Ud67i0$2GYR~H-U6VayntWOS%F{B+W@i{|uSQ=r%a-?FR{D60aG#dn+h@M!&3k_K9?a@_U72jvn^ zkKWJ+$6cR*nce4(yS@Oij=O&Npj>kDxa$`P^#eq`2nJoy$}iyhpxgDuC(!ZbtPBjF zK=IMp#>2|M(CzvIBr3qlz|h$y!OFk@8vhn3Y6E#U0JOd<0yL_W0A0xfDi`Ft4jn#o z#?|JNK>$Ah4E_IYq1Ehus6GIZ?v0BR$Gw~^lD5C7)a>vna;-%`-R3XjfMg)U|t zzZLgOH63>_gCeI_^!#CPG4@|HC>*r0qLlwQI|IXkdXHXb=9e!S85p{lbv#$xFHM7M zSOn9c2+`mJ($G-v*zixclnu=O@6mjixxw1AgrmVa)1&)$siNZ!R)}qx5X~OlzyFIq z3d}4tWi`k)?q0_WHk@Ue4L|itgdAGF@we15GB7m!)ZuRh4bgWwGwK-F zaPqfjfJOC6f*e}Dm9RGa)G09sP2u&1f)6M8$HBnh(S3qH{F_JXfeQA|9{gG#UJH3# ze9`=n(S!RSnE#nS;+scztU?zz$Sy9BIb{t$bxI3;dc7GPyTJC8$N2QRTKIJODtPpU zDjatOA4Kcfee%Uzm<6CA>I(Kx9{gGdkSqZ6Kk-K#=ytX6=;fV%02Ict3ZM8RSq`T0 zM}g|K53e~Ie(IGngBH9n>$tACUz+97>&@6D>Cx${(CZA1vx6WW)MGC+V3wYQ`|1Re zr66B{>b#Q;zjaI5`NMgCB!SmCu%;X`V)!q*C>Y|1&-{@ez>&qyA8vXTtVGblf#3Im)IptN5Di+705!AwCPV|+Q5~^RM3 z_g@INgKi)!b#j5MjVrZuv0Mgf_m&zUsaN#q?gMofUuXt`mu!RB47)(BY|tVwkwDPq zv(KQ>YmTCspzWs>J3(?UjEg|y1s_188-mRW496T;7(AL6fHi|w>4BE%By_ic?}zUM zPk6a>f)~`ebb_7G?V?i9*#^3PxBEu-i5C+CKnbV~q#Znl7^0E^8t2^8s?Pvg+HKUP z&(O&R@|b7$^%s6^`V5ZE|NesxhdKxHNvFw)*D>Ah9NqCe)`v^odRe49-FXm`h{)6D z-6vkC27smtK7jX?KVbIg76&!egIYn};eVk5lI%1G8Fm6{^nZ5_;{%|mLRvR|cn4^) z`RkWwJeuEt77-Tsc3*JmW;*VoVgM?49h(oZcDkr&fQFwGe7jG*kOi%6YChrtUSo{3 zh6q$m-n6Xb03EQ->;bJM;W0AZA4`lh`TzM3s^B<^&NL@O&e%p?qy(y~AysmY3R1hl z__jmWD^MERai5ie!7`GgECb}dZb+I51qH1`%iB`c221-A_inKl6|ukncTWSw59r`h zXbMS=1vL-)K+RZ}?gP76Kv~}(A_huUa53vx&<>gdkVG>BR1F(Ab|1iKc!1|kklHuM zDZbl@$EW)vqa%+`_p9zg4)EBT3uwBd+mpwI`Itwyq)VqG2Q+3qzdr=8EbTt=!ov@= z*y4$2CmU$IO}+J7iL`6?5tr_Bp4}`Gp50=eoh$;ry$&3piNw;^pd&_%{6H!EpQCjd z2Y+)7_y7b~2FLCR2tF^o<+871_e&38}$D97YBVovAP(P)?xYV^oupVpv4+|y{?R| z-N#+Dk9zis9PB>o*~@eA#oi`;hUQcMU6_A4GKO*dKkC_hgv0tBe-mi0n5*#>j=0EH2##I+?-#vTo96=w^25NReRaZU>pt*$g7P!E@K0;BGm@%bj2^LpjDjeb~c0j?a@6QM7_AvsL$Z||G2Al9S46?3n-7EUG?64L;;@b zAmyh)vl8f@@?%ac4B+doLsX#GW^XDmVt8>9T!n&;88L{4&L47kbRx}n!tQufF#hk_ z{n54ihfnt-k8W@lH1z;oiUw(@DuFVDXZMvC7aGA4E97Fi4;-hQE|%Ls(OIGi$%Chx zPy7cZaO8U@yK7WHbAu3<#~em77M`>BdV|uyGEgAE(!jYFE4=^w|L@IVUCmJ}<=i$-KYBL!+ zO9;LV0KDG#lB@B_E>3W}i@)6f+^({$H{joQu=$07NAd~pUY1UuUKvMU>zhTHzTKxi z{vUSyf5^A>Knbg>r9g=lsQqM6dm1#8!0gc}1(INP?Gyl=-P7F*s)#^?slCOZ zZ4e(7g%|fLK_Z}SxFFueN>HgI$_1A`02T-ZFOSuDvFr@!MBOXrKnFa5?nJ9q5b)r4 z4&?yVAJfkN1>F)5s(`$Nnd61J5@;h(ss!lxPzA^;X%0|xXT^()b3u0buJ|u{+1-f2 z_`pjEP(Qv`G<7@3ZN3^WSU`^T0o{fP>Op$Ecu@^rG|eglQqT<&%Xo1GBnH})*Xzsi zLjU{!{~o=fJ@dc~DvlS7_232-xGmrSN;w6f)wBkneR>+80#N}}hk#2~QP6Vw8WjWP zQugD{JfKlMP!A>=vKAk{)*OEI*F8FG#gDoEM=043QsN;0`#-pN@|6eW(U|P9ef%07Vy;&9pD6dsn_w3OK%pVqxDh#wqqa(>$9bv zj@=W$E`P<;eW?2s$R(WC!u-y{ARcH&57gRrH9qOmebKYK0hB&IJM!!BFgkYf82a{l zviNFWEq(U#A|nHX@kx+omTuwhQ@#+DF1>~SJ(~}(82|U}KH=IW;n?t7w}jKT`=DdP zZ|zbR-(E*XSK~{s#cV9gCEa^PCh>1O;MyDX!k77|TdzofV;6&sLG5ElkZ~uz-vnuP zi5>^#l(rDGwCY*I)bsofQV& z8YLRM8JhAgrNL5O1Vrfm3vbZL_1!mKY(I%5dIqxDrsey6K0-Iux#fntLT8kH{HmmICnmhwTPkbfUX zC*N!N)&nKduEr;!f{xv&vHAjJ08^*1@qw41Q;s0xDnz#j9FZz+Jy?6-Kqa_6Am`Zp z|9=T5tX04d?v7Z)+6G3Dw!wZ-&maMGSr#}K#(>Up$x(q`PK~XR!1Dv5qm#qCI6&h$!A8x?$PJ98|1>HoAfHjYs#d7vTD;JM=twT>2BJ2H6G5In1S69^K%% zI#9C?y!E(y5-2Nx_T;mI$Lw>E$ip7@K%6j;KO-v}1^{^AnkR)rUK$FU^5kH^489zVQ1`wl9sCQE@+ z6+5Ur)A#8tJeZ#f;ME5Vyo$%csJ$gl*Q;Zm16#e`Ezx6-~ zNArpQFP*@3LW+t8c#jTflF7W7>ZwlS{dCf;DG^D#k(;T$AC>< z1MZu9w7xBIfox^<=oMw_ftn0DjUTk3<=hK>km6>DcU@VKeb_7dyc;y+bnXQ=NKJQ( z3iz(5)&nI7f4O4Xe(&f1|By{|0iYgX1ZaR3JT?njN{1dVp!IN&{n*C;jc<3q^6CBv z>bu%{cC&dv`>vXxtm)A!IxESD;e}!uID3jh2RwKo`vCtRu>QgC^yB|wN9#C_BJkop z1CZ}(K$#J?*9hFhj{}Vrf%^2|Mj5Or28vV-P}VE}u@qiZfBXO61Js)bwZlPYNP_l5 zcDblH_;z1(>GDx=@a(?e+kL15G_KTr^MwR>dI;JnIRhPUH^8kPe54L|9VcY$3e+ql za96els4MQm587nz&f(E5?9mCjv=uZ1+wITsB3=lzq!#&dY+r;3^m1%#q2K>OXIr^* z;Jq9h-{PYy^$BH7A4ikUK;6kTWxQ^!h8j_@oT(EFA~+CE&)M0S%aTgEoPCfCg(lIt4-V zNzHFGUN|5A3pyfr3TQ-21G>HibiV>~E3{GppNe(UqdQQ-qt}Vi!`e}!TpM;038*`! z0dmNHXNfLw>h@7d02Q>osrsOu!UfTwo9AzA0#yT`%O9_`fZPU-;9k&S*{?c5-7C@k z{h-beNZ@m!KEoN0URK%lpb=X}kgGc#L5Hk+G{4aR#f5=KFYApp5Xt6)poNqI4B*}M zFNFL+W;Y+v04@1`yAGnHn+df49pqOC%cGZd7ex1AXuboF-FAX*n(Sq*he(08YaoLB z#ZF(4!M&`7U|D8Rxd8GOt0S1tc=(L*C68X#Vh9g(BD+Utpnykbpai(==w;=E$bimK zU^Kqu@n6Bi`cz3GC_y3({DC(E|McjN=K!@)w3|=-|GW-);^t z&&Se3p_m)0+CktopGWtF<1Q)|prIm(DOsDSE;fcV2NszO2c`ITL0j00UhAu3A!lIQvh-@JPYXj=!>sFms@Bb z0$oqa>e+q&HMd8v440?%eNTR;`yQQhz*VfL^$q@Z(8e?m&?%b_Szesv1Qh__>nk)o zo1cB~VgBITnA8LO=)pDu75FW5kZ2sP+UM(fG-u`(>%2Pq({(2k3H* zvoFqqhCx8r-rIZhdMmtO5@ul71uEx31E@Cze*Xtu4PSB|R0JWf<%iBMyBZ&Gg>GaEE|NsBT+DmaW?2Cv{G)5PU8+|j+dYzT#p^b z5CFZ#5_C)n=q9vYXv+mOV(-(->$n_Le7UF?fQF_GKpO@@gC?M{Du)+;e}LM$Na@)F z)UK2DXg;X$;w|`2X&)7^5EnRjUhL(EB=G>uB<>dgPvW3ixdPBBh2R4rvL!sbixoV( zAIBelF);`<*WMYU0zQ|d8+43t0(g5rXhH}jTf060#a^ivI9Izq0B340h*AfE*Sw%S z?fL=~{ID#26GxUV_dq)F#GRw0%A?m+!Kc&J0#sON`1JBBE(3*+s|6^NcV7pIg6@aE z@S+nnY70_cjZ7n1@( z`5Zh}rU2e+eGpWZ8vAG;b~V1_(<$uJ8O#A1*!SpU_U!hN-~gSgDyTIEI_t)#`;KR4G>2zrwt#16u|zodxaQ_J2C!^!(*ss$ zuzOfK3h=i`g07p0StiIvdocw@cC+L)y7bjRjsqh6TG&FpA3j{p6`8_-NK)W72 zJN-C7GfZ;ewP8QN=c+d!V&o5pPFx=X9sUHm9>=5mQ1b&u5AGA7iC)l!RR=&fzVL^i z^k_W^nd3eQTJ3ufWttm2A^e#??jXNDGvpLxVNjm5y$U)C41DF0l`Ckj+}prI`Md}7 zNyru+ms1?R-Rz#$2TG)Ux>-(ncJsaF1o5mqx*a$?tUUxuKl*et_<$CYTn8D)cKzRf zk4`p^?qi@Vj@oVqmoo8(eYy|4KIhTP8(m?<@M3o`Xpj@q-==6Cg8_V50{dc6U*q(D z(JnLavH~#=(7tm928JK?9-ZtSpydpoKnn~Y%Na`G`Ytbm>I;JCi-PI<0MZAZDCdO> z{RbI^b8$lt#3=CM1{R2E@Wl;fAiKH2gY0EUiyJDz!|gi!tpy-?*y4s{uqdv@4T>*7 zWej|A18A)Q^5O zfw{0DlhDEjf0%`kg$*DJkry_A`JebB;0qhhuP_3w?_u4(!ieETS_Y^O54In%u3;@$ z1>toKPZxm7D&Gq){@e!-!?U)#fkrkiyr@bCrBG1+Ee3g-6x>|;1j*8Y!TJoK{A>Wa zIkfdai6&?PL$9|0zaRr>nuEck`&y?nN2fE7M=xtBsLtqQeqs3a|Nqxaplx6!Dh?jK z&H|tW)qUKfGoAyKb6_nsWP3raTu46((k9$#0qQ?p2?F{02E=}-i4G!xKpGgR7n0I%A zwqCvX8G!0nHMB5>M{mRuh({Yx?1H7FPIl07V9+Rq^dsT+fa~0e#M;9F@!AU&lI;Qe zN0V54Hh_xoPUaUkJ|Tx4ZvQ}*!XU>Pc*QPg4HCFh+wH^w8tY>D@ZW(0+;e0E9pwS) z0J?NI8oYQb48FE6n)DtPXlw{HS_=(aP<}xg?(pdT+0E3+2VdrhGQ#7yy8%0B3Egpb3((e^ z&EZV z=_ujQVd&9WXyDQ5XyMRNsNm6A7~s+A7~#-S=-|0Xm2S)Q#_M0(lLzQlUG5GtQ4jMRehYTFCGkA0cY8-PkU~uVhG<50kH1g># z7jWFmz{0@bYyFkKeKja0cIQiYH2(e1%)r3kJ`235@~o%!Igj0-BcK2O|6dR4uV^3h zus+D&v=FTRtjEQdphi6CipLk_{2sk5nvT7({2tbaJ^0;kfZ7Nz7XAA5->3Trs8);c z>C6}K=!}=}1ut1X;nDn8ph(7}8?!oW~QP$*V0fo?pr2Q_`KzgP{H2vLau z^>jP_{`&9JSuOxtr?!C|6xM1C&?agEXlOYDlu;ndN8;lSzle1G{eJ?aF9ABc4!i`g z)fBn}5M}*dAlMdGhFRe97v!gA(7~9Xbfpj)7Vgpg#-s5KIQqI-PZvVR&0If#`wX`{ zx<7(11;BDW>3UOeYh=Rv|}0pAUfQ=>e3eJ{M&#|!d71!Q`d!K0V=r3uJ-K9Alo z4*u{1{DMp#ovsUxxvpUJ==ELjVr?8Kh*)zhL5kQsy3ubZb!G(5r#t|yad-il#<>8R zI5`2GcKLtEquY1G3mK5IURKeWP-BjHbVF`5-3_i3=YVgK^=Lc-@-3)Kh8BLVCfLGH z5aPBQ;KK)?%P>LfAE8Gk4^;LSqR(e2%3=qK3#&rqd6UPpJ=)U1E?1a9(!yC6~UaKVF6K(ZpmHXj`M7g`fkXD z+#rQuQBZ+r0Ls1bFRTCk`VShf0*wcEgY|NO*ABhtVgtq65e>+C7?^tm!L3;*4$!Qt zM>iL$UHT|?@uOQM@b4G&d|jVzM$lkX_f6k!2aXpP-hlc`+~5%%kfWksKKl!D6gV6} z3thoSR491#7J>(tyZJo2D>*@$$ zxAg0HkM3d((DGtoP-&~g1R7(!4q|>*`SahS+gZTDB0~~%6ofO!YhDlQ2!T>wP-Cdu zfdee@)}#BzYiW;e4v+2|4i=e`rTiYCAin9*eF7~1(ZM2HvShYL_jJ&9T(JN7J-Yir z$EJa%b<6(z`tQ-X{s*YMINlCY0xHoQI@W^~K+ZJ)d7P9ML+^G-P0#1i9mxT*zEsVp z8+4@9HITP*K;>fhY0vKK9^KL}zWx67AEcz@u17Z?XbJMu-@pEQ^n%+;FW&wEbuHry zd_colM$LH!XRt#10z879i-^!_H+OR zs4B?7=Hvhd@C?64XK}p7hM+Iv~iPBXb|G^bnH{{&Vsa~L!Eiozyp54*l zb9})k^)^%+GL+bQbi;I&h`yNeT>#ak-{fD!6@e|7F<@`|P7pFi?KY*hA8tA&RUeVPsWXrI)oEqzrtA-?u}IC0vm1Qk(*)P=bx|g3D=e-xz%Eq(^t40xXq# za)45~_z!R@mjG=>u?CrU+!?Yg)R}|9qm$X;+i}JcUT_f&Dp(nzh9eihu(Gs71zHz$ z{{)@(>nZT!vOLHsq)+oXd^-lR6f_tFN`^gPV?ZYdfjXz4iU3mZL(BbM*3Y2OMG6OS zmF zf`=Wdu&cF3a|5Wzec^{)tvoh!m9VQ-?gNb@gYIjGq%%-2{lzy~2)Qf)COO1l>oY_@3@PK0u#6> zzUBcI-Q@)?9jZZ&1q&$pK<>%`asG?WmH=gA(Ga*alMkq>yA07>3)UPe0peM_xIGVK zRH?*nGmr(~K5KJ2(n0#5jIa{aFKJE_V1O)6^XV*;IL5}%e469iVU`lL=EuK1x+Q z9^IB6pi@+qfRYzz$K3h<0Se$|s<=n@`Ts#09^F4Yw11a`fD+n2Nl**LO~9kmO~Rv_ z&!=0^r~5o~Ax!rL$Nxbb9^GLA9?Ta!I>R(PIzh9}pnC+3&%9`GLTMC0=W;!IMdd+d zNUx8I#f!a(;2JXoG*k#$Cvhy+Ygz6G zT1(Rz1KL7ZqoM$9Q-Rj@s3$^$0dxpGlTWYf29NGr9-W~(K%J#d*A1YNK#$(g11~0l zN~T`l8{oxSQ5vATMZhP7BA+JzqSh3=2J{9_PqhBa~FRACyE!K@d?C9_15tPC4wHk-VQ#!t~)>$yimUj zDl8$bEpKUh(4JAo1`Fj63%VE`ys{^s6Fj=^E%D-`7^rWVEWrTUbgJOd?Je;C znn$Oz0;pH$@xK8)unX!=bTfm7=0PWwX@IIjz3$^5_zyaAFdr{f28F8ze0&!q?##n{ zyp$WFxSR2R0Eb6+4B)fVQ8o zHdu0&vU)O~eEktLVyoc6zfZ8?mkxi64`|5$mqNLS=MLDF37-6mFYq@RvokP&uI2jA z-=fdNz~Inz%%}Tj!!J$#7EnbD)+^4$z|inZqeQOZmqG~_|F#1Szc?NFT@U&)|8(pU zZ@E-@;pG?bd7b<%Zx|UEe6@c%HrOkae0OZH=Pdc?*?r$b`=%%JO^?n}P!85D?L@;bNk@M76HXmG+@Ajr`dXhVy$3qz zLBpfl9CXfv2dMwjef~uvxWN(oq5-*h`tYL39h7rQm_b9%*7x{Zz>)a>IOw=a1;;LS zPbkwyqx2(ahXH5_e{YD20w~28ym$y+%;5v#Ix-qxvJmv(cRk_R$)f^a>J_760UD9u z`~bS=2XqxKX#KE(XD6FyXB>D&N(Z{U54`429+vo_g5WiOTu{LPjtL&!psj7c1o)fE zAbYnyyj%e~3JfX?8x#ES!sqp`|B%FH{0)?Q6uKB~v`Vc#dL0=(J6Tjfu8(+;{uorI zp7886^Xx3+@aSehS&jypFapn3C%gn5#%!a4sy*Yy58|{JyzB+tOQKO~4+6uh7IfoCuO}mDy>VxZih^SoXxG+jQP34A zpfjLA$DDvx;K!&abTKItBTCpCIKK83$*u``6Rfka5X*v+LOv~?EimIh5=6(X?XPd&Umr#0TD48y8yg-&IEK4IAXmi zf2%UsPG*m8)HSF4ty~C+0FIY`7#SEgsaqZ5Zv{=+`JhAur)T%U*P<;a`CDFt^!z^z znlu5$Q5Uz>snX{b!HlJf9?gfDUUP%gFoKfqfAC&-1&{)d?!%?eU*Gche*lz5A(5rv zaokk{8d(A!y}knQ$Wnkt)>2nUWC_3{tN%SXvU~+zc&dUrC2Ahs z7j1M(~*r4+a4VK!a%%03Ap=mYbFgT1ozTa%Q?ZNK~F6iOu z_QZ?AyCBCyiy;p1ia8Gs(26;aP6Ln50uGPv*b6V+K!t6u=*mV=J?>lZq5*VKk#F}= zkKWJ%k6zz^7s*e+^>;!FsQ&g1crn)*(s;h#0M+4#uEP+bLl34S8>-_fL`T328HA1i zP>JR6;vcBg>lOW-46+2YxZND8XCqioFX&Le7f(Y$mtcaN20i2tr0@tt=Rvs6zfKVM zm4kKq7Q9#o*9P^`M2MC?uomBd7pI*-V_x9?CCY|hPz%VTo7F88+7xk>_w9b@3%YRf z7pNKB>D%tn>)Ze0-d)hNeRpX;_{wqD_AU+&(C}twXnVs?4gOXQCI$vb&!&s3$AGqMr>&Nk8mmFyQVQBlyBMb}-4OR*ztPNJ2rK}$R4}n@hq3sP;n*1%GlW~2! z&-j8Cf`@|Ky!}PpH_#=E2f&>y>oAEDbq~@+M@V9{W$-UJ3 z|NlS8`K_Q+tUef|h?e^=z6YUMatl-q^@?6kfLbB~((&SpDrgliWX&6B z{v3YJNADVy1E8HXjc*`Zo>=RGpy{|3bWQ9cL5^<1NhY8@8ENy zJvt|XdMDt;y%%2eNH8$?bhoYmH_yR0p%;lWF!=T^djP6KyM0ukgZTU{7x)+$JbPVK zI9xhvR7`w2YZH7rYcn8Q_5)t*kpBI@`5a?siHdpJpCOxcAmq>vcFt7Q$1VHV2)(%0B{|7z(AMmg~T>9ok)yrT1eY?+rE=cVK zErtll?|iVqLYcpXAGC_ObMFGs zx(@IZkWc4U(6!hu9eY9Lm`ATDvna^hkW#H%71WvP+zVO+;M2Jkbm)UiM{R*euc&Vo zNR@BFiwv+5$dRbF|OVfe_W`j_jTa@)%et)NGIsUnoBSP05{k zQU3J*|Cf276#%`l;4wcBe&?GW-L46sWlWkr-3NBrf-CXUFXC-M(encwmfgMqplIrL zO(E5Sh;|KH>P z3GfOaryD+?Jk$J3z=z-Yr00Lob)E&D*7wRKJv!%t4emY+x|i_0wLXJOM~!U3Yi`%B z;~w3YU+jGP>wkBNib3-^CPa1u!&6d(Gb<(5JbwFI8wdtT}Y~Ld<3o^A*BL;QwJvl132IL2E5?9`|JP9a*zNx zL)2z~LOC|Tr`t8b)A~oThL84fk6s>Y@O0PhIv9QP>^}2?@6rGNp2&qTXl;TEC}KUDmx8AB89bVoa)5?OJbOb_I6QiL zL6?5N&=v#V^~mA^j{EMpAeEp>y#l7--)qnX8~m-{MQFWKL7F_8_ks)pIULLfjb4C? z$KQ3JQC3hkNB5N+#8>hVUzJ+IeZ}en%H1Hpfc)mbKlPYL_f(MK$OQ_>&KH+%LxNWA zA*w%HWkJXNgA3W$7PvG|y$u?gg9HPl81d=c3bN){E68vL&`F7{AU^nrcW}9lk#+<5 z5o!0PJg&6+xdf!jx8TJ#uoA3k*BHEB|Hg~@b}VVvsRK{iJ$vgHs6-$#?aqg&#+`Qg zo34OX`G5v6A$c~eA zI{o)-KKI|#`j`*D(+3~skFPm=tUs1mdHz4=*kGqw`pHN8qbKMTIUQf???vh$^*+`g zO5{9xT?3$|9dc@@F<`XjZ^>d}U;w4)bC48mblbE0%nRH5|Np;a2Q@aDmx5X$p!5q$ z(+sfmE5OLW@FH6n)R^Faq~5I{bsnIB*5#l|rMDNX#O5U=1)l?pO$CX0H17o&1x~>r zK4`TXCr#%*jIY^1;b(N)qkAgIEyxKT zAnBp@)gpeB1sTlHa+|*u z)TuzEb=TfRs5jVs<3)c9 zmh>LfiYL9_z5a`Y^u8XV8ZEuQBMG$(yk9^=CK>JguL4!!K2%Q1Ju6jj!|&{ zuQ(R*u#5z+NA?tW{SLhUj`Q_1@V3oTHc#sag<@u(?gOA6SW6@%U4pCvg)peL1c$I| z0ceS&8aFghHcJ2gKLI|)oAII+v@q49SM+ZINP&+^#*1J*(Buwyx;Ep#=-FR}ApPIq z(k3A3UU+A>;DvbOZ*Xd8K4;+5>stVB3qqwKjk;@(AQhuhGnT-9+KeZ#3$Fe8Z+zRM zb1tZOap}$G_vu^)5 zS#rm>`@HA>lb+TW`P*ipDRXMD;ZP`f2%`7bNyVy%JQWIDpF(h>%D3R*;NG_g;`zcqb$5E~rOx1F8=$Y!7NPbguKO!G&8m z=z;~1;up*Ypy7A^R?u2=PwQF+{uXcr-h5mEJUIuNnX?B^)`AB>yYG2w-}mVCW_pqS z2W0RE&^-dMLJJfyz5yQm&b|R2{||XGU-M)>@6&zY#es{z{<|9gcj>5+V|48G*LYDc z3)y)CZrdw^R%&Q~4y{%IZ3+nR=?2|r)eV}G?LP5h$NB&NK?fur_vpR=8b`NyvFH&< z1Z18?jfzPrr)T$>7gjgH&8Vr6K>sBG>%D+|c<}NsP}u+qWsl>nASIw2=+dzlBn$3E zfTri5-IstDlP*J=xk$w*xQoi)8vgPBf6(GdNNWu?)*tX9;WDTI_EFLB0j&&$Ebl56 zd2zBHHsl$fYsBzkQp4Z>FTU18`mQg*J>h+z^zYdnmw}Y?o56ST^@@7u!g7A37AT}) zIsfuEaL%`ZOIv}ZuY(51GX9Hhfk>OerKLgAy;H${?e$S9c=4|WbWWcR$Z=5NW^iH! z*KuHF-6vlBt%c-&P-r1nI3W2K1()yzC};`_bS4BSU;h^s`C-W5(cKFgMgR?%yj24A z-R7vw0F6#J9svzEfCo-uL8F$jhhLm60Xgn?33#9aW#1~weQYZ_Aj1^_AY-~&&pX0~ zD?C7bitdLVoxUBepbOqhR16$@{VZPaN`qRGCqTUt3)kK{Mo_2H0di@bi%JA2s=;GH zTpwH*D>=Yi&u$hKkn#x7h<^h3Xy_1-%9Af%o&pz~pj3I!qce5_WH;GrDUi>=TPiF- zrptl%3NW~IR&cmyyZ}h=KabAX1sdX>zpU%<>pU$nI8VIz7!K2qV<3$|T@Bg4fb-<^EcZ=$myMuOPX1qw+4Qc^7cHJvs zcI>(jIxfkv<#>r9=*pIV9^F&HW*}vjj2EdFKuMvr!sB==ND`8r;5+3|cu@XMLz8oISwF;mft}lm2 zudfDt&cXsZXYo-7)VnQ_)d2NwK{KZ>ZeRNawqC%aTU5Oa93C1k=GFfF-*v;IJJbQ3 z37}k6^WgWnm%I=~G&N{+R`0z9~S05rJjqT+xwb?E@g zsueFl{gVlx-jsq*FYnP14+fuJ*0vB22GBiJpqcY&I{FMApkwpGK$diSaCme(2zY28 z^l1Jez~AHu7K{YXU~)j_HX}Jax;Z^MeK&Y?#_oU_oC7gf7i{ngCmm2W_yFp+X+tL$ zIGTTfk2(QQE(k%!LY=|Wo}BP$PvhIZptkZ`@MyA|fG2d+*#k7d(Doe^^qq5OfT-i( zsS!}Dbj$@cbwKBKF@d5Id_d`o(?X!tHl48%9>-l1z^Y=l~N~=b^LE)(U9O$ECNL z-=`BilGQO6Bn@iofwe&6*5k#bv!HfLYy@aDvLn{RqkAf-$pTgbH5TNv7ujb)t&!iJ z-Jnwi++Yz?7dI>OS!OUPh28as&@otAZA66hPw%<(wMul8pin z@RAMJmT&y6pd&v#d&4@_-iQcb|JP12Pc+JpmT77RHz3h3Xm5OkwN) z66iFoJJ?(D;3Kim!%p6D2Pa1^s9*rc1kdgm6>!SehB%z4^LjkHk9u_Xf+`45MU)}~ zS-JwMK|H&oEj+ui+&bpbD;kpmN}Ii)dho>rYw$4pagSa|LjzRP6`TZ5dF6V7N7_HU zSfv3P&hHkzQwSdea(YMK9~UN|FEnCxDVUc>B|V7pf4WlpsbO zco7das#nwy;sj6&`vot=C{VwocPdE4qu2Mwi`OT>j(Fh#cEpVrsv4kWGiSiZcK!zC zOVDDpP^6>myOB1|O|pVko~|Fj6IQQ$x_=t~_v{Y&3#tS??p=Gq$`4xCxE<7K z^yziI0J;pYH+02|CQw78J9Y^XEcefcDdY^B0dtx9o_Rudxh~uG|G&ro-;OHIIw~`Vz6)sa|CZ5Y<>e;l{e869sr);89U?u zKD~tn7#{cR76Hx2TzJ942P(#TeK)-LcO8`IZ-9fLH}nALc#+FHKd?3(HKhU-la1d#Oce(V2Ztwt^)N&4F(rJ%wX~@tQ&&gl^LCQ*Qf;2(I zew+Yh7K|N+4^R981&jwMVBC=crcn~qBAKHC?vynjDFB5EXzL(kogQefDq@i)Xv35z zXg4mWC+K3ESD;cs9<=Pxr~B}WBU?aT3KsCt76$Ew0OW@R?lTy+??9qHs;AQX@ z@O~)I?gKvEr@-Cn3!dF4U%G(oM>|X35fp`>&9$&&Vfa0|UwZKGJ+T`!a@l>@kIttpq%E>UCIF(R`TFJ3>v@T-+SW!L66IiJ$ij5JbFc>UmWTE_ur$}`M*bJtc6E+ zEQd#@tAR(iv`6=E572_7WuP3?4LWd1;KjpjpcYrCgirSgA7x(yU*?nEmL{i4xxG7O zPI-66oZ@($@7?Wkio>JZTL651iz#TYmG$Y8M?T%o9G;yPpta{7om}8rqEiBL;FLRu zN2fE#>;14pUrGYJEm=;Len8Q}1R8|!=#=#64B+tT1ZnZ+0NLu%eIFF_tx@2Z2kn*z zb^Smw5CGaE2afc^KHZ=_MI0WTR-mnYKAnt^Nm~ieP7e-`&TxqRTRnPtS&fVsUbOOp ziw{^jDFJP6uThbJod4+2ZRrErQgPFxyPV^-ybtIm!EVrQs}~1PgOcz$a9Z`~HhbZD z?AL$LGRczLAlF!Ubb{Kj_8y(}0v?bH6S%>rN7jHYlw|hoc7rTC@CG{uoN&PF4?ugX z;voB|6hKQcAcypYg~MF)3B0twlEXvW(&ONN7Q_U&hxLVWS5V<}@FB~Kje9}0^#@QL z9N^P^8dMmAmMC^}zfj-)|NjIZ(EQzTPtX}#r$JUnfP*eBKJMj(KmY%~DCU6lM?mQp zG+`2=V&H0g;041XXyQF{=1ha7Mk$NOf2P9?mYSf;X1G9S-!;GS@aaC)_>+M_kb%E> z3IhW}ZzF@o|NplC*%=u4+nPbMe!D^KX3(6qqxI=x_6{zO<|7`5UAiuIUvzAEWPk7# zn=9Al#-9uv3=GA54W|w`b_lw32zdNI@cLTABYT(bgN_GZ@Hm2%FfcL{3p+NPc;MQ> z*dgH35y0rte1Pfox`Qu;92*|kH=O+7%5~VWgVUvhp(B9Nr6YjJqxk^y>pswK1JF|E zy>_56P0>XTpjreZa8D5_9fW%{zj1)vcI07wswA9$J2z+{5zIr(3=HLJpsNcq__qs# zC7KviKt2UYSR8!F)p(FWWx*fjQ?Ge@8{sl#k)GWbUR?S2|34^3tna^G4hsDM(1dgI z5r_E0pq8@2iynx>D(ztoa|Jn!fBQv)bhC9GI`D#x=YV4eiw5Xe zfaW^L?m)JNNA?Y;8ahHi7YBthfl3k|>qGoaT&$o?tp_}`4>|4x?Qrq5KIp^mbOJ@I zM=y_nul7NoPB#J2)x7@?c=d{KzL1vJXYlxc6of#GAmMP-^Zx-4=8G>x<#$qVg0K(6zmyDQe<#e_+x`Bgo8@TIwz(f1!E)Gz< z5*w5!W%LsonZMNzWXZwzOgq4-_WN^B zeuqP#VH%s~paDGaxkd_LXT!|#>D94tHGbmT`oBcqv)7mD#iHN;|MPGA0UEfS4rU%m zJNSSjjr&KMQ>RU`=l>&~%|}^$t)CZN^zP-UfARPk$YAi8lZIEXNHwU$>OTF#=NG6v zg(jjypb;_cub$1vSU_c%_EG3W9Ew9cdU-T_wT~f^kyo#X;fpiUkaPsv?gLIm{f|NY z?AHG!oS=<4jn6>M;MUvxEq&ll-suL>zc7~qpTy0ynXwCcQZ0C!B4|j01AI3e z_@vmIKHZ19LR1W1M1ZPSOP!9Cv_sM}jsBf`;`#JLPY@s0Z~!AO|NL_rP&%0=TV-Qnx|d_deZ)0v^a` z-FS5W^aLGubBMnQ(lF1I@a?q`104|1e2U-0`f|BE_~OmOpi^)lN8s>*j=%x!w6eb7 z!S4h)0cXKx&?pahrs0E6XT1RU^qbCj3D6-z$S2?&k^r5(0XYGuVmC;SIphSKm0$_* z$=>H*v~2@5ePdKSpoarNZ@UDwUE>|&;t#(_1)ZJ&YIC6Y5w@kJ`Hg}rXq&)CpUy%7 z&+eN(orMyf-9J3LGX#9QD+N5e9V9$K$9rfW_3hQs_p$y_9^z^3AyMw<+UuqOIvBP4 z+zUwweFn%OJjXnaLk<{n=`cs+LJv?H0VNP=-(Gh{@LmxfjTeu_LAvq;UfuysNNAt; zuzp$Y0gXjatNz@JgJ2cK0$^Rx*mLPH_5htqaoMAnNBhN6anPC5(Ea=NKA>S1&|#IY z7kTc3olyi@vJ5JDj`KH723gd7)T8+Xzo+%Fa{irSpteW%2M=&9|IxG8kMRZbCeW!4 zpo73WK{v&M8s`sQC~XA|HRlO{cA6rlrXbdNcAt460d@xLS{JZ$yDxk8^60$yCkE;W z$AGpT9`oofQON*xQWL;U{CLMWM{u?O;_x5PQ6jK(=%WHj^q|GNy{zw}KpTJ=I|Dh4 z4|sGsDtH`s1TTs2a1`+AbOayj<0gq-i29M@6(Ej8!@FCow zlU+PHz$0@S9^Ds?xu|$B_;j;*fQBZuPk2}#EN1m&KJZ$nOb>MLyQlU659o_+4*!bf120;?e8P2wLpZec{F7t)Kv@9YW zkM?1ZuG253!FBxr)hC7rKq_x|bh~kQSl=k!4RYH{&}gq1Ldc?233P9u4$J{}C1pO1h-FLK8bikY8LqYlwr|2Z? z0*l&%MZw30Kt@Ae%9=vY6NVFohhnE+84!Qjz-+T*x0cx3;Wvj^xPdWGnh zV&LIEnYK*tVngN;Y7%8|kZ;wBZin?UIol(nwi!R;oGUe@|B zP}&2<3Fu%Bv{-2Z6<6TuyBR4~=6o?kI+6o)xC6*>d0=~x9S8P1=&Ux#SgWcEypNjU z*!2^1e0cXKP&eM=#W&Ega2~y)i$Xv{nBSyubBSu97v?CuhBn~O4K*gH_xVL-u#bm$V|GRF0w#7mM z9y0v^vSR7xU;jbvA|I6uQ1{S}1yobafo|G8QUD$oOQh55nUB6&!fH0y2+| zdfyWCNTQt}=YmJQKS5m8n=Jqy20Q!0iyJ&}uL>Fo1-S~g>$)3$QA;=I-WG6~eAuJ) zTM4sAr``s}*EbR2B>}lKX^qMPP@kajO#-MG?q*d`f+m9208md6bic4K_`Eq#7z%-o zZv@@s1KQLHy8ZxM?zpHZFudsb_Uk`rQVi5zRq(Beu(&|(DdGi9r-2VvS^}=G?ZKN*@0S>PbQcSBvst^S zIFyQljq_sx+2-=%10SdvUBU`FgX^j<$hV%IX0XlZy?b9e0P1VRu(1_;!DE?0(?`%75~pVKgm}OF)gw(1-y%c7%M!80bVQ&u&Nt1Ra(5LL5Bu09xn`s&^H^g&C;R z2Oj+bHJG5I`k;dFrQLGSIaiQ<*^qNCp%)*5=Nh_M?G&If>?#jFF8-58_eY=ZO3<9j zc?QS5peXg}%)Nfhbw6ko8^;UKk`~|nFIIzgF8hG)Q){lh4w}7p-48mK3(}MH>=uL0 zN(M-P&Wh*+U8Wd%9aOGTfEy3$pGGq>Fzf`CQ7>43>M?k9x=shJ z&=3GMg1b+=X#ED7-uUsF$@srVXYF)QdFi(eq|B`VJpaBD6c(T>;NWKVivINn6;i(Y zU;OwCnv>}b-46=2%^D00E?plyy3w6wxBl0E&@61rB9K|#=U&80fGRD&0>^!z=?c(< z2&nz$*nRE4fKO*#0ch0+k4HDVBWOhW{C|N79^K4f_GwUi26BzyqW^lJ!v#Sh4jSZl zj0NvK0`J@seFiQ=egD5$$_ZM3+{^m%IcOOU=vvJCFZObP`t9IJ$N4WFD1!%mw`zjM zR(vwrVu&NmkTPzhac1OcN@$`2&%bxGzLbR}Dsk}Hl%GIr5M!Tv9Cv*WN>ClKpxe-V zK)0{=`d)t#|LNEN2`*iqzqtu8^S5?_mrL+_boz7nbf*b;b|3LL_=3r!SHuB)92uye zc%e)lK6y|No;zv=YdZhJ!vFVwkS?F@*B+g*+kIP~@V9&g?T6kE8oEFkNO5Yg(Xi!j z0Z%p}j~F?1@o2oTVPaqa?UB9)P6S9JB#!*s&N+3lXmq&nE_eKQ%+=~Uf9pn2x2U&t zxld>9dY|6h>mJRu??G82_qtEF>vPcUuVRk;`@}#)MSfi1)^`c3r}k0M4ww`F9Xr@O z{~z;c&Rx$~dZ;UOMc1hVFIgHMGIzNyKk$Hw=|qR`>Mq}vT?Y@mU{c{f@Q8)!P>1W9 z0}t7ld{=e&uJ!3HUG2CRbbmH@w#qtOpoH78i>-sn|U_}A%ZNHy0JLNbI(O#@YOr{A-+&I~eDdr*02;?(@aR4VYO;iIfLcGGB`EwY z;B^w<>~Y%T;;R>b)fgBW?DQbTRjCEI@nY>QQ7j7{Rsije^XLSf*?1UKg)^reXW=kl zcrEC-5j0N*Zcm(kv5E)O2K5$j>EiPMX;r|g)un?6bnzJ@!)re9≧MW@SFl@Bg5A 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