From 601c806519a58abfd5a42ab334b6eee13f249ab6 Mon Sep 17 00:00:00 2001 From: LocusAzzurro Date: Fri, 21 Jun 2024 01:35:09 +0200 Subject: [PATCH] :sparkles: add porcelain piece, drop for porcelain blocks, and relative recipes --- .../models/item/porcelain_piece.json | 6 ++++ ...e_and_white_porcelain_piece_grinding.json} | 6 ++-- .../misc/porcelain_piece_grinding.json | 34 ++++++++++++++++++ ...s_from_blue_and_white_porcelain_piece.json | 34 ++++++++++++++++++ .../porcelain_parts_from_porcelain_piece.json | 34 ++++++++++++++++++ ...ue_and_white_porcelain_piece_grinding.json | 8 +++++ ..._from_blue_and_white_porcelain_piece.json} | 0 .../porcelain_parts_from_porcelain_piece.json | 8 +++++ .../recipes/porcelain_piece_grinding.json | 8 +++++ .../data/registry/ItemRegistry.java | 1 + .../datagen/ModLootTableProvider.java | 33 ++++++++++------- .../datagen/ModRecipeProvider.java | 16 +++++++-- .../textures/item/porcelain_piece.png | Bin 0 -> 3126 bytes 13 files changed, 171 insertions(+), 17 deletions(-) create mode 100644 src/generated/resources/assets/ultramarine/models/item/porcelain_piece.json rename src/generated/resources/data/{ultramarine/advancements/recipes/ultramarine.materials/porcelain_parts.json => minecraft/advancements/recipes/misc/blue_and_white_porcelain_piece_grinding.json} (74%) create mode 100644 src/generated/resources/data/minecraft/advancements/recipes/misc/porcelain_piece_grinding.json create mode 100644 src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_blue_and_white_porcelain_piece.json create mode 100644 src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_porcelain_piece.json create mode 100644 src/generated/resources/data/minecraft/recipes/blue_and_white_porcelain_piece_grinding.json rename src/generated/resources/data/{ultramarine/recipes/porcelain_parts.json => minecraft/recipes/porcelain_parts_from_blue_and_white_porcelain_piece.json} (100%) create mode 100644 src/generated/resources/data/minecraft/recipes/porcelain_parts_from_porcelain_piece.json create mode 100644 src/generated/resources/data/minecraft/recipes/porcelain_piece_grinding.json create mode 100644 src/main/resources/assets/ultramarine/textures/item/porcelain_piece.png diff --git a/src/generated/resources/assets/ultramarine/models/item/porcelain_piece.json b/src/generated/resources/assets/ultramarine/models/item/porcelain_piece.json new file mode 100644 index 00000000..a1585802 --- /dev/null +++ b/src/generated/resources/assets/ultramarine/models/item/porcelain_piece.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "ultramarine:item/porcelain_piece" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ultramarine/advancements/recipes/ultramarine.materials/porcelain_parts.json b/src/generated/resources/data/minecraft/advancements/recipes/misc/blue_and_white_porcelain_piece_grinding.json similarity index 74% rename from src/generated/resources/data/ultramarine/advancements/recipes/ultramarine.materials/porcelain_parts.json rename to src/generated/resources/data/minecraft/advancements/recipes/misc/blue_and_white_porcelain_piece_grinding.json index 927fddad..e712aeae 100644 --- a/src/generated/resources/data/ultramarine/advancements/recipes/ultramarine.materials/porcelain_parts.json +++ b/src/generated/resources/data/minecraft/advancements/recipes/misc/blue_and_white_porcelain_piece_grinding.json @@ -2,7 +2,7 @@ "parent": "minecraft:recipes/root", "rewards": { "recipes": [ - "ultramarine:porcelain_parts" + "minecraft:blue_and_white_porcelain_piece_grinding" ] }, "criteria": { @@ -12,7 +12,7 @@ "items": [ { "items": [ - "ultramarine:porcelain_parts" + "ultramarine:blue_and_white_porcelain_piece" ] } ] @@ -21,7 +21,7 @@ "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { - "recipe": "ultramarine:porcelain_parts" + "recipe": "minecraft:blue_and_white_porcelain_piece_grinding" } } }, diff --git a/src/generated/resources/data/minecraft/advancements/recipes/misc/porcelain_piece_grinding.json b/src/generated/resources/data/minecraft/advancements/recipes/misc/porcelain_piece_grinding.json new file mode 100644 index 00000000..705965c3 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancements/recipes/misc/porcelain_piece_grinding.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:porcelain_piece_grinding" + ] + }, + "criteria": { + "has_porcelain_piece": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "ultramarine:porcelain_piece" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:porcelain_piece_grinding" + } + } + }, + "requirements": [ + [ + "has_porcelain_piece", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_blue_and_white_porcelain_piece.json b/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_blue_and_white_porcelain_piece.json new file mode 100644 index 00000000..e84c014f --- /dev/null +++ b/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_blue_and_white_porcelain_piece.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:porcelain_parts_from_blue_and_white_porcelain_piece" + ] + }, + "criteria": { + "has_blue_and_white_porcelain_piece": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "ultramarine:blue_and_white_porcelain_piece" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:porcelain_parts_from_blue_and_white_porcelain_piece" + } + } + }, + "requirements": [ + [ + "has_blue_and_white_porcelain_piece", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_porcelain_piece.json b/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_porcelain_piece.json new file mode 100644 index 00000000..6686e9bc --- /dev/null +++ b/src/generated/resources/data/minecraft/advancements/recipes/ultramarine.materials/porcelain_parts_from_porcelain_piece.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:porcelain_parts_from_porcelain_piece" + ] + }, + "criteria": { + "has_porcelain_piece": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "ultramarine:porcelain_piece" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:porcelain_parts_from_porcelain_piece" + } + } + }, + "requirements": [ + [ + "has_porcelain_piece", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/blue_and_white_porcelain_piece_grinding.json b/src/generated/resources/data/minecraft/recipes/blue_and_white_porcelain_piece_grinding.json new file mode 100644 index 00000000..8545b391 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/blue_and_white_porcelain_piece_grinding.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "ultramarine:blue_and_white_porcelain_piece" + }, + "result": "minecraft:clay_ball", + "count": 1 +} \ No newline at end of file diff --git a/src/generated/resources/data/ultramarine/recipes/porcelain_parts.json b/src/generated/resources/data/minecraft/recipes/porcelain_parts_from_blue_and_white_porcelain_piece.json similarity index 100% rename from src/generated/resources/data/ultramarine/recipes/porcelain_parts.json rename to src/generated/resources/data/minecraft/recipes/porcelain_parts_from_blue_and_white_porcelain_piece.json diff --git a/src/generated/resources/data/minecraft/recipes/porcelain_parts_from_porcelain_piece.json b/src/generated/resources/data/minecraft/recipes/porcelain_parts_from_porcelain_piece.json new file mode 100644 index 00000000..10f30cd5 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/porcelain_parts_from_porcelain_piece.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "ultramarine:porcelain_piece" + }, + "result": "ultramarine:porcelain_parts", + "count": 1 +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/porcelain_piece_grinding.json b/src/generated/resources/data/minecraft/recipes/porcelain_piece_grinding.json new file mode 100644 index 00000000..619de74b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/porcelain_piece_grinding.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "ultramarine:porcelain_piece" + }, + "result": "minecraft:clay_ball", + "count": 1 +} \ No newline at end of file diff --git a/src/main/java/com/voxelutopia/ultramarine/data/registry/ItemRegistry.java b/src/main/java/com/voxelutopia/ultramarine/data/registry/ItemRegistry.java index 10b8a235..a1bebc25 100644 --- a/src/main/java/com/voxelutopia/ultramarine/data/registry/ItemRegistry.java +++ b/src/main/java/com/voxelutopia/ultramarine/data/registry/ItemRegistry.java @@ -753,6 +753,7 @@ public class ItemRegistry { public static final RegistryObject BLUE_AND_WHITE_PORCELAIN_PIECE = simpleItem("blue_and_white_porcelain_piece", ModCreativeTab.MATERIALS); public static final RegistryObject BLUE_AND_WHITE_PORCELAIN_SHARDS = simpleItem("blue_and_white_porcelain_shards", ModCreativeTab.MATERIALS); + public static final RegistryObject PORCELAIN_PIECE = simpleItem("porcelain_piece", ModCreativeTab.MATERIALS); // PARTS diff --git a/src/main/java/com/voxelutopia/ultramarine/datagen/ModLootTableProvider.java b/src/main/java/com/voxelutopia/ultramarine/datagen/ModLootTableProvider.java index 78b269d1..263813da 100644 --- a/src/main/java/com/voxelutopia/ultramarine/datagen/ModLootTableProvider.java +++ b/src/main/java/com/voxelutopia/ultramarine/datagen/ModLootTableProvider.java @@ -60,21 +60,26 @@ protected void addTables() { abundantOre(BlockRegistry.DEEPSLATE_MAGNESITE_ORE, ItemRegistry.MAGNESITE); ore(BlockRegistry.NETHER_COBALT_ORE, ItemRegistry.RAW_COBALT); - porcelain(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_FLOWERPOT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_FLOWERPOT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); //todo blue porcelain flowerpot - porcelain(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_VASE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); - porcelain(BlockRegistry.LARGE_BLUE_AND_WHITE_PORCELAIN_VASE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); - porcelain(BlockRegistry.SHORT_BLUE_AND_WHITE_PORCELAIN_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); - porcelain(BlockRegistry.TALL_BLUE_AND_WHITE_PORCELAIN_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); - porcelain(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_BOWL, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); - porcelain(BlockRegistry.WINE_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_VASE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.LARGE_BLUE_AND_WHITE_PORCELAIN_VASE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.SHORT_BLUE_AND_WHITE_PORCELAIN_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.TALL_BLUE_AND_WHITE_PORCELAIN_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.BLUE_AND_WHITE_PORCELAIN_BOWL, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); + porcelainWithShards(BlockRegistry.WINE_POT, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); porcelainPlate(BlockRegistry.PLATED_MOONCAKES, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); plateDrop(BlockRegistry.PLATED_MUNG_BEAN_CAKES); plateDrop(BlockRegistry.PLATED_HAM); plateDrop(BlockRegistry.PLATED_FISH); - - + porcelain(BlockRegistry.SMALL_WHITE_PORCELAIN_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelain(BlockRegistry.MEDIUM_WHITE_PORCELAIN_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelain(BlockRegistry.LARGE_WHITE_PORCELAIN_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelain(BlockRegistry.SMALL_GREEN_PORCELAIN_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelain(BlockRegistry.GREEN_PORCELAIN_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelain(BlockRegistry.TALL_BLUE_VASE_BONSAI, ItemRegistry.PORCELAIN_PIECE); + porcelainWithShards(BlockRegistry.TALL_BLUE_AND_WHITE_PORCELAIN_BONSAI, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE, ItemRegistry.BLUE_AND_WHITE_PORCELAIN_SHARDS); slab(BlockRegistry.CYAN_BRICK_SLAB, ItemRegistry.CYAN_BRICK_SLAB); slab(BlockRegistry.BLACK_BRICK_SLAB, ItemRegistry.BLACK_BRICK_SLAB); @@ -101,13 +106,17 @@ void abundantOre(RegistryObject block, RegistryObject block, RegistryObject piece, RegistryObject shards){ - addLootTable(block.get(), createPorcelainDrop(block.getId().getPath(), block.get(), piece.get(), shards.get())); + void porcelain(RegistryObject block, RegistryObject piece){ + addLootTable(block.get(), createPorcelainDrop(block.getId().getPath(), block.get(), piece.get())); + } + + void porcelainWithShards(RegistryObject block, RegistryObject piece, RegistryObject shards){ + addLootTable(block.get(), createPorcelainDropWithShard(block.getId().getPath(), block.get(), piece.get(), shards.get())); } void porcelainPlate(RegistryObject block, RegistryObject piece, RegistryObject shards) { if (block.get() instanceof ConsumableDecorativeBlock consumable && consumable.getPlate().getItem() instanceof BlockItem blockItem) - addLootTable(block.get(), createPorcelainDrop(block.getId().getPath(), blockItem.getBlock(), piece.get(), shards.get())); + addLootTable(block.get(), createPorcelainDropWithShard(block.getId().getPath(), blockItem.getBlock(), piece.get(), shards.get())); else LOGGER.warn("Porcelain plate loot table was not added for block " + block.get().getDescriptionId()); } diff --git a/src/main/java/com/voxelutopia/ultramarine/datagen/ModRecipeProvider.java b/src/main/java/com/voxelutopia/ultramarine/datagen/ModRecipeProvider.java index 49d1f44f..76555977 100644 --- a/src/main/java/com/voxelutopia/ultramarine/datagen/ModRecipeProvider.java +++ b/src/main/java/com/voxelutopia/ultramarine/datagen/ModRecipeProvider.java @@ -1812,7 +1812,14 @@ private static void categoryMaterials(@NotNull Consumer recipeCo compositeSmelting(ItemRegistry.TALL_BLUE_PORCELAIN_VASE.get(), ItemRegistry.TALL_CLAY_VASE.get(), Items.BLUE_DYE, 0.1f, 200, recipeConsumer); compositeSmelting(ItemRegistry.TALL_BLUE_AND_WHITE_PORCELAIN_VASE.get(), ItemRegistry.TALL_CLAY_VASE.get(), ItemRegistry.BLUE_AND_WHITE_GLAZE_POWDER.get(), 0.1f, 200, recipeConsumer); - // PORCELAIN dropped by porcelain blocks + // PORCELAIN + + SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.PORCELAIN_PIECE.get()), Items.CLAY_BALL) + .unlockedBy(itemUnlockName(ItemRegistry.PORCELAIN_PIECE.get()), itemCriterion(ItemRegistry.PORCELAIN_PIECE.get())) + .save(recipeConsumer, "porcelain_piece_grinding"); + SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get()), Items.CLAY_BALL) + .unlockedBy(itemUnlockName(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get()), itemCriterion(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get())) + .save(recipeConsumer, "blue_and_white_porcelain_piece_grinding"); // PARTS @@ -1823,7 +1830,12 @@ private static void categoryMaterials(@NotNull Consumer recipeCo SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.JADE.get()), ItemRegistry.JADE_PARTS.get(), 2) .unlockedBy(itemUnlockName(ItemRegistry.JADE.get()), itemCriterion(ItemRegistry.JADE.get())) .save(recipeConsumer); - simpleStonecutting(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get(), ItemRegistry.PORCELAIN_PARTS.get(), recipeConsumer); //todo add porcelain variants + SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get()), ItemRegistry.PORCELAIN_PARTS.get()) + .unlockedBy(itemUnlockName(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get()), itemCriterion(ItemRegistry.BLUE_AND_WHITE_PORCELAIN_PIECE.get())) + .save(recipeConsumer, "porcelain_parts_from_blue_and_white_porcelain_piece"); + SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.PORCELAIN_PIECE.get()), ItemRegistry.PORCELAIN_PARTS.get()) + .unlockedBy(itemUnlockName(ItemRegistry.PORCELAIN_PIECE.get()), itemCriterion(ItemRegistry.PORCELAIN_PIECE.get())) + .save(recipeConsumer, "porcelain_parts_from_porcelain_piece"); SingleItemRecipeBuilder.stonecutting(Ingredient.of(ItemRegistry.BRONZE_INGOT.get()), ItemRegistry.BRONZE_PARTS.get(), 2) .unlockedBy(itemUnlockName(ItemRegistry.BRONZE_INGOT.get()), itemCriterion(ItemRegistry.BRONZE_INGOT.get())) .save(recipeConsumer); diff --git a/src/main/resources/assets/ultramarine/textures/item/porcelain_piece.png b/src/main/resources/assets/ultramarine/textures/item/porcelain_piece.png new file mode 100644 index 0000000000000000000000000000000000000000..c41fdc75b443634c4b7044118b0d9575d0800d0c GIT binary patch literal 3126 zcmcImU2GIp6kd%YqBRxNH2UB$7zN?({Lk!+ETwdT*0509ZCYYtxO3;ucEaw=I5Tax zP0&gV!32q-K8U;!fdn6nh#>|a@aMrMqA>=ekwgvA_@H7C6BCKxnf;j--O`G(*`2*} z&v(x`_uTKCbD!zixV~k<-3wBwR7-bPt{47Wm5h6(5tWG-6Czblfca%R47n#<8;OfRg9) zekUDry2bkz#NQ{-Pjf6&g+yDkY)5R6 z8O--EonAm0EiE9z^E{*JX`Im{!PHkUA}~W)s4Yh zmK};B-{82>(b4p%l=gxmC+IpT5IIpqfI#7x8{rCa!zB$3IU16{@gv7`nOGw>z2PX! zf~&PXl>J1l8`k3l5#uV@=Y%vL@2Lv3NP_c+gHqMFML1fbW$H#DV1)z=Van$dcvH3I za)J({wIkqBeQ!l+h9D&3 z%R&)3_6!DN$z@Plab|$Vk_74-odLy>7Zg0N)F4k!!#75h(mb&JzLIrfegVWC)_vro5oqf@I=` zwoQQpIgU%ywZ>jqu~&jdbyJ1l=|n{;l~rWI1d=s9qsdfIG%B*pl-*9RcLeU=U0{$>XU;pRZGLQNlk>r=Q$yM*5#XLkxz;HT?ax8PQ-jMs`mS!c7X$` zqDV@8zQ?K1(qPVksD(90)ajDVmrLSO7H6o@<%Gbwv3jlPqmS1|C5NddrGZIp3nXSI zwb=T!)9irf6v~>~(IE=Kx&mu!u+X!kQ5?{YB1CxBtl(yHKExwecHJT-F$G>hIHOpI zw`77cQbqu(3K`XsR9n;F0RHK^ig=+Q$cCaDyxz#6t8u-qn+##MNTCaH?A32Zr>4b= zs)8&V+ej6G(in>tGBb)I>Xu>>No&5DCI#UdZ-#j82o0tY%f|tRPD+C?%i4igX0Y#< z98%3LZp5|f{V7RECi0l6@-t)5EE+h|I56Ex;sWzO+MAVebE}5U74Y+8I3N{0sSj3j$ys3 ztii>kzN~8Alrjntv1;o`=0%FIC}U`G5}(?nP(5auz%t9)ooAz-nN%Jv%Kx> zjYD19b30GAqPt$*t?qemxBS?|7IX4cyYa`Z#ZUXrzWqV?WhK1u^VhfWi*GnIdDFy? z2P5^neza#oN)4{)tXw+qeLvcLq2<@tE}j~h*L5`gz=ZqBXKkm$#rsmntYuH0oS!=W z^3EL-7nk;u!}-&PC+_?9r-A-gUTpbo{P@oK`P2KCKAd}G@{ZLD{bLX9+ttdx`Tk3{ zf7AN>!6WB__HC=q@7R=@`0&p|yDah1ds6R?-+APV^$Q>TVcXFS+VzFWf%~P@8;4Jv aU)1(d@Wkf_&YX*H_T6hY=3Za3W&2-fzygc_ literal 0 HcmV?d00001