From 6864fa38972081833f79b39df74b9c08cc94f6cc Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Sun, 11 Jun 2017 10:12:08 +0100 Subject: [PATCH] sun4u: update PCI topology to include simba PCI bridges This patch updates the sun4u model to being much closer to a real Ultra 5 by moving devices behind the 2 simba PCI bridges (A and B) as found on real hardware. The most noticeable change introduced by this patchset is that in-built devices are no longer attached to the PCI root bus, but instead behind PCI bridge A. Along with this the interrupt routing is updated accordingly to match the official documentation. Since the existing code currently bypasses the PCI bridge interrupt swizzling, the interrupt mapping functions are reorganised so that pci_pbm_map_irq() is used by the PCI bridges and pci_apb_map_irq() is used by the PCI host bridge. Behind the sabre PCI host bridge, the PCI IO space now needs to be split into two separate halves at 0x8000000. Therefore we also setup a new PCI IO space region of increased size on the PCI host bridge and enable 32-bit PCI IO accesses to allow IO accesses to reach devices behind PCI bridge B correctly. As part of this change we also combine the onboard sunhme NIC and the ebus into a single multi-function device as done on a real Ultra 5. For other NICs the existing behaviour is preserved, i.e. we initialise them and place them into the next free slot on PCI bus B. Finally we mark the physically unavailable slots (plus slot 0 in busA) as reserved to ensure that users can't plug devices into non-existent slots which will break interrupt routing. Note: since this commit changes PCI topology and interrupt routing, an updated openbios-sparc64 binary is included with this commit containing the associated changes to maintain bisectability. Signed-off-by: Mark Cave-Ayland Reviewed-by: Artyom Tarasenko --- hw/pci-host/apb.c | 47 +++++++++++++++++++++++------- hw/sparc64/sun4u.c | 60 ++++++++++++++++++++++++++++----------- pc-bios/openbios-sparc64 | Bin 1593408 -> 1593408 bytes 3 files changed, 79 insertions(+), 28 deletions(-) diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c index 1edf57f600..64025cd8cc 100644 --- a/hw/pci-host/apb.c +++ b/hw/pci-host/apb.c @@ -599,16 +599,35 @@ static uint64_t apb_pci_config_read(void *opaque, hwaddr addr, /* The APB host has an IRQ line for each IRQ line of each slot. */ static int pci_apb_map_irq(PCIDevice *pci_dev, int irq_num) { - return ((pci_dev->devfn & 0x18) >> 1) + irq_num; + /* Return the irq as swizzled by the PBM */ + return irq_num; } static int pci_pbm_map_irq(PCIDevice *pci_dev, int irq_num) { + PBMPCIBridge *br = PBM_PCI_BRIDGE(pci_bridge_get_device( + PCI_BUS(qdev_get_parent_bus(DEVICE(pci_dev))))); + int bus_offset; - if (pci_dev->devfn & 1) - bus_offset = 16; - else - bus_offset = 0; + if (br->busA) { + bus_offset = 0x0; + + /* The on-board devices have fixed (legacy) OBIO intnos */ + switch (PCI_SLOT(pci_dev->devfn)) { + case 1: + /* Onboard NIC */ + return 0x21; + case 3: + /* Onboard IDE */ + return 0x20; + + default: + /* Normal intno, fall through */ + break; + } + } else { + bus_offset = 0x10; + } return (bus_offset + (PCI_SLOT(pci_dev->devfn) << 2) + irq_num) & 0x1f; } @@ -669,6 +688,12 @@ static void apb_pci_bridge_realize(PCIDevice *dev, Error **errp) PCI_STATUS_FAST_BACK | PCI_STATUS_66MHZ | PCI_STATUS_DEVSEL_MEDIUM); + /* Allow 32-bit IO addresses */ + pci_set_word(dev->config + PCI_IO_BASE, PCI_IO_RANGE_TYPE_32); + pci_set_word(dev->config + PCI_IO_LIMIT, PCI_IO_RANGE_TYPE_32); + pci_set_word(dev->wmask + PCI_IO_BASE_UPPER16, 0xffff); + pci_set_word(dev->wmask + PCI_IO_LIMIT_UPPER16, 0xffff); + pci_bridge_update_mappings(PCI_BRIDGE(br)); } @@ -690,9 +715,9 @@ PCIBus *pci_apb_init(hwaddr special_base, d = APB_DEVICE(dev); phb = PCI_HOST_BRIDGE(dev); phb->bus = pci_register_bus(DEVICE(phb), "pci", - pci_apb_set_irq, pci_pbm_map_irq, d, + pci_apb_set_irq, pci_apb_map_irq, d, &d->pci_mmio, - get_system_io(), + &d->pci_ioport, 0, 32, TYPE_PCI_BUS); qdev_init_nofail(dev); s = SYS_BUS_DEVICE(dev); @@ -725,14 +750,14 @@ PCIBus *pci_apb_init(hwaddr special_base, pci_dev = pci_create_multifunction(phb->bus, PCI_DEVFN(1, 0), true, TYPE_PBM_PCI_BRIDGE); br = PCI_BRIDGE(pci_dev); - pci_bridge_map_irq(br, "pciB", pci_apb_map_irq); + pci_bridge_map_irq(br, "pciB", pci_pbm_map_irq); qdev_init_nofail(&pci_dev->qdev); *busB = pci_bridge_get_sec_bus(br); pci_dev = pci_create_multifunction(phb->bus, PCI_DEVFN(1, 1), true, TYPE_PBM_PCI_BRIDGE); br = PCI_BRIDGE(pci_dev); - pci_bridge_map_irq(br, "pciA", pci_apb_map_irq); + pci_bridge_map_irq(br, "pciA", pci_pbm_map_irq); qdev_prop_set_bit(DEVICE(pci_dev), "busA", true); qdev_init_nofail(&pci_dev->qdev); *busA = pci_bridge_get_sec_bus(br); @@ -798,8 +823,8 @@ static int pci_pbm_init_device(SysBusDevice *dev) sysbus_init_mmio(dev, &s->pci_config); /* pci_ioport */ - memory_region_init_alias(&s->pci_ioport, OBJECT(s), "apb-pci-ioport", - get_system_io(), 0, 0x10000); + memory_region_init(&s->pci_ioport, OBJECT(s), "apb-pci-ioport", 0x1000000); + /* at region 2 */ sysbus_init_mmio(dev, &s->pci_ioport); diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 8282651aeb..55d81ee73e 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -27,6 +27,7 @@ #include "cpu.h" #include "hw/hw.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_bus.h" #include "hw/pci-host/apb.h" #include "hw/i386/pc.h" #include "hw/char/serial.h" @@ -42,6 +43,7 @@ #include "hw/nvram/fw_cfg.h" #include "hw/sysbus.h" #include "hw/ide.h" +#include "hw/ide/pci.h" #include "hw/loader.h" #include "elf.h" #include "qemu/cutils.h" @@ -440,7 +442,8 @@ static void sun4uv_init(MemoryRegion *address_space_mem, DeviceState *dev; FWCfgState *fw_cfg; NICInfo *nd; - int onboard_nic_idx; + MACAddr macaddr; + bool onboard_nic; /* init CPUs */ cpu = sparc64_cpu_devinit(machine->cpu_model, hwdef->default_cpu_model, @@ -454,10 +457,17 @@ static void sun4uv_init(MemoryRegion *address_space_mem, ivec_irqs = qemu_allocate_irqs(sparc64_cpu_set_ivec_irq, cpu, IVEC_MAX); pci_bus = pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, ivec_irqs, &pci_busA, &pci_busB, &pbm_irqs); - pci_vga_init(pci_bus); - /* XXX Should be pci_busA */ - ebus = pci_create_simple(pci_bus, -1, "ebus"); + /* Only in-built Simba PBMs can exist on the root bus, slot 0 on busA is + reserved (leaving no slots free after on-board devices) however slots + 0-3 are free on busB */ + pci_bus->slot_reserved_mask = 0xfffffffc; + pci_busA->slot_reserved_mask = 0xfffffff1; + pci_busB->slot_reserved_mask = 0xfffffff0; + + ebus = pci_create_multifunction(pci_busA, PCI_DEVFN(1, 0), true, "ebus"); + qdev_init_nofail(DEVICE(ebus)); + isa_bus = pci_ebus_init(ebus, pbm_irqs); i = 0; @@ -470,27 +480,43 @@ static void sun4uv_init(MemoryRegion *address_space_mem, serial_hds_isa_init(isa_bus, i, MAX_SERIAL_PORTS); parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); - onboard_nic_idx = -1; + pci_dev = pci_create_simple(pci_busA, PCI_DEVFN(2, 0), "VGA"); + + memset(&macaddr, 0, sizeof(MACAddr)); + onboard_nic = false; for (i = 0; i < nb_nics; i++) { nd = &nd_table[i]; - if (onboard_nic_idx == -1 && - (!nd->model || strcmp(nd->model, "sunhme") == 0)) { - pci_dev = pci_create(pci_bus, -1, "sunhme"); - dev = &pci_dev->qdev; - qdev_set_nic_properties(dev, nd); - qdev_init_nofail(dev); - - onboard_nic_idx = i; + if (!nd->model || strcmp(nd->model, "sunhme") == 0) { + if (!onboard_nic) { + pci_dev = pci_create_multifunction(pci_busA, PCI_DEVFN(1, 1), + true, "sunhme"); + memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr)); + onboard_nic = true; + } else { + pci_dev = pci_create_simple(pci_busB, -1, "sunhme"); + } } else { - pci_nic_init_nofail(nd, pci_bus, "ne2k_pci", NULL); + pci_dev = pci_create_simple(pci_busB, -1, nd->model); } + + dev = &pci_dev->qdev; + qdev_set_nic_properties(dev, nd); + qdev_init_nofail(dev); + } + + /* If we don't have an onboard NIC, grab a default MAC address so that + * we have a valid machine id */ + if (!onboard_nic) { + qemu_macaddr_default_if_unset(&macaddr); } - onboard_nic_idx = MAX(onboard_nic_idx, 0); ide_drive_get(hd, ARRAY_SIZE(hd)); - pci_cmd646_ide_init(pci_bus, hd, 1); + pci_dev = pci_create(pci_busA, PCI_DEVFN(3, 0), "cmd646-ide"); + qdev_prop_set_uint32(&pci_dev->qdev, "secondary", 1); + qdev_init_nofail(&pci_dev->qdev); + pci_ide_create_devs(pci_dev, hd); isa_create_simple(isa_bus, "i8042"); @@ -531,7 +557,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem, /* XXX: need an option to load a NVRAM image */ 0, graphic_width, graphic_height, graphic_depth, - (uint8_t *)&nd_table[onboard_nic_idx].macaddr); + (uint8_t *)&macaddr); dev = qdev_create(NULL, TYPE_FW_CFG_IO); qdev_prop_set_bit(dev, "dma_enabled", false); diff --git a/pc-bios/openbios-sparc64 b/pc-bios/openbios-sparc64 index 7bdd6a1f4977eae6693883468cab78ba3ba363cf..6e1e10c2c07889d69acc09703af5a8f37623df2f 100644 GIT binary patch delta 31839 zcmd433wTq-)-b%+l+u)2_Y7^4QfPLmHs#g^3bY8)c%>-Xpg@Ztq!eh8N~0iD@sNND zRS`mguBs?O5vn3YQBto&K&c*tfCyD?N%crQ2PH=lsv`S;X78OA3cSAG`M>x3zCI63 zX3fl+nKkP+Yi73JQ{?v)c@2IzveoE60g$$}`Qs%(%Rvx?Rif0cDrSRh6^iOtx_9>J ze8w$G@SZ5>tiqJ&mGwJ|pw+;*(BIMrlTRVMeBCu&|->-H9T(|Pfp?N)SuVQw=Dx^laV>X_s5~Yw^ zlmx3VVdKi)j@Xs{{rash9v(#c-Rl+w6 z!no5_-y~iCDX+i_NS+X*7TmL!!&dZ`jAE(K;mzwLqg5DpoR@j4lzP!>y#nXf!fzgn z0>jp$$D%sGzOBKNF9UqC^6?*@hL^UA|J>N_j-0@VDRp(CpyR1km>F9o=E_!K<^Z1e zw!)*TL`l%<2vwrcy>$v7h;C6xv2zo}LGjR<1vNI~Z1mPrpuA1xEC& z)DYd-8-Iq}!qA!lXnuQx%Lm8X7vA0AyNi4m!Lu3cgH)7g6d4xp2MD-VJ_f2gh)X3EqdE zK2d_Cj$p;UeINU+B%%#VTnXc+|N=xGs!k)fLlq9P#*5|X`1WyB;_8q+$mIFvwb}N{m z376gq&%?)npqsmbZsfz9t() zwSyAhsWA`}4cGe4jE5M2Z+++QftPhK+~+BVy+HDRL&r220VlC;8q800dqtr~>l$vi za;jT}{2Ou9boe7-%(nKyP6uN)o~sgtZf;RXvI_b6II#p$;d*qHz*bm*1505(EJtrC z%%_gPt)V>rZ*?{of>Fb8*bG2O@*SK3D@nq-fVC)Z*W`^$szjmd!FHZ@R^j$Ce6$SS zB6s|Omiys$*o}|g4_WXYdhdq`;P!Qz1tTE(`>JSbEc#19kF&}l0baw$%i%FdLY)JO zf%wWCaCa1>`uwvwLBGUN55W;=kLh#4OwArcQE6aAQRymC(piPPUwrntU;=uiN)!?U zHw(h*fgZssy<;Gjqa7g&Wp53U$s>F~BF=%`@j`B`|)i|}Ra^{Wg;7OQYWLiJi0 z5!(v~grls&4S=?_aCgEfE;(Eok)Lz_;8JK6tS7Ndnvz8=VhO<3lEd^m?6c;K;K^R)Ko-y;%u6;)()xkaJJ zDk4FZDD+r8fY07~$XB`!eu;svapJ3ha0<`73i+@WZ+;DC!y>GE4Nk+qu=aI8_ynz+ zU^Ybg-rfX9pnvk}>%zIKM5)3f3bF2(jZ3V;^>etI_`bb#jawADSBXN>%fo`g>S2yt zt8l{vpMNvw+`ibf1$K~OfA}_eVP+Iq(D*hKg8?6X8(xNIe9}9x1t0|j+h869FwY17 zf?Iq8>!3Ue2IBhnAr)M{`uCwDfm%HHA(-J8-}w*W^(febwI9P07>Sl0uob%FcROGx ze2mggFvDZMyq&NWpc>Ebf+aA=_xLB!H%hl~r>cpu?`Mz%&!hh{Fu^@o`Wa+{7d<@p zHx)PxgS^VKc>XiU>=kOG#zm(r56RXEf>V~W`HJ$@bjtET9P>HMhUr-UIrM=EzB8Z0 zN`SLixd(Q~?&7AxDW537!Y?2b{(+TWKzaN0I#GhR@ZWnOfecK+z+UJ^26jV>l6J*W zd!eNLZ*`(XlsbC&nO8}IfAJbg@Ez**!R_t$*NIY;R^fBC!cGN+eqe{dyp88J4zNgK zsgTH3yj95Z;RpL*DAZ!}K1hxI^6hwQH>Vsth}Q(b>|9sHit;?leEwX==Uu1wcXx|I z*R2`$j_+sMbx!%u=j#kY;<~<)_?|)N;Wk)Br~GI2it8ldA{}FM%E9k>d$L35!aJ@~ zIv==-OMzzL+H)IGB??BXFmMuw`!m|xWv9Gz0|o+Mg83K@KyK_CZkAH$l>eNMIr}+X zaq50B!x&t;AF^Vfbh8wPQ~t96>-R%X5;Wqe{qQo>qx%5lLLCMUKpz-@=MTVK5)^RG zmv9b7`^pZ&V*npv_$%l`i`}9i@@1?NCE}FNPsYB7pijaW4t`Aq$G+KH5}opSE0!IC zRQf&+2wT>xMO~co`7HDtf_%6I!-v2OccJkxJeJs>+hvZ{^@@kv^EfV$PWgm@Zy$zK z`a%^e3Uv5A_jwh3d>1wyhE!<4P7P21A>Y&n$Oh+Qd=PFXag*F`b#IG>=biE&YgP~N zTDbf<-#{WrIO;f|36Izad z5!ZYJLu03`V(Xfm@{wOL_zh%54{WV=B*d#_frL|!fEhO8Ql7kkZy$kFScMI|YzcNc z3R#^WsbWR;Dp4Bllz*?sQAZ)Q^QNO-G>* zjKPMZkOjT4(=ix8j&(=tF&NP0SX>pG;;Is*zE1h~r_gl_26s8uy^2k7SBX-FQ~v#7 z4m049V_@oXtYa0MQd=cTot*OTrKmd&X1IWsBb3=1>@1BWZUDKC!lk5RtpWLK$bcgjc3af|O-A8gO^;9A!+_CJ^%Qql1(q;>l(zP}&{2isc(jYSd< znm3+v%D;6%@3){&`%TB;Zc(64`ABn0?%AX&y`Nlof8>_n;3U6LB}!arbYDHdt8>cD4XZkM!mC7y!v{F!=5Kk~Dp3koiBb=z z+#FCX2opLYl_);ZsWk97$pepIF~LG@uTmcAC%##?;zXR z>&ffwf`6`Gh|&o{jVQ$LnClX%MImXCD8VXG=(b~a?H2A0d_TL^_nat!Q$BBW$81>1 z^HG8%?3n8pcs*Vx$|wl_*|l3Z4qlhzC3!hr4?WSBRz(X@EiqvRz)?+bcQc=4=dq z4@sRvffhZ*M2|DE;?sAK{vZ@|Fd6t(|i-JxoH#+4X z4szI~8vWdCuG5_Ixd*sjbIRwGZI@F%cRz=(7{C`$-o+gbr+jYQiY7t#!nYpbga3p~s6z2yV1`P};mHED{|iPy z8P@&_GQo}w9C*0;6l6ml=A43?=qE#R&n5-hr|_L)d#8N%V_bR)`oODLcM8mO?eFFd zsf$EO3Ya&To$}XDWB3%L_Mla)sKRgF5EUilUf5xNMP4LIF@E!g7^nR8e6;)sJ$ru* zRjjCz(~j@mG)6z}l+QlNX{2>%bjoL+z(;?C61Wq;`w@o1UX*@p85&oYbR8(;y_nHkeqVUGi?`*n_#EhyaUBB7~lg;4?`+! z!%<;KO009U)TYQNU-)*r;FKF`hvuG5LRT0DbSoB}a>J{sf*_nRZ~S(VDD?@LHy&{t zibdSRu{@9AFl0ezyyoAK3xDF&e?unRimUz&r=#B)DhLACck#I9XE1dh=w>}Dobs8l zTa@B4yba><=+DqK*6cP+@jB%*-=ggoFh%#MV#O6|vE>&q#8S6GayaEPUns>8gN|Py zHTpsoE4HJ17U;=WucP-D$b^4k@E1se8a)3CWF;Kt+P15}S@h&acY9Z?Q$FLyo6kV% z_|K|XabA=l2sHO>_eG*zcr4u^xdp4vDStKB%_NDJb20yRGnmWpncHyv zS-1%XVbfW-sede21=}>ex2?S_^So0&6XnYYihS$g+Tb@DtwNS+v48m!C!T}(37vR| z!zrH`&3(|Sm<=nP^4WMibq-QtB8tsW4FAA6&2SSO#JXn4gznhX45_gvRxyv)DIc2c zi~kLd19?}#GrxlmDt(*&fH=~*a8Xyk;FJ&ccu}+p7`y?+Q0*IdCW~pw}bs$5d?{c$LI|fHVPrR=K=?u4EMF+AadY7A})}U(*=*fZhcymWG zm;~D4qaDdm_|;d}k$f8khj2|CnGb!@D3U(0Yd)PDv^_3*rs61(^dz2BK8Hw>2zYTR zBbjhFe!xgRtn_v2N`^*7*E;2W#W+e&3VMy_t5X#tunh^4uzH|fsABetjeWz?CPjbl z-MOKiKfx*Qy9W2@Nj~_oyMZL#Q0W#0!;XBb;PTj`S)P#Q^4KMJ{I?FLypNa#LD&!< zz(r6a$I8|Suh0y24aFE7&Z_?bigU^ zeFQrhi7A#_UV~HKI}!&PNmlf*DpuTpWk#|kVLD%7_dTgiTxF@NzNN@#NhG;ZumT<3 z$poq~$)52VGuY7GgQTL|opg%!D61g$Ai1y{Z9Pa9EW*cokfG7Zt;GMrjz@ctY?y@c z$z&+xqb->{Pfe{7x#b-%z0SA37rDJ7Y{c+D zk_FG^g9^|=e@cebe1l_UwP?8xfR$%@^_1<@&g@+KAzBdIVJA00-_a67IaMzY`yY#2r|VIAtOCt0uxhh0z1 zFdV1y#Dz;aa5nmR&Vxu}BuBoiLN^*4~Aoo8~p$is0?c}I6Vbpy#toWM=U6B%Au?axGmg~gwjpKoJgyf-Lqrz#(8di3t_=2f4m*-H<4trBMMzNkv`Du z+jJ9|K%)QcW|H66=~l8GI>+&)RA=O0hYcf0Zo)BbIg_07h3~hu_w#XofPM3bDSD!t zNny0*k?bBHyIIex*kAuFT%V`%Ri4UMBZ(OhEh9-LJdJjqTZok-i7EQwDmFz>Jpg|i z?ixw5VyCIBx?@E3Z3+iTw~-{s!(q3P?C5tDZukBHV|;sVBPIfi@YE=h3ID|IcaXir z-i(1eNPIiaLB4i(l1vgSsv7U3gE-7aCO|sY*hp6A6{`FD@^bEFp=CG3<0%{I-NCPL zf>YiegVJb{1P|e`(WC^%;QG;INoTuQDkSr$oKt=|)0cA>DUX6NzS^yBXqsupdCu%bea9z34$QV4UR%3 z-TzD{EnlkUpWLP9@As(rs?z_cS?y623v_eImL{w$(A~<@K!I)qE-%)N^_3Os{)mM< zU+EOxmaecKT~Fx7VA)*V1SmvzvCf9ZdAfN#N;OY60@77bdWCKY#G|)DHv;0ZSxu}D z>y|@21|C*`#z%A`K=Roi(d9>h(dYe}ZXST&m+sX02z-FSg}M zGvrvLGvSCuIuX|{(iy>zbsVsq15Pf|RfsAX8Wz;4WVv<4!bG&)qwCUPfnS9z2%zUN zT_!ZFSeTCP$+|9NL74xvJg$oa-HL_j)plK%4o;(5dyId@LJ2**EL~~vkZve;eL^?1 z!-7ByzQQMTW^iz_AmpKOvCiiVs)f$l|2iFA(WbnqP5v+1U$y+I1^+3+|Fw3`24@4G zN#sx7zg_v+%EupWij?s`dH;vn%*WKL`On@~(uOfAnfHI_Q1dgi^1tuV@@l*NA5PTr z%{(0=@BeU^3Wy*)`hk|$5FT}D4K#$IQ(9g_c;q`RuOO87A31}bO5KSRjlm*l&eW*Y z?$ash{^m;bJgM8}bcL1tf#?V$sofliR_jIDAK-?K%eU74K(s;^x#2!hZQo8~iiGHX%o87s=yD38X*^|1V13E z@P>t2eNn*|`I8UCX$!Yd8`wgHQ{v?VN$XXF-PHjc=;2whFn*NWu+Xc*uhS3?Qy1#M zFh!$9{^SG0G|DbiDR5v^p4x7VO2GqntijxSbb8zg?OlBK?QtI03b%2aRW!#!C8m!QO;G8}8!7raLBqCj;*PX- zz2BadkDop&Uc-M)#-Frb`9A&M#8n-XV&CQ^;xJHu{!}TRnH}Aycg4&veJ9V0?sgFL zRRDDmF~4|@)PJxvz|uck8jy9J#n&7~S%QkcOCsG5O}=0vm3xER7rdD+?1-;!W8I@d zaSdqyRWx9^N9+<6iVI?)jiwQ?0$nzm3H9i;(GqCpi3xM{OozFnX&%_Iax|R>f$F>H zT*C6uai5rs)pt<}4d}U@8gTnvR0lS+JV{NMd033WpYEb5;79RpYTz37Zfc^6c@YFb z;YT?%styb9rrdQFZ=!l!b~mL^gPyx-CipSHlbY%=G@Fm1QtCS_T9xkA3iBX6C0&2kJh13Fm^cT_$lBn~A z3u${o5_2$EEG9&S60Imspvf#r;pWy682o6RK+Rys(h1ZA6=*LJ_4wih`Yzb9a3VEB z09`z(N83L{Gwz#6V@MAZHww)Ysevj|-ioe!0Hu5BS_q*3UTT774Bkr(5I|2l(_@!O zG!_DAoJ2EQ$jyB)LFVnk{}lB&YZ84pQvJdt8mkga4z^RZ39qLimYiY&-Z7c>q>9|N ztXyM81-d3v168D^1ssw@bpJ{9#1usTWST)F9fl`Ues(X~sh&tVJZr#QJJlts5*-wb zWsYgnWXtyg(Ty|=pik!E0kfL=U1<`M(86-uAVYRkcMD-*khi46#TXbm$ z^q>xyVH=_z1?l1kXDq*gRep(e0n4o_SdUM`x^Ifd4M zNBx~!Og&)7U@=W2*QBFvDm7CZA93q?U1LG(R9f5H1V&^m;x!G)#Ms2RNI=1BwAO`~ZfO~BwZ znnBXiQJhXqxMVtw!{O6uN?Y_MKRTu>1h8<7FHWcZA%KDD^iEQ%}Z?G29b|C1z3?eG)vr zrZSoh;6`Z{&4g04@uUV_JgG-7Pnt0}i)N6_bQH^JHWZ>Qo*Hm+IhDYTE)J?!LHo+7 ziC6>-m(vVl$wA4XqU1>px*Up3db4OUc6nBei3(*37;w;WBvU}?3C?H_&=Q`heSnsu zX(UZns(9y6J>K~s?GGMwJ*a3?{~T(@xY;xZ>?n<-J-UVlsJ?ZOSooUDq0Abrm`(H5 zCMGoP7e!qAr5J-3X46ElW0z1B>RljhR#5aez3WKa_Z=F&+dTR_V^nhg~gh@u8`&Z837>+>j& zOVrP!Ch#h_NhkwNh0K7-6*Lj*FsFhp=Y(3q@!K(2LH9uodLO0+aG-60n1(++Ovm#% z-N1W(gbo1@ipQuPH$OuAg9C$)&@_^*L;KHSGN#R^c_hbzj`?&tu~@NTJ{`Uq7bg`tL~_#Hh(;W&dIzCCrRZ={19;H>DAkjpe)Kr0ne*O# zRFB72V|y31kX#YnTg6N~J%h&K1oKbaXSwxdbrUh+_6xCnK!8b@6 zYh|cjRdBGPh~!Y;n(Ak{eaf_8a1q@I4)i{z7#$_?@I;S$AEP?nZ}Vfc1RQ98obu?Z z_i;L$4OhLh7FNwQRzE>aoUTvMNu00jk1C^35`{*5`4v)S3K)EXE>J2hR)osEm?o2) z9P}=x89WUxrUl@~uq>J|A6XZ?cb6E8vzE~GEA)%COK2`t_C2kN(h|VtCDa4~bStW< zlE#7qb1D^3VI?Q04#V?l59~3P#*!PG&{IhVlN-{jZ(;^KT}d~RJPUg75cRnENvb1x zIW7K19De^KHS(%YQ8NV5shdrQYc0DQd-W1>>;Y})<>f^Q+E-;x7B?SXG6;~G=toc zhxTXak{08r+4noV*!&DlW_KzYrIkK+crkq$HBmc>uT;D~8&#ZtM9nyI3)FRAV4 zwUv#^CE)Nfn#}Uk71S+G*BxGzmQ!J-Ar&N=8eUO;21w zli6rxyKo6w>k4XUYisZDV(AKMqRKAllG-&Z6fUh>K{Lo*0yZhB1>c;g>$+lTXJ1Yg zjUy?Mh2!y9K@QzjQ8r`NwA2=lW{ew4S5Y&bTtz8*Rw=Hodlk0~{J)IVlwtEK+J%g@ zpl-EFztuF8yP>P884s_f6dkK+46a>GMXp~t)Lcy|`Z@IUY8pqzN!8Uf4d+%<172TE z8Q1RB)Qr1%HL;pT<1^Ki;YptLR#O8s@$z^)T1`9Pt;k1EO_NE11&yc}{yd~+aH9jM z2~Qw3u5jyc3sN1(D;ApguNcgzp^3^bQaED8LbLXBUhB_|Z!VN#(6yEtpbl%+Dgx?X zOVfy5hfPXqLD54qp%AS+sYHiIF%$lE)QDaWH9%1P9rRE=DH7F;xQ=J6YR0-w(Pf^~ ztQ$VKjwXOd{r%E9+Jigb>*!!IMW@2pOEjKLQ5u?X#7k5J2d|Kb54=S6;878JUZRGU z9g4OOs@v!0sT>eF#ybZ@2! zNx>-9j)cakVTB-315TlW9IRQ-{R^LeJ)Hz(nhvE6bP1HAe?2wf?hVudVbzn!-$)%) z5u#SMFR8@9Mw-S-mAPC3*VS@(o9$CcC0c8#xvfx@RAL1ODy{i`&Y-N!rRf0`~Wsl;Xl-bN#rRATyT zmuqC+>1)bI)dYpcsR5jp=4!JZ`0MMGjcj9&+qP|+ zAFCZE)o>8^e(Sf;jO)tVNbA)m^G5d#M3R(Xy1gz6CWH_EJ65mLxP*i5&BVMB|$Z^8`!99;p$rX(^A; zEJDMX>F9csn)@q`d8?p5pvEPGf+pyyaLS=;)p%&=0XH_hNzH8|Ib&TYzC{fwDsQ$d zSX&+~&Oz~QY8Vo!riu6%HD(!_sjhbm<=eu?RiN!D?%cjbC1TIPz*|($Q%8wtK>00d z?En8mMsV6z+AXn-c4!q7biG64ann}XjXl`LSNdO@{0;xvLgz$NQx7wqvi?Es1nO2B)$h(EEOir8Zt zWl*T7W}@mEJt=EO`!;Is-^PUpBkv9?IX2|Dpat_Pp#lu6?}=tkV8cc+*#AJ2Q_;X!7@cu;d9iXwZii- zaD`5%RH$H8y|vb^Rk6%dL%gkUt=IClQ!-Y+$0KGR&`Ky(nv#N=>JO(-qQB4p$7zP-cC(WiAKM&`TcmZt}EW{r`@?< z?x!1}4&75l17?0qjS=Fcsqv4HtJGKcF)e_$NL_yP@1UlZ4U*<|xwO91G&Xj*t9Q}@ zC`B=uCga?lv_B7L-pBO#(N0QnIcK!vJLza{Eq2jNHLBerF`TCyyQoR6_u{VBdTmtF zSeH@{f@u4MPUdv`gl0pqwI>Lo_^DFz7u`q@#IRb^wwva1iP)tCslB^ZF=-jjo$Ey% zUf4}XLh$m!W%YEl%K91DF0!XLliE+4KCyj{;O{qoCRZ2v(?7ecEJoH~w zQvQpm!`yu|TU8u)t`}o*`95lB$?EWBzPSii{Z8AWGP@pX$3k)+Q`dq%DO@kp(?w9H6nB z>u=|03I}K}C{^Ts`2lL-ySW3j0NiN&Qt|ezUn;S2$Cvb0Qj~|1Pc-1ZFR3n8)npuJ z@Jq$za!;lDZV@4j%>FS=i5BHm?_>tdJxI+O8a*yJNN<2z^dF?TP*MFA&F3=omBR6k zuc#p+Xc1Iu?|R()6}=%+773A#byXjtOCr$AS{zc2GQx+rhySi3XVQL}5XEKOdYEQ% zpoq@HR2Qpx_FVYC;tp_tilEF|k9!X*Si}Zug1XC#XEj8`u3r?l0^tTa`3eKFe@#ok zjs917IQna49jxm`Jzn^l#>T3uMe&iop_x2f&pGGpAxim3;xJ=B=W%ZBzWJ|4t*Ew1 z-_w|mA$yCLs7#-uJi-GVd1!fyB}9d)^3ZmKX7kgW3Vt4Rgbv{mRi|i1`3OBh)<_sU zsvHVgj`3BlUc~)sDyUfjD~{1SNozKEjNVFKNXPW!G#4By&IQM*j=W&uL3fjH<8dki zk9eLDO?cv7(TJx{(38X?V0g7?z|%o$ARZm+LNtx7i)?nafXQ|dts!cL3iRI3*(XF- zfD6S&3;vfkn={0DUc)M3N-bUIm| zoItm7DUv9UA^)VdbI-c!n7o|WxQAy zrr8%|o5M8M*;2}VoB#8(b4JLRrft{E3M0rNvlf{$YX^&wdjDyfuHi}7@ZYHt&lyVB z_M;KRy;TP)q}Nh|*3hQaOVS2v)8ZzPcK=!0P7aM0ukTD>V+y(tY?_$y6zYGJd;w)LtLE7pANV$DuO z_VAI2OeEB$1%t1Or_IXz=ag)N=(7C%8gFWQmykmv*aI3xA5cWV$%8K{CAF{$CB?zg6!1A5@$9nv~{i!k(`Qd1PQ|{K5VI4ZR&1z^fI!|NlV> zT-4E3`r-Zm-yFdIGbZ$}N%cQMssB0oZ#$tVZ30H^v`W2na<12WH7!UI zVw!R5s)iMb`jni&rhh9_Z(Gt@A zFb`c9r~#U><^nbI)3FP5R)^MBC<2SeQ8MkAqRce%Cx`snO8GT~>CaiQ@S1jVXuEsG z!kgR4jc?^)lT6Lp^_!4iTL`~(wZybjd^zM-XW96sd$o<_uRh1(R&QpB(8O<28CM6H zo_s8#Ka)vl1QypzVXDZV9NM8V*$$04cW8^ULtL@&noe@)V{LJ^H>_AVteqU%QGtG7 z$@n5+I-QEV`KN1OL9O^9|CVtPA<{J6XwOCz7?E}CKFPY!*mvFxV`NDh6X z4d#=uI>QJB_zd%~Hk!q0LA}tY+HgK;#`@?8=^}q}Xtzf8PqkTns>%AN0TpqiV-;~_ zd)9^R*3`moZ7iQQU~PMr%yw&Hyj!FGZXGtXXXXe2cITijCNcmyRIlA6D@q+1KQQzp&_pci$n@am_b(H11^?}@*3(4%nEwo;MNf?w z?#PnK9tp)x%*=0Z@=MW^J2742mf3TP=1l81x2SB!)Tad@a%p&v3thZwJ=S(&mz}ch zX~tkDmd3tN^hxWv%bsR5c4quOk+n19k!d^6)nX;j1+bPUVXW`WlF42Xo0Qaox-QHF zHcaor_;Vav7iPwNQPhabyRce*TEAM<`|gZm0Q?S&sNi*o>@?J&ow5>eDfbV3$0@S` zJD{*m>xf1+p|vY>@{1*1nHd_Y!~BG}7!c)U9k$uSYb-B~g@mV;ss zwP_Ew8!FWMu*X~|CbPlhxD_q;h?Qe?H26+-D~ z)5=Rzm}ZJDDfVc^UWp~(7b%S4l5`e_88bv3f7lRucyuwHSxKYC7ffd{QT+A84?GCl)KJ}*C6iMYl=?C=VqX@I z6Z*1veo?G1;}?8ucoIZEulA!3gMB%_RQF?g_M>7ES_$-{1=IU6eskY4RZPHp`?1zX z44S$c*@W(XY&ir_%21St%_Ams3|TdK`LPBa^(-CT8O)FpvEEwKA2ru75@zXDiuD=H zl&D07S_jdQ{}$xXPc_wESZG! z&~0JMp#i1-jK^wi3weaTKU)VjU${TZ1s=7}V!5%}K*B++$YN>4D558eo#WT|X7a%B z3!;eI2h$ilK9D80RJK(QV#&O&G>GwdVR(=t0`BYBE%@hP_6;~NFoX?9eGapea{@0I z0Rf*shs6Q7c-eOFYf$v(u*0}zC^Lc!y@R-%4P~DtDz0KHB~EKD)HxmchbekBI84=1 zcd=~Dyq-y1nO@H(kw4RY-s{IW8<`BXXupXqfm)Q>QDgPZ%m-eqyO~WV?JOwW z!X}Xm0=jNtCUoAyOr%{7`fp(+P+EOVO!M7&D@)-qX2%G2n%_vyV`(H_LTNG8=l*N&*HCTElD~ABu@1!Q&zLnqazmq)x73j!k zlfi?5e8sLb=d;%5QX12pu0YRRQSTdWV-)xciP0>dKcyJW(#Sa-T6=NYk7oPZTzzY# zVf5d{ZY5m>6ob@^nRl~vXjX3@&$^qXMBI37jT*ZO=((Hm=L5E|jd~FS_ljmTjbj!Fqiq};0baB`CYsPUj%5)Yh-!=vR~N8c z2&1(?8IN@wKOQJx9+DuTRLJuA!9XF)AO;J13Ynhhb5P_@01g#03$LRa&oU!VlT_o} za{In9p$To{`RG)KFR0zHXiV^;v{=;Rvhhqu^dj26=kFWFvsegY-FTKv3^~{^Ua@=O zLaN6u_o#hY?_p`Ao0Z=@GNAJwCULI1N3mD_cKqz&9;RnWm%0dz#&GpSrf1#M_;ch+ zeq(|QEfaWk?V5o0s-!W&hPH`JPrBuyV**PiNmg`EV43_e+ys`vy0;;;g1zOutp$mO zyt_8>7I-W2(upjMbk9NeM0Oe)e6D+$3EJF}Y&3?^JL&4!d#I}HO4yB)73#U}WsgJ&p-ZG8qV#V`|aE2p?CgZqbmIyX< z6tm@#ivghSHX4)iP@KvJ_tpXoLC`$@HChLParU%1(`L=pZjm>pmZD=S+sz**Ok@1$ zQ1QcFTqf#p!8Del`QMFVDb`L?sw-?o@ z&q3)X+9RqlO~TsgY+jq|v0RiaC2VkqG=iZ*zl^YG}-n6l= z7wgMd+CBXuOCLd_#y%P~IcU`6q_MAeN_qL5e#PbY-(NIq>e9&0p|P(LIu(Sr`1@Hf z?|x<;uk3l%zuq4uy+AaowMF00qM)BXqioufN^NyF+t^Prdsjg3#rpeMa_@}DmP9?+ zY|PMhfvr^FjpfFEUKD3BL*i9Nn~{#zS&G67&T3TxEtAhkM>lV+(C+fVWYnU67E30X zqSE}vwv)@KojRka-FJ%HP4>%i@ov3i}GOH8Jl+abq z3|Cw3%o_BTv*dd$5q%{H|K)mQ*36pwVA1^#7BAs7TQ-V~naZ~QauQfXOm{F-ugG#~ z%VANq>}AVg5z*mbhD0TdbOmgc=y5P}ugGfs#b7O!80Od%{dYOG{yLN%V5aer)zikN z#a}KPTYp{owEO#&m6w#~Uc!p~m0-{n(7Uka0o5bB67TePVekQFNL1n=S7_ag;)BdI zUWw|oF7p62Qh52`nje}yt)I3wxvgS2K+&9+qaWbF$_JTwd}P_wU`S(@8o#?t3zl@Y6z@RGpCJ7YOIM@Z5hWL01{fpbB(9#7r>Wj#Pw$5$mHmJf;JfolE!SX57`rThNd*(7t-443S z=mv#RHK-DX{b8o>HsmU!9a4erhcDu5jTqNyeBGAuhE#C%STb$avl|452s5kS8B+ha6Ld9NU*}NJ z7d==q`x47@-BlFYb>S;>*3gL9DeoNx0W;?F9VmB9l~?)m)kyDrH9R|?rIBHxFFc?9 z1Y}qa2LHx>BE!>tfdydh(A+wQOiSN%#pdNLL z)W|MR9O$j$_uIPGpnVbB2n`r);4jo4W8UTq~jcUBH0v(UD$!gxLMPVCn ztf+oMjW*c$1;61>uvnHBcd>#yu$V1}Lgh7h3$DV;aTQ|25|)o^ z3z?zAjhfSYOB3c*DuXYrRO5}6%&eYrwkr6%I`n@>&3L+!8KDk!PcrRgog8eZok_8J zv_8qw$Vh=-oJ)vm9H~Rslgf_8^CUB2`7#!RpFYV_+HNjxEUb2m28?@(=^_^%qcx8? zFNo<+G3`O{C0*H{Vj1K%3%Z|TnJt6WI5|HL15dGJc6-F{Q$rz*w*{-8X2Wsu(=0Bk z@pchyPqS>ORB!2(&!llY%Hw^S4d$tP1xv#&OIa_dL(5BIk0>65a`8A^`BG*{Q4c#C zZ_)Hqmb!;)jL`IU5&cUUe?uBx$|m#JBhOW!>lro~3NiQ$OCz`Cpl%tDKP$7(UB-+m zi54$o6m;lVrp7Lpu}uDj4gP_J6U&$gO&DIr^u6?{DACl5w${Q9NBL#^I;S8C9N6v(5bJbYME)73Mc!t(%!z zd`*p>HceyPScpM4%jF@_6>K8}uzrOSENEWA_@@`#)0v(O$Wz}`HRe0eUd1MZ4gFOt z9~#h7#rPu*<;7KFz6Y%g(X~?LrIoC_ZLI2UKT4|V)vOmZU|^qU z#@uRF$zRvFxZsZUW4M|nlL8S%WOsHur+JrSwexT7N^xU>U5%TqMV1bQe-#ufuw!}+ zOD2V)y1j2t*?7LyuVInTIfTB{&N{y~qU~9B*(1|k z`gx|~nrxw{eJ&|^4J!g0y4JA4WTJ@n7gz?wqv;vZi1Hd{ga-Ay9Gm|pig@b_%t-DP zluC+Ny}+u;y*l1lkHcSNLJdqhO{37c@CK{{PvNR5}PG*U5)5;>J z!-Cv6(TKLS%CVdGe$jx-*Ro3RYhP#bum{?Fw4l*mie3+!+?H+Zr6{dqliPf5fP>xZ z82?B^a2?~10lgkJ0&`zt1~Mf*0&~2i1YWfo?sY61O)oPuDK_%YIwj-um)Sc0Q0YPb zXlgy{0Cu#m=Qr5bGYRZI`+6P}52NE1wmotXzgSbqZ)rYNiFyFrSfU2d8cU4IVQ%Ae zhkD#8`ubbrnHfn6C!61nojiP+4AomgL^hI3D<07NkbIbZH=Uq zH{Cq)h7tYBX3U;*i5ZSWQX+WXsmJg}mP|_1(NoLPF{f5J4r}7SUA2*W4y}fxREOSL zmfe>0r53JzyCHj(#giEp^fz*gQBsH2S6KmWe2o>5QXPh0Wd-1`ex2!=McrWpU*Na} znX4qnYs{qXFy+SEHB~fP3ka23IHqx=pHTfeQ zD<|NMW!eIiDgK$3nJrTnVD7R7H_*U62QyS@GLtrE(q11RDoW z){ZhcRQIkDDpuYt^|(bUIV zqJ{IN>h~2R9$dta=h5?l;xYO^VCm?2pLHSg^Rx<<#g|pEeZb=Qhv)h;JrM&Ke3A9& z7zFK74ZRo{KORv}3O;19P=m$~6(g)zu<{RCCi$BcJs&ay)L`93MR6aobnaCAjT+JR zkzzd+XJa{s`_Z2OVyeRrv8cz4KxTw%IF3j^Y z{_QjM(@=hv2VS+4pr0)!3q=&)5|eTByDSdxT`20J8XpkQ^D)bYhUzE8Wc&%mbWGmC z5)&heOzUr^Dhzz?wjJzbqQdhne0fRnPFBEgPQ1YkxP2!xku~WU+{s;m>RoISc{~s8 zyOfo1?NUrh?Jl+*!m34ae!`4UgSM&sQ05ah1nN+#5EJmvPuM-ZB5FkWlN&2FCvb^+ zajJ2N7Q|j+Rn^Ag8dYCcdNKSdGsP;+<;Ep>Xxz<4M5Hplf%}=s_|a|_i_3R2{>;_# zwW#NSk>KJt3lgFlmsFxu&&;vvow>%!LbTN@+^;-;an`eRaHvY`N$sN9lUl6wNw+$h z$|iL*&sfp=88gRfqVZ%6IzCez0RLw!gFL0~&zcJh=K$$v_5Zq1na zcXpCIouirEJuC$p(6)z_KvVV8Opkl_uwMMTWy&WLTS}*sr$nWA^B1f?c=>yo0{$_^ zvn(0M?PZl@Svm&yUIg36D#`M6?vE@W?sT*VSU%!G*2VW>fPE9y_RB(_H(~8Tmfdnh zs4@))hYzyhxZx`nhu43_?n{isY&EW0tvOepH=+M4W^QvNe^GJuA$DuGYBeAo`C`XK z#b`goa@(@(MaZSs`TMs+EC-s@I}OQ)nM77w(0Z6WSYR zW(g5kbq;!aQWF{)nA8HRL2CocZpntx)xg?*RIqVX6V^4b0tln{b!1!BG7Ua?>+4)7 zzh<412Rzmq0DtyUA>$R@U$gACcH{FVvYPaX<|8co3T$XS%5rh{QDw*GK6*uBH5_Gw*$Y>o&9N)4 zjpYzkCyEP?F+H92dLKMxhD4D@Co{0~~tzIO`I{ z>FN4_-@Q4`dhv?|{C>?(>TiX&vQIDrdBKRb6O4Z!Na4#@Pp|~CM&OxjuxmURWD?Hf z{}u56eEdHQG83K+vJ^bbv)Lggp&`Wh#{nH7))Vguu>`R5-+cS6fIjD-00u*BFnP|X z!mevns@WP9)238=jf2AIZ)AhX^EqhyQ8c3XE$hP8Mo#ovIn44c%Wm2Bwt_1-ICAT> z73}BW$k9tHSoa+p%+^QZ&#iFVcPv}I=z9q-)^Kp-M5eWNkYjlza%$HKPyYwYZnIb6 z3*+EmMSWj_ypDq-5zH1O)!(zhY(pgY)dI%6?^$-+`*&P!IXDu=Y^~kEv245oE1tZf zn3i&IuY%r_6R37;xOv{;y`OO@Mz(p z2~-9OgTPce!6hb2Vgelvi=rWrD0l;dVJa-ett|bTI9L-@WY8;DQb!z2j8k2m%uUC& zr3DMU1u(xq4JlKTm#>%RdS8F466KCCg75A99qJd~Y4V(pwk_|iv?x}lOaH-V5pq8iPaz}`6oS>Wi7^BDu z7KY8Gxfk>IUYYaDbI)F0{t>v>nz7Zh-kl}u1Tz6OmA=hU;;gfuqNmU`myA>JOfRDg zeZfca({fK@@)S?5{2)0|Q)q=Kj;Zrok{qWvBw6`r6GK{B)Ue_rnN8t*OgAy9WvSG} z2-`C7bxXX*wK5UNih;8p=4iCbNs-SjUz`BY(HdwuG{hoBlTGzOz2;N+0 zc;^5t+TQ%ml&-LO`-spdgiK4=-u*)>f$iG|f4mRi@^vRaS<>&OTILcQLVAMSWy|qe zQHsc-BshdATh|SAC#?$}G;V+5(~)GzELjxH%MXMNoVv%q*y+^3Zu!hFO5lA;5?GEd19@YuQ-Hx zqj=umUf#7pGpV!M=5aPb`7i>o%RZ4lL_pC!VK| zh6?&O@_*~aG{GU|7o{+d%os@ZR^8Dt`UPG-YUFHzx zJ-1FinGgS57dkl_=B(@fk0SVF-PC_v2l?w7{&6Lwtoz{~Z@|6l8cqe^yLGP9GvUc~ zdrmKbceamdoe3~-o$sH;@Ywd&fA%8a-`@SV{7yjsay@*Q3eTX_8}i|*fU7tB+zGzK z308Om1_VS2`gDT=96Sj6!0ABYAjl=~7J7%kaPS9S83Olofo8Oi1Y2TcU5jAAP=7E7 z7L9~&0CwQiT(H9Lfu*^C-QW-=UkQWgPqm`JLItkO^`ay>go!%>&MV;|fK!2^SHT(p z8&+HcRycvHu7O9P2{Q|z2wuUe0{E`;LqOihfb( z*FJ|k9h~b9p=calKL>tIneuAqaQBb8Y&l&k3cY1f=;IKICgIdFNQbM?TL#%rkpJ6|%a!2zD{;(RKtH`Foe#s|ZS>EFDS(0Q3!nfJ|5lsmNJ8-#n6R=ElHn!1uM+Ns z{%CN+Oh^h;xZ&mm7#IjH$!bVBbcD25-gc@=yQZwB@} z47uU}&n~xD2n>|Omqo!4$O(&7@Pb1abl2Kp_O7ppf`JMSp1%_>egZyBx@x_t)b0>2 z?_0MK3X<$NESBI9E;pcaBix+wGuIq$jL1*xl%lqR?-{Fg|+6=YjGk;pZ+8#;MN&!q0f}Stx?dc-3>T5FWtB=imhVgbmLF z!u#lW0Tx2nz$-7n5g2;OhD&4l>qV)`Ckjb&mo3!};j(+UnfSW1bg?W7eQQOb&(mYV z!iF*Ke1~xPj6iTJm)zmlvJG~T%Shk_Kg>&jTr|G|Gr@vOUxBA#eL(sPYy-%|(5tWn zKE=WSd=J+LMl?cY0*uB@Z$LU!2b$i1ZUnaBM{j`*ehK{c7CfH-A7aDXPz_GB?}F`+ zj$iJA(a?m_Zm_|Ffx_Le9pG{NZ4Xq#J%Rh)fx!tlq6x;5d<7RZ!I)0m9M|qi?&MLT z%kcVl!3vk*$tK8!bvT&kTw0+OE8c}ZuoP?Fh3o-)Iv8}(qbPlI4T9iNl-_)9`Mi1* z#f0H^VIeqi!h0|Xt`2zLgLMF5Onx8sC2i%4hDSMmDSr7rWJ41se*l%8S)(Yy%lP&O zV1#by`vCfM?i5_+8$f>=JtLj%(G5oi+@#+j-uj{OZ{-%x~v9=}~^Ym6xs1>EE^FnPQLfYY8u_6(s|o z0gv+Q)jS_s@=RH+C?$E6UoY45)44VAD8F8h@@J3@2^jnghQk%;I}Cl`1d4~@=A`S_ zvnN|T%8_QQI1IzVq*dj}ptUm(7FS@ms zmAYz0X{<;2<#}vA0_hjsSj%Q)){0WTNBL!=R&;eOn~_&5N}WB*FHd3KQ5XcdIO`}3 zhwfN^6o!$b3ci07hV?l5Q!Sg}trexg9_5$$==>Z^nEp9fdmL42*$lZ>l(Ia^FH?C% zPLHEM*0LE5wW8GBqx^CmuKyft5WzP;hu-Ay?|j5IR6d99iDP7zR)fKEFm^utt<0n< zv@4K~MaQ6fN~X;EheA_*=Ki~cjM!A4fM>BL3hCg(7osq{UzE?XM>%qsFZ|w3;m)iOdU_vr{mNW$5&jm1 zjIph!hYEu5QD=vsOGWBOwk@YUO6%X(cl9YNL`hjMO3E(VmS1Z{skcXI{hq_gqCh>$ zkt68(0!(lRR($~r$9=@*?xSfzp;nZ*b?CccnBU-0T6eDR>Wi%xrC6;f_46pLZ)ocT zm(SJ){+m02T)(yq4vQY8^=X{&C0q%!vHnZQ_4I$>GMBJIl%QS|l6Ng^*j6VBeb$RY z@2?j&1o*1{h$sP9Ke@~1b-aw%@$%rphHbo#x8rR*%5S|n4A%x(6pS9_h?}#0*YszK zQ}R#F;I?ReVzBFa<{RNremTgeMJ&hLz5+Y>4e+tAU^MK;=C5Ele1+Y=hGNLUSzp7= z1MFvvyB{CVda_f|$KIQdo$IGZY3+i)eGN9~ix+ut#a_ z`HDJYhZo@BZ^1(k?~z=cYP(3?*Q=s%`hI-#Tj&GJu=!gUowl1B?sf`xgt^i8D9Rh$ zDe)+W2jhtEpctOPRo_7_Any4NvJ)SwWivBT`W~!_ojl5C%dzkGV1p%i)%Q>UvvJk; zkPVaZOu*p71=#dA7!CWd(~mG38qx71j81vBmd$Kz zX9ZsaKTARRN3g={=;uiyhJFO)vI(_pW~i4SNFJqSWycxR_}ALZ`FAEVz5Eb%k3l+Y zLwgMRq`oAx^p-f;kAJaK@F>ksj?O>T3unb(SnnAwkJ9{9x*!NAZCk!rAxeWnwk=0w z(+n5-IhOVKQ4EGdXEgjB^5GN~{vEPmDpvg+P9$y}EeHZPeaYzk39J_lky-yLk8<)` zS(K77_9`S}@F(b%B*~^3evfkUC?5R@tYF07euC_zuChsTdz6!VwNe2m{0!-dr)$|v z7s?C3nE3G~nMtVp1QIQ|H`6UO3XZ-W<>N19Q~wY;Pl5^7V)$nmo*I%_|E6977v*n! za%XRnM>+Wb7iA3p1j*<)3Ef~9UVjq$KqZ!+1Z(2k_g_y!_r#4d z>tBQJ!;p^3N$3u>f$sl+GDsP~xhpfN(_aSK?SIMP>U#1@tT_c&LKeQy6N2JtF!uiW zw?I}{p`*7+LqJz)9!=rqB8ODAGYht3z(q(nn7x_7JWx-+aC?8&h zSN#F$@IIFFWH+w*1BOFA2LFKJDQ20a*PkhG9_6FcXiy+Mafi(MH*;)R?AgO4dN1)dDF@&v98OaL;v3)~Zs4Wt+nr^qb50e?s$ zqZ6-_S-K0u*F%3C-<4bhV{vL%vMuo~nWg*D`xqF>K?O6rksNa1cXV|lqv6NEW8KIX z32*?tJ;^;#h`;qDgOVEeE)F~I6MbH^i=;n!(h!&+l0F2Q(9K9TT#r6RieObB#>nV| z#GpqxFcs}aQVcg?jgeTB-rU?NnBq|m^h3Xq6hU*HiS&Wx*w;jQll{M9o{3l!|6H5= zMHr{@pJ9)(zZ|_LGW@bB+^p;>atL0ZOBz=6$DyY>xga$CnOvJ{fA@d1IXNucJ2)oU z@=sYe3yxmvMM|cm66R{?>$f98KDEqHKvzZJ}99hd|#?Wad+ft_UNtJI& zZ{hYwo9Jz~pldJG2VO`eTL?Ue6Z(=Valv^1CT#3WauffoGWcX)k`FaFq8}L!_h5NH zGCI-J&esnnW3V5|g<@>&M@B;-jjpmjXapG!>(DTg*dRS%A4#%F;=|l=3(U$TGa+%f%p@7# z&m*}|h@D1};ZTivqsW!87?+MBeIOm{N0HGNxn$PgCnrlzkFtkicofNnA~au0MuP(< zTuN+^gG+hNhK)Se55t!dE2PwoCfSgL_R+)&fX>mx2B)!#=T2Zf&wYhKp8FibJb9pQ z3>lu(#Jxk0^3HQOW(-M(@#q>uY;YCUj3L8eGrl>7WWyu)1J6B-(q+U3xmd`PyU=|Z z84eY=iRT*e{mV#p(w*95>^5Mhv1HIi<7C#qoG;5BW!En_W-J*FqtHE;Sm7&_dG2D| zGnUx;^{!>5X0F7t=n~crv`aGKzTU1T)#@?q17E`Tj1CJ0chwOZou8>+?w; z*oNi##0o!SO+Fdaucel`T4ke4NXS3cch{0FOLTnTQFd*>5QqE>WBH`dMSEqI)~LBA zyY5A^gA5Pq-AzDg8rSl4}LNbnQy6Wv&K~@*9uH^~K;7 zq|d0Xwan$)HGRtx&cAlPz1=7?N#gUvQE@}dQE^4nllbvu8cVj@~Meq@Pvw-BMe48BpdF-tHu!<+>I6Eh!yU@RpUsXM5`)1 zYRlj_(&y@FnxyY?@VV6nbE*#?%z9CRGY0b&-x>0HKG*S8MO(LaU5?VVBscNpT2|_< z8$l)n{MQmIfqO7?J;{bI>TV$WNvVjT8;A*{K+6pzn1J8S(%2#;2o`?NB%F_!_x{;K@4Onv{ zslKR6EEg=AllydLpzlqjG68M~teQxUTN1C8Sz0r?7m*{0OlD~<0q33MLkWJui|fb% z_z6$ekpk#}W00hS30+85X3S6z0hmL$XoZ-sc$60&;u?Htx|$ z(i0N%WY#|u8+{}_F-vCs-GQ)=RCj`jf%0d_l?G@CyznB)?gS-)qc4%00TQb1+ex*3 zJ5M`R+qWlH+qZWP*td82%c=l44C!5nAO4NpVGh63n|@=U{oKt+k+*Cdz~D4${2 z)(e8@z27haD;683z#d{Z)nnuw$#1IPNm60Xv57 zQVY#@8wy}dz;(BwC;>(U{C_em0XQ1S^cVsJnlZfGPykND!L`dJ^zk~o+Tc#ZXzX>rVRToIQ-ko7 zV9EUk9>wt9Z$NONd8HxXY1J!rGA@+fs84UaUY%V*Y0JmU|LyeOZtyP%{Wt49&7K(N zK>SZRxU(<+-7d&)snZevQx5Lvq}5N*rs?3jAw9392j5zy<>%`4e{Iq8T6*v;os)A_ z&QDMdzNKkQ8^WW_XCplN*x3l9hO-eKn8L)V0hKDT+1Iy9HGN&bRSB*_^kGa5_P`l?GGhtaLu=gD%_z?A8GIvvX*Br=I1q>gF7VZj9gx$!HZKh_~lx=L!t^7 z|5FZ$`ot~QHE+2pNy*BgKAK1!>Z>E}_vYH=$=55*%XP{x)h6K37;T~sjkzz5l>aG* z#^{_~u1Ub5>t|`@6EqGUx}g#CZ!s7H#~v~~H>~r*I~SDCpN%Vb7ZOpgYvOI!WA>(P>c6&||oFsdzE}^#cB=|9UK7{FAu8t6Ck{S}l$N?dOj*;>m@H z1OHY+X9m9cO_V!<9H;{7CgRPr-O|vZ(lGnbT*;nu>4-pU0%a*0{vN6HAk+uKsZ<#V zjzIV-y1W~{HzKK$(LEm-MggtMj1`yEu0JUQFr(zczdoxV~H@a@7CaA)yo2iwmqACai_v-{D za(y{A+)S8leGw<)RUn zO`-$%`gcFe!2OeG8i*L1L=W)2d@(J8auiGGtJtH2rsDAuY6mxplW7()HwGM&X=g&r zEf}6DrX)nnF?3C#7S=m%jJVq)C=rtz(wGnP|ixr_k3x#D=MqhxbD~ zsY2&hq7ALL(k`U$0lpLz-bzhWU2NNj($|abTj@sdqBxCOp#kmFs0q9n%Vb8JHjO5M z7t5#7>^4U0Wc2l7>^sqjJEqaQ;^5<_(rX+3oj7at9Dy2puwW!6oru6KN zD(B5^>nKg)Fr2nfDK$X}w(y*ch8fgC()^gIrXeg;(-@Y|pjHsEh9`E6tr2Z_UMp>;6qyI_Kga>9(0~k};9@b}XDt$C8VK=$a)O@rl_q73|nJo7%vIVV=~WVGhk8m-x{> zhh|~tIh3J$4($mB^vQHLxS@y_Saq2NWSjE*N6P3SJ8MPSBY8J!O0 zD3#M|h^+~wySSp1tIFXkr&cJ$U^(?bIXdRj43gP`auGG+vbl5|h+Gx3x^~qJazymj z-9}GvrMit~gNV{RmFtdqG=mIm;Sw)l%{*!X5q#2Zb7$O!^o3D47pV`^be;N?D1!@OF|^ekJ9aQ63OzT`+hFGx6?A7X}z6Rf)Ax} zv>ykmyOSF6i96^}aAN2VZaY!DliG0lLYl`1J&yM46&a>2ieX~sGonPY3$bY-Ez+7; z(Rxr6apQ+#7aYHcrgDz)317B|dWqUWB{X$a>y-8p-jacL~kqw+9la2@fox64YR93AKS8%~h12 z;p@ZmqPv6{aX}SLg>tN^qH8#>s;QA=i)g=#9)QBSyQv8zbS@J!aO~Z5GC0wDIq&&y zItrZV`kWf^kGttmkkEb)%^*3A==w>t;Np8|A;}G6@E$scWXCXbDb3-jYbnhJC(27{ zE_hY$9$U(p5@=mYtpF05mr)y+zh&y&o?-o$(QzQ5v{^KvvW%MGGF&r5G+~y98pyyH z21im0{5kbBRVAyPQ(arR6k(57J-F zY>;B9arK~X8@1_p5%zuDxAq8Rd-yjkcy~!-+OK*y`&Us4W(=>QmEcm?$bEtf#=!!(Or--`Z+X?5FDsIMnC zxUg_FwXhq)XIu9hTv)Z5S~W+#ooP3?uz?rH7xH#2&8w-6y3au(uAx?{l5!Rj#~Ny3 z^6E)Yj4A;C*r|=joFdpWCNFrdIG_rcAR)Q3y+9YU9qNOsyT)up3iN*>Zal>`oy)=H0qq;a2W1`%(`Rl;@Nks)O`@AIumC#cdexs%veh)xKLh8P3NJf zaV@n{Rr$_p*|Js@RYNV!A~*UmPff%4(o{pQwW}@))YQ_RBu(8_=^;HqiQJS~F?Yf2 z^fq5*f&&}ZYwJBvYB0Q>n$Ws|n()|q%CK+)?Lj7lv19|aVeSS>QQn}s68;U;1|>W( z;fW1Y1aDm(wc)26M69D-Fu#uWBojmEtfLv2QAZiN>S!W9Tt^v5=;Odk>ZlPv=LK$z z@q&GIl%l_mcEZ6(yOK#k%tM+*CWWyaX*T8}rPzSf1P%-$wLELuM$A*wFuHuaKOd#& z^HD40VbG_p3F1@KT=yh3fvo;S`;*j2TtO}4QZq3vBXcMTV<%W|-1Q_)0jKu+rzdGY z?qEMfb4Y2URyN})noLU7hE~LXnvYn*bLRA zw@b(LAckkrWSsgm9XN1C2R**AkwYqx8?}f-jG|I;)VtDmMl@YaWE5@v0p zJ@KMVv@2F_q9&ZQiS|s0Os_`=&v{;>J+a3onuNKp(H<%ov|!C9Y8}wQtWMHmdSRk% zm?M+4G@Rf@X)85B3$|?H?nOX+hE4-As}bFsX*HNpe1=-lw1v9Cr+E?^w@^1#U7Yr@ zmgS+;Kr>jGI;^wGOVsiXd#18HlpCn6qn?%JVG}P_HTO&`bfx;c1!BdXiNvOH|y#U0F5SssRYaR-}HmWSr&sD;h#FsWsESg4kFn9s62ta|QT zyUaU%PTT!HMa>v~j+*!elm8ZO&r_)I)7uvB-(4yPtFr;JeI`MJ1$Zh&c-G7!AQ~JLkQYUKM1t#i3batFjoo;<1 zjJS0xP2xWKc4{2fk+$jj{yMJB#k%=u<4t4THfrTzk8RWjj=Gn4>|h%;;Eva*h?BNa zkxXd8&^BsC&iT(5IRcUv_}J(iZ4+Un9;t9JIBR^=y-`5*~GYfX;H|?Z4Frdk}6;FOVrZ8V|AQ~ai-qZ zjG>pPZK&$Hw=3A~swGjvf^G{{4_#0q7wZ=Gb_Zs@Ol=+GI}`2bdYPKiH0f=d!Skq& z>lJDm6$jIY5Etfo`bH)`7ahwdWuo&z?gPI}B{IE5l_H+H%S00vZKvjO|If4t{oAP( zoEUzQTcg_=F!UFijK6KCz1i(*{JfoI|K8Xy|IfzWZsGnF4>bQ$2@Bc*3n$NeQcM|r z&Sd=8CHs8L$YKlCV96PLFrfGw@M*3l21s2l$HDD~!XtJ^Mt8a0<|)WoaL>E(jG>(sW7%^RSmq_#2ev2l~G zO2^Rv?ZtzXfw=GAKDrLeUPsnXbfL3RHEnL5)T7);O?aI9LHipikEaD2)j%*$(lo7! zZ@waJn%=fvq4*lL;fY4tlf|ur&M!U-;%hVmKWU^Qu6~VDkkR`ZwL&@iUZZ2lgqFJ3 z)u5sDIxXgfA5%-$&blFXiRgQs7Pm>5-l3}=-EUG8)dWsA9ZJO2TDOTBnOi3}4qcjw z_BW_W+o!cdmzHS7XW1VmQd*-TxkF$6+K>d*;)S}u*H)}`d1r?%XJn$p3DhiQ8}y74 z70D9aiHswep>?^S<8YeL`8to!y-92MI$|Qlh3I^X+Q5yz9W)2GzD4JP8_hdt0Y5$1 zLG!^K@a>?LaK`G>BO&7UV_{Hr{mX;uF8l52hFn&bS) z(5<}J9B6o(76aA8a{3ND;&r3An_Am;WxBuQ)xk3K)!yqs=WbfeJzxv9;NIPID36%V zV@B+;hf@A~51kHX^zNbATBy8TX(k#lxJMP0@EJfI?Ab)S1|*~J9geAPFUzb$u+GufX5{)>%iH_@75o)5-+ojw2F7@zG*nb<5 z_ph{iTnFyQRZm~I+N@7$+y?6gqs>a`tLcmqbiPlg5BM*m!{+zZ*|UE@v$>)DK+UOv zsS``Yp16NE?UKOJ#?D_;8bt5@^R_8%Me#s;P36y`0oNR$xwyZHA0i!~CbaCKX6zB7 zH+B@h2`%Uj(G2c=$%m;CS01DyW__j}v4ui(`g!0T2Wi%M;hn3P5qBJ<<2p8SHDPG8 zC}G|qYV5tDLo~;wGuo>Pwh@;dqDkCix{jYd9HIljtSRsDL)6ZN|3g{~4lMsr4Uftn zs^RqDhx8iaYDFm^n$Y?YH6&@ah$FRsqc zIZZyHm-FEAr)v0t>rbk#n{mkaDmT%9@~4zPL=dx0_f;;P?pJ$Ck^kdWKbUaVvdHXSX z4SB2?tB%op9;N1Z_aCDM@>rP1`>lb~$EXN=uXIwh;_+KWGvS)-|PsY9HIPfqJKWe8=-5#j;^R0kgJK(O04WhO@SU?&;bBGbgkz$ z^h=rs4FUI;GzZAj;XuPz)B{kCncvVk`1hp8- zns2ECBn*A4o^X9fm+%v=Z^aZ(BvUhRk!Q8-`~Pqn=>9!@BLQS=`jH-hDy%<2*CgpX zg`z67$7pff*toR2B9Uh^u|7u2lG^A+!{2G{8QH?W(|k``E%#3Tr$?nkSe%`4=O815 z;!o7*iI@MUX{H+HRw6b%sxn?@R;GSV6URGH^PD0^JvC|VrbL`NU?1IUaq3a(c*FlR zb^6ipGacL2sl`|#Hwx(dnHq2Dt(*T@`uXh~{cwGb9_{F?*Jo(a^T;K-$x$X(a?kyz1@F0?Em(J{-+)5?L6@x|8^R8eA*l& zeOK7F!`CCm6ZDAjcs(Kzx5qBkQJTOv6Pk{d>bh2{FIuI#gq7+uANROs=x{T1xEVU! zL|p?n%-9D!2R-wPnhcuns{yMp%w07Z3b+T{N7Ld`A8+8W83D8}}h<=?o z{IkxFXY>_E-_%FUL6m=^0g$lpcbY-ojG_B?^$b$=%zOMnOXF_kTN1h}L?f>LgG&7y z^bo;Yx-0XX#*el*@SCj|`h%LF0bBl{Hh$)&&;?!FTcHbBGCrozZfWXB<9|vds87^R z-Cpi&S-bq=PD*5_W9{;*Iw{eYS~uh|n|`M!64d8mXKaI;>6ZnRNKhMO^d-jzA1ea) zh8VL!J-?e}MmsPg2?kNLGYQLq^#lh>gc;e}x+uP_Pr=*4waYK=u0-C}r($Q#+T~+9 zDUn^7C=zDr`nE0#Z#SVUiCsf>3FsxvIzU^YqVse{@6l&=w=T)M^l|Ot8lZVL30>-QL~0_qsb1>l0Y^P+fv{>zc7UevsR9e&wv$6*^;; z$ZmajyBo1Jfn_J@3bi|i_D(E^y`qnLkFGC!3|Q5PAwPsqWEo^n;~9gC|0$7obn$#g zm#%koV&3s-yo(Q>kFXG16IoAv%N=<~C+D38G9{UVWbS>Wtsph?!lOEzW?wEm+bePJj|=(x)%(qwmw{ z+^6$rAD4Ki=ru4anAa{(PF5mKx)e0&L^Nr$Z(v=? zK9?p}@3vrG60;`hBX5dvu_}N}Y)E4KtjE!n<=`Jl>~e7P-^<93MhtdkHjSh02OaOZ zv9&AXm#w63EQ7q)goSDvLw7f(-nUDksrXViX5^P2lW8hO_-}Wek)|T;&WzwgyOEmF z(VbbyUqk5X&TRbpC%;I&tvfTMPG7jFbkXb~i%To!&U%QyL*uxp$g@1s0Cj&vvH7Dm&!~X?|{7TMVT=xZoHL>Se(jElja~gdov69tQFn8x%{Eb zlRWhEqy$4eslpgf>QU^&EaY$_+SRlfood>O?mk*mp5&pQCnXr-NfpNWsK(UXms!Y> zAm;UD8RSS9U45CAUytTVCi?oSGt$HpH^%xh8}94NXk9azD4D%ffQV=P|V3A{ue4g$+ftFcD8!mR>m*tOIDUajx}MS zm08HK7?xWZe-$9}+C21ISpZ6~T+#}8l822vabZ|u1yF;TX)J?;L+DInMiOqu@-&vg z!m75m%R{&seR_RkT72<2t2(At*QK!(?AM<${(3`y36X?F{aGFeSks^FiwjW1f#Gy! z!NuvU6sKRz_!EzCI`hPXx)A}x7c&!jE@m!Xbun9_B_^!AggN3t$B2N9moVEItsGN$ zc=i%D`3w+OhN@q@D)2-G%OfPxjIP5xQkcmcxb+g&B`|UTBMJP~#JBu3w50}}gPDbV zA4d0J)o9f7#DT%V%!W9aCF8GySu(#3HiW-d8O*QN4`KWwrgI20vLDoSp`AlNgt2M} z}={U`BH`v!-^q#L|s75tPV}h3L#?8RW+>zd>rkHQCI|FP_=iSaPBfopx0) zVoPWSIT6I5omt3bIs@`1-yhqL@7osgJ}O~Y9R zF$FO;oSg=5T?Ng?HIMUmHaYxW-bj|(1}mU*B(rc>_ejPAfQ}qh4Z@eQtMP_hc9>ti zzLbr{IeE-QPWgF70eA!ADAp6e&g*u9TQ5a%6#EpF(aa3?x*TT2tTF7}RMj_Z=hq3{ zX*$)2;$^CNwO^(hD)DBPi=NAv#BJ(jY#RBk`PH#(TPJ8h{}oK(_a3ig)lh;`Cu&CL zRV)B5G+fQ*kc2S0uV&N8?|uwj&Gd zU!7>g1=q8`^G6OhurkO*yO|mJt>GjdEkDgH*m*o#4w)ER&g~^-JxQ-ZY#h%j!Hcf( z)QUT|^JfA@>~?Oki`aBxoSCEf$S|)lNo%KeV`!74d{C{p!n@ zNKQ4PJb+KYP3&NYYjjcSc9hrUUy09J1+mPKrS^xebzDrd|2 z`BgbvKx|=j%w?zeD>27=s*(kqw=oNl0bz8{WBer0KZ#}G6S=HQ0`DL^k6qJsfX<=J z7}_hCDXy;BSFnIF*7R47zjJ^+fOf9Q0uo{hYZKvmfBF`ZgsxL|y&PML)!a<^{|$a7cWE5`USg z?+Dwuz#A(Z-nD?4QZGR5kY>yUTnRP&Xvh>NYYbN#_VzYx7 zbTd<`8az4|n>`O>Ze|-0pR0dCtUV7Mw=+|!YW>cGtr6X~GwbB|-08IGk(hI6vo}`G zo-aF$(w&QbxP;9M znXT=i2H`MDbc7ZRi|SuIi1yKXQ5wmKSH_n62hpt7;riD@kp$(hf`W$RN^e$nYC@6bx!5z^W1T4BQyE88r*kO&X_%9e(Az_t2M_VI`RV4jr3v3 zVwOFigOuuTMbDAakv{Yl{4qH2gss1@vuUNsmiru z3r8QPUPqs&Q{R!-x%P_6(pf`hlrB7bVavS$^|^j5uR4QzojG|Ipgz}MF?Z3TirGVE zFPJsAbU}W6DswMDeV!d#IQlsCx^30&=AXOj=h@X|dEv}EX3t)526OT*Kz*Jc%kN^= zHYNKPraRA%{=1m5cisi49hHgUyUvhnof((va@}ze9F@t_-Vcjy24too=?9_`-4&zoItGe}I{x97`Tx`ZGNx+)1<75mtrr11y6S`uTOZ zl!RzuBZeMe{APSiOT-6R$5(vOD-3nAXu|0aGDG}gVxsOY7s^=0TWErRWw%vq(5|?1 z9u*-}w~FQP*iU#Z%fM-?*Z?R;`%_}S1Rj*~@~GU-Rm`5I9eG8s)=kwgb+J;Sapqnd zMDbyk4F+^P%=m3;HJ6DYo-?3*HOnC5TCij_k4dYXShHH?aA-BZQvM(_;NI0NjX#H7 z&9Zs)lYh1$dkqtz9vy3#ap3r-8F$XDSTuKm>c6%7FXQ7O0Ns8RHK2D5vufd(cCV|b z8U1V2O@MzZvydV$4=h;FC^M?Q%4S>f)EY)HyNvcoh!)jgtIVuzZl}&er*1s1Fra-c z%jXf&wQLJ`(Ojzr4GL>nE)Qa@Vrzi8oK&#YLzp7p}$dX~b^eb#FhU<1n_6N2d2 zz|>pR?hQ=+#K;Dwe&u8XE8}6hNz902>(~IO!O#KGhHL6r4U}`^a7jXRq8lB^Ec_|7 z3)%SIr&M`Uq7yZVXp8?8i&_Nj1hPyp{LAoIv4~am%tDHT+S$t_$|m#A5&fCPzY-Do zP(J`|ZbILm**R}ldxiL?lX3{HLGclmAO8@OfaQ;{3^KVD(sXU#f_MBZ2KQR`R=#(b(ZB!5A{PRT<9^c4na3c?lE%UM4 zJA4iy>N3|o$)PGox-LsmboyJDzXfd?toTjzQFHTURb8zT`hEx>yu`I%0C2wIi{op1#CxnGt zSOGuD*urcY;`WHitF6wWnFqqT@NnKN{kEo*9{4+hK$s=cEY=w?o0_nEuTNC3>B1f1FJiewIxmgZ;dj z3G7(@Jj+gt?}Am|Ab#&b5Cr}H!!F0#<;hHmR_HvRr#faz6rX&T^;#?U>cpF@U4B(} zCAwU@WD|8aV95*28eeTI4CsA<6+?-3qg{D{mBeqidtTIz$6jRHpa$iw+NmE;N-(rl z-Tky~Wo6((*EUvpxfaQ3dpqzqO&r34PFjr~=~>`iSUP9+qPyI)_4(2_GYhIv^s^sH zWn4o8HS>G? zdMv+9Ng|IrvEgOLKjWr;-R#)QjDHj^_A)ExT4=`U+gUx-)KyRmX8l7`9ta##8mf7L^C(-!^%nYzBvN(vbMmDW$ z+~&@gF&JPb5ZX|Ld0>Bu0mVjs5~V@6s{Xs8LN~H(4&BJ6>!*;swB$8aHq}=N8((AY zxaSdn*v6_*dYv8M-;Q`)g%salrVg9o_;FxZFyAq|bk==sLA|>}=zK$6!tM9+6MKxk zsrruMTPzb}Z?GQZ?$$VjcjY+{zBgGi8qMi%c2GUc#ZYMTbGN5gs9t(vA0<+)YRQCTJT2{GjYK#mYS++K${3g=V=xPoz3i3&ar>hFDbX6;7u4d2N_3^_aVpW3G4*0j zbY-D-Pprm;j(yCkf5T9`E1Jius2fPcaK_-p^{t!_8@UxeHi6WSuSUEn5E&jpE6^TE>9a8cvXKK*vwMe%39FhpIWi3nMv`oxa{1F zJ&v&f_|50)u2KAyWup5SGh)s$Mxh@4>qH&J+q|^;m(g3wBLf|9PCHkVpMIlgpi5RWid&;)i|xse}z-z8woQ3BTdL z_HqfgMVN$L_mzXJZ>mIyP0h`|WU#YzTm$;r)W;wrzsj+1|v9;}=ugi^VU`JEbLG zvK;nw2Pf&hdh~Jd_~}(UmKI(dKdNajwtvNP*rxblUVC}fS1h-~=7l2<@?zDBpQWdU zuUT%#&xyQOkIt`I4twV8UNA|h z#MWv&`W^c}U0geC(@+$ZO@~lak>30~pfq%7+JVw3L>byhNDv9B z^@w1g1yxi6+6+Z>gTN56IZG}Q5{gv59jN1&relTR6*}ks^Z1g z(bMzi`Ci|9eD1v^ZP48`mTTaZcXhOC5RrEs4#w)>qXN}BjZ!$YR|l{Bxq>B%DOhU4 z9A0mLUs}av1E%po1ANkVdK{6z*c>ZUEQ(fxaU^V5tO;KE>oKZLW=9O$Yl2U@Pp4dx za@iI{x8O4$MR8qQwyX5EuSH5b_sofaoe!-v|EXu525Tf{0BFAww_(A{q!`6lKp=6Vpub{AY!Qr3ezHrz8Zi+o16@QHVe}xAvk`I zUoRCYRtE6sKPN=OA;uQMfhF9KNEi=JcxeB62(wZg<3q}IU}?ydkk$~Eqy&Z>n3qi( zRR6~}hSg