From 7be7815a5192d91c5c88f5bf33126afbd7beea35 Mon Sep 17 00:00:00 2001 From: gg12 darfren Date: Tue, 14 May 2024 13:06:51 +0400 Subject: [PATCH] sadsa --- .../BusinessLogic/OrderLogic.cs | 346 +++++++++--------- .../Implements/OrderStorage.cs | 4 +- .../IceCreamShopContracts.dll | Bin 0 -> 30720 bytes .../IceCreamShopDataModels.dll | Bin 0 -> 6656 bytes .../IceCreamShopDatabaseImplement.dll | Bin 0 -> 76288 bytes .../IceCreamShopFileImplement.dll | Bin 0 -> 40960 bytes .../IceCreamShopListImplement.dll | Bin 0 -> 26624 bytes 7 files changed, 182 insertions(+), 168 deletions(-) create mode 100644 IceCreamShop/ImplementationExtensions/IceCreamShopContracts.dll create mode 100644 IceCreamShop/ImplementationExtensions/IceCreamShopDataModels.dll create mode 100644 IceCreamShop/ImplementationExtensions/IceCreamShopDatabaseImplement.dll create mode 100644 IceCreamShop/ImplementationExtensions/IceCreamShopFileImplement.dll create mode 100644 IceCreamShop/ImplementationExtensions/IceCreamShopListImplement.dll diff --git a/IceCreamShop/IceCreamShopBusinessLogic/BusinessLogic/OrderLogic.cs b/IceCreamShop/IceCreamShopBusinessLogic/BusinessLogic/OrderLogic.cs index 4840b1e..064b9e8 100644 --- a/IceCreamShop/IceCreamShopBusinessLogic/BusinessLogic/OrderLogic.cs +++ b/IceCreamShop/IceCreamShopBusinessLogic/BusinessLogic/OrderLogic.cs @@ -15,23 +15,23 @@ using System.Threading.Tasks; namespace IceCreamShopBusinessLogic.BusinessLogic { - public class OrderLogic : IOrderLogic - { - private readonly ILogger _logger; - private readonly IOrderStorage _orderStorage; - private readonly IShopStorage _shopStorage; - private readonly IShopLogic _shopLogic; - private readonly IIceCreamStorage _iceCreamStorage; - static readonly object locker = new object(); + public class OrderLogic : IOrderLogic + { + private readonly ILogger _logger; + private readonly IOrderStorage _orderStorage; + private readonly IShopStorage _shopStorage; + private readonly IShopLogic _shopLogic; + private readonly IIceCreamStorage _iceCreamStorage; + static readonly object locker = new object(); - public OrderLogic(IOrderStorage orderStorage, IShopStorage shopStorage, IShopLogic shopLogic, IIceCreamStorage iceCreamStorage, ILogger logger) - { - _orderStorage = orderStorage; - _shopStorage = shopStorage; - _logger = logger; - _shopLogic = shopLogic; - _iceCreamStorage = iceCreamStorage; - } + public OrderLogic(IOrderStorage orderStorage, IShopStorage shopStorage, IShopLogic shopLogic, IIceCreamStorage iceCreamStorage, ILogger logger) + { + _orderStorage = orderStorage; + _shopStorage = shopStorage; + _logger = logger; + _shopLogic = shopLogic; + _iceCreamStorage = iceCreamStorage; + } public OrderViewModel? ReadElement(OrderSearchModel model) { if (model == null) @@ -50,148 +50,160 @@ namespace IceCreamShopBusinessLogic.BusinessLogic } public List? ReadList(OrderSearchModel? model) - { - _logger.LogInformation("ReadList. Id:{ Id}", model?.Id); - var list = model == null ? _orderStorage.GetFullList() : - _orderStorage.GetFilteredList(model); - if (list == null) - { - _logger.LogWarning("ReadList return null list"); - return null; - } - _logger.LogInformation("ReadList. Count:{Count}", list.Count); - return list; - } + { + _logger.LogInformation("ReadList. Id:{ Id}", model?.Id); + var list = model == null ? _orderStorage.GetFullList() : + _orderStorage.GetFilteredList(model); + if (list == null) + { + _logger.LogWarning("ReadList return null list"); + return null; + } + _logger.LogInformation("ReadList. Count:{Count}", list.Count); + return list; + } - public bool CreateOrder(OrderBindingModel model) - { - CheckModel(model); - if (model.Status != OrderStatus.Неизвестен) return false; - model.Status = OrderStatus.Принят; - if (_orderStorage.Insert(model) == null) - { - _logger.LogWarning("Insert operation failed"); - return false; - } - return true; - } + public bool CreateOrder(OrderBindingModel model) + { + CheckModel(model); + if (model.Status != OrderStatus.Неизвестен) return false; + model.Status = OrderStatus.Принят; + if (_orderStorage.Insert(model) == null) + { + _logger.LogWarning("Insert operation failed"); + return false; + } + return true; + } - public bool CheckSupply(IIceCreamModel iceCream, int count) - { - if (count <= 0) - { - _logger.LogWarning("Check then supply operation error. IceCream count < 0."); - return false; - } + public bool CheckSupply(IIceCreamModel iceCream, int count) + { + if (count <= 0) + { + _logger.LogWarning("Check then supply operation error. IceCream count < 0."); + return false; + } - int sumCapacity = 0; - int sumCount = 0; - sumCapacity = _shopStorage.GetFullList().Select(x => x.MaxCapacity).Sum(); - sumCount = _shopStorage.GetFullList().Select(x => x.ShopIceCreams.Select(y => y.Value.Item2).Sum()).Sum(); - int freeSpace = sumCapacity - sumCount; + int sumCapacity = 0; + int sumCount = 0; + sumCapacity = _shopStorage.GetFullList().Select(x => x.MaxCapacity).Sum(); + sumCount = _shopStorage.GetFullList().Select(x => x.ShopIceCreams.Select(y => y.Value.Item2).Sum()).Sum(); + int freeSpace = sumCapacity - sumCount; - if (freeSpace - count < 0) - { - _logger.LogWarning("Check then supply operation error. There's no place for new IceCream in shops."); - return false; - } + if (freeSpace - count < 0) + { + _logger.LogWarning("Check then supply operation error. There's no place for new IceCream in shops."); + return false; + } - foreach (var shop in _shopStorage.GetFullList()) - { - freeSpace = shop.MaxCapacity; - foreach (var doc in shop.ShopIceCreams) - { - freeSpace -= doc.Value.Item2; - } - if (freeSpace == 0) - { - continue; - } - if (freeSpace - count >= 0) - { - if (_shopLogic.MakeSupply(new() { Id = shop.Id }, iceCream, count)) - count = 0; - else - { - _logger.LogWarning("Supply error"); - return false; - } - } - if (freeSpace - count < 0) - { - if (_shopLogic.MakeSupply(new() { Id = shop.Id }, iceCream, freeSpace)) - count -= freeSpace; - else - { - _logger.LogWarning("Supply error"); - return false; - } - } - if (count <= 0) - { - return true; - } - } - return false; - } + foreach (var shop in _shopStorage.GetFullList()) + { + freeSpace = shop.MaxCapacity; + foreach (var doc in shop.ShopIceCreams) + { + freeSpace -= doc.Value.Item2; + } + if (freeSpace == 0) + { + continue; + } + if (freeSpace - count >= 0) + { + if (_shopLogic.MakeSupply(new() { Id = shop.Id }, iceCream, count)) + count = 0; + else + { + _logger.LogWarning("Supply error"); + return false; + } + } + if (freeSpace - count < 0) + { + if (_shopLogic.MakeSupply(new() { Id = shop.Id }, iceCream, freeSpace)) + count -= freeSpace; + else + { + _logger.LogWarning("Supply error"); + return false; + } + } + if (count <= 0) + { + return true; + } + } + return false; + } - public bool ChangeStatus(OrderBindingModel model, OrderStatus status) - { - CheckModel(model, false); - var element = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); - if (element == null) - { - _logger.LogWarning("Read operation failed"); - return false; - } - if (element.Status != status - 1 && status != OrderStatus.Ожидается && element.Status != OrderStatus.Ожидается) - { - _logger.LogWarning("Status change operation failed"); - throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); - } - model.Sum = element.Sum; - model.Count = element.Count; - model.IceCreamId = element.IceCreamId; - model.DateCreate = element.DateCreate; - model.DateImplement = element.DateImplement; + public bool ChangeStatus(OrderBindingModel model, OrderStatus status) + { + CheckModel(model, false); + var element = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); + if (element == null) + { + _logger.LogWarning("Read operation failed"); + return false; + } + if(element.Status == OrderStatus.Ожидается) { + if (status != OrderStatus.Готов) + { + _logger.LogWarning("Status change operation failed"); + throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); + } + } + else if(status == OrderStatus.Ожидается) + { + if (status != OrderStatus.Выполняется) + { + _logger.LogWarning("Status change operation failed"); + throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); + } + } + else if (element.Status != status - 1) + { + _logger.LogWarning("Status change operation failed"); + throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); + } + model.Sum = element.Sum; + model.Count = element.Count; + model.IceCreamId = element.IceCreamId; + model.DateCreate = element.DateCreate; + model.DateImplement = element.DateImplement; if (element.ImplementerId.HasValue && element.ImplementerId != 0) model.ImplementerId = element.ImplementerId; if (status == OrderStatus.Готов) - { - var icecream = _iceCreamStorage.GetElement(new IceCreamSearchModel() { Id = model.IceCreamId }); - if (icecream == null) - { - _logger.LogWarning("Status update to " + status.ToString() + " operation failed. Document not found."); - return false; - } - if (CheckSupply(icecream, model.Count) == false) - { + { + var icecream = _iceCreamStorage.GetElement(new IceCreamSearchModel() { Id = model.IceCreamId }); + if (icecream == null) + { + _logger.LogWarning("Status update to " + status.ToString() + " operation failed. Document not found."); + return false; + } + if (!CheckSupply(icecream, model.Count)) + { model.Status = OrderStatus.Ожидается; _orderStorage.Update(model); return false; - } - } - model.Status = status; - if (model.Status == OrderStatus.Выдан) model.DateImplement = DateTime.Now; - _orderStorage.Update(model); - return true; - } + } + } + model.Status = status; + if (model.Status == OrderStatus.Выдан) model.DateImplement = DateTime.Now; + _orderStorage.Update(model); + return true; + } - public bool TakeOrderInWork(OrderBindingModel model) - { - lock (locker) - { - return ChangeStatus(model, OrderStatus.Выполняется); - } - } + public bool TakeOrderInWork(OrderBindingModel model) + { + lock (locker) + { + return ChangeStatus(model, OrderStatus.Выполняется); + } + } - public bool FinishOrder(OrderBindingModel model) - { - lock (locker) - { - return ChangeStatus(model, OrderStatus.Готов); + public bool FinishOrder(OrderBindingModel model) + { + return ChangeStatus(model, OrderStatus.Готов); - } } public bool TakeOrderInWaiting(OrderBindingModel model) { @@ -199,30 +211,30 @@ namespace IceCreamShopBusinessLogic.BusinessLogic } public bool DeliveryOrder(OrderBindingModel model) - { - return ChangeStatus(model, OrderStatus.Выдан); - } + { + return ChangeStatus(model, OrderStatus.Выдан); + } - private void CheckModel(OrderBindingModel model, bool withParams = + private void CheckModel(OrderBindingModel model, bool withParams = true) - { - if (model == null) - { - throw new ArgumentNullException(nameof(model)); - } - if (!withParams) - { - return; - } - if (model.Sum <= 0) - { - throw new ArgumentNullException("Цена заказа должна быть больше 0", nameof(model.Sum)); - } - if (model.Count <= 0) - { - throw new ArgumentNullException("Количество элементов в заказе должно быть больше 0", nameof(model.Count)); - } - _logger.LogInformation("Order. Sum:{ Cost}. Id: { Id}", model.Sum, model.Id); - } - } + { + if (model == null) + { + throw new ArgumentNullException(nameof(model)); + } + if (!withParams) + { + return; + } + if (model.Sum <= 0) + { + throw new ArgumentNullException("Цена заказа должна быть больше 0", nameof(model.Sum)); + } + if (model.Count <= 0) + { + throw new ArgumentNullException("Количество элементов в заказе должно быть больше 0", nameof(model.Count)); + } + _logger.LogInformation("Order. Sum:{ Cost}. Id: { Id}", model.Sum, model.Id); + } + } } diff --git a/IceCreamShop/IceCreamShopDatabaseImplement/Implements/OrderStorage.cs b/IceCreamShop/IceCreamShopDatabaseImplement/Implements/OrderStorage.cs index 90256fb..5031764 100644 --- a/IceCreamShop/IceCreamShopDatabaseImplement/Implements/OrderStorage.cs +++ b/IceCreamShop/IceCreamShopDatabaseImplement/Implements/OrderStorage.cs @@ -35,7 +35,9 @@ namespace IceCreamShopDatabaseImplement.Implements (!model.ClientId.HasValue || x.ClientId == model.ClientId) && (!model.Status.HasValue || x.Status == model.Status) - ) + && + (!model.ImplementerId.HasValue || x.ImplementerId == model.ImplementerId) + ) ) .Select(x => x.GetViewModel) .ToList(); diff --git a/IceCreamShop/ImplementationExtensions/IceCreamShopContracts.dll b/IceCreamShop/ImplementationExtensions/IceCreamShopContracts.dll new file mode 100644 index 0000000000000000000000000000000000000000..a3a2f948930152a2a06f284227bc6a78818adb57 GIT binary patch literal 30720 zcmeHw3wTuJwf5S3?vs#YCNPQIoN$pqAaX~%Ktd8QC>IIhjg}0VF^o)R!psB>icCak zIZD+YE7f{QDpIv-5sSxq!K5J7fA*+U zrttY1@?FA0C(*CDA&&oa6Xk=e+D^3mc-xohK_YjK-3|Th9KA9fxgrhyu{Z!WsjG?` zntXypjg`q%vI&~R)(L?tn#4EfQ-$yl$#X8VMZ`jzMh z`-D-tZKDVvP-%k@0ffUOL;!(dVt9zKOTW4hQEX&)C9N>N1mx00RAH z1C50$4I~1JJ;fwM05Q%a zL@on6M0$it?gc7o@GfayJaGhxq zB7m4>5+azDW~-_+^Es71&GZ)m8O$~bC1eXf-L!}R*E38)1Q2JMga{zcG6@kt%rOZO zK+H7>C8*+-sSrs|b>oD+v5MU=Ziiv~*5HU`-$z$hgB^TK^ExL^q^sva$qVGW{CYWN zwU;Qh2Pre`L%+&%PjtD;v0QlRO(Wf)3i3=K4a<{G0VL;oaa&Jk6I86HeE!tU~^_#N+){cvj?CksH*hhI0b*tztrD3MG3p z9Q1^o%3|g5ZmeZ;4(V62U@OO}<2?nH=edia%-2>vvZ2yN%B9?n98aN&0#kR0t`FXb zrm|1?;&eD`^-Jd(kPf4lFAsdkne#FlyO?w%wsI^IUMWP`%W(p$$g3ci(N{M54bmeT z9}V`FA4D4^FGm}eln0S6k6h(A`BfxFLCHUDCp_JW(U1p`r+f^K#dh-96Idg>#g0I+ zv!dPS@HuZQc9GAOz`Ej{Slo*ROfSdM;RS`2!dsyQirqf<#0A8?R_yV4Ci>uBjzz

wKF7DBbFcawm$U8!>gGND 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 literal 0 HcmV?d00001 diff --git a/IceCreamShop/ImplementationExtensions/IceCreamShopDataModels.dll b/IceCreamShop/ImplementationExtensions/IceCreamShopDataModels.dll new file mode 100644 index 0000000000000000000000000000000000000000..2a89d8a64d0835f79aee4190269c7f6f0f696369 GIT binary patch literal 6656 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 G0{;aQq-P=k literal 0 HcmV?d00001 diff --git a/IceCreamShop/ImplementationExtensions/IceCreamShopDatabaseImplement.dll b/IceCreamShop/ImplementationExtensions/IceCreamShopDatabaseImplement.dll new file mode 100644 index 0000000000000000000000000000000000000000..d216ca01682dc1f95b478294c08943c28284b175 GIT binary patch literal 76288 zcmeFa34B%6wLiYjxyi}RoSTG<44H1c5I`ms6qOJ_q9O>06AG8)0?{M~as!G1nuyw} zIG|X^Dx((1XSG_?R&cDf*1XnQt=2-dR$AXv`>b`U{=RFSeTF+EL~DPa_y7MIz3Z%L zuf6u#YY%6ib1$>bxSD)Kl!DKfUlRQYSN@wKuz%1Ean7(ua_GVI7b<_Go%llK{N*jt ziWME^vW{?DMN_!F-R!Jb5~=7|)n3ukUNLR{3M9oLD4_)#P zyS9B)RgtNUA*#@b{1*3`V}VxypMon=E4FH2MMR)6w3-4zzbg*%dixez3@DYDPWKNQd?M;`9%@q zCQ4^)3l>`e&&=0?E7Mqyfvv~5(ksy=2wC}ha3#i8`9=n|9^*={)Cx^@zAv~ko%I;l zdW>6op*qygy**N0N2%**zIHgh&0_R6OVQgRlo+3hHe>!lA7{WO_wh*v`qJuSE@X&h ztB=QotT?k3ql=-{$0e$d*{spUQ2N;0mnWbe{;PQGk{hp!=}WF8NneWf#J&{c(wCeg zX>=KEV%k8Tb)nBnojzl$1L-raW*~jW^&YIxoW3{|%G@WILghM^uWnzk7=6J~^o0nW zzDSk6$V}`DE@X5ujO`1yVn|J~eZgjpE{1*g#YNW+yE&#W#C+no;yRLyD>0t5FJ6o3 z3${9tzTj#G(idFsfcs(`l({d)tLp@HJxpB>=j#ugal-288`ehOurkkztgPpxt`lYH ztILsh82uPGS*owr8zawGJk-gA9Ka+s+>JOibU3JBfYEJ|*c}aYp)98L{R}@ntxQ z*b}eokU5Fjm<(lHA_EAs9>(QS8m%aI#wB|(kX&H529gWx=fQFzh`E##=- zl5rtD$5jV^{(#+|P+j;k=lJuBlDtBm71 zjV^{(#?4e2$37Tc46TeCqcV?YyZIh@n6NZnSXmD zCKtug#9U-=ljNefnV5^>WnwOhlah<7$|;Vg=2W1kjo@`71xtLogy?aJ3ZgerUvee!)vOPoUwzAaTGjat+ z7egyc?L8w`Xml~`d(SxYiQdYXoRey6QO2ISDu7!pPLgv{X=2Vvosx5y=wkPb&+Fbj zBiA;NJmRJgB#+pif#eZ8c(6Qj_9@3fnR|Vvx;Coo@#>0Ao5)X8*IDX%lDf|3E5|`6 zsK}p_Dr_66!lscbY?)JqE%O}5mU)h2%X&`QI<~Cm_}8&zJtuvgSmu2C6jretLOvB( z`E=Bu!7(Q72UK$(*JN}tl&qTc42vq*kTlE?D2X-cE*4og1?-X0#ZYp~noMh?6gz2j zF|;PZ^VKBCP8(eetx0fkXbNz>iyL7Glt~cV=Q+aXMj2fU&65FeD>PU5+(@H~p*fHF zC87Dk=SCY{49!yjoXM2q@N0O^e-)qIIrxc~yq1P1<~0XCNnT5X6Z2XcI~+yq!C|fI z($>VelpAc#rOFexz2*Xs5x2SKsUEi5TJtn!k3hS4EOlc}&XPI#Bp&7dA&A5QSw=Y=2fa{2kV=J_b(5pbm^XvExfr$ca5M-+mY5KEXi zQxQ!}AY=w*)=?VvOg_S9k8;_rZ3-4$QxUJJrCw9Z98(!}Wbl2vPT04rzOsDuQQaZB zPyFHJGtf^a`x6p>K(IgDg$9lIb96a~pdLbU8Dk8xTGRNl_?AR-qhIJ=)F+98Ej95aqETrKbb|1NSi&Ll7`wU9o}*v{DEtWN^z=S4bbDT66^Wg(}|REgtn2?{tb=;g|R$ zpX1|ShA4BrA*mMx*Bg?0M?4f=1p-kB|R?)7)RO+LD(rjV@4nbG?%=JtlltO%q34~9GZV<*7hL7Ds$&64s z913Lsm}rFR`VJlzY$GH#K(LLF*ub#32n4zXsbH8F1Lr7rzB0`3 zFfjrPz!*Qhf(f~h+mR~mNLh!8Dh171%+2wcm{yEll9&1^oKqxW54kY0~VEv1<^;98JccU*pI z=tf2j3K&KgJ7;ni1SD9737Z*RHv^bxtU*aMZh^3tVCH*3M*YVdx%sJI6jkw3dMg<8 zx?QEuJe~uGfv*Dh15e<%tKy=dyQ)^;lIX-o3bTD(2vc)ime*5r3mhp(oA`T#Cz^(+ z6!-)F{It+ku-Ap%PK}~hjDqw)y5B@kAt32Kb0+%?i%ERuDIm`0fWH?lw{$J1*}SK> zx1q}3Ac7Ox4$RGx_=X@#bs^+for!E>PXhk6VrmD9dHN%eZteu9)($dSbvx)I2YvbF zm*|PKFN$j1p3nA_#CsNn zqd>~kAPA<0$u>g}Fpjnvf`D<1%@72PV{L{YU`(+Yf?S}>{LW`VaH0n>S;u^j6ZN*f zATTi1W(WdCgUt{GjA=GQ5HP0O3_-w{VKW5bwd-`mYmm&no;^il6sgW@*BywxiP0;| z)%Tge_!D9m6BvR*+{wf>inxmjj7ED^v+g6&iuiSD0;V~(84{Zy*k(vG0SEMg7)+M)omJ45zp^_ncscumOu*=24B#tm|*=>m^JYNs729sBRk!a znGe8Kj;%p9=RxM6AHdPgIk@&>3W}dAcyjJN1H!o3!sxBGm95Ew9q>#RKZNnPA~Ews zAZ1%9pC^g}o+uWeg6PBS&-VWn{vf&BIQ@wI+T!JK<9P0Jb#^lcBM6+VI`Ui3KIe1N z;xGCLq)62}AvYfd&UuT`V3?07VjB}bR>W;g{6rBun0Qvyt4-+H4P?^h#s8CKd zJ+v2MKBBR?oL)+S6U&p#CxMiyPY@*BY?~nn7)T0BLl7`dwi$weG1q1Y0>(U>AqW@< zf@MPxFix=Io@5RNhs$}2IS+X`PcsLJ;p#lY9CWnHd6qfoVVCn$ z=AdW6(fiy{$cXEJQrz${dTU}w96Re7acn%UNWzH20Iv%b@`ytgxqdyzejyOzSHCj> z57f9y4(1mdk1LYkSH3e7Ak?m3KV!cT*jNr9zJ#8KXp~Vn@k)#@-9+{oy)cq=_TuFt z&Vk-q-o{+Yo*@~q&+R|7>_?o1geDB)CKPdK(GhUing--PZ32AE=5^O+t-I9#q+#|d0yDm0{-+`^ zWf|r#6@i)7Fn^^8OkIZgk|HoW8RoAof~OtB>}2q=5@P{1%-<+6#)-j)e}?&r;-C@6 zs5H4duglcAO@_IN!KM36g;^^BG5n5J&`<5SIV9KAb<00&=*GHfzH-gPv z!pP$Lf#1SPu$v`?>zBsLvswO{$XQZoVlJqw^>sYMwwA@}=CJPXM3*In>zBvMb6Ng| z$XQZomRPo4XIm|?x_PYod(mY{;rer8%J+vEGb;y9xETj^0!3Jl0viGvNf1(nX$S>toujN zWl7=s6|wSSmcK1>mK2(UEn8FB*2-Aj64w2b=(416eMhXkl;!V;oF#?k5X;sa*y>>C zIyM6o78Mqn2cU%>zT1)fcbp_84eA`6j?uupWu~x%-Aj-xbtLiDu687QVyum@_NZs6 z^uaETcL=W1AviT1f^*&>IMEz}Ger@o3S%XOE_cVu>+IF10Ons%Ux(qR z6&2l3+qfDx;KHl*6`xZade`!18szJvu^}(xkpCCt!ETnA|81$>!m1ej-ceZYsZ-EDR;|r|>iMy%cqhS_7>EU{I^fwi%!)vhW_Y*p#4b+M{7 zt}07xRq3tuv8q8=l_j>S^wzgxRcl>Ume{J&1xP1vZyn;QvcyuwHZt@c@`kWp{nPn* zp(@*>fx>`OKer?f~#Ux zk8o94VySX|zAyP%j$l?{g2bARbN5rQIms~0p;%->!vHeh$TUW#8S3;e4HK@Ghg~J! zg31}hkFa_E)oBr~SjPj@i(Q7b#+1cxMWgVR#A4{IDh(01t}CrF+T)zWL_Y} zXZ{UXVdx`3KKD!wq>fC3LV;12N9o0urK4Zo6uq$fj)zRd8b~86XaISurj4kFeW&;ykOp#(Qedn>+}AH&7aCjcW4SDa5BPL1Mx=5X@kOCb(f{*hS}{Tw>k6Q9#@f5yF% znbyydL}4#i=r*zVie@=)HhM#LhggRa?4jotNqj{Hdk!zRh5i8=XB?*`2CestZ?=}u zm$3JBeV3^I%YE;&7V$lV=P_Tq0g?p&@&@!-i`xKuEI3C{)fflKhLYTg_cNH-Kn7|>u!O*WW}-mh#< z?y;rc4px|h;7$kf?5g*93^waNe>*VG;|e_C%Lt_QE=V%qYvYau`gb`=t**-l87uu; z?sFKz?=uqpK3I5?nEQqt?Q^)n(S={#(In>L9CZe7s^|PTC~v`}hMG`gK}yUR45W;3 z#^Bi)bMIjc&ce8G$DmHr!N*FA^O?|MSjaGNOoK%UuUur;jrI;8!^ETAjM_BoL8QU& zGZ=|OUhNsmX~;x-4K?Tm)PZeAAUau%^J{sWdyOZXf$&&1NtznHm{`0I>e!ZNWTFxA zqd}r*#}1EW^LhO*;Pu~+#_~ir(!iXN`o?g-(Z%NY#SH_GTCaz#TEDauQt#{*NQD=w zt%Y>gxv3W^J|ba2;E%58$<(e|yGUuc+8?*M$xNNESJ9sGr!ef!N^nIX)-QzCul=0e)}d?}%R&$FE++4~ft5 z5TW?cTu(b0p#t zxzD8+i$WwxGR3dD{d=3FLf2c_EjZbPHA1opcLjC!8o|la&l+(eM#cBgg9q@DL5EDv9Ejd&LAM!vgi#PO)YeOsu*d9es<#2Sd=hL)Y$SR=55 ztP5cYuJgRl9=F^CS+CK3BtWv1!Te_oSsn;_`#6hB+L0q_^s)TVTS|Psh3a z#1glk5@sCxK6C=|?|4Leea!skr#09YW10*^8&#j(3VY}?zPNqH>z{D&jI6Kq4+mt< zoYiMv;^?ct^bTO=?!PbDK!1G+1O4}9KP&L~*lyzn52V}d6*x(T7`EuWFl5oW_+$d-zjCD2 z3|x^F&fMt>t%Iq|H1~GxjgTSlRiv4CFq=_pShp`}{Dv(r!k)8TKAW-6I>$}2=PrY= zc=M~YfhY!voX6b8!@nI}u<N5I+D*N(u-u|hiV4=Yab_lz$hx>$w-(UVlnws~VV7nYN~*Me4G1yS6nH+qkV zZ8h8SwEB*NBp6yfh*z2-0JqgeNOktZZ{kG&r`6;i3ked+q#4 zmv=m{+XzHwtF~_Ewi;c0G4U3GdX9jzPT}BP0mZ?pBOJUP(ATPSD&`7%l=c<1f_~=w ziLsI6>O7GX=aMbeScUM6A+aOAvN>x4{SrN7^!8tvgAmv8eNOlGl9VJ_5?+D&%C)*K zALOjFf6LO%eZ&?gQC~H-NzBDL>ddFuBRKhPFHVxqiARVrXNWV9Ydi3<*Cu{Pc|OMR zXyms2j#oNG@nS_rX5AE@=}lXlz{vO4-sNF~W4BRhqF0wAmmr=N;w6g=d|%72%2S&2 z{0|#&XYK3rl{efsa2w(>#BMY08^-bwAIAWze8Ps_UK8Etf4cmx5w@Uq-M$d+31r#z zp*2N#y^9B2nu%9FoF$jiWO_)G=^=jQwdZgfTc zU<-$P;3PxEITOC)QMZ5Jgy+b&KyU6ES}K zsT|`sw(^5NzsK1o>PGJcqNk|Xf8P^(ql>A~y=X8p>_({eonW%FO_E~0c-hJmarbfj z(Xss`HC@TOkgEWCf0Vc%Njwgg+&dCs#!rf6r`t~{EFb+Qj=h~NiJ!mu(cfO=*9WZr zh#!NPs0q2?_RUGK(_3i!?hY{Y&EtJ12KojgtuBP*tm~unll_)PwCX~~^j-SdeoG(A zrKj{=`uToK*K_Hq3>pC9v&y|UOGAR-`2peZ!U`tna=d?^ol1nv3`9>;Id-Qf$IQM0 zijme&Krzz#4JbWM#2!l6 zrG4c}-ObOzJjPpyoI` z%n@jnXWC5I3ApnnRug(R1pxD;ec!;(K}PuSyQDmCp04K2yZ(PaZ(@S*&YRreuQ_iH zY|8w~^;yYcJ^bvyFkTHF@E|pK9_^>$$&$Fwk;BgUd!J4mIR~pHiN|hp{k;Pji(kDN z$;KkLAm*$Xqe;f%3=ApzZkz{S;-IphW$>6v$M_k7k2|KUb7E}Fo&B6IguASSb7J0; zq?veQ+qr2?GgW;9I4Ax#_CMH_2BK%EaeMbb#x3s9`q}T`POIPj4odg4-$Chq_d6)v z&wdA```z!Lbdv3f!PB}or#T9q!Tbbo11<;fync5zNPGT8txlgOd&F~jIbl6-MsNdBJZhA4{d@Z9FYoDc(pF=m>}@sM`X^fLo-T7v`prW* zC!JTXI4Ao$UACWLxbI&%_co)WU!q|58F0;glYFR;e@4U@alFsG3|AljbchkfEAbhw z4!`4`M%dXAZe#*cydWjelx$SWxa*po)M2Hm!6JM9$pO{Lb?35ZE z%|rycn`7e0F)E-*$T1ALfUn~ZXnQ_=F{lBX93x+|zTucw#NRn9bofARiHq2U%;V6m zjz7arM_wkr&V{dBWcWJDfI8)!LSM=5OxXS3XDEvAiSW-3O0J!VD{gyncG__`8r+NB zn6+nh@4Rszfv<~XSfcGQ6N){T7~4XPXse0uie%K{dr0~8KJ5N~q<>EQ=R5j%G(L)N zzht28Y4Tf+DyFA#Op#tmVmgsyDxyAPdIHB3ng0K7O!2LkgqU`6Op$I$Vu}~}Gb~Y` zF-5}HnRpRcVp>QS{y#X6d_yzlH#YV1yUNz@pvH`yE4iOB1d{agG2G80>a(9`aX%lc z`gssN=JfNu|NL;b=Jme9Sp3x%o^No0_}M?-H0*-@H!fLII79fi3eey7di4h92f8^) ze&9vo3`^8!e$3|ln9BL#>-eZ|OL#?cAeQ8Z6FSCZ;rrr6Mdma%%fCbOe`BB0R~mlB z{m(Zxn!hna(dh`IwNLTO?-<+r6hyff-It`_@$O`XCF--^=WxH{-97I2C4F1M>yrbq zBtLSY`n|-&`+IEmvA)gX&87jF<)0ylHH$zLj47ep^?&ug>Kn_aZ)jijjpdWC;~SeF z`!e(urhaRp{lVzBNVJR>ClT>)lFYYwZ^148t@OHLa{=q~Jum+%FzbKZ zk1Qpp&vM0AoQac>V3E|f%{&!mVT^xcC4|S5yewiKOQnmxw$DX<*WEFWWv9ab4xW7Y zCymjPn|@#iOBJ3jm)J<`uHy}yJ#;lzmH@(=AKaFfQ% zVY2ycCZ3p}TOB6bv6=E4JTZO!(AREDdq1)5CkHz=CT;EalX0Ck@c3}@l?Pi)8-C%o z;ThYh4!)JJhs$qmZjzzIzk$TR60U-eb3qmO5FNLJKYK7yZ~N%teXh!_{d9 zduKPpVX^~G|M1Tu#k38(W$Vu~NepcMkcK5>Rq|Y`VdoQ?dn9vlq^W{%wiSe=dD+1~ z{*)NT1#BU~hi2vuXeLM+B!}tEY=_B?IN{_UmU6-=bK8|}uJCWKbhNTBcvg`iL&L-= zI1b^}ENKm=gEMS(1`c-6G417!Z8KA8^FSzZ%nV zjcv3r)}WOnY!KCpl2uUJ^i#J@u}0*#y!tZKf15aRu_gO#6aU&w#}?c1Bz0O{lHk10 z3ZaUI7_b_3B%&epyCna1m}!ycKq?Ve1>-b5#|RN zJTGycN^tjlDItLAj2=H`{8+s3!!Osh0#@J^qU!bd z5ma0!)B>N^+0oLzEXo>tpzxzy@J^XW=dUICXU(gRJEak?q0o0g4`%(Tt^D&h@`s~N z?bPCJ>FGHjKh?(bkMDEscyWTJ;)7Q|2%Bm86R!L|5;kjOq7crS#P%Xwuf+$49a1hE z*C0OC_~1qZe?P&O%lOZrcM4t|V$iNahL7eyGbEQXhBCjPplXmoR~NorYS2vu45tYU z3mhu^&-0o8oqR6aRQL?w)z!WdgT}&+LHh-cEMWY{h0Nbk#c+GRuOx#el`K!oq2l0q zfgJqSAH%l?pBKm{f8o`oMdT|!Ftms&{Rf7Y(UCr%KZEj$XjlfVEk15oKJ6~Jx^yV5 z&OfLls(9jgFarYp$PyuNb-B7ZrB1-oT zA-Y+hft+C9UXWBLZys7a|=8=}_8GcyeVC zy@c9}XkGP1sPS!)9tWvGtdV$vA?CriOEai9cWqS$Z7ixmjlUQC zR>3b7d=l^+>Md=`&7jAGvr42l2|i2kdj)R>UPi+ZbAyf<#BDrsFvDljgBeseWI2AI zvaRC0zzF)?;OhdTsXXtrGJ_t}S$|cYucV58jo2FWn*irV7#zHBTK0Bn6@450D!N;w z72p_jlIXuE{1^3272{|ctX0tyI@_#;G>7Vae=9WT<5IT#I5cbNFvO&mawRg~^ZD>E z#u@OZiaH?8p&t+9TuMuMAecjwb2-jo(LY|`J&1M=W&1dWwbF{?0duHq2y^yH*=*oB zv>I{Fp$7mDr(1@w&bNT`m^nR-q09&P(#-{_M3WpURj5?{7h)kR7s}6L64ZM_W%9om z0O};9+$2aUgt}T}Mf@#r$Qn??B>eK`IH69?|IW}xj9t7c2ic1lZA?uO>UfOXMykQA zpuyJM5~F4kMtXx#PXvsb(?QJ;>ci@%hEBq_eisPUTEo;>iU{>VF;j<8hfvKTJBlt8 z>dYZ5tEa1kI;@PT$->6L0&X8YO$)lTUjLPAl{!?UA%U-COL}$>i zg!<21i+Wk8eTw>>P?ss{Euns_sJ{qxv!ebg)P0KjJNYW}=rf7g8T1AD5T*Y@4^5)8 zNY|K}jJa_VX1)}mS~2xa!tbf33bj^bVM-GUPuCz@f^Xz=IetfC5;ak}=GM?m86K*K zLLTaBnkePAij_@tq)@L2bqyUQ6c!TLyp|>lg#`)JW;)tquKWm4!f1ghAl-orMJeqgXX+l{Myo*j3%8KCK zbcRrt*Y{vOtfWx-QB+BV>Bj<2$Y=n(E&Vt^i=URk{2vP6;=CrBKS*ayi}RVEb#4>R z+zc-JMEaM2hl%CYqW@Qs{z{}>87zG&<7lV$M$x%cbasl4WqGI6K22&rNBF~}>=jbB zF?}m6tWMtvcy{_Ot(H~{oiM1D-Y=Ypul-+>eH36Qy8-at>=OVRvgZM=$vzYC% zoa}P}gPBpljLbG&qm5Y%pAozvd$l7yS@^9v>%qAF+=%()40d)BRhR_%YzaO?eL7VG?7^esD+#Gk7&w}F3{)ObVAoxuN`&805P zVd%@b&#`9J^5ZP_>X+FM0ItYl{qme20b2f8wO=K*SY=m;{SUI97<4#&WIQvdh)T4d z0nXK5!mg$=_%`6Q;GY3+EB*{{{m@$hhx#oJ6)``xh|6Xa6=9al1^gfFXu$2hHo%)x zt_2*M`Y7P-srvy_jr8IoYBr7qyvH~X@KfW5fExV`aHm#XQbe;im#f|p6XLj|w)z>we}k&c4R z?Y?nn&r+Oe2F@K?O!XB8a`fg4IrYyR|AM{_3 zw~0?v)E#Mv0xee5&f>ZFb&}XQ3ZjqscE!8Q6JUJEl8uYEebWyxg|ceMptlso zHDuCc-ms%St|60tDU?-17X4OHzseh%nniz5)ZcRE7G%+%ElO(0B7co#h1-CGWJPfe zdGu37aSeHNc91o#8UnObQ9X!RfZ7%H5NZg}YDMiUX)O)VdPNoGt_F39MWOa}fdD-y zl-0f>IuUm|b_9#*B}H-V#q{VQR_)`_VItP9B#?jmtk}fKVnvqsGyCC znhjqnXtSd3^3N@(pj#AmVNGjk1?{jX)c0|21^rwotL-&(Vx3h3*B7M66vg!g>4K4N zeYJFW5YPOOK!z71dbvXHc&wYGT!gr4wnNqH2f!1JnUUl@3iSn?xT7 zb&14m5`8Mv+v!1nvp$J*Z1{!)^-OxOdUDxx`n{qiS5F7^j!^9N z?6Mg&VFG)`)Tw1NsZ%KSdQn*;-Cg|fUpo<3Ka+z-c7Dt^X* z=fvOKX_*(-+ii0+pkveZ|+8ok2y4`mf?! zKn)Yh^7>3VMkuRS&ZHSaS-Es3%~rA=jE;qLs*-KS=vYXLm5fKgS+rcJOZ+?n&Z3n{ zwy&gFKbzJl*v7tv)(HXQqaMRcuD*2q~*H!F(!Xff>&iu-6=S(vhp zvis=HvL;$+QRt)l%bMvvi;}EsrauYwcKUe#7HX#VgzE9v`}073tYq9{5&BY5oBTga zjZhlCB*pW@t^PHj@`QRj{cm|&XepH_SqetgQmRz4-vpzn%V@Zgy%XF3YMhc?U%iEv z(~(NHy*dw6gObe%ZlM-BLCIzZ^FYlP>JtASs~;{qhZZW?`_+$uS}qhv;)$|zsgMsO zWuEwXSvz%Fl(fB_9u&&z+je?PD64PV>1ie7%rfZ(CF9I8>18D=E?K9qpf{9kSji=z z{-k8fs&}NWr1zApqx!d?K31~S{Ag+i$v;Vt2o~mV0EJsN{JouCQ*&o(lmbHa_z$ny z52{Sbcyx49m6Gx3=%hNKo=N9SUPa@Tj5B!^O;+VLq1ot%W!V}!PsvUl@*7ayLUH7OS9Spno+^>YJn^Tp zb+pi;kc0nSwx0OMHqa~559?`)P*2e*WgkL@!y^1WMR}mUMXieZYtd(A-Q;U@%k@x} zP*2glgFY+kq3tKQvJ2^Mq2AX1yGAd+kls~PZ_ZCLHqfajx|$c$VxivFUaQF}znETE z)blliKuw&(nr~~LRacf@LXXX}sK;uCmw$&U=3CSkf#KzsQPwFIb$tHt@{RPdP*(e{ zq?84g?6sOPBb7Mdv3+uHH@7nX0Knuw+OS@q@R+X#ade_Y?@ z@*T8TQLoi(E#FD6E9$YD3qeh3u{6I3Tv&bwjXZ}btA<@PQ7De}UFEx|;#^Df`I-mI z@1lxUi+ZhQZ~5JHi=rN@c^=e%w7FL9rN@NgNW4^jFCIzQR^9+LvD2bHtNu&*eYEjB zi+Zf)!}9y-eMNl{_^|u|+Oo!y9iRVU`44I11x#6fK1|mMwW;LsA^#|Un6}2q?i6YR zRcYGbhv^53TBxTD{t-Rx(R_q@mFxy>(BMbtx-PedN9ooW>JFhc&^7w-!H?1t9@%5` zd<^wc4D~yqEI%Kk12M7>h1x(pbm-v6X!1I)eFNp{rw{%yZC2FdzDoxGgs#SbWZA0ld75sy$fAbPUxz$HZ(VFrPiljQK1=UjVo`0r#-Tr@Etgu0_7p!U({it?d- z`>FRvOEVL`{DFS2sQci{oAlp`Ivu{eMd>$Lny12-KT?TMR{P$j8lkNAy-lNHsKaBZ zV`He9G1SRI**4FLku8m(%oytY7^)|Rx=bkB=67Rcw+Xd@e&+l8(6{LhMLnPL_o08H z`#hTO(2ruMy)o3!VyIsUW!3i%{XRzaP7L)y4E1RY<-3_G|8mz!aQ! zqW?Hx3SC{3ymsdMs2cUA(1oyu^SOMsc_jF0#1{O-^`_GXz}VJ(G1%r<{C@`8@w^Rj z)^L*PLXLK#<$>$lnqE7Vh?pKzir{zxBC$NCtj+e)o_(oUJmPB(Pp!qrj5|o-Qy9 zXuucN>;W7Ef0(lsu$-O~{1bti#{6`^JX#4@Nj<`OPT(hihu|mIS(+tJMYH6IYL+}v z&5|doE5%MB?X6ydHr+O~75|zbIr{(puuDw`+-?-mWEndb?Jh-d-f7E|O9gNvX|J%Vy%|xtocf=WZr`o_mY% zZvlQRaDJY93-R;ZTkvwxmw@~{_ZF1e3dqlMZ;|J@JH-ADv46MVcMJZY;13GEL+ZU- z;DZ7;Nt{2>({n%9KG2&3y1tkG?4PE8qF*&+rhdPiir+6f2Z+y!4iKLeA0R#zK0ti> z^?~p|5dH_k|3L9M2R;=_;j{X zIF-VwR2;Tesj)Rkaq?8D@yYG$V&N^od-Zn(ru%LWKCRb_g?f!oRO>Z9I|T=)q#r7s z`>IFy(tUrbIo;PNIoT+d8#O+2ZPfU5wNaZ~ZTddY?#;X3SLr)?$RobtzMJx%0zSO< z1;E#l+TGzmr`K=UOgS0(^Imv4{|R^ zxu3=lZHDJ}4Y@d_P+MJdJv2Wpz9nU_c3jG_^f?_Uya)W8;55C*_ff#0l|Fy)C(yZT z$nR2Wp#MqANbR)X^(pMnpwyAt&kON0Rk zyiwYFqqO%%jr-z8jn5`;)c9ocMvc!RH~Bc)yR{j?Er5J_w_D@0zm>ihs(+F)0T$X) zcWZp6xLf0MzrA8}ug0f$do@1a+pF=(;a-hT8uw~^Qn**+Gr{|{;layN_lt-7HIC1I zjnCQkYkZ=%U*og0{TiQ=?brA`Y`?~*Tl+OWtD2y_TsTdy^gUVglhgxJ;{lCN$qt|{ zhJ1o`K;tvK0~(*!9nkn(?tsQ8a0fI#YdawQdqCQLK;xV|Ag!JZYxnBY1P1hfk{m{F=6ehp^C= z`mWg7txI<4d>Z|#e%sK7%$2?ygNNsQF4E_u)N^`9$(^YwI%mcG+Qoxj%Bl2yXV4ot z&*_88?nI{DESy_~!*-t2msS6FPL}9Dr*lRX>O5)+b&kMb_%J{Bb6OR=C#6y!SF$d* zM!&f9$=s3XmyZGYDgOk$Cm7C~49?Af%)uB1=S1P0D4hAiSqRR$z(V0P3#S#FQTeTC z*Yzo#io;KyJN2gEgZXPA{Wy26=wBq#wK_ljy+}#?qhMI-5mjBjOV-+$=g9 zb$$xF5$!s+uu&ggyQ1(G{dxa}LM>%M;EKZZltW6k6zfe#CZr+hE?dEwZU#X;You_-h2GXa0^FC5gUr<9fts-$yif5m9LCGgi_qp{!k z46vNaz^SHcz&Z*8j;D(NkD{vpv2FpLApCiN^(kgUiFCh6-xTSaB7IY&e-vEPrHwjU_UYU@pU!1dfWKCeDx6Bu zsTQ4T;RFTN3%^154Z@i&aIwzO3yZW#q)oza63Y?6yG5r*bT)|22H|fIor?wEB05_| zXS@C=EevkgpQO#fJ;L8B{3nIKU+}k3>a_~ZCoS?xi+s{w!l@QcwQ%Z%(;%D%;e>_L zB%CJUbo;m!J;L80{0+k2BK)nw-!A;^!rvqOy~2Oe$2qf4IQxb3rf}YZCOk|L4^vpD zQt)cQ>jiHRyh-2&fm;>iQriXJf$n*&VowTtxK}uPrR!Rv`O$5k+z7mM>stq-5~g-#?AD0 zaI4^3g}+_!y$Z5#PYV8=*x4`me$jkW@B_j>AojJi4E@g)zBF!EdK!D1p2l8P3a2uS ztyK#?9GVXWhl|eew7Z~FFZ_DZX%M_I?PmIWaB&*PDlD9^NSg$25oxzbdxX;?(hY)d z5&l-ew+er|;CqC>SMa^Ue^T(L(scdT70-#c`-QV#q;Cp-K=_(p`pYlC2*saKHsiv^ay9Gz`X+Z3)FJhTBX1#Ic&dP@Wq0Mfe)?h7Q9FB zErM?qe2?IJ1>Yz5e!;a|E>)4s)+z;`B6z*v({kCX#li^-r(5tI!M6(BD{#L+Esw2D z$rIlMp9c6uaItX0!fDQvmI|jwI9mkYD)=73_X_@$Xzmlve&J9+q8i{@QgD9p>xv5D zR0?N`;Prw}6X{~%goV>Bc#q&0iFAu_whCvjzjj@C{Kdiv3#VJ~9>KQ=zE$uY zqPa&ndxf)4@cn|nB~ltBH4c&(3SKFA4IpADoO@8yM@yuoQp(%i}1Gy zf2;7{5`IMy*HTj?HU(cSuvs|Wf^QMHLpXZ`-zSiYxok=?&lnYgPZ79SV7I`Fig}N* zMerTP8Tt#sJ%T?a{C$GIC44FoYbCNL5xk~^^`{6vP56riZx(*H;1>yhi{Lwizen(= zgukzZqp?poZ;6yjnM0*gS1H$3Q!2Fxe{mV_in|3;MLuV*z{LXh2%J*QI*SE%3)~`b zkHCEb35kxKmB1+i7YpnbxJBR|f%^nb35rdD-2%4=+#_(GK&lm+0;dREEU;VP7J+*N z?z8X^`@c`%33LrTfq!Z3O?)qFuvV`v)Vj2Lv^TUV`q}z&{XD%#zefL5ztA@|b!O_- zsXZAtXS|p(D060JBy)A`lQ=KGm?RzX%x*0WiE$ohL$diL<_BeUmbFU!6t z``+x`*+0uZkX@7$%vq4LJ10N4B6nPFL+--dWw|MNI-XYeC>75K{eYQxHkgMegGHdq zaJF4d**J&Jp*oz~kA>uLoV*{6Gy4WAz+0b%#4jBE)c@sB!gJJ=VT9+X>44AXLP&CmM&088Huvhmd*>709rPe zh|c4F*15XIt^Mj6E?Zr~{0pm@Uy{#dkF4RcOZ-CsxB068H~0?$%&Z*=xUhN*;041b z0Zyr&3OKgv1i+`O<^#^EIty^b(4~Ms^|Su&G!yWFVusJ=FdSPI1vHD-0$Mu51I+gY zdjO|YUo6rq9qBuHBF(j=o55cwI<}qL9nB?D16m$h{%jLJEeji@mNSR^2|8x+yZDEMIrDV)2Rf{fOLGy0n2CzU^%{-pi>3Dai-%_4OoTm4(PxR z0j$B(A{}%c;0PK8SVxBfjzo6rpvMD_!?!$jU`GH>z!N1M^ihC^BlC4|j|H4a^?;Kw z4s^U}J{_=ujsu)YjcCq>U0v#20jZ=r#W;o@Y#Sm&BbWa zfXxFwA5YEj4KqL;Zy28n{8ap>c-e zjaC8bcsFw;@bdt5Iv;YK)g|hF`$k& zw7&)X+kiU0wci8$Qb3(9gRVxG1M2v0U1MYXmk^xPTxZbyd3~tjkW;lc>Z@i;5KOCTY7*x?Vy{1 z?*!EG3yR+Zeg~kAZ({PddUpZpbSKJbbQhpbccYw!-yGNu{63V^@qOPr!1)27P7k1j zMh^n&^h1=;@XfZnfIo~98vO_m@1dZaMvnmM^r(DW_%T48evHx@{RB{_$59$j=>c`x zi_#iajfa6hiP9S0NZk$mX_Uq{8Ub~B7NzkH3!qNVqx5LxOegy0BD7@(Ji8O6U!nJ@ zP#dm|)aGmFYVF!(+B4cOw3oI2(LT~X(N^e}>pS%a^#b3NlsPHUl&ey-IzphVs>{FXwzz0=APc@y#8K)k*4q~4*J35VfRflnnqRrpk6R;ibFkN8b~Bc={*x;Pk(4I_tnEd*~l!s3VJ{98MEw)`i=L`Y z_oZp)_^P#{lpwBkfUE|gIfL|-In~#aHOX?H>I0pNOWP|MD3!zZFYgwKn))mlbgM86;p zzTuM|K)FCf|0}LX=c5jM9x2!fT|8&Yy$he6D6|6M44Uq?8H;B zUHG6ICLc3t(V{Vn#*U%MQ&+XLHqSDfBdy0Qv3aMgaBb>TGiSbUeX#_JeC@#x36l8blB9%t0En16fyn$6&;aiw8dF@}7KB?@Mdq(sfv}IG6C!Jbo)d2A06DEi!W%}r zQNA)p}bq!82QD%pzOG({7I~Woj&|aR6FcJ0l&DW;+PNx9YO( zBvi#FmM&UU-)^?AX){+v=dW228M`XBl^e6@@I>=q+2(;-=54hE^Q;kXe!^l^Zp@-1 z63v5Un+Ix{x78BND~&OWCMFsJ%QghmGGwbI7!nOjYs{iaiN?UPjRCcc*=h;KSR=mC zhc5;f`MRn#atw7un&vc+y@1SHZmwuBF z7Hc)Mwm`*JaH;upVz_Myz6>^RO%%g$v@>(ch#5UC+!?NKZ#O$-vWt$M*R(v+7RHYf zVftq0++wY*5gF3a(Z@yFBONVGw4w$v*njX&B7!bUKW9jopmW`jan;}&~CYH z$8DIc5W{g>s>D`9RcWVfw$NUWLCfSMo@4oFp50#G+)RzpxsjEtS}-G6jff)lOIwz$ zV#egy7$4KJXwi(8NGk+RY(2cjW)I;s*u!(%>1BG`=Hc6o^0M5fc(`-0hdR&f@K!zt zJrnV$oN9KQi**kj7HN+W*dCn}Zu9ETi?laKI^vj4VB`469@+U|E8@mydRw@q)kDu) z)#jm2<|T7!OOxcAhd&P)xGL&ptXgsoGS0){+MHhT@Egok?OweG6KkC7&s4K{jfZ3_ z(;}@ctFbTeupPrP%8ogA(W0s0rgQP5iV3}*AVTLS@Z20o5ZQrGR?Oo?GO?2w2}YeB zN>43zts#Bwh65EL+qS+l7Pf7TmnvzJZo=zsPCxRq0+Y2YiNp#dWOKA8!HQW*emM4i# zjvbAO#cV$lOIqVKNeK+w1g?zU1a8bAj+gQxVW+&TKn`(Sq?7k=Q`gAihYfV3V`;c4 zLg2fE6z5sgDk~WC8r!3tVa%bjR>Y1F(Trok#qg4FG%_RH6mFI(W`?878*l?n^Or~3 ztu1wgX0eDXVtRlFzgAYeW~g2B-I?s zlVA?d>P(lkJIUtEjkKAoBXh&;sMB*_MDtC#KcZ>42eL5tE{huZmfno=?E#_9fNHOC zVoUqV(as$M&BZj`(iV{kb!ND|8H$QEE7G~#Y>wq|M=1`vM+(j8Fxy;~RVbFng*==# zKCWEw$sIT1iNN+3gX&G?=Zc z+S=J$nj2Y$d$LG}5T`E3{Yn2h(Z6(bWBbyMaI~{yRZ}PSF)=$!&d90ANU|a)C^yH> zRGQr}y%l1sJ0oP>YD>hpMOHpYJUnD$drN0axK#nky=_UPxjE8Y--#bAUa|_Dlg!Rp;T0>qEPGStDsgyQS|c6K{>>FR*eSf_bSSbs z;cRqy_9=nON$}Sd)kmX|wk54==C^cuZCG1;XOz17wyBvdXkfd`x9#BOGqM0H0nQW> zh3GZ2qfPci;noDLSuM+~!-&L!_KsDGx?*%tcoy7`bhtdZQ=e|#N^s&vU6B=Eu`xH& z8a`hzkDSff_a$yAyJa{SX-2xaf@w=wIdZ;-WrsdNV24c|3%W*TVE$`a){b)pmuJ_= z{)XE<0yV;f-`TRHg->PNVpG>3(KyrPCO|NZL5o<;hZq=yJnzwr*6^}}jIV~}JUPzC z9U5;A<3{*s)pabHk9nDYlpD!!cM?-`&DPc>D14A=xEuKRDcnltibcoCabL%L)QvI9 zr%ud05w}@hmK;pU%H|CFsV(izsMTV6mW&v_EE_Q#&(aaYx0a7smc4|;aGm8U67FbP zo>2Wf58GO_JPc3eUOlyRc@(*~<+#aXi(zOsUZ&J(aplPS4{aoi4+w*F)Q_by;n^yh%FC-dLt)3u_3swmM0` zrwTlRc{k$JJ-QhhT&dkvQraOzg7X5E;Gzi|vbYL?&9${O;(7|~V$S2EPHSPqe#O4E zl`NiqerKeeXFf{sBTjBDP3*pVSc~Xv2VrMvraPKOD{2v(C_mbDZ%;x_txmkB+0LW^PJ7OV|kVV-l@ z&VV9ix$mC|9a0^92RbF9o!yi9+sWGUNyHJ9bUFIx?(u?`0_ICI|sK~ z>yFv+B6id7s@bmaLhEwfeWc5Crj%G!9&A=7xvJJ3uv0hR-#SE0(zv3Y_mb32B94$FgaVWVbb11gp9H`jbMr1qoGuRreZo&PpdJw{UT=n>bWWKZsnaONI zC2~{59eTFN85lOB&E6W>45u)LrAlX8WDV4)P0m}{iUEXUAZJj_mMnJ^%ve%Jv|Sj( z)kbA@$9{7KpPaQft(g^W$4<0^oJq=>X6*?PlDH$>gKPyHKY5;Y32R3^HL@J@li9(y zu)tnH3#vT@s|Rt6(2WN!Yw|wa(?eJDu3tT^-Msq%Rd`9k;@1&lpxb zUCPGnRa~`>J3C5TVYsC|nz#fbIm0D)HmdYsPwrAqNZY!tPCwxK_(4iZg3OM>}imz{?yggX|f|NpojLmw1hK z*YCbGcvIxn>ix`h}T>C(bpVU~Rk(}E+Yu9d>ww8CRUK@`eNU;-vzA$MJ=A5{4cb69|E`P{6+w?zqT}Jjpyyoter`fw%4!!uEK}B=!Vh4t5Z%;@%Z7#Y|3Zp3@n3Zw{mi`}~9I+t<*k zEuG7;*H{Dh-M1|~OJ%Z|P!<6(#T{ht+QhLK22K|m+wp8vUT+b7cw%Ud?0)^y@@z+MYuWf6L zRT|UrmUI|8t&U`zlFR`gqYCdsn|PzzwLKp43ViTmmW%qU*@Wd4DBG^;KMD5QfX92# z0G%lOv-w>A!RAI_`QqP@m(%x=UyGUI?U6Yp8onHw!@P(f>S9r>AYHYGgxbt^r#(CPfGU$`*tC*pc}nasMt1V zS2Pc;=ZLLB&)70MMs_Ui4Cc7nI(DRNoy1hMH92-1)A-TgZT8_x$2%8z_EgV!%egQrpC|F`kU@4d44A+;+m{35fxQqKC*zAG)A1#cIry^3bkOtga&{y7 zpat?4(dNmDgT*CHr18-SjhZJGS0Mc?y(PFt5jM*b2XGmZ*Gf^It~jNe5PTj(ok+N& z@#T~b&|G2`uB}qH)#Q3fRV$_ELL;i=Yy<03OxdH99c~-TJJdjE5S-iNj`E17B&G3W z)r5Ea&nL?Dc1M(GP-5F3!sz_BybQTZm%~6Ny@1jVzrX` za%eJp$@@$^D(^=&gqJU#E>}r@E|3h1BExuDrOYGnwTLnJj3+vpv$j>T-;(k;Iudyv z#!ABVSZkP-o18Bv3TGK|csbFj@h$0VtR?z78g;OTTzeG0c;icFeUo*N;fNrNps8;dq^YrnY3$_%~TY>?q?|d?_-3PWk5A;Epo#t-<$+T4c4R;5>YF zuQg`QJu)V@d6uX2v9ctN#TRedF*Ape>rKdUzJ{ug5nuud+Q2nX0U;0-b!!)OkpeXk6fID zpi1kczu%jkz1`y-d92xgg52@uHZV<6CT~${=8W^Kc%4&9eai4l+8lglJ}2^b!aFre=4HIeNcf6+&mFioL zQ{788P=-);7vZ_GHm|z%CWke(MT%EGP5N~o{;b~!?98pq4w|W8P@r}>OgVJ4$4*ZjtYju#$8m9_m=2EVFG_quFG~EFUY7U?eOclKeO2N|^p_+) ztmm;M(?uJ(dsRv==mnTJ7;|(Gu-oW`3{D2qHQ@84Kx18j5yQH<2r7|7&8Frfz8e26??n+9ncj$7S$;6$&U`h~?ngfP!sqAYCFT z_+~ly)*wK^bseng;0>aKwNc;&eWM(_8AIQY^xHzZS{`z!**lOGfH80_6pYz)(;YX+ zca0)p^o~J~quo2Su}$UfH|0!I#LeZRou7ny1u+FM7$VRH)R{wr(LG(kIDtV2*P0pt z%=80vDhvsca1E)1O&x5Ki`H%o3g5Rm=s0^jjA?N1M!0xmi*aaBm^rGg?vf|EDwqvc zV1VGyAe^V9E4PZdjP}3o>REha_Nz&uS{9Xm;Gp|DD3YnDvj6u3R9~PRTLHk;h|tSr zwf~x{=kWD!*kZukDu^;4kTf4A^CIXvThYH03EGl6TZZi|h-&IVxkJ*kbx`Iw4F!hL zZ}#_!Cx95Eng>KkfY(ME7}_9vR9dnhjA&Wle| z)SVZLb>-2Wb>;2JrJHU~cCKx;%7C@TCygJETXXl=o}ra@kDad2!(b2on-V^5Y0TYI z;T%HH2c;4`JslKFqXl>cK@ooi&f(%294r}}%@!~X()%41z&Ge0l0inFOAn%gucrPU7g^jnPtZi!Fh2@GH!pHMPy8uLNf7k zbRNj1!Mp0}6*KqM_HvZ}4kWFCH^7qrop!zySHoZ3WA&(Of0dpW;|wJAS2acb11l=> z{tYw@r1n?$v6An$MG_>uYm|m4{;H9sK18xVM%`cvS^QN2d@lw_O0%}tO4E>vng@(! z|26csy4bb=kwfCBNt(KT|4@p3Mhe;l@^Bg0MApZEOP7b|)__A)hgZ+$gqO5NGcXo2 ztce-^JTk*t+YD=BhQErLfk>L6svA&u&6uI#p||<(0~nk(UKn|^uicXHv{>bDS;&}a zO#mMP&@zB^!>A?o{bQ`Yb>R2qGNv>6>$ZpZ>tRE!C+)i)wKf>9Q%%OA=DHEP1+mwq z`hSj9Ut&-AzBDbo!kdvhFe~oBY#AE+{|@@_;_z`sX?S(OW4XzC7)w1jlM>yOy8aVo zXHhemkHEQOi*0hdj16X!+`VjAy+|g1931cI# z3Efn|kpWeFh{15=^;BsTh!T97?R~7lN?K&(LOz2fn1AC?*d6*QJ^BE|?$0kAiROjd zTpWg1wWla*ada!+YyijboAvNLk!Za=xzPimNL!Hbo`AJ?XWXu%H%(MWZxZ+={rg?T zN+xOqFI|na?4QHvkx=XYi{SFXm4PXD=T6t&N;W31m#Ie*@0{1@Oep!ziynx)kBwxP zf-6!Eur|JfOJIBdt=-|br;R%N_M}`Oy0g3KZ4Flj5@t6yhR#LC-#x!>^s%r}c8?{^ zkzDmEsZzi@RE&z3VBnmgc}H9IX4GC@Rflv zI)XYlh(CCsfRx8dd00t2G7j_M{6O#YmEjU^YU)?^8`AwCm2CNyF#~rcI#9~L_3$rz zwfsThGx<0FXr=bRN5A{URCX-mW-~c6A=JaT5ys6ho(tnz7`MWB*3IUb($k0)g9 zzubvfZ95+TA5PS|^YZal-hMz!w(|D$=VQ9<-Z=94gwDIimzRxMnDPSn4FcFF2NwJA%A5TIc;eNkpKA1vMg2(}J22XwHJ>B2dkOY7wYqL9GZhYe6Q#p~>Kw z$|~Ht*Dsl9g|fmhSQ)KIAy9+@FqH!>){)o3cokzPe9LQGLiwv4of~wluN&}n0k7rZ zE(?@Q>%yORS#?8_4YI-t=si>BJt?zJd`<8*a-C)Qj|6p-sFt8wM9mR(+Z4Vn6dRHW z224~mcO7{D!RoUjw|Ak=3c3L&62_oL{E|#oKw(kN=|@uN9-KR{zK#<9wTN&nB3wgf z5yDu)zb+805#I|F!TG2F?j4+u_^b;a_Z^;$@XSQ`n<3u+C<1LnlpE-Tf{!Kq+c?UT z|Mtu4W)aHR$wD_hXv2R##P5lN4*!99fJ$$_y1>2PLuh$iS^X^%4v=l{ksj>sX|wB1 zCv18T@kutl>5fpE{>O5#t+u7>zuXL~+4gw(4c3xhZaQjgl)x?@`d-}(y&F&4$ zsQz4A%iZH^F8YJKs{J+HNZ*hD;4p9)xC~MZ(hM>TvJ7$z@~Qh(K7W5WG}}bOCYm-e zXA?D>XxYRpSd=7#fnyF#^$H+G3u$Hm@mI^NBjF1Qe2w&V1`WxtvzWMs$ifjMrY4x1 z0=QKO@gc4yxDC8IGtb!w{~E=q(dXQ|KL6svZqe8B=g|Z^vuk3_37!U#S2r_sbj|%r;p9lj@OPXO;1i=s4iZZ zoH>5<=;YD@=2(i1>DHAH8K_}CgFHT;FFFSRuRH~T`cXzUz~TukgTrvxPO}^&BOSrZ zICp;jE0t4=l@pb(oLYSOP{nMa!C8ESL>VAt122J+0AOyx9Npqd zxV^ob1==~F;=5~zjOSU>?BJ4OCJ7+73K7D1OM$QAtp**Y4X>-PQ${&(jrLiE;@jS0 zdM=OBW1Z6dx2)9vKCJZD$!eukyEyf_Xmq+rCFO`e$x8|#n!)UHC%BypQBi-e*a!du z+Zns**u8zC(n~lCfGiV$Ew#PZQD6Hq$B1)o@#OOI^S^W&Tk4+0!JGgLoVtW#o1Vq7 zk_u$AI5&Gcvg3}Lvf_6g`X)ND+~20~rfW4iH91wCtWM1wnL2i~I*n~w@$;ALc*OzS zj!|wq$&sswQQr1hoU`uWak_RFkO8n@E61^!N;|5UFcU{Te*WU==l(-Er{_2f{yu(- z4>@YF!WztnDG$H<@Vo0_N8JVC;~zPiKL+@@v(2;bpM34(Uwibw8?XQ6t?xbZ>+e6o z5}*CdJodf6cxC=+YzX}F{FUcldhx>2{EJICacq9>)KiOxr;Z*zi+yUB4nI0^a^kR+ zoo1cynL$rWZeyH({;B8YWvZFKv~(4-Q=;r9@`=lfPpPx5lT*j0RVegpUkHV!VgBTY z>;Lr4%ZGpP>f5ikmY}@-e3j{n%_ZX(VszNchDo)#ynGrv0oBDT7cj#v$&oE#nI9bl zn@$rZ`Tf7;9I1FjDL+|-bUHjbyctfq7Jfh9aMXvKYs1fnsVY*BtFw66^>J*(;hS5y zEAWgwN_z&|+a49lchmp&Lz!#Yt>t6lhr?VNu}sHdo>3D&2VD7}_2=*aGj|e24~GMH zk76lq!CAlqn^%D6W7gqT24IwWD_!S02r^v-6(9P3rVFPLp_zo<=3B*HGuQyzjK)#c zKA_1uR-&D3(9X?4NlW+!|NZ*dF9+3Y?xY>gn zKB(^^-l4&_^w_P5mtfE3n8yEiSth`H8DE75=INwytH?9Loz}e!yHfLK@K8M-lb5S& zS!ChE)r7ORtfeoh7cGIA#3gskl$JJ4MCxKgl^a^zB z2Pe_Pt^jrsy?YrJui(lu+q~=*)0V^Z2PyoM;K#!PSkCQ%Cf~3F?vIC7KhdI33;ZuD C>WGj4 literal 0 HcmV?d00001 diff --git a/IceCreamShop/ImplementationExtensions/IceCreamShopFileImplement.dll b/IceCreamShop/ImplementationExtensions/IceCreamShopFileImplement.dll new file mode 100644 index 0000000000000000000000000000000000000000..4c74969abfb58882974dceb8bc2c73f4459e2b76 GIT binary patch literal 40960 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

06qbi~F>nUeeT;LivwY?bZu* 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 G8TdaPqy>Qh literal 0 HcmV?d00001 diff --git a/IceCreamShop/ImplementationExtensions/IceCreamShopListImplement.dll b/IceCreamShop/ImplementationExtensions/IceCreamShopListImplement.dll new file mode 100644 index 0000000000000000000000000000000000000000..a4762ba4e5f39c84e029aac9c891106aace8e96f GIT binary patch literal 26624 zcmeHwe|%KcweLFT%$%7_l1Va&AP{kYAS3xsV6K_xU_B#FX&8c{Lpf}#t8*f?B7VmL7QZCIQZ`2Z94l=BGU)+Uj9N$5FiHZd`mEX)@|K)QS5PbevwCP4x z<^N@`nq(F}4Y0d{kwNf1Bh1jB{X_*o%dR0>CZB7>QK!Dq6Wh!RC;`eu!oWB1O7xv68U`*y)-VEXy4z#2ir=fL!d z=GB;o!1T$cwM!5%f-XZ4Fc1Z$AqW^DmmvrkST{;T5HRvwh9IT2Cau!rGZRJZGMO1H zlt=<5ZQv!0qcP(##-YJ@DdPw;<7JFvyo{g5I1Jb{9d_CN6kIXn61vtx-(@F_h+S1c zY}g)Tj^gK6QfPW)3>tBpb#BZPV_DeV6EoHVSZ)~9Kg`eh6_$LaE=2qBjTK+2?Q$Q%+N#? z6Lm~{(z;J*X%Mg0Nt5Duy6nAWsxS5HPS}6+;j(u<#W_5Q*b@#1na*8^_kn zLU0i}j4R?aum%XERKz(~6SJ8(PZRY_U}cILrXb=pF`-tP+Lyo>zSd?TdTcWxHbJn> zgxCbZHWOkK1lvrAO-zLNy%<;iWadJIDC1(YrxMtCOaKUh)5B)Bg*cxHaD-@N0{tQW zPwDt`EH%neG{@}X*x|wv^UVhGUqw<7gcjR}Vh92THU-5H1PtsWiXjLX*h>^c5HPTx zD25>8GjKL?6~@TxeG9Ik;q$aEvlc_Z)F4g~XBBXsCk!j%tk4947I9iNv49CgPSl#2 zxJVN%Oe|wUPa5~R27U5}R|Cg*CFIT`;JmDtGXYydEMWpb2x!>cr4Sb~0U*RuCeS4U zeo{x7b2&H~<*@kXAP!Pac|j1rNiIVWFtAZ64MD)b)}|POfPvjh zF$4hvTbyDD0>)V`Ll7{gxeP(Tz<#Hi2!eQV?Dpas9zI{YGTRUVOc5d-aV`eV^My!8 z9OR)8n74@Y8BHMI5oe<&Fuf5csfpE0v}>Y`iIgTVX%VMW6IdP*=Q1Yzxp+N%v)H%n z**JhCW2X}06bN=IAx?o{rxM~62zDwVPJv*j65@iG!s9 zDhY7eWh<-B6);d5ED2T>lMRW_cR~|!{slO1BhAXPV_Jx4>{Po;kC={1^1+(#T%=deSu+n z*ms~Tu@ZYze6eCVHY3O-d@Qdt#v+0R;i`NJNf1f{Z%kolIRf(*fArBu2m<88luHFVPmf z<@AFQ%gIV$AGISkis8~gNubK6veIB>xo-|^r;pu`Le_?iN`i1*&*20*?-JK{ldyKF zaP&E>tnnt$oe(T0Oawv~qmaclv#mo|_{N!T1gl>f89tQ&YW;(|o&Xu5KFW3RZ-3zcdKFwahdpWiU zw?E6-2^+lCM*QiX>w`*n_Cck41)NX~ho`&GJx+J=Pp7-zKb7u!tyEKEPj;=m3jdJo zSgcvks!A;fa~R3T`sU=tdPZ{L<~B@a1#=%nixFWftW2YS?Xu5Qbs09LtpBn%RL{ya zUo{CjlVyxscEgrY zeR5ux%5)9)IU;$@KJ)&kVhQNWYn*tT*Bm;X*W$6xYoEs|f%IA#nb&39zs_sl7Vw&^Lk9SKg+ohHb&%it`91&*$0)^HE=>T9G=%c_jr|ye>$)I z{(VATk7fUSo^f99LGP!`>)|eQUTc?qrX;Vk{(E`tH!pczC1Z5iz33f>{>S7sk6P!o zj9BNjZ^Wn0>(gbtW1Y{T7tZV4p{Vm(tpH1&K!o|>fSr@q%s^f%3!K;Dh|X)DBUWM- zG)FnFy*_Q{^X!JrH_D&lydKBCkMLRLHT%qYtzwBx_T}|#Scix^(RnQ%>%8`P{0VuD zddtge-xzK}XF2`qydI{4y!LT!=7EQmPuaZo6r3;c2u_*T7^&~Pp1{6kZb2)~YnC}E zZ)|5TI4ZBd2u$+2h55IFlDxhRh@00qgg;GQe+h>hYD>32%efskB(JMbu0yJbVdZ+R zPb$yZCza>(;FK~nJkNdZa-NI7I?w(7=H&T#)VRw%&rJFe{5?ajom?*>a}ggd;Mfta z*S(Q&{hakl)$47R^JVDy>-D+fw#)5>)K{;g9`}O5_U4PSu(m-nryl1~y7f2@abBla zkNZYBvL4_6Eq9#i+(wBk=k`}%gL5T!yehxdO0eX~SlHnq*3@EgtLq z_IdmX`5ou}^||f&U^{oBOX*QX?4+UddzcFH+sFAT4?L`V%I3GH;M@iIsq?$q%WvG_ z(Ig!k<~k_OZRc)Sh~TD|688Y(#d|NVe17pY#1FY_=RTn7rY|qVPcYm7;npou%~^!| zJ;dD2dKDn|exM4!;jAnYX8#jxF45G76)#u#vq2YCFIgg-+?6g;eopo@) z$L2}*W_x49TNsn&e1jVWG4}_7RGkxcI?$*T&2j|Q)|kp@i4C=HLM`zqKm$gL_K)SX zugbR15e#epIQP|QIsb(ldkb|^n4iU=Ymc4lan)?gd4gMnVxh#7YyvGdOAC*E2yBc| z$+3|6nG4o30yWySxbrganUnJP1rN~tQ&Sqos>V|&q9z=;Ca$P~XcdfIfv+rZ&=c_d zaVqF(vgTwKeC4ZqPa1^Ah-Fha_hoQ#tn$jiNvtNzZ7tPlb`F`X1EQYbMJ6k2)> zw&(!aFR za=>tYDhuueSL^fB=Zlrt3e8c@&l)$gZRcrr!%}tJ!4F zv(K}-;08n-MSXtCR-w;NpU0nYeqx<^=cjKB-$rLS{p#~`ml?PS(q>TgB&O8gd z{ELUmeCc`EFDmt}b@3zy(2qiUBY6{z#KEK?l42C@(I<=rhF^zrbV??LgTF@3cq zPY-jMd@faB$f!U{EU9L+{4g3tP(<`fV<4P{8>cU5yKsS_e*sf~cH3vw)YjD1*3D=D zf#1k<11?3eIptdXUJBRGqs*Gp)}QX`?aZ)7qr@G&wQbY_9AcWXcx`J7u4_O)hA>W9 z(9MZ1AM9<$#bfW!%Zq~ivr$K5zyONcj<5m=O$cEocqjB>T>lMUj7NSRRgLRve0hK5 zc6eARSH>|Z_`Dlo920@0U0Pt%fWSGShJqs6g(2E>Yv{?aO&h{@=G*jMh~YN`z9?|I z@OKCv2(g8m!sDRxnJB|ELk#0Z3}3YyAiWHhBXlu+i08cL<==<9jJilkVT{U*lENsh z%1Zz~7IDC7jQp%1N*%&^UO4aP{S0mQpsh_iX9M)en{|V1iw}AFADyE;12<}>C1>rltKmf!T%pgl)jPAzI_yAn1-KY=>6ay zfVX0d{Q0s#S#j8!|Ji=JU^eCtGY0A+M4KsIBgNE=d7BM908TL-&cCy$32y>}Lah@j zLZw1&D*Amv6J~#mP)`aKMHS2KLisE!!TMopTme(3(OjWk7uk4PB$OetIDVDHn!nB8 z9c`ksvHqEQHK-^@s5gb0PTPgLPN+)SCDcHCxpM)ycPIQrR__B zuL55l;9kBZQ1yj<68yyi6QaK-z?}0f?yEj>w!+^8EqY#4UoZSUs24TW9sP4KKrd@*N7S+d^glH9FNKA6klxT#L39kL-)QQV zg1Bwd?=*FH!P%fb5Nb%q7otlh5k7a)ykMOjqR$ESPTm#8_u|(SwIN^K^qXKN4yve5PT53QuO6@8tb2+K2tKSg4`!yI9j<8mDEiMfTyH@Fb!3gntz& z1~pyFeiPV-%$liX?+1!O%@^uUdfA?9=hIh|jGnMBunXx`t$A-`p^e=Mw`1=7VJ8#n zojmq4N=-s3KcjS^mR)Y|L%q9N%lhnMP@mDVVDXdiyIrU~;b`&Gpt^-(UoNyu=vgI$ zFRSbry{9$rja+P((l|aA^;#;WYN3=br8HY8FqVBC&yKDcXXI_(fj&Czrk6iUs}bh=5)7QkjD-L7S; zkeiiskCyF*tcvc}vfCl6qDQrC6XH@$-_o));!;h|YuWdU?xh-fLCbzxWPo~E%c}FA z#M$zimd(z88q^zF_J`;cqn6&$GAfz{>UUc93^v*s^d~KQ(JlssV^HQOU39iFlfps` zg?AU73#v>gj?$OxI(kwlUK97&v#1d_3Tj;+uxHZ`6eVk7HvLqncZ`24dIYk6(3BB8 zWY^O%pXOY8H;3Y)AM3?9QS_`mm-;kyyyyt1DlQTs>nwWNZlGCQDuVh&(QEd(^m|P` zVZUadM|~*NS@s^N3+RtRsok`R3b+K79)4*z(KVVnUi3Do@>(V9EIMH?paO(O_3)wH zLO;~h6ZVJpB3i-^hopxO?Ira0La81uq_?!}L=lB9q&0O)^LSAN)ccz1EE*fSh~Ao| zWWOkihnCU)*@}9?j)zuIyk1f7fm%fm3#EE!qvy5kL{TEtMpbj%9%h32rKUQIE(oom z7v{P>ED5cnL8{6hGJP;nL9M^h-^h zDC!Jtq^0xS9zF}|W}%doB<BFhQl)mLqETaEPd({QpqDr>Gyl>Ryn zE{8Qg4X&d1X*B&h|1Vpey5IkdCkF9fS7f1$zuySaT71`|ZcE|29yQu$@m-I4>_&Xo zut8vxz*d2)1g;mD1mwHbx`NZtV_m@n>JrY7zyg6~0?P$f2&@t~OW?akb#N8E zYusaBOwSRYw$BmQr_T{rqR$c6EJsB12yqpA1RfUya%FmixQ01lTvz-E#>8!3A+8x; zA+8RON~@#N>L_vbc$BzK{7^JMB(CT_B(B{)B(Bm7L+&gL?!_>;!ZQr6gKLfkgR7DT zgX^6JgDav2gX^0HgDaUP(F8<20*H#G$>3V3$>3_K$>7?j$>1tyh7m6wYpfUF)*D=1 ztcOj8TotT0`21gQ@JYYk;4^)_!Ke3ngX@W;^pX^xlLpr!N%X>y>x-npl|<6unjvX$ zb&xc;4oDh&;~xEravcopP~LE_SXFJ5^$5x7fKxGB&td&T#t3;@IK*}N!tgd?R~<3P+A?8evcaQ{IiY6B+idX zoM#xXgtr8a8b1SnhVdK0c{LuzYUv9+Et*e@=22NK>&5djv0NsemxGA^9roNPPHmrgT3fdzzMVya0*=ySV@Ng>*!a2 z=hANho9R!07YV-&u$ewXm3htB^D6TeVn=&2m;|iNYZrdI@Z0gb&sBLTkq!xeh_=!E zyc-0+L3D0_&W^krMQ6Y84`|4m58&RU9+2%nB=E3Ek7&p`FAD#daE@!p{5PfTn<9N% zAQ|klp&{#72HUp`wjUH27wIGoS!asqOcCi+fsG<<(vWqUMWQlv?dwu`h~_$h%y=6G6|HzYbk zqH}}bH;VKoksc7v0g)aS{D_9^&kLe+OgP6iWd2*iCrd`BA@k#cPtuS%je<96$ec}r zCpBcwpx{FqGH1Ww2Q*~P5y6jGj2{>LxZrPDJf}uLJPELLlHijBZxp;qLzZq5JgFgb z1_d9|kU9GWKcFFV4hw!nL*^V4{J4h9q2OfpBq*K)nG*=IZ*k!d3V*-AgW%Wa9TxnU zz~kUNi68xQ+ql3+ftv&l;;BMy-hP1(;wj0#ych6Z05LE#)0 z{FuPEghLVOQD6n$%%DeshlTTk;Ku}~eCaV?dKA1-V2f}z2|g%rw{Z3gepui!fo}<) z3ZzGYjRITnzMwX5li-5_cME5~;D-giAe>`@Qz6en0Piv|r-C;E*5?fh+%GU*IvMlW zC~%X&i|7t|fWC>!?map|XBdl(&l!&zFB`uy{>eCLOf@es*P5N?c5~4DrulvIb@TTo zS^3s%Yn9b$U1i;D-C;d${nGlQ^^tXUV0YkP;Q7Fh1OGEn6XbUR{4^9#Iq_d1s@f9l z>|=1Yl%oRXM{K{1{%wfp{lXsr-e34rz-yvM0gI!*2K-vVdw{*g?*razF#JdQ0PxKS z!w&)s_eK5{P)Yl3=ERB(+!yYP1OXMlPWaP;%>Q*XBGPf5^v7aTS?dgPFQ3n6xG!=h zbmkgt^A2Mw@HVlts<;ODoFeAWDQ2j8*%z7R*<35$-XUdPaolN`I2k8^GX;>}Q=S2Q zDxircb7umd2591M$|nIPoN&@ynRG7b1l+_xC07S0AVRJWXi_8b8>c2flUisF;3Blfy9_`R|5CuY zz*_-Lx)7}m)FI~qUy9ZSEdw-ZIa(X|cNLm|uSB(C;9jj6_-a}RxCWN^FWp9=2WZNddPa!8W)%pxGZpW z;N3th7!L*p`F_*?xwDAhm1aM4f?p6am-n+m*2ryn2EW@K#w!uM+_rzfJ9mD|TPpA< z{Ruu_hHnbr9()Jz-G%Rs`0k~QQ5eh^6YxDdhz9e|Z{N7Fr7P3do!r^noy=tBZmgyG zP3`TeOs1{hNhdo~=WpIPDsKiYAL#B*ZthNPnnA4#dk1<_X-zHd%JhRd(#}j;G|=0= zX(p{pb`PZ14D_M#Ols+B@9%PYlj)rx<}Y(P2D(${Q)_#wIh{)Ov~6|znw{SMbh5oa zQ`6E)ovHqftvzVklj`kHr5ClXpv*`XYc+RwLB&wOIKHqN$^U=I4&| z{B0XIE=aa-!w&}*b)~u?_eM2R)Y>tU=XpL-l=XWQncwA+V%O!7l9gCfS32oYJXwig zr$#oo*hz0&xT6nKk?I{y?s~aA*)vM(wp4FNDm}Wa+3D$Xda)oz7q=w)Wx@52Vs>Fq zva5TfuWbW8BbloPlHFZfy4sVxrbmkP1Y|}^+>wnUT9L-6M&bJw$0$-YE29bANQ@$L zz3`$nicVX9vVUMS{=nudkWM3q#h26{(n)$C+O;Vy7Gc8)Z`J+!2{ySAs& zBc+^T?n0FO^@zo({xv)MQVVus*GYA^@_w=<*`AUOKo+P{=cTGPh2Bhm66=!Cu+_yk zcDWdLl)HeX{V>+Xj5CmijaE0-dZ(pUH#>W`I37>t-lM!IrqV7iXSb$SHS4ah)tg6` zlijJQm3Mw8!@D-|KeLn#0H=r=u-@B*A=|8X zCX?#f+`V&6SHIuJnq(R=TZDfKD}_CC+erOIaC9AZ0_-d!g{@dM=^oj3lHDJxg`;#! zSLZ-l^s+`&6ok1t)t%fSSSBlXJzkl{@!Z~@6}aQ(BO3oeRaW4(V9UwgomqjNV&V69 zZSLys>i0<(?8Kb#%2|@kNR>d_xmKV>-O0{ji=;*m5{DtFAJdW3w{fwoiu9VT$=(&| zg`dT4%-p3ozx^yX^%ivXcA&kaKl#!xhc79Z!||nI4qqi-F3a6)bGUB*ZK-6sed~zs z{cN=X`1E|8`}K6<`xH6Ea^m^byj@3i>fduTM>^EFuP@C}-MEC?gQoT7u&yh0rQ-NP znq^7{S<=@>mdQ(CajHMdQ2qL7x9cpchxag9JaS;m&Y&FDnEN=>!n zp)k}7&D&`frJWujaN?_74%b%Ch$PFx9sQ|Z&P>YbV3>@Dl~W;zxm=FB6{fc6;*^#< zS&vg43wN}q`nb9vYO|{R@+kP?OnK? z@OE^Mq4r0ed>QfFEsi889^q~=yai-vSyy}7$v9j3(M3n9sW;iZGt-qJ$@Gjjm3-I0 z(UDb{sZp04Y0fN-rjTu((=K~2;!o(@p0hf>%=LNv z<<5!co^I?Wyl$T*Wh{E@@%B7DqLFOYRu!yDWhrJ=CTRBRRFAVg)znWbq@LB8uW+t5 z+Eks(nIT8iigZhAOLCyQpB8ncGyPdojZrd4-L881>5WZ%;Ec_3J~kp!tH_2fcA5v$ zY23~zoJ(l2CB-zMI8CMdxo6Z2sH0LH99yAr*Y4tS<#=$Zty=?GhS4wQe{GUQ%ki&O z>=2AAZ&4D2W$ZT!E2+A@fp`oYyONbS-=#eYYA4M^Ylc%Ar*lsqDE;~BSO4Y6j_=;O z^wEjeUS)ppf6k#m+%Upc9RJWKkdhK6qk=XFTxg#bTV}-K>QbvN73xy1E(vw13WiKG zR)*&tvB5tCYfZdh4Moh@;CEwl<@!==zFd#STI6~>wnVP)#+J(Ul~|)(za5(;mdfE2 zI~KJ802+)ij47#J7@LmpABs2q&w7GNu#gZXYFu*QZ05~n1r95G_$v2sPK&?NJu@e!kx zLRujZ$D<^Ua4BI(=D3j7G>4fn17w&{jM$8pg@T@SQ+XRp;+d!!joOMV3EAk_^#Hyn zqwve4W68WwFl@rRq=~LeDeSu4qm<&YxOCs6oaxcd#$E4vly_Ne^R$rdy5i%qA92ql z{OIxgKo=mDAMscZ2Cf1(IHdF|Vin@T;84iB$^a@R=nxGKDKC62%rRLv{OlO~sPOE< zkHMiLHz4SU>4-$60$A3Sy{btfmQXJ2)vn+wt|UBH_G(wMEf5hsOK9$fW^gZilJLy3 zCwo0lSP``HBmvCyL{+gWhz{s}tIi5(PYx(kECz;UtRbf=tE;OQ+pM~lghQ6H?5P}5 z7Hea*O68C?f~$q zC>9%&5po1;vt1)BhrBSsYo=8MYk`?1p}g42SOu0k$M%qEVvC3k1x-wPFm4*Gc`c z*IIq8(ARQ(P3UWtX@^Z4Kf?F#QIN@K12)3N;9#EO2#Jy4hdTK14jAO!w1s&HB59;@7CB|KKbWmS2sssMKQGW<*j!M%)qh+T%wES6+W zJk}+gF6Q(wry{mXIDj}8hVb$xh9!OzZ=tvdb1yTiVuN23>Ht%i!^f4%H zClc7P!RMl`UrFr3GQ?zT@Wl{hd}W@ruU$JObH4Zh4ed}W=USQqcik}X38+R)%o zZ1A-(q=K+IkX@eMUQcgtZ18o_^CLG2=Rj=mZBLI0ulWI2{xy$v$kRL&8~jI+`;o_8 z&LIR63s_*ez(hEqC*MVCU8KTA%3Z`$uCfw1SQ8WtBrt723K{8%vaRe<8U$}}NZ?*J zAh>?4(moeSKB>al?7r>uWISYocY|lN$X7g`aVSxkVfr=w;l;S8{~EuM5f@5dKv- zbT|WlFo^$%>hSw>Au4CqH#F4G+EPEWqkZPAnX~6~)X#31J7?~URDErI`>c-k+J-rG zb+xG^l8)U){+R+nUPUf9&#?OeGG6>AsXqkxgu+Pf8x z-0}2_ptcl$L-Gni>PAMi+i0G*VJ&Lg%!Vx}ez$E<&r&y}Q+PtS zVP)&)j_R3p)opkL-&?(+rm3ddKLr~;mdLsB*x+owVuQ@hhTc>^rZT5pj%rO`$7X6< z(lm2+J!xlejc8{PkkjwFdHVwouKVJ=n}6PNP7;H5KUXszcd6W~`wy%uE=u!sOLzA& z+}%-6rX5Q$CC@B$n~$c#%<$0V+WWss@!M>|n`;`(?M7A{-ZGEmv)&SXFBv3ynir@3 zJZl$dYD+h{zAhUJuS+h{9v`|yUm z3*Pj@S8m5%bBkVZ2yeRCraPJz@H4Q&zV+q!{+HOU#ZH;Ey$-h1u%3;_4E&a$*88$A z6QR!$?HAo%jH25&!vDArHFz`MjsFPm;7!MZhV+h(f-f)qULcW`f$+S0OH;68zmtE|M7Xe9`EH1{N}-Lb9ltF@vg+LHR|!J ziUz=0Sikk4JJ9P)P&4uSi#ed`ac#hFIOgCx197XzT-8HomT1;OHizo)UoB)wL=L~7 xk@;@I9B07m!K&>>g!!*{b7wy52haci|NK=(piljOhTJB9XY^MYfxqfO|2uDz6qf)1 literal 0 HcmV?d00001