From df3515e5e9a5c72162eb71a22f29ce9de79b1b62 Mon Sep 17 00:00:00 2001 From: Sveske Juice Date: Sat, 3 Feb 2024 15:19:46 -0800 Subject: [PATCH] player health bar --- Assets/Resources/Player1.prefab | 195 +++++++++++++++++++++++ Assets/Resources/Player2.prefab | 195 +++++++++++++++++++++++ Assets/Scripts/BloodComputeShader.cs | 2 +- Assets/Scripts/Player/HealthComponent.cs | 2 +- Assets/Scripts/Upgrader.cs | 3 + Assets/Sprites/PlayerHealthFull.png | Bin 0 -> 5144 bytes Assets/Sprites/PlayerHealthFull.png.meta | 127 +++++++++++++++ 7 files changed, 522 insertions(+), 2 deletions(-) create mode 100644 Assets/Sprites/PlayerHealthFull.png create mode 100644 Assets/Sprites/PlayerHealthFull.png.meta diff --git a/Assets/Resources/Player1.prefab b/Assets/Resources/Player1.prefab index fb4f604..7b17070 100644 --- a/Assets/Resources/Player1.prefab +++ b/Assets/Resources/Player1.prefab @@ -142,6 +142,90 @@ CircleCollider2D: m_Offset: {x: 0, y: 0} serializedVersion: 2 m_Radius: 0.5 +--- !u!1 &2470138561869876166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5278398606840885145} + - component: {fileID: 647933724824315688} + - component: {fileID: 9130580774853064894} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5278398606840885145 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2470138561869876166} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4334414235280299636} + m_Father: {fileID: 320690117028550720} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &647933724824315688 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2470138561869876166} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &9130580774853064894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2470138561869876166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 --- !u!1 &3096169748286405671 GameObject: m_ObjectHideFlags: 0 @@ -210,6 +294,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 5278398606840885145} - {fileID: 1930891210259786141} - {fileID: 1170758327458850867} m_Father: {fileID: 0} @@ -356,3 +441,113 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6b097a132c072b72fbc7808ebf263e52, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &6225877037457186740 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5278398606840885145} + m_Modifications: + - target: {fileID: 3891416435710064780, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: attachedHealth + value: + objectReference: {fileID: 3086165646112058191} + - target: {fileID: 5537527563549888860, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Name + value: HealthBar + objectReference: {fileID: 0} + - target: {fileID: 7075700545869768638, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 714062a6703c86948abaa8b5566e01c1, type: 3} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_SizeDelta.x + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchoredPosition.y + value: 1.54 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} +--- !u!224 &4334414235280299636 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + m_PrefabInstance: {fileID: 6225877037457186740} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Player2.prefab b/Assets/Resources/Player2.prefab index 1840cd8..889c005 100644 --- a/Assets/Resources/Player2.prefab +++ b/Assets/Resources/Player2.prefab @@ -210,6 +210,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 8164385906348680530} - {fileID: 1930891210259786141} - {fileID: 1170758327458850867} m_Father: {fileID: 0} @@ -356,3 +357,197 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6b097a132c072b72fbc7808ebf263e52, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &7787472247078384126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8164385906348680530} + - component: {fileID: 7255423374738367095} + - component: {fileID: 5639731540567949723} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8164385906348680530 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7787472247078384126} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7743393281510400444} + m_Father: {fileID: 320690117028550720} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &7255423374738367095 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7787472247078384126} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &5639731540567949723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7787472247078384126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!1001 &87296603994466428 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8164385906348680530} + m_Modifications: + - target: {fileID: 3891416435710064780, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: attachedHealth + value: + objectReference: {fileID: 3086165646112058191} + - target: {fileID: 5537527563549888860, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Name + value: HealthBar + objectReference: {fileID: 0} + - target: {fileID: 7075700545869768638, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 714062a6703c86948abaa8b5566e01c1, type: 3} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_SizeDelta.x + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_AnchoredPosition.y + value: 1.54 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} +--- !u!224 &7743393281510400444 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7656168731602766272, guid: 0ea0f1215ba49f5448e8e8d60a899fe8, type: 3} + m_PrefabInstance: {fileID: 87296603994466428} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scripts/BloodComputeShader.cs b/Assets/Scripts/BloodComputeShader.cs index e1c7633..79a8d0a 100644 --- a/Assets/Scripts/BloodComputeShader.cs +++ b/Assets/Scripts/BloodComputeShader.cs @@ -156,7 +156,7 @@ public class BloodComputeShader : MonoBehaviour activeParticles -= (int)bufferData[0]; - score += (int)(bufferData[0] * scoreMult); + score += bufferData[0]; squeakVolume += 0.1f; diff --git a/Assets/Scripts/Player/HealthComponent.cs b/Assets/Scripts/Player/HealthComponent.cs index 2824f88..2b6949f 100644 --- a/Assets/Scripts/Player/HealthComponent.cs +++ b/Assets/Scripts/Player/HealthComponent.cs @@ -40,7 +40,7 @@ public class HealthComponent : MonoBehaviour, ISquezeDamageReceiver if (currentHealth <= 0) { OnHealthZero?.Invoke(); - BloodComputeShader.Instance.createBlood(transform.position, maxHealth*10, maxHealth / 25.0f); + BloodComputeShader.Instance.createBlood(transform.position, (int)(maxHealth *maxHealth * BloodComputeShader.Instance.scoreMult), maxHealth / 25.0f); } } diff --git a/Assets/Scripts/Upgrader.cs b/Assets/Scripts/Upgrader.cs index dcc406c..d32c783 100644 --- a/Assets/Scripts/Upgrader.cs +++ b/Assets/Scripts/Upgrader.cs @@ -168,9 +168,11 @@ public class Upgrader : MonoBehaviour foreach (Image i in upgradeImages) { i.fillAmount = 1f; + i.gameObject.transform.localScale = Vector3.one; } upgradeImages[p1a].fillAmount = acceptTime / 2f; + upgradeImages[p1a].transform.localScale = Vector3.one * 2f; } } else @@ -180,6 +182,7 @@ public class Upgrader : MonoBehaviour foreach (Image i in upgradeImages) { i.fillAmount = 1f; + i.gameObject.transform.localScale = Vector3.one; } } diff --git a/Assets/Sprites/PlayerHealthFull.png b/Assets/Sprites/PlayerHealthFull.png new file mode 100644 index 0000000000000000000000000000000000000000..47e744c7657b76f804e0915cab9f6b6d5ba8625d GIT binary patch literal 5144 zcmeHKc~BE+77t<915j{W1vL&aB6xMu9TGxf!i^F!z#^BTLZ`cft+`AZ2s(IMfZ&C< zsI17U!&>N|f`ZDS!s3+cF{9%k0^*H|fCq?-?3Zv_J5@W@uK$s$bh^Ly`uE=Zz2EyP zUrJEGtYH>oEod~_FsYwUFpXw56Wj}j3zI(XIV1_w*Ir?iIPJD|E2sMpyh;z#UIthX1J4=tHMR&5wo8y|vuObC|;3ymo16>6R-w>rzkU z4$oc7Y%{BWS(p8cHR%&)%IW0hy0iAL8zqf3W?qNOLQYMyIJS?-u1AoJ$Wi7eZ0ag( z+L0;9+`w#G=O#u}Yg6+(cG;=(*MAeX?>Jvc%k*Oqh3E*4&2{yB(bL3wn`u&uW?}Ps zPg{qTj|yM5jC-1OiGJN`%-)~H%aS9e$DOP$J&qr{?0gyZy*)YVpM}S@HTB2CmK=`_ z{8SdbC{n6F@MLm*gcn_!y!Ef%V@5?J-^ke}XZe0atUHq*2B!NvhL1^OSRV7*@Tje{ zvo5|sfiAx)vnXHPXnXIIojJY8UR~5` zh!2d>bRHz%wVLk@(B(re?^9{C;h`i@ScGhj2-B$8D6WwcY=cS*q(`HP-3?k4TS`z& zIT1suC9Ky)#VjU?OIYE287$L!6N^c|S@_-O*`BF@Xv)tV*#0C)nP!SZ$G^mtn zy~rS8nQ%qm-nh(RF-xEbAyIBBya15xHgRo(aO2z5_hMw|`10dZA{q7t35HP5m zU_!5n)nSBh9HFKr_J^1yl?C-87)y#FRa#R~fV|Iw;aIPqHdd!J`QR9bP!cKtst5TY zpZQayqK~Z4ax+>?<@8SkgzLrs%)6&{lQZy=$wWRHEY=uQ>LXzp^A+J5jKoEzTLll} zy9&7&q<~R5#8dFO5Xu$8kWk2X<)cCY;zBt0gOaNC6spDuBNPBkSa8W;Aqt`CWEmtB2W&X7Bwmr zAe+`fH6m{vfl?Y>h(@E7u#DLt+9 zs|fDrufa)0!hiENjt^7Z)pS2n58@}7mbzwYF0riZsq0ZmnudwVG>wG_#kxw+qj3ao z$`fF9nXtvEI)(uIN4H>m*2&)!gFvBB$oV`7MR)|nHk3Gtz?$%Z6ouwtRCtIIN=U8F*wD%RAAFCoBzd8C1t#J;6PDB4>GxLvKJnYQY zkN5+Zy7d>94H=HtZ2nXu?tIrUb+4pF7#B9_>CT74o$SjA>AsdW{gLh0iXYqL68A2Y z$4bMlcO;B{^}>}M6WZz|RfGmR?Y&(YB7V?T=6bo|hoMVrX1y#lwC0bo&%Dx9SA`r1 zyZ@JVG<|>T_GdY-E^5N!(E}-y%M5p=>f3Q6Z#V1=j67PO<1i(1^NKgxc825i)b;8M7!`wA8t}VRy)>L zD6TDThO}D#;lU6-Z+f%Qan{_LbW9|p;%}|p$3;je>KUS-5W#79Rx$CIl9|0{ZZzbNy zO)R-sxqGKz?ZYiG=?fYo?puu*KQ1cdn;XS3HI1t}8_!!mxb1#7t4O)My5@w(kx(77 zY@NVq?9I~L)Y;PF!Bv^Ar`lVI#Jt}Y{fZqZzjHJ%L7E#7%@-=07vz@>nE_S3YF+2% zvgu-Z?Yav?CNh?ceZ2Ub6TPpEuEVa`SF7Jz<<2&*IP~a>I)#hSD<1q=Gm?*#&2`+} zoHGATKut@F6Sr(gl6BPc7jYR$t*Y7`wZB9b9CoVS{I8rhQrn7xoqmn&TPvUK314A< zg1fRJy@Mffc~yJJX?y~@Ugn>l