openQA-doc-4.6.1589882993.dd2749ac3-lp152.1.15 >  A ^ߴ/=„ =~HcN42%.|#AY1:{PΓ{a4U! {8uwg8ajUm`wҨ&Tp;d?dd & 1 J 3Kpv!! F! !  !  !  ! ! 9!  !   (38<9: FXcGXx!HX!IY!XYYY\Y!]ZP!^];b]c^Ld^e^f^l^u^!v_Lzd'd8d<dBdCopenQA-doc4.6.1589882993.dd2749ac3lp152.1.15The openQA documentationDocumentation material covering installation, configuration, basic test writing, etc. Covering both openQA and also os-autoinst test engine.^ߴcloud136{openSUSE Leap 15.2openSUSEGPL-2.0-or-laterhttps://bugs.opensuse.orgDevelopment/Tools/Otherhttp://os-autoinst.github.io/openQA/linuxnoarch(ON&2 )p*(O)27U$?"Dc0o`[""A큤A큤^ߴ^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðq^ðqea53a0e327c64fd0c9d6781c9933cdcbd78623b362ee60e1a97c99ed420df8c638d763443a5324e839c1af8f96c740e0d0d5e2a595821c57213caa1fd70ad13b5fb8ed75c65d53d3851d88a120374fb696f59cadfad7d9599dcfbbca597e96cbb236c9326453975e3e45ccab98da0427d8e3365824fdf3bc59c03294e028ba6ea77b443ca24ed1429669569d86eb9ba955abe9cc21f0d7c63bc0c0c5405d5348748088e9031db88d58a73e1ab99dc97d13dff09f8eaaa98fc67d37a65e326f2607a0cf5d3e69fc7968be307dfd42430546aa48d74e145b39abe61d3808499cfc70e090643810275e4058dfed5619432ffea97ed3add0ca5b927edb68b6852fb2cb5e16944d68da0517302dfd511c95026af3d5bf983ce540fc46387839eb571941f6d9155463132039307f50746923200920485341f6574b2a61e54638e2ebbbad51bd138d3dd732388c4610bc5a64483bfffa4c4df9404c2e691b9bcb0ed387dc33fe9e253b0f573361dedec3b74eede4136c60a1c4c790291b14ea80c1db1541057421a943a21f15e53867e88bfc63e755f3f88873e40371eee10ecf2df2558f2726224b83ad694456b3b9f5b604680952b13afed458446b61525ac1ff3b94e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551525e66b2d877a201ea212ddb5514ebbec37b419bb4d2d0b99a210e303822cef1124e7f36f02c788848d14cd7933ca97a9edf6894ce4c996ae089cc287543351f45d4fc45c141279385242b323213fc20c7a7890a3049314bdade993901a26ffef0ac50b954aa4a404a7d31d91c36861635e2e24682105414ac7e7539e97886c471e1c1276b7381cbcb94be6b4aaa68becf7574ddedbc5a15de8390afd700549c2031a3391b4ee48244583ebaf0e8d1843976a4edbd57af366a3401d41802cb70a1ddb43eab4aa0c8eda592440a92254c4e0abb5e9b03bff7c7c6a4312599f70bba7e2c93d5faa19cb20989e371dd5518f3c207a10808b8572214e9eb48886091b21f031226f6c7322472f379e0a0b6a9c6722ffc9616121eb9e520d3506eddd21c9739fdb5efb8f4bf7a0f605f3781eb7741817f048f7cb79133f29b85d8bd4a2273007864b622a084f158658a55570915fec7eae03ece2273b8822bedccd9cae387738d70c5bc1d1bce5f1d426bd82f6dde22f4262724c5c19603b40ddccc190a64d4396a170234fe5afc8379376ed8e22bc3aecdad3c3283fce05e3e9b6ccb7f9d5b05893d95f1fb3efe0d662508aea87bfbba040b5d1de551eb9a6355fab6580ebd56112db7b7bf51e310054760e36e80f50df10c7740f32cd9e3e65ca8a6253b0c94a304de8390b1f150c033c3bee137ec255cb9e69202c3e155cc004c3rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenQA-4.6.1589882993.dd2749ac3-lp152.1.15.src.rpmopenQA-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1^@^'@^2^^^@^U@^@^^^&@^@^^H^^@^@^k@^v^^0^<@^|@^x^v^s^^oj@^l@^`^\@^Y^V]^S^O@^O@^K^F^C^?@^=Q@^:@^6^4^1s^-@^*@^&^"@^ P@^@^^^r^ ^] @]q]]@]7@]@]]]Y]e@]@]]҇]]@]]X]@]]W]c@]c@]@]],j] @]]] ] #]/@]@\\\@\9\\\@\@\ \\\@\@\Y@\~d\zp@\u*@\q5\k\b@\`@\Yz\V\R@\LK\HW@\A\73\'@\@\\I\\ `\[@[@[@[i@[t[Q@[ @[{[m~@[D[2*[(@[$[!@[)[[@ZnZZZ@Z@Z؄ZЛZЛZJ@ZJ@ZZZ@Z Z~ZyZp^@Zg#ZYZTZ;@Z'ZOZ@Z ZfYq@Y@YYYY}@YI@Y7Y0Y-^YYYX!@X!@X@XXXwoXwoXwoX[@XZnXRXRXJXJX<@X2X!@X!@X@X@X TW$W@W0@WRW@W@W@WgWN@W @@V3V`VVVV.UUAUmU@UUa@U%@U hT@T@TT T@T@T@T-@T@T T@T@T@TT@T{Ti@Td@TR(@coolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comStephan Kulow coolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.commarius.kittler@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.commarius.kittler@suse.commarius.kittler@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comrd-ops-cm@suse.derd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.demlin@suse.comslindomansilla@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.desantiago.zarate@suse.comrd-ops-cm@suse.decoolo@suse.comokurz@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.deoholecek@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comcoolo@suse.comlnussel@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comlnussel@suse.delnussel@suse.deoholecek@suse.comlnussel@suse.deoholecek@suse.comcoolo@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comsfalken@opensuse.orgoholecek@suse.comlnussel@suse.derd-ops-cm@suse.deoholecek@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comlnussel@suse.decoolo@suse.comoholecek@suse.comoholecek@suse.commlin@suse.com- Update to version 4.6.1589882993.dd2749ac3: * update-deps: Fix script path * Depend on Mojolicious 8.42 for session security fixes * Pass the first line of an os-autoinst multi-line error instead of discarding it * worker: Improve retrieving extended reason from os-autoinst * t: Catch all output in config.t * spec: Move configure-web-proxy to web UI package where it is needed * Dependency cron 200517 * Improve coding style in t/ui/18-test-details.t * Fix showing needle info when symlinks are used * Show candidate needle's last match/seen in the needle diff view- Update to version 4.6.1589554725.a1ad83f83: * Allow hidden keys in job template YAML * Return error when creating a needle only contains ocr area * Do not share controllers as base classes between micro services * Move actions and helpers used by multiple micro services into the OpenQA::Shared namespace * Remove more dead code * WebAPI needs the developer controller * Remove unnecessary referer check * Separate OpenQA::LiveHandler and OpenQA::WebAPI code a bit more * Add help for 'fetchneedles', 'openqa-bootstrap', 'openqa-bootstrap-container' * Add '--help' for script/configure-web-proxy- Update to version 4.6.1589385688.c7582131b: * Stabilize 25-cache-service.t using Time::HiRes * docs: Describe the possibility for cloud instances explicitly * t: Extract 'start_worker' method to reduce duplicate code * Dependency cron 200513 * t: Delete unused 'stop_worker' in 33-developer_mode.t * t: Prevent perl warning when 05-scheduler-full fails * Remove references to Test::More::Color not adding benefit * Mark unstable/flaky t/ui/27-plugin_obs_rsync_status_details.t as such * Add MicroOS bug reporting URL * Makefile: Bump timeout for 't' for accepted slow runs- Update to version 4.6.1589279446.c80b4132b: * Simplify test code in generating jobs settings * Fix dynamically deactivating tabs in test details * Fix returning result of finished job * Decrease polling interval of web socket console to potentially speed up tests * Ignore further JavaScript errors to reduce number of false-positive tests * systemd: Get rid of obsolete dependency of worker on apache2 * t: Add possibility to overwrite full-stack temp dir for easier debugging * Avoid additional white-spaces in job settings table * Test scheduled products search * Provide CPU flags on worker information for debugging CPU instruction support * Make scheduled product IDs in the table links * Allow showing scheduled product results when not logged in * Tweak styling of scheduled products table * docs: Add various hints for saving time in local tests * t: Improve t/32-openqa_client.t * t: Enhance test messages in t/32-openqa_client.t * docs: Delete duplicate mention of 'tidy' * Add '--help' for tools/tidy * t: Change javascript_console_has_no_warnings_or_errors to only output once * Dependency cron 200510 * setup-db: Prevent 'could not change directory' warning * Write JS code for audit and product log in a more compact way * Add link from test details to scheduled product page * Show all scheduled products in the web UI * Show scheduled product on test details page * Avoid repeated calls to $job->clone_id * Fix the issue `_URL` in jobs post is different from that in isos post- Update to version 4.6.1589026701.ed65375c3: * Fix missing mojo mode in scheduler daemon startup file * docs: Update local docker test usage * Initialize timeago elements correctly when refreshing info panel dynamically * Fix updating SVG favicon (without page reload) * Fix autoscroll checkbox in live log * Dependency cron 200508 * t: Harmonize more test messages in full-stack.t * Try to stabilize ObsRsync unit test during stresstest * Add proxy detect for OpenQA::Client * docker: Use useradd -m (--create-home) * Use defaults already in startup scripts rather than systemd- Update to version 4.6.1588874206.b9aea9c2e: * docs: Update Contributing docs regarding dependencies * t: Remove "sleep 8" in full stack test after stabilization * Remove comments to fix syntax highlighting and unnecessary blank line from fullstack test * Adapt fullstack test to AJAX-based job status updates * Load autoinst-log.txt without page reload in details tab * Fix updating the info panel class and stopping the developer mode * Update favicon on job state transition (without page reload) * Avoid refreshing the whole test details page on job state transitions * Remove debug message leading to "Use of uninitialized value [...]" warnings * Fix get_last_test() in ObsRsync Plugin * Convert DISTRI into lowercase before replacing variables * Dependency cron 200507 * t: Delete obsolete 'full-stack.d' directory * t: Remove unnecessary 't' prefix in temporary dirs * t: Ensure full stack test run has not passed "shutdown" module * t: Abbreviate 'wait_for_developer_console_contains_log_message' for nicer line wraps * t: Properly export functions from Open::Test::FullstackUtils * Use Test::Most instead of Test::More for convenience * Let Mojo::UserAgent deal with WebSocket redirects * Dependency cron 200506 * Fix missing_assets to ignore repos, not 'hidden assets' * Add specific error messages for cache directory unspecified * t: Reduce runtime of 25-cache-service.t with lower sleep periods * t: Add timeout for cache service test internal wait * t: Add more unique test messages to 25-cache-service.t * Add convenience sub-package 'openQA-single-instance' * docs: Mention installation of openQA-worker explicitly * docs: Correct reference to main package as "openQA server package" * docs: Simplify reference to minimum Leap/Fedora version * The exporter is not needed for authentication modules * Improve openqa-validate-yaml * Prevent repeated import attempts in WebAPI::Controller::Session * Use explicit 'return undef' in WebAPI::Controller::Session * Validate job done event * Refactor jobs tests into subtests * Simplify WebAPI::Auth::OpenID * Simplify WebAPI::Controller::Session with early returns * Simplify WebAPI::Controller::Session * Remove unused imports in WebAPI::Controller::Session- Update to version 4.6.1588677155.c96a967f7: * Dependency cron 200505 * Makefile: Fix evaluation for 'test-unstable' as followup to a8537863d * t: Correct cache test wait loop condition in full-stack.t * t: Add wait for UI instrumentation instability in full-stack.t * t: Phrase test message positively to prevent confusion * Use more Mojo::File in t/full-stack.t * t: Use existing dataset as time reference for stability * t: Add test messages to javascript_console_has_no_warnings_or_errors in full-stack.t * t: Fix missing leading double quote in plan skip message- Update to version 4.6.1588418631.c4bd338ae: * t: Ensure all test code is executed in every environment- Update to version 4.6.1588266331.0a51f4d32: * Dependencies: Add Getopt::Long::Descriptive to client deps * Also mention the --verbose option of openqa-cli * Use an endpoint that actually requires authentication for the authentication example * Add another JSON example and fix an error in the authentication section * Mention that MOJO_CLIENT_DEBUG is an upstream feature and the output can change * The openQA REST API uses JSON everywhere now, so content negotiation is not needed * Add openqa-cli documentation * Add back t/ui/01-list.t to "unstable" as not reliable * Makefile: Fix evaluation of 'unstables' * Add Test::MockObject and Test::Exception to test dependencies * Make connection errors more obvious * Fix `TEST` is not replaced when using `isos post` * Add --verbose option to "openqa-cli api" * Add route for latest test outcome in ObsSync Plugin * Revert "Use defaults already in startup scripts rather than systemd (alternative to #2864 with shell wrappers)" * t: Fix 'QEMU_NO_KVM' incorrectly added in QEMU_NO_KVM=1 * Increase proxy timeout * Provide a '--help' option to all our scripts * t: Save 5s test execution time in full-stack.t with smarter timestamps * t: Delete potentially offensive and unhelpful TODO comment * Move existing client script code to a better place- Update to version 4.6.1588072966.ee098707b: * t: Use proper copyright header for OpenQA::Test::Database * Delete obsolete 'check_dependencies' script * Default to HTTPS in openqa-cli * Consistently use openqa.example.com for examples * Update documentation to use openqa-cli * Update openqa-cli usage messages and add --osd/--o3 options * Use openqa-cli in full-stack tests * Remove dead test code * More unicode tests for openqa-cli * Add new openQA client to openQA-client package * Implement openqa-cli archive subcommand * Add user friendly exception handling with color highlighting and pretty printing of JSON * Allow loading the request body and form data from a file * Turn JSON objects into form parameters with --form * Rework JSON handling and set a default Accept header * Allow key/value pairs to be passed as arguments * Move apibase handling to base class too * Use the new license header * Add an archive command to openqa-cli as a first example for extensions * Add basic openqa-cli structure * Allow to overwrite 'worker connect retries' by environment variable * Fix local runs of full-stack test failing on "Content has not changed" * t: Cover test output with Test::Output * Use defaults already in startup scripts rather than systemd * Rename old "slenkins" data to be more generic * t: Try to stabilize t/ui/01-list.t- Update to version 4.6.1587822981.75468e7ef: * Fix exit code returned by client * Rename YAMLRenderer plugin to YAML * Update all overlooked old copyright notices * Add soft failure support for JUnit log parser * Dependency cron 200424 * Fix a very sporadic issue of a wrong comment header applied * openqa-clone-custom-git-refspec: Prevent warning about empty variable * Improve warning about undefined empty arg on clone with quotes * Improve the check for missing assets * tests: deduplicate $schema->resultset('Jobs') in t/15-assets.t * Remove a small race condition in asset tests * Set the machine name before expanding specified variables * Extract duplicated code from generating job settings * Dependency cron 200423 * Check if there is a recent event before returning it * Correct creating directly chained dependencies when cloning job * Extend client test for JSON/YAML output and error handling * Cover client with more tests by extracting methods into lib/ * t: Split out Client::Archive test from generic client test * Add simple test for client script * Slightly simplify script/client * Fix repo in dirty status request in ObsRsync Plugin- Update to version 4.6.1587630471.ceb108926: * Improve tests for job restarting * Allow to force restarting a job via the web UI * Update build_dependencies.sh to work on dependencies.yaml * Run make update-deps * Add t/45-make-update-deps.t * Make an exception for Perl::Tidy * Add tools/update-deps and dependencies.yaml * t: Stabilize and simplify ui/02-list-group.t (again) * Speed up dashboard tests * t: Stabilize ui/02-list-group.t * spec: Sort dependencies * t: Improve test stack reporting by avoiding Test::More tests in helper libs * t: Extract common full stack function "schedule_one_job_over_api_and_verify" * t: Add timeout for loops in full-stack.t * Consider directly chained dependencies when registering assets * Dependencies: Remove commas from requirements in spec * Scripts should return 0 when called with --help * Add test running all perl scripts with --help * Select also script directory in CI * Dependencies: Sort cpanfile * Allow running tests within Makefile despite unclean environment * Return error when error happens in caching assets * t: Speedup full stack test with KVM when available * UI tests: Add message to wait_for_ajax calls * Show test details tabs only via hash if it makes sense for the job state * Add explicit tests for the job's has_* functions * Load test result tabs async on demand- Update to version 4.6.1587416201.4df4ad16d: * Fix load_templates --clean to wipe more than one entry per table * Partially revert t/ui/13-admin.t change * Fix missing import 'log_error' in WebAPI::Controller::Running * t: Stabilize ui/15-admin-workers.t * t: Stabilize ui/27-plugin_obs_rsync_status_details.t * t: Stabilize ui/13-admin.t * t: Stabilize ui/10-tests_overview.t * Remove duplicated line in CSS file * Revert "Extract duplicated code from generating job settings" * tools: Improve output of retry * t: Cleanup nonsensical notes and steps in ui/06-operator_links.t * t: Turn comments of 06-operator_links into explicit test notes * Delete obsolete reference to phantomjs * t: Delete obsolete FIXME * t: Stabilize ui tests waiting for ajax * t: Stabilize ui/14-dashboard-parents.t waiting for build results * t: Use descriptive string in wait_for_ajax rather than comment * Add output of each try in tools/retry * t: Replace busy-loop with small-interval sleep in 25-cache-service.t * t: Make test messages in 25-cache-service.t unambiguous * t: Speedup 25-cache-service.t * Extract method do_asset_caching for easier testing * t: Fix instabilities in ui/01-list.t on accessing /tests * Validate parameter passed to comment API routes * Validate parameters passed to Worker API routes * Cover asset_caching by tests * Pick up extended reason from state file if available * Use Mojo::File correctly in OpenQA::Client::Archive * Fix --with-thumbnails option of client --archive feature- Update to version 4.6.1586954096.7160d88d9: * t: Add test description strings for all 'click_element_ok' calls * docs: Add description of folder structure * Separate all "scripts" to be packaged from development "tools" * t: Allow to set custom test output message on wait_for_ajax calls * t: Reduce sleep time in "schedule_one_job" to save testing time * t: Extract method "find_status_text" for full stack utils * Replace all uses of mock with redefine * doc: Mention script/tidy script * doc: Mention test-unit-and-integration target * doc: Fix variable name * openqa-clone-custom-git-refspec: Allow '/' in branch name * Refresh details page only when the job state changes * Use same setup function for scheduled tests as for other "pre-done" states * Show settings by default also for assigned jobs * Extract duplicated code from generating job settings * Simplify Schema::Results::Jobs (map) * Simplify Schema::Results::Jobs overview preparation * Simplify Schema::Results::Jobs with early returns * Extract Schema::Results::Jobs logging method * Simplify Schema::Results::Jobs "add/remove_result_dir_prefix" * Simplify Schema::Results::Jobs "delete" method * t: Add simple test for job name/label/scenario * script: Ensure no left over .tdy files on aborted/failed tidy * Cut reason after 300 characters * Validate result when setting a job to done * asset cleanup: Consider all jobs which are not done or cancelled as pending * Do not re-generate settings when cloning a job * Handle the settings that start with `+` when creating a job- Update to version 4.6.1586679856.9abbce836: * Dependency cron 200412- Update to version 4.6.1586463829.b1aa1fe9b: * Add explicit API test for obsoleting job * bootstrap: Create symlink for sle tests to work- Update to version 4.6.1586355542.a1ef862a8: * Prevent warning when showing video without t parameter * Move log setup into log module * Allow restarting jobs with empty assets (instead of showing error) * Improve test for preserving pending assets * Add unit test scenarios for different needle property types * Makefile: Decrease limit for api tests after b72cccfca * Move ServerSideDataTable to only place where used * spec: Move subpackage specific files out of common package * Move JobGroupDefaults out of schema to be usable for worker * Prevent investigate request timing out * Adapt codecov target to current coverage of 93% * Remove perlcritic policy ConsistentQuoteLikeWords- Update to version 4.6.1586201785.538ad8205: * t: Provide info in 43-scheduling-and-worker-scalability.t also in non-verbose * Fix regression in b72cccfca about undefined mod results * t: Fix overly long runtime in api/02-iso.t * Fix missing method import "find_bug_number" * systemd: Fix path in openqa-enqueue-audit-event-cleanup.service after d509e69f4 * Dependency cron 200406 * Split off log functions into a new module * Store the entire result provided by os-autoinst * Improve Perl module search paths of some tests * Increase timeout of jobs in scalability test for stable CI runs- Update to version 4.6.1585918802.94bcc1cc4: * Add retry for worker-webui connection on 408+425 * Prevent more useless retries for worker-webui connect * Extend retry in worker-webui connect to cover rebooting hosts * t: Extend 24-worker-webui-connection.t to check different retry codes * t: Extract method for send in 24-worker-webui-connection.t * Cover broken needle code path in a unit test * Provide enqueue convenience scripts rather than systemd * Account freed disk space when deleting logs * Unify single/multi audit event rendering- Update to version 4.6.1585815597.24b98a95a: * docs: Mention the importance of synchronized clocks for remote worker machines * docs: Update "Run workers" to not only mention "virtual machines" as backend * The job result is a string and not a number * Turn warning about missing assets when restarting jobs into error * Harmonize License copyright format * Validate parameters passed to job group API routes * t: Fix sporadic failure in 10-tests_overview.t * worker: Test ignoring known images/files * Improve API test for updating status * Simplify API test for updating status * Prevent uploading non-screenshot results twice * Improve logging of result size accounting * Properly consider configured repo in ObsRsync check of dirty status- Update to version 4.6.1585581139.1203c5b7b: * Validate parameters passed to bug API routes * Skip detecting asset key when asset value is null * Dependency cron 200329- Update to version 4.6.1585334025.c496db1d6: * Revert "Improve the operation of 'jobs post'" * Rewrite asset list generation for cache service * Revert "Rewrite asset list generation for cache service" * Ensure final linebreak in job template editor * Do not re-generate settings when cloning a job * Handle the settings that start with `+` when creating a job * Dependency cron 200326- Update to version 4.6.1585161757.bb4097462: * Fix triggering ObsSync using repository * script/openqa-clone-job --help exits with 0 * Rewrite asset list generation for cache service * script/client --help exits with 0 * Add JSON::Validator, YAML::PP, YAML::XS to client_requires * Add openQA-client-test.spec * Refactor saving details/screenshots * Fix shellcheck complaint about sh/bash mismatch in t/dummy-isotovideo.sh * Fix shellcheck complaint about SC1091 in script/openqa-bootstrap * openQA.spec: Run style checks in %check to detect issues in other products * Return JSON for all API routes * Extend reason quit so its meaning is more clear * Add pointer to log details for incomplete jobs with reason "died" * t: Simplify 03-auth test * Add explicit test for auth with slight OpenID coverage increase * Remove untested and probably unused iChain authentification- Update to version 4.6.1584957320.c50fd7cfd: * Simplify 'prepare_data_function' as followup to #2793 * t: Bail out early on Selenium reported errors for concise log * t: Ensure necessary test dirs exist for ui/21-admin-needles.t * Extract common screenshot DB insertion function * Fix extracting compressed downloaded files * Validation for Asset controller- Update to version 4.6.1584727112.296692355: * Store size of job results in the database on upload * Prepare storing size of job results in the database on upload * Improve tests for job artifact upload * Validate parameters for artefact upload * Convert uses of `each` to `foreach` * Use validation_error helper in controller for saving needles * Adapt to Mojolicious 8.34; explicitly allow empty optional needle params * Dependency cron 200319- Update to version 4.6.1584559784.011f30866: * Makefile: Prevent unexpected self-test run time increases with timeouts * docs: Move growing "testing" section out of "commit rules" * docs: Delete obsolete remark about dependencies in docker container * Makefile: Add convenience variable "TESTS" for easier selection * t: Reduce default wait_until check interval to save testing time * t: Simplify "schedule_one_job" * Prevent possible DBIx warnings when updating job modules * Add parameter repository in ObsRsync sync * Take automatically added newline into account for the reference * Add route list of configured projects in ObsRsync * Configure dirty status checks per project in ObsRsync plugin * Avoid scalability test failures in the CI * Improve coding style of streaming controller functions * Prevent race condition when assigning and sending jobs to a worker * docs: Clarify users and expected errors during an import * Handle web socket errors in live/developer mode code * Makefile: Separate scope of "checkstyle" and "test-checkstyle" for clarity- Update to version 4.6.1584377052.a1f8cccba: * Prevent flooding PostgreSQL logs with errors when inserting job modules * Remove DBIx hooks for updating job module statistics of jobs table * Improve checks in test for creating custom job module * Improve bug cleanup test to collect coverage and use helper to run job * Remove unused and uncovered helpers * Refactor job status update to avoid uncoverable branch * Mark handling for database errors which are hard to test as uncoverable * Remove support for old workers relying on redirection for ws route * Remove unused and uncovered part_of_important_build function- Update to version 4.6.1584172463.88254ac92: * Rename the JobTemplates module to YAML * Slightly simplify code WebAPI::Controller::API::V1::Job and Worker::WebUIConnection * Mark uncoverage subroutine in OpenQA::Worker::WebUIConnection * t: Slighty simplify t/24-worker-webui-connection.t * t: Add explicit to stabilize test coverage for OpenQA::Worker::WebUIConnection * t: Fix warning '"my" variable %job_info masks earlier declaration' * Fix perlcritic issue * Fix t/40-script_openqa-clone-custom-git-refspec.t failing when github auth token defined * Fix use lib in script/* * Fix ARRAY in loaded job template settings * Split YAML out of JobTemplate API tests * Job templates test: update check for error message * Add explicit test coverage for OpenQA::Scheduler::Model::Jobs::_pick_siblings_of_running * Make parameters for splitting screenshot cleanup configurable * Add worker name to reason when stale job detection incompletes job * Fix the bug that only dereference the symlink needle in one page * Validate parameters passed to job template route consistently * Add test for re-scheduling only on 2nd idle status * Improve test coverage of worker * Enable scalability test in CI * worker: Avoid rejecting jobs when already working on them * Improve test coverage of the worker command handler * Format test of the worker's web UI connection in a more compact way * Revert condition for job-specific web socket messages * Add test for handling the quit message from the worker * Prevent race condition when assigning and sending jobs to a worker * Enhance scalability test * Have openqa-clone-custom-git-refspec parse PR for test URLs * Prevent scalability test from using port which is already in use * Use service_port for web socket server redirection * Add fullstack test for scalability * Tweak result upload of worker * Optimize _optimize_image- Update to version 4.6.1583409674.75be31485: * t: Add explicit coverage for "_read_result_file" to fix flaky reports * Check whether screenshot cleanup tasks only clean their range * t: Ensure reliable statement coverage for worker settings * Simplify and cover OpenQA::Worker::Job::_optimize_image in tests * Delete obsolete note from "_optimize_image" for resolved feature * Simplify read_test_modules to make test statement coverage reliable * t: Add explicit coverage for "worker stopping while uploading" * t: Fix grutasks taking excessively wrong while gathering coverage data * t: Use explicit wait functions where needed * t: Wait for ajax in wait_until as well * Fix script/retry for STABILITY_TEST preventing false-negatives * openqa-clone-custom-git-refspec: Add option to pass clone-job arguments * Fix script/retry for STABILITY_TEST preventing false-negatives * openqa-clone-custom-git-refspec: Allow to overwrite default clone args with env variable * Bootstrap: Install required dep qemu-tools * Split minion job for limiting screenshots * Clean up the route tree a bit for faster routing * Avoid warning about missing UEFI_PFLASH_VARS asset * Move all circleci test groups as convenience targets to Makefile * Dependency cron 200303 * Read build from Media lst files in ObsRsync Plugin * Add test for "openqa-clone-job" * t: Extract functions "run_cmd"/"test_cmd" for reuse in script tests * Split 'checkstyle' tests within circle CI to reduce overall runtime * Bring back elapsed time in CI tests for easier identification of time-hogs * Makefile: Sort 'test-unit-and-integration lower to keep top-to-bottom order- Update to version 4.6.1583157906.85e9020f0: * Fix permissions of script/setup-db to be executable * Dependency cron 200302 * Fix 'openqa-setup-db' on SLE12 builds * t: Update copyright for all changed test files * Harmonize shebang style * Add empty 'unstable_tests.txt' to prevent 'No such file' * Update license notice in each file to use URL rather than postal address * t: Avoid ambiguous meaning of 'kill' when we actually 'terminate' * t: Also check for warnings in full-stack- Update to version 4.6.1582908813.c5b7e89c0: * Makefile: Add KEEP_DB flag for optional, faster re-runs * Extract a script "openqa-setup-db" for local database setup * Make "developer" test as unstable based on recent results * systemd: Prevent error on repeated startup of openqa-setup-db * Improve shell style of t/test_postgresql based on shellcheck * systemd: Make worker also only depend necessary network related targets * Remove misleading log message of test setup * Make check for error message in fullstack cache test less specific * Refactor setup of fullstack tests * Initialize host of cache client via sub to ease test setup * Format test of the worker's web UI connection in a more compact way * systemd: Fix premature startup of services when network is not fully up yet * worker: Log only a debug message if a JSON can not be opened * Remove unused modules from scheduler fullstack test * Alleviate debugging of test_postgresql * load_templates: Remove query uses from table requests * load_templates: Create groups that do not exist * Prevent search popover icons from appearing on top of menus * Improve logging, error handling and notes for worker-server connection * Delete unused and uncovered method 'Worker::WebUIConnection::disable' * Delete unused and uncovered method 'Utils::append_channel_to_defaults' * Stop the worker as usual when handling 'incompatible' command * Update systemd/openqa-enqueue-bug-cleanup.timer * Align jobtemplate inline help to left * Fix openqa-enqueue-bug-cleanup.timer description- Update to version 4.6.1582671252.ca350bd34: * Revert "Merge pull request #2750 from Martchus/fix-scheduler-ws-race-condition" * Dereference symlink when displaying needle info * Declare YAML::XS properly as a runtime dependency for JSON::Validator * Log job duplication only at one place * Use prefix 'abandoned: ' for reason in stale job detection * Use consistent data structures in worker logs * Improve test coverage of the worker command handler * Format test of the worker's web UI connection in a more compact way * Stop the worker as usual when handling 'incompatible' command * Revert condition for job-specific web socket messages * Add test for handling the quit message from the worker * Prevent race condition when assigning and sending jobs to a worker- Update to version 4.6.1582356603.73b75d1a4: * Dependency cron 200222- Update to version 4.6.1582309642.4cf93ee9f: * Add merge key example to inline help * Add docs for merge keys * JobTemplates: Add tests with merge keys * Use YAML::PP for JobTemplates * worker: Add explicit test for last error of web UI connection * Avoid redundant code in worker job test * worker: Handle job duplication failures * Show warnings when restarting job and assets are missing * Add function to determine whether a job misses assets * Move check for hidden asset types into its own function- Update to version 4.6.1582278168.345f257f6: * Use unique git hash from vars.json for src links when possible * docs: Add hint about importance of using the same filesystem for cache+pool * Fix source code remote path for optional .git github links * Fix missing dependency 'perl(Archive::Extract)' for worker since e86f68b08 * Silence a warning in 24-worker-overall.t * docs: Replace dated styling/Mark systemctl command * Handle the case where there are no screenshots more gracefully (avoiding warnings in tests) * Redirect to remote code location for source view when using CASEDIR * Flatten the download conditions a bit * Do not capture and store all job output as a note * Log all download errors * Fail the job instead of throwing an exception * Add tests for OpenQA::Downloader * Use OpenQA::Downloader in download_asset task * Add downloader module and use it for the cache service * Use preferred explicit rendering in "src" method * Simplify "src" method showing source code of test modules * t: Fix and re-enable ui/03-source.t- Update to version 4.6.1582068800.bb5602a1e: * Simplify bugref counting with map * Add GRU task "limit_bugs" to cleanup orphaned bugs * worker: Simplify '->stop' call slightly * Remove redundant timestamp output in worker log * Fix custom variables escaping on clone_custom_git_refspec * Fix random failures in t/api/08-jobtemplates.t * Tweak Build regexp in ObsRsync- Update to version 4.6.1581660411.10959f77b: * Dependency cron 200214- Update to version 4.6.1581352297.ca1cecd07: * Revert "Have openqa-clone-custom-git-refspec parse PR for test URLs" * Dependency cron 200210- Update to version 4.6.1581075098.818ddb190: * Make test for worker registration error less specific * Let the current job continue after a fatal registration error * Simplify error handling of worker registration- Update to version 4.6.1581058621.9523164cd: * Dependency cron 200207 * Make help icon after search field fully clickable * Consistently store gru job output as a note * Only rebless jobs once * load_templates: better error handling * fetchneedles: Fix "no tracking information for the current branch" on self-repair * Have openqa-clone-custom-git-refspec parse PR for test URLs * Improve the format of execution time * Add final linebreak to jobtemplate yaml * Avoid re-scheduling accepted jobs before first status update * Make scheduler fullstack test more stable * Add test for aborting job during setup * Consider worker no longer immediately offline when ws connection finishes * Prevent passing the reason 'cancel' as it provides no extra information * Prevent worker from overriding reason set by web UI * Dependency cron 200205- Update to version 4.6.1580827995.3476c9f7b: * Move webapi templates from "templates/" to "templates/webapi/" * Avoid undefined $appname/$api_description errors by using the stash * Fix product log test which might fail when table slightly overflows * Trigger result cleanup daily instead of hourly * Use separate timer for enqueuing cleanup tasks * Reset the editor to the minimum viable YAML if empty * Use aliases in JobTemplate schema * Have test_once in clone-custom-git-refspec test report errors correctly * fetchneedles: Do not fail the script when we are on the correct branch * openqa-bootstrap: Fix indendation- Update to version 4.6.1580490152.07482738b: * Fix incorrect exit code in obs_rsync_update_builds_text Gru task * Limit ObsRsync task retries * Dependency cron 200131 * Support 'testsuite: null' in jobtemplates- Update to version 4.6.1580407290.340620ce0: * Read all keys from ini section of none is defined * Avoid hardcoded schema version in deployment test * Fix old database migrations * Fix old DB migrations by combining them into 76-77 * Set reason when stale job detection marks job as incomplete * Pass the worker's reason for stopping a job to the web UI * Improve test code for job duplication * Show reason in info panel * Allow passing a reason when marking a job as done * Test all DB migrations from version 76 and not just the last 2- Update to version 4.6.1580150954.a98528363: * Improve build info in ObsRsync UI (#2694) * Adjust parsing of project state in ObsRsync Plugin * t: Add more test strings * t: Fix typos in full-stack * Fix "Use of uninitialized value in numeric ne (!=)" in worker * Fix "Can't use an undefined value as an ARRAY reference" in worker * openqa-clone-custom-git-refspec: Provide option parsing with help text * Add retry script for testing with flag STABILITY_TEST * Slightly simplify JobModules * Replace references of "TRAVIS" with a generic term or CircleCI in cpanfile and tests * Treat all previously unstable tests as stable after proof of stability * t: Extract method for ajax/animation handling * Stabilize t/ui/14-dashboard-parents.t by relying on "collapsed" only- Update to version 4.6.1579943557.88a382a14: * Dependency cron 200125 * Simplify job#done * Add test in openqa-clone-custom-git-refspec for trailing '/' * t: Cover all current features of openqa-clone-custom-git-refspec- Update to version 4.6.1579790259.c018d5dc2: * Workaround api request in ObsRsync Plugin * Remove dead code * Use uppercase variables in OpenQA::Utils to make their scope immediately obvious * Replace compose_job_overview_search_args and param_hash methods with helpers * Move mark_job_linked function into the correct resultset * Move job_group_and_parents function into the correct resultset * Use :DEFAULT instead of importing twice * Replace global variables in OpenQA::Utils with functions * Remove unused export * Do not export variables from OpenQA::Utils anymore * Add OpenQA::App as a singleton container, replacing $OpenQA::Utils::app * Move worker specific code from OpenQA::Setup into OpenQA::Worker::App * Just use Mojolicious as a base class instead of trying to reinvent it * Parse Snapshot number in ObsRsync plugin * Add silent reload of dashboard contents for fullscreen mode * Dependency cron 200123 * Add dependency to client so asset download via SSL works * load_templates: fail early if host is unreachable * Log asset download error to autoinst log file * Fix asset status test so it works when the cache file does not exist * Dependency cron 200122 * Support batches in ObsRsync Plugin (#2653) * Use new format to store job module details * Set text mime in ObsRsync download * Use is_admin_js helper in asset table template * Show cached assets also when cleanup is ongoing * Add CLI tool to validate a job template YAML file * Fix ObsRsync mutex leak on errors- Update to version 4.6.1579529599.e032e3659: * Do not retry downloads in the cache service when there was a 4xx response * Unify retry handling for all 4xx/5xx and connection errors in the cache service * Dependency cron 200120 * Improve coding style in scheduler tests * Consider assigned jobs when duplicating jobs * Simplify auto_duplicate code * Avoid race condition in job scheduling- Update to version 4.6.1579272112.ccebff1bd: * Allow more than one keepalive connection per cache service worker * Update perltidy to 20200110 * Fix tidy in night job * Retry cache service downloads for many more errors- Update to version 4.6.1579176985.3721eca2e: * Add labels to auth, git and dependency PR steps in CircleCI * Show the execution time of job modules * Use `is_admin_js` on job templates page * Use sub-heading for job templates * Format YAML editor buttons uniformly * Improve general documentation on job templates page * Document the description syntax in the YAML guide * Show YAML guide also when not logged-in * Dependency cron 200115 * spec: Exclude flaky 17-labels_carry_over test- Update to version 4.6.1578936542.0e251d1f0: * Fix cache service log formatting * Test asset download of openqa-clone-job script * Fix support for symlinked cache dirs * Allow to skip removing documentation output * Improve referencing different setup documentations * Move "Development setup" to contributing * Improve documentation about db migration * Fix documentation for passing --from to openqa-bootstrap * Add further documentation from openQA-helper * Provide general info about making a devel setup, mention openQA-helper * Use job_template_name as the TEST when scheduling jobs- Update to version 4.6.1578688138.bc8a43167: * Don't have a default size limit on parent group level * Prevent old but newly cloned assets from being cleaned up immediately * Use a fallback to symlink assets if hardlinks fail * Use hardlinks for downloaded assets when possible * Test whether web UI actually works after db migration * Only fetch job groups when delivering HTML- Update to version 4.6.1578575737.d02ae56c3: * Add auto-cleanup for temp files created by web UI * Fix db migration for size_limit_db column of job_group_parents table * Be more defensive and accept more host formats * Hosts are passed to the cache service jobs without a scheme * Prevent jshint warning in test_result.js * Render investigation info as table * openqa-clone-custom-git-refspec: fix curl_github * Add test for Sync button in ObsRsync plugin * Rename TEST_SUITE_DESCRIPTION to JOB_DESCRIPTION * Prevent loading investigation tab contents twice * Support downloading assets with special characters like "#" and ":" in the name * Allow unsetting asset size limit in web UI * Assign job group asset limits explicitly * Extend asset cleanup tests to cover job groups within parents * Adapt tests for asset limit on parent level * Migrate default_size_limit_gb to size_limit_gb * Adapt group property editor to asset limit on parent level * Adapt asset table on admin page to parent level asset limit * Adapt asset list on admin page to parent level asset limit * Enforce asset size limit on parent group level- Update to version 4.6.1578338128.7d62398b0: * Asset download: fix return statement broken in f0d70f1 * Minor cleanups for job settings- Update to version 4.6.1577879607.68ae00aa4: * Dependency cron 191231 * Improve documentation about test flags (especially fatal)- Update to version 4.6.1577344382.5aaa6ced5: * Update Minion dependency (#2628)- Update to version 4.6.1576913552.acf2b6db3: * job investigation: Ensure consistent output with sorted hash keys * job investigation: Provide test+needles git log diff and files stat diff * job investigation: Skip "merge" commits with no helpful information in git log diff * Increase the inactivity timeout of the cache service client to be more consistent with other timeouts, such as the SQLite busy timeout * More concurrent download tests * Worker settings should be handled by the cache service application instead of a model * $a and $b are special variables in Perl, do not use them arbitrarily * Add description to job template editor * Use log level 'info' for message about groupless asset * Remove registered assets regardless of the type * Add description column to JobTemplates * Log asset downloads and rsync requests the same * Test concurrent rsync requests as well * Fix a race condition in 25-cache-service.t where a worker was kept alive too long * Connect parallel cache service downloads * Dependency cron 191218 * docs: Update use description of travis_test container * Delete obsolete travis.enc file * Fix serveral issues with OBS rsync plugin UI * job investigation: Give explanation on no test changes * Add details to ObsRsync Project List UI * Provide git log diff from tests in investigation * Ignore selected entries from vars.json files for investigation * t: Use more mojo Mojo::File instead of catfile/copy * Improve test for re-scheduling and marking jobs as incomplete * Improve scalability of job incompletion code * Fix substitution for job_templates schedule list * Refactor JobTemplates code * Improve video player * t: Save execution time in 18-tests-details by disabling wait timeout when expecting 0 needles * t: Add helper methods for selenium tests to disable/enable timeout to save time * Subside stale job detection * Trigger tasks for limiting assets and results/logs hourly- Update to version 4.6.1576340016.48aaffc06: * Fix step view for not-available video * Dependency cron 191214- Update to version 4.6.1576249179.0149ff62a: * Add actual error info to cache service availability error * openqa-clone-custom-git-refspec: Fix PR URLs specified with trailing '/' * Add test for openqa-clone-custom-git-refspec * t: Use more concise code in t/42-screenshots.t * Use more conventional variable name '$sth' for raw db calls * Remove "Jump to video" icon from "needle view" when video is unavailable * Prevent massive database errors on screenshot insertion * Use shorter name in CI nightly job * Let nightly job call script/tidy when needed * Update tidy to 20191203 * Return error when creating a job with invalid slash value * Dependency cron 191212000550 * Missing assets should not result in a connection timeout- Update to version 4.6.1576080365.3895c9109: * Fix regex and error message for prio * Parser::Format::IPA: Shorten test names * Avoid downloads from GitHub within 14-grutasks.t * Improve asset download * Use human readable size values in cache service logs * Clarify overlap between states CANCELLED and DONE * Improve consistency when dealing with job states/results * openqa-clone-custom-git-refspec: Add support for comma-separated job list * openqa-clone-custom-git-refspec: Fix github token authentication by removing quotes- Update to version 4.6.1575799153.4244d44fd: * Dependency cron 191208000552 * Update Mojolicious to 8.27 (#2576)- Update to version 4.6.1575653753.ea7f72d9a: * Fix height of embedded logfile * Use the correct new port in cache service monitoring tests * Provide investigation hints for failed jobs on request * templates: Use unicode character for three dots * Include the cache service when generating ports dynamically with OPENQA_BASE_PORT * docs: Replace all references of "TRAVIS" with a generic term or CircleCI * Refactor loop in test overview controller * Improve performance when loading test suite names for overview * Change TEST value to JOB_TEMPLATE_NAME * docs: Move whole .circle CI README into docs/ to include in generated and published content * docs: Focus on openQA-devel for easier test setup * docs: Fix reference to "docker/travis_test" * .circleci: Use common repo aliases * spec: Specify missing "chromedriver" in -devel * Allow monitoring of Minion jobs on every worker * travis_test: Add missing dictionary for os-autoinst- Update to version 4.6.1575490596.c17db72e0: * t: Add a description string for each step in 10-jobs.t * Avoid initializing test db twice in schema hook * t: Correct order of arguments for comment counting * Avoid creating 2nd Mojo::Test in details UI test * For the log context feature we require Mojolicious 8.24 or newer * Take all incomplete results into account in overview statistics * Support test suite setting start with plus- Update to version 4.6.1575276108.e1e4230d8: * t: Use a hash with default settings for the common "schedule_iso" calls- Update to version 4.6.1575043939.ce9ba48fe: * Increase SQLite busy timeout and reduce the number of concurrent SQLite connections * Show log content in test details tab on no module results * Fix asset definition of SVG icon for running jobs * Check generate-documentation if target branch exists * Calculate coverage explicitly in Selenium tests * Improve group property HTML template * travis_test: Add requirements for spellcheck in os-autoinst- Update to version 4.6.1574886568.694f13bc7: * Use the cache tmp directory for temporary download files created by the cache service * Use info instead of warn messages (so monitoring does not get triggered) and quote all string values * Allow for very quiet cache service tests * Be a little less verbose with init log messages * Allow from_worker to set attributes as well * Remove redundant error message * Format cache service logs to start with a newline * Improve cache service log messages to help with debugging issues of missing assets * Log all cache service output on both sides (cache service and worker) and fix many small test issues * Handle cache model logging through an attribute * Make resetting locks a little safer with a --reset-locks command line option * Change CI badge in README.asciidoc * Stabilize t/api/14-plugin_obs_rsync_async.t * Reset all leftover Gru locks after restart- Update to version 4.6.1574510263.217a2c530: * Bring back 'xorg-x11-fonts' needed for chromium startup- Update to version 4.6.1574454088.33c0b7556: * Remove likely unneeded dependency xorg-x11-fonts * Document the relevancy of file modifications for asset cleanup * Make architecture diagram color blind friendly * Fix worker cache in architecture diagram * Dependency cron 191122000544 * Make virtio_console1.log etc. show up as result files * openqa-clone-custom-git-refspec: Add syntax example for git branch * Dependency cron 191121000600 * Hide internal folders in UI * Tweak config of ObsRsyn Plugin * Take directory mtime of assets into account * travis_test: Fix Dockerfile based on tests in OBS * Document typical issues with migration of job groups * t: Hide all output from diag calls in tests * Prevent boilerplate text "$VAR1 =" in dumper output * Stabilize t/api/14-plugin_obs_rsync_async.t * Disable old job group editor admin functionalities in favor of YAML * docs: Describe YAML job templates editor as default with migration script from old * Remove unused option --check in Selenium * Migrate machine separator in dependency settings form ":" to "@" * Remove dead code from isotovideo client * travis_test: Try to fix container on OBS * Tweak markup and styling for step actions within external results * Detect documentation changes more reliably * Add deprecation notice for old job template editor pointing to YAML * Include external reporting template for parsed results too * Allow extra arguments to template loaded with bug_report_actions * Mark 05-scheduler-full.t as unstable due to recent instability * Use CI repo instead of openqabot in build-docs * Change favicon of test details page based on job state/result * Add generated png variants of state/result icons * Makefile: Extend icon generation to new ones with state/result * Add new icons for every interesting state/result * assets: Shift position of logo within frame to have more space * assets: Update logo.svg using new standard dpi as suggested by inkscape * Assume 25-cache-service.t to be stable since #2463 * Assume 15-admin-workers is "stable" since a6dd3fee5 * doc: Reword sentence about alias * Extend range for success status codes in client- Update to version 4.6.1574081651.5f93fbf7e: * fetchneedles: Fix missing usage of 'git_update_needles' in 2aadd3e56 * Dependency cron 191118000556 * .circleci: Fix ignored test results of unstable tests within loop * Reduce sleep times in 25-cache-service.t to slightly save testing time * fetchneedles: Try to repair needle git repos on detached HEADs * Ensure the job result is at least lower case (still allowing other than default values) * Dependency cron 191116000537 (#2508) * Add padding to icons on buttons * Hide YAML guide by default, expose via a button * Fix typos in comments * travis_test: Switch to supported Leap base after 42.3 is EOL * Makefile: Add YAML linter checks- Update to version 4.6.1573836985.cd1ad569b: * Makefile: Add 'help' target listing available targets * Treat all non-asset "_URL" settings as debug message only, not warning * Provide style check feedback earlier with parallel execution * Correctly format the age in days string * Fix flaky test 'ui/15-admin-workers.t' with proper waiting for popovers * Support configurable patterns for asset cleanup * Update Selenium::Remote::Driver to 1.36 fixing compatibility issues * Update perl-Mojo-IOLoop-ReadWriteProcess and os-autoinst * Straighten out asset clean-up semantics- Update to version 4.6.1573674965.36aeff76e: * Allow '@' separator to specify machine dependency * Add more MIME types so test assets do not get served as text/plain * Skip shellcheck on CHECKSTYLE=0 as well (#2476) * Show machine in dependency graph (#2477) * Fix error in nightly doc CI job (#2479) * Fix a bug in the fullstack test where it would not wait for the cache service to actually finish downloading * Document client's form parameter * Fix empty needles dir in openqa-clone-custom-git-refspec * Status updates can be a GET request now * Fix test coverage stats * Let the background jobs take total control of lock handling to reduce the chances of race conditions happening further * Fix copyright year and use a more obvious helper name * An inconsistently used retry without delay is not actually that useful for the cache service client * Significantly reduce the number of HTTP requests required for cache service status and info features * Use less code to do the same * The session token is not really needed, so we replace it with something much easier to understand * Store lock state in Minion instead of memory, removing the single process HTTP server requirement * The client method enqueue should have been targeting "/enqueue" instead of "/execute_task" * Remove some dead code * Dependency cron 191110000608 * Implement an expand feature for job group YAML- Update to version 4.6.1573412318.f4760c78f: * Ignore log file created by postgres test setup (#2470) * docs: Add description for 'uncoverage' annotations * Fix flaky coverage by use of uncoverable flag * codecov: Simplify format * Rename docs CI jobs to eliminate warnings * Install python-base in docs CI job * Dependency cron 191108000544 * docs: Mention new os-autoinst feature FORCE_PUBLISH_HDD_- Update to version 4.6.1573206130.f1d227eff: * Preserve GIT_ASKPASS between jobs in CircleCI * Unset PERL5OPT when executing isotovideo * Test/Coverage: Monkeypatch B::Deparse * docs: Clarify that the cache service needs full read permission in CACHEDIRECTORY * docs: Use consistent 'enable --now' parameter on all applicable systemd calls * openqa-bootstrap: Rely on service dependencies instead of explicit starts * Fix bug that cannot update job group using load_template * Fix URLs for needles in subdirectories (POO #58959) * full-stack.t: Add sleep before sending first command * spec: Use more common '>=' rather than '=>' * Remove fedmsg plugin * Makefile: Delete obsolete reference to deleted 'check_coverage' * Fix retry logic in make test * Prevent errors for requests to unknown resources in cache service * setup_workers should be part of the public API * Add controller and another model to cache service and remove some dead code * Turn cache service into a full Mojolicious app * Calculate cache dir size if it is a symlink * Deal with the error message when create/update job group * Updates in CircleCI testing environment * Move cache service into OpenQA::CacheService namespace * Use `croak` in OpenQA::Utils::log_fatal * Only log if test schedule has really changed * Enable regex search in 'Medium types' table * Pass PRJDIR to os-autoinst * OBS: Skip tests which are failing/flaky in OBS * Update spec: os-autoinst >= 4.6 * Update .circleci/autoinst.sha * Use a new file to exchange status with isotovideo * Fix OPENQA_CACHE_DIR environment variable * Remove dead code and make client a little easier to read * Remove circular reference and fix request encapsulation * Push documentation nightly to openqabot fork * Schema Profiler: override print method with log_debug * Do not waste resources to create unnecessary OpenQA::Worker::Cache::Request objects- Update to version 4.6.1571860277.da2de85d9: * spec: Fix package tests already failing on database setup * Fix VNC port info for ports > 99 in devel mode * Prevent logging needle problems twice * Provide default filename for needles from the name * Move needle_info() from Utils.pm to Step.pm * Fix missing 'qemu-kvm' in non-x86_64 package tests * Reduce use of project dir to be more flexible regarding custom test runs * Calculate coverage in Circleci in all branches * Move private function used across multiple classes into OpenQA::Utils * Log all installed packages instead of per-repo * Use Mojo::File to list cached files * Dependency cron 191022000544 (#2417) * fetchneedles: Make script fully POSIX sh compatible * fetchneedles: Avoid double-negation in symlink check * client: Fix the default host 'http://localhost' instead of https * There are many cache methods that do not need to be public * Disconnecting a random handle from the cache does nothing * fetchneedles: Save on execution time by skipping over needle dir symlinks- Update to version 4.6.1571651389.1516f15e7: * Extend filesystem documentation * Add local apparmor file to spec * Call script instead of bash in ObsRsync Plugin * Remove possibly localized quotes when checking PostgreSQL errors * Add default local apparmor profile- Update to version 4.6.1571253176.1a322744e: * PostgreSQL errors can be localized, so just use the name of the unique constraint * worker: Do not treat reconnect attempts as errors but with warning only * Remove wrong error handling code when sending ws messages * Prevent potential deadlocks in scheduler and ws server * Hide old job templates editor for new groups * Handle unique constraint correctly * Add missing resultset for screenshots and make a few small optimizations * Drop -v flag on test runs and avoid noisy job "name" * clone job: Support specifying a port in host URL * Add Dockerfiles from devel:openQA:ci (#2401) * Allow . for job template name/ test suite in schema * Remove openqa_dev from our spec file * Add a docs section elaborating on YAML by way of example * Fix openqa-load-templates example in documentation- Reset changes in test subpackages (useless duplication)- Update to version 4.6.1570902364.4f271c31: * Accept a list of machines in defaults and job templates * Collect coverage aretifacts in CircleCI * There should be no need to update the flags * Split data creation and update into two methods * Fix cgroup creation * Add unstable tests with retry to circleci * Make job template code for testsuites clearer * Lock test suites/machines/products used in YAML * Add RETRY parameter to test targets in Makefile * Add GLOBIGNORE to Makefile * Add coverage and build.docs to circleci * Add apparmor local overrides * Split off creation/ update of job templates * Dependency cron 191009000530 (#2380) * Recompute worker's broken state after job finished * Add test for refusing 'grab_jobs' when worker broken * Remove dead code from WebSocket server * Fix confusing test names in test for worker's QEMU check * Store test JUnit results for CircleCI * Update reference after saving YAML in editor * Make clickable links if a setting looks like a URL * Too many webui requests take more than a second to be processed, so limiting concurrency is much safer for now * Add note about plugins not to enable on typical production setups * apparmor: Update profile based on current o3 state * Elaborate on differences between table and YAML * Use fork for nightly circleci job (#2365) * Retry limit asset job on key constraint violations during scans * Improve job dependencies documentation * Consider 'not yet' as most recent when sorting running tests by 'Started' (#2369) * Dependency cron 191002000541 * Fix "Sync Now" button in OBS Plugin * Ignore errors loading dashboard if just navigating away * Update filter form label without page-reload * Correctly propagate job template name from YAML * Fix "timeago" rendering on AJAX-enabled dashboard * circleci: Remove whitespace at EOL * Fix publishing documentation via Travis * Don't silently exit doc generation if asciidoctor not available * Retry limit asset job on key constraint violations * Make t/37-limit_assets.t independent of t/14-grutasks.t * Load build results on dashboard via AJAX * Update perl-DBIx-Class-DeploymentHandler dependency to 0.002233 (#2359) * Move stale job detection from ws server to scheduler * Remove obsolete comment regarding offline workers * Rely on t_updated for the worker's online status in the web UI * Prevent failures in feature tour test * Set default check interval for wait_util to 1 second * Enforce same width for nodes in dependency graph * Move test helper embed_server_for_testing to test utilities * Add unit test for test schedule change processing * Avoid race condition if test_order.json changes too often * Reload test_order.json if it changes at test runtime * Refactor job result file path concatenation * Move incompletion logic when worker shows up again to scheduler * Add missing api tests to circleci * Explicitly specify constraint with JobTemplates->find_or_create * Update tidy to 20190915 * Update .circleci/dependencies.txt * Make the version number a simple link to the changelog * Enable nightly circleci dependency job on master (#2343) * spec: Fix missing dependency on IPC::Run in client (#2347) * Tolerate exceptions in OBS api call from ObsRsync plugin * Improve deleting a single asset in WebUI * Prevent loading arbitrary plugins in live view handler * Improve language of locking API documentation * Prevent the ws server to query itself * Clean up resource lock code a little bit * Move helper that had been accidentally placed in OpenQA::Utils to the helper plugin * Enforce consistent order for pending jobs of worker * Add colors for more job results in dependency graph * Use create instead of new/insert (overloads should still be fine) * Include more columns in unique constraint to be more future proof * Do not be lazy and use proper names for variables used more than once * Delete duplicate records before creating the unique constraint * Use a unique constraint to prevent a race condition that could result in the same module being added more than once under heavy load * Don't show nested folders in OBS plugin * Polish UI of OBS plugin * Reuse Mojo::UserAgent in OBS plugin * Don't parse XML with regex in OBS plugin- Update to version 4.6.1568795030.c377d780b: * Fix test failures on Leap 15.1 * Fix warning in 24-worker-overall.t * Test scheduler code for assigning multiple jobs to a worker * Sort directly chained children within same parent by test name * Adapt existing tests to adjustments for directly chained dependencies * Assign cluster of directly chained jobs to worker * Show assigned jobs as such under 'All tests' * Enforce consistent WORKER_CLASS when creating directly chained dependencies * Add compution of directly chained job hierarchy * Verify that inserting dependency cycles is prevented * Improve string formatting in scheduler code * Add circleci * Fix formatting of developer mode documentation * Update dep graph desc for START_DIRECTLY_AFTER_TEST * Update documentation for START_DIRECTLY_AFTER_TEST * Ignore SQL deprecate warning when querying job modules that are running- Update to version 4.6.1568387059.db88ff48d: * Add Storable dependency * Remove debugging * Create a deepcopy of the settings * Always sort keys to make behaviour reproducible * Demonstrate what's going wrong on staging yaml * Fix duplicate path name * Update YAML guide and schema to explain custom job template names * Publish API schema(s) along with other docs * Fix some issues in the doc markup reported by asciidoc * Always build docs and allow local generation * Fix warning caused by filename getting removed from reused form hashref in Mojo::UserAgent * Cleanup disabled code about 'Sereal' * Non-experimental YAML routes with explicit schema * Revert back to duplicating dependencies in dockerfile (#2315) * Extend the requires of openQA-devel and make them easier to review (#2313) * Implement optional defaults.settings key in YAML * Fix container image to use repository paths (#2310) * Improve test coverage for more background jobs * Increase coverage by allowing Devel::Cover to collect stats for background jobs * Fix printing usage when invoking openqa-clone-job --help * Remove codecov hack that was only added to increase coverage percentage, but does not actually test anything useful * Scenarios can have different settings * docker: Use devel package instead of spelling out duplicate dependencies (#2308) * Cut the test result directory shorter when its length is more than 255 * Support branch url on openqa-clone-custom-git-refspec * docs: Hint to 'openQA-devel' for pulling in dependencies * Delete unused screenshots in separate loop * docs: Render code correctly (#2306) * Allow CodeMirror to render off screen * Show context for REST-API errors to make debugging a little bit easier * Fix artefact upload errors to show the message instead of the hash address * Reduce coverage requirement a bit until we can make Devel::Cover include subprocesses in stats * Don't use 3rd set of names for passing dependencies to JS * Use capitalized names for module-scoped variables * Consider directly chained deps in several places * Support _START_DIRECTLY_AFTER_JOBS * Add dependency type for START_DIRECTLY_AFTER_TEST * Failed isotovideo status checks are fairly harmless, but a log message can be useful for debugging * Since we now expect there to be more subprocesses, there is no reason to log them as unexpected anymore * Do not try to reconnect the WebSocket connection in subprocesses * Make annoying log message debug level instead of info for now * Test API and upload errors * Test asset uploads too * Move artefact upload into a webui connection method so it can be easily mocked for testing * Add more worker upload tests * Fix fake WebSocket transaction to correctly defer callback execution * Improve test coverage of the worker job life cycle * Move all direct uses of Mojo::UserAgent from OpenQA::Worker::Job to client modules * Add new worker tests and an isotovideo client module that can be mocked easily * Perform isotovideo status checks non-blocking too * Try to defer all callbacks correctly to the next reactor tick * Handle exceptions in uploads * Make image uploads non-blocking too * Callbacks cannot be optional in an async application * Update mock worker tests to be able to deal with multiple processes handling uploads * Handle asset and logfile uploads in a subprocess * Split up upload handling into more manageable parts * Reuse t/test_postgresql in container test as well * Harmonize dependencies in cpanfile+openQA.spec * spec: Specify more dependencies needed for local development * spec: Fix test dependencies after os-autoinst removed dependencies * Move codemirror javascript file to javascript label (#2297) * spec: Fix 'devel' package (for real) with proper macro definition * spec: Fix error about python shebang * Fix 'devel' package * docs: Update openSUSE repos using $releasever, priorities, better names * spec: Add 'devel' package * worker job: Add log of second virtio console to upload list * Fix accidentally removed dependency * Add missing apparmor permission (#2285) * Remove shellcheck disable * Modernize bash tests * Fix test that did nothing * Fix argument handling of a function and turn background job into a real plugin * Remove print from test * Avoid using HAVING on ScreenshotLinks * No longer delete job modules one by one * Remove support for old migration * Use IPC::Run instead of IPC::Run::Simple * More code style fixes * Tidy developer mode test * Test assert_screen args with array of needle tags * Code style changes and unit test for current_api_function handling * Increase lock timeouts a bit because some jobs might just need a little more time and the risk or locks not getting cleared at the end is very low (#2280) * Show needle tags for assert_screen/check_screen * Validate tag input field in needleeditor * Render a diff of the job group YAML in preview/ save * Use purple for blocked jobs * Distinguish scheduled and blocked jobs on test result overview * Delete vim footer in files that still have it * Makefile: Allow again to select single test cases with PROVE_ARGS * Preserve QEMU PID file on pool dir cleanup if QEMU still running * Improve tests for triggering pool directory cleanup * Test support for non-ASCII chars in needle JSON only in description * Tweaks according to code review * Handle newline characters in form parameters correctly * Use single gru job * Always include the group property editor * Do not delete assets based on empty size * Remove useless quoting * Check finished job cout in async test * Increase timeout in async test * Remove unconditional sleeps from async test * Add Gru Test with Mock Api Server * Split Folders and Gru controllers * Add Rsync Queue UI * Use Gru for rsync * ObsRsync handle requests asynchronously * job cancel: Explicitly return a number to avoid warning * Fix warning about undefined $testresdir * Fix flaky test t/api/11-bugs.t * scheduler: Fix warnings about undefined variables * Fix rendering of the openqa.cmd * openqa-bootstrap: Fix logic of git clone * Add machine filter in 'Test result overview' * docs: Mention most simple installation instructions and "clone-job" first * docs: Add documentation for immediate bootstrap+clone * docs: Fix internal link * branding: Prevent undefined flavor in external_reporting.html.ep * apparmor: Allow virtio_console based on named PIPE * spec: Split out all dependencies properly per sub-package * apparmor: Allow loading of client.conf in usual home of geekotest * apparmor: Allow loading override templates in /etc/openqa/templates/ * branding: Prevent warnings about undefined $distri in external_reporting.html.ep * Test worker behavior if _upload_log_file fails * Improve needle editor test * Change iso scheduling behavior to not obsolete older jobs anymore * Improve calculating preferred machine * Fix error when saving needle JSON with non-ASCII characters * Modify workaround property to support adding reason * Fix 30-test_parser.t warnings * Remove exported functions from OpenQA::File and stop using private methods as part of the public API * docs: Fix explanation for masquerading which is needed on all involved zones * docs: Simplify firewalld commands by using the runtime variants * docs: Make the current "firewalld" approach more prominent than old SuSEfirewall2 * Fix PROVE_ARGS in spec file * docs: Remove obsolete section about "wicked < 0.6.23" * load_templates: fix --clean and reading perl templates * Do not handle arguments in reverse and move OpenQA::Files class into a proper package * Make worker retry-delay configurable * Test retry behavior of worker * Extend retry delay of worker to 60 seconds if web UI busy * Adapt codecov target to current coverage of 85% * Allow * placeholders in product names * docs: Fix marking for 2nd level list about "wicked pros" * Prevent over-escaping of bug titles in test result overview * Adjust web socket server test * Avoid 'return;' in web socket code * Fix sending web socket message when job not exists * Improve transaction handling in web socket server * AMQP: allow no message prefix * Fix '--no-cleanup' on worker start regression * Remove OpenQA::Schema::Result::Jobs::set_scheduling_worker * Replace Text::Markdown and HTML::Restrict with CommonMark for much better comment rendering speed and security * Adding a new parameter to support not schedule parent test suite * Timeout for wait_for_ajax * Let prove handle @INC for us * Expose saving and hiding of the legacy editor in the UI * Scrub dangerous HTML from comments * Abstract out markdown handling into a new class * worker: Consider ws disconnects as uncritical during job execution * Fix worker crash when sending job ID * YAML: don't merge scenarios with multiple machines with defaults * Add dependency on CommonMark, which will soon replace Text::Markdown for a 1000% performance increase (#2228) * Ignore cpu_modelname in worker test * Let worker pass current job ID on re-registration * Allow worker to pass its current job on registration * Improve test for checking job status and output * Improve error message when rejecting status update * Add YAML support to {dump,load}_templates * Add systemd timer to trigger daily audit event cleanup * Delete old audit events according to configured storage duration * AMQP: don't encode message body to JSON before publishing * Handle reusing existing connection in devel fullstack test * Improve documentation about running test of openQA itself * Timeout for wait_for_developer_console_contains_log_message * Override default exception handler in extra daemons * Fix default route of live handler to prevent template errors * Docs for the job group editor and YAML REST * AMQP: allow passing headers to publish_amqp * Add note about openQA's CLI interface * openqa-bootstrap: Fix lookup of configure-web-proxy * Improve rendering summary in test result overview * t/api/03-auth.t: don't actually wipe asset files from disk * Mojo::Pg 4.14 requires the "delete $dbh->{private_...}" feature from DBI 1.632 * Log errors when reading worker config * Add type/additionalProperties to products spec * spec: Fix SLE12 build with patched out python subpackage * Start a documentation section on how to build openQA plugins * templates: Update references to documentation in help texts * docs: Update references to target versions in our issue tracker * Document adding new dependencies * Improve doc section about starting webserver from Git * Move testing with production data to database section * Improve documentation about OPENQA_BASEDIR * Replay cmds in devel mode console only if connected to os-autoinst * Make sure all four levels of API access have named routes for plugins and tests * Add undef to return * Prevent cleaning pool directory in worker availability check * Add helper script 'openqa-label-all' * Set log for failing to stop cmd srv to info level * Do not fail fullstack test when connection closed * Split api request to own route * Extend unit tests for OpenQA::Worker * Do not stop current job twice when stopping during setup * Remove unused function from worker * Remove check for cpu_opmode from worker test * Stop job directly with reason 'api-failure' on API failures * Give the API authentication routes plugins will use names and test them * Log sent commands in the developer console as well * Replay commands send though developer console while offline * Add put method with disabled test * Fix test doing an equality check on an exception instead of a regular expression comparison * Fix html * Adapt codecov target to current coverage * Small tweaks * Default to HTTPS instead of HTTP with openqa-client * Add Operator menu item * Remove duplicate use * Small CR adjustment * Make routes restricted * Add ObsRsync plugin * Expand Machine and Medium Type settings when creating job with 'jobs post' When users created jobs using 'client jobs post', the jobs settings did not expand Machine and Medium Type settings. This PR is used to support to expand settings from Machine and Medium Type when creating jobs with 'jobs post'. * .travis.yml: Save travis CI some testing time * Add Test::More based error handler to SeleniumTest- Update to version 4.6.1563206570.e00d3964: * Make the websocket server tests less noisy * docker: Add back 'Test::Compile' as needed for os-autoinst * spec: Fix invalid '%perl' introduced with 3aadc34c * Test handling worker job status changes * Fix passing --no-cleanup worker CLI option * fetchneedles: Use subshells efficiently for dir changes * fetchneedles: Fix indention * fetchneedles: Prevent noisy output about auto-packing git repos * Ensure query in jobs API does not become too big * Remove group name from job templates example * Adapt order of job template example * Remove dead auth tests from a DBus refactoring 4 years ago * Give the authentication routes plugins will use names and test them * Improve and simplify compile check * Add Test::Strict to Docker container * Allow plugins to add links to the menu * Allow any suffix for TAP source files * .travis.yml: Make documentation generation an explicit job, only on master * .travis.yml: Give readable names to test jobs * .travis.yml: Put handling of cache dir together * Extend filter for new/updated admin table rows * Make log messages of worker tests less verbose * generate-documentation: Fix wrong script path introduced by 81df2fd * docs: Fix quotes and apostrophes for asciidoctor/github style * .travis.yml: Workaround flaky tests with 'travis_test' * Test kvm module, only if it is not built-in * Make containers non-x86 archs friendly and update to leap 15.1 * Remove another useless prototype and an unused function from OpenQA::Utils * Remove obsolete prototypes * Polish worker code * travis_test: Fix typo in 'python3-future' * Explicitly specify perl module 'Module::Pluggable' to fix warning * openqa-clone-job: Improve handling --from parameter * README: Clarify how releases are made * Adjust testrules.yml to changed worker tests * Post upload progress after ignoring known images * Remove dead code for handling known images * Improve formatting of comments for WebUIConnection attributes * Remove leftovers from interactive mode * Fix reporting number of images to send to liveview handler * Allow stopping worker during job setup * Rename OpenQA::Worker::Client to OpenQA::Worker::WebUIConnection * Improve use of attributes in worker code * Log specific message if ignoring job while already busy * Enable verbose option in compile check * Restructure worker * travis_test: Add dependencies for 'python-scripts' * Add YAML diff to jobtemplate_create events- Update to version 4.6.1562333920.03805636: * openqa-bootstrap-container: Fix package list passed as single string * Add Text::Diff dependency to spec and Dockerfile * Fix handling of unknown workers in the websocket server * Activate strictures in tests as soon as possible * openqa-clone-job: Add support for full test URLs * tidy: Apply to all regular perl modules and scripts * worker: Improve log messages, e.g. avoid contractions * worker: Do not use bare returns * docs: Point to wrapper client-script for shorter path * docs: Replace the confusing table of triplets with a simple scenario list * docs: Revamp the "job templates" section * docs: Combine "asset cleanup" with "asset handling" * docs: Stress older versions of Leap less * docs: Better classify the different installation methods * docs: Clarify job groups display on index page * docs: Ensure "Installation & Users guide" are prominently featured in "Getting Started" * docs: Include all feature descriptions from wiki * docs: Also explain "medium types" directly in the glossary * Delete unused helper "limit_previous_link" * t: Fix warning in full-stack.t * t: Output isotovideo log files in case of incomplete jobs within the full stack test * t: Delete superfluous setting delete * docs: Add hint how to get coverage for individual tests * Do not trigger test cleanup code from forked processes * Always use spaces in CodeMirror editor * fetchneedles: Go back to old, quiet mode * t: Fix warning in full-stack.t * t: Delete superfluous setting delete * docs: Add hint how to get coverage for individual tests * Move 'create_worker' method to single place where used * client: Prevent warnings when receiving no HTML status code at all * Add package self-test for worker as well * Add make target "test-with-database" for easier test database setup * t: Fix typo in testrules.yml * Makefile: Use explicit target name for non-travis specifics * Lock test suites in YAML-based groups for manual updates and deletion- Update to version 4.6.1562157181.8465317e: * Fix tests that were assuming Test::Mojo methods had special return values * script: Fix shellcheck issues with old shellcheck version * Fix shellcheck warnings on docker/openqa/entrypoint.sh * travis_test: Use consistent spaces instead of tabs * Make all shell scripts pass default level (style) of shellcheck * Make all shell scripts pass 'warning' level of shellcheck * fetchneedles: Use consistent spaces style * Makefile: Add test for shell scripts using "shellcheck" * openqa-clone-custom-git-refspec: Include further suggestions by shellcheck * openqa-clone-custom-git-refspec: Fix use of "-n" on GITHUB_TOKEN * Trim whitespace characters from both ends of string * Add script for simple setup of a single instance * Revert to usual wording "distri" in YAML schedules- Update to version 4.6.1561959871.3b6d67be: * Fix deletion of scripts during install * travis_test: Ensure shellcheck is installed as part of dependencies (#2136) * Strip unnecessary extension from scripts (#2138) * Integrate clone-job into bootstrap- Update to version 4.6.1561118372.b9b694d3: * Move websocket server helpers to the model * Prevent blank line in worker caching output * Fix missing dependency in package buildtime tests as well * Rename architectures to scenarios * Defer loading the schema in OpenQA::Schema::Profiler, so the worker does not trigger a migration * Fix missing runtime dependency on "DBIx::Class::DeploymentHandler" * apparmor: Allow unzip-plain to fix worker startup- Update to version 4.6.1560873517.08f60a7b: * Calculate elapsed time more correctly * Add some documentation for OpenQA::Schema::Profiler * Refactor DBIx::Class profiler to use current openQA best practices * Remove dead code and move rng functions still in use to OpenQA::Utils * docs: Fix shell code box rendering with line break * Support storing YAML job templates in the database * docs: Improve language of Networking document * docs: Consistently use QEMU, the offical way of writing- Update to version 4.6.1560549641.c09044ae: * docs: No need to start openqa-gru explicitly * Add support for OPENQA_BASE_PORT environment variable- Update to version 4.6.1560497112.f26a0400: * Don't take the full cluster as possibly blocked (#2109) * Make localhost authentication more testable * Treat IPv4 and IPv6 the same for local host authentication * Blocked by calculation: Fix cyclic behaviour (#2104) * Fix travis cache permissions for docker user * Fix a problem where an Mojo::RabbitMQ::Client::Publisher instance goes out of scope too early (#2107)- Update to version 4.6.1560026218.807c3c09: * Update MM setup documentation * Test the scheduler API * Cache: Fix missing download progress output and warning * Provide the script `openqa-clone-job` already in source * Remove dead code from OpenQA.pm * Remove imports that are no longer needed * Remove all remaining traces of D-Bus * Share authentication controller between websocket server and scheduler * Remove old script that had been broken for quite some time (and was therefore probably not used anymore) * Turn scheduler core into a model class * Replace D-Bus with HTTP * Remove imports that are no longer needed * Add a scheduler client * Update architecture diagram- Update to version 4.6.1559744346.36d65edf: * docs: Add note how to fix broken CSS * Remove tidy from spec file * Use the latest version of perltidy * Improve tests for admin tables * spec: Fix Perl::Tidy mismatch in build tests * Follow updated admin table rows * Clear admin table filter before adding new row * apparmor: Fix worker startup on openSUSE Leap 15.1 * Don't log jobtemplate_create event if in preview mode * docs: Harmonize use of no colon in titles- Update to version 4.6.1559047081.8050f3f0: * Fix filtering settings in admin tables * Document latest/scope{relevant,current}/limit in jobs- Update to version 4.6.1558532409.ab91f319: * Install qemu-uefi-aarch64 on aarch64 in bootstrap * Use less noisy perl style for $comment->label * Prevent accessing comment label without check for undef * Ensure that module names are escaped * List remaining failed modules on mouseover * Allow listing bugs by the time of reporting * Require YAML::XS >= 0.67- Update to version 4.6.1558084113.18c6f052: * Revert "Improve code for settings expansion" * Update documentation about job scheduling * Add job template settings when scheduling new jobs * Show job template parameter via regular REST API * Allow YAML import/export of job template settings * Support scaling MAX_JOB_TIME * Add job template settings table * Add test for saving needles via Git * Validate properties of OpenQA::Git before using them * Fix comparision of cluster ID for dependency graph (#2068) * Set user correctly in OpenQA::Git instantiation- Update to version 4.6.1557739992.f9fbeb06: * Avoid leaking GITHUB_TOKEN * Skip UEFI_PFLASH_VARS asset when UEFI is disabled * Add an own result jobs which exceeded the timeout * Split off git support into its own class * Adapt 13-admin.t to the new sorting-enabled tables * Fix remaining jshint warnings in admintable.js * Adjust sorting of admin tables so empty strings come last * Improve styling of help icon beside search box * Improve regex-enabled search of admin tables * Tweak sorting and filtering in admin data tables * Remove admin table code for column type settings * Make admin tables use DataTables correctly * Improve code for settings expansion * Move job settings expansion to its own module * Use CodeMirror with YAML editor * Inherit specified settings when create job with 'Jobs post' * Show an error message in the editor if the group changed * Clean up 08-jobtemplates.t * Do not add new testsuites when importing job templates * Add YAML-based template editor UI * Add non-trivial test suites to exercise YAML validation * Import of job template specification from YAML * Support click_point in needle editor controller code * Fix issues reported by jshint in shapes.js * Test adding/removing a click point * Allow only one click point per needle * Allow adding click coordinates in the needle editor * Improve JSON parse errors in openqa-clone-custom-git-refspec * Retry after rsync exits with status 24 * Add non-fatal messages during scheduling to results * Allow authenticated calls to the github api * Remove deprecated qemu-kvm and use qemu-arm, qemu-ppc and qemu-x86 instead * apparmor: rk permission on hdd contents- Update to version 4.6.1555478309.f6dfdd9b: * Clone only the latest revision of the SLE needles (#2048) * Revert "openQA.spec: multiline macros for services and dependencies" (#2051) * Update architecture diagram in accordance with PR 2043 * Fix the remaining issues of deleting workers * Get rid of a few warnings that make test results on Travis hard to read * Be a little more strict about WebSocket server response codes * There should be no need for AssetPack in the websocket server * Trust connections from localhost to the websocket server to avoid complex config file requirements * The websocket server is no longer a dbus service * Clean up tests and remove a few connection warnings * The websocket server is no longer a dbus service * Move ws_send from dbus to HTTP * Move ws_send_job from dbus to HTTP * Remove ws_send_all dbus function, which was actually unused * Remove first dbus function from the websocket server * Add an HTTP API to the websocket server * Don't return status 402 on worker deletion failure * Fix indentation in admin_worker.js * Make OpenQA::Events::emit_event a non-static member function * Update AppArmor profile for usrMerge (boo#1132350) * Add cacheservice as part of openqa-worker.target * openQA.spec: multiline macros for services and dependencies- Update to version 4.6.1554809752.3a77164a: * Fix mock session logins to use only public Mojolicious APIs and create users with a proper resultset * Prevent multiple limit_* tasks from running in parallel * Allow deleting offline workers via API and web UI * Don't duplicate settings in iso_create/cancel events * Adapt product log test * Add test for re-scheduling product * Migrate 'iso_create' events to scheduled products * Show scheduled products from new table in UI * Test async flag for iso post route * Move constants for job dependencies to their own file * Add API route to query scheduled product * Add async flag to ISO post route and table to keep track * Cleanup scheduling functions- Update to version 4.6.1553599469.57d6b3ca: * Properly escape bug titles * YAML output for job templates and schema validation (#1999) * Make the websocket server testable as a normal Mojolicious application * Add a model class to store worker state * Move more functions into helpers * Move dbus functions into helpers * Add controllers to the websocket server application * Install test distri deps on bootstrap * Turn websocket server into a real Mojolicious app * Use Mojo::Promise in enqueue_and_keep_track * docker: Add IO::Scalar dependency * doc: Reflect renaming virtio_screen.pm to serial_screen.pm * worker: Upload serial_terminal.txt for svirt backend * Unify schema access in OpenQA::WebAPI and fix the issue where the db helper was called on the application * Use result_p to track Minion job instead of timers * Improve logging non-scalar error info of GRU/Minion tasks * Extract common code for saving and deleting needles * Fix test for dependency graph * Don't let needle-related tasks fail if the cause is uncritical * Make needle deletion a Minion job * Setting to not cancel parallel parents with still-pending children * Add hints to fix dependencies when using devel- Update to version 4.6.1552567428.80082fe5: * Test create and delete events for job templates * Unify schema access with a singleton method * Use route placeholder types whenever possible for cleaner routes * Add link to relevant documentation in the job group settings * Cache result of OpenQA::..::JobGroup::load_properties * Allow disabling bug carry over on job group level * Remove dead validation code and replace it with route placeholder types * Pass affected_rows correctly in openqa_jobtemplate_create- Update to version 4.6.1552406543.b3e49dcb: * Remove check for $OpenQA::Utils::app * Move get_bug from Result::Bugs to ResultSet::Bugs * Add bug to db already on comment create or update * Add support for links to jira tickets * Rename tmp_schema to search_path_for_tests, which is a little more descriptive * Allow monitoring of Gru/Minion with a new public /admin/influxdb/minion API endpoint * Log job group events via audit log * Make openqa-webui.service depend on openqa-gru.service- Update to version 4.6.1552078716.6b292c9a: * Test deleting job from worker's job history * Move another class into its own .pm file and do not use private functions/methods across modules/classes anymore * Remove all uses of the enterprise operator and use a more consistent coding style in the affected classes * Add loading indication when saving needle- Update to version 4.6.1551963862.0a6b30be: * Prevent deletion of worker when deleting its current job * Prevent broken rendering of unknown result types * Add unxz/xz to apparmor profile to fix poo#48743 * Don't hardcode remote and branch names for saving needles- Update to version 4.6.1551797932.a5aadf24: * Remove safe_call from OpenQA::Utils since it is no longer needed * Cover more Gru special cases with tests * Remove resource allocator from architecture diagram * Mention the possible race condition in a comment * Bypass Gru special cases for non-Gru tasks * Use a completely new task for testing so we can replicate more edge cases in the future * Be a little more defensive with removing Gru tasks * Allow pure Minion jobs (without a Gru id) to bypass special case handling * Do not delete Gru tasks if they are not finished in Minion yet- Update to version 4.6.1551454083.e27d66d8: * Extend apparmor profile for all Git commands we use * Correct limit_assets task arguments * Allow test vars for openqa-clone-custom-git-refs * Fix updating needle Git repository * Fix uniform box widths of dependency graph in current Firefox * Move JSON::Validator and YAML::XS to t_requires * Drop the `cpanfile` changes * Add YAML::XS and JSON::Validator dependencies * worker: Skip announcing stop if isotovideo already exited * worker: Fix "final status update" * worker: Refactor _stop_job_kill_and_upload * worker: Remove extra handling for dead children * worker: Make API calls when stopping job non-critical * worker: Treat upload failures as API failures * Raise an exception if deploying the SQLite database fails and handle an existing database more gracefully * Do not reset the job queue every time the cache service is restarted * Test cache service migrations * Use Mojo::SQLite migrations to handle schema upgrades in the cache service gracefully * Remove unused imports and IPC objects * Remove the resource allocator * Move barrier handling out of the resource allocator * Move mutex handling out of the resource allocator * Remove first dbus method and use OpenQA::Schema directly * Declare the DBIx::Class dependency properly * Move OpenQA::Resource::Jobs handling from the resource allocator to the webapi- Update to version 4.6.1551101052.7f891940: * Use well-defined worker config for fullstack test(s) * Adapt tests to default WORKER_CLASS * Assign default WORKER_CLASS when posting job * Assign default WORKER_CLASS when scheduling ISO- Update to version 4.6.1550673294.3fb7464e: * worker: Log error returned by JSON API * Render error in all cases in create_artefact- Update to version 4.6.1550584043.5098c32d: * Log isotovideo startup more detailed- Update to version 4.6.1549966436.c3938033: * Revert support for ASSET_\d+_URL * openqa-clone-custom-git-refspec: make use of GROUP var * Improve error handling when changing priority- Update to version 4.6.1549799415.315b994a: * Fix modules filter wrong results while using comma * Show bug reporting links also on text results * Prevent download tasks for the same asset running in parallel * Improve Minion error handling when saving needle * Allow to run Minion jobs in UI tests * Migrate intermediate database changes * Don't use might_have relationship for job scenario * Show externally skipped module count in resultstats * Use same style for needle editor warnings as for regular flash messages * Save needles via Minion * Format Git errors more nicely when committing needle * Rebase needle directory before commiting changes * Use commit_git_return_error in Step.pm to propagate error * Skip result skipped on calculate overall result- Update to version 4.6.1549379724.2b90641c: * Split configured hosts by whitespace * stopping job: Proceed on errors during announcement * Let devel mode fullstack test also pass on state cancelled * stopping job: Change order of POST requests * Prevent error about cmd srv connection when test ends * Make code for engine startup more clear * Add architecture diagram- Update to version 4.6.1549026855.08485c7c: * Remove SQL files for 2017 * Update serial terminal function (#1982) * Remove image migration jobs that were only used for very old migrations * Lift the parallel job limit for the gru worker and add more fine grained limits to individual tasks- Update to version 4.6.1548936964.47070d70: * spec: Fix missing mention of 'openqa-clone-custom-git-refspec' in script/ * Add test check for scenario within error reporting * docs: Add documentation for triggering jobs based on any git refspec * Add script 'openqa-clone-custom-git-refspec' * Consider parent group comments for important builds * Cache result of function call * Add scenario description to infopanel of test * Fix typo in reference to DeveloperSessions * Fix another regression from c9735699 when no sync is needed * apparmor: Fix access to git templates * Switch to four spaces as requested, modify error ignoring * Fix flaky test regarding needle update * Improve error handling in worker cache /status route * openqa-bootstrap-container: do more error checking, fix a hang- Update to version 4.6.1548420629.e8e80a4b: * Fix regression of test caching failing introduced by c9735699 * worker: Fix two perl warnings- Update to version 4.6.1548078204.c9f60161: * Use nicer syntax for default vars * Add (carried over) bugref to job.done AMQP event- Update to version 4.6.1547830304.62f9aaaa: * Allow overwriting container bootstrap repo * Remove Failed modules filter from UI * Add UI tests for filter by module * Add search by module in all jobs of job group * Prevent github to think we have perl6 code * Better check for existing DBs in bootstrap * bootstrap: make errors fatal and deal with re-runs * apparmor: Further fixes for custom git clones * Fix external reporting if scenario description not present * Improve code for scenario description and add test * Add test suite description for bug reporting * apparmor: Fix custom git repo clone "env" denied * clone_job: Add convenience option '--within-instance' * Also set assigned jobs to parallel_failed (#1951) * Fix a few issues reported by jshint * Prevent the live log from becoming too long * Handle undefined `$text` in `find_bugref` and `find_bugrefs` * Wrap text in live log so long lines are readable * Allow custom CASEDIR/PRODUCTDIR/ASSETDIR- Update to version 4.6.1547114886.81dabdea: * 21-needles.t: Use `discard_changes` instead of re-calling `find` * Add bootstrap hint for Leap 15.0 * Fix "Can't locate object method new via package JSON" introduced by 95cb6601 * Check for correct perltidy version on execution * Fix if condition and leap repo prios for bootstrap * Improve a few details in worker code * worker: Improve handling API failures * Handle unexpected errors on status update more nicely * worker: Fix handling errors caused by connection issues with web UI * Show currently executed function in developer mode * Allow to pause on the next command- Update to version 4.6.1545406149.53968c1e: * Activate strict and warnings for all tests and do not use indirect object syntax * Add tool to bootstrap openQA with only one command * Fix comments and reference the usage messages of the minion job/worker commands in usage messages * Test setting last needle update * Add examples for run and list commands * Add Minion tests and make the run command a subclass of the worker command * Use better variable names in t/21-needles.t * Prevent wrong 'New needle ...' notifications in needle editor * Rename Docker-related targets and scripts * Improve documentation about running tests without Docker * Remove obsolete docker/testing * Improve documentation regarding Docker * Use --oneshot to make it more obvious what is happening * Improve job restart * Allow submitting margin and match level via return key * Hide tooltips when hiding developer mode elements * Remove 'Cancel job' button from developer mode * Reuse many more parts of Minion for Gru * Add a new OpenQA::WebAPI::Command namespace so there is no need for hidden classes in plugins- Update to version 4.6.1545230885.56b79eeb: * Use OPENQA_TEST_IPC mock in 37-limit_assets.t (#1935) * Reformat with new perltidy version * Adjust comment for pauseOnScreenMismatch * Allow test in devel mode fullstack test to pass * Remove 'Error from livehandler daemon' prefix * devel mode: Test version check * devel mode: Check whether os-autoinst is compatible * devel mode: Allow to pause on check_screen timeout * Improve and fix asset caching doc * Fix typos * Makefile: Prevent docker "build" and "run" to run in parallel * Add basic documentation for OpenQA::Events- Update to version 4.6.1545054233.21210ce3: * Use a fixed version of perltidy * Prevent 'Summary of HASH(...)' if multiple distris/versions specified * .travis.yml: Delete not necessary stage overrides * docs: Make commands to call more prominent with backticks * Makefile: Delete unused target docker-test-travis * Do not set the MOJO_LOG_LEVEL environment variable by default for more granular logging * Reformat everything for the latest version of perltidy * Support filtering by test in group overview again * worker: Validate job sent by web UI "job_grab" * Use localized signal handling instead of global sigtrap for modules * Set transaction isolation level for asset cleanup accordingly * asset cleanup: Check whether $res_max_job is set before comparing * Fix copyright year * Add license to new module * Move memory limit handling into a plugin * Move all global events to OpenQA::Events * Add OpenQA::Events module to replace random events being added to Mojo classes * Improve documentation for schedule control * Extend and improve asset documentation * Don't treat UEFI_PFLASH_VARS as asset if path is absolute- Update to version 4.6.1544609268.19a4cf68: * Fix test for popovers in 15-admin-workers.t for real * Improve "Refusing 'grab_job'" debug message * Test worker broken state * Add 'broken' state to the worker * Prevent worker to accept jobs if caching not available * Update specfile line for restarting apparmor- Update to version 4.6.1544510066.913d8f26: * Update license of test spec-file to current SPDX format (#1915) * Use the boring standard return value for all Perl modules * Merge hashes properly * Test handling of assets with invalid name * Prevent registering empty assets * Skip cleanup of assets with empty name- Update to version 4.6.1544166689.47296c23: * Disable INSTALL_FROM_CPAN by default (#1863) * Don't leave a limit_assets task hanging after 14-grutasks.t (#1882) * Do not require perlcritic on sle-12 (#1910) * When detecting asset keys, don't use the _URL form for ASSET (#1907) * Add Perl::Critic::Freenode to the test container (#1906) * Fix devel fullstack mode test * Make devel fullstack test more verbose * openQA.spec: Add missing runtime requirement for client (#1905) * doc: Mention select_serial_terminal() in serial terminal doc * Test rendering external table * Don't show categories in table for external results * Add filter for external results table * Use circle to display results in external table * Add separate table for external results from parser * Move logic for test detail steps from view into controller * Fedmsg: use Python 3 logger command * Extend documentation on the developer mode panel * Add WORKER_HOSTNAME to workers.ini template * Document re-needling workflow- Update to version 4.6.1543830229.359b5dd9: * Add Perl::Critic::Freenode to openQA.spec * Use Perl::Critic::Freenode to determine good coding style * Make all modules pass Perl::Critic::Freenode with severity level 4 (stern) * Activate strict and warnings consistently for all modules * Fix network dependency for cache service * Remove DEBUG and LOGDIR environment variables and change cache services to use the test mode * Test skipping timeout in developer fullstack test * devel fullstack test: Don't fail if renamed needles already there * devel mode: Allow to skip assert/check_screen timeout * Remove srand workaround that does nothing anymore since Mojolicious 5.76 (2015)- Update to version 4.6.1543400978.50e006bc: * Fix worker-cacheservice failing on startup due to no network * docs: Extend development tricks with dynamic test override * Fix typo in installation documentation * Replace Mojolicious::Commands with Mojo::Server::Daemon in test modules, make sure all test modules use strict, and fix a few issues caused by not using strict before * Restart openqa-worker-cacheservice on failure * Allow caching of externally downloaded assets- Update to version 4.6.1543249675.02bb8eff: * Exit worker with non-zero return code in error cases * Do not import from_json, there is already an inherited method with the same name * Add comments to point at Mojo::JSON being used to set up booleans * Debug 25-cache-service.t * Make perltidy happy * Convert a few cases back to Cpanel::JSON::XS that require special configurations (mostly for tests, but there might be underlying protocol requirements too) * Document steps to debug developer mode setup * Convert most uses of Cpanel::JSON::XS to Mojo::JSON, which will take care of using an optimized encoder and avoiding boolean warnings * Use fixed header for test result overview table * Check for JavaScript errors while waiting for result panel * Prevent selenium test to accidentally click on the VNC notice * Move note about VNC into developer panel * Update existing unique flash messages * Expand devel controls by default if paused and owning the session (#1880) * Add rsync BuildRequires and Recommends to RPM spec (#1881) * Add a new is_admin_js helper to generate JavaScript booleans for use in templates * Add a test for browsing the admin pages in readonly mode * Use OPENQA_TEST_IPC in developer mode unit test (#1868) * Add test to check link for entire build * Add link to test results for multiple job grops * Call _reschedule after schedule concluded * Remove unused variable $force in _reschedule() * Fix comment in scheduler code * Fix various uses of the is_admin helper in templates to generate JavaScript that resulted in empty lists, because the helper returns a Perl boolean value instead of a JavaScript boolean * Revert "Fix deprecation warnings regarding Mojo::Transaction::error" * Fix line break in failed module box * Fix formatting * Fix deprecation warnings regarding Mojo::Transaction::error * Combine multiple distri/version/flavor/build filter with logical or * Fix filter for architecture * Upload video timestamp file when it exists (#1873) * Fix formatting * Use Mojo::File::slurp in check_tabmode * Improve error handling of Step controller * Handle `app` and `tx` attributes of Controller being weakened * Do not check group name by dragging group * Minor fixes for WritingTests doc (#1865) * Add 2 new dependencies to the travis container: (#1864) * Update all uses of Mojo::Transaction::success to their Mojolicious 8.06 equivalent * Fix a few new uses of tempdir * Fix various incorrect uses of Mojo::File::tempdir * docs: Extend definition of *softfailed* to "known issues" (#1837) * Refuse updating job group name with empty or blank (#1844) * Apparmor: Add /dev/hugepages (#1857) * Fix broken in section of inter machine dependencies (#1859) * Wrap up and polish * Do not use wantarray in GRU's enqueue() * Update POD OpenQA::Worker::Cache::Client's SYNOPSIS * Avoid to race to get available minion workers * Drop PID from log * Move Minion workers under a single service * Cleanup * Fix typo * Adapt gru tests * Generate same lock for asset/host in the request object * Fix rsync output in minion task * Refactor and update Documentation * Use the cache service to perform rsync tests caching * Create Minion task for rsync execution * Use the host folder to cache tests/needles * Do not check if child is running if it's not there * Reduce the lock expiration time * Trim spaces from left and right in assets name * Hold the db handle during transactions * Add test for Minion task registration and execution * specfile: DBD-SQLite needs to be > 1.51, required by Minion::Backend::SQLite * Add tests and cover also subprocess execution * Add function to generate session token * Read and set limit from config file, defaults to 50GB * Makefile: install Worker Cache Service systemd unit * Add POD for Cache Service and extend docs/Installing.asciidoc * Add service file and adapt openQA.spec * Avoid useless quotes on hash key * Debug - adapt compile-check-all * Address to PR comments - also add test for checking output in cache-service.t * Drop unused function * Write cache output into os-autoinst log * Make possible to retrieve cache output * Add debug messages while enqueuing download * Asset path needs to be a string for vars * Make dequeue and status post * Adapt fullstack to cache path change * Extract domain parsing to _base_url and use it also in the client to resolve asset path * Adapt tests * Get the cache path right * Incomplete job if cache service is down * tests: Wait also for worker minion in fullstack * Use defaults in isotovideo engine * Update defaults and remove protoyped function from Cache::Client * tests: Add test for available_workers() * Add available_workers() to Cache::Client * Fullstack: move sqlite cache check up * Cache: make retry() return always the response object * Fullstack: Wait cache to be ready * Adapt tests and utils * Drop unneeded default * Use OpenQA::Worker::Client inside the cache task * Start to adapt fullstack test * Adapt to PBP * Add dep on Minion::Backend::SQLite * Move common testing functions to Test::Utils as they will be reused also in fullstack test * Add Mojo::SQLite dependency * Use the Cache service within the worker * Add accessors to retrieve asset path and check if exists * Remove unneded log line and cleanup check_limits() * Finishing porting the Cache.pm code to Mojo::SQLite * Rework cleanup strategy, avoid endless loops - update etag fails now * Use Minion Admin plugin with the cache service * Drop downloading, Cache.pm now records just etag and size * Use Devel::Cover in cache-service tests to enhance coverage * Adapt cache tests - still fails on size calculation * Move Cache.pm code to Mojo::SQLite * Add dequeue() and tests for it * Fix and test enqueued tasks * Do not use list_jobs from Minion to gather statuses, causes races * Add default usage tests and use minion lock to detect if it's in use * Fix test copyright header * Add standard client usage * Add Cache service client * Do not lock anymore on assets * Add test for cache service * Add script to start cache service * Create separate class for Minion Server and worker * Do not log an error when trying to unlink an nonexisting file (#1854) * Prevent filter on test overview to reveal old jobs * Allow to create dependency for jobs on different machines * Test that filtering overview does not reveal old jobs * Add dependency for test in os-autoinst (#1851) * Handle skipped test result in IPA parser * Show bug title on mouseover * Fix job templates JavaScript * Fix typo in networking documentation * Regenerate docs * devel mode: Suppress connection errors if no module running * Make 13-admin.t more verbose in case of failure * Use $LEAP_VERSION in documentation consistently * Use 'not yet' instead of 'never started' on /admin/workers/X (#1841) * Extend unit tests for developer mode UI * Don't replace preview container when updating results * Load new test details when paused in the middle of module * Add START_AFTER_TEST/PARALLEL_WITH to dep graph tooltip (#1840) * Allow to scroll up and down using arrow keys on test details (#1842) * Fix testhelper wait_for_session_info * Lazy-initialize devel mode when switching to live view tab * Make 'can't remove ...' warnings debug messages (#1836) * Create new db schema version * Add tests for test module flags * Add special icon for the always rollback flag * Add always_rollback flag description * Add regex filter for admin tables (#1831) * Simplify Schema::Result::Jobs::running_modinfo * Test progress bars on /tests * Fix progress bars on /tests * Fix prio field in /tests and add a test for it (#1834) * Hide cloned jobs from job dependency graph (#1833) * Add route to poll stats of running and scheduled jobs (#1829) * Allow softfail and softfailed as step result * Prevent rendering undef/refs as resborder * Move errors regarding developer mode into the devel panel (#1830) * Test error handling of status/image/progress upload * Recompute asset status after cleanup for /admin/assets * Fix misleading error message on non-UEFI jobs (#1825) * Save asset status cache under /var/lib/openqa/webui/cache * Don't serve assets table while cleanup is ongoing * Update apparmor profile for current Tumbleweed for x86 workers (#1827) * worker: Stop job if considered dead by the web UI (2) * worker: Stop job if considered dead by the web UI (#1824) * Prevent multiple limit_assets tasks to run in parallel * Spawn limit_assets task in a consistent way * Polish a few details on the /admin/assets table * Allow to trigger asset cleanup task on /admin/assets * Prevent warning when rendering assigned jobs on 'All tests' page (#1823) * Fix issues noted by jshint * Make displaying assets by group faster * Set asset table width to 100% * Show last update of assets table * Improve speed of /admin/assets * Fix dependencies of openQA-client package (#1819) * Use less-ugly gravatar icons already used in OBS and progress (#1822) * Fix padding of tabs in testresults * Polish code for dependency graph * Clean CSS * Ensure filter icon and last tab button don't overlap * Add help text to dependency graph * Rename part_of_cluster to has_dependencies * Remove old dependency table * Test dependency graph * Improve appearance of dependency graph * Compute cluster for dependency graph * Fix clipping and alignment of dependency graph * Make dependency graph a bit more fancy * Display dependency graph using dagre-d3 * Handle logging errors (#1815) * Use italic font to display default prio (#1818) * Fix openQA-client package for openSUSE (#1816) * Stop worker when an unhandled exception occurs (#1809) * Limit new needles sent to os-autoinst on resume to 100 * Use Mojo::File in t/ui/07-file.t * Add 'perl(File::Touch)' to Dockerfile * Test needle download * Allow command server to download new needles on resume- Update to version 4.6.1538413557.f9e2a131: * Adapt tests to logging behavior of Mojolicious 8 (#1814) * Use transaction when computing the asset status * Make only cleanup fail on inconsistent asset status * Print max job when detecting ongoing scheduling during cleanup * Fix removal of scheduling assets * Document asset cleanup- Update to version 4.6.1538057874.2d8d0618: * Update AppArmor profile for Leap 15.0 (#1810) * Allow overwriting job priority when posting isos (#1807) * Dump the JSON templates as ascii * Fix jobs fixtures * Increase debugging information in asset removal * Round the remaining days to make tests less blinky * Fix wrongly assigned states in existing data * Prevent setting the state to SKIPPED * Test whether t_finished is assigned when setting a final job state- Update to version 4.6.1537939546.7aa7ed58: * all tests page: Fix parameter passing for timestamp rendering (#1806) * Make asset cleanup more verbose (#1803) * Fix 'last_match' param of AJAX route for needle table (#1802) * Use AJAX for all tables on /tests * Don't pre-compute IDs for finished jobs when loading HTML * Optimize all tests page * doc: remove mention of openQA-devel package (#1800) * Make sure multimachine jobs get a worker eventually * Some code restructing in the scheduler function * Delete empty settings in clone job * Display progress bar when downloading asset * Cache infos about scheduled jobs * Limit logs and results for groupless jobs (#1798) * Release job networks more often (#1795) * Fix removal of untracked assets (#1796) * Enable the scheduler on updates (and the webui is enabled) (#1785) * docs: Write Leap installation repo in more timeless way (#1791) * Run inserting screenshots in a transaction (#1792) * Update AppArmor profile to allow worker to use cgroups * Set specific slice for worker service * Better detect of systemd slice * Inform worker about devel session to reduce posting status info (#1789) * Correct typo (#1790) * Require RabbitMQ::Client 0.2 * Make AMQP sending less fragile * Make web socket and livehandler daemons listen on IPv4 and IPv6 (#1787) * Prevent worker to endlessly retry non-critical API calls (#1788) * Fix typo in t/api/02-iso.t * Make asset download feature usable by both "jobs post" and "isos post" * docs: Cover different asset types and asset options- Update to version 4.6.1536756702.f75303c1: * Improve error log of AMQP plugin (#1784) * Treat failure when posting upload progress as non-critical * Allow regular HTTP and WS being passed though reverse proxy * Fix random failures in developer mode unit tests * Add unit test for posting progress upload * Add HMAC time stamp also on livehandler daemon * Store upload progress in database * Prevent use of uninitialized value when posting upload progress * Check for upload progress in developer fullstack test * Use API authentification for post upload progress route * Test handling of upload progress in UI * Show needle editor button not unless upload complete * Pass upload progress from worker via liveviewhandler to browser * Open needle editor in developer fullstack test * Fix one more corner case for blocked_by (#1781) * Simplify reschedule code * Make the overview page responsive again (#1780) * Sort scheduled jobs via database (#1779) * Fedmsg plugin: emit 'standardized' fedmsg (#1758) * Fix blocked jobs not appearing in scheduled table * Increase max execution time per job in fullstack test * fullstack.t: Distinguish between not found and wrong permissions * Add more checks in 15-comments.t to debug random failure * OpenQA::Parser::Format::JUnit include error and skipped details (#1778) * Update serial failures detection documentation * Prevent asset-releated tests being disturbed by unrelated files * Test computing asset status * Optimize querying asset status for admin table * Allow rendering asset table as JSON- Update to version 4.6.1536432963.ac9f540e: * Fix the vlan assignment and release * Remove debug that prints to STDERR * Clean up 05-scheduler-dependencies * Take the full cluster into account, not just the first level * Avoid undefined warnings from rescheduling * Do not reschedule cluster jobs multiple times * Do not require websocket in scheduler (#1777) * Extend the test coverage for blocked_by * Fixed blocked_by calculation not to create loops * Schedule the jobs manually in fullstack test * git clone only the HEAD of os-autoinst * Do only copy back the cache on travis * Make 2 debug messages in WS server info * Wait for the scheduler to reshedule job 3 * Die early in full-stack test * Don't output 'Scheduling new jobs' if there are 0 free workers * Add some means to debug full-stack test * Only talk about cpanm if it's actually true * Run chromium with --no-sandbox not to require admin caps * Revert PR 1747 * Allow to enable monitoring using mojo-status (#1763) * Catch misconfigured test suites creating cycles (#1775) * Make tidy fast by only looking at changed files (#1773) * Ignore file docker.env created by make target docker.env * Update docker-related documentation * fullstack/Docker test: Skip os-autoinst build only conditionally * fullstck test: Improve ignoring JS errors * fullstack test: Prevent auto page reload when waiting for result panel (#1770) * Improve help popover for job group/template prio * Prevent Firefox to misalign arrows of prio input * Disable job template prio editor for non-admins * Test using default prio from job group when scheduling ISO * Add tests for setting prio via job templates API * Improve error msg and response for update of job template API * Allow job template to inherit prio from group * Allow amending job template priority * Use default prio when adding new job template to existing medium * Avoid using Mojo::ByteStream directly when rendering JSON * Adapt t/16-utils-runcmd.t for e2771ee * Fix sorting worker jobs by finished * Make 33-developer-mode.t more stable * Prevent use of uninitialized $current_running in Worker/Jobs.pm * Test opening needle editor for running tests * Improve 404 error pages of needle editor for running jobs * Test pausing on assert screen timeout * Consider only new console messages in fullstack test * Adjust upload_status for pausing on assert_screen timeout * Fix typo occured -> occurred * Test UI changes for pausing on assert_screen timeout * devel mode: Hide executed modules when test status updated * devel mode: Show reason for pause * needle editor: Show 'back to live view' if in devel mode * devel mode: Allow to open needle editor when paused * devel mode: Add UI elements for pausing at timeout * Use git -C for commits * Don't check for .git directory when making git commits- Update to version 4.6.1534873283.be929573: * Remove entrypoint from specfile sources * Makefile: Build env file for docker with needed environmental variables * Fix Mojolicious version requirement * Emit parent group ID in AMQP comment event * Use subtests in AMQP test * Makefile: Avoid also to parse env with spaces to travis * tests: Fix builds on master * Adapt fullstack tests to changes in os-autoinst * Make javascript_console method less verbose when there are no errors * test: disable broken test * Do not call unblock introduced in 184d0c5d5 * Revert "Calculate blocked by jobs on creation in job resultset" * Do not display blocked count * Do not calculate blocked jobs * Drop unused import * Revert "Merge pull request #1729 from mudler/blocked_by" * Revert "Fix usage of $blocked in test results template (#1740)" * Revert "Merge pull request #1741 from coolo/fix_blocked_by" * Makefile: cleanup * tests: INSTALL_FROM_CPAN by default * docker: Pass environment to docker * docker: try to build our image with package upgrades and custom entrypoint while running tests * docker: Upgrade container packages before running tests * Fix suggested command for adding devel repo- Update to version 4.6.1533914931.14b73490: * Use the transaction to check if it's empty (and avoid warnings) * Upload: Keep the transaction around * Calculate blocked_by status of restarted jobs * Remove systemd dependencies on scheduler * Fix usage of $blocked in test results template (#1740) * Make limit for keeping untracked assets configurable * Test inheritance and overriding of job/parent group properties * Read default job/parent group properties for cleanup from settings * Update openQA documentation regarding serial failures detection * Make UEFI_PFLASH_VARS non critical on local workers * Print autoinst-log.txt after Travis testrun * Fix full-stack.t * Adapt test of group overview JSON route for parent comments * Test tagging on parent group level * Test commenting on parent group level * Allow pinned comments on parent group overview * Support commenting on parent-group level * Test overrides for job settings passed to clone job script * Reduce indentation in clone_job_apply_settings * Require at least IO Socket SSL 2.009 * Pass worker setting WORKER_HOSTNAME to web UI * Add tests for comments carryover if module contains bugref in details * developer mode: Don't show same error twice * Unify disable_bootstrap_animations and disable_bootstrap_fade_animation * Carry comment over if test suite failed with same serial failure * developer mode: Show flash messages on errors * Test processing state changes from os-autoinst * Consider fullpath as a valid asset * Minor refactor for clone_job.pl and add unit test * Add global settings support for clone job * Treat UEFI_PFLASH_VARS as non critical asset * Change striped name from IPA results * Remove debug leftover * Highlight blocked jobs with orange colour * Do not hide scheduled jobs if blocked * Calculate blocked by jobs on creation in job resultset * Release vlan networks only if other jobs in the same cluster aren't running anymore * Disable worker shuffling in 05-scheduler-* tests * Add scheduler function to disable worker shuffling during computation * Adapt job_grab tests * Adapt scheduler fullstack test to latest changes * Follow the rename of get_websocket_api_version * blocked_by calculation: Don't block on self * Fix timer reset on quit * Calculate blocked_by state later in the process * Reset the scheduler tick if not summoned * Simply scheduler logic - but a lot * Fix blocked_by for chained parallel jobs * Disable pp in IPC - a little too noisy on allocating * Filtering for scheduler * Prepare a hash of jobs * Select all scheduled jobs and filter them for free workers * Remove BUSY_BACKOFF and CONGESTION_CONTROL * Remove CAPTURE_LOOP_AVOIDANCE option * Remove OPENQA_SCHEDULER_FIND_JOB_ATTEMPTS option * Add UEFI_PFLASH_VARS to detect_asset_keys * Mark all restarted (cluster) jobs in UI * Add IPA format to OpenQA Parser * Improve logging in LiveViewHandler * Assign os-autoinst tx not before actually connected * Ignore 'Data frame received after close' for now * Extend unit tests for live view handler * Refactor LiveViewHandler * devel mode: Prevent endless, instant reconnects on error * Mention how to actually enable openqa-ssl.conf under openSUSE * Use wss protocol for websocket connection when page loaded via https * Fix javascript errors on running.js (#1719) * Update README.md- Update to version 4.6.1531161673.f7fc21dd: * Remove docker-tests during install * Don't display blocked jobs as scheduled * Make registering assets transactional (#1711) * docs: Add note on sending new lines to a serial terminal (#1714) * clone_job: Make _GROUP and _GROUP_ID override each other (#1716) * Add blocked_by to jobs - calculated on job changes * WIP: Move commands to run docker tests to separate script * Make parser test less verbose * Make error messages in setup_share_dir more specific * Allow to use a custom os-autoinst checkout * Remove print() leftover from debugging * ws proxy: Add tx after last client-specific error handled * Don't fail full-stack.t when already assigned * Prevent use of global variables in LiveViewHandler.pm * Make developer mode accessible to operators (#1707) * needle editor: Assign new background image instantly * developer mode: Show only modules which are still ahead * Adjust overflow behavior of dashboard progress bars * Use _GROUP_ID in clone_job.pl * Refactor test code for jobs post * Test specifying group by ID on jobs post * live view: Connect to ws server when testStatus.running is set * Fix bugs in form controls for devel mode * Show developer mode form only when connected via web sockets * Fix help popover in developer panel * devel mode: Handle case when module list still unknown * Never assume it is the own devel session when not logged in * Don't update developer mode controls until confirmed * Rephrase to avoid 'developer session' * Make full-stack test more stable (#1701) * Replace 'opened by' with 'owned by' * Prevent resetting the module to pause at on page load * Show link to ws console only in development mode * Remove useless debug printing in live view handler * Don't use Test::MockModule::redefine() * Improve error handling of livehandler daemon * Test UI controls also in developer fullstack test * Cancel job when quitting the developer session * Don't quit developer session when disconnecting from os-autoinst * Add tests for developer UI controls * Fix importing determine_web_ui_web_socket_url * Start developer session via submit button * Set status code when finishing ws connections * Avoid using Mojo::IOLoop->one_tick() in developer unit tests * Adapt to removal of waiting state * Fix style issues mentioned by @foursixnine in review * Extend unit tests for status-only route * Fix broken HTML on test details page * Check that VNC instructions are shown when test is paused * Document variables for developer mode * Hide entire developer panel when test not running * Adapt existing developer test to UI changes * Update module select for devel mode like modules under details * Handle reconnects in the client * Notify clients about removed sessions as well * Keep track of status-only and devel ws tx separately * Show VNC instruction only for running jobs * Pick the right route (either developer session or status only) * Add UI controls for developer session * Move methods to build proxy url to OpenQA::Utils * Remove deprecated ui test * Allow developer-instructions to be modified by status updates * Add status route to websocket proxy * Fix typos * Connect via livehandler proxy to isotovideo to get updates * Update service file for livehandler service * Remove unnecesary options for livehandler service * Update instructions * Expose VNC port to developer * Add UI controls for developer session * Fix formatting of Contributing.asciidoc * Document running UI tests with Docker in non-headless mode- Update to version 4.6.1530017682.0f384112: * Allow 'assigned' state in fullstack.t (#1699) * Move constants from Schema::Result::Jobs to a separate package (#1696) * Remove leftovers of interacitve mode (#1697) * Adapt fullstack test for the logging changes * Adapt tests for the display of pid in the log in debug mode * Print pids of processes in logs if log level is debug * Avoid db locks on asset_lookup * Treat the case when we could not update asset in critical section * More protection for critical section in the cache * Add other cache tests and more refactoring * Try to bring coverage back * Add locking test, and remove useless query in fullstack.t * Reduce the critical section * Avoid Perl 5.18 complain * No need to import getcwd * Do not run the cache test in parallel * Reduce parallel processes for concurrency test to avoid travis to crash * Wrap also toggle_asset_lock in lock_section * Flip download = 0 from the same function used to toggle on/off * Make the cache test more stable - add also option for stress test * Add concurrent test for cache * No need to init explictly anymore * No need to export get_asset anymore * Adapt cache and cache test to more OOP style * Use transactions and wrap rollbacks in eval calls for further debug. Also enable exclusive transaction in toggle_asset_lock * Fix wrapping of parser results (#1695)- Update to version 4.6.1529433451.a70c6e82: * Remove running_or_waiting method * Remove waiting state that was leftover from 5e65496f * Ensure proxy is connected to os-autoinst in devel test * Allow status as a ws_proxy command * Make waiting for paused more robust against disconnects * Remove unused parameter in wait_for_developer_console_contains_log_message * Let the web socket console automatically reconnect * Ensure ws connection won't timeout in fullstack tests * Improve check for developer console in fullstack test * Remove link to developer console * Use docker image from OBS (#1685) * Let tmpfiles.d create the mount point "share" (#1689) * Add basic barrier documentation * Improve documentation about mutexes * Remove $isodir from Utils (only used in tests) * Remove /tests/X/iso route * Remove hdddir and otherdir from Utils * Fix waiting for development session * Don't fake D-Bus when running the devel fullstack test * Propagate os-autoinst URL from worker to web UI * Fix CSS for developer console * Fix path for liveviewhandler in Apache config * Adapt execution of developer test to latest changes * Fix perl critic error * Open the 2nd window/tab in devel mode test correctly * Handle errors happening before dev session correctly * Add unit test for developer mode * Remove unneccassary D-bus env for livehandler * Refactor live view handler to use regular methods * developer console: Handle case when port is NaN * Refactor full-stack.t and 33-developer_mode.t * Add test for developer mode to Travis test matrix * Add test for developer mode * Workaround broken syntax highlighting of full-stack.t in Kate * Allow to start Selenium driver directly via start_driver * Improve passing parameter to OpenQA::Test::Database::create() * Fix ID of developer session info * Increase inactivity timeout for openqa-livehandler * ws client: Broadcast messages to all JavaScript client * ws proxy: Try/catch only JSON decoding * Allow login as a 2nd administrator via fake auth * Make logout accessible via regular GET * Install service file for openqa-livehandler * Use transaction to delete development session * Move ws connection for developer session to its own service * Keep track of developer session, limit to one session per job * Validate commands before passing to os-autoinst * Make the websocket proxy route basically work * Allow to use websocket console for proxy route as well * Add basic structure for developer mode web socket route * Make fullstack test more verbose * Prevent warning in fullstack test * Test pausing and resuming jobs * Add web socket console for isotovideo commands * Display incomplete jobs in next&previous tab (#1682) * Update documentation with NAT configuration using firewalld (#1683) * Categorize UEFI PFLASH drives as HDD assets (#1684) * Try caching * Easier way to pass exit status from docker-tests * Change message level when cgroups cannot be created (#1681) * Fix typo in the travis.yml and fix the grep regular expression for the status checking (#1679) * Adjust popover margin on audit log (#1678) * Change from su to sudo in the docker image * Docker shell scripts cleanup * Allow where parameter for mutex unlocking (#1677) * Documentation for running tests in docker * Enable codecoverage * Add support for os-autoinst * Add DBUS support. * Force user permissions 1000 to be compatible with opensuse * Moved the DB from the host to the container * First release of the dockerfile to create container to run unit and integration tests * Remove job_set_running - as jobs are no longer waiting * Remove job_set_waiting - jobs aren't WAITING anymore * Remove current interactive mode- Add Dockerfile and entrypoint.sh for development container - Remove _multibuild to pass source validator- Add files for livehandler daemon- Update to version 4.5.1528009330.e68ebe2b: * Remove uncovered as unused asset_list call (#1675)- Update to version 4.5.1527697506.2eedfb2e: * Add a little coverage to the admin/needle controler * Use the timestamp on admin/needles * Add migration to update the timestamp of the needle matches * Cascade set null to job_module IDs in needles * Add logggingPrefs to chromium to make sure we get browser logs (#1672) * Remove more references to first_seen * Remove job_module_needles table and first_seen_module_id * Remove scan_old_jobs job - no longer referenced * Drop Jobs::retry_avbl from DB * Scheduler: enable WAKEUP_ON_REQUEST by default and reduce default tick time (#1669) * Tidy previous commit * Reduce debug output for parser tests (#1668) * runcmd tests: handle differently-cased git error message (#1665) * Ignore cloned children during cluster calculation * Cancel the full cluster if a job fails * Rename jobs_to_duplicate to cluster_jobs * Add test case for cluster cancel (failing atm) * docs: WritingTests: Fix superfluous 'you' * docs: WritingTests: Add backend related test development tricks * docs: WritingTests: Split big section "Test development tricks" * Fix broken navigability with arrow keys in test details (#1664) * Fix test cases and make tests more reliable * Do not reuse scheduled jobs on cluster duplicate * Some sync between code and tests * Make Job::duplicate non-recursive * Always enable sql debugging if requested * Start the display with the current job * Small cleanup of variables * Extract create_clone from Jobs::duplicate * Remove support for retry_avbl * Remove limit option in next&previous tab UI- Update to version 4.5.1527149502.003be4d6: * Add error logging in gru (#1660) * Fix the alignment of the progress bars on group overview (#1659) * Add http-only config for nginx (#1526) * Disable needle selection if there's nothing to select * Reduce padding of lists in tool tips * Fix devider in job group navigation with Bootstrap 4 * Allow specifying group for isos post by name * Fix DataTable error under route /tests/latest (#1656) * Exclude external links in 22-dashboard.t (#1655) * Add _GROUP filter to isos post * Update documentation for multimachine tests setup- Update to version 4.5.1526551139.04373a1e: * Fix triples in job templates documentation * Update documentation about isos post in client help * Enable client to restart jobs 'from test result overview' * Add API route similar to test result overview * Refactor composing search args for test overview * Update documentation about isos post in client help * Show job results in results tab (#1614) * Show all badges and build numbers (#1650) * Limit special rendering for text results to parser results * Test rendering text results * Make the layout use 100% width (aka 'fluid') (#1646) * Ignore profiling data generated by nytprof * Improve rendering text results in test details- Update to version 4.5.1526033850.1ad9148d: * Add _source field to every detail generated by parsers implementations (#1647) * Fix links to #live not starting live view (#1648)- Update to version 4.5.1525548058.3f6bb61a: * Avoid appending multiple runs with --nocleanup (#1644) * Limit number of tasks for limit_assets and limit_results_and_logs GRU tasks * Add test for GRU enqueue limit option * Update apparmor profile for worker (#1645) * GRU: Add support to limit enqueuing by task * Update unit tests for TAP parser * Mark test suite as failed if test steps have failed * Add information about openQA internal results * Update TAP format documentation * Remove dots from filename * Ensure that the details description is set * Use a single result to contain all the test steps * Update changes to TAP format * Temporary version of the parser for TAP still failing * Log a warning when step data is not found * Allow LTP parser to load files that contain special characters * Replace extra dots in the filenames (#1642) * Increase the required coverage to 88.8 * Do not fail a pull request if there are unexpected changes * Use same width for each colored dep status span * Show parent and child deps on job page in nice tbl * Enhance unit tests for GRU TTL * Set 2 days of ttl for limit_assets and limit_results_and_logs when posting isos * Add unit test for GRU task TTL * GRU: Add TTL for Minion jobs * Use a smaller font for the 'ago time' to fix rendering (#1635) * Prefetch comment counts for /tests * Update bootstrap to 4.1.1 and fontawesome to 5.0.10 * Do not load full application to generate assetpack data (#1628) * Improve the duplication tests (#1627) * Hide categories when filtering test details * Ensure needles directory exists in 18-tests-details.t * Require 'Selenium::Remote::WDKeys' in CPAN file * Add test for filtering test details * Allow filtering test details- Update to version 4.5.1524586233.92db89bc: * Add unzip-plain to AppArmor profile (#1629) * Use current SUSE Logo (#1626) * Avoid skipping dependencies when cloning jobs. (#1623) * Improve some details in t/ui/18-tests-details.t * Randomize GET /tests/99946#step/yast2_lan/1 * Use usual prove flags on Travis as well * Hide failed modules on overview table for small screens * Fix positioning tooltips with Bootstrap 4 on overview page * Add Minion Link to navbar and move under admin * GRU: delete gru and deps on failure * Fix spacing of 'Build + Bars' rows on dashboard * Adjust padding and media break points for dashboard * Use exact same colors for cards/panels as before * Add unit test for job custom_module * Display GRU failure as job test module in openQA * Fix dropdown menus in fullscreen mode * Use full width in full screen mode * Make the gru service to be restarted on-failure * OpenQA::Task::* Die on fatal errors * Catch all tasks output also in case of error * Mark the jobs associated to the gru task incomplete in case of gru task failure * Adapt to new Minion::Job API introduced in Minion 9.0 * Remove unused Data::Dumper import * Use Minion::Command::minion::job to get jobs list * Enable the Minion Admin interface under /minion * GRU/Minion: Take account of failures * Use gru enqueue in controllers and keep relation with minion jobs * Adapt test and fix leak of memory * Gru: get dsn from DBI for Minion * Move GRU tasks to Minion- Require Minion >= 9.02- Update to version 4.5.1524056562.74e334c1: * Close candidate menu after selection * Fix positioning of dropdown icon under Firefox * Fix handling multi-tag tests * Adjust UI tests to handle new candidates selection * Implement full diff * Allow to show just the screenshot again * Add shortcuts to custom combo box * Make style for result preview part of openqa.scss * Use customized bootstrap dropdown instead of combo box * Workaround issue when clicking menu item in 21-admin-needles.t * Port card in overview correctly to Bootstrap 4 * Use same link color as before * Make badges look like before * Adjust colors * Fix paging of tables for running and scheduled jobs * Remove symlinks for Glyphicon fonts * Fix UI and fullstack test after Bootstrap 4 migration * Adjust media breakpoints * Fix grammar in tour * Upgrade tour to Bootstrap 4 * Restructure stylesheets * Fix live-view and other small issues under Bootstrap 4 * Make it look more like before under Bootstrap 4 * Fix permanentely moved links on dashboard * Fix overall appearance with Boostrap 4 * Fix filter panel on the main page * Patch bootstrap theme to be a little more like it was before * Remove hidden class * Port the navbar to bootstrap 4 * Start to migrate to bootstrap 4- Update to version 4.5.1523608608.fca0aa46: * Enforce sorting the results returned by the sql query to use in is_deeply (#1621) * Remove dead code in Worker/Jobs.pm * Update current test module details when cancelling running job * Prevent failures in worker reset_state() (#1618) * Group candidate needles by tag (#1606) * Test image selection of needle editor (#1617) * Fix 'Take image from' selection in needle editor (#1616) * Refactor needle editor code * Fix showing needle editor when no tags present * isotovideo: wrap log_ calls with eval * Require latest RWP * Start isotovideo inside a container using cgroups * Checks if failure status file exists before trying to slurp it * tests: cover case when one of the cluster jobs already running * Consider running jobs in filter_jobs * Fix fullstack test in case /usr/bin/isotovideo is present * Limit showing new needles to the 5 most recent ones * Use 'new' prefix when showing new needles * Add documentation about showing new needles in editor * Improve tests for needle editor * Show errors/warnings/info in needle editor with consistent margin * Show added/updated needles in editor * Add database entry for needles when saving via editor * Simplify save_needle_ajax code * Extend needle table with tags and timestamps * Capture serial patterns documentation * Don't show configure button for untracked assets * Fix mojo not handling max_size_limit when is a transaction * Allow optional overwrite of the productlog request depth with a query parameter (#1601) * Enable JSON representation of the test overview (#1600) * Add asset size limit option * Return reference for test result file lists * Make OpenQA::Client::Archive property of OpenQA::Client * Remove chdir that caused errors when downloading test files * Add file _download_file_at method for logs and uploaded logs * Move progress monitor code to a separate fuction * Ensure that uploaded test logs can be downloaded * Add first version of OpenQA::Client::Archive * Move test_uploadlog_list and test_resultfile_list to the model- Use Minion for GRU tasks, this requires Minion and Mojo::Pg as dependency- Fix handling UTF-8 when executing make install- Fix handling UTF-8 in update-cache.sh- Update to version 4.5.1520515419.c3df6f91: * Update the chromedriver url from 2.33 to 2.36 * Allow saving needles for OS with dots in the version * docs: Clarify some serial terminal terminology and other elaboration (#1596) * Do not reset the api version just because the worker is offline * Fix scheduler comment - now default MAX_JOB_ALLOCATION is 80 (#1595) * Always retry until chunk is uploaded and retrials exhausted (#1594) * Refactor and add error test * PARALLEL_CLUSTER is no more * Adapt scheduler_full test * Avoid to re-consider the jobs that are being allocating in a round * Do not take account of spaces in PARALLEL_WITH * Exclude allocating jobs from prefer_parallel cut * Consider allocating only when we have them * Bump MAX_JOB_ALLOCATION default to 80 * Exclude allocated when blocking dependencies * Consider the jobs allocated during the round as running in prefer_parallel * Prevent cluster tests to be allocated if their group is not allocated- Update to version 4.5.1520100590.2279151e: * Fix sort order of the review comments (#1593) * Expand the serial terminal console documentation (#1586) * Emit openqa_job_create events when an ISO is posted (#1584) * Replace die for 500 code and move global constants to OpenQA::Constants * Avoid circular dependencies when running the tests. * All the available free workers need to have the same websocket interface version * Move the interface verification to the worker ack- Update to version 4.5.1519929327.f726adcc: * Enable wrapping cells in overview table (#1591) * Perltidy * Protect during collected unsubscription * Prevent to determine job status from collected event when timout expires * Remove check backend timer * Fix check_backend detection * cpanfile: require at least Mojo::IOLoop::ReadWriteProcess 0.19 * Adapt jobs tests - we are not dying anymore * Don't fear the (sub)reaper * Add AMQP doc * Lock tidy version * Make prove verbose- Update to version 4.5.1519128406.810fb68b: * Show correct port for created job (#1578) * Use rwp also to call rsync (#1585) * Force a restart when the children or grand-children processes die * OpenQA::Parser::Format::JUnit mark testsuite failed if one of testcases fails * Replace the exec call with ReadWriteProcess module * Add use Mojo::DOM in JUnit and XUnit Parser (#1580) * Use the generated Mojo::URL as Client base_url * Add get_piece() in OpenQA::File to ease writing of downloader class * Add test for OpenQA::Files's prepare() * Make integration tests of uploader with fixed chunk size * Fire events inside subprocess before and after chunk processing. * Move uri checks inside common function in OpenQA::Client::Handler and guard from not configured scheme in host * Add test to check if retrials numbers are matching * Use subprocess for potential loop blocks * Adapt workers to error handling * Add tests for OpenQA::Client::Upload retrials on failures, and events propagation * Emit errors on OpenQA::Client::Upload * Swap multi-chunk uploader in worker with OpenQA::Client * Make OpenQA::Handlers EventEmitter(s) * Split OpenQA::Client * Wipe out content of written chunk, try only weak check and back to Storable * Do not always perform total cksum * Drop Mojo force to File asset, display stats of uploaded chunks * Write as we receive in a temp file * Avoid to relay too much on the serializer * Use C backend to read whole file when computing total cksum * Enhance error detection * Allow to chunks to dynamically grow and shrink * Make total checksum verification run faster * Let specify chunk size in config file, and default to 1000000 bytes * Also add API endpoint to inform of upload status, adapt tests * Do not make split() to load the file * Pass asset option in multichunk upload * Create empty file before writing it if doesn't exist * Try to swap current uploader with multi-chunked one for assets * Add spurt to OpenQA::Files * Add write_verify_chunks() and write_chunks to OpenQA::Files * Add methods to verify against chunks, also add test when joining/verifying in-place * Add serialize/deserialize also to single result of parser * Add OpenQA::File, wraps Mojo::File and adds seek capabilities * Add worker version check on the server. (#1552) * Add basic test for OpenQA::WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Test 27-errorpages.t with a predefined API desc * Replace Pod::Tree for Pod::POM in WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Move API description methods to its own package * Add POD documentation to Controller/API/V1 packages * WebAPI: Add API description from Controller's POD- Update to version 4.5.1518003872.3977d2f5: * Run perltidy again (#1577) * Fix perltidy complaints (#1576) * Give 404 rather than 500 on invalid asset route (#1575)- Update to version 4.5.1517920216.2250682a: * Take latest version of Selenium::Remote::Driver (#1570) * Big rework of the GRU limit_asset task (#1569) * Fix broken links in openQA documents * Update Installing.asciidoc * Add pager for comments on group overview (#1561) * Add help box for group filter * Fix testsuite descriptions if default config not present (#1554) * Test subgroup filter and form * Allow to expand nested groups by default * Add filter for subgroups * Check qemu pid before starting job (#1565) * Require < 1.21 of Selenium::Remote::Driver * Downgrading selenium drivers during test phase- add fonts for chromium test suite - and remove currently broken tests (https://progress.opensuse.org/issues/19652)- Update to version 4.5.1516716144.98db9c99: * Improve error handling in group overview (#1562) * Do not remove forwarded-for=https headers (#1558)- Update to version 4.5.1515767133.56cd6ee5: * Support nested OpenQA::Parser objects * If no parser format is supplied, return a OpenQA::Parser::Format::Base object * Add POD documentation for OpenQA::Parser::Result::OpenQA * Add documentation for OpenQA::Parser::Results and move search() in proper class * Move search_in_details() in a new class that inherits from OpenQA::Parser::Results as it is openQA specific * Add documentation of OpenQA::Parser::Result * Move methods and attributes from Parser to Base format * Simplify spec format definition and move common displayed fields to openqa specific result classes * Drop support for creating collections with package global variable (useless now) * Make possible to upload in all the supported format and add tests for it * Add other tests, bring back coverage and fix wrong Node val() assigment * Return a OpenQA::Parser::Result::Node object when getting unstructured data from result * Make parser now really recurive, add also support for nested data structure with unit test * Make LTP parser tests output compliant to openQA tests results * Run parser test in parallel * Add possibility to store / serialize file content too within the parsed result * Add test to check DB consistency with parser extracted results * Move format specifications to separated namespace * Add XUnit tests * Add basic XUnit parser and schema * Clean LTP and include schema inside parser file * Add support for nested Results collections (required for XUnit) * Use functional interface in exposed api * Make collections serializable for unstructured data * Add accessor for unstructured data * Ask to include result only if the specific parser can * Move include_result option to specific parser that needs it * Provide also functional interface * Serialize single Results object as seen by to_hash() and add tests * Add tests when parser errors * Support hashifications of unknown objects * Add unstructured data test * Add reset method to parser, add and cleanup tests * Make serializing possible for collections with different OpenQA::Parser::Results objects * Add possibility to export/import the Parser to JSON, add also tests * Add serialization tests for junit spec * Tidy OpenQA::Parser::Result * Hide name field in JSON encoding of OpenQA result - but keep serializing it * Add example of new format specification for LTP * Simplify LTP spec definition even more * Get hash representation automatically of attributes if they can be rendered as hash * Add backword support for v2 format and add unit tests * Rename subtest to avoid Perl 5.18 complaints * Refactor write of parser result data * Add optional extra list that can be filled by type spec parser * LTP specification: Environment is optional inside result in new format * Add support to serialize/deserialized nested data structure * Add serialization capabilities to parser, and add tests * As classes are representing merely what's the json content, include them in the LTP module file * Add test data example for LTP results format * Add support for LTP specification in OpenQA::Parser * Generalize parser results, and subclass to specific implementations * Adapt parser tests, since now default value for script is 'unk' * Generate test module result from parsable extra_tests * Parser: return unk for test script if does not exist * Add search between parsed tests, link results and tests * Draft for JUnit parser * Prevent worker status selection to sort (#1555) * Unify code for scheduled/running table and fix sorting (#1556) * Remove leftovers in t/api/02-assets.t (#1557)- Update to version 4.5.1515509269.fa07a084: * Remove assets from disk when deleting database entry (#1553)- Update to version 4.5.1513750232.be133588: * Add basic setup of multi-machine worker (#1544) * Allow deleting assets via web UI (#1551) * Deal properly with environment variables that can change logging (#1537) * Fix deletion of jobs referenced as last use of asset (#1549) * Show assets by job group * selenium test: Allow configuring mojo port * Split asset tables in used and untracked assets * Refactor data size rendering in JS and reduce precision * Set App mode in WebSocket server (#1548) * Fix repos gone too early: assign REPO_10 to jobs as well (#1547) * Retidy - Perl::Tidy 20171214 has different formatting (#1546) * Update installation steps for postgresql (#1538) * branding: openSUSE: Add Kubic (#1539) * Change the logs timestamp to ISO8601 (#1542) * Add documentation for postgresql migration (#1530) * Fully fix asset caching without test caching (POO #29208) * Fix job group update issue (#1533) * Hide worker properties if no login (#1534) * Switch to fontawesome 5 (#1531) * `limit_assets`: remove asset that breaks limit, not next one (#1536) * Remove all assets from DB that are gone (#1535) * Allow to query live data from api, adapt tests * Display additional information in the worker's table * Add panel and popover to show job detail * Make searchable field and fix DataTable loading * Add openqa-setup-db service that will create postgresql database (#1528) * Retrieve worker stats data * Do not query by default websocket server to display worker informations * Fix tests to expect new columns * Show size of assets exclusively kept by a group * Accumulate size of assets exclusively kept by a group * Document fast initialization of local tests (#1527) * Add column to groups with size of exclusively used assets * Also store if the asset is fixed in the DB * limit_assets: Use DBD::Pg directly for querying job asset * Check all columns in test for asset table * Show last use of asset in assets table * Ignore chromedriver logs * Show asset size * Write info about assets kept during cleanup to db * Improve comments in limit_assets * Fix PRJDIR error * Add support for colons on worker class * Add WORKER_CLASS to job_list filter * Fix caching of assets without caching of tests (#1521) * Accept a lower coverage - we removed code * Move worker log test to 24-worker.t * Schema.pm: Remove unused functions (increase coverage) * Remove SQL files for SQlite and for 2016 * Have our services require postgresql server to be up * Adopt generate-packaged-asset to use postgresql * Import log_error in OpenQA::IPC * Test: increment unstable_worker ticks and wait for each one to be ready * Remove more traces of Sqlite support * Provide t/test_postgresql to setup a temporary postgresql * Fix more test cases * Prepare a proper DB for the scheduler full test * Fix t/ui/22-job_group_order.t by providing sort_order in fixtures * t/ui/13-admin.t: Postgresql sorts RAID at the end * Sort table settings by key to have reliable tests * t/api/02-iso.t: Do not rely on hardcoded job number * Give WebSockets server its assets * Sort the previous jobs in worker table by ids * Skip all tests requiring a database * Test fixtures: restart the postgresql sequence * Fix t/17-build_tagging.t not to depend on Sqlite specifics * ui/04-api_keys.t: Don't rely on ids in fixtures * 14-grutasks: don't rely on DB sort order * Drop sqlite3 support * branding: Update SLE staging links (#1523) * Use log_info for worker activities (#1519) * branding: openSUSE: Add caasp (different bugzilla naming variant) (#1522) * Tidy the sources * Do not cast to int worker_status timer * Propagate error on IPC dispatch call * Use WORKERS_CHECKER_THRESHOLD to detect dead workers as well * Remove printing to debug the result of safe_call * Reduce OpenQA tests verbosity * limit_assets: don't wipe assets for PENDING jobs (#1518) * Allow same group name within different parent groups (#1507) * Apply log level correctly (#1516) * Check if job is valid before starting working on it. * Upload workers log to the webUI (#1502) * Only test basic tests on perl 5.26 (#1512) * Remove IDs from fixtures if they are in sequence (#1513) * Move the $shared_dir to setup_share_dir * Print project directory upon worker's init failure * Fix documentation generation script * Avoid warnings during test runs (#1511)- Add local-db subpackage to create local postgresql database for ease of use- Update to version 4.5.1511814842.53907890: * Make barrier option to automatically destroy the barrier if jobs belonging to it fails (#1498) * Improve web editor (#1510) * Remove outdated imports of JSON module (#1509) * Use Cpanel::JSON::XS in step/edit.html (#1508)- Update to version 4.5.1511709996.0670f622: * Use OPENQA_TEST_IPC for 12-admin-workers.t (#1506) * Poll status less often not to stress the server * Adapt coverage threshold * Mark workers dead when they disconnect from WS * Make full stack test more robust by adding more assertions * /tests/overview: Change sorting to show all machine variants together (#1489) * Use Cpanel::JSON::XS directly to avoid overwrite mess * Extend apparmor permissions for /usr/share/openqa/lib/** (#1504) * Test multiple perl versions in travis CI * Ignore specific 404 errors in the javascript console * Click away the feature tour in full stack * Make 21-admin-needles more robust * Clean VHD and VHDX images in cache * Treat VHD and VHDX images as HDD assets * Replace logrotate config with what we use in production (#1500) * Fix function names in ui tests * Rename PhantomTest to SeleniumTest * Remove support/work arounds for phantomjs * Use headless chrome instead of phantomjs * Use proper name and directory for PhantomTest * Update Cache documentation (#1495) * Make path of changelog configurable via config file * Add changelog for web UI * Avoid creating useless commits (#1497) * Add _ONLY_OBSOLETE_SAME_BUILD, _NOOBSOLETEBUILD -> _NO_OBSOLETE * Multiple loggings channels * Log Uniformization * Make sure /tests/overview shows test suite descriptions for all machines * Display job name on dependencies list * Worker: use population as scale_factor * Add websocket server test to cover errors when updating worker seen status and population update * Make threshold for worker_checker a constant, and tight the bond between the status timer and the timer for checking inactive workers * Use in_range from OpenQA::Utils in scheduler-full test * Best effort to let know worker population of different WebUIs * Move worker configuration reading to Worker::Common, making it easier to test and slim down the startup script * Remove already superseded default inactivity timeout from script/openqa-websockets * Remove keepalive message and introduce dynamic slot allocation for worker_status timer- adapt build dependencies to Cpanel::JSON::XS- replace phantomjs with chromium/chromedriver- Update to version 4.5.1509097496.8b8e8e20: * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Worker: Wrap asset_lookup() query in eval/if * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice * Fixing the package to build with newer assetpack (#1485) * Mention repos for Leap 42.3- Update to version 4.5.1508961373.6d2e83a0: * Scheduler: Add option to deal with slow workers that could be detected as dead. * Scheduler: Handle stop/restart cleanly * Respect log level configuration even when no log file is set (#1413) * More prominent color for closed bug references, old ones for open bugs (#1412) * Scheduler: implement retrials before declaring a job not accepted by a worker * Scheduler: add option to wakeup when we receive new jobs * Adjust full-stack tests scheduler default values * API/Worker: Get updates from job that match the worker id * Revert "Permit a dropped test coverage for now" as we are covered now * Worker: send worker_id when updating setup status * Job: Return error messages when worker doesn't send id * docs: Move label and bugrefs doc from wiki * docs: Add description of closed issue visualization * Use OPENQA_TEST_IPC in more tests due to scheduler changes * Scheduler: add code comments, refactorize and simplify code * Include '.' in INC for 24-feature-tour.t (#1420) * Scheduler: Remove EXPBACKOFF option and default to binary * Scheduler: Remove shuffle option. Is new default now, if we don't shuffle free workers we might go into starvation since they can keep failing * Scheduler: schedule() now returns allocated jobs and failures * Websockets: distinct error while dispatching job over ws * Improve error if a worker cannot connect to a WebSocket (#1416) * Conflict no-cleanup worker with normal worker (#1417) * Scheduler: Add basic unit testing * Scheduler: remove retrials and workers cache * Scheduler: use another state for jobs that have been assigned but are not yet in running status * Worker/Websockets: Make worker send status messages, and websockets reaping jobs that are not matching states * Websockets: print details of messages received from unknown workers * Websockets: remove (now) misleading debug message * Worker: do not die in the loop when current_host is not set * Scheduler test: simulate unstable workers * Workers: collect error if we fail dispatching commands to websocket dbus service * Scheduler/WebSockets/Worker: update job state to running from worker responses * Scheduler: now job allocation checks are not needed anymore inside scheduler * WebSockets: use set_running when updating job status (#1426) * Add support for custom links in footer * Fix staging link for CaaSP * Worker: increase keepalive timer * Seperate footer links from footer legal part * Add 'report Bug' for OpenQA product * Scheduler: sleep when we have nothing to do * Adapt scheduler tests to new sleep mode * WebSockets: reset to schedule state if we detect stale assigned jobs * Websockets: set default appname - which is used in error templates * Websocket: wrap database transactions in try catch so we can debug dbus service errors * Create base for fullscreen mode on group overview site * Include just show latest comment feature * Add disable comments feature in group overview * Add fullscreen to group overview and rewind comments part * Fix uninitialized value error and typos * Add autorefresh for builds and comments in group overview * Make auto refresh rate adjustable * Fix sporadic problem of systemd service start (poo#21004) (#1430) * Add description part for api routes at not_found page * Add a quick tour to openQA * Enable feature tour by changing database entry * Adjust ui test * Replace old DEPENDENCIES.txt references to cpanfile (#1423) * Templates: improve error handling in running_table (#1427) * Utils: Flush log output when we don't use Mojo::Log * WebSockets: finish connection when we don't have the worker registered * Workers: print debug output when connection is closed * WebSockets: enable required plugin on setup * Add tests for WebSocket disconnection handling * Add missing figure for closed ticket labels * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Treat ASSIGNED state as in execution * Subscribe start_job/stop_job events before we call send on websocket connection * Worker: reset internal state if we fail contacting the WebUI * Worker: Do not cleanup if pooldir is not set * Add support for multiple distri/version/group on /tests/overview * Websocket: Do not kill connections due to inactivity (meant mostly for browsers) * Dereference hashrefs before using 'keys' * Check whether description available before printing it * Cover the websocket server to avoid uncovered changes with CI builds * Include all relevant distros when linking overview * Use Mojo::Log for logging worker's output * Refactor worker status messages * Cover main OpenQA.pm, which was left with low coverage * Changes the log level to debug if --debug or --verbose is applied. Default is info level. * Fix use of undefined $email by using default icon instead (#1444) * Sync needles when caching is enabled * Use cache_tests from isotovideo engine * Better reflect job execution through states * Replace tabs with spaces and fix indentation. * Ensure CSS classes are used for Datatables * Add setup state to be polled and tidy up * Test 404 error page * Ensure use of symlinked applications for clone_job/dump_templates/load_templates * Trim less text in overview tables by using CSS instead of custom code * Disable live log/terminal by default * Untie live stream from live log * Make details the default tab also for running jobs * Ensure streams for live view are only consumed when tab is active * Allow info/debug messages in javascript_console_is_empty * Switch to live view by default in full stack test * Move read_test_modules to OpenQA::Utils * Add support for getting test results as json * Fix missing openQA::Client import introduced in 7c91a962 * Improve documentation for contributors * Log IPC errors * make Makefile non-bash environment friendly (#1465) * Add log function log_fatal * Allow filtering by result on 'All tests' page * Add query param for filtering 'All tests' table by result * Adapt bugzilla link to new SLE15 installer (#1466) * Fix filtering by result on 'All tests' page for some results * Test enabling result filter on 'All Tests' page via query * Fix regression introduced in https://github.com/os-autoinst/openQA/pull/1460 * Ignore .pc directory for perltidy (#1472) * Fix missing log_warning import on IPC.pm (#1473) * Cherry pick perltidy fixes from @henrich (#1475) * docs: Add hint about performance impact of VM snapshots (#1474) * Create ResourceAllocator DBus service * Split fullstack tests in different build matrix * Create exists_worker in OpenQA::Utils * Use schema from ResourceAllocator instance, refactor to use exists_worker * Adjust scheduler full tests after the split * OpenQA::ServerStartup: set also appropriate handle when setting up logging, since now FakeApp has STDOUT as default handle * Add safe_call to OpenQA::Utils * Switching to safe_call in ResourceAllocator * Make job update take into account of ASSIGNED and SETUP state * Worker: Reset state also when we loose current_host (due to failure contacting webserver) * Return 0 by default on worker's try_lock_asset() * Worker: Wrap asset_lookup() query in eval/if * Make heartbeat timeout for rabbitmq configurable (#1479) * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice- Provide clone-job, dump-templates, load-templates as symlinks in bin-path- Update to version 4.5.1501694730.25c355a8: * OpenQA::WebAPI::Controller::API::V1::Job: catch errors and return no jobs when we fail to contact dbus * Schedule jobs without polling * Make workers only accept one job from one webui - also check if we dispatched the job correctly to the worker * Update worker seen status from ws keepalives if thought dead * Set to running just when we are sure the job got dispatched to the worker * Improve error handling when we fail resetting scheduling state * Do not use in the workers next_tick anymore when accepting the job * Fix the keep alive timer handling in worker * We need more timers to be host specific * Scheduler: Be more strict with job states * Apache: SetEnv proxy-nokeepalive 1 * Permit a dropped test coverage for now * Scheduler: further optimizations and refinements * Get rid of notify_workers, and from the signal that was associated to it in the dbus scheduler service * Remove job grab from the API * Fix bugzilla links for CaaSP (#1395)- Update to version 4.4.1501432550.4c72a17b: * Some more permissions required for power8 worker (#1405) * schema: Add job module statistics to jobs table * Use job module stats from jobs table in 'All Tests' * Add . to INC for tests that use local modules (perl 5.26 doesn't) (#1406) * Update job module stats when module inserted/updated * Fix typo in networking documentation (#1407) * Add the job module statistics to the migration code (#1409) * SLE 'LeanOS' corresponds to 'Server' on bugzilla.suse.com (#1393) * Dynamic feature infos for users (#1388)- Update to version 4.4.1499449966.bd9ee915: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable * Allow plugins to load specific configurations * Remove auth_config from OpenQA::WebAPI::Auth::* * Add fullscreen base into project * Add form entry for fullscreen view * Fix navbar to not hide if dropdown selected * Change help popover description in filtersection * Correct main controller and index page * Add error message for missing webserver * Also recognize kde bugrefs in Utils.pm (#1366) * Add link to CaaSP staging (#1360) * Also recognize fdo bugrefs in Utils.pm (#1367) * Database change for bug status * Improve assets log messages (#1365) * Documentation for GRE (#1369) * Extend sorting by time to parent group overview (#1362) * Add workaround for PhantomJS in needle edit test * Fix typo workround -> workaround * Prevent bugref_to_href replacement at end of title (#1372) * Refactor rendering response for server-side DataTable * Refactor server-side code for audit log * Refactor server-side code for previous jobs of worker * Test takeover of exclude areas in needle editor * Fix wrong HTML, input must not contain text * Show exclude areas in needle diff * Show exclude areas in needle editor always * Document areas * correct typo (#1379) * Enable INTEGRATION_TESTS (#1384) * Retrigger download retry for incomplete downloads * Fix perl structure printed in the logs * Check when asset has been removed by hand * Changing from using pure perl to Mojo::Asset::File * Allow the cache to use a configurable sleep time * Unlock the asset before the next download retry * Add unit test for cache * Add 25-cache.t to testrules.yml * Set sleep_time to 5 again * Remove unnecesary code from cache tests * Refactor server handling to avoid race conditions * Improve handling of logs and directories * Improve cache tests * Improve server_start and port handling * Remove unnecesary calls to Mojo::Asset::File * Fix test directory to share/tests (#1383) * Sort the failed modules on their timestamp not by their name (#1378) * Add test for "Server unavailable" * Inform user when OpenID login fails with no message from OpenID provider (#1380) * Increase the grace timeout to have uploads finish (#1385) * Notify the workers only when there are no errors * Create jobs from settings within a transaction * Increase information in logs if a wrong secret is used (#1374) * Avoid OpenID login to clutter log files (#1386)- Exclude not supported and not building i586 in spec file rather than project config - Use internal macro for %setup - Cleanup description and doc section- disable tests on tumbleweed as they hang - need to debug this regression first- Update to version 4.4.1496302635.5e9b3f9: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable- Update to version 4.4.1496150882.49e14ecd: * Avoid OpenQA::IPC::ipc being called premetaure (#1185) * Add $prjdir prefix for relative filenames in Needles * Add option to change $prjdir on the fly * Adapt timers helpers for multi-hosts * Make api_call not to recurse into IOLoop, add callbacks * Adapt worker registration to multihost * Adapt jobs helpers to non recursive api_call and multihost * New multihost workers.ini * Per-host working directory support * Multihost commands parsing * Adapt worker tests for non-blocking api_call * Use OpenQA::Utils log functions in worker * Use share/factory directory instead of factory link * Replace dirs parsing by one liners * Remove dead code * Use testcasedir helper instead of removed static * Add some unit tests * Fix generate/packed-assets not to require dbus session (#1186) * Avoid 404 errors on scheduled jobs * Take 4 travis jobs as success * needle editor: Validate needles/tags in JavaScript (#1189) * Reduce the number of travis jobs (#1188) * Duplicate the job if the worker is terminated * Simplify selenium using code * Do not do any jsonfile path processing * Prevent uninit ws variable warning * Pass query params as params key for duplicate * Allow api_call to be called without callback * Change the Mojolicious version requirements (#1195) * Fix needle path check (#1196) * Fix the 12-needle-edit test to leave the data in place * Import log_error before using it * Introduce project share directory variable * Adapt test to use share directory * Switch test distro from pitux to tinycore (#1203) * Fix last remnants of global url and ua usage * Add image upload to full stack test * AMQP: Declare exchange passive and durable (#1202) * Fix an error when job result is "setup failure" * Prepend sharedir when looking for needles with relpath (#1205) * Add full stack test for setup failures * Fix 24-worker.t * Fix build lookup for single groups (poo#15988) (#1204) * Allow override of the usual setting precedence order (#1200) * Fix undefined warning for _stop_job_finish (#1207) * Shared worker documentation * Document referrer configuration and label:linked * Fix job_timeout timer not being removed after stop_job (#1209) * Add get_timer getter for worker timers query * Add tests if start_job set proper timers and stop_job removes them * Improve code preparing data for test overview * Synchronize 'TODO' filter with review badges * Add help popover for 'TODO' filter * Show help popover details link in new tab * Enhance jobs list in worker page (#1212) * docs: Ensure pool dir exists when starting worker manually (#1213) * Fix UI test skipping when modules not available (#1211) * Avoid creating duplicit dependencies (#1214) * Update documentation for a more obvious flow (#1218) * branding: Add casp reporting links (#1219) * Add notice to clone_job.pl help text (#1222) * Do correct DISTRI-VERSION case dir lookup * Fix AMQP SSL wide character JSON encoding (#1224) * Refactor test for scheduler dependencies (#1225) * Fix apparmor profile to let worker read from /other (#1228) * Update GettingStarted for some Fedora repo changes (#1229) * Fix time display regression introduced by f127654 * Harmonize running/scheduled time string also in UTC * Show absolute time in tests list for finished as well * Fix typo and make vhost config more readable * Update Pitfalls.asciidoc * Add pitfall for fake authentication method * docs: Correct asciidoc syntax for pool instance table * clone_job.pl: Display description with examples on '-h', too * Update create_admin script * docs: Improve language of 'using snapshots' section * Fix synchronization of TODO with badges * Add link from test details to assigned worker * Fix bugzilla links as CASP was renamed to CaaSP * docs: Delete reference to inactive stable repo (#1230) * needle editor: Fix errors appearing in JS console * needle editor: Show new tags in own line * needle editor: Display all tags in the same way * Allow configuration of how builds are sorted in web UI * Add id to comments over API to allow referencing * Fix needle editor when taking matches is disabled * Fix openqa_web docker instance running * Update Dockerfile to host openQA on Leap 42.2 * Change deprecated "MAINTAINER" instruction * Add instruction "LABEL version" * Use the default openID provider * docker: Remove pool volume unused by webui * Fix error when running the worker container * Fix dockerfile for webui * Fix dockerfile for workers * Update README.md for docker section * Document running selenium UI tests (under Leap) (#1250) * Make needle edit test case less specific * Prevent double machine tag output in 02-iso.t * Add option for 'isos post' route to deprioritize old builds rather than obsolete * needle editor: Format new tags bold * needle editor: Prevent adding empty tag * docs: Add documentation for 'triggering tests' * Harden loading of auth modules with whitespaces (#1253) * Allow redirects for clone_job requests (eg to ssl) * Allow annonymous read access to operator tables * Fix failing admin test * Fix bugzilla reporting links for CaaSP * [docs]: added documentation about setting up ssl (#1257) * client script: Don't encode URL twice (#1260) * Allow api_call to be called without callback * Add Cache * Enable caching on the worker * Improve Cache package and tidy up the code * Fix cache.db problems * Ensure the asset has the proper name * Add TESTPOOLSERVER variable for caching * Refactor to allow CACHEDIRECTORY to replace share directory * Simplify api_call nesting * Fix the ISO expansion for local assets * Let's set reasonable goal for codecov * Work on testing cache * Do not exclude .git from syncing * Harmonize the keys used for assets * Add newlines to log output * Improve cache directory * Catch errors on cache downloads * Fix perlcritic errors * We need Mojolicious 7.24 for max_response_size * Implement download_asset so we can actually test caching it * Remove -E option from flock - we do not check the exit status * Make sure assets in pool are handled correctly * Add support for multiple group, no build on /tests/overview * docs: Add hint about multiple groups, no build * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure * Ensure uploaded assets have correct perms (#1263) * Change $testpoolserver only if passed as option (#1264) * Set read permissions for downloaded assets (#1267) * Ignore module flag 'important' (#1266) * product log: Don't show actions when not at least operator * Make assets, workers and API help publicly available * needle editor: Fix inserting tag via middle mouse button (#1269) * Fix restarting jobs from worker page (#1272) * Merge 'Status' and 'Connected' columns in workers overview (#1273) * Add anchor for build results on index page (#1265) * Lower down quantity of automatic carryover * Add environmental variable to skip online tests * Be specific which text element we want to test * Fix hardcoded cache.db file * Fix assets not being removed * Force read_db after a write * Add subtest for Cache * Improve log output for label carryover * Ensure that label carryover is done correctly * Fix the recursive $db_file appending (#1279) * Tidy the code after last hot fix * Relax the regex for build values in tag: comments again * Don't obsolete jobs for VERSION-BUILD tagged builds * needle editor: Distinguish tag/area selection in check * needle editor: Test verification when not copying areas * Improve little triangle sign below a screenshot (#1285) * Add ignores for db.lock and phantomjs log (#1287) * Correct 'softfailed' reference to passed (obsoleted) * Ensure consistent naming of 'failed'+'softfailed' in all occurrences * Fix overriden shared $dir worker registration (#1291) * Add a Contributing section * Add explicitly index and current.pdf * Stop distinguishing softfailures * Fix typo 'parallel' (#1290) * Adjust grid wrapping in build tables (#1286) * Use space indendation consistently in javascript files * Delete w/s at EOL in javascript files * Add 'build-results' anchor for group-overview page, too (#1281) * Replace old 'important' behaviour with 'ignore_failure' (#1297) * Give failed screenshots back the red border (#1300) * Adjust test module flags on Details page for ignore_failure (#1299) * Document the 'norollback' flag in WritingTests (#1298) * Better error msg for openqa client (#1303) * Improve 'Downloading failed' message (#1302) * Refactor 05-scheduler-dependencies.t (#1306) * Shorten build-numbers with dots to prevent overlapping (#1305) * Fix "only tagged" for tags with version (#1296) * Do not upload empty serial_terminal.txt (#1274) * Makefile: Allow to skip checkstyle (#1304) * Fix missing space in log debug message (#1307) * Register job assets even if one of the assets need to be skipped (#1310) * Test whether admin table displays needles which never matched * Show needles in admin table which never matched * Improve logging in case of upload failure (#1309) * Improve product fixtures to prevent dependency warnings * Handle wrong/missing job dependencies appropriately * clone_job.pl: Print URL of generated job for easy access (#1313) * Allow lscpu to read all of /proc - but only lscpu (#1315) * clone_job.pl: Skip downloading generated assets in all cases (#1314) * Fix invalid HTML * Don't use name attribute on div element for markdown * Fix indentation in overview.scss * Fix showing long needle name in hover popup * Prevent DB exception when adding tests in job templates (#1318) * Remove duplicate "current step" (#1319) * Refactor Cache.pm to use SQLite instead of json * Update cache full stack test * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325) * Improve admin test (#1327) * Fix makefile syntax (#1328) * Avoid line break after h4 in midori and co (#1333) * Implement a config option to restart workers that grew too big (#1339) * Allow cache to handle 5XX errors and retry 5 times (#1337) * Inspect failed modules in /tests/overview (#1335) * Fix print() on closed filehandle $log (#1334) * Replace file_content() with Mojo::File (#1331) * Disable printing time when logging to STDERR * Add more tests to configuration parsing * Fix bugzilla reporting link for SLE-12-SP1 (#1332) * Make 'TEST' the only proper mandatory test setting (#1126) * Avoid unit test to write on source code directory (#1341) * Fix breakage introduced by https://github.com/os-autoinst/openQA/commit/659464d19b02e541f2529bd313c39681c71adfcf (#1343) * Add scheduler test to cover OpenQA::Scheduler::FakeApp (#1345) * Fix documentation publishing on gh-pages * Make sure a valid up-to-date license in all files * Fix doc generation - testapi (#1347) * Add unit test to fix codecov "uncovered changes" (#1348) * Add direct link to video position (poo#19300) (#1342) * Avoid github and use a CDN for chosen.jquery (#1350) * Correct Typo in Firewall config file (#1351)- Prerequire needed group nogroup- Also provide systemd services for workers with '--no-cleanup'- Update to version 4.4.1495052041.c6a5bc94: * Remove duplicate "current step" (#1319) * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325)- bump mojo requirement- Update to version 4.4.1489864450.251306a: * Make sure assets in pool are handled correctly * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure- Add the openQA.changes file to be distributed as public/Changes on the web-ui- Update to version 4.4.1484732113.4fb90841: * Document filtering * Fix documentation generation (#1177) * Fix corner buttons (#1176) * utils: Add kernel bugzilla bugref (#1175) * Do not run tests for GH_PUBLISH=true * Mojolicious 7.19 has broken SSL support - blacklist it * Switch to CDN for fontawesome * Fix missing images in documentation (#1180) * Do not even run the coverage target if GH_PUBLISH is true (#1183)- bump requirements to Mojo and AssetPack- add Sort::Version requirement- Update to version 4.4.1484213177.5ef2a6e4: * Add css class to click on action (#1147) * client: Support sending JSON data (#1150) * Test both phantomjs and chrome on travis * Exclude AssetPack >= 1.30 - it will break fonts * Sort build versions correctly (#1136) * Add optional profiling support using Mojolicious::Plugin::NYTProf (#1153) * Add tests for client script * Don't use config file as database lock file (#1157) * Fix build of the package: we need a db directory to lock now- remove YAML and Socket::IO::INET6 dependencies- Update to version 4.4.1482329765.866bba8: * Improve buttons in interactive mode * Fix command API route * Synchronize INTERACTIVE and STOP_WAITFORNEEDLE_REQUESTED * Change the format for developing with snapshots (#1093) * Fix sorting of needle table (#1092) * Add short route to individual job results '/t:testid:' (#1089) * doc: fix typo (#1096) * Fix AMQP reconnect timeout config var (#1098) * Add AMQP connection error msg to log (#1099)- add new require on time::parsedate- Update to version 4.4.1481828911.8296cb4: * Update worker apparmor file from production worker log (#1078) * Add brc (Red Hat Bugzilla) and bgo (GNOME Bugzilla) labels (#1083) * Auditlog: display event time on hoover * Auditlog: add page and rows query options * Switch audit log to server side processing * Use system user to create system events * Add new Time modules dependencies * Add page displaying single event * Improve search query parser to support multi-word queries * Don't bother with event data shortening- add bcond_with tests to run phantomjs optionally- Update to version 4.4.1481216307.2d2b18a: * worker: Prevent use of uninitialized value (#1066) * Copy over policies from os-autoinst * Fix usage of qw(SINGLE_VALUE) in use statements * Rework websocket server (#1057) * client: Respect --json also in case of an error (#1068) * client: Set 'Accept'-header in any case (#1070) * Return 404 on status update for job without worker * worker: Abort job if considered dead by web UI * Improve misleading comment * Comment events: Drop unneeded fedmsg conditional, include id (#1065) * Improve log message when job considered dead (#1075) * Disable carry-over for job 'labels' to support new use cases (#1071)- Do not package removed files script/migrate_images and backlog- Update to version 4.4.1479741639.90bdf0f: * external_reporting: Fix differing header level in description (#1012) * Add test for parents on index page and parent group overview (#1015) * Show build tags on parent-level (#1018) * Add a 120 column limit to .perltidyrc (#1017) * Fix a few formatting mistakes and remove repetitive method calls (#1020) * docs: Update openSUSE repos to current supported (#1021) * Fix URLs in dashboard when version/distri differ (#1024) * Show submenus on click (#1025) * Update bootstrap to 3.3.7 * Wait a bit in tests if there is an ajax call- update cache for bootstrap-submenu- Update to version 4.4.1478599354.3d748dc: * Fix job group overview without description (#957) * Don't free worker before artefacts are uploaded (POO #14378) (#958) * Improve override needle test (#962) * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969) * Implement Drag & Drop group editor * Add support for github 'bugrefs' * t: Delete unused (disabled) 'use Test::Output' * t: Ensure proper output catching * Improve usability of job group property editor * Replace all '...' with '...' in web UI * Add assert_script_run description * Allow '@' in asset name (#979) * Fix list of needle tags in needle info popover (#977) * Allow worker profile to access fixed assets * Fix download of fixed assets from web UI * Reindent 01-jobs fixtures * Use url helpers to map the asset path to URL * Add help text using popovers, title and placeholder (#983) * Add missing argument for hmac timestamp validation * Give tests without fails a no-TODO tag (#960) * Trying to make peace with adamw over locate_asset * Add a repository as test fixture to test subpaths * Show tags on index page * Add API auth tests * Improve help popups * isotovideo: Remove redundant '|| undef' (#989) * branding: openqa.suse.de: Update staging to current SP3 (#988) * Show parent groups in navbar (#974)- have openqa_worker own /var/lib/openqa/cache- Update to version 4.4.1477579540.21d4009: * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969)- Update to version 4.4.1477110901.763fe71: * Step controller: split init into 2 functions * Fix coverage skipping files with 't/' in path * Test source view from running * Treat #details tab as all the others to fix back button * Add test for switching tabs in tests result view * Some fixes for the new results / running page * Fix SQL query to query important jobs * docs: Update OBS references * Upgrade to Leap 42.1, and fix apache2 starting problem * Live view: simplify drawImage * Be way more careful with history manipulation on results page * Treat # and '' the same for history management * Allow sha1sum for os-autoinst:2144a20c * Allow git for os-autoinst:d29266f * clone_job.pl: Add option '--skip-download' * Give the user better hints on what we expect for the expiry date * Do not create a link_post for reschedule isos * Use the proper API to get the data of the selected row not the first row * Replace the broken PNGed SVG with the real one * Talk to os-autoinst through HTTP instead of the file system * Replace document.ready with $(fn) * Fix interactive buttons * Fix upload of images during needinput * Make sure the worker stops at signals * Fix spelling of existent * Add web UI controls to select 20/50/100/400 previous results * limit_assets: when sizelimit is exceeded, remove more * Be more graceful when stopping the backend * Always set a t_finished to now if the job has a final state * Sort the finished jobs by their finished time * Change the order of the tests in the list test * Set a t_finished time in fixtures to have predefined order of finished jobs * Sort the scheduled jobs based on time * Sort the running jobs by Start time * Benefit from the hashsum calculation for our icons too * Remove pauseplay class and image - no longer used * Add more icons to assets and remove what's left in public/images * Remove dead file * Add custom whitespace squish * Use manual whitespace trimming after squish was removed from Mojo7 * Mojo7 removed Mojo::URL::authority, use host_port instead * Add SUSE internal branding with more links * Refresh running modules in #details view * Deal with race conditions when refreshing #details * Create missing results tbl on #details * Reload broken thumbnails on test #details * Correct description for use of OPENQA_CONFIG * Fix build tagging when @ is used * Clarify comment in the dashboard test * Use correct job result in openqa events * Add command_enqueue to worker model as send_command * Export log_error helper in OpenQA::Utils * Add job_set_done and job_cancel to Jobs module and result set * Adapt tests for moved job_set_done and job_cancel * Remove scheduler dbus exports and subs job_set_done and cancel * Remove command_enqueue from scheduler and dbus * Check for user when emitting event * Log iso_cancel for canceled jobs due to new iso and allow job_cancel_by_settings event * Fix typo in worker check during job duplication * Fix counting of cancelled jobs * Update Jobs::cancel to accept $obsoleted option * Use ws_call using well known format to send messages to WS server * Sync property parsing to workers format * Make softfailed a proper final result * Add tests for showing softfails in prev results * Give user_restarted an explicit colour * Remove MySQL from deployments, we never test migrations or deployments * Resort to raw SQL instead of avoiding the schema and still use dbic * Fix DB access error when skipping scheduled children * Test both children skipping and stopping * Accept softfail result as passed * Add test scenarios for job result calculating * apparmor: Add missing /usr/lib/git/git * Make softfailed tests show the right colour * Make non-important failures at least a general softfail * Calculate softfailed at the very end to fix one specific case * Add more tests for corner cases * Carry over also for incomplete and softfailed * Add V1 API for comments * Use API for comments in web UI * Add comments without reloading page * Only redirect to running tab when no # is in url * Clear url hash on test step result preview close * Test for url hash cleanup after preview close * Fix incorrect 21-admin-needles test * Fix calculate_result (again): $overall should cover all * Improve error handling of comment API * Prevent needle editor flickering (progress #12984) * Enforce build order for group overview in tests * Remove unneeded functions of old comment API * Add 'latest' query route * Remove history for step navigations * Replace job_set_done by $job->done in dead job handler * Move dead worker check to websocket server * Add test for dead worker detection * Make build in previous view a link to tests overview * Add test for 'todo=1' query param * t: Fix typo in t/ui/18-tests-details.t * Fix deadworker timer function reference * Fix complex_query and its usage in last route * Render links on 'latest' route directly instead of redirect * templates: Simplify single line statements * Make title for 'previous results' a proper heading * t: 12-needle-edit.t: Try to find overwrite warning more often (poo#12980) * previous: Move current limit where other options are * Add web UI controls to select more builds in group_overview * Add web UI controls to filter only tagged or all builds * Fix workaround label * Fix taking over tags from a workaround needle * worker: Remove tons of work arounds and quirks in upload * Allow cksum to be called in the worker * Upload assets as temporary files and only rename after chksum check * Fix typo * Prevent use of non-existing route in upload_status * templates: live: Fix url_for over 'latest' route * Disable auto-duplication of jobs (poo#13042) * Avoid shift * Test handling deleted needles in needle editor * Ignore deleted needles when showing needle editor * Show warning about deleted/bad needles (needle editor) * Fix admin layout for test suites with long keys Currently test suites slenkins-tests-ceph-control and s390_hsi-l2 * Make apache follow symlinks for assets directory * Fix '0' duration for previous jobs on running or scheduled job * Add link to latest job in each scenario * Allow pinning comments as group description * Fix jobs templates layout * Also filter 'machine' on latest * Vertically align progress bar with build number * Re-add boundary hack * Make 'latest' link more explicit * Do not quote identifiers, solves problem with uppercase column (#838) * use /var/lib/openqa/share/factory/iso path (#849) * Add 'bash' to be able to run 'CMD' (#850) * Add filter from in test overview (#852) * Draw needle match labels after match boxes (#851) * Add lock barriers (#845) * Show custom error pages (#831) * README: Update coveralls icon by .svg version (#853) * Add new job state (#848) * Remove old comment code (#856) * Run optipng on the worker while uploading images (#858) * Add filter for all states and results * Distinguish comment events * Show results and states dynamically * Test whether job still exists in reduce_result * Split Logging support out of WebAPI (#860) * Give the scheduler a home (#862) * Log status update without worker (#861) * dead worker check: use 15 secs not 10, better names, comments (#864) * Fix the stale job calculation for uploading jobs (#865) * Fix path in docs about migrating db schema * Show filter on top and display current filter * Avoid HMAC timestamp mismatch during large file upload (#871) * Give Websockets and Scheduler the home of the webapi (#870) * Label builds where all tests passed as reviewed * Dont grab twice (#874) * Prevent detecting occurrences like bsc#2436346bla as bugref * Replace URLs with the appropriate bugref pattern * Do not rely on WebAPI to find home - require and use an harmless class (#876) * Prevent multiple bug refs per comment to yield incorrect URLs * Add 'match' query parameter for index page * Add 'group' query parameter for index page * Add more faking to FakeApp - so restarting jobs works again (#880) * comment the home detection for scheduler/websockets better * Allow bugrefs being separated by any non-word chars * Fix used needle indication when needles are in folders * Merge match and group parameter * Use $FindBin::RealBin to resolve links for client script (#889) * Fix previous jobs showing up for different machine (#885) * Remove FIXMEs and disabled code in t/ui/15-comments.t (#888) * notify workers when job with chained children done (POO #13746) (#883) * Pass encoded URL filter parameter correctly (#890) * Reintegrate job duplicate (#875) * Mark worker alive for all kind of artefacts (#894) * Small schema change to add an index (#895) * Add IPC debug to websockets too to debug hangs (#896) * update apparmor profiles for ppc64le (#892) * Try harder to avoid long running pre-processing (#897) * Increase session expiration from 1 to 48 hours (#900) * Make ws_send_all WebSocket call not waiting for results (#902) * Avoid DBUS dead locks (#901) * Do not manually render anything on websocket creation (#903) * Prevent error message in log as 'scheduled' jobs are also 'inprogress' (#906) * Add scenario params to limit URLs for previous results (#893) * Handle links to bugs already formatted correctly (#905) * Improve documentation about PosgreSQL (#904) * Test time_limit_days query parameter (#907) * Fix comments test (#908) * Split the images directory even more (#739) * Add anchor links to comments (#909) * Move comments.css to sass reduce copy&paste (#910) * Readd the lost name of the thumb_nail route (#911) * Refactor computing build results (#898) * Show incomplete/skipped bugs, show tooltip on progress bars (#912) * Add link to openQA review (#899) * Fix vertical alignment of progress bars in tables (#917) * Show progress indication in admin needle table (#918) * Track image assets better (#919) * Fix deletion of multiple needles at once (#921) * fix downloading assets to different filename * Fix sorting in admin needle table (#924) * Add JSON representation of index and group overview (#922) * Add filter form for index page (#923) * Add /index.json route and test it together with overview.json (#925) * Fix /index.json route to pass the format (#926) * Fix softfailed results not showing in tests list (#930) * Fix group filter on index when param is empty (#933) * Fix group overview when no builds shown (#932) * t: Add 'Test::Warnings' where missing; Catch all warnings in tests again (#931) * Extend schema of JobGroups (#914) * Fix typos (#935) * reuse a constant boundary to make debugging failed uploads a little easier (#934) * Some code cleanup and more tests (#937) * Fix test result info spacing (#938) * fix loch ness monster bug in 14-grutasks.t (#941) * Load step and needles for failedmodules link async (#936) * Complete API for job groups (#942) * Auto reload result page on state sched -> running (#940) * Update Installing.asciidoc (#927) * Go to bugzilla.suse.com also for bnc# (#943) * Fix going to bugzilla.suse.com also for bnc# (#946) * Improve error handling when deleting needle (#939) * Fix needle deletion via Git (#948) * WebAPI: Delete comments stating the obvious + delete unused routes (#947) * Render bugref links in thumbnail text windows * Test render bugref links in thumbnail text windows * Show job group description (#950) * Add 'fixed' asset subdirectories for fixed assets (#928) (#945) * use locate_asset in register_assets_from_settings (#954) * Rejig compressed asset download, don't leave compressed files (#955) * Fix registration of downloaded assets (broken by 0905559b) (#953) * List needle tags + step icons (#944)- Add missing dependency perl(JSON) for openqa-client- Add missing dependencies perl(Data::Dump) and perl(Getopt::Long) for openqa-client- Add symlink /usr/bin/openqa-client to /usr/share/openqa/script/client- Ghost /var/lib/openqa/share in common subpackage * solves issues when updateing worker with mounted NFS- Remove perl(Perl::Critic) build requirement, added by mistake- Package /var/lib/openqa/share for common subpackage - Pakcage /var/lib/openqa/share/factory/[iso|hdd|other|..] for openQA package- Update base version to 4.4 to express new API of isotovideo- Update to version 4.3.1466434215.021a11c: * No longer export the worker_id as hash entry * Remove job_get from the scheduler * Simplify our theme - split the sass theme from the specifcs * Set an explicit colour on cancelled * Use default bootstrap table class for striping * Use the theme colour in tables * Have our bootstrap theme based on https://bootswatch.com/paper/ * Fix comments test - h2 is the new h1- Update to version 4.3.1464792258.155f49e: + t: Use helper function to wait for ajax + Extend iso post TEST parameter to support a list of tests (poo#10482) + Test for "let TEST parameter support a list of tests" + Enable brackets inside keys in client script + Add first approach for editable comments + Make comments for tests editable, too + Fix indentation of flash and wells on test page + Fix minor mistakes in editable comments + Reduce code-dublication in templates + Add first approach to test editable comments + Test comment editing in test results, too + Check for current user in commenting functions + Adjust t/17-labels_carry_over.t to reflect changes + Add css class no_hover to all /thumbs/ + Improve TEST parameter to support a list of tests + needlediff: Improve similarity text look + Use the nice audio icon (with the correct size) + Use nice icon for wait_serial + add a config setting to specify asset types not to link to + Increase left padding of status icons + Prevent error in group_overview with '-important' builds + Check database configuration with better user feedback + Fix broken string compare slipping into wait_serial icon change + Fix non-ASCII characters in comments + Allow admins to delete any comments + Fix showing editing buttons + Fix regexp for multiple parent jobs + Fix typo in 05-scheduler-restart-and-duplicate.t + Improve log message about 'setup failure' + Support tests/export to get a text format for archives + Fix re-enabling current user role + Adapt to latest AssetPack- add perl(Archive::Extract) dependency (needed by PR#627)- create openQA-client and openQA-doc subpackages - remove DB handling, it's done by openQA itself now- adapt to adam's changes- remove user migration code. no such systems should exist anymore- update base version to 4.3- add modify_needle script- add create_admin script- add perl(IPC::Run) dependency (needed by PR#414)- we don't need JSON::RPC::Legacy::Client- fix rpmlint warnings- add openqa-scheduler.service and openqa-websockets.service- fix fileliist for missing service files- package dbus system policy config - add perl(Net::DBus) to requires- add openqa-gru.service- keep /lib/openqa/share in webui and the symlink in -common. So a plain worker owns no files in share- add --from=geekotest to chown call just to be on the safe side- create a 2nd user and migrate the worker from geekotest to _openqa-worker- run preparetool from the right %post- fix missing ini files link and package new config dir (boo#919548)- Changed path for fetchneedles in post-install echo- don't move ini files in spec, Makefile does it now- include fetchneedles in file list- Update to version 4.1424166204.2ca1601: + Refactor worker scripts and add locking support + Pass worker port to os-autoinst and remove :jobid check + assets replaced /diskimages long ago - get rid of it + avoid "openQA: openQA" as title on main page - looks just silly + remove lib/OpenQA from include path - not needed + fix make test to be coverable and use it in .travis.yml + switch default auth_module to Fake + adding a test to test /admin/machines using phantomjs + skip the tests if phantomjs is not installed- we don't need MojoX::JSON::RPC- reduce mojo require to 5.60- require qemu in worker to get kvm group - add geekotest user to kvm group in worker's %post as qemu is not required by the web ui- fix requires- make it version 4 and require os-autoinst of version 4 too- add BuildRequire perl(Test::Compile)- pre-require openQA-common to make sure the user is created- we don't require png2theora any longer - and actually openQA-worker never did- fix upgrade scenario from openQA to openQA-common- split to openQA, openQA-common and openQA-worker packages- fix post script - remove buildroot macrocloud136 1591719073  !4.6.1589882993.dd2749ac3-lp152.1.15openQA-docBranding.asciidocClient.asciidocContributing.asciidocExternalResults.asciidocGettingStarted.asciidocInstalling.asciidocNetworking.asciidocPitfalls.asciidocUsersGuide.asciidocWritingTests.asciidocimagesarchitecture.graphmlarchitecture.svgbug_label.pngbuild_tagging.pngcreated_with_draw.iofilter_form.pnggeneric_label.pnghighlighting_job_dependencies.pngjob_group-limit_builds.pngjob_group-limit_builds_tagged.pnglabels_closed_tickets.pngopenqa_architecture.pngopenqa_architecture.xmlreview_badges.pngtest_details-link_to_latest.pngtest_details-next_and_previous.pngtest_suite_description_edit.pngtest_suite_description_shown.pngtests-overview-issue_icon.pngtests-overview_multiple_groups.pngindex.asciidoc/usr/share/doc/packages//usr/share/doc/packages/openQA-doc//usr/share/doc/packages/openQA-doc/images/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Leap:15.2/standard/99857551eabbde5ee8e745a3b237bbcc-openQAcpioxz5noarch-suse-linux directoryASCII textUTF-8 Unicode textC++ source, UTF-8 Unicode textUTF-8 Unicode text, with very long linesASCII text, with very long linesXML 1.0 document, ASCII text, with very long linesSVG Scalable Vector Graphics imagePNG image data, 513 x 129, 8-bit/color RGB, non-interlacedPNG image data, 499 x 284, 8-bit/color RGB, non-interlacedemptyPNG image data, 387 x 301, 8-bit/color RGB, non-interlacedPNG image data, 480 x 117, 8-bit/color RGB, non-interlacedPNG image data, 529 x 343, 8-bit/color RGBA, non-interlacedPNG image data, 450 x 286, 8-bit/color RGB, non-interlacedPNG image data, 358 x 107, 8-bit/color RGB, non-interlacedPNG image data, 522 x 229, 8-bit/color RGB, non-interlacedPNG image data, 1031 x 574, 8-bit/color RGBA, non-interlacedASCII text, with very long lines, with no line terminatorsPNG image data, 451 x 376, 8-bit/color RGB, non-interlacedPNG image data, 631 x 122, 8-bit/color RGB, non-interlacedPNG image data, 480 x 390, 8-bit/color RGB, non-interlacedPNG image data, 995 x 266, 8-bit/color RGB, non-interlacedPNG image data, 383 x 214, 8-bit/color RGB, non-interlacedPNG image data, 443 x 155, 8-bit/color RGB, non-interlacedPNG image data, 762 x 804, 8-bit/color RGB, non-interlaced ٢/ѢeՇutf-8664aeb9afe6c7799defac057473888a10eaed0bd7b9904d3818599396344db75?P7zXZ !t/L*] crt:bLL C΋Y(p43[ a-,p񭛥 P7+(=I$9:AHyY1rL3<,r8հDk@}Y1LXt$ ;ʊ@ܡn1= }}5@3:ޯq+uK;_K^_t%OXʏ"*b\vij.yV, &ɝ.2%+K[[Y1%D]svXߊĩZd]ͦKx:` FO>sב'Y t _K΢22e=z3\o&%dˊ2 `Vh6=3wrkE++wϟ2EwA`[%'8` ȃff%?v5TtL3]_6Ӌ{ >򼿃=M]8&te1)eI[5*?$Ox70?$lpGUC뻽^ī&y@< L_-}c`)ˢlY q`Y QL6',VX5F Gu2\џed#N5| Dd%`+=7tK8dg);&뉻AC n'ӪߔtKk8P1W`s^vD$碃m!x`qйatcZcqcG3va)/\ȈamM>Xg3۽Da!idԖ9o5m:A0"2TKi#qISCP ȍCO{'X3*9Ȧ&HXDLD@@n([*b} YfԝL^C|A#?),v %7S^I3Cr6! < 1FeCh@f {"]}EcV]Ms4:k,3>;ڕH[T k g[hɿ inZZ,[|r1 |N!L7UڒdTI|h5@,L8(E@|bݾZ.[g֨En`>黻To7^CB<E(./B62u$9Okc1.mtI[-_38䱙h^V.R(G]JڄՅieꕩF?SO]v&>@$t)m-VPJ0!i䡭2ӇL64~m*:$FSkұ1^g;hLD?N@Dв&[3n2)6y5ș aL~C A8Eȼ5CoGeʵퟄ ,P֖CDžg-H]&rm{=}X`q[7ð_C2ѿpׁv1+,/jaS3H *4K/Sj9q I. +TZ>*ppRcpp0i\>4J9=G-w­@=P:=s?/d6`rR^˅Y D.62gF,gZ:DU! $7Q}3gm-Un5 Jźr7l2r֥?TC~fdeׂQ8i[z8#o߶cnFG{W!R0;$`Rϼ#E;D/$0 -e,s?}[]؇Fl40A}+( qO{A;gs!U @( ѴB!,Ǭ'@ch"}LIh~MO>$A=iX:n=DqUgI 4p7y_vcXjߑ?n7 p@N/镮֭8 s >>jATlʘG`$gZ&N%KhSOjJRl=Fn(i@ǍvVWZsCNI,:k"}`hF\&vbH1?.TD>7&z\z1w@}ݶpj(3; ;qMyS6>߁Uo'|4NJƲ۫5;*7kxrd7ҫ| )CONK#Ӗh &$)Y)Hࢌ'ןm:Xrwhṣ: ahH]#WsFO-\kQ@Br6HJFf6s{ jr1 8 m'gb>ǞgEk(9dŠ4ڰJp` \R^f $spyX?8o yLڄH$K؏hnUK08_O"WXu͠(i_=ϤSpX h\UC U4U^+{ 0We`2T*"honeO'0xʥr9ϣޤh|H;_=~C(H04W"vNaXW\9)iGvɥНŋTg.˃kP^SB!xLvaֵ?ܭ3ůux+| BdL17^o'rUVЊm>Cz=uv=Pi*@vG9: %L#PEeg$ˢN dm" D|Q'e *ꆼH4ΜŞ@x[Ƀ| $SQu⁏GiHP!cixȕX]}{Hdu#.AgzA4$o 0'Aw=~XbĽ .P=_|ԜhߩO=М2lZz|)ƾ'vͅ89+]*c*e}C?!j&fhXiA]E% 0Йf*Z68|G (:Q .}p(XD>c؉NR@"x[tZ?k🣕MKf4c Ihtլ&-e}wxS !jy. qR]M- {ruZ^%"hɍ)ܵD0!<:`Y>r԰L/c aoBh"$7c3jLR} V@G=D+0v9$F<^9f^'Zm,t'[ |Ռ6 &}s>C;   mΆR0g WLSMU/!R;9˔A]Guq^O3 s-4q26j!]c~h*J$3e  |]T74EaݤkbɅ6[gc~m mnJ~]NRCn*& Om<=$ETт5,|I"^3`74X3j= S U qo& x_A)'. ޶OyOc&c%I;>V:ylʯuc9*!n@A0>Qʒڶe9MG܄A} W7!Ej5Kv3)32S=K,2XK.@ӳ D?DQC0QD*OvвΗ5ЧƮǐ-?}iX $DMo@iZ5|QY'y6B>0{}*#w4z26>Dcv^HS+,'z5 @$Ev̿8;Xl3h@q/7ǭ2?[hD~6o24RLIس3 ^9:E(|ܑ0D4)EKzq)&Ijo8@,(4WqF>䱸_ǭ@ciлbا@^W]B'it$ɒox,ѸMlk} 'ѵ(b2>,+qGH4ctE_!_мA9K@!1zx!^, V ( b7q%UdRNf/f?tCl"xN-ލq| R؞I^.Ĥk0Qrmy89`au!qY Âug.E/^<)hc߉zgx^U nWf )@h8"a?$HV4E`t7&Ju \k\hu/jJ'5 *&@;ZO2M;89^TXp$4*`*$."6b91:Ɲ;cziຐ T4p*/)Jc ܸZSB|.Z::q'y7MJr@:T֍L@>0G0[7 Ug4K`zxKƘ33T2tP˲]}u9Qσ4C4o|}mR~̿!--]SN[!0eTO`vn1B&%U$d@mi`bmDDQUȑym hiraV:(I~Y)-(ZVQ>k;_ jt`޻-agf@" Q0OY$jYk Z=W/05nTtl0gp(wZwVUY1S7ɲʏK< xsd?[)v 띥`6J2vcB" ӗ˄`t&Wet:$|;sf<Iy=⭂r>)5cwM Hg0̲p9cNضNғ09Tu˾]'UܽhuqȸeVj5fW|nxTKK8nbG73w_سUyj>HSWBkvxT:$R\5ߢ eܗ@`Yn%M*J&Do:M , koQ?4rArd^2U8L%)rYSڈ[]] 1cP=%⿎`gcMeG787h%+U]h0G-/1ZXNJ%i09f32p ׉3u$QŴ/)ё֥69֒+^r jv&83@%~L%>[vJ|ٖ弫!<ՈwoʧpZp#=om5N*ɫ՗ՃԯP|K7f[{ ѝ%d?MksXF.3 AZK\GO#u8'w4! bb"Dv)"9\6{̲TJ~WCk 1{JKfT1e,_Be/hզyNY727&׉ ޱGyB1Cǩʬ3b$Z7UzH[+>Ig#Ei,_M)q76ByGpkg*ZϬ3d#6_^YTLV| -SThEY :Ϭ`lg\u ϓkHNN71HWmvyV!HmPA%H;vpquã T`H~Q$A~Sej lZaĚ$~"G[䲩?:I;0ީuphGs|ȤBDxnJhQT+wX*`-ݫP#_=h!Ko }_򞨽CEZ#4l|bՌ3pPLѴO>siBۍk~3>]vڢJe4pc,!bw +#D`?a,u#P7 XIjX-l$SN @WssG?WG$#Vn%rDo}P8TC麛qxohU9 T;Kݯ+Yd ͇B 5M{_3[U?{bH!v,U%LS bAt ]pLuS"`ߪ] dcesKq+g|3yh0zpΩqÓͭ*$(NpTqfwtiS:ӎb:"> lVk%O|haNCW^}5.S;TSD2K2$n'^!sD1TTCJ)Ă!:&*X,!(ĺTc,;$6q" ׃&J2T/HHFifҠGx7ĸvՂT|S35/Y7J!gjGX y7MQ˱vɐVm#U9\xƣٔQX ݃e7UW.7DB>L[ T!iZb #|hGl$/皆XA2[' @{*@^;wΥfRՎ_ ?*WHdM!0{%\rdg[N9Qn"^^2!͋Y}YpvHH,7CT Q0oUKi݅E1- Y6ZSB;+@pǺ5rt6ӈtB:gKߘ_%UP濋ܕKg =9!rPsCƍLp=O੠rnYpKo0qpMC 7C J ,X @6ߍ3#nŇ+ f0RI zp _2(Cj"m2hqrX PE2̡x+M֣pߟ`)˜5Wy ׶9IgUG=75q&yX~^?aDlj-`nC2šx7^ػ(~٬\HNvͯ%Qy.V Y1;I\ha|vi~(&*19X3RԐP9̇ tE,s;s?ewPԧHzB!lfCh ]i|Ula㏍ABKG#(b'9vfG[?wyA5O7?rW=1,87h88ik%ͭC]c)~<7mؕm${WLK@VL{0%9/D,ayY]B*>k ߬թwg,5'(sqnI_~k®oƍAy MC;cJQXў~Am;4 HlZ޶?~}Xx@i$S~~Z"=~;' V'>#wG2o߬c]+ˠNjEᾫR*_ώ3oL6ȧظ<N28UN+ S7K !v$t#s4![*KS*?dKє-mLWm(4k{]}a2yBOc_Ϗvtm}|V:9iHf:Bc̝ -C'FeAiq ~-PyS r4gnTeP-є UEllη DO23χ87a0).ܲ ߩM`v"c`*M܁MzxKk]D=? -?j']Bg>⥝f#8چIO\W~D /[uOhF2R{]ld/.ެvׄ+wAB_YRYe @"yRy_"dyѬpR78atIBơMVa:)ׅoAX%Y+UkuqT֎7%"R|۔k>d] , ]f&h#6ɔDjGU=|0;<bdw(lTo[r$ԏԥ9SemEt[YʭÚE?;BMl.ʣuf%8/r-[$&r s7fjj:U`мbo4!5ot &'V_)lrh6}z~>{3 p'~B G/4NkB6㐔pG3!Qyb:*htS&ı~ !uQ~>\$ho+M <Ժe'h3{=5J9& uz{H?j};[ aJ`'';'#`l%h{8T7 *e61s#lmMn-pxaU. ǘ#EMX_TV3Z^+w7- &7+? '>@%1kaՖaLgC٢k ߫/p–Ҹ~t-.B<=)@)Sn\%!(?0Bipt Ii i|'X%zjB:1pR\횢'w^\  Wt<5Xd͂QFv5EW sh \ 0 +xh`1\q ;`r~'M8]Y"<,Hj}[ۦs EȁIő;;qqRȼk)GF@GMYx^ev](v:ŮwI/2M}jW(8O*D6;*£>, 2yU,UA#T̰ٙ9)QI2{2{l+N:.Y}y8팁pO-4E+OͶ x23dܿ<o7'U[F5L|i`”+{ AxA+MTCG$Y;!KN%ssaXc |`f*l9 m5.И mąIphɽ|"׳:gOspƇ'5cb7#i_F@h XIq6I7Jcܾ bM =a,[ZO-g(U,AJf:FqGqA.*:$r4-J\̱=Nl eڼ 9tXv5լwH8b't݄35 ϖM@V9<<>5V%WgL;YWBeelwU?x:j`ql ʂG3X[asw!O9|NM%p¡j=G* "첥3>0KRnp5;^(D8D^*7UD$_W ,-40gZkkgyD=k_#"_y(;$AHyOvp!o k=\i%Q^62iXC> /Q cW4A= J)q/tK1|N h^4C x<li'񩴉{03Ri Px[g7%#RTR|dڸvӟBi1]C,HNwTc2XY_Ѿa ;tE(QO5OLi'm1=FD}U<n<_nDluNPCVmͭ0c(uyol`k y!3biƒbgpC<:OC u@~ LWڢheAuTz%y9sƞ_<pXoꩀ3wvZVw:ߣlft f!jh}H/H'B+%6Fo^AW5odnd?юCF c X$lcV&86\ŬHˎ{D iJ7=;G2]2u՛<W$T'Pk%ؽ{ˈ:bG5,CjW aBjI{+?/֏?J !@<;:f[8|hPfFL֟㰳κafӍ7E\>3]&;"jؒ+T`X;2Y?ũJϒ@ɠsWPGJ w7*!q=ХdZ,~9ef6 >4$aBS6V 15''1><){E7R.X\iRrsYgYKy:%=硘α\oC 3E꧌hrU-Wx~loOrS]/@N|/!Ci| uXa8|k)[z&'~ BOms}\О)̨C}dҩ^*aX,g/&wN7FI,dc(|^Dk lQE_/\Dz\]ֹ|,,6]ion@FPl dWtfDPv*!K F8klLDX\yML% Ҍ// i吵6'/H#bTʸ8܌#eDB^(!살kFtSDc"4<ТmE]eIeX"E f#k;LFa8Ӎ)6n+/,P%[A_gԱCcgIQ!Xvݴq)VUj7@Bn?XlūQ~L!Rc sjP 7e^X] 1oC2myڨ&0Ij.d x7y +~ퟒфsЫQoF|B9?v{hzɡ9:G[e=ƒNN`v:!ursTנ]:]v}"S 5=CfHJ~Sa md(7nw$L盩TSڏhʇYKEXP(I);@ͧ sgH]3L=aх#M+^@<-^xf9HޟjT^ˀ;ה K:Cx̫ɐKm phN:Ĥ #C8T<œl~`NKuAJOA$ ͣq,&ռ=B 񤶔վhgCQߡ5*'$mӓGޅ P >c#3qUnPBQ3>5wz0s2pz^yvRSӾ)85x9[$f K:-3? ݊b"*Ge9rh9RQ60]ƙu5.Fގ_p_.;'ؖDS,<[ #Ѯc>aR:ab*tY@^XueGr$hwutûa˅8 AQCږw7W6!AW>aL]Nm1^c `^`?CK#/$Sjb4nq Z,3>$pdz&_N[Bߐj}ޏYbH*鷲<%0*Ӥ\5%v9]W`իL㪹Kw8q`^Bm(r3bGG] w-**Fg9b+9>Nr^C YM&P?DL 'd"0<r_k6SyyF#,:X!^ѳvJrfw膟f*6= EnM|l ¦ay{cC) b)hO3yUm\,'wWR( AjӨJ+&j^ৄG'5Q31w'fBJޘ|cD]b*$đLsqYs v d!._Օ=̔jQWP\57;TFcp*fI-Lg_?P"y@H%'LЂhl#k_ v~<[F5@en[ٹ5Q_ H1QҰzhz1lЗjanep <1?ڛjbPDCpG"1on# v\,u֒&%<e@D5D0@vz:s&vQ ̖t!IC|[B|G qo<*|)S=~3hA5hЧDGA;h2Om!IZ%Oێ`4H~rB[bDƫ9OM\r=ahk)"j]k+aA9-{4Mh&cxHd|tnh&}t[lWI!W6'I@}}g{`pAĀxB :|6?Q~' J!0µ-ܛқ)${\m+$|ש(FPΠHX6 `UD٢Sπ9X m#  ⦳ Cڇ?QQ^>Kh7K7z;Q`'lq'W6ğFE%<qvUO"IzQj|Vqܰp 6 J9q`+'ΙY4:yP ɍ_-Gqe"ŵDVKR)@Sv( l9}# aZ??PoyDCGG= 㐯`VjPBJM?l1JoՐRmwҼ?:=dW+@e*М"KhIz/s3{^Ͼ^fֈfz7[1Jco#ț%+;h:^k*4!H>g8;yWb,YSPn %K݅FY2WzBijXW*ɰ1A'N^ׇ2~.JN@W#HSPY^3EC+ *GF5;`A@\fK|N9б`&6j)-?9 'T 0If-M~ͣ?k9)mfcFTL(oj#xBk7P#ֈ?ߎ^1!à,fQ_/A^z+*˶V l]ZaHwm1&0UǽT@[Fvxڎ qKj6f9S݅6mNSG[&85Fe5lp|a fSͥdp2{5\icxgj*c~n :+yAi Io3MhJ4?b>fE xzzo$HHOBQAT |D03e/>(h{B~2i]u+Hpgļ\لˮ [F߆.pi DsnshH:r!oG Kl#~Q`eY ˴ؘ,t:OOQ8쯖7أՄK{i41X3ªQfImMtO%" <Ě+2bnx _yB܄Jj<~Xd4R XLƒFH@r YH4Il |[;4~Kf*Po S .X*gTbv'rO% ϱprNwtP> n\@+bpǬ`rinWFӵݾƁ QN~t@̻u%Ô#< fe̠Dv! .݈-R63]bF'WXnRn'/R}OBF1X972Ĕ^! ܏B>ÎF֢EQ}$6̺Nқ@y9 %ԗc ^slTbRX#ß)\1oGخ܁#)3H)

}61MSs?vYGu i4X-`yݑX|Ȍѕxy'uht|IV9bLa}&u>(IJݸ:z$~dtTЗP BXQ뜣hO*AbWoOi}vyM5b%x3"6R&:T1 S~ܫe^R]K.~55P1p6)$}+&kҚx܄&3R'`hm=2RJ 6H{KGWB]<%|F"mgh& XDœ6fljdȾMy?QrlsO1AơgT GZrMp󊒴s- oztpPy0#KR58SRbl]2,-s)}-NGW6UblQ8bIq"V:tOQ(`+{*[[(DbRJl}EZxi,μ4G/Gns͆(w_ ClY;1zeG/hnf{IWPq^.Ul~ZA;0Pg+U6|Sx}B-#=벅抦PW]Ja8ּPx + m.|?B0nFm&-$(~K}V. o-(~RYGi%j0Ԑ E`?3u" 2bXH 7Qv>#H&;*[-t ﯇H[<(s߂ [LzRcg:~ẗF3e.l8㍡U4D%Dr],ֆYp =2Z9aAҴS:79]u-mPb;%p9>µg7HX^X Xqd=/7l:O!9 D=R9@yt Y|pA~*ShRW %T((M~4l{7=dsjo|&Z3|LJ2L{묟B "*P23`mr!nwwc\C_'':4寙C7[DZ%>ٺ,|-tF 5%'b-f#^ZK wsHv5s,n@C1&Ojt_o\޸CkT^0Ivې2O9t;dhAV8xd7MZc4}b.3Qs.Om{f^Lz^MsԨwhy{7S05C:$wO_*afZߘ@}t q~k+v⳨x?Gu*ekKb+GhzJ:jO0=.:s]GB?I# >+?N6ۘtb[? =y]Hbr$W.X1t!ԝsv 5DJasxnrQ޼ $J, ME%oA+!hZ<#4y?|;}I<}< 6'FO';6c+p.g~X7}<¯FoȘA),8O1xAc[` `D}l-Ur|{MH~D89ƻwęw{=P罆w|O +2P\Ўn;~')9Ld (@gG֊LtTdG8ÈZE]+-IJnYLd OZ&p#lZ}uk2Bw;C*=1S~)Z5nΌV 3;h<8)PUJv)$RT8,d4<m8m vy0{Y1S%(HNAZ vJ%؋o'$s],/-R"wǶ1r.&$rJ5"\buY|AfXt5Y}izjZpq@#)%Hnxml;5^l BD(@g #/M6$d#VXMI(T4N&k54[Č$aeiEdCY=aj @q4%m_ *†=i5b [iq$JXXh8QıdڤsaÖ-!"$\VVpﯛ7 gr9ր)M6] R2v:{pcH$*@f~fYltcQZW{ȟQK0h3Jd"%jP2*1o-B H[2=)* VaV0CPU+Wa#`A R%J6"k8-y}ЖJ캨KhSm/vQԖa^>xE 3pE|)ɥ¬*b'cH&x/0ـjZzd 7O 'h,'Uk'm6\lc<4 0cKck< /,.y! pur3$6Ln(ȫq P?K°/-zvS"[Rk-I{d;Z]Qz݁cҟ4oJ* (QEXo&ƼT[ϯwF;ó1 X7FSO  \K+Ԑ 5txxf;;k{\5ta<T'z.腢d"řK!!qjlƕU& GWkٽjmϼ3rӴKmj IOO- 3*;\s9vG-L[欔fhb1ɶ3Y<>Bj 8[.*YZ<+@QPѯNz5gC& OH2% AwʶD&~LY K#ZJ'qriR lbdE! yPeUG%˱vROgٸ?\Y<>T.yh.Z]b&3x>w%B%AR륍rއқJȑ!EQd|W̥ 7 /ŀ~߾+q%@G E/,^ݫM5o߆oِ;Ii֟? :sAK!W)[oR@: e ^P? EV54Q SߔaVX6TuM㍲DžGѰYs-p%|%tg)y*R O&[){%(|xLZQ186`!&tZy$4C`n l`N6|PQ!(1OO'5rǸ]Mj,LZV)hAgRe#u5ò*M1dtmGL Z|-.C/-Յ춡孶^fmtJsUHaq@$(C4a&32+_EҮ9hV]q҅[QgNl.uQPRRz3:/F+TŁ#/V]uT*L B,뱐}ۍҍțt`}m2Vtvy ,d[P? |LDP) `{aՓCX2 Q*o(Du;pDd# 0-3{|eҮij[*~B1u_I7\q8դeDMU,>}1)ߊoW{#qXZFR'Do-d)P@Bթշ`HKْ'f$7)Bq0b9zkQkvGEvn釗>U+<l&g͟Nq|x;#:Dd0"]\h6]v^3g UnVx{'Ÿ_*җoodYHmXoHTn Q#᎝;J=HwaۊD6&o 9MݱׂvPL1?^U%"-T?6v%?i>AAf: i2B>v+u@m CgQPʁbGxJT]bvPDG+P;|OHg0kl%$TnEBo()>ń<ًA%?cNi>s8~-byĆ?̆3[N36M:m@puEԟ&w5mYFA: I}}*YT\T pUr6R zy#K؈XcJEGYd@-ѻkruXTø1ح*HLcʖ9s՗ ճɺD2keQ;пfx_L )<9o7MT3|}ȃhs`<~w{yԉ5@!'e$Lӳ|H 2ktb^.Nm⬼CeIz.jGTf-zV̸-XY{8MqEە4?Zpu{X\%[?~C`/+Ԟx"7 gʗu 1Z!r~4G)hsхbKK JgD}\ jƂ4ϫp` F@V5=8,QxDOrO/̫#jeL~M[]fmg{^7Z&_nʪr笒dխZ;R7)pi" W?{ese@SxbZTP n2#@م m(A.+s52B)6 ye!u>>:Zkh~!3-ί&CzDȡۂiV9$/m[4fnzl]d$EQUDzKߨqäqf e͵fb}Sej_R觽>DBtR4ﱉOG9h> !i8q| Bi 32~l(ɲyޢe!kz`yµӝҁWg>HMԃ꺾ÑԚs|jgn':aОRZoAu!.'8A%޲zx 2C*̺[:}!@0(FgXMQZܓ&C74XID<%ٱ-\G`{n8I]ωfM{Vj9/xz-s*me%|W6d)TxgQKy\8^,9>Ժt_s7by"ww֧b^$meȵ2Eqf71]b%nl̂C@N:zБ4y\P/'@{k~_;^'B,@Cݓj|3Rظ}E3h́ yS"@ ejҿ6"~ }f@x)a]ʪN [TW/ej0:V`# ^n})Rjy 嫬hwT7ȬlC(S:l^i4U|R=7 Of>O8{vZ24(0h :t^~2 y$ 3+ҩ&wv慃\ C;0 `d:q^bE2#p!%]?3u1c*ˊ&χؿքԒ9k֭T}F9* O=lB?= Ki/jͧ0T8jg u]w˹ZRFbH#oY 9SME ab@YX jb9wwX˜h\u-'TFINB*fūZ͹;mr~HcxNj\5sLO;;--gGu:ZN@fXqql42xbE7ZUd oM`+Zu䌉B: 8}?w ʕK]VO2V;.d^<+S.k R--4芔hab oR^jU oe:qˌ6@8x7$? f);XiMV1($gc. AZS nN/@A{8%yѿFx( Tӛ=G9WypQsݓ=ЂzƎP_Dv ?!Czy`ybƼP ;4#+ݰX7@9WG;u%1yTD=êlwLWK"|F }!\2w]sf%6 .!s'P3" Vd)JZv.aJ~i P4#$jxN(pRA:W;%Kw$PU4/Օk Iվ_wdc3skME+} )#֐{/BTLF`(a⢡潔!nyyhƓ!"DUI)W? ~h(h($H;^~o0miC]Ήhq]MFl*/qݵ*L[mJF>FXL0S!$n[U3xjwߊm!$Pm۰ü˪jj{4Ԗb?,~!=a9՜%TeHj1D">a9jd$',X̄?1maCl)>5Q!x@9Pz`_6ȡ+WdY˺bu0tf*ؓ1ÖwLcDϤ4E\zMnߑz@ 9~xţgkD)$;  1B/FeYPyUc ]~oګqhdPEy2R9x:q%dHUuhFV:s52mTyk7s8*ΖO>*`虷_lw_ leW5)}F3-(\ X;!.:24ߛУ_1AF;ܵҔ7*vҊD kZvZyӭ!/zGFp2n!/ gR] +afshROjoA䉖9]uʣJ*7v*8`+^<&IUkv`z]$a1*{XK- {(倰?}6B *d4}!LQgƂ 'H+_ں-MzKo?"T:LX򽡇H@ 4OIWi%LvB jDMBGp.Xʉx$c 8<ں-33 wZ OrB17A8ڣ؏D1PGLzk_B?>€;/dw!,4";_{ew]zUr$=I;wB`m6)^lᣏ|F:. ZrmpIbnI3cp/Q$k`R HwKG kTF ׽1n/x'urOEMRۿix5)&[ [䩽i! ɗZo:*|C_Cb<~1jکdapO[(;Up-` \,e\vHŊ#6H!(ZV,uaE%j XaM^L Vݳffl%Ҿ_N{ xܑ W@%L)Sؚr.-`283God$YUǃhu_@8CzJ}5$5|3L)'?p&i/]Q˶nڰξ*]g|ogDR,Y"3v t/b;N 7zeo~iL I:WP$>:=1g3BXDL-u-kuA1qOB! _߈^S2H鎲[uOnգ֜Rr擔\! 2%c[ fZF(xtI%Wew nuFn^rcrV"ߛ̷{0&*0Qklˌ-`˟A ߾(~*6})5HIKDQbdO1 'DdmӻD*:w^|c #` 3jNg5HO4+ J"?շ ] /W7}6\v$WqC M[ێ^Pc5^ @vQ.guN/|%TvB^Q"ڿ,32EGy%MPЦotxyZft6S ][-잫0&m@dBeOZu9щ."z=;!7:;yC@HݸdZT$x`fګ9ԍwpFjY⛨KdSS^Mt'e0d<6ZsL,W [oLC%_@L߯5<;Aq>7@݂3u}~J理lm'ntCMtpBanEiG9ZtKO&?j3ݫ ~px7CP,E< EfTLZ{/D }~?-USnMU_J 4 9ݐ(Tq̧# ^(4"V)5L Gqj]́6A\1g(A͞UE%* 躿FiȞelP*jat=f |b%1 yCOO>cqG׸ES%z)yUWT)Z ^ Y#;v;wlngE<:5PoNWr1RrjH%f2Aڗ2V̟DVҢ~3og꘹î:>d"G1]rW%,)ɓ~5 oTcFj⏛}5^WI}CJC7Ϭ& 󹹮R9mBS()On]' 3;6BXWM?#(b'His~8"F݇L(x$ "a;! h=*:f`e&>3L[p9șJyh&{ CQUPtW2_cBuTgQpVӡyg%6b|fa09"AQ:*A%QuTU{'3J鶏G&BEVޔ{E&s(a{N|x8Ao5ĂyAE^41b6/ByCFwl×$W@S_d) &*̨dt\הSQJgc:@̣`&u`Pd*)w7bW[ W3wNOF-e&6"ćcU-:FeRx2_{y@f@[K1W ^sk&J!$(Q{9;- v1i4pXk[*gL2[-QSΥMJ؎2&M! 3qL:xPdxTo\t-  NTL@^,GhFq>NW/1XRE˸@hba/HI>0KjT:~( S:Jn94!<۳Sil\| >CFkL!]S[\IyBC!L=q']Cّ^*˜ٞ_p:=>,@4j_hi0@Mwj2 H@qSRG{.-U>ฅl =2xpYK2L0ϒ> 5IBqfYfVyT&dxbZ9$ד(OB_)Qt bZv%B*57e|nȃO70~OaIIëjtµ6w(:tF#Z׺rJQY coo~;jhW} ΤčSv^K)rM959tV|FsRq'& ?Ԧ'y8TYSRմ]< 8q~1ϣ>KyAtQaP_ WtqBkFO7;BRAgi¢Pp;9Iu #7>Ko8 9]ۉnJ $,~i ėƛ>RF&PdZ&ѻi>?c]/tf9Ў`".SW8Sl"իPn`;,٬n9h"+CV#"(FԮWV}o F1c!` R$P ~GXɈq^> wEYF3gHur<',M&[%ó@*F z5` .{EʿM_ Q?Qv9Js!o@^Ie4EV])1z'Wæxt`⪶F/oWD>L/$APM@zň} N뙉X!v0C&8zJDvF\3G1՝`2o kjN! ?@"1區l9pE\6{D=PۄT?c8b*z.k0µOLjBl+^/4F>:ay"zh?TiJflE^mG}L\wQ*=Į`PaMjrLaVuef-BCNV(&zQg4^x9 gBG8)QD =a*5~A27SW}=dצJmz&DS +J(Ιi7>ƧX qBT U.r Ưmq&,aK FL_t+Oi}bCA&gc7D,M+-, A2%?$h:YZrO7R"":┽kv2@٨ǽB7p1%jJ:eS\QJBSU?E;}0(N| Uf2*Ar[.T)Lbte/%t>`#3$n4.XyHykDt:AǕx_yd@@2J͛=32pq|@j֎:$i3jw1<\鶣)Ju/u4M\)&lv걑B?lbx5qJ1Hn*Bdi'+ $|v7`D9 #T1鷱dю뒉 oU]yʷD&hВAߓ6niiff2 Z=(X+SpgFSB k$7VUZ?_RGb2[ 55pї@\o%|P!J+1 YN0ir˯?ߪ$97#)╂L pK3cۮ@j-xhJXw8y{(p1T%WH8mŵY,*4ͶӳHǭ| v9=˚ &ɺ"E|I ʱp|&//buISFߨTǥm.ks[0y:fVYƭ. uY'(˛^%1{8pWh_%ރ3 tý 3"լx~*r)9D7}s oc~_&p~v|?JbK8Vj2Vn,Wu <`"5 ry'-FPZ۠"S$/N18Qw\Y>&L)]jj^Х{y'VgXrv0/>5 KrF^˚ŜD$[rmiæ'2! +?r({)H 0l]gza@@˜F}`7q Cտ Q "\Xt&H*0C.'Bc|q PP ٪2횤 %lL\`Ym^t 4oE#6}-3%6ݥW1^fDOfQՄv\v#%bz`ɍ7o sxXS q~뤎J" QرH 5܅ {!MJo_g' ;{RR[ c_JzI'fnI2 wt4\La};A]֠/m3.$FRE,3/sB0W;;];9 `E7i46q1J"Nñfctl ?bDy u|ۉ[&j{(J;O?CKP=43"V).CBf9oүYVjmɫz)it4{GK\Tfr)IZ+ çF+V4xG|7e.Զv=pΗTN58p5ˉ.'qⁿ,L8ڀ}$J1[fxr%F=!S|oP^mMhO{RIgLR~yTw` Ʀư{ xD ";pisjO:řO'%u]4|WlZ7n^a O)F^LaC$MWJSKkCZ.r9lB_-(M8aiN= h*HZۡRyn22"" Zx&F&OM0ّ S6A+$82 m%K_ۑ;zttW(јMZƤn|䭨#K=t5,޻\j%E:CFGVM7bBғ5WV'-#9^nMW' MPwm FQE7@7 >`$;֦P2KRṚ0$k !wL4ln\,s~]/8u\ZX!l:;ܙZ,/X^C';EW{KY\y_l^{%Ky>y;>p{ =^ib8)4a"Uy}=shEo^[G"Q.6dL4YFl?eԃ[W3d W j}P]{SUSl}޿+1gƸxm.-^1U2W˼0@׾I3 zU y-o!{|ϔn1՟x@׾kTȋ7Ri|[Dv\AO&<Л'jp3tѾxhۿ:}zMՊUNAYy1'\Ҿ_ןs~ V#W$+%KgΘWf]fW]y+G3˒c9׳d0)b J~S6ꓥʦ 6hN>403G%#DazSg#Ce^M^{! 6z}dz^{r^ Y@D)1,}%/r;AJhdV!Kxbm#w'KAj!.kF8|$t!Qz86c[NYv_WYlR3#cd)ᐬ5Ƚw>jN$AtŐC`_[y _;cMG\p*3=<:J.-2WFy~&tּWEc^OA4)]6#!X.)::%>z' `gm&W]o[>/~t;w>pE*eP_G[$FFeE]w0, EH[NiW:4-rY?®6 " &%!lf Xi_v^t^k."Z.wP)w6G; UYA=Ϳ2[7z2A)`X2uMA*#Eϭ>0 Iˤ:Pwy gQ^Mb]3`艮 1}Hܧȩr3&? Y|Q޼|WX.jEE=W1 ĹJzZe}?wR[b nzq613FGLd ?רПJ˰KZu õal= p,T>l[FG=UwZo3V\0=̞gsXc_'}-,N~YoGe y(QrQ9UG#:1D*1Q0)6"Nw(J?Q]w/M6X"1HcfϭQQ4HMWcrnzP(Ms$W ֦F5'$(xUKMt&g斜]&"ڄ-j٭xbji9](ŹE(2Gx-{ڞ CAku})[_G&Ë/&Iܙ%~Ӧ`b;;f( ߙE8rP2F8MO ;,m&sdݯ2D OeG۽{E:bҖ_dumq3xG TdڶM~vZhU* Q,pr8gW1{W-bf5Ma~}NN o؋6XRCr Y}[bㅆu?:[?ᛷ3fCtR>k.l౨Wc5fR*y]JJʋh ^pZ.Db Fd.`7ˇQr Apt\pw@;Щ.hmT>>mi鋯}Rc$e 奈>"@n% Jo&,iuEbҸg uI՟ErQkyj\7ڴ:0P> s?n:j#uoqV#i2NAԻi+p="ҴJҲ_SMYQj{|vW!gqDPӬAJ|A*F D|J fs?MqD4f%i'N}XkB>ƣ125Lj?^ž&B Wax8)kGuՉ7CY/# ^οٰ ?2cϣI rA5M n80KOV|9C~RGᓿ4ų'vfռȒUCHGЂ*}./+Ol$s tx8tAmַg~jlI)X""u޳`M}$TbG$/*_Ȃ.E\79U@3p-=,MKʍy}L3]vJ1:&Qsp`7h#D%lK +Ix!6rh<+l5%C^g났r]/{{.3߾QHȓXT$n,;2UayհwJ/-u=ApY%{ U:,[Oc~c"v$qtxL̵)p(W-4) k "a~qdBUxh]-S>P9/S 1_K)~ ϠSj+p He[ޒ!4f~+64vN.G⟈Gm^Y#Ɇئ*O aȆI#dH֑`Gž`Z/fyu:40a+$ 8_Kr" @&-)/FeIF=f$iX\2MfN{<˽5bnjD]Kܑ\8Kek[Pz!Hf] lNa?NsOFnIЀ*+zk/7n%2q镣Mϕ,7c@PրWjCkov۔7g2"PLWp@SBvW5< =3=Ȯp9RJh5#-2Oy, h-05NH$#z}>x=ft u!U<5QWK I %J)f^swԁkmqHݔ`r;V|9x!zu7<憴fCiQj +e| ܷUgt?5٣vꇈ)zP) #&&`ghS<qsji.4{5?SMA o'Cq1ځ2 $#sڢYE@3/@@̈́L&\ƨ1]KM 2@z>HX3ߒ]c4W%*_ dy V9 K*DF ZUw*Osʔ%(L#!vj]0 >s_'M(̪+/o9|Ӕh=#Ү6mh~AjsP3/mȍbe-ks2/0/smm8F+f@|QjYf!0kimW-X BR7,Pg(7W۩x=B{tkX;˨Pv,`*toԝ$`)Q2[iR@JVcnID8˸e)H* 3,r"g!X:띎yt2!])ͮ?5CY}[6Z.K'jS1_~ Yx\ll ZH$[SP"q߰pJe=@'N腦OB~c;AiPѵ; /3d Xy I$.^Wķ ARqv/[چ4c\[vGq+ e+N*lMy2 ?J7 2ÃYg؝L@=K;BY](~ÿ gx-Q0PPZ!7jCsAA^r__RO6J-.ѾN (i+{i(3Gp\9jTBC7e«{|q ΛVZ3pf0o <>ux4Dor:JJ^ʫdQ(N5=haחg"(E9^*W yLPya83FWَ!'ŏ0[X~^W9lݘX*3AEEѺ;3(ԫjA}픝2lڡc'h~sQ[8dDr3HޒkOl`AG.8#v IJm{i1Y^;}L$ZQ fR,ǩ'(nb2HoD8/ |J)0ANWA lK /Ue4 / ͤ5wrlJKvgvzm^/XkD ;#qZT"';pc۫Er;3:bd?2oHRQp!SL[U$bč`$hM7;v8Ưn~V#4CLYB@JK'6'HWLVI(yxYBѡkza::; 9ܐA-Y'fxڇ7{4q,b0Ӭ0O$<7;|= *x5,|ym8v ;~220VYdb"B:/#LIzaxkKn+,yIpßhrn{BF;><׉ٟtuD T!/Yz.PvF2+$nB\KNb@ żɕlks=XTg6]n$LRT0 d1=q&Q!; Ak/{5BkBz** GKW'~+L=!)O̿u( GMi0;<<[7x,u,OyY;(L| /f`?un1vy*+WQq|ؔ=HӗP0GAO*v(o/ס\41ڇcvQ|9~6%7X 16% dRY/ew8zT60 W<ciɤ3jy_ߟ=I-t_{ɱ"[k/o8Fux(uZq[a6\"#t.m#HVæ|z޿+%nLQm7׮t]QTn8%=AHr$2G 9O2hP*w|je.'Iʎ::aK0n YKMk 1VxYW*Q ;1&M  ALz?La(+^XA@'9_x-b35kjAQ4"Ykm 186-uiT g ,b> 66{RL%6&4W<|$fHL!xdz>.ǜѡ@ h`! t9Њ,A:+Jγ&S qmcBNJCddm4}utuo.Ѳ*#Ҳ/lNhBszGx Z#ƂX1fcDEOB6i=@[S)t\A4w5:(U+ŭe ]0(6No\)ueˡf68:6,o7bA89:C8#sG-B02A KSJM@sNr[4Pqyr#r)(#e &|IH|9_|[?@"8Am}Фy)k+HǤi$#'Ao KR;j3is1vKbB"2+)PQTYܹZ\`8)apAtJ>{כ*ARO,~({hWzj+65;S. %Ǽ=9Z-iCƴ:?wG68N'O$!^`Jz2Tf@-u&+lD8cLhR7MamBB?.롇MSAcLwXDg+ԍoXIumdt<[Ӂuac4 &^s$CRA~`%ݠ:(,[Өv+R?r}͞Г~7QQM}ϜN610Y9$xbX(Mx,?^sw4ESwbGTE8rtE+ӓn8|Gv[TtzcDVo~`d]'4p3*^-/(B@w_%~Շ٬BUq5]GU7x)]-E[KwļSÅ57q%Bzە?DYQo e3 W3cGr'JSx5*KҦ;ah x 6@$i6թ=*B*# M>,a nQ.wZZn,|l7?sV^/چ^0s©}S RKNB'&>gD~ZL~ć>Sl3Kgq6"?_{{euPiOvT7lB26~WV+i漠):&3'JɷD4_K. (bAv/2]baQo% [Y@?״ҩgzZhgUu)޼:mYPU\̤ bU 06d:N 8nI5\G/eT$6vw\ГtM6`ZZHkt==?B3S}/EPxq/S-AꑭI\3jHYR@$?_< RRPrpʷ8}sfGtr>ЦZ#WZki\{Tep-`U.v0yºODH9 Hsvs&ts9K8+0B0%<=yJSw)aFU"by\/CdݷH"v>cC.jwS,"}/ԟչ2Z;ԝySVB.ڀlX% --R=SI4*ܐ`ˌ E~xox=k z' VҔɹ E"Kv,i`OҴЬݞI@zF$MH63fݬx,fW??j+B{TG'Pq;&'K"M~=R $O}!%a4mnﻨI܊9}!97JG}AŽtAi_MM;jiX'ݗ 0 #:nwcYm "pOx.|^@$CB)#=yxHFnF2t+oʽ4ha _d R7dLA-VՅ u;FˇNЅj)ظ֕NK } !cg(wЍF0>g|E>ŒWgl;PH~=y۷Wߩ%c|/wJ' !fU#yw` y}E3 Z U>׎TGfK6ӿ.bBuNZb#*J03HZo\03HdrzTZ ( ʘ\W̟c %0/=)x7>yҦ *&7h\6Zx%&D. oH)؏$/+7Fh:xЋ¦ %\z{//?4`_BC.IKRzMCb]S ZM6Z#Ly}\V;_-NTI˧pl-Hw}SY"qu,{'2e݃ߦƏCs ZQR=%myf'j%s<ܗ˖fα]Cc$Ge|ytҌD ңxZH l@]UCDrJ`/)Ur ux8Õ$% s!i, 6'QW$#NiUb"?H߫+l\ЊP3WLK$꽋xhp)8^@Ыi%fd駱'q)˜2B!wz5`Ct,UO)GKvA\F 3)T'{O[`Rx.=?p-g6KkV:Ju\c,cOZtLu. O醍ͪ[#mel+iV@L3t\>Þcp9n~O T1^`Ԅ 9!c Eݍcc =Cй5=M> [)wJe S䔂EX:a8R5D ?N m=Ӂ"#EY2lwE >'JYUDndΙxWM~ }! #jGm v zR o>PlLq ltJOLPc3ܡթtjH C(VJ<*1=Na oe#b1O 4=A.%c}(K`ˇGUnzN?@QKC ߕroRt2(jW,JIS;!aA=%l,sĺWRO򝐎T T‰eACTW{, a3ڊWP-,pR2[DޢbVA:s\K Vh1y(9ml (S'& @!A= H&P7@dYZ/}Todu &n4NLrŲ;q o(5hhߡ.ZO]+/H? __`6DbZ|y/@nj("sF4&>;b/ax=޾š*e*$R8>L쯡IrZ@̆$1 gUEdSO:/#UXLou=8"(K#!e#!9䤚oHC$!Ah6K) /0"t)75vƞ܄jd/Z|ᗁGB ٷrtgk ^[Sk>1{)tEx3fmm~bS Vh_Y/N$'JŚƾ5gيٙկc>@v_g]i& ~!LF .qDi=}~fTq19^®@EvV8պDmH;)+D^֒V!u٩ü#hLBqߧ5S)Tl ,БQ&A(G;,ʠc@%rr96mpOmm7=9L!8 @L&> r9!_403QpЏ]:R@ )!]a#WƁ3X~K+ ߼. ԾغyQ0/S]t\KWK(CڼW+ڰ9^z(Y2r08S'e>et:)5KT~S\BB]5S Sߢ Nh|42k$T_Ҡ Jqtw;9hJD9߀k?r3w:{ vebqpQx\JQa9{r!n J8ZR19f4|Yڕ&DxqݯqfJA t^xª|k$,tU7M32}^9/+h]X->h PF@Ev^'B=tCZ(cYF: gF~9gU Ge#iYvu!ɶOm\t:Y#1j V+SK1xnݻu}P~,wK}%pP%vMx/G3)P* M̀|kG0FYRܘy΋ТY+Zr$Y2">Z/*!pW>j,s/ ̣H㮑3lrxK̺|nRiRW.E  S0{Z-kκ6S1LHrS=R5_/\Ta86C C 'yރ nxhLD~dr -/h?9Y̿8\S'IGr\"ٙyr£ ;?xeC֫ߚ8}6n7֊xVq@[W5xcTeirQ%e!>0W~^ZZ!/.?+BYŸYD60֠F@{÷iϹv9rctPkj8jO[(+,(Dͭa U ,A}}9{=Ggg\)\ QyvZ`/x;.K"s]s(ȉC'Ƅ8e=e\"ąGj7DpZs75e^ixF]"Kfytԅ"e9ps{ϊI8x~Q`WUA"wcAH\]d?;܆IV߾[ϙ@ UGBxHRu̶ x+3U{y|ZCU'w$9LΫ"\睩?eR䢺#BL_OiEawtA>])@'=WdCB %v+z*goZ,&t2h7uWNeY>SPe:jݜtocѿ,BkhD{K1vķMJ8*žRm2J?chb֠'_U+H?OjQzV ȅ8Q%;b? 2gXO"Ty^ yMFN6|7Ƈ㺏iEDq≱]!疁/Sdw| SA *? xVCݵC5!w [PkfҿƟbF(h:6}rBf3 emiNP,ckX.<%|\-ػ91sÉ@*[GFe)1S#ʾS ;x1xie8;|=c0 +AxE̘ ;T 91'S}IV'y5%FFsp* ?*ȟQ]ygqkѥhCA#[ŐD=0@~G9/â2x4S}?~%Mv+TY}G8:m"IT/n)0C#Tσ )Ă#*z/Qac*mL|0)_1ܾ`B Y" '^l_AhPB=Ѿ^%A&+qxnQ \C3{VeCw2PTQ(~º̇AG`$ BM.%5&^|ŝ rzUS4+~dj6•O] U۾-!oO4FL*V>Q1)zHuq7 E/s٬׈9|<;0G PiA87D{Ǩԛ2@w7tlw}J ;fMLbq-8F :/eWvY: )yo ۯ.,-<4uD oR'i^KWHӖ7MmVGXzwDLl JVpa'~7tQom3t&</̶}o 7xMpOEN6~NtyFy*]F߷M N"Nc.9knrզ[,?ԉx&۟ x'~}~wRS3Z 체Wuiaq;hmHObAL7_E g,𸤏ZK{rw .Vߏ!HGF;y &< U֯j_ Q}F뛏1R[(q^W2,(؂[1eu;|l Q~ 㮖2 :\Ql *;H0iI"lj1.ݡɂiHrWE)qGm ּvE/'AH=Ig2=$w$Ԁ6Is7=` ؊+^ƓO6=;9i ʽe %>YDJP=b:g'FU+jτ+h籓?a'Z9(U xp "SW pNlsxU8?,n%)\XlJYy,D/mct%>,-eҸ&Ss*/k;񶫳^=/f52C2vk 1S"; I|{vV;j6|9np%@_]a%ԁoPN ty[-Ƅ6z&yo0|w@ .uZ tSchDID6S3\7p\J*y?h~n |W~VŞqsm&Dhΐd2 YjD $;?F82mclb& \Too(5z PX |Ko|f{a .g|wϓka~]Kc1XeB3+~~Yj0n5ɪg5.s̑D ^xC?;CtCȼ*P:^Um򌢋6 Rid?.õyyX(M!͐nKblI\Y`RߊÌثrFykޯnm5_JNv_i["M +lx6k z?|5ev C{0Srփ2%Uv'C^X>Ped{UĬb4ʼ!- Xnrd~/(ުaE.fV$f ǍhzQ->ZT`6ح; bW:Zy^O*or䟤)gc@wѻGuu5u+b^Ŀ_t2mL>;GSVN fhj9dXjK4LAFA;47:(F)~?PoT?ǘRCN;x/Kٮ3Fxm=F9]4zRB="-֛:0Dg@0FeKZ$Z׌Hiiг A14DqF@/Yt 9>]1w\# HPH3=Ywiш)@In& vPK2?i>ɤ}2gov_T8GFeEYqAaIV@r\œ8vXn/,fKZiRDm0[Z2ҁAaB^#2 ˆF "/(9ZnZNVg|Rc{͡=(Yε.ґcVmd^* t1:lj l_!K7E&'t/p )A"cAIawpcsA0(1Cǀp2$r q"|N2<<ܤο|*ǂ>CiP pՑe$CZ"BґXcQ$]b2o]t?'TX=~뉎~]_Wi۰hHLqm!(qW0K0ڴj˛V=NiN npmmj52d9PK oY -,6K{zlnš; gho@Җ:F,k~[ocS8B,}:U>@H$ZP47Qv<@Ca[駣X^ MkCѥKENӚNK4T6lbYB])PG!+dK%+\Q=vEЀiP(hfA`mKW0^}I9zy[ul~XJ iK(+_KEl[$`ރ|ɦq*=Fˆ*{.ȗoL~ڢ^ftv_E>G׼:tBc8 %ܥ:xOGCX| K&XQ S6ӳŵɴ]g'uXV=y$1hZ?v0CX4Ť/&Wt&nHIxI9s~,;+cY ]dC >HTS;S64[~w[^ ƁFS­'jcw#W]uO鰵ka=Z8 ao|N&ݾ{~9G&%vucZ<[~?=od"Dڀ O93i e>jHQ`ZsxXuUkՓ0XρfcM^nCG7"Z#! /2md}v\N/p顜LǡFHi` ^gy($e95%M~[ɟ@Ɗ/ zW7hngeKps5 *gu@H?NyΜַ(7B98۷F̞]V';+x}ޣ[ꢊ;LVt5rP NpO0GJ3;sg-SvP1,_s"k^Ʃ+]xr|f0A4uۛ964ÈGבQz\Ew˫lY5[^&$m:BTN,=^~-'^΀H,.]W!@; .,͊TǏވ|̩jA+#lQrOcӀvߌ̘J쑶 !H 78%ڢxԓ"(W|!~w8}!m[2`Urnt ۶瘾 l;B[4 h8=Q _^to$>X} ҋ 4gs\d-&![}9bۧe@|Ȅ`p!DKK{_rh !>o&umh]yQl h<;[tԇ擄%IG-ɶi$u 4O113O6α޺ӝY v!9ĕQC&etǭDo;s J5\3 #.Azs]7)@!#YS*ؼ*1/Y˳{,Dg괋vS  Lvbē(b^kA=XWb+YV\P\ȓTs@A^+]:bH{[E-Icv㦝~ Ϲ$iʹx[y<8pA! Dڻ|_K]tWZQP>B;žFt\6ȕ;Z,!. v]NīhL2WJNr#&;enlJİr&}^21m,ۀgGg%eFfi5V2x|9M*TP}cnc<}ǗS1W96w bZ?^h(({-LqS{IBEF\n:$՚Π/ 7i]0N $Cle Zp.zP}.O!^|zˉj.u%.Pn>ظa?ϳw%qATZ} jj&칕E!ڼ d4luoQŸ)BdZrXB jmj3V7zx (!r-depB&\{=C 5R e#2_lg~aҘ joOOG;^/bw8,x~KR7/Ǩf؈= jغ@ =5iߜbƺ~H,jZpU^/&Wfa˓) sp; V8rV}KQ'"_5kF C pN[(^? &/arnOuBZ,=,1S}AC5 5w:.a]8 7ī=@6loj4x`QrJ4\]xT*DkVǶyV-(4TcYPUbJoX+w DžWDlӚMLIu}^MeՑ -ev(A'Z'l"V?-aS}DUSJR +7YA-}֊sFvXjbMT<0U!Kw`P2d[T&4> 8 ^È' eŖm6EHX""uK#MVH$n <-: (bK(܍`b@c|H7&n9M;Y/}#B0>v| nP <kc3oNc<5S=o<(BwLhf]0D]^%h",زwY_PZ.:ھħe`(CbٳJ;5$欛3n,J\wV> N,4|)nЂȃ/hѫR`aȑ<FL܊g Dʂ`3/Bpkjx[>y7XeM4=7&{)wװ"kQlExgyɔSzV;ukޟMVH ~Xj[;K)vC(R;LNIRntT׌Y3-X6ķ1Z'?q{p=%0ˡ. MȖDns[$G!״g5J@v䨍$-veMBp_j4z!tLK+L *R%em%I՞n luHbayt I ^ӔA v"Vca'sw2l#jwBx~t _dctJ(jBCצȼi߯tp0KsˏvTd~pYҙ0{M1"*Dx,0˴l!dMH_ i?vf +.lCٱ+]L \ZM>B;.E~ZyˈCNX[=##{UeYb9/bp <94`~QY aG6sL>|_4q']z^j%jFNsAѯM_' r1ԏX@sP"4\@_{_XN}0w@wN $&m󟵌 IFxF%%{b? kVW>7 NBo{};/vj, ^@Ւ~S $^X(s@U+;8f61MznL^urk q2N7J|SI2\|Zs#ùƐ}l;Z"2К߭2 ԵC GX(W=d7KHWf l! g(/Υ!&ux iRXW.Of&-ƙNf<)هY5 ԋvzg@a{o/oIl_Ω[1;Ne"Ǣ{|e,.g.u;}m;HWbb e&,ͮÄ<qa4)ؕ_=iF/ t13hIxb'5 Vƫ8OC *(> PRQGS /E!Pr;ăggػޚ+-+`7Yx4L>⢖E橄mtG#)Jב;q{mq$Dׇjj 1L ${0eLOL_yVMݭFEކdog>*I^Vāv;+xuIVRDZp[c2%v*4#)`&=s^X Xr2{)QFvtY%maFKs/( {,O.(7W3Q's1M8ApJʔ u%vlSL  &-Em׷ WpoT.f|ރ(MݖmjG ΐofڢHn͙C' G~LWɺ]ak!mjNu2;PQK!Q5;RkcJT+z1v5M,;]YlT[+"VmjHRglGh/0̀_ To8{$[Cbyom vtF'0X И[ /N]}4ln̲ chXD@ \5AwHhCbbU׹%(\ȚG {lxǷ>ԕf&z< 7+?J 1 u*J+(,-?g|.%IďrҘݟ궵"\nđd5hgh%թ5 B}//htWh͑t}2\pyQQwψWΆDFŖyK6qw RcV~S-ѹL" )lf[ʪ \ a]cjRp/ u6-ƥ*E: :;ȇ[7f `)̨:lkQe3.8tgxoƶұnT i\7X br] /Y5cM:quA$˝4W}PB7^RL?<mu}C=wk& MiTC D?[F~y*˟)K`\ߣh"ŵZiϼ Zp'cR$ăg^$^: XfD裥҇>c$[ {w2EEB98S2 Y_dXf1\:ՄeWXۺCPD+mIAݸy;BJ7V,'EQeq LAfEyD~Cr3~[nP֛ٖntި^Xs;+hnܴ2ɂ.ƥn.5q3?F,]|W<ƿ4ߦ(עl$QIT9LBU(l?2d(gvM\  [xOquhHoWSXj"+)4{uA`uK//\*#ȬEpCJ1?J#[w.9dK{`vdH=ETʆ5 ۶PlYvUT׮-S$ 0.pZ]4j'ºz`ŎEÄ>/ld `C`Go!4:ŕ DY 2p/Kd`mZ{jÊ'&vn|yx:BsU9{yet#!F'ԇps:5-b@e-<7d[UT{&x9q?Y$O#j9sG8$V5W(Q*ZF1W~&lʝR:y[V/y jOT^gR߻摓|D Zhfcz,`W +CO(ƒEġ6>;TY@Q!X9Hq6)6a"!XSb^ֽ]Q-ҿX=zWNҙ\L|Qo*%տWhWCOUJѵ1H[rZ4\eLa8^?T/ׄ@G{ ;J{|*t$i Ku,:%Q966t߬с `{/IK%1,lRpџ1) Xy2ҤxA3W>vxA)zibIG)FBYQD02B@AF̢pxb7AF6zuNӑoo%kDR]0J-fqSž6i8#͢ffrR ]Z ȸ[2z/(; WjC"p;RN#9'IH ~IE1dH:`?Ƞe}Kq|41Z|Éub:y?&cVt+JKB7Ֆv}!`s_(a'E>c3 v.Y+ ({gYoFY0W[~G lHӓy\"7.MPk)1|߿(UiVU(tFU ?(2pF 9 U lƼԉA5r ڢge!6V|fX y34`-ߔ8x/2V);W/U?x `*\e\(!q^ }72,ȓ*L8&j gr,NMRhoIm)sg?tQ9VT:ÀdNդZvN^EpmvU xd-TJٴw?8 p%(u r͋aQR@DRU|:HVI)x[[ φz2:f; 3jIDK)>$kZ[h">j{ZE'qZC"'˸e֚l(Wrw~#;=Ww&\_,>"[[6)qjj+C?ž#`O G=>Bg?>\[aai!Pמt$J+Q](oݓQG0LcxPW<#Cxʵ`y] MeU㩀O`QϺv- f*Sex"S j%QODI%k;z+K3_[zgLqB2$.pZxtj=:nRPN+CE%S\yq<MkWӹ}ڌvgv\OŃܱOį}#3BFQ1BUl796Wh qZç&i;7.U7Rok.j\ݵ@(Vʡ"ʰqğ}uId<ڟ1O!n6B%Q*Ӱ%0 G8@pXf9rWΥ^eav\n#Xƃ[kio`՗voL[`'Ѕ@UPTv 0׽h&wZ-z@нV ExuaKk% ZXY">4Jϑ< D!FIc8lL'\76E"Jb' r*#]P-ӘJSwkgl+(@Ih ߦV`S>1O!`[JnG'Nw#ayxN+j;V*_ uI)~mG_5?-u>mG Zڏ_ яs 0쇷~Ř>i: ֬BC%o~p.cq_ѡǩg~4^>OM(6).ͦ2k%f^-fQ<]|` İd_Y4lo0pw憩!适Ȇ<~[)t+vtvC7*5 _d`Ĉ k4Jm1%bPQ[uHyX7PSDOv>" "P"@\}XHF(/ٟn0ݘzad~'ۥ&L3Dn֑C?ywPC\)v|.7-Ʊ9ӯLP^BbpЍ }ڭ 61ibB-z٬۷w04ph`8J(4<62 i ڸYb =m 2 o08_|_S\O u8sz% XCtFv7rMP9-L5zbFQ>| QzO )#3uu$Ѷ-llrW=LQ4|lͣF+ Z^` |O *= ګ ?^S^PyOtG\WtBv1$waMa!.ɒtp!:ÿa7xkӬv3w}5R JP#gF蹧n2ƚx0)6zɸj#Wurz,,C }1@ЂM9t+;1e[lEwδ"nLcWċM'" 5fŘv) n7# Ʀ()ՠJ=&\m 3@x28'2b >hUGߒ\86j1z6#PŸWQSmL`F|g+NJ_肒0H/4OF8fÓ`nD J jN$LGm߰9.ǷdCV $~8`?C})4jeۃJI;sʒKScճN?]oA* 9L+6I6Il?ͱoYoB2x181rQqw~ om^~Z4]{^BF2^X t3hpmyRk VX3-H,E>3ft~J 5Q7{?zy^P z귦jT*M!}Q$ajˀ*O26󋲿aYB.(vyה['ϲ&k:qW+Y#RF祘5d~tg!jݙA!U-t'ljRnMsTD?;߅nF/}=TU,aRJ7)yK* ?Sm}9O):ƀxBHȨ񣫚+. dDoR%FCq0_+5P}02WZ2.TGo !eB/wH߰ OSsSwqA>|_6Kf¯2R(ofcNÄ#6QxC "~&dήWOL Oz~n-qr_=pԾhR>,P'A&CJJ}ؐX7O%Nj~ d/&r0Fza؊H(,aŨPbY2 flf٨9OYD1wc ̡NNbL(:U҉\ɤ:=gox,dsM%IB7`UBŢ9˴]w #0]M+۷>(yK5R|hƨ#߷=M`g/?)kZjqtsup/{c.$E/ ݜ+5րX8MjA%JHlqtKkQ4ʼj#eBlu'=粁[Ӻ$ዤ ^rN0-TuJB *t<c yEa_?GAlo۪9o9}PۨtQjVLv<43 I;e*اX8L!aa䬰~rk;/xgm"2pE:s^DBiL+ EG<Rips[rCϩ0(68-^1Ucط %eR) a T_M:rNs^%zE.递tkR.VR889q&~\]dC(dG oS㼫a|h_ϾץKxOq]],n]E+7+(i)7skz6b$f6POs艷RKF]Ii3R&sc28 P0u8-hvw6"9wtAZ.'-gwUx! GPhPwkVȹ @jwaX~'RHUr2%Ψi AeL Ya ͹X/4*5IMu5zLHb Έ=, ݜ{JetxtNzDXO$Yh~"XL+aZ 7xE([8騾_ycozc٠Z$ '`HlͲ?k[|w9A^ҧqR8r t}M׮^ WJ ڮl #oOTz yIK~bIKW-6uG#}U|_[]*W8j)AuZ~w?aP.TOF?KUܗP&{ H3}(8IH"*gxΒD\fo{Ygڵ|2#ܡS#I/d\YES'9o.Ŋ΁`ťMy5 '[!] EtNbS Z%Ԉ _r.&PWB񘦺_n~G3]tdsfb҂Cݗ X`3n5杫+gm۸M[>˙h~OXNb2ieÛ=*BAmۚ&e'rk& L)1rwj{'†vSȫ)BX76Rx0.< -Хla ̆muOQq{puS 2ːz%YFLZ֗8Hԏc9),3t^7_Svt2ǻ[,p]83ChyׂN #K"Nԝ0$Gդ6(; ^B dř.Xbl]Фjy}:_ȏ*W4 tQ~N)%8m㓟>.κ.Y\]."6~ÜQEN#iP\|Zzco[zLS1u̧)mW[q= ZQb!fO.ifUl&Dl" H)R 7+T׽"}s:&G@R1 uM#~>Pq|"W?$WĄ!CC8h|Ks [H?n.")  @npRގhNB3Mb9EUIHI.f{vG~ Œң0H@o*DMج!#ir 5%,3o$WN|߬Ԙф5؍:HI*+*ʋ3㆘L9-[8:ǃ[&Ul?#WԺHAov"P V\or~j~~92{:$Uej=!6d"z ؛͑tg#W2+ǗHSr(7mu!vPS:3"n!uw4VI?#JCiXIEףpHࡤ]m Ӹ#+ך@`5 HXʳȉИ˅)we4\mOA0H `z8066\E:') 3EGB8~q3wy CB*Ha(z,͑0q@}6`t=k+%>FڈQG |4jB4) Ad^ډQ RJ1Gxo2-ЅKx?Ksx}o6ˉ2bU%a 2)J,K~eQ %uQy} RcßNӷy2uGQL!?6: ⡂nA((Ji'#IS!/ C;HuiF7ov[F<8Wv^ x:t|)6.?nzCF204 t:ظҕ =E`v<XOsii{sf6 7 Olb\X/T]V'dM9Ll$/d<> 4М=P1 qoU_5m,Js>*G],wJ'8 D)[*Am3. R*sӔj ܧK;G7j<Ot.Eҭ2n-ETvi >ɦNm(w liҬћ;J /pt>{y,VǍ>{n>g#y [? d| ƶ6!}k(vEWwo]CVĈ_<11Ø{]S5]_5;@xPLޏe_1Ps >x=OϮ*<8ޤB&9ޕIEsզִ$tÉxu YxyX˽(鲵)>*Vԕd2xh hX<9+f`}O0dlAM$4sB p\T~IĶ9%6-dAWG-k`mV1 <0 \CIO> .ќSgg۫n]*-Yf8֦ "*a= Q=(p˫I!i'T\N.swO<Nu0 V|}DF߉ΐ \5K3 XQ5:)>aj^DBr~V)_)L' 1{h׹,O+oz/=;_ ;QDž_D"֬~~f)ȟbN'n"̣{;(USE9A IVGPnV֓ W"8Nʘp#E%@a¸T;rrͼ\Ԩ4 Zi$avOZEGZN(<|Hq„i+T\be<DVp5L6K?*Eb"P)=ߨVLRG=g^WL ˽aɅZG~ ì&JEe#>TæarRb)NaJ O]ԏ[HtFtO֊if>LWiG3{2tt@&nOtpqS2(9b9GOR :Ɔ˟Z:LZ$Apw"VK53Zb x!=*{\Ƣ3u"jLvD[<105ҟMZ$pUv߾>., \(1XЧ8u^*Cdܡ4<%(3sLRlHG"ј0b~ם$x̱4 ft͖jP *vg[.^LaEo&-{^?k"H QJ2;дٻa C_>8T_!;˟F7}=Pyit.r'lLA*g5%,o?]jCLWqO11.pF}è}SaɌB_z(J8!yN47 UXgy Pu)~ri^ŠE gή$ B2Y( [6L6(sk^7wdOzMΥt-_ ~1N+SjRֿ/aee vNk[^tpToc{`'Ý!@2XCm .9mF}Bl(xl is{E,inM]ǢDZMEw@_Z5tn{,#a2+̦(pigռ:@߽ lrWĬAz1y[ZL'Jn$D.??"@ahfSN.]Tt#8T߯**3'H4WB|~|c" P_MĻDJo*M8d^ v1*/4[#;#L|piE[yl۷.wV WPHH:oVOҥ~ѿheAqJG4OdL-hlVq{mpJӣ0Lq_.;_,<4lvA2ɩbk3,86cuG+m3a,'qlZM2ͥEcR6O~qᤊ٦D"oc1f>g<4MB=7rDifex@0{%@$6=Ž"g9lT}~9 a){eq  n̼B‘B*X ́>Bs{h>PƹH=_)+ tsb׹Qu،'oS2w"g&i2%0jfXRJanO/0dUͷYC&"uLj;'$َn`lrrLb([ +azٲ >D,¬|a yjbnobw+;We.jp|w}۶$1_8s9D|`l[jf.$߶d# ߹E,bB-be:|ָ-lJ^[ Rӻb-fČ۲jTj7aCynLKW=ΞJ \z&6uA,뉑lψ$t`NM4?۫7JyߕyVEU)RSW?kyFh-‚ɘ6!+A"| %u/E.xO31$bN%6{zUf(?U4+ʦUt6 HV UP1jоsi)|7Ր- 8[ 6zg- u3E4-x!dmyBƐ[tdmЏ{DWƗ0T,=L-MƑ饀BuM]n⩾b%䗨շllx);籹64F>eFFlV@I8 T-i6Q}oBI ¾kASV>R rT4&I&13w|8+2x4S\@d"v@wqGAKgfy~LqAw #(kOJCz:3 aq>tKdjx^A2cѿkG Y;,PnlOm=5(F=I~47o/,;:\AѠyL,JBp̽{ƂqGԁrr]zL`3LmWx@ZZPs\ J>a=΅,#_"n ʻ"p 8`5(6 J\K)HLP+ hб캟k7n,.ֱ L䌼FתFPԙ͉u)'džtkCzDwơ@yo 7Sk!acA"6ǗOol>'}7#cufVsX[7!쉏/a\`(<&5 V>RK?e˳2j0N2#s6` )K`8d)]C\\!/ז sټaU3W cdGJT7kp-G^CK'޷lT3|dA~ahrn<UZ?g NkQQ21,<#305?ww /p|D?u$ Hgz.ʹ]F yC=s{ÇH(u#޷eAfЉIJ&=-śf p + 'IUeݽhAfEnZ^GIvĂnCV 7E=%R^OkKCLhÝ7|Bv%Zhө]>8!_.α3U)Ҁf=U::үфo:I3K~yR* J45?A~v9dUXEO&$%$٦{ 䂇cÖ[wHc˯pyqvtAYDE!{[e"/F5b~^*+vڸ0 ؔ3Ema(FU]ǟRp 0Emuc\Cq~cnX {.|f{aݜe`<_HXDH̶|[? x[8FLK~KQX["Yb5w%bl$lXVc<m߸G'I 4G`|``}S-q0ndۯ7Q{)Ղ#Ge(ۦU֭Jgھq SyTb]o ,?{V暋탲:_4оf Ib_k]ƍΉ3YGs)>rќB(0)B nl,b&U*߃J4?L3Vio{̽|NNT rؑQwA?pp16-Vx|MY!ꊔ lV1/c0Ij]Zв ĂGaRբ$,jbto'ge[E.8kU+> L L߆Y6pEgE lXY>()k[U#fjf1(Iʭ+pcOOk]]cq`K8˛,T;-ha h#PQxqyZ>pՔBI6LsɨRʼn5Zҫʝh%ֻn1ps ':E4?À nKFxsјQƑD-**vިCQ1 #ǾJ3Aku 6I':eoc1CZ-8<.GE-q]J `t*c4ׄA}<;4m´ݹ]-{8z5Qa~X(p,kzKuKw(}4X %q.DR_ ug+yG1 /h!|ZmM!ûo,B&MĐ#nD*2"geySgI0uk~u$)ZP}#\Yh~h$>yAOڕ݂f6ܪ8xGxD/.-J~-\K'J-PbHjP`_ P"))=n0ˠBf['keiF8ō*n 7|=+Dm{sCJlW-X}ɤ) LZzEϪ%tX-%,0h.a7'U~ !ۧq@έhd+ZntӼmd|du=Ɇ6ϸJmPF[asfquuy(fϷ x K+E5ˤxwqYTNRF_.A&$-JػE55Fū|ASk.XHtC`!=(kɊǹY e Q|7(Yf:9j7ʬ1^Jj&S~aB{y)H{1Y6.uCXg̫b 94'b/C;. Z[ Y$zek6ٝmVFWOqX{Ÿ4pG c" OǶyu+%#s+wW_lgXሪ E b.5_/|A}g٦syFLc?Zl8_хt'|&ߵC+*|o?E3;,9\XY9Ov1Rv'LM8jE6J-&XۜRcMvyy\}`[eѱɩދ`{NNYۜbZqC!'34mXwAOBX|AiyX7XXܐi0siCu,~@'چJ@隧ԗSmBsX:ra.Fab7Y `FK;+lw3.5Y]NŨr- U8,|LXG^Vnä^Y>[z = Lnr07tc--x\NJ\=`_ftLSOxVtI=P} <R2~R #yoXxL uj[]г<"m6WcK y &4+<Hv#QkߍwmiҦqxfR/5خOÔ\-3 }Pknji{ -,H[vg{+Jf u#W*@p7,tEcUY`cΝ1c$hPby@nÒi!+P1@?MGYX]T|M`\:mLh (&33Z(MC;<]4PRyH5͕nװ1TQ [:2G{|Sc\LHM|D|\L2V+4˓1h)$|8Uc:gY$lᇺs9͂*zz\!_ }rmn?@'¬]a Ų(&sUݽ)(*_ho;(ɛU}S471d8# c7aD7,IL'U.n y cDhAX Q  %E~sa0\XC\lH?[:pE T)\[DǴC4[kQ1 tNbCuu1f #Rj9^>SLU/!捏g(-m7O V cM/(7y$\t)uĪwKKRse E/W 7/T> >my u38s+mm]$wvէ3nMݥ!:t}rp2›o}}g'68Iq";{̝949f*٘ 29c]"2oq}6[]>Jo%U?*y/EÐC:$j+SwڛODN2OkiFC`2 ;oBr` !ozSWGbW`=XxӊNy8lE׾hO HmD>ܣ:[\BI|Wuk"ާ82\xLAuXKc( q .ƫo5*6IVCyn&p+x; ֞a֦] r)d>B:(0FT?Ժw]yJ}.MD=%4W'96enH7$.ׂP'Yt^mzl&|m˲s[{O_tU"ə{v8-50X;MWic:1'W/!RMUGA 2ۧ-DIlө'FI#q Zn,hIhɟvbm wj!fowOKhXMk#ӞV4 hDpNI.ׄb[:jS(ʉBk}ga^Q "IuC;Ժ)aGn0?ƞm6Oh3 a*'s}rq4^U0XOupЩ,9pJ{&%>fqz's"YE)_ 112sNNީME\ZV'<_N ][-'&$.H ytxr5s| mu`!tk5ܧ̑>Ro:4dqq%S!`(swp +fAi.Zn`O˦ËGg#AcV wye#z:NuD?2ɪƲ8/J_$e_[4uc-*5I?2/֙?V\c"p=!BKBtS>.PIͯ!dNxA צR6o9HfZEl>q+_/y,g9|&E:$8Nڤ hNQ-a 2$]ûV3 (p`NzD bj,Ll8О#=HJK1 0G'7 >e|1"﨎˅ao#@j:uID-r+STn7Ϩ{nV"ՙ3{Cbfц{w L\`4Kz5s\$uM%kݎr5k:I35ŋptZ NzS@j4AّHKy|ôTXlF"^l=x37\É-3xEd\gTC^@3'Xe0xPm&zӄ5nTOT<jBS|W; t$'DsqHքOB6d v=*^fk92PH%( 6zF4Jy{ʽsٳkb@g70Q5JH>Af5e}1b?يV6M"@Ž]1a65?룋P khU~~m(( tLbn1LqA2" Ρ%P!(>f3_s>ƶn:{x|ˤb6|N}PyR7%zsW Lt!-Rߤ qbH-hE0' ?x޽U` ţY4s RxÂMJac34 ɸ0Z~h͕ۍ1 n4;YG#tT-V#Fm Ȑ"0iVǠIAoz5)FXP:ljVr%)[9ఠz Н3;RiA~lD䤍.lΦK|5 ϙxLJ-p wn>ؾ`aWjEmBgbo<{cM#棵ҋkS8M>*4 bΚKb8c^k-~4Ғ]+mtυI A!XS/Yp"Gg@ޛw6S^:y[{4k Vl| ْ >DDSE4”XNxh &;Iy LJg}ɲG{& b)tH<j >l!e7'1SR )*kXQm'`h]1 :7# #-(ٛ.4nO#*p@+m5VDz7e$575c-.XX?&@6$셖To/g`y*8 y ꍆ6 lhP}'}" >o-$ӇDdo[z`"ܐfkBYT>˞84n"ڥ*VߏDo2 yhwTΓ'|t̫y%gbGQ=Y[{~}f`R\Z:#1q>#B}(dxgMK~=n$<7ai9GxM2drXul,%dv?Vwpv18, Xu?fZ5IHw.4zkvl`GѠU20+# h8f=rx DbBԘXOGyRB 6z[.yY܇h&yiʮ\oid@ZΞ:yi>dn N #y;M7ZG`;mYXݟ2$__]+>wqh"MYF3b4C] &SEڄ?)nA"s|,UdN+P.%0XaꋝywfjND3N ovi 8ʹoOuXIv V'#w TaP744s&!?ٞWo}jhle= wJs|Ienu8t{c TGS<(̺;bn:(bzӊDz%5V}v_4PJT*_q'<{Ien=AqiD4yP%N׺5P >~EǥHdתL49"2 *E98oo2QlZ޶gY4ID>{GljW|oJf^ni][bag9vMAq) Tɡ;`\F%ʹ`6\m]hr0JH+gyw<5orX 44 9yBA5O][$ϵjG%2_wߗkǀe$Vfp NXj>jS?y!pUM 6HNŒW)]>?dSEZ@0, u"`t/)Oa{U h9){TY pF=R@\E zM2[Eya(0?-(R*rCI=c~v Op~(0|,)1^3`ŵ)W0*ߖ `ժV~}qڃf66g`FWm9v= 7E㍬ 9.%h^ا{0 u+-/x@ *b"VT.҅ zn.-#h#gYct)z-~Mc-*V׀4'!][*Q,ݝ;84͂WF4އN*snTj|mNAP)R8(;ۺrdQS ڽ밖7%+-"K` VPxl] AkGe7mzdUh` <12OxDMJ. mk<Hƹĕқ [ZF$!GdBMV5u$ 䜥NNv(CAEv;3Ê%Z"d%蹐!>^ +E_M`&x#6ug rCcgPӡBJߕ>pr0yDO!XbN(G*=#+)FԀط'1T.Ӄ1ǧڤۂCbȍOźBTW~tLOx~7oO'Ζ7 ~ = uG֍,Kk[pU芌/op{M[x5+*AG{G42;DYynocjTF^L%=U8|U P9Q.\݌Ejw"&_*TכxjyZ[߃J dKŸ#KzG_jd@9:,g\HS+Qmb ݺb;?,G 5^\S0"fܤx=nsQj$a:Եf&W&bdy_+jlwP'd}"щ/<,t[7ue += |a.>*W\,hD$l -'"Uo.jG d=Odퟛ:ɔ;yS)Mcl=E0@ X=L2/#U'n^O)ہ7հ5pd_B%T!uWZ6/Z\R:znEאQ{)&~|7 *b!sCx?MmYT!)Zv8~X׶寧= \Y=ij $Fߟ1ZG A ZL *{0a:.] SFpTt/İ&B̓-?,iOS*Vvd]USIHbHHCAHYܨ,[" ~$ذ 2uCƁJ?'h|6nv%5k8-yVaRVӴG;&ò^vWH/ќp!a zְ5nq@lspE3w!ӐDžM(Dΰ'Q)k Bf E,d>Җ΃M9 5H< 콁OiM/-Ͼ;_%xͱ/D&`i} XJZw|iA%SD< TiP$1rU<~וA6X:zEijl(:iv *وxBR0M,VqT-O.!G"_9I4 >MM)>sȆ8sJg32z,1VIDl;T[IA–:w *!">>:IPwI<.<hqcdmEs/OI Jo7 @ﮡ Fa,"A;X|n^:aYIKUp$s2M&>k EZHoߍRQEݼlx%]=h;quFBf6 @_e|$䝯㕻0Ij.k`.jdGXØ.ؑVdS3wl qRD$T 0ȦPMT9A9ux̟xFvY7Z7p dͰ?D~[k ./_d;fezODG://WaKX3plͻO0%4Ҧ_8UL۰N8Eڊ_*jrӞ7 \JA+ á?xWm<.Macz` Sb"tT̶XC©hWSbXo +YJ}JoY86.Y xj6ˆ ʿ f'ߘS,h&Qd~,8RYLtMbnj ةUu\uN@˜E.jXMC z[z ZHbO݊ N)EԀв~-~bt[&B.tu{2 yd\־BV7}D+bge%E* <)麂dF.4pL? feG#0k /ۋE^?aK<{lm@ځ~ (_ݑVTnu d}h)2@Dd[Hl~zR4>fC,UEY!7A[7;L8e&*7 KݻbZAy2 GcɣV JcV{=KXGuLwzfR~kS6YB%lǬlbْ)fU\ajTs |x3Q^G mpAwɿ7}Pgݏ&=SUbIw^$KT`Kp87I&1YPﲼ4Wy2奥;crDN'"k:<*gxQ^ni 7 wMf.ak~0qǖ) כUhϫ@l͝ lUL!Ix."9-ÓKuE"`Af$a3%Ґ b_;u. T\D{pkT~ð v-ߌ? ><;R ٪-BJ;vcn_&v:c$R.-!K~Rc,=R1H'^ eQz$wcrLhKhk7QحH,j|?jrƂލ O kΈzAZFbv'~tNv7ASn׬9; pᣠ,a|nr&PDIa/kưԓǂ/cx [T;/֠|uo  HWNo? ݞ&{hCJ[ǂ3_ m^%1;@+P%[*HvbJLxEG@ 5ۖv6xeWvFCሆ\<7Q3RMاt2H 0g $.~-3#TZ5*gS%Lϐ?aHɋFd*soCi0w1As$·pۿOqlfBD4DiW<rwrk[ظ}@7BAбPSSKx %ՄcR`(Z!v}Nv@=m-dm'w 8zE{vw9Xұ0/t"@:$\A ~%=<@ou:XBLb~t}_i ':S9ˮ1v T 9 *?+tĖ--Kzib٘'?.$; zH+VO@yɳ lEr~rvybwm9qo/NI3jmPTRRO@]]?[F~2HUˉ+~}f`Egi;Nȼ֩L|W *8YNHa=+uA. љ}(X4& W0%԰&8 WP >OQtȎB ^NS,|_y[dG(dkF #jK-^j&[ge] -]*O eIIAPR( (kINo)IO lνi_K@s:LUmC4%2-Roo`˞(!7T,W2oLK'FkH5"a"L pĕf܂Ej U3/< Fnt|ir7hawg b4QVjv( T× S޺5j#+Ps?g\+ĢI Oe8[{p˫/ ~5]ˡ!N-;vnӗpy!7< wtLO]Yax'2Ń1JvF14ٛb@c%sD(izrL|MGDA)G Ko]uYHf=,FNI i>[wa }C1\cRxOB_|V#;[P{}㣺aF])eH) 7w0#) vjd̝Uc&iu4W 5ruB؀ Nh):]F ZIU~xu >wLFf:bdFHtіcn߆8ag^XMljaHW~r¿#ybTse)KRZ5.-IQmDzMWC"r L"lÕ[)ƲfB@R2[@g9enLk*;[,x:\ĞPj\2ڙ((Ufȡ\șIzMeU?iŊ2[<%2Mok-++jaM,OHH!)!R~y>.= ?T C1 Q3c Dz}m:r͚QR,}"DhSK.)f9?$|S l3t7~&IJ4!SO¡r7} O7z􌜁Na|PPFj'x~UφX]Yi 6\ފ:,~ x |PթߢT8/[~!q@WrYS7*tO~TPI' Z]&ݯmZZYJHnb? C@|l>AXZ" ;9e®19Ϥ]h%s2?'q\˰l|a3d"W6lvwwps}Ѻ(\12ӕ1@%#7|:C2\[{n|Bf&e.<])|4QM7Nנ(@cPTG*WU 4|ɡnHb)pS8fWzƧY逐g]F/#D^ `f[Be'> X@{JB8[Ln3SV;U(m^ k8:ǟ1V[KT\CuYtF9w(x?|']` +0#w>ؙ bXs\8C}y.FӦt}mD|Jkq,upYV'F9}rA#CO+=ǔwZѽA|  vU5iz ʰ6SMPSstŚ 0¼Um^ K+G0:b̪e\̡te@Y}y7ɹFcaʣFe!˒p^Shh\+9 0`Ěw"zT.aTq8EUN'䲺yE),:M(s(*yB@_!ĵ]U8Tr$ߓ( VT<$zd A)%NQvb͜|));guߖ(!.}nm:!cI[%4>KdMR_3&?/p4X!(쭈'# 3YB㚀$ԤF{'Ad5_5Q{GP&v\B|J/g㶣IwLIJ98 ?a9>  ,iA12m~oyez:ց21 3^(D+O\=U;^c}ki(ft㪽 MxLzqtE9}q+7 2>k/ ͍Ykq S0C* UAس.uy;R ^43dϑ͢28ikgc ɪ^c \l {C*~{d!rLk% xE?nkkIk‚l#2{' 'j-L:*EE 3mnJBek 4CBA43H?lv*+H'#>VAoXqhL1>9^7Hu;U I#(A1!J,9mL\1%\#pbq > T 6;EyYnIUVnx(z@l?|!8Ia\OݾlsgGlR9d(_CRTlMbf~d:o*a]߶XD=I@Hnv);tH-" F(bߜ} JMB`Wr#J\-7_D sf&-2h0zIXW4/VwO_uf&J30nZCm7 :\utL&-yuȣd6E fW=_d)!,N%25K 0f6;_1P:^?ԁBWTtp?в1M^͠! gWNjoC3Tlx5z3*@Fb.3u }B̌K'w7~8HWA0$QC90QY&+?IO ]({B<."Ӱ'l piז$]x8Y'{9G1hi| Fc>"ڕ@שn?FkԠ~-UySb$5)E_BV^gw{78 A&oj/i%p&>um~?!<Ŗ`0:H1Je7'5gpR+8xj-Š| t3/v[1y;=b0^9R t>)NqjO2jbe) -+MܷW]/'rb N7:]tx0.O>V+gc>od53U3< 3P.\sSH< |Ғ;~lbD*=!o׏JoQNmQht"^ m}`Ι̭Do[ [kk~O[{8X|b7mY&b\ǎڏ';--ݴӶޚJL >cR(Ζpp4l-̝ZZrBR{@e -dfWI~ "߸7&yj2&LNnmxY0hmd2.u|RE|^'fJjbӂ}2wְvxrJPLlr8s+gw̲H0nErW~Tm_}@kN'bJz%d{n&R,shKE wy.x8l0Qe[i 3D OƬ+O.x]?"\^FI2$)O7KsK^2!Yf$*onǒ%@ _S7Y;|wĢ[Q5ek0I4'* x&:O1g>EU4ƞ S>G 81.<|QŸ6x(oK7m\sEκ=\np#+`x rnZ?8#Niyܮ[5c`D! R4 lw9%M܃C8&MґK0m #xFl| uQq]E}=\fDx>:5~׾zY@OJnV:.tbj?c_*#g͚3XNh<(KԮ9+5B%@Cu)/P jFZl ,ɀ2jZ:7A@lo5y' ^L$(9]E!@n:tb LĝnX1MEWZea,!.ѼXs2yiU0UDkY J~< 6bɍxם\9oL3 pKEm U_@mt khNmrxD3c;cW~gE<7:6K=sFޮ^0`&)zW$ +2hZ.#ڦ EnLI (>!&S6`p/nUϕZpKmi'Q'RdhUY'ss lx#$ƄRN(ڒ|F[,zIc~H@|vos0gT"-co2 #իu _5Ey቎rM .[Q&q W擾 ̒ba!J$p1lk_. mO_C0ɢJ؜ݞ<S'[p FA'7QS~(f1o d[lcZE)F.Jc czai5L_34 +W (IpnyiqoȣdAZ}RPɈ3^ucaM "Q&B3^!;Tk T$ۤ认>}erX[:)@\aJuX%a"{"oB+o0+ uÚ jkńcLLB3P9E+J:,b~℡ޡ׆6sc( ɕjq/m,o4IfC1Yo Sj_~8y}1{N!he26 84":37pTLO}2tv{r6ƔPQBZpM"$~/Dtʖ8 0Aڰk;]f縷~XT#i{x^}sS[LtCb^ JlZ++u!^Ñ(ރ|ՋssZ#=0.ΦQ$)dRȣFhNXeۏ[!m@aUQF] ls%pW-3]ߢ@ ʰ;?)WSoi7~fk`ʾas6`L ŗmDk#K_](AK}Fnҧ[TCMm<%o)KsGdBg,a&#t+0pǧWRmB]2Wg2%(NҨf֢/ВtYB;߽6Gq cxOpUEUVj6$JéJxXN tBɢ\DVӦYsO:r:jʱg{65tKo[GZx$wz>^LNP'sΖ_T@͓%Ė4PƑ[`z:N{AôZN>ێU1sS+ W HTBN&*/ ѵj ΦEA<z'[JBѕizկL @60RNދFvhpyf|-YIkm˹n½iǻ;X|6xHLIU?Sb:åO P(ac pƗ)9h9Sjex/IL0t&7=o>.lv{(0$F`ewȮ"QLJٸºɐZ; Gt?lm^ݺQˠʯmeN-!Òd ?%\mLɧsRhl>q^a3ۇ[PF!oxó=x*VfaQ}Ь+sTA8Ӡ ]`d):wɄ<:F14ggg q'\Q,:I/l"k~'ޑqebn];d肜:`e0ܐ.:^!Oz~L&X+&'ݖ*ۣc]'8dP(L\|3b5 206PQ88SLQ\XT`n: k-}?WuQ~\Zy*>fȻ(*}'! wD*vƣ;8Ju6}L:PGq=xrPΡ#^+v(Gqk'Q~8#Ƞ!gZ`4;QT|KaKJT! *w3dVC;$y!i8N}BamsᘋN|R`ovplY[ͪ1}x<6F҇ fʸ!%msrpC>B>wN_Y/MkRCS,j9IaмNNsZc*ujܞ $0笭GvwVoaZHG/h-(PUr!^-v}RBbhMݦ-M>;܊`;9~ X8@SPd,P[[18޼ƓhP?tSXFuc"Sm.G&Ib` mOL=6)(N׺}"zn ոHH$64;"P{5HLNHh^42xd J"-獂gJKGwQ IFEx$qFotَ-_ ن$ss\I, v=y| ]"a");'Ƌ6cRv_gƆlB?N{?:71b8 R` f&ƫ~"HTsy r+fHqL0ii$ _>1 #t@|eA'AriQwb5t;DxclEX\=C(M&.:^UF!T0x޺H:Blv-IIlAm C슫=SV) =jLl_q b0>U~'a&k9ωm߅qo\OḫL#8v[Gn *=QV<)JRirO<痏##W!,JrЯ`dy,s8̻=< ĒsڶpkGWo~A+7X-`+F 6eN9ӦEugr0n@jce=G&lWaŝ}3+,% òQ^͉ᘝ5g޽b".yeS`h\NK߁3xS AN<Gs Q3 go(t~&uς3*.ܞcuA3hω &yf,r01LBjIFkJ/' jkQ ̗zSH a$XIYAPOZH~e+pK',^ JoX5#*z@GAmAc=;j W Cᠯ|mXU ,祲 <•By JqlF0UNn:vc,I(?| 6>rɯ uOd0+(u1 TQ]2dcSnupfWTz=~%YDYDJpjV8Xnt! :mQj vꀵ(Yu%XfP,S+:p5δ,l^$ts:NG;>+׉ @[ܸ P^kr^A!@j6B&Bq=D{_}O3>0'=)t; i(zZM@{dxަdAFPRZUҸRCLaɸ2+0 uIO{ N8M 9 JJ!ǥ:W1{IJ?d,pKm0s|BK$=0wt㒒V=*Z;aK3EҲVrx@FLhglHreF ˪a:-o>Hav&8&#wGg`7d(K5 Sx'zWV0TbbxeL FN\c%4fE]xU])rjtLp}plI&NHjoψLN+V^| =! @X`|Ev w 6+6ۄR#O345\hJhrVVK藀S)ָ 0Hc&0)Zb>sz%eJ5.i5(q2[rmђv7oC9/:ݰBvȹhl!$&pj\|D_P),H><,m`Dpxx9>o$Ǐ*cGY1k1I&xP0*P ungCosљ_q4^l0+h .ad98wY):|.Un,NSWoPxvCj #*RRO{]!'/ĆtUr_|u2~AnERy'PC !5eԿ'[d.,NE gܠRS/nYq/m"qf2m"ybm1.GR6~ 鞱/KH7?_9bUYu>D bY%:@/͢\&d!ّYzȓL+AҢyooxok'_7 bصگ8T*cWc/jfh}VJg:$אtW\`~`sSáqʍNS-"ᵇ@<+No&U@\45"@${/jֻw{et7d9%k:;O=ZN` v@!Iہʊ²*Q cpz+Ϡԑm/"[ȅU~h;5r+VۜK)Y0L^\v80v+2h|MJ^>GkLdLHk;T|7fK 21|@&z2Qp$8 +ס"ӽ9b]-,Sq|vvR `gB}&^(y96N7i]}Yf&E`J9em\R1z=mxu1 JavʃHճs/'S~לƖQIQ+^}TM \xka`Mt2 0X^/1f{xK[ԗ2=6I%ޠM_0d)Vʆ4̓q,Rw!=y)zI2+;2rDT%JҎ  $FLn^k?GʭXoh\M{55@請~Au0N gx"1k G3HԈl)T.}MY3Kn6 h/!,_SӸ1pkrmbu}vvRlbn&(ds_f2M~3 \ MA}BC=ʆOp ڼQh횶OʊMWuZe;GQl xȎ,)o mdŅ!q[R_’YH{ hӧ2>x_'{gwqܕPvkBd6 *D#K}'!IDVP>v;k rM!\$Q,IAX:g񗾰#V;uhZ*hJܫ?HdW/'^g&Z](c!0o\_ՠ!vɉ -X]+QG`8̉+a#Ɏ1lC#K,$cWه#_@$ˊ$##8$cVv5m۶v=K* %߄>w~/"#7Fٙ=fPVƒtU0MXHA+Ν^ЈI?y6f.\sda/4_}Y?%}g7U"VM7fp {"+iT Ghĭ\ k3GH㲃"e ehC" %kē@wH`ȎS_ߍY1YT]^jJ90La(gﲷI(k;#2l1r-0!Q$V*xzmul# ?@`1xWov9wh" ?38gޏ =X8h2r)v6tiq17jH?4%^*ЀFr|d61_IyMC(}KU)gx{] X:~㧞J#!ƿ:^U)("\>J(sXz{la!00i=̱حqPڒ-QR6% )IJ&b/#S Y@Q_[_73 "w t"?Pn^4 3 .RïCëK'Qc[R/̓! (^G ETv1:h2ѝ)eoR?ߩL6rU7\5,?4͏ B.<[[zᾹbTL4qDc]܂hAjugKv4(1?3/E$G*E5mAIc :ӟb}ԲBp|\GL+Q'k%^7#uH% WYi484A<~S:{ A@bO>g {IX75ˀB8hh&JO:kzՌѕ3 OsD\ \ ~7\=;ni_Ĕ7F1Ίr~ ԦXt#?7#&M$NsCɕ,*Lݻ^\ 6`g[v72gjrfBo{ b\#y 水 'n%t7=;zŧxL]Juۉ%?6kK WHi[eVh6MZcz wa?#bY[I GPFW"=2P8 MdqUe( _Ozb܋D,VX%Eye¯3猴?:K֣弥/AwvI|&:)8@#А5h\ʛuӘ޶D.2('JOyCM9+/k袄O wlN. T^LǪDݣ"]\.rlc_ۧxbTXNr}wַMgmN p! MvF8e1SZUtxv/d6Ăi`mX7, 'ȞˤNAj;{@8W`8 O >t5NB170x.85QObXiط Hu4䵰'V ӭc.O'*Ke@p>C6C(< њ 95lV\3 mҗ2#nǞT@K4%+#G-S(3#` vf7ªU&v|C,s UK iE#_|q\ +˭dxp>HyP?B9B~>1WFʚ6'[cD? )VC$Iڌ尾E{`Pٕ c&5&וe CQA5© L{kVZbalV~>^.p\Bsi]2 ?xX?ȲaZ,A n]ġCYiosפ: svV Cp/?,!T͟=̍>?sn{g 'hQOV>MZ,a6.ws:}[Pf E'E5m47H8~bK qf&N#ܝ9jbYPt{ԑq밥v4yZH :3H.T;s{p?U}!`Q MV^Le,EN&tS,:DLUؾr$8Ag_[}a5u}$LEawj-@7;?`k51Ezֈ+>W`'Z9e[;j>/- w-rE߭v-\l@@||C`gO}yVp:iܾKy!nۃrReUZ)<ɮ!o8Ȳ6&ZpWEnuC-=Lਲ਼{ڦ>׈~n"G<~ioY:֖>.,0AzfٕNڒʂ5EիDwA,`c8tap 0إ4fCC22`rlb8_ø!0sLzX3ψ(9H|Yz&J@G%e!Y9dLAIU'N7ǮX#gh:]CA0- zcG/zsr[nD*?~>vheSy\r^sX>je a(B+cDA9.5?>(ҬlMP2 Bi#YOU5 33p4Rf ^:K+vbi<0xT=4iΪA=?"'|(XGj OFE)*EMYͅ[~&v0z|NMga l`Gm{D dQ_ ia x{V|G+|,pl)C=BR^)H҄i\΄F15lZ=1] Q%S\-8D2e=*䞓+{A,ޱ4wEz#-ׇH +((pCY/MijЏikMr0ҁgah:˥*!2: &՝HH_jl@ޥNmVxpnCiIbϧ\L(wF"za^c'\Vv8 J_h1fmtbCo~ޤK(擽,V`l{g-R>."^ϸ_>d:3p|wf+ь:Hoӄ(GIxuҮ\ cT7N栜p뇈;]z5԰Lo+<Ujg~Kkf. w:J^$PliPFlo`S.5 zE=\@9kpc+B jd邺uhz !o>+]@JSD'0y7RUyr¾HBheAdEDi<-s[zE&W=ѐԀũ}=mmꈲmU^VG0(z}6YCp@˞6P**翧/ E5O]K"UWR,C;/XnqʕuNM|Md}>_m1*p$%J5܊fUrn3_G&&jG`a5zr!WxV1Q#eF8? ?[G1/FFcB?.%/Ws-wIU-mX}ahl^Ƭzk_ 2\C_m"ZGi7%e3Z*s6)5oMR3p]]+GmMHϤ\g:2ͬ|IT$L` 淬g%63?tǦ;ag3&!u ":&f&=9u]E_6cްerґ/9n-\b>kLޤuw8C䴟Q+<{{S62twK{>ֳv`psŖpxdo(`1زAV4(޽5ލ$Ѕ7og @VH)>X08>o 'h:w$Tw3L$sYަa6Y>HRwf Yiܩܫ$Ck,z/O<]vYuGc86KXyb470dLk ca3MTr[;Ţm]BW*gQ8+_xtC,;8:}F}:A qcC-44G?+3a!77RPK*~}g!Y1AZ>@_dli6.fUvAMp0 # R; :^e:H B7(m/]^I`S_^m&t_n?6vcȱO"[5ԔCpC|m0>"^g(_4ɩauu*"5b v*3eV8[ }y @nn *ʨH77OSwDވ&|OQ q}7VwI 2z|ȟJח2àW{f+((OybfJa/ }*ADQukyn~d뎿qP(@ڒl_ CbCji\vMH,s1]衁$8 ylP}GPݽNҟە>䅣/g 0K"ml|ƇݖMi*穖Sk?'ev9JXlU%݅AO咺ŸFmcX8 ^]ՃZq],틙> hwo~ ;ov9yH; Ɂ &%P8rpth)fMFRmݿo9о;NlvctbOV_5To\L_͘j}PA I4 |dciENX(5L_v7+*gj*Ǩ,[T0QgDŽILi'KD5iJDkkuW#FԟFSOt ~_er#$&l xxbUߦDIz=II h3uVSԖ])܈k琖ڇw MFBҒ,T8Cb+*ߟ5How~W۞YIg\{InR/m,Y҃&/{4t[ +V^j'{Vm>z000@rK63!><04EıiTT&˻.n͋BohğOׂVP2T-`Ƃe$kZ,VXp񧋥HQݒ69_,~qB=., ͨ4^ͣ] :WY]hjm01QE9O|1 O# ApnIj5Z @W"Aq2.IB1>A"yM(^_-/v*>xŕÇq!1O:yPo6PoUAUZ#j1}غ@ WsDuYg&AYٙ7{ o(wG6=a P\Jv7ˊxqpM;[(k\ۅ"=G5U}h@3a=C 3S}%FO#&쾽^ƼnDڈԚɹ9LtmA5\:-`9*MK͆n/ؕFKMdJP1i߇(␯~ 5Au*34 Sy8=3deD8o9q1fQ[D yU!9s1rh XJ$d}C (xŀ]g{XOA>[Qţ2\u; Ϋ͉0zu;wE[fn6oF˼ZgN0NTp+(X)xS_٥F$v !CCϦ> &qgn䍸儖&tr%;eM2!vt7&ִz"7+⤠ߡUQ_#oQ%覠c˶mdѦ(ujةb"4<p=DhZJ C>[Wyd#MzUs {WOy]+uѾch?t)BtEޭ$idlJ `4%Tn*{(1l!4FXr"{׍vE5peԴZf#ʋBb+Ohf#2H7鈕 KraU_j=YrHI _Թs7>(䎵s{0F53 f.?k(rzs]"LT/!GB?IefI!kjZY<ܑ^Gr?ToOث&glP[سEBvAgTt5❹p CH{4ɫ^8HWlt R% Xё1P cF]K7 u~1 XH(ceۈ,30XSWh&6=A[Z7M". yޮ.)>(.R0| D^~WI|l3i;qJn2 )9By:O^г?L$e-$F>e] O"%6(?|9t鐅u*CB)fyɸQN`a ŗuvV_؂bIa8hƺc"UpWR]=$c6LG@%5sB d[:Bo{ [m&=ݏM5|Ogre=V+| ՗p_`Fh4)6&X&kӊ*ZYoNdP?ɵ+xyU^`Lʈ`22RHa3vլEi@tΦԐ[dxn#:!Y cmêAHb*"n)Z,vhK.T 2`.L󓈄\#8cpy0 BIYgvI)K_#c&o3ڇ>آlz쯗%vG2ZHЭ%~G_x/H+4@r.QdMΆ?n19}|l/槩g]g+^󭢍DF?V/ﱕ@J]) VXD%ìƄ8('DQlftI-Ol%eXlV6lUNA !z{ a?7_:[=⺵w?ʆ]/UZиT'@аDJ rT@u71 ~f~x$CC@M˷Pزj}-:_)7q\4Ԡacۀ2W-CƥcT,X qx!#Kz곤Tma%\SޫfM*ezmJ^JJ}d e`8?qhJ&ؚL֊ڊ岱-Y$ja[-y&IbҼbD Wu'U;}Pm6m&%%W1, Y\ 8ϭ[0 ,͟XnpqSv7`^t8Rz<.*]Cd˜Pj˄r:`1%s@(n3Ns8c! x{FR}`[g(hԤDgLcYT]z^'Kcy+vy;Ն %Oj.;_z v7?Tp[1 ZPJ{m՞{0uej)V+(#|Xa%~a MU\٣8kUUDZ6ny@M8k<:{a+řt?v~PF҄o 9ڑ?~9U1qxkYat ؠTbq6[7o +# \EBҨn8D@6W2@} ?3Fi>tk3D\% @Xqzv>ws ,P+5¡*aO$ƅ֥N7<]; R)ikB.K߿}rQ&]חv2T/"8T7 \K.Q6цpa)ljm3Ԟ/v’8z>ηWdO'P,d~n.Qg*{]{ݏI0„b0܉4pj]6#Jxo>zĆNޟm[0|/d-vyxxL,N_Gu9仔a$Dy ZctU/T|3إ.ʿ 2SlRGSȖqaNs#+E ؟˶B=.O٭K0ww`pFr2hb A8 jgtW!,ZڶsɊhE]$ y6 ΂,'My`O%~x`h[ \ >Q`dQqmK-2V `w嘣dI٪Gkǟ"^[0n 礠.2"6d7{}s x.R& 8dL-agfGnH; <4e"oi^yT_Dc@R,. U*k䥂w~GTp+o(SspȔJoߨc/ \Cƽ9= sa ] CeG`^VwWAE9AURA7hu?wIO>.oڵ'T[W7!Qs]zQ=C#2ދ,"" DQ㌯O~PäthR ^ Y#`{TuV\"\G<iUh2&38lpzTuHuud\^c*/9Ldz|A$]' Bd3S_."q xTX92cRׄx#>3@$,pHO7`F]<<<4/%MyfS@!2d4ٴ,/wts TW}'8A9Pp`[F_۪FF;Oaz|=gl`Ban?o,a7h)+b ˪ED4E/g p u\=]k =t ~@K/{Dq@xa˶~ &6\y02FuM4(tBgW[!˜Ӛ}1-83i<EDW!'p(GKJ@*t/HY #l^O{讝䏼j/'K0 3d^rWbB\CB.YI05׿zk1gQɀrLr- RܠTclُ71eMr=Qt4(ek+Ȅ@gKb+.ߥorOj:ZyI6-/ϼB-zFTIZ7L>KrxNpDt6o3oçV:˷7@Evn$AϤSl e7fJĞ}xV]ѷ5" ӱqZHap7?UYhRo4I2_thgMЄ;%w ZXɩCJ7C)6 phzmZ`yԦ7؃0=aq*H0YD'5>ʷxv[FegMIJznhݘw]5_RჴBo95䰛`S|Ju񎟌_ 鴵 O ! ~;tYlh)"/=Odn~J+v#Z+g1,IW~;bq[r11!9c5.8(8Qt҃7wW):͔K0"@ M8bN8͏AQKAz7(^]:jb wAeC622JmQm}2ߜX]IPOmO8&/guLF%pZ%kKpy N9ٺO4G73YE~.JzOj9 _flx A8`˫d잶KS28ۢ-o9rx&&(caH`~GF3;-#-!um>^) ɭ2F::(wC+NK4$a-aiXREp8?qU-ȓdci!게B=-p@k \\C151wE_%@燝v֦W+6pƙŲNS6'gޅhd& `BQEOB2i`Pi̗"uS%K_ZݮgFF>hY:VOj@ @y;W[2HPquQƔX\(2 Evd9UBaSD^o"40tNZ%48GqBI ٥=9ɇUduCO;AV߭,Og߀weu~&bcw ؽ@aw@_C=dAQnB&&y_?)72BnV)4dnQ!~Q˖/晞ϵX<{GGы%YI0$>ܲ]ΨU%"ǁZ:GA/kIy 9c7=/6QByb>+}ŝX!E'5r|q(S)\>N: ڤ3LPpM@PrzeR$/P~sng(T"6ѓlC+p^?7~a+'w#V2%d_sm/\0<B|$K\XMv 4e5J5mx|t;̯EG.TjN0ppﺮ|oCЩ1: }E |@\-D1b{gS*h8yeppvpm';ggrI%w>=37sd;(hABA@k {C; ր~$|둋u"ދ Q<lʏ^s+k4 +kWP ]UJQl_$j匸XSeg[hHuP V$E}OX r7Bx0JpM p:Wۦ6{ Wu1.1FGSoUTB (׀_YdLr9r7q6ΰTQ-bl]%$[շ4xպFǍ'xŎ:v%sI>~TOW">GV$:gMd*Yہ=S2GacAj,3u,6 w~yc46ѐɤP::_[!eu-7/(aOe=mV :x-C,Tf!|=1EIV,4.F^b]?U+ }d$ }4 $}Zץ =SʕMWHϗ2UobuXr#v[m6f;ߖ]z cl'{VЊaDR?YKXCߋ4J"X6T&A2IF˳K~jUN{PR24Ծ$Ȱa;: yޙj啇_"ɛd ;Ye{Ar9w{;وp)\_r:o#vR_88OMFGns~4fW{bD8`WM?f~S<5oCҫfHƎ)0jBt&~W )In7~'؍]d6%b6={MX84 YnGP=*^'%*r2Tv<y+&Ypl/cJ~u| -ꬒzbOa;,) S 閾_W13f8ӱh#⒓a cçhP83G{PG{fs!kϳ'=o܇ߛ 4ІpeeU~P|pUsW?$T#asz &\ C.{ߗª#B,<xc.Js梳qY`C>-OiκѕWwؘPyP<>VRrL?߇z ŠgT7˶UJVhDe@*~Fڣf0 څblAf!OqK]뺡&K6[Zr {( #҅Cr׵cy0㣫6ippx vʵO:y]˲7K'g|P['u{u$CZYA*†v"(Zt]M StVmz}+n$5C4N微[ M^DаY:9'( P-tzSffP &`Ӣ{g!vf#j_+^/5dhӇyij_Vʆ_uqV5+9@yey~eI?Ck3 Ɨ8/N{Smw\B&e`"U A !x@t6,UL سе//NKSRe /Rg+Aoz:kÂa0XophqW)Ϳ-Q|NE!ʌYhSEGjT[?-9gϲ{@v ]4LX%GX l_V ]#q~ZWax.PHԴ@؂M d*G9)QVN`lXm9A3 F³Im FKAx sН0q)\2|BJUFZO0JNI2S9oӟ+]a̭T^G=pREV:4o"gA3ֹr'9H0NdUV7;N "Wߊ?SX眫_yNv-*4m?lE욐sWXK gXylLV uſwUet*V.%Ӗ+*d$~"IŧXو~ jZ(HKnc bF|GR"Wr*P ({Yu¨rG>'i1K-m}N_=h:l#)"vˣUW%F=hߛ1a(s>l5W&$j؁x}noUUeve|[:>5Z&A⳱$_j)X)6޽QW oI+vi_=< ~c< N;RDӶs3$wA>h'zzĶ}tv;l%[!-jV>bI憉yQ&Ff(r+6-\x/z)wdJ(İwjSq_ y} q=ݏCb1YI. 7.83^x W6<А:EN3S_MX %2z ;4]6 /.z(ޫtp^:1PEd}$KƳ 3ٔZ(UCb3؇Zo9;>+!7t2MF%],O: V1p?( nbC%Usָ͕Z[;ȧx sp3s\Z] X/>4u1#v 7#TYsT8'$a١vTax AE__.?\\obչ8n6{{}$&uB>|6 ^ODk)ZnѹRudؕp1=jguѸ׈A?hX~>iaW0~ ֜ZL$zVO"O9ļ| NFe1~᱔u@;߻4d| 5p%dvrBTB ތR'\^ke$Yh*j1ŅBSA>RKѦ#"V28k7JƷ'k_FE\N*ɫ'va(w1.t}9[$t>Bb'h^JnM$2=xeJ9Y@Ti!4E[~A]泦ۖY?#Q<v,n%n}H~ܙ+s:Lj2wgUq[xWۧŷ7!irI%yu4kɷ o c@|rv7MKã6vz\jҵ2{FuaJWʎNq 2 d`ҫx~7p(lΫȎ[0T7Z\ xbGmi1nklrX:[qVIQô_^?v2Ήyt,ZLj1&5`hj9'_<܉.L ^boYwP/H*# ?2'K *Ǐ>r Eix5!GׅL 9$@GCbA&:uYy+Q(}v$"8$~o Q a~ۅu?gv b"`T-) FƢCbnĽ_Lmfv4dq=[05Q82#P򭎏7IʫO7FU)hhǤ:7^Fb7)ÃZ}o"h)jДΊm>]W9Dl0Gw!11QMOF-Uue PPkxOlDj*h!iW#gj(*E |¾rw#ϩҟ&h&$З+^KrնDð2Br+~v njc?Kz*!+3y%fToE,fʭ/rLSCԱhL,G1'-ϊ?=!`hyo2%`ЌVG2acѱ^tƌϱ:} Z,k5y7G9(Yg~u˾Б-#hQ3jnU ukEMl%ڀt?$C.|8Tf56}l\iC qf >|N/OZK5-LҲGLuYLi5fSKsj]J Nݺy]s?֩+|xႍ!AwDPuc+!|"SBlL|mY|pN%3S`XhI M(ڌ X)G7l$iS1WN SYsVA`B|bGt2IZ aV[mtpfOx|7BDTz&DžK҃{(VQE@wdU:~C@wGeqkޢ0ī-?W<|4³4vr(./|LDZ!wks>\:B7T -\JzՏwNO"|&OQ&)S.`,Qӊ2xUHz5U<į5 (wW3)_mg`S^&tYJ(/Cr*# 1`cUOo3;K{螪^{~/!e^`݋ F-JOaS:YhO%l -Hn;"TIM+>lHI0$4԰;Η}|T-o++Aoڔ/)"*FdIZ7ax7q)xB6ο¶HE.BOsgF5H"xv|]w}T\k3`Vj֝b(][An 7 9lvLΕx-4>B~Ŕ#sPW}G,-KUGJ<*+9ip$u6َ kudF3Kr2ReTtvƿPaPuT |.82*9_Pa:7TfF`os w07#i`h!it:F{6B tUF 8 ۤvpQM8Ob,j cRWU؋D` ]w!Ha@xd.:FU1C5PJ=h{Ik{!’|R弬Qo!- >gBq ̊ex[nMƤ)> J!]0j˺g˫I+Ś_H;y!jR=̞~QߗLjAaz"Z>ӢAѲG6=T+ir3AhyH6͚K,^ y㸜=VƮ7HB?D1ˍ0]o-Ln16k] S p9`_ 'FTlžٸdUcSG$M8qBpgZSThڑNW/K6F!w k#ASDg8p7KKI6zYO#>GJC/ۅ-W`ݔSraoh z>(u.7t1sLvGp*l`6}D+mi> o:4jo%wj7OOj|h4fTWV IlkNtHp'L 2"pS<+xVrl=gN>}qdġ///PN/@Von࿌r<:@?]S^s&F.! u( *1kGt3mm_J|`(A뜣 MFxsޟjޑ>~1t(džwDwޛYj=i @!J%7ϾA~nxK`81Pj7=nGnEy058dFn&PS[v8me((uW5V9bup5>Eڞ zV cQlX|G&;rӚ-7"<*Gڛ&>"`=۲R\ʓ&(DsڬNZ[+ǐ7ڼ 14I nMiOqNFi%Ig?TRQ)aȑǐt&{T#r!0Gh$"t &n2 < *oca&_]=Px0Xr3 Vnb nf^CГuW*.@Hdvf*f۱:^#.+}l]~_f܋2M2s6$l2Ⳗ)UP(H+XIT.3y4ƽֵ0qf}2I&05A>ȽaB].fq9,f= İIN#5-u!kUJmj=΍!?v +dXE-~1bu =+kerZufr <B(y1?kyX KV턈>AwdtҤ3p {u51UXzLV<hִZ8U=U`_F\&Үܵw)pЦA/Z(*.:A9,Y n\)bQD cL)ndг:rP_FfgL̸#ұĒHJ(>"0n;j  d0euό9;tYp836L:P]֦ܓmdݹQ0肪Zb SC?( c^R3Z"H>E_.hLr^FuD360W/$Z*f<\[\ eMxY5ݐXYN/9r[\'6KZex?lJMȿ>sJ:b# SW {7GՍ#3}|U kSYK4&6]E.Pe 4}k㋎R0v|@Do{ |uŝg3 e; 3)$ 6q9α? 85-1sCGX{䘎'| HcLBk }Kٖ~M6d s*l-К.<,]E0o4j,!{[2D2lhY>u7_O P 67ԏ=RC̲6zڱGt>*0 4aMrñ p>mƌNN@5lI*Č*4):;dwv"}|0+\Cv.OxG'`0Hwg)H/e5~5m˿ _z_+4ʈHyǢŻ$~1vv _HܢW\8Hz^/Jc>bfҿ/ @c\M@HhC|ZgX="]@s.i;]m-8 "Yk(9Q% FՙypM#`l^ =Boꓤz-o m#q$9&r.GA)Jٌ^؃"\ŋWGQd޵͖}lQlG{h#Z: y= __"[-2q-}S=땺p&K3fw5㟸TUzrۘU"n؂Ek-x*@wJg`61LMB}!ã15W{r%90; ye#T1J jPV3^xV\}ۡ*^jUrloʮi@zɦf-EHC;g!>gCS;Z dl&! oz@ԣXÓOZscb_5"&db fJ7.Y$ҫ0)ƺ0v9ssf 0]p"<ԯ(3&UfKv> ]~} ?Yߎ_̵)t Vt{N@MS:P=hfފ0O )خ%@O[HhjiZDD=~ spU メUwGh%(YG2^-=?n[t#aZ51q:r71{5_ia[ fXdjvYؙ=U:!>X\^y"MIۛ)N*@pϙ*e#pUjv[3v]٥Ԇ\E0pX?Qjc2`]6mjڵN, ٸ:$]u,fe ,$*l'<{~!(aD .zcjBYI$4m}>aϮjr~ʎS2}X8cN`r/rR9 loׁVrM8"8KA} fsac)RjMDn) >|R:/)ynY$ KqY@ZcU'3iuFS-] …cTg&(Ҟ  6-@; ,9r ;5titb"9k.r^c7ǶCܝIm02t& 6)A5hG#!.[!'HkY!֥(B 鑰MӖ?X0}!i%$SUGbfqPC!gC,dtg(\\hş( FlԀ>0lh 4S@ii, _Yy[8N9"஍*VgNh3ִ[+]$gFU,Uh?c HG+jQ6 AxJ~O+wk~{ t!K곺`@XUKZ6o_ڛHfް 7|}xCE%Vkgc|n/YeE4ήXN I niXVRtB c܄& \}C^ZSBag@zPxmH]7;5 _0l&,~@S!7mDŽ:ħբ>JZ).֞ uG>?=˄õKmy}# 5gjjy}IcQFn\Wr B12^/S'6Rȯ- 30KSUٌ唘mpgZs "6e}8`Zg< PA_'׬MQ i5E.S`N}'+NnIMQѻQ1S *ClDr q@C^5t?\k:PLҡm0$feP1"w7ojWu~Yc1eʢ4iaK՛Ϊ[2SkA?4)<ˤk#[z.s C' l06'$Y h`PuXR6.&wV9/5GM6".i>C,Tp0SȯTISDc~بy@+Y`QJ蝤`ȩ$Kf{QI.<T u{Jl8UjLj xo |g+EیHTkA)HA7xD0ՁILl;2Ni-ےʛㅌg44xxM8O z$1B3_uE%^͠sc9$ of j{[18h٨ݦgdTYx.س 'בwN.҂XC: -D+5t·zTVe& "丕Ibl.Vg Oaϣ䊋D`:+TwM1}LC{•Úc'ÆdKʍF䬆Ӻ)c]2UB@Xڲ~#*V¢" <4Qt}v4Uh}ea|p}iF*cS|/=+ v16\Nl~,mqX% ~|YjB"SWs5T@86Kތe 6Dz5kَeg9oqvYa=ICx(n(4'=l_>t/bp%ڍ5qt7IT{4Fv>[Hۣho ,*Gީο8U1A:d_ FNSdA<R]-tCtBd]VӣCT>"VHe]` { f6!̀3btK =(#^J`gZBA1/8{p.:vȞ#%h5h1y!-7}5߷8j&}QbKw1(MFN{rϭh(u&M;7[y )iD3:l3;Ļ㪅0$hY\<GO6FͽTh7]E4A)Tdm!5?X^q8o6[LΛGVцkְFi*6"S>^Gv~$i{+I:<U8T2۞9TȉWe*hY¯(v7ouThA*I@]w烊mܹ4*,y}ץel%$왏֜\?a5&TweksAǡ(=DFBޛրn3 \`R10LA*_z:,WA$x#"rAbA#$jKr|SQ^P9'[=Jdi$yqXuk0VSI\r`}7^3E#m7=DհX.N #g<%Ƴ%N_W-fP9|)aZdj/DO}ǁVu<"j`tvI5e|DW6P6[/Uۑv*mSx&3Ut ],>fdHpRSPMvrR9LMuhs.ScN`$i˾RH=%yQ߮EuKpnvy)P/DƭG!:$R4ej!o:G}<7;i=3[Z% -㡊9NcơtlP:%έ;вRq@o4BO!33=20m{ ?*N&'уk,cW{JhL&z73l;\g[##`;n!>` DZF)h*yY)x:_G]fe!굘<ȦbL{GaSA*uoȶ5U {DXO..hu$r_D<C)v?]TZHWdm%%03:PɊ.]wճ] km,]>h\جՐ҃-FEsHo?:vޕa8,ZdPMj#`V2yGq-M:ro\2f,a8+oC7y"@_H[qoA/uD-OY֞:9Q hYΈS[+ Qid`o9X?$к-gPi w{&*)!4ЙL ,af ^f`ާB5DfWci@tE!=5q5ip4]DAFi!nX  3Q ^)N(p0-Ía@gyY:.<de ySO(e39Yp$J63N-}sŶӰA$ZP(.w%J{J{ 6zA"yޑ)'0Ac"&[91R?j Ї!ky+aztRq?4 oZ֙B"=<뿸d1{ܙuJD:2U4׊x*ƢgTVn#NW0OhGhUZwһRthK''X514 n% b֒Ӧ-AX`IoAXp]Yri:R;sϿ)Cd[&G#n:~T5W|<̫)kr-"!)IL1Hk'ўIﯕ}`89SYYbLX2C3xݰ_6 m6iD(+ wj!Cm\jC +>f^4M(=shZn YLwc"d.OTUXCdWFWpd(?_fA<\MO`neN.z{ .䄐ïBςG-\JebpcS=A/ *ݩN@$ҶѷÏ؀*d%v}٠G/.,=>:q.[h. `}0/nc<¬ BHwGqI""v>/>s|EWS"+^&13_V Y4 γO轤f\?kD1*|o7M"~ԇ#RfSST2 @B;r;fXH<-d0%ݭYأj蚮]s"w{+ӫMNU2?WMF{ڪi}D pخ>x4qs7c$$1혏yD.76bUO5LjzTbwqVd/?,"Y27X^KDrݵbCZ-hۨ'-@C7a&XRk7{W:bmCݢ7f۴dIJw@V)6rd@toڈ=cayEΔcd߳GU$՛ܣ@cRN7t!4ܲW=z@k _0L=%_UHnA[6B&rE9v QUKY1u'%p5hOEWp?npFzHd8CV|~Z gCn\zMo@4/3-`,ʠus/k0|P#;dru5,`_gAe5QŁ}؎B_!ӹ8>?{KI{/ {0 )z$zDi}tlDȦfƧu=k@o]4Z~tv+T8X@ ȄW=96Y雄FkJsvPT*xe%9ߏ w6]Cf<>R# UJX#?w'`n_Dfrܰgi; £B=(7^GN$;FO$szGRi>ZT `Xo.Lbu kf, -DK2!0BNճB,,gU#!}O=t˴ńlXLTBJnmnW#Kմ]i ;2gB;̨"nE-I:Ҏf)<zu};*oNJQ\R<wS0lcOD.ԯRC0}]B |hWɹxrU|)޻ȯ"ƂN4oMaP$Xt'WR)۞3tjPTcX:BFĊvLwD=`inBnq4OMOha}r x~6ضG4-XՕ$*`~c85]6cի\)2BDzG`Vܥ3x!Yx1PS)"/.eAvƞCO08{PIwd}b U\StBUMyb~n4U?eyۛx?xSi"]{|ۗܭOԓ~&g#nT)~\IC&ӂq`+hsi?D.g3T˩B/Wܞ6.jϻ[ljQX"߾CZP*R|^/7]}b',co_QE/1K֘2PʈFdI>KAh+߷ B+d"16Vcdk2%jO jEL.[Eo'{,|QvdMl4v_^"׭+;CoSYNH ٢:%ԩo5eྷ5eS^)ܑ)}|K[Ԍ/C7.VMll\pg} ~u%n[ V\WYyPX,Y,e.+UH1cQ ?Fʮ=>"IVlZ-]p*zQ7٩D2ݙ|*t;%Scn1B ׼j@~j1n͕nP paZ/ޅ3j?!2 @qcs |1T}L^Лaӑ7+1F6RuUE"p[U91cYk|-B޿>k`#CL.ڟhi)O^HBVU+kv_*a}2K?B tHd\tpT)B56_Vblβ[0nѭ/f$۪weE}Eo%ݵ[V O-9Kl`g<|N:ÅOIa|P#m H;$De6=kOB[3n=Է5(<1{?>Y-Ƅ,0@iA N:l,7,3 uFc) JZ/tYۆJ ۣ1쬅n!S!->[wdyd*-51kv%B+-U ?BjNo!{o.9se5_TYŀ@Et[ǩ+j1d ].p:miQ}l[_dhbdX8Ps˔g&Ni {\PrQ=W p~ͷC|^%LpDYݵe%2tCHuںxEK;;]qާ#Li7@0*Xm+8%lPV +RlUqBZ`:_l( s~[6[YSAu߽UfuGFYLogpfaJC_'} ,b,0N4\ @~QBV`kߡ$/iD5 H*B6(;>?I2vOթ`GXuBwf,D#AP mդgH)ʦ]ښtM MT3A1cȶ- B5"r;ecKa3-4{\=#eޠlp ~}"jOOr6I-HϿl[=rF e7CGSmӤp"cTR`e[rl.9ϲ{J;k҃~*U[4lp ;e?fnj~FFhk:fZuHL'E,Y,- =LEt'LnWI1 rAl].)eRry]B^ڛ_"d-n{g_T9PT@w  (>{#݆lY]nS²3R׏cEcl ?/&梼k#d[GrOKnFk۲4p >:9;"Հ|4M[Ci>*|8(4npjEE lگ~JOD' _ǂ,]㊜e]o^S>92珞< BvkYrZ?z&~4R#gvYYL:siYN}^e1Km7zl-W5ɒ ظØMBK j_%&Qp2r̅=KUY7sAf޹J %02NlZ Sp!:>_^T3 nJ5Xt;l7+kg၅yHUF(dW3vNY=O6&YN$\1NR)϶oSbu?zk[hip^spG lraoXh{O̩{c|Bd0VIkT FP;e$zfEUj?]$w7(v$ȃ(ʢ_P@GFA0ﳨ=_E|Q%ğ-Ή2Qn3MZE:]JiϽ4. @fh;#dXFZ{L]tF%Ńfc:&CSZruff }&T1Xti.AFt m:%9KdfC љ$s~TlH U-NSt nao uu~ߧ >cv cMHHCY Y|E|xU޽CHv" H(Cb|<zMٻ8u1B@p iMKxRTN JE4J_ˑ%J t,F5VrYi`b_840< AP- S4AYQ4~AYSFq'oqk§4v21 AA8؊m^C{w;U@cy~Fg:Hu+K΍2 $Agd_Fv8qܩ hd XJ'D`4MC~:C@]a/vɲ +$}V,KZ AAkfFeJ3ko]CyQSmԂV(ًeR?OMe殣Ci׬fКD ;Y|IlWM`BS\&abB6`: 'C0jʦ8 >TXPZ]!5Cj!h(KXa*!= i*C4ȤM)#:@44fQ:eH8@ڎ ˅ NP>JTaI0t @Ѭe).FO7/HX1ܩ⯌pazd3 8n@漰0,|T#[zv-E]CGy?du{5_sgMyp|iؔdHkJ;;vz&wW`}Rz]!c%yi~Fd&nV}*v|ؾ4`Խ 41t5FBL؋w9"#FpG#T~.ds/nº;yXYl_r1S #'21҄wy_pGU~H[ f"Y ؜6jwzE0h,n<ח" $TV߿Zvsѭ+m:Mm냣7hS& 1#"3%?p;ל;9D{&@W耈֞mAY*#BVO8ؠga}Ht7}œU~ Ҿ{-TӑzKw]K8ѝŲIYt :bCMFo􁆏@!D@+Rq1%d]׶DlŮס68E'4F„ 5OUoXb26ڈ1]Q[ >_f R:@j7Т!`TidT l`,;3* \HP>0v|(?N=zŭY R> 5l[%un$rn~1u J;Drj|&؃9z(Ģ(B<)G>1~1:ބ øL~3 E@+8As&0-Hߌe V:*7?ʯM-aQyh%ԡ"'fd Beu?H,Ka>V,=HI([9W/dN6ۗ`R69,8:d02XjaCBuqanj(r TL]!N% ˩W*s4ml4%E#ק2쬟,$Y屙 } O!/ jWK|HQԬ:KQT=s[,W~r }6F,gz8*D\άdf_$"k'ՊX՜O)ʴ7iSŴoP#>g4 e-K#B9H dP'H%gaMGr!!1_T*N>ԋ1amKp<oSbTVBҭ;f ł\8sB;TDNx[YaNX0FJg"8K }"À|Q?QHyY@ +|N|R\{Z?Y=:Շ  [zMh(|^]q@]vWLWMʝOu{y 5f"O"L9rj(t!bAlr#fI1y:} u_=' y>N }Yƀ^zQصnkX +8!8pCȂ}SAB3x2+6+J+h9 ?v3m9ACo뤭W!lw:un40 fISTuG3jqQ ?k p"3z2]=\D* @Ai(xZe4{e؄ r4EwC[B3vUޟM ̐Zkw>",rU(|]n5^^ALynxBǩi|{fv3#FYc@>]niq +.jC<47o+L2C5΋_x5}~1O%+t`4&Eaw`- AMqxp_~nG2{\~>>WO0{m3vm2l4F!6 V.>5 $Uaz(y? 1"Uɘ\HBin&]x@ @e&8+B*q!k?5uܪt~[K)%(;'{Tf Dkg"FH#v̏kUM? ЀjѷIK0 =x=َ ǁX[:"nJ{˞4WJ1/n&$h F >g]vsS%JD!E,军hOXN@ZFyȄp]|PVɕ:ʣgV>8-XY;.2F$]~j7΂q`Ua hA`.ws-TS {,/@_ujhZOE,< wHE)Ex̖í&еf_}EaTR|"4z oũr[޺ 6+x4K&1fЙKV3; cPmnEs@*|6Jdg`/Z$ bg\isgwq0NjN/T }M;@ U:|KκfWO,vb„y./."X>nڋ[AM dܟWdPk0Ѝ{TZ]۽ܼ9` \`<,_# ލ'Y*Ns&UBc03*:Nj2ìXx jF^PS57bVeJ 0hJB\"VmWpU=5ja6K%8gu ZxWBGkWatEbqN._e>M3K$yOpȣ^._&{b_aYݳFWl{4]EZfD*>uT dC>InuyfBxIVmx[2|c ĵ-[狋c?1&Q 9ސ>las!KEYji )fg qϗ;aJ1lOgqvFK ;b:{}JH3vE\Fl4߸#=L.E^t 4&:^i^A3 \A=5dCFRJ g#g> ѫ/Q,u#!'CQ@QԸyu5-e۳3]Dьr?jY>OS&DaƻQFۭT%d4C$sYֶI@<8ni7J&M YIm ]h-]<ESr$E15q0|cNpQ7֕Z'r|k.h#LqbWY@*[n^cz*3Jn O"SVl9% 2Q*v<$<^} đx VeĂ=v;Qnki#wOu^j5ZsMѫEo_'n0[O[Yącc8#]W:̘}UȰ&SƱ0k# 5? \Y 8ܶ՟z!0s] 9MgIJads-7wz,F9'E&H9(}5]=4 Yu\'!c&]W)3|P I0֜9P dN6aӑ-;HXWVvFvPO Aa֫~:l0fMؖdt6>! OoH'Yp&?ڊ>0~z>d1@/Lg5P ,LXK7 SE.mӆf ΉO -s1$&XРNBj&Oq,!V~75/Htn9IG-Ä\AzHລ8gԑ,Ym5HM<&/?`\=Jou끰fOBzzvk".f3 BPq.N ۗݵn2&+0s`A `؟:Swv0L6:$RcТp%ނQɎ+wNURs^ Ƃ_lN3)6l(Q[z;Hq56:=Md׹ _[U#xm&]\n7q)-6X#tPb\`^dY)4]qW'[z|Yʕ@hqRК gpRnhGz g]{1yw5%C. X->hz-U6cgi| <FT6W>l?f1X  G_ x㌃A̬*ig ~̈EQ/}$o^*-lƦ&yŦ>t9U<#ݠ-[ 'zGrK5} Mc*Y)puSф>f_dhE76/jT&F~ S1}B: Oyu( fX$0e`ޒP0lx̏V|Xi,f >.OCxVRR(G;Ifah!ept:vr7(ǭ9#nhf]B*M$ݾ ]hU6Aێ^9$h }TS!H,#v18:(Y^MeU[52h t"vKH.Fe fJ\r_n :tIzNkUmX\uz ~~o+BwJ^XX 3&.&ķ`pLF5327G֐?iIxs6AblxRkа<f OĨR1ZJ >g[[f恤xԶ沟Dq+g&b+ b4~@'$C8# ԨQ1}/P*R EЩNr,3kO~!}J<Γ0_)?_,:"4%+zl"<Ч+XN",uR0Rey z ;t9K'͌$$*FW!Mф:^>^7Htj5Z?u˧Aeu!8&9ހ̆jBK>Zեmg f6 Lqc'ݜ=*瓛ʣS(#nYv /|;t0jF7Q =|;3CMS tnh!?9ծml q`|5D]a`y:c X7*pn\l?'] Ao|7HTFe uX /qޞI0/#Cۻw[kN}'&شXTpur(j $h5V/YU|󡶟 ` 6^;"&f&DX&Xn=X)*+ ȔZG_1/l "C( Gpii"0r<-¸$ی>0ݑZF~}˶8E;5RhZJGjhmrN6PYf 0ZV'}3MO#Z ]݊oڌX uf ܚwSzqQ((Ѩ4~#R/38@l}@iXgs%S 4sm{臚 Zh;~ k"pۮТ^f=Uv+|?+db[:щ0mWާHdžcΖ+V*ŏyU2d ÛzHP2R}v( SB2549DvWP@ǚ8=S YJ:r{860)]=f/gP] rJF{֑|I)+."Bu "ܽU[$:<(nBm$n^-h((rAxqL AL_<7pq #!m*F6ɦoU^6~{#=!n ud2R !_D{SI˚_9߂q0)H0-^.d}*0Zarݝ6ֹ> 5. ]V謷p,_{1} KQ 1v^3*MpEgȰ:*~e}Ԧ3*@?_(rsCCA"ePgMc:@;Rr"rj-W ܫ*4([L.5„ܮX4)՘Ci0^y>+۸vn$={$jcbXz\y][-LZV}vl5TsɆOV6P+2&f^)w+ޯ!c ևa;*Q\!3$i%sOvOʊg6aPӷФD ){v:8c7c(S`A9hEtH8w=K,+:_ %wӤ^?S,~Uİ,H Rv~ЈM^n㑰Sz% e:W"8',#ՙso!If=k%UbЁ\{m!l&WꞚ&! -AM[yb1-)-a#%vC@ʟ'G|wW7]SgWk tݤ-@tgUDNp)ގy䋓^8v$GP)"t!>ɰKl !("PHu5鴽O.~D~DZ ۄPc J 6#0-оV,nX}c__ێ) ײ:4-G(ՎOL[@f A)Ko4kULbcu+Z| Ĵ6f,c='QEmR2Qddȓpwɟ~EH8xM\jjMXU!m_vI2+{1e0Zs3G(~4ަ?}T`,dgT#Y[{ X"àz2htJk)U^`nzb# ­^7,LT6S=IڦXbO.cK1V,x2$-<¿n.9t ;P y+㑤b0% US gt&H)HԲ3FNv g~xoȳkOTCP&X邸Ekc+I>MݰƠ`Wꤻ nTJ?`E=W7xg3eL8c 87C2?̅eϗT{<lاA1 >AJP/DGb̉_/̈\@V|+9bL|ނJwػR64ꢳF[&!O{hBC%ǖ }}W,,a+wlkK:$[+=ކ-,N{T溺/L߲t9rJND-d^:ؓmvC6q?Ix> - w2KiזthvmN'm;jFL ކM(7jެewԧer}}+\B$V2CXb];fE=Q0ӄV~fqeHl%sbq k)s/EzB3/U7KX1{{!p䎨&uǼϥJѐJ!AzDUY0LO}GᯡIlsx:[}U$ݗ!'Syj xxgW\e)`u'=EU甏 ["^{&-r+i\rºrwl/gV^MA*ѤwVHUKbgᾫ) prl9?:6 藓.2OLv]9F<fOTMP]2G_j~]L ^%8/^+{˞:Z}iCoWȫ{"~8r3Z(X]KG\ a~pњjD>;l9fQr&f(:bK6q~F!+d`5em'rjIn y\ wU`v"?"O{왥-鉢TUM }z' Xiq#Iɭ/O6>BpM]#OE֍ ?80KsLUAco^Q#R² mn} +-H{qK:=Jl)?{c֝-s#]PG=Z r{ʎ^/]x`u9`vAVajIMƦCmh+yrhnة>ФLqC޼;;% n,,v ;QD`qvXbIu+yE'#mt!t?0Uz Aԗ74.ejwq!`3JLXTjhO᎐-\aK $ǭȢ\E-D7/ K+/7fˬ9;E̖O)1AEΟ”A 8BV۬C9kU۠vfi$tW^Q(;\k$2~=;"wfXozXzn#`c@9JvI}v[s1&͚b/q͓F[ʖ=.:_I[s14EjO IBcP(ldj6h}rsQ; eX\$9#ӆm}F8t ٶ-@8_Py/Gds,YȄ冫sSr>gjBt&!b&0m*_Ǩ3ղm?qs鄝S8[ uxS!^e,_po?^;\bC*};aYF#F0|iH9܎>9aQpYG}%lSf>o^}mY8|;\bpX[L1,InD,t"t*!,X䫐q6S_5W] V)h ;M&@(=e9̽P,7{x:=)D^#5ǵ|XC19ͦK"rh)w!JGfBb(`/QD]OA+HmsZ%VO؍[BʮY4^g[=/q=cެy㾍N+o RK@r;AVnCD`wMY~F@aJ:za=3BsPȓ[|WT%ps^3w }U~QEohUIilfjQ 6ı"OGWgǑ9"qsia `2*liKx?}Mz{FǬ8U72L.;]Y}=11tGIȎ[S&a yX΀6uqk>q|N1vSD@t%`>;Sj eM5` fr$Votr3SȒfJՌG&v.8\3zΝ,t*c{xyBNyف֝, `7Z bz,J@FӅz 9BwXA?O:Fse{Rvsϳd9 wHfn~ +Y&n^ڌn+" ~Q&l(d/,oa$BѼ ъs49gMz<2;k5i2*Jh17WWeONVb-YB0j<;)KSNL?a P dQd/.\({&Jq,tǗHJI[،e'CYUӨ[Z^Sq @@8vdbeZi1A?CdC8)7"-4*ُK;ܾ% lqCKỨNʗZCr?Ya>T3H 0{X+XF;sこn[qOz|1&^+QL;&To}B8#+y_{w 6lVqOj'RZ'VhvlrsLƺqCy'?OO~!E5xlG |!;r7"4UyP1s[-}uT[1E=Z ewB--MN,f y߳=n.I{VD30Wp\e‹t6Meά8#9&FBA_,߆;m4Cr~pVRˍ+αfT ~HOLR 7M> n/N Qltڀ]+ee6VzwýXZ53u޻d`6f Ͱl(XV,\ (Y1@,#-'Gp*ȢeCנ^Xv;V[؅OƷ^?bUܿ!lLLyGx.C3tV{t`bԂ 5Xh N-/l~Iv X__ZNX}ʲë,[B|[ﴙQj4*pLLbhS`[@ıF#v"jW:w #z~߼Z.*Qq~EJޮ1, Q]+]'\I \\7IsA/D8(ʡ|b%>}l6Cr*q Rr5X}c/~ =FJ8a/^MUfzɥY]-=@[LU$G7;du̴h j CGWnvrTeحa_4lE $tAWޫjEKثF/ ƽ+ɗN }T&JE&Mmމ*tPôLoGd! =HPH4N} Va{Ljݺgw}1BO{l="{!Dsq2?ݺdj)(/\AEEJ=y gTmԞ~ִJt~/ +i>DQ hV |[ύ47>;#Q|o܅43e_}΅J蛁8$Oҁv,XCR:9;+z""sY:J?tɎzeCodd{1Ȣ[&~cn9}N1L//W#`=`6G,/.c1]Cta(4JhUPv+!n ;|} _Y^T0\CzJitHY3St5(fHގ[[S۵( ⰛzN֛S-|͍ZmFI.^g,'d"dㄞy>0eSp wV9/䤖o(N+DX1ٶ~. 3 vdm PW'_}Йm*90Qgb&'o! \q8fWv@><ܾU!tUԦ%j*kK#; O& B70{ˆZCo*gUVv[' !hֱ yT$*'rT"h?~؜rA00bZ_9i";+be)[7&qpDЭ&tv 3eu rrX9a Q>3mR~@ =ώqMr~A],Ipyǜ-mKɞ5f1cOqד/%`O@jHzOw'^HCte.2QD2ce  -)U҉Y"-]r1bVfQXF!被ZLM +ֽwftɭ-z6倫&0uAQ1ßeh~|#iDB8b*զ 8&JF6T Kӊl,8 S"lzQ HrBn*62 i] rxUK))R/%( NJl#Htfw_, :Me#ͥQڛ9| &xzl`~")O2F\ɕV{)EXާҺ0" WSSDoZTpFc\}sէ@&_o "zb9NM 2,瑍e@>9 :ZI@SIx7tc4,Łp"ӫXw 0륉m`eZG\pa.ڲI"rlZ6J~NΧ!I[l 'KEĩ ˳u[K }LNMܮfScL3T9M/z-8V{[T: (C2D2B *е>BUqC'GqrhG9stU_jTjC|e~MVvy*PU1G '4H9Fr% %PO)e Zn%#bBOĹETFmH%LoraQXjV^9'+wqKK&.LBS>*G`^\e'*wS6GȷF|<Fw.eq]V:.E.-N.~jjo ۡV֢%J /!f]w)O Hzt3D@;)ޠ.Z_D&H8hr&ihsWjD7-\ii܂E2N]? %q.Hň'C3$5vJ̞Z Ie#_d> V,Z }|NMu5RtUvI> dan𒞴8{ SPOޖ)ub@)Nk6*̓G)$5 Qҳwx׉7ɉcA"1hsDG VlOHZGN꟢T3;NR'sY=O͏ i]؛=nG/dmْVvvc4OYւ[߻l \+ג_Tʞ#"nFPR?Jo{4L<@#):"b=4À[A'cC@F]0EyزxH~Eɚnz}^|eAL `~G'mL]u4/'. XᄊLdؓ:;3 rsE0+婢>&@Bawq?`꣎Q<\HUj5!`ծ1"`ZEYC\.opM8EBG:x bGdbPb#%\p t ,ᕿN:'f?ܹ{3M/S"N.Z $"RrwZXO s&H6_!eȻ - d8#zMFM!b|㫦tiCD0H҅e'd !mc3@z&\c@NxM.[7jqm&LX!{ׇ8b< 89|䧭Y ?D.BCgJ&DiRs8>Nydws3 R>ibh+Dx?wq$Nġ%qHC3sT|s ZUceɿbr`brifX $625u1~BmE1o _j5:<_{ycCムZ"amDzk%36l T-qz {̥7Ae )6*foK0L'haj3,yCɘ|o^9]\p?7Νn16q#yC;l|YLWYCev6Bj k3LuEqpYyQLJAVtj>ʺ1ZdDa+ssUtcAn -x$8iPLOaT@JP2Jנ_he/"h;HM 7slYbO^D,GI2rw\DΈĕ*>kfе?7.>B;W42 ʴS.t_5B1CB\TipD7TB '\L9&DF ]}O*^1(d-r_Q [v5< #~s=$϶mdmUX il :ڣDM[}6 ߨzI%p>$Odz"sX Ii \}c~؀@WX>*Z9 o]{N/M "' k~X#w.7G,_xzOНA '>PۇN餢ǕI&`1٭6eaãTKѢ_f`AgJѷ r 7'l?'Wl.{X-8whut'{l-vP'.3*+A f'Cha:x|tL2׽1іcb8Wb|<{K5 }됬5!\7\)';V`\Vs>N9N1LtS=:{CTlOSܦ_2H`/$FjG?C(>P&UV ;m338M2KЮȈ !Lu,_*?'bJ!{hi.ӎ!)k1J*_sOK8 }.vij\9/$-,q1 Mlucj%oaY౷RL c"ptܮDs Iy/f*8ώ!GI/*[DB{ML?7I[h*61m8miI\4L1&7*z^vn>-3/zs冠T6ck >kc#Z=!KW ۣ &8tbP|@җ KSpb|enbPP2+H;1%Qo P*XDV֥ `t$s?:{4X:re_P%,TPY{G]z½\_XםBǟ:^pG0] rٷvYaq Izf&FrB}8&E# xW.Kpw,W:s?]_z5> oԨw{ތq? 5StAA¦vb1>6^pf9q!` .pF{ɡ/ ^D_i:_> eʇ9m\"q$??;^ȓqU{93-M  rK'W'8CR|)(}ICl^r8d~D)w[ǕN qf T#(!*a~ݾzei&o.q8Ŋ)hR!XD&2uQP9Ikfԟ9kDp9顊tc^kNbYH\ mEq)\m &#X,Ҫ\&}&%oaqp%Hdf.CVӖO֒Ja2h)~%9ZPF8)^x4d_.GBǔخxإ7#z7b̧:=1*/:<Ф̢y8P2t J43QؽOIF%'W-orj]mg!#BsVN󆾧[;+4L̫v,,VISGtlޛp1dn9DcA()J؎U)/@dF쌁s gF;ТI&[B1 # I:9(vjY2({ 9.`%c- Oy`~"&iP 9tClx;\(9bʐkë(584haATR0ݘ[g{ !ULW')0ZA\[ao6YܩSS2\Gfɖ-X*q@1G"bO[j Nt%!R`FNw ]׆G{/PzbJ9IO" .إ&yam xDjKZ#$4ӕoJ<>p:Ș>ӝ 8x#Z>ue[:U`=ywl&X]yPH"FTȆQTa K0H.t${.#XN0 PB8!:=0Ĥvlʌ[ocx)L?B̉bnD< ؒ 5lAڤ8*@{a{M?Ʌ# aH8.vnh#32ZgXCιn]w(7UߞAdrO0fG捳ֲ+DJ % _ΤF#@ɸᖯvUrߊ. |\r]xlAjt9y'tNoZTtA%=(,k(6 k~PWs[0~Hv: ;G&[)?U\+7kz:9φo4DAօ̀}XU҅d$GGT_VgMԨ-g{E9>+~nAT^p:L,szaą9j.$r#㒦vX剪_|6$AO}9(.ƌVkf {@U :YAU(_2a"i3! MNy'?l~@HW7VJĒ QkER(ߏMDϐTV}n/S{8#y!B@1`=Kd.%BETq&aՀ -m|`.D5ǏF ?MX]]rN,9GN*vj>F` RGe6!7S84MӁ<-6b&:n]u|)ȘtU.2GCC4W*JVAZN3m#n5RU- ٬_Do9ʙh*>bLKy4XRL* (s/B]x $C޸GTd}!?>FO1o}XThzG͇5AjEK $ѐin\ >!dx$dK2n:[<..|IQ- ;U܈-lYI囌ky2{azFwNѪm ;}gPL.l6PH*E ShOؕ];9Ǩmp"<.qKyg)B&3-{VHFΟ/}  ;剚^^1]fz _aޛa,@^ަ`iݩz"#ɵQܟ.qf)ֿ*;"wA5o3U#]h|CV\Z-W%=y;v?=nsfHǛvsوo8?L97%aM%E1Ut{~=_ê <^ KT-@$2X@qK~WMʅm#C p|OLّ)k^bטs%M!`_? 8+)`\d85m@9vDi׻px NZ,ȅ{aܮ[/jaIMlѧ3<{K7C2V) ڎҕsPvܧmqNH 8KC Pz]p ᴢ=PY)}j̿n, ۧsFI񵄦#c.4L* 2J\&󟕍q7!-hYRa:%B2a)Tݎr櫟ac#c\$Ugq 7C'y/!P&gџQ06"aԪRcW|_1e> ݾRiۗi;~řJ`I$-W?]TgxN&x}:CT(3ӺdZqpD&5=:4,Ycr̜uOZH}q `{P,IGKD 7ORu#զܻJ{IHwN::XGd^h]N>@{HpCz|ӧcqyRrHLOo ?ԉ 68,7)U$l,r0"ڥ .(ղ1ŭ<5"wQW_XQ? cB6 $2o1'}g!h+\lJn _7Rr6ٻ'GMܔhDu(L_MxBwHi>׎תh@Q<;S8ncx"uh8Oz3%|UJŬ; t?X|[E D@QLM%Fs"uGמǙ-HQv^bE)WO݆g.0-3x7TLwMu@j|/|APpKJob931қvX$ ! ;a4j J`;Kְ)9@F؛ ӟ,-90yJP x9TX] 8yxNmܹwcWf:c4=۟F {Rx%1q*FE#ˤLaU {aY"Jm |̤y9ie-&:ysb#V'2Yd,A'$.]xVFVQ9#':Kkm˲ȧey3k\hoyyD 3 e$RbɣyCSvkPk( 2F`.BCkvUҽ-,C$Mj7ZhRo4CH"hsTʌeMgM&#ѪM\` H&Ɏr6A:-(E` =U՘Mcp6u!]@, [s+O3~͖ 'B7v3/ћ0w]F@%mܹ۫?5LeT&A4P\+sfL,;!fUa;QLVQgo|*>]}_Cg^ 6ȕ`te ܃]ei}-cT|ҌbAq#νϤFTb`OnBܾ۪G&9Sg'F=ƉY=?0W.~@kcd5`/Ɨc@Xp݆z+| ֎CWFw{XXAke^=V} 0[hݮn&N2[pxƥf~ي\`K*E|jgT `JaT?p& %r6m0OtWa k#4a )9߹Ң$ˆYU,A[4is!#*Y+' r rwje%yBBkcfP6iЙ|=>pL( miet雧fx_0K{ QTŋt-(B9ԕPKOE.kɉonG ^'rEdzZxX&*eC_Zܖ(59 %^r>'7+X2ѯ<@N8ru$ub:؊v;rWʱc Rfj 4T5{kU`7`-tk_.(-*{|%"-B{+=8UZɇRsm3lEuYV *3HoO{/HasZo[l+3c+Qke!;|V%?.cX0x. n/7 !s "-;ʣ{%)EƕH^\%p7dL| hq<%K)8(Xh e搔l:^H?V{>q fV_NqkyEE*H(I0_0 1 BpJ}b[@l\P%huVA<dr-z3ǭfǐѠ@^9si1f=k7/|SB)Guv% s'[ + &sPmfodsbgH)`5r)=M]odNB}&A}Zt~ g`]_X\%P(ꗞ.qп RJ؃>Q&|k"dD͋EF 5-pVivf1UEN|xT72FכNE'peP%4'>Ҍ6ZL1ڷKCl䛙;L& WIcSPsYE,ET;Uvl%qT w `h+- H8F8Up'vqlWȓ+0>gӈmۦސV!H4x3߷DlGgja^(P nh{}"ktL6QaAzSRL^e`& OE$U:b|q{w?S 1PkŪgxit3Ғl5W&Է|_GMu?ZdyșmdF!}xj,΀ 5z+a o}Nn]3$z1 UK~'P>Cc 1[@rMhbB^sU~a/J5w6ttuC 'T<ҝTòuC_MWjsi39鱁Z]m^37רo(-HaD EUWqn@'`[n;l֗s. L9QOi)$tY%0/ӀP.f]dM{7ц3@$K =g[9^>y7 BH)e9}~v-zoQފ)M9f4\1E685> 4GAf>Jh(-Jj3/YuĒD5?z9Pވ}m`b-&8rr֕UF s>)N,QT!R\/ɝɠX9 4{Yi fy?8e&oCcH-bg@k DkEIh; u&.J>[*+|@Q:[O?CmeyIùH)WɣOCi3Қ^'2Ѳ,qUrrP3I xz<&[z&pnMz~dx?.9r"WΐU'k I }SxcÏz2*ЍBt5\ hLӝ=ˊ<U-ΣC4``|y.9itښZOzy[Z˙4F0Wʴ\~? P66T5c-q;Ŀm0&5Gt/gUQ.&h%Xw*Knw#Ǚ^{D܌lBx.p)B3+38 p(-f8qxnnPЌf*vR`z',ͳÉEFM {m0,&TMr~H|(w|y CIu(˖œ> p)1-*ҧXW:ţC؄S$TK>U)VB fVc2($ێ|e1;hH5;vn i_,7*ݪeItZ d_]tD98KC BD״M.U@B3z=E)E^LzoE#2<5"lY:'!8^;7[y #<zo.ʃSI<~ܟf(=ID37_$6d3Freq'cςrJ ,%JۼfyQka&~ʚ!%Ϩ9_kU|!s2$Y}};~-F% lS?#*d1ʴaIY V6=HrS0R+9͍'aʡ mҒ=]Ħf `* dL5۬! &}=`XP]d4tJͨT^orEvnwיYIX\h2M+Bn3Pi$Ԭ_6o|s` o)wSNKG| 1nJdS2d)*1@D@;=D&.n3&$2B+eQr k +R~ˁ8ԛҏ+i6túi+'Q~GG"";tQt -_ (otk>G%L&vo|s {y B ؽ+ay FѪƟG v=2@q݇y,6Ϸi)o?^{G ꦸ;P6m B8ᤒ@uÂWnh{v ]AASG1qވRU/ZD1|Z_~XON&*x`L>Tq0˘+o3~H(l`;L9JCaApNK2A?{+NjY09F >\M3e߰gF&SL{Ρdu2sk9|M=9(|UKM!,t~tGԇw((*CG}g`N)Lw쪬 SѨǡœZ+>-TY& .5gt2zko;M-tsAQF#X$ 𦚌vr458ߕ =4:f:Ҕid yӟQػπ;% s@д]XBIWpQְ9O0A]$.6N8 1i ~?T?e!ŒDWPR*zhC r /xdyH*; BIdU;F?*LN+ۢ$'CBs e $\ZdFqpqF,+%B έb#ۡ]{ќhQ:o緅[FZFp2x:?|\NwoX"@[2D<Уqkq|( WJ! ؕDa$v3CQ~&U˽kR JwQ*Qk}17+dcQٙ*(a*CZm7nE7ئܲKF*ЇѦYdcVHՙkaMo5 f[u}p]K칙f*l]U>tFS-񪢧aqaK IQ<ϣsBopŅ= PDzK6 |bC:1Oj3e(?7@4U*O ,7=zroA&563W|r0eTH78e}{}; d~ovYj$_nHE0v,MeM F2}]Ww fLew#&Nl{oJd `LV~ F; M< la:$V4ߡfb}A}'d[z,C_P׵'LM9L wcjO`1ů2vtw))"aޛgJR !pFw!GmUPNT8Zǘҧf9͘MuDR"5);<tFORtY9R^%rl.֓yøCMc&MÍ}B*UǻI¶Ƞ9>)m~7~׵jE}%V$z2,D9 TzK:ju\?9u E<`yV.gG* )rZqȗ .D$f2*r+.C ׎}>Rreqȥ?66Չ"lcV4S 84TWuϝ54юU>Iܡ H~i_V\?<#)-YAQI!N0y0|voe|墼inMy|VǬRgH%x:M2ƼI^̈U9'㴹$,RuA@ Ԅ+bzl~ `wrFz t|e vv̮oā@,5H~zط^Mfgk,=]]z ];}t \^iYa E42ep5xb"weI "^ėP k\4IcP$ d {/B c Y1eŞnsGE Gǜ002ټ)1b痯PPlCQV>_Ar.W-T<76/ߠ_uy Av}|OY붵Qy&Jq0#M.xU4tK.2=c8Tjɚ?Z6̮z\;k=ȧG`Y34 >ʪ CvI~֌pg!l H7TXdQNWЁ's-$ 0^4ʼϛWx.<1:?x+ZIhtf|ؾqISu1\pC\MyFY PHY"GQ^n:{2qL܂rjŒ2[7WgԫO)GCn\gƨї$_|4<ᏼ .¥џJn<ΟÊimbvOC7!83(`5W/ޓFnkǹ"}b/ n Wxj<+7::#Q)n PCьN3vj3Xmm|^sp{MӁHp[po~qE;\)g!$ :"pSlնvznzDO)|{^JԺ.򼬗_Mg憘hT-OQ5.Fʍ j~JhT=0l`5S[E[hK/mlIvSd{qLߞZ`]stD=+돁a PuĐh^=vrBHO5"Npx"Vg"WV 1̂]3'%@#e)So-10)L_ K fl>,в/ˈBA l4X9ci$ǐL'K' ;9އ6=%ٿDTQ݋ c5V^ftRritJ+O)_N[[hHx8ҍ=wao55WƁa{'h0y۹0Kz[Ӈ0ǔсe*`ʩz2(]D2˭,FyQtkR~,*tnV4u8ݠuHze$(baEri&B.QUjbkuIB#I&j`;e<4;[!r zt Jh9e)<)&L'Fϱfdm5( Z( InGP 3=~v! eQ6+M!;UmRgS!Ngp1A18LymQJ6 F@Vɗ ,f'9;Q-{-_퐖W!![M`j\!8rJq ۧ(jenY6&5묺bi+ўfiNpI|fL çY$a^[bm^7ДHe5 -*ϨQy@ʲZbH\#iH&JxQϽ'mzT=kRXg!Z~18)<NY G ^sBIV,H/_glf) pXXוʃ\to)>ySIc+q(̐K`_':z?'&ie[l@_'\VwP\4VSrfX%ooz{64X4q p;4xAD>`BmBa3 eWp0{ Tˇ AѪ+R3(,ޱEˆ@M?SO58lyaG4lE#É/vw:m@HS*"n4EK q6CWت?B&-VsS-*d{O5y+!XwQ5eCKn@Qy GR⣢-3+ܿO^?,v A HMrӈ5$~+zWO~cI))ԙcruے1z 6ylt3H`V! H߄$*`xxeآk6Mo#v+Sr:C~yd:aمE0;+"cIf)I=rsCXa/#25cWiDeQa!s澚Hh G7!aGaVDPZfTMȇGe<*CCPŷ@?U\[Q(n:j MmKS4"*,u"boPQƃ 7.%ZW+C<ٗo—ȋC{qXCݚgiHx&=?۾:C% L~ 9{ GgGMRVǂ@O`ϐϘUlS8QQ?HCeJNޅIW KRy 3w۞So$ n+,{!j_܂wO;6˧ UTSQ-:ϥEfDn-UE8'/8oj%FH [l}-ݝXɧ(dQԝ_ DXb}퀼 0(I8NvMMωU:! 3a@]8hCy,<3ŬA[B߰8E4\yVnw$DH AF N`(#Ta:*לCBFf8 e1w).D|>NϘ1rL'>*Wt8aFyW4xn>^-<ˏc MQ+xln _cǵQKC|ɥ\u)7oC<ȉW=2o :pu=N6YѴb]IS&|]7< #]XٱN n;qG8~ޤCoYq/dcs0Wt}xDonj~-׉ f `MZf1YBɾsm4.TJ;BI1-sgZ1 ۓ. oE÷xo%L= [JȘ?h8/-!(?ו`_ǣP~׍'<%$}gzHCnK^}B#2 Mx >K{sT +Vz?Yl\gBWt7sqKpoF\=_+ّ8*0u!F +0dE>iXw=!q`^/nSGhS[TE ]L 7`>NzTN8ZkcQMECt-A Dجa\Dn^sM.][BR[QATĢ mcŨ/ftA_j/: @otG#EHU5_kc9iVJ/ )'gB%-_Usx*WӚU:/ ᷖ[%J[,Jp^ O,,h'znVF1Є,Gj5#'C`z+?'PXd"^6Z$ʂg3Z'edo/ Ȏ3`Zߚ W&o07h6-{L|ıRANyQs§Zc!輑ErQ~3T)nJ:yQȃz4'6a\[ޢ 1*LAe#EZ15=%6 HHF?v)]Txb aG[8!?P y⠘oVp(^nLۈӲKa#(ܒGF0b9xGMWb!9`}>w,⸍Pu aӐɐ9FãT] it`|5(pPfɹnd$还 e|c:ݤh wpAG?fʎ,}G~Z82oƙ[\B9Z7dQ !,S-֘gǂ HEO@Uʹ(FTlH@ޤ/Xz0B5ʨ92[82chFRgx^v6#B hj=Ns+DO 2= }a3 ؼ [.Y𤸒_ͩ|>%j7 j9ZucW*$)'J1XF@ȈA˕ňUl0ͨ 95E>jhb$EWV;{Y`ʼsmQ@nV-ВO0{WB[|V,]7IdɠnRc ,蝨3~GΎuw#*l]֘_Bga]@ePŊ, A[h%M$C`:lC]%$\7F *oZrpҙL 4np&T65YŠ5l t i%byx]O>%'_T1d^Nn CȀȮ':ϋ [%ly0=9V'TcBnj_~fTt0Y2*++N0c]g=]ob4 Z;/28|tbw F]`R(^8#BUH)/Z. 30ľ+43` ^R 2AaFԁ~`+M6a.cp?x, +e=Wj1w_6F9t\&>]@.6B=$1"9FI mp u"zrd2=}@ituucɈU{~:b l&r5BMr{`]y=/Int|i p4j`t0F 9;nh1^[0d)lW^. [JM-10s,!v`?rogg$08ѝyo& aamܜ;.7 nU >>y׬1լx3<פXɇ#lE:O6q\5G)ⅶ%w1U38u%yp -qeVkpaP2I اvn$ lکЂyK|e)ApUt1d50VP'p "+nR 'q{-Dn.aVc$ h hH=ӐQ,wbr3£"S(Qcu玢BrNރ}d5Tp2%-Sw]t`$ҎD:5Pz=wB0+t[E0j̑|[TnSHB\&$@U GD0九Tc( pBt Aw@R^|<8FqD>loOk'hpܡ{А">< fڃѴ>@mHTi6QBW9tG^lͽSW+5w"h7{h#ՠAZڠ/ Oi(fjNGp"Z0յ5'FD)eYQ~EN;o'm_ݜOt\ַt3(e@}Po<<)_XWܜ#(Vg v d0MHh7+ÈE*B3.Z65X>|#kek. pNEtz\~X5 ET :p! e A {RYkYt K iQ,pU`UL@RJ"yqChu \ƍx!4 2vTiC-+N^pͪRC+f6FՀ`G)Z`G=33% 'G̭ps ODoc5i,;=%\Px>^ uu r[{pT'"՘'U2Tw;Om`ݽK]/1vPEGEY:{ud5h'M!8c*VL ڴ+&!nX>O1v3y*ќMooBKl0ViS.Ԓ y[QvcUvxK!,JJcRi\N |OoVjfZ*&s-6}0SW/"ČިkdV؟lIbP9Om`ZJP]qk1[kj\X4ȅ䨨їM펣؃G7U$4=nyq|Y"MnT&We-BZhk=UޔVtcs<󂅊_\@gT6}š@Ci%}RGxJx;*}?@Ly+{c81 X`kun0/裀IhIJܫ9}mP쵽ߦ8tr ta%| `dȽ:&,4Mꉓ# {%kdLp~Ljԇ݀PJ=d[ wn_:jj3 l}_TnhQ(^O6y/+/g|V>`hEe,X Ds&Mx-H_Ukل=bc RO1=B<.P,+Tl^P1b0j][KnUAvyPcfJE0cA{J9|GQ U_0T1s[Sy]?ݗ{,@er!uhUJa^7?GtMIao";8kp5DkrR3f%[@f6gB1+^89'HP "v}FA1LNY *`N8r';p"ج0v.WjB/dړ^40͌Q6Qpk׭\GޤEG)*%Ѫzv,bi9 Ky|7T߸櫋Ey1$r?"5Ue\aN\!2E%b᢯Iv1XS%P &L <M΍YVa~ OO*Ӿ.AUm+
.7nn(ZX1F SzpiZ߇O ]Z>Qs{i??J Z9b嚪dH}YW';`f ^ n$Y׌Iw\8YVu}Dj`-8V!'N)*nui"9]cjK0S_FDADa2%E>*:E.Mz B֔>ahgiJ}nz (i.Ta٧aAA*}pa>gX( V Jijw&(Dtz|r 51SߤLTlt-\2{CLw)_^elJ([cdhhb7"E)YsPGcI{p2!zm7 &A3o}Βt+ڻ>ŽTvɯ}κ3}?*oR6Bz8% BQwx0+>30)lْ M+M+ +/ᣃxmu'*R#BUީykL 5ҡF[/ײ90' o4t,0:ׅ|X,1<ldbN_t(YKo%h@4c@'.Ax1g7ՄjU29+k V[+xޜy1y?^3qA,![TPhgq&$!4Q+ƒR֢/NPTWlN<lMהA>+||<nwd&Tdt "п%v5Xb6siĀj+Pe'1nhpmD#{IRmRW:'=Fگޞ7Tt(*bsɉֲlq @r5JWcW\5 jGU9rֲܳ?Р4 cFHR!7KUD.]Kf&U`y&5X^GR!bZ-rۅ|mlS`l^v(sisb>!l_OGKޙ_l\:ѭagr$&Rt(W\ s]#J0[IƓQU[~?AwhĿ?M$Pf%bG" S$탢;q=9ƴj-W c**Э?P:S媐BDUW|~Klj2_!7!o+?Y6AZ3DE&Ӛ]1i4JvN$3g&5m?Jb Т \.52O*+ e{*IZWkdp|d<1aR,H* Y!Ku8ֻ.< 7u M!=|_eeb"hm~ztHOMxi;zrRvi?;%! u0gC&%K&ZSN*/'r!GcTx7C˹`"r=Ǯ@Z|: WZɿ?:13FoNwӆ\87wR#duAǩ;8DC=%^w˗jVZNZTԉaHFK L_}CP*sxth'ڸVk7[8nMz/JPyw<:mAvCǼN8?)Q%ѣp+ j/̉.VXҺkv ]cc0ČR4d=m]>N+I򞽔]ʑͨ),{l 챼L~1*v@,> vcѫ|n5h{"\0%֒IӧzxD$bF>F!p-m(xzYS)vc"ɯܱ;r!k.P֥:v;v.ش/fJefwă%6PFů'Z3:rt$_r RM38,V8Rmi򋏔GD7eciXt=Ep)~qO& 3\ cZ7CxƙO#A/*$/fOh3 l'U  Xc8-uz ~֕A//b `$.aϮAVˤome+`qĖ۹7NE}M^6J:h:L8QR}Ғ'3DKݗ px5wrs,vNLZv6ˇ"C(\}/I\;\S(PlS՜'30N#YbSJ-ėү4FA(ETRu6ҏ=*ܰi#ۙ4Uو~mL=㴬[OE> 4!Ǚe$ix?mH~~4X B2oQͱe lr?N7V mH#= iguVK~+{>26@\&[8|'U[tG :;m(. "@Hzyipb8Jj|@_x؄O]ovP-cPڂ]^k~] +5o-eUUPzel@)f0Yfzm:Jf%v!5تeԻ殢l %\z]2h{ RgEArGR@{P^w MAtk]T>8z<ƣgpKL_ c_1`4Wi$w<[R~GH 5tm K5#wM@M}xAH)6(tuipZ"`.b:Hti܅ABx<Hs\v6 B w3zh252Hs\_ϊ Ic,w<>UցܱHuŠ 'Vr Fƚ8s)&m^" MUkg1gI&G?5Sl~pJ`mPPW`rd?O+,Eȓ!,EAjzfRExne2&@=47IEit/qqm,CUVz# S剽??i=!X8"92m<=~Tbk}GOUǮhF'qjebG 3m~V ˕mUī 8=9/S,I`!CdhȅUo#Pϐ"o \964XTtF%A4N`qog {`KWWwY>?+OEK]l3N{ˎWX\2YnpM6xe,nML c.[Oܛ,m %Qv^-P 2R0hxG5#I <&8=vʆ}sxnm|4ɠa2RH_+V0 uri(覘8lɇl4!bOSeQXNF&O-0ai|`FNL륲g/y?3:w:\)Gl(`(!$wH6SI4mgZۜ nܖTGC gk289+R%\ʣF3Bph OzΥn!xkǻMtvs1C)7)/G]FVW]A }SI QnO+iAŮ0n{ ?SR ŀHI!3oqГ]Rnwl?UN.粮!hk# !N[ F~^BR *դ$`$7,ҰlA~^]xې}"K(.Lp1Ow{}CΤ RUL?仌VZp#s W?p!IVpqn8p&=`24ˆїS$8>hCEZ "bG Pm̧2M:Ӧgtp Fm@,CÕ>ӯj;5q׽GPGE%oVMmkMDe>!mpt?Ac*!03P]fd8. ˩7O]5 [Fypۉ@BPGE!TXV$>:sGFSEdr pA:e|_(ښyi`lCš:WSV\/:i!O Pc(z-\ƺ^2{3~23;B KxV.D}0\1C iv=:w}qb%|+Sb}S}؜p&)o8N#'ʸ'#VDuRt6A 5ڳ&S͝u &%13I vE XUe= -XoOV ~2'~qo߮dm)J:jJ_o%('o(g{zT';7{?qa68ExߚNk! O0Ȧ ?wi0#A5P}r{lU=7Z'-P\POGR!SCSuY: SHynJ%ͳgѴg.gxfcӿO׀h ݰYrȑ &c h2vbIdv~u@O+OtWL_GuO3܂:usE%=|W+i_ĚDkmRbS^'dCZ&WɊEڙnv̼|P`tŃJIQvCRLEGx1,* 9=#dmQ"@S-z9 c M)L$os>_`Һe&3EN!hvنVg+WJDK}6\}Û@55, l<I!u%3nƩ%F݌.GҨpT&CuAv2 ,7 9bTR*8o$mLCיE}khK;@^l&隡L{8 V-G(s! n,wjK!F:ul"P宼Wֶ +L\|޶GlQ46w]ߩbOD(IFٹd u`L a |&< cm֏y6mu{Wq-eB^_DෝЀ@fp,GFel6̎_ N"D\.~);TPAGEjV2g0aAE;PVYt5aVZ*C+zM6]_y_Z1]A!eS$ 5FɶiGfL__O:l7H\[s =Щf 7,=>Qdvpud5=JasUgBl:xUƥ!I>ĭ ?hEPwo*-9Z\[3xqC*7S7]=V1@*؊Whb:tlêq9u5֏ݸF%_Yqɱ4)Zc-9j WKZ扽S1G>\k2]._PH0 =2b"Ṵ gWSc]CP] yHgu"d zYdm@Ӟ_ co0fQ!t,*GT"ם{x#!GqR{(S]KAW+'Q{B(r g4esE[$9-ʸ4 "--k@lq?!G@oh2x^8 @ Z֜Aw .҄M'a4=)KI Tİ9}o?2 kkM.bSj1ڷrHcDOoTab8lu0Xɻ ~bҮC-NR5fR ڛgc9z.Yڵ5sHS$g&`K*Z{EOIIbÌKjb>#eHllbVK6&cF"0?O%4FS;]ÍV~ѝ%^bNjV&,m*d Q~o6\ڭ _sBLjA|$$E!x lj]}/]梕 .QDHA | @+o7TݝKmS-l$1X^#;6L "}ֹ#3bTT<4ӆnsA}H_ iᷦБX:36'̾Llf. 8s2H}dkjőٓVJIL}O26Cx/%ݟ![+=a1zaI߉@Cn*?ze\%sN!;6 .iuWtt2/TH/)3<Ĵ.H50Im[[5[Ε5^D3а7Rq[`u[J5rSa:x?T@XLs NqZ?:8 7].,u}7Ϛ}6fgsuxITNkySdž Ic4z,`B۹h c]r qTH~!ћE]3F]MtsL`%Y#KX&eDb;k;ə/|lĹZj\E.NAaԕ ! UW1n9R}Վ\cR3M1*?rV~t;P *ԩ骲O+9A"*,?xL1ߠ>̰|*v0nL@" Je~ e !H}%tRΌq0#K .2t$| 㿆g6$3ׂ%eEu0&@ʇП pX7kO UIGUzj$-\H(SV>,KgTAڕJC6 \)/,%|ϭd0 rd6oHg-nzpٸp1?*%*%0tnWe1s9$jמKGwg+tUj? i`و|x#Z@,߹M<p1~+3e}1o]/TD6oob8dIjKP [fs㟚r Na ̓\8UhZ\(Z׳.ҫ/8*B)osc֖b|cV⪔k@4Yβ|vmI8: 0y#}W@ӽY:дKI+ϻxXJRdPDI\@Ǿqe2qOcutv Ŭ4X2Uڛ78I7Ǵ?SӤcBﰩٛR lTРy`DD$^Ę>LMuH#&i]8vᢉ%lYlOtNB4Κ Aȓe6/,8(x/a>^H%;Ϯ#cjK$:0ĖM|a M×}k]&ƧUYDuQ$R`^\ɃN`D $?L]$`ѩd;MS>̊'p@\B)=f`]޿&ͳ,ҭh+B m=<]ri\xHV$Avx7@qѥ6 GSsHDt:jG,{0Q )cqhg3(ڻ n_]kOޔK"鷞Y*96"L*{PS\.-M=1x;;RwP'md,XiKXc&=a!'į{u\7X0# DHZ>lUNXo #\%EXG=\xi=Tj+G%OaC;xh3 ]~#.+^6gP\`FaDrnߑYBR,;rv)[QUϩ.!k͑N_3 06-j#PYw`FSILyI'Zyp*W9R}d^Sx8Y?Li?F :hc"c Zivbj`1q'j-c' wFkC3 qSo ue>g˳Q6DR-vR<*FWUmm۲ߺ&};[:(BӰLZ.ZPhk+wW-[95 Rc)Yq)k فn+'rEͪ:u[n=jPa4t&Sl2?%C$z#Ft2X2UjMJᶋp#R@aȰ|+#v⃋҈-8ռ19\O$+Փx˴OӑA9MA3UMRzc,=-b6Ɋ= c==4 Z|2|LZ4ų5XouU[ؤUYb=U]\_tZri ~\~N]Njt=r90-;(+ć>h3 {jdžb~k_x9Y Ǘ/3 oyۡf&dN1dN 鄫.Z:uf<הĩ|D(s`[*jEVmB@Z6LE鞈<$Bl{%DȨ9ӄ+[_ 5q4`rZ &n|*p~n _ks鰨ggU ^c@;.fn w96 Uv1B3k(7B(-{R.lz!j9Q_ w`IӔ{?_z#ݿpkKGl*a0!4dRi{zqe{}L145_z=0 6\}(5*te6Tuţze*!rM 9APv#Cy;5*0ҫBy/ZMppI^<"̪ۻt1Iꓗ? R~ n%m39G_AZ}U& \a>0m#Pj?QrعoiEޖ@KhGb"Ò+JSOJbSh0ah,|q '8 8CHZ9tO!/nB.#x%v1{}{fuu+D.V$2h"(H~W[Ȧr>3 |L\e%:r^[ D%\m'5D_~R|+v/ LN\C<,$詸{#{2ȍ\ A NB^Z]ܥP$0˧l<|vTz):I/FY@SYvĻ 8H[1ff߬#LP zD/C(>#<%!v翥cHl%\z1v.²s:/W bULʋIVty J&JRxV.Dyϛ=-iRTsR6;Vp$Q[+-CZ*dp^R3 j bfn510C<5P;{ bK>/oQV#x [9L ,-/BL_*c56(҉wM/W+)ng@/\^&@8O{?c9/"vWnk"/x_z}?W+df1'_N/}ۇƯK0br yBcۈ^pNh2^CK笋HMrWcnAwVr-#_R;.F!S'V'b1.7tM* 6KZ|ND2ޖmtmt/-g#4<̢|-s*ljji dݒWom\ЧfBGU%idRĸ@MS2~ TGW \k ?ڛlY8w"-;0q)vsM C""[\R2h|$56P1=LSC.3TLyFςܔ-GIOYO&D68ΐJv6wMj BƕwޯNe8a(* nzjU&yR߯ GTvh$N<>X+K˗IB/;fa:ԦsX:ʅ%ivӵb]pB/}')L-˖B[iJwk-u/^p9d!A2@yWGʹ}B>yT 0!J,+g8'#h5O?uPО/r=uߕlRƴ 'PXu3θ_Ò^6.VCU;hgɤA2g3ٹS>@CW;ςԇĤ$~wrktx,i‹ouCEf}L|}\ćA+!PZZ?|'QX;`o!e`;;P<wޅDϤT>橑|~(̥悚l7ld3Ԋ"-ն ҈]_= eY0˞yN8 >&s; o.w'+&l{9"o}~ EnA}"}99e+٣QۛTA^-ܢ mW4DYkQU+,?ǣbz!y0q|n޵9S~}51jc;w^ЏƖ`?).{qN_Đ\5͑yE| Y=ۄ(W静o܇ʲܤ nm;#=!Ic4SDSgnǾHh^ԴK;Hn,pB\`1#BMei͙1BNN,)ęIglq;kVf~.B!Η&ϥդ ռA| q֋}柞W߸ ĢE n 25`7%$$ ,> }Q$gPkiM 7 FsbSJb/|{3e!5vx+T~尣 `Ġ~o%U2})nN79yjljo4$X*DGIV~>>SGƊ0>p4Uuj9KrDg==.WiYkSܘYh@ᅕRQeB)֬A䈥H7Xѹ6m[tF`{&yB[ b m4>bX>t[O}K'afwwԖ>ƟP=ze߸"y5w/V w/^@%t3:HGOY)f!CT-HN2 mb'EjEbT=|dԽ14U7-I>l:rB(h(<PPo3 *c+#7ӱ>SW+ kU1>]T"fnZkōX@պ&gn|Ofimr61ЍĻ gJڅ"SN0(E*Lsfdg~6.Nm܉҂_H  6t]n7 kZ鍄\!2LRP`|ް+>E-!g٤qv̄x i٦.@ɇ]DoruςC; -';\侦h?qr-uFܶIS#[YQ<c]ad|&:@9;S&\Y&B/::i )<ß5\D0İ u¶oZO,]fm}!$\l:U\GͧǺS|PzDHYHLL/ ׿BjQyPvū3xבa՟>/,eüp$Ny.f1}/C?U᝛"-}M;{BXKv29-6{'o;k(M!fYE R,qp4j߿OahaK➐m#sAOƔrl*abX/H n%V}S?z#m+6.Fs]Oo{m+GUQ@UWꝮ459xHikIxG=4()Ebȇs0-3cE=%PF]BM m(".Moz(Ef`lZ,KhjNjSe$ լ̘;~Н`,u1}՞fݱnPH|"_NpNmC@ =I[b{J61>f䤤nNs'W?c f_5}ȟH 5hO!P߸oc7v|f.=ЛrnǷ8VEFEAzqxC:r˫{$ ]})I3=&ۖ~.y0IK .0P>fNy1:5kjr4>ųR;ED(S<pW] |@߅r~kz P$[dg]p=lGr|2n/0ɶ,`Xxϭ|]LL%?&Z]sf<s ~bn):ifHB(!7ʳ?SI vm^)@(U`Qmd o1s Xy&<@9Ӱ&v绘ƤpLPB mL 1 ̣/䁲8@U<݌R mQT(JNr‰H?e=|>-]4Y+Ƞv@5,I7 |f<~$fO}*)HQBd GMbCkeAϏh SG^DkiUj(4oW eśwUnb{&wvdR@'1v\ N#{:R 4>W(=Uk<%nCXz*<EIjXl[bM^_nmzBp!c[o$41)1 _c"t+~T" 4|jl̋/|hwٽeO7W7/GʊSh f)_wo'mv+M=\$ 1aӅmg 9kX9l&Y80 HH+M^Zu5o,75d /] 0ɷ1د5Tߡ`Cp`nL -ԥ]Zp°zuSC~"RyΕ8[ 6@TA{B+'*utk+T`'X%? Q!'LU/+iW58QXsk1Q̬u)%}%!~^yqN5:}8:;1 Y1EpQ6ޞJߟF~uVSNJe@D'gHIJSF?^5<. {md_ye[e]j(=#tk 9D9h/ d^ExDЍs56~8S`m{]t?BGř?:Oh~_euz!m+BLITO$ojGqK#Sgsr"@MI%4/tBNgxƷqrŃ3&W%LD] j5]Nq2 x bMahّԎ;RWIa:t[.x[|*'B[sa]Km`|8ŒTRCnPYu ˗:(#1k5?%/ZktI۴wMC[hiTGt6CHAssl[׍YQ[rB[i~~EHfi'{) W ~+wUgxE=l|Q1h5Rɪ5sh󉟐Ѫ\;8N Hlh_$2iՖf\RÙ\K?ĥ0iK2yazzrTI$c%3Rm_ʈ&b{q~yS=5ǀ-<mN\@1w .+6Z?ӆՊkD3tQ¿z>(B ŏ/qvLy3ى"e4 T0}OȆqN\p_Hӣmyoef~IH MB(6 mf {;e}^[n(2壑62Gӿ#+ͣ*?,~f 6\(JAW , #>#CH1;rN!2%. PP}ÉsŒ:M,S@㓪\mFQc<)=yފ20W{C/1M"`hF'm7=$o2wUQQ=mf(rD7dvN ydW$G`GK_,#0pQ)` Kzx:Ya-nn&+׊'FO׬0LrDldaۈc fFj$o\gsȝGsƙL$\&/NDOfldF"yL -%gb*-};87+ф'GӺ]Q}%N<. N,}Qv5EjYr/uU׽:%wo!=-t\BqAg9̎wP[W# O:'2  ) -\(7*HEG2Ν~'SrTbGD_)CReUp*,'zca#ʹ1sa%Mb|=fpA; pQ*%7!cqŒ~*Y/H1IϚ-B%S iQ+nD[ `7®t[LR^P r)FPڞܱ u/l-9\wϱ<3E yyvG=OYDQ6%"hPG+m6)#\cz ,B%D~JX#cx֠ ɔzO.0.{o'ieɟTYVeI7{mÖ,$xd[L<ņvDTj!K;Hb .Y\wKW-dRqѕn,:%}%qdlA+dAym6 MFe,,A_Z]nUܲ+A%,^'Յl7t J|Q_T!+PûT `2Ė׏CBh|QpveJdM#BVMPXCmh- seT~9P~)5:Gh[pZ#`OLJuӓ)m/%%{yO<.jS_GaQQ2Huik-FpkQ\Sf|2O߫kS7g ]5DY0"),i.9G?VzOe 6YJ6Rހ!'Q'Kn L=8V_eTϨw`z.4),U؈3%mE*+e@tF?apw0q(BḎH[ Evm fe/IƲ[V׬Q{eeP{v^< $>1[A%W i5=]cIF὞n:_HS!+m1jfjxe=F:eloX`QIR ,~#28}x:Y6͇_ {eisIF]nYʬLޚsEm9p%[>ZM Q@'SN=8tX7dbk?P"&M:!d lZΛNmLq7~. $҄G0v=(T"T$mbR%M_,.V,0VUI` `Erm.t[5 .ΐ3l n)^nT{(9#y5kw+l# G48]^n/~G)F׆S-U:Ѱ+pX:^HC E?W6GyF/Q VׄSB.! X fJqALnbj(R%=GYg{. 8V;ix/9E# 7TYlxdlB8rk%=fcq/e^-bN~@\@2ORKS7f^yh XC3a2,*yM%-]V:ϥdl9ND7c GvjE̐W]#o]QN4Gww# DT^ӆ & @N:)}RZXJ9e0Fs㠮 [ VK<'s,#;jk`UgR1;~Rw8mMBL*{tsSN3f:Vj>AEdt65*|y-d^5@dۑ@*[#}?tq$Hƪk>ӓ0++C* vbGO 64lI0 Ŷ SOj&.VX͂_gL[e i"Jw`B>TzT ,pib>,U(0 τL xήULmGU.y>y-)>/zUXܶ)*8bȨr(pz"KNJ'a!) rm5϶/J|Մk6֬K( ]k#DXNR=yjƞ#v~ܳs(r/8@;.}`?EpIEm_,+MvyYVzӼ`uݺK\5;zRt?:5I%3c9LF1Mgنb#~GvQhiJd ^(J1`:U'XpĠbiE|?l5hXvf}ZvK`=Z,~x&ڦgY1F55V W q$øX+:| GBNC |iҺ񾿩f4pr `KW(g.9뗻L 87yx >iӖz4-=%[18137K7YD5 uqA0*.֌0"RMTКY 4\['6VLrȖe37ec(&jS, 1Hn&\QPP<8w)|,R/]>g2 [5e[7A@`MZOո{ﰱHp=v$Rzjiʆ ,̤XQIĥ(;f%js2Q,Ud#L 4}{N9JyHVBi/|Mi DxDwG.Rb i0U_dy_z W@M%~N౿B*ly]pBE9(5Jvh_`bbCR'E w9B2N{4]r%v@'AEC̲Bl@EuX7vNr MiM翷g}b%̄g̗u0eC@rUm*'4=w6薆\NC2$j[yr {}}}m.vV:=~002@I"pżICQ\ ^RX}0Slȸ4`E<5@_MTԷ񵝤{WHxe(zdp ,뉾B$=avODF s(*FL <=M$d;ipRﵤ@ PܿdEtxBwn%)ep&f i}5 23_}_0xr/mEWB&EMLtkbLlk+0b,BQ5fR-dMk٧<>jLB/8 J||a|L=?^נ(Bg"ßlYIF!אOb"Lr" ?~:RN?t1C DK(BR@BL&Ǝ¤+^= ΒV:9m2ư.tyV=z*m,Z<7^bn%O{wP#"6Ba6` KE)ۆ3v5`ZF.NW|_BVG`7 8) F AUV'H$cnj"x֨$̏}9Wk1Q4i'%صRݕvpC ڏ9]tuY^^b+ ̺x%fURGW;ldݾ<>>|{ҷ8C!" qVʅ`_ؓaADo5 RuF4{Nzw߫q(*6>[lYЃ&D? Qe` dQMM$}so^EuI%O5T9 *(" a5X#,>I ocs㪆C:DlFBc2rhg_fS_E*՚{ZiN0磙 @Dc*Fn͔V"JEI#<^pR4#-Yn&|Mc1L<|h" g<< /TxZ}`/zʕYMO?cVY Wv|8JIYG~H3B& 2BFTY9-35sHf8{!4#_Z@ 8KE\pf#;?'yUۖ O]٪v ZK߹X8FT[St=I 9I%I|XeZz:6, ).y࣮8?L3dA`ZgC߱ wY횘?wɘ#}m(=l)mG ޔUKJ3Xo uwe0FΧgÖ$)ekz8y&#u#;1C<H}ʊbj;rKbp/`{;"tn| Km\"'sز@\gbCF*cImI;t+:Lwq/@#zTfabG$# (: m-JaPȡ]"X 04x$[PWݳgُr :DE|o&l"qW`Ktz`WjgCoτRlI5+otr'2M?γ\&Zx#"h^,nuo'cܫ x&(+@fS 1*:3ޞr*caԇ&=F;rخem&64~lTKhY9- Yd~tP12^x%Y&Kyp$OZw4F RH0D.$yæz xˁꭉX&e59"DᇤVo^ 8PEMEd"(!\ +6z!{``F6 /BcrV*\T_C)PL@chRNt&U_荢aAa\Jљ4:َ:Jɥ/Hx>o$?U" jT33:z3P |fo)k!~5ol wM:u%GOZ!S#\~޻8tu0gw@kY%̋&&Tn}tp? v[c\ݾ,S5Z} +a$V͍yZ3( ,lJpuA31&h4jB,-'Dw]B.'E`fYF\:=*jzUr$@>bp>zT~ ;}"'PٸZ-Gz%W-#O@WxF1c2pDf{2iۤ2* \ĹEl~̑juagzRut<#ag@F |/3_hUӶݧ,O0H}rry QP~}pwdb/CЮV2Fm&)$t lj2Q}gR\` ,&ËJ,`0 h-]ef||w&ˠ2Ac5K4P 1ސ%@@OJ<}f'J':P%52QjVmޠk6I n.B$.+\tJUF+]OQ_sa`U>dO:CW`E >Oԝ2W"3pe"/2OShs{=|dÄH0R^d,55WyZ̼ԤxNPU2x$ @eQz"I^]n?+P")%.D;KgH?Pcl(vN2tiW|5v򎃇%N7tkHSRz:Ze`fR5<8b(#F_Eg)<&3E=ݻ` oibIkXa.IgDNr$yaQȆ  /DR.1fh f^(͐H P1*K#֕ qG0cj6%ڥ}֢k &CXW!PwR%AJ|o)z~fRU.R7\i$ e9_ 7d򤝖E8z9ɢ u]9|3dQbp߰cUbY#I!mq ri.:(8> 'BY .oKfoG 3<s׾>$gMD$ݒAjՎqM1wzBC:g ,T."p%)92ފ? 'Qk Z,ّyߡG?}V-m\JHִo-M^:C{x GJ3¡C /,f212Ub`Ğ#0 %/4;A<& xS))-FaV/q.!7&krVz*RJn%F0~<K-Gz;!i2uWh|` 2RU mBL^|#W۬R[&g!{e3{ $!` P{vtFD_0Hڃ+f;}w 2|tEd 6 "n./{O!/tO2ǪHW՘n 7*w]f"*{UCD|t$A!p77)]; eY.EH|sp ]p!ɓý|;%RepHBo0^, kbƹ Ϫʃ㏄IC-EcS%cA9%?Qg,Ǽ.p2Xw"ճNߠ̶ tp6ReCl (;Abq'ǔ\e6[wg< *!n ,-IIGmQF&<:[E}f0ꁄ_ v!:u2S}Q62&5rT␊ב7&:laEYI\VPNlq[CCxs! "x(1R: >K`cgq'prASmN0p!\WyةH{jlf}v4K(iQ}ϪjBSQQ{8sH!5CmdNu3$%t]o,nDdbEW$T`wQߡԐ<P5 PB4pƧY\{:=b#O ˶*GDl3 3kU#E)%B^΍8~Ȯ:ԛdƄcqdw^m9H_#˩0bWW[Z9QSs#)-P$z "3#;_o{G1uVR #9l Z) XjF>}dgDvti*0~Du,O&Eh.A)7;?^oﱏ7B fܽ3&+^1ҟ(٥0U M-w?u)?Ep=wt-Үu~ʤӉy =8q.sʒC wٳ)uQa]M`7 Firc$`uumZ9(6!D}!jaHW\#%+0}l&5;'f.kGDr#q-Xͭ %أM0Xwq0J5@81&҇Iĸk Ƌ =|҅6)˽v$h[d(I4}7Vג0o+w ~SNGެ"YwDVZic09sO,jhbbޣ$v"}>~/76fV1x08BpNG _բ^i@QzN\ dڠ C$ μ6p}N0yԼ2ͺʧran0R/Kwڧ'5ᇭAAGUt,g|j6뽲ML=$μDZ B!^OLo^q mG-⣶|Ԗ}ILqg<ɜ |]m%&,|܀IWA %cՒVyx`h&+= ksZFP$m5"Q`$NFF_m#DusWI{7YaǭqDYnbG<_(t]hq2V%{:<3ۮ$d< ],N0Pwz"w@ܤ'XgY! <1M5[p0bH'~2$첅w[Wm%5O# KX9Om!lKSf@r+abĤtLjzI;T.v|$ X=[Z;;8R=[6&װ'iφzTOfdk9נE$lUf E3-Y[Łq谧gcF0s,d7͸!爨rjtdCۜ@)A1-b6 zy(!gEȯm WʑXE*X 7;u@Wqb36('=inr OIPNY W@oCANL#L7Ax].%ts(ӣS/`K3ﰊrˇ[Vy nn6^ρT⻝5#[_*]L ,Kqml0H Xݏd`A`1N=:aCd=7 g#l2CHFS)[6N[倸nf;l݈Bj+D Sc袡fUiX"=lQ׌s1d]Z(  Fc0.h ZGg E^kJ5ֳW3 AR(]+bi).:t_BD6R3GVW缨mtK ~ ?ډ#[%֮?@5`2F%u/8^ (}D0 ?!8 gm)bÌyi"Jd*!e5(pd $0?YoB@Z+~u_3Ђعa3۴:ґ00a{O<!!("!g%Ut~v:Ya<.U@+JͶɿ''+*Êw_Kaq4ȕĔlvɎ"w4:8uH'Ss,W"Yx`RWΐ*'͹z0':|ID6>I()I5X}B~"1*xE1$)5B}"-鑳- JUydIA~cF&;?kQfmX衖`)n,80*<3"F?o; AWܺ@<'y﹵/WLJ4Fdiq2KJL/3]N 뚴Jr%fJ= +?KZC3Nzd׭Y`bkO:y#{7lCK(qτh~w[9b^XNO)8(E"0 B e2#W-LW}8ű LP4;f19zz%|j$d9%]D,SQh;|/qj#d&w#kfٚ@n8fp_GW@_mE[]dlfNݺ# A~a.h{ӤV] ƊfvKUn+*R,SvYo?r_i?8_!MQk65z3v۝E Xp3R#X" `'c`,/ EdX~A"_|_ OÜ #jǕ{ޞ?y`bm*s;LdnxAxȀ~-|Df #φkFLVr(HzN`m x08J\{C~k,slk]W μޓ,z:YM-c4tFX 5C4v +g/cJUEACoCe2%dU+ x>^h+v+9_}Њ9h؍AQTve6V>.7,CW3鰉@*ΪhR܊kȗn41؂/$d|K Z#bNԑ,m0-xe[κCV,#Mh 2 p:tJPTǢEyPu2HD"`dRD2˕j?Z`ׁTsNTv,0ޛLU6DY-щ)xKU̪w8: O~AM=e dPDNUҘF.ѿTYo'Nk-64ffSLQjo"s\ "8+4f%|8bi>*I|?BX/'$2S5}L&є j\T+(S֣ܶ-4U7 ZkB(r+%O|Ww ^+p̦i' |)6' Uœl#ueɌ9 _28bJ{Š;6ZJ/)I$혎By͏LTO>wnhFUc[{h"tz H-)Mb-!kQ5hDnrݪWYc O f7xuE%&ͷ-w*Iq/&~ 0q$޽qjGÉNOSY+9kgD+RpOl3]\hο`Q%/7E mb aF% A@=J3>NKVW&/)Vځ5s1£ j´K~ *li}.Jl|v՘ : %*LT{LH vI)|NTZ^CD"{I$ZigY3s9[%[oY Xbݠ2d=(TX<&ɣG0 }ZmFA&$ɬbTٿ>Zg 8Sy 4-6g0|K3g8[sn4Je_˘nJEy+G\Yý, i aļ%Mb+K>%{}PB#ZriMDX1JcgzjUA}^ӧo/sCt0o7 3EOٔK݃BV`^Nl~ě^q9)īh+u<џezoVB*Cy{l^DaKLpu<k4!yS ~8-l=34[00aǬϽvtG(RyKXhM*F ]ŠZ?Lqc='_uh=$߀<_-KƺbǑ,^[/[uy.D,OLKUJ(ⰜWn[k%0.J\OjT$)0j'Ig8S Fs%?2'ZV1~yYscr^؎<gMIrI40ٚrpV%컎@CmaO9ZJ\+gu2C}q!ɞ af:m͡q싀[(yZj#SH{}\:E}UR8b&~'rp=xo_w-SЍx:=^Y2L*c F@"tᔙ6֣*neZi}Z!}-zAx* TvQh't/+g*hITTPˉj,iWw b @ED3l<)Kr8T=2EzHH1|d iva(eq?Ib r*f*O0`tYlyI:_r˭# q["3Q0wɞ-hљYxhMj ]j ˌ*6Ul%Cr0kvz'2GW3OTkQnT_*aBgKɸrp?$l ӓybVau^p4!tj.nTa˲nC݁$88u jQR0^D2%q wY. 'NBr'HxEzu-( <[ ?(sa;s"*18)VBDzP?m7ˮDZżLw"fJcT#x K Gp$\$}f<r%e'*iѸc"#ގ$n1EhWwzvrj|bY1ԭg,"5!,=:0aażg '){(U6 z~_ډt:ȿ ~5_j=YVB3v>:[W*۟^ij]SfNw:A+$. .@Ul01*Gmd8u/dZoޥb9U R 0⁴+LxHrBW覚2ʹZ>~E8M3DA  `=sUVG`4oK? ]k~DM &OH|:$ N(B87'i85) `v12h򭓖"qC=iy߫N8`K %x [vd'&"㭥)fFUIuI?ʛar5 Bin]X{ ;1o4KڦZ">77Q lwn%|KH5LX@KzaT !k5.\b0[! ?$@s+^ĨeD%<H7,=xZl% ɡǁqg8‘mcI!54m; X$5?iFC\ljVȆbպQkPҡ LޓHj*]=M7b{SYI,JPvkPˡyݩp9 8Ok=Q˱8bܝӐtnjnL մL$F ^FXZ.mǧZ#.7w "b~uAvL= 51]Сg%IK 4۵1ˇ~%+zJ5!sg&S2şxbR8g=j7p\bޠyL҆RRHIck*}@q|n`L-9JccFܤv1ԛR bl9T%O(5b'8jZ-oh읩8C\'<2h҄o>r"ٚhRϯLdƷFۨѾ+ ;4lMCПNrjOB_<'T6@?^v&JO=.JeĻ߽ CL V`_fㆰ춢%tuKmjт0[-z\MB<C9%^2ť%>זߩV@D_鮲@LGkpFt\llxh8ߡ-)p6U^SKhn[BP;k7[XcCm2 əB.M 53Rfs}qcxxAU3ٴ0ZӌH?v39Y;ڗ-'2 EϖbaC6ǿ%Ҽe!Q("R yuR(VӠ}8(n=s\?tRӎ4qnϱ#dsIn+5v;FͼS9P:QaR3Fg$\4~h2Z9q2ơs'5\+a~-15db염69Lax @lZpv{Q1S~A3ci'-^D7RȪ((*zOS·)WZjZbغrp @B괬ɩ[#|Zn&d`:4B^[H+L U84|ocvy Vl$@m24/+%h!i|z=Tא*?c3nGa\jqsQ[ma  *ϥʸqO͸w}Qr{f»,d%G w<7Fhn(t3 3슸6ع-E4y6=rrL#X_iA陂ؐc+[,Jy0>uQNs5 j@K[linϱ,bF=B?soZ8!Ȉ$j dXk}KQN~5jʴ+RܧGmȿ+JJMcYH9 Kn*ZZvO&R sr4o7ĎŵsY+*I憞)y/U y#-fEHgg:1ĶfCP+6cAl1Oy;;%G!dPiI6"Ւڢ3BC/D-gRG~ǜo%^(krB](LQSL$݈"Ȇz&ѝLs#տ9|"Z7t9J,bx2G]ePQBnYx[yA}Ϭ,'XUe=&ؾIU=_߿n&( 7{_RJ_M8 mP}G!zKZI$//bH~QI.7MD\W~iMª* 27"OL;nWgX]JBW*aήP<:?ȑaſxL~D|CP'8TorLp]Ȗk2@ܥk?gJu;Z7]Z@nѷ脣9j~@}E<?.XYJvPޏs0,22!&"s5p$>][ R~`d낢OEh|b_Ԍ:if<(ڗqd3w$dEU—tWvw˪9mzp^:~廔e0뵒?fG<: i`ږ^kZtE "։' SxsUVXgsf:R!'|98/tkp;?}u1vl4L!ӨCp|s@u{@ʄ~P+^w[rIbq1=0]߰4o Rs9q(ٍ'rcۘ|\_sc-g^|4y_wmf |ǠNbwFƐJc͙J"BɂC0 _OvWJ3ݾ}~bno"Es \MnycxDX\Vu'pvd+Zr4\j'Vߏ4UV)rqoW$(sp搲#ciǓY2!\VBpl,H0 Ix-/]{tJ#>RѸgwoxu^۟OZia!J]G >="WaWnKH ܚN/$}SY340{ _ y!k8_:{I` 5 2j /a em"~msF/]K nFvvnO/9pU@?@H@)ApH۠K'߼ Z$]Nf87YѸ2$ZҶwCHa6,5g~s H_, 3;D>pԔ;E!1"Qsv(sN__7d[[لXC^ <Y!s+Oi%e%,#D>騾\,uB95hjJ7#Dڮ!_9e%i*!}._aU0iV,֦R$ }ƺzJGKW,WStB/peCoC&>D0b[M\P!}ޘsa6_QsYQ_ h8s׍ub*`dVE @wY+" -W De " mzM XV O]t Pe{ީH5k2X7IVwNݏJs3CRz Wr彇[mMȫS7;f" fLI"B O:I B"VXg3"'*x~>?Y\x3)əȽ@VB=nH(w)YVu%AqGc r;h`}DwUȹKX- }0JxKKUk =+q398 KW@ՑD]mlĶVi<1axnÏap `}gAd"1ϼH5>9[u]lޗ)2rQ2F@7w59&VhC ! O6״˦0aO6>휹oPeIy.>>Hh2~pt+d#"C+p]W'S_As5၍ 16IVҩ/SHi{>֭J VTsJ@cmJt|<(qV[n2u(ooL5/ۥ -e>XuXrf$]6.^By Ֆr׭Zq&<߇RzS`tgLeG #u/-w 騃6 pȄ|y}g aLo`L i{ߢjߋ%U% lI!oԩaS]b+R91fq"jFn`.uOi*O )E״nq`.>A|=Qjo 5ۦ]w¨WE?3xC Z%7\:N\^fگdfi5hP9ySD' s'k^gDa"ˁ,.)`'rf8+p$;vw6Q4^k?SY)Gߜl'7?Fd7HziN,ٲTӬR,#<6Jc/PyP[U qk1kE.HMlF6Հ* sbَxqңA֤ d `[C{Tu\,}4|7x>)YY&+\tELkr]M'n S_ݫJhf([U? ]""~6 nvp#[~d35]ZgDXĦlaB{C4Y"JCf@3 H*Bj704 %ٝ]EoCҵ?̭/m 7/ρTBg*?r =Z|=+AրخK2T}rҪ6+P'7@꼖R}P! m`uY+i͒s/0'My]M4 ۷tli9A,@`URmC!Za'+WY-RDO3,S䉣"dSH]F= k W_y⮊A\&'Oo7H­ OC'~9 7_?%QL(ݞq?N /Ǣ]A3b㫅yN/CEKX7XT ގD.%iDďO27{!%Hr.F{(iLYu"V5^tY1^9Pe Le4(+$=\׭].Et`/o:㊉$L+: UEV>_銴&wl10yH*ήmr/pfrm:@uK (8#-|JE>W< Q [Oz" ͆DsoSs' FQP}d(zWXs^RX~jT1j.hFׇ?E%~TS}**2iգ2_VCtC'%F1A!h[.tϑ1Wpc,s@ mrnGli pጯ]-Xv<հˇ#rjD_Du+J#g8Rq?35>@p5Dwrp4C"\ WanWn<ɒqP:o$SZ6OF(vu}L>k­2^cd^ĚxHT( SLX0^ǻsEN C%qP~;`cHJ !GȯgvZfRΣ8f@-Ao}6!V3hIsoPT0\i~lN/'q z's̯ #3c!х(ˊ$=LX!v]H^4WuȖfDi$zdesMj\ 47y*6u =wYVnI_{&skOC /oxTG$ wl%Cأ$*6oFR0H=Le{u0O%+TN(bC_w$<*l3%nwDb{v!͋_V[$Kx' XJLF/Ì\oNe !|64mR)9l}WC pFGw A "3j$~DSپÁ^7\[?Fj8m.ːW~-p(N3Wp]l!L0Y,LP*G 7-urlf$m2Rۨ1&Q€(JzGQB,mGW燾k' U'eE;˞ӉGiV)Km%ZN:jڽ]:}[7|*P "& :ױ<h2kfqjmql5yE7X#qYUƦf&5T͎Op9='|Y2n'_O ىJ˘$QJC ,@W]jMEjb nXŝf]Rc͢Fy2Ve~S(C!PimqYRD72xAQ1X"BwU%8TH5T>[-8 ^j/Sgnǭ@ jPi+3poO]"voA=sm09V<תj% ."ԑ` Ut08CZl*@Ku@xob\"FP݉;#R0-5YHL5:|Q=qEӖcM;TO=86ONr#9úl(i`C|b/H{sDȩT-:[|QC <=%5˲#l+70dҷ[7ãXw }ẏ!sK/Ĵ4?_yFopb__$Ub,F]H_w]$cEyI0eqυIN?i+h.vVuVNj#8JPEʅٳp3+7m] c»pܞpf BP TgMx׮C1D VmFud6߃|7x7OO}c 0[%N͂rUri/_)(_ Qۈn&l0Mǁ-4dMGP+ w"-rDhkRu7ipGU¥j$J+pcM4T2 =fSޢl Di9'jނUH4l3}9p/z;ʡՌ6n7գqVۥhnq4t$OM蜂بO8U#j h&& hk%Y#NK+djS9)D?HY~JGlg4m y-sh12zuԋSGʗRoXz.mg|}7v_/|M%[7҄@MDH7B,vT;\͠eS*C<Լ#,Lke7 EL pJ:)Sl.Wu2#dd>=iY◭rL7N}2rH!583W 5t@#fp\NUW!CQt{wxxH>mV2l/YKEl 8YT769i9aSAhB QL س(t,jfiBd,m5&o4<Tz*O?{8D尦uh1RC=6qevI"ٙCe3b%f!K]y[%jޓqʳ&iY@YZd~8JUҭ~SnE s%AfF֏Y@|-(טӯ$cҏ,sM|6MCRDı7W>ۥϪ Cҧ|%_|'r3%9a@/. }CŬKw 2z'K7߮+ xy4y(0 jt~Mf~ \CRr olXuZ'}Ź,A={uGyH7?zJ(5+6O9C#xtM]=Lsnm eg+_G o5لl-I0֨l 3`*6$qw _$~wfF&M:۬. jӅj/%nl~d^:>Yzظb| d%#.w,̐oy v@6mL;Q-V6/a_v$U%׀^\."~W ,aĒi[­"5Z2wґ /ڑaܷ0ȲyBJvя=m[nb/>]oӀ{ZO>) S(eg5f`32gŤq(PϾ?0/ޒ [u"@f+@ %RA#r~bT.L/% "Ŵoʹn4 oOWTûA !{7CJ1CĿ^#Umx.y M P`|EC0R&N˵37T:vВ6m-W`sتի,xȜl" ;}oe?_ X8c0l 4U$ۋ Z&_*(UGib@A1 /ȳfnUK䢩僥5bФ#E⡾[wU 9.x#h& Yzdt/ wt{Tc[ATϿ*jҩ3I?81 Ո~y%]3el,՛qG±nk蒄_HXQNs_k*Aޫ0^ nR$H 9|i\v.r|E߅eħD!=cF8LţIOee.sӡFٜbf >{繴13&HBn6a#txc[ E z:,*C$=ϣIs4Nm8 6 3oB0N#Ph/xhu}nԖ{?u G{NU"{}O`Uٙ흦)IcEދoជYbՄ*;> {S eTHm;Y=3˺?om`~ŋ5O+)f—y5d7Ъquew?<gRr(M>b?޶+,%FζU-TZUq%>A,A bLA,U?hڴ-O~Z*~6[ /(Ujh@Y =1RQ8+g"wfpT';4SߦPED@˶_Ui;P8ұO |9 $ULc^=@X[@n Mk/tawq@y6dn?E C>`RV.H|U&+`>^G#=Gt%[PS؜9rf_pOJBlNBOVAze3r|6!,@zsJSFGI,Ɵu Ik'n נk)v!>R0tOtu\j7X:UҒANU4B|y| aȼ8F-ӲXAwBK04:GaIuΤ U]67i W&6mKk(XAieT ޚIJT(ٱaڻv9ж((8(^rg5pn R|9cQLBtC['nw,v$fhlOqa$ʶ[!F-$ؘU5 ցܮ@Ryi`~+ghݝc]: KPv{'ǭԹ?LJmiv!|/TE\ X5VD'#K?;0y3↾e.~(]ж قlCP|? _{^IہDD@!Zԇ|GnUHWzجwcas5<L#AVQ7G/Yz} ׬nrR+pcޞvdPM d"@(*|VA0":˵ᵗDkɦg=E?D yg/D-~_,|I4C$(ߊ_kw8E9Զ@U?g3G,G'qme6fEڞseRF c~/InD*%5B-]p5L^PO٤=N ?f u5; 'Jq-Vke+/Xbjt+(9T e,HK;w#)ūzN*6¼Q ڳpI1&pX +)An_N󞤂=Tp8>0:kMޑ^op2I';-gD|8pSД@8XN;^Ҙ\$,BߌbdVZH5>^D,uPwGA#pwJs[07*s#FlC (%g(g R\k9qٯ2|UDnKi:.܃속;$rQm%tFUko~ %x f=s 6p|\5%I>cLB! ݔyޒvĤ$ɦm5T- Tzz:;jcWx :L6¢w`n[.׻vKbi։'I#).YB6: ٱcT>j 0W9ks\vA/Ņ1 Me æ1?YY;j]H0udjc/1 1N r>-{ #:u׽6&U'd^.džz#K("{o4@:/Í(]vb0*k[>Q]{J:ñS$\&J55?}CB\w 3լmPH qId40%Oa"fE, XWbհxNnojj0 ;k[EuS큍hj4su3X`q,+nNYGߎ/D(`S5Y.SZ>^)B>Z>\䀲RDG|<8 K"lWsIiV('*2[x;ژNABfIZi@ '}NgxcmگQ M+3ΐx>IMh#PSy:^phd"n6'3!8j$ A@Qc]G5lw2¹P="+w)XDM s)ޞ Ͽ8edzvm顁 frB?oW(e #ռRY< :ԭeELMiHLF .4W!߱22`dV7 "`\";lH3m")d+ŀA`ha_Khj3>M@j^R& f ŰoU+!@bc^-De+hIQb1ctIjDkx!\"LvE%EN?g3NҶ/W$H>XEl:S>(1<:wPקR?䅨B7s*iy`CzSD7[J%/OT4OWV@CrT ^5$z;EvsL.iGERwťj%ۣ6=>H/̚+y[FGQ2FT\[Ǘ?C`6ѩ ~:ޤWןNnLJb~@:&ȝ^vc%;tR벑)_-l\,QUJw#E23pF}7vus3Gxٞ M%D ߵݍW0$W ;\ 度PU`@i}\=v@9ikCsrϽLPѯϽSVbk]܏VW "]cd&:ٰXpČAuD[B&aT  x^ F/Nv$(VkF4LWa[rh + l9ZHL}4Qu|ҏ@}2w*CJ)4]°%5썥I)dp?p7-pqC{i%:O9tdzq0^,tdnɃ%_}7dG)ۮyإ]W {w_ŸV"@/@LW *uaHkP;^&}wdZX\'w/T;DW4AVʍa0  :^L 'd VplBE;J/S+`mZ>@H5GLr>jmCr-h?kF~ 4hpN%J^nF:sTܱ*l*v/ui,or-'C\+$R#61j{uhXHʹ_x\ݹL ̷G<"\#F_mZ؃f?<]Q:n>:[;-C,D?_4ܔ1PBwrHc`$f9xuBt0Ҁ⹡Ƽ?Nl׍\0qQEHT]!hʳƀ̀[/t<:9ugPAqo hIԮ{7}`.z`6 }NFh Os`[Mv?DYw_B\!=-Zb3mV #_zaOF\Cѧ~-8FlDi+T݄0NxuG&:<5'`w|a*xt !3٤o4 ψ$@^ﻛ ?UA@r_hkƲ mz,c#;Wbc;p|9ە,N`a0Fr _k%A x H߻ qL-3^ 9vGsHXT(KUWN)1@\DHdNQ߉ /Ɍ٦@[Ho^&'9&ջs6< ~ :[l1t[m HE6uC^NC*X3J˙ HC%"JcAHr^JBA(z. 2E-+5 xϡ]»{&( _P:Zf8Q Ncb8Qf18LmJC=/߂]SZoLD+#l.EEx9F¹\A,92b4iGy`]R .@kZ*1ӧN<=J Cӝʴ:7 LRl4C]! q5T[W]>_> dX1X1Q1T8shHdc[ДtMXm1 !opmMEq9W5aL$ɮ6 idUCv"ג-}m&= %Dߕ<%pX<:|W?i3e붲;)6(y뎖<\38 ucF&, sQON [۞g=/2Q]fإ`*&P&O'v>Zf/VCo➒+9/KF0}9SnYI+:afZ(nI<+0FxyQN´cd.FG:E خP91.EjCEq{_< i2OsD»ivZ,zD4)]׬h2L2X X BOIٮ>*iwC>"I 5*݉^zmgϭ\x\XkM1=! UeE$A8ܿ#~c[@{~{@=80kQZݵESC$r Yh쬟\57 ep@.LJ; :Bx86`Mz &8o߯VԐhziRxGL LXs:  sd` x_Y)-Y|" (SV(^wbۜCZu[R=YQy,Kuyףqh]fKRMT<8L+S \H'!7I]&tDLoBkV|'_xgTTD0I*qR>A hsd.E))>x5/H] 6'uϯ{+Qj^Z$lx֞jN<@`9dN&#ws4~Ns転6̜풙tT+G%(y &쎻޺i\RԶp{5lXX0Ehj~ʍ|^ٞap(OquT@;ƧjxJ f$gg#v/JaB~n65}! >>?Ut-b\CTve3 p86}~B$! b 4{!-)$ڧAy s#tˆՏArWmy!WEs^1Pa{z#L*P[V".e:˯Js7suLeK񑝴r)$ڂDEV v;# K^lz+3ve:J1eLS.8$ ȪfX gh@aq( Yv< ԥq⡴~"C1Em{2sg &@0c8מHC4BQx$p#F;(= /cN/JuF\fs<޻IW&AMtua6#4,ĞeWئLSfO@O, @ֳZF*]3rױ >ޚS_??Rd7\2'):\~􄝇AZ1 } EFTiT jY-%&u{s'hm*5Q9s{vε䐹6<J38U3v6EH-G47K:fX&Tz`\7Ex,C%&^S ,n jƓ$<3ewa4=o ^)}+DƂee[!YnhYpiTasԲk3Z ﶔ7O3k[ 6ߪh.I +siy/ by;?Ј`?lb{ݖ8evD45\(Y?XHdbR͎ :24p7DW1o6h' <4f#=>%:N¼m()JAdðz7 .}2ҭYXөS>]/9ePV/{4YSWO3ܛY(9F̝A\)c 8 CH2##Yxk/ !¥~[vLir~ I&@ nrg |ndǃqih˭?Ө/ hqQũ@?iAѓahEt*LE:Gm6;My)|f("PńJ&dTy ,-}X|ay{DK18*q&`QFMۋZ#|%Z;{~ڏU]aQuWo/H1B-ќϨ"*U>S!P8ET}}HJ[]xx(|;r~I[/JK㭌~;ʸi]JnD H_n~d&d 񙶣 u\";>x&bo(t3Z9y Ib6 "H~h 뷴j1I"~>m&Pe)vj[td\ldr)xnа+4 B+ #"mS=yO@:ib.ޠ TېYza۰?:3pMiGChqv ŀspE"3IZw'nCU|H6%,Wp*k{jElŵM:re4/12i83uUK HfIe z,0J/0]1>H1$l5#Y)Gqv}dF$dqNa6{`5 O<+cp0m~J;b3M^ubw% eV ]EF1X"4.#P3cITpMʦپM:#@+h31Y SfЩQC :C l3" x%-V(oa|ps8Cb襬{H'ۗ0}Ѣ v-KU қ["#~y̰#:M=)=Z¥ļsw*1}8'ejga@6AjZ S#3c0Ifxf?1ޏeX)đcL5G$)JW vQ)q ?83j:njfUO0rhNR7&1UayD+σ'O < ٖ$.a(5ucc1J0kMҜY!M>H;*yACC&_MjB%d%6= \jJJnLѺȒ_n 8,ɅM/]&58фGc0S[lE פq^(lKy^Y)a={Jszsf*qc豓]s]rkNFR[av B*a5q_Tֆ{|>!ټU '52Fe)pH*rMǢGSAI\"cSm8纙1D< Ŝkܥk~.WຎɷSqu,87B5D*i`3n _7ԡsЎٳ{!Du)PM?,JkWY?@Y%YγSh#26qǠS%w %C}deV$ /R)yzȄDpՙ G6"_p_B^,x$WW"ox$ڬ\^.DO8Ķf0&ڽAu;0^(؜P?[ۺ5]fuRcm 4_ܛ {Xy)ײgפJXk<"; MhOGurr~{h@G{[Ţ\A j2q5nk ]%NOrD}))u>9սRt P5Fl_ "b F t1|BC Ot@,bcHaVmNX[9ܛ?_G4Bߑby,ߓJqEAMd&>xC|$΅GpX424Ds'WVVZCFfe@')]CD b#:DvuJ'` u^-ّ m#)&hs|b_yJnfQA<1MclAy9e~pU,.ӹ ɿ&}M+GhlE|J6g. ԜoJB L/vjY"=J9W*\TeħeT`vpX[`Nc13 r 2}/M'h9{iʔY]GfAC~:1=u>(8ޯkC*jƴ K,~23Vװ=F^mGyVsĶ#{ w j;g%ڷ50.^?% G:pL;B6r!NԂ ۟!@cy6~n&wL0lQr;׼`<ֆ+{ L^tJДџ:I ź`_KJyjf1/Swɯbsj95!oDPD}*w`L㺶 m*G(KSVMcx5Q[9 C*HΌ"pEvcyMwFcqet2{SBzƆ0:w XOfPַ@Q蠅 #v|zM7v1R3Q& }R+Ru1nMtXH)I.G f"QLL [^-w ItPFv_ZςsҪrf)+)}A -~[̽=5n͋sAnqwq@ %IK?-BK:Λ:i4SkYm5?󲺰,Y)GJTXe0{~+Re\|0%N 3%)#W? ?q/׍-dǀk85}$le#)WkNDfK}QcD9(c( K> >Łp@g7k+ou`Xi% {ʭ>ߔxPd!C^ X'l NslU.v%,ErDZmF% 0reAtE ùA=BJƄ m$XZzhm fvঢpmؠ Tl뵄HN+їYрSH#]$KncۥyȇԹ/H(4w] ?/cwJux$KHsLG8ʗ1ʣt̓\٥8;Zsxz+1< A<&rb`fC@Ys '} 5q,RTSWq wߚ&6/2{~F2Wڄ>>z՞~ĕ-yi*)::eJ˧f^)sLg|gz::0]ޒ b>N6Xls% SlSUy]VZ=-hh903ʫȄK=ih>= K2ŝB&xE>aM=|G ^~.Bq .HFnҙ5eػ(m(٢n5T7"ʧâž)o\ޕ;0Qluj@15Sll\Sη(qSx#'>|v}rSז?]-^@VZB?# hF&t|aD&/F\ GF:C8,Kby%SwKCDAN%>8ު4ᕌ|äG!+'w4ko1'"FX݅^kv*DTvhm 5dJkԽi_?당QIR*W R {U{A N(bZ`}}-w&|xՁjmxH/%hNDZFɟ_tyH]*J/.]0m0ê?Ōy/֝U|&/J6?Fgd'? S?BHRn٬:v\ӯ3]7k{^~LjgD/n{ ^h׭hَZFzg0uC%튼yv V#q̢)=rө39u>W]Å(ǒEla[0 qGG;kh\1њo`EL11qckBJpLYtc`X } Z.u_! `A :WD١%*9 "Q o M`Lgg0-1@@10) HA<yj%ZK&y!.v=>wejepq*.T4M٪[ZPQ*!91&u)j 2VURS,ùqNfX!IQT.]??,Sh )hh o KV5tٱ>j=/El k'UT,~5OEK_Vꌔ NA=zP2=6#[S!MC9gQ{`dɜ݄c<=Jgk#h!B@/Dgk~d^( h1*"N,͜fan:> .~12( ʳ1T>rQ:$MǭO471?4 qbZĪ _LXHSJqdl-GX~';>AE>i-8HW-7CV,)m7D'lPD[ A(6AY㍼_ U^}؆^=9kÃvlmsH]L8$wVϟՀ59=ƒ 2ahB[-"#{ާ8s}Ƙl0)خ;7I&:홨qE-}  }s^R2t9NqF KHo'uGɯQNN*πÎ6&qB@μY8["RnU3i{nSupy/ PP lU $..i.jf :w]$o9" -kpDP@,=W. +էͣPYo>mpd=i&&sqҪf Hr ߢhjs}I@1c h_Y4'uXz/R~?ǧk ;\\7CM߉+[ y4= nO2}Eo&> 2ߦY Eb)ME,яT Jx^p%$39fJs~A[`+ɤZֿ;@m8oȒ(7v~BeˆN܎tqghq9Qmʟg3!tف#A%w"%E! g ox 0[dZ0DҫxRB֒AT}&6梋n'(h9û;vipR2Wd0:Dcfk,<%g'T+I(գ f~~i~:F׵l 5+JHUL< ޽xn9_m2oZRMzA nU%BLe2} t|q_Bǂ,]|=V\fqKl9V<:71',, XZP~hr˸`2<H"꼄ah*_ћ[A1͊{9f'D)ǐC԰jjv&&ݘX %d͵ٲ9hX +86myq-T$3jQmN%X(pBN+grs-=04'S;bkiws#$SOԹ<7*\?<SrQswA2TOvy ]]͹\I 9V\ 5 ^'f=zJWw&[ &lיċu+F.Ք :1N0̴M=Hc%Q;(JiAgy [ɵd`CQ&ks>V~5VulHk`|R.HΤ?쬓,T]vL/ lEt%RGn[T8WXa$2je8 =^n~đą4wWk!zSR)fȾ[-iL^?BV\l8my3fձh3|;t; o dO^zJ\<[4SdJqCu&t* T%d_Y]\_aPZpgCYg=@Mi .0,'yonџENPy-&9RdvO|bK-U#k3ܝ@\DulVrQ? Sf؜% >_Oi(U:JF%czҙ8WDar˯F9C3D(Pķh=fb aA?]_>~2]l.?aͯ)u=tONm5JxRZ47í1r}u8'o4PV@ID&QTW+=5g2[ZCjʿM14XsK9Luˆl`<3񕏌v*- 2Qz"9jyH꘻qy@^71%t˜_𳈩@uP!B^h5W go'P\SMNup v Lf:)tg)z{z3oarT}=mR#MOSo}z^'A맩4l,.VL=!f&Q{EŬcwĠ6麧ʩ\$<}BC {v!M'Xliiťf(rv qnvN  3YTOTlZm"{չ8(gx2:51ZcJ# 0j@z1{C=6 /ugŜo)H:^n'H?>  x vj`*5i~-Y|j|19;!>EϔSx@_FiW{HVQSװ6oVvEa{!SG /·݂ b VK!Ϧ!Nk;u-2RDX3'/H)M-k:_a`oPa=;`3QJ//b p`FrSuϽdGeU_| }Uס#s|w,twra?9k|B`P",w%ͻ;9ÅYany~Wjh+ԊC"ryg+s[7Z6kĶA"3PPGTߴ {C\:+-WӀ4R}V ޲&>Ѳ-vMKE֗'7귑o25`0%,l0pp8hUz;[[ʩxk3c! Fԥq_B\ l V!'N8II}>7$Jx`3ŠrpK7XEO\7l HGƟ^bsr|R| #zbe)@70'9j*CLS;@X:9/n_9G/ 0+ܓwQ^9sԜGwn#n=Z5V(5q}/\\bRGm]Sr\&HJS |W@s2mptQWI^( ZchFlU=2N nR~*ٴ LbTsڮ%gKzͱ. UO v5C$k5s*:Dߠd>}cB OEX(#wXb!o88BN:S|d|1.e?72$rډ7VQFOr7f2#e'[_vZ0M:utM yqrg_UþTZpqqԞdo;ߗt2{dc>KNn&@m/rC-?FQMp0Y~Cx́`:k<A=UUbd`v˞Y>9ES;]9i}E~^ОQ=~I J79eήC̗Ays/ 阰7ݱaRk5e&IF'ucw 6NmB_({qՙ- aPѐ vǢє m>_+ZK12s Kiaz;LVddPJ3SvT01:L}@=sW kTbpo߯shOsmwJIb"(,ֈbNOgpFC*q(NZJVmZb*RK̿"'cY~2M 0_HRT)[""N?PZyM-*]`FwzHڳ?%-تB~BD5 ~o2Z<6Wd~ޠ*> ֦c#vl)f %4%[/ D?/Ѓ4zizƦItbG}j/wf1nٴv7WԂEw%eۛvkW휒˭:>iaGUj8>. R=tdm4ծЯ øFNNUuOܬZdCհ->6,?s\(XLcy!_pis!Y~.( Bw)?EÁXwe㌢tiA #wݐoHٵy%CHȸ5kĒk~P}43IT`.>8Aޕc[9Tum>`<73ysr6zO1 1.[ý.s?Xjg$SXL}enb{9J&C< rQg4w:_8}TDyZvd"pW?Y|ZSԊ_X0S/,UApOwdqF,{pjU\r = t&ΥC=. ߟ(~_FDPHS;~d4.И g#՘l"'$lA> PE|Cʗ0yNk/^Ez扚q[_`,tpyoxUA-ü]fX"4/ 0JC)?_k ~F$Z/M=j伶p V2em@LK Q׺8-"zFb:=ct)-Q}2lswRC鬀j1dĐm.L"~:)LtrWBY4ZtH@f ],PQ&iYUtD?(: [/?)g1eۘ Hz=*Nc.$LZ̽te9 ==dʄ _W˒}_4L݇4,ӿk `'/VC˧Fgџ^ vU7҄KlMACUQLL%.yqI4#";TiwZO6R/`U]aPeiG+ iG Ufk D=}f h베f{{' ̘h*vZ!$Etpt)ܽE:s[ޗJj 83ְhK:|ʔA[| _B_;-`FWE :V"w=B񔤉0yX Y(zSӋ_匌\Q5]$3@j6wu/Qᴟٕ6w#!PJ<܉WJ+E0_CN_E!$ۓ:dU*K͡v@)8iG|kȊDNr{d3Փ 9is)0#,&#K} Bݕώ--jZ9]mZX߬#Zvs4c$\_V)8pٻ8 tmb߰∠sy#"'aX2zEnĤud u][)`p?s%у-{}J@\ JrO p9R2sD"Q}Nx(}OStJ2c}.FD{@һ?x`C V-k錴Hv4~Y[!,V7Эf' l1'y\ϑWj:P1uWɳIazj{/ p7  KHAtDlV_;>0^MgS[)4.$M1Ufar>皽=|hIdq {fw*3GDueE{\cm}6r"DFTmNjRy,'x׽WQpa.n2X?)kO  زOd2BݧCTٕ 8`6X%UNjK?#vUl=bnkT#kKr7UGT 68X%>ҟGdLii[ OTo|L71bHުnBa$KD~d5Qj,3*6lzqó9y价LSQ$!G{`4-v+%ZX']\r"+R%3B^dWzu:+g3/Y 08h'yɞF/v2ۀr<ְ=4ֲ!_9Ԕ ڸWظMLw'w+ ;w© _w._2-w =&vyMC//ω#rιWn‰?) A [;Xplw&. kw ixK~S,vNJuFY\17׀UW~$3~qPs1|4;CeP]OH$hNؿ`\4武s5#w Ә%^jd35=u|XvJgt2ijvQ]=g Mtyc4tӵ>|gymMM6 L{95L&0܄jQ+,^MNK=@ gSȼ?@qQOdu;X*@]ldNgWFbo@8(Iumk6MHjX oH՟ځ0x-Qւe{to\ /ohZ*L<|ƐB, RޡQPYȕug_G]]aVAORV8!~r0LlENxMIJ}Œws'Bnï s mRARGq.!3q B20h߻ՙ>9DT$k*vQO= T8vD;Q.K`}V=K! :@ qI2k9sna徝_m! I0֥g'1/UMڥzߘ01Ed3:XڄBe~RV)Rm]/  'Gi2)4%tta =[cgRL7v4ٓ$zTr2DLr)# ^whvg:s;gbӞA$ƾ C7 8W:U'ͷmpbs)e\V?VK/0=ZzDu['{ {Չ5s)m*tG[%~g5 Zq/{Pd⍺w4Ԑ\Um Tr+\4ϨC\ JuJlL/;Me8YHfH Rִ686s''f>3jvZƙP Ut y̸^@-7cv⠗Tj=p v|* 7P)c8J`0$W7#O@޽el'tUJzbѣS} xFE*ag%+6}a)gɔI577YVNK0scwtJ1&!\B4JtY}4y=A98 N{?NaY?|Ru<*+&b~1^ៈm кt5#O#V zuke-9r\Z3J/q|1⣶>2),V9oe'W[@s(Pdjʈ\o݇|vVĨLSX.! Q EmOZ5Hk69V m)yef᪯-(-="_8ބ-݌EuTLNeҞEP=$1Ц;&}8~ɍ^^n89 TJj4ס@#j+ssDAr;FmKI&u>Nw_}\\0`ȴ9J-xW,]7R@9($# l`M ZڵM3nmag" fOծC#ɇ#GPDB$EvV1$X\DD^?d{T%t#B\Od΂ QxLz+'?: =%Y 3/asZŠfH#o\?jW-im3w-Wi5c#Rlf*=7WsRS0YIOp`2w[Ȣ"iY(U@ک7Err`'C:XH.*2U(j}n p{a6W@aV,#ȂwE[b\|<Ϳ6C[B.[$G|\z#ݙ <5|fwpI0cDD oi u?^\vr.1D=a{ }-%A 7mLlA)o߯ic!Al3X <0{CvβI\D/9؞뽤m*x:G }‰V0?}qeۊءwWAi?Cpe"jcQkz< ћ_G>3r|!,snD:9kk㬭܀t"iV-LIPJ_ cMpVp7jKQ.0'㪟]KZDKiW9#4Yajpm|miNHh>5zkkJ^)+NCrUp,(1oXD=0E9OӮ3QSҶD>\ev~YhHוM? fѿ|h焈0=Y`(s*iqqOJX!+G@˕OE(.Afw ,+S%)CK=o0\O[|G$Is:(ah4v:<9G3(r >DN#kxa#0`5.קBv/aV9w3&c?:5'J6|(YMAyH?~$QeA/ z@L '59n#W&o{xmAteZv/P .GleQqR'"%f$_s|ZgO (1", OfffB!pBr wsgi'$Es΢kmHE6e487E7%(PjmMM!OeYwWjFŠ.n± zz^(DY`\݅]³ Zٵ1 ÞzqV@0Wc9k撄y|B BJ,@zB k_Zsfxšv^nM8eJ1ūNd$ƕy[Ll=˦g@ˤ@׹@)`M.Pjk"Wl(u$$wAq(;vbJ'UJHeMQ DVMvoO0F08TmQ>GYE̬P>jK/3_y[O}GgE%QꃢN+&eZgQIσT$Ԍ +k5 |#c{uCMF.d{,vfagdJ9 `Yn/d$=lOSCk'|K mJ-}! ?qѬ5#4299P}綻~f"Dv#P#kČ۲ ^ˢ!P9LP^?Q7d41M=U+:/DBf'M.[2A`(<8W6uczb oh>]{G.eǯf*0١8$-WdB cyd;,AN(F,~yJ>, ȿޮi$!]jY63;lZ9b^1cI[,΀ك)żA3~d=sp-SRrLeHixG2{R' ad,9H|LO`fK<2Z=|ܓTh6`^ZXfWkš;GI)y).N#mNƮ ՠ)k ѵmQ] AwX3TٰXQ>_03|:%+P侒Fdg|Z}0wlgJ+` RChIf fʲE)_:E=Bziu̕vug`OZ4)ĻXӴ$$ )e *Q# IʍfMQS0I<|lmu9I(Xo2^όC  (}X}j;ؑ9ȄƎV<=F=qE!Aԃds8>NGdn:4bwf6Y2.Ǭw^Ej;@#w#X͜5 έM|ΨI,vCjoHgbHSaHm~04"d+P*W!FKP/bЯ7A?0JAX>nQ.{N nNry L(=>{7Z b+I9(ԐeuPG)w?S _t꜡ÖD1ppi Z61&ϱ *8&y<x6#nZ gz?31ŷ̶P/A;i5PN4:c49(2}+L>)hQB e^xGȜt4RP,ts+KoLgy4XT^<6e0EDw۵zSֹƤʂ<=O,@qp b Xu冀~5Uv_>&+NUm ''mzJ Zi Q-$4&fV\Q+s\ req55y895$i_I(.}F0ԝd價B@''q}\KfiLB)HXȄy] V2%w4Ȅ2+qfK_7x4GŌ|MoFNx8,N6e1+qfNw 'yGMDUw&p5vXV-?cŨH>Ipk-nfaSԾvW@U|UX6bfYqPEIqMk|(g 7VS1:"u5?b?y⚼נ+l+8C",2~$f2ÕOM+gZCp"]{qqb6ڟ8+ݢ-2iNnR~ጜJyO'b}vj]yj0xPGV1a ٽ7dxi׵C$lGԼ33n("7SƪGRNu `~(gu&3n]^ms&=6HP J~nYa L)k0}.k:˿C`}rgr.+Z2񵤑2]JI/{6P6q*I =7JrFzarC]nzf{^Ӥ#PD]</Rf[(@6f-œn]PM{DżPeLgxGI =N+ @DS`I&9p+jaPc^Z\(qMrk3NqSob_.e<9^N{(EjJ %m8MG([ LfutOԾU rbc q.^$adRF`v8z2*if`k}_*l-_Ѿ4H5͚bE*{k,q)DQ}Ls"A.Wt Nf^q;/ǥ`:WtWWOY2y< #gw8nd&}$#FFM5a %h'*2-@.;^ ޟGH)RNO*0hM q)0E xPL[+fc@α5\ u-Æإȃ/xB(e6L@}VDJ&[MX_#CDC]  a Қ'_ .AΏՓT9CjlO <Z+D-"cuKL=ݻ i/oN@do!ު hRN#D/ԨwLɾGj;$&C~Z8ist^'9GȘe th(\+/S ±A&kX̄3q1|h jZQrN7}r.Gz2̻[R)\cG%bTb6sOpM ,dn4$fuHϭH:;&6!,x%npF.Fo3M'Q(LUw1M$Lm[f!'fblF֍$Ig7[P~G%2/CyŪ/0I_ gvllytO5wO8Jȯ^af w yM yyZme,j6L _};2qQ$[_XO Ǒ;)>Ywv~Yw) =B}tG bEФ+yVfnEI98M|sQg d!Ս`9x9T3&}83Q3E Va-֕gt(?(zbF*GDԴ0ѻijg~2QPr [D+b+D* Zx} 2W%)!/A<(@B6d0I/qۍpy9{+kz̸&j+x ^JdWV kL`3PwbutHbx)A)`F3lt|YzfgHzQ6@W+V|YE=Td`3ɼl9k?aFϋI> BR7ʓ3~? j%AGs 82)MS/~՟ Jir8 ]gk$8JT8Fyvi H< ط yjNx^dorgҜs"(-;qtDCU uU)q[r'=~E7 b޿r|Z%7j 7Waހ}' p<t<+~˰"/&Qg{bfdx`%iqz~FU }qrhK]d[ZuJr{$H*N5 19&H͘s'N qff{HP$27QUfov=zCz7YU HGў/L9'w8g, Qq#e5MC͟D r*DQtw%Ʉ\}*$4܇C0[6u(r4z׷^Aڗ4BA{N?cx?G++5DbuW`nj 9JM\浊SlͦvMH3dįnjK&(}وXSӼt?)z~y=[Qblb8e[]o"J$s$'ח✼c_L`z58876q.Wm0gL #Nx i\R jVkD2IgN跰SibβD\q~ *GkOt <=\χ;ז?QM-3LocDro$^Tarr7;!S3(y<V顥N/|ø n6|X/c!B$09p11HK.!^+:7z.gy ,eBM 46Z^{aj-}(kaxhS }&\+4ڕR=FmEQ U ?XtpSeZ~\byqnGR yY͜=:6;=K{FY-O= cIRh)=a)* \ )i \o܏UV䮌51&mUe"ȋs,rBk *- ,6KiСZ jͲ䋋b&γ n{& 5+ *>C!\L<9g MjG\5!$ٜ!Y 3*]jbA1eQ4Lq;`%n R?ÀqfBHޜXS,=b^箭qY6! } Kyb/HLG:rB\6TX y^7UIчD4 Ndah-a0Q5L8ǒaݘ&Lɴ$Gv ]HLrhqy"(3MsbOHTIuzuv˼w;s0z~Nt C h: LА,i iPfcFg[ <-],fx?uR$-Ӈ0xԈj:C7NzQJMi=?CҗM1TvqzyW5R%+utmA}1Q)[S⛺HR@LC4)T2O`At+c ! ֖uOzt*2]9S߾2i=TZiU!]7iZek=ƻ6Msˤs#* `[+3:CD, IK_[n}6ȅ9+S 74u"Dj9/3ZANuoCiG^ʸ4`~~]O9qcs<֡^klwtv]@?Id7Y tn {'2X!Q{>|!f!\0H$HiW]g߄7a#ba_玍]=p3M-KٜY9b=*s4M)4tGK(֐Δ;EZ&1^-ixd"]θ F\n*ZNP5w Vc1BzAT,{ޢR]+[Z.IHѕ,Ƅ` %"V]j5\"Py 'XqP|*XBNsBShG\,Skm!=x:1)жw ܖ9,lG8bC 3ٷX",(_qR&ד/r9+bLz@˼?I6iQ|bxժPDVeYI!M6HJ7ε32j Y[Q5tt0hyJ;3&Ad4:B%o[<nK)ߣV;+$>'ai3<1m#Vʨ*r}.Oɛ7YrOߜ~ϧ}Hjrp6? u}acR[FW0ۜ80.\˽n]A֎v7!Z[wQvzpoʪIΨ&F$İ J]H#uqdzy<'{Xmv՚vf^\즊47JgNp [k\~O H` P?!4b~[t W';B9ㄗ-Y;Ef(O_iF>$co`>nLØxc Gd=}X&XT<ٙM Xxh*#L!=4?K+{;XJlz';|.QA Q, \c+#|,31d:}O%aC,-(uu2XG{\ |Z kx琛%IWHZgTL,w Wx̯r9© ƆJ~YAyU/,hUnUQPB}tc/uy q:J:J樫 LZddݻ#$qࣛ/i@(;[$q,|YM>y/ӣTcDD:{\g|=w%F``hթ'm)XYsZy{YQmSjpKUwGd X "8Zb;b*տZZO'je>Ǽs£GX>K4pR9Bl߲4 -jZ)A[rB!&kHz%]Od~<|hvK9Jm>m3ӳB)LYU@,JaqmBT 1ĮI?sntDDǔkb*;Ԕ~tGg-{y:8;|M&#Pvb˶He G j'L͚7*#^=Y M$KU3WR>8[#LҙDDR GE6¢6g^[}ls˽Y..F~sб7"v@` i  )Fnj'jUCWq3 E9{}6q=AܧPIh*1Ht+Q@$"Lt+֒P3D`(MEgTu< `gih6)KYK,\ _kȸhKwTi(qIr['>Ba(8 ƺ@1LZ">Ց W,I>6K~s (ӟz@ZOԿ$\Cݸ`hY]AĖ55C0p4DTv7唣 #f"q F@-Qu΅G1׸ﳎ%Z_.2ovlZ rMZ[#28m[pJ`?9T)8vj (M9x(?ҟ/wv `Q i~]6OULwh'LlK9rq׆#S$>tk̓pb _ȱtEo@j^՛1}t;H5? [^<{gA 2zkRpiH2\g2?c-GVc&4ep&o3wzb?tklN<0 ,&6h$*j oI7M=t)Dp26ԠsfL}nJB$NzЖXS2CX!QDznY^˸_د*h/lu8.2b e4-T:&gYgui/[M}S8uHO H Cz97c81 lH!I|WS)G% K,P<:i#clN#}A`-˒0hEG13p&oC7V.]'CW[[*ykTHA -ĆO.q.{yLS;Ȥah>x%=!I**:<8ξ@yQX-7WѷwMDNfj8|f( wx2Lq@/E\9-vKbܘU> ܀>^ۧT݀hֵ -Ux qiun!aT>=atAi2(ȠZƏ"F$gsThn_貕鳎I3SaPխւn9xrEv_cydv&8`.ńēly hh) w=:ʘ~bVnT~\m#yfMn3"RlQ[2{; cҖ6oAl~j >@C-f܍slp< WS5n?r)y"xۙ Z_I]p-@t ނD@ @sYiŌOuDB/1C;}-M^Y E QYqp ^DzAXԸaZY{ c_06H?J[탕 ff BsMb3S;?s3HrKKjaXx k!htڭO0stx;eT0+ *Mh4_%fRd |NnÚM WSx}r]5$=Zؔ}pb*;(b}EZ8?3^%tw+; =܃pU7K{W)5=%Swߝ> nfK3;c|p6PdtNJ)מqcE=׊-ж[*FHbwĞ+V] ە.~ňM]~\Jt D'pde4o_߾z1)2.).s&h[(,؞i%eBh;(#xWƒˆYr+3)R f=~eLYMWDwL~Km/%/ 7T"T"S^nqS|#.]x3cI!a[#7,m[gp/}LgB:!.,c*QWqBHh#حFn&yq\sZ8{?+̳yaIa !߻F7",2?]%t@,vRT˭[|_']Qo=OY*s=Gk3%*|1*NǞuZivcs rX6ڈ /xw=@=MY ,bv5swil{DXQIԎ+Mĥ 50!r4 %:`*[ J( 8-Os4ixMB#yqGq?9FEрsջ1SV 2s?QCgy_}.Oryb=t} ȚբlB^487AZYRg2d˜u gϢCk@b%#yjuAhj_X6#*Qk*" J T?_0t!Y!7iFB+HU{S !IjiyJL~_3^ي9{zbb# Ng٢~ߟuV)GԳ^ nYM>6JDZ'HL/pY:Պt~y-Gy ̉&:} %u'.qqS:H(7 KQU} C%h(^2&@>ּJEk^C8 è[꼢CVbjR8CU᤿ * Xp]<@a%xur7QY" L'l)#֪*pm=ee:G< %;\2ɽhc%E|o+-L}Y31U6ix 'f rH?۶h*6O.VL$%O5 z|6ǟ/)FK Z:9+yc k>| }V8 SfjAm[?j3eҮ8#DzoIAppciu%SX,bFx4aO.|RNpOuhi@ ~]x_*vA@L tY䏻ҼX8Cd]^FڔaoWZrG<$80!Im&SO4F  rƥqx3⥂whs]ĎqmO:`Jܓ[C*!se4x):F8ajtaGolMN|ֱ'ü_Eo^DlI eX6SSijIsجhRDw[#ϪWDJd^Z OX\m?큥8u+HFwSwDNKjLOV6IRƏ\$5蕀W^Vi_V&įgW L0$Pd]gPz`T) !1>-{,vBD=pd)tqqyRT{=&1fqA8SHš | "KjdF<{wηpQ.{sz.%8Kl+Ń7F\Xm[ߕ-⢹8dم{Pyp_wFfђ> .Q3uCGY ;hLo6 Z% YNNw#Kc}x^$-yL!,E{6Sx!PA7ODjD74&{G25J/NČSw.PVrJ|ڱXFfW9`)2>3:vH>@9Vi ]]5@t8UTj{.!$>lju#V҈(**äidQ fU V$TʐWԎ'~$$52"Xz'<<xM$`$h$hq$դѦwj}FhlW۸-fW;f87}qҬIU"C*YK!Է)Z/.&Ҡ^̈́H9^#c^箐YM 5At38^LRf1<FEee˒ё%Kj?EESsֿfghCɞfPƞ|e/;o[Hv7C&rbߞ 4brxe#(in Y<_bgڰyu"d#AfG :AOfdhn}`yye6b9xvf-{Q.5WPCtXTjy^:$B .x퀢l>m.7_3"=I Bb}Ul$KO۴NW1JXt@ ogMc :BBx}GqΨ/3ᱣ[foo (9g]qx:[ |@'r̢ay1@ KEFrsf9&skB[%V(cJsY d2+Xs9~/ /bL|{` -aᐤ=9}x-^3ywYSs-ԿS;8}8 mmBF*w@SѤq Bw?o^` hu̧y0XWEKo,th>McixDY 7m%2^8 nRE}.Edt.AKEm|3_I wef|VMO,OJݙQ>:?& 1Qfb9LqDH(x b<Ω"ԯ~82!QVuG! O+Sb8}~eU:4Z^;`czDT;4z {m$W2L') Kqe0 (9nTU*9H9 hmI{OR W;(ѩ!fOl!8V$mL"i,f3 ԉ~q3n$;ơ֟5sFړTQؙ26\6cN"po6=R 踷րh?¼ ʎKFN֟:! r5TA:tƏbzәM2u28/1fI>NWvق~!ҎQ밨c%s~+G̗O$#;rKKl3”Fb[[5pp$ŏ&@,l_}B˭@× H,87ѴfK[;( {A"~~\BF3ш=cu,LDU~g6a "xB4qua`{T qbA[j^T&9G6iCcṏmhmdĎ,}:޷wهuZҳ/,wd)x 쭁trTЪE(P9"OoefRz 3G*$D/ M6Un<5gvi6c%^-ȔQB*XG|*KUu5&}.wl|;;A +[yRm^pA禩MT2}Wte凲|mM7O*يB 'd͜x]gzDi#Qu9kn@weaI%0. ./9c ΅fm D&Gp[6ۆf+įay-I6~snZݛ$qŐ=Q6c [o28؁~ZȢ)!eS* 9pe{e SG%GAtu쑢S +FgSp{)drfJübM8^KSsl,܁AWntavw&ҷ@Y**k:1i=XǩY%H:i+Q+$c)=V'GE$feXwϢFjȗ'&K5p|mZ֟)$wgWBFg?Kݖ):Ǘ$K/: }ea^dUEln)[%5v1l哨) c/w5w{PH狟Aj^s!S`THnP*_P+X0}d:Q׍:1"0t2)C W[Z:5}>'1qiW8u%UwF% 0HS®k%7{xA ",`$ǟ9r!XP05S*24=W<ʲsJ/C5kZoms@+/JH?瀓q>deB7dњUנm/!L4qIUeS1/K R=7,-B-:щ.Z9JN8@˽ 'QZ44L~zYIkeҽnzf8&V~)/؂FJu h1\|o]O7[A&WzXR+qΕcp't3Bwkyw|{r Ǥ;0}D_UWQw y{HӖB$~TD¿zU' ֵ׉y'#'#E{LwCN ȹf17"xҹ;+QL3T;cl;1>ߣps Y Ob ( qor:̢!])QZ#jkc.j[%ԣZ_g]S g@q@<Aϩ_S𶺹TDAQxY+9.:>}33?yJ$g jh4%e8[&kR"Sڬ[bv8j*f$J'ҕ+%j[c'$4j@y:vx;^w9C*Vo# !o$L~1&KZLL0xAT]JƧq$^qi+a8C9L#tK){eh؀o)ҡ(=kc˱74_>س_ p1Nbs%/>{t`,=% =:N llY\ء0PոYL/$:'l_k?p)_xA n)tDV #[ˠV)೦#S5QNd[Ր{POM2O/ #`}5E4pi,-]8D HGBx$~G$p0R NucUlQE 1*9WJ3,/jሜn2vA8--w)1wk&J5璑`F ax ?ҒyRMTYfѮY;Je?zw ^'<؍>ܗ{`K Ew`C?L&!g!f܊q~D#$?u8239"#&5Z+O}6PA|p"7fK 4^ӳʤg:G'þ?kˈ#)uaw&Q0w#f=*mNU)ŕ$$jCP{#Z]U@8VD 8|>nfa[ 1kR凐o0"F0H"qy"g#b$ ӛvЯB"4Bm4pÙ8 /%:iMa7Uk&ۨ8Hh@]JЅԦB!ޔA7/s<4lF}u9UPZ W)8HdJ5WD .Zi)-!'B>3x[<ΈXe+U~˥qhmk^5 4;H b%uW}h<$Y'UFZ¸evpYOvP( D"e:c ,-4UZT}i{+3ؐ@ea`cU2aw3 u޻Jqc٣piӅ:+N=xi kpv06ۡM,,{Xe|lD$FCPJ\ɿvƊN4amH 'wQ= o%$bIJ ps PD@[PZPG^8gT73I4Y? SP 7s<؊vzk-zSJ*6%đb>{2s}顽Lod{"t|Ո  i'6ȇWaa[S|3 1Mk3_ UA='bI&g<vc @8+䩭wY3T,mct ֿ'îTHqZ'Q)/@!hzM:uTļ)|NsK\yFHU`iYt/dz*X_I@V ˜>+w_ѭ~4B:,-~pm&/[rˉ5܈1B*\4&826ˢ fZ$(L^\[;]F_'@޾f~ZU>8hY }g2q&Jyʔ_w*dgA{eqcu` F&IBTlM,&lV=0 |4,3N[p|YtpX~8Bٲڒ`ul=Fd ,AP~$nM(NTpRF4ւ@fpPrA c.&NJQJapkh_:.Y(yP$+| }AvkYb-"ޟ7>Y/}}_*ey_;x"XLbb˭Xq;?zWm -kx u*Xbt6McL$qi&MHWߠ/9q 񗓄 @ gml1`Nŀ⪾ECEt3Jd(zج WrRmt!FTTJWp= 3T[Q־JJ鈑*YI~m̧4d@Cxw/ Ţ5yҶ(8gĵFt]K(Y~?od iIxXe3ǮOyFkAITFl̻c7Ww\dÞ|Ҩu(&~cs k;k<.(~Ohv3͞ 55x$\gab6ԬV07^D]R|i6+gEnfm|VGrZ Vvb_S_$s~}Dt%@ ͟w6]Z9/x*¨p`%E*Dddi+zB db_ J(kB,AL⃱k4 !UނW (0b` iZvd J',¢I}f3 3y rUWa'ojy/nOp ҬŸlh&Ea@<ˉsNz|k@"OM$/B ȑi6/  #w>)N _3ٰ̟t_kB'ݧq)9aqoD c_v/n =); {B5_Ob$Zt:;}&&Xx|MiA;V:=w}d p:/Bq`*hR/EπN'uWvTri!%MDC>aX v@$Ecz2-jHqoѩ uo_"pge ӦO0 ݫ!1s?SMy)EETtpI9!1BH}nnrv>47X|fS5p&&[+41Y[jlo[M ^A36&Bjvs|;y!ޱ;=ސzm 2Og;#܋C%DGa#Z$ed`˒ J"B  =y.$n"[IZDcnx0Z/ugb5θx]Tob,E0œ'*-YAYpw!p}V=&Fr$rJ X@c 2Y-:YBˡnX.!h@sѾ0`R8_2 ưc`!.{clL]p9lxa 5ജ-1\Ô^zL$0E~Ikjy ѸrlkZs{$N2 @xFn~nrJ/ bҧGs[G2fQ&eR,rf*0NP\&zY}kǧ$ 8Ó]:p8\Λ5*nN)u@ p?#^SyKka.牦y;TҪpKnjl`JFރ?,~d~VQ zMgv.MF(W6 @AIHmJ#_h/fo@BPyAƷϚ%cr6:%IVR,( 3g.|& W=zd_HjarU6D{|KZ)]WVv,ߒ #񕂊u. dBjH'2)c@Gt)r@PX 1{$6d+GXt>^6J956.O*o)ryE݋"}HYi\ںR `M@/6?Ɛs[LS9fζ]>j/-Kۜ7 Q473`^ic:3l].=TʂֱƂJ  7(5 1:L<+ؿ>Mxh5cWqMPtgu؄gX$֏.LHDrTL _u=$?x"dݙ) ̤6(AMȏh9 $ˑɅv*p"ܸc#ݿ#Ks.~~Ө,_}V 8~95a1q8 E qW5wK@pEo1pۺq Z}4(xXgZa//Fӯު=[Pe[>0(4?J.u6ʌk0Ue%^.V547+d)k奟K&%rI;8h8`}%l(e ̮J3UŪ[a'*<]Gk:U8aԒNo0t _onV,?wa] \]pF~TKڮYp#YE"&i#~֬fV 1 <>eQpI+\+f.`$6|PhQV ĈaNjQTL>yG5VR0H( ώK׸#)vOمIZ.u5X\rҐDi-&ԐD1kZ6C@X[;@{^˂d'fƄԏ95 PRizRQ"m$vp`/YL(ruҪQRUF1k: 9#mpC /™8gw2LpKh'"V2w"Ovdž (~,5l>&>T0.h %^=Q+^OiCRZ˓6WR>2e&t3e4fB@|"mύZ^޳{p[pcVFSOAE*StbSJq, <[ja9;%sLBOpLkpű+ʵ>+\hgW_PË6I>!Tx_Cȁ5TcÐP5kD06 {D( J(^zlN Iz3@i1"U:j0lz6K-Mgp;kK])ź!nS+Z2֎qp[[d]W4:b-7d# v<,% s]ih3-KțS|E?VK5'$Zze5:l9ϨEF DϓlrK5Kw@=81N/7ѲrfS|vxKf&(~¡7I#}6]XAx.n14EOȼmv>Myshxh{!:ޕu'y4ؖL7xwɥ(/ {?Ӹ fԻ5`M"O4t]z5OV [8M+Fޙg^xߜkVSi@ pp`uw):*㏽ZAvtO.`#Cg'ZȢgzK8B@k/ _{~]5j.`4Vdo46]d\m"cg֑c9=>/%jw>8d.Q="Wh[Y+rhQ*$po{ߙG|wz<%>(79KHc 7$[ߟKs?wo@ِg=.~/Xm8$X1]߽IAsiO)z1@dak2[veEw##/A=dd.zWjPFQe(GROfJBە - !T^+]n:, %8C 95l@mm=ƎzFcR5*Ȁ PJ#E<άtn+֖W晣; WDB1~1w.ta7x$y3mץDzqq*ڣ͝6**S8 ݋{?#l|.Accەn2 GĂ\ts7O!79U#W;SqVM|L~ST_1:QeFI1~mO< Мb,!-LwYH /\oޱ%\ރ!x=f}.3­nd_l_"@󵔉0aH-d5;\i|Ѡ*#+A.CPXqujD;2(KXlRKڙvθem#\و 4  ]_ݻبD+%gzTJ(y}`-BWw$åPhApMFⵢbqBCdD\8@/Ǣ6 RATKuH"B~%b^Mr;lp݆Яf$ĦJ]9_!ņ jVgK0K@sI8TslŞiݿ> k~"{Lju򋞝^,1C I|]< p+pቌZƜ )Gn+$- DT\O&s]zo}V6XfgF>UmI݃|/XPar,$)?jumkn1c8]TԈ8úpI;㈀gYz2Yt09_ܿ}XbS)䣾H=Y,) 0Myc MqRm_ &,%ǜ}\H"7*Ot۟w;~0,g Fxmp^rѡmebtmT~<wB 'de=oi%g'ʇOY+tNikf,sqX76sN0ԖkWD!19f;9: XP96DKp~v'\MoA:n w8[cQO_Z,l05)%yJe(B;6F~qH /3{0|0J(Ǥy֌0qTq*91)6Hy驢2Տ3̯T NjOWhwo ?񙃺K'5(AN=oX7zdcG;gf?؂֖]iH6ַnmM ,jA]N ƨM.PX]3qڂEl>*7z,C~oƎOx]|w r%i12qW7QR A"U=ʲtp>_G'QCxTi.j*DxYO2-9L5ӛiApE3F ;0HEt2iTdfK w{DMR[(:f^j`捵6S`B9%@f7Qt"ʔQAu3FyRal'~bӜ>|鹋ڍ䩙R>RQf=SWa7 w݉m m{Z,YL"`*}Eq,Pǽ(;їvprYg;8ΣBq9iTzV_\X1. GX:?Q/ںxJi |FQb[TQx_-<'#(RY6Iȋzf`q@J#H%3=U'oؗWGE Ԅ! &rfif沩*IK*36] tWw=D%VqCv*\H?صUYB/G:?Qw=}Yh_9:k NANgDv;Y|Bަ1" ;yN&m@5ha Uv*МoCsX{ҖE]*)YlXwN݀#˄lmb hȏ0 PYۈ>2Ĭ*&ʏD:ɝbřN&nE`.}v,7#Ȝ yXٚ:9= ͶcK vP6tlHbaMMqM&ݜ/yB.tֵ໊pd< \0lzͮ Pz 9(n!>E _MNrH/<.}hxh%dF̞Bb::UHy%RyRMP܏ RSܱf=ID@$ HҤidv;2Iʘ\þAbJ[on"@Jv0WWZsbQĵX1ԇQckl4lʈyW\)` T**/|Q:d.`p0`1`WKP$Z0.{j׹ h#(~R0gy6C856MTh hR2Qڂ&djµYP(eV_&ybLae%_qD(e.)SSDvp\@&W:/M֡? Yb׋,=Ϛn`1X^xfQD2_ jwEg溮;_Vi &+2X,om|%&ikJ^Faߣڛv <x|&Պ?mfo ?t(B;ҥoQ@ w2 q)9g*BjB—i썂 H8)ff#oD.s@+H|DV<X cmWOU-[h+>Mﯮɡ-nJrѧn7(EJ=16 ,l VϚox, ϘYe6qBt^<_Ѱͤc,_w`%AڍqɧXhڒD1e!,ʼn0LS}"ƧJIjgL5/XMo){6a`4/òcwy+[<Ĝ7&y| 3S5=Dy|^.h@*|h'D^֎[ ێkocfvPA+U:4:pwHPB*th?˔\;h ڗ۷P?FK{oɀ1: ^ Sfl,yc;0be1z"=8ѸnuA v|B:>&:I[Jlۼ^A9Īe3SMP bwTpɧ:-.L7(쑹C*^T4JכDgl ƚeǁuH%^orWz3r_ȏ/) `͘ZV 4rÍTi!Ґ6ʪ|{/y%fw4*2g-.(F7A֐2Nߦ'(?k$ f7nO {Rk8=r-O֘ôDpu5T|ǟ"Z+F., ص6O)z0bmQI?vMWȢh畛{~ί1 1[H [Gs-GJ$ `F`(`slY,s5z\Ue椦ӚCfM@m 0+t6+uŻ +2z$Ëhw*-ǭѶ(B ?# 'wq1ûC!zv{S3S ݤдgBhښY CL\]+]b%L}ey~#!D[oJ5 /R9_wwYxP+PC3 78kȁٿ0*\H__v46opOev' i]:wRI=D9ЪJzɻ<΂p"?V X:Rӽ %Ē^Y_􁳲K8(6ȓYTb RLCV? lX~IUfEqtCt VJqMHhoQ;|JHनDG\D/l_FWX=_HF:Jt\yi" k|MϨu1Yz:wVgXp]mX:FuA0.Y, 0ð1b"qOmf6QZ\BrZ} >Q"(M !h{j~F ^$^LPCZBuVntjݵިګL!gRHg* $'`1%ft_Ize=Tr!pL<*vt]{At4D0 `K zT<9Ȇil]V4qWԸ/VBV]JV1>3]8hz`+h!eϽ~;Q w}R6JRO5U\x҄%{z&ރoN%d~P9 ֕M"`BQ!SŤ?hb*Ϝ$])ɸ=I9(Uw/)'];oL^vB]DT+B>% aLC9 ofucks[yzpm QV_0 %8 oՠ;~O'bK;\-WE\{m\WDZD{Cwpyext™!Ro/1QL&l;1wYl\N,agR{xa ]u8u ך06ŬP%%߅ h*Aɍ?Zi@MHнr }KҴi o-\XSRn6#|1wïo.H#V-Nt+3!3 27(ݷ&_?**a^yboukc$Yrysz 9~w4)p D?(PćQgW}yq5M}9oռSKf`X\. 8gЂ&H]Q$38аe$m r2"9DO~{qjj}qm.Ed27Twd xŽֽ~Y,tA9 EK0| ]9oyAU] $%*ib(/Sz {!QqB$J,0I zJjˍwj&)ת@5x[Ȏxr!~}~'9դ7ƕĴdӘ<'>ƲIg 19"7Zm49*Jc38:ҋE휠]Id \m<@|vd{˴CaYb_ٞn"0|a>g;o.^d" p|^MKhGTsjjFzkvգJCoQk>1`nD ُ]vއWIj뢳cDuq[ d]lL=ѫ-84+ 3u^Ǖ˿ar6G&|W P J=k9ȭ"νp{gF:4 m1!ycvf4s:DaBj uP 2\e,'Ce(Dl6e%f~2 2!8S ϔ>Ti>Q, Wa%܊Ma Y;n9M^ℾyT(+D,VRtA`tZy ;7Wz;veU>z/Ir:(orD[<^C ±[ u!;5c#|[1^6c|@T@RSECDH6[$>{@V&-?Tl3k/ظ0mEq3~? qhy+:ጸkq6ɗ\HmAgwv*_j{Nd˜imhC#~Kvr0b&L;uNx\;wYЩDQK& !t Sth 1c_P?Y[|wt֎x"˛R'^#oǠH p&{^c3ʇoFx3Ek3kY2#K~OhV<h jq!,Gd2~YGcg>`ZjJ*+tNV~DH8vt_&}44ss4PxKRO$Vd]:+~I[>"Sg-۴C,֚7t ߜҁ>(&κGUft\*3 F0V3:2?&*L L>o"GG͖$|D3R|о|"KK+OJ`g0*c<>&_S mvm{还tu15h߾W:6+FCɎ;|۽kr*( Bu ")$uuym4؃<(o"c9xn~#&X]M_&s6Ǘ,Ï}^%; sq=\>4uz(``ޞ Yfvt_-);RH 3#8Ot"y^݋8;:+V\8}v-iLFoX FWgh+V0Z %ojj&]3< %|'T/M:H@/ಇdʭ>_:I1MfX[HC]"c1':ֻ@AG2a:K֚+)=|{uUvՠq&(3&%;5CSz*)gxڇǿ&Y %+o SiJ`Cp7CPu+d0D5!4V@"#g2E;1ĿL=lbyBNys|jCXlE}AfjU_ vvȈ?~UV^2G q˼vS»aN6+H#WE$GrXjvxa0N柺(Z!v\ĆKݚg~Fw%H^- qvc2em^\|7ƥ+mۈj6χw(+ZیQΏ kp@+XIe7.WS4ɩ$-L= 5Pmpal%1>)Tp:[lh`#sk`c=OW*kDflBeN{H ET-uғu * ,M"<(L@/ƯW05P|J5]쇃$EGq׋VaXBSc_JyOs|$#> ng]@kf)'y'fc7/x$ M7`@X*ryLyʣZ&?ռ25nD{;x-nl54BQ^tXfrx:Z#ng̜?0 3@L{1qJ:iRԳ}dГB1-_wCLaXuA܈)ET_eý||V45JxHւPG9 {C)p$"%Iƭ7̕K]9pH$ 8}e.kq4Rǯ =)WE.͝JY=SDNK$N^sl7 ?CM5bglj3)w>?j[>%x€I7^B!/;lX|5^ n~\*[E0=w~lx`{gCp;ȟ7e8Du%QRee;?ÿ)=qNa{L ;84̏џ9̵ۡ/&|5^ n^DL|HOFGhKC1ոHqG",:#]la`i~:se9d(z+>[*~j9Vbf]p(bm݀Aj1=fK3ƒ1-w3D)ziS782^ a?Gt$%T"bWw_T/yPs+u=AU˹AB,JG1KB_ ՝T?@o)wdp2ZT_C^͑8"1 .~ Y<"y?[ xA,uD-GŅˌ53Wsg.KF%>:lw\/L!mOeo`^dxK]߭<ň~%m%Q] '}E5F]b3sbBUẻF5p06aC`DiYG8;M'iA/x'b.'pqT!BXdOUj:3>A&ZVSx`a3&x 걶/_ {8tw(BR{7wJGV%Ø2>-cI\y z:CD޹ K3| mCn?,N\?Rs2L#SO9 j=%X8O~3aL8B7R4~1칔gb@jBXvp]L-S_׻3BS 둝L(Ǻ[!KP M=zMOgXzKHƜz֓BQAlHbF( nPb-d˜gh95{s<tiR:$lvloM:OfHl"zDhxfW"2 Lϙe3-_k~nc=o;P;((eȀ>m:D 4x?ŤdB6#~ yyAp==@?(4~,lA&и1f a\|ONGuN3WC;ѧ ]P/Ϩ Ji_ D`"UCJ'A0[9m]P ˊ@tUp U B ᐷUo o(.h92 jT~7/)e_\Lv4Utjrf2-q09(@Ɠ匦laqo 9WD@JrU%J {gL0EzܒS_Y=g/8wovBiMN2 pŀ&14wywk/ӇϤj34Y}N2驍c;kLZsp Jk&92VJw<:MQ|/SI7f5k__45QC&3"FC֏-@y YJޘQN@WRؾqMoufom)Ch6Q+4B&VXA,p*jaC@Sa" vֈnl <[N jYvUj Kz1@zi(Dj6X2c *Lָ3!m9w@~@֍7^'3qɑjs+]CWoWF{<=NW*Q#<)/ں𠇥ѓBȑ7fea$4r*i^\0@^G FE9,}J [?hrHh5=XGc '7ugeA(Be>8w>Naf5YY{ m1]nK(r U|+%*'3ʐ]I KVڰmp ?0 w/tEܭڏ"b 8Zjfد+y(` HgDNz;ke6lQHKG<'*g 3\,Yz5#IU] DqZ5v_F( q7wjowSÉRS3)408y-ɢMÖ?~L4B s$ #䈭jVX?6+L~O7TR6@}S86ۧzBg;8.bLD֛"2RPE4@GB;{uW1r#}Fo3EuĐ# #:j8>7TXi@-/r؉v-d=t``R _h׾o@+#,{J'o5,5"dlf{)z\&]rXm^9b?LkP$<ܚp7u@! QP5?"0=_@_n57Y d ɻԙ~{;y/+``{+̣NF(/o8=(JȽrԇHEICa"5FlsId9Z=C?!=eN;7GL^=^oZWv^Mb 3r5wU/gc#Gvp?U#ĉ"UY-8Kax&%o?F}Sا7~b5S{l1'vҡ_Q =( +~ x؉j&dj)T_sWJg0m H3m]yדF?^wEkjN]K4TlEeEk4_vdoK͍㾖,K9R>3Roe4܄ JΎٔZЯoM:  d`oe\">zZTbwx3#gJoӇ!ˑJ*yAܨE "|A/J_gGG`d Z:ؤ˔'uQ}]Ǫ/otHQe͎xc:e;D _I匬#0YpF^"n[i9Mں{&joء O.QWh(YUcbHդk]pgUaCs+&\u9:N<Z(h/1ZܗG4y9J8)SOr<ZEUo(p^"e0Gx񱸊vxpz0J@hNt땲}m ECc hZT2_J5qFa)p{߉V[BH*%S>-)8epk+:a 'bG*7uR/O q)rRӪC+Ƴ|E pI;Mxdߦt?|z=YDR_/g%7a%Ug[ѻ(%ǀ|yRKe=m-)GVa*_8]Zi_ 1;?ڌ|؛09ƌ?}|ll }=!熜 U-K_fIy?^eV{ MI#ڛZ)z&aKRJd>bׂ8+wfVsW^\BSʤgAʑ 4jfIcvEX?V]T9鷒j 8gy>*)84֍FnFs_[̀Lʢ~. TI # dscɸMM#sdEr=Zd!@3 F gFQ =\.>d[uP}ǻT1Ο=M.n-4 -7\U⭞貋B9˧!< Ka7"TSEkMr$OK-!N__ v7JE=ֺkXޱiujw5![(flMNi-g=|D>"TGe.j[c޼R'uP@Hَ"şD X3&+)[@ ^)R#AyJz!_vCI{nΰYL_FHVz]1vLd>/>%+ͤȲT*&5/9U*Q^O-AHiY]'w]pe 0L0e8vk*MJ>w.,Sd/x=BjUB7.I~q6AVZB:Cԁn1 z@᢭T=y޽,eG1(؎G3b¬-Y#N~'ƀQCC m> $ RCMrV7= qy5(}{@Loγ`դ 3'hEcj i򈅗.V0 Sb+y @Xrc3U0d QIV/N:գ[1E1jQ RQcat;ىB*ҋ͖zmm_R=D$l / xM=#9ZЧwԤhH9ky|0.S8S^—* YՆ.#ujZl)A<O h0إnwE CڦSjɠ)nwn)gAG !:ܑ<&<fқ"[U}UE_,m|ILQZq@ЦvO&^Ylwn$ը{ZQO WFOSۖmC,5 j)ӣ4Z]Fq:U9:9^B"(S-Xhc ! n͕ɑ'Дnt/2<⮒>3anrЯ4PXB,|9T681 '<%B;V<΅G{?jQ*p%;ܐ97AE&J+?ÙTf,j?Cy& K=DDEY]D?yB{גc]z1anvnksV[#F w1ۄY & Sg Rw -: /pc>Wm{K0/ -a^BĽ72bx̰fuwE11?(>_5WgI^!S< %}%< aV$A.ɣF4\i~f\EFjI+Ԙu,G"]UA9Anޑd_vף*UB-r+YAKׁH7$?X=!ϙDeuN ?3Lm0 d;Ϡ0 QJuߥn/GV-Gȷ }w]'*6FˉAS~D?r46~,wi6k4NU"ߪHԈEgc\sZ 9x?AX1(1BxSU>MGV(2tE /}"6WuVA9NDYOƟKeBzG銰8߳5ͧx(E)w ykY$UM6 rK<v%K"ŵ^N \9)dN]3P~"فl1RLgz]ej VioYm-H).NXkXAzGr ]Ȇ66yC0Ab!4lh!8MVOJHպ%PN僑0w'L^nԜ}2W07|o+UyC&6MV yr"l\0^ ATJ cRJW۵~$W2*@>+#^~Iü պ{S"Ts9 4HC3J|OBהKA ʨAο*hoLS xB=NЧ<dn~L Xo@omˌ^WQ].iNulIz8Z%P!QԎ~wo0MVb.t)f_n/,{Tbf[#rB#{GDE'__ 8W--;%0ѲF葠\^bWDJw1 6&AE`9}ÆFh[1* p^AvNI[8c8d jWl[vפ$iMpumFdZl?jqP45|wEVh۟6}e5)p$. `[? ||fU%|X"%ױ i YIe&!| 7;@83͎}}0L".4z Q<2B^iea_!4$T-(D6-F)Ojk=xVJQL^ +،DLx%RЊw:,@R@L&eI,Yt,YaUwu7|L옆v+F @2`<-1Z4'Zj U'ۗpwƃL~ոvD /.9=DZ)Cf[ Wkü1hq_^WY_-2KIAҦ@hVaId(sh"O;-a7eXl/)],cP!.^DqlxeΡe g=EW2Ʒ$_eNa68D~8<j|u xM([ ܙpXW@Gbs5[mI_*kJZV_ȸ*UBh.\V5\cc:0À/ eU!Kӕ|3np6lg@ U4'?N#`293ɖ]֥iQ>bnR ci}?3r(ÒhT΀][|OYM|ʋ1{9jcLeͮ3)i(wٱrP?g*̰%\&Mr,4S Xƀ8 Ziv`ƒbB=;DƬRDdcbٸL#&M[j# ^n¸%(Dz0C$]v2JVAl0z_+8;)٬ȅZk8R)7&$1b4/B~uޫ&sV;Pf_*JS!뇫 @ԞT h<#E&O۠>Mjꎄgx|򐧜|=SuR6 =:,w UCx$T8XVGE+jݜf8Eح"T>ja.[T)e賾38 ر S VI?6˄G S`U5FZ gC%|3 ˜bV6ـՕ# G1Hf$b-}f( Q NF 5F Ŝ]Yc6'.0Ԫ@GH*ñt7g7?Zp==;PjVԗ䷎!LRNH KIK-Ilx]7(mYZ @%jױ"1ү'驝aA@䲀k5?EҶ;Z)iTw/eУDxU'?ݿ[;m*7B hLw!CJCɽk6gOHwj kjc!)YY/so4S $AǐSQp&(I{6v=C.n6+wր F{ⱊ3ej4Sçe9*E Q{ևO`Nz+ q=_0[A\A=)tk tëpp!Ƒz:I&he_]шWl$6u4b4}/K4(yӻʅ267h]/,J4͸@ CDPEi:XA_-oDXzڨhY_Kd`@,T1ܞLS#hԟ\ LU.H/1 $ukR&\'p=22fl;u$sR} 8NM GѠr4~t8v-^.Dr=Ȧ/{E'Wۨr6~8JՈ2yƩ*U0U^}-z/O(s3vrqRFŔaS@GZY [/F1H+BmQ41^,%mac[<V MbU<;Ul|⢱~48_>MjnTܕtMz|"wO٫%f[dϋ+𶢋*|6]D2&a Wzqjwv3!vO{lb֩rƠL}F/Q?1\gS#K*-czm{g/; m2R$`cHOǟ*:F7R[|`u5 t wyFx:;8]!HV<}e҈=գ(CWjv>~eԲv p Qw`TwmES1}sh6FsWuzv@YDQ]߫EG9xfcAR:v~Dopב]_=o=]ewȱ8Iq*K#l&咋=rF]Y]P57EquO,>5þ$ȁ~L;c8KյDz1Qh[Nl_AOE'/fz *] o%܍ئۄ*&~_I|MQgLvR6œEzBZ~z b@ hzJ[*QW@9*+isCxu-Uo>PpM$nH> Dʕ%BHOJՐWʠnM6   ,7B4#lHf H;A{N"8,Ք~egܗ21!rpe=HU ȋZgYy@D4GJm{`+1ɖ~`2ynjf_})., EO b9p"aOV?p\ң}_a'.֨dV%PT`<[ol @KRkw1'QS[N03+EAl7a:'XbzUW|)M[g:@ݿYBnWHl&$y@6.5!N#hű,K_tg=\ypJIH_[΄IԄ-݉eaxG'u⟝ci]w>\k8@PԙJD`ARK3͉Qԕf?WṂ԰?vz{MBf.캂҈HxazAԹ_Y2vފdhg~j@o>FC7i=! YDt0?rX1 DJ;3!-cz+xϰ_,=czd,6=ZH(cgmM{FF$k؆S)fA.b̖1ۡPb;,e_.-qGhm9}܉0VhA{}ػf`Aa5"vvTm5@OQ 'K)'~2@Ot06wA[[&_K>/H+5/cxy.AL5Y/ ezv4U[O|1m۫dJ-!zL΄O~6 ia~jA D5 u;`e9g d % 3=cҖԅJٿ?W)"At3|dtj4%gzBC% ܃RZ~>z>/U@tBBs0XUߔO@k(\ w'nx#Qu2bwxGgІ)s&޲v1p7N> =ӻ{G± hAXj?Y~57I a27;!(_r{h`r\SH zFrƅUdʲXVo)nQ` 'f偅ǻOg dCqYMmKI5^_eL~:MM=`K M%wϧ$Pf{bS0|SVK$S%9GE)I~0h&E^b=OشӀ=7UN#%.$b~MpxԴUA6bySXJ@vCN")hQghdɊ'6ۭE ./~Q˭KYĨRLG9! p!:$4S$(NCEYVf!zob+O 4 JUs  5t>h?ֿ),)vR4Wlk Kв"b*2y*Ks>7o21%jacG*\Jm.|)?6|@51X|/]{t8%F*XyҋpGRX~(|lu}ϾScb'ΆO6.v ,X8Ghwo7BDZ譙!e#'^_tOCu2Eq8pPl~{W;)bg =]!C;=9LęڷGBqB1̴j50ްퟻ K;k+UUo [:kHzZ{ֿ1_ʳmRki 0{v˅cWTbmzf}\slg+M?k݅]ƙV(tĆ Zbgi4`)DqE|tUW3;`^џ# Gr ́|yыhCc.80>(,.0H]9̐3k@3i˂wo-MnQBlLB'nZ<ڽTPQ"|pܫ+ !f$ߊPc-ppO$Z_ |_|d3UE:ϦW`Ezhɳ5!m.ȡ7' ޼wt6 1hwO  ͤм4 ?!L)Mx!vV" &/p65h.M ;RCh'N b1fw PI0Νt#0j/_*46'6U2v|Jl {):iu9a mCwaǡYƑ? Sb*ݣ,5b$ uu#axlu(!u?xY`3C DYE6&۹lc! $jG6N. .i\`_zΒf % u~w/@s8GBK\Is2kOE\:h0nI4 U.9vAfw}f 52h DJo&x(qn[8T9r~ Ͼ`k>>5naLL׽keSpǼkѤ 'T,2)EGs1c|uݰ`(4!*l` IƊ)[BBr~/ELkEe:ki U|L紖A m-3sȫ\ѹNKR1qqDz_͝=@}J{|#.Zў@H3 bv?EOZOzGƅ;K ¡ 5LoWPⅯ*b0\ W F!Ĕb|8ABBb| -ٟgm1۷zNIS%؋%]oDWK0}O\x < p R({gys;]ebgtkoI#j0esXcjw!5hЊ#b-ӅV2"CQLP2) ʬjK+ّÂe-_22956bj8+k^D|R RRwIZq, 2UIDzslF4ao9#9"[s$cy۴& |ZץPz L*Mqhyccg8Gô6Va>>^\:@o ]>FuDnF'KZ a5!rTg1t%B2rQ}]z3a9<@6=-iS#4{ˇm$L1~&S %/8x}Œ;]z/]gS2{%یl| FyYQMPxdI*6VcRzantt \o,YO73F;u)IFH5fb8y8 ȇG<%10:7H,̴?!]%C?}ڀq>j.ҩ-˘|d32Fp:rDHGw MnلʐW> ׬ODBDa[U~('l}0RpZnU' v^03(F.m?]Nw*nМ' Ay?Ial}a6_Cto*Z%SSԺ'j@)gЍ2IW#vαy,Y:RF~KJR(n o;(( o|4I$6= NW,n'GԷ9~+XC;/VUX`zL#g,1[eӃЀ$`iʪuU=Kŝ_h]?,A u/iKVF(;ʧ X tφ>-*7 yM>` !X 8k|(6jWIcRZ R9Q72Dώ]wZ5?='d(N*E6qu2yomĨ&+X겢&wY8&ޖbB](n2S^̧drN ?:zu 7q%hZSXZFiNA ?g_S E,S/|! ̥h\lhRVi"EZ|[XJT߼ \+/4 y\"-k*rS7Ċv'Ӳv- )1WqZϣ`!<1rmЎ~7o RvһB)ٝ5FϢǺ]A#N×.qouJ!J@ X0R]J u:.;."5n{w˒f{iӿ_7UMNiOo<$vhS0褹hԂPSaanwT~m6"-ǘJ&UW ')QDE+f&lI]|t!dL%p#HR9qTѼB>RZvvߜ}\nwIp0^ `Vd70ͷ>/dʐHq<BǯP[ t_)# 0Y"ж7,UaH$EYӾ=X-u)%L?$ 3S)[hI98^uqE-NJYvС QLS@2V]9|sa?w-5Rc*P))zKW) 5,ܸ2TXjc` QM>g5@{؍#_QXό niIBzEpu^f>%=*oH`_EeGAeZ|)DZ]rCq15~oa˺+BK ØzgS'O8 1oOC 8uX| aN9s4[ڢ:`i(L4#_ >rb?7Eי\7pUT~,̩0Ռ>xF&vmK[ns[&4(gmTeUw`|xdhGIT{R|DIna{&7I8YW2o;!jM'j6Mz5_bj;me d؃jx#Zo R\Hs_W(-o&2KRg5XSRn-Ld2Ͳ]jwsd+,{bQoo vEF?- ]c/gVl@iM8pUStPQ8)F|ԧ=7_] Kf܍ix/aQSp[aP<v(15 0h~B܄.]!5B!.3d0,L_H0zVd{NLwl٤8\QƼNz6(S13CrjG~@n]8}78銓#>[c13`r b:WobJQ >$]qp`z/x$II$jL:]>@8:X:e -+CB9߮ W=݄qO p;+]/jTx-_+*|]ƗDO%M\.Z=a +HtސO_4\-u&rlEj/ܘيfv~8b|pyp>n$}^ Мo?jpr{ ^X?#:a U,7uKqYE:>;XC.tKtc1HX9"tc,m:.Hjxetw*a$88:˜A7V# rV)?]Dd̬6{>;h(vV>|9^-M8⥦qƄg+v:/.XTO,luoNrixʢ`d4n u]wTFb2~;BSBݕd2= CJ+}5^3D:z@Gv|F>D1L(JcNKR(-j #iN&N/ snSpKX"tW+d!,w7Yf5tҦ'qZIB$YD6Hq _AdO$!ѹ\+7HnnV7>_ӢCi'T;@SaG禇2 =}GP lxv80/(?!oȃ H^Lr1^ ]BrD^RV?Ȟ7rޔ] {8cQlA'>=d"rs) }]7JL1ξR?qCWqT+tɇ%<+IA rZstg*VMڷߋ_mS 647(M֫qBqUGI~ 4  sJ%KeL|&@d1Fw'&KZoEz <6쯩XVBnY ^l5.<`AO f^f% 45W_eX5~L;zK#attidZ!e+'8ڞv,M%IF=&/4j,gYdD2;WI8 mhC'i^2 +zy5K -vkC kBV#*BG6;QSTIk)Xoy)c¦]ed]_v\Y5m /N6#xSR:ՇcU&;EDL-NsNE#҅{s]{`t\J5̵_o0{AbKA[CzU By-G%vleNijgμS6b4Xޤb 5Kخk0F0N&ќTi;ǔT=cԉS_s@fk2lWʏA#* +};Eh'OsQFuW3̵y b,UL{$ؗ{e$Fw05a4'VR RЮH%\Y;y;`ƒ {O)c\'}ڜ;L`dy VƺLkUr#=SN&:p Ez#K 0vddyE_w@tTN,iĤiB+q)k#+LIY,{wf5T"|vcR^{+' @&Crn'O5PTE#c#K~]@ )a؛a \VlHbJ#@ rC(C0atܠtG4~x<.ճeiiGABn:"" M aE):v )DC<|vf_mJšAS\QQ8Mcԕ@n)7JH:CJ"+?I HJŦpPk> 䁫- /A q_n.i3\zBZjf_Wpmxv9Xz{Euռ%`Ve늎}c\+DhJi8xn \$xaF>}'Ӱ'o ,>q<6W>1x ej7շĐyG@ ~w\D:<1uT2=t%+IoG&f]& k]W @}/' j .9yMz&9z#3e!oia:Gc禤7^/c`x~g/:ٵ:{p̞{kˬy2 nixlOU#v&R9X5=u>[y 2:].Uυb#x"46wlY6Q|9MIH+8aW*G: V lw!LCZwg#*؏pE|L@M0EL+529)"8p'~MG+i(gR̄{mT,93q35s[YfiGend| EyHtn]IG$i-kXe:}a 98"E ?q1%90t}'$ˏ0J>8$%>6հJ^9E#0J.Kך%"j} ]5Jn'N>nA=;Ju7xOg}vbjς[Wza<^i A7SD*m5:jƳt8~"Π zyɜG8FPc 2(cԌVd1$͏E_cU)o{SKXI4hu,9mT&کdF8;{b*Ǟ+: K(!Ι|u=^ы(0޾b 2bеceO|p% "~Q*/LfaH~@f|"umuo/s(3El6oaWTaaCm@u|]qfDvX<1_GP:q x!agd%'[TKBbm~w`baB^KN 5tՈ(JQAv3.$;  %]VD~ T EmTVb{+i/K\nIX;gc5`T諏d7=k`Nfqq2ƧNf_aCmESgw[P( ?p=/Atr2kipG 2%kjsՖ)(ao/v=BԳ |贀ⰽ]mY40A#-旾U -X5V`&KU2yԯ'3{|2''v2جB 9˷+R1s7vʧ[m{-.gfb] ?ӑ5z( t|/Mƶ[1TNϖE*^񱸾P%\&Hp {9Lmpj5 p _TE's}>wQ;6oc.Ҡ1ls݃ zHm U^' WTU.Sct/Z4'j} Pz+15M%ֱТ9Dn-Vp 7EU]$֪H80]ӓ=(T\O@`I mӔFiz C=NT?7:eG?f"S#[Ąy0d p` ֮^h!{2XHFFbwW8EÌođ TXB+ܜ 1ϙ_|ʤV27X%#E-~j:G;  Z?:g neeu,U)~o)=պHVRyy~~}ywZúًQ f^֠`~ %Y|pvFKpSlvv6w]5Y IyT^dQ2{FӳnŒmkCD ȗ$Ԗ{;LúkRq[{,IxBгC]^;@]ao7RGR] H'Zɓ$xgC>*\i7N9oq^mW1pޭ-vIfi7'#ซyykSt+aMCR:TT02-dyRS<Mލ^0.;9Ȓb"U?8`; o">ʱAY~?X0\z8)igz">I@EUK L b cerX'RGXq!}]i uAC5"qs >o,.GO; Op%gPrwxwTK˯8?[[;"quZzAl ¥5 /"D>hYsIFr{9]:RT #TMDRG%;g=Vs+O9}6E*g?ׁ1)U(sRVe,1`.Bl[Vj@@KVTm4_iK"9\!c+yO޲Qzְ —ZxVS;?)URD&OC9'cbnm$gd_8h/#b 6 @UMk(kD4kͫG0ƇX]~_ x [[-9:?M6K=.s|i,֬|F m Ғ #DSydY/h'Ԕnr\ֳ)j7=B :m XţASc؞@B :) 60^QOue5)ЩA,gC!>gZí+,w3}w>)L{vcO9,_I Gf84IOim) hc< R.U `ƲJ=.'d3ʮjjc>VGEw D 0Č`L9B_!FT/]Ka8))g*rd@_$ڐ. ͯY sAѥW #4kPeG vaU&gWNNQ~ߓ tsl~lMr-)#6=He㇒魄oKҼp[juˮ$=V+He/oWL0O2h ̂͜᫫-X8;g8~#Шj]H8aqU" ^wMdgV0i!)N ᴟ)dťVg2zPmz虛^s<KNW|ph >\xbgmt܂L!kyR6 PJ@(A (E bv)/*1:$(f?~g4r?6 ]fNorŵb)EBy GĘc6H䲁(Mӝ𒈰-ѦtES_b]2)R.VfjE*~IBGKѲK WBI_+&'{wZv ֪HH>?H*S@ܪК)Q*rcZYGE<Ɨ(gs+NSs0SJ۞ͮaLY_2C+uS 7|Yj jtaZ;g4Xq 9ڎԈuD=O oG_FO4xq#Wń?jF*ٚ't+(ސnjmZҷ#Fc`$+׋^fܜ ;XX?$!+_SѰOa-mu .'CwO&R'}1&n MYdB$ ּ o:Uan~ D U! 4|3w`E*:_\ɐQ+'V|?q%4XtHh a;*Un٭N =(r.Is6[Ts %AG&EZT7y)1/*U{)QksͤRM lxE{*894 %cxMrdb IgT7/pY1_0o[LM#jHDuvo]CJB%U]jFs?"KBFy#!K]6z#j]ۑd\S4 `N4+B'jHLTeU 9"'>}2 n38E&߫M@~Mj̚q0Xț xM[N[A o,O M׽umԦb`16:!b@T8kb7ւwkn2sI|%Yw=un|uJkoJ+=Vӄl!}hq+m$ rv>ެa L), ˂yEz8m#y1+f1.Su?7ؑ'M-+qI70X0f0Y i>ҔA7wߐ瑶0\.COi+i gncM82#ka G6CÃ-szb7`tI"!s"+sC)_y2+ Z"Zvg{WDutӍVl8oXO*Œ2Yuа+Kc-Jjaܯݠ|psAMn5d|r[4_#58b2u )krn-ED*e;{/#_}R3 u!| Ls9= #n[hZm%uYuK59e+mGzL21+ +0cfb/ϱh(E,q18Myy7`":؎t%N@KP?p.Gm97|SZhE|Iњ\m9 vR֏ q Gn⼛)HN)W"{4~=l K*,=g?7Q~W^mqC{7b` ׈]j_ C˻hTa6Sױd*2E/qB_-lnOׇ֟2.k3=W0c5Z09~qGi~cn&ѧ+f=渔2 xjY X WsgLcEka>J|דME9lbb׏K>!ҁ201zS"FV# JaЙʯ7CA?;h7j)Hҝ/Si)`(2%-&Lc%!|o!hC槻L] @e6t&{mF"Uu]u2R5Sݙ h =*|JY]oEa ,V6S_w6%ܲ̅ C˽k@H3pw 5T 3L%p_sIԀ`Mlj;/^8c?uϛn\i^x1I9ÎPmAFg`9֌_kIZۥy;eCzRTHX#0ぁ/S+xݔ=2蟂MrXCP'D?ư9Sd㜚FYzt Ta@e|܎%B `V1_ f^I\Z0'W0eEuQIQbXMR1Q꛾)LVmTIs8w=uĚqSN_fNy7vZemqE2#Cb:1.Ԛj!/ÞqN|AXOA^v$́]9,d;>;CBfLX#'^&1v(#uae鹻A L_ %=SIVuXy%Y6('ZE(㏼$L56U8noz3W.U%5\'aD3oD v NiW2` HǺv9`<0Ct#Fm K{֕5a uxjSRsEJ>_V:Z|I*h* (~"s?y Z*Md/1pJlsWUdž[GAUxs:i45@~x@e1ӫQ/_,ដ8x/Ou&gnΧUktiNߧ2pf <bK<+! Vﰺj@"wNa2DŒQVWu'L&S,O5-Z#TxZr?SVAD~W4k:nUЅ@XbZN;YWn5fr2Y ٬]}ZɌ붹ɜQߋYyS9cěsҠA՝[n YÂ`/43SPڸ9<4۵N`9 /dur3M֞j%:9I |&OARiނt'%8<(IB ~pwtÃ5h&(T~tڔZTVjmX5 ,?N"A|,LSQ#ib}wli)BPX",ϒ ^`/.i>ZhSKo-v,_`V}k .xߐr9N[%8أӄnǼm^ϸiyaw/>w&uɎQ> =ÿ!^6cP\ ݟReo+AN|N# 8i_aKӭ~?r28eN O2D~f3LCWIU$0kt]s( {J`CLxq1"PjhY07'pMՃ|ו鲡Xٸ?%Qjx /tTMA8)`ĠDP cR|Х}>o@aw2;UFWM3xdPFC{eӫ2ǂ@OӫҠ{ h.H=~jc\Q^ } ' u.? 3 A/vg9eàTqp:oQR_.= IقHMeѰStqGKF^V2Ŕs'^n421rW}\;V@rZM8PJYB~ÿzR ]D2\P*ڊR'ba4¸:m󥭲6GSЦm^1&^ zYz޽(xF 1 3İ6b&&MmL+yu^?IsRO9Z.e&0ւf4 )xi>sb[>LUOGD فwJk@bXAҿ,o;AT/*SAG%N:qq [#vgsיvs". 4'2'r!P"T"Em 4{T_akU |4 mV 4 ܋ U#$2\4 kA;:R6{F/;bt'%DG@7_zD7Mn+kPW%& ;Wx/p0E0S{BoyE!uh:R$d M+ %6㇉*u):ej [|WSwAs,o?'Pݦ9W{-㜬˪2|dhQ>H9mF"$ࠃsn`a7q\wbi[ÓeH]љBlJ-(7D_g( h8)f~Fw٨ [㝒oi78:JY$k!/V֓O/L:xVSO -u~uS$'WfkmR*˽fP7 z #H{ [F,hl$ܜu}>gtE(1XiB*Woq"{:-t:1\Oa= 0E ^#?k l6X:6f>1]kHo3q7pV# GOn۾hTqsQu"{؅G{!P8 AJHerc) PC uT,T7TA hH$"ْp]x9}X?40+!ts ] i՘{(Ol7>ҙՖ6usG*j1k:4 J\l"[],mؤ‘NU_Zhusҵ_#b??7Ə° ψ& KN${1.N';tg9t ̿hoid91}"p 4lZ'htpmf]il9J$48 7@ǜv<.槺X(с䭄y̏mgjt9sz4B13GA>Tgz<~oHlOۏ%eB"q,֨uj50M(7}~xzT+PzKV*^^ge|y{)Q 8\H#`Ɖpekz X$b'8 @gTCzb_au,clfUl oϙK;ewXȢb9\RnW▯6g>z0sL00SK%OC-oNBLwhћtYdΜSЊC,ܞjpEU9.ZC geN\dohW} ΁Kqע% 2sih.9mRZ{sCpW[[09- Lٰ8{O+PyUȄytcmA:Sn?(0:J O 2EnE' J $Tr%.bW-3vr+t&3W~.!_wFZŘQ9 ->I]7C#R;ؼaz1m3%1haA3Y3jyGp6h.T)-8܆%KVRFM3aUm ZYzDf>Mq[l ǀe*hk5jtd-kgMx 2Q ~1^G. =7tiBhnl""DK?P!5_ 6al4ȡ eQ/-5*'*+ÇcO--pߋh[(u:& ˭2. ҂ FJyEWt\uĥp/VT j^AYyal͞JԗN$oAC0.錇|=}+ wA%/_ GYǚR[v]b qag*VkkU'v;jCo[B5L_Dޖ-pM"Bo ȦtP wy1q2U+8U;ǧ+H8Z $\J, ӂAfSd @'uCwgOJFz R^8 Z}ZU)(5fOx|8eJom:A6U8FݤEmA@5ӏplZ"GgN;qX*@[ 8ib1/Tit bH"rQP*}D"DQ*dIːP4gcmo\OCO]4_1v.j O4Y=CAp`QN"}S8xWsi{4n/t{Q.7{'gSC-M#$xc6 HpӢM.Ά- 3Lck:p;TSQ~Xs,_lѧ4Ƀ}e!`A:aF1BdV%vml~?@pܧG٢i]KՓjo!=zɫmvw#>M]/$XZy1& T:ri{FW!Zy{B"sH>nXHT+`3Y Xs$}\RSu,yWgЊYt1]H{^ׁp UYԶdpRR=w)JC8M`mpvE&޳CFv~wmӤ^0捫kbX$ZH ־9GɳAVy Jz<N^ õ8ܥtnxhz6lH1JH2"6 8oVXok5DGAc 70,_'dwDaWBH؆'P/{%xƶui6`1;Qd=,V}a"hzSpuo jn?Lr]go.)4' Q. ? hewPd_߾Ar#LYLx~ :ܙ?u9HK4lsw:Sr%*K\:¥ə-I!)>%v,Iw~=zJq3|tXY$v~OpxНH+_*rb-EƜKeFvc=en _get.4i?JCQu[KϕXc;)V|?ue|n \GW\od3eI⣏VX4˾ Qd ! =JSW@=ܦ ?C|ݗ M<*y{¸ ΁%ĸh )9hR}?:[%qJ R"hU@ґ[Fn!,Vtr3ܨIu3Q\\4O__lӻ;,U[PD">d( u/Յ c$G$*KH`ib:#xσKKF@@ apE(HB p *V._٠Tsm{>NO,D/À<-̯NkfNbf|sU+GW) PIW2XI pSYD2VAFcEOƒW::!ÅfJrͨl%5)#ύ&O).7ch.7̕*?,Mw~Pd[LI&-HJB;$'^ԊV:6y0"mü S qHsFNL:[ 5PU w GQ :'*1˺-RWԅڠ#^30$sg/"_&tmkU}YvL}"ÚYC]R"'x hyAyoՇVy zǷI Њq%>ree Cq2ɀm&X׷ϱ鼛iȩ?bhۣ2U(.?R][:oZ.yc7"WМcaZǢuiTiwdR;#8zbhњ5;LtBd;mYvxk yowUj m G=#A#HM=B͟\f,elI/bI&X%АJ5 \^ym*ZBjCόsMO!8:Ԃ@P2jWKZ3ͼup~z;SB"*A>)/:pt~ziʋL#d/G)@&94D8{א<'̔Ӓq> )ΨPPth|.Ky"n0kwK. wjn{,zwnzFmd4+Y/VG'kH&qr7kjuWObA8mxOژ`Eo琀l ,)BQu\o:h.lPpk@%Yc#zN6e]-*&j?横Bݣ:`V;VM* @)l|Wch a$hW(/)ljs+&&0L1OKUg}[47_ΘxQy<02ʺ5Vվ!.#&Ą J` |9\Ur KWw=6*3F7:Ґ|{ )1IcZ2*3bW܁#D{7\}nmبrIG576ӲOt~[^6 e${yߡU‚mDpG+M.]/`݁_8)_>b @О p;vTd2]cJ/B Љ%ËQt>C>yîcd01w$@Iwe(erm]]"4ay0ԶHCƾ79Qs.gP`HEbf j,nҬAaCg)-^9bA*/p͟r\S2@ uDIleE KA- v ORBr%=܊Ƚ {5rs. >|jic&u?M:#j kDl'%[abTH)]]oظw&SNř)NUR¶$!ֆ(ۻdq7+'<6z PfC #1w v)_td qujx3;A8*8f Em!,z@3INإ`8Iko,NR 8I%So5]sp> oNnl[Lj;f+uň{;3Mvˣ@0@[Žu9"m5M;g5kq84zhMGd6m0N7=JL ⡑:`~3yBnr.Խ9eZ\o'K z&Z,:َS9CB R O'XCƐ%BNl˱o,BS_v$Wi\GT;mȞYcO\ŇY85I[XbF4٧*6oYaS,4=oe(-[UIL F ?H "s&,Oh%<}at =dYZqS.ŞbEKF|Pk.qt$83Aj1p{zC5G?9m/^4y7dYIk82efvgǾ_z b QcF(NT?+N87w"w61GCgRFţ;}8N@ m8$+ .Uy&MP՚p5k5M;9uڤ%`Y]J"bHJ|RVҭ9*6_ծ6/v,޽he`9 z A deU؄GȸDHɤj=Dz2]BL ƣ <[{ =&yD"}N=Wv=R}D3F Vg1Y($n*&iL#ΧSc@>#bXRcB$bP%<%η[U !#>=/JGY6ZNn&IR=ϠZ?D##mҞ}lڇOA7J*M_٪siŘjL6Kl FN?>ֶnLECU+TԨ%"Z5p2F/彊Qj-T,ӉBInN v` YQ!.F@nSu1h.q:C1J8EfT[ҢPc$}}ܠ'oJm@0τ)lY,x.^2 0؄":J<# : 5hj.7W5n޻r*ĴX+˗lŘĤsnVQv/V;QǠDL='l!6A1R[-(tPRPQ1hn±DZ-:a'R?"V| ?ihZ+OƐTo>g YޚH6X>Y_7S0RS 쟽#9c hGboC?SRK2`~M| 6l͈h >5YQAm-/gaDŽ7,a=xYвEo)alI"2ˊ_ w}FKU ]P&MZDv¬oaN^FǪ8&c`6G X +Ac%EFU=n87%혧eB(ҶYsЇi侷 ?%HE6e6tGM/$a2+;-?}cGj@gqw+|VnZE =7g'0贞r.)6cHk lSG強Z5*/:[XG &*̤|`yI _淌+~Z8ίӶfpEzv]תav0<S%IM8(ޗOv4qT㲁:USE+'qk#RC;`rgNlm~Y,CV8#"MF MiޥJu +(PCTl!3r$`7G,8;IeaD$_?l%i/ZDV1˶(]ٳw6.0SȶoCI֝C|*cG0.Cx=!KUʺ7B6zV?~U0x |mB2X誚6B*-YIkO|@{(شߴ%|kkZ|x~$=Az*J +rz ) [^DVxǀItD>״Q^ 5> 㐲t`ednj*i F ΍Poe&0*=}jJgVx1€H0.LjL]HZh)|u8$mYQdגZo)?MLJ[B ;zǙɥ(28 {MI3j@7g^ {.GOx="JL+ߦvB N ljuS<,wc]w4b9hr F@,1 i!= #DRXokڳr)0kOCW3Ad._Ρ` kQӎ}lOOZk6o*W:Sɭ ?U* /][˧T̈́iOp8مTkgy ᜤ!!Fz h SGr-U) _PlJNܜl-0r\mc?;w͜&ϸ4 i?rЖ, L1z^&4ݨ$h]9"WN+hCP** 4X Ѻv.U[oYMo,kx@ 9/ pDQx@ //<:\d{FUfaa9T!ьe>?ZbC&L! DǵnDbp΀4*pN*~l[XN96h4+FeŸtqc}-jwO+=B"6䧧LqKJ^%5J B7P8+>@(BuBRc_нhJn\Y򘥗!t_FnkYenB֫IB, B>~TpÈW4 U: K t#DlvO`uR7 bCPL8g}Yre@3Ԝ(q Ptr]6upÊ|%h,^O5w B|n<$(;y}/}@#\֠0uhɷ"d+tgdA+GwM7Pa!`UGR[š!b~ڷn,ZYp ' ՙrcT;Ñ)^4.DCgW_'wDzxώ֧L=MCtSH\KIĨu|\J,~McJ,!THRÿ}DÒxi7Dw/-͉e2!2|iyq X>e/ ʐ-1v}YՏe(zLTvI:b!\d5I2͞9Fsu` Jn/,-.8bb&2zsJ>"/\keL5sV||׽=\ʿ7y+aO٣ej aώ]')v;% y?Xi8*͛-6Ґu^i˱Vhy;pTUo6ɞ-E5>+ عÄF&X~i߶ymlCUs^t@i6DU*P4Hț8X2y7c/_|Ub0!$RRHVi7dhh^mzI'Bu 8+T) ʙkI9`iO˽<ߤ%!CN L')>(f!DͯJ\nQFKPli=Uw{HoQ}Q]]i+UGI 38wQSaadj@ ]2~4Qp;# VyjTz$9H^!4 O,0vA!ji@NO&y5nkg}8'4Z:|b5,IDcJmmc M% Eejrueq4[W3!w&vC[eTe&XtĪ N5\F5t| "nf p))M欕QdKpe?c5}[t|y jf ޑ3ONXa1f@3Ͱ]07F?),hD:;윏 Jv*Iq)_d{޲֞."Q ([E$G(23W]ojݞ0ƑbϗEJ?Oܽa3 IT>S|%~3tJjS}+z΀J %B3ЃNSLbd^ &`6M;L)$@% Z yvW*mHFwh䘠{H7;F-'z&1GAB9 +~]#%E,( I ˗~/J~H If, ~}p%p g$Nl?Rs~DW҉^ZC1GFX~FFJ,rS'-6mzu=3\*o=mfvv?b7Ch|.Z0Pa`8}mHmEvMVor]x ) !7vs7W%ۓ­+[4"Qq;dK&)ÛÜB;u\tv>.tvgig7 k{5׾;>^MM}.E!403Dknw*+iV>$ƉR+c.~=XxW]O)|/笨)ngC}/G=!o.WBT |ioPԗB߀ Ie107OI»^AQ"soOe"a\ ҙ24D}nǫ+7.6zxtPjQ4c&q hUNxd~k(b 3dSQ}.k"> ~tOIvxo+!"LSJvQNjSriֳ0ɆYSRkao K8ϷT׈s? [Mm8TJCOܘiT1μjN%Ez8:b p[u7kp8MLc@3%4=# (3@‘݆/ Ap_*R9"˕"v:l6t2VE:j#frE۹F [F>N+]7nb %|f!{) 3i2MD{P#a_.4qD %@̮p?'w$?M8CJԯYxk;J W`)~PUnH-``ȱ (r_1v7^_'9umiPluS=3OҘ#b97"BD.U9=!٫2L~QOYFmQ Ҫؼ<_B&' bg@i%8#I݁Lu4'GwcsUW%m>l&7x=% 5chX@ccߌa헾P <_a JeFe3N:$XuDc֠$yq k}D癴kЯ@%/n !u6TzTSȠ{aĤALNV5`C}[Ů(2l$7 _-p;̏ݟT'xO Q{2n私cm!Bs8HA¥5\+${HFM&aj)#x˪M˪Ȧ^0 £ftZj(06wip hlC0`wzcj׷6#T_$*Sx;:*$oe>+h*^%iG{l9++L ZziLgkf>\Yo3RUKv-jtP=eX+ipC09 8eXj^@S6W4~ty_2עOiqt̎dm<ȁcH?(WaF9\9WkKcѐ󑮝]T3RutCFhb-xf+V*fzI$2 9>%**BqCD ˋ<(D8-z=eLTzCWXj[rɧv)D p"J<'`o^de2i 0ɗ7:d&b"s45,q{gvٺnwHͺEu4iZCݕG27Z &"gmL ă"\Om5Ufd>~gC(1^Raߞşf1*2XsH3Brf3xdHs[za]^RkkWX ' ST.8װ* ܮB:FSsnC <=yl6;1-Ȁ)N+"syUZfG8"ZVy'KK!X~wmXnK}0vrr]K^U a`-H+%;~T#7;_/`0TMNj'|Ś7|Y|L`88|Cf>g#3`?67'0 rJq}| K?YjP*.ia5Da;g:c`kAgu(@UnFqs8]J+'{g\xwNGڱȸese dE/aeI]KB#%WWRFJ=<=PIk(g!Z{3n!К B=[`Day?4RHWfSj?Sg\rOBɾWD҃kA˛Xz?ԍ" }d5NL0@ ] Gq]Ds<_|31,VcQ ,2  Qm]3XUOyJW8_ 6. 3Gˆqu`M$-_XBdvpn?uD1laR>C-fm # r7Jɱή$pG#^ Hנ ýGX>FY$<%wlڜC$Yc8* 5S TeK[^oO &l" %' sQ:m򿫅1Yx"Q:D4#zbkBekzdq,mtXo2ۦ\Cյ,O}aco;pQ~dZ#oVvWP]wYyr]q8ڶZGs>8~rF8Gt\ XTDB-'Gll+ETXT99U(d v}6k=anBl[9)q#X8UxzEy׫KЂQrJh$bĨV{fΆ؅1 -6r"0 _L

أn" i#FŮWDsT(*:r&H6O^q:+3K,B (V?Jk]TS[[PFfb}mᒚ,lzRT;LFt 4~l#G'^6C!]O)F}TXҿ2v%*[ڍ~:!sеRSZHNH;wwJ˼kT꿙V !6H€+CT{偽Jm'C?G"Gd6%Yg1VOKbjߺ싒e#6 EL(GZPYA~'}@! niKgwμ qL=nD,ښk-oil>Ysp`K&) exJC ~{1sLPR 8쥙Wse80Qn/_ځ9+H~P DḇܴefbjZ>_XqxvTuloFe`] ^TbAعL[vHksJN #v;\ԉvabP/OT]$P*ӛ8瑻w@;1ϥ2P- R..N]}  gf0 &NOAueTj~foUVZ&IJϑB7P=:#8{/&߷ Ti7ⵋQC9K&߷?8A^B3 /Y1u5Qr!k;VRZhyy/Z6vqFwU~ؕ/yk)fM`rYE-UKUๅBXrk:cz ΀UpՊn IZM/ ?3oPe9 xm#㛪_߈RV79[r%'y ZK mƨ Sgqp ק_PHwZ nZңh$d5|:cߠUޕ VkGVSDzC]K/h~Fb(ge•mI-f \a ~= rDL+殫nr+DK+-g 8$=T?u^}\ 0 g@R~#p33}Lbho[HHA x`y4?% T*fgwgp1 Vpu:gU>AMVCصOOA@^XrA,UK΂w)r-+ m([ Xgm]/Gqg ,?E^R?>VI ֫5 ׺V}M+RhCʼxRJo|:C-3n FfU -Ŷ bHJYu\v4S(?b8\Ȋ{ɕ1@ n$/C+8,І+!.sO[eths)B.1pzL3LNqrɤ[ qLL+nUR%G4Mj,]#i# LA-_d#A#:ay ?w&fKoq S dpv"Dy84paZV$؄"Fc^O).5ʩc6ۥ`L[T+}-1Toa:ϝ0g[1m*ơLKWCy]K3'\Xl-ԙsW2txon9)3_0{/E]DsʯoR10˝QI녽D@ڶ *+9Ώ;`P$c][xW? ,?C lsFSu+w;z `3%Y#P[L:nLY/iE::т?a$Uޤ:JW4+Qj3u@&=&/]#pӜ0&*T,dLe@&)g;F,׏$=7՟HHjl !H9C?cS쏞 % D9O~áMDqn F %ͺLN;>|Z"[& t,C|Wk]\Fpީ z Ŧ [(=x݆]ecqP(v,+0(-oC,SY=0kQ i!޸*[YLމ•aPsgX2ulA}%)]w^2MEjuj##z_|/&F\.FLn;ZOQ™ |P0yahE=nTI'cgX ̅FFQ $Mu"Ju!Iǻ`8LHgV1qԪ$,_K b01qZ ,,1B_ di?k}mM:z8@=Dv2Dj_i6nJJf\&um @z'H77(WgmRs&ĸ6G1 L}$}ބb՜eRAN4&lP,K3\ @Ļdl=:=}˨ZdM?XMfrOA~h.f<>B`aJ%_)g:2y4סMR1"ԑA}W!!3UPR7p?* Y H~+ZD)WWDiq#.[eM=" hFRڜOy.QDmgmכs7BGGLna^ZttgzWqvS !,@'T [PT03wj1b)&CI0m40H1=e[^Yѽ NF'oJLQ.ǾVĢ[VddY_  GL}UfV2|=AGC< ? a&">nO;ے&. e!?kW,RΧWs|. zPO;t$X"X6/sC>]Htj#COe]ʷֹ!JtOO>}!pbW!j&(BMQjP 92#EgaD|Ջ@&t>Jȝm)?9tt-?T Y趽SMԌT`Aba#>Cδ?:(NsxmdNdL`2֋'̌Jt99~ 'bTR &CKcy`GΒ0S$˄sLpXXe@!H6lq) k0zJWGj:Դծaَ jyZ!b^+z^;na7՝..nVO ЄI~&g/>.Xg793_yƣa*c,i^O, D}S^GV,-![TcU'8tj%"*}y"9k/"~C"40=WEمXPعEn,׸V\Վ79*K~A/"MG*oJ{Xg|wf~&+<\dQ&P%]wV2P?zm:Ivs] P{rӦu r d0f,rJlvVsU$PS\@KTs9=Eb]BrP!W,̈ᥩšVapI%!oe+﻽29JI9ёlmRJZȄ|ts 0K\v;^ҼV8Hh=AR(}cN,1vY#'/Ni7o~%s{lrTcӳh~y6Tv 7g`aZ(I6b 7Rc݇q5?yܧ$@tcXaV|Fu4UV0,$s5>W'-)*y!?xj d Q5gpo`z.#=Ƹ4uio; x)/V(*Ja4azwq= y?2qSIAOUTJko_|8'4V޵`Gjz9Ͱ@Ygt0FoEG3AsXJ_xR+xlM.9&W2CsT)27IB{|hQTi-s !-{[A/S!~/ nyRss">tP@qefѱ}l+!1}d x|N!I̕9X:-gAJo+䅛SN49U5)ja9˄sAV4L Q^ w|qX6BaP-3i>Q Z79eS RDݷ.Αk9·yBNmD&SzfN 5hl{(۰XnBg1a8Co~J#AzsݠCg-$\'Nx·}4gO1KG$u IEjcCu8 P+eBdm)6v)^4T5,+5A`" AѿH7=k?:;s$Ȝny^~==QHy?YCT6 1skխZ|r),r1:q)0&Ȣ Nvtip$gW7)i &g?F J֟)f1jC򂀼OWW`잂PcY_"7X&;PbJz\fWVI[w^drs*E]"/;~8xjC8c=0M\Re,toO\)`݊r2XC]գdڟlm2i-\9֣HQ;^T)~x4`P:FD!E*S}ā@RY9(u( Q>Icmm܇`ޫ c5 İDtKo|\g-ǿ*wr,f&0$4mʮ)`0OEmk/&ŷ-l7*-d!gXI{s45r>V$)Y$0>F9>K^/XUבpax#Sig#P0sݛ4namj-QOf~GhSfWN?$ Vw)2 8.úmϮoL%v/9 ƛ]V$K $r [C鿹 PƿWqpV25>Ӽ}p6Qk>^\O)k-' c ۵Y:ʢ\4ϑljf9Q xߩje {f{O(\ԉQ C.,#>i]*|{+f99Iסz9B5 `SebMϸ:' 1xѽ>7th;ʏ` %< {g*uaTx[YM٩5FUow.5;޴OAGg}B ~>[օz=-4X@p.:&m |ȃ;db/Cu(@SC,6½t[^DRE`>.^G("#z6aQYXz>lZNI<"FݝֿcYI?(ZP+JlrLU)J!lS;ZWp/mכ̮!+>KѨlgI;$S{_8&> kw)!Ȋ^F~e|[6(<QfZ!1@PKĒh8x̣ u{JzN}G۸Jy`RV"<#!<TPqkHySClr KX.vg?tfC /6/.VhAF½wg!AwKoC?rຎxND>:RsL B4t|Yc'G/a\L#;a ]!2QR)r6spL{C Ko^Ϻb&H,Wz!zX6V487M6GHcBsN佰l1w6d*2 5Q~r IyCX)_Ցmc8otHyFrE˖Ȭi%,x&a\fK9ǶXۖEtWo:Ѻ 3' +\':f?] AnWćxkFCx6C(g)zEkCN{%g~$Xg (u|$^뺩=ŘlL*:y J9Aхpd(ƖlKzyI0Uy̓}w^k g/ s2 `}!Nd)~іs R*cWHLuC0PMA\X' p V3yjisgR85.lH"#TBB!6wǿ{T;Źr0p't|Z<ڟ}&no%|I# I?=MQٙIaQd͙sRLTVV:QϙJQa!HPW!`z?|<ۧSUkd:lLox-R3uP~}HnbzM v%FB'M~6Et<#Qd&r{!v2^ f?X&~(4(k M1R0ѡmzP t 0E\6fk+S}ۿiYG%bI،l,XGyP<\q͊pQB?fLUf/ Nw8})?s o N^3$o =W+J)X_%cw5O}M#$F 5?I=.YxgLA36WN[WRAQi{t,$Ow .=55=YJg;~Kzl;p,tW`:&s$XAA?%Oa}DgL\輣=^x,9/B7UᲷnX&z WT-ўA2o647PpENF} G-)vVk|9RABѥ3UTbBB0 (|[Dd ?hZ zcРoT7[&sW?m$š6`x]iH%oZ{BeåA1&}V3z!ʟ * FVxbb*U%3oAu|LVCO-?"{nS d{8R 8а+"eA@ g6>ưLWg [( [ kUbw^`.E:;gX@V|tr$zM`VpahIV Ç_s\91LtZvlZ_p_xTFհ.`l]z`}htRy\i5g*Cz -\qJar8=)QF46Ѻ^1v#K,)'7@"e.5m̱ F2}u]H$ %]vP˷ /r?I~r5>RKBIKkhA7>NB0Y/pY:BOU|Sw~m>n T<;KK\Rْ ?Վ`zBua'ѧ?"U"\g{']u0"!R2 J<'$GLB mӗk 8SC>?HCdf4o7xa&B>8mҹL${nJd0D~}0 0$%.X}إd|@n^l&6Ir/Ddrx\}V⶗ƖR[[^uh TL75vեIrW=E¼3~fJY~1ʒ(l2K~JŪ)8Zӝ3--FiaYz{nZϑ.5-l d.`~y @!ĥ ٯ56m)΋,*\d]IU{PDO4=WԳetlAK/-Oj(A' }YpZ YG?5D=wDW8P+.ѭt5< RGaL±|(b^EڰS*mCfEw*̆^rM.JbuM{4Z0k6`Q瞂:](< (>s")),sEIqXxQUKS;ޒz3fW'z+n"wQ J(XE[1L!f-h)IBgzfS Bn K Y$eSKXOѻ#7dd=t1ֳ{lrbQ|y`_Tw鴪ebUXv\ŊuQy']_ϬAIjvCpxNHPe˦ ot1N/ *l}fo\O(_ۊA~I1ӛ}$]OFqe0lݸOm{k\4o w2aZԗ $J},}Y/B h瘿LaC1XgK80.ۡh&r>[;.y24Ui܋/)s,*?5$R49DV++87F!M7܆"ϐ޻$+ϑ-$AN[D[-ջ9kVΦE` !ʝmζ ; -̿%7O ~\isi>,S1/:UӑD ef칷 3E*f\XRAaPwt5\"%=B9bֲZA8NN̟)I1Zk+oxO50~ *f;B$A$ŝ-v8GD4YY6'/6¯ip'[˧btAIrNq>ԙVp*8glVWe1xb$8H,Nm,,B?Yz\&>&Av|4Q*ֺ AO |ТiӽH65pM\ګgH4V-'- (j1Ө;9JDHsXDaK=گ3Sa@Oʢ3,b77?\6wNw)'꪿m)9_0s[H$bZ:JT0D8ьIC[?u(BK`^Oz)u;;ꏔO`E8YRw@O,y,qZLMoQ&a/SȊS/R[V!Z8uMǕ6k ]r4Y;})poes}Y@*ߘ-C[!v%T$Vp{W]˔G`J<<(fBb.O=79g!>ĄOVj[|9{0<]q1& G" 9ޛ u|v2)I"x+*5{9 yk!y#3s/Ѭ]opnjOڶsm ^&Г >Şj/cXn `[3`JC'B ZpXJwD*g^8!kbә'}Qtꘀfmњ! {^Vf>U1//_ez݃-N &^챢 w$OPP쵆 lTv Q >C$}v[UM Tpk9P'M N#?.LVtcY=괱y|aĻy'1\)scW!vE5LSզSd`ૄax4('?5}۳  nh.DoD>,8 hqr%cf + v\c)Pn0*$u8hŽ1[!Fɗ;lC)%3=>u-duQVI_Y!U4wJ(7#AHy `I h{ൖ!;V cIӺ|DlޜBQhgO\YIwBd{op7|#{y&#'DfkBtG|eK{`wp7饄q,SkAg+sc@p4?lP3=H0 D8jħITeeWA VYHkrjgCOםmL1';]fİ^o3iv?ۄ?QFT?)?x$'ܔk7Uߝ{ι<#ש6 jPHa&s]WڍmH8 H?ʴ.ۯߕOL_[Ⱦ|񡲭s˃:# Z5ucN93mm94ßPwЏw|Wh*d `IzE\Vdt;S3P9x~)g"\k/pL&5~fBf>f,B<`_LϫOyo3+B~MJLy?kR|{Ndl4ve:R?JAǕpjCC\)\ tnp/Fno4|Pm2ODdbk013c~; 8L>nb#n։ tI}鲐M= r7i"q,kUa#6W5Ac=@܈Z|x\W\r>nh>{6nx4S>RVvHKTQͫuQQ(-|[v`8oAmQrLG)HE5{8NuKs!(*1bs_ѤXE{ 6^E=TN؆C&)=;3- _sV0-",[C8;6`^pҤ1|?4P@~>ԵboQnodQgj  "2ku 2P%K\9"ҹn|ظ$%8~Rĥ5jKB ,E[w9jFl ~'(9P< Vm%͢h=,02Tdl1BlX-x$,p!_l'w㴆ĺFc^0-9fGR2D+ /)hV&/9ĞvLKtHبVo}?^(¨lAS\c-{o5X&8J!,]qgDl ;?:{CB_u\O:QITRX6v) xX>7N2Z(4iro 79W]0't4vkf M[%;u!ټZ63$Z~@KK@;^5_[A7ߏ ̉ 4ym& ˏlDcii " 7/'rt nm8y{9S_x/6+X#Z2f%8>!Zw0Vw G[ w4͜5bD䚠-O&ÛPA nhM2nBۗLz|'0}4 ^mN'm)-{_.'&!LtYZRcNFsS#"%m`65AJR%9qd3tJj [A^)9%nyAu`J5(z~>YQPj:ɲD\-Zc, .Cſ `Q,Ml2iЋȐ[3*jiUEQE͕vj_=`3ꎝycs+Ig ³}a,~G%!!SmP =þi(vggZCPJعoqŽ/Zf|0S/( IăBN;ˢZY} ETf'5`MNEr.yGJ E"X+:nl6ٿ(fq'-dqaCǪ*5f~KgXu0ak>6)CM8Gb_ed$o%p7¤kb}=PA~W E%Y<\8!e^Z:S4gt]RBen$ IyA0y`ma%B?$S;TsAg#*8R="5&Lgp`Og\ ;"86bhoj#G>^%6N^qgxb}!505>_um~J뜘e 4o T?-D%l\^^ -!gsOg5Ǭ1vߜ$Cʺ;OqLE 㪯[@S?kKJ~BC mV]|h^Ye]dwhRUh ,̿jLU_9SCܡ;wx:D&W@+p8)'3rT{וۜEг^{[%9]'wW(1?KۦrHa;< yH7PO_zQ<߁c*Oڕ&G ̲b$iN&u; lQOg|a*6Ϡ[B0MU. ])=Dzp8Bp!J_ee%= q.c/loR1m#2}lVyXٮK'X|K9ѡ)Y;OFRXaF2@d'`N?a8)ԱIJlKA9vn=8r a7DKE3ʝN5GgkD`Rpĕ75k6Ld7XĈ:PUɻ5gUg0~;{~~E_ E }ϞY勲S 6t`UKk0u=AYZ7:NMud~-o)>\2tpcvBԖnBGo`#|&1HR8X;f8D(/i]-$49;-x |uo؞Gk5U kuх{[fv6\_%99j.Ps ڐn/k6v+b+HUIRTdnrE '\4ceg^,}IO(\Y<2iwz )1K,X}Ey#•C.?9l7aE_Fgz.yٿ$p`6.ˬUa c ht =a9p)bLcTrw (UCffyԪ[{!<% t"P-k5t=EMLlp P^Q1LެMWٕupO=9_t|B"{v v1Z5{<w6|Rif_f#򧱜Uɢ;<Ũ!n޲y}TޜhI&#;XOv+:hIqZ䞁X .VFQ pdb؊ vf#mMhC)(;ObLb!ԡq)D?6`:*y0s*+5bd,XUn6ZR.^ۙ@h#ƶNj8*|d1S>,Apk!#y1m[;j5bW>zow785>=n}}#SUž!I- G3D>RzlK^@S=@+-ƀ䇙Ql6*;`#B @n7|sw EatgèB(UQ;2 7K#A\d#8}l}M_Xu>(ݳkyDu A\4PA5'.)Ǡ3>~Zᶖ xqc% 9VE"IBKUGvAŭ0E9&{(54Zq[}߫S}gQDNo3'9 :]ȌW|C̥%g磅'ߖpc4[vh5,T\svrw4Lo)t)g*D>.C$O9QٱDӿ0;{wG+<)R֠69. ho?6Eq%4-;uJ_Y RFT@d Gzj7pEi6 >vF7\zWV0ev XV@Qd(po 6B&zSrn>e2<< 8?B:"+Ͻ)B#rCq5W=){7@aoZ[G{IgcToSӕOspV10 ķr.A(5m4,-0߈hâf!Қ{eVi FZ5s_K9rqz#6U %(n_[ŜG',VbUF#JH@4$`AȱZ.`.ʞ;1"o7X>itLfp%\Ep:L+qjbՐrOg ΂J5]|ti#ƚ% )1boDUJlSˎVRp7uRW|: 9(`.& m$gt,3w>_JIBɬٖW2H)c"}^%B^-?ltڞ71Zj8;aKb9Lyy#f5F$ O :7'D`Z^ hvӝ^oe>){&0Oq@h'lqY((X/3^F F%=Z5'ƽP2嚊@~x1L2Cl Ű11"CN֠*o2pk&S,Fjh\#ltIQg[/WTfҬ1O,iǧyW{XU; LLR-.NNST_MĬ3lKN]<.hVlC3&z_l24['o{2S3uNz--͚][ 1<#A:%[aԟޞvu>x0x g [Ʊ_*+[ɸljK; :cldgeJw0|~80ڃ&Z4ΛOb $[ή׋k6;'=ew8\7<C')t? m ?'GM^~/*JOG3nP^ K7thf9NSGV߬-}|2b$I 9kd,Kng:I7#`jW^ ̥ePbs3!QYH`  |D;]0!aRi`ֶTF K48>%B$B RXI .'Z}gzSQZ+*)7Ȓy5rF%@FX|0ZܯJאv4?KjV|0 F-HD))Ϯ  zS_ l@v 1P܂4:cu҂xCIQ§/CΞAOqM\bʞCpo'5hZhKiQY:e[Ѯa)XMi'$]L ۵Hk"J`fy1+G0֤mKr%my#F97PŇJgĵ4. T(~"lcM; s&^wGェu$A WD[+>_s S r(w9%w[ո_nj*u؁`l\T\iEvBo/ i0@*:F$&89R/ .SnM:w㨯Z v<]j"uFϣ/3gy&;5I}qSȔCXvU{J DT?r1~d!}C_l~@6)5cla~sI! 7/vL*0@ ~<pn7doqMfIFfP?$V)e"_;yBўؒջc9x]Yq6XI4=:sK7TVVl.El EڶѩvQkO9K21\a1x rA+>ǚh*5یQ1Zd<i*X)GZ"ޤPǺ[cjjx]b%7ea00@wq ڛ^>*E~)]@^*@?c=VN7S6o sWR준se9u&']za{]W $0ѷQC#{Y:& BpQ*j0pUC{D/>,eR(z&o2=P1$?Қ#XDXV4 D X1;Ϡ RD۠QFk FЍK{:oU3vrp }fݲ~(k}|GhK"LRIㇲNjNOOxMIp͖2d1c,!X/,'fyLmBmv+P)ݲ5 lTR kfkX78+$XLY2;^Sdp@X Œ5iGeݣ~>l[৑pxPwkXĊs~b4"Ň{Q/- ϓӥ牏bHszE6f ~$oV ,^hٜ =B~ͤ~CIhx9J,C @~لpӤHj/6kS%c=SMcz6~OG_1Ǖ;6WR-j GBFawq s/ rm\H{)!G dĐٰ!P'Fk]HmGDY?EfXh^Oߕ ]psSJzĹ D“8gňy^nK\)F +" Ά樛qr%'?WJl,q,._Z&Q Fw>% -RbZ̳ {+puho5-mPa!N|?bq7 g愶#~1q9x}6 XASB ӃtN`lUXCWUaj&t,7̿uwo3DKs21@I+^?PPyLd Cµ-[uB|1p?%쒲k'$ z("{y`qB+Cx\x޲!_8fa_ 5[v^nm?wUUo)}(?"_bi2{qO[4}EgPg =Νn 3j@YiU04huQ|ܵz{Z i|y$ůr+&k؍ǚe~H֙vm>'4U__[\sq7wi ::fO[~n"w ܙqyW!]Aզ0+tfa1iw5o<'ؼ3ȊX enʸNGx3 ɲ*[f+،TMўD[˸^`c@8K Cv10*.C+#jpumzU}+[mD0-!MxSm0f͕Ӝ+=o|7 2Ӿ` vɞa_ڭZFgVFME=gkmIvc&m ը[$uTd#V-Ty;IH<*I=nܮUkxjv+9( MU8#P 9j:9`ȝEҰR ~GٹlG6qGX߸Ϧ /Qׄ[LiK|{߸KtTEW/@SZJSmyPè3YHXJȶY+2ФxItˆn?dW uSf[c5, -+(zK㪵D ; g;5{&P;X6z$_=yol g(I̓fkpcM5 ),ӿ (Hn'F1j2IJI_Dv{.zH(Qz 贳sFJ:.WipNm$(<Ka{ZBnB^c(5߼_Gpďfl>ɻN3Q9Z2 >&./O;\dr̽&.|_эgKNrh5s~d(& ?2hz{ stxWAKXc9f߅`eGs8Ღ`)fH2WyϚ #W+Lc)aM >i+.9 HQP՝uLvFџa,a@bK3p ,osoc/ ?u9c2?;s 862Gc>hIL"= |͖{j+EĝXV2|pdɂL{ 6U FPqA\쿴|xEk:0!֔' $+ҵ%>Ωy#|Њ'G+%3krsp䋔6"DhD#H] 9xa9$c,:gcGufA{ Nxq!c>q]Ò[ɶ&\F@~xc!U6hQ(GAn#SeJҗWD YvgkGHU~w$>VK-Id}]R;ZPm!.!k3}Vf).a+:">j! .'\}/7 gLce[زq޷Zn:;󼂼S`שo/FF)^& ]* x\ӍFycH]{yTJO⺊ ~jz{}xϞnܝ66rH ;A'n+ t 5c~.ZҾws3ak [|І 29(ߖYkF[X {jQ w7$bw /&zD#6l{4,f3&Ӯ;*N"./6&/( ,#D$% =]^ef͆OG޼3y.ڕĝ=rnp (3LLaE߼6f%PY wlL򌸘wEэFSb'J^]kɁ=r(!ܰŷExU22w2܅7R!HJUx$j?09Ld;&ٚ4KG)IX^8e5)B=Z{CFGNf bu}`Fu|gd)®@fG@)oR̛ur;Yb7]GVuH: u3R [O̜@B*Y;1"(-yZi_#hZ\HD{[~{O0 aXmoٕ0)v6za(=˿Akis7j/vk/AމzM)!jRDMQ5X9یc୘Gv|[_Qxg1FiY uâ5h}-=˩Cyo>):U]728{ĀC*roGk9PA(ӓcU>9$8~yRTgߍ<=bnvt//(]C#n< Bƫ/Ki%F{KN;QRrwl+ҦThY d 5+;4>Mj3Xl2L)p(D7pYIiYi@MԷH5f]B2<jRsqʍ!΅Ruj+ۓʙ-J/0Pc\PsUMCЄϹ{Zf\H 2B?s}Ax MϵlEhڗsy_O4Sv3HU]ĕe`!dƃ2FLf"s\8>W 9 M/G'Aʋ̜DC[ pq'8Piܿz+s!wֻ:n)dC][fHyF;D#"Yvc~lJ؄Zq{KǙ*6K~SH:${:غ7+ <_ LΒߡ~S[촛'eVo.wZ$l㚑D~-і3"5݄&J)c(/ۓ{?]Nړo.ǥk./FO Dzq x^ tm)IV`](L[ ΗKDX0γ>j' 1_!R6 zy0N,f81TZtS~'/L-cy?"KI؅)@_0FWO2_ɍ†0/ߠ_lX񧈟ֵFLaWK11u:v{ʘNvR`)[ o! I HC{3\0Eta8Hƣ&#LX2CsIo<ȼGC~‰׻i?SUOpO.kj-vW@tLg4S,H!Kc?KT!^*~Y35̧!uʅPd7H*t(M:'t&ƀ?fdO]6!脚7A}R-G 1W"ZsYsWkxOwDm@1#䥨\ͫo-hJxU>ڞTblAn%vm kSֈfЛdo.8 JX..L5|Oa0ܩbPclgixtȼFDx9f즏Y5|sDRwJöe}ȳ3y׬IHW]N 6ݝ,ǡ;Vq*gX ÄG +֦M<[7tƃC %q,8 Iŗ?ajLuNibEYlboZ=l8̖ zy6BH,Yx 9maqA9qLp+Jy"ZxXM'[&ҳ@꽪H~6N MO+' ;qE+̲ёKЗWT MSWD\MF꜍pv%KT@7fZ2#QWD#u@)t^~ @ JnH¬>׏;U&jJ?u50w9?_΍;c>?19xrկ.r+6 C住M{aka0] r,kJIT ҐQSh3dDL iHs$IXJR.pйb{0>LNh?SD+We.i,>6 1Qz\UT#=%D-ˤa? zAnF|VV5[ae*x wL[E O>~4T3zLK*,c^lg`~m(upHٓS#OY6@Y >="u=sI }&OIJ"yǬp#NѬJf" SC]7n=E_x7=j eb B;.0ԥq_.@8^"S*!ai hD9g.G>/kqjL17neWD1mlZt87?rد™~.㷣c|N]HK2kjv-ǠE2صK߬/ H?[4FIYȈ1* zi̮;w~'6Fn/'hOS.\7]%=UΝu]y ՞5D4_}5{1>:Pa ӥņp/(H4 @*eȻJ;z+FZ|dFq눖@~1F+`Se^Z/> v-Ůh`VMZ `r.Jhqu dM ?2Q-j胺rQX)dR83mLw/PgW7C&>,%hb%u'\a X2PL]k &s~!$Ց sʴ_DZ@|W 1VLז40[.{Ԡ_/4^'&'_[Pn^m&y%u ʳeXt}Ɩ_"ѭ]>T5RDә/9uqcחp ix#'/.ۨp9ɒh}cI7A& ʬ"k.D{.R03Cjޔ) .,T~A"(ȱp- kjj?ە+![TjJTAj@zm9xNW@/1~Fj&>$]H&8b^!b_1Feo`HrWnJܙ|72nß) h)yZ@Ok1=wcZ.Rf:vGm,3"[lVÙCOO">kC<幽{oi)%#춡<,`E i9+i#BAJ_a"P ˁMwD@-+؉wK|mz4S#\hᳶZ, rY=ppRfp!C5MvE g2`>7}3[?Xp =pActm3{IWMϹ=ӇB /%l'AOAMN4sMT5>F5SDsB5X?j*c2lTUL[i`oB_@oQSDfHQkBܫQ6a[vP#EM>d R,u'Lr\WOZ}!:q=<+ gJcI$ͶehO.98xllH?l?Oj<ݛÃ"c:f Dr_grÒwmkRsO.:v /r$gCN0̋.ܦ0~pn)C0ћM?]W-j98"? Ő"S,3sV|1> $Ph)R/\4qw;vJth 2k!=S>-v4*ڄ <:^*rEˉEx'rY~4 ţ^1|w=}7O !ښC`TY$40 XB)iYcsc(ݴbѦ7uMuHh/guMv7Z.$)ALSa1هqNpId9be`3Č$nS%?IQopLYRg QXgKXo%x}&<]\( +r y`EGكB3gbvgkЗ8V\v9A7Sl_y5%di% Ep Ȧee|V|_VNR&T]0@!C5З72{ ItuϾPoZH󷲙S*tZD`z5HZ!BUբ;j1CW49]ff&Eɼi]FPh\"rV`1 Īdf8e@xo"n7!W+,ZP/S0ﷅS̳-tЏaƌ:"m۱S[$Rשd Cxb@.$ ru9 n!%g u#Ύ¹OEkTyO6`\K+E9P]q2Z5ʆZg߉-OmUtw>jO(__Q{]Ŕ2/ >84z:Wjc }&6s%ó8R!h;hl,)(ZY>m Ɨey.`e\RT?Z^?s_-ZYh\B W>"וhOJT4MI뮚Cp~}XܔdjQm=݈I> ^:BU=_|UG!ICrU" AΐsDx:?`P:z$"n?lh`qZ+t4,S j pA}EJ5˗H~!- e{0y7! ~Q' )ʋZ~W52e BΆ_jռv xuÌ^]wz$W}\-]rS뫲p#ɅrnC;(}948N {]W ٯ$'2,OVt!  KeDՑyAxPXIT:^!ô34XmVdK4ɝ,WYx^Q;<t9I1=CysĮf^#-1 * -%VyIKj(;vM: rHN(cut S1uխp!ruy|ԕR/GT&2RT_a!)mHY?V.IW oL7xJD=21g\إmWr&cQ5[wH{jViKb\@e bh~0{oO{Vh_zP R𾾂jRیn'9u+Gܑ^5pے~*bs)znͭd3Ro0V@X^4O\J opÎcdJ\KoԫzZ0G1N aH ֗/2 WDX$*ZIbĨ;KIQ,ӑ˛qAr# l)!B:{9fbV, 9(G4 ,X ľ49eבy2yBe?$>Z"IBc58/pldI#t0ϧ"rkXSwzj8d('vu:flG))|J]l[hLRZvS1UW5>3p%mXhY"lA>SA;U-C&DeA` , $EV8%j=R <ǥ?rүKJ<ޗ(ePu",8;cXڽNj?Q ,^7ex \H<9o H>\C^3aȲ=9f\j_bZaKvs!<1c 4eYg++׳M;}kh,F8F:nf5f4Linw^) HL_?};m;'okCeizf8oYtFDuy:Iiޮ-ȥwUeKw!٣ė]A>07U2Uδlv6@p`uM7ubֶ^aG-:RuZۆ\^wO^x׼˃::s`D&^Z [L, VwNO* 'E8{~< BR ^}GP<M^m!,yt$87/pI]/84 ䷲# X'5O-FgVG抅DaԘ:70oXiI@;ge`yLo!EL'c_P X '*gt]=Ȭe7K8Yge&ߧ&z/̝P<lϙj:q4Ɔ]2˝ MSDf#b2F R桥Ϩ j{aha$(Y"P=rjv00sp9dB._\%82wN"aAblkǥDMWJk;Ũ6\hh?< Hz|t#~2IW[ԺKҐ"}cU4ȴxJ~}DE`/PPro@K@OG:.|[5RH'Ư}^!1uLGrJuETNxR2]/!;%4`;uquzېf~Ŋ 꿴:_0BGԦ0'e#rm wd@uZL2(?~ lg/ZY:G䠨gOh^RO¾˅/2#]+#aqQW324w[vp6*ozx1tmVqdl]I WqE2P"Zx6aWWd,M&( aRVpo:F əf%@n^BmhGDk PՊ?Q9puShs ST)]boz2U|XZZɧe@9Ս17R^0 x6.<]vμ:0\r 3eLHhFT7De#i[n\`</!6Ѐ xO}_L,hKLYg\Rm@h=lXfI,(а]ޟsnCt ~81RXhVx^ <]ÿUwG',ʒ]w 6 k~2WݪWt"r|R~1h1ܜ0*^;\b^ٔv-kBMW KD~jkH8IWɔUhRuU)=>!pEPk+tn h . N/Ql;W#A+[o^e6礿vG&h6GەS0r,Mpٌc }rI7E_cƤӧ ˟+sD0jy}!6K k,&c|}L~r:\ʏbB#ޕކ,iEc!0yUNyT0Q6DgۮɆ X!AjBFҲBf~DBWv'lYlfޓ6X~Vu)<'9B Q{"]{Ip(#mpXY۞8xgg+{zmreDH՚)4ꦑjZz'5#+}}zOAeel[k5Ic+`  OHEi,Ҿ.{j@Ag`z jr@Eg{J4 S-^P~.,@s]3@Fḻk̛DEe۟؄XR@pןZx?r-hyy EXX@r,(OG Ls8 &hʀ6ߴ%L3G)ڋ;TR=VwoHB-kҹ$\Rߩ\ѤF 8>n1:g$аgre~v (Z' ]\9:hp )5hQT7xZsS^YD];RzPl3dFQ*1J\ǞJ[ ­Q3=mvJT9:U;Siہ( t -]wһ=q@MqnЏmSexk~Qhoo9"Ԏ(~ 6LCբr]ީ,l/ N_mj)q"D,I5Gu2cu5I%^Cp@9?+`LYH,6jRq:Lg 뒝qY.]/_̪⮦V!aځ$Zp1e$d = %\('ќொ@ɯbv-=V-sO!EZrrEw9C1uQm!Jx ihV%mɶn -%3e 6KX*yd~yS>=j]znw3Ng(d s^Lڒ2i8-44[$7 UX#GPힾbq EC2 =Ǘ({< $BUf,e0<?b0Cf6 hd^0q6a3x'_,sts$g)*R5"Č)X}Gr9z< [ѠVY"9I#O3`:0[jxrOȎ CHUbG$mrClilۼ؏"`R!d&>MtHDPֈSW5TxKיIM=Y q7Ļ?j/YGӳGwc6 E_CuyHaq&#%ؾw'tѹ(3_G`.Gv?UGxg!]FտqI UW!"s:@nypo5!fHQU^㩝eF.$ P $BcSԛHN& KPeN vZ,d܉/ԶVt!E$uwF K6I] Y'w=9s"׬?R`Zdy5}:k-SFivv%aŸLjpLѮΤeBƀRuA6l/׵Atѻ^'YF\©^5 M.}pdi=|#O6!iz&s+}T-t-<'qOuvp7,&[iɠ/=Á7ܱQ8IN*J/$LFY't%LTFV6jVC(S,àꞁxsyD}w,m_fr{q1Lw9i;伞˜!g$xݽ`³sO$I*$g6&ѸUf k/((W绣!|M8N}:Z.1.:EWTڑDI4F{3NUǕrLvhI{ǣJQ^{a7S%V9"ú ,k9PEن2Xˌx+¿8 HD Q='4L*Pn=`=:U kjo~mqzaI7%܇W R&yHyTqtd3OםMmRު? hY"OF6 .Ĕ,e@҂m9]$^B܇'Tpx3.jl>~aEn?n+5S77 O0N..y T.7a^&Fz4I e9fSVxmd(ɦʭpG*g=׀ደz%(0XSQ LDRC! t>'%>$"A|)Kbnzlq)ЖmgҴN,){ (aB! <h.[AbјDsg7Xl@ר mBYr$I6!$EMhU}E 3odKlG*;{-%SA4Ϧ$qGQxiO%P&eO6&MprEEL.V`f*W}B~sH8w$^WO|m_[򰌍D}h)(ax1Mg3l!>/DQRr<`/}Wj@oM>o Kgl ~B5jE~P-G1~'6flٲr]Nm H(p0(G)F\<#,Pr!wdQ'8,d >IaKmT*9B~-2$ {.b=JhdJS^\^!2&6im-0W+G17Y!a5o .ܥO=/zPf䚼ɄNưbUI[J1{KX{pHu*h׵{;)]cK(Cl;7,SG.jF6gp_f]rz]'NKnn]Kv*W\9V V``J!(MכS%2//n\z'#ȯH|ޏ̽U&FsQ )b2GZ }CdX=D HI 5H29wɶ(zIxSsH +_UBr՛UwR_ZhH%W,Єmy{~l8Ax~}ڷ qA 85Cedk!T}`v8lmR/Bvp&LzKrPę?s1ḫ" T 9ߍizj[R5񝙚DncՅrV2"B$>3wYCO/%1QYE=p&;R(\e&MͨP KBEyV՟o}v;5톆b'f*a-"X7vL^ʓ"L7.z[:>[ȋ;:`@k0ԃ1^К:7*;'5B%$o_#?b7&P]FʹfO<|)OS6^(žӧj L!X1ay[S,Z؟;plQ\C?JmE 6\\k4_wY2ILGV$Z,ܤk9#T \)6! So;D˟3̞JP?UTjv>$IcTN^xktlrIRs?iѹw Ff! u"ȅz>`0ü/Xbi[Ziozb)kmQ ^:e|cK,ۚ1!ReSPhAo`5)i0{\R㹕;J} #$>VGO #f6D0 =) MXf0|NV=fK1BtޞOZ-MTE/,uu͌aOEaB>`s pYM͊8byHnx1uj{u f1[wEIfFD @%<@շ F=NּXjmpO 9ͤ}g329{[qL 2gшfvMƙ8Eg_*{a"gPrܳr#ςo 9FIV-#15 p.Li\|K%h+ځfeY%A>_UT=qpVКN+wJss}Ҽ@) K16`3=?=oʠW^IpD*s bfn7؜ƙ@@d+2yf=g(ЭQgɬ. +Zo#aj(m{Kd kw gO灖 q,ͨ3x^2kyXbq#Yrun.0tYٕ޷ee.κ1 {IE{ 4Z^A*ӄ4^ƳwK\Z,t/;tw{GJ%OY fO@K*Ƈe\[ȃvPb{!uFu3u`keXq $>Q~5FFMRLyR\\t5`A[ӕʆ N%hGbW]H!ؖmps7m&$H ZBP|(T#@&\pK"YHYT![4?,/f`Y;%_9~;M) m ]Qy_ .]N3-^ś8nZ'pbH>H3Xow-Lz+7Sam-IPo-w%Bk9/(tnlaNL'Y,r"darєF]( !O׷41,Dt5y6%eƃ,݉Jvؚk|~.d )`e$ǐ1a2ӽ$!z>`$[: C~3nH2c~jL6X<#q@/68 6RRcFdFlt+kA.mQqwR|4Y|r lD=a5@dfa[˪⢄ea {|gi Jj/dR txbs5@!B#$֢ɢg͑iޖV1w9 q3'C0C87H}Xtb@~Y^ L77$lͼSN:cQ5TV ] Ʌ@ZI.[ BIa'f)z:EE2m5o@׽iHc7,l?hP}ZPnʰtc[N.Wv_h+1K|3 GG$i{]Hrp^kpTEZ.[.%s9&R7MSTܝ$iy@:ϒr+g^?Jn ;/` GNL]-F dLfӵ(ڃGPNMF/uuGɯzb4R9jԥuDPqnE1 {x)xˡZr&X!JM]~R)h?ZMA5ˌdJ5FCk2Ծu>wU }@mh~q6 Jpīη'X[t;ݠc}88{O^h*J ]>NN9V9WL/kmι:q:e*rIGaPùBQ lMf<3^b-,^t!5f?QL;QVzu o,1v]xuګR6@1kWfiGO5\!phCE# O[k1iwAJGuƔ& &UU+/Dޛ+:X-sd>i Dx|H&5#Q~4.~U[KP]mٵ 5&V[>?w|Fd# +v@nG@Ijou H֑P,L>戎 5RH+˷>8t{tjIN$kPm V,fY|WVJ#;v[}})|$"w TlbI-ʧ?xƶ8^rhd <%v&Yqoة1)%Kp[4m_qKaS}O A}ѾpKP+CyIfC:M#`R6%;Z]o` HՇ DV VzxH"5hfUK>iiK XOR?`8kR(P)_{ s.TEc#D*US"Wb((!-rY >Y\;oW`S0 e`|ck^:ud`#X쒸8 .9=Hꌎ>i;j?% `ޅA$j'hP5}Й7?XבFߦZq,(`FeGc;C+' B\V{u:c[P\_jBsW'} :kPuwX} jh)\-ۼ61Tu.zh 0Z AY5tŋ?Mr%\FѐQ V$ﭥ]u|NppT,mzDZwHC;q\YYiz`0-ꄯ`rnOV871w(:pGgeUx XGaH?| ā3),>__lO<9|>X?'>a94Z:T3:}\+(n΂Qj#VT>-@؜X(v̚'Y{fFAwBfoTcra߶ߔfȆ"05dQӒ  lEyw efXh%~#Da-OtZ9I)M ³-(}jD'ƛiݪ3}1ϖaB}а?ú8+t7&ZrS{ݧVљ1p8j\ 6{$JoaxDE,X̶LqU,hV=ve9Zn:gj~37◫H bFԭg~O8,<1lꉝ0wWz߀[r% 5f2 phƞ[:1JAbG{֕1&TH 8҈Pw'A,Jot('MH^ٙ v?2gw,r 'DRte~.d p-:U.fV)%Lj*՝fFz\7~*ŮujT7mn_S;kSYo>5gو맟Ѐ)1 "駻Drib =|iQ."U<~U{X6q.ċ7|,}4,־e2=.{tLFj +eϝH,nu*ld]]`]CBψakCUAcae/r@rяG1_{-t혫Z4^^[.'?Rɷ"d;Ssm[H .^ L Juº(5U-4 ԰eL}:}Oi]bϞPBnrS! 8LaG!|k/պԱP Ȋ}#'=DЕ9v$eo!;6+kA/_s:۠~$(acdpޜޟ~/+%ڬ01<( 個htNq;bdWbn-^` ׃ 2&-o׊Nxʆ~TSgD.dVtcoEHQҏAfNrXO/Y˅㫷slWV *&΋"*tG9!0WgHt!v UD%f cM DՀb>nvQI*G1 {|ߖ__->Q!IHܙ_ݭ+ִ+ ojbWD*z^Ԯex&] }j0%(܄A`Szu8?P5LυjШ@4Z[,p?4#AS-z)'3wnr@XXg^BsX٨D5&D&ޯ6Ra [] R̮i.*kލS^Rd#ށCNTJV HTk*TfDeuu]YʘTI_Z^m;]U 도 Re`% }'^ο *ӧqcݗ)'~w"k̬)|0&PгZ=Lg->LZ:?}qyTReZi*,]e1`/ +:4;d-Y[댶4^ QDE_VaK#[#wpA:̫,RZ+>K6ͫ5,0P!ĄCj@+, (z|8J|^Vplvc?9[ Pf1/pcS'_w񸧚U<5[lɟ!9RO[jܴC-_Պ!yNO!\ib?T;R&IiHT3"*B~dCU{kG)zxjK֚-VF [|f~}QGX̡.]5Rs#,4>9d`R|g -5}6ґWk9e$/h.MaW3p%/8u-QLbQ(4U.{L;tddK ӄa3 RkMEn2$ BXs^p^f0Ƶa8婁Vq2fB+Ta,,g iޗ+Ą9#SKJ9i1hr,U05_%My(_'.Ɣ0aFkjCO nq18S20H- D fW1Gt > bF[>KQ#YH)`kbĭHܻ(1q>SFAXv Vn4q@k[t©nP$Z9 K^ٝm87<xr_ UVԄW7:߃uԖdƈ9N俎x^Xg&oUߖV1׌L:,۸'DTV #ơY2B)fgHnZ~VUؕE=+A2'uat R"5ҊsIx:'i_d-62_M4E;ш'+C֝Y%jFY=tEP-З5o|0WcG;Tlht Kq]Les"Ř IVbY_OHЉW)^ kCf />%2|̈́/N~zI!6Iƥ5gwZ5+Gf^Ⱦ y2J n43ũaw"~DJoJ/iY۞Ap>zUGJah7\m1 g +T! ]M98o*RصHUD( H9P(w*ULN|e[oaݐw:J}s ˫I$r[j ;P!'[~!hi*u 3teAtk`Hrtn!&ŵSִDTJr<}>'w삑LR+®ƣv꣚TCZ>diQcҢjbn?+wM+_p g@n<\]ڜatנx)m9Q$C/(>mUQ~c]ҥ;M"F}emlMt[1bƾb6TuzؽhZ3]ccvgT}cW};\<`ghv_j=D7aB=HzA\Ml(גdl_b2O@ļ[Dzv*&XRC/jALXD힆هIڅꇂe&(2x pU+*DthW"?]zdF&9 bYzM(/Wf]_5Fo$xsƾ}ugw'*XHazE&<>:$Q3?E*]dyBSL>[7 #bF!qϱ.7k7` 3VpNR֖g^T,Õ((Ix*]nDUP|z xcq*~q;ydMvgO&.n񕩾%2d #|&7lK!3BZ~z#0,kN Mge:hl6 _Tu c[kĦCH)=*+)7a-..HǍjz0@0Q'zniW' ~j#c?%#믗p "PVϤ8:БiMI!*Li~(ڿWܽv[VM!"]3 oe|J݊VMĨi-#,JuƽX/HBfJ.xܒ,IgDBw/粧GF4_j`)eqTW*-TB|:qZW#$R1ğufm)㝾WpS1H, c~1Jإþ ?61;ry(ߚm2zd̎'28ÃQhlD.7כc[GuX\&[[naorJ e,Eav5b@^p^c7^ `2 IvYy4zu LEkjEjf~V*"B$ ߂VUDjL qAăNŽ>nL`Qj\qPB^? n`f-d|eZ*=+J =:w7^H>~8m8O1|ڰ#BR-!۲nQxx&%~)M6|6U foʱٯQh1t/r%Hmfq%~da N/14x~Ic5Ud?ư|(芐f\+9G(~oWjC箿 k+XقzMht"ڭ9dkTSixZ^;R;*pyhHwle=\Fx 9؜ȏ^z*A>e1Y,Ir֤FACɜq/O(ry|uj2$wŸ5d%:bt;ߤ)֏l}%^[ yHHSy+FQ]8 0\o(Q V A&fOPC'5G6OpC$#m7,YZCM?俫ngC©T[T;1n^%`M>x)3H6u3餎$^y P XǨihNYEΕ3ߖPI0Te[KGk'@$ ! TiUqB+0`[W؏~[C3Xrx.;*Hf;(fR!&> Z Sz5,L0N%~$ X$JPK-)(ɄzPo=2;;wşLOqU &T\p ׼|>iqfz̡sFŗ.ة-Qg5k7Ir.r }4)ny5Faa#Ʉ?hH㦲~z8N1SlY3<3 Aa}A?.C{[ QWtjOLϯMNlPO SR.{B4=` 5gd(e[=E^4U=4ϡ7ah܌%/ &4 +,H(+5:.6Jr}SaSsÂ`aB&TђZޛjLd]kPnz$ozlGJɊǥ4*[*55㐭8nj#DG/j||GZ\kC$Z/:*5GIi<7jJ`:\|S wz`3ku"oRqH9N'nK$RW$g6љ`[l's 2:>&Fy/"$ .戍b#L$Ğ$I؀ 1*4ljDMe1Vχ)j[b^2]_?Og!ޞ T,2Jb-g.g:Bjn O&uT_]Y*hwt^N\xG ќRe=5L6C3M .-`)EDG>uVڪߢdz/I\@=t/*/^Md7i*+يnNSQfjq&SgKŷ!1 t?"M~ "'0 ь=M6"[H/'ܔ &Pz5CekbjڭPJel%8y&@!a]YoŒtF2[2BC[sY-\}=7%H,aQkS4? Ї |VC.֓a|$-+PMjwL㢾\dԓ}^ > 3. ЅP!["Tĥ +HeO@%>2g!xjB3_[a H30ϑT3XS۳E4RGӲP'@`aի~i"Eǧ~rT ~ gQdE6#@gVo.-xc1 gW|:%19]A)`gBBERZCS@!mS pvP3fTJ46|uL71򔂶%]k8^_4$Y2[l$c> zz4IHm~Xg]*8>7hyz%':@z"l 6m@=m+~|@ʡ`ͦY1pFmP4Ǒb>jQtӈ5PN3.Q?-L0\y?SsGWl֪;6bAx~粼}%?żIsxvp 0"xAţz)Fyg*mPZ^( [ĻT@10feM{#] J-:!%@p.$S/=Y2jB/d|% B ?p6Q/uؿ_7)_?E?IZ[t~Yd8_uÓ1MɭZ: TL[ޖ솎z;楴T 9\Mщu쾪xЛ,z F߹Be[*"ї0`fy'*^- s4$4М@N7gNj濩o L`oyᗾ5{cq7hS%xdrMY|@RGW )ݿg)pw%nо%Bv` 3*+Dnlŝa^ۨw_Fb"ƽUKjrfSg y\h f n+S"ل_ O-y3)乍 KBMvn?}gߥYH=kc|R.SKo(&AtܩL]IBcUzyP:U6Ve4)o+U=3 *b%%BsLO̗[}*d4L''G;Ru{J'pyfGUbuUw=~01@3;z>iq'\xyU, <rr!K +`;¯FH3Ѧ`"P*N_p ShlA?"afֽ<Gd Զ9&؉;aH^f+Ć3u5h4ȺeM[gZ /UQ7nNQǙ ).*%wK62nW>.[OtG_|}ϰi籤9O#ݘF.q(5q>dČ4ρu7j&Aol>X8B*̹A]J%3z'͗TɣqkfqhT_KdA6m'U(ض8_hapDΟ ֲtT,bs2ö,g PGtx#za#nS}ͭah2Eբ]|0sEKr6}l ,Gb,z8Da6\Eӡ/ǬerLќ;3V-nJ~']ϑizS:eŵ 2IYQg 3]C] 木ݥLC))ed8i>P b`MGֺѰ-c٥@U< y/ \|Zsb,{=ASˊ@%!h Ծ, [_A#ҁE :'̖y֑oذU&Qh}6eN+e(^6\U15IШVI=#r%nf˪:4oYȣo5uOd>B0 qFO+E̍61f.qqH?^o Nh;FX+zT%ž;vL5k[D I lӷ+cW>bVL4>e)G@U쎜k%L&6I:2F*sVðr, td6=u9KŻps72 J?{}-5 z⺫fk_~ ЭPC2Kwc2Tc :/wSzx1T?L!uz jH>SnTb#/QN?BFc;Q+rf{Zxy/NM(cSG_F5[gBCY>>Xܱ3TL_pZfE`32?Nx⋕A<=PCOîKv轟'ZarWC} M5DѕwØcbCn򣩍ni{q~P`΀?~gp5\&ˊn7 Eeli͡g t(suf_IetfLJS1kB`&2kJG|t$#-`j3mĵ) aWde]+('/\1/lfA6s)wu]oVOu3֩@nQrq,=[1-QdzEYH|rAwf 54b>.篧69`)IoY)j b X&ri= m̀j7j=\gcG 3{z'Dɱ"0.\&*j@M3!t]`EZŅYf`lܻ9 볖uEջ<5XjyT(ch/Zpǔ ЙPs >+zX9vhW`= ^E0A\qYC5 ik.8|~;wXmgrw]b$p!#ﮙm,7h #e{X驪(>*h9D4*P$F}LxcٱK`eua ~l7%)^kg_ K3e <͝oZE.ks1OAEMoCՊȇ(Q2ɹcLz,>$W ~Sp+LE|\d|{.H\a_@JI̝z (i{鉖nMEw @ 8; sC8pgB,*L7SAQjblpuB'BgEC?k%^#UMՓWD\~ ]u$q<`7ehf م SN\:ic5 :oNA|\*B*VT@O ~7iA#`\ i 'ݨh$ϹD>i(@5ˉT +d7Y~A|\d+)mk f+0x6np݉YnUZT[)˶䢡]'e::6؁Aq{ou{f;g&L߼5zm3K6VUX.9[ru'H/^lDLz Lk܏Ҽ1/vw8=#8g\B: ڣ6/*WfYM}j%E-ٮ~-*$ÁdQPhm@ XVGڣID}۪Cmgui1p$ HA;[N<'1hu,?ҖE Cfc@&-h&*9y%̋/>ny>*Æî%ZCZh_x+*9 *2.e뾇tsyש\ç=ԃ-7qitZ XX_+{cr2I!(#1" $0&,Z~CqdMTF\\fhdtoQ'l[{Q*[,ҳ܈v2Ap<GE>&斁>{[p &]? CP4B̂N?TĚыp$hzι`fE!8#zX`4rބ."+{ krz$uᡙ2@A;V6W-Zj+KoWT;l/j^VYdc(^J͈9obPO(kz,HФUl:$ )ax9jo8+wA!Æ'f8w8Ɲ-.pCYÄ dWz\ͲzۺJ΋Qk8+VNmsKBcгF_jryR6@oxhZIϢ & |YoZBAۣÿK5Grd͙ IWꂈ&[{h=92_oO\[Qͧ/4+Ƴ7?~c}̅6:ǼU7jj}i$ԤF&w=.iІt)y%Oz[¸kW8HO/baZi_p%)*~om˅0OɗjWu 6fZUx[-e g"f٨f_hZ۞nEHE[3F`f,&iƅ=r]!~`< UUVe\6I'FЛ\FTum?rC #A3TL/`4RObݫ4R2{詯ΐt# P F[^[-`8f`2ںID{SEtx! QjQ0Zؑ,_O3o6U+\u>YZl/Yvv-wAr;\zdd3Ϭ) a6;qrYқƣs{>r_e5"5OvWA¿K썄@o8jt<,Ӭ >Ejuwg5UPc3!-%~d]_-!wt5F(`d3LRƝC"TȔku`>p 9ө9R^{Z(KeLy ipy/8HU6 %KГC4F33)c/] 2{5}, q]3$nI kb1)@hnfʚj=a/ :=k `3T>9Y' [^TJTX,M1,Nz >U=Qn)뭩Y%Zs+Wg1G >DfZZV9N1P) }57Z5@ {aT*i!sЮHs%7rZYnLiN3MmCr|[kiF &?wz0beX %VYW'Y۷T4E4ՌkbZ$Շ5+ˈ<>#2ZkOK[E5QB Z䍤eG`řˣѬ0\t'=Tϑ$Q\F- "^]u=̓870bNo 5͏VU^O%BŒ uHr'l4a0'wdĸE}ezjVEc!!*( fȴ"g?Լv8j9LWŎ/M` .ѧc -(9) z(4fq &#Tĭn79v`M!a13d!N2jX>|J'C#f >ՂHL..\'x-_]F/`z/I({Pٌ`3H]g ^d)G5ʔuuYBfjݖ;]^ l |7qOcę!̶(ouHW"_ըBC`Á&tܵh)?" Q1Ut馻Z\k8ƅy&;!c jzTTJu3bRsEc,^V."1_q'0K)M,[3yg0d"'>5${;T"Ԣ/C@AWO %oT0XC(O4`b'e^e44q/zs=(7'96L8u*-d [Q%s 1'73d EC  .@CP jD{;P"‘a] aUvcC0T'(f6>LX߳v @sIjG?˫.ݞu[`Q)!^_K I[ ;Kr8ogsiu1%.  >lNu< oc+(J|;8*B[~!e?=CI(*T4]Ⴘ^D*$zʇVgԴҋ}ȀHhS6c͒RPlp{W# at/8Gt񘕐4g>;z YZ