From ca416a5b52f08e90df2a4ce06d8bc8e7d3f14e03 Mon Sep 17 00:00:00 2001 From: rearth Date: Fri, 5 Apr 2024 19:03:24 +0200 Subject: [PATCH] Add proper item pipe model, improve fluid pipe model --- .../oritech/client/ui/ItemFilterScreen.java | 3 - .../assets/oritech/blockstates/item_pipe.json | 64 ++++-- .../blockstates/item_pipe_connection.json | 94 ++++++--- .../oritech/models/block/fluid_pipe.json | 39 ---- .../oritech/models/block/item_pipe.json | 194 ++++++++++++++++-- .../block/item_pipe_connection_outer.json | 23 +++ .../oritech/models/block/item_pipe_inner.json | 23 +++ .../oritech/models/block/item_pipe_outer.json | 23 +++ .../models/block/item_pipe_straight.json | 23 +++ .../oritech/textures/block/fluid_pipe.png | Bin 1299 -> 1311 bytes .../oritech/textures/block/item_pipe.png | Bin 0 -> 2018 bytes 11 files changed, 385 insertions(+), 101 deletions(-) create mode 100644 src/main/resources/assets/oritech/models/block/item_pipe_connection_outer.json create mode 100644 src/main/resources/assets/oritech/models/block/item_pipe_inner.json create mode 100644 src/main/resources/assets/oritech/models/block/item_pipe_outer.json create mode 100644 src/main/resources/assets/oritech/models/block/item_pipe_straight.json create mode 100644 src/main/resources/assets/oritech/textures/block/item_pipe.png diff --git a/src/main/java/rearth/oritech/client/ui/ItemFilterScreen.java b/src/main/java/rearth/oritech/client/ui/ItemFilterScreen.java index da2cd1380..3119be21a 100644 --- a/src/main/java/rearth/oritech/client/ui/ItemFilterScreen.java +++ b/src/main/java/rearth/oritech/client/ui/ItemFilterScreen.java @@ -120,9 +120,6 @@ protected void build(FlowLayout rootComponent) { nbtButton.horizontalSizing(Sizing.fixed(buttonWidth)); overlay.child(nbtButton.positioning(Positioning.absolute(110, 46))); - var title = Components.label(Text.of("Item Filter")).color(new Color(45 / 255f, 45 / 255f, 46 / 255f)); - overlay.child(title.positioning(Positioning.absolute(60, 7))); - addTitle(overlay); rootComponent.child( diff --git a/src/main/resources/assets/oritech/blockstates/item_pipe.json b/src/main/resources/assets/oritech/blockstates/item_pipe.json index 311788f80..47fb7411d 100644 --- a/src/main/resources/assets/oritech/blockstates/item_pipe.json +++ b/src/main/resources/assets/oritech/blockstates/item_pipe.json @@ -1,62 +1,100 @@ { "multipart": [ { + "when": { + "straight": "false" + }, "apply": { - "model": "oritech:block/generic_pipe_inner" + "model": "oritech:block/item_pipe_inner" } }, { "when": { - "north": "true" + "north": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer" + "model": "oritech:block/item_pipe_outer" } }, { "when": { - "south": "true" + "south": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 180 } }, { "when": { - "east": "true" + "east": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 90 } }, { "when": { - "west": "true" + "west": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 270 } }, { "when": { - "up": "true" + "up": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "x": -90 } }, { "when": { - "down": "true" + "down": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "x": 90 } + }, + { + "when": { + "down": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight", + "x": 90 + } + }, + { + "when": { + "east": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight", + "y": 90 + } + }, + { + "when": { + "north": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight" + } } ] } \ No newline at end of file diff --git a/src/main/resources/assets/oritech/blockstates/item_pipe_connection.json b/src/main/resources/assets/oritech/blockstates/item_pipe_connection.json index 6f6654a97..c081028d5 100644 --- a/src/main/resources/assets/oritech/blockstates/item_pipe_connection.json +++ b/src/main/resources/assets/oritech/blockstates/item_pipe_connection.json @@ -1,113 +1,157 @@ { "multipart": [ { + "when": { + "straight": "false" + }, "apply": { - "model": "oritech:block/generic_pipe_inner" + "model": "oritech:block/item_pipe_inner" } }, { "when": { - "north": "true" + "north": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer" + "model": "oritech:block/item_pipe_outer" } }, { "when": { - "south": "true" + "south": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 180 } }, { "when": { - "east": "true" + "east": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 90 } }, { "when": { - "west": "true" + "west": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "y": 270 } }, { "when": { - "up": "true" + "up": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "x": -90 } }, { "when": { - "down": "true" + "down": "true", + "straight": "false" }, "apply": { - "model": "oritech:block/generic_pipe_outer", + "model": "oritech:block/item_pipe_outer", "x": 90 } }, { "when": { - "con_north": "true" + "down": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight", + "x": 90 + } + }, + { + "when": { + "east": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight", + "y": 90 + } + }, + { + "when": { + "north": "true", + "straight": "true" + }, + "apply": { + "model": "oritech:block/item_pipe_straight" + } + }, + { + "when": { + "con_north": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer" + "model": "oritech:block/item_pipe_connection_outer" } }, { "when": { - "con_south": "true" + "con_south": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer", + "model": "oritech:block/item_pipe_connection_outer", "y": 180 } }, { "when": { - "con_east": "true" + "con_east": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer", + "model": "oritech:block/item_pipe_connection_outer", "y": 90 } }, { "when": { - "con_west": "true" + "con_west": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer", + "model": "oritech:block/item_pipe_connection_outer", "y": 270 } }, { "when": { - "con_up": "true" + "con_up": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer", + "model": "oritech:block/item_pipe_connection_outer", "x": -90 } }, { "when": { - "con_down": "true" + "con_down": "true", + "extract": true }, "apply": { - "model": "oritech:block/generic_pipe_connection_outer", + "model": "oritech:block/item_pipe_connection_outer", "x": 90 } } diff --git a/src/main/resources/assets/oritech/models/block/fluid_pipe.json b/src/main/resources/assets/oritech/models/block/fluid_pipe.json index c479b6cc2..2b8431240 100644 --- a/src/main/resources/assets/oritech/models/block/fluid_pipe.json +++ b/src/main/resources/assets/oritech/models/block/fluid_pipe.json @@ -18,45 +18,6 @@ "up": {"uv": [1.5, 7, 0, 3], "texture": "#1"}, "down": {"uv": [3, 3, 1.5, 7], "texture": "#1"} } - }, - { - "name": "core", - "from": [5, 5, 5], - "to": [11, 11, 11], - "faces": { - "north": {"uv": [5, 3.5, 6.5, 5], "texture": "#1"}, - "east": {"uv": [4.5, 5, 6, 6.5], "texture": "#1"}, - "south": {"uv": [6, 0, 7.5, 1.5], "texture": "#1"}, - "west": {"uv": [6, 5, 7.5, 6.5], "texture": "#1"}, - "up": {"uv": [8, 3, 6.5, 1.5], "texture": "#1"}, - "down": {"uv": [4.5, 6.5, 3, 8], "texture": "#1"} - } - }, - { - "name": "north", - "from": [5, 5, 0], - "to": [11, 11, 5], - "faces": { - "north": {"uv": [6.5, 3, 8, 4.5], "texture": "#1"}, - "east": {"uv": [6, 6.5, 7.25, 8], "texture": "#1"}, - "south": {"uv": [4.5, 6.5, 6, 8], "texture": "#1"}, - "west": {"uv": [0, 7, 1.25, 8.5], "texture": "#1"}, - "up": {"uv": [2.75, 8.25, 1.25, 7], "texture": "#1"}, - "down": {"uv": [8.75, 6.5, 7.25, 7.75], "texture": "#1"} - } - }, - { - "name": "machine_interface", - "from": [4, 4, -0.25], - "to": [12, 12, 1.75], - "faces": { - "north": {"uv": [3, 3, 5, 5], "texture": "#1"}, - "east": {"uv": [7.5, 4.5, 8, 6.5], "texture": "#1"}, - "south": {"uv": [4, 0, 6, 2], "texture": "#1"}, - "west": {"uv": [7.25, 7.75, 7.75, 9.75], "texture": "#1"}, - "up": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#1"}, - "down": {"uv": [9.5, 0.5, 7.5, 1], "texture": "#1"} - } } ], "display": { diff --git a/src/main/resources/assets/oritech/models/block/item_pipe.json b/src/main/resources/assets/oritech/models/block/item_pipe.json index cbfe1886d..d3048fa0d 100644 --- a/src/main/resources/assets/oritech/models/block/item_pipe.json +++ b/src/main/resources/assets/oritech/models/block/item_pipe.json @@ -1,23 +1,175 @@ { - "credit": "Made with Blockbench", - "texture_size": [32, 32], - "textures": { - "0": "oritech:block/generic_pipe", - "particle": "oritech:block/generic_pipe" - }, - "elements": [ - { - "name": "pipe_inner", - "from": [5, 5, 5], - "to": [11, 11, 11], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "east": {"uv": [0, 3, 3, 6], "texture": "#0"}, - "south": {"uv": [3, 0, 6, 3], "texture": "#0"}, - "west": {"uv": [3, 3, 6, 6], "texture": "#0"}, - "up": {"uv": [3, 9, 0, 6], "texture": "#0"}, - "down": {"uv": [9, 0, 6, 3], "texture": "#0"} - } - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 32, + 32 + ], + "textures": { + "0": "oritech:block/item_pipe", + "particle": "oritech:block/item_pipe" + }, + "elements": [ + { + "name": "straight", + "from": [ + 6, + 6, + 0 + ], + "to": [ + 10, + 10, + 16 + ], + "faces": { + "north": { + "uv": [ + 11, + 10, + 13, + 12 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 4, + 2, + 12 + ], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 12, + 2, + 14 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 4, + 2, + 12 + ], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [ + 2, + 12, + 0, + 4 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 2, + 4, + 0, + 12 + ], + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/oritech/models/block/item_pipe_connection_outer.json b/src/main/resources/assets/oritech/models/block/item_pipe_connection_outer.json new file mode 100644 index 000000000..6f2669535 --- /dev/null +++ b/src/main/resources/assets/oritech/models/block/item_pipe_connection_outer.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "oritech:block/item_pipe", + "particle": "oritech:block/item_pipe" + }, + "elements": [ + { + "name": "machine_interface", + "from": [4, 4, -0.25], + "to": [12, 12, 1.75], + "faces": { + "north": {"uv": [4, 4, 8, 8], "texture": "#0"}, + "east": {"uv": [6, 10, 7, 14], "texture": "#0"}, + "south": {"uv": [8, 0, 12, 4], "texture": "#0"}, + "west": {"uv": [4, 12, 5, 16], "texture": "#0"}, + "up": {"uv": [16, 3, 12, 2], "texture": "#0"}, + "down": {"uv": [16, 3, 12, 4], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/models/block/item_pipe_inner.json b/src/main/resources/assets/oritech/models/block/item_pipe_inner.json new file mode 100644 index 000000000..a638c8f50 --- /dev/null +++ b/src/main/resources/assets/oritech/models/block/item_pipe_inner.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "oritech:block/item_pipe", + "particle": "oritech:block/item_pipe" + }, + "elements": [ + { + "name": "core", + "from": [6, 6, 6], + "to": [10, 10, 10], + "faces": { + "north": {"uv": [11, 8, 13, 10], "texture": "#0"}, + "east": {"uv": [11, 8, 13, 10], "texture": "#0"}, + "south": {"uv": [11, 8, 13, 10], "texture": "#0"}, + "west": {"uv": [11, 8, 13, 10], "texture": "#0"}, + "up": {"uv": [13, 10, 11, 8], "texture": "#0"}, + "down": {"uv": [13, 8, 11, 10], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/models/block/item_pipe_outer.json b/src/main/resources/assets/oritech/models/block/item_pipe_outer.json new file mode 100644 index 000000000..621625b21 --- /dev/null +++ b/src/main/resources/assets/oritech/models/block/item_pipe_outer.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "oritech:block/item_pipe", + "particle": "oritech:block/item_pipe" + }, + "elements": [ + { + "name": "north", + "from": [6, 6, 0], + "to": [10, 10, 6], + "faces": { + "north": {"uv": [12, 0, 14, 2], "texture": "#0"}, + "east": {"uv": [8, 6, 10, 9], "rotation": 90, "texture": "#0"}, + "south": {"uv": [2, 12, 4, 14], "texture": "#0"}, + "west": {"uv": [8, 6, 10, 9], "rotation": 90, "texture": "#0"}, + "up": {"uv": [10, 9, 8, 6], "texture": "#0"}, + "down": {"uv": [10, 6, 8, 9], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/models/block/item_pipe_straight.json b/src/main/resources/assets/oritech/models/block/item_pipe_straight.json new file mode 100644 index 000000000..8aa0c4b7d --- /dev/null +++ b/src/main/resources/assets/oritech/models/block/item_pipe_straight.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "oritech:block/item_pipe", + "particle": "oritech:block/item_pipe" + }, + "elements": [ + { + "name": "straight", + "from": [6, 6, 0], + "to": [10, 10, 16], + "faces": { + "north": {"uv": [11, 10, 13, 12], "texture": "#0"}, + "east": {"uv": [0, 4, 2, 12], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 12, 2, 14], "texture": "#0"}, + "west": {"uv": [0, 4, 2, 12], "rotation": 90, "texture": "#0"}, + "up": {"uv": [2, 12, 0, 4], "texture": "#0"}, + "down": {"uv": [2, 4, 0, 12], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/textures/block/fluid_pipe.png b/src/main/resources/assets/oritech/textures/block/fluid_pipe.png index c857b42baddeb1e0aa103643fc27ba27540906d9..0becd7a232587630bd0b47902bb31d940c1e219e 100644 GIT binary patch delta 1292 zcmV+n1@roo3ZDv)B!A{fL_t(|ob8#-Ya2%tz<+jEHdeijSMg9)mlNKg{NMm^3I_3hTmPEB#+U71~1sZ>zhlU2(m1HD=gt zbNjj%$=&BqPwW681myj#u9SBwZTATQ!CZ%p`Hi16$-ixFxR%iXmPhWm9aZ+#FDfUf zj~LcB-;6$DAR@x|-Cm%--2s%>_Ul`En(F)Q*Pr{GN`Ff!nV!8@QxT|}XaJ9sFCgje z$XMT@EDzYS!cl$8R`cf00a()4eZ!gJtZ2|p%qU-UBV?l@}XQ$p3LNtxnZCtrPJgR}iyWhz#L&VzlyRep+V>D(kvz-9kO3sjA<(k=^ zn!M$yXfOJP{>H7Z>891ClugNyl#=`0_8m<1Ie*7g?Oyc__9x)X2O5b-HJ9@{i(ZZQ ze)NNP7N}6Nvli$)yf#koBJuML-Nar1R~nqHw+lxnXnOrDu*fPiBs>ROWYyP4EIm!R zDm>3V9I62|LPnisxr}e=m8FoLvd( zCjH>8yh6#;GrbzmTg5Jjc$L0X+iPLkMISNPIXK_h;v#WXguLp0jj~R~^R0B6`A8}7 zd!0su^I6#Wj8{AlvM@pjJEC+O?d*x~cz?sjSWWRmYcG8Z?K%^}MJr2g%gPJ!qLf6v}1Z`DF7 zf;jVuOg6_qd&g{MUXt1C-eE|ad$|lTbCTEJdz&x+FgqT-zkwL6*iKN%TR{v~D1TVT z>3CFwQ?mr8&KCQns&9SqqS2~F^C(<6Iw6y-0Am1T_D(41Aj`*=0~~AlPp-xcWciqa zb?g;y319=L=NR2ej3@W${%$r=>xB>qpsgk5OlNlrWb5ImIZb`hu|NIk zG|I!IVPB@aas2q%^;&v1(e-;l=)mRZ>rPh|VCSG}UaR*2ms%54%tuNT^W9H`pi2wT zD-j?hBqSsxBqSsxBqSsxBqSsxBqSsxBqZdG;(tm{FPl7*@#z2n002ovP6b4+LSTX- CkbqDC delta 1279 zcmV&LR*ZX0VCt$+BIXXBxGC2 zR#6YTv)Yw*6|W>~6|&!H^k!!?Z{C~t=11S1PajqRq?Cj~2!8><7caj9U^1Pin9l*A zj~Z-eG5{=1-EZhy2=U5xGcQVgp$60<8o-UcA05H?uvV+oy&qp58FI>EaD(Oi8~}HU z*Wph9yM71YI;;97QcAXWwtWA5ENSpqmYI0xZ2)!;$}A=g4$WM9T7^J!TSqDHR@|*L zfEYY=%2G-u(|>7O`9>zwX~+lv`JtKPLE4~bE36BH?aV(RRcH?l{H^Y__Nk}Qm89X6 zE%)_KlD96Hp6~!61muIQu9SBx?bHbY;X;RlwZ=;g@~>O#u4OcUXQQ{hfy#V!Llp$| zQNv#Ijp(BWA|V3X_5%IwcA%nmP~Ga2<-VVPdfMk!T7OE(?EKxT%0N+~0X$0o4ry;i z)?SCQJmAO*M>UtNw=G;@|B{iUdmd&ez6IFv#&_r zuz!n|_8Hwm1Fzz4rJ>I1w(|d;RIEb6ztiWx{o<6jcea?BzS)VfUI?06n?bG)UaLFG z;~&iYEPvgr)(6`Imh*GxAEa&du#w#F`(DTfTD_otP-kn-1l;F=dd7z}Pw;C-ujcz8 z`oaGcs8F(I6LcP4n;>|R1jU9ZaVEfX3^r@!!chrLuk8g^SZ9uuZ)Yp42gZoiC(E82 zp64G7RRLDp8-Lqq;C~08a8ClJb&0Wdl?Fvs8WdCKclEKPf!~q1n}l8hOH=o)LY*sr z#ec_0q$79NsnefZK6$prV_9x}A90A+pm?T;8dMV1E~FHrd9^JdZCPhKSF+yq5Q zKlm%JP%`yRujcbsaV|vsuD(>+Z(`a-A2rxLIN#plBJtb^`Q7`~%Q}_Mw=)?Q6DOhD zbs7!MXJPj@e)&Ai#0Vjrj1o0k^MUXB%75$k`hKUqAk?>CCO-mTcAlz|*Y6d&LBoB3 zdqN&%-nZow9_7PCdw|c9e^4n}r^*c$kW%vPht}j~%^b2k!1CW6(i~jULpohogk>>tsn+ZDSzlN zjs|CzOqK^I9F-i;2)bXqXf!D$l>`(hku^_&2>`PDB?>yo^06HNCtCiKD@g-cKBhnk zamiXrPfG%6+RH8_i0Wvhfn|YlG~`I_VpPcrlyJZOg^u=ky+?@JlX|zFz?)%Zfj#So z+U^P=*kFM*DZvDBNuYG>M5O*^K6q8_g%k+32dpKgt+i=(CmsE8Hq3*x;XJ0iaeV*D zwQ6QQ75Td$bl`FHbtjSu*gdFN&+0uuSMLNBi-{A8`RETq5YYtmN(P9DiHV7ciHV7c piHV7ciHV7ciHV7ciHUim_#ejHE~KX>)209b002ovPDHLkV1i74dF22A diff --git a/src/main/resources/assets/oritech/textures/block/item_pipe.png b/src/main/resources/assets/oritech/textures/block/item_pipe.png new file mode 100644 index 0000000000000000000000000000000000000000..64ca18a6d05ee55ef4ddbc19edc02828c2d8e689 GIT binary patch literal 2018 zcmV<82Oao{P)% zPi!1l9mhXjkGr;KckQ)z9NR>@vMnVlY7V#&!5ig}_7Eg01%wnOB8MhI;y}|&a^b)M zi35mop&Ws70L7}rAp%r5P!Ls}Mom&A+END`*Vgf17K`?9Dtv8t~7n-mAxSV<{v)> z;I)(Aq|x{lMd8g~z24ERJ?YxWeHigJ@bItzv*tU`Z^~rO4zlp>s_DLQFKVu@sw&@5 z{{+CvteBkH88L~!=0(R5NIpj%8uTxJcUvQQT!zKw^*>Rdu&6OreU5eUM}K+!TAu_b zL_CkU4Kb9KDJ*IvGTkIH-4qrzhSIXDXIpLo)3Hr5s}{RO?0t>nb=DK0#vxbT$Zaha8z=BmH8n}EWicEAAwEWEo)VX^T`)vtNC z>mS-+2?T|rC^c{YPyJ@C%n8yPPfj=F(ZhzKD4dJ_E>Ih~j?kgAN@=|SD*WKWXaykN zp9E_9K}RS$Ap7bsjO&e0Ys6k${KVn@0{>bI)^|{ZvIJ&+ay^V@fEo+f2_b0g2(3!; z%;`P=c1i^Ra@r>Otun7v>*_dKQ?9%1o7EzWQ7LqFKhtQuP5)RhH3)KA`O^;Hc4Z3(&vF zR9#G<<3X>uetxqiYp0^J={X&`512W&3_vcHFv{{3_(`Dn-wH`pRpz35q~#*{tq31( zR2Z#JvZ|_{HGJKZTSno^e(DQOJFj!&%?YozZf{4Z!wIw z&1ng`;z?3HG1798WU9ZF<2o`#0G70(?*^u0nFsPC{YD56eO$e1#$OqhB!GAp8Djd)OIW0kctIU7)59;Q_f;OLXT~|?* zhTh&y{BMP=5K8sL#6`h#d!BLq<0mxJAwa0SZ-p@d;-yQZW#JItbHA$;2#z`gc>B(I z+h5vEn z^Zu91y+(vqSk#(&`ug&zs4VsZ2&O}V!teq5B*bjA`cWXiRc3-dLx()d`_my_ApuB| zM0e+oslZ?Y2Lz7i2TpNrBFVk^4GQ`7BmV$~1$4!el-A31ckWcJA?~Zepz*v_hbW5D z(A)dreJgB*(128O-N1K#`+ZLxesB1uiMP*Rpkl34uS2Xnf9dLt%Cq~^oQR9ZE`BRj zS=$vK>z(bFyzd79#QP7LyO&A$(y<}uO2B)cH5M0cb;w2eHXm+OcvOmz>WQ(W6?v{t zjP;^)n>SsLS|9>q?_A$M*Mp*1^uUKXbhyzWYrAnqid}l32Nr{Or-3&0k8P_wOc0B+5>*R^i|_`=gv0jtgii4&R@7} z)E5)-mQhzY>kb~3IyjT^Hy#OKR8EkVi#*JWwHS*Q$!Q6vXMN*y$A)e1fBM-ns;ZLx z@on4knVVO*w=eX;Kwiv?&KCFP#V)W{n3jNB?r#?)Q~iv};zOl+V!k$UB*5^zX}L&O zJjsrG0sxwO_ptGg$Yq}0pXO1igA=SXAOW(V?spCqeBnL1zM}v4Il?Z~ePz zyly?e|KW4r_B22{{B`xk>R)Sr-rKU>5E1L&-2|wrO7;(5u`QeV^6$Nm$VGoa@&c_e z`2hVW+3nZ&g0b;&;|w7TSn~q?!ejxZb@Ae@bcTweFmv-t!!lJ>jl976WQw7*3|rp& zJFo=e{V{g)>*)GADC*A)Q#~;_y1iCckN_j2V#q!(;YgvXDyP11+P3WPABcn6m7K=O z?2xg;lsqmAKj6a&ntVY0o`6n`K~Y*S)Uq`~gx|bCDBM4Zh4P~`3NVrh54`T z>e6$eX#Su-8n4%De>(&{2e3kN!>eKNZca;7Be;XdX03$b1DtrZQMnVp$NQ5;hE~1O zY!^s?Bd>k$^Uh6%$5IPt1exf9=y+}&j4ZtF8btdQLBYP0gRTx4Q639Ie*a&8cKz1?|r zumW&uRvhV!|8eO^*Kkk-K8x;(Cl7W1@URh>1q8Pz46cWzpiLerLa~6batm64z!osK zEYe%%AOCMU!N3;Kj@<4Afi0jNx!nu?@Bd@uzX>aVtHLd<0{{R307*qoM6N<$f){iN AP5=M^ literal 0 HcmV?d00001