From 4e3d5c42a52a88e8bbdbd1943e5282c4b66c54e9 Mon Sep 17 00:00:00 2001 From: Casper3667 <8396443+Casper3667@users.noreply.github.com> Date: Wed, 29 Apr 2026 22:08:49 +0200 Subject: [PATCH] Ops restock pack changes (#22351) - rscadd: "Added several new restock packs avaiable from the operations ordering console." - balance: "Rebalanced the prices of the restock packs." - rscadd: "Made the restock packs come with cargo access locks." - rscadd: "Restock packs are now actual boxes that can be opened." - rscadd: "The commissary restock crate was moved to the operations loading bay." - rscadd: "The toy shelf can now also hold cap gun mags, card packs, card boxes and music cartridges." --------- Signed-off-by: Casper3667 <8396443+Casper3667@users.noreply.github.com> Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> --- code/game/objects/items/toys.dm | 8 + code/modules/cargo/items/operations.dm | 165 +++++++++--- code/modules/cooking/machinery/commissary.dm | 245 +++++++++++------- code/modules/cooking/machinery/smartfridge.dm | 2 + html/changelogs/CommissaryRestock.yml | 11 + icons/obj/storage/boxes.dmi | Bin 13280 -> 13377 bytes maps/sccv_horizon/sccv_horizon.dmm | 3 +- 7 files changed, 304 insertions(+), 130 deletions(-) create mode 100644 html/changelogs/CommissaryRestock.yml diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 01ad8e8f82b..1e9ff3aa271 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -352,12 +352,14 @@ item_state = "comic" /obj/item/toy/comic/azmarian/issue_1 + name = "az'marian comic - issue 1" desc_extended = "Issue 1 - The Az'Marian Landing! - In this issue, the would-be hero departs from Az'Mar and lands in a war-torn \ town in the outskirts of the Kingdom, witnessing the townspeople terrorised by a Zhan'Khazan maniacal terrorist. After mutilating \ his body with alien technology and even cutting off his own arms to replace with robotic equivalents, the cybernetically enhanced \ Corporal Khara'zan will not let his reign of terror be stopped easily. Will the visitor from Az'mar manage to stand in his way and prevail?" /obj/item/toy/comic/azmarian/issue_2 + name = "az'marian comic - issue 2" desc_extended = "Issue 2 - The Road Towards A Dark Future - In this issue, the Az'Marian meets the local nobility whom he had saved from \ terror, learning that the Kingdom is threatened on all fronts. The superhero embarks on a journey through bandit-infested lands towards the \ headquarters of evil, meeting an unlikely ally and his band of friends. However, all is not what it seems, and the superhero will soon face \ @@ -365,24 +367,28 @@ faces the modern threat of depraved Tajara." /obj/item/toy/comic/azmarian/issue_3 + name = "az'marian comic - issue 3" desc_extended = "Issue 3 - The Swamp Debacle - In this issue, the Az'Marian and his loyal but dim-witted sidekick Murr'zhul reach a poisonous \ swamp polluted by waste-producing factories. A chemical-obsessed scientist looks to experiment and find the perfect poison for his evil deeds, \ killing the surrounding nature and turning residents sickly. A lumbering creature hiding in the swamp caves, a mad researcher about to find the \ perfect toxin, and the duo seeking to halt his plans. Will they find a way to shut him down?" /obj/item/toy/comic/azmarian/issue_4 + name = "az'marian comic - issue 4" desc_extended = "Issue 4 - The Den of Evil! - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul reach the stronghold of \ the retreating Corporal Khara'zan. The superhero uncovers a sinister plot orchestrated by the Corporal's superior to turn all of the local living \ beings into cyborgs. The leader, Director Shul'tyz, is not yet aware of the Az'Marian's presence, and the time is ripe. Met with a slumbering horde \ of cybernetic ha'rrons, schlorrgos and even Tajara, the superhero encounters a threat that will truly test his mettle." /obj/item/toy/comic/azmarian/issue_5 + name = "az'marian comic - issue 5" desc_extended = "Issue 5 - Path to Recovery - In this issue, the hero, who has faced a successful confrontation with Director Shul'tyz, managed to \ free the local populace of cybernetic mind control, but at a heavy price. The syringe that was shot into him started coursing through his veins, preventing \ him from using his powers in a rapidly degrading state. His loyal sidekick Murr'zhul helps bring the hero to the capital of the ancient Kingdom to seek aid. \ Met with internal politics, a mixed reception, sinister plots and a meeting with the King, will the hero find a way to recover from the illness that plagues him?" /obj/item/toy/comic/azmarian/issue_6 + name = "az'marian comic - issue 6" desc_extended = "Issue 6 - The Pilgrimage - Steppe Trouble! - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul embark on a journey \ to a sacred shrine in the mountains built by the early Ancient Tajara. Having received a blessing to prevent his state from degrading from the local priests, \ the hero has little time to waste before the blessing wanes. A meeting with wandering nomads, an audience with their ruler, and a perilous journey across \ @@ -390,12 +396,14 @@ trusted Hharar side-kick manage to reach the mountains?" /obj/item/toy/comic/azmarian/issue_7 + name = "az'marian comic - issue 7" desc_extended = "Issue 7 - The Pilgrimage Pt. 2 - Mountain Survival - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul reach \ the mountains that contain the ancient shrine of the Suns, where he would be able to recover from his illness caused by Director Shul'tyz. Trailed \ by Sham'tyrs, facing freezing winds and snow, the two will trek to reach the shrine in hope of recovery. Bandits encampments, a village in need of help, \ a chance encounter with the S'Mara, and a shape-shifting spy amongst the Sham'tyrs, will the heroes make their way in one piece?" /obj/item/toy/comic/azmarian/issue_8 + name = "az'marian comic - issue 8" desc_extended = "Issue 8 - The Shrine - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul meet the Parivara at the ancient shrine. \ Tended to by the Sun Sister with the blessing of Messa, the Az'Marian manages to recover from his affliction over the course of a week. He learns of an \ evil plan staged by a group of Cae'rrin living in caves nearby to desecrate the shrine and eat its attendants, and the two embark on a journey to put a \ diff --git a/code/modules/cargo/items/operations.dm b/code/modules/cargo/items/operations.dm index 1a0a203bdab..76ec7851ad4 100644 --- a/code/modules/cargo/items/operations.dm +++ b/code/modules/cargo/items/operations.dm @@ -587,11 +587,11 @@ name = "commissary cigarette restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 200 + price = 240 items = list( - /obj/item/commissary_restrock + /obj/item/storage/box/fancy/commissary_restock ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -601,11 +601,11 @@ name = "commissary tobacco leaves restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 100 items = list( - /obj/item/commissary_restrock/rollable + /obj/item/storage/box/fancy/commissary_restock/rollable ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -615,11 +615,11 @@ name = "commissary chewing tobacco restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 175 + price = 240 items = list( - /obj/item/commissary_restrock/chewable + /obj/item/storage/box/fancy/commissary_restock/chewable ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -629,11 +629,11 @@ name = "commissary smoking accessories restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 400 // includes a bunch of lottery tickets, so it should be relatively high compared to other restocks + price = 140 items = list( - /obj/item/commissary_restrock/smoking_accessory + /obj/item/storage/box/fancy/commissary_restock/smoking_accessory ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -643,11 +643,11 @@ name = "commissary electronic cigarette restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 225 + price = 80 items = list( - /obj/item/commissary_restrock/electronic_cig + /obj/item/storage/box/fancy/commissary_restock/electronic_cig ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -657,11 +657,11 @@ name = "commissary snack restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 100 items = list( - /obj/item/commissary_restrock/food + /obj/item/storage/box/fancy/commissary_restock/food ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -671,11 +671,11 @@ name = "commissary xeno snack restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 60 items = list( - /obj/item/commissary_restrock/food/xeno + /obj/item/storage/box/fancy/commissary_restock/food/xeno ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -685,11 +685,11 @@ name = "commissary candy restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 65 items = list( - /obj/item/commissary_restrock/food/candy + /obj/item/storage/box/fancy/commissary_restock/food/candy ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -699,11 +699,11 @@ name = "commissary microwave meal restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 220 items = list( - /obj/item/commissary_restrock/food/microwave + /obj/item/storage/box/fancy/commissary_restock/food/microwave ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -713,11 +713,11 @@ name = "commissary drink restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 300 + price = 150 items = list( - /obj/item/commissary_restrock/drink + /obj/item/storage/box/fancy/commissary_restock/drink ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -727,11 +727,110 @@ name = "commissary beer restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 200 + price = 100 items = list( - /obj/item/commissary_restrock/drink/booze_cheap + /obj/item/storage/box/fancy/commissary_restock/drink/booze_cheap ) - access = 0 + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/toys_restock + category = "operations" + name = "commissary toy restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 110 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/dice_cards_restock + category = "operations" + name = "commissary dice and card restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 120 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/cards_dice + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/toy_mech_restock + category = "operations" + name = "commissary toy mech restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 200 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/mech + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/comic_restock + category = "operations" + name = "commissary comic restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 25 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/comic + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/nka_comic_restock + category = "operations" + name = "commissary az'marian comic series restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 50 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/comic/nka + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/music_restock + category = "operations" + name = "commissary music restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 50 + items = list( + /obj/item/storage/box/fancy/commissary_restock/music + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/tea_restock + category = "operations" + name = "commissary tea restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + // Bulk commissary orders are at a discount, so cheaper per tin of tea than regularly ordering tea + price = 75 + items = list( + /obj/item/storage/box/fancy/commissary_restock/tea + ) + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 diff --git a/code/modules/cooking/machinery/commissary.dm b/code/modules/cooking/machinery/commissary.dm index d2d0143c214..7975875d4ce 100644 --- a/code/modules/cooking/machinery/commissary.dm +++ b/code/modules/cooking/machinery/commissary.dm @@ -122,7 +122,11 @@ /obj/item/gun/bang, /obj/item/eightball, /obj/item/bikehorn, - /obj/item/camera_film + /obj/item/camera_film, + /obj/item/ammo_magazine/caps, + /obj/item/pack, + /obj/item/storage/card, + /obj/item/music_cartridge ) display_tiers = 4 display_tier_amt = 5 @@ -130,25 +134,6 @@ /obj/machinery/smartfridge/tradeshelf/mouse_drop_receive(atom/dropping, mob/user, params) LoadComponent(/datum/component/leanable, dropping) -/obj/machinery/smartfridge/tradeshelf/attackby(obj/item/attacking_item, mob/user) - if(istype(attacking_item, /obj/item/commissary_restrock)) - var/obj/item/commissary_restrock/P = attacking_item - var/item_loaded = 0 - for(var/obj/G in P.contents) - if(accept_check(G)) - if(length(contents) >= max_n_of_items) - break - P.remove_from_storage(G,src) - item_quants[G.name]++ - item_loaded++ - if(item_loaded) - user.visible_message("[user] loads [src] with [P].", SPAN_NOTICE("You load [src] with [P].")) - if(length(P.contents) > 0) - to_chat(user, SPAN_NOTICE("Some items are refused.")) - update_icon() - return TRUE - . = ..() - // ------------------------------------------------- /obj/structure/cash_register/commissary storage_type = null @@ -265,14 +250,24 @@ set_light(FALSE) return -/obj/item/commissary_restrock +/obj/item/storage/box/fancy/commissary_restock name = "commissary cigarette restock pack" icon = 'icons/obj/storage/boxes.dmi' icon_state = "commissary_restock" item_state = "commissary_restock" w_class = WEIGHT_CLASS_NORMAL - var/illustration = "sparkler" - var/starts_with = list( + illustration = "sparkler" + label = null + foldable = /obj/item/stack/material/cardboard + color = null + icon_overlays = FALSE + display_contents_with_number = TRUE + allow_quick_gather = TRUE + make_exact_fit = TRUE + can_hold_strict = TRUE + closable = FALSE + opened_icon_state = "commissary_restock_used" + starts_with = list( // Cigarettes /obj/item/storage/box/fancy/cigarettes/pra = 3, /obj/item/storage/box/fancy/cigarettes/dpra = 3, @@ -286,7 +281,12 @@ /obj/item/storage/box/fancy/cigarettes/cigar = 3 ) -/obj/item/commissary_restrock/rollable +/obj/item/storage/box/fancy/commissary_restock/Initialize() + . = ..() + // The copy() at the end is required to avoid every line after this from imploding. Why? I have no idea. It just does. + can_hold = src.starts_with.Copy() + +/obj/item/storage/box/fancy/commissary_restock/rollable name = "commissary tobacco leaves restock pack" starts_with = list( // Rollables @@ -298,7 +298,7 @@ /obj/item/storage/chewables/rollable/vedamor = 3 ) -/obj/item/commissary_restrock/chewable +/obj/item/storage/box/fancy/commissary_restock/chewable name = "commissary chewing tobacco restock pack" starts_with = list( // Chewing tobacco @@ -313,7 +313,7 @@ /obj/item/storage/chewables/solar_salve = 3 ) -/obj/item/commissary_restrock/smoking_accessory +/obj/item/storage/box/fancy/commissary_restock/smoking_accessory name = "commissary smoking accessories restock pack" starts_with = list( // Misc smoking @@ -327,7 +327,7 @@ /obj/item/spacecash/ewallet/lotto = 8 // A bit of a risk that hangar techs may just use them instead of selling, but that should be handled IC as theft ) -/obj/item/commissary_restrock/electronic_cig +/obj/item/storage/box/fancy/commissary_restock/electronic_cig name = "commissary electronic cigarette restock pack" starts_with = list( // Electronic @@ -339,7 +339,7 @@ /obj/item/reagent_containers/ecig_cartridge/grape = 2 ) -/obj/item/commissary_restrock/food +/obj/item/storage/box/fancy/commissary_restock/food name = "commissary snack restock pack" illustration = "snack" starts_with = list( @@ -361,7 +361,7 @@ /obj/item/reagent_containers/food/snacks/sosjerky = 3 ) -/obj/item/commissary_restrock/food/xeno +/obj/item/storage/box/fancy/commissary_restock/food/xeno name = "commissary xeno snack restock pack" illustration = "snack" starts_with = list( @@ -381,7 +381,7 @@ /obj/item/reagent_containers/food/snacks/adhomian_can = 2, ) -/obj/item/commissary_restrock/food/candy +/obj/item/storage/box/fancy/commissary_restock/food/candy name = "commissary candy restock pack" starts_with = list( // Candy @@ -393,12 +393,12 @@ /obj/item/storage/box/fancy/vkrexitaffy = 3, /obj/item/clothing/mask/chewable/candy/lolli = 5, /obj/item/storage/box/fancy/admints = 3, - /obj/item/reagent_containers/food/drinks/bottle/bestblend, - /obj/item/storage/box/fancy/foysnack, - /obj/item/reagent_containers/food/snacks/choctruffles + /obj/item/reagent_containers/food/drinks/bottle/bestblend = 2, + /obj/item/storage/box/fancy/foysnack = 3, + /obj/item/reagent_containers/food/snacks/choctruffles = 3 ) -/obj/item/commissary_restrock/food/microwave +/obj/item/storage/box/fancy/commissary_restock/food/microwave name = "commissary microwave meal restock pack" starts_with = list( // Microwave meals @@ -418,7 +418,7 @@ /obj/item/storage/box/unique/donkpockets = 3 ) -/obj/item/commissary_restrock/drink +/obj/item/storage/box/fancy/commissary_restock/drink name = "commissary drink restock pack" illustration = "soda" starts_with = list( @@ -451,7 +451,7 @@ /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 5 ) -/obj/item/commissary_restrock/drink/booze_cheap +/obj/item/storage/box/fancy/commissary_restock/drink/booze_cheap name = "commissary cheap booze restock pack" starts_with = list( // Booze @@ -465,61 +465,114 @@ /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice = 6 ) -/obj/item/commissary_restrock/Initialize(mapload, ...) - . = ..() - if(illustration) - var/image/illustration_img = image(icon, illustration) - illustration_img.appearance_flags |= RESET_COLOR - AddOverlays(illustration_img) - fill() -/obj/item/commissary_restrock/proc/fill() - if(LAZYLEN(starts_with)) - for(var/t in starts_with) - if(!ispath(t)) - crash_with("[t] in [src]'s starts_with list is not a path!") - continue - for(var/i=0, ieNNmDw~l_mnAi1glDf*`$F0i{WiDiEYfNf1O(x|9H+ zBb|gEN+|F6-#hoddGpVm|IU4vA;Zqe;q0~7UgcZgUWqr<*QB9jrvw0iMq5kmApj8B z{C!c7fmfn!3v>Yh@;SuV+)vHH*WSn3%g@=<0|0`u-enAUV8p3^4E%h=iVYvnwf1GR zpjND{q9430!jN|3`P<;}ba zxZ#z>`RIl2VdoS4K~T5W%~Z7VU7I<-4;~&Vv0C}yWgi7$$Q39YMeN%gl2P+Vd3?Id zyt*3ldXUldcG?0FRj+y2$k&LgeqR#4>EJkjwz~bWD=yEpT!p~47hdfrtLx({AN6cA zUj6VVagbME-+k8UuuR|mXTPt9cP?M)r6Nd~lW%qy*{D?<*KaklH;*Zua=!8Lj(M2f z>ZZr`N_tUazQ_tI4f1v0%Uc*9nWWkl|2iq%$!Ei&An^G{0NdLyT=j;(?A>Y#_HHg2 zttHg!gx2cOYqe_xMDi7^Plz7A%T%;9H`?qUG_Aj%JfLdRu%p$KW2SlEw>c;NHj}~S z@lpYdYg*r0!l#I5nhm~JjR($yem_xo8St_$=mGCHUV4Qk)1;r?2+^zKwj{BV&s+LU z=47K3|K!tGl}6mvjR_~K=kVg=)6aGrRbAA&!bN<`4ew;}U4Yv3?F&vkQOo4MKd)wz zs5!Kan}{pc@Tw-yTr|HABGx_@=T#uRy2otlmr+c$nSzkS&ol`h{i+?0zM<;XJ;lig z``A}F_He?xf$<4toZctXd|Je4hK_5B(yf=Z<07Xs>a+o(ZRN|)LL(kblqCwwN-~LL za-Gv0Sj~0)s64tINq3dD`_;VwmXx~YMm~Deg+EXB+2@nXjV)R?bn?)^xH?9qw6MB z@sAd!$IqPd=3cYq3tPX``DIEmu$9{L)pD+Vx?hg2XXPwp=kAKaVb)%_?BVYG{8w_r z-e+Oyw6I$ zcv!p^mBkB0xq^!f5hoWHb}W^2-77b)`w4D2S*UWiWSV6A=NrLk%CXf|r!0lw%R@s$ zWcvwmcliVNeq1pNF04I3#S|fh*aBdlsVOyCO6Aj5^f03Qp#b+QTc3fXX3-S?$@RJw z*Y7{#RvvV@V%=vNe?R1|J7(Bck17}x`Y1$3$GtiKN^_{(k=E+HtaZkUVU%+up)5SYwy559M=&z z%Y{In%t#Hl5wu!pxMI*7nabKUP4{!9xso{E zn_YL=rFPr<<#Jb4tgUk%K6(_@5lgpWy|F#tQBqnu)SAM4cWT7{jvWyCu?FrfXa8NwnGW5mxIaV@rWjPzXK)(iwQ4=i7a>n}Hun121%FOlNt73Ro6)Nk`}U)u@w(95fs0d7 z&=6swBc{iGqWt+Og`+p)h>Y@-&O+B(P8XyvX5HfBo_ZgXPlR8xjq&XA4q7)R0#qB^ zoc-BcI39yz3}XIUjFrN3oar9R^`bR2x!epxl!P%ePA3G z-<&rmTj^|94#x`Pmi8YXNZ--x*Hjx}kfoVRB-6|@yJtqttzcdt`5(6Gr^KI+A8`J^ z%rFT@S7(%V8V1}$Xb|dTn(+WREhJsvB^*Ue{v1Ki`|Rlkp&E(*heTOq+nUa7K}Y95 z5m`zbdv{)hq%_Rvb@ZWA57sQNb}0SD>wHyzv+doGBV@5J_{9@SQds%zF$;kdh|>-0 zM*HY*bctB5`k)Mf3>kyHlP^-OEOp?czIS#K0bgor^2j2_4nJ}$1Q}BEC|T|lAwxck z9fVfij{imIwH`G~J@}+Fcsi-6rWV)Uu0jYVhCrCQ>hXR&Ud@y?fUI((L3wI!eU3ye zIQxO1@GVM5A~p2`SAW#$DZdqrO-0c$E^)}|r-AYWzM^!fh0a~u(vmZUOTGxWckf<= zhrgtxBydkn`m4Z*$ypRRT|!b4H7Lha@yTL-gyM!SqL>!TsAQ=`EdGn zV=0(HS^{ZkFuO%1P+1JKv`BnYU5BeH}9c10N^E>=Ffq;W{xJ0|P^oB1=DH zRN|#c%KS!uFlL$}qohJMU^63sWt9b3FQz9!^cS2k3hKY88m0pbgL5BG)bwA?YKMI!$liKs<>*-!b57P-t)XU3icVMR7~a?aJU|9A z2AXNbsB8Q+Wga3#-%e9a)!5;@#qJ&hC5E#~o-paDx$$v?Cwv3_c$U{?ysW^wPAnzW z`SHLg#rW{q2NyG<&!f{c?se9#ln->Kk=&eUT_&0PuzPFeb8e=ZiOv1zsY*Xb{H!;YH@fQM#jf(_ z*XMVF*_c0kN0b80zyH0U_b*4se|BR$YLm8Bkers2z6Uk4uwOlqu2)x;$||8EQD%^B zqM{OMh!$a{qUBcTcJ=u9{kz(HWA=v+lWUb1QFKZ-02}ONoi!ZCO}_o6CYKpN*d0Gy z`Z-}h<*4H+uZsKXy_=lxjKSApV=NCxMn<01ab3H9o&7gmVyB%No6CI{m$KIx88__g z?TN-A6RY%N{6Oow*RT0S8|NUQ$}QNaE~3w5751wkkH(*j3Fa~Z^euMLcHz6)^KPYP z*mpu^`5wKgKtv`_0tpaSTlDd~`VsyNOnwLJ5Ra^|0#^81P%$=(L;v0-1LVbhwKYu<~0I66ULAAmnK=+o2VJ^za=2Xx?D zP(~FMm6z)cY!k5&vwZ#CyFn*w#p<9#CnO|DRL}se zmpjB2eV8Z>=Z1q@aw35b2C60QN(bFE|0agG>zHtfZ=16xX0nO5=)AhLpYHd4ZS6~@ zm6n$PEdv8hEiDRDR2_Q+5*ijCAOFB^ftBb^&Yo-OGzIA)wUiqP^>}6L-4oxZ#;fn% zzO@OqUblk1!|n=-S-xgM+(qE;@a1pSoZdq~}jf0*Zd_R zf6?rJ&zp{Va1jl(oU*({dYLhOnKHzHMiOhD7Vcs3&d-F|_>J7t=C>P)hdt2F)t$vn zjG4L#5uh|c*M^)9Mf^$d$lmpT>GjRd=yWr-TZ!aGPj8bo@dk?-6+nU9y?qlMGF+tB z{+KWwI4gqv3axc|RZ>!N@4S;Js&|%{lk8 zr0XB(_EQ`F{$V-+1>W2yep{5fVKO@;zar{^=MQVU2vv2N75AVxU!-qWHbClUrQ=Ka z>e4NT^xhMexI-!6IXnRHu-zK#EjK=}SQ4`ar#;Rfjt?hM}>ud@opv^cCnJ zA4DHLdUVDAiKoj^S!FZsE+Llvdx&92poNX_NNR1hiOQL{WSFCsFIi2cToi(Dz-CO! zG3kb@*)x%EG>b6+RD|)b)VkYmWZw9j7{3c=a=R)OcRdAXM`tH+%@SdL6@0zjG*JC{ ze&^|Cx#|z(-9HL>v#VxjS)(8HlmqJwLPkCHrcd-@M!v2OP*$GQL{`p2tU5?t^lz5P zEuCFE3?kWNt?y5>KK!oZ;NWnyKWu=-Xc(yLQYF<@d2(kKgi@5xQvvYtv=on;7oeE$h ztOK>#MzR2}xVEX8-{CRTZ5FyIFqgTGnhm2cHZ~3lQ%WUnbRL(sV$b{hxfgl9R-DVu z+_ZipaBrNG5E$GANdNl96%GJHM4om_w2MXD##fdcvGbXGU76c+(ZdMS-z|u{C)198 zwz4EC_wAs!<6jfpp9;{fL9=B1$OLOz~k@Gd!f(io*D9U+{{sn zK0&Vjxa*62vlhorS;0kxt1`q;`9$U@^Zt`?#(ul%xutX{zJv}d2}1O{kQwrSQceE% z{O^C{(eWrTa;i7l-;a;^9J^@M%V~q{#y&sJ=f4migKfWmdy+lWd|QwTxWVn++A6Z& zCfEo!Vb3L&>=kL4;wPhKjX)s8!HVe5(vmHv-aV$3Z1!>U-xBHSH9>;$BZ7XBjpWxwFDQ;lNr8x5W`%@~F_#!|HWixLH95I)dJb18`<3?Fj{Qu4 z%>%87D!$DF3Ui6fE0(^=KoT7kF#qcFX?M=ujH<11+eC`S+P`@&`U%a3YS3AU`hCGqQ=qtWZzlg_|Kad ztHdhZ>pS!zi*d)Qs#S0&ryIMwyXf0p<26S zo@zXD+)X-hEM@J6N9%#|t@tZf zuCPizrKnHhPR30)+xM&v{e64u)-CGNs+g@ZlX52Ckh|^e?TDZu{;JC7XaO5r$x9;! z_rF{FCcl&*&8t)n!i=_e8+i>gZ2y5zAUQZBAo?(zoWoEgseZ0oYcUUJ>m7HJoY^oy zOpoJv?_qM;? zLKt|q`)mCC`IGY3FcENjCTwEN9F_d%sr`wK&EQ?%af{>*beGN5h^{ZBx~BHczCZPz zIdtg7q}4VD?UN+&$g-{kDn{=}5i^)FQUM62KXZBU1`C}uKjS#*KfCgz@F=HLS~X9$ zA2u0gg>QbYJjl9v))TOQ37hz+Sf9;0v@_w#FKolCXnsM#D;i$*doY-i>1T7>RVt(G zlZUEDT|98L*RgDK2bo@K*?RY90wDl1>;i>n*ltO@7<5B*6BYQ;L|zdxjmyYjCDbP! z&;I%IRKo5%Mb=$^O3<{-Yn_aW-^Zda6K9lgSybDp7dYP#=rH@#emS5T1x)E^`bhAQQA*si!;o_*XGgHAVTC_UIfC!U^$^=3Mr`fiUB zswlg#JzFOg`x`rhss?dVuGVj6Qv2ry&km^oS$`boWoeJiw`hfH*VKVF5GJ;spSDuY zWy=R9xoD#SpA_4#}(toU3HR(-QkE%{_DKi0xn;YUD)FslJ$I5;eXZ(Y+JS)e?^9pcy zC@c91LEr@2;E(MBafMnyK)pd;aWn`yCEO?PxXrY%{Vf3mG?KQs$mU5XiQeF%X_q;RucKsC+^ZDvkl7!qE(fcPJ_9_x*C66DYW`v*hir;YWo_}Sc~Tcf(Cwbx`r@xuJfN(o0OH#K~|BXudpy;nWs_K}_N3pUTs z776rsANeFv1Ybu%EML4q#*P_|bDvHhDq((3p5V2ip#jv^(o9pUo1jA)j z*2%a}UOhS7O7)m-;=6fM+j4i%(+Ekp&3V_4q9cZ;BTqFJ5wv5ciacK)$gMIqF^ONv z38f_>BCq)mFab^S~EcClkl^d|&8 znnay#CY`=VIuFKbZJEFAG3`}YMyXj=1^~+FG4_Wt^70&l`dMu((6HxUzDS-PzPtD< zuc4{wGbr+SIWtCq1uWkeKBZf?*9<5nmX+PAat%?0}gog;;V&ozbOn=)=fYe0=5s`=P4q#1XS}Ta>^N@{c1mg&Z9~AL*Wd zb(4AR(W4NZ@kS$U)S)#Iz=B_W9)9J@jjHk*m~?j5 zpU4Mj!OxSyExwi$j(2s2`b%p6F9nu=1+Sd8DvDpft|9BO zvb=l?8Q67u11%UYBYAsge7t)2S+Dsia_B(5oKE>DJwxe?+iiTC`-7-wE0(qcO0Mx_ z-~W@>SWehu168HK^3lo9FfT8!SQIXW+r0J>&^D3?BLb$pG09();6!a3lh&kOy1Gf- zeSQ98&&JigD4;D$P0xIr=vcn7Btl^m=bbP2dvC`a-q$!=8{Yaht|O}1fSZ=^`NK-M z4Ez#;jkcc84%bAlH3@k=MkyUNty1^q!Y%ZiX{NNW9)MUNVPA5EhlT4WlU4mWx?bh-};pZS4-i_Fh*ccN3!>N!24@X$Ba<$uD zf5S>^gZ&_72bMY3qj(oeei<3F$GKjt>zbhG^8#~d&n>c@^q!p)>@)ye+R)S2ycQDV zJ>RTyR`QVFdx58+;6c0_Q%s0O-R8AC7>R#*XFPl=<)cSk%;+p)UU734#o{_+jdA*F z+YzeqmK@+z+7%cJL(&mYr<5y)cLJ_sjhCOW$|=+ib(QuuP-CMCz+$|^HSLpnp0LO- zq(`mUxg+NT+VIFVPmAplWjw1AB&F`d_w7yRHr%%$uW_jN>5+F85)T&JL1)R;vM^N& z7-8w&DRbLxqpveLzvP3jv_)9gUjvd-WC}MEsb;Up2#VEtR`n`9N5cEmB5sHmo|id@ z#XES40f3+K4x~(YqTBL9=^-4uzMzHG&4tlvq;N*X!lE>K)`sB{Pf2uXige#c3TUQi zU9!EWe+0RAvch)cx1;-4t@}+->MHoL;OzV=R{;Q!6H(s@m4V>zMhwTM30=B)esAuc z0^>VT$8&WWC@`K*N{vSS;aQokI$e9Ojo%8GKjZ%s<^i@a}g)bu|qp;Na4bP?Q{N@ zj*w7)MtiZZoP@)z&hA(Cn?1drD3##ODz5Y3jPwud`yA8l-_<&1UL+7F)COL z6&vv6!IIde9t8bfPC(^w35Gv)yqMennViUx&pOS*ziZvhO_T{0k5_nu?Er!CXt`PQ zft4oJ#rdkvE3XNyAsJznQ$m3lO?i2fk6(iZ&r=1kROdKv>GA2x^8C)_i)2W_ND_vP zg6=?aK!6^{rNjxm^xd{eBvgQy{qR-BG3lE)_A60P4WjAvCA&c?F+i*(f|QCm4$Ou6 zhbO7XCQ5Rs6)7C>hSjz8nXOv=u0(7zi8m?dJZWSoh^1*)Y_LvfZ+{e*$YG~-*2NvF z3$$@~w&clHay)EFM!>x5GIr7@9x-bgB zt1C+ia_O*)nb=LEd(P3Wx9cLxqEM#|A3p|Z6A zi_zghJyJM3QO2CQ{w@Gg!1dYM+5&DwpJS?T2@6v*C#pBk)U};PYX3)GJqZcOCH#1}O479jgpc|Ah7_UYNj=!~ixFb#`8 zW^jJWU2XoFx^w75DP!mCt77}?@Hm?YwBZ5 zg*2{}n9$JQ7(C15~So`1YV0*^vqMsxZrY8|cyB1@hD=r*H^l^RY@oJzQPyP2K zjUpbe0n`|)$t14ySZDjeFUyXNTL}<8wHp6|rzUqkYeL$phk=N>`z!L(P*;$G0hyD? zq;UV35!2H7Cl858KIrC8eV)C+3Ir5RSkJluTUt+|W~aTJ3tpO_>nN>F+S{Jv{fRza zLm3}U@k@Of*IJv^cQh{ z(AQZVmr{L;LsFfcOdGgo z$<5%s7FNRpr=AvLi{A7^snQiBqTfiIn5=}y(sE6@O>g&Wee6F=1IZWy6gB%CGS(R`B#Fm$Wqy(8P($iiXqapg(Tk;81&zm@fPZCkt>qwG}S3s zGJ|rx7_}I3%AK3DZam$cPo8YKv{`hn;E-S-u#Iw?o?KrUfNQI%^<7m|o-LkpcG=On z$xT{)_h62-j0b)y5*ZcB=VSA6*q$;ay~CxVO;5%O(#G7z6P88WMktL_Hh9kuY4ZEl z$H2g`2M+q-7V#*EV?{$Z0ora|Adi|K0@jIyjxgAeOah#oV~%5JR-(D zR(kZMb*tC%lwA6XBf$7dXC^74?xQ|mV*ujkLymK+rjM@aq7>Mnj)KL6^78rF&I2o? z2kG|UH-m|lsFQ!BB8%G@Hhq0$SM_sLkEImv)AG%BjW5fCJz6jT+qoXpP{@i ze^d@?HX=6UNK5J1gshnFpGKe3x4pp(m$@XuR6S24ugh8qm*5yWR*4BJhrPU z)a!C{&D<@z!|cU?kKgZd@}ZY`6&0tk(k>U5A$ki0qZ-3zms^nAdigC=pBphn4$32K zqw+yS<6Ay)oUCz$@*TE)J)P@{L_tq2uY9>B$d7a+izNTv_8~oSjz|K(_?u3B5wod# zb($@u^P)Dpc#VrO$FQTJ0i}#zxJqU@$jC=zRV`CY!Z6Agw>m@|Jvz$D2V)$FS4&+Eo`9dnJv}F35s!0SDn6MYA1P4YP1SV!>bLYaqIL<77qrCbCtblR~cF3 zwutKDv99Rc zu9kjlf<0krY0* zDDBC##6>DT&i!$QWGzkP$xEmcO^>VX~r)hNfgLcNO$n6Mvh<{z3b=~o;r-z+=Dx;vU zjJ(TIwfZSnHQ61=0&i%3T+)PDraHjIj*pL@Jo)u&Q>TlrtBW&rNX2wXtr$DjVhPX) z*mb?Cwg#sI&6#2sR`xw*Dw-d|FiWkHTzgndwqB3Rvl75oE$%8hZT zsy|Kc^j1DFhnDWO)UQP^oRr4KFjUzeLF#1|F2_U*IR8vlLX$=GfDMi7jdv0|mz2PO zv?Kr-Qe1riw2?YMZ44?1?iM!TV~*jA8!Ss)>P9(DIGjX3I(%n=P-m`yX8sNjVb!wm zAv3TvBL5V~a*AlCey}APw2*MO1^>yNP$%Y&vFJlIF&54&@GSD>OFQGYct-!k@I#Au z#}u|B8hLr!%I)E0W$mh4wdd$LS%|l58T5>^d90Ga!uc7Y;pmwC)3}Rs z?df`X6v9G?9m~i$MU@VnIYP~aFpfVJPA77cd>?kg(CsF@*IY$6_ROSlru2%L+L0-g z20GfGE&pT+y;FU36r`upxLe<>j#2^-vce5cZCt~!TyM{}pl5TaFbVRw#12#ThZs68clS>JFR62gZtDyDs-V4!%w1k(5xVPPQ6*ObJZ zc&p4!Xx%s}>i3Cs*DG&*D5h5LeTk|8%{o-U=PLJc?#0e(#^}Y7W;yzo6{t@VX4tV!T3@6&(mnc5ejKHOkgmV#{x;FfHO6xT<%6CTnOeQ9^TNHD^FN8c~W)q#Y(}a zuE&pODlZ8A6d`pA?9UN(%$zM|6`)m6En3D7awlV z(!C}ZpwzQgZc&zWr@zU6{Hw3vj})#AU!IXUf9CJ%;RTtbo-coY8mboyz)i)IU(V5fk*1_!5R;GAk=UFDsx9|e1G-@`msPFDbaQ5cN5(}$9xnrc= zF!eMIQ$C5|&2{0Kxb&>7%}3#y{gFpO?s_$Iqm%L*V^Xfo2MJf*T4l%paR+-*rBk2k zBB{}4PJVJS{Vke#$P;DcY}A3-STF?+pSxQhCfL@?*#H>|MVC3&i+PJut3_ls z>nd_5FpSCt58nVYdoy;H#&9v5qR}W2v0#ep^_dc^HK5xJ_LR^_3BwdCH9o;S4i^C< z2Yy{vWSs{>PYhI$cnZ)GmLNBFzmoS!(b%;{vH;-8*gKhGJw}#87glxsi40fpRB$}R zle)-F*JT7Bu1@+|#&gW=&pQ)22JOI{7gAzq?rxV*i2lOs#%e9rfXh3I?nE?BjA`0| zF~k7##opV270Cpn@Ui?9vlcm5TM)ON%y8bQG5AlnL2K76I4{+>HG+iQ5iR^e5R2 z#p2bsl$2qIiN7{7&u`S0ESdntSZqA+ofjUHGdXzaiY*vxpuuHBWl{;xFmYyF{lfc8 z-+)13x9sRG&>HSw4IHI|wrvzn`xILI*HkzaLzo^vejJyY+BNqrs@kE4nQ*#=I63qD zy2R`xLo_6Wk-jpK zs~#GOGUY}Q)Cm;l2YPTf8Mtpp9IRX_Oc90NdLxw+iHOF>iL??G`J?KPqSksja{Bj4@`}T)%{>oMY0m?5GvWx)9xvC-+JmuARM;MoC-pWU zJ_I7b!FUG?A~_-y(5i&1_OmD|j~8-QRqQyG<>`)qzkItLhf-$?k2D)xj`Ud_Ghv3r z6W%;fkqeZ}m9}FAkKftz_+w3jes%X$3{e>8yC8SZj@^|L=>t{wM~6edz)jioRB0uA zS4&OnbSw+ciQLB1h(lA|g$}s5z}C$d5?xAdFJjP6*uEvS<`w2 zy1eWNoq3W(rP>Nt#dZ-R_3n3{+sl60SZR~a{)qg#yjC49wV8Ml$dxi1&;Zz6(8z(! zv#lyD08A;6ws;`BL+H`Td}+m3Ai}I@pEyDT^Za~ed+)372Xr9yeBrgFzc7Z0b1RZ3 zAorUqG~gSf+3BELCLGs{^%aV!qj(5CU0t84qP1ui8QF4`7UBurA%E|)o;sSRlN@QD zS{jq~)NCAgBST)U5xJDUj6t2|JNKpG?1G##Lv>s*U^~>*I_+)U>k=)aiWUL%Z6W7U zclh~>EmI<>h}43EcU92MVE43zs3zF{R7ltV`=5}O=Vnh||9UF<69;*9hx7jvt9iFK zw?Ox?Y;h+%TM0fRnR;=%W^83cE66>rcE}dO3V=a!9aag3?+>F+1GOzzZwK+ MtLv*(s@O#SANS{_82|tP literal 13280 zcmc(`2UJsGvo5^pD82VCh|*Dd?>3s0&_fZap?5-&E(i#SC?Fu9bV89{m8wWlI-&O# zs!4!AxbgeXz32Sve&4xkopsAv*=uFL*?Yh9&OEc9nRzEK4fJ#CaStc?YJR)*%@0Qe8V^s!7bp}k$pUFP{e%jY(Z}GF8yhsxo z;F&iiH5KZ~*?Ss=Qy96nsh<@Xc)PnIh=Sf(L2_29Ysm6wOzGRmAI(x)3T{X=&aOZo z1sk^(E__m&)1`j!O*4 zePe$j4IwqOxu5tc@_9U5j<(z>LUBig^MS&kg(ClJTWZogAEEwrSu-Zueeo!b_o|B{ zCd;zXO6!Hxu(C+`Y;p{_JDV2|kKPCONsYA!3>*Y^-BHdKy?o@RZ(`U{c-0$$$Kgx8eB{Pg$e%&G` z0Cg3~xz{s63u%Q* zw%xYe)MV>pCqk|V?63J=?2EFy1$t|6SN48y+Lr1jB9;n0G2!N{rc;o%2_+Mv9MwG+ z3n>_*6q*Gi$TQ;*QDd(BCa@FAi^S>2gdr3*3&!rem5l9xh#~xi`nMcICyWO{P<2O#jJA#JgMss~Tshr}ds7BeJ)7Q_E z^YTjC$jowZ^X`^2cWY{(LDSH2=J!I;62g2b%Wqt!UNifSq`sH%f^`r ziHb{YVPyJzcNGnOH9yvzczB*JBbti1l{yy&=xF7oKBOD4pFRjP% zaZyX64#?Eu5Qr=)Dq6UxSLHaMqX`~bX!q_j;q-q8C*2gxk#4tzK6X|a+NqzjCR$i;@IJy3-G_Yxzzg z`AnGe(b4IK6tOdQi39fg!3Qp9xkt*LR^E9!2<1qj3ReSj6M~_gu&0=h*c-nxBbu{) zFY6y2p4zKiBV;4b|NSO$c~6|$BHq1yNpkps7$>L4wRwRDrXTLod^~rojJCVRMx*91 zXs+IOznCtdKS!3=zh|Hvl}3lKS0wPONfBtuOzG&$lndy;DR=J5zuS=Js(63T`R6uS z+a@%R?EL)v5d3*& z_J&GjgccBg{$+ph3)i((+d^mMbnqR)yE`eVpo}i(KL!TI)hS-B?q~Q=<)B2o z{TJ2Po{d*DTg802=#()XzN7Qy_W>$IYMK+~5`Qt}f;OTi(%PuWRVD*amVst^`C7QA zZMnT1g#35iU+c>P2H?vRW2bB(US5Zw9GPm_p(08e94xRQTZnKv(?G{cLv+c0g*;dgKCOhah?C|7tE*uY+eako57o)HJ1-<$uy zX1=nGd{;s7LPWL*O`5Ri((8pR>gQ(xoI1~cQUl`ddsEUSY4Z!!Mc)-{X#whcbMu?% zje~$nSQtbJQ^1skw?8EKmT!54Px$VmafE#KL%K+ai|VT+gz%^CKQ5|v6nkvemZQqs zpN8*{f(a(3?~wBrj#LiQ92LKG2ot5|;6R*8BqYf5ZDoCA$m_3Oz)%N-bLl4Hlx8BP zF}@yzQ^<>Ppi@x#W(PqlpR}}Tk>vkCsyru+;lS4Y{{TX5bo|_%$7*;0w^}zYFa-?{=cvt3<7L+!#uM1sOXJ;upVI{sTLJx9e@g`Rjf zQ-#$ivi3RH_5hdEUQe}BqhY3y9Zw?!$^0T<@?yjl1Og>RMgpJC>ukctl7{vo;Td^q zb{@%b;ng+Hw8{rlzFJ9GP1Ip(SDTw_($WIGk&`(PTM_x_9o5rB`6?^luW{{0Prw{Di8j|6Kx~XT0MAOfpkPV$hySuK2#>T~^ zzMZaTGBI8m(pC4V=BMW7EIi0`x;1SEzkmOVTS^Q~k*$;3Zh0r;N`((&arLenM<=j< z`qOocl0}jbw?vl{-rTh$Z;K%4L54cVu>7KYctgX7inYLInwlx!c0`qp8xByUk&u+> z50HjV%IT*Dkp?rHK?}1};c^zYKVf&^H9s$i4SP&EkmX_C?fOF@)!N;89@ADh3szNo zIKz;0Pt8m>QIiz0j*iTqHNpa69yolC-;Zo)&wVA|xM@TcDH6mntw6hVNMvYCIphK- z(%-ET6D}DoEGT7nkni>nMr7WeM!Irz=3zDZ!~qZNc=}_DE52BmjhSnk|CY*EN=|&v z3z5A&leXY7Y4G$O`?i`y&amF$+0mM??pA|GdjPcUOpTY=pqDt>DCv=t^b5d$pL|=3i!UH*BX-My z%r4J@70=f*?AHg=1Vu$rcYqF)_pV=M_^5ckzF8jkZqJVLV&7uJZ{*5+o&M0M6+V2UkcB<>xfvHPjGnAFK`>kRZVZ%c)r zUu*tD+6x`P7P3=-7y zQ`V65gkwIe>X6ei9gqJ{jCeWUP1O$sdZFV}Qxp;u=wYwU49Z83AJ@80-UU>(wTac$ z)oV7BrGP(IE03Q%F{Y&(xKXf^3wA?j3%2{dv*WYv4mgG3S|U%l0Rac+VGFYL_tN6TV+aJ|=5_y9-XgV22@ zF&p8#LPBZj>8plZ_sN!V-jSA_U5>dS8+23vMB)Tc?^vjFOzN;6<aNdSA~yzKu4>yRc7H zict|F1%Nv%LJA3h&Wrnk=nIE+_}1$R2c^9&(90e45-Bj#cyQP554tn>^!agx zV>Dtf7KSDU$aAl6NfW3aQghO|(*j-_`4Gp}cz8HDpH~KG;MDaduY`o*{VrXcKTr5~ zl&w^>Zf3jfgI%fj)F_tTt9cuA{q6^mA%_N!KKLS8ezshYe~VL2mILKW6joZdG|*4$ zGT(%@SY6&nuu6Q_Uwkr^X*h{8tVx^T&X#PD#`zwz zn}&H8UIa#lnz~6}FHS1&m~@FC*`(Q?Zv9XZYCajg*&0vgN5xdC^r-;#23<10MpNT3 zBj1K>y=`+>Ol;tGKGYs86LQ!7xj}AN@X(pnf`%Cd7&z-e-MT!~eO%+}1n$x90>;E- z3DK~*ScbQfPfqsY9H%Mz8nhWawK?$EzI)S?0!IA-8k<}FuZTHx+JV13B;@!I&&RrNMvcAOA+^Qv`fkul`RVZKd1 zITep(^K*^|Z8R~3x|tcXFeBN?>1k~kCZH!T+Ox{?Hf|t2JtM5V?A`ElSb%X4$kC6q zVx>azZp>c?PGPSFfX^QD6u^UgDH>e9V8)yt235710yi7b+Z@yLs(|N;ts#%YQRdcr zT}q+Z%#8D7MyAk&sBh{(cPbfIKaCrO#yj$lafg-jR_?Eo>X%px!XN@(4F3w6x+n}Q_fbbcr-iV zk2#%$|C+~>g=RLFCJOaANHjU3r*k1R8_H63cG41LzvCv@39Vjf=sF*~HE~4buI4VC zqh*QlW0YBf)<2y&%F=my8D`deqy>m8LNhWl`d;=ft)jbHIKF@X9+!vt@#7IWhdjOI zK#JCAo>Hy0c{+^KaGxutBr^VpA zD1)rSu8q5P>w?Yaq(O6`jZ6L7uOc(@!%WTFy*`eUSRU?>=!lK5$8I&U_a@!b;n}k; zDwi%VFL$lW%gQPV)m5=$0K@|^d_fVaf%8wTk{DzTM77#T(Hxw;+aA1wT;0ExxK$Foh53{aySZ|#pKd089! z_|!!uk^|ifu&!rr?q)hZbrNCX;?5uB?5n<}xjBflcJs;M3slrDw5$`?*BujUJf5>w z44@UDOzAsc(6_Tk*v3ru;{n34EkU+F)`ILDBzZ}Q_U7W(22zVc(Fcu39Rl=DTyhm| zN=`qpbp&A=n6-&Aqqu3C7N1W(dsR(|+uP3TKmxIWfk9-Z5Qz0c)3~H_f*QLL&-HrU zjyULwm)#I#^sWmGbQgMFPb=f+MI3WkxHHK)zp7TN@!5DpLr3QT&XTy!$;}nkPG*fY zD$)B`Tuhk6Bz7QqdSqb_(D|zhfvVjlDIA}jl~1&Q<6!82sj%pfGd)9C(dgw4k71_vLxN3Ng47L$%Tzeh!Nex`HYm zbvxK2=0L^hA|YAmVFx~-_dy{(MmMK*T~7buLmHq47bwEIB4GHkN=nw3Z$MFd0;#c+ zt_)wlevMNGZro7g#YIkXhlL-z58@hMQYF1wfbA`&#+YRc%HCChPQ$=r;m8W`SNmGq zgZUQwzC?yNa{Sr*$9TZ3W!|@}L#zff&9|)lW}SKLG~9sAjR<&?$$$@h z8`9pjZnd5@TzEWBqe2eU$YDsUsY)gGk5zEO@(wO>ZJnR5C`LqtGLxKR_%4QJ{1F42 z!#P@ddMWxJOJd)=p_lO8eBwS^M?^x!NnfO$d{VArlNveN7R0K2R!b=3K$60cORt?0 zb5HW_8;P$1X|?dmTek>b=GTd-^?Nv|ORSZe&(?euKInuO_s%=h0tQUsomW^oH>~4K z@EJTJ;(oa?+3~%s)&1G}1hYTltJifm9g_oBAu(Hs`H#kbAGCBEibzaWe&2zEcoSa>j zS}Ej@>eHv`&Fe3g3hmJ)vd}Z}I4Z7`o_H#U@9F$;mzN@DHL7K}?0-}lBaF+x+pBjb z*^hAUzyLI_r6|0)hSpNi82&=txlvSV1WYeoNun$vYVO8}wnOPVY|`(v0{9IqZkVNh zh(pe}6#alhvQ-FjHb=$VtMA(X>WQ1abUX|M-1(M-#M)>hLM~X$5)-}ry99eMwDz;2 z6Jk9{kLeeSNIEO3`vWH@fyn&bUGlP=jErcy+j`5VqbfSV!E#v4$@R+7N{^tJSkqD` z_F^wik#TZza4bhPHOBgg@J7?!VSp_PBSK{h-3xUo33C!MWlq1Dm5~@Xh0h*=JzXO4)iE=bGrZ z5fdU(F}9arE&gRympj_=F}CNwJSobkfbgX*5nvhqJ6~LIT@g?vZA|)IlT)m(yCY&Z zF2KK5-9`vl%~UX!f0pWDVJ#&`gJG(Lid9crV(%gD7;NakqIdX*? zlq*S~fhmvgM=Q6^?7u%2n~h*j&kLVBQXVW-ahv+U9Pxc)`&a#K?Nm;uE~3c9A7DS& zHTo61UF&m6QMNHAFhl-}^9(Tn=z7fTGINeTJzRX&abQ(t_z4dfFVQCf+~JKB-rnAW z!@~^Pu}5J^<68R}d^uk@tlvgArI)Z?TvD-wi)<>g$IWZ#94%rLVt(+NM$#t%nMaZ*RLu)`MT2!Pi$U)TMN3*(s>J47a6 zuKcvOvB5&+nS%m$r6rR?VESE97pK4M@u=l5n9c_~q>KlYgoJXxZ%$@fs%4@1n1k;J z0gwVk6HJ9SQjv6?(Qc8jDr5xQ-J^KLNi(;;XFSCghx%&h;ZeOJH8fsmkjLl5wIj6i=s+f!7mmS+-MM%L^!Xd_qky6ZWQDn0Ad2;>P<--!$p zJ`j=@#5wtv{TU>PsjSN{u(l-NF9wQqQhNxx)H2}a_2JUb2%jW>*3VBl?8N9jA|>$o z#so+z5B1)D{G1OxM)Pdq+CAuMNM$j#s3{o_V8<7q*tU?(LdC36w*Sebc&jxS~s_Js1Gi@rbpxN!xPj#EW4L`an? z+p^)Iw`b|xmaO7Q!U-^t9`+g<>+YH)QFjTVUnbUmzqEeio4u`CLiRerECIrzKW%y9 zo95Hoqgi1|X8QwK(rlC| z{=Q&QsrT%$=)entP>GN~vKYve47jlHBunpF_NTtC|3#9Ap?#s9*tfpEJ}H->;bEyi zv9d@l@yuVRU5*{{zj>}zSo z?5KB2p^XV_68OOD&~1YXcoptNobfTj@+a=86YrQW6^XZ76sa`wA~=Jv!NOL}28x*d z`qt@)Gp-8nZLW$HD%)Z(hu7M(j>mIKCxd+WfK4bus?U42hVl!+)F_O0{IH7#K4s1S zx0W%7=JYLkxE|&_RfUbN-%2=9rdr)~p#lJpoF-Gi*-Ry7U`yGBYBf{n?Va7$)^=Q# zTK57q3yTn`hN7)8wQpbtw5xTxDCAuIZ7sC&FBH--bx|}AiUeEl%I#33;>&vUlE%cw z;?)qG#(zJx7xxL~l!hW1UXg-Djsv-y{5**uykF9RTQwqj0NpHzpmJcXpM$C?``{>V(=ScdGd9mIhv2$rS!k zW&QjL5%)7rx+uE&Ja|mQc?QtzTW|$)$ze@P;Bv&(4y10s;zz@;+&(VaoFB9$o=jTf zJCm>A#3veK{x-zfVGUfw9N{YS?H=Rm-p2}nK=9<|D;>Of=tMSYQ%$8@__S77|3Al1>&Cc*ukv+aR!Ij;US(1cRmPgQ2tR}39g{q{#>}LgM zGn0qX0I&V~0C&*fxn9$BHfv}39fvj^UvLLcgNf_eTT^^Bfs9h|J(-)tksn+dx3XBf z6~?Dl1E;O$ZatfHtcn6&#+q3ec32?F+2M>iVNJpCR}?PCuE#g$-(RFU`k2*mI%Usc})gX3$;yqsZP zbyZV;5i#31B7Id5=e5}x(xcNADFVeSpjHKQ?5#h$VmlP+GRBL9Z(dmfH86!7A7^Ee zj}Fu1hK-nM=CLJIw5gRT$u*7JJWh2ZBu+UT(^t}<_D*u$!y5n1S*LuHsY-Lcqsvp~ z6WoD=Fjo#YKh&2qj8I98B|6s=Rh0F@e=>N;86ugtyRC_b5jw1l5KQ9QmGa%@{SQdpA{eOgsJELI3>`Mj*huJNVDG zCI3lY^Xdl_*Vsb6^|u$`pYLVt2U2n8bp%>j>iB7WuU+TLaGvapYb03-C z*Pr*%zy}I?UDceu-X$sJaz*pZ%M*(mDg=xwp=Wgp_NKcwOkW4r>svmmd@Ild4i6?Z zb#u&sL`8?LoebrK-~1%=VqreNL?7)!h|Pk)=lsu3`CcZ>eJtK$Jfl|}773Q1y z!pW|IEK2QE^YZf4q@?s|)n7TjX;zilyb|{qn8820N|gkHR2Yu8cE+_-n>?B&c=2m9 z1n>a8uq&x=Vjc8XaTGmiO^dFzP`_zWsF`uh?nOvG!OSzs^FOlhtf96-xZNSdL;>Cv zH4{_({Jd3fUtjPSSgXE=hv-StP{)A=ZgpYn6~u0C#5y6?{hySvSY370#5A~Qsm6}9 z>(5h+^sWzA1i}F!3f!P+-0)1o_x9Fg;N^?_(jk&{FELWrgEI^7$%LL%t27hSxXLVWqtw9+9+1382`T^B5xVxX#Wx#S#D!18 zV(3UU>zU-f$E0IC+hmx9;h|PF5z=u@#621>=pO!5lzi;++{folb4Q0$6bo(s8qP2q zP6X(w5y7=bC)kmVlAAe_#YFs&DDv*RBvuc!yt~MIAr3OpYVNelf!0#2a=r7@x7*2thslS?ofE?i;BP_{2K5E zwVW*J!>0J2?EHACQ2e8@7}sYYT{Wn!Kom(|H*RoQO#*c#NvX4zlPi2{fis2wx{jmd zoPjRSprMLpWWEPY}QvvDpa2)8_uu;_OCR)Jja_a zS*hTPRC}R&*tV>=g;@vTIpJNd_8%+sMtu8ldK!(t>~8*k0Ag{cAw?DPfvc{LJ{1m~ z+|m@dEdQ|#GKo{ZEve+n2caL8EILxr51IU&$&r6hml{54*}=dGQ|(`ICZtMK`;AyR z+hglU6TiHL6Mwl3*EMq#=BjoB;I=z^NY4qYImD^`hkWk&IeUNKhxiJ*wvVNsi9xpm zdfw-ceypt1I}Hf~{=`CT0#Ce_pO|ou7|*`Fm*@`8h=+HcRJb=?Q73d#U|N6kXmd2T_w1Pxwxy-zorD9ikFT!;^vsK#OL;y#f6d1YL&>Gg zZrS94ETc+`jy}@WV_YSuu#6FjWaP7T3+H^R=+A@GGoR1VoqX-CVXcXng2AVWodlOJ zd{vhUxaU!?5S^VJLf(Jk^Jxs}@PnkS_iJ6&%4@t~7xrwg8>go>DN+f}Fo#{})?v^{ z|C@ux^K!q{rn4TE-J{(zZ_cLk-Tm%6+W{jegGnky65A3u!~zozV`+A+20^k1@x^}* zNpnFJp7ZXSj&?U6j|RduZ!kx(% zzI41mNe9Bh4g3@CkY-ZjBmMnt8qV)NL-&cOPcBG{Ol0M0gzd<|<^}_q4wn{qjTa!N zu^~teD=VuWe#Z@z<$%}#h8_J&Jz$c)1Tl4~2qg2_52V%F@P;7OHFZf(A}YV(X2wC$ zu}w-4YO*UBMn#U;v3O&?UR(2(_y}bW6tR?e+Otg>Og7^oewSir4&|Is~$l>t;5A#cJNV z$zkSr)aE!>2j#jK-7Yht)_j($MsUH?)yy7EJcI2X784yfiTHv|>ho5>^-+|awm0s? zrpJ}V_tU@}&hQ(VR%zqn`CN9Wl&6U!hc3`)*RK0XS{WCB7rRN&rxp2S5Nq}I)pxtz zipDZ{^H3Gg2{oqv2hVz`{pH!M@Ek_7d}N#b70%RxBe+(Fg@N-rF`J+!%Ex(iM92A@ zgz0bdzB**=ef+Z%cNmzZu`^DQs#`rE1fH1!pMPtto+K}MtG1i`>qT{wx4=R&`)1BD zb()cH#C44T6aBd)Q7x(y(@TVhXM?~v_)BpH4K)Qu=Nzu(91E}hy;A1OyEdfBj#wA> z7ab}X8fk(TNh8|iGx8zg$8&(ruq~ie9TTzb1)_-*td3p`!AIn z)*Hs)2Q(j>7K)Hg1+@MwqDvHzVXg>=YrJ~mRAPY8lIlxqM?HiyWJMRYI5jdp7czy8 zZ9;x1tEz(3>o2qgPG5--PL6SmwXK9%uuVN)w1hoIK;VtRNZBX($_rcAV&UwqabMf7 zmm9yAey7ceH7%x`deh$2&A-n^KJYE}c!$u!6w_jZ!IW5;>+ylwkUE3yk5}F`z0b)w_ zZDeO>jMtCC;MKQmv;e?wN~Rv&(=Jb}@y?^P!65v)= zUfc zN1NE&olR1mCyYO^XtBn|fdjYSl)zOght6z&gKYQ^2k+62>)W&O+D%{AV zy3~lubsN81hbt@^M~?~Y>@kC1)kIK+(dTh&qAuRTDN)~9h`mTodg=7J6%^VgF(rB* z%7>h5o9pHp3-qL91>Kx|*;%$wO}g+mNg+Y!!Ew4)iXrzoFY>RCo%5xxFP(C>epr9} zYKNls;H(^`Ncq#k?k_>UOsUR+*Q!AK$DgqDM|DM?ZPx+78a<;t34D2%K6rKID{BKH z0|sHRXw&!i{dbL%Q`Y4`MmKgZYno1bC;VGDx<7`6uFR!P&%M>ZY@0;P&-NP~OifjE zx-+G6BD@Q16hpoU@O1}u9h{-&M;je3(1c^c30!S3t)sU|AwYM5N4WBI6I$c9;t__+ zvAJaf7wu?Pw=i_?W)e;S=&dVnwum1l9mxAer|OKNq_$M%?FMuagO3uU@lIsEUPk6a$wKD z%*fSa1hK|Wac*TK?|SMeh*dX}FW(3hSSgJAwZ6m_-m-M>PU9pZ$MbZd+cIpoAcQ^8 zRROM-G_(v|al1mmn;bAGMDxz)oc%or1P*OmUw@XrtKh@fJFw?!NeG)-wCL*8f)8h8 z)F7&vf$l%L!Dq`!{Ml2+FrUBHEr$2l4UhI@E8zt>t2bOp2N{r8o(Ge1(ns@O%f~*} zP8q;449Wo)9Y;-C%&sQh2>il$5j(IErd}hoh%NkGs2!>-2JvR;4qY^lN@A_<>$q1= z3>f_G&oobg$Dk0gN{7NcK&rr(pYL6m4+^#JxjLGm)>n_ZhC(5H+p z__V233BqmT<93lwE`GjWU0qBr8r;b_*D$Mg5MekFM& z1z1W%*o)iD`4j8w@9v$v{c?JKJHNSMq1&w*Z;X0Q-bklg8{RO$_^k~!Gj&@xGR&N+ zk?Y9lOn?Nyk5npQ_m~Wb$FP<1*)F*S3WuQ2e<|1)*eqP?{Gu7v_4UwIE3mt1kL|S; zo`dv_XGGx@XwArzE#VBh^XpLbj+8VA^H>t|9X>Kbb zUdBCQTvtY|?M4F1?&7l|(AeD|{IXW$_J-YWLSR_C-y#@iB}lQtyfpqub#~NQ_Y(}g zX29ed0V67l;6Eu$`+R30nd{n~_N_RYD^oYW;?vbva3kt+PxJ;rS28nQUtj;?VHM0x zf=EpoC&*GbrvFnCH5>e_`R6+c0-e;k&74V>q;>?{uyTdHMwrTTwy<5<_w$4E0z#Y( z)Xbi83O{yliWEr*l=`B(^d_E2CVth9qJ+!c=%zU(-@Gt%O_nyUb7jxHqr(M3BwmGC z_%)Iw#HqWufO#aa818=aAdG*!%K!HiTb5|u(%;wy7nczM?hCDxoSl&n!g(@PpB^%w zPEu$@y-$1fR8d)+k6|kAGf1^K`6ph3W1)OS!6gcEp+@m+00M1Ty|w`XTc^#qKpMWq zr6k8_=qpMP^zFk#6w^oCbcs4m{7$aWyr?4-kvJF)5kqotD232RY+nnea4IF9odxv{ z48XHEIEW1hY-`)Z=3A)Gu+RHGa0igvRP}&9>8Y8$?X{iG`)owB8)jjo(cB;&jx&JL zYg`ZAuF&Z-_NLF=qU1;{Q3Ds{g)|WlX4vc5^k^(ZUM?fN=Rh%97C!JwxLp%P%3pKx9@46%Z+~r-t1+8pkDN(}CnG#h)00+