nvme-cli-2.8+44.gb56f5d9-150600.3.6.1<>,xf4p9|m*Q7ʼn].1е #L#Y?ބEs#Pʡ(H. &b=ʆGy~Ejm~q-!jiUbxU~ ~Cᒈ4] G rzdbo'[G ʷ.$~0",mCފO}K&jGe=շl>GZh!A[7*YFf? =հ3mXl^=ܼdmAX7W-$ M*D?h>Nj(?jd  ( E"/ ET|  dX P  H M NQVZ$ZT]]!^X!a!(b8bZ9cZ:jzZ=9>9?9@9F9G9H=4I@XAXYAd\A]D^Z bZc[d\e\f\l\u\,v_| waxeHyhzhiiiiiiiiiiijCnvme-cli2.8+44.gb56f5d9150600.3.6.1NVM Express user space toolsNVM Express (NVMe) is a direct attached storage interface. The nvme-cli package contains core management tools with minimal dependencies.f4ibs-power9-173SUSE Linux Enterprise 15SUSE LLC GPL-2.0-onlyhttps://www.suse.com/Hardware/Otherhttps://github.com/linux-nvme/nvme-cli/linuxppc64le if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service nvmf-connect@.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fiif [ ! -s /etc/nvme/hostnqn ]; then /usr/bin/echo "Generating host NQN." /usr/sbin/nvme gen-hostnqn > /etc/nvme/hostnqn fi if [ ! -s /etc/nvme/hostid ]; then sed -nr 's/.*:uuid:(.*?)$/\1/p' /etc/nvme/hostnqn > /etc/nvme/hostid fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service nvmf-connect@.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart nvmefc-boot-connections.service nvmf-autoconnect.service nvmf-connect.target nvmf-connect-nbft.service ) || : fi fij<v q*FkX_ f yn!an!xjJz |:,L'D"e 'C*7Uw~ZwG<<rlP _ id  B^m dTa{cKC{#1hx$Z]LWL+qw%II]N V '2KT*MxUt6gA큤A큤A큤f4f4f4f4f4Gf4Gf4Gf4Gf4Gf4Gf4Gf4Gf4f4f4f4f4f4ff4ff4Of4Nf4Nf4Nf4Mf4Nf4Of4Pf4Rf4Qf4Qf4Qf4Qf4Qf4Sf4Tf4Tf4Tf4Tf4Tf4Tf4Wf4Vf4Vf4Wf4Wf4Wf4Wf4Wf4Yf4Xf4Yf4Yf4Yf4Yf4Zf4Zf4[f4[f4\f4\f4\f4\f4]f4\f4]f4^f4]f4]f4^f4_f4_f4_f4`f4`f4`f4af4af4af4af4af4bf4cf4cf4cf4df4cf4df4ef4cf4ef4ef4ef4ef4ff4ff4gf4hf4hf4hf4hf4if4if4if4jf4jf4jf4jf4jf4kf4kf4kf4lf4mf4lf4nf4mf4mf4mf4nf4of4of4of4pf4of4of4pf4pf4qf4rf4rf4qf4rf4rf4rf4sf4sf4sf4sf4tf4uf4uf4uf4uf4uf4vf4vf4wf4wf4wf4wf4wf4xf4xf4yf4yf4yf4yf4zf4zf4zf4zf4{f4|f4{f4|f4|f4|f4|f4|f4~f4~f4~f4~f4~f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4ff4ff4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4Ra20c34eccb3797a005613e79766921c63507e016ccd3acf0c74b38b34a99549bc92fe75258e615019e4ccc8f7bde8134b803ff38da3f10675417faa9a2911e48261c30da5d357a7a1b36cdf05113e5e6396531f5ce0f0be23ef808c963e1a66fda12ba7eb025db0bce0b8d376983d5b03e2f47f65282b210afb185686ee43e2a2ccdad7cba6a040f5a9336aebfe2fda0b6fe3db821cd649beac514693acec2bc9bc01ab6b4dfaf83b8c5384d434b86c1c573f2f1ea91ad93d300799db61da5e824b4df38cbf10034538b5f0ad527eb570145ecaa1bf75c531e434ffe2c6f8e30e6f3c5ab1655d70da4969ed8a64d22fd866275bfda3260a10fcf6c93af486a8965608980ca52340ec1a62f22402bfd4c154a3ae22aa2293bc8798dd2cdd5476114aef89a5f6fce75fbb473293a8fd401e11c369a4e023b13630aeaee56f871b6a45d0bb572ed792ed34627a72621834b3ba92aab6e2cc4e04301dee7a728d753843ae96eee748d11b5b10aa0a58af7b6f9837018df53f30986685e813d0b3e005a520edd5e4ac7fceff33d1e5d0372d281b16eca323285825dde4056c302e8f76a0f3cadfebecc482125fcc566953c8734c47999bc75e75142712369fc53ddb59ea03e5f708b12d9097ddae181cc1b925a41d77aacae68e776768c11254d6f03df924fe1ea0d50506ff7e78e72e50806499b20daccd3003f0a07e9aca68804262645592390031a751a5b4f54de3d60f1e703d7f30a80d23e0f6bfb5ae95b52286f0a5b3008c61f247381a6a4bba8be03743f019eb1fe99388df5affd697ad6e2fe20a471229f6dba8c7a2526805b706052e52acc6a23d87b2b976abe2077a7c063555eac7c87c9ce253ad3771060ed0a38ca565779b2d55b943926fbbb75d094d6c51dab9c4d2e9704c1e0197acc06261c8fb5ee2a9906143b7c868befd51a3bcd0ae62e6134df15aa2e5c2088daa34bd94f4f80f0f89bd6bf1ec747af09c8b51fbf8f8a324b4e79010d78f2da5d257aa95b033cc4ce500ea9d2115fa5fad3cef1e5aea377da4075b3f0252b69759bee51db5c8d75839cc85d0d369897c910c77c04d5334217467a70e8deeb52fbd53ba1db7b429d1850b7f4d7756f6aa7fb9e099e8170c5a4d26f667787b3a5682817dae53a35add368e2c2dd8d36b113462a54e979a0527087bb7525ee5fa0145a96f13cbb6518654a7bef7859c628c8c2b59526822aa9ac4dfd148bc7b093e0b0949dfda4fbfdd875235ef1dd1871d61efa5ac8615d500ae06fe7e8d9fdaf7fed2bb710e0705de459d4bffee2b78127ed4e6330822cba7ee5b470495b3dc017ee84ffe504618ab6d1755d1961a03f78e1379a9deb47f37a21e485b7bd37b7cdb164547af6fb551e6cb5b8c7555d8e5dd68b5898a66f007ed0986484cc6e4496338b6536bac6d4f6e983c36e410f4bf3e4ab0f24470add5f2f4fab5cbca7d6c9ca9d24a68286b0fa7bb0cd333836e1b3f66d77349508787fd434ec850522a7cd019d09a9cc4ef80cc005c1a0f9e72b70d064535b6038584fecf7d6ad03f62cbce66f425bf49ac8ad6c3fcd0b147c4f8e676c71dc61bc9b9574f44ea19347947cf27f081fe913e684fce6c9c389fe58930de18ba91a77cbcd4a74e1f49a786a45f01bc7265a11c6855fec9cbf5dcd5633633db3613c457319529448b3000aa5f7646f153f54735851ed7b054e32ef6d61d3e1b7a09872d509e11b03c7443a445f809be9f70696c037988cc891bef8a20747bb9167d90b150b5aafca88fd62c74a005af2bc39ad05f9f09e7e4602df60a340cb2b12ae0f0efb79df942b57bd27a8f16892dfc2f6fe6329484d18da32c85e8145ef4f1703efd955b031f6c894d87999d0bf8d592d9147fdfcb8c5afb3cd0c59372d6b9249351c8c3c602ae516a7be4142b60c11c44345ab930cc7b2ba85fadcc367bc48cc7f6766dd07a8fd499cd25d0114353c7aa515cab218fc45d3fc70c08b481b99c841a95a161c7e038c4da30bfadee33ffdffb0667b1f51b01a8c1cbc29ad584ea68650a08bc4065449815fbbffcc98697495206327c8fdda516db8d6f6ff7bf2cc7a0056808304ac35f3ec870bd777cc021789877bb0852255808481598d7cd05b337767fc0a0cce648d8a55b2edfc622e7b87e58841d699de5bb10533ae946bbd8e4dc57b363a7ea0fa1fdadf45ad13f277e73708b02c9cabc295370f731bdb46f8bbec113436e7ea45a7a56bfa641ba5bf43be73742123192d2a8b37b5626ccebb6ed9fc8b8a5a7c658cbb23816258ceee7d19c73df52f320812d6efaeadd7602845406f9ed4749bbc85d516c81437f6ce64120e7ac7514ccb3cfd6e1ef1818e0d1be047cce51291b552ce5d18cb9cb6cfe84e3f824db5e73c3928346c1ece444c9a96c9ec83b77677677a494026bf693612f15de72087864f7f8aff6ffb460c0914a71d71691aa9068d33052e7ec9e7e288c160116e0d34106472bbcd9c184c1085ff0f05e6dbc17df13671746c937d84ec50ff4ee69727440308c3d5e03dae6fff0b845dff0840db502a4d24078da1a4e83084ac433fb8470832737ddcd59c3cfcdd80c32b92fa5bf065a54d2b6793b905b1b60cecebbd9b1d96e4f11350219d4b31a7bc061f904ee0ead106a140a108b51d850b4d56cfdcee840d80a791de00abbec588377ad66418d38a8943861f9eda0c9d4b2231cb2f547f297f677ed8d237358c27a430e849502a2720ae4db158ff1f5684ace30dce54cebd1de91249fdff0a464dc001028422c224868319424884730227092b4045fb8001089bb7c277eaabe24ac8ca77464624e58de29bd8c9586b87c34d5d30ff1e0bf9b20a07fc48f380b720db09b1322bf179a64ed3a34fbc8c25978b77cec8c094abf88ef4517775321aa5148550c0921938c103b88deee7c9a653d03cc9cfe42c400b8246c8bf5b1d2bda6c8523a9625d36cde6153fb25f77e65550c63c6dd6bbe9fe0b65682865013a62238434b8b3641a79ee80ed16e09df154bddf169739f8ff4c1e8d708afe8f8fed17e85153bb61c7fd995455dd4db9ea2d6715d5a76571fb47e153a7ae0a2ea6228c22e1154e03f4dc54dea418f74caafe72944c3ce16986a03cf409ed5a085993f60c4de34a3d314b841c4b06d25158a23ea87ee70bacac9e4380d2f2713417861025617e04ac44157ec019ccc4ff50d702b24e5d9e6b5b24f85a456c7c49b18ceb636b4337d93d0ccfc36f70f79299c8c05cfd9bf1bffc68af7d5eeaf4f6af10e6654c50f4031c82712220154da4dc363d536ef8dc7d2090a221b2107ac00e4fa2d41a5de78ac4d60c0d72b217bc39e9667f088ec8e2d3641cbbabb8a0ae566352b411718d244b631a27d2b4a3c9e2ddca5467d0b678e7bd103aeac281e8e06667001afe9dd9c1dd5d57e464c8395e5a177b73944d3fda59d5903c990ca1d7c8cd855ee4328c4552bd6cdada8a26579519cd089d583faa5d769178e33b9032beb444d95453a00cc4fbc947f9c5d7309dd766f16521ac2b4b50d78e911b30331e552fddd1b43747ff58b555edea53d781ec0c747fc65c2e0e04f44edf79770eaa0513db454bad7ebe2842788b8381893cead623841feb92352a9675b09e57ad90a7e2e6a077c072030ea081123fca7ae95f32745ce3a502e3377b942d888dd2221d7e0ab58abacac81f4f3a14f480dd4e456ba21dfc44766a19a9b1ea9ba763da4ee2995c13b6237b7454785640fa5065660224270b6fc83e1079dbb7121deaf892d21504b9022b58261389de2b36b33ae4529c03d20379a38082ecce02436c289b63fe1376e66eaf9066b45c75f4b116ee7068115cbb66ab6f86f708f67401b66481fa7b7d0289c0de25f87c5f5658e62748eaccaec25f0cc528359607f7e386138f15042652d2215200b4d2fdc3f9d100f9dd2504620f24f8ca0038dab7d6bd9f6e651556204ec7fbf7883a2a14cf7d3e2c3eb6fbab59dd179ddc6d5fce58fe573a43974dec45cd78c99baa663386eaf1f0bb68d5188fb3b72f8bbc4ea1a04dd91613119cece1bd8855ae30100184df6806f5c07bfe117455fc0bb24f1ed99869ae6113a270ece7a6d5e39a56dff189c5d0de29660b9c98e58693f9186e09e367d673e1693fef050011b89aa853dc9a8bc109d0a9c378338d1b82bedf1a1aa05d9fe5c0dec3869b292d21a3ec518b820e515395b8eb8c656a685b884901641ddf0e4adff163f2d0712f3241bab20ec8bb47fd42f752c0e5564561843e915f27d387284988f1ee6584ecd2328b5074edc8b6bce3bcd77dedbc66f22fc4e91cf52c40dfba7a1fcb7554ad2120ace589c8d22fbbe7ef3098115cc3c1c3bfb9837317d0cc21d9d9b6a8483a265e4ff02558699c7cd5c36d7ed4873c629fb4ba6690450c0fd7b07ce9181d50a2e2542985d334e4a4da6e38f8be46b0f4243194103ec1bf1af6fa249f1b756bff31fc5162f60c835a75513a820ba25285d7479cdad26a88bdda953bba2138c3038c41bbf40b89809001b9acdeaabd208cdb5afbaaadb2e8fbbc88a45959fe81c8e11a02b7b98cd8451235acb7c1ee6861e3c15ad892b4a5c3e3b222e80d2a37031d481a61df48b0acd8ddb1865a7317e7b9d38dd32e9f3cfab2559a252358ca36cbe4439560180c45679b489268a581aae91fe7448a6e1e90bf43edac90f43c8310693ab051adfc24a30d336385fcea136dfaedd9c8e33be31cd094d6def922622c5cd989d915604b9df6052c54ae05dc70a21b79004fab99bba8613e0674ad8c9f0b2ab9c1ea2edcd93f657a5fbdd7de395369b7e176b14ac8353f06cc22922a2e84164b20335e8d683d7686fcc2bc24858a0de4cfa31373943ce2df58f8a20738c7db0ec5418eddd57713bc69f10a06b1df905a47cb6b6b1458ce1660884d2041e138bc7ae465b6cd9b031a11cdbae09e9775866c81efb6221d64216e3401a13adbcd5b9ca1d0d8abab5c57492a9161ab9d7bde179a335efb4291ecd2c5d4a7a9f6a0205b2a7e9fbe4bc7c644bcc135ecd4b2181df418eba3718707bb51a27cf723b1e98d3be9c05f6bb38c66ae8dc980497ef794d73d9885dd674ebc2bbb6282723384e80c5bf1205791297f813ea4460b281c0130f5c8a216a2de869e10493bf9ef4792c072073fa46e7ab3b59c49075a1b9ed082e17fc2934c9b0008547a089671b5ee22ba30ba1d120f8ae6af79de7cba42d5e3d62caa3f83c9272117f8433263b69059e805c9409760192881a612aa0b4e4cbdc277f470e639cf3c3c90d7f95ddb5184898bfe9101f2cb97749103e45fe1a45fc45c66a951d0b1aa5c5d57c8b041b9fccddfe1ed214a335c1cd9f1b9b06921b801c095f1812a65f7687c2763afc0a3578dc7116a75caf7e4f14361e4038d699b79268089790b05202b409faf5098efb8f43c2b7414f1f12f5ae4772ee2e0bddda682ea9a7a78105f145d40f2d74847a413d821b7d05f951f371c75ff530b93cf78e12ec01b7a6ae7d417887a313e493b6adf2d675612dbf69ab972bc815fa085048242e2dcae41e799ac992a1ae14a45c6eb61dcd7a2cb8a20a7cbeacbdb3b984917aef0fa6876bbebf10e9bff91acfd154caf765756ae62098da1ef16349f91d4d8862909cb1c8acb55b0fe50bc2188376f484629ac21acaad3a1487692e42d497c8de01bc619eb2f1bb204890f726e398d0cff7e2a69f38d28b72edd21793a4ce58a662305e2862a58760507618e84f29fc338a11507eb391e193b99479f3f78c5ca89539b405ab05662418bca9b35fdbe02160b074e765e5d68d1aa83b15b97047c7ea80a3aac0abed54bfdd4d425c1194ec4b098472bd85165c4ad97a21d95bdf647b46aab4c18712d72401f1d55ac3e88a316d26098806698ab91a477780b81a8e6ea0b1ae901175872f80dd88b0545b6489c06e7e0cc8cc13571835a99dd8c3de6790f4350ccb303cfcee29c63c87f1f8858fb7ab976665477f5686cc39e4b44701ed29b408a5c678c92403f09c3b52d22e1e3b035a4b05d5ee2be18963716921edaa392c2bdf161534c46b4f38ca49e3368444c427537b9bfeff4c0d1074823353aa80a9efbcfe1a500a4c7998ede91f29eb37e770e8150fde68e09ad069367c3700817c83498f970287ecf6cfa2bd44869a165aac4def8635f0888e2d28f474b47cf03ff7b9d40f2163a0b2e7d68dbb9ee6851e267d7e8288ddcb6408532fd51b89c8d2fc0c926f5813721a0814478e6c2aaae3535d01e74e2b8bbd3073033b65d09eae40af4ded937cf8c7faa5946ee23e416f3fc658d6b0b227def946519156e479b5d5b34fcb2a514d53428589a292a364231fb0a99a872243d18425fed1719f4abf1b1e06b5ed1f638a6be7cbcbf4199e9aa4852f736c9b78b48a9427f6482295e7b23f7671f3b4c0ef3988127937df3725f34389a51373070c24e7ac76c305e145551f188e6b1f65af0a3a5db74af7afc57b6b98d3b89f1cc917cf666625fe26ac608ed61ef4c15c78b1b58956bda949a6dfb0fc8c8d8eb17f07276b3463edda2896c3ea2b42b48a0d07d2d7eb04fa47258045ad233868b8d4ced16e8714aaa18e50681646a0be22a59e095fe0b41bc3f9382a2877e208242bf19a660cccd769790b19356eec9f6c9e4f1b629dadd6a73a7d87f8035201ec23c4f04648f37dd8919b11e00069d3b8b7b49ccbe153b49f26369fa49b8247f41fd4f2b1d72b013d29e60060bbb8944f20d4c8f6495afaa6a32b33a437c2f0513f3e15beb36d254a997dd003878a00619c55344601fcb0fb213a07268f81e7f086d4bfed1575c5d7e63ff4dcee9d998050c0e77ca4745e3214d87441ee370b8d30b9616d112c6b21b7e077c0bfaee6bd018f8d9d2f351b8b9bba5336695e7dbd63288b5d1f5897992c2551598c167577ace4f5fada536194c8f5576cfd1ef5d35b7862e32dae7cbd0b5e80c3afbe26cd3cc2ba51afaa14363313e3fe589417d97aef7c3058622e37497e4ac6fd8215570ce51996dd0b5140fc370b243246da1202e8f19d09c533831b4c8902b5b95ee1b48c64db12ca8fdcc02ca21826fe899add5281b712af843a820db5f5996cd19958bbe5daf612c8ac7a616b3e06e8273a20da70354ba66a9c35d6432d6e7b64dfe956f83d30963c6eac7c79f6be4a92fbf7fc6eaa2e44455775dbede042b9c185a15afe2c551a25b31e28d1298c39ae35f62ac61f7592e78e293112b67a0b9ca66ad7873456fd0edb4e04502acbd24e70ed8d7ecb2a3337f5c2657ecb7789cfa7e6434ab3091ca462c2e832073a40c067cc3139843168384a2461d3f86944fae0d711ef6a7e240b6f1d2269c6a0ceaf8732d6000333bba317436eb17adccdbe85a4ad1db0dfdf77dedd2d1f9a4d3994100ba3e113f77bdc737fd4117bd49b3db3bd542ef76359d51897fa5c5a743aa03792b7cc262c0abefe22bb02b257d2d0d3040c080b405d15c7c8b7483839d5f8c9d283f8976fca9a96e7b76f662c4f4e5e11fbbb3d90e8bbeaaa7ee90bf11da690b3bda66cfae292c3d204fd8e0cd5d2452d6c17207f8bc14ec4bd7d33e3208fe25b6a9d0b31736b1eb78e756c9c7d7081e38322f6f9c51baa8b1872d204485ef24c1f8de224a9a0cac33adb3e4c55a83459005a0853ad9942816ea04aaaa6d816b247440f136c33296c672dc8f893c2411fdd4813cf6610a3d141d4217ff8f702173f460a72b0f7cc5fd7b6cb1d4dd532c867e5baf61c3fb4101a4012161b7fe6d6d8b1a3ced7e3e5d9fab7a4a6ca105fa1373844036564c8a5fcfe584b6d9ed03c8fb94e7d3b62642f5f260b75800b45e7665b1c462fd433cc50c3f2e67152187181eb837a2e140de85f5b4a7d04a8e6fd7bc556067259ad80a401d2abf99e9a6b6155aa5353e42d71d96bb3191c74b81a635d3918faacc4a417e5860a14a2c853a85e39b8ac3cfc6ade3d3006133bfd80035202728703003140e6679ab3080d56de3d0ab2ba3330b634faf98c12cfa9374dfe6f69ce81c4d1cda23332feecb1bd90dac0ff83227efeb88fdc8351b05db33f644ee1f647672d43a2af57bb89e5c016c5db9bdae71a3a52970506758338b459aca744c8167dcd1927d835d6bd490840391e05c5fb0bcdbbe554838a356ea2e0e6bcc8e4cdbe910b1e6984d3fc8b65e02de96adddc63fd7cfe5feed47c64fcc551121b944a3150b1056f7cb67f39c95738102e185901d06eeaaf0996ed9f8702387ddc28e2bb32311721882a61fd4a8b937159170bf27508dd5c6b59b6ca01c681af36bcb7a8d3c37a01720ee76f5ac041bef40dcf9cb2808b72ab8ee2fb65edd579d239eeb0f3516ba330348d323db0e6cc5d5fa4bc44dc17ceb6e4dbbcedc7cd46ab3ddbd183518c2a6bbf84744a7a3e0011aaa6058d83aa5237f2002fd5461c4ba050635fe4a7f4854735b63407a674949e348dfc4339e5f4713c92774bd5555a0fbe4f4fda9af999b6c36fb383b2c569c038f4e52f9a5f1ac5aa2f2d668b067d3545cc5c487bda2b1c5400d00066b0409e20a5b9c67455dda8f0a310aae9d943646946927d6243c05655594865081fa4231768fb69f4c789af4898273b46a882a0337d09547c67e30c2dc1e5f4cfeb82965b1715d6dffac41d7065a018a0123747810a4654d062c49944053e81662a34e4172db4f90230b051c23a2897800ffba4e12eaa5196d9aca7d810e31c767c5f17a8f27d296f6eb2f7a19058b0868cb7e96ef877adcc23e4fbe593436bd9a271731f85599b693ad2d6e50816cd5e8ce170c7899698f8f09a87dd1d2dcd6db8913f6c390351b2e317a1a807c2c69954d452eecdbfc07698621dd7008ed210e0d62b3f289814c4b02c073fd9f9c16dc66edbf4c7436a1b5a048d50e9a95f5610a5e0f4c085b4a4d58ded2b1bfa1ba8c1f9438b0448a140cba96fd036bd8583c21b95997402aeefe5ef135046464cbc7d2677bb33a8d14b3f8f3a787dd8c12398aa4eb71f621a312691c3e62a2b4e9ea6f1c58675ee508196772604470939080e5f15bfb0a3f03d2dc28fb826988232b3cfd56e559ec6575c69243ea8d8350bf82c1e62798fa2cfd47636bbde95bfe8641998c3997fb6028279f6b7e314a8885e691cd6a747df848e2134855981f0cbcfcbe8afa50serviceserviceserviceservice@@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootnvme-cli-2.8+44.gb56f5d9-150600.3.6.1.src.rpmnvme-clinvme-cli(ppc-64)nvmeof-boot-support  @@@@@@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.25)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libjson-c.so.5()(64bit)libjson-c.so.5(JSONC_0.14)(64bit)libjson-c.so.5(JSONC_PRIVATE)(64bit)libnvme-mi.so.1()(64bit)libnvme-mi.so.1(LIBNVME_MI_1_1)(64bit)libnvme-mi.so.1(LIBNVME_MI_1_2)(64bit)libnvme-mi.so.1(LIBNVME_MI_1_3)(64bit)libnvme-mi.so.1(LIBNVME_MI_1_4)(64bit)libnvme.so.1()(64bit)libnvme.so.1(LIBNVME_1.10)(64bit)libnvme.so.1(LIBNVME_1.9)(64bit)libnvme.so.1(LIBNVME_1_0)(64bit)libnvme.so.1(LIBNVME_1_2)(64bit)libnvme.so.1(LIBNVME_1_3)(64bit)libnvme.so.1(LIBNVME_1_4)(64bit)libnvme.so.1(LIBNVME_1_5)(64bit)libnvme.so.1(LIBNVME_1_6)(64bit)libnvme.so.1(LIBNVME_1_7)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3faf@f3@f@ee̫@e(ee'e#@eSe@d&@cױ@cb[c*b@bc@b@b@bP#bF@b9@b4t@b+9b b@bOa a@aaZ@aeaaim@aexa@`@``7@_u@__9^.^ P@]@]҇]:@\@\@\\!\}\\ac\P@@\N\73[[m~@[i[@Z@ZJ@Zľ@Z@ZV@Z2gY+@YB@YY4Y@YV=@YP@YP@YC@YA%@YXX @Wڍ@WWWN@W4VVVVwdwagner@suse.dedwagner@suse.dedwagner@suse.dedwagner@suse.demwilck@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdmueller@suse.comdmueller@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.comdimstar@opensuse.orgjsegitz@suse.comjsegitz@suse.comdaniel.wagner@suse.comdaniel.wagner@suse.commanfred99@gmx.chdaniel.wagner@suse.comfbui@suse.comdaniel.wagner@suse.comdmueller@suse.comhare@suse.comhare@suse.comhare@suse.dehare@suse.comsschricker@suse.comsschricker@suse.comsschricker@suse.comdimstar@opensuse.orgsschricker@suse.comsschricker@suse.comsschricker@suse.comhare@suse.detiwai@suse.dehare@suse.comhare@suse.dejthumshirn@suse.comhare@suse.dehare@suse.dejthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjengelh@inai.dejthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.com- Update to version 2.8+44.gb56f5d9: * nvme-print: Print cntlid number for controller (bsc#1224024)- Update to version 2.8+43.g1d9dae6: * nvme: avoid segfault in show-topology (bsc#1226197) * fabrics: connect all hosts in config.json (bsc#1226216) * fabrics: refactore discover from json config (bsc#1226216) * fabrics: first read config before topology scanning (bsc#1226216) * fabrics: use helper to lookup default hostnqn/hostid (bsc#1226216) * fabrics: extend already connected message (bsc#1226216) * fabrics: Always pass hostid and hostnqn (bsc#1226216) * fabrics: Make some symbols public (bsc#1226216) * completion: add support for tls-key (bsc#1226197) * doc: add tls-key --revoke documentation (bsc#1226197) * doc: fix tls-key --keyfile shorthand (bsc#1226197) * build: sort documentation files entries (bsc#1226197) * nvme: add support to revoke TLS key (bsc#1226197) * nvme: return error code/message for TLS commands (bsc#1226197) * nvme: factor out import key function (bsc#1226197) * nvme: use cleanup helper to close file descriptor (bsc#1226216) * nvme: use cleanup helper for STREAM objects (bsc#1226216) * nvme: strip newline when parsing TLS key files (bsc#1226197) * nvme: use stdout for exporting TLS keys (bsc#1226197) * nvme: change _cleanup_file_ to _cleanup_fd_ (bsc#1226197) * nvme: use cleanup helper for nvme_root_t objects (bsc#1226197) * nvme: add new function 'tls_key' (bsc#1226197) * completions: Fix _nvme indentation errors (bsc#1226197) * completions: Fix bash-nvme-completion.sh indentation errors (bsc#1226197) - Always build documentation- Update to version2.8+19.g47882bb: * nvme: fix mem leak in multiple key related functions (bsc#1223331) * fabrics: fix mem leak in nvmf_check_hostid_and_hostnqn() (bsc#1223331) * nvme: check-tls-key fails despite having hostnqn file (bsc#1223331) * nvme: print retained key for gen-tls-key's -i option too (bsc#1223331) * nvme-print: print more details in ns-descs verbose output (bsc#1223331) * nvme: use library functions for importing and exporting TLS keys (bsc#1216982) * nvme: Fix to cleanup free raw_secret memory allocated- Update to version 2.8+12.g34d799c: * sed: update SED password when initalizing (bsc#1222168) * nbft: Include SSNS index in error messages (bsc#1222026) * nbft: Pause logging for expected connection failures (bsc#1222026) * nbft: Silence connection failures for unavailable SSNS (bsc#1222026) * nbft: Fix 'verbose' argument type (bsc#1222026) * logging: track log level globally * logging: move logging code to a new file * nvme: update include for libnvme * nvme-netapp: add nspath tlv handling (bsc#1220971)- Update to version 2.8+3.g6ad094f: * fabrics: Add old nbft-show command for backwards compatibilty (bsc#1221358) * _service: switch to openSUSE repository * delete 0100-harden_nvmf-connect@.service.patch (now in git) * bump "nvme-boot-support" to 0.2- Update to version 2.8: * nvme-print-json: append array object in json_support_log * sed: Add plugin for basic SED Opal operations (jsc#PED-5061) * don't include newlines in already wrapped text * nvme: do not include meta data for PRACT=1 and MD=8 (version 2) * create-ns: align the namespaces to 1Mib boundaries when using SI suffixes * doc: Fix config-schema.json's URL * plugins/solidigm: Compressing vs-internal-log log files into zip file. * nbft: do not issue an error if ACPI tables are missing * nbft: fixup include for libnvme * doc: Fix short option name for cfg-file * completions: added Solidigm plugin to autocomplete scripts * nvme: Remove unused cfg argument from NVME_ARGS() macro * nvme: fix directive receive identify offsets * nvme-fabrics: enable option 'concat' * build: Update libnvme wrap * plugins/wdc: Add Debug Log Collection Support * nbft: fix tcp/dhcp address fallback retry (bsc#1218873) * nvme: use correct telemetry log size * nvme-print: fix typo in list verbose output (bsc#1219086) * nvme: print inserted tls key for check-tls-key (bsc#1219086) * plugins/wdc: Plugin fixes and updates * fabrics: move hostid/hostnqn warnings to verbose level (bsc#1219086)- Update to version 2.7.1: * nvme-print-json: Revert field name changes (bsc#1218306)- Update to version 2.7: * nvme-print-json: include vs for identify namespace * nvme-print-stdout: enhance connect message (bsc#1219086) * fabrics: fix connect error if hostid file does not exist (bsc#1219086) * fabrics: fix invalid output format error during nvme connect (bsc#1219086) * wdc: Fix vs-smart-add-log Command for SN650 and SN655 * nvme: restric hmac options for gen-tls-key (bsc#1219086) * wdc: Fix UUID index fallback mechanism * plugins/ocp: Add OCP Telemetry String log page, Telemetry log page * completions: Add bash completions for telemetry string log page * plugins/solidigm: Added OCP 2.0 compatibility version command * plugins/solidigm: Added OCP 2.0 vs-drive-info command. * plugins/ocp: Fix printing order of various Latency Monitor Log buckets * nvme: validate output format split status from flag return value * nvme: simplify cleanup_nvme_dev() * cleanup: remove unused cleanup_charp() * wdc: Add support for SN861 2nd pci device id * nvme: replace libhugetlbfs with mmap and madvise * util/mem: move alloc helper to util section * nvme: auto cleanup filedescriptors * nvme: auto cleanup buffers * nvme: return error code in get_persistent_event_log * nvme: sanitize nvme-gen-tls-key * nvme: print out the resulting TLS identity for 'nvme check-tls-key' * nvme: Add version '1' identifier for nvme-gen-tls-key * subprojects/libnvme: update wrapper for TP8018 * plugins/solidigm: Added re_sku_count smart atrribute * doc: Fix nvme-connect manpage --application option string * plugins/ocp: changed command clear-pcie-correctable-error-counters to match OCP 2.0 spec. * plugins/solidigm: Added command to clear PCIe Correctable Error Counters according to OCP 2.0 * plugins/ocp: Reorganized clear feature code for better reuse * nvme: fixup length calculation for 'nvme gen-tls-key --secret' * doc: remove invalid hostkey info for --dhchap-secret * nvme-print-json: use human helper everywhere * nvme-print-json: remove obj_print helper * plugins/ocp: update nvme_show_select_result call * mailmap: only show contributer's name * nvme-print-json: Change to report status and message in array * nvme-print-json: Change to report feature select in array * nvme-print-json: Change to report error and data in array * nvme-print-json: Add show_init/finish calls to report features in array * nvme-print: Add nvme_show_error_status() to merge error message and status * nvme-print-json: Use r instead of root and use obj_add_***(r, ..., ...) * nvme-print-json: Delete static const char string global variables * nvme-print-json: Add remaining controller registers readable format * nvme-print-json: Add readable format cap, vs, cc, csts, nssr and crto registers * nvme-print-json: Combine duplicated json key and val string variables * nvme-print-json: Replase json_array_add_value_string() to array_add_str() * nvme-print-json: Replase json_object_add_value_uint128() to obj/root_add_uint128() * nvme-print-json: Replase json_object_add_value_object() to obj/root_add_obj() * nvme-print-json: Replase json_array_add_value_object() to array_add_obj() * nvme-print-json: Replase json_object_add_value_array() to obj/root_add_array() * nvme-print-json: Replase json_object_add_value_uint() to obj/root_add_uint() * nvme-print-json: Replase json_object_add_value_int() to obj/root_add_int() * nvme-print-json: Replase json_object_add_value_uint64() to obj/root_add_uint64() * nvme-print-json: Replase json_object_add_value_string() to obj/root_add_str() * nvme-print-json: Update feature_show_fields_*** to use root/obj_add_***() * nvme-print-json: Update lba_status_log to use root_add_***() and obj_add_***() * nvme-print-json: Replace lba_status_log printf() to root_add_result() * nvme-print-json: Add list_item print function * nvme-print-json: Add lba_status_info print function * nvme-print-json: Add lba_range print function * nvme-print-json: Add id_ctrl_rpmbs print function * nvme-print-json: Unify json_list and jroot object names to root * nvme-print-json: Add json_zns_changed print function * nvme-print-json: Add root_add_result() to output result message * nvme-print-json: Split persistent_event_log print function * nvme-print-json: Remove unnecessary string newline code * nvme-print-json: Replace effects_log_list print to use json_print() * nvme-print-json: Print persistent_event_log no log data result correctly * nvme-print-json: Add static "result" and "erorr" strings variables * nvme-print-json: Add single_property printf function * nvme: Replace get feature command stderr output to nvme_show_error() * nvme-print-json: Change d() output to use d_json() * nvme: Fix get-feature command mixed stdout and json outputs * nvme-print-json: Add remaining feature fields print functions * nvme-print-json: Update formatting and codying style * build: Add -std=c99 to CFLAGS for muon on CentOS 7 * fabrics: add udev rule to avoid renaming nbft interfaces * fabrics: autoconnect: add service unit for connecting NBFT subsystems * fabrics: autoconnect: explicitly express module dependency * Updates to codeql config * libnvme-wrap: exit on VOID_FN lookup failure * plugins/ocp:Added the ocp C6h feature api * plugin/ocp_fid_c6h:Added the ocp C6h feature api * nvme-copy: support cross-namespace copy * nvme/plugins: fix mismatch operator * nvme: fix overflow possiblity * nvme: reduce identify cmd issue * nvme: allow set-features to take input from stdin * Fix common misspellings from codespell project * nvme-print: Correct to print correct ascii character string length * print-stdout: print Host Behavior Support correctly * build: Bump libnvme wrap * plugins/solidigm: Added support for temperature statistics log page * Add support for codeql sweeps * doc: Add virt-mgmt command * doc: Add id-uuid command * doc: Add list-secondary command * doc: Add id-ns-granularity command * doc: Add nvme commands --output-format and --verbose options * completions: Add nvme-mi-recv nad nvme-mi-send commands completions * completions: Change short option -o and -v duplicated to upper case * doc: Change short option -o and -v duplicated to upper case * nvme: Change short option -o and -v duplicated to upper case * nvme: Change phy-rx-eom-log command to use NVME_ARGS instead * plugins/memblaze: Add smart-log-add and latency-feature functions * plugins/solidigm: internal-logs Telemetry auto detect last data area. * nvme: Change to use NVME_FLBAS_META_EXT() macro to check flbas value * nvme-print-json: Add host memory buffer and timestamp features print functions * nvme-print-json: Add feature fields print functions * nvme-print-json: Add TMPTH feature print function * nvme-print-json: Add show_feature_fields print function * nvme-print-json: Add select_result print function * nvme-print-json: Use json_print to print and free object * nvme-print-json: Add lba_status print function * nvme-print-json: Combine variable definition and setting value * nvme-print-json: Add id_iocs print function * nvme-print-stdout: Fix coding style errors * nvme-print-json: Add directive print function * nvme: Fixed segmentation fault when getting host initiated telemetry * plugins/wdc: enhanced SN861 device support * plugins/wdc: cleanup line lengths * nvme: do not include meta data for PRACT=1 and MD=8 * nvme: use block-count arg if provided * build: bump libnvme to disable tests option * build: Add static build on CI target * nvme-print: Add nvme_zns_start_zone_list() API function * nvme-print: Add nvme_zns_finish_zone_list() API function * nvme-print-binary: Set list function to NULL if unimplemented * nvme-print-json: Change order list functions and set NULL if unimplemented * nvme-print-stdout: Fix to set stdout_list_item print function missed * plugins/solidigm: log page name extraction using nvme_log_to_string function * nvme-print: Added missing logpage names in nvme_log_to_string function * udev-rules: rename netapp udev rule (bsc#1219086) * udev-rules: set ctrl_loss_tmo to -1 for ONTAP NVMe/TCP (bsc#1219086) - Remove upstreamed patches * remove 0001-fabrics-autoconnect-add-service-unit-for-connecting-.patch * remove 0002-fabrics-add-udev-rule-to-avoid-renaming-nbft-interfa.patch - Update spec file * remove libhugetblfs depedency * update NetApp udev rule file name- Add missing jsc# and bsc# tracking entries in change log.- Use fixed timestamps for documentation allowing reproducable builds - Announce nvmeof-boot-support support via Provides - Filter rpmlint warnings for systemd-service-without-service_ macros - Add missing service files for NBFT feature * add 0001-fabrics-autoconnect-add-service-unit-for-connecting-.patch * add 0002-fabrics-add-udev-rule-to-avoid-renaming-nbft-interfa.patch- Enable test during build (bsc#1207686) - Drop minimum version meson dependency - Add asciidoc dependency - Build documentation when requested- Update to version 2.6 (jsc#PED-3610 jsc#PED-4879 jsc#PED-5061): * nvme: allocate payload buffer in create-ns command * nvme-print-stdout: Add CAP.CPS and CAP.NSSS human readable outputs * nvme: Add output-format default option instead of argconfig json option * nvme: fw-download offset only describes FW offset, not file offset * unit: add locale number test * util: handle utf-8 thousend separators correctly * nvme: Change to use NVME_ARGS verbose default option from OPT_ARGS * fabrics: Fix NVMF_ARGS macro to use parameter n correctly * nvme: Add verbose default option to show command debug output * util: Fix to set argconfig output format json option correctly * util: Split argconfig output format json function to set and get * nvme: Spport Phy Rx Eye Opening Measurement Log * nvme: Introduce nvme_realloc function * nvme: Fix for fdpa reserved field printing * completion: add 'version' and 'help' to list * udev-rule: apply round-robin iopolicy on i/o subsystems alone (bsc#1215994) (bsc#1219086) * nvme: Add support for the OAQD ID controller field * plugins/solidigm: use static log macro to calc bitmask * plugins/ocp: Rename FW activation history command * nvme: auto free nvme_dev resource * nvme: allocate aligned payloads for all nvme commands * nvme: introduce alloc helper with alignment support * util: add cleanup function for generic memory allocations * nvme: append huge to nvme_{alloc|free} function * nvme: fw_download use nvme_alloc only * fabrics: Removing duplicate code and moving to libnvme * nvme-print: omit size of protection information * tree: Modify label name close_fd to close_dev * fabrics: For TCP/RDMA, compare IP addresses with nvme_ipaddrs_eq() (bsc#1213768) * fabrics: lookup_discovery_ctrl() must look under host and not root (bsc#1213768) * nvme: Do not map status to errno codes * completions: Add bash completion for DSSD Power state feature(FID: C7h) * Documentation: Add document for DSSD Power state feature(FID: C7h) * plugins/ocp: Add DSSD Power state feature(FID: C7h) * avoid casting pointer arguments to argconfig functions * nvme-print: Add support for EGFEAT, Domain Identifier, TEGCAP and UEGCAP * nvme-print: Fix endurance_log whitespace changes * nvme: Fix retrieval of telemetry log up to specified data area. * nvme: Update list secondary command * wdc: Add support for SN861 drive * util: Set errno to 0 before strtol/stroul call * nvme: Revert passthru and submit_io to print status to stderr from stdout * plugins/zns: Fix offset in report zones * nvme-rpmb: Fix nvme_show_id_ctrl_rpmbs() definition error * fabrics: Use corresponding hostid when hostnqn is generated * json: fix seg. fault converting NULL to JSON string (bsc#1213762) * nvme-cli: fix extended metadata size calculation * nvme-print: Show subsystem iopolicy (bsc#1124564) * nvme-print-stdout: Do not show non reachable ns in namespace topology (bsc#1212598) * nvme-print: Fix show-topolocy for ctrls * doc: Fix typo in documentation * nvme-print-stdout: fix storage tag size label * nvme-print-stdout: List only ctrls which are part of ns (bsc#1212598) * nvme-print-stdout: Support subsys reachable from several hosts (bsc#1212598) * ccan: Add htable, strset and dependencies (bsc#1212598) * ccan: Remove unused documentation (bsc#1212598) * nvme-print: Split max power flags * nvme-print: fix counter while looping through uuid_list (bsc#1212598) * fabrics: only look for matching ctrl on same host (bsc#1213768) * README: Correct hugetlbfs spelling error * util: Delete unused CFG_BOOL argconfig type as duplicated with CFG_FLAG * util: Set LC_ALL=C as default if -H option is not used * nvme: Add support for create-ns command endg-id option parameter * nvme-print: fix argument order for show functions * plugins/solidigm: Added Marketing Name Log support for Solidigm. * nvme-print: Remove left overs from refactoring * nvme-print: Move num argument parsing into callbacks * nvme-print: Fix typo in callback definition * scripts: Make release script project neutral * scripts: Update update-docs.sh scripts * scripts: Execute the scripts from toplevel directory * scripts: Move helper scripts to a central place * docs: Update file modes * doc: Add information on --context * nvmf-autoconnect: Annotate the context to autoconnect * fabrics: Add support for volatile configuration * plugins/solidigm: Formated log page directory table consistently with "nvme list" format. * plugins/solidigm: Added Identify controller VU extensions parsing. * nvme-print-json: Print PCI pysical slot number for controller * nvme-print-stdout: Print PCI physical slot number for controller * libnvme.wrap: Bump to 42ac453 * plugins/nbft: Use common code to parse print flags * fabrics: Do not print device on connect per default * fabrics: Revert 'fabrics: prevent 'nvme connect' to well-known discovery NQN' * nvme-print: fix wrong list-subsys output when ns are attached to different ctrls * plugins/micron: Correct NULL pointer checking error * plugins/innogrit: Add vendor command get-eventlog and get-cdump * nvme: Use correct data buffer size * nvme: Fix quoted string split across lines to use quoted newline * plugins/zns: Fix zns.c linux kernel check patch errors and warnings * plugins/ymtc: Fix ymtc-nvme.c linux kernel check patch warning * plugins/ymtc: Fix ymtc-nvme.c space indentation to tab indentation * plugins/virtium: Fix virtium-nvme.c linux kernel check patch errors and warnings * plugins/transcend: Fix transcend-nvme.c linux kernel check patch errors and warnings * plugins/solidigm: Fix linux kernel check patch errors and warnings * plugins/shannon: Fix shannon-nvme.c linux kernel check patch errors and warnings * plugins/seagate: Fix seagate-nvme.c linux kernel check patch warnings * plugins/scaleflux: Fix sfx-nvme.c linux kernel check patch errors and warnings * plugins/netapp: Fix netapp-nvme.c linux kernel check patch errors and warnings * plugins/nbft: Fix nbft-plugin.c linux kernel check patch warnings * plugins/micron: Fix micron-nvme.c linux kernel check patch errors and warnings * plugins/micron: Fix micron-nvme.c space indentation to tab indentation * plugins/memblaze: Fix memblaze-nvme.c linux kernel check patch errors and warnings * plugins/memblaze: Fix memblaze-utils.h space indentation to tab indentation * plugins/memblaze: Fix memblaze-nvme.c space indentation to tab indentation * plugins/intel: Fix intel-nvme.c linux kernel check patch errors and warnings * plugins/inspur: Fix inspur-nvme.c linux kernel check patch warnings * plugins/inspur: Fix inspur-nvme.c space indentation to tab indentation * plugins/innogrit: Fix innogrit-nvme.c linux kernel check patch errors * plugins/huawei: Fix huawei-nvme.c linux kernel check patch errors and warnings * plugins/fdb: Fix fdb.c linux kernel check patch warnings * plugins/dera: Fix dera-nvme.c linux kernel check patch errors and warnings * plugins/amzn: Fix amzn-nvme.c linux kernel check patch error and warnings * plugins/wdc: Fix wdc-utils.c linux kernel check patch errors and warnings * plugins/wdc: Refactor wdc-nvme.c for linux kernel check patch errors and warnings * util: Move falltrhough feature check to meson.builds * ocp: Add eol plp failure mode json outputs * nvme-print: Add nvme show result function * nvme-print-json: Add json output result function * nvme-print: Fix nvme_show_error() to call va_end() for json output format * nvme: Fix nvme format block-size option handling * Revert "nvme: Masks SSTAT in sanize-log output" * fabrics: Fix NVMF_ARGS macro indentation error * Documentation: Add document for OCP Device capability(LID: 0xC4) log page * completions: Add bash completion for OCP Device capability(LID: 0xC4) log page * plugins/ocp: Add Device capability(LID: 0xC4) log page * udev: fix warning reported by udevadm verify * fabrics: fix conditions in nvmf-autoconnect.service * fabrics: Change NVMF_OPTS as NVMF_ARGS to fix linux kernel check patch error * nvme: Split passthru commands read output * nvme: Fix io-passthru command read metadata output * plugin/ocp: Added implementation for 0xC1 log page * util: Fix suffix_si_parse to parse no decimal point but suffix value correctly * completions: Add zsh option values handling for sanitize command action * completions: Add ocp sub commands zsh completion * completions: Add ocp commands zsh completion * completions: Add ocp commands bash completion * nvmf-autoconnect: restart service to avoid dropping AEN * solidigm: Reduce memory usage in supported log pages feature * solidigm: Changes to supported log pages feature requested by review * solidigm: Add supported log pages log feature to Solidigm plugin * plugins/ocp: Added ocp unsupported requirements log page * completions: Add bash option values handling for sanitize command action * doc: Correct nvme-show-hostnqn command NAME description * completions: Add missing zsh commands descriptions * plugins/wdc: Extend SN530 support. * Fix incorrect article 'an' as 'a' to use for descriptions and message * nvme: Set effects-log command csi option help message string * completions: bash: Delete unsupported id-iocs command options * completions: bash: Add id-domain command * completions: Fix nvm-id-ns-lba-format command zsh definition * completions: Add json command option * nvme: Fix get-feature command sel parameter check to allow value 8 * util: Delete unnecessary argconfig definitions OPT_VAL and CFG_VAL * util: Delete argconfig value type to add option value as va lists instead * util: Split to set argconfig option value * util: Delete argconfig value length to calcurate instead * nvme: Change sanitize command action option to use argconfig parse value * util: Add argconfig parse value function * util: Delete unused argconfig subopts type * util: Delete unused argconfig file types * util: Delete unused argconfig help function * nvme-wrap: do_admin_args_op should not clear args timeout * nvme: Fix linux kernel check patch warnings * nvme: Fix linux kernel check patch errors * plugins/ocp: Add telemetry-log command to OCP plugin * plugins/ocp: Add OCP set latency monitor feature command * plugins/ocp: Fix endianness in Latency Monitor Log output * plugins/ocp: Add missing fields in Latency Monitor Log * plugins/ocp: Fix typos in Latency Monitor Log * plugins/ocp: Reorganize OCP plugin source code * tests: Add tests for controller reset * plugin/solidigm: Added vs-internal-log command. * nvme: Add nvme_show_perror to use instead of perror for json output * nvme-print-json: Use vasprintf instead of vsnprintf to allocate string * nvme: fix rnlpt to_string() values. * nvme: fix io_mgmt args parse error * fdp: set-events feature is saveable * fabrics: Return errno value as negative * fabrics: Fix linux kernel check patch errors and warnings * nbft: add the nbft show plugin * nbft: added NBFT v1.0 table support (jsc#PED-1449) * nbft: make lookup_ctrl function public * nvme: Fix indentation errors around nvme show error API * nvme: Check validate output format err value instead of flags * nvme: Use nvme show error API to outptu stderr messages for json format * util: Check output format json for json error message output * nvme-printf: Add show error function for nvme list command json output * nvme: Add zns specfic field for create ns * nvme: Add ns-mgmt host software specified fields * nvme: Add dtype, dspec on write-zeroes, write-uncor * nvme-print: Add new fields print on id directive * nvme-print: Add VWCNP on NSFEAT of id-ns * nvme: Fix format command to skip to reread NSID all block device * plugins/solidigm: Fixes and clean-up of Telemetry parse code. Fixed parsing of 64 bit values. Fixed COD field name. Fixed compilation warnings when compiling for 32 bit. Added missing free(). Consolidated single entry function to telemetry parser. Consolidated use of integer types. * doc: Documentations maintenance changes * doc: Add nvme-mi-send command documentation * doc: Add nvme-mi-recv command documentation * doc: Add clear-pcie-correctable-error-counters command documentation * doc: Add eol-plp-failure-mode command documentation * plugins/solidigm: Add firmware activation history log to Solidigm plugin * plugins/ocp: Add firmware activation history log to OCP plugin * nvme-print: Use enum nvme_print_flags for nvme_show_id_ctrl * nvme: Add support for NVMe-MI send command * nvme: Use stdout for passthru and submit_io commands success messages * nvme: Fix passthru command function indentation errors * nvme: Add support for NVMe-MI receive command * fabrics: fix fc config JSON file handling (bsc#1210089) Refresh 0100-harden_nvmf-connect@.service.patch - Fix install path for nvme-regress script- Update to version 2.4 (jsc#PED-553 jsc#PED-3884): * plugins/ocp: Add SMART cloud log to solidigm plugin * nvme-print: Unify number base format for nsid * nvme-(discover,connect,connect-all): enable options '--keyring' and '--tls_key' * nvme-connect: enable option '--tls' * nvme-check-tls-key: add options to derive a 'retained' TLS key * nvme-gen-tls-key: add options to derive a TLS key * plugins/ocp: Move SMART cloud log methods to separate file for reusability * nvme: validate storage tag size correctly * nvme-print-json: Add json output status function * util: Cleanup argconfig parse function * nvme: Fix format command function indentation errors * util: Use argconfig commandline options pointer directly * nvme-print: Fix nvme show status function indentation errors * nvme: Check fw-commit command support MUD * print: print csi and opcode in error log (TP4113) * plugins/inspur: Cast vendor specific smart log value * nvme: Use correct ABORT type for self abort test * plugins/solidigm: Do not overwrite previously initialized variable * nvme-print: sanitize supported-log-pages output (bsc#1209550) * nvme: Enforce length to a multiple of 4 in get_log_page * nvme: fix block count and data size logic (bsc#1209564) * util: Introduce argconfig simple helper to check seen condition * plugins/ocp: Add set feature EOL/PLP failure mode no-uuid option * plugins/ocp: Refactor to clear feature identifier C1h and C3h * plugins/ocp: Add support for clear PCIe correctable error counters feature * nvme-doc: update man page for supported-log-pages (bsc#1209550) * plugins/ocp: OCP 2.0 field updates for SMART cloud log * nvme: Fix parameter limit range * fdp: Fix wrong Reclaim Unit Handle Status size * plugins/ocp: Add support for EOL/PLP failure mode feature * nvme-print: Fix printing of u32 values * nvme: Fix invalid memory access in show_registers * util: Add argconfig seen flag parameter to check if feature NSID set * nvme-print: fix segfault in supported-log-pages json output * fabrics: Fix ordering for auto connect services (bsc#1208075) * nvme.c: Check Firmware Update Granularity in fwdl * log: high latency timestamp issue * nvme: Align get feature data buffer length by page size to allocate * nvme: Continue get feature on invalid NS error to get multiple feature ids * plugins/ocp: SMART cloud log bug fixes. * Made temperature readouts in line with the SI. * Changed 'Kelvin' to 'kelvin', as recommended by the BIPM. * plugins/ocp: Fix whitespace and style issues * util: Revert JSON output to plain numbers * nvme: Add rae argument to telemetry-log command * nvme: Refactor get telemetry log page helper * nvme: Factor out parse telemetry log da element * nvme: Fix type in error message * unit: Add test-argconfig-parse * nvme: Use chunked read in get_log() * nvme: Use fprintf for error message logging in get_log() * nvme: fix /dev/spkd/ typo * doc: --storage-tag-check doesn't take any arguments * fabrics: Ensure host-traddr/iface consistency for "connect-all" * nvme-print: print the nvme generic name in json output as well * plugins/innogrit: modify command opcode for eventlog and cdump * completion: fix typo, add missing args * plugins/wdc: Fix data Formatting for Latency Monitor Log Page * nvme: Make json-c optional again * nvme-print: Move JSON printing function into a new file * plugins/solidigm: Use json_create_object wrapper * plugins/solidigm: Use struct json_object instead of typedef * fabrics: No need to sanitize trsvcid and traddr * docs: Fixed typos and missing options * util: Numbers without any suffix are also valid * util: Update suffix_binary_parse API * util: Reimplement suffix_si_parse * nvme: Filter out status flags for get feature command * util: Add crc32 implementation * nvme-print: Use attrs_info as key for Zone Attributes Information * nvme: Support effects-log for fabrics ctrl * plugins/solidigm: Add uuid index resolution * plugins/ocp: Use network byte order for OCP UUID value * json_discovery_log: avoid buffer overrun (bsc#1207435) * Fix connect nbft regressions (bsc#1209905) * Fix auto connect conditions (bsc#1210105) * Fix auto boot for NBFT connections (bsc#1211647)- Update to version 2.3: * Added support for Flexible Data Placement (TP4146) * Added Persistent Discovery Controller support (TP8013/TP8014) * nvme-mi: support for firmware downloads * nvme device-self-test learned the --wait command line argument which makes nvme-cli to wait (incl. progress bar) in foreground until the test has finished. * A lot of bug fixes all over the place - Update spec file * Project depends on meson >= 0.50.0 * make build dependency dropped- Update to version 2.2.1: * Added parsing for Solidigm telemetry observable data. * add item ddr_ecc_err_cnt in smart-log-add * build: Drop dependency on libuuid * build: Fix endian check for cross build * build: Remove unused uuid.wrap file * build: Remove unusned uuid.h include * completions: Add show-topology tab completion * fabrics: Honor JSON config file in connect-all command (bsc#1199504) * fabrics: Trigger auto connect if config.json exists * fabrics: fix 'persistent' handling during connect-all with JSON file * fabrics: nvme config --modify depends on -n and -t argument * fabrics: re-read the discovery log page when a discovery controller reconnected * json: Support uint64 types serialization for older json-c versions * nvme, plugins: fix __u64 -> unsigned long long assumptions * nvme-print: Add missing values in id-ctrl for JSON output * nvme-print: Handle NULL hostid in JSON output * nvme-print: Output 128bit values as uint128 type instead of double * nvme-print: Print fguid as a UUID * nvme-print: Use uint128 JSON function for media_units_written * nvme-print: decode MI status values * nvme-print: decode status types * nvme-print: fix wrong json key * nvme: Add helper function to parse 16-bit comma separated list * nvme: Add nvme_cmd wrapper for get_features * nvme: Add show-topology command * nvme: Add wrapper for Format NVM * nvme: Add wrapper for Sanitize NVM * nvme: Add wrappers for Get Log page helpers * nvme: Add wrappers for Identify controller lists * nvme: Add wrappers for NS attach/detach * nvme: Add wrappers for NS management functions * nvme: Add wrappers for basic NS identify * nvme: Add wrappers for firmware commands * nvme: Fix set feature command to get feature identifier 0Dh length as zero * nvme: Introduce a union in struct nvme_dev for different transport types * nvme: Introduce nvme_cli_ wrappers, wrap identify and identify_ctrl * nvme: Make static nvme_dev private to open_dev(), use locals elsewhere * nvme: Masks SSTAT in sanize-log output * nvme: Remove static nvme_dev, allocate on open instead * nvme: Use correct print format specifier for sizeof arguments * nvme: Use local struct nvme_dev for show_registers & map_registers * nvme: check if cfg.metadata is NULL before passing it to strlen() * nvme: use helpers for checking status types * plugins/innogrit: Include timer.h * plugins/innogrit: add smart items for smart-log-add * plugins/micron-nvme: Use correct print format specifier for sizeof arguments * plugins/ocp: Include timer.h * plugins/ocp: Output 128bit values as uint128 type instead of double * plugins/ocp: pass struct nvme_dev to internal functions * plugins/seagate: Add support for OCP * plugins/toshiba: pass struct nvme_dev rather than fd + name * plugins/virtium: Output 128bit values as uint128 type instead of double * plugins/wdc: Add support for SN660 drive * plugins/wdc: Add type case for feature id * plugins/wdc: Output 128bit values as uint128 type instead of double * plugins/wdc: pass a struct nvme_dev around rather than a fd * plugins/wdc: pass struct nvme_dev rather than using global nvme_dev * plugins/ytmc: pass struct nvme_dev rather than fd + name * plugins: Use PRIu64 format specifier for 64bit types * print: Add Controller Ready Timeout Exceeded HW error code * solidgm: fix initialization warning * solidigm: Added parsing for telemetry customer screenable data * solidigm: Fix printf format for size_t variable * solidigm: Updated Telemetry parsing code to MIT license. * subprojects/libnvme: update for MI admin command coverage * tests: Update license to GPL-2.0-or-later * tree: Add NVMe-MI support * tree: Add dev_fd() helper * tree: Change nvme_dev from global to static * tree: Combine NVMe file descriptor into struct nvme_dev * tree: Move global device info to a single struct * tree: fail on non-negative return values from parse_and_open * udev: Add HOST_IFACE to udev rule (bsc#1208001) * util/json.h: Add json_object_get_uint64 fallback implementation * util/json: Add 128 bit JSON helpers * util/types: Add 128 bit conversion helpers * util: Fix le128_to_cpu on big-endian * util: Fix le128_to_cpu on little-endian * util: Move common type conversion helpers into util section * utils/json: Add json_object_new_uint64 for json-c < 0.14 * utils: Fix uint128_t usage * wdc: OCP Log page updates and fixes * zns.c: report zones should be started after retrieved zone - Handle suse-missing-rclink lint warnings by providing the symlinks - Drop rpmlintrc as it is not needed anymore- Support auto discovery, add %systemd_ordering to spec file (bsc#1186399) - Mark no binaries rpms as noarch- Update to version 2.1.2: * build: Update version to v2.1.2 * wrapper: Update SPDIX license * wrapper: Call library version of nvme_init_copy_range_f1 * Revert "udev: re-read the discovery log page when a discovery controller reconnected" * nvme: Simplify ns list identify * meson: we don't need a c++ compiler * plugins/ocp: drop unused fd argument * plugins/wdc: remove fd argument from print functions * plugins/wdc: fix memset() on the address of a pointer * plugins/solidigm: fix return value on format parse failure * plugins/wdc: prevent duplicate close on NVMe device- Update to version 2.1.1: * build: Update version to v2.1.1 * build: Extend release script to support micro version releases * build: Add minimum build requirement on libnvme * wrapper: Add weak nvme_init_copy_range_f1 symbol * build: Update version before regenerating docs * build: Update release version rules- Update to version v2.1: * nvme: Do not print error message in collect_effects_log helper * fabrics: Remove dhchap-ctrl-secret from discover/connect-all (bsc#1201701) * nvme-print: sanitize the get-feature async event config output * nvme: Set default rae value for nvme_get_nsid_log users * fabrics: Avoid nvme_scan_ctrl when disconnecting * print: Fix nvme_id_uuid_list * fabrics: Already connected uses a different error code (bsc#1199994) * fabrics: skip connect if the transport types don't match (bsc#1199949 bsc#1199994) * nvme-print: Show ANA state only for one namespace (bsc#1200044 bsc#1199956 bsc#1199990)- Update to version v2.1~rc0: * build and install fixes/improvements * documentation fixes * version reporting includes library version * various fixes reported by coverity * new solidigm plugin- Update to version 2.0: * fabrics: Create persistent controller using unique subsystem NQN (bsc#1198243) * fabrics: Set KATO for discovery controller when connecting * fabrics: Do no modify default config for discovery controller * fabrics: Set default trsvcid ports for TCP and RDMA (bsc#1195858) * fabrics: Support connect even when no /etc/nvme/hostnqn file exists * nvme: update to nvme_scan_filter_t modifications (bsc#1195938) * plugins/intel: make 'buckets' a json array * plugins: Update WDC capabilities command with new commmands * plugins: Add OCP plugin- Update to version 2.0-rc8: * fabrics: Add DIM command * fabrics: Introduce force flag to overwrite persistence logic (bsc#1197076) * fabrics: Free non-matching controller during discovery * fabrics: add 'nvme config' command * fabrics: Correctly stringify discovery.conf and config.json paths * nvme-print: Add human readable print for nsattr field * nvme-print: Update Persistent Event log fields * nvme-print: print discovery async event support * nvme-rpmb: Fix spelling for 'Partition' * nvme-copy: add missing field to the command * nvme: add get_mi_cmd_support_effects_log command * nvme: Fixup namespace filtering yet again * nvme: Use type bool for OPT_FLAG * nvme: use filter for 'list-subsys ' (bsc#1195938) * Add lbstm option to create-ns * argconfig: Do not use default value loading by getopt_long_only * argconfig: Rename CFG_NONE to CFG_FLAG * plugins: Use type bool for OPT_FLAG * documenation updates - Drop 'ProtectKernelTunables=true' (bsc#1197076)- Fix install conflict caused by new bash completion script location (bsc#1197365).- Update to version 2.0-rc7: * netapp-nvme: fix smdevices segfault in json output (bsc#1195937) * fabrics: keep the backward compatibility * nvme: Do not slash escape strings in JSON output (bsc#1195937) * nvme: Print full device path * nvme-print: Make JSON keys consistent with nvme-cli 1.x * nvme-print: print generic device in list command * fabrics: check for discovery controller instead of subsystem NQN (bsc#1197061) * connect: Set errno to zero on nvmf_add_ctrl() success * documenation updates - Set path to systemctl via newly introduced config option - Update 0100-harden_nvmf-connect@.service.patch due to upstream file rename - Moved bash completion script to /usr/share/bash-completion/completions/nvme- Update to version 2.0-rc6: * nvme: print out ANA state for 'list-subsys' (bsc#1195938) * nvme: Explicit initialize all command line options (bsc#1195945) * nvme: Explicit initialize passthru command line options * nvme: list_ns bug fix (csi option enable) * nvme: nvme write bug fix (no parse for option) * documenation updates- Update to version 2.0-rc5: * nvme: passthru bugfix(wrong jump, wrong file descriptor) * nvme-cli: Ignore traddr case (bsc#1194025) * nvme: fix segfault in nvme telemetry-log error handling * fabrics: ensure zero kato for non-persistent controllers * documenation updates- Update to version 2.0-rc4: * netapp-nvme: free the nsdescs pointer after use * netapp-nvme: fix ontapdevices segfault in json output * nvme-print: fix 'nvme list -o json' segfault * nvme: get_ns_id command fails on nvme device * wdc: updated products list for telemetry (--type) argument * docs: fix typo in Data Set Management section * Fix ctrlist for attach-ns and detach-ns * netapp-nvme: fix nvme ns desc uuid handling for ontapdevices * wdc: Fix use-after-free access of cbs_data * Fixed regression with 'open namespace exclusive' (bsc#1195945)- Update to version v2.0-rc3: * nvme-print: Fix json output for list-subsys * nvme: Allow --verbose flag to increase log level * Added telemetry log fetch support for SN810, SN530 and SN740 series NVMe SSDs through wdc vs-internal-log command * nvmf: Remove --matching from systemd service file (bsc#1195665) * nvme: Fix --force flag inversion (bsc#1195637) * nvme: Add support for data area 4 to get-telemetry-log * nvme: Add Supported Capacity Configuration List log page(LID: 0x11) * nvme: Add Enhanced Controller Meta Data(FID: 0x7D) * nvme-print: Add NVME_FEAT_FID_ENH_CTRL_METADATA to nvme_feature_to_string * nvme-print: remove unused nvme_show_id_ctrl function * nvme: Add nvm-id-ns-lba-format(CNS 0Ah) command from TP4095 * nvme: Add NVM Command Set specific identify namespace command * nvme: Add id-ns-lba-format(CNS 09h) command from TP4095 * nvme: Add nulbaf(Number of Unique Capability LBA Formats) field on nvmd_id_ns - Include precompiled documentation- Update to version 2.0~2: * Adapt to logging API changes in libnvme * Adapt to scan API changes in libnvme * Reworked error message handling * Fix 'list-ns' (bsc#1195151) * Add 'gen-tls-key' and 'check-tls-key' * Add Media Unit Status log page support * Cleanups and build fixes - Fix path to systemctl (bsc#1193699)- Fix zsh completion package depenedencies.- Use osc_scm to manage upstream input source. - Fix version string.- Update Source URL and introduce a variable for the release canditate version string.- Update to v2.0-rc0 * Depends on libnvme * rename harden_nvmf-connect@.service.patch to 0100-harden_nvmf-connect@.service.patch * drop 0102-nvme-cli-Add-script-to-determine-host-NQN.patch- Update to version 1.16: + Print ProductName found even if subvendor/subdevice is unknown. + Add New fields on PEL based on NVMe 2.0a. + nvme-cli: - Split media units written/read into hi/lo 64 bit fields. - Add support for new SN650 device. - Update WDC pluging version to 1.15.3. - fix the [data|mdata]_len param (boo#1193547). - Add support for C3/Latency Monitor Log page parsing. - ctrl-loss-tmo should accept -1 as value. + nvme: add spinup control feature (fid=0x1A). + nvme: Add Identify for CNS 08h NVMe spec 2.0a based. + nvme: add boot partition log support. + nvme: add support for fid supported and effects log(lid = 0x12). + add identify endurance group list (cns 0x19) support. + add json support for zns report zones. + fabrics: fix 'nvme discover' segfault if sysfs path is not available.- Drop ProtectClock hardening, can cause issues if other device acceess is needed- Added hardening to systemd service(s) (bsc#1181400). Added patch(es): * harden_nvmf-connect@.service.patch- update to 1.15 * add NVMe MI features * add uuid index in get and set features command * nvme-cli: Add lsi option for get-log command * nvme: add json output format for list_ns * fabrics: add fast_io_fail_tmo option * fabrics: add --host-iface option * nvme: add latency parameter for passthru commands * nvme: add optional copy format support id ctrl field * nvme: add zone desc changed notice async event * nvme: add json, binary and human readable output format for id iocs * fabrics: print device name on connect * nvme: add get log page 2.0 spec fields * nvme: add the status codes from 2.0 spec * zns: add timeout parameter for Zone Management Commands * nvme: add CDW2 and CDW3 support for Write Zeroes and Verify Command * nvme: add Storage Tag Check field in NVM Commands * bash: updated completion support for latest commands and plugins * nvme: add capacity management command support * add identify CNS 0x18 domain list support- Update copyright date - Move bash-completion into subpackage to avoid zypper recommanding bash-completion everytime.- install bash-completion file in correct directory - recommend bash-completion- update to 1.14 * nvme-discover: add json output * nvme: add support for lba status log page * nvme: add support for endurance group event aggregate log * nvme: add endurance group event configuration feature * nvme: add latest opcodes for command supported and effects log * zns: print select_all field for Zone Management Send * print topology for NVMe nodes in kernel and path * nvme: add support for predictable latency event aggregate log page * nvme: add support for persistent event log page * Show more async event config fields- Drop '-f' option with %service_del_postun This option shouldn't be needed besides very few special cases. But this package doesn't seem to belong to this category.- update to 1.13 * support for zoned command set * Identify I/O Command Set data structure command added * Added new namespace list command on list-ns, 4056 modification added * Added temperature information getting and text formatting * Implemented additional statistics to display * nvme: add support for non shared namespaces- update to 1.12 * Corrected text output in FW activation history * nvme: allow addr family to recognize loop * Add log page CA parsing * nvme status code updates based nvme spec v1.4 * Provide documentation for log page directory WDC plugin command * Fix status displayed by vs-telemetry-controller-option wdc plugin * fabrics: ignore hostnqn file if its empty- Update to version 1.10.1+git9.872e6b0: * fabrics: fix connection args parsing * nvmf-autoconnect.service * Fix status displayed by vs-telemetry-controller-option wdc plugin command. * Provide documentation for log page directory WDC plugin command * Provide WDC plugin command to dump log page directory * Tests: Hande string encoding and handling failures * Makefile: use UDEVRULESDIR instead of UDEVDIR - Rename 'nvme-det-hostnqn' script to 'nvme-gen-hostnqn'- Update to version 1.10.1+git2.797ec65: * Makefile: generate Dracut config according to UDEVDIR * Add additional smart log critical warn decoding * New tag for missing docs * Add new wdc documentation * Release v1.10 * Regen documentation * Use asprintf for long names * [NVME-CLI] Add documentation file for vs-error-reason-identifier WDC plugin command. [NVME-CLI] Minor updates/corrections to the clear-fw-activate-history and vs-fw-activate-history command help text. * [NVME-CLI] Add support for WDC plugin command - vs-error-reason-identifier [NVME-CLI] Reverse enable/disable bit on the vs-telemetry-controller-option WDC plugin command * Fix systemd service script use of CONNECT_ARGS env var * Shannon Plugin update. * Doc/Makefile: Introduce 'quiet' build option * Makefile: use 'quiet' compile * Makefile: Use special variables * micron: don't ignore 'system()' return value * Fix libhugetlbfs flags * Regenerate documentation * Micron plugin updates * README.md: Mention the buildroot package * nvmf-autoconnect: add udev rules to set iopolicy for certain NetApp devices * Fix intel json latency statistics output format * intel: Add function lat-stats to cli Adds the lat-stats function to intel plugin. If lat-stats-tracking is enabled, lat-stats will print out latency statistics according to the user's desired format. * [NVMe-CLI] Update documentation for telemetry data retrieval to vs-internal-log wdc plugin command. * [NVMe-CLI] Add support to retrieve telemetry data in vs-internal-log * [nvme-cli] Add documentation file for new wdc plugin command - vs-telemetry-controller-option * [nvme-cli] Add support for wdc plugin command - vs-telemetry-controller-option * Fix typo (bulit -> built) * Warn on admin-passthru opcode not matching read/write flag * MAINT: Fix format compile warning error on 32 bit system * nvme-cli: Check for sysfs interface before NVMe discovery * Revert "Add Dera plugin extension." * Revert "Add Dera plugin extension." * Add Dera plugin extension. Add stat sub-command to retrieve Dera device status and additional SMART log. * Add Dera plugin extension. Add stat sub-command to retrieve Dera device status and additional SMART log. * Improve self test log command * nvme-cli: Update err to 0 in get_telemetry_log * fixup up self-test log when no test is in progress * nvme-cli: Update err value to 0 in get_ns_id func. * Add Dera plugin extension. Add stat sub-command to retrieve Dera device status and additional SMART log. * nvme.c: create-ns arguments are added - Remove patch merged with upstream * Delete 0101-nvme-add-iopolicy-rules-for-netapp.patch- Add libhugetlbfs to the list of build requirements- Update to version 1.9+git122.c5097d5: * [NVMe-CLI] Get DUI for SN-340 failing with Data Area 4 - Buffer Misalignment * Minor intel-nvme print refactor * Use simpler nvme ioctl api for admin * Relocate functions and constants to the files that use them * Move all spec defined structs to single file * Update build rules for .c with no .h * Update my email address * Makefile: fix cleaning subdirectories * remove unused "paths" controller field * reign in line lengths * Add print for directive receive * Unify print routines * regenerate documentation * fix fw-download reference to committing fw * argconfig: Remove unused paramters * fix huawei filter to search all namespaces * nvme-cli: Support for hugetlbfs * Remove all 'struct nvme_command' usage * nvme-cli: Update PMR Capability and PMR Status 1. Adding Controller Memory Space Supported(CMSS) in PMRCAP 2. Adding Persistent Memory Region Status(CBAI) in PMRSTS * nvme-cli: Update Controller Capabilities Register 1. Add Controller Memory Buffer Supported (CMBS) * nvme-cli: Update NVMe Registers 1. Add Controller Memory Buffer Memory Space Control (CMBMSC) 2. Add Controller Memory Buffer Status (CMBSTS) 3. Add Persistent Memory Region Memory Space Control (PMRMSC) * fixup attach-ns documentation * Add files via upload * [NVMe-CLI] Updates and fixes to WDC plugin command vs-internal-log for the SN340 drive. * Regen docs, add host-nqn man page * [NVMe-ClI] Add Documentation files for clear-fw-activate-history command * [NVMe-CLI] Add clear-fw-activate-history WDC plugin command * fix namespace checks for legacy list * Reset wdc_do_cap_dui default parameters to the proper values * README.md: Mention the OpenEmbedded/Yocto recipe * Intel plugin: Adding fields to id-ctrl VU region Per https://github.com/linux-nvme/nvme-cli/pull/584/commits/f33510efbf5192116e5757d13a02463d446a1dc5#r332178975 removing pack pragma on vu_id_ctrl_field struct. * udev: convert the discovery event handler to the kernel support * Use a systemd app-specific machine ID for hostnqn * nvme-cli: Add 'transport type' error to the error log * nvme-cli: Update nvme_endurance_group_log structure * Adding fields to id-ctrl VU reigon for Intel DC drives * Check return value of scandir * nvme-cli: Add namespace-id option to self-test-log * Report invalid output format for 'list' command * Provide no-binary output format help text * regen documentation * Documentation: nvme-wdc-vs-fw-activate-history(1,html) generated * nvme-cli/fabrics: Add tos param to connect cmd * nvme.spec.in: fix rpm build error * Correct self-test-log output * nvme: Add 'Endurance Group Critical Warning Summary' to the Smart/Health information Log * [NVMe-CLI] Documentation file for WDC vs-fw-activate-history command. * [NVMe-CLI] Add new WDC plugin command vs-fw-activate-history. * make: install-hostparams depends on install-etc * MAINT: compile warning error on 32 bit system * nvme-print: fix to print ctrltype when human-readable * nvme: add Persistent Memory Region(PMR) Write Elasticity Status Registers * [NVMe-CLI] Fix Potential Memory Leak with vs-internal-log command. * regen docs * fix admin-passthru documentation typo * [NVMe-CLI] Fix empty file issue with vs-internal-log wdc plugin command * nvme-cli: Fix namespace list output * Fix builds for missing uuid * Revert "remove LIBUUID things from nvme.h" * Revert "nvme-cli: Fix compile on non-libuuid machines" * Revert "fix uuid include typo" * [NVMe-CLI] Fix offset parameter size for vs-internal-log wdc plugin command. * remove LIBUUID things from nvme.h * fix build error due to asprintf() * id-ctrl: show Flush command behavior in VWC * fix uuid include typo * nvme-cli: Fix compile on non-libuuid machines * [NVMe-CLI] Add updated documentation for additional parameters to specify file size in vs-internal-log command. * Regen docs * nvme-cli: Code cleanup * nvme-cli: Macro'ify argument defines * nvme-cli: Code reorg * [NVMe-CLI] Add support to specify file size in get DUI data for SN340. * Regenerate documentation * nvme-cli: Make 'list' more useful * id-ctrl: show Persistent Event Log support in LPA * id-ctrl: show Persistent Event Log Size(PELS) * id-ctrl: show Endurance Group Maximum ID(ENDGIDMAX) * id-ctrl: show FRU Globally Unique Identifier(FGUID) * id-ctrl: show Controller Type(CNTRLTYPE) * id-ctrl: update id-ctrl header for 1.4 * systemd: fix echo call with absolute path * nvmf-autoconnect: fix absolute path for systemctl * make: install udev rules in sysconfdir * Add an example for attach-ns * make: fix discovery.conf override * fabrics: fix loop connect-all * nvme: fix compilation error * nvme-cli: Enhance format FNA detection * nvme-cli: Warn and delay before formatting * nvme-cli: prefill metadata buffers * Fixed bash-nvme-completion.sh typo * Tag release: v1.9 * Regen docs * nvme: UUIDs for Vendor-Specific Information * nvme: add Persistent Memory Region (PMR) registers * get-lba-status: add Get LBA Status command * Added openSUSE Leap to README.md * id-ctrl: add 1.4 features to OAES * Update packaging state in Arch Linux * Fix code block style in the first section * nvme-cli: nvmf auto-connect scripts * nvme-cli: add --quiet option * nvme-cli: Expand --device argument processing * nvme-cli: Add routine to search for controller with specific attributes * nvme-cli: Add routine to compare ctrl_list_item to connect args * nvme-cli: extend ctrl_list_item for connect attributes * nvme-cli: Refactor to create a get_nvme_ctrl_info routine * nvme-cli: allow discover to address discovery controller by persistent name * nvme-cli: support persistent connections to a discovery controller * nvme-cli: ignore arguments that pass in "none" * nvme-print: show new CMBLOC bit fields added in NVMe 1.4 * nvme: add support for Namespace Granularity * nvme: sanitize enhancements * nvme-cli: Update manpages to reflect discovery particulars * nvme-cli: mask out invalid options during discovery * nvme-cli: do not use 'queue_size' and 'nr_io_queues' for discovery controller * nvme: Enhanced Command Retry * id-ctrl: add an indicator for get lba status capability * nvme: change format default namespace id * lnvm: introduce alias geometry for id-ns for lnvm * lnvm: introduce chunk-log command for chunk info * lnvm: make data_len to sizeof() instead of magic number - Add patches from SLE15: * 0101-nvme-add-iopolicy-rules-for-netapp.patch * 0102-nvme-cli-Add-script-to-determine-host-NQN.patch - Drop patches merged with upstream: * 0001-nvme_fc-auto-connect-scripts.patch * 0002-71-nvme-iopolicy-netapp.rules-add-default-rules-for-.patch * 0003-Add-nvmefc-connect.target.patch * 0004-Change-service-to-type-simple.patch * 0005-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch * 0006-nvme-cli-add-default-IO-policy-rule-for-NetApp-E-Ser.patch * 0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch * 0008-nvme-cli-Add-script-to-determine-host-NQN.patch- Update to version 1.8.1+git135.9bab71e: * various documentation improvements * nvme-cli: Restore support for older gcc versions * [NVMe-CLI] Add support for larger data sizes needed to get DUI data. * [Log] Memblaze add more log infomation for S.M.A.R.T. * nvme: add Verify command * lnvm: do not print 0 when the arg is not given * lnvm: remove redundant whitespace in lnvm_init() * nvme: clean up goto labels without whitespace * format: check BLKRRPART failure * [NVMe-CLI] Add support for SN730 to WDC plugin commmands * Add verbose capability to get DUI function to improve debug * nvme-print: Show value for Transport SGL Data Block Descriptor support * [NVMe-CLI] WDC: Add support for 64 bit data addresses in Get DUI Data functions * nvme-cli: Fix more endianness issues * nvme-print: add JSON for NVMe 1.4 NPWG, NPWA, NPDG, NPDA and NOWS fields * fabrics: Return errno mapped for fabrics error status * fabrics: return error when discovery retry exhausted * nvme: Return errno mapped for nvme error status * nvme-status: Introduce nvme status module to map errno * nvme: Return negative error value for internal errors * fabrics: Do not return in the middle of the subcommand * nvme: Do not return in the middle of the subcommand * nvme-cli: Report the NVMe 1.4 NPWG, NPWA, NPDG, NPDA and NOWS fields * Introduce NVMe 1.4 Identify Namespace fields in struct nvme_id_ns * nvme-cli: Skip properties that are not supported * Fix various bugs related to endianness bugs * NVMe-Cli Shannon Plugin-add support for shannon systems. * nvme-print: fix json object memory leak * fabrics: Fix memory leak of subsys list * nvme: update description for "nvme list" command * nvme: update list-ns nsid option * nvme-print: add pretty print for estimated sanitize time * add namespace to json output of nvme list * add free call for json object for commands show-regs * add newline for command show-regs * nvme-cli: remove unnecessary initialize of local var * nvme-cli: don't try to disconnect for ctrl with pcie transport * Fix sprintf truncate - Reorder install steps: Install systemd services first, since they are required for the udev rules, avoiding a theoretical race condition.- Add new subpackage containing the nvme-cli regress script - Add script to determine host NQN based on the system UUID + 0008-nvme-cli-Add-script-to-determine-host-NQN.patch - Add new udev rule for NetApp E-Series and adjust udev rule naming scheme accordingly. (bsc#1124564) + 0006-nvme-cli-add-default-IO-policy-rule-for-NetApp-E-Ser.patch + 0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch - Update to version 1.8.1+git64.b969cf0: * fix json print for list-subsys command * Add Virtium plugin extension document * Add Virtium plugin extension * nvme.h: Fix typos in status code values * nvme-cli: remove unused NVME_AER_NOTICE_ * list-ctrl, create-ns, format: Do not return directly without freeing fd- Update to version 1.8.1+git41.2c43c51: * nvme-print: remove Virtual Management support from ONCS * nvme-print: update self-test log to include 'aborted due to sanitize' * move to DocBook 5 * nvme-cli: add missing endianness conversions for telemetry log page * property: Fit print size for a property * Add Disable IO flag to wdc_dump_dui_data function * Reorder primary commands * nvme-cli: add identify secondary controller list * sanitize/get-telemetry-log: Print nvme status in case ret > 0 * print: Introduce show_nvme_status to print nvme status * ioctl: Fix wrong return case of get_property * ioctl: Fix double-free in a loop of get_property * improved Documentation * fix compilation with GCC-8 * fix CFLAGS parameter * nvme-cli: fix compilation with uint64_t cast * nvme-cli: minor cleanup for submit_io() * nvme-cli: align all the macros * wdc: Change device capability checking * wdc: Add additional device for vs-internal-log * wdc: Add device unit info log extraction * wdc: Add get drive status command * wdc: Add clear assert dump status command * wdc: Add drive resize command * wdc: Update device capabilities for clear pcie corr * wdc: Update file parameter checking * wdc: Add command to extract NAND statistics * wdc: Add data area extraction for DUI command * wdc: Additional device capabilities check * nvme-cli: fix fc trtype string * NVMe-CLI WDC Plugin - add support for additional SN840 device ID. * WDC plugin Change vs-internal-log Command to Save Partial E6 Log Data. * WDC Plugins vs-internal-log command unsupported on SN340. * Fix print format specifiers * Fix format block size usage * Add reporting of Virtual Management support to id-ctrl * Fix possible NULL pointer dereferences * Fix possible memory leak on get-internal-log * Print timestamp as a date and time string * nvme-cli: add netapp ontapdevices command * Add FreeBSD installation instructions * Adding a helper to format command * fabrics: Return negative errno when asprintf() fails * fabrics: Return negative errno to check remove_ctrl() is failed * nvme: Support raw_binary and json format for show-regs * ioctl: Free memory if get_property for fabrics failed * nvme: Use ARRAY_SIZE() macro in common.h * nvme: Unify min(), max() macro as a common one * nvme: Simplify description for virt-mgmt * nvme: Simplify virt-mgmt options to lowercase * nvme-print: Fix evaluation of ctratt on pretty print * nvme: print I/O error to stderr - Drop obsolete patches: - 0001-wdc-Change-device-capability-checking.patch - 0002-wdc-Add-additional-device-for-vs-internal-log.patch - 0003-generate-new-documentation.patch - 0004-Fix-compilation-with-GCC-8.patch - 0005-Fix-CFLAGS-parameter.patch - 0006-nvme-cli-fix-compilation-with-uint64_t-cast.patch - 0007-Regen-docs.patch - 0008-nvme-cli-minor-cleanup-for-submit_io.patch - 0009-Regen-documentation.patch - 0010-nvme-cli-fix-fc-trtype-string.patch - 0011-nvme-cli-add-netapp-ontapdevices-command.patch - 0012-nvme-cli-add-netapp-ontapdevices-man-page.patch - 0013-nvme-cli-Revert-stop-on-failure-with-connect-all.patch - 0014-nvme-cli-Increase-size-of-ONTAP-namespace-path-varia.patch - 0015-DOC-Move-to-DocBook-5-when-using-asciidoctor.patch - 0104-nvme-cli-Fix-documentation-syntax-and-typo.patch - Rename downstream patch: + 0001-nvme_fc-auto-connect-scripts.patch + 0002-71-nvme-iopolicy-netapp.rules-add-default-rules-for-.patch + 0003-Add-nvmefc-connect.target.patch + 0004-Change-service-to-type-simple.patch + 0005-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch - 0100-nvme_fc-auto-connect-scripts.patch - 0101-71-nvme-iopolicy-netapp.rules-add-default-rules-for-.patch - 0102-Add-nvmefc-connect.target.patch - 0103-Change-service-to-type-simple.patch - 0105-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch- No longer convert via obsolete DocBook 4.5 format, but rather via DocBook 5.x. This due to asciidoctor 2.x no longer supporting DocBook 4.x + 0015-DOC-Move-to-DocBook-5-when-using-asciidoctor.patch- Increase size of ONTAP namespace path variable + 0014-nvme-cli-Increase-size-of-ONTAP-namespace-path-varia.patch - Fix failing service on devices without fc-hardware (bsc#1133594) + 0105-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch- Add new 'ontapdevices' command and corresponding documentation. Requested in (bsc#1131930). + 0011-nvme-cli-add-netapp-ontapdevices-command.patch + 0012-nvme-cli-add-netapp-ontapdevices-man-page.patch + 0104-nvme-cli-Fix-documentation-syntax-and-typo.patch - Revert stop-on-failure patch for connect-all, which caused unintended behaviour (bsc#1132124) + 0013-nvme-cli-Revert-stop-on-failure-with-connect-all.patch- Add nvmefc-connect.target to allow stopping the parameterized services (bsc#1127076). Also change the service type so udevd doesn't have to wait for the termination of the service process. + 0102-Add-nvmefc-connect.target.patch + 0103-Change-service-to-type-simple.patch- Regenerate documentation (bsc#1124713) * Add 0007-Regen-docs.patch - Minor cleanup for submit_io (bsc#1124713) * Add 0008-nvme-cli-minor-cleanup-for-submit_io.patch - Regenerate documentation ((bsc#1124713) * Add 0009-Regen-documentation.patch - Fix fc_trtype string (bsc#1124713) * Add 0010-nvme-cli-fix-fc-trtype-string.patch - Add 71-nvme-iopolicy-netapp.rules (bsc#1124564) * Add 0101-71-nvme-iopolicy-netapp.rules-add-default-rules-for-.patch- Build documents with asciidoctor (bsc#1075764)- Update to version 1.7: * Use tnvmcap register for creating namespace * don't execute a command if --dry-run is supplied * Remove trailing "\n" so that the output is valid json * nvme-cli: remove unnecessary assignments * nvme-print.c : fix ns-descs JSON output * nvme-cli: fix typo in json_print_list_items * nvme-get-property : Add documentation * fabrics: write ctrl_loss_tmo to fabrics device on connect * fabrics: write keep-alive-timeout to fabrics device on connect * nvme-models.c - search for pci.ids * nvme-cli add ns write protect feature support * nvme-cli: add minimal ana-log page support * nvme-cli: add ana-log documentation * Fix print format specifier for 64-bit * nvme-ana-log: fixup compiler warning in show_ana_log() * nvme-vendor: fixup c99 declaration in huawei plugin * nvme-discover: sanitize options * Fix nvme id namespace struct * nvme-cli: make show_registers_cap() static * nvme-cli: wdc-plugin mark array static declaration * nvme-cli: fix sparse warnings for declaration * nvme-cli: don't use unsigned for fd in lnvm-nvme.c * nvme-cli: remove always true condition for u8 * nvme-cli: fix dead-code nvmf log page discovery * nvme-cli: code cleanup for passthru() handlers * nvme-cli: fix scaandir() return value * nvme-cli: netapp plugin handle empty strings * nvme-cli: Fix the displayed metadata length value on Big Endian systems. * nvme list : fix nvme list output if identify failed on device * nvme-cli: use uniform error message for open * nvme-cli: fix indentation * nvme-cli: make wdc plug-in functions static * nvme-cli: mark functions static * nvme-cli: make malloc error handling uniform * Enlarge local char[] so snprintf(3) can't truncate path. * fabrics: make some arguments integers * fabrics: don't fail empty discovery log page * nvme: commonize subsystems info in a helper * fabrics: add disconnect-all command * Regen documentation * attach-ns : fix segfault for ctrl list wrong input * nvme-discover: Retry discovery log if the generation counter changes * nvme-ioctl: retrieve log pages in 4k chunks * nvme-discover: Re-check generation counter after log page transfer * seagate-nvme: fixup coding style * nvme-cli: Add 'rae' argument to nvme_get_log() * nvme-cli: kill nvme_passthru_admin() * nvme-cli: print "\n" after nvme list-subsys -o json * nvme-cli: tests: fix fw_log test coding style * nvme-cli: tests: fix id_ctrl test coding style * nvme-cli: tests: fix id_ns test coding style * nvme-cli: tests: Add get_id_ctrl function * Update gitignore for generated test files * Add PCI device id checking for the WDC plugin commands. * Fix nvme test device selection to use controller value defined in the config.json file. Before this fix, the value was hard coded to nvme0. * nvme-cli: prevent resv action field overflow * nvme-cli: report subsystem-reset not supported by controller * nvme-cli: fix indentation for dir_[send/receive] * nvme-cli: make read error handling uniform * Use sys/ioctl.h to pull in definitions. * Remove unnecessary asm/byteorder.h * Remove unnecessary linux/types.h include. * Include libgen.h for basename prototype. * Include sys/stat.h * nvme-cli: remove endian.h * We don't need to include linux/types.h here. * Initialize line. * Use standard interfaces to get timezone offsets. * nvme-cli: fix ioctl argument * nvme-cli: fix a typo * Enable code block syntax highlight in README.md * Makefile: fix bash completion install path * NVMe-CLI WDC Plugin - Simplify the device id checking routines. * nvme-cli: Add wdc-plugin command vs-internal-log and update wdc-plug cap-diag command with transfer-size parameter. * nvme-cli: Add help text for wdc-plugin command vs-internal-log. Update help text for wdc-plugin command cap-diag. * Update documentation * nvme.spec.in : fix bash completion path, require * nvme-cli wdc plugin: Add get pfail dump command. * nvme-cli wdc plugin: Add documentation for pfail dump. * Re-gen documentation for new files * wdc: Fix strncpy warning * Refactor plugins in a file hierarchy * nvme-cli: fix sanitize status endianness * nvme-cli: fix ana-log endianness * wdc: Use const string for suffix * nvme-cli:fix a typo in SELF-TEST log * nvme-cli: fix a typo * nvme-cli: fix array len to hold string of size 4 * nvme-cli: fix endianness for the structure field * nvme: Handle supported capabilities result for get features * connect-all: special treatment to EALREADY afetr write to /dev/nvme-fabrics * Added zsh completion installation * nvme-cli: fix a typo * nvme: fixup ANA group descriptor offset * nvme: introduce get_nvme_ctrl_attr() * nvme: print out controller state for 'list-subsys' * nvme-list-subsys: Add device name argument and print out ANA state * list-subsys: Preserve line breaks and spaces * Regen documentation * In json output, if the commands add zero length string, it occur allocation fail & abort (cannot display empty value) * Fix printing of large ANAGRPID values * micron-nvme: Replace direct use of ioctl * Fix printing of large ANAGRPID values * Fix typos in docs * Fix typos in tests and utils * fabrics: support fabrics sq flow control disable * fabrics: use trtype_str when parsing a discovery log entry * nvme: Add TCP transport * fabrics: add tcp port tsas decoding * fabrics: add transport header and data digest * nvme-ioctl: clear rae for discovery log pages * Added support for virtualization-management command * nvme-cli: Don't print result on passthru error * nvme-cli: readme: fix typo in Alpine distro support * Added gentoo to README.md * fabrics: pass in number of write queues * fabrics: pass in number of polling queues * Update documentation * README: update Arch Linux install instructions * fabrics: allow nr_io/write/poll_queues and queue size to discovery * nvme: Adding a block size selector to format * nvme: Regenerate documentation * timeout option added to ns_create/delete (#440) * nvme: Remove duplicate error message * rpm spec file: add zsh completion (#447) * nvme: Release 1.7 - Drop obsolete patches: - 0001-Use-tnvmcap-register-for-creating-namespace.patch - 0002-don-t-execute-a-command-if-dry-run-is-supplied.patch - 0003-Remove-trailing-n-so-that-the-output-is-valid-json.patch - 0004-nvme-cli-remove-unnecessary-assignments.patch - 0005-nvme-print.c-fix-ns-descs-JSON-output.patch - 0006-nvme-cli-fix-typo-in-json_print_list_items.patch - 0007-nvme-get-property-Add-documentation.patch - 0008-fabrics-write-ctrl_loss_tmo-to-fabrics-device-on-con.patch - 0009-fabrics-write-keep-alive-timeout-to-fabrics-device-o.patch - 0010-nvme-models.c-search-for-pci.ids.patch - 0011-nvme-cli-add-ns-write-protect-feature-support.patch - 0012-nvme-cli-add-minimal-ana-log-page-support.patch - 0013-nvme-cli-add-ana-log-documentation.patch - 0014-Fix-print-format-specifier-for-64-bit.patch - 0015-nvme-ana-log-fixup-compiler-warning-in-show_ana_log.patch - 0016-nvme-vendor-fixup-c99-declaration-in-huawei-plugin.patch - 0017-nvme-discover-sanitize-options.patch - 0018-Fix-nvme-id-namespace-struct.patch - 0019-nvme-cli-make-show_registers_cap-static.patch - 0020-nvme-cli-wdc-plugin-mark-array-static-declaration.patch - 0021-nvme-cli-fix-sparse-warnings-for-declaration.patch - 0022-nvme-cli-don-t-use-unsigned-for-fd-in-lnvm-nvme.c.patch - 0023-nvme-cli-remove-always-true-condition-for-u8.patch - 0024-nvme-cli-fix-dead-code-nvmf-log-page-discovery.patch - 0025-nvme-cli-code-cleanup-for-passthru-handlers.patch - 0026-nvme-cli-fix-scaandir-return-value.patch - 0027-nvme-cli-netapp-plugin-handle-empty-strings.patch - 0028-nvme-cli-Fix-the-displayed-metadata-length-value-on-.patch - 0029-nvme-list-fix-nvme-list-output-if-identify-failed-on.patch - 0030-nvme-cli-use-uniform-error-message-for-open.patch - 0031-nvme-cli-fix-indentation.patch - 0032-nvme-cli-make-wdc-plug-in-functions-static.patch - 0033-nvme-cli-mark-functions-static.patch - 0034-nvme-cli-make-malloc-error-handling-uniform.patch - 0035-Enlarge-local-char-so-snprintf-3-can-t-truncate-path.patch - 0036-fabrics-make-some-arguments-integers.patch - 0037-fabrics-don-t-fail-empty-discovery-log-page.patch - 0038-nvme-commonize-subsystems-info-in-a-helper.patch - 0039-fabrics-add-disconnect-all-command.patch - 0040-Regen-documentation.patch - 0041-attach-ns-fix-segfault-for-ctrl-list-wrong-input.patch - 0042-nvme-discover-Retry-discovery-log-if-the-generation-.patch - 0043-nvme-ioctl-retrieve-log-pages-in-4k-chunks.patch - 0044-nvme-discover-Re-check-generation-counter-after-log-.patch - 0045-seagate-nvme-fixup-coding-style.patch - 0046-nvme-cli-Add-rae-argument-to-nvme_get_log.patch - 0047-nvme-cli-kill-nvme_passthru_admin.patch - 0048-nvme-cli-print-n-after-nvme-list-subsys-o-json.patch - 0049-nvme-cli-tests-fix-fw_log-test-coding-style.patch - 0050-nvme-cli-tests-fix-id_ctrl-test-coding-style.patch - 0051-nvme-cli-tests-fix-id_ns-test-coding-style.patch - 0052-nvme-cli-tests-Add-get_id_ctrl-function.patch - 0054-Add-PCI-device-id-checking-for-the-WDC-plugin-comman.patch - 0055-Fix-nvme-test-device-selection-to-use-controller-val.patch - 0056-nvme-cli-prevent-resv-action-field-overflow.patch - 0057-nvme-cli-report-subsystem-reset-not-supported-by-con.patch - 0058-nvme-cli-fix-indentation-for-dir_-send-receive.patch - 0059-nvme-cli-make-read-error-handling-uniform.patch - 0060-Use-sys-ioctl.h-to-pull-in-definitions.patch - 0061-Remove-unnecessary-asm-byteorder.h.patch - 0062-Remove-unnecessary-linux-types.h-include.patch - 0063-Include-libgen.h-for-basename-prototype.patch - 0064-Include-sys-stat.h.patch - 0065-nvme-cli-remove-endian.h.patch - 0066-We-don-t-need-to-include-linux-types.h-here.patch - 0067-Initialize-line.patch - 0068-Use-standard-interfaces-to-get-timezone-offsets.patch - 0069-nvme-cli-fix-ioctl-argument.patch - 0070-nvme-cli-fix-a-typo.patch - 0071-Enable-code-block-syntax-highlight-in-README.md.patch - 0072-Makefile-fix-bash-completion-install-path.patch - 0073-NVMe-CLI-WDC-Plugin-Simplify-the-device-id-checking-.patch - 0074-nvme-cli-Add-wdc-plugin-command-vs-internal-log-and-.patch - 0075-nvme-cli-Add-help-text-for-wdc-plugin-command-vs-int.patch - 0076-Update-documentation.patch - 0077-nvme.spec.in-fix-bash-completion-path-require.patch - 0078-nvme-cli-wdc-plugin-Add-get-pfail-dump-command.patch - 0079-nvme-cli-wdc-plugin-Add-documentation-for-pfail-dump.patch - 0080-Re-gen-documentation-for-new-files.patch - 0081-wdc-Fix-strncpy-warning.patch - 0082-Refactor-plugins-in-a-file-hierarchy.patch - 0083-nvme-cli-fix-sanitize-status-endianness.patch - 0084-nvme-cli-fix-ana-log-endianness.patch - 0085-wdc-Use-const-string-for-suffix.patch - 0086-nvme-cli-fix-a-typo-in-SELF-TEST-log.patch - 0087-nvme-cli-fix-a-typo.patch - 0088-nvme-cli-fix-array-len-to-hold-string-of-size-4.patch - 0089-nvme-cli-fix-endianness-for-the-structure-field.patch - 0090-nvme-Handle-supported-capabilities-result-for-get-fe.patch - 0091-connect-all-special-treatment-to-EALREADY-afetr-writ.patch - 0092-Added-zsh-completion-installation.patch - 0093-nvme-cli-fix-a-typo.patch - 0094-nvme-fixup-ANA-group-descriptor-offset.patch - 0095-nvme-introduce-get_nvme_ctrl_attr.patch - 0096-nvme-print-out-controller-state-for-list-subsys.patch - 0097-nvme-list-subsys-Add-device-name-argument-and-print-.patch - 0098-list-subsys-Preserve-line-breaks-and-spaces.patch - 0099-Regen-documentation.patch - 0100-In-json-output-if-the-commands-add-zero-length-strin.patch - 0101-Fix-printing-of-large-ANAGRPID-values.patch - 0102-micron-nvme-Replace-direct-use-of-ioctl.patch - 0104-Fix-typos-in-docs.patch - 0105-Fix-typos-in-tests-and-utils.patch - 0106-fabrics-support-fabrics-sq-flow-control-disable.patch - 0107-fabrics-use-trtype_str-when-parsing-a-discovery-log-.patch - 0108-nvme-Add-TCP-transport.patch - 0109-fabrics-add-tcp-port-tsas-decoding.patch - 0110-fabrics-add-transport-header-and-data-digest.patch - 0111-nvme-ioctl-clear-rae-for-discovery-log-pages.patch - 0112-Added-support-for-virtualization-management-command.patch - 0113-nvme-cli-Don-t-print-result-on-passthru-error.patch - 0114-nvme-cli-readme-fix-typo-in-Alpine-distro-support.patch - 0115-Added-gentoo-to-README.md.patch - 0116-fabrics-pass-in-number-of-write-queues.patch - 0117-fabrics-pass-in-number-of-polling-queues.patch - 0118-Update-documentation.patch - 0119-README-update-Arch-Linux-install-instructions.patch - 0120-fabrics-allow-nr_io-write-poll_queues-and-queue-size.patch - 0121-nvme-Adding-a-block-size-selector-to-format.patch - 0122-nvme-Regenerate-documentation.patch - 0123-timeout-option-added-to-ns_create-delete-440.patch - 0124-nvme-Remove-duplicate-error-message.patch - Add patches from upstream git tree (FATE#326925) + 0001-wdc-Change-device-capability-checking.patch + 0002-wdc-Add-additional-device-for-vs-internal-log.patch + 0003-generate-new-documentation.patch + 0004-Fix-compilation-with-GCC-8.patch + 0005-Fix-CFLAGS-parameter.patch + 0006-nvme-cli-fix-compilation-with-uint64_t-cast.patch - Add FC-NVMe autoconnect scripts (bsc#1103354) + 0100-nvme_fc-auto-connect-scripts.patch- Use tnvmcap register for creating namespace (FATE#326925) + 0001-Use-tnvmcap-register-for-creating-namespace.patch - don't execute a command if --dry-run is supplied (FATE#326925) + 0002-don-t-execute-a-command-if-dry-run-is-supplied.patch - Remove trailing "\n" so that the output is valid json (FATE#326925) + 0003-Remove-trailing-n-so-that-the-output-is-valid-json.patch - nvme-cli: remove unnecessary assignments (FATE#326925) + 0004-nvme-cli-remove-unnecessary-assignments.patch - nvme-print.c : fix ns-descs JSON output (FATE#326925) + 0005-nvme-print.c-fix-ns-descs-JSON-output.patch - nvme-cli: fix typo in json_print_list_items (FATE#326925) + 0006-nvme-cli-fix-typo-in-json_print_list_items.patch - nvme-get-property : Add documentation (FATE#326925) + 0007-nvme-get-property-Add-documentation.patch - fabrics: write ctrl_loss_tmo to fabrics device on connect (FATE#326925) + 0008-fabrics-write-ctrl_loss_tmo-to-fabrics-device-on-con.patch - fabrics: write keep-alive-timeout to fabrics device on (FATE#326925) + 0009-fabrics-write-keep-alive-timeout-to-fabrics-device-o.patch - nvme-models.c - search for pci.ids (FATE#326925) + 0010-nvme-models.c-search-for-pci.ids.patch - nvme-cli add ns write protect feature support (FATE#326925) + 0011-nvme-cli-add-ns-write-protect-feature-support.patch - nvme-cli: add minimal ana-log page support (FATE#326925) + 0012-nvme-cli-add-minimal-ana-log-page-support.patch - nvme-cli: add ana-log documentation (FATE#326925) + 0013-nvme-cli-add-ana-log-documentation.patch - Fix print format specifier for 64-bit (FATE#326925) + 0014-Fix-print-format-specifier-for-64-bit.patch - nvme-ana-log: fixup compiler warning in show_ana_log() (FATE#326925) + 0015-nvme-ana-log-fixup-compiler-warning-in-show_ana_log.patch - nvme-vendor: fixup c99 declaration in huawei plugin (FATE#326925) + 0016-nvme-vendor-fixup-c99-declaration-in-huawei-plugin.patch - nvme-discover: sanitize options (FATE#326925) + 0017-nvme-discover-sanitize-options.patch - Fix nvme id namespace struct (FATE#326925) + 0018-Fix-nvme-id-namespace-struct.patch - nvme-cli: make show_registers_cap() static (FATE#326925) + 0019-nvme-cli-make-show_registers_cap-static.patch - nvme-cli: wdc-plugin mark array static declaration (FATE#326925) + 0020-nvme-cli-wdc-plugin-mark-array-static-declaration.patch - nvme-cli: fix sparse warnings for declaration (FATE#326925) + 0021-nvme-cli-fix-sparse-warnings-for-declaration.patch - nvme-cli: don't use unsigned for fd in lnvm-nvme.c (FATE#326925) + 0022-nvme-cli-don-t-use-unsigned-for-fd-in-lnvm-nvme.c.patch - nvme-cli: remove always true condition for u8 (FATE#326925) + 0023-nvme-cli-remove-always-true-condition-for-u8.patch - nvme-cli: fix dead-code nvmf log page discovery (FATE#326925) + 0024-nvme-cli-fix-dead-code-nvmf-log-page-discovery.patch - nvme-cli: code cleanup for passthru() handlers (FATE#326925) + 0025-nvme-cli-code-cleanup-for-passthru-handlers.patch - nvme-cli: fix scaandir() return value (FATE#326925) + 0026-nvme-cli-fix-scaandir-return-value.patch - nvme-cli: netapp plugin handle empty strings (FATE#326925) + 0027-nvme-cli-netapp-plugin-handle-empty-strings.patch - nvme-cli: Fix the displayed metadata length value on Big (FATE#326925) + 0028-nvme-cli-Fix-the-displayed-metadata-length-value-on-.patch - nvme list : fix nvme list output if identify failed on device (FATE#326925) + 0029-nvme-list-fix-nvme-list-output-if-identify-failed-on.patch - nvme-cli: use uniform error message for open (FATE#326925) + 0030-nvme-cli-use-uniform-error-message-for-open.patch - nvme-cli: use uniform error message for open (FATE#326925) + 0030-nvme-cli-use-uniform-error-message-for-open.patch~ - nvme-cli: fix indentation (FATE#326925) + 0031-nvme-cli-fix-indentation.patch - nvme-cli: make wdc plug-in functions static (FATE#326925) + 0032-nvme-cli-make-wdc-plug-in-functions-static.patch - nvme-cli: mark functions static (FATE#326925) + 0033-nvme-cli-mark-functions-static.patch - nvme-cli: make malloc error handling uniform (FATE#326925) + 0034-nvme-cli-make-malloc-error-handling-uniform.patch - Enlarge local char[] so snprintf(3) can't truncate path. (FATE#326925) + 0035-Enlarge-local-char-so-snprintf-3-can-t-truncate-path.patch - fabrics: make some arguments integers (FATE#326925) + 0036-fabrics-make-some-arguments-integers.patch - fabrics: don't fail empty discovery log page (FATE#326925) + 0037-fabrics-don-t-fail-empty-discovery-log-page.patch - nvme: commonize subsystems info in a helper (FATE#326925) + 0038-nvme-commonize-subsystems-info-in-a-helper.patch - fabrics: add disconnect-all command (FATE#326925) + 0039-fabrics-add-disconnect-all-command.patch - Regen documentation (FATE#326925) + 0040-Regen-documentation.patch - attach-ns : fix segfault for ctrl list wrong input (FATE#326925) + 0041-attach-ns-fix-segfault-for-ctrl-list-wrong-input.patch - nvme-discover: Retry discovery log if the generation counter (FATE#326925) + 0042-nvme-discover-Retry-discovery-log-if-the-generation-.patch - nvme-ioctl: retrieve log pages in 4k chunks (FATE#326925) + 0043-nvme-ioctl-retrieve-log-pages-in-4k-chunks.patch - nvme-discover: Re-check generation counter after log page (FATE#326925) + 0044-nvme-discover-Re-check-generation-counter-after-log-.patch - seagate-nvme: fixup coding style (FATE#326925) + 0045-seagate-nvme-fixup-coding-style.patch - nvme-cli: Add 'rae' argument to nvme_get_log() (FATE#326925) + 0046-nvme-cli-Add-rae-argument-to-nvme_get_log.patch - nvme-cli: kill nvme_passthru_admin() (FATE#326925) + 0047-nvme-cli-kill-nvme_passthru_admin.patch - nvme-cli: print "\n" after nvme list-subsys -o json (FATE#326925) + 0048-nvme-cli-print-n-after-nvme-list-subsys-o-json.patch - nvme-cli: tests: fix fw_log test coding style (FATE#326925) + 0049-nvme-cli-tests-fix-fw_log-test-coding-style.patch - nvme-cli: tests: fix id_ctrl test coding style (FATE#326925) + 0050-nvme-cli-tests-fix-id_ctrl-test-coding-style.patch - nvme-cli: tests: fix id_ns test coding style (FATE#326925) + 0051-nvme-cli-tests-fix-id_ns-test-coding-style.patch - nvme-cli: tests: Add get_id_ctrl function (FATE#326925) + 0052-nvme-cli-tests-Add-get_id_ctrl-function.patch - Add PCI device id checking for the WDC plugin commands. (FATE#326925) + 0054-Add-PCI-device-id-checking-for-the-WDC-plugin-comman.patch - Fix nvme test device selection to use controller value (FATE#326925) + 0055-Fix-nvme-test-device-selection-to-use-controller-val.patch - nvme-cli: prevent resv action field overflow (FATE#326925) + 0056-nvme-cli-prevent-resv-action-field-overflow.patch - nvme-cli: report subsystem-reset not supported by controller (FATE#326925) + 0057-nvme-cli-report-subsystem-reset-not-supported-by-con.patch - nvme-cli: fix indentation for dir_[send/receive] (FATE#326925) + 0058-nvme-cli-fix-indentation-for-dir_-send-receive.patch - nvme-cli: make read error handling uniform (FATE#326925) + 0059-nvme-cli-make-read-error-handling-uniform.patch - Use sys/ioctl.h to pull in definitions. (FATE#326925) + 0060-Use-sys-ioctl.h-to-pull-in-definitions.patch - Remove unnecessary asm/byteorder.h (FATE#326925) + 0061-Remove-unnecessary-asm-byteorder.h.patch - Remove unnecessary linux/types.h include. (FATE#326925) + 0062-Remove-unnecessary-linux-types.h-include.patch - Include libgen.h for basename prototype. (FATE#326925) + 0063-Include-libgen.h-for-basename-prototype.patch - Include sys/stat.h (FATE#326925) + 0064-Include-sys-stat.h.patch - nvme-cli: remove endian.h (FATE#326925) + 0065-nvme-cli-remove-endian.h.patch - We don't need to include linux/types.h here. (FATE#326925) + 0066-We-don-t-need-to-include-linux-types.h-here.patch - Initialize line. (FATE#326925) + 0067-Initialize-line.patch - Use standard interfaces to get timezone offsets. (FATE#326925) + 0068-Use-standard-interfaces-to-get-timezone-offsets.patch - nvme-cli: fix ioctl argument (FATE#326925) + 0069-nvme-cli-fix-ioctl-argument.patch - nvme-cli: fix a typo (FATE#326925) + 0070-nvme-cli-fix-a-typo.patch - Enable code block syntax highlight in README.md (FATE#326925) + 0071-Enable-code-block-syntax-highlight-in-README.md.patch - Makefile: fix bash completion install path (FATE#326925) + 0072-Makefile-fix-bash-completion-install-path.patch - NVMe-CLI WDC Plugin - Simplify the device id checking (FATE#326925) + 0073-NVMe-CLI-WDC-Plugin-Simplify-the-device-id-checking-.patch - nvme-cli: Add wdc-plugin command vs-internal-log and update (FATE#326925) + 0074-nvme-cli-Add-wdc-plugin-command-vs-internal-log-and-.patch - nvme-cli: Add help text for wdc-plugin command (FATE#326925) + 0075-nvme-cli-Add-help-text-for-wdc-plugin-command-vs-int.patch - Update documentation (FATE#326925) + 0076-Update-documentation.patch - nvme.spec.in : fix bash completion path, require (FATE#326925) + 0077-nvme.spec.in-fix-bash-completion-path-require.patch - nvme-cli wdc plugin: Add get pfail dump command. (FATE#326925) + 0078-nvme-cli-wdc-plugin-Add-get-pfail-dump-command.patch - nvme-cli wdc plugin: Add documentation for pfail dump. (FATE#326925) + 0079-nvme-cli-wdc-plugin-Add-documentation-for-pfail-dump.patch - Re-gen documentation for new files (FATE#326925) + 0080-Re-gen-documentation-for-new-files.patch - wdc: Fix strncpy warning (FATE#326925) + 0081-wdc-Fix-strncpy-warning.patch - Refactor plugins in a file hierarchy (FATE#326925) + 0082-Refactor-plugins-in-a-file-hierarchy.patch - nvme-cli: fix sanitize status endianness (FATE#326925) + 0083-nvme-cli-fix-sanitize-status-endianness.patch - nvme-cli: fix ana-log endianness (FATE#326925) + 0084-nvme-cli-fix-ana-log-endianness.patch - wdc: Use const string for suffix (FATE#326925) + 0085-wdc-Use-const-string-for-suffix.patch - nvme-cli:fix a typo in SELF-TEST log (FATE#326925) + 0086-nvme-cli-fix-a-typo-in-SELF-TEST-log.patch - nvme-cli: fix a typo (FATE#326925) + 0087-nvme-cli-fix-a-typo.patch - nvme-cli: fix array len to hold string of size 4 (FATE#326925) + 0088-nvme-cli-fix-array-len-to-hold-string-of-size-4.patch - nvme-cli: fix endianness for the structure field (FATE#326925) + 0089-nvme-cli-fix-endianness-for-the-structure-field.patch - nvme: Handle supported capabilities result for get features (FATE#326925) + 0090-nvme-Handle-supported-capabilities-result-for-get-fe.patch - connect-all: special treatment to EALREADY afetr write to (FATE#326925) + 0091-connect-all-special-treatment-to-EALREADY-afetr-writ.patch - Added zsh completion installation (FATE#326925) + 0092-Added-zsh-completion-installation.patch - nvme-cli: fix a typo (FATE#326925) + 0093-nvme-cli-fix-a-typo.patch - nvme: fixup ANA group descriptor offset (FATE#326925) + 0094-nvme-fixup-ANA-group-descriptor-offset.patch - nvme: introduce get_nvme_ctrl_attr() (FATE#326925) + 0095-nvme-introduce-get_nvme_ctrl_attr.patch - nvme: print out controller state for 'list-subsys' (FATE#326925) + 0096-nvme-print-out-controller-state-for-list-subsys.patch - nvme-list-subsys: Add device name argument and print out ANA (FATE#326925) + 0097-nvme-list-subsys-Add-device-name-argument-and-print-.patch - list-subsys: Preserve line breaks and spaces (FATE#326925) + 0098-list-subsys-Preserve-line-breaks-and-spaces.patch - Regen documentation (FATE#326925) + 0099-Regen-documentation.patch - In json output, if the commands add zero length string, it (FATE#326123) + 0100-In-json-output-if-the-commands-add-zero-length-strin.patch - Fix printing of large ANAGRPID values (FATE#326123) + 0101-Fix-printing-of-large-ANAGRPID-values.patch - micron-nvme: Replace direct use of ioctl (FATE#326123) + 0102-micron-nvme-Replace-direct-use-of-ioctl.patch - Fix printing of large ANAGRPID values (FATE#326123) + 0103-Fix-printing-of-large-ANAGRPID-values.patch - Fix typos in docs (FATE#326123) + 0104-Fix-typos-in-docs.patch - Fix typos in tests and utils (FATE#326123) + 0105-Fix-typos-in-tests-and-utils.patch - fabrics: support fabrics sq flow control disable (FATE#326123) + 0106-fabrics-support-fabrics-sq-flow-control-disable.patch - fabrics: use trtype_str when parsing a discovery log entry (FATE#326123) + 0107-fabrics-use-trtype_str-when-parsing-a-discovery-log-.patch - nvme: Add TCP transport (FATE#326123) + 0108-nvme-Add-TCP-transport.patch - fabrics: add tcp port tsas decoding (FATE#326123) + 0109-fabrics-add-tcp-port-tsas-decoding.patch - fabrics: add transport header and data digest (FATE#326123) + 0110-fabrics-add-transport-header-and-data-digest.patch - nvme-ioctl: clear rae for discovery log pages (FATE#326123) + 0111-nvme-ioctl-clear-rae-for-discovery-log-pages.patch - Added support for virtualization-management command (FATE#326123) + 0112-Added-support-for-virtualization-management-command.patch - nvme-cli: Don't print result on passthru error (FATE#326123) + 0113-nvme-cli-Don-t-print-result-on-passthru-error.patch - nvme-cli: readme: fix typo in Alpine distro support (FATE#326123) + 0114-nvme-cli-readme-fix-typo-in-Alpine-distro-support.patch - Added gentoo to README.md (FATE#326123) + 0115-Added-gentoo-to-README.md.patch - fabrics: pass in number of write queues (FATE#326123) + 0116-fabrics-pass-in-number-of-write-queues.patch - fabrics: pass in number of polling queues (FATE#326123) + 0117-fabrics-pass-in-number-of-polling-queues.patch - Update documentation (FATE#326123) + 0118-Update-documentation.patch - README: update Arch Linux install instructions (FATE#326123) + 0119-README-update-Arch-Linux-install-instructions.patch - fabrics: allow nr_io/write/poll_queues and queue size to (FATE#326123) + 0120-fabrics-allow-nr_io-write-poll_queues-and-queue-size.patch - nvme: Adding a block size selector to format (FATE#326123) + 0121-nvme-Adding-a-block-size-selector-to-format.patch - nvme: Regenerate documentation (FATE#326123) + 0122-nvme-Regenerate-documentation.patch - timeout option added to ns_create/delete (#440) (FATE#326123) + 0123-timeout-option-added-to-ns_create-delete-440.patch - nvme: Remove duplicate error message (FATE#326123) + 0124-nvme-Remove-duplicate-error-message.patch- Update to version v1.6 (FATE#326139, FATE#326434, FATE#326558): * Release 1.6 * lightnvm: fix type coercion * fix reservation report 0's based dword count * nvme.c, list_ns: use le32_to_cpu in display * nvme-cli: adjust memset size for data buffer in submit_io * fabrics: omit newline character when reading nvme host nqn * fabrics: fail early if argconfig_parse failed * nvme-cli: print firmware activation notices support bit to id_ctrl * nvme-cli: add support of RAE * Add a single get-property command for NVMeOF. * nvme-ioctl.c : nvme_get_properties(): fix 64bit offset advance * nvme-cli: add support for DLFEAT * intel: fix latency stats printing * Update doc * nvme-cli: add changed-ns-list-log documentation * nvme-cli: add changed log ns support * NVMe-CLI Fix id-ns fpi field when Human Readable option selected. * Fix format specifier for 32-bit * Fix json output of 128-bit numbers * Replace host-gen telemetry short-option 'h' with 'g' * Add man pages for new device self test commands * Updating version to 1.1 * nvme-cli: Implement printing get NOPSC feature * nvme-cli: Implement printing the get Keep Alive Timer feature * nvme-cli: Implement printing the get host controlled thermal management feature. * nvme-cli: Implement printing the get timestamp feature. * Adding ppc big endian support * Revert "nvme-cli: Wait for device file if not present after successful add_ctrl" * Revert "nvme-cli: Add ioctl retry support for "connect-all"" * nvme-cli: fix compilation error * Updatign the plugin version * refactored some strings * Removed Duplicate commands. * Initial checkin for Seagate Plugin * nvme-cli: update the document for id-nvmset subcommand * nvme-cli: update new fields in id-ns subcommand * nvme-cli: add support for id-nvmset subcommand * Wrote man page for telemetry * nvme-cli: Implemented Device self test and log. * Add user parameter to specify data area region from telemetry log * Regenerate man pages * Documentation: allow to format with asciidoctor * Documentation: fix title markers * fabrics: add ctrl-loss-tmo to connect-all * nvme-cli: Modify Get Features-Asynchronous Event Configuration * Add open-channel 2.0 identify support * nvme-cli: fix show command typo * nvme-cli: Fix build breaks for GCC 8.1 Signed-off-by: Alexey Timofeyev * Add nvme id-ns command test * Add nvme id-ctrl command test * Add nvme fw-log commmand test * Add support for Micron plugin * nvme-cli: fix get_nsid() return value check * nvme-cli: allow block device for delete-ns * nvme-cli: Add ioctl retry support for "connect-all" * nvme-cli: Wait for device file if not present after successful add_ctrl * nvme-cli: show partial results if controller fails during list and list-subsys * fabrics: add option to supply keep-alive-timeout for connect-all * nvme-cli: fix perror when blkdev not given when get-ns-id * Fixes for log page access. * nvme-cli: make it return 0 in case of non-fabric for show-regs * Regenrate documentation * Documentation: add manpage entry for connect's --ctrl-loss-tmo setting * nvme-cli: fix leak in endurance_log command * nvme-cli: fix seg_fault by cmd options in endurance_log * Remove error print for telemetry log arg parse * Fix intel media wear json output * Use fixed-width integer types for long suffixed parameters * Add toshiba plugin to makefile rules. * Add toshiba plugin code and command documentation. * nvme-cli: Add friendly status messages * nvme-cli: correct spelling of discovery * get-log: Make log identifier a required parameter * nvme-cli: fabrics: Fix passing "host_traddr" for all transports * Log error incase of failure in get_nvme_subsystem_info() * Fix double free in list_subsys * Fix parameter descriptions * Add remaining fields from NVM Sets * Don't print non-existent command line options * Fixed a bug where cdw11 was being overwritten by cdw12 * Regenerate documentation * Add manpage for endurance log * nvme-cli: fix typo in 'disconnect' docs * Fix fabrics property commands * Fix endianess in WDC plugin. * Ignore cscope files * Add read-recover level feature decoding * Add support for NVMe Sets log page * Add support for decoding IO Determinism features * Add decoding for new controller attributes * Update makefile dependencies * nvme-cli: add netapp smdevices man page * nvme-cli: add NetApp plugin * Fix freeing wrong address * nvme-cli: make it use NVME_IDENTIFY_DATA_SIZE * nvme-cli: adjust json print according to uint format * nvme-cli: add helper for sanitize command * nvme-cli: telemetry-log add controller initiated log gathering * flush: Use device NSID if issuing through block device * NVMe-CLI Fix fw_log Command json output * nvme-cli: fix typo in Intel SMART json output * nvme-cli: update documentations to sync up with subcommands * nvme-cli: convert iekey into a no_argument parameter * nvme-cli: make return negative value in nvme_get_nsid() when not blkdev * nvme-cli: move print-function to nvme-print * nvme-cli: fix leaks in subcommands * nvme-cli: add print for command name to effects-log * nvme-cli: make it have bpid in cdw10 for fw-commit * nvme-cli: add command specific field to json output of error-log * nvme-cli: Fixed incosistency of error handling in intel plugin Signed-off-by: Oleksii Timofieiev * Use '-' for compounded word telemetry-log subcommand * Use NSID all for error log * nvme-cli: Implement nvme_get_log13 * nvme-cli: handle long commands in help message by adjusting minimal padding Signed-off-by: Oleksii Timofieiev * nvme-cli: wdc: Removed superfluous output in WDC plugin * NVMe-CLI WDC-Plugin Update drive essentials code with review comments. * nvme-cli: Add support of unsigned long long to json routines Signed-off-by: Oleksii Timofieiev * NVMe-CLI WDC-Plugin Add clear-pcie-corr documentation. * NVMe-CLI WDC-Plugin Add clear-pcie-corr command * NVMe-CLI WDC-Plugin Add drive-essentials documentation * NVMe-CLI WDC-Plugin Add drive-essentials command * nvme-cli: memblaze: add error return after parse_and_open() * nvme-cli: memblaze: fix memory leak in memblaze-nvme.c * nvme-cli: Implement get_telemetry_log from 1.3 spec * nvme/vendor: Add get log LSP/LSO fields from 1.3 spec * nvme-cli: lnvm: Make it return error status when argconfig_parse fails * nvme-cli: fix memory leak in passthru() * nvme-cli: wdc: fix mismatch in document for smart-add-log * nvme-cli: wdc: add const to descriptions * nvme-cli: fix memory leak in dir_receive() * nvme-cli: fix memory leak in sec_recv() * nvme-cli: fix memory leak in dir_send() * nvme-cli: fix memory leak in sec_send() * nvme-cli: fix memory leak in set_feature() * nvme-cli: fix memory leak in fw_download() * nvme-cli: fix memory leak in ns_descs() * nvme-cli: fix memory leak in list_ctrl() * nvme-cli: add error handling for a failure of malloc * nvme-cli: tests: fix typo in get_feature_test * nvme-cli: tests: remove nsid parameter in a testcase of error-log * nvme-cli: update documentation of effects-log * nvme-cli: add support for options to effects-log subcommand * nvme-cli: intel: add const to descriptions of subcommand option * nvme-cli: intel: add check for fd after open to intel commands * nvme-cli: intel: fix smart-log-add documentation * lightnvm: enable to set OP on target creation * nvme-cli: intel: update smart-log-add command documentation * nvme-cli: update error-log documentation * nvme-cli: lnvm: add human-readable print format to ns-id subcommand * nvme-cli: lnvm: add check for fd after open operation * nvme-cli: lnvm: remove unnecessary force parameter of ns-id in lnvm * nvme-cli: lnvm: add whitespace between words in a description * nvme-cli: add BPS bit field to CAP controller register * Update subcommand alias description in README.md * nvme-cli: add support for json output format of sanitize-log command * nvme-cli: Remove unnecessary nsid field in error-log * nvme-cli: add print for command specific info field of error log page * nvme-cli: update print for sanitize-log command with output-format * nvme-cli: make sanitize description const * Fix verbose decoding for coalescing aggregation time * Allow hierarchy of similiarly named plugins Drop: - 0001-nvme-cli-add-NetApp-plugin.patch - 0002-nvme-cli-add-netapp-smdevices-man-page.patch - 0003-get-log-Make-log-identifier-a-required-parameter.patch - 0004-Documentation-add-manpage-entry-for-connect-s-ctrl-l.patch - 0005-fabrics-add-option-to-supply-keep-alive-timeout-for.patch - 0006-fabrics-add-ctrl-loss-tmo-to-connect-all.patch - 0007-nvme-vendor-Add-get-log-LSP-LSO-fields-from-1.3-spec.patch - 0008-nvme-cli-Implement-nvme_get_log13.patch - 0009-nvme-cli-Add-support-of-unsigned-long-long-to-json-r.patch - 0010-nvme-cli-add-support-of-RAE.patch - 0011-nvme-cli-add-minimal-ana-log-page-support.patch - 0012-nvme-cli-add-ana-log-documentation.patch - 0013-nvme-discover-sanitize-options.patch - 0014-Fix-double-free-in-list_subsys.patch - 0015-Log-error-incase-of-failure-in-get_nvme_subsystem_in.patch - 0016-nvme-cli-move-print-function-to-nvme-print.patch - 0017-nvme-cli-show-partial-results-if-controller-fails-du.patch - 0018-nvme-list-subsys-Add-device-name-argument-and-print-.patch - 0019-nvme-discover-Retry-discovery-log-if-the-generation-.patch - 0020-nvme-cli-fabrics-Fix-passing-host_traddr-for-all-tra.patch - 0021-fabrics-write-ctrl_loss_tmo-to-fabrics-device-on-con.patch - 0022-fabrics-write-keep-alive-timeout-to-fabrics-device-o.patch- nvme-discover: Retry discovery log if the generation counter changes (bsc#1087848) + 0019-nvme-discover-Retry-discovery-log-if-the-generation-.patch - nvme-fabrics: Fix passing "host_traddr" for all transports (bsc#1084379) + 0020-nvme-cli-fabrics-Fix-passing-host_traddr-for-all-tra.patch - fabrics: write ctrl_loss_tmo to fabrics device on connect (bsc#1084379) + 0021-fabrics-write-ctrl_loss_tmo-to-fabrics-device-on-con.patch - fabrics: write keep-alive-timeout to fabrics device on connect (bsc#1090568) + 0022-fabrics-write-keep-alive-timeout-to-fabrics-device-o.patch- nvme-vendor: Add get_log LSP & LSO fields from 1.3 spec (bsc#1099018) + 0007-nvme-vendor-Add-get-log-LSP-LSO-fields-from-1.3-spec.patch - nvme-cli: Implement nvme_get_log13 (bsc#1099018) + 0008-nvme-cli-Implement-nvme_get_log13.patch - nvme-cli: Add support of unsigned long long to json (bsc#1099018) + 0009-nvme-cli-Add-support-of-unsigned-long-long-to-json-r.patch - nvme-cli: add support of RAE (bsc#1099018) + 0010-nvme-cli-add-support-of-RAE.patch - nvme-cli: add minimal ana-log page support (bsc#1099018) + 0011-nvme-cli-add-minimal-ana-log-page-support.patch - nvme-cli: add ana_log documentation (bsc#1099018) + 0012-nvme-cli-add-ana-log-documentation.patch - nvme-discover: sanitize options + 0013-nvme-discover-sanitize-options.patch - Fix double free in list_subsys + 0014-Fix-double-free-in-list_subsys.patch (bsc#1099018) - Log error in case of failure in get_nvme_subsystem (bsc#1099018) + 0015-Log-error-incase-of-failure-in-get_nvme_subsystem_in.patch - nvme-cli: move print function to nvme-print.c (bsc#1099018) + 0016-nvme-cli-move-print-function-to-nvme-print.patch - nvme-cli: show partial results if controller fails (bsc#1099018) + 0017-nvme-cli-show-partial-results-if-controller-fails-du.patch - nvme-list-subsys: Add device name argument and print ANA state (bsc#1099018) + 0018-nvme-list-subsys-Add-device-name-argument-and-print-.patch- Add ctrl-loss-tmo to connect-all command (bsc#1084379) + 0006-fabrics-add-ctrl-loss-tmo-to-connect-all.patch- Add keep-alive-tmo option to connect-all command (bsc#1090568) + 0005-fabrics-add-option-to-supply-keep-alive-timeout-for.patch- Add ctrl-loss-tmo option to fabrics connect manpage (bsc#1084379) + 0004-Documentation-add-manpage-entry-for-connect-s-ctrl-l.patch- Make log identifier a required parameter (bsc#1086240) + 0003-get-log-Make-log-identifier-a-required-parameter.patch- Add NetApp vendor plugin (bsc#1080672) + 0001-nvme-cli-add-NetApp-plugin.patch + 0002-nvme-cli-add-netapp-smdevices-man-page.patch- Update to version v1.5 (FATE#322735): * Remove upstreamed patches: - 0001-nvme-Introduce-new-list-subsys-command.patch - 0009-fabrics-also-set-queue_size-and-nr_io_queues-on-conn.patch * fabrics: also set queue_size and nr_io_queues on connect-all connects * nvme-cli: add duplicate_connect parameter support * nvme-cli : wdc-plugin Add support for WDC SN100 and SN200 devices. * Add AEN decoder helper to get-log * Regen documentation * Add Nix(OS) install instructions to the README * Fix the Markdown code for the Alpine install instructions * nvme-cli: make address print format more human-readable * intel-nvme: Fix compiler errors and warnings * Include sizing data in json output that's already included in the non-json results. * Cleanup variable definitions * Add command effects log page * Increase default format timeout * Revert "nvme-cli: add duplicate_connect parameter support" * nvme-cli: add duplicate_connect parameter support * nvme-cli: fix wrong bitmask in number of rpmb units. * nvme-cli: make command description const * nvme/id-ns: do not try to get namespace id from non-block device. * Fix typo in previous commit * Fix long suffix parse on 32-bit machines * Nitpicked a printing alignment issue with the id-ns vendor specific field * Avoid unnecessary abbreviation. * nvme/flush: explicitely close file descriptor * Fix memory leak * Add 'DEAC' support to write-zeroes command * Rebuild documentation * nvme-cli: resync nvme.h with the kernel's * NVMe-CLI : WDC-Plugin Updated Smart Log Command * NVMe-CLI : WDC-Plugin Documentation for Updated Smart Log Command * Regenerate documentation * nvme-cli: update show_registers_cc() to use nvme.h * nvme-cli: replace values of all namespaces with NVME_NSID_ALL * nvme-cli: add prints for new HMB identify fields of TP 4002 * Update get-feature help text * Improve code alignment on intel plugin * Update intel internal log man page. * nvme-cli/intel: Return if arg parsing returns error * nvme: add options for write command directives * Update documentation * Updated the human readable printing for the SGLS field in the id-ctrl command to be compliant with NVMe 1.3 * nvme: Introduce new 'list-subsys' command * nvme-cli: add support to get properties for NVMe over Fabric * nvme-cli: support to set the property for NVMe over Fabric * Reorder command list * Documentation fixes * nvme-cli: add support alias command with Firmware Activate * nvme-cli: update Firmware Commit with boot partition feature * nvme-cli: add command specific status of Firmware Commit * Update documentation to use aliases * nvme-cli: add prints of boot partition feature to show-regs * nvme-cli: Fix small mem leak. * Release v1.5- Add list-subs subcommand (bsc#1072813) + 0001-nvme-Introduce-new-list-subsys-command.patch- Update descriptions.- Update to version v1.4 (FATE#322735): * Fixup Security send/recv to read data from disk * Unbreak RPM build after bash completion files were moved in 7e4c7596 * fabrics: Fix disconnect_by_device from disconnecting instance 0 on error * lightnvm: allow to init target on factory mode * Fixed problem with security-recv binary output not working correctly * nvme-cli: return 0 if disconnect operation with cfg.nqn successfully * Fix compile for 32-bit * nvme-cli: Fix build on aarch64-linux-android-4.9 * nvme-cli: Huawei plug-in. * nvme-print: Fix line spacing on -H option * id-ctrl: remove new lines from json output * nvme-list: print empty lists when no devices are present * fabrics: add option to override drivers queue depth * nvme-cli: nvme-intel implement json output for smart-log * nvme-cli: Add parsing support for noiob * Fix potential device string truncation * fabrics: add option to override drivers queue depth also for connect-all command * Regenerate man-pages * Release v1.3 * nvme-print: Free only top-level json objects * fix use-after-free in pci.ids parsing * nvme-cli: add fields into identify controller data structure * nvme-cli: show more fields for id-ctrl * nvme-cli: id-ctrl: display additional fields * Show help when no or an invalid device is given * nvme-cli: add id-ctrl for nvme-huawei plug-in. * Fix spelling errors * fabrics: add hostid option to connect command * nvme-cli: add ns-descs subcommand * nvme-cli: Get Feature support for Extended Host Id * nvme-cli: Fix typo in Intel plugin and improve generic help text * Implement Intel Vendor specific logs * nvme-cli: add thermal management fields for smart-log * nvme-cli: add temperature sensor fields in json_smart_log * nvme-cli: add output-format discription for smart-log * Formatting update * Regenerate documentation * nvme-cli: add error message for nvme list. * Fix typo of flbas in nvme_create_max_ns_test * Show help for get-ns-id * Show help for nvme reset and subsystem-reset * nvme-cli: Extended Data Structure in resv-report * Update docs * resync nvme.h with the kernel nvme.h * nvme-cli : add support for sanitize command. * nvme-cli : add sanitize command documentation. * nvme-cli : add support for retrieving sanitize log. * nvme-cli : add sanitize-log command documentation. * fix build without libuuid * nvme-cli : wdc-plug-in : return on invalid input device. * nvme-cli : only print help text and return for nvme list -h option. * nvme-cli/list-ns: fix identifying active or allocated namespaces list * Fixed get_internal_log to parse the entire nlog and allow selection of specific regions to be parsed. * NVMe-CLI Fix Sanitize Command Parameter Types * Fix app tag and mask setting * Fix app tag field sizes * nvme-cli/list: fix when nvme device can not be open * nvme-cli/list: change fd returned by open operation from unsigned to signed. * Makefile: allow linker override for cross uuid test * nvme-cli: fix connecting failure due to invalid uuid format of hostid * nvme-cli/fabrics: Add ctrl-loss-tmo param to connect cmd * Fixing macro definitions to avoid issues when these are used in expressions * nvme-cli: add nvme directive command support * nvme-cli: add documentation for directive commands * fix for issue 219, show-regs reports AQA.ACQS and AQA.ASQS as bytes * nvme-cli: Fix nvme ns desc * new bit fields (6, 7, and 8) for OACS from NVMe rev 1.3 * added new bit field (6) to ONCS from NVMe rev 1.3 * nvme-cli: Describe action 3 of nvme activate * nvme-cli: generate spec-compliant UUID NQNs * NVMe-CLI Fixed Status Code check for reset type on fw-activate. * Added handling for temperature threshold values below 0C(273K) and removed buffer check for human readable output as Temperature threshold feature does not use Memory Buffer for Attributes * Update nvme.c * nvme-cli : Add Namespace Rescan Command * nvme-cli : Add man documentation files for ns-rescan command. * Version 1.4 Release * Drop upstream patches: - 0001-fabrics-add-option-to-override-drivers-queue-depth.patch - 0002-fabrics-add-option-to-override-drivers-queue-depth-a.patch - add-missing-nvme_id_crtl-fileds.patch - 0003-nvme-cli-show-more-fields-for-id-ctrl.patch - 0004-nvme-cli-id-ctrl-display-additional-fields.patch - 0005-nvme-cli-add-ns-descs-subcommand.patch - 0006-fabrics-add-hostid-option-to-connect-command.patch - 0007-nvme-cli-fix-connecting-failure-due-to-invalid-uuid-format.patch - 0008-nvme-cli-generate-spec-compliant-uuid-nqns.patch- allow override queue depth and nr io queues on connect-all (bsc#1063462) + 0009-fabrics-also-set-queue_size-and-nr_io_queues-on-conn.patch- Generate Spec compliant UUID NQNs (bsc#1057498) + 0008-nvme-cli-generate-spec-compliant-uuid-nqns.patch- Fix hostid parsing (bsc#1049272) + 0007-nvme-cli-fix-connecting-failure-due-to-invalid-uuid-format.patch- Add hostid option to connect command (bsc#1045293) + 0006-fabrics-add-hostid-option-to-connect-command.patch- Create nvme files and directories in /etc/nvme (bsc#1045931 )- Provide nvme ns-descs subcommand (bsc#1038235) + 0005-nvme-cli-add-ns-descs-subcommand.patch- Also re-build documentation on each build (bsc#1037297)- Add NVMe over Fabrics specific id-ctrl fields (bsc#1037293) + add-missing-nvme_id_crtl-fileds.patch + 0003-nvme-cli-show-more-fields-for-id-ctrl.patch + 0004-nvme-cli-id-ctrl-display-additional-fields.patch- Add possibility to change queue depth at connect time (bsc#1037297) + 0001-fabrics-add-option-to-override-drivers-queue-depth.patch + 0002-fabrics-add-option-to-override-drivers-queue-depth-a.patch- Update to version v1.2 (FATE#322735 ,bsc#1033410): * Include endian.h for byte/host order functions * nvme-cli: Add nvme hostnqn generation option * nvme.spec/debian: Auto generate host nqn as part of install * Documentation: Add entry for gen-hostnqn * Regenerate Documentation * Fix read/write man pages * get-features: Don't try to read the data buffer for sel == 3 * Documentation: fix location of device reset * Regen documentation * Remove debian/ directory * Remove pyc files generated by 'make test' * Moving the bash completion files to the standard * lightnvm: default to -1 on lun begin and end * nvme-cli: fabrics: Fix to pass "host_traddr" to the kernel driver. * nvme-cli: id-ctrl: Fix memory leak for JSON. * nvme-cli: id-ns: Fix memory leak for JSON. * nvme-cli: error-log: Fix memory leak for JSON. * nvme-cli: resv-report: Fix memory leak. * nvme-cli: smart-log: Fix memory leak for JSON. * nvme-cli: fw-log: Fix memory leak for JSON. * nvme-cli: json_add_smart_log(): Fix memory leak for JSON. * nvme-cli: smart-log: Allow negative values for temp sensors. * Don't print unimplemented sensor * Build without uuid * get-ns-id: Exit when no device provided. * nvme-cli: id-ctrl: Add vendor fields in JSON id-ctrl. * nvme-cli: nvme.c: Allow plug-ins to access to output formats and helper. * nvme-cli: Western Digital/HGST plug-in. * nvme-cli: Western Digital/HGST plug-in documentation. * : Correct NVMF enum values to match NVMe-oF rev 1.0 * fabrics: Handle space-padded TRSVCID and TRADDR fields * nvme-cli: bug-fix: use right file name for perror. * move show_intel_smart_log to intel-nvme.c * remove json_add_smart_log * remove nvme_intel_smart_log * move struct nvme_additional_smart_log to intel-nvme.c * nvme-cli/format: use existing LBAF if none requested * nvme-cli: Release v1.2- Update to upstream release v1.1 (FATE#322735) * This fixes multiple compiler warnings for 32-bit and other environments from v1.0, adds more documentation to fabrics, removes the libudev dependency entirely from this project, adds a framework for unit testing devices, and fixes usage for user defined install paths- Update to upstream release v0.9 - Remove merged remove-version-from-list.patch * New extensions, fabrics support, a bug fixes. The 'list' command is liberated from its udev dependency, and no longer requires CONFIG_IO_STRICT_DEVMEM be disabled.- Don't map controller registers in 'list' command (boo#986891) + remove-version-from-list.patch- Update to upstream release v0.8 - Remove merged patch 0001-bash-completion-Remove-shebang-line.patch * Code re-organized to support new extensions. While these are called "plugins", they currently have to be built into the executable. Support for dynamically loadable plugins is under consideration. * LightNVM is added as a built-in plugin. * Intel vendor specific commands and structure decodings are supported in a new intel plugin. * Support for NVMe-over-Fabrics * New output format "json" for a subset of commands that decode returned structures. * Lots of various documentation and minor code fixes.- Update to upstream release v0.7 + 0001-bash-completion-Remove-shebang-line.patch Keith writes: Just a few minor updates and documentation fixes. There is also a new option for passthrough commands that can be used to help detect data over/under run. Tagging a stable release so we can consider features that bring in other transports and third party extensions.- Exclude build on s390x (FATE#319560)- Update to upstream release v0.5 The v0.4 breakage should all be resolved now. Tagging release v0.5, and back to stability.- Update to upstream release v0.4- Fix display of version number (boo#966740)- Initial packaging for openSUSE/bin/sh/bin/sh/bin/sh/bin/shibs-power9-17 1723020449  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.8+44.gb56f5d9-150600.3.6.12.8+44.gb56f5d9-150600.3.6.10.2 nvmediscovery.confhostidhostnqnnvmefc-boot-connections.servicenvmf-autoconnect.servicenvmf-connect-nbft.servicenvmf-connect.targetnvmf-connect@.service65-persistent-net-nbft.rules70-nvmf-autoconnect.rules71-nvmf-netapp.rulesnvmercnvmefc-boot-connectionsrcnvmf-autoconnectrcnvmf-connectrcnvmf-connect-nbftnvme-cliREADME.mdnvme-cliLICENSEnvme-admin-passthru.1.gznvme-ana-log.1.gznvme-attach-ns.1.gznvme-boot-part-log.1.gznvme-capacity-mgmt.1.gznvme-changed-ns-list-log.1.gznvme-cmdset-ind-id-ns.1.gznvme-compare.1.gznvme-connect-all.1.gznvme-connect.1.gznvme-copy.1.gznvme-create-ns.1.gznvme-delete-ns.1.gznvme-dera-stat.1.gznvme-detach-ns.1.gznvme-device-self-test.1.gznvme-dim.1.gznvme-dir-receive.1.gznvme-dir-send.1.gznvme-disconnect-all.1.gznvme-disconnect.1.gznvme-discover.1.gznvme-dsm.1.gznvme-effects-log.1.gznvme-endurance-event-agg-log.1.gznvme-endurance-log.1.gznvme-error-log.1.gznvme-fdp-configs.1.gznvme-fdp-events.1.gznvme-fdp-set-events.1.gznvme-fdp-stats.1.gznvme-fdp-status.1.gznvme-fdp-update.1.gznvme-fdp-usage.1.gznvme-fid-support-effects-log.1.gznvme-flush.1.gznvme-format.1.gznvme-fw-commit.1.gznvme-fw-download.1.gznvme-fw-log.1.gznvme-gen-hostnqn.1.gznvme-get-feature.1.gznvme-get-lba-status.1.gznvme-get-log.1.gznvme-get-ns-id.1.gznvme-get-property.1.gznvme-help.1.gznvme-huawei-id-ctrl.1.gznvme-huawei-list.1.gznvme-id-ctrl.1.gznvme-id-domain.1.gznvme-id-iocs.1.gznvme-id-ns.1.gznvme-id-nvmset.1.gznvme-inspur-nvme-vendor-log.1.gznvme-intel-id-ctrl.1.gznvme-intel-internal-log.1.gznvme-intel-lat-stats.1.gznvme-intel-market-name.1.gznvme-intel-smart-log-add.1.gznvme-intel-temp-stats.1.gznvme-io-mgmt-recv.1.gznvme-io-mgmt-send.1.gznvme-io-passthru.1.gznvme-lba-status-log.1.gznvme-list-ctrl.1.gznvme-list-endgrp.1.gznvme-list-ns.1.gznvme-list-subsys.1.gznvme-list.1.gznvme-lockdown.1.gznvme-mi-cmd-support-effects-log.1.gznvme-micron-clear-pcie-errors.1.gznvme-micron-internal-log.1.gznvme-micron-nand-stats.1.gznvme-micron-pcie-stats.1.gznvme-micron-selective-download.1.gznvme-micron-smart-add-log.1.gznvme-micron-temperature-stats.1.gznvme-netapp-ontapdevices.1.gznvme-netapp-smdevices.1.gznvme-ns-descs.1.gznvme-ns-rescan.1.gznvme-nvm-id-ctrl.1.gznvme-nvme-mi-recv.1.gznvme-nvme-mi-send.1.gznvme-ocp-clear-fw-activate-history.1.gznvme-ocp-clear-pcie-correctable-error-counters.1.gznvme-ocp-eol-plp-failure-mode.1.gznvme-ocp-latency-monitor-log.1.gznvme-ocp-smart-add-log.1.gznvme-persistent-event-log.1.gznvme-pred-lat-event-agg-log.1.gznvme-predictable-lat-log.1.gznvme-primary-ctrl-caps.1.gznvme-read.1.gznvme-reset.1.gznvme-resv-acquire.1.gznvme-resv-notif-log.1.gznvme-resv-register.1.gznvme-resv-release.1.gznvme-resv-report.1.gznvme-rpmb.1.gznvme-sanitize-log.1.gznvme-sanitize.1.gznvme-seagate-clear-fw-activate-history.1.gznvme-seagate-clear-pcie-correctable-errors.1.gznvme-seagate-cloud-SSD-plugin-version.1.gznvme-seagate-get-ctrl-tele.1.gznvme-seagate-get-host-tele.1.gznvme-seagate-help.1.gznvme-seagate-plugin-version.1.gznvme-seagate-version.1.gznvme-seagate-vs-fw-activate-history.1.gznvme-seagate-vs-internal-log.1.gznvme-seagate-vs-log-page-sup.1.gznvme-seagate-vs-pcie-stats.1.gznvme-seagate-vs-smart-add-log.1.gznvme-seagate-vs-temperature-stats.1.gznvme-security-recv.1.gznvme-security-send.1.gznvme-self-test-log.1.gznvme-set-feature.1.gznvme-set-property.1.gznvme-show-hostnqn.1.gznvme-show-regs.1.gznvme-show-topology.1.gznvme-smart-log.1.gznvme-subsystem-reset.1.gznvme-supported-log-pages.1.gznvme-telemetry-log.1.gznvme-tls-key.1.gznvme-toshiba-clear-pcie-correctable-errors.1.gznvme-toshiba-vs-internal-log.1.gznvme-toshiba-vs-smart-add-log.1.gznvme-transcend-badblock.1.gznvme-transcend-healthvalue.1.gznvme-verify.1.gznvme-virtium-save-smart-to-vtview-log.1.gznvme-virtium-show-identify.1.gznvme-wdc-cap-diag.1.gznvme-wdc-capabilities.1.gznvme-wdc-clear-assert-dump.1.gznvme-wdc-clear-fw-activate-history.1.gznvme-wdc-clear-pcie-correctable-errors.1.gznvme-wdc-cloud-SSD-plugin-version.1.gznvme-wdc-cloud-boot-SSD-version.1.gznvme-wdc-drive-essentials.1.gznvme-wdc-drive-log.1.gznvme-wdc-drive-resize.1.gznvme-wdc-enc-get-log.1.gznvme-wdc-get-crash-dump.1.gznvme-wdc-get-dev-capabilities-log.1.gznvme-wdc-get-drive-status.1.gznvme-wdc-get-error-recovery-log.1.gznvme-wdc-get-latency-monitor-log.1.gznvme-wdc-get-pfail-dump.1.gznvme-wdc-get-unsupported-reqs-log.1.gznvme-wdc-id-ctrl.1.gznvme-wdc-log-page-directory.1.gznvme-wdc-namespace-resize.1.gznvme-wdc-purge-monitor.1.gznvme-wdc-purge.1.gznvme-wdc-vs-cloud-log.1.gznvme-wdc-vs-device-waf.1.gznvme-wdc-vs-drive-info.1.gznvme-wdc-vs-error-reason-identifier.1.gznvme-wdc-vs-fw-activate-history.1.gznvme-wdc-vs-hw-rev-log.1.gznvme-wdc-vs-internal-log.1.gznvme-wdc-vs-nand-stats.1.gznvme-wdc-vs-smart-add-log.1.gznvme-wdc-vs-telemetry-controller-option.1.gznvme-wdc-vs-temperature-stats.1.gznvme-write-uncor.1.gznvme-write-zeroes.1.gznvme-write.1.gznvme-zns-changed-zone-list.1.gznvme-zns-close-zone.1.gznvme-zns-finish-zone.1.gznvme-zns-id-ctrl.1.gznvme-zns-id-ns.1.gznvme-zns-offline-zone.1.gznvme-zns-open-zone.1.gznvme-zns-report-zones.1.gznvme-zns-reset-zone.1.gznvme-zns-set-zone-desc.1.gznvme-zns-zone-append.1.gznvme-zns-zone-mgmt-recv.1.gznvme-zns-zone-mgmt-send.1.gznvme.1.gz/etc//etc/nvme//usr/lib/systemd/system//usr/lib/udev/rules.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/nvme-cli//usr/share/licenses//usr/share/licenses/nvme-cli//usr/share/man/man1/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:35122/SUSE_SLE-15-SP6_Update/c0f38236a78899dad22350670131c77c-nvme-cli.SUSE_SLE-15-SP6_Updatedrpmxz5ppc64le-suse-linux directoryemptyASCII textELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=e9cce3af58f7d77546a443b6d1ecbe10d76a56b1, for GNU/Linux 3.10.0, strippedC source, ASCII texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)C source, ASCII text (gzip compressed data, max compression, from Unix)C source, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)RRRRRRRRRRRRRR R RR R RRRRR RcWX3dmwif [ -f /sys/class/fc/fc_udev_device/nvme_discovery ]; then /usr/bin/echo add > /sys/class/fc/fc_udev_device/nvme_discovery fi/bin/shsystemdsystemdsystemd-sysvcompatutf-82a384c779eb405d654bbeb1a89c09d7d70bbc672dc8dd2796de76000aebaf52c? 7zXZ !t/ ]"k%S@[1)m9?g +LU*74!#Xc>xL ?ޗj.5r%6`.4KoͯBW]?O`>tXl39n]BeM~'izx,[ϴiI_="&$aj1{i:%|^9|7l)Bs[Psm 凝ND%V2w\2&pQ >LLs1N*HfN_qpWhQZ#vwR74:ӊ5QK! }S W؞i خ<> f*+Zr <e0Ol@hF6^@Gbf{XJjIaѾs Hv_AlA@CsX6Gո}@Ղ`jh ݷDŽEh^;^r=]>2X e="w`v kίU8mтǔ;w-~{PsSnwŲyƚ2ˌEjfnB-U9 H Ž1 >h]gLz?OqT>vhc7lUMH6[kg`ox,ܝZޖmك(X+1ƽ3pv|1 ψU  YĀ1vTq VVʟ6i SʜP~ް;JOwQsW l_pІ:r'͎"讇Er.jFƪ'zo e19o^mu.JV_-Tp K{fHQ&}$kuGQY#ZRga[u|Tlmr4Z 'ȥYE ƎL= :jVpb~k.Ce~(g͈J 0QSg-5JPuAcF9Sw#h?(*p\6e~zpf+9SkcES&eWyAL`btrKd ѻҹ/r|ƧQu*_ۣm}$_W1b2B-u9)\bDtᅇ;a:.x^!7{Ӿr Y)`iX;TFÁe"a.Ndf>%`,Vd zfZ>໼ p\$gVfek'gJLu7#cXV qk88Yӎ>cm+kXjɼ$Әb*C&--BI*f3hr%\3NZs{)}+DSYߎ ;TFvnGI"љ>o { E~:4ťlu{1=|L4\44v/Hw*}6cFk33Fe lQKDhsd 6MJVLu ja5^H(ᓕ~uIqѠnmS-NJZAz۸CV ϱS2(R {|%?SPyQpjO_2]eCHݟ?7D/ šYRXGE0gWYHtO&14+Y`i☸5KUJD> DJBPm e 23}3T+QUbiw~F&ӹK.ʩDhmҠU5٨o Th)E dž0pTH(@>/"ʏo L+Rg>B)eßncGe3 &S]Vc`|:kM 9Rr]M Ppx PSnUڀ '/2-dv:Z VnPNXWK^J[Gwl }X~_K#B%W^c[j{'9 V3`.&ԁ'P8Pqٲ~1Zk&nUN|-Ţ^)@G2ړ3u<%2&ԱKbRW!tMRVY[Cݖ[DP)pp8Q;CN qS;ƾl@̄q.C ZҺyjܱqߐƧ_Djz5N3Zp_)2̍ѾUr8(n@I̟⧜ vHB``;*>ւ74Odz1bE]R"@ _nm(#9=Ts /)Odmgɨ|UH;ZtOAiO nbOfBHΌ&9rp;*p>qnZ*3.mwυ)A@N1tnu(NvZ94\7 "+„f͍w.%;.8خRo!֑}2Tfc|'{^0gSU%a(βq>K:Ì2/ָ. 7jIADwi(:p#NN"c>O[NP [P(kѠ'Lj̧~:vUeT1Y Ur}o\MCl'_h挱r/~{ )?|e?=UV-w"TѠ)utnpMN8AA6ƫVU?qPTGA*911Z5ޙ32 iJgRO!(^[cɒ{q%#U}`K[wFdzL1T²A`,WUxTKZ}7,\/[8NkI ?5FR$ߜRU򵒰 B0Ń]J*lBeu RRX~j B"7r;!["휾n$遲6BuiHQFwD5{$#0oX7qr#ƷhI[gPab&rdhG FTL`NQ㊐{Uۊ\$tP%uH 0NC1dqVdmV0 qJuܮA'T/;uװQ^{x;W̷iY(Ba}tsMP{EgVs.%Ϊ DzIH `c7.QE~&"f߆5ciJIr*a/7UWzÆ_j/jSiE~0?k3$oY ~* rǐ!Js'VA#MXJ_+Yr ÔxEOsX̂w.F%h#$λ<$0Ym~[t#6,6?7% FPFM-#nhK|s:TkSnFPI sky"c@oqAL0v$ "<ћ>Md]_tȝ%+BLFxpMeXyХ<J4 RTلaOWw5s;F}-Mm }T/Y<0ːb3?$ޝ2v25qq)γ~dm6|,v,Y ROk*}l߄ee NP)кNEA68hszQpKrm z9#ő"k;=f:_軔V7B%cV6xVȷ y'|HRÊ@V~/׺ld۲}n "IQWBx('fZ8 յ;%PsH&ۗ5vOYS`9E$'&TN'sLYUC^'RBSaHxScYM,Sfh'}3E" ^뛻5畏,t7/͆d]ODb$1Ңj))1¿l0V9J}RyMdBj+o+ј|gA[r^j:0:VNu3BU[8KBНeQc_bFnLwP9>4f 8D@OytrW1~S3n 손#qJR=2Ts5FC_U ('yƛYf杷lypԓqBMu9bԬ0bSNVepjw{(1pCoZ r/h][5t[p9Џ35Z>Wd 1d}h:UJ[<@5B/vb+EJMsaEi?Oы?⛘,>*JBi\n$9I"dbծR+jV%\/"$ $eP2?nߑjՖ 5#P\/ܖՕ\3;qXjGGU6B&> lhByJ͒{UL--c Rr!bT36UGY%_rEȂ7y&뎺WO^UXa,)o7gЛef_JpcjdcE 4P"p;㪣ce #<oLƟP' 9ū(б*Ԕbޖqv ;AR"mcxH0Y {F {JdWmF\Gep 5i1-"c>.ӼOHgUNW1͛FMŕ&~BE'icV┒xSCg}@0l8NCp9A)~VEK&δxA\%E@] Xtd}[OCtN;=N` ar;1}! ߗ)T!"̱`ʁȻP5^k xJ_zJ`EݵsЎb3{5݈n8E6Fkۯi:j>m^VfxQͻl P5Tϕ᳘.AB=tE7Uf1(JZ&bh@!ϭ6.EުM4Uay9czMvUyڌKءLd Iqus~&blQK~&9֫iy㍮`Y{; 7<ETA5`t8Uiᯪ`KQC@ե3:cԂ^!Coϛ/WoB%u%x[Spy_H.gRh xGiV`>sNzO_ $/}U0]ʄl=>>*UKzLlLg[ TfQ99n;8ވl<5t9H& Gz2tzy8<̨SBh KMA?QAG;ܲ1#_Ԑ\j1u;H#yJτ!iPmRLhR[^ܭEHښ ƃQosKn 1?*%@!@s=zwu+!/[ITo<<6Oh&V5c>_*^@R=Ϻc88ǚOi\):K*?0 o&+1@>;.*Ψ(rxm=D 6S 61 2mGL.BPmTn,_\AyBa< ,V0UM%38b5zq1$l(}tl}fjm|)9ߊԔ%--`NM 0xpe!Up}0 c;5um{ bz mPc*u'^|x$s0" [we| KMfx!.ezz=6:}nT< d dwxtџH/)Ϣ&4r}RĆZZgݶQ*T?[I9^#sD=Qu*ub=1Wr f0o\8ks l/XnzEpaTߥ&Գul3MQ+#SG҅p#tHlʞVG%#=mL== Gyt4*!E5J!@.?ʍ-VB ȟj4p*BOJĊ EHYGkYf*D$`[{;$-W5,.fLe4\l*X2ޡ{y9ۮ|Z391r~梷Z7'ň{U^u/ 5Uc|^r7&@pLa)δ,Ί:+-XxT!'<є-*ޓ}H`fͥj2l%i}`9ZTb!(eS\ڇV8ֶlN,6DѿmSrI0J`>F8tI,;Mbz'W|WMPdASJ%KLaCWMR`lX Ca#F |L~31dVayF,'bo̟襥LZFXЃT5ۺtĉ oWf:>g<ϦwP~XNЉ_~ )vMݎ;5X?;&/ "X=9.43wx :Wr&Ĺ9ՙgK:2jE\WcS1SONuGDf'M FQqD]o#cdvh O+BȢfb%WP7Tv<L"-F[!M} l &F#8ʏi^泄i]8EڭYC2:swOJS0] a4`j\y&"tWv! @5ePWZr[ 6N9Ŷc_c&՞&}m_KW?/c5\o$] pt+VD\чqfwӇ\ G Q {}nE5݃m/H#MQk)crw[lo扽D7#D6O"N}[iK37q^mPBuw4>EA#|<e(P3MmHS4@X:Н.:&hxne6Uߏ*Ԍ|(ZJf\;F/GгȁDh .2ϔS8|OD 6~7Fh0h H'7:̛)[Pw|4,׏] B(kJ(ÍD$Wf߲m 0H"T.q㝴G!K< P3GKH_ޘ[y +a`jչO1t=ENq],rD} ,ƬlI0X7]cZBSoT{UmSMJ"4܊!"Oj(Q+i>0vO~K>( Iol:ph؟5uq-<#Ӧ+uDeI=n5鰯^_chf8ɓ܇O^4=z/PIa/-՟=r-<®Fy?d/Pm t 5%_J>L'V;w@Kwy6'9Wz` 6k`QSač30+)b#O-Foa2&+0Ă_ۙw>Pϩ r[}nѽ<=yTum2(3#{ʴdRyn_ZYk b^s_҈{(NEL\BAT9ÕEQ+`d&5˛c! ^tt- "1?Z}L3spEmVY$N%} j9׼3bCT1zׯ ;Z9_Q':Tyd-\Qݵǐk \&ͮnsjZc}coa'ѐ" /2T G+qsܞY1C$[fɔ ®'O .#E %gE:$P5 A,OGlH. Lz1sH^iz_ %UYłR+;Ū VLk+SϞ=fb9VxENބ7ȻFmS2˧[2_SRu ,k`̊Yb7tuP(_m*BJG2%\'U $F 7Atȑ\#MJD`"/\l;r^\G0#Kw}5Е4 =kv.¦'ov)AKcX-ejmXf>Ewj-ڹФP9z< nrv)C\%;ø1+XPpગXvTߐzF&si22|XPE Ӓ@a4V )9g8f4m<<Ac96yJr/tzT+tG:UfdcH!EP@u2XGSXZGj!U6$^'{饜S2ύdJUZ.9^P *YV7q\?`WT,~ß0i5s4KH|!Yͳ=S7w˙?tP jʋ@S9! b/_0PjNX'Y|[;yERb^e[F 3UV3<ehmB7,\iXMmTk*[E^w7B3Mޢ *#p#`u/|Jh%K\RGWL=䌟;D/`rG[H$n*b-v|@~#?5}6k9ݹغE( z mPt[eS~9q7% wRCmA6q&,f)F̆Ĕˆ!p+A `Lު]C/r{Z>@c:'o`\:*>"6<>jߨ- 蒑8~knX6ibH4?_IM)8 ;[NLR,o>:B^THChh¿L9l Mmp F׉A3V1jszBśӢ.rG3H~@'2yE>S<2;|79}D1+zKKHeqIZ ajD u:ܸRek|iJymEN.V[5O[X;9+Z-bc{UW MT^;z[ws%*M$'%dCmĐ;oTec)iu9GZA~ZV[-gO}6ѝPt1`90Dw粎(X'ˉ̲u|LݭFhtܻF^ۿ L o:┷`{x BL"bw677vy8xlmyx#ƺIxl.z?ʒwI< Qb0$9иHx3w4 N5Q I9ZDr =Ig? ނ2^ ];ഞځ7V(7%xf/V K/q̀Ex݀'ׂ0bAGVwQzEOs[Ê">Yc%UBmwT&nIsqCwAi;W#OoN?o.W">~'d0qIirL{s|_k2#~Rשk1ȉnW}tM9[+絷`2&f^ X"9aS{UUx¢i]=BTe}T!Yov}[7zА[Pg1J2!={/%>N`ge^L?B|btRzM6'lK<\\j+$^Hw۴OwSKBUH zjC)kU>bD2?NnwRf+sQ=?==? 3 ㍡' ғT{kLF8| J^Z !.J-&GB, e4ګ{ִ_ڻbp.>*#@NDJHæY??aMX{t!QOPɰKmS4nWGCp7O|Bq}[ 6UO i1swK#GXDʶdf&茚9ld5RLOyMS`[Q (Y6ѭց+R|>ΏcCrn矖LFڽG0PiwI:vĥGy:2R/ suv iGYA|靂t+rHU?g# dm1HW "7gu rR'ČgmW3s_($h퀃C{+B^v#c kOobĺ&탐AoGidp${Y-账 [x~}}``32LnÐBUs[Қ٭W+XOQ1v@>9L~Ey3(nK y)k/8H q+eU]Ų1 "晏oq™qR}9PۯO˫:˻5 YIwx~"+4 ,ٱf1^习PrES/3612IDը4?ט^E}]*W Y䰧mGViN,qE zXaF;ȯ: 5R y̑fܑ8TItS6 ,(AOqu+(E4&:$ĉ%t*"b_W>^堽hlU2y^ v, i;ז3&'C'B7BqQm?L'#K<4)p N&2.)~P:VHgE)rH:PKv˦@-ɯG}r*|T2/wp% +%;lo ;gBvd8v0s'\#NYkrۯ;?΢7Q4!" |G:B,A>^5/;fPTɼ ̴+9D;ߑ2 )OGb$qdޣ; 7d`RKP3qS;RZY{$jRvqU/M'a2jPMcv9 Vq:(-,)Ot.ٝϱiCgvHi˧0ݨ-!(kvdz|;.6H m{pZ>Զ<B$VQ|$g_J*X|֚6˯l+[W_A`_۾D=۬WI<^8bDB+wY`rmD$'zmDd%cՊVi}%sȖ!њܢoǹÎͲ^bMv3EڵLjfԓ60fIwj M3W P"2%D#>궙V6lZbE0skqmVfƏJ<+k&ƌ51@9S8m*q[v J]Sa 8,UN_4?ƈ4f-;9#: $L# {HK*D`25q.}+ {]N}OfNC~[kEdʅ߃)mb[ƙ#6TLuS"QDundO횿vrH;:~H_GDx8ސY)W!nk"P_H!-J*}i- ?x}k .C|`~Uy=\Wn/B',ZN7 5`WBPfS%$ (9]1 ` Zt@O~=VNw>Kk=1^`oU`3>(֣ iL,1Kc-=@~Yb{x5OMȶNsLZ&ۻt60& Ä($NnC0kќJLײI#܊ y1a-T[fƷiMWU '=IEW୧]†sPA'N ?)ei8k&}WcqjJ?ȴ09dAĐV+6ri'G D!27~x\*9PǙ5޷٩klXsɐF:!# |Qւ?9ᯆ^u:[wНE E|+paY4s9 BJ2)ԉdΑkޡָSMz8iAj7IgRP#}] eXVR94[ðLwvhc[njqCzc-]_'eNc<@&~e e`];9:¤֩[9CFHU\FFR33@ 峫cܴ ,߾Ǝs6_Mdҥzչ=C"c:2ԋc)q⋕p$EPC47Yj#L m e=5Sp;0TP0%ٵgɴnm"|^m8qWfPqi[]s: ux }޽h[{,|yeIͨQc.]A5 SΉW/Iu1|oAܽm&DB YRG #`5ECJ5Π77=B([/+j%^7Kp/Gx_9SV8WMJ^|bxMK+3TzzYְ-LgU3 T ^x,*+oTf2ghӵ.nN@e]!kډ p=8GiN$pui)4ӸgKl+>rWNcM!&!n Lc~(2&h*M;f[kdG:)_OTz)-:6y)X8|cɣ yCpxdQ~A 8?d,{r_ϿWվ愙Ia/xJ\fseM}i w]ES~-!N3 )gŅצ.>6tBo,{#hC*lF]ՍwDE9#S/D&~~)V a7Oء 6& >%91kA-Rs?0*`eeaP y% 2"зh}1`aKaK^>"UbMyPE&_܈2:Egd~LZ eg8(0/<*:Uq$%,_ / , ue/>qӋ-Dl'p9u/P_ ^TuY0+*wlHX*Pڣ#G5މgMΗW#0ݭԍDI8h2 ?.v˻A/l]ܽ!1VYD_gO& jW !U.X>3VTÄ~Y' բA0b~xX_̋Agh} GdTm.=}z*N:SX̘d~ӕ_ Rp7si`DY쬷>҈ZKyhEw)(6\_ugK$n'Z\!O4b\Q)s5<'V"mXt4HGu,hjH6unlC}똎i,4_#œ5T mps"XR>v|]7 7zxP<'R&jT FV2d;D\bXG 5/+Ʌu?yϘ+)$ #""Y%w[Q'x) -sΈޮEBZЄu@tX+9Z#hnռg P=M lj1(?#kI]7zk۵IkW{XE̪sB6_K/ v͝]R&퇎g}̎_$f(Hg];0ʪeenEeqK7-3 >8yi܉վ Wu׉Lb9+1J!np8ĜjS*P0ꡲ X4ӫrD" &[T(>suƂɹJDk*9z\חzE#7*9 ШI .,At%;*OW}U,mВƅIƚOA@,%HJtKj'm[;-f77--nQ뵣K#B! ǀY;f)`BTx{q\-jR*t} ^XY+ksȬfgWl䐌tB;|~} "Y:=Vհ`0sla,5T3}圖gm7g!L~T1j8#}2_T %goK VLǡF vկI N JIAHЩ-Po2^3/u.E-V"=W+$W|?=لۦ&{[ٕX?CO⦨ #v; OK6á'Uь\{6&nYY?h=yr& &XD$9(0F$vq1#2~GpwqF&ڏ+*WTݠ}@7Cw2[4mz鯞(=*2C"h@ڸ-IYJh"]GQ׮c[~ۀ~ax}2(0erLN_䃏&} tY4(:,V{e /y_RKV} ;;L=UA)-%$pu2Q縀MYj>"Ch1t%$htjB8ܞ‚r)i+9_&s;,,ߟ Zb?b#F)? hJhT$nk3{t6AyԧJиgj|c]J{H7n? 4wk$ 1pֹ~Up:A: mraE).6+Iyh^AODԿcLF@*R BԨ`rlgpܢjpjzh-ֆkdmun#Qf\<?\%R./s<{)~EP.P$$ jU-M/@J"1l\ rJٶje7 'Eǡd;%fE8Iۯ)ޱ?~8L%a 'HVJt0\#tjhȉk'r,<^yoGbHMn\ =ɫcW p/g95f Ѓ4rdFv≵@$a |69Kzx v*_[*pCT#+LsOw&'H!jMP>kh0uږ)6_?*$ qryр > Pd=Y,8 #P:QTh37U{B8|gY+9w[^*j߽|z*ˣZ^a/ l ٭Jsgn]dO~ts}և~{rEaߝ;\KA2P R/=>md-gqVMYcet$5:2*q\崃0UnUB .oAsgMl SC\:{x9/87&:ydUb,HX;JD(3Kjʡߤ(P/^F5GwD`".Rn.Jux1 )QVUGIj jMbѺ#"]'24gLl{ߋc"Ӌ(x@z||⫪N?q .K){X F"~ 8kOK54|'^~ IԈlm ͎V΄pf4~Mh:!Y~ȱZisϴ˦\@(bY8iJ|6Ư#;)/gZf,qgN6 ]klB -w^3IƑoxDKYQ@VH} +|Dz*$?LJ) MM?G$cXW8?.hC3< I^c\-sqeƣ8eFyU? |,+:sƹV eqm .K>Wm+xs K;# O|k˥vXXTmRw.=زhlS* `qs?{ KA7W/QV&7$hH$NS_ՃO$ƨW>Hwrl^-mnycy vڗ^rs2-}:i8nek.d){s 7f"zG)N~þub ݻ}q"4g Y]v I>C\+g݀,Ua=2޸F囩 d$6bEazbmFB/. g\[Ήo7 |:Z>֫|`B2 ցzOg~E{Mx-~ح:3_ԗh|Q+;rC_yz HOY5.O:R$ ģP+;q@ 2g (U?w0.>u-mLJ~Pѿ,]`1b#DTt#~4&G7r K畾]CH9xRL* lKF\#k_IǤw"OneoɕQ[78ӭE^8bv z*烙 ~FٔPQTS+(Nz0ܽ,5 u8,|$sfzn <,1 TY `uq.swE3HXn;+}jwt)K ύ%ȦX bq)Hv$DW4k!bEA/q\OV&&Nqtq%\(}jy&rWS;dٞloMǩYڣ]ues4Mdo5N{֭W_a) nkQKAJn zklM]tVXGW͌~d[̓ uFzfi2Ol#%9e=Lp[2@zv®Nϵ'{Ceqw|jRG꼗Fg}<1R\)cd=К($ut1anІ/UD! $Bnb3>PQ9iҶ0q99:l I4H`P_ ֻB=󺝠~ij߾T!j@k3}PL؃p9=ۈDa>ǿŝ DEp$EIPՂdhkq.)vU9r&;3k_\Ļ8%zt5]=BM^!Zy-8 wV ,Bv(/ZoWm3K2X~dw1ω3'Ln\ *()gh\r)8B~==:Q[8wU.v_smǷ! ]:i!W#l^Y{9oE-}KWn0}zvNPFԣ.?  -T#9Fj1UXyOq&|ʥ c3eQ*(dbC#H4S3S7⽎1D%zcju ~`H~qlmfًAp-YtΎץrwZ);C_t 1,M͜fHAi:gM-˧ tC7Xd:3\S X1cg1~i  `O ڛ7ʡfjsivԧӇ{N 2Q?6ב2;pMLjg ].@ !p9rWTҤsIs,?TOb_hC&1Va9w2n qHd8zUG^'fs#XJ !ƺ UWg{o ߭r~Uݧ C\R\.(R~0sGpt 1`gcLz.o <1^']ƁY'OϺ5`1T :d^GVs/* y j҈FrW1&cpz-،jtN71lȕ:Mhv6 DJߝJ5SOkkl~)Yd.[1e{xȾSΪ~aW{}.Ey/S%4\9h >Pc\>;!-tZ[3>8?sNzd;H"/>k  _Wyx2Rp֟"$+Ԁ4nM₹3}7C9V!iV 7I T- TFܜ\mi7Yk}v'sZ YV\و;3*4v'>2]|0N ,9 q N0gR^B3(8! ΌI`@#p2{_W%ft=s}5*4OA5(%djVz⩸@]ӷ܅UJ緶ű Ƃw1SYO{aNvVa :ud8Hf)'0uez6)NOJ1&@,[3H&= ݬ~̈)LjJ}+>yH"E-59챷j"- f%TJc]^hҜ*54hKxLOSR\? EaUO%du\# w6WNc35slQ`4  ?!}Y%LpHJ2O~5ڎZc0pOBeB܀  Zbah$l጖_|@JQ %}(=%Zs/h销y@J/GP[t5˭e:z@?55ie71)7'nJ h.|wzոF00Z]#6B6˳Jؖ n%d-]lD"D.*-wz:k^`E gl3Ϛ'yf$kgY~W\F!3av]|ʳz6(aae").V]$aMWߝ3+ NtW(UWV>QT2N a8Y ͯa< $K+VK%h.|:rbEGк luG@< P4'=N) p?e6Iu Өa `>p눼zg,j_a +H3BY'ڬ}-21f6%]JB/fM!'e`YCͫOzšΪOY)ܚ63,DzR>~9;k佱KZmT 8IFYu|pQc_$B9+ѹӮK"F_aXSas|BaŦ‚ĝpvNg e۩}l_7}x\a #L@5h}D vMz^?@S<~\=+x6;#3ZCwqUe!fj )]}LN*GuO2sȐew.ky9+l{Y[g7fmGQC\6F_Js !3gڴe'͛ wkx3XsTp ^UC^&Ӊ$c>]AHrX{RpyDZ44Žd#%#Lx4gZ{;÷@ߦZhȧg̴u(Fa/T$cn) QTV0yk*"ǘK9F~+L~Y>'9f#d:pC:dZ`P[qa?t[@> Vs0 ͍T;N徠{8Dw]e97ZZIA&m+T΁U&\U^RY2ȀBca3*apn68Ö,l5't`wDlRl8I_!=ܭp*[e/7whU*4r0{sRwCPJЬ7R|#xÉIv7BQ5Q$UM#yޟ< c6+ 17Ev 7]fY M~e)|ri;/֌|ZNdD^Ĺvw/c98rpN{M(Ԅ^  h&WT>m[V3,l}:?:-P=y-A 4YwhBmTsd!.v=5+֫g_ ˽iWvfT)[~/ ~gCWOFz9ҴiE,a(1F~[7v$^jՃBֶ: ֨dLXӷ U,3lޕRWJc#U^d>¯V+[Tw$0Ċ ED53h ncWt1 a/-/*Ŵd5E KquYX?郘KgJgAL6@[iɴR)$m" ~&TDt7 wQTb?)Br⡤ njf0{݁0~\1~kpgo g#ИD>}kY(16gQ b ۚ=v*xH[C_2S=DWYV_%-G,JB6Ϧ @2OKzm<PȺs\;Z@p{PMxq?\:Ot@קK *%:w`o.Ev\#/b櫸b*T\Ub:k;)w-87& OlaM?NInsð']9ֈD=(:}aaA_3,P-dYlAv9Gg)Im]dP>L|Z_[nUI+zCӳg: +]3P=N۾T_*J@AIdvñ6A*S &}HnMG=?'d" ]T3ةM-iG.M~]IMMMA~Kbt?cTr > xYa㲎oRHcg;6dt. I]ͬJ$$S==+nןwAKN Pzaƙ+d Ηq'wT}V$EfTWYs>'ķ2͒)_z.ynX={z|s-/%gc"'X^/b /=!"]SaZ_˳SQS9Xc{M*gfhk($ā\Yήc3q=[u ':O1Ag*u:+;uwıRǽm0覘,jTКԞܘ-}-a屇.r֣iCP&ET~4`\d`0yfciVQ{6$UuAm_EGc)ҙx&G<\ Scml9JB(ۯRA,| MV[;(%Y5!!KEu'0~sO$HvaEUf)!ç yBוQENWDd~xiTQ9ķ:cRC?%؄.(u\m{'wy.JKmߟwen)P $1ۼ.GwNsƕ%q>,U"f9 !4')|w#qzVaR$|$\*C\3A AXFeKXwz MI+yUj ZDt26<py!%#.N Ti1ҵ4F~dXImG<D[@tYvS)wX4Cͮj_߼4䐨.vht%'{YikWس(Vh Dc%:4ooiuՏk ݉nv>aiupW3%z m!.u$1=sq2UlT>m3Yx}M3eX4?9Lդؤ4A$dFMٌZ1`Wt{!frD$ye%29x [.] {NǠ4΢t_q^ <Ku2 BUs B{71|oa8 \/vaJ )JTA|7,Ck%3 PxF5C~%CA\\ Pz#[kI4얥?=LdjNѝ*PMu( j wqZΟAK|=)yuE9qiv\s4F(O3B05 7V ث0,.ӿ[Ⱥue0s*e#؅a& οpRV+6Zy7ىASO֬]2o ݂Lv 4~ﱅ0pYq4?"ܮyk9CGdARm4)\֙eָ/ Z !|平 > I5 }(8?(CAy}Mτ& C ktwl6ѫu*c$3]idI 9A%Y7"w8N3%CDGbv\Bk]#b*zl:ԪC`)F\4&˅+ۤXm+A܌ p9yMbc m 7s lxhuuCYr=O uxqg248K(Jx)W%"Cڵq405ak qs̀~[}-f(c7$pқ$;90h/n"&I D]Q,t4_uUV:MvNy73l88/`nŮIs͈ 0՛ڙn֙W˹8ųۛ<K$TD .djn/oDSv8 >ߖ2>bQE 4>0>s_5S,-g(W=L'й]DY$`jR-نTD9xrx,&uj݁#kl⮝_P8HSVj 9j0P&T/jtX,oLj6j{l.Kʋ`S`jb͹u}p^ȝ4j}T/FdP'^fD-.=f.F_.N\asuiS3<;wbY9:mڣ[s@ĠT%vҤKaShnIs|n.\C!gEg*Rˁ҃x,c;uiK:(mVSGA[B< 0z"DnN% /͸:(/R-(oӃO吜k,Z{` զ!ª3ȠAO%z/}8{^Q b*﫧϶_{|\o~wC!+B+/Ϸ̫c ۂ*J_㧯=fL%ܓX#!@$wGYwNLDC4I%@K{#Kߏzrs+O&]s<4۩a}0Ta_ȶ\+1:<+@PHQyhdʪ]W%dtɥZH/ͺWIG-{8( +w@ *TV Wq;Q 7Lx-JQ;#PvvnN?0`FM{/E|.`du:SR׷<7Z ~5ew+Q0o n'A?z9$p?ܧdkw@ g-b1K߳/^U'4h3j(Aǯ gle`v՛)Hyxܕ,xqm5rԉm)\"6~I8~<$iɰͲ맀S։i[s#6GY:\,CD3Pb*M~s5[Z[Dz ]iGuPb]/ėq wS=*^^C[&H'B6"$[C†>[,T1y RlupŧG4C=NJ6bbГF(Rvglg'9]H =-)5";cby#{bVytJ`ɊnF2Mzv">X38Gh ?VĭH`|+$"fq"cJb5ꊆ'z^+Nė/ZI> HE` _GɌF߂)gW ̢mYY?{} p:PL$3g͏|[A+i-}6 (v&R\!w {[y+%)EW%3{#haĵ1@f!O@?8xJley3Yj༖sbu+3Y|?"@Y[)yY[@sp/ A5rIu BWxpo\>?Rv6p`ճQidr0Q?~MĚzXv<G}}/ G>Ol:} W sNᵗ e v92FD&KźlfL'd個"&!0Ihn7+@Bw bTja>cb[y2d~ɚ??dѓ{nC8(;p-Ą"UM7Q0?,KGȡmeyjcd2ܵbeW]ruB\4BQN<]J<4 5$#Lv\ef jk8 bڟ@&fqʧd+~k8eYIQ/=%"Af0T?n RgDEd2;_ ZӋd̈|2)=>˅E10V[}jf;av)o6&"k,')< v'DŽ:b`!q;r};3hjȞH2H$-@Vdj'Ǐ@1Vk5ߵ/k:Ѵkyn{UOn   sVΈ0&>mD%@m^=Eʲ7M%Ĺ?&$Uǃ*phd.i<@4zX!H G f\q̌QաLCpX il~7}1qɘ|zX P܄bygQɸmR{)5R]qUh#!)g&ѩq_}2x9ti)Pi𰶽%#LEh쮴h4}'mxrj6S̍;Ocҭ+9!d1% Q䐒PZ5X y M*x~nG v3ԝ?3} ثCMOZbo=[?l[bn lC*U|3b52[AgIܳxŦӈͳŏ7VnO?Q[;qs2 T"^HtOY_i˯%V|vz ]J8u?!4zqʴ{/1oU:C ;uS/~u,n- v>;I'jiZ+YRQ=̧d^y*ˮjWapЦ F*/ٟ5+Sa˙DyR`rl [EC;U YOmO Nڸ$29ka!hNt$b(:ތRuMł88WCWéox%zq`fۍ^iÏ{jˆg|gUC-~iGM T)Mo?eUsQՁA媧ΠގZш]=SľyЏ; ՞?ưq ?io4I?{mA2|--=,gs$c*bI~bu ?Po}Xb2h^6HkA#rk f0HT#Oc7bE)!_b3+;=jey/Qj _{ϝҏXlV!i~ gU c\ȒEd}FX^ aY~,ոS4Q 6qNUOHdMI6TQ#ٚ-E׸h?M=FI n[/$˻Y20픉2yYPRē ߜj3|4P[d)qPQ1ܯ]+*.m+MVէAI/@ _#R lSFH:ؤ{CE\23GÆk5n+1x`mv/@el<rƐ;!6 \O P ^8 _mH聯|p tU^v"W2׍ZՎKETJ[SyO#eG-RyM@HȭT#a}l"KoWe s+3OUDZ:Lax14n=O_^ fpx(D#>NuD%^,X4Ҙ> ٠sڝe)RțUu kR)Xw+9ƒP2 Ix7`8wo9;smhKҎ,^a=4EYTDIBQt`ɤ)MڮYХN r'܄k95vٜ汹WLʽz. IFWZ2]9᠐G+LЗt]^vFcSe˘,c^DY\ "oֳ.Lx n.*H%L=U/VY6i |F3X/SA{x8upR9BZh[T%6$IEGvvLUGFx>UÝ2K& #>&' 4r@~>K.L_S|yzlSS_cZj\Λ\9o2bգCn/1oy+dfA;+)QQ/K00t,+lr79ߝ-_*q68n/1zH ,=6*5[]^<?;!!WoUpu<@wL\V$k>|V1~R ?%V۫qp> V&3tbD#|cDi-W: UrTTzܯܝUJ-E8Ǹ)V6~ZՇ+,[1VI2wk6!1aph}dmNbH1Ei:M5{?e$: ;>fccOw#e`gkɔ7nqx p~ʎf硎$_V+/`USkf:|RXk["Bu;4N{!s$]!D1$ du,3W!O@<ع/o8؍k{Ju 3z,kW\oxabPq^X !9+oݗ:QLD}̹«M0j-]mSr8XzŏhHwMbpLg!|ߓՍXve,@›nBԄZ;:ruU2 0"N#΋aM;3 'x!D!(ę. ~f%W{c2SLϜ,*Đ~auC*ZQj"V[f8CQC}mMG@6aG%~k h5%ÎXfezFArFB3AxN*-cs2H8g>YWeH92%{3+>˛MGbJBׇ3!#vG^[eⷨ}Z21/v^F=+˲oq(WY|%9cf/} 0 d)J8/rݏQE~<9PdPUO7&٩ Ny𵟭ZknG Px„au6TgNP|2fC[?q/t) w> 9'v9Zo}\M?^MoyՔyb"0H,U\,7? L9bV8q&p4MXL聺"%uX%*bKDB~?0-u)g\0i#J7JX7\BoˇظSY)ɇ}M4NReXr\.Ap5CkFSUL|H:v8>*d#pE,]Ie$%çAio­"f/FӷwNC.hsuZg Z!5V{JU|K1Q/378 )e O,}}:EMvÇq tg=S "3yZl5pа51u88ػ)TorI έaT3n ⪓ xt\/ؔ:Z 6Az FvfSPej $LNo }꜀Mƪ+4:70]zi14QCK5+]hD:ȹi~rK^FdyR&Izp~nUyDG=>wi]_ؖe?n ʥ1> 71@Dׄs%Z;v^iƒ5mxOcnYen'Q110f?L 數;r; $<ʜhRP ^i+EluSE9=ue,*S}Ez_Mz^nte>kAUU9GPWpp\za%pK)P&Yy R3[ż9py b+O DK0B>Վi"sq]Λ=ZqBd,޷,QpkQ!pc'"!P FNu6Ibkk փp 5rDo="e, 3AHSw#g} $qЖ ?S۩2$n1촫$e^g{$0!=S%Fл͑@l̼RG,AwKtt-ufAySa 0wnR`Pr!'9MS9Č^0 &!oZeR\ܚԱ T!R.c~u2^mM-ZEϣb1Kp_-|V圆 $(X셜AKf0׍W7Z~9T+]jy| JG\ sRP۷;*sr ԈB%y_p-[I\9"mT?nBG'   Ip %e8Nl1(S!A(+DAޑ*_7C~0/H &:#)6R3}.Yv-u񝿅M9Th<@W^!tLϿ+=߿O$jFwfFE,m9YrUCCaC"!Y!hPl>޽l &z~\ FSE3Juw32:,FtϑGZ%c,vmǀ17LR}v%|H `wWafEzeҳ3zS3BZI|hX Om%s^>ٞښ`DxD3,n̡FH:V:<'ЭDz=0$yi9R3Hh~;wO2]zxLM8>~ӿg~s*+tJSH#ۥeBNfdU@z{YL*$ @S:Z5 GUP hzKah#S[%ꖁ-v+my@G^zӄ`1N"1a8,@$(Κx/:&ӊv:O?6?*PSQ䔅;, t8w8;7pkJNb[Ď}!X[5t{9}vy:'XZ;. F8v u2 \UwYA=Hnɶ݅>VL i!CP8%DAޒڨoŨWOXiOn0jM2ZyTN6tI; 9FUrb\̚ Gֳw0ʏFKiŒ+(P/l7cu)9a08$/WDIީXiip疣DslwK6ew &qa=Q:5Dd?Ao).%]Ex 02O軺xnlpÊ%ݭL@^4  V兖D:0qjӄjW-=5bK7aYXHkc%1D*e)(㹧A𮽲1W@,ח`!!BKx`yа_ Omc-a_>9?fZ9n͠a+?PKs0'']2FC=I-bp8?S.WnZ,lsdq1'|:kX.OէE;B̘.QotxkJzRN8?M0a|vuV`A7>T)lןMڹ!1`ĺِ cLul-7roGN&w{ͭ"i+%N8c EW=cu`['ekٰQ  ZbMXgO{ŖmrPF{NiI KAv7\؈&kAx{g}. q$5z^ ߒXYWMvSm;}'xPޞIdC@&ς~ z"*#tTo'pyET@ӏ:4T;E6b#}v.w@Z5;Lz:~w )O}XNDp\ 56ʣ#wgao*ZyeZeT֖B(R(Hk0Ѩ2ss<0{sk\#ya^|ys`)K͐4@abf\8C+zXygS0Qv!2Tc n,wS%562N (6ܣ8(WV D킫YoU-&כ _uw2̑#"a;t4u}BQ%Bq=',haKؑ',[fYD F?O]stJT).!E0X\EDX!Cs7)+Y]E{FJEŽX vY0]g{$c0Mu%).<E6g2#H)Nw[c0zkѿG=J YkCp(St|t`q$4$U!8p%>g1UIHwW45LV+WF{& cڴğz 02@<69 v/2Y,p~K;CFI"w/׸󠡇([Ђ1b̰BK3m+)=._t5w;%^҂u|4;#\dYe|8VD!ҶCh<ԁlj29yriDYJ+ :Byy*ꄞ՝w,c֌F ^ZLӰٟR&BH _4A%lӡNޘyԇS`gO_ G {مs*# /{?߁M4Q}(=4޽_;*Ā&̉E#Y]DkQor>o}V i0yII{p0^u1oWT0,ueC6Y˞^NK>Ầ&"_VyL #I'*^*0MSN ,i;&0dM _fN 3IIA4 <Ί-}L:DӉoz߅\qJ(F'lx@"HM=zt*>m$-r08*wj;Rg+nLSt; h<&!C].}&ҡdhǢ,ҝ<7¦l;pes؋[+~raYt; !jA~wS]3Ia <#5@ Q-ϛFn24fF NM{:%Eg5 e⟅i֒Z4/maemIm}O՗j3>x4TF{ud#j+#pnl̼80%GT3XtM#UR a_6C..SǦk7@aYͬ $}'VcI_Yi`sӦgfphɛ) ջbڤIAK.Qhl!᥀*Ƅ))+gV&{#1cvՙ|Q4ӵUign [)AA:!NRR$ޡO*s4d^Vj&g*DQFԘq7x;UK/y:C p= 6Dq )̔/횣xz_'8PDuGWXZ"0TI'KT*s'lm,u7gkz;!no(0bܱqp°k;+Ez#Q:R=u8@pI7lޕ0yxL̂[ؖ[gJЮ (jV9k3ME+]ڝT^o& |(48Y v2-&mK-Ht D҆/@87Feq M.d(s >=A[}O1^~Dv=1Qu|&3 36fޯ)o^|)rR ] r8lrA}h%jnA@֊̗^" (l6Pıto1T&ґ[u0G:eP% L~n'a[K>8IYUgTP݃~,ƒq:ήs!ɷ+lAs\-Ti H&wL1Z^P(/ٔb|e߷f ; 232(y Vi37kTVx4^ꪆn$Ud#J;޺:܄YYGǩg^6ƛ24D.W@)ĕ* Il5|~ߕ0[UB'zZғlKf rf!hq;80Rt/L9(^;( \8Ɉf;v@)Aٵ5X1f.]rz2~>W>.)L5W< 0[{s na#2 57ѧa FeP?p]k_/.PWAH"ӟI u_rYdlң0 %C'z8Gm䜈\"$ҝU+#)G th|Mp S$ DF?^>lt"X/;R4}[aH8 ̟FvkÏ'Qew9Ǐ)lYA3P/0Cx$AD%vmX1 ״YPzkK! ~&ٲm#&;& 4Bn΢-ic VNQ;'tR.ߏUch,CeDiݣ/a"t3$ǽ(KmI SCW9&7!?g`1`ˉG 8T3pD*{泽zδpCU7[!jN:]\C`[su=CR!1>#ENr"Sj;|@E .ɇ`b~(~x^bLɯ 0QDیMx+u輦g"VH!nC1#8wB$YG^Vmx̍Cx* :}4(£Ι?Qqt*^r(3)zKcȈ7jMfL~w[p4 28I9yzm0/#S$[`%6QdF.㢠c۵,ޘN.1l0Ԝ^<_ap$ɰ< 5B8]P'mW+^ۯkH/`̆70M1=9"}p e6@i5&gRSz|õl?Ts)H̍}5sHZI@g?]^Xl sNGi-8.1XqtDe&RX!NpRH_xlLXpqӚ%ŃR] z24ߖ&Idȡ7\cMAX.T3 CkCuk[6hAs`ֹL5-yٗVU|v@l̒!MphIx$lۇFɫ}˘&#Zh]/DfC+%Ώ\BnotrfNqEL^Ww[CB‚4àk`3gSGzM.{DO ~@1"mZS՚<@6(bCn`3؟#ɁE=(Sj uhjZ p\sg%@4Udxr2EG~gu n J!v/5']숡:$31G` ZI*Iv\)SsN5{(ՠU>(O#I7h-Ua'YG0)r0lCQLn?B Ǝr +.\Cu cb\v\sN aR Nf9Mr"95#i:Lp@/,v >TCDyɖM)lmS$ƨbnxx|XL%*RlUWZ4DX N>ؽ+p!.ڹ AՀ+͡EO V^cFb##HPpc#L(1#)TW _gbKgf P /f"B"tkC'@acs9+AjfLt4 ϫ(/JDhרKYyU0bР #Ez&=pg J9jeʩ?iO/Ӝ0F1N[qt${ G9g(MoiX?=Ą .RjH'*n{5 qb{q,of>(qw +&>UY^զBrtOٔ|tDhV&x{ӽ@^]Zt& i@E*{ n ;h@0iy  3Qxнih} ٣݈`cVPG6`])E8<͞f?i;Z"<~̦PtWd2ŏ6i7>ҹerF*K|, p#iP; i.7H֗M"ZG}kU8hvwv|d&'/[ZgZ"u KM*UjM}VW'%# FIo8chHU }ǔ.-Ld,ue?~)U i^p : ' WoR[!,xاKoiZĸ mJ,n:߯beQYO׃R҈pН|N?0N0n tXPgѾ[8*ačV7]9ζ/׮~"& ދ=Bu2U",Fuclw:%> ŧoρwOo~ī5 *,Bh2Q#m{tREH0q7?1w?6~NG*,rC O&K8/PwqR_aZ8{lM)bepk(ӄO:{i LTin-a٦.1oYGU%z1eo0PerxeLkMm[U~80uYg9fuw^Hއʕ)(%0\,5^"qyʙ4O-:(6蓈'eBh;+H 3̍ ʐBqqp r=}m45BR\5F 6Dxs$N(,:7:(W-r!uEtǜ܎x@u0 HZ^y'o}@;PΆw}Tb4Jzf<ϯ2̖3LE4HT[Kzz+>7_?N:~Acl'03(v<ҕ9nAֿX8<ؗAwӰ,L:Lh ?/JV"Ax \:Lo@*>84K!}HerYŭ`ky΂ $Ii۾'TtP7QBjA`ϕ3PivħԧO1TphL!(VHud6nX]РS] 3lzcV N&A'06ۄ#yA:2/n5١νeEzI͗or҄ gb٤Q0yuA{E_K&ۜåu %Xd!)+ ?)IϩY{GbdVnN *j m_) ܌ r?ީGv2!teџ0}؟=Hj+AY Yol vټNc!)S= ui9}!gf~`<(V|kH p5Oҳ5^[;Mw3pJ% xۊBh{Ec>7/Pb 0D dN9ex4љ+ȱ,#TzW>fXs(.]$H:qEym<חH?N>\*/9F&$WnѵK.-3Љ~ɓ޶CYtG4+ڥ"`\:0BΏBl1ណDlE[њD+Y`Pj$~9sLS^FnjXV NF`Dd9cIh%RM#liqr鸱o鑷"7T z1( ӈ ?ϟgQci-(M|]6 {䶯`Z+ o4ANf僯"`eM5|Θf%,S!>뗹.҅q je_r㖥1ZW 򰙠s}cFgBCS!*(>6JOiG&. KA; )WXDs{p)H뜴5'=`+u#dްJd4 9/bAuKVZ@0XE6qn.N1#BW@ W0p*G|1& S#*Me  8MgE 䄤8L t(@޺ٍ$@5jpɾwr~9'.<{zѵ? x}a'VY|1$>܈ ȢËAO:ػm?oqϒ '2Z}* qb!ҏU# mRAL%E&-2_)h/b_V*XLD2@_QnI'wĢy8Soy !Ȥ O\a܏8F7ِ\u ]~~ues42)~v,t}sdyZ,R:w{'6XooK6!4W΢ɧihIvy+.`q;t!e8֟b63g;U+4JSi+q:ˌQ'{ym93!p(K}SZo F<ϕrVptʪ^ExDnK[u~ fGDkyRHGD`+f=w-{@n޻J8x>WW8_mk$bc%{QӼUc, &_9 ӥq܋t;:ni9UgM$ r a8KXb cQVo+~1& C$#HqaTDX7rI-ʮ<6|^4r낿Nš /0. F,ω\CsF*)n3kWm|D%V-hC^{ihV7Up~DWaYE!X~T⢏:dɳGecF^]eǞ9ˤ@sM\{hv GB6%y:W%XF*Cw7ӆ" Tr [b+S\J f xYڑ49P9 &+.X(oRks&Giυ$=+shՔs4.ztyLlmĹfS/$,CIwفt'Q7͘$Į$CI$ٵAK$*Cs2*"t̥R7huqJ{L3jt%ALk L^m]Ⱦ#ݫi ;>xAY~ж&HЦsf+sسO2/iX`elXM5 Dʷrf,{'^ȟoMEp7-?"zP f77evpݡHdtS&O<ϢL$cCYqqTUvXd fsPs|grS 'b)J bJU+O[\'$%yt[~@<6 }}<0i 4 tY}?8~hQJK]!aiqqX /(߿`5^j+×E.x9Z^\S/w$ 6tQ{jW/c`c3S NU%!p:a0p.دWv3i!~Ma B768Uvh})Z7Z6KP\ToH|ǂd33A֖2A9ք]ŐYw>O]3XM%[S\LJ.Axaj`pt=.|pI1B%$F!n8?\[!!0 .ncbEj{0N[#(?f+nkRQR3L#͗ oQ60^I krV և]'&dX*!0X#NBg[}`iQ=ͷBy _~l|kL:-ܹmo#d{Q69ehaԅslD6~!$,ormP', d@7J3菊o_^e4hsJ1&Aյ,$oǞLr̟\\FwuF ~62TL/,遲eD tR5vй=M  YXzhH҂p&GGWo}H=rΧ>sl@v Tw/HH_X=K %VvY.&NPAI{K>!hܾfGwǐr[KksޙT[WBG[M\* :_?Q̧SDK;"ɽѪK{!}gc b`"jnyfknYI ~>f G[/[bYF=? \!"&t.o+^ Y}O,a;6ʠC+9ik̗G=l4o@:}za~+>6j/oјw֕ h2!yXILgZo&Ƴa&-HSj7Mn)XkP]F!|V5ڤn|X{-*VŹ1P?=!΅QcA[-&-tOpN$:3\lâ>CR>(܋T~[05J3ۈ,2Yi\0EnbE|ˮc1R|4C# B|wkh #hCr1$˱ aYP'Oa!M8&OBL˱ |PY/[b\?QVs1641oκaPzw 8$B/* '9cu.^,'˜X.2)F=ɜhh\ {5ЙZAW&¥s{49d I#xplVC+Z7$FvϪW<텰]|:軬 'Q51 )wna'.g6 `5耆;m>Ha.`08#83BYDN2 #lw.sN^?ck):+\fci$Kuo>׏jS[k9V;ęZYYJ-ۢiy` s }~4(fltp&21@ "{^odU;_n,)+[M7" y371tÈ52 nf讏XE^>1־y[Wp(Be%WvdysӀ.n)(_*lJt}9a8,BWڨt))۹?zR{cw\EísYK\m-sMXblkG1OJ; n==J'0F.]1/א,aͷG :9@ۈ⤯>J:ݎGdp]ސO(7t)r]T'vܸq|ctMGIˋ6 +Y|%]𘚙4}ѐC>5?^:ӽ4jGd &\Y\qv(+v4ڜǐoe1ߌUH'kwm 2E7iگo{`Jz-q]ie6 O!Qb;́^(6@g(~%CCtq`5lNڷKA갰qƠaa&x )ljٍib>]i]~Tk,a{n ]C|=M% 64l5gIߢxb'>miy{TXtc[ ;7qAk4[C*}ݐ)%e-=rsTvr8sڊ`s VkV: 1_Zd?#,zݠir]UρǮ|SW涵°~DSijLX."9 U&'NVLQ0 "6""]A'ubZ͙/c @w )AE՘j%HlLSs][PFѵzy/H!l7|m)a{͎!I=J_'ǠZCj_݉ ^&W=}לqc4Hj JLn*g6b$ưII=ACi)uDm+(+ |[(Lo0|ΖG,/Wʧ D C=G9@Bc\s|^:u1+f#% C`Ie[21lƪ1IoByn=PckD!sI( WtFP^82d9nbiMKp[?Iv@HG]{sU鉏-nJpZa(r gK-]#튘I3YcX 'k.HS3oHm[HCMziך m dG(Y&0Q$^4:, [G"5k׳>atpyZ6T.\$ZY˱  6Ɇ"} ʕ]] e0k?.}O#MI\oe~`'Z  0M>=;@ =oq!փ g_M0d,S5kXGZpz;i @xEMmqh|Z@fMf5<\ M81 JW1Y7T:YSKd$7da$O!ߗM썾2d&lnb:sFfN/ZES'Wm[5Njw JNl@sL5AwODx or_P8"O%pĿ-6(i+do_mśvنA`ypY_lњq;9bΜ茶m{$МLsRD`(tUB}1 (>pH-Mz|u;jEa~tz'iDޭJnD?'掜pGZk , ߵU^YΙ݄ \ y(Y2\fxG݋9brh&Kpper-QKY?{H91iP?] S^SHO_P#L^7OKȪ|2c^2wrH+n#-3ێmWxKw Y3?8mjy&RV!ߝM^X$PJVO1`% ˦rw!]4YJʍp\uqꨆJ#.ڠ]9zoS }ILla?rG58{ 7114u?g!+Mİ5Nޟe)z pӘ8;Z=F!r {fԤPP&sIt6 _(4Q="W(Ob8*aÂ{g9DxjP(#n/oZ=Zfp]FetV͈ﺝ=Mpq.!wXfXz!NPL!zSS>RPȽs꾦U,4d[&N03a9T.L&4S x[=!֙?o?v.5)"2s\{"z e!QWL4L+`r7E=*=#mv6d+_w10\eZV0j[`c.|TJ4"StbmU[Ț5`)E:/7)LBF!nW}b$bU΍G׺z]|w Н^pIB vB3n7bK#G7P& (F5&/W`![]5XWq&BkBW|O6J^~=| XԏHh`L`sp]U\3T Ui<ً$KT-ܿ/ NY*&0Ŏ\?a;[aϽ*jkkx|mO/tME&uֺT[7̄@? |6G-R=-< ]TٌVe]xv,9\MqԹ*O^EÈuUiwx=կ҂ᑳ~H`tH?,NQ*W/T2Jp1͠S ]-ujH*!_B.eѳzD'%ՠ v32~ -&wUgHk>i_$*iUOh)KcS58~ 並'oS[荽 U3K$͖ٕap珇4Ӝ0i|XH\ߵRo'@Ց҄B8zaYzJZ#\#Se};B4ze;p0 V9JFyg9IjpoDƎmPt-w $1 s iY8ЉWƢQLZe(A>yҪ0%JCgX5Y n" ,Hr(h[>v&dʠR3SIVԊuCqs4wQ RjzrgrW&S"[]\&(4[d2tw]$P2ERo?aNrbXvָ&5~;Tú>^x KiWUTuK`V}#yC!g>%o{#&fk#~#Rɘ2]5~Y!Y|dě74ky^Bstpv0L;~C~`k?jReYͪBMS w2A9 9{t,pT,&C#I+WmdD04Fhu*~ ێ'ĜRcQkZysa])m C}PA)%2NI.˓FQ`wWo84#o@sMKEs&@d^pmkryc-.Q8 zaX'`VUKM ty{b{jbibk϶Qi-_4`o}GdW`VߩXp9Z T`ГJm卪_D(IUXQS/5N׮h{S؁S}< 86>ZRϪb:/}{T1;C23؛Ȗ :AbĶjzL [Y̟Q͑"gڸ>tǒ8a=I<5 7]ݻC}=T*q#$lH*bV JE^Md8N.רuΑKrչMUvlVKC_JD4hMNLIw^(#~%?1 'kn='uk8n=o@F!C'4CMv]I 1#\1bsbFGKe_F +O.GKuN≹/bFYĦ3&d&*>!XQGKN"">OF>x&ֈJh6W"wZ˂>Vk 7%Ck=L[vo?%FS %f]*{l%Cd,4|ri ]1۠[)@|^ 2KPޑAn vW==:ׂk~*m9;8WB2~/MF8fШ? jAlE Odi.zsU$%D'K̂욍2+g"boAPsk=!Tg#hEDq' &# ˩/3\ꔷNHʉ.G(~cjVHfZ\jz\#Rlf:8cU8:s+.9":Ams~@a,gb9WF,<ը&q.M; ct_GUgxxX5fkHQY= c|i'-!pY8 cVhSDZ&ɭ@MxmOjⵄ{JHEA @{(6:$0~3NY6"x+պAЊʛv ^ƅ4+oNz~ BYpXퟙB'!^nj9''FoMIWW)=h:ԶF"VezMD<p /K9SQe>;O9qˤwbl4(#:saHTFQAc^WUNzm7^K.LN4K>AsĿt8II{Y`1f3Zl@-xN=5:15r;u>QkAq)EG4/K_k*DZ f,?/&Zq1Uci5׷ lTd7+gK=r栊n*||{%K7pxD'`궁mN+j1D["K—@zM5:Ua*bS{2 mQ]F_$12Ǎ-ci?h(;x3ޝ ް\$SCj`U%ᕁV֔^?IΦIypbDFpp[`,T9]rg"yqiD]'q2sT;%7~GvBE=ZCʾJVQ^{ z(ùlӼ4& 1L*H7[eoJ?胍{Ps'2 bB:wARJ@[_;!刃Gc[7 KukàVgAiEt"$yz̙;ċHlBٛ,FvC.'ڿ@9ʀeRzJRZ8mp6x ;@t[ 2ЮOry{FA FF{ [6Q1~52/J_ P:Y&XnnZ>\|0>MmN^B`s1Huf;Yz82aYP@P-Zʗ+$۬R)^FlB Z[Դ7ycquR=3I7zM}5QXN.qd8ez$uUMБ#0x5ǎ7V㒿+ɨmWmwBP/0åma.IYh1 2͵38/jb%x rm] 'tݔo)tGqgڦo1O}bC:ji4~ل|` .nC!$&eTP^.hfT~Ԝ% ߁R5I>[̅*A)cƍj(S^rJ!iqB=и'NR),CU%B(FH2A0KboۖnLZ%GWm1*C-+c=elnw2+q:V>]j(>݌VCɸ@_O=#^ĉ # qe: V@x+s~RԸRhӕKܑ."4?{O[/6mpAH7j$4}IRY5fVfEɩG={.[$aޓ։&C!ќtnY9kJFqz8%@USN[aHʏ@ .- d9씭ˊv g< )SJh1SsfC9]va9;_cV.A*,!^йwBpr *zӥ1|N)b{wnv<3kyI7ws|UxZ/c~ >-JVR nUUBQ_L{y\:>9ʁ`(JUf>Yrj2RQyVl B 3`̈%PVc0DA?oaݚW3 lыʢ3̆d*ܟq~Rsr1 ~Y>W&nY4@}t(8!k|޺4`ZKj{̷Vt[PYCp:aV,k%3 p$۞kRaY$pƈgijZKz ZD ,4 uT#bMޝy.#R6Y15TpFtLbp('$\W4` ԬDׇy|j`([,FCĎ^V~^^@SnsQyN>LHFIi6Ar>uHj6jiDz̎cJoXpWg~5,%c.όH.U gSc kq+Vq\ԝ ,yxy$S. i8=SÕ tku.{2u3|)+ZBoNLEy0oMK18R>e?V Do{FNv2yx/ECм⮽x4XqS [LGQctcη8 DPVfz~~x QNTaܢ'0H>̧= W1BgM[&5ܒkS)² mVka"/]A{ΙHQ-ZNj[ ϯEof'ceǎC>+>pdU DBl~r)ULEH:?/ X͓#_P٬c :Ɨ.7oȾ/7ن^z0QF1YNxp]i%m$s/@qb?1v|z $܏ @+Cl|sS":DV/L8rN`?8X|20GφL7.'%H) Z/9jMA"V4*SݫW?\SmDdVe Ҏ~ɬ*x> tI5Np\v϶;傺k%8X[)I^E6Ř;V5*u9qW3)k>Mm(U:sdW.$mK`$n AbtEVi1kMV T|VlC B #Y+9lRg ۨP`PU C,d*TrD7'bW+PE`2 Kh8vP*S0<el!Q_wh0x̲͠nzuK6+vl1 яmU\ej ~$:w_&@Z/:U:Y-+9J+C0FkdCΰ?ǀ1Clm c.L@e?NeA$?8ee{ < )WXY t|moWmݚHi8!# t YXka`V7y*2fB<ŎNN\RrnEM}^H\];uH&!m>T"ӧ\ ,|~ +=Uf" Agrtv)>VjY!i⌧5TD74FCiЁI'Ofl=(J4*ŐNU{vƬMsr9)fF]%43剭,A鄌%98@V"j]3)Vw$09J%Lztm"+[Ϩ椾/]pQl~nX(6_,rN# 8j%nz'ۅX,9_ddIL]0Rqў=lRV"`t ls=HLBoZVKꄞt3_W đ8@6 }(RٟSη\xx.&ˉ~O9O8&4G͗dQ4+2BȄ%8/& Yx;ֳ",?Mv=Qow|E5&q[^K><]3. 20Q qyBWj8g 'f ʴ;mM:m4T/YZcGK 3uSwKĠLcbXr=ܰ:†?aOth/Њ1:ĵꬹ" :GWaVA ]tT:Qdʆxwy!&ZRtxurBn&>4't6OI}PfSc]ScYXڪ&S;BѠj[J5P;t@)t Έw V糢1;1n*5$Hj%| HEa[} q ӹlp𷶹2Z]͸&h(')èo&q"MXo=>-pke q)yؔ4T^3 K[0Y` U=יߌEjN} k{L;6W_T- TuyOa PZ RӪ&>&[kuL Bc-q1bX|+hߍFN3%w̓vtmǰ̦W:: +og zbVR[$ូOƺStkIN-/tT)1xSC3z\vm/Og Vv[Mt2Ȣ-ŗa`8G\RAPQ1Z`:]A& oO>Qo6I |z1I o,V$ M pVrRd|Fz,rڲNXB%@%ؤNر_A*awt^fA)Q H8F3S?#wr[%Ey4#iq_%t,2 gks`t$=æ0RzKLr -J8A $a{f4 :U.};[%J ~<kjV+\1|lK,S { |'`m! v1K,RzS% yK-^ yT(M&//C*KÖԸcF#lX7\X9Fk|Lm|#L8D;~'R_m.ZXI_U$.IKKDNpܲwZ#[Is-ԔLx2;"Y/<67 üxL1kH6:KQ#)%.D" 6 #k|]ӅGWAjr͍q $Ι&}NJMe(x?04-9TPPC#If]Ķq:jH oSB9k^!y@IA)㺎v:B'Z +9:d#@F?p1ʃ# [ o ψ9枑C/lۜ Yn"p{d3Z qN2L1ARȀ"efsQw zŋj [Ľi(xp=xqӼ^nK9or?Ǣ~"m(#=17Zϲ+džrNymb]WC Yᝅ=*CG4PO mc7h MGzc- b|9_qvSg]/QOg+!&uG5E:t fu2vQ0PSfBK1FܹFE* Iv[(+h9!TC7>vOuCխ`[A⸭ATAn\ Z[T$jor Ӏa+TRnJu${`*Ε=lƣ5?H9Rï)~%.j]EdVX{] S=s?~fibXqﵵ :{A:] C_k; c]vm+w e3b*f|LK\gRs XiTL/a HfnT翑:f MNJAZ/^E+@ د䡞E"!w+lpgQtx8JfSﯿ S98BMPCTb8_CK*F[Cuڨ^Wn z k 2fŕa> ]DjZ$"DPNVqJ!a}EIJ=u(1?pKtw«U߆aGP}$6R1߃*֜_Y?%4 gtp \N/B">5:|:e no9raH$o>G|( WBq|Hh C<> ׇ?sA DӦ:(?yRЈ?C&~ r<,ǩvchem|U'15ZGOnٲwV-ǪpdsM26*h>>_Bx5 @Q9*|Ja^Zmw E/ϡRA5x! iBCJ**IQstQ>F7)k}R@OWpdqlDdKwaw+!o`u6~䍋?W)wҵd(h;/z͉#Sp m'DgިAV;i8P>PTbI.a1SUZ j?)9~πEkrԓ|pm%[e$Ş]l7?G#*{'D%t{C2)kXa2mˁi48L焤7zdoT #>$AͶ6t6GASe韯HV."e19\v( DʍJ1X|\ N3tPX\dbұ /IxoW_Ae34'5BG>u;åJ|k&{'Jnm8~ƴK6JswN5]-R0DGUtIy6d)5!icq_vcݨq6FgYcSq;bD&<eVSP|u# kmL(20Ny,b/r)si |aV;V+~ޯre7\GUP*=uڜ4Y|H2BDxD=ʢzsII i }K͊ =fѮ;4Cn!c>Z ~wNIKr*_Wdɉր E" Plʶܲ=bvkyص\_fHRK}pu3 8N$e-x^* yֹ"*ƥ ֦'u%:iF]h91GT:NkY\Zb`* 8^kWbL,#4(z)'?敋-j߾vaN'<{6,U3#1wyX ;$ȌKٟSf6oa@d z1gtҝT Rt4`Z|J>.{hQMMBYg_kt`/oDjiE.n7ۊT`0ר(Pv~lA8x,eDZw|gl;DnLk1DV߆3 iC-AcĠ\1lzEVw2A@FkGT|Pdu nFaNڈk趮l6/͛Ç!<iˬajFb*n nV`=wpu>:s}u6- 9 o64]P)ʃ!bb5dw3 akP{Oc#:,N!Ԋt(DEUAƦuA(:Q#.<Ç,IҘgiGX34^s欆wapjygFy‚%~g '/YεgRӰ[c7۱߫b p3?a s39_jA肇*MAaqē\ y/k\?Ly劶v͙NjA$ӔS[l<֕լupRD(SR |SEASL&gLL+6u5.zPDQW㣊Lэ dc˪ao݊-7ZJΎZ6 }RjZc( շC:azAŽٚhQ\4q1$<RnŝNOJ wfN[(AND'eR _g] ͠r԰Q KTWC/R9Y39&6tvu/E|Rn?G=c "Y <2IG_슣+]VO\|L/!-\yfyXF)0y"ڷlnt~=~540_aJAx{9 ݢgMCK@g_5Rezm"6ڟpQ.*TdP qe`[@Jh`4,?4H *9S9\cL[~*=k ֚<3&O0E{}H&2uK!܉\=s8Q]GZDxUP&}zSUC-5ᖸ^$v6oP?Me5"(9})o"^TjcI[yj$s~# &ӧm됍WdTxP3 0)}8UƂaE:tzv.Ir%DJsdp NPϒ<̠X)Lln|в΋|`Ky@g/Ee5|8"heǟ򩛩_ᵶ|!6\ud+,aV;^4:~!xxTFY'X`tyZ0e6=NkM߇pGA0ǻ [d:Ä%3m*q^o B pZ,i[AOF@=ŚIIX[ʰ/m?w;,司h|krl Bg:F(<jUMsaXHJcj{<4 {&𖉨nzc61 VfZЎ=(6wUйZIjƵꃿXDE" YhIT{~{h>'sEOYcA-cd_1(iKu2CAt2&bP JĩMΠVvډ2uqn6YȆaᑞ2Ŝ!.1/cf.>Ֆ UrYnfW2!! om^Q+HpTꓹ@ȳ]N ?aa2؛XI2[PD{Z3^~ nG|5pHeAU1cwɰ/cxN:X_V1XiS٥5U %~@K%5%͑n=9=ɝЃ 3zJkLLjS/EmlBn%y2kj [@BP :*y5nR\Kx-' mٽ+$2y".W+pMRh @ISc=# VWS<;"N6 iMx:q)x\*wn d3*ʳ($|=W*mXL7yjy[EJTBqͶ{`.IYbJ) Q2e>k1Liz뷐j!KLgW\X6_''߻ 1FM\u6P!|bPv@΃#;3Y_sJE$DK$9Qϕ!> |AevyW?w>pt|ǐbwu0= Zg$W0"x* pm7%,ߘDj2:*TY `KWU_<.'2ټch[.eS2hH^T^LE;#u Q-"6^@7 ,h>3p^PϷ[psϙfܙ ޷ž}5&>0ܒª%"çȑhYh FSPa|{jr-'LPwV4p&)?רpbO7:)uЭp2sĵ_j_K7T$-RDIvYQ_l:Jqˈ}. TSm Kx]u/gf .҅ݭPKM|ioaQ gz\kРA҈w 6Ɓ~$WI>ge,ja<-HQDpy!g_crʗhr"aw"&k\Nv?  k L L: b' 0lm9Mi%3svHE6bl_r-ȹ Z8FM!??eߝNB Y Br,.25JS.wW&OKlz>wߊ$XQdK] Y)zV5 Zm%N%mstƂ6(ҶsiC5I7ZE[pK^-x4@[s~!ApS_Ij=~.uvQlZ2@+pM5)fUHJ9&S4rL>LVm/YlIcnd~e"xzm95h+ (eLuf3_P߫q6 e?$W6qR4_~ 2$9( -J'%сlVKFVg ִj˒p}jLI?qY!JɌ#x=]"ҴFSr "ɳ<J^ XQOQq =|vjgd9?%y A]BMH9~tXI*_r7=bP@q'k Ԫkچ^frDL ]}X%Vd'w~˰w)*F T$*p3?.Pr'0Rk;ͥ]W KMkS6r 'SvKa}, h=y>yo E"޴OMo?x\Y4=:)~'3֦Z[Oq0:ջNWr1[0! (!Z1Q1ZW1No羡)nhV݇T";85AsiB X\r/mfڎIi/"Ɯ`{~vnRN@`ɲsms"(3jT;6=n2ikŏA$0`jlNƀ2Dit16B}!L")bsPo߄Z[vX I׊}P >/D. 2:-:22q{.e|Zgf0bZ@#d/#Uķ@ wV7É`M KRgWjxMb",*ƚSXL8l]@ 5D!4 5~H7NlajCT (|6ز}Fx oOo-mۻZ WPgey޴XVSUělaUJޕޘ`)θ#/;6\|/XGD4v_${854N%&U9L"6oZP+qT#0*UǹcfNva j 'd|b/-wR.HM`Z㲭&2<+EaL+7Iݭe4Md95'X;S:CV~?AUkJڏ4w{TAӑ!ꠐߟz/uo<ﴉWR >һI=H0n\'|DZ/h2gT:vՂg8+o(:As߈-%ZO\3jzO+@u;DD0&*Ю*F$SK\rY\sfƀt  { |N9uxdc"* Og Ig(\+M`.D]e-vX?Y{rݻ!033va"rma#G{w%eL"Q Ėu@JZ(a ru|n6U1Ԍ7Z1P;!7-`mkunh@#[L m疾V#8~+TkID"ߜ@+~PYòn糐heJZJy z-%" *.: RN-y}/;'+*aEFjM"%Jag=$С{xR_UXFu֋90[ sEz,G4۞_%1c脨qIjM$y#r9Ŭ7JQiVt$!7?_GNjds^mct?tBHMx𗠅I;W1c)_{G],ۊnwG4~r۹>A"Tvt,io J~2c\=f_|L~=Rփ~VWF,r$,(j?TN@1(ӻfoaN5"9x,FYο4_fmdh^ڃW.a*ES VʨC3g(̳|D (r'q ,Iz[Pz: ĝ ZJAIssk[j\1S$8SMm#`C{ڇS~嚟ȑ6 U1_"0ᷗ?몮F,a&>=s,fjr k~!9X%κ0 O]d mRтA1[Nޜuu*H%"B;.h97̓:56$\ +{uz#6o\C*g R$Fv~[\ [J*"bt\u$BBLn-.Bsꔴ=1b~[,tJ_KZ`(TcO@l|1#1j%7QYy1[ q\ Qo;?uxp~A,YkR 8` ^^@kod7°+*pgޑ/׮J$|p 8}@¢K߂|3Ov~ #mWVadoaD- 5?p l~@THd O >Z. if䂶Fx>hj *s\I N١z7W=|xz9~p@q)I`ӯ~R/'d>*MH ʚ[}":?ŇM[PmvPZҔrbPp9u Ql{Ui~#fص"$ZP0v(}F*)]EZ^TSOP&.N"⾝}j!B]ﯯ͉DcK" *:2 DCۍ*JX3:RUApjHs쑑u-M3S?I۸"W< ?AЂ@yKq*Ki5aU#kń@q4T&e]%i&Nu_W-EY߬1 }N 2yր@hdϯPnnKٵil@'߲8;2 Bn,]Rp%oiГJߢ$IbkZ*H]^犡2 47^z-hqC|ՆT|Q.FHbooWnkSmc%O7'ܟ.w &K Nb&BENsQCʌrW\kb iϠx*RNj$ZTZ(jh_L9 %l}Mdp qfhqhS\_L(h@(d*au`RON lb|-Y6+zˆ/ qZߘ>p-bꅹ$՗Q "Ae"V5X: ܎|  pP$w@h[߂aY ﹦eܚE͚^BjNjj{ /ґ}IAZ`J(̩,^;Td>D7A:ViW_RP9pM< YySf^%!s'jjF5͎VmzSlpQgKɶM`,x´h\!/tմؿ!Is ,Ԅʵ *S=f+8µ.Xn3\b9Od퓑Yy͘ta^[wy7U1!8aFU=GgͻÒ܅Q>y&i{dFj-R;w~;:xQa(/p1@y[7k? U4lv$UQindAd bOXd4,c1LsTdZZEuIJX1/`a y cDN&p@SwR*5gV'|m_w4`3P+!s{(ܯ5%|N)B]Yhnݣ=L/}{Rʴ u(>UxҡT]\6CmY&IR?~uN˫Mvwi GX& h*1~`{H'iZmr^: bj+:6-l$2udɾlD @Z3P$W!28`q^ޑG(ҙ `BZhg,]NV}h5?ԿEm ӥ0 4 $ m~Y,1r7mHvpDhG,!Ps^ƠzP"r\RK[/YCJJvOVp@Ϟu| W}MBs%'|zut>'P~oa;Z]3q@8XaG * !W j2V+aeYf p\:NP B~Pdz񀚽x$r{O)f?`^#зU ij4[ǭ;,-|DsNk{MLec2p۸6]ߙl* Os4H _ix'ӕ[Ƽ#ksD 5b4Sӫ)hMC;dyEi%%BbvEP ͅF.t9HӰֱG$#PZzV &_~0g||0QPɍ 6[oySZ'?}?RW]V)#9MRu6_C= pG|yJt*W(hn|H2ˣ?86cC 풍N{i=vs`ҴR4~-¨UdR`ݙdYZS`N\]$(5v>2x!x%/1#nvw (x;:YA&)Ԍ* )*]ps05E e}ŌyQJC ʹy~\ӊ@C7s4{Scm`ĪUxa@^nnȪXd\="Ro\ܪW,gYD욱롊UHf3O(7/"vRmg:w!/jU`|ˬd/77z"U$ut蹿{O9sTcT85#&:aIo{)()^n.7Y ([uOhM=~x?F^s>]9mb{vuD '| j$޶6ǧgc[ 7zh$?6<'7gdi.gK/.| aHw?QOmY:XBdX(7*,Z k]P0|7[?"OPRLwY KBA. Eݺ"+\>TN]mtS7k.]wzx݁(x#t˜UبZ q#x%20DD0sh`8Vh4N|(*M ցWeu"bי6s7ɸ̧"8Ma!g5E* 1!:1ðWd]FYIZ?_̬I8a 渋"IGGwpp\m"agx a*\x~T(' 6q fyܐ|Kﳉ)`aQ wظh>C;sCް_7~ vG>7/}J m-Ϙ6DUt~Xz ӭo820S}J{ŌcPŌ0pM3͎K48:J81+`CuMf"G'@#[:qaMCբpΜԈMg}–(3Fx js-}!N(*Ю1UTs{^J|OhD] iٍT6[]/Q`;tR饲=&z>_RkxW9,2MŠVRs8/̒ch(1C6N  UXX`TюpR~'qSπnT·r^ƪͺ%8a.oVkM꒪E6mо=N۶JI 4^)j:}|aL.!z+݈Çfj@t6!_GpTKe#_oÕLK&7ZM-ݺl5/C$@{Uy$SDqy*2B5ẀewjƉR3= H2VNbzg7*~7eKdέo:tS8wxar^e+(|Vɾz #Q̔a +s|+N8vɘw 5K8\:-ͪ%;/RC(]]R\/?(3G:}4@`Cdh(5]uQzj7r4>WUY=ʞ_M3G=Ñ璚06~etqKN:}:/ mY,&2ߩԗ l: ВBbg )(IvSp ]NH{( 7/aiNrK\ 1VeI}887*,pqQcY𳣢D ՟b^Q7ٚb*7Uj`'DGҐ O}ap߸]ou!s1AyGf˥sNpߤ"cIMh NUT´mrn̿8!޵Lt2bC>!=h,x%Zk;3 zp&}R~E(e< (<:yeQy.TfL+Гw*H2,,$ hj~paa0oPR yܫj@BoF|bi)=[KylFE7eC`ǃ]& 8àfVhK>|y13B}kJ\Ǧ-%-Vf~~ΐΈK,>+AIڄ}yi:G;u4j'V1ass;+xL-.7燚}|_}]oL+>圲;z6w!K னŽ%'lהox #иX3< 3dU@Fٮe7XqSMmZ4m\S-Z+N`!~ m^8 =WXa}0[eWמZvO0):^.n㿡 {BW\^LӸu]Pċe觜p% a}!MOphalp͉y01_ϥXO ho6S˪ܲ>rah^[ Tu-b=}wZZZ-2wUzRN?:*3[U{zqق*̠٨]>\7bJXᗟK֘6~g'wmTh 7tY]Mxv*x13[7eJj[{wģ} K[ z2n;d/0e#M r&^ۙd"ᑔݓٜOwQ -$5 ,䵝9Q–XO[۸W I^<qUn)B ~t%B'ZUEZ!~Br~aO雹m7]|q1' S- t;(3ߧWKz<-p8b8{i`\N1=tE|22#yv2Evɪ.ֈ}ca$1umU v[ V q J2}evcF u#ױOQ{lָ:@4w m@L֢Ie3pX3|ˈIA?Fn6}Vi|S>p2mdAӘⓨV^*6jpSKz~PNQ@| l{+̇{hҦP_*U[H0eҪ,vRN 4wa,4_QWK"I}Oppկ֪qt HΊdЭFΉ1f8MIJS&BVN^t6E%EthXcW| ڱ0CJ[J )(5 =RSqIu#Rsݩwp|&8OE%ukD~ڽT?:SA!'eU[Vܖc 9x?ه (Lv$:XMIBIJEs<݉5qwmk4ջt%g&޶-irb(%q z-lGKo4J/v_h,i 3X'o훝TVH{Tڣ;U3&ߍ[3Xd}j.Bz8|x[2$_ <wc <{9Wz=D?Wmc "s!R-}zyLP%Y<ޗ-ƈ>b|Q+\Vw{1re9DY#yX%b@V*gIƐN[b<3/'g_r*<nE8>3xm.v3=6lW0-&qRܮxH(>v৸|E$>nG{WelTex>j  l{>FsC9Z ;öRo1yHDB$"W6Rx'^0jYڭnIҗ+ ook)-`)i%Nߌ}Z &`b;'$gL;K,2[{wkl:F"xlԚ) l>0(j >놚uv? `}}Lh>z !+Rmoə/s.kT;g$D(mWH'Gw -s>,FvrcՙڣaȆe B(=%4HBGV20Sl:66`9?SCeA! ]2_J-:4דIt˽p&^Wo־G/t@Hi Y&9lv,#0DyURg0!eg|L"ZIۄ G;]jcI2҄ǂNn9{$ć0N r@0sFLSLjbrLײ_zd(L[c.>LrMgoJ {ehH'#D[Ar46DLA6,yɝ]" '& '>:hO, o?u|k:qkWQ5S" uЅ9oeiGYZ Q(Auxd8[Z}zerb%P5F 1UaG.OƋ9aFiHTaBq@ol|Vе_^j|}l n8zT/=0rf0a/fIxX/.;P,/q~hʽҸ["{\d= UbrP%`Hlɠ{XipYo' ({n /M(u.%I(LZ#9r+!~6ڿ(l$gs*m̳ЛX{@ VH`_ϾU2pr /i#qח('|vt*AS:ǣ`L^t&ԋiO=|ƞ qjHMkQS٭KէG / x`nڵase^Mb E*UuG4@cPTH{0EI Ne6TQAsBp2?R*<$6bazqPq|ryxX 5y4PʶPߍ}= FIl@o|Gc}bkp*lfFZ|~X 3&j1e!TSq|/Lj?cYe X{*á,bXшnfKXlA2O \ h0hxŪ1⻲^.BKuS$r_g-#vG3D?"$6hJ~|d3"x aX?..\9^pՄTQ#BC #`42] H>P^%A~H*1> "˕`zSBe(ՈU 9;,6 qi~,OyR tDL: KLt{7S_jbIWZcHTUf-גRFoco#SֽG+V*m<]}U$IQ(-f4 #">P(uIAWmrzmlQlf OI"&m]@);h O]qƘ<fUb颏dLX="&s5@V|.yPit="-~[@ ]PRLctlnmqߢ 'L2$m27 Y׍#&?0_G{4&8Mls]  <\SeQTExrְn0pwY<9*B)px&R!ֽ@!8w}@A mC3E.QٹɗP[\јGu`EgkyWYt/ۘ&?Z2橽˙Z:bD%CբBiN\ni}ÿ,۩9Q[):o^#.ܦ]&'U q5㙯If[Ems:+א852 ƍ=9.<+{<"Ʊge5`Oxol7 4?[ke&U=u'IIQ_Cl4!D26E\kvj= FCq\GPd<8%cLk{ٝTkR`}R.sRG7K9C! .Xnrkf0qkcM+`QB`}iZ$Vf[(=0Ykw?E:,OŰԜI5ycS",i_cx6Qif1x<3K5;bҍ!D%hs+vv&/UW4핰Ķ]EEwxu4ty`&]ߌD{-mԚB6)f)fs6x(IK[*Df,uW# V a4VH8%p4[~]l:\*XMأsF b{*+/Iff%^]yr=,NhvǴCt(F #%R^.Kn/qU$4>,Wci ?'y#FnmPU@ hsu;cT(*}zuu hQ,9/\ΑMM5%6?~!* 8 \m_/<,~6;ה! ;k%'7#v41EbU0\(84=AǧAHAkT2[Gu *-g§4R4$SV\(*M ߫#hDoV_>pY#/\A!uJ^5(JIocnZ fòC}!|c>,C:J@2j liŵ-ʷRza6"b;:r1?vPW-G޾wL(USb]ġN !~#aa4GVN O . o':Y`lB4VW3=%}QQ4mF5O'B)iY⮰沓 >j>6kD=c&c$ =cϴϧ;rEqG$xnGOAɨ]LVQQ.w._:J]Mqym;Xy!4/ERcӢ6hފĨ٩ߕW\_6p bpH0o-hgpqǑpIIt`jXWCZ:T!s#{@aWn2`S^kψD1l49g2m0DDY"yz9-?w2T!6l$m7 ':~IGBCMrLp!&G+fnurl ( vPqyHBjy'ڶmDwhM}>p-UUD~ ' Z#u+8)U^ 4NIRz ~̂AKkv54L mvxu_O"VhJPIٞs)%<,:X6im_l`0,cZ)Qm4#XҼuv\7ӫ0 ]TxJx O*Oӕsx,"~2=a,kB_Jm.-pFFhPo_PIJؿ؛C}q?XIudu 1yA±3dɂ͛\71Zsk=aC%JX9 phԉ>Ǯg`$JAux~[1^KN4*,?0s?M;YH4q~N l`26Qr2>C״ށ[9zveRmJyN(K&Cď$*Q`' ŻɆQނIj'mNo ̖_֓3s!uj#&uJ]A]5wTGEȳ`5.`^%qn/X8ϞO[[LȶMV+5 :__0^{_S94.0 s&XR̛3@c Ɔ pbҺ@ނ1gC^(2W{j+tl+fvT{A^E][Alb7~;N8ZX(=: ;sd \oQ!,ln(/3΢d &0Qda*6Nc?.U"bG&g'X؜_|%9#Wy>yTucˠf čC!2*սVKK<z^[r߮%2>.ڊ[`#%_JށxlU\(DLpA> rooa $Dw'fFԦư eWɖM|(wItXP؂%7.jKSQ?7QԙHXsUc75%bK{mɔnY PrM!έbeqM(~f闎k,>y;&᧜a]!ԵVNƊ]5ǎk=bNǙԀ7jIF"V_Cs:USo8Υ1;J1rUnߑ++#gx7_B/Gn@47#:f Ȃ=R҆م@$OnNFkٙR73DQ//1+zP. ֳEtU<6\=))|3˳Ȥ wi1YH >-3*V*B0L|G hD) 1e> 8to Q2(pHiD/7?L9N iX5 `3TU*fN [a) ,0< !:wʸ1E;Jo!jxz ӎn p*q}Z ^4^l s=N&fq u8H8- 0)B$IoSEGM k޹yws7`Cvb\=.j07kR<~3s@5Kt$64o z V?T",0;pAA{R -؍KQnT iQ?L\7m"nbh( rjgC{Ui4h!_((BroO$\~÷o;5S<կٮ14_˵mG7͟e+e$MnKg?iy6?9!'![ƼCi(+ywɒoX ZI_ȵ灀X/4Kt\ 8cbdml~ίʾ"ZM߅"&O{82Cx wfSHnΓPԾ *Lj?@b~2[%qhBb\Q-JWk5&A!+SitzP_M_ˠ}}=!Zӳ.W38Cg[mYvAd$3bv[Š#d =z ضƹO>Q woёE)ѝ[Rwӑ1vlP|vow>qGUr 0WA!KFӀη?kEG%##Ic;dCztK.BTJ|ZtrMUZqҴdrXg> ^k3JgIxx0)Xl~\FaE;l7>AR͈pZ1EUVK}os- 99.փZ7uoNd⣁շP6QEasT9ggLPgfN{O$ ϼ/@J,ν;.-pEq!8VZZ _kogyOdqK8a`fh,u* jIIb9BT8GB5q(5ݽojU4r75C5}*ZdJdV,mQjVyTtx益aČ2Rk)lF~@d #9S瓌FVc.hm9]ꌅeoR7R]7 %+Wq;#eq(Gvw1at9ϋ5Љ[^G]Q]'լ#}eWF Nnש9&H.:X-\R`/ T]ӆUڗ8J sQM*H'z ؠU?Y/)k2)P!rtnh0>ST}a:SJo*,V0+!%cpj:xP0Ͽ t6APG~Qp@n̈ɼ-VN/L/&#y1 i|x[a%q4:)98:S^k"[QnbEyWJ#ƙ#c̽Oz@~A>q?]I:Y F`٤T)(ZN4AEh}krjZ{..ҩ 8}*$ACL'!]Jygo*@g mĉhugHr(_ ra& LTVsl{Zi2gzm_#DeͰQѝ͜9Be-9splRVKZcg[ ѓ6)oTR0K͜ Q$8=T<BUM#WH ~sc4? cZ1qcQZBqr@I<4`؋Mh'd곃9/4%FORCѿia;C>eU -ݿV*6ܷ)J=+yabNJ{3SM}l.EUy@;6<2U!fHīP _{H̢OIdC'$/bRvfPEG`"BAA 7QOj*j@Rμ?d:=ycPp' qAy(JLT$:p~=Aw;0'YU<T[ƧVe(ΐ;kWHܘFdO4AxFX(9&xLZk5phf6kZ6?U6u٦Py V݀'ڞ*!k =utpĔ;偤q>TQݤ>a8!QWeQ~!?1s+Sd21e??P[G{geYgGpH_>9:NLB3&Nb[\OhL^P{&e]wj.)p8kTP3= Ě>@k'Uf?`(b0]&K>of5 ^hDɻbFⱿ!a'rH2>ɻF0).^RsPㆳ$8;c]kRpz+̱;>QZ*lG q+ݢG WY]jo8ѤTa%pRW=D=S9?(!RtF޵ǐtG*a2淚``*Tz9?ڝ t|_V?2uRgUZ5TP"u2#vgϖwm u̧ uL11ߵ'Zt=c [p lc3glqߛYϭwD%D~fL]TEu*2#/" ؞6#IT.M&$/~ [ڰ\0 kY`^V]kzHhgT/@W>9Xk?%_J?Bz':ۤCw( X5@c S/(>Bk/Sڻ~/r3͂h#2Q}ڒxAc)DynB]%(nGߢ}dI2X- ]կ%b↚!-~؆Lңf8 _tx:PF=bU+ɻsi^l"j;9y|h)Gm$ʞMP.*7$(YrJKEVқAt>v\צUcS+0g.U: $a(ۏ9'*hl~qyuѽ|yzg9&O)%ՁٖO!o֙צ4O:aUHꞻ~:R4W}6F%6 v}DADq߲(˙7V J,0 \"ӡΰ{Խf|u7mЦȠXw}I. Wl ɍ*zj&5jI i s܋aHsXqb]F*i=.!{7AfU4Ueayl<Ajjq%PW:O xVdn$u>K΍V@@<;p{VfcVjXc|_4ɏJkg}MPWt,Lq"f=8\H]e,>umש8U "XGMw%gFJ0|Cm/DMd;?z2~3;dKUAdʇOXPfgm%iV͡d)zTW-]^@ډZzbD&DxJy5w{RBPpXA^^Lk_Xw%A+ag#N |~46-+1PfU #/Coq#m~*:4BT ISR|P?R(+Fؗ!V+7?EFH:X'9Bo>5T9|)U4%,5s[&vgǶkbmpU!4yhVAyC+lQNzцkYma-_b,ZE5atl_Cό.Qʺϴ+kXh'N?=nzȽ0VZJEpL*6/YɛC̍: Fc^ؒ{" ݭn'$O&>󱊳a2(>jF2=IFN0uO l㯳Oۃ{L\ "㓠ՖW b rdY%Z3q-|kf?ʒ]JO `Gvsk"F*Ѝ:bL\Vðh\6q@z";QlFEo\j 8L,6ׄkBa(>b͔$+#!FU/_ Íf,c}7_-=Q]2 TR3v-noE%xNÈ{Z\ae8}."A_"C[mr$GjX۶I *KA.bʮ c-1b1iqqOnM#;/Y Yh`HSՒo( ΨO6%, J?4bTl4j%[|-8k@gAzBb󷸀*`[-$Yu鮧o4 ýQaY< e(=ڴN'ul SQ8$IzZpX+N ɀ%'@jrfrE P̿wzHnٳP耈B_l),m;RLکLKGW w55 eSiߨԆS(dBAA2G y&~&!>ZoGb=cexš"tICMґ˳o/]d| "[ĘwSM pi )_\wb:f5$v  KA34hа-OFf#*36`0V'$Y^JU[rݎ{7Ԡxۋ?y["2k!S˸$FUB uR6gבn/)@I8moйP WX0ԥtW2 rBqbۗ`߷S3y{@Q=9 k$!g`*yhȕΟ˽턗@wFdL,xE͝D єNo$,~ 56sJ]r`򜆰 `%&m $(F~,]aV<#{[jvauXzK9}˛;8)^4l.ݔB) &uR@uթ"r)ꌤ"I$ aRlᶳvbϘW}r֮/PqT kj+\$ Vu5 2bN_AV@I`dM5v΍z DD}&vpjsd,b=1%L[*6օg]3SUkx5@2|v?q%X(K3ϝE:V31O󮸼beM##'e`)XM+{CnwBS@[G}@Fi.#76qj VҾ6舶JXq! ~]kV#-K=^6ѳB ,rr4a}@yAoR/FEbIi4PS_b~&Rr&8>a4/DXXr%;5WqO P"o{QyS!^nqB~lUJVNxNKܚ&+G>p:xHG,P|D@g_PÜ<ց4!,e4ȊLCQ8-ðV.as3>D9YZn=tn[%0/WIf!Qa䶥>|BgaǜLudOɚi o'G.UPDKR(٨3Z[1ă|WLnxy8MӨK `3|w?p9X7`wb'/*Rl3{@[Fes7=Q1FBl4UN?V"ulN;C$}Y=ΧO|L[]=a݂KEX;1֐&~Ij?,<,f⵳grN,ue )8sVѹȔn9&"HSat-[o$¦ѐ9 xi)Wp.̬ :yqݳ,` [/T}N Z2 "O7EGS}~I!PimyyL΁O,(O {I.}?Bw#+цR4p5x0kS>kYLSPߺ*먽p&vvn~n_``]5кwFUR,]n%_;?^ZjkWBc2NҽB8Ó56]J_aOR_(OtyD?@iE4):>-~pT/xl1" [xO+ZAs+Tf]z<6IQ9=;|]eܾoVƹ\ =Bf^p=dQ𷰛csR@L&/TFaa8gEy9eu~;H?YďH#poC<}Km;`=QzO>MR`Q-YZ)5A5ȒsokHDиgHwuĐQn1pvM6X:ț]mbV*~PBf%WQH|t^*Y oG;0ȥU~f9h,O̡i;;-d)0;G+|֑sԾL5Mr^iFvp8W.|(ZJ?vo :-[0_v+,}EIW56윴-&8k G-Ii$l eGP|I$})ۮY GBVzַMcmĜ iԆJR9 49Q51%]gB=}AqdX )1+Hkmu]oަ@ԀWAȭnlT$BodZSO*rXl.J[d7nW4I$77k|5bj{ @SZm_ - RkV۪ *^ oHFl!4 w*m & rۿ~ rfSsuG-Cg0:gI&: m>0CJD[b 4AM^]Onjl<|SpkiFhzrD֓DW.{*iw?]S6dM 4ӆL8oO# )(Hšܫ˭u,˜23=h3ղ}esD%?}^+_NQ3r޾zbZ/ESTNaįd$A<\ ,bҹ?3CE5%cB^6"y1`% Kad%F"rU-!CȆY**Yby]"؋烥GawY`N>" {Mf9-Qfe}M݄@ r㾚uHqhD)yOQ%S I큝*™dFcm'|5/J MSh_GgMq'_*> .N07kz\܀#thJYjʰ'S,ZBt }՝N|rp2{\glO[s6hۚwǛ}ŋ#Z}M@= Fh{rOY3TNJ ȻG/ak֓@f|{rqmlm =ܬ5$$/;.3dn0zLu2Ϸɷ^VK/9w3a }]_g&8 n 8+ƽ# ͑\hUs@FR zⲱIpuJ"vmJ,@,e^bМ.<T"|㞕MzÓ@F$ǔZIԔ04hN_NPn= +v:城#"0ʘ!̂ lk|:K@^Z_WȎ! )E˟6Y?x%:㥇]t:ӬtB^9yCGg]#-hVD\PZMaj>wq&^M8w6ǜճ|*%#FGaCNUOI1R ,P^A&,av#-k [h? <_4 Boug> <}'L}$]սa`/48њ}ސQXB*‘r[P2ցٍoU T.*2;sM~_h]WX6x@27g}G w]v̘Pu2"B=LaoʖdLLgl9w-q↬Au[bD|'P|;ne!Fi bx\P6K|+ BiNW"t*E>G<$FPr/:?b,-gu(0}ZAx'd `=Ŋh".hQ9eD@.cN;1DGϞY\9WJ7 P8.wkBetv&݋{Ao.hfl ~%1լWSO32M6mzTs?7 \G[pMuY+Bd)$f6i%ϋݲ?t]'h٪0_/WUpvM,{A+Cyuz(a^'M+4b +p nf#=Ll79TR%S ^ 5Ax)֔ebԄe 25/?}Ewطf_s']`Waz&uIK:=Gl$",3_# &q9oK /xZ'7$0`6OA1|PfDHr/*uK+dNA&d _!\^_FϘ9]󰩟_7"4_bu-OaRamJKoRDoݔ 3.ؖOٝM\j_ڠXMۋ >LI.JY ZVcS`\~>69(LEq!^0#ܵPS{f] ?,"!a8̴EҠHZIZUKٷbBӉy@yL 8uv"ǔ]]4-C4<6‡| e,+ȑ|dS+U{o'/Ll^{.UtxdEDDx3w^Dnug> U_u1F `M^/3i7pUGc.xK hy G(FEQCwPy۫m˲p:}dO2a?z~ 1>(rCcԲ >Y f5K;^kZ@~ CgMsT fr,ڙ\I`.IWOk80b5@gO$* _m "k˕Qf95lKήjkf}g;_uRiM4>g04'3cN~V~31w^ G=ù[Zerm/ LgAv>gobB&aUi}~˴;.'l>0inEXTgf!%g .KB 0G{BQŵy;aV&iDV :Q!~쟣yLlZ[vNC[bkSb`QRjoRlN6.S|Suq}?V63]%Q<0?uۛid>tQ{:]Ɯr"@sw5ɨLBTz"pPX*z2i9anRKwzN>)zh1E9?S*mװH DmLߣQlx9Q0;ͦn|akJ.ո`WKwL]폩HjV):bYPB(] X/,qxwFG=*7H;SGm?YϼIv"kF*U.O"IP#AZ#] {ͱҪ6HĆf]gL _ gz`4cP? \!r-e`$GiMʪ`\[1nŊ`*eŷ jng0qv0vuƙI U{=5V.hVbܖRC63(fPԭ7YTap"ѫ(&"J,ʶ^c~6?rԞz)1B@ea03赭ȈiZ޵aC)茪5Y q)7Lj Gb,X ʻlBY̵Lt5r,:@4OyMe^f'$D(;5GO֮zjnK(iJI/C}`(m{qplAv%7u?:`uD2Ly@We}C󭹪 "!4{^u%DWKl\2=k'M!T\6bHDr. Yn𽴈?RN/^m'+^IL7]`,ܼkzrG66쩩?\Ty,~YW|z+ ZYDSm]A剱x1G809af, )%k-7g9m#[ HgBDK-ƀߗ  }߄iysm'Si&L^i1 uhPtzR:LM3^6'B"K YEL8/Raְ~#rF5A`5$,{x@SE4v);mڛ 'e0HRT)zcV%W9b\kb:bykVG pyenk)ՕcV=j>"rٸ8{ʀ<(g$3@pČ+=?Z6~uϹc~yPEBTdΥ$(w 3k3$d_LA 6ժ"#74tuvZF>ѧ%[$}s8֗aӽkdMäO,_oe9vf)(??n#|`e H'7|̶걛6ʇ&=15Z 2`f")̧"e, `ՒGxt=XzRC;nNQxZ1i"U~*+\/[ẽВn?x"IM"&Xz%T+ԉieE2[@z֙j^//Aʳ>?P?UޜM;A?őWO ;plP l}L֫ SG.hsd]]R -u˴v \tּlfPmPOmqM+ z6 ߐ>?FЮP?5-95 ሱ#B fS f#eI78\^5oRUKٛE +qJu<%Eh1^_{{m)U{/:+_ ^-\,Q>MPv qنjUjϤJ3"K2[8d =CC@WܚM6btá*7+~x,$|hdH/xת 80Fl7+UE_\VӤCsKy Y#DИ0.#zeuk}P 1<1zK㾧}]!Yd 3WC/;771#oc7*Na5`mwG65X|TӪ)g|JF?2oI (1}>=G++7@"RaF9 8o ITJF}KYܦ]n8@U{ ΂D?l^jӲ2 ?TKt"l 4qR8J8<;Hy= ߻YnP+n=nq`\/fg4Ⳮ#$:2=J\)F>uTm''BӲ-J8JNp(G~ƌA9eV`)F2^li.Q2>$'u\])*e +›I]3ɓdqsQ~}Z}3.Q q_y&sdV=U=H$*|m`8XukṛEE@91 M.>jI`kˣJ^=B~X x3$KF"pb Dȴ FR=z߾CŅDs\2j(|OX%d7"u&Of\/V"4Se; :_nNK79rF8s4>$' z BS5'pPdU% %-_ %V]A5 Q%uE}hgĨxNcr 1X{#La"Va?ɠ0eڥWx#T\eo|#/nV/[=Ҁ R:iU#k!ġ&њz,Jf&R5y^I1(OH8فevU onXիmK!门iInk>RPNL7Fv$ts3;4 RQp3aPcnwvL2{XŁLx{O$2z,54vQR5F 0&pAK%|`#?R y)'wJxM\G|3cY}29iji*)X:!4Bىi߱'I>lGQ2w$fp/Ouq;z rIUX!jiIe`NأE939B?#ch_BF}mh:^ u@(x SUjjnfzN\s M+[$LUV;u ѩQ7S936+O\I!#ȸS1Ϛ.׊m2+S_7S}U9fQF!I&Ic! !b2%r3o-@wRh2a5p)j]q!;$<%WfowXȺ9' `Z.W%$Ye_)7WILv7Ǥa M%TX #- 儝x K,ZrNϖΡhoreW|<vL铀6 [ ( v X[}p^0df9O :09MtT,:F7; בi4f\Z5$ɕA~@Gwa rvKKZk@C}* Qg=J<-V#8.`ӄ"$Lfu "(|V-0W;(41)cuCf؂xF,0%.X7ʹǮF φ-@KKI^& Jd{UYlSkcu:9?4aJ$2~!y%:XlE4ִGڸ+N_FU0Hj;Ccv)i%wcizo1wU"3(g6|ذ|k! 7s<xvy(]vgқR9Ŕ^O)т}Ͼf|i\\̭A|\0 J,uv{֔Y4}Lm*7egJ=G9D|aH1rfw=|=Sχ6>uQiPf0=.=GƊ[rx5%yѓ!/uO y}ݗhH E -ShJg]f̶p]qW#ZK0c%2 Ͳv F/]sex°,E4@+Ҳ$sZ`t&֜2CqQe+n2B:\dHH_ jdnf?'obJTih٪sw٦8% 6b]?~)8ML@.JM%IF l=兠?[T;sYh!fRʨ[i)8t]yG I >PHFdW 5⼽1$WT*S@[ 3<7iRL.n]-wz1d#UyCA+[g4MC-+[@̩ՒME;>8ŭ)Tsv Y('Y!LI͞? *:K@) ;6=MhV82uu,aZu,&ڊ,#**!~ABO 50sŚU7 1 gFme,Ԥ[qFEEZM/q463/Gx2VLrS`'Xbh}8֐*C6]Xi3 nzxWXhS<٭|Sbjc]]#X*Usp&gZWshʌJ;[pʈƼڨ?pj).eK?7wwS-ah&-gB%3d{'VT4" ~N\6csڗOzw<|- t߹hZIs2AJ+=`0떾6 > ]Wt-{&YO=^(&MEGfAt=yŬ0뼪3}pZוp^5̔bnvѿ5p;:jɪ!1#50 *.LdNw$+ ԁH,?8F l٤j7v&sݻ-qf$$-+M: 's5͎cM֯β4(Y%H>SNyB:J5a݂Rvroz8vg8”ǀEI&ZjC+A8Si/ < Zg'n-]d#A 1xY#^ZdD&n&&{8kY=FS-YD/h 1MYܮŠK?7 O}``(^FNu]p lB 2t#%3'OQI`/&up;VRGݶ[q}ћQrbGBWԆ9_A<B>5 k`+LJJO 9L 8?4Q)D7K缫)q&% \S};r7u{bk;X{ ;^I\r:/>CV.g-:CUQhw*Sp>q.WOP.f~1}\\pvǣp% Azy|gE]%x‹Z/f퀌LrQGTW=QŇZӍ j5da;4 ~7y %q`9hT@`~$VZkO"kM\odZXZ Zr[Y7 sh٧sPŅ+)plRP3M"\߻;e=ئ5t2wN<),'tqVE _bD,{,!ԓG9b^jd=?A^<=F/:{,~UN#ܙcOdWJ'Qy a(h!qr05]<9?K9[\GeA(EʄK,fLffNzm=aG2v66v; KG\z-:=" N'ˑ{G?;gX)}!:ֲ39?vZYrS 4gf=\ Z6;mѶDyɑs<椝2?0o)_FՍ}0*/p/%2՝ę>dREoVx|!JNc2Ls0f;|cŖU@C ͆>Xlrƒg&Rh?EKȭ` 7榽raCY#EDzYIaq(8G5,H͈=: P`!|7)G"oPj{;Np)=QɌ=*=]` .I& aigWb]FaE5<7Emh8,)`Ljꪤ1y6Z?` Dl*\s6"vb@$|A4.%Tȉ' {¡K=j[R~hE;\|%o+M*mLLbik;hsrx@J݋>#r\[P8jԜCΩz3(?x7 )iK*W0WUEZ3>IԲ>kS\T3"clu\+e0޶w&NdN%{^K<265UkB`tZx-4Y xY/pIT<Zdp;ޟ%+bYU)īYPVMjGx }l:{i{#Α˿FLt`HfbYSdVxZ{IMciyEٞTj4qbaO2 ݧN}5|xSk©^1Bh'懅b[/s ّQ'<('9/<:mxf1T[5MHK C{\:(S^=Yt",x͖+A~Jg?GH!RbG-`- jQ\ܝNj2&6ǃn >6S62k:SiK'C -:5+U{ Yk-Ǟ#RoK$A:2B_.!aTG,?# Vd zld"MH9u![:.dulڱM!w! i1Eyh3C[=;UCi8ZĘvtk5] ؔސ+rn>$hZ, TZ <[~v3<0x ,98׵_eAouL9ZQd]-(|ӷ}?CyqB)J&*l5DVKI.6H^ U)dɀӿ\xX_#m4EIfKGgV8@OIV#ZBV:+MFb4KC8-`qQ|eޮm %wUu5gK椖]QqWkpLN[ o4QES]2Oi%OAVnʬ@am{~Cckv2?l1MN0dyY ¼5ږ#o7~:+Pg]螐u^L.YCLgYc*U?bS!OEm::~޸z?mTK"B9FʔhV"2TjeQp-"y 2g"Z/1-7=`߈,#VV@桘WMJ79V1i̮ĩ͂[h+^cy4 xz_h+kK6ƌqn)r[;JD/RNX>ei\mZ2a5F}q.899Wc*0 "ƛ !M5)˽02CM\dOZa̤ū7>-7->o(68cr"1r `?WW'Qhy(cX6QanԌ ɼND mt+Pq}􏑇 xaV<4{הx/OHs~r=Z $Ex %/0CЮ'ˀ쵞dh2dYcyʍi?V)Q?p)MafZ)JMs%6⥽5cݦQ,Cg6bNy]ǀ!fU$}U h_UR+SqcFLeȵEs"x]AY#{؉*82 ;Y6ΐ׺P,b۽vYBw`AYU2+{XƒH9;P|)e@<դ7!h PV;KE"xĪڣ9od'0=1j#2LGԩZ(֥.3-;=)1< cƽJ6$Dn(:+owK#c:!{hpu -?o-lF3% ߦ3`ց[0{:ORt2&뵤o7dt 5=ˍ9Lq @^tyAkb6LD3fziĤ&F Xf̑Ltb*GQBrṷ2>l}'e:xb0H5?zֵ,4.^ǑO/q"#fIJ3*#Wi|E4-']<9fDk|Fy $FԷ18W)4~c 6>Hj@ԗ8(na߽W\$)]x?ՠUũ=exfL{ifXK=@AF}Aʡ@,mY3?ŷQiEN-R$^X#-nLj;cݵU~Nu[čx}Cj7486BP F6Gˇ%j@i|Ues#2R9M̸̻udO'JLq`8nB*tEg7?9Mu{wʵjpm[1jBu[E0L]]X@yHzyޏ7 |$X9o4zOmTEQ;Y# qbQf:Qg6-|_B;oJ}73u&j4Y))Y}灔d۶FGI@o8JK1bH?HvUhUo#N&lTlLsX]yM{y-u ><;DQF2Fk x c Гpe$6)djʌ;R" \1a*?.f( s{V.:uʞiDJ9-TE*] vY2U**T 7ap%Jߒ jA#l4+SP l:R5eVÀ]1b<7dcQW0uT> bUSz)^KËA{0$)/QJQgs '{rKBec<.Ba]@r{Z ]@?D2OnR6QyƐѴe/TM@֬#cQx Ka{L%_A4j6o>0:M~X*|dQʉiso)#P2.K:IX?":4r:Y +' m0N=C CsL&+C 6 qǴ PfG2#CvPV{J:r̃[#z]S≝,h@ IBĈ8xB5{$4,aYUB=1Q^$($UߡC~OjR:Eb-LWLNDU[3 *J.=acs<[Ca∶l6wGOg.K- +r0!MOviӜElMvg[hݓIE_C풜G6_ѩvwD[&cp]q83 Mhx@|#{"Re%+Pw^Prق+ܿn`" TΙF`{e+A!o,᪛n`z[7uɺ$e@7E?f$~ V΃KO=]èl~EVK=V[Z(Q"?Z4pWBg4o3##ͮT{vQc$J 7]Rf@3+ ٟu6U>qકeܣ*j&j<Ԍ`CG)z-[>Ϩ]X3#6+e7ࣛ#}[=ݯ9iܞc `d ؗUb9>9w!$ꌓbmȎ A)}X3buǛͮDI^Mc :5T1[fZʈ+sr@E"Gַٓ]>[^D/w| v^}R\a-c>Xv_]wLMpc+`!Vb2NJ$(7i]T8-,!qPeOK$xWߴJ " rO 6G'TrwʏHwJc5s\/?Ajτ){Z_<̖׀.ֱ)*sd-=Dnd|ˆK,lh)$t>?.sYt2nv,E,hp/ a2ۧLIRabb"=r.W;Ycd2 L8%^O-M(5FbMab` s)πO=1aZFPZ21L8ܶ`IuC&WF6Q}>QȬkCCX5P'ij#wldOZy@:k ay14:qwaGKe} VE["v"5>bTͯJ>c;#i.Vf3V[\_w 'O]'H,wt%tt 8Jj)9ipYfl?zo[~ۚ d']PK@SJX6V3p3Tl-'䵇DdOCR ak}١cS)?bA«t`̟m)OgeXm\4YndVsg0S'[5&/p[L+ 9S4*,M./qdn]b:BdZ@r& c,SqS]mv8j5ݜG,nξ{`0h8b~n#pcQ$[__NC}3gs}HH}gp1ygv if tԇ5D1U׳Vٰ#%~>t⇢ ըS9tS$A!GfxIg*JXFFոRZߚNz2nSfu^f{"ö9=,9E2|33" vb{ qtrk!9Qpɻ-ۥe!lߒHEl}/%4I&mlaxI7lMlS"ӺSW;6F9ye?bJ EN6?g"$JOY.O ȏW"fϋHx$6ЫĊ<1t{u _t $[ zٻZ5 RO8I;qs2tt9|Š5dnD0ůr~ gky9ٗ(|jN_FJV|Hl);aM?q= T$ B‘ T)9k:3'"qԫ<|]# ^۠vD8_XFyqF{OQ[.?HsrﶭF)/79/0.^wK'^6\zG70eQ1ݜ]_ѮeʂdgAq+ jw>Mh2QdAv;¹!bOmчl]Opt_u w+(b$v7UN:(/V{=$ڦ#ꊶRQm'3؍Ȳ[}ÍE OiZv5$dlǘဵ_Puur-,p;.5;@V >nJ Zokb'PFߕKH゙>MǴ"ykqU{ pNpjsPo槴EVE3Dc_ ~41´4ȧ*;6p &qn̴f)xٟZ5u&im-eqr C Ŕb.Τ\G=b,OmF(yRNϜGҲu ɤw1[DeHƍdpIrtEI p 7#ͷ|IUY-OfTdq\[#9s?$wN w<>!y Z+Hv_5/ ,>.8M펷bJ^N0X袻n%؇infӘyar`3957`[9x63Z󴌘hbgXJt#NEcw#iJ;kcMCC\uBDuhMu#@+F;i.A6/8"D+gjOik *eӪn}Obt\T#y^!/bwQZ9 t|bK 7?}ow9A?mI|`)2Ɉ{$3sYqܰ^!<Z kU4u- #.9pѭ۷r4vWz 78Ph/ wf;Pi&ouSx% w-Fɛ2z:1D<{G*+t8#][aן~}>:&LKNsLJfr4CH Ai8M;-eU,Aj ֺDj27ռ/5"1OSCuʣ^s q,B VŦSԝUj+[oT"~Tђ~Rz-?W@;^ǻa]"􍑀@ǂ%c |8uAM .U}wQ嬓cQ pstᎽ`ׂ!|R!Y4|Qa6B&-{r wѱ.{}pEKpz-2G+_nlgMk'wy_I`I؏G7ǧf|[ζ94GQWb=+ Zw7A,UDTaA*e:^JC鉏Ŕa]Sp^ɻ8,oU8(vnܯhw`n PVa[*W A. 5X&K( -5PEvi2[B`C\ւv>UQim<7ޫ':;}\_H4s4T dUH2.c5v5J-EFhtxUAbFn6_t oܩp&ztܲ"{/{vzK}=z뮃PB#Ca5ͦL9kEqmoUN?Ŝ?w%SQaH9r]7 ՙ)lur`MzXbغU+[G=Pd[Y=;\C2oA51EDDPT$*V#Jp[m8tSp 1nUC#QQ<#X W6yLn/Arh!w{ a6<OZ/3, >"\aHKPpIr@r͈_NNd(^%47~owH~?MBiuzkoiz].Jc,zN;0Uq iMy7KXm'8@6 nF xE_uxR_ju]urtì ሶ Y=$*ΰ\Z$+3[Z\lڤZw\o}4'>pHX9Ayw5qB#f)`qF `tz1`X0XeҜUG7mEy-h_d~I9gˎ&uS"\Nk1er/0Yw:~`X>ON6ljjSTu~uUbwcEirm jCgl+ tߧNp[IqZa.~6 0`jo%OiMu;h0DP6j&7m˥(Ӣ[^txֽe2*9aB D Ė+ۧ셙DsP c[R]*Z$zfͣ6H +8q9h\& gd.rÓ7V fϓŘI%_uvCTM]}ޝ4]Py+p&(mw=eXajbzT4Rq]“KAئ3 疚#犻K )ɔO1︳56xE<9o͖铩#H: Gv0z-ADyfyeCBٹ(V&uw5x ""͟9D{5JQgp,-e؞W`ƂFX\$7I"4CF9E~eD y Y~=oiQxWQۀUm3(#451νD+kɷ@Q=!%&#YxMz z em8cS·ş~nz`,`4zsARL|y I}tEۢH 9Ĩ+z2JQ#;^Z96^!YY/MJ1 ̍_•a u;0pe!ă:䐳7^㲹۠l*'iy^RYHJ8[TFd:+Ŵs~ Ien}ń$ hJMD]^?҈BFࡄ[- @ߡG5ueq/z,Qt)l5xk('#5  mlYWEƛI:c4E*KGo13yXP5euaXUXL̳yWazԢ~an>QY;)V+L^j"@El\S > kN3T0x1Qw59a,rCVnMnJ[++AX!YÅ4k@eCEmrx508!`׈1 5kP 'sQXxvCu{28ÏhҦ]ZQ%ߖ{9Q?И"(-TY< >ߓb)΍͊5j׏}䕫s:O&!铨qA$jXATVI|dv0MTb剴rc^^}t"~,¼:2q K'uWAP,mR=ڝHKph wؿ'TGE-93pOFaɭlGT`?odg?V~Ԯ/LGJR%T? e2U Z7[8:s`:B>~iPnP9@W!7m1 Zg#g1*{&}ԣ' Yߔh`dts_@CkoT{aYo>{9BQCQK?YF3`dAن7e鮑ՁĐXQXT)|fVyTon/mfœ}J4{4h\gs߫_r?::]9j_ŽY>cꞘ a<ʊoD;6M3}ի4?*m|>I$* fQqKɪD#4qu6h(M,$ݢ\-lju&9- 2j҅c ?E0tB/.\fX ^e8폙 NOMWZ^:8g"MMNJ 0k7L l'HBXPixJn1<ؒZV>͍^$=Sʲ}/N->zAj|; M*#1 nXMفuG~P)"BC#찑jTlT4įaJ?66].(*A!ظ~0y2lBsx5 d=ܓ\ѱ Q(Llu*Zvϔ^6{pq'Hi'2O9Y#:`$H6 /jmc<D 3jƉ¾ʷKxav 6Z(bCnz.;~hp8>2$Q-~"7_NA5sDLۛ9C8St`VRg9졩:DRI`c/.BWD; ;rHpcЊ&ʪTm R!5J/c^elv׬Q ]/7 g:PږU ~ӭZI[eW |p20S&J26?~t[;ݤ9mW"}ߖ%/ۆ*(/sU2r*C?"Sp z%O>I)h=*mA=5C^h 1FrҬ?yOu!+^ 쑽7 Т={ Xc()ɼwDM݇mSv$p\꯶un6k4`y)to\IL"bgb珼F IΗset:Wtf(/JuqCse?4qX( 78J3LF+TfZuPti8 ,EWZ7PU5a"ᭊ-ִVW?"yԗslp~GҠÚفy>uDtsb2ۤwXDN3/x2vig,vXtVH37!0 =o3^|0yW-9Yf?k; a tx$!Hw0$DD +&i81j V#eѼS;4cɏl%t4j$ӏSV-1"vPg+qS`Ϋ.t><:1|#Q)nE(?AZi;vGfx )$Ʒ4 Spp&޷TŠ!gޥTÎucJ" R&E9k X`Hg~}NTQ(E;/a M8?̙k.dK*˾JGgOQoNUR˱,/DofopB?{NżC'ۤ(dCTֲMl4̎ht;ȦZ`e&Q͓*Y.bz`Pf!٭Q;tmeПvdȒFdӢN㋈^&%҃y}y7b/B! /9iɦ"<&{?{^xnryq,UAC41#Zx;\B8ׁ|_51A ;(Iw8),0T% BTHKLE4$>z{P8t/j *[ٰY?6ak~Cq=My-yϋ'5<n B:X#f۝ . T~(B;9Yq\d2 iʬܶ̽Vt~uXu"w:0قU_aެg<e-Nk.buþ9~y+NNKE}Ў=B얍%.Fx0P:}$Xudף87P61Ps-Kx^i$N͡ ]毐 q,NS Yك3/\XX묽\^L|OLr.H8nZZ$]=8I97I,hH,SO*x+DG}&KrgI ]U.*TWuN?' MkC/F\^+f ?hfc22]`c=AZqA(o6~:A?짞B?Q!7i].@q߉ >@oHj62ۆH­#SKة/gư|4 xTA9<wRD}3O}lkw$E>FXSҸ}":_+00ڴG5(kt{wrWyni ȝ H )>'sS";EE] Mԍ"ށUd eljg#m4 4ӏ>,j8WmTɢx͓D?hF^y_3) @SWFD!B3]+ ED9ar_oƳh) Xur)S2KSo8 ▲VF(X p 9BmVV|nBv_ ݻ۲Ӑdbܵ,2pDf޺Kyu3߰p\MH z}Uח>xtn0PdzO!);N5c{*kI &jV68{~ŋq>OVu}Y(>M"t2HfIDIC>WU[tjWH~cFJ3yؼO^9$G)]k]L ؅U @*LOzK%}=-=Qޱ}CNf ޞ&&y"@B&U&&LPTk~jX^|o-r"W=]TFдB}*vac NGR kڂ 6E4ʎe'37%,Q\/ 8u쐭F4+:CfȐ[@,wD%alֆ 48@jyN.G_HK fs1 WBi,b ۶?p1X;<`tO3CIHl&SoȿmoYnG͠ԊW{D 93AEP 4'Wm =sv?|ۮ3-̇wĨvǮ?=+[!œn~qy{$T-v_VR=y؉oVHlǍm>-Zb֎pl)Nx\ /KdejڑLP6{ 7Ht/^WqN"VNCcG?K2Ɗ8'8m1L,t;kk}75]v9{5K`%[a$"qkOo9DZ^ [QY[^m`4s>.e.d"eȭ ٳ,ƫ\'A1QdV0 z .QQ|P<vTl118iaQ)ޗ:ñ^Gt獵aw#7^!yf ;z5۞-Ya\/);l5H|?F舲`mhpʏ.-eFV [+B2ĮSmVؑepO?AC}-!V?XIK Wsࣾ`,GS`Beߩ P%D2 + {toۊCl3{o.R`\*T> ԿSy1e+| 3z9ƐUFLTILp`iغʅw*"VL7#az'+aHWlV!9:2ht$NHLYRKVh|W(ˍ-gi?"%sB>p:E'(%˴x1o GO8฿`1#{2Z)/ԴDMAgLt . 6bP-`^h!(A-_Q{X@g.EfU/ ]~'oeneAd:h޸>Bj l:kuD(k"$m^J2A+؛iddtN{AJ0<5^cK^5p)yjIJ'{xSHYxd%x.oD,|Pjf1` !}08zKnvS{::Fl,? n Qba(@rJڴUI=˜94 D)M@؋&Щ9m(} Wԍ^^9 &_a59âU6@Q4*k9`k[] XY]BNULkId2μ ⒭u@oz(`7MKWݿt^^Xe Eɽ3%G$4  2%wE7=_(T8zU\grFT27mKmc`o[Tg 1hb!R> 3,{ox=IR!ې-˒:g}TĆy)JT)4Nh;VmM3$ƌnTXG-z U)Fpfc4LzZ.!S9-|5J`-u/֌bULut(xk&i6gtqͿ:V3KiUD:ǗYa8^),d%'cBMhJ "56biIrY%4dsηːe4$+) ;7k4 |'8:s9C5r=DOnԺBq؟zHCkGs e1$eJq|7*pȤnq|H,tO7K5^\cS n\n;F<{):t&X#Ÿɋ,{gq`Rޚ/*eȬrKk̖zDY ޥ9;8׊D4B$.HʀMd!-@?3S?S::^j _y]A6{ F&2,Gc46 G^-m 9V=((-]ev/h :x/yK#HYGPi^z&>øv7eCdWaRk´ds;֭N~ a 2mg#eDyg?ozx%epY f>Ep̽pyda{`3UtAab{h#GxcetiKf9: }:levn i:^4};TF\%VC jW+[գu hae>eW<s9G759ֆJ9ZEKQMH9]A^9q{Y4f%'Cdr~(6AI޵dzy0Ym7Tcؼe5!|-mrb_&abɭUyml/^{( 6oZzbv3=-V +&~ƥl[0$ssa`qFjx2k3hi5@kT׷3߆j.]#WȢ1X|=ONۣcsK[^?v"cGAdfS' s>8DIL)slg97Xf'u%b^kwnVA|%]vElqY!g)c ɬZ8HC} }uT.P M1\Q WDb~AؾzdqRoZpî܈|7dGukhP: sY֣(jb/-C DŽ+^Y J#,0Yw6gZ.8l,V&&VCnX1 [ů={T<-k2g{"ިot`u u˲٢SbKl*2‚e87N67u\?ے䑆 0b+#g))#Ah%ie 'dabz,fx, n/OgsۆY;(5qIYKBEJ6@D͸憢Qy[*md$hQԯW?fm"7fSOn lP'?$_l2^[ 5l4V2~Lwsx{tݧ.ƒpL{d'n=U `\l$lМPٙ^"b3 |w?˯$>[ ^W_ĦĎ f`%$0G+M||˪4&h/ ?GaSl&JoWᡶKa'\{qk_$J6 _EDGlluQ쮻sRuu,/ ƗX=Ro6ai}.7 ɏP9FKZU8ED0\v В; -^a}aaȖyڀ,LX\fwt' ]n bqs47.\rk||C5` (02knb:3S(V4*2>?{r&BU>hƮ˫+=v#.!i-0=I$'bt4 bݦw}F\c(J :FaK̆z)&-[(HYG!Ҩ"qRW2tt0 R_TyG@&;JeL+vM+A\Ķ﬈nY\sH"zmᅒqn#4F %W6?\}r@Ei.{̤D@1WoAܼ0$r|Hk)+Ϭn$1#0=3TÊվPv!Xͮ{؝yߏm [ ާ~8`7m"顟,Ğu@[gڃ}f:Y}\c ]}?u06Wy!D&p$S3!+)zP /+(tRkԆ:&(jz'ߣَ$t܍еAMi mo %QT{21?1,,5QsS@]~M y8} >)`.7<2 {?mm BNB.|T3EwP]H^ wqՕ27ktYp |J\w$[MaDy{l[ b<\nq6WW NT35(ZUT#;K ]7̄%:B(ik< Fׂnj^mF(`iYfPhA"mD j>_Q;oH? dw$OU`"aI7ܫV΀Vb5uj ]ep )\dۊKoNxRaǼuZlsQ(T:\x7)m_n5KmjsH53R~xuM".|jՀ;[Z ~'Dz <I7ǂWղqFbIӚnvgvt-R#(zNى+\}K&W*0?fEs`"jw5F"1]Xn (#.Cjv¾hAtt*<  )`A3ӶkXΈaDRO- tpu ,Xt$4VԘܜ;_' \yMH5=츲J־ϗt.Up]B fM+rC#3?e?>AªSGavoشɎWz18b\14{"t@/!Դod*,Z9҉'P#OMJ,g%Tih?܈[#Ns](tSj+0N rF9 p"<`~hJY*`ي!2|AJRPn Iн=,EﺅB$ɛ4Kx\Wor0CMXٴ͏1{}wń *diGH.Ȼ'iMrLQϴ ^c5N`j/I!]#DQ; |lp3<&LE^M_&}Cшj;*>CrcB,bL >KSΠhNf""sxl1&YVגM]u)&ua1) |u@@ي|Jzg[wF;11pK7|xuƂ -gVG7ꎟ{_b<@՗ejy+)tCK_9!SƔPWS_zM+-)x\*ɲF}䠘.t!q.ѳk7{J]ͪAVf%0P@[3 pi)"Rc I*j9X ހKAɔb# !U}G !sۓ?h@"޻sP\c"q%A> nsptn} ™>7Jgp\ s³,*RQ2ѽ2 Yٮm +ƕ_M>rZJf?A8#*ôfّ^]&iMIX@@ *q4FMj76šj9P&]#y3?A$eœ)/" !6On@r?jb >O`-5fG oDQ*1 ]Ol'3v|}xء(YTc*C;Su(hBlg. 2|M?3\$Ĭ6R.\k yZO[(d9Y"W΀rWiJ4I3!^r(z&ܐ7j>hQ VªrVX f.M"Ěk1#s 3tŹmϻ j؛fq8qZ:pKk}yȖ e(]%3tM$cҗ &ᧅ^?DT(xjXz nCϮ)^1\m(4y( { .[9vj%Ƀ;)sCru|Cauq Sڥ J0Ɗ?ĹG9B9BP FؿSXCG_^#2&td- ܠLa!›f(J !'/gWe'dZIfKdvBtĉʽz;7""دsPźEVwqScou=tclP}ye!8O.-pJѱz =`QNLcu^5‚!Pt̑ٻ)AC|68@otViR|v.O1UT߃vʰ O*a0G9|_9HCiQ$^BlU773F!:|/ 3>ީcvɚ#V*.A+>k$-jP n;,ß{̰Rw``"!hJe`nT.x=+U_,u>J! ;BbT>9cj&Z}ecU\ )G݅ tN؟ xc琚Uo |p FiP+,# Kn[(r$egY"_r NdV /yMd-JFpWfĵuF` q:qb\4H;{g~fkƫ}u3pTLl )vD_*C7LZ9Y&BsFKQRZ_~Lc:8UOhXfN#& #gә2S\,4`h[iO%۵V@7y R6]F7YrR)~ IeӚdd30awX&Js}t7Iz<@ 9~ N{[*#r`e"]%U=$wv Y%uJ)Ẉ"f\$kƎJ%l3en%0ϠI ?3kh3zj9;0K!P o@&֡tyu6)ЬZ!*L\y(ݹ˦oEm8 Gje`!1ҳ`HӗἏp1o=.A4wq.#ܮpJ<"6gv0?rMfi{550/:]A׹l RgLfpC>kbWtxi_pL¹5|`jaeA(Ǭ`m Ox@ wsG"w/{3HkooO1`FP0.#'CJ05*UlyhM}l݉G~5\􇬯?ȍp3(tSFv=]+!V1#y6T.3Q-N$ny˥us1QTk6^?}3s#QXr6c nfAFc mpI`._v xK|.n}N5׺}m$/z.閥F=6{s ^"9²ڗVf6r{S3͐j*^k*6 /vd$H#qj|⠟rP%+lz89v*upU#Zޟ.Uj8DVG~BQÏ/K`;[MXTRe*iFk3KRMh +"vU!9b$hCuKWWu*eVl6\r|-p\ EVM `w,D*jt~~Cx8z[tyXחl'aZIW+䬥253;\_qY#!"H:yB7Pay֓3-َIDi)G +L $^gZ+dʈlЍW:?L8 άnK:8P{UuN~{J{WgBfXJ~sP0UBJ:<.a95bZ'lpX13Q#Mh/Z 0Ꝿ w00m5L!>J4 0ޑbV6()M@۬ *_xQtQʔ3oO.Y>স ?fsd!> {Ouv2@1˂}KL#U*L!i< D3|(Ķ hpl-JY0 " % r:&HVpX_~ö_!csdu2ߛci!mU AP[\-,jzh_G#xkVfTt|$'_ڞ* ^;}ـۥP=D||IҔ>6ʄ~]x )?:XuC"0%}ǩ'K[U KKJ~ Hz ["Z2t.By噲Q%@ uiNh9C-Cú$W!ι,tbѤK^xp~kyY`J:վQ˷#U`4O ˒mNҿ7[!`cae|:]6{0$ ?ۏFϦb^_.Ʃ?9g}^:C*v.ȟ({IzA,Z(lQd~5Zn{IKp%N|G~%3 SJSɫuA.U[d{vGՏUp*O|Q9X6guI4RKR*ݒ/o=v4 ~w;n,Y҃!Y]S2ݶjmxGBDzvKDyhI {Hnr$bn1Q\O<&XIQm;Bm@ a9Ң~-bN~EFۉqk'dy:1z&]cVK?]6$Ǧ6{QkWq,?cuG~6ۮ(g񧎛@ջF5ƌOd㈞K%bnG`CQtqI7~"fr"BD41m)0[2NKd{\gY7 e[]pAΣ] yߕ+AʧܟYf3z\q(NWßd3BYJ׀Z+~zKȨ];Ħ,Δq:Q9(ԂEXR<~m>~H [D~D,ƻ㠘Ѕ93UlXT()ݓw]&I^d3$+,C\WޙLw#RJ1!5Mr1 !G,ȇl*WŘ#=f V3BFSgTqvrkjS&:/;~ >}^ &,Ƞk_*w+{좨+oWck19_3]pMԞN# /u]f>s}0~f$Tk~PdG{SH sgȂuUHkɡ0#t#l\^Z2WFI)shY axCJÝ"S+r KOzEvRЭvF| ju+[nQN A]h(sX[a_I&a;ěҾZB<AcJC#oYcK`$Dz=Б5 ew[(s %h'#%W}XPhb0 -s>Vyf"l--&"T ֡GxWDhjQ2&H2kaz_ SntE1JHwKv\ye ٌr]V548O7%b y[o C}cB0^V$ЗT3B$j sp/#ן,75,\.Uu +Oafo):nSQP=m!thUj"HFŮV9O4Be2#̺tF/~Nd}k\a\={vX^LTo1Vd[H S\2W""{)d/*F_UQz%ov\anTC/ܞњHڀͅau9!CRv qOR4@/hҔ[,rM*蠋4Bj!):H#for:S\zdb?d F\,Ǐk ~D#W:_Rs㚴$1XF?Kvb&Wcz - \j1~^jͫ7_t+qYBTv~bm{3oqseO<]0R93b njțM7iZΚ%|KS{*"Ҋ4;ka+it{-j r%ߕ#ҢB 6 6c1,xsME)4}d>__WN9Bovve3pnw~PL 2KOR@ 9Cz?Ê6 Es~,FAm% Ƥjp7YˆH%b^Lq7xQLMMh`)9/kiuhj֩0Yb1KoO¯Zʀ}\ ;Ԃ6rUcƵbRK.ez?!V 4jB(MOYf .9FW"_o.@?((A_{yՋ-Ps3-]*TTٛ`\_Z驢`ІT> Q"'Zy܎ق50>awE 3*_Hŗ켑DQ {Lތ=ԁM \܄4nF:eh.([#ђpPpar 2+v^VMn n)B妞OԸ= lwܩ*,QRG-* Y@VY徺Cȩ@qϻ,d})K;@1MfA 4aSr $ 5H0VduZzz]6fAmP!3̛Pi6GP~Swxs)z ʃ2G2X6H]31kV&'|$:' v9B jTArC,wD@h򿏫صr`JtY䝟] 'o5(c Bhʐ1^q-&1jUY3KSwE =iDUzHFbT1&~_Щ$(DF^aڴBc0lI;]_gnytx3-RzqC=M˲xɽjzg62bH6:Ryt=E Z~8:\fìAsC~B Dћwi1ɂh@b3=|=;SuLFuڐϬogh>E†;C2).=kfi#tʽP5(jK2ݶVRŻB՗ hr"thEݔ3;=֖;ZBV!܏3}<*Gn~^U^:kd{!sE۵ntyz7 JKoU.bsEHOۘ4 1=J4J=qtQ>:K,f/ j|k&Gr4Ԣ}/_"yH . ݔjrY*N>9& qv]CHqڻB4`EF]hQ$q#Cl}٠8o;oR' %j03baHllE 8UAL[(TOG3%B% X/&`\=8x;Sy9%-ɱzjfWE7$gDv[~RﮛF SaUC~сwd$]6`hNL]؋O)R:T?Kn܈RuP&YtemPɠiqP3.vr .¾(tgV`sD|; AmɆ|sRޱԚ nZzQ乿)$5vb3Rܽpx5%h{uz5Tȁe76 Kz?#^ۄ8z;(C_N\yM׶ IfW?F$V9 I>ǰl>U1(.tq>s ֡QYA'KO.<>;d˅sަE'Y?9?F_kACL-l^k:W$)ig ډa%I*wI߆wm]zg976heEjR E;檂X)J$W?@T9rǑeƋ,އۜӢϵN_'$=\C]ZCq[sGQ2@TʯQ#ƻng.b[J YF  UMڜ刴&DVzQ ͦ OjH,hᫎl dm2d֕(`1ӟM@5'fki|dy[0 wǖ-yycѼG0X@^ LU7]7 ~(퓫` هE~d 0t5QYR)D &K :F^0?o1>L1Ys3mIѺ/G(zDKMYr>T*yiee_VH>y͂h&h,V$0NOz*٭tZf^lVM OdXc_Nr-}grϙ6^Lr5R?x\s@L0N% I5ӣ8׫%ٛѕ?$2‹]du;09oՆ Ej;559[ ]s6Msٗ ٍ8!U)B0d}Eg֍kYUdtlEufTo'j=iEof)/G'wpx:|DGe(Stvd7/ k~p=f>IӼ6g^~LDCV~ՈV=8y[&Rn.)l qrm|yʱВ5p8Y2rlJKSWpTe9H !ԞWM*q& =íMQ\5H1f- mo?@)IɎP F\-Fl7tBq/YuW4eYC WP0/j˹a&:o=VYBr`v'-_Nck8_rY6X*H:%Jf)^hʏn@딠ilwe[䨯WF"QnuL,Ʊ y[\D4LQ&ptfi3d3ðo;7E41z8ɾ-o@NRV͈jNVO0P!RF+DG32 'I) 2 z j7GeC6:SL}FI Y;|7J&aڛh"c ଱À *6R 0p RtZÀ 9 } 5VzcP!&xBp m&ieo:ҼZ X)Ye@PZvqhD>ۆc׻]%}S] è+.g$I!f~[/ħm'; i=s=8S[y7E{ZEQ&K>x.I=fhlar9fFm%NRƞX 3XYש vҔO"XOb@58ʏ" -16VH/h1H#P=cXZy:QrʁiN")su]xLH8nB G~FyF@t5dlHrV Z%N*ȭe1(sr_UCu]eǎq8/[YDOɺv>HYYbJN=y!g*O8rmcJ)Sչ\'' Yr6|0t$ CG { P*&5hA5 .fl=(@)*A h*rN`9>4T+_s@9/U\0 HrWHU\jhY~\U_LxI~-x@_VL q쩍J$ֺo-xduPPjPkX;9o{18O+>BZM:>2_lG PpٔsПAY+_K8 Pdh l12S Z#t,Erb+=nyP xEo'O48TIX#c޶bao(wXz)oRcb^yȖyҚyf]h*_DJalKѻ]9܅o-KlG-`o@kXeD%q=ȓ{ϱE+niMe` (V9Q#Tہ$-~P_&(~'Ϲh@~AHw!viiHj $#>ܣW6AkZ-Z#q* ̃SϨ^t 1Ao 9NM]&϶b'DZB g_q+C^>2Td+zsŜjJ T(UsزbȮQ{|c, .jjʼa n%y%0fdKoJH}&T-t5r\0-8wT73jp5WMj #?MTsQe*Kĩr |>cΘ>Ժz? !8gc#\}(ڄJ!\-0kKK>,CYf3)csF4_jsFT e4@Y-жpv%JPyFa"]STй)6so 1OG%=6nنm.TQ[K%Z<Fo cWx &g`@-Cya|>lҤ,Ai@Y]ܤ!-2|OMGGbyherJe"h0m$Ʒʹt.[b 7Bup ~C3 5Ls*ҩX*9OFr3C14VP;FY3RȤ1|ÜPW^6椵ֹ(~]*K+j"K^v7boTWFGL/= bL(,GO oz`^ᯚ"[<ɖ% 5[?(!l:Dc|SY]V%Xx`{|/sEAp2Ԓ.`D6LZ(f3GݴrYs-f@6;i &?ho<ٰI09c3l62V+[#k7A)6=K|L AcbSB[^ij6/ 6)mr=D3J%S~Kv6wil` [OxG-T`¨eg.tE;lLri%Ud. NG߭Pe{]P-B :D33G*AzڂLi}}8` :bcϩĘMڞ#clwZ-CidwyE qh_gQAX/݈pVI@cV=zePVg/=Q bfcD`7r"V@ze61pX!,awKdjzS&p_GѐbJYuʞT~3-hE_prE.f{hf]adA3u&Qt:`:FDlk)L^L>߅.pc5q đAm2'JPcJͬ&ӃӃ FDGU Ҥȕv',tszt=kdslfL$yᜟ(GeC-;1Š8DJ۠\\-{#2-o4SY$>7KȤØCZa,{~ QW@ڹe:J~~w?bP9 (4.@y.}jJJ}  məUrع_@9}]4+| 4e}`+; ա8nї~͈0 \GPύ?4QfI\P ];AsP&z·հ0D1[Ma{6 9Jz̿K @S#TV vb w[Fo @|$`:Ĵ3f̖iR=cMPR^5<5&B4uqMu9} URp |#p;ac+%Mbwt茂HPlZv%Mn8[О2rhgpMc*SȌ~s1֢cv"^wB}xΕEOjQ.z pp5f耐ƚ[񐆂tpbӒED}0{Ͼh I)ߕV@|@衐۪,ҎwŘI05z!Iz@\R6KCgv!^^yzNz6sIPg; D:tښYnb_d*Cۘ&ouIu|GW{6 '!&m%N|•u~=8J;*,uGl(6I$㬏ȃSpٵX:uҵVDZ""%PN Qԡ7Y&u{dk8ud68HH+Bi&NCҏ_!xbscִs+mdۧ- "H,F(73}"7RbN}Ɣeߞ%YB/* %ڂiioNlsl;}$>]F*{*.vB^Ih`Y,D~: 9K< (}0ظIxt^Gi-BT}(8c]X;gzr܄~T+ʙA3=fO{=x(bI&ɥRs[涁yl{ qQI!v^'uMse~j= %ޟAWFM1Q0/ٳb Ź$ȼ)L'؄2~ˤMJ|W=PƅSH8ۣYwVQGbwoNf&ŽwtZ^")6e}Ya 6wfiFTLfVF|qSY,Ho>iPpG!oZիFk k%{--nW1&>Hǀ8"h_/! R<[96 \8S6Rĕ +&e(jag+ ԮcIKi?59:>%R&#u,3J Nm eW>΅L̮AVmc/tA?NF45ـl5qhl r Hb'nih7CWª 4_UCPpaz׋׏qFqwIeuDtu 6Im"NaAvG璄+3^Xy)L2?l '[rJkNXRG93gb,!!E [ &\N(m@5\+BšhFI ;/]2gsFK0otOktF4QYյdhJ4t*Z 3k9"oNv/X墆DᤈU rI}-yz!V6'$8gQE.~ : 9ˍ kd}v U*js+TFg1D8~P'3?:''xzwO~>Z؏ݕ~HkLR5,GrNG%N˂g-A_5Og%NMEݠ 8.-i($û r ǨJpD~)僸|F%39Ig<ę)yAs6,_a(7q'Sse0;k6CcP\? ~02MkղC;]ذvD3$RO`ͱ}}${4ј93:!@v?v4@)LE_[ܼsا($ʦ`AsY:˛s:o!-7p=b>!`ErA- [Z ϗhGarVuH$cIo&.HO/ [ZcI)xnsAhʚwhERn2צ4jckU3ҍo~E (}3d{7| a6vf+r\ n bE-sYA@ &엟OZ'߹f.L60J;cd᎔jŋ7@xӆ%&r [umE_|"ƹCAze9CXl 5ZY#w!%f_+O*zn i/#qE6bvӽl.ZY[!ovçm4W݈vy_+1mt~m=$ pt}C$ßmOb\q=Wu8ߍ!2kVjxdk% q@AЙHUfpMbƧ(V聄}j2 >܉+>^y̽I_.Jzg,=}=dS83¤:WN=OTdtixڠk&% <PıZIgw#J3pd0 Sy:.L=k7)(?:gBH]xu|.a=f[U @&L9L˚W}rǿ YyxQ{[Ƥ C |Zd)PܶIyU)ڣGy>.U쐦lȑ9!PJ ⦭GʌIu+{ cϟ`dŒGeMnp=@Zh[NDx}!I5L>3hLhsQq :(">5Rֵ sݠ-MCT2n<ŦȆhP?cށs_/cw|G (wTtC`!׵/# s37@7ib+=[&DϣWn1’G(|>H=G,-I'aW3H DAﱂeecѹbrLƏ8sa$7RD ޢQ(AψsMvQ}h;Pmɱ_u>xL\*]fܬr3ZsB[=sc[fyh#BL K-)>~9)8>0 חPk_vщ_b|/,DEs+QsYftW,:Q P h![ qy s/4^4TW2ycKLDN2vcB+MVSn͎R!c*;&{&ѹ9?6UH/_ˤ'R>rty8 5dYz%C? hĕ07'c3b\ dA&fVu~X/#J|6}8{WyvLg>9<5_?tٓ;"1҃i2hq0g%f'*;zxEDc9`aNʛ`kpqd=ԣ47u#$Qsq# 7-f{^ƌk>@*(.588s3Aov<^zYVXv  pzȽL,$-jK:E)1Y=K()n*-{n뿥P>:iLo(XH5% Ap1\Tj,>ϩ/ Ud0Q7m,Q%D"Fɹ؛ğmު! T䞞\kƨk#?o>>ge\x{vTxgLP*Km?A/]z. Q&C{w:AϚmL4:C>W?|M` VOqb[^o޹ Os 9YVıSf|MĵK96xo xPT|tF4ʭ-L{a!0/B>Ůhqk'1[b¬V먞C!b&+2kGgc!Mp/ru`onԐbC|x5. 8Cf}0ٹhqOWzrGd2$ =9l|F!/\?dÿĢ(s$[jgRj3Կ=z=GW$l҃a:_o-rrQ#RhYƉXDxyeAQ.>9tgB3l@)zs(J5@+*c\zI6Zρ|NL/o,WAq,cw9tp;ZT0{7 *[GMVBMf?~cst}SRE<2D.sqy+;4yy@J]7t >껳1tCB!(48,Re:Fm&{UPAMO,ũIn7ӷ%6zG[k1gSi .A*HR/aBPF^8غD /Ă5UJvDc A҆]ޫ2;E(Rmf9tBXzrN0&+0oM[S3ga$& >T¨5&$fU)qɌF|JpUq.| Ԅ84;!uȿIޑ笩SKhiV2Ui)Ay*j|r`%w*y\vP\wkC_M4V’8#GwJ<;e ) Q8-Gc< MDf T/]x ~*["vVB4!M}P S35 e [1؛N9IL9.u/2GHz&@a!Im$4ǿwЅee!!0ȹz3SbHe,2KkXCM'-K\'tX >Nh5R L?-k?>99T0"K~s2h"c&4og:8578O ~<&`> t=c:]+-kfqooNo0FͲdOsx ˭Oa UɴZ%BüEt'ɷVRDÀ1c dkp2+u-Ul>Tt8c><iV6Ȋ1ӭ-O)񕫀4x@w(kKXmڊ Q1wY z-A {$1WݼK\\Qb0t7Z}c;@O&IUDT5컫 *\s0W2Tiݲ+r 5ǂ%JavwvȽ.(%njQ+ea*ov)痲'MV2Bir!fzC{69sQ&ۨNq f{%=S!pxm B7;=]jpPO'ؖ*niׂ/ni<^>@>n ZRXaH qLݠ8sCꏶ!122+k5v>CI. \h SvPRr:Y,GY4y5H>!Ġ)]2Xkw yTgL!budi\7]WhT0,i}_ޟ1rLFB=uԁN5ojj&$q?8,~\5e@xP*Ќ Iyf۩w VUq;[ښ#CZ mN@A0'bB\E g_w^#0 E\8-{ܟn /fFP%h܋Nr ʼT/01#hIa˗ os T`Bj/%/IJ?_>;4OTBQ} g80vDJ#aU8B#LC@r-Yb#\$4~,ؖ^e#w cX\@z)45ʎK[a6@R^c=a'ZϬr^ՙrVe~1i hʸ+w1KC ,O?O0 ڧr` s3;= Tm\V|u< 2:^\^Z G._Qyv_Q/ֽ_K9)1n6i6L䨕%P@eƹ c|JU(!g4?Re"iIkhc/D"rn/ :E~X :E'ʭ:lf's'Ay#(i5,_C^ly3oO[{/yt,mCOmybCGRmFz'f Z]75u BwDAHNz p2 q'L.QB=[5W|}]!L/D|Gi0Oa"[nŹ⊱j=O sg)E@r=Fki/y>%LپhxMS`f &r".' m^õS{+[EwQ.<̓QRcIqcݴ7I-lң)Uɧsgl1, uZ( EJ&1ޛ΄׀ϸ^4Tm,XM$=MNvjN;_^vbQl{!q{Y`24Y: {5QÜyg3;% =Մ%ɠ0&yhuD*^:ϱ/i>mw>#V29f͉P2>UU > Xlv(ӊG<Ո KZЭqZ]AvMP6eNqƢGf(Yw<&(sb7"}BY#jHV¤t4S̸em Pj̛}L7g]“J6T>(ϑEVVL2$Po k n{/CN8r`۠ap&.GtݚDFIx}R-AUn{iK`>F%o=)\7X<3EpKrdR»mD1 ^_5h|ǟ4bۓh2¡*Wt4Kɤ9=b^&1b(puե== )TOrʘ'w!_rWe:{ )K 8㽏^'ά>ufg #%̧ dmB03klo (Ỉ_AݱIѳr_j$*?RJn|Dȳ3]AqEth$e^}ROIc366XkXwp31&@-0'f8'ŰQ8Ϭ<|_ P%?@Rۭ1W!)oճn;~7UVOjyh [=Ga>8+]9v~IJ|D :_ϬRڄ!&RdOt3 +U'Zu *IkURҙeb$,쁳iqsGrr 1)!4XSU^-'1eԇ+bQڂN *6~s*YGHnd:INwdkY#WGDQ-$˺br:sFӋg[%(GOoWLcߕW;Dx_n \1h}Q)Qck9~O -J'Nz =F_ЂT4@] U AצKv ֘lBwGD!_Չ~)Vھ(>j3S@"E;=7 L0t/}妮ڋoheZ.sH%Jib_V򪱩^.JF888S D4u1sY%yt(*PMmД Rw`E漖M@g!'x-OO5m~|R)UZPv|5;5c/ G<4TLT YO'2ivPhT-C¯ʩJ j)ǰ  v]z=9VΠۼ,3$mfv <>F&\FçGG.C{ Se[~4aa}NUWzrz]'pbq;SC1b:oIx~5+xCWz@eeA|ﮦMݿs)lQsVy$(F<ɝmUӠ4ڀG#V,u}CǛp 8+& Fv@yrvҝu/A:baJdA4Rģ\[X\$Vp䚒;9/?ﺰ/)SB΋&?~喌фn N%`A3%{5z`.Pz=ўz;_TׂnepShd9Xs2Dw[=!=Y\mZVLRL1M0gE Y+wŧPO)hߣ"o hd?A3GYyʤNuU+; y#ǃA+狹%y(Krscʿhm`^R>8tY'%F7ěCNV\0f?9j9$˻]<"y+q@䛿Eξ!᳓tp槜[7]{maÓ=LGIbw n;ŏ"80[}^>Ra%6_>* e_fSdކYts܄ ǣs'2O\'Fxb" RL!] Xws"ΓUH"f?b]ޜISe )(~VHGKv6Ɔ@*MkT;l0rs4`r6 %pV{ "\VKm2(l_-Csqŀլ^zaLdm73iq6gj]=kiI*!_gGg@[ȮQ3ơ A1{ VZaYa{1㷇zه6Je KBTB࿸$Hv5f4݂C*,Ffnwh;LOQ0w0V1^}fmWp'Ҏ+7[YiL`a lۖ2.^Xp{^ݡD |k&/kAC\|;%#k7z%NZrxvyۨ`EN7Ζ϶@ҳTK߉Tm<lAN;H d𪗮w5Y>Π$I!YIW"?>ѕ,UN'Jxg[/uSJ0JIX =xONj.BXѺ *XoِH-M;sv: |^g):I촚SK뎆4.}-ڋ*NJ4Y}u2ckҭ%)"۸L."$M>Q P+L:}WPP:h:i3m!ۂؕ8Iw<;$fz2 oB*kܲG r 2eн~O Xp]̳{AUʤSԠHzS0- WYBa:0=Aڮ03 dBXdUs4UXnЌx2~n1Iߣ U%u5&<0H;{fI1fYl% [.5r֠pO2Nh}b*/sD'2A4vھ; {+ ^@% 3&JgP~@!!=r ǿhQ/}T(]k2LЄM㝙?wGҹ9CyU 8Ű"IFs]]xn^u_\^]=qV0Ч˃wwkhzi)?nFHoAs,CR't P&hOTC/%"i.-\vyB:eM7ۉcdO洞q:#[O;O;2HikNR]ap:C ފ8oy; tAQyfԻuڏTwbmﰩa[6GOɊU: y6<|LCQjw$Yj%My}9N\͗n-eдR|'9C/*]J+k2lbpm969tɺql'wM+Z' ÆP\N7m3 &jќS$QJlJ\{,#[[ ]Q@&!@KvTR˛_6eW&(yJJEw:e@R1raꦔ +7 ?ݙ4R]'^Bq➜ @!|WY}'Z/ZޟFL9^!xtZ'Cԁ3>+ݯ<E&%Zc!n"c5D:_?"#ѬGn~eࢭĦvAo+YRx1uXx(+c;Ж"Z!54f㝼s.VʐaBQ{zuf3↏1>b_b1C,~#?..u҅rٚ^rQX3@ѿGPƅEYG9o[i.B%ыSn5goZԒpc#1NNpcN*E 0Ҥy`csc߈^"_E4l UɁ_2o2{%j(plA '+#'sIx.Ǎep'rs>fxh:͚??8REI|噋j^c?LLVˌ~R_'od6Hr5MzbdAXb1Z"R:*kN%xa˞͸' ({@iGAs[[NV(KDbMB c폨 Gt ,Rz 6t2C2GXix(.>7QWvLwsZ0"}H ! Wv~`mϒ8 Z~{Ab3@0/q3}ybX\[bS^&VgdC-䫽x<1jSVv;G>{?9-ccy禭©N8]z: Mj e{M|ϵ o0W:!|rSO6BvGn}9.Qci-V<6P$K4ˇqEE{S2IOD^Ҧ؏?u̓x4nA尾خ>z!KʊtO3:ICXh2)1_j!Șpg@ 1JTgm=ټ7w[{]E #nAW%ɞ}w2tϣW {3WȚUfK:sx|EtMGhlyNnЪz.+ͯ#;]qRmU:R007u.& pdθ PUf8ŶI'㸞!P/;ԋBC/PhEu$Ղ&ϹV<t+bxH?p(B2ɀި-߯嬞a;g-+0吼&_,p(L:J֫)KO! 5&"+"3DqM(lLS(@ݥ0և%+[%ME_@{i`O:o[VO|--|0ҙ`k SPl`3`ϮX@Zo=(dDCRLlN 0Ub3!Ǚ{9vͪe7*pj%?.e8+,FAb'wRVj_Q. b"Al7ljj *'~v+3Q35ّ^!joBh\ͥ70/q`%[vt>Ճ/Iʻb5"\xd.`ҥb~0#3w=9zۄ/"gp9*8"= wU7E"*eCu̧6sl=%ؒ3|N8#B>:XoHѠsc:p:F1Ўxk\؇r]Hh8bVuў]OQlq t#|a&?;E*^hbqQI6Ierk)py]w_A_cRc#&GI SINՐ3eFF2=Hw G_M!TGdJmnofU6*`>}=U*5F,]UVţ;v8m)c[QPd%]((ݐQ_%INJW"*Zv{bDRQޜMe~7Hwbl}KB~T,QՊXppY1\\酎+D\ UW+ mWaBe&eت rZ 4 :Ѝ1{,dfa<1grȨBŒ ߉fOo$֍X ˶m>H`5C2!RO<@Q m#sĢVe}s떃 a{ӯ Ρ|$VX{@V"Q] "%-9_PI,QF5:l%ZǶ#MY1(X  C5xvb1LfZOTaA*ף>yBD1`ԧOs P~ټ@~i#J}+9iSN*΢JzZ/Io2QFp̚\/'`dJy/ǎ)V#V0+  n l@7h,)GW CA;ռUw gbZEUH|/%U*gThTDKq2<Ϥb4SV=CqjLV+0/5J,msaT>SX^乘I# @xQSڜ0eB]  te-u^  ]+U(Jv+>Z_48(}_!0 AvPp`Q^Lx"6X$[ȒZ`v3Tˇ/<> HEڄU[`\ `cDzPુ('^/Z#g16j}dP|H (lβ}[A\~H$,/¼u837ixir*[e\g Y5:&E+Kz9nl9moSw,[aKsW:ZR6hG \55QB3hmD I:Ѷ=ˤR)i-90q+"W 1#D8KD g iF8EoUaM:9L IW|2$a:Y!Ac GM1&YWUJ А~o/rfj_8kN$ݑs!pk>F \)+ )ТåBW&/\3c$O]DI~$Xiغ<g=`~qL#0|TY]Er] 5B.ny{Jsh­lТBLLT@;xZ1.<(2}G9w|D'U.uYa e A8|,?c󉉙ԘHy!?0fK4F8P$nU:lG_v\F%\}ViF@̀z1dm"thIuW湒 TK 0*Tf`M,KŒ=N~6{` *Fh>3C| CJ€\W;8wUWD}2sO2 o=RIs#'G4‚Xj/nmۓ+\g6 ˀpDXnLpr517p}4xp:UܾKb+&:6mJ,V˹ӖO<%.`w'Ekfٜ@<&ZXu@I/eJ-9.AZB꜌ck<锯_rz^{n^b֜==2QiV2m% `P}ʆrFr޼$#h_qWE*DYlzc N4^Ow>!@ʕ"rmƽO՚< A:;~(rda s:q{#V0LCbo*j!wj)AeZOZ yw.QyaOׁ'NS l'BDɚ|v$+[vDoP@8zvi*G (Be=[-{Et2 ux,ڠJcdH 24,-W|fW bM@L0}BvwK@l #Xx'؅+w6fro㨢0]tO{wt>SVVG"2Z2Ra~9qWoqH-I IP ]չV`@j91s̎g|MO sI)IE~PK/X!w \??\hѤY rlj|}~SqceT5rҾ*l]hFtHLW1}zI\*?5%sqMp\"u.,&j]#PtOrPvJL7E9,jI4|Ux 'Z.$Gs҄0 j̔*^. ,{7d7Yu9a\$I3RDH<8~3ӌ*Ow%qGI#5'Gylƹ ٺv%G@p&1kt'뵊߿/6;wkAJ(W$ݵ)JM[rrb)X#x]QX@VBE&#fGݑt4](M"̍teг%و,nGs`-7ё*J\46qW)GU Ryt; 4|>&DG%LsE퀭,.ݽ@&VVIe04RAttL/I*`Bp.PXc;;t,1b[|D"RƘۈ!1A1B!"#'{_]"*#qzQMGR w[6w&M{*ر#Rr 7| ⢸Zh%bF?S||!L: %D%J K RxTxEq L=36߾=aj-`DJ %1H v $][ԴsY`pqְ} ]O(#'^0o,f VΗ.D 韫D{8u(q:=`MA |!k/ ߌ?Sİ:8{S1 ڳ1\m |u:r5y:f8QSM4j׃sZ4TJTis> >F́3:yeŴ%WcGNX(8MkDu38nȚ 9]0KLI1yݲ*ʠGeW~6Iђ -޷R'~Mm"]q̧$--(v&^JH> H;MYX+K @Nso߁XuWCȨƱ~އmqN=[Gy^IїoVg߉ip$1C8φ#c!Vm&fC]W_2aN3?AnĊ~D듩 `IH0 -Z'7tdv!Z1f!(2&kz=]2֤ɉd~t"n@T7%<.Fv|>O[\F& 5~ ̵ǸBш`σL⊻À=3_-aӆg(J_Xz"bgdˠ)X܊M#=S?DHӱrL>v(#Xy9w's-'U$Ԁv $OG ϶"}Y-4mY~;e2b1:eenۻɺ3 Fb:$P[5a}859Fh3[uj؃n*Qߣç&ioһgxѲDu[5xapmoyw_zgl%ޫ+7/h^W<T ýn YJ/"*#Q]x?<{`0;ړo/3ŲRK]G* AE1 BCn'l̄]r'JܟoJra> γևY*F xJ~6AVxoIwkUϽ%95dGWq݁(Ă# W-RhT1j\AAl&W ޿J4Q[>`gavd\/ ʂRJ/6d= `0 ʭ+XTE|LyNA(*3vڦ«l2$(LoS7de==gM^,'v G\ߴofY.g,| iVj=cYpx}<ؗX Q#&~~o!Ox"]pg1n\pk=]P{ݴowArU*Y⌅]˶V7Jd}oGt`xvK#_`k|<1Atitv~(W5֡!F1!C bobrܩDwӡ{n GpPy^m&\4MPF]o|$cOcv,s=ȟG*mHZzm*܁zM.aȋ[agb[ {.bަa*h|rрj Hq} VhiX[%is70W$C4)%5<Nx7*lk€ZsY5ȻȘ| PTn#s3]e5CmM2)8K4IGW e_%Jܑ0enRK'/Sr0 redȰ$*ry^ |NDx-4#S:pQʢ9quM'i>[Gs)?NyR\;o{&$M y}OgCo}Q=76oۈr5x4^EoOX0E(ٸ޿ƝdU̮5WQ)a9U&k_ؕyKh ]m)z f7D@͖H)!ݤ?D~nuv۸nei؎:|o~!OK–TJ= iZ`\KLoB"7xd:0ܩiڎlG+dG/ l^:chI?MXn*NcL1B!Rɏ‚&aWC<*;J#_TܞL,1WL4 .tu nφD"ю /~sor siCD:D\2~'[t9"1!>.#֬(z^}mZ>ßh F7 R"ʍN=RKe_\Y7Aߧ^LxfWi(>fݗO r ֖zCk RL19go^2ԡjTt"€h{)j@9)Mr}uި}n;H W2gV|ag0/&˩J}zPJtBt!I2X|WC@)2{BNXi6 {%]'x Ѷ_`GQ?߻ݧbf5vkO9QxDܐ+a q0ׄj `}/ꉑ>R-3Yqa+*h m|GB۴C7U6ܡ?9gzqrҜz/dC R'?e꜅eC!w_0IчAecSY]^@A?nOpN;"꘡@F )9`F,Q ł՞Yբ tܲ^)4=,fw6bᲖcyN&j@DyϺA_gfzZb`HpB5<>(zVhi?"&@}ym&ApU{!>Fۃƃu—X{S?gm@$ml>NЋێ<$ƾ `9cg&қf0X 3GXClIyuF -*.5TĪ8=ct,8iZhJA?D;{ Ţ:g0kS5Aӕ(XSUG3N|,%rrOa;PEdţ%ϬdfR'Q,{"D+A7ֽ{:7JqÒ\~.xu>A%-@KgcXk i| $z[NNz1<Ъ?f ˰oq")r~ |Ñ 0L"2+̀f%5}x2 a5f3[JpSz8`"0oӮV@rIJۡ!Me#(alw|=~1aj9C$,+sP ϧ2[6"L" &@b !iG=4aFB٬;g96UV-/V)O ^ &z'Q}DNƖ5@-ѿmHiӁxH* \CWv/="- |CDCv 8_ڨVFsۄr~,F~rٴ:_`p xWoSQJA:w $Tq#n fUH`TyO;c)xQMQlIC=OJ)g/s'+ͧ?v{/Ϳp*LVvƄ586{.ϙeoK6ΥV4S<“-B^0m|ݘ`>2{< t` ,}:aA//\x|f1~ΪOa> 1%a Tp `ˉx::֞hi<.5ȈXdT9C֞ :&9,p`a^Ed=ebof.fWsCO}˥duz9mNٮtf]ӋI f&k^vʩR?9 jx/ݘQJ>ԯeXzM%T~+/=+HwsWWcaJjgQ2sn] nOPDܹW J:֔Cz;d|$ov Ffh v! &ж|Pr /TyqZ YP,3 q _~|9UAUUF&$yB\Tt=3|0j}VJ+:'J`AVC2˺VJoIOv!f l@†"`$:11TϢ`(KBpB 7ʯ _SYE@aG_<<"28q6KGcQE,&ʹ^E CstF"dQ]V)g)p갛)VzMB~i _X!j쀍ښLЋ\t**Lо$2u;ж(?onK+ P#8+|Fƻf1,p]/#[u4lH ٘Zp>Gl3 G!!x׼Fu+б ?x,(ƽ|cS֟3ċz*q.?_AS*/aꏋSPLgO'lm:8"U͛odK*FI 4Z`Y&"N帾AdM-+i|nWakTKĭn]CW9ퟍ AOB2I͞.'~mvdI+tDkg^&b" tS(g`4?#z:RIbfS6=ˏ]w ʮg4dbt:i7$ ;C︘7)cL*^yMGu*GaUhӡe6:.禯̹:؄`!f˾$]rp_]DFWỪlPԙ&-&aaX2g`kĻ=?(3JK RЉ)<~'*k&tT$vX Y@?jlAտsKƃZAbO# ۏJ'aCřaz@@^{^iI"0VѲ ;\u . D7X\*6#!ؚ ̯)$\ayD3qZ9P $ː}uivm,jz"cH{*nw\a1/G1#0e 9똙&֨^"av\+"(ӢPn,[kOdx~$fS+i"dԹfb(ϿH ;ADREa$e|<ڒLg+nOVM9$@z m|r՚m^>h"Dڄfe\eqx ;O;]'B4zjdtK.\5,oRWصyfpv}9vW)ڒЄr~r R9$,c(`]$םs|ڌ$kA*]>'xT^$kG^zw6_ ?LoCת [IR4l6x ;zRt-A+f}3"/^vawG'jn\*0;:Pɟ U&pY\ݠ GR^h^`6ܲI|D@qVl᫳߶F1JWȨ( U|P]dhlNwqV=H zÏb$'ԀtH$h!*WgcR2]4"L#POpB*ĬOu2+[.[\]k;ka唞=!Ŗ NP……rhıkK^P><ۿQhG()@~x`Pc86R_A*),ؑe5Bp0\kk0q8y(HTbS8jds2|Q$I|uw4dϑK \[u Bė8=L %t UV!4Sl;O?֫u=}Vj$Œ9?iҙa <=` y|q Omo) a|عϺd\ޭF, #d~} hm>88)H< Lz]6c v)AUbR>dsy"F"~',/־)Xj_4-:l/88vaαsi{@dhcTPګw2'(/[x̵_޶8j8ULv_l?P-y{sl~U >Eeb(;KCk{K³VEj<,(Q!9 _Á ~}w&B,mrb0,+7]pT;*W #I1GG細mLtv|6/>_(%2{5edTE͖R9ʱK PFԍE$tdװ8ݣGDC]"`2y| ggGfp&]^'pl[ r>k=gdR8׊QX)w1"n}Obt2,Jk }i7KkhD1>OV}t|˥豧bCU%Ubs)ԑJ{<]P)`܊vyݜuBڨPlⓙE>42&!JW^]+3Se܉SFYS͜51 ZS XoM/nII+'`ՁI]Aj7%L̃wO&1eS=z GZ??͚P.~k|}j$_¨Z xKEg; H5kR'u/C+o,9FU@"lOO\(ύbkc$dnu[,%sx]B9XqO NBs&n᧍|h,A@t4?˷vm8ْP[y0t'dq[>eȀC*Cͮ5JPEC冕z3p]UR8$i>[rQt?iLgP_719=)@xF!@[R @Hwpd<@m;Y3[خ!|n 6OeBhW;Tg`[MϣaIRfVPy+c |L(]N%<~@nk8(;PUMU5kN^\j([z{IR'1d}U=u4vh81#3U=n*g %n^! .g Ť˲/| [b<gb1F.Y>`9!u c8sKosJwfdPԁ;G@Ei`U " 1f"ʛ4x&{EmGO;`wNHul#MC88t݀3`e:\N2(ykIFk]GMഓ9l*heyhĠ>gKb#,ZvyY):daO @wV.ɝ9u73 #\CuB)D#QQ:PZ`dK$= sVswEaG,UO>zNn2Oy6n/ͭI`Gmt7 M_ OL-EbొOoR2WD/fRΰ.gxsAfl=CTRw.yzzjhSXjة||;ڊ>thvTShՏFV['. Dl=jX]xi7%vFfGttA:Q|;,+}I.((ZD9~iP-> P HuQy0AqX?zsaE+Ot%DzwX+iWohO L•d4 \e4"YYmLq"$s`#)cLѼA|%;H'j55M^GS ,`]wdT#MOp3^5e?DamȻx M}otW AMs#4Z/hQC4G{bolGύDCZ V` 1\PkI4+mL-[|kB/w b д Ȭ7, ͯ3/]_2 ]V 1*MD[M&/Bf']O-!<NDe@;lJld7HS y/.X6 lO'IT ohx{खɷ<|6ZSn<@] _VA9B5^?2/.e.v|/OEC]PR@oB4[=)'ջLb[JA;WPN%cumG]ӟ6}̋}ٸ'Yi[Q!PKkBTm~}pHj3 sY۟ 4?21RZ?pQ= iAȬ}_% ݦu Q~)8]bˀJ"x-L/lG-cm)]m:5*U[~ 10G8UZqlXOJ຀W #l<,}D͑T)_c~]޿)fT,*s;OX}K Ofp % 5h IvLk;bcxJtØ%65 6V&xpzXW߿ <\!XpVj.5;#=OG䭦1u=QF2ܛ<'cHhtD_N43/F2x]>gm7D*)ܤ`ܫMgv&0ujKHe n}K@Yvpcg{$ê&9ׯ8[2 jLk 8bUg8燔ݮl;oFY.h<0ջ`fnX#LzIa 1Pn24wK IhOYm~V$%iѩDUZ:@9Ot WAs%V)ak9nG]jϓNi1Tab7y )iDW߫镜hڞŋ)=h:')`H{ǒ&A ‚˪X8r3р<#g _~jMH91ZJ{-[SCtMs| }}64m'tʎ>?gʯ}Rm7H@HxbtA1;fV[ a:4y4m+u2NJbtg # s-",q߻GJ$⎋j?Xf+.YmX&LL +%J.2m_OgRj:@dI76RFeQsĉף+Z,yj0AKyT U N}pUG|wBZq3405&{o;Th/lqUS XO}+rJ)nP7 7P=/3Eб5"nɶ`wĠz-ٴ-=|q?ߣFmV*<9<;cQ.@?M#&y #'7\SҬ`Ǣ"dq VPxxuN:#n ^Ք Cq}Ԣ: Oe7$5w:~c%8W'g]f nM@0EF~MAqܐ*1^ѷuFwW@ `;cC{p^N&aR?L"^ڰ;$'Gg+1Lu |\'&}1OoZtXI{X-en5iJf 4V.AZI}4>#LEf$a7!Ϫώ&0LFY>sV8;w / Lhb:oyZ2ueʔ[ W-k.'3n.5kW?j&162#7-q6\5|8J͏t.|_)F*U,Jޗ H _c@FB( GK\A<맕S4.Q]C6/Uٌ⸀WR\`OqA,P2HOgNj| umr7sH}bj R@2w]u[!i.]nbw]-8j46vSI @Y^?!x\IK@ɩߠYyhD{mߍm9Iq"ev(qFi;Rէ>tbqfc֭:@H[iu aV+ok·h 14TAFnh5kGA%016j/QJU$zݑK^^g2s`̰["K#8j#$>ՅͤVf$(qQll>B`U>= ZCV8ż8S$wiyXIvP&2ɼά^5Q{\ !.UD'aҷOsF}S\ޜW{ m%= ymuRg G(Vtd<óuj@(=Q%amN/:(#2"?/SkM/*Nq Y ӝH5u(ΘT`tD4jD:jgFd5*<9Qd'$p9 ^,j2Tu-Fc=Ӻ7E־^OfY޸usnC. 8(b>oq-ux'*-嚀7aT)Iaՠ7tO7"ocfE@q[fXIQMY!o#fOuIi1wxʯiB6/ 5psѧyLQtL.@Vf(>3w᣺zTzZ9aǤz? m˽2LӖnGH{kzbKT*Pk]g'z.o3z8fyy:=?Cvczzsp%WitIt,VCGqaΈOh*rrPwXL"wޅ`dnIm|/>8&+9RAj"q{YZn`#f9ڏW:sɄ嚅s3$h ^bC&XBڏ&=tI|b4T X="(=z6$Y+]-""`BNS.P8Amv${|gC_cH `00 XpO~]^wsyhJquϝ m晔j A#EC:5 FӲ9wj6W!^j;(G9Ue36 ܭztDDۼ,]#֝ga &Ub]% OΊO`/p}z+!|cxvjmS|E00'v41Y"6-7x@Q.mpks|֪IgC<9NF1'(rB^^,;~g "o|k-e]!4~U-R"%餔[fcab* <14B:::P*PLϷ,Zfrى;yftdň\rn΍ޭ2B&{G6:jV!I%3|rؙu"q=6 G$|K8NDXr̬{!O,?r9\hC9{raY/)"(;5lpt]}q״+hFCX4{gû d_Djb2{O |3ρ'9##"hrڗWwsb{*ۜ]H՚)Ԟ; R(}]9ȝSS"PB+L5gTZTnfKybsD,i~щstyb~p?Ȱq0ZVw-|, ~WlZ%iG'|sgvdFwsEԡ߃- hAsx8A;.8=W%q\@؛?x%^#gƦC8` 08fTKbtN.>Mmͤ?~\!ܫ_OMM DU Dhtg5:̑ڶm_.S-–"f]'L‘͝և>8`LE> pVOj^O)5ӳ-F9Cx kQ9]@3AV|\I8JAl*tQw1G}D˳ʹN2 ?''^Su bO}14YDDрz>_0Hd0doIhdB*$ 'M Ӓ]?g-Z|W=2@ ɥ )gQFLb0hDA0nd{rLӑdqŇ٥ʲ֓U OvA^2'BXU8O9E҃Lw;+Aʼnr.ò/)'B(@h<9(.,Wц Cj'a3bL/68!t\nT'Iw2J.#ާ-QUgg{HD8o/g-p]t{4IZ\z ؎H ud%ξUs4۵gvX>W+ŲLI't)- pR9 5TŔ9lG>QL $8 *b^hB`6ƭA9tN;C:% do—zSUP^?QĨʌNNF.-D 0Ox> !i:3߉QHC !.@"}pNh WN\s4v5NM/'; pjZ(Ci**l[38bl9K$ ?H1a 珄Y.<- ið/0+ɛTq"IƘ5w1k$Y{{=dd$f.!'_7QRC_ש0VM {yR$_PUo{EH InZaGwR51~!7 j6!8uX<*[srE?L7E'tY_2&3i}NsUݛDjUh% !.Ň*9ǢGJޭ\s 7]hJ_2ȱ5:V/nwaBٸ@jMs< 3a’bA%_eA&}wl(Z9_sc:%L1LtҌR?1pSط* :GS^JྎsS}Wsq{f>piwK cwFK2BxM +[Cq!S;oDDK̺oehC[@~bMdgwrͮJ ^< Tl1ᇲ-'HV x3};D]&|9ٔsD< . f mX۟l'$X\4LšZت {$~/b[Y֣Hzջ YbB".t ڍ%C1 e9߄IB}7?x|՗4%6rZuӿĿtF@SQX8q8[7?%ϋW ҃CNa?WYq%WQ iz0@`o9%ϭa! o;Ҝ &Éρ}*RGZCF8C>v{c%W,A:W IzKF/E\eM4G+)m ]Dɪ&{BZ1#!@Hx mi);>ꨥV5@g"@p2|n鳸QV,b6꿜ȸfRuFԘ"iR"^xH r#VX.h1l~[h@#Y-ׯ^KU=8!w ԏ/)g۠W3E,jj^Kc452'8oHeR0N;~d$m&) Xp萼o҇;eSP`wmW%6KNfUyiE68+duUDȈZ=xA#[x8bWW?y>侱%mWdibjW7`q,ȶpz!]|mrzyDk~~ǁ ~$An};1RM%M^4 SA8g!h0>̞u'wjk i(¼8D2k58czs #8OAT-]{Zj<uҢֲ}[Gs +8($@/Wcgyzd3*r0IHzի k@j4?Z)%'| %'́欆`QƦH)ת?2PUlmL:lښxXL܎A._2s(gFjkR b|d<(a5StJE{0[F4__&UdK=xʃ{#1!B?ve•@-2Cdeu۶4>-q Yl$i =Y yX w}^T\$O)!(/uByf\09MQa8{L S޼G*iZuWUU<)-J7=4`4u|"M+i%K^#BQx Jա "]< mNxr"sD6^A9r<Äp#M{ iHC-a,21\TW>v&QBi '_%d5zGBK;,uѵ.:. /Z-\wwQl@U1Wi5$fm !b YyF6l[hxd]7`a;@涫hghel<“duY<ðcpe.f!Sr*^+8 !+$8b6U O ? BޤT&'10k;ԏ/5a:%}s[x+IRK * *`d XȖ&I<%)6댊PߙUʭ9lHu[|HSRϸ]++.9e9 >v=vk5KЁjDpz-f @ „ᕕ}1ђnO8qG6[@-S]y_p~RlwL<іFx72| "H$&!u s [w[C 4=Y%p7@\m] R|w?w:juE"e֍<2 <\hc+I/A ϲUإ?j;jj|.* C;D' _Z<ű" 7I?0zM 8Oz-B Ol)(;ȟ Y3 < $M%,ܕsUާog3f!% 2: 3?}D4{kh^kQ !q;QXd8v 1]&Ϋ=H"~& y:} wlߺЄ.jްͲdJLoԁ31ub w=d1j4O'si:^SPIT ]L*%7gg]Q /A2c 1'‡I|ךc^!1v/ߤfA>Xۆ@foh*<2H L}˹JKܚNҚt'@Oāt;Wo%~&KbZ!&ׅ[b! ji5K שB+{A/)~]|#!9fQG4†N+꣞|uoM Q쵷,vNUp* i;-I䢚G*;yD[F cX+g2Xc#'OS{DG2m%jrHU:>/>VP;u?4U?/ v*!ZTF }SFиpk F䙚ϭ:n}uӟsc c\5֋ s|;LjZ{Muj/=gD?VH-k ' j#s|Flw@ƊDGe"V)4ģi{t{H=e?yKYeD/[CUޠIgLǥ6|62%\L}]ǺAh.d(<}fE;O?k[HḄΨ#k^G 6шD7ݮjW}zT3Op 0~ -?+Ri :Vz$12&=X{O:bpGlbnLaG2Cru;w9 ?M5 !*?!}?Jˎ@\* =v@]W%d8-,ncj(btXLԹ]~ѕǨ!9pzm:A$hIR`ҕ 'SP:fK@8#,g!3kmmiDzK޾_?=ٵÏ} [%mK,\TrQl̋eѧJ``@9ho_H{\Ȟݽa3ϜY ,chل/աSiqk䴊_9]y|HТo949ÂO1a;PMT Ɵ:g,75hKԉtw+_'nvl$`LʵqRK?G ^dnXl X5xWk)0!ǷSoTDooeڲH(~If.U[AU/ 9CbͽKOщDۃMcDL~˱gyzoe<`MSq}IW7BPjEq(iVȫ Ɖ6`ciKou"*~_~(uB Xjꗍ //m_ M⼫>r &x<Ą--Q<.0}Oz,x)U\W3x @w; jR'fcC''Ώ ŻH/1UK2F?)6d3w s(=JD)·ԆP^aaⰡJU(F"Vl}*W: kQ WDCtBBE,SSč/?# ݌ag6Gp. q°m[IF@OZ㥦NjaDLԸp$G\ncLHοuTgI)c bi'IJ8p(.7=!(~qa5I;]Vx9ճmkMxQ4p44R9GgJ͵#@ĩjA7wbqs`fu{gB hiCMcíj>[F% .r)h͉J{,Y)rղN8μ] u`eEM6:SZP` pわta3i~U#ʗz}(] [[zM2 K#,rBa04psGLiuJ:f]:y+O5 Fxzњ}*@O,17`jB?xgi`'tC`xQ(h4U_.n x :Ehʣ&Nc|.z {rI57U.NikؿdRw2O49_C\qFASiwD3"vB[XGfs&b,jܫ}M0?MTs뵛H a'xBPp L.Y2G3 eٔ9t one ]+g5R   >$>R% g3ankCݐd7NZ1y=s4AUJ>-@ DmUcVc)u+){B0g F7ef,>M.|Z (F9F۞7NMT5Pv%^Ջۀ~.ZVn!k[!9_Fa0xxT/X('w֞?T‘x/kKt''b[+QMy0OBpA]~sǥM|̼kLCo~ضmȊ_yXJՍdRӒqm6 Y>*je5izJ[V8y~3rb7b7UZ 7+ 'KB"(IAI-(j'\Ԫ"Kv2obӏ!MڤZ.?V3(YrYɚL؁YY+obV" C?ۀ]%a/},߳JЦ`P>1|jmmA|3Zc^g,ixX3$`E$ի. Dlry>0A9b=!fv[g*> Bh`s j1j=4GG Y%¢4 s@)G{h|Jv%Wo[nMJ>W܍$J[ĝ[!F!_`!2:e(Mh,sgfBLJke_,%@` S>C06 D$ |@YWBkY Q?{dxmKǁ(H38SSUr`a9Di^p2 L lM߮ W] '*JTEař|BJʿ% |[ 8`7Q oIAp6s N:A" Dj96Movdptrea١Z{51d\6_dʿu2b;Y,[hqK.npUϿMhw@f(iPhq2@3UF h{\Ы$0 bNg͙^ A 5@`r=W|d#uEà"G ?BH_c ގa}q HW$|U]Bb K]{+9(d:wZu^1)b^fWB5%D'@sfMVNHi-ah~N"_i.'a&`A* 4*ʏ a bÊuRr1 b0z"&5+b[=|3;+D<vTO:J#MnٱMET6P3x֨=oOC7@.n{Mݬ1 MnߞLY`eJ/rY0KC-v1`=, OJx{=BHix 4we#Kڠ,ѧR +ٹd0p,W o#Y+UX7z/(t@cr[`wZg QLt"gQC?ޑ!j e8T',K5mĦ(9.f9:ԑrv7NV3f&/s61(LQ0ojՕO,lZ(}7GB&"I nTyתO7>EK}}V(VGOG;OBˀ85&zM3k/؂Yo$RVzH fq1G Ww@>o82V%bFeO%:P;%noC_ϝ'D}]zG4i-9J 6(9WRL(Rxc pb.4.S#H K4|p@n|ЧfɢWl%ISu:ozК ^?inIܖ.IIF[zax7%e cujͣdIz3J^4CpHKHUKW|,+~ dn^uvݨG|qAJ6c[#ul=u{C~!Msfru]~Dm#1<;;vX=~0^K3go:KOuER$DGק'3\-l~FTw~k$Yf3z[Ϝ 6!h_ՁjlQaےxKuY[vVɷY`JSBOƎhT{& ~=_т҉l:դc5K3ŢŤLɛp2'Ʊ^&z!t@+yYFUk]>)@_D2p_)8C]7c0!}å w&v]T 测 ߑ(Zr00:.Em@a ڗx,1~˪}Dqm  D*z$P$Q, - YnKiJ}ZŚe-…:ϮCr]z7qC,l<% ׉dV^:V+$x2L,׵& טJ+ hNٹ]\{ߐ;kjMj(kYIQ(뱾Q#[ kV-sp;b'*LpjHSN sd97Z5X{JVaYQ#2X ̫ /rVkPKhael&Xt)l)6JV9q\mQUhcwxP桃:(*#c{eWNoһ?fuʫk`f:`7`W!}FP)K()3ķ5ID|(b?er, !vJ"$K { M;otQIw:x!X-t@|ajj:_qX.vRNZ" KX`7qj/Oz3_QsZ- 5؟)=I/Pi#~5X۾_'XE\k:$zA.a}E0 IbɅyoMyُQ`kQh|1yIơ$u@NSr.%%죺|=`o+c ?se,7r{@3P@vZ,ol|ۮYKmȧ͡kv47Qq /[\X %-z`)gQ:yR,*^8Q>caahܠ" ?][Eyw_ҩSD4hm7B>+8K)EyNmF;ˆ zQ#99 {vnbRp]4XFmR\/,5fF QȀzRD(@l(((%fc4L 8x, ?6t^fm@3tuۮ*iwhiWWL P`+S "m߰NQY#dIet1uI%C hw@щfۦX5elmB8. /b$$ż`P!=\o=,cm/I v<8(JmzG`x4b0U#/mrqك:ӣU{( ئ q0yzb*qr2R%>1X ?`k"ry**^Α0<nȆqxzg(!IqK Ԯ@&'w)eĝhcD?G&`.\ gw[]uc5E׌! w4q?xb3:`Ȏ JQu{~ұH çȈ<6 զ <0W_޷s ?dS@hůZBsjIPB7!4TJlsr=#w~C"Nؔz-RM1Y=:P9 =k-y{jpOS8Jhם8O1)E>չ1 SmNڹM3?IK[o3wEc4c^Id[&NoBX_38vDd{Wk,n~9gVn:b{s\;x%-˗TK)̗ fңf& 1K/4,z_xϹU) Rp~":5Rs\q;L :xXkUݥ9NA:ef(ƻ䰪XkyJR~PcEa*]$X[X+1ES%nBC|n)zf)dM]L>fC!<8Wx*lY#Z$,y!7W}'gi]%P&?L\#9hdPzSU>@JOd`0t&;])F9\x[F)-Yޫ1F߉9Jd5|y1HX[zס7zskތ`?-F2<ncxp@Z*s@Z;ʹXJ#N N`~(̼K%L`<^ų Q{9?*omg1X2HuT] |q`a3upēchMu{}~lv./wGi3w\XlgKga/Gc)bt8*}n5RYꟶsb]z/>8!Iw0ot寓7sS糇)yRt[iMu(# *,k10mX^Ph*UTi.z'ؤGc~+۾zDs[ - @9IDɷLsQaY* @e˕: \[HJeg'&.-dnkiD0g,A3xH_ qΩmdٔMjL(XPs# );g6- ͈Y JCmxdjP 6)`o&?IӔ=M Qk.LFg~ydz] ݽB)xzkzou* y勽?(Ԏ V‰DVp@X1 .!ZȒ/x9nY# YϸUų`>ZbNC$J$эݕIag;# _ӗe\\=|t_o$&{8Oz:s>.A `S1=Q)Q 3*%% 7R+ҏ )Jac8 K ]pǪ|=As;5 'X>9V SG#PIgFc{0%vxiV# m6[Sk5LşfQ9DA &%q:Oa\}*53njFz6u-Nkup NSA ̀ 2RRl&%߅DRZ#,R3eYԊL !&fx7㤛׷i4X@3u8^|^È D+F wmfۙڎ`'. xyޯ ŵS &,bS+-1-q*`R~<&5ҭHO76!V,cjοFWOBYO0%zF9^* ,6c\tWj3D&S %U6mG:<ܿ`K`-[V@zJ.M{bl귙.L)[iR/koP~Ņ<;\%*OB'=W&QdxlY>OZd}r%\ٺVd9!W@,jnZݒ wCp_Vz3̮p[̶J+GU2HU QxHq\kGԍlAސ]O]YWf ;3ۣ1USwZ<<Ȋ~e6q`n 5>=j"| Z##:[ӡ}<~)U]ŽvƆ΍/v?VZet'П0z8-Y6kuFm.𡙥ADKȂP8bŋLoŨ`͈RH/W_NaݓZiS ҟC`-aF^Ik/.ޖĚq