firewalld-0.9.3-1.1 >  A `pp9|6m9j f5j֯0Wd̓ar< & QaRɖsaFyk 2w3ױ>e]Mog< !#2gf9p%&8y ~Vxcf"gEޯFH 0Q:eRCj>)\)^Ip~vYi)-n1Ex7Ƿ!1>pIX4?X$d   Z# 9Zsy B Ip-$- ~- - - c- e -i-o-uu-zhzz|R(|8|G9}G:G=#># ?#@#F#$G#8-H'-I,-X-Y-\--]2-^CbFcGedGeGfGlGuG-vL wN(-xR-yWzWWWWWWWX Cfirewalld0.9.31.1A firewall daemon with D-Bus interface providing a dynamic firewallfirewalld is a firewall service daemon that provides a dynamic customizable firewall with a D-Bus interface.`psheep27zSUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/Productivity/Networking/Securityhttp://www.firewalld.orglinuxnoarch 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 firewalld.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 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 firewalld.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 PNAME=firewalld SUBPNAME= SYSC_TEMPLATE=/usr/share/fillup-templates/sysconfig.$PNAME$SUBPNAME # If template not in new /usr/share/fillup-templates, fallback to old TEMPLATE_DIR if [ ! -f $SYSC_TEMPLATE ] ; then TEMPLATE_DIR=/var/adm/fillup-templates SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME fi SD_NAME="" if [ -x /bin/fillup ] ; then if [ -f $SYSC_TEMPLATE ] ; then echo "Updating /etc/sysconfig/$SD_NAME$PNAME ..." mkdir -p /etc/sysconfig/$SD_NAME touch /etc/sysconfig/$SD_NAME$PNAME /bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE fi else echo "ERROR: fillup not found. This should not happen. Please compare" echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" echo "update by hand." 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 firewalld.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 firewalld.service ) || : fi# We might a have runtime configuration which we haven't # made it permanent yet so restarting the service could be # dangerous. It's safer to not touch the firewall ourselves but # Let the user restart it whenever he feels like it. if [ $1 -eq 0 ]; then # Package removal for service in firewalld.service ; do sysv_service="${service%.*}" rm "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi  ].]zz}wUZzx& cH %},-@ZS3&I((1>ZvR00iwaGt~f4 D]W(DV%pOW \e) 67^IsD+&AV4w)7I PQ`6<CI!:;+%#0q;7(<IF0$& S +Iy Vv  kD H1JuA聤AAA聤AAA聤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤A큤`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p_`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p_`p`p_`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p949dc7d955b10c9e0debc82320d8e60fdf2c87e1c5620e95f4434b97079ef6109f37ec609d7ab31ba0baa7bac50dab5a89aa07662745cd35b1b721e117e20b4044687bd20dace0050c4724eba5659ee249ec21b5b60d0300da9acdd2027ba241120a02e9b88ba74949224eca7385825e39880f5687f739ade07d94ee22ffe325051323c43bb3c0229be7faa4a10731c7d5a14d922553d3944b756f4d595890f5ddc63a9acc52208af896ebbdd53accf6e700f0e80c369381c993ae63805a812a45b313ce514bcaa63394d4ff04d1f0f19bb3f237fe26ffe3da996dad8fc03391bedddcff47fdcfc8b038361a10ca89878ef777304aa6abb6e754eba98663d32efc1396baaeb3c1394cc2edd53343e0ef58c144b8d2838c38a65aa100e3ae19aa2775fafd0aaa0c843c05089410dcd6f52795b2ec920325ae1bbb960ff43e68f25a36252226cea7e6c19dc9354819ac3c785ca19584baedce9b600912eb24a452b9208bc832178cc8e568db8e41756943eca7d9d8cac6ce721f11c1e27f7bb44e199aee6be87fb7e521bf18f7b9a887a7ef2cc2a3cced3e95045b076300c70e71a1a9ed19ec7e8407d408721a384a7b540ea84ac7b512d064c76295d0d320854e3dc1a43b83774e06bcb009e8edec65e1f436dc67ba173b7b931b8a1f6784c856101f49623d9031609fab630cba659b25dc0bef6755dc30b3533c87b031a62d8062f0c384313c589cd3653e3bb4b30fc99b862604c1a2f5a095bcf8e3da28a4bfa2e2f3c0f7499e4502e81343fd8e0252d64858f2862ea3848a68c07b0e5edaa6faec51e2397c0d508fa59a6f29c8fd6855292250ab4c4a72bd06dd688736241687533748f6dc4bbca3e3cdf8c94cf0acfd84dec365bfdaabaf910c8ee1ecc4bf5520541e5f8df310a5047000c62e17525180f2a86f6ce68e9a515b65dc530034c0dab1adb23553e78c7a09856b827a2a8f627adf5bdaa673d939710c4bdc00b75142a33df23b4bbbdbbe7839cb0a9606123019d2e10db1c7e8ba3fd22fe7ae91a9dd785836f3c5eb2722fc5d452a9a48d35c620ddb928b9ca73002bf788026dbf1cb22e847d20c5586ac7755245fe2b5703ffcaf8ef3e26e54cd12ad7f1bec610efd7cce04ec7aaa6fd1b5dbdd5197229e28a9140d2ec3330077b009e7adcb444c223255e501b772168a31cb8a7b7b32334dbc76c3a808d9b8fe81e4487c88c3b700fb29f8709261e69bdb327ec32e4cec986c6f4595a6e6d45cbb6ea766bd6b6efc4aeff39086a3abed5a35eece438f67c8a7badb9e48d1fe5bc6753dbe5b06d58fdde34afd628972b18b679631a693f8d7d5680c79e36ed9186066ec7d15615bec19eda90b1a47a57a44b2113b3f72b4d7baabf4a200909bf7f8bab098701c599d449eaa1a674bb9f1ef062b43f8303df864ac007e4e7026f53d0021ceff4da7082c395c04ef3f03e62c5315ff44cb6f526b17ddde31c6cc8bc590c31687d92c8b531f1085806a0c8c8f148f22916719259638b0a09701ff630db1e19d7b261fe4579baf77416679255a768a30b1c24122c5af4ea3de6b4f509e76874a802b40725ce6027337b344ad530dcf819ecd4eb457e922bdf3ae18dfcf9ab9a6a90b974000364b17ea5a97eb04dcba874203aaefaadb6d49e6dba604f2c56a86a40d1545628325b41597c43ad9d844a5f81a679eed87f0c0823532c1a4048aaa992627224cf6a6495e0918ccd10b74be16656832a919e2aa387204c7448c5881286588edb7d1caf35a624b359789c358f1960327298053213306b46686468e0a06174d343412f91ba070cae8857aac9918c4a5b01ec0cabb40a42d82333f9b9c4b188a31142ec3baaa690424032d46c444cce83e96ce078fa382d37c85ec9ceea4acbb2e0d625d33f1f8e60131dc0301f343f63a74d5d009a962b790b3b39e234754ec20cacaceb318f51e93b2f5bb04720029b75c7545dbe5b6b0a7d3056d680452b851542a35535f65f5df125f28ed354bda85ee118e7f27cc7d08008a6b4fa633a605c8ace6397da68050e859129269142254cb0862a578bf89fc93536581d2549cf02a04e67230416e7f6bd164ebdcf3ff99843741e4540ff406775f76022c742110062306bad0e4d08a8aafa61839f1cc3665fe1c23fd61bc163203ac6036847164c8610057d01ba92ddf1e152c42256780ce14f20560c5cf6277be0955ac236e37c8fa8972eb7238927b3b25adfebdc8771210298d34fce9370bd5b6f60f641166a3aebc9358e694a895b78c02ef97f15ea1fdc12906cad7d44149863f858039f9704f92b26e855f266be4fc6d86d2be4f8910fd61d10f7ca48fcb3f4f4de37586d800d92d04a1945a00648a116f895fa71e585c6f7fe945a82bac835f504c88def827aca86aaad3fa75e2cd178b49e1813f83588822080f1a720423ecdb84608e421b0c496a0c536b6013dfa457299680ea8cf619c84712de2329e1c80cb905b95afa657eb4c2ce36827de5dac30578be7673090fd7843cbe7b0060c8da576e360c4976bd8de87218e842edf514f4fe87290ba306daf33ccfffb779bdab4742a47d40e748ca2c98447a02e78c99e7ae3f33303cbcb65c6d2e0c5afb044d0e43751d2f574a3596e3a693907281e0d03e20199679de339ac0b5e64fd737311e3223dc4929952d4962c727208383786a5f498f22e63bc005fa8e888dd3d17bc4dc7fe07caddf55734354f09870a9aa97a4d4d43f5cfd94de26f81afd1e8e2336024037184b45c383a511d5b44892cf5656acb3c1bc34e2df5712463764a6432089b9a1179a763c7048a0a6d555dea3348a8fb4d04a79f02cf5ebd976986312394939b4d4e1f876b0d07f1b5a290e77b61cc9d25ce8a47f1261761b287113f80709d1337054cb570e5517741d40d434c4f7b4544ec0e60769ecb6d9ff9d7a52c0183e86c3186bc1a811a2c9a76df6ee4ac36fdd346b29e63578f4ff3661e9b05a08e2b4041fa2bd3cb6fe119ba329178b2438d7c153a77c37f2f3973a434e81f678622d34f6b5b578dd1f793f27f6e0bedcb525ff92c2e25ecdcabf57166fe8d8d2c82190a9bc92a5ed89f0de9e92b44dd38950db13ef9a68c47eaedd08f65b3e1481597783a38ac7bdb121ba6312b24040448a60544ea21d9a5f4fd4528d794d15b5d2b6f1454a5b1dfbe17d24096a52bc7b7a4ea25c8ad294fa181d3c2c275b311245fd16492fd98f2d41ae7bef6701fb5f86a4e65a416176acaee92d33c8b2311e0650712c774038e1d3af9fef6eea39a6c65bed7d3158520fd491749f473a9c5929f3ec40b785e6c5f893a5d2b78d1ebc9c6b0a458b3a7769f73c764ef6a455cf84707e6e6cb7da6f0cc2b8d6316cf50e7c96b60bdbaeea7078f71ea155c6a86d28e6d9b858569562eea06d083f7229f40031caf4364b910c8e2459ac2f0aaa956aaf3bd38a838ed20fadb782b5051d7b77c0149812846e5f16b50f13bb53fc36eb561b56f94100397f3ea8924cdea4360813a1660c4679e49868e59bd98c31baecd00d0686c55beceae3bd5a6f0b0b5fdd19c3d2c8143c3f500d3d8b2f9747ef18c6c7f485576eaa37e4080c554937b4e18503f54007310784922b51d4657d85ed08c754fc2666229616b30181ab40c720a91cffe0eb4a7e7fc8776d6001d329277c00003d7e7cc1a3084e76305c230c6c185298313accfa4d7902694a6513defe21fee5b962f6f951a7eaaf1cb8cb81ff06bd803e2e9a837c3dc33fd4a0cba8e8b741f4fa0c82708f712bda074b414a357c8bb9758d0955f6d4e9d828f6dcfe5a62af4e278d035b6607c27f19a580a83357f6bef45e579a36fb8b63df56a15a45ec36f0fb4ea428f374b1cbece77e2a5599d9fbc29807b2c687e99d30964fb572b817e67e1294408f2c5a0b583b4270c55e462ccca3962f74998a7b098a772733ef72dcbfda4a0c885676fd7f3414da386f2e2ac18169baebc4a1539a6b854b99d629df8673e94e19612c1a860db9b19ef19d87423f4bf87c444578db03dbc5fd661470724a4cdc65db29172db25009ac8d99012f3156f8c620ed87903148207ceb32469fb5de4fdcad7fcb94e2fc967dec92514a8956922e252c350f4b34d4b9a6c6345b4d55a3c9665170eacb8ca861c93100c4702bd37ab1fc29255f6a3ae0a89db8c2760002126891a365ceff8e2689f3d52613ab5bb7b0f845f829950cc8712878ff9af444802cf22c1744d36f38d028e3065f1d28e93b22ecb82c022c196d855dc82625e857c3ab0bbaad5ffc7c79e78ccc9f8421a66ba6f5e60e61884d00701245ffef25b30dc74c65a1898fa0e8e279607bf4212eccecb415803c6da50d96efbd09c00a89a3fe3e7ae7be4ea6850b2cb3881533d6f3303fe37cd55b9a3bb2d4c4d149f63ae7448df755a5d87cde2b563829723a57ae7cf0836db65f0e2ee28c8ab41b1524a748b6784d0193afe901650a67db7042e55ee26719eb794a46300bceed7262846f469f0b9ce3bbdcc44f988b1fb06b70193647961e59f5b4f3fe10ad3d9257a704363845ed7cc713a8cb8b361d6646d651c94d32459fbde573295f9ed593864ceafa85bb880fe8caf88cd9e1428cde3ad3f6e747c7dbfa875cb14eaa84ae5fd96dbfd8ef143ff82792648f15b7995abe893cf761d8d4e27f4e86eee727dcb36eb4be08cfeefb30009c78ee4331cce490c047cce3e07c529032433f27134e76b0c0c84a34c22e2e9edbd565b2eca4688737bc8d3ebdc793e778ee0da26be2d465cd980d7da3944887cff95f3069e22e3fa5795f141b1c749c02b50bde5438254aeb8ce5a98a26610b4af38716f4adebfffac1a8003e3cd63ba4b04c26136c1b100fbd2e6559192289038dc1c59aaf66b2916cba6691a465f31042f5c7042986bbd77e22391286a3838476096ff766d459b12e518cc5e5961b57c5f4f7ad65e9da5f5c36b88f98fab824e217b55a51e9c09c5b787ea5929ca679e5edaf05f6cc407ab44f94bf5ebc4ec738a58564cbe09e85da1ebc3714cb1b9c195cdd67bb9553c87a43dbecb964e7cfa430abc8f83decd663aba9b06bb69ab6dfce47cfe4b65cd7a618ca2f9828a8648606019f56fd67664081a5b6855d1311e3e9f8304d77b762865fef50aa05bb45c2b8d84de2a4a74b3a542c63af4f1c1b97b77859895053cccf94111e07c767a9f84096d964fcb989590769bd56d2ffacf5463b961c3fc7b11f1093e0488abce1681302cba572337896e1dc3e150dfbbcfbc22950622dfcab275152ba520e052f197f0a95d8f35c3211a4a59d0d4d919b0bc8648cc255d456fd2d3644b3953f14e8c526b7e244964202d606873b47811fa459f7364ce3eded1f816596df0dbb12a4f5ba2734ad31ad5bbd51bece67283d48f53980efd3195549a3c973a0dee0a960973e6238493ce413d7087b92cf4ec8fd783801d56e5255617a7e77590b7ce8a68340d461bc4bc17057e09b7d6f63387bd4b4eac4fa0be8bd3b6f7d1414cf632f6588e1ec70cc3046d4733413144c538f5b31ac4e99fd76efca42dde1fe800e0e7c0444289876354452049a1d2c5fbb3eb92f4f7b350a5514170242a0e885c40f859b8e7492ecec34692db6d8c3f09fa8dd5585c5f3e43ccbefbf7c35c2968e0d23586d0bf6c95a13f82c1db840dc49032aba8c8d9c117e6ab80e90bcd60e3092cc4ec549484774c0779073bfe44b30377ae6b172df1942184aa51f2669494911550d74f42274d1ae7ce6cc66bbefc5d7d443d0e3983300bdc6db114efe2bd4b51c6daf31e4b90129e00b0b3b016df15a9f0ec7eb6e331bb4e6a8e519c21bf1f8be32138925fb57c60fb14d156c972492084916053b985b8ce8f6ea739b22855041b6f9c1f00fff38c96995c35398840292a12c7804668d7856c04bb396a182eb5a92e54cd56dcb531e366274dc051e81a8a89bba0b312332069e630341b71fc02c7b94302a85323a448459de00a5cc0ce5bcbab2314660e64adf0d870868b2f7127ec155bc4a57de6ab4e3013e7ad07cbac53f0cab8ba4e91d0942bff0fa86669763f091122c4602fbfc580ecd10a6816918f236dc8b65f609b3af3b30e3109a6a6d0efd947e8e7110ea11d503deff5f77a6d32bffd22e2d30dd7418f0ab085d28880c5faaa001c0f4aa53acfe0beeb9d11ea8483db0e59020b127f184aed44cd656affba19cb7c18c3a6e340696ec79dfa4b86d4ac385d29f8dc56948f75d56c0d58fadd20aaca7dcc5fb9792f18e1531a863a165317c3ef38f74efdeb8f7423f10baa7baa197334d52eb5fb6479a9fc9654e034b16761bf37d118f5731556a1acf52e49ee576bcc10a466d14a05402ea238ad55284f5733ee4f5a74ed351df315164747e3f7c67cefa7cbd0b75fd4764066d725d1fdf411a36083614052881faab4c298a1c5da01baf1839c62df685b8ea110ec2d204a29084e67509a79e2f46659f6fde3fb40a12cd84c207a13d136cb9495d5048812dbd0fda2b106f7f37b9d6e5e3cfab11f13c84cc47c6c7ad5c85f27558363e36b04f08fdab43784d8716d4f7b28668a525949d56108c834b47444b2137fe06605ce110f0935c6205c03fd0a109f899db4bdb31765ce91919192a1b3c889fcc0caf91e72927f38cbef5ae936cfecf65c730e3b4bbb23f7832b0af7cd24cb7d6b050b4b158286fbd44eaf03b8025ee38be76cf98d438bea2522e60786ea9911eaba46c8168767c47a1f1022594c61dba1acd00786480220644652bbed0afde92fd6fcb9838438185d5f12bde6ce67dad532083a5eb72eb4a88ff398189fd3f1f1fba18126bc5b9d892f909a7b41ada30d96466d0db5455b3846ad7fe27107a1c0452d4974c79cd39bcb785f2e3aa7b36a1f8cd883f2bf4f3d1bd97183ae7fcf0246dd6b1e2fed73f630e22be315409c984d374658d61f5d546d717f146ae164809bf8266559a1f42a3c47a220f70e6a74d695f4c7dc6d7c1f82bbd4bf3560b7b96d38a8327f1888a05651ea6139eef97f74ff5ae74ce640f6df83c86894842e1ec6348c45c1a3689958df24d00eac2505b8c9f04be56860390a76dec536fd431cad1829036e104c805f0712db119ceebdd40c009bddd83ad612ff84d7db5600fe5ae2dbcdf748adf1de7204b8e2c222e5bc1603fd94419692c6975b7b1e49f67de2ce41fd76a3ed2cff83f6b36792798ee99ed2e442f98d78de6dc0f2b0cb8e475597224a094cf6dff24061650d5785242e369d909c202f99a3810ee5830dfff9a97e7ffd2fac2eae8a03ca61de100fb15594b4ad1afd5051ab54700863f6de6fc0551761e1bdee38cd2dd16cb23b96b7729f3ffa061a8e15c282a4b7421de7dbf54048680c8a1ff121743aba930e0d6383d90e122531ff66fd70eb5ced1f3d6d1898d23b605ad074d7bd9121da3cb3bb753b004473be069ea9ca3df0aa607435a4d1f69c67d8c01fd05859413d20f16cd95bef3b50a05aacdd4c115fc24bc233030cbf061432ac1e5c87ae80041ed7f1e60cb9c1b59843649fa610134ac5a80f1d0646f5cde3b2bf1458ecfa3c12847cd6266419075250596aadd7e8f01ae30c51887ff48e1c37e78dd5b3a75ad3e7eb4ef0a6cc5e4983c5672089ad4ffa43a1a2077ee091ddc1c6a99aa9a197f566d32c0ba08bb1959ac09fd7b618d2c50e3e51b7b3d2f62e3755de3fc22ef61aed727de79a85cc259dcab0fc6417171aeb053f0bfe056445759edaeb6f421431c21ee16e19fca257e02ad748d89d83aab48af2babcc2e570043b846772a9192cad20b2ef458f0fc2e6c0fbfeb76931a78223617fd0328ea24cc577c9a563b3279244fa3864cad213124e32a2a1357da7252c979aca82390c1a5081dfd94cec718d3c7229326a6fd90d3ca9fcba6fa35ff8172fdb96207047a1c61dbc62c3f44eaefbe7f88010ec0ec28fd1bf60f18faf6ea11f3698d184753e3c66c0fc525d13995c0a8fece6e78d164885e1ca3817b21814d52e065b9d498e44075cdf3f373cac4172779b41dc1b3758ad1a108ac478e11b28df899bc84a9ead8afd690065fe69c0b90c1753e8c3592fa1f8afc0bccc2a75de102cd259427b93671e03dc7a0c842c10f687b897e5d515a2b2253a62e179458d54b5a56f9b41b3d62ebff5bf535059b929fa239f59e8274202c37ddb2d19bd02b60473e56d1b8343682a9c6f5b82bda76248832d8cac360e25fa7a0dd0d9cdefcff7aac3db81fed513835e1b362453eda47aecf07eb2a31b2a7cfda86f33ec4f5dc3e0a92d4e9aa75aa110f86ebff3a8a7baab6b5d813ba26a649789af09b2295c4362f64352c094dc66a38db9e84764d4821b49b10616c11510f7e04144256e33d548420027ce98f2e54fb0b6bdf2d19e7751dfffb5fefd2d8ebad08a49ba31708da29cdcf500387e22afc7ba4c74eab36583af613559746a783d58fda602618616d135dc7eff0a8062352e2f1d36a9412496d03ce2364723ef0cfaa18d614dfc40dff999d61cac5ef41189b2581f74b6ee71ff6bc2323b7a111b2f2303270d39e22fcd46865a02477584488b5471012eb29c1ecbb2f74c43f2c5f9e0fab026117459bd5c399ca340d222228c7c136b34380ef8a8baf871b6b7584c295e89622172eec81979815d1750cdf9c3be68d71d08267cb065df399dcb5340d645ea6aa2fb671871a0ef84ee6dcd4d31ad6e221e5a286d5bf7b9f026e76ef26d6d8c83b760c70473db870e7753f8528f640525af6c67eccb8561d05c0c6cca9e8cec4503a223a86bcd08bc33ceda792942efd2a967b90a0f37b4327cf27f54f14f9ef8b90d8919c763f2c0eb8f56a5c69911150c25b3fe8b07ae410598b41c98f8e1dd7e113dd7d176e7101cb4e9f46224b8c71559a0f0f1bd22a0acd33ec60648729a63b0902da9e762284061f0a1bd8dc2f8a93fd393fe52d40450f4aafe639e643dc7f5e85426bc5b9e074b76b757b860cb8ecc79e11b52a5bd20ed57ff8afeaeffa9914a776c2684eb87bd75c3b9fb1632550b5ee46952fc55cea726fdd3485ed96226c8140393964a80f3f3e06dda77f25d351049b1dd4964f3d4996ddda1d50a74f6b6463770d1047fc49852d2c595fe295ba2db75476dbb053e21c59539e039bde113c368bd9c9fb3f165f5e63dc769264fdf3e42bf600a493a96c4ab853e57877452636b3a1cc969ec4c9dc644f6e90128811479e4eb676ec55b32388e449322fdb6230901725844a8ed6cc3c2c25e483cbf096d83551ede1be300e3670d86926954700579c4a1453f9fff573a2b9044d18d30a193da28a4c25d9e67380a8551e63b3391d5adfb2401dc6800e8dfcb59ea800ccb046f2d8495a4b1223958deff8b9a7bb00aa5db265e2c56a8b4d3a050bc6a9051aeebc23f8f387c48749c2f8cd5371f0a215c1097e30c0b814270539bdc25220ced1f9b159a9e67a0562f67d330066a2df9097fe70282d3f6709faaf0e1bdd89ead377d6d529a217c7c31a623232d257d2f2763be3b8c35c31601068213ac8cdf07766a1ddc50ebc79b6aca5976a9c914da4b4749ab44b849d256d96a74ecf29fd1ca8c0c362779cc62cf5e7530e9400577a42311da255e168832526fa471ff1d26c88e63184fd6b359d5c0ea97324fa251e6bb52320f3fd3f695a18ee14672e895f6c7a168dc852e8679c23122a76fd21de94ce714054ba2b6b4d2bbb85a945febb7c1d799f3dccbde083958e6edba185fc4e14fd7f9eb8f784021632bebe9ebdcf929bdb690b4ca7477bea940d8d4407aff9ef360ad3460842f81206e44e71413dfd9221ef764332f8c838438e3c840138ac370afaa97d6982ff54a749134e323bdb8885e267ba533f217a68f9080cfaed9a80941c633424dee2c59d26d3c4d37ffd40589a0baebe98ad10ed1848d0635c503ff0da8e3e005857ca992d36f946adc466dbdc28cc7caffa4492d5d6071afea20dd5103fc6f717330a585d15d2d6dc8c368dfa22e6ff6b009321f96c06f8d4e0c1a512a2e5be527835f10be4d14f7f53c11840c4581420804b264267c5b6ea4b7595a0b7aaf0318af7e462e79a1e2450e2831ca58eebc5dba3f163e9c58d07f4f768baf26daebd0f88e712f488eb7550837d40cdf4789dd5e3e8088a8f263b2632e2355fff581e4c61f7174e04d593c01088d952bfda83883640a8d368c9ebedfc135f60fa1294a4c1794a2e0fdaba1c5f70e2f011a9d9b987e43368ce1d582ee4b43006da4dd528bf35cb182af12dfefeed7d3dcbcde08a17475e86be6b3d3c9721d8490c4adcfa2ee5f8c949e4b3bcfd87abf128a77f3f5cdd538e507911e5109ee6330983a0149b2f231db5f2d4c14825e1d6778be669e9521c4273fd4e1ff37e5c839b2e100b9bf853191a3ddb4c9fbad4d13f0123139c60bafc79f7ea5105ee6e745e7825bc674c4f519edd8eb9060aeaaba876d7171f3063eb56beaf3cb3d1b3b567b5b3fd2e47b450d8a2a9c5b2467570eb4e0759e7a52881913d7d67713348e34be07a6fd1fd4c205c8184147cec4223451f4f48ccb459649e4e0dc4c30fd5f29e26830311f0940aa7a183f3cbc19188fc8c42a127da16edc3f5ba2416eb99f2c821307105f59b2414b3d3cfd0234a758d53a315f291f1c95c9c9df21ea81e56b144d6c9af4b87957be81a23d6e5a12ad601608b138e628fd744bee1509fd28f5cb7a4023031d95c3fbbe6811f1c6cadf0538b8fbfd56a74ae5992c133cda474652e3cfcb494b2ec2cb17eadd9987c0968211e14dc9eba4027d9d256c5fe2bbe907f8ca8eaad41128a48d735eb71db3519e41f3a5ba7c65a37d57c18cf2df8b3df2da09c628444bba5189af9f3a621140425b182a72532bcca784c71d2442eda18b3127700729e38980489d2d54b4e4c6fec216a741d3b1bd54f8c9deb14cc862376931342230a191572188ff3e4cbba0ce374d08ebb584c2560907e76c093a5c1943c5b9f79eed25f366aaff0c47f76dbbe64c176d0a2c4bf9b10555907b6ead1b5404b096d0b4c499853715604b459ab23425c0e5e1ae733785b8664b7e793a934b74d8268a90e745ae669c7f2a940e6af4f2835f734fd37ca77d4811b791ba415a1a19a3bf9ebf0685d4d45a4dd3fcf45a6517404a1e8f7c5755c5bc0491063e370de26e3700768c6607ab6c3b03a45750253c5b8aecaf4b839de68d658b0722bbaaaca11460bf452de2dfb29cc1a16d2bead1192299e5a6c15158126f0ecaf0c2e0548f70e5af12dbda57838c2e77f2f0b258dbf9b12141e46bb2a72bb02dfb197a6db6246e23bef9276188981835cb56daad6b41f68f185bb75c453f128bcdb9ff200308a5d60f9f917ff88bd768a0772f0872f039dc8e7790e15442280249a07c30b1bb8bfa7fa696015c94a3cd44d0cea8b4c6a8d27034fb7890fa2bb34f0da83b0682156e042e46af35c4a0ee770a5a7985bbe2fa3d0150e45be60e508a8b2b923bc6f0e25a4325756ebc1ca8330303705c8add2c5ac77b8950cfdf90256fda78c137f6f421020f305f76180f59e3000667e79ea338bd1316062eb58efbad16e56176cd24c2256e3454e6763950157cc5ae6f910c549622684081fccf13821a3da08e3b78177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643284ca04a3e95b11e03883e723fd4055ce915bcbb1d2d9f0b3b4345fea6011cc793ff4a5f3a0931213408fc64d955e25f520bc9b7aff0d4179f260fccd0160dfba6c3dbcbfca71c27426b35768f71055aad2dbceeea61196960674f6b4b5f044a397ff80c65895b3ab39e73d26fddb98be7fb12bc4f6a53209cd3343c292078e5ea390d4f67cad60499787d8879d7f70f016b7dcae3cd6701094aab7415d3cb2f2c02c9acdd56753bba1d22472f6e1c870134dea796c099ee74f137ba8e3ef5fbc6546afda6c60d8f27b9574d46ed3c8dd443042a8cd264612a88614efeebbd6079407b762b286ec7bfb7e74310b96065e60dc1e7ebf8d4b6fcaa6905313e4427b290499aad4710cef78b5e7990f5487b07805f47c7a552f0effe774627f3392134ad878d61fc50a85b2dae1e1fc91aacecea3e9d324b1f88094e2aace1985b352d1cac1dd23856799392c55a436c5f2c628d45a14670b6d3ebaa720c45ba53fb9315b94eda06407a2bcd78f1c959ab473423f9a3fb349ee9b483a26c36b6bad09a69048985692081ff7c84ac36e312d6aeeb3d7a96de1024d4a9dc2bb84285f0d8153d7522f4661eacf7a3230e0cb89c65908fec967d7e005a5616efbe6db3d54365c14dfead2b6d2012746620b1c278ec3ea8bce0d348483c814e8499138df542bfaba4096fe14b49af32fb6ef280f1a8895797ebe74a56d18db6557aa9af69c14448bb66ac4f7f9cf7e52ddf67950eb8118f87670bb55187d6832c1d50aa6562e368410acad3e1a582a246021cf692d395a1f448c1dce7709556b08461fbeb0b2e30bc7d752d7a52135a71e14b400b1b401ce1ac2ddbb07e58040ba1b47481serviceorg.fedoraproject.FirewallD1.server.policy.choicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootfirewalld-0.9.3-1.1.src.rpmconfig(firewalld)firewalld @    @/bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/python3config(firewalld)coreutilsdiffutilsebtablesfillupgrepipsetiptableslogrotatenftablespython3-firewallpython3-gobjectpython3-nftablesrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)sysconfigsystemdsystemdsystemdsystemdtypelib(GObject)0.9.3-1.10.9.33.0.4-14.6.0-14.0-15.2-14.14.1`m`@``2@_/@_[f_X_R,@_9_3^%@^d@^9\]p]@]4@]4@]v>\\\@\s\Z@\73[ā@[[@[[@[[qr[m~@[h8@[?YZz@Z3@ZZ@Zs@Zp^@Zk@Z;@Z@ZOZ@Zr@Z }Z ,@ZY6@XXXEVX)@X2@WiW@W{@WrfWj}WXWM|W,@W#LWV޾VՄ@V2V@V@VHmrostecki@suse.commrostecki@suse.commrostecki@suse.comrfrohl@suse.commrostecki@suse.comfbui@suse.commrostecki@suse.comcallumjfarmer13@gmail.comdmueller@suse.commrostecki@suse.comMathias.Homann@opensuse.orghpj@urpla.netbjorn.lie@gmail.comngompa13@gmail.comMathias.Homann@opensuse.orgMathias.Homann@opensuse.orgMathias.Homann@opensuse.orgmrostecki@opensuse.orgmrostecki@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgmrostecki@opensuse.orgmrostecki@opensuse.orgmrostecki@suse.demchandras@suse.demchandras@suse.deluizluca@gmail.commchandras@suse.demchandras@suse.deluc14n0@linuxmail.orgmchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.desbrabec@suse.commchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dedimstar@opensuse.orgmchandras@suse.derbrown@suse.commpluskal@suse.commchandras@suse.demchandras@suse.dempluskal@suse.commchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dejengelh@inai.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dejslaby@suse.commchandras@suse.de- Remove dependency on firewalld from firewall-macros (bsc#1183404)- Disable FlushAllOnReload option to not retain interface to zone assignments and direct rules when using --reload option. * 0002-Disable-FlushAllOnReload-option.patch- Update to 0.9.3 (jsc#SLE-17336): * docs(dbus): fix invalid method names * fix(forward): iptables: ipset used as zone source * fix(rich): non-printable characters removed from rich rules * docs(firewall-cmd): small description grammar fix * fix(rich): limit table to strip non-printables to C0 and C1 * fix(zone): add source with mac address- Add dependency for firewall-offline-cmd (bsc#1180883)- Remove the patch which enforces usage of iptables instead of nftables (jsc#SLE-16300): * 0001-firewall-backend-Switch-default-backend-to-iptables.patch - Add firewalld zone for the docker0 interface. This is the workaround for lack of nftables support in docker. Without that additional zone, containers have no Internet connectivity. (rhbz#1817022, jsc#SLE-16300) - Update to 0.9.1: * Bugfixes: * docs(firewall-cmd): clarify lockdown whitelist command paths * fix(dbus): getActivePolicies shouldn't return a policy if a zone is not active * fix(policy): zone interface/source changes should affect all using zone- Make use of %service_del_postun_without_restart And stop using DISABLE_RESTART_ON_UPDATE as this interface is obsolete.- Add python3-nftables as a requirement.- update to 0.9.0: * New major features * prevention of Zone Drifting * Intra Zone Forwarding * Policy Objects * For a full list of changes, see https://github.com/firewalld/firewalld/compare/v0.8.0...v0.9.0- update to 0.8.3: * nftables: convert to libnftables JSON interface * service: new “helper” element to replace “module” More accurately represents the conntrack helper. Deprecates “module”. * allow custom helpers using standard helper modules (rhbz 1733066) * testsuite is now shipped in the dist tarball * Typo in firewall-config(1) * Fix typo in TFTP service description * doc: README: add note about language translations * fix: rich: source/dest only matching with mark action * feat: AllowZoneDrifting config option * feat: nftables: support AllowZoneDrifting=yes * feat: ipXtables: support AllowZoneDrifting=yes * fix: firewall-offline-cmd: Don’t print warning about AllowZoneDrifting * fix: add logrotate policy * doc: direct: add CAVEATS section * fix: checkIP6: strip leading/trailing square brackets * fix: nftables: remove square brackets from IPv6 addresses * fix: ipXtables: remove square brackets from IPv6 addresses * fix: nftables: ipset types using “port” * fix: nftables: zone dispatch with multidimensional ipsets * fix: ipset: destroy runtime sets on reload/stop * fix: port: support querying sub ranges * fix: source_port: support querying sub ranges * doc: specify accepted characters for object names * fix: doc: address copy/paste mistakes in short/description * fix: configure: atlocal: quote variable values * fix: nftables: allow set intervals with concatenations * doc: clarify –set-target values “default” vs “reject” * fix: update dynamic DCE RPC ports in freeipa-trust service * fix: nftables: ipset: port ranges for non-default protocols * fix(systemd): Conflict with nftables.service * fix(direct): rule in a zone chain * fix(client): addService needs to reduce tuple size * fix(doc): dbus: signatures for zone tuple based APIs * fix(config): bool values in dict based import/export * fix(dbus): service: don’t cleanup config for old set APIs * fix(ipset): flush the set if IndividiualCalls=yes * fix(firewall-offline-cmd): remove instances of “[P]” in help text * fix(rich): source mac with nftables backend * docs: replace occurrences of the term blacklist with denylist * fix: core: rich: Catch ValueError on non-numeric priority values * docs(README): add libxslt for doc generation * fix(cli): add –zone is an invalid option with –direct * fix(cli): add ipset type hash:mac is incompatible with the family parameter- Update to version 0.7.5 (jsc#SLE-12281): * release: v0.7.5 * chore(translation): merge from master * fix(cli): add ipset type hash:mac is incompatible with the family parameter Fixes: rhbz1541077 * test(rhbz1483921): better test name * fix(cli): add --zone is an invalid option with --direct * fix: core: rich: Catch ValueError on non-numeric priority values * fix: update dynamic DCE RPC ports in freeipa-trust service * docs: replace occurrences of the term blacklist with denylist * docs(README): add libxslt for doc generation * test(rich): source mac with nftables backend * fix(firewall-offline-cmd): remove instances of "[P]" in help text * test(check-container): add support for centos8 stream * test(functions): use IndividualCalls if host doesn't support nft rule index * test(functions): add macro IF_HOST_SUPPORTS_NFT_RULE_INDEX * test(dbus): better way to check IPv6_rpfilter expected value * fix(ipset): flush the set if IndividiualCalls=yes * test(ipv6): skip square bracket address tests if ipv6 not available * test(gh509): only run test for nftables backend * fix(dbus): service: don't cleanup config for old set APIs * fix(config): bool values in dict based import/export * fix(doc): dbus: signatures for zone tuple based APIs * test(dbus): zone: fix zone runtime functional test title * test(dbus): zone: fix false failure due to list order * fix(client): addService needs to reduce tuple size * test(direct): rule in a zone chain * fix(direct): rule in a zone chain * test(dbus): zone: verify runtime config APIs * test(dbus): zone: verify permanent config APIs * fix(systemd): Conflict with nftables.service * fix: test/regression/gh599: use expr to be more portable * test: dbus: zone: verify runtime config API signatures * test: dbus: zone: verify permanent config API signatures * fix: test/regression/gh599: fix if not using debug output * test: log: verify logging still works after truncate * test: ipset: verify port ranges for non-default protocol- Update to 0.7.4 This is a bug fix only release. However, it does reintroduce the zone drifting bug as a feature. See #258 and #441. This behavior is disabled by default. * improvement: build: add an option to disable building documentation * Typo in firewall-config(1) * Fix typo in TFTP service description * doc: README: add note about language translations * fix: rich: source/dest only matching with mark action * feat: AllowZoneDrifting config option * feat: nftables: support AllowZoneDrifting=yes * feat: ipXtables: support AllowZoneDrifting=yes * fix: firewall-offline-cmd: Don't print warning about AllowZoneDrifting * fix: add logrotate policy * fix: tests: regenerate testsuite if .../{cli,python}/*.at changes * doc: direct: add CAVEATS section * fix: checkIP6: strip leading/trailing square brackets * fix: nftables: remove square brackets from IPv6 addresses * fix: ipXtables: remove square brackets from IPv6 addresses * fix: nftables: zone dispatch with multidimensional ipsets * fix: ipset: destroy runtime sets on reload/stop * fix: port: support querying sub ranges * fix: source_port: support querying sub ranges * doc: specify accepted characters for object names * fix: doc: address copy/paste mistakes in short/description * fix: configure: atlocal: quote variable values * fix: nftables: allow set intervals with concatenations * doc: clarify --set-target values "default" vs "reject"- Update to version 0.7.3: * release: v0.7.3 * chore: update translations * doc: README: add note about integration tests * test: check-container: also run check-integration * test: integration: NM zone overrides interface on reload * test: build: support integration tests * test: functions: add macro NMCLI_CHECK * test: functions: new macros for starting/stopping NetworkManager * fix: test: leave "cleanup" for tests cases * test: check-container: add support for fedora rawhide * test: check-container: add support for debian sid * test: build: add support for running in containers * fix: test/functions: FWD_END_TEST: improve grep for errors/warnings * fix: test: direct passthrough: no need to check for dummy module * fix: test: CHECK_NAT_COEXISTENCE: only check for kernel version * fix: reload: let NM interface assignments override permanent config * chore: tests: rename IF_IPV6_SUPPORTED to IF_HOST_SUPPORTS_IPV6_RULES * fix: tests: convert host ipv6 checks to runtime * fix: tests: convert ip6tables checks to runtime * fix: tests: convert probe of nft numeric args to runtime * fix: tests: convert nftables fib checks to runtime * fix: build: distribute testsuite * fix: don't probe for available kernel modules * fix: failure to load modules no longer fatal * fix: tests/functions: canonicalize XML output * chore: doc: update authors * fix: test: use debug output based on autotest variable * fix: src/tests/Makefile: distclean should clean atconfig- No longer recommend -lang: supplements are in use.- Replace incorrect usage of %_libexecdir with %_prefix/lib- rebased the original patch from revision 19- Added a patch to make iptables the default again on openSUSE- Update to version 0.7.2: This is a bug fix only release. * fix: direct: removeRules() was mistakenly removing all rules * fix: guarantee zone source dispatch is sorted by zone name * fix: nftables: fix zone dispatch using ipset sources in nat chains * doc: add --default-config and --system-config * fix: --add-masquerade should only affect ipv4 * fix: nftables: --forward-ports should only affect IPv4 * fix: direct: removeRules() not removing all rules in chain * dbus: service: fix service includes individual APIs * fix: allow custom helpers using standard helper modules * fix: service: usage of helpers with '-' in name * fix: Revert "ebtables: drop support for broute table" * fix: ebtables: don't use tables that aren't available * fix: fw: initialize _rfc3964_ipv4- Update to version 0.7.1: * Rich Rule Priorities * Service Definition Includes - Service definitions can now include lines like: which will include all the ports, etc from the https service. * RFC3964 IPv4 filtering - A new option RFC3964_IPv4 in firewalld.conf is available. It does filtering based on RFC3964 in regards to IPv4 addresses. This functionality was traditionally in network-scripts. * FlushAllOnReload - A new option FlushAllOnReload in firewalld.conf is available. Older release retained some settings (direct rules, interface to zone assignments) during a - -reload. With the introduction of this configuration option that is no longer the case. Old behavior can be restored by setting FlushAllOnReload=no. * 15 new service definitions * fix: firewall-offline-cmd: service: use dict based APIs * fix: client: service: use dict based dbus APIs * test: dbus: coverage for new service APIs * fix: dbus: new dict based APIs for services * test: dbus: service API coverage * test: functions: add macro DBUS_INTROSPECT * test: functions: add CHOMP macro for shell output * fix: tests/functions: use gdbus instead of dbus-send * fix: dbus: add missing APIs for service includes - Remove patch for using iptables instead of nftables - we should finally switch to nftables and fix its issues properly if they occur again: * 0001-firewall-backend-Switch-default-backend-to-iptables.patch - Remove patch which was released upstream: * 0002-Add-FlushAllOnReload-config-option.patch- Update to version 0.6.4: * chore: update translations * treewide: fix over indentation (flake8 E117) * test: travis: add another test matrix for omitting ip6tables * chore: travis: split test matrix by keywords * chore: tests: add AT_KEYWORDS for firewall-offline-cmd * improvement: tests: Use AT_KEYWORDS for backends * fix: tests: guard occurrences of IPv6 * fix: tests/functions: ignore warnings about missing ip6tables * test: add macro IF_IPV6_SUPPORTED- Move RPM macros to %_rpmmacrodir.- Revert last change: the macros DO reference firewall-cmd, but as they are expanded during build time of the package, not at runtime, the point in time is wrong to require firewalld. The consumer of the macro is responsible to ask for the right commands to be present at runtime of the scripts (boo#1125775#c9).- Add dependency between firewall-macros and firewalld. (boo#1125775)- Fix --with-ifcfgdir configure parameter. (boo#1124212)- Add upstream patch to make --reload/--complete-reload forget the runtime configuration and always load the permanent one (bsc#1121277) * 0002-Add-FlushAllOnReload-config-option.patch- Update to 0.6.3. Some of the changes are: * update translations * nftables: fix reject statement in "block" zone * shell-completion: bash: don't check firewalld state * firewalld: fix --runtime-to-permanent if NM not in use. * firewall-cmd: sort --list-protocols output * firewall-cmd: sort --list-services output * command: sort services/protocols in --list-all output * services: add audit * nftables: fix rich rule log/audit being added to wrong chain * nftables: fix destination checks not allowing masks * firewall/core/io/*.py: Let SAX handle the encoding of XML files (gh#firewalld/firewalld#395)(bsc#1083361) * fw_zone: expose _ipset_match_flags() * tests/firewall-cmd: exercise multiple interfaces and zones * fw_transaction: On clear zone transaction, must clear fw and other zones * Fix translating labels (gh#firewalld/firewalld#392) - Remove patches which have made it upstream: * 0001-Fix-translating-labels-392.patch * 0002-firewalld-0.6.x-rich-rule-with-ipset-regression.patch- Add upstream patch to mark more strings as translatable which is required by firewall UI when creating rich rules (bsc#1096542) * 0001-Fix-translating-labels-392.patch- Add upstream patch to fix rich rules that uses ipset (bsc#1104990) * 00002-firewalld-0.6.x-rich-rule-with-ipset-regression.patch- Update to 0.6.2. Some of the changes are: * update translations * nftables: fix log-denied with values other than "all" or "off" * fw_ipset: raise FirewallError if backend command fails * ipset: only use "-exist" on restore * fw_ipset: fix duplicate add of ipset entries * *tables: For opened ports/protocols/etc match ct state new,untracked (bsc#1105821) * ipXtables: increase wait lock to 10s * nftables: fix rich rules ports/protocols/source ports not considering ct state * ports: allow querying a single added by range * fw_zone: do not change rich rule errors into warnings * fw_zone: fix services with multiple destination IP versions (bsc#1105899) * fw_zone: consider destination for protocols * firewall/core/fw_nm: nm_get_zone_of_connection should return None or empty string instead of False (boo#1106319) * fw: If direct rules fail to apply add a "Direct" label to error msg * fw: if startup fails on reload, reapply non-perm config that survives reload * nftables: fix rich rule audit log * ebtables: replace RETURN policy with explicit RETURN at end of chain * direct backends: allow build_chain() to build multiple rules * fw: if failure occurs during startup set state to FAILED * fw: on restart set policy from same function * ebtables: drop support for broute table - Remove upstream patches * 0001-nftables-fix-rich-rules-ports-protocols-source-ports.patch * 0001-fw_zone-consider-destination-for-protocols.patch * 0002-fw_zone-fix-services-with-multiple-destination-IP-ve.patch * firewalld-fix-firewalld-config-crash.patch- Add upstream patch to fix Neighbor Discovery filtering for IPv6 (bsc#1105821) * 0001-nftables-fix-rich-rules-ports-protocols-source-ports.patch - Add upstream patch to fix building rules for multiple IP families (bsc#1105899) * 0001-fw_zone-consider-destination-for-protocols.patch * 0002-fw_zone-fix-services-with-multiple-destination-IP-ve.patch- Add firewalld-fix-firewalld-config-crash.patch: set nm_get_zone_of_connection to return 'None' instead of 'False' for automatically generated connections to avoid firewall-config crashes. Patch provided by upstream (boo#1106319, gh#firewalld/firewalld#370).- Also switch firewall backend fallback to 'iptables' (bsc#1102761) This ensures that existing configuration files will keep working even if FirewallBackend option is missing. * 0001-firewall-backend-Switch-default-backend-to-iptables.patch- Update to 0.6.1. Some of the changes are: * Correct source/destination in rich rule masquerade * Only modify ifcfg files for permanent configuration changes * Fix a backtrace when calling common_reverse_rule() * man firewalld.conf: Show nftables is the default FirewallBackend * firewall-config: fix some untranslated strings that caused a UI bug causing rich rules to not be modify-able (bsc#1096542) * fw_direct: avoid log for untracked passthrough queries * fixed many issues if iptables is actually iptables-nft * Use preferred location for AppData files * ipXtables: fix ICMP block inversion with set-log-denied * fixes ICMP block inversion with set-log-denied with IndividualCalls=yes * nftables: fix set-log-denied if target is not ACCEPT * fw_direct: strip _direct chain suffix if using nftables * NetworkManager integration bugfixes.- Switch back to 'iptables' backend as default (bsc#1102761)- Update to 0.6.0. Some of the changes are: * update translations * firewall-config: Add ipv6-icmp to the protocol dropdown box (#348, bsc#1099698) * core: logger: Remove world-readable bit from logfile (#349, bsc#1098986) * IPv6 rpfilter: explicitly allow neighbor solicitation * nftables backend (default) * Added loads of new services * firewall-cmd: add --check-config option * firewall-offline-cmd: add --check-config option * firewallctl: completely remove all code and references * dbus: expose FirewallBackend * dbus: fix erroneous fallback for AutomaticHelpers - Remove patches which have made it upstream * firewalld-add-additional-services.patch - spec-cleaner fixes- Update to 0.5.3 (bsc#1093120) * tests/regression: add test for ipset with timeout * ipset: allow adding entries to ipsets with timeout * translations: update * helpers: load helper module explicitly if no port given * helpers: nf_conntrack_proto-* helpers needs name cropped * config/Makefile: correct name of proto-gre helper * tests/regression: test helper nf_conntrack_proto_gre (#263) * functions: get_nf_nat_helpers() should look in other directories too * functions: Allow nf_conntrack_proto_* helpers * services: Add GRE * helpers: Add proto-gre * tests/regression: add test to verify ICMP block in forward chain * ipXtables: fix ICMP block not being present in FORWARD chain- Translations update (bsc#1081623).- Backport upstream patches to add additional services (bsc#1082033) * firewalld-add-additional-services.patch- Update to 0.5.2 * fix rule deduplication causing accidental removal of rules * log failure to parse direct rules xml as an error * firewall-config: Break infinite loop when firewalld is not running * fix set-log-denied not taking effect * po: update translations- Remove high-availability service. SUSE HA uses the cluster service provided by the yast2-cluster package (bsc#1078223)- Update to 0.5.1 * ipXtables: fix iptables-restore wait option detection * python3: use "foo in dict" not dict.has_key(foo) * Fix potential python3 keys() incompatibility in watcher * Fixed python3 compatibility * ebtables: fix missing default value to set_rule() * fw_zone: fix invalid reference to __icmp_block_inversion * zones: Correct and defer check_name for combined zones- Update to 0.5.0 * firewallctl: mark deprecated (gh#firewalld/firewalld##261) * Add nmea-0183 service * Add sycthing-gui service * Add syncthing service * Adding FirewallD jenkins service (gh#firewalld/firewalld#256) * services/high-availability: Add port 9929 * Fix and improve firewalld-sysctls.conf * firewalld: also reload dbus config interface for global options * Add MongoDB service definition * src: firewall: Add support for SUSE ifcfg scripts * Add UPnP client service * firewalld: Allow specifying log file location * firewalld/firewall-offline-cmd: Allow setting system config directories - Drop obsolete patch * 0001-suse-ifcfg-files.patch - Drop tests installation- Introduce new python3-firewall and firewall-macros subpackages. The first one contains the firewalld python3 bindings and the second one contains the RPM macros for firewalld.- Replace dbus-1-python requires with dbus-1-python3: since firewalld was migrated to python3, we also have to require the python3 dependencies (boo#1070310).- Add missing python3-gobject-Gdk dependency (boo#1069952)- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Make sure to use python3 everywhere (boo#1068778)- Add combined upstream patch to support SUSE ifcfg network files. * 0001-suse-ifcfg-files.patch (gh#firewalld/firewalld#262, fate#323460)- Update to version 0.4.4.6 * firewall.core.fw_config: Fix check for icmp builtin name * config.services: docker-swarm: fix incorrect attribute * xmlschema/service.xsd: Fix protocol looking for name instead of value * Add docker swarm service (gh#firewalld/firewalld#230) * Adding FirewallD redis service (gh#firewalld/firewalld#248) * Adding firewalld zabbix server and agent services (gh#firewalld/firewalld#221) * firewall-offline-cmd: Don't require root for help output * doc: firewall-cmd: Document --query-* options return codes * firewall-cmd: Use colors only if output is a TTY * core: Log unsupported ICMP types as informational only * add bgp service to predefined services edit to config/Makefile.am * Add git service * Add kprop service * minidlna definitions (gh#firewalld/firewalld#236) * SpiderOak ONE listens on port 21327 and 21328 * autogen.sh: Allow skipping configure via NOCONFIGURE env var * Add missing ports to RH-Satellite-6 service * Reload nf_conntrack sysctls after the module is loaded * Add NFSv3 service. * config/Makefile.am: Add murmur service (a95eed1) * add new service IRC * firewall.core.prog: Simplify runProg output: Combine stderr and stdout * firewall.core.fw: Fix possible dict size change in for loop * firewall.core.fw: Use new firewalld git repo in firewalld organization * config/firewall-config.appdata.xml.in: Use new firewalld git repo in firewalld organization * firewall.core.fw_zone: Rich-rule ICMP type: Error only for conflicting family * firewall.core.rich: Add checks for Rich_Source validation * Handle also IPv6 with the zone masquerade flag * Add IPv6 support for forward-ports in zones * firewall.command: Enable parse_forward_port to work with IPv6 adresses * firewall.core.fw_zone: Fix IPv6 address in rich rule forward ports * add Murmur (Mumble server) service - spec file fixes to avoid rpmlint warnings about duplicate files.- Switch to python3 - Run spec cleaner - Move autogen to build section - Add systemd requirements- Update to version 0.4.4.5 * firewall-offline-cmd: Fix --remove-service-from-zone option (rh#1438127) * Support sctp and dccp in ports, source-ports, forward-ports, helpers and rich rules * firewall-cmd: Fix --{set,get}-{short,description} for zone * firewall.core.ipXtables: Use new wait option for restore commands if available * Adding ovirt-vmconsole service file * Adding oVirt storage-console service. * Adding ctdb service file. * Adding service file for nrpe. * Rename extension for policy choices (server and desktop) to .policy.choice (rh#1449754) * D-Bus interfaces: Fix GetAll for interfaces without properties (rh#1452017) * firewall.core.fw_config: Fix wrong variable use in repr output * firewall.core.fw_icmptype: Add missing import for copy * firewall.core.fw_test: Fix wrong format string in repr * firewall.core.io.zone: Fix getattr use on super(Zone) * firewall.functions: New function get_nf_nat_helpers * firewall.core.fw: Get NAT helpers and store them internally. * firewall.core.fw_zone: Load NAT helpers with conntrack helpers * firewalld.dbus: Add missing properties nf_conntrach_helper_setting and nf_conntrack_helpers * firewall.server.firewalld: New property for NAT helpers supported by the kernel- Update to version 0.4.4.4 * Drop references to fedorahosted.org from spec file and Makefile.am * firewall-config: Show invalid ipset type in the ipset dialog in the bad label * firewall.core.fw: Show icmptypes and ipsets with type errors in permanent env * firewall.server.firewalld: Provide information about the supported icmp types * firewall.core.fw_icmptype: Add ICMP type only if the type is supported * firewall.core.fw: New attributes ip{4,6}tables_supported_icmp_types * firewall.core.ipXtables: New method supported_icmp_types * firewall-config: Deactivate edit buttons if there are no items * firewall.core.io.zone: Fix permanent rich rules using icmp-type (rh#1434594) * firewall.core.fw_ipset: get_ipset may not ckeck if set is applied by default * firewall.core.fw_transaction: Use LastUpdatedOrderedDict for zone transactions - Remove upstream patch: * 0001-firewall.core.fw_ipset-get_ipset-may-not-ckeck-if-se.patch- Update to version 0.4.4.3 * New service freeipa-trust (rh#1411650) * Complete icmp types for IPv4 and IPv6 * New h323 helper container * Support helper container: h323 * firewall.server.decorators: ALREADY_ errors should be logged as warnings * firewall.command: ALREADY_SET should also result in zero exit code * tests/firewall-offline-cmd_test.sh: Only use firewall-offline-cmd * Support more ipset types: hash:ip,port, hash:ip,port,ip, hash:ip,port,net, hash:ip,mark, hash:net,net, hash:net,port, hash:net,port,net, hash:net,iface * New checks for ipset entry validation * Use ipset dimension for match * firewall.core.base: New ZONE_SOURCE_IPSET_TYPES list * New firewall.core.icmp providing names and types for icmp and icmpv6 values * firewall.core.fw_ipset: New methods to get ipset dimension and applied state * firewall.errors: New error NOT_APPLIED * firewall-cmd man page: Add missing --get-ipset-types * firewall.core.fw_nm: No trace back on failed get_connection call (rh#1413345) * firewall.core.prog: Fix addition of the error output in runProg * Speed up ipset handling, (re)loading and import from file * Support --family option for --new-ipset * Handle FirewallError for query sequences in command line tools * Fail to alter entries of ipsets with timeout * Extended tests for ipset options * Return empty list for ipsets using timeouts * firewall.functions: Fix checks in checkIPnMask and checkIP6nMask (gh#t-woerner/firewalld#186) * firewalld.conf man page: New section about AutomaticHelpers * firewall-offline-cmd man page: Added -v and -q options, fixed section ids * firewall{-cmd, ctl}: Fix scope of final return in try_set_zone_of_interface * firewall.core.fw_zone: Limit masquerading forward rule to new connections * firewall-config: Update active zones on reloaded signal * firewall-applet: Update active zones and tooltip on reloaded signal * firewall.core.fw_zone: Fix missing chain for helper in rich rules using service (rh#1416578) * Support icmp-type usage in rich rules (rh#1409544) * firewall[-offline]-cmd: Fix --{set,get}-{short,description} for ipset and helper (rh#1416325) * firewall.core.ipset: Solve ipset creation issues with -exist and more flag tests * Speed up start and restart for ipsets with lots of entries (rh#1416817) * Speed up of ipset alteration by adding and removing entries using a file (rh#1416817) * Code cleanup and minor bug fixes * firewall.core.prog: Fix addition of the error output in runProg * New services mssql, kibana, elasticsearch, quassel, bitcoin-rpc, bitcoin-testnet-rpc, bitcoin-testnet, bitcoin and spideroak-lansync * Translation updates - Add upstream patch to fix ipset overloading from /etc/firewalld/ipsets (gh#t-woerner/firewalld#206) * 0001-firewall.core.fw_ipset-get_ipset-may-not-ckeck-if-se.patch- Update to version 0.4.4.2 * firewalld.spec: Added helpers and ipsets paths to firewalld-filesystem * firewall.core.fw_nm: create NMClient lazily * Do not use hard-coded path for modinfo, use autofoo to detect it * firewall.core.io.ifcfg: Dropped invalid option warning with bad format string * firewall.core.io.ifcfg: Properly handle quoted ifcfg values * firewall.core.fw_zone: Do not reset ZONE with ifdown * Updated translations from zanata * firewall-config: Extra grid at bottom to visualize firewalld settings- Update to version 0.4.4.1 * Translation updates form zanata * firewallctl: New support for helpers * firewallctl: Use sys.excepthook to force exception_handler usage always * firewall-config: Use proper source check in sourceDialog- Update to version 0.4.4 * firewall-applet: Use PyQt5 * firewall-config: New nf_conntrack_select dialog, use nf_conntrack_helpers D-Bus property * New helpers Q.931 and RAS from nf_conntrack_h323 * firewall.core.fw_zone: Add zone bingings for PREROUTING in the raw table * firewall.core.ipXtables: Add PREROUTING default rules for zones in raw table * New helper configuration files for amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp and tftp * firewall-cmd: Fixed --{get,set}-{description,short} for permanent zones * firewall.command: Do not use error code 254 for {ALREADY,NOT}_ENABLED sequences * Misc bug fixes. * For the complete list of changes please see: https://github.com/t-woerner/firewalld/releases/tag/v0.4.4- Relax permissions for default installation files. The files in /usr/lib/firewalld are the default ones as shipped by the package and there is nothing secret in them.- Update to version 0.4.3.3 * Fixes CVE-2016-5410 (bsc#992772) * Standard error is now used for errors and warnings * Several fixes for use in change roots * Systemd service file changes * Fixed translations in firewall-config * Command line clients * Fixes infinite event handling loop in firewall-{config,applet} (bsc#992082)- Update to version 0.4.3.2 * Fix regression with unavailable optional commands * All missing backend messages should be warnings * Individual calls for missing restore commands * Only one authenticate call for add and remove options and also sequences * New service RH-Satellite-6- Update to version 0.4.3.1 * firewall.command: Fix python3 DBusException message not interable error * src/Makefile.am: Fix path in firewall-[offline-]cmd_test.sh while installing * firewallctl: Do not trace back on list command without further arguments * firewallctl (man1): Added remaining sections zone, service, .. * firewallctl: Added runtime-to-permanent, interface and source parser, IndividualCalls setting * firewall.server.config: Allow to set IndividualCalls property in config interface * Fix missing icmp rules for some zones * runProg: Fix issue with running programs * firewall-offline-cmd: Fix issues with missing system-config-firewall * firewall.core.ipXtables: Split up source and dest addresses for transaction * firewall.server.config: Log error in case of loading malformed files in watcher * Install and package the firewallctl man page * Translation updates- Update to version 0.4.3 * New firewallctl utility (rh#1147959) * doc.xml.seealso: Show firewalld.dbus in See Also sections * firewall.core.fw_config: Create backup on zone, service, ipset and icmptype removal (rh#1339251) * {zone,service,ipset,icmptype}_writer: Do not fail on failed backup * firewall-[offline-]cmd: Fix --new-X-from-file options for files in cwd * firewall-cmd: Dropped duplicate setType call in --new-ipset * radius service: Support also tcp ports (RBZ#1219717) * xmlschemas: Support source-port, protocol, icmp-block-inversion and ipset sources * config.xmlschema.service.xsd: Fix service destination conflicts (rh#1296573) * firewall-cmd, firewalld man: Information about new NetworkManager and ifcfg * firewall.command: Only print summary and description in print_X_info with verbose * firewall.command: print_msg should be able to print empty lines * firewall-config: No processing of runtime passthroughs signals in permanent * Landspace.io fixes and pylint calm downs * firewall.core.io.zone: Add zone_reader and zone_writer to all, pylint fixes * firewall-config: Fixed titles of command and context dialogs, also entry lenths * firewall-config: pylint calm downs * firewall.core.fw_zone: Fix use of MAC source in rich rules without ipv limit * firewall-config: Use self.active_zoens in conf_zone_added_cb * firewall.command: New parse_port, extended parse methods with more checks * firewall.command: Fixed parse_port to use the separator in the split call * firewall.command: New [de]activate_exception_handler, raise error in parse_X * services ha: Allow corosync-qnetd port * firewall-applet: Support for kde5-nm-connection-editor * tests/firewall-offline-cmd_test.sh: New tests for service and icmptype modifications * firewall-offline-cmd: Use FirewallCommand for simplification and sequence options * tests/firewall-cmd_test.sh: New tests for service and icmptype modifications * firewall-cmd: Fixed set, remove and query destination options for services * firewall.core.io.service: Source ports have not been checked in _check_config * firewall.core.fw_zone: Method check_source_port is not used, removed * firewall.core.base: Added default to ZONE_TARGETS * firewall.client: Allow to remove ipv:address pair for service destinations * tests/firewall-offline-cmd_test.sh: There is no timeout option in permanent * firewall-cmd: Landscape.io fixes, pylint calm downs * firewall-cmd: Use FirewallCommand for simplification and sequence options * firewall.command: New FirewallCommand for command line client simplification * New services: kshell, rsh, ganglia-master, ganglia-client * firewalld: Cleanup of unused imports, do not translate some deamon messages * firewalld: With fd close interation in runProg, it is not needed here anymore * firewall.core.prog: Add fd close iteration to runProg * firewall.core.fw_nm: Hide NM typelib import, new nm_get_dbus_interface function * firewalld.spec: Require NetworkManager-libnm instead of NetworkManager-glib * firewall-config: New add/remove ipset entries from file, remove all entries * firewall-applet: Fix tooltip after applet start with connection to firewalld * firewall-config: Select new zone, service or icmptype if the view was empty * firewalld.spec: Added build requires for iptables, ebtables and ipset * Adding nf_conntrack_sip module to the service SIP * firewall: core: fw_ifcfg: Quickly return if ifcfg directory does not exist * Drop unneeded python shebangs * Translation updates - Remove obsolete patches: * 0001-src-firewall-core-Drop-unneeded-python-shebangs.patch * 0002-firewall-core-fw_ifcfg-Quickly-return-if-ifcfg-direc.patch * 0003-firewall.core.fw_nm-Hide-NM-typelib-import-new-nm_ge.patch - Add missing %{?_smp_mflags} during install. This will speed up the installation phase as well as expose build system's problems due to higher level of parallelism. - Run make during %build to ensure missing documentation is generated. - spec file cleanups.- Add upstream patch to prevent unconditional dependencies to the NetworkManager typelib (gh#t-woerner/firewalld#119) * 0003-firewall.core.fw_nm-Hide-NM-typelib-import-new-nm_ge.patch- Update to version 0.4.2 * New module to search for and change ifcfg files for interfaces not under control of NM * firewall_config: Enhanced messages in status bar * firewall-config: New message window as overlay if not connected * firewall-config: Fix sentivity of option, view menus and main paned if not connected * firewall-applet: Quit on SIGINT (Ctrl-C), reduced D-Bus calls, some cleanup * firewall-[offline]cmd: Show target in zone information * D-Bus: Completed masquerade methods in FirewallClientZoneSettings * Fixed log-denied rules for icmp-blocks * Keep sorting of interfaces, services, icmp-blocks and other settings in zones * Fixed runtime-to-permanent not to save interfaces under control of NM * New icmp-block-inversion flag in the zones * ICMP type filtering in the zones * New services: sip, sips, managesieve * rich rules: Allow destination action (rh#1163428) * firewall-offline-cmd: New option -q/--quiet * firewall-[offline-]cmd: New --add-[zone,service,ipset,icmptype]-from-file * firewall-[offline-]cmd: Fix option for setting the destination address * firewall-config: Fixed resizing behaviour * New transaction model for speed ups in start, restart, stop and other actions * firewall-cmd: New options --load{zone,service,ipset,icmptype}-defaults * Fixed memory leak in dbus_introspection_add_properties * Landscape.io fixes, pylint calm downs * New D-Bus getXnames methods to speed up firewall-config and firewall-cmd * ebtables-restore: No support for COMMIT command * Source port support in services, zones and rich rules * firewall-offline-cmd: Added --{add,remove}-entries-from-file for ipsets * firewall-config: New active bindings side bar for simple binding changes * Reworked NetworkManager module * Proper default zone handling for NM connections * Try to set zone binding with NM if interface is under control of NM * Code cleanup and bug fixes * Include test suite in the release and install in /usr/share/firewalld/tests * New Travis-CI configuration file * Fixed more broken frensh translations * Translation updates - Add upstream patches * 0001-src-firewall-core-Drop-unneeded-python-shebangs.patch: Removes unneeded python shebangs * 0002-firewall-core-fw_ifcfg-Quickly-return-if-ifcfg-direc.patch: Do not try to access the network-scripts ifcfg directory. - Drop rejected patch * drop-standard-output-error-systemd.patch - Minor spec file clean-up- Avoid runtime dependency on systemd, the macros can all deal with its absence.- Suggest the susefirewall2-to-firewalld package which could assist in migrating the SuSEFirewall2 iptables rules to FirewallD.- Update to version 0.4.1.2 * Install fw_nm module * firewalld: Do not fail if log file could not be opened * Make ipsets visible per default in firewall-config * Fixed translations with python3 [changes in 0.4.1.1] * Fix for broken frensh translation [changes in 0.4.1] * Enhancements of ipset handling * No cleanup of ipsets using timeouts while reloading * Only destroy conflicting ipsets * Only use ipset types supported by the system * Add and remove several ipset entries in one call using a file * Reduce time frame where builtin chains are on policy DROP while reloading * Include descriptions in --info-X calls * Command line interface support to get and alter descriptions of zones, * services, ipsets and icmptypes with permanent option * Properly watch changes in combined zones * Fix logging in rich rule forward rules * Transformed direct.passthrough errors into warnings * Rework of import structures * Reduced calls to get ids for port and protocol names (rh#1305434) * Build and installation fixes by Markos Chandras * Provide D-Bus properties in introspection data * Fix for flaws found by landscape.io * Fix for repeated SUGHUP * New NetworkManager module to get and set zones of connections, used in firewall-applet and firewall-config * configure: Autodetect backend tools ({ip,ip6,eb}tables{,-restore}, ipset) * Code cleanups * Bug fixes - Fix drop-standard-output-error-systemd.patch tagging - Add libxslt-tools build dependency- Do not recommend a specific version for the lang subpackage- Move translations to a new subpackage- Set DISABLE_RESTART_ON_UPDATE to 'yes' instead of '1'. The macros in /etc/rpm/macros.systemd only check for the 'yes' value so fix it to properly prevent the firewalld service from being restarted during updates.- Drop typelib(NetworkManager), NetworkManager-glib, gtk3 and libnotify dependencies (see OBS SR#360792)- firewall-config needs typelib(NetworkManager) to run- Initial commit. Version 0.4.0 * drop-standard-output-error-systemd.patch (gh#t-woerner/firewalld/pull/67)/bin/sh/bin/sh/bin/sh/bin/shsheep27 1617957563  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-0.9.3-1.10.9.3-1.1    firewalldfirewalld.confhelpersicmptypesipsetslockdown-whitelist.xmlpoliciesserviceszonesfirewalldmodprobe.dfirewalld-sysctls.conffirewall-cmdfirewall-offline-cmdfirewalldhelpersQ.931.xmlRAS.xmlamanda.xmlftp.xmlh323.xmlirc.xmlnetbios-ns.xmlpptp.xmlproto-gre.xmlsane.xmlsip.xmlsnmp.xmltftp.xmlicmptypesaddress-unreachable.xmlbad-header.xmlbeyond-scope.xmlcommunication-prohibited.xmldestination-unreachable.xmlecho-reply.xmlecho-request.xmlfailed-policy.xmlfragmentation-needed.xmlhost-precedence-violation.xmlhost-prohibited.xmlhost-redirect.xmlhost-unknown.xmlhost-unreachable.xmlip-header-bad.xmlneighbour-advertisement.xmlneighbour-solicitation.xmlnetwork-prohibited.xmlnetwork-redirect.xmlnetwork-unknown.xmlnetwork-unreachable.xmlno-route.xmlpacket-too-big.xmlparameter-problem.xmlport-unreachable.xmlprecedence-cutoff.xmlprotocol-unreachable.xmlredirect.xmlreject-route.xmlrequired-option-missing.xmlrouter-advertisement.xmlrouter-solicitation.xmlsource-quench.xmlsource-route-failed.xmltime-exceeded.xmltimestamp-reply.xmltimestamp-request.xmltos-host-redirect.xmltos-host-unreachable.xmltos-network-redirect.xmltos-network-unreachable.xmlttl-zero-during-reassembly.xmlttl-zero-during-transit.xmlunknown-header-type.xmlunknown-option.xmlipsetsREADMEpoliciesallow-host-ipv6.xmlservicesRH-Satellite-6-capsule.xmlRH-Satellite-6.xmlamanda-client.xmlamanda-k5-client.xmlamqp.xmlamqps.xmlapcupsd.xmlaudit.xmlbacula-client.xmlbacula.xmlbb.xmlbgp.xmlbitcoin-rpc.xmlbitcoin-testnet-rpc.xmlbitcoin-testnet.xmlbitcoin.xmlbittorrent-lsd.xmlceph-mon.xmlceph.xmlcfengine.xmlcockpit.xmlcollectd.xmlcondor-collector.xmlctdb.xmldhcp.xmldhcpv6-client.xmldhcpv6.xmldistcc.xmldns-over-tls.xmldns.xmldocker-registry.xmldocker-swarm.xmldropbox-lansync.xmlelasticsearch.xmletcd-client.xmletcd-server.xmlfinger.xmlforeman-proxy.xmlforeman.xmlfreeipa-4.xmlfreeipa-ldap.xmlfreeipa-ldaps.xmlfreeipa-replication.xmlfreeipa-trust.xmlftp.xmlganglia-client.xmlganglia-master.xmlgit.xmlgrafana.xmlgre.xmlhttp.xmlhttps.xmlimap.xmlimaps.xmlipp-client.xmlipp.xmlipsec.xmlirc.xmlircs.xmliscsi-target.xmlisns.xmljenkins.xmlkadmin.xmlkdeconnect.xmlkerberos.xmlkibana.xmlklogin.xmlkpasswd.xmlkprop.xmlkshell.xmlkube-apiserver.xmlldap.xmlldaps.xmllibvirt-tls.xmllibvirt.xmllightning-network.xmlllmnr.xmlmanagesieve.xmlmatrix.xmlmdns.xmlmemcache.xmlminidlna.xmlmongodb.xmlmosh.xmlmountd.xmlmqtt-tls.xmlmqtt.xmlms-wbt.xmlmssql.xmlmurmur.xmlmysql.xmlnbd.xmlnfs.xmlnfs3.xmlnmea-0183.xmlnrpe.xmlntp.xmlnut.xmlopenvpn.xmlovirt-imageio.xmlovirt-storageconsole.xmlovirt-vmconsole.xmlplex.xmlpmcd.xmlpmproxy.xmlpmwebapi.xmlpmwebapis.xmlpop3.xmlpop3s.xmlpostgresql.xmlprivoxy.xmlprometheus.xmlproxy-dhcp.xmlptp.xmlpulseaudio.xmlpuppetmaster.xmlquassel.xmlradius.xmlrdp.xmlredis-sentinel.xmlredis.xmlrpc-bind.xmlrquotad.xmlrsh.xmlrsyncd.xmlrtsp.xmlsalt-master.xmlsamba-client.xmlsamba-dc.xmlsamba.xmlsane.xmlsip.xmlsips.xmlslp.xmlsmtp-submission.xmlsmtp.xmlsmtps.xmlsnmp.xmlsnmptrap.xmlspideroak-lansync.xmlspotify-sync.xmlsquid.xmlssdp.xmlssh.xmlsteam-streaming.xmlsvdrp.xmlsvn.xmlsyncthing-gui.xmlsyncthing.xmlsynergy.xmlsyslog-tls.xmlsyslog.xmltelnet.xmltentacle.xmltftp-client.xmltftp.xmltile38.xmltinc.xmltor-socks.xmltransmission-client.xmlupnp-client.xmlvdsm.xmlvnc-server.xmlwbem-http.xmlwbem-https.xmlwsman.xmlwsmans.xmlxdmcp.xmlxmpp-bosh.xmlxmpp-client.xmlxmpp-local.xmlxmpp-server.xmlzabbix-agent.xmlzabbix-server.xmlzonesblock.xmldmz.xmldocker.xmldrop.xmlexternal.xmlhome.xmlinternal.xmlpublic.xmltrusted.xmlwork.xmlfirewalld.servicefirewalldrcfirewalldcompletionsfirewall-cmddbus-1system.dFirewallD.conffirewalldREADMEsysconfig.firewalldfirewalldCOPYINGfirewall-cmd.1.gzfirewall-offline-cmd.1.gzfirewalld.1.gzfirewalld.conf.5.gzfirewalld.dbus.5.gzfirewalld.direct.5.gzfirewalld.helper.5.gzfirewalld.icmptype.5.gzfirewalld.ipset.5.gzfirewalld.lockdown-whitelist.5.gzfirewalld.policies.5.gzfirewalld.policy.5.gzfirewalld.richlanguage.5.gzfirewalld.service.5.gzfirewalld.zone.5.gzfirewalld.zones.5.gzpolkit-1actionsorg.fedoraproject.FirewallD1.desktop.policy.choiceorg.fedoraproject.FirewallD1.policyorg.fedoraproject.FirewallD1.server.policy.choicesite-functions_firewalld/etc//etc/firewalld//etc/logrotate.d//etc/modprobe.d//usr/bin//usr/lib//usr/lib/firewalld//usr/lib/firewalld/helpers//usr/lib/firewalld/icmptypes//usr/lib/firewalld/ipsets//usr/lib/firewalld/policies//usr/lib/firewalld/services//usr/lib/firewalld/zones//usr/lib/systemd/system//usr/sbin//usr/share/bash-completion//usr/share/bash-completion/completions//usr/share//usr/share/dbus-1//usr/share/dbus-1/system.d//usr/share/doc/packages//usr/share/doc/packages/firewalld//usr/share/fillup-templates//usr/share/licenses//usr/share/licenses/firewalld//usr/share/man/man1//usr/share/man/man5//usr/share/polkit-1//usr/share/polkit-1/actions//usr/share/zsh//usr/share/zsh/site-functions/-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:SLE-15-SP3:GA/standard/74d6c26697b42466f0c2d0ee3b3afe58-firewalldcpioxz5noarch-suse-linuxdirectoryASCII textXML 1.0 document, ASCII textPython script, ASCII text executableXML 1.0 document, ASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, UTF-8 Unicode text, with very long lines (gzip compressed data, max compression, from Unix)ASCII text, with very long linesRRRRRN7Z_0>susefirewall2-to-firewalldutf-88414ba1f8ccefd098c8fdc04c21811c48565ef36a3ca56e67aa7c0eebd9741f4?p7zXZ !t/%] crt:bHW!j~,zCOlQ"b Jh|jKYLo?#hOaluOfQg/3O!`K "d]L0ǓZD7{̅:Pb$Lq~snAR0t6F卻^Hv.aMՆR7'`mfBoܤ]=([B]B+#8!d_@ TH(Ocsu=>?+ 2O"cR~lL?1`XAt<,{ h cNRW=CFԁ\yضXj60ל)%Y;u[)}0H‚jhc=MH̡8-yOVZ:+PJΠ;[CalvzUΜ Wܒa{ˡ aIgfIs+ x=l-48d>WSGۍҪO~]dc~?jc=ROB Д&n5+vh7Ua4fb CH?_z!IhdTN74rt U2+;?MZe^t <ʊ" iC`٘pP:;b-?)6HDH. f-> ۳ ȯA"T"7-" ۥӈmHciO=CCdIu`소^J\qb$^$.L{Y`!e~,UWl#Z3ir\J#y#4 [cBg9_]Ԉ({ZbgPX5ؔ'zw%u Y`O*2VHƈctu 9$A8S;Ta%ݍcm8fY [fV'`sջ=u[.5>Ԧ&@uTm#26PaX`)GiKSS r|E{W=8QDW7)%G2(=Q>+#Inh z蘇H&rؚV-5[C$x3ŧ PޭVꬉ E ,} ?TؠLnրgZ2|P2^TJĔ|<7nI 0m .!:|8xΐ b ~Fg-[.V{аh`.>X۔ &+iq&"=-ą(m2L /4~(R \WMN.YK"C3gwzgf??;떠Fɤ9.4mk8hN,Ϻ~*;mcj^)%*\yUJB)5w.+Oyj![iTj>-INg{/ P^>7p7=K>VA^]R.S*!pQ ;nfw% _+ﳛuszJԞWvXy@;zf0x1؋ LouW+Ie5Iip!t==fhB3Q!Xݨ˱LAj/L۸Tc xK#n3,vC/0}~%ݭRY )OIP+cCZ*̽ %17Hot ֛.ZR*H<ɂƑ腝zVŵ شP(ح*R#X(ѳT(sNR˕ze2iMj(JXpTTq!Vy(bXZjFtCZ8  ٸuۃFUlk ]{j \n$-<æ?ߵ"OOf}X6U^:tVYji==7 OߦPyIg262qG,P>P30_stqX4:rJ?ᱵQ3` lrvUP?)=b8a 6c kn']'-.maHx"NlL Agsm哔V6k=3 d'F*D,QXcue?ǝإbiG,dNpMȁV=j`פ.AހN*n$1iaP Bf|8+_VMŚWRPuf&7P9;rY %-|Rp B+>eM֚]1g% )IT_e_MqO ]:qTY'RX.`P[1Ё(\AZ+OL8G{i\Z?%T³.s996A?XQlHo-ߍj1Xں^:ʘ61? lqn 98pZqɲ)=5G{15'b[?\ɗ|GlH<oIri;yla另Mz? Mqyh>&_NEZgqAlA$I>8o[GHۂZo8CE$SYdtHy+Q"0GgdϹIjpjqLf]Iyk?Ԝ )R=d0[5ڈ6>d u[\?v9魟[ !Zʔg fNDBq+tۂ%cv2%Ocg0XRFw[ +!iݕWH(#46>:đӛӫU)F7X  %Վkq-~'9w>BQMy+b3afνēa4), ~[S;h.7z:נ.zL1&- l|x#fy0wl"Q*Lݞ&:3ܱ֮ FNj@ rfGo-xNE/icU(1s$nD+8ϸLRpd~_7چsruVnj^:\cX*3cnu)/}DK9TDAeFhaktJjN3Aj]f: d}7K$c?Mgp輕 RI b3 [.Mܮ6hssGWIZ\$wFSIuS-l4DJy/Pj Ku=T-toϟsZ2qɘ7 Wdhe"o js, T&,CEMcGZU7v9/i,/"WLϚ}<(NP]n ZD\XJ;E&-rHZ'ldIA@fmr-~45}vu[.03C2lL#u2 =vp7|L=NzQ,!dk܌Hڹ$)`ɬ"z0yޛ v0:2q\#)}MFHͱfQs'D34&pCdT@.:8ӡ%.dc~|۟ԟ?[ֻNT/JW:g[4Au TTpP2mJ׋ȵ:#o=+n3NKK=Tx>Gm48W/+#mz{7>ݰ9 H0or!B~Α6h3>Z[\Jr[ٷ Cpi+h`+$yWι|n~"8#xaCTobfm vj{Ks=KVsGH'4SMi.2c I/`0 l`y %% {f%cxBjcVbbro+n4|&[9t-;&[(=ѽ2..0lȁ $/CKڰxX2?DZ[*{V] qRʛT"MQG5+7)2'g柭IU8\l9bBuXxmffP6 Vth"(`c!Zh-=r ,#PrLĸ#K2 ,Cԯ8TƦpbb;ʾ fpdr9"c5s` slM&q:(J>2be/MBOLWG_bo"$>X>I 0>%O q_u,zBJ3;ٙDUIu(06ӺGvڃֹQn$C XPAc^ ~~K$MQ^`Dn6kvaymg{sÊp~s|YXyD~,\fZ!g'vX^pf| +Xn6IqSdVZYi20LqNKӢ5Aic .IJdo6|Eآ/!.:5>}莾qv0L E|[^X ̞G^qBɇ rvȺSAvhb ј?i&e( |ݓn9 ]Cz傽oL DA %T9Y0$ڈa0 ܸP!zAXyKyO%JC Y8t7Ƙ0 nu9*[[x$ÍGOՂ z CoiQ @l uȋe8ϧݟ72§4Hi~NgtTP8_ٷC[}L7cbW`NaLB:@?ha#3ku aɫI]v';_#Bw*A.SS06 Ά5R}1.Z^{,pǪn+a.E~丣jW? \x3Ϩ#4!LFpfǚDm2ޑ{Ƨ]"hIE`3ukS^>юL譀 ]sVz7ﰘqMq^">#LC"R"S}52=G3i%(7GZ+ i}g]^*0F4N3{KZHr4IZ8G7LR7" >ިF?_Ç`]ԄWĝo}/߈8u_GT.4ZiI|pjZoɸ ҋ$<;Vnjz+RA[dsXE!J@ R9}a٬ie@AyX.bzZw0HmGJ"&Cq$U{BO^DǭTc M}9au/S&}ݧ{X{M/v(>S :_4QT-!=G⋍a}N^dLB}b䚴;Oi~JuQ*DBPbW9W&q Ǚ#guNJ7dSVWB|7QYK=Ptͺ6(|&*YԻMLf!HKpZ d~Jp.]P,):d画A*w}Giü% w1C 遗h$satu <ԪԒ<?cSb*q6zD+1b:lL7grMKֵ[?Gdv:1j\ m¨z 1@+|bȭ}_ !( +mٓ muCc6jc̰KbL]UǨTp -ὖHfe1 qǾarmO<,]((D A9#lзcL6jp i %WT7Р%W0Ei;]E $k?D !mKac}c Bq% K.'U7*3f`Dw>-LDqw\.Z8zb 6R }-a/}j&B€Wo33e 2T*}%2/QLx: 4ƎS6NxH_Rb4CQf.g4|W_؀Pg0EjmPh7ToL}9u?KP s<:S&E`Z|G_\w:m&RK`MBgȴ?R 4͛?0сE=bb7*,$F o^F-!4KKxhTof*`h0w* x(Y#SHϘq,i`&=lT& K8+eY~-0HQύ(^~cQ!Z$~|2ZI X , L1 l׷uBCϳNsMgj:lQC+qղO,SUAct|Đ|;%VQ̐RSX2F\Rza.;LҬj $& \̥ri_jPP ^ (#4IچJ^ͤ(KRQ*"  Qr mfSfm?h?U8hs}>&CE{ ) r(dk8i1ntfj,?̌yxG8jQkٕf㝇h>tSgxm {ŃVCVv0QF[GR vի%\AiW>6 p"b,HbB9<~{PRǭS Ss j_@xM2<ZI$t0$!b\l ߘN+׻ZxO2wYIRђf=뎴 맀z~'iZ>Z]Chԁ9FlܛkM"dYZ)>"G0%Q+ v1 QpxenkCp R˦歉e7ҧi+\wPrL !;z4$|"&<_vK [`&ˎ \TԶA2,<7|ޘK# 6 &}i3lOOՃl"F?f&XeJ]؅;:"0v59)άˣRb1:ir u Ne{KxDٖlK6ò]׋9ycZV2Ap29<D4iᓑP$tqhDz"ҶH-XN[W@k㾏I x˵ jƀufGIaeU>+7isWHZ~ Aq *ʟ*skO[X8- ҵLW-dvD ꘩$1YstN}!c=2D)l$ CIk)թ, zyE>ΛM]?mn2U"~\ϡ3 T]5lK8| SRSMکsz%4oFIJ-g`b-vЬ~ԋW#"TCQan\r5>$: `,-Nip-)[_gz$)`mSf 2*]OH@fxR7q9 &O/L$ٖQ;}&bۊfy?WKB>49A$vpԫn(Y˽@8bK?=a[Ã* e-3$:BRӤDl, @Tv_lRZ,6aWx~lgQށO Uxa1A}7d/18:0@uk}#E76.gz㶘PV1YT~ hܪjf4N}y%1 s! ĦCo3'ŜKpݢÒU1fufg`s#3Ȋm{ lYW4.=BlϘە@J Dr' pm.*,7Hq$$:šUuR{v1բaCs}P1[v hrw߄9y̺f]W,KTtr[Fa~WT #! QNY\Y\ :Rϗks}76Oɢ'P~_(Pr˾;mJg塢]rKwzZ &oz d|ki~gj+?W_@~n$N3>M srY3/ 􌲨K&|˵,2K3k4VjB0ʟ`T\4mrGNPb -Aג)y{%SϝTaN@%Bc RiM+qpfAA*;<aC=m:e=ʇ ݕTxjY˛KPl FٸI1JiTbHoPV,1… N~àZG RY'%L@ D,/v,}Ǘ`IƎ|r|^nV:^@;9a |ttL 2\n(xڪ ijPNzXɅkdG{J8@0Dc_8R!2r-B=OCK~1H$Q@ X)sVc X7:,Y'#;؉2c!F;y8 wFo6;`q4%:ti8|C4\ͱT#p>;i@7&?4u9rh]h=2>MθrHn'^kIw-$-ܩ鑎#mWubYt~S[^ߗ@Hv :kW)Y,%Gǯtljc!Yy!kTȍjDu>eє]7͚6z$"pgp.TMwL3@}DªJ:~_wxY͈Ԕ=̝F/WK (i ^jqNMsnU|o6u2|fY;N^o*) ;chV`sh!۹f;D-rRsHI POU0ʁ߰7o}4|HXXV*uELuؔRӌtXcdG+,fik^PlҲ5 %y| ,wlCsewZĢ=Kr{ce%^C4qVtE{X!P\;-;K_eLTܭj^-D=]>#}4K:AHz1,*_8>]N-v>8%(?2̠PˬH>XD bE0?Lg)+%<;[lq {i*u=tc!a.>')ibTƻ<7:]WeHa.ru w`jp<+<1Fh'k0h+&y,iӷ4~y,l:ց;@D_>,zcf"9Q>O8T&FOMA'He\˂Z(2VWFN- 9Fl -zgS\s2[Ttn*C2 GD-!ӭ-*(P)Ju1G죟SS{"r6ʒ\;~Pz ǝX:2:$);"~C5.Nqy7¸`FQxlʌ'}q tUG沖Z+UnKBNwl턯d9ɑǽ<\?gZy3 %k_ȍuIT}ne}`nFkV v;C,Gru[6+ȄmIyH@Dܫ5ZiaME͒-/Z2awSz ? v+K g0ti2q$o?vacD<igd4.>Xz|~}`wfo8冨Ýf/߷[ʷ]g:}<4﷨ܓoMpP֨94]`  XaPI[SJEFrZ³Ѷqn]D+{igNm5el9܇GnB+OHsKIUrw-̿b (4)qh:ME6y:A~qĔ ˙ PxFA)Z JVH!T +PQ?_;jsY&t1H%n /< c OwɞQ7( -S?0}ڼ2nOqk8,Jq,lY0!wi7KÞ2B"/Ap:eia-?8G*KoY}!JtSRbz.#𤋮y[ժ7=: BW9x=bڃCpPB3U-^9:qr+Zkb'&;1URtS戀x}!fBhML\Zff.uH6:N @N)^q}NA"M%Q6|dr|:*e縑}q[q91(O{t'[Pڗ.1&Spɲ2-# Sx)w`Ԍ2C#x q seRΙQ감DFX=[16ۥgzOĈz(TdQ .oMNP; A[X.$d |yjNkҏO)а/@Tnu{ ֦`,.ջQ-;2w᫧NE-ꌽL_q2n"?wJ%)VJױpsld$q!AMyn%Ғz[ّ`<v(='! -/'t s.+P4D~M6cj&H z?u}~8hl%c 8w>-<驨|n%v@ah.{SoIC>hxY"v1[2'qЏ3ȧ6d0]ay;RSNTq г%~SqR-u~%bUp `wL#\"8uqQ A됞ҥH(uO\J SW&5!'sC!|fO-&ط>$ B\=K3]UJNRq`)k()˥@8B'y"ݜs8IdK*J?FEZfd9V%j@s=ydBX|f"#˿/Hy<`]&x?Z˫l#Ľ6`\Oߗ*ĉe]?kQ ҸoX1 ߁ 0xR-L֦BѥѪ%d6fWiB7z虷( v05N)37}dNfhMnRdĵ>ͽ+fgZɋ. k{qDG0`w߂weJ +3iJG]L\a.f1o1ixtub9gˑ}-Z҉oG%LAƅq*D?rT1UD`<˂LOd^p{c=w+)pFa!0+JeoÏ ~.)^t [™}j'b!S:7b?zLUkN%SFA4˿??L"h~kw2EbTا'n$*z8إ(Fp50?0SYr 2g!x}ch#<߿˕4bgyyFr3wm7bo#,(TΖ=ϞRZL =_-W裝}^ɞp%3P_'Ay0Gٝ */H|mM˷pEѲ"`θt=fUH0 eH=0G&G븉V 'B }Uk[`LVG= qΰ\֝kyӋz&Є03i #wavBKI3#ҏǽNr.vmyJ #tsi KN)=A7G 2{#fkԬ6&>Ti/* ~r&{D^uP'cxƔ xoy8G +7a1nCy`+;x(8 15+@?[aKo֢8eI3xg{tg"AQGb@7NOX!.u/X.aJh(__8h'GM ƶ#4YjNo%jnA܊t_SĿYF*Ocv=*u"Je3Zv6㖍;YWK>xo"m6$ 2?j-'Dc?;F+~F.,XʢFͯRrB 2www/^Pa1lι&]< 7쓤kHĭƆ8sw8-eQy85>S܉JΧ7uf.iy"֔*h{f~WR=,3 pt|&K=/ `Ʌ5zH<1fz;caXyy4 FH/iv ^ BJ,GR`x( ]Pu_qk]]>.efRk5B}(bLq^8PR%婯] [L(iS<~*o{)6䉨Z"N3!w ˤ)r&lk\"9h$˥޿V% &yNaa}d^ut`G4'd:{|0)[)bw~&6+18" >M@7 I Mɵ2O\yڌ 1\zZR4Cfḃ y6 A fjSG44\duиI!,EhoWЛ|ʵ<ɯp X/Q-16t/_bPN@ )_MUN5A䕍kY055kxsOQ~lvfφ&_&{ɇIz;>L IA+XU`m){ʽ_jd;kc$[IWҔ,4̘; 9)\;Nٜ$gv dvU;yhU#"];3W`,`6Au*E{nmr; ,cfyBa]9,5J:_ȧW}- $43&mp>_mۄgG✪ep0݁@bx{ͅLw^˲$_n{Ҩ[:pc/B6nVܣh,¤P eS, "N?h'RY23ZWSSqeӍb]i&}K]lL.Ԉs.Jۮ9 C.Wh~ _3`-Lp~&8`@. ?q|sĐ|jTڷXp{hlLU8:bk΂>ѯT(N7}!>mr{ڒ85,)r3le9H b.:ʽ?H83׍Pؾm+T}T .:?LJ[Gyͼʍ PA)Rt fxVTI>[˗l4Szmj:E O]jJ; ${`@@Dhd؝nc,Rq~ Sas:F+:@s]MH4@*dσB(5TS?]NVV`Os^ȡAm6/*+ 1{pX: 1 ~ REӦZ9 %u*u"P]%q{QǀlܾJU$9`ΟsVuH&iU!(!C A2%rQ&/T]yUԤYE\xye3-"9;ڥxiu?:ga"ۄ)H%p}6WAcμ6c6`yC# Du"WTӔ;En*o5ƋPsxfma>1t?zW &pt_CL!6"'4OVصv#V: ׂ^.֪*l/ ;cBIګ_pUˉ%y{ 6Iy-{3?w7vb/[TJR{w<eLj"D{4dsC[ICAVG<`pI}mt0t[|ݷ?L"u# TπC2r-`*}`qo(7" Fk=8DstVH^Eòn6bL6'VS+펶ߏCgR3R|1 DyuhrϴH"GV~Q6؝|P]z:RDC{ -nTN|SfVj)e.C ϨWy8 |}6 a`>g++ȵì DArЈwK$Lnx6~H O k%M4#:]sAtdk0~@G:-!8isCFpS_bW'׭2D8;5rrQ,0qs{&^jLZ/48@t^B2U|,=W'{+: a/YBA#+ {Exn=`?!Ya`XCS #IE6\OzEu2a?+Ww;yϹ*$U9P0%ƫY䦔Vrw7]9yOjֻ߲du9!|q1X[V0T$(硞둻c[guzPs]nHY?_<cNneo[)$SpvgƘqE#ۈjrddU+@ޞX7?>TEm;-%ʬ.n;'2T< կVy0R3/YuSFXc_:0L"#/ Bhyk=hMm6{Vdb ˳6nX),,NJP +LX~Ԥ02 &S6O/lt\?xB\p~ 8uz BYqd=Q c}F.oN'zU%;]ei  6 !Rk2;pSsmSW>k2h=')ʾ4uoV{EGl,e|Aؤ"sP0G-m-\|zAi%>'uIP sXfS悈+Ѿ_[edg$z[Q;!"l0#:@A )oj_'/CHu!(M EH+}OݜEIhgz«}N=/%|xX02 u=1nkܴ8$L~/5H>5!V]y!r- 4,zW5 .Q\_ZګRGYxo9\ë΃oed6nJ 8!aeͪ+e=yڽ ܩY a[f 9ֺ*y]r *P\c8ӍɛC9kE}6+]Kʮ{k@7,+yq@]RyDKqw`Գ*gڨyyv8)3uR.ωg1^(< j+^.G>aӨWƠbe/s\"ݛ:L}>H՜x:f @0#um[<ڍ .U=wܩǜ罅ywZ]?nKmI A PbIT [aRn(/p&e<4a, ՐʃW&$*TB 4oy:;2Tk.o]+zL1rw- b& kRF.+䎝8M d+p鿯F7% #4 RCg%DLOϜQVCIwak{(ʫգK3Oy:}0 0̚ဖ5Py/{ѿ%m&WƔ6id_So%ex(qƪ!OÊгjѿYH+F,WJY]g7`^cԏx%^hA~j0%֔M6~Ww7 4%<ڱpt f՛#s^/^ڑkG},d_Yl |G #KRooS􊭇!U;5Wb/ro"猲iU%Ԅ]Fڭ Hp[@?c$3%|o,㱧)jdl-- B q^I`o HR<͝)h{y uBczXk$.U;Ӡ"66t//VQG_NxT:PS"=k[|9U!'_ՐxV<T};0'%O:w:0arwֺ)`^p>*Ol[1V`?EʋpS/ Zw:R菸 | xOme]H?(,.Z6zdȑhѱDDYJՖ:8#W_\z/!vQ+jD`1%Lʙ56y7`Л~tÃ#~`&ۋ4"٧c':Ƥd(ۢX%V%ܯXg,b)oU%b6Ԗ"a˻;n#;FQ*Ԑ)iƲ-0hDNd{g\[YQP2{ѿ".c :/Yh! Yg&F(Dc0q{8g3!1ߺ(glwp8tM %  SjrE$"$gS ~WFGK C;pI[SDڣK(-QaLu\~ "|[DK[@善YsPVa&4$ :M}([c:mN?&Fxo]Zzճ?vʴa"hТR n{>=*@7)d냞06o]oi/y$ݐ*("d!-6Zh_qkw@P&yVSBղA鳉E¨?K\^#X(]Li>CԂZ_' U9y}ea +/\he BbTzd:NIxOXhT}CGO2a .s<}>@/x-p,ZBXa!^}beH۔jIm0Vtoj"S~~WO,͵\:ܗ]5 " ,s&LWob NUhA/[eHp|}*ۺ$CT&wi#FJzz* \ Hr8Gd/r?"W:0a3TtYRU_jP܏rafga S^a‹*w+( YGLDRMCfvʒFŧ}AqL (IjB{oЈnw§;ŷۀ>2܈Bb9pݎX}՟rl!Cf?a(͘3UQN8De8xlNY7ߋC~{3qք``TX`tyhʎW'Iy$^ԥ H99J!4([ %\V',N@g$sG-;BHq5IJ6T/Ϊ^߼ɼ!>RM<_@Jw ˮT:KWV1Ns GB`djiw}4ѩ8(ԇ^}hS[HIض5zPԺ!fOf֬ⰖעH"Wfj1n@g]wq磟,sF4[zVлQBƞƒe|]6ս|IQ7­|k$`2!#@^F'=bA.ƋwRN6[*,Z׶-ZYk*C]f4hx 1e)y6Ai?ďԮ^ 7^nhLkؘݾq4_Yov֕%sZb7rV Dz=/`<=,%<&Q\߈ؑm#٧.TC}/Ԇ㛼zV<8a,<MڨS tV^WpJp`;,m {zR[%UԺ1UZm@AEr 0xҽ3!Jc?vV;ir>AJ4[Xr40$?îSd_ TOAd{5si䄾z= }ސzC6{a@w⢍5jRȭWWoi℁E_cp&Cd)!ؔ$zCc5t(/ɒB|";D }{@>6;jR,"u')+X uo!Ds{( 8>aź#g۬yp_N>;,8I5lv~kac-< Y9Gl _9(MZ]jR O3gۼ(z Ykߠbʨꁲ@NGY Qd2+!Y/N~EsxElMdv peaH.OӚ>о$Za7O@W˕`T#WѿvnէzވF*i9|k ( -3i !S/ȼL?YspƤ~qobrgh̉lYLwk #IGFp~D<݈c5I{{{kD4O㏧$ &% s|^d:w`;bDe+pĝoDn^ cr`2(ʡϡ >i?8΋gϷZpA)#Kc%ޔ~jyِ/Y%|:^V(Yhx?mF&9 <*vTkX5.e'!R;v]c-?`s箆n*咺BnoQ$@tcT)u'u);fEeb291ӠP3Ķ2cT"Z W/",16J!GgN6HJ<FL kS&(X~OV)svL,FBK$p$tM`v;CAQ9nΎ|Q`%XHTH FU5'-lfW%o݂"lykB0Je[̈́xIqtY5d4<QW羵 p0F~O()}kӃoe l4; 6]P8 k@k#Kr@Xux$jڡDg(VM:i@؊;<98D脮 %e~c9L  v~! 0|輪f6;y˜ r\8 I݇6I£A_4onN]o6gPPcѬ`bI}ljNp WZf#@!Ʃ(n~Cl7[`wֿҘFJYձY_ѡn\70M=2JqL&[$ꛚY%4f3t%Rf 0X~d=Z:v)E4IaX32|iu"*ZXG /ByT{Y tHִ_Jr&>u!*T ĝbn ?!uu"șm]sٶΡ囁y"'q^rbOJX 7(/zw=Xe kS|xD0Q*Gwsi *#*![/(>}]ys[."j)iSJd\5ͦq< /UVݔ #*sv jn7ͨM !mz:yHhP\jї"^ǹ7d- F"ʤS™8[/GTK$vinjklGEu.C[f e "gN׽O"Cy]g?cNe/\Kՠ *ӆ4QէZ+B2K}@9;oB=N EHp2f !ad(EN=SOWsFwysxE*$>Ue\8ۜ+=jmtXSQ ar o5sݶ00i xn&j 3!Tp$[tWYͩ+zQ?VzH´q΢/v LH^*gUzT3K~˅<trEO׳sRG;SX"aςr_vs((S9H<\cICҾQ+Lj^at?z|s jQoՑ1zΟeE̘Lf+,𒟫Qj+W[o0]GSe>uma w`p1r`R4t*=Pյ8{)7)0{AqG'KPVVqYX[r_ F&=?6eB7"f-uK{aG"mЦUQq^ɹ$ŝDT;Ih˭B3` h\]Stz 'Y 8 1z4aN RC=,0`@"gtYϛF女z:zQWNpPpy,˭(C&2_`3Ri\"j 4>ގļaI@l( n6 &GK8#%՝decv7LQ"(~aGl~P ӟžq IZD#dG#|;TUUN/Wt!st 1˹UIQ?*CPzIvcQ|ƿ2P?BAU(~Fi6z\dz1Wren;t6V뵻eMK )CbM~M-Ϡ[ad2(w^Q c ;#鳻h)& s<+|1u"٥M.Sv2 h5?pz_ [ Im /-ןYQZ6sǁS6WqkGX_RǑ? {kTm%a~MOhDTwOxYn"fyZ|us\{ ;:宖>kCb;ʕkD!"B|Kp;ae~ü[\X7W+>5FiJ]%a9|f]M/YSH@M@sa2XG7*95g2'lk׬Uf,$b'%=v kzoMg6aL6Xt70Yxy̡-94=QR qWo\\vS=Sʋ@ECX ˮQ~ 4w 寃n1|bhT:Jxԫ-6bD/ͷym-؃kE=XxI+lA-ϗU S3oAΒ)$3 1J'peMwOHbp2$mq`{+~1cVL$P{jZǬ/Tu MwOQT26=ha+ܪsO>F'^'_x*e*O5ljg$9LP#*D좹,`8U&#H!ŏk?[&"Sv`sYRchF:B+;Jzз RG^̜h20^?kHPy %X!MSjQ h&AfyxS[:0r!wJ5IdUe.Ug4׼UQ }"]X+xT2pڻMLm g\To;}-Do{\d4`JnFbrR~f#qz#o|2h%TibFѯ⟬sucvbɺa_T3_.+Q/٭, U03@¥~dMbyKw&`X~} hDTLO;`ӂ fg\D"˶EO{E^J2Pj0r㧉rI}̡Gߵmu?#UF4N`Td՘p0`:_1|in3;2|W+c6Śy?12u^8_e &V/ɓ`Q fOoR$a3&j߲517 U8jl6YY`!|mM =j[Jz3gAR"GC*m4K^kd&s%ҧAae* -/ [{+/F R8,{6/F{:ؚۺvCDeCc4)5q{N.t; I @Ӓڲ*V=ݟr1YgX r)][no[B٤ `Aj;D)eMRi@hn7M%%wʶ`0V\n 6 5tB$v﮹ґZP nB+6]^ZZ v f/9J&(n%ao -V0viEPmPe^E*D[W"j)x9O1e'~ 6m X">8 Yxܐ)DVg|VU^-5d2Z`}AFs0iB9y9:gc&,@0lҗ*+ PXN3GCSAOja!p&t4ܦPiB6<{!Jr N gqJcPLoL5%IN74p13 }ՄI? _?zPC9<A/Wh H,5Z.Iْ_ύ\\O?۪Zk~L6.`l7κu-WjghK۽_9*ZrCN[r|ڟ VL!on5p*Raq"0ۼq /  *TH sBa2~j?\GӰ=8O`)@ư>D?{^WUt4TɷmpW$~!6\G0*G[no(s]az^(#s>9DMvWM\B'#5Ln0D-Ѐ8q+-9"#Y}/ɱ%T~}PLvB mRJܕpś+-$nk/UU[i-7p\AVX+^I@ IOؠqL}cg),_PX"8C 3D?nู9O0Ym:teG rM-*,Pu4Zd&83\h$Ҕ!n@z@QWlw\hw^RYN"~#9;PP Ky?$*AC.2\˚:*5EF|=Bd6Zodް'tBg*A܄F"}F}R1YE{5nXiӍ:p GN=F)C wFd[x=K=w*&8 Ou7AVHX\lٿəQ4q} y7V}Ѧ2(5eܞlYqXf1HL j XŴZl1^dU]MdN4GYmwϼ Zvws QԈL@d#_zHMvUmȂ pU{ ֩aJۙSiivix̕WBbq:ѕ:)<+)2xΩ4P"۴۫BR8߬[RT!ȃSaJ;g+\@?ir{ziw8EQ~vkA\ҏ_CʧޒNm3Q f;3z*/'o%UiwL]W։'Q﹵1naɁk{tz3QybEJ-qȧ{s_963nzG+n ^yյ1ԃ#Lo8G(xwÐL&(iڀdꢐĻ˽yUc BueaAkr>Dv~~%6Tw^?&Zifqˠrv+.i7~k+wՒ(_`ctK~Wx G!t4 85 iS"vTFq%~fmM=Wpv{ߧLCֽ'MqL@7neVKd^!sa1&j UL׸ 0ǐy6&Qdl0P ?c@v!r[TbM;922oܧGA5ƷV$=*y N/q_1(?/I BU$: €2SCfrj'IڷP8r"&ؿ ʷ[TLYPko\r&ޡRbj X½!?jXi4쳆 k&i#t"wBxG/tz-:t[ ?"hkIA:G61kG5_}5`˿쇨>Rs5챫} W9Φ)~eq.4"K/g:62uf)V2B\~efkEii- cU=e$gBGDr1P |$ysP8W$/wuR*eZIǩ9t"k= NKp֖/e6G Q:fw)&iԏ6#]MԒoti ߸6X29hRq)8xvUjmMlM*ޭV-V7JWgT\-eGC%-7gT{$"Y ]2jt2IwH\X(m'l+Zb?k f}M Fe[~k֬ jUP捉;B8(zBZI(dM>99Z5(qlDI1.&,\m?YbQ+8aVfij!F-8gXDs'?cRb"f/´C,pzVN>(2UAqu%ՉW{70@ou!\3 uWݘ'r~nbHx\r ?b{LCn vaI-0 ؔ2O7p/&m;{jh8We=7#ա=l'UӒIUbU0oNǭWL w&ؖ@g=q ,*7Bb@{ٙ%* -0j)end4o it 35퇮 x#SvS7zY}ϨDl822)qa:7IE,k0 _yr#?zhfy<*1㩙wk#^!ȪQÑv9GdR| GF!◊rՆ#yPyWa0MŸͱ lE**+,"]W&}L3E@zJoe:xO(I&X% ZbRuCp= j+>Go&8u %*TwєiGw A. Foܖ ;.`A^>Wq,4_3W4N lTvl^xkf4NlJ&q.BAv M7yŗ hH_.zIz3_?'؄N1OՑ)"0ðYe],2*%i twsp%T)~#2K[yE ZGSn SMPT'8ސ\mK1!Mau&ҽ@?bi9ه.¡"F)P,#[E\ՅtrZ5G'/|ϑAjL ^6#2KH”1fAكxäXi&j% tԄi.]47=E#W .',Z_EvNK\ȱyz)ԛ;Ձn|ml}|% WymΛ:Q\e3/MEn$]sr%N5iBcn[ڏt26UUcpTuۈbuMa1 30sBieωzel^S{sBRYV_>x:bѮu'Ё}}卑ZP""\r}zҬU.%ćV?a"c}3| aΧF#EW;sP#A{- /"^;!\68nPE6\<Y٤|Ì6*k3c-%wqkŢ>i6ڻJ8 F%͡ Tv8Q Dk\Pk9.ۊoY6WӨKvG9+X[qbiv6_9|NKeeg4̃D-t`#|]?8d&`Rr}a{_W%e%:e.ऊũ}[@s2Y^@ `s8(8&Tzة*g'Tj#ye~*-Y,g.BiWL.M6qV"Vi6pqËcG;go/G?~,gQoŢQCDB_O}ij71Nv(?i5#`*Bp#RE'}9oњKv98fJq:dc_J P(TUe7Ղ+ cPZ7EU,zp *0햠`mIԈMդ83"$g`N YI(.>NW3R'E2n?XшO"O7Բ %i#e3;8Z@ JH Ǖ6 Fx]!#=7^ɫT)L @z{I@> >ס@g0 w˧ݬ>DFbաФj]rν rQR*gA]^$/RXբv]xVBKJSRElx @Z)!Fŀ Nr.'IiSDp$GГChJW?Q R(;zfvM9lOGBb"`&WxԓW>iLSͮiYqMB(D4N15cƂ=MR7GF0O\+GX?@3-;f42w bZ5)%՛9wQ V&a'C^<׋u ѸHs{]k; x&.qoUs29Ɲ;gA;kvO[ : QiԲj6g7`q~8 Wzσ<>NR'M '١L>m{bX!C}' C= aLTنcT_QN0vܕvUn!ZJcolOJFCM^%zWt,Ctk.iy+¬~OzhKYI#K)op#F;ΡWv~3f/rjK2g+y^)Qѷ~\\eXD&n*B C2z7Nsf@GW_jvT;çk$SHm!ʑ4Oϲ 2Ū]«DH|`ثc$p諨1@GM%)Yn$#ý?(#K ɳ#9Fep>+ !:*o+sB~ $-SS#jBmךTCi)I5}AJ|ow7S UH\&҇gwvU@pF4Mejgstx:y ![8U3t)5,sg$HD4ghAZVZmfT rkWEM 6 !|{0/pJ J[(d"Hm?Mc8n*{qA8Kِ59FQ,vbnն+ٖSBf8D9 n [H!ǚ.%DN,1tZDBǗ %n )6 ?C {TDg/ed|0sӥ%# )}ɆfFAfᕘ-}^3H#I%J9KUym1cF<4{:@#_BK>DaO'Ğp-ܖ #g˗2RcB ,lueb0 Xlxj93}B=)N%FVS;sdHlT"ZuhKr ێHB ց\oFFаY.riYu8 3 90 ]W`z1C|HQnLh4C.abvn4DC2Lg[Wrg!GQ3}j֋6|<5zIPpem<1=b'$n؄Oq`tZ$A9{g΋M#DNob3g[QpmS:+!z0xtV݂@(t9ڋT ĞSj7Bhn;V ϐLHCCŽ'<|<ЎٷSt.`ҝM3D Ot*$YXJ{?ň{zq4N.c<ʼM\Mln6 %"Rr, Ɛ~{Y;,^oKȔY؛$fLTXSMa[U^r?pJ0q= b\ Dq9VL gEdc3tuqSu9Q}DuAE@[7]H~Eߙ#T[7{UMZ%Rtn#61}f7o3c nCkzS̋ ֛uaikTSXe ޓnnNt'-C!0Qо%;#My]VKb!OYp _=#;㹦^h. =`Ɣx$\5.WSteMH5d3^LC䫧p lɱ(H۫-u0"3cV]z|F)SeӸ MWAjzw3 I3H nU Ԓ-?B}E F%i怔0oį%V;DƠ{d "dquch4MX3Nq_骏{MA ~G+CqDvN 4Ĝ˗Z^p֤Q#$Ž/hɰutN8v2es_ynP}6l)K g_؎(jnn"Xϧuyس2?Hhwu↝P)4%SzO"'R#ۢBG$/dͥ:ajhgVHNxH撦pZώ@ԕ}Dg~شn'&'$ݼq+~<❣_UbYȲ'hEo_|le,xk%$맫>K  `GY5'N660(zC}S|jyeq‰`-\س`pyPcYY:5ĤߑQ]epqy Q#;*Vh\oCYЊ:m7[G)@-;gUU#>3p2f!kJ/H= @꾌"=_*>9I5S˒_jr90RFuQ^M單k0ODɺͅz@į-/#Lj^k^&z+< 7NzG_.})}Eֿz9)l_)ۚ!fV'WN*Z_OHRв;n-v\@A{YS#z3̛9+Fu<5w+Nxϕ6:ҁ-;@3 5^m($3HE4,NUj  B2v6PS|Yƣ& Us?}BlX0q x(;x3@LlY(#0֙r=,r 1jXmڦTF|4m|)gj+'4ԾZGMcՓZ4{ͪZ6à#c gtɱCf߬F{EG||swU,+=NJ~sG< ŒC*OO2Pew4aI7"֎׶k 5-Lx 6 X-R3Jk^ 6Iibo8 nc?.k5~]Cw#=%>205CU@kvoTBRC iB+Of C4>OOtI,N;K:v9%,~2U> |(j(WLr Zl,\ʈlbQPE@" qK,k-> ]}AEZToTi#n VƕpXmG*%y1gJ<^\Oi➈0gDA)P/C׹<^➅[?ɿD(FFk=$>?3B_=ߚstE;Wl?b'e3N^#Aзw$m@E6  pL^d2UĥސN9v[y֢SMqG6?chWڡh\= n*iK&0XݶxE#߸g+8y<{J1@ Hx%g܌w&?y]÷Gvl>C<5j556~hK &*ҕ,a;CʵLظ.dP?f6`FH6Rs&d}O~޽ ?%$QE2E/YBFK1mXUÿo !mjKw eHb@Я7OC eE(z Dx9ƌ0̛!󗤜]\ %?> I4.$hd2Y`cMNJO&:qT 蓛Yh 2Jz}?m M?9R,`3ĺ?gj$32WUpPgdknȑ ?~ﯷ Iء <oUb $5| ,/5.-<JW4L;0辨 xh͹RX=mfc<{f\ ȃ^o (J fM n"QFMTFESgSGǟ{փܫXw;)h{:UH zĺwi ϤקS7aa2ub=|0pE:M-qs{stS&uax4?-ҥKY"p^CTom ) 2(OKb3NWen G~+:[)6{OeLQL&P.d7Gd{(PN1q6d'G%|S>Yιb-/eN[3Ysv{_R _K9֧c+WVMW[V͎Dvؘb8P77/q$"2CL k^9B<)Cj+Vj\>ʃs,{J .s-:D3#Й/tE _ EłĐ*쎓2PEvwZ, .Mܥgslm3 eDcFYcn*A%4R0^DzDkJ'} *(C;%x:B=_Ihg"E9e_>`ٷu _+|KsQF[Ok@hfhUX45y_=j6Rh\_(Nˋz5>zb<4_XرV0r&y4A3{ˑYO 7.^8 8\%Be{ls&5l׎Rԑ4vb*61ZXuB;z.8^%GI }.j^dV&nRRd*Jm#\#[;yft-o'PK-,є63ZDHQm&>XMM<Mj(#kdޖhxdd9kMuv2F活RmCE7\?3!}z0|S0px!l28.OR6{Q͏AuA+=d1,W(Fc:y/o.x( x6Uqjͳh۲^LEbEײk^ !bHK9$a#InwMPAAF _-N1&SAK2XK'V"wdVh\')zzʱovR1 'xˊEf_ hۈAmNcǰMe_ve.Je:@$r ۢl\X;0zyfwK:%0aC1 O_3!E)ZaR9 Վׯ#C/bWv%yJ'rop&fb|,\ڊMx kZ,Vkr`{ !&͊cxi`D";jb:^m&/`amʐ| &5{SOP7xI;VaTğv}zYJJD1aK7K41Yyj&3o+(e#k/^W›$+l5z`:ĀK5[_F`e%2^ԧf{?9kʭ+jȠ"5z<I52S-${vBZq 7+MvKdH';G.:q(j|X s?h"s\N@4 G }BbĀh]aX2QH4T"1m:+{0n>+͖;_+J9<<ؿ:egSaFTE(bXި)#oY\ѯ., _Ց7[o1e!r%8_AJ{Cb1w hÛeGA@襼Sa,=ڃp7K& fѷW.}K{ׁc .OjVA;CԡT 4!1DzEt_cmA= =_NY=Oy:7ǩ㏳at|C@۹Cԍnjb`ߤ[bupȚWmo-.9uYԫוi|E h{;au)ؚd-y <24of[o1Y6z(Dx8g(plxbs֜%`v~u(i&87RbgٺVW+ *"T[* m@F熅WH:_o9 ݎI˅M꺥,5,'7xIoH )n7(JpA#\,"nkŹA*}-}<Mg@f )na~}3,f2I\/)0[ llVd)q /U ɀrAKs>&e_K6HzFjjrbA tz]CEBcL5HKޏ3wheq}\ lj+!Wj[iҁ:mWw«B51Q%7rn'jL7nō߷|0UjPvJlh* 8I=A#xc+Ob\RD-Sw0~]C.El6{YCB$_& ݯzwREJb ]4G %k ,)T9~4OCh!s8_#_[Vn?:סAnkU*[mk[gM:JX@I3-_L3ĸYE}pcK=q>hjgBd[KQTLU`_^KPՌڮTQmQ,N!5'[} McǨf('TUXkx_QdmM۬^mU^WT pwZ)U1z[E%rR@&pZy*K?{:i!]" 2%G[AtꖂP۫PN.tm> 9z0kΔC}BapYGvPmUQ{ d.]QbH-Pd]µ~zQPSi׉^[/dgnfԫDDMbC`/qs’S0S &R6⡨_&Fc(c4ߐL jEy(BƷ8NP@WdxeQm_(B߮[˪J OLQS@Jdw̐Bz" }ddt vy~/O;*o[-r8ߟ86eM۩$̑yQ :fADNΒU8{E] ~dZA RO@S4Ҧc[', mcpK0C4tu;fp:Á#!y@B5?3 bIA-VϪ]̖߀z?xUdt)Ycr%1o:U3rI">*õm>?g*Rj[s~esac).*5`/8R4%No'Q`:8Ň ERgI( i;o%p7$.6ExDmJa 5I3zè&!js(Y~*{$ƫ_)N}?~`_v} `簙p=ݸb/~A *T`H:q^I} OMmet}i|$UƦԷ;T u۪<.wPH dȞuqP Z=[3 9H-^y;`ʘbS7~If:jD ų(-⹈"MӦ^ c3 `WgCnׁ=&dN^.1($y_F \ͲKQC6(XKB8{_G}7/AQ! VY2aYdҌTAkZA{vF;z2a(ook[%"Ke FIy8&9=>,|c6'n?%SԗRȯ6^҂>}GgG.OhY N9bsgеJP08LX),S+>v t',DhG=_+A*#i13j#gWƓK+xg-(B)'u5Xբ:#J|JaT?P*/IXLqe.s, ^$5e67JͫrǮgsST^ssBRd /IW %~0vOɯh(!D/g"b{}2;9_ƏmvURB%0K|XW\vƆhR[fѫ˛_BB+I'ӭV_f%uq q(\j~ɒk, g_ ~\_'A$``sDcBmϴ!kq1,<"mkT"PT5B_zk8/z[ay$ Eo$1dW-D[>Hd'}@05ֺeBED68WdN&u3#[g6I|S)9 gb(ǀez>P6"BpJb)\ۭǘ%C|ю[/7b5/Z|./!zɝ!Z ɀxwcvzEoHۅ`,>`l]@_{g E (xE&H;mWAΡ+#2_ټ&r"@KnT>8Ψ y[Ȝ +7 v\xgL"ED$ Ψ9EBP߾`*"uEژ@tO/SSN 7-ӎ<(WLbW1]壶5ɦ"ǰ?ofiUay6ՅmxU-V r)QF]N`F1V{xv}9L,^:- DgݧA)cK~m20M1 c(޸7Sy4G*FgEO/N`61+NKs8 7) _*0)`_ \GK|93ccS#9uiF-4b[9_ކ3v1u4Rv"BeGB*l4duB#h j,1?1?>kF!>ļ%F5򱧣!H 6.7I@ É K%fx¿[#_||\yڀ-NГHbD9hW^O`+RCd uӝDd墲BwQ >%M6,~.x^fq*<4X4u}{o`7ljj;;Y(r}' qc㿵>c d|!Yq.o?c.#Ha0ks=eJFJy)p窗ٱ +HXV8j|VU%|K1yk&V\s|3['ح)]O 3i0FEoP!OJ\\e? Nä T[$ӽoT*J<6xb}wxf`uMF=&o|wT׸(66W#?i ydzeUyup)>Yq nbH,0N&Yqה0xd~FteWo/ޮʞŰ5w1>5Ȩv50N7 %v46j>Ͳn(sn_Պ=#1_Pd>jz p?7"sE5r< A{"]|^~I&_6ž㙮s(?l*\=;@Sĝ5-&oR]}uf,L5._$9K & YӑZh](GF#Vzܒ( y srWE pfD&ے{XUC" \#*h<^ψ<"8z  W_Ms#yFIVvXT_# &:U'U3'j'{Yx͆gt&; :Qm*hEQg\q~S\ֲZF95BJF30aXeSs;9:=s8܍Q7i_SH܎hAdcAHnorEA'i Y3X5tqgh2j6f #!gR U0RXxjoUOc?5϶KPxDMHkUA(/ElW#'l#YءJ>5>{whd XOzH9G8n"]K"WH2\\OK &5Wp㍯(6S9]e1_Ri@ !hcG+^FúOPMW\KɁ:_%%1=> @YIS#iS;bō`AEbrwf=TtҦ4+DphWh02z!)_ĿC8*HIi*@h6Z>?Q l.qK4=T#>ყXg+GAkbeƻvAR= TYP{|+x {+UT>Gm.g,x!['{ÍPϳu1ʊZ+* !NųŢ O((3?YmAVԏYl`tJh7Sb^ta!"> ߼|nlUF\D)3za¹%7[iIx~4tno k, r hn4F¡=,ܐzedU+/[tbbP(Ry/ ۘ͂ic?5~yE>v1dVqi4-Y!ȬWVDF @p`J-*Q'}\h;ESMElHHU)B_I2d`5`:_ =ݿH9$d9 iwpwz~!?Y9bאz_H*|hʗz+Θ ^zZKdF'A e.-̳PM*w 5IĭhI çhR)+!VD4>Mk7s*Mސ=W[9LeQK3F)"1n*%)@EX(Ɔ`vόNf'7<>;lߓAER- <Xl*ɪufqo-B@`Lll6QgPޒ82B=+5޺<]-<'߷lNaEώj_f~B7b88hZ%JT1"a̹ǐǾ_إᣍՀЖ{AS\$KOgM[  eq*( <~ȹzBu=L8N״Kl`T{[] >p"BB~Y"u1JiK%%-iX@Mf?kEOzNo ?xTeBYC&/E1*qNՠ~wͻbX)HEqo'Hm@{/.e=Yu}֋JH\)gkjSL^.5b||kݼF}^aw5|rjNW}!ج|ݜdG7~Q-Ԋy&۴Gx B(Z>~a/Re oOTAb %ғo~8d 8wYIL[Zvqهt4J@7XtCrr?"(jmĝYPkyӭ?k‚}4H01Tl#tr7qR&[hRS0ANTJziė E&#]AS]qg8GPôrJa]~Fe|X10a8wfC ZAowº V\ 8!FJUɵXnT_J@L(̮x'_ QjLt]g5(|9^۔e<ccwJ|6"񖣾0-BsB,TYWxƇ a{ ⒂Ykל&PPTtARlNQaN!y6|9I.jB RqC2Rp3hžPsbWՅiXΑ\R-}Rmಒ̇;dMu^ɭzRVN@z+Lb2BJ0{H⨺D\Dk}(z9e,fsjsKB\5] ̪/R14k\MΥ(zV'+enwbį,{۠Vnw4uƾDw%!&K v0>K;덆NMcĴtR>(bI(-J;38]^Rii=SJs*-/T= t5;ʑ$UaD=UF.!;fuqv 8bm r A5 R&`¢`(EߵX"pQ>bV P\',>yJ9b?عm Pl]-l,Y")E$ $irq `4G-^c_ '1D{+moɀÅXuMe A߰F@w?Hxx+^ tӶZ!~Yw^ P$(?uavRFu\$SJ4Zi|\1qBXF=cHʆ~ *iSD^D^p̄s,9{JB];%mՇޤ*0鲵/d₥>L IYc*_N/ؒ~{A+Ȭo2]d{ILn-dR)KfN{ƀ+ ?7Mi];S1P!՟/_-FI\~< ƕ'X8whNS&{|Mk|euQTfMyXW[y&%c N_)6<6@l]mH- 챘琋Nkp\0:O)2 5Y*Q&Qy (f}XcSlw3ftL@+`8xEơ?^PU<|Q_2%}U$kG;qfMrIi4<9WL7l]mEzXqܧĂs`A9'S}W9:3a]NO܄y@'f[g q*[\Ȇ;^k!>'pl`EFXmЉsS|QoGH8s;˴vvF;!%'j5rI$#n+.߯e*W't*;}B1өDĒ6dOR5Dy*k-JTy!/wDP\cLz8kߏzKj-,qo~"G>2{rGq*adߎ#xRJ傊g @S}*-,.>m! ffajF@nU:g? r&Q!L&={Ap&<x17?h􎽲{B"ڃ"0,27LLu2f}OhWQBpm,ϴ|@E; )juKJ.$[ޚK$dFhN&=+clh* ў(鿿M3ix*Ay3( mByHHa_XYa`pR_Pi!Uho$'1T2ƴM]'Cd"dca\l`>k8 ʢe+^@܇л[[~z}d$ۖK4 lY> 5R](3&5):mrϫěB#BB\FzۙtV9|蛱'A|BgΥȐA hzaEMCuF: xU)LVte-mĴpM}#`!S ȃ˼)-:I (\쳃Bpdt VO]KHGc=KTYh܃]4+L3MS&Y G\) :hN=mMu9rM*Ƕէo.Jz\`!4/r^`ەեlT(Vck'P*ح [Ahہw`E1TߟnuoQ-'Cf_8 P=wlo0{hK:R|ɮKm %[b/)md^J ZooZR|2q}+aF{hkWaobuϕks;C ƚ{^O!zw;sc󃂚Wq:QSy ,"U1 9Vx :pǝ [2$8\H5nuD$.WցxMcگڈ&𭔵ҘBWm ̍ĺ0~Rk %10BX[{m9|0>#E r"ZxNۇQ=dQmZD= DDzxet䙿lUI&n4jEul1AANz\P*"]oXPvIbGzZ) B̔pe.V%k\4r]KCta".{z}INsi}4@q`iw)4x;]-DU,lͨ4.k% N%)u;g'N8.%.QhfM5Eu(?}#QJA#s3DCC;7"2pG7IR52Iae_jV{!Yuj3VakG櫖.'VlQ(ZO=L.fd8TP ?w.$ȺMW]IE>_\D=9.ׁ]:Av63tz*y(xvH/ 9 ڗR 2v)>ȭ]93{#`w>(w-,Ё%qjt:oE`>)WrW>o);gZG27% @2j3Hi$$2Õ@5P4S[sy qH>K̏&2' e\|xWYH'6H˥A M3jY%8R{NKۖ.:jGbh~ gos ix\ D4G^ }˫d9+_L9C蓄\VW~y9jG<}70WD,^_eE5PwGsB4 {og mY !Je߶z;:#]m^ߩn} N^=ǴibR'r$7ʃZu̎ٸݜ+4xr/3,*x19M(dxO2Ђgw$E@p?r CAKP~n*"!UPц9=RߡLEX-q_Od,Cm"/7◝55ko(JD'zq`P2"5H7<^}/xb{^50WǁK\xCSܠ'D׭&&t7Li}J|~%RBɰr4;i) Kx"->/lZ>9{q;A* F:2yG<Ǫ-eNcv3rt7Ǿț879F1p^1 ~9;g:5PIKjqc-zK'願rbaޚt3v)=! J9+mʹ:1e1߱O)$ojlN*p~nY:dffN0lI8c~lQk=|:3[8ǁ ubz3C`X=OQ1q~|Fd~l u6:4F?bmMt[7|\-uZ货Q(e^27:ÕvJ7Q[2Ɓ]!M}'tLBbӞ>0o3H$8[eLڤbP>%ơ)xƖṆ^mڐqۺj$uC;yPsft"[vLj = vf .K`-F;fTJ aFMMhm?QNQZX9es\1(C@I, 3ziؗ훝o{^cRmq|k &],X\u8lNam[Ic0(>G :hI14X-+PXk|-9%snEJ_x/)#H{ZĈ)w2؞P'36yM=WDֹ *1ު^ڄ'/;`^N1FӴo -Y"WR7w0n5\=-v@T˞t8C R hh;}0yDVPs8$-9\y\ni-u/d^thDه%D=9reh$pjF|v7o+d>d`:`(f2҆(#tQ"^Dfbf BZ* /NŰb"lgoV"!ߨJ Wiu_+C͋E]R(@z`d+# 0ѯ<,eǕZWzit\ T,.K"I1`4;^LNDR ~#x|83bajvO2:+/\wSP(n:qP ]F\Y'ruFh_!? '"O(6(2ܪ%6ιcp#}7 Ъ{$)_óא1ER݃)1#,Mv@tWӑ)C:a^kD:SͷSZ.Oܡh^ VaZϿR-dY;> g/3#?3Cd8tj dMOIʰqtjpYţV MzuTX)fvÈgO~ȖGsa) l8c6.Z7p>hO~݁$^ |}ի!ǜIȆan$4젔?v% r7R+||l3e#ʪSWq˂MNF;7 +8GÁK5zKD5Z=X#^9UbU 8 ?jh6USKۮ4W_ݬi/ kZ21"ڼxE$uAd$R]P·82\ȕ[Dɜa֝ QuC @+֣^Jh9$u0<RyPQ\ƽT\:"[z4'cji=V\mٌFT,]62"!睁X}tYDs5smRa)3+d?φ>G"{hn owi|O{}sJM`!֌5Em:U_6 T\[b_/{d+P=l7aS\䴶~T^JM'YuV!Wnl(H@O.Vj)N+˶V0NyXW-߀Xo՗#@`}j (?j_XajArɷýpDi@Pdd+Rxb{AӲ3?ٓTMz1Pfr79FEH굍 \usD*]#q-)DČμP"oFIL$&>8Գrjx/-hhuWf{S(0"U2? ha? pӒnߍҖN 䍃 <⍤yKAU:"Tݱ\>Ix͎Z eMgPt|AQRtN+$ ŗ|w~f]c 9natP26ۖؤ'tµ@q'?MS10+eu!+׏v~iwk7ߪI6:3:"J9=Hҟpm~̶`j3EgW{ OkΓ@/ 2!Q6ˋi,Dmi"*ccvGӤ0 > yH~ZœodK|J IuwR.3R A%owhGDù v!Ro%7dNbiZ4hU/k cJy5#~Wh \0|0DB,`0ֈt{`z̶{Jr(ryk܊uu:m,g^ğîsKᚹDxɯ4(z gjRXШN0r1β(@ {&M+XEUyM V捰z5>tfR͏HO_,ryqҖ]JܸKMаqcVweGYf k:/N&-b(dDY)fi}pBZ|n)Q$27օf)yaq珁I3 5 ڕI-l%jT,N"@007G($̌A&0*Ov$R~W3aʾgkBbt12%H,$#A5;_G,A.;3;=7|.D^1TOVC C2z]Vݓh I3E%Ҁ6$:笵^5XۓD}J݌8'bʉc$C!; {_R4=c]eԌBHzkaziCش o]KL aAЈyNcs G}D^S,a;(04`Fcq_-A֡Geqh2{dbrP$Ф+@lLuѭAY$V3}DԻzKu >A;.Ƙ4PEETF#-,GŔHj54휿mtWo-Ê@嵥xq%h[M`I,5BL3r'C|f#8 rfYt ϣYRl4j{S} oGg&ulErB>TƏo滯[/sbAaKQa4o5 ."kkWW>(?Le |6whb2wBY*xrCh.9(:TG6be Q6Keh,fYiz#QsĢwh%M :5YњH@J-sZ7CG]9;9#gkjpUoÙz85mi!T&F.ۥm, Ƀ-֏{(dPZ 銂˚GZ-|=ufr;SPȞ@E(6Vw5zrw^dB2c+Hrhm&ɇ|)Mp< n@DЊT-5XRpX}O$ΰ]<0̒^(ᆸD镗By8!0rr̈Y D،3VŃT$S%TUqnN2H]&'(*[rz ʩS Ui]rbFB#gvpKO@op8Rߡ`M}VJ[x2^'h,WVΪ{(PYcZUҕX- @tSփTh "[E}sfz81D"-Xz ;M|]y#UP?,Chz1$-mnTR"xO* Ya2:l"=wo:xl=TZBR44?"@B{WO+LxđfJ lx-I̫l/ҼSVwH4A]gir5tIXsVLay&q.\נyUBdkЅy@,oD64W-eGߔ Vҋi5 4CћF ` ZgH MtΣ[Yz&Xeza` j%4'k f;R ["}XչF3@]#u>vbR~e;Lѵ\ҁ| QHAw0ơ3a޷Ŗmʸik"ɦL]9kIG(#_hLT:֊j+~K*+Nq(a+ZH/7΋= & YAg6%&O-nbXIQQ3 MxdHc[\n= =GYEܖCƲ_}~UDyOv]AmSƾڑT6ʊƎ:P6pԤrCR` kG-+ r7 9A|{ه?G|oԽqee1lqqh_Ln ,TC+L`\2PuסۅqtO21sK.lhbz!@vO* dGXwnoΊOn$§g`(oţ;E$#iv0r!8:8kf0loaFbH)bB=G6ww0%SlQ m|c~edrR p gԫl] JVZaВ2OKQker Ҕv4)ߦi;>[ʷ5zǓ-DG>F|\Ho [OZ ýd_cg1 ;뻪ےl(̓JnHtMXi !)fw Gi_3eQsԖOEA E 丛K~Ԩ.`Y`P%r q | Ƒ" '4vl̷8$Uqw31, ²xG&(!㶳}ˢ 9k<Ͱo@=ow͖^DP!׋tل%pJ% #GG)1M#(uӪ,+jV*3llhMTE1gi[R^(/X?]E$| =z.Y&6;V* |HH簃p§X#0a&#wLyyXPLX@F!5 DײtN%M-W6=ޢcgeJ0-dwds@TҶ} E@CԦ(;#׃.Dtkvn5. YN7{cN+e>;!_ldxB,ˮi! 0r4@Y=M3+]=FR;ġ>q{S[9v7o~|F~ rSilkDM;oP:i ^^-1:鋓:03uݺf+`זyT%z o/Ƭ=17MZ~Qw\56wF'gW"ۆBjڰaC'of7lҘ!^HW `8 45n nSOiV*6i(ǢBF 95܃g;h|(= :Kߒ o@6~))M01jM7܌x+)`]S1Gz W>vd&*/q2DCЛ'hYE&FYtĆ[-sJ+ǘwy#Eb7{*T*2쪟A۲;H ݺ:^^~?T_3=8\YP6F$أ(ڊ}IY|u ?`TѢVEfl_kt`c@֋PCvlv /1~" V+$rx!( *߮ޕ1&Dȫ2odSZi4O?6oͲ+}i{2k~L?V~ N[ B2ńuaVL#)4!Iέg %mg.4GvxUK>@9Mup+_ IC<%(%M |z?Lgtc^:烜yUmAB4=9KqNv VZ^{]I=|']+ ujƁnlJMVT6 >,Dٛ%I+Z?b=5ڦw+7Etf sɉ`Φp!a?`wMb FwdV,I٨ZTJ>O& ZdQQݧV/о*m5!^V/Beo*E&DcNh;d HEGp̦w^pwhBڜ!P8ڟG&(]$}>^+ AHyd0B8+WփT&VlJ pGR.:t`y΀ӕK+<,>'lPu$%#X;ff=qctSFSDZr|W+n-[.*QzI/ؠ^Zn>`ٗpâ{@ːjf)t(< `4s%ԯ)KblA;5[1_uZ lh*ʘ0ba璕Ã-  ;Vˬw╗5JFʷ.b9EDR}> g$usM>u@PbN->2]HP.pҖSkK` u~0Y4d?[ou=k̖O*$X#7BX+.j)_ۓX!Tƨ Ygvn0B"M{rF7'0c`Bp8ˑxɰ \_ـ7* zvJPܙö=y *=iN6;j:y/k8 %}NITk4:,ONVrȒ%!AMfA)|(!¢('L:JS_}RA4>76X1AM\;?Ŕʐ0kDn:~r~󼘚 5~)Q ss[IE ̭Y4%/=$%ЇfeE<Ϭ %X< 3CvLQğ6ĉmB-y,f~/h^cr!I>GG=evr P?D`;2xJKy'˛3ܢѓ@$a(mH0X0MccTM ]&WϜ^A[O l\Xo{,w`ZbҪrk mjo],M²U%T}Skr6yg,"(2v!pk 4R&YjAE͸7gpW[San VR<4DC'G?P0A$iKpҟkr%~hqD* (|rK|{RnԌ*!t~1g1ֱM0/2>@Z4JKBYKk55!KTKVTK\Ԇ)JrȚWΓIF##J@DƀVj Wul.T('0} 䆾s*kE̊t kc{K\*Wa9A~GԈu=pƃL6b.j#шyq3vgyΜy`xiXC7>lspCLN0 4^<~Xݲ1|,p5ćTH-CS+bw /,RLK 䑀'N*chO,EN3w0IH 3uɥeSFߚĵP98ZuX-{q%y뀧2uK*gf)̿E쇇/ xi)xV%n'3&NB,>d҉/Uf2#+\xŒE_ L' uZ] +I)`WǷQ% Î }:<e'['A3> f߀8֛ w<ĚS1hcw;ul 8leB581!tUA9jYoiR7LZViq+E8^Űa$ZjPNZpc9)ySR&ūGI%.2r[UEf{e(' F:'c{=[\%J?~&M YfL"c>AL  ɮI4ȗi}!=k=׫,Su4>؋QJJme>uYn9ߺv"5~M0Ae@c!y"P&Ӑ{0r9 ,XVR2=m|GxE5!I;5ViUս1;-'0sHZ9. 6]Ue|ݳQ^QS$jYrv4%g䥉qd57DԪ < 0E`ޒDpinw2&[F8+ ;lOtQ]6I玓tZ0G+_oA8,~8bX'Z2"[ݖZ/, [p<וOcH5 Nyƞ3:EڸȲ:؋t:N%j>xyW?%l ۭ'z*BoBgyCyt~R[ fdL^пfr9dm*a&d:OʼL׌U:It}DZ'ΎAA2_hMތ:ZC g[&) ,c : y(l򓗢bV!R@dj & ŠPw2$W{x;gT^ܜ2Gjqo[gP>SJ5ľR?m #'PlM~OwԐ"~ L>Y'z^=嵓)YhHTT$m&fp**LG*1-lra?bY[@/Hv&ʟ-ru%']϶&j1żdM pP;Q4VS'Hо'^`yp<|N=V6V긤!c!QLO/S2?f745Q~GgWde$iR `2|ڻqHgkYe`|Or䣥wgerB]Z~| YRV.Up._ԥڹe%rlV.1) v -w8FӒ4,f|\zĜOU`eX2]p~[&&ǑV(Vf8h:-ksb_G DYs3LFrC9h-: Cwp?Da,/Wn?'wZBQV \F.^}$ű ٲw ][h1>XÈi>on¡X +"[Ps/Oжa7F fI$'(vơSq{IxzB ?f}L(K%:s:p! IՈ BKKq}cBzԝ %hN㛪nU™(d@P918ήǁQvÃ3--d]5 RGk4=a(WBEIAaPvPRIGN7lo阎85kn x(OqkPd™MՄ "qtq8ݢ`J]7F,3:R&iWp370<ҏ,{!o!>shGFk}"of/=H#$o6BkKp jʣ~0~ǽp%]OPV$@069*kH W|c3BֶZ6iSyVװ|B[R\pzQI ,OcOʑ+OWR1l+Ibw>/*&<D"B(@&/ԃLSmRJieeMtֽza[M* 񀷢dk뤟YtWAƜw dfKg+mXj*PR2^^nfN5 #*3qlMz#/ MeeYI,u-))e lm{!Du8niUN=SB cQu3Ӱ{w-MC7Kv>FÉ$ˮ/B  W_P`4lXֺgu*]!)eP6# GGz M*? JʐgfwG\xxOyhل|xmpWwu"bo1a_'i^dzs9c+b6OPX 2J:L&it3Wtari6\ܭ 吮ī{$U$֭!M1CAɍEcOr uXiҜCw{G3mnq0Zey?SO}0"ҀQ'JOG#l4w W?:DKzNF} %@3;mNӉ|J n}' vȈ Y뤕'͠%4:H )p?&YpPt,Pxe-K$%+kp3dASO*܈V4AB+"{ƊIϴ"6ɚ-wU2h+~b,fc"jP8+!Y8l~~×_ӗV:YGS|Jf['A}>^Z!.a)5uqu+2U#,Kτ8I.Wp8Ofof&Z=j1ܕ%7`捛/Sjk&?>FW܃RpYwP덏tOk]~#/v@ d|!:qsQ٧Suc B3udH.;g`ΒJHTyD&pYΛK(P%s S%64 P_ N7֜zYLT%;RKnRj͎3B@[wdv>g1"6ouamO M0U(WYU\փOFݑL*Il}J+_$G3`lUƹ -4$r$>̒\xhS';s4M2^ 7oi:RΎ/i޲|V ,PJ&ԋ!݃ LW^-4V{u+EE"kaV,jh3ҔmsI)$M zs{0[j(O#,1]RƘ# r@染S+Lot+#1Xnxy/AMTeaSp̏h}R1(AohcD/bAdHܯu%_ojYĩ6Ьv j(LV Gד?{auRt|ϑڙnRvEKf\O'F|޽80﵁ M+&ɪnoi'A@i.c YH>lj>'~waܛSp,xq9u{ަԁIFp"_QP*&мmq#*!rˑB `4FVz<> r: I3Ni1D;׍ pPC*Do# ~x)>S_J,DM?qe6le\TC__ jϢf6F^` 1_T;;ߦ3A4EehAEUE0+daSak0?FN):ʣqIŤ>C^ho#q/M33$ݤKK6JI+d{i@۳\X2m] nrc9" %Bsˤw_mg4_9C  g@2aNQ0FpޟۈRԗx^}MpCɨ,=E k_e#yuЕQö*&*0>ُ6hAϏmPh^ɮvldQwB>>[q]}}հ XP;Q%= Mdy ҢdyR# O\ B.: ^Hl5D7D*8Z-Q 9P|+9`*xl8VAB3TqH4cL >c47ԩ "_l>Q]PB~7ˠ.P(!)hSoN #ѺԸӻ8/A+MᣝBʚ}U(w'R R7f4yJ-kJPe ߗ򌂙6P 8]"!,CdC0"띢̖;!:bT:PumX}ub5sFC̨QYs&&4g4PX3u:#PzLtUvJu]s7]>%q 0gPj6'(3n?N"깯L': 4gdj.ҹq])q$ *TV/u`a0&P?H&9A ]hM,᷄]llUuzmJ.>,=N')yynƮ[$E2ݵ(oTljplUy)09gBλ~^q dѸA~3ZBn ژ \}.qЛ{af.=O7i69~!u;6/5.Ml B+Y#M}v+&K-QMsщb-b%.a|~-!7{2~G rx2Pj)`c[ `D[8-Jo5Oڗ\kwK$3 )iJh͜0e@ 8P:7RWy mamO @ \f YKQ6џ/ Ha#' v1sg1&e!.VsG7@\zo^>q`!Gwj(`؝N-dԹia 1f %ץikDc z LFDMp'kŕ.<\vI_y?fr*Zp,cc^%P(ef,65yMr^b+X$!DFg=ג2дKܬƭ]7[WɋOZYGx=W47ļ3ټEn.-zl?0Z ףod?<}^aKlmՂ|zC ak-UPm8GK ylon؉}ĹSz,kЅ

+%|kb4L$ߓ(|btƖ]L iO OwrDha>*5bH[u\ FZN$ܡ?Q,4 .&dFS-}ІfNq 9) 1eX+ї"0Ʋ8 m=ՔR} hZHRTNԇ+^hgds}%(Uvs;٘)m.23ejx|^K;C) *ʹK kblkdWEQ `C֕.KjAkUZs%ai>E.}L1^ħ αqĞ5vM1ކaiET'bQU]XsTS bF;wȟeT>fֺN4y z,/;Ѿ@3M+0iE#,"y)׍#.1xy9- (iי_8Ϩ{N?ZŬrǴ;+j|߻jAV%oʜ5o ]G1BuLg9\U.Esn!u*3P*IG߅R(GEvy~õM1:0hNj(0 Yѹ[: Ҷ5X+:X)/cSZܸB\p/0֓B4$w0fm CMaM BI֟2^ɥcu`X:9,O>nc!6q7.ur5Ps6;HO=1K t!YJ"2m@dd[qJcim6|xӬ˧9 LLI M nT?SniB=0\ [W6_)[B?4j2QyW1[!M#Q z7,tӂ!'#?|5H D,4_m2 s"XXhcdտ=ZRTee:AMkoU Vie uKDߺzȽqZæ>Z0 =gsgP,LaLVTyٯ}ڲt߈.ȀZS!epگ{S׺%w2BI^y/>~/;Mdcf?PMk4%Q6堘T "yd)|Oר/^ j[V֧SMS\ƴSA{P6&@Ufb;(%;9QfVCĥZRq̇ݶ:t% pwwq?a~"荁0@vPͬp:G(wyoeYg 3˜SS"[YqvTGTD+Sf0FK&_&^=0] !/@x߯/HS9b6t|w]G:!(wx߾vZ^da|Zf8ӌg8B!fSX[+L8E}BCdrdԯ Y-moVTtvκ8b!}y\YrTg r2xIx֋_HKqWksA*1/ANGhDo\iC\qf Ŀ)|Nې=KR%}۝{QSbM^G+#fRD/躂2>x+ZqD7(ƁڶhF?IbrŠqf´i*N>^H.?{ԝs#GX2SpplcuӃm`1D>C/bt[A$:q[NܚvOahO1 cĨED@i[C瘖wSR`ؠ앉`5@|5uo{FyubCsK s<#e(rc)٧bх;6} AP n$p1uӬ[ssD'6-{K[_ن<1o%d<"_4gPQE(9MPhvvdg}͎"l=蒍vzWK;|zsڒX21{AT8.PfQ{318;Cű3!==3)o7z*wj:;Gvg mp8HY&͠e0FdUɶ?dA%OE߄ع2ܿ(Hț/`K3N˴ TCZJwNo $G>DZM,nF5Άȳ`AbLϸk9)"\YQE>FjB4}~qw%MdFo2/)AX(u 5E!Bh:eF"eo@ P~Y9髖!"hbtEKj/x,nhE9&3+l'ࡗ 4HKrml\SK qfYrUsrH8e9)Ʌئg+?ώ<^#?^|uyLޛ YQC[ilܐ0erL@LDL%O Q3+"($o D+qgEϕށ=ռC}GfpDL SBn]7N}& [4}QW]evWJ.RPwf ­Hg[ל%ܶbԶdv:A 3jHp[V}̄$:* LU2Aې7ORsH{#| y&LN122uH?(4`#]ÅLi4.dAS"ʴYSJ7 +V R0mUCHʟUG",R,ƏǽūrQ6>$V/chɏ6Zpr%D\-QJAtRƱ.BD@ej DQ^eEηNWU~=hH-N`)e@vsHRh>Ȼ%b1zltYpۧ؆LK2f3ߦ?ɕCU_JhϏٸ4FEu5V>^LlI)ջ{E*`B]^sEj}(廚w9~5h1\ҁ?m#b:zk'I_Xba.fүkwZl޲/E=kbO-,nJBT2)ǘLSP&BL ȞV >h*Yn-v> !ڤԿ\|Vʓn6̿!#A+"K}oDf5S 13sd 6kFԉ1L.kH&Io'C#w?<C2#/AC}Jߪ7$`'t9EOXě;` k %u"rͺǔ%EʁIdH`QbܽS)i8|Z59̊0LUF澠T5٪pS*eC(jzC"Xށwe%$Lw 1u6}VHBw8d}ПƃbBsADjqh\n: @`x%GrXNԮqUB\0|Y s?,fɇ>Ja<-9޵lרPUDCx*R~;% 쌀T#R#0 ^=#k٠"-X͋!]dx1H} k B>ZmpbPX+AHu1XFxU8Jxig3ǥ/m!/;FiVNGP._/[Q2׏Z]U'>4gp9^^sYDd }~bklT9x.MQbۂ%@Ud@n8@!Bv'/\nQv>y&>m|;XQXCz*9j}';0=.FȩA7@<ۢR4d%ke~FJ,mjHI|M8]:wG#`d Ǩ& p9i뿻"kl,kZr !ХK}y ݼe9EF?PH"XBX)V3{;dRLixVS40+dqnx /_<XT\Sae LJfIL+Çh@蚬] YBuQ+I:Mi. ltj`kK[p-[̱Ydkz:tX".~Uy'I>st8i6*Dfz+Q^F?Ԕ5XRt!^K7r6,޸Y\7}{_~%σ^?ͺk]͉4 E3)W(6ޤfERr[& #xS=`qʀ>$ r̂\߯׿qG2hk~;)v[ fN93H^Gj@˰$z.DY@<_?섾ks@,ɲIX\o<(;  5_H]gAMS*B+:(RWz>59!TUs\>ݍ4o"ݧw6A3?Otlm|už*sQ @ X)47a5omGP۞[x3*:>2 &/Yw'5$W`48fǠ9grs\p?ރ}ǁZ[FcGxI! Zx/שUuq@KYмgL:iu(yGyMMԣ)4~c(;P̽F?tM<l7Ϧe O0}[C+Wz ?9TwXBS DU&XI{nLV =tH7E$8uXD񮻯lLښFFuh/盜<2r.coJ9odwdcisT#pSs̅3AOrtyjma~LN"?Rsm?YaTwL{1͵LϭLxCYG-%W3Ͽ.a&5 ϹsSͩnaq ZCP l/3=9NtYdJ?C#L44ӳ/0 |7ZkBc VW},֭'S^o hMۀ @RTm:~!rJ׫!tyuXE=Oӓj_$QGuc~b+goEANp/$QՐYlqF - 4_y/]1 r`i-|$'u@{׉Z*)D<iȹsP][YU(~1o12gtˀ{ yraJw^l݉ BȝF5$/XxN`xP|X2gCp{Wt2r_ #0ކ-n WwR2cto-У͒0dt; ̄Ҽ`*x1 WYYymCJT{[gV 4M>T+" ȺͅˆF}f:KH_P[|=/K\͞#;m 0*zSS!6-8Wx%>ItiWVm5uְ^FR۷'gʏrpo(P}J%MU+P(Nl&iř8g返oʻQ@`Rat#wA"٪@U}#GݙTN~ =Cd\b)x|mɦS@@zE#^%`d"rc_?箎kec?m T@Q9L5C*hbn+ƻAeUM&;T{?}!iY.ˡ*,IR0h=DOaL7ý 0IRՆz\ +r6JY2N XeUU`)|@u,-,=(M@AGQp]= څ24Y(ꙺ{ؓ:PQ[D ?޲[ $_$B Ul?O1B^$ڦAAZ'Ql<אH# e9μ:Ox]C!1X?F~*z 换}7(_q(֑GlȀ {0J~ߚnc=oI @@], |*adxX"n" f|<߇#t|$͞8 xV7+qzLP٤jhС+Z7%7, >)tR7/'ȁUFTu>#*oȚ3;vmDub 0Ug{nۣ!S`c MMS9F:}BQ3LK xD?: 5ye:fn9X,w8 Œd1`l8*MJH\Pez87f^?ƪ=dDDVMlL a+q׫3B &k\=;6}BP9ES{F#SRXT)P)"~_Sx舑n&AN$ "88 i p9 :fBaiB]l}],.a_M "`Q*v%L~⦗N;8\V`-+jD\}j64iWըQ UxVK+)Tu9=Z[6q*i%WQ#/eBy.3Ļ%Ǒu,P-S'CBxJ9#Mh5Otwln#!-D=]f Q(jNvTsЁ}cƕMPf`jD$4sB_fiPnC]3/p0)U1z'aлkI/6 Rc3)cuuq skt54X9GCK@8?;@{udF;T Bbax70!^Qs,t1=_2uxh͟> ~p"n47taєs*\h!Sx6yNfPi80bB*}с}75>8_  )'uy̕=D,pbklH0B cZ* e Mp*|݈,^DezחRo[1z?a]!˦GT3Y,3\WڕMDOgxM7|G q[ژynɭL-ߑ|&sϯojHZۆԕdfQ^P|eܦ jαä o8_1đqU/}B(޸B*8Qy&>~鑮SG'!&4Am,Tv]F 1HdAŇBUz:B.-V=?yr,f<d,X$6? xwS__ĂA3ѽ4W[]囷笽8yU0;b-pၚ{੹ݿm#/iInWrqT,%%l>8wtU晅Q_j7囖fS|P 9vlqݢSAifȿ܄LN"3Fث{2\GNgҍ]1}גVh2XNutgQ#ΔBr ozjd Rpݥ5Y~;@6 l>yƛu1H> [oeе)ohJc[)ׂfĂEUz_J_c2Bwۊ%D>mp| <^ ;ehȪt9ZogZ{?PԙB7L㻎l1m$cU-`"rwyyi5[;t?,BD-}eR/|:ź`Z1Su{L<#-pkgY2$tW) y+~H[dJo3I>\"\ZNɪ#dA|} )Yh e'֪8{|<FہpU ̺T M>fFy^nm3hU5$L:>]3] 6USc(T l^s5y'FOC/&6Fk(k x zg>2?oQl37ʪXu$%MIo]~(>\ ygp'~\`EMg:|FR)TU+m jetH|*#pyst_ӀL=МT|nX'n6RpoI܂ 7Fg?-rcquGy!PPU"Ӿey&XdE`ꯨ%C cQƨy†CVsI>MۧMPRc>6҉k .?ܥñDZp䰘e hʛ8^^p收FL_jWd%%IrSp8 ø5i \ m;i/H?VD}L)}FR ifg8AiۤPS&+l(xq Ӈxqu:b׬–3 OqI<(34"a}fI@}nn6)XL%da6[1MMxdF$Yxg#jTGr@e1Ցȋ;OMQI5:$lP*adn>!!+UC b*}g`ivlJ 6v`ryZUAĥb̗RMFȁ[?[2Z4oQH4.ÄD"SgJ,tN;lތ kXK:VJ5[(no:kaz'o* n/E)YJ" Q,N-'D CSAq*pl q"# 19L"I&[a9ȷPu'k8׀Y%5agg]Ha!ĎNKVʧ6L-+v sRa a}X B#h,Qkc䬝?f>::XC"f=TR|Ze:lK;=?ΐ(ǀr/xn0SFOw;T^<&XsܤS-T| Al61ƫ80Umu5-neI7`/m*)P%g֤tJ۔?8ɑC[f@(!sʈ:B2-",8ODz%L#!ܝo-9Rˇ+p4 l#OP$c.~E@ր8f)Ē6V嫉UP(y^knM w׿L;$$ &$zƦ`R_hY#)eR%٢Nopr9<r/v3B`K0ᴆiK\E?N?%2o:-{hF7ۆtg@\m8̈~WZȦyӒmSAl$fiм۳2H/J-$Ě)rۓ(IᎍLq "CF*;]Tv^l񇿨 G޼I 0̝;^(,?݀X=Eƈb}oONi?WtQy*_`7 "ߵ#( I hJStsT;j_D&'SGNSO=<[R&'wF-6dd&;LDVC$ALI7o~ed  BjuΈ>p]-Z+F?xInࠬ(\RVUiDpX/7gW4O+uqD 3h`\!6!!(Iw%Ƹv:6 /IzDWԬ, F͎AY֓ʀ+ qo.ywbj)%bB}DKూP5~d(8D\\䟂 2B @&pV-[;JqP!s9"DrX/K'2pɎפN LNW9I7ߜdXxXflʳSDO3䃫(噝l\$RB򨱷~ImeqjB#J,[R(qȟ 6<@@co?SRxۿr k7zHths ]i(|ӦPcDh3W(ޯA%E\fȠN02 jLA!|uS5r/rbC 50!cz|| i((M)P|el* bVCg{+Ԉc%6p}Db]+%t*-!U)*DZ&/9 (d2b\sXq5r?Gayꡁ8=55yZA=ThbFinj|f*ɓ3ݪR0 e7D| aJo%'c4 ?J9 ʖ ;NzXjPN|E EBLRLAؾpyɫ^CmN3עh;YUyO,L4=p?1yvMl^AU {葊ɳ{+-S y,bʔʖ^uiD!p7]B)HSUachv܋ycҢC"_ Ϡ|H0`xP_=Fs 4/Y}i<Zuxp:`%41H~$XT "[F uft}ыf\EcV ӵhIRb_ "DboCv cFJ [I\.΃E 6ÈAPPzƉݧ*e ݄95> FpKr%1I]t|Ғ.k FwY-J;J1+:{,IlAsG^"Y/ǂ]gh.s*0d`y2Z̺hsbNjFK Zj0vd-fm9I Ri<_yb晹 ^"c5zrʒz$fym 3ˉu̘Mk3>̩)yt;q%'1܎~%bZ3N&=E֩/"П|$A;TRVcYl[R7 l[w$JƠM%[Itbظ\eY:JN֐Ο4l<@JXümk{QeDC(XѺEGRvo4$jP;6HE1{.hr]YAZ=~oc(91lm5ODĬ>|3k_>!8#3Ks1Bf(suN]M10EB}+u'+I\O3G/SdykMʍ¤5fWkղhn:&sIZr ]I{<$H oqA1F1 ov0\%]Ng4P290$LՇ[:hKXD˂!ˣ5"4ʍ i=b{ (i?3HA ]evfsoLk'?$ws:)لH&Ja@7tyڝiw"pt/6mh׶Q`ky Q2-,}dE6qrZԆOt@28yڝuRec}vH)mLR9Ԩ_Pߤ҆etYi[lxtgun-b\) ~~R,HM-c[k56*+"2əv# fކ bh'u0eR 6]?EQ2HO<@y5f7H'#hGsqFÔ煒h8~9jg.Ivvwd XXѓoRLZx)2^<' 2lђL:BTxw?/&{h5X]\92B_g;vMɬ9RL~H?wߚ%aVM1W錹hb͎bd"5YfkLEҢ) pΑ`CwmG D[>8̼E%GD*|X(/Txߟs#zW7жECՂxso~G Cw̶WsגU=,wG`^+$hN`oT8){LJQQw2GᐠE9M`kK}g@"t 5YX6C_m=ȹVae<% :a S֑8"4L_ 24x(ß,'L뿪:G m),{TQ04씻KzjvuJQX<.SȸV$mEWxBQE &V$lZ̲BCtxe$$ɋ;Q|wiDh ‡_!y%گjLۆy05Zo/yW6b7%(vZ><7`WϽC:WW HBa¾iTy5mT8Oj"v9lթtϕa–ŘmZɱkbR+Τu@0!kH_ e}v%2x 4T܏@5δ zĨd0}4s|O 29Z]~-؄kt=6 tzx?JK"d(т| CwpL%=sq/c8Dc4DJw&3 Y>^k+v` QHG)#b<=4Pw:2twJ@K16Zhjgmlp~8!n[Ȭ~٫PQ;qӟKCu5imGtRօT?kZ8,F6%[=ofQBаr8ҼH,Y aҖq^7͠4 Ώχ*ne[fn%*r6g~4:9oA@ΔUsZ |B4"}/NŊ<:wǒ>MOjJBVB_}q(:Ǚ ٔDŽg} s⮲0Ix PgaП"/wԙJff# USq|Ϛ,-yKln]k#Nwq7" \F/gL? dgj˪p؂gKCeB.VU.khS$q8<ڲcjJ4xۖF({ i`uo%Ty~: eWzkVvlx~$"9Wkn+Ei&N ]s ]<WtPAeƤ~󴺦lVp @/\TVc1$9uwb|ƔulT0m#lFp <4zv?ZԾd2.sZބ ûx7t_.QjEw1*r ƭqEN_V۰t҃wCe)$[X/>xҫ/T5mozL:@t*c4$:$UV1\I G .fw Y˧J(Y/GWgxyd{֌R: v-I8W70"5ҿޑՙR zN zɏ,ֵ hh-5 :=OYY,  ^TU) >]~jGS*"Gq zdēmŌ14ȓ$ߌ,(H,jCg]c/~KLzӃrFHϊ#,&0!tקmC6=[7g"1UiPH uw>p`xcC[~ˤqRi_ ]:e7| X <@Pw3oْYDqE-.<$Fxք=L':d{X<_O.;3i5VN+$A7=Z} ,!׻4<75|jkyj>/-fxR>H mKxkޙۨ:鷿*I14 fHf+p^S ԳY1ˇ!sVd޾#gL!ȕ5J5rdRL'~,A~RFY}hxڃaM*''9[PUv K_f>lT] lKIE)rrLbwO{ j!O19vL9##c򭬦!=ZHF<euΕ4 >ceZ¤B_ ҏY5KGq]ۑ, ~*х3`ORP߀1>CPvjvȀ3IvlO]+R`S#05P SYi60Kk9$v>MՏ̾_9CljK[_֢ݷ"NruĦ_7R-ʏE#f"&LCж suR(1h-0ڝf]6,yz`Q.99ݎMJQ&$]@L6.Gɟұ^&: }ʺ-PJX/yJZ[>7B(RQF{~m@Υ@)& EqUZbJO_/;c +Dm.D'=KQrCUnb8#m=6¶ 4cÖ{E1+~'ABH鯮 U穝&睆:w]&Σ'\ =,%`~ly>ϯ2IiEZv6"~OrCEgb(~eyvC22v4̭Wgz]7 [\KVJ(4*S{Aw %Ɲ~)CǞp.LP0]`aiJGfA5`r.IJGu@zJ68'`t\VwM+QcͰr9NlS I>MLpc9j74 \GVChb9Z[!|c:=s~$IUo݃AT= ȸ_Yl]b鉇;>=2nb!@]nO3z/zR]H"Ǽ+UkT!9H[o@S~@+ڙ|2QcZtzlpC-S' ($O4Fnk}v5eiݍj=@J!vT:eS0].2(0b[vq7z/ b%*F2Ua/ VwL.ӏ2]vEX<ӖP̭@ |Pxc7 F6Tִm42^ȸ~3@K/2 O;nq`}-Z/Р9c2?bG׏WQ3\p3SA+4"!$^R&<@BCW oY" yi6=@I[bGΑ] ?Vv09rƤRkB  6}SXm*kuWqF~r_ȑrY,_l<d~W!4nK+Ǜ-3!_>tޗ lovB|f; T)֐ 짻/Stj?yu18ӂo?с|Jb_=9]ADK6;-:nś\NSD+]f4{& <nIROjB\=J?Ɛl,`L{1I19ǝ_䬍b| q 2e.>8>Gq>,ژh@SYR0Wu*0 ؠZX67P4 %khn"iiEw7rԃ"k`ori-6駢;((yj#NHp'K4X.-c/i&?k6Fw()45n#\`64߀R n:{4tTd2jN%R򁊦y[GGlµ^L)0pT{˅.n98Mb`JsM"ӌ4۳ގ_abŢYJ .0MʅV,uC[YxLݬҘ^h8e q;0K KC{ [.Z)3~}k!MvlG aOx6b) n@/nOHP~@s'vڷ$J[ϱ+j4GaDVNLG괏vJ0x7a%_ g?ai?m&Rzkqaq3&tPE]OXi8 e9> Z^1eiu~$^`~JvO6gNtv6mফ*xi\jkyJ(h7b?NMঘt67GoW}.%o?nH3q^-Il^>jz*Vc\ˁ c\X\0Uq%cW Y(?vΖ֩-Qu_nJtڣ߫)KZ\Cxw0;ᙘWbbtuewhAЗ"|}p[)?f[3 Ĝ^(4ںkCP= $(V'րpzT$sRuGfx΀=q0 h1eY(zܣ ި8=&zvwS Q!caY~3HuʕY_h2w6Arۆ?o~ [z, 6yH7G佟`BKk?'s[$jwߓ/39a`^|utw$̨~cum:*A +=4TqoG9@,h1څT8.u_W?+Nt_I}wEs)v"0_W*pW!Dqs61U1m1Rk/2)=69Op2#Ny33 N~h-(,?\l*^]N@ ߅ uSőpWSpQe.U^"7dCZB^k TP(p}QA:uƛ4ߤ5wѥ' RrE*q] m@O/FJ"ՁaW (B /hmW%[t!QL}tݮ 6&[9 V2ꅺ4N^@+p#hցEA__H"CB%*|0igʡll5e{iKqԯ02p ޷w 1zNbڅŞ;D'tA-T EqzaH5 $dzVwDui#k1 ?ASb ⷂHŠ9\jo QnW]>[ZqWb1g"T%c0֢}5e|΋8"NJ IANKeD+GjWQ+Oh~j\|; ]A7Ea7'o@7.U,ʿN0oi3J*> :A}?6x[﹆/h2>^-H;QrhSda4w) / MĮx|}'a깈&n[6Bmfte Uk)NqՊHXbl5E 1ݏ"u&He𖱻aRmi,)}fS̯=jVT1ULTfUG=,+G$.-fcuGOn+F5 b zohG  RP} dG*#6%Y;W(;}ޅ ݊!ǹ,)nCJG.'* VA-Z':sH?+L9{nێ:i٦Ĭ+!"\GZ-~hj'1ui'i0ke:}:ʱTrյbQx3 3T$QͰ;wz4"OR&*1gdIؼuGBp٭":TQhpK lU){ȟ{oHељݎm ˞݌7ı Wxnv;^>UI,]x3T'-5 :ED@#ԚEA}TlkgI  Kqx|HY5= ʾ {4JLn.|Q{1 8q> ̗t(Q;;=^y@B2:&q|A3Xjݔs$2cΤ*>+ӕns5JEQUvȨwJG1~`m%qܼ}}A~25J0rJ|)Q#N`!CkIg'OMfn5+/e&HK2fQON*qZtɇ1/ +־%@+$;/pO͵CRҤ г}AXTdwﺬsԸ!8KHϧ:AG,afF]&b]h+qL/[>K'X+TUSӼ,P Hd/K3Qk q R]0Cn[v OM V[f{h8Nd}ިl2ebOmXLSi)2ŎDDԱŤQa%맒ɫ Djgf:ҏ~'-EW1=jtugH@!ưtUdƜ-NXEm?5K-+/j)*u `w\~ a1f7Zlm u۾ IQNu -RVCAS[2}LǴ`bfy ! M5 fSb٬rw3'>'1LTKS+2\j>o%@/Jxf)f9X/O_tJ>Iq(īT@s1m_h; HPq/j|.Mzdd7Y3<ݵOWR#_(5c[8e)aEF)R<4Y߻Tt4,y oRRr6Ʊp/݈Ɖ57'׊%ZZ)>ZQrg7|\C@`{V' y@?gB$`ῩxUYqݑ3)*0Y(5> 7 conÈ~h%9>~Ì̎hzvy,ԍuhAM܄ޙQo![-sx9}S.5Mю'X/+S'ۥ87,Ij1&]<0P!cqlt 0\)Y_Grr,=-)a灻eh9)tHӌk9t 6Z,!7샀R~1DRlh~U': zyVZ醁%\(7g_TG䡴J3!j^m|SyzxG&Rio7(=TƯiy@3r#CdV48j^.Q<ՊDYq) 7=ٌhiY8:s!{tVG#!mt+%ËHC+cD_"}>^tӕ"ayB0Ӏ#ebG~Zv@p0*؟+.-;Qix8k\_| ДRO6/Oܬ4t}QSMئzgg̜#q w:6jQ/{Dk;d6k傾;RdXCj;Zatu1vR4*]/s  ^#--o'S@CX[׎a s5(yu&@s(V apDQdn/0yH^BϯP.(g1fq8)0BHeVc@\. \t1ZT@>j!C$TeP,v^e@Q 7_<7y4a>v;#IeFMo?̨Sh^w %h%İ lplpyq0{󷥼.̮>X{9Qla8aE䫘 }2'"OoꚯS$!?r>tC $ mNlPIK a%HOzX c߲Bs8n=uYt:bgltzYc@2UJ0ԵV)xHm[ 7M3/q^LlZU޳jR)VdW8RWn[-Md]M2RܜS|ɂw ˩v;} sv:>Up1ڗ^LGo.y[c@p/m"@>#Ǎͬ(8h:=]`7ofD{ˬ(9JULk_G#(Anf%_͗xRG[Ɏܑr^}+27JU2"2ʹɏ v0 릘he3|;cCA,b$cTPAONR$T_@Eweޑα<Ʊۏ{tjR9k?+b])V0 B]G+}I H"e sh!>F2HgIgȂ(Pv 6mvE_nyE&p}hΎEd'>2>\C))ot9!<_~޼#׏"6` e ^ʂBk3sUh4,~7>M?q^~~,ʍ\B*f%66J7 Ӑ)]7 7|B`hPgI^@A(O (dӀێٳ62kĀb\=&%95%uEAl-+Ȱ^$ʹD]]Ǝ< rܷ~&XI%S2V@;0wOz;toɷfLMܘ飐÷#a+[!]sC-` < SElZv[wAxWC.yEMi9`YD ]>{X.'Yzz ˵D>"Kzuw顿3ɾ{vN[<04q>AK{Şեʥ}  %kI]4=!߻[pc@(Z$쏡Ŷh?cƀk {Bz``5vwh]ȩ6C;Ћ-Sh(A92j[r Jhh*ˣTev+9y󡽯CWYw)Dpo%=̅DSx`A#zHSOn _(9&R؉4pl,I9'4y1 %N6 }jIU6#!ZJ|atp:l[?q#kdv|7ơcxa7s~R %ICīI#tE=tYZS' \np}f!#ZwhE<8^c/VGtiwVg?iNLCT:YHtg į q0<^F?Tv[ vLh7JŷEϞ H7<[?,=V˹d8G_]k0iY[^6 HĵfJ+uO3F V`5WB/1H_ˇ7|_Ҷ'Wg+P.Y{: Œ v@7{sԺBoÈ"#'zFAC7"@Zj'a5G #qWL0C T mH Ck/pɆ?1.Pᮕvik_Ưo:B-rK(VD`Bd[{hոE{u&?K¸0] /sZ&cR( 0Z]MZg01^Cu)>9́[I V%S9U:'* }zpa2"|p1JmG@uk*ei|ްs-,a2_20<m nNl l;{'|谛↞%w_b~KR !}( QnJ[c&dE8ם_HlݺMyl IAq1`oI5{6Ó~ggoICB83m=BuCy%ms*ν,Юsx% ߙ [PS鈛EA֯~$x yGo )(*qb}; |yWN/ :a2Fx,$SFAʅvN۱ r.](Z ֎o- j$4Z]E/tDݨ`d-HTNVh 98K SK0`~';P`1m$5+C/8 RDg3>aJџ}̟ձ+5;lF{& Zub"nh2;;Kmԑ4ʐⰦ lx8Ouj=å򅡲\a`[AՖBo8R7OW7$O@lPB @XΪNoÇ EHvWft5[Bwj@ۺ8Ix Gk_`QdqяgYiG-jFpJ8Kݞw4/̶y+!0V>ܹR/}~MEjqYT;3Bz9O"Iuhy}UV6y u@as=7K xs^hZ)53t5bf`9 hrI I t+rKz{.in"Kl!YT)C:4swM"i-%uspܖK3#"Bhj^%z.q8')zqr;x~*oLQ㉒JחV)FmL;xYiyX[(0sj8cn=S:eOXK]F u@qe{+Rx}? - mɟXbD8bT2A`o?9EyFّ=Qirxdn9( $pޫbҰ΋bPW&#|U[E~ f!|ΚD F*#ŗ>쇎x!f. CgEXe\uNPz=-ybursupnpc郳=$\:}dPv1t&9r08dLxL`J؊١S,p;!QaVyr`fq\=MP"y(DR <C9FԐ4'ujŸ/-+U'҅ m*$;2;.©3k̔Y>VӋ2Oqԋ+Q"xǦ'}"X4$d?٢21DaǧwCOBr n8ewbJFI6$Dj~7gdb CRЮw\FD/щ,2D!M|\eT۴ITB7BAK\df1R$ Rd=#" =W;8CĤB}xr m!9͑DN283yͦ$kh֒zdoqlcmI7 3hfȒk9Ny[4\dfcmomuI`KGFo7 OrXX[:4+Y]VJ?p_8 W#RnSxz ;^kH[RfGlxbl+KEC2Xtk(2cq@iB4U]\%;T~r%jP}x[̿,U.^Ա gtcLD c9Z fnyD1~mcFyϓ° ,z\BY{:'{ r$T8Xi񟖗7Nghg\/Sm:iQ+la&m1\7*53Lxq,!~W`[ycmbÃ4ED{LAǦ|b˺ DMvSp yfz.\ldtHJj7iR?;IR%f#8!;76(IoI:|η_+F) P5X%ERk &Mpچ=僥oRJ@H5Lvf$?bZupH+W)M}h_uDagؕ#D@1om*JnDcRnb(]9x['7 ϰo |co e|Ȅi`b|KG-UhťT%cjߓYh.WȢΙܐ SGCzmsme9ޖhBȧ *@\G0KWŊߐY47̨s E-wt1h5H9Br.09Z0N3=vj|S8-:Kg}%ܙ AZh;Bs2RHZ@NV|;E;lAm}t ?7_W罌٭t ~9:oR>zTO>k{ .}]i.!r1g~/%; mPe TldX [S2\:Y2ťl k~ =|51i~f7\Gc_AOd7s42 LK/Pׄ!뵤S1=,@_?;>?"t5Vvp\vf岆2vg5HK,^1_XY50,xn~2:u@a&J /?fRֺArZ)khw ˥u)e`t>ݹſd#%pX {ٟ=@lvˆ4G?6rpԠ?h{ALz|*Z2 m +nk:Ƞ*4gXD ]P7ҁŝ׌?Û~SI?j&LP7@Au0Oy/H4+[ >$RIW[Ab߻ES1Ll52?%}ط@H93/tpbdqɖitI󷭽8ִ)vZSa (l_jߟ HAW{"=93VҮsmؼV pKMah ]+l\ve,VP{uU@ i+0]&\\;׻3JgEPL^PY|quk{IhFɗ`OU.HF T2LkIG:_@An$3 <+FWlzvUy'DCJR'vd WZ2 _oeǷ̉^Y ,ޖRnL||.h%yh'95e%W{4W{BtX|U(iS~oWYʸYxj |NY>أy/]ˮnm5k]S/sY1Q;:^*n$| ?.gIg#aViʰ"d뒐H_Y| 󊼏R1\6m{+:1&Ge"*tL;wke~o4۰EgP b*a7NOD ;Qz'r eM 1`_l^3 L3 $WbwPeba]fDJxQ%1Y2 k t AX 3v۫doqr7hNoRu7,#\˄/Gjf0O.#*#%>M/ӾuCUߴԤ[QrӼ5+ c)VDK`7sOتX V*]\ Y#|Ηh}BunZໍ,t0ʼҏf٢WMUx)OF[Tf60P8ab_]ŋ[/`$H⤭}d 45fGt'ڿT4H<$w3EN"> 6YU>*a=|S-3>pG0HٝP駶<:LfuJOߤvHSzȲ0N/CG(kt8 Qu32rZ ҟ q 9h*3)hlwIOfٟk-愈PBjDYܣ3B*=ecM8\oR4A1AsSZ_2ۛ5S|sOomC['PZɬz^98ej).8 4f1Ź0h.dz1ِyti-Y,YQfzCr s8PV  Ō$z$7{}h>@l`PBs,MhžtI=<bRo @!<0?V|0_Zuwk "%j,& *E >#xQEd|5&gi dΙ {uRBb6z*1T`)m{qX Du|g'D tO@heڑ.%OLuq8Z@}Y!ОڨU'l  W٭kl \Y|襬f{s K"BAc,r3pVGn8\peP:7ְo|#Tzzo;\'o" [ ̀ns)P "G^-s@}Io1۝ت;+u2S?xQi2֭e BvASL50Գ a@7"?52?Ϫxi"mʷ Uѭ!Ҥ8Hᝫ孆?$75 `g) Ysn,{ YΥ߄ ʑK"H[j!GJ/t?,/zrE˛tgdGE!W9گ)iu~?e~B^Yoc{qjlՓM3ntγѠtfԉ."gR㞙K9(#LG&~5@~td GS홡Aޱ,$2 ]cd}Cz XjEj'6;TNѭb⭛ReN֋W&Pg]9>y|)UߎeׅES͛5i'Q~>Է!%_γ8qj YSKhsc5:-$h%5j#K8YAX[_ɐ5{a]VHzee['/v%RMz_%DKi{ >riLc9Q/ y;! M۰DA*JymLJhIi:wgQLb,nb|/M{Kh\)n_=G]4, %ɪo:bXf1*өU1Ql"^y@NEM),"/#4K~wR8G0?J'/RPz ړSm:cd}]<&_UgW}+Fm,vKk}^ABr3\R0WrO9fgcjqK'1ld{dJ(lɖ*;,whe㕮Usxޕ.y$>bKŁ N{MWgV 5lGN$Jw-}69"=L[v&%& -I!AY=A,0R]1cr%F p;#̨h5ʒn5 G+D±E Jr7Ytmw&p#2$+h/.hnrHgX#u +Z/;cw}u^"0CSU͔8 ;AM2Y\%TϥΞ$:]c<魭;+OTqKgɪDޮk12P!6؛00 z45~dqlVsO+|UTӦ}s.s$vR@pM (W2^cm7(dq0\_h=Y1,jɟ}}|GxHC%gjdE|#5,ef)^.<_J>pT5#i2u[VR:0I㻟]|QڰLr/_Ud[yŤTur 6!h Ԅ~D3j7WÌ/说HsvRfOGH2Z9 e-- c.YH2r1 Dp m߷'vYێ|7,8SK7B:W1&*~k/4?Bo360e)A|[0*j/1:-zʲabkFw,?ѩ 2Z0h ;-6k Æ(c?UL|֝=&c$(UN !W#Yvx/Rs` &Ng{gzh7tiXŦEV7Q>Ldx$M(;cH| ,+gdvYPa`g}Y~DEf>a8J`թ;Wv&jCԘ {iQƧnUa0\+DP臾;dtFe\,*hIJ6IU_B/E"UDV*hX3D˿"~y)|꿡+)צO׬ \@=)SnKGT f_j%P %ᬗFѦqz8crn͏T5,n65jIK-py`ZZ*}XN\BfĬdu B w1L9:0G~7N._%+ b+ᄚ$C ۟aZЭW/mMKOӦgYip 2Г#apiOxkMሥ 2IMI提o_Ln sZҀ0=ʣ{'WГ$u1 &1'c7baVE.?O{ߑOMOȆ8*"UḻW! p#[Ii.?<L֢~B8dUxR⹾Ϻ by=I?ܹe&c+1׭ă#Hg iJSz>%5ݮ[@c dsqO թW~zZ%'1m;/ 0z9Prj $3P-_R(8n/^T#}u+(; ) > |3z9+5׺I9iGy{PɎIۻj~KK/F Z;si25!Ǜ#Ng+Q΃4YጄPxt lP'R~Jtt( ZlJ %J hY+W>(WV8RD->eC9Y rJ*_u] 'Uf5 pes `Z &zL&MՀ y}l{ E d) lhGFU$xPFwH-4oM%D n* I=:i{[2_@^!FGS<4,Z>dc#Ƣk\>T $# {aܥtyS7A0vH*o_nz$N/*8[NȇtGTƫi! E#_b"Y'GQg!z%CVFHBt%Hr͌ qpEԭ^(H~@iL0]l$0)5_%ީsO >_Zph/In'x췛WYr:Ibwfl0PeCL=)M>L`UVMu(4ACÒapجt_@F{`R4ER:/CCЃ:ZѸKqPp-^[l3Kq0B-CwhDlFZɀe/]*U!vLm XưxvUXRK#D06~⊓z?VxTzjtQ9N?D:1| c0/O@9~cxQ`< {-#CʰI ǯ4Q7$*fHX9x1J:wHU)u1#NlNkpbfv}P?9X5;8RO͛N)=\pfߥ4T3؈*G59H+n+-iO %.9+J?㔽7ڴɁ*&}|A||8>`2a2 AHwР4+P1QO].s. aEwhPdЩ?&zs!ZV~D'F4厝rRDDO<x~cЌmGX~9/-$Sֱ<@$&>}uHc .t>I@xIm7mcK]ջ}ur 9@Le4&xڨz._%.i'z@$`ssKS@mKWՋ? =}]~8Y6oqd0[:'/ u}+EEΞ0/_y0F3ee"t-rrxA;W:+e_&___p:oNI6 ZyC_ug\eFH&̛D=7YaLDY601 9ΠߨPIHD7rcsQOiK\a\3Z" 4hC>etɶAxr>͟C8OtlxiN"YAqlhfIb@Գudvͬ^e>RuWlZJ/kLM{-s,yf|^Ň!{ASJ@Q=Ҷ$wz*%v(c;Q[tk [qy4ZBٻt"dԔf373m.z2MC$>FoKDjj?;g{1՝ ,2ean@@Q4W*K-VByչ!Y*dM*:ec=MC Z4Ug6$}^Xs_0c޶QY37SFD]&xp%[D\ è%#\N MHX4v[d3t+hzD2=!3_ꈜ@ j]TX?esM.*a5sc)sw]W c7-Jm㖿H{N@Dp(]ӛX$?FP\ k_|\i#0:>e>G%bVj~rNօ' fG6TZ3 wb. 7%cOq;VƿEdxIX0_΢Sj dC;>-X%B(k[:7QϹW-ԊAݞ7 ?MFgȆ- )O5!Fw FlF]e8 JCfI0s)>-؏HZ,f'YĜrgtVx ] ԣ!Qw@ƒ~<'@m(h.JkIqOciD`˂bT2Dދ/W;C5EGnk&w^~i؏Hd4.퇦e(Ƴn>;!X\0o08sV_!v'},ӏY'/i AŮ]>w{ǤЄȃɮ{kT^v=3}w KBaK 끷4. ^b(L2*FDLROGc/,cYCvK;M\%J~stIXHBdnţUw 4fTon#k,xLսaRF*DBs,ЀH=Qӕg׶BB*q?Nۇб^%1u7Q<\ !]("ٝce3e`9麐n K71jz^7 _UFB# s+.Vg-.QvZ|ttPG^>:ʃK3旳KÕ t425x 3찪/ 5i@fyxU g@ 8wM┺Kū1&*nx]߄PͻP/W̔@L/Iu]5QԚ&mCCN-!:68(2z,MȮV@H$Tf%n 5 r9 Txf362j`51o=0u=cv A0P9ۼY]lPx_`L+pNYŚېtz@<~<2ɇ* DE\Ơ|D''M)ʀ;;SQ;p oLֈՑ'"ByVu5s.xg4ӯ.#xt4 (1;G`Ap03%Rbi$`{H1>.ş#OSUFѻ3""1s% )D"kXﰢn !,jM &$`'*Vf|yw8S{Yc;F%B8fhqɼ 4JE>Y`D`Edі/wzWꖇjݫhlt!'Vn&Ot %cذO`a$Gr|{&Ƭu:BFErMxTf&T.o y:bkL̨WJeW[71RZe笋.]TsJ-a}϶!V?C,f&kEz ,[m=!E:Z] v4K} oIP9]r;E[a5l)ixj7D:`N hX*k4wΨLC>NQP-p~(A,jMf#zk;֍yOzEWs:Cgn}L u  ͍ YZ