From 5ad8f9895b353ce7c3525bdeb1b2c2c6b176a38f Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Thu, 22 Dec 2022 11:05:29 -0500 Subject: [PATCH 01/10] [USDU-230][USDU-232][USDU-275] Adds test cases regarding importing textured usd scenes --- .../Runtime/Scripts/IO/Scene/ImportHelpers.cs | 19 ++- .../Runtime/Unity.Formats.USD.Runtime.api | 3 + .../Tests/Common/BaseFixture.cs | 24 +++- .../Tests/Common/CustomAsserts.meta | 8 ++ .../Common/CustomAsserts/ImportAssert.cs | 118 ++++++++++++++++ .../Common/CustomAsserts/ImportAssert.cs.meta | 11 ++ .../Tests/Common/TestAssetData.cs | 26 ++++ .../Tests/Common/TestAssetData.cs.meta | 11 ++ .../Tests/Editor/ImportHelpersTests.cs | 81 +++-------- .../Tests/Runtime/ImportHelpersTests.cs | 43 ++++++ .../Tests/TestAsset/TexturedOpaque.usda | 114 ++++++++++++++++ .../Tests/TestAsset/TexturedOpaque.usda.meta | 7 + .../TestAsset/TexturedTransparent_Cutout.usda | 127 ++++++++++++++++++ .../TexturedTransparent_Cutout.usda.meta | 7 + .../Tests/TestAsset/Textures.meta | 8 ++ .../Tests/TestAsset/Textures/textured.png | Bin 0 -> 1701 bytes .../TestAsset/Textures/textured.png.meta | 92 +++++++++++++ .../TestAsset/Textures/textured_emissive.png | Bin 0 -> 2007 bytes .../Textures/textured_emissive.png.meta | 92 +++++++++++++ .../TestAsset/Textures/textured_metallic.png | Bin 0 -> 2004 bytes .../Textures/textured_metallic.png.meta | 92 +++++++++++++ .../TestAsset/Textures/textured_normal.png | Bin 0 -> 16999 bytes .../Textures/textured_normal.png.meta | 92 +++++++++++++ .../TestAsset/Textures/textured_rough.png | Bin 0 -> 80381 bytes .../Textures/textured_rough.png.meta | 92 +++++++++++++ .../Textures/textured_transparent.png | Bin 0 -> 51232 bytes .../Textures/textured_transparent.png.meta | 92 +++++++++++++ 27 files changed, 1088 insertions(+), 71 deletions(-) create mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts.meta create mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs create mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs.meta create mode 100644 package/com.unity.formats.usd/Tests/Common/TestAssetData.cs create mode 100644 package/com.unity.formats.usd/Tests/Common/TestAssetData.cs.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png.meta create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png create mode 100644 package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta diff --git a/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs b/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs index ab02d6960..9d35aafc2 100644 --- a/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs +++ b/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs @@ -59,7 +59,7 @@ public static GameObject ImportSceneAsGameObject(Scene scene, GameObject parent } #if UNITY_EDITOR - public static string ImportAsPrefab(Scene scene, string prefabPath = null) + public static string ImportAsPrefab(Scene scene, SceneImportOptions importOptions, string prefabPath = null) { string path = scene.FilePath; @@ -68,10 +68,6 @@ public static string ImportAsPrefab(Scene scene, string prefabPath = null) // the time will be ignored and values will resolve to default time automatically). scene.Time = 1.0; - var importOptions = new SceneImportOptions(); - importOptions.projectAssetPath = GetSelectedAssetPath(); - importOptions.usdRootPath = GetDefaultRoot(scene); - if (string.IsNullOrEmpty(prefabPath)) { prefabPath = GetPrefabPath(path, importOptions.projectAssetPath); @@ -92,6 +88,15 @@ public static string ImportAsPrefab(Scene scene, string prefabPath = null) } } + public static string ImportAsPrefab(Scene scene, string prefabPath = null) + { + var importOptions = new SceneImportOptions(); + importOptions.projectAssetPath = GetSelectedAssetPath(); + importOptions.usdRootPath = GetDefaultRoot(scene); + + return ImportAsPrefab(scene, importOptions, prefabPath); + } + public static string ImportAsTimelineClip(Scene scene, string prefabPath = null) { string path = scene.FilePath; @@ -125,7 +130,7 @@ public static string ImportAsTimelineClip(Scene scene, string prefabPath = null) /// /// Returns the selected object path or "Assets/" if no object is selected. /// - static string GetSelectedAssetPath() + public static string GetSelectedAssetPath() { Object[] selectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.Assets); foreach (Object obj in selectedAsset) @@ -170,7 +175,7 @@ public static Scene InitForOpen(string path = "", UsdStage.InitialLoadSet loadSe return Scene.Open(stage); } - static pxr.SdfPath GetDefaultRoot(Scene scene) + public static pxr.SdfPath GetDefaultRoot(Scene scene) { // We can't safely assume the default prim is the model root, because Alembic files will // always have a default prim set arbitrarily. diff --git a/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api b/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api index 1628b8e7d..145506379 100644 --- a/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api +++ b/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api @@ -136,7 +136,10 @@ namespace Unity.Formats.USD public static class ImportHelpers { + public static pxr.SdfPath GetDefaultRoot(USD.NET.Scene scene); + public static string GetSelectedAssetPath(); public static string ImportAsPrefab(USD.NET.Scene scene, string prefabPath = default(string)); + public static string ImportAsPrefab(USD.NET.Scene scene, Unity.Formats.USD.SceneImportOptions importOptions, string prefabPath = default(string)); public static string ImportAsTimelineClip(USD.NET.Scene scene, string prefabPath = default(string)); public static UnityEngine.GameObject ImportSceneAsGameObject(USD.NET.Scene scene, UnityEngine.GameObject parent = default(UnityEngine.GameObject), Unity.Formats.USD.SceneImportOptions importOptions = default(Unity.Formats.USD.SceneImportOptions)); public static USD.NET.Scene InitForOpen(string path = , pxr.UsdStage.InitialLoadSet loadSet = 1); diff --git a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs index 6c5022be8..be2a024f6 100644 --- a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs +++ b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs @@ -29,6 +29,8 @@ public abstract class BaseFixture protected string ArtifactsDirectoryName => "Artifacts"; protected string ArtifactsDirectoryFullPath => Path.Combine(Application.dataPath, ArtifactsDirectoryName); protected string ArtifactsDirectoryRelativePath => Path.Combine("Assets", ArtifactsDirectoryName); + protected string TestAssetDirectoryName => TestAssetData.Directory.FolderName; + protected string TestUsdAssetDirectoryRelativePath => Path.Combine("Packages", "com.unity.formats.usd", "Tests", TestAssetDirectoryName); public string GetUnityScenePath(string sceneName = null) { @@ -60,7 +62,7 @@ public string GetUSDScenePath(string usdFileName = null) return Path.Combine(ArtifactsDirectoryFullPath, usdFileName); } - public string GetPrefabPath(string prefabName = null) + public string GetPrefabPath(string prefabName = null, bool resource = false) { if (string.IsNullOrEmpty(prefabName)) { @@ -72,7 +74,16 @@ public string GetPrefabPath(string prefabName = null) prefabName += ".prefab"; } - return Path.Combine(ArtifactsDirectoryRelativePath, prefabName); + return Path.Combine(ArtifactsDirectoryRelativePath, resource ? "Resources" : "", prefabName); + } + + public string GetTestAssetPath(string fileName) + { + if (!fileName.EndsWith(TestAssetData.Extension.Usda)) + { + fileName += TestAssetData.Extension.Usda; + } + return Path.GetFullPath(Path.Combine(TestUsdAssetDirectoryRelativePath, fileName)); } public string CreateTmpUsdFile(string fileName = "tempUsd.usda") @@ -114,7 +125,7 @@ public void CleanupTestArtifacts() { if (Directory.Exists(ArtifactsDirectoryFullPath)) { - Directory.Delete(ArtifactsDirectoryFullPath, true); + UnityEngine.Windows.Directory.Delete(ArtifactsDirectoryFullPath); } if (File.Exists(ArtifactsDirectoryFullPath.TrimEnd('/') + ".meta")) @@ -122,6 +133,13 @@ public void CleanupTestArtifacts() File.Delete(ArtifactsDirectoryFullPath.TrimEnd('/') + ".meta"); } + // TODO: If materialImportMode = MaterialImportMode.ImportPreviewSurface, it creates all the texture2d files on the root assets + // Figure out if the texture2ds can be set into a different location - such as our artifacts directory + foreach (var textureArtifactGUID in AssetDatabase.FindAssets("t:texture2D", new string[] { "Assets" })) + { + File.Delete(Path.GetFullPath(AssetDatabase.GUIDToAssetPath(textureArtifactGUID))); + } + #if UNITY_EDITOR AssetDatabase.Refresh(); #endif diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts.meta b/package/com.unity.formats.usd/Tests/Common/CustomAsserts.meta new file mode 100644 index 000000000..3db060dbd --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33dd655014c327443b620639dafef15d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs new file mode 100644 index 000000000..39e284882 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs @@ -0,0 +1,118 @@ +using UnityEngine; +using NUnit.Framework; + +namespace Unity.Formats.USD.Tests +{ + public static class ImportAssert + { + public static class Editor + { + enum UsdPartType + { + UsdPlayableAsset = 0, + GameObject = 1, + Material = 2, + UsdPrimSource = 3 + } + + public static void IsValidImport(Object[] usdAsObjects, int expectedGameObjectCount, int expectedPrimSourceCount, int expectedMaterialCount) + { + Assert.NotZero(usdAsObjects.Length); + + bool playableAssetFound = false; + int gameObjectCount = 0; + int materialCount = 0; + int usdPrimSourceCount = 0; + + foreach (Object usdPart in usdAsObjects) + { + switch (usdPart.GetType().Name) + { + case nameof(UsdPartType.UsdPlayableAsset): + playableAssetFound = true; + break; + + case nameof(UsdPartType.GameObject): + gameObjectCount++; + break; + + case nameof(UsdPartType.Material): + materialCount++; + break; + + case nameof(UsdPartType.UsdPrimSource): + usdPrimSourceCount++; + break; + + default: + break; + } + } + + Assert.IsTrue(playableAssetFound, "No PlayableAssset was found in the prefab."); + Assert.AreEqual(expectedGameObjectCount, gameObjectCount, "Wrong GameObjects count in the prefab."); + Assert.AreEqual(expectedPrimSourceCount, usdPrimSourceCount, "Wrong USD Prim Source object in the prefab"); + Assert.AreEqual(expectedMaterialCount, materialCount, "Wrong Materials count in the prefab"); + } + } + + public static void IsTextureDataSaved(GameObject usdObject, string fileName) + { + var materials = usdObject.transform.Find(TestAssetData.ImportGameObjectName.Material); + var rootPrim = usdObject.transform.Find(TestAssetData.ImportGameObjectName.RootPrim); + + Assert.IsTrue(rootPrim.childCount == 1); + Assert.AreEqual(materials.childCount, rootPrim.childCount); + + foreach (Transform child in materials) + { + // TODO: Not sure how to access "Prim Type" + Assert.IsNotNull(child.GetComponent()); + } + + var renderer = rootPrim.Find(fileName).GetComponent(); + + Material[] allMaterials; + if (UnityEditor.PrefabUtility.GetPrefabAssetType(usdObject) == UnityEditor.PrefabAssetType.NotAPrefab) + { + allMaterials = renderer.materials; + } + else + { + allMaterials = renderer.sharedMaterials; + } + + foreach (var material in allMaterials) + { + IsTextureFileMapped(fileName, material); + } + } + + private static void IsTextureFileMapped(string fileName, Material material) + { + switch (fileName) + { + case TestAssetData.FileName.TexturedTransparent_Cutout: + { + Assert.AreEqual("Cutout", material.GetTag("RenderType", false)); + Assert.AreEqual("textured_transparency", material.mainTexture.name); + Assert.AreEqual(1f, material.GetFloat("_Cutoff")); + break; + } + case TestAssetData.FileName.TexturedOpaque: + { + Assert.AreEqual("Opaque", material.GetTag("RenderType", false)); + Assert.AreEqual("textured", material.mainTexture.name); + break; + } + + default: + break; + } + + Assert.AreEqual("textured_metallic.metalicRough", material.GetTexture("_MetallicGlossMap").name); + Assert.AreEqual("textured_normal", material.GetTexture("_BumpMap").name); + Assert.AreEqual("textured_emissive", material.GetTexture("_EmissionMap").name); + } + } +} diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs.meta b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs.meta new file mode 100644 index 000000000..dbcebc079 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fcd11405b1262f4f885735991df4516 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs new file mode 100644 index 000000000..b924da35a --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs @@ -0,0 +1,26 @@ +namespace Unity.Formats.USD.Tests +{ + public static class TestAssetData + { + public struct Directory + { + public const string FolderName = "TestAsset"; + } + public struct FileName + { + public const string TexturedOpaque = "TexturedOpaque"; + public const string TexturedTransparent_Cutout = "TexturedTransparent_Cutout"; + } + + public struct Extension + { + public const string Usda = ".usda"; + } + + public struct ImportGameObjectName + { + public const string Material = "Material"; + public const string RootPrim = "RootPrim"; + } + } +} diff --git a/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs.meta b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs.meta new file mode 100644 index 000000000..29aa72d93 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec6bd4f2c2eb93e4a80e4067dc930eb0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs index e77cda9bd..84162b8fb 100644 --- a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs @@ -2,11 +2,6 @@ using NUnit.Framework; using UnityEditor; using UnityEngine; -using USD.NET; -using USD.NET.Unity; -using System.Linq; -using Object = UnityEngine.Object; -using System; namespace Unity.Formats.USD.Tests { @@ -59,7 +54,7 @@ public void ImportAsPrefabTest_ContentOk() // ExpectedGameObjectCount: The Root GameObject + Sphere GameObject added // ExpectedPrimSourceCount: Root Source + Sphere Source // ExpectedMaterialCount: The 3 default materials + 1 material from Sphere meshRender - EditorImportAssert.IsValidImport(usdAsObjects, expectedGameObjectCount: 2, expectedPrimSourceCount: 2, expectedMaterialCount: 4); + ImportAssert.Editor.IsValidImport(usdAsObjects, expectedGameObjectCount: 2, expectedPrimSourceCount: 2, expectedMaterialCount: 4); } [Test] @@ -74,65 +69,29 @@ public void ImportAsTimelineClipTest_ContentOk() // ExpectedGameObjectCount: The Root GameObject // ExpectedPrimSourceCount: 0 TODO: Shouldnt there be a prim source object for the root object? // ExpectedMaterialCount: The 3 default materials - EditorImportAssert.IsValidImport(usdAsObjects, expectedGameObjectCount: 1, expectedPrimSourceCount: 0, expectedMaterialCount: 3); + ImportAssert.Editor.IsValidImport(usdAsObjects, expectedGameObjectCount: 1, expectedPrimSourceCount: 0, expectedMaterialCount: 3); } - [TearDown] - public void ClearTestScene() + [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] + [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture"), Ignore("[USDU-232] Test On HDRP")] + public void ImportAsPrefab_TextureDataImported(string fileName) { - m_scene = null; - } - } - - public static class EditorImportAssert - { - enum ObjectTypeName - { - UsdPlayableAsset = 0, - GameObject = 1, - Material = 2, - UsdPrimSource = 3 - } - - - public static void IsValidImport(Object[] usdAsObjects, int expectedGameObjectCount, int expectedPrimSourceCount, int expectedMaterialCount) - { - Assert.NotZero(usdAsObjects.Length); - - bool playableAssetFound = false; - int gameObjectCount = 0; - int materialCount = 0; - int usdPrimSourceCount = 0; - - foreach (Object childObject in usdAsObjects) - { - switch (childObject.GetType().Name) - { - case nameof(ObjectTypeName.UsdPlayableAsset): - playableAssetFound = true; - break; - - case nameof(ObjectTypeName.GameObject): - gameObjectCount++; - break; + var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); + var assetPath = ImportHelpers.ImportAsPrefab + ( + scene, + new SceneImportOptions() + { + projectAssetPath = ImportHelpers.GetSelectedAssetPath(), + usdRootPath = ImportHelpers.GetDefaultRoot(scene), + materialImportMode = MaterialImportMode.ImportPreviewSurface + }, + GetPrefabPath(resource: true) + ); - case nameof(ObjectTypeName.Material): - materialCount++; - break; - - case nameof(ObjectTypeName.UsdPrimSource): - usdPrimSourceCount++; - break; - - default: - break; - } - } - - Assert.IsTrue(playableAssetFound, "No PlayableAssset was found in the prefab."); - Assert.AreEqual(expectedGameObjectCount, gameObjectCount, "Wrong GameObjects count in the prefab."); - Assert.AreEqual(expectedPrimSourceCount, usdPrimSourceCount, "Wrong USD Prim Source object count in the prefab"); - Assert.AreEqual(expectedMaterialCount, materialCount, "Wrong Materials count in the prefab"); + Assert.IsTrue(File.Exists(assetPath)); + var prefabGameObject = (GameObject)Resources.Load(Path.GetFileNameWithoutExtension(assetPath), typeof(GameObject)); + ImportAssert.IsTextureDataSaved(prefabGameObject, fileName); } } } diff --git a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs index dc91c41bd..4e616a0f0 100644 --- a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs @@ -116,5 +116,48 @@ public void ImportAsGameObjects_UnderInactiveParent() Assert.IsFalse(usdObject.activeInHierarchy); Assert.IsTrue(usdObject.activeSelf, "The USD Scene is self-inactive when imported under an inactive parent"); } + + [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] + [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture"), Ignore("[USDU-232] Test On HDRP")] + public void ImportAsGameObjects_TextureDataImported(string fileName) + { + var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); + var usdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: + new SceneImportOptions() + { + materialImportMode = MaterialImportMode.ImportPreviewSurface + } + ); + + ImportAssert.IsTextureDataSaved(usdObject, fileName); + } + + [Ignore("[USDU-275] | [USDU-230] | [FTV-202]")] + [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] + [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture")] + public void ExportGameObject_TextureData_UsdaToUsdz(string fileName) + { + var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); + var usdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: + new SceneImportOptions() + { + materialImportMode = MaterialImportMode.ImportPreviewSurface + } + ); + + var usdzPath = GetUSDScenePath(usdObject.name + ".usdz"); + UsdzExporter.ExportUsdz(usdzPath, usdObject); + + var usdzScene = ImportHelpers.InitForOpen(usdzPath); + var usdzObject = ImportHelpers.ImportSceneAsGameObject(usdzScene, importOptions: + new SceneImportOptions() + { + materialImportMode = MaterialImportMode.ImportPreviewSurface + } + ); + + // [USDU-275] | [FTV-202] | [USDU-230] + ImportAssert.IsTextureDataSaved(usdzObject.transform.GetChild(0).gameObject, fileName); + } } } diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda b/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda new file mode 100644 index 000000000..149f5a286 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda @@ -0,0 +1,114 @@ +#usda 1.0 +( +""" +USDA 1.0 file created for Unity USD Import test +""" + defaultPrim = "RootPrim" + metersPerUnit = 1 + upAxis = "Y" +) + +def Xform "RootPrim" +{ + def Mesh "TexturedOpaque" + { + int[] faceVertexCounts = [4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] + rel material:binding = + normal3f[] normals = [(-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] + point3f[] points = [(0, 1, -2), (0, 1, -1), (0, 2, -1), (0, 2, -2), (1, 1, -2), (0, 1, -2), (0, 2, -2), (1, 2, -2), (1, 1, -1), (1, 1, -2), (1, 2, -2), (1, 2, -1), (0, 2, -1), (1, 2, -1), (1, 2, -2), (0, 2, -2), (0, 1, -1), (1, 1, -1), (1, 2, -1), (0, 2, -1)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1)] ( + interpolation = "vertex" + ) + } +} + +def Scope "Material" ( + kind = "model" +) +{ + def Material "TexturedOpaque" + { + token outputs:displacement.connect = + token outputs:surface.connect = + + def Shader "PreviewSurface" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor.connect = + float inputs:metallic.connect = + color3f inputs:emissiveColor.connect = + normal3f inputs:normal.connect = + float inputs:opacity = 1 + float inputs:roughness.connect = + int inputs:useSpecularWorkflow = 0 + token outputs:out + token outputs:surface + } + + def Shader "uv_reader" + { + uniform token info:id = "UsdPrimvarReader_float2" + float2 inputs:fallback = (0, 0) + token inputs:varname = "st" + float2 outputs:result + } + + def Shader "roughness_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_rough.png@ + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float outputs:r + } + + def Shader "normal_texture" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:bias = (-1, 1, -1, -1) + asset inputs:file = @./Textures/textured_normal.png@ + float4 inputs:scale = (2, -2, 2, 2) + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "main_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured.png@ + token inputs:sourceColorSpace = "sRGB" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + color3f outputs:rgb + } + + def Shader "metallic_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_metallic.png@ + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float outputs:r + } + + def Shader "emissive_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_emissive.png@ + float4 inputs:scale = (1000, 1000, 1000, 1) + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + } +} \ No newline at end of file diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta b/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta new file mode 100644 index 000000000..80fde175a --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7df73e3eb8d6696408938e54bb9af792 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda b/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda new file mode 100644 index 000000000..735c9f1fd --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda @@ -0,0 +1,127 @@ +#usda 1.0 +( +""" +USDA 1.0 file created for Unity USD Import test +""" + defaultPrim = "RootPrim" + metersPerUnit = 1 + upAxis = "Y" +) + +def Xform "RootPrim" +{ + def Mesh "TexturedTransparent_Cutout" + { + int[] faceVertexCounts = [4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] + rel material:binding = + normal3f[] normals = [(-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] + point3f[] points = [(0, 1, -2), (0, 1, -1), (0, 2, -1), (0, 2, -2), (1, 1, -2), (0, 1, -2), (0, 2, -2), (1, 2, -2), (1, 1, -1), (1, 1, -2), (1, 2, -2), (1, 2, -1), (0, 2, -1), (1, 2, -1), (1, 2, -2), (0, 2, -2), (0, 1, -1), (1, 1, -1), (1, 2, -1), (0, 2, -1)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1), (0, 0), (1, 0), (1, 1), (0, 1)] ( + interpolation = "vertex" + ) + } +} + +def Scope "Material" ( + kind = "model" +) +{ + def Material "TexturedTransparent_Cutout" + { + token outputs:displacement.connect = + token outputs:surface.connect = + + def Shader "PreviewSurface" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0.54902, 0.741176, 0.341176) + color3f inputs:diffuseColor.connect = + float inputs:metallic.connect = + color3f inputs:emissiveColor.connect = + normal3f inputs:normal.connect = + float inputs:opacity.connect = + float inputs:opacityThreshold = 1 + float inputs:roughness.connect = + int inputs:useSpecularWorkflow = 0 + token outputs:out + token outputs:surface + } + + def Shader "uv_reader" + { + uniform token info:id = "UsdPrimvarReader_float2" + float2 inputs:fallback = (0, 0) + token inputs:varname = "st" + float2 outputs:result + } + + def Shader "roughness_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_rough.png@ + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float outputs:r + } + + def Shader "normal_texture" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:bias = (-1, 1, -1, -1) + asset inputs:file = @./Textures/textured_normal.png@ + float4 inputs:scale = (2, -2, 2, 2) + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "main_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured.png@ + token inputs:sourceColorSpace = "sRGB" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + color3f outputs:rgb + } + + def Shader "diffuse_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_transparent.png@ + token inputs:sourceColorSpace = "sRGB" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float outputs:a + } + + def Shader "metallic_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_metallic.png@ + token inputs:sourceColorSpace = "raw" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float outputs:r + } + + def Shader "emissive_texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @./Textures/textured_emissive.png@ + float4 inputs:scale = (1000, 1000, 1000, 1) + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + } +} \ No newline at end of file diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta b/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta new file mode 100644 index 000000000..cbdc0e42e --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 59eedccadbb71c943819e1ef8ed94343 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures.meta b/package/com.unity.formats.usd/Tests/TestAsset/Textures.meta new file mode 100644 index 000000000..537ca266b --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 828ae70a2fa43244abd2311cdb824892 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png new file mode 100644 index 0000000000000000000000000000000000000000..758a507304fd01967a3bc5b2390c885bce1a3e00 GIT binary patch literal 1701 zcmeAS@N?(olHy`uVBq!ia0y~yV7v;%4>_2CBHIl%O9Ls!;vjb?hIQv;UIIBR>5jgR z3=A9lx&I`x0{NT;9+AZi43gJCm{H>5skaOaY*wBwjv*CsZ?6~%GAQsc7`BwGsZXys zz`Fm5o>b909ftou#TPt`Z)mG$l={b-@ne)T8U~~3U^Fj`mIoueOw>4Icds&nO{CUD R8(6h4c)I$ztaD0e0sw&;^ql|z literal 0 HcmV?d00001 diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta new file mode 100644 index 000000000..a2076f434 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 74b45cc8b7d2b4342a9240c85157a263 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png new file mode 100644 index 0000000000000000000000000000000000000000..60fd08432eac7049e738a22822350c4fd7ce8a87 GIT binary patch literal 2007 zcmeAS@N?(olHy`uVBq!ia0y~yV7v;%4>{O?A{Id^K0u1GILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-IM`SSrgXA?3W|X*i>Ma8Udyc1zV@O5Z+pC6*4F&=S4zT}E(pqIL zlyK0|_@3^>39oOymSuQw{O?A{Id^K0u1GILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-IM`SSrgXA?3W|X*i>Ma8Ud#0z0V@O5Z+pC6*2Ml-)Y{>Z&$r|y! z$FbI{U-8GyyT%L$wtm-VC^#9ysF1XZLBKGSp<{*?gNu(SgVHiC2Eky~hK`j?4o60% uM}uWFIgDn5(b8eGR2;1hFe}L;XV_h9*tzu0YW#pTF@vY8pUXO@geCwKa|p-) literal 0 HcmV?d00001 diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta new file mode 100644 index 000000000..d2a7aa939 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9153beade46e11c4d926a26810ae6258 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..8399a6c182000f733fc83ab4931ccd5e9b81a512 GIT binary patch literal 16999 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

Jt5O3&;3Z>Fznam&kp7 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 QA^-pY07*qoM6N<$f}%J}rT_o{ literal 0 HcmV?d00001 diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta new file mode 100644 index 000000000..e0b4353fd --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e4b326b2ef7d1f942ab965440bb82a76 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ed2b6eda22f700a71237576c66501a76d930ba GIT binary patch literal 80381 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 z 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 literal 0 HcmV?d00001 diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta new file mode 100644 index 000000000..664a7d29e --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e8d477a0638817d42bc5bb9c28ec53c9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: From e8b19698d5347760c0452bd3ba3a9ee675a68af9 Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Thu, 22 Dec 2022 11:26:23 -0500 Subject: [PATCH 02/10] Change test case name to be more fitting --- .../com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs index 4e616a0f0..9a0935ff8 100644 --- a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs @@ -135,7 +135,7 @@ public void ImportAsGameObjects_TextureDataImported(string fileName) [Ignore("[USDU-275] | [USDU-230] | [FTV-202]")] [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture")] - public void ExportGameObject_TextureData_UsdaToUsdz(string fileName) + public void ImportAsGameObject_TextureDataImported_FromUsdz(string fileName) { var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); var usdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: From 55da8cfc7e53523fc4bdfeca665e73c0cc7fee5e Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Thu, 22 Dec 2022 11:55:41 -0500 Subject: [PATCH 03/10] Adds missing .meta file --- package/com.unity.formats.usd/Tests/TestAsset.meta | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 package/com.unity.formats.usd/Tests/TestAsset.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset.meta b/package/com.unity.formats.usd/Tests/TestAsset.meta new file mode 100644 index 000000000..67777c4ef --- /dev/null +++ b/package/com.unity.formats.usd/Tests/TestAsset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0603965c43a02e4484138ace306f7f0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 535e57bb30f9a939ab5ec7c991fedda6f72c7f00 Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Tue, 3 Jan 2023 09:29:28 -0500 Subject: [PATCH 04/10] Changes usage of UnityEngine.Windows.Directory to System.IO.Directory --- package/com.unity.formats.usd/Tests/Common/BaseFixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs index be2a024f6..9653308d8 100644 --- a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs +++ b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs @@ -125,7 +125,7 @@ public void CleanupTestArtifacts() { if (Directory.Exists(ArtifactsDirectoryFullPath)) { - UnityEngine.Windows.Directory.Delete(ArtifactsDirectoryFullPath); + Directory.Delete(ArtifactsDirectoryFullPath, true); } if (File.Exists(ArtifactsDirectoryFullPath.TrimEnd('/') + ".meta")) From 3bb557a0339c9510e8b74ed29f7e6b48499501bf Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Tue, 3 Jan 2023 10:36:57 -0500 Subject: [PATCH 05/10] Removes usage of editor specific api calls and adds a define if when necessary --- .../Tests/Common/BaseFixture.cs | 19 +++++++++++++------ .../Common/CustomAsserts/ImportAssert.cs | 8 ++++---- .../Tests/Editor/ImportHelpersTests.cs | 5 +++-- .../Tests/Runtime/ImportHelpersTests.cs | 4 ++-- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs index 9653308d8..93ecbf053 100644 --- a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs +++ b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs @@ -128,21 +128,28 @@ public void CleanupTestArtifacts() Directory.Delete(ArtifactsDirectoryFullPath, true); } - if (File.Exists(ArtifactsDirectoryFullPath.TrimEnd('/') + ".meta")) - { - File.Delete(ArtifactsDirectoryFullPath.TrimEnd('/') + ".meta"); - } + DeleteMetaFile(ArtifactsDirectoryFullPath); +#if UNITY_EDITOR // TODO: If materialImportMode = MaterialImportMode.ImportPreviewSurface, it creates all the texture2d files on the root assets // Figure out if the texture2ds can be set into a different location - such as our artifacts directory foreach (var textureArtifactGUID in AssetDatabase.FindAssets("t:texture2D", new string[] { "Assets" })) { - File.Delete(Path.GetFullPath(AssetDatabase.GUIDToAssetPath(textureArtifactGUID))); + var textureFilePath = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(textureArtifactGUID)); + File.Delete(textureFilePath); + DeleteMetaFile(textureFilePath); } -#if UNITY_EDITOR AssetDatabase.Refresh(); #endif } + + private void DeleteMetaFile(string fullPath) + { + if (File.Exists(fullPath.TrimEnd('/') + ".meta")) + { + File.Delete(fullPath.TrimEnd('/') + ".meta"); + } + } } } diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs index 39e284882..9f7729dba 100644 --- a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs @@ -56,7 +56,7 @@ public static void IsValidImport(Object[] usdAsObjects, int expectedGameObjectCo } } - public static void IsTextureDataSaved(GameObject usdObject, string fileName) + public static void IsTextureDataSaved(GameObject usdObject, string fileName, bool isPrefab) { var materials = usdObject.transform.Find(TestAssetData.ImportGameObjectName.Material); var rootPrim = usdObject.transform.Find(TestAssetData.ImportGameObjectName.RootPrim); @@ -73,13 +73,13 @@ public static void IsTextureDataSaved(GameObject usdObject, string fileName) var renderer = rootPrim.Find(fileName).GetComponent(); Material[] allMaterials; - if (UnityEditor.PrefabUtility.GetPrefabAssetType(usdObject) == UnityEditor.PrefabAssetType.NotAPrefab) + if (isPrefab) { - allMaterials = renderer.materials; + allMaterials = renderer.sharedMaterials; } else { - allMaterials = renderer.sharedMaterials; + allMaterials = renderer.materials; } foreach (var material in allMaterials) diff --git a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs index 84162b8fb..62736c6ad 100644 --- a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs @@ -2,6 +2,7 @@ using NUnit.Framework; using UnityEditor; using UnityEngine; +using UnityEngine.TestTools; namespace Unity.Formats.USD.Tests { @@ -73,7 +74,7 @@ public void ImportAsTimelineClipTest_ContentOk() } [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] - [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture"), Ignore("[USDU-232] Test On HDRP")] + [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture")] public void ImportAsPrefab_TextureDataImported(string fileName) { var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); @@ -91,7 +92,7 @@ public void ImportAsPrefab_TextureDataImported(string fileName) Assert.IsTrue(File.Exists(assetPath)); var prefabGameObject = (GameObject)Resources.Load(Path.GetFileNameWithoutExtension(assetPath), typeof(GameObject)); - ImportAssert.IsTextureDataSaved(prefabGameObject, fileName); + ImportAssert.IsTextureDataSaved(prefabGameObject, fileName, isPrefab: true); } } } diff --git a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs index 9a0935ff8..65c843e2a 100644 --- a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs @@ -129,7 +129,7 @@ public void ImportAsGameObjects_TextureDataImported(string fileName) } ); - ImportAssert.IsTextureDataSaved(usdObject, fileName); + ImportAssert.IsTextureDataSaved(usdObject, fileName, isPrefab: false); } [Ignore("[USDU-275] | [USDU-230] | [FTV-202]")] @@ -157,7 +157,7 @@ public void ImportAsGameObject_TextureDataImported_FromUsdz(string fileName) ); // [USDU-275] | [FTV-202] | [USDU-230] - ImportAssert.IsTextureDataSaved(usdzObject.transform.GetChild(0).gameObject, fileName); + ImportAssert.IsTextureDataSaved(usdzObject.transform.GetChild(0).gameObject, fileName, isPrefab: false); } } } From 97d7f7c8422ae541460662c37e880a076321fa4d Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Tue, 3 Jan 2023 11:01:47 -0500 Subject: [PATCH 06/10] Adds ignore tag to HDRP required test case --- .../com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs index 62736c6ad..3d8aaafeb 100644 --- a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs @@ -74,7 +74,7 @@ public void ImportAsTimelineClipTest_ContentOk() } [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] - [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture")] + [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture"), Ignore("[USDU-232] Test On HDRP")] public void ImportAsPrefab_TextureDataImported(string fileName) { var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); From 0eff0540b8d8c601bcae570ec0e48e7645d6a132 Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Wed, 4 Jan 2023 11:37:49 -0500 Subject: [PATCH 07/10] Moves test files to a folder that better matches existing data structure --- .../Tests/Common/BaseFixture.cs | 2 +- .../com.unity.formats.usd/Tests/Common/Data.meta | 8 ++++++++ .../Tests/Common/Data/UsdImportTests.meta | 8 ++++++++ .../Data/UsdImportTests}/TexturedOpaque.usda | 0 .../Data/UsdImportTests}/TexturedOpaque.usda.meta | 0 .../UsdImportTests}/TexturedTransparent_Cutout.usda | 0 .../TexturedTransparent_Cutout.usda.meta | 0 .../Data/UsdImportTests}/Textures.meta | 0 .../Data/UsdImportTests}/Textures/textured.png | Bin .../Data/UsdImportTests}/Textures/textured.png.meta | 0 .../UsdImportTests}/Textures/textured_emissive.png | Bin .../Textures/textured_emissive.png.meta | 0 .../UsdImportTests}/Textures/textured_metallic.png | Bin .../Textures/textured_metallic.png.meta | 0 .../UsdImportTests}/Textures/textured_normal.png | Bin .../Textures/textured_normal.png.meta | 0 .../UsdImportTests}/Textures/textured_rough.png | Bin .../Textures/textured_rough.png.meta | 0 .../Textures/textured_transparent.png | Bin .../Textures/textured_transparent.png.meta | 0 .../Tests/Common/TestAssetData.cs | 2 +- 21 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 package/com.unity.formats.usd/Tests/Common/Data.meta create mode 100644 package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests.meta rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/TexturedOpaque.usda (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/TexturedOpaque.usda.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/TexturedTransparent_Cutout.usda (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/TexturedTransparent_Cutout.usda.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured.png.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_emissive.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_emissive.png.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_metallic.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_metallic.png.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_normal.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_normal.png.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_rough.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_rough.png.meta (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_transparent.png (100%) rename package/com.unity.formats.usd/Tests/{TestAsset => Common/Data/UsdImportTests}/Textures/textured_transparent.png.meta (100%) diff --git a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs index 93ecbf053..1f5278d59 100644 --- a/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs +++ b/package/com.unity.formats.usd/Tests/Common/BaseFixture.cs @@ -30,7 +30,7 @@ public abstract class BaseFixture protected string ArtifactsDirectoryFullPath => Path.Combine(Application.dataPath, ArtifactsDirectoryName); protected string ArtifactsDirectoryRelativePath => Path.Combine("Assets", ArtifactsDirectoryName); protected string TestAssetDirectoryName => TestAssetData.Directory.FolderName; - protected string TestUsdAssetDirectoryRelativePath => Path.Combine("Packages", "com.unity.formats.usd", "Tests", TestAssetDirectoryName); + protected string TestUsdAssetDirectoryRelativePath => Path.Combine("Packages", "com.unity.formats.usd", "Tests", "Common", "Data", TestAssetDirectoryName); public string GetUnityScenePath(string sceneName = null) { diff --git a/package/com.unity.formats.usd/Tests/Common/Data.meta b/package/com.unity.formats.usd/Tests/Common/Data.meta new file mode 100644 index 000000000..41b4c34b2 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9d7c234df8298f418594609b48efdd2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests.meta new file mode 100644 index 000000000..8a26086f2 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cd8f06b7409ad04caa57fbc6e542f57 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedOpaque.usda similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedOpaque.usda diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedOpaque.usda.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/TexturedOpaque.usda.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedOpaque.usda.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedTransparent_Cutout.usda similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedTransparent_Cutout.usda diff --git a/package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedTransparent_Cutout.usda.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/TexturedTransparent_Cutout.usda.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/TexturedTransparent_Cutout.usda.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_emissive.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_metallic.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_metallic.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_metallic.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_metallic.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_metallic.png.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_normal.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_rough.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png.meta diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png diff --git a/package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png.meta similarity index 100% rename from package/com.unity.formats.usd/Tests/TestAsset/Textures/textured_transparent.png.meta rename to package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png.meta diff --git a/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs index b924da35a..59739b2c0 100644 --- a/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs +++ b/package/com.unity.formats.usd/Tests/Common/TestAssetData.cs @@ -4,7 +4,7 @@ public static class TestAssetData { public struct Directory { - public const string FolderName = "TestAsset"; + public const string FolderName = "UsdImportTests"; } public struct FileName { From 1e3b0daa596ccc4cc1080e61a535048c0946f475 Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Mon, 9 Jan 2023 14:44:39 -0500 Subject: [PATCH 08/10] Implementing review suggestions: reverted changes to ImportHelper.cs script and reducing the sizes of test textures --- .../Runtime/Scripts/IO/Scene/ImportHelpers.cs | 19 ++++++---------- .../Runtime/Unity.Formats.USD.Runtime.api | 3 --- .../Textures/textured_normal.png | Bin 16999 -> 1899 bytes .../Textures/textured_rough.png | Bin 80381 -> 2845 bytes .../Textures/textured_transparent.png | Bin 51232 -> 6134 bytes .../Tests/Editor/ImportHelpersTests.cs | 21 ++---------------- .../Tests/TestAsset.meta | 8 ------- 7 files changed, 9 insertions(+), 42 deletions(-) delete mode 100644 package/com.unity.formats.usd/Tests/TestAsset.meta diff --git a/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs b/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs index 9d35aafc2..ab02d6960 100644 --- a/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs +++ b/package/com.unity.formats.usd/Runtime/Scripts/IO/Scene/ImportHelpers.cs @@ -59,7 +59,7 @@ public static GameObject ImportSceneAsGameObject(Scene scene, GameObject parent } #if UNITY_EDITOR - public static string ImportAsPrefab(Scene scene, SceneImportOptions importOptions, string prefabPath = null) + public static string ImportAsPrefab(Scene scene, string prefabPath = null) { string path = scene.FilePath; @@ -68,6 +68,10 @@ public static string ImportAsPrefab(Scene scene, SceneImportOptions importOption // the time will be ignored and values will resolve to default time automatically). scene.Time = 1.0; + var importOptions = new SceneImportOptions(); + importOptions.projectAssetPath = GetSelectedAssetPath(); + importOptions.usdRootPath = GetDefaultRoot(scene); + if (string.IsNullOrEmpty(prefabPath)) { prefabPath = GetPrefabPath(path, importOptions.projectAssetPath); @@ -88,15 +92,6 @@ public static string ImportAsPrefab(Scene scene, SceneImportOptions importOption } } - public static string ImportAsPrefab(Scene scene, string prefabPath = null) - { - var importOptions = new SceneImportOptions(); - importOptions.projectAssetPath = GetSelectedAssetPath(); - importOptions.usdRootPath = GetDefaultRoot(scene); - - return ImportAsPrefab(scene, importOptions, prefabPath); - } - public static string ImportAsTimelineClip(Scene scene, string prefabPath = null) { string path = scene.FilePath; @@ -130,7 +125,7 @@ public static string ImportAsTimelineClip(Scene scene, string prefabPath = null) ///

/// Returns the selected object path or "Assets/" if no object is selected. /// - public static string GetSelectedAssetPath() + static string GetSelectedAssetPath() { Object[] selectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.Assets); foreach (Object obj in selectedAsset) @@ -175,7 +170,7 @@ public static Scene InitForOpen(string path = "", UsdStage.InitialLoadSet loadSe return Scene.Open(stage); } - public static pxr.SdfPath GetDefaultRoot(Scene scene) + static pxr.SdfPath GetDefaultRoot(Scene scene) { // We can't safely assume the default prim is the model root, because Alembic files will // always have a default prim set arbitrarily. diff --git a/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api b/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api index 145506379..1628b8e7d 100644 --- a/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api +++ b/package/com.unity.formats.usd/Runtime/Unity.Formats.USD.Runtime.api @@ -136,10 +136,7 @@ namespace Unity.Formats.USD public static class ImportHelpers { - public static pxr.SdfPath GetDefaultRoot(USD.NET.Scene scene); - public static string GetSelectedAssetPath(); public static string ImportAsPrefab(USD.NET.Scene scene, string prefabPath = default(string)); - public static string ImportAsPrefab(USD.NET.Scene scene, Unity.Formats.USD.SceneImportOptions importOptions, string prefabPath = default(string)); public static string ImportAsTimelineClip(USD.NET.Scene scene, string prefabPath = default(string)); public static UnityEngine.GameObject ImportSceneAsGameObject(USD.NET.Scene scene, UnityEngine.GameObject parent = default(UnityEngine.GameObject), Unity.Formats.USD.SceneImportOptions importOptions = default(Unity.Formats.USD.SceneImportOptions)); public static USD.NET.Scene InitForOpen(string path = , pxr.UsdStage.InitialLoadSet loadSet = 1); diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png index 8399a6c182000f733fc83ab4931ccd5e9b81a512..010283b6bddd93b40baeb84acab21a0ea7bbf468 100644 GIT binary patch literal 1899 zcmV-x2bB1UP)j{00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGt)&Kw*)&UsN%IyFE2LMS#K~!i%?V5p- z+cpeDWjW3CtDDcxbna{yOYK|npg12;W+xkwAOO+;NJ;kHe*E)#ZH4Dk|8Lvtc3k)U zxNc)~+bpKL-7G-<>FeFs-2+b>?9Gp-+dkbuKhwH@tnRb}FDtUnKK}6ajzbGRyioaP zXi4nKjClKYP>~cBaiTt;(Ef%u`4BC_Z~Q3C@>_$V5-u`t{FILPs!WL}Vt2375}7ZK zfctx8SbY9_@blv!^LRPyV&5x@;@Hf}lADA^dz<|&B;tmWBRZfbEJ!6)_lsZirK}e5 z`zU83diSb|LA8rcY{uii<{A|x9ra;-HgW&!;EWnx7dw$BHHwC)(|_CnENAcPR2J*s zU@|9}1i*HXak(6BZHHenM@5iP>|pfdQ`Fq@Q~P_cs%D%O26m6q5y9~9_LA6>YMr>n z3g#dYBgMV{C?ye5fCDobGTGDB9E`miWFBCbN+Gk#qWX0a>7x&xr7NOH<&G*I8jE7r zlb86^JyCn6gyPvakjx`Dkze+%Y>Gr$!52YJVH15^M*t1RvBNJF1F013vwlPEwKGp7 z9iU{8y#tXyOGyMJI_w>BkSr*xMQ_RNUbbRCmCpryCC%8I{Rxu!UOKmm^gFma2)`I! z2Yc@4hN3JIIra*Pk*e6o$pBDPMKXi~&IIn`AepT8q<-#Q4=^8Ko_pztA3qObhd(&a zJ59eHcJ?HpPGkucaGx`Pelm`IwFfO?yzlWmnVIN={%js-F8RYwa~11GHJG=)vK0eQ zz~_~lwKJa^Wshie#cB?6zXpu+KF*$vo@uwy&l8sgeGeM435gY_kFok2KQCo(s*7VGncnE!_!2M(>?cR`^|Xi zie0}W>och=L{whZU(`C5#R$d-Bq8cFsE|s^;J3dI<`nf_bzpNgkUC$YPX#bfufXha zt0dzHjMhE<7^w(@@$npB*^<~Vp=%)GMC^M#J&F3YQ*^?!SBW%kVNU;27J1ThqNA8f zatW2mQ88vFghur6p|)h@e5U3S|LpnfCEyT7?hx{1mtQ-b86u57&(z4Vry_232N3%^ z0gOLq3cFpIQYDm)h<)_ST;b>#_Vs6BYKsl1EQ>Sq)fsdq$S|jMH3vE6Lq%P*UEapzqu3Gu zZ^l^&>+10E3Hg})xF7!*n6uxtGwp)$y_p6`&lIN5{Zc%(QKd+^4wr@ddE>G5xAciAtQw2rt ze&%hM<%?(D5hrp)h71D6iFo#|fj)9bLb2V3ldppgy#VC^TeiX&EqD|3ph%3luYEWz5}IYW)|=jh~-*58-^8l z62zZW)La(%@O=+~$g4f5C>E1x=@ffr0pGxAB9Y4ATi-|Nic|uAgVG(9rZvbv7>g-- zKAt1!`;zY%^LAS8;YaeiEQ>vRp+$^L=1h14DkBx5EGfGhlLDEmi%1EOVKNbYEAoy& zMF0<9Dv5df-hPXk?03Wedt838nfHW9=JVudM8%QLcw>JH%ouP#_I8|aWS9s@CSA|V l`jkbHis@$%dckYk{sZmK7VHRBAcOz_002ovPDHLkV1kHTqQw9J literal 16999 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

Jt5O3&;3Z>Fznam&kp7 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 QA^-pY07*qoM6N<$f}%J}rT_o{ diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png index e2ed2b6eda22f700a71237576c66501a76d930ba..3040ae025067e0f330891f1e654463061d90de5e 100644 GIT binary patch literal 2845 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 literal 80381 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 z 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%0DpxrupzQ&LK;HuFp)| zJOAi(=({mNDZEKi^c%eczR|6{|SvlOdS>!bxTIk_X`U=J_w3Gp^Fk zL)$#|?*$|VL40uzLjO2EK0MinUT+gy8J|ONg(z=&uylqH+$ULb=)(WFX0eps{PfK= z|NB?i+;>U}sJ4ouKle7^>fUM0svmH7Z}jrSmihft)ORnB{BpU-{V^$Hv1~2}EKg>- zjUdzGQ`UmV@g=yp=)%wWBrQ~{3sMjlZhWhqzHh;;k@tpw_6=%{hop3_}6-|)V>YpRHj-3?~eTRao5~?h66cc2UXoygy8DlGtjOqut@E^ zGQMSQ|2eV&cZ&Txhwb$2qz~WCkuvV~vn{;=Ro^E&RiD_!<}~@f14?1TspaIiBR@Hc z&E2QvnXIBlf92cb&Aq3zO?V8(>}*WjGxz0b1IBhbGhKbQoEy^T%Qp>Xynk#U2}(~z zt=}o5&&$><+8oji3oS!!d@*!>GXepverMywiL9~vlvIgq)r`J&!cU0oISsbD$Th*y zD-)Y;J~ExCG%HkUqB2)`^P$W(gb1=2A%yDEU7Y$3kK~{P!|On4ZsXD+eUp^cLRolw zx!VU55G#hCrQ}Pb z7wYx$NYqp4wA#bxmG5kP?~Bi;YSp3`6JLujsrTQBgDV46Ooi{XR{nhvknWx%Js0K=$n=HW zh1Blt4KGc!8@01id2D^c)UO=nf{32o^DpSCw?zUj9bY&9C;v6*HvW#nC9e5<|6A6G z=x?I(T44DzXp`?v9PVGO4z z%0cZ!5<=5e>Iw?`-%fRfVTGI5gRisb8A#eSrt30n-n?1WXLi{n3RA zZhTiOlMyH+Mxk>{%ZAjnJ2qhP>(iaRdlBz_vP>#O)blEHr`*otaJ{3gH2w0<$i-vr zX8kOmAzfGxpKE@L0Z?x|IB8myk4V&$(aRHS=l=MG0o?dov8GZOEd${0ji4kccN~xJ;*2l3N1Tc4wSyW?nh(!n*{rsQ)u#&BLKduS>p#X%zsW@EC4U%MR#UjVb*1o$S!rYH$5LOz-VrkI`@2tOg z)HZfbN+g&KVeMB>NKLT0?-^rdz{u>nGXClJ{`_AJB<;|ojN4Gn|R5jh)j}4?yP?EInOb zFcC?SVjUlV-{;9sc}XkJB1^d+@5z#o7h1w-EzOJsMGcRKwjKQ?y53xWejI1&laQp8 z92vLc|DI+EaLqku4W^3>K&|=hZMVm!dgp&*E8U%$bx&$YD?I?vi&-)DkJTmsAbEYC zt1A5Sl_%4Rd&;!ywY3+Hx<-A9`vM9@1xNz0v1=MI`6xrDtM#kLcuue|03Daa%9
Ss`=prAd7wO73x zZ0w!XN-t1z)YN9jx6O^6fS3oTEYuCIIXN!QqQl4=DOvIJ_ciWjhr-MJC0HxF-{ z8=DLgkXzDR3OaMTJT@RBZE<9hmx)tB1_Z(Abc$3v3TZT5jo0Kn=jH7;of*IXtA z`5rz>B^4MxKVh3Y&uY*vQzw7R6|Q zkvS5nLh+#eYkItnKWN8rMGceAoN|~Sq8l~rVx{WCS*%xuvVrMf1Kt{b@wjX5IZfAm zycZBRh_ibqwM##y9LdxhN4Cx%;*>Fdg&BZ;emc$@WRyirq}&tAQjK)iPlhQuu!*KT zc!t<#Z(Pj*tLZ`!+j$=VQJycA9;d8c9wgg}qz1ZOO>xynJjm?mwotGA3HKF90^H2# z8Fqu<22|};DT-1Y07!TC7=Yv3<_{+vKnSM5I_~y5AO$splrwY}5ujCR!SB~{oyuf1 z00^mFbGxEee?X!gyTsTHhDeapVH%ZHt%|DuLOMh4>aJ;MS3cx>V7o3oMORP!wYAK# z1yba2=r#tKpoA`L@kj{Jl{&e=MR(ZfHmU-fD%5Shddc}1#mHDe3O#v@lBUntsM9U5 zQ~@Rm^%9~ptW8wTmn#4nxn=G{E4oUj=skG>x}|FQCLCYwWc!oQ%`tKlvL46N9Q{yD zOablh5@*$dogJN)%bFjLs0U{LfjdJuyYt_`4%|YgT(}4+BfB0$W=yz5>SveP8_|Sx zTs#k9Dwk0B&PSO2qz_J z&~1qcTAB80x>KobvIuDSKBVj)7O{qBgzlTAD>Dbty}f>Q~mO1CTEstc@EJVVTP zB{g3HLq#f*IanS9lT{IH!YGi9Xsw?2x6j(#!1V{GcBevUE6^H}c2$90tyHF*OWR{_rE(|+TwImyGdTEW`eB+Do)dTywl5&-r_pH~QZI{M{--R-V^n>GGhp*muHox$eDb=o2mGA(;pYisSr@-gb7fup z$>&paCXb&#t4EP{@fdjM0{Riph@1b;bz54~_<5lN3A=O#zbVxN)AWcT_gU7T>g@YI ze@|!O@9E3|pF~F}@To+yL`gW1|&5?MCBHpH5= zX-qmZlS7INhCo*rU%_SLE=E1+R*a3dfhZQ z845`V@>v>pI2;59QK)t@UyPc;TPRJ(X&CZE6M*5CU7w7C`BjpR( zY=9Az!E^Yo?KswOs+2pB1tdzuj^a7S_Y9sDQn`jB?hwoG(Mdr?I#0SzoJ}6JGXMo=citU4t}7 z#+}bUoi7-bwTubRb@5ZCd6~$(Mw$Gn{>cDk+DdN7`dWfc+^Bn+Ft1a%Ht~8b`MbsC zIxy0AX&5Oiq=B?d$vNJS$MPCe=%`pi`prD)WMK&;ejyK8Cd)+3v`AVIc#I(MlIRjh zX&sqfa(r^Z)Qn?7muuJ0YQallr2XnM^K*Gtne6o%wYU;N<-4?ZYFuibBy!8-q*!GG z(^aQMEfi@`l03;MB+=6t=Gt@)BA+UWE^A7+tgY^atU3MOY&MzHOxE0IPG>TpkotPY zr#dy~>CNj;yq2LQ!%A|$7IMO=HjZ>2$(OqSsSZ9{+PlS%+VCYeQ!P_KaX?~W791`K zv(nIPG(epVAfCYYRdT13DV_v44149i{jo2?xcw%$Za}98?;qd{c6Or>kn2!@#`lW% zHS^Y-h74z4sdn<_i^kWDce0K$3V5a{uQ;k`K)&* z+rJOj4}M3DoA2_XAs@VT`Q>qY^|PuQK0@Q(gWHQQ&CFnT_0!56-ce?F9nY>lLf>i5 zEurY^QR@0GeeQms9K9GfUx)qf&)HrGB&V!7Sfqp9{oof+yN7f(Qa(L6Y~Mu(R-N7a ze`@T$OKblK&A6udm+G+l7IX(UvOWl-I7ibgOXJSy`(1qVJHO^3x}~4v=38L9$1v`` zf6#{=)$x?ic_2MwEu2>G31@;QgOdj?Qv(@e~LL zwb_3fH@6CI9)3W$d`n&5`J;%MCS3m?)!C0S)^L0Gzp2sOs&3rTHnbltjxvjeS0d28WjGw2M?Q!?w7pdNltFeDZn_p9HkLj$> z=<^5cOVr;TnBg34cT02|Y0qcCgkpa5hdZ#@-zR)oQRErjo+v~FrhWo!7(6`e9`PA9 zmBLt3o&Sj13+np*Uj{l6E<^W-#&fx}|K^5T=BSrnOCkxBj@RbqGt|y|RLcv(=Q#}h z_oy`+eC@q|L1$sk(r^-3zgO53*Sdp$rr-P6|4_FVe>QL(W;{b{Zuk?l?JPe#zx*XS z^ELJL577+waZ5ee-hM&>wVjScy`}v$Q?i4@=F4i>eHFALr>9Nm{45G*oYx{3JCd<#8u;OenyR;T}Rd5+$VCp@QobKpLpE)8SR3@mPij0WM+K8J^PgW z^`T!L1C+bvS_rLJPKY6L4Q;o`VlT&m?*XtG(s>CTjPHP-8M-^d=CFH8*mOLOurr>p zOlI5NkibYe#1tkZtw&AkJRX~E9AaSbsCZTU$ zl^r*FaoPp)PpCdOC1@jBX*?EW3d^}{r?~((t&Qm~gybbw6A_1LcS>1eC<$j@9K;M4 zLG26_xik%+@3b%zI&SR+MdSvbX+dt7Fpw041uWBHwd6InF{RbJ!v$@32K)0zK?$^N zx4%OMwN;0+CoDE!b2Z!l4`)ejok&A5M#4lRWJT!^N1UkBCvarm(1!(eMSf?df zdC7UKZ6(XbVYQhi5mV3#Z!Z=GPJAE0Il$9UypTwsv1Bt?mjnh*$nBqm1`ge`%CQ$+nL zf^Vi^)NrwP;<89oh&rEW9l?-FSZ?@8fr>&juma`D@1Vyuf$}B36Qk9$4QXe1tF5k z%i<`BZGYuwAG*iNbT^b@7k<809a?i6nB?bknv>XFM<6gCF{V4HfiTo$3bYn_0dV9( zVk(vypG*>y_)p*#2q7lq^isy~Ynvn!=S;$nOSoW5!AMc`%n}Agh6d(BVpimr$RSAS znUC3AKC#Shy9)F)CdDDK}7GyuxPX$ zh^oTu)L1rP39I}LmIDZuJXFkyF&NdGdKH|VmE|HF5b=`RWNm~lPYFd4K<0u8u%OP# z)Ul>|hn@68lH~l62Qb<6flYJD8Yg-}$a<)PfiFFC7?4$w**BxNoTziyl ze;tI*euo{BK`5|fN@NT~X8IgFH_?nrA9j=3@LD>qiL$S2RFDmex?8b{xr>KZ)j8>n zy-4i%!2!!Qu65o_^eU|v5pv;n;XGlr@Gsbk++nJVlRxe0%-&A`dq2Hq&9nA9{xS@M zf4JRl)#%TGOQ`~rND>KjB18c)w>BKlPoW-?ce|M~{;#LiNbs^#~P>2_FVTRZ*2@6xd)Pf11 zU|;YzCJqTcF)@;gJIA-Jcu^%`D#4L|0mqdN^K$i=*UiH@Enx~ajh*hsb2=YQ2OD2= zfRHI{g9&&qq&g$+=r*_E%ydKYNl!f}M6uHTQv)L%I8r;$b8fOx2z4dkJt0WIEcjHi zpJyGqiDQ8pJSI^fXxvRZW2=u9_zag0rivnr2}iArd(GEIw<9rXB3H*h_)9Vp)eRpZ z7kFGYR307Uxg}=uz{%;UbT4>MdYa^zue=3JtiduRK7`BG!CJ7lT`bs0&`X7qha_@)DQ}_> zf}}C~LP!cOd9!~FvR+yu7dNDU!X=_6hNH(I=r??_p;Ex$*grMKWD)RZCx7^BbD%#u zEE&?QA=H^@umZ1@5a_KR>S=ItSJpa+Q>EA%7ffyb5(4APVq%6&1deGg0yepvn+Ok~ z%k*n|^ALu!$7SVC6LHVfxVZ|@x*nPEWC=w0%fMQ$L?=YjMwF0&(vVpUk#~^t4%4Jy z|NI1mtFPji%vdzS&o$uvJ`j}ZvX!zH8ix}fry-Cc%H@|iOVV)(iE&HY^mGE_>nD8t zcc=FeAHNQn!?mB{U`(BHtVlvX20_r35bhe+pf+D@=4^FLX(-r)1hWy!%^^ZfXBl?S z$WlRin<_&C8h+n~ABxVh(8Ad<>_@Qf!FA8E5Oq5b{=VK<;76C#9?SrKl%LNlc9q=1dQ@&seYz;;$moD}X?IYxzdo)@{o zSU_+x?xpk7v5mG5X2>zZNb-1$HU)8gDE+G7XApBZyHql?FiTF%3Nevc$jC#60KJK;hx7JDL}IUkeC=h`av8v^oF9H#BQ*sp$7$rt?vtC z9%N#CePNeLWae<8?Dn$c3j?4<|4SI!feWQ!kaCIFUbU$q zjJhtiRE2dh4{1}>VkDmhCvC-y^Q!l=y(?x@LLKbfyJ86bP71<5eE#O|Ojd-VA{mki zjj*AE{e67!=%3TKoqqB9za^)6f@jx155xAa@UVLq@-e7(Gd`q5e4vKiH)xd|p1=58 z^z03|z4OQFu=}e}N&+q)+k| z;PbSqCGvcm_WYA6GJKqpCa*rNT=#^&Ur}#}RBl5dbLJCSbdFEp?&fDXwAEqr z6~gpuit0%!M{f}Rhj$4+BZ~AS^V^We^#qGgdpZ*R#*U1%qpd9Msr_#UBc9#}kN)xF>IyyA85Jo)?X{P~X(=N0Yy9k_h(pBNjwc>3$g_3x|OvoFQm@3@z= z#u>fed&D=lKk3b%2!*@L&(Y_O##zGUg1CGEhqLd({`^a7G*4*AH68ygwY~jmbNM6x zCb(&kb)iuI*U)n(y5HR<;j^YV_~8qm|2*;+zBZeU+JE(9zYRAJ{(?In<8CtSl1qLM z`|w-;vVZ%1WsJ!tk`1MrQ42YZm(S%h`MES+CR_bpK1*w)E07(Fck+9}Bz-T&#k_OW zqr4v`E5U4?anV`6#?%%#GGR?}q5O^;#ka(cKhv``rZ8~rm0Qe_XP4`E0tkF%Z=I`a zoQ_gsZmrF0rtb+qiDMcs_sl)YF6{E}WGr*egf%IJ^K<53>QVa6W4o^NHA&3UI>p%` znwY4OYp?NS-avzUY2R@iXSkl&`TzcFGQ=l@Lpp?aUeF8- z$21u$nJ}r?@_=#k_$~e8U;8btllSA#PLjtrYj^Vt`sTr3G9aNo7h5wIzu)8X;lI=R zgMT;-Lp;dn=LMIMAW5=e9>dSWvnlD(tEp`AG!H5>nW%#KEId7cr!vv?qQN9Uk~1ce zNwLUg1r3*Cdzot{KA4D(mC{;-k!F+xSBjjmcV-=znsajF|$k8F%c zYbpL{)DVqxh`mY(nZepH86n@bAqo~qlRu@~BH zZ)mM+ZX2C$*xA?rG@YG+KbU7fHR#KqV6qPS`6sp7J$Cx$EnbsB>D}FTdw1{M-roCa z0oej^`29gY|J1&F^h*xL^Ue6+f3a)dbl>|Gq{2FT{ysbScKpbH)@ZKjowoY+%)-qB zdfbE4FX+6NjD=Iqkm#vyXZGgVXQ@RN0QU~{p;No(s77OON7&KA8qXb#CA=;z9B8fa zj?=fV0d58d`yH);9iBhcZu5kGZwB-HV|0!mJ?IxZLucQPZ+^dX=O54sI_6&IF5Wlp z?0xFh+jNeLf%d2RXbP2s#0~r4e=~m#Za-i=Iy`%i`tqDgdyPTp+}*EH4L#Yw$bb>X zpWN8{Urthx7~XW>|3#|j)5M-P9gej3-S1K@-=evP-rjxJ2LQ1eVKBVrpr3t|={Lgl z>&D%ApO+wrUJxH1qP~60!uWt%hv51byfy7KQq7Nu%LDH>!tFWLeM>c8(iv|EK2|3E zwHd3DM;8*L%Km@e_(7WmG4-%eVdNsoF=Ui3uw(pgvAra z#=`y~jlbcW_a=^g%IU*{QD1$Oo>8fr_n*A=2Y=gZz9)^0=RPolSiNzg$Pt`$>r1vN z;F5vEZ~ew^U~*)3p~KhS`J%ph_=oh&@d7j)CHTpIRRqD_dG8;ef9k!D9}Wj~|M5@% zM-uMle0b;U1pbzqKn-w2*qb{<^UZen=r;+Z4GY^Fk0Rg zH6e}j7?eV;Q?0)0_gFc3@s9A|GbBS0P{$MsrKj_|Xuk9UrhKAP=&L&p9XYx4MKcbB zcSrY@iRh=2QGn}4GQK?-LeKr7`8nDsGr4Dm$9MMP8Ji6m+#T)CuE-p3iKN#<_w-GJ z=a&H)?!|T=iAP0g7o!LQcOsreG=Y$Gh;%xoCeHL^W<%&P)tl#MQ2Z3CyJPwB`b-t^ z&QHK_e)>YC<=)Y$m@BS3keKeF?|IJ{Z0I}1GULODS_%#pwe3lGTb@01&mL~Z*WRad z-gfrxQx-h)RjGbJIBXml1n*#I4dd?7drRRo5-*J<(eE>-(m6c0m}?-;2CK2{_ayHh z;Q3Fy|Iy$5O>3<>eD%lwz24vXdcYhef@s4%79{pn~=Ht8$xfr=8E$S{VDG6v%ZqMe1(%|7}uI_bs=aQS} z^z{Wzr{bvHZo4NZ>`Aycl;A_q3ZJFlQ3Bm)AlD;tYkU4esG=w_G%dJw9zbk@K*ac1 zXDRWeLraj0q+cT&9xNnv=$UR|vMTyh-brJCWJnB5eh%q*ATm>)yX_61iOz>~9<3D_2+(+O z1z?6wonP^Gy}I*4)SHQvn0f0QAbx<94T9M;&(qKO*A?6v0lsQO> zflLl@IITp`h3?T4Nbc8KAKM9zFP-wu!V{s1alxDt3EB$C! zP-?r{vLOx{y-E1>wCkU7OPnIZ^mN$WX5BEx{7sLYQRkPGo}CvLkcm*QxG#xEog*U% zYjUwp2wqT8r}IncT+{-&ja-2DdkHUL$iMR}#rzh+n{s4dGQrpjNVf`FcsgFPV$j{%94DGsOEuLP3i& zqh~ziqvJum#GtXIBR z_gx}!`gD5OksCgr63V**MU<BJ=1@V(zg@J~)>se*0!K*sAzXNp4^4531r&Ta zUoVPiYTI`_FB6d_?QW)&(1eHfl5n()j?qESTnPNUU`nZ~XsDZobH8hOF@#iwT%_+! z%doi~b~dQa)>s(lk6kv97)%s8ri1VzkB8_NJi@5$zE1I2qR3q+nz7!##X+zFl7F_b z_rJ`zd%X?Yzb+As36VGPTwn`B^85|g$U)8X`8I~afZZT3=o{)C9*QMZct0J%CEM_S zy&Lg-INaBY6C0}p_RY0KD-5Qf9TSVi9R#l8^KkQb2cs`IfFArhkyna8Rv72kF0G1Y z$4^&1gULB(OvTzw{{}BucqZ@ZP*_fh^+zm21OAsM&0nIo#q8f4(TwAa|q;r`y-2{aKWAPWf;AAU6%c z;$-vjETPvhnaq^c+HG=*yNgHKCw&Q)AM7|m;^p+{&Bj*?fo*}h7;c4~JHJ%H>18n( z`5X=w91AOb;EAB3XiTLsXz1~8Qvb^-hULC>>gR75FNcmg?ZU|D^z%Esi(??o#fZNc z8)DAE)Gj60XaGxlr}=A#TkyNEVGs(OAd5ht_4N~1QMw9Ins1D6h*kcOM7VHRuO2TN z{?S>S4&;L^d z1YHQpph+hVgjq9j1C1Nd<2E@`hi7B}-4Ld-)9NHH7w-%JyKSm3#6aN2q}GtJ^f3~d&A(s=k(__bRm9TbaVSQMfr~OYO;;Ujzdxj72#k& zJ-(La1Mc>qj7`wSx*1&SlQ#bLNuEzb9Gzk=Kc`~dH( zf>?QqD_}!4t|A+VrC-`3mKuFZ`M7ZA`5G`YGcR5^0$b?dG)$-|C!qgCjYrOallLr| z!dm)?en2r6XXIa6qbPA<3@r8pt1~bzqy)`erSIBvdbS!=VwF^?H-a_%PCR3nXJP+( z(kh^~Koa(mTFk>_=u=xs&y>5`&l9xP@`t~yd90is)Y#oFyHNy_7Njk%xFBN;J?K18 zI;IW(^JGMDu$FYS*Lmq_cdFD^E?f|JS}a8#tfW{nf@RLek$`qb@k zD1zKu`n>ie`sf?tkbW3ShSFFgX5$G-w`2-y?pff&b%Yv0_Mou_h&>7orFqNPW6@tJ z8sAqa5}tpzxR@s4a_VLuTMZ68Zj95}SVzeKR6o3#T8F-MSnb7wyn)jg*U_B8xp0&m z+CKH;4@7!NqW0+zwqGteg{Rw~>#ov*zP$KnDx5*!BH#oih&QNRh@cu1IMEam2^L9I ze~QxTGsw+Q5bcM)V1)#*KnSRUyeK|AAlv2E1~J5xLz(hTBqhm$G4ogIL->+RqtTFt zgSTrxVk8+?IMrlfu@4{xgi-ZU{826Z-9@Y*t|!ffYQTDruy!~xIBx<_B*q#RYsAGP z`1rzdXrpqu<$0EmUnqQD+ulcl1s~99K5LdoE3I|(3wm*O`EyE-y}xC)uyZ7n@r7U% z3VTlgckHfzELKpdFafB=4bl=Y5-&c9%Ew}iS`Z~35hIjI4i)&)rKN*r?qm@iY3S0` zaB`_vU;nXrxW=Zm5Pu{0Zuo0@%NRqB$NA-Ek2(FI#I7Z@V}`us4)eYRf#PwaXhH^4 zpXEMT^|`;L>+Adki*tD|a^k!16|JV_AsC}&OmIc(r(e;`mBH=f{Lq@GlehVkfS&AO z+Q_HB-5?nOzjdT#FMiU!5G(o@%61>{0qIOVdO}Qr5N`-_cR=ZXP-sS;7dEx$rTtCf zo|8Jes3as-&JHDea)Xx$g6oEWwKa?Fq3#r)Q&;0(rfUmkb!rkGUtDyU|4D^nDz?5_mM=TNv*ZTkkTQSWmFoRd9S0;#yH#Tp0sgOKYN0xlc zuA)kzB7hJlEGEWkH%gPQcgBTqIO%fw_Kna5w*1I@nDj8mos|Rwg}G5+4L{V{l?}a+< zyU;gmkxAFd`8Rk8SAtg~I~*fbU+$AkG89ii@hG*hH4cz8I4u#dgTH9LKw4taL81#!zVzMe{yIVDL$EqLNb>2AW8vEy;(MY28iwn$f z)$JPkj+70J(ei!xf}p*r=oM9SyTL7YU{MP=uV<-de3ev^1eiFdj$(AuCOBIvfbSw1 zP)x5dU>1mpkcClQ4kwni@;aG=J`syjwZ2@8ww2eKnai;xmZZbNo*Gp1=ahZO+)?c? zfZ6F`5ss5{1dkY}FPy^sTx%VKK5j0jn6JjeWd7Vpn%O}&ZoM{RnXFr#T8-(rK#q@m zc)qh1=+ZFLD%f5*bC^zG&!+7QGPO`>iL7)$;w=5w6G2<_hdKr!-La|I7SKrv4@Vld z*2oX*S}=%|=y1fW@++(df;Uj8keqNqAA&VbUVB&xe#yk7fLlO;FeDkNIv;Ua5JzE) zCW7l7MbEQ>45*PGC|kx=86n`kns@Bc&4l-`!My98=v)rM@*@H=c@O(#(_X+l;yxn_8d-e2zhGA zK3Xd%_8;bFgk|v`Q$C(tUgI*jeH6l&mbd0f?gzFwO0pw`D%4hib|j&Jp$$3?Yv`2T z{OK2U{SP?BX}lrbYGuYV+6jt2n{fwbILEQOrbVBp#Wwc-*8*Fxad>E^)cOU8nZ0y? zf*e@g>sQ%9JTA+2GaDuVwFcotgNW&m!q~80za=gx#b3jUbGPv8f;0qdAkwNEqZyw< zZVX1TI93YXEu4+p?T(Cr68oiA!?NSU%!{ym=kdbqd4+*W;V-ti6&lCJ9y#mOX&<&6 z*v`Djv7em1<|cO#2~+w!A5D=Pr(fR17VMQ(MB9_EYFTi%+ z33HL$>FfufjAH|tpVK!Mj>!&ZbE<$?6EL2R_F8a3{I?(}m_#)T(pR`38e1~S)zh%} zA>xhgK{JRUp5~ZnapnqzDY;e%uI!CP&3rW?R=r%hW6?NRYhtMdtQ9XhJ#l-od2Gx% zMfep*@fbPa$lY8#K*^tIi|t@G&-WBK$oVA&zLzuIDe!f2l#J!w=bs}?3ZeWJ1r(438!C46QJ{4NC2s7{5$3UIi9|@?hf9NuLL%YjoE5itT3vKu4rH=jSNcy;(`%kX-ZIU-@pym()m<88g#$~mcS|PnlAv6 zAwKD2+Rw3#E}x7-uVTOAVQYO`6F$t%oEsTJTcLS@*_Z02x!a_DpdhEZDU&Tf31J`B z;9IBk&xAII$w|N&)eRRlcIeDr`ADFdz(x^Fq{H0@5u_P0-~>Xz3=jyMT@w2uu2D=V z3}InErx>8TAS?)>^%$2$@G@62AUK815QD!d1}HHs$Y=HKnS2bz`(w$T{B+HC7{}N% zN!S<;v2J`hY-)dc6{zK$QfCr0KF#WUpp#gGdFa#}6~1vTIyi&xqk}Qx5)@>{O>%a>1#hayEq!ii zlY7ZcoIbqHPKkjG^@Ypb57=YP%f$d(wOW{u@&!iQtJzMV1OlrQuC+n0!p=s*9*>hF z#ejf22fcQ?oAs&Keut|+P$WJ!$o{ey6dA2f@{AKfgM~SPc3JE*vsh5q(O&-0+-P2- zzWhWA0n+nb600wIqIF6=AJhjLb{Sf+=n~_V+CcoNOB?-461Zc!` z+6v3pxL`u3bOswHhm?gJkqjQRMcSkmEKpHN(`eNNr`D|&COhT2q_>!xRomn_;yV%} ziGN@?IsN(O%Q;8EK!3sm48yPQ{@2NgwNtjgQLZNgu$@CkmN9PpVC_0(yFGU9o=c8G zX_^j48@hSOV*@SBLX9o=b@EXmJi=B>+%(S*kKbX92Nmix31?>V>IwftnSc=1oG;WL zI3fN(2sU4XdH&jI8!sOX3mJK5W~g07=9jr!A{OuFUQkY3%@SyjnzwKIB{_ytqzfD3 z8Wmde>a!o?+Ty}H`^F!!p?cjq^F%ocXYRUMEL(^81BbiI&-tLnNt!x5NCzS#pjAou zmcFw+m@sPGpdNeBuJ^xvy~s7ow6$5-58z&MzFqPnXk!8aJ1IZD$5bbW6_;3e8AHK!eE)HivtlI&TELSi2dK z$SM;l1wIz6gOk$~=J|vx6QwCEH6y(~sY`3(#$)lYavmXks4Z!wES$anVVQ;tF}akq zE274EeQ?r2Ft1-g3JZ6mCK*CO@RRUk*o9AQixrj}ah@DUfOy43m@PZm7s=B(s?aFzL3BQm!P@Z9R36S5I6aIEory0*z=tu+tryPua^~3gSN%;OH1-_1Aoy63Q4{4Gm zeLDb3`hY!sC*+LkXe^s^5VEmbTKt9=V)Kw9$I=xlgT@-gaL<*jCj$5{u<8W!4lQ&U zD_1Q^31t!$2S~|;O~*~EFB(|?XTVK?tNu9*J`BOb$fc;`?AN~ zw|Jox_^|5wDbb;AS-9r#i>4@nUTerAft?gHrqIJA^5}Te7=Gh%nI{RpYVgOz*ONdz zo$*-mW8-xhEifA|RUpo!3)&RquLE(}LXV3hufca1>Vq6lm%n7nPH3S(tKhhJYz>yPaIV0(wzI zQ`)*}XGu+f%O*?fIFSdwQdaap!EPTGSCXfIPr@wOMkWZuS);dH- zw{N!Xu4(FsPLEX8AP5}4fLm@R*208|%dKfsVog286(@iBt2UOj3uG&RY!Z+O*9zR& zm?_cot(H?in-(Fwb~acS2ng~)jEJx{lwy&6QbG6&hbh;FBCr;WApA?`aN@=j?nM)? zM1x|MNQh`wI1?7E7{A;GUxiCGB6aP0dWPa&^gF2P5oU&9uz!|^JJK0A(yJNfdrKI7 zj~$L?FB!!Y(UPDfaD|8N+fi?%1Z(1FH-$FU(hYaixVem4?=UUqHjg}_*yItm!(}tF*;)MBR z$7{giE8Q5;o897_Cn6ldL|4XyB3xRBhXn|5VQr`tChi4*7h5aFqNt-7?_Y46EgT*& z3Z6e^xUXEdj}3vSQJf*`V9ZO1?RXvS9GM7cN`Di!8n)l$%=gBMdW<4BAx;2&0^0tD zOra0t3;7sH53_s>htcZ-E}4|b5RZ=a7-;k#D-pKXxx`mZ2VCzGHj-oAKq7UaK^Bqt zbT~vk83vqaP>sSMCV%`kEBQn=9=~ASDt^cd7PWYy%PgM{+K*+xP&=|v7V*Lg2xyN% zd7pZGagt(bQIG3WV3YU{v%2D6=BS3`M_#2cX=%D9r;Gu_L5^rf(u9t|LVvXLpZVw{ zXn!k1i(0L9^63?#Vue!DbxW4hI#2@MY|6B93+%P10+Eb0v+-rrf(wq1(Fk-DyS#O* zi_OPP7{Rer5{Ig+5Q>O)0$f~TZNhs^Zo%+$IZG~t4T-G5zV30jBL7lsaes`tG&Qpz zdPU025op01=VCPtPOu+|y?O=1h4~Rty1TzLZl19LFt40Byd$Q2`5Dc!2Tel^KLB&M z@ELtLdkp>f8dROuX|Ztob$CdGGjkAuL>_)(5T(dxxiLDDiMc5-R&4-^3oZGRPySMdjeT4qksqTq=wLfI58_QjTUFI_O-5>H5p znD)sS8~NQX0T*&s36iUY^r_u~c#_YZFwo%@a8V|Gm*kBp3k&2HUQ!Sqq=?%hkH~vy zFmYze5dY0ZlAuU%ai`%0CXfi$q6Zx59mEjA6MEZP8&5Fug)6yS38)U=$OgxarZDDP zjonvr?}O5uMPz#jfJBmFx4)yb>y_=EvNn?ecoRuqXr6BZq8`I6Jx=QyI~|WqfyZ>i zIe_h`4&#fVYlPc3CSlLhyp0Ji0R$_emsTrsVA%(tBu2g*PIfi#DlVDGshvD_3Gv|R z9BFUVDytA9n;$mJFMdQf2G3D`$kFM~f&ddLO=YP*lTnkS!Yt zt{DWr+@8rVb+QAD(8Jz5{v3~TEc3D3yUq1O-wskfX*lI&k+-yxrtt6R_FA1nACwN_ z526Jy9QGE+%~he!p}(3a7T31jElnX~Lcd0$mx(W1eFZN6&b^6JgQR^R*J-z;AXWRPDKYD%Y6$7LftuTQ{=jcgRAgxGNL21Bu@0h zi3p!=6qrV@z*748A2x0k=NCRBHmbd*6k$+KZsVdY%*+Ot%sT}PR?(em+P|@?!Xw({Ev5v*6_GcAOrpj{_!alD!mxgBF^HWt70J|`Mnxi+3KwiFyIyNZY-*kWbs!f~3y7CR;*fHn-vXPfqv20eG! z#u>2whRb}a2y#kL!!c7%2CU{Lzc!~BFSxvh7iqcM=$b!eRJnz{q_Vs-D zQ3Ww@Iq?DY7*_YHMGpaA0YONf;C~_5q<4r^^DAWm^UI8t8Ka0J3j_YS3!uqa`WugR zbQOg0tUNtWf<{QeF?U=rNmv|uBC)a6ouzq`9TQ*}n1%C(!unn(5oyghupx%*XN93j zYfp7IjSi&ioD7(57`mh?M(adbQY3)*Tth=Pcp=$Q%2~P{N>9|PAL{c}M!H5lShloc zZrZ*+UJ-yNa3l)9Jbbvra~k3oJ0ISD*IAoa{XfigNwXzMc9tKHxNpd;s;;hTLsSbP zF-Rb3iD7J5U~DksC-4*b1MFbMhCu=|Eo4GqEsSp3dZ_9eGV{H6BmBds<8ge9h?`jw zk?HTo;KLcdp;kcOfI2B-xr*soTk)8tNwE-U#*BLzJeZ84^%CvUZ-%sC6oKu44ViZG z)AZFx@r7{oPP=VB)>AV^cSuN4+G8g)?csLRHVi)C81e0@-+5rjLZd7ISQAXMAq>{Ka=}-qGT?5p(d(k>>r8ew zWu)%{XP{ry*M}gE(gCQ{RMp>5wg<5`je>ACvXykm`A7CB$dpP&IWt=#hTJim`|X60 zbc@Qf+co0jy2)TrZxlja`$UK*rjAO~`sLe*Kkjfkg>Bc~TH}m4*;8LBG81pqwhXjlpqc#c!Qa3B&A*D@IeA}2z}R2IP4w@{hepOJiQ9wBB{q_) z&JIsvM{Z)-!!q?gMmH;Ixy%^2BZN`zILDaK7Xy)Jx634^qvJ$9^82}=vfdxileoTs zQQvUGphlm%`6DBHmJ2o#ZO||MrM<4V*M`Gh;lM3LC7PUn!y78?5<+mJ4;;UGUgg;D zTYc4U{*G&lgD;7CV-Ng$Oe0x42_ow1UrREu z(?9R>x{=cfs{m(Q5q#hjB%fyU_;Yq}wah<@cvZomQCEV)x!!-{+T=MNuW6c;=FPnO zyZd#1Lt2X%d1yHTbKUF9%inVwxl7~GZ0eo@@#S>T}~=BDWG3}bRc{GFHsXCY9^S`eNQFu^0ad1mO_zjmFr z`tm{bk18gsY9Uz5!Gl9 zsTj^YNnO@Y|IGE#88^sWVAK+(Dxs?-3%8!RxgH1ce&z@F>(#;N=dI5|d{`hvDLh~1 z>!lWlgmYvQJ1)LS08<$u*OWSP5$qwo%o&ZT#Wys_gDO5W-&0lgtyj54qwW#y zC}ISQhZE_o-cn?_pW*{oiUyTtMllvy42;f2d~`J`($>&MB(b|(68rap*Z-R_sW3k& zGe7(6C+hS~;GjN9jK z`Q*=Br73D|jx6dRhk>S<{1o5e1Vd;C;OUL$OEtdtf8SiO-Sb@G@XnFWX6C;t>k+2DBMl*xQ@BW3mb!P4M@b^q! zH{1s`FMlhOWDyCulmkWCeMm3&zi@jv0nzI2r=t3Cg#!x-XN_G?z4tqc?odP>9Vkz3 z9F&!fgo2mc-oB%I4mR)G8t+r5uHKZcPw^mX@G`6HNHI!0=rU(MB&w(k&csR=TNnsZW>b#}i2I>-nEW9%#_`!^C=uamky{3Hcr^b)FK zm_1xHcOrFEwvZMQgveF1Vs}O8w#$koD8|T}3o@c*3%q~F;hMn2K`%o?n>I1c!gg&* z@gT~W`)kKCp5BCSz$bCbw-n~s`t?}T4rtn+{6okb3veEOypR=woYG(Q1RpIN; z|6Sz|xdN*U+@RG36cxq))!XNe>u342(Nor$8U#vF=?-72B~&;$3UbMmx$KbH7R~Kh z3wCIM5-n(cMoIow12QsrN(IT?y=WsjNz61HG;fT5W2yuxYbe^?D~QXaqe{s4uZ{fF z{1Wr4af<@kRnAeCl%bl`kbMyaLkp=50Xbp-vhpO%K1vdw3jMU{C(oOB6-B^$#*@os zdHA_8CJBhUw0q&MX_~?tqrY@k9|&kRRs`YDaYVO(R`c`kCgGy%UB&r+FOf{ZXJK^T z$_J`T6vW%l>3BJnUQcn)^ot;i;yZ0NP#8T%(qB878Y*CW7B`c6TqiXdt8 z-Tv0>O}&rd1lmcAV&S>2`GInCI!O2v7fKbzkYsIXK{kQ;kiMZwZ9gHpcmo_qGtK=j zJBr-)j<0~(x?Q%K1QMc>*q4UMKhJacb$_HHI40(W2{H!bxsbUh2pV@Uf1enq_64Fc zup14smLHw26t-7MNj$#;zSL$Wb}@;XI4D~eOR}5uc&8JEPsMg+s{>N*BN=Q!Hf43H1 zSKF}MFFIaN5}4SL`L=#{?VWn*FtMcY&|rV`&T15UFL;#EQRceT zFhCS%<5vIGx$ZQTq3o+b71cyc{<_C?`GR)1g@bRfMUR%gVbIA@OZS1$xMI^R(uvU? zYPQhRkDU7lzG36x#v}V<olG14zljMj%NHO4H8p3dn z^dr3O1m)rAX>I?`c=(lbZ_l^O)9(q>Z^A5rf4V-pI=FSrdH1XBmDC`9FsOvQa#U~7 zzC5e`$|;gtYt(fHUGE!C+)0kU6&fA%c@U}V#-$nq?FZ_YH?{55)JW@^`P2m zyU3s&^7p2X(8k~Bz+Q>;MTrVrjx;YzlbT{N)Ho%{%4Z&B6NwnaJ(Uqs-|6{I9=+E# zjCJgA+&hIywWqFdI<9)Yl6mD{==jDOIte;Kwo{XKB@sLiON}vU!$gbA@~Ut>w>twT z1xeQK?J<*6B>&k3V5Y?@O&sH7(I`e*LdO6Y#0r}}r@=^;;GK}5`y&;><~;|#SDo{- zDDud!fHrEne(KiyO`(jT>qX=4*{cmQAfb)vF8HxuXPy$A9Calbsqsfgc}?pf9Hej) zoWb6$7xp(qgM_M#amV?$9@v&>s%wkj7Iiqe;zU!yUVRSL3^zJym1jnbp%7$@$gmd8 zN-}{lPbaz!fuLKGs|uUfKi?91`P75i(p^r2BRd3zyeN2yNQUqD>Ib_&ySRD$%|AES z>8(`~;}j(rWiUcK+U0$;3QKOkh{14ZF7AQEaHmV(JP`qgvD; zErKBH*gGxY(KAnWW$t%aFO#RH(6kCBkQsR!L}0^Gs6o4!qoEGYX`5a}gRq1$aC)xV zR?dm#Q91%uQ3l}>(Eu4HzvHVD11|vV;O-ZXZ+TKuh8hIIrsl*bt(BIQuxp_1o@TO=X$8L{zE*y!I4!E)!=M7o5X8jJTWNrGf z7*PY{P?_f%?p$gomikN$2XDJ~CV)&>{|iw@%0-C*Mg4x}t#+bh@f#0=s55n& zcybD6e*HkeshWMBE1z2}P-Pn==vtN8lFe z(NoGD<3&)l(Ccg$<6N?T<4tGFyFUN6U|0JCZFM!QzNUJ%~xH*2}N?l@3LS z{{!`1;dK19j9l=8U;P_4dUqL1+&OK=yI=2rvWXFsHqjTE*ju@@LD=IKf279!m;Pvk zh7jowAey(}YvI(9EP_4Qck?wFJ@2923#SV1h5z{OlmBe*NfS->kNu>rxY+M{vYXi98y$}^R#m?F z^rzw3?xQB7*H_;Lq-mLzL|7a&66p7FRrHW(^@^%6+UJ#xcTLa?jswBc*+fp{D@Nu{ zs70aDksRxpNYc)cjV7fMlGx%@>S^;JC)7Kb`Zi2Vi|ky8DY${Uj{JxUciRpneg-hf z>X+$Kaj;g4e)rp(2zcfr(hnhLH=OZ0PEVU7Ot_HIp6kq4Z`$q!B3^=f>xK07K_JDc zfev$(PTJrk#XUT|{u7a>k4XEZN(Z6jrelcUJxS5;DfzK z*nt5?`%7?RSk-f^Bg6z0nbT;{W<$A(psOrfih-C+9DnQo1yZm!MPhi8DDmZ-2<#Vy zZrF#3pKP9rz0km)7fD6SYnP`nCeAOR=qT#`@UVQH)_bLw2SsZYo1e{!;4X7{^9Ken z{?WKv!w4nfVBNYY)O;fE{$5#}J7%#X2MC1iQ!W$lf8p47l6jmspUx;#lHwDijA;-b z1YoETsoWh$WIkSm);<)4y`xREGb9Y!bL9JUfOi;Iu8k`cCQ8>QA^Ma>v=`2Si#o7t zZpAN>Xi0cLvX_NRMeefrZS{3~kh%Y*;2St6@A$4VI#J9{^F+3@jkYXa)b-vA2fM%D zN4mfNIKTY1-FFJn*`@Z+8Wh3)8h7Vz-JjKdRqEybFI_NUv&)MM3Kb#Qp`E|G7}#VnXSqRj0{ak4?E45xiUGtdz-mw67D=Pv}>$>_qw7Oh3 z)oK+IX+45aAaBHJEjWVkmOx12p&(r+23BZ|6Y-4zh#i5r!IgXBh|&6p>Z~89E(%D+ z*!bI4-+l|3%|O7ZC|bp_J#j*394tH??oP$Xvd zgj60{G&Ybu93wZX!gvSkS3bQ)Rd93KTU}O%X#&qDh-#fujr}g%Tg)YBVsJ z4mQT*-E-4j<+PIprwqh_x;eH?>#WT5OJ~+>`oXkQaB=R_tADTba%ahZ2cw?_a3F$D zDuZeH%qxmrzvwr=*8x)y^-W``MTt!ajL?RgE*vD+jRHeEaZ!&u2e@_2-jCIQ263Ys z038-2lA1ogOzO5RaVgn!DW#O-3nF(+ z=JBVVxX!G3A9%6!ui2i@UEDk3F5ibxRLmlpZ{$2VOu2u^HI%Y$LUlF?t)(JM5_yCdQt2AB^y2S-pk0kE`lSz@Fr^{_#aqs z71n9-Utb>n(!F*Y&v^V<3mu$RJ+k&>Luew2$6Lv9VjXsj3WDhFR}PsR3Sq!4G1IY} zGDE@p)&bp6x^19j5Zn2cTw*Bg;X%J{@LIqg@&2&|Zeo}h52d(!`JT}=z5CC5=E(G*y zhXM4J=H<2MK%Nz7q51hWrt2$zm|w4XB1?vsC5oCxJ>asib&gwaR^Yu5Vh?=XptHlHgPD#>G*{F{Cl_44>Db$R~dATQB%?Sr<5iUNn5rK^d&H`4_F?&<$hf8fwK^ zZcvU6+`z3fN0kJuEUKw5V|An>d@aQek^DF1O9z%wEiRk_wa}JhZUBa4#Bx%(N;f9z zt_4WqZ*i3Vb_hebPTzj)Us~R(%iDiEV1ulKwfgm5ef0Ima=H_e*-^|1Ku{ICip;!a zMXX`o<6|6%nFGt^t(s`XrZ}i@gG~A|HS54^TY(5()+bi3_wlOTi}sxAJr9N0$2-9Y zid*Rq1x_s<9CBego+j1qhhDL8W8F$ervqoHy~g#kEIqUcJJT{Lm7`F&7aTt`k`95a zvzMC8qhiCgZu!tCDrvGd>PZ>=-fGii$E>E+*{tWge{DrX3-bC8n66)ha?oluB3W-) z8$V-yv5G>g+sKOuz5Gy?)rVNiZu|!!%{F3pHV+$Zym#>?1k_qN_O1_b6%PJEwiJ7E zb(-;`BbL-2RUL{KHE8=#9;S*ypx7*^y^aPkkvtw_5n!?WJ}zn-XEHphwP+tSh$Df$ z5apYad0hVXe_#SDGku*`%%5oKOG-N#NQW*LOwX^?GH)hIK?wBb{s;mvzx-Hfa~I}G zM~OG?@OgF0Lu$GI)-{Gj!c8j+I@6;INs06`C2Q=?u2XP^-X%ry6G+M>YR4E6rBqnN2jZJTMUlM?t0j!- zeGoxs80(5gZMQxGQmV}rjT)i1mpCUAZOR>tKBP#ZZG0nQ($4cpOYwmS-x8FvE;JGx zmDkig7z=#jcOTS+VhkI+#rAr6_(}A0N0mT&ViF7f7=5*7{f4f0_Tif4JF}W-JqOA> zJ^pDVmycO9S)@cI)?{jd@qI3IEOZ2JYUm%tl$0Meai?wp@rSyo<+g3YW&+W2b;^nT zeQ1>fi!M!#P71;9T(GOV47B+H*6Asp1a57_KaxpeT9v-eWai)4PapYeG4EMT)^!bJ zS}*Ttx&KC)`Pq-eA$PDpJgAIcZj+;RiX@cHp$&XIH{2vbraKenAPsCoZL0)&w+Y7n z@q=%W)G;T38`{RHqgYTein)ltwC9PT5-EBip+bNLjom|`jBONmZ%-0o*n7hOq6UMK zBD3)AhyT4^je}dEcO8n7E+?HMDSqFBW>xWEt7SJonJ2ZAOnW3Xp+vE`-nn|TA}d7p zpZm4bp;yxDowHaxJ^Z&|_ETW5o$E-U=6T-ETJFA6%l)^?OxIMjctrRo1X(ZlN}J0T zP?kh8VU!Any0>T+DhW>)iyo!nu}fl)qUlhqS^BLzbx4Chh>(o}-%~Zw zo*>Tb-e#G99eTZ){ig3a(h?Ka`6+-xU!4as5{xlQyN6|26mM$Z=&+eaJ4Ryo*d69) z`|H&M!u;3?c|C>Klsi(MuoI|d`u5X(Lul~|A}Do)GjcQ3VvLf<VGDxa{IkSH-Bj zS-oy1NQP7l_SwXTXA!#ojojzUv(P>teW21=Md*cwhUlFs9)j>m*Teyae@Fq_txYAm z9Z|^25OGH@(>H(UQAP=pY*EfbQEg?W7b^nV{VFR2(h8jMYYE+S7hTR6OlfRG{QW6Wn*gP|;fP60AXNrb85{kbj zI%OJalji1igeW3tN^V~k0%!K6vSh7;(O9*)PzTvP0^G?hL!;~|ZL;>a_d80` z@B5-b-74F4)HU?-1LxfS`~ACr6p5ejMbfg2!aBc;@BLe?10C0OwSFI=%>tn3>yMPt zSJqQi+V*sP6}%t{*xmCNer=$N1F0KK{1`^u2%C!u5r|Skd?F9pw*bb!DGXb>=0Airss;<`>IgE_Ba+e(~$d8PDnPa1Pt8-F#E->HiK{rJm&&Gcre_qs|tyjw4C zCBHDe{FoIb6RRjc5a!9$lOmuxM0a0|etsP3bE%Lv`k)~$Gy9(c4Rd49Re-!^C60FR zllCd-oegT3W(%$Fh08J^2@IU1PC4K8*Y{WmOoZRAZlKW)ElhxRTUUz*bp+*1;m(TD z*{0yApf)-nC%5vf_R+RIm-UnXnF!4Po#!SURMCHVOo8B-R=dm#2J_XuPKq#1Q`q#? zH;I$9#e{HZIEUEN-BFr8<~@vE;${TUP-ImE$0kUn`?qrSi?z9b2ft?xZpux*_QtF^ zh*E|IaQVHvp_4eEx~J7S8%5(QE(}G*IgFfkVpTv8zoRXvy)DJHlubl?i$(#ebf|Nl z2ViL&5!~c43jvz*Wjazx%JI|Od!&FPZyJJ#GE=0Hh-BwzT)q-@gKq&6*TRO5Fw%FO zY149N7i%{Av|n=m_^a28D?i#f@WD|*++oY*mwedE^wl3D0URxGWmI)>hTpyw=#H}q zD-_mV`?p+?m6_x};vk}e>=_ddV4;j4Gj2)&H_drG%7YP9hdLnMzM*JjykGWy+*Tx~pLr{%YT z3$wc<9nF|w7hS!H+F$4X+$PU=R$BMLV{^Het?gzQx3I$U@IN}LpD(t@1b%7xnf6U? zr2awvYBz4r0s9VBt+!I3Y>Tdmv$A-qWT7(x_@} zKvLRP_=tP<@J_``bZXd|dusz}Pjp&`@12FgJ_q)I6cF!TpzHkh?*IG|6F4Acy(l$b z%VVOk2N7_1GIq|ieijAS&vN@{R&L%DZ$JKzlzR;24bS5Cp6P@m#{90xRN6BIz$U^$ zRG$tgexqm+oV18H*w%VAk-N}lLt;O$j|R!j|VLm*L!E$ z@gVE$)8g+P2;sm28YFl$zVp3gj#wQ9<+rMyFqc$*a|5^y3^ljfx_+P-G`=#0` zj%6W(5{F}-EU5K*$Wk0Fm^8b}&6=Sc?p=$Fdn$vI>OOM#L&~*@D+Kva6ojk_D8+_r ztRnCvMB+I*P*abmD=l|_#XNU>b=S-<9Kk)w4P6u7y3MAILDThfx6bclG>Yk|*s+al zCzRUCH#kyn+HvD_B#lkj6h+_n`5bbnjWAz%5IER9ucSc~Qt@7+c!x3J1VSLF4}K38 z?vlXRCu@}n^%mDmp=QnMDw9Z%DuqEE?^zQ64O}G-OI!qQ!~V?pNUiGEo^N!0_zNWJ zE4J9wVw80O8Rjbg>J75-(0TbnjR{Ah%%s-&mu_uPB}m2PUGqkGouO=24wcrS)Ot;A z{GnOFsFNi)hvcW){`j3M9|icyJxv_AWl%#9C=U6hp*&e66bvD#khm9QPft{Cg-yT; z;*fOEy(=Z{v)FN*bzx#wE3&amh>JLr+m`^r(RI?;Yp5^DR^!6jr^S!-$Vh2~t-Mi@dx!b`A z*bBp3=eK@cLK~@>HwzAKulf1Mgx8h)3qHrjnQ;I3=AWclhVH_V#x*1pAIcz>KB3Dx z3~EZZQW-KApAWo~(>Si^Lh*GeC`D?A0zx~$;T|aBBT4+210ARkI)}$JC_q(YJ*XkK z_DFX`?C8v+Mu||sFS~TVmZy~YD5B_u($hI(sAShtXuTMtBlG#-kez*9Q<(Zj8P9buMuRPGW{wO)28g5^B2Y_3l}b%gb}hk~DCOv=;Gfcurg+ z9kDLvX-p8M^#b6?>u%DA>E#oND`cpW358nIH=q4mely|z%cwfB2qX)RVwCCA4(Ct# ze%h8qjlv00+e$n*w3=QgXcZq#19N*x+``&M4RLa<7fuU4c!qD~c1*fnj1x910)}4h3G^LcLdw(f8QXm4 zP}ysH>2>?yM1s`pHgjsBt)h4*zdrn5ckV!F%bJOgW{QV(0t%nntYD^ApM&D%u5bo< zP6Uwlr9w__H+EDZZVyS4vDIS;ew-JcxG^@h-l+<5$0$~jRKo6Vw59j|!$mtemJ_x)3iP)*$xs19zRrL8jc;irS9HT?N8?rfo8KCtS7O* z9A{l8)|sJ0HH5~j;J$`GWl2amgy_BIe4uL&45!bwwa_0RY;1Z7zHg1xSV|_AhU|5& z*+P%e>OV>IT4wv%{;o5W(aLP@jmyjLY$3L5hD~8S{){nE?!z=)!JS+IonRmWHYL_B z)&0}&^JXBUp`Ra*o3lDV{G(Sc1by_PRc5&yAHpTj%%v@mI9P~HVW?|69WfxWUX&$l zBR~jN@(xjNZ0T;V%W>mDu7TRzt{)ZjaG=f3HlTa_WU$OD zy*#Yb+fSDH+ut?TxjpCf^23dva__PN{;$d2M-kB`s)v8jmizPaTVBz8eC%2+TMSA^ z+I;LVUZk#^ERu#TSHYTc-k+&U$G+qFSxZ`oF=4$ACeouHoYy(?q7 zI=VhjUtQcc=j24w8)01I+}ysGcYokG?zrmKyY^}o1t3^~4fFopA949;jAnleGk?Wv z6)hJ#?#gmfLq7icF0K%L5Jf8FMLzDhrs|<=gkUNK!NmIVEL2)w$q1sg?`lGuYC#V| zgEy-|leA|pzlM0NRGJojI$s2Vc&|z~4_>u#49HJSPaM>NLg_lObD2~8!BH&lC-d>w z6Yid@#TvEF&*2CJvsQTM?w3X6kxIBcea2i3oOA*}8~OdEm(LNz0Z})q%0qVW>D8Yw z$&Grs&jI>3at+aVTm*K(K=pZPJ`Nsm7O12#U(0k0@<@GhsMA6GbO1us?Otv>ehaB2 zwO51UP~ta>u6To@SyU8}+SK1G86BwUY2l(=XwcdR2b6_4uRI+oh_NnaehCxwN@l)# z4zEA(+T;0ZrmsCuk(Ckhtjx!!qj#3APp?&m7 z)8-Bh@}vV)D`TQg1d%)#b&p%qc)xd{Gb+ZnVxaMJrk{TK|6{J*dSuCw`)~#`tE&6V zMRR7g0`!L@{I!-WJqa*i`_Zsp{0000{ZR}**?=IwdIfpq2YY3EG`p*rIp=hDRVIIC z@ET;2d8zJME330Bi%AB95x^T>>M+z?(KDL41c0{zAMwUK z=hu$2*0QxG9T)i**N6Y=5d{wz%jil`s`oPAjf`iE)h!YlwCK2Ub`lCEKj;pOoBF;RfdY&VDV{Nc9UO-0OW6SSPDZep2L%& z{+{%aB^nt^Pvna zL=lLz_6Ih@uc9gY*IMb>%%XIz;6J2Z_#EaQ0tJ`UFbvAj^cgS@R#|jgp?l8QHHaO? zvFV_zy`psnV$svod)+%7b#f;`{%~OIIS*y;C_*+C>$HuOIBZxPWg(%SC~Y^Q$!y93 z0Rj4A>yA?z5;54WSQtpw4Bhra8cV(Ln(;KCz;5X{lZeK7l;R032v6Z&5+3QHsT!2U zM@5mbrhS6GT@;LF8DPr77{6dX{c4#%wL`l)s!ztQbwKv&o)qk_Jgr(7{gAPDP`N2H_ydv3#c8f<%>yFE~xBsi3U~O&97V z-B?7Mb)yEjl8vl16y4lc?>!fGzF$$o!auueCQ^?oE!#-zE+6kU%#w{lrt3v2(p+R% zYTQy=lAz1IsY(*?L^Wi|?_59VG^t5zZ$31SziwBpDFRBJu0M%f=h&JCYZ+w3!R+<$ z>5tTKeaxmDbl}S+Pkt?I=Ve3{qznk3`)8*#l(}o)rV5Z2T0a)kv zEoZb1u{J%A_Ww8yPhTXyo?iYqFE01ZA`nD-xPC?$zBPtPuN8kAHf{(7ach|C{ODIw z>CR3q{5xn9qsIgQJ!5!zT!4yVsMYHZ!cw!F;^4jbv=f_Hol2V`AY7SjWpyGkNegu6D}eh(Y9U{m&e)n?YW zpGLFhYe@DlNUWaT{X!XiL$Z7+EfnM-;>G?SZ+{>*)1iU5k96uNc+mJA!P{y&c8X0E zm-+{w+RU1cS}zY`;ES1EtMqls0#}TM4=S~*@4W@bl91>SPzu^zqRpvkkzTA(+_NP* zRF+ZXh%I5^+ER<)3ukV)iaaAKeF(g8+=!}>26|})ZaDSk=O}jm8)OOo6ngCA(Cq}8 z$MBxt%n#G={pVC9Gkl;%)w~&}v^{~Xa?s<4zsP{`i!?uIEp*`Jv;U&>eCZL_LDc<) z8tLit7|<5`LKr5|*RT=omC3_$+9F*ao4Y81HlgWg3KB9TKrYGm) zP(Lf`xcLr;YKF!u$lq-YHu9$A<_mG$$O59)3peY54?*#%mJ@OO+$8UWp4lNQs?Ngk zj3a!Ez`t%MpP5-Git%F>G}r&}ufk~`EqrYCxhdlcY>h>LpLmHHGhX+;xgqbEm2q!+5gL9|2$h1=Jp zmW*rW9A>2NcoS`aik7K$+a9sSJknt=aR@}OgxrY*jfq_bp~`r8go%HC=DF6U&7jWq zH@T>ev(xGSWUG*uk-if)(KD`>Uqr)q>+M@@;0O4HcWdZM<(7?_$Cvax;E{v5^*G&D zT<|VSUl(h&1Gk=xwq$xEA4rfC#S`Ws83@sExoz3ZLWojUw&L#2%CaPURgb7Z6yH-< zg7(%towFet(n1b#e`WHbgbjh%6#JUkdZC_60j7@Fbg~R{uv*5jH_7va10-i(tk2lU zG^b=z`7kn9vgEZQFuO;Z#>7=pLqJdu3K`R8u*OU?i^n|Aj`NxZHBxYXCh<6qTvy9x zHDtl=G;)~FYPLbm@X5D@)U2;xH6TC-1z<}Auu~`~%Qsg@W6gG!AfXocqW1)OrS`e9 z{!!2fE+oZ1LDVG1Kyj={a4{`6Q)ShsmGjUZv{ynEr$dg{Vnz)Yr`_zz=cxKvgNB;t zLfjj&lr1zA+Z@54b>{-Ija-+4f`l2=`4^axLcj)6n~0YT9x_bJbU4CrQ>0IPU~klH z)wi#q&W!99QDwupYM|TYe@3oyaKKm*;1qbLFlg0gQre7JMIjF1^~ULs8E=}{!#E#u z0%HGL5%~Be6=(9KNm+0AVrxRjk``|4&2rnlXi_&9$jk`**oLmBx#Cg(<>O0Mw#vk6d=f-+E!~{$4CW$DL6lQU73Ura3%XP(3t=Yk6 z7l#pm;PXwYI0+zQ$vPwn_X0C6Mbgq4G&!d!+mVqN9dg#stb#fSfSqsy&0`hKq1r1C z^@zMz5NfHCZodQKzDlCc4Y8muIvZu!n%oc;)P$ksA-&qyb?{6lQNNfAmGJ#BFKQmM zB8$@qY;~}$!|Qv~eb~vu)LXrx?`ZUUMX20f^8AtbVT`IR(-~l)2uKdFY#0u*fLac=aHK}esEOE(-u5Z6t{qK4x>i;MJ3@*#zo;OI zD#?G3%pclzchJx$nH%cfp#h9tJq`|zOx;C2NGNu-DGEtJttIwbn}<*KSx=|u-`7#^ z=iygOW|ZMFhDo@UHYas@{@E}LP5|b4RtA={1p*mbM$c-dNx+kWeG8;Pl!uISe|P-x zs`2>YU^8)$_}FMTR$v8b2Fp1$Kw2hJ5SI>V7&W%rcYbvJ@=n*M9gV1z$=ON?^jvdl zYg?l*cnt_PM4-sH;WlYHZHNi($tgO0$B0k^Q~uWVdo0rO;`a0tq`C|{070j zVurw20-y#8RsBZQBGm0#rCeVMDCG7k*K5Qq>X-zH8d+dtOO|ng(;&Dg5JmkyU`33n z6yRPX4~YYo+oN($v}RLd5bOJ)Atp8Hm*c4FwWN6aO&3E1%T#TWAG>dgpm%3R8H-9q z8$KChU4I;tr|YC9{KKk(W${(b<4ZO;iiA>2u;p>U*!;+F0G~*C1TQX8Ku|TTccEr% zE0HP~)qyuQ>xn%Y&m;>=Jw8!rZh0e(?KI>aR|I*9Zc0=yZ|bH_g0Sg5s(0(=xBY&H zp)PaYE)K1y)7)8}ZBJloCK|~vx5&?ys$m~m220`;34uUo(?DeG94s-Rtif6&IX-Fg z8FCz!>dY_HQS964^bN0@=Q(haot~TqIPyCo(DPa8>AXC(j$$Cx+y*^A|0xGG#->Ko z7jPobC2bE)MN!%gw_>jQE-FO@U3T{`tcZ#{8c8B8$`R>E>A7PghtAa{;tG)I9_@KW zs`nnRs8ubjLGad=voTWkGK%K4Y(3hwtP5qC;;9F^T@+pIeLIJy3lUC>8mdbzX~HVR zt;1T07zXV*tH$Z;CD&LSw7at^SxS!AFL;1C9=YzG*}46R{D8YO#wDnvqGX`sbp8K% z9gDzVPTyOV8bI?9rqWKSulH%;nYtFSJ%=)3cd7r83)}pV?&=EMsO2ghQHfz!gs`k5 z-s+%l7>`~f2CYi12SiH*Q9@(Y?N=f*-pydyLuFQ!oItv?vH!y@#3Ch)fK8G^9XLxGB$KdL-&KV67^L>rAh=3UsXlg4&>2_s2Fuk&<1M+IAVff z0K$O&QC)8>N~@h~F)3q=zZvc(OK7PO0vjb!-M4x8R1Ik<%*Zw@o_VsaI~f!{XCOEe z9t<%x*}>h+>HJHSm~yRm^sN1t%xKkPRu$s4aY~_FP+n*!YBlStsA1tKC@Vnv)0cn6 z;^DPub_%j|rhDWal^E^ z?hRCly7%%)l-n}FF>qBvXru8i2zpInvK#x+fzpjW7NUX*18ABJ2949pJbNBnF?b4g zOri1QJ(>rqa~aE$ znXFEc-_n}1u|DsGA)5B+$*a^b3~rG0d{VPN0KAsOv!KWg9!r?VUwh%OszgR3W#W?x zfTcIEP?8KhI z#FrSWt4BK=d*wR7;k+ew1i(5$X(zDP+&;EY%{?MEYjw+M!A=UBf3AfQV5 z2yQ)=HZP zZ}`d!2oExGeVCvsytT%-ASJ6oT%82bPB}mQd0hK4eETn;=F$G3pidMh3nAcQbwJT) z_6}w==Ah^B*x2VE=_QY^E9|U^Mf2*AxM+JtcxqWCmNAKf zZD?OS>Qys3G&|oseE7-=fF;{JqEqY4R_blW8pY0e`fU6`cKbqh9_TTZkVHnh`pMDoG%IN1ud74-# zQy?UUT=ai02w3r2Ju&%~TS|aokC43bGI|4?d-t#Ap%V&azsk_GFFdU*X_*uiPPmM< zD>hYYP?2UQ9%%PqJ%xmy`V>gGDJ?KrJ7XLh=gExSi?KAI5Br8g7rj;PumV;{yC5BSRd|ixpbUd7bQ|-IML6zop}JEI z%w&C^drLqEw2ZcTp-OzwT2g4g$6beu4qmZd@;?|2tw{*vT^>Bfm*(e%0KSjHCZjnO zJu99+T>kdoILl`zKfU~nxfP>DfnlmAdqw0jFBoR8Byfh$vo$+*%GS-9e!`~+hMkSY z{nr)HICpyS3Aw;GyKEqj&|KmmPLg)WglJmU&Z`G-YTUi|E5yJ(iiFyZgMcnY|L$w; zSV!1PZzKl4jf+HGA=TnlwWJ(Z1VIu5L=$Y5HaKfSxz8)=29>am;($PWLHHs(R{Dj( zJg7+GmJm`AgJ&5_ak|-+H%tl(YbW;c-LG8C*s*A*&4zNUKo_kM)t@&&<1mVL0NG1}E*v2p< z-b7<)us%d|#Pl2t5A@~r&;C8TH^0)i%isE~NMyz`L&?@vUPiFEFR;aYjt z@AnB9_ZzmG4*~T2Uk6H2Py z5g+0Q-s0?gNZxxN#_$HU*p3lMml&IAS_E<9m9Hj$j{>2SOqA!z!jL)y;mvz%X+j|6 zaqs4A)bl)th`RLWMAvW!mRLP8G!IutZ5xJqdWDWEatCmKplg+4MsLI+9}9l9<^R31@c6v=CQPs5BJXuR>bU!qVe@nQ980HmE2Jjw%6_TM$#U@yjBFzx!WvV z=8KK{KqAuVsdw(!z$gTJu2#-F7izO291w88j(V=85S?;0M=F4v*LtUSKxEQN$MCEOP8BYn z6rHVF4Cd146>@MLmGm>YxmM>FOaB4tcCxBJ8a17Q2>7LRy$CV~^l^Pq^~2>&5zXjU zX@QHqimnd0$=U_Mv;(5lB*Gq{*hA3Dsp1gYhH;xQPBD*BFUYj zi)+h$D>IXK^3>O`5rk`pzUk>J4#aV9`iDQ7^bfx?)6=8TFAp~2Y&X6db-h4eA6zYP zy822$XX{6Ca+I|}`OrLTP`TpeD@5QB`RnJpi(5`!&+ic)4bo!2Q}(uc%~cQ{8wB1{ z$D;y>S012hctjYAaSwh+f{4{>Mz@+MF)HU$(13jJI5Z9O<=2ZXsGgc4xQk^Au$;cW z`?=?8Aivh`P0o@9U^;)K)9q2|`6Mj1UpWjv#DHYR??LluqZnnhF?2hb;pLs3WkA!& zx0NHSV%L+s&t6$1n&L;ALgTpIE2yFugDr%=20TYx^Qe=fL-y9Yqp=$zhtOj5^lD8| z-hzO1rxM|neH6%F#Gvpl&M9c_6TaVT@_|8ZrT6AY%eS^!!%H-4AuSaxB&%G5c?GNw z|6N&tS^15^X2w|FK41Rc+%6x~G=Aj8fl5Axio5a)@9#X&iX znoi~N3Jk9!X`H@E;xJ5K=X3-;3o{IksLhG&;z($Af99`_O2XuK*L?oQZa*u3z`}@~ z1QfQ+=O3=TmIG^?KPWRyFf=<>t9kVKX=6p;Y{QP=wK!cv4AlLBBzf5~+JWkOoMerx z)Bw<4f^{wRK>llFp$7g@2_M}j3adG-2^Y`R)lEBvvLi0ossSB1LQ{}~5Ck!x;uA9n*KPbeyUSDt zbI0{dDU^t`Qz0h1TT4UO#rQzvzpd-f*6nXr9Ih+~eaClgYtbAh8%!IEZWcI z)u~=k@^>>Be=MI8iN~iuOBqYPN)d<$qWR>`V&6I5vV_?-B}GW8GT#2cl6SQCP?3po zK;$#2S-*U3!;kg|81eYY%8E7sVR(6T%GIs{ z)sM8*ihN2ei+ML0Yf|+b_XwG>dWzRyt-UE0Cf;IF?`%he;I-@b^ryzgJ-PMZM%6ah zX9BdE1e4u;T9TZe z#@5gYdWt;vhHpj01?ousj?#wRn+Z(w>6^$JM{8u=_q?RAPEVGaAC(!d z%sglGj(%jL*+6m7slpHMKPf$*+*`CAT0Yw)EG1S+I0bdJx^Xhr@eR#`wo0OLwgPZ| zsco8a5!30S$k93jXvf$VAhF^;uO%-X9N%wVZzB+)1$2qY-?CUFU!! z^VihlP7$C;P!sWFaj64gGnee=G=KS zaNbA5?Hva&K?X?D&e+dH(!ANU<3Lh|!Ms{QA8f$d2pBA$V-whA!%#j)4(ce z-Q2#I&M~2QHcqVUB#%%{{wQT6n@as2A_Ig1lWH+JO#VIdsk&th?BB97p}5>Po-zR_ zh}-Jkuf3>@kLo)emmPhC(YS&2a&XF*sN%az1L z1EcCyz&2!?5JVx6Ux~x?iY2c3L6BHr%oNKhJqIl_!%dCT??&QBzNZ64Rl)iBU(skD zd$n6=n6dOWMh$vY8s`suIIfj_zS^Ukeq%jhsVUw<9SVfg8VS1vJV<^i0$ZeyL|^Pn zi?g-jw8#|!SSUC$X}U*xD=|O`E(+(PhM*Ps9NCw;J>RzsiFzLFsE8aB)jMl~C3cpE z6a*oWSTbFD6%}=)n22=arsR3!Eb=Xc&ghqSv%0>U=h^X94byvT;Z+o>#7T(e!_zqGAotL%Aje7qAwYCT zNt?B;Uj=~2@22je7Yh~C8@7m0i@mtO1|CvjNMM(-zcjMtR^IUu1YVG;S@&fu%c}`` zKA%pf{1QSd(%kG#6jkDu z_tD-)tJ96tI4KO1PXLPstaO6XSH?7FhMkSO_oBv)wmWR{idGysII0OaH9>yk?amtB zK%+bycS#f|zH_sYZ`(b0FUUh1xphE{4I-~z*nWkM8Kcg12VvnHamGXDiD56mDmbmX z1w31>jj>FgwUErM1{# z*%4}ye~YZLIla5#*mY`4m+9+G>zq{V>Ab*wj3aos!>4E@!^Q|(M@xJjK;HCm}I-&A#S0lbpxe?nLV9exln@%j%*8KYX}TC z+EF{oBpR{vojz{5D(@m=5`928B6UgRbE+}pv!@1@vYLr6tn9N> zm~fY_SmQEnQK7Y_Q9qdkC((>NgVK96l~7;^AalzkX4X?^cyD`=?{xZxr6lr|pGU7P z0F7tHOB)C-gC)U76mlt)zK#wLG?;fEPxSIlUQ~MqID1f9n)Y{ z(c1omo>B*p(Hl0UQVsoB^tqe<@H1_HS}8z5|EdVIT0uHW{$8^VG#lckUdlUy_!w9a z7&0R)2kX1BJyVK?Xc3EvNMNr6?Ma<#u&g*e@8NF`A^$_-+jKXuZ77Zw z3T%JR=TEV|@q3K3#&Pt6WX2eQr)Up0YU!}EjPdq9DTn&?o4=RFseu1%#7C!eE24LU5VMyS?5(S^K^rx@T{#+N>jf97vH9hCp- z0%0-tNX-iwN*g59MYx(kmTsYY$D=AS>?D8VKqQ@(+RfT?dRmkrjV(@t$U$hFZXM^5 z!DLhl4CGsLO_SLxfslEg-5_DSB3KN?(qd^`h@vt+{|N`=zyltC4K)u*F9NsWl|?mg zmtS4n*7?YE&_!KDEdg)-ydi0?`w`M*xk$!sscx(JB)p|_L+3RRXvvn_5d#W_G)6bt=* zsIfQzUOyT&h+SKyCF48_ioMV*!lzng(zoQbtG`ZJ~e^ ze(G6cKsZ%NqRlqhb1j;6&xLNCR;-*FL_+o5-))t38Bkfjxd9Y~d5z?27gbn7=FBb} z_4cdJi#@53z&_QKE-Rh1Z_=OsFdB9gZps=&vUPrn3HoBc#;5l@!ba~;52g8E6ajY` zJ%{D0?L30~eChe&cDuP4)9JfExA~x1rrLMg02ek;EEW!Z7s%0%-Bo&QgUK;Z!Yi-gj$&%fL`|*g#%sbTd>h(NGJ?Q^$36NTbAwUZ-%$STF8(C|Gi7&x-;1jUM zj2#;=!3GnCVQerE0t6bm=@!yc_v`NWs_MO}J7i{r`{5iPk9&AT=B?_u6_uG0?#IvY z8^rf_7GdwVkp5yyuHe*BvrBx%uncF$CHNyIH0*y~YpwW>eAih`{3qD{R`t_0xJyNa z@g~f@gYXDllJuoRRutcYexmR;zRe{miI)}WhRWzx_q>Y;NY#bYfW_EJp@Pzlngtb- zPAh${+v0@};PHx}z(WiXO7{U9Yb)vrX78=PRA4CCu;i9YmpH=xLA*g&bH2lSXLGeP z-~*jT&Hx$)vnCh?9&!Heln^xhXlJ{j}(cy+O?sKl4db-#_d+OKA@Um8u^}`KY%Gd7JtyMB_$(SW zmOO`cI{cWW)PIRQP67~ru&PW`FmKx*f?|h;&?B$5^owU~Bi2Fn$M>U%jQz`Bb*E(& z!ZXx&0m!HD6GMZ?%h^{Xz1vs2Aua$od@meOJHw*R@lB8n7TL5(c&OB^uNT-Y@P(&L z4$e{3IdCC=VkT?@yeF&|7OWS8jY0@7R3U#Y+($Y-_*D_1>YwGlZ9YSMd-cgie zF4QB_)99`t1f>VZa0s61%J1Ne&`?cmSro2s1_3Z=kpvp59mxmnV;-PKF37n82B(}2 zmV4@QJ;$vC1>w}*#k?6tkkWxfZp^r1+6JNY=I-~XmaPSWNIehdvIYmA0;yV--pu3` z8nrfNi&604OpIcs<>z4f#9E1~XjH!D&Tc66+@-3;%9GvdP(UoALl>HX`Ns!56skvzi>XMv+I&U8IDC6l#cMD8(v(;HFd9$}*oHC~q*DM((a;!P|i}Rt~J3Lo;TO#ld7l^X) zq%dhJl<(mCsX6>R3xbV$qPbOU`uxd@dI&7Cscz08N#x%Ymq%<~OL z1gmZ!YXGP8HcfzcUn}_}2@ln?mH-E@0xgIW>U9XyC+mR(ENCNd{lZ3VctTmA?HnkC zu9Wa*}`Vs+{gc#9=w_*R(@3q#-TC4bzFCCpfJsif*Q6p`dl}MGO2BI*c z?T$)MTQ%-}fI|C88O#|?f(Kaog5l0|MvMNexLr%1f*<%^&}EgZX+4h^!TZ+(YK1fV z@c-6YG}kMTp9x5&rc2$Gq7BkVn>^V8L#GnRMrxB zph>MY5YO0FpPep3CPZv2O!VE(j8U9=pY&( z7M{2c1bM@XVx4(CR9Bm6h4W#4F3e0R{0EYBxRkS?-hv8&{KU$!&lk)91Hap@^$Azv zL&m{dVYk(AJcAe2c_?N=l+(9gVy=}2g_ZF|+EnL76^2}fj_#ixTK$sdsq0!XC4!<^ z^r6i~rhylMMxS5>;AiloNmr-p!Mj!dK2wgI`TT~NWQcgBFxVK*R-~W;UNYN${LEZ8;-!TT`9|n|`a;~xB9H`t$*;BcB7oY^220q4_6#NV^{D#k=QyCd zMF!{<#Jme3d!G!ljt?zZ+W_PEvmm3g2P zG)!EQCk8N`5(%6;khnqIh1(VPV4i-wVjj3UKL6iq2@ z*z-+k^Pbxb?J1PtPOQSpYbOMuAl)0^7U4M9w~_ZrrWc#T~YTvicML6%+** z==fF_cm))QfuM#^Hm`)&{MW-~1#Q4Y(AauyOAOQsa39=-is9n{bs*$iFL#^$6IY5 zVM-i|HB1(*L1)geU*qHG{$1C(Po2~xUc0-$;6A6#-EuuaceE3LH&K<`Oi()E+gwof zyi~=iZ*U@z@*47xbhx$X7j|KW}BeW0C>xpErPeK=Okx9BGmD1d;cwn-k3=*O%Kz7{9ivh zljnuT824TKJ}LKrU*Pt3J2wrCv7{5Rq>vPKuVYf-y?sl7m(J}m4W<7!G+m}wq5(zu zCoiM-mm(1>z}WPch5FW*k1KVbpXhur=ZN8%YZ92&Q+AdD&HlXQB?({r8GZX0=j*Ud zeJ@Oj0Ui@6N5F0Zg1kGXEoybekWC0?D)|=muV4dOGo9smH~jGLCd1y{?uaJDdGxdg zXIyEgwHVBpEzR_5>hCj8`Mp)zk)9s18t?_?Qy;b9d za;^yvwR@O1B
NJ7#a2pui=ovEJ$3)!E%$rO2u!0??i#R$muf3m*!O<~QBmCYn`i%qTzzUZhA$QjH(vi|dwlfrSG)nEn!4MsS4~z8w}OSnMYY0;L=CJ; z^3M<{S-`!3C0=j=xJnd^=sI_(xTHeW>}87TyuIh!{22n<$QxwuMGu-JuBYh#&Pxv$ z@Q~i?5VD?dAZ1N{w;vN`a_B4>76_lvaQKwGI_r6JEc(no!wC^C?ACkgJlxgsYyTp; zIJ|lC+cYxvc}#cFUP$fo991@&eT=Q+&LrBlKV;>I>1a=SAH<#SbcSR_b;q#A>A|Ov zTw&G#-FA9O1ZXm)+<`Mi7V=)sy{Qs&eqmeD*}+t+nA2AiC`+P%XMpCUg`YwGI$rpm z{Z=e_AYhxdVaqn*bhC;C7&NxKc`8Fh8e^U>1`Wc>OiDRG&xmj*m*L-8!wTv*YOg&; z*$T68!W>R$apWA-%L5d%VXNcicX2kRC4Y5NU?SJ8weHrD`0+*PFI7j1!cTg8^+5xxaM~fUws>r-^^67}WPd?PmxQ@69gG5kRc@iz=ZXL<`1AvK zyF}FHbWatx20E;rGPLq71g}Bpazv_@Z4ifvA}}&H+-|)#k3Pv;K{|gTY>dq!AjllY z8ODosu`W^G6GY*}%mP2o6ERp9{^kX1SmPJR?vrmP#9BQ)z>Ii%7s<~TQQHY@qJRt9 z*$qkVo}P5>g+5T35PjDH^4=9ZcTFPKAtGYEI-^zv}w z8W6QEZaOL5ryiFD>odrVX9PSIV`&>!uD<|SSPG8kW#qeuqV-HWY;4iuj)T*p|DNDF z^S!BhD6@8gKnR8;cQjLe8ZZq(Oz<>Lu`<*}wk;94knOU@h&HIy4R3HoF~T6aJhx`r!}avyFX7GDFy8t zAxh1nuGx`6INssn`;q5STzdYGAKKvJybrb6g4NvBV@^m{V)eR!Dj6!XBP z8X(UltpVSI+L0m6D|D5etk{wLlN!cH?sq?4I^u)T zxlBt@Y)3upp*Qd87!Zz6-@&mO4Z}#rbI1*6s>=#{pq>IsVF)fKfrkskfisxBkmf_p z1x}Q?q)E-b>tz8bfS#z+?kUPOOf+{}{^w_E#awN;%XtKLIsi9j1$kCDf9-F=<5uL2 z+Fstwn+T~;EX#tG9@dzF72!O0xM$3os~MlB@7?r%NWTf(*`?7-LGdUEfOteq?ha}k z-nh6^f9uUp2m5CO>?~~|-ea$(%|6G#u6E}$FQ|GIhM(2Dy&kKButxX;^T1~N+d0%{ zVT%*6KGdb!FurTt*!bid*4!t$Z}ll%EEA=TA!t=G7g0xD$Ud~@@MkEMY|zxbdCGYA z2P_kd);;rk$;c{!sEcy5MftlR`2zHcel67}1#YG8^B|ft_bEDd42Q2NVgCGSYla7i zgrRqI1!nOB>JVK)XA_A<-*YTxyM~TK(JBPc^waeBF!djJTSPUOCx7TomXbOZ=wjCT_}>`=Dh7^j32m&q*M zONswp2*-O%)>j+6&{rH zdacmF`&(Q*3y&dZ))o#*a<|Q^$a(Klf&5x)clQOi-K8<-OPGxU5lGHYq&-4s9`SQM zSASgrd`%Rf@g5%1X`B%Ym(GQSBckYpLNG4Sp~=nR`2ua|Tf`((XJAzEkXIBHSi?i> zWveDw=`FNtUc+D=7Gy7!NPK3AVr$AtSOdR@#sLde@M1u}2|{pg?{M^?(4jHE^P8-i zHrigjK^O;cYuD-okrWC==5r$kpwTcmhsW^N0=N(hLr0moj+6cP1$B>(qpRn$w(4^=nbD!~ja8~cQ#T^luTA%uvnwjDYagfC2TjTc5&#XV9l!nrriZWzF!DWhd zy$j@zb-c>}a9J^6uCtTA{T#Q+3&8Xl(9xlbSfwNcND^N=-fOK@F@}!LA0PU~kZh17 z6|HfE=c#61xIT3gn(eEoC|Rh$Ho*G8PC?Y4Qv&K;x-NR|`b`20vaY;$FKyv*bDMAN zhYXb3UQrAU-h$9#4pOh)>cU33F~>kNc>qRF@sA+KXbcIWJ>c3c)KcD1(hg%YLCi}u zwbjQW{{@rsHAk8RX_2IY(*inszf@}#B!!mBN5F?7$LRiEZlhM}qnded>Pg{Y?lS#B zYpwW>n!&_z5AtQZ6irG#7WqYdSQ3>_qlm0H)LV*xs>~d6jjjUF5gQl=s8$vK)Z`Kl zVO^VLBS4Y`%Cn)uT^&dgZJp@zzm^@(S1ykv)x6lEY8OPe$5PP3^dXTZiZ*8Q;1Uz6 zVI@}2E6f02ss_tG%Gn1Yn;i{#hJIGj0#zXbt?QxiQY$zBNnWU0l$wb!ZF+nClgu~N zF;d_&WVYJcABiojZC*V1W(v_GaPFT}0nn*IX)EDtMxF#VMggHiJ#lc6=Wo$13{wzh z0EH@q!@#WB(2T(Yc1D8g#9u_a)whGDH- zqR*lI?&iVkKorPhDKf@2Nw516ySWg{xqNi`{3)x5jF^Uk{BYdG`1AQQS!^O-IG-H_ zTUK4c=+ul`7p_ba!zXyt4Qt(`hJ(v2uwB{y)6`@v49u+oaGVZ2Pr~9Z=4{}-c9=HC z_`tRwsd;@~j3<%@%lm{XsTD`Vm8P_oVo>KKgVpN=GeD`H4Y4Sj0p$dQCFU*IFiy-# zBwbYnW){H_U39^g9rl7V6)xq*8XzFF9||J34=tX;nPb7W&T!=xydR*f$$hb9JZSl4 zl_Q=KvnV}P4Pf=*qNYCKcjJ1PMIZ@5WLOk9TGJbSe`WOk($bwlfC+NA3R_&_{n{p2 z=&b;V#l|6^?e;!Bow|>ZSWJz#650+Q#C|4ziGABgabWWEXP+_%50y59`+=#SzH99A z9_B3j^w4Vx>C`R;3w?zXg}2lZO9zcJTI)Dgbd;o3=jMQgwauI%6OtXFEDpU##C`H~ zkps-@#SG?Xkto-?9^^Q%B*cOB7{03D9A}Fy&N6QFEfayAwl}xCM-HSF7b-zs za!#BzE_fkZ73WqEA~eD(s}W4E?Zs{67T{*j!l1A}#?km{tnP4kZ`HUVI+)mSNFtpo zp&ua4WTn>_1sTs2)_Nu_{DMrz@y+zF@NZTXDa3%sR}xDpLma>X@hyJ4wZVF9QSAi?-a z9Q|F|Ky?RoEB>70+i-iOId0v0iici!{opV)!=_Ue+l5@^?)nd_OhW!EO6#|T);m#x zTD(M^?)TJv@_fND-B}(~y3)r)Z1*m%;m^wQB~BniK3^7&n~ctB@KZc)Ex9}@qvccx z>pOD&D+BkJBp984k1Zfcu{QeJLtKdJQj;yIAS~SW3z7}FN~a& z9(`WBP&og53wV&_!D(?=Z=Sqz-@E%OWiD<6^RaL%2O5xWS=E5E5o2~h%%WfJBby^M zPn}jBY3VQ`OdZ|5KiTvO4i}b$LEFteyT1do+r#fhZD|d8+HF2J301VyR?A@pif{tc zxV(HmUg{Q6w)6b5`UaCXX0XhU368Yce}&ubh~M|_Q={1Dq{M2&w5FfdnGdX#aTXXUiaS5tgp>HdjmWo%`@#u&h}}U9TVtZ##(0$+t9oI)Qed=%4%D1j;>o z7)7^1NNO|$u@8DoYxxdt&hWr|JGi(z7()6fl8wDCp39sT8V2#L*4R-NU2trlAvebC zZllQITwa7jrQh*cXil)h*yr#WZvIcvd@^pst<^ATAoAPoy&~cR*n!eBfc>bvI1GrE zaz0!#gQ(T?@~~quU?#ag5(qk4pW_toa8(VChKbGI$MXpzA2VvS*3L1K77FAxM3fC( zQRyEt=~+OGF|J?KAchM@F!O!_k1ko~LqgCRNIF~)hH*Px0S>Rx;SU}{{so!A;4DF5 z7V#L@L*?M-8Xn=S$`>65i`0Y*7lI27mrBX_Q8M!&Ntyp0Tk3;3Qt3T`lF9Fhk0B@N z<5lYXQofjXK}%F4*?lUOoOIj(Ii~{@eRuEdaIoF&V`Z*B4WdV3an>{& z`UUI8fGZDkp~}!U&sh?&`P28G1c8*H zc0-Lf)RoD)`udSYfn~L~k6y|ln2htxNB)#dk{+P-kL5|N2(uSoH9ASAbV zzS;Eveb2`J`}F14q6jeRdj2ooUJQ78R;NV5?6jAuf>ng0ba1pWxx{d7cdx|D~IfgQw|2>RG9X510HP-YNfcWl2fJ+-X z>tbRQYVQy6H=JVXJ6ww)QzJO#NMO}X&uJ__Sv6ZnY~Ih5?nf6xYh{daF?#-we=zx{ zX<`fxeuKa{M7zKe!kfcWyuA6g7Y-zW`Sh3i3jgqX0dYE~5%>f`pU+44fM- z1d`VcNQ}v`FykN_cvGMfa3Lp)g_~wOt!o6a4p%W!_meezIJzgA3FzKy3&-Be_~uZ` zuXm+}07Zer?3_;2P-Nt_gKn#jJ8d`n7{aiddtI@_dvZ_PBgp`16~T_k!(9Q~u_%xO zO;#VS`MaZIzrX10#VtMG6CNP6+kJ_-LYQgD1f7>>ycB(t{WIOo(Ubu3A3Bage`Jd=DSh)~FwZ`6 zn@J40P6*r&q7b2p6>*`2;JFvB8D;7TddsDB!IOBn`$aW9`mu9q^z*GCogm{h4yH}y zDh71)QBC4Q>cK?)8GTZTe^{_12n3pb47nb!79fR1Vj#Uqx&mQz|Q!k+Gy32(gM=EOJ_Q` zy$8G9qdr{FF9UXSL?R~bzntKX_A^rZgT~E~Wx_h3Gmybh9v!_KwHl88Xwz$Zabs!N zq$HMxP7Y3IV}F!QF#7JA*Rlkd?%>_i6~ZLPj*?=+AR7X|gPyoTIHUI+5#m5c5z$63 z%-UQykFos`%*7p&`*`^ydZG=CJtmw5Gtj#O_ri$~ zZSKs~Exp@N-dB##^pf9O5=)A8!6B&T0nt$AzCYCGkq)ww%G}xQJrACmV_O`}@P{?vFAzNLaU5*o5(2}pb2*V3lN4xk z6+j*~)#OjK0qpmWsia-xISUBiJ%{CBeD{5?7*XUvq!a`Iv$hRvw-F(x){(ZphOIq_itu`-t!K81$%!iZH{D@Z@egDO=d-ZKv_e$I01-)W&?Fl#+ z1O@^os=+?~zJbGY>H>uruMXX-UmLqmzd*#B27CRxbauDzUi@WpTi3L!<5&J&Z?Atq zpctuH*M!mSU@!hW3J(3=9lDplydOUN8&n77a8Qqq-%uNK{apgi4dwd-Ce{SEpE-7) zP(Qkx-d_AE#rzRbnNZeQ1}{frG6UXidHtwg|Kg&z~_q?;a7gXaLQj4qo@RMI>Fz=@K|5J}t ze|P)!N#A{$diqrw@dcG}*W>QP!Ce0#J$rh$`QYyv>iqTe<$uq1OLKir5ZhXP`#$yZ zsm1Bq^oM?edquq`=eT%DZM!1~-BCv_sgB2>he_@JWbbh2^a<70JpW#=s2|KD598q6 zWV|?xwC{`5pP#Y-uuVBEv(C^$diRLt_Kf*Y>o*#Qy@f+hVU9HGd+PfWn!~SAen7qb zZf`FC#Hz7JI}YsU+6f;E0BnE~HzW*9X6o+^O9B}uoz+hy99LG~f0g2Vo&2Ujk zu>Q&m(D;mweihA;u}ye;M%etGq?Vy)$L`Z_u}0E-zeeA`PBl}2UTw$s{&+Zi=3j9P z$6JzQj^>$e=O#pHI?VQmE7Dftg6Wv2%ypL&8~1O0=Q}u#qkGtOotnP)&3_KIzoVj$ z$_)43E}I(Q<~e=!_x{OnZPjkKQ&CK!LUBB&R6%j%!TdX_5kH44p(-{>{*HU&z8ELI zZ>?=AX%*WwA?%kq$2feRF{W6ni^o$Y z13HjmaA<#C&WpW{WK-$5J^8FkGm`blckwgU5o?iqB(~!BR_|LqtmhXm*~jA_f9-eR z@aVrdL2{zXMdun>bb|m~15CSd`|6weOF#UZQ6G5Dy(FVcwi_==ZT4#F4~r}cj_p+7 z{*fA<-KlAsW=Tho@)ZZ#B5wq-EKW8v<|svj*T#2sqvNpRd3Dp}FlGG_WO1nR3>G)8 zPYRHOTOdu`C-bNYyfpk+f2_MDSaN?PR>$HZL{SPwi{!AJ;eDuwKy1#w(cW{J1R$xg5I_d~aps~lPzgL!o#KNew*-}`tMor)C;GT8U zg^M+eUstv}@|m>v=&IQ4zd4*|!;Q{rD&Ov=& z;XUv0PyP39dJnfZe}z6fH4UFoy=2FSuc5|`8V=8)+iSEm!*2BB9(M{3yZ;S`%iqUg z|7AMoR+-_4fSP8YseRpuroYdJ(qxCj*FoDW+Vejt2GYK7s*9UnSG(KKt8v4E{vY9Z z@m*^DOSFUl?fYT^5GTu|5BSQU1>D~K3eETu#?7CJHWSNW@4j@?`>HeVxq_*uw3d2H zzqfac0Xp~b2XMIhZ|-alXa2xIWV#r*VMg>UQVRRySKKVEzJ<MZ zx9BOErRr%H;?#XeIliIH?l>3vZd7MCj(2R({rEnIQsef=^nQY2q+aO3!D-yQP1c9VC zzxAE(AiJ9}lj{3Hjo<(3ztq#k3j)_`*N%kKnGa18qk(!BdCt9z=@7Rl8X3NbQSG^Toz& zo0qdSpC*XRu+rGL-v-6bBZi`*0kwG?^mBLj9QKzl#9&m7K?3mX9T4HD+>Yu#aPeHP z69KN0Ij;0tH6>DzHmQiJ#LAQbUvG>=}GW*Oi<2)U77`i zUa=7yXOgZ9^l65BdOkt4`HqN6&q6A=;4F@4A-RYvM}~~4@EUBdc5lAOIyZJVPr5Jt z=O#+Mx@gdp$490T|>jt2mhUAz*Y(O?&&j~Dn4%y2ih+`g*WDg1flvU?* zAR~|*VK2qZ{c)73yYn6xURcFICKPTCsY0s`xm&Cf?)&7+3ni9(_4#3tvDlSbd@$}g)O>T3K2KP)j7>Y;8QP;J3&u9f7SRy^Hv(E<^TODz^twlrAlL2vQCuBtm+$ z(Mtczner2YuM-s@gC$ZOz2=k(N8dVjK`$I!8-2%IGUle(j31^w23hn9>?GCYX~n2w zcO75Z;}4ce&A*9SK!hhVotyxeejhNJCj;foGgGK2GE~U^R%mun9W+L+rwy3Rt?G`~ zl*jtrfogdwkOf)F%89=duB^Oa!^+PGAC3>HO%}NrMBl* zKnWy>MqF8X18xg;UxD$&0$&Z3c+I|7(ivw-d9pOfkROFa>`DQ+{K|nuXQ2WcFcKB0 zsuAb<fBm z-(cP7xA+2Zj)f+{T!SHsKnU(pi%F*Z2T|T`?zB)euNt8wom{ZAuk^HnJSGB$Lm)~b z#%_2~3){8r^yc^kr_GJB!;y)vY=2O;n^413$8qHiokR68F)y(!(Bp$TYsm&hr9EwZ>;FA$kfP~i%fr2~VadUZ;GgB6Un$$)jQ zsvbd=@&Vk|>$QVmLI;#ef2w;}+2zFidCW=d`JXnwo z=lx2Dh(;wArN%+k1TtQu2~@O}ZJr(6kvBBPft*vB=&45HI|bEd^G2LV)q%k?3ca?Hfc&TP}rNp^LVeea;oLZVG66Z9R2W4jFzz6U<)j^B!Hk z2WmKit>Q_gC^AQBq@fjZFU)#kgH}Pa6Idu2oL8^RvD6i>t0-t3L>Fda4IcM6M}64i zfDe&ZAcl((X}(L=JBD|kB#klpss#+IVh$ zt7#hgptScIsJ?s3<2-DdG`emi z^hNAo$}X_UW@AVLFZj_g`&>?ePaoNa)5P1fr$!$|XR_n<|R$|E;8^RS&A+j$9##y=`h|K-cxpv51NyW77>1Go0g^-Au*QSqYW-!ODc0J9c_qoF6@YEi*pD1lMr1hi@*imOY?2eZ_ z4$x+xXWr;(O%PvYt)U0K>b2HB5D$zG7>-|3X1GP@M&Lx8gJ8s($2+8H;mj5@*mcAq ziggvi7KSA;sOR1Y=@=|+ZP`nqLiUXMNorBlmVg!I7Ls#&Z*nT9v%p|ogj)|qvQaT% zCPPv>qJBbElbZ=-2l1zSbn5W}?6Bt(2nmcq;UwZXh&JDvz=Gf=)(37v#%m%M1bn2z zv(lt1m7o;fmSsXG1E7rt^Co52+*LmeyTo!S}rHjWMwpQU$Aw-hZKo%m0Hw0s7;W!r@3z z($)<3UJ|9!LG2KcAij;6o-KAlDVsAAsmcPO!P?5PLE3d0+JhcjWARTc>Ew8&!1ij~ zeWJSYBDg8N>JJh5^h}HW)B$dC!S_OI+&)ZGE@6SPHu}o_p0+pQ34k6q6yK&N1fHZ7 z{o#>c?<@z@1P7{Nt4x1n6AcHW>W&vK4Vq!ZK6sK~!F8O;Y*v9V!!WXpLHoWz)y70sKOgVsRMdbEZOAs3I;{MMD;oaimLoqSGAQTo2a)4VLmZYJ2-sO~W0z z^M(?(G{ZMZ#N$VbOn4+RCJO0kgZ=TEdNQewM3UdZv{P!*WcL>H*QpaGP8xcfgU;=%~nxLYZ&IxLiO&iLEmFq(!r}Z7? zIP5Bv3v|az4{ZmYXAX?9wu#8X=-`2ZrRLf$pa`t#4)FwV4o0;(;*ttan_I8?`@t zbO-Fr1%pg=T%#E%PLHO)_va6Ls%UWE{VcQ-4cqS-Z0soR4*ha~G8Bu6O3!JzWuI}{ z=iQp?V=nHTyK&6p#Y^-C5v2lLOou$Hxn{!aK$!Fx;5qo2^zKaZa@Q}et@9SkjpJHW z$IqEeT)P=vuQ>Pq@R*{#R@7-)w{;ld+E^sHkHLbuVQMY{3+9U})E7?RM2IRLj#oGi zx2m5mm0`d$3C-5^zyRZ?SI6NN`8^Ypx`rJIoyOipv)zH{a;u_v6M?y1?)-rS-^HUj z6Czzr%ppfYo|SQc35fx8#?R4oqnQZBU-N5AnKIF83GU0SPgJSh9; zU;S+$iJ=6Z5+DAYa0``7WjW9$w!3Rhr=|xOw_J zG^AI!yZc2-bb#aKA9)Uva`E6tQauLk=I|wi>3tgNa{~2O)ZyX>UiJGI^!j7xB1+xU zSpM%}e^GkAWpBL$on)+7(e~iyhgNL(N5y^T2uHDf4 ziH-wu6F&DAO!vYOl%31!5m-4bk%GVkPA!4JPedJ#pJm|TxcP}Qx8d+vC#gn%N;NVe zJLg8)Jf*??f*SjeXwT>9%u6+HKcd!t0lVWf8sMGU94}$&Z|L2%%ij=yZl3)%c=fj~ zE(SrJHaCulo!#oGzxPBW5n)k^F4Iw6+#GsCB5+H&J$1n0-ZR0eJ|F=hpxrsJxHH(X zxe+dRG6p(<0yEQS2AYKAnFAH}FXMRyhcZXbM=xS(g3+O!m8oizzgEuVW*!yPp>%OZflLsUnG;cN03JKYkvqCah7bw7J%LdStulGium>i!lJs z_@~Ft&M0N?jo>}hVUpU}8Sgo--}}${c=?A8J6?5|0{or@ZE|!V+)_+(e42|hCK3S_ zX5Pc~lIUB-=Ab9%Vq|povmgAe?Lcs%v!Y~eHUyJ@{F}dt`~5!X8>+7JLTpGfqQZ3@ z35~T*9Gq$}9>Zr+M@EVEIrCb67jND_j$>AxXrCfZ+|PUCyZ9-e#dZ8CulR1J-{D!k zC*~-h$vorvF~68c?1kJbW3+0hbBwWgZTv3JNRp^F~%b!d!mWz93svu=V43tYxJh>k(@o> zec!t?T6nALl=zTm$h_+sTIa{yb06xy-YuH(Falaqefz zapWXmkrNbE7YOuEA*X}QY zB}pxbFXK(qRP2>;YoN<~YXH|d)S?rCQ7d;8A?{P{>Mg;Fdup&qhvx6xzZSTpK=6G$ z9%n?1`JMu>?4ztzzN^32f>INyCEA&!Y%)_?FZ0Yq!P%J-ryPHp_%{@o^mvQ4=vn?U z?^?)~a3h5v=2kzKGq3Se8d)i5wPE>pDq*QMBmN!F^?CaB{*L)`ow^W@KDu{Iw(sW- zSSJ<(w#XRYTkBn)2g=KV)J?nh^xJDth#geP4TZqXpDHxSJ*UEWsN>P)t#z*^%2NwK z@*0TE=B7~`Ud&FA4 zf;^$+?lbm87k%d5Ed8#~939>mHUF=!GD-me z1YxLQ-T%rlY_$mq{e&Nh?Y&o(mT@es(CMY`b@PVpPa*OX9q*Vyhe8K%1)ROyE&iCo l2V-Y0Ob`_hmHWKCI2+jVI+gronJWMQ002ovPDHLkV1o2WuVDZH diff --git a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs index 3d8aaafeb..ec37cdf0d 100644 --- a/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Editor/ImportHelpersTests.cs @@ -73,26 +73,9 @@ public void ImportAsTimelineClipTest_ContentOk() ImportAssert.Editor.IsValidImport(usdAsObjects, expectedGameObjectCount: 1, expectedPrimSourceCount: 0, expectedMaterialCount: 3); } - [TestCase(TestAssetData.FileName.TexturedOpaque, Description = "Opaque Texture")] - [TestCase(TestAssetData.FileName.TexturedTransparent_Cutout, Description = "Transparent Cutout Texture"), Ignore("[USDU-232] Test On HDRP")] - public void ImportAsPrefab_TextureDataImported(string fileName) + public void ImportAsPrefab_TextureDataImported() { - var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); - var assetPath = ImportHelpers.ImportAsPrefab - ( - scene, - new SceneImportOptions() - { - projectAssetPath = ImportHelpers.GetSelectedAssetPath(), - usdRootPath = ImportHelpers.GetDefaultRoot(scene), - materialImportMode = MaterialImportMode.ImportPreviewSurface - }, - GetPrefabPath(resource: true) - ); - - Assert.IsTrue(File.Exists(assetPath)); - var prefabGameObject = (GameObject)Resources.Load(Path.GetFileNameWithoutExtension(assetPath), typeof(GameObject)); - ImportAssert.IsTextureDataSaved(prefabGameObject, fileName, isPrefab: true); + // TODO: Implement when we can change the SceneImportOptions when calling ImportHelpers.ImportAsPrefab } } } diff --git a/package/com.unity.formats.usd/Tests/TestAsset.meta b/package/com.unity.formats.usd/Tests/TestAsset.meta deleted file mode 100644 index 67777c4ef..000000000 --- a/package/com.unity.formats.usd/Tests/TestAsset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e0603965c43a02e4484138ace306f7f0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From 82509d95987eff0ccabaee7b5f5a77009a3cb23c Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Tue, 17 Jan 2023 01:16:14 -0500 Subject: [PATCH 09/10] Applying review suggestions --- .../Common/CustomAsserts/ExportAssert.cs | 34 ++++++++++++++++ .../Common/CustomAsserts/ExportAssert.cs.meta | 11 ++++++ .../Common/CustomAsserts/ImportAssert.cs | 14 +++---- .../Data/UsdImportTests/Textures/textured.png | Bin 1701 -> 298 bytes .../Textures/textured_emissive.png | Bin 2007 -> 298 bytes .../Textures/textured_metallic.png | Bin 2004 -> 284 bytes .../Textures/textured_normal.png | Bin 1899 -> 500 bytes .../Textures/textured_rough.png | Bin 2845 -> 392 bytes .../Textures/textured_transparent.png | Bin 6134 -> 925 bytes .../Tests/Editor/ImportHelpersTests.cs | 3 +- .../Tests/Runtime/ExportHelpersTests.cs | 37 ++++++++++++++++++ .../Tests/Runtime/ImportHelpersTests.cs | 6 +-- 12 files changed, 93 insertions(+), 12 deletions(-) create mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs create mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs new file mode 100644 index 000000000..5bbaa7208 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs @@ -0,0 +1,34 @@ +using UnityEngine; +using NUnit.Framework; + +namespace Unity.Formats.USD.Tests +{ + public static class ExportAssert + { + public static class Runtime + { + public static void IsDataStructureKeptInUsdz(GameObject importedObject, string expectedObjectName, string expectedRootPrimName, string expectedMaterialsName) + { + Assert.AreEqual(importedObject.name, expectedObjectName); + + var rootPrim = importedObject.transform.Find(expectedRootPrimName); + var materials = importedObject.transform.Find(expectedMaterialsName); + + Assert.IsNotNull(rootPrim, string.Format("Root Prim was not found under expected name '{0}'", expectedRootPrimName)); + Assert.IsNotNull(materials, string.Format("Materials was not found under expected name '{0}'", expectedMaterialsName)); + + Assert.IsNotNull(rootPrim.GetComponent(), "Root Prim GameObject did not contain UsdPrimSource component"); + Assert.IsNotNull(materials.GetComponent(), "Materials GameObject did not contain UsdPrimSource component"); + + var materialsData = materials.transform.Find(expectedObjectName); + var rootPrimData = rootPrim.transform.Find(expectedObjectName); + + Assert.IsNotNull(rootPrimData, string.Format("Root Prim Data was not found under expected name '{0}'", expectedObjectName)); + Assert.IsNotNull(materialsData, string.Format("Materials Data was not found under expected name '{0}'", expectedObjectName)); + + Assert.IsNotNull(rootPrimData.GetComponent(), "Root Prim Data GameObject did not contain UsdPrimSource component"); + Assert.IsNotNull(materialsData.GetComponent(), "Materials Data GameObject did not contain UsdPrimSource component"); + } + } + } +} diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta new file mode 100644 index 000000000..8d393bbcd --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5a3ec5d050a6c64197a4333979de0bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs index 9f7729dba..4dbf0956b 100644 --- a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs +++ b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ImportAssert.cs @@ -7,7 +7,7 @@ public static class ImportAssert { public static class Editor { - enum UsdPartType + enum ObjectTypeName { UsdPlayableAsset = 0, GameObject = 1, @@ -24,23 +24,23 @@ public static void IsValidImport(Object[] usdAsObjects, int expectedGameObjectCo int materialCount = 0; int usdPrimSourceCount = 0; - foreach (Object usdPart in usdAsObjects) + foreach (Object childObject in usdAsObjects) { - switch (usdPart.GetType().Name) + switch (childObject.GetType().Name) { - case nameof(UsdPartType.UsdPlayableAsset): + case nameof(ObjectTypeName.UsdPlayableAsset): playableAssetFound = true; break; - case nameof(UsdPartType.GameObject): + case nameof(ObjectTypeName.GameObject): gameObjectCount++; break; - case nameof(UsdPartType.Material): + case nameof(ObjectTypeName.Material): materialCount++; break; - case nameof(UsdPartType.UsdPrimSource): + case nameof(ObjectTypeName.UsdPrimSource): usdPrimSourceCount++; break; diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured.png index 758a507304fd01967a3bc5b2390c885bce1a3e00..14fb7db9dd394663f98cc4e2ebdc9d2c1817a63f 100644 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>f2;G= zY@i5ZlDE4H<9{aIdq56nfk$L91B2u>5N4FPc_2CBHIl%O9Ls!;vjb?hIQv;UIIBR>5jgR z3=A9lx&I`x0{NT;9+AZi43gJCm{H>5skaOaY*wBwjv*CsZ?6~%GAQsc7`BwGsZXys zz`Fm5o>b909ftou#TPt`Z)mG$l={b-@ne)T8U~~3U^Fj`mIoueOw>4Icds&nO{CUD R8(6h4c)I$ztaD0e0sw&;^ql|z diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_emissive.png index 60fd08432eac7049e738a22822350c4fd7ce8a87..836139e924cf44ad9ab422459c9a614388fc7111 100644 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>X-XuWIcBvQ$f4BT7;dOH!?pi&B9UgOP!ev95ukuAzB|fvJ^| rft7)owgHed*mug^1Vuw`eoAIqC2kGpr~mH&YGCkm^>bP0l+XkK)wN9a literal 2007 zcmeAS@N?(olHy`uVBq!ia0y~yV7v;%4>{O?A{Id^K0u1GILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-IM`SSrgXA?3W|X*i>Ma8Udyc1zV@O5Z+pC6*4F&=S4zT}E(pqIL zlyK0|_@3^>39oOymSuQw0)3IFPO6{&;}^Ml;rL1!tlSn|IB_MkF&rd zvY3HE@)`&;N?bhk7AVMG;_2(k{+v;eRfK<4*M$E-A%0I6#}J9j$re3q5^mcV80JeJ zW=vam$_^-{TH+c}l9E`GYL#4+3Zxi}42+C*4GeV+%|i@Kt&9w;49v6*fTY2`Q|=}x d8glbfGSez?YdAmse+N(lgQu&X%Q~loCIBS2Nxc97 literal 2004 zcmeAS@N?(olHy`uVBq!ia0y~yV7v;%4>{O?A{Id^K0u1GILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-IM`SSrgXA?3W|X*i>Ma8Ud#0z0V@O5Z+pC6*2Ml-)Y{>Z&$r|y! z$FbI{U-8GyyT%L$wtm-VC^#9ysF1XZLBKGSp<{*?gNu(SgVHiC2Eky~hK`j?4o60% uM}uWFIgDn5(b8eGR2;1hFe}L;XV_h9*tzu0YW#pTF@vY8pUXO@geCwKa|p-) diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_normal.png index 010283b6bddd93b40baeb84acab21a0ea7bbf468..92a9d737d478fde345db8e07322000028b976974 100644 GIT binary patch literal 500 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 diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_rough.png index 3040ae025067e0f330891f1e654463061d90de5e..4909063481b423878bf57e1a3254780b47f59504 100644 GIT binary patch literal 392 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 diff --git a/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png b/package/com.unity.formats.usd/Tests/Common/Data/UsdImportTests/Textures/textured_transparent.png index 84d6e423e1267e6b25cfafefffc5952ea50bc43f..6584e10ddddba8281b9c75362900b67600ca7bad 100644 GIT binary patch literal 925 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>^B0XfX)DNff|7#wGL}*>{r*>uaC7UtOY4s3seBKtI%m;El?JuY)!u7 z1fWxarU5Ojv0GE%I0LB4YzPx$b}%q4(kdXrvUv0v<^su&EHrDa@%I0lX9He z!773Nnhf*~ke%<;2lNrh*C0<70v!Mh8KBA04jKRd|G#qei6t;tQ%i#Ug14?(wQBYH zb!*pdTD@xf%B8cW&zLcD*6isER&8l+X=!e4X>Mt4nz~{0jJCGcwwC5~t6SSzfsEBH zt!t;vZfR|sy=G=>+l)2q=C#e3+1fgNP0QLApoVD+r%#_TYv%lgJ6En*vu6EX3oVm> zKnod@yxm<=x8CiT59F|yc>21sKW7wV72#jiHQ_%{=)0$jV~E6M*)uPrngT>xAM!@d z@>TaSvdqaaS5kLiKeLgu0Aaq5x7d~x~0@Jt>s(4^4_>(v~6wFSvMCU>obhgGvi`SX1(|+$GV1< zby@eC*e!c(eR+d9SeE`>EoZ5)k>T>r{+S?m1P%AJKijQ zEH`J)qz92r$J4)lmV5GxQM~05)9mIQg_;MaX7P2bv%I-a^z}p*^T4myc3l4YK<@3k z!vSsAl1-#+r_PK2wLbsp!)jJLyV&p9GHoZfPZp^^w!i+xY%QhocEhj0AW$uFjVMV; zEJ?LWE=mPb3`Pb<#<~WEx`yT<2Bua<237{<+6F+Py1ut`KgRCr#MTkDft#dYt~eecZfO18ApO16cBgu&9x>V>eWRH{;yFZtj~jFDEV zxMG_)i4zm+v5N#I`4||5>YUR(x9`lIl{{6jqnSJ1r+?@DX!z=Z0|)?${-YNn`uC`mlF#Y0m0sbu;hFgP zuwK8v@*CQd{?h-1j^bLVh=f2({;WK8H#Ej;((j$4HBrIW#>Noe*zunx8~QCOOxi;ll>@9S zD>N1rpi;V}X%z)lDU~SG8bEC;%B2fvO3wpQ9X`eCxT#+lY2-1qCR!q*QTM4Wl> zSp`XE9O0~mCz@E#&-Z0MATqm9BRJ)hb_gs^$|rXepp)*v8NfsE`PyuT%<7x9DW7pF)EeBmM!? zK=5ZICqUb3I|!&-i0BAxbYRJ(IR^|TuwWpqPgvQkIeNxGq7hw!^;e!`0MyJw-_@j_ z8X>7)nb6O-2DVr#i{fMI$Gh<-=P*Gq^gJYOqKRl^0>J9)>(8IaW=2l~Xywo)s{ZOz0f1)#Nc@~i>do;@?| zGs}a<4K9E)nCYc~6sn8)(U?5%FA$Lc?(-tX@cwKkNE&l74eCVSku4y&(6M-sG<58d zfS@g5MEno{EIkN{!31GH(XX01^i}ycJMAk#xxLz8i-a069PDqjzN97_#2- zskJLxhm3O93{g`lElhG>g`f5_8I|<7+iLsjF`SLa$!7c)TWgNbgI2dZU5!C z0Px0+@9Xx^dk&RO>dnJjZylI&$|f2sEw-fxTR*3+>>w0hI0U%nguYYlZ0Z;~2_4l80 z_ci`b0C@BMAHc$zYlLJ{Z%%Bzb?_9b%qVAg!4BWO+jh`kV-`&V9^Y@nk91M4?` z78#uwgn}IiMv)B_*%8e|$}1~? zAW^O|zX|V~{c8pQ-`sW{7S_D!v`f?48{gV`YwR>yawmi&=`4vpQIm^cAeFB34mm2Slxfw1JHcv zG$1Tf)R)v7fXu_}1k5*6tUqS)yAyqHvu z-izu9TpTWNm@nq1?C?H|_W~kPcWvZ_C+(HdQ{)Dn$yTe+{o)v>!+Lh#X|QIIZr7&GRkmx4}M+%1k>+%G#kXU^mjOVlmreE=;F3*w+GXG<v*E}qC{YNrVRglqtJ{6Zo@)%^S^ZS@l80y{51eb4)2&(I+vdzXv1L4H6D7F zQcALF$!KGI(|eCjQbra7AjJl$J_Xkpb0p|vh`fSJilaf+*G|wx*b2BIDdO+Bt{|TV zqnkU~@HF|9IDjfrQuZ$|0Y_Vn9n(~(aVi_Y+Al={^y{BLt!%Oc%7Pi4nYicuM<*$) zCSy|}1%kPJwk7sSRW*H_6J#a{I04;)}|A%=W9JCshqBz7PVe!36#hk!udgxb`|e`JyX2nLWA6A|rS_y{5%@`sg*sb%UEKi{n? z!ESUwjbfCQv_Gg;P}3VD7oNx(wMni>q>CHz{+Vxz7x*;+u<9m-i&PNV^8S~nBt6aZ z^?aj#RpQ*;#YDw+A*hK+mLyt1$zmH(Ov2=e5ZLq{IH-#+8_Lt2jIaY5B|{rteA>;7 zKF0--%1573+h+czQxH+@RllPM#MGNdw%*!5#bGI{b{?LJNKzorU4f3G3delr>a)W< zlrHBHS13U$m3J>KBJgoxW+e%T)sV8%YwIr@v(4H$Zi!SDHsNPyz9ACOeCRn;hRQBr zYRx0}-gn==WjnT78YvuI9uzKLqKZ+N)y6+6MlLd+dO?~Exd*}C`36&cWsGQr~zPr0nawi(| zLP|kVqUHv%!HW|mL*!kkDt9OQLwem~Y@TAOn#%*(Sk~VX&{7Ln>*N%7zc=%cE zpiPgPoioR_%s)Ea4}c&A`OtA@v zHTFCUR1;LL;_5F;B&Zt?KgZc1Y4*;`Pi&bRo200voLjP`c!**rCilzvyO1>HgyycQ zEWKUX;01%|U9>OFmw`~sKrL9cxccq2|NZx>vFEgpwh}k`%0DpxrupzQ&LK;HuFp)| zJOAi(=({mNDZEKi^c%eczR|6{|SvlOdS>!bxTIk_X`U=J_w3Gp^Fk zL)$#|?*$|VL40uzLjO2EK0MinUT+gy8J|ONg(z=&uylqH+$ULb=)(WFX0eps{PfK= z|NB?i+;>U}sJ4ouKle7^>fUM0svmH7Z}jrSmihft)ORnB{BpU-{V^$Hv1~2}EKg>- zjUdzGQ`UmV@g=yp=)%wWBrQ~{3sMjlZhWhqzHh;;k@tpw_6=%{hop3_}6-|)V>YpRHj-3?~eTRao5~?h66cc2UXoygy8DlGtjOqut@E^ zGQMSQ|2eV&cZ&Txhwb$2qz~WCkuvV~vn{;=Ro^E&RiD_!<}~@f14?1TspaIiBR@Hc z&E2QvnXIBlf92cb&Aq3zO?V8(>}*WjGxz0b1IBhbGhKbQoEy^T%Qp>Xynk#U2}(~z zt=}o5&&$><+8oji3oS!!d@*!>GXepverMywiL9~vlvIgq)r`J&!cU0oISsbD$Th*y zD-)Y;J~ExCG%HkUqB2)`^P$W(gb1=2A%yDEU7Y$3kK~{P!|On4ZsXD+eUp^cLRolw zx!VU55G#hCrQ}Pb z7wYx$NYqp4wA#bxmG5kP?~Bi;YSp3`6JLujsrTQBgDV46Ooi{XR{nhvknWx%Js0K=$n=HW zh1Blt4KGc!8@01id2D^c)UO=nf{32o^DpSCw?zUj9bY&9C;v6*HvW#nC9e5<|6A6G z=x?I(T44DzXp`?v9PVGO4z z%0cZ!5<=5e>Iw?`-%fRfVTGI5gRisb8A#eSrt30n-n?1WXLi{n3RA zZhTiOlMyH+Mxk>{%ZAjnJ2qhP>(iaRdlBz_vP>#O)blEHr`*otaJ{3gH2w0<$i-vr zX8kOmAzfGxpKE@L0Z?x|IB8myk4V&$(aRHS=l=MG0o?dov8GZOEd${0ji4kccN~xJ;*2l3N1Tc4wSyW?nh(!n*{rsQ)u#&BLKduS>p#X%zsW@EC4U%MR#UjVb*1o$S!rYH$5LOz-VrkI`@2tOg z)HZfbN+g&KVeMB>NKLT0?-^rdz{u>nGXClJ{`_AJB<;|ojN4Gn|R5jh)j}4?yP?EInOb zFcC?SVjUlV-{;9sc}XkJB1^d+@5z#o7h1w-EzOJsMGcRKwjKQ?y53xWejI1&laQp8 z92vLc|DI+EaLqku4W^3>K&|=hZMVm!dgp&*E8U%$bx&$YD?I?vi&-)DkJTmsAbEYC zt1A5Sl_%4Rd&;!ywY3+Hx<-A9`vM9@1xNz0v1=MI`6xrDtM#kLcuue|03Daa%9
Ss`=prAd7wO73x zZ0w!XN-t1z)YN9jx6O^6fS3oTEYuCIIXN!QqQl4=DOvIJ_ciWjhr-MJC0HxF-{ z8=DLgkXzDR3OaMTJT@RBZE<9hmx)tB1_Z(Abc$3v3TZT5jo0Kn=jH7;of*IXtA z`5rz>B^4MxKVh3Y&uY*vQzw7R6|Q zkvS5nLh+#eYkItnKWN8rMGceAoN|~Sq8l~rVx{WCS*%xuvVrMf1Kt{b@wjX5IZfAm zycZBRh_ibqwM##y9LdxhN4Cx%;*>Fdg&BZ;emc$@WRyirq}&tAQjK)iPlhQuu!*KT zc!t<#Z(Pj*tLZ`!+j$=VQJycA9;d8c9wgg}qz1ZOO>xynJjm?mwotGA3HKF90^H2# z8Fqu<22|};DT-1Y07!TC7=Yv3<_{+vKnSM5I_~y5AO$splrwY}5ujCR!SB~{oyuf1 z00^mFbGxEee?X!gyTsTHhDeapVH%ZHt%|DuLOMh4>aJ;MS3cx>V7o3oMORP!wYAK# z1yba2=r#tKpoA`L@kj{Jl{&e=MR(ZfHmU-fD%5Shddc}1#mHDe3O#v@lBUntsM9U5 zQ~@Rm^%9~ptW8wTmn#4nxn=G{E4oUj=skG>x}|FQCLCYwWc!oQ%`tKlvL46N9Q{yD zOablh5@*$dogJN)%bFjLs0U{LfjdJuyYt_`4%|YgT(}4+BfB0$W=yz5>SveP8_|Sx zTs#k9Dwk0B&PSO2qz_J z&~1qcTAB80x>KobvIuDSKBVj)7O{qBgzlTAD>Dbty}f>Q~mO1CTEstc@EJVVTP zB{g3HLq#f*IanS9lT{IH!YGi9Xsw?2x6j(#!1V{GcBevUE6^H}c2$90tyHF*OWR{_rE(|+TwImyGdTEW`eB+Do)dTy().m_usdRootPath; + + Assert.AreEqual(usdObjectRootPath, "/"); + + var usdzScene = ImportHelpers.InitForOpen(usdzPath); + var usdzObject = ImportHelpers.ImportSceneAsGameObject(usdzScene, importOptions: + new SceneImportOptions() + { + materialImportMode = MaterialImportMode.ImportPreviewSurface + } + ); + + Assert.AreEqual(usdzObject.GetComponent().m_usdRootPath, usdObjectRootPath); + + ExportAssert.Runtime.IsDataStructureKeptInUsdz( + usdzObject, + expectedMaterialsName: TestAssetData.ImportGameObjectName.Material, + expectedRootPrimName: TestAssetData.ImportGameObjectName.RootPrim, + expectedObjectName: TestAssetData.FileName.TexturedOpaque + ); + } } } diff --git a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs index 65c843e2a..37d0f1d97 100644 --- a/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Runtime/ImportHelpersTests.cs @@ -138,15 +138,15 @@ public void ImportAsGameObjects_TextureDataImported(string fileName) public void ImportAsGameObject_TextureDataImported_FromUsdz(string fileName) { var scene = ImportHelpers.InitForOpen(GetTestAssetPath(fileName)); - var usdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: + var importedUsdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: new SceneImportOptions() { materialImportMode = MaterialImportMode.ImportPreviewSurface } ); - var usdzPath = GetUSDScenePath(usdObject.name + ".usdz"); - UsdzExporter.ExportUsdz(usdzPath, usdObject); + var usdzPath = GetUSDScenePath(importedUsdObject.name + ".usdz"); + UsdzExporter.ExportUsdz(usdzPath, importedUsdObject); var usdzScene = ImportHelpers.InitForOpen(usdzPath); var usdzObject = ImportHelpers.ImportSceneAsGameObject(usdzScene, importOptions: From e5e888f974522c57d5769c7c3bca59c0452385a7 Mon Sep 17 00:00:00 2001 From: "andrew.lee" Date: Tue, 17 Jan 2023 01:40:05 -0500 Subject: [PATCH 10/10] reverting usdz structure test as this PR is getting way too big --- .../Common/CustomAsserts/ExportAssert.cs | 34 ----------------- .../Common/CustomAsserts/ExportAssert.cs.meta | 11 ------ .../Tests/Runtime/ExportHelpersTests.cs | 37 ------------------- 3 files changed, 82 deletions(-) delete mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs delete mode 100644 package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs deleted file mode 100644 index 5bbaa7208..000000000 --- a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs +++ /dev/null @@ -1,34 +0,0 @@ -using UnityEngine; -using NUnit.Framework; - -namespace Unity.Formats.USD.Tests -{ - public static class ExportAssert - { - public static class Runtime - { - public static void IsDataStructureKeptInUsdz(GameObject importedObject, string expectedObjectName, string expectedRootPrimName, string expectedMaterialsName) - { - Assert.AreEqual(importedObject.name, expectedObjectName); - - var rootPrim = importedObject.transform.Find(expectedRootPrimName); - var materials = importedObject.transform.Find(expectedMaterialsName); - - Assert.IsNotNull(rootPrim, string.Format("Root Prim was not found under expected name '{0}'", expectedRootPrimName)); - Assert.IsNotNull(materials, string.Format("Materials was not found under expected name '{0}'", expectedMaterialsName)); - - Assert.IsNotNull(rootPrim.GetComponent(), "Root Prim GameObject did not contain UsdPrimSource component"); - Assert.IsNotNull(materials.GetComponent(), "Materials GameObject did not contain UsdPrimSource component"); - - var materialsData = materials.transform.Find(expectedObjectName); - var rootPrimData = rootPrim.transform.Find(expectedObjectName); - - Assert.IsNotNull(rootPrimData, string.Format("Root Prim Data was not found under expected name '{0}'", expectedObjectName)); - Assert.IsNotNull(materialsData, string.Format("Materials Data was not found under expected name '{0}'", expectedObjectName)); - - Assert.IsNotNull(rootPrimData.GetComponent(), "Root Prim Data GameObject did not contain UsdPrimSource component"); - Assert.IsNotNull(materialsData.GetComponent(), "Materials Data GameObject did not contain UsdPrimSource component"); - } - } - } -} diff --git a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta b/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta deleted file mode 100644 index 8d393bbcd..000000000 --- a/package/com.unity.formats.usd/Tests/Common/CustomAsserts/ExportAssert.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d5a3ec5d050a6c64197a4333979de0bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/package/com.unity.formats.usd/Tests/Runtime/ExportHelpersTests.cs b/package/com.unity.formats.usd/Tests/Runtime/ExportHelpersTests.cs index 913a4ad43..5575ab601 100644 --- a/package/com.unity.formats.usd/Tests/Runtime/ExportHelpersTests.cs +++ b/package/com.unity.formats.usd/Tests/Runtime/ExportHelpersTests.cs @@ -110,42 +110,5 @@ public void ExportGameObjects_SceneClosedAfterExport() ExportHelpers.ExportGameObjects(new[] { new GameObject("test") }, scene, BasisTransformation.SlowAndSafe); Assert.IsNull(scene.Stage); } - - [Ignore("[USDU-275] | [USDU-279]")] - [Test] - public void ExportAsUsdz_DataStructureKept() - { - var scene = ImportHelpers.InitForOpen(GetTestAssetPath(TestAssetData.FileName.TexturedOpaque)); - var importedUsdObject = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: - new SceneImportOptions() - { - materialImportMode = MaterialImportMode.ImportPreviewSurface - } - ); - - var usdzPath = GetUSDScenePath(importedUsdObject.name + ".usdz"); - UsdzExporter.ExportUsdz(usdzPath, importedUsdObject); - - var usdObjectRootPath = importedUsdObject.GetComponent().m_usdRootPath; - - Assert.AreEqual(usdObjectRootPath, "/"); - - var usdzScene = ImportHelpers.InitForOpen(usdzPath); - var usdzObject = ImportHelpers.ImportSceneAsGameObject(usdzScene, importOptions: - new SceneImportOptions() - { - materialImportMode = MaterialImportMode.ImportPreviewSurface - } - ); - - Assert.AreEqual(usdzObject.GetComponent().m_usdRootPath, usdObjectRootPath); - - ExportAssert.Runtime.IsDataStructureKeptInUsdz( - usdzObject, - expectedMaterialsName: TestAssetData.ImportGameObjectName.Material, - expectedRootPrimName: TestAssetData.ImportGameObjectName.RootPrim, - expectedObjectName: TestAssetData.FileName.TexturedOpaque - ); - } } }