python3-openvswitch2.13-2.13.0-128.el8s >  H aZ !F^(*v*!i]Cf|4 QpLmU 5 vYzr|ؤD Rs!4"vh!7Tlqmt>_ͺЁp efBy$zޱ+KRQn 5)J5qt IP/n·r3oeL#+VI*webDJx>S"`Cp6i2UBvr,I;B+۝H,d U[_07ef9011b5d2c087c356e869fafe893590dbf369d5bf210d4cbced778f6fdc248ed0b635ffeb1cb9dfeed2a914db7f8757220fb2aZ !F^(*vB2_=ʽy.|ʙ('9bqQƿ09 Vc?O$ 6?ȐR>Nqɪ^b/X @G0H@YSͽ{ )LwCչ5T502f!x_W_PH#9YNiӢֿ=&[B4WgI^A1w{=*lVz__1B0d:UXa)uW':#vp>p<\?Ld! * Hx| (|| | | | "| #|%x|'|*P*x|,h,- .(/8/}91 }:H}G|H|I|XY0\p|]`|^bde!f$l&t@|u0|v wP|x@|y0sHCpython3-openvswitch2.132.13.0128.el8sOpen vSwitch python3 bindingsPython bindings for the Open vSwitch databaseaU9aarch64-01.rdu2.centos.orgCentOSCentOSASL 2.0CBS System Environment/Daemons daemon/database/utilitieshttp://www.openvswitch.org/linuxaarch64X<:&ss8~8..rr;<";<WMWMTUb M M33ooxssCxx'~(]j@+'mP&ssBIBk k kCtCO]L?.Y12APM(8^-Mza  d 0^A6$ *AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤aU!aU!aU!aU6aU5aU5aU5aU5aU5aU5^FdaUMaULaULaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUIaU5^FdaUMaULaULaU5^FdaUMaULaULaUMaULaUMaUMaUMaUM^FdaUG^Fd^FdaU5^FdaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUMaUM^Fd^Fd^FdaUG^Fd^Fd^FdaU~^Fd^Fd^Fd^Fd^Fd^Fd^Fd^Fd^FdaUG^FdaU5^FdaUMaUMaUMaUMaUMaUMaUM^Fd^Fd^FdaU^Fd^FdaU!^Fd7f72fe6c6b5223c29c0bd6b0edbdafb7989abd7f7fdeb97dbc6ccf7e726824a76a6a7bfeccb3d60a3f28464bd38fb8978c2eaa53e4adba19753ec9cac0056c2501ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546bff1ff434043ad373019f742d29957edc463ca8296040ff7e0ed05d6ff1d74e8cd1a5a0f928aba6705c2570db38415ce120fb640a32c6a331ed4bb4629ea1649545a17e4c1f53b63085d8047cd04b3930130d12e274b74b5cdfc92a9723296f02e4b2e33903cd200d1d101580aaff9b6e892f79ea613319b89eba0048f202982be4b2e33903cd200d1d101580aaff9b6e892f79ea613319b89eba0048f202982bf663f607391274c5a2a32b50494acfea8f4645676fa490b866a8102ee5586749c6efee661d1e388f1356763f22da9d4370dad5f59e6512de3c7b0dbc06f5ab0e87f64ca5cb19931c50ee2eedb3088f69b7cbdb0f6e73d3c673e249d9898ead5587f64ca5cb19931c50ee2eedb3088f69b7cbdb0f6e73d3c673e249d9898ead55c6d1ccd10c5b5279d0de107554e94bbd65693843420a1a3d343a00266fe97b5dc6d1ccd10c5b5279d0de107554e94bbd65693843420a1a3d343a00266fe97b5da62a86c8f24a6cd5a4ddb63e3650d4131e1f231beeb2c869dc3d0411c862c3f4a62a86c8f24a6cd5a4ddb63e3650d4131e1f231beeb2c869dc3d0411c862c3f46fd9cb806bdec60702cf8ff6a7b767b12afc0f05f4265872c3ac365a46a5039ba2507c8d75fea3ba08f7588fffd4e0bd54b8b39d3690d3839f3b324b88d5ee2b331a9b61692fe961919365e0f2f84fc415b18b23c14c707cee8c605d4cb4dc8dc23088ab80aa9dc83946559c5fb88f654e17e6e0f3afcb477530084ced91b4af613ba7b42b2f0a01618ae85d2f8699f9705168e9f2008d7760673edbe292d0f3613ba7b42b2f0a01618ae85d2f8699f9705168e9f2008d7760673edbe292d0f3030faae554a2da928d6e7b5c2db1381ae161c348f52dc2f1c0d7041bbb1374dbf5cf321a90658f502c2addc704d7b766e85c290a6c576518e4ca0370397d6a434ee10b7e79bb573081135b807aeae14a11672cbfec9e5c2e31702cc8e39ee7bd4ee10b7e79bb573081135b807aeae14a11672cbfec9e5c2e31702cc8e39ee7bd99d513271c08f889ae1b4895c654131ad804bd2f2a6511e63a4e3c2bf81e42b499d513271c08f889ae1b4895c654131ad804bd2f2a6511e63a4e3c2bf81e42b4cc9c4e87023aa8a3ce3128d39fbb1215b7339e67987c9f12f1ec78f1f813259464ce97782f80fc188a3bc59ab98c98c663b1db8286e2052e3f7cdb57223015c5544f7980d55541616987a6060be7e61c8a0ba835d8dfbe175027676f4dff1412c7d969cc337b16cae568650147caad0ccf715a11af1b5ba07594d927c2fbb15f98ac972aebe13fb5852b2975e0a98953446c305ca70c647efe920ce88b51933298ac972aebe13fb5852b2975e0a98953446c305ca70c647efe920ce88b519332d8ef2184a47d4c231b1a0a824176b3916f6b0ea93d4783edb17b0266fe92f81fd8ef2184a47d4c231b1a0a824176b3916f6b0ea93d4783edb17b0266fe92f81f03b9b72f882acf42ce34ac086d42a87be9e7af168047e5ceb4a9d96793043a9d03b9b72f882acf42ce34ac086d42a87be9e7af168047e5ceb4a9d96793043a9d1815acfa8b8f366f505b96754e1f64234ac77f0ab7e3c90b29ad0fa724a60dd3067eddecfb2db996c5abb64f423629583e19ceb26a9bcd4a7b63f68efa5f8dfa9046ca595fe1593363f6974dd0cf566d4d68875bd0f504fd9ec7bae8741953579046ca595fe1593363f6974dd0cf566d4d68875bd0f504fd9ec7bae874195357500471ac3e3395f85221e11b34ad4c4a293cfcbbec39c33ed8f9c7d3502c3345e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855d156f0b9240e268be9590803c6cdac0cc4b4a7bb77a71e4e22fdace10054e25fd156f0b9240e268be9590803c6cdac0cc4b4a7bb77a71e4e22fdace10054e25f718883aa3d7411f79313052a1dd6b590d559de5f7746e66691c26edecf2d94564ee435931e4babe215cf6eb1e057a75a6c543260d97479dd4e9bd79f34fa0ef64ee435931e4babe215cf6eb1e057a75a6c543260d97479dd4e9bd79f34fa0ef677353681e9c5dd771e79362671dd9790ba209690f8990c397ff9ac2a9e8eebf3420ade1548fd00fe8afc29de5b255f3ed130c6357a0443d2c003f5cd07f50356506330ca05294389b63f44f7f50a07d59f34893cef98e9f7ac7112f3d8e872392d601eea011033fd7d1e5156eb7632e8c8bfde7e8695135a86f986dd4252068361bb4a6118f9879d1550914da56005c770f7840bab8dcce4c534cf6aa0d5a242703a55775f889341ffa04f59088ad9b0ad8f9535e4308947024b32a14b8436e03769a68b552c70de8411ea1602eee6b8e79099c4368e930ee4fda8d9a0287ef0d8a3609408406557a939e0ba882613b82145f79bf21324a2783af14c4e7b2fe3b816bf85d938d60bc01a1e6a9390a2bc9b671d986f609b221ae52aef36f9bb723b1583b49900a03f7ce3663f553fb16f2cb1141848c433bac640443249cd686e45a17e4c1f53b63085d8047cd04b3930130d12e274b74b5cdfc92a9723296f02e4b2e33903cd200d1d101580aaff9b6e892f79ea613319b89eba0048f202982be4b2e33903cd200d1d101580aaff9b6e892f79ea613319b89eba0048f202982bbe3a3ac7d01b89961ddddf948f21b0bfe65285347eb3b3590b47f46a846ee65abe3a3ac7d01b89961ddddf948f21b0bfe65285347eb3b3590b47f46a846ee65a0e6304188e1407f9a753c7891b007e0e29cb55f8f2d646d55b97d401a17964cd2c8c4b2dc6b63a4db18e21a99956928908fdb12894e45ea920c0920f68441cb3d4e1e613fc5231ab7b8488e4df61fd84edee45008abbdfb3b6225d26bee0e7bcd4e1e613fc5231ab7b8488e4df61fd84edee45008abbdfb3b6225d26bee0e7bc11289cd4b1e58455dcda27bee8d49e09291da274295e9db55ba6f2a540c2f37237cf317f3760d4115048a2ba06a6105f69ce8c7aed18ee229d5037afcecaf601a9a0e0be6d6b50335ba56f8717fce00e54dc5814e8801f8956d75cbb63d8d2b0a9a0e0be6d6b50335ba56f8717fce00e54dc5814e8801f8956d75cbb63d8d2b07c2c17161b94678e70a13670f9838d971e51897e2faf8cdabef03c248c4c20437c2c17161b94678e70a13670f9838d971e51897e2faf8cdabef03c248c4c204337a7f720e72c487fd6f8bf5900b8e4b05837a73da1cda9dcd3f13927f25561e87bb263b4fdda4ab3178222204f2657da7e44dac810f9995c416888e443aa362024cb1305ebf499115adcf9087e03900ba83f4e6b691c1002a69f2b9584408e26b179dcad4bd7cc046528f785a3c72b3c3505615877fbcc5376a290c6bfe8ba3f886f9f38b5ab2ec6a0ad8cab9ee3c3610cc4ba9fefc26be604f8953ba227d0428b071a7c2a99eb78b27309988099c5970f74a95ddefdba664c0d05980ff5ba17a3bd83302049dfbe49912b2ac77daefd7b902b090b31e7a0abd07c873b692da81a315fac98f7674fb08282b5c2147fab0ac07e53bce6206c58bf192e1c70f00a815dc50c6707ceb81d7ac75e74c621bc5af480c20e018b64ecdb72e33257b89ef8c49261cab16acb67c8e9e30b889d2aa0b05511d5ebaeb861664f4fa9aeb93ac46678fe381d1408229ab33d21887666268fecbfd64871e8182d294dff3c5873775766036b5cf0df9e701456766df5ceca740fa52ddd804e5a3e10a05fbb68e5b2b1cdadca4d70159878a618628c3dd05667ad0853e0bceccc86a88c39eb1649632355be0052f6fe7fc54d66e5656b3126d06abd4544996e578ec00748b0f32e4f70f25fbabc7935c384f6f58c91fa7c6d6632704c8e9749120c9980da19567b34a1cd7aae74f036798b9f55caf92980913f0056adcd41a5d383c927b3c98685bab12306de82f94bc5edfd6ae702f4d23ee2151bb2b5d6ee8ac0e609e2c04ee406ede213462e8bb22bfb7a1768faf225a88eb6c5a25a294638ee8eb99f587a7575ccd2bed03367aca18b20eaaf16c1241e1edd1ba55cbf87bbb1477a9ddfb99737c39bd061edd12972d91bf1170f82251bcc5fba134c2fc3f078fd2db7126cefc228dddbfd910ba0b93293b082d74fcb90c9ce809f820d7c35e817eb72beb4aa16595587dbc657250f807cbe6824754f91a1bb35373f22458dfca66848a9f745122c133e74c3b3de3073c6c3e2dde93e11505580cff8b1b0dfd19dff480aa01c9d585fe8a176b31023dedb74056c1e61c3958c1f02ad0569374919ef46731e583caf76401699c3ac7fbfb7b3625f8b5d7058ed7ec62cad06cce35497ee6f333190d95fca3cf01e83da2cbce385ccd55d0dfea769a1513ed122e8fcba04154b9dd88c6d69066fa561b8bbf49f8889bc2b9c4051f73d70a0bfe1a1d36d6bfe42c9b56f93bbbe3d5623e238f0a38c3bf12ab3aae0f912403a16338af9394d1edf95fd9e2c57dee86929513c61d9764f7048c9df307ce6df4e72ff9dcecbd2a5af3e5acefce24cedffccc5276abe4787d4b1a38ec7826ddece33dbb6fdcb65e82b07c8966f24ea6d5382d79fa24819fb157485d76d2f5cfa6e95d35b72393d54c723d37edc149e1c36ee435ddcc768bca458a71b176ad10880667350354ccb78cd26f9519cf1d6aba793892a8a517bf38e3b64779023d20c3f8e1c8f6874b48ec1249d5a72fe3b43646a0e86549a99ae275d2c24a344b97db190fbad0248f6f0bf8bf41f887b04dd604250193ddd88691ecd168dacdecca2d0d6581d8840e3f0b0dc../../../../usr/lib64/python3.6/site-packages/ovs/_json.cpython-36m-aarch64-linux-gnu.sorootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenvswitch2.13-2.13.0-128.el8s.src.rpmpython-openvswitch2.13python3-openvswitch2.13python3-openvswitch2.13(aarch-64)python3.6dist(ovs)python3dist(ovs)@@@@@@@@@     @ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libopenvswitch-2.13.so.0()(64bit)libopenvswitch-2.13.so.0(libopenvswitch_0)(64bit)libpthread.so.0()(64bit)libpython3.6m.so.1.0()(64bit)openvswitch2.13python(abi)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)2.13.0-128.el8s3.63.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3aUaQ@aLl@aC1a8aaS@aS@a@`` @`@`\`````f@`@`q` @``~@`v@`pA`lM@`lM@`g@`e`c`X`T@`P`*b@`#`3@``@`>`>`>`@``@`@`@`@`@`2@_@_1@_$_$_@_ǁ_^@_@_i_@_@_/@_@__ _@_"_"_P_a@_Z@_G@_FN_;_;_5+@_16_16_._._"@_A@_A@_A@_A@____ @_@^^3^3^3^?@^?@^^^^^^@^@^@^@^@^@^@^@^1^^H^H^H^^k@^^^}^y@^x^x^x^h^W@^U @Open vSwitch CI - 2.13.0-128Open vSwitch CI - 2.13.0-127Timothy Redaelli - 2.13.0-126Open vSwitch CI - 2.13.0-125Open vSwitch CI - 2.13.0-124Michael Santana - 2.13.0-123Open vSwitch CI - 2.13.0-122Michael Santana - 2.13.0-121Open vSwitch CI - 2.13.0-120Open vSwitch CI - 2.13.0-119Open vSwitch CI - 2.13.0-118Open vSwitch CI - 2.13.0-117Timothy Redaelli - 2.13.0-116Open vSwitch CI - 2.13.0-115Open vSwitch CI - 2.13.0-114Open vSwitch CI - 2.13.0-113Open vSwitch CI - 2.13.0-112Open vSwitch CI - 2.13.0-111Open vSwitch CI - 2.13.0-110Open vSwitch CI - 2.13.0-109Open vSwitch CI - 2.13.0-108Open vSwitch CI - 2.13.0-107Timothy Redaelli - 2.13.0-106Open vSwitch CI - 2.13.0-105Open vSwitch CI - 2.13.0-104Timothy Redaelli - 2.13.0-103Timothy Redaelli - 2.13.0-102Open vSwitch CI - 2.13.0-101Open vSwitch CI - 2.13.0-100Open vSwitch CI - 2.13.0-99Kevin Traynor - 2.13.0-98Kevin Traynor - 2.13.0-97Open vSwitch CI - 2.13.0-96Eelco Chaudron - 2.13.0-95Open vSwitch CI - 2.13.0-94Open vSwitch CI - 2.13.0-93Open vSwitch CI - 2.13.0-92Open vSwitch CI - 2.13.0-91Timothy Redaelli - 2.13.0-90Timothy Redaelli - 2.13.0-89Timothy Redaelli - 2.13.0-88Open vSwitch CI - 2.13.0-87Open vSwitch CI - 2.13.0-86Open vSwitch CI - 2.13.0-85Timothy Redaelli - 2.13.0-84Flavio Leitner - 2.13.0-83Flavio Leitner - 2.13.0-82Timothy Redaelli - 2.13.0-81Open vSwitch CI - 2.13.0-80Open vSwitch CI - 2.13.0-79Open vSwitch CI - 2.13.0-78Open vSwitch CI - 2.13.0-77Open vSwitch CI - 2.13.0-76Open vSwitch CI - 2.13.0-75Open vSwitch CI - 2.13.0-74Timothy Redaelli - 2.13.0-73Timothy Redaelli - 2.13.0-72Open vSwitch CI - 2.13.0-71Flavio Leitner - 2.13.0-70Flavio Leitner - 2.13.0-69Flavio Leitner - 2.13.0-68Ilya Maximets - 2.13.0-67Ilya Maximets - 2.13.0-66Open vSwitch CI - 2.13.0-65Open vSwitch CI - 2.13.0-64Open vSwitch CI - 2.13.0-63Timothy Redaelli - 2.13.0-62Open vSwitch CI - 2.13.0-61Open vSwitch CI - 2.13.0-60Open vSwitch CI - 2.13.0-59Open vSwitch CI - 2.13.0-58Open vSwitch CI - 2.13.0-57Flavio Leitner - 2.13.0-56Flavio Leitner - 2.13.0-55Open vSwitch CI - 2.13.0-54Open vSwitch CI - 2.13.0-53Dumitru Ceara - 2.13.0-52Flavio Leitner - 2.13.0-51Flavio Leitner - 2.13.0-50Timothy Redaelli - 2.13.0-49Flavio Leitner - 2.13.0-48Flavio Leitner - 2.13.0-47Flavio Leitner - 2.13.0-46Flavio Leitner - 2.13.0-45Flavio Leitner - 2.13.0-44Flavio Leitner - 2.13.0-43Flavio Leitner - 2.13.0-42Flavio Leitner - 2.13.0-41Timothy Redaelli - 2.13.0-40Timothy Redaelli - 2.13.0-39Ilya Maximets - 2.13.0-38Ilya Maximets - 2.13.0-37Ilya Maximets - 2.13.0-36Aaron Conole - 2.13.0-35Aaron Conole - 2.13.0-34Timothy Redaelli - 2.13.0-33Timothy Redaelli - 2.13.0-32Timothy Redaelli - 2.13.0-31Timothy Redaelli - 2.13.0-30Timothy Redaelli - 2.13.0-29Dumitru Ceara - 2.13.0-28Dumitru Ceara - 2.13.0-27Dumitru Ceara - 2.13.0-26Dumitru Ceara - 2.13.0-25Dumitru Ceara - 2.13.0-24Dumitru Ceara - 2.13.0-23Dumitru Ceara - 2.13.0-22Dumitru Ceara - 2.13.0-21Timothy Redaelli - 2.13.0-20Timothy Redaelli - 2.13.0-19Timothy Redaelli - 2.13.0-18Timothy Redaelli - 2.13.0-17Timothy Redaelli - 2.13.0-16Timothy Redaelli - 2.13.0-15Flavio Leitner - 2.13.0-14Flavio Leitner - 2.13.0-13Flavio Leitner - 2.13.0-12Flavio Leitner - 2.13.0-11Flavio Leitner - 2.13.0-10Timothy Redaelli - 2.13.0-9Timothy Redaelli - 2.13.0-8Numan Siddique - 2.13.0-7Timothy Redaelli - 2.13.0-6Timothy Redaelli - 2.13.0-5Timothy Redaelli - 2.13.0-4- Merging upstream branch-2.13 [RH git: 9d83aff7e3] Commit list: 695d25f507 datapath-windows:adjust Offset when processing packet in POP_VLAN action- Merging upstream branch-2.13 [RH git: a117849d24] Commit list: e33aaf8bda cirrus: Reduce memory requirements for FreeBSD VMs.- redhat: use hugetlbfs group for /var/log/openvswitch when dpdk is enabled [RH git: a32eb508f7] (#2007292) Resolves: #2007292- Merging upstream branch-2.13 [RH git: 215f08bbd8] Commit list: a56a8008eb netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock(). 186ff2a5b2 pcap-file: Fix memory leak in ovs_pcap_open(). b9b144b8d8 odp-util: Fix a null pointer dereference in odp_flow_format(). fea883d3bd odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__(). ef6d151b04 ipf: Fix only nat the first fragment in the reass process.- Merging upstream branch-2.13 [RH git: b3c7c50935] Commit list: 38efd803dd dpif-netdev: Fix crash when PACKET_OUT is metered.- Migrate openvswitch to gitlab [RH git: 081bad43fc] Signed-off-by: Michael Santana - Merging upstream branch-2.13 [RH git: 775922244f] Commit list: f61f810fb3 tc: Set action flags for tunnel_key release. 0dc609a260 netlink-socket: Replace error with txn->error when logging nacked transactions. d3776e354c dynamic-string: Fix a crash in ds_clone().- pkgtool: Make changelog in spec file more informative [RH git: 42174a9bc1] This is done by adding the body of the commit message to the changelong. The body is indented and has extra spacing separating each entry in the changelog to make each one more discernible since now they could be longer. Also, make sure the bugzilla ID is at the end of the line Signed-off-by: Michael Santana - Merging upstream branch-2.13 [RH git: eda2f50cf9] Commit list: f7e3b47e09 dpif-netdev: Fix offloads of modified flows. 350507b163 dpif-netdev: Fix flow modification after failure.- Merging upstream branch-2.13 [RH git: c2e53c3150] Commit list: f92ce92e53 daemon-unix: Fix leak of a fork error message.- Merging upstream branch-2.13 [RH git: d613ce404a] Commit list: d794934d01 datapath-windows:Correct checksum for DNAT action- Merging upstream branch-2.13 [RH git: 1dbd295283] Commit list: 9b1c0df6ad dpif-netlink: Fix report_loss() message. 17e98772cb conntrack: Document all-zero IP SNAT behavior and add a test case. 305b944a2e ovsdb-server: Fix memleak when failing to read storage. 1aa1f59142 netdev-linux: Ignore TSO packets when TSO is not enabled for userspace. d127fa6d2b conntrack: Handle already natted packets. c8ebe4434c python: Fix Idl.run change_seqno update. 2762bf6895 Prepare for 2.13.5. d72ccdfbda Set release date for 2.13.4. 76fdda2b34 netlink: removed incorrect optimization 9c386761f9 ovs-actions.xml: Add missing bracket. be8c4af1ce netdev-offload-tc: Use nl_msg_put_flag for OVS_TUNNEL_KEY_ATTR_CSUM.- Merging 15251f0e1d datapath-windows: Specify external include .. [RH git: f9d10a495b] Commit list: 15251f0e1d datapath-windows: Specify external include paths 9f05167b21 Remove Python 2 leftovers. 64c3133c01 ipf: Fix a use-after-free error, and remove the 'do_not_steal' flag. fe7bd42d6c ofproto: Fix potential NULL dereference in ofproto_ct_*_zone_timeout_policy(). fc23134227 ofproto: Fix potential NULL dereference in ofproto_get_datapath_cap().- Merging upstream branch-2.13 [RH git: 190762bf5c] Commit list: 8be19f789b dpif-netlink: Fix send of uninitialized memory in ct limit requests. 25dd08492d ofproto-dpif: Fix use of uninitialized attributes of timeout policy. 95570b23c8 netdev-linux: Fix use of uninitialized LAG master name.- Merging upstream branch-2.13 [RH git: 63656e47fb] Commit list: 160bb80a32 ofp_actions: Fix set_mpls_tc formatting.- Merging upstream branch-2.13 [RH git: 43b0d45790] Commit list: 32a197f845 dpif-netdev: Remove meter rate from the bucket size calculation. 1b4d8fe1d9 ovsdb-idl: Consider all tables when computing expected cond seqno.- Merging upstream branch-2.13 [RH git: 3f4fc768f0] Commit list: 9acbf2cff7 ovs-ofctl: Fix coredump when using "add-groups" command.- Merging upstream branch-2.13 [RH git: 5eca61ee5e] Commit list: 058702e3dc raft: Transfer leadership before creating snapshots.- Merging upstream branch-2.13 [RH git: 6022570f3f] Commit list: 3bc41e2b6a dpdk: Use DPDK 19.11.8 release.- Merging upstream branch-2.13 [RH git: 132c26ba20] Commit list: fbebe7377d github: Fix up malformed /etc/hosts. 2a3d1f4971 doc: automake: Add support for sphinx 4.0. 4ab5524dbb cirrus: Look up existing versions of python dependencies.- Merging upstream branch-2.13 [RH git: d2edacdddd] Commit list: ea98fe0743 ofp-group: Use big-enough buffer in ofputil_format_group().- Merging upstream branch-2.13 [RH git: 9a8a649301] Commit list: 798a40ffb6 ofproto/ofproto-dpif-sflow: Check sflow agent in case of race 9984d61124 dpif: Fix use of uninitialized execute hash. 43c2a10922 odp-util: Fix use of uninitialized erspan metadata. 4f68040a5c dpif-netlink: Fix using uninitialized info.tc_modify_flow_deleted in out label. 1c2a5f170f netdev-offload-tc: Probe for support for any of the ct_state flags. a4730043a4 compat: Add ct_state flags definitions. bbd62d7a44 tc: Use skip_hw flag when probing tc features.- Fix typo in rh-mock-srpm [RH git: 5641bf9d72] Thanks fbl for reporting- Merging upstream branch-2.13 [RH git: 0aaf7c02b7] Commit list: 759da53f07 Add test cases for ingress_policing parameters c901a563f4 netdev-linux: correct unit of burst parameter- Merging upstream branch-2.13 [RH git: 1334a398c9] Commit list: d47800bd66 ovsdb-idl: Mark arc sources as updated when destination is deleted. 6cf6f9d0d3 ovsdb-idl: Preserve references for deleted rows. e7d451ab8a ovsdb-idl.at: Make test outputs more predictable. 7fca8a3c94 test-ovsdb: Log steps in idl test. 4ca9dd87f6 test-stream: Silence memory leak report.- Align DPDK config to 19.11.7 [RH git: 62cff1abf5]- Merge tag 'c765f42e31c1baa8f4e7a9e01080f5474596ea98' into fast-datapath-rhel-8 [RH git: 4ef8ee2e1a] dpdk-19.11.7- Merging upstream branch-2.13 [RH git: 02b662f992] Commit list: 68086371c8 ipsec: Fix IPv6 default route support for Libreswan.- Merging upstream branch-2.13 [RH git: 7323d4b8e4] Commit list: 2cb952326e ovs-ofctl: Fix segfault due to bad meter n_bands.- Merging upstream branch-2.13 [RH git: 8e7dc3319c] Commit list: a112239ff5 dpif-netdev: Refactor and fix the buckets calculation. d9d8ebfa00 dpif-netdev: Fix the meter buckets overflow.- dpif-netdev: Allow PMD auto load balance with cross-numa. [RH git: edeaca020b] (#1938162) commit ec68a877db5bbfba49ddeb9929479c033420ea6b Author: Kevin Traynor Date: Thu Mar 18 11:34:04 2021 +0000 dpif-netdev: Allow PMD auto load balance with cross-numa. Previously auto load balance did not trigger a reassignment when there was any cross-numa polling as an rxq could be polled from a different numa after reassign and it could impact estimates. In the case where there is only one numa with pmds available, the same numa will always poll before and after reassignment, so estimates are valid. Allow PMD auto load balance to trigger a reassignment in this case. Acked-by: Eelco Chaudron Acked-by: David Marchand Tested-by: Sunil Pai G Acked-by: Flavio Leitner Signed-off-by: Kevin Traynor Signed-off-by: Ilya Maximets Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1938162 Conflicts: Commit backported from upstream master branch. Commit not present on upstream branch-2.13. Removed NEWS file update as could cause future merge conflicts.- redhat: Update docs for test builds [RH git: 0322f225d3]- Merging upstream branch-2.13 [RH git: bb107a7f7f] Commit list: fc8444fb1d python: Send notifications after the transaction ends. 712193ff1c ovs-ctl: Allow recording hostname separately. 3665d7f805 dpif-netdev: Fix crash when add dp flow without in_port field. 732e17d6b6 Documentation: Fix DPDK qos example. 1dee0a67e5 raft: Report disconnected in cluster/status if candidate retries election. e78d6ffba7 raft: Reintroduce jsonrpc inactivity probes. aea5fefdac connmgr: Check nullptr inside ofmonitor_report(). 26fa38c332 ovsdb-client: Fix needs-conversion when SERVER is explicitly specified. 65582c0bad dpdk: Use DPDK 19.11.6 release. 967d4055e7 windows, tests: Modify service test. ccdfc67b74 netdev-linux: Fix indentation. 81e759618c ci: Use parallel build for distcheck. 6d67310f4d ofp-actions: Fix use-after-free while decoding RAW_ENCAP.- conntrack: add generic IP protocol support [RH git: 6b3ca4b028] Currently, userspace conntrack only tracks TCP, UDP, and ICMP, and all other IP protocols are discarded, and the +inv state is returned. This is not in line with the kernel conntrack. Where if no L4 information can be extracted it's treated as generic L3. The change below mimics the behavior of the kernel. Resolves: BZ1876459 Signed-off-by: Eelco Chaudron Acked-by: Flavio Leitner Signed-off-by: Ilya Maximets (cherry picked from commit a27d70a8984879bc0a66afc2d7c35149659be24d)- Merging upstream branch-2.13 [RH git: 8655a639ac] Commit list: 2be25e3b00 Prepare for 2.13.4. f25820bf55 Set release date for 2.13.3. 9a5e78b5c7 cirrus: Use FreeBSD 12.2. 3512fb512c flow: Support extra padding length.- Merging upstream branch-2.13 [RH git: 2100324b58] Commit list: a6efca9628 netdev-offload-tc: Reject rules with unsupported ct_state flags.- Merging upstream branch-2.13 [RH git: 92b77d1489] Commit list: 9985c46501 dist-docs: Include manpages generated from rST.- Merging upstream branch-2.13 [RH git: ea87c21ff2] Commit list: fcae3177d4 tc: Fix mpls bottom of stack bit mask reporting.- dpif-netdev: Add PMD auto load balance status log. [RH git: 4fd540d8ef] When any PMD auto load balance parameters change, it is useful to also log if the feature is enabled or disabled. |dpif_netdev|INFO|PMD auto load balance load threshold changed to 70% |dpif_netdev|INFO|PMD auto load balance is disabled Signed-off-by: Kevin Traynor Acked-by: David Marchand Acked-by: Ian Stokes Signed-off-by: Ilya Maximets (cherry picked from commit 30de75520277a39ac775d15d4fa1c9cc886ad5d2)- dpif-netdev: Add parameters to configure PMD auto load balance. [RH git: 5935f7a9d8] Two important parts of how PMD auto load balance operates are how loaded a core needs to be and how much improvement is estimated before a PMD auto load balance can trigger. Previously they were hardcoded to 95% loaded and 25% variance improvement. These default values may not be suitable for all use cases and we may want to use a more (or less) aggressive rebalance, either on the pmd load threshold or on the minimum variance improvement threshold. The defaults are not changed, but "pmd-auto-lb-load-threshold" and "pmd-auto-lb-improvement-threshold" parameters are added to override the defaults. $ ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-load-threshold="70" $ ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-improvement-threshold="20" Signed-off-by: Christophe Fontaine Co-Authored-by: Kevin Traynor Signed-off-by: Kevin Traynor Acked-by: David Marchand Acked-by: Ian Stokes Signed-off-by: Ilya Maximets (cherry picked from commit 62ab5594c20cc815592562af69abb5b8ebe85d55)- dpif-netdev: Add log for PMD auto load balance interval parameter. [RH git: a8f4696c20] Previously if the parameter for the PMD auto load balance minimum interval was changed at runtime, it was not logged unless the PMD auto load balance feature was also changed to enabled. Log the parameter anytime it changes, and use minutes when it is logged as that is the user input format. Fixes: 5bf84282482a ("Adding support for PMD auto load balancing") Signed-off-by: Kevin Traynor Acked-by: David Marchand Acked-by: Ian Stokes Signed-off-by: Ilya Maximets (cherry picked from commit e4db0b69e2d81d8d5ca1265fbfbd08a9b30a1a02)- Merging upstream branch-2.13 [RH git: d303f53850] Commit list: a5e068f24b netdev-dpdk: Fix incorrect shinfo initialization. 522d828ae6 github: Don't fail the job if 'apt update' failed. 81026f0bad vswitchd.xml: Fix supported IPsec tunnels.- Merging upstream branch-2.13 [RH git: 2986e0866e] Commit list: 98723e351f ovsdb-doc: Add build dependency on dirs.py.- Merging upstream branch-2.13 [RH git: f2f6b58dd9] Commit list: 484068b741 dpctl: Fix dpctl process command parameter error.- redhat: Use a mock config based on the buildsystem target [RH git: b820a7b894]- Merging b37528cef7 conntrack: Fix the icmp conntrack new state. [RH git: dc913c7d4c] Commit list: b37528cef7 conntrack: Fix the icmp conntrack new state. c06328ae57 conntrack: Fix icmp conntrack state. 8e0a1527d7 odp-util: Fix abort while formatting nsh actions.- Merging f383000ca6 acinclude: Strip out -mno-avx512f provided .. [RH git: 304ba372e4] Commit list: f383000ca6 acinclude: Strip out -mno-avx512f provided by DPDK. 63f2aa2b7d acinclude: Strip out -march provided by DPDK.- Enable AVX512 support on binutils >= 2.30-79.el8 [RH git: 8b3f992902]- Merging upstream branch-2.13 [RH git: b7a6e48410] Commit list: 66fc41bfb2 Prepare for 2.13.3. e8ca014102 Set release date for 2.13.2. 9b00c9c047 lldp: do not leak memory on multiple instances of TLVs 02e48ecf29 ipf: Avoid accessing to a freed rp. 999bec82e1 rhel: Fix libunwind dev package.- Merging upstream branch-2.13 [RH git: 86c9f9af77] Commit list: 6c3d1c9f6f ovs-monitor-ipsec: Add option to not restart IKE daemon. d9edf71d17 ovs-monitor-ipsec: Allow exit of ipsec daemon maintaining state. 7286dc4412 ovs-ctl: Use 'stop_daemon' to stop ovs-monitor-ipsec. 60c6013b7b ovs-monitor-ipsec: Fix active connection regex. d59ec5359d ovs-monitor-ipsec: set correct 'leftcert' and 'rightcert' name 6e1f4ade25 ovs-monitor-ipsec: Add support for tunnel 'local_ip'. 03ee7466ca ovs-monitor-ipsec: Suppress "unknown %d argument" warning. d371c42bbb ovs-monitor-ipsec: Fix _nss_clear_database() parse error. ff48c43a59 ovs-ctl: Don't overwrite external-id hostname.- Merging upstream branch-2.13 [RH git: 2cfb47639f] Commit list: 7312222306 odp-util: Fix netlink message overflow with userdata. b3c09431ad NEWS: Move '--offload-stats' entry to correct release. 7c24762d3e ovsdb-tool: Fix datum leak in the show-log command. a47647c6ec ofproto-dpif-xlate: Stop forwarding MLD reports to group ports. 82093f97c5 github: Fix Ubuntu package installation. 56b81e3ee7 jsonrpc: Avoid disconnecting prematurely due to long poll intervals.- Merging upstream branch-2.13 [RH git: 350e017b66] Commit list: aacf05c5b8 ovsdb-idl: Fix expected condition seqno when changes are pending. db74cd6f4b ovsdb-cluster.at: Fix infinite loop in torture tests.- Merging upstream branch-2.13 [RH git: ece49fb665] Commit list: cdf4cf4966 lib/tc: fix parse act pedit for tos rewrite- Merging upstream branch-2.13 [RH git: 3e10785905] Commit list: ac5c067937 ovsdb-idl: Fix use-after-free when deleting orphaned rows. 60607ba779 ovsdb-idl: Fix memleak when deleting orphan rows. 08c8a29bf4 ovsdb-idl: Fix memleak when reinserting tracked orphan rows.- Merging upstream branch-2.13 [RH git: 773fc1e75b] Commit list: d853716dcb python: Update build system to ensure dirs.py is created. 9ada310291 python: set ovs.dirs variables with build system values 9342d27a26 datapath: ovs_ct_exit to be done under ovs_lock d93d9181f5 compat: rcu: Add support for consolidated-RCU reader checking 505b916b03 ovsdb-idl: Fix iteration over tracked rows with no actual data. 1eb6abd6fc Handle refTable values with setkey() feec8e6888 tests: Add overflow test for the sha1 library. b5a39a7d7f travis: Remove support for Travis CI. db5e2bdd3b github: Add GitHub Actions workflow. 3ff5e400bd ci: Don't use 'native' machine for DPDK cache.- Fix building OVS on ppc64le and armv7hl with Python 3.9 [RH git: a6928f88b2] Python 3.9 changed the architecture naming in suffix used for binary extensions. Use python3-config --extension-suffix in order to figure out the correct extension suffix used for binary extensions. This is not, currently, an issue on RHEL8, but it'll be an issue on RHEL9 and it's an issue on Fedora Rawhide.- redhat: Enable ipsec support [RH git: 2c7306b51f] (#1782141) Resolves: #1782141- Merging upstream branch-2.13 [RH git: 2aae181525] Commit list: abe7fe4486 ovsdb-idl: Return correct seqno from ovsdb_idl_db_set_condition(). 03c12fe076 ovsdb-idl: Fix *_is_new() IDL functions. 1b73731eef ovsdb-idl.at: Return stream open_block python tests. b876447179 compat: Fix compile warning. cb874fa2f2 compat: Remove stale code. 6c5cd45051 tests: Add parse-flow tests for MPLS fields. fa59781826 ofp-actions: Fix userspace support for mpls_ttl. cdf2cf98e3 python: Don't raise an Exception on failure to connect via SSL. 032fd056fe lldp: correctly increase discarded count f051229561 lldp: increase statsTLVsUnrecognizedTotal on unknown TLV 12ffc6118e lldp: fix a buffer overflow when handling management address TLV 46b5101de0 lldp: Fix size of PEEK_DISCARD_UINT32() 364d371c58 lldp: validate a bit more received LLDP frames 3a3c52b8a2 sha1: Fix algorithm for data bigger than 512 megabytes. 8ea7e55eb6 odp-util: Fix overflow of nested netlink attributes.- redhat: Fix conf.db permissions in the spec. [RH git: 46d3617298] Upstream has removed the read permission from the db file because it may incur security concerns, for example, IPsec Pre-shared keys are stored in the db. Fixes: 3e581f43a9 ("ovsdb: Remove read permission of *.db from others.") Signed-off-by: Flavio Leitner - Merging d43d10e10c netdev-offload-dpdk: Preserve HW statistics.. [RH git: a779495d03] Commit list: d43d10e10c netdev-offload-dpdk: Preserve HW statistics for modified flows. 3e581f43a9 ovsdb: Remove read permission of *.db from others. 1440833435 raft: Make backlog thresholds configurable. efc59be2ea raft: Set threshold on backlog for raft connections.- Merging dc5b4e8f69 ovs-bugtool: Fix crash when enable --ovs. [RH git: de7f5508d7] Commit list: dc5b4e8f69 ovs-bugtool: Fix crash when enable --ovs.- Merging upstream branch-2.13 [RH git: 03753de14f] Commit list: 07049d5b66 bugtool: Fix for Python3. 625a6f0f0e raft: Avoid having more than one snapshot in-flight. fc7a644a73 ovsdb-server: Reclaim heap memory after compaction. 49453540d9 raft: Add log length to the memory report.- Merging upstream branch-2.13 [RH git: 373b7e9f51] Commit list: fd29479f04 raft: Report jsonrpc backlog in kilobytes. 7865bc49d3 ovsdb: Add raft memory usage to memory report.- Merging upstream branch-2.13 [RH git: f9a054c1b5] Commit list: 7a69ccf7e4 raft: Avoid annoying debug logs if raft is connected. 3a8897322f raft: Fix error leak on failure while saving snapshot.- Merging upstream branch-2.13 [RH git: 73eb33dcf1] Commit list: 9bd5bf4c3a netdev-tc-offloads: Don't delete ufid mapping if fail to delete filter- Merging upstream branch-2.13 [RH git: 6f80f8c230] Commit list: df3ecbbb6b travis: Fix kernel download retry. 1c9e73f922 Revert "travis: Disable check for array of flexible structures in sparse." 1557ce2673 ofp-ed-props: Fix using uninitialized padding for NSH encap actions.- redhat: Add conflicts for older versioned packages [RH git: b1f563c738] (#1886836) Resolves: #1886836- Merging upstream branch-2.13 [RH git: fa57a21817] Commit list: 75fbada49b travis: Disable check for array of flexible structures in sparse. 12c43c2e64 ovsdb-idl.at: Queue for termination all OVSDB IDL pids. 61e6f03cc3 system-userspace-packet-type-aware.at: Wait for ip address updates. 6d30b86168 dpif-netdev: Fix typo in copyright header. 9400845f88 docs: Add flow control on i40e issue- Merging upstream branch-2.13 [RH git: 38d21cf4eb] Commit list: 3c2b1915d2 ipsec: Fix Strongswan configuration syntax. 610dfdc63d cirrus: Use FreeBSD 11.4. 0cb432954a selinux: Add missing permissions for ovs-kmod-ctl. 9a6d26ea30 netdev-dpdk: Don't set rx mq mode for net_virtio. 183be08223 rhel: Fix reload of OVS_USER_ID on startup. 90443bc5c6 classifier: Fix use of uninitialized value. c38ebe8164 userspace-tso: Document the minimum kernel version. faf6651357 rhel: Fix logrotate group when dpdk is enabled.- Merging upstream branch-2.13 [RH git: 4fbcdeb187] Commit list: 4d6846d4d8 ovsdb-idl.at: Wait all servers to join the cluster.- Merging upstream branch-2.13 [RH git: d5817ddabf] Commit list: ace73aa122 travis: Merge matrix entries. 9eedff62fe ovs-dpctl-top: Skip "eth()" element. 9903c42973 meta-flow: fix a typo in "MPLS Bottom of Stack Field" paragraph. 7f1b52086b python: Fixup python shebangs to python3. 5d1e1c161a test-conntrack: Fix conntrack benchmark by clearing conntrack metadata.- Merging upstream branch-2.13 [RH git: 2fe3a06bff] Commit list: 14c5912a7b travis: Test build of debian packages. 823bea7797 debian: Fix broken build after some man pages became generated from RST 895fc18393 debian: Add python3-sphinx to ovs build dependencies b0e8532d01 debian: Fix package dependencies 0427918d89 connmgr: Support changing openflow versions without restarting. d02892966c ovs-monitor-ipsec: Convert Python2 code to Python3. 8b3fcc65a0 netdev-offload-dpdk: Fix for broken ethernet matching HWOL for XL710NIC.- dpdk: Updated configs to 19.11.3 [RH git: 4e4acaf40a]- Merging 798524b5e3 version: 19.11.3 [RH git: 64c883ec66] (#1868709) Commit list: 798524b5e3 version: 19.11.3 1e5167d97f mem: mark pages as not accessed when freeing memory 4153891ad2 net/mlx5: fix packet length assert in MPRQ 8bec239cff buildtools: get static mlx dependencies for meson 3196e264f7 net/mlx5: fix build with separate glue lib for dlopen f9fde3f8a9 doc: fix reference in ABI guide d455442cac Revert "common/qat: fix GEN3 marketing name" d764b2cd1f test/crypto: fix statistics case b965554c17 eal/ppc: fix bool type after altivec include 9f090f7c97 net/hns3: replace memory barrier with data dependency order 05f23c1a24 net/hns3: add free threshold in Rx 22ae47b85b net/hns3: remove one IO barrier in Rx 7669265b7f net/hns3: reduce judgements of free Tx ring space 4341cd6f0c net/hns3: remove unnecessary assignments in Tx 008d6625ed net/mlx5: fix RSS key copy to TIR context 987ef3cd66 net/ena/base: fix testing for supported hash function 5072ef83e7 net/hns3: fix MSI-X interrupt during initialization 6fdabde3d9 net/hns3: fix Rx interrupt after reset eb23edc7c2 net/hns3: fix Tx interrupt when enabling Rx interrupt 3db4e6aabb net/hns3: fix RSS indirection table configuration 7cfc979bc9 net/hns3: support different numbers of Rx and Tx queues f16148907b net/hns3: support Rx interrupt a4f8b13c12 doc: add NASM installation steps 43e4f20638 doc: fix API index 106dddaf87 doc: prefer https when pointing to dpdk.org 130830b165 doc: fix typo in contributors guide e9aeb99c93 doc: fix typo in contributors guide 029c527ef4 examples/ip_pipeline: remove check of null response 1b2d70662c examples/kni: fix crash during MTU set d9da460ee3 net/ixgbe: check driver type in MACsec API 33189eecd0 net/i40e: fix flow director enabling a6c3bc7236 net/ice: fix setting L2TAG a46186d063 net/iavf: fix setting L2TAG b7a08ea7cd net/i40e: fix setting L2TAG 696a40bd94 net/sfc/base: fix manual filter delete in EF10 bea8e15b59 net/hinic: fix TSO c4d7293707 net/octeontx2: fix buffer size assignment 586faf5a4f net/bnxt: fix Rx ring producer index 1df20ac457 cryptodev: fix SHA-1 digest enum comment 86809db310 doc: fix build with doxygen 1.8.18 121f752786 examples/vm_power: drop Unix path limit redefinition ba5df75ed5 examples/vm_power: fix build with -fno-common 4d1fd43b3a net/mvpp2: fix build with gcc 10 1c2eaf9a98 vhost: fix zero-copy server mode 3ddb8f1d07 net/i40e: fix queue related exception handling 69516f9e3f net/ice: fix RSS for GTPU f956486556 net/i40e: fix wild pointer 3af3834731 examples/kni: fix MTU change to setup Tx queue 4b369799c7 fix same typo in multiple places c85044909a mempool/dpaa2: install missing header with meson fd2cc33835 kvargs: fix strcmp helper documentation 0b45ef6e39 doc: fix typos in ABI policy a7413810b9 pci: reject negative values in PCI id c4d58cd40c pci: accept 32-bit domain numbers 7b732e25df net/ice/base: update copyright 0491724e4a common/iavf: update copyright 75f2750b43 net/i40e/base: update copyright 3c6d1a0269 net/ixgbe/base: update copyright 7c36f2ea8b app/testpmd: fix DCB set 070a7b832d common/mlx5: fix netlink buffer allocation from stack 8fecf8ad1d net/mlx5: fix doorbell bitmap management offsets fc047c800b net/i40e: fix queue region in RSS flow 099b9e280c net/bnxt: fix storing MAC address twice ba15f6288e net/bnxt: fix using RSS config struct 2109b14aa9 net/bnxt: fix error log for command timeout bbcbd194d8 net/qede: fix port reconfiguration f9630f56a4 net/virtio: fix unexpected event after reconnect c651ee6999 vhost: handle mbuf allocation failure 1e2a3beb12 net/hinic: fix Tx mbuf length while copying b191e32975 net/hinic: fix queues resource free 733bc3f639 net/vmxnet3: handle bad host framing a15ee3e4a7 net/mlx5: fix VLAN flow action with wildcard VLAN item 4de7d8bc21 net/qede: fix link state configuration f98d3de913 net/ixgbe: fix statistics in flow control mode 22f701a5d4 common/mlx5: fix umem buffer alignment 348a2c5a9a doc: fix multicast filter feature announcement fc962b01c7 net/e1000: fix port hotplug for multi-process 2e33e6b144 doc: fix build issue in ABI guide da5586fcbe eal: fix C++17 compilation 2d2ba1fb00 doc: fix default symbol binding in ABI guide ef254d821e doc: fix LTO config option f40d9a3cbb build: disable gcc 10 zero-length-bounds warning b02c7838a0 crypto/caam_jr: fix IRQ functions return type 199d2c49a6 crypto/caam_jr: fix check of file descriptors 053c7ff9b5 app/eventdev: check Tx adapter service ID a23ef1c188 event/dsw: fix enqueue burst return value 32b5e80df1 crypto/qat: support plain SHA1..SHA512 hashes 507cda6e23 examples: remove extra new line after link duplex 83e7cafc27 app: remove extra new line after link duplex 40a2233e78 net/mlx5: fix Tx queue release debug log timing ead66a3fb9 net/mlx4: fix drop queue error handling 46cd8f27b1 net/mlx5: fix meter color register consideration 77ca941f9d net/mlx5: fix matching for UDP tunnels with Verbs 23e2c36fa1 net/mlx5: fix match on empty VLAN item in DV mode 425b3ccd2d net/ring: fix device pointer on allocation 39abdde91a net/ice: fix variable initialization 8ec53ab745 Revert "net/bnxt: fix number of TQM ring" ee4518a2de Revert "net/bnxt: fix TQM ring context memory size" 53038c4760 net/ixgbe: fix link state timing on fiber ports 61706cf3f2 bus/fslmc: fix size of qman fq descriptor eeaa4c42b3 net/dpaa2: fix congestion ID for multiple traffic classes a71e30e6b0 net/dpaa2: fix 10G port negotiation ef6d112d7d bus/fslmc: fix dereferencing null pointer f83c2ba6ea app/testpmd: fix memory failure handling for i40e DDP e428b51c18 net/bnxt: fix FW version query dafdf58799 net/virtio: fix crash when device reconnecting abe65fce86 net/bnxt: fix TQM ring context memory size 426e8b5253 net/bnxt: fix number of TQM ring 2befb2f470 net/tap: fix crash in flow destroy 82e2269d01 net/ice: fix crash in switch filter 2e1e12f6a8 net/ice: support mark only action for flow director f05c433b44 net/ixgbe: fix link status synchronization on BSD b639786c5f net/iavf: fix link speed 6c8f2aef2f net/bnxt: fix possible stack smashing 1a476dbabd net/netvsc: do not configure RSS if disabled f815b93c27 net/netvsc: do RSS across Rx queue only bb0fd68c99 bus/vmbus: fix comment spelling 4fe11771a2 net/netvsc: fix comment spelling 024a568578 app/testpmd: fix statistics after reset 556ae6bd83 net/failsafe: fix fd leak 47bd1f0ad2 ipsec: check SAD lookup error 7b842acdfa drivers/crypto: disable gcc 10 no-common errors b64337ffa3 examples/fips_validation: fix parsing of algorithms b168483089 crypto/kasumi: fix extern declaration 0665fb6e09 crypto/qat: fix cipher descriptor for ZUC and SNOW de299dec14 app/crypto-perf: fix display of sample test vector 9b91b991b6 crypto/ccp: fix fd leak on probe failure 6e0bdc2ba1 bbdev: fix doxygen comments abc111ae3d test/flow_classify: enable multi-sockets system a009c7667f event/octeontx2: fix build for O1 optimization 6fc3588de0 net/ena: fix build for O1 optimization c6f6f3d8e1 mempool/octeontx2: fix build for gcc O1 optimization 2cb0536157 examples/eventdev: fix crash on exit fd554a1f8f mem: fix overflow on allocation f0ac3aa2d2 examples/l2fwd-keepalive: fix mbuf pool size deb055888f remove references to private PCI probe function d8aeeb8cfb service: remove rte prefix from static functions 99303c675d service: fix identification of service running on other lcore c4bcf57075 service: fix race condition for MT unsafe service c4c9531648 mk: fix static linkage of mlx dependency d104eb2c03 common/octeontx: fix gcc 9.1 ABI break 9022ffe003 event/dsw: avoid reusing previously recorded events 85c1aae896 eventdev: fix probe and remove for secondary process a309eafc89 event/octeontx2: fix queue removal from Rx adapter 46b7943fda net/mlx5: fix gcc 10 enum-conversion warning 7e01ad84bf net/mlx5: fix VLAN ID check 4fdea813e5 net/mlx5: fix assert in modify converting 831152d0d9 net/mlx5: fix RSS enablement ea6b087b9b net/octeontx: fix dangling pointer on init failure ee263a1371 net/hns3: fix return value when clearing statistics 827eb6ca97 net/hns3: fix VLAN PVID when configuring device 6686131671 net/softnic: fix resource leak for pipeline 60dfeffc23 net/softnic: fix memory leak for thread e399ff6427 net/sfc/base: fix build when EVB is enabled 5862e3fe62 net/sfc/base: use simpler EF10 family run-time checks 68409f9a6c net/sfc/base: use simpler EF10 family conditional check ecd69bfb76 net/mlx5: fix actions validation on root table 58ca518c24 net/mlx5: fix assert in dynamic metadata handling a6ae060e39 vhost: prevent zero-copy with incompatible client mode 5099fb8d59 vhost: fix peer close check fd7ba64cb4 net/mlx5: fix assert in doorbell lookup d6db84d0b1 net/i40e: fix flush of flow director filter a42e979217 doc: add i40e limitation for flow director 74095b0ca6 net/i40e: fix flow director for ARP packets fe42bb4b74 net/bnxt: fix max ring count a131ab7d0f eal/ppc: fix build with gcc 9.3 2acc78a0a1 kvargs: fix invalid token parsing on FreeBSD df17bcb43b eal/x86: ignore gcc 10 stringop-overflow warnings 274dec7548 examples/ipsec-gw: fix gcc 10 maybe-uninitialized warning ea0fb3e5a5 net/avp: fix gcc 10 maybe-uninitialized warning daa2cd115f eal: fix typo in endian conversion macros 9ef2246962 doc: fix log level example in Linux guide aecc7782a6 app/testpmd: add parsing for QinQ VLAN headers 26467e800b net/bnxt: fix VNIC Rx queue count on VNIC free 61c8f03fd4 net/bnxt: fix memory leak during queue restart e09bf2672d bus/pci: fix UIO resource access from secondary process 35348ca71e usertools: check for pci.ids in /usr/share/misc a8e6e27b00 app: fix usage help of options separated by dashes 0d7e4fbf2d fix various typos found by Lintian ccc676944f timer: protect initialization with lock 6be8fba616 eal: fix comments spelling 32688549a0 lpm6: fix comments spelling eee7a4f089 lpm6: fix size of tbl8 group 8426cebb49 mempool: remove inline functions from export list 632fec749f security: fix crash at accessing non-implemented ops 0407d17dae net/bnxt: fix VLAN add when port is stopped a62880c4d4 net/bnxt: fix port start failure handling 6cc939165f net/bnxt: use true/false for bool types 886085974e net/bnxt: fix HWRM command during FW reset c1b7cb6792 net/iavf: fix stats query error code ca2ecc15f2 net/ixgbe: fix link status after port reset 9a673fc544 net/ixgbe: fix resource leak after thread exits normally 4c84ef15a7 net/mlx5: improve logging of MPRQ selection f0a019c950 net/mlx5: set dynamic flow metadata in Rx queues bf10f18c64 net/mlx5: fix header modify action validation da5c4ff51b net/mlx5: fix crash when releasing meter table a9018074d1 common/mlx5: fix build with rdma-core 21 461a2ba67a net/i40e: fix flow director initialisation ac051be918 net/tap: fix queues fd check before close 4c587687f7 net/virtio-user: fix devargs parsing 74a51ef091 vhost: fix shadowed descriptors not flushed 2f48b05305 vhost: fix shadow update d28299df0a net/tap: fix unexpected link handler 8e90f78a02 net/tap: fix fd leak on creation failure 2523e877dc net/tap: fix file close on remove 2b74a885aa net/tap: fix check for mbuf number of segment 2fe4af64f9 net/tap: fix mbuf and mem leak during queue release 908866e6fc net/tap: fix mbuf double free when writev fails ab9701159d net/mlx5: fix validation of push VLAN without full mask d2f4d1ae3d net/mlx5: fix push VLAN action to use item info 1603ade39c net/enic: fix flow action reordering d3c99e41b1 net/mlx5: fix jump table leak 652a21028a net/mlx5: fix meter suffix table leak afca8bc661 net/mlx5: add multi-segment packets in MPRQ mode bbdd1a9c79 net/mlx5: enable MPRQ multi-stride operations a1b3dc84bc net/mlx5: add device parameter for MPRQ stride size 31d1b373d5 net/i40e: relax barrier in Tx for NEON 85897fd567 net/octeontx2: disable unnecessary error interrupts 6075a1ee65 net/octeontx2: enable error and RAS interrupt in configure fd2f1973f4 net/mlx5: use open/read/close for ib stats query 624db5a0ab net/mlx4: fix build with -fno-common b3e01cd3e4 common/mlx5: fix build with -fno-common be0d36b087 net/hns3: fix VLAN filter when setting promisucous mode c6f7d75949 net/hns3: fix default VLAN filter configuration for PF 0bd1d3b49c net/hns3: fix RSS key length c4e9d7e10c net/hns3: add RSS hash offload to capabilities 50daf2acc9 net/hns3: clear residual flow rules on init 1ff55a18be vhost: make IOTLB cache name unique among processes c0c67a2dac vhost: remove unused variable 871773f3ac net/virtio: fix outdated comment 4f5f084c7f net/vhost: fix potential memory leak on close b35cbd50b9 vhost: fix packed ring zero-copy e624761604 vhost/crypto: add missing user protocol flag 11d9847039 net/hinic/base: fix PF firmware hot-active problem f662af80b1 net/null: remove redundant check bfc5290bc8 net/null: fix secondary burst function selection 670758fe8b net/pfe: fix double free of MAC address 175f707d92 app/testpmd: fix PPPoE flow command 03527bd393 net/mlx5: fix counter container usage 2c0c0e4820 net/ena: set IO ring size to valid value 59acd7de4c net/ena/base: fix indentation of multiple defines 3c4bf79460 net/ena/base: fix indentation in CQ polling 3c6ec30057 net/ena/base: fix documentation of functions c6730185e0 net/ena/base: prevent allocation of zero sized memory d5cfa58c05 net/ena/base: make allocation macros thread-safe af84a4f278 net/ice/base: remove unused code in switch rule 5cfef294de net/ice: fix RSS advanced rule 46825a9e59 net/nfp: fix dangling pointer on probe failure d027444df5 net/nfp: fix log format specifiers 61347b53bb examples/vmdq: fix RSS configuration 267e255ef4 ethdev: fix build when vtune profiling is on c6f822199a net/memif: fix resource leak 4f880a2089 net/netvsc: avoid possible live lock 9f54fa3e2b net/netvsc: handle Tx completions based on burst size 62ec946eec net/netvsc: remove process event optimization 81441b4e4f net/netvsc: fix memory free on device close 42916635b3 net/netvsc: split send buffers from Tx descriptors 244193073d net/netvsc: handle Rx packets during multi-channel setup cc1f006253 net/netvsc: propagate descriptor limits from VF 39e690ab3b net/ice: fix input set of VLAN item 175dc210ad net/ice: add action number check for switch 1b23b24565 net/ice: change default tunnel type 8e8fdd68f7 net/octeontx2: fix device configuration sequence 272fcab063 net/octeontx: fix meson build for disabled drivers d50174f38a net/tap: remove unused assert f50974db04 net/ice/base: check memory pointer before copying 3e51abed66 net/ice/base: fix binary order for GTPU filter 7ba59c1fd4 net/mlx5: fix imissed counter overflow e7c5383a09 net/thunderx: use dynamic log type 3e0d3b1204 net/dpaa: use dynamic log type 516f5f9136 net/bnxt: do not use PMD log type 45284045c5 net/pfe: do not use PMD log type 64ca12ff65 net/tap: do not use PMD log type 0bf29e36c3 net/virtio: do not use PMD log type 80e04ea6ae net/mvneta: do not use PMD log type 1b70d8acd0 examples/vmdq: fix output of pools/queues d9a7bf74e1 net/mlx5: fix zero value validation for metadata 5e3859176e net/mlx5: fix call to modify action without init item 24f6ab6d31 net/mlx5: update VLAN and encap actions validation 2491443dce net/mlx5: fix metadata for compressed Rx CQEs c469619b7a net/mlx5: fix validation of VXLAN/VXLAN-GPE specs 4493efb719 net/ixgbe: fix link status inconsistencies 117ecae920 net/ice/base: fix MAC write command d57cbe48b2 net/ice/base: minor fixes b97902938a net/ice/base: read PSM clock frequency from register d1cd22be97 net/ice/base: fix uninitialized stack variables 8081044a6f net/hns3: fix return value of setting VLAN offload 2717e6ab25 net/hns3: fix mailbox opcode data type 70b22c9ed2 net/hns3: fix configuring RSS hash when rules are flushed 7953227c19 net/ipn3ke: use control thread to check link status d57282791c net/hinic/base: fix port start during FW hot update 4710da6ef5 net/hinic: fix LRO 7caa43cc22 net/hns3: fix status after repeated resets 3f9c9bdcb5 net/hns3: fix configuring illegal VLAN PVID b6c05b0781 net/hns3: fix crash when flushing RSS flow rules with FLR 1cd4ab6cf4 net/hns3: fix default error code of command interface e9248b23b3 net/hns3: fix packets offload features flags in Rx ebad6ac59a test: remove redundant macro b54822ff2f security: fix session counter 477f8e08d3 security: fix return types in documentation 4fa404e280 security: fix verification of parameters 48bb740ce1 crypto/openssl: fix out-of-place encryption 8d5349e781 test/crypto: fix flag check 9aa6caeb5a drivers/crypto: fix log type variables for -fno-common 46a37b23ba cryptodev: add asymmetric session-less feature name efd0dea9c8 drivers: fix log type variables for -fno-common 2ef9870118 vfio: fix use after free with multiprocess 5732151922 vfio: fix race condition with sysfs 952892aa67 eal: fix PRNG init with HPET enabled 8eefb8787a doc: fix matrix CSS for recent sphinx da57576513 log: fix level picked with globbing on type register bd5e2ef80a ipsec: fix build dependency on hash lib c4d52beff8 doc: fix sphinx compatibility b0843e5671 event/dsw: remove unnecessary read barrier 09a714399a event/dsw: remove redundant control ring poll b9b72b8815 crypto/nitrox: fix oversized device name b878b432b7 crypto/nitrox: fix CSR register address generation 3b841d16dc baseband/turbo_sw: fix exposed LLR decimals assumption 2193048d87 test/ipsec: fix crash in session destroy 152fadd540 common/qat: fix GEN3 marketing name 196993b705 cryptodev: fix missing device id range checking ca31f0aee2 fib: fix headers for C++ support 1c51807a35 ci: fix telemetry dependency in Travis 39adba3b55 bus/pci: fix devargs on probing again c285902e7b kvargs: fix buffer overflow when parsing list bbf0c2d983 test/kvargs: fix invalid cases check bcdd4476cd test/kvargs: fix to consider empty elements as valid 9aebba7e3d mem: preallocate VA space in no-huge mode 46cd0c98bb eal/freebsd: fix queuing duplicate alarm callbacks 7ad8cd364e test: skip some subtests in no-huge mode 796af72c2d test: load drivers when required 7c8ab0ae70 devtools: fix symbol map change check 4710904861 contigmem: cleanup properly when load fails 6e0c764098 net/mlx5: reduce Tx completion index memory loads 307876a747 net/mlx5: fix CVLAN tag set in IP item translation 7ad364893c net/hinic: allocate IO memory with socket id 75457cff3f net/mlx5: fix zero metadata action 8ea2ea8fe4 net/sfc/base: handle manual and auto filter clashes in EF10 c6ae74f068 net/sfc/base: refactor filter lookup loop in EF10 9e496b76ab net/sfc/base: reject automatic filter creation by users 0e4497208a net/sfc/base: reduce filter priorities to implemented only c239286b98 net/sfc: set priority of created filters to manual 8771074d95 net/sfc: fix promiscuous and allmulticast toggles errors 6c1634ec93 ethdev: fix spelling 7aa0060a2a net/hns3: fix promiscuous mode for PF 32f349234b net/hinic: fix repeating cable log and length check d16cceef30 net/hinic: fix snprintf length of cable info d40bcdfb59 net/memif: fix init when already connected ba2322fb9a build: support MinGW-w64 with Meson 5cdff30419 net/mlx5: fix mask used for IPv6 item validation 7ce629f7f2 net/ice: remove bulk alloc option a42ef6f777 net/sfc: fix Rx queue start failure path 251cb7e722 net/sfc: fix initialization error path 5f0378bb2e net/vmxnet3: fix RSS setting on v4 556cdccab2 net/sfc: fix reported promiscuous/multicast mode 194ca60cde doc: fix number of failsafe sub-devices adf15e37f2 net/ice: remove unnecessary variable 2847184082 net/enetc: fix Rx lock-up aec781c6b1 net/ice: fix hash flow crash 2ce2096092 net/i40e: fix X722 performance 64a38788d1 net/mlx5: fix VLAN PCP item calculation 3e387d591e net/i40e: relax barrier in Tx 2550666028 net/octeontx2: fix link information for loopback port c2e90f337d build: fix linker warnings with clang on Windows 3262e4181c pci: fix build on ppc 5a99c0d994 pci: fix build on FreeBSD 027e022a18 pci: remove unneeded includes in public header file 9ca664d8be telemetry: fix port stats retrieval c20055f471 service: fix crash on exit d0e456e9b1 mem: mark pages as not accessed when reserving VA bcf4069ff2 eal/arm64: fix precise TSC 40a7c85881 eal: fix log message print for regex 2a46dc5951 drivers/crypto: fix build with make 4.3 3425ff8896 drivers: add crypto as dependency for event drivers 25fe1c8b05 examples/qos_sched: fix build with gcc 10 4de659fdc0 examples/eventdev: fix build with gcc 10 84119ecce2 examples/vhost_blk: fix build with gcc 10 5fb297ba3d app/pipeline: fix build with gcc 10 ef348e22a0 test: fix build with gcc 10 295ba7d0c3 crypto/octeontx2: fix build with gcc 10 Resolves: #1868709- Merging upstream branch-2.13 [RH git: 5dddb2d4f8] Commit list: 0047ca3a02 acinclude: Fix build with kernels with prandom* moved to prandom.h. 8a72db60ad faq: Mention Linux kernel versions supported by 2.13.x. 114ff63e3d Documentation: Fix kernel support matrix- Merging upstream branch-2.13 [RH git: bb436c2999] Commit list: 184a58e8b8 ovsdb-server: Replace in-memory DB contents at raft install_snapshot. 727bb3440d Prepare for 2.13.2. 714caaf571 Set release date for 2.13.1. ac51dcac87 odp-util: Clear padding in the nd_extension. eeef00da2f datapath-windows: Update flow key in SET action 37606fb5ca odp-util: Fix clearing match mask if set action is partially unnecessary. 5ad46c9a4d debian: Fixed openvswitch-test package dependency. b3a9dc6e5e dpctl: Fix memory leak in dpctl_dump_flows() cce57c5e0e ovs-router: Fix flushing of local routes. 8d0b409fcc acinclude: Remove libmnl for MLX5 PMD. 217ac490ac dpif-netdev: Avoid deadlock with offloading during PMD thread deletion.- ovsdb-server: Replace in-memory DB contents at raft install_snapshot. [RH git: 9f646ec051] (#1867185) Every time a follower has to install a snapshot received from the leader, it should also replace the data in memory. Right now this only happens when snapshots are installed that also change the schema. This can lead to inconsistent DB data on follower nodes and the snapshot may fail to get applied. Fixes: bda1f6b60588 ("ovsdb-server: Don't disconnect clients after raft install_snapshot.") Acked-by: Han Zhou Signed-off-by: Dumitru Ceara Signed-off-by: Ilya Maximets (cherry picked from commit 184a58e8b892231b44479b612bdfe2529bb04363) Resolves: #1867185- redhat: Add support to custom RPM releases. [RH git: 7eb5b56344] This commit allows the developer to specify a custom release string to be appended to package NVR. If the custom release is 'bz123456', the final release would look like -Y.bz123456.X where Y is the number of changes until the branch was created, and X is the number of changes after that.- pkgtool: Use OVS static version in package NVR. [RH git: a0b572aaa1] The package NVR must coincide with the tarball version.- odp-util: Fix clearing match mask if set action is partially unnecessary. [RH git: 6d85fea8b4] (#1862153) While committing set() actions, commit() could wildcard all the fields that are same in match key and in the set action. This leads to situation where mask after commit could actually contain less bits than it was before. And if set action was partially committed, all the fields that were the same will be cleared out from the matching key resulting in the incorrect (too wide) flow. For example, for the flow that matches on both src and dst mac addresses, if the dst mac is the same and only src should be changed by the set() action, destination address will be wildcarded in the match key and will never be matched, i.e. flows with any destination mac will match, which is not correct. Setting OF rule: in_port=1,dl_src=50:54:00:00:00:09 actions=mod_dl_dst(50:54:00:00:00:0a),output(2) Sending following packets on port 1: 1. eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800) 2. eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0c),eth_type(0x0800) 3. eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800) Resulted datapath flows: eth(dst=50:54:00:00:00:0c),<...>, actions:set(eth(dst=50:54:00:00:00:0a)),2 eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),<...>, actions:2 The first flow doesn't have any match on source MAC address and the third packet successfully matched on it while it must be dropped. Fix that by updating the match mask with only the new bits set by commit(), but keeping those that were cleared (OR operation). With fix applied, resulted correct flows are: eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),<...>, actions:2 eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0c),<...>, actions:set(eth(dst=50:54:00:00:00:0a)),2 eth(src=50:54:00:00:00:0b),<...>, actions:drop The code before commit dbf4a92800d0 was not able to reduce the mask, it was only possible to expand it to exact match, so it was OK to update original matching mask with the new value in all cases. Fixes: dbf4a92800d0 ("odp-util: Do not rewrite fields with the same values as matched") Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1854376 Acked-by: Eli Britstein Tested-by: Adrián Moreno Signed-off-by: Ilya Maximets (cherry picked from commit 37606fb5ca76aef478a51d407aaa06caf7fb9376) Resolves: #1862153- redhat: Clean old changelog entries. [RH git: 6cf8d909e8] Fix the changelog shift caused by use of static references and remove the old entries not relevant to the new tarball. Fixes: 90ac9bd6aa ("redhat: Use static references.")- redhat: Update the documentation. [RH git: c9571d2dad]- redhat: Add merge script. [RH git: 752c59ba74] This script helps to provide a standard commit log.- redhat: Use static references. [RH git: f1025c1515] Add static references because there could be patches after SHA_REF not available in newer tarballs. Therefore, it is only possible to update the references if all previous patches are applied in the new references.- Update DPDK configs to v19.11.2. [RH git: 98e6e9823b]- Merge DPDK tag 'v19.11.2' into fast-datapath-rhel-8 [RH git: 755e86c61a]- Merging upstream branch-2.13 to fast-datapath-rhel-8 [RH git: 735b3f94c2] Commit list: bef407fa7f dpdk: Use DPDK 19.11.2 release. 53e0568753 dpif-netdev: Return error code when no mark available. 99a4564348 dpif-netdev: Add check mark to avoid ovs-vswitchd crash. 22c6148a9a netdev-offload-dpdk: Fix Ethernet matching for type only. 9747d5649b dpif-netdev: Don't use zero flow mark. 39cc59dc91 netdev-linux: Fix broken build on Ubuntu 14.04 ac92cdbc4d odp-execute: Fix length checking while executing check_pkt_len action. 08ad9f6483 odp-util.c: Fix dp_hash execution with slowpath actions. 5351651d37 ctags: Include new annotations to ctags ignore list. d5484cf697 lib/tc: only update the stats for non-empty counter 998475d79f datapath-windows, conntrack: Fix conntrack new state 6dbbf0771e bridge: Fix null dereference on ct_timeout_policy record 3e5991a75e rhel: Fix syntax error when matching version. 59cedd3b35 rhel: Support RHEL 7.8 kernel module rpm build. 78ac2896d1 dpif-netlink: Fix Windows incompatibility when setting new feature 51e9479da6 ovsdb-idl: Avoid inconsistent IDL state with OVSDB_MONITOR_V3. 8ba057d345 ovs-rcu: Avoid flushing callbacks during postponing. b24ff56441 raft: Avoid sending equal snapshots. a33880c6e9 ovsdb: Fix timeout type for wait operation. 7077328846 classifier: Prevent tries vs n_tries race leading to NULL dereference. a29fe0d482 ovsdb-server: Fix schema leak while reading db. 1bb5be5138 compat: Backport ipv6_stub change 71acf83c33 netdev-offload-tc: Re-fetch block ID after probing. 23e3ae7158 netdev-linux: Update LAG in all cases. 85fe081852 ofproto: Fix statistics of removed flow. 6bd9ddc829 metaflow: Fix maskable conntrack orig tuple fields 1600e0040c raft: Disable RAFT jsonrpc inactivity probe. 168beb87ca raft: Fix leak of the incomplete command. da9dc791de compat: Fix ipv6_dst_lookup build error a09e22dbdd system-traffic: Check frozen state handling with TLV map change b267889057 tun_metadata: Fix coredump caused by use-after-free bug d323c5398f cirrus: Force pkg update on FreeBSD. 62cede43ee Revert "ovsdb-idl: Avoid sending redundant conditional monitoring updates" b52877a483 dpif-netdev: Force port reconfiguration to change dynamic_txqs. dc389fd319 netdev-offload-tc: Flush rules on ingress block when init tc flow api e2f6393592 conntrack: Reset ct_state when entering a new zone. 314bd235c1 ofp-actions: Fix memory leak. 1f12a91cf9 ofproto-dpif-xlate: Fix recirculation when in_port is OFPP_CONTROLLER. 8315f3cc98 conntrack: Fix NULL pointer dereference. 89c85b997c dpif-netlink: avoid netlink modify flow put op failed after tc modify flow put op failed. 49db27d213 dpif-netdev: Enter quiescent state after each offloading operation. bf2dcbfe5c pvector: Use acquire-release semantics for size. 443f8e2575 tc: Fix nat port range when offloading ct action d69d4c0537 travis: Disable sindex build in sparse. 25a7e5547f raft: Fix the problem of stuck in candidate role forever. 877618fc83 raft: Fix next_index in install_snapshot reply handling. 3ae90e1899 raft: Avoid busy loop during leader election. adc64ab057 raft: Fix raft_is_connected() when there is no leader yet. f0c8b44c58 ovsdb-server: Don't disconnect clients after raft install_snapshot. 78c8011f58 raft-rpc: Fix message format. f0de491257 ovs-dpctl-top: python3 compatibility 00dd014519 dpif-netdev.at: Fix partial offloading test cases failure. 6f86b10549 userspace TSO: SCTP checksum offload optional. b837d1fdc4 userspace TSO: Include UDP checksum offload. ad550ebc36 netdev-dpdk: vhost: disable unsupported offload features. 3f83220418 docs: Update conntrack established state description dd0293c8b5 conntrack: Fix TCP conntrack state 0aefc0eb8e docs: Update DPDK version table d33cc044f3 Prepare for 2.13.1.- redhat: Rename OVSCI job name. [RH git: a61f1d1095] The OVSCI job's name has been renamed to follow a standard.- redhat: pkgtool: use diff instead of format-patch [RH git: da2129ac82]- bus/pci: fix VF memory access [RH git: 2b22bcd9ad] (#1851169) To fix CVE-2020-12888, the linux vfio-pci module will invalidate mmaps and block MMIO access on disabled memory, it will send a SIGBUS to the application: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abafbc551fdd When the application opens the vfio PCI device, the vfio-pci module will enable the bus memory space through PCI read/write access. According to the PCIe specification, the 'Memory Space Enable' is always zero for VF: Table 9-13 Command Register Changes Bit Location | PF and VF Register Differences | PF | VF | From Base | Attributes | Attributes -------------+--------------------------------+------------+----------- | Memory Space Enable - Does not | | | apply to VFs. Must be hardwired| Base | 0b 1 | to 0b for VFs. VF Memory Space | | | is controlled by the VF MSE bit| | | in the VF Control register. | | -------------+--------------------------------+------------+----------- Afterwards the vfio-pci will initialize its own virtual PCI config space data ('vconfig') by reading the VF's physical PCI config space, then the 'Memory Space Enable' bit in vconfig will always be 0b value. This will make the vfio-pci treat the BAR memory space as disabled, and the SIGBUS will be triggered if access these BARs. By investigation, the VF PCI device *passthrough* into the Guest OS by QEMU has the 'Memory Space Enable' with 1b value. That's because every PCI driver will start to enable the memory space, and this action will be hooked by vfio-pci virtual PCI read/write to set the 'Memory Space Enable' in vconfig space to 1b. So VF runs in guest OS has 'Mem+', but VF runs in host OS has 'Mem-'. Align with PCI working mode in Guest/QEMU/Host, in DPDK, enable the PCI bus memory space explicitly to avoid access on disabled memory. Fixes: 33604c31354a ("vfio: refactor PCI BAR mapping") Cc: stable@dpdk.org Signed-off-by: Haiyue Wang Acked-by: Anatoly Burakov Tested-by: Harman Kalra Tested-by: David Marchand Tested-by: Thierry Martin (cherry picked from commit 54f3fb127d9c265a5724d193e5c7c6db29fb4150) Resolves: #1851169- raft: Avoid sending equal snapshots. [RH git: 3168eba559] (#1834838) [ upstream commit 8c2c503bdb0da1ce6044a53d462f905fd4f8acf5 ] Snapshots are huge. In some cases we could receive several outdated append replies from the remote server. This could happen in high scale cases if the remote server is overloaded and not able to process all the raft requests in time. As an action to each outdated append reply we're sending full database snapshot. While remote server is already overloaded those snapshots will stuck in jsonrpc backlog for a long time making it grow up to few GB. Since remote server wasn't able to timely process incoming messages it will likely not able to process snapshots leading to the same situation with low chances to recover. Remote server will likely stuck in 'candidate' state, other servers will grow their memory consumption due to growing jsonrpc backlogs: jsonrpc|INFO|excessive sending backlog, jsonrpc: ssl:192.16.0.3:6644, num of msgs: 3795, backlog: 8838994624. This patch is trying to avoid that situation by avoiding sending of equal snapshot install requests. This helps maintain reasonable memory consumption and allows the cluster to recover on a larger scale. Acked-by: Han Zhou Signed-off-by: Ilya Maximets Related: #1834838 Signed-off-by: Ilya Maximets - ovsdb-server: Fix schema leak while reading db. [RH git: 92a1e56c8a] (#1834838) [ upstream commit 16e3a80cf646f6c53d22ef98599d5aecb8310414 ] parse_txn() function doesn't always take ownership of the 'schema' passed. So, if the schema of the clustered db has same version as the one that already in use, parse_txn() will not use it, resulting with a memory leak: 7,827 (56 direct, 7,771 indirect) bytes in 1 blocks are definitely lost at 0x483BB1A: calloc (vg_replace_malloc.c:762) by 0x44AD02: xcalloc (util.c:121) by 0x40E70E: ovsdb_schema_create (ovsdb.c:41) by 0x40EA6D: ovsdb_schema_from_json (ovsdb.c:217) by 0x415EDD: ovsdb_storage_read (storage.c:280) by 0x408968: read_db (ovsdb-server.c:607) by 0x40733D: main_loop (ovsdb-server.c:227) by 0x40733D: main (ovsdb-server.c:469) While we could put ovsdb_schema_destroy() in a few places inside 'parse_txn()', from the users' point of view it seems better to have a constant argument and just clone the 'schema' if needed. The caller will be responsible for destroying the 'schema' it owns. Fixes: 1b1d2e6daa56 ("ovsdb: Introduce experimental support for clustered databases.") Acked-by: Han Zhou Signed-off-by: Ilya Maximets Related: #1834838 Signed-off-by: Ilya Maximets - ovsdb: Add raft memory usage to memory report. [RH git: fb32a78921] (#1834838) [ upstream commit 3423cd97f88fe6a8de8b649d79fe6ac83bce94d1 ] Memory reports could be found in logs or by calling 'memory/show' appctl command. For ovsdb-server it includes information about db cells, monitor connections with their backlog size, etc. But it doesn't contain any information about memory consumed by raft. Backlogs of raft connections could be insanely large because of snapshot installation requests that simply contains the whole database. In not that healthy clusters where one of ovsdb servers is not able to timely handle all the incoming raft traffic, backlog on a sender's side could cause significant memory consumption issues. Adding new 'raft-connections' and 'raft-backlog' counters to the memory report to better track such conditions. Acked-by: Han Zhou Signed-off-by: Ilya Maximets Related: #1834838 Signed-off-by: Ilya Maximets - netdev-offload-tc: Re-fetch block ID after probing. [RH git: d14e39f81b] It's possible that block_id could changes after the probe for block support. Therefore, fetch the block_id again after the probe. Fixes: edc2055a2bf7 ("netdev-offload-tc: Flush rules on ingress block when init tc flow api") Cc: Dmytro Linkin Acked-by: Roi Dayan Co-authored-by: Marcelo Leitner Signed-off-by: Marcelo Leitner Signed-off-by: Aaron Conole Signed-off-by: Ilya Maximets - netdev-linux: Update LAG in all cases. [RH git: 8b15547574] In some cases, when processing a netlink change event, it's possible for an alternate part of OvS (like the IPv6 endpoint processing) to hold an active netdev interface. This creates a race-condition, where sometimes the OvS change processing will take the normal path. This doesn't work because the netdev device object won't actually be enslaved to the ovs-system (for instance, a linux bond) and ingress qdisc entries will be missing. To address this, we update the LAG information in ALL cases where LAG information could come in. Fixes: d22f8927c3c9 ("netdev-linux: monitor and offload LAG slaves to TC") Cc: Marcelo Leitner Cc: John Hurley Acked-by: Roi Dayan Signed-off-by: Aaron Conole Signed-off-by: Ilya Maximets - vhost: fix potential fd leak [RH git: a9e6e35814] Vhost will create temporary file when receiving VHOST_USER_GET_INFLIGHT_FD message. Malicious guest can send endless this message to drain out the resource of host. When receiving VHOST_USER_GET_INFLIGHT_FD message repeatedly, closing the file created during the last handling of this message. Fixes: d87f1a1cb7b666550 ("vhost: support inflight info sharing") Cc: stable@dpdk.org This issue has been assigned CVE-2020-10726 Signed-off-by: Xuan Ding Signed-off-by: Xiaolong Ye Reviewed-by: Maxime Coquelin - vhost: fix potential memory space leak [RH git: b39bac1377] A malicious container which has direct access to the vhost-user socket can keep sending VHOST_USER_GET_INFLIGHT_FD messages which may cause leaking resources until resulting a DOS. Fix it by unmapping the dev->inflight_info->addr before assigning new mapped addr to it. Fixes: d87f1a1cb7b6 ("vhost: support inflight info sharing") Cc: stable@dpdk.org This issue has been assigned CVE-2020-10726 Signed-off-by: Xiaolong Ye Reviewed-by: Maxime Coquelin - vhost: fix translated address not checked [RH git: 7da9061642] Malicious guest can construct desc with invalid address and zero buffer length. That will request vhost to check both translated address and translated data length. This patch will add missed address check. Fixes: 75ed51697820 ("vhost: add packed ring batch dequeue") Fixes: ef861692c398 ("vhost: add packed ring batch enqueue") Cc: stable@dpdk.org This issue has been assigned CVE-2020-10725 Signed-off-by: Marvin Liu Reviewed-by: Maxime Coquelin - vhost: fix vring index check [RH git: 7c4cfd12e3] vhost_user_check_and_alloc_queue_pair() is used to extract a vring index from a payload. This function validates the index and is called early on in when performing message handling. Most message handlers depend on it correctly validating the vring index. Depending on the message type the vring index is in different parts of the payload. The function contains a switch/case for each type and copies the index. This is stored in a uint16. This index is then validated. Depending on the message, the source index is an unsigned int. If integer truncation occurs (uint->uint16) the top 16 bits of the index are never validated. When they are used later on (e.g. in vhost_user_set_vring_num() or vhost_user_set_vring_addr()) it can lead to out of bound indexing. The out of bound indexed data gets written to, and hence this can cause memory corruption. This patch fixes this vulnerability by declaring vring index as an unsigned int in vhost_user_check_and_alloc_queue_pair(). Fixes: 160cbc815b41 ("vhost: remove a hack on queue allocation") Cc: stable@dpdk.org This issue has been assigned CVE-2020-10723 Reported-by: Ilja Van Sprundel Signed-off-by: Maxime Coquelin Reviewed-by: Xiaolong Ye Reviewed-by: Ilja Van Sprundel - vhost: check log mmap offset and size overflow [RH git: 517d8488dc] vhost_user_set_log_base() is a message handler that is called to handle the VHOST_USER_SET_LOG_BASE message. Its payload contains a 64 bit size and offset. Both are added up and used as a size when calling mmap(). There is no integer overflow check. If an integer overflow occurs a smaller memory map would be created than requested. Since the returned mapping is mapped as writable and used for logging, a memory corruption could occur. Fixes: fbc4d248b198 ("vhost: fix offset while mmaping log base address") Cc: stable@dpdk.org This issue has been assigned CVE-2020-10722 Reported-by: Ilja Van Sprundel Signed-off-by: Maxime Coquelin Reviewed-by: Xiaolong Ye Reviewed-by: Ilja Van Sprundel - raft: Disable RAFT jsonrpc inactivity probe. [RH git: 3d9b529afb] (#1836308) [ upstream commit 1600e0040caded7eaa9b1f41926f9619d8e0ec8d ] With the scale test of 640 nodes k8s cluster, raft DB nodes' jsonrpc session got closed due to the timeout of default 5 seconds probe. It will cause disturbance of the raft cluster. Since we already have the heartbeat for RAFT, just disable the probe between the servers to avoid the unnecessary jsonrpc inactivity probe. Acked-by: Han Zhou Signed-off-by: Zhen Wang Signed-off-by: Ilya Maximets Resolves: #1836308 Signed-off-by: Dumitru Ceara - raft: Fix leak of the incomplete command. [RH git: 5c38ccd52f] (#1836307) [ upstream commit 168beb87ca63056e8896b09a60031565b7b60728 ] Function raft_command_initiate() returns correctly referenced command instance. 'n_ref' equals 1 for complete commands and 2 for incomplete commands because one more reference is in raft->commands list. raft_handle_execute_command_request__() leaks the reference by not returning pointer anywhere and not unreferencing incomplete commands. 792 bytes in 11 blocks are definitely lost in loss record 258 of 262 at 0x483BB1A: calloc (vg_replace_malloc.c:762) by 0x44BA32: xcalloc (util.c:121) by 0x422E5F: raft_command_create_incomplete (raft.c:2038) by 0x422E5F: raft_command_initiate (raft.c:2061) by 0x428651: raft_handle_execute_command_request__ (raft.c:4161) by 0x428651: raft_handle_execute_command_request (raft.c:4177) by 0x428651: raft_handle_rpc (raft.c:4230) by 0x428651: raft_conn_run (raft.c:1445) by 0x428DEA: raft_run (raft.c:1803) by 0x407392: main_loop (ovsdb-server.c:226) by 0x407392: main (ovsdb-server.c:469) Fixes: 1b1d2e6daa56 ("ovsdb: Introduce experimental support for clustered databases.") Signed-off-by: Ilya Maximets Acked-by: Han Zhou Signed-off-by: William Tu Resolves: #1836307 Signed-off-by: Dumitru Ceara - raft: Fix the problem of stuck in candidate role forever. [RH git: 9c76350e27] (#1836305) [ upstream commit 25a7e5547f1e107db0f032ad269f447c57401531 ] Sometimes a server can stay in candidate role forever, even if the server already see the new leader and handles append-requests normally. However, because of the wrong role, it appears as disconnected from cluster and so the clients are disconnected. This problem happens when 2 servers become candidates in the same term, and one of them is elected as leader in that term. It can be reproduced by the test cases added in this patch. The root cause is that the current implementation only changes role to follower when a bigger term is observed (in raft_receive_term__()). According to the RAFT paper, if another candidate becomes leader with the same term, the candidate should change to follower. This patch fixes it by changing the role to follower when leader is being updated in raft_update_leader(). Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - raft: Fix next_index in install_snapshot reply handling. [RH git: cc3d026992] (#1836305) [ upstream commit 877618fc833273d1e29e012b5e925d51cba80ff5 ] When a leader handles install_snapshot reply, the next_index for the follower should be log_start instead of log_end, because there can be new entries added in leader's log after initiating the install_snapshot procedure. Also, it should send all the accumulated entries to follower in the following append-request message, instead of sending 0 entries, to speed up the converge. Without this fix, there is no functional problem, but it takes uncessary extra rounds of append-requests responsed with "inconsistency" by follower, although finally will be converged. Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - raft: Avoid busy loop during leader election. [RH git: 053b78c8d6] (#1836305) [ upstream commit 3ae90e1899c5a05148ea1870d9bb4ac3c05e3a19 ] When a server doesn't see a leader yet, e.g. during leader re-election, if a transaction comes from a client, it will cause 100% CPU busy loop. With debug log enabled it is like: 2020-02-28T04:04:35.631Z|00059|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00062|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00065|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00068|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00071|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00074|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 2020-02-28T04:04:35.631Z|00077|poll_loop|DBG|wakeup due to 0-ms timeout at ../ovsdb/trigger.c:164 ... The problem is that in ovsdb_trigger_try(), all cluster errors are treated as temporary error and retry immediately. This patch fixes it by introducing 'run_triggers_now', which tells if a retry is needed immediately. When the cluster error is with detail 'not leader', we don't immediately retry, but will wait for the next poll event to trigger the retry. When 'not leader' status changes, there must be a event, i.e. raft RPC that changes the status, so the trigger is guaranteed to be triggered, without busy loop. Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - raft: Fix raft_is_connected() when there is no leader yet. [RH git: e732012d7b] (#1836305) [ upstream commit adc64ab057345f7004c44bf92363b9adda862134 ] If there is never a leader known by the current server, it's status should be "disconnected" to the cluster. Without this patch, when a server in cluster is restarted, before it successfully connecting back to the cluster it will appear as connected, which is wrong. Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - ovsdb-server: Don't disconnect clients after raft install_snapshot. [RH git: 8ff30dfee6] (#1836305) [ upstream commit f0c8b44c5832c36989fad78927407fc14e64ce46 ] When "schema" field is found in read_db(), there can be two cases: 1. There is a schema change in clustered DB and the "schema" is the new one. 2. There is a install_snapshot RPC happened, which caused log compaction on the server and the next log is just the snapshot, which always constains "schema" field, even though the schema hasn't been changed. The current implementation doesn't handle case 2), and always assume the schema is changed hence disconnect all clients of the server. It can cause stability problem when there are big number of clients connected when this happens in a large scale environment. Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - raft-rpc: Fix message format. [RH git: 914d885061] (#1836305) [ upstream commit 78c8011f58daec41ec97440f2e42795699322742 ] Signed-off-by: Han Zhou Signed-off-by: Ben Pfaff Resolves: #1836305 Signed-off-by: Dumitru Ceara - redhat: pkgtool: Use the oldest sha1 [RH git: 4c657a79de] Doing git merge from a branch to another branch the tag:C0FF3E commit is repeated, but the correct one is the oldest one.- Fix building locally on Fedora 32+ [RH git: d1c89e4d99]- Set -fcommon in DPDK CFLAGS [RH git: f8a379e95e] This is needed to build on Fedora 32+- Update DPDK config files for 19.11.1 [RH git: d771330907]- Merge tag 'v19.11.1' into fast-datapath-rhel-8 [RH git: 0b3abfb0e6] dpdk-19.11.1- bugtool: Fix for Python3. [RH git: 71f25b7920] (#1809241) Currently ovs-bugtool tool doesn't start on Python 3. This commit fixes ovs-bugtool to make it works on Python 3. Replaced StringIO.StringIO with io.BytesIO since the script is processing binary data. Reported-at: https://bugzilla.redhat.com/1809241 Reported-by: Flavio Leitner Signed-off-by: Timothy Redaelli Co-authored-by: William Tu Signed-off-by: William Tu (cherry picked from commit 9e6c00bca9af29031d0e160d33174b7ae99b9244)- redhat: Skip NVR check only if building rhel-8 on rhel-7. [RH git: 2b9f32bef2]- redhat: rh-dgit-brew: Skip NVR check in RHEL-7. [RH git: 6280d8d29f] The RPM in RHEL-7 can't parse Supplements tag in the SPEC to get the package NVR. The NVR is used to check if brew is already done. error: line 241: Unknown tag: Supplements: (openvswitch2.13 and network-scripts) error: query of specfile openvswitch2.13.spec failed, can't parse Use --skip-nvr-check to work around the issue.- redhat: pkgtool: Use BZ id from reported-at tag. [RH git: 3ee7ec51b6] Some upstream commits might contain the Reported-at tag pointing to Red Hat bugzilla. In that case, use the BZ id in the package's changelog. Signed-off-by: Flavio Leitner - redhat: ovsci: Schedule the CI job while brew is building. [RH git: 1551e1e70e] The CI will wait for the brew build to complete and this helps to have a single place to monitor and also to record in the CI log the brew build.- redhat: ovsci: Use the correct job name and params. [RH git: 220f32afb2] Jenkins needs to support different use-cases so fix the parameters to be uniform and the job name to allow multiple triggers (formal and non-formal releases processes). Signed-off-by: Flavio Leitner - Add compatibility with RHEL7 git [RH git: 3492995783]- Use the date in UTC [RH git: b53bdb16b8] In order to avoid changing date in changelog cast the date in UTC- ofproto-dpif-xlate: Fix recirculation when in_port is OFPP_CONTROLLER. [RH git: 4ee0f6af9e] (#1775160) [ upstream commit c5a910dd92ecbad24f86b4c59b4ff8105b5149fd ] Recirculation usually requires finding the pre-recirculation input port. Packets sent by the controller, with in_port of OFPP_CONTROLLER or OFPP_NONE, do not have a real input port data structure, only a port number. The code in xlate_lookup_ofproto_() mishandled this case, failing to return the ofproto data structure. This commit fixes the problem and adds a test to guard against regression. Reported-by: Numan Siddique Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2020-March/368642.html Tested-by: Numan Siddique Acked-by: Numan Siddique Signed-off-by: Ben Pfaff Resolves: #1775160 Signed-off-by: Numan Siddique - vhost: fix packed virtqueue ready condition [RH git: 0b4e7827b8] (#1812620) [ upstream commit c5a910dd92ecbad24f86b4c59b4ff8105b5149fd ] Consider a virtqueue ready when, apart from the descriptor area, both event suppression areas have been mapped. Fixes: 2d1541e2b6b3 ("vhost: add vring address setup for packed queues") Signed-off-by: Adrian Moreno Reviewed-by: Tiwei Bie Resolves: #1812620- redhat: permit make to fail when pkgtool --gen{spec,patches} exist badly [RH git: 61807f941e]- vhost: protect log address translation in IOTLB update [RH git: 0d4370404f] (#1806599) [ upstream commit 4f37df14c405b754b5e971c75f4f67f4bb5bfdde ] Currently, the log address translation only happens in the vhost-user's translate_ring_addresses(). However, the IOTLB update handler is not checking if it was mapped to re-trigger that translation. Since the log address mapping could fail, check it on iotlb updates. Also, check it on vring_translate() so we do not dirty pages if the logging address is not yet ready. Additionally, properly protect the accesses to the iotlb structures. Fixes: fbda9f145927 ("vhost: translate incoming log address to GPA") Signed-off-by: Adrian Moreno Reviewed-by: Maxime Coquelin Resolves: #1806599 Signed-off-by: Maxime Coquelin  !!#$%&''))++-.//123455789::<=>?@ABCDEFGHIIKKMNOOQRSSUUWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|2.13.0-128.el8s2.13.0-128.el8s2.13.0-128.el8s2.13.52.13.5    .build-idafcbca84e447fe0064b56ecbc32433ec4bcd51f3ovsovs-2.13.5-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtrequires.txttop_level.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycdaemon.cpython-36.opt-1.pycdaemon.cpython-36.pycdirs.cpython-36.opt-1.pycdirs.cpython-36.pycfatal_signal.cpython-36.opt-1.pycfatal_signal.cpython-36.pycfcntl_win.cpython-36.opt-1.pycfcntl_win.cpython-36.pycjson.cpython-36.opt-1.pycjson.cpython-36.pycjsonrpc.cpython-36.opt-1.pycjsonrpc.cpython-36.pycovsuuid.cpython-36.opt-1.pycovsuuid.cpython-36.pycpoller.cpython-36.opt-1.pycpoller.cpython-36.pycprocess.cpython-36.opt-1.pycprocess.cpython-36.pycreconnect.cpython-36.opt-1.pycreconnect.cpython-36.pycsocket_util.cpython-36.opt-1.pycsocket_util.cpython-36.pycstream.cpython-36.opt-1.pycstream.cpython-36.pyctimeval.cpython-36.opt-1.pyctimeval.cpython-36.pycutil.cpython-36.opt-1.pycutil.cpython-36.pycversion.cpython-36.opt-1.pycversion.cpython-36.pycvlog.cpython-36.opt-1.pycvlog.cpython-36.pycwinutils.cpython-36.opt-1.pycwinutils.cpython-36.pyc_json.cpython-36m-aarch64-linux-gnu.socompat__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycsortedcontainers__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycsorteddict.cpython-36.opt-1.pycsorteddict.cpython-36.pycsortedlist.cpython-36.opt-1.pycsortedlist.cpython-36.pycsortedset.cpython-36.opt-1.pycsortedset.cpython-36.pycsorteddict.pysortedlist.pysortedset.pydaemon.pydb__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccustom_index.cpython-36.opt-1.pyccustom_index.cpython-36.pycdata.cpython-36.opt-1.pycdata.cpython-36.pycerror.cpython-36.opt-1.pycerror.cpython-36.pycidl.cpython-36.opt-1.pycidl.cpython-36.pycparser.cpython-36.opt-1.pycparser.cpython-36.pycschema.cpython-36.opt-1.pycschema.cpython-36.pyctypes.cpython-36.opt-1.pyctypes.cpython-36.pyccustom_index.pydata.pyerror.pyidl.pyparser.pyschema.pytypes.pydirs.pyfatal_signal.pyfcntl_win.pyjson.pyjsonrpc.pyovsuuid.pypoller.pyprocess.pyreconnect.pysocket_util.pystream.pytimeval.pyunixctl__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycclient.cpython-36.opt-1.pycclient.cpython-36.pycserver.cpython-36.opt-1.pycserver.cpython-36.pycclient.pyserver.pyutil.pyversion.pyvlog.pywinutils.pypython3-openvswitch2.13LICENSE/usr/lib//usr/lib/.build-id//usr/lib/.build-id/af//usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/ovs-2.13.5-py3.6.egg-info//usr/lib64/python3.6/site-packages/ovs//usr/lib64/python3.6/site-packages/ovs/__pycache__//usr/lib64/python3.6/site-packages/ovs/compat//usr/lib64/python3.6/site-packages/ovs/compat/__pycache__//usr/lib64/python3.6/site-packages/ovs/compat/sortedcontainers//usr/lib64/python3.6/site-packages/ovs/compat/sortedcontainers/__pycache__//usr/lib64/python3.6/site-packages/ovs/db//usr/lib64/python3.6/site-packages/ovs/db/__pycache__//usr/lib64/python3.6/site-packages/ovs/unixctl//usr/lib64/python3.6/site-packages/ovs/unixctl/__pycache__//usr/share/doc//usr/share/doc/python3-openvswitch2.13/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protectioncpioxz2aarch64-redhat-linux-gnudirectoryASCII textpython 3.6 byte-compiledELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=afcbca84e447fe0064b56ecbc32433ec4bcd51f3, strippedemptyPython script, ASCII text executablePython script text executable Python script, ASCII text executable  !"#$%&'(23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr PPR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRRRRRRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R utf-8165c868c6e1900f731ea570a078961af99c3fd017f736884efacfb6a90fa1aa2?@7zXZ !#,pb] b2u jӫ`(y-"J`a!8RXB+t$ȡ#Sw/&VHq㇄ޅ?hyhW]KA4<&o h7ýΧ#%E['fq&X@e eak-iTHީrziM?&I<FE/;1W8OX,p#38\fSח4\mzzHtG:IOH3FOz W5Po˝b/<]Q$yuJR6T4r,.]LoNAv_pF*( 7M+L)#>^ilsY.RB0R,!s TqM6Iam02 ]4Z C#^>ێPӥThXAZϿrOA zil}nrIw¸+pѱv?6*IVtAOM%{ȯaΉgetaCG2( @,aMг MP1 % n( $wEwL`E፨fUp qw )c%H)5Ÿ4nܑ).r$(J|2Dİ on $+QԚ竿p*Bk?.:ts:׿x.|Rɣ FbiFlq<*&|1q69\ИzEm80:BEjqqRXSD Q88;!$3G/3z`: ӂ 䬕E臥$&w o}j9WD [ -"(quꭊB#oce1&$7)Oy!SS]"n_0"Ag^PJBideHHxϏtKn rX!l|)\ؑ[rCڃ!t~lBPShߔ\О@(Vl·qeZ3RMp1B\rEhM2>Y.d*K>ˁwLc8Xg zzc76m;ChΝwč#o=9b2K<1VfU&4LGw7B~s)gj|_B;XK)}o#(?؁M2{ |b#.'?}wWD{kFJ '\Q5{0<ןjN)'X4E s >vmuSݍ"vt;#ʃ⚨!vҋ^WH='g>q<?q;![l+b03KJ  dkIT, c'Å2~H*Sи?e$Gj%I wn ;Li^i!!o&Nhքc4B3oQmJAv+v"A:Td)Rf6"-ljXU#<Ɔ@1 QLu0[eRXߔDf䣾=E@wN?nMڥo2N@s OBF^ClzƝta._c,%F4|8D'OuAfsEKPԧm&"(0R^u#DiHRރ>B'h[HG9.:ouV>{nJ%SeyQ~8t5lmM,Z܉f**,F[tm aNj^#!5|q2X%=XR,,KWaN!̋7FJ +jΑ>>WG.n e *ϯ OkM+72Bvl͑GJH>UiA8s &AXJfGhNΩX'A>DޕgkgK(PQi)& Fؕo[T̰tD>Qmv}[ݼܚpP2?DY#5If;fމzdP2&z V=A^:9^5硞Aj4/y,6ar[_[,L+Iscm6tnNz%)y FL] 8RC^?mtwuYoͥS»H9wjrcs`0G(-{CW;'rLi~# 0Ӵ +7xLwLF Jq]t 8MqB}N]ڄ0faĮa_ q? u>+OE1o+{0O38`|[1!'FiV8_)hxڵKV?t5k8 M -~lx&M*z??AbuU9\>3C7e{m3#6.CUt' cj`Ot|_uV:A>.J@d]bcy/9 Fe|*yZ2{-]wn/AhU ӟS y(,'a # CY7 ju3ζ{{=rV{mUXg4dB,d:a.[ It)x#fG&ƺSzYysY挅S%8f gq!ƹwΔ xw7wo{`NaC#gtfXwm9 ѥ! 2LꪡZ 4űsGͽ5}ҼnNnr/94aQ\c_ F?<3rUyjp]Xq?_KA|f59!K60Ȩ /@xk`i+@/'5Xx5U[3t i EFbň$^ ʌ=\Z^ 6I^SMWJi3<o`.ǰ.y-`*t1.rs pkcp|K?E/Q[e {e'cRl*C^h@m< Ӛ K0;KX9滾3+#d+4y ,ڨ:9C~FĀRdT%r~ݪf$ˬ9:F[U@+q|X?]9] &o&%FDXgZK3 .f;_>x݆HJ5<q,O ej:kPE;8~*q-wܩS$+|[S.dP[@k=g6csMO.:#J:wQ©)F~bL }=slZr$KǙi=w.:gt"ECL& #0se\GtD"/S!_!E^UvEfBn\V $DH%,DC҃luVeŸ}~ҙ8PF0%P2ڽQ8RB|ʸ_,ClMے|^ _\JJ'5yۆ6N| !Ɗ}NuENa*MJ8+{_~YЧ u G b7d= !fw{Ѧ9FcM!)2XGߑG#z1.QU 3J{ -rʅXc:J8roF2+YڴܺBecUFuѕːD>fQ'zX2ۜ  S@^:D(V&ެ)t|ʹ¬ 4x#_:xs h;XӁ9 /?`' (n]@>'$2k3j8rtjQ7;A)3θ8{kK7Qݸ}QK0jU:ApӁsE-y딶~23 ˿UM n]UOQ?jM@UV~d ފZ /i~բcq\Q񦛟~%mqX`#@Mh'KaT g#(U-]@`#U\cly +׊_ciMHI'mMQʘl&Ѣs5 ^E,x ig@JJ iAsXi{ Z)UՋ:IE1 e&'HFdz1j8>~*t?],o͢9mAyɿ+v U`+PLFm3hi;Z{p6;wUۇG%[@g9^&zxU<>vj؀Tc.%o&Wb+|!Xف|%Pwf!vugaЃ\d`o3d}\Ɲj"^!}4Ɇ-" <~g1-k0l[ E3-9^2GiP>j!X18瘱Ӗ$CRC)oi8~~2gxGk١@:lh>a1."Nn)IU2d+Z0 >eŜx_1-PP&l(@P{8?~6'È{!l5]A9(d-ckKNjQ1%%^*y kxS:&$ݏ1(Em x9wJ#:D"DS3oé?hZ  .C.9ǟo~K9' 0WyVIWhM K`r5苽6D# ]ZNuy)e;&"t.Lz`d5xI/dCjw>]veFY%_ܶ3BD:@X5LwTm#÷Lc{'~K 3udQ_ڀbdW!TTd6J`|=3i] SF `M|[95Hl&h/93RY&X[?"̯sn*uζULWHKlN |+ 2=t,Tb8*BN4X2Wpݯ}~U|pyͰ2ŜA =+&1@.pH`n=74Y*E ?pFg_\/'lz`>mdO6iߞ[O?si䙝YuϏ7= n U8߀Jk$<@SGI̩ެR.e?ьfn#vlRPa@V|\|wo&l^R dK]L'!AQwmol>gZIhAbPql[y9fUB!&#|Ǯ_YiQW`PqHIV-($ZaU7 L\ C![,<`0!}zlf\ҵh)9d4i^}S70/3q^m0 Fzr6)9T<z%]_i` ?2x;/p3=ln]톰)uI݁!|rFk8)JǷwr+W-4r.`xXDPy++j\3 u 2JZ#qvv"%Y]MOBm{\^}"KK`9zU~A+Ԩ:Na8]K7ԄH6* D&"#fp } G5$nh>/(%!UY~]K;hh[{-X>n,+1^/)ڦJ0{t1ʓ%cRw^X8=ois?-(|m1 QhލUj!בQ7O& )b=έ3Tp`N'l;Z@) Am fܡE .|ND^ +9!daC€AT`,~B\ŃfQ uG\\M38 \I% c8Kz1$xV:s ṔltQrgƒ:2'o Y]y?*.ǼJ`[ 5-9n?rK$ڌ+%W73SvHvȫ?J)X-&f䲎EDW sҖc("?N!0b &+iΝQJ<8%A5Wژ"Mx)'IԬSDxkN`z.-/M?ޡkZy)۞7n(`j4q}` x?5{DsPS98 %k >V}44AjhΤ@z0$Is(ns0T ~qwmYe ˓LC NY<+a}VOZ(:LmGPG78E2/6SCd4̙N+Ύ 5.~?<@_[ <T%qMz:dkȝGX*bGh@EPnw _O׺l(!a&hsd_ϴu%I7AT'F.+1)rjcI4ՅB^HЛalgCUȾ- f޷9a€ :j&aOgy7nܽX}dwb!t̙;I󧶐j6;5ϛ/s )}- qI< NULC$Sr؁HM;иDׅvd[b%&&r0AP;Q3]0.)Ã)E^‡N^H Ʉ܅fH2j7P;OP}3]͎h:$,RGږmyZI>_q܆MGÓ+Z-dɇyǭ +@]ٜ!Gl j0GxVKȲQ(`$aĕRY+Vфp82_wg8`(3h P8`~\"Nk|dYr?RgZ8REXgWrۜH7l])B$+Vޤ̓ef>^JA^M_hLP5{s\bbt'{YrTlGt"īO\=RܣQUQV86)E|賾B%ݗ~B+$@AHgih}y(h!Pf  f4z];weJ+^em-<^BבnL;N̈́ Fk| bp),m6sya邻Nn{Bmz{yr0TouQWMI)%xG%CY AxF(_7MO{qqL^V;D.JNe8ήi 4q0 SieA92PqR }ko< q@@7eYb,Y ڄS|[jJpz'Gv<{䋹vL G^Xw̺+$=nִ=l>[H29Dfuet2;[ }Q>,I5=0WZ1ZKy:G^@.1 PN MTg~OL@k@X6ѥ2"#3˩+ O|v'1^wH ϒYՅxMi$-0bxCl0`mѕRp2-5oMrWYD0ڣ!9@#ָg^ЪJiGG^g,&@PxȹMlwœXSok#B 9iCrKe$5A3Q*)7gC5#c莅}s2I1u`5Pi s:y. e"P=gmThi% L`Y,M+D« ކhs7п[I-8Lhz "tIAbiH1VycwC>k\WW_+k՗cy5,%W*FɃB+z9 ot?(뇊^1o;5 b$Z5(:; 9ByÁ޽oG6`SFcXbv_nIKNI2w;(?mRlOD5mJsHRyjc_1V8[d/w/p. ~Ҩ]=Eq͇VVe3KkZhs(l92eѭ<#^7A"Ӗ&{$S rX8J`T F)Dhll [bԦ3>'*8Oе5erR=C 2LPj<_}E=/Q\p;6=Y1bZQˠh,rkhK3NsURwU^s=ۼ$0ۍ8rbb8;ue"nѦz=h,ÿ\O&YhD+!sk0u77<2 QW ܟSpx9ZnBdQ(Ι*_t-}dJ=Ln\De{~[b`749e.yfslՈq"}8g|^c~`+) gJ; S(ۓjb>iz&zdug_s=vRv;шF×UYf \5+ 5Sqi_0:ա={kZG/Mzȴ.D/c@m'H1_吽:*Jȹx-%ЌO/o%J] G*'Sĕ?͡?Rx0k'k Z S S=O잶+0Ɏlgx=\2rwWKcE?"3|yه1Q$W*C20 u,qsZ_zхXn[Y6Vޖ5 e`K w >WAfZ]ycǽP<`<%@5qAm@ ElD4T3ir׬dFZ+ʈuuNE<=>5Y_:1R[L̝E);wlxO`art[bneA#ׄxet| Br'G|`)Ta8\ٶV:g=D Qݐ `yL)~ϼ J^]{c˶3C\0|PEƇWo# *w%͋5WkY % In}>(AqC'.^k?&v!WK*{0C5"MPFw/*Hgqq$i{sa=I oY|ÆC 9J`qzv>tcz@#U͚mZD?•;; dZ+srBOA -E,S`VݷUlW@|%u*lW%5+.sԫ\Q^߅ӧ|@bWt]P鼼p#X+!֑hб^w DqǸ 9n)"DI;'˭}]˚Q2۱JT 7}wˢul JuFr{XJ:l?rcV !pL>0+ 3HWg<3Iv[m_f:tO!]Ϋޟ (rL#T}s.}ǀD =l]KO&)zМ غ%A0\ 1a<椔j9/-'"Sd^qƇ':J"b{C `X[\UCԱ`LQ}kVeKtlzR18i󝽨:T8/̓J,Ygoqց 8! P68 !#GX5݁?=RR_Ƴ`ur *9K;Ѕ(xz6 FKO[tSͪy1=dHy)[&jqBE!tzsFl4.?pQ]M+ME%'HjT}ҐNh%YmhDsYMI &ĭ*2Fʨi>>e BnD&nyM8ߴRqyFZ=8ņЁ/МZ=55EiWt,t$ ]P9۳(JB9}uǺhnX YbMLTwnۧs-㛾AdB΁u*†"jDP$= *'Lį{fe2?M2}5/Hr^,şxhx97Ͻ64HSP 7"&0Iy;/} "KeY-w{YqcEu\I*}/udC2!۰rτրq{؝$E&2d z#SLFPK玜rx8=fcJnWEhqn P3@ X!:>ƙ>X[Pih Cĩǚ*Xz F4&g xw#R_ʯ8QO|M溸5cB1"T 0+xt6Yy?匸s\ %/U r7G$l{*Eu:T0I©k܂>^KܢQ*qVf%"*`.Fn GUcUt2ɻ2qVSR~jsJNVlD~Jr^-)xRc>:KHWŮI ;N ' tBko:Y=Ewk#\_x)Ѱ.}uݡ5)] w4@[xi_YC"vפ7kse.'9|.ax'ŅG;ΰ G0T@WMe@εL/ćrqիĝC4Pi.5M7"b q}ak.NDc93i?FTwRo` Dn;y73rz~L+h/L󵩃VC2hwɑ_5t:@F%:_5Ǎ n? +E qki3 (h 地]ag"rKq$&FQߔ P>fʢ8 {G,\H([! Mt}5tl 5 ^/ލ#M A<|SUqzJXz<3L@Ơ-熮h~fӭ)[Hj^H` 'Ee sgعG]XmZNÞ͉ia?X7Nvn d^`{Իw dijQ![Q)V̳߱&dC6458tqdEwyL`iFɧ?Ģ<?IяuW d4~潢>Qo HS奈lXcx1nj{ᑯdtFXfWԔ<8t0/OK/*vbۅ$) Q|ڱԹ?OV܄UIpASս73桪 q²ޯշ :8+6B2ܩ@CXz MS[]5{䊭FΔY0g8df'j\^Iq 7dLPi Ƈdhu$Y0uR6*Ž3;s',1/I_m0 +a*_xFrJAA$,YdnWg~mH!7lLmA>(B!zϱ `XTn/cŝ6,`wtwK E|Q_@ɻ? xе(Wu棸=WƠX.|Jܼ"NlҕN'sx$V=@E[\K֢7ADQr-yUfzܛò-s {,xOh2##nĘۃ#r;}`a+S';i '-MruD?0*Etsѡ1Qt5r?jʔFбȇ%c<&苽aǤ'2_%\rmЁY׳j‚fM]kWҽ ˎIAm(FPg)73)j_uaئ Ѕc ]T@AkG^=4=%a툤?HCrMIO !9&uS}y =fʞC-\ /~InwLCoӐىl9ꯨ\4}rҤķvDaı2ٸ MfR>쬜6C9?inIݐ17 @R9UT)M0?D-g๸"~ꙅv`fEH?YίF=NJQxw K*'Cahs+R/ ws[ boٻ᫏eHKߌ''3_JVPLWQJ/((L-p,_$.W>'h>V7 7K⓿n&NiR4 S%A>cYS_z:U>憉sכMm6or3k}m%MI\d夨IR9 ހRP2jˎ4qF #Hn#iWL -!mр=y`#5xM8jfB.B \PV{3Ρj*^?<'GFnDtPDy(㰅NN^12{ܸ*Cݤ_Nk/Ût<ףDs$Q脋! RmrA6tK:L!9 m ^m7Ud{6kB%륬 +`y$\wXjox6Kt 2X%ڝv Ƶ+`Eij XTX=9s]r81 ߯1Jil\{a Yr? )Gs-lꌣZvh9,@6h ,;@;tQzl3EڀƫZg zV7cSl~ޜ8u`돣"Ewa~ rr2E8}x"_|@U^5{¿ЧƓ66"RQc| }D2ݳS0/~M ZB˅WjR! pT63}j@07g+02}_$ӰS+%` k*t*:|':#'RKPw\_X4eBZAmX GF|fP?zJh7 vEJeyͳ0KP\gvikt$ŰH`/0PؿC6mF>>$T:I \Tn1\X4HyS:I0.P·(n{0i &ؔi;ݴ$LGܥ1+gՁ)C5_36D  bcT~:gE1 9$;qC؁+ERK^e9T U%é0N"ot-Ieĵ26J~r/oX).!ʓ@!^@ Q *8deJК^3SZ#P OpvbF=݋g?$Id?])&[(Y[.O1< IԛgW=M'vUNs,Qj.:h;EJJH^BR j]B>l{-@oOL,xkIf,T{oѽβn1av -BYH2ơ jf"5~7V"-NͺbTy|sț"O)l[{3$}"ЌqD3=djMR d܍BB6*k ,NR"cO0+ p)Bru[=?! S5HzFh;6*A"(p[23€637Ոkq7haFڬ>gꨞmӻfSUJ .[e_S>%C> 3;晆Y !Sƻڞ3sM{_>uP dT/W:I,# ?Kؿf`IE3-0FǏu 6d@Xw"wI\c@(FǠ1/˵OP b&ytgyõ-"9<ֵKcgN| ЀLFN=ڼ_“m9k7FG^+ / &j2ۥ\A C{ 6kZ~bq6"9n=|DrH' *6PՄ C\IOƢ>R;eUXK4`ђݜH4tlJ% zQWj}u(_"֗AK 0`;u׊8srkK<,_J: y1 S!e-` N묲k>{nc0i_vYn 6 xmR:ٲ# <*d+T^vg|@`Rפ a6QdM&<ʝ'F=ۿV 9h'bL86 YUE篴g`/jNq|Q/;ߠՇTl@=/ eqȯSIIKav2Jb껆hY҇k[,&3^ 9gUiv8u:iHGARNCܵx>@ddI\#ԫP2ӊi)xP3ngnsl9ne.b`C#T_'9p 6s =k=-f .O|r5OMy(w)4eo5͖sbdޟ;&͎hrde( m;ZdwU . "q8m h@X|WBU,3\бΜ&"콏 EjOb!:# +J3$ cvJ2'=.|< SY丕>aaNWŃR@#TST~j8c9~OcZz16)fCuO,x}Q9GR "m ƧajUuFratTgĒa[~R{Kc-* K A$tMw*v1&K!*R!˅NIFa5^w+2>ݮq5R#j2M X͕5J+ˤ΋WMz7.qNJT i)4p%6Kx!mu U>B!y~]/$ŨZ\/dp葍.GDk"r=#@DNg=Al_̔hysY(1#rfwgO39}A{#T0þ9c@BGkEkz^{h<_J1*`?;NFc؃J׸?qIB|,Ӧݍ*Jk 9(w3Ile8mQxeV>_=wHSBà{Q}G i:[ iQQ+3>p emIi?s>#3DxR*(̥bi)RI~(Ě䂟rh r!^D}_3 T LSGyD dӑL<_x$HВ%$WnvK5`BiLnvF+q(0n UWtLXjnJjRvD߰{Q}n_mL{~;LeYW\ iR˸n;Iuڶ##Ԣk*p"#IlMp"%F.w> /C nd-vg*wX+kp39K3~BTL^`Cɕb_iʇJuO+iq62uH]BY;"#*vMZ{@_?pg@͂J c:!(ikVrQsS?т?|KW~X,Xչ 1?Ԛwi>\u~Ok;O3EnhV#zv1h<_(ؚ%$zARLLs[p6j? V4-k d( aw=,[ ӫ_v,1*OAݨCۧM+.b'Md uzc(YyCDTt\4yV.@QVwk%Y]4㻜ꈿeܜ4OBlO#(#N={ Vxiou]UjjbSG)errw*0G*:HԄ`&jҫ=NZm3mՈc ~IPI#s@zGh|kڣ,#Tk^ N°OT Xq9|]yfbˏ-V/uHorfb;nŨ$_d?I?ȿP~Ss59LrC3/)t؀yę,KWXo`CF O_2!MpTK!,W+R#-*H`36X&wD U/{]2xeYa1EO2A: 4|S[]4E- Ok7"00LV@ HR<ϵ!(xs](`}r~JXٹ(Vz/Wu}!Jx,p_ؓ>Ƽ/Hd.ižpx" eʮ)Zf"U1٬Qr5!/:5p.*#<_XXVff]dk2vQgE@y5)Go@V`*XII/ oGiHrp*S]^{*(8LfͭQA ;WyaVtr mS+eZcvye3&jc6p;Ǝ-uΉ 9&Qvan9jk>tȵ(-T}mB;/?aƎ$'F8Ct霙eg'VRW[$!DH͘|Kf%=ܷu4ruܒS,50+|w (IODZ,݁1:5E/TK[=D䑨yT%`iH.>JȤQwG )l-l &^fWX{Hbwq f,EgSO}RTTΧvjW]x"e|oRu\>T Ę;Im\5 Փ*Y<@SP|*eRӲ,4"g,a,MSfjđ,uk5j{yM^${2M V0yyYA<,Bop%gܤJmJf`96Ի]Zip.x pP|4x^ׇ[kAU?1{BM=H#n졒#S_YO 9vi |Pw6eFd5ٹpn#k419tM:\~Ǟ׺㎔/l7O[9P.NO"_Wzi[Rc[w+U9Q3+ƞ* fyu?rXo&IkpZ*'aP Fkj!-v!?9r`9"CǷ`;T߾\&[@40`Cm[Th( 6T)PEm\|V v<`@jvO Ϊ_e n0gH Q8PE1ġy%#_Esz_S,ty0 & ưGk~-_T{}X<ĻC-sov!<]tl(l!EV 1mA]ѻ(vCt{ÉKJRI͠]7"`Θ: "( ^<*,6.+Я|Mj>$;g$LƧ m"}{tU\{ 63 z7|)u#)ncS{e݌s]H4g7 Sŧpщsx2(rbg2/]ng1|EBx c<6$9|}\Kv0Kt`8i[M5-B2fQq>B=/J\{% 'KU.OhW ̏*!R&[\I9e935:Dd[r%no&W vz|+YӃ,5fx<w+7=݃C:&h7"ҺC 쇭k2%"Dcq_F1~pBf@}ǍD*6B4%b2J mb:vDtVG-fj#u :޷Y[y|3 ,9vcڗMNS!yAWx'^Ϋ .eXbͼ9zRm*g" y4>eܫ07rU궨75E/Q\0! G-?8w+HH'V41ji{L& rIқ̹mڨVkS~ Pjǿiü(wo h2Ca뭌O=F/Oc!ӭizQVG9YX<4v_aoDϭpC2˨|bZY E@Hb!4y3Q.ȐZqhuozÖ.eV3޳s.DUB3s{K5Q&aR>2{#1; 1 3OF{l1, OdI&ӍVRkwa\q{{|2;_,KGNg/# W'VkX=B|i ;O1<+X}EnUjFJ/h{g3s-ã-ŋt*Mط݀fѝ7&gU:uuAmH'L=46P5vM<Cc#ɴzQF2O]` 0%> Ckcy I(U^ɜcNpizK JIYG8t.rJSa&~ע~ FAd 0B= X#x2 ,'#=%^6lr%V= z9z|ijDW$Ѧ池3‡\g$MB,}0j˩5#2FP%_ 9w ?9{EԮauyڵLpO3Υc~ʊҵ׌jSd7 \"$b!6ʙ<* .}pl}pM99M^}OjʷXX0U]I5ptFUhγȇSgp*(wbd򂳵\&a]RY)F<ŋXePf%,Lw7HRYߋZ:ρo'zLd,PD.=@+Dy](T&ٍ3IV#=$Sߟ!2Zj֩GoP+tCKORaL;lId `~_Pr K@v\8m9"1>@[KQY; EWKx=lە\>'Q-]ܦ:L'gyȄUS/</*Eǝ-8cf׵ZEfτ^GyL}X7|X}4HGVP_J)G:dE^7EPЗXir,IйqG.;R\dwMiiAEwTTֿkKTϚsܧL?ܵ2͜4Q7?]I 6FոcIlOL;1 &L'.H pDiae)b Y^*9GY@AtPuPgץ< t-zk;-]kfv*dݑNHMC xݽz0t\yljO3Ak#%81h#p040׽zꖨ[Ɣ hJ. _% qҼvBcxx R\*1MO\(Α‡1 [X_- ̱k*=_zm@W&0ʨEZd耥֦JO~0k R6qM <Jo`Wd WMĒHçFv[{/.*Qdqai*bκ]y\tarJ3׬5gCz9!n%SRs:Xd~HY1*E= >,^R`>.g piwQ[t*KT^I$\z<5E.PڼN2c/c$`?ؖ%|n[e!}P?whb`EZ]v]'k:3pjaY]zh95ʍ,1:ݽ41FAR~^ː+ia)K ,V$vE`U2Ma47_ht&͋:"H5<;nX58+P{vV!4H$,mη«"Y,K% t){o?p*.H9"Y@z'SwG#/H΢5婞-4s]/9nQ!3PcNA(f܇M߂t+xll;Zm)G&-UYC0MIM"ʭn X+އóLJGyJ٧1?雴ewM2\ګWYnɫqFNt Qskl@F䉵%|:Ƣ“B! /am1FV>^Ƕ$l+. WD0sww.KFƕX왰f-_ʣfHd. aO^D^`͑4ǥhcSLoIͲ J۵.D X%"X˕?DWg14Bz5^n(a)ѷy8Ԑ)z:oN!w ua/W$s8 cςUR gAbE_vES`qYLr2lڦ2ACe|A0q+4ZvkeBc\I%ق#04[9gSˉi%'ޮϞoPQ6ڷC@=7hN*6$QgjvFܚto‰08Sg5.DWy;X$R#Y!fR- ׺2L(?u쩌g`F[b^ܿGm̐}K)eԙ{?_L 1LtP:? G3? זAjE dN;LKauw0KVb!Z qksmDq]aX[rBB \4 _d`?V?#>.~@9+@0%XTJARsj\ ʂÌ 7A̪OccH`]AfkүMИʇ{B;zƓJMHT]>ϛER=~][ܭ(d$ch &4}$mV.2NW,^_HLnGNRg$fށt~D|RRMYN=EoCx۱d)mǘ"ѼoZ^]!R3 h3qdOP iٷbwM%նQ5T\!Z,gj?zK'FgA](jwb /- J#$_VJVGMn7BeMzi3(~#zD}Hk`Z$~OA_ 3fz]rP4/}Y^c0nhDMlNj1S]K}n WC(x?Aw5`|ϝRw@g >8X(RJaCYr?.Ҫ)T[yM2u$!jP:E# ɫ\)թ'Mn-RH<=af EvCW[[%.O`޷ԗ/5m2LƆ}+?mɂ•9g 6k~@ViE|} xV9˧1sUOigݰj$?,rS1tC#-d \Ĥ&ȜwU lExLԬJ؟,; hZgiwI~R9/G`gfJmd9&;_&_w$ aVif4?}&s@ > 4fmL敕űgPKİ:z81uIUZQ mpYViKDC.g"wmEϭ##| mFb/ߩG/ |ܠ\0&RV'o-^7E/9j.ErvR;|96L v8dX ^ _d@EI;RAm7T7&YYr\F94%seLUt2jwv4}QNFܣm'w1$J8 9 c dao'aIsZz^`+h~*3'kՙNdop<Dc6?_QOX L8Hp'<[7D ͒>¨=490ԹF8$2]K,U.-hom$!hz T۳Q3 c|&׋>N'2 R0^ix$ "ܰj e-<Nh"'=G~MV8W'UTm|SGq.p)tԒ0TQ7-G_HzcH47/H`v2ѵع_ڲ_`؟CbHýPUßGv$e6wO;lm>C%gXo>[M*)ŧƉUimܸ{8Uu֞l>;:4Q3P[-Tp3Щ`7JkRTPj~D+=[ÎK?k5?WLfʁDey{@u] )LYgk_+XõNDBHbzHyyEyq;c;\3RW"?',״DEaA18T ,\VrG)*)oC?Z=-Lp擼n ۰B b&1B~%KUM^ ypKWZD߱ؠmg!g]&̞&y Xm9;Jv32bnΫq#v 1:# 46$Gu?B,"=p-hS^%u܂>kdm"x?-;m07<+] b8FL&T&i\kSmi$_ZE'wSH4!P< Ԧ[@ט0xedsFTt[(|tB&Amq`ʯjF[;M#6^6V-}@HbUXIk K]3?q^h]; *΃JaB~ m ,\`,`O}1h?jA!d y+$}/.,z7|N%F$5\_ꆮ.~毁}4BڜJQ_Rb(^䜛#;˕1]L=N~c"DTUXβhJHBr)("O6M"% $DŽ9Z.JjϽ*+l8`˚-f%bߍһ QL9zח78#=X@@өq 7%Ҁ½M؏ +5Fyf:.Az4EexޠӞtT+bYwCf2S=fm;jxzzUk~50l9?F'%ObCSi :iCS9YZ68K.ڊL=Pgn!a̛F6<" \|Q47V"h$cfٌv+[>OO xEy~"4@C@nAEWUB5x\OJgʑ+0IMS[K58HYh86acnxD>J}.m :ZFhX0ONl8neм׌J&k;rg3x]2U~UE +K?]̳<+l8"q|;v1d N1}zA`eM#${?@$ ԐگKKe*n5cbM_j+br5@uR8\Nyۃ\'6'{A]<{~-Z[w <Iu].~^Zx(k>-;2Ә.dh;s@ږG@!@tp :c#`JҷO&tU:}5Bё;y5aHI) ~NI-5>ȥo,6>4u0æ_Ɛ#lO:J:iրDz} Jcj͹՗vċ]5e}DBf !z1K>LSPCmdcͫc J?]0R0sTHRQ䶾+] vd5; p2;Fy&9 +B2K"2R4Mԩ2],T0 c!=IQiy})-VYWTO^}O &޵LGQ.o` MG0wf+\z%5ڴLSj  )D; *,;WѸZx($XoxVI1-1P+G U8O_4?<_\h2I]#^}}>Ra7}(Z#L@%eחqb (9QfGƲ%[s/aeI zM6/R&>X99?ðqK8h ="H!bQ, .̂.}Gɇ<K2XoKKW=!ᵚQA:5ggoP`-]Gp䶐\F.zV%S"NP7^䙍w "ɽIIj.T.gY/6W7BBC@j6u5:P0j2o~H`m3|Ŏs*1Y.N˓wYj~@.px1!` x,9l+FV| SMbnF3ݓ",HPq;lSK*|DiE]OsԐ|w{,(HW(! --X)O3aLYw8pW!r7xWo{baدM@㵋ʸ2謜V;K6@&x}|Ln#{GX@@/2h5ڹ98I3{ T{6VKucώ/erl`q*s(W1XBDE]Umi"´ՃIUXo.@(.D\DŽ֟"@v2 㳢E6I,k{4Y3Ss FM9s |G~nU* 4_MEKɵўS5wCћr Ʀqu\r=Wa;eW&{-0輛E(ڕV;;?˻_p==e>%q#IOM/>IHl=FZqoənZ"jdZDGu:nI뚾Jx6/qrO)Cf|/"= [5} :c0yMhůݵ2x[So@zOYo׼*1|Q3äD,e Sc7e7seOf]U)IA>^ +4s?vu{9WX9_jPNsl[9*Lw7fLr27m @s#p@.pT/p#TL1sB W Rtw$ݡɲ5양E{$7uUICK%Ds%k vErxL%BÁ%X1? *Qi--4Oy~io}Sy4Fδ*D (f/<RpX6_]a腚Dq)Xݎv㩪;& -GЦ-Kػly3|0s_/J-r7~ wq- fSU1& aůx]=_n^Z"Cwx8$%pUx鷹$6tw?`V]m3&*>u$tmj}s38 .,?\K5c|TD9/G`_>;%cPg N pxobjFMK:Bh@|}[HIpv=]^80kZ"By@:2wHp/Y p&K)e}y.Hq_`ǜox=+185ElU, [ہߧB P_* BC3;3tvV,}Z7j"o6:F8OGNOY9oX9Y J/M%@GuAr1QaѕyiͰF8kՃv&d.K QʘяoDtkRksX\̖jWlydZLX>OҘEOĢseuC쥲+l`^/F/ٙ Ӓ E}oZz8V/Xp=uG\,vmb~DwrZ m8w_p-nW-Q9Pv0@3s f2O3u~nk5o2X:f{Pmk21;~d?Q UfoC٣>;1q$`XI;N* &Sux" ҾNLye_Ľe~GD!@;RS VkVֿF@^#0w)(- /򲅼 v،'{{VcDa3RiKBDgHZ{X3oyb 趀`z תsZ"d0M wMk1jP ;T0 <BAJ8V̼䤜@x7l|vϬkx,$4ӛeP\DeBՖΉY5BMow12s>’ ? g3jgMcH%k.2:)*&x>k2 -9Cx+!&o\pKH e0$0ڳXvgbAPG .ykSv: ?@3:Ήa,Aww>5I2<-l”pB9 49UΑݵЕRN5"VUe%'dugpgh!̇YQK&,8TL u4NWj^hPq pS7hD qaXbucy$[d[Myl(.9gX8m_|^DGqD>E\BeR? MHpTjCʤMS}O!΄ 9~l ^$|v]gXe7ͧi-OP'!%zU 4w/Q.$mq.=jz/[90QΜK`3 .~h"BK43([. J۟+V2=ec1@P#OK7&{98?)ު#e1^M!0 6G{{ki*NX~yוɁy-LyNwdYfK%?3L^7ɔ&ɳSS>U>$f:}C5FD)m)1ڗxp~F[esmtmdVl~'9d4S EzC0& WTP SJtQf`nu]ݐO,apRv2`eD $/t/Qm[$ @[U"i{ߩTX4AP' DeW︿lFn{q_11sRPSd!+''s'ܠt碒 %g&7RMD'<#aҡ *fŐ=;KhN&m5Dg>׉+o2]7viٌ^ M'8zPLW2T 0)NMv6(} ?Bqx1zyҔW5\12b]%\`h=\%5gIXu@j&]E !=Xcc6w~8 f#,A5k/ Mc ṟH@ov-/q8ud@ɣ%+^ {-8u 1vʹ@sNӯNeAЪ2聵B=|v1U_FtDo!GNi1"d*h`32GXuj|&gNE|mK93i:g/u}DOd~>H ֑l[I"?' ڧMq NvlAP0m(AlVE*nKMtrgi1#E.A/>q(kUL@E)K^le{Eyۮp[Y6!k d-T6:eEj2Fa"M.rb\{H\W.VA3N#<Q\{kZW<;64Ԥ `a{MZ5{[ lx\B,)4^-(8m O\ dj e1 [dlI.=8c%-E,Wm4綠S^SK Lz6OWb?͕+_jm w8!,\.6/ v?*Z1a> @gv>h t >^I*3ڌN{YGIln{jAꆠ.ndw *| ¸GwWqm+ F\&v^ 9;m:;YHzs=]<5[Hӻ 5x+85DhQ ]O01]`έ;|n 9ΝwV0sH;U(`'_y {)Rf: X_֘Kc\5ԼFNl ъÛ!>ubU}Z)*)<2W{|up{(g~9ZDi]:ҌmpX@1JV`t;5j*v rF2Zt^J!> 3m%P؅*Q迬<"6䨅ֿs?]Z!xyE7x-}:Nv{~RyDP o  L?MeW;zg\ĐʔBf,=^05ܶd831L[Nz=Q꽂RS0mp|;MP*M[wc@\ֲ^TyfGm%/T)S62.W22Y;'$4ov`pb,[ӼP5mٖsmLhmvzo;=ELrեv6sw7h141\7]ՄVcCfu{I~9K4(bB[$6L3\ܻ,}"Ref4q }"`; 9kQx*sDΏ }p?.R,ĀS{'c`Ӥ$R8RT@Y(\Q{yYE58MXe}v: }%ߒlЦwҕ=)8ErD-$tx?@t}%; QPu"MG_Z܁C-* w9[f41"^V i%_b 8Ci; h[oFT0 KaLńcs8#7T\Uuav;>~^gdyt4ӆoORSV_ܥal[l!av$)SߣP&t!lp\Q(dWM>1A5߯S|Kcͬ_0 #?Fy}7{u1Ez֋pZz?D@x QGHV."3BrY_Ɉ8g.  0MN5J).{fd{&OOkV Ax cx3ܐvlfTh/OF)pHyy~WBv4#~:ҩ3{v_\ǡ(5w5X[icX}NYe;~. -I ;y"mӞg1oAgfuL{8V rZVcIN a%ȮapGxbjt%`6N쬽}NW{R̒_ȵ8& {>Q^!3G&,! z`iJTVbe]F@ڍiο_@iv3Egfʩ<`迼g۽s"3 ZU"]/=F @cN"')~]v >,.챀JPLYWvڪ&djP+E%o|Vh1g[T5جsLۚc%]H',{WŒBYy{NiW+6eI22 *P.Z ;QA \yĚ5֙,+4/AW]WHQQ4&I[kuI〱uGPsEXV2l-nz ,M}as/m횰xL| &$ ~@7/>8dmYW&'7_%>a`Rfj.B/BJٕȏM%?AL~/4^-Z$X Jǁΐ1nMnTfTZ*R3Lwq(+S* '֗IM0ga?є(;RU V]]v&bxOFمbdZ>P+YW _~RF+h<$POG昼/2<aK.X7 >)<2I?;5Sy4e_4E™涨+a;7lfkG2B7u)E,iVzVO^ǂ*68Llٜ疴E{j{N~kj~ J~KZ|M#eCp>-QsLSOMtk&&Tm t^D;C?.{'*L_Ix@Xmq$ |w|ޝ5Z^~92xu^z||-&,g@^z7 =>LeVLH%H꥿7FJA Ab9+$څQ 0(r[Dg-S]y61y:*{z9ȉ-.9i8U3Jݓ>51j΃~W[8 d/=ĈnL8 ŴM&6SY~E띪EG۷{s-)tQx1bZ֚ml)vig3 ;BXa'17VSZCЪK om1U.4cN< L?5Mz51G zY^u@!+fBR*U >$Y'%e$@2kWΓ |?38WX;Ay {KW)\y"/u3*|׈+oߍ:\>৲CӘRÑkP Gq/3 LK|0(XxzskjoyBk<7-2|fe:z5c>]Af&"sXΕ5ݪS{L=}puC/7Aq<ه0 TC2l, LhW ^J0qp)mj˽MJ(hxJx~i1ɐ^H2/u{,";:|-7+ nTU'^>Ĵ2hm\#i3cW0I dS$ _r<(?`8$ fնg }ׂ=2)O3Z莪,{ fJά5E1fYGb=<.,kں7= ~SM8jG 1 R;,  RԞUL٬ӋyQ_a7!1}oDV=wѪo)v% >w†7怛GkV S;0d@ XZ &LNhPPB'$#f'mZ_#6Lj[ [t{On`9c9%fAçiXpNz]803<_g liEf'ߚJض'VTjy9"yMRx!تEz #h p zB}gmmMweD{8(\uQfh\A ,PŜ02K78LAK!f%T  :)8(&%a jh3^:<c˯hXp":)!SZ v k!ٗZ4FUD냰lB! \C+8);^'J,>i=+{B . O#Mǖ0O|%e ;\&N I9'X4\)?\̟hH)9Fȇ 5h?SOu]5i[5jfٕ^#8+ω;n;mc9bu.`+~A_So6{gX2uQm|(Ɏr昴W0'ر̷n$(G_KAR:2c7b#a3ܙ66{]!! ,j 7|m(&bcye2.P/ESBmh,KW;.Fuh&zE0+G~ Hk.iuf(BٗYK#L>OGao+e9+{I/m!uf/8͏ʏ?k= a T:1^/yM{.+ҴVqSDK2^A@u+ԹU i.'Jh^ 㫓7f?S =.s׼Hv5~KaYk@T8] ZK×^VcO@zHLs(܍g?nxyX`9~3ERI!"ήkǐHKo?cڊ]/T5N5p+ɤEUi>V 2=iT(H,EOeJV63p8Wҋ?rdKU%euH ( r&XuakٷASډMH~?@V< .ag30غpJ¿Y|>%td޵V-3@&|Qq ٣sZ3st'[`Uزc`=P ]L <-LK` 32zzq !| pTr_;o`VmSjս$/^W~>IP­:pT൪crz~Qє)ZDO=oנ^V*SM(Xź(ܢ)Go8^BD-QBYR:G,{ g+eZLdeSQ1S"ë,%Jkؑ 26 AzCl}sqn-V͕@p}p!?vZw&eN 0njmwBWufbg'\|5lxƶ(F u!_JJbhpG xuә_Kݪ-/.uTU2:%R6q^wgӭk;Ӫ"ds3k_%9;6M{UYMdn?(BNjYLN`&9El$f9;"zNrܜ]o?jX̵ / ]A|5bC=.ʧSr%ZQ3L^a/a:}fS ̀akۿP՝WژZ?.01휮@sٵR窧{a >}o D4# _6wI~r'.0F^u`:Զ,El3]aPK n N4ϛ6Fyu5kpԁ&j^ q?cɚqbz|D ٗn-Y}Dc< ֦Qw Ẅ4%ܴȞaPP3b?5|tG%sP0vfOMm(O%ܖA_rQ DdWȂSI"JpɋQ]ˬ`Z2/E:﫷4_ '\ǒ!ZolNv9D$Ǿq\'W{Ϳ!Ñn$I8I,lԭ@9dGʖX2m7}B@u.ci<):+fGLwC fG!b_m.X,k4$N*, tPҹ2^!_N3̋X@>.D4VT+ꉾĽ# r,o10X.ڂ0mK2Q'1J~VcQ`̣&xΰ#71U <)r3!ZM '!5$ûW;l28i8[0Lqa/u#9Z-5[`>2\= [Z" " =;?̋8]8b&AlQJҕȠ6MG]sƝ.^K8$˙y 3+w뭥/ 3-\7Kns OJP#j "E ˌ_Ah!-W; $aJd [_޾ \{p0l_+`B"9(تN(\,Ln8Mj5`zJjQ!mfw7f:IEr[UywDy_cq&ǿlץh!m4OAH%EuW_57!鹻[eH#/#wPŁv`?(98%j&&9ݭRmZWc$UL|qi:D)BѸhEkGeG@ЊhCW۹ X7QLFwcT1V{7~=/vt å{ ²Ch?o$^O2:L4WQ+˱v^?eN7gbO'0yef|K-l)b6-zzk95MQ>~aqKB I(x!^o55G밓TC1BS#)"hPҘPI.LwM-v򔬑\L8a+3$x2fZw6Fnxp6 |J{22qsO8fM.D[nfL$빞2 @{VPQD4PzMAu8XVJ{n;ѕA^d`/k5=c 4饤eh5 xZ;HK,Fꍋp)[9/uߝKf[5:'ب@~_Z;@Y辆z`^ TIxi_$@E]6/jS;T/FMM6ͲQ%0g1߃ յ쾄P"{ fv x4шYlک=[S>юBlpو]10 >,["7`>'\34Px&u=FZq&#,,{[;UW ޝsVZȒ ;Y:w mC yJjE<άIu=OYxiWHcBG}d^(;uBCvk]L/7DO2?ylqq\AcHŒ=}os^CFuk`^:6RgηۈǐRۺ1l;b2 83T4Y:ȟsYsoNkOmM) P-1v/Kn|+dHHPrӲ+e22i8} dq,oh\a$X'zE5yrXh}ـFѕmn[TѦٙTf#9@IT^(["JǜXN%Ѥ(9.f㷢5+/fiݹ?T3h5e~c"6(u^ǐl{рOJoĸfzL(JDZsx.[a{ifG+x[g|soH>MXxv'*-B)d_x`\.'_6b_~l.$ҺgVs2cݔf4#}n$xpbB|,yi"'SxD-}Ӆ~ev"ݪ8ON [ `.'=i򦩃2d-Z3!p,T4%2IJ<hkݩ(F;-ܺImmfMhqw՗[S]˜ӔK#l튣qчtT_͒4q+,)g jAP3W@Gk0=nF)Gk(%;Q&ڛnB\=KIFg0 9$?9\8U4W*q>.) ـ׭s -5_ $VtP|֘|iv_U޿'k{ n󏋸8rZQE:*{Wv'k}B![ SjSi[f|9<9#96S3a)F Qhdi##jcGevj"J3]V* *͸k@ 8/ -kgB9ٟ0$Un=#w 8,ïkcB5xr6B>wkXs4' ?Ci˛=Dޞ {ʩ0l:R[ŌSd cp:dD!Ocz&\21ґHTF@L`UI(0aXy(Fd_Zc>;gv6׌,-pxX[U_P!RɋBfx.bk=Pld^!?^swx'bȋK 9Mt5VhxBy ފ+l.{ݰ~׭Dʗ)4mw[H@LzІ2ʣ4M6xߛ|w̋?e= )T^(΢b2seTyҌ)Ʊ0GY+Bs x؞\:@st֙.xLz@({>%\*VBb3ȳm xUZlr2`p b&HC6ҝz@}mЎ-pfD[qfO O[l,:a1 ^ڝl7iV$Q:C ?0ز W8-%̀ J] ,帺CYm룄tn4K`x:*)1 YuK}l)+(Kvo@(խ]g1\ias5 V`B-bKL:; c%Lr(L筙Qe|+C= P^˙hK~^i-Ba+BXwPlr9r6@`  vOѷ7|A\Bx&0̋۟':džlO3s g򬑬t 1_FfnKE7RNQ2!m[OR)H7MrPWt(g _YG@4b[zx7N\%Bjd F(|\+,qpm{}Ay!{ \HUEzc~VFA͝(IE/K {Gq[ɈQ&D78hIoOϯr͸`AS; i 55Fi{ԟGB+b+9[+(cۙ<2F}mA\wy [݋/#l^;YsRuhIב$ܪHB$I, ?%c` ^ h4} #t.zٲWlFn]kZMrԓ/cU] oVշѦ^Ëɿ̛>yśiN>Fyj\]](4 'gűa/7 4d9lR|C71o sx])C6{{}d@>[z~n` _==W<S{ d r '(#MGI>Œި`eeUA ɢ?7 0>ـ#`EW? &͸P ZZ0Y,N癇-Pvpf(`Ai!h`d5BT`M\S䐅%wwEf/@$YN VR6zY!ED @ ٚ.>Y-Ě)>ڞBm--47јt{O̔i)dސ;8 lEGFNZO;z޴Mdx;\nc>!$ȋ; Vst{% 7'LZ׋M!B7AK*̎g ՘ (VxfQj̻y |#%\ ZO` f3w dlU {w@[ݮ+$ɒ`n E}qw-5WZԙ^(%0ɕ e_Ϣ΢7B&!Dđ2ZjƞHƢ*K8\.9wȁsv?͛ZZG8HlgLwlX+Ta0p|S |#~`gKhRCFgO3ҹ'0Ҩ!{g1T?K\WEgH֕]1IWb1협sfdbEqZɾq {Nz+;^"5̱4 **)mL51kdtl\Hi,_Mc:JnfLb{9l8 |z*ҪHXwvPy˰ܒ!JC7A*GZ7*%rB? +7OA+KV=# e{  4b]p&4Ϲ"J4G"GǻMREc ت\kBh{2ud\)AiXJ^ja5W(G2\j,S8x^tS{A3t̅ l$}duDEHE4ZqzNF PQ@Ζw~mzSDpaX6B!'R{PSV34 Evq*DWXTqD?mf!["Q1f/&yL?Nar(@~lϨXcRa[l(Zy7N1/=@?B]PF@de_8'.έ0%Yw92ʴ \hC#D  "x$^#%a]o)hSLjÑ7J!,/`D}*@PHnGu҂5.'jE%d&?ֈ(/NLPP=,M[s:aJ_5'E_CWF u>8~(' ֏T )0وVqIc78k=b#޹6ޮW# J.[,Z#e :MB1O '8sD8v6eVv/9/B^C!TW(C;Vy;fhX5h7Tlz005T \Q8I -A0  W^><~dCM2Ӗip,nZɏE8&$1d賭}Ĉ+}0;93QȊ_l)1@qb 4>7Kmvt1!_1N::jaHI PT'X]* }H  ,7>nP7H|OK=w\oWR2~;ڋ\#~5zhE)$ u短R*D3q g;?ӀOHs7P\BG `8[#;L&[B;G? ~upٯ?걬x{@Gk#I{iw÷|HK;P&߮{kIl_!5_m{!>c G+Y 2jʀ<uA:">}Dž+gFs t.E$*Yg<7Ck}!{j.@Ek^h8ywwtY#pYleC1΂aXgv[|K(&a%'.£CuzК?q4t.#[k/ߘyRSf+J}Sо%h՜]&FX Ѿ~s2Kͨ%tɇ(e]]p5zp2zt|~aF+ڭEo|qz.S$Nle΁tPh9~:0n MkOLe d 64Lb7Ɵ;sGR#b=)J(!zheţ81U(P3{~4JI cQ<|kXr"bRxUp~׌J> CLyq^,`yh*+y] PC $;LY8]1dQU!p_V҉/Q?9`/O<ʾOchgXK }\H孑?H̠;洒/RBѦ PHq۱C,20f=2A_~蜼Q^~PD-xl0X%xw8䁖w[3nHi1XzrI5F^M %e_#'g7q~#x#@8LWF4ò|=da ha#T:эt@T%NwOR8BHY(B؊χ+Xdm|c n Ϗ潤9vqA,b! y}{ɴjjF5+ 7"$~q.lJ&5RCUrOhT_T|68@|:;d*BwLHH?p\W"i ,G?Hͽv-}F{MCdHVjCA)di3W ԉ9ʠ.׍ϲ4l4+T@7֨_EܷL"a8p4̏; GܙxcI{817\rg^Uo=ƍ VLu9zm&xCdA:*ܓo[)m۔pjo) 4-'JECBȋ&a{+4"H2֦溠&FoTVU8,KubU~[8l1BCw3{v2ɠJoc@R(Jf-/,$hsa- -"3M|X&hiF Cj$,AXqf|nXMU')@W].UMCA+6*Jy|A74ԩ|6P kBV.քjܘ CK)"?Ԥٖp%DRS՝ XrS@tJw Y5XTO<ȴM5K{p$a-9eɚͮK?ZddΉ*2I[}:cz<0+:"a߉HF˩'Lr&^R,iQm|.r]c\b@r9O8_E?i:F/Ǣ'- MLzY-U}KNwFVYV۫ գ-l@SFoB;{F%QVxvGe`eCqq~v=VZR!)(2dwrx!?i fw ^gjXoM wekq!yoi$۾Oˎ:76n߈f LrhH5k6k12% ~Rowk0u v; OzMqc%'oetVM qWWw q>lޘڪnΏ^N<A ѕNV{&k/:ljma:1Z!/y\3L)HBi (AI>qVxkY7+|hN?8.|;P~Erg5v`g!n@?D N#]K"l-*c!RF}i8ɮ©O\j3&ٕ rZ[w/'5q)185˚VRSn#鶼1 Nb@Lcq⋃Pm}c{Sե;8R^w4+f] c#k'-I1 $‹Buj j'OxXeNH`uer/S:/z؅ũ\>辌/ɋ6#f8_ZNwb8 ?B0֧Y `YaXs5!jt2FdjBWt'x/w~uBG#P /{F;9g ʻTb +|E]8orݐK:Z\A}FJ]ђhǴpD*-t&WWfN{A҄I8^ TO-hQsrxRwƗL)m&6XI60{ֵWE=={6 fh@q1:#E!bd,\O-Yh0+| 3{`Lf ./07-PR҂ 0\h~[rkF}P\aX^".LZ>e5ka[[Taϔ}OXW6'xтxLHzvc:`dbmfV/ӝ.9!Q2Q-ɇ&%Dq 8=vřSFu+?j7OcF[N8ېa\Mk[]c.*n#W!CqL[.`k$tޭT!g"]|22Ӡ1ȍnc5Z.;qŽ?}{Qs "3e-ǞQrgܶ)V?jl^)7~:j MѥbQ-gftHĎZ#Y 64x{J(%. 8d)[v=T^сQ90ev'dѫ| Q[@Dx=;"XTO~UkH#_'He)G{ʖq&\vYDֻe95q֟@3!׃׺u#F $b U8 F+ ˥3h#;Sr<&F,=`HH*YWJ%$+ſ*CΎ7ʤ[ 5^OG0e?alLΣ)h-8?i Iw"RAO #PL3]Ul>#&Jp(ЯxɨfWD2,\!!Kԯ0?N3}:ϦYu]#C䎞^2mʇ"AW-D9G,H2vɂDSf2alGށo]hSPIñdĭPUTG#![Ұ:8|/ j~쵠PAy\Dj*L{AĨ\Zm2kp*bP~BYm-{mI#'G T6)鶴 rnዕcPK65knN8ӳ:Ke;yx#,P2$6T+:RVnZ\R{[刁IU;[AnAnL[6 R֒{ܺt\IEt~j8ɘ|-CbyG.)/Ƿ0̶g랧ȱwҝh݆ځy}!D鮹+!eP<NXwҬӁ FenR[hǏp46uc#?` \P=`[tDEZVT&zg2UȆP~H4j$,h&J8H>6wS jK+Nwʍ ȲOQI^%Fk[:wj( llАZ:GyyGE\a.n(/b DצXy qkǀ( [m6.t`Kߕ2exZ6˶8Wr/$BϷ^r pb}5DWb]1\̔QqhDtA/lW@]w"t K?ՖķW?AH*QV8C1О$Z2\旣/)lTDk㌯NrO\s+p#Mq &=l1R㵋J\1lQ%X)(8 ՝}C3;:3L]A5?6YpxhU LN1{*J9-t9ۙ+7sKkyk'ٶTXm{% 9ltIABW Zig>*.ҠaܼG*ßw m`GҤؤ1X`wHnj Rp?\#{]tU+-(7fqF*(}a!4u2;8`i܏Zl:]k(g/L9.rR睾!T#\p{~^ q]_}[}"L|%rjE|_b{&IgR+m!kKTpr~ &1Or]az;~0AE] IceLTk >ugx"EĤxc1-q]{ 8 `G;5rYU;@m~tZ]QGlSu$<2yfAVN+jNKM(`PƢ\Ur!t'P+fÜYCThF2,TD.f afn%7fA 5|}^|bO~?ŕ}v&[gL%<>6'#2-V&R!"bͤ,C 녲dx7v|>?7'&ŁxA@^WD\*] %p{2 E(Tv澂N_H7nK09'7:}3\JH()cd1qJFCk?^ >eQM#hS:˹vt[ rd:]},DY1WsQb /$D\|=;XZ88|4!Zl}iW O:_""M7 lٶIO xR#CVz&\nٜCW@ ^/oN(MV~YcGmR)PH)땛4n#Squ͠x@]R@h.퍀66Ӏ{̍g[G'S[ ;K՞AIf>37AX!#}+h„p w3$9tL8gfD<.^ N&tp)\6*Ymk/JX5g H͚:Fnkl)0 lL*2G.lc^A}9VKb9nrCx1tE,hSؽj2D"뤧ajK̹9=<ε:ǧh@S8@&j= [ тC"}23iowF&OSr7WD0߷O:Ged2 Fp90 B1:+ř|D^lMrJ _C9FXnM4A>D2=w涏A1)6[&j."baFl$J&B1ֹ 2RT.'Re[)3y;Ubbr`5Jݨ|p ]w=- TiPPJ}Ց$j3ƫ3y|ֽ|٭3Qc-Aza»7h`eón)2ֵ@YlTGxp_wqw0 cgۓoy.g&\ /Bu*卖Ok3`&8鉹uaUnUlRH(~6 mtin8%6W}ܙPIҘ|?F?LJ8{E#$d+\<_<ρ=TV-ցw~wC+W ?XOͪ7|g. <&`>Ou<-h(pd)1ʄI,Oqyi5U0\dļ@&{R?<plDsld=`w9Ĕ}+ 5-! B?Cj!&:ZEwi0+BÛҞ.Q'm54Լ9Ljpf-mf;IT}0C" ǖȣl 0hb6Xm`؊z pkڿOAA闙h6gu:Dq0孑4ʧv/o f.$Zd\,&1me&D=( O(O9:J#P2JҗNbrrlն)’v>a.Xz $ nD|IrκXqP~P:O5tvID F{!I8J} \QNP[Z,(6tL$p(.oc Fjc;o% WG9-n-6HJP;h YJԖ HIؾ`ͽ4:Q5h&DmSI`6Z$R?ҫ}"vPˁ+̌cxt,;4j(Ut/,#άOb3:Uv T{asl=W$bdXV u}~-<ٗo/ID~

م#~Kucr+G [ZmМnG@Xb7)F[Gh"7+*nSR\bUȡ9E ^I&$$|{ClI2:0_9UJTU ofRY&=Fа/&{q8@Jݽ䦘 w YJښ!=??~Akν =E%ut2<DV˜q_B|1"Œ2>'N8}fLʇ8A]`9U0ۅ}-Gi/R'a+_B!|~x!q(D@@*i4Q3SV dWB'| ۫~xf#2>->GK-iuPF=7HjW' ?\S[&2Nڰ0f}JFvk&Hh.a\٢cR1Q >!WO*w"Esa8>K4:EB?HC꟩dxxKR^R+u>SSg T)?c=6'j{_bjf7.},ٲ 4$31]a9J6. S Tz%J>Ic/&7S9u;L{r.׺C}pGxN |jrez[=#AM0rQâh!Pҋ2r>K8%4@b㣧/mD%Ͼfꅞ)4w<尰ᲫX bYߛm…ܻ,V9tBl1$4w_Ԓi1(,so,)qt%M&%D,@k*KΚ+R jeU΃'럤0\UWY &gM9*Gγd/"8P@47:w1ѯe 5B9imӘ)5ҡOh+?1gr  (| m~PVƴ7b`ũxf?~N]) Cl_p Ofx0'@AIGIL8!:LmoQs鉹L'(|_OzQ^+І:]JG&ǎc;&|in($L(F?HN|O Oq>gf+2eOT?㔖:eGmyL#m@E}F:z-)!V ;-ԷMY|c.hn *{Ttw 6>wQFIO7#=^WtOx!b{=&NsM nĸd(j~YߥIhqjP*W~.}=UPZ"CYKM[&:,Ƹ+Rf9jaXfj%O6qngD|OȷLL8Dٙ.^`=8i\o;],m[Ts.V9~utNbZ`juZLU)Ul2eZ-bTLj s0c]_t͵*BsQ #BqM̵?a ;~A$<#%qP8_Deh>hv5d4UQB=d2\Вs ?e4Aj \Bg?pZ.3TryFd̅jD%[Ӑ"j8ىu"/>(Z}QU% _|&٣>Ëɞ1nu pB8,IAKZ>*"f_Γ#|֧a0"R?xjn+2dOWqKM;aǣ͹|tcN)}hEAΖ K fܿNC%x% eB?i;{ ԏJA7ыўʏX+30 &BF mQFXh>{dWWUF٣K"OԇTt[^-TC+d;4 ܞrJS3axuN2iGۈe8٥{Pqm?@ 0Y7뱃ChRyJ",B o`HLvSL-͓9N}1wBt)E. 6MAԿ:C !go8isңc+ТGFjus  (S7.Gّ/5SɶQ$5*; cӽ6ǘg]Bsy V 5Xyqt'ݐ-DئP9pY->Up[sWS|vplZhQe6{Z5W.xb]lq1BUbI5(# WI|V5N9uFeB/ Hp;|DȄ%q [u:e0~DM{sz4rK܍gqdVKοD}ޚI54}tE@\,V, |t[ t};l"98w7f86'3in/s% h"gpP⃺au{^:t}N e}LvX?uEu2zȞ`?Q5}v%nc:Wcg[iӭLl+>vR-%)y2oXZ;oX%b߰9rޟjO4=o<,@k?cqa$9T? lqe7tY?w|u㙠 ЩR(N^G.9>F YI6 M6YBoٟ=m+B@ Yk1:Y;zHԝ̿VgwrR}p<S]AMLfgZs},xK^FP~1ez4$RroRuLz V%#/JsnKzx3Ofg֣#&9 W& F8,5ap0ѱd./{tavv)G(H;X5 9S3MhꕒߺZƅGk(ؿ~C%D?_ v{QP;NH \hC9#v3.tn( (hbM:3(myFkDQ\E"=zH@:~%,@^yuMܡQ^ĈY -{cF\1.l[{_FoDԐrlLr>퇴fZ1ڱoep@~L&|9s%COU(z’w}%ٯ9)%m0gD ȷ">{3@ m3)g6K<`\qM~ &zzIᴠŁ7Z6a!3YJQ =ЬONc+k}&=Q[UGY?`] UVA6D:mcaU3xvnZ=q*ߍ(GV*М'jw\\ژYtAq2ux jʡ-@Fq[X6HQCh͹zH -1UnMxI;+y:ձyMp&f@^ͨZ="c9d{xBugre{[N[SnlWނ{|B @C[˰*3&;k1O& ]'$c*5ΓD-? fJ_ŘY&jVYt$ݓϡJD%$ X6#Nv`cZ E 8m  [M΋K-{ aS?׎Ya|:֚ۖT Vg)ĸ6iL)3(H.?݇5?ż Sє`(JLp~yӒ$ L]^d B~M|:ߜ&9xtkOER]ħ~\6 'xĆ^J-cRE%XqaGCO̍cSxY糺VUsh&nd# ʇkVXE*A #RB%0Rq~InjvG5݊4-墑F;YJd╱$+{0'$WSImh?>L=3.wߝޥQ,^q'.B'8V Ԉ;I^tɥ"<,ys>Eh10[=!E݋%hԆ2JFs z5aͮWDr{)x"k4C B9HY9wg_!4ڇ:mSa쏵}q'R4#EݯE_^W_W*0]L88yp˟S`jw-#dޯCGCNfټ$b{!l?ZZࠄJsW@$u 05^&P6\{t/ἙkT&.4DEYw V)?S4B}=@2\V-F?:t#ђٹG zSPR{!A.;*[+D_ 1 !γ%,7vp/t5%g4~8xJ%@eԝxRꟐk?!ͮfB'%dȽ}t%;.AwQn-BmV+ɜy_ f~SEG ݝ2?\D#sA @ҁt-c?j84!T?0 PMF+rHK׌&]T}нP #*`p\V4%3pnP6 'Z=&RMk\ gʫgĭ,AqA;0uFdlI6ط؎HgUwsߝUZr?Cﲂ/Ob {NČe#zk$*MݿQu,2ю!b#> p 6\9cu \HOwڕ N&g&17n-1|%7*;TuW=e*79lɷPkĊ/?ZRCS>6Cl0p03CY_Z%$Wbjp .h!2rG̻w%M^fT lZIoEc`.\Ӷ@~810tl{~\8gj$XԜh)PwN)rȱ]VD-W#lj&nICN~Z]>\7Q*U5U 9mK0ua l>5F#qq(X-Ã19euw9opaS,Z5ttKt':w䒕c^}S~i؋1FH3nG cÖ3qPcm:2)løil \z~<⮳P&^LZ $S Mծє\ʶ"7a  ~/j4rmNIaF!A8n纁c!wӥ?r][x\Df>u /Dsϳ`pͿ ;.5;A]-܅؂unU

Q/붱b=mjs'ǫچu?5ƊrU-@[%0S@*Iuܮ KTAj ‹ C;pIH=z:6iņT5NTXq# \KM߈E̓mh|DP{b^6"BIۮ㊞9,/6 WXenJ3Su2Ww';_gY&B7ņ^`%f`ϾS M]xRhӉ ֫¡~ą6tRZXF# }oTQџ; FI{HGw5̿fH${QE٧E=؝v!RmBGkc=1#[Z:VIvhM03݁i`$eɛc<*09#*nvkzl}4/JO9jNKKgNpFp5|vngօ'y~`=yCWG] 8U R>ƭx_yDAMh# Ў2\kTr hI|T~?eO;Cp *a V/RowoewM$jò,kTu+o-UbwvK"SMCE4t2$G'K}jk4="WM##Y96bϣ/Ii/F7CLGQ;e;Tn܊l`]!Z!:R}4<@G]}yW߃5Sa2SmNNo}AۓCE̾jŃW#ۍPz:< ,'*e0pT(2O;mé(Wɭ~r'dj,ꃖv+aۖ'WsI!32p\dj\r [ٙB/'yGaG^JRxE B辕 [y+E(# j5z΃Z b,0⅁cĻǷ#HV51-ֵgݍ "MbiĖU%tRӟ8wi)ƾz&e#|7Ciҿ#d{qovx`40MFz[{ܝ@iĆU\8$X!Dr$9HEcLXż9.@F ^3M<HbHbBVU+Ty޵ Ya7zjC,ٹ)yh\}o`XT#yy;J+Q߹m.?:BTj5S2ÇSf?@̟IY!_9 MA9$'E! U57zl ?7O?4w-CwagߐLF vYe gȫ 9n)e5˫ 5 2֓Ys4B+O^|fj6FIg+7l^"@tVg:t"o*5T& Yv7F9n Fiǽpt/B:;/}z>Z[珤dêa)-hɲ`gc .vLCؠIq"QZ^ݞwѨ5Am^5c^RCrq|:HW8;>YJ =lk='X}p:4_gٹeHpˮըNjo w-U 策ޕq˔upzM ok keL\"e9!ӥ"v 9T98F[urXtYwv<&CBVNij6TZ=D,I~okN DMs)!绋dxy"0[$R{<2~4f`ax\S~?"ZNuV'C.=*~ٳZ 7trA}R tp\4S7M8twkm}-yֳ)Wp1soυ8 [(ornwgHh⤙637LկΊDU'plf'j+o-Y,!a|oskL,hʈc5C.ⷈF+";/@#%yt|dL)mzC$'v'ꊚ-G?i>`>$Pi~WN8܈ 2#LI]2 QoO`2+hW"+Jqr/EHћ" W) ha+_Aҹ:2^:)Uo/>B QvyDD sa?U[F(}KcG&(k<|o`0P:VϘ%v?f#= #I(YX@Rְ*7%bf0;j).LYtz"ƽNJu7|.1,=  ,=PRv6]2L9 }^,v]>mYcƽ̺([rKKa܁^lZF:ȳh=Zke;v[q3{Iz¼8q4$t4f(@n>/Q@ =#I_ e[ϑKQkjD.tj(zc0'=R-"_ e9H)`Q!p~pWukU,%Ev孾1nl_Ÿ˖0n+sj"a&!.E6$ڰ1U}p#(uM0ssJ8 |gb^ƳC5G!>U%w/2Ҍ_РNFطP('ԉγ9#'" g@U`PkD 5~ϔe{/8`_SH}AX)z[< >oqHۚ56|F# @9_4B !3'Z(,Γ]=EXEɩ4-QT#sc'Ռr._ūL }6*[CxHIlFc1 Uv+CX{cIkGjwU%o~}!lԸ Idl,|M)F=>(yH:$MKy?> fNXж`2[ۀe{-rzȁ[7X7֍v#m3kJHnT!D =)8'}Hg FJ#x_~OoCx#TmQ"Z.Zg4I!joF@VWgq (6kXAdC8?~ogrswC%*2? r`o(dHg$czz;7hwN $DvAVcYJݕ?h"S;Eo.ٳRdE6f Z x(n dstDBo.lZ- R[#E^OQw39iS_w<D@v4KwPamV˙9 Սy] :obGrzA̫ ď oᐘme]Ѣ䖯ZMz{u'\W2l1%&o8wP;q9]7jKťfu cW;4q@gkhVh ]5Yɵ>XR 4M畆cy-">F]^J +31vva)G3K^*~yU=ghpeGJ8{]u/2Xбx.` -HS+"=Jk|Ҋ~E#9'ΌW]#dؑjP٦CyAR}{ }HlǨj 2jlb̖ gOgJM%@Ia{t;2uf&.Eטcv%G9ws5hXW_}Q/{;ׁ@ILH˄.$1ۇC _F6oa|} '}Bp}YD!"Th*a8> OZ3;_ѧa&}cSW `|H1AFD0W։g%ܦr>ɚ8O)iͽ'z Wm+"OAjOIOdƪi\_U/>,zuVkܬAǯZ!n,w<â`hpRrbjM{ {JPTf([Fi s)75fy{rU&wŚ;刚Eʖ3"cL2ͤ HSҳ:y6OPvit^L)+: lxhZS6{BTӑ= W?xE#([iQR5n-;HV\r'|ᣮE=כڶE/qa`s(+ybT- a_'d$ 匭ɣ ݰ.ﻅ. VMjXJnt-E3s綜5OX؃;4Ei",&0ɺƨcpA`=&9P`҉tr~ug}E79FCň+@FKZ߳DP*w ~drgW&6Ib!ވ4t]f]]/vm3y}`Ikty(?j$_߮/6@_4^[uYz{Z_ͫ3/ 2H'Vh2wx{ "?tqfo)ar=JIƉ\gc+gb(bMID4OF(y?,*I¹چ _:L.{c/Vi)t]l/fUO]am@g#_:DI(d*sk>߫RO˿hkjOLWwGA{׈uM=E",5zр,b _KFX kT?UY~C !ƺpo+ JB׺dԧ ,#382 ;}&o|yIGY Դ8QLWb  ߬z=,AzQWq "a 4v^*֎Ҽuja`0R,z+E^AaI(79AJq$!t;5DvO4*lw>" AáDhH9&օ ̗M)sD-it ׏ Gr0~'V7?[ a ᭘5:i#<r6!Ժ_H؍ȩ|wgxK]dfNiG=DCRټaJ#?*׌PҧrP֭nAZtS}w#BCbҦ 40U-˝AVl>tC|e&!!mYYй8$z~uo[Cb}ZrWxIp-tٚ@ ^C.|c_ ds_:+EA$;G/%ϗA5v=E]?#mSҎQ3.⌷iZ ;XCMlWZ ) DxMUy}!`+)Dmv .zLGwѻ'j 3FX`1ȟV >/CdДOwGFN6]e^'Vǎ,ۿ>XҀ4\|e>|{n'|NE"l5EE P^dNzN2b ȜQD$[ 0MfDt{Z73$o]-+1sr[,EiPMix]>55#MJzs>5K掗Eҧ :jOnQ $P@_3 ffgjsCjX|4Q̄n qX8yF&jh:kkM:}/ z[#ӍXv-'[%v=> Q`#l@Y R$9}<Ș"Ȟ,Ygj:ݔRyDC_]ۿld AE^8( 8bӡDkK )1RdS4Lekc=}mr<}8FcCyW8~}Y_ T&ۣ̊zKB>&EG}{ZX*Aӛ[b$=╯#GHeݛЏۜ@:8/e}%ưt 1ONke(rޱҙ0VrW k< W~gxuUC7\ԻTmN+OUg~[ +M.O~ӎ:.t M7UZ (H|B"C'"ܔiw&;;vH2]aSsHDquv%&ٌ^پkm3W7,V)9@*wK݉y5s&.9-^ PZI qKݨeFH͔3_SXtv= p@n%kxP(e#r1s! P=FnHtYaB_VfwT|U~+ p0C',% ;;%Fm^%T54Â2ӮLI65CJ9,kOw>T 7]K}g9]5Rrm1F\I,kMɗ5 @sΧg :9g7:<'N m_\<?{#IuSK+J#Y㉮McNdϹd&2[ 3j4?4]A-U&ǵdz|\`h nןj=0 rz)"oDA@ez}]Vak+x$0kIkmvh-4H]Pqb豕j)4sU= B'ܲ.(quy &)t(;|oٵK(ImQDJʡlfɠҥPB 8('e )7_@tK U2K@unWF5 % $x0D `gߕXкS藼%CSɄ:΂D 0P[òjdة K!rVs )9>QMWO֋L =æEeA^q0q V4'WN1j9eC؝_eA á  Aeq|€$Rb}>NW2r3$( і0 Ԍ'ɺkMb_*97dm (giNq#3w48gXvʧndTMJ JA݋;Q/wU ,+%pO[tGZh$Bk%I3g@xs=+'.",ړr AwZ38Ӷ3g2v~z_%8ߋɊw'Ք)F|0_oUJAk}XG+cL ;~ReHՅMڅHFc$jgr?[;H;HR# K&Kfƣk ^8ؿ?, 'G$ #Jķ%Z3>&j&r-:vp?0ӂ$`(xY)5 1Ǐѡ-|`Z\e,S8B\VڊguzwuyUT 2+s_`w_a(EAA/f(YT 3h2!.M ONzYt ns"S]8^}kdOuA\+}VM@%cT".8Yݨ]}\ץx3FqcY|HiFu߇|țWvcl;ᒆzhhuc*Y).4PJ4|٪Ÿ+.:0}j%bG>>, j+ԆM٩:aiޥ>2B`Udf#x7Kmxw tҕ(TaܵM |Bzxr[\,.j`Al0&v7 Hkepu 8o}E ӆ-> AʱSO_ڨ|`򥧋\qX+ 2K#v@9 NK",'BK(wL^lnfWJpX" Q$IqThIL<Z-%IZ?̸iؒս*6{oॅ+oyqCČ+NXۈw`d[25Yf$d&/-`pYf.ɠP me0k\l4yf tǖ Zh]&4%KpSDvcݶ>C4f7d}-5j-Erj$Zzkoo6`jUzZ"NYma’ }IyU1LHF%X'B= i`Q-!J4*ρ2FIY6EKJ"RMe6M<6_Zk؅'5Kǘ¯2Qm%Mm=bGdH(tp2k.IsA]뗁=Dr$]k2REM S&o+Lm>017R%@?2F wI1Sq34b}"~)5˦B&PjZː#@̳>:+g?x R( S :[q Xk-K *ETȧo `xˬA8C Óx" jeʴRߑɗw{akmzvn-$qm'T)*МAPBE3ᨶHp@ f3_dC5Bm;n]hIgӓtkEoU.-+ElvS6?8f} r^f)T Y nXLr X.6I|s*$6&H̟ ʨ8L i G.©({ ~P# Y ޜPϗ)FA.Yg9<ճ\ 1QN@?FI>DXM~,!Sy(4LfQ "0 1=GyKtj$(tJ.>8>*@#-Uz|Wǭ_p ckc䮵! yoH86l&ɺ,67a37;R+5 W(@SIc&wC~t!k᝾lO[۱o!Io|)) '5y+Bw%pc}H ]&A$Lp_Cva#DIZɡ۠TWޥ| ť`c-(/nө̀Y~\ۢ](k >#lc1]'B4IyB1j] )L- kpd0u4+XA;EkGXa*N<UݨPhBJxudߤ.d ٝmYZمKH509ϖ|2Ѻ.7e20F3okwKO޾.Xp_CEZ 2 =%s)_o}@ہ)=B}&8nh_smy@ڽt~LH70h7nKZAO#z%PCT* "os Fw[-7"͗]/Ŋ̶w#YшlwF3q# nKM{_^(R/7X)6!Oٗix>/m0Ds}H%\T[7JeN>Yt!(Ky)7Ǩu[8{^=?R9~Z6!x;҅ ¾tcڮpKZQǁ9 >{/$ч qYlx SpPku$6-"wR"JG[Onxzj m.k݁O(#"!l5~+30iDj&q 3#7(R?7'o7,R'!h4s5{g qSU-}I7njv+gJNͲD!j[~i@jֵ`Z;ݾ8f\ԙYC"ŭ /ΙGÑ߾Voؿ)H\,~z?|,M)iwhh6+NXгgZݗ6C nE6Έs6Q51b'w?api\D@b)e}`.ҦT'*@+ aU5U c LV0PKūsM @\^b5^U߆bo'Yþ 85HJ`߃5>4Ml}&14k٩1F7l}n~6K{pS[H{EDzgsmiw?a%ypИH9!PbU% @BZ߃2GS\RݿFlYSAA"0Ħ r'>}KGF<[{!+IY_7_ڧdb. g0Ù4Q&!K'Z/8]9gIўWžِi?0~K+R^TnXHI8,b@ef^;Ƴfè!)twz:lU)A3Ȑ[%x"hb 0pb䷓q1Ru&8aJxĶxR !!gXXEB+Uᘖ(]պBl_lo`"Lju!̱F!aM6JJq9 wIWp?|9pgk}HeG"]W:f,V{Vΐ }L,B0L(X){*CAh5HHnd(v$2?*Ԑk(`kcBb|<a7 # ŭ#q J}u#Q @ui*쾨HF݇~kO d:g #CnIBG.+;r.QXdҪ9,vwa00<Jط&@>Qh;:O=`Ko+ JaW_ҪT'EQ; S=ތzaS'*+?kMuذzno& Oe{;V*>z_gl I1OWFN0(TTirф&y5V!0c;&dFWee'⎜ӄBr#*ܜCA{ԗ@A@(b5ZN>$Q nAL0[0K6!<(Z-?2%~JQۤ'/Y97IzHq\-=xNԢ!DUٸAG_4s)bA+aYbF|ȧ 'J޾ekVYjEA ?+>hpy@1'kaiYq U z=~SIiPu8'M&@\f;|2rEpOs f\mJkI72yY5g.}ʈ;7ZB/1QQN4~i,z.B܁RpoYܞR?X|[ 2rrSׂDr V{xX2vvd2b29j0`i\[>mo$IINp#]ۜXW@iU,EMJ.v92DH'1AeW!]PfTkZ[ru7K2KW>` 6JJ2 dV FnJu*ˣ^ :M"ԉjwWIb6ُk;1>O=Ϩ}s8] ru)픿#pڼ4[zPnL_R(\Ơm2N9%D>1VkrviF{J h~2yyn3 }5掄AWgVSw f\(7gU%,h=4ĠN^*|X|U,b@6)LkNY]) p;N:~m訹zIm#BbIz/q @#GsYWd[KFfd]e]DPk+ GOH7bpT:uYxÓ" 4_C=rfyB* TfnnסDT0v߈]|ޘN/4RUꜦ snH8+'ad d9KfZw}Qץsv1_4l8p ݚnG匨N+Ys BGhş80aaïȤ‚8\⺬–~gT]^΅8Ovk{\7x)%sYݝ7l Gtfhg G]ńbpH|do*=8dO|+f*,R,ʺ쥯naz3<vt/ł[L5V[,.{ R]qц/3,-SĨf0G?!znAg0pES/̭Mfވ&Sɼ b#K|otk:mN屬$[ ?'; RD]9` #sa ;mC@Y}*_?UN{ ;ɥFZqvMM٦F'6[mJ ˦S6kC,CB 9ֽziTnr.٣2GhbLZ~&0{gVy$Ww(6OjVH\Eb^ҫ.ȞR%1}S-&iB8ubS*Hl.)Z+,E 4URa.2T#`cւ(g âBdCӠw 44S(є@ В2|X\Z!b,_X،PL:%'j '` &h<^d򁭠=uqPf'ƙ馢:WV{K]0@;)K5bgpWl\)JZښ7:_\e OXti8#buS{Fy.0`%8"w^̌L=XR=>߀&׎!@#u<}]S 4 4&"7D"er#Kux=vV?@I i3ZCnIg/Ql x'fH#yzt_+a3~6)j0 Eϊ8O/t Ȍ0NndפDqS}J 6.>^Fkhۈ N-\V (]ȸgyQ)g( nlZZѷw#U6Ys6vʸxތNZ+Ͳv:\t0u"xy|6p Ŀ^γӇa_'O>BJ[U2JoPůk.TqFUB-|NN<.ЎuFW™NX#^]K}D1o}"90Z"_^V05?@^rIDu%أ=誂sFe\^pL8nM`sGC(y'L,A(bj&b[5Q _K {dEg6F!'B7 * = &{j2c~oPSav+X"C=QUDb2~ Z@LJ,۽2_|zz3l< +?S k@Y_%T1ҟz8pO;cQM&m=d1i+MXsq `o+C I8_SV1ҪGMё6M};}ҎC-[ȃƦ¥  yb#\h$ + w*$Lsqd]15¹:%3Ls4-R !Spż;|mdzjdx=YCÝI@]& t,#9tRH$pq;j+@P)*=|} 7J5feK@32N ^,HJe#бC>iXeo} { u]n׏cTB(i\W:$ޕl} 6Y$tBDqgBG8{@=rvapv< Бi}HBN M1~ xW+aNHk_h7/Y6>%S 4,ɴQ'"9K+Fw%#[f-m^59`u}buCoa BFXgnF;6>C9ްW~ulnW"*_pRo5p,@nQ38HTݙ'V'oW_QMġIL3Y=!SQm*JJJ muS7z;Qm;HeohP֏1DBq͡mu(14YWp!۱.4~+a[<=. %$1?L )>'E)E^j~B#(1ѵu_oxAG RKIp5x会[mc) #zd,uQZ 큼t>}"~w<<>+bjrH{90gtXӂui6qa 3>,;ǎ P*u.sYjiNagDH.ҕ f!&leRަ.HhF/y7+2֙#YB gսnN :{ zP^;,2IقmN)~ g ed ^Rlj`n#pSuK}vfT]![@Xn[3Ե!EsyخfޥB(jfjKɉ:rma&#BZs$V>>ۻ:|irY|8itШ{(+%4e jlM4 (=ojů2Wn{T?ϭI[)jFl#Z)Иnн,K|s3>Jļu1.: CU[fq9',ҭw!6WCѺIq^ xRL6ME;%S;(p[;Yg۰:>c*ңj<}pIA{z&kx3KxN–Iب0/g %4lZ@[2 2s]r[ȕ'i9 q, ;1 hlL ȋhep1sXv=Wgwh!A-#1AiustPRL ~ ?.8`H_VŎ;gu|Vy5 0ₕ u^-^fD 'F:*\м4ߤi'$,-U&Q}xn%%b̴YM]ǬPbNsKU^_ѣO;KbI_Dx7 cB~%K}4iv9Y`:3䭓󍏰 ]*  -\^3D!c_=䊽{~wN b\)6꛹C{vTO\>j0PНl<R̓DؤG칗W{I;VI5߈Du8uaDk .+&?cvz-&.t8". #h-?Z’) v~XwsFZ]|z'!3i$!iD3%<%FӴ_fkX|V"3 xJ*+Qq`v ?g Qu o o"oi8ƫ9W JW:ɀmٳѓ`h B9 U*hDaVQ0sЬA{0J ji U3eGxRoDѤ#!A4W=~G4ʒZMUB8†m4fL,.YKAjҰub x/y99Mˑֳ4jtn[l*uo WyN\𒤟(%Z._0;<Oԧ,;:sQpa`4ǜk|bV=|xڸ4۬ں-XW}zU@MS}hQ UpkX}zaUltmv 8PҟK/0ȁ.3(&l@^nu)Ne:%…h9l`{KyB.U>yHu[@:U(EuI1Н]ނRgQy#lw1(*2ᆄˍ9.j)vyTr2|a?6"9cɡ;RrV]#)w}Vtjn{qtv@V *Xϕh;[X=kP82Y!~VnCW_KZ3΀Ys`f#[צ@  P0S偋 BشE5"b' 5dML:K33R1 w!VJrT_z|3͜ A(Sn}3s4}Đ <جunwItE=adٺFsswLo|F,vaOŅhdc>Qx,ǔ^mjE9L-&1 "1zA Fr<Ӂjxhނi$K]~oS|JlPc͋8??A'R"N.T!ԖPK+Fo0E$R.^}㵌Nc_$_%C]FTq/FE&2*$[)0jc,&bXF[bx5QTs;|M֟3n=D hArCUR^ȱJCh :"o1P `Ҵ!%:bYF2w@j%;j_>T֘PzuveNM?<.?b}zA0ޫ:Rڢڌ_>Oگ' lۍS &p 77UHjV-> 綌WI Gld(`h<ɩVgnyn02 }O-TϚ( -k^%+PT0Hv;|$/ Ԧn( ;6+b1+Kk@#Fe.<<,$8N1C) x<>M|?aUYBn])ہ\HA S^-sF6-MzDנa~'OO]Z>/1⏂d3 ߜU:^=h [ꑝu޸]5֫iIjɗwM-l8x  ICpyߑ⣘"34t0*Mg/!$#zj Z_#h,9Zx}%Q&k25+%N:Nxz > ݈?>"x~גӊd>4 $WGDJ9ALN2emŜpw}M71>_d\2Qҹ.\>K5f5ز'"T'2GMH5(D;AqC٨*84 trj^TB[F 5Y!:Rho 㟄oJ\k9ޯÞyDOj2D­I85s}PEq.&6$ +Զ&j%bָ?kGn#˯釅cQof/ŭWfmW0!mti@ZMJ߉,$HpO<{ 2D0N-]dH9ApL@u3!dM GLN,Ifw'{*6wܐg[,3Z@(/BN3Q#l!@?2JM4y["u͝d6̚>`T': M#2E6y"0Fic*.u;fiHar4opOL:tH-&gȾ_[tL,l3i!jietyf,x/^}F{8/ =Iè50CZ͂km-[&+F#T8OLp߿uȺuOUk gE5MYNPD8Ֆ6!ݯ֞ҞDTцH]# tE-0*?{ Yhb3DqG>bʒNیqu"jt}q8d]w].[>r4ENhYk0 =XdàںvЩށ)רjjXBcǜyC¢!rmt%qUқѤH<},)~`xV({@NjU_b9_oIU>)nQ2^`Q9ƄMyu۩q! lM6<~gs b ؅l{VxR&ZK |Л^HAR=x *Ϥ/}<e~-2:xڱ~X5u`O֎ e-PWTcwcmHb#%awq&ƲaC:J=P{o2)Qbs*7 sr_ȼXomd":s{OJKm@Wn:op*GnSW~);K$c`o3WqGgYD{S}᱗ H:U^> 2'Lzaq=L@"w&v@}nU9:ɡ,Yu`fK'[ l9-|̼pMUmz;Ĩ'b CJЯ{RO~\k#ouW JHF|D/b5iȔ'|=!4+anGhȝ6l7p/dž2ǒ(KyZ\ك %樘׹r#JP^1sUUk{DʎD ONWQ1 /GȅuxƤQGu XJ`DTP ZfleT?44OrPpAjs92B(1NY@6苍yNͽ EѭƸ3̋lݤ|<Fl@|@դUOW(>Vv(%z&߇S5e;A81sL/zO@T%'dƘa&ĉ?h&`VW VSWeRT&#q3s)wnrR⽃ *4%}͐9{鏬K$pT9/џ{c#?KMZ#A?S?(ƒvX|ɻs}Š ZAW͑_x$+ZT#r re݀J ,DžrTՏ,37TuI v @Fo"~Jh3Y7Tg)V2s*o>=\pd,k(:-ܩxʒQ7I y tl97ːB.-\ 90璴Ҫ8dZ!@>H0HX>] S%7a [l/)XTf\<ɷ.+Wi%9-ε7ɣoУ͟OoO:^T޾([ϝaKfG<8@ރ#?c DL=>Wf"nUKa Rz)ܺ7́Rfu+Cu<, i˲!D֓-`E&-fhe9> %nHX#ɫW54=٥AZ'"8uD<IHt!x!8$s~dH -p/ aivE'&bϛF=ߵȯu IasՠubeM=r].u)$2Ǟ ߧp%<4yˁڛ`;*qa:5\ݺ5WTUQ'_Aӂj[ӊ +<?t`ZPѫV}Š9e"1E*(;/F:R/cVx#s_8i1yIJcbB7ݼOzWMOCٹWO/،7vU%%VPCfQr$1w ̟ SL#O3{:T"/Uˍ `[z !8aʅ>+Cljg5U\0|I'i ,:&X,MW-IHf5-$5ݞgcʷvFrg*إ9u] y.Qr@u{yt\=FxA%ݴnx2 y^nBAz=F8lrl0I%0c Ь#!2K9'F-^$LRkbnI\y9<Z|=W~x ֺRß>I0#U TNӝ2}_a^o’Tn*{` 0#P\U& sd:2޲=TgOhzGQ_Q+Ic7ff^(f}Ξ[xW`ao-;}1{gHCN=N#ͦI񁶰 LS)׭GNB _ƅr#8AATyp-r=n^&,m?Ey(%?IR`8gtTV&44ʔԫT? o1%5c<[Rt!4MkBPpW-qs\ʵ=esFra}hF'jjTGBJ:RAit 7qI$WtgH#uWne% jKk>m91;~yBD .~0FTJ33PсMź]K#_`_2tmH3x:Gy ݫqoyȯjޞs)%W"/ߩP$A^aZeM5pSJ@7 OM 8ٺa>{fdZډ~d:De5>?,1:- z'*ȩJLGDɞ@Jci.s$Y>N df0і7$CW [m=k4f ;2pֳz|LϡgA$PZdͷKAp;2&[#JaNuA>a_@YqN}캫6:]7hƃ*I`Pm\zYQN|BDbk=H|T87& ]&;LZD] ?qA@l=>'+< JY\`[%=oP2G,߻ʓ%Yx!Rk_B ŭ+;~Rg=}vI4EAo N 1^;HCGϠx2*2p?grTbUW`Bi"lHq=6'䒦ydH#m*CRI(b,T>hi_ZL!L7_рc$߸(uOJ&X 4K˅LhJWoެPI?NJw`wG&Ĉ%R?bԘO1l@`}= Qޫ]k}%@]k<ӄtQ9(qx67]joBljǙ ܵI+I&_-7<`xڊ [ؠ:{$8 SZ ɕx~6vҭ=Lܒ8"|lH>KQ }XG)'z>! 2ߤP&YDp݄D,lm6 1ghzDwOjҦdֵCWX+O]k >u˘$%܌g}}8KopvHRX Ǥ]u6 p4#6ڟrڮl5/so'g>F $QȸOڀIr-Pc:xal.=X#.dW-_Th0Xp}} Dv#l2D彨r_ צ>W@RgՉMּۖF>zd^>)хrQ5vo7ҽ' LAw TქWzb@4B$3"K?Ґ[f[2[KKVY_=s#נSM}R/u{\} Sqёɮ~A5tų6t Vv> ߜSjA~h3|$;Y vD TEhԔ+?u׈m0>6:@:B_^&*\UuwcIb7g~Cm Ԥ훤"!WŖ;ݕD~K;ޑW8AA#-MjZ i~tӜ[a9O& W;Uz.ӯ\FÒ J\?96>ZF,P`IS8+rB{7?!HD] t<<*~2cQ6?Ѕ xfV\j4E~ K2[ƛCf\ZZ T Q`z`$I?gw_銶E Nvq.py--r JRr pYd.<ݞ$0y(LD y r5a߄G"^ax!M gvaw`9&J5JT8z{ ?" ISŔ{rk*7r?ȡhV Ę+'BdZ9D'#sn XrwN+TNl>kK[f=M'kZmgc ظSu[Xvz vB03;'X p;9y,y䒸o?"CUG`J~ HQ 2i`BSo%!@M*#8*-Dd iz Cm߻w53}a0^xaoD9'Sjz2t=Pg;.=ĆF]1̦; !EQB$(̪ (Z9%^JvhfaeC0XUFxIobgvN~ J(ˋ/iN"gIU_97mR܌x(ߕ=ْ x4ܙ"UV_A}pFj M^)~741P+K\%9"/;/533j D)dHamnꆮ:@֍jgqd !+ta*2| ޡGW.v>Ȥsq`0\:ڔIcސ"L% ˆ 5Yvj|f4%DKNش1n P9NoOK;Ǣٵ'pVA>d !>Qy>ƫsy>A2gw\0i!TX ˞# *c>5x'=,(m/$ПY2H;rΧ |'z_D.|8AY,o wY& k{/Ҍ1m 06>$EvVJp`zO'f8t3=AD1I܏HPm;˿ES;fpFF ²Oz\2kcZorx.B8Z)3<%bGJEj_XeQc^P>.U$j DSBٕq̼Uf;st&A璼x=)M+'5xqicJzǭvG'R.Hv;AHS/NGBF Âhw%%# B?pa->XHG=")ߘeH$=5M6%l*yVHxѠ@ڱ)V7:_+;HuB/o3KK4 1":Rkjκ{sKUMuɏFD7jQgv*=-TX! #Xn_Kn*{p:$8Uߘc@aF/i;5֐kZ:%ej{BC>aNgIvx#z7T-ӷ"(?<5;N8ce%H1>Op.ZGs,. ֯S7Il+}1hk:C_^z$r"Փ\@17A`]!3Ǚbꊛ~λ4T7cpjTȆZ }Gx#pKOOѤ8A<&鉿 TH}l *F؈ N-V#4jFMޅLiP2R`Z}mZPT![='b'x${Va55kKdlk>8~2L8ӛ/5i(< 3Y+խ̔_3g[yVŬ?VoYYQl\lty,.OC i43pZݸA]_H'ʲ_Y[PLnb+@-W.7NӀXZh_;J$fNÒ90FAN̟LAo׫3tN\P q)c?.k˓'o3q0wYTFQ0@ӟ#\aJ=)a 0|^LP6]>y`Rk%Bϱ [o%4e;G3&ĆbXtBQdDy}H#ӫ>yms ρErj9U]7?V3dq`%G79RUR .h5$ڰ՘ATq6twzmbƗ+;gpLNѣ}A 2V(?#0=Nz`1@/ H&5/-g5G9|Ba%54TG5zl!#+Jn TizC@B+F`fn58dNA=̉\T-6K]g*h tb])hRл9V+UGBk1nC$ӶM;q5))+wC)Q/eY,~_O=Uj*5k= VMzs`:U; 2&DESCcyq@->3|k~?jM=bz*8P8bA[Ӌ٣/4U:,QK< K:>9kCs~( oS9KAJj#1(bv-NInTBqݴ 6R:Wى@"2ڣ̕'jf~`8~p<U k XF-rs1Id'.ovo O55jY5E4Oik%| vaur;"8  !2?CE0y /u>u=F3cAF].꣼C ùpaMh>TNoBedLh-%F3nV塺i`1h~t9aC{[7U~$p+Pb+2B4?=a ?eX*>O5'FO͐fs_όw{14lR.j z`d{,=@mO`V_uy%I@%y-ZOF.E]kr#N\ӑra{KU3tX 4CAϵy.눲58[١EL`̎yc/-M&"gckA;rCT{Fd&$`oƎFe$ٸS=x(Vi ٶ ~Dσy?%c lnL׮.YƝAo\)k j3+ɡVaGʞ@"omw,ԾLoSІIIJ%yk0LV%և zWu'-V)R\:7;-(xa*]/pBv{%Sޭ:ŏ݁4i^GCNn,=Jk'FlG F +ؙ<4e.Wt4F3i " ''S]"٢ b3Tgm1&3O,:#&kP1~D'Nzl)RLȁZC}kCX߱]6%gFEC4qS19(g&3޻iL*6ggS͋_ƫ-5X{H}0Μdu7QVs|xk|ո鑫~ /D{vCGiKSAyKG z'lgJ׷ɧ'ѶSţG&xT@wH7HxQRBݙ/㧚*UUjUܧ')'#Q׋1Dth̾sBiAM@%GJ&mI!er%Ϊ >JJ%\0t tVt:prd:w(q"H}|zsKSUR-죕A=-#5am SwqLp_mzW+3lcts݂2}oӀl.bIZA" .kI PHa?+6. Hq*&IB3y8iۧR>Cn<|\ewyKB)- T=!E((7!:of =8[)6%v;3W NGu]]QsۖtE`;z3oi.jpS*EljlN (IU5ݴRކl)&J hk}x%? . n.㱶퐳>޻eU y:&-g6?geTN7^aa0i|"u 0d Cf>NĎLv&k[ԻMWn?9E%~pvטI1tkJ!޵Ȝ湕oŰSvjbP0R`n3Gl|Lຮg %kL= LKs{wu{%uTR"TF ĸGH]P"k=R/\@pkay|ڙS['YWoBM0Lr|ZvH2 E)obR P&V;M`]tp5}h p3hNriдy?d1EߧԞ ᭿T^bpYS&E9`Ol;"LLG^d)L=SXOF$3c9R=._z_n]Gh>k5vPkQ@W+^[QؔY:(zշ ՠÍZ%U[?Xn!.  ?RD<X`5Ma&лb(+LDFf{a`}TqHlx.M3E- lxebQ(_cm)rysQ;KvHm{Sݙ N S-so"aQ<[+fEƣi=O_}N1:MG'wqibwr3Tu;8OK2JmZM_ k`/fdG ֮ׯbMO0#~LdO,vr lÿ$4UPvNەd\, b8^֮_avvK=tX %SR-8ؖ66ݢM7XgS"J:M:xFdMF㮅qp"}2iw0]),)fc2%<_*qqTCG`-P*gq) @gyWc< Q2Χ-Xry9-Olj5Z |P_@$`eӡ'R ds@nl"v} 'M( NI9U=/}R]v\8L&*AG X7b(Fl @&S×9G䏲FrR;+I[+FKm>J0-` &Ή6kp_MF AW(Dxlbi*s`N[z@6*yNZc$H`wuB"f jy kǍO¤֏tUmT7@XjY8S8?/A{,N 3u~f=gU-O,}(݅WZ>P4L3tywlp%xqr-af01@l{bEh:v8ɬ>՗7f2nNڹG'm2{? d5hYBb6ieAזyd6\ᬟ#Ek6н;72\tݎAK}kXo)Zf3f# Y#}pAU2k| NW2 )2g,kYTH3= 2gl`Lk!?PCۊO"GpxIwʀ |T\ت +|SrD2Z feofnLjN3:A_ϙHmmhIFTE 4Za~νH=f1녃f"ePÿ9rV{ji~+8󀆢UDtHGeh\f)DYcE~e#Wi,z64}Uz \.-JJ*!oT~XTXz W9/ݕdSHgUvyb|)h L0TMdu B<2.=*0䆭cϞ.=i.'_9##oT9RjaD Y;%Ēx٩cj_F ޚoKLH"Eիc4{XnB1"૴& i1X_Ĕ{jMysj̫ 5c6zaɛ)jYh2hsMb5mP 1|֥KgCqt9sl i#f0pc tsj5EQ5ihCnp2َVA ^^-]jTc fbM-ֈSo;:I{v^m~ݲ"([S KuS4 'n$]@v6lXmA,]60D ҂k 2nپ*LԢKW( &P `/x-* ']dTM1.,DcOw 9M yK~Vf.o,R5D)fG"=4Xh{h=SҭͭgQh9t wS5󪺃fs|S!=*YsCh3ƃڼ%.m 7f=g%pGR-`2lDU=頉(-CI9x1!ql@iogk\IfLc 2,xaU֤bg WYj@B17hJFG\a|䁛,=ӾZX;V:Lb@Vgj>[yW?Q WO%o4'Xj+>Ey# @.6nx]ql^~48y8TXf5gFRVpWzY 4Խ |B? vw~Tg6z- O鐨XʛgiME\T)LrJ5W;vTdv'j$j(`KklQnZϐ] f$ C>~Y RsD-bt8 .4Ynovsx9h'f$ig7`Ǣ|.X3jdF< hDk0.iL(h\ ߹=w%7iOSO%Kٵajj`'rHX '.'39Tj[jT|o0@-O&Ҕ'IN tMj59q4@\aMЖcHڙ2U+Q7;Z)\ma{Ѕ#|+4nU4A.Z!ٚ?1WPF FMF5θ/A%| T>;m{&DM- 3m]Ҡ:b,akB&{0B*tl*Vc5Fи/a >/U0\6<6B@Q3n*)yD|~ 4C{.?q|}#0Q_H}P Ft #idǕ=_w[cƏo!J&O>O#۷HȏEQ}Ci9՚yIҘ'p6cxNR{\ ðQN .XW@dϱyfgb3:4_X}iBҖޫ(,{' jKAE(Kl9()TUbt>~Xd ~t AN"Ɲ˪slP*:wXz1{YNۑJx$% {,m?>h" '[T\%3'M;uo xV!Ʒ24L_.^>۬(UZ+T9fxQa}x-:>L3;,6wY'y'#]R4_:}"r`xe c(CZC+G~M0"EY4):ͅ|P0ʪdܥ4xD4%JX-{ڕWaUgspy8JW?`].FCtg%n9nWia}+LR4^sق(鉐\AxS[&ª@" 7$Dצ L:R+ zNcj~/֖\d%#1SWI _p&qڸn o7k:p@TsC+%wCu;Ӯc1$E6x{X,C8]~|1UDWn䛼- kbfj B aGhkLŃ?Єwʵ%<8\5uoNi|F\&<[koƛ|c`,!DPBLM3w<6NhݝZ Ap | .אPR9ے?Zm1Kz?tqIV)EХ6E O,Tlłv|i,",S/y1z/f@џេOR"Ys#}53#lDx\v@OEʊ`G/g1gC2O>΂nZz-ۓڇ't>Q z w#~U00O[>Of|z`xMmY2Y$|stHr\?x@Rky`!`i Z %T , Bi72a`\DT`c9sIگhpB-JmEVx,Y>UVY`oTN;ʚn,UR?}4[.P(X_cG=Ng~uSs'H\xyơ[){):DPeKEn..@|8*'= GPrlj!5+mMb2vQS\Kͱ@J"dwyVXæn;{ 7#7$ &EmmDl2YɆk*':L(.{2ZS8A$l%Dvt_}a# `)!n0$ v9֨\oquwc̃Smԍu '*;rLyՔT*碏Ym̉ET )i:?#D ν5?%ET$KQ81\ը]Z>s/i2O:PHzeW`Z'T<;qbP.,%@ ;71~+"e,I5D}rEYNVan,dԔ$[$ד 11m” PNykj'H轈&s0LmuR"JhhySLt h,͗qRm-!tCﱦrC¾ xZI)DjmL)&`hv;D8te"nۜ~>oJJƛWu979R|t]j ϋ' b(%96}&%42@肃G}>i ڧ A?רlRquG1`zA@8UOZ#f ޕ:|ꗊʏ&4uކGQP6 FOv}+,~7W7t0Y\+YIǦ?ZIIf>p)ԉܫ\>ViOΣ&fN،Zuԅڀ` o6PtÍ4!^ $> )4/L$jLx4i4UIc>Ӕ ݆}=a\ϵ8y V^P!d"݉@yX~;EjdzO+Ej++7+BGJ&s-'{BoaNp dW2چQAgl^q,eգҀtSS"<:C "Xh3CrczK{uv>19WTz £"+鑚\~YP3 ZovV)cyBѶxނL V!;1H6z7(ZݘwXX[l#\a|r Է򁌑_%K-PIKӁ%Jz }cҹkH36V$|D@!LP"*'X&XAPe0E и>p)5"cSC R>ɢxzAe bEphS8ǘC8nQn6vo'Ĵh>RmqG5OHmk~ W{ 2n%@UQyWtW_v}\r &"䍷衅t xL'i(THq;tk=ąxsj)<4 lD2/7PInfcuՖe%yNd 앰c8)<2eҚԆvFGvqAl-DA͖L#;HÂCffKei\{u(xA J6FVb'03S줋&gr\~\z̬bHm3Q7+sUWPb3Z#GHXѩI ],9)ŘS8.O5s~-tFNzsK"UqlN*q6Em8O]*Pj]ӗˍW$dUxxxḧ́ ;!uPYLb V|bWX"׊f՝ޅAaSV?4b9RЧʖ13HaL3 B<MŰC'qsEtwه*0/8Kc o q!ܲ?mU5FDC0!r!NO0O'9\\W mfQ1pőGSW~wFO%,GŅY87k"f"sWx*/#= C9p(՜$s "O!kqilv})RyuL13TgTg$\(l)H&Z9Y]%o\O{I6/,<һ`s)QF6gV):8;W>.E6<c{5Af^JvAQ eټ\2rtJȋ#/{!v|z Z,ܲ72aDFLγLZ50 lz8eCfU٨'Gg\Uw5KBn5clC,,@e+KZ]7شÂFH%4d}RĺNeJ7lƿ:'l3&cfGR nܵs g͂ /8/!;,L{7ůQYޏ!=@%5̎wx=?>bA`Zqk" g34Q15<2KLȽF?X0D/ 0hf 9op/}7  AyR}}-_$EFKiA$l ;>#gŋP2?2U[h؅G7-q#BًUQD4:KYau4lQ:dS!@JOrZ ɭ|r1YNC>k%e(,6n֔c. pƁڍۼpق݂'檈1i*M-=)cܥa7f(#Ҷ57g5,mqZIj0"ob dn8S͘B )idŚ8 qϭbD!s27Bs!UH+OmZx(^x*& IaXrDGG!3A28B`DhIh6=}ƦEiEy 6.3ty_NTc7c'L`ߡO45$ŞJY6UĞ+yq-l|J.~xOlj?yWiY<}􈱐鸎®,"lAEJL┲ קu*a KA[|ӟjư]/ړQԠfx貟Wy3//naQH~69O{'Wf42˕߫T$7*\ p:߂ yM aJZۥ9X}rڲڹlp[ h1<5A'2j n Ej`bRUO6_Z@Zۑ*|Uh[0i|&㨯2EA+Fa6Ht:Y?fCdѽ3CY[!"!>a^'zOR\ a5xrg7qNФM*m0evmK|.Qz3<'g ЌBܰzl8M^`] wa*_rFw]c_T@He&fe3xk',K H`~.]pO1a}2` oZ-@xEWN=.?`t.`bNV\ϙ—N~ .:IU¼KJ#M =?;>(hQn`Y> ;HMd"&_ģM,[4gb}WŒĭAMtmЕp//wɽHad[QEjfIX6T4OלMg HmXbɐ3xB.0uJRƒ\1F6' Z )qm_AhSEi$X#{kt5wlP ްMHW bKV (^e.Nh{E7;7~Ps&~YBY\MiM]4_`O`u6߮TtD ^v0}/u| \@`A} s/;!Y6 Cku ԧNzo/GĔ^aWɬ(Bp 9j'"|Ƞ͇fgSx(9J3I6iЇf7ib `YȘk  X/ɸ #N ]E: Xȅ'@EcrW׋B}Cܴ"Dꐽ +3^DuFI9%;UO 黬y HjKb'22˟%?ā6 hKa ll+Bq,%ΛD2 *fe(q"0|TJ0M7*%)Du\»Mp#zr2d$@(TFjRzKb>iN\zuu#yGh#9L3O# -"D~%^WntuX=9O.,3hqXN9fdP+rZ@'΢q5n}bD0ETY)|/0MD` I0P2,mi(rıx'+@K֞yIfIpp%r;S7*OQ-{'(%U}">A2umn'9֨ %ɋ0n֭`Nst[) Jo]T&lgQv)@ ӎӴ۳WNPG^ sáo d 8"!.Ϛ,2ؠ6eXgv=cMU Wj+pĚ̜qd!xIXK [",a2[CxQ-)6<{=8 %(/vAEÉĸeG5^Ч+Wue_r=`$>E'+  Fl:A4OSrCtB2 $h%k녨޷c1l1M(TG򪘻1'&*Y VP !g콸N O%1 ~)5BZoBѐ:ef0TТ$Jc1Ha)U96_ ev_k!mEx*8XڈW(vTSWqa2qɱD%p Mc_obvV|CA09ZX_(JQh<=Kq7-51 2c;xOdRo_;]͐cإ8T&_Nvp|].F4#rG-5as^=ʼhly$SK[$pWgľy螣uKe]6GMͭ$Icި$M86`Rp:(pX2"\)$Ǐ>r1*P1:حF2 QIM--n}UB~Vw1[),fyzY zp\ л ^_`Qyʩv+ky=xnqǽ ;,!Wt@k4h`,BX֘L.qHeO!}twkEt3'<-qM*~uV*fmyGWorF*-|DaYT0JTݒE0$D??p0-n ^JPR`I0 8{`x<"e2lۙm nUI=(!lv!QW5 z@נyUd\>7LqzF6pYMa:ǿkUVY+3in+Ăd_~ܸ0SeF(=Cפ a^Mۋw*s}xsOXYؐ/@FW a(+ca6}[jy%o> ]߰pbK>t}?= Unʫ9'*^_nYݵrɫWUF "7Zw`n< y;bMWo\WV> 搏2O`TfJF8nh:9iȮCKAQ֝G痜61a[('9qPyS\>6=f0 (GJfS-m<: ;q;IO&{B,)DoDɔ5l# L?"Ǧm>;nȀ(ܚ½) pn{wyWѪ1{r-I^5d_(W Ckf.y?7?)Eĩmz\N;ubw,mԯjwtHȳ@!odꃮ2 ]Ǜ;O^i_wRegXT|ElZzB.\ IƾOOOGnsüq^nA޳}i_y.UG2y>B\[{ `۰C}Du@}?y`,ʖdN.w)>xLI 36&ex+QJ@X1k>P!bhE@u}+wy%x`MJ.癜=‡ C-pAڲh7 j4<#?'?6U;)')h-]U:WSʳ&9+,U<4 M>dUt1 q7)K'ާ˩ /*iy'8Aeg->In8ˁ_PmY  ,GL_ogతpGG4 l!XƹЈ΂0<1_21õ,SlLνΩ|ժS?ÆoA *uj! Z4>GX~''M2@b`j .i4w~~]9i5d'I*I5pѦg?¢UQ:D,'0-M0% [ U?+"׍cczaq?'Jޏ$n$[{Щ1Uot}̉#j*qL\NpMm: WYceR.ՇQzwǑ1?vUۊ@(IdXujs٢>]$M K7PY]ܷdPoE N̢v8mzʱYYАǯ*40䡏_>Dj~*4-jx,p4eLO'O!4?HA%.Hj9uF{9v0Co﹞iS8N3:McAh}9Y"z.X Bo&wf o@TJލwd8Owl_€R6 (z[m+ VuWyê5Lmdd[ᖶR@*CMCz Lj&$/5q1z,}`D; 9z#v۝€d,encQYNH7( 6Sr+QߓZjZ>Tu ! iF .p꬏+gjZ;z$Olsvw|S/ +wF|2@}6>× 녳U"[7yJ$SfaJg5 #T`JdhNg$l16 ]iŰc%#ERBi'7ZXT1?a=\ډi5C= /źBjWጉ0k3ˣ񕘤~pƯى 0;љSVYWXpʸ(9 ach,ף['˜PiOk&$( O:|+_ qR/HߦH1h 3B."*iNE@2QـfA'R I^}v! LZv=L,ԕnu!ed1..t}6MDy[lUȗ0ݵTQAQGc}Z6(h9lv3bed: e%YDH@~ﻩ}<: [\Fja0hUl[KK=H}=ןxErld#"Yw Eu$ PV 4V\"ZUmʲ @")SJBlQ7@(j;}½u$ns.գ3%[*?J5˓]dsӞNr㌜}=E>#^ዖ+%ȇ I~ax's['B_-Hh ðiѣNN);.F=FP[%߄c~©{v8!673%Yg=5e<:=R+@9;@ g񂕝)/Y){mE_z}d^dYSEVh$`P^A0);@s P)5E 4P(44,4vgL J AljXe\S~sqEA?"}ASOͦ{g{ \w~*MMS 2[-HQ*VRH)Zj"m}y7y廖"?1ܐ [y}O~4S#m7_{.~cWU-_} zT(}YN:v^ }L/fv!F눓6֫h ℕ: *g[lW<|Rtv_k%o8OBxP4@fӸHVzlSIצwձO<` KL,z#bByةms,ЪEˤҐ[(ib-m,yM+w駕"IQMc־+(d6T@GC cL VҔY.9,,FBƒR5?L{ҷl 2I S&⳩%|ձVw ")~da sZJFXf@PCfvi]D_86iS穎/wGnP7%9vm?u`JtLj*73̹ ͨ1T2;U5>z?',=4/.`oQ҇|rL˴=5|jg.\~3fb6X,DhbC?\+X@#{ ٹk6\{tpҦ{Wj~\U G.eɏ} \¤>X`w";;6̲Dwf,esBz0|x\Q2Uۣ/2YqLs$6HkeڼDӱ 8%Z@b__TԮ_3ۂbN42.MJw st #aN I 4)t؇#ԑXG^06O.0p3B,%4!9 _ ,8|C,4xQvXXw=@M1>.PtuF`Ι8) "4cҸai#N#ef@xVɪuF]` 7}[2VX zD ȐOY#-Nx*zV%޷6B ' 1w6^&22 %*)sW4w6QhJ?peZSȺF@|ǚkd{ XDž.ewǎ!-/o0q@%+R?jyt!yeU7m+WP ;D]adTHq3sk;CW?B"ܩ"1vhA}4h 6\Q ~mR"0r*PhPQ;3L 0.18ADꦺ҇bb6ޟ ZʹX ʢTBHk2}w#oF'T`|C/(~QUz/n JE#Lg2o2ؙ.* ̹]6Q},r+wʍ'ؙ%ݪP wMMĦGSC|.Kgqjƿەɖ* 5D Gz(`L|2pUyFAxp u%e{jR$)T +J}相 s ؔt֦y˒~%ꗿ8# ]*#!Pu41Ҙ`5}T`l?ধ?ӼYJl  rLol7u\y$Xc}2靥42@eMDQzb|X$9=9"c , j,R0[v1[V~܋>N00v>H}@& 33!;QxeKh>v8p;X krG}MC >zȾDkFth[&q{^jkk4RܘԦPl/Y/YLvMYn;_:5za sG_U7j!Z< ֝J8۵PIRLWZV Ms 9OAqH=9ݵ44c !wyL9M=,:WOi|PeސڞωZ/ֳș+I]1B?n.׻TwWdCrC PҘv%?Ic 8CeG ANt<|5VbS3`Xq=сz6$4caq "HBp ndH\dbKHSL/ ,*Ash2V!WJ5)gϘتѬݲ- @$/B0ZF|2^ Boem]nbASߜܒ44mb8^>"ENC6ޭs<ruUwe='ފݧ\ &/3VxjӡQj- eX21,Tn#.UBIfyAW>;/P\MCrj`+8$7 z;ވodij3񃴙>IT0nU sg4s4^58TwE &.6IԽhw! :>%/qԅ|kԸZnMH8tlieֶv8͊M/DgF5UpgQҮbAʤpJ/`uxljЮCW>ÓI/6^RF P'qGm^tl+.u.?;ڜ&ޯ)bпI2zh>}2S>"c<&b1vĀr=̞`6ϐbVaqzviYD]rq`U@99}/ %?ŶRwuKB>H, aSNlmȪv&yQߋ$8)s|Og{碞 E"{Vl8K}d3R#-Iޝ\QhMih6eSl| kVPV~! Un Dd~-BjY;ih$%u򐳸 :1r|A5%OϰT] 9 /vUz ޹a;c=#bVI~xoכfRܠH`ak `$z>/=NKg [Ae]RYmV<՚T1"^mpH~P~W%v1y81bz 1f'na8ިeT0^9s&ǵ\ EdH:ڟFKu qTdrdV4))NmT3Dc= =kQh*NLhZXnm/Y^* =L²hf(i2l9`$GMX@,pkRpF͜K*^`oC|MFW͎ׯޕmbՅ5B_ﷻMX "9"@@B&M}PyMdl HF)[] GC#řq6<` _)XĄ2)moPLszw{4}e`S @.gd^ w/(GFE[mg8hCa9;`Ln\ۦ67Y6>;&ȜWKӏMt_'->F4R) #l̺8F J ֌ (b͏'pEd{a)\蜹fQ>`i CZnEw%Ta.*c+z ΄k#iMfD= T`EVBFN\Z\eg JeWEel838r ;m2 r8GS>7oF&$mɅglV jiȋdysۛz͌'\nK_9 ֔S>oaKk?!B롰e‹Մ9B6vũ]$^OrR6AlXԤY- d $yoCzb,4f7pTǔI$I덟O :Bu6@cKPYq"ra! 2:b6pDN}/vqLC^%mG<>v^,<LX%z;l)_CpAX5晽o"ͧƗZQ5:uB1]tx1KzMJ3ݕ"v=N}l R鑬[##a])T,#嬕|SQs@x60Ӈ7^" ^#~tt oJ`ϕӯմMcFciB/} gF Hj`"{Iªťz<۩cm|w OFm\]G{1F]V !,#`MᏘS~ 2w0΢ʃUn~UD6E!J%ԛXO$xUiU6x^"_ VxPOAU5}7}w)-}\wªE\ y/*ƌ N'?dX=H'(p @吅l' _U[_VKC^.8h-z/݀Ww)ud!r~b\-<6'[JBVh8iaEL^ܴlB,xoš v/ET&FU"&L$n-qbq=v:B-U|2Mec]a |Vy>Ѳf?Bx* 8|Maa^w)~LyAnHW}*8Ԍg]7lǸ]BLt!|:amV~6g#eH4g`R}-$g(`9.AM-r@ /\+P5V %am{D~#q-<\̈́^oE{#$:%]c &r$a{F|Lz}gl`$z~^N^](R#\2宠FMe|?'].:_/[loWW6a\29t4} qNHg;#T-[i_ӤI2hXo ~,SMVr,'%rKfu'`Fe!oҍcl\oH Hm)LoBw)эC:qs9Kz;r&HtK*v|;Y`^8>>LZ w5D7cL#V QilA%bzWkXu&)-Ŏl<WCfR#:x굆 L~HL#づZ6DҚp,ÉoMrZ:* fJAVRDsP2 Sdαljjmdi[ '-K*LB#EɍDž5'YV\U;לN>` EU V%p Ë7y['ϸ[j9T4KnlPG$dzҺŽ: ʕ %h n?A{q)?1 P"5BS霐|ʎGexZI*8?UYA4\T@}vQ&^Nwc{#-Fg0G*8>~ ɇ";F~})(c=M+o{JvA0">a0E^yiXDMT'9+&'tvO#΃qOf;ٳQ:#<ɿk_ 83s{d̯te`c/a5#{1!]*@Pe-Ys)b&hâ_0!I4dep`l={6+QZ&,G&y" Y4-ť`Is1Ti'|#""C_ecZ\ ¿m_vcH77ՔҺTyvԄZs㷷Yl2L9)tlO!,l|4iT~?*)Z,Fi: iڧ~c[5IPqՂh?Q@8̭!rX_R~3BSWӘ ҐEC|>"!>1,\G/-1ф*~{؋{ z蠫 H܌d\'\xDD[cj/)~3#yۓgAḦƸ:PɜFʩ`P:*#y P9Emtd4_օ3׆pIq3 }!w  7;Ms5^R69޼ECK ܇ i<ČdǣR[`zc*D؀ڝ[;*x0yHP`މDA~#5#y}v&qQee]3l}n3]y810.=A\S%[m8[6K>(O;p h'(H*U<òwx=L莛(VW5vlڑU~̔ђ ^e2.QFrb\C#!Z?L–+^" t|m儴*zK/mqaf-dQ:u.;VPDpdʹXR*gpQSaAoa38eTQ³ k#F&395ϣ뺽$2̘R<7Z7]q3+ר ʗMt9%"5-BwCPshE&{B>(4bwc-/< BK3j۲&-J$_lGQhPK41*|F-T C^ykDx՞*cjQ2iCl_9VzŽ#+wisqGt)L~NŸ) ÆU2-IL؉+QFk6@[4_6bQO1f#^q2ji "I (hN'acZL7wx]܏a\xfaJ&Vi‰#pW=7 OqsT9owJ埉qǸ:2נN/,ZSdN 1z^a;)U GUgÇhUxɚn_?%MW`(?Ȱԥy0ֹ6d BuHZHeOY'svkKt|r 5J ~c!8NY M㜾+∈hže**r]CLO 3ڞY&9'K'd4%YoPn\ Lov :#;״4\VY)pXk6q5~B|y\ۯW?.c XBn`b~a7SÚ{qjfiHW LƄbk%k?QG/]3@ PcM2k*bN#TW`%xj&^8Q #]|~c(-L-īB}fW5矷dگf\ aWDĝ{I#fU/DKXݜIN ۹ÉK+PJtպ[`H#bL; y+GZL7"g}A&.St3 )Gty;6u[܇I)9))kΘLrk:wʒJ7b`Z۵W} crC߄uKFkWG9-rYqJ<7HH6o, \~["S,F#"ULe+{)}/m<[jԊw2]cß(7YGsm J(H>&_cy}|@hs,ԻT.HB'YO[g1U&7(+wŸGy&h@/5"2Z.48őP/UYn5Pl)Mpח0JaO1 +f6loAۗ0art E$dh@Vĉ?' PS;DE,6 Qb906:k'҄fGc2 &8J?YLQ%׻9vGQbUNhsZ&.m,L%`@Q8]גbΓxc!{y'dz,(kG~hScIedYi`{#<t-I3ǏA ̳mIi#LhDW,:6 T]{^ԥT '+fZM757V~HV!' A ?+<^mzm@pnz(Qc>-{tCzٚJь^<慡KngX wDaUVH;( Փ#YOdMϐCNzE*Cfף0 %LʆbމG tpn7?*lA)tXjxU!kt 6"a&R~p<eMN& ?@*p30;Cs{rWMwbYؐr~FR]DE a٣N*V,{ϨMC'VaF"בГzlMDtd&٭g-}\a 7npPRuמm#׷mȐ{5A\7kma *%˶JN+=:{AuP\CERR.TUa|gͧ@f|5rVjlsajiCF[M;ߟv -';hP2Nu\2 xhHrJdOpi[Y~Mvn*n96瓭yၛLC-?vFX?U;Q4+muܙeYW I銽Fk˧H9GS?#w>aP[\n/7&MU5CXۃW]ĥ8 zҍܷ=ž't}ŘT?nv<'GSg!h*3k+*&UY r%Sa]F e9YطL{ӱ|>[!'!E8gWw5uo> ODDo0I*sv$ƅm=1f *R"`[=>V?9xs'. 50-yYec*>F+@o.WXY\}z8Ho0qwR ]) jTwmPiH1̠$ ')P EqCֳfs]Ѣt^0ӏPυCchqm',RZ!\6 z}{,e*~Pca>Ojyp'݃Rw3m(C ŏ-&"6 wf{{i'p{d%古 /|]?>D a@kK6%XzyThos)$r:g* Dzoڈ{پ|}oDLH{znMŕɅn쌇P[莌_IԤJ]Gundٚc ەJpCfR~D/cC}HI[1VŽQ)d*$#~ɊBP VYy(]&i/qf&ۂ*;VZznO#%䔹i?#UK6dcq?UrxůfL*f`I,~(DtԮ/塲y!d*Jd4iQ8|onk$ Tf MR_LM{˳j+y@&3au 65%㎧-t0Z kD+L6U괿IAysSێ8on Ș%L+IVJYw-HcTF']/IHZW]!2AU`fEZt"ute}h#e%Jǧ\L,pL"p[X|nHs0O{ɣQGFnlmb3M!ʗmxJ rE58 u|VeMUxQՈ9SJl&K/m]hO1.0d5iyX,09^&7WPp/[-ɽ#]A9^D)^bo?G?$H K ~qUXhW\޸mQa%^ȢNү;>רQ?*=+f:w|9_Ğ_ _ӷ@ffUm{D3sqn.b/Rvb*Dxkevoq`_Ѻ"v*W/j6FrJpA:?Roڇ%!~hcjth2&kcgJJ,\.+\%g{Xʑ\Bp4n^q mH i.q[n?=Z5Pǫ'G<J*mxRv(U;Jm+o1& '>n=pxAjSkNzdtoRPqce_ޞ%\UGS46j?|\g|)#w~FZ0ovܼ%Œ|ш{tɤ.Xr$j'+C61Uғd.S<[ zz85{]]댏f>6P%1qh<)b6 S ̓.SDKӝ'78 aC۩ܩcfJJ::Yk3Ib@GZݨޥE 4r1!6q8kh)&cgJ:?IOeh(-Ez{L֊G&4 tk fasqϟIl5.#ԵvYmUs3M{3=N&z;(Ў,l<"+| hNKez>Bv~ $S %Mr{>/~Vuov@ ,+߸x Y#6^bgta(}%?Daɳy\":HwV?8cp N\8"KB)-G` Qll O(k_M"Aie?,v.(ۃ\p_2tuu (c{Xٹ[P GiTuNzvYm:׭4ƀbMmDsVwvH# \ \Zbx9r`Di_]fF# vko -^2܍mRT,`KG8(ȆE&2gЪ[:Vx9@ ؐywB[ GHq>R? W-Wcv`v&ڹ]Sq n*`b6jM''+cL{eOx#erL?<Uzx=mquT ;"dݒ_:}0qӷ}X'j6 fH LƂfNq>CxMT} hPZqQlU^ S~&JɧȾd]2E-'i fsձu Is3ϒ^I/`kXB6(xX7Z!G&KSx&jAF3P2p Ej'?r"-PrV/iNg':2G_ YF't5$by? [7^swq9A^zjEPS5x{؞P*(@VS^G'޸*!+9q^H(x<Ӂno|@<<M?ĐZdSv4`1* C vo.k7lm!ōf F!܀I/@3,hA3BAǨYv<zR`bw17Ï% n0_k&4Y,5 :U ]g YVEPShg =lyV+U43p~Ͻ (ޏs)IhCXS'Dc,A3:L((qN'Vx?i7i S-X; J f4O C#}x*R5)^aAqrvb Y.z Jګ fHW O*m8tS%+ti◰=;Tzu 7 x.φG2ZDo4&c]+٧VܜUKV[n]8hF ;Ϭg<'fo^8=)3Q^"B6GMZ'%~sΒM^;25ќcYVq<¼9+ڃi%>J\Mƒ VsIb$ӆ% KֵC1uEYEԢP۫6ߴNRˣ';X $a(`:2~b@ Kn # ɬЬԄ 29c07@r=ҧ" gKE:ͯ&S߳8ZBJ^ZlwىbjcC\NRVK #J@VVnȬ6oNTMՁ'd,΀HȎD,ZۑMH 1nyΡ0*p5/7 cB.j"NZO:;x{fuȐ:aJ|0SΤ8`)H+`uFa9ԝ`}ȝjY0B Utp쏜8|<&ԯ ݈p !;Dv&94~ 52hYyu" z1{t>Rٳ8m6.lr?ŗg0ZWiYZYṭȤV5%,bn[//SmbuQkb]Z!-}Nي4)7gv-2ʦA!zK?qRJh6Bv$9O kZ#E蘂>>oIu( =G|[V4=DY0xz,9.1<*5^i^|ɨ/]rJ2T$ !Jo}c%DDf H6:NihjN*NiA^D IiaLO|j' :K K@Y>]ë3#RҚtZ䐐پ5-a?ȍ͔ÃF32M( it M9apq׌g?s60,? cF<  Tf/#`RbIfwr4f9ŀ$wfxtH%9I2Od2&!FN2Ԏ{>Toi'930+Etu~khE x,ּFTMA7wu4?}،M sA^Xמ͗խ}lWb~޽N-AhMN׾n. HYOuoV41 q?{yKŪ3A{[#zv$[jj0,CRȆ{DZv. T'Sh[us"eQw鐯ԯc&LmPIe IklSH4͖P'&`)1m%Pc6ŵ`o@l; 3W!#lVM>ԠtxC@>. ic#;&O1:UJ KAY1 g*mI!; e$zJd3M?Z2d pFQ~V&U&dhr]+ hT5Tb1ƁE;\5Su^VL\k? F !ma+{mLIAG Z5u…w_UY ))Z7 akyNvLNÅ/wHXq,bAB6 qeV+hes_Ֆ,eȌɒO-3T2#ݦe}Ydߥ>6z1޺by&dp&-m6v5f_i}\b2,\0ާ05g^&sD;j uK qtFL(aL/1tM, RnG?XHMj4ۂ(daJWi60-@S5[~_Ө &8~uUiV诬V!*״}]DP%?HlwW+dȲ{6Gw(ǜYX~" A\܉EtxP -QPF9x\/ԉ^li0j\%)m'k6Zn+|2=% *Rs}Bu_fwz7 ڧEړ<^FXCP2ȷ̓dgAJn.ЮŦδHm,8|&f.aONƦ鶻{/z^k_F-Oޙ ///Ԑ5o-ۘ7om[hnlEB-IpUY^tKd[wzCib+돆4կ6X3HPJycL1l}j=$}9Βzpoږld`]oH{3H{ƝP`tmCYNN]'vi"ȎT, skܯ27`7vMzҖק 872Fc+6zx^jrddoǠ[z˪Ph>tHWcF^ OE)sK%~y<G^P#50?Ԏ^b2r'oUHn갭,4bWd5' .n0izjTPiro80yhAi~&&y#RKTdz Nj8Zo8a|(+$)vACa3u}`uX*H䱗tL7XI_eu:y]=*lPe(+~HFr FLj3ז\Z),ygW.R ԋ!}F Oz(#Xg9V뚑S6lF.MQ b'KÅbgWSqpuHg2R7=3XJq7e/ʇ:rsd9bWuaNufx7o&z RdU@͞l?"{Rm= W*8&뜭b'O cP0t%~Ne2YA,z5/‡O"gXgîLR"q&'ثZ-_!օH0KIOe=|> ,j-GSՅ6q*\`@<Oriw,l_m{&;ciTRGWyD_y&k*\jֶ1x9}ݘu-('Vc\&ŠQ؜y¡8v$-hz YdcUqFFsǪV\Q}"fu# H+\TFȩ2+&L8#^&;Ͳvzx-Gk3ߔ &Tx򩝽a){9}'_fAg8ޚYwFGh>΍<J3C; ^c-ٿuFdwl[V;aa_lbx,-X YUá|Bnj3V/=sǛ۟`}`Ԛ~D)_&\}Rl4xN,aNaZK(Oѓ2^MGD9`#,t0*PPopQʖN%'|7ҨwE;!š.x&ՃZC&ΰGGbiSE\9K&ksm,5IyM@H2f _9g.rKal !I2IjgZ=.w r@ |NϠ9D ;ɝrY r5`Gجfhݖ/E|<=:Y 9^RWe2er]c Md-2g h,_5L6tT5guKѐt {:Oby܄ ef>BTjf$ l]x%b=&tˠJ򱧋A ٪ZJ4 E!JWiWdhfAN䛨 f>kY+64! apj}Z r9ҐNuP@3=r,6|Ja]_^+\_iv?0YDo`("2̪h1Dbs~'5gӯ>c `prYV2 ?꺹YfǹҎwÙ4"\n,5dU ι||eK4<֮ܛM2{1>MLϫ^T))mҗ{I"JcV)_^'XpI>}_ecLg j~PY-8rII!w*_n(KCP"'h:۵/9kPI vsh].Aq0DAJb $' S'f3zVTW|`|cC/$Vo\|Z| q??rQ_zDBI iKm.r,M f`p' I& MR2ܡ\AMR١g}xuXf׍+Lm ~M)RۈܷDž1RQRmô/}⠆`Nu7Q0YLjsG-Glj{{ӵh%xi>ba^dqltם*وȭj9 4og#d{#vFS 8ǿ0Y-Bz-qqP|!? ܂xuA11lWǒauBe4xwlNg.zŠüREU Ȼth!kzn Bem!K,e4]YӏFN?u\ZFͅbtK\~~ZtoDw~CdmUp!!JT8o U1= ܾ7.` yаu 8(o=-ѸUyx 0]UI'/e 42(ZQlk Pd!u.@ڠ~#^zǻeYCDE&i o8J,k=fƕquwݗSL~>{@z_<- iuv0#,p54龍~0Ȉ82)B.kZ=б* "l< tuD64-m32~9)K ZB<WO#+Bll)}{f.*v{%V̬]q)!J M7Xb4h]w6 c)l&VkK?[SQII{jUqh<׹U!{>rQ{˂Ջ0d 5C n\bJmZgJ㲯4_AY=$`"6G>b+Hfxno7݋:8 Uh!~+6MZpJPVÏ>ł4bu Ķ 6q(ǠD@2i >*jn͜e:u"hsq6boW+0:Dkuc\X64eĸ\x5XiglOl2%MUO-\'?;V(G7 /RՒHaȿM2?"M A^{2ݭ󤜅g26LYIv!`.<!ӵÀꂭM%pC!x['yϴnn߫'z0-AN3{-UtְQW'ե</9QAD /z-TJn[rxHp}2!斻8,yeG64Q8i3H/#CC|ԪQ`j w褲tk9p\Cc5j& ԃx} 49"#ypӵC(V vqt14ع(]Jy8.rT$|<(Ko"ba .Yxm@|OQ╚7ZOGMrʞ+0#]cr S>Բ)GvRtHόCISO:'21HBwJ+,ۗ-&Tk{?Q'x!ĈYBBGf7e&]`*JZ3PW([QS+[Tۺp]c4L" >&l2sD--Jy+J=]MQJ Xypj3k=AWfvch4w' F+>T\i>%Ńmv+fӡoѯ[Puu'S臼3?"Sۡ0Vȵ5s_+)KnP$rNSÍj9d;oi P&|^'jq x+P'p(Uך7 >'쨄XpJldUצV)LS ܹ 9edJ X hrn*Է<\0t]#<yG*upRn\ⰷ7oF6w1(衷x;;ziƄdx@US[5hԍ.js`V8%q;{,Ʊܮy"b2#C 䲳CqpwX@l)56Lc.${_gSo="W=|GŵNgv4p\̉ӍY?E>!7΍n[ $% =$>1'g+jӮA&m>WiPWbFoOZLDžΏC5:WCF>L~G?]9OV#զvRZ͞GKH&Em gNxdMRgtLQ70z%viZxiah[4  BH7ʑIf6'g?uud@ x#;v~D| X.&U)_XBp*MQυ彘 xӞCe;=<3}ru7g@}hFxGlk+Q&fj^7scenۘ}Ja+a PK-C;G$$6 O}R`qjw!<9<˨&bcQhb{yiH?L8cMrMƅ'?i=bŃ ^E`nnnS]ĥ|egUt;~/!8q^6LAp!XGPDF<@E К *-ʝ!r8yQ|&P8%T@Ne@bdTxR H}`ڟU/M\nj,RqMljH[6b)` z6u( >Fᑳ4q~pr5?ĕ<7ݴs]Ez~Ki TU>wG0'GI9X"2j競.֮̅EܴFmqr?f!uZs)M jy[5yerѧf16@}Q -mP++vjU?UIQ oq/>!ymafڍ'ztKY‚E:fm/B=DѕUl*VCsj)z@@^^]MH%&ho>.]Wu1\@ri}}HF.Lqe{϶CP<1$'vȵY5BViWͅ0ipSxA48Ej#pJ0nj2кcU\ߧ:2[` BhE|~=yĸ+eJ/ݓUds  ҘB!yuni\ Blu YB(PprG)ʗcBlH6xX<8DnjV'Z3stMqf|YQ$n3|X2pgXtɜa894KU<\mTޓf˰X]OƲ0fzGג%m[,;"Jۣ0*f7V X5 ooNu]P/UV%~[]Bb6zWEaDM<Џ0~aRClɼH)Q*4h8ߗy'cC5OdMw컓w#&{qJi)ERp1;OM imUͣ|(gSIJs$TuŖ$LZ뭷 W"'^aյăj94:Ȯ;ߺxDG&/ \,ՑAR+Dc|1ٟgiNrybzj- *pf:97}xHT4t$37ڿ:&n3qKL.XUP'9 2,=/*V+&.4:Lj7sw]˰+ Β"kTKPQ{5wQ0C`ݳ) :Ih X"ӊW:%'ղ 3Mk.E/Ȋ={k QMݧ1&ʄw+Vs1l[S`i'_=Hl=@"Yac̐Z &xNÑYs R%y]d'F$;dV-M1RDMT҃ R6Yoe䜾bVnHQd{^R^ʼnYv})֟Hz vEiHCg ;ҨitN`4QGHi9dJ{ؠ?NR 0y|'x)-h@s7")Y\3Uחb u(bR%2βA )(zq< "e㉺&'Kij2[7OlRDk5sUAXC'3JRWNmp 7?et65Bh ]ב $A5|d\EɄs;'?\1zM% &lb il oѯ{ 8mrvs?SV*m6Gvdʎ%W>n S+ (C%J6v@/t IzrS;Jd&UoEfbiK{&d#@KS#rmfQ7rJ*@#r5b==- N"G1e$db!zWK!}(9Dc\{ιj#dMnHT֒[㨾ܰt}5܀.F[@A<m8-c&$3TTc08K; ѻ\jow4>Xaz(װģtP'b4ϾOJYaC&;DzE0j{+f`gB~X,y!wXxPT%i*ՉQV| Z?0:ġ"npZ vavX`wȁ¹x瑠^9'dLjvNcB=SqD񰼠l}%:Bǖu{θ0/&;a0- oΫE( M%R{vߧPz=ۨh{)֯?zL̩yO<߮<~dSnQ}[Qba k }2$9X=kÍsTW;m1b6 '?d睩87R (vaIUTC.;I {FOWwVz6<~RxYxAܐqh H奈밟_wCͰSپGhAJ>ph%QM̼zTu:I]osB4ܝA\ymN:Q!z8hQi'%x~qZWna߳j1۬@¦׎kM0$/S!hջϘX`3|Z3u/]@*Z4t[#V>/Ғ?g+JbV]أ>!嗽~3OΙ.%v<)*8ǪFA~}Ec"lM:п6ѥj\[. ٩Ј)c-m]{gp=; bp+`v&%7'n}2Dž)Ij 1ǵ y"c𗚀Nu>{㳨PV#z-%fss18tIAh90}΁TsRN&i+g8-լrJfty_bcd21y(bw(f䇿 V9>y> 6]mIq=y5$}a ULm3`N7}N`VX[D|lM?DSD]ɤD)}8 @ksZoRTعm_RS.^]*Af!EYjv{cعtr{|L̬pv_6ģO9[U4edM?IZZ=Yvo[1@3}:w#} cZkqSzYu Qw@}` \#as+-_rG >FW4lYudoS#p~ tn-UI_ 3).nҺ -h{o3Cq/H]uwmU{!Ŭ0e FnrF߅&/zoK;~=k0 χf?>̂TW:&{uTң6CхS' _r`eU}W~ЂGqb5;yRuz2BkgnyqTlTIqf7Q+>UyM~zb$"WiWCX!X0c m BW 1[FM{kG=KKeh6'-%a;fs&;u|fb*u9{1b͆P~6 =k3BkTk 1@('MG0OC|U2DoE݅|Iͬ^{L~Cu+_?? H6p cif7K4-| 9d:w,9N\x0GPzWW2 F P_`2#M`&deolkκ|']3T4ÁGUI(Ol< 1#㨷"lpUd)8%/`bVgS+2(7}!>}.%q ϯ%(Gl{SCnPkߠ3 1-H.GI G-Yͮ~n;, 43cM3? ;UNطa#Dʯ6'v p)]r;Y$._qG:P?):WUy%Ia#)feE{ptuqgwkŕ{3s7E頻Jsi1[ Nli_ygD%G:OEr P(#kNUk#8@%a`Kc&NɈ AD;p5ĸ+8 ]Ǟaoizn> G/%]sə8dH[G3 &paي™;;7::y0 9E~U!<[t X@nG,}JLs /H sǏa`~yG\PG.7sI/yO?gxBsAֽAzi[Rہx{Y,?D`Wo*YYG3ET3 V`OvfӻQJ-OCٚM :n7|-='Ҹr2UnXghۨeNN.ߗܼLMC~aT[4I޿/2"2z8N&mJmO ]tP@*k,GFA!a4,3?oPT_?KTEȞ+(J:필-`pZ+Z/JØ@A<ݙV&:L|`wyݵq{\ _:ZtqVTygJG(9G{ pt(2Wiu/(fxe;ǜi>b$fj"'{BG1n3 @N%MS13[]]Nu坔VBs3y:UYRdta ՜ѫOe\cS;)ݪHCU8UP 2FN}Ȳ aSpi;κ@F>ɀLR!ݦzv}xyw\D#ŷ)Qvώ^~gqpxC[T7Yߧ)6Ղm0%qYSDⓐuT?CUl)/Ho¦Ӷs= #ƣ<ܱF|4ۍ4AE*p8!iBQs3Ed8w vpG 0nVxB<謝Є4z~kl{y\{g`]|ݦR ש튲~o. iX Hp)1eb5>vIO *Ӆ\Cȫ9Q6(94k Ұ_х4'{4mߝd2>a2SG& CFtË&Fܵkj %ؓV+/Hnba whl vXg D2ɗD fk[Oc OD8K㺾>NӛVk{HihE%&DJ[~8CH{?-c ޸/9 䟔ѷ$r%D8\Ԟ']nT\VRWܸN\2%HtE=_ĂՉ9ؠ1.Vs o!bnژ}܂"g̡/@7|Gܶ.r8cFoF|ռә#7UqW?W 4.IP;8p$>.Ap̳6XoslO\ U87+%j bʝ'*V@bܞEzZ7c(=mD?g )0=nI?pw ͷ]@ԏ_e?lyHpMQofW;HXē' h,<$[Q7F%}&͑"L|q;ڝVгxpv>^kߗx[HjΙm_11dy=Bftu2[XWiRz`8F%$D\b8$m/54.Gc1/n@(k SY 8TU$ԙ1Ku3G7kK"тZܡVV{A JpYrsyH ^4CzJ+7 Of.z<,wG!+Leũ nX ϊE4V_5p٭xeHtLʻ̇q(^V"4Tș!&4'}_gz*Xdg吼ijhQ4 N9A])2xh,y23O$ɩ4$6FϪiKR0"}LfsRDuR os=ɵQ3P+/ai/WDFBW9,՝+-MPRìyp҄%f,^݈~ W@ vdNԽi`ГheaNF%&5.y8:BcK\ 7c>FW"gHGP|z2"7R:a90{ӻ0m˂[tݥ47{&.x%xGu'~%jJJ Xe+̥S> 4Ej̀:=u>pTSTfyd]=% s z 7JTM^`&&Y+UxkB #ў<sp~4S1hY%57(da6QVc u- S?C;ߜb.G`M:L 8xͅO}uͤiHsLGA*&'_֝)OB "Uɡo6H[?E \-d2v@P ) wD_ݗ'l /.2iG.7Aʦdz9cP(R\$ IT^ 2yrs94?HsRJ ;h^v~u>23h!< pqb?Cfgj}F8dԸY\Yb&InUާ[Cc**JcG.9aW=^d>(3IMQK,6~II'4>!~p N5G/.$rE7)ɘbZ$`xQB*`G C89sw@vvQ{}",X>\ LY/d3nt@qm`B9n3 ƯX_2B-yb$HCTY$iQ"amgʻʺ$fv 9R@KUץ\[J1 q)W(~<&?ސB,_'q$2Q=쒂s%tӪ7ȓƦ`_\8hY6V59I۠!P4tN-Mf2YMP =g:E&qu(5N,oSp#Q}q#zQ5bŅμվݗ.P)ϼ%f mV #&ʳڗ}ص}\yo7)&> *. 4 IF7gmu z7YSϺ2y|ỚmUT弍}J}nPu 罟~qPA""9   >\ 'v !TěqUP >az J?)ٽFG.SXn? Uq]sr6KMH-Y1J`~= F~yOǍwXRUpOIgPg\} nk,BN*ᬞ{4hˊZE/1粁ogo K,Gm|A;~RH-{I>ç`-b.v0Ofcj7bђCD @I$JGzeq"Ge1t_%GH} uHm!oZc5t9A"*HbnWo"mH ]aS_X"q#s{E=1T4Hw7N|um2`s^)9u:ŔnrY<=z&c XC/E^SJ$2T`h+DX`43iL6TD;O*T5,'/ &K>n٠ni*z(G ǫf_Y|ځ'ONJ ڊqX1 }\ \3SMf 5+So^/Nc ,;i V H$B!9:Ȭ.-"#cmCֆ ׻"ta)D L8R V0^#K2=6 k]USÍ<CV>onaYNV k-V,K_WKDis݄|#`i8h?~ڻ,* ew};iY?.pa*ȠPMޠ F^h?"L7 Z+Y3B$@5mGyZ;ZxfUWHrgWYy~|"+)K4b]ϼ0qs5>jzt|.M1SPu:-HFZ~SS[Ȱyv(oo9P+VJ9ڗ4 PoY-ɨve%xճ]qг;W*6#MܶqnX^Scsr'/Asvx$ĀYv1cs!z# H2jNK2n}[Еƙi\|R _: ;7qUv>=h蹆:E 6b:z4C;!^ r:a {k{vh7ŹvRv+ɇmMd:);͚hM/K)V4_G{mI)Ý6H>=#-}(`̑Lp=tүCrNڐK Vj|E> zd_e'"=?">gear-DQDR11+ t m/lP Xϻ0:lB x%hxsI80La%N*&2`-2nh?@ ^h)x#Iz g.M!0(ݫ>ɂK/H#XjxM=E B~Zf x[2 *?H0@ni F|AGKv$b#k(N:HtwG+V£4G.b4"׺j6^0juUvȍ#i[X2& W{271*OU,GicԠm FIWbWC?Fh9U!L&b D$ 8VNSf݄cd38.GI1蠫Q(݀@W4xD!y'h$Kz ݇Q>NLuU7RY02nja3nlM㢻hnyliAS@!bXlsq0;(u*{'~w,URly3mjNu/`&OYVdfٰ%A- >["C#ǧ ޞo"$z 2Gɸ]R^ϺՏ ~;TGC<:θ{jiќG0k #vKIT i sؓר[DS^c0ma>$+E`+8GL@22GE #M.qCA-LSn>j9X[׹@9 cm%\Jɤv /MU6 GeU+_ h3 MsP뤝$}T)T?mC|E[̤'b8dT訍5Plɜˤ_1Mk. Bۣ )Njwb#}tzS)J/̔0.Re-.uz;eɺhɃyH7>eȁ%r7Rg"ѭ{Ei`稏ۓFÒzI)/'IV:"6J2W3UB 2M~+s#Vkb4%el: pZ\RzFRi̍EV}K-.c{{wĚ&?qL8ϫڷXBaE[t T6P '>R#!QL 0ز @ܒnS[:?q%2)mj8 >>ᱯ Cqk~`3n-Ыbdےӎm 09 zI$ip7D/LA'O VI7$e!E9Dp͔}ٞ2@b>V8YoW/D(:b|uy쇠_y*"m( &$-Oi*wvAZi\WHc^qXєX\E*v1Gs(<`Ҁ -U1ڄоЖѲ,bC@:p<@:Kvr|< Q @Fr}vvmJ#`.xI cUW+% nOoZtB/~@-5&rP[\6}! th9Iv܄c@RY~T!7uf? Y| cIr^WR8 G߅/\EP%Y?Auc0dDD 1֤ybx12!}"gRI$Rs}>SG<[9 u@tf`_Dn )Ů8Nx} MDȾ֕"Mf"ʥzgy>_(ڶh ,1^"! Fk=CyTa$ vV҈m:u7s:=/IJ )E3*q2둜N{Tiu ߁ {ڲ^$[t2=#b 0H sfG?^|+!XfX5{^n&YI.6$H*1p+^ά3 ھ Pn P%A4$7އ0W.ҒZVa;䄒^vؔ3&.cT?G6Hn:H'|ufi\h^(X-a !?}c>c(@~:cICk Lstá&17d2w~Id"}Y7./E!S00DcBc4:+:83#`$^ami5HZS|ޚqIznqz ʄ-mel/zgO ynh9|x=#L;zQ$iW%3u&@(/~sV ht۩<R^BH}9EўDqIESXߩ[rBwZ¼Z,ѝ%S%PцLFZ;6ZgjD871Y[`-~~'t iBcϛy r{xx/IqՈI_j=} ?|\D1Ca.l(!}2́S͚T)垰ra2t{c7GwET[r˓?uO&`:m MmiR-ԅ*r%f#lR /r|]`3}? ]İV}wW ]=rcFp?+Q00Njf[&s~%Y/5EBgg0"L=9#Hǔ ul0dhs__ KG$Zr)D))t[rb'v)I!鑨*aKzFbF{Z,hxHq{5ksJ6H*ux,,-ϾAe}ʡI kv2aݑ] RջG/oGɳ#-[U=l3H@ u}A#wU*ߠU) P㏁TA}Oq~-+Y̻ hўo>tgp̞_0۟ߏ 3Cmۂp95͢=ˀpŐ&fFQ@_$-l6xVX|e"!eO ӷde> !>c(IyK~6P xX<`h9jdD#rsŵ) |+G%7u^)I^SCMXJ>?O@.nm;c{>H| VC-= 7f*.[P7B' 3Sqj6kЊ[Mp9#bFɮWkM -(m ㎍rfZ GĐKs1r5' }U~6*l: DXiaG8X41 : )[JѶ<1aҞ.9@mqպ {QX>̺(wPj efHa8 Ɠ\rZSj#KFB̍dLm],`;:OkbLll̽ӼkBݮ13!YfsF_<)k4ԭE;}'ʌLE'&&bQmLv@kn7<<I&,vHĠ"$YUp~ylrFWI)}D.KK14Yox _yyh6>2WiTL3>a=#m1vp['qd}LBg1渋 GHXW.qn]I&YQV JPzIj=6\cZL(ked VKKi{vޞ#3euϷr5[=BQ(z;Ip q\bbpx^pcd.]S 3eLl8rǯ6 ILf_JrU֫,U#4,.yQE%R΄I"փ@߻;Ųc,a ?HhVQk&zSM-Zq/IѶZ̮<«&ȿIUhQ9ZF_8]`b!_Ȅ2R䫼rb7PXmS_q%eyv%}EHxվ䨵|ռMEj&qB$q5$ PT=\oA:5puv `:<&9w3S}6WٹȀ mn/mCg.vVV01beO/yj̫0坅l`h͉ Ep ehn'{_/֦6F xL4n+[G ̻sY%\f2/zwd G4sW \>ym ){.uCu+mF^zTA[TTnTbl7~O05|O >?׎O µDZ3?NB^&c(cKr߄"oy'0'14 ԝEx mǪ; hZ<ؗu(&pJݐXʮ9֖Ek [֊ŭh8Y5k X%1  dK% @xu|K0 b\,(>OW%{uyD5PTn3k"ԨWXm'`قQ,cC@eR=|ޖ9MȢi?bO|*]3íZ&+( Bp F;H%TZxR+'  csU K`( q=}*棙ؔ)oQl-S2ߊ$8Uh| 6R(Ot6HFA\@n-O)3㿨>4DrT}ŨP|C3Q -_x:9&FX8oJ^>ߚ4aqVpϐ"LbE.pgmoݸ6Nk}jGl_T*Zv[,fezՋJ_y]N-M` "sK*#GhrV*y /8%B| .{:O/ieZ4nqHp{n[L7уAc~c||gϷ|z(ϢUp" b;Y͕RG)PJxfh8ǐR9z{UG~31dd?>`ANmˤߪ|@]a#OX\9fTAk3Gg_r@w=]H6uχm܎+-G?dc,ªLi(G`{xB*a*Ro/&uy) gq{G^.uBT?o2\ a {{OGv?®=ʛӘKg 'DP癓S 0dx =gBsĔQ[r1N4JGquyD;YR94 aS?%%(ͅ7^V4nlu i;g\! D@MPf]W8X7soP;#Y)I2҆iu[?);͓]I&sљJ/j}ՇUk:vB0򥅺L蓉)bfD"01ZZh)xM<,dryoHnt0_/q*2N81S[I0ʯG[r\.0*)e6DxTaQ]8Ћ{9ms4s.o4w* k݈#̠,# AQFv~t_; 4uP&>491pѺIk@7y):@;S'3Qbi=瞵u&9+IޜVݮU4B ȳ8sDaYíf }7mb#VhtW 3` ~-"&(RTKfoL)̨YihLEWN'RvP\hqvy|:P~$D /%ݔDTݬ?ǡpO#Bq=l_ͷ:a.0  ԅ5n0`YO5ʱC-n3W꘏}Ǥ>Ð Jbi`F2UrJTՍXSM#8XDOH1x-MbUXiL1*YG^q秎7$KlbvmpXaA S[JDR~DPJ'6[05ZӬfl`O܀9f\{|Oh ]>hIC͠1VB`ݩ 庲=_/; VBYe%AЏ #3ʍ6٦w&ll݂juh hcdLtNqݓjGrwj}'2i|Jȓ$~ߛd?V^J PJLqYD^3e[A^̵k_÷nb_ܕ`~CpV+)J/6ڹ_ibHLWfׁ2xl!";ddp:hXՌec;D!P0i%@L?S$g'_;B-b.r%(z91 ,=P1škQs(X7%>gΞۨ֎tk$7s-X]e,S 9)A\DN`_!lߺ0!"[Q^RW閥H=]%@,(Es$3+n8)%lfks| 0!jPO7FDiۀ^JxD{}/¤~`Uӗ@#Jvi%D͇PD-KfI2-mNJ)*bL(ϫ,(AOD`aԗ q$Y)2-$/1e"̢#*H5SYEcX=ـ a{Lt|P/wOK*oF > =8B i mQXLEFP>3Qx٬t%րD4ZjMY07MrmIngik$͵چ%e%5^ K7|`yzAvx#=o7*gB4kHsSۻN'%$j8cG]jJ_/{4{{_Ϥ$ղkVP~;}vvTD+t!°+{\JG|Sx*x!ԫs} DQn8ވ7^j;.nZGţ=R\(2^@ciU#zw[HMzYOT_=i{Ls7XEIŠҘ[ޡ*ʟb?=Falbs{ZM_LaN(=i~YfSsg/*_rO&f1#7y b1T~4?VH-t uOOՖN̏]y(ĺ?Oq-3n6+,ms|6ʿZ\oV%.%WZ. i?YZ~N0OZ r`5mVFYTAq=SJRz,Y r꒼@iXYk[2{AUc㠡L\Eǧ?AOˤ+zGښ"U\TXuRhq26ސ9cD4:~ݢB4L,@\k &OSㅮg:Ռ7 IqTYHf>JC?RΦ9_YQ;YR$+Aw57 YWfRt$ @\Evv1r+K'Ex'e{O$?M8 ,Dɴf"AgIL\<. l6Mْ8yG#ڮya+Ď6ϡfJ |$ kF3y^=Vq űҒpG0v,~_t Yy;̅Xr3=GxkOQΒ2d0[ Xn1elתV;;{)I|Q2YJ=! ݊p ;S4:zUWj@ k +fyO QiX-c@>>Æpf\(LJ,yo %- wD%H|U{-i1#5NHβ@ &'BגS{;S]bTSbo Meh ؊`DhNN=-Ό0F8gTK峵5`xO W +zy&NGޢ!fJ0/ rI VHRC o綕LB@Y:R"=֟=Lv&Q ibY޳dW6IKYVV! 힫 pevWFCMtORnnӼZM.nXQyH|3Fc#w@@/tV&?DRq|8e~ƶHqn RBiΓB L[ x׷ʻ3N9rk=~$Wd5!k} 1%xNoEƁ{ao:ErUweA߃vW.?8 \14LGM5W^YB9rH1`éTb3ŵ ScJ_MXreRphW,[ow/wil #=;(MH [)iH]?~fBf;%FĆ_Z[4i5 <1]HdoOEi,D|^a6)mQ>T@47t({rz3 F<1.;5<$P*+L+`}D1* Hk_>w_:_;+6 N=T%̭ލ3~ ݇Aql/<UxwB]5cy7 4~pHxI I{ LDX5% `kyݙRQ_kp/0]U򌣭i"CGG{mè_b&~1Vݼ-̜&'H .IMK_KK62zK®D1~Xمo3?FIc]/0r8ES6Vqndx{PKR17AIhw8DN/2t*]y^Ij(>ôӒYBc3> L.AwaBFܽXf ^Q}r%#[̲zAuw |ӯ[~rӯwVAJ/҅[=8],[R_}g0 ?a!>]8a9(·*G<>GP:(-A(bìbB7[ZԯKҋrérG3pi9M1 . +28#|}LpKm4-a|o`$#mgBaj^j4nbrv~ڃD6"QCk985"m"vȘ!i0 0_Ks(B"AokYz_b@)PoZ` ,[#F&5~8yOQOg dHiAaT<.ه,jZb7oݳ wF̱.nK}Zv :+E'Z,i YnAgbqJV=$t):8?Kz0T/mt. 8tJ&iNYP* k*~j@fgCč|ϵ*zbW,>N\=p;gXoD>1#3~ H!!'v&wC醖;ze,ZnH_lQuFK1Q.̍@]1Qvɋ։B?`7gmVO0q W- =.M ,l(NK#U3M'g۝vOZ}w{p]lIO ۪aFq&W-ƴR ȥiWT =2?aow63Ō圱V"@@<̨{(wl8L2{Wk!mQY V XuFȪ{F}L䨱EaqE .L.39Ğ:Nu),Q}(+w= JT7رT(<'ۦ4bD j%㳧KY+ZAtILƇ4~S֓+/ Io?F'UXlk} YcMȨ=dMހ./P9q*5='FJP| G5MfcRڽ]ϸYj-Vޏ(# 7YINQEz\ Zqf.o;3;Qt/{&*ڱ3dMcÌq onCZ?YPAB ZɛE>|qUY&闧ctϋ<Ϸ~yHnaޙ8'F="\]ЈbO0ת7QDq=UfCW(-oPΎU>XL|-s PX]fHH|?UN05OVt7Z")d2BfޗU\UMvG3 4*=_Zh+xfS3%o#5E+C@A[gLdӨ3p~!nWךg }i?f3K[wnŻ/ϥ8}YUj[/~|Q E\ܬL:bl0>?`N(M 8ВK&&Ly DK9W1×^ Ώ b1t%uv|T|y_sUdͰԀN0YT֝֎N?u9ۄWJOndyO]EIݧuS:p ̺]^Z0ЫoH&U"k]Pl@E߾9ܾ}|ɥg573̕[55.i 3`@48\asPV .Eb -UŢ3$nHz |'G] Q@;1|EO"3Ò?"ܙIsk2u"On#JwO^"O"RVW7_oduQy:lɩx*2_n5%k/ޒ>&3ANa笣x(ձuDCƏ) h%(9b6X#WSSMR- oq =$QPxLW?a>dp4SQf=V!ΞX̼U@v@X"bBJ< >©ς2~8Hla kъL x"/Rw!˗gI) 5ly`OL]oڀ5:q8谎LomKdCHxn ӪsS譤ZM/w%C|^ɿr@uZ4"$P[1&G\piKD Ag=,Ti#ʥ%;ZާD65c*=,trqݧXJo:nP Wt  :J+o-+ LOl QOWx!*A#T(?g_x4Atu0Oo+cLpxeZFmbD'.'s;2i+scQ JkS?v:O+SKdT%hlBdbQ=(9jHt%ro?ki1fc)⥊ 6Z,9CiWf1ɩq[=qՕysϧu`;0|2[f1E$e~}era[Rǿ-[)Kt*nqh7?NiԙV#JLmـHf7# XF;U!6y~)  ok?u\j.-c79h'V\ԻfZ읟d=ay 9*77Wst)WHyӯ+Z;bUd\C$Zv_=(\W W__> 1 vLz1Ǒ*ߟX-:PbPD@M[#;a%,.@ )AWt gְ\S -+ ,k! SÇ0:+HϜ',u`B E/iw?[A?]I̍.n=XڍT5}eHRwV [TN8}OQ+0) ѓ*6K[q6qa"MOKH?:PGxR x\e3 9y8s+ 2Նʨx}bWPt ~ג|Op(xvn~j*~s /:-89Ӽb`E;Sڣ/BcIszlg]6R٥lsK9ozY9Z4S$xbTj=ixYx\ ȳ1Hzw|Ne{i;\#OYcӉk҃] sأNfdK7f'غdl 0QgАJfc_lՙ=bJ"}|n`4Tlhh?0H:o0p VozjݸԼZ6n쑽 zeb7(k*w%!UH!ƒIX8OR|}hu*noJm͹>OUPtToUF9PۇaZiq6ǻnbBc~1/ٛ@M&TtqݙCɛ-/@AOLxi&[|ؠ,B3˻O)AEnmq.ۻC@=Wi`: j,5Mըji5RrY%ñsZݣ^г%|DA-g9nIU8r3aD*=eO(IeyŷuI +Ђg9kY{gk/=&+ ,@y(lw} X x K*=P4>jg\XEr&X7X-"(/i1 #4ԱhHLn%ջqh㡟ws.YZ7>V i f}Q{wݰ̂.g$,b*B` BVq^؞˯M #38s}9˾JEW ù/wQT2uPp+&à&5 %X̰a/YA1腄~E{8ѯ ߹=WKBCm߸L~ k{zRV+9Pz4Y F!iA_OVG:h ~Y`:>I5H)">Ktwy*ڝFLˆrdw*14zYa9'q9|H[-N9g  ӀL^P^{wK*d8UA>&6WkYHmn=Ŏ&f@$|CI", G{vմJ#ٕ)*aP }EB;&Ee5sO`cPh~>[VvR&İf]w !P-Ǒ$c,%2ǿWVXOwd!tXUмsܔ|K &Z6(Z`\/pc?>](!:N(.E*" a!!t0iOЍ"YtRNc[,q[*L4ɧ{AEmTxGW=9%JfЊ\U8Z5m()hY!SԶ0/p )ς̗[#z0/\rs0Bj}/Vt[qKY+ftj~u?rq~OVuqW9ɷyTt 8P&9"VX3EdIk Tp%i6*]pCdbcǭx)5V6JWkP(6 Q#9q/^\g R3ID^ !hoLgpIBmOxIO #>i"R䭞,2F$xg`Ou;zZ }ETܳ{.h,UZ׶`3L.0+$| Dp:hOZn \du+y   Vʑ3R5#gڐHc. lܽMg-2p᷆S?]dq Vg)"/NL'#~158@.*rQz3Sk%VuCV\Δ /EDq:*zU"\Cz"5˫rp b{cH}D6͓UL=uDK)!' n尨7W2J /bX-Jو#b֊ ])Ď'D+smcSOŷ AGDt`VJ >Au߬ B4rQ8M,N]_DR5kg!'G5H}|5"3 2a !R97([odoBبI 4X0!?O9H@4UսLh7 /LOѩ![F-U)6 2բ78Z2ٝr7y E4dw;W#^.L8}C"'_ͩ .@{ȤA)7qD\>ߠ8.ZZ@8rUVD`ZDkhjE}N/?bVlaʆS[rQI1fý@]h'ЩsE2ʼnfih},:mgh_Z'bVe?cM]tY0!Ie(Tq]lξ(WKS1; -1HACbsFwAW d-UF'ïzmN"d~1k<0P [y22CzwCN.wG*Ke16n= ,:q$*; H=1D[>gy]qP$Bѡ쥭ju2.: _Ƃ㙮$m-&0W$Cį#% "&-qU@.`zP)@0E_ =PW._u]ؚ%kўf 9x؃I, |Q f=\C[dQ(9e_$Q !ptyU D.9/Ajp{oVzv ZFȩpRU07W߅ea-=mƺ[$". IHPa ?=RvkKfc(i"{+ C}mV-@*[J'ٯqeMޫ740p#ںU+ f6]+Q-9,~v Uc:f ϻŅ{n`[51[C>W%/Wf!% @j/x)*O[yti=n=r)rN mL !#t4Thqbb\ߠ8G"R)A:HPǒSo6L5~5SW3" >)",sLO= MTHI wK$k2Gk#wojEmw"o\LP *?]UQ}IZlDÑfz w'#}V1#P `P@ ks}_ǩk.n]"l~~M3a!y\.gVӉκhdvRtH^s,|ٖ`w%Tb );7HX`ˤ/x`r9nڙ:gS(2ĵm>漼VyI;j ir҇mW]3-Ԛo-^yigpSdzx|2kѮxh]|wm}3Ds9Q1XC-Y6m9  jjޘ76Tⁱsi ^eO&nI,G& J,Z<'tUxXUM= Y|4!Hn搩\b<9y8qK ;SE3~kh*"#%ZgVza%/&-k,A_ Q7i?V(lxZLs85^ ji1lJw9ٲhGW2a~Aŧ#q E4N/<"& cl.'q[r8XQ Ja9i>fK'@& 8Ւ\j1#i ֧sqfrFE/rc5VPQ;j/ m(., [(_Ȁu o0XFT1w5kn`%RiGݭ":>oo RqMR%3(3&bKY%IDenYdV VI.*#X tNiebw kH7/˛Bdl&hUSm\wҜwcm{w|c7` 3~"׈EW"d l"$e3lE$m^U [QW?7Ɇb-HRf e8=`m]7u%o*26IC:)=žSdr?Ha` }(0;Pe9wy\ŵtrPc2~2E^oO}Aa:Ӫ^eoMBt X%+)a3Fg+ä7-NI5k2RI\Pp1̐H}RWO9]8I) B].(n)Aj;9hNP'Az)o[2;yDMA WҊ|@ݞ|֨ub)qwiO^]qQr~xm0Sx:ξl)[xD Kea{"jo=O<&gAS*R-8ƭ0},&-h7]{b GCB?G( /Id׽@L,b(Hܸp Eφ/!tW\Қ;%MRjiue%Ɲ8*mFQ%ЈJӻ}@].@$5zj_ 4=C֩[lK*J#ޏ!s(ۭȮuQ\ybåLQsYYb0s_xKfo]HU8