cobbler-3.1.2-bp153.2.3.1<>,Lb!M@eee6i$' 9 8~Vr&Fٙ&>Wl'D^yJv뙅8eH3B. ;Kr ^ i֢)g8BE4qTz{M ]hP.Ribabj>-@7GORQl‹yC&{8(a-AnӨ}XƱֆftVs™V D3잲٘?!m FL@?0d   5 $,0IRc |  lbb b $|b .b fb bXbBb%Hb | > (Ҋ8ҔX9X:KX=?>???@?B?F?G@bHIbISbXU|YUZU[U\Ub]_Tb^\bc6deflubvwXbxbyh>z`pt,Ccobbler3.1.2bp153.2.3.1Boot server configuratorCobbler is a network install server. Cobbler supports PXE, ISO virtualized installs, and re-installing existing Linux machines. The last two modes use a helper tool, 'koan', that integrates with cobbler. There is also a web interface 'cobbler-web'. Cobbler's advanced features include importing distributions from DVDs and rsync mirrors, kickstart templating, integrated yum mirroring, and built-in DHCP/DNS Management. Cobbler has a XMLRPC API for integration with other applications.bgoat053}SUSE Linux Enterprise 15openSUSEGPL-2.0-or-laterhttp://bugs.opensuse.orgProductivity/Networking/Boot/Servershttps://cobbler.github.io/linuxnoarchif [ $1 -ge 2 ]; then # package upgrade: backup configuration DATE=$(date "+%Y%m%d-%H%M%S") if [ ! -d "/var/lib/cobbler/backup/upgrade-${DATE}" ]; then mkdir -p "/var/lib/cobbler/backup/upgrade-${DATE}" fi for i in "config" "snippets" "templates" "triggers" "scripts"; do if [ -d "/var/lib/cobbler/${i}" ]; then cp -r "/var/lib/cobbler/${i}" "/var/lib/cobbler/backup/upgrade-${DATE}" fi done if [ -d /etc/cobbler ]; then cp -r /etc/cobbler "/var/lib/cobbler/backup/upgrade-${DATE}" fi fi# Create bootloders into /var/lib/cobbler/loaders # Other distros might also want to do that /usr/share/cobbler/bin/mkgrub.sh >/dev/null 2>&1 : 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 cobblerd.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 # Fixup permission for world readable settings files chmod 640 /etc/cobbler/settings chmod 600 /etc/cobbler/mongodb.conf chmod 600 /etc/cobbler/modules.conf chmod 640 /etc/cobbler/users.conf chmod 640 /etc/cobbler/users.digest chmod 750 /etc/cobbler/settings.d chmod 640 /etc/cobbler/settings.d/* chgrp www /etc/cobbler/settings chgrp www /etc/cobbler/users.conf chgrp www /etc/cobbler/users.digest chgrp www /etc/cobbler/settings.d chgrp www /etc/cobbler/settings.d/*: 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 cobblerd.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 cobblerd.service ) || : fi# This is mkgrub.sh cleanup (exeucted above in post): # remove linked and installed grub loader executables again if [ -e /var/lib/cobbler/loaders/.cobbler_postun_cleanup ];then for file in $(cat /var/lib/cobbler/loaders/.cobbler_postun_cleanup);do rm -f /var/lib/cobbler/loaders/$file done rm -rf /var/lib/cobbler/loaders/.cobbler_postun_cleanup fi : test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in cobblerd.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 if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart cobblerd.service ) || : fi fi`(&&p"c(lYre'kKh*+ p1I)xPs !jt c +v{{00//  ff LLTT}}*:*:$$ 55:%:%((ll++ ] ]bbO"O"B_B_ o o  00-Y-YEvEv X X* J DI <t(%7Ae BB     s sY  (  i KT --vv))E8E8 | |9N9N''rLrL4P)0[* <'L&++-- xx M0}//  +#LL##   1 ' c<< [k[k^"@?* 01##  16FD B0 (($V s seevv-(-(- K1  &;FD4!Q *5g8a5 7 1  M(>. !eHC}4%EPtADls$8 H, oA큤A큤A큤A큤A聠A큤AAAAAAAAAAAAAAA큤AAAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤AAAAAAAAAA큤A큤A큤AAAA큤A큤A큤A큤AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbb^$Db^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$D^$D^$D^$D^$D^$Db^$D^$D^$D^$Dbb^$D^$D^$D^$D^$Db^$Db^$D^$Dbbbbbbbbbbbbbbb^$D^$Dbbbbbbbbbbbbbbb^$Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb^$Dbbbbbbbbbbbbbbbbbbbbbbbbbbb^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$Dbbbbbbbbbbbbbbbbbbbbbbb^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$Dbbbbbbbbbbbbbbbbbbbbb^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$Dbbbbbbbbbbbb^$Dbbbbbbbbbbbbbbb^$D^$D^$D^$D^$Db @b^$Dbbbbbbbbb^$D^$D^$Db^$Dbbbbbbbbbbbbbbbbbb @b @b @b @b @b @^$Db^$Dbbbbbbbbbbbbbbbbbbb^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$Dbbbbbbbb @b @^$D^$Db @^$D^$D^$Db @b @^$Db @^$Db @b^$Dbbbbbbbbbbbbb^$D^$D^$Db^$Dbbbbb^$D^$D^$D^$Db^$Db^$D^$Dbb^$D^$Db^$D^$D^$D^$D^$Db^$Dbbbbbbbbbbbbb^$Db^$Db^$D^$D^$D^$D^$Dbbbb^$D^$D^$Db^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Db^$D^$D^$Db^$D^$D^$D^$D^$D^$D^$D^$D^$D^$D^$Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcb1a7a0b3842cdae22b7b9488c6421fc5e53b0245043122140ce446e49c2942c9910007cec20d8de07d1e96620bce41c4ae2d17bcffa23c969f46ea74098da8528e055434a15793c85cd8c4dfa54d6315575803b25532c93bd569f362ded943628e055434a15793c85cd8c4dfa54d6315575803b25532c93bd569f362ded94367e51a1caeca76d289b2b406f7d91ce6d278308adf05340f452769380ef6b76f47e51a1caeca76d289b2b406f7d91ce6d278308adf05340f452769380ef6b76f47e51a1caeca76d289b2b406f7d91ce6d278308adf05340f452769380ef6b76f4b732d4ffd9bd2310a450890d67f106c7f5f4743373a25bcdc6b799cd3efed903c90f53cf3b8c16e44746fe6f1de4ceb74de42a5a97620bdf7ac11e5688f158bbc90f53cf3b8c16e44746fe6f1de4ceb74de42a5a97620bdf7ac11e5688f158bb10a80aaf745405b4f2da4b28ccfb09f001a3da4a2f105cf1968ec69cfcef5974339ecded81af70498adf49293b0befcdb16d8799b884cf5f22dda728a9a7b79dc8eafaca957f19ccc8cf0783c43246ffced7a795d24106626fac5b3c31848006eeecc0ceee5e2b408796efd961b6e314b0af818be6afee536f714f5362a307d65892d1cdaa9f7094653e114c74d7ef67692d18d6373c75fe1ef67fdc91685bd3e8a202903007218eb02baca068d5ce2c7a577414d592f7571734a481d9c1cccb18dd7b5e5a2677990e9bbd81480470c639ce3e74962efaf336865e8795a8a26bb57ee0dde709f0a62a14bfc16a6049eeb16c5b998e013aa46c3e75347cdf3140c72ebbad70c3a7d4d93eee2258ad9252632ae327573cce0f85cac381a5de3cf73cd789b19bbcb65d6994dd105b6da2620d78575f6e79e042932260167a2b4723607d38e0b47f1a32db68308854582188748dc158916eff6418f6462c9c74df946833a132772b1c9c5390a60a5bd6f95cb4088c11f5c82bf60f7621541ae967cc5cd01bb980780f17850da3259ab5cc4f30f0e5797a189047598df617413926b06f23502885a3fb8a84fe520840e6f8fc7d1aceca59d41d9193b1c05dcc0eca5a79a3989bf82a9261cbfb0f3f3b5e93a15314b61390e8c1f571e642a361417ee543d54e3df2b8e15554150f1e2e4af7772913711eee386b96a156ec5bb0f1520ec26624ecb9485a5ba46d040a772206ad32189309641b2231282936d879b0e586708af5723f98e5297bf64bf98e89cee2fcbb9e024f4f4ec05bea9b103d3a3f4885653612fe093c76b4f62097998cd7f16c9c51faeb84485624036cc6f00141f3cb00b0acee56dac3e3dd201693e2d814a2dcffe355dfa28d3d3f68bcf09e84d4537efae81fbfcd7d9f6101381b6358a145f9988edfc706ee6382ab12be47ac9a2e29ec319a6f266b306e7e82a2def8e9107ec5587335c498c3a370336ded301f376d3c319c2bcf58397c636980cef63c5bef4d69e18076367212c468836a4c2014f3092af63f2e7c293cf67a5cee7a3887d1f035a0d077b041bf93793a47ac103f0bdf8dda0f4e9360aaecbeb4977e05596b66e631f9cc40bee68ae32d0c65c6a8a107c9ef600895c71f6e3e4168e1af4ab3bbd7862c7ca6d5d44fd2421f8cd31329ea7203407df783d1acb7d5b556a8211ac1f22dc60c9c49f0ddd09ec1d85d8656ef023ecbac01f423534bb9b7af16cd97d7825326c1acf95f1dde5dacafcbd07e41ccec94bdb5dd950d8230e179df932db521273ea82692b5016cf80e1f637012dc0a94d6a09038cd2439ad8f675433e7830af417f60d0aecd173db9604663c4404de139209618c3b6f8d05e4884c2afb0bfeacdeace9b2f26c63e1ea6200fee5d8ddcb41b64d976a89ff2e0d61e9063546aaa32c648a720e776ddca78b7937fc9b2529d0939912f41d4b88562adb4e85dd316817fc6d37a421c3f142e99bc790f40885509a17603c4f347420d89c27c56a7e4393f6cda4fa243b4cac829d390a8d8ab147de5f1fd13b6bef957e651b52816b97cc5d8dcc2802210f94e706353123faa1400980be6ed521f6982535e557b1e5bad18174ac6b76725688769036707253325174e2a6d5de02e6747277eae6a2f827a29e86b22b3b87ddfe248abdf014e53a4520fb7326dc987b8f96272fa445712aacc82a85d691dce947c7946b3e043447ae95a7ccc2d1d30b40494b426060178c2d6ac537935832451526a36b59f95b7fc0a296c32c81aa61050394038f6e04ecc6b27128b3eaf4d6544aed14dbe02959b94acbff5fdb6331cd70fb3b6cd2b864467113e6998a0945140839b1f02ed979f28cfebbe9351d41ed4ecd903c5c947c91211a01276c1a2e751581e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85584c6185a3821dcdef66b277548f92cad38eb88cee32d412e13d5d29dad3cc44de5600cca1123020f8e2d99bfcdd54772e314546e66585b097ad5be14dc56ab2addbd19d3a0967a9afcaab6b4df91758b21e4aa8600aae1d28a2dd7b78b156aee525d40cc0b9b5a7d3580e572f51dc2afdd87ee4fac5349ae3f9cd4f637e18aceb357470c7f40d5a5c8aeb5ed7b243de6d456fa3bb345f35910ca0cbe0a973daf3be2abde695191027e1c8621b08342afa4a474e677ee824b722920556aa409701643964c4e31553be1eb2c8878b51496d495b8ccc98054f107cc6d76b93b742dbde46f995b4133bc63f41b8d95ded0120a11b979618cc0978d5fef495bcd06a2acff111334d0aa2e23da57103564e8028c653d471f20b79fd07c57001d25270101ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b7272ad0375d9a827d89c6cea8a903b255547a7eea6030bc67406275045f1e74449027d62c2d6673549e894d24285c3ebd091e27ae46d281c5f9d5ea4cf0e04a6e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554255f09d39fc1c7c8a27776329ff03f362666919dabb50010801bf4fdc7ae64c4255f09d39fc1c7c8a27776329ff03f362666919dabb50010801bf4fdc7ae64c0e9c3f763e1c54081a501b53f7975d56d57cf280f1ecf81fb5b111177930f1cb57bd2921786139dd1e4d7ee7765c1ea0ea509c48adf517100990567a34cbc9fa3e30eb2494441f2093f158c4321de9ee69027a069b3f44d2a0c8478a041763435edea826e0b97d965735017bcacd75be652d65443be91262206151ffb233e484cec9a0f9dbf8ae8033d82cabf79fd768d2e9ba2b0f06cfef663d653c75c1e877d4a6ba60ceb43afd755a28fb241f8e21ecdb6de0e647e7ff117c4dbf3e9692054f6b333da9cec029bb62ea0d97ef6d3fdb4f1673604272cbdc8e29786318b13d4f6b333da9cec029bb62ea0d97ef6d3fdb4f1673604272cbdc8e29786318b13da1069ace5318c748fcbbdf02655c7efed4f36e9ef23b95853b6a32eb65bdb7ab98b9a9e5917454b06e79edfbe687f1405174873a52376e3f880f123baff552da2607ed65fc0ab5fa09dfb7af5f39614c11b3c84a36e7442da1b1ac3a5c1046be0c68c609dfb7d2c80f686aa5e0fd0a52d9def5b6ef17e5fde8e862b7ecc7a6812d0b65c3b610a9f1f24404dc24633551e836768db906d691f8f6ec27316c616276acd82e8fdddc596ce05cfb6bbd8b74bd9b4e509341b1b08c2db7713372c6946d53f860d0844cad81e8e36b8dfe05fad8a02c5016d8a06d74edc6535af1c3c1b4a4cd9056d24b29a67334904f0ee20be16849b5e2db925fd8646eb16f19f568ee6bdbde95347677959c8963446ec445366564c6cf193e340675c346639f873c1e904cbd6ce62447abda1eaad0e79dc62172981341893b82ff0db212810cee0e340317c547f4a2590ad4a46ef93dd15cd9a752c4164152702bcdf9ccb8adc6cd340317c547f4a2590ad4a46ef93dd15cd9a752c4164152702bcdf9ccb8adc6cd8e3f05dc97b2dc1bfa17fa265feabac38d7ad106409fb24ba77d1736db50acf482a5330156f240f1907339dfedaba51364eed9533968c4b9d02fddb9ca095e8b41cdb8658bb5086449391628513b9827429d39dad4a45f691c751bfd8a8d9fe562ff3b9ad3edd86e99a08dded74dcd7bf0896cc4230ccdb87e38ec15a582c41aa68db1612f0f8cf3096108ad22bed929b841508bf3be0f1d8c8d016bdbf320cbfb49b279c2c0dc678bd2c6e4adfe6f7a7c7c93ac9446abdc8ec54b9d25c93079f613542aa63373573351329184656b99cb3e517f343551c282140c91e0f0df353c50fb9d85a548368b2d4e0185edf981d29842a281de55480f7b1b6d76fa8de78d331c1de694b79b2cb42f34a439dffe098947796e1bcc5411faa0a6c387a10a247b0ed90768b06cbeefc34aa9e4b398797a52510e7ab9a295ffcc4b36ff6cbcd59cf50a3f2b078e6830ddb791e1de6d666725ddeab11ee2c59c4b17ea51afe79f04b8d2c5dd7c7102e5f7b7258495700f192406fc09d6892a5c06f44a79121ea908c99222ab6cfa5e9581c6acda9cb44ca721b6eeef18406e10f5e6a93efc58916b35b55958bd05841d786b14349929ff09d942f7ce1f8cdd75e7fe4099a24a27851c24a47abab087a9622aead64c580ebaac8b414123dde06cb3e313d10e5115b4794798445c68a4944b3299c76e6aff06d9ed455a4ad496a14e499c6b6616dcc0ab2da71a595b58434b6779d9db613d21afdf5d8e047053cfd717df76e7d32aed5208e41955c7e13c8fc0f55d70ab04be49a8e58d7b706a5644f7dec5b09d0599135d9e6080a18981d415208f5182324ce1aaa36c46113e9654a028ec1690d10b1e1241cd0e922909e34b253b6bff2e523771a0533392489b919bcb032feb8d8bc0c06c7a126dd56baaf690f3c6aca35f6d7bdddcef5ae99340711f3a8fa9b199f5da1109978d492a63e4951789d4bf9adcf83b437a9d6d01a9fd32af410216e3043224fced6257344dc4e825cbc2285a3491c0aaf9acf5b729e95b882caaf5a0331be1f718fdedf11c5a99fb16106f3bba54ca46f7cb39da727fc0943db96ccdc75d5ad91825054ec740aed5fcde7244127fb7e05ab331a72dce267613f880d5ea76c64ce6ea0a01b241cba1414f707c0e7b9f992455d3e0f4aa9a7b6e52795045fb826dcbd1f0ecbb2ce522e5842646f3ed6a6fe0a7ca8a98e4270d258a1d04667612e3c04bb140dab616503ebb11ff9505d57c5644cdd067fb8da9a6a5e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85535425e364f35ebb5c7585f6ec8dc5cdb8cb0705a4dae977929f0152eea3553fd35425e364f35ebb5c7585f6ec8dc5cdb8cb0705a4dae977929f0152eea3553fdce195e2d55ff154478a726a4a338872caacd4adde53bd24cd57b35e48d4e83c8e36ab6b68a45ccf7980a723c53ad0d0c535e548a36fbb170509a991f8dd39af7032b029be4a8db15988e7278d8281e5b672c3024cf35722ff431fdeb3b2548d624f383f04c11e8c28bd116503452773c66ef20742ae6ffc59805dffcb5caa26b0e1398950b6471d7c58da4f4617079b7de11512656507126aefebba21577539b94897ceff905c378bc87cb9406bb7935a5b722223a6b7915d9fe35a0586db30fb26e9a4ffbbd0c3c1950b7c1591bc6a7da1918bb70055688f2760244ed48afde1a33b4f35fca55b54fc83111f21d9fc6e0c7a767c66aff488f2a01a149db92e4d3976aed5a7a2369c6725dfdae07b260a66e8a236c60ebbe6446b922876248afe82daffa4426deb6cddda1cc7bd538db742884f2c12bc35b891d306a97df360f471426c5e7a41e18496d2510ed25cf81411fedad4e750fa7d0b16c206756a45880a83f296ad76dd632f32e852193ac50139f9aaaf2bfd0173d77aa9dad3133af56301c34dfebf94e7ddecbd9a10a1c9d74eae71abdda891d44b76ea328420cab02f7204528ad1ac279fced16f706d2bb4ff91b98b0c3ba1ee383c6797ac677cf567bb383233efe3726fcb7426af2b4fff2c9576c3f1c6aa6b839e9345bb0b65a330ffa7134d2e6fe806302dcbae30700236cf1f2fd44575afe84a3e0e531651601b9662c2ffc687a30fe05b767a77889e7d366392e86a904c9cb56ced2d69c955c92d9e4b003ad80fd285ac251d2722ceeca2e348bad841ae37724abc18e80b2ffd89a5a62d33da2090273a3cd6ba16aa6b0c9ff7ebd6ba1ee79463284e5ac168734cd171fe24233f859e158841d5d7dd540788e542b398c40f9fc54e5799c7dcbefbb0ecdf8175a1ebcee538239020ac31668c70d3afcf93dc6d5e937d195f18ad1b035b8bfd238ce235c0c9dc46dd80c3fafb71880f13776b0e0f2f6821ab4c5c6e80152721b6d26e569f1ecdbe9de9fd3999465a9d3b87d9e4975904c9d03234718b22a5b6c2986e9deae5750349a2df88aad05da13b5cf3ad887dcee690f792359e898e577987596664fb3168c7b1ee937bb034a710114490eb03ae53a24d11046a9b9e018f0da394c701e027b3a75a8fcc04007f00772e565fd138e4187fdffa9dfb74f454cfc82468de733d927ac60624af1b1a2155ec56da38cd1158166388f9d569e3aeb18fc0c536421d31e9356ca1935f2f4fbad8c12a785e02aa82977aab0396271878dbc400ec2cc40af45a58fa45d21c23791325ebbbae0d3c2c2800822707d3e8ded8648fe4a9c6e2984c8bd75bcaed029b81c6c32d0d73d08087b21dcc27882691ba7a324f160956074c377d33e3c8518b5658782ebc9df24078f65b0596cd1f0aea1cdd226a7c1d0c4e2193dfc3ad4bb6838f8f719e8cd31da955cd1487de06157e9150c572a6d8574bbd28b6909a918db1d5730577e7ddc01acf6626ae9e0cf8842e6356f2dc75207ea4de26911dc97727c8f203b045f2a8fab9c7ef44160f490f728ec6258fc0a86b3f3755e93b05fbf991c3cf2fc534fb5d7c634a2f40226e5a1d61a28b5b77d5f99d1439db695c75e02d85a6e5b1c6c903a224db77b9d7d1a897201d4b0179890206b9f4ac75716c3adb749a9c6fd4a1b0390da0e0fe945dc67f3bfe62a1eae4fe3b3aa9d9e7a1ab43f751332aceb15695e8e888b85afc899060e4cfb54b1b36a9f6b438fd1fe8ccef54fa1d1d5177844ce61eacd24146b8d4c5e48f81617f1e6c0a8e133a67c34fdb8c90ccdeda28f789ce8d0c4241b323d776aaa411adb0f0d616d424f97d5e5e2de2438e47963feda21c9902f59572dbadd37e9b4d5b7745954855d6cbc686fee63cc6212c0de28e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8552fa710320c6e72253ab1c52316a84866601c3e10b390b791aa973864db1a6a412fa710320c6e72253ab1c52316a84866601c3e10b390b791aa973864db1a6a41f5a98d0207e69912b87566648e9d47cd5a9b15d34da0349af6be88a294847062466c2df466059d04318f72d8d8805c36c12c29976c9a94af3e7fda204d0557f2e20688e07439b92f405be41776528ae0df2c10ed9f93b1c0633c7d0a6c81f1673c43fc1dec6cebea05069c73af8789dc511160f50f9b41c0d719ae7ce5f53403306d56a8ab6cdd6a1fb173e0be2e6c944f3f4035ad1f200fc2da7e0415a95ca2b8501f35cbe82b66ad578d550757364326a55fe5deccf3de87cd9665e3592e982672800ecec43fb25caaacc12586fcc8934892135b823326cd814c735b41c7b40c2be1a1f0487e50162e9a5ca07e84079de1ad563f27ddd3317c0d90cb634d2c705e7dad9f8fe322b9c50d5d96b632bd36195ee188598eece19c744a596fafb8a0a505eb9218707db31a1b9f4d92cebe50cd154718f22eaabdbbd5611b7234e378edc0b736b8b642b8dc25bcbc8b0ab2d2d6cf04a1e2fe57dd9736050cc94b559920d6d076a9a921803bdd035666d61c25ec9d13ed02f665a32d2b29c806d4932eb9b319cd38c346123bef8d3c9aeb495ec286576bc8a086ceb6706f9d394dad71dcad032b636f892e9268ed747f8381e85ec57d2f73e330316d4a10862a145c677d57b04efe64c24dd979d6e54e77ead8acb0fd6e85efc82d22c13cc76a1cf51cc04caa2228870eee57526c857c9acfdebc8ef538bfc498284aae8e46829ca2a7fc8e58942da14eb9550f755bcb2358cfc2085fdbc9681e633242b2fef9373dcbcfcd2eea43511c66160724a80ba2f05c51f6f8613d25bf06e8cd7ac216b3b5851eeecd13cac3911b06aea25e2730dbd4c66d1113dff49adb05de8f25b756de400ba764534b58b974ed912880ab6243eb2d9ff17c65ad3ce1f7b4fc438911ee3d280a9e1d3dfc052034400ee00061d0a01f6b1e6d4a0d2765efbb3a01f659bf298293d44b921cb34f45d3cb565df35dc445e02b12dc808314f2e877e4e71eccf35302a99f66a388c87772e0e78090cf88278976c8facb539c06d1f93d56757995d1e96f25dcadb9f6448d843898647013894c64ef3f4204aa7f86cbd36164b886b541b5bef8042cfa9550a63f7cffdd3c18968c5abcd71a3b09610a9531c22aa39f98447306178843c3a0de08deb1c8bd035d0b1f449903c85296e5c03487d8fa937b7f7adbf283392955393d46883a9eff7298c386a1f3435276d47f346d03019c87d4cbe0f7d80d146ea2844c6bd7fb691f6caac5653e439366aa8d81a09fffdbaa299e3f6311c898a0d049e6d07880f100dc81be42e162cefd3fb19be4eeaee2b2fd969acd38448d08ee6021ac840442a9af2cede6efcc16f0ba06ea127749d8c2c31c6e59f17eb88c8fefa8bf923e64ba364565dd0967e1464d3dcab55da4cfdf54275a8c41e71e2dfcbe19cb88883fdb974904bd9e0122f9a781098822ccc450edac0dae06b007111e16697004338a663a986caeb938120559d40379f76c2e38b35555af39443bddecc2fb62809fad4029bc02507c6f386a8fb92362eeeecccfb589614fca056a45cb2b6185c323422736bf01d378700963b990ddb8cce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85502d415a3b2871cdf2d607fdf630f012e049a7959e94f066e7135f6c59d2e3ac002d415a3b2871cdf2d607fdf630f012e049a7959e94f066e7135f6c59d2e3ac0ef65b2eaff8496befbf29b55b963a9650707114cc669a28a14e9bde33f2c4950674113113e6add80408683f190c76c638bc91d17afd1da767960aaaf5217399dcad534170efd3507c6e12efdc91e7b375311e529b31866a1abf8bf89edc43991ed1ebb63409e887646b74a4da54d6d73a9ea8b14bf26e6b903b3c9fc88732ce63a44ea2780759c511fad3a00ec609cece904bb513146fb960f6c410cdb9804b3787bb5ee886f187454645b080a438ac0e616de0d37e7d7ff82520902805c38593baaee5bd52c70499036f1f9981bbb3fefb4a67738d58e507a3d0f1581d2bdb9733eb6a868654d7a2c3445d1a1f2ab6799f5b283c9d1871c214a08563daf112af7599e2e460f78d8cf3f3f71f998bf4817ab6340b6781bfe0db0e6a534f41e74c1283df2bac6d9377b2ced95c2682cae0e2c7f2aa8725f585e789bfccf1263ce786c9f936f7314adb768b8f63d8a2e311cbdf4e04619660ad2d352c7edc0164f37bd42d4caef05c6fdf77b3ad5b8366147a8cab99a92df3fe908a873c31d16593bb78bbc5bb3e6e6cd8cfafc61318ff14ae61dc8f593f861233b484b3cdfe3144e9271c699397bfe336a8a0b9978e39504edcc4dfc510511c0a23b5b76bdacffd7ebd951ebd0fe21a20414b6e9bdb370d747edc80d4fd643df50a79fa03daf6a13e105ee1ea7b67367ed51760c4a82cafff71e31d6b66ae723653cd1bb3ec432cb03259de7504dda134abbeffd91a495d1c9e24a628bcc608cf0ddaf48d6fe8d5457d986e207a353c3d6dd51636c7e76bbef697ce9bc78317cb69407a3b1242fc10ec0ae78ea3e9e1ffad36aa0da4dffac98ebcaca7b80b244198d815eb4791b0d1d10cb5c127c7fda65e36620bded84a6d24c032bbd2d75f814d4476dbf7306c5d31c501a97993491065d30afbcce20b303589849ed9e8959df4f70db55efd9a3bf1b99309b7f9759dd4f6ccdbf9feba0b5b6493e571116ffdc78841af29bcce0b7799ed269f2fe5faf237518f5f628fedeacdd8a0b31bc372be95d723d04a69911873d0850f537da3363fa1f7339a50cd8f12345a832309bbfa42c74f49ffc21fcc4e8a3ec8312dca31fbe83816d374821e4db62bbbcc07008158d18ae2c2b535ea4e2b90a6c2fb6460968b3e5f7615eb5b878bdad69bc30b90724116aef23acd6a703c995d36b015c7987d60910d4b5dc65216eaf6a60ba419e40fb53ac9bc25e1049dbd111bbdef76713a1a6b29f6566847c13f01e92caf7af62aa0f357ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855da019f72bc7e80855556d607dce3db66e29f8209b7390bee987afcb6f5d84267da019f72bc7e80855556d607dce3db66e29f8209b7390bee987afcb6f5d842671e812b0d8d73b1b3aaf79e420637ae87236e35096cc902ac25334b3e41bd4c865c717dddddf17fff6321d0aa1bef06971bea2c57c1778a1235509b41503e088ba4696ab1f59421728dd799df8354ed30d5bb01d6b267a13b94f1562d2cedb53d523c525ceb55bcebd2ae6306b68e7513f4d935d16666efa25e96c920850a0db71ce00f2251fdc0f7d310bc588e89df5588a52ffd7cc920d0bea8bd44c0051a5ad8832cbe0b0289ff07524cf7577c50ae564237a489e499b0b7d08f6a74f7b551cc025975fb5117847af51aa426461415205cb5a06ec32aef3b2ff4d672852c3787b77280cd57215a4ab980c46441f4e03c2d5aa760ad06876433c7f37434e64ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e076c85d0f146d2333d0ff33032ef480dc5879c4c0ea51356c428066d203e4f6e076c85d0f146d2333d0ff33032ef480dc5879c4c0ea51356c428066d203e4f61a1ed599d1b2cb1abf9f639602d0689859888d0bcdd2bf2879bc1eec2a9f5ec13d0f11f222c2fe6b7afcfe8d3b62d57177cf9a68d2021e8c24247635db57c954ac1bdf8440ee4a5ed6e5558b132ae0ff2a317fbaf178b2e3151cfb24f3314b8440126685737bf23b583354a7b0100c0f926d35deb029722cd6011d7c1e7701b71b955da3d31652b0cbbfd1ad2771b9c2e1a422dce298111c73a308d9b6d877652cd2dc681f5ae5adf8c9792a92ba370e09e346ed4a0f386231053f1d8abd54e2d6ef169ac20d54a76a44043e62f492793baa9cd53a07d932ae32a49f3190bfb21afc0e480e719315f5b4b801360642db5bb1fe1d33af684559ea0c905e769345fe7234b1772e1846a1412e0593f59da977953c3bc3ecaabaaac88671bd52f5e01316e9126d2369a09c768c9111aec128fca512b046596524f928dc3072dc7d4f09dc5fbfda38fc1ef8a5c789b0f3b9ee45e62a1f4d92e1da320339f863b4dfd841ff972cc6887143f908e91d8a1e1b150c18dd0bb0311aa0642310093f2342bf5a0a47d305de97e107b337580ed00dcdc9cc807ef1605ca3168793a6ee74d5339e2a4dbad508932e6fbe0c63b048c2854b27a8645f3ae16113c58aa04f7bfd7745cdb53730910da607f372060a1d05ae7928cc2b472953f8749e75e2c960bdaa8b0c9e081933ca7ab37ac4660484e7d18af1a6e096bd527ce5e411a84926c3dc6805d8c521f4b2c02db61c963fb08e48330c650f2bc5c1c852a250f6825517d6f1b93b8c6474c86cd378161f948e8f4de1326bd07530b397031351bc52805db1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855bcf6da2424da26ed3d9aca42254b5eaeef618e70bacfcc759b9e918161b449d3bcf6da2424da26ed3d9aca42254b5eaeef618e70bacfcc759b9e918161b449d396c57955466322b1cbd924dc298e4fac943054852cc43d8f2c3f8215aa24a51c60cf3bb3fef8e0da4db4258f89f08e66b8f9a734dbf282db0f51f33273428e0e181419c11360cccf895d27e6ee9d9ad713608a54146e9fd24de9d62ab29bab05bfbfc70574bd0e1d5f567b995c422f10a31950918c70c464e02a3993ab3f5bccccb872082e797de0ba1f5ad011e631cef6d8934b9a0655c3540c92854d2a0fdf5121be93af7bde31abeafb925c7b51117252938e6b8393b6159d5372a1ba717e8b17696bf3b933f5407d62710c439aa3d7ae4a36bcd9fef12f0ab5c0be52afcfadc0ee4c56bc1439a893811bfa911381780b65a3714ec2663d818502eba76613cde1ef152659c561b6580bc9e0b2dff83f01dc2da514b288dbfdcd6fbc2944a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551fa07504c59ea85da403f738bcff4c333df693628a8ed8c95db89ce405ddc0991fa07504c59ea85da403f738bcff4c333df693628a8ed8c95db89ce405ddc0998f41bde5bed1ed85361ba6c5faea82c87954c2657810be50878a6e58b153a99572063edbbb4b757c2e142d3b3fb896c55f6a62e7f9b660313a8a9ea1d57629f7a82a128f31285e798bd05113a9ddb044ab59c2586dc4dca6305ece1f4e4c791bcaef76895417d3718db5f986a7d56bc113225921d00f7011dd98754e35c05905ab404626398133d12d86706ab3fb827b4ce5992c69aed7b2482c423a388fa157d450eade523d28324aeb949731d2fad4a77e7c43f4fe8f98493281c2a3e4bb53eef2e1accac04b11df5442cd8a656893b1449944a7287a59f893a35f1dabbf47230540f8e39dda1946f08ebf68ac4fcdaeb232a9d878a90654546d1644e459b094ca4deedd3195a4b5013d679590618e3a7593e01d5149a7e6996538bf5635569ce74bce94ef9250f66adca1b3fbbe338a3ac621e68735b3e7892b4bcadd1103e62a7978edd3b6b15fd8bafd34b78fef1c9757f35f189c2cab99385ef10e58a502b11ae6410507d5f1b3f863266a151716eac60afe87de81b1820ad300a4acd0f4fa4ab211fb144c20c9a13abb9118ede15278c654e818344e6be52cdb4faeba92397b1aa2ab382c6fa6ad526920e66e93e813d260626914a2de53cf2b0837d366e3b0a02eb0cb0094edd3f1da894fd9b6e5998dfb93500571fb02ba5f9076df009443e05079ccc95d8f7415ea69cf57da8884f09296297c3525409639f1c94116c1fb87f62d6fa6c01105a6804f034fb1c1946995de06225c2a455f75fed26b42aad9f26eb6fa83898d47cbf74166a5c37f0cf781b70f45e82077f2bd317805851fbef8414f0477f7c672226cfbe5ed95ee894cd004c2e760dfb99f299a61b35c18a0fdc00c76c1ca6a5aebeeb38958d1fe3115aa590996c904133dc50deeb1333f9ffaa037a1a612066fc1a0d64b0c253e4def02d39d9ef66af9e7bf6df3a9e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855519707249e8c7c4d0bffe09ca7d9c5a24adad497389ee31984986f29bdbec14f519707249e8c7c4d0bffe09ca7d9c5a24adad497389ee31984986f29bdbec14f54e78a34591247443a601db5c2a078247860a9143002712b94889eb2c11136e034166110f5c23aa96f95ed51fd4f1dadeb93a0a0d9e18cc4987e95ce7a2d86051a1e153365b82d6efc906b07bbc25c0ce7c1b841fce8f3e360354994474afce6e9bfcdc1bf1238d02d5e92122d7e02789be0969c0f25ad37e1e34e547aee5e8d4a29280f6d7f15def3ddbf967f5c52ec4935e30dcd41c13191f37204ff7952d4ccdaa7d671a7f03db2927116a67dfdfa1e0af0fbc764bd0c3bb374bf6a3c0ccf74f351c01929105bfffc272e71e9ceb70c1dd00c83ce8d4f1cacb1f55de54e7a283f0d1e3ef273e1d26524620d9cc7091fe498d4ad35c8ac27de9fe010c3a72c54a9b6ed68f403d97b40b4c4670b0bdbe05fd1a3f4199c56a86c6162473fe75c3632263c1420e9a621f4d23c2f059edeccfd31217e882fc4922e9682d6529f4b67112740d1ac0edb3caaaebb577c668bfd93a9242817753311700628601c4cce0e02f73a6f5eaf006bf40e48e99761f2e75a99073b7b56ab1fadd68bb1befcb2edf928df5eb7aa79d8cc64c670ce1b1baeb4f5715baf478aa18d2dba2233f406bc4ab6cde9557b614feab4b62f8e654183e7ca3976ab9a6603af426ffc264ef4a735bf5db69fb19fc2b1b02e201d3a173fb4c0da6e29f755ac244bd043ca185cf8f3921b4ddd76af45cab4bcd1881a01ad99c04232c3e04f7c1b4f27efa77dffcb04b39e8faecdd268b1ae7c528dca3fdad5edd9e909264aebb3a44e67dd6101fd8704e352fb5c0ecff46d4ec40a34ab8979f11f553cf4aa07b7f2b7a0990f6bf5d298589c09e7b72ea17543f2f8a3cc23c1d3cc3ad2eb7dcd0d6122ef93b35e48743d90b67ed3c966160637073b3c9792c766e7af4141d169ad9305e758c7905fe7e273bfc9b3a9235169f37b6a0e020f6c305a1f82d673504ac0793a8cc8c3763483a194f20f2c8a3fd07efde88f7885eb9f3f6a468171324aac89ef7427f24d60e4a245d17c8ee4803f974721f9a08d65c0b7f08cbb134032fe32b435320bb36acb76b32d2579702bd678b7ec42d9f2f53313cb289a23b45d80319fc4494f41ef49a43fbcb5ddb74904a34fa903b669d3fe2f1d4807c4c74ec306765ff5b1250b4582b392c1881a63010e8c16ebc2270be7de667f499c08b8544843086478f8da378794cef118ebbbeaa3784875611047d088774595f73689798b5b27a647e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85578bddd8e925427071308a1d1cf9f8c334f4684f311a8e4cf2ccb0e0d5caa664478bddd8e925427071308a1d1cf9f8c334f4684f311a8e4cf2ccb0e0d5caa66449bb9b7d7b39d6aeefffffdad954dc6c4b1965db76c2ef6a995c78d3a3148a025e1ae2dc41709251c22faa49b4ce4ba30bb53a9b42e258de1f3da7069a1ec815314da94cf8bab9b90024f7e26a763a48847ef3bb28cf028b5053953843a1c1a11ed28348fe20204d6f6d3e13d993b1d7c2dbb0191e8b98b1557d7666e2b505f33e9162625d9b75e4e4171b01ffbe0be0be3af55f0ed1fe3ca8e863c807d8ef5cee237a3ceb3c48dbac378c1437534a4e104be4cffde1861ee770db72555fe45fc7dcc199150441ea61887d72985949d1f892c9fb5dc4281fceef811159c213b9e2b3d383bf9ad7d30ea69dda7ae9ad908b69e53d534c053b77dc2b0f4549da0d2134e3817a31fcac44666fe1e41856cd77be5b82485eae6f46c60fb619eec3c1faa1e201c6d68e9e266f078c34e159331ac30344d00bdbcb4de7e12391e624b06c6237744895152a7d14e3222df254d1937a5cbea6fdcdb0863ab1e6335bada890a7b7fd5dcb1054938d33bcf59fd702ae28d74b35ec2a406a7a61bb006206b951117d0ea86dbdba78dbbb4f2e42bd693368ec7f4ab54bf23c2ab6017a954b1198c933e3d44d3b142f5a66d0fbacc9c9bdc8c9a85efd84931675618f27ad68c7424ba62f60a02b38fbcea43e8ad8d839e22d6e6bc504ddad96e54af9a1be6589447b5f1cff98f661155a0b876d3e1302f03deb278c05668e9ed00800fd144f6d4a3edaedffaefc3cfbb778f432514732ec2cd13b1b76c9a6d259b24e8f07f6acfeaf0061a4170baca4e3ef50b8626dde86998999a94be4bf55a822d82da547d72e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85521a7fc509f0bf5aeccfcc2302a9efde41987627afee56121b752f69bda64adb521a7fc509f0bf5aeccfcc2302a9efde41987627afee56121b752f69bda64adb59eeee196055e834f094b42dda38184394e7fd668e32c0f621ede5aa78e39a302a2180a9642e2de972777767122eeb95227347a7de64f987d50a371c66b12e21900058e58effaabbd0f0ca646ff8f7543c23780888cdf022ac3af74ede2e6aa89e2a4c80e3c28c1ad73259d7a1cf9410e201761b7b9e1240028513c3e41abfab2211f2967b86a3b4572e94b3453afba18d319450301ab5c2439fce9247a649f9bb5070bd438c885fd4e1596c5286429efdc543788cbda92b00d668d4d165d0f9e631099bfc33ef0f3189ea8b97a0611474c1d392f5b4b3450c7545cf31203b73a1672f9ab50da6c828ac336d8cc3f0492176b4bf6274f07a414f0e9253ae5bcd81508ea107a03d34734ad234e7815836597890658a6e8d059c58008f3e8e7c333ad29f4aa895caccba31d1b1a3f3eeb9aaa717746877325d9367b2660be2ce4dadef8d1a30fe96d352ca88b4edaff142613572ce7c38f9a8ec0653e70a9caeeb087dedea5056f3995bfee4ff11598124083ad4d6c6fedd6665add6b43a02fdd12a094018c345f8ef4f4efbe89d707c1dd237a00e5b83d18932415b7ce3452f09ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553815efdd63e24d7ce4b29840b160fa9b3f3cbb838d83bc46137020cd453e08323815efdd63e24d7ce4b29840b160fa9b3f3cbb838d83bc46137020cd453e08328f166c7b0951219dcfb640f0824150443d55d607deade5dba0a7e93add4f5cf561eace719a977db5b444b78f741513a2664419ceb257c9b8d1de676f2cf03bad1095fe6a1b2fca572c30a650ee4bceecce6b9c35046815392936ee6d3d92bc32b40b91119d9a2b646611bede71211d3bbba286e683f62c1cb50f6e6a6603771f52b10259b322bf818db3ccb5e47ae6adba06c50a22c71843c99e551b2a5f028aa22740a7d0ddadb97f5c105c70f045e6a3d95ed4445db504423d5272749d3df9e7b1b928c4b51118035a60f311686bc1919b6b10fd3e80005f87c9ef2e4af910526da59215f38db45b9f97f694d243578780473d5a396a9dabe16cd4fc2bd831b55b249ddd680c16a92ed22666f5cac44da48dcd70e51d178a6499ddd9560a63a675f172a71dfad73213127d16209b430202b1e3721e30ce45896a387a433d9b902788be4d7bb9f3922b6a20b90328e4ee90e33e66bc95cb3db6c82ab012ecd2acf3ca81b8781435b5c29b96ced01d761872faf53d9d191b03fa1a33880d23447ec263016b828507147ceffe66d943904547704f16f2dd4029aa5ac8a754208bf4ea339022f9101623c888dcbf9ff0d0c81188a2c93b127fe3c3e91097b998ed1492e98bb79a2b95b9b81a2d6f6a4b871280122acb35eabaf091971e36ac8b0eb84f130ba3cce16dc4b66d7bf1b0b3650cff43ed006d051e7501d77485abffb729ad03c038776e230ee7120f5dd4d004fc20f9daa723e710e355c6af147de2887619c753cac95d4740220223bde48a032606fcaccde5e546f9bc444c81ab356ddebb898ab172f8202ca3bf0bef5b54fa0469d618c1f4076081641f0a433f6c876ea6831240323f70b3262622a0a05450651ea6dd3d2454c362addfd98ddd42736d781e5a20b4702a199e1c180ba40341edc2f705035c3803df32de80751e32f5b786e1e543e861f51a3b9df6088e00d9110a5ed2117b8cdd595d74f4faba3bf01be00ea403922c9de878fe57d0a237cd8a6f0715295b219d19dc2ee06e72ffabe952e60f5856f4a0c4e255a6d03a34f0712f8c9bb2064f1a71fe3ce77eda3a7b920fea186bff7351c3979c194b62053351cb2e1d0ea3275152b1b1b2d78f5b28c2668d0751939658fab0e2734a607a49f598d6e79ff2786bd171c47b079de74280ba0fbac80ef1e3c5ced4cc8720f9fa5f71a949afca811dad3c88818238e57a05966470294eb6937512c26278d7512414dac90a3504bc9b6e1b9cb48a30fc2ccb34937843562dcad031abd69f2fe41c153ae08b807a2521c94e9358b699dea31566982628c3dfdef3f73826d0098aff6e7c48bdcfcf72283c2360eec22712909bbbeddf43c1b7c110a7086f599c98660d470e936fc3066163b78faf726a0c6458cefb65683ced652d95eaa29449038ca7918726a986031a1068cf20b11a1e75ccaf3b9347c772880c431995744d5bf68c10f9dfb4116e53737f1074e60e2c521ee1057972e6e01d7a2d1cceb352bc32e1f992bb0f32343d633fe242b62ce48075245453656daa41199f3cad4dae283fc3afa5887ccc3bfd25857d1165d3c364d51d288d044e814eeeee74e23fc9531ef7f9aa9953f60e4668cca8540cd291f4267ab6153d5a4657485895f54346275c448a65ce125f32f8023a0ae3c84fb5ee50fa8916dba5576c44931ccef5a15d305b965dbf71808c6f5ee912b63faa15dfe2f0da51e873436fb2d55c6bae79115293241a3b6edc3d30f40d588318f74fd911bec3a64773ebd1dff6594a4af9948997a3cbd95aaa0ebc52284164ee39853d3317caf536f442d134c64eb259b0274c3c4e2d89169c49ba635075fd453c0ca1625eb880b180c59eb2e29eab39c9be8a410f3e1e533be81889b6f9864d5eac6d9b4079a7df5a9266a61974e43294ad52545da23b437ff79a72a172eab79a2c1d9c45856ff2190cc95adc65e816b1672c495deeeb561c444d9601535750d7aaf7233a3e9df1044a01b200be0c39e0050f36189d988c67989f3a72edbaa71372b16fa421e003447d3dbed8b95670633b1986af879bfeea0c06cef7f2a10b22d508660b8e2d7595bb92fef06a5e93b2538a9686dffc97f881ea6089501f9792276dc8ebe3972a3ef0357030303d889bd3d1168ce6ed0e00b51cd3b210e5db7ec4c92ebae759ecfcf3e2797d230f0bcc84daaacbff798693b97684b991e5f9cfc951a24d50b2c71a474bac43e36362a827b20472a2c86053181b5a8aa93220aca5f07aa1dd1339c42ffa85cbc4356cfb2fd1df0225a271a1739e614b8db7ca4e3685239ffd5ec88e43a9b7537cb0ef04fc1f837b509ea2576226606cdbba1b393d64f4504c6212c1bdfb84d595b2bdb39409cdb8b17cb709e0b29da895f89c62fb21101b5cdf1c8d62e03823f6c3205c36c13c44273081687002a82e42bc48765f27351e7e5c89aa859e0bec4334b2ddbe1eb2cc6db2fed2cb596070d73da4e649344be76d5c2a43f5207c71b47754857460461d6d04179d0c79a14dd1f3d2dce9227b8dbfbbdcf8f5a4d1bfc9d729ef3bd2e8fffc522857abf0f7a9beaaf493e118484b9229c84962ece1633dca23a615c2328eedf7fc22fd4ea0a672153b6c9c070a98eba5c909fa60505e418b892bd119e99efd98efaaa00318a52b3404442c66a2f7bc55deabf4266b7ef0c21adc0e57fa97156b7451d21cb6cabb41f314aa314f03a75c666116973834c01777d0cb2e3648469a579c764a5fc5020db21759d54a29042a1c5a40f87611bcee4d06ca3b27009b76a0a604941f9a7d299d206daec17ae364ba079ebf2bf3e025e56f5a3fe2016567743bf38b798300f2941660993b83a051c53b5b6ed8b548db6de4e99c03a3a70f1cad98217968fb3a0a590d6cb16154b7512b810f0b7ddff98744ca01dd2f3bf78e2dba65573b602dcace2d02a57cd73b32570fbce2ae4e1605a24a4e49206c804d30bde0508f2c3626fc1ed3ae3f2c0f83f6c183a0f29cae058a6a368b88ce5193e44f95753f1fd0145c5dde75f119303fd618b130b5aa061a2d62ac97f1a3f587451e7ab95e3499bca80954e299af270665a06e3d7cac5cff73a0c941a219f5256bcea3a725d0b106ad31b66f034459576aeb92e515c8db9b1c81ceecff2af37498affe7b8847d2be47b4c0592951b5b1777079930b1231459cb2d8b4e545c6194a5b2270edb5616123346a62b61d2bbd2ba526608ebce9f0001e2950ea492401dbc4c6282007e7e900497dea7cd620ad19a595bb8ae6ba4ce027b86855901d1b4abfc0570cce2f7d64299fb060e69c96106628f0d96e09a6622a85b8b833361359bb44bed1d2a1f493fba219dce0ae2bddd64641f89f8b4a5d99f6711978338bedbfb3fb280108821263dab03ae18a57ccabea482852d2d673eac901419eddba3f60b696e2992322724e68b03ae18a57ccabea482852d2d673eac901419eddba3f60b696e2992322724e68d94cf51ff58e3bdcdb07bf2af677e6c829d46512ce8974b51909989c0575f3fd708ef035c01e7a5c603df9bbd019e6052aa3732ea5d7992f979e68c5e56342c613d1b942f5dcb01bf6721ca8a09943aa2ffa5ae3abee8b3484e05c25b31a7b6464d0e6464ff5447f44fee5ae44c68909f0599194914f9e28335104314e91b631ea8dd0986a9fe40152e181759c8606f7f96e6811f760d68262f7817765f1c5f5c7ed12725cff9a6881ac3ca33d805915611b906907d6ad731541b50c46520b3a1e978dfa24dfece325faf26b53c4cf539ae5c19a336b638aa532073fe87bce527efe61bd53eb439a7b2bc79d2ded582e7eb3756bf70c89af7de4f244c735c98fbbe4d5e284ecc67da095947f785576ae3bfe4543fbf151efa7abe8e8b09bc3710f244bdfdee726fb8ab5512817956f2979a7a54f9b6816311f7eebab924349a3f30764ffe43188ed28c076a60506b954fd75297d4053048ec4d19ac6e42d5622servicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootwwwwwwwwwwwwwwwwwwwwwrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcobbler-3.1.2-bp153.2.3.1.src.rpmcobblercobbler-nsupdateconfig(cobbler)@ @@    /bin/bash/bin/sh/bin/sh/bin/sh/bin/sh/sbin/service/usr/bin/python3apache2apache2-mod_wsgi-python3config(cobbler)createrepo_cfence-agentspython(abi)python3-Cheetah3python3-PyYAMLpython3-distropython3-dnspythonpython3-futurepython3-netaddrpython3-requestspython3-simplejsonpython3-tornadorpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rsyncsystemdsystemdsystemdtftpxorriso3.1.2-bp153.2.3.13.63.0.4-14.6.0-14.0-15.2-14.14.3b @_u@_F@_i@_`_[f_X_V _V _R,@_R,@^ϧ^V@^S^[]]@]]z@]@]]x]6\ \P\P\@\@\s@\s@\s@\8\@\C@\\\@\e\e\@\q@\\\\@\@\Y@\Y@\Y@\Y@\\\y\w@\s\k\eX@\Z@\P@@\?\?\?\8@[m~@Z@Z1@Z@Z@ZYY@Y{'@WJochen Breuer Jochen Breuer Dominik Gedon Alexander Graul Jochen Breuer Dominik Gedon Jochen Breuer Jochen Breuer Jochen Breuer Jochen Breuer Thomas Renninger Enno Gotthold Thomas Renninger Enno Gotthold trenn@suse.deJochen Breuer trenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.deChristian Vögl trenn@suse.detrenn@suse.detrenn@suse.deJochen Breuer trenn@suse.deJochen Breuer Jochen Breuer Jochen Breuer Jochen Breuer Jochen Breuer Enno Gotthold Jochen Breuer mantel@suse.demantel@suse.deMatei Jochen Breuer Jochen Breuer Jochen Breuer Michael Calmer Michael Calmer Michael Calmer Jochen Breuer Jochen Breuer Jochen Breuer Enno Gotthold Enno Gotthold jgonzalez@suse.comMichael Calmer jgonzalez@suse.comjgonzalez@suse.comtrenn@suse.detrenn@suse.detrenn@suse.deIsmail Dönmez trenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.depablo.suarezhernandez@suse.compablo.suarezhernandez@suse.comadam.majer@suse.depablo.suarezhernandez@suse.comjloeser@suse.comaavindraa@gmail.commihai.dinca@suse.commihai.dinca@suse.comtrenn@suse.depablo.suarezhernandez@suse.commdinca@suse.debwiedemann@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.comfcastelli@suse.commseidl@suse.demc@suse.dedmacvicar@suse.demc@suse.demc@suse.de- Fix issues with installation module logging and validation (bsc#1195918) - Move configuration files ownership to apache (bsc#1195906) - Make configuration files only readable by root (bsc#1193671, CVE-2021-45083) - Remove hardcoded test credentials (bsc#1193673) - Prevent log pollution (bsc#1193675) - Missing sanity check on MongoDB configuration file (bsc#1193676) - Incomplete template sanatization (bsc#1193678, CVE-2021-45082) - Fixed modify_setting test to complete successfully - Fixed Remote Code Execution in the XMLRPC API which additionally allowed arbitrary file read and write as root (bsc#1189458, CVE-2021-40323, CVE-2021-40324, CVE-2021-40325) - This patch introduces a regression where valid log data from Anamon (Red Hat Autoinstallation Process) uploaded to cobbler may be rejected - Avoid traceback when building tftp files for ppc arch system when boot_loader is not set (bsc#1185679) - Prevent some race conditions when writting tftpboot files and the destination directory is not existing (bsc#1186124) - Fix trail stripping in case of using UTF symbols (bsc#1184561) - Update spec file to satisfy current rpmbuild (>=4.16) and make the build on Tumbleweed work again. - Update tarball from upstream to remove the .pc quilt folder. - Fix string replacement for @@xyz@@ - Better performing string replacements - Added: * v3-1-2-incomplete-template-sanatization.patch * v3-1-2-log-pollution-1.patch * v3-1-2-log-pollution-2.patch * v3-1-2-log-pollution-3.patch * v3-1-2-mongodb-sanatiy-check.patch * v3-1-2-remove-testing-auth.patch * v3-1-2-fix-failing-test-after-cve-fix.patch * v3-1-2-arbitrary-file-read-write-plus-RCE.patch * fix_issue_when_inherited_boot_loader_bsc1185679.patch * prevent-race-condition-writting-tftpboot-files-bsc1186124.patch * fix-trail-stripping-utf8.diff * better-string-replacement-performance.diff * fix-string-replacement.diff - Modified (updated fuzz): * fix-for-old-str.join-usage.diff * remove-redundant-json-suffix.diff- Remove redundant '.json' suffix - Added: * remove-redundant-json-suffix.diff- Fixes usage of str.join() - Added: * fix-for-old-str.join-usage.diff- Add fence-agents package as requirement - Fix position of wrong endif- Add cobbler-tests subpackage for unit testing for openSUSE/SLE- Adds LoadModule definitions for openSUSE/SLE - Added: * load_module_apache_suse_fix.diff- Switch to new refactored auth module. - Added: * refactored_auth_module.diff- Adding tornado dependency for cobbler tftpd again.- cgi.parse_qs is deprecated. Using urllib instead. - Added: * cgi_parse_qs_is_deprecated.diff- Adds requirement for python-distro- Removes Tornado as dependency and only recommends Ldap3- Bring changelog in sync with Uyuni: - Fixes template engine selection(bsc#1170462) Fixed mainline by commit 33c769e99 D fix-template-engine-selection.patch - Fixes a template rendering error (bsc#1169779) Fixed mainline by commit 5e5ef6c8c D fixes-a-template-rendering-error.patch - use systemctl to restart cobblerd on logfile rotation (bsc#1169207) Mainline logrotate conf file uses already /sbin/service instead of outdated: /etc/init.d/cobblerd - Fix cobbler sync for DHCP or DNS (bsc#1169553) Fixed mainline by commit 2d6cfe42da D fix_cobbler_sync_for_dhcp_or_dns.diff - Signatures file now uses "default_autoinstall" which fixes import problem happening with some distributions (bsc#1159010) Fixed mainline by commit 33d181199f0da1da - Fix for kernel and initrd detection (bsc#1159010) Fixed mainline by commit 872f505f66c50059- New: * For the distro there is now a parameter remote_boot_initrd and remote_boot_kernel () * For the profile there is now a parameter filename for DHCP. (#2280) * Signatures for ESXi 6 and 7 (#2308) * The hardlink command is now detected more dynamically and thus more error resistant (#2297) * HTTPBoot will now work in some cases out of the bug. (#2295) * Additional DNS query for a case where the wrong record was queried in the nsupdate system case (#2285) - Changes: * Enabled a lot of tests, removed some and implemented new. (#2202) * Removed not used files from the codebase. (#2302) * Exchanged mkisofs to xorrisofs. (#2296) * Removed duplicate code. (#2224) * Removed unreachable code. (#2223) * Snippet creation and deletion now works again via xmlrpc. (#2244) * Replace createrepo with createrepo_c. (#2266) * Enable Kerberos through having a case sensitive users.conf. (#2272) - Bugfixes: * General various Bugfixes (#2331, ) * Makefile usage and commands. (#2344, #2304) * Fix the dhcp template. (#2314) * Creation of the management classes and gPXE. (#2310) * Fix the scm_track module. (#2275, #2279) * Fix passing the netdevice parameter correctly to the linuxrc. (#2263) * powerstatus from cobbler now works thanks to a wrapper for ipmitool. (#2267) * In case the LDAP is used for auth, it now works with ADs. (#2274) * Fix passthru authentication. (#2271) - Other: * Add Codecov. (#2229) * Documentation updates. (#2333, #2326, #2305, #2249, #2268) * Buildprocess: * Recreation and cleanup of Grub2. (#2278) * Fix small errors for openSUSE Leap. (#2233) * Fix rpmlint errors. (#2237) * Maximum compatibility for debbuild package creation. (#2255, #2292, #2242, #2300) * Fixes related to our CI Pipeline (#2254, #2269) * Internal Code cleanup (#2273, #2270) - Breaking Changes: * Hash handling in users.digest file. (#2299)- Removed not needed files in obs. This is now all mainline: D logrotate_cobbler D fix_hardcoded_libpath_for_websession.patch D fence_ipmitool.template D cobbler_management_mac.diff D AUTHORS - Added source files: A cobbler.obsinfo A cobbler-rpmlintrc D exclude_get-loaders_command.patch Spec file is mostly adopted to mainline spec file. Still it is not directly extracted from mainline tarball. First the remaining diff has to be submitted mainline. - Change group to Productivity/Networking/Boot/Servers - Disable any python_*_dependency_generator macros According to Tomas Chvatal they are much too experimental yet in OBS to be used. They have to be undefined, because of a half baken implementation in SLE 15 SP2 build env (defined but not properly implemented). At some point of time the introduced undefine python_*_dependency_generator will be conditionally removed via suse_version.- Updated to version 3.1.1. * Introduce new packaging from upstream * Changelog see below - New: * We are now having a cross-distro specfile which can be build in the OBS (#2220) - before rewritten it was improved by #2144 & #2174 * Grub Submenu for net-booting machines (#2217) * Building the Cent-OS RPMs in Docker (#2190 #2189) * Reintroduced manpage build in setup.py (#2185) * mgmt_parameters are now passed to the dhcp template (#2182) * Using the standard Pyhton3 logger instead of a custom one (#2160 #2139 #2151) * Script for converting the settings file from 3.0.0 to 3.0.1 (#2154) * Docs now inside the repo instead of cobbler.github.io and improved with sphinx (#2117) - Changes: * The default tftpboot directory is now /var/lib/tftpboot instead of previously /srv/tftpboot (#2220) * Distro signatures were adjusted where necessary (#2219 #2134) * Removed requirements.txt and placed the requirements in setup.py (#2204) * Display only entries in grub which are from the same arch (#2191 #2216) * Change the name of the cobbler manpage form cobbler-cli to cobbler back and move it to section 8 (#2188 #2186) - Bugfixes: * Incremented Version to 3.1.1 from 3.0.1 * S390 Support was cleaned up (#2207 #2178) * PowerPC Support was cleaned up (#2178) * Added a missing import while importing a distro with cobbler import (#2201) * Fixed a case where a stacktrace would be produced so pass none instead (#2203) * Rename of suse_kopts_textmode_overwrite to kops_overwrite to utils (#2143 #2200) * Fix rsync subprocess call (#2199 #2179) * Fixed an error where the template rendering did not work (#2176) * Fixed some cobbler import errors (#2172) * Wrong shebang in various scripts (#2148) * Fix some imports which fixes errors introduced by the remodularization (#2150 #2153) - Other: * Issue Templates for Github (#2187)- Update to latest git HEAD code base This version (from mainline so for quite a while already) also includes fixes for "bsc#1149075" and bsc#1151875 These patches are mainline already: D kopts-utils-path.diff D item-repo-import-fix.diff D no-system-in-kopts-call.diff This patch is going to be submitted mainline: A cobbler_management_mac.diff - Fix up manpage creation: Do not zip manpages ourselves Thanks to namtrac.- Fix for cobbler import and buildiso (bsc#1156574) - Added: * kopts-utils-path.diff * no-system-in-kopts-call.diff * item-repo-import-fix.diff- Update to latest git HEAD code base (commit fbebd758) - Adjusted manpage creation (needs sphinx as BuildRequires)- Switch to openSUSE latest_mulitarch_work for shortterm until everything is in place and submitted mainline - started to switch to Sphinx manpage generation, but comment out. SuMa people must have done this already somewhere. - Already mainline: D fix_module_renaming.diff- Fix cobbler sync for dhcp and dns enabled due to latest module renaming patches- Update to latest git HEAD - Fixes permission denied in apache2 context when trying to write cobbler log - Fixes a bad import in import_signature (item) - Fixes bad shebang bash path in mkgrub.sh (used in post section)- Now track Github master branch WARNING: This release contains breaking changes for your settings file! * Notable changes: - Now using standard python logger - Updated dhcpd.template - Removed fix_shebang.patch: now in upstream. - added -s parameter to fdupes call to prevent hardlink across partititons- Update to latest v3.0.0 cobbler release - Add previouly added patch: exclude_get-loaders_command.patch to the list of patches to apply.- Fix log file world readable (as suggested by Matthias Gerstner) and change file attributes via attr in spec file - Do not allow get-loaders command (download of third party provided network boot loaders we do not trust) A exclude_get-loaders_command.patch - Add apache min version requires to 2.4 (due to mainline commit: 31a1aa31d26c4a096f0e0 Remove apache IfVersion tags from apache configs - Fix Tumbleweed build where python2-Cheetah3 and python3-Cheetah3 are build for a while by changing (Build- and) Requires from: Cheetah3 to python3-Cheetah3 - Setting test package group to a valid one - Fix test files to be added to test package, not only the directory - Remove general dir from file section: %{_datadir} - Fix test package requires missing Requires: python3-pytest python3-pyflakes python3-pycodestyle - Mainline fixes: 3172d1df9b9cc8 Add missing help text in redhat_management_key field c8f5490e507a72 Set default interface if cobbler system add has no - -interface= param 31a1aa31d26c4a Remove apache IfVersion tags from apache configs- Updated to latest git master branch commit d43461b39073ac01a54a3f52be0b133d36cb8061 Author: Jochen Breuer Date: Fri May 10 16:41:32 2019 +0200 Remove already mainline patches: D fix-login-error.patch D remove-newline-from-token.diff D fixes-distro-none-case.diff D return-the-name-of-the-unknown-method.patch D call-with-logger-where-possible.patch D fix-http-status-code.patch D create-system-directory-at-the-correct-place.patch D remodeled-distro-detection.diff D disable_nsupdate_enabled_by_default.diff D power_system_xmlrpc_api.patch D renamed-methods-alias.patch D changes-return-to-float.diff D revert-redhat-management-removal.patch D add-docker-integration-testing.diff D refactor-unittest-to-pytest.diff D renamed-methods-alias-part2.patch D changes-detection-to-distro-like-for-suse-distributions.diff D rhn-mngmnt-key-field-fix.diff- Re-enabling build for cobbler-test package.- Integrated fixes that came in from mainline from other products (to calm down obs regression checker): CVE-2011-4953, fate#312397, bsc#660126, bsc#671212, bsc#672471, bsc#682665 bsc#687891, bsc#695955, bsc#722443, bsc#722445, bsc#757062, bsc#763610 bsc#783671, bsc#790545, bsc#796773, bsc#811025, bsc#812948, bsc#842699 bsc#846580, bsc#869371, bsc#884051, bsc#976826, bsc#984998 Some older bugs need bnc# references as well: bnc#660126, bnc#671212, bnc#672471, bnc#682665 bnc#687891, bnc#695955, bnc#722443, bnc#722445, bnc#757062, bnc#763610 bnc#783671, bnc#790545, bnc#796773, bnc#811025, bnc#812948, bnc#842699 bnc#846580, bnc#869371, bnc#884051- Fix for redhat_management_key not being listed as a choice during profile rename (bsc#1134588) - Added: * rhn-mngmnt-key-field-fix.diff- Fixes distribution detection in setup.py for SLESo - Added: * changes-detection-to-distro-like-for-suse-distributions.diff- Moving to pytest and adding Docker test integration - Added: * add-docker-integration-testing.diff * refactor-unittest-to-pytest.diff- Additional compatability changes for old Koan versions. - Modified: * renamed-methods-alias-part2.patch- Old Koan versions not only need method aliases, but also need compatible responses - Added: * renamed-methods-alias-part2.patch- Add the redhat_managment_* fields again to enable templating in SUMA. - Added: * revert-redhat-management-removal.patch- Changes return of last_modified_time RPC to float - Added: * changes-return-to-float.diff- provide old name aliases for all renamed methods: - get_distro_for_koan => get_distro_as_rendered - get_profile_for_koan => get_profile_as_rendered - get_system_for_koan => get_system_as_rendered - get_repo_for_koan => get_repo_as_rendered - get_image_for_koan => get_image_as_rendered - get_mgmtclass_for_koan => get_mgmtclass_as_rendered - get_package_for_koan => get_package_as_rendered - get_file_for_koan => get_file_as_rendered - Renamed: get_system_for_koan.patch => renamed-methods-alias.patch- provide renamed method "get_system_for_koan" under old name for old clients. - Added: * get_system_for_koan.patch- Bring back power_system method in the XML-RPC API - Changed lanplus option to lanplus=true in fence_ipmitool.template - Added: * power_system_xmlrpc_api.patch - Changed: * fence_ipmitool.template- Disables nsupdate_enabled by default - Added: * disable_nsupdate_enabled_by_default.diff- Fixes issue in distribution detection with "lower" function call. - Modified: * remodeled-distro-detection.diff- Adds imporoved distribution detection. Since now all base products get detected correctly, we no longer need the SUSE Manager patch. - Added: * remodeled-distro-detection.diff- fix grub directory layout - Added: * create-system-directory-at-the-correct-place.patch- fix HTTP status code of XMLRPC service - Added: * fix-http-status-code.patch- touch /etc/genders when it not exists (bsc#1128926) - Add patches to fix logging - Added: * return-the-name-of-the-unknown-method.patch * call-with-logger-where-possible.patch- Switching version schema from 3.0 to 3.0.0- Fixes case where distribution detection returns None (bsc#1130658) - Added: * fixes-distro-none-case.diff- Removes newline from token, which caused authentication error (bsc#1128754) - Added: * remove-newline-from-token.diff- Added a patch which fixes an exception when login in with a non-root user. - Added: * fix-login-error.patch- Added a patch which fixes an exception when login in with a non-root user. - Added: * fix-login-error.patch- Remove patch merged at upstream: * 0001-return-token-as-string.patch- change grub2-x86_64-efi dependency to Recommends- grub2-i386pc is not really required. Changed to recommended to allow building for architectures other than x86_64- Use cdrtools starting with SLE-15 and Leap-15 again. (bnc#1081739) - Update cobbler loaders server hostname (bsc#980577) - Update outdated apache config (bsc#956264) - Replace builddate with changelog date to fix build-compare (bsc#969538) - LOCKFILE usage removed on openSUSE (bnc#714618) - Power management subsystem completely re-worked to prevent command-injection (CVE-2012-2395) - Removed patch merged at upstream: * cobblerd_needs_apache2_service_started.patch- Checking bug fixes of released products are in latest develop pkg: - remove fix-nameserver-search.fix; bug is invalid (bsc#1029276) - > not needed anymore - fix cobbler yaboot handling (bsc#968406, bsc#966622) - > no yaboot support anymore - support UEFI boot with cobbler generated tftp tree (bsc#1020376) - > upstream - Enabling PXE grub2 support for PowerPC (bsc#986978) - > We have grub2 support for ppc64le - (bsc#1048183) fix missing args and location for xen - > is in - no koan support anymore: bsc#969541, bsc#924118, bsc#967523 - not installed (bsc#966841) works. - These still have to be looked at: SUSE system as systemd only (bsc#952844) handle list value for kernel options correctly (bsc#973413) entry in pxe menu (bsc#988889) - This still has to be switched off (at least in internal cobbler versions): Disabling 'get-loaders' command and 'check' fixed. bsc#973418- Add python3-requests and removed old python2 requires: Requires: python-PyYAML Requires: python-urlgrabber (originally from jbreuer@suse.de) - Add explicity require to tftp, so it is used for both SLE and openSUSE (originally from jgonzalez@suse.com) - Moved Recommends according to spec_cleaner- Require latest apache2-mod_wsgi-python3 package This fixes interface to http://localhost/cblr/svc/... - Use latest github cobbler/cobbler master branch in _service file - cobblerd_needs_apache2_service_started.patch reverted, that is mainline now: D cobblerd_needs_apache2_service_started.patch - Only recommend grub2-arm and grub2-ppc packages or we might not be able to build on factory where arm/ppc might not be built - Remove genders package requires. A genders file is generated, but we do not need/use the genders package.- Cleanup with spec-cleaner- Update to latest cobbler version 3.0 mainline git HEAD version and remove already integrated or not needed anymore patches: D cobbler-symlink.diff D detect-parallel-cobbler-sync.patch D escape-shell-parameters-provided-by-user-on-reposync.patch D fix_subprocess_sp_encoding.patch D fix-os-release.patch D disable_not_relevant_checks_bnc_828453.patch D update-outdated-apache-config-bsc956264.patch D cve-2018-10931-forbid-exposure-of-private-methods-in.patch D fix-broken-tests.diff D fix-manpage-creation.patch D do_not_use_grubby_compat_when_grub2_is_in_use.diff D fix_hardcoded_libpath_for_websession.patch D looking_for_cobbler_order_changed.diff D grubby-compat.diff D fix-restart-paravirt-xen.dif D koan_old_cobbler_compat.diff D fix_shebang.patch D catch_cheetah_exception.patch D fix-script-endpoint-security-bug-1030582.patch D cobbler_web_config.diff D fix-koan-port-guessing.dif D cobblerd_needs_apache2_service_started.patch D fix-powermanagement-status.dif D check-access-token-when-calling-modify_setting-api-e.patch D fix_sle_detection.patch D fix_test_create_systems.diff D fix_subprocess_sp_encoding.patch D cobbler-2.4.2-reprovision-rhel-on-suse-bnc883487.patch- Serial console support added, did some testing already Things should start to work as expected- Add general grub2 support- Put mkgrub.* into mkgrub.sh- Add git date and commit to version string for now- Add grub2 mkimage scripts: mkgrub.i386-pc mkgrub.powerpc-ieee1275 mkgrub.x86_64-efi mkgrub.arm64-efi and generate grub executables with them in the %post section* * Backported fixes from SLE12 SP3 - build server wants explicite package in BuildRequires; use tftp - require tftp(server) instead of atftp - cleanup: cobbler is noarch, so arch specific requires do not make sense - SLES15 is using /etc/os-release instead of /etc/SuSE-release, use this one for checking also - Add: * sles15.patch - add sles15 distro profile (bsc#1090205) - Add: * add-sles15-distro.patch - fix signature for SLES15 (bsc#1075014) - Updated: * add-sles15-distro.patch - fix signature for SLES15 (bsc#1075014) - Updated: * add-sles15-distro.patch Missing fixes ============= This SLE fixes are missing. The reason for this is that koan got split out into a separate package, these changes (changelog entries) therefore are not relevant for this package anymore: Koan specific: - fix koan wait parameter initialization Added: * fix-wait.patch - Fix koan shebang - Add: * fix-usr-bin-env-bash-koan.diff But these patches still have to be double checked and probably applied to current cobbler sources. The patches are still added in the package, but do not get patched. If this work has been done, these changelog entries should show up in the * * Backported fixes from SLE12 SP3 section above to please maintenance and "factory first" release checking tools: cobbler specific (still have to be done): - Escape shell parameters provided by the user for the reposync action (CVE-2017-1000469) (bsc#1074594) - Added: * escape-shell-parameters-provided-by-user-on-reposync.patch - detect if there is already another instance of "cobbler sync" running and exit with failure if so (bsc#1081714) - Add: * detect-parallel-cobbler-sync.patch - do not try to hardlink to a symlink. The result will be a dangling symlink in the general case (bsc#1097733) - Added: * cobbler-symlink.diff - fix kernel options when generating bootiso (bsc#1101670) - Added: * cobbler-buildiso-list-to-string.patch - Refreshed: * cobbler-symlink.diff - fix service restart after logrotate for cobblerd (bsc#1113747) - rotate cobbler logs at higher frequency to prevent disk fillup (bsc#1113747)- Forbid exposure of private methods in the API (CVE-2018-10931) (CVE-2018-1000225) (bsc#1104287) (bsc#1104189) (bsc#1105442) - Check access token when calling 'modify_setting' API endpoint (bsc#1104190) (bsc#1105440) (CVE-2018-1000226) - Added: * check-access-token-when-calling-modify_setting-api-e.patch * cve-2018-10931-forbid-exposure-of-private-methods-in.patch- Escape shell parameters provided by the user for the reposync action (CVE-2017-1000469) (bsc#1074594) - Added: * escape-shell-parameters-provided-by-user-on-reposync.patch- Use cdrtools starting with SLE-15 and Leap-15 again. (bnc#1081739)- Cleanup of the spec file.- fix creation of manpages: option '--release ""' resulted in empty man pages - added patch: * fix-manpage-creation.patch- Update to latest stable version of cobbler (2.8.2) * many changes since 2.6.6. see: https://cobbler.github.io/posts/ - rebase patches * koan_old_cobbler_compat.diff * disable_not_relevant_checks_bnc_828453.patch * update-outdated-apache-config-bsc956264.patch + potentionally fixed in 3d4db162c7b7c0fe7de00c30fcb81798b7db5039 - remove fix-cobbler-loaders-server-bsc980577.patch * fixed in 77328c0b05d37878f13704efa31e4daa162fda12 - remove vendor-files.tar.bz2 * use built in manpage instead of vendored one * add cobbler_firewall_settings to package root - use py macros to do installation- fix script endpoint security bug CVE-2016-9605 (bsc#1030582) Add: * fix-script-endpoint-security-bug-1030582.patch- fix setup.py to identify SUSE OS correctly bsc#1046679 Added: * fix-os-release.patch- Recommend fence-agents for broader power switch support- Update cobbler loaders server hostname bsc#980577 Added: * fix-cobbler-loaders-server-bsc980577.patch- Update outdated apache config bsc#956264 * update-outdated-apache-config-bsc956264.patch- Replace builddate with changelog date to fix build-compare (bsc#969538)- Added 'fix_test_create_systems.diff': fixes the "create_systens" unit test- Fix runtime dependency: ensure the yaml module is available.- Install the right cobblerd.service file- Do not ship cobbler_web.conf inside of the cobbler package, get rid of part of our patches to setup.py,- Added new patch required to fix the broken unit tests: * fix-broken-tests.diff- Removed another no longer needed patch: * fix-textmode-for-SUSE.dif- Update to latest stable version of cobbler (2.6.6) - Removed no longer needed patches * bnc_877009.patch * cobbler-2.4.2-Fix-koan-s-get_insert_script.patch * fix-broken-tests.diff * fix-initscript.diff * suse_config.diff - Fixed old patches to apply against the new code: * catch_cheetah_exception.patch * grubby-compat.diff * setup_py.diff- Fix the broken unit tests- Created sub package for unit tests- use fdupes only on SUSE- Fix for re-installation of machines on SLE with static network configuration (bnc#883487) - Added patches: * cobbler-2.4.2-Fix-koan-s-get_insert_script.patch * cobbler-2.4.2-reprovision-rhel-on-suse-bnc883487.patch- fix port guessing in koan (bsc#855389) * fix-koan-port-guessing.dif - add "copy-default" option to grubby-compat (bsc#855389) - handle elilo in SUSE (bsc#855389)- fix wrong option "text" in SUSE environment (bsc#901058) * fix-textmode-for-SUSE.dif/bin/sh/bin/sh/bin/sh/bin/shcobbler-nsupdategoat05 1645186736  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]`abcd3.1.2-bp153.2.3.13.1.2-bp153.2.3.13.1.2-bp153.2.3.13.0.99  !!!!!!!!!!!!!!!! ""##################""""""""$$%%%%%%$$&&''''''''''''&&&&(())))(&&*+++,-.//01111123456789999999988:::;;;;;;88<<<8===========================================8>>>>>>>>>>>>>>>8?@AA@BB@CC@DD@EE@FF@GG??HIIHJJHKKHLLHMMHNNHOO?PPP?QQ?RSSRTTRUURVVRWWRXXRYYZ[[[[cobbler.confcobblerauth.confboot_loader_confbootcfg_esxi5.templatebootcfg_esxi51.templatebootcfg_esxi55.templatebootcfg_esxi60.templatebootcfg_esxi65.templatebootcfg_esxi67.templategpxe_system_esxi5.templategpxe_system_esxi6.templategpxe_system_freebsd.templategpxe_system_linux.templategpxe_system_local.templategpxe_system_windows.templategrublocal.templategrubprofile.templategrubsystem.templatepxedefault.templatepxelocal.templatepxelocal_ia64.templatepxeprofile.templatepxeprofile_arm.templatepxeprofile_esxi.templatepxesystem.templatepxesystem_arm.templatepxesystem_esxi.templatepxesystem_ia64.templatepxesystem_ppc.templateyaboot_ppc.templatecheetah_macrosdhcp.templatednsmasq.templategenders.templateimport_rsync_whitelistisobuildiso.templatelogging_config.confmodules.confmongodb.confnamed.templatendjbdns.templatereportingbuild_report_email.templatersync.excludersync.templatesecondary.templatesettingssettings.dbind_manage_ipmi.settingsmanage_genders.settingsnsupdate.settingsusers.confusers.digestversionzone.templatezone_templatesfoo.example.comcobblerdbootetcgrubimagesimages2ppcpxelinux.cfgs390xcobblerdistro_mirrorconfigimageslinkslocalmirrormiscanamonanamon.initpubrenderedrepo_mirrorsvcservices.pycobblercobbler-ext-nodescobblerdcobblercobbler-3.1.2-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtrequires.txttop_level.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycapi.cpython-36.opt-1.pycapi.cpython-36.pycautoinstall_manager.cpython-36.opt-1.pycautoinstall_manager.cpython-36.pycautoinstallgen.cpython-36.opt-1.pycautoinstallgen.cpython-36.pyccexceptions.cpython-36.opt-1.pyccexceptions.cpython-36.pyccli.cpython-36.opt-1.pyccli.cpython-36.pycclogger.cpython-36.opt-1.pycclogger.cpython-36.pyccobblerd.cpython-36.opt-1.pyccobblerd.cpython-36.pycconfiggen.cpython-36.opt-1.pycconfiggen.cpython-36.pycdownload_manager.cpython-36.opt-1.pycdownload_manager.cpython-36.pycfield_info.cpython-36.opt-1.pycfield_info.cpython-36.pycgrub.cpython-36.opt-1.pycgrub.cpython-36.pycmodule_loader.cpython-36.opt-1.pycmodule_loader.cpython-36.pycpower_manager.cpython-36.opt-1.pycpower_manager.cpython-36.pycremote.cpython-36.opt-1.pycremote.cpython-36.pycresource.cpython-36.opt-1.pycresource.cpython-36.pycserializer.cpython-36.opt-1.pycserializer.cpython-36.pycservices.cpython-36.opt-1.pycservices.cpython-36.pycsettings.cpython-36.opt-1.pycsettings.cpython-36.pyctemplar.cpython-36.opt-1.pyctemplar.cpython-36.pyctemplate_api.cpython-36.opt-1.pyctemplate_api.cpython-36.pyctftpgen.cpython-36.opt-1.pyctftpgen.cpython-36.pycutils.cpython-36.opt-1.pycutils.cpython-36.pycvalidate.cpython-36.opt-1.pycvalidate.cpython-36.pycyumgen.cpython-36.opt-1.pycyumgen.cpython-36.pycactions__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycacl.cpython-36.opt-1.pycacl.cpython-36.pycbuildiso.cpython-36.opt-1.pycbuildiso.cpython-36.pyccheck.cpython-36.opt-1.pyccheck.cpython-36.pycdlcontent.cpython-36.opt-1.pycdlcontent.cpython-36.pychardlink.cpython-36.opt-1.pychardlink.cpython-36.pyclitesync.cpython-36.opt-1.pyclitesync.cpython-36.pyclog.cpython-36.opt-1.pyclog.cpython-36.pycreplicate.cpython-36.opt-1.pycreplicate.cpython-36.pycreport.cpython-36.opt-1.pycreport.cpython-36.pycreposync.cpython-36.opt-1.pycreposync.cpython-36.pycstatus.cpython-36.opt-1.pycstatus.cpython-36.pycsync.cpython-36.opt-1.pycsync.cpython-36.pycacl.pybuildiso.pycheck.pydlcontent.pyhardlink.pylitesync.pylog.pyreplicate.pyreport.pyreposync.pystatus.pysync.pyapi.pyautoinstall_manager.pyautoinstallgen.pycexceptions.pycli.pyclogger.pycobbler_collections__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccollection.cpython-36.opt-1.pyccollection.cpython-36.pycdistros.cpython-36.opt-1.pycdistros.cpython-36.pycfiles.cpython-36.opt-1.pycfiles.cpython-36.pycimages.cpython-36.opt-1.pycimages.cpython-36.pycmanager.cpython-36.opt-1.pycmanager.cpython-36.pycmgmtclasses.cpython-36.opt-1.pycmgmtclasses.cpython-36.pycpackages.cpython-36.opt-1.pycpackages.cpython-36.pycprofiles.cpython-36.opt-1.pycprofiles.cpython-36.pycrepos.cpython-36.opt-1.pycrepos.cpython-36.pycsystems.cpython-36.opt-1.pycsystems.cpython-36.pyccollection.pydistros.pyfiles.pyimages.pymanager.pymgmtclasses.pypackages.pyprofiles.pyrepos.pysystems.pycobblerd.pyconfiggen.pydownload_manager.pyfield_info.pygrub.pyitems__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycdistro.cpython-36.opt-1.pycdistro.cpython-36.pycfile.cpython-36.opt-1.pycfile.cpython-36.pycimage.cpython-36.opt-1.pycimage.cpython-36.pycitem.cpython-36.opt-1.pycitem.cpython-36.pycmgmtclass.cpython-36.opt-1.pycmgmtclass.cpython-36.pycpackage.cpython-36.opt-1.pycpackage.cpython-36.pycprofile.cpython-36.opt-1.pycprofile.cpython-36.pycrepo.cpython-36.opt-1.pycrepo.cpython-36.pycsystem.cpython-36.opt-1.pycsystem.cpython-36.pycdistro.pyfile.pyimage.pyitem.pymgmtclass.pypackage.pyprofile.pyrepo.pysystem.pymodule_loader.pymodules__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycnsupdate_add_system_post.cpython-36.opt-1.pycnsupdate_add_system_post.cpython-36.pycnsupdate_delete_system_pre.cpython-36.opt-1.pycnsupdate_delete_system_pre.cpython-36.pycscm_track.cpython-36.opt-1.pycscm_track.cpython-36.pycsync_post_restart_services.cpython-36.opt-1.pycsync_post_restart_services.cpython-36.pycauthentication__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycconfigfile.cpython-36.opt-1.pycconfigfile.cpython-36.pycdenyall.cpython-36.opt-1.pycdenyall.cpython-36.pycldap.cpython-36.opt-1.pycldap.cpython-36.pycpam.cpython-36.opt-1.pycpam.cpython-36.pycpassthru.cpython-36.opt-1.pycpassthru.cpython-36.pycspacewalk.cpython-36.opt-1.pycspacewalk.cpython-36.pycconfigfile.pydenyall.pyldap.pypam.pypassthru.pyspacewalk.pyauthorization__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycallowall.cpython-36.opt-1.pycallowall.cpython-36.pycconfigfile.cpython-36.opt-1.pycconfigfile.cpython-36.pycownership.cpython-36.opt-1.pycownership.cpython-36.pycallowall.pyconfigfile.pyownership.pyinstallation__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycpost_log.cpython-36.opt-1.pycpost_log.cpython-36.pycpost_power.cpython-36.opt-1.pycpost_power.cpython-36.pycpost_puppet.cpython-36.opt-1.pycpost_puppet.cpython-36.pycpost_report.cpython-36.opt-1.pycpost_report.cpython-36.pycpre_clear_anamon_logs.cpython-36.opt-1.pycpre_clear_anamon_logs.cpython-36.pycpre_log.cpython-36.opt-1.pycpre_log.cpython-36.pycpre_puppet.cpython-36.opt-1.pycpre_puppet.cpython-36.pycpost_log.pypost_power.pypost_puppet.pypost_report.pypre_clear_anamon_logs.pypre_log.pypre_puppet.pymanagers__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbind.cpython-36.opt-1.pycbind.cpython-36.pycdnsmasq.cpython-36.opt-1.pycdnsmasq.cpython-36.pycgenders.cpython-36.opt-1.pycgenders.cpython-36.pycimport_signatures.cpython-36.opt-1.pycimport_signatures.cpython-36.pycin_tftpd.cpython-36.opt-1.pycin_tftpd.cpython-36.pycisc.cpython-36.opt-1.pycisc.cpython-36.pycndjbdns.cpython-36.opt-1.pycndjbdns.cpython-36.pyctftpd_py.cpython-36.opt-1.pyctftpd_py.cpython-36.pycbind.pydnsmasq.pygenders.pyimport_signatures.pyin_tftpd.pyisc.pyndjbdns.pytftpd_py.pynsupdate_add_system_post.pynsupdate_delete_system_pre.pyscm_track.pyserializers__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycfile.cpython-36.opt-1.pycfile.cpython-36.pycmongodb.cpython-36.opt-1.pycmongodb.cpython-36.pycfile.pymongodb.pysync_post_restart_services.pypower_manager.pyremote.pyresource.pyserializer.pyservices.pysettings.pytemplar.pytemplate_api.pytftpgen.pyutils.pyvalidate.pyweb__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycfield_ui_info.cpython-36.opt-1.pycfield_ui_info.cpython-36.pycmanage.cpython-36.opt-1.pycmanage.cpython-36.pycsettings.cpython-36.opt-1.pycsettings.cpython-36.pycurls.cpython-36.opt-1.pycurls.cpython-36.pycviews.cpython-36.opt-1.pycviews.cpython-36.pycfield_ui_info.pymanage.pysettings.pytemplatetags__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycsite.cpython-36.opt-1.pycsite.cpython-36.pycsite.pyurls.pyviews.pyyumgen.pycobblerd.servicefence_ipmitoolrccobblerdtftpd.pycobblercobblerbinmkgrub.shsettings-migration-v1-to-v2.shcobblerAUTHORS.inREADME.mddeveloper-guide.rstinstallation-guide.rstquickstart-guide.rstcobblerCOPYINGcobbler.1.gzcobbler.conf.5.gzcobblerd.8.gzcobblercollectionsdistrosfilesimagesmgmtclassespackagesprofilesrepossystemsdistro_signatures.jsongrub_configREADME.grubconfiggrubgrub.cfggrub.cfglocal_efi.cfglocal_legacy.cfglocal_powerpc-ieee1275.cfgsystemsystem_linkloadersscriptspreseed_early_defaultpreseed_late_defaultpreseed_nochroot_late_defaultsnippetsaddons.xmlautoinstall_doneautoinstall_startcobbler_registerdownload_config_filesdownload_config_files_debhosts.xmlkdump.xmlkeep_cfengine_keyskeep_fileskeep_rhn_keyskeep_rudder_keyskeep_rudder_uuidkeep_ssh_host_keyskoan_environmentlate_apt_repo_configlog_ks_postlog_ks_post_nochrootlog_ks_premain_partition_selectnetwork_confignetwork_config_esxnetwork_config_esxinetworking.xmlpartition_selectpost_anamonpost_install_kernel_optionspost_install_network_configpost_install_network_config_debpost_koan_add_reinstall_entrypost_run_debpre_anamonpre_install_network_configpre_partition_selectpreseed_apt_repo_configproxy.xmlpuppet_install_if_enabledpuppet_register_if_enabledredhat_registerrestore_boot_devicerhn_certificate_based_registersave_boot_devicesuse_scriptwrapper.xmltemplatesdefault.ksesxi4-ks.cfgesxi5-ks.cfginstall_profileslegacy.kspowerkvm.kspxerescue.kssample.kssample.seedsample_autoyast.xmlsample_esxi4.kssample_esxi5.kssample_esxi6.kssample_legacy.kssample_old.seedtriggersadddistropostprefilepostpremgmtclasspostprepackagepostpreprofilepostprerepopostpresystempostprechangedeletedistropostprefilepostpremgmtclasspostprepackagepostpreprofilepostprerepopostpresystempostpreinstallfirstbootpostpresyncpostpretaskdistropostprefilepostpremgmtclasspostprepackagepostpreprofilepostprerepopostpresystempostprecobbleranamonkicklogsyslogtasks/etc/apache2/conf.d//etc//etc/cobbler//etc/cobbler/boot_loader_conf//etc/cobbler/iso//etc/cobbler/reporting//etc/cobbler/settings.d//etc/cobbler/zone_templates//etc/logrotate.d//srv/tftpboot//srv/www//srv/www/cobbler//srv/www/cobbler/distro_mirror//srv/www/cobbler/misc//srv/www/cobbler/svc//usr/bin//usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/cobbler-3.1.2-py3.6.egg-info//usr/lib/python3.6/site-packages/cobbler//usr/lib/python3.6/site-packages/cobbler/__pycache__//usr/lib/python3.6/site-packages/cobbler/actions//usr/lib/python3.6/site-packages/cobbler/actions/__pycache__//usr/lib/python3.6/site-packages/cobbler/cobbler_collections//usr/lib/python3.6/site-packages/cobbler/cobbler_collections/__pycache__//usr/lib/python3.6/site-packages/cobbler/items//usr/lib/python3.6/site-packages/cobbler/items/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules//usr/lib/python3.6/site-packages/cobbler/modules/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules/authentication//usr/lib/python3.6/site-packages/cobbler/modules/authentication/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules/authorization//usr/lib/python3.6/site-packages/cobbler/modules/authorization/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules/installation//usr/lib/python3.6/site-packages/cobbler/modules/installation/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules/managers//usr/lib/python3.6/site-packages/cobbler/modules/managers/__pycache__//usr/lib/python3.6/site-packages/cobbler/modules/serializers//usr/lib/python3.6/site-packages/cobbler/modules/serializers/__pycache__//usr/lib/python3.6/site-packages/cobbler/web//usr/lib/python3.6/site-packages/cobbler/web/__pycache__//usr/lib/python3.6/site-packages/cobbler/web/templatetags//usr/lib/python3.6/site-packages/cobbler/web/templatetags/__pycache__//usr/lib/systemd/system//usr/sbin//usr/share/bash-completion/completions//usr/share//usr/share/cobbler//usr/share/cobbler/bin//usr/share/doc/packages//usr/share/doc/packages/cobbler//usr/share/licenses//usr/share/licenses/cobbler//usr/share/man/man1//usr/share/man/man5//usr/share/man/man8//var/lib//var/lib/cobbler//var/lib/cobbler/collections//var/lib/cobbler/grub_config//var/lib/cobbler/grub_config/grub//var/lib/cobbler/scripts//var/lib/cobbler/snippets//var/lib/cobbler/templates//var/lib/cobbler/triggers//var/lib/cobbler/triggers/add//var/lib/cobbler/triggers/add/distro//var/lib/cobbler/triggers/add/file//var/lib/cobbler/triggers/add/mgmtclass//var/lib/cobbler/triggers/add/package//var/lib/cobbler/triggers/add/profile//var/lib/cobbler/triggers/add/repo//var/lib/cobbler/triggers/add/system//var/lib/cobbler/triggers/delete//var/lib/cobbler/triggers/delete/distro//var/lib/cobbler/triggers/delete/file//var/lib/cobbler/triggers/delete/mgmtclass//var/lib/cobbler/triggers/delete/package//var/lib/cobbler/triggers/delete/profile//var/lib/cobbler/triggers/delete/repo//var/lib/cobbler/triggers/delete/system//var/lib/cobbler/triggers/install//var/lib/cobbler/triggers/sync//var/lib/cobbler/triggers/task//var/lib/cobbler/triggers/task/distro//var/lib/cobbler/triggers/task/file//var/lib/cobbler/triggers/task/mgmtclass//var/lib/cobbler/triggers/task/package//var/lib/cobbler/triggers/task/profile//var/lib/cobbler/triggers/task/repo//var/lib/cobbler/triggers/task/system//var/log//var/log/cobbler/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protectionobs://build.opensuse.org/openSUSE:Maintenance:17400/openSUSE_Backports_SLE-15-SP3_Update/dda69cfa166ad305ff2d42a2b4464a22-cobbler.openSUSE_Backports_SLE-15-SP3_Updatedrpmxz5noarch-suse-linux                ASCII textdirectoryObjective-C source, ASCII textnews or mail, ASCII textemptyPython script, ASCII text executableBourne-Again shell script, ASCII text executableASCII text, with very long linespython 3.6 byte-compiledPython script, ASCII text executable, with very long linesPython script, UTF-8 Unicode text executableBourne-Again shell script, ASCII text executable, with very long linesUTF-8 Unicode texttroff or preprocessor input, UTF-8 Unicode text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)exported SGML document, ASCII textHTML document, ASCII textXML 1.0 document, ASCII text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=RRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRRRRԞ 6 :E Êgbash-completiongrub2-i386-efigrub2-x86_64-efilogrotatepython3-ldap3syslinuxutf-83474313705871ca9e39c0ec9f733de340d28000b2dfb2c7cd59733c513a0f289?@7zXZ !t/]"k%nnHI jB>y챬)Zɴ1M-Br鑓b &NB!}fFQ2M˕ܸ]7] f㬉̴lORN).p_ꭕ76Vm fƏLT+!@ e'Ts$wϽ!3ȳ>2|T' b+˞`@I>7ʓs8][,%'PչVȂ3gsF 6:E? <$Q zE#A fp7uk ;GbJx"D+mODu̾ nR|fGr&m^/2K^RܱZ$SY6%^ZXp1{ȗV\Mڦor>ágOPvYу :h Ύ|sK J &,ƬG"^Vꚗ[Mt`[|)+]nU^a1a:r)]8iMh\vLNGOt/Q2U\q_BaSU5C-XLcts[g׶b!naqbӮZS [%>IKbqa,4S L@vUْ-$^Ha6Y8j];E|zčXddXfrT8+'Gn%+IjJA ?7N=7g{o%Xϟ|Op/eD.Vh "cq>*c/M:P'BhIm溧gj Px Ve(7Ht Z^9_P5"0 U h"֩ɵ A.Ϭ?`dՂ+c0arR}0%!s \7 ΁0ǎѤ&?E3Q풍eU6oo$otix䫽?ty|%f%o0-/^ 'U,ފZC*!ZJ3~5(kII>&X=FT0%_o[kmJBs&:[&x~W$(2Tը)I`1Ms(ݟa,፝1 *EІj+KqG Lh{dPZ*/D 4a0! &/G^¤۾\|À1?[j}hן\4@n6gdTX v>+ _DL70)0Vw{V`56u؉1yW)'⯱yJyUĔwК0+<6G$8nljYcVRC$u Q@QE䷡*sʷ&*nZ"»( _[8 `91_u[*whe gzUIjW2Oqyh b d2emIHQF=y2N>7d:k t|h's`g14Bċg>AKO-wTo 3}AW^it7_T\>+^-DKBg-`fW4W\ZMlP#~T#S[9Oy0CSzFlV6V^ rJ܍vGe_ +7x (G/ї?WN@6 Z] sǣ^:s&Ɛ_P gcqOL8x{nR_mͨxÚXzd=g>#SۺF\Ol 6_H0`ˁ[6QO0l`Ej3ײl:Q2R$$ZzC>Aѿ)1X)oak,Zl 7{iZ! R<%6#P9Cd_̨O%;-~'0 |>Z79AxqcP;yѤI8N>@dϱࡹg We u~N>D##'SԺʡ^s5Tp> oNF`y:&hxӧ+AUeFXk|q^1xanԽB&%M5,|%aVwؾFZ;2ܲ™0TB93Ut Iz!ɱʢ4Z%I9KnCTuo WS Nq4:#\P<`Qs>x/$7 n@E: .^(cE? 0L@W!iFnMP;H&cL|1w1oqtJK:`YDZ7§v5˘QĒesUxḎ>^2|6 Tœ?{+y'1C}vBe|֨$7AlYz(wg$cPE=٨e?U@-BY\`n: OGiRk}MFb125-_ D[ :/Rl:7f ∜XIjS.4:yiE@nlij}W;=Pjk,pږ|eYv`9f=X'n3dn2SVRJ78Lv eD5;4~X=pZ8NS߽ye ) ~Q6r}pi5;mX6}+P73TMH/ݭI )̍ժ^$z\:2%8p鯆V{e7X5rT_<$G *U vwcSJ(+-)1cu+m%D̀]9tfx#fL۳skJ\jrnm#hd8וiޝ֮ؔ1lCоk,Wk)\G /gE!/]c3JmyV(85Jj^ԕ,EH`yIRQәA:4X9'RM4:pT#YƙP#<.¬zA(P4P:Psx:OR:Li^b6d8mfOB+]d8gvOO@1-gYs%PwkIka3N3RځXViF[y5ʬw+cF[5Fz?Ҍy\gA]l oZ&&ًDW[[ XHP2BB"4ڤCш P޶-5ޭOp,BmS "Oϲi FcdeuG,XjO(~=Zu:6>Dh2aִ?ZH>6qb)w1O{r.3g6oeLaڔAn&,Ӕ5γ71%OճyLTj0u48[[$x@ѴEǑqՊcrly[ek诘-EW!o/ ým$@0 zN[E)/@3I+_1!=iic~~Ʌ`9= 7Nm/hu<' ,J^WOcSKtӼAw^=`sXqSoQ.x9ٜrc aa/DOsQQwwM%̈L}oS:&X% %}TN)Ѕ\"P]9Iph{L$ k5~Vg ;1\犁"/{=kht2?jZSGK?gφJvf* iNF)^'ܐz"7=miCx8 9M4\Y<5c CdTEԽRqe;1f>R[.\F` Qx{+ H;/bBR:1ɣdzoe;>lLڢ!q2zg cC4e@MTeCnYm_lTQ3֩n8 'l*:=e'({a@TAdl ӵho d1Ćv#jf{.*ׄkNvL977ێvHr=Ǔ2|hUtA9?081h5Th^k(6]Aݦe I3m6-]j`q-=Ǻ4Y ŋ-AaK5_.a:)ExnQUGl<;懱0Δ} [W^:p6/3|Ւr9$0bl"tH-jq(_n Hp BVw74sc98JF`X\հɘ E.?zD[iȺy{ds_1J(wd($L[P5pd@B?5GTݘ@YMأfwnuW*jV(.O<#(juoDӀmfdыYie9AQVrQQт~dǬ`D|kU^]t2:U3GP5TʣP$@ةA*Tቢ VCIJ(!a[Ǐ)`a|e9 2Pev%uמ,tqRnwlAbC~D*TɾjHL}CxY58n^bk>l Jյ_Z$..V}l35ʣ1O5i4UeϲpmMIb#Q pQ+W}FwYQ1d*qf)j p"ġePD1)0-Y!z% 4;v0& 1ovp;TY `Pw3?gU]oRM!EzQU %#JT4C(m6B s?/#SL"Wk:R+\0=<."؞jz+FR 'd-F!~MS07&\8Un n ou1) I; B傶-Iv` =9>Kx 1SI;Ѱ6#&;O ,Z7x.w)P(ݞVvH<Z`*I݆,qJɤɸP҈41x*8P9rהW=)%uo"|lBqyw S+QY`+%moJHo;ImVQKd"QPAb+BW.X[@`̡A*w*dakhRLNF6k ( 6|!;v>}èhnbb/ZiQOG Zl] % L^S;.${gCהv#^ߥi$)A>dxWT,QYjxz9?o2k~/ J_UNgہ]*E&FR?&1 z ^œ)W`1@ww5f4?H,})i#kA~Ȣ-j3tcN!%QkY@s;fA߶I 0œE*~rAkn\Eg잣MPU&HKҦF1E`Sl Ά|WxgBwzFv l^tr$~%HƤ)2ުo+!y ŞKL%ϵg2]ƒߖQ FQ @(qY}+ST0AtܩhyA@m[k '+HDvн3*epW%a{7S#w-TI Y^lA4܅8B&qo>Zw(9Ot9JeýbS(j=#q`JGGH"ڍz=an9m9֔'7(h [E6<Ͻ ZyƜz `{ YFuEc" D.RA'2U ݺYq;Zlf 9^) >!r-0Gɧoo"'OS8cGcjpj-g`^oA[ɭK$ڛ2EztiB)M5_3<3#9oaaƀ"ȅx׵y[vN6FvյT$Q27S$8Oy Ȗ7fa)&\u='Zۡc۫<0Ag{.Xֽj97{9u&%7 /j8|Q0e6H v}gӋf5۪16P#xi~zŊ{r 3+jU3Gjg9;"EEU kC=Q̦HTё4K-޸>(-}&[~&;P3~ F,*@q-U5)gJ~lZK. M%bk:A>M)|Z.+J]Y(}$YAgF*N{kÔ$blzDÈc<}#>TS{=hL t%R b[oI!?"1 vzeUaԍuunRZU\phj;0j)pڜq!&+!+]+8FV~}so',`ݻhLͽp`Q"-jBن) aA=h:X.UCuU?DQ^fm^?XWbTB"ؠ=Ad?CMi Vj2#fgJQ~=k`>j+R!(H릆RN%MquޗWH;1^R@ ~:`:1CQ{*Q6kWN]h)%)\JwS.$%D"BTaw%cH )$_wUlYoND(p/&0 bӮ,0 $yiW4(EEHG@rWm#cS˽mR1;vA_QnX@+V yM"]2)!m2E&:ɹ7;p 7׌˫HThI;}tM[m c'S6~̕#x H]HĎZdrҝC u$2M4V^3,LwV5V]̞dU>[ E^:<1MXVcUOe1Vk9cd|,Z.;0 ӐLrC}(c6gOȣM{c7a rs CchYShXIH?ԖRt'?c@IХ@iJM3e 匧[{\Ȅ"OwGA6(ɸeڊʲ08xd>65Є!O/UNKFD;^d }rO H:2(a]t *!LHSForLW9G^nͰųH"xKbOzӻ`۩Nz0swV OVJCO>%_ AQQ57=~I貲 ,뽥-1Bnz9F\=R ༠$\:6~ycfZ`Wxc9a)7ؠ˛56V-mi]TXceONj˸hǮ4$U3yy)ɭuvz/PMPԟ[6`:6mXy;sY|>\7@oytMn^w8@Ͼ `\I Dwj8^S$;/2Ʌ.y[p]:B|{-wo`.b` Tp]|[n;EiX(O픡(Ea'<>h"Q?S"}* ̋ SI  ^ DLU3kY ZjU3@L➅UV4\-#. `}aZISKPtg]5 7:|+>JoPcE }~|V~67[KR*&NAav{p#OV"Nhr&95!'9^@M oDpM9r_-<Ӛ|ۣw|EF"$NOUsU)iaQ];$p};H&s;*z2w}يKx$1ҺoynզFGhGtELF<Y>ʹܶ@  24pfOhT˛"?M51ҾL93q}l3'Qr 9? PxG_&ׇj3Z<{0D>TK/KzzpQX?j"rk1&a%uw{ /Zҋ"T4rl<Xt eHHקX^> ߈0ʝ1/QNyPP*=W ?כDHtOY5[N$7~i榦i՗cc/1=*y^>H&dB`i_lEjef2 )3'{nFTi?YyEz||>Sޜ7W} $g9Ϥ@O]NytA-bT?`y,.aMҷ-x:{3t,knj5]IHn=wL@ D-݋>9]B yD8`6b'PVXXgao*'JrF"e~;={]V14-AҸLAo,TdYP3xr}Et)IUhtnͥ =D4h/a,INrB c+vʎ(/%2V)J,DDdZhvWk2,%'J< Ъ"s@XZ .iʈG!tOTdyť)3UqDP-\/82*U\dY} p7;ڵX8ճ D9l3?r7p,]f>|.]!S{0"f$˯_X}8RecL(>"ĠϫRblm0NJߟy,r0Q?}*M]|b̖Q@0Ru+5: e jWӹcΦ "6^iyw303H|q,Z}pZÅ|Zt \8+.Y7S; otQo.G[,n]1 b;{5}KBE,6@҈akc(Ul{s,4>)9R9)}Ld8U\O\̩ZA٢Ⱦ=|4)׋J}(+RazYe;EZr(vavcyrueK̈́6I+iA=PY2rӚU 1hRkW|Gv@rpD]1ndvagW-Ө o>ui;ǙrXbi].jj0!svV7+(`AS~%c'஋,jtz:RFm'A=Բ379[ K]ϲsWT&*6NO6"Є&Y. "GqIk"{/Ⱦq"\L(LkSD2|jVSi גvGw׿D$YbY0 *BsO2^\Z6pЈ)݌ODf A #61p'j($0)c'/3_rͨ GJ>C>V%ߢzm׏Ymt9Ӑ6 sfp iNט4~6 -ۿ9󽼆̍ ؂5;tcx8jLTSRA#]M%x+Z/w'1 CQ K }͋a|qeC~֜!.SL||_) rZcKk>zg>1À?DfhdP,~TWq h*=o$јqhZeXDj.^h oP{o-&DQ_<ӤLy: lW D}D=mxSrɦ b:^If沎CtytA ޏEB绲ʁ 73yKt3J htNhjTZآ|BCF #/=[$04%O{Vc7O=|wZfjNfO>v!an ]T2 !~B9?FjR ̳Hd䗲oo˛Q#o-;(DzҊ8,'3"h9.tVT;ԡDz75˫ a%]áf}'8&]PUDES"B˜_OX-tJ8VX#5Сd-j|Mƭ) Ҕæuz䑀 dD ߾C+yNkNܛYceW6(qG$<\a zs__HVr~rCʙ~'ZDX_A欜+8[}y2BTfx,]S8:oXi1xeо#6.!=#sva!/ b>i[fXs$yt.@7X-O¦ijBLa5h,%w~g&Hv d /"< U"&I|~_8ats"_3RWW͗%3DNxdӚnAnɨ.`CV1PH|2h! Fc3R^jN epOXS֜acmx' yM1+!2S+!C~94j  6 "5 w QA9˚h,V;XKhӎ&>g",B x-"oy~=[OFq6YDQ$2RJVfTpoߨPQLeXbJ_3(~7X$S4,"/oQ~Rc%(jPr+c&) ,9 4a2AT_9ZuU|yŮJw1bYy 爍IYa=.KPOPiEUUQ.:,}ա1 q哽MY_u.&Lm2]^T+-+=hz1i|\ӆ:igVR<؛]6K=)#1Wjޣ&FC<~(`Yk3[v?Mx񟅗?Ī5$J8~;px\[/T|?Qưz;C ~mKf5LL6gm68q?ߗfq`ʁV" D%к[$p$uE<+nY Y5q"I9{̘Tum+3䓬|M U6RP;VO Ƀ{Ezw[AE!W<+YTPxNPL.&H;Q ,FK[qnLF "{TRwL-96R?ʟ΄Gq вW)ðNUf'P tujO3la]+.H:SJ1t?:u}|$  IiZRZYurhr Dpe$tJY97ݟ518_\֖M-wg7 Dzǝ:!2 9RyJf\,1ޝiXmm@JUW'}P8Ժ_\{h_^wg9w}}!UH0ѥ O["7c:1F4<#K}°Ym/gf7_*P#?G'SLp&Tt\[c0̑*LEYUjҔ5ÐyiƷZZZFxHQO0_9Y2LB7&fհJ~˯"oT=>Ld 2)7=TG_Sunt׶ҞkOfa{M2 Yk I4@[Qa>X5]d_)~52oӑ?:i qsPhjE]- Ђ5DQ\XSq6alPs$:GŘiaqL\K az"]mn{iX ZZ7ɭj4f~6 å[`jJ\ڧ?]:+|5m啚Gڨǂ#vu9K}>t/|~k fX#X^&٪c-#zLBٓxmK½+%׋>8#R*tJf%y-]yFXdG@45qVV!Ź%ޜDRs>mu ! n 4ċ|{=̏9h׬kT @I8'th'|fnzԨX(\{kv4Kg~$ :?z)IQ : #࠼)B%}9b Ax=jQ\Z/CT𤚇)M<@Y$afR E*߫*Q앋yYֶ8 q}9%8?erLWxyAD wĸUa/B~eN,L =PP[?Vp 3l)۝||M.=;?zH9b8Pz\K/jP{9fq?sA:-;l%Ж4E}nƕDUێps"Mp&XΉ{vWSA*+Z˙Ȏu[QG0%JWG*^FKE|n˙1r6ڮ)9~c#u=i[;;6Hy,H*U %--|(7~q-Ec[+ڬAvy -S祣R:p K$n~lYL4XpX1[[JNQYTv5տeE7rTK&Yd >m](B2u?t:NtwڣQGjX')uk .Z`w92![mtlЎ~m1?6esPEQr_ 3&.]osjtXXkz`M|.7g/qDžScsCpZܒR=voNK#3,t0CNBUo19%X C7Of%GKN:dF5/C>wy}1X 7񰩄|*!ŘPɀ6el BWEcaP|F9-B:1c7\(:+hA)@%[2MQ\f @ĖR;O!Q#J]4-V;"K>(SM؛純PKUqRUa<)@BW-bu8A6rҝUp1ɮyj/T@WaOpꛞʵA$')Zz1 Imr3@Q=q&IkU~#V}# 7zdED (%{º?l2Ćʦ"XGV,묾Y)v1^,b+3Yct̺І'Oz8y"g28BwMxy@W0d#19{4!Yk1Q }TLn'C@UO?WP5B|lGBlce,/!s/q@%ǒ8>t^o"Ha"`h(°{Z<2M..5T{>ԾL882(wY4np5z}J!phYDSPAr24hׇ)MT,\ eN]?^/x1sRLj5TZ,#5uS5ߡܖ] $Bg^I9+k1 :o6q(7"Lɚ$`|S$L3yj 8r ]tꉊab /aG.r TZUlW!=}`#mٔ.›@D+ݙʪ(f!:} E?cD-d8mT2}.i_2qWףڧE܀Ip;mp?f *Lu8b$=e*63GE{N t ?5j"Nі@b̙5|fc&ϯb7@(n\U^|\6R^]nᏥ9c ;d4Ș i3DW $x 'E}C@-N=L i\fBQ Dx87piOO=>{πWPa7TYٯbE֜*Bp'5G^8ѺC=9Qq8Pv?u-;,恞UfUlS8ER4 (wJSrG*iQa&8u]t@ 1vmwSO-Ӣ^灧 /Rl[q, 07F~ڙg0<*֫IS80.pg;I{< 3Ԡ*m-|V1-ftc6'{ev ffc巾^ކ!.<ٹ L U臛[꿭EW6 'HL\c\3 paqkNAo ~ ; 8v%oN)#i- qCt$3%Wnl,!d%.ᨲ8ә%$.ssJ 'x02AcXeIY ?L': pF-Nwևt*!7;O| 1fad+X!(va" f0f zc4Ls Y D?|]${f M[3SWg5rvީ3㴀zB"C?Hϖv(D(-Z=T&}ES "Qav|ڬc o\ Őѽ]82)Ӂ וf8!94ྴdRU1 Ut8/*!}<2ؓ1VP͝VA|ZnF|y h+a_`Ny+tvrIk0? O ֟:c)&IO:l4?E-G*0RVFo9x5rŠsol^RdR-\D)UP8)PRf3wfT{ס- 72J=`\jΪSRz^i[ .#BX_,In9r MpO!;P8բŵG^^w8rĦRSc4݃V_Z?? xK op8(ߦ s{ywJsL% tZe?YyhA>cFW5G9ƒpiIV?69!K]d3[!ArobjIu8##L:UA`OpJ0!r%9cG<_-mLM$%XNW|Oܵ[f= 3)=KdȮx%$+X$i~8.Yܒl?.8^Dz d"M|>n/*!s >"8T]K"C܃(@Bw"9*!Ea߇FĒ1y.eߩcbeB*L_Tv0c=#"ƌ%nN;`˿L"_ܖgVEZ"p"9\s=LWj!w'e]zBwEOX7MęWV; \ᗧ ?<*O([f:SӞ]C/IFz bx3INM^YWz洞f:yV(S l` ?=GG7FVJxˏ&?#˺.{r֌V>|Y\S?9uJ, ;tu1 N)Lի ogu/d9ggwv6Ud[!bT{(*z md:*I>T%Q]=7ngaeǡN@Pr4; W`^ mUEQcvE2gB>GI}W^ϚmӍ>eU۬E)|ݘ)jϺ+F)IEN%IN_ X9| \ I7rb /^Qlg&KoGg`*(‰0#R$bl$-dQa{b.Ẩvz'+qK2Z %p8UF ;NF$UD(RR֛_ = k"{|x>Tp AlpkdއXŅt~SMra|h R#ۿ&~>5lG& N\hZ)}hIGdw`׋*\XW}Fkp.ڡCi:t t-=W=#leL,aogB# x4ZF|r XVu}1y.Q:8ѳ퀵"^gf7ΈZ5#L*Y3#D@v '̧FE,&4`c8Bq< il6/Ikщ5nR~b qVb Lc{ԁ`,@4HK88O : |)S ~S hU4} N8beZSj*ۺ!}‚Y*` s>qtSҞ4Sy:e?gp_N}ѭl)(0[״>.y&M4pf`S*߁买tb{W_mOANBEldq;? `w>Ɵw<TGh;KJQeYO-H31 B=hph#0o|CJKfh C&򟨑ˎݽ61Ѻ ,W-i[+"ZEQ)3]/g! ?̙'k*2bK(9P^ m*%t%KHkcJyoZ73$hun]x e >mxnEbqR6tQx'>3z2QΔ`ROJ(4jxa r/H˜/(vob4g.1RCOX(5Q>& 9eT߽nGx{ {SGa5CW{**YGy~u+~1z%~Pв<6p*vjI@ Ֆ+ǔWspMѝOSpGG@D] \:v^s7Fz[o0G]9>;)?Y6/\f4kDtuIR`\أMy<c7pm 48#ZzmPQv"%fO|%X ow}הA,U\R34u"gM~Qgۗt'CNBX2d bok˦ ۖzmX\DCs19E_k0y7b O^'z] ў7;$wg<=nXP tAW02pg1$T&p7F~4PE5`}_*2chW^(1E%du蜓wi z)zXh=}.&R. l!ܛX5br ` [?|sX(BJ"ch]g4ʤ[<ޤ6-aPVr[v S 7v%ԁ7è7m 7I!ݣr`NLsl7É cKJqiM~e]π rm3VP=!%ή@,qǟy-&gyH0uͩ|MsM,M@f!]_ssuFl~>.zB$9mgcUY(ps-tAW=|1RY.dFaJn8ͰG,ĔPnK(P'z퓸?tf Xr06{6tX0 =AOըI>g:N "q9J:}bIN [R43)eʍ_JpkВj cIVYjRҎE-P1I8xjpȔCj _zȑ$oGEI%<,UڅOq2!qjLevB"GTAd;Kho`[J~p'3*NKZ 7~Y;|/'BLK:62 DdRh;b(• 6j0ip&$&:s!ң>(s&kt#%^4EsnI 4Fʃo_ٔWY$ ֙-{k a"BĦyUfsRfZCd54t ^#7*/YdN)(5WHYRoi# Y0 ņ\Ū"ѽa3K1sB',h1qϊ ^|w:zIyV)up7G6Dgf̮d,g';EN8As0l%6Qo~i`4=/X4 8yϴ+(M28gJH!Q&hq=yl_yCW|J9>>_q/=2VoLsF)I~6%)HXKZn )QoP~.DE.Lv׫\l2< uo:|%HCcCb5 I§"rda[?hb?gNS AËwbXEGb<[~)V+[?RiD,ԃjmƤ/(c4ZS\FtCw =K(iKF&#ԉAp,x5&dDN▮U&qV~mhދts:Ň%]&<'OkNRf5\ umU_.}~{(8q%4 oF#tq2?^%=yqjqcm};~rxTGS%C*ok3f){wl҈&cf#$G@Ztv ܑT@)$3ǘt oՊARDB}])(9N%bRNET,Expppf mA{JYW0? p?V3$[['y#v}4ݗV\0QG_ň+с&0įW-{awPaznǏUxD |ڂz3aB]N 恤5M?6>i:66Q_er V3MIqeR^SxM VK"f'xJ`=2I`ou1"\`FTlp3"|d6O(F1]lK@^ v҇“Jr$HOE^KVmzS2g^ֱ Z`:.U@dF[t^ >9bZ<ǻtc}'_P;xtlDVmd~ lV`&<2m}g`q1qJg|88=R\3?҅+^o tD4.̌xm|yt'Y1p yN@Sᬌ}R, {'V*?&Y+f&l}/9CQs'իP*8߄} Rv$>m P!C 2v-%*W#ڥwBPR':9N N7/&/~N-i/1l`=8պk{,pmYGu2!!*ADI(ܰu44pT6A vz3q#x֋pK?3IfUu |۟L`+O [BoO:&c^H r◕%QݿCլrށ,"&@FBFPuǰWW`AHfR]ǃ^3{kۦ,N5Mp|>nT+G#QI OƢEF"* (%HLͅx0نvc'䇟;#u*O-rՀůfͭ=g?+@#ebG8bt j:P26=83i&(ve.6LUE 3ǚBHt|m#i8YB±}㬯K< do9) )í@D ! M87 e/o|PJP" h0cm*DMz2g!&ysJm&-rzO{8U j X- $? &NF - ֊FV]jpjjjH4D}"6{e>fawS+ ݯ\L.%<ʄǡ["Rq*8#p2 ҋuM \!c !aj#K'N$iiњ_6?!f2-;UT>p}|0rۦ-oeu%m&8NB@?ZQZܵ1 Xv&(ILrbh {!g,f&L 癒v,)̓TIŽb0C~ h^×Ow =Py6$^őYnSf7S5C"6m\ܯ3ކ+pXUsKߊ?`&\|y?d JQ$u*QWC#Elȸ5=uosƁp~ z(7t2JJἪ>_QK-(P3-јcLauL{rMW!d;#/dUcm+2rՎ.# Y8Vo1xҧ?C\xnpe",(4TmhddGi)' )[ dn$[蚺AKY:EI;ó1hLzrB-Pq] Ӥ>w/$d*X1#jH{OvANϸ+0%_o"[H^aZE4O#&"H@Q=m!}GrI:~Q5=!u#ψ9, e`?(]D6jٙKY}Noabua /ݟpЛi\"(d߽\oHE;$e  E6Jy u+r볒)?Rb{ǝVZFB|p eWwV<,\y>$ŗjS@.SyB,MY[sh[M5@2sK\򻦠DԝTیϝI]X>WnG/2eZ +k б%~J5Z:lULvIԃg&2W! [XUϲ ڑ܎S(5rGx J̰\a\Q:^UIZqhfAOEXGp87KJ0Qf6A'mGmPciʒ$\ ȑpK:km5eLuWSתG9;LiP^aHjE[T&~Qe{74PrL~NNڑӹ`x;yͲ]#g?z/0H/4|횅vE=Wd5-eӬJwh-΂ljz@$cWUmU[a=w n i3'n0j첤Sb%/ք(,1T96r$fA[ޯd煌;PGj< !on [dգ/7PpMQEt3 j,~,1j*_X~@G)$>Pv8;-MDA\cS և ok;@i$2"P?P.#̣9z;wxÎ8 #plDuϽ<;)~4LRy`Nyong0_ZzͱKm[L cR@}W9jG2$oSWP;GQ*NbsoQ) ;EI527(4gC 9L IiȦN_aE?CII#dkXhdz@SDc@ϖR_zYd (l˸3*mt_GKǾ4H+h%sE3OnyJ\1' \>/槹qgo0^=0 v 2'>S+T.(|c[;8Uee3BD_Z8Xm&4:>l̬Օob/2!?L\5|A嵷5Q<J`!'.Z3ah5'dR;E< EEwqڍG`njo2rNQTl-0'iH%2P~ ;hyD©SXR? wtڙ;#;1Ww ^GL]*C%S."LnT.ϓ17kqQ06qW=kBMf9m?pڱ$yorndTO̖Hfg@3T) .6poƃϒh-䝅}}) 9tD&QHi ?}]zD.Cf FSj'Ix tDβ**V6j'kpFV i|pn'ZgP;}n2y|bIA"Or&=7z:Ua`VIqbLv!Oa,❻l@;bܐujT3Ĺ.FA^XkM[|o㢴q|A?'x;"'@\(Uװ:ŢΑ=tR>QT[t 1s n7kK%'<5KDi<4r(n5jeELNiR)dc_Σq*CbG@dArpE{K|BI<6ϲCiA/,ǿPK"?Z}+8QԷwH`R t\Xn)u.M /@"SF'|lE   7|6-3| nͺTRet!bտzإ3X|g36K$Ked&eA8ѓDJ]Pp kv̆NU.YŸ-cyѨԱjF\h=~ʋh#+ dO[A,mEr\EQ|'q0>FWfX2EeH~6MϨ,յ>[~ha?ð3yy̜(qŷj HG("hц;p3Ge] m_'Y2h-Jh=zhT`z~bkN긦zߓ|\wE&M`wٷk,5Iې=#Y aX}VH#gY?;>.)b̕bBWr}$A&1,K+׌+I3o8wGb]e=Yވɋ[T 7; 6}owbD]*=}bwl,A0LJARQHO)5<%I5cΔ Sod׊%E 0ua [Ἧ̈́E6tMޢRגҳh-,AKdRC9G[-jjL#|,}pgozO!Eijʷ$ k m0"L* "ak`i5۷(|Qqq}:v/wjJ^#d"W79Ec;ZGFS$J]ћ2xYO/kZ%P|b~M7,~68G{~sZ=-G]zQx =/ 5JEkO2.ox”fbF~-h ZB` 'A= _|-Dŏϥ qƇW=V5;Rڛ> fb^Xv$[;cj1UV?Img[mߨp~ 63Nʷs޶m967F :^*4X ,BTAx},6=50`lnGRKQgng YfDg1k5OAGAY`xǸQ<[? /%{XyT%bv`\EJ#?Ã. #r>^ğ/s-&j`~ߜ\0ύِD"Vo7_*w,쵉y6 Y$_2U-RUS'7j㻓TYKT޹)%%7˼)d0ܮ%6Zȸq (%5,Eȁ״ήF8WA6)ֽQb{ٝTj #C%Ae'/5-_oAT.^ Rs5 ^#H TS@-[7[ ]#g@E-yBc7 _٫s J暉l 9ށnPhZI&oD\3 |uuϟFdYo V՘@3lIvsj̈FTb`u+M0r`d 4K/ڢm E,2߁ 2X'4A&he,̖6Q^op%B#@ 7DGX\:X` ;Z[44Zf(M-LHcX)HSa紸ֶ,THyPnP=%ږ*rm3 -BI&~U_P1:ݭ$4 "Ll7 c@Zq#Xl{B[qޜ2K?VUk8 P&I:msf0DAЍ% PPE/ډ6ڋQUAL M%ugx!|y94X_pY]S+i{ nenaUWCDTk0.3HR+)78g/!Ud 2R%jsYE1(CT>T-ǥuZ_ HD'ǙG`Qo8O1/B?%ml/k>KV?sHUy!]usMZ> Ǯ-ZP SV@$`؊^XrEwlU?'J-hn]l(-K=?n>E`LnNCưD&yDYӸ5X4 e(:OU:\cuv0k.u2U}?X*miL{A9 lV\U6HCvpZkN?ŬtS:j=UkeBUtɺIYXh=P >n;H<'lm\ycFFХȏPa"9XqbyQAh7^B(`GqYѬLq=?Y>ܔN.-ʩb{ 1դ;F5웿e!|K˷dKj{\»91A1M"4zS͠Jwhc(3\[zv~e4u9#^=Yq< ,~q.\5zO!Bf-/эSW/%䴥T$2odJD*DGۡ;=?ƮL4Sb8)1cIwXzѩ0s^XVހ&88p^fM9M=Fہ|B5^&d'fz*+C|4&(ogD8/;UT bD$VRHd#p30z3"  oDiMxWTA#-ZNhjeA[yՠN}7S|o4>~1)+_U\;? ~ld֚1Y"~9:r bp&@P5pjv^}DSWjQFYVIY\18S3Ux>jphX 4Ǵ><c|iFOR],X:mIXT.lXTŵ`@ < Zjq-b4Z(ބL&<۾Bgԉ+lgΣ˖l[6 rZoW FP_ϥYZt$UN|1i]rBAqVƎ^N<0Z}7\񧏕ĭ&)/^.QJ*D8dzĮQ'8/_5csںV\8e+9xixɖ3~ Q7Xa@&}Z Ex n)#)=x%krlOTjhI\>vJgŨ^j,N:&0dH`8yC7~BB?+va7;QRQQkby3ywxRݝaӨ57J).P(m\> > 3*Y)NX#!ϑ].Mu^2nN/?|= :!~0AA.Rsg;tM ch4h `C70GK΄S|V"ރ Hf~M/NIÌNHZfsr%F[8hB4 ?T~iUo\ *d+ Xb+$/z֊{Xr[VM15T #?ZN-e]J~Ela/탫V/u<)←*9j|Rr00!<X8Ža1-M agdɷrӹtaI>W!] 5m]_5gB˾bن k_/+`O}*xԝwTzVCzMO5? 76mpH|3 芺O') " sJf*6!/~k '>gĭ0LZZPT6f;rE&P(}bP~w X^ӼP=ub% f)4"s_[~>M.}#c#'¤_"~k@}0M_ʫ!/GU&mxLX"΢D ]W%iP0lPgszEP/[qݳp1qQE?e}R=*[ u/(&@q8#s7qf6 f^Tzw&/Inta򞻹ѥ-ԃmI3Xx7LkV ⃴Yam '}Pőp&߈%S8&X)ޫ~س"6q!K'w;?}+D+qdQHfΟb(?~:ýTgH*|TQץ Ӑ}%8C&J[ i"P &\½5?)}x I5:+ծש{.{ &PljvKd֊_A͛2 ^T#ghgE4+ˮdA1e]+GѻPv1R2+w0 ͮsn>x0r4c3EvXtbw%ϭ`N Gqtt鈐 .Wݴ4yg` Ιߌ0w"uDر_No%xC: މC) F-6<5O3.{7%$B5/̻+F*M &EFM9̴WIo%Rfn̦; C:MHqvj혞#VFȷjs趥P xD/WR nuxۨlof3kj푻^q'b4"D)LC*7$S e7Z"Z*%>%ub|81BWigMidbL7]C@`e7 ys_J}*t9ya mAy"U{i3MQ8(!e@S7 Y~wE͌`[cQ&6FQLznƺWar~8z} #E!l7b`IIE6e39YwE0:;L Kܗ\/PLHvێ,=0Iq^=!+l/^?}_*T| @B̅>»7籭) C7)P0D; a3y&qf`3~gs ţr?4z r(^:Sz y*׉)dsH cV>U5.3JM[nhI\) gnsʋA~nB[ ?ڳ`T,@? hp ۺddY..rE-6s^0&יƑ(;$28CP7v$C]P E'-JMncxZJںAIpfX!KsUm97r]IN+(dӅqdCZZbdO}?|He7Up2w8~)2+ݑlƒeDFFYY# C3mj, 7қ'ԔȹYiEe&2crP-z:L)kVQT[ &3cHHW}xrN`fryNYΣHHxӎ@Л<9%~fM@3EX5۵!G ?5է'kvĤuoL| 뭐x+YL2m`w}{RN ؤݥq{}. ĉe^\\`ݹ7mԾ iHq5ОVmz΄i|ESG627=_8AhFoô`dXOv 8SĿvt>l(]QLÅEŲ 62R[G=86ٺaAJHPW9 5R 8UTp; R/Ĩwk/[)S6:}j_W]sۍsһ 8$>O8N_[dtd<|{ E?QJJ=E2ywrZi;  GJ =!5tGc$c =ĸ?Dv}1?f'p"b}L|@ ʷ)#itthՂ=;%wCx'50JLn MQTKIE~l' 3'qսr[!C t@_s2?Smt%b%jE 0Ro.4y1'dW~ +B%p**l2FJfREad׆MP r?wޖsאJw>֜cxq,h`z@$,:}pX7pPNLbVIMvr *iH! a@oe)AQ-*]6VI7uk \lCϟ|amwX*>XE ك08]= u.׽%GJB7uTk{ Vj=L:[Wl$溈P+ 4&,lm(S6i֜LfȘ]N]E0fIkmR5> )hp5i<|nO\ƞ<Φ{;^`XwM&%G]kf' /waL[J"uH]ifTZG9k#TP<.l{pЫ:R˛kF7*UU/} ^, og;ɮƛ"`lqYXF4DjҸ8] bs8x:+^pyT;!]{% ;*;!,Fr5D`Ӎ%+ g#A/#z`'<&M%Em;wQ[:i"tDKxơ>000kQU`SȭnNw+.Z±P:lo?L7t}y'%fC7!C`!M81`Iock9Q@QoҰ4BU& _V^trd}A ;o)z 7^lS+7c®og{kddzҫ Ǚ( u6s}sI,;-+2Օ,du<A^'H&hG,Hb]2#picƎoq"$v G{(6]{yBTe 22RZݾFu2}6V,q Ver^ΞF^pUCy+Dg4r`[ph ^ g7 Y1&N@ CB6B ]neHDy:LI /FmehMGQ|(^XHRtVo.TV+TR|5g7ױ61QB5VWrDq=IA6. IsTN\ᇷd]AhguGi JZ&e!sZ FwF @Vxц4|'oKj 8cߗg Dʶh)N&w.mJV= H[|+FkxVzzY^lD6K"Ac9u3ܠn=cg~ ܟ^x' 󱭗 =m\+t4«us[/v<'a~9& ۺpJ>i.ّyE!HO׷u:y؉5"E7AΣ\#gW8_ﶥF*JhDԒr$S8sƶ_/E @Ht?_&f; Шh { g[T)]IOHC/}BRz+WɱLHgTB<ǞfI)NhE~:ȀWEN5%{؟NX-Àչ5)6V"9,!߅~ɟٲ6\t I BśgGϑⲭьXA(Sב-*7Be{׸6oxFs^{"bqdiR2d\]el?xl8~|q?h_obQAԡ[9g*J'pqGJXe"AAlgʴPݺSy"d[Dףu6/^t"eD׃x{Y[0 0=`LeWc4h\8b_9n}.FCbr5HWG e/h3j\r~e?V:` *!EiˎmLmOVPY5ҿD#d/kwٹЍFz)6i+Ll4QgyIшN!S՜ޙ`4w0x,٘_*&"d@QmW!3oVUK%y 3㧇Uܰ)SZǍY$_1j懑RGm{*y^T'KSY'0PEdЋ='Q1o<~91\H([ՀDg<:t5l(7oʟ}Xg,ۇi7Ȉ]ܪt׼Qע]jqe}IS%7kmb8o rh*n̏1^ZJQB4L]:yVdNl]QXx-0D*MA;t(J-T:љF 9bT2G<,4}WBׯ,2(ΜqExđT!DE|\9-Yx+mZyd6Γ G]x@Lf1n.KOxΥ  |U\MAID(@ q͸".e(GMFTxzg><'OXt"vEőѮ 5I22)'Ɣ$,ch% Ё k0:[i JG y!,UMS.x~υPQsA4iaf0{B5#a "j tP@tz9Wr60.>]|Hn|Nnd8:GDDtKQBh{˸_~#@'HFƾP(gOyYuJs/gӟ~#l g?霑F0hК<*T㍽ǕrkD P SM_eD%n B=vbDO*@O[adxwg[jGܷ8m o(rNhFl}v|_@V/ȶoWnBT%D:Tv̺{&r 8m%l ƄgUZ$%:?9-G"sؘGpdVs~\#P~-"URq-Nʬ*^cd)FEZoFԐ;AvM!VY*ͭRiJ,pz" w@Y,d1%D^UG6ܸzQ2kNVMCm^\t HV3)PN;΄X?q1)\O)mxzVMs5x?>P dՇ f1=R)ܰ_jQV,PK>[TǶAeTf1DF5:CX(:To әڠF{'.*R\F+Kij Co)M dJm5ʐ5':Pg!b%`rFh}U~ 3?5Zʰyñ3pwF2z0i ")lsspe3=Ih3+YaE!ሀCDЀE78/s4䨌A@xa(r$ ؉Jj(fa/P#b i%ӻBp]z`(`F1eذjq~Ń! %Ba&v,:U,6j'S4`63dwY1c*&{co7eDN%6&<%zQ0 շL"@,J+ve%B EU R }TJIV8N'{HJÍ֌?N~UW54TpJ4iIɲ3r~"A76zdrHhha{n 3[MH9WrJ4:J&y,lfDŽtq!)<DĀMJ_KIforлn@bDtch㻣|Ԟ!wEwH~ސM=R7B[+Bjg `r h2db@YB9d1= pitypB7"8ev}(fvǽf~ .' ԣ3e6>F'ts\DwC4 MJ$!bH}r=4)x]CF")'{qmFh&ƚXvt 2U>WI{izЛfA{6.FmԐ{8^pॡ'L8uטIm`/UzQC{qq,U9qo|*P mv9}\1y %gXsO]!q\qF?N=M~ZwMCx.N\p5s($֞{^$&u~os6ᙯX53Tn[_M~w鶞hE,T'`^A]*]" z_ "NX) $aWA+.# xy炷1^!XiV%Iz?Q1R<E'+IP?2VD^ +&߃]K]B#P/Kd]S'֊Fa"11Neӣ$h>ZC's4U?{]pl˞۷z;Biɧ[)!8 ʝN.Ūu(;E_..̼i3Meَ RMpZNF5Gu5M83$f5c"t@UQ8E7 /o2U/f5d }b j&;="ɜfR1yp-G?RmoXe;C[dѸ>BDWlIͨ !Xt. Wn60"cf؄j.1R<d#SrRy}!3i\_jhH<4ړIb6MeBOâ@g#I@]\EM?q%Y Cl`-cytIZf21|EȐOIܕ>}T舒La hZKY9Fax]6柝dS! ̽ȋ> :ُzxxrt^ihPHlV(vzj~ޢ#km֒`ivzSn+ފylVL#Nxe, aE\$StGýwrT^>J%~qE_3^r uک@E^6 #z4J׺kkmU-F¿zUt`*Fڭ>>lc}V޾r*S+`d &Tja!pV{#7- މS#[#[ `N|.My>YЈGK4?t![O!;Hߊ\Q~2e %M%IJӄU nu9fu3]`TL1 FVuh |˄:*My?1E5[eU 99M̤NlriY508IcNDN᫒|ɻXGo+}uU mQE +Pno=8i ;!Wˇouj%w I>%QYw,iBm9OF56Dt8X_D-fuM)lmS+xh݆V\p`M>$2,rzhe݋Y"CU$䆰3jt˖*he: ΧPXZe<\z йVXK]b2g_C4xN'(p HÜllU2a"֢ SzbzlcSapuB,.Q~Ϻ΂5VV x#H<`CKcs1pRpu/c[q;y(#R> ߶dQ:SwZ ^TK1fTH%Qp IׅAGhcPn1⽮[B ?Wi%ގ$k:09rUȲwsD"9E˖[da{hseDkH{ږ@{PE8%-ڎG)ªp{^7.wscT!w (֨j-ӻUO_A6,%ڙr".!x`Bр#<qQx93D Oeu@B^ODŽ, w9an]P`h_'ֺE+9DS*㷺7>S\dR--޳3iD+ t =8Z݂Y#AЃ9D2Kl1Ӿv=jmď\VGmi cSf!jի!FCW3ѻ?AOX%+.] 4WḩIbsҕV0K>\X* v+fVV>݈{|F;6]tq": '*leln% WȔX=t V!QEӸ3#)*05zl &fqzT*FdҤ"+Iۂ|XKͤi/w5m8%Jnp/H5s!!`,qy㟕gwi#29Ihh1bzbb AnMe~,dKeZjH3%G4NN{tѧhN'LM#|,dzb 'Kkr5x駙2.ގx]h{,x ]<϶H˜o Ys cG{BLM0.g|Mp&֮iur"MZvA0A8D#ze6DەVܖy)/#rI5Xu !@jdTN} =5P+jji٠[aey0C@UR+ *-\1A_I^$cI <ȣ=ƀImT%=K[ 0Eh2J2H 1l VNJ*7?S{* ӨeYr[!]dܑ:7#חku16/tyY12)t$6ם-Ad*Rvp"J=Letow} = 寭^mlБ$05{ >=oYU{æv 7 3t5qn U0P+XDHeMji- %Bly,#,u }m޹吋e3T4`o\x]p\vWY~e#F0Nr0."ĆKb 7Dο<(ȝ."6REPJO[t 8t]DmP|4%"|'ڋ2W7#;P9G4 [2=uNJd:,p2P@0LDr#cֳIw )ݓ?i 뒟0 vS w[ZtwѳQg@%d^` SZE3PoT/йoTw iNTzqYbDԀXĠjOd˥Mq%r ܽ~@X&HӡI2ߏ뗎˫Tp`\A Fi6Pp à}Aw|Xdͦx5ZR 1Νn%sRWp@ӓX"|^ g`7ΚırKu K kaJ# D2{mMKg7hSsRQ 6+=ZPT8WfōKk?cIB8ci,Ghn#tSAE6pd8<;_~O1m,6tV߱_GUc.jDd_H9)[>mZh1KA>o]y]vPS%:Lkb~Oa(Rv 튚K@caw\# m<^ u]V }YD6٥E?@Zy,U /@PztK"SV-iqѢ cXdMXQif pdg ZDX: ]goE+˹@"Q\D^U&~ɱ}}eVg}*FU| D1O܃i.|8F8=;2!x/o!R!6Y<[Yv3/5Hذ(DNIp,߷> ʨ#tںKZ +y\{Z+ذM JYzg»煝Lj'dTn\zcyـ^j#{76=(tJYa?"γÔh)q&ycjj3$i\4e0Einm/,0fNB7' 4޺)U[RYCc~4\G@YWwDNאo""nk/K($v'{,6Hy$b։~1hra7rhI5YZ!T|ش.4K'p|uS .a[(3TRE<9[s!˻6ג!?˷?ڂgj`.~N5U;6Mx7fO :K\f.,iFȌ8f qZ̩GpC%Cv6[:?AY +dn<. z V17vA@i¨ oce ax 4n]ꦾI Gۡy%ەnV̤5 >CiJX"X[";8(H-%.}l³ p_h3IXƺSFsJWTS酹!7=7EKmF𚭪Ӥkg9yE|/u8uSg2aSJf;hADymf3qXv8_׋֎@odStQ3¡bu7R~6qD'd4סkx>gh2OYdMs/ph\!Եe[%ZXä|d ԢgVsӛL\ka*CHY;Π9ֽWj/ï)T ډԬV`Lؙ\JV qH kUwu2A"Ww= 䴬0T OMFLIϛX}h/琙V6Wt&+IMytKE5d33<خBQ-ETOQr BcÇ:ʰj<V%I%g-즚*BeTec1(TGͅGmԨk$h!+i&8p0-d̅ *'k\?_7fkyw+u]Vڟ4N,:oЂd,Wk޾(|d%xc.fԭ8:OW(I8 ӳO{W^aa8?,Ee+)"2/g 9dxv}I)ɻjɗMDkݻ K/7ζ儩5 ֮2Ӟݗ3xp)0^S" C5vMkJR(aKvki\,%.Q>1s50hƽIu8 o8 vpx L+a*f1Ⲹ@PeSF Kk zcMj&Jg;Q+5x-ϙ_2i:]S sU͆ `W3|^$%=*4dggY.ζ*Z⽛p3%{- J'8z"Л^iΘeؚV_c-ӳ>s@#DA5e1+ CZ5:q{. !Ck&}zF~ֻmJǠ̉'-7>QZgTt@I |_${{6N2 :un2$,IލBն+7eɐR߉ 6tFpz3W;>E ђ=2;IqbkpyHa٪Уu 9>pђ> +8.- '$Ww"y!ׄ&U^ټ6h1'Q-YmϿ'Dq_r^b}KSIsb&6l׬ʯ鸠d+JتT 3+sD\HQp9H !|*+:M{K:d [{zqIdlԧkOϾ9vY ZlC޸p.."I6C/! _eRv_w" =+h^xѓ:UK+t;%9X!i˨(D"0 ghD\gj ڄCkzT]hŕz8 m']*CL!IrB/gzfCo(%RŢ'bꚧʷ7KIȻKV/P9^IxrmUrn]/t.YԑP:Q-q!hD,C&*,?B6Lght$)8D!"3#EwjXީN1%3k3LЭDݾGc0B;!>?̌* QXs ڀ* ;wj|%2:ZX@x\b=fpsZujKzGOV NrE!#n )PqP^R%b׎ 7]-u_';xMC$.xskFzx: B]ܨ4zG3\֙-ZXt"gG$uW2PIH,C%Ŭ~r4xi@QpF )! Ϗ?K ,l=^ oa mKm$n YZ