pax_global_header00006660000000000000000000000064147334217030014516gustar00rootroot0000000000000052 comment=38a525544f8a4bd4b8a254daf24e9e31a2eeaa36 deepin-movie-reborn-5.15.10/000077500000000000000000000000001473342170300155355ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/.clog.toml000066400000000000000000000001731473342170300174350ustar00rootroot00000000000000[clog] repository = "https://github.com/linuxdeepin/deepin-movie-reborn" from-latest-tag = true changelog = "CHANGELOG.md" deepin-movie-reborn-5.15.10/.github/000077500000000000000000000000001473342170300170755ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/.github/workflows/000077500000000000000000000000001473342170300211325ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/.github/workflows/backup-to-gitlab.yml000066400000000000000000000006651473342170300250110ustar00rootroot00000000000000name: backup to gitlab on: [push] concurrency: group: ${{ github.workflow }} cancel-in-progress: true jobs: backup-to-gitlabwh: uses: linuxdeepin/.github/.github/workflows/backup-to-gitlabwh.yml@master secrets: BRIDGETOKEN: ${{ secrets.BRIDGETOKEN }} backup-to-gitee: uses: linuxdeepin/.github/.github/workflows/backup-to-gitee.yml@master secrets: GITEE_SYNC_TOKEN: ${{ secrets.GITEE_SYNC_TOKEN }} deepin-movie-reborn-5.15.10/.github/workflows/call-auto-tag.yml000066400000000000000000000005171473342170300243120ustar00rootroot00000000000000name: auto tag on: pull_request_target: types: [opened, synchronize, closed] paths: - "debian/changelog" concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: auto_tag: uses: linuxdeepin/.github/.github/workflows/auto-tag.yml@master secrets: inherit deepin-movie-reborn-5.15.10/.github/workflows/call-build-deb.yml000066400000000000000000000007251473342170300244210ustar00rootroot00000000000000name: Call build-deb on: pull_request_target: paths-ignore: - ".github/workflows/**" types: [ opened, closed, synchronize ] concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: check_job: if: github.event.action != 'closed' || github.event.pull_request.merged uses: linuxdeepin/.github/.github/workflows/build-deb.yml@master secrets: BridgeToken: ${{ secrets.BridgeToken }} deepin-movie-reborn-5.15.10/.github/workflows/call-build-distribution.yml000066400000000000000000000007661473342170300264130ustar00rootroot00000000000000name: Call build-distribution on: push: paths-ignore: - ".github/workflows/**" pull_request_target: paths-ignore: - ".github/workflows/**" jobs: check_job: uses: linuxdeepin/.github/.github/workflows/build-distribution.yml@master secrets: BUILD_GPG_PRIVATE_KEY: ${{ secrets.BUILD_GPG_PRIVATE_KEY }} BUILD_SSH_PRIVATE_KEY: ${{ secrets.BUILD_SSH_PRIVATE_KEY }} WEBDAV_PASSWD: ${{ secrets.WEBDAV_PASSWD }} WEBDAV_USER: ${{ secrets.WEBDAV_USER }} deepin-movie-reborn-5.15.10/.github/workflows/call-chatOps.yml000066400000000000000000000003201473342170300241620ustar00rootroot00000000000000name: chatOps on: issue_comment: types: [created] jobs: chatopt: uses: linuxdeepin/.github/.github/workflows/chatOps.yml@master secrets: APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} deepin-movie-reborn-5.15.10/.github/workflows/call-clacheck.yml000066400000000000000000000005251473342170300243250ustar00rootroot00000000000000name: Call CLA check on: issue_comment: types: [created] pull_request_target: types: [opened, closed, synchronize] concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: clacheck: uses: linuxdeepin/.github/.github/workflows/cla-check.yml@master secrets: inherit deepin-movie-reborn-5.15.10/.github/workflows/call-commitlint.yml000066400000000000000000000003641473342170300247500ustar00rootroot00000000000000name: Call commitlint on: pull_request_target: concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: check_job: uses: linuxdeepin/.github/.github/workflows/commitlint.yml@master deepin-movie-reborn-5.15.10/.github/workflows/call-license-check.yml000066400000000000000000000005521473342170300252650ustar00rootroot00000000000000name: Call License and README Check on: pull_request_target: types: [opened, synchronize, reopened] permissions: pull-requests: write contents: read concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: license-check: uses: linuxdeepin/.github/.github/workflows/license-check.yml@master deepin-movie-reborn-5.15.10/.github/workflows/cppcheck.yml000066400000000000000000000012651473342170300234410ustar00rootroot00000000000000name: cppcheck on: pull_request_target: paths-ignore: - ".github/workflows/**" concurrency: group: ${{ github.workflow }}-pull/${{ github.event.number }} cancel-in-progress: true jobs: cppchceck: name: cppcheck runs-on: ubuntu-latest steps: - run: export - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} persist-credentials: false - uses: linuxdeepin/action-cppcheck@main with: github_token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.repository }} pull_request_id: ${{ github.event.pull_request.number }} allow_approve: false deepin-movie-reborn-5.15.10/.gitignore000066400000000000000000000003721473342170300175270ustar00rootroot00000000000000.vim-undo *~ *.qm *.swp .*~ build .zcache debian/debhelper-build-stamp debian/deepin-movie-reborn.debhelper.log debian/deepin-movie-reborn.substvars debian/deepin-movie-reborn/ debian/files CMakeLists.txt.user #linglong building dir linglong build deepin-movie-reborn-5.15.10/.reuse/000077500000000000000000000000001473342170300167365ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/.reuse/dep5000066400000000000000000000031601473342170300175160ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: deepin-movie Upstream-Contact: UnionTech Software Technology Co., Ltd. <> Source: https://github.com/linuxdeepin/deepin-movie-reborn # ci Files: .github/* Copyright: None License: CC0-1.0 # gitignore Files: .gitignore Copyright: None License: CC0-1.0 # xml toml json conf yaml sh service Files: *.toml *.json *.conf *.yaml *.sh *.service Copyright: None License: CC0-1.0 # debian Files: debian/* Copyright: None License: CC0-1.0 # rpm Files: rpm/* Copyright: None License: CC0-1.0 # other conf file Files: .transifexrc archlinux/PKGBUILD .ycm_extra_conf.py Copyright: None License: CC0-1.0 # Project file Files: *.pro *.prf *.pri *.qrc *CMakeLists.txt .tx/* Copyright: None License: CC0-1.0 # README Files: README.md README.zh_CN.md CHANGELOG.md HACKING.md Copyright: UnionTech Software Technology Co., Ltd. License: CC-BY-4.0 # other .h file Files: config.h config.h.in environments.h.in Copyright: None License: LGPL-3.0-or-later # assets Files: assets/* Copyright: None License: LGPL-3.0-or-later # translations Files: translations/* Copyright: UnionTech Software Technology Co., Ltd. License: LGPL-3.0-or-later # src Files: src/* Copyright: UnionTech Software Technology Co., Ltd. License: GPL-3.0-or-later # tests Files: tests/* Copyright: UnionTech Software Technology Co., Ltd. License: GPL-3.0-or-later # examples Files: examples/* Copyright: UnionTech Software Technology Co., Ltd. License: GPL-3.0-or-later # deepin-movie.desktop Files: deepin-movie.desktop Copyright: UnionTech Software Technology Co., Ltd. License: CC-BY-4.0 deepin-movie-reborn-5.15.10/.transifexrc000066400000000000000000000002601473342170300200640ustar00rootroot00000000000000[https://www.transifex.com] api_hostname = https://api.transifex.com hostname = https://www.transifex.com password = 1/2847330938c2eebc627c8dd113ba4f58aeb3fd3d username = api deepin-movie-reborn-5.15.10/.tx/000077500000000000000000000000001473342170300162465ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/.tx/config000066400000000000000000000006571473342170300174460ustar00rootroot00000000000000[main] host = https://www.transifex.com minimum_perc = 80 mode = developer [deepin-movie.deepin-movie_V3] file_filter = translations/deepin-movie_.ts source_file = translations/deepin-movie.ts source_lang = en type = QT [deepin-movie.deepin-movie-desktop] file_filter = translations/desktop/desktop_.ts source_file = translations/desktop/desktop.ts preTranslate_file = deepin-movie.desktop source_lang = en type = QT deepin-movie-reborn-5.15.10/.tx/deepin.conf000066400000000000000000000000301473342170300203520ustar00rootroot00000000000000[transifex] branch = m20deepin-movie-reborn-5.15.10/.tx/ts2desktop000066400000000000000000000002371473342170300202750ustar00rootroot00000000000000DESKTOP_TEMP_FILE=deepin-movie.desktop.tmp DESKTOP_SOURCE_FILE=deepin-movie.desktop DESKTOP_DEST_FILE=deepin-movie.desktop DESKTOP_TS_DIR=translations/desktop deepin-movie-reborn-5.15.10/.ycm_extra_conf.py000066400000000000000000000107751473342170300211770ustar00rootroot00000000000000import os import ycm_core # These are the compilation flags that will be used in case there's no # compilation database set (by default, one is not set). # CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR. flags = [ '-Wall', '-DNDEBUG', # THIS IS IMPORTANT! Without a "-std=" flag, clang won't know which # language to use when compiling headers. So it will guess. Badly. So C++ # headers will be compiled as C headers. You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c++11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c++', '-isystem', '/usr/include/c++/6', '-isystem', '/usr/include/x86_64-linux-gnu/c++/6', '-isystem', '/usr/include/c++/6/backward', '-isystem', '/usr/lib/gcc/x86_64-linux-gnu/6/include', '-isystem', '/usr/local/include', '-isystem', '/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed', '-isystem', '/usr/include/x86_64-linux-gnu', '-isystem', '/usr/include' ] # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '/home/sonald/stage/deepin-movie-reborn/build' #compilation_database_folder = '' if os.path.exists( compilation_database_folder ): database = ycm_core.CompilationDatabase( compilation_database_folder ) else: database = None SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ] def DirectoryOfThisScript(): return os.path.dirname( os.path.abspath( __file__ ) ) def MakeRelativePathsInFlagsAbsolute( flags, working_directory ): if not working_directory: return list( flags ) new_flags = [] make_next_absolute = False path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith( '/' ): new_flag = os.path.join( working_directory, flag ) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith( path_flag ): path = flag[ len( path_flag ): ] new_flag = path_flag + os.path.join( working_directory, path ) break if new_flag: new_flags.append( new_flag ) return new_flags def IsHeaderFile( filename ): extension = os.path.splitext( filename )[ 1 ] return extension in [ '.h', '.hxx', '.hpp', '.hh' ] def GetCompilationInfoForFile( filename ): # The compilation_commands.json file generated by CMake does not have entries # for header files. So we do our best by asking the db for flags for a # corresponding source file, if any. If one exists, the flags for that file # should be good enough. if IsHeaderFile( filename ): basename = os.path.splitext( filename )[ 0 ] for extension in SOURCE_EXTENSIONS: replacement_file = basename + extension if os.path.exists( replacement_file ): compilation_info = database.GetCompilationInfoForFile( replacement_file ) if compilation_info.compiler_flags_: return compilation_info return None return database.GetCompilationInfoForFile( filename ) def FlagsForFile( filename, **kwargs ): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = GetCompilationInfoForFile( filename ) if not compilation_info: return None final_flags = MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_ ) # NOTE: This is just for YouCompleteMe; it's highly likely that your project # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT. #try: #final_flags.remove( '-stdlib=libc++' ) #except ValueError: #pass else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to ) return { 'flags': final_flags, 'do_cache': True } deepin-movie-reborn-5.15.10/CHANGELOG.md000066400000000000000000000311241473342170300173470ustar00rootroot00000000000000 ## 3.2.24 (2019-06-20) #### Bug Fixes * card0 may not enabled/usable ([d71a0a60](https://github.com/linuxdeepin/deepin-movie-reborn/commit/d71a0a606a3f7c9ac27cbe2c05698b9adba39cec)) ## 3.2.23.2 (2019-06-01) #### Bug Fixes * Should free xcb_query_pointer_reply return pointer ([5541d969](https://github.com/linuxdeepin/deepin-movie-reborn/commit/5541d96916fe8fbb04835e507f935718f2530d08)) ## 3.2.23.1 (2019-06-01) #### Bug Fixes * workaround for QTBUG-76114. ([bfeb745f](https://github.com/linuxdeepin/deepin-movie-reborn/commit/bfeb745f3832e64b29488db9cad884348dd5b531)) * missing settings item added. Fixes crash on file open. ([c2ed22ce](https://github.com/linuxdeepin/deepin-movie-reborn/commit/c2ed22ce85e7b8a4b7e225bf84ca3c5c6862a4a3)) ## 3.2.23 (2019-05-23) #### Bug Fixes * thumbnail previewer caused dock show up ([b4e511dc](https://github.com/linuxdeepin/deepin-movie-reborn/commit/b4e511dcef19f2d614939eb9914f23d6a4ee69e9)) #### Features * Drag and drop to load subtitle ([13b8166d](https://github.com/linuxdeepin/deepin-movie-reborn/commit/13b8166d36e04216e302e44fd69bf3d7f7c93b9f)) * remember last opened path ([46a7c66e](https://github.com/linuxdeepin/deepin-movie-reborn/commit/46a7c66e1676a1f24e385590fd58065efb64c9d3)) ## 3.2.22.1 (2019-04-19) ## 3.2.22 (2019-04-10) ## 3.2.21 (2019-03-27) ## 3.2.20 (2019-02-25) #### Bug Fixes * buttons not shwon in mini mode on arm64 platform ([572d7b37](https://github.com/linuxdeepin/deepin-movie-reborn/commit/572d7b37034ec8940160692755cfbe6f56cb6802)) ## 3.2.19 (2019-01-25) #### Bug Fixes * can not toggle mini mode when window maximized ([b70157f9](https://github.com/linuxdeepin/deepin-movie-reborn/commit/b70157f952108f712499b61e33d65931fac3d263)) ## 3.2.18 (2019-01-03) #### Bug Fixes * don't sleep while playing. ([0f478021](https://github.com/linuxdeepin/deepin-movie-reborn/commit/0f478021e4830a0fc88f671f8e12015d68bcc292)) #### Features * new subtitle font style. ([ebf1a19b](https://github.com/linuxdeepin/deepin-movie-reborn/commit/ebf1a19bc08c1499dcb59d2fcf0e28c9fa5f7e31)) ## 3.2.17 (2018-12-13) #### Bug Fixes * the window point not follow touch point on touch screen and enable hi-DPI ([ec17cf18](https://github.com/linuxdeepin/deepin-movie-reborn/commit/ec17cf18464727df3d31ab404ca1e169bc8fe046)) ## 3.2.16.1 (2018-12-07) #### Bug Fixes * remove application name in titlebar ([5c290d6c](https://github.com/linuxdeepin/deepin-movie-reborn/commit/5c290d6c85a2810f0437e4fc5ab01a09eb6fa91b)) ## 3.2.16 (2018-11-27) #### Bug Fixes * set the generic name to "Movie" ([704c7a78](https://github.com/linuxdeepin/deepin-movie-reborn/commit/704c7a78e7efe505d511704a158f20c38ee534cb)) #### Features * support auto translate the dekstop file ([2b8a971a](https://github.com/linuxdeepin/deepin-movie-reborn/commit/2b8a971ad4c46853b3b24da92a1c6432a4cd04b1)) ## 3.2.15 (2018-11-26) #### Features * Deepin vendor support ([7c0e2088](https://github.com/linuxdeepin/deepin-movie-reborn/commit/7c0e208832624d27cb340c6cebfefc0dbbc4c064)) * support the recent file spec. ([b278820e](https://github.com/linuxdeepin/deepin-movie-reborn/commit/b278820eef209d1fe485304d31f00766e0fdc0e8)) * support touch move window ([e443a7b6](https://github.com/linuxdeepin/deepin-movie-reborn/commit/e443a7b6f4e5f9c5828f05786d6fa4ff5b680e18)) ## 3.2.14 (2018-11-01) #### Bug Fixes * no transifex ([dbfe0115](dbfe0115)) * build error with libavresample deprecated ([9797db07](9797db07)) ## 3.2.13 (2018-10-30) #### Bug Fixes * crash when press F1 ([407dbb54](407dbb54)) ## 3.2.12 (2018-10-26) * refactor: use DApplication::handleHelpAction to open help document ## 3.2.11 (2018-10-25) #### Bug Fixes * remove the TitleBar right margin ([17de875f](17de875f)) ## 3.2.10 (2018-09-14) * maintainance tag ## 3.2.9 (2018-08-08) * fix(libdmr): bypass sub saving and compilation ## 3.2.8 (2018-07-20) #### Features * add frame-by-frame navigation support ([57e07793](57e07793)) ## 3.2.7 (2018-06-07) #### Features * run async append job conditionally ([d2d9528a](d2d9528a)) * **libdmr:** support pause on start ([518d453f](518d453f)) ## 3.2.5 (2018-05-04) #### Bug Fixes * check texture existence ([883f1897](883f1897)) ## 3.2.4 (2018-05-04) #### Features * expose setProperty from player engine ([6258d3a7](6258d3a7)) * do not show filter details ([3f16112f](3f16112f)) * **engine:** disable rounding for libdmr ([6b0f9e83](6b0f9e83)) * **libdmr:** * allow replay if keep-open and eof reached ([4bbbf829](4bbbf829)) * set interop from variable ([6ddcebee](6ddcebee)) * disable rounding by default ([ac925cb3](ac925cb3)) #### Bug Fixes * release gl resources ([be91122c](be91122c)) * handle drag back to normal resizing ([d5d8511a](d5d8511a)) * update fbo correctly ([28e84e43](28e84e43)) * do resize by constraints properly ([78609381](78609381)) * restore size correctly after quitting fs ([8c802ef8](8c802ef8)) * remove Build-Depends ([568d26ce](568d26ce)) ## 3.2.3 (2018-03-14) #### Bug Fixes * keep pending url until related signal received ([4a720619](4a720619)) * hide cursor only main window is focused ([f9714f2a](f9714f2a)) * movieinfo style ([64f6d4d7](64f6d4d7)) ## 3.2.2 (2018-03-09) ## 3.2.1 (2018-03-07) #### Bug Fixes * the close button is invisible of the settings dialog ([f581a3fd](f581a3fd)) * update dtkcore build depends ([d3751cff](d3751cff)) #### Features * add manual id ([8ab9f188](8ab9f188)) ## 3.2.0.3 (2018-01-16) #### Features * use hidpi pixmaps ([d18fc7cf](d18fc7cf)) ## 3.2.0.2 (2018-01-04) #### Features * provide better interop support ([78cb8159](78cb8159)) ## 3.2.0.1 (2018-01-02) #### Bug Fixes * load from cached thumb stream ([b437995e](b437995e)) ## 3.2.0 (2017-12-28) #### Bug Fixes * minor changes ([dc9306ab](dc9306ab)) * to leave progress bar when preview hide ([27b4c9a9](27b4c9a9)) * url comparison and signleloop mode ([1bc0f553](1bc0f553)) * handle context menu event correctly ([40b2e9ae](40b2e9ae)) * optimize drag to resize process ([0e85688f](0e85688f)) * use correct font to do text eliding ([172a3537](172a3537)) * optimize drop handling ([d4a6bcac](d4a6bcac)) * optimize _lastRectInNormalMode tracking ([b97246c9](b97246c9)) * should init debug level before instantiation ([78d432e2](78d432e2)) * make play state animation smooth ([d4f08feb](d4f08feb)) * adjust process of toggleUIMode ([bded982f](bded982f)) * check and emit an enter when necessary ([71ba3b88](71ba3b88)) * remove over-detailed CMakeLists options ([ee9fad4e](ee9fad4e)) * sliderMoved occasionally isn't signalled ([9b0d1047](9b0d1047)) * potential conflict with kwin ([bd43d2df](bd43d2df)) * Adapt lintian ([128cc039](128cc039)) #### Features * update shadow with focus change ([dac097c6](dac097c6)) * support dxcb mode ([3c97643e](3c97643e)) * quit fs to maximized state if it was ([fcf13d3f](fcf13d3f)) * remember playlist position when quit ([c7d8fe1b](c7d8fe1b)) * play state animation ([d2f68123](d2f68123)) * dynamic slider expansion animation ([e89450f7](e89450f7)) * **dxcb:** * smooth resizing ([d68be4e7](d68be4e7)) * better dxcb support ([b7171b1c](b7171b1c)) ## 3.1.1 (2017-12-13) #### Features * use better ElideText for movie info ([544ccc94](544ccc94)) * improve preview and progress bar design ([f0c70499](f0c70499)) * set debug log level for backend ([0315115b](0315115b)) * disable maximization in mini mode ([0ebc63f2](0ebc63f2)) * drag to restore ([06f20bfe](06f20bfe)) #### Bug Fixes * PreviewOnMouseover does not affect indicator ([8a685cc3](8a685cc3)) * allow suspendToolsWindow on title area in fs ([804a52e5](804a52e5)) * disable indicator on idle ([865a230e](865a230e)) * external sub loading and titlbar state ([f2d85d2f](f2d85d2f)) * reduce resize request ([8bb48f72](8bb48f72)) * allow resumeToolsWindow when playlist opened ([f69873a2](f69873a2)) * try fully encoded url first ([8fbde1fd](8fbde1fd)) * do not restore to idle size in mini mode ([3b4cd454](3b4cd454)) * make url dialog centered around main window ([20ded42e](20ded42e)) * db and cache info init ([62fe66f5](62fe66f5)) * **workaround:** bypass mouse event from other source ([077c110f](077c110f)) ## 3.0.2 (2017-12-11) #### Bug Fixes * switchPosition: reset _last if _current changed ([7448c66b](7448c66b)) * sync to save global state ([a99f2003](a99f2003)) * do not popup context menu from titlebar ([ab8bea72](ab8bea72)) * update _current after position switch ([892c2e75](892c2e75)) * workaround a drop indicator issue ([abf87d9e](abf87d9e)) * disable panscan in fs or maximized state ([3e04bd11](3e04bd11)) * take care filename input format ([6605e277](6605e277)) * on restore to default in normal state ([4d2377bd](4d2377bd)) * wrong conditional compilation ([5e69c0cc](5e69c0cc)) * use two variables to track mouse state ([27087d03](27087d03)) * adjust popup according to TOOLBOX_TOP_EXTENT ([179b5ae2](179b5ae2)) * delay toggling playlist when return to fs ([bd30d9b6](bd30d9b6)) * expand playlist into invisble extent of toolbox ([76216161](76216161)) * correct drag to maximize behaviour ([96d74eed](96d74eed)) * a few minor changes ([eb7bd68f](eb7bd68f)) #### Features * primitive caching scheme for playlist items ([30161b36](30161b36)) * show unique icon for different kinds of urls ([53586c03](53586c03)) * support playlist item repositioning ([1fcd1c26](1fcd1c26)) * reset last valid size when new vidoe loaded ([e6eaa49b](e6eaa49b)) * honor video metadata for rotation ([71f5d4e5](71f5d4e5)) * adjust playlist geometry when toggling fs ([f6d10a90](f6d10a90)) * remember both size and pos of last spot ([5d62d0f4](5d62d0f4)) * only show size notif for manual resizing ([ec7bf9f3](ec7bf9f3)) * sync above state with wm ([db49fa40](db49fa40)) * hide popup when turn to inactive state ([1f294ef7](1f294ef7)) * expand slider response area even wider ([f703dce2](f703dce2)) * restore to default size when idle ([fce147c2](fce147c2)) * make response area of slider look wider ([aca6eefd](aca6eefd)) * expand progress response area ([bb6f3f92](bb6f3f92)) * support libdmr.pc ([e16a3944](e16a3944)) * enable libdmr to override composite mode ([cfd1058e](cfd1058e)) * make video full the whole framebuffer ([1fcb45f3](1fcb45f3)) * libdmr interface usage demo ([88d9654b](88d9654b)) * split core function into libdmr ([c37f3dc1](c37f3dc1)) ## 3.0.1 (2017-11-27) #### Bug Fixes * potential crash when closing a smb shared video ([0318ec7e](0318ec7e)) #### Features * update playlist geometry under flatpak env ([ecf257c9](ecf257c9)) ## 3.0 (2017-11-21) #### Features * make sub font size approximate pixel size ([977f6733](977f6733)) ## 2.9.98 (2017-11-21) #### Bug Fixes * improve 4k playback by disable opengl-hq ([d3f222a7](d3f222a7)) * update svgs and more QImageReader migration ([93fa0caa](93fa0caa)) #### Features * make play state button clickable ([26b25be8](26b25be8)) * hide titlebar in fullscreen playback ([1a86fbd3](1a86fbd3)) * render HiDPI texture by QImageReader ([2dfe3c0d](2dfe3c0d)) * use QImageReader to render HiDPI images ([a8afaa64](a8afaa64)) ## 2.9.97 (2017-11-16) #### Bug Fixes * correct shape mask in non-composited mode ([86397bf2](86397bf2)) #### Features * use vaapi_egl opengl interop when possible ([632afdf9](632afdf9)) * support build with DTK_DMAN_PORTAL ([05a19b86](05a19b86)) * support dman activation from flatpak env ([eb548afc](eb548afc)) ## 2.9.96 (2017-11-09) #### Bug Fixes * check cookie before inhibit ([573ba280](573ba280)) * cookie should be unsigned int ([220231a6](220231a6)) * check and do UnInhibit when window closed ([81110c29](81110c29)) ## 2.9.95 (2017-11-02) #### Bug Fixes * pixmap take device ratio into account ([f6b851e4](f6b851e4)) * make toolbox more transparent ([06174b58](06174b58)) #### Features * scale fbo according to devicePixelRatio ([03307290](03307290)) * honor devicePixelRatio for pixmap rendering ([e0390a35](e0390a35)) * basic hdpi texture adaption ([86e09a82](86e09a82)) * support flatpak ([842b8a7b](842b8a7b)) * respect devicePixelRatio when move ([373f48ce](373f48ce)) deepin-movie-reborn-5.15.10/CMakeLists.txt000066400000000000000000000031731473342170300203010ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.0) project(deepin-movie-reborn) option(USE_DXCB "integration with dxcb platform plugin" OFF) option(DMR_DEBUG "turn on debug output" off) option(DTK_DMAN_PORTAL "turn on dman portal support" off) execute_process(COMMAND uname -m OUTPUT_VARIABLE MACH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) if (CMAKE_BUILD_TYPE STREQUAL "Debug") set(DMR_DEBUG on) endif() if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif() set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS on) find_package(PkgConfig REQUIRED) find_package(Qt5Core) pkg_check_modules(MPRIS REQUIRED IMPORTED_TARGET mpris-qt5) # test deepin fork mpris-qt5 try_compile(USE_FORK_MPRIS ${CMAKE_CURRENT_BINARY_DIR}/try_compile SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tests/mpris_test.cc LINK_LIBRARIES PkgConfig::MPRIS Qt5::Core OUTPUT_VARIABLE TRY_COMPILE_OUTPUT ) message(STATUS "use deepin fork mpris-qt5: ${USE_FORK_MPRIS}") if(USE_FORK_MPRIS) add_definitions(-DUSE_FORK_MPRIS) endif() # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories(${PROJECT_BINARY_DIR}) include_directories(${PROJECT_SOURCE_DIR}) include(GNUInstallDirs) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX /usr) endif() configure_file(${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_BINARY_DIR}/config.h @ONLY) add_subdirectory(src) add_subdirectory(examples/test) if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_subdirectory(tests) endif() deepin-movie-reborn-5.15.10/HACKING.md000066400000000000000000000003631473342170300171250ustar00rootroot00000000000000# HACKING guide for Deepin Movie ## Project layout ### Coding layout Deepin Movie developed by Qt(QWidget). ### Others ## Core Design ## List of TODO (It’s the good way for contributing) None. ## List of Workaround None. ## Others deepin-movie-reborn-5.15.10/LICENSE000066400000000000000000001045141473342170300165470ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . deepin-movie-reborn-5.15.10/LICENSES/000077500000000000000000000000001473342170300167425ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/LICENSES/CC-BY-4.0.txt000066400000000000000000000411771473342170300206110ustar00rootroot00000000000000Creative Commons Attribution 4.0 International Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. Creative Commons Attribution 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 – Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 – Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: A. reproduce and Share the Licensed Material, in whole or in part; and B. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 5. Downstream recipients. A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 – License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: A. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. Section 4 – Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 – Disclaimer of Warranties and Limitation of Liability. a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 – Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 – Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 – Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. deepin-movie-reborn-5.15.10/LICENSES/CC0-1.0.txt000066400000000000000000000156101473342170300203470ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. deepin-movie-reborn-5.15.10/LICENSES/GPL-3.0-or-later.txt000066400000000000000000001035561473342170300221600ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . deepin-movie-reborn-5.15.10/LICENSES/LGPL-3.0-or-later.txt000066400000000000000000001221621473342170300222660ustar00rootroot00000000000000GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . deepin-movie-reborn-5.15.10/README.md000066400000000000000000000054131473342170300170170ustar00rootroot00000000000000### Deepin movie Deepin Movie is a full-featured video player developed by Deepin Technology, supporting playing local and streaming media in multiple video formats. ### Dependencies ### Build dependencies _The **master** branch is current development branch, build dependencies may changes without update README.md, refer to `./debian/control` for a working build depends list_ - debhelper * cmake * pkg-config * libdtkcore5-bin * libdtkwidget-dev * libmpv-dev * libxcb1-dev * libxcb-util0-dev * libxcb-shape0-dev * libxcb-ewmh-dev * xcb-proto * x11proto-record-dev * libxtst-dev * libavcodec-dev * libavformat-dev * libavutil-dev * libpulse-dev * libssl-dev * libdvdnav-dev * libgsettings-qt-dev * ffmpeg module(s): - libffmpegthumbnailer-dev * Qt5(>= 5.6) with modules: - qtbase5-dev - qtbase5-private-dev - libqt5x11extras5-dev - qt5-qmake - libqt5svg5-dev - qttools5-dev - qttools5-dev-tools - libqt5sql5-sqlite - qtmultimedia5-dev ## Installation ### Build from source code 1. Make sure you have installed all dependencies. _Package name may be different between distros, if deepin-movie is available from your distro, check the packaging script delivered from your distro is a better idea._ Assume you are using [Deepin](https://distrowatch.com/table.php?distribution=deepin) or other debian-based distro which got deepin-movie delivered: ``` $ apt build-dep deepin-movie ``` 2. Build: ``` $ cd deepin-movie-reborn $ mkdir Build $ cd Build $ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr .. $ make ``` 3. Install: ``` $ sudo make install ``` When install complete, the executable binary file is placed into `/usr/bin/deepin-movie`. ## Usage Execute `deepin-movie` ## Documentations - [Development Documentation](https://linuxdeepin.github.io/deepin-movie/) - [User Documentation](https://wikidev.uniontech.com/index.php?title=%E5%BD%B1%E9%99%A2) | [用户文档](https://wikidev.uniontech.com/index.php?title=%E5%BD%B1%E9%99%A2) ## Getting help * [Official Forum](https://bbs.uniontech.com/) * [Developer Center](https://github.com/linuxdeepin/developer-center) * [Gitter](https://gitter.im/orgs/linuxdeepin/rooms) * [IRC Channel](https://webchat.freenode.net/?channels=deepin) * [Wiki](https://wikidev.uniontech.com/) ## Getting involved * We encourage you to report issues and contribute changes - [Contribution guide for developers](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers-en) (English) - [开发者代码贡献指南](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers) (中文) - [Translate for your language on Transifex](https://www.transifex.com/linuxdeepin/deepin-movie/) ## License Deepin Movie is licensed under [GPL-3.0-or-later](LICENSE)deepin-movie-reborn-5.15.10/README.zh_CN.md000066400000000000000000000053121473342170300200150ustar00rootroot00000000000000### Deepin movie 影院是深度技术开发的全功能视频播放器,支持以多种视频格式播放本地和流媒体。 ### 依赖 ### 编译依赖 _The **master** branch is current development branch, build dependencies may changes without update README.md, refer to `./debian/control` for a working build depends list_ - debhelper * cmake * pkg-config * libdtkcore5-bin * libdtkwidget-dev * libmpv-dev * libxcb1-dev * libxcb-util0-dev * libxcb-shape0-dev * libxcb-ewmh-dev * xcb-proto * x11proto-record-dev * libxtst-dev * libavcodec-dev * libavformat-dev * libavutil-dev * libpulse-dev * libssl-dev * libdvdnav-dev * libgsettings-qt-dev * ffmpeg module(s): - libffmpegthumbnailer-dev * Qt5(>= 5.6) with modules: - qtbase5-dev - qtbase5-private-dev - libqt5x11extras5-dev - qt5-qmake - libqt5svg5-dev - qttools5-dev - qttools5-dev-tools - libqt5sql5-sqlite - qtmultimedia5-dev ## 安装 ### 构建过程 1. Make sure you have installed all dependencies. _Package name may be different between distros, if deepin-movie is available from your distro, check the packaging script delivered from your distro is a better idea._ Assume you are using [Deepin](https://distrowatch.com/table.php?distribution=deepin) or other debian-based distro which got deepin-movie delivered: ``` $ apt build-dep deepin-movie ``` 2. Build: ``` $ cd deepin-movie-reborn $ mkdir Build $ cd Build $ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr .. $ make ``` 3. Install: ``` $ sudo make install ``` When install complete, the executable binary file is placed into `/usr/bin/deepin-movie`. ## 用途 Execute `deepin-movie` ## 文档 - [Development Documentation](https://linuxdeepin.github.io/deepin-movie/) - [User Documentation](https://wikidev.uniontech.com/index.php?title=%E5%BD%B1%E9%99%A2) | [用户文档](https://wikidev.uniontech.com/index.php?title=%E5%BD%B1%E9%99%A2) ## 帮助 * [Official Forum](https://bbs.uniontech.com/) * [Developer Center](https://github.com/linuxdeepin/developer-center) * [Gitter](https://gitter.im/orgs/linuxdeepin/rooms) * [IRC Channel](https://webchat.freenode.net/?channels=deepin) * [Wiki](https://wikidev.uniontech.com/) ## 贡献指南 * We encourage you to report issues and contribute changes - [Contribution guide for developers](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers-en) (English) - [开发者代码贡献指南](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers) (中文) - [Translate for your language on Transifex](https://www.transifex.com/linuxdeepin/deepin-movie/) ## 开源许可证 Deepin Movie 根据 [GPL-3.0-or-later](许可证)获得许可. deepin-movie-reborn-5.15.10/archlinux/000077500000000000000000000000001473342170300175325ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/archlinux/PKGBUILD000066400000000000000000000015421473342170300206600ustar00rootroot00000000000000# Maintainer: justforlxz pkgname=deepin-movie-git pkgver=5.9.8.r48.g225c49e9 pkgrel=1 pkgdesc='Movie player based on mpv' arch=('x86_64' 'aarch64') url="https://github.com/linuxdeepin/deepin-movie-reborn" license=('GPL3') depends=('deepin-qt5integration-git' 'ffmpegthumbnailer' 'libxtst' 'mpv' 'qtdbusextended' 'qtmpris' 'gstreamer' 'qt5-multimedia') makedepends=('cmake' 'gtest' 'ninja' 'qt5-tools') provides=('deepin-movie') conflicts=('deepin-movie') groups=('deepin-extra-git') options=('!lto') source=("source.tar.gz") sha512sums=('SKIP') prepare() { cd $deepin_source_name } build() { cd $deepin_source_name export CXXFLAGS+=' -fpermissive' cmake -GNinja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release . ninja } package() { cd $deepin_source_name DESTDIR="$pkgdir" ninja install } deepin-movie-reborn-5.15.10/arm64/000077500000000000000000000000001473342170300164665ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/arm64/linglong.yaml000066400000000000000000003254211473342170300211720ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023-2024 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later version: "1" package: id: org.deepin.movie name: "deepin-movie" version: 5.15.10.1 kind: app description: | movie for deepin os. base: org.deepin.base/23.1.0/arm64 runtime: org.deepin.runtime.dtk/23.2.0/arm64 command: - deepin-movie build: | cat /var/lib/dpkg/status|grep "^Package: " > ${PREFIX}/packages.list bash ./install_dep linglong/sources "${PREFIX}" "libxcb1-dev" mv ${PREFIX}/lib/${TRIPLET}/blas/libblas.* ${PREFIX}/lib/${TRIPLET} mv ${PREFIX}/lib/${TRIPLET}/lapack/liblapack.* ${PREFIX}/lib/${TRIPLET} # 获取版本号 VERSION=$(head -1 debian/changelog | awk -F'[()]' '{print $2}') # 使用sed命令替换version的值 sed -i "s/^ version: .*/ version: ${VERSION}.1/" linglong.yaml cmake -B build ${conf_args} \ -DSYSTEMD_USER_UNIT_DIR=${PREFIX}/lib/systemd/user \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib/${TRIPLET} \ -DVERSION=${VERSION} cmake --build build -j`nproc` cmake --build build --target install > install.log 2>&1 # 解决GIO运行问题: Settings schema xxx is not installed glib-compile-schemas $PREFIX/share/glib-2.0/schemas # 项目生成应用名和动态隐式加载的依赖库,ldd无法找到的其他库 LDD_FILES=( deepin-movie libmpv.so libgpuinfo.so libavcodec.so libavutil.so libavformat.so libgstreamer-1.0.so libgstpbutils-1.0.so libffmpegthumbnailer.so libdeepin-event-log.so libblas.so liblapack.so libgfortran.so ) # 生成.install 文件 bash ./deploy_dep "${LDD_FILES[@]}" sources: # - kind: git # url: https://github.com/linuxdeepin/deepin-movie-reborn # commit: 1f8249e0855d294017498b4faebfa72f003acc18 # linglong:gen_deb_source sources arm64 https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2 beige main community # linglong:gen_deb_source install libxcb1-dev, libxcb-util0-dev, libxcb-shape0-dev, libxcb-ewmh-dev, xcb-proto, x11proto-record-dev, libdbusextended-qt5-dev # linglong:gen_deb_source install libxtst-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpulse-dev, libdvdnav-dev, libgsettings-qt-dev, libmpris-qt5-dev, libva-dev # linglong:gen_deb_source install libmpv-dev, libgstreamer-plugins-base1.0-dev, libgstreamer1.0-dev, libffmpegthumbnailer-dev - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/debconf/debconf_1.5.79-deepin_all.deb digest: ded6aaa7927ae27337ceb23d49391b4c7ec460a00ba692020e8f4e28388f345f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dpkg/dpkg_1.22.6deepin3_arm64.deb digest: 81d1a53d75115f01e303fcf8337493bc2850614b0a2e30b06b9e0fa67d0d5a80 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig_2.14.2-6_arm64.deb digest: 91c105d210849f97151c436e0cf9b77910bbc58ea9bbd40da4077219def10994 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig-config_2.14.2-6_arm64.deb digest: aa64934dbf43b0dd0ffee2b7fbcce324b50b957b0a4f04c10d062a85d8847d8e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-croscore_20201225-deepin_all.deb digest: afbaf120869a08aa7dd14da9ad014de48a751aa4330534b531410bb86c411b55 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-dejavu/fonts-dejavu-core_2.37-deepin_all.deb digest: 5982963d05dbf4efa009c3ab6db3576a03f680199d75d7d5edda89c55def912c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-otf_20120503-10_all.deb digest: c66666da94b9a0477351ee9d6d7a247a0a3c842e428da770991b45f03be2ee72 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-ttf_20120503-10_all.deb digest: 79b23c3945d4628463672a804a0e81bc4c262ef87cb6316afb40167a50bc3145 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-liberation/fonts-liberation_2.1.5-3_all.deb digest: 9285213fd8d6515bc6c1be5b810bf39918a668a17024a9fd3541879ce7fb5344 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-noto-core_20201225-deepin_all.deb digest: fa09d95f516c498d55e516d549b8ee41d9a7b6f17cdf0bb4b43744d672ce1366 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tex-gyre/fonts-texgyre_20180621-3.1_all.deb digest: f66d6f798c4b99d8490558cc8209c069b0fe5577c11378c0e01f9e87ddf10824 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-urw-base35/fonts-urw-base35_20200910-7_all.deb digest: 4800c0b08fbeac0335f1e23df2d41528a242383324c256ebece00c8f438eefbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/gcc-13-base_13.2.0-3deepin2_arm64.deb digest: 7eb8f28aed47fdb201c6b2f22401d51c385b4cb7545239fd096bd49bcc85ab84 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gobject-introspection/gir1.2-freedesktop_1.80.1-2_arm64.deb digest: 9c16ffe3817b7df441f77423a6c7c9ff51763ed1122db288fc7ade4c8c45216b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/gir1.2-glib-2.0_2.80.1-1deepin1_arm64.deb digest: 44c091f38ef3e76d0b4d249b584a05e88b8e24a754834ba0bcde925734229ce3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.22.6-1deepin1_arm64.deb digest: e0d51bdaac6c37045413e3eee7c16593c92c6d39ab16878d424b1dd4fff88548 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/gir1.2-gstreamer-1.0_1.22.6-1_arm64.deb digest: db9653ad55d74e46e61cda83f533d785c072526c3561589832f2eb2c99ab335b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/gir1.2-gudev-1.0_238-2deepin1_arm64.deb digest: 1afc84a191b5f3819a8bc441315d4ab876409ec711acf1af3eda81659f9e3abb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/gir1.2-harfbuzz-0.0_8.0.1-1+rb1_arm64.deb digest: 3d4d3dd5e834f8dfa5c93e982793a91c3f1dfad7e9f0232d1812b24c7311092b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/gir1.2-ibus-1.0_1.5.29~rc1-1_arm64.deb digest: 43380cd00e9a71b7ce92d46098860e8c726649e9119234f813ec5dcccd85852b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/icu-devtools_74.2-1_arm64.deb digest: 5a0c3f6d595da7016a144b26a407b6608ad80ea7d61c89e2d3627511c2d72a8d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/iso-codes/iso-codes_4.15.0-1_all.deb digest: f75ce3c95770cc9cfa650b26eee2c7a2f6f8cee54a22cae29bd1e2cf2b6ccb7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/acl/libacl1_2.3.1-1_arm64.deb digest: 51808064361bdae539f985645eaee59b53c703b293174f761d996b27f2b8d860 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/aom/libaom3_3.2.0-deepin_arm64.deb digest: 002e2ff68ad45b52a0cc4fa3c2de2d59bf7622a8f112c82c90ca993230fd857c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive-dev_3.7.2-1_arm64.deb digest: 619561cc2dada9ce19d1eb77d6b65e4d2df96d97b0ec2bbd2dc164a11b4cb4c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive13_3.7.2-1_arm64.deb digest: 44b798b3a349d9fc85f274484b483bc246616f9976441658d0a4b9d42e81c052 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2_1.2.8-1_arm64.deb digest: c939e6f0110c67d983cb028079def26f9a5b61a7976780c9427305070ef19841 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-data_1.2.8-1_all.deb digest: cc8b0202a4e88d3c744fc9d4719a61b945b3b02759fa1af6bd55da6432119b2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-dev_1.2.8-1_arm64.deb digest: 54b64751907a7920272f2807c9f3f4a17e18c875cd66b8f18d0ef7c5e5ba8e02 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass-dev_0.15.2-1_arm64.deb digest: df3c39adc608888642257a0043371dc33c6886b75c8cec6188421cc6d1abda9f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass9_0.15.2-1_arm64.deb digest: f5fb080fb946561c37bc11f0fca6fa0c0231c6506c0e05c19e60b0ea2f3c61b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libasyncns/libasyncns0_0.8-deepin1_arm64.deb digest: 6752ef532df114ff1b95a8755893ba10430d8dc817d55e2a290f1dc786f5a491 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libavc1394/libavc1394-0_0.5.4-5_arm64.deb digest: f4c42a206e22196ffae860df9721e1b1dd22a1a90e6879ec47e0f02e4215ce70 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec-dev_6.1.1-2_arm64.deb digest: af219d46d6d3818f84561e2b0ec554b8d34bb56052cdede915c94b258bde0792 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec60_6.1.1-2_arm64.deb digest: 84938bd90b7af9ec12804b1bc305afd90d7d344202fadd67044da1ac4189f8b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice-dev_6.1.1-2_arm64.deb digest: 2472a33a875e6d834b660c48726b03800caaa6414aa8328fb0febcb2a7324722 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice60_6.1.1-2_arm64.deb digest: dfbbe8d9f411c71121fec0f2872207df253182081f57de48ad0af86d63f0db3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter-dev_6.1.1-2_arm64.deb digest: 27a8048e61062ef43fdfae3caf3058a3a7114371737333a278e2a77e2ce3f040 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter9_6.1.1-2_arm64.deb digest: cad094286a9f4b3c674f0d1e76b8eb7126744d1d560756128015b48c23e107b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat-dev_6.1.1-2_arm64.deb digest: cfd3e450228ae7bc62454de607dc82f16b0c899f780f9c10b918040225852753 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat60_6.1.1-2_arm64.deb digest: 9d5965d16229d041211834182a1cdac87c477f363a8794f96eedb9b46219adf0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil-dev_6.1.1-2_arm64.deb digest: 6593cf56a4a11b421efcfc6eb5da1b538005f03905f6ee8da33e4876d366b69d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil58_6.1.1-2_arm64.deb digest: 65b84abd3441e4549357ed8b76da327caade7410c89777ec98f60327a0819bbc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/libblas3_3.11.0-2_arm64.deb digest: 3443bb4ac1a9dad808977f7f9e712efc54395f408a054a3f838b37a84f2742bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid-dev_2.39.3-6deepin1_arm64.deb digest: a86d6e3229a0af4e39de917b5c49ab2b228ddf5dccd6e841a8944d19e62495b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid1_2.39.3-6deepin1_arm64.deb digest: 9956f16990e98ff4a62e1730feec46eb2d57e4da93b9c138514423f593f272ae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray-dev_1.3.4-1+rb2_arm64.deb digest: 052e800a0527d911561d4a5645a93c89a001a296e2206c997c035df7e9d84dfc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray2_1.3.4-1+rb2_arm64.deb digest: 321b50e4ee0efc4aaa9e67168e4b88216733e1c012d269e6e9f2c04941a66ec0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli-dev_1.1.0-1_arm64.deb digest: 0ec84a850b591a25123c4af0b055b4470648afe7187632c9a773172334a1e11a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli1_1.1.0-1_arm64.deb digest: b32fe6f18f903e781f7e2188dd1e9da6a2e16f0538cf7ec33f6e1fc3d6ffdd6b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbs2b/libbs2b0_3.1.0+dfsg-2.2-deepin1_arm64.deb digest: d008562ab238bc9339d89c40871cd2fec7d1ce9c7306f894c4c7b6e26fce884b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbsd/libbsd0_0.11.7-4_arm64.deb digest: cb575189104cacfa40cd228b6fb11f4a90e1c2f6b258e1627c843ebe5cb36f09 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-1.0_1.0.8-deepin_arm64.deb digest: 63167d09ddfd0359b4760f63e4e2a4cf8640886a11a465ecc2c06e2af2c7e651 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-dev_1.0.8-deepin_arm64.deb digest: 8edaf8c4e0b59311f01272082aa316985c6277e8d7b37ff7a464336643d70be2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc-dev-bin_2.38-6deepin4_arm64.deb digest: 1f1faaf691e7bf844a472602f00330029edf266e425a907b453b87f9bc7e1bbe - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6_2.38-6deepin4_arm64.deb digest: 85154ffc92a55de5a50cbce9280fe1fecab20a16847052bb622a6a1b7f312f17 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6-dev_2.38-6deepin4_arm64.deb digest: 47b0a0ae7695f021a5f89509e55dc7aa959e3eef5ea35cf81d680c3f5bc98332 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca-dev_0.99.beta20-4_arm64.deb digest: 42b0eae81dfb189a60381ed65b00be580e507c4f5aa4aa84f985f3aaa3b5bddd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca0_0.99.beta20-4_arm64.deb digest: c5784bbbbc8bdd1a65c90f64974506b7dbc6f3e349340f19159ff064c0e8b684 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo-gobject2_1.18.0-1_arm64.deb digest: e2e55ba2dc67fc1df591b0bc7786865bc2db3c2fae937f36d9c31584e019fa92 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo2_1.18.0-1_arm64.deb digest: 419fb5f555309b00910e51c807295f6ddf931894df73e0de206d855740333042 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2_2.44-1_arm64.deb digest: e259cea7adddd92aa02faeb17daf4a8468dbf60572ff1bc585660ab09901c67b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2-bin_2.44-1_arm64.deb digest: 5288df5f0ea7d1c3620154c945ffe13be5be90309d5de3e4c8de29e943e9c33e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/capstone/libcapstone4_4.0.2-3-deepin1_arm64.deb digest: d0b09968beb885bb5386216c43308a721db3ea07f4cfe558e977979ea1624589 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda-dev_10.2+2.0.0-deepin1_arm64.deb digest: 7bc342fbd66a85f7e3cb6ab76a427958f852e6cfbda353b1afac377cee9ce04e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda2_10.2+2.0.0-deepin1_arm64.deb digest: 26d1e34c25ce944b0b5f362f417f8428fffecacd2a0a51baf5b6618df101a27f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio-dev_2.1.0-4_arm64.deb digest: c383384882026c4ecc1670dad77c44a04abd6ab73e9d0789562ec3a691100317 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia-dev_10.2+2.0.0-deepin1_arm64.deb digest: 16b4b6cfbc759440983cd6ce2afc130cd1410f641e608c3097a2e240aeb82296 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia2_10.2+2.0.0-deepin1_arm64.deb digest: 8a78640ff62cd454179c08957df43b9cfd0a413857cf616570c570c1bf70c5b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio19_2.1.0-4_arm64.deb digest: 4eea867e82111a8670343f0cb70c870a7ac5febd22d2495768344360e8a486c5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/chromaprint/libchromaprint1_1.5.1-4_arm64.deb digest: 8c47e8fc2468440d9886f7e89db9d9601bdb592e43fe14585fce17354ec57b1c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cjson/libcjson1_1.7.15-1_arm64.deb digest: 2dae901869e9a50f832d6168942a0c8fe6e643e4f9f56f161cb212a6ad59c233 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/codec2/libcodec2-0.9_0.9.2-4_arm64.deb digest: e4e8c548add35a8933a2a2cba6faf36e5822e227eb8d582fb7f09f3444d154ab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/e2fsprogs/libcom-err2_1.47.0-2_arm64.deb digest: 0ff07ab670b095b2114dcaebe84487b7f2f60258abc4664677bc447a18d74d93 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt-dev_4.4.36-2_arm64.deb digest: 9ecb11690f383c4a004992d6484b395d1df8bac12dbde10a25f4386358adc2db - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt1_4.4.36-2_arm64.deb digest: 6ad1f20ac3a926290fbff7f42be96001177092805a784c07f8ebbde84181976a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdatrie/libdatrie1_0.2.13-2_arm64.deb digest: e0c2cfe68451fc2f325066806a0e158eda7d61a2ffacf988e248f8cd61844738 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dav1d/libdav1d6_1.2.1-2deepin1_arm64.deb digest: ed96097c7b23c3224e448f430d8a6bee10a2ec736088eca565b99146b72d82d5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_arm64.deb digest: f50dfa7f942c65b16d2c2ba9848374e3af0019dc28340f2df0c1dd91dcb846c2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-3_1.14.10-3_arm64.deb digest: 7b736881f8730994a643683bec66e7105c23d0ecf5e407e21c427faf2428c237 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-dev_1.14.10-3_arm64.deb digest: 145f187fe4c24e05066fabb9bcf71f96e1ccb992a75a59a68aef2613b2664c7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-1_0.0.3-5_arm64.deb digest: d026e9ff361c3fff771cbb4e7085b8d4ce07d5afcb4f5863e559d7761a05f51a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-dev_0.0.3-5_arm64.deb digest: 583442d42747f1caa4b8ea1a1783a09f2f1560246d57af296a8a5eca5384e0ad - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdc1394/libdc1394-25_2.2.6-4_arm64.deb digest: d60fff5081a93426d063bcdee8ee640311fc81a881bcf9ceaff247172fcb0885 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-0_0.1.1-2_arm64.deb digest: 404cd5994f270db4be6a496e2d8fc34b2fe4d68778c38cdb13b2eed423fac90b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-dev_0.1.1-2_arm64.deb digest: e52fbcbbf6e755be2c642fcecc6154d9d071978d0797e7cf9ccf93d131bf4fc6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdeflate/libdeflate0_1.18-1_arm64.deb digest: 044cb710b30d6019492308216ead89b7a7357e4e63a2574929a85a167967f515 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/double-conversion/libdouble-conversion3_3.3.0-1_arm64.deb digest: 78e9245e377c8f61009cc60d2b55001aaddd7b656fceb916b3ba8f07344251b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.119-1deepin1_arm64.deb digest: c959d7f8377ca73f1db120db1bd8aa9a24bbc7cd156dec0160b79625775051d4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-common_2.4.119-1deepin1_all.deb digest: c32b39f2496833a38f1c5c0c61f9f08d3c5b88da018a7b923367831d488a7061 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-dev_2.4.119-1deepin1_arm64.deb digest: dec729c07bb6053d9db76bddf03b90d7be3227eea141d8b724158f593f83157f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.119-1deepin1_arm64.deb digest: 9e69de74009fc810f8e1c314947fb82a61b10613d60a5189b5f00dfcacdd503c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-freedreno1_2.4.119-1deepin1_arm64.deb digest: 51bcfa596b31a65ff168eff108d5c2e4361a00ea95166045cca4238ff996d910 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-nouveau2_2.4.119-1deepin1_arm64.deb digest: 016f4c2d9abf0b1b8c91da6860cc23c1d8f2acf011694d1d18ba2d0bd9076fc8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-radeon1_2.4.119-1deepin1_arm64.deb digest: 72fe5a77f16bbf92791c44c4b6431cec1724963b43da47e7dde6801fb4c9300b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-tegra0_2.4.119-1deepin1_arm64.deb digest: 2f52e59fbc4531a505f41693ec9715f982b4584d8f16050ba0473d63f4e78d38 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm2_2.4.119-1deepin1_arm64.deb digest: 5bc786d4cd5aa4ff773bcbdc1676637831ddc2dbf9251e32bbf80b6937652eb6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav-dev_6.1.1-1_arm64.deb digest: ba2d0887d12252f6fa0cebef72b5f60668fe0fb3518c8106370189ef3df4cc4a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav4_6.1.1-1_arm64.deb digest: f5e805b74f43e619521c8d270fd6cc234a231bb0bfd15d3c626dc5653b28fff6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread-dev_6.1.2-1_arm64.deb digest: 6c36829f67491133e0d9213bf109afeb2559939350814598d2042af3af523e3e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread8_6.1.2-1_arm64.deb digest: 64ccc5ff0bd969d0cd933620c7c46d67fde87e1191b1a07c783564a18834c819 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libdw-dev_0.188-2.1deepin1_arm64.deb digest: 74dcee9b18b71652798b9ff311026efa6f84c99668eab6c891346ca13f885d77 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libdw1_0.188-2.1deepin1_arm64.deb digest: ca4fe48313a755c2d1c895ceb515cceba9aabdbd0a52ff5a8b1f2db6469e9056 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libe/libedit/libedit2_3.1-20230828-1_arm64.deb digest: ba394c531b520e3ee365d29c127505bce3554df15885dd53dbe9a9deee191326 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl-dev_1.7.0-1_arm64.deb digest: 1ebda9bd16604157f00d04520998885f6a1b74ab2ac39dd1246ad454ef4fb3c3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libegl-mesa0_24.0.1-1deepin3_arm64.deb digest: acb8b12aad7460dc896db90a05a1a80fc8f67e502323a3874cde2d8df1986f92 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl1_1.7.0-1_arm64.deb digest: e545d436bd07777713063cbbafcb75c2e2581d2f04ec697862380caf2074c471 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libelf-dev_0.188-2.1deepin1_arm64.deb digest: 37a8025487e6e3d4b56b91e8e5bf4f42923203fc63899a0b170a739ab1d4bf57 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libelf1_0.188-2.1deepin1_arm64.deb digest: 297192c96ecd1ae2c23772d73d746d15e5a30145fa91fca7b475bf44cc269c77 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1_2.5.0-2_arm64.deb digest: 2c66c6eb5bb8e1f8dbb6449e3948e3a75add01415561c10a89ac1b238a9a24b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1-dev_2.5.0-2_arm64.deb digest: 06c39c3e78aba8616d2c7b43d7cc33cd60bcbfb7bc362e997b2bce1b24fd7460 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi-dev_3.4.6-1_arm64.deb digest: 44b6f1a9aceead0cac121cfd13cdd9a529eb2b60522f8482c7dc4f67432d1904 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi8_3.4.6-1_arm64.deb digest: dd69564a592502ee67ae166c13d6d6a0a62021a47c2f3154589ed3bc62fe6b52 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nv-codec-headers/libffmpeg-nvenc-dev_11.1.5.2-1deepin_all.deb digest: ce0f8cd8ba7bcb7631e76a83e0b914df5df7a584ea947e18a56b8dfee2c45d8e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer-dev_2.2.2+git20220218+dfsg-2_arm64.deb digest: 121a19cc1c9b89c99fb26c9fbe62c3d6ef0bb3a4b9deaa3f8b26dab82d3a6475 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer4v5_2.2.2+git20220218+dfsg-2_arm64.deb digest: 5404eb0a0822d2b312fc3f18d9d675e19c167a373eacae063a3c25c91540867c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flac/libflac8_1.3.3-2_arm64.deb digest: 8a6209363d55641f2e981b054bf9ade88af6c0de9b966107de96d1f6a1a792dd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flite/libflite1_2.2-2_arm64.deb digest: 62d2315e28761cee751fc6596c988d008e5d575edca380a482f614b926cc281c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig-dev_2.14.2-6_arm64.deb digest: d965d2bee11b03bb0b86e876a78f5f3b3f5ae3b66ed3f74a8baed4f1a2edb058 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1_2.14.2-6_arm64.deb digest: 2088236fc9be4b0b363707d88c00eac4c082aa64f00c10f869c33884dee5772b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1-dev_2.14.2-6_arm64.deb digest: 6a01f4bc5a0369c10ce0021b23b3a4985c54672a05714b17b736f364f37805fb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libfontenc/libfontenc1_1.1.4-1_arm64.deb digest: 222148f71812a1026457b2d86edfe68eac087f0063ab5e8159439e3d11793425 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype-dev_2.13.2+dfsg-1deepin1_arm64.deb digest: dc1cc27076ac172ffd75b7fe88d5889be20c84eb0dbbeeff2a29f24c84d965dd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype6_2.13.2+dfsg-1deepin1_arm64.deb digest: 5363e03d3eb944c73fbc75e303cca2814077607480b2e7f7c9015d70aee31a27 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_arm64.deb digest: 3d241aac38667f18116a0204b9f5ebeae95d9da543139992d557b00acc38c723 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi0_1.0.8-2_arm64.deb digest: 270c9b8a81001d31d84760347ddae209ac6d952e7e6b3a7c0b3ecebec2a7838c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm-dev_24.0.1-1deepin3_arm64.deb digest: 74513299e4d384b7a2b158c9508bcae8dcdb517597769f19f2826e818e0f667d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm1_24.0.1-1deepin3_arm64.deb digest: 430a518d040066f098feb08bcdf3483a7d66ad406cf7ded51fc1fbb3c75fead6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgcc-s1_13.2.0-3deepin2_arm64.deb digest: 519de3835245c42344983ed863921b96eaa9acf06ea00f45fc84f02c95b6e40c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgcrypt20/libgcrypt20_1.10.3-2_arm64.deb digest: 86a50d1b85ed82764e7f356b2e3e5543149cc778edca29dae9765ddbc3789d9a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm-compat4_1.22-1_arm64.deb digest: d7dc16662376708bef84fd84bb79a769c443cfb2ce69e608c16c98f85080848c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm6_1.22-1_arm64.deb digest: ba32e543ec6296045f2680d23a890c315ab00c4a34201a7a55d3f72384518930 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.10+dfsg-3_arm64.deb digest: c6dbfe1b5eec83470e14f8a5bfef5c84aba9b68e566897c184c042b3dacb62e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-common_2.42.10+dfsg-3_all.deb digest: bcf7a388b33a76d765b3db4dc10fc0a946086bc7409228898ffbcc522e9dffc9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgfortran5_13.2.0-3deepin2_arm64.deb digest: 7a55b4d0e37182753ca3d9db963bb26164f5bdd8486f5ed8df5850d062a35842 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libgirepository-2.0-0_2.80.1-1deepin1_arm64.deb digest: 67fb7f1a7f5bf707a6dcead0b5b044c1704f454c2a51050fcb020ea9b1317913 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl-dev_1.7.0-1_arm64.deb digest: dc7f67af872323ece8087a4dfdd6106b9faa71d490447003ef964043066bb2e1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl1_1.7.0-1_arm64.deb digest: 93917761c2f8cdc9dfec793a9e6aaedd05973aca3a19eb74f2d33e926c0d7c3e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgl1-mesa-dri_24.0.1-1deepin3_arm64.deb digest: 61f881f2e30d330b403e87757d2b101145b05ca8cf12d1561954e7a312af08d1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglapi-mesa_24.0.1-1deepin3_arm64.deb digest: 7123084cced4f73f03703b65de87758b3c8e1476752a95abee422908d25e0167 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles-dev_1.7.0-1_arm64.deb digest: dcf24b7497da8536e6b6e8d5d528128f128e044f5266deb2b8af511a260e3b39 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles1_1.7.0-1_arm64.deb digest: 6152b728af9b2220e15d648925ad5f1c5312e972446627584010c937530c56ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles2_1.7.0-1_arm64.deb digest: 41fb972c5890ab20a3692075f8b3f2df391a4499094487a054ed8c8a4b1f7af6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-0_2.80.1-1deepin1_arm64.deb digest: bcd728365b170a9b2598f2c3a13a7b4b27bcbcc5c966610496f7a66c13d93394 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-bin_2.80.1-1deepin1_arm64.deb digest: 5306892a7f1ea756d7c63a92aa346da632b78072b44ce30cf5f0567e22d7d39b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-data_2.80.1-1deepin1_all.deb digest: 4e75a1c9e56c81ed2c1737e3e6fe590163a77ff45179101a4fcfb90b4c0d135d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev_2.80.1-1deepin1_arm64.deb digest: 894d0a7818c905544b7114e8c7268a3c8dded4395d3d859bdcb774e546e7ac98 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev-bin_2.80.1-1deepin1_arm64.deb digest: 4a16ad0b756f1336f01999c1c55cd69bb576416f985bf0445c5f08cbc889ab96 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglvnd0_1.7.0-1_arm64.deb digest: 3eaae06ffb183872a95c2c966050099ab9824b50ccab6802c1fdc95a7f6b25d5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx-dev_1.7.0-1_arm64.deb digest: ef37a90a94a9e4ba16352663b2703df57e3816e406eec0225e6339a91ad498fa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglx-mesa0_24.0.1-1deepin3_arm64.deb digest: 4ad8cc827a9c0228fd4a3bd7ced895b9221dd8dfd47c2b5f28258523bf7b1b16 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx0_1.7.0-1_arm64.deb digest: 41d194b986ca2e07171948e6b0d09b2b51f068117ae2f0bd11105e0c7cae8d7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/game-music-emu/libgme0_0.6.3.2-7deepin_arm64.deb digest: 6be533a6b6cb8b661664fedbe661b316edd0bee46f51fe598d300c2efaf95728 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gmp/libgmp10_6.3.0+dfsg-2_arm64.deb digest: de5b12b357a576878b30844fc57e688a019df948038673250fbc42f56486b5bb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gnutls28/libgnutls30_3.7.9-2_arm64.deb digest: 88703de5a0a7bc5c03730e2de61ae40894fa6f4d6d1f89def93ec44055c6771d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgomp1_13.2.0-3deepin2_arm64.deb digest: b3f9a49433a7942ef71407fb98e287fc63243f3021a913e76fbb60f4b62c8aff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgpg-error/libgpg-error0_1.47-3_arm64.deb digest: e67f481218dd4fc506bb97ebccacbbd39e5420caca6c71ba011b1efcc0f1f5a0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-3_1.3.14-1deepin1_arm64.deb digest: 8d96117438ee69dea09e2046288a3fa67642ccb3deeb881e5513a2c5e13803b4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1deepin1_arm64.deb digest: 293acf00d4ca78a8ea1a53dc81b4235ddc080d39c8a0f946c83cb9a4d0567683 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt-dev_0.2-4_arm64.deb digest: b28faedbee79a729a4f95e479dec3cc2d2fbcc250368e6e8283902a0aad4d964 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt1_0.2-4_arm64.deb digest: fd999a7223fce87dd9552252c0bab5a9d58b105663377d743332ccfdc029c112 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgsm/libgsm1_1.0.18-2_arm64.deb digest: 433078cb4127d8b89dbeaec5ba11ada27bb88ffb3e6a23bbfb882fe6e6a253f8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libgssapi-krb5-2_1.20.1-5_arm64.deb digest: e09ffd8646be9798699b1324b7d6292382f7c8c3665fbd0a6aed4536561ff06c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.22.6-1deepin1_arm64.deb digest: f87998f210fc92d1caa6fb39ce961be6a231d485bd886c9269d2c382c006ca37 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.22.6-1deepin1_arm64.deb digest: 1860dad4a296ff9fcf9aa3929e56a09bf2deeff1182e3920f41b5282e685b06b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.22.6-1deepin1_arm64.deb digest: db61adeef81a18d7a2366f97ef8e9f3992a6a33f714bf15f34eeac126d613634 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-0_1.22.6-1_arm64.deb digest: 0414081c9b1e2c854d1ff2fef2ebaf570adda09ea08b04d6f19f7b6b0ae87eb3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-dev_1.22.6-1_arm64.deb digest: cf661b69ab55c0545d94d7148fb861492a070489e8c994d7a2845c54ec564a18 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-0_238-2deepin1_arm64.deb digest: c952bbe64709d944821b367c5c211af4447ddb59f58f1c2b2fa264ab234890bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-dev_238-2deepin1_arm64.deb digest: 97b751c1e82af92962c3688f1bc9c0cdded3ea5bacc43d478f0780d22f8d6e6d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-cairo0_8.0.1-1+rb1_arm64.deb digest: ed33af4c629d3aee96243879e7135c9ab3423c11d934702ccf9298b3c1d76827 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-dev_8.0.1-1+rb1_arm64.deb digest: b0e6f5fa6f0817bd84da013630414ebd59d51220aab31365e3413e0b1a1b5390 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-gobject0_8.0.1-1+rb1_arm64.deb digest: 74470fefbd6dd8feab605f0b783e69fc5ac3e4ba2d3f1321cba0161a402df9bb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-icu0_8.0.1-1+rb1_arm64.deb digest: b65db54a7f1e3ca5fd57a7f269aee4dcd1f8e54223e62b61a05b2e622edf3a77 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-subset0_8.0.1-1+rb1_arm64.deb digest: d1b6f0d1fd80cd4e25d4d7ebb3c2152bee13778680a3963afa6a45139658be84 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz0b_8.0.1-1+rb1_arm64.deb digest: b50ec89e04006c13764afac632d9fd4793c187d20fc54670018f76241fbe8495 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libhogweed6_3.7.3-1_arm64.deb digest: 0caf1aec7651bca8c8c0646eb87b064e522fbdc654edebc8c7e10e0a12f77c94 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/highway/libhwy1_1.0.7-8_arm64.deb digest: 0fe21fd8b6d8fcd5f72a3fc4a1f69df1e5dbfbbbbcef34f24e4c057bb42bf98a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-5_1.5.29~rc1-1_arm64.deb digest: 10ea5c0bcac948ffd3157d870d7906ade1a0f640b2f58d35ac1181401b0aaa26 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-dev_1.5.29~rc1-1_arm64.deb digest: 830ec0495293b0340f4f9531f4f786ce3a44ed9a327576bc396eccfda9ec442a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice-dev_1.0.10-1_arm64.deb digest: 249e262ee1569c8e89e56b935ef445761b657bfb10bba151fb6750f7128f45f8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice6_1.0.10-1_arm64.deb digest: a1910186258a924c4367673da786e7200f32e54ea54f65e2b885e3e451197e0e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu-dev_74.2-1_arm64.deb digest: 9ca7b1b358b2a35c52738517f8bdc1202886e4a2e2271674a26ffb4d6045e133 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu74_74.2-1_arm64.deb digest: 6e2f3e48bf19b25521e32d8936be815926311ec203cc99ec9f3043c9e74b9585 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libidn2/libidn2-0_2.3.2-2_arm64.deb digest: 66be80634fd2243b4741bc12bf02ae140d4af694da58e23415130322eb8e17cc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libiec61883/libiec61883-0_1.2.0-4_arm64.deb digest: 9454ae341e6c594d936fd589aa0d0c8f001b8c90a28d6ae5c6aefa6f65581f91 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack-dev_0.125.0-3_arm64.deb digest: b5bc29dac01bea532e6c3f7fd648db62f71d4fadb79d601f841037bf4c1a52ab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jackd2/libjack-jackd2-0_1.9.21~dfsg-3_arm64.deb digest: 79d61617d392f79d8fe193cad44fc0a4c88f51707844c99d722d2b1cf8debebb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack0_0.125.0-3_arm64.deb digest: 3b667b0a086bfa6e2e99bbe166f4e1e2519ee141b9c0e03c63753c7a4570ea36 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jbigkit/libjbig0_2.1-3.1-deepin1_arm64.deb digest: cce7a06a6c026ffde094ac6555c1feff1763121dd88bba0d2977bfa59cdf403b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg-dev_2.1.5-2_arm64.deb digest: 7eb0cf9914476bdf669f0087c7fcba1d0cfd49f9697804d72fd2869e6fc3ecf6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.1.5-2_arm64.deb digest: 127ab1d74ddbf0f1620b8a2b907d9160a359079c49fdef8e07ee6ef795b502ff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.1.5-2_arm64.deb digest: 4355b250325f762945b8d68dbb1e39fd0847230f9bf56284c35d4a69aa819e5a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jpeg-xl/libjxl0.7_0.7.0-10.2_arm64.deb digest: 1dea32db152d4f3492daf75146ee116adf386b39be1c2fd54d7e918a04bec21c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libk5crypto3_1.20.1-5_arm64.deb digest: b25339e6e18dbdd4ea57d508158d999a86e539045789a5885667c6d6ecb81c9d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/keyutils/libkeyutils1_1.6.1-3_arm64.deb digest: e9eece05f5a7f5c49a139c4b90ebe1c2f95ee16e780db31c1ba724be46f01368 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5-3_1.20.1-5_arm64.deb digest: 32e10af6aefa67b71ea312c55b8f9a3f7c016d1edc6bd30907ed38ec27aef8d8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5support0_1.20.1-5_arm64.deb digest: 50aefca2b75fd2478e62ac9c7c5571e7e510ffa697207e78e29bfa6d40f3271d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/liblapack3_3.11.0-2_arm64.deb digest: 8f5adb747ccc2f41b64e43fca35b41deb3f597dacbe91c7ba180c13fe11a23e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-2_2.14-2_arm64.deb digest: ce6ca7ecc06a131d36a0cf01b7e0a2774bc0b75abc8c29aa432a6c6ed2d2ba3f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-dev_2.14-2_arm64.deb digest: e0454d960ef62b53fea41da4f5abb52173811dc4aac4c255f6938081a1d30e68 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lerc/liblerc4_4.0.0+ds-3_arm64.deb digest: b2510d375b08fc5b324dcc39a234971675c787d7b9a5cdfcbd8fbb414f9549e7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lilv/liblilv-0-0_0.24.12-2_arm64.deb digest: 8051b7cde63544279cd3c2e86653aabba8d26981d1d747ba00b0074fab9cc31b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/llvm-toolchain-17/libllvm17_17.0.6-5deepin1_arm64.deb digest: 3a3b887ad7328e9d08ef467310f660c8a2cc54dbaa30e0e246c18e13f59ec589 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-0_5.2.4-1.1-deepin1_arm64.deb digest: 176eebbd799638be0e3978bf1b0dd9eae03246740538b661d3209be9ed5b721d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-dev_5.2.4-1.1-deepin1_arm64.deb digest: 6e5d332865c833b9522634ca6728cd4cc16870332b73ff02ead699e356e55601 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lz4/liblz4-1_1.9.3-deepin_arm64.deb digest: 9de94343c0eaf87ec1b298d8f5dbfe42f06316f8dc608968e0718437035c1ee9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xz-utils/liblzma-dev_5.4.5-0.3_arm64.deb digest: 0e91a2383f5ab980fb06cb347c66dc6b6480a7b76cb67ded44bb4b183f295d21 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xz-utils/liblzma5_5.4.5-0.3_arm64.deb digest: 89bd6cb9e9f756b25b0e973012a88d2df0c273c0dc44ab0cbc2a0bb6b773ba55 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mbedtls/libmbedcrypto3_2.16.9-0.1_arm64.deb digest: 53601fc7779c338a250335a69a55adecec0f0f6f16f0fb7ccc69437188c01947 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmd/libmd0_1.0.4-1_arm64.deb digest: a1f7a672a07a62b85c2651bdba09552498db565da6ecf5748be618812124acc2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount-dev_2.39.3-6deepin1_arm64.deb digest: e04e69e0e1079164c9625eeee3c2153f7a642c4dcc270c0e9a0aa359e3127d09 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount1_2.39.3-6deepin1_arm64.deb digest: 34cacc70e4fb7db8f0fef17546f574e900975b0b6136ffdc8b79e0840ba9009d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lame/libmp3lame0_3.100-6_arm64.deb digest: 3362ecfa4b431c335a8833e3c5014f24ea43d6f1f398831c48fa03c2234f7059 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpg123/libmpg123-0_1.32.3-1_arm64.deb digest: 23cd28536c443143558618deb5b2ae7cf063b77d91c67205af18bd562e0368da - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-1_1.0.6.1-1deepin1_arm64.deb digest: 359f7873adfac1c0e9953d8f65a75da34b8125df8bce497d55442a6b50744336 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-dev_1.0.6.1-1deepin1_arm64.deb digest: 7d62c19d815276cedd3c6c471761b04a537301300e51e2d3e995317410d7ee09 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv-dev_0.36.0-1_arm64.deb digest: 4c08e6bd7baf018117b35e7f10f2a075272fbd473a88bbebebf92fa7df8bfdad - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv2_0.36.0-1_arm64.deb digest: 67fc6c10e46b71d8c5795dc4796faa708b158f079f936795fca321294c11b806 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs-dev_1.1.3-2_arm64.deb digest: 3cf0f83b951dba4ad49e8d5297e05e7ffee01730f2a084dc7165b77ed960a26e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs1_1.1.3-2_arm64.deb digest: e0d171260c208d1762fa36e17336e90220c4b2481d0707373ed9686305215c04 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmysofa/libmysofa1_1.2.1~dfsg0-1_arm64.deb digest: 7b334d29e8aba558029270b847e25a91ccab562bdfee82d09558225eefce2705 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses-dev_6.4-4_arm64.deb digest: 5e4081aa9dc7cb51f94c5da3d79ea12e3d2b6b7e9c1fd0e62452c13fd770b770 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses6_6.4-4_arm64.deb digest: 189d7fd965c99ea204689c7a6993161f4b069fb3c7a4ca4527176fd47a3354a8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncursesw6_6.4-4_arm64.deb digest: 4919576b45fe077f2b0f1365cafa0abb0cd29232a6bb2ffa4016df8926c64ce0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libnettle8_3.7.3-1_arm64.deb digest: 94f6240b06e89b83e43b85f3ac482f57468f7b78b3a356f692a9a2508b4b62f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/norm/libnorm1_1.5.9+dfsg-2_arm64.deb digest: 06f3609b64811a80941b259736bb1f71a58633df1300b979a4458fd92a3d634e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl-dev_1.3.0-2_arm64.deb digest: f6267e06818bde69c32fcb07f15807e9c0240561de3c4bbe90e1cc4189a12d22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl2_1.3.0-2_arm64.deb digest: 08c95ea4d7177490751748ac26160236580dd2351a4e8ffdb57774e7874a40a7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/numactl/libnuma1_2.0.14-3deepin1_arm64.deb digest: 975f33301315941ea6ff79bd2e9d561f4722cb27ea10138da991cf7c86b6fb8b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libogg/libogg0_1.3.5-3_arm64.deb digest: f38444dd8eefeaff0d041a17e7bd024fb08e056753ffff220c13bf770a023191 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal-data_1.19.1-2_all.deb digest: 91ecc894db5d6661748f4e06d219f8beb14191afecb32fcad7f2b2cd1efcd282 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal1_1.19.1-2_arm64.deb digest: f08db4bd3d80d68cfdc9a22608bd40f166fdc42636b75836bdb4f0fa3e77f546 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openjpeg2/libopenjp2-7_2.5.0-2_arm64.deb digest: a7dd240a390ebad6e63a7b7ce985a54e2e3753d025f5a040c6c28727e6741461 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libopenmpt/libopenmpt0_0.5.13-1_arm64.deb digest: 708abbef01003230052485b27b3609597941ff97aa5d189268e46ee0f888e66c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/opus/libopus0_1.3.1-3_arm64.deb digest: c46fdbd130a878dff3b384ef37d302f4c7c72da43b05eb91e07fb62cf9928a6b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-0_0.4.32-2_arm64.deb digest: da30ea2308df2e7f60064c38ca2fb159bf613b7eab446184668b799bb917777c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev_0.4.32-2_arm64.deb digest: 942c1c0bad9420ca5d16434ae5c2a6b0a653e15b32c0c9cd65b6e629aa7a270b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev-bin_0.4.32-2_arm64.deb digest: c7b74a5be1888dcf706c85f564356c1bdbeb9d4b8935047a1e1143d621b5d14d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/p11-kit/libp11-kit0_0.24.0-5_arm64.deb digest: 1d6645b5f2c5242cd0a5c19bead54a8195d3398e009d81241aff9c00c553047f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpango-1.0-0_1.52.2+ds-1_arm64.deb digest: e0e7f4dc1eec6896e186bf9eb6083a22471d09b5175c5e909400fdc6a84f5bea - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangocairo-1.0-0_1.52.2+ds-1_arm64.deb digest: 695d843ba51d24abfe9827eeb6eb79ff0a7df22e015f701921f4402a12e9ba0b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangoft2-1.0-0_1.52.2+ds-1_arm64.deb digest: 1731585688b59ca0706d36388506f3a4a3ddde5077a4d5c67191fa15e5593f3b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess-dev_0.16-1_arm64.deb digest: 9755d551c88fdb1e6d1a38ad5854c8dd97e011185b198c7a415295a391667a7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_arm64.deb digest: b84be91adeed5707bb8748ca315b09d1b684d63ffa29f61b179ea0f2a97254e9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-16-0_10.39-2_arm64.deb digest: b417f72e1d3895f3350645ac7f10859246808db988273031cecc41fbec6f567c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-32-0_10.39-2_arm64.deb digest: c50abb1ce61a1a2d6a3ec98848f179da3b9e000672f7278f0f1c865cb998fb37 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-8-0_10.39-2_arm64.deb digest: f721d2c4a9224b106c26b793af1f4a0c884184766e8e3d005369b4f265e0637e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-dev_10.39-2_arm64.deb digest: ba71787ac1c892e4b8fe9aa1544ecd81a7d9436538c3bb28b0d710fc391143d3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-posix3_10.39-2_arm64.deb digest: 6bb5a3b25014a1b3d0daff71338861f704defc4a1d7d5a2896b58604716914f3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/libperl5.36_5.36.0-10_arm64.deb digest: efe41ac688ac3c99eb41a36854ac9883e877d0b5f0a52a844b752ded579ebc57 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpgm/libpgm-5.3-0_5.3.128~dfsg-2_arm64.deb digest: f09601fbb60184cf2257b12a7eec5e39ae0d8659ae517bb42de686abc791f5a4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-0_1.0.0-1_arm64.deb digest: bc638290f737318584f7100e729f72c417d6de6866dafa4b3f574e036d13e74f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-dev_1.0.0-1_arm64.deb digest: 0179a629376a2e15154fdb3a70e32a12431fb4f8dc2251ba7e2c8ad1f54b6712 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pixman/libpixman-1-0_0.42.2-1_arm64.deb digest: 7195e91186e69bd55b9c05269973f6351a3a09470ce297610cf3d22ef6cac45e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/libpkgconf3_1.8.1-1_arm64.deb digest: 7f5373eb4e605128c619dae98e02a28dcd9a2857bbb23202c3cc10f1d048d23c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo-dev_6.292.1-1_arm64.deb digest: be98b0cebfc5e60970346033d6c3c4891e1f2f24036da17f093326304ac31681 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo292_6.292.1-1_arm64.deb digest: e12901bbe4f2d0be6a341640d45b1db0d4d04d249e0f59ad5a3d30912896ad80 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng-dev_1.6.40-2_arm64.deb digest: 9fa36c78edb32a573134c374484986e40a8a69867676919726a14264e1658a02 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng16-16_1.6.40-2_arm64.deb digest: 2c5ca3dc54e748c3b7df0a89a2f1e2379ed60ead17d15a6c9cb18e0bf706dc3b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pocketsphinx/libpocketsphinx3_0.8+5prealpha+1-13_arm64.deb digest: 9523527a9becdf223c0c367aaaa04cb9db76cac405316314ee5216f991384fb5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc-dev_6.1.1-2_arm64.deb digest: fe0a10d6d751fe8942e8366064e9d9d5503f35ac7fe3e2b33ffa770233cd0545 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc57_6.1.1-2_arm64.deb digest: e4fdf9008f2fbf51b860b0ee0a55bbf6845d5be81d84499153f189557d7193fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_arm64.deb digest: 3c2fef66a85ca8d8219283c1402eb66500b8587fa4f4495d327515e12b71e710 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-dev_15.0.3-5deepin10_arm64.deb digest: a297ed3045959dbb8bbdeacbc0f885fcb9319eb77b5f363ae46b5e5689f59b85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-mainloop-glib0_15.0.3-5deepin10_arm64.deb digest: 1e3228864cc7605526f097d0c5df0cc0faec26c5208f33b5090f489a0586d88a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse0_15.0.3-5deepin10_arm64.deb digest: c25afaff72ff1fedade779f4449f416300fad1fc6d7827b331d53c2e47f20408 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/libpython3-stdlib_3.11.4-5_arm64.deb digest: 0f284d8532396593657852aeb8037753b1a9e8939367fdea9d97ac0c58d2e97c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-minimal_3.11.6-3_arm64.deb digest: 00a33ab9f9f064db0042f148dce1fe129dc88b08d8c7970a329451ae182d52a1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-stdlib_3.11.6-3_arm64.deb digest: 020c879382893c59565049f4cf7553b4d607ceb4b14b41665d53c5f0c3669aa6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.8-1+deepin9_arm64.deb digest: 619617f8ebe1d07f328b36253d4bcefbe1f12b504c3a9f71f7380793064ed707 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.8-1+deepin9_arm64.deb digest: a5b96e35312c41defa00d954f8b7f972204566ff205f03127fdc1dd51d59ead5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librabbitmq/librabbitmq4_0.11.0-1_arm64.deb digest: d38dc8bd34b4cf0fe94e16797f662191b91eb9e16f9f0b44bbaaa9b4b4d736f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rust-rav1e/librav1e0_0.6.6-3_arm64.deb digest: 36122d25b77930e8af01a82c4e39faac2f4f328efdd80a1247a4d8ed57337bae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/libraw1394/libraw1394-11_2.1.2-2_arm64.deb digest: f27fe7f4e5b7b3cd93a3ee238eb4352ae268c301d6b93dab6d5afbcb8ee067b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline-dev_8.2-3_arm64.deb digest: 38060e4ed38f36e5c872a8a5c8f8d79ebe93da0964b796bd9712b1f574ee4e0a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline8_8.2-3_arm64.deb digest: 9bb27a75806c579d3ec78f6a455fccbd771b345a4b72014614392cf835a249df - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librist/librist4_0.2.7+dfsg-1_arm64.deb digest: a50896e0d12d2d03cc208dd2e7e2e6ff999b3bb1b77e3661a74c20acbe595086 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librsvg/librsvg2-2_2.54.7+dfsg-2deepin1_arm64.deb digest: cb8b7ce25f660133db3fc8ec90f8b28a42aae78cbd8c8087f4d049bc422a4586 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband-dev_2.0.0-2_arm64.deb digest: 67d6878abceb280cb3266dfef560368a407f2d6c004d9d0e4d5a29d17a243f1a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband2_2.0.0-2_arm64.deb digest: 4d4a8fdbe172ac87785eb4e78854cd23d11cd6e6a485004873f88cf119eaecfb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0_0.2.2-1_arm64.deb digest: 84c039697e041663bd4b7de673b0755d8ea5375a7c026809a81d986c0a3f6683 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0-dev_0.2.2-1_arm64.deb digest: ab3f731a5af6e5ac38350af354ff80b5acb03016b0dc16dad0b16092b75017cb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-2.0-0_2.30.0+dfsg-1_arm64.deb digest: 17eaae3a3634dca799d7c6c9a061c4b1336ed54a195d651c0c0f93a16cb9e791 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-dev_2.30.0+dfsg-1_arm64.deb digest: 7dcfe29ac4f53d1217006ec8b3368b6303624b83c51f86ce78122da37926e7bb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1_3.5-1_arm64.deb digest: 3cfab3f7139d7e22e2c693766a0417eca79cbb36abbeb9f54edd82ac29573626 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1-dev_3.5-1_arm64.deb digest: 5a903a7194c864ffcfd45e22b8cf8b38623ab11d83cc5fa74541324e6ccf59c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors-config_3.6.0-7_all.deb digest: 164115506dfd335f26101e76cb49e2162b0440398ccf2d0c969ebc465dfd7867 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors5_3.6.0-7_arm64.deb digest: 1d958884723ef414ba8ac8c05701ec36cbf81ac586ea2b5a2a042b3efd0f2342 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol-dev_3.5-2_arm64.deb digest: c55790b3f227a9f9b3736f40c03c8881adcf60732ce7be9a04c7b79fed7240e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol2_3.5-2_arm64.deb digest: 2b1f781c87f8381b9cb83ae410f7607c56e42cc15c1c5d85cc2ef9c0364141c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/serd/libserd-0-0_0.30.10-2_arm64.deb digest: a6f20251e1d90a0011aebaf7405ef9bb5b06e34c69d83be7a017610eb1ab8e31 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libset-scalar-perl/libset-scalar-perl_1.29-2_all.deb digest: e166ff12f34a06215e637d968841150f79483c4941c0d9c61f5220d8eba35dac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libsharpyuv0_1.3.2-0.2_arm64.deb digest: e3544fe81f21e00b53d6b9bf1be9efbc2aea360e5e074d726832f228db44cd82 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shine/libshine3_3.1.1-2_arm64.deb digest: d5007b42903e1000baa20e8d02043d58152f92ffbe50275c39ae6d62b020a860 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel-dev_1.8.6-2_arm64.deb digest: 61c9858f4e596f9a686c947b335070a7ba7c35c7e48402ed3e48ae6722ac82cf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel1_1.8.6-2_arm64.deb digest: cd12e82e6bbf0a97bf80fcdfd1ffa342cf3ca3d69e374a7c1e3afa99bf91d8b4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2_2.3.2-5_arm64.deb digest: d49edaf59cd088f434195b2ea1cc7c809baf7ae5fb60c0c2d62a4592597cdfa0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2-dev_2.3.2-5_arm64.deb digest: fce1288f192e2372d37856b6de8d5757cd0b0bac5b8141081806603510da507a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm-dev_1.2.3-1_arm64.deb digest: 46feef23a5735fcfb0bba9fc8bff8159ff57acc2d53aaec1445f51822f82f913 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm6_1.2.3-1_arm64.deb digest: 04dcd31830a75668f1114bff0dd08033af565b7f4f05cdb411d101ccff99d6e3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/snappy/libsnappy1v5_1.1.10-1_arm64.deb digest: 113f5f00178dc0ae8ed8689890fe593c61572181015c6aa3bd78e06c9d9cd207 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_arm64.deb digest: 297e9c2e5ccf243020307d68e6306b938af5b2c85fcf521c9a56978f340a2fb0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio-dev_1.5.0-3_arm64.deb digest: 4749a1ca8473c7bd7282b843ef540ef94b7ba333948931a3445189c1b2aec7f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio7.0_1.5.0-3_arm64.deb digest: b43ea5f8c51ed6c3bcee28b53da0de3fbebccc1763ff0a52d6f19f2d042b2f30 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsodium/libsodium23_1.0.18-1_arm64.deb digest: ed58a5ca7a8a4646f503396064852c8a1ec2da9a377a0626deedd2536172fced - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sord/libsord-0-0_0.16.14+git221008-1_arm64.deb digest: ac1056d07a450cced3125de43a15682b7cdc7060781697be7349235eb4e18093 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsoxr/libsoxr0_0.1.3-4_arm64.deb digest: 57472a0be9bd78ef65aa7f486c6b1236c956798c2af1152d7fd71bcc71d73bd4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-dev_1.0.0-1_arm64.deb digest: 0cf279635deca49af2ace8b8dfc48f0f624ecf7b9fc5b49ea8ac9d76f42c5a54 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-modules_1.0.0-1_arm64.deb digest: f6ed45c722ba3b410037942b38f735babe3a744bf4944dda29b162e74e3b0c9f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/speex/libspeex1_1.2.1-2_arm64.deb digest: 20acbb41e1401455da4e83c2a76438395765b1578e2352b0060e1376f2297a06 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sphinxbase/libsphinxbase3_0.8+5prealpha+1-13_arm64.deb digest: e61c661b0c87ab40f14e03f51720b79b38784d6536ea88f88ef9c81f866d93d8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared-dev_2021.01.15-4_arm64.deb digest: 6e58e2423bfa267dba049bda65e4c2b7f09858cb9be5a502a9cfa5a6ba854229 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared0_2021.01.15-4_arm64.deb digest: c67bae8fda3c835ac1a2862d5c96a4c62701119bcbdf013faa7d7647dc68326f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sqlite3/libsqlite3-0_3.45.1-1_arm64.deb digest: f788fcd0b11bd94e517861e10f13c962beb798ef531fa39df1df4d1d450192b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sratom/libsratom-0-0_0.6.8-1_arm64.deb digest: f184d5380c0f3bd1ee7259ece200d19d472733682aadcc40049c697bd9569041 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/srt/libsrt1.4-gnutls_1.4.4-4_arm64.deb digest: d96e10ab88820df3859cd8c97654c023d47b18fba462fd527756587d6ae2c169 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libssh/libssh-gcrypt-4_0.10.6-2_arm64.deb digest: 830239bef63460fabeb07413177ff1377da7b67edb62fb4710ee06c764f232c0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openssl/libssl3_3.2.0-2_arm64.deb digest: 87e7238888c7fce7fd8187b6a20fab67794148ef609a7ab609a46d1d8bedd713 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libstdc++6_13.2.0-3deepin2_arm64.deb digest: 2d1a62d877f70ee794a105735ba13a55ae4403930a686add25c95b4fc78160ab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/svt-av1/libsvtav1enc1d1_1.7.0+dfsg-2_arm64.deb digest: cc104e0d2a339b388906430c5ddde52273cf42871c3d5a1c488732d17647e782 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample-dev_6.1.1-2_arm64.deb digest: 91ee3a297848811135126ec16065e511bf59880edc1c9ba803ec41df83f8fa64 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample4_6.1.1-2_arm64.deb digest: 887e5c2187290c007b83a59bda4c010e8591616e1c8edf074d8a4ac567c2c0ce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale-dev_6.1.1-2_arm64.deb digest: 9f176a74169537f07a47ffb735170733e6ab966f71f919de7133d8ca44e991a0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale7_6.1.1-2_arm64.deb digest: 51cccbc15ca4c343222a7fc9e031220c6acdf45243ffa41074a91653cf6bad0c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sysprof/libsysprof-capture-4-dev_46.0-1_arm64.deb digest: 41ff44785effab7f081c3d4744d9e9cf25e374c13a00ab8ef93052a0a4d57114 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libsystemd0_255.2-4_arm64.deb digest: 1c3935f22fd6f39d00b3c98d30d320e01269feaec38dc0c7c2860cfa9fcb144d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtasn1-6/libtasn1-6_4.18.0-4_arm64.deb digest: a193d7e19d36227ab39cc199ed2601bd6bbb91baddaa26dad3a2530288a57cab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai-data_0.1.29-1_all.deb digest: 3a87af58b0b3becac7062da11264d083cd68190e7dd421c2cbd00da8841cfa25 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai0_0.1.29-1_arm64.deb digest: a66f94b4ee2e6fe64aa3b80a0fcd53ac1ece9cbb88f5a03cbc6bd6540ec4650b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-15_arm64.deb digest: 5bb4d414e7ef844ec1c4917ae67cfb52737a4cbf5421f3cdd28de0628f7b5d31 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tiff/libtiff6_4.5.1+git230720-1_arm64.deb digest: ef29aa7c6b0cb2d8cba1f1ba5404fa4b5310d3e7313d8d5b8a5d973518468756 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libtinfo6_6.4-4_arm64.deb digest: fe1fa74066ca1e08a176095b1aa5b6782e427a10c30650e33b189e7a30da9436 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-common_1.3.2-2_all.deb digest: 74bddc18e3289947b20653433e82025873f5679ccba52f258ca4912e435a09ee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-dev_1.3.2-2_arm64.deb digest: 02edc284e6a4be67f3bc1bdd8660f0a310ca8901c583cd18542450cdc947ebc3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc3_1.3.2-2_arm64.deb digest: 917ce3bf402df16ea74ccc1f67e1b1d97b09286609087461dd09c9c265f694c0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/twolame/libtwolame0_0.4.0-2_arm64.deb digest: a247a9281bd98fc91f1a6ad3df03546b2e98885a02a72c8d827ea77558ea3c83 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet-dev_0.0.7-1_arm64.deb digest: bd6c091b64262f2f3b40265ecfa5d0c9ade9f99c27bbb25b168d458d45a13853 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet0_0.0.7-1_arm64.deb digest: acc59223d4c76f286e60dd91438e609b74dc30f63d2a64f6321b5c8dc4738c44 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev-dev_255.2-4_arm64.deb digest: 50c30924779a7f1e920f8cec242631726d0574ff33298f233b08902adb0bccee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev1_255.2-4_arm64.deb digest: 85c24803b92c3c0899aedf8e742c60063717251314dd43e31a5160898d2aad62 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread-dev_1.1.2-1_arm64.deb digest: 7ea60db70db9c9551c12a9e549c5042f68089dfa9f60b2c8969b23b1d56ece39 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread0_1.1.2-1_arm64.deb digest: 4e25fbdfe08288e6f58cbf5a02a5147f4c2d6f41927020d20cc1a60ce49b5c0c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunistring/libunistring2_0.9.10-6_arm64.deb digest: 55c2f09476f2f0e2949afdab39939e5cb62cd99976bf36ee189011e34553b06f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunwind/libunwind-dev_1.7.2-0deepin2_arm64.deb digest: 51bbe8d11140a12f63e972bb744a63630a3432b7e056fa6b309d5a4f67fb2319 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunwind/libunwind8_1.7.2-0deepin2_arm64.deb digest: 64d485461e0f091c1b8cb772bac0c551dc3a1a1543ea21bccd4d64bb0948cfae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.24-3_arm64.deb digest: cbd80aa62a0b636ddb7b12bf41c9880a938e8a80f822ec1c41b2c2a45744a5b3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libuuid1_2.39.3-6deepin1_arm64.deb digest: f085d875204b2c41158ad83c96da354d4ce53c724106857b861cca425170ed2f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-dev_2.20.0-2_arm64.deb digest: 4e609ae8470651da1d29bfdc9dc9b5ae71222549032bc9015a1285f1c4d84f51 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-drm2_2.20.0-2_arm64.deb digest: 9a61323993ee5414465bffd67342d3f96932516459f43434b16fb82bd75508b8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-glx2_2.20.0-2_arm64.deb digest: 6c3674b1318cc49e9601aab068c8ea644f9ccba4480e50e0e577fd1302e6213d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-wayland2_2.20.0-2_arm64.deb digest: a8291d73ee96b8af0fee6e0ab279340fe6b002f8812daa72f8d68b459c0d9e1b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-x11-2_2.20.0-2_arm64.deb digest: 9b434dbd2a5f2f2f8f81dd2e9d9a2534e1734c4e05fd10945e70264883852d98 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva2_2.20.0-2_arm64.deb digest: 84af17750d36690d65ea6fe710aff9e92b56931916084126308db3068e84525c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau-dev_1.5-2_arm64.deb digest: a0910d7e6a7c9c1db45f1cc3eedf5bcc141682071001e7de0669c6e1ab8146a7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau1_1.5-2_arm64.deb digest: f403c96a9343009e7f3870c69d32c0e1a7f61b764122c08e31bad6d560ceb37c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvidstab/libvidstab1.1_1.1.0-deepin1_arm64.deb digest: 20d3e9a821dca4e8837a2f4802b2d503fe6471b3c1767dd251786bc75701568c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_arm64.deb digest: f8b0ae274417d953a9f9bc73014194c4862e82422e6f4d97cf646d5430beb003 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_arm64.deb digest: 7b31cc78f8316a47839cdb34c734a6e25fa7adf1f3cd965570f0bdec2b7cc118 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisfile3_1.3.7-1_arm64.deb digest: 03f79776d79c5798181a5c7cbeec4c2af9971b4956e9a574b3d4ea07c742c0a5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvpx/libvpx7_1.11.0-2_arm64.deb digest: e2921a1c7b0d58e16c782801bfcd84680dbabcea87714ee274bc5bf17acdf4dc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan-dev_1.3.268.0-1_arm64.deb digest: 358dfa214cce0157b019b7f2016e7a112c6461a708e2e8d54af0d2b25c26feda - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan1_1.3.268.0-1_arm64.deb digest: 3f4142af12fb84600c5f5b9458f7fd06d28ff6f7f5bcafff4c507624d16e3126 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-bin_1.22.0-1_arm64.deb digest: a3e32791734be49bca868ef9d5c7cb3938d09739616a4ac23beb469a086c825d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-client0_1.22.0-1_arm64.deb digest: e2e06a5222679a644660860a0a56b407b5ac5005a9f1f68f05b99b59427556a3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-cursor0_1.22.0-1_arm64.deb digest: a6bb51ce8af55c8ff4c7b59e213aa0151d2885fc1716721dad33617365609fdf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-dev_1.22.0-1_arm64.deb digest: 0192c449ed2d374c19febfaa4c41f551556e7b6d0ad32ac8a7f0baa902bec2be - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-egl1_1.22.0-1_arm64.deb digest: d808b482b6c8ac525265ca424859205ad336ebf7b23862e4cf99df528f0ef76c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-server0_1.22.0-1_arm64.deb digest: 907f1f1df403745e1929d1318a53e769eaadef1e24b43348a2761bdaa902d1e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebp7_1.3.2-0.2_arm64.deb digest: 72524d566f18c5461925b1bb5d352d312034f118bf5b039d76f248a682c64449 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebpmux3_1.3.2-0.2_arm64.deb digest: 5473ae2903e00b0fa112a226da1db479e7ad8006ef170a650a4292704f5d9723 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/webrtc-audio-processing/libwebrtc-audio-processing1_0.3-deepin1_arm64.deb digest: 1c18d9e1432c495d6b932a21c257dec0924c9a70e2fe880f7bae5ae401814939 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_arm64.deb digest: c11c2592469fb9d5f7b8a46a8d6110d51b940f55734ff4dfbdc8af415206eb76 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-6_1.8.7-1_arm64.deb digest: ac2d623345cb425a3c38685f0b2d61022ac9c4092a141099dcf818d8361e7d7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-data_1.8.7-1_all.deb digest: 400aaa7eaab268850d8c2c512474228204d47774f2aac79cef29d1c125e0c656 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-dev_1.8.7-1_arm64.deb digest: 1c6d4a10271b55eaf39aa83f76851047669a842f2c15b18282f2851bf29644d0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb-dev_1.8.7-1_arm64.deb digest: 33927f822ecb14cf182206d3e223a34efb5a9c6f19da4124e160e86f251d64f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb1_1.8.7-1_arm64.deb digest: 6293185372418e4f14c17d5c4d14cb631ecb1474be1b3d81d00a61f984bef922 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x264/libx264-160_0.160.3011.1+dde-deepin_arm64.deb digest: 4a54e946793a6dd6c9236ec3cf2d8f1ea5b762f8f9e54ec8be1d0320026d6880 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x265/libx265-199_3.5-deepin_arm64.deb digest: 28f3700178b4e302fde681e1044dcfcc8217f90aad9cbc02d73fda4067986a43 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau-dev_1.0.9-1_arm64.deb digest: 28ba4c91230a4d8e3caa43b0897bc56960e5b07eb6e8297ddfe3d57c3514457e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau6_1.0.9-1_arm64.deb digest: 82a1fcfe359eeb57e4c0dedd434719360650ed2423d08af807a06d0a0ba91bae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri2-0_1.15-1_arm64.deb digest: 76c404684ca22486f102a44dc00bb8c0240aa02dcbf321f9733759da84fd4286 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri3-0_1.15-1_arm64.deb digest: 66f3b86e8de5a56edf32de02641ad515380cf3fa84d219523c2a04dd7d2bd602 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh-dev_0.4.1-1.1_arm64.deb digest: 84070ac6115fa3de4692efa201787589d6262126be5c76ef9c18d3bb2a0c5f17 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh2_0.4.1-1.1_arm64.deb digest: 947c9a0c45f9b1c5ad76f374ed213cf872d89d056b47298519ddba77fb4a1944 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-glx0_1.15-1_arm64.deb digest: 8f251424b4a32ab7b0341578f3421c3eb15d25362117994350a6786f0b251f00 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-present0_1.15-1_arm64.deb digest: 4eb85646303b49b352e71e9c83e41ab3d66bf6729728e6b0a5545e9383a10c7c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-randr0_1.15-1_arm64.deb digest: 57ae90f4b2a203258755300a18e6cdf3bdd30055b49f2b2931d76e4f39930691 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-render0_1.15-1_arm64.deb digest: a94a481050202abd6227bb5df04eebd5d41243c51ac611490f79bffc9210d56a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0_1.15-1_arm64.deb digest: 02dec7d7fa38f1a3bcc8df6f3d3882fe660e5e84abaffd73055d495b558fae7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0-dev_1.15-1_arm64.deb digest: e9dbb3103c3fb2ea5b54ab84d2912227efe1d63929183251d0b28f513bfa3c05 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shm0_1.15-1_arm64.deb digest: 8270f8631c37a5ce16edb733617bebfdaa4bfe0d9885a95b565ac39d76c7dba0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-sync1_1.15-1_arm64.deb digest: c447e06e8318215b440f20992c69647cee90c31d9158cef9f16ec00424f7f509 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-deepin1_arm64.deb digest: a9d84c41624a14541bd780d2a2037bdc4bf5e0dcf006a834434bf9a72cfd45af - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util0-dev_0.4.0-deepin1_arm64.deb digest: 2a2bcb8a09a26f3d5baf83a5a252d5e1d80df8bdb1bbe97583e43f2f215b7b6d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util1_0.4.0-deepin1_arm64.deb digest: 18e3bc7f50b606984f78dcd7f2a137f68a8fde96ef17da18c7195242f1313c84 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-xfixes0_1.15-1_arm64.deb digest: c3c442fc82728a145e47ff2ce37bf173cc96bd26dc3329f8eed3daec2d47c211 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1_1.15-1_arm64.deb digest: 6a66b765b483884d4a8edb62dcbca87acae889488fba889b8e631982d0e35467 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1-dev_1.15-1_arm64.deb digest: f655f75fb5205cb90667bd2e1b1c08ccd93e0f937d1b4124b10afbab5bd4bc54 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_arm64.deb digest: 6dced4f2bc8aac95508ec161899edeba333f0971db18e0b622539eb86564b5a1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_arm64.deb digest: df15783c72ae789e491d9842dd8e4f8eccb2f2941f13e896185fedc7e2518619 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_arm64.deb digest: 26b4210ed6ce4e5d1dc2f766ae3b47dc36442294c8b7e8eaed61da9792f76130 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_arm64.deb digest: 1ac4558b1438d14fbc93d8c969bafac2ac7cfe4f4ec609d6ef34a47d73eda2dc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext-dev_1.3.4-1_arm64.deb digest: 2b4cd459d12acb0dec0831f2adf9bab083a46b9793eb2a9c5e46cdf05941d0e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext6_1.3.4-1_arm64.deb digest: 1018afc359feea593e136caed0273075e2d92aa9848bbb63b70fd55730fc4046 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes-dev_6.0.0-1_arm64.deb digest: eae9ec53861080b5cb794186f7d153743c1c55c781f812b706708e75ce300162 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes3_6.0.0-1_arm64.deb digest: a7bdf32460674bb76bb938273beac4003841dec058b335a609884287cf8d5326 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi-dev_1.8-1_arm64.deb digest: 8cf3bdd3f25fd9e38768f7b4e958a8e42f05ee00d871e85601fb1121abc22c9e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi6_1.8-1_arm64.deb digest: f13f05d08dfce11c97475a95baec914a6d6bef5ed83380a3510c5687c73c46d0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_arm64.deb digest: 0143c464b79b46f3658c4ac71d5d8623e675ed426bc7d5d1007d484ca9e5faa0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_arm64.deb digest: 9193e1f9e164583af80d5ab329b0d86f159543e7f9f1854efab2056c4660dfb4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.6.0-1_arm64.deb digest: 941544912030ac7a4ef2b1c3944932245be753179c8b83f93f2ecce2286ad833 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon0_1.6.0-1_arm64.deb digest: f17db6332bf3598ce69a9e82ead1270c456976d1313365c0f4b2414a919338da - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2_2.9.14+dfsg-1.3+rb1_arm64.deb digest: 529c82aefde6838caa50b1abe58a62fbc586c90d7821e131c076dc86b9a99f7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2-dev_2.9.14+dfsg-1.3+rb1_arm64.deb digest: abb8fc29fb15ac0245337aedeff997213d7aa100084301d6685163442d997b85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent-dev_1.0.0-deepin1_arm64.deb digest: f0b1f8c32a90e58a3d01f7aefb5c79d20106a642503b1389f41f3c3c49b23320 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent1_1.0.0-deepin1_arm64.deb digest: 00a990445d09dc51e97addf335771e2dec454603f1b1fe0517dcf236255dd463 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr-dev_1.5.2-1_arm64.deb digest: 5a40447e6255f59a3aeefdf9231dc5cc7c258dfb39af879fb8dc948d7fab424b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr2_1.5.2-1_arm64.deb digest: 11fcb9c48ed5571cecc73280ebbe721deea8ed8a39439664106023f5fd7407ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_arm64.deb digest: c4b25618b505b9ca714b8d5b95641ac2ce9ecbe87b71f5e4a712c47a9e4f0506 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender1_0.9.10-1_arm64.deb digest: acfd6bd44d5303a379bf438bff1a27026605309ef58f326aa3f1eee34e4480e0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_arm64.deb digest: 60d857474c350e734ae71d52d2f178bb094040eee606ad3b492e7bad7d105e35 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss-dev_1.2.3-1_arm64.deb digest: 9a52d81a6a5ba5dc8e127e97f4170775ffcf1ddedb8908207a72adf8c75b0b61 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss1_1.2.3-1_arm64.deb digest: de5108afcea0c337f8e2c9ca27f4fcf9794876aca9f6f666bf7bf05f5ca3eec8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt-dev_1.2.0-1_arm64.deb digest: e3d4f56026b614c7a0c78c849ee19b4caa0f564b63e980869f6e44c7c609f7f8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt6_1.2.0-1_arm64.deb digest: f5f24c77860526cdec49d0f3284924c05bd3be6b7d0f50978567143f9f24a812 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_arm64.deb digest: fa641fccc28efbca1d66816fc7fcf691190b1c8c38f5630fffc2a50da5ba1024 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst6_1.2.3-1_arm64.deb digest: b1fb01804966182f3db3150b8c4278a4188ee55b3d4794e0cfc96b6c0977e7b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv-dev_1.0.11-1_arm64.deb digest: 15f0f08f385ff939bda95416534ac7b47bb5d64c647c8ea08098d388f391d084 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv1_1.0.11-1_arm64.deb digest: f363598b58abdfc64e46ecb92b4faeb789b50a6b8ca2aa0e2a94c9cf4a9f90b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xvidcore/libxvidcore4_1.3.7-1_arm64.deb digest: 45d524b5413da4cd49fdd35e29065d3a88e0eba81e481d17c9a76880bc52b84d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-deepin1_arm64.deb digest: c46d0ad4e43b0897471b7c126fb125d6aa7fe5553c40810fad85788100fd3987 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-deepin1_arm64.deb digest: 03c6008b099fcb1e65cb6616159d20db0bdb71c201ca864f7b88e54e82d8541d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/z3/libz3-4_4.8.12-deepin2_arm64.deb digest: 241d5aec3a7d1bd07847bcfa14402be53429955567897aedebc63471d825cbe2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg-dev_3.0.3+ds1-deepin1_arm64.deb digest: 3b36a2432e3abb6bb96602c31eeea18d21b39ef3a454f1e946549220b96da691 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg2_3.0.3+ds1-deepin1_arm64.deb digest: bd1359078d13886451f058d7f32e66137f06d6ab4674d3e6c4e491e710d45a42 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zeromq3/libzmq5_4.3.5-1_arm64.deb digest: d0604b09daeb5a092bc3b7d77625f48456e3b5a5a3fb660122d36107e8a14ec3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libz/libzstd/libzstd1_1.5.5+dfsg2-2_arm64.deb digest: 6c0565bb989b520550da78cd0a32ecd4d85ca57b18e75e38816afb12db3d3160 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi-common_0.2.35-18_all.deb digest: 1fc738c696936a298eab3f5a6061ae0189078abddbdf7ef3da2b39537d47aa85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi0_0.2.35-18_arm64.deb digest: ca07a0b3834361af09936a24dfd36d16a41a3db8199cd41f666d979de8da902a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/linux-upstream/linux-libc-dev_23.01.00.32_arm64.deb digest: 08ca844363c7494917cfd8784369774c47e2fc37a0f5b3a3a365f97051a49fdb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mailcap/mailcap_3.70_all.deb digest: 7ca67d118c03eaf58346eb1e676ff16f4d1aa5252a8cc6b5b3b1ed44556180f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/media-types/media-types_4.0.0_all.deb digest: cd124053950ab8b0373203bceb7eab841791017daf1d50db2ece09e4da52406a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mime-support/mime-support_3.66_all.deb digest: 20294deda4378616c2b48614ee226731ec09663c3497c35a467e8ea5fa03f16a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/ncurses-bin_6.4-4_arm64.deb digest: 226cb671ec59995647397976511b68536500f6b5f9ae23880b56360c6ad3d06b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/ocl-icd/ocl-icd-libopencl1_2.2.14-3_arm64.deb digest: 2411c1cc39eb107516938b83b1eb50c29e9a6deb232723d65e17cbf592df8609 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl_5.36.0-10_arm64.deb digest: 78c75ef3cfd45150fdae9a88e5fca3d7d5c2b1f4d1ad84fe914a3aa0bccfe77c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-base_5.36.0-10_arm64.deb digest: 304683781e224018ad5ded38b86cf929281ced3eb79e456761479b7db9dbf641 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-modules-5.36_5.36.0-10_all.deb digest: 907542b9a413bd0276d5ef94fef77083715a692fd33c52ece44d11fff847bab0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkg-config_1.8.1-1_arm64.deb digest: c2f3222af433b7bad112ad798d9cd86951ca91aa98fe775a117cfde5a1f8f0be - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf_1.8.1-1_arm64.deb digest: 48c878d95d4aa0b0094ecac6387c2323427d684f1349f032fbe54f155545f459 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf-bin_1.8.1-1_arm64.deb digest: d5a4983bfcaafe6f90d4a122e2f9e1ca5b8acda59056f7977a937203c23f4034 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3_3.11.4-5_arm64.deb digest: 05c54ad644305f55c0a4ac2d16f99e9a676601e0e17996e802a29ecd2f06f49f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3-minimal_3.11.4-5_arm64.deb digest: da115a9274507f36445ff6e9ec14fcb0c771632f4cd22133a2b34efcfd498194 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python-packaging/python3-packaging_23.2-1_all.deb digest: 23df868981c665493f1859e974697088549ec5ff69ec56ea06ee864f36100a3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11_3.11.6-3_arm64.deb digest: 31b008d946c8daa259cb67e94e6eebcec1aabeea0a52eaeda7ef52633b5a9a64 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11-minimal_3.11.6-3_arm64.deb digest: 679142bbe94736cb5d4a0918ecf3a07fdbfd5e66c29a68d0ad4a18348a625305 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qemu/qemu-user_8.2.0+ds-1deepin1_arm64.deb digest: de8fab359e820b9eca9413b717ecc393af55e9b8f519a2a61de55d5b9428b87b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qemu/qemu-user-static_8.2.0+ds-1deepin1_arm64.deb digest: 0e88348a40b5d896ec72da2d1f46bff4161a9a65ed3e0649dc196865aea3c9c5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/readline-common_8.2-3_all.deb digest: 35fe59faceb8d9def8b6aa664e091eac8444887bc1f33ba2cf22099c3646e7bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rpcsvc-proto/rpcsvc-proto_1.4.2-4_arm64.deb digest: ae2f397b418bbed8a068fdc9223133120390dbe734734c72b8e152962a76da91 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sed/sed_4.8-1_arm64.deb digest: b949e33798c6fe9239600ea1eadc547bdbbb090e44105ae07714d0723d60230a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sgml-base/sgml-base_1.30_all.deb digest: 7ae50089218865dda4f7250a349c6fd6976702894b1b45f6ef935cf89855c4ce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shared-mime-info/shared-mime-info_2.2-1_arm64.deb digest: e026d478f271cdce55bcc623fea311ee9605e39bf17ee3919b2502221d0e86e0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tar/tar_1.35+dfsg-3_arm64.deb digest: 9e736851d33ca49a6e7ae4b188c480ea0929cb8e322da77174570c64a1037175 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tzdata/tzdata_2023d-1deepin1_all.deb digest: fe503c524801260208482a1dfc061e79c2a7450111dd90f88ed40d70ac935832 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/uuid-dev_2.39.3-6deepin1_arm64.deb digest: 7094c9e4b23c9651ba3bb49b5c13883ff2bcd12cd4f30d291a2c29cc4fd34d52 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland-protocols/wayland-protocols_1.32-1_all.deb digest: d08dca0feeaf2c777d2f8befe468303bd6d4a19c61d3d6ad018505192d333967 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg/x11-common_7.7+23-deepin1_all.deb digest: 9a7643db11023a8bec126312edec4b1b7357b93416bdfbaf9b0cb8bc04506d49 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-core-dev_2023.2-1_all.deb digest: 06b668c63517a64ef18f3733bcd69b077206a58c1c357e21f6ca6742a2864eee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-dev_2023.2-1_all.deb digest: ff7aacd67420615a38e2337f8a250abe36c36dd4f6d1ba824b6a9f4970037030 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-record-dev_2023.2-1_all.deb digest: cb9b512bf67d2af0ede8aa39c91eb2fe609fee0104d6fa2fe9238dfb89417fbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-render-dev_2023.2-1_all.deb digest: 748c9b7bc9c018761a230c31fe647e1f53efb05c56d215137b6fcd2c436a928d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2023.2-1_all.deb digest: 27ef00a9d3f4f7731f484bbdfcb649af86a9e62a3498bdc2870c9fa89a9dc698 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-video-dev_2023.2-1_all.deb digest: 80c2d38b64d64dbb7852047412d72d82220d7afb50a07c9534de84cced11d285 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xext-dev_2023.2-1_all.deb digest: d6017c9b8f95bc58689aac65b74457e1eb4dcb69f493a6ef14dcc6d06ac0ee22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xf86vidmode-dev_2023.2-1_all.deb digest: 8bb6b032cb5067dbfde1d088d92ff84a4a5c85b9a2428ff0cfc7fa4a44ac9908 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xinerama-dev_2023.2-1_all.deb digest: 8ecf54a26a88c3315ae2f35edaf9e74343e94c500f41bef4b1fbedadebec580e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-proto/xcb-proto_1.15.2-1_all.deb digest: a2f1025b48b539de5ed47f1ec69683986503ac295b47dc0cf0a90ad6767527fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-encodings/xfonts-encodings_1.0.4-2.1deepin1_all.deb digest: 07d68c68eeeca62cea0558b4f0bc25896bd82fddfa6c4b02693ee0adc4bde224 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-utils/xfonts-utils_7.7+6-deepin_arm64.deb digest: c92b2bd8b458619a6f6fdca530fe2b8d9faf3ed273cd867126898275078c1ec7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xkeyboard-config/xkb-data_2.38-2deepin1_all.deb digest: 6fdc32f08737735128e20a10f9a8425bde19855e3917d8f26a62ea3a12a9a720 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xml-core/xml-core_0.18+nmu1_all.deb digest: 9c76dce7ec31d455c07c496d47c5c977ca3f67008832ca66f52f0e438ee13ff4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg-sgml-doctools/xorg-sgml-doctools_1.11-1.1_all.deb digest: c3ac4805a75219ecc8a92a79697d39fa9abf6a7fa16da540800a0d30bdcc2847 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xtrans/xtrans-dev_1.4.0-1_all.deb digest: ab37e512128e066d7225deb7f51f0c77f9b0c3913d75f2a7f9b1d708327a099d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g_1.3.dfsg-3_arm64.deb digest: adb068362f6afec03d96fa543338b34e3293f7dbc4e8327bad072709db1245e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g-dev_1.3.dfsg-3_arm64.deb digest: 48249999b6b79e3e2f2e8dc27ebbb75f4fc1b0a2cfe928e6784d559503251871 deepin-movie-reborn-5.15.10/assets/000077500000000000000000000000001473342170300170375ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie.json000066400000000000000000000004711473342170300223150ustar00rootroot00000000000000{ "appid": "deepin-movie", "exec": "/usr/bin/deepin-movie", "functions": [{ "name": "playOneMovie", "description": "播放某部影片", "parameters": { "type": "object", "properties": { "name": { "type": "string", "description": "影片名称" } }, "required": [] } }] }deepin-movie-reborn-5.15.10/assets/deepin-movie/000077500000000000000000000000001473342170300214205ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/000077500000000000000000000000001473342170300225375ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/000077500000000000000000000000001473342170300240275ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/Ctrl.svg000077500000000000000000000040711473342170300254610ustar00rootroot00000000000000 Ctrl Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/Left.svg000077500000000000000000000021221473342170300254420ustar00rootroot00000000000000 Left Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/QM.svg000077500000000000000000000040111473342170300250640ustar00rootroot00000000000000 QM Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/R.svg000077500000000000000000000023031473342170300247520ustar00rootroot00000000000000 R Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/Right.svg000077500000000000000000000021251473342170300256300ustar00rootroot00000000000000 Right Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/Shift.svg000077500000000000000000000067711473342170300256430ustar00rootroot00000000000000 Shift Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/attention.svg000077500000000000000000000020421473342170300265560ustar00rootroot00000000000000 attention deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/close.svg000077500000000000000000000023671473342170300256700ustar00rootroot00000000000000 Rectangle 9 Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/deepin-movie.svg000077500000000000000000000044251473342170300271410ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/deepin_launcher.svg000077500000000000000000000076341473342170300277120ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/deepin_movie_96.svg000066400000000000000000000044251473342170300275360ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/episodes_normal.svg000077500000000000000000000025301473342170300277360ustar00rootroot00000000000000 episodes_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/icon_close.svg000077500000000000000000000014571473342170300266770ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/icon_menu.svg000077500000000000000000000047771473342170300265460ustar00rootroot00000000000000 image/svg+xml img_upload img_upload Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/last_normal.svg000077500000000000000000000031051473342170300270650ustar00rootroot00000000000000 last_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/max.svg000077500000000000000000000017051473342170300253430ustar00rootroot00000000000000 Rectangle 11 Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/menu.svg000077500000000000000000000022371473342170300255230ustar00rootroot00000000000000 Rectangle 13 Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/mix.svg000077500000000000000000000016421473342170300253530ustar00rootroot00000000000000 Rectangle 10 Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/movie_24.svg000077500000000000000000000040131473342170300261750ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/mute_normal.svg000077500000000000000000000045571473342170300271100ustar00rootroot00000000000000 mute_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/next_normal.svg000077500000000000000000000032241473342170300271020ustar00rootroot00000000000000 next_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/notes.svg000077500000000000000000000031531473342170300257050ustar00rootroot00000000000000 notes deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/play_normal.svg000077500000000000000000000022611473342170300270710ustar00rootroot00000000000000 play_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/suspend_normal.svg000077500000000000000000000016731473342170300276130ustar00rootroot00000000000000 suspend_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/tips.svg000077500000000000000000000030731473342170300255350ustar00rootroot00000000000000 tips deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/volume_normal.svg000077500000000000000000000035321473342170300274350ustar00rootroot00000000000000 volume_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/zoom_in_normal.svg000077500000000000000000000023161473342170300275770ustar00rootroot00000000000000 zoom in_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/common/zoom_out_normal.svg000077500000000000000000000023741473342170300300040ustar00rootroot00000000000000 zoom out_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/000077500000000000000000000000001473342170300235505ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/d_movie.md000066400000000000000000000306231473342170300255200ustar00rootroot00000000000000# Movie|deepin-movie| ## Overview Movie is a video player with simple interface and smooth performance, which is compatible with various video formats and supports the functions of playing local video or streaming media files, searching subtitles online or loading subtitles manually. ![1|main](fig/main.png) ## Guide ### Run Movie 1. Click the Launcher icon ![deepin_launcher](../common/deepin_launcher.svg) in the Dock to enter the Launcher interface. 2. Locate Movie ![movie_24](../common/movie_24.svg) by scrolling the mouse wheel or searching "movie" in the Launcher interface and click it to run. 3. Right-click ![movie_24](../common/movie_24.svg) and you can: - Click **Send to desktop** to create a desktop shortcut. - Click **Send to dock** to fix it in the Dock. - Click **Add to startup** to add it to startup and it will automatically run when the system starts up. ### Exit Movie - On the Movie interface, click ![close](../common/close.svg) to exit. - Right-click ![movie_24](../common/movie_24.svg) in the Dock and select **Close All** to exit. - Click ![icon_menu](../common/icon_menu.svg) on the Movie interface and select **Exit** to exit. ### View Shortcuts On the Movie interface, press **Ctrl + Shift + ?** to view shortcuts. Proficiency in shortcuts will greatly improve your efficiency. ![1|shortcut](fig/shortcut.png) ## Main Interface ![1|playmovie](fig/playmovie.png) | Number | Name | Description | | ------ | -------------- | ------------------------------------------------------------ | | 1 | Play window | Display the video content. The video information and function icons will display after the mouse pointer is moved into the play window. Otherwise, they will be hidden. The play window is frameless. You can freely drag the play window to manually adjust its size. | | 2 | Time display | Display the total time and played time of the current video. | | 3 | Preview window | Display the video preview. You can view the video content at a time point via the preview window. | | 4 | Progress bar | Display the play progress. Drag the progress bar to adjust your play progress. The video preview window will display when the mouse pointer is placed over the progress bar. | | 5 | Video title | Display the name of video which is now playing. | | 6 | Main menu | You can add films and settings, switch window themes, view help manual, and get more information about Movie. |               > ![notes](../common/notes.svg) Notes: The preview window will display by default when the mouse is placed over the progress bar. If you do not need to display the preview window, you can enter the settings and change accordingly. Please refer to the [Basic Settings](#Basic Settings) for details. ### Icon Description | Icon | Name | Icon | Name | | ---------------------------------------------------------- | ---------- | ---------------------------------------------------------- | --------------- | | | Previous | | Next | | | Play | | Pause | | | Fullscreen | | Exit fullscreen | | | Playlist | | Volume | ## Basic Operations ### Play Films You can play films in the following ways: - When there are no files in the playlist, click ![play](../common/play_normal.svg)or ![movie_24](../common/movie_24.svg) and open the File Manager to select a film file. - On the Movie interface, right-click or click ![menu](../common/icon_menu.svg) to select **Open file** and open the File Manager to select a film file. - On the Movie interface, right-click or click ![menu](../common/icon_menu.svg) to select **Open folder**. All the audiovisual files in the folder are displayed in the playlist and will be played in turn. - On the Movie interface, right-click, select **Open URL**, and paste the address to play the film. > ![attention](../common/attention.svg) Attention: Make sure your network is well-connected before playing online videos with Movie. - On the Movie interface, right-click and select **Open CD/DVD** to play the films in CD/DVD. - Drag the file/folder directly to the Movie interface to play local films. > ![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, hold down the film file with one finger and drag it to the Movie interface to play the film. ![0|open](fig/open.png) ### Forward/Rewind - On the Movie interface, drag the progress bar to forward or rewind the film. - On the Movie interface, press ![Right](../common/Right.svg) or ![Left](../common/Left.svg) on the keyboard to fast forward or rewind rewind the film. >![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, slide leftward with one finger on the video picture area to rewind and rightward to forward in the fullscreen mode. ### Adjust Window You can adjust the window size as you wish during playback. Right-click on the Movie interface and you can: - Select **Fullscreen** to play in fullscreen. - Select **Mini Mode** to play in mini mode. - Select **Always on Top** to put the window on the top layer. - You can also drag the window edge to adjust the window size. >![notes](../common/notes.svg) Notes: Double-click the window to switch between **Fullscreen** and **Normal Window**. ![0|window](fig/window.png) ### Adjust Play Mode 1. Right-click on the Movie interface. 2. Select **Play Mode** and you can: - Select **Order Play** and the films in the playlist will be played in order until the last one. - Select **Shuffle Play** and films in the playlist will be played randomly. Loop shuffle play mode will continue after playing all the files in the playlist. - Select **Single Play** and the player will stop after playing the current film. - Select **Single Loop** and the film will be played over and over again. - Select **List Loop** and the whole playlist will be played over and over again in the current order. ![0|play_mode](fig/play_mode.png) ### Adjust Playback Speed 1. Right-click on the Movie interface. 2. Select **Playback Speed** and select the corresponding playback speed as needed in the dropdown list. > ![tips](../common/tips.svg)Tips: You can also use shortcuts to adjust the playback speed. Speed up/down is relative to the original play speed. The video playback speed increases/decreases by 0.1 times in default mode each time when it is sped up/down. The maximum playback speed is 2 times faster than the original speed and the minimum playback speed is 10 times slower than the original speed. > > - Press and hold **Ctrl** + ![Right](../common/Right.svg) or ![Left](../common/Left.svg) on the keyboard and the playback speed will increase or decrease. > - Press ![R](../common/R.svg) to restore the original speed. ![Playback](fig/playbackspeed.png) ### Adjust Frame 1. Right-click on the Movie interface. 2. Select **Frame** and you can: - Adjust the film aspect ratio between 4:3, 16:9, 16:10, 1.85:1, and 2.35:1. - Rotate the film frame clockwise or counterclockwise. - Jump to the previous frame or next frame. ![0|frame](fig/frame.png) ### Set Sound 1. Right-click on the Movie interface. 2. Select **Sound** and you can: - Select **Channel** and select the channel on which the film is played. - Select **Track** and select the play track for the film. > ![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, slide upward with one finger on the video picture area to increase the volume and downward to decrease the volume in the fullscreen mode. ![0|sound](fig/sound.png) ### Set Subtitle 1. Right-click on the Movie interface. 2. Select **Subtitle** and you can: - Select **Load** to manually load subtitles. - Select **Online Search** to search subtitles online for the film and load the subtitles automatically after a successful match. - Check **Select** to switch between multiple subtitles for the film. - Select **Hide** to hide the current film subtitle. - Select **Encodings** to select an encoding for the film to solve the issue of garbled subtitles in some cases. ![0|subtitle](fig/subtitle.png) ### Take Screenshots 1. Right-click on the Movie interface. 2. Select **Screenshot** and you can: - Select **Film Screenshot** to take a screenshot of the film in the current frame. - Select **Burst Shooting** to take 15 screenshots of the film at different times to form a preview image of the storyline. - Select **Open screenshot folder** to view the screenshots. ![0|screenshot](fig/screenshot.png) ### View Film Info 1. Right-click on the Movie interface. 2. Select **Film Info** and you can view the film info, codec info, and audio info of the film. ## Playlist Management You can enter the playlist to manage the existing video files. ### Delete Film from the Playlist 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Hover the mouse pointer over the video file, right-click, and select **Delete from playlist**. > ![tips](../common/tips.svg) Tips: On the Playlist interface, hover the mouse pointer over the video file and click ![close](../common/close.svg) to delete it. ![list](fig/listmanage.png) ### Clear Playlist 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Click the **Empty** icon under Playlist, or right-click the video file and select **Empty playlist**. ### Display in File Manager 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Hover the mouse pointer over the video file, right-click, and select **Display in file manager** to show the film file in File Manager. ## Main Menu On the main menu, you can open files/folders, switch window themes, view help manual, and get more information about Movie. ### Settings Click ![menu](../common/icon_menu.svg) > **Settings** on the Movie interface and you can set the basic information, shortcut keys, and subtitles. #### Basic Settings **Play Settings** - Check the **Clear playlist when exit** box to clear the playlist when you exit Movie. - Check the **Remember playback position** box to resume the film automatically from the last position played when Movie runs. - Check the **Auto add similar files to play **box to add the similar film files in the same folder to the playlist for playback in order. - Check the **Show video preview on mouseover** box to show the film preview when the mouse hovers over the progress bar. - Check the **Show thumbnails in progress bar** and a preview window will be displayed when you move the mouse over the progress bar. >![notes](../common/notes.svg) Notes: This feature is only available on the X86 platform. - Check the **Pause when minimized** to pause the playback automatically when minimizing the Movie window. - Select one mode from the **Default play mode** dropdown list and Movie will run in such mode next time. **Decoding Settings** - **Auto select**: Select the proper decoding manner automatically according to the device configuration. - **Hard decoding**: Decode the video by hardware. - **Soft decoding**: Decode the video by software. **Screenshot Settings** You can select the path to save screenshots as you wish. #### Shortcuts Settings You can view and custom shortcuts. #### Subtitle Settings You can set the font and font size for subtitles. ### Theme The window theme provides three theme types, namely Light Theme, Dark Theme, and System Theme. 1. On the Movie interface, click ![icon_menu](../common/icon_menu.svg). 2. Click **Theme** to select one theme. ### Help 1. On the Movie interface, click ![icon_menu](../common/icon_menu.svg). 2. Select **Help** to view the manual of Movie. ### About 1. On the Movie interface, click ![icon_menu](../common/icon_menu.svg). 2. Click **About** to view the version and introduction of Movie. ### Exit 1. On the Movie interface, click ![icon_menu](../common/icon_menu.svg). 2. Click **Exit** to exit Movie.deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/000077500000000000000000000000001473342170300243155ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/basic.png000066400000000000000000001745741473342170300261260ustar00rootroot00000000000000PNG  IHDR8tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp !\IDATx|R)!:{S`ADī J`AD JS4{KHHo& t#H[N9sf3g-X, NkudHNJۻlT+55ሲ݃`9;M,\T ie˿t.k+.eשV8 [Ym` 1\S3S^e/{s,}Naq~:u^Pש%Se<k[qb5ffΉ1_NG3-w2f /w<ĄD$q&4<$W ͘U2Vhu-j\wdk>idZ#>Y.%֌i<ƿ-K?iXl',7}+CUb6{nӷX\06ۍ|gϗӵ79>y~iNkٚsvaV^s;q&{QwG~̺cd%z>%%hԩN*5s8̇U༨\kҒ]:hnsLeua kX.nQ涙O7}?||ed#c{11 yn3o d^\vsrk\)ʯؼ;3yOHsտ.㊓(9ű]8^c6:Szo|Gx>7!!aw3{̚^vexܮsM''nK")X ?/܌/h[9qjxJHKI NIJ >v@;vt50y{{-3xtT8s(55ŋB„ Nd$)>[6NsjgpS=~2QABɧk?F`@qF҈I7Cq'*7_RETEDDDDEG \fki#5MMM5L|{`/""""rZ&/pcOKPN RMRY g/]ӻK鸓UnU\*=ی7U5ɓU퐚Ld>s(!>GzK&""""r Mlja ԔC(],B%""""r ?wnRSTXMp:D:UJ"""""DJ;}dvi5III~Ht>BTB"""""لw\E')9jS(̙U*T鈈d3EJ"!1hhf9-!:k/""""`w:-v5%%fbXVDDDDD#!995%9TBU("""""T8\ҚZ[%"""""Myy{e^*l ~V#M%"""""]ý;{aOfUdS~{2}̘V 5i y<.}EDDDD⍢ z{F9[A#7 } 2~A2c76B~Px5o rWxу+Ik@0GDDDD$pf}A|FRP;[xP>x2pNej#L)]~z:sؒiXup5j#د_ 2 } 9R`$_4ccvH-~J8w#tbԫ͐+c,x{9F( ,]7`/ <C"]mxp`y&&vvn x|c~,@v\*}#TouSuacwwh[)C G{6^50xuޝ#\zEь dwo&5v4B|s.l^9/}?"H8N77>? 0ؕ8S!VOW;"""""9&[?i0}p|#4o_ª%r$ߠx޾4x_iXc\-8pPE-n;ax3z4Kع@e\gROtaLl1nUly+ tsό0S[>8 = в4퐞P,3g|Ɓ›k޴Ęਗ਼. fcy .1?WNl%}<^4#51Rxk }&OY׿epV;F.gmOѱ>0""" P :ۏY7ops/M̒2j3Ӣ[Y("""#9jyCirSt=iެ4n4oiGX=m(VX<<+B{Δ ǑzѼ|>{]_Igbe⸻oE/H7܌S6_מEDDsg{T DyGl::6Y1tcHNaЫY“cF, rY|y?3'׹,9Y&N26I)Bل|Kr7ӘkT)+1sT?w%&{/C/3in[*TDDDp6OV!٣+B:f5ΙuϬl07| Q^t1'/h$55MGDD$љ{[}˰wA}lGl:}=avg4OԳMʾߙ柎"Ⱥ5S_΀h=%:"otVJ̃u/'3/j.jMc%;C*kG!""p/"]s=XpEh2A=םiv|8^a|'!ѕhا,캋^{fڊKѡwKvX7dHJ^W'KP#ZJoŸbל"d-֊=l#JB8S%""""L= .""""S(܋(܋½(܋e8EDDDDrl2-֩ܡ/Ԧ0/ł݋H6mE1~]G=aIgxh`d@IQN3k'<,wBm&^Y7qͪ\4Ŀ)YG[ӊ |;Bçv+ ߜ^EH6d;9ւ͒zC(ݴ3C—?D {XKaٯ[I>;x~]HlXEDDD${,/:Sپl-I\b]fyKѼf QS&U80 RnIV揌tZ^\(ۋHv$2VKꗏwF@n8sr"&\H6p$ƑVāx׷|9p]2U*y:JZ(ޕ:ރ#8+dq_2xΏ2By8zo Zx3gxe;F^DDDDlϽ'7/ޔm %h23+;esZqŨ[WMrDDDDD[ BRiW.=$\/^:>/S*~""""ն"x~4Y6OrqpQ恢hPÓ_sPtJWI(婢+'aZxE*8p=2՞|YW|p0?}j=3 ^?3+ŢSHֳѰWW峐x=Vݜ<8HDDDSɬ]n*QGAnE$OT,[ի޼գ$m zmGDDD%vp:R_Ve{> Ϻ#GqrSN3S[ß;pd2(װ5}"r 3Vs f:\wSř%[DDpǝwZGStqS-6^]#8KGz>ac=$NK0 k 5-Ӈ]MB4OE-""r㒭%:CWך%̧$s $>u+:wЦj,1WJbݤ5.C`Zt m{x0=v~(c½%S"ⅾ|q6ފ!=PFnd%%9սWqZ yK{qj=ҡƉTvN!1:UsqyUG+DDD$jp.r½ S:zouqrd|-1텇߼632 iF?Ⴕ΂e'Y*v;~%G䶕ʆ FkR9&<t6,\;KOҰAau½ȓ'˩,[w34N}ˢ+cr-)k9Y*m*B{]6bO-+ GJ6h6Kwᥖ\=Т~('d*DjYN$c6p(q02pwU&5sFZ;I[}ԬM@E{;zR8OgEݾ*{fq,> WD ^9{~,!{}T"""b"""""9. """"" """""p/""""" """""rpT)dwF*ڋ V ^DDDD$G{-8gY JDDDDn*7K69qg%&eCJu# OMօW\҉<u¦z--_[v]ubEV KDDD,'oj<⩻ڒcU7?7/uC_ϚϨџi;ѿ`&lu>rh]|6>^ͩ[zƉ/bJd 8/ s芢H6fqϤn>f4z%QLb %[OHLn&(<aovLx>a'bڸv:"32c ]Na |<ޥ yla4 U3s`5T>Wg7pqj?|#oc$^)EG4TBWA޼x_t< 0|L 6Oُ:GvM-?o 4Y4a3w,Zy`+ޜǒN14W+Ibd𡝨wvO挿35|MGFS-꓾wpi`?_di:=֕żi^xPnT>v{oWfLL[&={fO5&}-NC\Nⱱ쑾q>,՟3l3g/Vysd7H2\4[~Ǧ36tyapxE6߼ÿ2fD=&L}8F2ߍI~ʁo7ǛP&W|e_0-O6ޯPG{6qf6/<_MS~fɎ8hе+}sW_?s+K3v4?q>1;?[m|n;͎1|/O0ǘRɇ^v[MDOrCR6|Nii׷'sgEG '%m1)w.89{?'NfwL{z?w8Q'h4z)g1YAcqehպm"\@,x)?5p*{ïp +:(|v0f@^$eVtƔe?9QvΝ  `'LC>y,.rtY5q;ck {٫Is؆~CZ<ȏ&2d7lF%j/ a2OcKҿBjxcDM@>7W\Z! k݈;M .\w%cic!tQ|N"rI\M~xi؋S`׆$i@i#<7]]y(K8r2#aÅȜ̟>-xnh7Jygxu CsndOz/ %EW͢Sgr~0p}gY'X0k-AӡtHlٶM=#~^DzZg| 5 ҃3El5hM®6Qg~Z?Xrýrs# X hBta:8 >F?þS8а/TݪZm-*RۼpY0敵X^T_lEY̟SiQ֭BXU{<ņG)Xy3RR,t3 gaB<;_nIsON,9\>}Il*埾>CGf/ W_h]3%w4KuX:th9>[^hpH=Tw ~:g4˹ Ak UB.]kzsiRT][Z **kv_ X{= -5~p?;/0܅49g| KۼvUy/ޜcS;vDDr`}J$P(F8S'd;JyiXsb0z5;[₨[.ѱuh6F}G5(qGB$jמ}򿣄FQ ؝v/%rAs3MRq77O4F&OZgݞHojNh/G׭e0 [ FLg<;w,xQ۳qA_.,|>dswfFava=<ݮkZ̻K[9/||rAx̬; •4*'K^uו,xLns3c`0z^Gk7/bm Th~6,G/uW/!F44ņO1D׿lyvѣg:rdgޫ\fg|QN$_ښa4OFAdC^og)0u]a?~ǯpFQc{#I9l/ x{ [c)Kh5bg'ybqR|(~[e#4%{.jW=W }I{a`؜lߎ7qpV=EE/9lra87Bϛs/>[hlӰ94Vbs|u%i,siZQVw';gOJGo ;6 XO#2/;Hj>X&Op [}EcxKD$;{ZmRŊD=Mضou<<~(. w. Su^ u#Sg1<>!T@ M%X Ox3lxwQݭ7~\e3n+l9e#O |!XS&y #}(X=δ3_y dyi=q;O$,:ϴ-yz:N<\ HO1<qÖ*e<2˟6n.&/*<b꘷t<pJkCT2>g~2Um (}Zu%orq/YҪ{~p.Q36Vm""=Ý=JB83K=jp ]xnqa܎|:oeڇóGb_}rB; dUe*Cvc"""l*ZtCnPJqI lS*1f~9UDD4V^""H/*SODDD$=ۃF~ UDD2{½Dުp/""""3½刈p/"""""9#[ϽH"""""C½܋)""""f9 """""9܋ΤAip* :7ȿc)XN&]}_wW·[ :LDDDNgEn1ObBׯ.x[+ĥq>UN+'ѶTV38gYd29ѿ|yj%W?}o:ut^3?6~]r134%AԂ̓Tnؒw'Xr XQnB]t9BSxFMBH4țo%"r8N{[;}fP0.~qz/>T[j7,a¤ zZf[-9ЍG~u֟}=R^Pv ""7½-=C E6*慹_wN(lWo!e('1f,5 :ugxj:0=3ְ%M:e6;;Lbkg#O݆a%MfUl: 0ztmQ,fs@>[5]?-SY0ip)Vy/Nfi?Ȗ}'HpMzx no'Gh}LzzKkB^&穿6miEc]PuPr_ 7;΂Xz |Υ0CM0}dz8Q6ϏbwӮ./߬;FZjZDᛱNZ Xvp7j]ʐpa/͟l>-W(%r0_eO @mczX3tRW'ITc~g fOa1P{Zq-\|񅱾9(XMaO\DD2"-fJh3ļX Z']=؝WuD}lƦnoK|R`'CHK>?[ϣ5& mCow 2A{4q1TW ͂q*Tdžb=ii!#~b>O.FǨ L8竜ೡlCnG<&N}$/s{~z;ر,t.f/ xgZMӕIxB X:\|?Yz jdY!ϼ23&@}|2v@z _N'ókR:k΄-L:ջ/ bsIlcǾg˧cxoyB;s9Z ̸kDOB!>џwѤl-ֽM*ўߎanTR>#WË:/}A3SsKa:mf腮{ǥMm) Vtv_@\s"Tmϴev*,>)}$ߏJ-X.q3!6o 1hW=D<ԡQ!Rƅΰs)#f8hL\)J77:O`ZZuC)۶)-]5hM*P)?O (4 r t.s[e˗ը[8=Nau_.^q=ewTj^{Lո,%? 5 3¿:Drw"# RfQe:b7&0/==\Ҝ"Lx% 6`yؐOv,E@N*py,wL[7o(K a=xf55kA2uwYPBBQ=t7_͹c,G><Ԉr0mڕ'HDD,5Lnj{UNOVTR܍P z4biw̺l/-p@/suCe P2ˇc.8x 6nbBrV~r3ڄQ۳w\:n`uq3t..nqZ<߇2_yYgϘT^(Q?Y_&_k{|87RFچLZ<#lMC|>Oj?Yf2Mp[L6v&n3^yzYox:}N$gLvnNbt0p8ȴ~P6,Y<-׵Lθ@֮`oJ>~a)_[^Z=ԑO$ϊiUwp`!΍ə-үY= ̴hIw˖y/gH ɘk\esƙ~X槠!ޞ8o;Mxd3 ""ߧfȓv[P5&/<|rXUZ>8qp[]IMY~VJ<>uɪwb_oB`aW\ Ɲ;+~$c/ҤG1lw#5Fn8ˬ8N?΂UiPuYߪ,?Oٛu$ngw۱Ӝ߷)P5zɲ]l6C4fb>DժD_1i>*G⛛0xm9jn'2M%Wrcә ruh@zx'pN#l^%WzPa)|e(ܤ!㽙s"[V0z<֥^GHL<7?9 Fm;qċV7MXvL^Õ1Ocf+[*,>ϫ?CE+gsy;< .AGyn8Mtٝ|ls#_ |mT>Fby|B<*S^opWc [NdCl0kґ0g`V<82G/0ɾ/zqec5> :ΰREwMT8O}6i#nqh "rCi~ӯ&0{AMqe|ӫ[Ħ!e~rJS4&ު/CHCyEeL/`=H$l+̎J][ Uw5Og531T>6KÒU S`N{}_ k0QX굧zJ't@y<ɁŌs|@#~̇wg+MSCQ3X0֙p3"?2@^۔ -Q$D?]@4՟RE2N/gp Z@H٦}l^cqɕk?ly~ED5Jy3o}}FhBx'`ߘ?g0H7+FLBq3*+[uj5{HI".)mbvJ% Yqe>вW1_<ч_ {`2jq{#|#|z̈́);F\yt&}{OfGp{>]:^KOzt<^hIm2u`A,"sg JOxuUw 2dJ?#l@z5:up< ̌۠p~Yd:kLI!CqsB7٨MΒ  m2[șxU~9?Ѝ|ԫ.i ػ?{/SCRp{iZVjgee3e=rO"{\@Er{½g٬!'?SPl&6p5: >`o̝{l !J~Xў?O' Ʋ Wx;*Zi-zj"OoڅʂBqp3Vo#(*V1 Ȏ'W9*vY[>N!BoUZp6r_ȉY=hg55,|6$)I 6- TxL-6ǷYdZĕV3ȨB! lQgd߾8v}X5j]Wt' ~YU"wL$|ifwśo:"o^ kUV\1.B!Q}cw\3So&`D qض2z@ʕ'hU9YTmg{\LsJϸk} }*o"Q]m]MaC).B!-t8q8|#Zǜ}٘D&ͻ󒛖G0*hOzDK.4{Ж{56v68~lRp'++_? HۻM"Ssgᮖ{Elm0QesxYM6Kwe13S**̊DZ !BB!iB!B½q @RB!7#)!$ W 1!auI !ޤ^pˏD z)u 3LMY2=مA~ge"2a]-VaH h<ڷYp9GsR*KJT@U?? swjã@uӦ~,5/?,%lmK󶽅3Z^1t?ػXFk ˏc2'3Jc(p9c+JeEI?>:6 х{]Bz/V{ 3J6lM G:s&}x^IqI&B`m$ \ǯRlIAC]>jNG{ି'?y/ƅ?%T$҅r \ :2{) w\5+SߝGeC :WժzLX3,;.lL1*tL]g2l zmDY< ?MswϢ2gJ`}D^3|>|4Q1gY.l oˀA8)ˤOΠ?zwLgn{`Mz׌0[Ug{ޗ87e?͢Oy?]?!&Zؓ/0nr#G~̊RGn)ehB7ҲDTu | h(SU=loCKWs5#ѣg 9k RpnR&:JDR(,_co6]J)oR*oa1sUȤnҧT!$ tb! K#hLA!7vv藏-WhZ5~ ?K#.x;Ux38e׉X9kN'粺25aLHC툣XrHB{O@j4( 7zu} ClF2w7r.KRDsjFaM*pPHusYyɭ) Z}IuǿhԅԸV{cƍ,]01jD3 xFѝRD}_|~E-T(L]9=_cLV)@r]ӷmefliN0)6ţGfw~;9}{|YOA5#=3`e7BJ]2}_N5wPAF{Q\nBP$ D}P(,l.^!~ݑM73m ƽ꧄NSrHk7B..Co$5||v:>9+wHt8|,{ò%]QqsZT _Kx U -} _2w"q;>U6&;2Ҵl$^N~ kIX;te٭lO=q 6.5u{p=s>= {<]|ӤF[C)d䛙ƃ:՝8{sX9B7Kx"_W %p|n/(ښ=P'By)(E}^7C!~ۑ\dƳr>"/ʙ|Xmo~I$(^uLXz+)GY0Uw.O#Qkq7rfvPf똴&I\8ikn> By?o|k3t8HsqJҍtO=4y na(f^u6Iػ.ŗ]JG>MisRcU|27=ҽ gkz Y& 5  z zSЯ%atf}"/0u0"4TcHz^vvqb.,ތ^-/ w/G|}>NB 30) ȸP4}iY0f+U^1bU\)fwF|<#aGg8JBHn9>{!73aO,d߸,VJ"My|!z|$;{R j}BH/e ce]Hl#un7{"L'9=XƐj6%G!JZxRFqp-MZj.e"5D!e\5V~HӪLkkRB/PB!BHB!BHB!B6{6 cxoa9tLkOy`aD^g9 lJGw4o72uFB-0e3;UcaTS#;B!ag *49R0 3+Gv})7첢XT^ZYgp0uv>{U:>{o0"$Z 0-/.Pلm:m ݅MIr np-_#m'1#:KB!5͡0)޾[ RzШҸ?>X$3WcIłJʐg/2rߛ}r?;S8UZ%lޚ׫ٺyCSF*sʚu*'*NQGğ8ހ](`[ܜ .—G`JˣՅB!CT}4 ljKwAvJXztd%JХ%]\!~[He\6ʠb'v"9 mTc 3x Xfűyj8KlV),2i?K?o\ :鹶'>Ol'}B!C aЭf88X`ZH.Ũ_(>Ѽ7^%5m9rVlٝJ7dw|v  9;t7u9gLj` ˵!PZ=\φveks[Ky!p Epע^K3 ђx99_@7&V_gI;v'P|y\Glt8cLΞM@ێ%Qv`oIW0ۼi{ېr4Rxz!U;zջ&ŏevi[jzPvھ0d=?;)3!B3-?}G`cf,Υ+^ 0o۵.97} ,r_rPy*qڮߘ< Jp?u9?nPn,TV8;h?uD_` %ՠD|986n,6cҮy İ<%'BekM+`_.J5|T>ݳhe{Bų 5cAG09tKB;VS?3w3}Z6#)WOBDEyjeRYRR4~/ رT(u0C_!fQOT3'/dd|8uj}CvV{q%nJ}R_<Ʉ^߱X zT 'RE9UvDm5b茎=cU{C?zղ !rߎz>[ؿ8Fa*^<{Dc@_9W]iJ]`%o0HKyYzlӱ+(Wѧg&# YqnvQ y}H atoӮ3. +p ]+]dAl?&POƩtт!pzgl5o;~n;&a}D'w(qG? ά_wKp,A_hKErz]ert|oFgf~XwDl)]^ tq,0 3룱j՗)zvbɖ3)R}zR^<,_ls~T}+Y0u9+ŒjDpjU_}s Sl ycue;rC:0_dݨnve%yfo8It!{ ͋甕Ve.|T )器⎊دfΘL|ѥw RD&R4"8"m1U.hh-zQ[CdcЕ%}qzg>^yTǎu | h(SғRvw4s"ZP~szKV!y/b&ƧI=W 6U<{ޗ87e?͢Oy?HNzBkgBfAfel/'="Рм +3}?vn=GJ!I{Yׅn|¢)I~ty EN2sPƼѩv%0$NfN+(cpP޸܅̎?vf /썑kv"+rg~L?Q ۩1_NɴQ=Y7ׂ0pN"z `f^^FG̯XkΨ>ezйl+ѥg,~ n2jz23F]woO̴#lcX86Z7`̤Ϙicwbp(SۨipDhsܑӤ/I]Y5qJBnw!̛؛'b#Q{̜O]OZ[ۡc/oƜm(8;# gQ//Dq~w gdքS,l;z͌K_I#:.;f2pVmxm"Hfe ms}y_"B{>ӋɄB '+fyxuJGiYO XW0j$gÉ{p֏KL(zZtK5NEi"h2V<oVZһ)E#_BJi9zj$8BDњ,Ǟy4%(cr{ŽjbW^Z'a! j(@lH*EU(dO]_ÍnI+lXfmi-RCu?= ձPx?6PJCUU>4D %aMh̆Mqud3+.Э[~vҥ76g  ÂdrhOujr8{ '6oPq躥v7dPv4*鄣;ڿB{,Yu)!:wZ^P/;\ѢU9e/ lފqt-K`Dn rٯ-sllN(_Owɣ/Ӕ`փ9aȼVV6xAyg4~WvT>}Ӯ,Elq/U]sM4nfAkG2oء-K"dcD(@]2U:ӿye=q+"7R!.٪l0ja≛* NU=`D3 cS1Mʉ]X|^`G{=*-.8ݪ׫LM1SO!h9¯{~!JgN`"u3x0 >IJ9!h]!SBݒb: e-ORw\M ݹn遗x?q>Edf:%#MTڄ{n4nxhnmQ/GqbnhJxs2t5\fɓAvH \gm|9WE1[.d;WH 2yȔ(v7VL'(#5ZltqDk]iY4_uBeOb<u|r)_dj lr79S3Gn=Lʾדr>kϷMUV^tIgWU?֫Ư6El BuW!,,u|ѮL,4@iKx uz*t"}͍Z) H!^Tj(&0tLh60h]n_؆(45TNB2z}!*})^qa[*s]Up0Ɉ y縩lVS/pzkN՛QB5VZF z o%*7Ɩ&g= ]yn/|qS>SݦʫL|Ԃ"*׹Yk\1dx[qk#3 \8ʖoWyouK~8fO#uVVJ~qg5iZUM7@_`k[QY4:ņ_׳xovPvb(l"eSdԲi̹"?11z!R!CN񄼹B #0nÜ)zc|q[S1+tytx)TU h;2TV*C)vvc2gW!!:H ϩӄR'F+_:N7_ؚh= 1Dn˧ΑPB2gi\˿v8Z]g{O,/}:vE0Lɡl <ΟfӞRV !e>u_FZ$M^BFq<2'#(" ODJPFYz^+:*=q 6=>'bd鳜Ӹjk۳=$e`!D/^&/MƯ7Np8>7Ըh L{n7~Cg8}ۙ[M&cQ*Qqk=GlXg/l:@¥"dٶ؜4TtQ&46Q,E mZeR~+qYhU=86m|#3E)\xWߵ ûgi|h-<&tzkgRIK©X(!TsXx=B1a1gôV-u2 sżJel!C%rx!z7eNsP;7tV:pi}-?Ͽĕt%8QRs>T YpR2Gu& &is |N"F-Ao{(_T* *,̈́1yM< k^0/ۃ3qJ>|k~PM:酵7Ӿz'fdB-Ejv]ʺb}¯^IPvgFt*ƽEjך|< ^摢3ů4mߪ؛CUL45n>Tow7!2YӟnyKqS*U&]iE˔νb?e\ `^چ}GYA5}9?Xe3lHcJn3Ǻ}j.?~Smp u2L8rc"8|!S^!Uo_ $L)}ʩ2i2c!.Lfgvf̫Qp&ԭ֘rO[_6B4e!V$be$1[agJ ]?Bqbs~;Bߍ{!73aO,d߸VJ"My|B<یL02NF܀ojC!% DtB!ãn9BaLBlg{ S!B煄{!B!$ !B!$ !B!*% !B*-Q>RvDna }azX~vRfB!x.}./3kɛ I-.Ǖάaحضw0NJhT_P jHϾ{{L0SvQu_B3\i37cGOeg,?ӋL b݌_bBg3ܫQ3GIG9ny8Պ#ka)W%" Fv݊MdEefg|fi/bΦ\Rޖ]pRƲ4OIAX;Уf7'r%5U\shj_'%}3g&# YqnvQ Swk>jNG{/'wYM޺Q+,Zc:l|Z3͝͵3,;.lL1I0?HqUrTt2|WT*4fغxSa3hG|D h,8 rۨ U'ٸB?cp:k O[;%kK5bŨXs6b-[wT S0uBM0;%M_.`n|l>~+FDzPՑ3zd9M)~ߖE՞0l:L@yk4wl[1`F"u{KR7+Ӂ b%o-!_f|o56Ǒ|'?ůc{e -dE+yNL~$lbڜe<@Pi >p(e&4!e/BVQ=[>moV? (_䕱-eu+8VލXUV5IRyzOvI3iU7mcHuhPt[&'opа& o7ERi0flS04/k3[~+ѼQu<6L_ b>oVk>uEpy;-^Ouߎʱdxg+kwCcX.[ֈ[f JKOVS FHe]fV8;b#JSsv$Q5;z W;i[U, ]Y' * >Z:vYs"n9ͅk`M e(T5z1ξg6Gp a3߈yx?s=R"=z#ԑ/ѯs NytWubI5q"~ }57# m=P_11XK=$2ߧsX;OÕmO*`/iXAg1fWV513KlFp!xG8r P !34>am˭>j A_|mD_ÜGL@ғ~UsYݭ(_^^7/e033F̍/1UJQeCKoؒ CR0|*e׆XVM)M3F 6mcլqYPu}r?Jʙ ;`ˌTc#M]ܲ]uݻ?|;( =5Ǚ>f `ZG/ QI>d7D-טԮ`bY*"Fwe6N'_a!WyL pǝy/[71Q 3`i|^F`W> jB-蔀eSU&̴ɣۧE sM:SZʃ*1{4g DR}B |u#tx,MjJ[-XLޚMHM< XٸRNi.^$F`)]c,`eHrkXͫ[}q3V2}\8nOq8P{fQ|4xDUb#ެ፳ дT&0,z֑ͬ@naY`J&ޜ۴v rpE^*ؼ;Z$͉jn_ZVX TOb#5y'_RXNKMiMWnѧ]hgOJr !ij9ӤnJ{ FL•iisݮ~w5߾Cxu&'Kڐ~ yX~*~y#yKcH Jttq \TVAkpNNs:ZILy/q>A'G4Un &*z:` ?SiUu-ݩֺ}Td:6#I%TYi$f`{뵦 }ekצMʲ)y[%Y;aO?&}FG@znjӸfurf}HeYW.pZcjA#I7*Unvb65w|WߑMVax,8{gphB~nĄf9宽x/kޘ>l[$ѥ>!xpDJ*ZrlJ,^+;́w('V~WٸkwC}/ZǦd'{:`"^f~ߦ%pPQU(K^:ҶG3tV'6ٲ,-;aqo pUWsWPѡ87IU*l &0tC :h]n_<RB%s5E%Yi>Ο^ZgLa48+}>cyo;L-rnؗr%ux<筎rL]**)mLȆEƚBh.i\1dx_4XX^`jg5ɽfya4?2"J-c'϶4ܫpo'[2 K&i2yLq+M۷jͺh]/G#]{Vg~lZc]-#u_8w<]b1qvn;#:Η?Lյjl oHⰦN\}7qp\t:?xb\ >JW>j!ac=\6Vwg9tކo{W}֩HzvLbc$c#A9jzsV\ݺ)A^\rM Y |~/ ەHc Īmxw zQv3̝6}yFPeLq,iqW%I/WB\}dePn|i!aԸEW5V̾-SǷOGeKˑ2_*QG* S8+mnxhØm -Mmݴ)ܵ.qXӾ@4c౳ɻ 0~__ݠ# X[TùH ,/?ǓO1 w1..*.Z=KD@.~'e}]șdLlV-m%𜷅5/:knl5Q;u$&=b׿`ۭ*el!94RiUٻ8tLWOhUg5gfYs F@h>!x!x½jW~0\Bp22?CoZ cW}F1`.Uq!Br=v^nq2SaPBJFnQQ ? GRsS^!_!Tn9zYJ02CH ^,B!} wJh|C7j#BRB!B<^!B& !B!p/rB!x>½N+!B\L)!B!qz4) !B!KB!xefe(]NJB!Bg #,G!xdggs…Z6^:)SGR4MOwwwHB!o7Â)jGWnwx6۾wRB!ēTI#sDe]- !Oa B<pl?p/^!x*B<_{!≒~BȱpP.ާD)y!B0N|?b$^~6Ю8F_(l!R6<ɔsY(EGq rås`wivue~&dcK *3GEp5*vՌߨiQ?cSul{b:8_=΂Y/T'Wq+ݕ{Q+,Zc:l|Z3Y~gM:D >ekгo#BrI`I/4SGD΁8o&$.ߜ^/᪹_?c+d`)T|C*c)Sͼr'&Q Mv&Iq|C=C, {t@j|wKQg6o&(R?;#2\`Ϻߚ*vrO(oۼ:_;Ѿxl8MҽF)Qd "Q|E2DK=JiKn{s)Z K7MrwIo+,|:[JtI8ş`؟e9,ϛ~k޶5|!̣t~q z?ܿHrW9 9szbkl`̸9L/;50\y֢iߋo-a&1_)!C3mfHӘݻ7e+Sn򗌘 BfFmBfn%,* ye@ *;%cLX{ /|h0a0yqBĐdL` } pu=oq߽K7+{k8Kuܸt2ΗoWƂ*1N|g É9z,o gWwSd*͹ XYߐo^oNeǹylE3W5zT= )>%נ􍠑ŦFK^#~՛Ӧl:gDc3ӌ7Q݉"ekz*$.,q md6bOcؙydƆ;b4 ?NYC~f5vY vX!L:P}oܰϾ\wљyҰGOr:a,gnw2۔B/3޼ƚs\Ǖ0'y>F#c@n"3h\saǃZ /+|K> >hߋ6#NKpp}וӎ=Y,&^<<5v/BN_dE,7~گ8uQ}VSR1c&犓}>gHhJϧǎFLA.z }x{=c2֞ߚҸK$]]€ 1s9sZz޺^@c1ӘV .]]I\Ǫ?p]p_h=q5xN:o4ӆZ>ػӺ[mOe{\`GZ4,i\X/OSҮoc*u'^n߅l>gxe46pj6,G3ObWbj8]Цg EN$U.Aw5Ӽx {7 {t4ݒַzϬ±gxE1<֚ټ '}N%*oMr,٫p"rR".P\qrpt,㠓ʺvl@%/[윊ШuEev}r.OV8jGޣh(Y"pX Jke@W4ڞWs(6$ġqHI3Y/ģogəsW0VW{쿟!拔(V`&f))˹ܑ2u h=ooSa0]xjnE!Gu^upTsؗit8{Q4#eKUn ~!KuuGˆL1Lh7>q5#æE Vij㑬LzŹu2ȫ}hU5BJe{Ms/ٰۣVoǧyӢq{ij,mX<9{',pm.:6nx+gZ>""N{kZ6h{de4^Ϳ5Serb&`TDġnnUSl1G֠B_Fڃy;ri vO,C[GqR8Gv2y˕#RG)}i=&4:Ϟd|,<&`H""9sx7Kw\5^{9~9$ϜJ#.RESFl%'@Dn~uˆ c*/2ݖ8Dl\< luW*ӠTkHKܜq~:`˻}~YE a'2Ɛ8lf zsH " pLƅCFyB\=2s;ph,3g7Zww<5׌[Qf# 7JRs^7{ Ƿx|hAC\}W.M@~wZ'<]\Ucxus[MXd? ,oϽQxhkggҜE YG+A|&hGb*}d-vZw'r*& z;bӇK_[J^2cEnA&=@lM.:bb،mL}fԘNMZu)\xXNJPԂh_g,jGdƄq$ ʣ*G@HBmj%qbJ^Qpy !1m[Ӿg Yh; yo937wS.r[ +ޜ:6-ief:+]ujeX^Xeps,3X`j,k(O?w95\S6c+װ=I4JhD匝ve0K% yקY ڶt:5+K '3ԡ02ܺY3YPFQVRimqJYؖyt[65q\>Ⱦ/KW=O#3w%\74yMW'Qkp9=mq!|oƞ}Y/]z+1N;t홹(:So뇖4z%gG~Q=5Rvͥ.c4Փ21jP#jzeC+4vK7i<30s|g"-?d._2v;kk[0n^XPl mήg)qA׊aL1q:7rXFliRǒAh^vzƲ jbDu(̶Wg6ߒ֫#?iH0XY".4[+tUx];~_3NUunφx=q5gLey5ХM1~ u\ <79,@gJ隍ȟepM'QƎmyY_ӠjvhXX;Ses:Ʈ#&*etmE^<) +o-Q{CKL:|S>4t睩/Q_ ̩S-d饓"!? aq[#^dIII.]Y36!G}NvĬZ5J/B~W=UMBwlnzMoIJL#aKO3Bn?~s/C%&䞁ٔSɪ)(roۊ 5KjEhh(VVVhRh"Di RT'[~y !65ԫA@QokB!ĿNE}ff&:.DanӊdoIϽB/6^/_-۴m?ю$ !2kkkLB-۴m?iBZe_ tR]u0mO^p/Bh9AzzfW.`SQu[UGQ]u4mOZ/ !FW=a I_'qzuUj7Җp/B j(0777$ QPGR~fYB!((p 7B<(EjB!(,^½B! !BQ(HB!P{)B!B½B!Pp/B!D!JB!{,Ga%B!uZB!0🹠V#i^R]J^7K6hk2eB!.eA.姙k|qf8zPe'+#C&}ƪCR%kXZ*j^bc56i)&r|j?̱Kq(8{SBUИ Xާ"K>B!= OIO?Ŕs]Y]wv"mx-?_dX Us̢(-{͞zuG< N!Kb)Ѭ):cOK=KFmqq8_WJ?=B! OIϽ}S^| *J~Mȋ'vF?%3xK3V)㙳/80{ĢGey|4וiJ31 Q$^]gvT2}? ϯ,؛si5x^YGeT>`Q PcDŽ|Z=ǥx=V.hԅOzj,|gv(P{P\!.f׈5\/A8=V0o߄FaOvжٕAu$]ƥ\[U/f[rم+:޸X';_rB Is=P^+Pyj3iXX2{wikQ+KyKGqߋzjrWxFﴦy^\ʚأ|.:CH aGanڂׇc| 1cL?JK 0rlZvEɈ'BN`8/c+ҩKrÛ`[xS_d߈#~,›/ZbLWw=ca$^! OZ1fRBa3@Jӓ"[Ӵ5"a oRhdDLqwod ԗZ жU-y[޸+XѷdYe#1qtC|t7[lX6v0U*NYDB-f~O`7=fW>eۦ{ҕdd,M?u}!mApxE g-L`͠Oi|c/Sw$ %(5pe Vyc|zP13PT+dtVv9KͽBCf);6;RnsMPsJ噴A>ȭ6t~o!%k7>-qk56ii ~v[nV"Bql{,8P;Ncαvu }ƃUs@qٿ6ʹ'g|:!6|`k:vJ58ߞ\\pg'vS  rw@ƿ3blXqq[2c8 U[IUʓnN@_cFD{i_ntl5]?NӠ虻~VW7 An\'?;#?No;lvApiY`LJDqD⌹^B!ĽOIט ۹eI5"Gwkc̋u_7?7/vhBS\OGWokiۻ &΢f{WMn[~/~n37 .vhhò0,&'$F!~kCp%t3bkJ {r$ӞYrKh!"/fwԡ@ڢ:]e۽vB[\ߏ wSǩrO31fQ\)Ufw,3hQCV.q#g߇X?'\m$aӪ8ZM[Ɇil2]Rݜ0N$ӫC]hB+VXɈLyJO⩳P90+Ք0 ܔni҉vtz ך~&r"ۡIĦ!= M EX tקqg1aJ7Z,ZJ|zV Rt~}!"++%XySu?7eML2v.^VPJ ~YYzMIu9E™=\K@gB`:e-W3x۟jMJbn'{S&cȶ7ίB#FՒ SL:{jV̚L|Һ?úT5ʕƑzre6^'Ba )o "߅IKKk,--B!S[~8t !BSׅB!( ^]!B! Ep/B!D!B!(,^½B!"^!BBC½B!"^!BB,G!B B!Bp/=B!BB!(Lj4E!B; !BQHPB!BxB!B<^!B@3222HNN&-- ^oBh4t:`nnI\\c08.V+++13+Lr/>>$2B<Շz dj65a\ 参HP;LJgggS!'^ٱvjoB-8;?c5A³:ͨ(bccgu9{Րi:V \P+SI#i^RrJj/{!2ث^-cH"og*QI~=jW{UOݨgyT]h B3'JNwO u"]߾Kg_IA4]_q+N{ J pWq PJqҏOw-~ͺog !5Ȼ,ɮ[W>yQM1^ǰׯz42̞~{5 cƤ\'}m>ՓUi퍵uܿ .ʴ9?ƶr38Q/zrhjÛ7%yޙb:3KܼX!ݚ`{1jWࡻtS.c̅Pݿ[x2%6c\/;Y{);wJWLۖ)eCǮ FJ2ۧCz4kX<"jl(^Ν㽧oY2}5_yڃ.e_;'#AѨ큽:Mb1;fo:tk+7ak-p-Vppiq=rTj˧]IK">._xZ@:%đ 8( l?IK`M'STƐk&>?|WsEgw͵uq\RbO- 7GQQcJ&(xKqs|utS8ϫv^(uT#gS.C=U^c㌯IRkGvAu6q"ҀSJt߅m_!:=Ȱp?>wәΛiLqk{*4ć9SbVjk3}8O_4[sc7q`#k:obol ;/0_ڸ^Dz7.'j?eY%rK[\]ۯE<^>÷GΓXVǖ3x}ކ`ut./uw"\~O׀yL|ŕ-ީm $ᛉl)ۏѭ]Λy]&Kh\1^ cطj-Kv\ "ݒAy:SGq:lL::[j6N)'_o^mqsU/Mb~=9Ч Y 6wa죽=qma.R~rVscϲr&6Iߠj<׵6쮳r4v67k-,_y}Tm.~;a'c;ǪEYoV e4w2 B1>ϗDƵL^e74:*Nbb)uRKb!8ý:fJB?Z1s4d#5_;Q/څ2${< .zJ}xkezo`L*ÞY^ٻ;6yG8W5uJՠo`g5]ҵ6LRX8 %H047ntZ^Hv_-NnQŠh_gJW@oX^_dR3y]mJ̸P#* V~*na,W9͓"J vƮ [y,B$'3P"3*%tŻh㓵36DcO4y?./ ^Oٻl%L2ᐺԨoOr~$sy+u%89'3Ue_+*cYO[wW(uB<^ujp߽k9w1J=S==5jԠf͚,]N:{n(ܫPyZy-jaﲦŰy!\Ky7SVPl8Jzz238bio D>Ǵ9ۍ0Ӹ3+Bݎx)fF_6527#k+R_lemLrd>wj8dPqMu ~iҠt=(QC %#T[ We,g3u^zȳٽn5imiԺ":Uhף7WtVZbg[ KaIGjw 26 ÉL4NA Kkf޼#*+8nIɴ'u5xe|=+ҢI q$B􁣜.OO 붗Z@uuA4uq?W\[£Hv6֛i KreUbFNjOp>oߙu5L pit2̜WQ jsʨ8=6S&7S_01gcǎ7䫏' իOh93W.3uT5!5sdi0s0U;{ΏU-}~og,5Q5#E Jy^v`J%`c5D'QޚB)=H/Y.>Eڴ%F{&61Un adXZd&~ 7rjΛ6;)htX٫%Coߓ\dןY=e2kwbDR8(1NC!5\f>ԭfWBI 鍎˷rUcƓ\jmϥqڐb:WqGֽYߜ[k !ZO)[^{gR(3&V΃bE8ܜqpGXSUWƌK-:-TNyQ3T̞ 1DpDn'xuw sW\rR\uޏ8(\،Lm&@+g`}ӯ8+i$P}GݫV%S~dwUR9;Q[Z+~tмwI*2͚QZ} m Tؖs6ٰX88|5@Pxf#fil:{WJlLEɄl060.ǓX[ĜiTz.t1mzN,ۿiЙ[M`vjV.8Q/K­_.3:wZ| L|qkVA(~T^YSOPK\c^09vֽ(ZMUP>{qEPNNN7GQk՛>eg߹6okk{yn05d?G2ۇ,oǏWxmY+ 5# B!obYjWyfojiej0ܫ!M^_j'|0=)!Ԟ7ݭV!Bv}v7]# ٯͫ^XSM?cW.]i{ur#^b:M*=B!$gx54(4j.Qcj.yT;(3vvvyDzSONN6<*B<ۮ֫Ǡ2iTqܔ*F\֦Ƈ jٮ&p/IyݫQ!(h԰9:ڀPQKq$ !BBE 01B!( $ !BQHϽB!&KϽB!%KB!0Pp/B!DHB!( p/B!BHϽB!"#e9B!Bt/^!BBBkB!Bp/B!xjB!(,d!B! u{ B!Bx/^!BBB½B!B!d𲘛0dG|B!p/DAzn _z8ZY`aL25iwS]E_68Kɮ'yÂi!(ҏϳ50tO޽yumlm+@-oƞ vCf~ lLiw[,1 W߄Kh4hn +|VaodܬbŵQd?bI?ܗR\RYC<59ЙWp a'[uk>0{=r47hWTN4BU1?T@ei,}EmƝ&Zd;z5f$ʫMދ/1n2{>`&~@I49%$y`8Xbno6>iRfU}$K'Lؐ>i=+OٗU_k~swi&8k9w&VfU>yu |Z..U0ßs&ӹ#|¿ZbCHR}z !72̬2C[`]z>oXóxUnj h|h8`Բ6< fΜ_ҽYu*ߙwNC!LS_o|L{**m^-I7F2ilw5?ſŽ޻,:rKZ+x.UwGn3fe ngbk[B 囃יR[LXg63!ձ~ $cP{y6V( %5N8jl $[ZG'X[Z|dᕌS+?oUƧCFB!r5/C щ=K:-o*C;{\^O W;uo}e._񸪣vCٴ<Y E\ .-ܡ.(bGl!u3.6Em,kz56'c#J2ITޝ'㛗(wh+ˣN|!BWPX*O;ҭP53}!?~&'&\__\֓p/r3/%=t&3Ur=Np<(T. kL  HḤ;{;KKӵ6iwJ\'Wk1uPgޘ–uQYs_BIB!cϕ= EQagogS!1! {wԠ+BqXreeLUJ/2\#Xx#z"6XIڮ<~Կ xvE+Vo޵}3w%l!y6Dd=ldrd(ι)DFYק26 4Xv%BHfOr~eg5 6t{Rɯ#OIL \yq ?5Ɛo| C"6iFV.#Ͷ,eSWTbTƹ_NϞnS ˺µëY0I`NPӒ~-)A2>]Fѻu?;omG~ئ_\i8U̮{d?ҫ5GQ]46YqqᶹZiC3E,+mczKR۝eD^KS %~Yn]90kaBX>+7(Cz -,iѵɩwjf!@qۜ?Mоd<)[5Gϻ tK7QrycXǟkwܾŭu=Gm<[ЛHWw^uɇYcxmu, i EU;IgW,>-gX{V6Yۂƥ_oF_3u&ND>ѣ^4j-K\?9SyPRN['ͨƳoz0y%̇NfO_Η&z7 jEY6}9 V.~ȏ}uleB!7+>\9yzʵuo(Ţʧ̬_\cvYx!fJqq)-?\\Y+kߟRs'XF{]ٜte`?EQMm2=(f;oM6Yif\N(ߑK\I%3QK<ƺΆ%[JPj" {>B!wcs@e:ѸY^^I?~:|\c&:jT":Tԍ֕EbI+N#hh}.et{4uu6n6/\uGR-k];2nJ? +o|?'-޷?K5Bt)SC+_B!B!% !B! G{!B!zh9s/B!D!!^!BBeu!B!z7r$ !BQHYB!B!*KQB!?{Eq?I64 H "EQT?i*bdžW{ZEbWDt^@Bzl4$ٝݝ33gH`Z*C'ԊTp/"""""UG@}K]BU _BkТ} DjGǀg%Xv'=3P>~5SoO"""eZ "eUu\cLa%|dFLb3OHDDDu)piMi{F3:vĀnc4rˬFlDDD(G-"hҀzf⡨{odŖD[=ֽ2bD{Շ7_CBuOLF%Y0~ЁneӏS8u)pDեsKޯ1lܱGAku4&[4mrql'Oʤ}gW5Rm """%M^dH`ǟAnQOŮЖ ! " 5}6/E=SEгws&7E9Xi1LV|r eۢ_kɺW\wwz7MMG ?c'Q\^ .om![on6!muQ?Оϼλ{q+؋(܋T0!+ rғزrS&/%^o.i{D;=tO׼L[VTԕ'c挍\ݸi~@wbom9цwǰ{.(~ _G@-rRh.N!yRǬdÏctF'@ͤs׃uCK0zFU)prDʄ{77O b=/zdNn#7'/?C7s>c. nf@wnZĬx!`1oLBZm߯1F豅W'Y9ֹA8n`U/gtiy0Y5eqß>jO)p/"eˆ jԊ"DSعW>HrCŸ鹝h4~Jמm ;Cvw1<diUqgٴ|`#w##<)#tАmB +%Dɹx^{jЈqo!qDF /揟O Mi݉Z볖K4%٥m`ޓIZr324˓quU?n]`?lyzCmJB9:@hkyƽȫ_^"""EgTXy^ԨN|}ES3"`w܆>ۅXn-?O~ϦŽ`ױ[N֦U,ؑӕCↅk. TP+.>s?W3}j.XW~mk#L#""p_x1fcLʐc&eDW}dأ߳(Ɯ; {D/:Pvte<%Ǩ1x6goՠC8|c︋ ȷsM kl?.ge6=7^ϗa+ۍAp?6;+Su*H)0Ǝ}3r >N|8,:{Xgx~cK:Fm4fI %χКi}qgw2p ,^= ǩUrrrN8DKfrp TWvS)J:6^6DȐ/]ڼǞ$/&<6.acM"mlmtZx'%{#_.s)R{#0:kr~Y}nB^%5m#Ư"͵+}QOR<sM?]1oXf[x͐z((c'&<;]*ie_w4=jɞHJOb/.4ntbDDDN9V[UX?p;4z;Nxge͛Ҽx\~y }A>yĻ j ^f1q̘rtW#,YVҎ,lox>/?z.8fN}mΠW\QEҒ#b ~{0ɍ]zf~ظ_-N&vpu6 >a\ҿ =yP8ݪM<3eo}r9ͨxFik<pq\! 4}6hw![Ϋn▖uA9,OքTpncso ߵ; ^Sha|hĻԋ:Ԣi8$UE}xzY_~? \ߺZjӁN2|X`%-.S OK|V~5Cיu_^DDDDT7"_/>Nx1aj!SҤyN~㄁4/jZ&h9jS92h3Ė P GH1Tιh5ؼq&㎍N1G1 sU==F%85D늛62ݸ{_ZDze*6᜶AS'm{ #*-DDDDDNpoѫ[?y;؛|q;j+FUwjlJ!59+h.b7 o6o͆?e)͛súg8QlcOM!%;|[zlIΤCQpZLsog䗍yHT!-feƯFC_;]CB1~H'% Շ{I(uCmIX{g&=Šwoj{=z > jv[OQSHs;n،7uӷTDDDD+j+E1e߼Ձ|.U """r*7*j+Giw9mED].ױrgv o͌G#,%#=5? <\ވwfOMM%##C+C[Ye7((o/ A,ᩛķ&]]ÕqZ""rTC"RqY 8KQ3O~Y+BDDjWlвn&CaTrV{uZ2mp/""RάgEDe[^DD Pw풢>"""dXl6DD vgm{*[YFxֶȬ`o+['ZWʈHym{S0$Xɱ׫聾0k^jorrH)9###+U?uZkYt]{( ||Hv= V}U "R CrDJ/32OtOb_ؾF΂_@ւ\ "%P)_Il^Ë"΄㣷`ƚLv\nM̂ -ӌXwSJXn~y>]2G46a4ޟ;ϰev{en1TKEj/NYoBzfx΂; ,b.LI{/R< "UޟV5QU/2Y:yL/\@=ۉ rOߪhzZe$y_۳|b&Co"]3O8"s8f{Wxh xz,8>^s6W1esƜفdLzt>۽}swh{_+Φn&4gl\sR 0 nΟdzwX f;"|: _i>?jԂON\ρUU0_UZD DxGyNZwnBvbz4 ZhMhF(/NHꑜ {Mg*|FOjnw![2M+sZs^A?LK`o!!."pDDV FN(m;Rpѫs"œ2-\F|39;F 6sH30o}&8wXWa0>ll [y{c۶ËCܙ} 3اla s'L 7M]6)>܋?Ӎ-8.sü-| fI ysۊ{FKf;[N/(܋T(F`ub9rlOVnޒ4cǕ,`ˮ]CX\;jC/rK~ιԩA=d`gBVn-ua5y>h>nLf`{kbW*ɅWW)k[kNjkaf%}r}I[G~~O?c{LೡsA~: >6nѯ=gM;ߣDdΰ2Ho1p&R0(ilڰ׌rv/cԵ1Y VXI+evvdQi2qϽ5;ILg o?FM! a3 EވK c ?ٛ`w%Qxӆu卿q0EǺu;јlx'q3RU.nϾ@Ptti:nT7C~lœvׁ ^rj|7=ίA5-Z~B[ ر/yF!w u8ZQ%Św垿cңgt/rΝ;%'**X s`kryN9r*)2a8u23hխ "'TN0ֲC}Ef??s]B%Gdw؆mۻwoּ[`-Ƹ)s/"*o'\bٌ6@D|;KHHMX蘓rg[pDʲU'܋Hث^jʴUEDDN1ɳ"p/""R;vIh9"""dXl6(vΧʶ½)jXYFxֶh`o+['ZW HE+ """`H.^!}aY7ޚdo|2(Z"""#GFFV`$5J" "RF< zZ"e6b_y.u)uN|8qF<0:qX֭>%b:/q%A7;aH ku½Ha\`3DKDN ɳűh9ìx4DV>aQ%}:H, " "UF59jfӌV'ݐrCZ8̇y,Jjc"yV7ҞD>1͸%Ϊ4d.&G~9/=Z/;΍1Św`ߕ9:Dc!{T}7V_>2f؟LwGc3Bi+\O3w!pYH ̊͘D+NU{R *^"CS}vjDںWy1:WNϼM7seTey\Dž[â]Ո`K.".Ɔsq~#+Ѱú^F~$_Eaw`ϜՊAwv0r'?bi!0[,ΫFC}p"e80IW |4ϒR)ˡ2X5 8dBZp9ݻ`eB煰! js xCx|]$9CaxWTDýVHu}~;_k~GrcYK?Fl\rM^DZ;Tﺖ+[:iŤUqvh@lhЍ>xy*bBغf{C߻zxK}X~%#+6{sYRrij׊khϬ)CxHxo %Aýn }ᛦWOz*yu2x+z/`bxp0, =Onyr/Rj "e%;k [w40Paa\,woșMlU}6UK&K9۾EYf/ b傜~{®Lb2yra :8qHޕHv4 >,|jRǮp/RlO n3t8nut `o@G4j33 Mdhw3SKZBR)#FPyc/~5D4?Y͟~`41F3X͊Vly,{5^ٜ1kle l<:jMCgf7B"m.ΦZ܋rvrM³4b/32x]]C9~uIItqfЬmcə*@[AtL aSXrÚW^@3n~`-'޳?EM@,Ynh'Ot~EG;}aD]; /;SrssH1ؗ^5JkBN9999'phEH۹sCFTTIwO,A%VAɲZӪkjbbb,L0NrDDD*:+'''z`H8Т^\ Ai\C֚ڽHDO刈TpIV޽{ +|3_?3sz+(.k"Rrp/""Rյ%$$___oW}5$`}ZZw{p/""R{qF) V/)8,:y|e[^DDc;bOo#tET0"r.k:VDDid.m{*"00P+A R9XW#H{p/""RX#{H`eL:]DDYj_ʰUk(#""R~hh~ffw\{k:[kT*=J½Hc+䋈,Q{Q{{4HqE* s/"""EB|jj*Z":N*jCBB #""RABRRH%ga,7{ jHgeL+܋>jZ2mm{Su򬈨lL """JqDTKF)gp':oW0LfYgQ0jeD½fvCGDD<ԪUK+ADρ[ ze$- *5%M#8( ! >crDDDDD*ܜ~!!! l6aX7f~>ߟ.))Z{"""""5·}h@V~/$tw- [7k-۶׷ۏ'a&;UVݳg79Vи"""Rdfd0s,\3ȼ;(bc{?1755…#sr  Q)y/ffnq ¼eð99F7>`½Ͱxeܞaiӆz__k:} Rih{<7NuE\g?ax<u+m3p405''vCo> ~ɟsGu"6|oSB4|q׍8x+D_N\s9wތϷVx*z:Ğb~=EoD)[o<kފZR8-a1^Gqklzy}GG.ZхsIQ3Q-۞coV # pIDATxeeyۦl.KYzo$!F`PI,bI_X%QhIbP:‚^vYX`[};gΙs[93yyC6l|Phfq{] J{{*s+H&k3Js4@ դ\6b[[[0ϴ;w)}BsyݻOܵxb3gDQzZ7b&,uRmϯO%SBeP,H|y߾}-\P,YbC4d֭c={Xrn*BU,P':::d)M6m$-mp%j~:UOOωk׮tRT+?̝;w}$3vUD=XYH3Qoo4+TmT;㏗xyw7J߼jSn.pem7/$RUmN'*;lNt+>$PE TKډz>헋.}Lt|W7==g<0U.o @_g!";W~wJ_uf+AyWGS 󋟖ႏzH\9@P[/X04KUBs8!oC"d|kfwnCf:Nvw USCUM UoʕE@CyU |]{'P5aJjHkɛxw6o7"E)I-t DCtU/n5G*߭OViqihf ÙY7.J1;3gބO-xBnY1y!* S:PYy*N.딛=D[}[0⇟(/oT~𝪂UO{$[$ I&q"oZ&/j2XyE_;!t05ա}"sYw>ĠsaK?ZnީA2m/~̋d--T w[:0U{UujVΕ~s$_81G?EI.=MOT<^,^%ugwK<7X3&.>E"yW,&u S15ʊt6jVUcԬ6y$ht\* _*^P:[[YCjRE)jD:Uf-Ue3m䃒:$ 刅sXC7PEQ9cl䱋ci/,ZY -Z-w~NbG,r2yUd"J9D|쁈 Kzr%Jq|ǜ)ZC/͖V@5/%QN̕;w_/G%сz"}e}PWȬ5*:KVGg,^M1*KwgڑSQܶdl]}܊#K:ZųhBϟ+ ucZi0˒DBNKH:"{V-}LWBAI/,e gUC@*@e0E T+!hb}PSB9c3L-bP`A) }jWf@r9(/U˟s2w=RI IorU%I@T͂әYnCP"T~*F*A* =~(l(PJ:,iWNV)[_@OnA Z0BT׫d1 V(@V(H Sź)7~頱Ut1_xfq.bbAY'赃BX" bl(ǡ3{YCDZņ$ƵPX_{ R AT%׌LN}8~Bv|ZQܺЋa%)[9T(rzҕE VA4W,4S%$wM[o +*]zVtz5 Ӌ i=VR Tb*F ;>DP׭vl(h%Ӗs r'܂zbOU9Dr.7ccU)g)¥>xFk}bCz˕U6~@ G0"ByƢB?P7ŊUTE+-y*vW81텲N[ U+ԝRP*UtLyWUvDDWj]L!jZWŋ/<ٯ tn?nbjg .ŞK  LB˃2?;E歉$> h4Yϯ&7ARW闣Z jZ9PDJ+zVVThHЛ;U(@MV;L[BÜA)%J}j,2 T7~Ad*J%Z F}rk`UW6Py|PK_Ria`{;U`z”2vA)ɻ /*6@Q_R=( 8jhџD[`2/hV,XU"|VڝO`{{ɠd,Xw\iϴ|^?mҞs퓶6{EYmTew=H73gNY$H ETpx+mJRz7IzTOU*U*?HO S^Z)/0>w !C-T_ S/T@[B QiKc^FG׵^׀@nA*?xU-q0굅nz&~uk *SJ-H9_&V\^7?R2KjŊ_h4F9T"(Õ?D叹ҟX(y/_0꧗! \Iyo*g_E7X&~J%=GV)*tQ8yr j*Bj"fQ/B=s&!Nf}erl@Eļ7'_%QAS^Uz|1sKU0} [[[?PV)AdZOk"+Pk,vc=BÍH7?Up6fٖBS:TJqaP[Pޫ4=*7pxALvFyIPxp}B!RTBPB-VAۘ㔛RÑ?*]X~ UJ1{=~~qS(\bk4~y UvZ;JFRxzCP֨?fJWY]<^AB+yPZ  *"-D#_wuA$Ї$m~QS|Ff&MJ&FDbb9ckVAKJs9rQk׬p,nϯ&TVz TlZb(E]eioy['?ɘ৓͝;W?p9̞=`[ٱcs=XNY`/4ñ6Feܐ D͟/GBH}d4eK䉍ʮ];%qĩI TPAU< p<ٴJ(588(;woY~w]~ vXi@eWbBaJ5:J>qq0tJ9b‚Y #]#ϴ瞓[iJU]nz?<#|@~IGGGMO:j_&|駟'x*Zja53zٗWʅ)tH_PqsVX*CһgD兪B㛦1h+bi."W;V{)5lj\OO[8`Iw]s뭷ʛNy;Q3?2䢓:oz_0fr!˫ SjVI$;P6,kr1#-پ}{Y֝O~җT/^lޭXB^ѕc/OE,X WFh _|V8}ϻ[.Ryы^dDŽ͙3G>hۿ[_[rW_[ZZl䗢3YyjGl$YHYl/.kCowqǴ ]J=k_ ݶ}vXk՚綛tж\D*+V.XtܴߊeK%H#.je")v:ia[{go6=PN_[~_ۿ+_JTt-o{ۤk2[^Rj\{φ5k)"w{N~񒗼DCu5\]VN:$ VZVA $Ҳq@ .\^ʵw^w'V#HMY׭[7zў_v5=Q/|L皲3KiwE]If/޿kOthd|X`do~#n?ҥKmK;z)JNuF^>Tۿ}c3۠\X~'qa>Wj \]gqCCv;OړYu'~˿eUP?|]DžPғ[կ~uYo}nDyg='btctGY/~ h 햗ʊ̞5;0O~CwEW6lzN>?qAˆZfϒ{%RǞU75@l 27lN;P >3صkZmڴIK,;ZR>sZ=qF{PF={>4A:pv\tسBUT*em޼Y/zREG}'bU_ ,\2 Gzb|{߳u WnaHٻn{'Q˯v5V﫯ަ㝔l{|_B7txaLBO(|Sn:ϕOO e ft̘WmYe_1,;Lgd0ww)bɚor9M_&$-mO#p _wydӳ[ aJkIfFx=ԝ@UzSkk+|_ىrDX,/g.5م86YK=0ٺu_VծՖ+}~5쩶P=geLmi:j6ik o-W֒i6¡t>9mUtGa>쳶Cˮ6mFyy晢;>X,m"􌡶 ZS[_ږ4 ~zbH?~_} xn˼ A)C}f/6ny Qv PkSO֖{[O* rҰ`RYw1ؤmns~mE腡 ڍR[th D]]ztj/}u]z2M_o^xuFQ675p-H!kV}dnSvݱ;A= ҃j”, O} rZBw~=(.<ꝮLY[֢M+i@v0yUFniI/Pv@[7=mkt{-z2Z74h+v}/~}۟ VlgS&O#GC~smms 9{.XDZlS?gc.[GCZI}{۠G*ߤР&;v~H[i;vQT-ِ#iFm[8!KF>sѐ_w zMmdh}($ %1~rۊR %b>E)g>^twwۃ=і" ZZ\Liwg4OtR*@kﴃ.[X[k NrnY[ʜڪgFƵN]V*}7F[E@^y-[o5Au;Cg8D1Ң-2Z-I\iYr|#]35 ^K-v`G=g\ `5tyR9?st|?ύ Fs.h`}%溺lPa6-/yd6YhDz^uksO*RmҐuPeoF{ڵkY UPP-G5o,7g̵◆%=RڭEw:ZjZKz+oPgJ&R_W0!DTV fId^T8iҰ%vjgqB/8o&ryJM_ ɝmZ^uEjmHxML IL  ceԉؔguQ'1<4ڏ^wz_r!MhiR:B[t-ַu9RV,q4GVKTs ?y$hKԀ kT I6h>۾~ _r+Bv 4hP*+lٺ]|z{"Gl;wJԄF(Ha5\^r%_X1?^" * _B\*wTV\/E#& NTdD6,Î,]H8bYǞ1ǿۥ<%@`ZМ r/;]րkgi56oie?m a< Dkv%[%JJjx؎_GD`-nn-A`.z 0r%l.q'#sضU~'G^,ϵ#(h̳v˓+20PjOJ]r6jH[~j֩z S^pu+tFRf{d)IlUMBpg% A4PxHܑL_}Iyɘt͙#:ڥ5fO %d5ьa*$NLV,U.:ߌL_f\tE,EMּD Smur’ANЃvKٹomJﳭUx-^[OB&SJzBΆ" M:㦥Gz{{Tn*Ɍ m|tCa*7imб-gJډy*&hlhER'+6A3p.sI'Tі)=cyu/_>O'N$T5%;`/Pnc18hJwHD笲Q JZ.8f%PṔ@ 2:ajx*ޗv589fFT4R@u*(Ly  U:ѱ=|=kSb2к4.Z”G'M全Ǧ IU(SܸH: -TavB va*4aq+.L*>L2l֥츩3n)sx/t:8m[te4T:0*/ɂ ?w=̱ ) Pq$52g%s*g\Zأ2͍rOƔHɵKUFWgY@b0=f4LyHn(hNPɥ4mUIsS-o_/ɹL`#%J1qeDrE*+sITfPJT cG>yъ6 iB6>C&yYʬ{lmȋ/mUg'm-1d'7C_t:#Ηpxla롍 KCWH,[]dzl˽sϴoy#+vY"-q~& P~YsL2v"Q ZanuHU]:b=E6-%mLZdo۽w 'S ?ٴ^^rap,N40J=.]W"CncbBN:b k7 G1'&G8e6an}% 4yd2r"ĘF *I^f$&f!VCRI6B4.Re9ݶjzn{̝>_҄M[v!&hTyI$ifK&:&efHĠ$gtpra]xJqǶy*wdx R@㠙#@k<&Εgg-P^1i4PgMPPxfwqS.<ݕjk?8|H[̿gwF䨃ɫ>֎ڶg/+ hR_PeҧL,Rtg5lkK4fH -_?2/l%̷-J~ZoO鄿&=6ٲw1K͑ۅp Am>{ϛ-[G6ٮud~-jsۥw߀`KEkҟuj2dS< KhGfd/^ +w8,nltK$o]rt.:ٯʵR1 Gh7=4HSȑk:atyTtM;&宇n`5̝{&4Em m)OH:Yr+l>'*5ۑa9uhDWt T :UǦI t#*nHw[X:LU:/ sGsdLD`B.3}bjڪ +4Ba/fcˢcrdTw|Q-;ncvOD20ʾDnVh ͌"1)L5ZvY/P3ݯh 27m;ChvXh| Uy&:]}c-mCr#qP!j̿AMPSDf`.XWEگ:1pYnuZ SE*sX>ri@Vwk~|U6ʝEnCaT5XK`{ڎәIdWPWsd FXe2& si>Bؾ+E~o:/T*Qcmҵ ʸU-2?&PDjmUnQ L(PvuڑqFZwA_ e UsMU"cju8{&Zן6Ҭ q֭r?.===L&ٙ9ܹseڵrgʒ%KX0t,e2, VC)hJ<lJe4/6Gw侮&t*N_/rhPK9AZv;v۷{9 .H$0Pe#2"*v݉ILRܙ_J;{k8 _'3/;yJ5\]~*`ȸEJq)L@*r67*{ IiV:ͮ@_HFa?uRh˔)='LM<\rT똛ݯYb\3U"2㫴ҟ?g]LlٲŶеor+&dݯ<ҹeȂHt:ih[u;V@ vI0%`|'1T(s ᔖrAJXi5!4r/v`Sc!=.} Ul*^"bt[eOfP2S=JQiKc =m3;?/MBIM ]|LMpMALF:80ÉMy翠K9 Pg@5uJ/ ,nChPiԁj2DQ~spwy*Ẁ 䖟 Mo?o$*hM3 Us=׶f_!_|w^,Wm\~.ΐur= S@TmʟlrThtyR^x^9XB: Yrvirye]VCu̠N! [@.:XYё\{/~>9Arȅ*G/և_+||;]OoZ'k^g[þo"E~=#Y.?1?&Wbk%}CLY`| P["VؕLBgœmU{GGBB P5;L>l_$!imm-WJ TxFWz>!?+2Gʶ'%~up.7! s ˏqqO\V{岿}zOHrD29q]{w} g1r-̏X KaZrh>5MlBӽ 9!=6qG.g!t?ٟ6mkfJi9MkF.xש:z+Ox]һIwHmӛgȼeK$><;6ޞTq `shL^jr>,'EFJJȞ̐>(z !B5X>?jGGTl14z&L쒝}'Cī{ζI-"',ov{>AZ6s{n{byd'y 8 :eBV8 ZX"-de_&!ٔ3Y|d])J @j{d˖-P;3vRfǜ?vguc<'޿~иz# FV*j-;N . d/Eש8k.$ TdRyH񺂌nu<}q^P,Y&a_rYLd#;G?^9瞝urP[%|mI7y Xkt4 qRfۗytmThTWz1T3o+/,Z8[گW\(gY]^(<.wc#=^N_%;žWVٶyPC9 TPFVulN. -ޢ|lL IV”N+7̀1o> W\#Wɑ\)/mĶW_Vnk?YwW{PD=[_# ?Vdu$. ELH&mik$dDzӃ2M8B*=mWMI$kJww~9؟s̑;.\KRZe)t1G'W\>&=uYD%oU릶ȭ߸RnȦM=HzS@- !{ TM0.~3y$9ʞ n2 e Tue">ca9Go;O Xz-2~FfU"+䘣;_Qz; ab_`*Cc6!;mҟ-mqT6DEs,H@ZRY}  @j2:q?qhtL&#*.+^:yq>'xf&ןl+ۨtThuH dd0]'t"ere+ȋO2o]/nAMR587iuS_63:7T5+ٖFa~7{>9 `•h;Gm=8Wzҹ$ğ } Q@]o׮]8Tl:ϕW+qCȏq:M%KaI%u9? S ) PЧ OϠ~,` *6R!'Lu`.u>ʦr㤆RY[p^8]7co(%L@勞y晣0gu Rqؘ ~#-UuǍtRٿ/+R2hT֭0e[ #nbNt݊9@U3: 938*L]\WX8\i L'37ʕ|B|HX$s'7%{#sJ~>1_w?B닚ۅ^(viZ&ze.GJ˕i+;o6+Le՝xL]uyJBYt R* $$LK66v٬']u5Uvy;!_~B .;Dyk_Z\L=w8јdS30* %l>[:3>Hid '^Rդ:ZzNtvv_zM;'|Rzzz$LPF;wm;m7x<΂J6\ -b.''@U k֬@K~%Ftf(hd_B.:%u KkbP-m%*:k@}~ ڎ W[ºrN@p@ Zv[W$W]N[H2<'~DR$sJv"a=y%7v-[¡1h`CVX@+9:/kJ wzenKNEܬ a"&$2v0RKV[9BS^ k"_k"H@#c a^eRmKu`\ڊ›udu gTT[ =E3H[ZPn^ݘ wJQTV*,V6~c܁>&u䖱 M^gGv$".S@FKV*s7y=W&W'=u⸶"@bT-*(SDLЪ~I|ͺЀ򭫠u Pf0`ɶ%*Y6_ssUZZM\N@ĶRIJc kտNSMJ.K[[utvtZ`hu'$ ޯg*\mqS![_{ıVW S@p*t_szPB@X\\_+^:FU* *KIVZ#'@Вʴveg|iJKeUuP@C#6BUEa=p^bT2˼PU? P!PTmf sZFBW@q:f*b&vD$W"HU?uo㩜 Z(F, &PE|au Pj,TDͥN4lB1,1$Ѹ]FnafErXka T: X?u~$ 1] _+ ]4 S4@!jY1'*@Bi[Uq-.>,ɍjb-滷Ͳ"pTap#"USCU4j@d^ı\ "Ls,p8W=+8LuscS4au,GA*P:#&DEF]b&)[l,"t8S) --UB&P%s?.H\>)_{xȸyS4qܸb\Iu 歲]4hKUbj1RB;DڵYA]SƄ*h$$C&t ~K,R\kUrt]wƿ |4(|]GW!7a @B՘ WnUD&[EsX8` `-X|AmMOCkP^ zat~ʇA*(8*hP?`#-$a4*qTO WPnN'UB^ٴ Wi=drZM+4ZP)sθ~-6H95QJ P) 0&W5$dR& P5\*Xp5rUYh葑e<;6\B{ ly]F:#**rH1c"'jвG_0wy/9r] JCA @LK*t?p 8#i2KK) PX*"TMS`JLu) QfU w* E( P4 P"`** :-B@ `@* PT@@ P w'PRwǟޛPA ΨKND99ys2qyO39f$Lbh&*w(* ( M7{^{k몮9RKWݺ@ P T@@* P @t(e mmml* 4_[@@}*[@b&?@  HP+ P( E Tr8L{3oXU@gAp$'V> @X Q@=V* Pȡ0ER/VU@%a* Emu*6 Tr L%$h)BdAFSWWgMKK ())1ݺu3UUU_Cv H?*T@'X!+ڤcN:eFaSQSQәǛMN'WDx H*1 OMMMzbGڟw mT@)Z J)jF;h?}[Kf?F hU)5P}A T@ ?a(Z*x_]*l?P}LP?T@Ɛ@j*p}6(0 ҏBTakH~?v PH2X3rpE2 MG?SU^**PQxR N \T=/^l6mԥ ~ G1G}]|rvY<U)TTa*bMx }v{]WVV'~m;.Y\_Kn/}^k„ yR}a"H @\:J -[Cnek֬oFZ|Msvx̰alPhwn n瞣5\9^ r * cj*(x,[̌5Gp׮]6t(ܸжb Z6Q0SRRQ|zp )MnUVtM64iNjkz2Ĕ.. T=zSpPx ]4[o71g.a!pهA)r ={ hM޽mQHUSNuxGj+بs۠sD7ѣG'/*u_7n ФCaD˭KV稂5fDTQ(Ӻh 6ѸIU-k“&[~Zm{nӧOJz+*@kx**__"'Ͷ_եL^y啳O)۠QxŽ): <'eTHQHRpR;z7 B*NJUUڼ4?ݧRz}OVQ4h./ݶ \RxĬuTYTJm7]W )4;EC T;.);X6Pw1-*6n9սK UlFM) Bɾg-OќH9 Q]Νkpz(G*3uSRtcQDHuT7B3f% ? m%NaJUUԽOȂ€VP` a-s|+^zu;| w륲Ҡmjt2 URUW?#y.RStkSdU{뭷]wݕSaSO)hNB&m/w]nv9`I̟W\F5]1!OA߉>(]+%!$e<KYr9~it=| M[k P4lr5T}fٲeX/;0*@V!J_|Oɼt{w70*@fCUP+L PP{)r쳴͛͗%sԩ^N]w}>9f>o߾;4sX=gڴiv޺|_o|W^S5LU]v/Ӊ'k}{;kY <|As9s=_9~x}'+_]^zuRw@7/ʺoڴɌ;,[ߵ^k~ӟ}ؿӻwosUWkc:+~ K),Z'?1V[n1֭3 /`nj~_ـ"m0Wj<`oycǎ7ntn]S?~eRW'xV~czaۮxSL1mwoرÆ#筷޲kҤIۥ|ߵ~z9Q'|ttN8)0HQQm _=HVnAŅ=//̙3mmUh; g_݆F#Gڐϙ3^WE(B*Izm >}G!Pշ0 MMM>nذa榛n"8@PhTQW5U4G?AAT9RXpP{”*GA|ԥU`-.aD?v[|^ P!C 3zhTSJO OA5D]U!S}wuaO772C[Q*F#3&UaGSh\ގP.:If\pTaSW_ms5cP] _K?Yl0*H‹w#G;wÇP0D 1:I"U؋.(5>SSSS~?1Uü8`h dS@׵PT m(@sεҥKm(o+h @ұDܨBIa(hpxA)yۅN JhT>,u/Tqk]vpuVofc+x,/u 1_|].=O'u)겨n/5h4SzA {熭#*3K,1&LhTq94BnGSF~1cؿ+̞= Q# A4̹FWԠw}=f 6]5|Nf׵4趻_./mD?yŵk4~tyGP@h(s wAa*APa!HR6VCCOmʔ7?0'O eKo7*Tb/=3#O>}Ϟ=')e'oپ}^TTd*++ĉM~?ogAꤟ'uuיݻ s ӣG@`Ç7ӧO7---lݺ,]̛7 :>fرYnYuի0` r饗+++k(P(뛦n%K/ffsNh;ydwu[~9rywMCCx͜93ҳm6۝رc/7~-\VD{9sI&5-ɓ'm>Sfܹ+#GO2\tEaժU~^xꪫl?OmloڴifgΜ9fڵfͲ] ܶRm=qzԨQvjkk<]5ޮ^CkerJk.`ܸq*PBMٻw] n>{{Ŋwy)//g.5lb:dy ,AGazNn̍7V-[fnʏԩSmc_A^3{2d)--]\TU?={pFBwyE:-K˩]4waM!wv[-/s9p N~a{e,l 6}[k^\s ;Z_7lAF )*?7 T6l0;v찁Xn~_B{Ok0A)U T*Zj{IU5Ue &Ue.o$j1VUDc+i?~0a]'6ظqhZv]UY ((x3V}>*i})lx&WwaP!K,_P0U UPk+@^ve|@N!T¶BCeG @Ap)FB~;{]!p vt%-@Wxuꮦ@-FSGL"Uuu-w;iYTV"Ugۈ-.yٿ]oh8sULT j|p4|&tѳ>kf̘aqa^uR?%(GuS]8/tReunxGcmžO]OTW^y2靇$zqZx.*AGUh]umٶ;ΩV?\5FU8`Hp# {u%meD魠dG떮cmXt+hԩS+uTw]キC1tP;..u/i8oٷo OmƶJO.UŶǩƼ'u;x(\eC5Dˠ%O춟FӺB<&UPh^QRuMehz/u]﫣mR-"@^ɠB IIH42^IrV^mC Fs<y8W\,? JO?m L* *B:G?K#{l4=z*C* P T@* PT@dȻk/_n744Gy9r$%nkk3/ٴiSB۲ey'IR6|?|GgWYYins9^zuygsͪUo Tj8x/ˬpr嗷VP4tдqz|mm>| }kx2@٬ݻW6555f޼yV}vFmFiyg 3uTsEux>,Yb`.O=;wYnZأG3em۶5k֘fOݻ;þasIS]]m&M-Thgd͛%\bn6sA{Ν;m5k•)\ŢtW={[+V۠ / k.fΜihC)++3Æ MhexUv&Pwt Վ;o+UTARRHgkFa>aqF[90`@\2~x{L8>㦪*\Z55uy![RWFW]Ž}Խ&d (x\ve]'u QZZj}nCv=풒y^ o$E#P; P,%*hΎWU:BCU>|ީN1Kd@*}w6Obر*] / vZ;(^x!,ThѢ{tеְTIM'TwwL^X +,:] ܠ1_޷o6mZ9 ' Ioۋ~/Xa mh:v=݉c5(.8>(] Y* P@bP )ũ!($T@* P @|~n*--5lp~m@(hJsI6Iڏ?bdir[nf߾}l(tR_GڟUQ=J3&w(JJJiiih9]K]ȿzὯ^?x4hPv!{g6ʅ( {qqf d + YƨGOkk}\K0}`޽{ݻw*ӣG68Z 8CP Sac+>ѕ9jSWhJn'J(_p^c[h(_ b5¼>]W}vq5u#ڽ{w{F Va]{ S[˩eԏ L3*[q$AZe_槷 %hTP_!+8WP?or}]ъ P}_0Twt_h eVH}Shcϔnᵍ)%i=**J{_4xO#HźvS U`He (}2(,E SUyGklU*_ 6PELն_h**}Q9ؚ @v6UhaV"P2QZ(a& U*cc2 @“zy衇׿uSYYA^$qa's]wyQF:f…ꜫm߾='ׯ{>srIS]];ky0\˅ṁ*8:da gϞfҤI棏>@0/|g`:t 9y RQm 6o>0K.h};ʹi̊+2 njY2ݘKaωHa WRRbH.!%.LyQ۠[ukr˟*9a[oپfڵf֬Yf__\˰f V7o63gδl񄪠v܏)=SNnݺ]f__fÇm(Uf̘alh̋ϸD>P)ZSW^y%]Fwӥh >NQx ӧOw'1Un+ ў={<`~򓟘ѣGz|_P F~@QuEeN0wq)-ͭ14OS ij>k.._aÆ!C{xe1c𥋄CUXhvԇD-Li`|+Թ瞛SC?3>2(EZr-tMT]liț s_|*yqsWɌvтUd&\t?ٮ?lPUP7T*An.jҕZ W_}= (*U@j#NB>j+MT.*++3MMM^ \i}Iy&k+TSL4j*+LB,Z(ˡ^$؋'Xط~_K/|߿߆)UO$okR៊7vd-[ؑr_yyyFI~msi3|3p@>`Eu HMx"Hi(|̝;7KEչ_~cǎi V4̅- D6~_?뾣GHjlQC RdKdܸqfĈvw Ίԝ?eFGTAUUU|*#Ypaƿmve/@:-DN`[*++ ~_}y"+U؉=S;wh!+藃=+xCA(8@4tE*;%[˜LۦwhH>Wg-k2B[}Sˌiʝ52?,n=P'œ>}444r*7{PtJc-}:ryT^WW7M*cT JeYgQiuII]uaJ455uQ ,Y|*3umkYY٬]/xΡuJad+(8BDݻw_Sa>dV>}V?7|ӞC 򝲏2ЙcdHA N#]QǏ7cƌz*E:͛ƍ5}UwdȌF^k#3.8q2dWD{ndr 6j޽{͆ LSSZYYYHz*7yg}A%GD_yᙑit1練TG.xkd3O8j*))9bKdZ=/F2.*`p3DIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/frame.png000066400000000000000000003260171473342170300261260ustar00rootroot00000000000000PNG  IHDR]6S[tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp )rIDATx mWU&:\k]Us!DJ`4}j }P|` i~ Z`-!+! sT~5cε֮:<{N^?M6ݦt߳L6ݦttnm mM6ݦ;ݦtn{f&qifm}GleYn|CBΐK[K; [R,R%G%9+_4&( sDgwCw*7vt=)i8fJ95e|q9s-ku8۟mZ2\͙Dqjy\q S sDg#cRۿfjѾUڷJ~N`ƈO9Q1Ƹx}59_ ^{{>:6uf<|w*>E~(׺vmm[_tn۽} *xtA[`(L`%;}zpÃY;7ǹV1lpxN@ 2^4|fe!^A0ct||J&.?5mL4)WVQ c1bDZ~\bc|ڭ cw@(:jg%03L1D }:< <<.oxWYh\љ3gTWVހ8YjsЉ"45e~BRacQ|zyQkYΏwNKo?onn҉i}}'dX,kq+"Oyޢm&G>t{DSIAp$&fBpHG=q&j PJ qV&o)xL ptFE'\|iGb!sVǶ PD(p@m8p1' NbMݥ~O`[ԙ|4Ng0]<3-AZ=fO a⒓iLQ\`11ݔ) SҊ {8B_;dľmɂwZ4{=۽-? ߦ^S|tnQnf}yIAI0jQ` a#֎⡜oID6:,͘k.J[;WǓSW^"*S9.ZQ[:0ioLF۞hhx0ۈsY }%mq=;ۦٹyßfMf}p͙ cjlg>}8}d<\w};G{ccO?f)󿸶 Ti6rx?pK>鶧6,19"V"D[+d`0&ddZNBJT:lREUE(6sidcRor?1Jx0)Iىe SB""|<^h#+6 ZRB"nT RmyoL䴰8AYP]xڡ_yyOP|=&RW!Lj+I6A.ߍԟ \33>PGcJ[m,'VWV"sCA@"a[§{pb&u} mmXbZFU!J ϻyߙLZ 4)>L+XZtq s~,IR 8d݋Wf +EED 6S i^r 6y&;;qIL֯:"WU~RU(84D:Y= C.L \n #YO&k~eGHqԚ3;yKv~c+. |wQᤛnIer Wa] C:L.~({f!!8 h4G1,BJQ=|.(tۓ|H,UUJ*Bԑnϙ),yX64pz.N_Yj4H7LL۰߂u1J0VBXp4RR ~z`6(u^ bj~"P#L2=/ *;Ӟ34lϕL!+[40K+bApp~c+&*q V.W!;-!z* c)Z GQ2cy$3tP֒ :'ws0&ҦOQ"Y{4)I$)ю _xZ4"hcE' 4E hdi ,l%A(`LSEs&Y$s"F;Zt$%4۰*L}"@)[ae3[4*>*1XO@(Xe-@> [QD]i '<^ ArC≤dg %@49a*4ܛhpQV],-HO0x[t\He4!aeI|Kww5VByLjGIUP1e/S2xKt]F"7g r3&q ɳF1T&:" 畷r8bXA#u b;u>*t6ї=(|an_S+|: H97!ܴQ!+?0~=;$F4Q9 );ƗaV! 07RJR\Iĉ@tTH IjbRX4j0H8BNl &Q"ʂLaPC aU"Pq.71AC\L2"qHy V<(/ )F ~(6R_{֦E39z b9?nZ4D-%Ƥ;|@T }>:B)@ RfUϺšnhﮧ+.=FsZx_.xK買|밆훊t 69ڠ `XjξTy97(EǰzbmW]sHbɎSR?V {u5VkDc-0ӫ6 A(Y^_&\-Ůblj"ب8zܴfM"4$ѰJbDWw[' $C-%T_Y2-Ǽݤ'OН_8>u5̹YYYAa./"DGg/MpCNS8w>pnE9։p< OuN8N_Vq V8m,<ȉ='W^OOӭk#j/]z}=h;17?g[M:Ch nqnjtFqHQ&TF~|(}b l S-?beUT*r>6hg)ս,\VpeHbP0,&˔/1ICMs_&rZpXz#7iK&?w- $Z̃s̛ԻP)(٢\*C[^^lM{=quk#, K:Ӵ0sjL/Ԑ"Z<?oYuab.j@ ^DK*w=WS)z_H?voУ^D 4{ />.l%+U]]LBMz-)KD:DpNu5ӥ9}Y ハD##t!t%hHK;(SUl P9:67QIgl$@t8S ŭ2d(p.KNB)/Ñ|r~kUӱc3n5d [><.yzOw #zm'ײ#<q8 vmDj 61!](:B"{Dͩ"%=7Dm#jǜޡ:ʗ__CW]hAУ/^ы",\ڻɇJo73,ҹ~N֖?蹏ґ_N/|߽!t5r͓蒣+\zGO|=aϤwZ{,<^{n}fw#~$izZ`MYܞ22 syOe4YlYX̹ Lv4DS0 `r -N_j4RYZ.B !21[ ѽx[$b0lR$FM㗓'>[L 2AKpۨX@J%v (|K\*¬cFJ6A }' Ԁ¸nQ]bVoW[IbRwD dx-u.?{i in?P8'J;Kʡ`kkkw@w7cz]|?oLJ o{ݐ_M~tͯ^JWӳnڤ%7>t;l2Nmn1I# V;Qmke >t؃~}̿VyKx'=hyqYs Qc MrߧtuSFhi|Q[ĮE@?j}tc2 fu[d+^)aݒs9/?ܷoV|ܩd$*.fP LU?+eY3U1n0ATN_X\s(Ç2_ZI#q@>jhh D+b„Ly%TD\n<}⮯I>;F":#:W;o;Eb8aBF'!N7cΡ /\~~= K/*_.9zMp7@\p1]U;7FP㷦z ؖ&+ QjOV1~ea& ꊈ$T:Ai^m\\R1$&U \ !Ñfjvm3ZdϮF+[\19?.",gޕU>r4(xӠmYp)ɌN%&!) ˀGf94)![:ٶ-ڿo?--l|yݕCtr:qmmᢿ4* xO{:4O78 "x⽐ T3&.ݽu?UVapz5QxAMfc+Ѵ;kGsp-әemLZEBZ}飯~,5Igÿ_jOqC -dH*bī$ҢAV PH!6JjY{2$Ilc|'pC!Djk͙Nica'j x΢1IyA>$El!Gg(3L-lom3'Ny{NWe,wOhPJֽHA=.TwAitk ʥfޟ̷ ޴߾H[|O 19 UukOҦfw/ )TI/eI5ڢw,cUdT՝fe2p*GFTc%eVUCdc3f\ ,w1p݃2/h#=Y5jQlK)2kmkd}tC"Q,EF5'%Խ  h>77~hy =z߯|%NiG;pޘdb2@TkŠ9ѬJ@ސtQڌ}@bbwmcCҏNK7 =_^bzʏtIIzh.Acȯ_CztM7}g$} LE}t|nğy.=_bop)~HWњb=k¦ !+?i-IERl1=ODK ,9Iz:&ҲT8cr(u[ը&Y)?6=#Z,Â{odhZYܳKb n+Vz#[^Q8{ENHhGҏ-'B^b^T3Ǭ@ԿQcb(Px7xXff NInWȦ%, ˙T}zKUhKT'U(@~L;>o()qѐ@`ˮc u೑^;劼ceW{0Uuz G]zO|zZT]L?/^z-4wҋtxD^{<'O'\˷{tQ=Oцl?EQ𳕆)v%A3mgleH*&}yRc@EV0 XdSs̺yڷ/'[ N: ,/,2ʋ3Dk~i BWcKNeͅv C!IVBbwm0)/ $~mo){Cv% !QaeEҗ`ua #:0(䖦lxDJV PDLj3 C.ދ Sv.:7^V W(\R%LǏw7S.x#=CW(_;q'Dh~ BC&GiYz71Gf4tA5 rW<PTj%qP/ 8v(-.]Os Ҳs{s7I0(<V}\ҙ4 Hf]E߀6xMs$$JLRRptpSI.-,ӑ#9G8oCx#ഹ/U߹w"o|MBJy$3.vJ Pz(xKAv"5Ū=A'-%&=o*3}wCAKv{;nn$C$ V%_]_[g$;\@#iAz>[noAVg4x`K* Ai,OxB-@ ECO| >|X`>G㲯g -rg%tl" y{qSTR򺆋WZv_}kg AqaVzLE3 'T%(HK'%pq;8 3= fi$Dc#hL o"5CY-*6$#;Ii,=Z[?޵“?$DyW۟gN2ZNfcFg@${:JfZƛ;-n\6f]@ʏ&J\ DUvaKM/xJ#V#/q -:@X=uy{`ECOhaYʼ8qp4 L\.>8~ ]C@at:m?>g׋ynSV4`-C  *G缚Z}IdBd|cR-(M{O#g6$GblI @D"air!n^uE@1]$\#G8@u1-NM-p(PIў]Mr+EA3~L?sd% ,hT!yiØT _ʁsd'= +ҨYUr4[X[t-1sޑP1QwKEZY\ F2!p{E6 r6-Xnln)g 6BKɨ=ۡȨv iV.:IMAwnQlǗ YI#_Vr ~8ǚCVMCuV@*JCKf?ˤAV%NFuƅa#~<w-8rۖIe1.dk"*7UNl)d™&QP9Sڮ[銐@ZD0꯲Lt dc|3?=HUOD{lz.k۠%yI˂s2H{.],sBΜx<~@%je]"ϡ eT%<*K‚ӱnDcۦ9mJq FWbUDf39]p}6:!e_VYږXr3984xd@(+ؼD( SJbTGZsȲ.Hj JH`{0$C0ÌzTNJIıT$r/9 i~_j9?G=c U٥Ly`"q?:Ty.mwRCL3ݮ$QwdAݸ]P&ܧc𧖥a+p6֤'2>+jtχپޙX>@R똃/<'OҳqrʎŠ'!{pkܛnwEHdqTSНn{oJD(V1B-]݄#sejQDK;iFc!\o#/YG "c2g?V$T.ˆe엷e&*l= T @ڥFc[YCTIĞϾ"QF|2p N0iKoFi6s-~?/;[z~ye\pPPdA}(p(cR ,nd^>pt3eĩ6g0$JnY%_:'@ Ąm kf1i kebRpBM Ks^+QYR sRZ1cQO `#Q5F/ }jiXEB ]đ lhҿnn3s9n04ss3o (\`v1bh-ǥ4Q@ ,ϢhQSƥȑG1`s(c/6789xAtV,Qes\ܟlqy-*بS,;P0#DkߪHg*KMٶLA&keч(T\Bb -iPX|\m*FW|?<~nv7S^>a'¶#sĖic{{ mm $2BTe\玥;umYEtRQdTwJچݪDN*CT$.c%w<٦qRFt/Bh?-./6Z;h ƖZ2<QsO8dhM8C n| #4h/׾7A/[-WXd"vys^yT(B | w{(_<2o.G=\0ΝW7F8JAK2|ߋDFHkwǕLߙ[`ɓ1m&kPM<&zLAw-U0!"b>L?X&Hu$jG(Wgi6 kJCJ8 ~yWը JLSu<_w kYYݦ@b+#cdvpo;lm3C:dN~r8t /g뎹H!Tό%_<}#q1/wrƒXA b4ePR}Xdu8Wmh@)])HJ▪UQJ, (6 ^F}\hpaIwwg#@CBtlbĭ .j_3Čl֣ҹ@$ m3ƚ0rhiaH:v{h4$Qx2,RG1^%x|̤Vʴ,K[t[)*BG ɲ1WQuL\PQRLϭHAlG[Mx&y9mI0x-l^N?T;m_qYQG7r(_jkDY.)e6H,vh3`bѤ[ S7eW: #]2xl3_:)nv,3>4(5K"u-1v)~r E\H2|jC1aq^jӋrqpf}ts[AM3̵g! 'Z1)n(Iyx@8.fҺX͙Bd)UƦ\*]$qHc/8(J(XIMeⰈ*4k1@Anz[ C!r/)sUziEM0"ѸZ=Mm@eb, 1NU YCt:w4\~%B`r(G\'2+Uiwvhqa'϶Kg}J# GטTF#x@DhYJ5St۫4RlhO Q[+ƒ cs4?+I3gZ⫌1'w;:J\^Ik_I5qv.:ihLj-]l&5?Z,cV؃M7C}V Fn_AiYϫ.؎l-Eu"1ұ"%ȌL^qQGvif\z.`m`Xe#PiʅpRŪ%d5nn3Zu+T xAʤ\%:OT0K'W^OOsҥ?~[/Gݟ<ҢCM@֊I2&eΆH^c#viD[/YD8Ѯ֑% ZR% >X5S#YQ59e0TkYC ĈĞi&X zO-ps*Ch5L$/V&ȫ XH{8 uA ӒU"2L+%pG{݊w(C9"4gd~26* 4KaV $3q.2[)dePq& j8 6JI򱅅EL_vًEoǎ}p['҅Sdt-1KFGjv~=oOeeUZ}F:U%Jb~,yyit@j]y4{/DllS:vgvG%a֞pfk$QA172Vu&$VKV ltߵ!`޷sJ<&8S8ːDc#7Tl'UR 60J#~ v89){sV}WJ?| >B+ˇ4ˎZVOKO+C(.-?xUz+{\"M[N7&Kw[STl~F3w+pF'_ֵ 4d-5g0'M7Mc$lyIR+:eH?N üpi̎2Wr_30+QDlxc,0A i34.bЎG1.&^' LO) %ȸde*֭6.Dyll$"QSQa+B"M|#p x ~{tC=œd+Ikz}<//~7n}t oӳ-4/~>|?oǨ o{ݐ_M~tͯ^1O. .y>ogݴIK.ܗNx:}|>MW#[]3]^j]S4s_gx>!B_wӯ?ϯy.wƫˌ (I(Ue'P[R2]ee i&V ){G_߸;/}M#DV/<(.p~7IRءQ(<6 5w0դ8QDF5]ileW6x3w.%.SLN-8p6rhۯnb,Ri PŹs$whH}TN 6áJ>{t_{ W(\p-mFmM{utCG=~W^K\P?[?מ:KK1=rn{+~:IM!?v~~~.ϣ7)q{Cu7ts!Pe[5go/:@GKWґ}/6Nwyϡq)]|sR665~T="TtXeaN&8s;Z'"$0Hsdw}$sJwb.-7w,Y8h8;&*Q~|R'rd87?,S_\?Osbf"+ԣPLH*>6'k ħ֒IC4n.X:E O,x2q H;Iծ'cWhsk+˹K.Aܷ/8-?{i6߭[n?{yeD[#tbKn}t=8'A2RFLMlSԫ+$ѢxHZ{_,iSr\}%bbԓ_fI2PգR3䁮+$HLX&tFΡXz* FB/Ч93һ-Auu%iRe#dp$mR6*k@J<5BŠEU\Me =n$Brʴ?ҵW&4+Yu\(8*->'FbH E!oet@v1Z}pT#f0EjSg^lom:{fc@iL);cFc)=|= toH{/ŭ߆H7'h~o-AQ >CpYE:t=xNCx}R~?]oӟ[L&VfO~ѽ%t_t n#\ i7mUIHyZd'հ?1KRMgt[6Iew.վ2dO79:(8m4ʕmˤVlU!KuY8f lK[8C," y"7B`d&K*R8ij=.OeQgŴG<ƼKcs*C[w ggqNkOsYpu ͸Fm:Y>?k<(j?sx +k{ً)?ҥ_'Ïvw'׿rIk.\#~ 6oRzOq:ZLJ>'{ne/:{t'nsi'у3t /z/Ν׼4{{Z_fN~)GKG/ǧt'O>ԗ<0rчO} ֖j, h* `I-ms;*0s5edť$L- Ag4MjE.RU2&U7]èM"fq;a7DbFmN?)1YB m鸒ԩ5bFZIMzw `ê6!!1Ŗa/vkN;n׺NH"eh|)n޲Is LW7Oл?@tя>'iӹy~_."׿şǽv.\@o~2ZJv2;/*=J:|K_BgX,_C{Ы(?p!}_A?@l}9nq^N9}DjkoI0׬b*LfA`&iyiYm,%yh9MdCZyh0IPܫGjTװޙjiPT>70j/|v0qM[k>:zvÄKt.& K3~1AvO8g6hs}CyA7`6imutWh",J$w{t*/P7ndw55GSSLJrƽ*5dd8O6ޮ1heILQ`9L\$Y IMFUf. .oZAy$բ UEy{c"X9eeSޗ[sN&n4 ֓*_"K?#`(r/Pw{_LEMh3V>c|@Ϻ|l3B+b ҋbh=^nӭU#iI>:r"O`3}jL8Q!psMG|o $Ur{C~ p*`NӺ0$ǩ{ 7()JH؉K:."rۤݣ^5Xběh+$`(XJUri-^nMy9Xl3@xx h̎"nn9Ne)^+&ER(JZ-|'A_xpncEb>3t"I+ho5V<ѩՄLM͉ǜdEW#CqoHLMC hY7U+iN@#3:($BVD-Iբ6 "5:vCIy{2#ٶɸc9(6t('*md6!z2o yN+a30}:~49 /s)[V;V>˒4#@O-UR\R:YG}~<4ҝn{ !'O*[zh:5ʜv*  .<Ա.!ƨ^fN} +DxҤQћqJa,,Gab9(2ؓMJd]@!#Q7%_S*zex~Xkh U{]uvLF5-w1H"B+m25Da> rDhyyyUV%yBȍ@?doRKS+'ĴG.м2qSНn{s ,%5@(uX Jb;W3̮*2bX{01@OS  V j /Yvu*b[A> e*,j@t"-jc`cB1]L6״ݺh0FV9xڙ; kN0RkZʷ KDC.$f!B nf9, 4bA@^k'FsZ[3zLCzD#b#K$t/8CϤ5;K)N-mȰD|ԥd5$*KD%iXKIչ$1 /@| WRUK%5@SD"d"u! Av6n 4E--oML@!LMbD Z1ш3 31' 1ˤVn\0hupQ0ʸ̵dIFO Y*BG^w 5[V&GLICjӚRV=iCIYV#)ENs]*%< aRZxW7 9DN|SY5)nɳɢ5:B(KRBð%Xiz\&|qU(0vW(38 >+,1pLT<)@ GzhG?D4/#ׂf2pԡ; ]DwH)/i4]٤U+zIޓR٨?nGܔ'ٷfs@?v&âԢZNc mo.i)JH {*DXKgk%R[U>h Vgզ)B2=o' g ̈́eiIM$9IBϮ`im0VR NRTSK|n5#z)'?c¦!MN(ª119U2>lNԹϝ!y+f]C-x2m3Pj~ɼZHtNE99 ѐ_p!mrgt~g+b^ Y te:T,tmTL9Q"yA.'YwmzߢDF6 /fjakK+TYP_1j 겚t, c4ZE "8WZ n! l\DA!t"9K+EEZР27c* ^ۚBiREI袺UQ; [+jPpEbK!gU;6yB^[r4>-e뤬 {"bI[\6x(K/5ʲt^M m"[!چEЖJBQ$˵EL39hRIzЙe%׌+\U+*CH;ARK.k;| nx(&i^n}vB[ؒVmg;pFWZ,@k#W4l*%e]Ka Ngr)ɓLZRhm-+9MN|-V/^9l_ڱ"+Yy kˢtۋB(1dGKܿjihRZd[cR"hmhmlK3פa։!*MK  ?T}S t*YdH? EvS6sј aNB^^X9c%̂.3}ef(c[_]4ڲh(+IWAFFJ2qX@\ |ݏgASwkzfEض{=7ZI%EƵN!U|3r6yqR6`7fGbiLtk0:.&6wwJ̰ 7(x U`0CΡ<wcM<L;s4sAa8"܎)QGsyM7W+6csy븬ȉ謌t ۰Cm(!,`N/ieղQ 1hoM4 (_ 﫸Fy<X%c}mS ẔW?n˴M虆]YX)Z >H˵ӴP4'!!kYqHchu Lm,$I(@Q=+h OJ&)vD,JL,M;bk[.hBvL0Y# h7³r$%ŲjnYN7U&;-,鹘B_uj"DGa,*@;8v{E* S F>' jH'8wmŰqTH,f[1 >Z"̥AN=7&v+Yz,5Migy;Ř|%o6nwY)hH3pcJM*@"O<@<ې&SНn{p+]U͑.;'neȊXډ&Pitt:V787 u@}V@+bCZ& ]ҒHT3FȝVhh%qEbU5h-%K.slmb bG>$}jHvah\Ӫ]A;b鄊@Oۏ]>ichM 6Nȉ $51pk!:{VGW =Ҟ|?{=㻎*+Wd]MO]DWWȃ/sԕ%KykD]}#>z_PBϣ~=}>4]D pLP&e zA2t̕HGO%FM-]'\ zC'~0=GڟD2_+^v3o5|ˇ7.*]U^ߦg[ht_<}'ѵ=J^D7W|ޛKVUgsPwiBSP(~(29w)#N@~1*1*lƉIPiz\uyZ{}vHjk7:uλ~׻ޗtBhFKT^MjJ0CL {WTmxP2,]|5()oLqtI+jĖđOP0$ƃ } O }2ûo+#ۜy~4P~e }6$MXlt{-؈J16Is*4@z,ȿ.[܇(k,3҆|VΕF_+@O2*VK~V\M+Wfݰ:tAҺ;\O_9Qˊ^;nVLV~8Nn͓.4w֮?Ʒ~@A韏%ͳ@'Vy5鳟1y']V ?^#iA;Y._LqtcwcJW/~6 }军:NxڃQh}%AP.(W[ :ZHxZ }׀ESxq/1Uq8SBl֭k$Wx8'dP) lu1c}M:mi:dd`nD m Vg K;x }r!hmo>c;a!_hh;2` Fu?;["?&x]<pՏ/,@Y@8P.LѶhǎ޾r5tʲ|A7f`K;n MA2#m&iǢ'~8!T4(?twsNȺu?HAگӇ]_z)qiJ[٫rg UTתּ5VᣊV QD`!]tƼdڒs !^He[AuYt :UN[bW[~rj7#Z46۾چFidXR fgr_8f<?lͱ@X̩{p x`IH._[?*xl@,&٠`w8྾4YUe57Pl߹cz֬9 xܽgڽ\Y>6?Q7VKy+ =3Ӵ{Q;<U(wMݛi ҏ>v9]]j..khi}J8YM/C;ҦoѺuډ|jk~>WN6Vz͡_W+ң#86Z*!?u6LAwO+ ^+pFrSUUSHbm5QquqQVq̐`@ƋN Ā pl|6P k[ 1M"NP*p 0ͬyk ba*W ^ K5b E,Nlan*te۶mtmwxx#{dKE+*>V˸*_b{mQo߹gܲw129.#zaNtɯ3Κ׿t:~»D<>r"/{!}⨋{Gz-]1{yg>ryJtPc/mt'm~AO~i[^N;f%Uo5}uͳ+ w3.|CCOY􈣔s5K8/e Lhjf& c ^< $^ E,EB$ 1a##|^Sĸ7ڀJàU` &gN(s}TǰLI0H#YN.sѧ.yg\JnSS_@W}EuQMy?^v^jmz4GO_ϥO~袋.|chNEaN}W򷿖yYtӔL s})=xp<%_I":ɼt^K?m~Lcz##r$VLUi%o'AEdpneFS3H_T,tė^3K*k4&lM]%ݓ&[nu8r@{qߺpD!B>p{{F#r+/[X>"?U&WMI.r t@" )&l jVD ^"RLUI7 _iAdT0w(@kpRyq2J*2xE.-T>sx##cu`+>>12_n''47;0)j٘wj:gICܾD\VAs w9[L*Tjú0MNM4勖]pHmG .vӦ 븲˗;Yows߻|*{ =M(4x+ѾcUQU> DVoQ K4=j \ꌨ.ج  oyxwlZE\ pjgf2AF!8\*>k5U5[)MN-|,0Cz];xk.~kE @բVU^Y"||I<JT).{=h5q9Te䙣j.Njc4jfcڽmheW>'_e!i6R˯=ok7J偆wiˊ^WH5 N ƍ$WXituňۇ*2D42cSuъ*>:NpT]^WnfSSʌ<`@O)ĔM h._G42:T(InV10 rܺ`ddg ꆼ(֎njai,*p* 3VMtyLR*]^WJ;kO%jf?s^a?K`p׉ЅONYg# )S68nw7Ҩ='B/P%͊WQEEiv~L0c\%3.kN&;0pj瀅Љ 4ŰEE ~ BPE}jFjJP]XH-w $Ͱ}vv##tXـ\9 .7q1,&&OzZP(,$8hE mADɒ̲ZjpbjDtMy: ၳPE, ti,wUJaQ9IWOU>5o}mZ"Ed.R067QP<yS[\VP$t:y3$ ,Lmu)ߓVtJPB* ե+eE\=wYɢ Q&]-y"Tm6 gf7ݸ&V;|tl3Y|,b)LU$(Qz;$hmfI!<`a@LteC<*mp kC}뒊-(l~Cj-U`sU\qR8eB1fĔUZhO F3*#N!x\+Yq` HT]TкąΏCX"!̝6͒!+Բ.9\*v.7t!x'Nm u$}htqn4aX/fsEX|h1ƞ;vmNvFI'?{!Rvd& t*HqF$w",%6Jƅejꋽ"4,k4!z<2/p鐘U3gj#Lp"5r@$N2n)k3P g9r唆a8dUiS/dZ\\n q%b=)zY RʼP.=ZÔZzÉ>#ca+ \cA~<(z;ߑ-+Ӡ7H7Y7Z"`D sr<8*S$\zEp&q҂,:whZE8#* ̵jURȹd(>w<&XZ \3 {NZpBe-NiT@iVǩ]50qjgrM pꡡ!h4\NPV)Kidx\*B΢rA)x\ϕ+>i R6Ŏ;FeȡeX!JC"--is7q"J50K龰MΘƜ/F=PU@# d_WjFjw B]yܔ(-5)$KU, )  req}@tQy+ZMVwJ;vmW|,] iR:s|zFQ뒺%^`a^\DQB{;y}u O04c twMڽ߷Z 7}jBEбFp}40iMH y2*62_~z&Z܈4.G0D,z|y1}HlB::Q뺴~An؊ ~uЈU!>[dQ3}G5+hdx[(S`4IeIѭ޺pc{}5EcD]6,j0 C@PfOسg֮]dž6F=Ҡxh%nVݩ' G8W+jSRJawO#и@- jbbWW2iVV[n49=%-v'u>ש3QQ.=?\gxm(,kSR*,yllxO!ToTw޹GemBg& h#\3.{ 3ӳ0c-iL= H^Δ״DiUey(,̛rkKh-/U!CVYi:@Hxf) R#LQ̌)4l|}Z28qd b;{8xT~Հn?N6%1wy+3sˁKL:E#don@_.[pK)\k&~[dp۶t3sI%Ik c9P .5Uo$uoNpT?&#`հ>SqSK- Z PD|z893NKΐHt(DjRUW#ixxt. ZÏq *sHPbNg( r2ֲxрr%ܶLaz &dK9Ԅoi"']@|P,SW$T+NpV7}mQyNnhhvŋcYdfJU0*L c#KϢJe= u NZ߭ EQEW{B޴/@Rv&kGOY'BW6XI8I X U!qvn&a# 7fYe^5,sCI0`kFhldf=}vI`\yՔ(+\a\ӄiVV\oXd'R);`ntP)+J`u#;D ß ˃vgfimFǔx[&\WV6?7O`o8w,o^ ]V8`5 jrFO9ZjU,[;6hn>w028\;*Sߌ %+ױy7?7)7adrϞ~ա YбV:tν/U#44}"=-ߦ(~nzp?o˭Zk@:ӋoUG]x_mByphu"ʿ١7aq#o%u>H1q O~nSϣ}&]1M|y՝&"[*UvZ IOϷC/o]ZLAT*z\7?)lMY2ʋTO#_-ǣ6 jFw;Q7?VXr%@F[+UkK@)A'fpb`aq}d aSR ֈ>o o:ӑԅ[IJpPL"J{.x2+>ߍ$EQ# 3@g~*`<);/Xe5{ rkڑz]0vsǝ t.'l۟_}}C/o{?=?nGxzS/;"_돾FL:4okӍ7\GOw>}#p~n^7~HW\H{ ߤc?}ꍏ]Dx}==<8UWѯjki՟x CL?Fẟp)g<k}UCil[Mwu,7MPr]gaHYR\zܥ*4`a-ju-^6PCd]QTXzዧ=> 1 jTr,# Rxvr2R:b?BoV1(W[ vZΒNzUU_׼[5iO8oi|x6W:ǯW}rK;/5Π 8݃iI缂.e㟧W4Yn9l:֫s}H?sp>=$7Lz8sr5}]2ŲL4 !嫚ڱ]rBf.GB#j3P xc `gkC0pSBF՝Oy(z<}nR*U+Kha+Ž,8Fi,D,d5wܹ?6*\SV A+[x{Du%)'I} S2$ifWdypGhdޠYL6hz<"bƉ 7&jh.f܋h|@wGoC,:3zvo^z뮥G}tߣTsg^J~ro{O?y9tfGntY<_GkJ_/ȰtWI/aͣYǦ􃫿In+Ng=?J]o@4Ηo'йJ/EqS ¿>:7ѹk~M_o (4qd]rYwSVͮ-oy G~3z.p_l [e}n}4IUDO\x<1rIkX Kx4So49a7 CHҕ>U")CKܺ$u V`X=/f,"C)vS;K^jƮ>VmDv#&.е;nV1Wdhf7zXI?Gn~hJ.+ ҆D/ʑ翠K n#] ܭ;L+ڹ_:ߴVJwBt ~Ci?K(W^Etw##Ct-ݫA7Mm= ]Z~e-XYhl=KӉa LM/ )^LA$`tzIR q󲵮Th8'_gIX0bТr촅(q8Z-j&aԋ7Ja!:UE*&ܳ], P Ou:Q`{*!QcTЈBczZ|qgM$&M,wKv q#3 D7]cxt{3%l4R}t?Iho77ItQ]2A8U;N"}6*5]uMtΤ$%%Wn4ʃ{4<44 Rܤ!It4Ĥ{=pbpU`e\2"][j7dYJ=6fj6ò9B @/sP'INmSrTȩڢj"].i5>!v΅֫x Eܺxy2i%289`l޳ 1JrH`'.ߩ&~,ȫ`=&r5+wЍCҎ~CSG!X ֜4FM<}÷X$qmZBє:ton(y=v^/o W!殁r~E;CWkT: U!it'O<s_Htȩޫup~D $l-Ik9VV\,F9ˢLy %z^&٪f|nizm.HՓ6NC>ۅ%D2]*QU1 0;=C} :`j(U(zjąZKVn`r-:٪KU- &hS EE"5CF9VmTlNhQ]GL[/>|q'"vH-vwKC^Hɲ3rS?N;e~RsWt]C+N;b7NV_5vtaAt4s4}:ZZ;1VSG?K~{5od3Oq4VJOyڻ|3һ>oIV8=GS竟ˮ*my:xچ{nI %AxJ pһlUd vv6*e1M;ڈ}ILL'HP[l;*XF Uuh+J[LNNΝ;gLXqݭSt+ - NsbO<و?yG3i)St mz'ݱnkŊq1`g@LW^SNq^_HNtɯ3Κ׿t:~»D<>r;}{!}⨋{Gz-]1{9g>ryJtPc/mt'c^@o}ΕtKN'zީ iIt(i־rݱ~O{{5MA٨;O<":meØ{iLo}ݗҷϤO/h8ɑGCoCz:؍^zۭiR䓿za)ݛ[o1kJn"IR /q\LWjTvUcKu<<&& h!s&1)N @jW4Ua*B NV 6 sN[6foK#pa(v"[(D#ѕnCwXv!ª󼾠iqo$xѤjRa-wO{r[ƾr)5Z42:įwNkщ9-M45 hg@9]Ct3.[vat©/>"zĺMy?^v^jmz4GO_z͍ϥO~袋.|chNEaNy7kGVSN.hc 0WEoFJ:'.J+pj B^z̻N媷kLG)F逍0}%OG~xӚ>9mՒ꽸rzn M#|*]+9[{%@Kưm n#$pRJWUe_08[韩?<=euB#YZ`S"d= ƅ X:}4dKaB^_œ.LYЀw[[yF.ʈT6$[ %*r®S`2- JiC>p alwEKM]!kca<羄Gƨ54Lv1iŀj ʕ+j7޳`S-){O:b^x~ N[:H.:35hG/&@R(Jq:ۦ qG|T߶7d 7o9u)c:S9MXA fQ1V (N&L&STFwPU{ JQ>VT@$F:#}d݁cͪАa-w )>4Lhy3LQ5F߫TsQi:Zm ߳;)-]+pX&&h L#=E۷oFG![z%@];wѮݻxQo*bLUi4^Z@bUlS庼-o]>=߆@Ie2T&UAdU~Q}乣% 'Bj&I(س3xKGE]jxlB+ o4c+9-MtD:  U ҵxAP8SVXL dfc$zc[~؞cAxdIB\b,[1_xo[lgٌ/R?j R拋m;t (J,vy^ƅ_7|*XDFܴs.!=ÛޱS]iH- qE7l ˞]nUAToIHmr*: }Zt=peZqgۛ(*I(W@ 7s*k5)6dL콛\&"k"l2JHU!KLCڠr9Ή}a\Uky^s/3ΡS(~XD?{ SP3TPv,Roa,] _x{Ί:I0Z}b_ %UO4|Ex `]z;_SyC_uM-Zӫ '&JVDF*c)ljkR!+^"޹,a&. FkX e6kId5 SzdcBu%@e<55 \5@`X#%q-Y,MyU>!3gUv |Yq_q>*QNphq1& ^&>];  12;3˒$PIf8 pōz0A7x}~z&(wpjX_ޠ|U_l)wXZVEh,?-wȪ.ᐤC?=Aʥz ߉8 F\x2 jvTq2ņ,yG3"@d'5=o{M 9m:gmVS"q3\48w?QU Zڂ"gz?@hxh{Nby,AFK:\ۺu+0Ц9d?e `֯+ :^;$NJLzu 0GEFk|V+,Nj pbЕos6Z8h$*L)7-OCuEK2A{4gelb(SØ 3jaD037N9~$P!.i`Qsb\+f~%<|pg 9f[^~P)&`5CC$txXXzhDۋf,P $T ` N z|QyץfTG3hU8h/+W6,AL9'/0A/wfA㘔w>wV(`ŃC9Ũ?ޱ\irsI`X%+!?n0g"9R> '2 >gI}^qjK3t诚LEGIٺ LEԆ F0.}4prUC="l {YHSNu!n"}&~f?Jsv[4HBg`CzA=Ϙ^ӧkS4$~9v_D]Dtk4iznl݁r ި;lTɛb__0:-Bvǜ{;ƍ.!ٻݮ*}Lx7tc؆*tf=&Q܈hUgPSKGn4ג"3R$.YsI]M&_3prt%]HJ1U4cawjD~ Pq"ӌadq&\J%#rasv73L 1LVI8H?A( vxQU!w~ԘH;`=˓ǭ4TʚLDۗl6qSiVd]6=H6n8 bTT,ភp:+*W[}}8jD%rAhTXD68|\qzB K^K=ɗJ"V"fEZe)(9L]'OS mq:E.*fR^D yjapi{ e1YdW7rbH;oNbZq ϘԚ59F|nS+T= M] 9Z uEQ'SPׇ0o3 U,'/cؕϥp.:QfM^8,":Jga.x^ xL}T4f`^r)ROxZli(mRJiS[άIvUUpF҆ ^;Hu'FT|wp|v܁Yw|wҩTu )&l úm vܭOZf~21,;7!*'kxڂiٽ\Rq,q{,,ٗrϓ`YrׂA*677-Ơ!LyJcOY5Hn2Kwu{Hσ)m]fMNF1eTF~YIJVY&t~7ideØart_12ܒt Eիy!H $f(T nLU3LImy*S[AqU(y8l/Lx1["A.fxsZjU+B|_d&WqUn"j. >cb6"m%X68jp{'Y8izMԏp' @p1^˹-j tQTS` 517v+0znXV;_;)-N;.3B)裥 F_CFQ$|9zN~Eux*M\Ł]fYY uJ3/a}\BF˝L ڽ{7O0nX~mfEc+Pj,^]ocm5TTT'PW N(,K;ްZӜ}Ļ<5y8 Fg\cLN/%cA~C,Cqls4 rˊr[Bt{;dk*b㵪*UFe-+]>pu k՞V/MalYh n ViZBiTgyY&Z1ܩ(yzI)% th!QrG>Y6.vM8c/#3L'* -.0[OPtM.XIt>YEW)|CĈS©t4,Uc^9VKZպ`U>7sPzKEk4H a8'dLH\PX#|M8akŴB*(ll}Zs+9`Դ=)4 rrFL8J]u~aa(WYrek$-77%*?D4)8B2Pe7Nt?`8|2c9n4LZl"+Q\TuI6)bt{^<& 2g(J8*ÊQa3 'ekɌ|3HLxq[մEͺmm*[CZ T8QpW)kj8hx՘ 7b8NQp򍩾Y9V&VGtmpc}/2i1-dq%Hl^* '%D]e,u-2 I> @ ($Tĩf{S9GIuîZfZt{t7̒˓jȍ"'Yx:!zbOZg *Ok'f Ҝ)*(LVa]}3+#']k.菽W!S72oVO.[5dY} q4L5TVex^T2vi,X'v{\ݜTʨiƠo<ǜO'y%6 ]v3<=J@cgS(߳BtSV2=*f 3axB\Q?䍺l?ZvĖDfVʏTI`uն+RZ#x|&15?E*k4: :OmeMiYDC3S|(vy n"74W7Xm+b#YWHu&(Nd"N_i,L2b Zr5 FB P1hrj&L(>5wlo(鯩}|vq%)O 2?Va;љticub p˨](=kx:]#tjF4BV^ m/^mz.~8*&6ox+p+FXT9qx*G SlZa6!04R $`5 0` 2d*:0yȜ6dl?:Ԣ,K "la2YW·azj_ɤq{ ռOmmAΣt&>CŴ1'fN?o ,F8!Ydq*lB10t{;o=<&k菊^Љ0޶fr{ޭKVZFe"j3;VPmx[SjIQ_>4jAnY^V'&⿓Ej稣|J*lTD/LQ]O?goR(< P nqƊ 1bm`)bZ i{}V"L&B.C7{(w䀾fLy‹QBz3pFD#4ht:wd36q_sTki_7ӯgqK*MO?\zQkF|zkL[6'3Oʅ8Q_]tg)pt†4j#=?mn;ڸzVn8xisAXs6}gx85GB/McBh΂K?l^ \W4c~WveN+ M- U7j'!| < pbg2jz~ȍP]ZX߯R3*ރשK úrK`ޔ)d4[FC9N_ pJ9DW` } \X$e3??C[RB03}$Nys:ɝW6ڀ)Tv ,vIHBS,Oj[#p~DōHÛpݿ]g'wg3ϥJzߗ?JttJō:?Gڰ6Ÿ<>͏o+/x2=c/=M:/K_ɴz7<7ǩ MbBTD(ŠyR,pe'r)+`9Lq&8Ac,dPتe1\~a399I 4jJu0ɩ)[ j^:a(Zׄ4hT|1i0/զ-43eN6Vh^뛐ؾH. [\51$P hwdvϥTֿm ZfCao (}?7}Utx#\=06L~>=c Ӈim~a-{z63Tuϻ+闯:!/U֯} /.}9N =Zb,?W.9U*"qZ\:hNMfw ߌ(J-m5d`Կ귧 NhˊYߴ0T*"fOML މ`@NMa뉿n6T̼$'I -Zavv&rU @st ]{vJ?pnvZK@JN$SRL"^y(tLXTX4Jq,ZSL"ΤoZJ<ŚP"Jt5S誓N @̆ӱ+Sa= [ooq}"?iiuю=NmNJBP:.QGUBmf_`: &%I )ctks rnBL-$l+fB탟Jjgf"gA@S/ [DTSSvV9P[ 0bnЕ׵ݞa6 F`,lEE"s+&J,ݦٽjFSb_pVWd$U˸L5 1>>Jtm\ezM%qK\eoy\,/Qi24k\ ]I@rץlԻj: _k}w{<}oToS4?GT.e_.d4hhUF?.oCIthKAhV?z4qZ}TT-ej4xH|\dNyoYj"uqو+M!c|/*g#$8}@gl{4V;8P%;ҤJ71t,פ\*B+f͹ɇ&Raڴwf?C dvx?UHk :[L@enBb{_XXU"alw*Q\r uBLi~nܼ ϝWl# sGǮk L=65.nk?X}GA#w\Gj,]Sf=ȧfAsM9:zIuR0Hz07Jxae$X}ȼ%IEЩ$sFhAR3ǯٛ? s?|T MU.On"KEq83+UnI<햧)| /)6HhKBZ5^/51:feJb| ;WBbb0V 슆(0XVWѨ)?a*`Iu?e,vWQP 8\DF\Y Q,?։_r3m{nXqcWn~Ӟuvt=7k7ӭ ?iNЗ_s>Iq;ӯ:VNϧ󏸆7U?m;w\}==<{ 69{jU8W"*w$)68Ꮈ z$_*"yRKo3=8` ?'2@SB!禚k_oy3NIw#϶$5eRz2@P_9:Znz tj0U0m\2$ yp`Aҥݬ×"/w%$b{{rǭ{N^l5F9h eWQ&3x D|ẄX2]CkoS t.%zAwwя: fß3})X*Drz{A_4GKl/~Ogܑ-D+?G/]z:<tK?Nͧ=4tl35M Ih1b[Jc" =E\@GmEߙ 3f{) "N\fY-m@[#9=91wlt?iT:ww{h:m ] ,nq'hN#j wjdǿ[R,TЈGz 0aQF\{涭r섛/j 6*u-r̡c!cIE.r?(VLR WxY.hL`!fdhEgxN(I~~ٚ ^g{p֭nbbw jrzH[ 6:tijf^q *ڶL Q59yȍ j#%{CYǒ r;Z h @}E> ߹i++dI1N;=X,t$@3s( EUJd|lE cs׎dDZ`zTslݘׯrjL35Zh!~+! zv,Ylԓ3({hFSY26Z]y]J+1rwE( qlt!p阜CoV``kfVڽ$C[V>YyiL?t]dSWo#QHS7=gV^FcB(/[fY)fت@uN7BNPHJR8G]D6`ۖx[/B$D[&18I \N .B#b#$Fb#͹ fAc¥'I'8҃!.#^r7NČL͏ 7)AC{x% @KT;qX(j(tlz{P؞M|#c իW`q v\y5&%F*svft[˴<$: alMNηE$ L!k Mbz4}y%6pu5ZoUf%@5 21M{W t ["GeclkPiy|d\Gr[f2/Sdv5MA%K4uAc}ҔOyyXMړ#عWLlHnBEkx<𲞹!T r[(eņssX|]$S&j\cY,b>G|  s%s ",͝f=i Z{.)"  &]{j{ BLwAszTA.tmq 糓%gx@_s5jAaՙ >apgh51@,hjj7ѐ̴Z ZaR e)_C{QBnT+wl/cֽ%W$8ׄ^ 0]l҂hZN!-U.v?xv,JvgQ +g_6H-{;8 /v@;/)8 y0n-wϮݴg$WcE1:<׹ch!FVP3m'n&( !Nj@Y)f@[> 7}v~/pUpImc~~:H< ߁zmfe57**Z,:55S3|2[N:(Ծ{ * cUn7 $i4s[ex0rH& MS$ț6ee49ýP՚>S8k*: '̉{8QX~f!x<$jD}lzrH'&VѮʟ_k#KA4\x{1tP+ޱi39ѡQ:ØزeK('wb<'z;݁mhYYD1@s*pU=\|VV/#4;-~o0lk GE7dE&؟(sz ~C Z4d[s[X`[l-myE3mUp>_)QHө~UhZtր\W((kVc2\@A/2qjJUdxYa괅s ,/Su;_4Tq}䭹35$,Xp}pԑE\t$xqza 'k,2{X;wmÞN"I>ohزpYȤҟ w)c %n+EGƬ-oaZB|;ò&H卉`N;念A7(@ zf)ˊ,|9UҲ6M= hh4 `@H&P'̖_ 6o3?4UJ{<$ \jw**- v~G@FsS.-Ms *8*eT a4#wa &fMxLnl7mOte'*bo1x!1;N#35ypf=ʁuQF;kYQҎd?+ ƍANHn](o@)`pc~a)MNt{;$b33 e;"~n CҔtT2Ւ6BZWPF%ͮZB< (ڎEWXK7\xܹyIyOox]E R u55}&hm(Q1^ؑk_ML!d"-}U z/#r.[NAUIhT/+#C60'YLQ4gRI.R8 c⪺\Hp,E,/JP042 s`J~gzzFR >?:iQY@Dc&tW~iKBuʗ Cc4([#S m aMͅ*cƚ;&I׬&3\k߭"'nL݃՜ҤjgR3С]$?/|)5BWJx8Laܜ46ӁknۙD *?3|YqIz2ExPf]#.fBe*1>Qa|_ $:5ǩFeΡXX9r: ),Wf%Sȏwj.:1fl\m,ϋ&$nTJ1G@=l/x0(:_6g)2O01mJ4!܈6a,U$ < M `L7/"ǎcmQ*YTazg!U]+2 }B2x!I마dpb/rCC#.lΜ\:'l-vC3<>8jvxbhmV]P%PXob) mP1 h=})})Iv}f7|bXLu5Td/PkZ"#6'W<1(5yQdUԨs2`PWl]l#e6c ĪSZN)+ jSf1aiE Uq:dOWxLA* hLmp݄0Zd< D FnVYiE:ұcD3/X37:\Y7n~D Ɩz{ʯ'xBN2X lNql=7֋`y$%{nUA\~{)nh ?{  Ϻ]'}5|x.qdL(RNZ u7$Wxׅ=茿p(20CUAnwLh@8@: \(jFl#iiZ4X:vQ[IeB5]sH/W}A)1 ,Kĩ ] luk.靈78LX-1OqC*\vLu$-ZYx`Kg Cd <b4L2M:/#'؜H8K^,!Dm| MrC VKNH\"˻h\T%l-ᚫŝq'/g M>.͝8"B{Qz%0.^~.SZ~R'/*)ʇ|g#uxrmʛķ.{ҋk'3V<,V03qW2&b3s6zq'5U$CxY _XjD&6XeۋXe޾nknmF{{ 8žC]=u?7*z\1bD&.#>-toi/a\)) wٝVbI):2eL/7|(m9@6%v˨ iYd ~X{ zIC3 \v ΉղtKpIU*6I E芕?JYUg@M)V?x:8ger{]P!{c aIaSS5>B{_54$1S FV,FMxGa+qƥ?]k63ژT<朊 Ώ+ݎT{`j?/ťy6Y4s-Gy>z껸|?LE8E5s]?$53<ӾO#ktPlN8x@IE7j*PW,Y߅=܈/5\~>ɄHBU3ta0cLP]<ۧ{:dM *P7UO*3yGR2MivqZv#_L$0ԩvkW%·,7<_kj98L #ӴIdsH/R91U9%(P*^GTs k#=y\|j}#PUKqXp;>]&D ލq԰މgg̿."?5Q揯'c)nKxo xy{.]T,^Nߕ) lc޺0%8:/*r_pz z V$䎾>]`A$$ =蔶kx0pytD5:DF)412BH4ҲxhTLPH*H| ^^漲N9$/:9sI U~e []BAKoo# 4`acȴ%S"&>*D&{ U*5xpA 1O%\b|^ix ]TfAdav\T҄ҎbIe.Y;9J.oGGτ%H5xv>U,dg}^i,Q^^S}>DJnd_sw>ы]N+;R,6m:5rKKF66gT7PWΜgssl]3g $ޝiʮ< :ZFf7E'^ָ&ub`\}?db&ڵ:^W.y6S۹a~Mu/9a%s%qL7f[[gf͚vԎA_^{\mX$a(>*Dfzʌr̦ێNS|ڴ1pA@BYmNS0 c.qeGLdTv{9{]sxsyG^]P(U`'<*GҘr"=k J* Ljܤ30f ֊BP*cm82<l^ [-4| RP#cbW]2VxɢjP^$ԉ$ǐ5l381ӻ 54CWx2놢ǎ2NƁ6 K9 i4X)yib@mP$Rjо?d`Ci6bsO?KΚZXfN=5Э*݊Ԗԇ/P FV'򴚣)UY&Xd"n2iOh "#]z s֣.|qے" e+&3aʄF`Eh(HOP4, w D, bhW3#2 ^?#49ZNDy:BH}BO`o:/lF;LoTKCTȓ末ۢx":x`'ISSiS C߳fxBa ٜpʰ%)֎?64+nx45Hjnyh{V^r` ։ڱ_BQj~׷zBg`9)Rvz+y* mah&nAeQIEºsiWB扵+11i|B[9s:hhP/#)qF[fIwsH)&fHW"R*fn2}f t <L+a.h蹈'3aj!W.tvƂ|ί׎Ix( r⦥XWdY[OxIѷ}+lsm$2Po=9"idE)q/AP(p@_zzzޣ)Sx`"EѓE IׂЃd:#e^@ :D7F#'n&vE;77❕w8HЮb֬:lџ1VTnخjڸn9ZW^ߵ(pV k {v]x4xZ%C'ij8 MКsŨ.Ϧ1 iTb M[k 2F20 YvDb*HC+Ca~%ڴ;D5)d?xQ>4Td > 9?P/5B혌;li&ťX#o$_^dcӋt%)#mG[E|/#xĥjRFW#]LF۰3P+U&'&M$Ab.mCu9dE#:>*q]sS,߭BD4饲ϲ!)\VH;W.tem'CEނ"no/xi]W/k$o^~ cxn216iLGfH`TfD\&fpolijInA)DKk 4 Őxd'3c<j[;&K$,Y3 ҘbckŒ %rR/`JYMn)DZF2*I(XR$,]*]MYhĔ@$'Y %ܰkHE-+8z ] `_?J"r*kF=!ƗJINFGDdwJ%Ҹf@7<,762LU0 t(T*}>h`p栀)t->.7R%;RAK/ZAQL8N`fN_Cj 55{̞|݌xgBս%n46L@# <L^z1.P=˼ 4LsT25 x$.1Lx?Ҭ[؋.10LijA{[SLyZ\ ƀCS8I_{&ȃM JҦM|SUᔊCaoTۡ U,5*=l8cԡCMJE 5&o]q鑸Q3(K\]mҖIA 1Sl $7iaF12.9??/JQJYD~>_J/X[0omkE>WBCc <Ay/Q>Ede :6wcf6A[)pU`r{"r2u)(MuF^eA=Ov^qHMuvv*:jN)hoVm&Q$Jq`9M[xJQ79qK p)&zƳ|ktK#DB)0xZH/iO#=DA7$:.D6L(2AJ94j%:%aVH,3!lnI䤵)tXf^{Va@-UTn?WX kLZr$A:;7gc2RTҤp+Be/ 3iavrPӕ/w-0R~KuƃTo7NA)bu 8 #MMS⋲-F VNEzar:}#bts/6ac#CC }og³nL&.sEtg.g# ,:$#%55nH`EZ1h::r#fϞ˻zOhooêU}o)L1B tk;\㘥d\Fqɑ X# m7@Evz!ajWVTH:%b(Z9![< Y"U(4/ZiTIM_)[27vqce%0u@S8M1 `dp38JZ.V8 5Pi3psRTv#:<g@ @MLLN! Mę|477 |^ M929< cPJ豢geȌ'O]͔)Nc@rG tkt5T\63rxsK5kɴ⣬}ޔormcŮ$ntȸ%n/A65i.O Ћ`o׳aZIfC\vn\["KD:oc"*L0÷r^~ժJ6\iڧWOHH*0{0kIFdb$^d)h[G$!-{&ɺ!gw@cM3E"'Zܗ_~ M1c|nE(ih30 [5AM[;&kPmtme3JY+5ӱr0T `YB;O1h#yXom£=5H"b΍ݼf(w0AH:ƃ@8V/+]w gyNw4 LNȐg`G4j-TolYڿ~]}B68 GJjaR)Mܤ+&ʀ3vbAjQ01NU C5b7bS;Qڱsb,8cdH#h;MUw͠F׼}++pm4lU2ՠݰx:I|n hij!cCMwxM.l.kJ=G;<:N)B9! b\˙p=/lc+&fmREF2h"gct10bxnJ,{IƦfp 扶zݐ^5/Yu5Hs ǮhYQ N(Qz'NO粱1~P4D`v%aW^DL֋11{(!ӎ]dY/^*IWkjlSz&.81R݊ځ8*j£,>66NA[4nynZ#U<00D]^Z| bP'y. ɀ[Oz2;iMmdr妫7Qrx6(<҆19>J@#/,RIdK PK1 ŒI8E"$~ӺgڵД"qlC=N/('fnr/ߊϿFAp_.U Dnw1sԄ .ENiOsYUXΕHy6!kx $F'7~c-bJs*;ըAVnްk׾̡gLy[[*rrP5U*w8}رScHlO^u1,P%F@3px&Cc}`\RHFK:Jleņ3aYfE$q]`c6&mȋCw,N\ϜtIM̂I\Twtu+p N___n"ӎ֛s)hz>lzOq`> 03.Ç.[ }༽1Kq=黋^ ]~v֌3pÕշwhE۬E8;כz 7^pg>s0ej8˸kc9X=Z4 y sv}QsxO{C{4t,= 阙'໿:޽<5Sqx!mFa`s86y(` ,Ti0GWވ.󞱤/ *ϬDnP nš5/sZ %_Ei開>!\Ox3]̀byb 4 \uk1ܴuQO[auYOut߂C'>vz껸?=Jc6:;rX`DpPkwU|ᄥ?g>.냍X/|Kx`μp^WX]WlHjf,UE chRJ*≩y@4M-hkkEss m#4UҎB}\7?bMiOO'7o/an>yϐWpԜ*L??7%#)YS (FUNu$I,JrΤ6Dɋ&ŸywOSQ3c&mjI)$?/yXYW/I בEvZPM'\](>ӛI#Ԅ#_z^dmni!9SC"E:5D X$;d^Z%U}{=N9a/:dU 5`\lonlw'\{~m9x ?_ a/vlj'-7sT+cO9~ oG/ vuO>Kw[ʄ}_7?Ƃp YfAcsc\%8<=.ARs~{}1OOhT32S|1%^:_rZ-RM܅4/ҡᢊK3N6 tp5ϔ}'? ^ƬOރޅ[_]0to ⮿ewR?X|}קS~G5$`7`s:s#sNX*㗅{ Oaپ·*I 'lu-Xdr׍j]0 Y=$]&܉sh_YQ_7(m:PΦ=Ӱô3c0r#~\N4',W(<-Eq19\!W]t+nT :D)UIg:1(u%ʋh7Uջe f0yLID&{gIi]$Iɸ(:KwN12q\:s4i;J2?w\Iq 1R_XM PŭY]RF:~Ism?^ @?dc^?/tLze`?LM raER?| -tqE;qxnTg}m8bqpv7~}x,[qbi1ZX̢6Tti!QDC}=ܨ!Jf1IDZӤQ渮Β&\ 1%1`o춞=NZl}Dfv T3RͩEKڶ(=ROL~h|:)L296R¡GR /PY ,Cw0T.87pzt(^OM t᥇ZRĕq Hm1"\8D[m? ~YԋOߏWE=oЪ;#؞s_߃EܹLuH=e^~v~qHCٶ(|6quX5uq!sUo}۬8u=з` 4,pKa ge_y} ^+1Xķ?zZonsfcm\rւ'2\{>\w5",|LW].'ڏ:~wbqycVf%uwvW;ox x:4p$FWiM Uw1&t__paA뫮ȡ=m+9i rmThM_| ŕ /ƷεRuFίӂFLWCSSn)>R"v~< FvfQ\u:v<>넵iLڻ5jel*X}<]60,mݵy8)"nhl`K耷6xX%aE]z:;}\%R)>DVdN;$L4#(CbL5cyZ9by=ϚpկG˕i%ԩS1;\iʰ+c ?(gƌX.8F5tR p~%8cG2$n]GQ*L#XU$a*,@W7ϓ`a)J2dݭ@dcf9X*)-ŒL7[}G] 4Lw^$pJ o| FD\Z:VWj֍$(GuɖVπH 'ko }{3LK`"/-͋KG[Cw̕A VmN\a-m[BJ/'"{>s7Y3v Q9fjnk`1X8ވ'"o';MYW JQ^0 V_iҎf䳤K`zJށC,W7(Ā>u:sfQ:oQLX l E$/~ u ,J^3cGsϦQW)-w@vH)U$F*.;EwSetrdjH1u݅N*@'IJ+ Lj0;Q#K>FY`dOupfj1 X !Av9B4# PЀ /ušp_Ǧ8~|BY(2=ϋ=%U\-E%T9o^ zoZanBBG, DC̡n)ϊv5];3b*VJM!Õ xo[fUgGܨ+U~y*=w\Q2ey¢"{Fa,F_0&1)@'W׌ %SFsGEuD]X$P;iA@ h$z4#B6,l[^Z?!3S]ҦXd<-(tu̝;7~5k6zq]'{r\F?/7^( ^XL^[i Zq fͪ]ݵ~Tܰ\'SM& jA *qV]TF3Dcele_4\bVmps$$G,gjZ4"`#6鸮,vlH219 {3dA6My'@> L+τs@Nd*܄aTG hr(;ڸK|9Wwnĕf^y-\ OuZ Gy$~mpo?jvJ#({F2iBZ~6n_te;(wl+\;̞UeQ~}W ]H&EKl]q::]#?\tbNtG#ٹ|tǼhi?f*;YiGk*ǟЊ[]݁+~ހc3{^zMx+8G5SfaC%t#с/˗/gOmHmх8xYsQVrh f%`;K-dNY5O:j|YVN9&?UcOˑ)47>{L;' nNJ{GaVbXrJbm+pSqQ]6Ï?/}.|t;qI:M>0Mv8q}=xp/“ &;v?py景8TF;Q`O[U lyH#r-f؆AW~F?+u]5x09PVJowOx3ӎoŻ zю#N9ś4t#n9'5j]?Vz;'cRΗpnB/_}+~5^xW {N30wϣqgOI_5߾2>qΘ>_qs~r&U$zԗЖ5bC/Q@C198?{-lj_bvK/֫߀ _t[ߠPr\67 >NLsF> ٯ'} 'r5~ۿKe p7T F<}\ mR2s2q@U2#'>|+hoofD9=sQrFc.ІHVؽQֈV5 b Jnj32sTW{ߥo%KY4sޏzvŢE `nup6|#oN^ץ*:X4v-e8u}RqoGˈekw:>#"V>Ԣ%q5bƂ]P1<9y3xHXxk6w.{zLkvzw=Ygu`Dv~]Q7l4T{BۚJ8SV{7b;D!W^WR&%-7skb\[XSp;/߂wيO? {x8S9+>1\V|8#'c 9[*;Īxp\?lo}[xGo{[,[U r0wVezd`-l 'Gtc?+Ls2A=Jh!-rQY;.m2XsQey}|Mv$E7-|2!N: x+6*Rލgz:W ~o{-X{\4Kpѵ_ÁO]w, -ol:|_~qȒE3pmk_&x׿뮻*mU6˫6яFeqE@;*qƬ3V(VjN7n`;JS#VFV#kJ$`厛InUu NV{~VixܻR:X7|X__$:x%_loF׊75*T *e8Q}\Ŷc*NDqWsTjp&_5w`:y_^ҷ 55Y:3ދֿ^p˶m[/erdmDP rU-bT2?sq\1![]c[ dөNJ/ԈʺBe\.'QMȵvL]RF+k4_EF[>mEڣږ{}Teh_FqTi,w>p2 bt4e[tk86rSiF.o2e[}UQ:АJJ#or$}jnΫ$56`n1ȩq~`;f\oWU~M&u㌩Tf+ߕ^Te9#m)*o!Wn4DaVCjȼge*gv(3Yy|*>kn+a}q8*u1ʦ⨩Th* A;^rFTUn_ r*,Ɨ6Gy'^vQEgaJ c5@k[;&V6Uo-Hd?fCH" VgjkWc+4++=N54W xbU*eAɂ3Uڑ@]'}[{WSqط_'P6<ϯ0;L-V+'Ud1zU0#mQȶjq*3vS=g dʷUj 8RU+Iø9(ףP@SL|[wcÎG^C'G`bJs+fzD0_S[r6l5ځ4r*73HF!Z@14Q[JdoD[w6E;EQ A|zG^٩lv ;Uk _;gWj|e'>q<~p q^s1}Z Gy$~mx[` TI"pY Q3C jߖo$J>eD.S}yWiIUoMSOQR+I}C">eHUW4NGpGN=7݉%:cT?'dX>sW|L%}9 1b/v|}0v=Od߳q`> 03.Ç.[ԇos[1mb1X4O`ד~gY Ө)c7|7_ǻvtp*.c}%/YY혳G}?V^qkKN6Uj-n'cvL[>/zCylrс/˗/ǦM0<DGmnTP?V'[*]cQiH?Vi:N3-z˩H8XɡpEqo`;ebgu#XMfQ~ E.I\&}w5o d'7A d1C)g{T1jZֈUv [ ͽs !ZWs>sxvĺ#rt!uMCh|iZ~;ӗ{Rq%h;.`v%&(H*+ e]|`VN<EP[8ΕAW6ow`傶1~m sQ+ 7&IZY]D{ ô7Լ# %e~mĶ^ы3G4=^@wJ͙90|o2i/D$^m3So!`|cL[th޼95jԠcǎJWk+'i3ruhDz\ҵws#'VH/ia&WڣSH2jEp6`߯yNR>0wM4*C~G5jʴBMkoKRأa9>E;l dX=ũfug?0/ ˶Toڊ>9ɪN/R"WrĢӇ#P#?÷AcnJOm6M&ΣT.OK{I.醣s|7VXp]L g`LhWgykGObY5}=]ѣ|NlծٟMܡee.;Hֶc\nO&wQQQ )^4L)@z\sRSRhorIA̻o۵yL]o}ނVj&:joW/9٬,PP8^ΩlW݃:S$"j=O\,טYU/5ɣۍ_ Ջy7;f scUTIh#~7{ڇɗ1;9+ͥUB4HԜN?7>*^3B.d 99訟mc#"x9s8_IjβD}6*|Txz 122b]?Ҿp'ȔO)ajC?{J>=i/Ok݅񤱴Q]S- ՚1U03AIO6~c0+W {-cQ@ WqI!r|{5Þ_'ݭ0|@_.x{ZWn AȎEߏ`}p*S\~вjGo*~֓10{oӿQ7ʓ2{2왨8j7꙽l])p@ ϘzQ_uiOO):aa{bE_ꫯ t؆ߡ&>[4̾.#$U5P5wbSS:6@R!iՖ2vRˠ$<|j#&DHz0R{Um /XsX:)./nNi nBF~TW%U%[wR 5tgna4NQr|9sy_' PFv\8 ƘR&2~ˡ;RiLԨK&7n%XNȹSՑ3ONeLqpqE;<9MQ3/ )ؙ+{eJZBΆ&put^pON/t)RomI7.P);H:NSj0zBz]p C&wvH xko:U.0tt1&ThEc,c{d.9~;n +5Mnin*zf0FSe h̵Ǹ.:e"0>YTO$øxrH;1+ٽZލ#|@~?U[s,GSvXT Ǿ)CXxgYP?D~E2]ͫu+)WvGt뷸v0,b}>)_ܜ7qʶߍC'o;iӦqO*J#mdJQ ީ^?majf566 k++,--037#ϻ2eΜ)a/cdjЯ[$ jEn޽C0sISi휸C, oGR_@kKj9A6#:DkWŎme!Kwg`U/#V~n˜qH׆y9oTjHx!sUp_ɹemHNq^DC~~y@Fdk7pvv~"""8vb*yn]ZSI.TIO׽2Zr'{":^_T3H*2_<ݾJK4^F1c͚5+YwȆ:+Y2gV-7K00L 74kתY(",6\ll+'ΧOjk/\qhtWnlHNIJ֑A~ NzrNKpS_{}N7}΁XgKMձx|5.῁Gw7wW{q9E3I4 }zAPNYs " " "  B!~Y3ˑUnuc ADtADtA]A]A]ATٷoADWر5k2dȐkwUܳYaP<+`/l䱜VAS|5?b;DZ-wޥC &,]4KOWz0 Bo)kQ~E!C^?ɍx9i +*.?´K.ܹs'aٳg{Y80 qOz &ң&t ܩ%eCâ#!}mMN_G݃Ф\KWX8W·J{M!|W eA Ey-aQCP qFH"|w3gm(ps'v oҩUJ݉{mqLK7$Rɴv.N~aάn|9/l- 2 y-}_, (E<NJ35O<". S~~ w㣒PcCx~V;, ^LPNYG_/+"l ~ݮt??M6 #ٚh"2eg0g~s%L=%q=v,FAqs%i,z[Ь79l8jM#.G2h6uNy+9IL/Spk >"P2Q4\TI(u+W?d<5S\mpnXAb%~ҍF9v0(ݻs…ӦM#o޼(CC+D_c_N-:֑ϙ=1S7UxK9\}N7设 9UmLRRtn _B}GWbTRB.7[C%fBVpg̘2(]{(X"u˖-i޼;M\}jwr:X1Yx3tDN~h,U\0Sa~]OGȀ" ^.J:L䆕w6{<y1Jf*|fpܶm ʊݻwt{Nx;wF-L\%V4,hc܍z ͠!DFztw):K}L W#F@xJ!qqP̔@ o ]FY58CP(;taXЏ\~~/>o۶-pB,,,Dp-,Oq `6Wїju;1qinⱭ,S8pBu("8c' Q(96 29/TuZ[is5{sF$ެ "KamX5-~Q<|)3\ ?+b-V"T.T}__N&Oիɓ>=z4ŋ[+ ˏw*4s9VJrTE-3{ {RFU!:z9㒷 =A]A]AADWADWAxT{/ |.GFWc ADtADtA]A]A]AAD_&Ãmr0ADiJ4,FlVXXe#g᪴rv!cxPP''\]Ws''YM *x8Ň:}VL@EuaIKflַ]",Cqu|}}pBޏg''aB89 Ӝp|($+x16հ/H╨ת}"1uDNq&[4$C4Z y8j-~eK!\E.Ͼ wΠ}dޣ=V^ॏfM)΍rgq&&2LqqqINqlO}3mG֤FWj.uN{m k 16RYt S&ZgG?>a,'l=3Aq4179*Zt~68Mpx= -qpS&{ѝ!9ۇ BkN>X޻&xx R''b/71ͤSt(5=\+sj 9=ҥ;( nԩSb3jMk=4MS{L>YɚV/rj~a.- !G6 o5!؟a_`Ʀ*8ɵ\#GZ`ˮ[LIZ}[ /_ʶ _Je_/;v o޼n~qT)6h*Y_\j#EZMIm h|.f}s/cP׆|i'˚9HO6հ/H╨ת}Pq6B=#)D잞1Ѕwu<쭱z<2/B%YXRqe#ևokМOp8z#g!yvB7~u&eZc...;ƍQF2h1-V2.HL׫Xܯ>EݲV:hN_ۈVUߝڃ3ԋ]Ӗp^BFD_({om.u1W٬qD0]h:O3W`e(bb핃aT?6"Y]~C3Pcہ|=KVN;/V͛7FtؑB+yűţ}}ӟggк+V*ӖIURR(ɓ':i ~.q"obZ`2g;_ r>UqwȆkXۿ, $R;_VԎh75d5QݔnTTTOUbIn:W~ȮQI+x1/aޱ#&_8'1"¶ ֝>KD3Iq3L^'WaܖJ0!טGGDŽɥ=W<G?axO]# 8aumbLw~SEjd&\+'ٕXUu*,#Qo]f{5Li;&5Sx;n҉ci4{퐢Rܞz.cTE-3{ {R'(0&Oo'w&-Yܺ>~L_y+S8vէ⓮7YѮ9\)Tw0۬:)ԶUIPޅ'<<\܄7n^$LDD>U + AADWADWAAAADtADtA]A]AADWADWADWAAADt/0-U!#ъӐ hX\٬FUi;='E[?2IPPP>Xmx}vCsskxs<;~={`oeEei3:*g{ׅ &-iwbZ:t#4Eo^3`~:\p!Cg[L\S,6h*jɁ8pk7.ࢤ>p7~Jbf9{u0돝bܝД"+ ?i5; Rx%CHZKt捓;gO:3%.Dpl~{J90^{-; _Y||srTKzPSq(VY]=sN<~v"e}t'^#xR|^/QGf!\;ϡ9%lNK'vn׷}Dli8/fnu ͛SF :v~O^+]<7~6q]KbkeK2m0ə0PP(SB`;Dž +rՋ1$OXr򹈕?iUF.R_K4cȜ\Ҿt'P>ل)TEԉd$*Xlb&W3}Y_VsZ8w|X&<4U=pU=z #6NAŪ8+M+誰3QM|ȑ՞|}i_)O^QF%?)ӓ)j8ڏ InTTTOUbIn:W~r MT;YQ(ٰ "J "(*l b *AԚ)];#I}sױ*䃫aKBE`LăuttwQ?9Sbab]'my>&zwvQ9k6}Cċq&cR_\?/>o ELL =z`'AfXcҚg%3FHdf {\譓V}#[,UVtSnp nyxxӷV0W prrz99+߿?M 83ub޾t,e K?ON%(^n `x6öb7tq,n69͞^]%.FdCѢd?ȱx.>ʣ|,b% i+ؼ73ܽ߭y25hN8y9'w΋Y*vS@Fcy2XΌ! ˼wosxGcO{tU6 Iհ#~t9ŴY|$&8Pg=oD dӦM̙3L>*=ٙ߇teދܼzEưۭ͊*oJ>;yoM6~3PMrX㸼n,]?F%v!na{\-6Ɋɶ/xS̷D3a崏a*8uz-"ars4/Cn8 [$}-0]䑛&^'֏JbC1ezR,,ɓ'oabb YҖ,n] O?&߯Ǽ)l:j4hțKfQ? xQr:/an;uBzp's> nܸ{-ol822We+|Z A]A]AADWADWADWAAAއTS}_%SLrq ?t*ʃA    + + q;` 6c<;Тl^[Y`E.?qa,+LdI,Y'S'L55Z֔1O{ate{+XޖЏdt{O 1<; ݪeM+,1 2p5m}k<ıcL#kq`\c*v2?s~䈉 `n\>23D+#hDzoin(dps.bZbwe0{߼MIu.O. 4C=7]v#^% 8y՚VZѻ}rHBUi7~4/֠BR&DVYWbĢq4iV+gCD,+.9Yn3YfnÃ7_GTlSζXɎZtKi=7w={I m]7wѥ+;bw<-!9VzJ6ވ= *ˤ;,YRqe\1-˨ 3hg~oW{+o&\cjg}G%.SE#KlkF.N%,1SE\e!O8r.Z2B57N&Q`VksMdY dMeah7&.acdo^unǝ`H*~Vw&Όpm4},hjSHF$rМebW c}[bXB|C^)a鞩 '/pZ(0uj/InwڬDqNI[4~TW%ɞEnߺa˄r`3G~ETBejpg\ż} h_N)h54fY{Ffs,QbWD*37W oIr%JNQE$>i>0tt1fg-e{h 'ϓYd8;nWEMtH kSuGcOE{:pDYUdWgD1.OKOIWgwVeJLd_m2z/KoK{ NrɔXgԙfHq-_`\&~zʍkrs4/Cn8 [DVz8숏[AZ/ > ӽZ שOrgmHNq^DC+93#>8DDD$nx̞0ݔ" [5O~Oy we:[mwA%>yQ⫽O2 t1TZnk9ӂ AADtADtA]A]AADWADWADWAAADtxε?ҹFAՖXbL}<탓,<Q[ZbC>+}b+LdI,Y'S'mp{(jZSzl<(_D@QelE.ۥI4+ꌍ :Qh"!p7x60}r~'#}>ʁm1 6?!!:#sߚ3qر.-ckq`\c*v*9"#&)2:vfKNyu>x긷3^1116ϧ[_d~-1NcjcrJ="ccY{v2Ku t w.A#\L%,,JeΌ~|V*ԅLz1i(']nG:U^^^g>Y{m sŊ β=(.Q?Ѽvċ'ઌq26z_})vp΄~w{z%Mҹh.\5:g$'= r j|4wMaNk,ú}r~yq6*h*2$ʺ#UR"5l~|ȗ4ή8¶J++#56Nin\Zzp"kt]q%7a/VV{TuhNMQ,ɲFVd(Ř 9' :ŧ.VT.C P8Qrtw~AUv ^_F/*&L XƲٹkzʤ&4?G_fّdnr#~/YOI([o9t_ZpF'bvS!,kaoB_BPf}1чe]i0GlD1yqO=D|`.fm4 lE]cf8‘?wfL ¿Iq'x*֤\Oyj,XrJ#XD# z0KlJݦ91OU99ky=EUi# ☇S&.+uGryqttjT7<и4l5~ vWGW|fL^U.f<-X=uc*~ 5-JP,(,p\1'7YE@?G5=m*X9a|~g*SLȑ;grnSx~:Qh.r^^$ʖ "0Xps%õe˷ ۰L6M{VZMN&qp+N&NC$Etbӝi3tϷfҽ )Mo sD<[9 M'3ojeJLd_2 ڥR˲M=)4A{kPτ?H7̹WoT̆) QnzBc^Ez1<<\V*H UtA$  + " " Y4r 8]Aqr 4q 2" " "    *O`# 5tKhh÷5{]7wѭc/2N~Ϲ.~A Yɀȕ l,\y btfx2D+XAxK8;Q6#6XX,HK-E5na[#9uafl\ =+;c[w|fǰ!BhoеZ֙wrza2#HeC.#(%On=հ/H╨ת}"nf̢S|ث8E .XsrØ/Ss)\ݗyYg0gPh:;fЗA\>̹b(/=ۙӣE]3IeDbz}J}Շ6驨븳+  >F0/GD!9Ɵ3Q]~',dWUZ8>==/ڬs|_)'e+zs$s!%Ltm)Be;o*6iD d2dj!g>}E{_go¼F5ƣWpUC{2b94:EQ2~50}P}]߯jC\9O ќf}9LJƁ^묚Q>'jWOC&Vx$]Tؖĺg T5_Sֻw3B.d 99訟mc#"oFyp7J3 3};/إ0S}95ST7 {V󸵜(˰?^Ӈ"!Uxx\Ʉw;9>+1TBiTwmf+&v+ɋ8HYc; MVv<,C6U)|7Ok=#QoIyΞ{iJpL*Kn,wHχ&ٞb0}16w|ӡUAp* LN] xNC,aJ &8_^i4lρ!\}XHN7C;W\LNRDZK5l^čN_Us? [KvT,O3\رekQN]eǮPB"DEJҜvL7G~Yq\(upNI}9`y7㐋Dgw)yrT&B&>EH$Ax7c<(6^KH  BSz@E," *̀@ދ:Tғ%9BBI|]3,fw5 *?+d>-.`{wtP_~hy"i2a1]ƽ2반.`0e0 & D`0Lt .`02 ]``0 & D`0Lt .7CMߦzzE7o'ahG*`/AY9XnR Q;+&~OF)8w:D?QzIG oeDvOQHK.OgML=> >n`o8j?gcsGg@+^`0 籂\;itĴ냑ƢO,0w>5[3J_mo?7<؂coG/!ڊ}ӿ>ӱu z]0ҫ-GGױ QCW}1C$|zGws'ȡ'g'6?X;}0Z{a͇ z7 1Šd;bI =H?w{Qq脈k[^DVxsn7꽸 fG#[>Gl Kn9b=y)`6G38.M"v2EÃ\WdQX?"]?aVF#ν0( Ctq$nCL_ ~\xh؄/@ٿ1&DR'J7Px !\ .oq)l[ ˣ'?È{t*l-tqbZ X{vǒWuP/F7pA$V{ 6!3">¼_vcNP(>CZ+vPk];qj˔ܸ&BvLAv.Qy"h7+aMOAEp^| މ52e0 -dŹB/4h[b8~4#va%w(8#Ձ:??Ɏ s|v5Û#P:_NXn꽘mF{_~mЬIm߻`|Fj!bDn9 !!8F0R4 3rӗM^p}hB~3{a%\g`=sZ-iB=AC 3r7{aS2UgHJʄο҇`of`,p (wbxDm}b(O.4A+Psם0 6ZIJlۋCӏ MX׾BlUqNĕN ƶp AAIht:4Q>H|-omXg#*7o,혡pPSEz&[r*OUܰ3]ErX52~: aPX."\Dž۠G'-F|CQQpxGhmJqF(?RkA?Jr.ڝ`n*&sZD AgPoIF-n-n hPâC0 niw&?xBHDyxF|Nt >kcuFOQE!ʹ k Lf5~Ctvd^UGTIG<h9ƘuU|*ܟ+q܋9FUoE?j8Ap% !2]nChC > vp1V/[$oQŎų ɟb d߅%ְ^-z1 lShfdF[ժ5!i.hsc+)Iعc8hs;#hݶ=ˎƠ['ᱥXO-ĵQ/ A0}=?ɗRq^l9g4DpGo Š3nw$t] ~^E;o_S }x|λrꔃXl݈cR[H3ɧ.J"(*V QUrj{nf˩0nكH2e< #,rMk*L_Ogz,1X5oQ$quh2chU8^gv0{Q;@|xW\t|*iHL4mhәҁo;@8N\]#m`0jT|yEq.bC.[L8 h\ݷV:}E)o*cbqu~}qoV .](sE%)*n"t]>)GԱzeZ^,-Cshy/gHl[@0 ƿmtm8܃ o؛QwT,i 1ꉞR3zuǖR6C?Dp9K F,wVݥXqHTqDfbqfLm$N{4,UﶻSڶ(~Hr}1Wll9=_wH..mE+~!"}IпG;8Z l9/UAk吖5lésWDlxCS( (>  ꆲ;&nrw-݀M&1iѭ0{qϊ.{_m&ߋb02K |X2Lt7rnT+%( MDQdSŀ!9x5d_b0e܂wqo]8 ]E,(rNB t]g}0 &;כaDks1UΣ:t]\#~>s_dއi]xݼ8iVUoUqrƫYli-p5_` ;u)0߿3ق1XO8ҧS#=2/7| :LE]=ݷ:DWt7<}kE]Xp484Ņs[ ½*Dd}_G Oώwߡ)ODO1gK >1¦ ׾AXLJxE<ܼ; _Kޅ[ h<]lV^jm{A;tǎG(yO-G c;Bǖo^k ~;lIJCZsS ʆQ۹u B EoqАy0`&%!30FF^~"ņب F: ^YN/,߻||QzG1+ m8;\"{9Er9闐IjНZZQQ_ql~S_`XِWZ@vxr (2U 5 7LA EN^^`01ES?YhQ/gP_ܗYz-& 1a!uTw^ FmIB ij >pIMB q];樾܌Ml_O,;< ƺxX1L{N_ƕ$\1V$j=ĩsvxa(>~sa`0~MHFfvj~t؟X@Ҹ]6 5FaT~| 9xW-㓵! ]61ѽ(L:,l4Mx 1'`p(Dt 8D0!Upi[ÊѳsAunjiM85£zĚJɛM‚)X7!uc&y5H^Z令[9zN^S;7G$&&Ta`o`"`0E2 ]``0-0 ]Eje͜ .`܏ /nll,KT6`0e0 & ``0Lt D`02 ;'a)b`iDx0QШPk4prAnxC !QK_hLU8 n9.Sw9K8Yw_[0LGu" צ/&O*2Z Θe0=8CB=كTصa+rD3-܉_>zxv] Z6 M:O# u8fq9:d_&דнa nV$ѝóc1La;@xvqO8ZmyUͩY+)Av[Oヸ:xdz4yֽ6q :q8JiSF=74D77ٟJFwwW8[q(o'[?<}a2 Nѣ)c0nS 8퍃V\Z5{bҷw0, qn G;;kf<>CuRBkpx}8y\ Yk($~k_sF5W < ~蚀ᾶ9d~|S|(ቧ@ȬggGcJ~ӯa]>/bhdx[^}p1ӜL$&kh߷80Fo#훡Y]oXw,0ç 61NGUq[k7"Wn9o`Qn9 !!8F0Rn'Jܸ,W]G@dkU=:66ÛK_ oESXptn4yx8&^z46H)<^}3"Qx~1/_'<6$?Oܺp ?-\qs016N~)t[n1$ARW1G& xd q,fiI'Ĺ:0II9s Z4.Cbc ; }7|.L $`L}(f*ѠI48It-V'Ë Q^9~ n*dQbe0y\?G.>¢g!%di0HB#(<8ZF9r 'KpH+}`7aFwUF-..˗/yf?nsyv'b6<秇mCr( j S@氞L =QUx?s/gW{xƂX; 9* 3,b#2`>?4E'b͆ƥ=px׎BHYBQ9^[—+vO+d<4]PT8O\OYcqoGsGs_ͫu tؽcǎwK"" ,F򉌄KjRx?MPKֵaktGW}%$DzJtp&?xBD}D)1a0:cYTx.G®b|T󄱞i643i:<+Wda$ Z㻐BseOg <eS1#!YHLxNbC: 6>E9gmC'%qrDMB1ۻ,B3^ \ј Δ|)BUr2 B$Brqzg4|ۿ722DYCQy,3]jhGg0$46-˲Ɗ브QtD.fA6D(Kem~n ڴKCJ*CL'ŝ#sm}4E..&˥8,"NRڢKt@W6$ly%\5 Yk! Ս+*h ſ2DB'~|l6ҁCy [ Ŝx9GRDSIK]%(*##zbHj y(j+iSޔ!xX <) v TmAA:B:ΐksǎj`nU>/:W[qdBY58Jo"$cH:&Pe4X k~8S*#5UrAC$-B ȮL*Dkۊ`x(3":?ZOW5-K\E~To'[Ɠ_l*R 4"qrJ4˰DtH)dPPϚͱSd)k :ĕ6A+*HD ?ˤm蒢*q4k(IL<mC&2ZL#d;Z* L!Ⳑ YIi'3ɤf1P:t;j+Q!1Lo(, /m +ƴ*"u[Q׏G9\"LF v%್y8n*ۆx`B Bkp&)RN pڅQ X)> x-dK^^-mY]Ay7Q'7L(mD Eԓɍ2XJ0ȉј$->6W5k'*.+΂ʗ;!ۄi W?,./Wn6[D2<`dtl' 7Xqd$=Gt8k2XzȚFA# GzV0ilJ&( 1CH`iSs:t<dp4 E=$xE.'E\@QU8" i:ܝk8Ug{}z TϮ}NMzZ"7|  ( @DBjP "c1Ƙ'DRsZCn#nQː9T0᫇FPe(DAEGC܌1c0M+h&j5^b0IRgD TUTD<$c1ƘjwmgҌQ6D|A}c1q2? ['Ҍ1cICQJ`(TEs|c1?-(FkD_1chUP9)}DW>%/'~j|ٳ}n~v[6c1s;jYz&g~kۻέ :ӇZ9ꜧ]9v31c#joQ=p ~_y?g?|7_p?w7#;6c1_"ţؓ㒟7ŧ;SSٱ?i/>[c1Ƙ3D]OOzO?޻0=7;_ٴo~-1{)c1ƘQN^%ѫ/z஭_xI{[~c;j1cINcZo6]oE >՞Yl?m1cUd>O}\z?׉+uW&&wSt:w|wV_'_}yc1Ƙ;È5;5~-4)3d>7Zw~/?yl1cA.bhoq XLk_}k>pQGkmܼ˿m|]z{WW??x]յ^O|~rc̙;Ss?s쾽;}D_QpdpUW}Ĝ;8'dӊ}wi-tzsuO,ηV=21gf^~eU-ϣzxa#CCCx;8D_a}b0=̇ӌ}C?% 0;?5؝:кGq6cjt_W[nx7~G?ַ(Woۯ㭷EQ p ]w 7կ^׻ַ{!o|7x;Χ=iι۷?~p˖-D?{FGG8}o޽{/.,O}S6mz;qj-[oV{^{şV??]XX&''^{sv=g>"7_~3acReD1:&=̇ӜG';3'wGo:v_vCU1?\s?~M7ݔ) 6|ӛ׽NUo}]s5/{˒$yߝ;z_򙙙뮻.{+_җtݺu_=3Mo>?/}7,"zի/x{++֭pO~^{//\p??{'`˖-W_}77''_\s5V/yuoꫯ~%/yIuϮ]//lʠ1Up/1F9pB["bYgv6ch1ƛoyll좋.G>k׮~o޼dY^g^vo 6Tܹ޵k??Ub]woo,cND_yNx 4 o{j O~}XG{*c~822R={Tw:^W;55`tttvvv$ιo.3tM/w:??ڲe>׾x;n[> 3y˷LMMmܸz{zzzvnO}S~i"aÆۿ=3ЫjaaaalDT=??ܩ~jj~ǒ$y{''Ry|`E;h6Wb}<6λZSF';ѷ\k4CCC)p9>|l6yUEmecͭ[sOnz+^133s-r-\r߿FuTeʚ5k ??3=&&&#ڵk'_y^x6CCC]tѳo͘Fwi}wdO~iQC_k6r.|ꁻn? 4z+^1::{_?==Cs#91?ŽyӪ/7 uwm۶:ggw//{3vm|߾ꪫ}sU <@l9k~ܳ>ٰcIŬ੻\ak߆u쌮{9剾^{K_nᘅ&|,d+8v/5t=s0w@otëp12)vv>3|dc1i[vK!_A#< woo?h1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c̏ O5c1Ƙ9~/c1|?X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+X3c9+J sҩNDd c1@:xG Adp3*TzHi1c1cE #DTU2 QrvӓBTYNVA\Cݒ1c̙:jWiPSU"Rոq"ؑ$GޤP9l@zQs Sxt>ZJ1sv;*UT PUh7xTJL*JKp/ @"B@9eҫʁUuPDR\AU|wQ6cF}JK#T {v=zxtx3kd 2QVxAHT@`"%DVio$Quvxw7:8I"Dw1c1ïՅD㊨]UU ,DtUioDdO/woMB WNHB^Pwڬ7׌O31996z|bPxe>Iw(F&!X*.._+L De""3(EzHN#qh1=tdVTyUEd9)[DمN4{HGppO`%Ĩ% ' W^P(Ub.DaY כ͡ѡfs|tl5VV׆PNzF( " D JDNDQEA*@ zda91mBYF4cjhV5.*U,ͪսGʬm֓%!@xjQF!!բr,Iz4BEuLcNSQ g-}!!riHhXK/-npQ2vZ},3T2FU9u̢0tdaP;6##Fnbb1c1'(U1O4JDz'*L||eZρ:_DqAqIpCBѧI!pK "G$Kx 1+z$ $D@HI&vղzxv}a}޳㡉6MmW{vg縌sɉLdrdtщᄼC5P@,"RV9JPx5YQ! *`(U*qw&cnth1Ɯm<ҘTv9A#ZȽ bA\R\*:W92(;'FQU q EcT b$vY~8'M7v>X׬Y851sHűu׿>P@ZD) QS&&4׬['G&GR$g'IzϞYԳ: "Tyd@D 2Yd}qv-8Q'i1c4OtiIHQ1,_U5{~|oD<&UTeG<*egHE *(+#`D44Hx.eNU5FQ$ry<1}p5||!{N<9b'$M{U}=%ﻝ~JJ@ӄ>ⷶsߍyGPVFj\RK}p5jГ/xÆ Sz5 szU%`yaeʴbT:^U:әxmc.-%j QVLnPs17+S#"a(Cuv*tJ\DD0,Eس5JDPL` M!qTT,J"<!JWݻwsڇ`q5Z`ޘuz}0J!mܸqjj*sGi]<C9=3OUSs 5w4c2H:RŚweرw"q Ab}|.,RRϲzճl5pI=KFFG'&>Y56>R5[CP+c5%'@ 꼞8B8D$uv[ZDJG1O>xd.1cNniuD2!F˳KN*]<BBzUJJn0PU ."'!cFKѨJs,i!J>U FRJ7 FTCDU[)F`7? 1~/iFHu/Luz{CY (YRԑN[x`jzp`R4YvsUɍW,r}6Z6!eѲhu:"U7ݻy78r{eQs`O-54vv{b~j[YU)p5:4ɜk$3g<;V0@pQUV5j.ϾRA:SUzFpTJ4c~dj+WlT3`7Ƹj*Ր1}VFHN0q.ADŤqR䘃s>JIOVȂO% MtwDC [j4D`S48P~O=<2Ai^k_:wtRZbᾩCkݸ}Nxy1Tɵd IDATiN(Ccyhn&"FJ%fҀ.^Q ^kZmVi5I ,Hz)(H\}D6أjK+,oB ʼn9cyB٥jԇUUZ‘U#O6/HDT;d1 `aa!˲"+B( xs!( RM$Fh M4(HUCeBX&(դz:D\mU&$UPs2\Cpelj$BC J]1/N.yS}OX{ZvӞ󁇺 $Qg~m7z5IPG#F8̈ D p$9Bݻ/zNϸ*Tc֪,5u.9`ùe)O<#sӇCod[$I""AAĀ:BL E!"$1q\2T"e)rH" %GΓwy:|xv_y˜w`͋׬#ydݺw:sE;16:T7ji-IFjFT4FvNſO^ yXιv[Q '`x 9(/o(K Ĺ(IR)b18EIT);woc%8.wA3.{zu7s]p߽zsEǤ$Q7-z 1;1D9vblCX ) b~aᐫpBxpC3M@MOONNN-BQtBQ(H4F |8B_wNeYhP"E(UCĒ`"F2NTC/ϒTJ;Dx,< %>mSY7B 3v;$Γ2Ymhaq>,s7]EN,zZ2'uV[=>Z-m&jZZJ[!՗)  'xy11<*W~׉JuG;hW r=V|^1|  E[3w" C  Q Xjj`VD`c+Ωw hГ%0h#v*%vN E%BQB(Qc"Ր7DJJW vf~ǽIyxn(5ku:=RuV B<׳Z,I5F-|`Eji1V *P{ER&_K$e) u(DYU3sR饺`$3!y8usL 9UP4s%F)B ^@ʞS4jM8Dv7Wڝk>K]ZQyι6 լ^bɤΑHTckY|!v:OLlۿuwmsn{;k5Cf9tZ:0)AB*%4T-B *HT$FjwUB*#˜EZ7u_]oisP -1(p򫿾ɖr , cbY$[}h Pm:F":c7F~,cΪD0`F4ABCcyO1JU{] Ui"/c,bI bǟ:r%NS2tׯ{JЏ в(v7t{ T罼}d;TBy#s}{atthiJRdLfeY4fQ˒F=kԳz-c$Ib(#!TU\5{ay >BiG*jSDmۧ 9b1(ľjjIr[ ˣJ5/tb߮* T d`@bBL >i6;e&1cE3GYQU LAL$ ТTKFTbd5Ac$@8ve9V ^x(TD*jMD4@CFmV%K.Qnk6!%\5QJ ACwT뵺AEM3H|^_\\ P|Pw͊jm*72`f De(Gn,u F *,,*V(Q*1ƚsCY;Ǡzi*4A(f^%xj$ P^П+{ $5>6I##Y}u}|1rp`2PP"B{ȋ~a9ox|^tL>؆uL)n!$]=e}N{FF.@LOܽLZ[S{#I*z{znYh4|E;Leiٙ$Ef,ZJD}Q׆Z4Z6:Ҫ>j֛Z-,}&19jt(rߡ:Zo(s0b)*)AtrhGZFe٨7cY}_Gf"dCQz_wZZYMC|| YZAth| i]3isMt{[o߰nEVλ(%G&r*$@\ޮ:ذaC,v5IdYVXpTM" oϪX^ZR}f_g8v1,#ĐՒP-b`"YbeJ!I$1Ѡ@5Few88֪sj3UQ%` 2]Uw_ ]j8| cowOhzL k1懈_ʑAأߠwG~3D.IB,4Y|D sy&D,Q:Bj9sμ"B>MTEHX GDeD]X.jgEXxnF֨/C{wFG'x]=RX֨b"Q}2Qch𶻾]t;IE<8=:G*et0̑UQQO'FWMMϬ=}iZ{}<11$Q4[^W/yRb#ZUsT8=.jkTyiXgs%JQFI@bwQ!E΁$BT#b,Ш5IAi"#s,;9e3,%|CMJI8 "2#V+$E o_)[zՆbO*1,W8調QJLʲ^~TQvh6zYUCQeY^fI"̵WfYV}~\EG!/"Wz=;RXf ʢpγCw~Ņ/C^\I^r!ȊB@ᱬ$H ,;e0E֗\WItwz(2h0+qcR>/3S=Ж6c̩ 2G;8Y\#<^$Q %'4,o+2nW-AU;Q'$2*;318pȽ*1"ƤC*4 \yqntltq.DP IkxdݦMo}.:oӃvYCj~] r_nK.?>2>x'D%r[yė290C)qEvceLP:r.˲~QjWɳ/QŎg0^_#3"2=; 1KnJŧ`f>Hd -Hi;sWu8좈s!^+(RQ꼺H3'h,wGGٓz_4u$,E5Js#y'#ތ4 *P{7Aħ~_.Næxh{/p o}{sׇP:8j5v8R.Y:QcbղFlN$I|ʜ<1% r&& ɯ @9'`P`iDqĸb[gas68?b"!UA= cn<}+uWD @D$!9bj;5j̋A/Q*cH|0#J$uDbO(Į*e V&H$5v:P %;BT917?jtLBܱgU?u<=|xl nB>]3f1DA!HZ'B9й֯;_-ȱQW/,03F _c0(e I@@YO 9f,QK^7c|ڍ%g%cu;,IAv͚]{D޻2F8'|fI-B=I"g45*2PrJYJMk[56ٽ(S ^,=I^/F|"g$وyS^B,%4aÆv{.MSf'LA4I\$I/g{H"z^K<,zn#"rAB5UrIC>C ɢ(^۞}y$pOb.H..E`Qz*U<*x[78HTQ(j}>;cl/=[N i&ˡ/Fպ⎁CaCY˳Ӌ5A-Vr?PI G.JNP݉q򲙬pf BսN:M?}Wb{n~x;B+{+>3;!rE_ThJW%-fE _1^)íz$2 q:,\TNv6$a4ͽZw+ĩ02d&dhG_ME?S?;ٰ͌!A!u.z(U I0?7`ZL`fHx-3@#Dywv1:ژ|UܱB@T 63L_p P ""Dbbbd )9`mu%6vP/ۺ rwXϟ~65 YBS6Gsd c.0?o~}ݷ㏾V}գϋ0qMU y ՙ͛7=_ӧovst|6 Y\u s=o[\T׵]\\rs1H("Itxx#"ҳ2ϧ0 !"ΚV1nSl]ߥV{x2SUETU}\ 1Hm*yd./^J6*Κ޲j݋@ yqwڲp nkkµMe trzRٹ`%9 c9)ݨ_=|޺=amGh"ffY_(ՍY;Ј4q֐G*AMA'4Ȇv=8/u-Ch/R¯q}+Sz1 )戯 ;{9p=Cˀ/2Lu>0 410ZӢ`j8~mS "@L 1"Ts cD%{Ņ{q@ MD NI YQ(^[oyOe}q k=yw3 IDATnn-z_|9Юg PET7'@ /v}*R!0󡇺89a13igO/O޺ufapk i D"! 9TeK"H$,HET"!da ^Xx/6w5eWɝaPo.B<i" OϺCǟ~ɃvnϺutcv fu󍷿ywSs,2޻~ɾn7nmvÛWGO?[u6wޫ"C26M6rÙ@6"q/nŅܦ=Q])%!2"LQ{e69PP*fYV̜S / Vtjy- 99ucbTEr)$bmCΙxS5uv׏UmǼ?~rT1JMDa;F$xX-]_<#ʪ.Ųf5qppvvg]ݲۙ'VR7Ӄ\C5&T;OCgͣ[#svzͺY>j"i1B b40b&`H8=h_l#HޛMN@n?[Wu/ko_}y焽ο ` ص^hG p5@31p3z:uaZ4qDfTMMwKf$w׶PtGRm7W[iZȯJqD@f& M7ӂ穀/?|HUmH㳯X>87zٰ\Ւ8y89MӍ׶/9;9Iۤx>/U %4u-@"9'ձ! V \'Q`y &ȪVʬn‚Lw{ߪv%?|hL8k;tӞh3_]nƓ̳ټHc? DcNI(Q?,?-v3h޼[CNsѿ?7guz6TWGw"N0@u8 ̰9g5Pm58Ls '.!MmRJtDr=6bH8=30kQ Z,*a@Sz@>0DU%ACݘjQmN9WwPJiԴfsv *hAvkDjfuJPg9[S JrvQ wibn`sb}f_}jidUhvq祈6$I/4:Ȅaiq4_]|e\-AhfI5PDDCĩl0u%&wuUpחSp;<^(W ˶kkÊ6C$Fd@ή hX)$rÉ0$@4sRw` R  P8)kfqWdh`lVP(jkwv$G2ލ2l:ed9!BM,9ؒ<%tSe;>xX3BPw&RT-tj2iɁ!(բg'өV_UZF0ޜ- Q dGL @@@e@DCp+LdUE堞%/iw%~әťᇟ}zc]S +)A.M !;umV`{{{7n[~Y7.g[dtU8FDVݮ tl6[xd$v(H1.ヽ"E )~w{JVBb2|덻]7zX,j@,W(%+ -˳ݐWm=[cwuK_\دwqjY؛aM.%qvuPU`7qVM_'ͣ5tlf[ Zw'ȂY)S*M˵r|)ͮP͛M^Jjc=bhɌ'Ppɼ ^8ËD&`:Kxoq/կIkkѾw19T.P n%笮u/ tѠ0"D8Hq`fD4ŬwgӶmwfU&CsBf\Bw5}{('#\W`v3(%h9~TWT !maPU{}oϾ]ӏXBKSJdy sGa@` HHh?7w]7v# _mF8s<@cȪMUDCHADV)!$)ZԈ̂J A+U\8q_O% .uo|? 'U?1 crG<u"2k|ծ7s]FyכGO/{f:ޜ{۬g//?9<8\_n荣u]373 b^Pf)ȐfbK3e\j]DTJ麎CFLBFD0l6:TpZЋeq 7Mrߓm֧Ɠ&P'3sOBkxr޷^RY(ۋHw%mgwyOO fU,{43pw+$Pm[Y`n"H"1gm[סU =8WljV4ul:8\^yDw~B\,Ϯ $,&856R8Қ4%HN,H`:)$r'/foGd53ss SX "ԥ',n]}߻j!ibޛߘ5͏?~}*nLU)Z<\weo~~d}bi0tltxy;EQ:VfYePlv}0 ۺϏV;b] $GG㮳KC5T1Ʊﷻ@1C"a\L%^\8?kQ:D*Ί+Dz@$c@GG09H rW䖬RjH%Q-3h !pzYYpݴ% $ H's'vWx ~=t8-:q~4DGCD5_ `teEDz=AFL0DG$aS6U;˕N dr%pF9"RJi∖(:a 4ĂdHuT /\k07̘SJRŷoypvr|r灈e vUՄɊ Wgl 8T ٧lǧO|u[WR07aݷ͛7\i22GKV3.λ%0 >-(Pݺugj;ѭǏ;w%8 K eYaDp7S&b%07tr[d1:5eIЌ>F"$ [/.`4)brɠ"bZ"9YZ c .Ze,cwPqXc ^ 3CE!X kBTps2 Ft /Jg|e/<ٵ>h 'j_5^KiZ+0Yv){HhɻNF5 (8Q]Y)D̍D $z~1f(dBTusaWwKc oӏ~g^fv1X)x-B4pd=X#֕u t ,":$İ p|q$NHf>[n޺񧟧k7g q_L* #VAhΛ)>q3A%"F ܏ao.//ֻ?zPMB"`bDjB,6:mUa4h/#vdu":z}ba׉^Im_w_NWי+f E׌5^c¿I5W?B1SC3l(D! ;@`ē8K7Լ(U9 #0HƉGUtq0R'V-X7bY2W9KSsT TݻӔ/Fs;go'y ,!]$LfE..>vgO$v5A`w "c"J{gQhxy~s1sbn&A![~=ٮv 4"3k)!޹q':9[#yVU34'w@" Dti:}VMޝ?=wB=\lYƂ`jh GGO?ˏٳ|wnJ7F|!ݸ]oΓ'OϏUX~߼rL;6MUU<926eOWNp(=?;m䒐ۦ%IKDm۾}+I!"UՐ_):;23"1=$  D ]wf:??uEJFhyӱjEN%cln(='{OSc=Ƀ>)# Cc}]&-vl,!{ou<,+$7tfٌԯfX"8Z1PCaas̲5ALT VUtY(U媪J)iQ8,SwsS5QL\.CӧHJ2EaLnDN4Mt"42V?Tټ}p+ˡ냳ӿ6}GbZPg!#/UlnfUU]h>O.Bݛw͍@ J%u:w~GUUݸqK^ ;RJPUUJRuEMEd2 ! ̂2 ,0gUV4y)=入Mws+UE}5h9??S6gqX<{bŔJɶ\{XmU&h*wTYr$q9vڪqLOiC.PG $U 53|Oa@}v:u{MlalXVry~\H I <_\mHi(EYc6]u·n-~t]@8_m8QDLZ=5fA1".H8}Άa:4 fIrVAUEqd7΁Db 4͂NXr@0M)T*egԺb7@@r $ nD SM(KQ"23@'Ff^ !NAwgn'F~MT@Xز;ዘ"~]B"Dg2r7v tDHΤx_r_z_|?O7O^x8-;/>eKN E;t\M.0)"8+_S#ߢk.빢#=_ۓqmp9B6b4`+/:@D4퇈"hEAxV`rpȅB)M"9:V- Da (EPLb)hjöāJdy@@XYŒj_wgM҂XJAb dv)hW!To86|4oV#ΝBvv>ӪynCIi4\4,fZLC>>;یKU9ãгiT 'BBfUE*EUE .D ,sfEK]iѭ*Yr w!wlskƗ_>ȃ>zw]˘?Ǯx/ uY22`g'#!?crrˁ UUϚy7a d %J h^G Tzs΢P\ :BEKg}r!*9M/*.H@D41N"2S AU%ȔY81?5 "TCO7Us1Ϧ O#-W{CvWe-ISXb=8][bI]T!5ﻔa5gKѪC&$.crS47m;cy>_ vVPRaJɠ(s涚K) c^w"n׳pےު/Ԭ8JX/}I6nZuQ]wL\21èj1"R5Ut/)nH!{ Ue0&" k!Bp`DҢn)ʄ}Z3,Ű5M$ו#⭹^{7M$!9L&3i$}/OEݵf-"/ Edcۭ2{"܏{9P0@*В}`+ޟ$o''DbswkW&(b|ID_ DLdFaMffXBDW  ,XVxe_D\?C^}./KX?#Z=3]eIJQd\ h!(]g b @ ww Oo77F 4XW߽7[¾^QeVn} T(#ߛn_DD  bs !1:: ьTmZ|kjn"Q.i<$aq3!$-N3!޺q_o( :Frbd&@,YR,$l(on<_̩Ĝr)jWq`jǒ7bZ@Ϛ٫~i;/ Dsa9k~uzz֝ X,՗_"BQ5$sG.DvGu۶i'!3 I@P aⲛNl3U 4mBw]dw@z#Oi311@10FzwNN)*.6)D\|p>E;_"8]l؆.tMwXL@t`AML&33bruZ|yLchk7EEjt]HbʄՅk˖3S5#) /˯]]́ɰ&MWWg:Y]]!Y ofvAblDZ3+B*u\mm3phrIVܽλ~ lچ7 8Lsa2tna2mݠdE$PJBÃp(Ta h9Wã͊9b1sV0l?X,.Vm̨g@XrhJ}fؘ9:ZDsGb*%YILҦ1y{t7alA ]  4dy'S;-9RnC @DӴ~3 "]%zE\KFLn$T}j38Vi@! &$j& #Ha'HR >m8Wp%ˬIl, Z_嗼B_Qο_w_^p%y݉'>Fd#@f0P^/#@C&„4YV1v_?zzG(Nl4fX"ryyͦݤHLn>2!#nH{1\Rf\.L)ưC)H NKj˘6W+t|HML)|t2OZ0Ƙ㧏RO& tᦨqdHCD'1bXvYAjnj(-:Y311  eۏ]+D5ӗ_àӧ m E۶Aۋ̹m'd7&^]"I`an/~iif803"HCh*pz0wNAPrU5SšPy3"#o6@+3)L4XTvm[T9! "f,f.Hw; gu7'F!"{VT4z@Ae 莹$HV"rh9b#Sa ܉BP5^ER7*/N^ epl|V<4FZv$C`mn1k+P\A DVhJETlzG( h@2gaE f$T.@`n FHUDDOu{~3_2v|;oU'HHFT^16t: J82??;O?>'efI['%01db*9{AOdϞeNe[_={H3HqMj=L<@۪k\ Q6򋓓"Y&Tr9wKRw~>7o]^=~#".vM:07 ,wo朦ɘS5քc LHtyMqasn4]U3,bDUB`^ѮR7t&PPs4EU2w7t7LIB jfDJQuʪ[f7Ef7F ɵJU&`fV!f(3˻tml0UVAnN7d8 kƷ35(k^ XQ ]\M 0!؀BsO*REh.$"2P` - G`A ZSFzu Y c~ώ"[wNd8j}^|!Kq>hЂ@1 پ ,"*Ct@&4XwDj ZKX՗Qf{Qw5q(B0DP= Wԉ(2ny~uyzՂY.޹wS rpd9<;8Bt ,VH~'w̎.V|O>̹+]ԜƴN8EORAՆ7c)䜁D/=mJJvEd"gb  čHUs! O\a[IKmƲ/o^m.FW7eۭn wfr2upTORB $&9b݊Y a̷clON|8Z.6FCBRrfDάBh_O)TVMsEqc;Aҫf׏#f3 !6M)e^_\]nEsN9BZEM\X8:xaDEk5 WjjI 8΂L~,@*G7n?{ Wg,27Mm6kӐDdq歒Mܻz*eAn f}KK\2:P˪< mw~w9!IƶmvbЧqLLHfV GRr;2NsgQqvSSCn2/:C&ƒ 覚LlVT3B1f>NqD$&=7spWp""b"Bv "2w4 >`mS1:F6GU off 'pE{qHWNVunms@澯;0ZmӂLBda& Pk R5hg 9#{GMw뎈ܟHj,ZM'̀@H6FtLרd0P0G `E &!㲒sO?-ؼ(z,]<GY|dWOi^=*?ҥC]̐2CFTؗη+nDN!g-jԀ0$sqCW$swl"ynѹ};[ǶmMefV͖H86IhJJ ݅!:1{ !'ӫuFii5"B̦gO;嫗3 "cʓ'[O_޽wɳw⓻w~k LN ;7>>=y2W'}Wv8@.yIf1Nnydڴ CL`} 9PiZ㨛U*a*c!yjL'hLjz,9 ""T0 -2mɯF$ͷnz;iN觃'3X+/+nfɟYpՐ;'Ts2Q˶#Gry:i'm۩$LC?=>yDXjMc#AsWumg`u]mG{Ӌ{od Xb9gASgNܽs||EJ.) md̵%_w0DIcAǜ: wsGvn M%f%ZYmvYa36x2LlO/9A: !RTͭh;ix0;ǒ n:blF|;y8M@ŲLmmN X4DǔSnIcl./&pjt~G$qv1_!etWM$]`Z !0d:qCvuQ9f'o],hWcB %svll[DO|XlaJ˩#:I֘X\XY1°8! D hui{fN d">3yVA,WaUw7EPh}`H^+L]ePXQVQy5D$^)k2 Ixv>G|seຆ o8utP=bh\ jZjQFՃ! !1>ڧ;^g {j3Ck!0Tj|oW t 7-PD1 9 0v-({(S@dk DБ.PiJB$&붆\A uctW4#sicI *ptGaRt b1#"pvb +P;??cIO] ٝPxy@d IDAT/~~>!?hpãa_>?l9&n? !̑84wq2emƭ|v/px/?x ȅ͋Y0զATlYi&6Lf/$Up訜g՚ڠnZr&]jQM ɥ ZJl{'mw_>+c:9:g';.&boo;goݻwAEQ.W<pLZ|v)''OB6X880<_@8]yt(* MܹY5M;(kk;`1zSCӒef.jMPfovsv!*fX|s;mӨ%i a&!`pL}7m=(dygH L\rQsUcVH4 ԉ@US("G76#M~aavl%)T}L݋j)N{SHd1i#2:W?D2woB݀j j.XE TkjU3,s$`$GG*UӂH)3.nfU],̀TO+چi[P{ {*.+4Kp(pv"r%B$ Q$ `@X3M s*w'O# "!`7K`Ry="Mz'_*xDjI脄N`F`I@8Nna:a_1{cFw3>Ys.E)A +vɼ&"7˴ Tkj(oo'$LDV\f_NELETs $L{F` &,7nܸ{?g޻>>{=f??W+Fyp8l6A?ɗe~awӳ'ɝ]^L\KvGO [dNĂģ,Y4 sIsZΗ?}Kv.6%gpWSBhۖnڏ#"߄%0 cN a&&9`-#0Ų7yY.秠b/N{/^mcy BIץ8:-sɈdxx~y:icJŧLUc$ "Qb}\jQ16!.@Bb7#QuL>݆a BJ.$D/Zu#4ϗ8\br$-%w- ;Sa+8|uNOWu?lUP{<M;/<s w$,XYClëQҰ1@l10lI3$x \ǔL$0G4bf Z4]d%a؉HuKMa6܁clrݤ-jvCFDfWӨ, !(fnZ2i txZݩg}2sX+.oU2B pTȱ}C^Q2!"䜙 B"4*>a MA85sv:WkjXNuLT$0 [D(c$ WZ\#˲NעZCdiܲ_'ܼ9}xR>GOk$[xDB"b{__sXiМV KbB"RKP"3 X^]K݀m}=n ^XC9_oMb{:f;{!7߿ Lg \7saD9jN$nWڢUc=_a{340 k))G{7o{# I+q6ۗ0\-09v{>q`![O?=ID2Wj~x~_I1MeNO?h.c6>{<{qV0s>qݬ?>4w"9wqR44$jCum˗hRT58fB #Ű A`&0F6Btm`d& „Ei5+n%ϧggNMAݭfqλf3lvi֍!HNvd ];5'OsI357]yjǟ맯oyiO|{i&^|wvC߯6~>jF;ZC7_7}'\ l<@Fq[,ffAlwi(PrvbyFB4Z2M/OgM nDZذW[_6mNO/vTy2o]@׊ ( 6&ۣkBRerl_NRoȃpY=s3c@s 3zڋKꝆ̌J|jĪ0R,\@j^.TTM`=/{q^iJPpqx4ir*osn-WϞ\e<339EItZL&nK\DBm'N\жqS/.yH$z^]]s)Zp@h] /e m6LdZ%|!GifC؇42 dØ4<*hܷKιda{nW*@b{@Me،0߹w|Ƕ]8lo,/^":ك(0 H8 eU"C39B RFhcJa7YaJypxtǭkLDaXB 9Ʈ;x}~J)UJ&`?7϶+'{Iĺȯn 0rB1ɫ @I Sڪ ]Lܚt>[ACf,DluUU!d>0$F6faҸ?w4wBc14KownֻGwnNIhJ 9;:k kټ wVKPԏ~6gS3[L-~=sٜU  Q BnypJsT:"wlJр],&+7];ĩ{|R7N/_Ǐ{?\w~|V!?Ƀw?mFc$4i?0{\.M׋P P$E&VT!VG۔E(|i$wyލӴhbq}sf@LEM]Y89=[:n`8'$jUgѦZ}]UC?ŜwLC0nbS0qF0$8nђ*n^#Z*-fZt(%f L9+l$jb$UE #|BC"*lI42P"{/DHL4-j_q; DPlHt/w#3aP6pJ3VZj1s$09KHV*to.&\6n\"LLr6@iΨA3D 2aJ>7=~hn'Qۙvn_)T;ɫ1gPHD=Ug"*yQUo{U ~\. Q$rB?g?>M ??w>,WW)UOl-71memwݾ&oηO=_BkO IDAT9A(ޙvh2WwVnRW4 6_?zRS|x|=MR`V\k3`f U`Ĉ TπLЄT&wtppڌdq|sE&Sj7 0I4SQ0h] 419.?~~XV3V$g_bGM'Fz][WCꮻ{zՓjGGG4 mW &Q̲Ei[ǜEnry2Q`wqqU__o^Ʊ Ut>IzYy:w裏ᑙi2,`4 C[!*hvkI0"71JUw"T|05]obw0+T@p'6b߹} iqM[4Mr`b5ǔᏯ.,KcӘ,%1C[\i]@&g6~{ӏM1*3X*% F-Ms+P_XEԼ%x{.1&NUglr.Ivc̒D؅j$)+NL(bV,(BDf(>20QYJDf\v^ކsZ2͔<[ i,)H@+-$D3 $Dl90A2Dpc""*Z,K 3(SOpYʘE>4)Nhݻe ԰䧨&3#@4ҥhbLCHYA"|h{y ""f&*T͘  KO10aIuFST g=21_2q+1W(,m,XɠQF,ȋߍ}ƾ7n@, $KL 1UPع!N|m`$T{O=yվnEӝNӤ/ƛO8TO^~?|a_:_}ŏ>~::|yMh@<fJ0Ϟ><8ܬ}ݘX.R"gfMmV*T SLʄއid-UB9 C}ë:8s8n!$8P6ftƔ|fSՋc5|RRzq\p|fkC$RQfsU#31Bg384#;¹mߊ D kl[EvhD6HDh3Lf,sYa&0r0$-Z%5f,3װ'f[ykY2ǘVh8Bf\mA׸"GgE#;E1gT i/$;6y@#s P62Pj܏ߌ11j[! sLC<aR eC4 O~g3U+mzc?r#xu>s9W@8\T-I 50ӹqOъ("<0s.K:cDTU3F#O]0JjΪPUUිBb}'/^uo~ӓgdwp)}dϟ^\ao\mPy1o.\n;#:b3H"YdB:{v UwxΝ׈q}Xk~u>>z?Nxtvu>nwzttt4yU4SVͶG68 $Y<4E_o.ިI{k0C8sr\U'_P/V D!),H 읩2bm!sqQsT^Isp!!J6 4|:N1 ;ªEIST c+KY3h"o^uni@ uhNV'wvH#wpc&" Mxѣ|M}1u؆o_ͫ׫0@~5i q޻bh۷?+(c'Y}vcon;ZD߬/E6u8,%1%.ba ur9+☍HȞSLȹ\H9ze^_)?c ޲&EN 9>*3R+!c`^F"D \34vC$)Gu[˸UiEQ1s1dy?y3UUUu՝yejXPge9jRvl(bab"YrF~뺅> huϐѾrrx`LȪE@4;ǦF̤PGD\`:rVY*Nȩ!`۴D(ˉ1αώ4pF(RxL%|9BBpށ3!0bBF"Dgwd@ fEVp8λVy3asV5"\)!샵g|Z|3"w PBw(P|Zڬ~KяfJ6ȴ| {>\L9yL~Oڵ;?o} |1 fLX!)RBQ(kA1ރ^>+x i _nu(xr93%: 9,5+$&D]\NfϜ*|ck^.7^/0|xlmS? G~կ[UY7O~{W}6)@%rAv~{b)?~D3H5{c#qzȉ<̑ X14eu H4333U  ɀp^S *@-\:"8rJ/FEj؅[Eכ;w^_(XQ2Nxn$qLP1g}n'G:zBpr@Q ][=A]|s$?XfzMѣU!v]%"Cre iRr8 ޼ݮߥڪNd r-5u=Nӳs:xۦmOPptxx|tKG/žl?2G\~틡?$IPr,INn~+b0pDѫ7oۯ=;jҴZ,Ljx.@]18̾aw Ckq4N(ZKiL5]8ꜯPڱCDS@"bO89 {BW w:W@e_E.Vc gLNf%=挓۱{f`P3eff&{tYRhjENTJ< Vʈ} 戈e+ezV=^gQ#0+)guu軱w,"_9On_< T*YҺF ,Es|s^E`*]:j`{ /rmDfrBy5L -64j^t˦4LIfhǸ|v|gMɧ_'_m=v7 Dxzvom 2dCbjJΝ>{jfЏ]ל=<{{u5L\S@Q䃓%0aY՘0ylVd@I<=0DH%w*wr> wUS1u;ʣF2$5B@fGjdb,1T- De79&f{US4EMj*cl B8-ow *-V?fHq:\۷!Bu/__]~䛬"[={w*P -) qG_WbUsm:GM۶;>:؁bPo..]__7n |uUU>xDcl6(4α E2+VIeȒU*q)4 SJr5uSk]ߏq\Tm6M5U e!hNdGw7HV7d@lfv[ܬxmXTc"T#7뭨Iѓ!HS\JK12!0餆U<&A۵qq\.+ĜUخ/^HARӬ*ŅH;4@rU,)ue Wm+3%d.+N5Z!"}*Ka,Ȗ4U/`^)%&SA4_tF wC[(ZŀL{=h/;p,2Rrf@%4a&)d)7SKUC`GeJ+ |:3nZ0} F{O1QϛYqv+VΌ*"XIc2nO3j3'=ֺ?" Y߯Hf}wnU1 @e?ȡYަg4vߍ}͸:^jtޓ(b1EVR{inqzgX/ DLJ0!-H}zWbW/&˥Txq4LSgwޮn&F&닭|@O>7?; '߿xJHrNjC{(f)kn2iPT17k-Nl̾i"ɹn]%ihR! 86Kh]}XCNb%Z;缯+WMK]U49> 23eR5!Дc*I#:'dĴw~=!gd013c˪w|w15ɆNa0aP &"fdb4iQcSÇiZ-u{Ww7aj8ƞd15V!,z-WⓏ?:9:ДS΄Yz}}(*Cq[HD'Gw8 "y`y 3/6=cbξ 9Mșz\cj޹6u%7rPόV̘2D)F$|ٿ4"Gd'wwSMޭC)rbB=H N>u{z`unݐv78N>o/7CC`۬ںܬ9o0z-D IDAT1I"ޗbC>z}]!)R(1vMr }Mc$fǸZ,#3s_TVh* ; u˻n:#$f/VU̾im;K)a >hj@dS?`HVDg,:3%,B$D/Db[PF$q0LI.hETM^B!I:s4;j4&@C" 2M. (E`$Ǖ:b.$1'b&_Sb Yq.53)3dqi aTx#@,Zv'լ#8dKv>#۫ E}i| SGV{Z @Q"οP\0ۢCΎ@H?]=H ZcVJHA̲@|B]H.ԭmi6 !8_h@TŰ'r7f2B6@$jC駟 .uLzZ0._/?ly8~? al5O9M N MJr4`&S4j}{?"Q  ^`ss9:vЇ@`α+\DBQEBpDGuhZp̋6J4]h%C` 9g"bt$BK5*8X*(QuiwҶUv** }UnnR8\}8ǶЯ~;ǫN44AN@$WΛ~훚sw ]SbA?W${ ~؅ZI254 bfxXZ6_Y{%@PrYcFY[rxf.`37I0sle4T d|[< 2Dg8j.!9Sě_[[ðWv7TtH:oF-{S=&z P`W_w'Y LD }Fs2(l⦮8Xr)7Eg0KP-lLa]RJH\WHrN .Von\VPy2ÝAݍ1)`Y[}G{~-kW=<Ϟ;Zowo./K9TI̲Hᣏ_^]da?ެ~W1}5닋럿zJRGj?Oer@䈛*0``>w,8P}tzo85fH9 )/ 1e5+Yj50nJI%jFHSF3(yr3Xq9)f,9ő*@fded*`9+_|xzٜ:^|Z`16+WF}UMh]-e?>88,ZuHȎyQRIH\rNGGmu]7fSnKY|pf6cU>f4M-$gBs 8>1"RUUK2%̑"uԔ"M;x|&e4Mc4WD4-vi@vmt 4|'͵'Why|pmRd^5$qaX8L$!ƛ^,Gm̩Td8LTtݵ]5 YR.9'E#Qq)fiJn^Ř}%Ô5Nz׵XMU!Ȅܯ_0&I՘|?N.Řx_r>pR2PDH˥rq&.}FD% HpB؇7r@ŹH T9 UnB*^Jf%^b:rg,"v%Mͨک2#:g"'bbF #ozh6 ] DF4@T8 S``S  ""Ts !" Ü3g/+BYw$!"}Q2"YSTp=>YRTK`iyJgm|=Bw:߾e .bjzK`*~{9)myGg`f_u'߽xPi:8o~՗U_E +_v5z==}޿%׹ UI7uߎb Io6w 2Lᐓz:tUϝ, 0ȍL}KO}f}ҼnSl::T)':;;!x朧Tf)6M fc>CU9\o7|T3`>Ǐǧ9{$(Ew4nCgp[N9OHjY3;jدXUDj& l1Ub]59&4dT5 B[̵M_ȖbLUU!^؍\RyfL"0!eγ "YSU HjRInׅ#@|xt}{-O.qkjb ;V%/C*`ʌLh_h$ҹIW`ԤAT%hyPzy"xt"va"cDPS"c$!~‡ekQ&$&fTh{޿)LATdT,YĹScрaט:|u 8|D:3 D5UPf<  r%-5> Ja 3) =iߒE~1vԎgϯ.bSEBQ=V1'I lHC]I-SP"Rk"A8"x`2]>8C9"?:8\˪g[Bs^//޽lw?zxOoكn\Ɣj]>{&TsPVADSubZ 2qtw Ъjj-!BM-*fP͝WT]]+тGO7jm#1 q$ &@]Gu4#BUc* $rǍ$Y&M!BRȈb!x2v]; 4ɳǗgm}}~zmv}|Rr0-P%*N߼N)3fy}ѱHgU2_,$qJr:9-$$㶙1z1V+"6Ru]M vsm+ZET۷inlGD`.Y})$hUrQcGА u]wص5qIfm+8dv; ޅja081лb|;6KWw}=q}]Ɣ 'ǕL ]ټBAm |`ޑ(|6909̎k}O#r1Sw7 PWhg߼첞=anBJTԔ%1~~\zuP˲鬝?yzy} ގd&pn) PZB"!`)&" R c⯘JG.sȂ ͇Jtc "nMSRdM.%SayRv^rԶIW&Xcl!"7￉{# fb;ET5SJQ[)j5 B0"zTp.˨gx8'yLѳs= JXocco4"0(x**f{r )G3HaF8T1!#UUB@@`!`9eB.ŏ>II.NWm:_]_VM}{w=|Z_#PT$ F5aX]T*>xg/P7-w,80-AԶ hŲ hGxxvz -t\mڌ&ea`Wi2' g9K#h I@M0tG䘒h'*AZ< xĖTMxVu~9BXb!:qn>{dz%كG'Orog?_og?/R4*ĜZbDZnf㘀9U`ɡ]3^~:Wq}{발NWu]yUt LEHD -џOyb6GPr~;b!NRvSҩ1&E,*AJ}$ ɨB>eQv}/*)ZFgP Њ ]Ʌ1dAd13vMO~鏟\>~ssoo޽OF$7/rH~:y18E~]?6ϛ1'l>MLi;wڲ_ne]`>k1f^۶mg3輯*x1a˯"M¡`> v;ZVn93fUTqt3w_.}Lc }Ea?tuzsumƘTͲ>ǾGi<|oXŚzΈu1˜zLr~Y}h`8Q})wT?ƸOH1_ Hf*8}7PpS bf )lι2q* fUi ! JC׳SF"OheRj)05=C &!^i_="$ 8 j ~ZLxԘM",uS, Ħna&tU q-.K{.x"$bF4$"BtM hZz>:"{)ʽPeZ͌X;U),Dd8 COD}ŽK }l$,| 4,8J0̈ R: L_>4Q{8yZ?oU])(bI&9yoX KpT@()+b Z귩99nfmϛz}M\_7FH)SU ٢}4 |r6n^0[Vl? D&&|8򋘣D+_|0f3UpR Ƈm8.9q/5붔Gd2U ?W/_No6&L8Wߍ7"g~\wjq:͢Ë'?xGz2, YUIҗĜq19%7l6v]q!$ի86ެor_&@L{8~^zw fʆ[?sDfRrt2Wq̩Zt9q8_:黬9:nrzDQvovgC-[) bzXy Jϟ܍qYDJ.%"sЏ0Gf U$ժ qp}B)BqU͐rJ9J)O—arL0x*8ߴW_nmvu]ߍCo`9 Zֱߎú7=}z @}gC3h^ 9S?[#z{ݡW#D4&ʨ v xcDd2b4B)#D @2euDfdƈ8խuq Y$ :+-t1$&L.JNՈ8Xg`Q;LjDL2Ț IDAT0f1!!Ǥ#sAr{LD>ԎXl%Xy!"B HM2%{~{81@4s9&+@Hއbng|?cvv''z~";F4%dJ1AN2cuf7EazTW3xNR7%kwϞ?MO0hvo5ȹ: &}}+! HpL1*$\+TOXto4-2;Xi1- FdY2ruYēL' PCȔ l*Sd_Q"1I"o4jཱིyIWG?|F6+W0ou@+o[[JXQf `:rj @"CG^~⻏ K,R pޑkJY0 0!w}v6ݭ `JfAbfUYM2!Y)b9'$ҔR 9 JLb)r3= )=s=Ջٟ_w;>gUeR#˧0IDȦ(i!%by~v7_.Vo7wj$0皦}:窱V={tw鳧O˷[p@޽ 59(DƔˆ`Rb*%f~zslJCV'+bV3k[CbL9viÇ'OlכmwZAiLD)3 U-wC6Zb6"JS\U7]E5)$* A )#1m+Y~37uXnHwۭ.8'Yg9F2W'?HXW՛og?[AԔns8PISL#}O/1^\=w޵m/OOsM*a;u(`qUUɐ;lwWW^,/p8dQP/^qXYۊjp>9_usSp-۾4%VLr̸.<\߭р}" .jmzu躜!Il{!Nup)5Ir\N9lwy <?ڬsJUd3`>;Y"-X]!4hLr93qq8&Q}kǔ%X`̲Փ/_)cp(\׭ 1;/WWЌ//tqMsJqS]ݾ !aNPG͢zL]E2vщ,Ε cڄ?`2亠 IL4=~!ɛZC,exK2:+M6H B%4jdCJjPBD#GCnek9DsaTJp;4C1z,x򓕄2ncpt\Ykajَx/i25z`P ǸeR1Z!4-y f)"ǿ L&&_Ié_nnnI<MN AZlr Dh%Z< ĀTsk()߾{ !Ԟ^d)Ht쟮Nogy_>yX.ϿyԳA)O?}[|6ɴ c0)dMdd@rl1E dߞ_<1 (嶮mSC^-ÖВ > ,/߽1dmWu?/~ TiE`B4!hԌG#@͞ɣ#ǔ,gQi(?hΠ !YT!S:T BVm_oFPrT38# |Y!=zpX./޾dvݡΪq|6oZf}^n6уU];f^׵u>^a>޽|iִ̼^߽yGd7k*cv 'rjZ4q{smC 㸯Da!ϮAEjΙ!rqbtynm$w8/1'&(vv:g1dRMy{):D.&3[}?Ɣ ##3qIb9E jsfq5kBw0tj`Ut}_ZBhJ-o}?ţǏ\ZR23i6 3q;4nAjD2L%=xrNF#W0THm#<G`hGmlZԁSG! PL LjDLJd1{R8;fvH8J9ow@2ߋS٤13+n<8ߣŔ}@DIɠeseV */]0BǖFHLd"bPT$t貣QՎhH^P"t>CEZȤfF?_}N ;~%b 2՜K/: `7c1\bY'YFf*ͧXW<9o` sC ${v iXjc:I 5,NL'O fѫ<{}3T`FoPmkv)(8="fӤA'Q,#B3@rLU@$u]~C}È\]yf$8{.JSlQc,IvqTՏ?m]ߌ*fV#,Q7.iQ%*_J=  tiTQF3h8Fg&ɷu-bD, fEECul&ðjFH)KNfPӋi7}7nq=zWQ> ޮ]w0y; U}muӜ_u}c4b>zv}s~ݮi_CwPbL3aXՈaz\-z `7cxHǀ"ټ#;p89BY$c!Raow;\4wuQ2aU1v6O1KR[]\<\X00;0"t1:*0PcTQQC2ӄ"IR@*\W٪j5 2BEζY!|y~{-8"ղ$1nRm[@Il&Hm)grݥ6T7JF34s4&ɖi"R|Gѱ\EYGa.E09;zrdI $(I(00es!|B{aWE"j]V\] 1BP9 NiagD2b$aሶWjΒq)b#{[M{Zh ̱,&I}'8Պ$#q2jfH\Mupe=/4}<4M-Vb>cp6DN&KFd3afBOBSpã*Ӈ/ҹPIL(;4UԔ C3354QE# 1):._0d>*7@aX[LGClo9x4#"vQaᓧ>_~7u쁬 0y_jq ,`ΌM}1keuT"S4RlӘwBST/_--N%wW׮COH+8 )<|T7MN\48>6;߶8U,*`rvĒjэhyLQ g''˺n2:ھ{ǿo$D(u,&(!Lj/NǦ-=BEM@ LUӚ&P)0XJPCLPRn5:6~~$Sʢ䜪b5ч}ﮮ{7;9͵ctb~\+S@Ĝ,L[18'lCO% *~)ZRk+vU4%| $ೈ|5_-v3OOOB]ovӳn JzQű\{D $@>Yb @LT32ZŮ.+VET2"0a*d_UF\nٽ3v>aThj;43va_}۷IRȒI~68 k@Q #|B]_߾Uf\=wO8[OrͫCB4ftTsDy٬jFTȋCJ~rlUYtz46w9eC0365Dݡ˒f1_K^-QSJCf&ݵl)gtt/U,!|Mb2%3DjXa;¾c :T!D DNUUfQ`GSCq-r .LWchU  ʏEi*0 !8G%MeWzQ#8#bG"} *AT^j$rX:]p”˚V&ǔRFPRLdj٥#E3(@N$kԳ`"kG֫QK}^d:\oϴta_9Ϳ=j;K DM4UIg#@$:fܧ, 2MsWRSMy !8gAb8"SQ b$xn ?_t,eQ5[V9eBD/޾<9}tzVoޞ<~47+S5vPɪ,gSE >thA6+'˓߀$J.S*yW;"aU& 8Dt^P% #cc"PQ;nk6lB;󔔑MTE8[q Q!g %F[jXA cTR"EedTj+{WWs.TUcJZGj*Fb~]GmS轏..x ^%^}M<{6>!ٓw7צjV5Y.!]^/򯾻<7z))Mcm*ZՕ>loe@(!sTl| D@&1J`:jLz|ܿ^ PŒdBclhg9%S%NjvD9iC*ͲS( ($U 0'+-IdYR2A؏?™ղmNz*$YCbY=??:6C,vCG{]wquKȷ77Obm_쬩V"vffu$⇋q`{fqɸY^^~'O]_]z?z ěs{0/u["Bi)ޫTh**b`ǔ @ b{{Mt"2B*uKǓ6*QŔ"/Ǐ>ެ m5nכv4㶭SLG2%,vg-!4'2"DZ G@91G,%79 &6DBqLqaQ4wr]O")0 h`G2~;o۪ B|"Z4`c4CiM!"LDs)/bO>xeՔ7$)Jy)_@ q"V0 p#0 ";~97"*t?m%An4qZCHz6 c=Ɯy$F9LDc2*c ,ЕUe{iZEш~Aswr1~;GH;#*Lw&I`3t&W6bQGV̀;N@6Hoc718ݷ/_RS6Ps$&Tmn)g+=e.KIPs]C?| xrBczxwwUhǏ-{WO=Zݘnxj}8G''{{|>?<<[ゥ8|cT/޼DGUb{ݣ0;>}oR0G8{y3[,O]?$ɳf`1fa[0FDD¬8^X3?YMBjPڭbݺ [.f6A@ ON? 4ǡ bIC˗Aϖ*߼yڳK9aׯSJ^DQDi*b9|U!5f0PrĺMЩ!!Ϛu1n⸕rĈEp&ic?nڶ;4E|ǃ2b$.Xnon]%xFѪjFK̴*bFfB7kۛ;DB]"4X-e7"ev ĬhbVevt 'ZUZcd NT(L^TgΙAL}`GlT̬]M cɋіum \D PK-"eDk;2`{n>1朰&] P J܄8q&ZZ=v#͑QkRRhgzw a=ab@ RS۱B%NP b"RI!ܾ/p)xO i-jfJ0ФG!#X 8 !Hw`Sd^2Qc9^.nh9zu}up{s-A~q!jY+ys>}9_"%ϚM]>] RUwS _?_̱ĝy}w "&28#taX#+*9WG$ImIɅ!{Ap.6۬md#BrC?s~i!!jAOSס_,vj1&0>p %CAxTvpOh~W[0#MQ,F̦@JYEmח=58kW(\DTQcd0T#EP#Ħ [ʺj&f:aMTB$bv9 QIr)%JӴ31E6y0@@Ј;bVhd$" W0%7۵p)HɻIփed;!0YE$쬿VwӊLYI*qjrr w@yMTκkﲝ '%"@þJ`F2;Hw ϖ##_~h~Ӭy\i}w|u3yEYrٙ3 p)t5QtT@(b oX9bqc3wW̍sL6}w{4=>8L}utC"ɖPr* 9׍Ɣ`̘ h1>ƬI,b)nL5|p<ǁ )l1n4&i"0r H$) k?1QsC77痗gym7F{1[մ㐜sɣG>y:=898n:1v]=k'Wo~_\^^v1I,zМJm];Bq9_|);VԄzfZJN'''W߽fӼ=곿j~}~s\,^\tc{PxͤpnaTiS1H]əe2q~o2US!8$IڊA1nm'W!T@C#@NQb?@U-iނUqH!82g&=JN|d*x!63)ߪJHVМ |p I=s臑EQ%EAp#kZ}}]]nf۫ $"a=ʨ2 ]-m s`}W1bba"f_6+ˤ ?!n ^'<`0+(J. m>bhsL_3@Ȅ;y2"4gEm娻4]HD>D0+1'ƣ2Y2w:6S01 Z9Mə(K;04$wLcDyb1!k&H EJY8Iz0ҋ.PKoWU8ν<n-e<@DQ*D=D'.Wn[>1YSR!BiJ,3bRQO4/%%0@b@4~ʯyDXD\c%r=*sB;n0haoH,w}ogtp$;"6_u}'˟}|.oo^/TslC "@ }tqՕάMߙBJc/FߪYN/?Ynnۣ:;=aTEA 2ьˋ?պ^mvdgɈ "fȤ;)giz3 jvTd`2JA) V7gjy!:fI1ۡZJ>ECs!IT-TըD@kj~/~ψ]̲\h[3 =1898{Tf>C}z@UO?϶lЧ}?֡&{m1#:b15f?}ˋvbo:x_\|9kl㏞~9kgnw7I7رWo^9*XURa>T5{&mתj"MS{ eݎ1mӦl 9Fʢ0zOYd޶aw٢v6ۤ ts7 c״{'>qppûkljWՀV+y$&r)eMDlރwimmF`ضojB#YL-cg3D}~HÐ{QI93ʫXݬ=;j: $1f1aj<ƾ61xj"PhNtrf&7Tɱy//' Op;9ydT0SALḦ@hv2H6+;aGM 7=VBr{81y% ؽ1wh~M3S5ǎp"Ȑv:Cj%-B3wG ZP|`bUG-fw8GE1 G4^r +f_nHTsub""#+.fU9!!8~nK#A111y_2՘VcT3P+ +YçO<H0[}g&=0oUH>zh?l%]ylx[L>\^td&)mVId~x yyZ:i{L߾VKð~c֌_l],*6զ7bΨD!x13"F4,]FP`gMiP琒MLQMg`uMSj NRN˽aD^=;>]{Usp>gU@R08Gf Lm"H71<%>|x&)'p{iv2;U=88HI Ї8˖TEr;$p {PL9ϖmq$WS ڧ,88$0)e7n=;0SB`ס25USBVc98<*óרJf;j" *Y+2;*kͬL tʽaRV&L)1+g E9gd6f,E+? 3SSH̎Y1q5^n1> d"(3HDMؚaY3-%\Qy1S{p޶IgY"xs)`r69}8w;*o/ua|>Q]وYr.n5}?Oyve <t*}u: ݍ^S(J@ KVvssNX2ACR3USfDho]U)V}nGbߣͶl_t}]4GS7c\EM[C5ɱ5rZ.aʙUǩ&!39zX?ScPyj802画1-3@&Wj ݘ7foQKιヽ98:cRÔ#Y~aFVR|MErR? rppǭL],LaFP&1&lsTRQdonP#"̒ȼnu8ı @s$*ζ&帷۬61E(GM9x?UYm6IKAfK@ K9P^xM1s2٬ѩBܥqtD!v;Dx/D+Re T`EQ@X`(F( L9 -h]_ NrϮ6?*=3Z!N1sFI(1sDJ"'8!,nLh5}e*/s1D*}D"*,7w{wN]![= J֌Yyx{s0 eÈ`n6*9n;ѳ48"]njʦ߾yfu͋oo6JT՛-W 4lc `ZUwuXfu}}e`xC*oluw/!gU0D4hXh=y$M JqepX=js~ȚuXkR`1?gtb",4?+@L%|*9>>:[1AV뛛ۧOn7,tC IDAT8thO?gz^(dʇ:TUU`YxjXU^>*T1l1ofZmKT]|}w׍# C?zioɨ77g6~_=<}}{yjV[1A~~t%~֌fĎšY;a#W1nnf?/qM\@/F`j=/nrX"sS۫Ţ^6!)2h["h4S i1fr.Řs"ͬev6psqsC$wS6q}4|Mt,ǦiɂgDEC6PAizۦ&$+]Z-6mSF朋ޏ1j(\:8rtt*iPs콟j6gC1 3G@ &,Iu:ɾJB` 9S n2Dx[IZXU- iEt)2#GTdjΩf`dApLtTdw-2jD-ܩv2>D25wT(s4U0foZL`)iy "}M;-XyfrRwcɋTI ,]彛?M@aĬBow͔wpT3q:~rX?MnRkώL-e] LH S":fclIהLM z?/,Wɱ`f' %!bu}ſ?V[pP499={{ysZVwMhA T5zj̬ *#0jS9%Q1n71LwN8#TA l$K/>_QTejsLyd躣v L[a= ڏ#239bF@C.uB M(jDgP8[\d4C3vL&s!&&*<ծjǾe ?Puu_Mn{gO<>>zl{{uD*(yZ:n u-mΉ:wΙjoonfmn_~=/뺹:;;]77$gvOW(ۺi=4ڑWo_ZOC.ǖ!cm3 I̴mjf"$yHD4Eg]I i7_.[IdErYRʮvRI<؏u Q cYǔI_Nc4`io9GQa諸f)[S7*/DDR"dsR$ UѪH.&lSΒIArLf9+ $5mjH# UնcR;df7{'!WD:>9B|)ʘzY Ð8WZY",98Hcf( {<0F,Y(Niy:!&ED+Dh.5;i }#D`̢SZ4uH"YMc!fU5pȞAU͢c3!2{("!$.p}4Yb ((b"MLqGɜcr>XLgV6"\S_L]JqK?=cwt+2;ҽ8)spÖn?vPwB[?`ߏOr n{H6Ab%*l|9$K2xūTXLhF) c5b1~,B̪#ƔαAnaت"OJdDc-]H+(by*(QpB{oYDL L#WsY2"fDeBbtDb,xgMLj8E>9VU"Fܑi+͡M߳n1,k6@C4Cb1DBPc{bQk@v\dy@Pf`V6=OovawOˏ-VxX3̼eúOyF~I){NqfSRǎ ͅpv74%1]_~߾^ߵWΧ85v@p*2P&DQr*D"QT4hQ @ƈ SnV`IM0A%"&1EFB<<8Z8szӳGW7y$]ݔh ׁ|}=Z;\oWn۬U= ۦP-gE3-3aC ugWUJm+"9#vAERDǗ/{Vb>8.|gQ~|xpobyӦ |O7zw)EDզD@.Q˯sS~;yADǡ;;9F`9I:QʩeNRkoww'G0;G=;.'!g!CH0kgIû@3OPy)n__^z pow{s=Ԥ aU -9dv̈uUwRdPyBN6vW=|_ YEfm}s}$f]L@X1"BID$ "/̪55eS 3yhE{?K]. (~iYX{'8QUo}OfD" 9 }5 Jki- F PxRS5Fp qp BF}F2mEmWY65ڔi;PDh"Ci)FDF}gm2EdfTlFݻcTɽS$qgP-I@t[ʾ<=wvc U W-o2;dgHGq]O$ﻏ&߯^@%挐H<fWi,f@lxڤ 1, Yi#7$@r<NP@`XiN/OWקG/G7n; $qhg-6yofΑcgYErS2` }gog40# "h:Yoon Ԉ3$ cBXqεy BY$/Le>k_obJY٬%=3Bip~; (qqҕ> 3R>:%qفj}&S T(+tFqu@elؽz~*k&gU_-D>EyUŠbu&5IUW{↝Gb2kWógg'N䮮/o?qq_yG`"6m9?QWVf={eK,m"Kw}VXlѴZ͠рE ~#`~0jGIV3׻4D{>[3> |y7̈uk-Q0 b1C<<:vb6%67mwn a/./n-rѫY7=w7붻$qRWitw%ytTԯnZVz+&,l7iX CR_Cʥ/bՕG@X RYڐ'db~AU5$X W1(CCfɃ~h7z2k6ZS3)d) 1CUfHA!Ri]]1 Cbʃ'gcD'Uۇf<躸Zm|Y&1U#dyfDդ(fi  <JfтyW8$ jۤ7Yn0yiHI?zYv!3r!UEV<8rH G$*L14ɽDU3(C"ֲs/bЍSfh@s $ܛ2,yxCV*Yd3 ou:@hA><ьdfnT!}=ݍ"2Q#EB$Vjm}XNޏ? D%_1d E4]P#gLy~dNclg}Y2lyI`^7#:P_ӽ|6o~_RjJjNxf=۔0BS5#2X0r䋍;4rJF "00 <~˙s  3׿~O1E04u.a@}giw`V/fͦm[$զuYmV;B TA LqI΁X2B_yF4$GLLbFI5ZEmBɬ,dًjعnywzqoV0 ,+<;?gEyw$AASM?؛/fӅ)b)nVOr!FW8[mOg'IbO@M0uINO߾{ݵN %~s8ܝ?xhzxx;ŻˋT07k؇~l6S5fTQLkfzI],ozҮ;;$iYYn0 )*!e}s{\w44)aD,:..˪l&S#j.XUJv!vBPfVsu)3Ōb H9TCCl`FTJ]@bs{"wTepxl2i<4DD,*#a}J `0PIl-$ԗ=|;({OĐ3D@PlfDLT&wKdBA59NU(l!e"儨l1C-w=C(8!'Qmi3 qc;p^h GZ)"QbS2`΄PިfybP}5a`F6-E  =ܾqgqn'I5fv$T hhT +f< W#~#˰_^)ڨJ>33PA\:x;H@rώZY8rhP+ٱ/o/t~v2liٸ$#XS{;{o߾_r1oKHMcBP&2דӧ'yU-ww80䝙11#bч`Z)C̞>oݻߜgBS,v`sċ!5珟duwru5 D nI~gow٨!"$I@l T ߔ]65FHcc T5Q$LU ()AT'l1۵ğ*k26hk/ F$<1شBBx MjoGK ׫OO9}釃:j@+<zw6;M|7=:IY5;fy?/$xgytvz=x$t[AY6ni0>vQið4I B0sy@!շne0DUEt;>: 3YWf&)0QQzSH~HL<_t}We--% A;=(oVtI90 O=߬oCRYahHUʢN P`S{;+\P3WeYjRMfH=hY81DDuS-?]^]!&&Pzu;"DPDÜhYk*Q]bUWvS*2g1!̚F<꛾1tcrF-h,D˧vYۈ(OxΩG$223`ʳx?Fl~d͌3??șHAhZ8f!3;f舜!m U ȶ2|Q(,[{|Y )' j"fv WG2l_6dt~ij+3>mg̪:Aܟ v%vBm4Fx(_-%qpdkaz_o79SOs9'HdˁYNT!őGDK> =B_F`V9R>ňB &寪! >n"IN&|߾aQU(zsLME9bJ* Z(CҤl:@hGGC 6^Ԋi4AiIߙԌM[sj8)|H~g:35d%s]˛BrYJ=!MjDD-b$&T5ф"N(-a"rS]?j * T )N@B@/0v2'~ ~ӵ޼nywvv: }A#yUGn:F=1'λ~w׫n}\n]?O^uL[/m۲,t^{ˢr&A]oӧNEз^~?.ƫەr6V˳3G8tpP;Goݝݣ)=yˋjXyC,GDkrX퍤h(V%眪w<bu]Ve9i 4 z$&TeJZ O8VaRs:B2`b": =;bwwWg=v\tm t^Pb.n]Q`33pmS3d8.@GDj3(Τ!av3*"8f"sLdHDP ǑNwa)%E5afFȆv_@72ͯ,vagC>8I!*E(," f@U *Y\d[_#3LGjؾ?㿁G/Wo7wCys.) i<b`? 'mAsBvx“s)$cbwwJww9|)^^_^_.oɹͦV7o  H 9s0Miuq:(ϸdzz&jfYG?,ʲgwuwhWk_Vլ10$6D@sU JtwF3)RAT0ۛ>Ř"c$ !h}L5" U ;.# S@P!0$46E1ETR2Ƣ,*PY)FDrEo/^^aܬL P]5ĈXQU@T_xdBw' wrT Od=\̸$@;д3sSl~{<<8@oV֫UYVTuqwQ囓ӓ|훯bTa:y۷?&reU{.no߾mWױOjwæu\xռW{^UFl~~s]y]IbJEA☻Mυ4DplV+^%e=u_,\{gޢw]QAуgF^J&%s޳DETUS0Ky89mwBH9g{OO¹; jb YTg睩m6wĮd:}Q];CU40 fm`" ZYqws-:JmCyBDv#6&2˵cd TySUxs3""&:33b2}yx+ȗed1+塺ф9a_!la*gTle(c Ǥk9n9IG P1T@[x߼Se|L͙ɿ㫵yѥ1`g H8?nq!A06^DD>-fWzӰ,Y^.Q͝8H QPr'=h رe9"l6P/YQU!E3]벖f"ł$ L /VE ИD=QY${hS (!1s\3E]f_ "1{/nooޟzr~Ҽ]-;]* xE XL'cbB犉yu9dR;,&׫e5&BLd&єˋW眚$*б9̪FCHi%<Q%Q۩ ~_Uggbq`gX޿{۶zh,O}{I12C_"T>$lր=0aJ%׷ά8Uj^'WUUN;#("[0,˲8? USSVHC:I)lkpD_}UVU]"$3HI<7!j\ᝪV,#35+'溩;;;)+ʪz-9V g͚TR RJD|!)/bfɬ{De0B+ `ι(LC =3 kR0 )X#t`K D BvNrU{i8cn c+rH ?m` * $I"!"QiFm1#P'=q 0ӭXd[ Bq'P@>Zd;3͌F)9UEڊˈ`voȅh&*R 9[60j=AFȀ;dɎD (2f5{w$ )ϛ qk^`ȿ(cCk| !hBTADM`ˀ,$*hnh̘/*vF\QU#~b_6UU @i`2>[_]7˫*ُ>ى/ dD"OÃ뫫OO ͪ(})*)"FTC'f3gOޟ t{sBoQR^YOvs$#6`DvQPB}ttG7|3c?," XL *w&!$ !ntNǻ|u0;va^J}sp''̚! t~0m!@gm勳Ӄ?,| on?vgv:;LDW77UU{~8y;Nwvwww 'U^!<Ļ7Z5Y" jLЭ! &5զng"0D*,%zk,eovbmb>g}NJX.71!)94UFB⺮lC1{L5-D$¬0eT-#ddJ( yc F|&`A o`B) BDĄ0(cBB2=bd&όLs'zm+ 31{m:r`6[BFd [e2F5C$ːSEG{6nvv2x[,n=؉&BSGfFvm4ٴ &id0, xImqΚ0{M,ZS9PY NfSͫVB"|Q6 /:/KH[GquS){Ga<8~{vx$)JL;Yߵgjzq~Q׵*ߞ.nKFT,DMy"*Hj2=?PM @rp00dҽ{foؗuwoW_џm=xoN f5<pÈdR'\^/71vI\Q$c$$qYLAu /Ed253X2cUy۾<Y~2U,pr!:!9$Ǯ*KQ78fO*K"ȱ`CO>;;; 1uEEr^M/oHի/zZTy\E.ꦪO߼몙N..͛b^/!tu=h7G...Nϟ={;::, _d2OhYu>zt}aQ7o{{,uQ4Ŧ]ƨnrVW}l&$H"89?fXTY[J$"bIpn}E1 )E&ml1_W@؝!fsUf6uE{Eԁ"}c08mzX'$ʪR7("lj/|^i"B*@IGnm(|n% V;ܣSo&EՄ!f"G,b ,c_":_t{0 fRz4.v˻uQVfRTz>_\]}D20јe>[fT>bt p5y {XFjJbut徛8Sw,#Gh[v1_}s,ˈ"[ʱ֜$`H|KF4=p#f p!/g~珟o]#!$AefTZ^YuBRAmc;y3"; @D!%tyS@":qhvT(%GoWKp@%&H"1Ϯ.oCv rgt%uHaH"`!"=|zn7٤ámb|?r[ 0@ H&@c2flL#b{n0%1#Bd&@yDKWELRNe;r),2#1GSF`BPCrUz~QS3XvT=mTiλLA3LLYFs4eO JǽvDv l%[d9G0qG*mt}SS{DB??Ѓa$¾Or| ]`6bP15RZQ.O_}^\2Gߝ_B#$mJC`ͺDU0HW& x[ mH 6ƳռxgL=Oeih0<{򛯾K-j׵ jvxwՏ6낙H=t:l^rLI'e50+ϟY-ۡߝo7R$T M糛!m &!BJOL$%"J)%LIČMQ!CSpΉ*2%}1f_/~ӳM׽?={q _NLYX,<&!&0{a/~ wg_z9#x_UUg{;*˫+Q}p,JzgbkcXU_~]l:QRQm?g3CW_UY7]}SOB {{a׷̎h6mV0P;8R%@tnIY6Qru@Dtt(m {*UJS Cv4ibf p~r%>0SK2k2|6 |>W1vND;f@*1!@U!T5$I1UuC{`Wެ9L1:#l=+GG.ۛۻ}b\zE$5|*6LLTM>j&rB$7˦)7}PLJ_w["49jxfF1C< ٙI FAS5 0^ J81ژ7:'b45`⤶UGn:_w4 S[A#;V$VU\nی-[6rvch25330Dh#<꧙1zl0Ϙo}c\э18q6U"9GF lGɨ9|M?t>0¾a&?oW+gC%1@@, " 2t3B4D`f";BňhLEʔZNITyf0^UM\E$%d@X5M5 aǏ<<o.Ĭ.K0Љ֮S@o)fEp#U}~yc忚E"f4gZL qќGSuLlDMjTjLI$ HHĎ"HL )>ln6_|ڀ@ݝ^^\6tVGã$ɑ?88C 7իG _\-Wu=;_^}Ͽy}۶w.ÃjbHH `F2!{]99=#r")}g?y]{{70қ7Of=~ᆵf:1Q]]_4/ʲ.v.ͦӾm){|amE]5riA-8-)(CWJ> ZR@d4}@ !Sѱ/fڄ$}U$ЦDU޻~T%$m:֓XufV,AYxBl 1M&%$AdE1&8tZT# 1;aYeYΎT۳wf2_IuQNwUT4hm~DDHL@$]uj")i׷̚lQ(G.O7@TEDK.c )궕z$A?Yv`'X ̌/|+M3x2q.U1@FJ`skbdj4$G朲 `f(G"jgX\͘Q-]Q~ӏFݾ|mSYPOc^͒nԿb[0V~ >LUDnIID]}}\E IDATٿ }M~ܶFb0gc&)C SL !(!|yPmsA Ƃp@044"Hd[n' ՒObxJni"ǻWWEULr<yr}5[,k(1UeHf)9'"U; L@Lzl< mgfchi[bu*C3׿*F*$oASa1iooHVV%߯%DAU]?8$DT K”SjewYKH2QI9&p>E-};_ `YU$}pɼonL>}zuuՆ0* H_^Lg]%T4/ ܇1Mfе/Ƙ}iM̕cno:=铇ʲ6trqխW|S6|M&$8ͷ?GM_ |SLG_zot:L&Id^5Uuyq~uuՇPM]Յ/fVvdt]4󲪫.d% Ve196d^NmG&h1LgD"0Fa3Եm̆6V iC;<:1@lLacq]Yx1ĨCM]ڤi0xGEᙋUT E`p\br#$"EЈȑP7 @ >u$&3"v;OD Q%I20˕ !I$711PCS+|> !8皦L)`&*.w@CN! R 0"T4xDs/.V  ST >Lx9F%ĶH| :Id]&SCs޻\ۍFH7z>p]i#Ն!ԽM<@Mʉr?" |Wjf 5 dҎ#(iA[͊G0_ mK cݦ)"! f;(10s1*W??㟇}W%"~V7vWE"BGHdhf Ѷ+BD~rD"ZEqŏ^jۿѫOn@[vjmnnn?8;/zggo<$YwXMY1gÏ%T@ &Hi\|&\ѫO޽{OO꺎1gsײ$;[&";i|u!9hB#`"4UUUi?v0kGs3$%p uo$.ҝ{='8XР*4"3VN Jb) nzHgX|DU]m.%)wzY D$)eM!V[9!1[C Y6()Jh8F뢂\(4v'%Y.j`^^ꗿvz5$ wm{Z/^lV;LlaƕgÏ?F/ޮ|RJi'/~xzQ$ãE!WW?ݭnB?8{}1=|=3fӇbJD,r4WT;0oc,n^ɤ|h$ Q1&8{ w?PWAW%@RјS@D3=NUA I 1 !ĄlbȚ -1Y';Os@u/=t,JQl"o7AQY@' eI)]@&ڤ#;=%H Q&ujPO$~Ҝ3Í#pyna$c;"fP$O~o/_ ޛ.:y~}7W6dz01BPģ nF}f{H$<2_6ATҥ QҦ#Q"cb8o/Ж'O.WBȕ+zb_|_~כ7j_-o>NOOOIPVeBF̎Ύ_}5 8xȏ>b=2)y?|&]1!/| d-uLL?|n [Ɣ 11,oTSYV"4DL! 3RR6D9+RF܆ {AEFl`1Ee(i'2HI3CȠO|t|Z僳_BK~_|'BfC\7|sZ[>E{R>싿\mvםʙi]["b;xkw1|&Chma6777mwoߜ/C!F?$TL16MesW_)o'R&!Zc|!vKeUf/_D4]-Nn&l (E٬,۪*\Q23#BA'"vRT^3D1 ">& \BnW +M('k\pl}"6upztXVuSWIt|JMQf:ݦ06[Wpn5EUV>F;fz88|9}lfeLs\^3cRU1u(FȀ:>WEk2ݐIͭD H1rtr(Cc_+\3}Db4Xɦl2<G!#$3ݼe:JFJ2Vp M Oa`D$|!P:f/8$+-`1o^?m>r~ƾfu +iPA&Y (H HO>?佁ޞ.׷&tyRDD,! z@ HPH)'F!,S 0B y 2 YЀ P V$ !;L8+Ó}QUkvC"vk0.=oznA mZ5t,Ӄn^\oA@Vrpݰj܄ܟ|g'! ϰo&BRB +P-00e5qմ(\'IUmY YBm1mUh G%*BEAAS l-mA*U@)F MBR1FI3ł@hhv2]|۟.^uO㫗odv> Đ&eհ{pp8-'BFthj~" ;#:/ݮ*mkpp1Oҽz}J~׮6G䒤$iY,]7lmS7yT]߂o{meUU=opL&曛oQcJ>Mz3iIo~ha.r\6l:2;ݾ qSE Z>iR"i"|[Ueu1n{8ZT֨jLG!bY9fFXWZ^w>DFT!%F$41&}ֻf~`6*Ej3uH&aR;A, T4Fz7mbdIKvf47Ɩmm[6+ W)+\ xQ$YW]]E5 dCJZ׳AR*ˊIIM i}[k5F$ Ε i.F@EUs↪mnh$ D@#CeJJmȊJd$ 7GJ 3*9k0qgѐRJ^A5`490"23;Qֻ>g+G= !/!U$k\^)Hk{,8q (M{SsD=z7v{F3/JMh|wt F  1I@'ie[_Cw$z{fD@Մ!+dDYD8"Ȥ!e#)3pM{D} о.%U"(JJ"pq s|^=<8Q>jH6KR|$0l..҃ㇷ)D)Ii|`UYZQ|{؏?| \.E?˫fI0TCEY2SaLtP5ӢU.(c@JȮ(Rz"I4wIpq9D "%B B)b52pɅkTE)%TDD)|RfBDB4"DRfR2P՛׈жۻKdrrB'wUh2yprv/.^IJ𫋷g?aV5N-qv6#`axY[]R:2uaJ"O>,_o KLg_|w??G''=:P'̌!}:TX(1DjUe A6hLL@S%2>>La._n5tNc(dL-&SkA4$]dB  Ic DG~5˹ˑ'$M]o@( ll$ޗ@=k;'w7>jl|_7̦W q)r=vl_7o/P}LDW$&dQ@4N ˲H!d19 9g).WK)H* 2L1 \;L6^ 5C$M@&8 &s/%0!"3ACHZDT0C2ǫ u1n>뇾lc ,fڐҮ~9(vw'gG!춻ݦe) )t݃CFcOOϚG9Jk~xeac?Ch0T|zTIsPئ,7O8w0wo<<{ʛMJJclz]ߟEur|()^\]$o߾yv<9=o8c`n{q88DĔ* ͕+*pWXGRaPS~u]Z w!$|gɧ.mU<8;}Vm۩@HCYn%E dR!d2gmyWe:]Weuu)eIu;?쌳Z,ֲu.F!"s߶Dl˦*KM)Hɬ "! 2ZIQ`ݖ C׶]UU1$`l GIֲeUJJ1!I OT'uS|AqH(dZhhHF-G㨱Z0"-4ӒĴGAع{q2a[bQ6:0>hv60 HPD-ABb#hu|+xOd{涏dd)(`Y)%TIhBB*"1öj (2q[s%ndA<{9s U)S7 E,9G *$f $*#r/׿/^]z $JM&L&'$ʊY.*0/{x!iq{0쏹(SDY$@t/߀$Z2%8>|=ՋW*rzpx^Vy[!??c@ĢpӺoݿ⧷o7&z^qrnw\)@a7EUEQ-ubʢ_$)L 4!f 0x1Eg=212 ]GDCYTe(L~Ę&P@Dd`D&L (Td$ )$Q"#I%ΒI)(uebPVEU CLfo^Û|0&Z[.<8`:Oa[Ϯ/Mpf]Um̚I quw;S]Je}oGv|=c]ړヺ)?Aq(' tl6}~\-"RI{&pgnaGՒ hzUcdj%K1 vRYMBvmzjw> "vմ1ncM3sV$ZuVe Zùf#4 !0cDHBEJt8PQfl[SX6Z:-W(>Dq4)(:0B=Zb\L. HQXmwf2t:CDkL3iBD&)uS{Uu6Uud3[fC 2dHZEJ!sU(v Q73gC 1913EI<`#/8:R$TӘEEU gT 䪰$!W9g %3sR$! T^Dt:HYq_ * oG{\ {FK~ ih}`5"*Cpp{n%TMJduox&}q\s}zHlR lPTM}2S77Dds h=Z !R,"$*5%AN| p:~-K ^u`BS䘘iQ~丘,gn,zWW۶.hyY.oxxtXT1Ÿ\o},Ƹn0g>J  _7D39  IDATek41[2l(ha%j*ƌBf|bdQT€L2,aS[4E2Č- uFI\ Tlk)0$Hw8R 4k\U)fyʜGPRdc@!&!!UI[L'XW_]yH]+(m4WEYYL(ӏ'UI1 u٤y{q1@͛ۛPe엗o햛kP:fV;o/n^rqz|nT)ʪfw˛]Goyn}x py6  |fO>3S6 WjzǾϚv}#~:gsk\"B)nfke% ؙm}w (EBǘ6ŃHu$l:(>D6AEB- @cz20TB@2k) c,r`̙**E>ɤ. $kMfq!'>٦ǐZNRv}׶9 Ɣ(n\QC?}cqȶNM#B xxZc\tyw{B~'bGޢu-gD3"$<{R!F%"$l8[ @F̖DٲkDIsZkb&RwQ'Dޡe}oJٔH~ ]yO1d{d|'g#CDcEc&m% G""7Y}=!#ZA<{%AzfSJ&gr $`þI?Ro2RJY C A4IDQ!!$dGD4@8?9.?#A$w rj\R9ܞiQI@H").O?f<νIoKWwW߿ ?H&. }bހҶjJR?֖W7YI`RJwwm?$5:1"Rell"tRyUE&4 (bT 3A3Eц9Hi34j>mhԽV9!,CRԱ k1e'ȣY")w.ib)o$*cœW ZR֘aVW\H''ч珞zp8'_|LJ'0tn 1 in77aS1*/_ۭsnz|w'.뻷QU kJ*3TMA˜eY$Ipl~xp2겨 Ç}sv807ac !|ѧ\_g<~&xwwU]ȄDgnVGmw>fcg0xH*KIE._+]JѰ"hmCp6t8CX<(bHBԢ+yHX"zP,t^A|?N1fӉ}H!vU]&Mw ID|ְ֖u2igNRUQI9`aKUїu! YtfU$b`CHH@y}Y bFQ"!K L½ 1ׄPe61 QFHEQ$1={Ö5oD3[1 s={*^̓;4}ԒBǾRlQPQ2V̄9Z|\5Ck)FcRJ DLonSQ6`,0 -xqp|Cvל?IE D *P ,&fypv춗twݴ_Ё0|VD]1$>!TD6-Ĉ _~yBQv!O?kd @}a"((0-AH@Yc*&[dJbk*E"fca! 6k[bۮz;FL՘ #%1l ٘4El +" J} DRyK ΍DBIIa1?}πlamCmGv^RzkF>8=ǟ~xUSAA-'=<9~\n~SLfOύ?> 2E5qXL04tjq8'bo7v,T]Q֛䏻M)~0$+/&e|~~@h~חW1}^S44iR߶~`luUڮwP(!0W/W1"! C*Ʋ1&j*]1BTte0eۛauakQ?uZ2]Ɣ):WVmwd2U >x뜵&I4Ƙ\ᦵ),1$e5!BgKfu;I]U%0!)X!uZmGe9|{νni {Ei&J֊+4 1&DEQaз+vxWW<ꃨIGeۂB筀**S{po1?QgM0K:K1ǁ*h)Pci YDaf3AaB@Dfb eM=!3!w /QPa.;V!dh煈e"soʉ(w>ׇ{jXQ܇u>U~.-(eVk8wFefav` ~d6:Ε=>Ơ>x0քHd*1;]wSl 6$ YYRJ&A6Y0cKoE$1Oj٭ʢEuu[ѷm{ܭ6$:?<| /IE#I!#䚐vY/$"t2+/GE`$ABf50zK2D ?{9"_pɃ22Q"($b#EJgxxrjw,j++Suu}"}"y5`v7 |H` AgcD )0JB+PZcظ|W* h]+"Clnۂfv2=/?>>:'vS`RMQÏNχ~%.6eI.=}x~8Lqk(fL-+Uի{}Oٿۿ?ylON *j]5!bjY_e9O/\`uլVkP<;;S?|oAU?|tHZmLJQsxt8|H]| (a:-7 vPյqf}kk +jZ%FfvXe3Ԏ4$\Wlvn:Yl4  9'aHz|n1 k,1bCD㊢އnVז Ŭ"H]+e q(*SƚB Zq @<\LoƔAۛk$2$R" uֲQUcd<(|ݠ֫c 7(X@dc"Pn|<H ɞNcV$ǃ7%)ud#j^HD(+`@oˎ_$ĆsTD)WFW $Y6&ty':34"2ڧ g6aJ<̙ D$KNfK5NI啑&p$ |@=Zvo%{WDhv4;`,$ʌ*c!} ٰy[aU8ȇN"SجfAS"eHDhZDcJ(6|@kGZeC )<< " gAR ٭Ww!ʌ"77Whvg_|O.zXb*!zZcHb*g6_~fBð\ fYCI<$F́됹 fyW%DCnm+%l 3#ϓ$UD#pϯVϦ}+i+}H:'4 0&$LĊ&+^ gD(R2Z * ĤZ!ͽD9 0OL$%!QgDAG6S⍩nص^_/W]?yb=tM3i꺺vGK泳GպM^hkbҸ-Niw7]yz }.oW•7 Xͫo_|TJ)vI3}mS7uSrSU'ճt n>!m" Y9>>>9=$1ݭ@lTZ7Lʲapֆ' ,&:tִ1&X5۟b{7x_5:K%[޼<^/[6ӤqX AgY]Իˢ0YG %uְDqȅTw֚la\qvvSh>F?C" )MQ$_!3 AP2;\.(i6+%U@E]uӶ;ÈJxxxضۜ Ub" !J@]{[ gBHGG'(dZRJiKW;1ETŋčMi$;/ 6*9m?",be3~Vܑ̽{"ƆLf(!fɹ%~@qhV p%KĊ #"qL#A=͜)ұܹ D{rK)^y{۬$X mU-Rp?`~@d; GpB[һyoED=ރKw#ec{rO&DI9->6&bH>I"JhE"2 "Y׸B C/ރ$ %{s//hT:@hDpmALRxX@g}ɯRҔ(T $"bS6G> `b]T`Dt2LL9UT3`E03BƸRq.MRf`I-0Id( cR gNnV^I +aF$̒bEB0L jDk rrv(1%&IȨl"*d[8428DL 0kY!Ɓ 0RLҫ^^uon޾^8DvǰZO>_=/_m4jwvUYhZck?p0l %XmΖDgyLICr{wG7o޾y=N˲:?}P¹RR˗Mۻ~۫ggF"0ٹhJUYfS"zlMUEUFT{R++ Vge\]_ŤeUHኢ4"v C 22D -KH@JgbB fFSh>)5R ;fhz1ݶ* 8c 2zLa7nZM IC iZ"", >VTR^` vR[BhCl(.8n43(vBY6A2sJ} DODIlLYUuv_isVsɴ,dI9}d1ln^#@T0I7ޛ5ْgbDdYj[w߾p"5242/Hczj6?OOz4dV23yv$`Ňs9I0=k&*zК jDP 1dvY&2E@S`rW(A-64`䒻R4:ˢ7 FTR\P!zZ*jJ# ́PDQ iU:~so؇wx@"j@Ӭb# F$ HfQ`:Y\=Fϓ \0 F t`|g\,?\4+8;9^knѼd#6A'DǾG@B|lUo@ t`(CdFw/a@at!BQɓZ10ȁqA |MjtMd^s#B()XV9 }R`Bs0!$R1UdR 4U>QrV3hB@KCЏ!qƮm!!z 0̄B4 Idg&Y."}ׯB w]\:f}vB]$kz.(,K(Go_'3ц3r*8;fR0hn"43@iq5>df5bd2fIq㵴M2tm\-T2_OjuMt[O>'l|-@M85ߍC|{`qcVQ1@`z S#wk _Ww зLj%cf$%FBElxr1K:?=,|-ja;@8hyL@u<@'9ڜQ ,svs&4&jPVjlېF df28r4Rp0]?,!sk@}˟}Yd"5λӷ ?=zfHrzy7hBF xRɊ[,gmL?~O?l-11S "ӓ_6]՚ IDAT_OV~Oy֓ǏOW/^|5~d*_~뷞<9;=ϟ6iB><99YVÇ>lb0U@ۦNMuZ1mSN. W2fsk&ILDǡ93ز rvws{İXt ]D5Zv,PkkvXbo/=z.b z}r(O!R׺"Ńq>ytXcbOۯM`)G"&>@lTFn Ee)c{ Jm:^<#qui4.<;Aǿ79eC|Z}zZv;[Ƹo>~|{8d.DW#3|nwC~;+j"KG;C&n"sIUej5m7m1Q!́i"`@#RC؅:~}>{훫> `|~H46$ n!)Gd4T%aAD LU ]cYNN61"-bK8C@!ҜbC(ksY!eͪ5716gO~'BQ׆Ǐz6 p׵-]^^f tuچQ$Hgggaի??;5nva/aZ"_š?EEsz~~h[}⫿0~ݏN'/??Y/ק')GꭷZ.8 ~y? *::.t8JP ܶ14 mڜ4q۰9.J!biΖl4͗7RA~{vve3vZ{~ 03BXZrHih;C›8bټ|EDݲ-4a !7]kHIqC`1XH=5Үms᠚q m$bDZm; mv{o6۳B@CPѣM״.d!lâkaʩXڎȘT%Ջ?'O?~t{ڳ. qdZ{6r]n)|P%jЀT,#琘:%sԔ,%a`#5%5s`baDc \6d@$LLb^3QMf>a`:NOXz c\CCTMV E\//mX2* b`!hs+W'))*PQY(RKEfzTMUsN82Q {]j~ ~CquaDmab>sLJզ"vMbLL*_:,p6 QE\8 ! W[*!ƒ3"tD A%4qPd#0!o.~?/{B͟^ }J̲ʀ*0std&$R#3bӞu>͈+eB,whÞc$$DdD53i AB@0E E(,(>\/޾8lR'vCM=,7mޏQe@$䬮eH fY%i\0*lQ c٢a6@ LF`Ew~0j$%KRjcVmD@싏8r]=41W77m}ه3ضiG@E]5Mlw-7ki"zm-g...阩ǟO ~v_/jE&~ǽn޻'~|rr鳫g/^lvLvnCG,u0Z4b@!ҢkTp\V!DB,BX]GƲd~lq}\b.4Bn?vV MIb\vgѶiT"zuu>99-IŨnp\(lNOEmHc׶)%`D,gUS1˚Ѭm;M9 լ[<|[WiYMVE090m۶%n/ВJH*rzԴ fȡNJJC`fkmdJg{}yfaBMCP\ )]n2G^ @ă}ɃIM@HEkD%B`S㶉D8x1dl QdS4MECh4,T1jH@=hfTpd{t Nem8Q롕eY,YɌjeA`%f|$XnG(Rq ? g$^0'PˆDMC Q10WBT¾op9¾ M:y?1Q4M k>Y'1aY, :'hYL\S}H!pȀ@̌m F/ R. B@Du?y÷~W8`8:$*!ZS,%ǧz>}W0X i'7<"/miJYL22dȀ @պF%SG1R6nB!6O_ R1Sj&׶ HH)eU ŋ~!unM"H&˟G$$''')řL{ /^urDVD"9*!'q;T/寪b,־!/%}cH4cJ/f!p+&>*j+B웾: TDzmV"P"s DbI2 "Dr6"rW;I vd" 0=٣2LgCf ''k8X'?9d~~_jVl "ݢYähZRb\el'ƴ۶B\;zwixE;~P/m"vy8lӰϐFKCU4rTEc% EM*QA YrdX bU,E8 "3hfLSYGї(p=ك!(˰;ǯ^ a?$Y)6rvi?Co="ҏ?zq>:_ۛۼhmL!64ܞ.V7ۗcJaqvz$ŰMO?<ك}1_~/?1޻ø.}O^|~W/_|wp?lϟ?ϵn7b\."0>%==9_-"\1qk],y5n\a')g !眳F C]k!K4Rly"fhR>qlc|yy{:,_M-m8mӵ2i6 vaHz}cr 8]յAi_1Z׬EALvA7̓D!\n^!Ӈ062F9=,tf -ڦOIT0c 矽[8c|1 "Զ>m# hFW$f^QA6{mF1,)젳eݰ7̔|yZpYQ\H@e@/1Y5HPԈuLc,aFs NͫC׺Vs0e!0-7G֭"˜R*b&(0!0b84& X7XWrQ:[=D05+.*`UbS{r{P1t"D-3iBbEY$pFrif)@*R$@HF^ sp̯h.}g(FEV)FGAH ݢwִ 'j%]g:,Kbu1gQSզiqĈsQG!@ f1ҳ=RـR`LšC"Rl;G9Dd@á73)30 #!dqИi DQfdT jfTS;Pub}W $* *1bAA3` BHHrjl(KCIesFJHa Y E`sVY}NL̯Y-7>/=7}zco UnBZ7g&5|G$4DX.7}w۬#v 7ӹ76c6#夂Jg_sǯ[+J?DLm,=;]j/__I!?ȿ_;a=**gr~~nOGp7>DYukf__ WBuFL9}X&KrUPdA*Ey a2i;"Zfwg*HPό|Q뵾 IDAT"PP:M5À`hDP_&hh)@T55h`܏\ C@*5H+:< o| S ӣTiꈣy-AM Q@ mI"5e"Zu qs?ՄRJs,=ScN96fCnCTqqLض-E#Xf9ByO~ D4M M *B)LXY0SQ40WilYx&3GW(p] B7f%1&*X<D9pR14eFKs 1{B5' GתߚbLWckRḯ9N mU(,̡iETa(Zc0fk~bfSScy臦m pwQȗyZF ~GA"V>U<0#A#Z,A4 B(b9R5Pኼ\X50V{3 1@\FI+WOQXbȃSrf;;81_Wu uwDXB;-| {Wh-25`.G31;pF{Vw>OabeYV̞bą5úFp3ۼT4*VavR*q|eosоjZ+blޫww{7lqkt4qj4+]{D,OﵙkjUW?enqo0fZ-˛Wכ&6b^>Ƿt܆}R: Y%ǒ =|x4Dh~tgt؈.ǏJ5u>Wa0X,KO~2NlsEg *T@UfM(\=l- 6iV{P %I t鴓 d'LFD\RΠOӞ9."e\5 Qll:\BPiq<0!6*KQ|Fd1WP-SГʼB@2 D&J)ewq"MMUl3ךWl HN9bDiuxABL"!;shGGrdfLe֚X!6SESwp) 0D^EAjeŦEbry5 D Q8^HDe Nu,0**aPUs5d梽G!W}]@ gN]@UL\ Ar BeA3@DVU!6MN"ӏ)Ĝ8ucʼ(ڮ2|}77oΝfp9ڎٿGG]泶>dzr!0Ǽse{pwkkTOt O o ģ?ΣaX6ͻ|WFǯ~_́_ߒT|1)_7k}|Яd8!z:޻LښpԵ@% qNw VYK 7whSd&U:PAgA(ˀiFs?ChB@b\{޳39pY)-KOx,V6f 8N@YT l$Z-\YޯQ)LdZBԜ51t.~j'$Yb͓9b*1//8`הY3U0Lunb嶁9d`C+"(tj۶{Su $C\hh2SvɛsQض) 3f59בjf)W||bS? <TsNLN ahGQߡW*E*W* 1!PDQE C1+H$!fIQ!qvyc(guN)iZU!`f1P PJrH毢ƽ! C]4pjl@Rj̑Hʩq)jдa̸< Yifu=ڧ򦏰xvqedΧNMlYD4$,5 fB{?>*h]GXUfdƿ?ou>y޶7AjG`]Ox!PENr^*HuiPɌA@t RmPlwSTܠ@\ R4kY 1<~wz,q(ŝD5#zB[MFu@їsxe^_u'J+f6$GP02s0"?EsT]@75ꀄKMOytA0)@`G"f,Ҏ%~zUe*("bч; m ʠDQM5 BDDff4C۶*sP9f⫝̸Si9^xMrRcl"jT@(TqyP1h5 "Yk/ $#sPب;{̺ۙAӦ~LLd^Eށw>Ȏӏj3iG65&S0ÑMsǎmK@>`ן1oc̺?UwߘRo|=`c_M{sAu׻}փϾ|Ƒ"=þb.kOC_]9 ^ǥqQ0ó~z9LD0+QPuHSS]LA6Ɯ27L6Eש24"5BD)ĻO8vVL2aK}jˋh%,cExV]X_W؜i>BPcw"X2EY/@M~ck p Yc) "ŢO#jM)!Dm è }&T_O* sGDXP73ܵO)WKi5HP_aG8CQ6aӂі$&78xK2$+_0[KQGN"߃ 㠧HD0gEDMtD`@S53/^ b`SSARShz`5s" b 9X3"|0„nU%X-~oIB_$ 2 LSEYs#7 s*43Fa!G'0:ߩ&03Qe"Dp嘝awȼӊwvhL hFBRPB,G"E@tWP(L9=|0 L#|xhtW jJw+k^!@TfU7q).w^ *AO@AN1iXAuy[ZTss!xuNDd w6Y)֢M}ޣ緛 &$w&$ffR}w]Uw}}%% wd( 6+X~]:؝a(PAz.BH'@{޳Z?v=ޗ{=gs]m'vÑ|w ~3y=Nz$vr&fv pDN ,3\đE?-3wSv`=i{=j/m 8'@;L,w^|]њgB,iqq%80 NI":J8SDR.ز6%FnvIoN9 *hFL6m*5r3Z2/0@4uunf:t%T )r\tbz  \`>B=z:)meUe.Ca4 K#D)}(9~) 8Sڄp?1+ XĽAZ7@=-N5\EqhKӀJ)m"2\hZylP Ğش<t>a6V7V$iȇ$l#KPNg"rOU"D`cʢH{N6dohj?կJS sx^,@|X+>1{8Ϝ08(>N];|22Яc!k1[4f!f!3YO<)MHnvE{iڣ SBMdVi;jrkc6=q{$E*Y0KXD^wZ9rAb6:k64V>Qr\3X Qf6=Rbm~n<pׁH@߄tE<3Z h|sTJ_PHD,)˶UU*t]LqH pJšޠ4[Bk9pFJo!qDc"/\{;t}@}_Kh #*H.ew+RƁϢ W] c1iVZ&GJ4oeaiJP&j nZDZiXSa(@›_9YS=u_/>DUU\+ZJEf۳CsPZ*E8Zq.V+B=c,) Y9Æ ev'(b0۲H fƈz]> `u:"NmH%CgZgWNR#A[[27axRghmO "Pŗ!pE:0"HE~7,ԵY'gX\eaMzGw>7SMݍKz6L:_X^+Hۿc^Ũ?u+Q gR&T|H~+s5 ے\A M^</Hr{OT Ao){9tK>S8ɦm#ơ}JM߾7M$D'tO~/AL-glR %mH֡l(`Eh[z$, mSۿ_;^cj+/ Ƭ%+&ʞC6R !b088 ~+`ZLkEli|Wĉ2=aNQX}wau4y9N#4a[KVP:zIq,cؼz8Ym'ܲ,N6g->Wu&Ov"#B=v xV=cPReynXradxxɖŊVD* f D+e֬jP7PҮqF4 P֏CyBKPDR.r0"racLGVLἐi<'b}-ZTCJqh˹2j-YIEYn( %CD)%[TedM,Ljiʢ(nT=IOzV(BI{5?q@좞"FY]-/}rsfJF1j=3x޾%r<XV,?4ʘ:SM022O]}\y噿)gsk'ou"]\[g2٦0[h'|Xd=#zfKjz9WA PID~CiRZ tQ4C@w*;:1̠lmc@BK͗sNVBuGD4'6&Jm'e !XњDY()RVfY} D[ aV(B(`*CEcz}Ozғ0lˠR+M5 n6m]ߘgROoRl J2 Z&j-SCŤo<⡷]v]zu]{y7;OI˖uᄧ:;$Tpg>Bpgo9}<4GIH FD.JK}}܃M_i)"{b bUWiϥ& {&UUru$^SHCp E/ϳLRES~4'YVb(4eFbҥ0;8iEeYHi9l?Ʋ҅1fнIOzғDP^vX!s:ec` +թ>u5KBt3.tR?'v *~k?sI|Bu46m+AnʮvH9P& pMK8fvqZQw++,^U€S+]5BB] $q f`#&!^DF\Bew>[*ujt1k>i4@e*RV-@ZAP*Ģ(D%4\rc!"ͪ*-[l *'wcSx݄-p{pn^aKIOzғq&Lo~qb>'J<0 L+S1Lr uH,yFK'yYul^Ʌ :k&S{kzfnN;˕Ww{@Es͹+w~z DDTj6пZV.ǎo˜Gt'?+/;N׬?5kwRRiG)Rq@7 )"R[@Ÿv ] DƆ4$$Bl EF(-[F:{EPktK?U/4JjYnѲh!!4=T,JZ[P'vDDTh iHkEQt–Sqkub|P)ԏ/}nr=IO^∊'TmT3C;5ySL*뺚#nl2p֨I;!:ԳFI]KW+ޚ_byq_oɅ 6 &N|o;UGWO4 DCCCO ロ̚uwϻ喽?^SOʫ8#XIЅڊ=̒G^u1 ]7s ;ˮ/{'};k}NZB"-_!Vك9!\v \f'"L!RA@67L2lؚFٰ9$-~Rj)P(*\Uɦ<޲%,G̝s=;epsHThT`hˆU!V*3,4W,cA9ղ2kWኸJA+%|&<-;as=ă{sGkcvĖ}xQz!(8b7>NZwb)x1rx?:}w <Z0|z;lяg[QlGƛ ,3N{M86 4߽?q^!%yh4x9<[L'q817}[/a}/Gl?>=6\u3g<,n||fI'={hWαe͒g~{2wYY)g5ʢ8bo]!H rFZQ}Kǚ`Gn_ftclx~ڻ8pr  {Q/mߊ7oĝ?&W`> |u6>Sl1=oX]uwǧ7K>Sl}LblqO=IOF!BAs+>}i{?_}߃ xCyK@DM[P@"~v Ej耔J!d0Cb r+G "woyh%[kGE VjRJ~ԑy՗_o4cf ͽoHNnR@Qo@֔)Sfo5W^'}'9p9 -6d`g;9Q+¤5xmi䛯jyxJNske9o!>G/([t ViM1e5ňpK,[KM"Z‚@jхزl1"֢opwwdxxލcxV|f~#܉@ ⒳q9+9nE0yY7ǯi.gl3磡F0<Mla}Y7쎡h6{sw~MsBA Ol w,~p1\ y^>}%3?^j?%kO7maʦ.Oq/ctOzғD)hRuj_|iN1YmeVZ߶O:ڏCg!/B9s]hER}}}n;cz &g.[:l~)fVZ vak;u'Ï8ԚE 902`h >_ ҽ7q0a5fڤZ- ݀ b^G mBG;?<7yHќS! H3 Td4,gCnG0+L;0*)J|BFfe ])+"MT.iQYn,,6$ꃈM6zٳl}e_Ob4|11p7. i>4lc1̚,Nች>uW= v÷qƃspzZ~OEs] i(ga= ј|ig f #4V3 jg_^lOzғBJ+ol!_>r1Q{?ۿRj!KZϭ7uPn8cF&N/?W5n|pvfTy Rk)@R RÙg_|Em}§JkE% ca+i|=&L BnʩUࠓ׶[.'ܕ4G=r؎1exq(N~>\zt'>SZնn,!jteb!ifBXn~I'^{)Zp}o'"Rn&{Y_j)ƩLRY2Z m;m@+{^?}{o~Ӝ-f=צ#y)6ś߅F$bG1͡ 8딁 ]W"bwͪgP{}x4qN[jw-tdo>9k<<ҎV5 [8u+-N6gg02o܄? bs}"Z|ޓXVbX<]p׳6s \:7Á 4a 0O7P˿I,+~(jb4 '퍁sv _n_1"BܭcQ n"lDs?YGnU_fͷnhxtђQ#M~2==_\c_qk?/>\u1\7x1+opW^p4 n[ oSF%,9ɏbVxTS@_~xnqN;wgp! x>~|(KwJJlaQ93Df b x7G)w3 IO^XCC{Gl[}eQ{nοR9a4{zR7j5Ea Q}uplNYO.\詧'NG~wq˭l9#SrWIfb<3={~Y+|Yo 6ȩ`gΚ_`9sj]%Pچ(!rߺz>!n;V;.*mwؙQ!#.g0=|i_|90k.˾7q Aew 7|-eY~wԴk.?j.;ni+pwcKfn0y޼yϽy>k|~y7=~qe8Ak݊W^7߬y.tWiͻ1qd-'#xW:87k38:VMss|PT஛ -圳q~f_O^HX05+Y/\Be%kX֢,%X_dB5O;۵W_~O4i^ye;s A0yÏ:'}Ʌ 7t쭕lid[J1n"9o|#xMfniY?W'0c d}VwΟWfmio~^}1 \"fa *%a*,RqY1X<pZ(!DNDl@f ѷ3s\ ƪ^+'vRxzGgI}8$f3_=q*B,ֹm.exO,Zf7^=-\EE{`ѲEޏ[whz'/e>e=p2IT kQ4Ҙ5 P/WH='2ywS~3x'Nw}w_3<} Dd}`ٖe6əsIP9]}\}W^1:2r^3-7hS}Ƒz֛o^hє)S|a,J)@j䨸P;x$Zҏw*96[#`%ޫŢBo&<Ȯk碼hŻ|гKpsd9ltx iMd 6b@Yl0uٲ)EdQ=jv$WDj'kT|޺Loz/0%kW_<4΀ ~f5 * rfklVjʴ.}V.jH]5GF܎.H![5#:53R 2лMz-O(hZXօvI;R, /5-K>W7Ig5t* Q;?G.S桧 )P8j,s#=8Ymp= _38izBZQ {`QN86{F\x֞{;5q┳~xcLoYgfjU}^ozy'>rvdq┾x8碻VK5i_AkOz&- $ AU}tomV |P)]CÑH[>n~&N "tQJ6r)y\ޙo;5P~8U̓h4') $[0gvi'wx ]`Кrlp"R,iT{ PZ)֩uV$Pe,d@PU} d1a$(sB$)"=B@&s5v ߘ׏LSs6Y~Ϳ&b>cz7\K6̦S_n}?߻jODZUXy88yeʭ]8t/fiރ N[i=y%36AL֢]'/b5U{>>l(ڒV/]fPhh7}HdĀIjd^<U?`N0::zYU!/?|u)He٬*!W!5Z)a/RP"r`;5#J斃P#hԣ|"(!b(;[?Z5cz’ۛ;lŠRiKE-C_Bvo;ZQ_>/zJ E<ds rF9j }2)WAy!3; E5_ WJAa>r݋.10 >c8#R u߉}gx WǺՑE)uļmڄyn7ijT_+IO^B۷oǡf\ Ov(.o슨C^1CB 9L (0TtY7Q~""`4v\]FE!*[@ڵ>Q7X-1aAgնQ89lkp=d7#đ+2b1=! n_Ck,{ێw-ˋ@gį8 ;{x vUXkʝQuX?mJ2sJS1Ι]ul ?i `r{"BfLljn-C&wEV+3&MԶ S*ŏeBӒY3%+ENA+(E.*c2k9GȑC`̥Z뾃P1'汞#4v*mvzqD$_jq}=~''q`K˜8i->QfQ'8{)% R7 KHqtilڊJDd@YХ@ bD RDJ+]U-Yf1EY#ɕvXC ~keDTUj@Z[Fl2K(QU1(.Jpe [Νy3܊_ny8u-_-_D|nlb,06 e~r̬v(>cL.˒EQ\Ņr;`0ɿQǓ%25۸O[d#㐂&tc|&^$ZSß u;{-U-<3LJ\cIJ]Y6(zJbF̜ḾnQ hoj2 ̶:E%@}߱>6X3MIP0ACP-%0;oG7ieɚ=Q)dznX۲E_Jq8"on<*HG0@+l&| h4ZZZ}}}>RHQ0ƌ6 FEeDDkk(ʲ,Iia,p lWs>\;$mKqWܵڏ8{ҽck1XŬA"-~믿a\FOD,i6oB<&Q7cH4]S#x{vاH+Ϗm;lRuO *(6_TLR㔿dr3\E6%O a-6c1"0ֹq}밍cf?UB4ƊRW+]h@F%![- R9\Jk ^6LO$yJ,&aSΖtC =`(h"pNN5_U1Fk-J9$֥ҥRH+PU$PEZ fQZ1[k+ke6c琙ֺQJi NEQֺ/ҝlMR/,˖ O0ᙡ]I8rȡd$\[r jmq5`(:%1aao{'8(8ӁdL̗f|2s3kBkO5%JQ%2>[=y J)~Ag|Ә_c^d>\2ē]E"H*` j"R,m,8 I<(Vaګb"%av`B`6yw륈OB|Jˈq_2iB))j˾x ȷnW*`УvnB4)ydG"8VK}"fZͺHִF *D,"]Yl*A$<~Q#*"QYપVǥHe&lR2+R,˲HUUZ&0qXߥZo(!(D]*ceʏ=lU?6yf*U I1Eڜ7wsWH&^DFv}; 4j!`Zu5vKImXX82VQ}'{Zj{j=" /rH(< !Ʋ͌6R?->SU\e8R"s1iY23R^D*Rm/ i} ![ Daq}I O/E%5c5σOA(e'75I7֞DXD(OZYG12JD,,VXX)=(R!ϏE?[RD@TQb+8\hm +,YZ~"RЅj VwvD*kE4e-7 FDXfVZ-S( _DOz˕TB$DDnOi$"3̓""жM:%/HMQm?o+rQVKsVfھ]?Z- R@yq~`όŷYXk)bC^oQn)X"Ԥpl"1VZ 6G )Lx@MgU($:0iF IDAT0Eؚ6zHN' VXSĜ+]F{@oϽ/ "CPZhDZh[jV֡Nֱcj'eP* ) aJ yݳZ?s}//!-s9gok!4C213maf0 HRIb4DdIaC 9%@@DP !"sי9@DBi\:sk0WUU`sUU?Ǵ ffo_|yKZ(G'EZ&RhF'*"@"S1(y!`u<d" ƩX;RUݪ;!_[HaJ72 ż0+KY-6Zi.$nx鍙JoJXƴldK#܃3d)t9&Jg̓Ά*@I83"@ƀ"T] "Xk ^766V5bn`⬛1s{ jc##B9O˴l[lV\I9sɍ[#kiR*v6ie_FYKKrLGE4Uܩ:-k^gLtd@&zQ QDW!jڧ  PXc5H! p!cU0sѾԩ: q?88DP"k-j_E;4N˴lx$`t(\R^lP&|e3ڧB*m"TR@r,8R4L/ۦ%ʎGɮFɭ H`=}^|1c <{̛ǼyM)Zv8&&1h,4Rkk%O&1,Q7iƽ`=ۢd @@O.0Be-s X", > !4ԞZ/ ElZj-eibHN'ԐoK-6v6PlF3\x3.uAH~CRL0HjW?DA>\> "@fqR9'"u홙fBs΀|=﫪Yz1Vtt OeZ N\<|ƭ"W\KLQOgi(ԁP>ne۵eþ̸ %DYp=hϽ+GW_y92>>~a mt5{ fΚB{aYgp믹+Vx'`d]zmVYc<O9eΜ ~mk=ࠃrf͌c9DDZJ9XjiAI#J) -5W0AV)bV6H\!U֝-)$Zk,zkXF@?pkkrh<\ZDb42`)9ʺN3>>kӅiGkJ5Ҍ;C2E״) 1Q$'Xw3VB![4 u:F]t:]h&2ƌ38pPcB6BTL}l` :kCROe0¯{-Ǿ7S}BCI+ 5"ȮFvyӲ#`})rk E:2(:)c<:^. 6f}!CwY39ccxurU7pÍ7=m}]q˯~|5p|{sKFƿowFF^җZkx}~UW\qE}lܸa݃u#/(%&H` bl @d `tuS񁙕HUFE0A >KZaF?P.4Eeb`>#پ]F@JJ?pSV!lw~8Z(j$7OE(lnp?K PLBKB!aLjiX u|=sZ21ip=ѴJ:묱]PUu*:Qu]z;o`8` "U yiLl$Fb$/*s&#E4n(>G!qY8q9J[SonjO[(iXKշW~F=̙3,UϟWXyGp9Yx}ժ^ft'p9^>U׬YnݺO=u};:qtwjkmw;oCfM*TKaak5 CL*^]S9P5ǡ`h`HEK QNa !Xc^6҈ʛ{GD)$QvE(*QPH$V,\Y^CRSpE }F"/-@zu]WU:UiQiDYe}yk͡z/۸sm;yxD"jMᆘWuL|)>mB@*iTA5jtO4 9GKE wEENZ%/G:ΝwyG[ku]oܰabu4b3nc(h,Ek.S2{ĉ3%ڴX桌5>xy΄*O-0PHXݤu#"ޣem>N?&b0K3EYׇJCXXkB`LL@L74"XS*eJaptZcԷ!d "2DBxՉtoU"6>{^m/y>x6lV_WyԠWƪsSbBӱ#Ge;L=IK[[_@D/, ͐( O!~Ҍ!kЦNoQC~VZn1Yƕ~Q6cim&( 2F7J,\=Zk%޻޵fٳx_@D"ʍ={K;ݮNκH7[2H}he˯_x3O?}֬:[Z6$g}&,jWpfD4tɜ[bc͢?Ʃ2,N4T3THzIh}+΋8P`Ȱܨҕ(,*k1hY6)R̐.ެK괨@D-iESuDMjEET9C"Ht(iD *?iȀE $%`n͒K0=`uրY:C`>1=wQ0:66&%[iE{2}~<58kxG5KWt/\<̺߼w:OkV&C`wṅCEh"s QS@* `WQB 3xz+%[ #4+EDl *qP:КuZQFfWZjck9R<ι9v}Waݺ4>wؘ̙3{ٳ̙1s͝;wtƍG3oܸΝgnw?/8z]w9,+0:tV/(:u7M sj$=#fV.0f!c֦ L n/Wjͽ81A&*0_AjI% 4I<ބHqxQzvtfny 4TZuQ @( uNUYc1!x"22L^x"i#QLD+͝)7|v)INGv#VU9gҳJhDYtaIƷH[ªxqq%,^tgE8msW7Ⓥ1 p3qr_~]V0s?,+{.z#6w8 ośw3ڽqIl7:#pϫq[0,{?wHZow%6~>kފ z\[UOw?ŅK#ǟ?yݸa2.ick_YSX!Lg0ebmu0$(C v웤ӲHMޤ60dTѴAų;J!8C[U>Mnl%2TU砃yիVmܸq/uڝ},nW^z]kZom-+@o͛㫯^~݃=={2::z>@o}1 FNCv迖tSd- (Ǚ*0Y uO2 (1`G.џIƿ.JϤ_/> /SO=Z7|؁~h=ν'#*1xxd3zxt\8k*6s_\6f"kО LFe (>L@hbz[ozԓW(C!pNV?[O|.S.%.+?Qt5Gefݸq fN>ѱK.00ra{%3gqB4=r{,_#ݑպ=F}uc@d. iLD$#<[(oISVT>q@)iJ@XґQfԎeRUlpe?3W0jL(2%li~t tk4"5u&"B YDik3s!x$:ଭ뛺$Nj13Y7h̎)u#@zu=03P!_kg2H ؚioo fơk'×÷^?~5;>9y仰'cD&i_k{,u ~zp־xr\q-]:EE!/q^ (C 7nuš~ڈ߅3.yGa8y/y?02dQu;IzI~[[D:-FnVFU5s^_K3L '=ֺ,"'όs)]Wا۲m:ckc(0C8+<_yPNy _qca#sNxI'r$AƘÜ<} A ;c֬ӞӞI6EjȒӟ h $4p!!v:u]Q`.DGRJ}OSSh$6b>eCawsZgʭߐAV)1ϲ*5#(/IZFXIڔ׵SIOfuXԢ4 #hxY{.84z#iĔncp$~$0{%"ks@"v{tG!єG[1PO_,':"x5i1X3::Jdż !a9ҷ,!8/;3=v/:7EZU `CȉN 1.[h68jOp]sE?f1Êik~%$k,hþ: 5 W 7b[~>X_Z'"_@4Nٍ:j: d+mד;LZZfגYq'UӜ.* .9 m-bU< pD'r{ `@D i T6S *_yzFtRCUE1 kUn 6 j6<SYO4f (Df5cnShp`aU-L3TR{iM`m̩PҮ8¦\P{B Ct!xdbl@uq i@0佷SmR p{!J2I`L'P1gs^Ɛ5No|媪u0n,eRXg5aD8`X!h55'1A@\63ᤋz6W}b2ԥU6mކ!L<_x /y"x/oM5l';钃JJumdڬW @}-U` :l3pOz 8dݛ,i"CW_!|HNoH%/&fm[1921om6"SUn1&5fuqN}04TM;Y*JK  &0'g vl;GQQ[ƊrӚU,}NX#PVTZnő b(6$٨h|"$,a)bS[t pֺYWMDDZ}}As`͂-! M]9gb>2ZczaQ\ Hh lHCCv:x;6ky_#vGFFԥ/)'9k@v GxѩXqƒXpns=п Ŝ=1tz9 8Ӧ(b񂆷;vXq8ܞx|j~v||6`ea|F-Qw?W z|8<ܙ@ @ <+7=҄n_e[y`1%gIӒ"@W)"0)*I6uӲm_d '<%<3%lAhE&H <BwjZ9WeAMmdj"n)+F4d>hs47,):l}_QQȧ2Oiȋl@ۗAX$n+&ihb Ƣ>mQ6ftHv3 R VM 7i]Ж@Q´9I(kHi([t05/!!4ӗ[7 IDATb2~<.Vm1B){`xp8kA3I'7?&,y, M;= G9]!;d CA Z9Oʁ7o|_m47/LTM]N.,;>C%?qN5"]$/D`LD9Y-ґ*ݐJaԽv20G&sHVomg,\ZrJؼ!,-j._Ao*җFD9KWVK(r23#!ޓѝ fHE}\D& mƒ4 .fNR]@5s iyQ#)-qZ?s!Z#{8qY@9;#G[mbLǶƐp}/1Ʀh| UlANktm#xu$AjU>9=wM uTY< o?xy:;|}mx/ >xuGn|; ݗKp3s;6uf,>4,u8BFH4UJ|U8~V7{O75ng_.?s'n _]Ӟ/ƒkG|"IшQ\so+(djJ6yz35^}E!jftiv<1ٌ&7}al|lll7>^=t:DHu~6|be4Ծ="6^g)ܵ|%%(a.&'vtѺV1*iCX8ΙHv"RVɽOZrtF:$#cb֬^CiXDHV׆# %À9A7K>iD Mf BUbmԢ:Yn4[R46D0[ v9KIvQ TOs _h= >"1ri—"\rq`6DE0 +c. "!p2Fn]D05^k(goj6k]Kn#,z=w~3^i=k\%x칸s;!-t~.GD ;TD ^]Xn\jYDt +ڜ?o R(rI;R$n_Ecy+F72J;%j"vƆDƠ bȈD1݈pRm|)E{x( ʡnh.d6.U#NiܐB !_IC U[&`h44Tڰ_r$C >O,eoHibq_*オVP0$-$%P'Dy::5XkB܄^q_AF&?ݓĤ/I Dg@6ڰpd, qDb.SqI@cqB}19ݽ=!0@cH#Z%cu,Tn;"ŠAzkk #i%eS@DCe%Cu Snݱd,&EěgCBD޸sU;Rڶh "Z,` 9g4xe@LjO]zKǴLUwp Cݴ5毳H`S:Upzk(B}Ȳ(X,Nֿ5 N6wqߓ7'p" _ G4' ]M$;U+`Cr%BDlf3 d]49M4tCF016w}`sSa5_ |¸!(6Yֺ1505識dI6v$9TB¸WlLr2D.(QTPDŭtчjxҳKz4QSv)xH}pDdX̔tmUUCdL30 B4sj EӤ GB/۩ aa=\媪xE@ 9@,D&kXo: fƦL4zD=7 >_pA ,3 z^Tp C40r0}@C1bN+'G)zR,?aHDDY\Bؙeڸd\* ͥ Pa+C!AB4!wzmM`l^. nmZᔀQz׭!UрGgDTWxfuo},0ٷ1ӷ%R*(m 6NB2H:2ι:DֶP& ^D}jb!NdUV Մkѳz;OWW@POBz-[nh{,(h>nȹJ 39c9a\H(ȑ5 +f#%*< " 3s4fc,5%ֈHݫfѥt}8gkﭵv3=e2~3tK/ݚWJu2r# :A![?ѵs%pS>*ɠo~,`{ix‰ƴ҂}1du}œC̈[,ɟk8kuS)QwNKvCcIDdlzr 1<  UrLBY'5@ j` ҦDM_6EFRH:R,)3̋LƐYA:Dl ښխ`MeTV3Ԕ [1Zoe>dOYW։(:=Ny dw݄0aab6&^D!k56h1!@36~Im{MunDEHHK_Dj\5#|{ `x 띖iٶ+i6pn riYQҍhBK9EtIrJj9p{SAҙ+oe>|]H-ֳ76ŧ2ZX.%rF9ޚ" %-f@-BCɐ)I q*`*ڑWx #ZBfiժb?qC:Sxu"2:5uS:#CP!V8 @}*bBBΕ7@ԜXG81qߍ()+/ -W(torC$%2\6 c4z@g*@00_z[_ՈfZ7l`CfI`.bAZ722Zk{uol|\C6fQo|~MN!y6/Co-7oaU pp~ᐏ}B::5lǟxž{ U6]k4GjP!(vXG$"p1Ƈ&JS]ԜR5_ +%1D4Yq"' n^{嶕@1h[Ҭr^ '%,/Vjk-$+˘c\Y2cbYX3cƥcJbqD ib1XՍR"i^YTeZva qvAzd y̪6 dBh˒٤!ew7@(!6-l"iɫ& 60Tcj4"n`}@c|{?jn[cv Bx_k9社Q$[ASk2!D06>nm"YF1f53RZ@"3Vrߺ|Zi'H#}[ʰF3pH\dbjdǿfl?Ɍ$éNi>.0Yk2^Oshk=*aff C%~4@ ai= ,۳pΆQ($[o"3gx]t$()sL'LMCЦK}3^9W*r hrK2O"xعMAIߐ"6Y154 b>Z6@|`l`_+l"H~%G\{^ֵ4얆YxS4DMJ   HDdx(q]$Ċ5i*bdLT_96Spʸ}C"L\5X.^JF[HY8!rsӀhl࠷J4X8Zs+ hbY*眵XLDd0Dq:x8 cCcXzs FbH@"!Hd+HcPCL˴ٔT <*i 9izl}'j$&BS\rjXf/ :1-vI?X6!!%pF^@!M>*Ybs\. "rέ^>7; ʶ5ײB]V^\tR͑l>.2x7¨IZ@R,3DrA]~-Zd@Һd*)r$I `Aֺ܏-@D{ KCrUZ@ ."1 YkDZ6"&Kcm3N1 N'RBD  clوHoQmVٚFٙӶ4o wwћJkʕpELOCNT{EzZscJ>ӲɎhzF 3 w}t7)믹vw\t}`%+}Uj(pJkT"cc/@ #1*`ElF<1= E:,N BpW0=D1͢>:Y3D)r7E푇OX$@@PUk(Cs Ե&XP!yYgCHW@`3c"Xc\6+KaHqĚ17CЀ!f30׽9-as/ <߶mǶJ2I%' =:UXI]c\#9m^S5jQQ7rZhܫiY&LݲE'UJ#gE].kv@$O_)ցCnK6L[ƈ\N( /iX(%6!%)~C7tn'"վ2#A!x)c#@:X 4aeBu-Dp)GHkٴ-† ߏ̵H r:ka栦^c*#FRzeRdvcs'D`i0E瑡h{7ӧeh,) |Vȳ+o*2bMJMx4yikˎw'}뺔$BhݮL ܎)ү.MR 1>@Go6T”lscDdKۍkoҘFRqη\eNJYHȶ&*&snzSuսZKdݽMD4Yo؎Vrӄ%=kԽs=tDYQ eBDƺ Klju0 LXOV궩hLO)żŊ{ 3mA@I7LdlZd~.J<\^axNM%`Nˮ+Cv!qn8G\J5Eu]}BDTIUdHjBjgT09cԈ"C3EiיhnfǭDս ͬM2|-uKrJᆗ@YNTB]g\,M̓'`żg|]WUEd"tx_f1 t^DuE 8WX`k;6`1${WUui ⌅:$a{OMv[ZfT<*DۺA6mݥyQyeD} $;9>>mH 6vwJ-NIRU)핔ΗLK!;j0*tOe5TUuLDJ dTbbΔ/nZ &"3G>|.!m !!M94.&vbۮ(`]RU'ip|:_ >. JZEFfbqI 8NJd  RC);cp!Yjn?[U1bLtc̬ZyL4u aX"B aYZB`gFBq`m2DDS:CܫkQoĥmzJ$[Z3ղr֛'-i' 26 "O6&zN+5M* XHA=ljβb$;1;m--ؗ-U d׬U@S SNK`ɒ%^oްag=[o[o袋֭[;]%MeȻՂEL@)HQY/zB@X{bFjB b59_ L Nct+9JKR6H5(R>uIl,Y KszrB8FH& :kj%WY09ks!7H{_fr&4&[ 1::fuOA.\Nh^1 ,dD$c+WcǓO>uW~g>ѱ?~򔧞MX7bGB&L i6|d(sp'DSDW4>@Ww)5YCMqusoPD`SXax⑑|c9c֮]{o6xEw`+J„JeD4EtCHDA!³4@ V MIf!I+꘲ X"b)#t[ [U6ؒ'-HE^HI )uBdj{2@!(M7Z36>֩:,UUHi?aaXnʒo_ޘ)\Չz=qXpQ4Ej{r6znW}47x IDAT<>ja|.я~fΚS١_&"Nwɒgydٲe>O̜9yS=Y5y3:6$c4:?i6J:Y75ZN+Ԯ\Y> ."K*˵E):bv69?mY`!pC9dƘWU'x-r-tM->g:ys?ݝ>}v#[uʔ'Q%Jw$z?f)"0B\彏GVVvO564IyB""}@\4.,r`vDyg*u:}Zk,-j"Ƙ9C'CDCpj;ct/ź* k1nZgK$89 ƅb\6sOy>=tsO;ܬkя[{~ꕯ}5?ZaCao6LRMtŦ֌2pXrW:I!9G(hNm9Аe!FO25'_a-gn,a;;+t<>蠃N9唥Koz㗊$l|0lvBs9P/\=_Er0,#7^CI5wdgfM`ֽyZ*ؔYbClu^Jq5zPt#0U;l0җ +B EFT)*:-O^1 @{f&|ד1A%0ޓ8"4٤K9dTUWC,FsH,!ZqN*9rD;k50^v… MȈ+ny^~/^_ݧ>xxƇ>}w׼~3|#\iO;s{:-'v7:`ׯg,? NDʝs3^omO;>+֮]{G'禛n]zp .^{=a۾ߣV_# J*ne} d Gǹ1J mJ/ <>IEgF|Ӳ3t$)0_Y!ga|f͚ug 5z}Cu]Gj d5k֔Ѭ'7n7,:KlM9,Dh֓oeG펭t/o~׫29/G׌|m|s]kxA4u^-NB \Qc`61 Kr!@*!MŒh̝nW&%љ\ r >i$u+b}IoyV\ Za4ϦFb-z0&*WXH(L1YkzȆk":Rm aZB< a#nBd*^XcHڐA먮}nFcuyMԌ#&K_‡s}ϻpɒg}C}֛>sw{?wg߂>ӷuW?׎⋾͚9{g>ާqa~+ox/շ~_&͚=봧?-oYf#~_\?+Vṟ\uU]z%I7hYW]u-37pOxGG7_ٔwP&x ߧ.;-gKQ4or֦$] S[&0JUBNh>g(i͑5>S~s'E=Oz3n{뭷^xᅛU UG0W~]˿FzypGſ9K7v{>~exVQGų~t#}uwOM(" AbN3Z80y@X L2Nc| @HSF<2 94iXDƨʱAPXhhF'0,"i^*$FN$빚#Rxlk DXkh ! MBi{Aƥ#uOQ୵U!# 69fWU 1a c 3m~qsB}xs9|կ9ē/Mo#8RDg/yD?|)g}_z%}c*cN=w/T/l?#rGoc=:׿ ɛ\0w/J|5>w_v̱.EO~o1o^8H"u]Ϙ1s=͜5|TCWtu;&MpMwbb1!Xi>`h~pljtO"Ja&- fH-qik@nIqZEo~?Ors9':Ot[|6lۜݖ,y_GnjɒgfxLWUuYg7z>ݷv-øެ&ð'd/Ɠַr'{(zsE|޴d]`iI/R{[#4f(;AaLԃa{P{`,{]Uu/>ƘkJPɃ+<D E*TQ뭭֋ZЋpU~gնFn}Ԃh I!$B0g5Ǹ\kI g{s91wnz zrc0蓭yZ~7p̌Kߞfp{{rl 9dﻭB3]M0 "h9֧8' "fqhEDda*#_|b4~$nM%|K$.+L.l3 -*N  PYv*E$ {;l-y"FH "LD hf@"öXX9He˲\@tV EGIAjYupBp6ƈϤ'/qIӦM?( "wTw :i sÏ>}yGv횓O:9 L6m?s[g̘|#PZdM7\b{~(Ӭ8~{w?x_XF#}թE?As;}\xK~V;9%<2ei I&֟;Yfu%\ͿczvfJ51$$5Wv=,=o<=RKO,}F@jdgY|Gޟ<5^IߠsJ\ z*w2C,@)d˩sw*@ e^ f5Svp0Sy"0^T>dYyNŬ |`ߪ9 A ctS ^ m#1wUɧ5fff[UV !YYDbk#ѯИ`<trVt!] 1 ]zQX3"8a,gTԆlcjflxG~.T`iޏ~w6o~sjկLK e{rڵ9\uX~}Yt8??59qڴiN׾/Gq7\}Rwb; 4%p4kqm(>;ͯQNXϹ$1A%#[o\kIɉHn.n*Z`$qďZ ׇzehKy8}Y>iEH5k""bW}-:bG?yG_/iw٪1E~o58=\/zdRћX)N$I*0!qTIMlLk%hTqO.bf+b !Zk Pv1)lw-S28@ZV=iEe Qf*˞jȘ(:(Jb+[Y%ʊ W!i,g|`~cZ `p]wݵj~3ۼ%0kGytre=__zꩭ+Wի^sO9e錽f}+D~}uVU.Nמo_,Wey-ߺnܸz'f͚fzGOhԷ}e2'|Q5mW]'J+55Z y(yoY#?MQ'#Mxn~7( !98 %=͚9m`t2rڛ_}K1o|S~uO6ȳO?S>bѼM} ?q]k|[4{XjE@6ARMZSeLAeԃISH*[`ǐ!"D.jR$Ӎd36%C`?z^ӖHOl 0oZ7[Du5=vԥBI=cͲEAD D@ ׬eArƑjg NłV(thr,AX1-T\1SZ+K` We9Yؐ\?{-Z|.\|좳>kzĮpdLc> _cg=PXt '𖷼੧ϟ9c㏯~ 'q'>oO<|y?Ϛ5/|ẃ>}{;}|OX~~_ޯ_8ܷΟN8mp)ׯ_T[ 抙lW`7Jxl^Le Gs? )8ub]Ur/TJ:~;5m) G풣|3~w+λ2\yÏ6l7?}/q_yx}w?l*JgfzmF'Á* #+$tD0)89Wy׺R#nJdY 3@bw78ռQc#Irpby8p,U HL)t_c-NQUŖ,+a6!cD̩S놈d4Js% D W*!3sFfur6z·n-+v}̙si]vkވx^b]0mڴ++cS`ۯK.K/dzYgᬳn2cƌN6m@ċ/v_vmo~fW5@6+O6}ՕVNIga1]+[ GUޑl+#}lSW@@..u}"Fh$혴t8N3{=` ]upp;찗ds=.\[l\뚗k?ˮ^~{BU{>[9ݞ^ ?ago B%_g. HlLxVcӴ?,:Cx!1$^P!\NWPm,K𳭑cT:yv9CDDA7I43[nfcec 3WZkc- v~X QV EmV/"і-y9R#XV֍A"u"_a. A03 kTpE?3s9;uazk,=eI *ʎl7"kBCkMF$C(81CS%I}( ic @P;(ПB;qH9s˶a藿;O!"}'Nm]I]UKo;lYc abfTe7r:@@[$)9'.՜-U~MYva0[TdyxXĐ"]",3KR5d$dYȖ."0+""\U t C" CF5~|(%Bt:EA08;YZŔQXaF2HH:3z=uc-͹f4 7mtme˖b,qm?uG|Q?ߏd,sE~5:s\U, '6FDUvJH\#/{sɳ%$&bG')=ND׭R;e|N'n}g 9u6e}OÓ:wލcaob.p|%`t c P01X+. .ڷp:\.SΝl׬dv\tR D9h$!Wl.?MMꖡp Xt~VxK}2:Vba=:C]ĭHDEV‚NYU g2N3#HH`TUY(U%QaQ{-\r@(aBUUŬևDSBAck7i֏F+ #|;=o޼.|֬cϰA"wk?>0003ۓk1L5h nq I'eSSBI CR xz%;W-7{G+S<[v0j %F'1DϘ~ IoP "a(L/(HJłS| Doj6(0kI_\!%xE`e 'D!c[JɌkݥ՘̨Ñ;ık-Se) ,R^YيB=7zrY7v}!![K,0 w.a5)pâ(D2FOtaI#h,`'oRl4>@6ˣ~GxHgIS簘(8wKKt7YrONKCII8!<h{lܰas^{L~- zJuT׸( tlh r>W w ؂o"r1`-a&m s]ReίgP'q51 x\q\5gB=R,"l-tB FD1U0`=C ʲdB"e$Bc wnXD0 #bb56d(ګ*$\6ւ]*a.he\t EXmz O[HʁHA~IUmTWKBveǎA\[K.u#:n1͘};7.l4z)z3]x ۑD䀃}L(ZܶXk]]Zf+%(\Q;2/ ZakC|[ [E|@5\ZD.kΨysj35!!kmY200| SU#1EYSt,[& $TXLH"LDXkADl$J!T"D PЍ6A+b|F2ɶ@}aSknUU_ҹRfU϶^'M v͙7>>0܏_X tcܙ-S4ǾT;8XK[iV2Vuq{Ecߒ_?.5@憎cıv ]H_Nx 0)}mtHغY"m, 9k9=Dg AFD0Zkʂ !2 W֪Z "p{.0plQ}MPXJJ5c(A"H d"qքt 85>cĐ+NCۚpϐ %WGFC9$*#]w~+?Z6ӆ}{MOvm[(Ω93c=ߝGs̬.!:@3 lWD~॓ =K3H%\U: y$lQUg YG95;X,Dt+޹!x.03k,^'DVvpp-}UeEn;00`l%^0d Sr&M K0!%- t M`ٲۢw\H>|Oo-ۊ~MŶTmD;m)_pYTjfJg=S%Yf'; yu' iDaZi eX9D:hNuc]ld l*P%O"񓻈C #)w9p W1^Wp%@N/w/]KFm8J?:%@ hV*l˲78E4 9L'zڢp:"VeUUegEŽhA E"ѭ۵ja8UQԨFgtD Obڡ|;.iagdgm.&ۍ}7RpW-7!dtB[d idbg&)O|y~A2u]t9?{Of 2 /Wsl+tuy{ϗ`_Fa""DvmDbIiONHobui4~EdLAvu}1<Û6n,rPt:{LAhѬٳ.SƵ )RGĴvd;P1#sAn':,[ @n ncɤP)q.gɜBǹ\2F0'~yz~P#>d yk[EIF{=ѭ`@Z@*Q0[k mk-#QOa1*{mU\A-mnA+긻b mF [?;n#(4c1O-37HPe IRX;c4knF` hRW؇4q|?2SY;Н;osfcn[cJqW ʜn3 ^QT_%u ihB_lZrE<^ZKx&Gld'==NR1w۬J\*qA@%DBB&0 MO#/Ǣ5x/  iں\Io&G2o@mҽ%!ΡqBea[UP,@hȐG5>N%c naFjYZXV129 $2e}:B0UUYHϹF@):k- Hjbg Yq1lґΥ-B2? ΐRٸ2rR߶Rk~5-#wq":࢓vTK_Gr"RjAG"q;_ 1ha\g6)v8vFQa<J%܈o3Jm&ihAb,M`au+ID:K"HmD:LП_SemedRfJ5`vb\"@ӕ`.kԩe,˞`藨 @1dZaDdl5БX#D +0e-]XD=TLlwrxmԗd"a!h%SfkV [%T %erw ?wbb3PS/``1bj=m,1|uz k ')X|Si4?%c;C~ճ \P1ABDXSrU@b]!}u$z5*8YhL|c,2UߔMz*9O: t:V,vY,{B,[ϸ84EQ %4S/u~U]2h+ ɨM( ȀZkEci#;~O&/rwHʖdۓ l\-`$X?^O\iFXp/9Z Km05f74z7=-:e#FHD3بV lJHpiS5OOIUp7z3H1qY-R̤O׀p+}Yf2ɐA$AkZfN^O WﶮCB>u˞i>zw&@@2Xw[LEG*A*Zk+ؐA"`D*:@ ̀˶W)e+"QA !@26ynX lZk˞fc т5A"S{BC0|Q2z+(%%dֳؚy1CLMB{AI^0'pf-8eyݨ=H?h"zIM&C#dnzv-a.TCf!jʰ T&x,ats.!I aJisIO&Y%QWV¥uu*Z DnW. U %cHN5^{[  bPBS$E:Cr*/&F8;D n镃HP`Һ*HHc(ER=a2EX(nSt%,XؽD2ŀH=]X_dޖ7hٺ3:nwIm6ѹ^{5[yp7?wg\}U'.YҤF7o;o3g\}Krmu{֭=BIv4`SןYw-f&E2՚Sy{I?ĄWI`6ycB׿DM<ߵqY ٜi 1SV&R"kő{m߿[nC9ʪoyÔ]?;%s~ Y3Iq)(FTX΍7F$8i\p8ۋԡ k j yÚ9$>gGDD˶x쟧pq16k 'DFlC/v[VB5ܗ{o^aAzHi+p'C"b)*9GTSbTYPNq^U#>r7}W^y駟w(2j!!K\OZ5o޼c-u//chYuzfJA`#簞r굩CW BKL]2n'$ w85ͲPn jd2qO/hևnzaΙa@Kte50ᲄEǪeQU_% TJŤonHl_ l:y^U"P)yT2hTwG8NYmĶTKO+WCb*#!:~X߲{q@H0#K$f_wzuUVgz.HDXX,̕xKt:$ts8^Û1![Ǯ^'BY*!N[VeYN(]vu}tЁ.]zݵםuY^zS?38㪫7]pt^E?~n׿W]uՂ f͚7 M_>ys#替uc=أfo7-[.}S^t;ZdWӖ-9s… 1 ^x~{ϙw{Ջ_{^6r_{gu׏SVࡇ\dɗtI'4{N[v}~{o֮YRꦯܴdɒ}s|~do|ok^pYKO=ܧ?g1sKqǝzɧz޷ܹre]Ojjժ?~w|/ynspn~qwQG6Ӈ${OnؠHT#udee5JZdwA0kc_g2I/<֭tz$( Vlc4 pl {[&cLkQAC[$̰!I !l4&ZI\|v=ɐsZy*q 0e[Y X dx/{kYn4qp TY;a"2 ` 2z MߡB/)]G$6܏>rN&90,Pt:Dւk+Uyv 5MkV|Q;;,Vwfg5H lI7v'ِU.[Aa$E%!"flzOU}w9s~_X^׾zw}c7VbelG{{}k__nڴ)>>v_r뷿c=vԩw_|'O9v֮]{W#}oKW| '>|dɒ%kxᴃ#o,+>Og?[z)yᚠZnO~ozO˿,_+W^wߏ}cT+u˷m}oяfϞя}6t__ϣ6mz_i~|_~;߹ʫt??oa! =j)LS5V##i6VP ֯EhfxhGg^D4r|Lɫ<ȠL5z6NA15ieD֣ةZ&hW-9yfBu,`86WщSm8563 ھTD 3xA@`UP P()RhLX\״~ kM.ѫтrѽz/q<|/{ecKEɘ"a4sY|9\PXE,s,-3"TX'jjEa lKkt aaL1o~1UU78RtPt:wx]={v]fMz+`ifΚ%8-xł //~Q?餓f̘qzء=茽fo~>s9?>Νmԩ\矿馛򖷜d3~yDtwװ"]z+_y!ַ ?C/^׾׿F9O:3:=G{LKu>b\n3l=ƳϞ?ٳgq6lx>o}C{}Cg}4:g:swiFo<~DGrFDR{]$XfwM3B"'z`x ]=1u+LaMm+g"\ԴSAj\y}40Gjqɞ 98(͕Z|X#H/&I6@q$؈US8mGcߛ̯* 2QŀH4oGC/AZUf.Bxj57 ># 1$*kA Cư-ϕ#l I9R2K5Ef4S^MxQ$`[UVȷeaD^YL@YU2;o+VcdVozǯy ox|hӧO5s~)S|f˲Wz 7~qذaâE|lcg?\vꩻ[?q100)Z;zgWZuw\qzeO?t}WO:u{e)zRsY_nǵRO?hBM󒗼d̙}YÏ|泟;l2888uTXv~s<ʕ+;x͞=kppk ^1=>2Lt9ɚ[6 iNKeuZn#dVa.|ꏠ_ldzEꤩ"ܭ'OH8 zO\6sJ\7/ZW?- IDATusD% 4qpC1X~:5ޚ/&|ۡb<_ʽC\-\S{YOdJg@4w}{!c LduT9OD\x-2yF=2/{ 6j*K$^ \eK֒#Z\),z՟ա{#XRPBsFWSD[@Ŭ)m-}w{ٳӋ3f̸}sv_M}hAn1|/SO#8b=;<5k֜|MfB'!"cơc7gqFvw!"Qs}7q饗^~eRxGeM}ws3f̸.^&,X{:e/ :Q2IEqMK!js%os h (Irr_0 1y0$A͓W6ьl 1cEOѱN̕8GBSPׯ$GrJF hD*>a-6A1~[_Kr *,wGβ2B?x&bwʕA*[TDSeU"Gŕ^(n05v͛ jsaC+b>u>Yoԛ(d""1shuʛ eV%_.Q, |Edf""Hv+6T 1&"a˃AcL# mm/\{/X-D\p5\~:,xg֬YqժU[lI{W\W'? qΜ9W~rݺ?pCjlٲz˗zꩻKB[iۮz9׿UVח C{ΜՏ?nݺ_/͢w}/V`+W^sIܹ/+VXf͚?G~Xyի^Ϝ9\xn~>DKh.GPHhB&z S!EXSbHL2I;-H%L6^':sq](g~9-2q/~hĜ='%6d*>0NdI >dwxER9%&w\ۋdDa.!"6LHWq1-z5Yy=YsU 9 ^Iw#MbJS+:mYҿ5q@լi퓎'tL4H 7)%*Qp EQ1D0GFo|~qwE~z'vЇ=ŋz^t:̟??쳗,YtgwwrǿG}ֽB?̙3W^}k^Rc2}䒛ni1,;~+oyN8zu֝*Yf]p]w݁g}]̙n/ᄃ.[vk^c]m|ɞ\g~QG/ .m"= FCv[&1fGˊf}S=[=N%m nN&i"يekz^opppp˖=oO_$L_zIA[;7=_-A|^ޅh`T8N/ qSH*"Ld)(FI2(LfaHPE+Ab%Sʨv& Zx,g+4d!MC"!4( nWVA"lbKWH:}JЮITZE~U@CP$A~ <.,#w+OxZuq0B+Q}HԥW0V)3vt,!"2:VIPԧتb˞$*@=fCzeOexNxY`kQʛourL|x/_2up `sz9{O?6|ם?{,""~|0(|3YHUZZ55'6E;M!F vQDC Yz@tpN[ԺImw)]faYGvmWD$2EQ4 |)CVuL`%>=I0Ї#QDJ/xt-?g0,΅/<"p]eLJ ROx*ȇU G٦z. qP{\PY3\,sV¸þYN8Iv~*R_]C*&võN Usb\9?Lc١ j@i2`iO (U7Bd4K`e2$czaR趬*f*s0l?c{ Ov'5jg֮][Nz !&SJ6#B- q'kBɟŽdi|χ^E4'"K'z*Il `q}̢I n[/H,L 02Dt:6XJvX@!g"#–yDM@7^wݖe˖yǛ$/}KӧpUY]vc9҉/2tšߍdv2Jt:%c#0&!xc㓴SXgOH)`݁W ,@>OGQQS~ס8J=AAL~x.f`>>1..K KNr7"kIi"NY3dV"},ĪH8@Xܯ=6J>"'i $wwԐU(?b,M|G&! &8+#Dq&,Yf*LX!&k*vAP zbD=PNCwwϛ7]~y-R((T&Z7j*"ZxW߼\XŬKoHJI?$ Kņɗs)#/~9Iۖ\ƔI>7Z-%nVj2ydp[BBq z>}s`' @,hc苆[٧D*RpOW>.[D2dmb(1[Nu"B\?qKŜ( b߫&n\q=ExƤXnm^MfV .ݬO>97t,h5Oc pճREkQtcWU%,&,")}&ޭ3<3ۃ֭OjGpG w'N8ϑ.J`w蒓H04Jg6 8~=4oni $(ih9c؞U^E+9h>Ku\O&/ȏc*1Wc!j=T1nJU>@H:O7 ikyG+04JVh蛣>YYH=IIγ*,%5DEDX.wJA[_#;T:Dںn%楒ݎ+e{;7h -nϽX0pdHԐ7ug.sunL#" ( dԒO _l &?_`t,w{1a44T dĆ!<.ݟM]ںaRZ4)%'k"!y*KE$<ܩ)!U+=tRJL#ۼi4a7=7rATݐsL2H ,2c"œ7%+uJLDl€B Ҙ 8׾K=r%dUlj4gZ=x]eu[P Ƙ`p~350Z1N PBhG8Bb*Ƃ !S A 8a( !H8$PW5D P٪K]d$ S񄁈-˪dkrY%YLrC5iTdH4xKsC`d.HC+2V/2cF V"Bg|L.8C2.j`bl`MT;vN\EC;-Q\h=g~-O"!^PRxS"!W |AʪT^U?,7x6nڮ 8lO'C-mϏWU;zFuv5d)(2Ϣfv׼@qa?1~b3Dv8nשj&6JZ  d@hlդ;hkoYjMf(AM<3ޔ4Y{.Ҝoιh V.m4#Wk#~i-fpPsIA9lG.T6էgqjn>47Sb-' Kk-*vP`I r;2cyϥRodo^a?(Q\!0BDz"2 ¶BX+N\U% z o6mJC.I;չ7nB}OV冨탵ZFΘ^O1jakMsM&JPWafkRH;6 Ϫ^ewyTIuswT;nEw겜&rϫaW&3wZP CtCnQPama}Z7DhdNέ}(~TEKg'0O}'@r6~ w@eacW I\D3cڧakE7v^߲/ft1#EX6v߽.!I,v,W8[cz ljzV?N(H".E*@4D*V;ŢhL*j&;$x #KC昤-5nv/"Cƒ%*tCVqrV5D*&ip6׋0Zޔ$9P@[5cG< @Ba8\.W[zb)yf5Dn9)m4~-*Y>qZ$ET+DdICD$"a I` FEv؝s8ܵeNe8EzR`ƸH2)Og/= 6"B޻a~ ",+c.P5"`~WV 1U1XFՐHN]HT 8JcLlӘF'i;>C]7 ׶:kECeG̍7P4I7asS}4QhFVݽV|= IGas4C]B06m)h,[w=eǥqh B82[hbL6) T"۠R(> "2vA 2Q4Y @ѱ բz qB_|ȭUMRV3`E*qI͟)'b7C/9K=0v@0$;`&D;67w""̆ Vl,K[Y0)DU9ȶ"$F+ "ф[GoR׏Zy LWu>GP / H(|E>Dk(vĺma(Whuv*O\35hH>֦H+1#Uh4]Uԗ^WmT9ǐ~#f3oN\ X,ʪxS67p-ϘA} IDAT :g5RûB "\u`m~EtEزf+1d6HոP*)-%w"2D zjx%e0~B3ys$SjnC`D @l=!C#cYX]lǍ) ]Q˖I2+CA"0B Uck`۷gI7CڊTeT\-PJeW{kk@LA'Ce.#W)k"[2۾ w[mU6IX$бM,%!MqRFp?'U΃Dy?**Rl M\qbW AR*H!9_{}Q G-xUU饨ՁC+.(suUJgAwf0wFRk~EtC"| PΗ1OݿG~G_t3iy2mVc{ .o뮜 s-M&z:02?iMl>a"’ [|j q;jx< ʋFLWJXѥ( hcN}UpA%B<1? I,Iw .%"`.C\K @0o,ν37~o 2/DWdDQC5-ִge0 (hW0؇|ucUiYjT֖zu)w[8XPJmuΝ-&0~,`3~*;oo|;Y\wݻίگ؏_ O3lۧ;=x:.JOC.dx4qDpV̟Bt/Y%vɣLUT =mx4-orÒDxg;irĮvo9qDAz: 憈gb)!+u; . z|1N^,.] &׆N5X3 ! ^GH !K:D .[0} jʭP!DvˀX]!r]z~:`,12 g5-޻7)& r m ̾Z3k%H7=D$TOWϬ*ׄ#"t*_Bx{ͿNWW>J8$'K]{o泟-T__~./RD=6Cr3xЮt-ğ/A\> 1D̾G[Fsnߦnzd!K/)d.g$GP#"G&fjpsU$dW_q6TdQ2Ni@d@Q3 1tCȅjݏbaMCśZһ;H}빝wn-sH40;Q֞yBoÁVތ2w-:btܖ ӹ$ 1L,O@0!eNf@|6oiDF!s;뵭Dt:-eYZow.b7(B"9;t07鍿=w_}ޞ?C~~Ǟ;ȯfҗ֏'>Gȇ??wk_#"S?{_o>}7׿|7ԽӃq;%i$QeB$̶'TR Zq` >qn=i6&ғeI(4Wgz. wQ%66{|įFht ~φJdSR1\H~roj(9m:l(` 3@6 %. BQ%4Lq_BM0탸y01aIht]@4 șq̽Ⱥ!Eq޺Zp]b)Xc«&1O-o'~{G~G~7o_=?~Ͼ{~';_}ٿ_/?_K??Mċhs-":̼ڞ ڽeKʠAIkʧ*HNãZn~OiY/F]q @=t`k=THwj(3wFA`!65ϨL`\z>'Ny=̆QktqDjG:w|m2c2( Fk aaAh4oJB,M L28'\6l7IJ]OVjVBos T e?(,(݂ 1YRIN!Zk@zz!B5rUPYb- m4}]-o~_}gos=ܟ]_>{{*|ӟDs}ۿ{ߟyO~NHv< ̇\]!gecKǰmQJip"+Dֵmef(3zٱwLҝ-3N> L"赭&WBph,4%ۄ`&̬[_CܲQ!.idf!1GZZX@z_A%z!1_oWc}I1h:PdY$P(5"aY'GY:wPLtUGDJZ)ˋj5HT ֘;b< O "xӛBe@DW{Nm6ܹCHP˝;Wk/,=O]S_|//|_x fFĶu]AD$*RE6i GX՞aқƯy?яƨGmo{П<p*?o|<`A`n,L 3O?TԦBwhJ>>03Y$Z q R3xiɥV^P;?ʐdysզ^4L'*MyA2~r*̦DXj՝E-IMC'TpA(hh;c%;~17Fu0'G[(~M"&i y0|2 CX8zhjтR弮̼X[>GHQH}}3?}3ٟ?d [43@Dm?ou]G|o/={_F=ڞPcCs|y9ua:W|֟HGdCm'ׁmzJ~W~;|>/|[Gm{VO;?hZ75b_[3Óv bvt`´Ij0`!w; ~òQc.J)u4@.þ UY$ *>n`dMgD#Kv`Y[ڣN_&$.T42!6Ns3KW^,?i`w:rEU s 7dmAȕ.`fXv H*cyzBBR?Dl KZu9⋧jx .>a\:PֲMl }3>%饍1?ַ,P*t(BTY g\Iojrcܰ~,]MeFLN:WFWOC%&klHʝc)]jZ6aeoPݘ@2̒".:wP_۵sjzb l@nC(-UGGÒ.:;-h,{s,Ӝ{с@WNʂ< Z#$ ~p4֦tD]3Ĕ4W2LTs3Kk!@ﭭjxE.Ѳ,W$"HF(!:X*xD~->=?6Zؕ847[O ~CR@wam˯yM/5սңG./=݅Y$3%68v*ܴp$pcYŅrǰ*C`pÖzj<q8p%OEBp0D㖸MT%6E ܄5vBV:u[eX% HT 3t I:eԧdQXEY[ :ǚR},b<&U0gFB[4z." 3H)kk*֚07[V 7 ۯGM/3|{l;M'J .=4TN,Vlh $}bi\JpN Gsa3o*%2xo7S^y>M#;ym㰝 PO h &i:3Blt#@̎pmHCDGS$W-jvCd蝆:(sfz.ˢf<# }8`q*Wa)Y `a/Ķ2Y a؜Xqg8Wgll/X=yTE`x8bvZR9j\$B ha@D4^*  %齅D3+E5,sYgvq /u{=BӉ=؇u%&P3|h`|N=Cp!)oƓ5`OxЙLƧ xnӫG$ I?BhHf4? ܨX=  " Ej0tKSkUCf$N*abcRk i oe(}̅KȲ]'kbt$ޝ7Ioj&"2mu= 1 ERH=KU8eaCe^1Czicp'=Yԟo6|a\W! L]v}D%r# ܅2^eM؇Z_M%"E;a MEq8՘2S@0Qc2T@cZp&rMC 3dZ7 (  0IXtU3HS/ǻ2QÀw]dž1R #$=ЎMީ0gqh<,f;B0:=*x4ax|H 7aC7BTJ)T|6"IJT/e,w^RzP3^rhJU,̤2M%dуY4nHa3 7dhbΦzF[N %>j]p M.Gct"T;<|̥Wye\-C_aBDa0 3 c*T!,@S;!۶? vA@HUyy]& ȝz[ԶLL@D#Gc.w.Tǹu*b {LבfћnUpD,v- k `& JMĈkOn (܄@cDY-M/ED"YZ^[_׵wJL_|2e@B[YONS&b&fxgLǚtZ3.ĸrPviE*[|]ܦ"H"6#X7XDlǵ=‰R[4#ps$/_VIXVy{N-RvaQ0tV s<Ɇ׉$Vrrm/)%\&cQ͆xk5XĠj~{ewq39,,eɘOAb(/df*\}rlzwdJͣ?B>0}[-"4]JEMDz@K]FBBb{PD` Zথ;}>ܐ= 8ZtzcٽlN!9Zy">lS0.{Z}6=աul缏OO?fS7Wy lwBo;ʄ6~B ڵ @"z~,(a "r;3$iX`\kN*ZBo{ Mt x@ֻR+xEs*5sv|^MhJhm!*"}YRJq#@BZ+ED]:4t.8 IDAT餗5H!.}m&ݦmz0s"c?xf[b˼ٚ}!/'Y`) tb6={zy^:0vݮLC̰&!5 Sٶ!s-?XJ#ulͱCԃҰH" siMlH&"> rJyǡv%p@*0$m"w,"k[e({64SQ{&pJ{My6{q(Lh]<>vuq*&BXJZUfzj E4,.0,2B%K.]:,A*HlC'?'V石=1pKP~TWOq>IpGqi'kg Xf}éƩe[=~sW)N% y%@)¼1R>ϣ7mCw-&pwD@6f\ yFP"/'-Szo Xpf+(vSTvawڵ@iLԋfI\.[Tⱸ!6X (L2r  {kuM%UzojG_&1ɩ;6a\5+(=JG`5* c\2X`h{53fZK@puԸ7ffBT "zy0SթҸ-˲, !NK)UohdrңG˝;wuE=4b#x|Yu^y?BFoj1G) lj?B)jw9qr=u}7D=y)v1G[ҨlPyL$u;jǘ7\+=Si|9*4npz [yM bM(;$b1͜6N Ώ ATp%8/!ND@Р4Zb!v#}3K~A!Ci>]GWp czoνHdc"rB"ܩZUt7֧?cOxD>w"WiCfYwn`/ݖ݇M BMC ΍b$* čD#ϳ(Oߦ/T<;.NN[d`dX\3޷_2嘱R)ZMw@ !Su,QĿ9bxJ9AM2s9tǀq~ҽIKb1ܠX vƯ A@tݏ8nˆ&vA<'.rӸKBo--;[H6K=[BM\=Ș;!)]H (19Xp靖ݢPZRm]%/fABt:03"R4b".KE*gJ9r:뮛qx#~$Iɛ72=Th>`'Cw[t Y;:)6vjvnȹ[w^q720;^ ZԂXYa21ڕi$e"|7ꀿN;@zc2 G Nh<é6vN syUFӪ{RFmkep'D,.L}BΝ5IJԓ>AZR*QA;!-UP Hu\J- g?tnHxc4;$q đEH'zrGwreiS~s"8s6=!OdP6&C≶vtH&ʲ4wjX6$B% ~:KvTeh\*Hd'n9Ŝ5r| 汁В8‚QEs4H'1= P:m]nJ` .ril,eldw`kd3r>ƸkIη.Rܔy=7 m ";b!*Tsm]aY꺮ZktjkW|[_| &(X/-_7L c6]/aN$>D8CEI/ڟ8hϵycB~':+s|州TI&?b?IHD7%f@t (K;v`4^'m%! Df9nJșa,3{]OQsO護^:92 j1BϵeZ$ n,@ -`pvm8Z޻Fi:t70< qDZ5@kzpцW~bKzZ[[au@-{W"Wՙ13뙈 K~ųO~ӟ~۟{ӛzI~2=tz^vd 4!zD>l=쳅<>"5p7LD^bnN.: (MDv?c='A9Gy\OOɃn-4#4NoxLӹ%/*/蒛*f)f.$U>?8F5x"]s{絇a2_|5n}εMYwFiK"vǼd \QڣH0+˓Q Q8N>p90TH)h}(v+,ukk/5 RJs{gq͆Cϣ>b/D*b5A1&jL$UZc|b QQرp|] G=>6ߊb~̢/;)PoE G"ΎDe4PV#Qd$Z3D0z@i,b;wp]O8. Qim5\O'i+K(K7]_@?'=Ziט;"R἞KYJ ҙtK"}]:ΥZkk+rkH@ЙeލX!KP;"w.dx}¶BF>}!\nl&Xt/`q» B'`l: (oؚ:`@1 >F\+(L2t~>y;ۛ%/%4mbCݦWZɫ 9"ixDzR Gff6:$f*(/$)F7Q 7n..8GݡЩ}Si:bA/D`Lq|Mc;#"_2T"?ۘ eIZߚs/X,( yXLfb=N'm3Tym/<"gbsl@F#DGqnž)ii "wien)i5P3wZJVSV 3A%3&B"+`JhNeAg\HJ?{T);wDy*`EPJE""a&,,*$fZj=EzkHEH ߋ Ŗ)iNl̞B#05J- \pXƧ} AsFѥºtB0(t<:Rմs&дCV)E'Z7/ ܘFБ$!44!0 Y6jnS^y>3A;/ںũ̫FAPƱ <8^ܐ "m!Q齱+o0J"D@]!4m23wgQW"M`9,~"Ye7(됈*Ck B„$a:ի8Qvh: es vCg ~U <{bHc N|m3Jk Mt.PJaE?:~T0wabrsyRj!`f l !B @&LG)!$ z]HU;s3#FZ YH5Vk#zYNTH'܄5"0 JPF;8 YB-3gL-bfu&;߱DpZ L7Ҙܹ{ދ/,7hAЄ Sil15#nS;RB\7mh/<̲?alGS!;E! %At:FTYIDȌ-au<̮}镗 HDF8J1,RD:t:h@v L>X%|I,Dd=˝;5*e^*, =,bR۲tXjsWcE@,Tja"}uLND(̀MS`~@3 LcN l:X3Mč8NPg-R9$te,be,w8&,sDGI;ݨoI - IԫaKMMMw*~fo2 5/v5 ӫsr8)x==f؇/CQWa P<c% R]bi؏,pDQF9Q'cbFEu)u-Z:gCQXlC&`{w ɁMȧ&SD$"]$oL&ICOڴO8t@X:jb], -0 kt'aφYKZk%L~&nJ8tRo)N];c"R C֥-=PċܙkDڊHNW3Hg@NO.Nzf*$g!e"umDcf ZO "ˢ.37^JEaF"FD$kc ֽNU&@,Ի 0Q !΅2r:$¼Wk  Y%chS+`% \)6ΓMc3p}3AiDs?pDY!X2HwJIYThB ݺ iHϓoI_&q΁p|2 J\'Gd2pkt ~" LuM,x j0bHRg:9@w%#! C 4Κ)^5\D `r ^@Skg~@ѣ%D'1d$i#kqӀHC+(L, #% kLpfgvT|ZμT R@B@ #eVz EֻmNW⛸N`OR0w"XjѯTp_+ 4@u{V0!R;J@@M }`k% DDax̣Y ٪%'`Hd5`ـ- e6ۙMϪ`3qm uL0s4-tT|CQ:T6+@G c6o/ `&D]|)j'&%9WSI[$ML; DSbPLhdDmHp>x@`띙kF@Aklmn"30̠.󋈻"~Y @/ی02l Ab^( koX CDXg~|xAJ897PIwe؍k8}YK,c?\mH 5 R՚ {C;Wwֵۡ jLX+ƝOex$rXKe@[aSEB-J{,E*k َm0΄7)xR)PwTt645"2wzUhD2T0%TwXYP\9!U7 pm| ,Tz^"IQY`{h5=ݠp} Y/4XY_ig rc~1IF~F=pxB$51_S&!/Ο ޑ49xHҷiMO&#MդlB"(½:h6h"d'.j{'a;S@&x6[z{Dz?:ձ;uޙ^s|wqLzfT"$;ߙ,zQ]Iw;UDB.1$RYjmMd3{Q*"MסּztarZ  R+"6>#RJaugRQ僚sj>3JU0a\W EBӜ6j",ƔJOmr5`8g[ @Grԇ~GoG$e%.lsIʃ-r txY<7NOB2c!b'E}݀nSXiΜ}Wvѽ3Y{" d(c/dx]uj NA BŤ+v3 ڡ$5Dզ(̮ebJ3'f!fȳZrwJ^ IDAT d}izh*g;sARyf )ĞP@ OP۱p)e1Y= 3M-0W Lm|\#:T mRJY[O ZkZUZj"⾺,ɩzt D*RR@BD,}U'sW[[U~VR Jөih9Ԅ~uu`{CĺnTU%#в .bK;1@-vUNjP5Q L6jy|]uv#H$N3M54)S[&)7L-"{b%ŋǦ@tLoH/Z|E}so(-&ЛWX> \sAiq{DP2rMx`ڍҞ,"̬5+,O֠"(e* ~ͩ˾mk),%lJaSPtipnVlX4h Gt@لNbp)Uh()½1p ~vLӑ<61x! Qvg `s>[MU٤f*.,(lHekGL&N@$=7D@;`NJcJ)YJ-V*{C3̧$,,jl1Z ZkR :W;I$I+ZրE+S*gZԀ|D *N'z1 sgR , "iZe.p,rR^BBRɣ tQT`JAZ@*jjܝc=݊(@9 eYzV&~IL?p49 6Čl z4X D@ ??hpg(j8p a6TflXE 'B Ɓ0`S8ok8:lfciي@sWq4`b6,eb1Edry]:K2Rѐ m bfL џJ"#ʃiHpb`Zvq&4K16 M.hB@ֶтͭ^&9s;q DZ%5h Ri|4*dL ڊ!傹ց7Պ_M F[D:ͻ[su$ ܺ -ERR+D|\ۢ RZvuuU /@HYf  36(@bNϛUJk  ޹֥sWer ,~>_4!"(Rzok;߹sXՋH ! Vwx0vN3 DD&C!_J\f)E͉" vpj6%ĴL{гKA2`0/hԆ5'IPoH-QsW}!c>شح g;us/ 0X^7ed8DA!3uT&mu`4oSH?ߐirTadU$P-#ꏍѨɗ͘hGF {  ]Ni_-Ԅq i%@oj*@$D@f Ws7іs|!Vvdq'T g9\2z3f1p=C9Jǀ8?rSFPNE ȘNyV/Ql;qO\xZ0nˁ/@B!IF9&GK2SZ ".;mᥞR^̈޽;w9.hY0Yݙ6ֺ j- G!&zи.E4ZopY5"4c\ECv37+M`!,u)ԺguVpHbr{6HkQX '0;gRUL3Bbcǜ2CV,N8F|>Whh/a, U30>.f>3-v(bi{;V!n%Ho ѳ  ,I]/Mt_i/ÜrHm]K)YzO:5m2ݬYskW:䍌={:3T%πFBx,[z "QUULe7%GPAIw!HX<[=$(CJ2p( 7B {^B.,r}}H/JEJ! K) e]W֌~t2:ujH$Dԓ DqZId=!R0 ,ljr}}֥X.K{\FIACF')?KUN <3P ,U]֦oހpeJ#Z7@_5 %2 <<%*:ZV̪怢-}xeuaF=A/(Kծ^p-q@2kیMxYSݦ*RTs./!47RMwdvN&!eQEo [ukɄukGQs g".T80Qk4Y`?uyɌw20/NqyZ_ĝ$cX׼G!~@Ѕ;,jZt`ijn܌/aPT[deYl@B+6c|d1t!*[Ӻ͎Pk]|-"x:]Q!DskK){o^Rh]{-cz@ aI۹z 髝T(V- TjI#ǃL[KƖHk!1w{ BB "I -¥T@b`]"6;Ά-eHDj)}, 8B9 ; ז2ר#z4C M9))hFFfmIZs4d#:}:]3`ć:`}S`h QpFl1FastᮄT eK 6=ol I<i#9އ ɹ\QuVTexͽ,KA`s+G61oA &ws?w6W4#m"D~*@YLÙQ>FsF˕Osm]_{'*(,r,֮%y?Fv:kl$k:zdic2 -`. n`!$*qޔ!ީ@w55boT%r:蚯A5bppPAgAl&RBj}5Us)zՉNw"۰pk {VSvi.BTDtZkv/Hw}Em|6$SnuN< MYJ"x4/B iffrpd,C&]b1GUMet<ճ9#\MZ8Hp(c)$mq=ۀeM]1O9% !l*;S1*gWa$t$3F ErUҾI$k3t_9OuF7v Y&4c Aydڒ"oaiRqmz|a 9@@A!L $$.- uCh8)<*ϢpGtEtjjOtUS:Ewnz& BR&sMŭvPat PAZFǑ$~k ڪQ: $d֛lk71ÚRȚaYjX^BuU3/*&P5ܵRJZf)EUFT*"DDK]0s RCCy@* N b\nȈ7]{>3Q tYD=?MT"U_Nmo!߬#@WW'<(D`TaK=9?YTp~7LS) : hA-9LXQw~syYorXqk:.33Ov/^xpTS`[Ôؒ@f10z1M. bgVYպ$")с0?E@۳3.[v)qqpVAu `zqh _qCe`PY$ Wˉ{LgeY[VLWwOS޵5T#Z "k%K<(PYNn:J^;NK)$jlGT]$ڪ4ٌ׺*JU&L5V$ޯQo@D,+ECH֠_Du[( ûp^n\b5c^pgzuw3:}+7/Vl29cLQq85r'oSX}dǑ(nvmK`.lCc5 ꙩe8--X].qLÆ;:-:rYWx]Iẅ́ݳbo"=}\] 6y #fX-U CaKKF5 d*ocv˛:a[1R_Mt$q |30QR jK;A=rUƵP/ Ja=or`Vj]XӑxSxb E`]}< g1RL; D"*~,D#<P53k#lԔ uRQ\+Dʌ~Î'WU[k*̵鴋Mb7}ϠCP{ 2:%,L;lꅱS.L`[ViP`p) %U&oc ,?;uKXG\X[g=BSf 9`+H^o#c͘mp.ƴ:L&U+̵z+r}K͗qLXU˓vP}~ߡn2Uy6Q`7_G5$V=Ljwvlf혷 fz&7/?I*4H'7mĽl,Uw٢ ^0wy+tym0ʝR9ܛc0M{[N3V6H~WFtz"{mX-%iC/$sJVce 0U~OJJeL oP)5+RCc!zf$h 2鸅nd12Юs`GkrsJfʅ(~ͅM ̿:dUR8\KnFG aaP}l g!3~DcY:ex`0qHϪjjqHEA8|>]ZZɢj*]z8ջu,2}&.5rAs:h+گHJAq^O>ϛRKt]ף@f=R&u8܈BO+*Jk̈ ֊$l8V2O>ćVU oߔF ZܥD`Lpb0`k{WijbbClkWtxAJ?J3 u_Պ] '+k/žgJ& [pRpfc,+o3, ϿE5dЬ)Y7ƼNͣ̀Pr,ծFVl?HtߥUr_Yp ; D!c 1Xb.v:ETu#;lD*uj*ˁc.-Za}UKUs3 K#\L!j[k&{8ˡv7nS`֗GzEs2/>[CvkHgd2Yikf]oϴsEyc \Zk￳,6Êb `!?2RE*l!?D ]^;`s2(k] etY{XDK*IIw+|y,fu].@3h`fL pr\i-l XZm[:d/)\ 4Ng[S > %7KziЖ9E*峾xfBǙKk$km^o?B޹T&֪Ld\J)u* Z"#4;tW҅{Xj8Zfbf73"b޻Hunwϐ*8! .̥R|$rqPmi[kIAXӤDoʕ!a^KxK!_{qu@J/VKƈȦþ4\:eP}c틩/T u4jH $Y)3 m6r۫6ox} :4'@pjS*K4lcGY>Lq˟V~ \:VҍX A m[cd[slq?ucLdɹuNy p36o@R$$'L-]$ F,("XI/n`Hd7iC܈yRK⓻BxfyfT|3 :tK"?t #|m6dH#p*ߔ v2,Ds%u0S5}~~RWUT]3S5jD])"ŝm㘥}b*OU|4fpCUL ى$J"!U܇f3IZ[UE{ o_8j{"s_ƅ]\j~iu[.2lǻ8 IrXY”E>K3L.T! IDATu0R@y>OT9fKoz"s`|.$;gTADj!H/AR)N̬`\[闎ѹ` ޯ֚y}|so ƦfuvtqȩfTy 3tQmLT=߉ YVmU35ydTD$166P!_.-vC$o,Uvݵp7w\;7<{rUj0)S6/ѷw,5 ?^mxvM17[s`3lh@ƻ'MvutDD݄0xHi FXp|KU1r+,0# 3R5. ur)w4mE`"&u@ykJ0p&vނT h)H?\RK OT9[wsɩR)Sz >03*{Wh@QC @U޵hb` vU]FoÉ30jOpy<얪=H)EMkK3y=x5u*TK@ɹHۑEqnqպ{̐ 29փKΓ ,֎q$. DD >ϽnP hkwvDZ 1QK+B")U6DR.1]|!8'D"]!.V{> lw f )ep~QbkSuq'ؿB_ |^/IVls ?%TsrW~oz n?sfcaoTX:TQ >'[!N<޿˿_~@=(q ɦH/,IM~lia˝kz-CUàF!&FWUS냚'5AYRLa(9A߹rdY?nYzMKR4ȍypnX}1,m#'+QKz)% ޥDr-gNqtFf$iRe:+"2N&ac<-ϐ% ڙe?Pr*3=庮}H;? hU Nn!YS͗"Sq.B9BO¸^YGk""C}fkh#c߈Hu.|qHR,UNQ;62sm|ռ+fVp!HvULrEHxtfŘpÐ&7ܰT~ûe"bj5jE@HG>-P`_p^C z[軕_@#\l6Dec^rw-T&ۖ7zZJW%¥aA7kGQ,5ϊqq۠ >7TyI9uqWo,#xF~w(:%HZ~DK#sZk+A\0 ̬JK+bQipbĢCK5vy\F'fz]S- Zy^AS{Y-EbqAj-hu]i.ԛ֟D p]>R0 fv[dn0g;Zq넙PU5K<4rO1f*ljU7>XuVkqOů  ) ܪxnp1ñD<,HsUw.tr`^F6\._|Y^f6k-?he@ɽQAëlOI;aBZ 0]'8K9FLYU%Oȿ, ? qesԠj7یяm NI܊x,p -Olukqe/o o#ˋn$# 8c4ٔP;i |Zӭ4ݏD>Oo@,~mJSY O~b` a n5.O_F2ĿIaAX /^x̬FAB(e6)Z aU^ф).\Hm%3H@eG/&M p8f]ZRuծZ)Jf(1"*&=b>zRm!spylql'c)Iш̀mW*jl~]|V0v|eVXTKeԫ_Qy>K)|]@ xBoY͗\]!EU$%RwfZV(HSuffBjdzүnW0ZvE3y4܌<:y ̖FٵNc/M.狃+Oh~##l~5~҅?+%:}Lx`vīw=DgktaL<i.W6C,}]m9 B֙M\GY)巐mͿ@%"ﶤa `f/ }m>0;=4tA:Of5O2db&gtx@ D8Tm$0ND! v9Hc9)LV[ ^hJPӮb9tR Zҁ_V_̨jDŽDm'>YR)Ě@DdZ~Se.rlf2pq:0!V뭓]ƺl{ɷwJ6ovnҙ$C`-uS({? lw2k[]FN-b-`*;Dnhٺk8[7Nl]Q-pyUȔ^ <"P_!51C<:D\ہpIQG"y]uZYJ) =JUfzc2d"@{DܪR/:/~2Y et5bM2 BoNRq<$ "8VQhȭD}`biع_W_L2LaiH5~^~@.0˒puX/mcMI_dofSDM"ʴUiMc#"zb}?lvLgl2 "#omy# J3&}aY sO $.`G~Gkȯ P 5_FFIhL hlܤff.#REzsaŮ@Es4<ȧ^͵w:W{f?Z lzW6TfJpS97,Qe0I+S -Ϻz] Ź/c7L}}oe#A \^K56+FI~--gF'iѺrMMa𜥉(qJ_ٲmPrh+)g^m^/n q H?3Rp2(DGDJG;*[Op3g`\H)1{V 14>B3id{fffQqrȒ߈RjfT37Y_Q^u"w0|> ]T@nV@k"~uڎ;1VJT-Of*{%!"۹2  f I.>F ̈bbf3z1CDDLfԎC̄Ji=9X(>SO7ڋRW06L|QavS4 vmvF6n}t:;C^he -u$%3}l;7)][Mu^fl|v[.Vr ݏjk)}Rh쉓i[&w;. B,"bz&yE~Lp5@l6K#RR+#0|B j!gG[SI,=:.~sRD6ăƅVubI f9g`k8LtiMT=}v;*0߻ vzhA6kL]:=;FƜm 0ES P0Us8ȷC>%j4x8SUѯu4Cr3?V+" K];zfu$*$nVJqYISL_LWPJޙ0h)6 YL\E"Yvޏd睈JuBfPwGo%f4s2F IDATRZWdnu4DMýxUIDZk#rTjc_ `"ua:fBAٛwW@^˳&,5_aD7^QV)h&heXo5RWey0&*S,N7/_-p``l9[gmߐ/p{jk=3.<΃VTSW@ p'J@O!-[c(SZ]44n&+I]6{Un%Hϧɬyrg6"6\܌ҭ<˂DC)i# q(PC毳{zεxiAz< @@t_uYJ=CD#,LE񀙨8ϓjG3:'T [CL\< su!˘zt'Dc7x|P.UsTW.;;k`z]'Q!bQ13&#΢VjOp͐!ȉEJO:"ZŬ@KAle }6L5@brrw<ͫ) |Iv%If,kx!o>{^pP-h}5/ck9;6~=˟[acCQ6N{ ܘe 7Nyl!.ө#,e"8?Ny- Of bj# es76HHі-ui!7XЮtAI;y7SKtI3oF\Jq %O`)@@pS0lfi,H.\L,As0a&Yss9\옐\i#Az] zZ tR;VkhrE:Ff Z{Rj-҅cPm @"'YXDZ]F*RtWy>]ifR2Ukt:ZK)zU"4ygaf _ĥV82VRf{.e~hӤĹ!f.2bns-i4eeT~Xƺ8$  \p~?W_z3e(OU m!̗n.r$+QA;@ [I7e!,Z 4L&8A7 X= U5)t XȈh՚l8=xu(݊) )O '"dȸ~&TfPg9anpsxHV Dhjs 9m<~aGݻ٠l;lĜ#"^2v7u֚@0#,((MWJ5X'L#CtʂJC<,3*K)Xܗ@9M"RUw]yHk-]33qPK=|RKچּMf. [̮k-.5 4 &f}+tUR=JwHUk; zLDT냘 1ZM*3]^ f0L=w`' L%~ 1"6E=׬+pcT]ݭ2݃5ϲCy;UNjl- SUR؄o/gWnס .7%bVsNO^Yg׶֖ AgMkei^Rs8 +[c3]@7- L5dACмPnŧ6vfgq:wT4sce:L7eW@j9Kfvjᓳ.AwC-KSΊwro86i10%U WP} rf0v0Mp?e]:٘ZQQ9`q lя'!"]|<ϳRJr뺎d1Ue汪7PJE=bs<ϋk8DDL޻hD܎GC_ K- D^ eA\t5R7_4:E:s>] 6Y_WGdO<^oQ<$|sD__|_}׵}zʎ2RFS\vKWKUc\Aߖ7(O_DZ6:5Ogم[ogHڷiEYɅ7!Jr1nܪe+A 4ådF7[3SVHg᎑a_0!5bT]u@.GL=dm qa@AU[k_L!gWZگ bXDbu*R|R\Q3$ͭR~)YW.GUՄR| Qqd쐎4h:5!02ѱ @"/O =&p؟/~9S?}ncCxŨhξnojfRQI p0 SbT 7wWO*Ҿmm’[oYQAha R~bԴ~ozHsY:jX|X!̋m~3ՑF~{c/ n?3EA)ND7X0W"!8&{YDu|n?a^xH+ lr@4*j,}A5鋎"pW QK˟KpA >rh 1`frphG竭Z rfx!hmME&wCq)w@o"\d>K*HoknlHl勊$56b|qs)~tnŨwUl 6nY vۆ?-_Zٖv_byr7bPUteUkq);WZ,K;v5pIhܟiVU7{);G{Yjm8톍SRPػpB ⇥مPJns_s %W"wVHaAR6P p[ZjRBK!`uq\(eƜc7s-EE.? Pwq+HE P89c*W<"qna".$ G;HDj-'y…Uusk[ky:QD8lt0\e"|]lvwW&U[L\JR7i*f0A8ł1oU"brYbfJ.eG"A[-㌓x273b7`R7OtbfV&a:pzu-T0$O$5_ɾmNJz)cr~p wE<㻱XA6,7}ߤ!ԷûWk$Y߂sϥ!y2d%bQ=3ѴlfWD҅p]{^6mqP"ϗѴ\}Imn BUDSZ[= 9 {U2MQnμԀ&ŠYAR:Z\j)C*<73X)QG=?jG*:Ri2Nk>Lh [Dfby [(L]XI : ~ؚxz㼮Zᳪlئ%wC"ZF6T m#q<:ϋJDKT"]VG %u&k!bd$TK==$^.1A3 է̌p~xcbt Iɼr /Tnw8m{/g-J'* ,u&Sߣd{7x8@o;0^|4 ]nv_`VnZ(Z*] FDzTBCX/+^.~= V؂)V(a@wrI.q*P(HuuH#:G7YߨyL4A)@nR6O:l=?QDdQvZiN lpDm22[kXyD" "L螥T9k#paPGTw 3%p-ŴMTh>hy)` /h`@:ɡS11ªZ 311@`*?jJ̽w"n.]r'BI\DZ}Qx|;GkG)q `r ލf8g}KX`ԭCbޯ3X@xCtyy 1ƛ]NOpv^[x~ ֟)&V0ѬdY ~fZk;P5{H6pf^ @@Da^^ fG >3 IRؽfwCL~O5(~ ɞ!`cB[[b0{a܆wh"X~Š gוrM3HXVYN|+O̅:.و.`b+:SCDZ=DTK15jn4޻0:H7Xq}"2HDU`fjkKm̥%*uiycĥ6WwOg\[{phv<Qko*g]LDDjG]f^_u?5D59Acc9l'hXĖSRX7,meH{|(Kfc~X<+? &_4aaEt/8F_>֢w  .Aǚ'I_?Wa0ѭSh,6$'Ԉ8FBQj;y:4w# Ս\UFyƧWd]E(.J} DPZ2doe({MTi)>M⻴gF.~R,~>dܒ-E+`!\H\!3Ah%?1{i{*MƈpiCs%7ڛz9eo$Fz lJD\~<Gk5 O뽷h)fOT0Zm,Rq.T."ԋxA`zz\QyD{^׳l_j~_J^O%w]g2u5f 'Qy<>@ĥ\կSEA㢦΍ =52"pm6x<\Q'lR:#*!rJm!~+w!ٛEl:I٬oa٩䪾Q yy?n 9}ӑ1ew&=TE`)ZM_lW0S 8FȆ 4[_VQ6αMbMn.fOvnF3χMF n2zd0&t 9RCBH#6F#4'c` }jt8ѐz^hxyc&t;l(5c ƄnHL&7(֌$m9494rNj-Nt]"Ll6{$drD1[d3OQ1 -l. ]ihP u7oz#_wn`2T_>?͜R]m1󻙹̾}xAx|ql0LZ ƅ^{O"X ZJ!&Sb:Z5'n f%|>&""Zĵ9>l\paOdqŃt?LܯGLcD$3+́M& L3\ HnMKISs/sx)Dm@L. Gֵ;y^5${V|68?Ω!U7%&J+ٷ/լc&Ls|%CY>|Ӕs̆|w"D0!c.¸+8&zN8;Hr F3sy1#@yx0kBwkw.[Ukt PKCARkq.J RSD Qi${UV H]=wHf`"*\*@w_\PeoHk xH=3; tZH'PL 3.J)|> kT\Lq|yG9OmCIfU}S 6-::KG$L IDATx=+޽vr:Nϲe'd#WJ1Z2YݕiR3P˾hRL>[-3Sܽs`_?g&m%]ܟ30FuO ;%u ф G÷v:7Ş9<6`_I{vvǞ[eyÀȷ91M;,WgΉÛVɸJMSL?߀ nw겑 Ϡ& \yGc:Wu"e Jfz^/U˕+F#>2$l12Yviaøf[&'GŲIYSv-Sf']Pmݨ0ǚA\gL>dd;SO _q"RJa.˒a}c ƀR,`tJpܶe岰5zjhy>6Ff8ĪbPHKDf`3sQJ(̨ՍakmhR 9LTLBffKQ並^GD(WlM4o5~wLX+_2]6vo\3X| V⭋4>wˆ>g`?*Wc°SU_忣'|}u|ۡCNTJ豝Пe`__hˑ'E@=왩I޻DI)jA0[B-d$?Πg\$ [&8d ۝M6| 祈o)ΒMBCr9a<>'A=\<+I8vKM S)ow᷸,͠صU52b烊 yaohgAI#q)Svz]Gk;\ṰH_]ɥM*Rz/f.<R pYHimښf9߭6M{19C*-23(,@Tю.gCUkm"%Z Yb&\`VUwRUU+\#$Pʹ_pj:Xebiwٴ2O?,aǛk2?g!&0ds'7A ? @ܪ,>S!S4]fJB`a._#i2[:a#?a߿vS7p#v9՝j%]w W2p-椾 Vʍq8ʽZ̬·11BzAIEN$))ťL[kwQ%e.aC\42};&$[@wyތ֯߄R:f" 3 G$e8c ܳ X&nX41rYwsAd.dn u._\驩֞'3Va)J).hf$UR{u\3vRJm޻/(3.L x4x4>hYBRJ=3Kx er453NARjQU˚Oq\j6H>0Јoo?x!?g}w)x씣Znͥ$Һ谘G;M9_ZӞBZyy\SU=<DTNDcnx/THwznx'`D0|JMZ;z7U~~-/]]ŋ z[U"--hb2D6 0>R>o)5X /Vw eMt{f&hgΡ;>&~[6:ĊZ8B$ }Yw+};fHw:R?FDc.| |QJ"ω)ht•^KFڣSD&)sɮn*Q0Rya.¢r!1ݠf0>sR`fXT,gl!/Duwu+̑|&(%5:(}͏iow9:R - QFXY`e{3gOX}W6(5(mwBFP |n[A4b0F!A bWsj#Aƿgҿ~ ޠ{Y,)]be+;Hr1-A7z ㏿N8ZF_rb4yo3KlT0[BL͆7CtC&B  Cl/] WxED!S{n`R SHH|_6j3~6=8cK%"s[:fPqba7chy5&!AfZtڪ~)A.,!bُ;&"K 3UQ.l\mka82z<'댪`Zw:*0.YG4wu3A~E+3}efk ,Tl *BR卛 58ospNBii~݊`}%=!~xe%;e #_љݟ<}f}4}#X\Ie@37ڑ8IӖV MtNəl8m (UϕOo]x'x  ߴ4K(DXШvHK%0HBcƶ 3S%앭s'8H "6U?]KcK#-cDx̖.  -:̧t+*.c A^Cz;ɗf1ED>4NpU ,ڥhYl=`ۤs& s.eK)T{([fk_^j,u\|>y>^DDLT <[d\YD`0LL6H7)F\Aĥz<__" qlE<{l$_ E,m\K胻(-=4ֱ6&s,cB OƨWO6HNmC`x U" aoOAA;heV MPzB;[s;-ZW{>Lȧ3Lt-03ׯO.. X6J&'nN{,e;Do֤J!'XEazoO*}oFe/LͣRD] ҨbR{z)XITQhBGhIigJg%p^4C H\➒6uO9bĽ5B;Z=CoKv:o bN p=-r2/@/HsPiO3\G*a.]P/"P[kqqkIWv$0ZKaU |RFTQ[eͿU6%` U*"l.0 @J"OjSc;y%ZE$yx v "!S)3{@`1¢];a]OLjTj$0UD1Qʬ)œٔ|Vi "qR6hP#JH-gJQUq'!jX*4Xw:+ofdO˥Fku5)qda>/"m zsa?)J(٥(^i1g3?Id֎]o]>Ad.e^ eolP[Cl5 (ioD[eKl@rc)BBvR| āGy~^W7A! PJҘ0|MJ)1tẮPV`yюԂS]q<ZJH "unr1{wy]g U+z G}S<u]efk()NR\ic>FsPn% *nn@TK`KD@YQoh뇉8$(y/7Ĉ9 3^Fc/UqFvò?TjvmA]0(XXv:$&G0۞ ,u;sqlҊn*ׇkZ]=\o`(Ah8E7᪕$ x{8 2x.aa&i-WBij%򳹳?+X1͖l5J *2feqy 4|Cz`ʕńr5@fZK! MWy|kmtt#PbolTK35|qJ%EPjyZ+[82Xxq@?hAjEy!^uJ)(H(mN{u&]rpD/c">yhr",7OERC#`Bq,5y& ш j#E&VSZ}¢b*ČVzpF.{XASPu?ǐGТ";-KM6`pR ׳y)6eM17-WflV40t>`mlaU 흟'4M<6A!^({}b--Xz?1Mqc+H%}Y,d w-I}S-f)Nh>db?ϭ|eAdzPR]*#[< *ɳ$pvƃ'cD!M=,N}\ȦCV7Yu66[e@h)l;Gb Tx1kH#ƛr(I{w] P; B(8^2@"TA);(!s֚֚t ".> <+tTkL^';[ۛKG=twKGRQJ-1L:R+2Rj\H..tqm]zV,RUvu: yuRpJ\BID  7W `$ zLP&.KClȁ'f cp~w<(7Ͱ1{AܔOB: xy>0F;gv1F|Bkekv"):f~ BɣSb?E6K$MF+ۍH83Y睰ڊHg5fn,*LE\á#n*:VkU{A-f?>OĎ4µ`FnݤlL6l95o/Xk+hpbU,S`gI8_`3R,rv1pCD*L)q 4t `|L~;b0ÏZKEj<^/a4*P)'faNRwR P՘@YAcDeVq+Usi)puGiǗz9g@DjZJSD__yLce |ftLD÷*PU'ܲ=02G4~1VJ]8!=#R. zof?P ]>[% d)(0_7t&ڷ>ܡ't\A\KTyI6N&tl#wq۔.=3 B_$朢m^?l2n 3W7bWq;S]5ƍy6"o#Vy\1%= K4[aJ+m3ͨ`c0S&V[ِ.H3!o_g@q ?$MBv%y7C."#P8RDj8j^j%6fT<'D'Ey8PJkky33i. y"2:ݽwS+_N$.sQfrӽh DX0 IDATj%u]xY9Wf/ G?eTE{Ȯs+ARUu1yLDj3_"i),SM=`̠lq${똚~]f(\jKm di딘Tc޻{<0M XXo"xyA}B5#Mt¼zWU\{w \JTj:/ZkD u]_8j->/_)w5lv&࿛roŖѳO_hPK;T3(YzW[V7ڒBfT-cDS0mO>5rq*9}Ʒߡ; ze6L07Ndik5+$(}h֞-zZČ~ϳ*0)/!VYOTѶkIDLq"),b:da |jqR9봘 (I\fycׅ].RJ=p6M&DCEQBY$"?@D|>P,TC3.SJ4:=Gf,Z ,=OffV'C: k;u7kZ[k]DD+wi(z eKG)H0j n" b8T7Hrao'QATKk9`戀~`Lz@0hWLf8@"f8!옪 pSI|o} fz[ȫhwU|+Ry}~ϓW mg>[qI2?INwζ78>ڼ5dnVmvޟN?J iIc4GV QyCaT"q֚k̹EDE\|̽w5+.tmrZ"Bz6_UkRJy{):_ȋ\ GP G$) h;&Ukpq扰XǬu˻)W5O32Q`D:KM U)\t( ($L3mhRX:RN@4c,6m+ mg 1(rê'jFgc*Ƙ'fN#p^²m |K }.%̛+@qQmiSzMbȓ,?"<_O]< HDU.{+@7vg~~-W~8QOb/yxF~]Z9_OϟfF#Q53ju`5553wzǃ%<8EK͓\>OoA@3և (;2HSJ]:>c rIqz!%`^I&5?oW8Xt nl@(zBo *Нdufр[Ky'qppIaN*l-éT`El 2E&KqN񟉹կ 23w-n~|> #܍ں*H "c_eoLj)/DD SbZ svegݤfod*s)33_>H#37WںcԘk >̓n!uEZ fw+{~Vޣˬs%R;iں[޾Ɉe7rPr+%8!|-Cþ$ѡ˭uw ?^I?crlkHhȨ}q8ܛ;ao70@^cIdKw<O.~xxd aK 1c)u0h/i0o.oUij9ʓXLt þ`[3Ut68FK3Ŋ"eP|DRȖ4_{ťS8oh#YdĴîH'p\1&XXrT1ftid0h8U-2…Z̈Qy>EFu-Y FLE#Z];(Cq A4Tfq]k? "3žXPdXZsu]p}]f3\r).O% 0͜?lLpl7Xk9:!]س;#71!ʇdU,V7d ڵc?+zZh2J"[[,6 @eCZm+usjgR82rmQ.Ow5ΟĹ[aFHlc F8VE_m 7o&k'Vωnha8~>tjJJD2^0H0Xdqwمh.c`Y g%n^{aZ4f/IaHѵH)%$.DNE 2e )Br*t+[]q@_>ah0-wAT/qZAy#pvNU)LMM̭Rʏ?֚Ϙ眽pPd1fZz4TcRu Uk'd΀zGA"..կxyׯKEra:Rk.RJ'"$W {r]\u^ޘ֚K&bFlD@ cRu]&ɐ Sb?ЏTǧ}DLr6P?e[7Xa.A?=L){{l`n nY*[$`I)om߿"|G?ߊ~ ?m v-{2oק wjrOՏ3Ku*3ȇ_C('['#pߦ ԬEY}{unvf:nYpyȯ{o߲Ni@afUua\๿j09b|Ѷc|2Ѡ`͎-:VZ#T3{͌6"Ǡz1x?| b`Φ0})IsV>cO>O޾o_ W|0Ir`/+X8qLiU ˿. ?fhcg\l>+~:--ѓp`V/{?чRjxԪ11*3b'C "A'}.u;?8.N3 lP@#wB оM~ʙ֮/$ IԑpVS Ϗ6#V 1h-b8uQw®~u81(' ƤLMVxQq $S< a[ly狸vr=e,D@` j@pf>Z+TEE ,D{\,+%`&,Q)󮅹~`83BzK)DDEb,sxED:Z*HD*9s%fTj)}Zk3kl&Zҹ&vjunBE8: D##*KzEt;͂ىX>U]8AGKs=l|t2) m7}BÒfo7}b0&}twT.+,2@m#>y 8EV.'–;70zwaua{}OE-FPWҲӀ4yqRՇō;6 " jxUy*W>ZXdQRlḋ4YW 3z^uĎKMd> *V+rh!K9c̶RB;Sd #=GΆme̽A|JRg϶z`Kb_]o-: eʾms$qh. IvMho@4􅘡zjcfE72/1qFt!f+jIv=)cr[Q`h=&}f+@=mTYZ1;pg:WH.Y* IDAT=Ք}pviښcqzg2l ֌lx* t>m"SU*\eB!S@K7~a4:OUz?Z#"jy2q;̞TKR1_ącZkĥ8MޖJj+LJRKy29t"*كkQ8)8KrˬTAV7p)r]`!"ۛet}v[O}Z NZOr#6}谣ѭ][XysxƲ)A՚:{ՉVSaf>\z4.bh#V D6x/-%7 }4~X;5!K15+ڵN=`qѸ!3Ilݥm{Iݠ3f۪KİթޭUsu#~xd 1 ?e\"bhsC!m0dYH-3)]tз7 u*+`B8uRε"+Q/?Dz>ȃC Z}9~X $e/|2eQ3p`"ݝDp<\[/lǏy` 5_TL\9¦afg":躮Pbz83^HgJqJZKZL3/XkEگ>̝wjkVhףakp"?Ma -y[ ļB>$.܁R.8hyykm'-:1JWWiu kMnh-܁-{5#MhNNcO }o{0lmxd'o^fJWHxE^O";'COޅ%2HwcgF@~W~,McwzV/&R#O54J"; Kpa{6m&?LI ;ߝ*62*HC1-!FOd.a`h̢`y[g_}5͖f6t1l14 7]3O3G(yXUuZ $JRk>5РG;^R}79ϋUjuLz]"!LH .Ҕ"z9Dr9eӪ"'UE#[V 3ڬw5=Je.T23ϦhZDQV;38>z/Sg1J`^k#fX9"и"Pa|Ci "ln ܦuPio 0 }ׯޔ]Z–&e|&!\aA[ V}{I!6D>sk獘"ضL0 3=OƟ?q*o ,X~2Dʶ\,bGow 8w-糍a 5ι慑_`" _ifTnpҦki UE gbOIb"]APCFz$R4נ٠)霯򟌠cmtv}{4DZၴbjD,nLL2[5|`lsa]˚Y0X#|VruA&F6 [I8&i~g 1l psFԤ{"]-k 펡WWKWŦL@]m5)@';5.T 'z +- ;EN0hh "Re"dfze:²!4G @ CCħ  ?˙"YoJ)'lKcr7ipYC nZ z<K Mr pa0 /,ҫ2l)%2C)EzAU=.үEoFr@6R"Z"x z|=k[,>Ad? 8\Ds1_qab,1?̬_~O&7"! e %1֮s ʫJmMFƊL-eR#fewK]31}∐,C2CTQ!W$"+3%iG(#!-35a ͽGJEQĊFKKK~ZODϟ?x y~hJmTh_G!vGNci_UQyR 3_Q%_Q% G#-gC-u&Xkcm>2!a .L&HPTnF,%#̍wb7<NBoIQ %y -w풇Z(^5t6c ذ2J8[Y XvRt$}b!!Y`MW R T&q1x `}H+2Kh{#Ta#wʳ,cU`td;PR꺵"x͚;]mC{оE*RDqZܯui\! sR*MSWkk6r RsI){&׏YII%.B5QCjgLTh9mhT!SwRF4ኮ fYBE{I ݓH.rN~Eh:ov/|ΧE-cP1)f~ީxڧ;߿}vf!"B+ x3[ ;3h:MrYRq@0Ϸ ,uMv,Js<4iͲ|;ףBRA Z51DJ( saXta16`8Y؎bV~jL9KבCw`F tr;+zalKRbȢ>7e%LK=n`, #G7ޮ6IUD2:Poԁ<_wh مA2]냖Y'6jçDRJ(\g$BJ``HCցtA"ҶifH)֡ g:WB-N-l2Dh˜(b`}Sya$bHk@XqNҾR*<(ϥR,ERZYyZJpϥ [rF͊|9\1uREqM%ADZ__7[8`4Pm#h47]/l`+yW\2'NXCu[Q%JZݶMsm~)w bo&vn}fbmEHF 3 ϬRR(2DR1"iC$ v`Pbi?'iG/C&!._JCrƃ勚,Ϻ!WG8o-E5/ GKıRQJFqEx wµY=m V.ʹGD9l܌퐘dY2"\F%tЁ "!0xp0P/b"ED(R:N gyǀOt1y9@BMmyJd͞CY3QJD$DV"dlOG#)#`βA?QD$CcJ RJW{ِ.\N۲PIe&QOVTíUfVWjT6D\^^v_8f<"%IQ:נ],rq)UvpbitBL6[$BpQHRԡH%y&( xb'5%KEUɎ2j"˲?s6]eލP)DdIB 2(+luV"-&]ڹH͏̮i`VFZ;2Eg:*}߸(ܾDǽfeܛsE.(Hq :K.e(B`\(9W Fʼ>۴w%8(2,A=~5^pڛCP=C,FYJaHJeZLqiZf:Y&V ReQ)ԡVlXnt䕷|gJ]bK ]9Ūԏfv@`d'EJS@E_oW4{tQ76lu썙q\p&qGr0. DL*c.<@m19Xo$7g`,˖ ؑAN:K.auXlP =5Rf`]نemElekGޚ`ntrq&Q [҇K Jc륽:TJ(o-BCv [m܄'V7ter.--HJYzP*3hՒq.Q41*kBE<"cs`@I%hBP.veECH㘜FMŬ۳׈2ʎ+{W¯++GR>T LJ^?d= LVrz]*v@WTC4BzF10hSm.8iVy=(txgݞ& 6[afv|Eh4"Tι5ddVRIJGeC#TW2ˢ-w\P}S΋}w2 הw舋 #Jr5@! =9|.)l×"(ڌQ8;]gow;kD9s)U$D/@BĈ\MVqQw8yFdH\ EBmWJ1zQyF5mc"(D H,ˌ}JA :ƯeX|̠%"Xc+[inY4WiMX.n'UijI㣥rU~Lie U>UJ`QqKm嬖3C_%sum[4be8vp ѢNO?Wak PEu@CeP|+|nm[kͬЉǮR[ZJ9VR:mýJ/Gt{Y,hꭾolek*z*ƼÆyX`x$Àyk0mO G"<؈ZIwi `" սs6‚&Ew*--䑵T",`D8zqDFo%2Z(w5bD@Ii)o3nQDn7o¹K5bsc8ˌPn^$ʴx,רËlQUABJnX)=(:R,Y<+= 4X'bUȉHlC<]i+6p%I3X qC.Z@)+]A߭L妁hq3]ԴTҺgI.ʎji'!q P ei_L$o/b6hfr6|VTʺ/a/SUJg<oFW>Ea¡ Ps>CeڑqNE2ǮҬh !5hW^0cDUb'X*-'("lX^`VKعHx|eb~RJzsІजժz W7IziJr0B t"FZV[>VOMw7"$s)Nn7Ynwe8=ʎ J~I.StxZW~bq4mcӸlRj&]c Ru e:5A i4Y:(\,j" iPj20~7خ[NZ9Z-E-ݤ +.L\hui|@mW')+fvJi:67ϲHMLcdxSt)`&-~"lPA CӒaߚ\P-5w(ثMMxE|5cL;9aH4lOs vm_Dlg8cƨky!*tiMka`0gzrf䵨fSሾݼb=s!$I{ 8QLH::qX ` 㠰pfmiQ*s+u*0;-.֭3,?\1mHiVLWqU@fmت f`@C-`o}콆:iOci̞U/#eWŏPr1 ̰W/V|RV,ÜfumjZ ʛz_1^ې Ssˋ@J);ne.7Yfة7Ka5YqB]g}_\ 7TZxR4җfY&:<(C`8XeL ؅ /qMZp}29PeJܼF4+T 2e]0e'Ӿ泋&kp֫AkBs<[-_xͼ͸Sm,j^V֫ ič \TBaWLsl2giKۀ*5!H@6,WoH)NDRkTWrMVxU۸NŠ+L=U2Wt=R&-)VMKRlW9*>,;O4K*MT5؄|Ԭec3Oϰ9wTW\zw|u0? ,CRx DyyKű Fu)9FKԒR).` \סT"6 7ob 4|l6.ةt-Iw}b=ܒf [Dܷ کf^im(v9*mKˡfgͯcYX^4c01Yh3s{ƣ&GK=DJJōzL}&fafnVKqTԊ0Abc8m}HSYeKKp~.R77?3DqU,l_j}uփ>mAPr{5̼kl-"m{ zZBF) `"B`jִlgu\0**A0)]`c83+C(S䛼a6ph)nm;-Yۿ : f,e)X݇DC*zR/QFCʳQeK˽``9Nh6y~gu[12Y8sLܐ++Ԍ<ۃ&7-Q4kHk[oڟrwuJuj!oځN39Z1*Ѻ҆=VUi&DXVp$ʶ4X^lpmIQŴm:H(RQ r87RL4t9H^hq|d@LL( 66 0 7.GU,#Y$ (Nӌ-Rgū+4;v$ z({+!à%xp&J8zצQr[W,]W:Н̵t=s6J*t|GڨXِT،8/)wVɓAPܔ33$Y%Zt%7=vE7Sƒ`ii((N r<jLT1 @Pdkl)ʙTR6Id^B,y!H2IS8%D7Q$2+Ki=ۣa\A?hEbmBϟށ} L%5,J\qSբk̲nvth[immUOp6hg.Xg$gDqeVT\fny.Ti];#zq7;Q!05t@v|1ERJ3?RH ..aTTT(O6JO @ׇ()VH"Y8~V o@P 4C!qܓs9" +HB@=P 8((z$kaq^Ca"B\djHWSQc)ϟ'd8IZ݁*;4F8WQ`js-MoL @ld, @@14Ydйe˦E(ϟ?tyD2(CffQl Rm{$xIRyE0xASيC(]i%/^VVĘ0.1()e.]&e@WWsjPΖ*N+iT' L >T*zc%qOӬ774e`wFKdž-TsJgs"W`Yb2i uaFNļ`LX)$2',#Gb/j3,*JpqǘKpEQNy7D: G/' ~fXIayss匀Jˬ20eZcY|e_"cX^0@cy^#ćolrPXupEyhXk/ʪ-N.>E)oY`Ǽ\Y闶A{O=V܄҃Zs,.X}TAn1P@@@|łlYR/Z^m IDAT!їO7žM_XOs&KЪXG?u@4Ph4Z]a٘ma+9FKbl"CpWƄG#A0(dF}+"#"EQ}K.iV17\~CJM_9'J.zx&Qg5)<%arcĶxuOVRKBV/&O060*CT_`N6TR! +MBJyȊ$J2H,SEf 8jY# o9D%0{[SEp>7ZUnV fՂ="Rl|mJs~Ci5Wq5oÁP]nKܮ&h+ȟg؞_hj Jܻ+Ω۝6*?8Z籱|wخoag- x"-]4̬CZ)y~ ρZ(@ID$"\0tcbU GY{K:0EdņPJfU_^Q|`#`uPK34 ;ؿߺULThkK:y_w6w~&pQYLɌ%MIg⛪H8[׵ZIK1Fbr. !FL"!1Xrɮo]P6Te՗ГΕB+\r7&$|;͟T8!6s.ݛj]6G-4ݵT.# vhQܓ"UWSfBCr6 nI;JX[I:n0'Vz8Z!aWf$yц Dm,aJrq'-V .\chDzS/ҶX7M!;`2] jjh! ܛs>$&w Vġˉo}+U J`%k+ j,h+9@uȮחԳ+(HCmZ/:X2ɱ)Tdgd!͸Ec:^WC7%UE`f+h{:916- b84io0N^UjM7u?ab1;S Hݍ}vhm;كSYocW': i" 9HBBhZtg͙l `̭設' e\ os'=>]Cgށq4UTI[}ӓyӴuT/9KTnO- qx""@D-L49߶L<eOUE\MkhfUq#yZZ1XCɸ~ :oZ!׋[yخ-(q4I f6;_9^D$ !"9`ҏfiUk3J6xڶV[+}u7 Zu;NZ[x{v, }7Dt%1g88V&ӟ[;dtZf;1z ʦi[ell\4! H *Ŋ!"`!$IDB)y M9{0_K6 !'Ц_)elk<9mvgCv VNh}.r !HfV!1@|?"sZg?`y_qyJlm1g-&Fg)tvmmND Q)TBDRH}mJ&^.i4sD\/+2gO98dJrb " F!B0+Ŭr)H8I_y2,B-QVnDhZg{ R6VPdqiq5""T~c&DB?:K/Gos6ʚ![+GTfֻ6 lpq"0b%DDZklS (!zv⵮ Z*9s4e $#F  A djYjfABCEoXFtZOWUm1WU&^%PJ2A@YURY$&0ƙ|Ndo$95#Y.zG۽6"ɛ>mXVC %>#9ƄfhW\ȡ˂ЍJpQ>g&P 3`k ʇ_$L",ϛ=#=HYB!} Ћ8M (I/ $F p XԞH/4!$P|[@0>8x䇽1M|.K$ e@$IxZ IFmO>(g>}Aou8}W rE8;nfag;ۍ%)sN`wiyY);g>u?3(zo\ "f5\@@@@V=-󸛟s7?} H׷v(("88Ϙh[QGٞ%/7́풻x ;!DEj/s hWH:;};.Xu@@@@@g0݋}x5Hr|￟.\Åbւ[neSO / +'یN>9n'Ot(u1 {Y#R؄~իװ;8l@@@@@@@@h_@@@@@@@E@. pQ ȹG?镧7,yKB]Ư\wa@@@@!о #y`c''OOCo{^LB!}%]~llVu(.āgߡ݄EL9ħ{O;9x`S~?S??&߷o+tQB)v`kkݑ|/})\Z|iߎV;oǞxϿwKsCy㧾wn}ѥL|;|_%+D)է>Ϟ_| } {g/eOy`eeU?q+3gX'm/82ۉO CTIDO=܇?f9,? Ww3Wwq~'~}~䉓qXZZ% s5<>vqx>O>c~W򕛛BFvUcXJwyձwK_("0G~n|km0\-o>o_|G.ww߹9}mǙ㟾?=yٵ/\?{ÏxZ`|/*o /Kxm/W8yr?yuۭ/ƌ۹O +XT O~gNTyo'ѯ}iؿr.?|>S/Mʢqĉ{g9Cw~ sB;3?}o}#G.LX W(tK/Ï|}}?`8:{nUwފouЁՓ}UGADϬ#FqCilJ ʷLJ9<+!OSO?7 ?>W~e/}DDTg?x`u>huU}&`; aN8wo&w+.'v[v騰if/x3=x%.@B|W]o?9G,r)ed~1H˯y>8DX(H 8/{7cO>vU۰-7U2`%H.{<h}}ѭp{;homK{pG&ҾK?tp NW遯ϝ1Cv33\asgyGO|.鿼~wÇe]>ìOt6UV8,KD)Z<\.{mѿWn *'6V4~8ey_}:z٢|㕦]l `XT٥c>>_O<+KK2>yO=s7o/_oOs3#ȟɟ]z׻ַȑ#;ݣ ;wK>_oNmH)Ï?~M7^{5tQ$^zۋ>/_}e:@D/Xqfg8qWo3 % `85w=q_>[o8vN@$(}*k>ou~?;N?sw% zGrn쉸ꪫmkn{⦅ܑ뿎]|`7tL wBAh|뭷vܠ|Ϟ[A({?`Wr0vlCПmoSRwcrUG?CnH/v ,|GE)՗[k׾7U/Hqf'OW_g7__7@po/_p?WW\jT⃏?>k>lż7w= ؅XTO~S[xMDg_O];(7nWqWv\5;x^X__ꩧ& ׿g+$I4D\__?yb7ULgCLo\RJ)ut}Tlē?HzG&K:5wO?{K/9e??+R>#4`ir|Mϱ' UW]5zw5׼-oYDg:Ri\p8>[[|;7|32ڧQm΃mW7g@.==:P+~0-ߒh6 ??:v}ر7~|';mnұKs{=G꧀+V'ϒ *MN@@_G>rYw7~7^W`SNt.|wȑ61?]l\1}w}NbXY Y'c&-8_ȅ;q ` \{vrCcZB ΀ 7 [;sÁ ) `<>HjUxm<ٽO|KY\vvU.5,wm\H'Dm/{ݙ?{Փ . `<\:OL' p#ם>pzȏ$++ڳ74舰Nm'* Xfz6 =8 =9?> `{ ׈J Duwn>/E+ ".:ɴOg8]23K)v:`z쒗$ `@'`^LӓWԮ3(ytE瀬hrɴo}}ͫYS`05t`06>666vhIDATP@J)^+ni| (*L}gϞmsǟy]r#/<(E@@@@ښRjDžgRʎlfty| |e_ f>wĚ&Ӿ:766DpKfܜ"n@@@@ŀ> ؋2~ERJ/O^RygY&\__?qT^@?z0", P78_v2zYJo0S?p =hFi۷ѣBH)e  ,[Eg}v}}}Gxm@@@@Bq< sowvv{m^\\xD݃~?DDDGђϞ|yۍF#εƾF155U./8?\)/%{Wc^]m٩V7X ˃{"sJ{+us `UթՇxkkk1NEl4|uRԾm89*""" `^I>s C(]^^٥٧Yt|u2uݭp==|K? @b0\.yGQx@Zspm]|ٕrٺ/~DDDD-N/oq6,\D*Jp,﹟Ż3wQo Z]ƾVuzzzpppxxeb|kb./ۛn> 333b1gYq7iG`wޮ#Cfysss}}}uuurrrtt٥T*K>VD,I%w=DDDD{bQr`)+_wIDDDD{ĘZQ"8PwUDDDDKˉQD,6""""DiSZC`1bi' 襬wTQK\"bJgLfߥQpZ DD@Z b` U1a/RSبokG5 NO˶q&"""&RlF O<@ F2)5j6""""zu"vɵﲢX 1"0b1@)(K%J3߾{|7hDkr,'RYJ$`i~N! >FIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/main.png000066400000000000000000013372621473342170300257650ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxy]W}'o};$J-Y6øHӐ_8 4Ĵ4^ݘ0dzieI%kA5 {sJ%[Ɔ}Vչ{j޽i||J)RjRJ)JRJ)O?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJU=/xK^6qݻwfb|_λ~|J.T)RJ=y4>>e˖'rO7xYϞ߿o]?nNON3]W[;z /hp`#?_WJ)R'a|| m}-_w;]3sQO/;nkz|דZRJ)d=^~SS?[*RJ'g|| >t?|+;vfvn?=.y*>RJ)u"Nnot?_jI=%Ws׽|fRRJ)_/_N6kSS])RJ=y'{1sn{z{w԰qvmRJ)Աh#W]GvsKz<?%V3M###'~i $zZhs|>?Dc@+;oW gҹvm?ivm|oc^ص}-/Jϱ۷__wdyEdΝ<޲~MkP|w}]\tEbq]tѓymOuG'rryS圩_|oنSw se*N*޽+<9###O2=ĶyES/x~۶m{E==|E;쩟|Ép}Es_}XfLM/:$M)h4K.d~~~rrqj/UzUۿۿ?,m۶K_ҕW^ym]wufsrr=馛wosn۷o߯گ]s5󋋋ozӛe]W"o|$ǺZ|;W-jwկ~s{^{~󎌌]b͛7 _855WWַDd۶m>o޶mwfs[|sss}k8O~3x;h4>?cq̼hZ_oM7ݴsN JBITOpa$?xsCk۳OpoIʩ3/6~{+wgGOꡔRƘ??ټy_o'>h4>7333w^zm}|>G7GGG__qvh5׽kvll~zIb'>qg~ _z_|׾Þ0::|G꫷n}( "A|+_-reo>rK/[nᆷ-7p޽{ /+o /˿򓟼 ?LLLyoGFF o8/RgR;U'{O967p{4 .xы^tW~8_җ^tE}{w nKoW~||SڴiwߝiqUW]v/ /.;t:}c]׏zIr%/y_78y o{0?l6o馵k׾.Dꫯ曍1/9#}f_~{|֭[83|/~WunnxW_=;;{_7J'\tEvV<85eOv?2wl /_)̷e˖ďAOz]wuٟ1FD>߿]4-態(z% 6m?cq":ӆzIDzyffޱc <99nww7qppx0I4"":l{)Jz8.nZ 3͍oj\s5\St뭷x衇NcT33=3W=qZikN7kOwsͺW:&;}PßR?{1cccDeoy[%/~r׉]c w^k駟>== `ӦM"rGRGZ-8p1fSS˿{=je˖5kC>q|i?Wo|8׾5yUW]u'Vg8v'k)™ c˯OilXty'hJgo}߾}W]u՗᷾?~뭷>W_}fyy}{۵k>={ x߸o߾[ymvwC>{n顇?%eYcǎ__>p\W5[??g?k^믿X|W~W>я~k_۲eO}SQ]xz'⬳z;߹}7 q_޳g _<,%4J:,흪w}&o i[#r^G{?6nt<5M4umI^Rꧯ\q G^}_gO+|kf۶mOCz7_^TVޔu].|;ǘX]w]uUι|3dYvWy{c={kG?K/\n? /ꫯ^v_gϞ|)~5߉-[<^_w?z vK[Qyݵqǯo*=*l8/Y)~]wuK=ekQ?=W"Ɍ/O?犏j}ϻ뿦?q6λO\RJ w':%= >i_Sr?|>?0|;^/RJ)9i_@_f;?'CymRJ)N{lO}=wNj0 9/䧔RJ)t9`u핼ˮ3N>?q޿}5*RJS}m:kP=71?M8q-P|RJ)T@.xE|;27Mi(>kybw~^RJ):YO.-9^gK#fhOLgOpc=ZRJ)ԓt2}{[{ G)RJ=NC)RJRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)VPJ)R? :RJ)OCRJ)ԪkRJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"龀U(RJy?hSJ)z DƥK\܇?‰9rzZ)RT?9$oR[NccAK1_? C=J>20PjPcp^ H0`FDH@`"""H.xysy~ G~'~qNVJ)qJG;d̯xciL,[|Ä|H }{zd20̡uJauFFN[7aؚY%cA& a#W|,NaH"q 81VGmmIDRJ*OmV  /OT#9<,td "q>^P};OD D`JX)- 7n:}ƍo۴nldp8( #bɰE$"DD"bHy;"cȃEѕJ):SUџ,`Y{H3d8{Vd!\! 1 A#DZ3JfmgYqfM1o,Y jOȤ6ݏUJ)ԪrJ-WWV?b8wh1Tխ<`QN.r[D+kE@alB+AA`PLր=֚lq,hp(tF<{llVOm\1iw+6vfkjZڨ7V5TKA ![DEς`,CP,1rB&#pyC?'2*+Rgé_󷢚CD/ym#Ee(1f`%3b*I~Z`_LBo$"srx)3IZRJ)ᔅ]O~/s1=0{^IQ.<]æ= .Ĺh C{>ٗr 22!ҘkM`3A{r{[}Vsνu\V+Q".}0!B".6h4y bg{s?ÁX esC= Q)!9d,M[ٻ_¨b*.^ͅYgqy/x'dKfl݃ [[ov*v gfBZƵkOOrks0=;t 5VSno5+`r/X9qj5~]5B8ڵ 24X`R_308XW+㘄FĉD 0KMץ,DdʃER>dd9ˊ1XZ'QhSJ))l"+gvEX//@r"?s,hAxCyЁ D"q_%?GX䂸BժiD$!J,.c9f'E%K.dX@Kw~~F7_l~]>KkFۿR  N0ckd,:;- 3##6`gpKL'H=*F3N^gr"v$Z}Eg 8ٷ؎ŕ$M𚑡5C#놇՚EdaS|E!lr6+G.w>dX'RJ_Юԣί(`=m_woQk?"Q 8ʍ0 IZ&x EG 3C$ː(JU @$H9 19B7@B2{KZI:nQ{<8cZF\$ϥ,ׇ;Ea"L&Ȁ9&-?4`FPI+b5"Ƣ  |0I^~>yI)q5IJjd;a@S== $Yf1d "y.b jkG֌lZ~ZZ ""ز(ci[-+WV|W~x{ŷRx\}pTRJ{*KT!"qy尿G<"QQS a0# a3p٢`(B6g`FE#*Hz~ \5` q4%\lItj.x)kz,<MT.gڽoN %imt=u@< yGC,iϱ {'c%eCX ivML4NJ%^{(E{"y8|# ,6|D9,)[zfK= P DN"ˤYX4C?,2(p2f!,[Qm i.<=nlt܁ wi$rt O^ ;20 x#ݕ5k([l &YAfT@dqmrcwe2Xm4{ e|4Zag2  ăr1,1Y.1[xc8ckB2q%o6=,V厐v IDATDR O隿*K?XeW [t#9Ȋwhep4/Oi-^ bP O "z 0 6(vо_Kr$&ɋcK ^7xMH?1L\`- d)Y[ٚuc3=$Ɯ眾~HQh,wy`} ΋̝nZrfS,B0eN/` ;2,u9uLT/)urY):eȿH+18_ HE>Yh)C =ERkBc]=v}De(!`s "F S: :b.D礘e躚 ŕ]3 <<|![5#. `cvz΁8(NܴsXX4!Dd(pOz6 u 0g b 5jqf R3,&r5=1,t< A8k ĨذN-&JhӅҳl܄7QKzs(`N̖3s`b&d^;2qu IٽwϋsEӷlzig[=5kںyhi׫ggᢱ%K"1â͊t:C^K;V;rWkJ)~<ɵ++|,O23s/}/F@Q+#sD7?P1[vu.V1\՟]J?Kh*1AP5sZykJ9\8*wA(};90Y뽷d+`MqÆ]{dYeF1U-|8y Vsswȳ#/mpL  1CiˁKi3J\V/ >gcȘ2A 1Y JAeW Z!#&ϲ^@k x8@}$+b6[Yu;IK.]ٜu{ifKD8$ϓnRo4.<vN׭]8 N{/@ӞTq((tJA%G(pZ4MylgS_rR.ֿ|t#v;v;$a*)2 aόǚ*FS ~}5""&۹F9%@|VEF4h0 8r k@9Ur,-Eʍ@Ded5$U* 6&in޼}V{ͭfAc0 i %v֌/9m]vX#0@i'>\֬`CkņΡڀ陃V"<`I0^X {o {CgO\R" *X"kkQ%~0g *Ahi$6Fgm>83z9{X4SeYMz:E8KݾX~MY\yH@`zyZgN߳ ϟojz&es5oeC9`Ak˝ɖc65{$Iն06b\M3igdIq92lb5|:Ps4Ϝ {bD@t eDX뜅1&l5 *,lx({6qV7O[3LbI c<8]i>0$e@0959kyg#Y>n73T%eyO:c+]\8N5=T7M-}w?Zrca=\A\  Htph=8mA(\7vhpwPX5iFϳй1^sƂy^fbZ9/0C`G$X60F8$ON?cˆݓ{4[ k6nbs?E[6߾vvγظ: dL^H%7FRHnP6a_5*  3rF\ Ed9J]03{b -8G`p```zz@E`f1V ,sd]9FZc<u&I`L'Ҭ˳3Y/Fp0>$9LeY:Cbd֡6&JXB 83: M ew#^/sNN P/>wus5#gl^lJ=$MŢ<\Q /./έv;MZ1& Bdy⊥J%6DNmߨU#3r3f/RLYű =♓,qQ茅1.H{r~C6S\͸*GT%LF 6HFlQb=(e!.%tbĕʎ3D4M~J)u|Ow맠zq~w}{rKkޗոE"d!Kl ~k„A  Maɽ<[ra;_[|^0 2f8;7t/y?z,KL±m/G^\lv:Q:+VݵƄF5zFH~?uA,52Xc{TjY&Yb(\Kj3MvNL$<,g V{Gpo[Eb1օI9 "Sb1sϓ/4륒YCa U@PM=%4vd CJSo^HG V빱^sQ=$oVEƺJe8K$,aMX 0MSk1Yڭ~ݺuHAX|mƍ^ L$E]Tx VJVmq-j&0}b<c cDXD+jO^1%craG/~gPJiEqw 8@v(o8:b\25Ų?E9R62L-_ i~M­V9B2y[lZkn ,c;^={>=]p}TZ-&놇{Y$zIڻ/fb12mٴoa$qұ %B Uj&ټq]Ң2΁Edl\C# H 3!^sv{V!Qi="Ju Ц<2k jje9sZܷݺu"$Y,ˊQ|BD KP񠏆Й3Ά9sGa$܋"g^/ls?gɈ mN^Aڰ20/(%JKǖ&k8?K}zZNY;_E9D迳T[k>zҾnO3yf)I ewqrq^Dpr֖PW~&#.K Y0 9?m7=@aȘIsF\|l>b BgCHxac05f~n^K$8qg6 v?oQIyZ<ϘYcqCڳsSa5s"F7nN7OÃPc`\Z؆O{ ̐|錬YiD%d W5cL̞9 5$&IJǑs׬B'0v9854M"|0<pBk c`<ۨ0:e~v-KI/qV" 83بw-$ۈ}z1UziRX͵gSMy.l {QI3kj7Aara\{1 C,2H<)X`P"ū_"˽n`:@KmVzoq4ROIpr-jl_H_9f~ z)4p|9EQh)s0ϺoKY֖g9 !#sCS}`ٿJeXZv97ڝ*( x,$s29/wr+fu}ѳoIm @"2id s_L,&I)$nY&Lc.:8 !CY 03,'NH`{>%8r2Zk]xZO0YhxFN %3OrysOFHsྃY3n6`Mjs5Skm491y^ܳΞX77w5{^:ݎ3VIR4iwn[+YcP"]7iw0\ g,ȀANV3֘F= 0T*vm|J0@@so:G\089q5= M\,..an 0i78Kё5 sjqلZ&MY;yf9{K|ZJcg:& B[w,MIrn]7?xpz݋֮0c]ªq *d!+&"< YcAˠ.~o?o(}ܧzF 'Qlaڋb2;)[5$ޢ-ub_F&0@9MYFL1&ϙ"¸^o<P``l2;`^<8 H{\]}3O8}k{ ff)" y#d2J9IMp!{vu5O$D)P W΀ ƶՠ~uoH`7|צyfzJ?tno|om o@_=%i*rDlH3%@u~wχC]$ m.;#;N)92 ffEŬJ@Ex8ܯr3c=8Ӵ-P0)@m =Y\xd8qfvClPEF TG%Ȁd`N\n۫ju65m.rV tDc#!;#PNV"(8IF2()F ؿw7ZX4fm޻BW>V05MMq:S3 GUqE;5"5ۛ`7?'<8y?cO>m ̙U p2qLՠnb1 )'n^cQK]&&$t YRAM1CUi.E UTQUCF,G甜ITnϐ̚ @DU x٩BV3*GpJ@U j@㽣|舽U!TU5O&{wy`Ꜻ*VM.HYLUIKr׀`cRRF=@iDȳx4~w6 y]idPf9OFlySSKy˛ onS:ݜ~x[<{:9˪;طO*\W}}=`]&*B ٲB&`b;D!!)r_7;["zSU@귘?fK Lb[$6J^x}A&k`I"ة֣Q^!d&(} IDAT"S@{23:?U Az8:K]2,"{j zKZ2 A #fϞb&0c0yAÇO@d6n:]CF?b[4/#SC&uΡb?bx."S[.!e(f"iލ*#8z3K`oϜ0X+}j= AL!"0^_̌dfCUc2TbWCftn\naL[H˼οmӫ/`/8b)NF6Q}6kj>_s@EC=O~[?ݶO?-Oo~?}bX]Nϯ/[XOF]ӖR@E#V 1xhf-"`Pg\M\.].hwqqQFM(I|pq1e2Imۤ닔J|h\['T!6v8&t}t<b{gr|x `tj]ʃ~|X%6[j`EL"z')AKk\6`.&FR0 x M@)>[C@4T^HY;|cMz_Zd$MxsH``bPpKU5fWe20&۞oB`@0er-yX@|֑r^ BDyW@2KD:, )0eٽ9;{N''Sn}h^#Ѧi )p4str=9ܴ E20U̴Tǀyf}o:Z|~'ptZ33#ȑ'G YRРdĬbj΁'E +#9˶k U hNr^q lb3 p.(f`ղݮa=G'/Ϟ8;)77 ,lݮكGw|l~gO2=8|qv1|Q9B?`{{{ᮣ"DL'΃)B)e2UuMD]m֛ #sh&3*3Ro @` lbhHu4Wjr)%+ o6 *(TY8(]qRhsx[+]=ͺ^om=fo_^U>U=,h2MGE[\0)mf9ڜsCnԶ <.H:C(h]Cup(U˹hbOqX#tjiUi9ŗUD+dLqu}`E } nȡ800GkҢ!Mx#I06[|l+`zjvl*=:x26Cr,{qhjB.%BVє @ 1H݅lG$܍ Pv!g й3 fȩhF"tqCMb n@`dA+Lv0 rj]90:JqEwm'])7?{Uu6y=n-4''&pa| +`X-7d8;HG{_px\WUH1"o;bDV 1c$G\A Wh竦! ^l_zE7^7ku@]JMM:h/zVI3 'mu m Hj*7 ЉW0`ЭWLҵTUUJkxkҙI1xZY¶}OmO|>1.UG/^>[_0S]>={Fw{tyyy}s1iYi|ˋ 3w};ê[6"ON!ha`vATIUԼ`P"x]Z%K1vSQ }"HwsεMS΅ҵZ!옼#v{B)@k~""z$*R@!˾;G.? +䔶u48F+sP *)DJ(;ެ ѝ|-ueo:]C"m@t8Mo/sN7p3='TMy\PmWqݖ=Y/^-ٹh[n\Q[`% \doh^$+ Dvkꪒ":zuUKQO˵lӋkܦC>B"eSbeyCdT6%CSfU&j_}UF{`+E0$CcB$b$6%3x7o=molM8ZNh;ѴBU4Qw7o]4ھ=B-'U[`N h0f=@R].9S)" Z$?ip4L$A1LT JfYˇbly|v}rrS̐=SbG2p_~`X2`D¶|V@b|yzG''ͯ.!+)#gF ll<\Мs"\OqXRΣ$R@J =|u~dCU0ppQUjmڛU{arSaA.e->ww:{rnK!8Rg_޼{|R?o[}b\ח?ųջt?t<;߭'%:Jjz6@~#8ϝs"r {rELd^1p8,R2SBEwLmQ1"'")̐#I7v&qX z(R@e36mn6u]M9{y1C:ԕ, =:^.Oˊh1\U.e+LQͪqU]\_|Gn匃A,E}i\1sjmVUЊnZDlMk`Z#?&ӃWg rׂΣ*479ưYvհM ( Lb pS:`RL7FJB\#D$ ADs&Ť P,i.eSR&\)ohu+QA H "r5q0Ր9wʹ7Dwaڶ&g o)wpuvM5Jo_6NJb5 2b4تS@Pp4@o렔Aׂ;V_vk2RZ)"LHXLP44@Etٳ`ރh>ZCth9l3"H)pOO\=<OFO^J.]J.TLQ@څ<u1ckSis!0jQ9+%Wē1 ^\xU[4K3%35eGR%i)1{ι$%:@vh=3#*3b5 OfϖJ֑5RZNa[/;wQMTfYGFK$ ŋ/rIuy:$)iQdnyf~g9=}񴀱wW7xYV%z{;)Bu7$BDɥ))h}&u-8!byfjQHYETs)PT29 R:"1 #:If[SܴG/_>_m0t12.3k;8m8w "M@mg*e㌃ڣJn׾?rl΅")T F==tnv>;/an@btaoka8jY$wq8%9#6G U|ۤ9Tq4t]b$G߶w{c=,Φk؛b>qP DfSک(1~Ib EьDMMgFȥ 3c`Et6hFhj jH\*C Aǡ.9rN2mwvA·)x!"|;fo~n_ }!$RN2 ' (v <#w@)N|)A. Y_3D4DMԳPw0OvDI(` 6]۹Jf3{}ڮy1j?bLVMx>RSG}y,  F*{OFG%ݿ' >5Cbbb?Hu眑Pro9".0s_e@"UP_Q]{)gݰbb`E_1)t&%CYnS$ݿ:ĐggptG?%Td|9;??¶nGT" RϤ]\m6mEu{Zy]Oۦ[]OFnXAFCsl;D`7$5VuA~a"i19:\l"2QX7.I]e1|(::^݈FwtypLL.`jsYX#|vpzrSV-vMP+vXSڌuQ#3DLRh PUnL{7~A"ED#fbV#RafU`"0BBcRz_JQP6@4!;aO4`@r@"C4 hQ=WEgJl@jhH &3wB $.ۦtĽVg?VPZѯՉ]JwOJ+')5-C1['`S r P<:YRɟ?i ͈ xtRfuH+T5+( u-E{gΣ0+f 1j2P)iyv Cn*u_G}_]~t0GBTd̄bt/r.s[ zlf%-Ͳs @DJ)>WїYQrvNUo"DLqL̜SbιmDQ"(Ej6,A?N%MљY)E@ί7}I]bG6v*ZF|ݔ+%qnPădCF|&dXg\rOdUUlfC]-׫95A}(G'W/>EFbm)X7tT$#pڶ1@Gz^J{S9wL֫9k"BT~攉  DάdY!B0R2b\*@ֻf^ aL;RTS!"Zd&@uф dB@nt+ޚ-oUԿ A$ M'{TaPWCtat "!:32 "hrPq赓@vͿPxy~ZO|bןͧ OxߞV+]piJҡe0ۂ!S@ VXi#3@y-=+o4%|o+~!ϻ /mz*,L%OHJEo77volƮZەeBU()`>:*,q)d%{lcPSPr&ݣÛdLA ) ?ޛOOOaoy IDATz<"Jhlý EՌkעN LTUQ o~~mk'ǟo_ j=Fq0S 8&i=G!_Ozm#x$_]_<{Ԭ {-'̘v錩Yv2>\]H` ݯR //Nb\OH^ݨb U0o;4m޹AZ\ _:d^򣹋9z_{N=mk|c\zdoFPcfۅӃԥtm۬|yӥa\au<s]ERRN@9".'GAsDךּNDHD̄TJaff&&#Tf0.^dơnxf:9:Mn4gW⡦L"-VMSڶJgGǣςjӥR {*\=GMU6DT#Ej|<<ػ^gɸop0 q rNuzTU1&+ 9FpsN *hZ#qoķ!~ ?~?{ßSq>p9`xE7b֚v*\n.$(r0>9)Ȥ0I F KOI*@Vm-F ŌC$朋!(ϿxoF+rrtxj4) nsSd&9u7/&߸܀0R5ڭUE=U5l]ofbVˮr6q~Z7}]fUUy31at*yGfV1OqJ] ٦[%g۴ յ )ƠV`XכvӕeXbI֙y\ E@qdX݃wwtX:LVKO!1ћW4M*:R#t۶]-7a<֛x`DE-9"E|` PHT^JN%ӭ;w(L1o7ϛfT$vc{"G?l!UABH"7<&K1kQ>8>Yl\.;PEKL&EY&~9ѱREEyt(GC}9[Uݠ:FJ,e\ Ku5@8;}zqDN2fY!5+hdIJ1j$ŀrNHrk"l `EiZefg!*\(:_d"Y>'?1fU&;r/0~.;?7<g/f $0n%CZg& p,-Tfr0kq1k.mm7mmn;t>LB⫨H{vncC# QJ-$͛fUEau;XlLFUP.mj 0HJfT{ӣd-qWp*rxY5 t4h0Rrtp0gs:}O1ǔDI٤j\5[)8*|Gym˫q`0Y.%,E #j^8" 8轚)}F_8 WlC:4~Ȯ٩䲞t$b`Á353+ &eC?1)^S#Y$SY̞{lĒs"*R`JDv8uYM`zru ֛v\ !(FB) "谊HhT!*4Ϭ{8!ZEg_1h!G^Ἀ 0SoE1J׋ lhX5mF3QAAC$tH̰CG !9Ӟ֋awFv-"b_`v*BÈ77S5(Jѱ's!XE$bbLDagvܯtevaAHff@, ʖq2r.p_3=Ot8]}&/deY>+h|YTڲluNZP 2핓;J565B;~MO"~uR|UFoYu{/gB37^0.d;__ۄYNc? jg9\**XtyS眚yD!t4?ԵzZU O?<o|}3<!.N=\ܻs|1Llڧ*К}s\7֑?;:~t~v8d\W'|\8]>M`*ޱ10uӔ )nmOO&ʋd2Bպ[g %}QD" ̬Sf_fQ"Ts4tw];]frGd2gAnͳe@b)ۥ{}n[_- cBl)Y RS%՜CՔr.x8Xl׫]NkowP5!W]ŪL,g-pJU}U'G/=NnUʊELiqpԷOާ?>;۬~}I ;tΏ*Mˋj[7_Վl6mݮ,onsI3ͼv0ՓÃw7Nq1?@GR'GM0ňHi|gN1*aVEb$"5sH^8DmX_oWΨG O˧&{+0 #JRDB@jy:[փm۴RIg5R3XKjf:M̅|qc"~܇жsn Lԙǻ]sikd:8ISZv> Q$WU ft|tTx@7Y;Cc %4RAegɹ uNTgӦ f:Sof=w~qV(=@D6ψYaSغ"t3mmF%\K{k3igH&R)@!Qtd!!O>8]O}3@{cR"p: )!O "#^ 5ޖY!X߅Z.#.SUMDFDm˺sҺa%^nYZ}-G櫴JOeB7/` K7>o G!KFÉ [[a-|vîl{z7ܛ \mK);1 2y$T(0;F0n'̌QA%&Ii\L!"&S$T")z>l61g3O䑎f[ǧG2}}|ɋO?cQaw϶ۍeIs gݬ_<~d9]f8'TyB! t1j3IH)gPgǯ,LXy9PwnYɨJ`ˆ̣4Ty? ,TPqB$ D"R/6M]OLT}nԒj~5O'ӗ/_*@w!d 1s;"2SB2Q50"*&="0\sl6dY] _si_Y._l=~{k5is$)OLb}sMT͝DfMSrW۾*<_e m )!@b.<֫:8<8n`WUSm[Cp HǔZB5ǧ|btLDR$I0n%l>5S"Beb 9gG3Bv}>"FĮhRTՒVQ0DI P%jȀ[O+Rh®!z-Ps )T< UUǡ8TFB}I$3;ٱsR0[GV{! i5w`{j0vوZiL @Ԉ1 i З;qw/O!; ;;JKK>K˧i$^=\~7tv/{MUe zYbFf:(߆H]7jҿ `_|U#G8(AFȈߊŪRR2˕,}-'IM}#sBi\dǮaw]q9burm̟Cߵ7!ϏtssE9kvkrɮzw8ڏ~w֫Ͷ{?|ӧO}3"xm23oTjHBST3r?ܦ uPV]{x?ʻ2hb]dAE;Ofy$N|}8EN a$gd8<~nC5uŢmOn-~/\\~y͋ϟ^z?|?)|~}f{.aH[+91hţiN9Hn7?O][yDG n6L} 1eaPU4!xG)(f@% "XKm*Q󇯟],nY^7^&wǧ*8+{ ޵BU-] "ӨPH6PaLd Ueāo:Sirv}ML놘* f @EbR;IN"p 0պ5SVQO")ƌEJc `Uln;WA֗sU13 &`@F "``f8t4f2(s92̌ة*+t& ,ITb&o`&bH̜Pu*@ PtYZ&'R19¿BhCD DTD&D4S{cPh8I+PiV4(cO%cI;lD Uec"Zz 3@"2@ѨL,:ui^YZ~=\1\|_lxty^~/sk7]\_ㇼ(!.);G♠AEDFбU1F1B@/}7>#QTj63$<>8t9%9 "fev-K^Lw_ۮ{}yY>}p2Uιv^.;;b{vnVlrvrًgOW?jw!ǠS RQ~0A@@MD[IufG7W2 GGGmQDyCBN&HD>84CɳSAR,qN褯R6/eUHccZ__AG?+~zlk~囋[Ƿ^y6mjJoדţg>|~}eR'fRZv|)eqq9DQ^TI/> Ϧwn;>nӷ]DH4}pA¾7mSנBQt^b4U]2PGJ !YVOuz2*.,۶r6r`pN*\<:9nu]zO6z,oB"iJsf熮GIs0__8 Ԯ:" CL 4TRg,Ogͦ;Z:*Y%2ZF|6'bͫ~LEXD2O)VB ќrf 8 MRUhY.&7 3! ; ɥ"aZ!(sDRdL V:_̐ E ¦E;B0D3(*JϙBy4 +22ܬ+yؕ E-v/!"Rc{Bým_A.PLJ3 "J{ P1a j cKM IDAT2 HVս]=^WG0dJ~YQޟ#1*8-ݭ&(o׷׳~oo*O {Tރ /ޒ|8|FR0{d/>R b0zqƒ?@|pΪ@ 8~j 9z6]'b rٰ;9ݵCL뺮W=a3>Nr?[>hn|ݨfwԷlE$Ã,N~Y P5$HvܔW&S`.x?6'A[LYC a(E<ӬiX4T9BfpBBCI;3C%)^&}jPBLyJs̚9紋 j)o9·5HkZSnzZ} ]gOsPw?/~v,w6m]߿˻g'Ę& Y0c""~'Yv ^. bf)EIiqw)5[norHrtr"L4Tc,};2H"\i{&"CST0idy7 YF491uͤuJ Ir o~ };dU 'OWQ^7ۻ~k]iέ[^<v4>ivcOУwCv)ovJɸVHW۶{ハ̧!p4NLw3s=dh&yRŘa\IcPam4%E⪮R)mJ&8Wh#` Dܠ2QI sbVA@S%f@lIX`b(q=co hC@B$C"ff2䘑J!XݸGת MsMo3hBgDt4.R+·}<DFl@cv̔åP8&tD!MCJzaDld@P@,*izw^0_MZ=5۷H}#L[1FǬ.``!`i7dvL0KnH;y~zk rD=0#f05Ȓ$FD8$T#Ø NjW7o.Ƿ9.OyU=J=-<8 Oy͞Lt&L9ʪ1I5#6O `8&eb9`]U'ߋݲvr+UCT*{W"}w`ST3.Ԙt:YcNʄwrus|r۶DZ*s՘ Mr8%eQ :#,qW' I-H`{ lav3͌+"9nQh&#^,]]T#ZUR6<=]2;-4۸J8H S`&3(w P`yanroFDC ҉΄ESGpŵX^F7D2{yY) HB2j$8P~] eqoo߳6ٓ=CoEu6 wt) vj&]?>y@U If F`2,nDh>#z&G`IVM1o~ss-InH}l<}~Wv0?}'O>ČzB~q?m7F88mݫm7N$0i ȁ(΍qfX*Q0Kۤ 1aNs&Ud:$"," ޕ={O;Q\Ḙ*>ývfn7UU)I$'UeA[ՆU54?|CP{pG= ~yAWͮ\ܼ~i;'O~qT u3Mg! C4iE褩i bqZ'):۶s::F`fL5nwF/_]Pߺap~ZaXՕ?<<|p8 蠚 }Yۂ $jٳ4mB]]`:!Y툴rU76Ř7&J`qpzIpqH*Z7 +fwK <1aQLɛbۜӐ2 ha}ȵ]653DcfICԣkV$2cs%`d @ h0hFDL9%TD)q5_+?+:@ݫ `YNu0c 䂊m6J>@qƨ5 (X\6,UɠHD"@:V<!H[DRB@#S"J{3 P~P>[_)"a;__;?zJV!gHTG aK~R8BU 2`|.% cqLʠVl$fKsX3bNH%h!h93ɭ[ O޻w^F}uy_~cK5}_b~tn6Pͪf+:Ps>9`ƪ8#>>t4o#P5̖&K5vvVUX#0\]UR`*߰!YVP8sUWoVU0!dP(>DF$EQACzRR3NfG\ƘRj{_U';~lVlR͛JZo]qycD"B#DԷ>;5:gu}!Tsa>yVśvg{D?w3EW~TF^1 %/oJKc+(bc^mf% bDz(΃9tS"|j;aoa>(?X,xl/}Ǐzu1u8QCS6Cnw"mÃë*,q"]6O0Gl,tCDxԽuw0<7āp0R05ewL (CP U r9 SAl y'x&Znv1Tb^4{͓wW;jqy|1 |A.o߿[eY>|WXNbb.IbB$= U5]燡8K&¦j*ڮ57˛m7׎`2^]_g3&rȠ f1_]]lbL938*ۜsł7 =aTFR*0 3d"wuNk1TaۦSR7?U;׵kĮ6mRl/^?i`CEyn7&om49 aL3MnDF5Ra) H!1# >gLf9Ƭu`S 5cɤP0K3M{L9#(0S*Q4#ǔ9Cʹ|||zy!?(܎=%1& eT  T1^!D"w)X LL&=NQD 7 Ѱ8Xc23%f111o%]f]#[+E%?_צ#]lpg:wL{ },)Ah{c7;tJmw^rB:xT4Iv]v\p 6q UCl Js]Y3;kf 2Næm9Co#!",]|'?hNa1UC)Ur'l[ٴQ9ө o? aT&\^o~ǿ{1L*t4ݿgvz~}<Ĉȫ9dWLD)GyͫW&ɱn1,i3ɒ}_h_|PU2|Zmb|KSuDPinSe0P5>XavU.&7 9 CVE N^ج.˺g>l{EkcD]׵0(Χu6A6mnw94ffŬ&tM&d9EP"1"z놙SJLjUrÃ)!'ԕWI2PI*`FDL#4B.Tu@B.™[VTKXMSotaHxj'ߋh;|` Rbv}S_7gLU/HX;S< y'P2;y"[UZaO} Lf3aPSDJ1*H\O_Xv/׫Է燇ݰxuw:>{vg}T`6]V_~hz4Hԣͻ_v%՛/Xχ{~S LEJjUO†*%Z;D94?8?WQdbF IDqS׌X;!$0+ry2; 7DYDQ5Ɯ$`ErKș*2߻o*7`6_]ۛ.>7O Rfӣ[g><<6vsf&*O=D^\LbIYEιҔ%p^#1q˫u߶vw)z޼x3B}ߙ!,u)ipfcrⅈ$C9t+W`*.ݺ0=>UGCV}MSJ*Tb׵L-%GhbVjv||ǔ!MնNxjCS,M3#c.JUUUum9%3mFMRbq^_#&+|M3 zQ#B1q2N"$\ f):BfN&!' ]o\N=B#L9r Tmf0,=JDʢE@3+\ɝl1 Kw X4F D̀Zl4Ty(i-(Qdm撺-SK \|s;wJ [afrwVqD`zԘCy2: 3 q>]등#&fn֠:-TrOzhLܜ澯B#;CKДxL3dV DbٹiZU5hޥ~;u@f޹@ h//v;ýÓӓӦrܻ5xDn u9@Ea^\Yڮo&@ۧ4Y#1ҬbVR3G|p_1Rt}v;@U#.vMv\*#$pzڮi*SI`Àhc׵FI)7ޭ^C^bM$I3-[e-]յ`%BH!eF /<2ᐄC@ꮮ%LU{y>=9vUwDrOs4MbMMiDMfS (UĈ)Y)j`\Xd`pHT9j*\m߼$L$y0#83(Gvl*3a+98+c "1hFfP AF(9X } IDATpв * )I%^2l3t@ad 2#9*9*1*`P׌s.xd*V_40b&dDr+=B3D`F7qM0?# elJrߝbݔ26rAU1-:JdqCr$exBT3(R0Ĥ`Gv~Rڧܙ);sJh*B)峳{Jd*$cUԕr9XD"yR7 M'Ru=A mTDbECF`γYt(9& 2PM&"0YRB9V~WeBU9]@/(m΅PZ:pdmNUOK@ie6׼s7j p<B`PWXy*$(L)"2Pc u 12CCTPQ9F0F`C`X(EHh(9 u8D/vֻX _L/8Uz Pi9~` &@0Dևn$(p)nDUI\\] -XUтsqGd:"wη>z:+AȠLL7!4,&ӜS6. DA"!. Q;i7]wmN]*lH|bm{Fl CvUkGs&>4 8l*}?~vNOޓlO|_@DHO꺝?>ZLfSϯ)FmN=Z漋c60KioJ5x_6v9} t>ssC`7i(ǎS=!WK79d亞c}}د^eE"dv}ߩ(Ř9fy~ =3{ )9pt:, eU f$DU hlFdH {l DZغ1T aMzTԱ9SɚoW}XUU@ ;QҶ򤱪;q,<.i<mJQˍNӇ#bQ`b}Qܾ۬wpyz\:Crqzǿ{ߛ8⏯_O?_+nPr|ыTMLtx D !ϟ^xr,{gg]QU9Gx?mj\{+<.$ϼ;M0c9&0B3Ӣi'U `(`Աs 1KDQrKYF("&C)e~sErwބrc"E2uRfDT7g|xuW_g!fÏjҶ:ԏ뜕3!Lu; \yWː߼~w!n̐jC}}ehkGx**}7m6#b BaRO8yINfx>]?w^oEބfq[uf$PPL3ZS"< F۩6Y,&60sY,Sّ23Ϟ8L拫{fb^;Qӳ/>@7!L'uهh T{fWuU51l"~'Bw1'&3g6xK!D}ꛯONPmǎwf$CqM̘$Xک(}0nHjy3Lޱ)أf9i&iɒC:>>8;ɴFͻY1ơwTn"c&'6=27ME:ͪ9Sp8;lдIPUmN2VS!ft&Y,rOOEe!J'$3D-Y٘!B<&ΐ#VUᑙ1(C4"Тt.oraQKT;*`PJU RQŀ\ .x1#t h7M8VM@8:@-ɸTCy n9v+df,`T1Vm pS(/]HPb}mQ` .:fV<~&9"&U 3zֻL?cg[岚Of;ؗpTF%Ea\?x^#ML >B7 E4ڹdfD[SrgKf!1{FCR);66͒ z&##W6} .̦s-!l2yru޽I >v\޾_&FЄ:t7q#EBN&MӖ+rN ҾOm>`LeͯcLC'sTsndz{``*TwHDq*#PN ;"RytиOi?m(7}NFvׁ4uD0NLbkꪉYNn6:B4Jd5)ɤ12"3j^rI!"zESC}t1m';e ,u[2|8o^pG=,PQr{1&nXUUQT,9ڭ_}6_z j 3P#@$3 Ȏn62ʇGEZ cEHe7,)}d&PxfHN;J# #f+E)Ch:֝Y)( 'S1)T-xo/ Ÿp8NP-.=h%4DMTqq^ʖvԑE(pH8$Tn|C2/1f:Psށw7?U*,9 z?~`w߿v Fvw{)o?atG!n[˒{Qդ[xvzCfҪHּÐ2ø3i4bDNDB~;Uöݏ<=zR&4xD!H^uSMLNTUr!PW11sP|kwGu4 l7 " ΗA{,"!Df}01}Teu&6Ә!f~fjS>"(dj$4d")J`R5]D)'&'.B@M*c2~?L18v!>WUE8a6ow} #oS]~6vͧG'{F~ y& }bDԶJ? 8iGˣٴ]~!)*h"Babatؑ|Q0`h&vƌfD\ 2-d\̦1b aҢBA(f,vpRۼcs MjF4UupbeDdDv(8|ʰ2P_^S#ؗaDycSUrtE!)EJE*i̮v~e[% w˵QT T߁w7a5F7S3C: yB!0 :uKhV{[ sK8˷Bqo1!rbq|{亭v?rtvzw;șsju7Κitn_ΦӪfdo_ݰ1w20.;C99 >T΋0N<t2CbTTm\v]W2f?=z|R{߮BSg$i>:T S4\W..͞:19mcD\);$i0TBlUIʖPP)JxbE]EDrj2uP2bQsX!=G?ooNgٲ_wѥ]5ٳ?cQg'G 9ӳۛ{CM=#j {"}X]Yrgjzy~U.Y58ovA/9ۛ|qzrUը18Rr!;2uz_yGՊ h7D a.1wMkGaHcUT L7ìn[gSu>t}/dq61.xUm.@r2zU#"4Lv:oOIySy_0Ę$}Xd6'ǓnؔdvUw5f{x{bͷ0tL4m]Vfz5rUZ.2*gU6ߙ2hZ]\o~OU:t"+bR0@IQ!T0b)3â2+ʸszD|`2Ӭ#:QsީPAȒG,{;S9 BDDw KTDTljAtDN5)\߹ASD2 X@xw. d"b,sl3y8"C?^qK] +\=m`RI.>#C@@.!إ80Y|u|/ ;n&o L}>џ~]n~"n2"$INM @f|)؃c3P±Ebq0$@x^m~B@l3::A$! 7jz:uqO~2:vͲ C>x)DI>ի-c$鲎ᅅ4ѻѓ'ONN)wm3!2xTQT {NNv-d+⦪]!J+@(k<,s1` ˀ9Pay.vMf2[U5\5of};i|u<;JYsdx<˙Ug>8|8BެPUpyq|?>=?Y(b>zVΎۭUd( fl6XmzvyM*˟x7EVUUUkuj}AryR{9GqFav#i4 sjئwNk+st6?wr x0^^ng7ZΏOV7˫+j|7}cO>^.CzX]U"Yrfwm[缙/y2iڪ)ɉ"1;&IW~S|:5cLq\fS`bDtD`ؽi)2 ("0!mTux UpFG7+0jvTF,Y(enRT3@H .8bY;ix6DLLD3l1'`l:_L&?#BsizbjnIrz_Bb=~s_!bTgY!o版Ih1oCUe/^t:]o7/_""fl7^MιvO0#8}Y>m;P B$ġU> TUciHzzzn6WqŜ Uޥ'̍nMDl6̃ 0b !dm̩mBG^ɾO Đ͜!@9*L:΂U0#.+%n[nMSJY)~i*v;8WKK:i;wfh`"M+=crAwf;Nsԫ)tS9CE$06+:z& X)Uh41uyDwe tLr;x[/QU C\ cREGb+cPTK؏0k`5GBAdUTf)hEUCD5as0T'q흼Cp|xB? _?}fg8FY-B9p ƌBnT:NC7@19L'Ϟw;j 9Ƀ7Wg%O4{6/}rp %W]=ڱCTU41(֗s*C|8`j9 InSxwsmU=Sh*"KyrTjL)#ԝ7np$YLM8<9ܛ h&PZ Ǽ1hYrQM%'3TPOi޽W2>x0e H<|h6[1trIgύ;o1TgǏԎ_=?g>$0=X,f7^D߫ZY]3s?.cDR嫗C~Ϟ:&oӧ/'1~ɫ777mjU]>{2D4N&s$If])(9ɉZj'H&!&ih3~1m6bzrjĎSTl>Cr. ]/>VC"p޺~sD>,*@s̬#f@Ed*#R151+&r%ˮxs^̏fa~v۔ cH9%D)'!pD4ix~ܕ?9^ U]W [֡n{_Z}NAL= R3TɄBhw2;8 0Ҍ̀ Bʨ[)K+cI9ޛas`!͠$ PR!(sHCOZN76#nFz@b6(<8VPum]MxbRHvlDJ9))t,]'CԷ!_umx @M "*P[Om S4ޜJwJa{p\`J%o+%6 ,CLHF_oN D lV-.o;9/G߼xqv~ӯ~)\( Yct)8@I Ԩ+(QTH9QoD!Put6?9wj@X߬y1WŇusu~nɆf]1ll fLD@`m];ITЀ9S "F#dMR k%'uU5uԭ%u!).Wnk=_w}wj/Ëv'L9؛!\,Wۏ]D 9/^\orI98d_րx2?6mwضuPnfRW|w͛WWu]m6[D*DdYՌ1Мj2V*q:?C삣}퇎<ľs0.;G^gfUbV)a{qȹM';oYT-<_Sm0e.<:d!UU$AJ$aHT␘DRЊ4c*FYng/cNڔ0s\%K? )G|yIb&1XwU̥Tѧ xGi0nh0E.(:`Drl2S2'n0Z0 L g#o~J/ HGoA~Y R=ñ02AۂfP);HDTaV>>^,ϟCN j@شm,#`7}s>ݬw #u9+ɑ0A ) dX<99Mb  %u٬ͲdBo뇠VӉ30ѤR0GZo7%XUWWoo{vM0$͊(T5K&$ώL>8W00 ȠzWQLMǏOB=L狣*\#fv&fuӧ)WW_Κhn6'!4?_ys3Mٕ&9AyU,j*00(Ar YTUm 9 nHͺ릭cN]dr;[47{ocW%"o͝L.Ek*2e=cdKjuU$g.qΙd2Zw߂mCKL>y}B6 xTl]O{7  CdvS'ue$re5NbԮo)-D tڐtf_vɩi HMfF̖n-N<ЮĔd.Kb$)+) f`RF֨K戌FajNc Rhb5d4c·w ~^U6j`\9hfCrGvH"Z!af[܍˶;Fvv3Cg`BcOK)EUQ79` OUsшc/5ӱFڗ 8+f*DK|dǬ0,/evy= yޭ <*2"%:?KE)N0܍@mlow<(3@ F```U& @1)bqW0܅eۗ/AD +5uӦmZWM{*n֫f. UDkJxOf8@`0)vEw5|c&ޭn|]-fy5}$9ھWZ,G{U_.)ŔޭnBo{pZ5}w׷)Ǯo'u5c>T{_UID+)g7<,vhd.\v=? ՔLGIrՖuê_$"n[FBD\,C?<<<1i/YT`l&y0;>]3 L8_l9?䔲t:=o˽j9\uBķw7ۋoۘm_|Gޫnn./^/2xg1;aa6ijR5lor& ܭ,Xr1[oT%x ?CMb絮i1?٪Pݾwԡ﷞kG"Պ!zc}y_ehR1BNI6 @ Rpu WMY=ۍh$9u>WSU7En5("*v1yRb0okCB.mPbDл0bF t 22bU+A0to-:>3[ ,!rI".M̄D9K7dEPGcfM*PcDD<̀lHJ08 {9b0"3&UQ` Tpi 1z+@mn3lsfh31=>N7jmƁ%ʟƛUIx(Kx)Q<Ơ$ RN~[; wo~Yv#eQ @ .rAD%fϮ*9稂 )ɐ[Im2ai UwCʞʇ Tt]lʓw <j|MDjjx1nk&J6ǡW5D"pRHiMąh"Xl,")l̝%`EMa00"N!9:0:~ J:ĝI<I$VPqo.}k|I`& э[C@im/\΢V@M'o;ɮwx%Ǯ8rԸ A]!UE ?mBೌ6 IDAT[]oPweKoݭ`Xŋ`D~cJH jtH)w# FCNRd!gϖ{.+A4*r~uYF_qW@h}.#3Hr:\7뺑6QPYydӡBW/_0=8ƞbڇ9qp{/t]ez膜 K*G33+bjfUhyT`<ݜìnT3j ,Y$ 1i ^zP#eUUMb0 ݫj?_}M1*nB, FY%EiKG~6i6幯~CTnnɴ^]]Slf\?;=y 8[΢ˋtFOWnhw.0nuh>||}ڿz%,f'b>T!jwW9wLWz_-kLg77灐Mv LU]^ohlmto~ j2=L bipK J52@˃׷* }Y̧0i$'"T9jD.:GNDF4#Dkstqp9خ"}6b|v]Q%zBMæn&1*j"ޱiDER*>b\_#bhLT Ĵ;"R $2vaˆ *%w:Kf8!TBNBeW>)"Re U@ @f%#"@&Bs/1{Sޞw/"3 T@FutzWLD" ZؚΠB!ȎUS3cDgX, \' ]@MaY%;'KIK|#"Uށw뷼~N^v5cw/ @L8UF "f`nC\AD@84& *b-<٠՛t֪] #_sXJv~.{O<~nMfͪQL,yhn70E#@Z{r"73e4 vYf`d"ƨQ@4l~G#Pbzq{WW7۬Hy0?>}|~RWnWWYΗAbNGpsw}`C4;<80UZس Up至7o<>uX*飦 꽧O[o{{}z}_`A7Asq7w7WzTU,9CP!R{sLH:\> .a 7"11JpilBհ7oYSrR:Blb j^,9e=fͱ;ьF{UAEڵ]'9aJi:*V5릮LAs)!:0l|p(u|0В4upCc稽n!$ .jk(!y&͙gS#ܐ"sL b;7tрDQd-Iq@rw@L P !*7_GhHx0 UpIUR 0əYLMDBUd*1!;o`.0#1AہӝFtz]GZwcimSp y of&ƭltJ9vdA)2=hX`rgi%. RP"<.8 n1”_ё0_vt(br][; 5 Z?ۄЩNDzS (w.6^Q?79k+18S@ x(jB gKQ|X"goq)ˋ13 O>އ=;tǏxr{UrF@^ &MPO*%[ad?u=`=ΉH^\KNOj mE0abTu^pYG)ós֕w5g`dTRJ$v9NF:AD 03Q˜Z$S|U/\·4'])pJ@Q@ԬDW ԾZz{mnof> CZDp=}qE>{޿aT_Uf2'O'NO>njmBO?D7yvވl6=>9qUu\lC;|+_ݮ{?XN^ӟ-ˋ7ww_}boT^Ó,yL../S ZʹE$Rbfv{zu9B1Nf8<6 R{ }Mg9n}b(%55 ;lis%PUɳf:A65n!ivO%Ќ̠*I 9 1 ĥ-!qhqMU_; 1gfV>(UejCFۛ"Ƙ%@͐) HB0Uu9}ťN@\? I#TM xT}5ȚAIMEr Q1J[͝bj)Uuqɐ*tD&Tޏ*Pz>F+ڥLÎ!E$rlmW XR ׄ<20ェ 3*`Iۃ1~eNe0x!H"uO;:!cyD4XaJhLLDn#o"`rEfH;n?1gIL7P8:>}p:ο=3y 9ZNzooכM!g1^w}g?|;n6볳ooo_~÷IcjzƤͦ|9BH~:m &;6mumm5q:Tto6b9s 7,ooo&MSu1Tݪb}N!D=joMP-12i읊t}WU޻葜Ȱ*ynvUl$KU7UJ hNvGQRH׶xs}~S\a: }o]7Ta٬n;QUtG2;DN99GfLD(xbd". >~r}q&ũ``ƈzO aE,#dT˜جG;] FW AB-# (q920q`γe&3t*h@T錖 V0AYUvz P'v T9*b IA"m̌"XX+U@݇H#$ڥ<Hhtp|}-xWiz15KHI3MqֻQ_g_r5g?9m7_+V`XMbJ#;}f KlF۹pĻK[h&CCtb&A3bM/_OB $P",1 vvC?>8h,n9b7Į-0]ܘ) 1}ݷ߾Ǜ+ x JDɳlR:ͦ[}dS?裿ꋰIt1R,CΆ bLXv>FOsT0bRPF=r OβlmeJ)A-Lġj-.3D@5:TY{ H9Yi&S&,1٧?ۭdADD*vãOA{D\}ΜG· :tsVi3u9׫̓kIWUutxhuUCpoH'U7v%ěb\.snz_b>zߩz!垙RL%#876)&"FwAE 0e.;Ɯs=MӐr7LJպk+4ni;?͖}S\QC`0s'sw @&ff說!e%[۵mZ.*`|Xo:DSBt6nmC4gpv^91fZ u]lҤlÐ@!}b#Ąww{t6o./K1!ؗ猴*dcQ(`1*#@u4$v1!Xplvb\`6,JL`*)& ;&b.;ƱrAQxo+tzd)=@l!NU?HU35.vFCDCFpP:Rlcη :J5_}+8{w]HGZz,R;n"D@%7[oc7!-ѿ `8Of% $&@h(,ȲMHU)% qf{G1;@`:pD~ӼZV'$ػo !T,E L``QBSSs.ϳ uuE&4#Y+i 418IQ:`D&RgbT/?89"uԅ~%8P, >>9]e,) 1#!2X=/Lz2 R6(xtn1Hޫz}0 (:GLʹ&l!Am/~9g+$]癉@Φ>n6|_~ET珟|''}f1_̧jsJ&3oUݮ7eU+G`xlCU*86CofX*l7Û7ggC?{ t2!DON;%W w 6!#,Z9\SٵWUEHf"K)׵b{9jƤw% tRWcdj ֛P;&M5$$`YT.onnE { $"'U)i"|bLźp]O:BdISmڭ5Mhf]eCN}Sf"IЦt!=<}|u2y X9eH|L&"rNL7P5&Ɇ!:?Q f(Vv<|K18UHhj&#: v0%DьDckq8ӎb\+R8#] (l g􎊊܈ނU%逻Lv+?SHKo6@&"dT*p1Ew4@z.Qe@%Xw^ p|Ax5, ";ީd1<ݘ^w􉼣}߭'v;v=џ}XLHDف[U8>oa;0 ]Djc$ʨMyqTgU#31_}}ٲ۶CWO(T}NȲ!C 7C¬Lwffo7$)EUӟ]ǧW;xkxo.^7kВ 2 c>գG%9:gmH5g0M7b$gS*veu*Z,@ #"wHNDsD: h&T`XYsf!i5u&z^ sDUwpxt-w]+y8ᷯ~hm,7WM 1Φu 3YJm{|N10y% ֡B|4դ1&4"8 2ݬVm><a$Ͻ'~jԙl69&4$Tf^2&.o.6.>86~: H׵^ש`Q+! l^-fy"  nRZ!20Mʞfc*!f%]Q$V3* kfh&d@l;B>3e `l!bqG\@v48gȹ1؏va [dfEk#"|ӟЩ)!9 Pzb= {6AVIyňh@, h @d@tĢX|BPh)ݝ(p83`3a&r;HM߭wm΁?q=[7O2?/00gd$v LJcx  ݫXbt<QK* IDATk#"t .c?=g3P2M3af4?|M~rr_ǟ|}swYJ2ѓy4tU!ALYRGfOOummKq|>zly.mBa0 J!!MONiiʌ0zG_ޭ&ۡ{8Uz)76S5dl†8!H%UJ>aC@Ģ]%4:Y$bN9#" [E80orq6&BQF~ M|փ$Lfbm6b7ۓ3I-Qlo:#tsNQ.8Cjf6͢&0Ds n7wdztxќO~pqP׳Ր}p0__zthYe<*Bۻ!b1oMM1 M]#R=|(ݶK}&D(f6 i{hеiȱz]4Ůo)zv|®/9몪I"gyH\n7wg/>v׷{j:tvخדI+IPͣI4PyJI\ߦ#0V&~6x &mш֛곋 >)T烩n[FNgf "{̤&fK=2QMTJ8UqΈJ]P2"ج 3U?`l(aΩ`JL(%y'c"U+G'Mk ޼=ݲA?7ۖ!0ӑA@EBBg ;{dMq$1rĀ@@@Ml\c+-*eV($ۍv$ɇO1ǒc|L&%oQ~fYSFRFcKqJLH~߻]%Iצ' /Qp(bB`}@`N/(8P;9Srj1/B ɡzfE&zy>?|K:Uj9=8:?<>G T$d"Yd- wk*k7̜(C%.n.ZIrnC |/~7/&3+n"9癗lݷvsN1VnYmR!K̘BRWL<.x9 L"QԬr9P0 6.s֧?z޴̦|>_m6G_}掽CQL{1 f0D&C~ŋOON|u}{{׷ߝ]?{MUеޛȕ\gVH6^y>O"exzy`&2of!¸,3vv~F"o7 &̚ٸbJ77/ cnn_Z|qdﭶo=#;6fTXozZKi\ȼ\-MYeQN $ɡ(KҾF WA4^~1ݛ"IE!Z]ӽ9Wè.%@yT@MDzY8d2uΕݬqu en X$" 3"h]PL եEH]MUg6y OooOEMQ֓ibU">f2oKDuΪ!!B1f0섭1%du}&+uАi I~ہ"(HN [k$Cv*0D&G_&2` "&:t{jT(9QD5\Xvc,c@h3^ (~ A%!=`y v@h1D " L9)Id %)kVQDȹװS]9" ";3C :?K}7@DM"@&sj6B5LDHY|.?5/߿F~jW Ht%I#DݜoW1t!g~M2ड7o(wpZ 8@7l_?BY<.bVB ;}tG],o0 )AԘG"X,fp@v 7o6ibYU1 N}:@4juZj J1QiͨW7{8=$!&z4Q@$ D`X"SY-5,ɬkۤ$J1t(p$A<0FqTOK[?<]^6qE1Ο?lVۮ}TRץ5UQe=L[4)FX=f!1Uuy~>nW+$!. fY,DS ~_tJ77go1 A Y5WixX|TGe5+xIHf:^um۶ׅ"10fwI`gjI"4۪QoDʥC\Q>LzCn()x^V1k[T>I=*:\o XG'77u];q"rJC[{LQ!튈@ǬBNY²F)J[գ6ƺ{ۦ3R&Sc,l! 3B^h dU%(TDG *[lC)ӻ"bWG#%CІ4SʛY593LӎZk MD`xD,#X±d 21cNC"෷nTM$jv@݀pGf`wYE\- L +*(r>2(;XUw@)1wy_o @hTYUe6Y1;ĎF 47T3 <<4) Qaa#v[_{EXwH:`?#&Y]"}0!K D@#08/x.#&W 4LJk++B_w5eG>wAz|θrb@Q\^햑$Y7}|_zՉv9Ey} B`W]߃#׹.%4ै&ᆫzj M-fa&Fopvy\RmQcD>7ח㪞M&׷LJ(.BRNJ4,&D12uE @ b," 1AB<RlfӉ+g/_5[QbfARbR@[ThtI&ޓGGEQn֛I5^6o~bل ٴ07HRL('u}w[tY_|o>wmoNO ï~z2_y\&QU;g?{eJl *\鞿x-{˗PY{ãx7}]ݸbtkq I~YNrVRhX\Q]i zuU(mXofb!bEbҲ˷d1$IuGO^>-뺎;k$MaTշ7K*!&DҾՕ4}M'RC\"d @Y#gכO&uo4#7z Bq.+16>pnҥf(ZTGcECH6&TXKL1aD1G]a sX&V1 ~%QL]Sq PQ6eZ|UU@@٦J$Y'7P@ 1u4,ŜϚ#vJABt$Mp9 "ZAD%! enEi_fo2Pi0~PJw!ED* 3j@y[qc$sܻCoP°OֻgHaw4{&6kCܫ}g4ˍ<oE!p8Rxբ&&*tl IeMfrtiSimLAw^tT.CĄt2S1Hf] }Uӳ7o˷go ?YVm]]O7@4Eɀ%Z3kH;$̵)Nsm71 "(0&I1)h}ؘC!2DaRň1YIR8]oؚ=@J JO0JV<% ^ 9. kEι>w#U}?H%_~dG"RWz|ŨC"pY&Է_+ctgώ1xcUzߏcg-WE猭LJZn<&=>9=}, ޼]jTc7~GrqPfU=G{9!Xl ރlKUkBL1*T gع0ģSI,&_lRnMX[f޼i x\)6[oիe'Gb6hl-b=*UzBI6cƪ|(R5z]߶ I4RlII4*lY,oja ]eUJJR !}SH {_ŔHJUG'!7ocW) b(0)!6Bp8&˖c@QM@Mg Rb;vD3bfa A-n~ca Ƹ2"Qv(՜,;. )WmhlΎZjrk@=G޾*Os 24 &w0Q>P/2D# 1&Deja}X{}^A~קv (R"Q2 )AL:@I/;D|Dn9Y`ДE""!"qEq2[;:z|_m7#& I'\\\F߶mSƉB"UE5wc|ɱiw!Z/W+ \ǰi[!ˏN^]CQ-8+44 jcFca,Y~Դ;/"&-0RnP1t}U1dCDXIi,2[k8cJQŀrǐ0'դ@!ABB#[(C ޳()h2t1ZWUSzyۃv*ho~s*Ř^]_=z_וxo_>M{3FggIRi - xj_oRLn\?o~X_.׷LJ֕(fo~۳/1Є mӴm{s<:MAüM(C ,^"6r7"Eҝ S4vekw%$3CLLLl""F, ^%9ݖNH$" .;edw3UCDCgɠD p%c`B t#O8GaAU/MP$$`7/yKR!0TPD,^?^+>} tWԑBKdډB*9u 9*%a}kFlOc=m[ @*a5/͛%ł^޴-F >nbSJJ)kw1Eѽ޺i}@'>u߼ߏOc4;{=qQ3_fX^^ ˳{HOΖ岮Gd}~v~tx( Mryu_~}xxۮkڟ?xA63֐8E]Zk8׻!c$_ wD< @.@"ʻ$/!f7~g&yo!ҏ(_rG7v>xA2x?Tx(s.+ a<)8D-|+1Q< .Evݻ9> hoH*H )0ġ|* D8&P̎=J軆c^krqsم0JWD&UݮE|vys]_+e TTu'>;B*P|TVv}uyrtt\;}jvvwlصo{Pr̳J:ޟi1?Կ{׷eMM@RkmȆ@ P 8rhԖX:tD|&L II@Q5Iꂊo>9PA"S2g~ Uu]mFz4sUq~ps{.K5Av!TUC'>{z8lgEYo]i몼\|G峢8;Çٸz=/EQcSHWW7'N?z'O1t:/ʪ7t%E9ә!^nDD2xV&" հIvT 0J}Lb+ 6Umg&f7LSXvtIQY"IAՒglyK1uOD\]f]6DlzD\]Vu,)1hoz"Ddl5`}@,2n-!k 2 ~˟>Mjf3CpH1 ]G2SH fUE71U(}yPfXs?xsk0(%E@`αytJG4l(N"(I*"*"(!HiV5Vf6,DDXTBp7h H@vEF{f!]B.bMtGP`ȡ3@U(ݜqw 0]3#jfN:M䜈[N8(U IDAT̚23̜G_}x/ }W &H v4Y3)IL 6y DȉlG Ouy1>::6)#BU=:8]Į>?8(bZ[c{}ܬ Ho'娺]uI2 ]n0 5 щc̏/߼j{y!(kެ㣛-WU^ A #k BaFd& f~b}BPRHIBJ!HRQ )dI)jg-ZXCBL+*Bڇb1UDز4  cc 0G<87Og{g)" G7#Wnm  GPף{}|p#i6;[?o^>o}gvtm.G7o჏r{XƘl=179w||TEo~]ʔ7y۶ֺzZ6۪ g$΍ޡxqMc3ӯ|ߕUa-VU^oV"f4lGe'/.g(gUQ8:X'ӷo_L(S A!5ͦgjl@;eP@b#"ڮkQ=Rcq8cL?;7 Z7b^euxx"XQ6D>DD 1fDjLbX'-XCUY#qG5t]C%bW@`G TD@l5qq1HTwo@~x7Q%1"a">?O P迿xU С*$!G00ދ 5#M *D93oח/oPJ]%%¢"f:[h`*l6ᘞ|O=IٛLFBף7gh69|!]\D>ib RO)}uVe^@0H$ٴmX!w`ε@R@|tp_ ǣ%cr4Lr4+ȘM&{-^%[ѧiZs7bH)!jJJ N2Bhmirs @IHR%H"'EvH)PÇWm/쿄~O?8?v۷Gג:Dtxp^UPa2Huӹ~vdW|/? _U~^MGlsypaUN.]GU5QDUUMfRaVlvzT$]tfwpq@g.')fiچ.}dS.j&4rKVR%F)٦jlealoEAmBvaT9k`Ns<"lɹk1iZ؛Ն6S>Q1H2EBb0`ǣ!,`TUQ0I̦ˋXXW%(5ڢn1bDQFCGJdcZ}2lRa= 1N{Ea˺jnwF4v+9Earst a#QUSL|n+Kx"WFP4IB\N*)hX4Qg)01g&۱HE9!rH} 58 wʆ;&:ly^\apF`Յ;.(1e"\ 0s7^ps.2qי%QlӁ B>h>??=;_-?|֠  i@LC3$FzCD vٺ}2 vvH R6aۋW؈XĒ #0v9͚Uv}ࣳl//LBL]Uvr9: Y45-H Ylkx<Ѯ UY[jAm&KI+ M€1EbA$ Gf%9FB(ҫx! `H1DŘ(( XK"!IyhXvm7ۿ67o_/WK|AeK@LY8<:19j_| fWggzi6x2ۛb^:ׇH\DEQEL7͛k>~|(>n].̓^z]ޜRfӓSzcz%v{b>mWW!fdGضmP lĒKB B:k{ARHRk(bЦ#lZmY:W}|D8C1(Ȇ K96}c,U@Q!R{h{!JYe]גJ)1awQ5 lG{'}ڬnV۶zP|6cQDˬ FB dD$x\fD˪}DS5![Oח DH2||Fw 3$TS0*d# NBy$H@UA܅r7q1HJbEhs9,Β!$& x]7Bm3 ۦ .qp0D<+y{ZU47 "hvc&`3(~ AH0Nɧ?W*thnЉL2Ի}X{k?绨i?{-  #IIs#;ǐec]Q݆ 0/fP`PA6=Z-bmaG?/ɚ //.'ӛ@q4M=xŕ&}prrs{etm w4n2[W-,!JMP7yƉJ:l7B.9kj%"<mSU# 1 s9EUIJDr8 5pA2HE}!"Iڧ$uIU-Aۃva ]pmɟ]gm')*tu2Y\E)2ZcmQ*awPO&UgWWx2,Gl6e(%&fO~MLbͷF'O>}cwz2Ҏ'z~Tx$"{gͫOϯy6WEY߯&x1&u!tEI[p$[BbL7}᱒5Y6UYľ;Cv}Iix? M3۫"DњQRJȶ.Rpa f$1&&bgJ֨FAȹh< .\HE-eU_8׵5l-!~ɗ/zYUYeM*+ʢw"}2L:dB " ML f;6UQV>eDEzͮ/N!8 $ɠCD DlDQOAnGCyBYHA12P ,ID4gƐlg-7h`<M8`ìv97cRHdR=pGMN8 Ƌ)?T@s =F)nX'=RqP;>wX'2|v=|oɧ?_MfHޮ;=9]5 g!k$ >[̫ p'Ï;7uZ2/ S1`RdTw*#zU7}J2evFMă9Ma)AiL&HS.L )Je"B"Q ^+SrJn 3'T JhO>\믏l쬓*xVYfS^=G~?={?_\l7u3u>AI⯾u7$Y7o/^<vkVwrzyuyz"]]/7oW׏?IM6{l^?lǟ}9Rk1ƛٳg?l6k]}J 1B{ol0Zjo浂TԒ[|0|]W1x2l6eU nb{z|d٤ОzӚ) )cj*rtQeFu1GDY7Y|"vT;l۽iѷ@( c -KUQW&{/RMbAb 3C-L޴ {"VPklYVEc*ƘmuJ RҺ[;[ gX$ " 9 5!$ED$ Ӑ; oqnR<ͺma18@:&"P$V#e!ab_"Bb@.*:@a7 wO$ Ska"FAӎU~.;B=[vy)*;Ι (@"Y$?f NO) fy$%*$̢* <*Q;>wX=ǯ5`0EL) ^ZMMRxWI% g0X; * I"Ve̔do׏cQeQM#ҺN=e&߃LJr?9x;w3HVb"Pk-q9/_|ÕC"AKz7@l 7F+'y!jpfZcc=ecdXEXs"%H 6eP_yA0(*FT(¦.!HƠ1CY T0D~h4$EYvor Z˷g׷ J4O?8'>N'|1MgӪ8f ҤNJݲMlrOVpuuŋ|=;?K)]]^_ً̠0/B)aۦ-GYof\WEIDo޼lo.fzTfg I)DQ(ut pO;O4 &g],lz\oZWVxzy{)RCsf wzޮ#7O%F dwD}߁-ʦmΦRJ~\W*U;LTC}qE\mG Ah6&qd"DBQH0v2aAAE`<*oXRkAaC@c  2JJl:>%q={ ;*2 ]5ۑnpIZPu @|ͮ rC7;2ww#3UU@db@U$20˭8NwTr6\f[Ts['-;ݞTndv7{& q$SP.}X}#bHDBR6fBE Bvu{ L!A|&םC]0Qc;} 0(ӏ?d1?ypo^IHWO IF_mnˏ?_A;]^]G1@Hb/uħ(OO:?[7 QC\ܻz?X["D t̆(*kLRĹE]O/oD tH`d4KmTb]Z,QHڪ1u Bxj*[qQSP@ɋbI"E(EeB1( 9"AАߜ]O?}}˗e'S~5^`VClȨ._f>WӶfw M$a͚J3bHPU]l e2 iқ46cz̐Mr -5rF%Ddp+CȈHoK] ]돏1}-&ݻwysFD?r>7UrZ|Pv]䣏b^6:(bj2iͶCLTC JƖ EX_~i|,9DMǏT#`FNC q+HR)uOB;hz.A lTDQIU@Du}[I8l]E%teҗɃLZnMUZl]{vΣO޼| SJvN&tC>ZgHF"SV%TcLڲG4f dR4H h5}UEEұ-0(( N׆ B)*@@")HڡfhRȭz-EBȔKK5*2[Dd 9"܀9Fw$?w1)Dn{GѝTPUtƥbE=J 0Ʌ}pR`B47FH3/.*V2 ^G.=G5RTU"#UI`TXDUcOӾx Dݷl)8@&t Î83՛Ƿ) :t'@o$I ) 7zѓ'_xiP O>|z#(߶z;v֯V]V_G_\e8LW#Ou qY^eQ -jSlV )0.ڶQD4ֈHLQA cLጂlc;պ(C?hRbL $IbBR`Fh DVEb3~$baKFf$@%B()lC9W@].?zxb ћ7d4Gw{7WΗãtwCE槏DI!(ZVYU7~]4pc^ץiSo./P9w}}  1^]^8;;}puU߿bOܛ׳;u\)17^w{yS7+las ![WN˲/޶X:z^_- 13Bfش]¤ෛ%3_̆M:6m6$8]70)hlU5T`pFUvcQ)(,JU輶*WvXU3 ¡JbI*mc! IPR A "c9PmTa2avm!%}o4)UeVs`RPEl;c@Y!!!2j2Sr%UMhj$hoF1.OGR"Φ(dF&$b9D }EYjn&Tk02gcÅ̅j wv&pIͰ)iiQwo2t3"$kN(nj$C08༽6L glFWG~ݱۗ`Z| IDAT579c@DD_0|xƿA&I+sA$ Y6gmf8XI^Kn42dtP FX #pNO>[Vdyyb1=jp`{qq$ yL 1}m>}S/_]l+"`En nFd]@.$uHʀb*L*1WiL&Ȍ-BTX @L*$k&]!`/c(&d4̆kr*1 vWEcxKI"e* N5Cv\Veo Sur>9>9;{]JBւdf Ǎ5Iea>,^/o_o{|fsxۛt#{/{o۲>鯯.?|i~ӟUU- /o֗dC;0ړs/D޻ز@2جbz8A5L }J(J眳E V5ai zX ⃲v cS} we]\[!j]ߪtƘISsyf^UU SD>%g +(nZ*[ !;xOdJD CU")X%_.ާcH)R$EQ(3O6Ĉ` K$v**|_WĄAR ,ʮ,"b&ySwø(l?LTUw$we 5~nS1t7ݨrL "rd,'A%BrՔ"!&!b!¡1􏁿F! #qJa݉b/ENr ȨB޷0W3?1p۠z;zmr[vI1+ "D8oJ RD6@)iN~}4ULXʖϙz] d&|4CP 1IE4bHIwGiʹl?ݾ)^1U91yǷ' @*ָ?g??m'||Y0no~ߑzUx9?ū S>Yli8Js!f`² `kv BfT8+1$k " !#1`L)0La* )F452wDB!R4** c cf@hASW$*B@1%T%Tdb$N>$(̄IBfo2Cb51ݤt7b~ԍ>HݳLh`1vYOfӿwM4^?88Xdg̪bVZ58UY&7Wחν1ʳ/&'u===;+*c}hVQ94o{{Wo^zvus;\N&Eٶ[W|Z"JuL<_,/.‚g77(gYYLDĔRH)Vu#DTVg*']w锰߬/֥-SUDаak$ 2!1>ʤ$?0eb2XW!qU ,uے*^_ sJƨM1 BzS!JeYͦ7o4|#& Ffc,]Q)%$X8[ZStEI\Q,;#wJ ɔESl&7L}F-5@6ey"J*ѫ]{0y7*Sr"e=K$6C$\$Peޛ9,s;z݂]k7Fjfw/T јU (:Y Xע a QLVqGHmтCjQ )SO{~a׿'91]-]N?yG7g/5,"Y Jd Q'ɶkAB?dpn8\M)'H2@` `CH@>f]۔>~զVW͓GO*v|cf3`#U!@R1mdwyׯA@kAt4#a@_>"Rho?Z. `Ƥ")Ft8s )"5&X:C.*}z=\'f^L@N,I9{4 1(2 *`B4a4@PUM*IRJ)(;S!5 =8:8XݽmÃ.Jpg~ӏɃ#ެV$V^B뇗g|EMEهN~u<&A,W~pr \߼K1We}Y5ٳgv WE°ٮ/n۾ ,|6wv}jrxt|sc3֖U @{9#x]h"9gi{w0ィ ? !;爙$BӍ"33]\n&H}Q@0O>TH 1XT%EdycSJieYjqE\M J>v1 (FMo./ٰ~hٲtR!LSbQ٦dq)U1^\/'â@%^ew)!ĈDHbeY@J1I'0ft} v;41|> #M{7ˋlS̏ro26ˌa <QsY.+h(yEL9ۧ0d㶙|:<:* )8g/ٛWۮ; 2yP;ϟm۶kX35USr>YTH1Q3͛ӛݡ~ juttwM& t6{ۡ_s?li'Ӻ˾Njcs}*ٲ(KMQD|mW/u1v1c6*zl-+Qv H4_:MSV ɰ IUsqq.tjQ)(S]UZ6e]LI>"ZWV1рjAڶ.I@"Ii6$j(j(1,6MeY9k}+Yl׋y!zvw痯uMiCJч_ޫjdRSƘ$jհ_,8۵}a10~|Pu=$(Vb[% o'/ѫ0 ;b"ms#cNw 3*i$REDv'OlWY(af2[g2ͭB oOUroNxĪ̽~DG8+­xӌ;Di_߬l]76dD1*=ƁnLߜT g"6lהO!ʱXD[6%csJĶP̨ofvC ^`D0n _/.4X?ٟNY-!Ij6 ֔ 4)DmCCãWIb2[8cs޲ǿ@_PVH"@P$)wf0+!BQL@ $g]\Ұ m>@L@QLL0 rQQG?@ ≰b,H(!OU %A( ))*'NoNbIԖxq|X]^7B\ѝrśtO~\VGvU'Ij0:khz?Ϻ?|˽b:7eQ$X,g__->z4N={ֶѣG09>Αl| GaYf*zq%3ŋf|CB4-O1{z:888<<:@<}u,F5NHƖ$.u5)b;UkWmr&t]z$C)bSM}~ gUq=35McLa(ŤeY!c2uedShJIنZg7$b۞'ueEEcYS@?FŅ(DbOJRfCm"CDuݴj>|Vokc(3*Q;}Ϯ^8h!Y%탌d/!e߀A0h~0+Y5$@4I&'A@328halPK`h}(3rF\љ@6t̑gd,(Lwܧ9Y4ٔˉA) N7GOg4F[Oƭ0Ԍ%V:9&@Fw9A0^U1#@s#aÒo!oZ?|CHĢ()ul XDb#RQW<0xus`6)cpn[LR3`Ө?/WWqDQDC7z&u=6OW%0ibem&@qϣa;nP(R}@BLqLeA$j@J>E)گѨ$Cc`$hXaeCĈdITvuD5loUGf\;eCk*-3@!w],OoZr^&|ofjfӳWei $B2+~ژᝣryusi7e=A6~o~7rL=-\:;۴ۏ|LHu8kT{? ~4dzxx`vǟ\l|77WW{Y~6‰}Y1|OMQsYVv}Y](Gǡ۪:lվ/Psa"MJL[lԽ:6K"0t77$T6Я,1d LuuZcJٴʚp#KCd5F$4$!FP,,e_*`<_}Bw}}|hۈ(I1, C k$&I6ȦP$;dq ,%gr"0@e*f<:F@8e&D \0;^QȭppGRF_H(:JlFq 3.,"b<#TTO Će"b2ӁxnۋLSpj!}CgȬ@T .^$A޽oUy|69E@|PesIHc8 ދ/\5)CR0^,?䟳HMekg  ShBnqT`L@"4zAnEm&3tg|_%hc懗77XN&vD ~?M}Ӧ1&fl$"!U:;~Kk0̈lLJY!Pmv5@Bb"bj:oƈuU4ĨJD hIQTp$$)@˪kf,;8sH?_\\ZcD"L`R@&Kqm^o^m,>=}ZۆdӟISmp&o_vV/p)n\\wtZt2Q'fX.Ϝe[G- X+uΊCjz !VUs)":1rݪbۮ;$u%1CkG gMV%rtZ0$I"Re*ð#8[? j"1qQNj'k{>D˖~6u7_ܛMH@EHnk*,I"^@!z(KtLy+DPAB" q|YmF^YT5IJI42t ,w]OFLA9x*s "ǹ廽jXDKP"/š*pNS_-};hSƦ5NnJJ " \.ʸJ'oݠ#Q>|̈́#~_GeV|FpKRχP#ի}t!$<T2FE1 [Su D !)fc[r!!0Cw*3mE6\.Itnl !!O1oㅙk;`k޺@Gd|kc5<|6M0SQ LdM#)KgxL=qpQ:cH$$FXrJl+,@Ss2A[ (r}CQWw,lF;[b]=&ﬞO_5)I AIJ0x IDATBHjWߨS9OWyl]F( e1ځaRU>7]Ӈ~M0?+kQBc f6@B׎1-;wn( Wio!3 q3rzF($5J $jGL 6yc/ZBg|'eaMy$ >xڡOAUYbRQO'S@TUB1&uiO=8˕1~h 1 :laBd#"5d<<у~/_oo:H5۹-X{UY?|W>s߾9?51 @]*zc)ҫW#6w|SUt2n JLm], 1l zW5''?8;;͚7_~N_]_7GG{juj}{xp Gݛ6I05\te]ϜEQcTb^/Oͦv0|Po16Gk\-l2DX{$,c|Y@}<\H `BYVM]wmr2g/1@!I]9kh&@*ݓ/'ԮU 0 \U@N=>%ĺ2uqQ7MrCl!2aU*]^ogrT8]]gGLnVYwŷr9xg#bgQ]& TQ`̒㝉uo-d&%QBd1leNl+;?Ћ$Drg֗NvBCvH3ٵeo݀NU6V燻ĭ5I7FgT&vlH9dUT(X$] ;7[.k ޱ# 3?tm~# d1TLL}C߯? M;ƑގDЬUHإ+/_(2Κ`r bBEcb ;r/QTH2rƄq5,n s aGw>{ѝ->{ѽw&"NN}^ C?")q3Dе#gہC=_booZAY5a Xj΋:;ؔ$9Te`(qdiQ͚v&WU "20*% DUT(1jJ !UD$IIYT EB*iY%֤ )!BilۯpPHӢzss4a1pلnwxgggfW7W77U]QfLQeYRJ)7Hm|o,d۵ouI)N'}^׋DrWgN>|a" 1>88fG9nin拽l# G"KRbæ&oʢ)U4d'ɼoo,]fvUSNrv^u<ڬC16gi׷A:)[T5 f4~9b~T:\IR!xgf!zc%&J}H1dB!Ħ. H3߿x{,˲1uC1jU<-\\_ !(1zUL&Q%G7KD( \9__-׫|oQWmDrfܒӊ5 p[Acd,0B[ga !X PTr,<uO_.!eDK f1dX(D; \NhY\cP=$Qқ%՚iR5uJH~ ̤N)]"YH$rĪcIhxc!n.*W2y 9|7C#6L:w23Z/ Oz~o? } MZWA2449:88TPoatTȘe *ߊJP|ԑ#A<#Jm%"f HR6`>C1 Ւk'z4چ6Dh hHJDD{9UD%ZL]BYY׮_=>8Wth@a[zfnW ]?g}͍acm_}) cbIQT zs9O.cJGι/_ucC$rnU51f&& EHȮ&2u3a 6F۸rRra^N`ٸ$$LaoL5D Iě׃6}ad6ە hmT K$ 9[!uUY+|hc H$1h5ƜnT5{t%jf}?C Ɉ"1ˢ!b%)NJ6Ӊ*e]mb]w!2ׯ^^/zu}Msctk ;팷4[A4I8?8Ku$P ![L2Y+"-$kc(r* YDc_! 1  AF]Y,Ĩ!lEV&6<$FݙsIQUq6[0Iv`q052:9_8QFeƀ|fFAQGF 06) O\_%o WeBGTX&B@Iu=1"@J%&i>IXזQ"1X3YY$>̊ÿx?~%74D:v !r'#kr۶*% GmVπ|@"<:>89{2/N>^- S_]rro[EbQUw', c̢,g1*O޴I-"rj REHfzZ=3}l˴ٰ[Hq+ւžX/U-Q-( n0XBTg{8F(Z.KI^o)i+WyF#hULdm]*Ɣ٬mcߣP3Ll%Ȩq'zYT];w1iۖѐm0Ɏ@c1*O};Єwސ(K~cʾ/x1*8ƾH43Iu8~߶Ք5Iurz?ČNOWCe[783TB}is@쩐dHs0a~HT$wTXIb$* K26Saf#BT3w uˈ tN#DŽ9KveES0!P$r^WuPUӜHDfs\Q@BbvQS`罗8pAEX aX`,cڅ2C54 l-*JAG*]MX1![g%4c.I}DS0(*I$wMՕ-L|E#G!l !,r;MQD$CsKX`e@sx^]?SUf>\9uEDλi81v}0dH")w"1Rb_n/?'Ƙ2RR3vS{"3iyD$Mv7/ɵM| \ 穩ر@Y;*GMV:4 TTsșBe]58)wmM+%fq~/>OQcZoOY5 D̀,um a#Q-Kbv{0ƜBz%_w'-!p^VjE) `&J30̑~f`83&lD@`9s[VK(;'X#U"z1Jq2'>ҽ CIc|[mCb6o֯"Uu<쮛[tIok5???8>9]UWbowݰ|syޢmA/>}EţWWW>Իh9믾>ͮz{}c=xvm*,%"z`j0c&Dprtkյq߄P3y5ԜFscUP9#sLuݮ1eU\pLnT2Q4b&DSJMӈ dQLYKYeE^@jeǼ\J5`fJ٬a\TcZs`] 2@5P2fR-;^!sY l yfCq@džh\ݜߚR{&&FPD jejͷ;D j{3&*=|gy6dBZ-""wDB[U)0@,[|w.3 ϽijPpb2`P J3X₩h#F 4]jJ0wTC;uHa?1#hLCRxzz>MbN*uv 7_ono^ޜnfj5g_,GDtٶMsd{{Z,?g_^.nǏkBu=ifX,Drs>K/^8>>U_U8CSUSb"Ô 5Et7ث#!Dyur>Tj꺍SŘFƘg17az;YTǘǤ]&D2vߏ+cvxbZ(缨kGd٫g_LMmSDUӓz}l`fvm[vnJ{D}Ӵ]OCLc9'aܖtA!|ɧ/e02b 9~Y NQ#5Kq\%6+TgZLE%f%&`mtK1=HlK;GLSQ44J rX BgFsrZfCq(Ԍx&{Ƣ8G: 2` %FKtҡrx~fNCU(Fi,isR* "arsLD)gzޯ/f8`E}+H) yr ~O"a0v9M4tM)Jt~4գv>(ۦe$`@~\0a&DDU3E0ӼhqjP7v\H`&e9[-J]qE=KGѦAr622%fSΩ0o;J8w1TaiB$r3 %@ED+(LT OBTfɑ&MJ1n.߮@Vlȹ*Z@etDJXhΎw G,UNy"ŏ|8 4Iғ>7i=XRS1Hߵ Q$E/v[ţŢG4hpٽ_(Wi?MPUm-q&ڏC|u}n7wn 8˗m.7|⡈xrut|vr\rFLyd&"na H u{楦1a:9ji>0\hכ~?IpƆ-WϒTkw-' JNޱ 4U]e眦ڮSϒ1Q B4fpڎxOU͢~rSo5 snIuv j<o87~ Yᨪ>E~|ۧ/PP/>{Ye_E&,T}W_~ }?,i,KS7`pttܴNONGb*vX.OOO ͫ9qμxcf5<#p&sUWAwU\sfnq}~٢j]dӔVeJv8۷C]-uLclރCį]!Aeх옛F"U P%Q~ZL9YGɽT T CW;~"YpJҵ-,vMU1R,&iۖhFA$gj`F̮mðUM׾2r13S+TF0^ P 0;sTFEXfX4gD(jDTB!XLfsI4h3F;UhpH|ep\ $.pz$d.,!|)9E7Og$`ޥTdfb&3SbR5^@p+|JalǤYpeSU2C}-hnEW`y MDH΢ |fq1$۾GDctā%"fV9Z.onݎ"L<3!(Y 9<+ ΗH^җĈ K4CȪq7aX dM9Ke3`&&"bLgOJ}Ri@EמǾ00B,^\->y| tQt]{mUvfOmwbp{{{zr1MPO_|~~ϼw?omrʇIR(p|t:S|r>7oV|cċ{(L.߼dm[qSW4Ap~&<E2qu*)"-EJTITdjyZ2Nw'nO}=/a/~b"}>(읯TgiiLeQOm朽im/SZoբF5ehJ.ҩi;cڦiS۴\LF>S|p@rTԇP7#.mBVО?z^_R4(l̊8"ή1+iHTI$՗ p'd;L5p5#87U-h0ЛEl%`Z6*Ӣ#&jbFeXue&Z:HJ ^9[DF8 Js@fF9,TJ?q掋Ny YlvLMlc"$̒g(w]Jvﻳw^.vmrٶ}?VB֗FFfGuӾ)c65(1N}J>y7N~ߓҲ[՛?<:Z}WӯR'ꈉڶ]t]hPoYV1:q{by ǧgUU6U3U0U(x ]dyy3IS7',}Ju{̇e֊9YRS%x~46 ;"xzlTw\5@4!4It`B@f{>>ZiJ%&$ Ç=buJ7}IS`wC *d8ba$,Zaeז,na)fIfD&Gð^O~S#(8P"9R0 'X1,oE?X P E9Fm#̳ms1M’ZgDs0!yόd<$q\<%5&MMb!-NX]w/;7@6Ԋ0׊"{vΚ #~wN[:%U/bI@,9ߝ?JYp.ǁ'fTr p0̞fB3㟾ןxMf}g} _w~M#Yy)Oq43}D(ZpCpꐱ\2м1"8 9T7PCn;LG~~+Uh6#5= yBYs^@sgf5"P]I^B]i҃u19ƒX0"m{[;;mb9[V3 ŔT,n!7vB:Qc.P) #7Hfg2nز8:Nɹz]U#ԏ}j᛿_ 'O{rg_?|+Xt5}&T$29@P*GmXtb|~^::z}}ɲ[IWקˣo~)Bݓ'?x0cTꇟ/~7/~ͳgMݨs,UU]]qB8ѣGYn~ ;΍X1:m^rI;67W۶5t]}}rrrqU9a~Nq=bR1~u,Njr"bth4M"&|,Jښs&#Ff4ݻblY? l7 DUf60*RXP{q@AD$,QQqV@|=`u!R9+qvӼbͩ \>\yg@HX;aŃ\_~+af1UseD9LK)+`iL"T-8M/Qeoy60CP ?;5K>!8fƎ.椪 Ҷ0$۫|򽷻}fq~ `5;@08O+@P^xg胗7ׄHMU h`K ?):x}^l&vQErd%E2i%7ĜŜPGHef "$p\!%BM!#QiBJ"Sd+cLTU˓S5ܼU~o͘37ur?|!?7"lgO'D"*ifA <س"~S#Bt1UD0UyR DVxl~dQM{x==C@*i8e9[:憒/b,60c^'~'Kxޯm]_?ˀgꈲd v̤"9gUI&ʥfS-@Cu4@X\dsPeCsxa9`TI5'79ų]-Nכ5Xƪox2+UDN0GokL 2yD4 0T*LLL]jѥՎlQ7?8ܮ1s4J.(K5g3VpJN dB‚T <{c*J)&&!Ȩ T;`M fjY .UdHI;>MqNcsR=$ރ=:=d?LWnN~G.7fI5).ju``޼~syy4۰mLJ]_=S˿F__~Ӻl.OjO?~{ss.o3zv8?|rr&t胇<> AT~tiHRJmL8Nja{3!$UnUCb۝jF4bcJMݤi>n 9<n7ibq<`utz{su~~Yc_a3a,a+o#PWT0 Z`dƘL=×/:bnUy.w RJiJ|GIv[,a,cNbI@2DC_93%e[ f2`yKS;kFF 6#d/"D$*mFTwr:3#,͘ZfMQ-xLJ, y` E?D,sn!}S DÔdy3@E: "!25\jw![?3 xjro5 H%MiJ9 X1CbyI4;@2A&0@8p :0 -Z竮kU@"2grl& e~ǜA )s]4DQ.qRP52|t~^eDBLw3`c͹.8GMכӳ~&7=،֫fSUX)""*Js43v#"% "%6k86D %ԓEsTӌQ)a)fD"e@f"b+Y DcA)n't~avH&smU_iy]T`iǭ#5O͛vr'7/66?_77Ϧ.7kn: !]_Ps͛0I2Pmj?n>mS)M9SԾ5ޞ_ YҲM&0`D(du=32gOi U{Dd'@)޵mE]A0aLY ┙Yr)-˾;mS60H)qH[tݦm)fKE;g twzcjv`-*# A5A {/Bc60D'Y3%D3*2A)ٜQHIQ29l{LHaLF{TPRq ±w&L2ͣ2 T;j>2P("LyR*,;2*@q[@VFs/(qAp'ח?s>ux3{/J_ 7Cz?޹}?FbR* $*'DF!ĐRyb36EoIafI1|.3ރdXAJQj"d1Vh iUX'Hst199k* \=w3u/ͭ*@\# =Ǔ,a IDATGM50{BRbBFP0-UVU G: !!BS tHRޥ/׽;7N!\ƎɪZ^dY (σD\oUSPf8kGj¤Q%(N2{X\ybD5ϥ/_nirf]}> ߻ з)U5qч/9+A 3+Ό{g1Z)cjJkˋv^͡-f+9t7{v3t?ggao9*Ǒ h8wC,a>; aw={ǒ Փ?xo<Փori*d.ݶ߉|1nͶMԫ fLEE6g~OO~ǪS5Yg`UTEi=;Nz$Bb)ɾ;?jIrc.PBb~=zİ^ogKch|8J@:ɼmTf5cmSŬ*c93t|/~'ͬv|H9O1)y8,fR) *XסmUTe ދd|4pDإ8(8ĺsm~L`0 uʷP'"©σ J-~!(SCqA2jaL=hTprޔWY$U;L8u|䕱 ] MǢ._XUgE0geɚ"JJ c*xܤU{M#2]? qLH!LfwJV{NxI9 `Ġp iUq}\a?oU-pZLqQlg,Nmm6Ґ[N6B`v@<AR4 ! `2iH9<RPi!z33b2I)MW&4ލOJ t?"| f&``*noaPhɕBUrR'߲'gRϞz TQ#;#=W `Q#84.L!PcY$PWP̊ 51sX2A<:#B+L}4!#%!Py=swؿ~֜S(,x^zuu?ƺn>xQO*d!am\.BUiX9v;t믿|v_yhNaӜ,̗iJɓ0¬;@~fz?`Tb  w&4Ӫw/9|xWy[wY߭ooC׍EUmRGb#SSQ)n$0ƘDŬn!FUMI(/:)*C]>8+~?0+j; :C #Z4(0<|L*,:FItJIIJ&51Dj;fDH%$\^XnH0e㙪a2NSLХMT^$,*!dDTⵏiuEC=]uCO.x#_[*_.{DG?WNGC7Y-hITU)* "nWC?@_F=Oݸ 0 {Gorq{bajV L $8%t;O,/M \͗]̇~'v aƺ_Ż/),J6 #`ǐ ~\"&fF<99"*82[f]Uagbd4M1YW9:@U%"Ҥ)eD00C IJ)#TD˟m5C7rwsZM)g~Eͳg^09T?xu5*B;kR,9Tpޭo*<{ىϿ1KBU}WΉyh3qsivp6_]6\,Բ'{7ݡ移r^!r4Ij#bTMS#0N 'ࠪB97Q@XUu4k%Al\,l1n1spDJvSՈ )`ߍgmŪ#2:绮Sf9{S*QDD"l"bC1zF͚:| - @4cpݦQ8-J(TLATl$2 -)Sɺf%T J6!"2&G;DGFe"᛭&dOnHpDTPK6 ?".4"P)5`@FTD(izHlVj񊹢KS!mRe N^+"3@=re›fޣ XE TLO?"ןxkѾe ?z?uoߞ_g4DjE; bb>T)šл` l i1KE;pݍ 8pn@=gڬu%(9'y7vDpQyU1!cwYç}J]^z 3+I4^f8_/>T-f3 0on*H{a`VS G`ȀLTWc&$~~vn%QUs3qEQoأ"b"@bƩ<- dԌ* @s ]q!:F\LFF>%` LޑT{;cm`?y ͗.'?~줩޽{;ovX-ڶHH)%&'ݾ6_lwjARq6_ 1N4h|U5 èCMc&p{)6CжA;m|_tϗ81b^q`v"nL'v)jD$ @Ԭ/R5qj~wk")1}8FB`@De{1MA6*3B {+@HfX*>\LS1@l1ɋ1Elb K jة)Z5MAp)"s%#ATlmf`my6d06O) )YĬ¥&\Ia&J?qֿ@~ E4F JgD40l%O)L9p Ԝ 2#SѪM_1y{&'L48Oh"INj >Ju7xnoǷg{賺8(81N57q53YAUD3TJk 桞ːwҟ> ݪ}8ѢjU;'pA Asy0 dI&cIcX|*-:P U%(CtjL ):hBD xC:_ `7*r]=^|6tzN T-n6#P}‹oݣ˷o_u?Hhf"_+MTM9gH~$iݘbaaxtp~^v/}K/.֏?Z{s~v6}n}{Ǫh Bxd u%̔$=}DM^{]μwY{{ssqq}U@t8@s6Pw_Í!1[0thPlh|rzEfWWW1'e$G̐;3tawC\j5u =c!a}r~wyqJ,1ju;&Kql됏R5&7 ~1w9EϡӓSf71`!cM%)2 }vUrۦԵe˃@Fųˇ j T= dczI )lS8nH&ph2cA g0 [M?-G؏P\UbU1+b*N\8r@XI fI.mqa>^9b zs+wLND _x=JIq%+!xz)07Mb8 Eg4# TK zLke?4o:z^nL`Z!B9Pb$HBL0Bsq;`4;PUSu[@?$ RRW9/ L8!*9U9A6h*c|ws>=9=/޽>~rw,(?]o6GU@"@P&545 `h,m w>#4 סb9Cj$[jcWu>WϗO?p!jVNFfHTE(Br65DXA+@T@6ISŔL!J=q8&{S"DGsس Usngp fFzpZ^__Wu <}Uys{rN'^Hj`vOU]M[Urd _vޕڛSg*P@_f'9xwj<ah컡U[4lQqn;U1Y;# mӶM j0bgn;ѬvwQwzrPn sF\ND$6WUcnFUcj(htΡ*XCJ?:D\,qىjڬp&"ڄ\B)&Y x'xdNe)1H'/ݵ̛ű1#*F{}ؕgDDpHKβ9?!@WKmp()\Dv"M}tߌleRUf>X`vo:AIjFpyq&r݁wn߂*\=dHRS>c1Sf`\>yeQ@Q4$s˶ fRUU#xYLct'ыwoS70kJjVWW˺Aoފ`FBhEB 9*gl՛()BJwb!&RT 8& fL#B{WWu:bW1=j9E"˦l;=_z/n]7ggp`bG F˺ɒEF]Wz6 j{$ dC48⬖ˊ799X>#lCw;/ڦ}n?wN旡 8|珟]=|\?{8ѣGNNv]Uk$pw_5}ٛ_۳Ӌ*x37ig&C1+zn<ݼw;bMM4CכJ듓h\8Vl:DBpWn!'DPUt^,ض<uؽ)&Ur.4^R,ZW)5CŠiB,;3%nj^AVFvlw ]s"3 Lꪚ[23 ռ뇜EK ()-*D9Do'M>6^Z1*L\Z = Rv>E3b t94rȆh\!-M*LpL)[Ttz|!8N˝L}!;ǐb*VNox@e<%`h>AO4ny\TUDT3EjlC&w)tʣ*o.*#*G L$* Jg}\oqx_? [F¿{UU犐 A ֛\\Z$ũHb*&A5pG r d.  JGHD0;3V@m, \=jp/<"5Tc_7p\w߽}㈅/b'7yC`*r?S[[t9BzLQlG ë) 옒F\w53#:fOx!y\_߭/7w9j?$f{?t)eUDF PO5PHG&=kCX19G@rxjFOȪw옼7$Ch<.T`&Y0/fV@smRΣj=tQtlY2#>_~{֥yX8g˟O]*|u:t;FU3kWcLUM>퇻ncFP_^>جoris)@HH917fz+PPLKv;ӯ2 PdZm#_Ƹc*n}!L \UMH \[NthjT0qfeo'\Ȏwb`S*hHG[ @=#L伯)SX9n|}4tڴ*y7tIL#)#r=!exV9$9!3ƨ 4}P0 s1!aK8C?)&I9eA!g9uNQm7tVQǦnm2qZv:;8fEЄwF؈4;ͻ$ju՜ƃ(\=sLkjuow˶/f6#Ϟ={U6>|X?'u5k꺪jQ`ogMb)媪7ꔵ9N''_b\97!skC`Bԍgyv 3|v"((3Q,YorءaSQNKqI׵ϗޓQ48x]?䬎KQRfPW^Ur6U"6+ǜe. rH98wLUifr٬. ƱY*"u"yMLm$vvsaow{DuXhF08&ilu m2#1MھcqBrz>̮8|T@:r9QQ mrXU8'!kfj.gL8SORrA$R `DVJ펒=/E5Xj HfYY3E-q׿J~r|T&䟘)L)k7ߎA9 x`.PA; i ! !0Ęq"Yt Rv|~׿̓*~oJL?_&H)`c&b#$4{ 3MD0BͼqU˯[J-QwPUcJQ |B2cvy0'j3Fc4&`T9G'9ELLDCpCu&X[뢲eCU@G b@3)keIYRYMdSA;pKYSc8x}LMRv7/߽9zG jj@M՜/cfqsn5ۼi\}? W5ѲJZ=_>>ASRNcmLo۷/NO7&vzzRfsrv"*1 WW]\<~1cxs{+@a{9e\,W)khCU)%Uv 9,OWU]b>\fT]UjCe^9Xng. oނ!͢l=Ɯԣ݇-=]\th1iUW($xHqK'vqaX!alMݦ^p6M]ݭ e9E0>!2:DZ7SvLȦS10Ak<1n& )@XID& 6vdã=B)VtJ 4,nr5-#h [6afՔHHHH`&h QLE(7% >)# z 64*ѩp̆ԁ[J މQ(\&tz#@9'HScDg0 I2 fipL(0u))i(">?w;9T"'$DP,@nɫb:U}L.S104+ H(܄隠`6}m1B21 WCwgWnf1~W? ?Gtuz"[8!f9%9 #21YI"cJHrf*Gq!Xv}aX4w\xϟy&g%3T90*ȤF452pLιcf#V*vhc(,5[T.*@[j -[NC@V)mQU9Tb ڭwþi*e]5;@4Z]i<чY?ڦ]љz#p<.ur0@o-|a"u=޳TwM{h^VvXmguӜ_^<_}(~wCB3GtC꺮z$fMIh[܄RJtv~1bRJwwwfV껚n3&HJh9ɩvw|u*u~߽y:s -sSd-;ݟ7{>ĵW??m0-Wێ(;4L;DYaP@f1Tu BڦYҾjꊼsC78bU5t@E]sdQ7ppƘ!"9Ϡ#BUsH*LIX5 !H&`w]-Lؔg%}[X c1ٔWNtv A.%YVI^7zut`e[>z>[ ?rO_kt,䈳dSc"Y9B9C9تtf8KJ!kp܃d0= AJ~>ݡS HγhYr/t9?O|j}?fLP'2/ uE\ww@'[J"\"UkO^U(97ib$^oJLLK]V95c3at*_řw.o1xM2. Y8@̪`ƈFO L")GfyRQ%F3fR1I,e遈;7Uu39CC@ɳ~蓄P;GWfkBW!i@p6_1Vgo~9ю X<|,4(O}RPC\n_.+c`,_Q^È./.9_0VU]u.|{~'!4}?2SUUϟ?b"v~fm{}}frs*!cLQ-'Dia[CIۍ@.4I9y{!t9ѱ]`׋W^tW~z9?N߮ :[o:"R<9;;qU=̜, D`}?BQy:UfROH}WG>;=}]7ծ7UED U{wwB@-BJ>PJ;QU=3:}YNNOCdf"0 qJ#s`FL1֟|׿gÀD"jM蛆ق+jB26 QeF$5DDp?${48=)BD:.jmݤu3CDEd"SA 4!8S+齺DLr)U=&kqIsS~o[ ?J`zߕF{L ģ&DPe@ЈT& P_qAw7Lc[ ^G0@hAMUO>47@{Pm%t`n+[ 008@ hEH M &clSt T2!w0z$cN\euqf=&ٕ][|5#ʪ&%h@Uz@"% ]ݝUY{`G`8#Ґ@f=zWv57UH T*d-H̱&B␩ ,r]}BlILw"x3S4@$jL;""> cwz!mb&J,SR"D)8 Aˀs0(:03I)!Fe&$>Ԋ \B`LyJDLQھ0DL5g}ϣv2K1hkMlo*| yDz66ջN׋;LsEfQ Q5)ʌ]7tiߞ_7q:\v?DZ_}z4Nnn64Xۛg|vm瘛iN $F`ͦ( hBD,Y"T1g pzy4[GHO3z iznW[0]󤜴|_ԓrѿހ1 t+&Lۜ'h6YѶ:)`'rDb/%#T%"XFeYHv,k3;jJ*Q2o򭚩)vZDnelE(o #?DD0ߝA;!@n3W<@sFdLV;Dhhۿz +@bCsXOMMLih1ٷ hh Lu-98KmA+ƸpÐ_2\Q̀L ,_ga\aeҴQEi& ygտq}\Hh? H)%T C=3 α%h1nTA,H郘F TBB:@F#nb" ńYjXTQu%]Ozӳ)YWT񓧿|ܙΏN17@1DԑE*fHo 2$j233sJs]օgC3IΜu] ȕIRTUuR&nabZ#5Ac GA22E 6gI NR36PB$FcN@ CS5QM1W 35C(G]>(+(֡ĴtUШ[mMWWO`rpbz|xY&Ŵ5XMu/ ]\wߩ/ X6 SGFΡ3@IѤ`d\:җ_~z/~|}7Ջŧ>=??x2t:}@Ӳ/Ώ v]k^!}{ttlQU)Ƙ7^GggYjf/%*ѕBTF~շr}+w?󳟵oq6͆]QM~WqOX,߼ Nc!j!nX!‡'ͪt`%xVeQyLoY铆i IGιͶ>9wh(W&PQb"f3QD$:o.=xݫboXӴ")%u.#춅w35U6MR6@Pe/-9C۰5j Uyv)+{&mJM4c<}h̐ǬNU,!RdF1u(}'!0&BuO]=۟ >=̠tL 1HTx?e޻y? !>U3lD4e[?s}\׿nȇA?'o8W3"aBIUdn߁!d7$ rgZ 1 !4`D'Kq);dWugj9%Ʋ~eD#7WeYofYM|٧xɓf"5Ct397hL&i6]@dݵO튐رf)a*LFU9f`;4# L[PMU%UY:diuj7ƚFw]"$\$@a0!2`$VUODHA#`"z1Q0|\AD)g?+NCwz ڶM]~<4"fjιvmG*ě6 tm?xbmi Ny]eYnWH'KcvU1OɴoD 4Y@^EP=Y=>)ˣg雷o_|&.ulr|||0}nX>zg?Y~lH8Մ{j<$̳ {ʿƩ73Db}df $7WߘtO|tB({yzX-;/GOdzOlݛt'óӣo60Jjf,fش|2\ w{k0%G PD p4mwjjI4)31<U}23IN'Q1\.cV5rWh\;Tc9⨮QQuhODr!Lgi"6 &S; 9CڏziHbS ;r;,{DnMAt>idV!#0\pvh7׌<ODLZMaz6@6UvhC@՛fH3 cpF'X43(ϩ_MEN!PDdj$*[OoYnMdg@̔oø)*4$}DDIFl@@{LCxd/7l%wSU6wY:EU,l۷,FMf}6PqDo.dzY0bqѣ 3@DE;NTAR3%Դ~,5ZRSB(j*339a9DLTel~';ImZ 2ɨdPMDERT5xYDS0D IDATj5sP;2Шi^'D8+MM'QQ|h۝!"{"(*(z(ׯOg)L`2|-]bv~zVx爖`0l;0b`H ]4e"EG(PytOI]'O?-׋h?o~s~sp:\\^NƓdz|x\WuB=;+"wL%1{'U5O ^~]UU](0PPmV"8X"/OI(g\qM'}\ﶫx͗d޿P p6;lf֥~ OfTSj-l[9<4um}(Lɫ~ߵ]pHj1jk۶noW)%3kXU[b}7i(9T[5K"xȎ8@^TI$%Q1Z/j!j)8fC@cvhjL`"@µR k!2侵d 1?IUG3lVPS3qTj,*$*j\?ӏ?N1?˗["Q` !GNTbRR*j?de0!B@zrxw"x5;AИvMKFmvImEȰrzC`̳wMlۼ'pd ) s;U 7M㙝s_qPsR  d"\ƺ""UDfMz~𓫛vmjY_G_v\ٽ㓢,7|~0?O)I7{W"Zjq~m?ޱʺf9G*CC3E 1P 9fDyfYN' 1~{Yöox]ݮo޽ZT,8rh<>ﴪG1u-)kx:9vߺb[ovS>>H %C)m6[bSrHe}LE "CD\&bL>"6Sfs)PB@Cng&n8g흅"oHLDhPU6&݃?c0 C0DC0P}Yw{T$CTZX.[MȂg< c:Xif h)EӪt! `?eSv yf 290{odg}A_z~7E qwݑAV@d00S>d9g(P09SS 0C"h@  -0CC] S`xI5]=WPm"vs鬮N/ίr" $]ːG =qJ;3RyonnƳש$Bq=ZlVhܙ,wF@1j mnS#VAQq5C=E#0"ŘR7V]}D%ufF#!fRՖ9*3sfv{s[VmOכrO$TiG")zу>nٜ*IJ?`tmԜT3vJ^q-Mwa16..߽=;9J0OW{'FWMQɸ 07xrYIo'iJc7e$ۮg1%U` fYܰ, m[ID}X5IJ)#eQUǤ=&ԜTvm|PH]d(Q 0T54kUA=F<Lr7F6 _U m L5Se1dB @  ש}P cC*D(Z1#XLB@!T PS֡ cw 4" !U 1Lip_a0O:`4r]!$fĎG{YJD$U1"B@S#l @>?+t,7^n3W߈z&$ibgj@x;mmrm%y E`j@u<Tkϯ/f۴IR:'M +fh|\fq4DȬ/D]U&@bWʳ!"9fdžHUhsAf@PUHЄ]1S]<Ө,Q-*8yZ=zr]aAIz$ $3xp @%Mۭ4[HNU Pb26$$mwbDRTM4‚ó"ը0*]QQkE,7x+2S;gg׷վTsBp⺹IK7UYƨ7>88=-FPO"Uggί.~UԫWn "U9.]u=M7gid:-бM&qY/|??8?==Vl}f/^~{y}5?<|l>W>m]lEz&0d"@'Wޡuյ:JQK#붫z_ʢ@brǭSĸ,IUf{;0988n۲p9%5_o(kz& g~\^'.bI5!"';1ˈ+9˲@`L.$ΝovlBDc>`D{bMfhRp(رcbQ]CbEBS#@4Bݻr|wb ,]g8Y{NBwCBW!)rR=bGji "!>9#,v H!~D̐0s$`8L}#T2Q%fs$U2`5k)%fb*uƾ$K݃{Po/vMDb9Mc{@) BG=0(]Y ̠,! 8U@JOOjBضuު Ln%⴬6mMQb3j5Q޼" x0}Ue1@qH3j]D*:dɐX@ FE!fP_:>L&{oUP԰,]]N=~>yR9%#ekvM5&EKFI ]6!sV8hΑ%5Ĩ lcA{U4d L$1;B"BDd}401SU䘠->;_'ge:QոƾI^޾!n%6 BۯۮMov;شmQn{ }7n-;V''?}vu{vO׿H8NtbU9麆}ůu᧳齓ӓSb7ۗ^\_ǿov?O/^9.<@"gJ-o--"v;YYѽԴFEjυ@IOЗ7_9PjO}07V]L_o]V''ծkE w}[+_n..X4&c*.&1H{0@Ծc@$O'HQi^)"]1I0%0&Omd6g&&ĢpHHHNnn{@t! lfF]̀2TQe؇  #110AA7lߛdw`Fz0EӋlbhh @lfYY'`GP!cEYp?X: sݼh)=Nr~M+d 픈?PY|<Ȁ察:IY.QĎу q}\*߮gw鲻;c}AkjI^ݗ In)x?# D &L9$VP9M^/n ҆g#2qDvlXJ`#fͪ3}y[U6!f&yUcʻ!mg&.EY]T6 yO3#fUp")˧}]9@u6ؕCQ"[x2$ƾW]*WmfwV6KU%2G H< BL0 d9d޳C)hKQS5$S Q\HD=w>i"}G""1)rſͪї^c'mYxGisJn>=REb,؍q|vu+bJ)E^on?~׫v#.Te:}\-צ]2٣Omw7_G_;Mmʲ"ě۶ozlP͏WMT}7ᄍZ^(blj51N&q]#/ x65vNndooW+' ]f޶ۛKsZln]<޿{GgnT}03fxoM'UL1]_|4"x95Mߴͤ.@,FCD)*@T({?({c"Fg1v z_mԲG4Բ HLjfc&6#;Fv۩1   m֙B5vA%CЭxgސwMf1 !' o "Cș1/bJYv,f. cNUTҝarcDbFi 1 _a(?Hsӎs/ >[~Ã{I$DC5ٿ T#s0DMIw)3]zvDᛯc@h'lCŸ)14A0`7{xv"¨5~~:)%01Ae rˮۦR? 3Z4@H~xaI,}mAaafDyȣUYncƘD>{"hy_V}虍;$̈5M)4GHhLli g6k>_^\tNb<z] Dɴ JlQ3jY(C(72K Б:6GTcW IH2( ) )cP5G@ .PACh7EAg<O>d4"EO=1b43Nr\'E}xr6[-׀Ɩ]|c*OQǗ7~6?|ȭ7`ڙGPbquycnI[1Qtn;r1 (u[3",g<ݬ/ vlnd"x|\9v.epY]'ّHQtT F"{']2"Tjp||]{<{9.sxh7×, De敦 4YMp:hwB Y*b û=Al:<it/` E3 E-fHH:UHɱSzDPbGIwܝzoڹ;p w昳~{2! 1&M)E5ux~\׿#h߭oeK&emJC^"s$Gu9B1 ES`"*a $0 b]))~v LM)FǏ{ˀV:0G(ԆQ@Vb$69f)Iӵr=cLj&0104!$v< :f!x&T""! B(f׈JJIhj4ES6EbpdyM:۶KIx$I󋘺(.Nnoo²Bgvmw{]<&ٵM=>>Gcc.)QR"Ljo]N5nFoTLq8%E5>JJɀbe Y9P(rm' vZ6|[3!)͌ "!QXN&lزZLx BC]nJ|8`X,K1&<5d( aB Mb?]Xd6a7Gtb؋&;[Z&C%ɇGiJ))Pf`rJ'TyVß N^F'DǷ_+:PاI!%@@7o9 4U`2@0Ôgb@ Y&RxtrZ붙Nfnb77 s>xǔ1i' b 2dqpgnXby/2Y,9(IQ*r³gRS`&@@"P BS),}<)  Kƺ[Q D5EGt`d<"dZP%Dǁ j戣( jNW&#B"D=kbB5/"QAElv;D1Yfܨྐྵz;|9 Ouh]+z488r15SzUJ՛ד IDATbuf۶Z6ï]]]7}lc}n=ԁ&mۺ_^\G_m|6onݵr ޯVY]8:}zz''e($ y/>ii>`m=ac$}_QUO@)umƵu޻G)]]T!AU8"O\8(Yf֛͋oz<){%C(X&{f ߬wNjdQЏfE'$fv1(}׈ux{ o1l0ܶM;( -(LIZ;HO%)cSMDbB$v "1?Vav!o,U͞N0L)8v,D=L  sӻg!YxW`: N0jjz"jhҵ*0'BP3",2X dS܃Z1 4$!Hd!$J1z5g1%BDJ`HDU-C&E34)#HMnP hȤD-{v}T I)`b׵$@FYJL@dC3sa2hҔ4T9gУ R ڗ Dr7|L03!2碠(B]ʲ\׌wMT/&cWŭw:Szg'gEx:0 1<<9횮*˛.mVٽ՚Ilݕ'],.˫.RU޼}Am@]y??>~ѣO޾hSGFZ-V!T|q~gg^/gh꺭Xm]l/Iӳ}fǧ{tz4"t]7_ړOP.kQ}C(mV2O v @"W8|vvu]TӶCd(fcךe[u=eHTnnȕ>ᴈ"M_ A/g'pjn._DrۮeDeUu Ǻ.bg4M׷v#MX¾+QO|.38gz3+w73U價g` IKUWdDgg10*u=Q;_u$w@/0,X.SElb;556TU"Ea8^N LZݑ@D*GTZibR>45H,_04NqGGaM6"U M 'LMxvhCS9uXQA"jΙYۮDP0nʌH;Y+~1m~OJa3Ɣ+ςGW?le;%W   ,~XĞ҈DsdP??u Su]yy^7Ž t>֞*uAM9kp75{պ[1:gm.RL@ϗ\B`/D,+zeln92SVNSw DfnIS610'W"@X= [UU(X$!C Fdf@@xjaHRJ!) 4fD›[wr'!b 9CB_~lzCPϚ]rsqZ.vs!g M >|ONcm7C7Tbնs"|/_߼qۡ/ϯ6UpooHZs!ƺ~7n^]^޿[,vwv֛M:vֳܲi` www boH.\^mѣ7AP7Y js6"EW1Ѭ^ i9bwvw//{GjfP_)8*ܴnc췝@LBLc4V+I$9kJĘA*AM- "ABϹnB )W]7jUcf" Y\N%cc&t;<,B1ψV?̌!Jp,ZM-|.t8EkT!H KY tw$d Fvv8єn\T/ci/;y8b1J &/b`q1fó+ j$ f}_ kuM3[ 5SB`9Ayc*.2hګIX H 4CP 8|%/^~;w='&G|k[ONjB> RC- ԴA'$5,H^SެM-弬e}vvn6[%r"Fr7āxP]biȩ26p(~yV$i$EJ}vwqApd9@3#zf"7ݜH1 R8P*k`>Y$Ժa`q@BFU "˦n:zJdN%ķ" sL)ƮTU5; @̈NL *Uyݶ jyN3c̰Yj[t{ugvٷ1m=8: 맛?\|X҆p1 s<7ל]=W]뫫gr}j:==B]٬iY[mX~WЅI9rC@duޢivvTH:ܽ=kҼXHc2b6lB rN`ԶKC%Wscaȳvvuq9XB'TOkfLc-McQfL,w xXa !Kl6[뷀n*cJRUfSf(d5 Ll% "rYǔr@ Pܑ1!e"ϗlPFfJztR^OmFOe1IY'c &AiiOR1Sq#^K<K":yQP!@[LGKc{ZɬC+3YTEYڛV&:6 ^m"6忕k$2πTpLUq.=(Qu8`͔Asvi cE*nUrpw޹Lo8o?ip ,T,;}n;?3#|eB86 0RC__>?=6ˡggO-eNQ<91@#Bnl 0~4kJæ-IP͡m6")% 9(2 A* . ]\Uujb#E. 2iRB]& ѓi$ ԄK BMltSJg`E˖R D -Һ]NI YDV*FTAߦ4kSUb-Lwo1HsXm?h/?{=؞Ѓi5n4\qsHiMnzg&eZkٞ}tl y7\"7 Szx RP-t9j?jϿ[w_Uŭ;ܽރ}c wo߹}a899!o޼ۯyrlsUKE1G=8?ޝ/S5^^mJqV{ ,ݬg&fj-M)T; IS=kI(u]RCrE 7]< SLj\W̗cuf`Z7H @"jػ1[n}VEĜ-%@TUN!ݣ*k!$0uGW7TS,"d D",HDȀnUz{xgm^^K7wtWo>zXt2 Fgf-6m괩!e'҉`Qh椪jjjmGf]udٹq * ]_]{VuU3sfaD UU'6G?>r~_w>;;ɐjp7^r~MN=KDa.1[6pE;O6/ㆡtPPDZx~{?<;C<9=:88ۿ_~_߿{_-!|>vԘ=|ѣG;;̞=?qm*5w'>y&g[,R_ogOb~}VWsC!Io򖁟 nu@FGX.WCZUC$t~%58&bn:AF*”˽s=̷߭} 3iB?$Qn W*0SZE @]SB%̝r%D,AR̄f^W;~5]2aQ5pmzR zġ_ s^z~zJ iGCѴe`. "1#rviSI.7w+:B !f1-zܩ; @u^x lg_9 +5U D81YG#. 2^c 5  ]̀Wߛ=`G3xe'y:!@1 DOfv0r<+hh*ELX`ف>vd_<v#iߏ24P"w8a(7E7n=}ɩ&MG߾|c[C `\ Y`og jȢ& KizQ6-"ކ$a`95"a>@h u]tӘb.ͺ[oz/Ȭ*$申0QŀF mE݉B$nպi9FM՘t9(dlfnhX:"0DcHDD2||ݓ/~M{ iYVCp $Aurv.]vW77_|k/aڽNXfuoэ;3487L탷?ǿgyQݶYmgn9;9\_eϾɋ7?{/vwvכuwyf_>={n?~ΞvVmΩѐ[M_"25iU=gNo!V~6u}=ko}ٜǾGhʔok5*]^f)96WfLN1iU-!!yZ n]fCu 7m[DZJ5!:a,n Y P:44u,RU\g2) Kn8idwtOcC2(5+WŵgiR3^)iVl(0y&BF0 z1kHLciR& 4̜hY61Ds 65@sGBa@Fv௨ B:Fk(Z,O*:40wpc0QՉɊ}Kً#g2w{U?Sh?F~5!.UbTG3?$pd4r`"Q:,$4q-0Ȩ&~9e ;Tal2CJgSig;`Cy.Kj'/C֜ӿg'9gjgu8rFEzlK31ջ;}wӳu Dw af00BIk4O;Iֱo&kb.ˌ^mL]E/zw͞x"p6J镻3;Àc ̅mH`sBVaM"T#bFe+@Q CW*PIQRټqc1fڜủ73&7\.9փ [Ϗ5mCMŋg8 Iv1{t_o; ML]dkJYONYt1 g<;J) 8v#``Z8]]޼f"2Ӝ2lc}쎚Ґ }D+jJ: )PLrouӸ)%7WkF}!JMr̈ȁhbp 90 SIfNecv)L8Bt6S 7%y1*/$pSc',2U@FBG\y$Q3`DLn Q*8=6ptr(/E 72~u|Nb籟7Wv]Z*{ ");OANc#cipdp'bc,n5hjلh쓉?Yoֿ?bJ5 ́bA[9SH+3Q6(̀30d:MP`/@_Xv,^&}30 lA&_v19眢hV_?) XJ`-i KBW{I AK@'k fV5"D br/ 1(&M->yL'7fRNhU=*c_d&S-ג,+4rQ3`;3`t]Mb2Gba$3(h0BEIo\&uSrKY4AHg)e2ڳftBp"n 5fMlIF@P0 9![l}"AuI1N? 9D5R ZLWӸ>tpwQX&f<;#FfigT`Fsp,2wvt3:X; A@]`^'-fc$|;/ = T\l5g!UU3?@7T%mX4dLmUQVS379gS5HHCBySYJ8}X LP4T0 $Fs12WEZٙܪct&)ȵ G^#MϿ^{GG3@t!^ +=S1R$p5W7٪ݝތ}߬yp|Vs~Чg::{Y{Nu$i2Er`n,DِLݵ̉< &5kf$B.)E2ǜg-""ؔ DPdGb*ln͊ĤI]Bs&o.0dZ#lZtX-wU5{/_: r6.P;F6}`}׭vown-wϹİwM~|p/߆ap;"'?zIVm3wALón޼/nݺu|/>%Ϗ{Ⴧ{]@ڏ w8ח/_6,rw4殛ͤvU$4wp[7z>lNC]g^-vgO BnC5K٬WF*!7-ZFj rŽ;i nX|9 ]Tw iVXO;8 ;ڶ9H *A5gu46X!"f͈LDYW0 9%a0<}1>N! c216Ɉb,G8Rh #wtO:a#tEx)-1cS03S 둲_2@[_EcTSKl:>+;fhODnx2VNࣗP ?2=,28@V+΢.[! #SfJ8v`y<Ւ#U~hYu||?eׁ?wOrlEu["q&n#Nb2I؀i8*]Ax2Jti@ \A p3bg@8+6 irQ/DTg/^ƾ?yrpiBir]8z ^9 7o0  N[sxxkoГX$V,BF4~*qBuE"PG<=٢꠮ǜd%`f@B5ggV*F]F"LxUCmCU%h(j-Dsu45 @榦H̚3cf_fJ"\E2%!K<~5Db"E]Ηj6ZhEf٢mf^zww?n=mS?|iJadqfvHg')﷝iD]^*Џ>@/RƬUh }f888|Ͽ[˯Y.۪zރÃ>g#uɷÐg\`w~7n<ؿhkۿfGa6{m>zEסI9S`HLv> ZkbFݽáB,$BjEN=")`o>k+B4zoooVUl0$?8r 5njo97MUWu[UIAn d)[Z1FUkjYbRAD@,)|../TFldԡפ t3a"RnJ:-3V!sDpfafba %~\v~uen!; A1שX\ K7TuNX{z:)Z7IA3,qLs4$r`dF7^w#9 %5gmsVj"nj9prXo^8:?曔!@y"_S;'GAXF/LbF`s@r++!AU,=q'2AmT$|bҾ}b^yNf] szvt^;j@pv"VE̱*n\048Pr@\ IUsRAԓ`(TM2u@"Bt'S(2&hTy]HPTYuY 0G"'")['BDDTU5a]79H[b拿I9jow/TϚ#kZveΛ +\c&+3͛#^/gz{u*> ew|p?Y8\]UJtv~~K3x/??9;uG}wyVՋ7o.|/O?W?xfs]狅A:|hB%a<_?6V70p⛔rwTcl)7o=eN])ډ'-Y#q? RTלt!T,u3[#[И0^]?|#UGOA$WgUaШ*ܼi4S S"4"4պ Hl;&7%j3pHIEX Bb2*CDbt myts1.&#r ^h+'c됴kUfXߘ PP"`d7P3s-:lө{,TV6^@U[?25nǴTG/&D0WSёlt2p$BD99^ U,[TtGfw3BA~d^;:?3"70{+#1 _BK14YO|TBQc):EC!3ˬirF4$}N=XbþbH`9{F\hrCBKip0OOOG3x8zEX1I1#bC'gAmYܸIDQ }!!V"&lΆ5 Fj\ۡ@>l>81¬ [ "Y M=#x#0U5յssO)9إ{.23 Ws3US:LU8y$!wGP*K="?/X?Zf"A" gÛ[OcXj C:ݜ4lr3愲{qζڻ>;ޝωxȪs5hwo9~GϾbέ}Ýg_}oA-l^nvyuy|r!m۷o 쮂!F ǫbbϿ~>諯nGG=;9?nhgf}?ݧ ϗǏ?.CuvA<:ˆ!| }\1 TzgX–$@EZn^̚{7mvM>z+k!"e[.L!v{Y C4Q""s6Ӧ&)>f#'ĬZs6ǜ~P/!s],BnĪm۔iHBێ\] BbΎ3(npὮ`cU~FŰGDؤVPJnlT)u Fб:upc vpa0cwtw_LL=?'לGf0q!0K: eDO`O wi`ږ'0H!޾s\PIfu e0۴{lzNݛ.*޺}XDP4Q;o}EJyjb0b#rai7v Uykэ@sB +GPfHZ3 ait0BߩuMDjfI!H51^EIuk !K8@S1 @4k!$c1М؉]#  qD"jYGF!33Vu>8GS! @ 2#_=|!v'yH=1 ^7έ;>AxV]b8YUؽq޾BEﮞ=yq4kdݭ/.wywouuz~|'?Rݫwдumͬ}vG/~@ |rqq\n>/jWT8~V `x/@'m{)x[&GC"YUͳWˆ>v1u ޫfe{MYGhwٌM]vB0&b?h(epo*},Ap2S]1u0lLfnjD(U)<,jI-1/;ٔ W`,tBv ac z!Egu""3yB 4IFb˦qi؍Ԡ"e.QED3v8TEI =!'V-/*؋ y*\&fX \Y͋> cVUC%,Lĝ>7no~C8 $_wH?/l$B{D{}Xl\l 8h9D6a}fK/p2@0zqzB0@NNחFd @Ľ.N~ɐv`b”g{odq #n-BmHEIz鶶i=<L WyX9YEQuдrP[w{=>ηwM6!3@~[@ )9H{;[[ۧW@蝻Qh|h97(#F0pĄXNQ ɳJuـf]JdL 386JDJ|A瘌etK"#2IҔLP#&CBs1C@" }Y5fǿQ.}ŤujvĺMOcLeʝ&=bjQiFRV[3mBWDq6׋M <~={m"/r{d:w^״}RL?j/l_x1v6z{kSUpt߁|ezujutƽ7foZ,NdhqpVIS7)!{WwyM[;dG@ƨ<Eb pЖy7oΏ}:]]3Ķ[/ ]Uf65"eSBD1z6"1BR!ߺd#j)Ffb7UDLuMHe92S,"^RRtN WjBen 洩A74ʖ3oO͹M:l _+ K# k{*C!2a. !̛vYQn@ sy8ԫ߇>u5߽>p xG89<Dٶ}b7Z#r)&5ay`DLfJlӣ7p_^agYgg ^3_ x}+2~C{C |%r˲~>t;D$^XJfFE0HjU5]*59^^ XxZ1UUIhӠfOO{0@5Ǻ$ jt\C!;![l0uf%_aQU@e6JDRR1ЬBo$znҩ#;mcG>I¬d -3r90Vfs.Dc$ONS>Kј@DΒQOs 0##ʳ!pe(% ߾:?.TEBflk@AќcRgMۮq5_^_IYfUW놘Ajpf(/.PlL*H-䃊JB0 "شjRl/n}aL"ň{mO$U$,'t"XD  &K)%I4yA IDAT5@3.v8d|>_,;isIpZ* ށU; $lL,"0̩.E>/e!2s8*w)bot)@ OFM `(a^kD܃w.7o,f8o?`᛹,"!d&UA "EpIP՜cR67 R%7ȅ"DӔ3H,E Q|\4 ?Tb{pq]Mtf"=/rGyuɓ'p=}qrrzWw~Po~_~qu}g5գۇ?[O'xҵwwwx1ɨ=g[[_~L[ۛӯ~*.ub4OX]g'{§mڍ[^e^ǣ _Vիړ 1;;?ZQؘ3'XV)YDőt[[t¨W}'N_bڎsUqZ:fQy1hu/;WVm2]g|Z%zbYVBO&ž8g1&7ίl:"]̴M A*Zg&bP׻Af=Yf4`6551("5N4ea&oNę6|@AVq}k܈ꣷ7@M zL HTR.."D|*DMDAnm!{~}g@jws6z~y}jtp0?boBྨ)лeZ;yD<B }ϽjɌ17)u*BfS-$N (36] !zrqx6Sfmpbl F jĺ-ߙ϶pT??7/^w߾Wˮ |cŤ6-GISB`BmۦUYv6 *ky2j [i۵K*dDRBpKzhRf.rS9D)xD#BFpI%i$`j#G@fbJdLL "3RNS˚\ex4v mjiUE hdF)J&Pմ,uJҡZtE(fyB$br~ *M|1:?>ޞ%S$ͷ}M]|y[_7ۦiFOl6twg27*ڶ'$q{kt]?ӘRD_}~\8R9}b1OnZSU׬C>i(tTM_4]9mllFD?'܆n0޺Ϟ!8:P-0+D0%Xz _H7C  V|& YG73wY? 4|vsysQ5ĸ^, 7vbw9AE!>kKB6id!'0F"(dS>dX_c0ߣz,πwm"k~D{[D3С~ü39̈=G2d@5pyx(;0ƞXo'p4lDFШ$)6D&vmJ$Sumz򳩮WmZ"- $yڛZe5Wm L}px\6xkY^/ʒЀ"2sEE3'0UTB MA! $ 0o50'tI*GM!%g&D:@Qԫ Un c ɘUDO3"1 (jJ%_|O?{9 505PF1X\_*s1,1"MFURE-Ngˤli %Fq̢l?j{W/jcr dU%z.ʺVEy]UA^~'G*!(,%@uݘ)1!;׶ɘ 2FjˁJĈ0OT085i<ٸZ0sO{  : 16ST5#rf1zl a?0`!>im=n$ޓgvL 4KgO;6>Cn;-3y~DϜz窐dn^;: S${3vN`95z z~oS7U%Idl1UtĘR|ӻb={H`߿}uƻ!Zl\:} Է"*\`eowߺ{H+bB~vH4 ZY Mfhgb9=9;}uv䶷v,A Ԫ٬ m@ $@50P@4" NLjscddۣTc3 zzyz|ry:"")(EU MPT+Ɉ:%,:ѴS$e? zTRu(2"X/(Rdo6nx8e`t j9P)SbR1UQI$>1'9erΑd*77yj&$I뚮[KMӠAYj؂q `u{٥ ӮwwѺm>/.Η |WT{g?.u^<7wx|w'ŦvG/ϏuعeogU5Z,ggϦxTեJ74Ib> i{tV}azm4eݬq l9Wb<5Y.d.O^KfҲp!\^uQ$ɤIzrdEU]/ `y|Q^S81h#s ըrEiP!L"xD T#ikUI)bL̒:3j -"tqMB࣐mHCDsҍHnv?fz~ɀp z_f5ԑ)Uqb ,Ƞ+}o8U}u3˱oaramdty=-${Z€ H"̇p$v~<=\Q5IWe3܉(dT[{/k߯b9*FvE!(9=!X40&0S3tĪ@j=f?}+~^pcF7pdY O^n^`]\_sE5HJ-̏&x2M7 Zn&D"$1斘z h]/.@n'B h[Pծ3p uJbOGUe "3{ըǸ=ƶnwff)F42Li[jƈL="9&GL/.gtL$Yc%Ah$x:#v lF (Y `픠hd>$SL j0R rs /?/ƒ?k@nMdo_-oM7#D43UhPDwْWO}zԭחW @VPv]}vjz[|\UMӶ'&rQA%]9Woft:i{w xfIm_ Ξza%wgG~ Kfj hHU5b9 QUP_}/֫uH58U#:;cYooM剮ݍŪ,'MsYέbP@+/lӤ;)\{RǎA"I=)*%&CI2uP003#9₍1xFI1 f 3ŘI)a(ɇ$1y4!|ppyuE K~mΝWoS{ߟW/fPʪY7Q|Q, B ikǸp<'S\-VͶvvW孃O^"흞}ᷧ/~M.@ܹ;*+fxqy6Ƣ,ܹ$]]_6roP~_5u9髝^Lzlr5:>r1nDeQ,o}{W)^%u/Wb!$ ~5!몪(X-WIæk]{#G]C*UeZ~(jMcYm5*r.WNĪqե@̞bctΫZ׊s!NRS7ϻQYDQS_XoMϴЙ^fцfh}#e a@2>)a nsLQ(<3"7Ӄs~s`n8^Ӎ}9ʔi6XhRICᅃH{t60`Rk b[e IDAThw "yw ( 1eٷ*;@ILTij)0aN7@U4g~}.-ߡnso7.'ojF Ei &GX@ (fؼe?`"}E~Ljcw\k#@>SoF@D֪98{~-}㏏_rtuA54mSU9CtuzܵkIRn57xLwd!dQU2h,R;AѶF¦kW)*93^Tb25ELqK!{IQ9S ) #!]ԭjm&b)Ra>w]+gǪ%G0 4Tx 0Bj L{)%QC$$IL98Қ)!vk6yPQ1:ʏo}YvޅO}x{kSquccmׯ^}?;xM5o76g˲(GeJG*xBujb}ەu]L̍}H@t2 W#lqt6}WLwr\t֭;W]Q9v?G`EE^-:'=>}J=lck=_}9o]Ӣuupm\^]#l0rq8V6T .-^!e"i;έPr5.n]pHY֎0&)HFLaTzVEVdXŧ}u4mhI%ƈ]rλfs KTyGjQ:9EB*EifeʢXm X߼|ifD e栖/"7,˻a ,3B)Y&KrxU1w)9"*u`v={ fxݘ#W!F]"@@ \pD@rf9I?&3^$V:#P@9PU ;0 #d"Lג: `_MW>^|WQٜA\ILjݘ*(nl4 8)yxbځ/]jkH5 33c1FRrdXZCb{PF{Ŕ ׃є":& JS|ʥ!gB!#210AQTɹHRU^7mfJb$1uIs,& &Œ,TXDI$>CɊ>@HHQMs;0Cb*F4&E^W|(/ON?:<::;f&CwrrZyrzp{gZ1X#1kw*b19lcmtA5}}{E5~pۇ8ǣH+_ׯ^<ؘ7{{!xck{<'sM7_틈ggI|'ggggt:ݹ}A(5j}΃ʽ;r>}k#![{x>ipb$`2U/;hֽdu2"6xT6ejkl6h<*Q WD\\6h1N jzra:zr\6 Ms&*HhsS ޵];H <iITRLը2в̤R#"{6]* 9)[o!^ {*W#[ Rb?oAb6#VʂsLY[]tO Z GwP6;MȄ8WJo3339>Z.܃~/];O)C@D KoPxso-g"XBDb"fϔJ~_z' t"WȆS(L"W$7ylV@l2D Ϊn$tc~y4n4k, 1F@"eyqy &Ƽ}9°躧/_Y뮻nbqg{w?{v$x:]7͖' )4נP0GIёHʢ@ YŠ-bmY[r٪f<fDl1` cJƄCVU5J Rl@5E"$I`&H\ySdBpX: Jfʉ<T d(a2$,_G5l2U3et299;{՛Eݜ5u&e9zv9?y 666rsyŴÏomo"9e޹=ϘYDtW'Z&ou[3|VSדd6ՋEYz ҇Zf-A$FUu}KĨK:ں8?-aRjGE)!&WiuswE2^=ZG\kԖ8S>:{xG 0 EpX1ibFb@8bX3|1XAΣ/s^Z&LPI@Z$  y䐜Y+sp^}@(μ8Tu?G2+Cr[CD=}f[.QU}萐$t<޼zӶ! *1 E59\\}+unb<9}8,O/.~g|p7_TJ?O_!VbXOb:3N3_?9?MwTdg?ߋ觟|zvz^ףM,wwѝxKw={VW]^9hw>~o^|/N˛fu/DlYN!Wz}yuνɨk;Ν;eU߻{()!tyuU6)ׯ_WM嗿8;{UyΝVVd:Ӫ{ރ]4翮\D]d+-16l 1̨ LgI׮0*JTeBeS`h uI"2m5e*&nM]i o u(J# }u~DXUe&0]BG3dfDUYl%!|3ݹ*J"ƭ9$[m[*& ø1`>Et-0޲Ö˂ύ?[]4ncr_M`=Lp{5UC?m",-۾- BhEIno= lpHh0 fG(eBE3ղ=6Ө 9O?Sށw돹_^ -o}akbo|/^=oUbLQDEљ1g.S^TƐ9z8^5qwvkʺ;;N"G 9 =8((3=>>&ɴF`^-1#?jԤb".tQPsrq~\^G7wBD_xǯ%Ã;HBY.ӫh4n6|G>|ElgKoN{}y췫]2_O/ FW=o4P.U%]fș9x[fz{wKRZs+1- 3ַRBDDbݞNP':a#fQ$e(̀@Hl"I"߻\6ohGo~~*mDbmmZU U5{DADқp[D[|hf7uUV|Ч둴)XTUSQ¹zLI3D" _eY!bJ2֛.{0{rl"i篘 5-к_CKq<߯yvlbg?0"r UCǎlŇ4 4Hŀ`_Ykp];p̈TtQn&s- 1_k~.D;`e6\465o -[lA`1BpD1I6@3Bs eR&-%uYlTC?nwu~/ޢ?Q%'Poowذ#_C>*\D\n֞?oyr"fd(|AĪh]ab %#&Y55i ٮSsEuJYڨjȊ 1ZV#4%z֪*!9xO=cNSE&P1U yMljHfdH*p\8•H#%GTŨ=|ܙL?j\iLԯ%Y3I͋hե>& BbrPe }Քͦ,$Vf7+uk&T4(@bV 2W޳h,%5ǎnͺ3타)3{D1ƞcdYx ه\^]eN~WB݀)5Ti @lW+,뽃ö] $P9Ǘ!jRX̀9 giT,&;)0 1"(Sׂ&TWPII`FSs{0c榪D'd"%'^//=; Qh8퀈l [#r՞Z %EK`Z֧iq;[j !]R߇mV}̅^RL`ʤ f x- `@Uf$f bHŒ%F!I*P/ ̊H`uhBD޹»?{x0mw3LhuQpU?f7eS7)j݌GѸ*MT*+pu=>_\.)vP{0+_^I\.o޼Z.WkIߨ? \C`Eׅ>FGըGi1_;@HWqӀUp\*ԕJza~3?%5߼'''g!l% p]7H "ڪUUlڔbӌgi{G)JAD]߇S"6m\:ePAfme=L]7!7rOn̔7#*lfp!pH}4{+?Ѡ@pTxF .~ϳ:oχAW-3mf j%Yw@͒Bm, dA5"ݢ`ME`* QbLRLhF] Ԕ۹?m<օ/7 F,ID9`j=@U&жAr$Wb.{P)UL"Pa.vFjD&iUtٶA$*T7C=0lCe?Ά۳D|aU (g3i{XAr>a^sTS3ީ"`/Tzr)WR]1D(IJcGTBȶ'+6IvX3&jT@K,&L# %`^A hOPqчRҔQ %S R4ᢜLg{{!uq•ɤI=pZ-#QcvUѓ'?<:?=(>|ūNN5w_Ngf:WpAInEq98D0?츏iËӳf4~G1IU? mFj}5 vu]L'|/~|9GMS?;EoFggg̴7;~Af܅Txw lgߧ>\X/o~]o\5U?{pw~}~viFVՎey]P6>WVe>'Ԡ3RUy(}p1y"mqn$!h'g{㝑+ ڬ>|r}ui%&zӶqcƪc@f%˲(W#]<;0dZ˔V$;99d jHfYy=ca0n &ҭsf [aqm-sm Rmh|[03!NcM3[coUBeUF23$3˃#@[#dl'Q!!UAUfm43U-S4L"9w;GyɁO} zߜnEF03 9 bH"D1K0Fa( HPL=xirn1H.B-W7"MYL.kLZrT;ӗ'`/}͖iL}N(Jwf0lڃ6ѽMۂ$STfO5;RA*G@"0 0}[9I[M a{f&4]J\e(ԛf=R^`gLjh@ lʔMA d 9"3.` oSKbXS(QYz1QUǶu:J?|qG5l}hg;ޡjZ_ p#!!;&皒ΕK*'W Вs΋ 3__-eՌೇE7g/ zd2} >F+j|IS9>߿3q]5~tuY=yٳ_ݝ_^Gz}g_w˛7!R5~ dnD)߻8I?tgѨGhnjg~ջVx\ư\iIlӶt:n6M}ץ>ԕc05u6}oMQYJsPнt:-l$m7Ab~/ٱ"rgw}zyC5W 0kryo_\~_mUTM8:|qY֣^Q6wܝ͛7,EԍG{wbrw=r1#]^tATe$HnQ=~{tiRAig{c:~rogx]T`'EՌHUӌTWnVg_Y\3{ 6)$Tc,"3##G#Fnۍs\UYq!1%91wr2qSx_dںbXLؑ*t]`HPUxD7Nk;kus.onpggwE]UׅfH fFqH Eت̐ȶ0kn~1!ӁkUm!3jy#5H lΆ_BY`9GķvJD" -Sm2'lhlS[L:ڀ#~u gB[Cٲ 0ܿ)#FМQI-1YI3j$ǜwҀ?y{O٭_l m˶C 3'Ot*ý]$BŁQ{t ߻g{zЖ\3`(\Ն0vV@4yZ@"`#4۞0ج7 **@-mqS7bqN&R=wo9_;wÏ~ݫ bN)$?SluwLZ6QqSDrw%ZZ c6O@&f,VhcE3&,RɡÜLjED(`(=QfT͜cIDM̳CBSҤHЈ ejG>`2F@q]Ue  r@1n/_>WPg$A狥c*招z3/_?}}՛W9=|켋h4i  @sߛ콧Vo$1& }TNT4?)mGO\AVUzL&3fWWݩ, XίDϼso_ޝgWmONbLg׿o:J>x\588w~y}czLauӍ/ Fwf/y۶bEY]+VELuow U1Ǯ(;(K0xUuY:rn梸uY.VO>rB!Rnr v©*U$B#"3pjF305>4͸djq*0y@ Ĕ9횷CHU偌mlKzJh eeG q9DEp9F~oNL ݺd?;|]x n{ťǠ{Kl;fU7j?D0pmqp>p#$33Fa8HgrC^ :զfޕ@sDW]߭w[*/?Έ-?}ᛗ 2A0spYfnqK~ڽ\DC3`ا_]751|YПY7*vq~Zt2?~lDx7/fWg,oG\!F_jO?W_~>zכk JaUW}UU/-FP(h Fu%"@!cE+B%,zfrEi*}p#jrM7_,n7?;>9Bɹ2[JB@yb2S< L&>f\uUwuuBeӜ\gcgPdRb$򤂙 !!oہ˽0OdFT>?2EvBֶ9*4 hwUeY8 v+]ۋ'؀!ٖl(CcCk3ʯxi= `e߆%G g@ױ7 -FHF$f ԇ#BHILDȑJrEOcW`ֻ?7prd~ݳ^|1;ܻwtt!qND_W^ }Zey@80PpQxk˗`[5pnۢP"6 @0-XTaI 6F%HpϞ)`;ǞL r2!s Lf 1>>zr}IeV:%Ed.'tD;w*4hԡĤbD$GIIh5( )"3=s@4#c23&6IL# O/&dN!HL߅J(`)ݽ;]LǓ|u}L `o6JjD]-kB>[-] DDTT}Q ;W>,@5^†-wwIw/Tʽggo/Ooοx6` ч?ׯ_޽yWgx:ƴݗ߶Ztw?gvmJoN_` 77lV?UM<ٹÅ{}¹{zu(]PU{uIק )H f2sg.&-m?O5s(I"u^;Qʘ8X(z43%Ҫ,bZwٝHXtt hY* \#jLn&5sWb_b2GYp&sf:F2B֙a5CA:͜%pP!zh`XÁ$D-4/ J IDATvLg (^lV>d36X 02k&i\⼡h$xnݐ{L#h;-y]6ȟ7$|]rmر($D<f *\6ͳzAE{V܂Ww{避ʟ@7@)% $]zZPAD(ѽ6 k@Um׬Fx4}uLr3У0AB̾d-͛xT=ﯗ7jgoj n>>~4z}x"|S0ݯoڙVU9Mp6Eb9 |a,.`4lZ՞ e٬Ȩn%YU徏E^NU rrrf}#^^xhBl2Ak񤉶Y-WXsF̗",cdC?*2?W+ʦjl:vٛgL6h6! " 0T#mM-;oS+uiIbr̜Q܍ s϶oE ``ȼ006JU;9@a(Ì(ٻ3nfp':@+kVGm' 4"1S5"3FcG]AYb9"Y.f?Oi򛯃sLn(Y E BЛ!DѮ< C4;PH>,"h2'WEhHK?`AwgβiJL$H `g 0`;gM8N!!  0kg,y*R4PU0ŴˀS0!FS|;հ6c{37}P@z8?`1(ØLYK!OeXbLgk_X9rQ0fCXxX LDP@c T DeuIna IFc!ch9;g(D} bVF Thިf}|fz{5EųO_gCh䋛f2O&l<.jgWfy9WWؙN=7>r8Fm{Sy6/sFUv|4~U0'Σg=Xכ.G/^8۬o_/~pr;G.F'Ηf܉Wl2޽wzO$v뾫 ?vt#ebD>}f2] }ͮro|VWjL jܛڸ*)(RCTng.Cl:r狼*DPѨL =cT6Gg/9>)$2(fM۞ ;7]&󛛛ƌLI}FCupRMY<ږ6$J/)!i:5%[_r3{7fVNSLH)%A@N[*1>ffA!!`G6̝ 6L\%3q4-?$U& 6@C|O2$!P@C X+&%191Dpue@{1rT}tQ*E8;B $_ 3?ZzMϬ%Hi!yNHiDLj;S)BC0l4 5(@߁& 2)h P"@D jl1 @p˂ỡ 1YOƓi>?wlġ'B뺆Բ-<, 1Qˀw駅~*@͘ e*;8e'$޹i#L5b}]ӵ=jQ9ڶ&`e }4҇ Nb״40u)X18TSAFfDD=8R$5QDp':̈]@:@`)C%񾌧3}* ` H! 6& F7_Y/{prȳMt1z\}ɧ?x;Ϗߞ_`p6˼oۆGTs ]_X߾Y/.BZv|9juo_iE+ 7IL$ϫlRŏi}}՗_~s ׫lo2c>ԀYG,E>ڙo˫IӇ>!۳x\fGǏ.on/a;PbrY^9{qVxWYu-F{R_wbpY ]?c;[hh&!HTD%hmĮ%33O?<.l h+!Smtd|DP iխyb-+J˟?8z~r$pT*"f^WF}wTXU [*)MwԎx78&gsQ sr\Ynz5)1t4\^a=eGO~rMӬu|99l˛ۛGݿу^`GGfӽ'r^<Ư^~}k G?}c9ڦ{>V'O>"_JTBN?|UO>Ջz{Rg&lsfu㓏bݣ%+@E]f؊i7-Z֚F̜3NbdD~zBjБwȊ]kMۇN&Bd򻻻*)1}xY4mV#B*z IR콱B4SB L4"1'^MR"6X79#xGyNw;3ؒJ!=FUynIQA&ubqnym#OHF# ԳY̢ jDH a#1%nDe> Z>O!w{mzͳ=#:0P "UL,#TTD  @[U({CeETzwG&`X=!;v=j |Y>xgVi]/A5Ɍ12;mo}a6c`0}lzH泬!򄌙i`S+bIh!լdGH&:՚rr@2k[ p2֛{']]{LTcaRK쪖d `QL!0r>B F621:f"$dd4bK|Hbj*$jnj*yB/n>iMѤmÝݶnB LJGqYT/߼ywYenYw]|pPYYȌY滺 ҋqYvc|qpXhԅ~պ ƻrsr}PW.f9veP9(O?hg3~<݋"/noףjуj?zqq;<|0]=˲իo.;MӋ7?y3x<~{tt׷77^^^}?9F*EU(gŜbznV`ZEmBJ#첼18٘ H̳IQ$c27V qg}i(:N۾!p5-ǩWtrދD$!Y]7ƨ^LS s) ih"^ۦ򀉨D!U-LhDmXSD.3q"rn :wG8]ͶW[P-!ӫ%Jֶq ;FPZ%ށ?HtoJS2"iL @v!"g59B>OC?>^r%~#ٳzDBDDTDMEӰH}/B^0Z 0(ց9pI^3p YeBzGDpÛXoƻ^ nIAwC8ŀGI4߹Y`  u; @Z8Dsԛ"B2NI%"BӝKd:u{Z b[`PmS'׫8T]7˫`}C*U兘t!ա KYH(@54*V#:"H322+@]YN3Iͺg&8|Cn^}\?zw>?:8ꗿ̜_óP k5ȼ/ۙMc51E碜gϞ]| 4X}tU_xϖi+Wob>MsmK~WzSdE|X\Fl68T6uXn?_GYg|19<8:x>b]o?~{u9(ϼ*4~]՛_+j41v!6qshuߢ(flx\a# D:G"a&qv{Hb1F `Q5~@4y曦}ߦ|\,AbQUbb $ t\glYzby6"Na(9*r0cLQdHlS1d):}Ǐ?Zo6o˳7o^fh<힝߻w<.~YƟ~EYoރ9r\M g8+vj%": ׅ j`c2cҒ1Z"X =Pj E! "%QR1I,`mf]W7MsDۙ~7G''?b>fYʋ|{G>n65uejLM9"V2=UQr:/?<NBgO46۳M7Ȱiulvyy}qycٙ߼~vq{|x"1J6#зoM>~ůo~ŏOxV|4DGu3F//my^7o^?>z,RѠQ=]jYB.#}Ӷ]d2EY+U >:Z,WL$%#Jۇ b]SdsE!AR!7¶(2 ,p&̡2*f i=Lٸn )_m4\:33c{GéSh0&L]λ;)ɹ34{;h? Вw;xgL6@RHߝ tȻ8h̬ Y0`gs9 |{aWFmMhwnLU1ffridl IDAT4 }j .$-0PwQ&ĆHC^`YZ!t-Z4(F.Cy# CYB@Ac0)t(j@Qй"&=t[t { E5Ȓ4:m2s18{6XC,\NACeEyl6jYe7/a!.b-1tyUĢ- r_ik,DA jL C<.v)Gȑ g}+dFNͅ{aPU;"Ԙ(1QVЏG*m9_dߝo֫ohtvՅfj{quY^\.߬MF"LL̩U3UCgž;ӷ/~.>uQVM42w"m!e'LpBc|X1tT?_~ɣ'O+QqڶoGenV݃jdwrӺwN~7߿~Z}ltkvU^4}F}ѽӦ8ݜЏ۫7yF\nӶh<{qvU6_B%6QI"uQۆv厫^j$G ƸXvG#4CfgUAzs_׫o|hbjyY-noY b1I>G`0U1,x#jHYT %1sԄ6R h.هDh*(3z$( <  ӿbbh&#?TDsoR[ap.M`7 5_03Y{ǻ(0ٝ߳`DJ2`)%rBb?n $5PB) bЀL0'0Ө PQX5:wODwaQ?cw'<}{ vY,z0Bv7G@ fx!\e M8Srrjk!&!ƭmM $B`bPҦ3B=y2/"~3эAPӗ囋[V' ` AA v~jی`2D@xabjz5CΕEwکX׎r2[6u]cY/=].sԩ0q45'3MR,F,*@v``h%i dL" )#;4k Ե½ !9!JE 1*PPeU͜1Vz*b$v d`Iv ^QYNIԌݿ{{i뾍E5}wuuvyc0ٙOg/on.B]o<|g_"Q5*M]1(f}}58=t_eׯ_e}Ѩԫjh;driZNcl6ce/^Fk>SDoug>C?IW&ͱ*U^ӗ/_W"޾ɟmeX]{w _gׯ}lv4F|>^nwo.MxBQzuO=x+mݽ4$~UTA^ɸA֝4ukc*yM,2M۶(y'?۟}U97s4} CDrP-f EF*pV-T005Cބ33'jfldp'-|zk`&`&Q m{YtGTapd/ )Zj;{d:&cfIhߪIH5py*ڊi='0ۆٽZ4df)pfR# ý'$"uD]r1SCdU1cښoÇaA2h[^AH" x:p^` }29n|Q3ܞ{aׁw@ xb!@V JKy9h|x|jtJbF'GG_yG잼e_Lb霟v.GW/L{"lB.ppx/mz!W^u{;{'sw2{ճW߿xv<!?:=elcv/_rGivq4∙IԜ˙\۶iZ0Yy̰nBr(˜T$s,7HH͈w.//T""{54EL jLlf@(!%ם4(hFB&b AڀDY43z3p C[0{;ci$yѝ'3޳q౑m0n u[A/ aoЛD$φǸPu -y4" `L`$  gs̔X/?L~X?}{}~# (\B0( `h!&> [7) S-fy1Ao3B D"1/ȈX:&8ϟ<ޝquA__ޒ*eVա~d:NƩywVOW"we$V+,s'V;ǹpe1w;v̞HD#JAU"X_7&QŨ65M5Mӥ5M+tA@+OYDF2&`jiƦp6@I(OaLiѺ3Q" bLG@AUETMT(QCk71}" LƓ+BlhzLrTf1O~CS6ֵ=9D|U1y1XQdD$k۾Sgu]{t/>irS7ȮM^.^,=zj6ys4zO~ZEU@]o6jΓc&dg_e"eǓxp\TjR.?~O>yG={]eYOEadGDTV+DІʶBxQTGR^%nT]rϥF&3M?Sv 5rU (29&ǘgy2fIr7;PCJ,D-hwLw+{Q|wW;ܗKm(u !%]QVV:8 DKtm( OsߎQj`'P1&W(|cޥ>cf>课M >` Q3]*zݲ:dETE$‡ 1Esr`A,л5`0<@ ShquWoTUɸi朁2P"R7 1Ƙ,h4@ͫ [aȱ #!;@#B|rܵ]1tf$J!BjA40Ns5e:!F3"բj@jT&%$6;&hE2?Uԣj<?fٛOW۷wGQq䨮7A4M. ɷH1y"xiXon/'ӃGOl6;P1d!^]߼=?7TDP߼ysp_y(FٴmUUWO|eySo̭6'Fo_YPfE,6uU׫h'_ r蚯t2D?'2oFTڶ)͛|w飯jѷ_/zu{d\N&sܖ4Gٛomb˘{GgfI B`+r*n wHiU01E] "eYxt4W ;3@@&VQXԭC gz|"0@0ΉPtՌSUTNn&i߉-x)"l[dNJ! z>?=W:n) bϲ0#y. +] 5X4'߽%$d5AtLCxnv[mn쁶v };H43H"0E31Up6}%ARsD^F}GpWxApMJdXlU&`g9ƾOkU$gI5] Z痗U?Ycnv86D6M?-u,8e6[@@0!^*ȁaƠ8Z%z:#f[1FOPdBzQE05#f%bgPbJ$5h]}UUyMh\3BH1r}߿|n6!z^׿:>8݋Q8=>5)r\\,;OQẶj5L Fe?N_'||Zݻ?5_+j]_ruz|v/f3绾ެѿ/ߞM>fپs.Pyl..1UA3Gb9Ο~zuqurmgoڶ9=};}wʱeexxLU`x2UJ- 7:ƨδTƩu 12SEgn殕>cM9$ԟK;t"A7On׷K2JccސuZssҨ-=7$+]kJ;Co mt'$8O%vF[` "0uw$DE@U`H쓷Ӭ?k}AҁD UfHw|ht]tT9 1P0)(R905g΁c`N=-'V$QQр1:HrMcȐ^@$1,N)Yd AKrG:XP9$%au׌GPnpnVkZ *0#Fc۵0yoՂaU51aF)bIɐaXLD9B2{+Une FfQ()hH+6; &D}VKb'[We Cbp}s;[1˫"(mӆ]C(B;vNū󋦭2^zqYwp~4j0('{/_>W7Ǐ?xRKDD'Bg~kks_ |W/OjyWx7;kW8\ԎOUu]흲̖whѻ84uvD$ח/}{wb0˗gM,>CRGr8rڮo/_469Pߟ! sU1s!y궚Ljeh8.,YXD!ŸȋzxgϾ (zVQ :Qf=xI "Za1eUtuhDePR0=tSjfjB9v]U$ dc7CB0Ϝwh$vui˚N$we4Uo3'~?#W3DL9tbltpͭ-nCÈɇaqgZ NI>4l.AރvY'C;oi߷돺5@Hj=C|rTDԒ1$g윜#h ivʿ 3P瓒Q# ;l`Vl}&v#)dYǫ:%QfK4$,dUWAWۺȭA Tv6DGv9oԝy!núY?ĉɘy晐*sTM٤i0wn\F n6G$cS4F4$ ##$GX릉d*4,PG uD fHN șޓ1(eDD@ DE~ "$ȑ挌%#YyB>#!Yբs4,'_LG$;?lN˲oz=r~z~ӽjܚ9V뵈 &e.VMU5r{j~Ilr?Lv}ho_^Tp2ޚwOݽx%/B<~ v={R/֫V{ r~~w?nsW? hf$WH٣GN'_˲Ai|9'mM0g p:f>.6M i:Ɲq~}u+< ˼(hPx:hۘDg,/U(UeV`JU:<|2bфi$3##5%FʘV˹b"-(),!*ƔKɑȀ Hli }I`H]/bʮf5!dJ];M 1B9z",g8P NARu2G}.}ZQ4d\ Znxzd f798ӵ4 Þ"2$^5um @UKynbts ]? 7&-`c-DMeM>soT!FvlM} ^ `e&}?/w/@ I9R?\RG ^"bU'R y9,KtHp V\ IDAT]5 #tɿhU[kti֏ Ơb-p#Bcƚs tS"LfLTS^8T}FLDAgY>(:@F63Ml\V~ISWfNÂ`G=Α3wy髛;~:/q9؛n1QP]Jƃtm3Cݮzy[EUxjw57g?jeۗj`FΗ vvrzUHVU\Ǫ"#|nVތ=zndj, (rWW53Vdj~U(cfH m|HgUUR*CBtfE'E rL, 6m<H/!m,Dt{Slo. إX2bdp#v)Mzk:b^^0fnICOSɫQ L)Aw7H?z՞0Ժ8MUu`j~=`lrIM@DR(N$iL)91EQ$! 2CT ]{ ޮ?A&e Vߛ4SH4,(RU)WS6HW_*ft:a9c@؂+7 d]sD e֟@2$A5h,jBDi 0* tP҇I o7t1 ð(,WUTfL[Ѥw'pG/!֪:i*i46 aVf5!Y+%FE&@PcF&BB@%4 A,9Ȉ18L5u T0'$oEqL3r4؛!@lD -y FxZ-/74ZQh4|5_,iۦghj~wqs{ xWWϾ{!F&"sn4(C*WL?>__=%' A>gAz9_ip8mCU@gQІoVm!|_}Gxnc?d:W//_ B[xqm[>}Zh{{ouX]\_v9{?hbQQrX.wy>.<2Lʶ <:99$kf8[TP8( h LMYMbZey~vz6l8"Bm`eNXUE!3cSm^@Di 2L7%IS.r (f &~" nOWTEQ 65JidK,2y Fro_o!q W8!a( 9M!Zf:sZچm*lm;s-)}o'6k"0J‚R $$CV4~SY2I7I7{oX/IA޼B^vŒnnC BY@`u}0\szYpr~I,3@ o2@F~k|aU jTԆG0\]&b) 132b ┆* QX <̦bO"&c_)F"0"*9` "U8tt~uã{X(ЊɽE5ZgfN׭@"x}=yR}&u0{cbVw v" K"f`b2-F5bud#j 8 J )D vH !7M0fO>V)Ž _ 嫗U]ZA@h8~{~ݽQ9jB(Ggϟf8=J֒>sM#}4T_T,=}uO_~j!ԵGuqH YWyj ''A9 b˯t8ޚ4]yNOxb{qu޶2kEQelW}}_?g?=9EԛˌR`{v껋jH1jYU Vo^C[ 7*ղ{jM-b;1@@0ZE1^1e=dF08ϲۭH<isQ@T\j˱cUsoۘ"βijf膃+UTi645 1YC&lJ=DfbDhQa29 όԐb\=3; Idfmx!{nRsKE2Ҧ=R /??ޡvc1f}'2UM+&Cw1Tƒfx3`!FDLĀ,QTTQDXrxUDs)_M?]opΩZ pm.mz `Ron;,E&t BL`8}(= hC@Ow Q°TUB;dp @}:1rE)l jUp\FowyL}w "h`Y.qH g:n:xS(A oVԁkcD]s@Kcﯮo;~w8,3M*j1 b ✳UD&jFj(Q:gj6gNjzI{~E5c8Djd@qQu4C(3r5 !D#!Z{Y445$X7)!30PxdIYdyY9!>hb ǟ,wͯeLُ?-.fWׇ;Qqq}}qqnλݝwpo_~WyF?zFArzPH=ݮ]1//.ncsƦ|wPU% vl6VU|_sfAZgMhB4Qjr5o;w7WG~wH<0_ӰM}}GWgGr1_YTnoFE9ͯΟ_ݽ^|x2b}w: FŘq9ukyZL٠7cUnTY9鼑Xtr7_f΋4Gf u=+YDu|^8 8rmobCJIc23F9GHhX @29 @j@ 3K&fb[%{BM0$ӄpYUS-b71DY7aS6Mt*V]8 &X$+ J'-ԺڕkR4 Ⱥfdztj @E=oU și{BxR0 TEmAQ5NQH1,%V^NvX֝cnbb}朋R#RGY@Su>%D?UMD $Kyư\u1@j(Ϡ ewO/Z<&y@L" 3, Zu ki ;$J;;eS`F` h&e/ng.3.raQ^.>]WHytڊEU(Lrёt`2295P!3"# yD'1`CL8F#v%wPc!3 2P@}yFsADDLAɣ&ӝمش6U`r;|P};<Փzu||\u9,rvp8 D^]kCѪy9Qs8'_W&(Y =^.^Y.Ϝ?_yQ jOA65{?!4|qGY }=8>xNO` 30.|,g/4,"'>=b;y g;In/5G&y[e9*#C.ˠBs;ז߮UXLf>Eiw&uY_[! `@g!*  LNM1afqޫjBi(Y1:}u#!M: {VB'E$Fl;>UM &Ɣׁ]m3̌4)``&}͑`o`\S*_ȾͶaӌ asY:-b0 n(fX,")7%Uv#UD$ !)v&#)"v]?4M 4|U1'3IӀ:'P0ԚH/&1 H# oYҁg0Bܐ& ,I[r4ZUŌQLM 9$ !ZzGCUka'0wGƄq|Eb,ϼ G8L0d<,Gd\/f fYn!Ŵi%Z4Ct H P@ Md0%N6sL G"SP0210G-D d`&:FUET? (GHt<?~hJimVr8x52yӶ'^1ww˥.7z]Ga\lƫղ3ȑYY1V6!y6DtH<[Vdh^-WY:{ۋū2?[.UUݿwAU_<l誺booTz~4U g~}njjMK+@u]|t|]xM;7je#Z޼::߮n-L44UQY1$+艘T&w}9fd8DdVaM#s!(q4*U|YEEP1yBΛiY:ٓ/C,s5A@DdffclT>z%`dFiIHb`̱% Ftco)Hs7O3̏#%1L<=7N(][q=7U9q8fƤ@z/h:[mqaOC*KT鍔}!!7 ]O8!eN4u[obofR99f,*jTҁHtzD6v|ɽu~ޮO6R8@*5m>"/ϞJz| @4d{ 젍` &[G\z:6lB T1{XoK EryJTJtTѠaP P13$>@ ؠ uJ"jBPbϘ5izGNݹ&BD }w;0Rq;c0"E0VMEU0mփWDBАtkk8Y-%`j̀̀r[ Qs'LHLӐkYdT$|r>s9J DMUJe"!w(Z@#:ODw9#\8 bhuS+P9U}򓽭iw?чn1G`Y\_x9]5uմ㭃r=UG3V!݇E=.կ.O(T-[&y5bXN~_ bX a U>:>>~ӏ?e |d:9;{U]f96 Wߕq>槃aifhou.Ս0IM-ŌX l{<63Gh4Rжa]U1nYiPGaJPQ`P6miy ZʃG>Q T8fQ!&0C쮦6j.  "N^feɂkS"*X =;3@FTK1v)4L`5M nfwE;dСu»z+=rwQO@7!*1w@ $5@3#䍢:`ONϐt4z(m/CD1UQSuaf@ 91Tviw,b\D @5E~okOn޿!L cXW $F 0<6TI0 b]O.٠uV) Uc\iw40 `BYgb軉 #9mUVz6C3G;k@DQQNa,"{jlYnnB 1 QU5HHfhN86vP3`- }l[WQg1b2exn,A¢,5 1F,ݻȌI E0< ILkN$Ѐ(eTG-sv4ϣ 8"`1"'64"$'b̘9`]Wcz1]4u|NF9aFq??yOu{\~7G{{w?eQ5[xMӊmjOT ^U-}Z@Ѩxyv>3/?j.AEѰr#ϊVl-泜Cm E1[ܶm=ӟFO!|vv}1NyGտxruyϯ :&*f"2T3džovr8ry5N1Mp-b9V6$B4Ahj GUY2{U&oCF"\QE0J1BTJ1` 9=T!f@DnC1U2n@""z `@3 -u5_Ɠ&V+c /<99㻻4E8_-/y~s;>Y/w!3C= GÝnogtAmߣ\4Uiv5NG%6ӦY 6QYpv *돟 IDAT u"˯.>:[:eۆܻɫSv;zvwyy=;]%ϋG 8 4>8NoN N]@w|6ɨZ@T|D䳺87ٞݡHQ:P-fQTd0Z6M zgk b41!Wu 6H((9l[!y/w/P؜s/W;DKF*HL7*QN4BwuM5FRDRU"&bE40$U4U@5aHvf&@߂K鿊HfI H HT")&Q:#'`؉I7$8ʽ4^(ba@{uv! &^c7?ٿN6fD̊BЬzE ,",%$v2""]oiyӾ}7Xe?2Gb`Z:S%08a*<3QTCu="6zn㈓x2e8߁EQ@BiEUEE fcNIbb FD"ҝnUj5P.ֿÞޜR"`׵<ӗpc^ IɈhJ uV@HHj$. [еUSe>w;ڹjw4!45jADAU,}Z?"# 0y&s Q!` UУ1FڮaQ,":4.4riJS`B;3Arz4mStEԆ~_ >owkERw"gɓ/i2ON/GGrv@jʳ!"}<]|Qշ.뫢,y̲bhȃz{/[Gܤu!"+ GgO=hp]b^W;PG{zҶ{Gǣ>1|/'\\\mM˛'}=>wߌ[? >*ʽx{xg{߬^ǫ;?Ÿ(Gޭg/ *DȎ&bk:];^-y0('Q HDR]mlC`27M6OHA Se1dhjP[W!,+ c;- 2 i/C3VDDd %dl}4d7!hAvyhػ#"w8!9eYGLc .4`P`& 7|i.`oZ痖Y׽"ܺ3#HȰ9 9?Hv֟毣쵋R~[U1 @U3Y `@%Y*ii#{nwaNl-Bs#.@01@l^B\PME2C͘TLUM|1kRd`1_mâAc)D$""ÔqHPETQPCEˣkpӬ[kQТY*D⤼N#1DPVNQOHHIJc1zTh &ff sDlHbʄf7hH` FLeȡ)8"!zNO_}Wv@AQzt|,*x|g_~\v7ow__Nӗ/_>!-x 0tb0nK%EL9a\lMPU_j Atw.N޽?:9䓿tY6pk2xz^OWW'|1{b; 4ϼNwv^zRUO~ݯ\> csm3c[LgU^|w{z*Es;zYd`sye~Eg{`9!k:6rPѪjj}e9cD%!""v<H8<|I ΫQYv\wbg˼mWWuIɞ1l+FYHIU^{39V5D-3rtFGUm䜢1d}B9弜O-4ob 2],ݍJX1bp\/nqJQE ɳ9%"F ͽn'Q ֒MYh7fϲbq3f$0rB¡a7Jkm7D3 >IoѾ#v[_+Gupc4.td/ߺ2R[%Ԭ4w# K:;JA6ѶݱСC Gz{9?vϾB+Ф䦈Zڨ^ 3xQɕ-ڋ(0%e1C0A TZu\0G/{;9|koU:"zk9wySZB֩L0Z۶]y^Gm^kh -/ݤHd H% I",6]lonUYw׷>2&fr F@K ! ;d0w@CGمQ źr_52 ba)#;+#g+ D 1H,5nf4#,4T0GTZonnlWO܆0Z6/..z<ߜ_"x}kON^$9[,fy~q` PV }Gt_}Žf/}Ʉ;-{$ Ŝ`4+ySr?!Tѳ|ǯo}uu׋&t:ki7p8Wg/FÝ1rpz18|{`a{wg_[T_^Nflcܹ}w>;!H\߽.<ڞ/a<./ͽp 6ƃV)Cp6Ƹ7zj(%LUF1V9e m`4㍓7BB )Z yybxR$1I RX~¿+XaHܥ@-.Tw,3vx[R"fp5tNcsZVnpB V#vWGR#r X34$,`Bm{/Biw4 @p,;؇b5b)J3g&&tl @LMi;IՄf-ε9RpOwho=_7B$Ftw:^ JЬo%ʉ$Ft0ּMEyPUE*Qq}u4_{&h4A&q,Y9eQs6J1! S1Z>/q%vSn%4Ϻ|" KX(J`$gI"(V8@AnmZMenچas}"0m "Ad Pc0w%$ba`.fYZˋ120u0w5"*rc49,tG.f֪;pVlHa'A] bee5 LfVL^__?:~]a&<djo.tښ^]]sB&|m2b8{W9.:X .Lѭ흃C~M/ɓx>OFG; rUFõhnZ=ظ8|Wyq~#9|_W|%գ'=WQW/ph4Bln6ӣqh4ycsm;ӳr`o;̯ a1 l_>mDѐ*Ԯ& 3ef)!02kjj\"X9 %eS3r,PR6 {|td׊78kAAfk3i~^+k [杹-p_ IERq㉑9D"ޣq7ZGb7^VV%rpwE O @TQkHwItu3;!9 ]w]Z+z8KZt@X]$hS6F=WVsglLԈ͂H2۸;N毬oxV%ӞTHudpMB~Y& j؟=9c'.#pvUe#_,a~.(Le*ً4zmBlrN N nm HM "[C𞇺!⽔]oV!e%D{Y) 0@k3rnTZU^_R}HH3^]^@nAm(W7TxDDꨫ(( @*[Kќ%<;w-fvdPEiirP-"es̕6#gnϧWOzXW~q'7U~_ ^~B(հv_R˳p{8~3.FuMDS΁ ;{d}oz:&tCU&kNqy{cgߜIaX xc u ?ٿ3 | XN=8;7h>{?Z&XA?c6?ţgOGd3Z4Z$[jo*ݘ ّgO*Fmz\OO{$(8Σ6{H)p⬊::.hBp 1=zrmrN9)8Y/nݵ=ݭv6V17>oJܻ H #2@@ND‚Xr" D$\z,߅Kܜˀ~cj9]!D'A C(͌ ~؅8% гEem@С𭉵̋ßeoSDwws"".f%ߔ95$̹طͲ9gn[ۖG1J$džJ[EspD_pXVrb6 @1 % c\zVr&#Bݰx(]GeI XNds̮ X܈SV(A#Ek s`ɛ/f} 0ŝz@3+tJ@fb(PU@#U4oTf߼f4m筞/W߼:ZYroA$TB!6M&Zj ӐmMi= #9g  $fLB ajYպ `v@$fsBD+lu9z@ U""HZڼl_ǃӓOӽ_zQ΍9omY 9㗇o޻`<̛'r1>{4xbPˋKi U\xnmIF۷OQc<3|zҴKj8}zY}d4>Y͖eNmo1|eQ=z\d-j@r@UJs5˫ F=<;?ࣔuնK{?.H*tkwwc{w9}Eyv~?M$v< <3yXn|zsc++A]z8, 3@zvbhU D.۬-{U4CVd&|)bv;tKafJD'#Rb@*Y̋{J_YY]/sḾK  2a)ܞq`4 IDAT8r=owE /|"n#/@у[!pvZYF۷Z}y}A{+,/ToRRAwD7^}@UcD%!{LF2 ӻnwY /]+){?fq>v D3!zVMfeùI<#QZA1S@H;"(>A!`s,P*Jp5 a5>ū-A#w Wp3K`E2DfU5Yru{BUC@e>߻ ~k[n]YB}DAXD123! %Mzy!nm[nVYG˹6![BO"hge7Vu.Ł "}k\s&Fhn FIeedNȬe?/np劄L$Q\BUD34_019;X_M/ybA5zdk{gZ, U$FhQNjxrtttrr|~~<gb1փݽugR~Ea[2cA]_C=ͮcajؘ$;8˫Ikۣhz5G޽{?}ã7k'g/>!?Sų>9y\\,Ѹ^ۺ=_5g~<lڝ_\:ċgg1V,J+Jnɑ/.etp{mVWMvXٜd}j7Ĉ̢͵cnbn s$L9̪kkkmTkD6kZ3=="#VP@27LD HFMY~݈n^̒Uj%KJKf2$VW d{uKغv~:,/MCO%J:qD ,bPFrZE X. ѰD7p.Unڱ -)vS'b(/7! !r*_\c`s#$7&F)3*y ɠMw b M{;߻ݮ;ᯟz"~,SqB/p((]qZD-JuCUBaɻ- ;mS7uX~4쒭ArD}Js$ruDH\hDjLHZB|y ~ixg@P-o ;Wr95 D(R(XHH`0 arMr6J.0&tet(lѦ`FT  Ž0 *00*ac9 e՟ΉQ5uzIRpCC BT2-%mBQe NLAeuMvv~Jm\_d0X_&u3l7WQԁ0'? <|׏ Yh&"T!:t6KYn6PrXW[ᆄů//`5?!rh;Lgxmk6?w7Wx4&;۷F/~m?Y]@<ӟOUɗ~{_͟@t8'jP|U>_{]^Y_ۺGn~u|uO̴qw{k Tt}c3<}+5!ցzmsykl(2 NN`PqNiy;H6eUl1e6mdlb6#651wk%KWo?˗n8EVeAz2xm>kao{BJs'p!i] 3L[#xsvmŋաMD1%<c:Ρ̊FߞnԷ0i\8jD"vk ^)p]5;FzD@ZxPko}.N]DL{2BIF"3 L2tн ډDiSB,z)wֿL~j><;M$0f4A]:y%!;S`D L肘U /ZeE@} p: ԁ@Bp 弜NB ъܰ̄ypԚSN)j%Vۖx~][1^{g4yw3pFEXPB F`H Q5ݵ n|[XsV]sr 0%B7DF,ktA6"D@92B`TW7:$`,6(UBA"slڴXfPS^j9y}m|j*KF58ћï~́q0xX-tz~H<;M6fd kPUL5B3=jW!O^?Bl);:ҪmV޹3/'?ݻO&'Oh.>{Iwݹ߻s}&^._z, +\=AԔTǃQ1eߛg*"43l%Qɴ7yOFfS <[1Tж@No=2Q+GQZWbq#̥(Sۦ=!.oT5.;j hyO/?nZ-OED*FD/"D %9r@ы;kÝzZjV@n喢 cM *;jB`5+ ɳ:RPEd EKyWXB(D%:!sVFA ]Z`iUqXA m)iU rzxvAFAUm;gvoZt9S&!.W͢my,Sb5}&l*!:bvqptr @%=?ax%*AULVKA߲3@'>d@TL`X&%I`kќ$F-El*D:eu @w`Yrk1&:H.cKӁӀIM(hV!p0成43jj&Мu:;ӟ>h8j`VЫR )2`tѤ*d(f(dM,[Dl6#Vʈlf*nD&" ;8 Z2w(*BTrٶ;{ʉx6_̯q<\67_ŚRK9tqmoB<]&3_d`M˜Ҫ@_&M$(AVN'jP v67w6ɣͭG.\\&;gmZU1.O{wfj ?'Ԧdͳۛ{kk?;zs6A'lnӓu"kw>X0ƊglkRݻoN6nַɭbyox}%o>G맯BVNi9zVZͰޮU1z0hlgm$u`BZ m)K!|)Wpz~D:j6+y)G/\nlzW9 [i&;.gTio~ J~R)->nnC23b6"H NA(i#@bt *cfA8$P ̧] u|uQ7º0"-[y:^] "Y ,m&e,;~)߻4@[dQoރEHm܅ &@4#b7!$3Cs#fsu-eBls~ޭw;_b2㯞=II/_&au#ZAUMsVU5c7HB1RɷQ;iR4@h(RTa{9]wntr0‍ch^`nn% wwP:=_7 zwnHk/af#ɘ t(R}LIM0Wsգ,9t&«tCZzru7! DE| LcP>R2LK@ӌHޔ#s$ @v$Qf .Ap6cAMhkc޿s|rli߿w~ݬnm&߿RQPwuGY-:v$3=AVIivS U ɗ4:8?} OF֣G_#3ݻsoXG;{O=-Ǔx4 !SGn?}h>?ѧ>?9{6:jjO~wOfYί~oSp'ソ^|;[><ޏ8 ,VՋ/9֯^֣LMv4ՁSJuUA&ϩ U͂tkk=L srsfD7DQP[gpu+{13*6mq-9@ 0Z*'KQ"+ܼD憄es &u,UC*!HLzڴ+z{'g|{GN0*FĤt]`.B*Grxзw[?v /eděR>있# ].j{a3QVJ)v>*)Z6 VQ$in=Aw8ޭjӾw]&¿~Ȑ{o$r ~^N"Ԧpow,W߼zr8m#Opprվxi///ζ6>?gOLb>xګgݿ{XLIw;9><<:vWy5:~(x6:غ}rzXCd T v qcWM6:B^ jY%@h[3KnjIYbJJmp}(M´Z.5'&@2w*fPW0ULfD$Lf Q>Q QۀX{@dBU'b@ވPbuʰBu0>;@롩 C(BAEx9~GwWhkWOfrRdl΄F8Ll8fM`+2bB"f,Qu%R3s` EOк%# )8j,rq9R4K8j:ޜ =W!f#iT:xR?<|I!RRpM5+`"u h*hS 1jRًj6󺮂P6˫p0CG?}[_}'" B4r,/sjbyIrru{ѣ?Oփlm쵋z_?z{O~Ǐ 'o~/y4m_>t(qWm̷>iFAƣIΪpcQ]EUX ,WͨN(+1;dmlgk2RML,x8_^ Q7gӜ]5ՐQڽ3;9PE3Ż0wN`}Fငl`}&y#WR ѼUwΔr ,L$l`N`f \0>BKGoОe3%Bo)ܡyZm_<P+B"*UX%}^mR+n!6ۄ = gr4JQĀ 3(UU(!씖'""`L+Cֻ]o ޿c;EG_1g57 12sIrs2#dPڽ&A E[pRK}E,ԩ9G7~ff z>ٽ ݺw5CAL}s"\=[?ێ\ׯ+="[787.XWB f,' LDBˋNooo)eADRV-斬NȀD *A=nR9!@6f0M Sk*dŜ!) Ya4+Z +fjfăȮژ5AŁTiE8G`H& IDATiS&@( 8xTWQqPW9*|*gCtU>ŏ_ˎ:ZQ(nR$Sd,{g~{33,S EIލ-q"H394%A4QU/_^/ K2w2w5 Y7?s,_4i3jXbY3r\q(!Mj˜<j=v3izEW xbvJ'+UXEĒs!#G;omƛ\E7#;+Hqij~͎h2PO6f;p!0R `e!1-qL4 ISsY Ԭ֤Ykgpټ@N,/\ ?-C. sbg0bՔ8"o]A򪫪YyZ_ZDōH+M#D6yvT,4(bS6z{ޑ;ÙQ7͟o ,v#3e; !F"ԽnT(S(e=/իAb1;xi+>M R1Rᦦa$6`r&cRa(.Z j⑆.nc'㫧t:zXB -˴r)\ +sO{W? 1WnH9mdxP657lA:Js1Hc귀EF(6H)`,,."i# ^{b[bO".dˋ,ON|N̥eg90,E!M1S"o/lWl2͗{ﷳo^RJa?㶙$^___`w+]]ݞ{ѣG_/>{ڹ`@=ˣ> WWgoz'ͧYL7Ykfs͗ac|xPu OUKú=`޽7 `GPKo!fiS꺞Ig<0rJ)LVI F0-]3EUoos.P5 $2/WGGfș x!0VU.EVJ;܍ওmzVenv ,E7QD$md_0&KF!vsIjIZJ;kՕOz^k)6"7oo}8],?;wbpp}xjYΖ\u,b1k\=\޽֢<}w<IOg>r9'VrMӈbѨlޚ3f)σf!]6:XtZRеA$jD"J)r.hXEj#̵ӑ 9`2Q5o|jۙ^Wa );j3kRRS18Yj Ka_=8scݶO /Nj5mp[#ƪDD^gt18k\3M>2scI(Fh;oi!݇DL0bkLTM>khiRSj]Ȑjܲ:I{xrfׯ1C!///>gQBYudhVf<mQa 5 jBc{UH b1G`MouzbX-"v" %#cMݫqONHF>C 8i?UH/m|,0ݏr;߉ÈSe'(qY"%c B #2S%.nJ]ͥ ,RR͝M^56Cw^b:' \T#BT09Yh`nNbgHFPHB⡚C1zՍ!PJu'uf6&5 +m1ꮑJdoR@`kb`t(EdĹXɚK)jÐkp `f9}չ.kظS6qu{ͽ_];\=|V,bjGY]_\^}x}q9{o=?@(yWOOϟ=^e٦?jg$Ons=~;Ο|6_|~R򍑦vN,Wo.{sXΟ>z88-ymټLK\wcK Ik(éiu|RIXcwCg"qO D5faREղ)"jZHA)a100 1$C(fE9yH;^Jl߯wM#w@7yeӢEn ݰ2ճ˺hZJ9kQ,Y, gVdC/nHCy3"ߋQ⿱2dbL"]^^|ɿWȈ>6pXvs޸ͧ׏̓ޛ/氫b`fɖ1_q7 ׫Itzyu?:ymy@EQ)|6!ܛ+7MJZ~P4Juib`du͐UM?n6m7ɽ׳[Y7H$$-n3,g_w!HT޴]9IC׸MxR;Hn0?\3K@N\X $p1qNy9k@4~e~aۙig) u20 4h紬D+6'k0 ф=kV 1{l?+RoP"|D0vo qpw (VuX'|pZ2(mv6JbF̬m{[V:H(ypbd1JQHڐ:l덈3Vfb`uˣ}ww{;=qS; B443'bs_ND0ʻvL `z+MyuFĢf@9C01D"69µȝP Ӑ5/'/ovZi_3L/2w 0/>k(b#ace~uPleb0Mq§\ˆ#Z;-Q`^'vb)ƐBn(| v "sI j 1 pVApKBTn6h jXk+ <:&<(j Ŏ<>st'#gI$0R3IB N)0qRkW-F;9bvpvs9ss{/8e%Z#vs0t:&"YL$">dC)j I` }ԉRqe%33FˈH%ۚM 1a7& {pN!}0d3%g5`Z)6'wpZ066b/po_bLMoZpS|u77}o~g{7_ۖ㻟󻧯~;]w7nܹs`q}}_?=yzݻ2-O~qY>|=z#Bw|W^:S߭Wgͷ7ȸWc=\o񫧧Oyq`i[vf43/2_ 5viJ2 B]i(,!H@YX3GIeDo>!K6b^YmI\6&b+aD'' !HVoO_Č,&Y1ĪJ&"Th]^b+r%0:Nݦ ̴~*Ĭ*j{4>)G-,QSkMtG^B08D&urXswH W%|2G.,Vg}^A GS Y&0EB Lj4g/re] ܾk֮pm0$0ĕ'Ԫudik/YMx]b:3Q/d0D:c^#vJiüvENGb"QUf*[t@]EhY53M$5}{^~5Ի*Ik}3%" OXs r{ziv laF1AhU PԐq;O?K@< *K 1KDΪm$ X DjZJfbg ̍ۜи3;TU0FZ˫J#6]p=v;;b-81A$& LR]Q#aa"S<4S jAקG{8n[LU*aQM؈!d$Sփ('dg߯Y+ @<onR3IpZ@jʌ%fy[ACzm^/feAԻa;hf Y@~aHCN*4 nof0mf}PNo.W_op/eXm~񝻯9_]_Pz7nnvu >]{ |rqi~?ɗlO%޾ze氾~6#}wެ]0y7ξ}h+˲mH?}OV~u}u\a;a<gj. +mh| ެsWx^1N,Bm"R_Mӄ$O>ubi2̊;x9R ;Ĝ];~.A~TFu̎%4)E" #In:ثD-^ ĵOW{GQRWtLf;!pJq|6$ؒ}/#~G IDATT0hrVXvutuM;8)Dc!a`ڌ2"°bB!P$YUb̃Ȑ5RE}63}~Jc?@:Y!< K?9^u}A9tcB!\"1:\9O zydw3Īy(ۙ*J ;(=1a!!ເ28nΞP>v  Z:qS30GMIU*Txr8r&4BB1 b (LDj rK:l$a^QnX?:L,UVW?YQ/8< @Ɖ;y fi&Mc*r1Uh*jDYE,i1B[kuV  QW^nܶBfڀ~{"QJ9 d4wzmO>dzbb67h!aK!;3)H^ ذ=Xͣ{Ֆm7ݶs!4L?%jꫯO=Y.6жW_}:ɼ?xoG|DVO~y;o/mͦ?:y{o^W۽gHnP㰾vEe"\1Ƀw.=nW?lY}Rn3]m1nnofH]^_Y B)@!ؖbLC(!w޿xzr5cfQX,ݶssqt̕]%uWp`HqUa4ҾZMU9LS9 PU¬A@LbM#2Y01ڱVInvA"#|zDbaE?#ϫ&\rA] &!W95Ux)P0QDI4Ԭ!b斉e7UHZ汶Abʪ!rLFp˹8(A^b:yݗn/ox3K @д8JBL,kV}z<݈XBڶƮ/B2$IU}؂P;G6f tkL+ش!ݝ, QVS )Ep6cBFV=r,F<3G%bC~j%*@w<ǃ2DV\;N^}19B٭a4c DD,"yLNd= 6%2߲ӲV)`֤Οmt:\ݴ!E T4 91I%w3saSg v?(c2 b}ΥhYV˽K7 ]&R՞$Fb)1Yoyn7[+XR13X`ղi%nFL .!%bhȂZOmj`rwxK53]ݔg(~s9g5@g8?}B_88{rۮl\_<}6__\\x{O>t^֫ڣŬ8z{{Ō˳WN~z<,]oIi I?V^+ܙ IbuGwN]^>],xv|sa.Ţi7Z|oֶjN), 3[,nfaҦmaB4a(iH.Ywt|zqQY)ͱϷݖ ũ%E2ws(u&d5awÙkވd4 )k1qE`$Nz~s`ȴhC8$v\ Dk *a_YZ=LVzvs8x\ߡm`wkm 1/uGQMs."@{0H/#]9jfD#bz\H phmNԉ%fF].#1ȐmP8hN^{ Κ?U @뱺EjQi[p/@:!Ur8уfV-B C~j^C||@)hT ]1\(S/D8LB8813BPcUk R@:kZTQm#q0>zTuБ5}4tmV3 tR  7!( xFMT2#XvpggY[o( D9a1{V-A`.͎h̪RܮWK?~Wtywg>fpxr:EiyGO0cӯ W_}B1rln]J2`M !&-+i8.ڶl&43isnMnz,R_eۍ#dc3yb9k3j1]͊a &uL`̼:5U0Pu5k)~VԴe)B\kV͖GwLVna`'+[Z,LNZ/O9\ f hŠT,NصJ%j'Ta$LjaR7!;D pf'5`7d33_e߸Yw-2ljzCU)ub82uFFC XZ~W qPR OAIf1{e&Lܘ"*fER8$$BFH]:38yLqEJA)T?"30@/@ϫ|.5SFAaK33z0{Z` f*[_^{t>'Af]=5sG"y1rc(bCg@/BD(+ްgf*,B ي$ /8͂4yua0y hyɗ6i I ]_SUBB2<0Q0P "|M Om\gm\m֋\~`ǏMH6iȹm-tzL~yȎvk_}+᧊`1wzv^ϖG$^_ G`:9<웯7N^d{?8>:/?.oo~'Ϯκ]|3o¢Iӿz+>믟|˒Pŧm/ngG_U׫W7Y9;=mmoy~hЕ:*ӻ[ɋr. C!٬j6kBDBF)QAVPDLlf5A>P REQ%rbrWLTCiǵ{JD%hݽ2q"5n\wM[)rFFśD@V1  <[v7,qG10H|"v&"HVBF\#s>y}ywl\U=kj#Vnbk2[ /v$e^]$ar۴wG7:fsMRDֵ{|=$r.nf}p 65%gPԢa%;;8C^j. ɘLݽfcU1ՅMc,f'^ySyuw0{ QQAơ8t'TR+} zAԷ@nc -`G[X\DFM6U q%Ad#FC @d&3gOnuJDS0j݄K.;31w6T By2$8 TM&\YMAWށӚ¼\_gϙ)yHM$pf/ٜ̔+\<ArP7ޮer9lTnvxTS N~̭yq3nҴg7k#v{"&ZQ,vSl44i<4{ *, K,{Ι@QmRXGmke ψȌ=[Vxxl:$U9ab,Mz0.߼}I3M,'9Ckubr<,yz:pw|gѺ 3={S9.\?|ˈiО6>gӯ?{_?S~,N<=}9= ;7ۉ*iwX^/_u)PMR&ba )W5|ѧ>V6lViRhqIu{|qg vvs1儬!HJcw)3K}V1LVs3C(K2B0us7)E0l#03(dE6**l|%| @#B$BtdQi\B '76΃IH9|X*ilfEAe4,:BBP b3+ՐtToG0S.Ѧ V$683!:"3QF䄦nuZ1/O@t"WMouP߭ww~,7'g@}N7 af3ߕ>Y2pGzr-*Ae ޮ|3LARNr $5g(NJ (D^Gw@JDr$T`Yk65D  `)[pF`:LdJäRd|@}8Ƈ nNAPHlXTPP\Mti;u\0LiI4fb]YԺ ;p Nm7"w#ws>y " _}Ͽo곍9i#Q;퀲xz1$!K 39."7 5bVM]_.v128B a62k4ד*_n-S=߻9铓`Œ^N'MGϠ6bF̖ܽ߬m>~ Qܽlуzqf~m"l2gZ ׯQQHYNq֍/.] |4?39Uf'IW?3("݄֓<ݙ~t/~|DG_NwŋO}iu^\~x|cz}^}yz$˾O t>g3ŝ^mo߾I4\\\N'iw拓ŪVO*pwyFj2ַ{Xc"ꚾ.531 z 0zሺ!2 <E4y&"h\_Q/ Ɗ1Ff?˔ݭYX^Y X6M/Kww*fD3r x#u[4- Ȇ<:M}] M]$Dr7s""FtcB3@ * 4K%FF$e#ap@sv$!&))dN7-V7~dۮwvRTAC A8շMw_XmnIuo..rӮY!dx?9W{M?[\ a4/OO+ 5^,G?l7?8~In޸q{zغˬ.q!M'Vꃃv{<_߸q5zvuU]=}lqp/΍ǿN)O/_xΆ ڸPMQӯ\jbf%89p hRrj]ob=ԶkX5$$LӶmU1WLc|Z_/hJvPGL ȴGH*y4+BZC(lc4Gq@KtHEQED3 nH8F a7pͶp`]2RT~X<0ġ]0A6ژaFsfh6GR" #щ ӍTw5b@1/.yqҹuDB.CK)#Arp`V~0zy{7lBi#f< NE pp&~+uyjoᡁ<<b{r"@)0wrh{ Lz*H1032{ 1"T-Dz19^\8" ؽ.\*Y.Y{rm4 IDATr"&f$QGJSׯ?_O/.Vir=B" %USɘ`ZB)vffcH93Z;80RzOyZG5sF|^}[UYJ:-Yʙ>^m@(Db&to ;;Ggno:nm.!Vռ5z[-n[.sz?6t2yɤ&|u|Ç''׮<l6Ixq}Y7{Gv L&:wYn5/f[3:H}jfEY8_o4wIc x^0 2a/˔:qwk7JfBv@$MgE`L DC>41K_5#40b}7 lay"&"j:L)6<+BY)'~p^=PpFXAo#Mhh . 0+A-a0"6d1o% S=dT6LQL$Z@D=0jI- ߻]]W.:ov8N-'?1Hr(a@9ŷeVcD12^;]!NTt!\9%`=JS_U Pc՛Ϥډ|rCsx-'S@`f !Uuy-\!*`2 T* 0 Bs#-r 3&И5; !GHf!Dp [6$Y`\[.&6d2Igݙܺsݣ9-Znm"!3"!i$T8 k 1@މg;֬@ 'u6z~1K)x`!JUTEwL>u膚#e:NTЁ=e$\BjmTUz1;X|98%FռXΧtѬW;sج o?ۤpbk׮7mͦsK_^iٮϞoϿAۈty;;Y[sU[_?g{{O}2'fI׵"U=Mכ|rpq~.}ӿkەa1d6_wOZڶ7to Գz2hz!vJ A:痡B5;rVwݴٮi:P!lC #"f6}Sf*>+A(8-6#@h4"R8Jjv9Jqn;kƺ"3 mQ&B4[@jeO=6Ҁ<|34ȶI!ХCC&SyW  g`$1cMp+L 8hA\ MH1K2K] B8&A"!pBj׎?׻nwo-|¿g?9e @Ô^Ckr MĆf9)Wh#ӯxXYZ @0֤) ,pE  ɤܧT #a3 DDT`sUj4 UCqu6P`HߔQP<4 c"PHl@N1h1' 㢮Y#n=lib u)09! !ȼ[3;\, Fi p@{@p}V=WL!i T, 'wIis6z5M4\I'!k Rdp||wٺr؀6 `aob-[uU*5m~RWZN.`oXW? mbi$l6H\7]i7Biiז^ |9o~8:>}CjjjZŨw8LΓO֭{g?싟]]|qpq\;Ӻ޶__ ܸ~_|6fspxصmQc0nv̏|>鏂Tٴv&]%TE9_{]a:_mn}i R p"'B0_']׸[ɓo0G$-"]yp!Ȏ6"]w &oӛ28q0x 2ș"8<(`B+>xSX _'7^Q| lx[+2xX *`E(]>q,+bh8K݈ LK3tF wFa)YZfF3Ȇ13SV& !.&? GH ;qLLFʀ ޠ2(=.9ŲΑivqA' #}] AxA]G`:MJ(8@L Y88_>mG?넾MWW8{}@_|C7;Ulܻ}(D;8|dp <ًG}[!o9H8/w{A(wb6u9?^cQ,oSNLr6}'iXoشj`glk"=v(\Ռ DQuoSߙVы1"6}ީГaiYѰ B t9he eWl֠4 m,#O+IBNZx8*m ╝_T%l/|RmK~"m-;l*ܡlMXތio^̮9X|?jq2 (}ѹ!hp]:JqJ #!Ё܄s$fv9*0$! *& dvo}`>ޭ7?>#~@~7hx` #s ԷRHpȦ$a/ȯdOrk@m3J3@aQU! ǏLjwnfBB@FGg*tp4d@"l@:)ct0&"'UfËF։ BF30@ "Qd@"2Ybɟo/~aVO,J2ۗll:htBYK3GJSpY$45lϐrv/\pTSVs*yܧT1Gfٳ"tR5R֎K7PwC\3N&!fS?y2TUZ/SݝdUXW]𛯻v {`py~q^IN|26}j7Lۦ Il٬W/_,!]|8y` 1mSOr M~6RwNmꚄW_>y?yr|;;TGׅ>$vܙJ8Eph^_=~k_rnm;7=::tUS t {;ժZaIͦ;3 HF!V ǷWOF9Ry&G䕕֚Bv_zOj 8t6Ws8̈u%8(ɏJ" I~0q좍A 6<9B6WxiTvXOR-}f.,FE1 ujѱ7P8L -A;88}G UP@]QVUODB=Ws@HmHLn{~7X@U*hVo;0/Gi2Bo&{kbvSf{KȉhsnO̠m?kwA:pR13n(CJUH .^Tw1,D\sFwHP [z_*WۈB6xߘ^"@ `0)7p C9!$wA&@L߼>EOjwxyFI\USD0gV{wnIן+9ǐ:#zFjA3("dDp&UWD,(-KoG2Ϊ*"nrnm8y:u2ɨw^E>{ q׷ds5.^nQ~` aLwclh3&ԙ޽}uߧ*[>Ǐ{=*V77cҕN%Ϧrʕ^LnTr=횗Mմje~MKڤ.'MCrot> U@U]*2ql![vlW%*{~/ nD@\3C20@nZ [S(ww ,ʢB#֕bM7Tl_8݋/ B1 "Ɂ e$ X:83€͆5rN T$Xy+UA}(Rň;hR8ypOb% agKMHJ̒@tuG"AwbT37B2K o|e{ޭg}_k Ï)kMo0V´VKBUi=}=5gKi0s\~Jճ8;LA5r*n a ț\݁jH92Qݬ AƒNHQ8 ^4@C@/& P!1ˤa!}nM1 Wa, ^TS)DHDXD$&SHjХ4bxmͺkQhjQǘU'bӝcù)*: ybZv"FpR1;̧^TrN# 82#*KK=i B! 4M&i6MmךNcBul6%F۶S C }ɲx ?P3l6[DbZ]䬷o])7o/*拋cu>i<6g'k3pws uf۶g/_9ZLv%NھQkۋfn8]ߺyosn^O^G_=ET׳Ğ=Ҫo6'Ϟ׋v{\Ϊ^=[\Omz*;oPM;׾'{jڬ> )[r;-TȚfXO&"!BgDB@R#P0]6ϷmȀ@H zoѹx!}p+JQTB?Wph58@a(2ĺ|XA,C5 }a{Âm(LTZg>4Ӱ +ODԡp#9n8&JCisS)gdJd8(i>;8Qxf88pj%K t˚ B%a%2^WtD,HVOمL8\[4}Cm "#i-B.epI4tK(_f) =D2Y"hmKPnV^S:'3CdaxZҀ  Kre M]B$l[-ʉMgdZUYn݂yu]o7F"zLN (p*y8D`s ='bL(P!BA 2kTM[y>f=8P<6~o1D7fP(Y.)L(: A'3ume h( l%XVsWpr@H9V*I2GDP X*B&Db7k6pAfM%Nf90!3OyN@֜/V QdzƫӗM}r>\_f'Ox4Ge=TN'ۮTp]iڭr:kn|[ϙC`Ύb4DnOf&n~pӓg[]Wn<ۿã;۳G}{q'e錪r${w6Ozl2tm!P5L7mZܶy1 y8}skU6E9eW59bg/=3 thqɳ3x½y`G0X|B*LR \K$bq\v +ȱ0C`r$"tCTo!Pb 8C0,#@Xa XK8QQܛ(6zu`b Q HV)L[^=FEP -&r LAMxyyd+#:Fd sj`JEDȎlbʙB^D%:sc0A8 PKɴgdHv9P4TvլwmRnz,W'/K5oVi]mXt]7fq7gkڵBi} ATj1/˦M]HzOv0ٍOn|~q/ܺM4}|g_>uu)[n<&{~X i7u&k9o9zV-wn!rfjO~ִ01T(!޲n69kUեXޒA6XSڮCu0| Y?GY%꒲eŊ]{+|W` qޖ IDATǃK0(7gHCQ3䄁qƁߝ"@1sj CA1YKW*Ƅ4>fjμy@8X H^="נ]|E+9>r`GdD8≽!"!`">ES& ]UZWUrD,gKN|G:t~=?ĿvA0?}HV4&T ʰ~8;\Ճ;;$}뗯UA0&uhCɬ@@?FKq eAUݲ={ P)/s9jN}/DttUy0ϪjRr(LjAǘL?Js|OJW J.FZ@ !zY$sUը3 a3!@7PP 1 LkTK3# PzGjS] gG0ؽ 89sakNoF7ģOA%B %7÷t.&ݍJ,s8?"JS D eœŋr){V҈H"9z) !"st^HঈG~{w oeP^oRׯ{;wm rgN @@Pױb6G=QQ"q ̕YNhJGw@P* A!BJrAtEh$Ŭ B=]mrʖ3Q*Drotppppp)fo /i0o[7wˀQJM7M[ ܠQWnXšR/!) C@.@dr d.b $vL$7ӺF$D7*=Q(^lsA jl ]+t~3Lg/^J)d$vh (Dn.ALD] b&3cmAUP(>2 1!`<׫dlz5$FĜ5(Η9ܷN޼w0;V]ѽ\_;g\m7Cӵj}>z:OYH&׮߽v޽.垄)toyɋ0}H*unY?Է o{tugm<ܫI=߭'_*mO5/ϦeGբ)lRE@,,jۖd9='LRDdkn>'YA̝ M 8WBgɑ ʨٝHċP%77լ r]\L:|Y;?|}~{o$qe{{/"2rZQBa'M6nq5f0?X_GZjgzzEK3-^}Y6Ԣ(Ȉ=Vi'r0~3.a."cN5~ ƱD9*b!JlYX5sgww5-O'gw@X=B-UE{gzsea6OOEػ~O^޻~ɲK֭av}ڻᢿ$[,ϟ ވ\BX~wqqi}2iJ5C Y侽dNC }NĘ OF 3{jW_vw>x! NN(3Hxd53;:Q,DMYL$je%o}@au~ެ?+33o) 2~l-"QTqP&jB`g %LY ȥ`)g2 *Wh|@*1#> Lch pba 93QJ'W3EJNuS_.nNLܗi03 ssau-[$ȡ r9 e@ q ezYژC՗lTQqքUw{VSB uHȦCNZj[.tZ5Fc;Ǧ`GB }lJwʊE]^9qH Nwrq٧D$Ca207FYBV*\dB^GBl(#I>zfPU6DM\Di-10)1[NS*ŵfkkv7wvt'ϟ\\^uoqm/mL|m2*/Ӎgb'Ϟ?z=?.ƝvT_Wu~x~rάQ\\,˦z:ag'/x8YڢlM3v.<7ɦufi -$Ť&%E70N*YRNgf].et˞0IbBmH^ۿ{#sBj8DShV2вzX。YFDTxՖZK%V9&*U-%^SIќXpb;@ش܉|56򕟗ŜF-anjq}4BVҨydn׭E-Z Ùq|ZB9aɚy]fLjf`1w" LcH լ0*iNj{Sw ܥAD10l}1H#vQOfYo?_U!^ !p2LM91;j&SÔ̻g@ɝ$WR@FĘ`J<)ՔPC I` )b %\B,X]mA5@v)3vw6IDft1|'fȍ=k82<ȍԃp 5S[⬛} ci4uh_Z.c5`CD=̈́f 's:<0$ -\E?|isʩ+¦˅RrV@Cud Dʼn7F/)Pe%6*FwBNd$iv9@"w U9k%H@(Pl\q8Y?t$r,Uj'',9={Oz/.߹/͛CaY[||V쮯?z|T\Teg'{\l6SӋew^M666ˋeOqrr{PcM̈́s<|Ύ~?x/k͍jٝy?޺~y=|vrq,`řixu|4V!+u%=i&Xb\d] fS˖STuWUII  njU f-V͹D"&g@1bOTXƨxT%([؍T!1 neJk 0f*#|d\F[Q؝8^K̜Wf^Ҍt%.4OUWWWẍbA#.r̻@DD+#X,bcs03 ؀Ȃ\`J{6r|]HbD%;#gK)X+V =0/o֛X,g\=+cs#048M͞ dct"c8ϹPΆ5 1+@ bҜu}ÇL,>JgbMyUYL2 a焪S)F4yD͜Yf:)pufaHnsDNNOo\IܝAT* C ,07%,rrv "Hi%'"05vvëU5JvIΙgl!SxX.lIJRJfV2,J*,B313/SxzTqoQW5QT$nllzz$A1dR)+!98p RDaC]!=X_bv.r+WJp<FO@H. r.VA5وԈ%jF"wE8iRWbc><8LbalA\MsUg͚!|tzfAs"UE}9ֳdZwnpl1]AņpN^C6aCfkR_wQak뵭w>s|3y軭͝-xّpaiYO*?>T!5ǵ]GwZ/parw*vT`Aܭ$1ӕM@Mݨ[6-U 0 '5@I¬j%걊"l  o֛Yױoy:/L =򷝛D9 l6nјj+wqN IDAT2R"] ̳fmsNgEUE?V=:$5\9$ w\v$Ҥ!UJ@M&y1WsXUư*̆ԫ2%Q(&'wjnj<4⌫*A־EǮ|qĻXfdEZA5JP&CUMzsZ S0Z01"uϏQk͸Kf s"802U)jLcwݝt{gQ3T)j%"69I] 7"uh&1XYKZ|v;3Făz PMK¥M2#;U]*. f D\mܾbqԶdqmcnyȓIszrr|tbu W\,6ֿl6[˯>ysZSl'_,\EN&9ubyxtrmm2=Xѐu/߻vj֤欷܏M֭v_΄d?5jT/R>~{&^[of;;s]۾eܹUOyy軇!'w,6lnˡ*gFc5,2#İ\il5' ,AUb83ٕ`Ǫ 3XluVS3Hyg|?yÊB9q02W@2&kCz]WEWwb*4Gz$; wZW\ ,,ME:a\2VBòӺ;L2-ݙ>iDՕ`; m&rfIY [风nVاr`.KCNpIa2:4+~fYYx~__~5s.p942TxRaUcf51ql$rNvmi| |hiLVT,6zfA2xcw"g)XrL'0lݚ֛_k ,l\ X0T@03 眉8ƶOLu! GL,gIUyN 5k>ڜFgN8 /ۡ`z;rfDLB(btPE0xg>r·g/㬞Q>WPIFyVVsXמ?6Y?-+:UuP6JvPvKe잕Aƴk\UUGu<ýE`ׯMCKQ8J0ӫW#2<0=ƍ͝9wgl#X_&)@j&s8;>^v! oZ.ݝwzDvsc&Ϛ|y9f!llv/s__{ob1U׮moo_~ogs83/v_\[[g'׶׿o9./Oի]oLv1L=TM=\oiGf>PlgsEMղev6%N+UR*V4DYBUm^j'Cʪ(f f-aZ|RJN7( *x%zPsr 9m,|tFބ44"@Ǻ1\ \|aÅJ߂Iˉ3Aޕm%G h(؅[edG>Xp$x.^bu"ǭd"22%('JcYB^{ͳfWsq܁PUЋԓ-jr%n0'QTG{WؽY~cN课B p1sbhTEf/S4f ABbvS)mN)OUYᎅ".~  w+7';KSN'Y܅iLg!a˅r .39 {!cSB Cs9KȪJs+6wOise#WUR̀8 'a1PCec࢙L]H!:qjp |237Sefo$F^l}vIj`"bM3MEA-2aE;ZVD,W%ٜYHU$2 A@L$7nVr6b7e&˙pYC^C(%0O餉`rQM).*fM:wpULܿRonUU<>yE Wdz<ɓ[7o&Oٜ1_X\\ۿ7ndC<}M=~蛾=[kdg{rOݷz_/r}swo06>ɷ}6uuv|^< ly;|&1nlھAL'LSn&M]W`8,TU?ݝ[Lj4rvvJe_UvKFx6-ŇUb } &p\]K0x7䵚mpX`H@aݘF1(P{ 4 HDAc̣wCC"]8G'GHK9;S(D (]k Iμ .;U(7%5+L!h+@)s~q`q2Qry ⢐qcŪnAFq3~E"D&R 0 PSŜr0oxL.#H#Qݤ4KHN=] fj}J C5%aaH"Am5ɽ{,wꊒs W~B%:D*k 7 mų񤶬}N*ri㝓jA\ NP/c[@|XJd`s2l]-P[{cT0`^c|ꉻy5./."$!`4 $%HI+ 3) ,lqvyygwGs  t>?[Ð|!۽n\<Cf۷Z.˷ܝL'{>weedm6]?xxyg[{w|e<_P%w?J`0R#{K=U_g/t666vn}ΏO˗?k|}<_۽v~rk%L$'HMs+鰵1൵8x:!wٍHb7Ų6f!IUU٭3j4 1V zR[! -̹mlaw?>xd7"I&j{OJ?J ЈƓsxe"frICu-Qba՘l|X (zq^b*\WBUP !`B,{i(R ΁Q׈X$3ƜAXAF*q D$`֗!ԑ8{f6a?8{']>~>A$B,`v2 Lj膺B/M{jeZH Z-:̄(2M= -UIUI{*VӦò '-pp4j!ux3 }Z萠~;[w'uvmb:ͺt!uUQwyud>ۛo\7W>8:|1gGĕiX])]& Ffy7N^~d]}G_}_H΃7m|Wm{rv~xl[o=hgk{6om>\~oeW_泿l)Xb3u^]N7wz>{١.wlٷ`е]=iԌ:C C4%,UV5"b\,M>Eb$e`ͼkOkńk^uۨ @2B)f+z0"'J66 )è%ܜE|dUA4U` ǥܬ9RBQ;Čr?Zi PIp^aQd8`+{ jy Z%3#bO9%1FwJxj`81,aH9{7$̌ҧ*䔊(ݾ oߛ\DQ/6'P% '5rwH'éYecݨ}f3r(9Y91 GZlPBhFk" ZVQ!b } /mwmV5sacc}~|vD(ի!g ۶ u53@"dju A=Ņ,&dg `]SL%δ52]he(Llc:o +4<1ց{(@=QEŒ@Qpw*#zQ&Jݳ [[9Ëb=T .ّݍXB(d39S?|Dr6ȵ*vqzs bf^Tp֬uݝE"KpIv}}iiQQBA}H|nY[;^> i\w kO_\pyqֵ'?4MKN_$k{GG';[|ry1Ų\ݿ}v`;6f/.B?* k,U ů>35g6 1N>GBolPMC.O>ǜ35Ï~}ךrd O>vhYqރ?^n43 *& 2 K}ljt60Xfkk'p.6}4E4Dל/.ϮݼÔh.$NN(CE+Q(#4bb7i2bCHq˗\#w/AC% Dژ`w+^i.shzBŽ)yF3ܝ ARBE>fxPTKm%|LNW\HLcv?ʜ2ɡ̅c ʯ1r:yhVP˪!ep0͌_u{ެlȐLDr| ^8eR6\,^|9,4Dйgs#rd^R$`vƶiЮ1r~kͲxrH r$[r[]I7Uu)`|{&`B $>+8 "UU9H6H^l+`VmU=՛xAFx!MˀH@PU 2 ɜԈAk&50 (ĸYڼVXC]IJCFR5R#Wa{UyRg'PqQ8pSUQN!RI%bbLiI:F`&3&BWF 2fjff6zM̆Ӌ[Rw٫Xؾ͡>>}v@j}ͫWG{7w2fuUmw.]WgkӭͶv6_z>˔vYvtֽTԴ8<~{}OBrH9{5Wecsf3~~&dk}e sb2޺y|Sw ϾG:xճ6={u-eo/U\[.:aY.Z3r&lɔ9DZơp *qClRf9lB& f&A݂Yv?JD$p6#7D`0F!_1_4$Wj- $SPff1D^žԖ3&Yћ S]}pJ2 KWAb-^Uo{ٮn#[gIcff#_"\y81 q,*p|mTA3ZV-x҄'j`N֘_;'Xu!":2o֛]6֚/%qr$5INCVyrMCl$9:s+aW(N%2L:y\1OBh^ԤCۥ…geoUEHv#N/ΧUUU 8J&)4(Lti`R\D$DB܆cs:Y#+Ԡl0D \W^ѝ7^N _UIH]]ۧr]QsRde!Ʋ:+iuxr5muSMfFNK]#Q%$j֩efN+G/ܝcU!JA8|vp:8:p'}:)o-d{|$l3 [Ӛ_fwtƇZ=99~y~XϺ{ߟvs-̫{پֵK3iqپYy$C҈)kى9Iċh7m丮Ͻ#ޒ[UVe"AhՒMƬL4iMR %Dw>x,3eMh^n/_8qϖ8T hs)$NIBr@G5+h)$6)b+ FS)[GS' qQSsq^z BsP5[Tˈ_bcAQ9[D"(&nf>dPjN ҫsm\)@gwj c( p uSӬJ@M!#*:SWbIG'|dtBU.Vj3ח'T0Ci ɂ*E{S܀X>M>grDƐ{?m<hw{Joo]/“TRjFZ#X ubm&Jh`nRٛ'G/Go ^ԧM"⬰@AcsqyM`)BҌ &M \|8Ba9!<3ÙPb5W f &z7W,&n#ѐ=^i3S#Ԋ9{}af^L2gǐV*kfp$WcA /ZRsjt LEK EbѤw(v8WoKisevS5# 07 TaYV61i5&ڜ1;gI]g{>xг߾uշO.N^o=stROW-?=8ϟ:F|{I{@ _h'nށ78Mǟ'ߐ G -9?mӧݾq㗿E;ܹ~1|޿~7lmm/OWڽ::5=me9d EM-Mv>WO~_Ms;.?rK2[Tn8N9O#tښr/.>?;/+^'V圧INg}ܚD^֮ DĹ??{u``2&؉m#]6ێ>f1uf*TL": .o&yPJ `0@6b~,p__~j{==1l<ͥ6sT[\bDjM6 Up}nLv8I -:KDIALXA'21AfȪ)E +;4I[n-ѫp Ajz_jޮ?xj@I&BdEۄalnYlpRU( sxw:驻W 9ޔ#g`(%_wWWo6fX]s#@^ dm*樃ńͲVYnIa'Ej݌.lZBC&n.ZQx,?=ٚM.|Ň,r|20ן}ٻ=9z>{oMR8??~e;dz}ptݙ_}h4η'4;''ܺ}75묫~џbߺ{/óG?S<ɟk@TW_fi=1i߾{`ӭC.~/>&!fX-P+ 3V} B1 ]Uwtw$al@5k.\j(]%9]nRF\k9P"7X1Ә޹*󑀮3UOc o6 >Lp󙺁ƿQ?y*Ԩ(J5IGsWwU[=Z=UL\`܈4JGQ6%Wǘs1F B"U @D:T]ogaѾ+@w~1aT"JPKQϝ.6V csBC'mlm_,旦xT9C0?/k 0~TADHLܵd-JQ%y˔yR_EI۫oqRWs݌Qn;/q]Y2jۛXms8Rk|! |x͜:1j˅`Pa,$(Ɛb@,C1aj[{Wv32, tb7W&6)KQr( ,[\Z``eVX6$5<9 @!9ALX}#\r;:9D"peW,6fb[1Ye9^gᝓש1x{_ݹi޿׫4}[GG';W̑xrr~964׏?[N\9wF"sRTnܼXs޹c2vG΃gS|˗.Ϸ/W\]h՗8_{ҟ|emz{w>պW],ەQW_+YgϞ9-n(f\)MjV58P)YM9ȉ9{NMjY, (7v?W$-pB!'#rھ{kpj`]d&(.1:b'uLLyYMU HQ% 1 ;x;U^XH.߸Z6{Cɑ I b'pT&խb13ױנ;:$&jbTj67B|D$_Q: 0 ;! S.0O'u;ҾoyҾFCb[ A({W s-#Vj McZu6\tƀག 9AB  0jqUPIOJ)hQe Ŵy`r`f frCۻX`V-sfr0U!)Q  qv { o,1{h%jaC_fUL(" Q^p"M Uj,m$wܽTXy?t1Ds< ʘ%1YMUP81ZfSpp)dJi+#0Ch(Tۦe5 ޶%pܑU͔Est#2hg~ͨx&?}jqj=D97iu'}? .M&?-\߿se{{wooٳg~p> 16dd>{T<΁Sz߻r\u/gC(# ݫq7Ϟ~0N_|7/۷a2uW[7V F$@ 5\-排+CKU`Lai$D{lF< ҰQU f6C3@%wm3(4)B!3qAD AD +d%F7yB;mIlvom?zT/[G10SܦD$8EhW@!8\|6Az1vPHa ꌴ8 !)AUK)ҙS.*! !BA/qd^}ڭwi^W]Zve2-}\\\|in^?ܻr4_~i ޶agګ'^)Co&nx"G]*s?YQiӤO7oߙe}x i/|ië|vλ[[]nm۶ݺ}ra4+7(a4yG~Va|?p0351#DDMJCYR.e2-ĘmۖIdeRK}.^g?O?&6"*.46s1Q՞zk=Gs10: D6Dq"0h[u܎AB7SJL2h Ex?c4+4r߼={|yI%ieyN9Zt8l$M1@E 6?f1js`EF bz ~>oRʥw (Ơ(N,L)S[}1yUYHn9.з} gk1' XB60 `t5ѯ:T+$Иj0θM1baB1lj}fwýOuݽXkhėmBJ Cv._;88;?$"!M g"SBtVBAMՔ/5L!RQ4ZDp-bE*]g$ 9R@`?w9tC-!AX@д̈DC JLm 1F&&O) Ee!+r`@](d{2sNiô/sS]te%P3PD1 DUBHl¤; 8!Sfj62+\i1MՊR:1QlE>gk-d%# 51KI_y۽  iw~wÃvvv>O^vc8o잟/e:'O@NQ0ˣO IgO}9;twe"Ch(noᄎ8;w7st|2'OWQ>X~v7߼W*ׯyG2/tEi[}?08!ϟ?:HSٴƠjmDݫ953g_}jƊƺC~ #"ZG:_f:1׸nlJ) _I31mA[w"3ͯ2\Y a:V{Q @K!Ux©lʩ]]n)) JDsPfk׏$2 B1$6@3arp7C`8@Df+=sfl)Tc|Q٣07n<׌a~"5Ut`1Jj"(6N5tk!APte0#Hq@CL1vh`C P(}&c7L$ݴl<SsUk%4brc2 QbPJ޽ёA!zZ$ǖcb `hda$;nٜBx0%"A9$`ݹyپm8醅s}&Mn߾s8kPhb{ݮ>|? Ւ{Isx`{k8L[&>y"vOdgj+gՅ[!SBMIۻWu*{?xmwgOd]qr|N=6 ?h=tק'ON_j8n8INaGg/kDUidwLIf\C '3cismnlwnNZɹb,dˮIi1D/rq @n."m9F¾%1j_HV-Ց$s&IS,cě\;Woޅ;F:x8FS6-u08dώ``n,0Z&?"1hH9\ցYHX>*h$7&ƣrQ8M"7D 2IRj!$DuKQW]1iD^YB.9޼v^Ki_⽽+@!G";RhP &S/ &7c7Z !a=^ivCUQ4no0,cՀV9_FD]!7EIT;߻u켘ݙ\# >@D!8 !>8jEʹM9|51,79&ɶ`.hjVF)VQv> sa)4QBj"K!3RB.!D؅lN i~Dq:f7pLT#\ )MNDf&R,ڝWj!jpfv5QL]@,2f Cf si$&`ju|+!qB!X;MfΛfUsܩܿdɳ׎c]/t&Wϟxĝ-noUGhHMjaC 7I,@SƦNz8|{'Od: ǦKgѰ<8wf?ONNN.˝+ZQH\ge{ӳ"z\twb]?S;t#W{^0I۴UoKa3"'rup!2S.n0xq`-͆lui.*T7H43"q3p_xQ%OE]kȄV0£5Sk_@)p,7g@MqfK k*bܜouPg?dW3HyԻHGL w䲴ƛ J~om S@޷50?`2wD0>q0 Ա9j0ܘ  IDAT[bzGXՈsQ"$ĹTuŅ\!CLhbkɺ7m)XH1Lo{ooXcKTM؝XM$Ԣ:`  [^vz*%YMGU'ԪpJFPжyMR a҂Lɺ_er*ni:&!89\1 Jf̕C!m-5EB8%2P@LG}3U3< zOJ@)@-E5Q(ҤD.ZQ#e bJ!][DoRbԼA4j`! 2iE$a! b .>`#[w0iR1kdy|rt *6ؼ$0 HIa$0L/_XŌU]jʄY]%S!L(| ZB6A9+dS1+߈$K7O`Э=SoN/vwӳݽ[ ֋?̓}zO> AOD̼#hVݝwV(jq҃yѭAs.qџ?~鍛~8Jc= K3?u_ˣ{MW/ϗ۷l&_|?y 'w޻?ǧw谌ٺ/u}xoX)djIu RrXwrY-!S 'ӖaJLgښs(Y]ۿc1iD YHb5m3֎@Fc.H "Oضi$uخj٩jXB`Gc a666a&;F4kݙ|rB1KtDo+ֱgmPϝ\ 7admL1as%%!ױ=fAb0M HM1CɤQ3rҍ;߂<[])"})nVk}[ha~νpa\(8! +4 ܝA\9|;LC 1.F"\%`BTG}ð\ܼuGKY5o-zjl Q5ZF)H fꪮPAUɜZaP7U58! z0#KA=w7]Vn&)Wa-֖YP4&H&ADiD8j{u5sB` RKx -'/sx_ӕų$+P ndnQ4gL1  L&[W:}VUPLNfA8*cj#9j!lED,'&P^koeH͇zEޘMdrzvCw֭Ou/WφM;wORZ^|qqvzwoM'[$i',ٰEgvf'ϛe3Nӝ;,.N)ٴx٭Ώ{RvwoSlzy:N\ώ=[7Ύ^8|m1vgg Noݾ)g_kY]6!*ׯ-/rG|CLR{avd27CׯyP5b 38rђ[&amz4ws("pvsf42A;A `syC0!ZeN7s='S Lۘ&!eްD"s1K܅TP0cG6 Eɣ‡,^*:&T^xA`O7@R5&0m # IH(^MLsnlY͗EyL\8fdB S4GS͹Rs3Ax!X1mpYdPZy$R!;8EouE5?5:5Ic&j lhEJNi>_82xe^]MUol= sctnԀ"F!$(z[/&g"WKMТBHquEi{:wU0<0kOHB7/fD9}_337)B!\)J5 ^:ͶNϽN7McMC6B'ئh2j`}0v &dBpfrb.ã'к"0#ų`Fz겖)Giq7,[^9kJ\{5+ctg$[^/uyr)V8 ׊r#YI)Yoek,.gP@14: 0^'Moˏ_ۚO$@Kŷvzv^Aj|:ݝm@Ldrvv{TlvvO_=k٩јo?V7fӛ7-nϿO>?yespx}zfٛVgן˟~Is;]^9ij3lݬ?}w^ՌD$ސ].KVelvU\ϾƇ?=GؗV.tTu{k~?g&Ļ7o_ˣW}ktN~qב'/>ՋgGϿgO>^>ԯN_}̧2j]l7gms8߹g_<7yu=@he4ݚº;A$v@D1ì"nCƒbI:ȍvBfdF8On.pqw1D L15U01u+&eI6hE@jTK*E{ip͗vݘa’+F~u42ԗ7L.Hd,e4i3L$y$dXnPF, cV*&bC9L5oF&xHeoDuB^qdU)6b늆YJ Xo8Hj#I 3+}S+v]DN5㑇{'nŚl#ؘ3FFdk_e"{Dޫ"QШMS1 $ =w`mn"qrW]ukw76mtry LC)X$:k TIeES~8uÀM& gE"2M Zw4>_>yHdZ|z<̦hCpxHZ*%܋jRUIB"!Fˊ"U]gSHdfukLS@P sP&dDU͛1Ǥ8tNyU%ue`x@ѵ"XJE>[V@TB Z&kuw#+K%mU|qs2k 2Sk$, Ȅ,eX2z90 Qe1Lw|jJI{8ٲ&fb Rjt}umFNـCd.9PGLLBC#S@ LYB>cbP0T:}˶fMJWTKͲx?ӝݽ_᧿n{ѤUw_|6Y_i/$dO /_zG6լj:M)h>~Y{}r]\ypy?N?'rq/ m`"GU??5OrqY&y;0^,oȓQ bZWxˆ^dn"Ue@N)U1.8Qzu'"1s5Xx2 d<8{]આ %͝Ylm(ð3?BnX2a *Q @\hQM¢uppb*`ӿV el Xg`VKeaXk"a 3 P,X Fެ#4ׯΙQpMFDa 99 p"U9eR 9*iª.bHΞBfrQ#0&!}v'ÿ{g7"'}k@Oo`Hw(ipl|}uy gZ숀1THVK"7(`yj6m@VpPM74gkbzz?ί!:Q6cdlXɁrzQA$ FD͗L@uzv|}#u5ד(ZRGܕkU vv..Tyru[HBwfCLò dvsҦAUD~hVoqcsw_|b5Oݻ;ο0mnl-m*YHL̀ۜw6&:onϟ>;8oZ\n eM uylZR=? -ەݷ_=yl3ot],HewuԑrjӉ ,l}3 8:6J$2ĪFB$V]mdH\یh]Xy]SBqppp|b}$4ޠ΋|X ԁ̍Q9OF\W*]d,rʭ= 2mѕeÿ\4 TYС: |2S$F&ps pDR"2 K;HoO~2zm`lJd!fO WM3Ԝ"UpgU!lߔ"D 9Y6` u&{f04Ɛ\\J4;Dpճr[ %Ͽ>iMH4BG>bs )̌R0rա2@~VUn6;H!0 {^R,./l֧~s Sխ€4L 1P :smcUMW]. #"^tlܯĺ7\Yǀl{ >?9:!5 &'H ڦ9~}`?9>}?_.˳j:<oѝ1;;{"x/@C}VEՀR2c֜~:ӲoF:Xb+aH]*]E_\_"y@,=*jCEnk{`6RP`3S-<I(g?"BbZHZ+ T~g ז^ooB ^PX0m#0u~Pb*[H<9BuqVd] NM,tC/@é)[1QZ}z# fՆS*@Lݻ^ x&!jN,}~\/>4@Bq*kyyuN`ƄP2IqЃK-c=V<A#X|(ok#p`ޕ zԁT!F..D_/.n MErV5ABR/̠ ܫ{5.wFSj62r R{$ n1H{s3fTI]hE3B(2-8k&0u03R~6#rojV!;n e@*&F&"&Cf=01:^*{ u,^dEmؚQr'߿pQ(Ð"$vL*Y ]PMp.ǸX5]'ŔmЁIxzEJ}N}UJFX7WrWttpbI"gl㋯>M`nk73~n޻K@O?y9Pzc:_|ѨHwvrߍ꺊W^.ѣ=pUF[O>ӫ˛ͣPMWW_<9}޽sYj{OBb V˃7ūW{3N^,6>Ǫq&?˯1ǩ󽽝ԯjrrېPӴu5N}fxC!$Ϲ'̳I`z-t^DTm<}B{3H.B]b5@Q=nV=3;9)6|ga[G"m9,a(P,0pFFD`#!0#BIaZex;嵞H!ĀHH"fN ́ @a=A,r@G*j/1(rnsꂛt>e[;]cAf%:ڵ\^0@JJur69+""=޵=I0) d0#PՒMH|xmv_EKo>[,V6qQQ۴:f'@17"-NeBNnFY @D!CPt{oj>Y IDATvAP@$'M` ܨܟ__<ٮh6]]_apAj0c &b!F2C3̇;mԬ+ d:M v' eD !!Y*z$z:Md2!8`ЬCoK0 a]*aN/ DC  :#7wvJBxo~1:{CP4FB,F4Rҥԧޑb7Z=jmI'󭬪9̦bY.5!n(Y3!I0M sGHfVVe6]Z^8BVe89ڛ߃w~Fv~s}ogc F[[WW?OG[{Ufvy> oQcL,t2R(Q]5 1A"33%ו#j@g"ӈ^jyy MD#2lQEBaFHkFP*g|0ttҼױ>>9MfuKj+HHiLXPBe Y!V>>flccGGl6ܼ7W'x_W'/y'mϦ;'/#G'W|EkݭƣN~w{0믿o-H^< g|vu(IBqއ,nksيNgۯ$DKdՒ kArl%Ԧ.UGB5LDM!m2s9vɨBkDQj>ۯ}@5!:@.04uC@)_@XwpZ߰ M;4Y  $P)~ 9bRGưrsXB,fVR@Nn@A-]vkIzhXlû]*a< u@f L93S`*fS3P\PXGQ10 Il8*wSjDn^W?z[]?.u?\Vx+ChlQ8x1gK@aĀ\nkDF43G$tZ j)VbB PPJFc+@C@`JR.|\_-rr_ VEzH4U"R%J`<. &F1ٴM&][WF܍]PS ܹl*]npZM 2_J u$\! 0G#;3Xĕc@. 7t^iV&ݘoZ1ۻ^5f$h,M*˜[@˚Q,g05l@zSJdRJ 0#PIr5g7k6db"f ,BTxA^"ml)t٭{ý˓|t*@XQ]o> t<#jr3*r$"f6Kk4x}V93sJ}BLv}1CJɣ#{DT͆݋-@A91{!ߤ!B%^F!ݘYJ)y |)]u4[`u 7ؑ_֩3\"qmؠp2z)i3;9ڌ NY?ч-)-Ԧ?D>`DĥSK"SR;YgUP*Ȥ)HY "s%w&B@6i]XF5jFbwԬvޮ~GWO˵ TmR+6HX F"!Xc,y\pdhFh*sZX MV|(zPV9\LiUY^  !ԣkq Asb QrCM]׺-oh=# ,BL+6`$7t<$db{a75pvHw>u d4>aA"x׭&55p dnNhlf )$'hlf)0Fͻwml s0f *THݜXB5`psʩ;TnJ̫xNl[Q+F;x^RQّ0Q@ B`VQ59ؿ7&cQ$ۻFONN̗Wig|~sgggϮ)[;{{Gnfkg{!L)uUwm%Vӳ~sF{7קh7 ]j="&cw>NMw}{}~vz~\5yÇWUwWWu=m?|y@upqq.(/Ζ]蝏l.e8~1twwouu9I]zZul[`Ό,̳i 1/UJ̊Y>V1mۺ=v)rW"w.-v(I k&:J̮BbRZ 8<6T~k J[DԱOBٍ )]K5p9k04m15]ʊQ89-ޮ~_Nj[V=M :"'AĊM5kMu`aa+ ,r6h`FhAu]HVI6\k8Z6Wa!p< kd”qtZ.*iTHjzUL& 9*!fЕu-L3*Z9AΔ;R ɁH\3-zݻ5$%Tlt)#^,ڶ'/nOfDк*@- 1(""@G3&`FeQ$%[MT0etepL6gW<&[ǯ^ !DQ0q"x Ls5Mgz1T d(9h5ަϖ ^l63Fjc6Y.oML]wu16}3WǯNnxneCHwDxRW/_~q}u_.f۩V]m)0 ^8Lȡi^K`huq6jDr5M ۮ3G`H6Ts]Wmۘ)#YVp'6UnĮ,!ۮOf9ŀ%$0 A|?lk#*&U3'f$qE,RUZu|MG4_[Y! =&uG|i|c6ĸqf fٱ* k] d ]otTDEHj%}. pkR#4FYMY͈]J`w Tra3*Ʈ%9*vI#"6mvrצ L-1;w ~ޮcŻ\M0B喤 3 ~ 5;rUkU9v@Y \s7RC4a 8X@ sB bD8m:% ,L>;s-: rJk~% pn4e#Wͭ9;;!;auoc(;J ̐si}mw&IU_]_'Mʐ24;RAC tG$aQNDd"U-N"a!r Pd`bv5}2\2#U=bjU@5\W]YK9-Nf) !aVP̀4g'!*`#$7O9e|M]WOzw_fZ;0ˊf& R V &Ctcgi\g525H1l]\kU HC`5a@D0z=A}u]5Cf.QC]5hΈfN}Jͧig$Ij֮sJ7`(K/z wwtfFw7Ӝ$`n85-Xn tmk s2d7 jBU.wt*&jQ{V`T$ &d@bʚLSΈllSD,w.No.Onѻ!!X(9!ǓADTԒ.zڴHI50e5Bf/ >l%VUpԤJH1ѓoD}ɟGRuLbI\q귿_??קgϓGܻ{t1GDU*rN]d:z2iߞI hT'}M7FQ._A1d)B^BEց8+XX( accJ"XzH܊Cp lQ$zZ"i` "= ;= zRJq ?mJօ}y&p%6uͭE#@찮aP  7d¡(tp_-C.¨B( 7&e>9ՁXWQ$"SVjpׂ#Շ\``ܐXDw!4`j=DT~e*RQK)|+!p7;M D<%P7@ѻaU盫.5jf%ac6CfbN[ͪqw51.KМXf I8 L⧼dPh.LBDY91S irh`U C ^ t@L)2[*XDb"u6 (М)A/䁄#JfppL9 IDATqQA3s`O7'zunBN`@vcZ60Ӷ8@D7dNN\ b n)ek )(*I:!'h\my쥈,V7[[W^";R뉫OW^-ELu:dw}~oh{${𫯿\j6,ry~yst9'~M]ד~q:<:o1RWgd~tŢ;~}ÇWWe:̷>ٽ~?*Gg tp^{j翼zuvls61&ٽ;wQf r54 RDI5ޘo>˾G4k{A:U=R+5N(' HըJ}Wx{:&AOX|wsv䃡y907d! t4jK%&cP hBcG抅e Iʯ|ᠮ%DB!7mmpl(gYAi\: o=NFjuA q$u@L&7M>(b;.ikRG"6ĮઊfDLI͔A0DHI90PQ܂D !%+N+I99:TQ09hiHʋќhY:)ЇJD"K^*SQjP61N4mmm r[@bl4kT͖]1ycQ֡#T$cʦY"r=sL TcDdČh%γPLdZDW*ΰrȄ^S ,8o9V19";md~EWG΍CknjP@ŲG1:gQpP|ػ0L/.ϗŲ]UQUOϟ6z}wgVӌY;^G[;k;h,. ;`mk˯w}b:={qr9]$?|EãG]M36e=8|;g$h>AR[0ebQag+&+XWBdCP55!Y 0"ʻbDŹUs<pFfehVB@-vz<\=o )CL4Xz YE!91 .D-FHD)eDb&ӕ QuwfY2"OmCjRRK "39"TMι(ҧ9Օ/ld!r9 31&C",^1ɺv`]fg }n}-~_ Ls;DU$#{yߺZת9F&5seTH|Zv= 2 bVf׽DjZ#h:46woN6N~̒ %ߥ*fY2!iJ\kPyUoAĜC0|xsk󧻻?g;;ۏ?ͮ陪NF^vWzj,0xSO(wSK^WCp6=">zbvv}y~z~.֛jW}qmؾBϽo7䪳 %oo&13m_.j^>hb}}-6hFlf%glv+f d888X,;L9 唈DOy}L%%1iRL,dk;* ܇w|Wn[ V'ool#ύKnlf hTZ5(abʈNCPSFl3*B\. 9$l L!gk"lssJv *]ۥ-i]. BO&9xǎ=\5eS%pfD^7#ы>F)E_?;8^ _Uo^8G;߾}}{9,[Pwd<=}z4/'mlo&u r.U_~t9}= U^oxW_~=ܽ`z᧛[G1PFdN]xo6=D j6=~{yrVM~lΏӷi3mN4M5={C{4h{g}^nN46׶5[$9e]hTRK%D\X.b3{_f3Ds1SS1뎍/E&CۀP @Dx0~A1т!k (0)`aIT YMN3{m9BbO+uP2)*~^@ըOX"J X&PDeW}VCU(w)%v\j?̆K[U5E J%ZA{geFE˭Z$6Fh~\f5vLLZY2#SSrZ9o!l@X発s&d@.f % YМ'P;u["HO_nnt hDCTF+ڦ9#z@4xf`h1'D9&#UL&L$"`2 SY W(Vrbnv191=1m89B]z#MܗqN c̒K(@ι3F%!4kN9;`&EC"4!=BԄx8B`ST$!^⚁()V5c#Mv;1"db@f p)rq&X-@sI@6II* %2fMX*p6:@E\V̳HU1ʅrYUNr#J}xfuCUZ̅Usʌ?'4KkW@胫_ $-nߖG_=IӮOmOMw!<\,[}{|ڶig7˾6v]?8}ׂivM]o!JZ^?lXtRWzY//Bǯ_}o-:K wwx?&GG_}g}- K.'IO?+q3999|՛o~* POޜoܽwO5z&IL R7_̖Gw'r~:lq5^_i΀HslVZEo^^^hPQ߈>@U>Fh&eOB \ף"ZtfDX"EoUB*@K"RG)HB #kP eVJ6윅]u݉40z4J* K.9A`4cF$RY,HXL&SRVCLස>qU* *綃6 Q։)Y#3zR`Z#A65F VPГ `2! ,^C\DF!Iw r6"2cSWL#bY (>x!K#rHސmRb b3͢<MO^RAh}mj3Sq]ld} ٟ:g~'"=_\_\ޓ; *L5hٳ>xܾ}{sc# '?Otm;?\̯XӔ"GFݶK!o?']ib9掤~q}uKDU.i\vb6ٿd4 q:]__(&<Vw($B! b}Y@"@11V]]kTθ \#*Ej`Y&r5t}<)޽{z 9gdA$єKʂc*N *bX,̘в"Jf g; xt 5amJ)2cm*aB3K$sJɄ <27ȩ ͒8V$rf\(✼sDJ66%V] yǞ10]Ϯ9bKDY! }͸D1fQ#@G 9s5EITob7c'Is]Og{e{Wf?^O}|/)u[[;|BUWȣCU ۡv9u٣3-.^F-B=fT=}h4fvՋ_,Յ#{{]۾v~O''`~yGiɓOd<|z1Ο? v.Li{Eu!umݽb߹ fJ)g1L"#d2X0x8:Xs!h5`#OzyϪs@?Lj%E0{ϾrDB(ԈdvhLEVh:"*UŁ`@V5#VP&{2!*ҟ\\~"e[\_+j7{63"(Ϣ:w*5J\6c"'D]8)\ׁbʅW3*Vl`VW.!8)kȚ:hV3-t`ޱ >ޭy/L#o~e)]% \28.V4T1MN/Ϋb̑ETRT""ILVWa zU)\r`V*CeDonU,;ýJWyy(<@|됈1_VS+l"%3#2c@Rb[2qjBΙA: YDr/fLhbjU%GHf S Eɱ"JCL@QT8]ΫZDl*V\bH )#yF0 QfcDCTpHhh"CU[.?<>@׵]"19fU);fNYO3̐RpDޱ1^oSaPEӾл0-]^.mc!"{/ "FuR%ǁv%9kJ_^ݹuo}X wO^MO*4G-v6vw{QX޾uX-ٝ_ф5!\_|䉊>糫hDl֪.)fm7K}T->/oi*z/^<][kޞ~-.s:u{q}cl6MO>ǟ|};z>[|'o98yO>{s Z\,Ӫj[JڏFۻG1ihVI`$ cGĢU>;i6h4Usʀ0Ɣs9}Z;F6g9VFp홂d j d*V< DMƊJ1 bյ#DQA5,'天jeƆvK%"hV NV[Ԁ`hi3@24b]Ũ  &HD9gU 33Jm4<|ᒈVnFTeH%F*E-0fPl ȐTL$7MP՘2 "ՁS {Zܫ*of1IL:@0CC&;Mޭu'?0?/恄̯XJ \M*dC2B,%EnHd UTlxU+ih@ǯy]W3hˠL0e0RjKի9ڀL=(!y$03"SQcK "x4$bbfIY-gP-s(j*0YF`sS-73Cm>%llxߤ$,=܂8}:h4[% bP=2*U-ZXF<=4 IDAT5ij9L|eRDlB2DfMW+]U35,)J+o<3Sfr1?8íh2ˬ^w ͋{oe7 ՗oN^:Q}{z~돞|SWWWW!;d~u5ߗColͫiytrzѶ q[2lE2ooNIl_"w.REc{-^wnwQ6b2\//.lݹL6ûmRg_~4>CwMd|q~Ua4\x{tEYPL+,>crʢ)FF2ȑj5"}Jιf_VlH`U AV) *j)`IG45!Om2+@͌c$Fc q1;nBreXN4Ao[E[VԳ6diE"G˓ONN^x^|Z|2o8<;>ٹsrD[G"{&x;~u299ek[[ۋ~ޒO U9SUwe{y}ِYQ"wV>Vz( w8RB@C ..|"2NP(`\zDkaWX% 3s>bIA@`4 gVS 1Z,1'4$&rΙdTt{HxDj єQTh00L@":4&F3`n@a(rQXNղjRYbͅb)\`蘍줐r6P @LcN U;d "H~cmjӓ{vTA!Bh`T8:^ƴ05ՠIL)#_{O3&EDL)cw,I${;U˒R\vqE{IAAR\[[ޙ/ڍw{}G޹{w>? aTblWW kySTزYf\aĒ1913- e F l;C/6X5l;W3P(f4T⚙ AC0j2ބR / ¢aVEPP UYJ.Ʉ %Kf,,?H罘:D$AVMz T9([J@^fڀI r-j eXHgSQDΪRc՜E ꘣P8b3cG̜Rf)K]JYTD'+Y3,bYw?s {ğ~+Մl;\Z\jPM\4Xu3JmWBxmu &+a "*[A3:41F.hfc`Nr7uS0f >8l } 9s``m۟/x}}=KBt! 4LCXUGȒR#GeK91Yp1Sq I9#PЩ:ԗk,ע0XWXy"iJF'#EjEMK(UP0Ĕ(vb<9MyҬ׾;wMsb䑐 dɒWf}<&0}J=zEuK@W T\ndJ(,jK`nG,Iӌd9bL{W"94o9 ς_|oϮd9֣z:[g'gg'g/__0ÇPM&k{󎚪|}tOϮ|1i*<^mhx5=K*߻Ywx:o<~ciBy˓o|q5ǕoݿHw5$i~uqS<==>9~yt?j7_Mg6Gd\~mtssזbDJNTLDH>Dj*Υpz}EȈU萜l01q̈f++5R͆X30`50@UBU+Nfʌ!ǡd`;Ǽr~w! d\fĪ:W#Rw\\ʾ 0gu%zUYJR$gD˥qY)ʘb%3 B@N)Rg*9"y_DE3HuCʪHj r )f@ʢg"9cfDԬ slSU&w[G :뷿"#RV_d ja241k %GfeiM*Ax Ӱ  2pаx8Аb \M\ӵ $u瀼\x0!aG3sLq]YrMՔ@T}PI#=8(Ex)#e` G @L#i5PZ@C$4C+̊Ыb$nzr  ѵ*!pٝɣ'/>|Q\p13PQ3ev%f`"p֝Q}==7xc}s\ۮ]s)Z0[*SP)#9iad ꢪddfs S`1e^;>y97/<WzX?ӫӷ'=jxgϾff|>գbs1;&wθʣxݣ'ߜַW`˯_LդMh/ߌ*no__ǣPom߹sgϞ!H{ #[n{m2<~{~g{ >wOvEx흝 ǯl)-M⭛N/J-x}mtfj!TNrv1CR1Oʾd*T~4/[ev.xfqazbRށw^?78Z->1[>I!IssVrҔ+ƚ`ɩ`%hT)`44ljV`hE X)@\p&'@`@8P 99ίAzUZrlw4vaiiDMQʶY49̅v,hP0*h91 Il112;,]%9GaR"ɩ՚ͭ*Tr~9]vmvtpd {ۻ->檪wwwgevM3::͓'O޼ycfUU?z˫s&DYfӺXTe PUk]; ipD)-pT~pnqlAz{ӧ_izΚxv,JO;7p|r~ٞ0h*?lF[>췟ly}LD_~e/{4iQS'o^╢Ĕq4k%)3:GP!Mumۙ*!cNم*+*r3:}M*JE0HfW識D#+^^>%;,`43x W:/vf@<$ B(^%06DT/V2JD{'INgU}T== fBiAi߼&3V\IF 3}_U]g^=}Ȟ!宑 뮪L翳/ <,V9%y-ѵ|54]rmzp/ Yr_,jE{O9b 6U31hbfDEBd )%T 1bY)2"9!v͔~n[H:IY_΃uP65h]k<#Lh >gj1s~4:cGSLY$C9"=LXVX8c  f,!=îHD|P{ |K~ϟ\ Q DXB*dhlL@1iVEBvUTqsfv 8U2Pz⪋&9#F9bD״ > ͼCTeV~r)%b6S CbKsΒ{WNXN {cNq=jQX,\a=sxCTU(8J_ڐSΈ " h&K-h,-ch:UBSC9rjFs46y4X-.'G]RӦ/WissrLF {{璚+W^䯾|F#E&L۫Usͭ> '[W~͗}Xc_]̺p=cQٽqtwOu\,^zqm6wN^*m>9C`<|vw|ᣭ׮|'}٣Gw޻\ON޼9y4;~ڵ7oZ~_>ѭ[ƴkV[tx֣o>_.x|G?mr].,Vpw)Ir U })/.+ĔT2 F6F\6])V͡d1" Ʈbv2ĔL ?0oGbYr S2~6P"&LQ1TE"se yCuss){Zo,޳9!H}^#43+Pkof6 ){̊C䶰}Oguk، is܁J2Ř~rs~D?ˬiDLSRPy0.8SSSf.mIιE)9G@$ sf:8QɪDܫ7RYӝMֻ^i_Gkug5'#]{tl%zT\.'3E VF:@1@3o@" `=hP W YI|g_(^}00ԁ33ةL co6Y/^y*S]oH܌{!# (Ok+Zp>"0:Te)WX+ EV&fg(I6r[#H9 3gIΦ̌99N12' d#)V`W+Hua:]Ô 2{٘hHH)f#!lGQ#`b6Ć[UZJrpPy)Tc`2!.ɪbJ)$QQ#{tk0!ˠ"#yv*@MrEsG1όJ9CQVb9a격Al&PR?dP8O777&mN/׮b5܏EoǏ?b6;կ޽b\o=;}|ڍ?F=<::9?Nƛu9WkW_~ݿ4{Wo 뺗ol^u7-/WzPU/.](*׌ֵ4ycJM8BE)5XWU2PI)`DHp و!BJż5ǔSf,}c[\W7;c0!YAcZ*`6( [3={=z2.~A{Gs^l?᭽QV vz.\jgBU.[4~סuE/e|CH+y LQDÿA޴{VMEs"DĢ91(hQKBJ|9t`*rڵPW!eƜ3na^.x۪|C$~ңkyx~ YԄs#v+ԩaJr֪*&ybJr֘h80)p 5/n\rB!$k͜B]A) $G^4My&rӤ`<,ݍgg yk2$)oO7$fQnj9gb3)r\,u兇5m*fJjk0/2j&fAbWR+9`01iMj Ѐ$BHTfZ' Q{&9L'۔77Ƌ;Xh0(cRS\?,bR$"ehN9TD~:۾TS7Qf*H!c.`\@y(U@C;埼z];s.Uz__lnNv)"reo[m|S^%IӍ͜9p~vǓ{'H<oM,hVoL6ٺb &ܚ_^<~F\X; xzzv|i"{>!RI{/_>я?v1ˋx4\.YN7v&b&qήV!ݪ]TdsFL]{Uo~tX&_UA͈)'5SC^Ո1)2{3`CUǓe92^2 " Dvu@?n&7Tђ=W08MQU ; W"̄ޢJVRSXG8Xk 臊R TS,-!Z?&\0>GILf,Y,RO2:b ?p"B)(b=FD%Ns޵LVK"՚7"j<6Z]9fQ̪sPMS2ԕYLcsH)fC ,.#Mbs&p?eڳc]Q0˶ @βVHV*&Ѷcv Jk$6Q@ LfPļ8= s.Z}9-Bߍ# #H*@6ep4;{7lH"~xTwN\vjˮif(J)ŜP@sױsL"\ -%B_nk̑RPS0ECF S}D6"0wc^e@Acl0qA48`r`P&Ipȗ3U3/۶Rq\2/yMytӃkZu"*DSl.儀 @HJ]y͐SnGXr,uT/~WO//gۻo.gk׮Įtu~ų676dg?wODݻf7͍/>O?|E_ٜ֦y*o攫7ۯě񠪸']J)+ћӳtL hSN@b*W$!B/6ʟZԀZt܅VE"".TD!3RL&& 5 b 9-3j6"eY0@Ԫ9L"Zh% /n[Cw75u6[4G!g@ &y:"WfH`j2傺lz\1"!jL S;i˟ϞzsDb .33f5&"bW%0ԃZr~Oh„`[ ;T>%MV$b 2 f,Qa; * hgѽ[@8 n<_^WmdtRJq0sAKl^U?uU]WCF54/:3ȔR1/o*!dɌ \j ,1 )5բrX.֗|t+R)Wg'˧{)ݝ;~ݿ89GwyӍ:t`\5=;8uz_&^F~i >C*.I7|0^?3,Vww:ԁ̀4Up8-<_.gL,TTĄŘʔ1;) q(6mͭ罙 jX.J Iiv@b&0QВ>') ͠JY@ c* {s" _M뭺<+C#Ze:>XLp co]܂ĵaom^X%*9S3xzc1B/ ( Pn$Ree[ 7*3"R%DBJD$ۮ`1?3X̖BΑ":E@k7Ea!bݾ~OO"8̀=D\ⴀL67UDrrZ- "rR,[Gմmwmmo٠ͪ%@Q 13b0yǞy4Ƙ{9r D-0uYgle KL2tW\t>"&΅VeU#a=|pxV瘢h:u <Vi9T;f"Cp~+_x>Η͹zfܻ<{B-#Ҫ13KetV5’DԏH>+_f&4Sj52W+ڮS5d˘Vkj? O.D~?˗&G޼uw?t_፶iwvw767^|^D]0S{]ljpp(:T/^_rk+pܹ~o^~U?C2Ij~wA]Jvrwߛ]hl nwwrr|4j~!09"]Ɠɛj6nT-'r fb;yy&K^͈]!LS¦$ۻ1vIӠݼ2]5mI傤.b#[{cKP2!@$fM%xň`T爈 4TX+ #!9W6>pԋ9J)ީ{2ldg~՗ b/'|/"?BKHBW Ra @%MٕOyLYMluU6&fR EdBb]0- K8f]`)ev=,T }ޭ?|kcb@'U@~ jnjHBV HHL H]Ue)7C9BtUQ?t U HAl &;;Jػuej1oǦALGQgRLk}qf[B3+9␜srA+ڶ*0՝UfI)1";̔O'Ium+EcSdt}"lLLZ1`ϸ}a5 @$d)C|g5"w^= e440a]JX){S@M8=CR€MbWö[JslitM%T,˧ P84a2leլ,jV-ZΪ,d n'L7}pEkׯVb1;?vd*ݶVU5vwwh:~E1`zy57ioOgNd}Σ UӟƋ_Y?|wvh+7vvw?OgWӭ݃>xU/.2Nj]~xgu1ݶd4ɂ hߨ HeΩ$+U'sj0$fZދ̕c ?'! \9eP-XdWs%avf:".ofϴ/""ڃm=!ia׉X<(X7MYq#[Aawf+Ud)")@?]<Kcsf"*t]W;f朋)wV@IDC.f{Β)ާ`2f^'a%#0w-z?Iӿ/O5CENr/#^L{A Wv]ZG.#1 09PT. | 1P E0& _ǓBs,kH>8?\㋣nv={./\ fѽe؉aM7;W׃L]>iW m֡vF>7OKZӳѰ }`jTF;;"wͩի7eϷwÑfg8xboo޾BG?d]@޻vY6ݸstz4zG?Y.S٫PN= .ΏN^~"GZjfv.9|5b:NWFUV0{B]3Tm_s֫\F eJd6 3K3յn-n+f@3$s%]I eBr#Ay@T(ODe.y+i%z8@ZKR2qRER~]69(JBȦRf>D3c>+l}G"Bzd g1-u&RV˒UJ'2ZŔՁՐّ(oU!*1U+ǩScO@mC!b P}T;=xn{P9Yѯ"ؐE} G֙/e,V ńlD˜)8"4@3Pu[9#:`cԛKʈd*CVFvbjVQ3 &7SF@;&~c&ștk84oj2O7@^Nm0ThEeL!5AlY*8`LED `9mrYWv!gg%G 欈̬! '2,"u*Rl:3hC`Y 'nG:rU)Ry缂A*Mvc!3d."onըLrG_Ά#c&pD`Br҂B]ImCW\>ilAU:,r'M9sJY!t1+mnn_..l9> 9:9;{s&z:\twwr~w]jSҭ͝i߹ghDD7oGc|!4`p4;K,~ccKE.O='mus;@>^W׃Yg~R+.pbqFj_<|~v\.6߻{}E޻wl<>}3l\\?޳gG_Ŕr~q2OWWmJ]חo,{lh$ R.J$4m]YUr )"},4w=pDEճ+w}P$hP6q~맺•""!80D"Bt@#dd_@$\A$l6zCIO.\`~9@1hEB]ºo @AG 6e]AT}":ǪB` G{ĐaD."Qb "2Jι;3)AӽU߫f-#á*LYʫ<HVCb&rL1&SQ1bD]\F~.}[b~?g0uٯ"MTet'B@L@D9jEĆ`73Zs-xLLF0(b@x?_u0/>)3mXŮhystjeCU e2j^[;w>8[.ΛE+4@*$V(M^iHS2"#Ѵ t:.˔^43+XRQͪY%lDD]q3˒ߎ@0Y fyM G+/$:4 ꘑtpm7I$ ,]'jJbH9s^U=ysb6a0׀rR/fOuKAnLzPe.08IbT ,bFDjS`J}<1sjB9LyfGO//g9ɵk;ۻϞ~9ywdzřW?^x7߬V7Ver6;9~7Gdog{\޻uOFjōDfE mLj/>s|~0y{?qdiOGD̒ P 63;gkooύhMMUY)#w?x$Ȼ۵۹p̀BVET sxoggSu'w&a=z'z1֋Y_|~y"r,~?^nf~>=8MҡT?_w|Fc]wnKbOb0Mm㔢ArKSEDM [uݨ9Oѐ}WuGWaHn ڀpr-@l/j@b0 "0PME4sHUd!oDj eofJ8rQy,ƐdĊbCZD H-<5 .!5krs_6"\3V.zJfa.@fW%Q6kIybDDW5I!DJ D^ET{$D LsYc&ẅЄh)p-z0SY M =z ^ysnS![.`8 e0 CF31f{5*'@ i0Q#*:]USa^ bs'AoZRj1nBӸv)%>$8=<9y%@{4P$Lf49H 9ԔH1$,D@xZ)% z 9tWW̨ͥe&F91E@s"Ib:mLl$!@3_j{0Һ )!sאX %*h1I^Ѭp1Ύ#̕ U`&nӥ;v.W w__j^|1NO1&X Ï(2;gDFqRSBދ4sY%!=~eͻ@=y~r֖iO]`r?i6||x퓓ǏS"J)9>꣗O>^ yI/:! d4v=WW/?oB'moӿ^>?zk{N^US=z㭋Ojq۹uw/~AMeT GWp]K0ݾ$WMSH, B睗Em$K $IuӐ+0~o|DEMD9S5ad/f̗9rTɵҌP҇`H. ώY1 5&UnCXh;n[hrL[qP,ښi3D̋,wC9DDp{oD,Ze `(JS0HƁf`;5c&] )Z8p,MfCLd]ĒDf.Jj32@Pzvm*DDEY:ן17 ?h-6۔ض-m8&ĘLHͲADD3Iɲnz-;߅)dzrM'|>ڿsWMLq09:|P::}SPvl~̠F? ],W, Eb`O(əT~B]10"ZKv:!;v$)@Q옒)h&E9GBfuԗ i#vF R3 (!d&A(&5I ,JfH;ں7MR~du:ҋ&Ƴ`̥9FBt9gcr߫^*߿uTN7P"Z0LF1!j~C8bf&M&mR[-DvqDXE hX\_ Ih1 Y\:o;^w\\9_ܺ}ǟ{'Oޫjs@޺u0p<*jp~rBʅ7r<~LIwzAW҄~eSZ*WyBn󋳗)vwUw1oVܺsxw^9RX,Ib˵FWCfRQ.hӏ?O s{f77ޠDښnUMoBIQ XeF3`@J޳RyذN1Q6W^gm!3; & 'T7 NU$1@D*јo\nZ40Սnd(Ր@Ω4!6vd@-?0w,y[h5U.٘,w}ֲڗ H^<7}nH)ۊN1ŐVT(c9DRTp޹, &ҹ)Elj49RQ1E"t Cjxkz ~P1_2˛"0ܔ͈"ڞ_[ΧqP"bP]'EE(igWHbЗY竹n-W3@ br>?nm흜T`{;2 a{gk7E`tNJf*{ r] A6ABf2:- u`GIh3+ S$bfv)Z[#HRJ1E:J4 FAsE{.D}X 8b 0*HvD@3͸ݹ y8#AFI,vʪ-+Gi:7|3s2l ^?9~vS/gޭV`]gS\֑(bQTM͑)0/9__ֱY1D*B\z}ˊ7cr=:9^w<9sNIS/^>7S"߿w^?;? M7ݿxǓdx\,,ez]w:"G9XLF`XMLc,=z{^/?R+ދ/lvsxkȋbv]h4/ypp:[[|z9::&Ii{ѳ.VA,b>Q|QU\<{ݳ/!Fc0] .W^$I*4Au~_sW)E@AbC g׿铫뫢|'-rZ,W C(z'*G^Cۻ=..^~iQu]<>L&n=U}l6blwvTp{kSVF,z>f%ĵ^t%'O bbzs}i4 G!4Gիrgg㋓$ͨ{͢J/Ug?{zzWO׽Gp6`\;w_M%,zT|xNvz MN"V^40 nhR DS&"fymoE"Q;׋"q @dHiQuQz=V&}J֪ߟ5+2)JfgEh0/W5;vwvbӟ=y?410"9fu1Eʢ`Dț,M*)w2qPMH #=jYMyFom4WADSQ dy3`,IRdtI `θSFU#_x"ʧ!ۓ0s:~Ӑ$M߿=OvN吹$v鹠LVU S* (f!*T;ށsdՍ;_<vyu\z:W*LgϿKq1º;[ۣ( DZ,Uizz=F/f ?? ɓƓS)N}|Euqԑ;BSI{:'O$ :6-g/]-ӫ3дggb)7"5L|'b9XNWUo4g9;ܚo._rmo~0pjRCW1ۚ|DEXUg! bJkry*)F0[- rGD5^gjym`3/E$֗Tr3.; F ue$4pLsA="6llCt:5-y3Dj6SWg.<䆖h#,kN27\5#GfFDD Wq0d4AEM sO0DѾI9}1(1T@5 RΉH,@E2YRU!D$.R$aL☼G&QsMqF} pj]'M'b/qJIz동vRve m ۴CؕE&P% Ĥ@P5X !3JRHҎUn/A@6nyF A̡ۿ{xS7`FαiL3,g3k`Mb1 $ܢFpT(QU Dp~3J@SJ1̠pkox3!3b,,aB);_Cz"$J!F IDATb}EQ Jgb0"`H]Rd)},I@" Z\9/3h14INUfwݪS9.l=7-M<$<\0t#txzqX No{2貮+\1=5}pi2<^PbuD0%[#3y&0$5]uYv᧟wߝ/ͨګ:!bv;w=?/_\]/fʰΛo??~1ܹ}g4Ϗ_k!E7Oq {j)/3S3!wUg2LNH^WGow3_ G_~ iwXnXEy2 F[aO;{oKD,g/M WQn*O'{a=}zŝ[;'''b˗D\H !iD Y N]qC(ˮc^u("jY7bF`v\}k9d }﷢٣T9D A@@-F ɣ{E3h=7̀s} Dj* h^̀UUM )UTY *HnlvkV8jaknr l#D(J5Wcd#=n51s(AD]Ӭ "I,"1i)f 1I&e+ qHUĒ"f3,^׏hm!᫘W=6$PU-b7צĎDH8U!0+LS4U4C0V+$%S`0j v"^^cJP$`jՔ°(o.IbN<-WK[$QA0C~ HD 3yD J"逘y~!c#3-|Q.b4&4ͩrJVyU(s sf"L)DDss9 E3`We4)a"c s7 T"P`D%'I E٫ z)'j=UԈfgt(1o\]lv.Mo/r{2>9;EgUɤ;|*bysu'H//OΞ6{Ec,sf^\^x_4uޫ:X7Є~|/Z'_} Ûtz_(w(hww筷gUnv_,`a=3N:\8Av1iR-puN?F=wUED,)i"2/?ud[Uɘ(..k=t7갬1I\/_<~x5sO60ݭ|qEQޒXqQz\ٺvDLEʪS:ZznA,33MLTZ U/)]܈쇜W=B33NM5P5@\ա(ѓk@'9zQ!I2Akpnf3%D&\0yh¶ 0J̪69{qI'}"b".R3kl#I'eVϜ3EL8f)liNU1yyoU<{dJF3&V@Vͳf+?)z^5~5Vx;p93SPD6%XesC@3RB$E**-66DCA/O/\bI<Va ^}y*Jj5."f TP3yU+=#PD9g] -$޹j6Ķ#l͆aHUSȑyc8D yn, 0Cv<jA>% 5RTE>&tnQV:)󊈈;[2PeU3g%@6eyPX6dFϞNױIu{t04( BN"UrZ-WeY9w>zh8cB eY^_]lo=|>mF;fyzVn؃!$ |wry4Mln9??/GIӕg;>޹;d5c^78mUu:zxr[7^Qv:-VrqSrV`8pnxπlMMlPDH3dB HĊ6S0R'1 ʮ@[JԗZ-_JT)`#@D BC$z[[qǃ(ƴnVPiBdj-}*!t =R G9X6bk1(PKԺnʥzUXNm!zb0Sr339"UX@IlX"BPd20X mh8jtwf\E4C"vMf5"bAU%"x_\5j&ߐ-o9N&h]qs3nE.Ho˳eS7R,jv>_LS 5fW"jK#%G Ԭzɞev;ϟ>E?u6SBL/.ƣI{nxR/NaD=ػ5Y<ٳ'˓GÏ>..ΑL{t:}vXRvORQȕ=.M"~pkzVuS72N߽:?%۷o7~Ͽv K1.t2ΧiPb4BXC Alb1OPUvx '[۳UUvRBw'ܺiʪ"bM T1!iV ҭ/(ZLS3 B vef߫3QR՝lKiN6ÍZ5'%)ygy}́-axqs+-oFl)ʐ67!湭m-ʴg&Fd-1D5.)v/=fr f*H@DN YcYSASfε)ISҭJ&nbQ%{"0Ĕ,ղtLvĔLE%{kzOojWTW*`Y:8 UgJ7me#hU;;EXd-eDŔZ5qKSY{f@3Ajqz~^:I̳w\A6~(Q*U!wBw<2`(S+yUB6GU)LUQYv=n߾X.LZq034 dL΁jo9/+SUQ`iАG^!qJ]0G.bbahبb&L85;*9M151(sp\0.@DޑlF#Dsw!K|[ǘD=B0(?_]KYHLe|`4Tnm)lބ$194%bfF"DL bB㭝뫛7|DܙN.///ΎλA]/ lMbgoG?|? />o杷M]Hث^\OwuU[o֫UޭO>}y]/h2^ͯHמL$1^vZ;Gޞ]]Q~_~'&,)-cUeqZG3S1 ݝϒ݃1)?}b{{{9?۹U// qyuy^ *Ry7ڹ8v:& t$%B+{*BĪ 4իcSJ`@9[EN0< ru?/ah" pcIPVپ#2BrԌe -{`@Z֠mi6c3q#!fhƞjJHЦgh= =6,q Di4-yg7w ?lD3z 3Z>S=Hfb3?I{שĺnʲ$Buηjb1FtJ" 19GID9thL49,+LTV$(<1&\L=z_]*Gj^]RD:ςL[Ijw(S d276Dյl  }|=_ ZUB,{M>kBJZ#pSUxL}P(0"9}ը^eiL׵nM:`Q?1IY/Kf_9J"F;뿎wv<|xy5],|i٩fÇ̞_O?/)ûw _xgO?{xz}~5_~ZbRwwCI!UE$1YUv^^d}^45dYΖM/yǁ:/FPT|MZߜL/VU]ĝmo\]&{Y R޿wd2ZodS d1_030-+Vd(7nߚ^O 98l%m-K@idE$rC'~e|=BJ^cBl֘o؎p\ 3mS4\ u{ 7:sl:#tV<diȵ [Gӊ_AMMS%B,af8f>c .sc(DsMnS*K !DQ~E{B`GUUXLw=5Mbuh(("/V+&Ӳ(bkG^\gh# Q? !lnɓ痗}J(哧ߕ/='19Y<9S-k)"}QݽC]ԫzkk'f D]"\,fռqoPᄹ֭[?MC&,4+Cf?=ř5Pqvzr1 YQvʒFl[};Tf;fG9N^0W3kJZHyT爐8Gvσ/>5{um@D%U-@IfΊ VFβ48Ȼ}QLvW)e&<^@0ex4OcՖuXH Ky)wܢ2:#y"fc&Ecq*rڄ@$ 3T1X#ָ@Sgos>#as@%|@HG@u]=3hM:eሽ sgT[r+{D>>=i_UecӴ^]?p^L}U;;˫h QM85jը*eY\_-Wh;$ჇNg0,7Ǐ&7|tqqZNNfܾu;Ϟ޽{gϞv''ǞE7&ۙVeŎc`ڌF3|yyX5ᖨrv5Non&{7.)&gW׳fk/Ew'[g'؁x3_n~o'իeQr!B׭z>Oݽ/'{Qjxlz֝jڄu/N_r?!O*$]̖:/D{eIr GySRhA!ęÙ3oax>R`7кKWfVjqeD*4Hx({Sqf]>qtrBֶ[-1FA6Evw0/gU])1"[ӄ4r5NJ*Bd˜͚,\UEI51պv%i&3U7Ri4|T; ]DxG\K Hlih~UЀKƪ*""VA0H$"DL^ZGDI (|$bsU "7b!s6YCHcl+Z!Hldi6/Sp(s3+ xLYU"b "*uB2Ǒ̍;_?^իׯ7{铝KzNJa ׻*jLn] e$@ );dW",J#rΥ&hH 6F բ᧋_a"Vny# IDATOg>?Vukmk2"DJ+`( Ph I\j1XݛWg%`2Ҍ,b Q`U%[Ld(2Nfmܰf h0DW-b,ksd pl8d@!@i-B֨ *ljcarch#TvB2(ªB4Zvfd2Yt:EsAm"4"Ї_?~pu5tVpyȳ ?e-ky9+ˋj@vRezVRGĺli,wֹb D >oBԿG?x/.Ιcݹ}Fy۪pt|ksgwwჇnnw7:"v3v4]Ve)̰]n zer]WcB!c*l|uyv1[,(+^g8ia<Ӫ 9xv_D´]XcmY;M!H1X |(;u[7zk@JE`fgHD6)vQTM$ (%.,b, *$3'dinם0Tu晳,PkX0^?HQ]aܦ]&^wU3QeHHLCt;$ yb fxmx `4-E&cOL+jk)6"ky](&r X5c,UJ-ZfdLdu2G BY{$2!rU`Q eY@a^c YVsG$cl lIb^տq*M4NyyLP Nźlٔ 5(j")s7Ar~cNGfD&9qc0P` 쯙f/E #d (W9IkX"ؼe?vU9bQ!HlNIr hא+1i])P owW H2Kls\]}CDc!qY+(#bfgK\ az8pb1,zB@fHDZ ($Z'PLgUm J9XLzNɲ5넼V 8<9iw[e/ͼWϿ~0!J]chYDTBE=NcMx~5lo0Kf]Պ18kL |'0bUȗz,ϊg@PCEƂ#:b./ܾ]|z_֌F~;}S^{(AYwwvGWoUO8~Ç?^Y[}O?WWF E N`V6(,/5 z]e,آluI;GTnۓrŏJ޼y-[qb8\:;? ^(oԒ繪ZPycDP_<& umu$3ED4Wef#0[Ե/+~Vյ*bDTd߫w_c/B#xH"5H3.T@%(.QAɡa"B" ʊ@ 1D"E@dt/ j\7@ `=5d[lYH?J0]BjTZ cg#q5>C(;LFS_ P<ԕͳN唙;jB( (#!Ѡi`k' bapEk3GV$S MTWaU"U 2vH@ 1I2ɯ IcaTB0hCdj<1pkW$HFc(,116xWBh<=ӣ~; ֘E̜SPdV?1̝^U?. eUv^8 @c?̮ծL-gc1J1+:E{U՞ϧvm'W7n<>ɍ1uuNY͍=_Vi__F]ww\>}\>::;]~旳{hgc}uvx_=`CE^=[ ugg'QUpa&c G6""+%NHPI["sHmܘ'MT;l Q D֝hԥUP82Q• ,$ r; & q|NhUI$arL}:Q,$ @M"(Ć'RR%9Jhҕch!dټ(Q##G"✫_lVc1+Nf4Er43 tfiA_伪WoY/-jJ)@t̀Hn S`d4}Egf"LjbilA-P:;B pg1,0DX`]# c2 a_B=W `f#hp#e+e 1!D ˕G7vϏ%rk/gޗL+D!D:(\1$3$?q,>:ckޒ +DHkHP͈T$(*2$nj_fȭ.  :6j-1%KqJ> 1Ynkd C-CK}k TuI&2QL"(3H}EYgCh2~{g) q-!b/'v] ;l6Uw?#{fdYV/׭ɥ&\|AJc!I@mA|Wtd )XX??=xpӧ+Q)jtʲ/Duws{d6vw867nݾ3/͝eG>>9U,OjiY#}mnzb5{ͳ?,zժeM|~ʒAȭ:;<xd gON|iNTqڛe֐&wlQkL]UJ5VWӗs&MoFx!]D&4EPTli@1&̤դfX4U!ވ4>H1!1˵CAyqqDfn vIƫ%4YRqvz)ټ򃪂06~7){c tLmDTSGz Cu= TWU "Wժb90D o 0^{w%"B}|f.: o4~1N2)%U5/MMC`h&5i#bVHES^z,"+5T@I ! ւ(7R_DPqv( d@Ef}}1@J TD P6dHK+* pZkۄ)7^]MGW9lKxU P,EOƳќ Xl + Y !=>2eE&IuzNš\Bd)͂j  )ȶTVrBCFEZ(C2 C#!4BT5MCTƢ3UY~zYv9cQMd&@ !L&V֖ٳch, 'OmoofeY>#񈴾up|U)F/O(AWp$k,`3UT'x g>&CUzAQ8D|EX͏[o4~[?nPկhv|rev ˯W/.fG=y&"ї( }҇7NV:RMEFl[o 77>񴿴"6WWgόͶ xIˋݽ l: >۾mW _=GhqcïuSd53*[<d+]B-Ny_;J$_kbzH Dw!l^8%lL<P2<J7/ e)k=j㜂*Bt(q *QIXHh84(F=r2nI:%')IpVD qj\?Y*@SА t=3"bHD"p'37 )ٝ|( |#6Jӆ:/t18ߺq3  W/ߩ~-5ŗľ"0Zplc)ST A, $fi(*(ؔ&9YZd劂{hM @\ |@$g|떓)'b(hH@`Q E052Wku_՟ݹ}G|zz!֮txn%f(Z{A VI%fΑe- aQ,f$"uЈ*\ dRVŒ/ r%J婢%Fz[9 U@  7( .9E( j rȠISEM5DQ *%:έNVqVV˺& p]nQU~syYb}cc!v{}o"c!Bh"GU2 _G((EYMHrʻpetu>v:<|dʊEhZݿiCc?O&Qslyyi޽٧--u_|wյx^tZ/{aQˋ!w~t>{tvkV5uMٸU;M{nTzZݥvwp~~|#"铳?*<2Ȅώǣa1dggVѾ}G?:;;3+{nn0hRa 룫K)Zr&5 y{DʜFg3$,2U  –~`EH` p©2@R0!&!91iyDh()S!6Z6ah}@iL565=?MDfS ޥ8FS^"X}ddf]T%ȪITռ 1VuͼϨ^wuF^ Vi?~jhy7G/GUk'H|48ht8׮曧{U߲~-_{ "Ŀlx-o/)BXU%~!(k"U0! TԤOo Wd"dz!0hZ`CI`P\_ݸx" x%p a>41d*Jh@5!7wv(,$HTgD9|~ Bf{h #kFo?qpsl6 Vb/ϰ(:鱄Zuέ EޛL'Dgfk{3r[`|ȋ/PǨ,2S|XO-T썷=<<ɑuq1-v4jh7oƹxsg_YZjRy폧;kWן?Ao^]" A O`PpHGG1VVTZ{@a"g_& 0"it4!l6\H"("܄)ʵ*Q6baXR+^r`y1`Ph4 cAc CH}c9f|! SS!ωfŅ^_A@HI4{@4.c0(atyUj2ud: :@nOpkc0֡0"|}Z򜜝ITR1Ĉ C1FhP1(Jޗ"5Za^5V #lY,S`5.) U#%O"Q!G2 ,:ca>w:x\W彃緶vVZRˬt[yne֥Ia0A|eY p`G3X10(AP" h0=5Q#D $sj YA oyIU՟rwso'~YTfٳx8\Q~0VC2^X޸qh4:] ^7j:ۥZ{d>ekkC߼,y*B=}GWDz͟gd_{y&~堝*˛|6E>?<(rgƌSa NF3c[kJKWGϏgF̶۶Kurkt6Ɍ=:>_z^\fys Z/v'11̜Q0UDQ4IsNaNSBdDb-rb62HM'F4+PK_̪ P"F(&9{Ϭ9c !HA_HzZ?8Y]R5?^<%~{0w=lz GRcj鯓ɤ|t@zLxyT.}|q>,A]﨡c.tћ}UW[ F)/I!!'t IDAT:Q bXc! ĚْX@Ќ$e1m5uJ T5DUl|cTk0YYLƳ= dt_F 2!*fR2OkIr[M\l%[%vX D&aa{#!AWg2lR& LutuU*}]ZgX|d!/\^I~7ԢvV>l|vvYgq<WVg󪳶|Y X[Yfh'HdW|r 3KYQ߼g/GOO+_Çie]Meg7w>?:?觟 w޸OS [o|^}ZeXFTue' (l<~$˳Ȟ/j]VI&Ь:D@Er3%UD=Ei:m{3/_"M) 16ډ^BRrHd!E$5.{E!C 1Y*24Ini8Bc췀M/cžd/Ai;'#bY|Sqiiiii(Gz=y͛{.s;; hZ]du'8m!h `A U_Y:k?glFR Ef"*Dm&P[1,D9b  D6ưXysUj@IMbES VkH< zK||g( *k{jlL0(W0&;p[kϏKӋ_x8\1Q$ XHWD 4֑N9N2YV A:+y P' Z$(Gcikj,CɤFQ@*<#" ѐ *R:h ZA2KAFP%ыWL- 2RVuU1TO?|AjDUv D"2by9tfkΚrfUMSPZ- `ڃ,ХUb08A>ZgT ̉`f];2[c33?q*aUQo:;vyAUyyu$pc]Q[o.ggݻn?=;=}睇9h6׊xs}6YQyllo^"2D4'myWk~fEb0LA4@*,M[0hFDXǪJ;㜛0Q"n|{t"^i6r1uhˈ0@$ (D0ou!&B7Ӝ4>9=#00?=<F*2 ZDLb̜Ek#pm%dYVzu{]_׀Y96DQ@g-!Rܐ* A Qu`Z.JesaEP|@$qd̐9ePaDAUk⦅pVfCxtx4v7o.uZfI,0 {DD޶Ys@${drTFfo;y6(\s B@dDUb@k 9bE:YQ{5DzTbl YkE37{_8#.(GNU}{͵鳽|'ι7>s nxx6Zn]Ɠ޽y5yBiuw߾svgYuc(sy72_^^\8ݫ3Йnln zWUQ)+1,:NVŢjZh\$'1 G4Fa-Hr gNbxiȬQ3RlUJfp=ly 9,R5aԤh /*Bܐ4]8R3}_3MD K>zV-/,t䢵 z|||-///ͨ_"^^^noo_G ,sDc$BjM~D/׼[5''/e˵lU_~2oRi2"0'`Y ЂYz>J9p,kA ZcCU+%O2ֲp"9XGogo|_~A*XV|h HM LW#1Xaǡ5(  5dFĀ@ooqUgh SK!|FL$+0Ɖ #^GĊ2H-A"eDT!CS.f:WV_ZnO'* 54Hއv˜f&D2-af$PeUyrvu|G|2\y-$hWdzy~Բ@y%0,+lVlxҠ'ڝiku]jWx>Z0z}pp YHA"re:b`'Wpk,^U%YGjXH;>"B1pn6 UA A7ܢF]Dtǂ"wShO߼Hڣ6ĒF2{2D!(*EEPՒE'#A +++׻}d}X)3nooKt>/6}nKxܘ0;<_qrzϫzU+SZ'O_|hPZb6 Lڇ3x1" `kAM R! G̢17d (d?|H/@@M++Hr͵˫էyuao)@ \VV$SvѸٰ.!EU `8Qhjxv{>+^_6gy:y|<#u j3=ZDv!sX !,-_yxwcf4[QE|(ݮ!!(@U׵,3U(x|c$D wȑe\ ZCTU j:WHAHAK QD; ?cgKXq "G7cWű=9fO>hu/޹y=V<_[<=|D:C tcVV{8+ˣ-x:g{NΝ;_j{go}k>-uspW,<~oy rWENGeGPßY{ (Y)f{_v{"wO8f3X$veM%˪osν ^fVfVV\A#mɴ%-ݚ܍-G- % n,$7H 1K((a(ǹ2+r\Ub7pwoKSHUI]'uquBw{8&"IDU٥:6I>{~ ٔdJNDEE%Wy`m33oAم3DnXBaٳJrOq91^ bN^fmll 6}zLUy\MQp$"3f;~?0{) іD[dEU͖ @(r:{7Ο74.-QGtpxw{pSb8qD<͸H4i0..,$bl-QlM0`Fb ǒTm=K`%rw9\j{=/^Ψ]3S;lKi cnw܁iÇs}Ĵ7|ůU[:nmwc3\i<ٜu·J|3o iw]ehLT . ft-c0eyU&+4ͭw]=,)J3>~Ix9( >ĺn1s0'#YrFpN{O!5ЄXz0 Ptd{4Md @vnP": .TUMCV c5, s̝KsxkMJД4&!9 s]QpuѠCX[pQD wLUSRHƪ`^S Y:9Υ(±X \XaD#W-->.}vAR_3A$u>quYzΤ)^=XtJ-1mTհ,{~&I ~ңus||}{G-'sQ;$J hJ0Y3,mT;,LB#T`4Ovto'fx)l] pAF;+0ADdwǮm [XUmz|0"KlV=} _7|ݪ5obozױ?X[Z:t9fR˴Թ5M$/{CvI!]|6{d2IQ:ny FM vQ˟+q%oew*vאԐ5sDFmS 2 K2CVHq@4Ol<0" gU4 mS敕-$ YkH%)"I%H3&K@PpA!GNooTޑ80J F (؈"pޓ#Gd* @% u(SD=(5uTOk͢8skW-vzh`#UU!jh&jdOM)y22u L spIClzn bqhO.I'%"bR;xge"Xu;(FԌFI8%cpE؅Iiϝۿ`>guǁ_M*nm;uة?'9Ѓ#Ѡǃhs䚫+B訤O? @M# lmՇxೇ]{ē~ۭhHidks}B8ֳg ~(<49337IqUj FO2yȔce9r-TeCVobX% ʪ:mo3M9+YOVMA9m/,,{tZ\e=joz+_?'~h3Փo!rjywBo1L) BBҝ IDATן$d 2 ?W!hҞ?78K7FM+;\;w=s{y `sFN~.aA]me=^]>4SpL{Dd0ٻr>޻oA3~J\o~|+K$ݸ]x R9 @@j]0qT[h0W {ʲ k9sjRtP " x0TaeU'O a 3β3,gfnr¹-i:srEs dS:E窥|?iW), LPsLjZ,{]NJ}&b&FPtT([^ZqzvP9vX%5&w!.qpoy N& ʎ{ׁIJHj3#;b5r̵ UW9vC($,)`DΔ5eB-vz4*41[6USO)E"l&)E+x0ڜ WS3"S%DAE9NNf%! ))w%9F(6w=gά?xnqhM4@qiwQG>%s ('4wP>=w-??GtcSc 4`$ JzZ`཯*ƸRYu]uvw&;vl;c^>""0Z 8@'Af`cZbMr-7=c;[ۭRS|no{skP)6͛vaR*X5NR@ElF/ixiTS(fw-dQJ Jb.xTW9f}s?W7נZ;LT\&FD0BD U̕)lo|亭Q@PʍeO+!3E&8RV ebs{1W)wJ RiRJ!`sԓeT~o5{b}c=SLKj\QcT={"ǤJ4RTUmO^7 v}CjdzE]iUEKѤ{>*h}aU}Q1Xjx!4Uu~So*k;'N<1 ;uD]KEDDsk=ϯ553!nGCbJ"v".b2- :U v6XK婴$bbl b^<ހ P Gp><ڳ֟6b@A.ID77]butM dVь lnW=mm,/~dI.<a4vJO=_@0^kqWȇxݩcǦg?C^.!˕_ᄏ_+rIV׈{>$5ٮe t:fOq$͍F#"gy~~~gg'/Bf9߼o~?C̒J\"7}Rߧޘ_bdˌz&@۹sem~cLYvc>TAmPO5I Ep`7E$~$3sȼ^;ý9צJD^JLɈ8 *Jf̦of814w: N0@"7O9s`a7{>(z< 5C Dg$&u $O/-)Ͻyl%"cP`),96c5RJD0{bas{3&l;6"TJ|L)\C-^L`aEE:I R=1ú7rP]&䤎7ޏ&ʞw9X&_N'I"f啭pHŽ/~x0ŢmjPMEATt(EPܞ56 ٕu->ȍ7ܴoM)=y6&:|45ޅ}`\ǹ=sul67M݀ƬڌǓ~\ A>wRڙcfȔT"4IČ@b֕r6 s6]n<\`,^LM"m] 8u i!TF}oVL!S;1g(P^&ۻn̓{9rs6jF͌{ӛt a0ϟmo\}sܤ[e:hixϼo}λg}?%]ջHOҮzwQرJDaN^̌HJ:Kí ]%qh %OOZs~);LXêIL)?zR??Fq utEџUQ<d"|aDB0@Yc9(LΙ v$I[>qTE8|G&`a\#xxȚD@Lc(Ht:d:;%RJMHgAx:IdINێ"" -kQ(۷oss`dD٫D6`MGa'uq7-vLD47tɤnj\FI;M5b'ݹ;k60$HJ)6|pI1dp GS5s?HQdwy`ǎ=J$fR #gֶqUW)DbJ9agl0f\;ODhmtdK)8]![YȌٴ_&$Fd S#iQP6L}Ov+6:vիq>*̌gUOTng>;)ft|. ىZqjɁѡ9[psG}w\BFD.:ijc}'|:Go V^>|c` j/垟mۏ=6/'ǎ>UUFyMSKѬ[^8eivp /g7w?g>۳2M rg oߔ%bg0s 9"MR6Ck햜w fktt]3`ey 9ι,"d geYY9K =KċDe{^oR|ߗm)]좧.10l=09L6ŤFYB )⹩h%;0Bȍh/K=B1"8tj97d #h(w덷=z|sc nD(D ljrDʫX Ҳ9@#sY0l}~mwV6Z܎Til*BMg\9-31wL)+O͵_nT%ds^f{O.P)fQS"'٘u< rp7;uM!Yw}-26) x5{?z/~胟/~[~}{Sނ CYލ/3x^6.W6]=v]wrg0 ۭ$AP}wzlj0KhyyypgΜ.̀y|~?%Z^Y^@ %P#Gs2$V{0;4|S2C(C(sٱ82c'J\;}|όrw404($60o&V)5vP@EN) XS8)؉O| ؎`5k(x=h#u3ZɌ)}:OeSS>#r6K( en$#Q94uf "K[á#7'EadJ;ޕ#ϴgaqg8$2]B*BB4 >-Ĥn*aНILؒ5k 5f>3Vc6Ĵ"̮XR $V|R0W!R73MJl>& L&CTł輒Z5 ñ )u]Dy?nT\{ru|z4ΤNbbTx\:3Чf0D+Ni'U#eD[ԥԌm%6cs912iMaP(e.l#N~{UM`Pٴα]乙ptR~^p[vc{7~'^~ -.-3{5Qxn?w^0߳[Xs'rٖ$2C+cD;k摭=9U]Xs@__L9Y~yrt}}me^7ۯ~wo}Ey$BLڽu/x?G['3F:W֯܃.=}WwUE(HM|qaqtw-Ƨd/`\awG(VW667T50+$:pOtbYv9YLY*rYRF~9uDsK ѺtvчWJ|[}hM/Q/P:@ht v 5.(T+8gvc\ kU BM3gɍO"792hxb>bK0ΘhV@+W,ПBv>H5Rbr8 A|n9qvu"iY ̇N ۛM& ΕDi`V ƎvS0Rڨ)1s^j\R1MTz?idv`f151&B2-\Ec+*aEXY('QaW%&SZI!`^͙Jh33%$:r&* qD) UqMl $IH<&%1E18=Co%ʲ"icss0Sj&ͤƣ0f8Nd2J)(u=SjR$ r_"TԦvTd˙T%#(TamBfmq2K݊ СC~gP`4 ~dƗ>)*&n/ڃ/SXDOۧIƐw=ظ_r,0;*j,x >䉝ބ}lC==-C6+?2%k6R9)Y\@ZN/}K{yů{?uם^lZGkwqwǷ\{htCc_|>qYV9f|o|$(3.E~75%fU6z*e;SWa )v|ȥs^}>΅wĕZ[]B {; NęcϮv%b"xmCԭ3A'W_7ޱjxTv6mY6KD+L>g)ƁΟ?4 w{_B[ub-_ꛟ +?8#L H3g)Ncv 0Q2S96#BDA22nۃ!';}nLs2"_8Ļڋ\+Mo5ǝ/fm]6'0cxuFk@D.,N`j ۏMUVy^ FQe0b4M=2{ zqA /44Ơ\5;/Usow9Xb&vNAQdԊhD)<̐ Kr~aED,t`Eس&P9ȱHfuS9DPnX"DsĦ.:]Kڒ%ԩ O|#G==9pfp0zN\ J)i'x9G)EL&SM JVSҔ Q`"JjE!Y \)jѦ>0sP6 7uNUՔUUMEr0#P[ 6ͨmVC/.'#- 2;)5J*^\.%젖rt| /~oן[3~a{{Yn`P"_3̟W%Uf%:Μjn_[BvUBC)bݲF92GL@i IDAT$ŦshnB&M&B+q6N29О5Rȱs6>ƾ~oITDLL\Z ʂO!gBSrITk lOd9Ѭo,~܈dٟwL#¹u4]^9ʯw54=?C}8_zjʙ݃ }`QWz4"T7"}Q03@3`NyG.˲EJDEYxKIC?qy~J NNEgqy|8+q%Vy1"uuo^52:wy)it:Hrnj7xjz"y x3m!G=*;vBAwCPle.U`DPpBh 3y5Ue &դIťͶ%` F`(μZ9%Azְw!xNkjT\;E`VNE`v"b%Ecc"Q*|Jʆ6](qQtqIVH")@=aG?& OX!3 -)ȢMj3ɶ*`B26e2LQu80 bt9HgSԵRv៙fĎ=3s9-;뛛qvSA=eן^s=_X"j$ƒ8V\ث,}&Z7b 5?szӦhwoeч $hsk_Zf9G3xq= !RyPd}MCX_>_5?kj1A[|B:\7oF5OW?}X p$Bi D1w)k0'~sm7ZV!`Y:A?|o}{j-5w6fEhޗ>?sMy]+6Ixe _eS$v~]j~Wo@\h γgzX[!vr1"Af(Q+ȓYh`NCbBYӤN)NEL|-;eY|+;eSP81pΩahD$" fv;1gGĭiMo+q% _5Vvx" LP{h%C287 whϊ:ִJvhSPӜZ(-H b k%zr 1]WX۾#AA 0q+VZJLU)>U`UE9uQh;I0G *R ҄"l hp{ߌGbf$E6x$6ĘJHJP%$ID%흪 At S<]r܃զYq-/rFaTia~("L3{r~g.ONc<273òxBL|m43is{GǞ8uFB'^rM{.{v#q4V~R}g`em-_-o:RWK1\]mNՓJ\a?^YRr'RN`YĉϽ~i)~-ʻ}DpY{֔k()i{vT̀?tȠ/>q4 RԺd#9"DJkɰ ѐ7EIn,9Ll<\gYVͲȳ<3k-k LGIN)Tf&&b&t@Y~>$ݪ(D?GLs r - *![lD`WJ`TpU Q0KVxCF_)^)& %ΦlyKr1B]-8]k_@!l'[ڗ8 K/Oy{/_ިק!Kg®Pݱ 5w 耾.~̄#CLYSm *lLw|[cEp)"uGl XJd z^Yy&9n0QbX&6ZXcڳֆ@ߋp5z%()0̆ p!P<=j9g%kȅ/ȍu`o'xpD t@c!L@^%% xa6Q8@7A{,%h{ H0D"B<|hR  8~ /P ljbTE(dWD~2>zRL.|w/gAҎ#B[et ?[yE2052fLXr;Z]R]V)ҋxՃ?{/֗^q%[jo<~,w3=&ձ׵W@*!t2G>v!/*@@kT%H>?r܄1vssCorYlrٴoW5@*66kj Gĝ~*>:MOu]E]3 14@FzOr~py0czKk>* [QĘaћo~BE+o{{;L9Z8&׷ &D")G_3~s,V cm2%,BǶ4ϢIc L&XD0c`Un˶̭ͳ4Yn1BaGrf$R3/`b<c!Gsd"/f=RCI\bttbb@&y?o\g]b!9zL҃V:"B!r")`҂ @j'8y;bK ԃ VW*UCG[PQ!@4䦊LS##VxP$\Di5B ڹ'PQz)pbBM6D\֢Xf 0uۅ-RgO?F+B"J M~yxM7cW<ϳ f22&rk3y`Mm0\Bߖ{ 1;OtZ"bi-ibc"aL8>E]mBHfTwzY9؜Bz@<߼hϚ9_jU‰ ~FT8-Y#4B&dC QsUh&s^TO=eNHC*"IQF0̯s,] BsBAK5E(&I4v`C:aROa8_QM@|~裱b'g3.ہ Dʑ϶^f`c)A6πs2f괆'Z%lSg_D>no]DUD.kסH7+D vmB{BoMPE90Rrd8l΢MZQvXKpe-!lp`n`MV2] 3[e֒acmeMfYl rS]6AF R?Ѵ->[ j:f C~rֆBR?GokNPGUEѳ@#KC=/㩪 Nxa"aURD=t̩!pmC! /onp>\A5B޳R/ޑxR@dl@,(dJ,"YA4)aZ U RJ gA1@ÔDD j>H5q;In@&RNP4D1XKEl(UUGE @tP0%uea1 #3nXP(XwOƘQb2dJ0 {?ߪůy.w;ڭ܊P>%;zk7qJD5jsk몳+2Qz\g?# ы3^[L芈az;ojC҇"#=w ТlQ_<uϲ1*_g^Q{>Oy>y'o=޺| 5G?Ip'x؀ Wv& b ڦ\4Z1Qp@7u%Z|`C@Mπc!2; )1DO6E[K ajotfkQZr 3|g^D?Ϻa50,J^AK7(X{8Eze/޼"kj W ^_bFNJ}og0|yRMnڱ2 emGޫ^]Q*j_Z;yKD<-'ի[o~[{W5lol69KǓ=%lW[ [y'wvG~Pnjr{0VuK~M$W(X` R)0ZECH%zZWuJäi@.mݎ>Id[1Bgm4`!F` (rk )&@ PM$s66ܬ1f6ftGnbP6҅@D̦.ELzIǘ945EmiQ!̑| C ͳtxRF%<H7%)9|u/>'HAUGD]zl)!UJ9VGZKa2U9nۀ`>,ƁIЖ J!͒vCCmlv\ |ϠJLI*˼Cȹk_S #_lf' _5xJkc>(vm@UՅ[h r: $ @+W"mވD|ß#rwi7$@nɕoCH` hodCC@ 5m@Zz)N895D"h D@C,ktm_B4>1D1Be(reyxYYZ5YvBd#6DLT:Hp'qi]X1P᧦.sVݜ4Ar0-a< nThz"<c$ Ԙe^/ٵ׺9?y0{2BjPJ!F|mH#?v p:9N.\82}#|kO|XUTS{=^ǎ՛pVJRQѨJDy߻?9[26id}^mf{ / X90z @QNRC QbC6V6oj\r EbT}H'yf5ޅ%!y-O|'ƘYc"/ȋ,ec\F5ߐ"qF[bNDc4dlB4,uO_Jut^z г_Tt,Nvv-.c걁 v޾Ӂ3[௙egƤY`M+N-Ma eIȐ)^TP%fK[vAV9Y]=<(Oް~;|cJ׼,V 0k&utuv"-a8Kx-<ϟKcʆfLEDF]C2_蹸W܄v q50)`1u5E=<( bg=vÊW9q@"Wa9bjůn(ĸ7P-JHidI3!RJhˎ߷>`vSB`@]{s]9(긞F4J(tP=h?B;H ?g*ڗ*tZA*^ iXIU2$o\Aj@5N"dFS#V'!E0`UnduܻYaHW?*ŠPfU&ѽ1Ĩ*"lL>!:SDhZ,,1DDĊ@[K79@U=yU"xZ4N=qWL)%:_3u0dKB~@/1(PfXʧzg,KPq.˯:NPVb)4RzBՌ{Y/T0ix ;5R<ǧ}G3ݧ|.} `V[W9g}n rWdU 78//s晝` 0ԾsL݅ԋ^Ӥф'#;h팊j2$3qoeydTFG%p[Qx D&{1DUD5=PfQj=$6pQf1ڵdڸy"21{֛,==UѠ_?)/r֖9z&<`VˢgL&(g.r_8%e%gYeYygrX^ ѱCB[jPbYtA,Sζ/)3Vġ;hWJ; !E:gg㙟hͣYrS.a7s g2J$A *jTr3wF4bD{wuq~wuY@;t)͓w} >ڙCPe,{}tS2%&Pr8DF bpE+gQ F[LwfxmnZ߳3eU՘E: =7\*=wWxWB0RdDtUsSw+cL* 2ؽ"c>s{_*\2V/M4|C0 п(ş:}(dQPˇ8T/.Gז;;'BJ95< bB,ޫ&^+ ͲE{̹nv˗*T|眺{eu]WYYV022Y1x_YาO3p+zDTEQcMX 4Ens^ch{c^b)\hq9g<+~\#d 4<?U I_C}W6M th'|IWdٵnΥFW:#q(" 6 PD~=p5R Źiaa0'? 1ͫHhӘkH@-7 ceA1p23k߉ad|-{3*u~ 37 d "xl*ptoE1z*?09vU{jtv ҭc5fX%pL!b1p$1+9qwq_݅oO5.4X}+%M?[0̚&Wk+^Ydrʕ^?3ypH%ch208#ww֚^(ʓ'Olmo=vt:nn j?;?{{6wFkk7:|t2.{Wcp,@tFeeT6a,54`N!봅p"ڒ:4#pF01㛸"jX;]:-w3@3* ,lzX^r`~R;_gn&uI`|@$OeҥZ$ ;"*"w:.;QqRI[2)Tsds+߹9% 7DcW2TQe׷|#O>پlQ@!%W QT#;yT왌xh)zВx/ @|{>5jiq!*e,ݞ 92l30}' \;B.pT .WD`&bܹ8foPpSvSLpM7oOS'r~&""޻;IrF5״'-!ߜy MgV; q~ ak̤lUt0\/]PngS2=uͽ<;zd>n8; diF2kf+* u;뮻\~Ǎ'oe*jRt:քDZPh`j6ENCύpoث͈Ti7,1z a4 IJaWnBΗ_XOw}eY5(3/~aκ#f>̘TtK.;?Lei;PUDD j}zN;02skѷhС`gbRf!߷qbG7̰ &-W:TlDGYLkpJ~MiZ^eSB@wv,0i}HUeJ͝[Haڨcdm06qFU%F2r|NBH4,zu$ 1Xǀ))zNcAfW kwcQ G﹏> 7FW%Z?2L1 cN'./!:!"~jl)$z(ɥb5!t[9eIg559+M0~u t߸jܢg2l7Wq=)E=6"P?<#"߬ѺB-AABжYo|Wʖevz=> S׾_=n6"G׏:|iv3C ||L<| .a8A Ly1|֒}7 @ <^Nq[:3Vј*ia~2Р$و4s[ 9WUprva./5^rKİofqP?€%emM4(f׀JSOFkзy@:9YQEQ=6_8![92}_3mQMG/^܄#STp/3[H Z/60Q8ԘNtZA8MxjP[IUy`F =b2zjc!,{ԩ#9i5cPn t(c#nhKiGDUD[HY:̜<@֚,0XfLd1GquyZjć/eô + 8FEگsy v@C!ND0S,(ɈqhpkMldƙ'Py\ΎiB*L}ϘBU2wաW;}*MlȠ'"M:x4>(-qJtLJxÙǦ1@Bb2,`pla2Se zEs.3 AfʲLch*`,mnҙW d2C@CvsoKA"PD.5xbi,TMی]ms -=?̚lU}M#g9y򴁿+´+/^oѸxN}"+ 啕[ļWwO_οI[. T18w(1 / L j_Bs(d/H BD,t1 ::'A1UC6P{uBD6XSkڄik-BD-l! !CR᫪D2Hy*nC%:'EBcB9&@;^8)+"jd!%(#d Dq D78)؃ŋ8'j9lw\̻-Y.LI= `ށWOj,,DË́w+"TuV+#:~;n'DUϜ;yuX3G٧+C+~ .lfIH}6835 hiɥ\OfjN u@A*!'"@Q(;& $B(P`Mbf#YXN J;-5/&u,_l8rhR{䫓NVOp8(sf{w~2N+%JcmT96"Fcc ,Lܢzn<Ʊ"a$H[0GfkxvSx;0=֘9 Cl $VCv.ύAu^m±0n%;Uw6?2 31ϙ$.mh<1Sjh@&TlNYdd˦t_J_sbz?Oֻ?>˦ O2jBQ 0*z՝n.;!L^EHEᨚU@M$p_|! `Ļ^nc<ٙVx;.=\?_|D5SuqwfBj]w}EHl,ٚʫ0fZGHNl 2`T0yVu5uy{m&S L0$jԨ*$ zsO{"VV~dwݾ6dG g<)ޅGHw,q[]DL929U$w5sЭ$,1Jd/΁?9muNtb` 9釖kU.뒅L잮 м~@yg]wxDSW=Pj j>l9܁ȟ&ytI&@0lx[QW{z}o3 oQfR (T+Nnv'W'"$~ J gᓿQ O/TtZVSH% O\3j["S"r'Q֖a@@ 4wX>XL 3s(FߋܾQU/On5>Q0qp!* 2Mk%&h MII֮X,1+R"x DX7IarcUfDB7‰DLƘ ^ouuumjec,LIYw6d4"lX(:xÓZ'WYC}uu4R=3,\BNfq.6!za6O3;_A<{4立y׀)st`Z%Y[rHK钃@z r NyCg*v#"x}_~Éc@D0ԯ\[#Uت5i4CɬE쨀V^q3_z몁t3ڬnr}ܰ^v.feV I $).#I'E:N EE9U`'<eQ iޅs!VZ.)b/"*׫լv⫂24 0ޕE {eUU X1FR,A~Z?LYD(`/`0-G.q5LRF HkfjOJ;gB9n,'j؊-AI$Yѳ`0cK\Þ6kW,,M|+S~=@@bMz^-!"/I .dBxgww15cȾE>so`.hUU„4B(}WM쉤+ mz.HNxUHP""@&+:l SEP" qDS/rI0U"s3dyqd^]q:gέ L 6SW2{d0pye6"y6ȋA˭]ȋZk"cqhIaGR0F@l iH HQBi˒mS(%kQTu9,jhꜫpﱴ2iB1ʵ}לkϾHtϩ::"n#s^'r ȳ u!^B[MoAԚݝcҮZ;3a=V6<1ƂDIKj !ׇvofvOu&D&LØȄ+D$Ű*2;km5vAs,Cs_ q Wqmr"cL Peb^&Sde[ÆQЌP/Zb6ee9{&٬sf+sSV"/19Uf&ɷ#Uŗ$].6:,"PǗpZ'̢z7]DZwf~mWzW(Qi0hv$e/ޭ_~YFWվ_略N؁y{\}p ?҅@ށȁ\SP/NIW쾅҉t&G/Q GhU J"]g4v_OϿ{=s79s#*5v |h]z5$b8Zs(<]"t@;m,Ul&  zB"6aeKY0d+õp[nGGd8V\X? &uƨΨ 9~PcPW }kQl3k8D&Ȓ!h dz]IAD xEl[fR&>yH/M}\13^efSke؟Q[r6gc׺+t{$\SW%R{?U9@dr ̑g7con{'D!@G?O|SD;氪v0X8m0@ fW"SY 9^42+@9C ³`%7w/i}umgws`'=1+2eU+އ$\[ QX5<ȭZzs{& 8 0$¤*$? Kf旤R!xfRKMQeRS_eLXR$xH  @0Clc7ƴݒ޽}ӓZZr|l齧{Բ\ Ȥe%l3-ӖJZV6ȴ9T=ɤRt:8h!jڀz[`6!B._8"F?OZ)ZM >"b-K. ;֬K0YD-+iCEUYz]U!FT6?HFl (2NpTѹ0-mRC6M0 Ô2-$h C@m   VD&%D;7g)V$D*8E %3(|a* oj@o{Y9%RglBR9l @t{w2R]{Bm%mN[qDzׯB!@/SZ7 ߔ lND!TCZ( *1oAy/<sw3=-HE$R(# / f3 _tf]_An'UȌnT.ZqT K 򊏮F&Waf&!w;2z=N ̐%P]FPI7]PTFx^?`#k}"D OyS  R:ͥu@X:SK?ůR|:@]0Up%E6l25g֬l[V²eYB$H6JLq0щ7jk ÇC~+2t?s2_5*Zh7_- LŢ_{BA 3*9+(%]5`e{{ Q1 6Mn!03LɺBt{[ >>ߔ곤R+3HB)@ LNu:+p D P K)(!cRJ hk]s1 !Z6 bD@[kD +D$mDZ(m6j쮶tO{gG&>#eٶe)"ϥD:\Ĝ)A*XVyMf^Of 1 MgIUM (T)M\pAQE~[s{0VQŜ ^7v'|\^' Z8"%3Ft-/s0yEТES[3*a:д5ugMl,k,BaZ lIUȲc"$BS/D$N&=6: BܸqpEfK:P EvdIN*VrRt{2ՕN5Q@xjҺN@p#7".W]aL'S`\ %?H_,uưZFCѯi}6-#*/]҃U^V`(Bs*Vv[*Sh\2RP ez60 \&z:/S"A z[y)AO *B"(-4ZJt0 ˿s* @) ] P  RH±ABD\D@RJW(6xP IBXfgT3Le:3m'm;)8 Ƕ TJjP <zmx~r7a_U]%~)L5L7R !"/w-=40I.2Nkɴߕ0Mc/2JbW񿍢S.u02Zdm0 s0z,xP($ $EG[q ̊. Ddy_:H@$(DI ,!Y=k֬Y]=]]T:!hYB P BI/@wjSHfKMHXY"e)NsW( 8Z=nXE/iYUj"u)?~brWVݵ4WP`^DE|s[aaJr?{~B"BXD6I "E%XQ`J/K_q9\tKO?:*0 4|hͧ,a $T -K)UnV 0o ^xhE#mblWoeğ)pWzTZNW w,a Hx)EdۖA]3_{ә3_@ W-Mgrڮ\It ]cDVLd5 0 sрV/ D]> DYfH]k;C+uز&ZUR3P̱&*JF}*f250 ÜSaت:D@*" "TWRfm=iDZm۶-ry"caVPE#VEWJu wxqaY"XVQ L\[Z8wV*"1m? F!:ud(0 0h֖/ EWrڒ TgGVI5:2+D2?ZO*M5+|J)"RJISz>\">'HB~H~1` 0ZE2 0 S7h'LMm-\d6Z@0HIDAT!!VVK,˶2V*N?>%BDw@PViGJ) ]gusxAoQ47 R%d0 0L@!+Z73iSG %$B  3,?ӆ)%pl&VϠQ,)%Džx$Paq2r'|uDJk)P[kzi`Owg2?4 P!r_T)EDR.jK~*BU60 0 H]"0<R QI9~qXK@dwgWwG4 DG+)(}Q͕RMaaDˣ'2L>O6i-A@?f%@ZaqhR]K@\= XEW~D2Dɔ{ڕR7K!0 0Lh0Egiϓ Yf $`U U !y{2D"N֖-J8L:D7ܮ2HN>ɿr>DbL|>߸ѲfF0 0'Ͳ{Yަw"NDN 0 T p cӓ;&!pr$9Acv]nFv2 WBe)4|Wȴ%BPD&״F)fy\]m;͎蕛aiEڒ\.N)rll,Lj[ 1j!ՖlnmmI<h1!9_l&s1aIfWw1b 0LL$r\6mJȲl6ڒ5dZ$T[-lz\.pj k."!DG6#]*!i!I%; %n!J;Jai-[H #J[*'M*RRZ-.ڮRp^l(Y mAoDz<|ӳ$Ķm `5;a e; ,MnUN56lX|C=T)i6nW x?s03[n[lyG|f l˝;wN{D~Y իnй^[bŧ\t^/{^)"G~gmy+O?ԇȧ <4pϏ-q埭=x|Xq޽;>7'uŚUϾFo# 3{&@s|< *bg/Ywڏ]ͤV,]^20::T|uM6ywy׾UV֯_j 5MnfV˿w/:vXC;+-[p guwFԅۗg>Ƕܶ /xeWRʁc#ϾYg.I&@"xy"tw̟;?sU[{y׮9OnpG?gxϊ }{ems?:~ lyeLuվ;cñ/_p9,ԃ?䋩g{3Θy+}."(ZE;iZ&nͧ~Ço/}Ig@M9_}ʕk֬]G.>qlXywȁGsK޻l:m) 8|3 n;ly=LjwrǥT{ѡrڒxd`RIT 3fOtrx]jY2xݻn`* 4?´|LnO<Ć |u5%id27^_wu]wq\#e ҩect[ў.+8xh`<>p~e pl+Ֆ8zlh<=#zfu`>pG;rt(J+9f͵TyϝsJiZ_'?I-2aĒ˝wE ړo???r|9hʕnݺ?וDHx?P۶ຈhY3mO?ϧS9)e" @۶ Jlqg۳eؖ= ^z_?{וpyE~$1:s|cܨ_@0} vp}w<==unwg<2S~-8BQLRQGnk׾M Y9|ߨȶm!b>껮Qq-*dp\_ i۶m[|tlVqq Жgo./׿va|` ,e|`VG:|l=tMrKk*?+䙶Qg>E.No޼y˖-/䒻kSe1_;wݡCz .gɤ34-9>Ruwemy>4|Ꮮ~sgfLz7s=?nOU' ~g?ٻ{:|,[M8o9,~O']׿yO+#=o_]zddW_w͇9{y+C[~K}T*7h*?4Pzv6=kϻ_/NY֞cϾm߱>q+V\z#Ofk?za37 yd`wzɗ~U+Λ3kvOgy9x}͵̯6hѢ*5|9\}5XU022o߾ /5\sc=L$|V44fIMTHooo$|Rʋ/ ->s[Yߺu8(G?xXoҥug.ՅǞzyl,w3|W\Q?&/?~њU@:6svO'"Ν}gv˯_t_~T* ǥTsz:Fx;'tco[_yogpՇ.\ʏa֡oÿVWWy~&"D0r|ܲDt:}ƍ? ?9?)T >r~i˲LO~:YW/N.T135\Ǿ^Ď0L+P#K/}׿nMr)u7=߄tvvVyq\Οtm?뺗\rIA57nذ!v EXqwM0 svگ|+6m2wҺ' '}}}Ġj_+[ܹsKsbaɉ N|0' _~_(H&Sۆ/`J/˰c( CO.Q;e3 0uZ/ҕ1>~w_l`[5=ꯖ 1aN"Mן?9}Pwѯ>ظxa_d0@B.e:e~; 6af59󯪴olGr&aBB7nC{~{06, 㮟7%Vt'0 3=L:[smX}S 0Gڬo>7u޳58raafzЍc \OUoddKKLQAA(80 Dh/ߚ'Mi``DwP(T339\;1 0FJ)lvD1O)뺑+cnR$Ç#h!FGy#rq 0h8RR*e@K<22BU022:1ۑ>#GT3TU|ȑٳgIS4/daLe51 )% U=R1B2ófj#XS/r5U'Wҫ Lr,P pVaXsr][*BPW(Z!cǎy(1)OG.wIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/open.png000066400000000000000000000401241473342170300257650ustar00rootroot00000000000000PNG  IHDRb pHYs+ IDATxe@Skl{ J((*v^l؊^Q(;)Qz8 Wǀqvv;σ@ "[qj\_o]` ?/>f@}J@\ uBxcJ/>o~0R`HA 2 €0` ؁@=m(.$ b'jJ[Jچ0zRx\;#_DOI;zk# n-5Pz^w坝j*MIf-pI>/?Jzq~GMY>njm wsao4ai,zC%DdsϫH2pXԷf#nb !*I6GMf^q+5kHIS坏]H (bG͛N>9>zYІ c/2b~:8B)(9?-mVhb~nliJύy'W:3.o:F~wR.N#J͎4 z_~'.)mtIkh}+.d㭖5\heLW"v+5+4&[u#53BaYlrvU|%CtsG8yMMQ->}]vA13 b)gfW|DHDnI)+ V~EGt:/NLKYe(2|$n%O Q?x<+Cw8roh'BfǏpkڅK S3?Y9|HHGՕ@PSG1+AV;Q}s8Db-;]7>KL|zi) QS[2!f:t;oB|hK˨ WűN$X!ʋIF3tX Ʋ1jRDm)]x\tCO/85eg1o—9mxـRꇽS\O}H:QˊYc%۟d|>qfڼsF'\#^>F}Tڿۅ#j;W)a~KGk]c'ߢ_N8AKH:w,Wf_<8LOAd}gt;)Y%bd<붐hzX೸ejzڂ-j(}|h[C6ut;QHA:-\g`0Pas7ai櫇 3WRBgnzESwX_EU[Fg֡QQXļ~^EG Tc;dx3xlK]fmA&bNlxLԓ}uIuUa ߳~{OzṭҁxѲA q.rҳ6:jƮ??l+]麫gB\ 'l}!*:f݋3xoit(/]v;pQ nap1v;C@0 a@@0 a@@0 a@@I}.j]e$-wE$m˩AQEл\6=5.==+GU'ހv"(c2f>O Br ngھ\ -3v8د"1x]j{LKjJkܷ߹H DegeMZ4n(0QAs͹7Yr0ߞq8bO"&j+*v6w~d鉨o\fNg$zY\F{渰ۭۊ91W8otni?(}#Is8',#';}\dbꋳ&JLS(iyO#Z>yJ oIpgۍQ5JKvK 8=,mgP$j,_ Bi]2J{-I^!1Z:=mSzpzO[ԔkmSZLlTݜ&BixR]O%.D@vJsK!U/۟)mFJ]enM}q>ݧP(eee(,rzo՜t"'jZ0{_WK -Z`N\ ):{|VRk"nu5K.=^VpVW|G(+HȞ^l„HhjJ50N~;7޵Y"t= E#kҢA,.(n'D"HK{DH 42>{þI3X8"ғlnZzDD1tsQ!ӳۀLovh}zjAE}z፰3ϱ3>ՈJvqD_.1uUaJƇcY2xUZU7Bn|))cX7; г]5͙Akd7 ~xj? rqmߪ3uu$s.3qjM˧*4L<-fBv/A>~`X^'EYdqvU*Z/NxZ;լW}oy;x,t0|IRo%|O>|PPïQcЖ/e%% ԆFJCK!/> ft94q9 Xnz +}mBa@@@EEE_ox.P z3 ua@@0 apc Β&i$_M w8$I +qnPg;m% C12p Z,jBH_AEhiۇIN:WnZtjXĀ{@+g4h?؇&$ ih+bFVܡW<3BUFBl) p9OͳԐӱ<3n<=#d\듯 Kr1s4Jn7u{ᅠEc@9=[7Dom$p2Lw@[~$WDdD-3mfl;qY Wn,C 9wh"^gNpJ ,.A#'8s:;keu~Z_>|~2u ZH]7Ԙ> O*r8a g OJ]kd 8 `DžLΦΑ]/7\ &}͚zX3⽋_Ӊhdm$[I4OxĘgef5>vQ\ mkh#U*33h>d$M^p:ڬ_LOq.81^Nj5tFn=yA/cv@(@^1^6{m&|{U\Jh^ dڇ9~/8%8jQnFN:y@ԯ4s6T4q!>--bx̉`9Y`O* :&n@|Ѓn z2j>*@@m| ymᘌć~Bt\4x/wԒI.yT־Z E$~TOرY\{a@H3p(jAe_ͷ5 ˑΎ Nn][`c7%vL} ~F##i^nlmbf 9̀1ua@@0 a@@0 a@@0 a@@02CUP[6Krg2+=I?\N'0C/W=e=6l d;c)w~7nwuHMa3.2f 0@ls 'zAX 'vB?n' a@@0 a@@0 a@@0 a@@}op4MOh,O5ߘ*{shKF>ts1S8ĿA h;U($ajhe'sJ>ts[Pj欝C֢f[?0$uקiyE ^Fb .fjBSګh7+KkY8_] Pgu@x]9V$+QNn攨@k"w3JSw5Sk AFhG } ͋yV lF{δ7Q&Og#"a;9'ס *q Y;'/JQz}(Lܶ/yj1xe{f W%)8m5S .@Vh媂xMwOdmmX_Bژ).6Z~W/ҵ%М{{qCu5445 kh="" zVՔOٴc]j;}ojrQojIap򚚢'7E 3h|~zqsj!!!Q Z/alFYz[0N^Ce7_V0ڒ-/68͏[:;/77-Q@IfDd!q @@w$\`|}鱐ҹz,->E˓Fxm"1'C&$Uڐqe㉄\/{Tpv5 кw.>J*k. Wyk8E k6GהGn^<'~yxҪ75pR?^Jy|+!D/,$BhiMYۘ Cy|U[7cQDm~!"=2##PnsN6䄯*WeCw`kb+\zh=ѶZK^},.Àv 11.>@vhe1 A&}8v n'l=w7-nKwh?S3ۣֆM yW)9Sko=5yS<'r]` €0 +x099 +C@@@0 a@@}C98/??_GSq^pJ_N95y0_s{)'Ҳ>ẇ.uιeCȌ+:LysFn&N9DHk>qɱ]|~6N.t()FT4qS@Cd}.אt3v* ]\=~;N?~=j6)R[mYq Gq?5e.w0 IJiHObݻwtCxxÎD*yWx74c[ߌgy"|ps4vE<<Ϯe^MC(xk}Wb7xCZ缩xWoNsyOW1Njoob7hNܶ=Fv&c;W}ۃ/-1?eԽu^_(cvTE-/BW]59*vVݧ M OқI#ftX?j6ll^g1i9-{l0gUz+wv{D vܹgϞ=5VHHR^(S%g"0Y~Fіm&zh']k~Tcq3,7O_jGiC}5E<|'& P({q=~ABiPǽ-X4\VQ^Y$4y_]u/ U^xµI3aaŶQU/KϬgŅ^_J9ٟ%#I "oKrK$2ހvcu^.?q/MG~cOΰ}5[j]’?TVNsKKN>*+/yu/ѣiii!!!Y[A*'ME%mǣ3~|1p~hx,!.@{󵳯fdnx=uSu3SbYB=7JOj [^_PRRrС7o fjQ˼fw>~؛%ˈبg<ٹQ_Y=SFBE|%yFK|GZS'Ia.ds å*iy "V7LLn-Ζ3BΕ~*4S߮ˮs76ߞz$+(M;k|QZoq-?ohmmy+++Nj0Km}UzqG:AK~NR3ۓu3UK0qWLfr"33͌&*^]ےQH^P]®&J//h"rΎ}aˋ Ncǝz5r֐5tqJu}+ݣ֍GM (f/lfE @t>lj(@:?tLNzqV.̴"`7)|. 8QzOWPSG1+AC(ԔY٬M>h-S?Uڰ-g {1͜o}pλ K?4 4?_f \Ngss` €0` €0` €08l'HZAݯv;97@F6A A\NngLLFo0|-M5Y!6hؖsFR㏗0ڲ,w$-&A*9Qk!]`&-.d>~v:br zZv~G/, 8kqEiD&%kAI\-fސ_CI])my;½B,S7`VCjNzIY&Ϭ^j0ol6c3QbJZ{%S 2+v+5+4&[u#5b(}MOQ@*36&qBFf:98yB|688fy;9 u[0)ڧ5dWTEofwa9B(쏸qv†LDk>~jWRҾGhzESwi%=688f]NZƵ=GFHH~rVq# sٖY7&,1l͆ۂM@A@ fxf _OQSSs`G\Dxwv/va6lܜY\Gܐ"7)=[nfSQb@lҶ3C4L&zAvBn'пa@@0 a@@0 a@@0 a@@63kt-w&whO"/s,~l{jǬ:BVW{UODP%r370I-|8wm@яPWwTbmdfGoZb8fZ_>`V)և 鵗%M6'hZn|po,?A` VŌ,%!j1=`ߟݣ<:!.2%ݵϖx7YN2SRjvT=R\<\]hJ 1my=_c%۟d|>qfڼsE4W?_=ظVS^F|޿T\Gu[;'hIIC箛Ez~t0%t;{WTe>q]ž{]ef5sQ&H$p8fpNNi'7mPs_g|^N `+t/X c"2lB{a5cv"<<<ȏ'[@گfp8NjWӏ*:<٥B$v$1.V0n'7Ҩ~SIRzoWԎxukċ{O^AI݇_j*k1rIdEUKӏX DEӉ|?L-)™Gt;K0M^b4DYwC przg#u}]u} t9׏Tӝ|$N1^{HSw{`D1u0` v;! =€0` €0` €0` ܁ )Lzﺝ}\Me_vr$-.q˸GW9=/_4H`v;z|ɨ}{/;}@}`4lK|ҹy#DK^lt U )˦q]=mtŤF;¼ZbQ2bj]wcq;= F7DbjNQw/ӟSӝw iU:@/, 3nIL-Ȉ[6gھT@%YVbȡ@}sϫ)ť/B{RaN8CɅ9EI ' ikPݚ.΁?n'(//q-b% WVLP(Ƹ5Z;Қ:.BG+y.WAzVZk1]|g:k 1K®Wj)&PٚvIόcB)X l9[(s@#֛7o~>v甉(4*Xk ǗQY&8l[JMe k io mmTxp:R{Ԭa ?*AxM@[[sr~܄]_kEQʜW鷿7^ *^.JPr=rӫ'lpB{?h@NUuoRJdD3q?rl"f`oe'ξS8i=~19$ҝwviJ6/("ӧŽ΢F>s]N׆n&g?(PBcmuu*Gvt] yTDi]|Ln\rd3mms3[ӣS-uFU.)clt|e+8 v;`€N߃0` €0` ̀{̀Pg0 a@@0F3v֡dѪ(=? /I_@@X\Vᯣտϧfev$LP8r"-;ë{|H\=WelXn5s&DIt'.9˝XlO8qQekLuU{ҾLkr I>wx`IwWv ^G}r#[C*yWx74c[ߌof..7 7G.+u?% 闈Rm{D8}ūjM"ULwTͫD/7_6@[bԃoeX6* F:yY)q5k>UFLDH3ͨ~ubhC-u MÙT:D&Qѵ&HܲwCsrc•5VҝPrvˮbO>fem&zHMv ŶMPr=2;eM0UW@{ NTASSCU(sRǽ-X4\VQ^~(0IićX'v_~&`+rœ$JvBz ٽ{>?u -qܛ_P^v4ٜ'GE=m(!&zvng;A҂m8n^tDVhͭzBj.'s#G?zk#osRc)ÝcW87@F6A A\'4nfϳDtKpOn pԔO8qvo nבP0tNd#y.r'g!-&&cC٬К+b"#veڐziCEdY/pI;wZ9jQƼKo2ZvO\'!+tMa(hiD҅iDQ7z[N1 AK"aUp/\$VKAQi^3b.ňLR7ςQ`zh Ivqz}' ݷDd|CW&!&}͚ySpWRcn"($@:VjOcv{ ,Gm0CE75/=TM'Fp:ǶE!(S6\x-}$-9}іZ @S/^^Sy'./Z-}y!N^g?e7 z'"S2^]_y9 >*݌']͔wQ'9zqDDaO?ɫg(ii2]o"QJc:U7_,$ SdSӴbˋacP!)n1C5A" .A"[{aRA3'uwR# X:Jnjdg4Ů5R H$I{ItcCuuKk h|[!B"B 0*sƆ34t5XˈOٴc]j$\qk'P!}ZCyEE @t>*%%#//AYPLQ!itOzyh ϣUƓC9!l8DVAMƬYHDA}N7{QW,Klȕ^ZOԝؓICSq"k{^~-F,(;pՕ7y?g8z5Ȋ %:2Kŗ&< '?T|PЅf кw.>J*k. W߽D j݋F 7`;q 4rIN]-;ߐ:@<77K_?RMwtZzJ!mGdoT6p po2PnsN6䄯jc4(heW&l2un n'57#!-0@?1]xL)C|yh?9l}cVpAeCP^?t wIDATx\Uː )"PT=(PKVY\N&skhNܐ *q"XZbs9=.\E222Rɞ^7zSղ'NJJ@Gv QA( bA1 AD "FA QA( bA1 ADM7J51H퉄LQg3fA#;KD~c|x:ZbZ+'/>iw **U=Y)W\*ozoʊѦ ŰP2},}^3IH4ƸZdW/cHL:!_dWGjx_ƭY` ʝQ-u7O]e̋q dŽbɕk, 0ðH5G=$fBu,qA b|.5taԡ 6?w1jx f"*f'3gjn,Hʶ̏tj>K8I؊;䄀D~7&rx<}^N<ᅴU[1ne|AD& Ips5G*Z`v#9.uMCUgtx>*g1 ggL샃"4_dVC[ TD8z2;GAxcy3U/9-_ë5'XP͉&ս;O~Άxગ;s"&.;A1ijD b㮣Y)OjH㦙NE!Y٨&O67*kFyn6V#sLsQ~ cX qOl`QP5'\$&(ZJ;)I1eJp'&yʜ&#FS;q-FdAc9u#`&LZ,H"b$kF c]_7uP6HzP >8M,?_ _Ax;ĘnؾaL؀Uie*=Y=yVUσҧeo#OGsu%_;U3#k{ X… ZZ]`V8w.R14Q^zr"RRR _V "FA 1 o/(H( bA1 AD "FA QA( AD "FA?Xs3KJqOʬf>P#?wbؓP*"qo\OGKL bߧ~>XF? *{qK ihۖU:vڹ}NAoW~:ybm۟֡ݙK߰]ܑr`Qr{V既`ٍDoXD:&ҡ3vi:z<JԘ3&wAK/n2+Wq@gUmqd`[w%2t-(nsLύYw3+q\&Eb;]rc=n0YL/:`gk4bבS;SϧF҂8T/9"Wܯ UVŚ:Ԝ:ݝ+i\ݻCjlz37)by9YŊ8~kY23<ɋw|]Jyc~f'l6۩v$_QXxevwf: %R g,k0FOW֭)};7ogR9=ÿ? ԍNͺ!ݙg.#&DF ĘnؾaL؀Uie*=Y=yK=rcK:qC ^=u%_;U3#P!KJloRT 2f,,ߔ3P GDޘTxܙa;ֲ}!ikY4,vVJg[*F0K6!u rA1 A^Qx{>FA"FA QA( bA1 AD "FAA( bA1 AN1?;¦X9y4O{땶U`ͧh2'ǑU+m?C˙`hh1Evnè<|4IɩQ i} bchۖU:vڹ}NAoW~:WP*BWaDFc֥-x(MZ _uBɮC ^3.~,I5.[Vk264tf͗fetӟN6lsžD KbX qOl`QPP+/{j|pH-NZwbmm}NmtKNG=A" p.egG|[\gC~˥41ډo1%́Ѽ4az< eqD#Y3bҾAzTԃggɠ?hW`mҳ{t`/g ?'wob n+r}zdCi b|!.X} -˜ԱUҰT"{z{-󬪞]{OʸסNG/:̒DjeqOUjƂ6ڂ:*Q7+vY◵nI >f4-1=}'U6\7"V+hu3-C#'G-BJ 1]AJ "FA k1 o/(H( bA1 AD "FA QA( AD "FA )~c|x:ZbZ+'/>io#ax6H +S ZQ[IBɩ)b22M=}g-?DJr&a\X}ڴdd7sټvc\_az`fL%n箴wA(XbLo[.Wؽw7k;i]Ji ; ,ޜ(, Cho:8s[jOnƲ5]G%] Q{NĞ @(KG74|~2su]h޲"'WfԐf%miU ]N,D‚gҳR ;"GA(0b^'*15W rT¸5l!cCJJg|ifhW"j}#\uj}ݰQ+ǀeяƾ!4t56S G|' A MLFx~|ѺLnjE)Q$5ik7}p>_rjm)ki[; #ʴ%pvƷ`0WZ[Rj~9Dz'#86oIz:DIWkDױk:NM iP u٥3O 3(OU!95nc(ETNf;6X͙|&p !90#vɱ sߍE{2Ϩqtgv g~[͡رt_BHk֖^cM[R&6Dks{㯄WC3ZWȯ+2QFE O0۷MkHB֝D(@3$ݳU>hٍDoE:&ҡ3vi:z<ೊ9p6{>8-qi}Mf=]"W%bt;mI>rg2tNǟwgBR D=26y˷;Ҫu? sWW,!b:4iU_WacV&lKZxIDҸI"FA(%QjA9ʪH<9u;?Wd;2_Z))GpU/w&EL a8Hh<έY@Z32)t^Z{3{(Ύdx*h˟J9+ttgu,(aBlu5=% )q4s).ǝlSi5ymTY4{u鄍DD22tCy N%nbb/5joy4z%KS]fٯA^nlS10q}˧!{]Y #FLe\ƱB}N/[Mo} ᶛ|ٗiXHǙҰ ߪ00ĩ\m>ʀv\{Y eEOGuU}FfX;WnyS#VdܸKW֤Ucgs hn! pеZ WW:w.R14Q^[6!u7ݤA( bAx>FEAD "FA Q-$tjj ᵣ+wADF H( bA1 AD "FAOff^<9$T~.BC6t @༏yEbY‹FCqQhN2cml1/VOONNj7Ѱ)ܦ-?T&H=M*9ZbnLvq92.mcb83ұ_۴dYt킕6ewE< _##j&==:_;Xey>Ą|no\RQ=]?GeW7CpzW`̖NΚ3EɔVYe1c'Z?CvQr< ;@9v:g0.ICAT:nhφM~kڴ4.  {k>'_?uC])hXftF?:&_ًhf 2~+:сy`mR7>95yn}KV۴`'ATc{ZT$ղ"sv{́:F'B"A$& au19`w7bO鹇auݓvu1B889O*\wAhbn'߉9hSjGt.GGr0\7iwyP$W49eK<^^aL x( )>wt^(TިMDu 3ڛY;?e*xU 1;PA_dBOa+=nѢ[ D9[j1 AD "FA QA( bA1 "FA QA( bA1 AD/̽-9^l|mOt([q_ZoVpGڞ ln9=l+UȰ(-ʠ/Zס-AU,+Y "eUKв9T(ͅ5, 3&wuu>)N/ZNŨ<:d T}/ +X7K8Vӟf@cOBSsR TUCio#>]J{m1,T喟IPƷIbE1qvLcU%mEeG5f2 =Qv56&s1s,+e0AĘ.4f h2?/?c7GbE﷯O?>Ƣ=Dng8OK?Lhކ_X:5V's,kb w|بPq xHj*;Iaҍ: QQ0m̽UK &O*I2j1:$9J/ j1lzOcZ^ӇS+n6sv(gb߱4! \vz׉? Ǽ~|9%mXkO*rUK)"Gqv4 aɶ̛ؽd5-Sϫjxગ;/"&ʗrl,`J]&#:,([NWM_j]ˁ*_\HׅޛB*iiNӥVӀ%h }zk.J5D6}1s%;AsIk4NA1>F֭p~(VtB|MٲM:ıkZ*V%LY[tt(ai [xghNhV:Xaz!D[޷;ނ [5a* )-ߠvz˸s ?Lߙ ;ѽ2Rp>h(&āØ3qhX;"(V<8}{A qEԣ֨뗥_`9R= 5l JOcVv/}x0jX>Goa%}h!ue kDuZ=!vRRRRɞ$bA1 AD "FA QA( bAD "FA QA( bA1 E{m1,yH -=q.B6540WZ|+UaͪEkQE[&G""t)44Aa VNRFr08iT,6-b]6#S  לbZ]S W9͟icg)25u=.jK]>^}҈Vf<,Jzo|'".j[90v5)](689]TլO{sL- DgSU77ܔk s cW:#j[ԏP/^ޮfoFQȄh BA?-$?-[Nr6ߓX|]j>Ȯ6*mV&f(Pj[Q_>`؂mDcŠKzxlӡU?6KC8`ݔ>֝emmT*QٕJ=̄mXiEk>Sh|2RsF ~ hO4[5*|KWSaZG$x~Hk6F ]DdFLmӍIFA(bLbْckWrKd9vTn WڶMН+tNv_e_Ei R[Sm+j$p"1]l Zaupbl ޏM*Ґ5WcX-~]A%bq޵.Vl_jJmqd`[w%e\Ib(y2_xQ®^Ϳۮ&O[NyRD:TuΡJr*,ەY axmޕT>?> b^T&d^4V/bgsCG_^+{ꙇ)hF5롄f s 6ijF\M. DuӺJ!ka/{^WM1kK8zdO *.[I8vMgp(eھF2*iu<"17re(ZJ;!kwg<<<QӞ4n`g#Bԭq- #_=ieܨK%-,>IrII1X:bysI%lҺ Ƴt=gI{?-d\y9|VCgbPe\N&?^5 mg • DdݢQV8=>in(#HɚXvחMOc)~Z;NRTݘٱ>cFTiXQ_>! *4k&43aTv,s^wê罳ԎZۦ4{|_v7f2;N,W§\*Yemw ui:QR޹, s|0sZztƖ>u(Dv:2xtp- a.\ЪjLFa)[S1|KFyuNIIJ:@4-UoZ[AxY;ܽϧs8>r bOơquy ݙ֒Ƚ]n c1J;2Q)D "FA QsK.ɞ^+  H(FGN KȞ^+_ H( bA1 AD "FA(޽[vv{p.;Ze MBCCy:tkZ4 K,m‹ҥd16n /Ҕ6|Ubcuհg8zDoJ))c"Jz}#q2) Wâ8(oJ&H%SDXQ{*Dbe6?4W:YIfJDw$ i4oEC'*?OICIe*"9S;JEm<*O=DwʠvoGʌM .Ν;tؑT .… _=3$SjurqF"7Ȍ7˼ Z'ӬY;V3+6T:>Tًh7n ݬPU۳9bzzryɸ˅:y Q-5,GNS;GS'HPW-]:81;&1x?6M}U%H9POiGEG9*⬩DeVv糂C(&[|R%HBowPĩD:_*)W AɻQ>y))kS'oqL E5 (bdOJɝGyepF8F617te>ݝH^WW;ӧYg̘"F:Pו\F" u(ǃ>QYP :g}^=3-MO%][ɍ1W=̴c\Q .5$+uEK&T}4}DJ{DwNxSQ.UKUCL9XHIc(RlaE͔sc2nʟ,B)m;kXѮJJr yJO}+t}r>|)f(J˚lzR5kVVz\zgey^|yӦMT,(aBlu5=u5q *:UKJg8ɔ+o4Ny6>v;>g}07s*M~I-Y:wZAx\yܼ5^W|׮_zWҚJT'o=_Y]x6P]>'"[ؚ>1t~ư2if}+" TƮ)U"|"a+=)gQe%DytɝG25^S\W[=[br=yf>s7oN\\N<ɀޗ*U*ۼ>`QPyn J9i<{Qrvd9J2D vaWSvϗb*\X̖b&.\F+NqZW#dB7š?yUrЪˎJ°2OnóJ洒R`Բ()q%'_t&V*m *)qvT;駕+TRmc2n!E("8*C]ߨWO%tݫoZZ2kP7i$w9wԉ۷oς (R/@eN8#Y ѱغ[0J& s?ЇAC5$,i#F1=کY7;Sv9nbMO~Lp(rcN@i|O3rV8%tliҺ Ƴt=bcy-B@%PN)4JjoN"UJg?U%X ʽDJ>ݢEJOn PT<+qIYy+B[OWDG;) %mlWG7fڴiYݻYq}K.X} -˜ԱUҰT"{z{-ѥԧ X +;RƗ[<5n”w&eaBOײTo1Չi1lzgR V[Vиӳ{yyqȑtf͚gM[RnHIIy"񎛒fJe0aY>%EDMo=AnY)Tc`037Ec7Lg~xx:.g9U[ב2%~ _6bhhȪUk|wd%84~3/a];ZQ(8L }  QA( bA;d\5D "FA QA( bA11oVd [d>fyE hAWBcOBf]-E(֕U4=:՝P)^mE6<DɱFQ5%tF8)o8^~xHQlJа"b 6iDEEϛUd13éb=:͌+DL+MXz$CeV ®RŮ;So<0T1z4q,ݩz8 oV]&st}ÿ ~*|ռ'=k?_D7b₱TH#t.cUzY5jDhht~ak~{{tfdۿNmݦvɮۜZY-]A!?S7d/>L@*+K8Qzb| ~m'ן{V\>i\w xEhm[϶OD;`\|4/+{s3,Kզ˜Y ![Sk%ݱv TUpml>_{uQ,Rp)D͝)r i\9x.U?Mz(_,~m1ͬy*;`^DO v$I\?nبؕc<]ǯ6vgN2Klۊʎj,e\2Jd8yf:4s(ٝO<}| lR2Q-E=wkL(U Dc}K1UP^0{V"f?:UW󩻬\ CW哫&x?-1rFIyʀv(g65 X<-SYڟf5=(aeZMr%clӵ<'aqS}B "uN'U$5N>Wf盽[6ջp'57F왷M쏋fJDhɀײ2ö [SqlCXq)qd$̣]Wl]1AdEy:Xׯ#veu5uKRÐckW<6F ]DdFLmӍljH3I q́N4ٗ?wN#yƵmOBYW0h/Q|S 3&(} ֭[Vj]`Nr3?Ŧ?]\r1N>3j1ʹ?q,C؟;q:/ߦo lg jF:֝ FQs?!uR4[}:N5.MJ\hMDwϘ%. ɬ\TY~MI턅}F3oU2kU i3ջNOW3[ne[`0W b2-z@Qcid]k߈Z҃gQ%ONVΥYWW܈٠^eU$LT>'Nrwx+]˝^p;%qDD_=^ KSII&#:* ʖy%BOO/ĉV`¢z,/pkuojϗ[SGK®){Uƅ1ѦϭUhbn'ӣlwĦ^!sĘ~>jL b] /5`#n_ɑ_ w\jex3O*lh֮|@3Yol.&&ڪ1z9D'}-˫`m!z|-j?/?У˪ܩoEk0.W_O mnM=~X&f> CO5soޤe@K'P8l˰@Y?ZFJj597hf S• Q䉓Z_237tyWӠDޏLTHII_Rlou((Z_dPS9nYz-_LƘT93rmM N`]GLTჲtz!X{“J%VߨQ^\pzO>HQ%K.)aDo fǁlZyN cx=Dש&|%<ΖbfLy;$ۯOSf azPC<.d &FI(ZJ;)ek܉Iඵ=/;1*=ʺ@쉋neaetKPICL>ENJ:3N Q 50r/*(TH. ,IN$`XySbYRvJ)>vH1˸yX<-Z87x#6mDx6@n#vN(H#'0a͕'A`}Eq}TdQQQ:R-` bXbhl-֨[ƆQQ=hLPQ b } `5rawggv3>\oܞFwLgS\ф^غ1L ֥Mj`%.5N`ŗ  Mĉ=5{> W2E1\ٟcH aW eo8Mѝ|7%ߣ㆜9XǍkr4+5[\{~JK|]~ RnԴc8} _U*,ޏM XF]7wFRa`s(Ws@Uškk mFdO;ԪFV-wlK[壕qO[v h]CUǦm՗q;=uukzTP6kŽhhCՆ}^%,kjbmߘ?gٳYv-zzzE])t9~Rz-(lXK۝TfWXϒ596|<_iJKqqn]L saZX#8Z`iݘ/tf@]= ^%Ω+}Շ*̏\J;â1zZƻu|2zN +]e+M>d|Jeƽ섻a݊"t EQ`Dtgt޸-ʺϝȟ鵥%Y rRHwS G8?{x 6LegEO`3q1ê#[U鲺$[xE!sxBB!(B!(B!(B!(B!(B!(k.C5-3ukT؝pf 5}^,Y`Le )禯4ZMDDD @A%CJP՝B.[rc:unH%±羡aɇ~Ihy kܗ Ֆh5S?9)|HEɥK`X[[ўm<󷼇9E'ưLNm+Oƌ*l{pUn1MAv09:Ť=C򩶶>T."ք &ԵTRb҈Z1vP##-q1#wRݟM?e)m\]fp h}:-\y2Psυ6TDU}-cii?^^^ܹsH{ֵP߰xtƥfcZwïO{ۥ3GnT\̍(elIMv+Ń p\i#]0:h ]k0xF+v/=nYV:}RVQ*K*Taml Kgc83\4cH9F]]wYV'橥W5ZJJ0A`@9dkPڢ&ޓW[B'p &~f2fu<ɩ;6l8A#8$.})OGZ={ӫqԯ_+W]ty `ꄓyv{Z,>{$Ủ1Gȉ3?̆%=Q/ϊ6ƓjWNBb.$;*ʯ3d/ϰc~>jJ4el>H{O( 0xt3 wUϗMĻa jؙYuF]nDyc%uz-gU=їzUXVƧT5jͱ77ǾUTCdu lW^5Pw5#SkLJJYd3qF=pͨvDRy3~hie5o>Ɖ<-RV^mo|SIEL gMk+ uhZږEA=PȦ )?99(EijvNsUN:Kt0K>ۖf"R@ql8ՓWϨ9 eNkGltroPRbR5,pײyڭ: D%DZӳ"?EFr75X1~Lq&T2)+,=7_QxN=Ϙ̂M!\B[3/F)fov6W;`Zs鏦RQL;~m>׊`~|ELTzӖ>xﴱ1D;5=ynNt0om x̦h:[E|j~'gbs%Uƾww%7Uu ;-[Qns+6KeR KD&qV≯jzre\%{lt :U-動)UL%l7ͼ߯峇 Ww< TC+oTv]Ӷysjmʛ8{c0̼EI|UΝS] +8.FrhM ^\@@aaa̛7hn#V3-`[͉}9!zͨ_5FG] <+/3BيO*<җYO{2g wWhk`%.5Cgur+\HH] dpܼR-Vg0>XZ7+9V}Y<X[ ᎖bbcc={6k׮EOOHB7ס)uעYorˆ%|=ŠgQ'z,Mm*Rt3'KKqqn]L ^_԰,U~n4u^dG]jmiԕ˗(sޖe#u)5g!-LF+- ŷIdԤH;m4foq:)!+Q &-ccNAfu'Ѣ\!II"mN-i<$(Ea@ĝL1sd>zSN2lj|?:c2( ?cB|H0 !BH0 !BH0 !BH0 !BH0 !BH0 !cїw D*K2__cԭ}PYc`̷E2] *RЄ=ZMDDD i*7ST-y*0t4׬p|n㙿=I$.81e(.Qr%<<<ؽ{7Ek<3J>c1d] ;GMg\j6uw?\U}ߘQ9udzkmxvdў~ך7e`` OF1Y;5,Azqŝ;wԺ?>=͞fq ֍j-=ns6j%m)Ws6Zp;J] KO[Ng_3fjT1) ~47,K̩e2X}竢n>Ӯ\{MTbY}7Ȓ`NFt sךaHG7m$ ü݌(undT+jv笼Y\7οEp:b73#`Y2$ K.4oui,>{$Ủ1G43?̆%=Q/ 6ƓjWNBb.4BҬ|O5Si;Po"4cï5r;{?&+|Ň%qY9}w&.hN.bZ-G b8WaUxגlNThs OkT*L;њfy+STF6uLc@]mIkLJJYdk;|&84=FK3,y7Ni)jFKJ**gnXf^-yRiWa :::L2iӦ-(>c;}AIMo-4Mlğᮥ+Fߒ)fYSa#}۲k@CD%a`ӂWͥś=.ukwe,,, tc]t zZƻ5WJDACm~&3Ye15):3tER7k(-)3Sۤ%ulLЉ?a?q$Zk F!F 'dr霋O&K ',՛ 2V+1mc1 !D>$BQ!$BQ!$BQ!$BQ!$BQ!$B'#Ɲ[gV]v觋WG'áZnݐ`v5dbHIC*s^^+q`h]M8E unO2#ЛUwasٵGT(ks>e 0Ef<ێ^p~O6Sc|ўm<󷼇9E'ư + {"}\~ci/ҥKxxx{nߨ>Y{#1YB9~ÎcQi6~|tuşyiQ#ڵԱ iiiJlJgw0DųM)/EL\F;c7i'f^SDUF3N@T,QY+uξx)%xyyqΛt̓hV BIɒJ̝te /ڎMy4̨4&jqfbN礞cԨ`RcOhn)MǏy1Jpn3ME-2eꄓyv+ߤXDCprp,C/+n\6&VOm0nL)>aL]~IC|+s'W|{11=֥K7oOE݋,,6L{s2ۇVU)B9#ssךaHG7m$9IEn3aКNb{ܶ?]mgN'q?~̟k3`DߝK0ZS-oF}'Vn|玍 jdMzS_z:e4-mˢTՠ׈~dS$c^ٽƤotM<`)M*ڴ T KԲo9Res =5œes,ZLfҽ?b.Cd<=uU|9*ۦ XsJh# `épG")3;5e Юdv2K;`|󉯧גq!8{VDR,ߟ鴛ܸ)SLaڴi9e ޴ݦ|)|Yq ]`Pcy=,3QbKu3 ?IhdQ9OkYR'Wf(JXcveW/qc GRˏyۏ'yqYS"d97~EAeueH<=I sbO)) 83f\$ 95"~xT?,Wοs~}I{W?^֓Eg=\?)PXĂ8w\IU"5<q\-iE%"gS㺖Qd<1ڕ=Gt*ssT&Jc+;}Lwdď3ʄm r6adŝ9wQtlq 4O湘-+D;bwwO8y ^$1#b5V@aќطH׌:т ; 3) UL \:/̻+e9Ǧ휻uĔ BE­ܺtV([iW%G2k)b^,~2Ř+ 0͛W$?N9cܢ.TS$HH 1z~;z""NӦjAeȌݜi+6f=ޟanŀ>e4v8+^"v7gjIka|?f!'>frC:9K0`Ts~?:4NZ4 Qcٰ7 3&WxWtGk(?h5Rc"ޜF;*8r2z|5ܬ<_d0ĸQ Uwh⿉a8Ph.KGbcc={6k׮EOOHnݭ~ԭ^ou_>i%dgTd' S㬎+^=yeky3h:Z廱8x,}e\Zo8Üau3Nըbא14hTɝT^8[8aS#~)֋a-$uve,,, +ze_X,;~ԕȟuᡴBH0 !D!&sP9FQXBPZ!$BQ!$BQ!$BQ!$BQ!$BQ!$C1zyH!B?r&kp3ƕǟ-I^ :F*Vѱ`Ǔ̜o5B 3{H\qb PX8ɦܚ_t vލ ?lٲ9)= e] ;GMg\j6uw?Taݞ,X'M0WtB 87u-iX6^ue,9v#4ewζei`FiòTnЛB2Wp`WT UvEڷcJX*KadB1[#ibQiL*զf|eg4DZ_EAYZZwܑ=LH0J:dtAǸO̳ҵdbj#Nch+GL. s-90gVn3BsDlr}pɇ%WӞsFƱiW`ĺD؈>XpK?Ȕ>sIЋqDXΨ\qg'?~Gb9t G{Ek|N=3|OEr$?ʍi; clݔZוEQu҅͛3Be3qF=pͨvEKq&v. ZQMQ_U|D֠ }˷g씎T5URΩc>v%z:NehzϹa'_ۛcV.}ybJxjKF7Tbn[bTPLFz w:qA5Zf{1gx ˫݃YSnU; c yNd, *W{<#?ؚ2,ߖ*~N{܄3V &J`YNS9=&*mJQx)>O!$׫B?U@|Æ?cpt n0`2xlY{OOE=VWdJ$wZE8",gTT6nt7.GHIIB'A*(mS:0Ӯ܂NDiՄp&$߹9irQ2ȶСU9[餥JmҶsC%`KL KRRiIOw`6${X䳒Y$^ 8VƞVs"Iș4lv ƭ$6F  bWW.D G䷐ㄝ!֐aVņu23Ql𫂲hLtرnwCٸ5FZRC9褖7Iji)BH0?L)sll2W/k~7jJOkSxvepj|!z4n`[hBɋ~deAhui!?Ly̔BVYJ&$<f|W|,qڝ,oz0zXcUn''r1(RL)oyQs*M9w&rENAjBP[,**@ӻ=}Y=Kgx5N>ȕ_]{,*Sa&jA>_ @7+gz,kxC|Q*o=CtG.|؅]7xK!=]o܋nNK( ! 2*}(>wG!o0זfY67ΊZfbUG>e!Dsh9F!=F!`B F!`B F!`B F!`B F!B!(BFcG'áZnAvn;^j[`dXJB4(!$_T+^ynlO¼cڿwEu}q,W==+{ ,<'^k.>^ToBE%Za<ENiu0h6qOuRP;Ba@:S3/sQ#[acZLZcV&|-n6iz1N3s5m};vn.. )[VŐHpӴ#̧֔54Ծ).#.Z37<#A#&΢NXTj\o''Ĭagm̰i6 Xk%k)DzZT;ԉho=G#ok@ٲe唾cQ~&3Ye15o*(VN݆nԱ1A' ͺhQN:6BH0O9LNY>7-ě(,dQB F!`B F!`B F!`B F!`B F!`B F!`B7ҥKjyDa!߮# `5]`dIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/playbackspeed.png000066400000000000000000000670631473342170300276460ustar00rootroot00000000000000PNG  IHDRKBѸtEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp jIDATxxg! E$ J{UR*JkSƮ=Fl12,Ѣ']9<}}5::A0>9 ۆA#"Q\ #",!AY ,AD "KA RAd) ,AD "KA RAd) FiRҁZzFKץqXHނNc(LVͱ]8c8%Lxx+'}K*u6ސ#9iڸ3J;+Ʌ$Y_[6bj7ejcĊYEo7q/e֛󨗯>S7Ly),rYׄEgIu#aki]|0ۿ8%,gـ:x[& twDIG&Sϧ%dA}ssadX<ߕŪt.kAYSvzʷkӌѦUin[ɾq[:(? ,b;]b|̎J3/ BB?}}߫9573 ;0ww8G6doݍ͡5W%.v>0AY1z`gۑDΈcs(FݯG2N]PeLO/%9Z^5w[(1?M̝GOh^p d ޮ:KKΣWܙařH3Zr< U)L=GBf/\ 2Wn _>w9? s(hÉЕ;Ĝ:s7)6K.<&uV}7o+bշ&lhkybAǸل?cj?#$^!m2!:8W܋8Ml>{3;KS^>oz XPgTA@!r< s ٣9qBʊYx -:3DN0O{/`ϩ\ g,: Axwe,:Vn]_jO}goIC,E6}76v{%zlwϢJS}ω4,㉛Ou:N '{r:]Z{{)x{.()>r&-&D\:9 ,AD مl[٧l7ZA"KA RAd) AD "KA RAd) AY "˗GiR sk ՟ɹtHq=+Ly׶α3\AY Ϯadx;Z;gnl|^J|K>ͬ>Zz{OeӤ@FDoS3iZ3njܳUӺ5UE9NEqm\m(`!4 MdX9l;  h,wQolLjcnJ2<5W&мJsYׄE͒6#aki]|0ۿ8%,gـ:x[& t_IGPd+_ɂ*Ȱm3﹓"y pjeJQ1;,ýZwՑ#u48*q\l.SBu,-v$?$˸]e4biUV/CD[:(? ,b;]b|̎Jӥ/ BB?}}߫9573 ;0ww8G6doݕfҚ+^$NRc"gq,W>c|Ova Of@GVN\G~G*9ڟhnVf:tdn#۹#] HژD=Y6..ߎ$vYcs(FݯG2N]PeLO/%9Z^5w(k"K86W3w!$ΛΞ"= ߊ#={o>&rhB(7?U?^y41Zn6XڕmV^̪(#صfT+\ɂyKΣd;sQQ|<58tb3W2 cxq\p5\Y.3b8q%pk]ɄQs?{ yg_^f\8Qlpb^ƎM#e^2 7egDAN|'ܩ%IGCj%:t,ћ.<&uV}7o+bշ&lh?~JKWlkޔ5zOXN_?3W󠅴2Ɛ6mdb$Ὶc\MlŸ 1{nV#C,W8q;UqG TIkz^ibco9Y"јQԙ;Gq>9s0pY-Bz\C'BxvYlosC`Ad0YPgTA@!r< s ٣9qBʊYx -:3DN0O{/`ϩ\ g,:bm{P$>~'paB&œJ6ķqcȗws>&f0hC`YN-Yݿ#c勜>(\ ЏKoOk`F?ڍ'ľ3˷Τa]حݑ>f!m}O >'FӰ'n>8%;z.+ЂYA_QpKOxD\`:+GWۏE?Δ/RZxT![Ŝ9Xѭޮm0呉[d,ӥ%yygg2B#yW ?T Yri$ AY dmeƲ%h)gP,AD "KA RAY ,AD "KA RAd) ,A,]ȶv&w8P lF˕K<-ǜ$߲} (j1&䲴ýbS6.S੗>S7Ly),rYׄESH*nZZbW&/ Ov6Srr k2 y(\>|tp:-XRD]e4biUV/O- Fv.1if= mj>Odh_j2aNMLNƑx=u޸AdƜ' n6..ߎ$vFOhC1~=yv 肊.86g*~~8XZRݫFtn2|]%\Y:ѷ }ѯ2O9:S5AȆ]Jh^reTO +DђagJ[֛D1[ rg|64beIJ=a$L )3ƪLǾD i+ل?cj?G?q6twPNELq(Ƚ>s4GPH/}SF8Ηf>:E5ܐ~Adp #h0[~"28c0{@";'`^HWBY1x WE]chӉr&i9uKZ:EYlҹ:bo8zGw-`m[>/wW> {3`L}:!31rU \:x|Z[3u }nf!m}O >'FӰ'n>8%;zyƒ0!k4RɒTn ;uU_SQ;㻙`6JeR(֓6*mCӥݸyygg2Bc g!,8>v + AY dmeƲ%h)gP,AD "KA RAY ,AD "KA RAd) ,A,]ȶv&w8P lW}M8xUɷATeLL0ȏN…gvϟ}(vw1Yڲ&ޣ"ŞٓO} } mT޷t׎8nͯqZ9LL0Lɚ/ˤS3iZ3njܳUӺ5UE塱u|&}ʝݵك)QĎ<!Nж3POxY"WK7 ݿ_%Ԭ؁)B`YcRK䊥@2Fcڰ04%cӺ a ˒Opa]\\ܛ^-ld3Z 5ٵ]x']MuV~ ,j314-VO7t}kY.ҥu7RPW .Y^]z6]z+gf>1Tp?li)ݰ#]ess?R8]ot6o]".f]`]]fKtWh36st#Lt}wuNu[c/uLJ9t͟g )a5) ovEqX۵iFhӪ47׭d_F[:(? ,b;]b|̎J>MZgl^^ 9573 ;0ww8G6t¯HE0|]ږs̾u7Y,4,lVNT$v?TC=q(O-"4h7-:aߠ+mCY +BLõ1z`gۑDΰ>z3vŨHZɂ JmI3?}`L[?,qՏUYx#`D ގqmBfD>BS~NwEBS H.[JE[iԸs牼 :RŧI?br"<90DY BԼSYOij+۽ =prZB}2|Ԙ*wVtwx(˗x@\*mʪӗ!exѳvi 'NBW>Rs$wpJyr/^:.k_DIU-M"ۊEn)곡/d?} rD!ʤy_6%9 @Вϲta|[r1*u˚4֛K{'+ΗcB<וqa9N5 ! Bv,Q)~M]1f vsd8 'nHqG TIIW܋8Ml>{3;K\ܢ2eŗNa¤ T xrįz<=$nne}X}H9 [P$]ekߘzN2ew|_Q^Y௩X U:ڛ~c:P DvNY9q4rWqv(%s?&Û0q nמ)s"/RԶѭpfE(Y3˧w=,F0}76vw1s>&!m}OaNıxuOܒodpF* 7sd#, zS﫲4~$c8Fq*ZFo楰J)Z-K5S'>HCs9r^O̜S v,-O6OEgktlMZHJv/4_hRJ#:/OlSpyĦHۻBXq|}5r$l_mIAd) A.d>eK~RΠ Y ,AD "KA 4= zA,A^Adikk+GDxܸy[ RAd) AD "KA˒D=+LJ?~m{;)AN ,Ycc v^'l7glQ5yAB p>4iQ]u* cKc,qBU;ʍuA>쿚+5]̨qoEނxLXRZ*_ K#;,lZ A(h3嚏f۵GKQkǒ|ȄۆL*`cnGu/>Ђ |$MW'wq#ƭ͟g3SU 'f~C@]13GV\|Bۨˬ>'~Ih6Đ/SvZDu«] H.nEu:u$*̃9R$}Z܎q~K|)]V>-%H_YK:/+R-Z1Ŭg3\M&mHjm}:Ӗq7S序CRh׫3O㉴!W ,Y0:K=s펖w}WkEi^\;y{<{ex?I‰bC2%`G$s\gQڌʏ{m 'fFK."0w ?sޤ$^(q?밋~ƾh.&DUkЀaq։Z-:|6Yj241n0gMogoey 4r U!GC%}4!g/g8 ُMgZ4,/䁫LGaW)r8*zjaG6zcOQ;~eYdJȵc ':~YL޹ѽ2Di)a]&),'~E0tjn(/_?De+w[ e\t[Ê.]1yo9R͏ScB`ׄT+戭c)Z/yPTM2-WfTO?+{߭bNVoWO6ĴPȗ~N}\ww?jCC}!Ҍp~_o$AY ,AD RAd) AY ,AD "KAAd) AY ,A^ o)mQe`c1`ޱMb~u)7_ &k)!jM[dz&&|0nQ>LpQl(UhԸ _l ߸>e^Ao6ɾP^.\™'z^^`sm3uqzmLrTͧJ/ !xz1ÒO-@u.Z׶α32emoAn+G&FZ5hQ|2fa'tHFq_]`Shsp;~qLhZԎf?{8`Bo?~LfIjkeLDSqZ8,+Mm>gʶEә~&_hH1[KmOKpeMTDVnN=ߒ ;/GA ʙ^x4_#<[;_%5k"!?MZPw:n7bj}_Cg?+h4StJixGu)/Ԇ9kzS4˃*)9"bOF8VϬY9Ҍ!)Uo$OAQ"ot7s02OIjvu8sZFD{y.$iomHAoF;ѵFƮsD=ݹ+&f`DD@&mO|YWHGgt,G.A,sAUм7hm˺Rs-Y?FʥgK[Q:rf/FO $~9r [&-3M3Zp Ai RAd) ;]E ۘ֝轿Y{Urcll9i ]AZJg6ha>Lڙ7?9k78u%W`h(R"KAxĂx08SD}lnOjz/bxyy nLyæ`=ȈZ7˖j"e) d_N%,ɛ&'!O7MLp!-\NՔf=$NK^,)]>?NSDE'x{ꝛd^A߾)1l +ʄ/],![cJ!U|?jxSZ/븺Xj"EmRIi9|E@g(=z5ڣ/s(cP7!&r!݇l2[ M oD6]D »nΣCJ ,3ι\=XڔY| p:GruJK_+v\Yvȣѽ>% xP .)s98?8a&pQӆɜ֛;Ѝ#A{^זu(>t4ȋ>KPL [:(? ,b;]b|̎] BeR h@\*a!d"Y5gTe|LIF-pxG>)uM[)%q|nbKWLJ1<5jI 'l,QY#xdofyPduѬڇmʡ%1195cacQ*7Oi˧9c&3OW`Tr޵2]& ɩ-K]%0Y:ѷ }//mK!g1 CAc\{3&,"Ѻcs(FݯG2N]R,cْ4_HN(sHB\ݵIw^ W*n޸uHmV$+n"D"![.!A0}]Б!S1؉E04v&ܟL9X=l@/ BaF8=:8y!QD_ e,_u'\d|_ST2}"}'M,67.Q)XҝhD[GmRSKO5MǎO@COz.όѶ+.[0Gےk'jbY†֢'5{d?6L hō*"hDw4O1?K? fWlg2B7/ ioӵ( i]e@VA;Uf_!}{Xwg<!,SIJr&L׈|V;Ν; Ys );wF{{l7Z)Vlڴ:uгgOF!DR$::ۣj?/x/}iMP bi=q7Xd)م7>>3]iӦrOJ19W-M`V8¶ӈnKG dƏڵkS?~ ,ĥ-5_aY&Yȯ0.َ?-æ`^T-M "KAx 9Y+&BYNrc#8j~`Ǿi3<ٗhL ]ɂ-OLcςs(  .\Hm'熂 |2=l`ğkst ƧqwoE3|c.X4+xMGqa7zo7n0],GVq,X}E ,ѵ;X`W#q'l~Oj*1Vo1Iu`` wܑ;MY?hhFi0,D})M?QՇmW6kcJt6qVE)oB7cj3umK!g1 CAc\{3&,"R-p|TV*1ƙ^`ɔvMNXYb/YMF4]޽{7 ,_1K<,)Z9ԭgr-7+Ro^VwAR])N"'&⤆>^d;ʉ$-gб,2í(/l%$CB;;RBMY@L^G gFJ dkm,Y1lY33+/=?6#1跔JXK Tܕ>C*4Ȁv˶q +ޤZXk#Tj,Cp"NUJ7{fj:FI\SϏ_Mumc Fމ_ ѽ{w{A"WYlעL!p0{I'%%q, tsgÍMbikk,3ٿFQ1kƍ %EꥢG=:B(w3yȌW \tǯ`ao"Jwww:v(w |S9bwX%rew|c髑croZ>XPYm< iQG΁&=8 reB|ةNȚTjF` 췐s&_Hd; Ҩ$Niۈp{Y9c;od");v)Sȝ&,hBL읗u]q(N'݆4 ?^`g>$zfU@"MQݶhp&%lh-9{Rc!GcC۴5W5F.KٓCb8 ?ZGSY=njK%/WUjw9SP011;M'h{E:&CIqE^jmM^&} k5ˊRL3ܾϵ]1w+ڮy\rAouwt~3/J搳-$}iMP̗i=u.K,P"˷MV,n%gX<<+}Zcoz΃#?1t]j 9:7Y^ZٖRUKXu9̞#K#߁z)E)Y+z0Rٗ[ݝtڄ'~ ,!%]EMgV7?uh_W-%ch>7439 qXbL!I.Ut>+c'o՚o'דQeX!Y ǦҪJMHۭ̿FYIWO1)4 B35Ƣqm \pg,G(>ξewhMf7u&y/͏ɫ*i f|Usws,%)U Rf)K:l\oq p39 мL2/a /ed)‹CDRrJWIu;cn< Fgͨ&?N/s(HP;MtRU_XC%Wyp~$4!i i {D "KA,˾A" m;_AH_mʎ #uOkׅLݏ%A-XwSѷ,4iu&8@x67yhk#8m!|%Κ^tokv?|jsAL686s kAoCJ[c 3dƿy\D+ՍuKK߫+-mafm3JT+vAիRjyQ߇ۡax>+d^N-}h?|B' asUUS+BTwgV"HsuwX *#kde2zPRzj]waNw4ȩU $sƪ9TWu /Y!vbe͙x&doEZbrڍ@뾲.מT o ?*)(K,RLH+JAPdRLo{Z+J\ߨuP<"O_IW%ZW%:JG':p%+%i;uDJ^ծ*pUeRPmާ`tOrj?JrtJng:ڏ6Mw. K՗Kl.@t1U0>AdZ bFME;1OMY/"n܂'!xdm(Pr.* dftSwE%j="TtVY2i4GmgsTʯdTiu7鍸t2e) !+)e n>nUo#>. (eR$*}+UjR4OkQFOPVM1$M)NPnVU)xMSXzq RqVSRT~JZAϡErT$f9*zT i"WdYռ/7C2re:ؕJ+K/ e\jz.%֋w3KJN:%05~cR䭦VoiQeeuq@n6AdHVQ%uM]!N+,SLӶT:Dtek8)-gE;5Z&0UE!ဒ49((y7vΔLUt7lZJǹ=AZJKε*+U.m)rT{<-2%Vˍ&HFI]v|q2۠"bYT%+Y.[C"5m|p=*]~"MKuho᪔um]UDPރ-^ڡYvr>TPQcSINE{~-PNIZ9g(}P[WԾSn-%0ZTF>ƯK~5\-CUM?"jc/5_Aa??7NJؽ?In4!hDEQJzNV2fgSEd 2Dl=&ˊRf]Y*Mr I GAdŕ0;Nld {amMk.3ўcbg|!A;;>|<؏P{\o'O~S\ϫIڍ<N]i p%w$.o!]R՛vx+mt.gʂ6Atڄ~H ,!%]EMgV7?uhҩn4O3=vFp9)SJgw8],{Kt@bOI?ƺ!cU\ܻa}aO)^OFٖa+nꊇRd)-[­C;(R|郟1jtػ{avmىj"~!TԔsrZ [WEs90 C40F|9+Ք|<u_{zg()5 G LNL9y"ٜ;~+&R,Si:kgE<*{űiIk8hAزǙݩ?#[nFvY#,s?r:rfѻa*C-fxc79)}CsX.buTA */"4ٙdf]c[#T _trez',LgY}VXbNiB8ۓ~HWbg';;Jx)H"-Lm&|ggHڿI;PfKw减{Y KGWFLڰ^ u:3OM.{|3-}:یa]Y,͆03+?+QbǕ7%#׉ɱ7~n! KGBgaRRds**5nw%kנht{ Qsp8/>wjwB4W~"rO/h~[_$%k18+[,⭤TX<*Ln7k+[8p&dg-&7ZLX47lU%"JP&maL, c'11*ϒtǴ9o@7d\љȣ٪ ˫~-pQj(y ])70Cw\ ~צ2qv Pecp?#O֙rH>3EfڿNŮ]$$#.s?rȺkS[;p6z"o|tzϷ8pUƼG/2y#G}21K{H2v_i8Ϯ=9&33̺1HzuV}"4zq&=ܰ0eѠŖΥU(^/Oa7ْ4hyi" yh" y&%RDDa7`_C+(, Wb1Uu9QΑUzjyd<\_a_be(>\8x{?~ ֮]K  2/e^tޏѐ]CiY?0-^OzQʾjnԷ$-`6.eD)>yʁ:cəY˔4Nx݇|%pnLxo=4mOu7#vݩsQ?777ƏO۶mINNV2O7?ìZ aC֡O:Na{Ҟ<;|r3DL]A;3n{c#ق`g=χi6~^Kh]8HKtԉMҫW/n~WDa 2zFّ!> gfvƽV7&m/m﷠nDzկ'!}ib s"f쭔>!M=q*N&Яz˟S]\WDag 8}Y2&) __cFK4S9]*ݑ[Όc\u)V[ƶ@i9/>:f'Lhh(FQ " 0P NNH("޳X[^ `ZZYirQuZl6n4]С3dZNPzyyѻwo5(,JfWLˊDű燙 y{!iuPz'0a*DÛQKٛ>+wTayl&.{{?u|(l1v ,s),,(K /OSZMt#XeO[jQ ӗhA6',uxf4>{i*1X;3",xKfe5ݐ51LC L< `cc|OSs \]]sM& M&""v$w'0\DDa)"QXRDDa)"QX(,ED"" KQXK2C|qh?˹x)+<ݿ2xڊpvtuCJ<N9G;9RJ #9^!w3I6vYь}#sAxha_be(>\8x~g\fw\gS#+ݮObul&/iǏ'((kRB5K?E]#Fek4EBZf7wԉ_ef|,3o')f?ShdeNiaiWqrxZ"-..ܼ8;bgNuwj QX诘6#c3B6v!Bj=CNӶ':1w:;g0hJuL9IB+l_Cq&)a+XKӜ4rg#ͤH8uVg!ˆ"<<\! ˼d}1դI<_ͼ>nUvO>{~>]՜5Շ|Lsh_9CUkICwἮ6+_~ԞCh<|Z0u/:T'/cFXԯ)>yn fhm"<: hOqjw/P:p" O)ٕ~O>|~"qc(]DZhaJzP86&N7 ۾:nƢػb NZ!DҶpz=E)b8EQߒ,UNNZ Rl.擎i۶-2O7?ìZ ~BV_k$ lcݼ h}~[BYY99\23}qx%b%?|nnk!K0YJHo?^&ƾ0Ky1g1C=<\o+>%gl>}_o!姦SX/m^'%> [f[>ݎZ^oAPU#U動xch:>Q^dmO<ňds  q_}þLs_/f}=5](U}1.i9/Az hĥb.Z@.%4odo'ϔ-{nLۚ_NۤG#\r˔k(,Yo?K$ek̈u(c@{?ںj#߬9Ct9JI=wst-*\ҷ_P0tsH |9G^7FωLƝ[dI9o[ 59T&`W nw쏭53(`VVV; &O߾PnU' 1_}t3@#63҆(p9C?rݙ|~w~Wd65Ǻ3u|4-ߢ~̚{?t}LaxDVNMM%88P[DQ(z'lp/_{#9uVbEE)\\\n]ݞzd4?>7ǣls'ټ? w{vkU_wk`a~2ɯw2dFńAT\{~ɐV YS }cpgVvlЛ#s w~.?78E-cǏp);9Di'*+O`T^]ˁӉ97/PǗv8F~ڰ'HLL&#u0'My`\cjWI[y쉛yK|3w^?W੪~T fFToW]2沉-+4m1W-?NKNzN{Zʃz[y zG7,JwaY =f?56 nqtEk_N~9ɓY`666Igݑ{M>^j3'N5WjA',_#A)QX(,EDDa)"QX(,ED""];}ZDDDHTNNNjGOFU"" KRDD"" Ke}/q>UV<w 0<%¯Oe|N!"}X]ogl  \S<Ҿ{q@NWQXFT\,{~ˇ1 ݧ_K ,ehaǫ\d-[x \._-k"%c^l^ /W쌮ڳ٘gѶ_rZ?3~\i+^٭/kӯ?oP+cؙVqlLZA|{-R`QL>LaDkkK  ~>[c9wsd4?Fmd},_+qKHݶqV361\j?ȣLj8Ѐ;gա8/M!55:K&ge_Md10'mH{G3oS/g#F'ܼ<IS6HKb}k^]ڔAz sho4RvxarN8э:/=66ĭߺ>+7ͧĐy혢]V͆sEv/]AR<]XUDp&CEDa}=6G&IΞ`OP[9[X7|s{* ,]D瞦᏶2m&).>_cƿhcDFuӳ.Fl~g 3lfEc\s0ӧqņк%s%7M3#C e/h~|oJdde)8EΩqD쿄<_tjuulJN7lC3(}?¥$FP,/B+l_Cq&IbQX>䬪gG>k/Y.w鶮JօYOmzϓDHKNzN{Zʃz[y j[~8E{eJw.E &Ƚ&_Gr'E|3Vvzf1qT 7%D2*(Eώd=˾Bş9e<;cyUw3[@/wjyczED/l7"RDDa)"QX(,ED""QX(,ED"" Ka1u鱀&0%ͤC#wgeX{k9GձDTvƦ`A q)܇nK&<&}ߒ5"29?cԶU.y(h+| 6 bX[`d#o[^2PDG{|hPkHs< G7*g)܊xQ\Mf}/qWȹ2Նgހx,Ke}{-'-fH (Q}Ɠ~yکWNލ w92ӦZ7fKbv; ͸hsEjľӕ]1+[317+o" ^ +A,޽a 8AW#-z_uG(RSZFIq+,sN?<4KkoH*ZFd. e{H ^YVQXK:`š&1.ݑa!TtqW{Cj폛syד1DU Hpv$0/M,qgc)=ƴ sڎlY2y.GuG$_z(Y>1 ns~!ZzT akcEi}*D!=-#E)q뜒Ual =`E_n~U+a 2O];7||}tIWVVXL%k=|sWEY}k4 <&| 2zFّ!>%ƍDU5p5Ӄ ntG_}m玌n,JV#!잽5|9$>MrΔ hvdd`C1{#hЮ 5ZPDa@p?dpMRJ=ƌXh_%.?oh*;sh-b íx.UPr}*>,.VmC_;&UTFDqO̧(Wc *s  yꮳc6>""M[bj @68gjZLݟyrͶcMv{ҳ9o6?kQ޹MH`8z"tO0o#1qT D"@4K䨁ȿJ˜qat&&ꌡYIA" K`Kռm"\"P)5'eT(, 7ڼ|QSkc@M "QX(,ED"" KRDD"" KRDDa)"(k֡YEDn-+!""%/JiэIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/playmovie.png000066400000000000000000027504511473342170300270460ustar00rootroot00000000000000PNG  IHDR$W$ IDATxdWuPDe eX6"ý$. ~L" V@IA FiF҄Ρrp>UфiuMשSZ{;"B8p&,`( ldB98Cda+!vcq,o<0._rr9gr0Ӊ\xEbl^9wA#yCYPB! 1m]*D9By9 ўA#AYPB! SurַJuٯ|^rtOi{W:!N'Px%B6Ñ챺xы^ ?0Bݺq#-[&z2Otg`{Ӊ"x{ B#5|#٣pM?iΗ.G?Kx%d~pyoy^O$s=}to−e]yvt:~-!+!2d[G?r~n#du{7?v3v)@!WB!d?^?KJ>3g׾5k_Zl{{KN7\V%!2oΔ\~3gӫ_j}W ׹8,-#dߠx%B roiN'*qk='tiSuwDa0!2ĸ k׮գ^M_z|w3sr:sIv[־\B_淿FM;C!!BN=gBYWqv!.J23+vG>1'}%!Vov|K_†  >+=<9N'+k^ !3"g#v_/R?}dzZ*y}F=@ "^_שp$]~332[FȾAJ!̟[ 'rʼN鸮﹕}a9Ml}oDx%Bur>{^'ߣ{<{#dim{|:g;N'B Bo9ߜ{J7CYg=K__s5=_߼w3sr:x{ݺu|Аx:?Bෲ_󚽞]K.D!!׿umXgINſK7t`QSO}I[y?Y +t"d݆ !pǎ8055ۓ^~ejv311k˰?v/_.y;-oݞGD}].:so7 _"鉼ePGB! So[x+^83~z}-BwOo¿x9?%y!dI9ɋ/cӉ"BF1e/@Ӄy{HPhqn9g2_ VĊ 5{JNӉ"BƳ@/8=ç?=Jy{ޣq+<]lr:BpܰBُx]Y8Nt>Q׷|^#&•{IA'Y?\Oʙ"\yB!o'/v/u:._LHٙ_pADm^9΃!fo8~=Hp[&և8>'tz8=kôaB!dx1R%Q'n_~9aoߎf.q#5:7*jC#AYPB! ]WCUx m|Í|ɷo!v\Ok 7p|?+W}S+oWevv(Gߒ^p~BYh$VCMN;4I?K?*Y{۞k~ywS^Ӊrr!Ob6!=-!WB!БD`-B&췄"(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%Bnμz!~KHB!xuk{oFm1aB 췄8B!^B=췄B! YD;9~G]ira%x%Bq!3J;$zo !(^ !OZ:g/ƨ !-!=+!r`H $0y׍. ![BznD!8.֝CiӽOңPB!{{B>췄(Bȁ%2hHZo A(^ !\6x+\~KHCJ!8v6`~4~ 94ңPB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!< y/$!KE:&su=?#?\,_x˳OA^pG ߄îa~/?o~h4~-U֮]x8p؊׵k@I!}g/Wo& 9 `%;{a+^"B10pB 췄:(^ !CzŎr~KȡB9DD#UBo 9tp+!rEwbAqwaۆΟ#z}gk/Y/nƆc}*B!Eɉ+Q]0ݐ9V>C9[PB!~~ِqltSBȡ}ނB9/Hd7SBȡ}ނOW"=y8IgaXrc~oߊ[ q 2B!BBaG^E>/%l'=נ5=;W~s>Z3xw̍q?W?K!ʎٙto$# !]Bzy]H߾/\ 1qEI{!o7_y2B9Fo9#lciB1컄 6z‡\?埾cwnBE{c ހl .'BU?#4YH *s>nCc3C .!ł|g>ϟZ>'qÏ{"a2BydħB#5dgdI72_s0"w#9 N.Y_z-GC*yxܻ>E? `:!G.bƯ wDm6| 4~ 1w# ׃̾WgW!W ޅoםYO<33:$rhEw#p/NN zw}ieOH姘 w/WXB!{oi&ϩ^R{p_R')rI';*;!sALwx8^U)\ʂK0z-~xYc>◿%^u{|cx{ 333xUW]7xSΟ4^.%\o~L͖z,x+^iٺuO|*j%EV^w8S122~3{_$599¶mXf ^Wu?~'xtKݔe-1_x%"] X ]`ī?}vSw޸Ƈ_B#d-X"ބW ]tmo{%I ~U{Ӟ .U`-YDEO37x#/˖-2 |rnk9炋`^n Z'< v_'b<)|._*|cww7kFEY߻BKkK_~8 -DQo߮~Se+w{6lz-9y.!))_^@-I/"jE_}՚, J5|35{I9P&݂ûgm7ky>}6)[_Mq:/B;$ VRsEFJ\ޗ(JꩬXkW\q>2fw}ٕH7C(iʒ+kIeݬ7ISt%z(Q=]o_ UIH\g|͐$)"O|"9|pDICӟ5 վpQGfN"n7jPJD-ܢuB!dJR_ x ypGY\[Eu7K~N"C}rPT*FHb*q(]h@-3="j{yr+TX6YJ!'(iemZIVԇXY ,N#+ZYۻzV`RNB= Թ<va7o<Az<>9N#ycp%B!Ă ឋ߅hPx5$o5'Ͼ[?E%B!xj7]{/|3kU9oc};pާJ<ȄB!`Ypk^B:OEٯl Q8LSztm`[sпͨ~{(B!B9Q93&*Q'xc;c, FOzπ?릅^kB!rPxΛQ)!B!ey%B!r@J!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!3ǯ?.c(P&kan<я-w݅ zM˰rh3#ȻFbLJAY./ "6%TsA N\@*fKs94u#tÍz(6s~3:h1D&HӨTH򘝙EVC__ blVQY081b訶9yv( 6SZ6igA08Rn_1|ߵE6(Fky,\p=kʤ/;.|Q*i.VMxPފЊV+54! uhE@kۑu{q)Ԫ. 2f4ԛ1Ui٨#9ȥ3lHy@ jU А-N!)V>Ϣ^wBS.V'1jx}B,ҹպY .=wnB!!bPnXx56oRjn* V$lބJz؇}%h4Qz)rE8n6KiNPאNgy)-^0jari iLNΠ:]/CKazl+).293yKNmŊ%̠P*43W\'&2K[͕PoQ.|2LO4c_.k;t],"|FaBaF^ҨԚ]+jmf-Tj@!(ghER~\FHQ>1OE }NS\O3~Hۄc F3 °T:rR!'nOY!l}83y-]8NN̘hV`Z^/LMnM8Rţ 2c=@ncKZ0zUs3X(s|=OTx/&ƱŌhpî|FF84wBsU,cSJ=O!<߃+c]l.RLEki->.zZסfč z_cG2ؾv8HRd >:c0B.uơ7'LBM4JlQH #s(󋓔}X?oc'rX3g#-?"sj/ 92i]Ks{E]sj2Ħ\Tΐk[Ʊ6v'rt<#Eb[c=bȘ;}w,ts؊ #"Xv$3+p{cmOKkcMҙtrqU kL]#2瘿|x4cvLSJ!-oQ6lbڵWG su|)VFB.Sþ!R^C3 8..8|+ׯ֌9tN*c[rH-_+W_ua=ͭۑ/OarSlo$iK dpAB*l%a`Q?۶"#el:&MzR+iJ֑=Wrx:8b*FywԘ}B~tCzF2>r~CCKGE;JZa`8j0@lu u1b2ibX:OI 0NxfRL?GX`c!6 "3 j1S@I*3=A 4;)!W 'o~;1>R 6?NʥlQQkcu]}:2Xx1FFt2#QZ"ՉB)򹆊L- (TH?pf#AQG`{K?w'3;;~VL6Je2<02hZT yo5ܒ1A !ieךHČ_rrVS_Cdʐ#k T#[v3yPˊq (NQ7/ъ;fL,avBH{gjjI?\iQ%bDD_f3zf8FXrYW] "drTjKhZf/rgTds94Uw)Ht]i E,_zvlbcgR{Eé(CPϠ܌Po41BG6F9búp&u/WgfL͌ZB;(HS#,Y@S(rjU[(V "cEVDAtH45qT%} 5Yk0>6~dRͺT`Ųeێ\ U3h ,[ҏIQ*l5jRTeh j8Gm]Q%8 6\lic8q6-ɍpBR\R B#@<90Ao,XoVCVVnjY(M"Y,wk;@[āl@o s=1WD+qu}+Pag+-;:_bh1+bd ԡ+^:VH&O*RUx0@4@ugUC۞M~zh'+C,]GK];8"әf6?a'~cn:Buw>jѱƑV;IaL@Dů:b`Š}wXep-b`jM®[8ao56 $Hae@GS[M>}˜5;ךmp莬7b⨥+m&n#!`u$ ǸyHs_ldc%Fv!~F:H9o"?< ?M"<߈UX m0M#N7ӤPKěbpsHNbX'Z0K\4Xښԍ[-mmwĤ3f2jt-X*Ya9NVk6MD*~294U'M5 8!<3~JQr{h܏f}\j-1|O=ՁNMrNBA"$FU'nZVU(: ٨V7f#Iig6/@'v/Q灌U'D@'t1 9kcJU'F^$"'ZF0sE6_@r+e0Kv2Q8Vh5C>L"6ѨMIgQ)믢V+#lHI[mjI$ e ?_먮'B҉BY|iKܴ֬]BUuRF똙YJH2냟j91VXiiZM#rDjXKiF=DԾ2;3K~4^o:DLO)QT3y  #̼מ6Ҵd&AvbLFĦ<*'Za3F3vt~!LQd  l#D2,0zǁ% c_gԧV&ʶ }OƆت7U'ZbС1$F˜ H:t3vk:ױI2 S_kYۇqjmȖW١q<{6j%I}Fۘ^;)cnE4+HD+bGrUXǖ^fHl Ԟ0"ȳQVO2Ytm+#Ni8`TY>kEg貟OD V5&hM$'9]C]cD̕R"Fې4Qh_[]]6O<'yILFSlFmMۋlT60ND|Iې Lqw]?ĩS߳)i{m"- \?\mNR-kM"al+NG6 Jm95 Oq~d[Xa̬$qRfr4\f d:g??t$MqmD37=iG M PNL*<>ܺG$QI#N 'pFzeZj*q晸Kи曐/d.)xZCZFq$HJtJuRԘZڈ;`Z44}M:VX|^2z^9CF㵞Һ!-hr02mRVcT*.b%'eT> µض۴^`ӈ}߈Rnð:D8b0OYU VazJƤIJ#Cmۅ|^$,zBAeRSJ"y(26!F;ZE5:}Ij)'\4_Ii*YR1xS9gCIiLN#Z4[*6ZZ1Д6* Ϋ`3YPE>ߏf͈˖b5H!^("("Q(t0>9Ƶ8$*՚N˵ȘͨâhqxhdUdXLr,Z*c#דrlQ(w3&#| 8B-p@}~ʈ̡EE__i[qeil*BQۤ\6F=PQ-kf?\T r5vbm .#K6e7LF\s:LIQOnlBd22D`"(hTiuP:hhRl;>a1ČRuª-XpwEkvy~Ե)-Z;4Nu$&srՏx=xKk_4uKY!uuIL:RQWgi[s](ٵ!Y?:Lhc:qt\ZFt#GLhȚ07jQJu'i?c:P\;dl2i e<=r=6mM)3OaIϓ$uWRo]R JMӅ[Mi̵J݇R_FdDs5@TDj=Zl*&>" =kcwu'fG3Noߤd #TܰiR̐f0WBezxcn |̔&J7e۞XDJgI+smVڂJ]K*dKi`_>o&H3*X#^-H1e=|^ѵ9r&F+WQo5BM᧍wyi|8Ac֭(vb21>J!L( ϫ5=3iJe+cwf%A6WFKْW,UkB wϽbÍ7-+_]#9Z؉{`x*F=Ho~#:4!h^~Zp67æCD)Dȱ H:iPuɉ 5̪ժ z}]"+Jb`TJusFzۮpM T[դC;/Yb%][/rhr$}V6 zx!4(e ъ=7ZhZ?*]njrdGhz}Ӭ,ӨI:ęaЈV Q's\#ұe_Iwkp5qđf,aX.c {QӺnz`GҴ&t MmOcEsuFOyKy*|-B /(k]ULƙ؊ĿnŦD&cZC_‘F&>vYsȈ]oM8(m;]1ɭ I"6I8&SGX29W: b&vɺSǚZ46'"Tk3amFeNDDlg%9T.gBܱ[wCEɄA]@${"m[d26z@r}O\Pa Hfc%J-'{|~Fb3wi5nlNdl3v31{96v^uImQ,I6탚٠L@1&Ikm}lGx5qbtkQǷev}D;NHu$h`Ϯr49,GGSLD~++IBԵR"DMJdm ۨ߃ȢӉ&$dtTqf?B4no|`m7:NfպSZO<ۧfHȦ ;>1dtwo};ݻǭ^Ql%~p?RaxwXtWfN Њ}$=K A/p&ڦIv"1M1TtVb$w Xc3WW|Qam<.G: D!<v| 9mbSf /YScy$ga!ZD1̊c!2)1e5e7mb`\FƺUr5—Ie<-!4VheP3"T ^HQHyXQMrDf0>1ja~VFQbl/[uw?Řעas01>߄ŋa0b/Z\\ 5U.V 4✱54xY)vہ:BLL8}i=|riTj4dZ_}"JJt2HnZϳLjYv0B!Nadgff5$Xtn"}I6ud֗صx1Eo+Wj q캸Ոu)D؛]!k!9, d24$uɦ/,ڮAfMF5ϢZCXUQo, 4kܕrMU^3FG !%!.#L׼ʆ)!Jł-QzّI뾄VHvVYsz@MvRZjnIV-T*":$JnF֝'LNOh?ٲ^s&(reidJw7X62(u|촥 n:6i ciRbWsJ3vb9ok\%J.2fнW#(:"Ms"^8)F q4%&hM1٤߫4Y/kS1u(n 7My}0ttK611X8B?3u~6B4Yة<GyIU'hY?fQI-I͙Db07iջ-icyM JRq^fݰATtRa]8 $-[~` ZwNMdh`'ؤK' l+38>NUXƎ5õ rINy:G"2[:Nk"aՠ JPS/]3ӆLx'M.qaNˠ8sl~ٜʤ0u,Ux'}М\":&ҝA+7%5W>i,Myu&];u2# Ӕ04#6I ,:-tWJפzgi#24cfKk鳆goo:1 $ DWWd}5]Tjbdv B/rV͉uR6Ź eDMb`Ow2mM8bG-NoY׵w",d**q/gGrZhy۷`bnKH]cvf'UQMw#ʮ<3ctDtjȭ]Lg̮vWO:FmTQ!۷mW_SO?U׾}:^b> ax9xF<ݶ zPǮA@G9gg+j?G/aV=6#鍰;6:$lܔҩqصLqlFfQv$45LMM:YtFJ:5<S,YhM6%5\^7>KeS==uJ$鯑u0;3AЩiM!Z$Q5:d@[ l$Ƿu.M79U#2$ȴs~,q4U>f%| :V#)i j9P ٍԈɦ5lDv=k/CmS5kdRIuZAgx&EY@wDOYRYkCWq{S(;Lfok؜WM#"ȓaPYIsYs=슒XDvJik hGbHuxp@|ʾKE{d9$ޕAHh }W&ܳ{$dD\:uɵ6ncZ\-\mՈ,slצ '/v֚&>grLZ&ӳlz8:T|Be.w/iN'jGZP m1/mvN)V7| #aQ֖M{mj4TvtiڕDͥ9vc$NgKl'"m، -8 \zP/TvyKظȷX=L%Qj`mix’k k4\Vv1 bI fF~]xf"L"0TPmӍ:2yA.`"۴ Ij`cbm8Ɩ#شmFnhiT@(FQ##ƈumi>4#9cD4%V{N{MMB╕rI^Z~;ח t35[+)͙`+IEVfK[lCKkY c.;J$Εx.V] ف826%Y IϦ_]ԃo &%-,E[Ǯp|I$:#;UzY:Dj?޳Y,[ϖq==3FRB (EHèߠE4 @`<0Ӿtg{bϹYM~Ч u_(pMZY~9Ϟe^tl5Z<}Q{RN| %aI'0]1x^I< oZ5 ګ 35佤k`6`9Npp`05_f%=5|jTc=CƄ&0dnڱ TIs3hHrB5QsѰf =Ȑ&u^-^H^6D2lYiT$rmg5;XkjLnUGg@ܝI}WH\:6qN+MV7Ŋ[w03Q(#dxƦ s'JfeQɏ7m>hd2 iڛJӮm S(4:_%α1|gx`a⹰Z1FY~~ͩ{m`.԰,-?z."È>┏À# G#M!USO"݂/vz'/8~$-pVA(*qߘ㧿- EilAN.Nyx@Qt}z},KN9##tKBYṇ]P:( L}=t9>o8R ¼fG2 cn.<}G0~f*bǓ/iVh' K2 . a+6&ƕU縚D&*I^d{InNIgV cz?J$x SM7gMZ%@{;bQߢG67N^yIܦBM-oKoAzzu` {׏ny;(:㤇}ܾz} 6hszrjH>Fa[rx^O JiXBmtfGZC5=d6dbv>z |:({qJT0R%:'dwTf LfG4c QoIZn&f5Ӏf2`<5)xWGt89OhQ8fX]>UVr`b<%6_vf+7ܖτĉi4PZ78==qyE}0”,9|4۠$3&XmR~yޠ/4ܼ@|5׹!i}7u)nhЀ5F/ A[D(DJU4Z*F2{a$52>(pYwX K,!qH<P)|C SSsG/7eB&|Z)fn[s42XL/q}2ƘoƵ!}Q۷6uMϸ)(Sr\b:iz"(lBw.gs\,8_q3&$ik9s[Ϧ-ޓbzurF!A3Wnȩ-!=g=zuP))4DxX;~<dž7Ԗ u'WBK+];ް$mKR6U k@d"45¯_yo LpttLIZ8LC̆|Zj@IϞ=3QlΆb}47`z*6̑.soOE?ٽfFv<ZݘFGCF+fS)s&eY5lC7Х(iP qCZ9xyо_B%)U5gΆ|1ݼ7b:{|+5(l*-2C]^'eNs8zdMS֭l*Z2}5]/ ȥ48{oN9-: guk {۫qup:c|x L%dW`ڵ}Mpu9UӷZaTbԭPN1xgʐ 8x~Md!S ;3 IDAT:}\oʹbELx~}ymd65$w`GdllR\oy ڇ.Dq]vTHnkVc'kq`tq+Fu{n99G7DI3[oOTJpݶQTW8@lkgF+?$iY>ߝhp*>_/s53ǯ Lԩkǰ'QS6V 6pd;t׉"Lܐi%s*4mwC{-7oo)7|׉^y٠hs'6 )~_st_> = O/ΰ0<<5UukbōT>fXFZ)GGTê 4n4_┛ζr%މ!Fwmt^sgx+_çgʭy-#W79>/};cij|2* ~fE _:Y,bLG\u0iD+ \1W2j2W.+S,äŵkخ:#S!7Hi!="Fz./%f6?R|鍯b8" ݕkg8*_*E`dV=nNzx-p{O Feo} 4 wyxH7Z,68T&}5`vR@={|_?D,Ďy^HM#X1WQM݀fC,"0Ld \0Hah{n_Wj ULEehEL+Jg"Mei9W,Մ|,Q>,Tyh9U;&Qxߕ-1VN{6m^Q3lSƦiHヺ2LJV__Pv sz`s廖=,1b--6ͮq< 3ʡj/jY@mBXWi۸!vgOS)bRԿ>+dx{: kdʔFf>ΗpE79vO?,cnC#fҐT6_ qM(<9eFӑ>zdT΍kQcpm| <.6L+sߦ-!5gg>(a!U\M7x[m6^$4Xט2 Z`oꍜQ}$zbupMlh"2˝q5N`Ey5V+:v] KsKcXIGfV,յ9f^\_녖3T D f!nS̿5-_xuuk捅0==ޗ[nettr wp&c8:R$D+QEޯL+}./0brZ]hG2ދ(yсK2csr> DC= N{zr"d*ݰ%a [;nHE8myy%_ױx O>r&uΗP)ԤYW穹ylNkOqx*Gdr5#c?>[k=SBj@'A{u+8FF5b6]bpF3ޚ;e7eO3tcNޠ7Xצa&^z#SUשU~MuPolԮ/fH>P Bi5{FsO M-i2^K$/tG11OdZ\4lѳӐY쉦xB&츮f)3&o?˄M n(>5WY;IxT8H+Gmo jm)E&biqN4HNbdjWF(6,aƜR:7j09 s0ZHlꑚVښ5 ً5XHM~-z#D3sC1-ă5fbhȢdPM#v ;c\|<14ƎmQ9NuΙy $Q\,"s[ql[kmnk!LSĎUOj^oo܆q|椏vSpֱkWÚrvwnHUCjv0&V\D_C+.@nΤ&WULȧ ڢT־o%Bܴ"C`5c6=C*UBZ"-ߋ}i*w6+|w}q>} t9ɻݍ$-}9Ql\shmw'-WݯV 9?''63Ze4BX&-ϯ^Q4.nݼ'x01pcdDJoT"9um|mN0 ~ϑFYD9 F){m<_VmfΔ[37`)!`^pWRq~eu.ex\'qBrsƥFNm#2{]^جi@{7P,tPI99 Q)Ё MC9#/8 {u|'}׿B1gBvCQ  вc5~22)_ |7Ġ?`1_(hra.uX㼶tGCg1) ݧIgE-oU G፩Yl?-Nvtۅ 9^5\qpnyOQֱ"_Xl&SQ:R,42rI MQ#RnuCTk%Αf:C kB;U8'X3DAcb6*X!j4JÌ̐0ҖNg,]+5Yu'y.b"0EnY亮!Lp8?fc:xD^̗F}،:rtfď IU2I9483J֞ ˻?2+ 4^oS RPcjfBl۝&MwvHUmB)Eۡ]uk& !;C!wsyR, Mon|B\,͑:D^Vl\D r v3-Nc&IU}@t"44)W\ Ј\ش`\¶kR4fMʒxq:;IMhUAcSZ+Hu5mk$L-+%iDiC}];!n9AK(f $C&X_>-@2>H?vDjv}"2npӕGSm7rp"Aw4sl&@E.}ESk' esC7MMH.D#лL;òPÇPִD4YnԢq()ytMr? ^08< X5X^o| oã#+?{~`wݐ>on]Kv3WCgƲpN["RsΆ[lԨ66cSY|v2^z||$W譯e ^ifWN_k ".Ke ӖwbHQf:g.&n.[ 'CXrTg6l5iO43#Gp͉ <(KtW#gS$6vÊ㠺 x{$b,7=f2S\@kyB(rX:"H/4T+cGQS75dބi!^)UQQ"cMkQ-DE[xcW׊/!t-;VfqxPb(5[.Ѿ*CꗚS#xӞ5Zf˫,Eʤ_10Xqjbg*fNoןa*S0cqDav<+q omHZ^kKya'j(riMءFjc5jڅf;tx~bR\ D7[q|&_ixMmphiDʮ.,{ۼ~_M].q R$OfE_=6"zMDS~6O ˢE[#]x;"!>:]mb#GjGYmwbh%$wJk`pvX6??{{g_;oɳX=v*\0Q%J7sO/0>cL*xz#E{}f*bwSsHg׬<^Nq8 g3ŕF^?짟bH*tq$JnhRMvFTĂр#k6`Iqf]>@Âd3!tu)vF[9%w01ffwS|9#䃿3EUhA!"lTCՀƑʵLO?fNE>CVs]剢^X0Ħ#_%]^?1..Of2drnÇ%x.PO~,+Tw\я?7qj%ajaaQ-v|F1X>296Vi<8:y6!ΰh͜h[)5UXc@o1X2"Xđ tl j4u܌ݛa#+!9C;iC Z.6g4ZvմK7ZCPm^bu3_.]6\"A+kG^2pqNK/+6''zļ^ZSԹ㪔Ә驧>=;fh4pLÑ~ a!:nTx!59̥UZyxP=W͠n0s-)`&j,)h drHw9t2}vZ̨C9l پ*Q^NMerF7c7[YA1M7:ʷl w| ޙV16ZLLy`VȊZl Y*7|آ sjk5EƐ7IulܭVlv(=;M%{kQ,rhswY'XZ:(|2s+9eSupZnDiU!n`{CBy ٪z+\05b&jV9f<4AA!ڑ\Zi2!q4l^bAB?! }/7=QWjFUͶ ѣǸQ9RK/_o?t>ӵd{w1Hy7_]cz 6(֍!ter8VQ&cGZP^xBpJP91`p pGjۘrJiaku iK:1"6DGݼi- iiTq~eXLdrfA.|t|v!WUKxWMbJC.VtV*HV2^ݸ'Obqq&.bնbakXfM6:#.sCKGǩ'g]B3kC%⹘]IƅMk)LUt~0VBRBr^w_MmMQZZNnMslVe6tDi'#rem- c 9|MebKhܪ( EZNU='6D4XJƝ W*!+$ڭRÕ %ʤs-^ ZWr5"+rT5{B^LT?8Repۈ<)"d?}BlM1'l 2!enAʊBǭD`,up25A&h3f#Xx&jasf-箯!ơ&m񽦍pY?L+ʕTVVGZwu1M2cΓc8ڙk%c=s3~gY2iux t-7ڰ1b3k:8"Mܨ(k=$iWveagRDc A 'nr,:i,ыQ?C|nM6?Alp,"仱NL3zke*Gcʈg;r%Q%ω]LHyJqȌ U1#쾭w32]hДLEO+sww"FOFLumg"6 v;^o-~k؜NJuo~9z:nIz3ݠhDE SC,ߢƍW]`^]b+ W%ᅦ˿~Z{8<#M֗u>/;s|D*;p#SSCS&"tf&q"4m^)*7"tϑ!^.D܈"LrDN&嬊D\n_y |p&:238՞)wf2tF%K[Ϝ[mUb+rdMߝp`Y܇π1$97y{,& c7toNs=yw\r*Cor L F᜞]jFđlz%t.D0 !Y4F@:h;b>e*0V~OxqA"G!pΫՈ,fc?E6*Ĩԛ"Ftv&m+1k,/fSl*W9F㾎}dgtBNwoo;w #4H j >jFadPQ_\L(r3x"iםa?eE#]9ݎѮy9}l gTpv%Zl "4Sa8 P_Q;u llDЕ:*n1WT( 7J9*ܝ[Z1p6Ü ۪ƊP]Uuҭ uI RFLi4| 5AMvqSF6ACg>;iU%9JS\6[p̝clKl"#xQ+.?fh) <({ʬWƒ9i{Q-iG8lp*(*[7p>rMhG8V HRy]vnZjH"S<<.4[!Ar7pȯSuK)Bsk&3m )G k7jaCjPRy<_D*k ~tDz嵳5؊r-sܩ:& r*-Izd7dkX{+^& R>N,v~__`mMb)MkpL(m/ClװlgQ3@#*5csgꖹF7Rv̦64{bO6ڳ9[k?~#ܾyKHT_< ]wŽ7O>H7nGdjaˍ,1zcf!1¾N]ljLhQMhjj+Yh_iA>:tNqu$2Y+2OUKCD5tH!W'n'2:Jz X1_]j>/FN? ~+Z6*R2r䮱!Otp\`:)P,ht-8=Q,}Ƥ@o6!9 {/~|{8?;ɉ?>xOnֵU nN`TqmM!M)mښzDZZlʎEfMvc GIĵ٨SmU@.Pf3{J`\+<@ȣvs`|tԴ9e[c}<":>eXcqM#p"65Tz]nnYV ϟ>atۮ᧞ȈR\,b+=NCZFȒw{<;>sr2G!/Yj2"ɒf2&~!ҎW]lV+8 I .=7ybTjrCK%z7`zq!nL̼(.>#b2t3.0B؟[ :vf c'dEnFCfJ蔙ѽ7^mWsEͨuq6ndf{+_+-V>SFpZX39_]NE$;F=[+:85=s9)?Y͒[(SL9C G73E1:g;N͝x܏3_,VҾDT3j!tFˇƴ^:>Q>{mhxW[7qdDa!j-;Ir γapIMx>n"T`UU4b4 \~ ! "5Qۑ+Cc[+59EĆN:ח̍vdtmiNo7,R#ܢ!o : q N0cP_S#YJְNۀ dem7GȒ9]V>ed8t.Yn\Nb&]m|gnǜnP0|5T*cG'nO<&l/;65oQ ?xwp '52Ȧ &~( $wajDA舛* v2*0} /<\l7u^LӓZBtG\|ŧ*?Ɠ}d|cܺy_:w;ƝԠ~_Hxv~ssO(xX*^,5!;=hȹ4$,I#??uY1W!+\\Զ&B$ց|4oY t(V"rȆϡ΅i9YWc0Wѓ`hB Gz`3A4 FCN僛l¼\P$ׇaW{Zt{)d\ܣ 1Gd{.-hkܼ'Z 䔖]@ym\8{MH+pO< W<&45+x3W8=?{?d2,y5×x.TwjӮ?C|D۲->x]=N&/|hgyɳ\0cVcuE?/~s<;;~;~tM# -DRv,dSڴ0$TF:r@!)X@:J.ht2drdVNpu+7K..p e7k2);+E&B.jitK"g+{<|xBҙmj #LY{Af ]]Y/. <{^[w[lW+ܸvޝWqm\?<S}ԗ VM8N7RE;M,7ss{r6ffQ˸SE[&#emJp*lC#`җ{yoQ!ѲR̄tpUlfy},Ox,lmˆ{ۈM;)z4PwC䔹m9%7bڠ.ْqGAdvkNfiv-9B[o}'89JԹSF\E)j }nO~WXNQfX ߹}4jE永UZUs7R3p~>x/= ǢҽHI62>.΃ؑuz^yMe#=,KW2QWw46^_>᱑A \"0=r>J61'׆ȕEge(mp@C?Gñe}c,h8*Ԩ25ԙ yA|x]8 9ؑG1!HDU9)x$Fvq@IJi6luP@_w2iNB Vo- Bԅzͨ7M&r NiHoƘ5;RT" *NP A@۸Y޽gM}{)5ݶO%zbwಂ6Y:,th2ggR ȬmoKuNᦍ񹈚ڳU1d0]+i1%MҩydtFF-[̼3D5k{_}w06̈V#V`9/} ?}F?x<-2ͨX,>=7 M~c*0\ ЈU]a^ct *Ъ<BQ03q*+# rY Otu:.KyUɪwm ` QbdbB϶d"6ӤTؤވbl<:Su IDATEn/1Fͱ!W6֧:qYςʛ q69F3t66pbEXpbkS5BLM*g1vPbEXQ@u!W_^2J\Mx |[Խ]m0D\2p}+?6+2o&+|:G*wП=yJd?|!~{Y啈3tZ\/-)F4r$Fvg`azV8TG{]MuߒFf!cH7 Im,?Ѩ)O5YnЕ`!..)l-b4T`dERH7VtB#\>1踢QeB?!67o3!DrH,:}M3wlQf5BH(24  q2H7s!Ԑ: QyG( s1&c=RZ5D9(bca2*Lm6zkgUʒ܎./r^X_;:\΅ԛ }Uj` lUZ;fRq|x>-j,;~B2|mq1'~Y?ni4ix0 i Đ&(B>uXvFgaG>yE/37m!2۴}rs`z;.P_ifQ}FF \.r,V>,j!cWCdx { Ms|QǽplY!V,>~?*w Y6tS)j!+e9B3A⵻ouSe_vb)|F,{ϮNpr!\yOF#GCMhsG&"F۠ |׮!.)sԤb|VT'\^^(_5s홨w,:c#+fmSdt_#m9_7^l-Mc7)6BI.ٍV+p B^E5TxbSܵYDiVDm|9}G7tiWv&Wi"TZc3dx){Ȼ{(&7-F7qX3CwzsRk|ɇ+8]<~P?`ɤE&@n,D n@:2 LV5 ΢=yӊHSpmfhe,\B<*> 2vWc`R\S q[))21)W&8+zcfLtZ=}lXYxMF;..L|͐!IF#:_;uj(olm@brHO w<n<ކfއ4gA+u?tlj`L{%ITG3ctM3rO.ױѭ8'%pt09-+ƘMjW{MۮK BHٲQfx-T~|vYPF4jko\hGߍ/cZ&n1!SiE_nl|Ի[7eA*_n^4m; ABK Y6&[Ta1 pDY~"dR=FDG_+>{pSONaYF mLH%vb5|o}k8==׌l܋Ϙsx JHR_c0a`lc+:΁9fcdiZ -~PO.^9*{-4XXgQZv0ÀzD9,79S~6 UVg8=?Ǎ[7? !ǭ#7s3 GH/9QTyU.tC>r_Hc,rHiQU 9?{z9Cgϟ6n.+2b\.(tڈ }>jmacv,<9s/J׍='Dcq|Rk*΄.\"}erjqba]  AG&$r4cV {kpxW8\_2~擟iX;-Bƍ-+lzGjԚzncSw8y\de zCL_",گ_8+2r[:9̺88!b$+H'J?qvvaSaHp#&sPץ%$bժ*zGpv1Մ=^`v;ul˕^I-+oD2;n`?u0{Qm&t"6ȁ,ރ%41]GcKXq#Dw٭9|6;)dz]cqyKkv2B=tz%̥ūW+2pM@jy%Ik ܪl̳Dt jYL "2iHu #>N .[R^.b#b'IҸ}٩Px ^ulmddE&e͚,3 wsά U(T )(Qav_)#vÎԤ%RPsey{fǷܢ'D jʼsgMۥzGƯ68ϱ9CtddxTd.1\q]K i奄g}mꕠ~MFm r8n62Tx3}5D6 X#(&QZז LoKGK{5hq whPfDTv]aTU3LQ;,k7*r 0|N061*uE>\5FNu޻C+kݩ:Jo XU9]kYө։[&s_5=9Q@*7Wô ʰ^WPd~i64Y`^!xf]a{8j_o$iM[1qx6~WX+$e"זE&,k A2c>8v#R{33"a ^I%@'bή4;8iuL]&˰/РiO5:B Rĺ鱣FΥъgefS$ݏ7Ev=>rS| uQ 믥ؖ踃Ao,M9b&Q-Df4H wpOpz~"zh79`qu gs>5^7\IF1 # ['Jnf=1[p}3ǨBbnt _沎F&2aiI&e珚\Ap #adaw{BN?љ#E ]ӤlZHD H|nF!t m\]! AO4({>2EQYf"p0ծW4]ֺ}5Nw jɚhwF5T$Us5]_k1Y Lf )Zg]LukC,nl690Jh#qgpp"G.ܹqQ0cww?wedEUF&1̆C >/4j)|hN8HU6 c,2$+ Cr,3uwnazf:&/:LtP݊ u3qiޣ\q Y PczxUiE=jYb[ZZkTU[WFEilBǏ\mSyz9\gVY_*EU)FKq +n﫾֓Fʐ f#PG T jot䓓/ N/Y7u"'-.O [}i]Mu\] փvTKi( a60C&bw3erY`+BK]˩y@%0+\4.v89c;0T|7@;jzn#U(u3WuFd$Q?z;K* y*_jˆqO®t# &AUk3Mp4~HtdJ QNח: סDpqÇx9,f<7^#79o["q ┭ƿWvri@6`NI< uW,_:Rp+wR'zgv7 u  }&? (+9}G6Vl2-A??qq8V_H =}\'+LI#4nj.%2Dlnl Yh1P, QMK?nD'Պcv.ڰm)S8yhg9Va&뛛b|L0 d1-S*Z%Mw}tfr#KU8?9ŠՅ =0UQ@"\:L X#fd ̖+qe7{쫧X7V 6޿Z+їX?Kh#aT͋Q7sRdA]5#FVTNNM ɞ[%{![/Xfr.\I5e6R2M#)#-dŵ9 MM+fҌF"Ϙgaljኔ WY6#WCMSUTZ]AÄe}.YAT޽lzj9O0xs,^!*|S_(VhYn6ΕŵdNDu6f\Jh#lqDE13̧BK AByF+G)h<Q5sɃP=ۭXPNjmwC\\O\LdXR+qZ [X,1UZhtZj&hk璝J7sCԋ%P_a{+FH|( 0o%j8h(' &[9vdhnS23MF*ZZL>޽F2sJCQg: q8꣘NNQjXh+ız5^>ljDT y`ӝD)됗 ]-EbTڀҏ,+.3jJO5MAǪjCkǵQSyn}ܤ F0)Ŏ.lMJ e(B|Q6z*s$.uh{ȓnŝR>[;X-o\:~ؽs+tvvA }QEU?ɟ'|?x/Q4ORU&0>0ݖp 6Bw BݭVA,oPWr0(+4&FGwNVsEMjS1V>^5ajn 淟#a-JH])mbM($}O,ZF$ K]"Yclf1]i iaM u%6Cuf/M,r2irߕI" \âh :˭ U.~?>NN.p||dcDAs*]"p<7\6Mw^zr)*4? )5Ñʬ `Fk\,ـ~X.oG#B2ao٧mщ{})5d=#uP2];ӥҤHmU:P+4S2]t,ZF[s8UͦN՘Cu3,'X:OKr  }Xl.M(Scĝ.Ύ_H,"%-P"6GpPװ۷c>A5( m|Al4`5{4mliN90naHpd1G璛1P}u(pœa6bk>-T0w/?G7v{CrW,K-8@%Jl?YbM++}KAi,!DD;=i$)V8YS_7oC"U+YZCPhNGdžS1A)ijq뚤ȣ^Ɓn|+sۚ7Q7| Xa{aMy6ڲ5~>>q=R҈;.qEtVC,im#10lx7tcsS GvZ9X,8ςPCgALE*q GÚҤHr\SFa(F n^6wC(YNYn}s5]4{:P 3dl|\@5aC:n2Wh8}q *s'fHU V tCC`mmnYlhl696>wMwaT+t ~›R.5®kpàn7L6˲cWDZmD*O6Oyġ[[sʮF+xZh( E#oh0p&NBh[UɇD 3W5~(K^&nnqфPhM[T ]$[P~D@;R>eQ0yt~o^Ջg8=y+->֭2ږM1")֗I5],z)$)R)0?`Ue(u%]d"G"&f9DLЦ{g'+,ES4 Fph`1cT1aggB$ XX)54>A u0k8+|M_O4،4>a1)KT q3ՑBH7jz2T^Q$ќVLiZbdx5A xL%)2X) (/Es=t.,ww˵D ʹmD25~)0Oxt>G?f F[x-CyoϱK) Fl|Y4- |.йVC+kO6"\`oD 4Lc@Ġ?cH%!BN<4f:YaC_#H4RJLI6gQ>5; OHͽt~htJ_:4ӦhSə89Z$'  kjD(w\QX5 s LTT2:VsVGS3@!XcA 7l{TKkJ`-{=-޸2Z?8*Ɩ {YkG=烍+㳤5p)uvAΙ9# rGAOѐ% j)0^v[:k^Wx<ҭ8lNkT|k+UNN_y+QSiUaOXS7 s m3u:{[.sף&!# OtU_Cu׆n[FUtoN5+7nE@}u)pԞaKUsq55z\k}kz`b1Jpcc$Zn :Aj G&ouR0~ۼ~_Ҽ/LYԎNiᆠ8[U5ZVm;N+ܠI$66,z]+5ө3ߗ½]Qj}i6+ʍ7rǺy|x5a |v\Cg.KWUY ѩ*t5ڤn!NФė1~M&*3d26g$*P~`j~l?O%|\xyzY3qo%Wj{аcz Wb4Jal!uec%//iOejJ9d(B7+5OIĠ] Ry`|h"5Qd :t8"Mikh D]#>dž҆6[uQJs9b N B@Ti\Ho*C|S|RUdRG9 (b2(r^;4M>~FM$lFZҼ9Xf H %\zÃ$I9pGwnޭC)b./,Wޒm1U굚tSk+XX7-eeL&c\\;!-*\O&8%&62䛦:Ԕb7fƦNNNdßeЀ;'9S2TQ\T <|"])[7ium740ť 7h7;ҸDxgkġco~1)7FHVSnJn1!qƣO,3^T7WrHy_~ޛyû!=ssuWB;'$*L,řD!{ #cTU nA[ؐUIk//.U̒ 09[cLZ@ ^f=kJ3Y*f8;g_0!$6ͽ+'z2DU au`{_&] xPPE1r̵77ԃMڮnV8 M] +wθɯEwMh2 \VQP5H,[oKןE݄fjdnt`%!Mu )5/Rsm_g853Lt-VNsibrO7FMMSd2~ڣ!n3sj48]g_`}/ň8HE6MA5[- %\ 5mL mZt@I|q3t5]\Jpzy>>@nF6x^Bt8giZ`w]89{(e$ZAzl! 21Q)43k!^Mndzَ %ɦ э4*6*{KȲh2oRרDl& ȽFKco bS5*\ϮE[ZTJ3$0>{x a=cQ{kA"%W2ռYnZӃe).FuT(OGD5)9`a;EǢMl z!'D5-ũ2ďC#F[=E3ېGRG㱚 E-RH 9eq.-o,2#\B,/-)Uqjho:?s-S{pTA{<aBUĂ 1\ILNBmL};HQ*P'hV4R Ca㿦) Ҵ CN=tƳrLNvGGB-6ndDv[uiy(#ih̕ԪrHJdƋfdnp,2 L4:7NWJ 4;}7dr-|{?_#r{9|/I ڪ]"m 0h+ZKG]5xMWI.tvÐ؊5LxO=$ w 4:x/"(Rn\H#8tcc*B%9T3[$DV#EyUYM)dNgs *. S50ut BRnSpvv*}qHbU,hFTq[tE-:@}88ttJU gXSºXvjjOuh^..J YVUV5ĵ.1tq;NPSm\]=몦>m]XQz1jZC=G zʂeb\9t"2:4UczblF1Z1c!&w\`V)C|Fx1dž70ʹҘ#ӊ#ee>P06 5KܡGݺ7A)%yJX:}/ rfZFyF ޥ>o"s ͚ .kBG+8F#Xٓլ1N]DLA viG]77A:;]eDXՌMCO6#FDR`1SϦ9ԬgkQ>zh!|oiJ:55.lmXs5bCWrm7)AMfc#EGj{WaHk"ZS%%ljmdacl3Lر {*vȢu^7@ޢh61',F L:[j>=|чf2#쏔_KjC(o7V~z6yq,3z4 &jV*uZ21rܥ̏Ï|[-:R@o>s"Jto#1/ys a$᫐Lr1Xն2C.Ǫ5cE[qAW]B5 !N6DM%UX͹ARy^Ecz<RBG{\ȲQcvrS, W1ѢFuشH:C@t"pup8$dFADf9 6 c ('4.C z%5Oh62+durgGE8c8`8AD؈ј-MR8S+)Ig#p P);h5tXaY)3Nwis)+SZ萒Mo;@8C"W,jXR;:׆ya2˽`L2GXΑBIk[&x+yHI#\36UQ%tv Ȕ⍷/՘'c1i|yj9F,UdqMsdD \+rMܹ}WlFw I&+F:!HF%&|Z| IDAT2#rxs}..tmt{=Ngj٭N SRDzXV2|"]ZsGsH:h\N40e.ĶDZ5z" *.R$fTiU!N!AոP$榬B/䀃SS䠄߷tb8"uz=gs3AI1^f}5Tg<tuZA&P-EssRu:6ew4^k=9Wk>V͜&,h#+:+a8EX0@ ^^Bβt\- 5;lan\  a0>5i0TMӹ4(\\Yӣya*+X9&;*j4ÔmIdMfƵUh퉴f4Y/otMh\GHq|@Sm4t:gZZ"y' edV9iHeMbhUɊ;Wa95YSzaIXj c*O67eVU32 p7eȌrJk_ƿFӁ^G^k;"D֔;C01x@v$Gh^gV%0:^/9YT&}>yFؼ?vVL`2.:KVvhȺUa4QrG#7jg<hln1<5-8pd":zx$EK )dSѦV13"CPUɽk1Fb;qV,cn=y|)~5~SFx#looӟϾByL3qUƘYO *+*Okt}վcb?Ƴ/ (ש6T?V D` ;-4*GHpt-s+0=V@1!4D45pLE{f?wX7o_Mm *Sײ4o1hBm^9t+!..ֆDzK$_&X cj;\"(&! .[{8??p#j6铏?w13\j-&6&GCm`o;T8;x\g<.ҟI{nZY~8"C"LEd#ZGm#t]QJ 0\#v8K/0{-1‰%bArMt2E*e4Z יv.+10yz33Va+zGd0HvERU*h;)Y&mqS/TJPi -6h&[<'0TDi8h4[~~VPZI]ٴN\^>UvEF 4Q9RdRYu%C>jHV^>I6k a!2SU[#˦$[r2GA:8 ):24bU ek)f`q)- W֜ؾcv*\:`bQK]iJǥ@V~0FXK\Yj9J ,=E.GK*Ņ\xp),K_\ii>+C32/*g,ELl G =[3!0wT;%:g ,Hð"Іm msl޿F]FA ꪳ%"F+&2U-vueZUkNYT6͐5#u;_ ( F3꽏JC+Sɥ0\hU}5ຮ"c `ZNW{M,{ݚYw SU>;ot ]o|]Z|x3zAy;~(xf>Zj% fGy&ؼ7u3҂:Tj'Ē  u eA6 NUXV-$Th3~0PQȒLZ&1S N֖Y Z}*P'r}|}։s֖SB̋$@[-zB:dx]%Uӳs`No?+mtFcWgg% V+z4Ri&nO&.od3KZ B  _@?LnH"M#W&jx}̧s p궅*H1~-̓43[-M ̖3'~OtVKV1EMb4ڨ(2yDiO{aEei\dJ5P3I+Zh\Gtn^.kd멘'12IWQД%1:[Rl 6㰉\j#r>y>>y]<@sR#3 DZ_ꩋ\1G\8 0o!]gD ܭv{gxt–fa-1EWݥԱ,1d5aj>IVkdB-@AB/=9?;1Ϸ(,BF'w/knG6, i5<\{4WvQ Rp%PZoiat`(-ӝI>X b#*)^|xhjE\dVSDRIP>\DmeHu T>MGxm2,ivQ&kT"sH-.qy=Op~z`ib\#N-ލ6 ,dnaw:&ח˒48#sZ ɡdg=!Ub &ѻ ;ݠ~L nCe\&2YҳY |ύ'H,c2I{^Yyr M;],o"jrG Qu&-Q] %OB,ۖ{|s F-td_e"QMUz(!{!"7U+QD8JtU$v|E.7;xu7LNwsIQ;W~ƺRocݫCߒ>U^QE`9v5Z˘2 uY:yFy4w;5Y7QHS`ʗFYUeizPUڔA"R:m[cչ6"38ꌠ!*իX$|6i7-NѩCz k`WftjWŒL^l7]%\)(56^2$vQuínQ?l5 =K{NJ9bX߽裏˧ ?3O#+1Vay}v*]HnP"t/h9l%3\S`j{x<ȶz}CɲOLBu>әhOyܯ/u-B#&F8:QuN s eCi7fuU5a*Yd9cSСPŰ;Mbו!=x'>[fxSIsG#la>?'~;C[CG8>!vǻ8=D#hSDާv{w/p{))>9^\ti+AxIoC}1~\^^H R>#S/-,`oGGGB&ZEf Ra z]&Y>IpS/Pb<?OLbCj"1.d^'(kTK&Bgnga9鵫o4Ƒ8.dBzP%H]rP`-<L5zg5 (S!ncLkW*Աj0MbxB`xG88ׯ Z#uP,WxF~hjZ(s-_\KX*Yɿ] n7T dU(rZb ~p4mgg[̽0M,,Y!>4s&\s-3:O{k8yAkB+Ҹ̲9kh6{8yfE?,e@.Lfz \,nEYPD,fG#qjV'r!kI2l-9BuDg8[,0/qK-M$Ze%E41V4bJugqܐ# m\+ ń(CEƜ4̰M2rrɵ,Slxs%./N8 Ȁ#aBUu\51ip |s^ϞXS<>+Z㇟ s`g{{GXtZ]<[B{d_aX BWo^/ǟS\L>sZoI%E' |q}&?˥a1 cCiXp*\Nay6-t 9O nx{,$l>z`xlP40ZDӧ+Q!lJR,cY;=4i(~^fY 6ͬqOX!32L/_`4ޑ ;|åFg wrv%Dl2h::47ldӊ"JeJuf~c\^To6)z=[ѓO0>13i&_> d"HN%Sie0^ YiƎܻNNb[O%RIY,29TZFVk1ywǂ#Hp)Č}>m7M2q+9+AdJ "_$Bt"'Rk>@ōmGgJhwe7ra]nZE$SoP(FfjydeF &fN58pqM|7Ao8STlL*Thj^/6տsRn1En,TI_# ʍչ h5q|vjQVǔ[:f#bZlc9V fS)4fϩbjNXG 0SRXVq^Z#5܆*5RWEG_FxqdC\,a3CjifFo߼ěc|gO/4\z!Du6K.B-u]Il?7O//_7XȗSy%53ɱ=7j;Nz8nbN ,zgazKFOdQ7N6ꥢZb2h4ƳWq\ ) såy4A:| EJ&lCP@A8M8P9fNAZL2źLJX ZQGԌ_!.3p{Gq޼~qwl!mm|G(BhȊWRd;qG{G:oub%C_ne RsrvG>g}뛩"AgglH,>54k6T L iڍa3bt9 $6>klj48bN$H"|Ѧ6ۂfI'׼|?:CbU[bZµ}єŋxЎ8Ԑq)C+#mPK3y^_d3УtnqJ+tZʐb==! ~'냆Tr/hOfWs 1RY֦%j]x4X)?>ɼ>EY-t^t?+x 789~lylu4Zi$TaS D\AD(- ۤڮW]v ==0[$i~ȝ5@z43;cAVI XԔE2+@Bߏa /!J")4&5) Kєlg~V/FayfMk>Kq[y%œϬUhR $'\%fVͦ#{:C* g\R`wWS,+a0+  ]G=\V IDAT^]!# $BI,N=,IESfU c]ڰhp((=*WEU ن FTLQPOeqz0j";!QtEVݿj͙v)lePm/ 7bPgx]p;'3rhB rP/ff:\F'yKG}U3qCͼr9f~[ 'sHUasMZnwhSn6EfthޕJܜ!OMSP7S=eY&)_ 5i἟i1Qڵ@FkY^>1rR`QOjGs??SV5c!5:M2t>6T[h.v h(׺^+?PЍ;moLZ l^] {~A< 5º)\W#M*!vb埋ƌHCBꆂB4mkQ٧VGEX'A=RrVט[I swqD^:h8z^ MlvY!a.l\R](^\kLV٘P,b6ߧTKqYx4yo6E<//p7 *v r8(-ifK=p(YB Bu%zD^kR_Etŝ`LfzS|tP@GViã#z(M\Wb"+ J5ۘwX%+8$X#FiBd/Hunpw6XtL;Xqr!5[XZެe^%ŎLkHrOel.0Ǩz>üp-!` ɹw8.{W7>g" ͠ÝLrt:}t=?¿7ZP}UĸJ:VKl 6/-~!Mdà ;g78?y}>~/^LfA<_G~_۷xPٸnӉ"dQ$:AcJ'i*S\Ҷ<8^G}4QBj"޼y)j&Me#<17ıMV+)D>iE$c6,,+ŤtD!-K0xMbc=#?Շ ].%.jee!dShr1gWkiŔ2HDԡS(C! R.)ѝi%97өVWRau`p6- xq_=}*׉vD.6`@^[&)F!D q =W-67FmdHg(ƻVu|"j*% CAjs%۔ gDݐ, <-X?I1\OR[iQU'j}y<߻wo_ mff g-Ғ.1>GȬ̰R{@v1ڽ_FABjs(qToQlաE7{zZv/+ q}ռjqu֛X$.A=hCܹ ɻj!X1 GźR$ZcE(s(]Ί҆y娹S W44; $l=@@.ejRB5:!:h)T ⬂*Gc4'RYj*߻>nU)%]d ɊvܗIRQyEM]wrW\Zxk#!A :"]< &X ᘻ@!N4j>[FCk w` R$=:q=o]#u*kPyg:*-^&!5z6 5z8 :pPӤ]cd3?(׮l6n(,dь;C}k7ZrCA[iqF>ΩJ\^V? Zh~mM~y2Nt`4 yL챡[IXlpqTEAe_P(EQI&/:::B_RPH ;I'PoHdsib7uw_+ v0=zql5 jK<}_?{zuD"Dx{箬w"_gx4,::Q,GϯoK p0> BvJ1k,jlKi]\\HrqVC8,\.A"Y)*U). ;p37..&B bwCPܸ. ܹ{?xlh;vIWwR'Ҭ׃VHow\la Yu0+&\#8awZNjU"o)95 ِC, Uؖ|A7Љ*f=uh#qsĿH^l:HPD" lژg}ǭ `P{=ޖa юq9l؈䥰3CIY<4Rt[=UtQa-:6 9B.y(#\1eQ]LoޤǶJNsNj7$cD)%eTUeV.̞0<l v2TʥL)S E|}}s}k}# /"ZFWLrv#}:+ngH#:/' !B`b mnu jd)-(oG3^ f1> ӡM눆qC0}$a+4sY |nHZ>&)z:4itv0<ýwJ1N/BȽM#K2a(gMyWrm>!Q3em>ΣU>4tϢ+E*hZʃ6;?UN7DZk.@Xb֌Tf7wlX|s})CDs:z+Gd~$Q$F &14aKtF@`#zβXմ{L`kJ,g97#g5=76osR4=r&ܗ| bFkmFN4e{^8qWvoҚ'-F`C\o; MJfF:V憌`|VnUF`u4_痚ן]2ю-? @beMqU?jfRk!&uTNIR\+00”Oo@NDX ep;mhRS /` ;wna1`NiN3@LlSmuUj Owp9l )qtr755?}D]9erl)D(+6M6 bM.'zEϕ!P˹4<̙=6wݗhd& B68%m*L .L^cxn$:p+o&ݏn<9`' TkÊngGQe"mL ܺ.^Ke I2I-^fk0k 1ί.3o}v=mϞ=d1,@&=q0S{r]!qWCş>뛷n/ƃw_\=xo^Oj:͸{wE7^dX{~v.ӏ?B\b|4^BiȰsA "|JoSYqddn9vu(_ A1>Ci'τ9&EBPh-HF=lM56Ϟ=GWAz&M&^^#~"qm*<.P2M  cZ,'qaKјt<{CbFUpB&fN%UCꗿJi%:W <م򀙽:DSTT:m̖K`^r3Wr5u1_B7zM=gj5viFavt鮸E(n`@RӉz Lcln;BRNO,l*. slpvˋVX1"rja5(FKg|vm9@c Պ.R\GUCt3{wODArAmlc2"%#AI;2*߉\_~‹ ̵'ћa|-/^x<Ë1}|=;8>zB.٥#`|]o'-\oL|Xhs&~<fZ:5P %HU-~+1 ~*hc%͆Xk2m ʛ`ԃUL,ܑ͊HsW(+4qYR4u%kTeS3rI/fgs*,3OYpMs3K\2o-Z" D/WPףEMj:q٭7gRyz!quGB-C#^&ihۭ94"P ԐS#Zco]Ri ΚfXC"6cE""0G$"ݦAC||fQ]c-Djl^(؉7F>\#9Ќf~d8gQxvkjkM;,@G6ip.\SoׯKT3/KL*?=;Be(XԲ)]kLq#xqER7̒gd#jRY&A[%tA,R RdIbC,&ct[ Z3e̘ Gg'~+*]6 n^񵄮2{vo?sܹ?ŒV6->̣ ǯq1K;G,gwPe`d*6^O2|aCp4|rx?wS`||mZzy݄^A-̻F+G♎M+^olo#3݂CҔoxӇO2zWʭkF&|?韴$o4}Ҽ6nYo`!x vlna2b6:"3^=3,9J r5Œ[|,wfN}z}Ÿu/?{wk<[[xan/i*LnUw !o1Χg}ϴ2[?+4 ޹n3\ rD޷zJWq"}R?j ҈;{~ea̜P+4DyDJ77?K:|w;]$ %˗ ~pM<>~Ҵ/F{w"ll+ܾ}[[8:>qMԼ:/;{dDŦ ʹ äTt5iRӢ+B","UA;@+0ZhC=\1q!gnS4 !9}!;Y-rR{߹~`p9AD3[)FY/i1CMMR:^Z1Nո KMP7*ux0Ijmdl3jf4+EI^{0nGt*=ol15\3OzZ\_I՗9^!n[{|><2)xxͅs3BՒ^(;\75ZWD*Xb;sgC,&WwZOD4UAQaK4S  U1̳ug4Ii$ z>c8:џ xjH2?1 pQJF!f|N=^Bl+4L7}[8?7o/~?z( 9G*jiF͐20W++ҵ ̍Rںht)}'t sUʹlAKӖܓި ͌{L'j|e*hUn;6%LtP,Xb:`>SY?c|o0M1#ňzSBw8 P$F^uhrϠ"CD`4dC]ٳ߹s3Hz/,X4uMN#5*%N.19lx<S,^gÉy@ic2= 4RcI2VEBK,KG$xgWβ`Q,DdSƍ ]>!׍2 _3N [.H )NuӧO`< oDrF;8'"5 {ۻ899Ww<>z.NܻO-_/ihnגܾ{_~T,g'W{=3qm**Ú3[gJ, NT,4F?5,>MQIΩ\;nҿJH0p|c\SGjZIgCfjr<}"͘PޓSQAoǘT 7tBbu;s0,wqXYDbDTh0QfX'[LF:G#fv#7^,@(6r>׶%*Ti5,eiGEû~!^~Fkzi2*fHTjp!Z,=\RSIdS؜um#bgPs0,4|`Af~>DN+:m]kٮ 5ȴ7tSW!rgzg/XtBQuښ9pVZ3̖4f fUЍz$k 0HVGHeNۮbU i`1:Bfɕ#q9Zx˗E xvj  9 -hbK^péU,+orm??Y3&m0=t-=`f(Y\IhߊĝhP=6=5/Yhk$Ed!|:Ẑ$ AZX&wa24UVaGUeٯ*5~9:s:y ~y_F\P\,DL}ݔ!Zk\+ױkQ9| DzFr ͯ'.O" fh\34hXYH&j R7GfxE244O[,fsMXsj֛YG'sLMJz$NYDٙ"ݽmtncF9|= k%N. d/@5[(\,S3?.̍?f)棙rr+׼a"`(F91T+4枘l`kS!}l)j}kcC6ph:ï> =k^JM6m FΖ jvn5~Q{{VKHV"]p5$i&`rWlxĒ "Ѝӈ'R AXCcX(X-gm)B@ݧ!F bȠehNX5P}&=Ա.sL/" )VD`0'Z=ϙu2Hkn7R/85k(SH'+Ŷ9^*B4klo5by4 h\07DCpF 3ƦB\ (lƠ)K`,=Vj1eV!CbpE Q]G׌SK!&2uJ1Ć1Dkij)|$5_h"弪j2^MM46UQ0\#!u&514YcNP IuuuuV[:bDV4Z\j'f@ه|FJ_i:&*kb?ǘY LԨ rML5՝Hg- 'RCkXLCs)J }=hDHXʸGjͥ]&HQRh$7 ]Ѹ0ELh`nٵ_^%[| W]]tGY?J2<,. =Tw9|8+58,vvvp#^ O g'= lߺx) 33i\zSX#t%\'e7q_Xm44S'7oduħ~Qgo^?Ԑr;EŲMim9i ac*JaDQ T>ZU`o_n*nXل8f|P L@a3md-|o0l6BE6Ew7t/g luz 3݇Hp!Ydtl.Ffn3|V bFΉBqbJ0*_vkuM XA/=&^G?/Gl妡'!4L*ԴeLZ9|{1NԨ 57"zJGFôt=`Лc= OfmJIoDc -4~7-8PΤ!5ύiӸbrk4ϥt=)&eʰ5-rv^6i}rpuyoț 5jfF˥Zs YBwpxd =ϧ9`.& &Y,1 q5S\lIAe$ms.o`csg'gC2;l:@NaDk9S>Mt[6)pH=xy2҉ϼX}*JRJݱudp-/^)۩E0jԵ hXU4 ( M|@|׺ԠM"^_"~zDMBh!JšTkz|Xڀߟ7AO^Sy[:EnޓشkZiwqD6@~YWdMr\ukhH͢^׵% iQ+[O@DKg^n]yZؼO I|U`Q%WuY\֚Oj&\F݌s5so#7tVփ5;i2 ca(;~XdjI˷Z-.*P ,{d]ZZSo12k YX䒦H>dϿw^O~>H&?ë+o6B:ׯ}6Ut9[`5pmln_WR_~=t7pv_aNH dAI`UzWU;uFޑŰ4'ZobJGXFJ`Rr>V^6;Tf"y\Bax'+D,LZܞjݐv"b!3 ǘ tRUV184Crg跻W>Q'JL- g ͖fi@;~kp= T!ZMqlm)@C[OBD98 Ee2b9(ËS˩n.Wa:>j1AZ)ǟykҗ]\4PhJi^ĺY;ꙵzc(t&BMFFF-N$ z=cUx@BNk:oMԕ&~۰y^~Z=՚TvK|/w:F~y_:HWWlaE >Ьb74BXs܍ dY MR0 O=\CF R ibXFLQ;Qɴ%ЌclL[jPټS!,\YЦe͑M>hWE6nlwqO>{o~-`6 Ix!oqtrF!4UGߡXLm ? wt]7~D6hC,(w@! ׾4,Sd{z[?E)]$4j4L#X4.ʰ]jmSʺCg>p Ze;6q59R6܉X4򪈛'!UWgG8^h*mf9j9I &Gmg8N9\rC2k3k:u2O/>C zRge]'_`k3- hO`(΁jUak^`4o<ƴSCj0?yK\!i 6Ժl0P3Y܈4ԭTS9 ם9h4Jކ7nLP5VPPc@st{B+Y8ɒ_ O=õ}co[+j9l^K<xL>ɂpu1ft (e:/w `wc {׮c0!inX%|%BLͧim9>vx4TTkLFj҄gg(*%mP՜2'KJloH瘎/e%}giz6vWrVdMҍ#LWs_#C F*_DeRAM),ؘ.+Q&Toghw{m5|_4_Z !+@GMhp{\ fNLcؙ\LrĕyQ`o3 ghJR`d#PwMbm]\`wOQ FP]zdMeho⍐$3+DcdpWX.Nf_;P >z! Jzp,z#͞p|.mؖ);C/qrϿz-Oyi4ֳ-s)jt}N`*$:6cME<)邳e*cIN zP07ujMMK霙;4QtR׹ů>IAl$ujdFeY+k8ozBUhZXm/5}+7B\qtp!Zwˑ,sf5=Wh}cC ޸fb45|" ~?s@5PcXI `, *ԩѴ p~ԡ{x~/PSSUgdηbd:?pѨALJ*vU8ڝ U)_f?Kg(neٖcP,v-ei6bUQYY&G_xsLV'i`A~ 1 DF#MH _ MFe[ BR5&''8#(<W~ʠN:sAs8Y,MBcUj>*l[iBgOP6mfv-l4:&ӯ0-ƨr~ş <{LW#Fg>c~SH&%??@{[PEs ~w_>ۨ{~{ cHEl4YæH<ٸ09M|K/y4}@ͱ$??u.Pc35?rͤ%&${}}t~_CfC25r\S*Rz",jd v`Fg51 k8R󲘉e0\{q9T.iXv^+zx5щDM:dv,wggo;BzggW :9SB lBA ?sVA tz\MZl2YԳr8mX\ Xsd oXA-2\qgBfSTGXy^#KlfFeܫR" * ../XeuecLl:B>MS4 =HRZh6Lw\rw"޿hb14fj@':\^F;V {Ip,|hci[}P#ru0"P[}RYR.աɊFB2w_5 A7`_EMipy^Ʌ^ ҪnCheoN XIpFkb(>q7uzo Ȼdj I$k[oךCaClh\CqQڰvPozT\iw0Y?eS>, 5m?316IhذB`Rs!rxѥ.LйM~yR9inMk;lX7o> gk`!'ꄑNYHG(ejƔF5 זu5G`(&qDZ],oIw4d;SVZKT*A7n݇B Px*M&޿y _*zeN 74~2{]IMˮj=Bkso17svts  <àr13%imҶi'φXmD xXj^VȫU3^ ')Tsoֵ4fqY,lcO ,'zh➗h9]bghFթSM+A*EDW<– o`YV8v X3da)q{W,\Np$E5?›S]vk [wq{ x~_:oc}D^^zǭÛͯ>:qMjyoq@AjfLz)6D{Ǐкws$p-3V\ݮ+|O㠊<ʔtH\wcC7kpL g~rAy~Jeo^ii{?ü47?Gz3̗[w0MZZfjgqZNE˥6I lMuzM*UVҝ+!\ݎ>xO~煩9#RS^kZGglX$-Dn5XɍУDk NS:UE*.Og-h8ƒUlZH~3oɤR{9Bi Y>CL8 rP;Xx .nPax6CsuK/X9<2.mߥa#Jeؐ!OU1].Nr4.|񵹍1P6sFՅ9!hxyaoi;܇&3w03,fgK].>pmUX,lh 5dĐ;gҳ|L٬TC0L꘳XX-sc%iFS;3g> j -tZ #c/LK!oGSsjoX8?S&%1g?+6ḩPwU"N%ErMr%jLk+;fM)qԋM1\IjȝԐ'zC2Mk7\=^C=nؒ5@@ӬDyR7ᄩ#DMQ*gAf5[-fTt/LcT 8Eg}Vz#ofQ~L5 guQ@r.+׮=vU55>o̬!7ʶzz[#37G[ki>`Uv7)XZS5Qn`hko(ըe vMݍoN?}NWh4u=]/)R58d8U&PӉg}s˲ȇ榩Bf.#kdQȵC/ҙVQRBg^D˹4AKSLYx".MENab "wc57٦DSMlkBD[Ź8mƎ>sسJٕШYxhEtPpOg"{D]?nj..e3\Ƚor鹐鋳 Ӣc&_ <>;.W1Y3, c-|Ά(W+lmbscIp9,Q-Tǵ^hi@mF'@,lٌ6Q& [T_Gۈ|K{We4,cLHfK\S6? (*-C N3]TMi,c+" eeҕϨv :-7蹻[)4g@o4(K di];utWy.^[MZ;0;N$K5 f^tV(א, [*fAMu#$cMJAYFxlX:6#u3wׁh3y_T,5'6> 3U,+E3҉a6-{zHD8h p sOQ[[6@gAJUXxM(3K~w 4[(l,YokG 'Х%4jW@\ؙ94Ҏm(NCpaVGUf+ _5ɡL 1N6&fCFSd FB2\'{`08WGL iR/-^斾&jcbB<x%M<]WZdݔ)1zVYI]84E=:ÐɌ TE@Um94V@YsmK=N4r;2 (HnVw%~_j^.Dj#]k>έ jVn(X&5PӵIRHRliI (VyWgS&FST1`-ȌF !^zeQ ԌhC|ut>ڭ6#O M!{~~ />O8;z?;Zͳ8^o#5T^}{Ƶks^~{3NA>x!^B9!+]p Tד9&Z(ü/FobkcS;pW@6l| zϼT fQy}Yf+!VfĬJ{+4#G!>](/UU@T_PRϴ%q%Jzє" FHo!?dJERda u[B_IQ+ńN֬w;2 C6jɉvp5Tcl*htz8>9Ds~tڝɌ͐1XJaAׯw0Mǭ70] #;*xDǝ;䢴!nKϽtT+\_ l6rG].&]2bcNףMZK"D5^_#7oDˈ)>YS r,O{F9..&BZ&{pxik7|9D-zsK.F#kL.J3Dn>๨WX ua| wwrddKC7nHJFS}lX՚S4=7 /x(B`<\b; LЀ&NqPUVZIX!%<6g-ѦUahX1r0xkbm`Q莨+Lz˘"s\%&K. Y'Aܺ+#F?2x&ѝI=2FW_3(:e҇]k&|:b!m-(k)gߴrw 9gvku0h4}! ,ܾNWSӆiX9mեe;8h$ 8MlemOr&ԕ>ITg/^UzӋ;@gәAt C8*6x,ݱ.{x#nϮyaڨv~4w<HVa!esnIԥ&Lm!@vqGȳ^j_rBf81+ *KC$'l$U_}[bзPP-GD=uʍ./px@|o@Mݕ.5D1d*p\8\ ԴHsScr5Byب %^zs\IQ :{|%ӉΎS؈a56cAzR.fMEޔ)UAC#b %Dߖ*;&2FSzM5"D+ U.l̂gK]C΢NEu%L=Vk&{F-dLsB "OZ-*5;]^^ OL W?-&é\elLYhX(B^ȅ#HƁ|wڛ !<>KIX$^ʹD4:Y xta)'-I.,'Ua9flT~VST1%t_3r*Pg4 f-ULNߙ$wsI|cUl&ڭ닮ӹ l+K6[ QFGpfskpF#l1ksIpr-jS$VΆ!F.|L j}u~*&˩h4Eth *grIV+\h:WCHeiupE#X^_EEYsA}I!DB-EޮJwD ^:M)q* flbRF)#卦86w }v:k3e&nf+:SkW1HRA[B57]OQwOERI=9>Ζv|XCMx'6wht= ,UQIaHZr\wUjXD`&{A{ZˮiWr#Fv2]:N_g4chTR&i%fuYЗѭ *?Z~i:mp4uDW'(5lɵ{jufer4; Sc:@}aCc6d+pP~U~Q\|,38L-VeDsu5D0Jj$ˇi䬮Sm;4{ fIbjU[9cMt5s4ssRÞLߢ{U@/l~6AOŹ ̤Iߙ!36ܳ!] ^э=5A,ҷ@?f~O1r/VFj8EЛ!8$rU5}<7с8l,H]ډ @ Gɗ(c#Mn IDATS2 :z_ )r:6V#Xֹ~@51~H^/h~m t G505!N~<{N'/0|J;m(_ƴr8i[ 4薫(:jPs jkqoׯKH&|]kZCøuL7}k6`QUW@\RsIVSF7pbtո68i,lI"K\+l[BЈDCڌMP"*ae;b6. ܼqIQ9ċ7;+kd<ƼO~ɗj&9ůNkPϪYtqڮϸ֍[2cx54"sUY<LJ~g.Hm,%%vnl4F_?b0@IC"׳ʍ0S$y5}\ f+$:3N\Ã}xO(g6kԤՇ$݊dDSͦo]Q B|Ν IL&BU 0V/^zA̧rLgZyNa7v{ijXv*)P{5Tk,r)#"iJCz?|no:{NR]0]LxoCO1jCn`w{Y>=wwōkjBwťDl,1IS=Y0μco:󵓨P99HbDXčJ#u 2V-lqBie81!h X+z D# FB\uu3YzyJ: Nݫf!7+|_Z8}خiQJ ri+j<ܛ[6B k`uWr{ߚQk `>op~n#CMTVQ2[G+K,s!|\nla41ʊf]_cs/pwcXgǸ]a\<]Gp ~gB}4Tqb-}J\""[X K7ӳ( 7fg3oYxds}E-]DF\xFq/=iJ9B1'əSҺ,\# P &YA HO6[Wg+Y=): :+2@X\0NqU }P(0saqC7K9<HS sVF -hHM#R}+ ̈́tq`G5Og@%o՗ӓgt_Fs t2ьoQ7 M̐H͹P.k^7-)#+92OoAk7$sB+9ɔb(o"mH9GUנbrG'ܯ*l ]b.]4׮f&P.C/vUbw1I'=7 Bm`"u&#w6"F__6qh^I=*_W䄚24xkZf>š(D9c.(a f:νG0֗8>g(3=o{Jw䲍3'hʽS[mYD3Ú[cȻ5"RݰFVუb̨-BcMP'}`Re;_x)b}&[lC54F# az^^"+SV[Cۋ~?.?Ng ;*CTsLBgd]G!jƕsϙ*AFCVnǁRS;DS YI-d=f ?2BϑPuMj.Y?qBce2:6t#Lzl7~|W 3 sAǸZ? 4}2IuټֲF(fgXݧ?'swfsE9PFKݓڲ`kn,-m6߽-K5np PTjPPi?);(FN!:dZ3(9Ȼ/7#IC1ሻ6JCF\Ezfkl[BC3HvY(s@U eLل,5aV@Z^@f#RF6|CXWs:uJ/?wf'3͚M-:6L;5d8{63nÏ>_VkA0IB "iٹ !2T )Wdh^^\Scݎ85)7Ӊ\\6n@@#_]3ͦ2z)] 6D.^<ΦE}U@J?؛አsб b2$,a4]jMgs_m.uYZi8b15u&1PZn"YY' (5p]jA$zdlFCJ3m6r-LeK ،x/M^iȺ̕Qy^ $I!Dd|s-Jם{Z;bPYR[N0|hJY' nIumʁTCZz܇(R{߭P_|f{٪Jy8lom3vhel" ^eo[=Iӑ:Z;Rn%ik0WV y퉴f*bO"KӒx̦u%5 Nmxllmja5p4FĘjv_$_ ~32#uEcVpsHViS89e52 &YBWïˡda n):Y:&%5"gjaGe  k(j!dijFGb6UK9Hסt.'b6"+/Evޑ=LrP)`h=o\ٓ$*q{gZ-cMCJA`C3׽k41wlsq::3D9|So,>iL ͽ)vFhԦ(wΑ;w7ЅgJadsh\.9UPNҌ@!Ws\\R○r<Cԛy1kRhID $ӝ~]0ơԢ=rUA#"t>!B zK!vÐ8ZtHp~_MU~~?l^h&_"y+țk0*sCerM(åMls |hSنxPsh ԕ6!LB3La7|,#iU*:WzRli]xlFnG8sק_*RFExVtU eLL_~(2y<~]>5MqMryOd˕Dm-pnZMY6|8Z]/mnkiupSy-r)PQ'VQd&T͐y3As&@5*\|6kunTsjMGӌ*]GP#l:p6:RQ25sE0l,I9%.8Օ:QUc*}@Pvt/;bR4L4RlSġ6 #BY}@AWclޮl mҝt͆nn!9elT,InlnhBWih|0blhD)JI鞃ĜƉ_^kG#ҼNOOe\Ps'KqECb._DJ~8_x`' Ukh‘pH16FM@3C SQ4EP-VUdLd2_=0KG2HCMҕt:uYXh`o0hpm܌FElHےt9fcQߦm4*t%NW׀h.#|xNę`\muD-tM'݌|s;Ut:f nUcl1@Qkm5"E1 I#g֤Q|>5p ) +@ T\hW](1W^(A(7ܗ[Iw\\LWޗ\_\bg=i%6d|u Ȗ+9:< 5hhDbүmD2hbш!QӯhŠRUƞ cwK>1lR]C!ɹ'c?@eFP{s*Û\_]X+@-QBkZȅkC3ҘضK4S;(F3|.٦(p(vPfLY،e _ n"(bAX5z(ð6 A *YvH#Ѝ҅Gd@Bwj7q Ly,e⩎%ホ 6=͌TI$@0/8t@Wj[s|NgQ]Aĕok!ZE0xJ{mC5[fx~,;ۻ,ќ]\^:=Wڊ1uY+01 <́[ݑl5rwwO>|:k]{wC6Mj/坷17fN9ɳl Ш^]^2;Z6\@ Ύ/\Wt&Vkl@zDŽq-!舚v )F݀_jCg4lycAkFAiGj3@EUrZ$]%2>eWo Gg̲bZlݶ$钨#"*D6HMsiQuߨeRDXA/P]IWS8Nl[;_~0tihok"Q%^4ffKMj՘&{9c>=2hrCCf&),tctrC|1_HbHJMh`r4à sTu&|C2^P"QmvjPwc9=~0 sNDArڌ#ҘIwbHfc=f(CmX rXΗ:Q€{8!BIDIh%Q|>6 JtZKP=J[GoJ)&ǡ|܊q /B2ͳ{bvbN fLz:pna=+63u-6"i1Feim=Zy*Әm&XNz)Rb-B\:+7PDïX 7=%,[72s65\yy{.D 7~ IDATu" @׼ N^)Ж;A9ryYiqHP);M5.f 9P4$ij UoHtQdJFT~xlm/<~ #9hgrggGZ 9fSLfzs#sq./ϥPJu $w جI鍁]G2Lr=H406}:pj;נ(AXUp 2?qkV*t,,"@_JV@zXy@N^ DLhDf·cۜ@IƵW˜Y! NX X[4S)5@44`(p82G hP#]-Pai?@6NV$=H'e)ZχI+S|ʸ B{!f#>z,'<_u?r9͍t=NO:Yl2yyvA'fmě\2>wt$iyV tjPwlR3b-j4`@44JZ'txE>+Lx&!AAqMN)gO>Pj&kRIk4fqiwؠ-Zkρpa`p@ 3x5XCD#oa-1Pjhaf4n<DzIf,L uh":g,h]f.#՚{eHfs DŽH ĪZ fd.!Rߐj ڊ@39Rx&OL7C;h ϞC8gӴq nD5fNz)f29e\p9fTCW|Nfyh%ͮQf:؈lDh[{r~L,cY̮%'Y%ە#k6~Z 7DHOn~@ :*v?HǰH,i 'ŜHp-ǾGT4t;΄?\eLxWO7b05F7 ~L7hwwV9Ѧ]dNfM`7VQCs.NbzR1s29&ti2<B7oK E:4#pED!g fPrOl\CS:In{a4ZR3%m32TWokHCG};c͐Fd"ͼGJ[Vxu6 D5W59uRc)- 43Nmz[qC¶Tw"7$0g8}5}tٛN\|;0c~^geBRckԟ+70se ȧܔˆk-5U!;>K]ྜIXAU:z2oc74ȽndLïлϻ!i-Yynؼ~5R4~W+mtxeԕC\K/Mrcŭ*1APBrGsPiMrmh"g14zcl$fH$y4Tݾ-W4y 'IXBFҪC>Uȳkg̓Dͮ?h%A,?~Y6[r[Ȇ @5n~_& i0HR!"~0nJUåTZ۲Y.KÄ=%j4%_[0fkYʣw[yvr̦J,soԹyV+.xi18b# Sg"߾e\Vs~D]z. Ã"k Zvȸ^j}4:hتEBd2*t* Xi4Mkj[E[ gfmV1twD~cCT\޿rPq$Ǘgr5yY&GGr1篞Iej4wޓ>/蔊h6Ly}F@7Y!q@VAy9Q]LP YLXldXIӑwUnp(ωRG@c+փ}jdф v|(650AKH=4S:ׯݹ}/W߰Y><hV]\86πiaEZ}f:p(Z A{ƀfCcy%KL3GG l-5rboJHQ(J׊ Jt Vcm(84)nF  Cv5ڗ$92$:W̗3j],S 2g W9 7ԴDAį_@|cC8Y9`S ̗NG21] 90c@h5'Jj~%+ [u31"\잎ڃs9 C)}QPh־=#C,R{߇:wLmNz?ȩdYx 6s~}yۿ8(uh( zQLYϥ) M}s۪.&>R0@254rML:,v%Hޕ _DDR%]DYBcg:c B~ɩZ(P- ~'=:'qZ#Ө5ق&Pc 1#n㧟Ͼӫ +$ժ/8Y#`/%]vM.NO&|6,ˆN(9A-F w>>C~#MPƑZRGQv?3yrzF^Oؠ :W^]4A@$`|u==Ks#ǽ<9KF:<{\NNz4VKoW^w6r0`@ (00| / %9o֬& tM\6+Nb%S)`h4IACo/~ޑ,]JU^/@cfMT&ɔ >"XtM:o0qi7@#i7*lrT9ODz5ؕ%uj@d%jU*jH$9BtrkX˹R*C:e6)͔T 7F̐zVZUYzuCI4ɵqT kYoCp>\B3U15]ɇcܹ1.@L Zuf{.r3OnF^CorCt` B&+wޞh;ȟSْ=fV/݋7I+џP80uMX^BPF'y(TZ:ـ(nhšl>ƨf^ߘ2 \ ;is{۰hrt)tYJ1ZݠW}_u}Wꪘ.Ɍڜ[{?SJ0_$KlWtkr/IL7p%JP}Xot%P$#-2!tQTm俻5aqUֈX.d4HVK,IUHWH/u޿'ϯZNO_K`oXJ%G|XՖ|}y{ P?~G>2i_>7?'OҼL2Ph7,)M QXkJMNS 6t)in pFA1 'Ke"4-8faあA$d:= e j2۬ج8s,J Ń=rs%\iʒj# 2^Le"F)q0DJ@ 2@Oҭ٤E5Mf5g,&\>FpG(vt]찉\Ց d@uR']80.ÕZ.NK8ڂ R5}P\]\*$Pӽ(ȉ$l$<99l!3hӄ*Rv4(-f| o,}lo`F?ҩf4o\#o%lC/Ă#P 8Ax{k |bQM8w0X. .>ߧ/[[i4\(@2 ;­ĤRoŻzxAT%40ϿdZ0asa3 NIb(HMV4{RGZ03Kk*JՍlCÔ4U4`DLt9[nV^ ݀r©%hJV`'hD4.dLcЬcmCRq C:)ZA uEp&|fBJ:0BiqDIJZa(VZM&JwIK2d@D+[ vShCg[:j 9N]hS Ǽ[m+MXFa-e Xq 0_m=x߀#4;{>/'XC :p\248d"8*(|!op`X3'PZ2uԓ'ŌK+3!Rֹ:Rqȸt;y &UhhF P-4= lZRV*zIĿI.5@FZ&s5&}}L "c7Dg{ Yjr0G.}JyXC5|fwŮDʟ=nM2sQ8v[VjNf06tHnH,F)J AZrk9aZ/Pw12M:G&J}ܴ|S d8wj>>¯uTVJ1,wY+]M+2ՈeGd> e2T#0Mt8^d%-G))i] vNyo0JtVPZ=$10l< ^^_+sa<=CJs(0!`x33tώ*s<<1C ]Gur2\]Mu !* /mךkU`R< 5_7M\c[uCp?7H3ŽX:+ w;+[ >qG7~*j ZY1* 0|s"E֫eX@>ʺeD;$侢 !tyժý`& bZֽTԿ_p"Z~? D;CMe@\aq('WT;t&J v2V/k ։4Xb " bllꍦlt8@`KLv#;᝻fko~)ܖ>tLHbAoߥaPۑͯd#B) E>6h$N/YlFv+fCz5Šd` lnᜁ܌GYAwH@&Ixwv^_]֑l!+9={ʵ[D?}#zLsSRbN1ΧQXzcHj׹8公oHYC#A1 櫤(4rU9.L1A4[L}YRY"wZX͓Pԃ Weabỵ}IІW\ BH͒Nɨqhd<]Mٗ03"mE5U]Uis`IiJjl:#+B"1r t",Mb$6gLنdʽͺV̵̝\ UE)i*=R)I$ xsb[kfbŪx\k%M+#gbeNz KXO{_fpDy"&uWCm6ޓh !y0 Ilj+FsM&AYDaw 7)6ȪCUw?'%ZhWIܣifvqCk LI rd+%NZ|j*<S׊gY0,_L1 <-s!/!w==wǮj8z6@]|1r0g1%)I%RgE3UT2 \"جh?&Mk~V٠Xl"~gĦH)@''|]v}q`$ (°I*뼡ޢQ+Ff5uRʇr G峧_Cyyy%=.ֶwʠӖok[mҜ>\{!#|T<})8&|TDsſ}Ӊni¦nB#i|5ΥZ s[rfj"q]!vҐ_~)HF"&-LT[0 U_l+KSFʭBУ B[TZ?%Ueٖ*tmժG¡Z3äIJO"p6eCґI3(͐|eD%bJmDcg%}wn(G0EIPb(<1E F1>/d$bM\b}ꈹ-8F'ՠm˽}&gW;;<~X]˭[2Z,d jK%{2Kv65 Y@QvL:0îSy5*"˛+o˻Ff&a-^ef(j%/%V]I;v1/)x:{@C7F"ϙC J$׳5ȣ{aj93iH^xJd\h26dl=5ޏtl6l5p?5 0 @ji7 jCCLXj$d~ց\]\I=$K<` i}yNCx.F$B*d`\bK;oi̔Hő\?Oj@Ue8Co ne&5VEF}ճtf2 L{ׄE|dk:Q0(hΤUI=j(w:-aZnhXXgQrɼ:ڷK,LkÆ4K}$:,.F y2-XF㚻̚|}2Brfs+8`&H5VJjWِ'C4qV]w%P fZ< x` jzsRu *o;VMVwg[@Hܠц جt2 ZC,sy9Z1-uaŦn H#/ql{2 tZKPH(R4 \^_^HO\BNOdZ)^O$6AM7i"Yh>׌DM  CQ7,79'̔:b-:AFc4>aR ĶDED@5WȕV˯v/&#Y]h2\R-K Wyy$?ɟ锾KӐf#'Nfv#ϟ?WDziR-'-Τn1䘔·ݗnHӟѫS"&vKN^aTjcyuJ]PS3ʕ&xokXnZh`B<{B{D^ ZS]wwq:?g/3@I_˓2 >l{]NuAur3|-/_tQTru Xv%g,]oD 墆IaQeeP0(8(NoZւ3ɘޛJϖ3 ~Uo\x)Bk"wWl(Fs,u\d<_ؼwPjUkݢqvUz)hIZ4RkJo5WAѤ-L0Y5ƹ𩢯uH3g8ZJesR~=g(Ti''/ӧtHr-7&˝f[gPjN_\:[Vކ-ks3%~-+8FmVn)"1f#BwL<k\:\'/e~}(woɳi$0~fW@\s1i[Ft2F6z,dphq`n2hѨA:MWoa؂kzȮS`BGAn) D|6p~EP.,:Y i8?=bJ`hz'syid orcqҒkX~6Hzi:eӍ:ZD*h4/&JGpvLXDwk"NEu|Өo!i" Y@8+:?:9Hi6D VƉӲ u)H=BڡĖh&iyڼK7CRcbV L#mj M2.zbC3]&_O~{MDE6l{fIFQc缚Q'?ia]f qW9Fm33ȓhFJؤ $d At=׉t[RQ$( A]*Y*g왬#aZX T9ȯ~/S6F]vvvΝ2$=x߽upgΈ:O}~Ct-iVr#woݖ/e:{uFOPt t۳Wr(ɉ\_^+| H@v`io,xq,|(Iey}~Ƃ;wҭ`Gܹ';;;,.7c˯%C4&X e~TDXf48w-&,9 BFSI7#1j p*r=&:H,'`[YH.Kdu6f4hLnJrxD0>[Le8Y eW$k©R< )#60&}%(4``]ctàEaZ5xZuvDZEQ{LZ)@-fD&)4 CQ/V+e^j}82(!K<;-DAƿuN~DVSEh8jflHr7༂q0N^^9zϧDplжR`E14X|P7fZu.kP ="?(2J8aQ`Qq?j(jGșCCDS>2fAJ:5$Qlm2J>C87WRhAKt)P"#{Bojc(3\@ڮȲ\gT174pM5DMYƱ: ,qZ\պ\kyӦDa:u"Y0fjë ,+"PUJiU6#8fn[<Α}/Cn}7X.k$/ }\[mH! hwez]AC1tp]nΙTO93bkQY@$sh$83Q,Vq܆Jf{|0ytݙ8Y Dnp߻ ?jjd,M򵄍ZTӞ4)\'6T/Qzs%rQm=R΂5+{b$/$vd?'}wf#-&UjMp%m,"y*Svd6gZ$D^GTy :] 21ODGUc IDAT𡈈PSөnK"QK5J3+hMϏk[ d1{T+2&rs}5 ݑdʢH52ϕk nmh2u!Jw%:{y!  ,Y:Zx#nGf)0 3 K(PU5 Yԍd)1]}bmF c߆NWD4\x? 68x™YoiؓuӬu=NEiBpw &6v >/F m gޟOޭ;DEq-OOd@Ω̲=C 9:%/^1t4#%]uMT;V uCh2V{/>'m`@޹+6oNǍSY'+but_mޡ=VN /_k;F--"y Tjă({hHꖜD =tx"j*YJ^Tp ޒ) "{¥k^!٪7Mgu-p^#io#s-פ.XVl}Ī,j`s G]:=Y-FJYis"j-Y/'kt u$: ^&ﳱ=V=D ![>x@cm%D\.dU,9}P`ͤd`(mhE })i8КD.V؇ {Ѭhq OLNYkNz"֨L; !2+g-(I):7ΉW3j( QZoZ7df63#W8q( Lu~Hp{!yr%M|͎{[8\G7ekU 82 3j\b|%37XNCD5C.7V$w:9CJ!P@nQNAq_;sQn9)(:lϳ5ejSjDٯyGVqE19KL3sWNd%km;aO?Gkz\ZRfEW&S((7F58oP ཀྵ7_(ŧ0pLN|<\c5ZAS/8bdhLԎ3T<#RXR|d)+GKH=~/wTi@R\V[@>,Aj}=:}yT.4/g3ey\ ee 'nfهzF)kc'9J j&uaEgHbA]yC2?zψ֋sܒfIh ^72^3V$ZR:{IN1}o> -#޺&S=h4 j{qq!77Br: }:eS1 )%Pf4g/:y+!+i+KPkϗG8EWd4egPVL* 3:`~p@49) 84MM\}T 7,Wx dkc]Rr蜡8v>AmFNHÆ Q,xPDר &A8VI^(Aw )5O 'ϧ<"/"N0/B8F"s%yZi䡙{|@"h1.\ĵT 鮭x[4Z6ȃj(㚚bBUn lt M&)c-9R *[zWL+4NQuFiO8(pVrxx(g:؃N7=5z͛[ì9)XESC_3.i,1 DOhXNvO  r5؁~jG jhrsimTbLйIĮwsVݱXTGd&V79f]AൻeҬ XSAnGϩE|54͠kQٴ94jh`Jtf:wjaxk +'uc`컊NЄ4+7VHhH^`PYX9;;$Ӑ\|Nn~ӌZCMGa\4zdy*0moY/^j\gqv9tH@C7w:t; +xO aZfh}ZB BK o>v׹AP6GӪgnlX~gk"qf\~k^/߼B牂$tfEjͪKfQz+?c #)]u٨IJk rda hDgd40lZ|&&6ц+e> liTTϖ&"x~l̜6Zyb:?JX2jf  oרk c2Nj9ʐF.yn<#zSvv$~ ?(ڡÜLR_F&bZ !7ss Xl2OIC# WIb:C>Qd{Q9Li 5$E@7ʝ}N\nd<3*z+R,`*޻sG֛m+3EXVYPSCnk0>"r?~z Ϟ=b&э[Y[_':P4ݝ5Ak%\]_9ݽ6>/AݥM8:4h(siIgG2O?|?0AO>{ۻ\w!},h(/.Nv2cUjӏDFrp z//rY0ҩ7"?cN&c<@\.vWYȑ4 \x[r:#֚t]YlZW:KM2[.Mג-hK65CD$vv ޮC@{ѐBFc5jC+@^q>@u$p]B!!i޲" E dlbs_Y 26ߐ,Xؐ-5@k$ިR猵0U Koe< 1D#5pìV-4ú%f)zAuU>4#{hϛ4'ꍽ yѸtN}ocWIcT{dx;JܔK܄Jg YpvnM?CoFq1zE)aBƲȨPdR ϋ6\g^fuXq"ZtGPuj1S텂F%%ziPPgkᤷEednn:C&smȽ֕*^a G6O8j~ގՊ(Pف}nʁf#݊REZGֈ1&&avpćqGHbhV曥,{ln@8Xxeq*q7eWaģZhNώ얁kPB>{ZQR/fА;ΖJQ-9ECum͵ytrP0_>>7ʲE=FWע!,&WSb.xr^Pփm:X^"GYl)"x\Uj:u01>.ܣ5TE.5z#A%odڬ8B qoM,x| {ʀ90D2Hܠ eՔקor3ՠu8~JO@8Id616IC7W3M u EcGgoOݎLߠΫs1D'D!5(~#8Hulu3rBc r1JJM:ݮ B" e\kj}715KLcEX}6:6}a.)]R937*lPd$}PԊ^I&J*a]bLgԥ);w"]t reKy9)0hO>ޣnzht+ gD o4{5"R8Y((Aﻼb>*2Ds9e%+98jNDZ_f5͍MI%4$J4h!x4qT44a~ZS7ꆈ451[Jٕk.Vwp& <>5€՛%ٗ2B*tz]-r;JYc9L3ق0<ڀe8OlٜZZO~"WWM,0L4>3̗0L #6Հ"'XHC agYJIVC_9:dZ 9udK}4Z&#菸67B fǀ "> PD7-'9#R,ry3`|Ldg/?yہ i2F&ԕ"gn<Y.{3"O~ VSrKj8 y?+4|L~e0f1alSpM.wkh-O#h4>3o\NpR:1s#R_BjJ2]o\lDhf 2{;[a`[ݑla WM}$VRg__#Hc~턤J.DTt4@qݦuKFue sz!f(CW<7ATQڛxJ"r/ }Fd uOS4zP "eJij"i6p_@4QN$ȋ&Z2C#\2]D&K QkѴ HaXcFtcR2ub[ \IcsQ,It?MvT.YlZ !h٨́qT)G0p;ӧHYW <,ք::r{J|o.Xt~璆YѸq$l6ZdYBan7"U5%\RWvnsu^]ItnORޗG/'ox2hZ\3s}z[CIԨK(&cՈntčn4Y;!r{r#'ժl,Ch= <AQ6@:pLR54QAȊ:hsb2 IDATv8vhcY1h5Aq ciUlbJ'>ˎ:%QV k5Vg0r"#&B'4B/T9q;KFT5| g_Q `ZsQ t˴ 4u:mVչǟʫ/K&\7'oެK֐x&[[)2;G+yc0g^cLڭ;rCO^9=aAE ߔveFVb =܉{"XϞ~,f-'粹'gruu&WW嫧rvv,'ZTRRLĨ9_xs5@ qQ7&fݴX -; ZH}|)2C\"}6Tp=st>i TkHf+dEѫ@&k#34:A;29, =x$'o%f 5se rOj[A+9ܲ%5޺ln?4ݬQBaqq9` 'F(#dS@f[͎\\JY9k" -pЮB{W+`@sY0t[,i(aZ=՚p@n5IfR#(֏7T{r~ZIf]פOuR6Q{ WUMieabDG͠)"R􌅸sEaz BFA6k2 Uk:kfTF|_^~ 45sb)Z|E"O'bU9p-)-1, 6 G%3̨ӡH:2k3dP{\0hGc0?4TZ^LbsY#Ѹ]R72LiYUˁ!MkuPKY&禜P4VnyhwPy/aٞ 62ӫ#j8̌Q56,pqYQڲO10e&;Z];Mת8w2KPrACPjRLE苙Eђ;ӹ%dJgA ,60G'MFX: 3E3}ԬEi7T͸̤n.W9Q)Ah~$!w>V>z>:=BS,|4)ⳬ@@+xj{Wc[R/5F5LLSK+v x@vSrjbԌzh\G?dV|ȁ ,8DNOyLDWQ&t'˫/&ҟT7`"a6]5>@^>!]&KU;M$4H*0˗lʀHcB!RjXG Cdn %Ed86t*2 $Jڜ}_COcY֤ls=[2j!tە +?zPN..hzԥ(5.֨jk(@j.FS?\.06d Yt(A_S- 5Fb "CiS.WHk9xE&ޒ, YduH|nyΎ<{ԫž0Ȣ]?Xm@LίaF-*`P` $RW?xBNKŵtBBziSp9 TۻÁiXВj_k]S>셔nIJ%m}ɧlx5zQ k'`r^ qQLm( "Φ~8oXZaj:*X̹&xLj5P"gp-AGTaQˆ d}9{s$z#7M]H)y֐]>[)}%AOn ғ⣀_|N@827u=3.IHBr $XXmo+[kko0$"ɝ=]푟y͘wPl%Dx car_W]Zg3Fr:#AG;湲]\`G[QUj7fcdnrm1$!~nY͊,U$ ISQ²@}2ZkaE{ı U4dQ< F.{q% t% . 믻&6Z%5LVאcp(s-@\Ӟ;ɊoP‚( }s[r3]׳O{_QīcW4qŵ-!>eehw/X(U{< Ffm^aA5▕bw2~ɎͲ 圅vS^z8*`ϲ yVh[հP\/Ȏ0i)J0%Gd@xFo'<aw-rfw/6j?4(6U՗W%W+g?lەB\˿W[gkߗ/eӖVU5bYF fCGyQ&"m΃?_zx9}?AFDa QOԛlIlzjDt#m\#C(2axê?wL:7 j=t,f2[X]nN 6Ј@=6iHcf5~VC6HA]rQHBDAMYlv?kM'cnNUjU~\]zh\l"lpLV1uf#<{(s]x(~W6h<>LOoT<v-}؏M۷ov|Km6;/ܹ{$߼ý=ڕ"mL2rc?/d:x!A2X65 B.H{Fs&Stk@׋ψA hbx(   Wgh4}yvA4Z-`}gٗJ^ondQ㽵.V hj.@Ep_P.޿#KP@חl.?{fX56:IJ#-ދYAX!ƗxY,&4Il<`dו(9,CѺIWPfӥ`1هMOc-t$ɹLfKRj@ʠ hz;3;rٟh괤l#Zhzh$c؛-jo2Q& W+zKn |'v ('3M,4X ۷7#>k1 Zy$2ЬN!:ʱsu7Fo^Y8R .XdJ95DX`e <"s q:U8!rt IWURsennF1`A.#QRfZ4ˬQ̼t~Q΍v P2 XVt~8Jy4w5ˌjs}\Pp;{in _y6ȭ ( !|Ri^960SWQm tٍsfAa0a_&JKa6C7C keYh2::/-;;)6jU1ut_g@&"0)tda7PVQ3Й91z#r{P <:PSc(N&l&.,J45.=Ўq_ f2KΚL  {=j]]SfvMjpYv!:jA*ZI\ [[+YK:,p00S]f5âfF{pH&͘1Tj=pm& X/V˄r8Dу&%,UjI Hȸ}FLja3rt60&4UҭWQEKapfv{,DĊ\OdԷ<`L4W#t/C"=1֙ҟA˖\]d+0nFA[0fL4ΐz.GE>UH3NQ)oA2xh&9j!φ{H]|Ͷ  J%T,ljd~x߉U57:aݓCȽY`Do5֐dN[fXeCFf4mRS]C݊'pL|BZbG9Cޜa#ޙ54Vi$]3Qh$K|P:Fug9k\#vM2rE9c8[)u9vw=ڙiP\ФIEl?TvY4*-"{+^TPð5cP`z:&{E+6 *xn10vlBsr͢[/&A(֚[cnZnûl"6}C"zgѓ7--ܨL84as~Ga;}2Lܚΰ[b_rx+fvXAҲ@!!D'.CQc3gBQ1$\\\(7wYL\T"K&2AS2f%,Pfwr^Bk*JѲ)UiD ^Wh@^Sj6-:;=`(WWjX4ҵ0C+&51ouRt3 BW2w#<>נb?^k>x`giđisJeEfnFI0K+ohT +|gcI3DtXtBeL@PԬvG>SrfMн]g 2?" Fɘ^(T^>}!?x,;MY-?j.VKv[2Ll[4ڣf!1Q!ٔlEdps#,.Ȁ"94as S-2^_D+\@]- KꞕRGfh>^&ZPaޗR67_p׃;%ͧDӋ[9?;[N#L*6"!GOG,GR)(&ȓFCDpBm䂟bQE[TTFz)Pt.g%}V(%ȲD6y#_V7C"hpZmVlR)ݻd}z1޸WVt,,W-ж9r+9::f4fczxtONx]a1 ֐ 47 UeRj7;FWq 9"4'qDZ mn.YxO'T;hR- H{bx%<76ZLMcN)7OyRO[)5>X*ib J5F:`@`=)>x_.NJ%S l"vCĵ>b+n}Fzs~sMƦł~x0QTݞ7]̡e{dWQD9!R)pb߮׹ot:Re}f*7]0Wl_RVsI? rC,bPX/4m2sw} @k:q{z=>ɟϾb"mX[O'f*T$r8e#땒jg$"ѹFYk14~hQaq!}9ANp@g1[@v%##֔}5ts}QV;9MNjt]-3WzYyX1)I#( |d r$hg9ҥx(!CC23xqMGh[n56d)x.,3agZ#anjޓUK9j.gX(Bb?(85ihXn9*3C튜UG%J 64̻\φ΀Ĉr:ӪCJ$Xuw򑙟eʥ/rkb.XBوt(;`)\naq @ %80ڼc(*D@;#`鱋+\] ӌ ~.{At9c#y^\dс:S;3y  1VCL2kbӱ`bom1PIȠRXD>UJ(C=#sd)ifAMﴙC\â8y+[Go4ξ\\]lIRP:(*}>2嵺q$N]oA\gӧ,vE+xaҒaEKw37aE$ ˑ ogy!F&LD~ ?@96&#k}IS1*-CһP@c0P"_uxzu!ϏeZMlt,sL}C5- !ѽ}iH.d@+,b:gܹey tb@&XdQv%浊>#QVqEcIW!7Pl+Zؔ^W^yKt]M& ћѨcY蓦JDM[@z5%0oXHdgsGbǦ;s4!_ RSәR3BǙ/!uALSUs0B\ϱs+b.8G͹^'-q0jz"dy,Fst2XgPqmF`@IyPQ %99F*櫃hȴbiW\pH5cD=7AsgX,pSYg#PL,fS1ɔu3]_9j`]O CSZ%M+p(,-T?*Q^5k^DNnE0v DD>K v٥"N;ZV:h꽑3_ңsRFAho=8 (L\vmƼS#u 9%OщcsxH\qY[6?@maswK5nKʹfG_ahx◬ Ê{Wܛ2 -rE;:pt{{܆/6SڭC' @.Q [?`#lbwS+C>k[fL]fyZ]%*~ .?ej4I%$m>QȬH&?e}W_DqѬ^9 ֤#$ HzF[9H?7[{,!) ]PMzt>D_ ǂ\hd@ŨaMxzu3q?sO~*}ܕcĥt[7ݽ4΢8@!JC87Ǎt5böit[DwK$c̑>|` cs 6/ޥqs|41NG|a'_ ,g6y$5[oF%?MxLJG)xXtId>$OF&E&ѨNWmC 1HEHt%NXX~ѧIK;f V|X\{WOS~GkP95КDF˱8~!'ry}% ̤ 0F*pY.9z'ZC։ι4<(v@5Dl*ЅB $@=8`Ss Sxc>аa{.0Їx2VGHk±^nLz5yLt͆s \'5U߱tu$Bn_tT|"DÑl.p &<@FGuƐkК1 f6k6U -U-Ї!̈b"xίMp?;T}n*-c;,8V^_i>CsJ]dO5812]THʾhVYu .1TYsi*`[1EfIjd#oBg5݉C_ JY/ȨjnEm8JkY@Sy`̵!;ՆU91t;-2(HJ QК uFf9Glګ4NEcqЩX6ӕtGadDR\=2{fjPIKg8ͨm)PS*U4E`e;A15r8!5yfC:[#6tv2LFNof[l ݮskj7,3XtQtŽQnRnuvslcȯq5ectZ{MyaiP`7,z"0|&L$j}pg 3K \zmj^C^/6?8g5 65!,~b xT5q"J@kCjhlhͱkE"Yӹu!)"皋ۀ f2KrdҶ (%a([t]/n#(pb} sY/_0YJÁ<>uII"=~"|.dt5Prs{ dP{3:Ci6 fLs ¹MiUB+sU!WJMp>EJ>~%XM x93&EhE!`2&$Jt,VMt\^5VBSl7u!z^Ն|?r~y)iɯH6H?aZ˼ݳLӹLoe.%Cr{ | r>0j>Dn{V%J3=VP^e~r&ZC)ϦSEh $_)up(F 7ã<]S#dv69(ykyk\s}ȫOewSF7Cmu'?F/gW⹼<#W!PsHZ=ႮlY`KhںMtkN0Rˡd|T+Kj1]qHzRճ,cͤi *U.4C?hK~_\ǏM t%汅WB>NOθp Lļ*6:>5"ceL.I4J0MVW'2=Zl"\hr&=6h*T#ZFF%DFI (|f`XWн9nHpb+I蚇7ܧQl֊ zo%9TiCXw!{4W˴R ^ ܾ> X)E6g5S A~*]] 6DMACUG4T!tb.8^7xS3rf5R۴QVEWe'0O<47qgNmaLY4M ݘț1uGX~˃JintY PrRѝ7(W?s e>AiXLA9\h.-O֥/: M͹5,AAln:&ۀ96߃|W0 5o^%?eDL|n;KaP n0quFCc;gd<qHP C/W~@ Ӧ,+tZ4VKrwYjxYdb'+:9! 8N{#'#0G;kF#?~`W_t|+J(r/N%Oi]^H=T Ss"|ps^Gta"6Q"V@l>?͐0?|y0ɂz{ zgflJ֐E)7A κ9;ѭd@pØ'ERjyuMN93AtvlYk6HzmTBxd8?VA.P][ui"!@РL27!Ҩ"\]l.k":A Y馇Is?4Uj\w7dx=&Re)5VVIx@֗^'ޚ|,2Oe27I}[Kє".QZnY-jgL}w (kͮnI&G{^Шkml*3 VL!qBmF#z E'o|t8+FH)ڵ, j ᙼz\)j"QSkQsGw?/e1G1עp%wӳ9;;ms ?ׯdggKs<薧gDWԤ8yt=67V&[ah()c~BbpECptr3sl2C3ul -5V&ZsSfB@5:t[k,=c =G#-;>_/riSjo| VTiMTTV=d@DI]Y2[riTR̞MT %ap 5,٬qDDCJQ8Ŵ<T& 1l956pߎ5$Rwh]Gyj¯ő9~WQi~kD56dJ-dLd{cT(N.^m5AКq -I^_Ҽ :p쁸1=[Enuq6:bN5X-?Wޣ\+uM°jȤP3]AC5;̮p/JԐ{r3r ]TMhA~"ҲfSdأQhL\VёyiQ革x/5ӆ&\X΀J?BSYYh#MaǡCAe8op xV7g0}2w]tmmZ^*[2 7+JˍQ]C4^JѢ[>՟Oߑ9 0QA>Zݤ [EC$2"v"w \FcO N0"7 @`b]j1]BR58놁3G TY5_ dkw]cZKdvil&} үJA:eʾhI荳nUuL&3jo_';u剦C`:ٯ}+U*7h nTD-,P|ǃL{1[ EbnZe{"+`aa j)_?qѝA=}KR~GҎCy׸dۋ ;VҬIyQ_tsYo1>cCli&G?f3#Zir6xz [ۛ oA^,$_-ZUtUΕnIj44 QkLԃL圦6VJDc/nD1wZ0MDP]^^HRV$i&nGFО3AQ`G5#"59t')ݜRٌfJ,p@"HPm$6A63ӹn12#RYXq׃TнveXI޲(SRT5=^o]zk,lܻwFP/߼AnDʡ\&έ?z9X|) 2h@G:gPޖ~-{1.зAS"d%SR7aU4!oyxp@D7D>l`R3]ӧZvwvY-RYmSiLLȸ*QlMJ)߼%L٨Ɖ4^4mÏ IDAT=h]gu}vk]&8v$#6*VrsZV u{{f 3$3誤qSZM WSI&Wq[:dt2h { Qp nF԰d2ƼjƐD0h!fUh0lK09F!Ւ\q>J8yH\] @uUB9dB;hr&e']w7g."]gO, ;~>؃HC$U{C/W ŁvEa443s!.ΖܹP^?;):#i#LkNꑑ¤)jӚYN)MJBM딋3|jP#e9 RDp4stGCL }d< fE'Sy}u!ky Cf16J:Rrͦ297H";d1[ܔdNt3`]mir5W^\^]˗/_o}!Ǘ}On{J^A fܻܽlmɝ~|՗ n7aYłE]ِxׁΞA9EG_ȈP`dkkQ2`21׋c,Hu@pvyH&o(]LoVe ղGg>5*Kj$!BfiTJԐ 0X35K4dL&$Ǎlܹ'S%F,vgD-["4ъة%3,Ϝ{WJrl+I56 3'(YJ&|7LÁtQ_zxx$ݾYb22v(`ػ}׽ Ja Hfwnݖ=uF#ip&ᕬnx=|-L*.e"X҉%dÝ\H6[Xn(DiQbTGt5hiV  L#zrG*UG9['֔M8;C"W2dHWIG9&Ԁ$L~Hjtyn:ף+4OOy4 F~) g2[&FQ\]Iq> 8onlpA] w>UN⦴w8u9H)<3 {2 dcHx +{q-zgv:e̸>ѩ=WcCWjug-?wwwO('2ڸw_mb>dc;?mK6YT6רR@H,(»YM]x'Ԁare\ľU4!G8&Ran E9 1i^cLp` NkѼNtŚ4M^gW~~Mh poQ9Em p `ll^Ev(e6dޏw]ϐ%ׅKsRae9ŖuDU=Jjܳl.b>] ήuL20)^P6giKֽT,| ~;e0co3cyE:@&i K0mQr Z?.ͥIʅu3c%EgCפGIkK!Vaڥ\d%fTm]u?GWV2pD| ~L%׾oOÁd`֣Lb<-ڂ#~6%|^/ո3X;]߷r=9=ۘ Ra8.|f6"->۸A"aMH:Q$wUF޹GZ||23q9?ً2D yYpPc dyPwdUzjPsLB66YT@X\=q$I%~QhśayLk}U%0AQJ\1z}y&W-˛#I腹@xޗ}d>ZߤT 6m1 ss).4c&avȜX:0s1C,(`y9MZ*qb XXрGSYnwe1Kޑ;R\ldY=JXzDz)I_]OB蜳\>,0beLEյ55g4|!.\EQݻ"XCjK5HRt&J̙u_w攽e? ^ NN\ $HW?'Gdo6ryy{㯞IgyYxyL'7r)qn!뫞$:"X4`]OOd{{K?yLW^nlbVfk`tye,lK\m0/L;d62ږ6ek{"e1lx& % ,&RM46|y>[> f ]0B5@X0ӈSYG2ayxJŔe/^iltuuDNQ*nZF}ջ^\( $("kZdtgcXtRVÚ]Xp. o ryѵQAɽo}W>J>pqQ[7J%/1 "}C]Tًi)G81&/ œ8#Va^_8}f1nklN^IAf5l䭑1'`߼yW,i dH34!יz 䶦Ri+}8cs̤sFФR5>-"K Ae(daTZZ$ Ѓyf}Adܛ\p(0ұ7c3#=5Xo@2z@aTdE4qd]킑V4\0y>I\iq uӌqs.*L3g0`nV+2rؠp;ᡋbl1j-q4yb=d󝵤*.]) -<$*Y0YXf-}E5qչS2bβ06 .||/?Ӌ35I6ZA!g53MB^I5`@6˲!-Tyst(od1ﳈ~;w^ d2{weޡܥwWWuE0 VT^D}JjL=Rٗ#$BIrq~(GdKB\ͭMoK@{Bz,ڕ*&ڑ-6"F#q;wJҗgO>zL߾tB! θsĔ6X<#ȅ+d@VwMj8g1果GMq]{~_\kKgILF5dд,fR1_볫#FuAPpxI@,LRdԺ&xoPE;=2=r _r)l] |T̍VMf.[d41OP\KW~V^Q`t2Fq t蚹(o#*h {RՊ܌Mj5w8D qn+,ܱi`rM/ہ| ? 9( I6ґ(da:;9^dLN?0s* <]@;VCZy,=L0땪)F"Xn=Oywٹ5.mu4Bw>gS-4~ѱ8nc]tJO@߾e13eyDE86ric E!+4 rWBc(4A䅸@'>$%#r0&:Xj9XOy`6%+]*0騆xs܎J͛({1`¢hS>ru"v%yPE6EP dd>(Ld:c%rsAKb9M{ԃJqΤy&_sz[{̼~܈I*l.MSqciUA(gFm'q3 (Qp#Ǒ3>jǂ͋\0W+J{֕ }3z]X\Vm8'+r9E*eYZ_፴M,,2Gڡe,(.Q@T}6;zaF|99ԀZ]~ʗF0"O\K,l?a3K^{_1񕋊ybYjDDF?;wuJXZx6gY"KrtÅ~'Wrtq.C< X$:6l!-)Ӈpې=2`Iܤ_\eO$n*D'ra$7/(LZŊvJdF8?B~QDzŎ@>%=lɱ>x(_>y"yd8dtNL%F{w9Xn%U#ugޤ{?۲!we3 %Y][o^Z^y)g'ˋnox"^18^M IDATj-\#itD*UYZ;yԕ*Qg%N: 2UZmIA30?ͧCI ˊ(˝yMiBa v { |.6E̱(z-&{FwhC:SNVW}`v\/ךtmTbsh\ax:Fep~BmAEpĵl'˳N5FhН5K,Պƿ@W)l`~`nm䝞i^"3\k3AC ff>~ `,[HO$X Ǚag - 8Xz-?My54 2f3o5Ttl>|nՆ F|Neέ]mPOW7. έ-A43KeX o2%ZtfoHZůYXXUF6܋.F6KgV*GQ0̻ cc$:+3x R ie_А#R ({ , 6VYwysSg1IGD.E\dsԗe0{TrƽZZxiYrF"W9rWk瞜_^, `hFq.>}"ŔLnJ1G1c18p~gd$'g<zwY.Yc\K߻G.\\^>L{MiTZdpg [e"_>y*o?X! 43I4+:7m)[*h ̘0O {=~eD0}vqbL]d }aӹx}s]> >aKa>Шjuõ4@C6JÙSRktB03L (b#"(FkI5f3 錳`m޻ТsRDa1*'|! ؓTN͘Zur+TpٚG өs/xr4mt `zZx='g !^jd EmYT*uus6B:?9p(ݺ)'oJ d*CuέpUPWoG8b4 @tRdx3trE!G7\8?fs5Sӹ& N4j-Ѱ QU! PHP9g3( ksp?ZPF-ߝ][|.Ib=@tf m8[V7m+2w̝2WdC,_ɼĔ8l2 /$@#8 2\ K_T y'`~:NȒ27J!,X>S0)r׭EUd28tomM_v=|[vrحln\ygr`}ds7jժV$.5]x,1 R®. "$fs!s<,5(DQ\#1T V@D)3iݻ<ISqD*_Iﰦp~. Aٜ:e90|`rw]sJw?#rWE Jbml)zPpzMgcyܻWNOϙ<r͍ ~9XV@ :rUwo=Sset2T5!\"ʂQ6 0õ&x8 d6\eaġ%u`VQ[yX[i0ïuW$~eӐ8x'ӑu#2dx_014Xh$WstaS(p2d t2[H&8*iy>ʜr_--0?U)1 r?:邋 'i*0CxV@ 2+)aEv [#ͭ&9k7+5̨p1 %)fNIJ:׍85J8c2/Ea4e}k_DzOdtNPס)Ǩ訋X9pMQ?|X4{C6ME''hj^;?x5užD9}6K C p 2YUuh Ipz`6œ_0"`dFc%ccj8,gr?q(d d)ⴘL牔yJ0ҏ(T&vwZ qCurQR[(muvC/c?ԱyoAX_g4@ΰj5Q5:End 3 *%bҿ<~ Ӡ. 628s+^>Rb3?\b}"E]ӐZMu^_̦v eo,M b.8oK.lLA\`"-)qu҄R! zPkMyuqأ ]ռա R&\˝j,Z^05hΧA 8VgytټxV0}lks#*1W]8dsš%u FK10'Fٕ)ڝecT4r*]갿TN5@2V!/Y^ sNVw\*G\KΖ.vC*1"KYou`{GXjU~.Ȋe,T L t=Fwmǟ|"kK˔)X80!Z\˥]WȦ1Xm[JgFS$`X|6n|"k+]Xq6<\[<$1=F>Y,(Vuxs󫱌̘Gugrb8q',2hvYQ`,cµl Ŝ)^XWˏ:ϓs!'e.d4`{AdE*fR ?eut|܉ɑI*a3!3XY0HaT678`doݾ͙փ{!mDϔ+n5),2΁o}L)oەEk7_??#8@(r4:ܽϘdJI<(ms@9].ᕌG=JU{x_ʆ]C ҭ'"x`bfwwPz"| :^^2}9ťE *X[i+&xtt*{(kڮ,P]Vm٫uqy7p@XD JmݞU쐡| pqOfkiv[V6Մ ,qUf=&;'ڑZ%F#Օe`fJ5"0Ӿ,y:z}.*r|r%;6זOYu٫ȰeLuF>U̩ܿw@035y`F W49Ay͝2!:y13PD})ECiJMEYAb/&ډdcF8_7Ҭ'*gJc* gE_zc* t `g:9-U΋pԇŵT-Y^ݔJ.uMINt[H| |`A{&< |q4ƳLs!nIJR 7d2|pU߾YЪ'bܹi`wJEMm7QXUf&jGYf̘i]e>^ .H{5d~.sd:9w?H#3˝5y`JllN(mTbẍgWk7bQS p1wiŞ@O[iS_)&ӈ$~M[ujEA 9 jiQ^?%9Qؒ4#B.PɹJR|;8`n)rRu&5ϴμ.QvDXMHyưÉmDT ltMF]-$R\p3 c,sJDܽ-. `N\{# W.*\gTn~>;WN 8SEj_)܆0J\N|szx'2pݢtup?5Q"Wr6y*ۧd2ӗRoGH8bd,LrN'{?<\;ɀD]lT%qٓbW*_3``wtzi|GןZO֙1y{2Ldms2R|ͧr-s`]$_smjz*Ks=H35#[N oȦ@yS,u76 K⥖ z 8oɌA2WF%wWsuy䑜J$wtcd)Q*e0޻P6slGH!K*UJ'łv٩TY4YRU\&L#7l "Y2qTjIDO9a]^U+f]!_pYG-wF6L D6GlEN[J(-?<^DCb:<h]ߖS$)-gQŮ}DGg{4Ҝrm(>ńv4rn7K Yar^&&n`kh.VӘ/KgtHt ͑J"I33<\qUVgw%w0JQjR:G<ͅ\æ# A.%'dbk;JŎi`Y֫zzSfT4MʯɊ"@?t7hBF#O1O1JfDthQ_Z/%d"?}kWn7m%ejR./_!X)a ʓc{ȩSat2` -ٕ'o^TqQe#k̹JgYO/ݽ]r8d*S̿NKrpZӹ'duuFIcdMt f4OZFs;ui*nT;ߗ_űmSJ83PZ%[wQ!tp5-<⌬k5Va<2/N+ق2CalF<ёLxɏx9hlLCmd"nG~$Kɛ7oOEpbBxXk+rzzF'}xL?X\CW"R\x` 3RZMqՕN-^_WыsF@ @9`ͰP|Z~ 4)wBYw8+ Ry2*dT Dqߦ }"!61˩ƥ:hׁLo^lҗ& `J#ݮSȜR_:dR9%`lo,љx6pKY}s<UlmtoudʢV}'ry9f]w:kSE;Z:]g9s9$ƨ] IDATy{gfHcؔrHm9>l+n']Lp&8g /XMnFgt۪w})\49Ov1~V忹ŵll,@N}s :"sic#9һ \;lĚvl2| 7M^mP~=d4Ӎ4lrmŌx~b96f|MyK!C`Sh#c=w>Ox JEc (2XC1P}%Hg&5`)7I>`KPH XzQ V'Ga/ NN<a&FQ{QIfkX9+a`+83D^eHMl 2_;ԃ-*XF+V8vaC$֎5JFH>~S0*bs-l ߽Ktλgb [gErݔ2q_LWjFC~=z%*b̹{Ό QNA6^ux*rS;͖B\4s)Y"~6xhqC\x^]`P4Gr.+EfA^0&Yv,\kD|9ZԜ$eQbs}K8JLj "y s|mDrz{0WANQ0 (0 U&{gcBJTI>1$vf[R "bGW2`su ҨQ;ϱ7qKYn`b[( xA*9Ss XS-!`r5 FOr2,\\\՘ T!{N&YFtdJIcU"ǟ~ 3y򅜝啼:<:C,u嫗VM^<{:0+utr?R.έiDlllJ0sy˳#9|VPVq)ew\:KjfbLt,ͥ|1 >/>{t;lbaKeƵ:R 3p6Py5̗u6-N'd0\jeksG}֑#+zuq!V+$?ǟ0/wѣGx@i*U Q'Nnl39YK֖h1lx$%MŁR݁f+ Se.K&I+P&gH1<յvm *` 5|H4e0=Y>0;թ:&cΐY_Wj j,"LD%gdVT>\1ɮ|p9!bu2u܆+,e HGG̬DΥh:b̧*1\l&FU:*k 34[n |Jf_r͂%1`#g P虲h4"sVWfmKrmsks?cQaGC2d'ws ?ih9GE>aЅ!L"tYc`>ϊɠ` fPX;g!Afis5IT,:i_?2S) 3^*̅Ec $z'W~LWX^-! XL0we1JԘ;spש@lWȨ"!=dަTQDỳĻq6 |. H+e21 H]iH)RemB}zq 6 -#v06m|o|!6V/]J0Fy+FHF)e3\$˛tWdxcũfL31̥n7da 6wsg[ [fb6`@z4T*py<ػ-5RM^6<UiPYsO.{r}}y͍mLFrzzBd S`T`?T^nё:i|=@l6K{?m/r>LZj:d1Kk>`Tn0ψZ4to9՚'|L^huʝ*&y.>p… ϕ5PrtB8Vg[;BhBCխ;L/>1G]QȸL] wﮜ.;r/uD~1VFsjMRۯٯ3L"YX,eAJ׽);6 cEt.h`͢krI]O9vW.`G4xy9МqX) @5^#ܙm{)%P7$lbc!pj5:Wu8!'* "_@>:Gt}}"1?x`dѸ7u׵@Ç55TWVe8qM,rߢ3:@9aO4m0a3 M[8`s-+dݐ _WMY9R&% {2.f 6KY#W0.7eh%\r 2T j߬ ^b}5gϢJ+93 M̃Eȹcc}&9T}_bUi5dAB#@k˟Z3Gh)[VƩ77nZeFcԁV#7I[МXn& ̺΄z^!${=SymIݕO_p/^ݏ?Ϟʍdjads-UqV88cBIZ8ȋHVm|?#y,Zhw012@CugRL-f`ڼmb38G*r9!h]!HMPNg{Xmss̭(%DοƂ \/m΢(hqBNo"Wr8SWa6xY 5~5r4lfwwr.wޕǐuM*l@ Ӯ H} ߐ$\]Ql":"RwoҊ|xgt`:AmwZa<Չ\+c*,jvvj3usgG =~.u_ɷW,/-h_k鴚t s''_7or+~-6hXPqDx4;cW]جx5޻˽B")b꼻LN"2WHPȸN3N|msox<يJWf[ = j h$G&O}Yo /覼pm荥P!>:w`FҌֽ8㤘ƵČ2x{6gŘ-'BM m]lt2p+29;Y;WRXQf$[7dP@רey{\gĻjuibF"ܑ y-̀]lSl&M/-Օ V:UmD;k04pWUYD 5SPͪ+DwPA\g6eꟲni<6bf4Lj(9iTRKjB?ˌ|{,KSo D~G??򗲲N m}cCd V" 2Ke(E*/^o}1 ί$U?t9v%&׶ƱeՑ?7goL0դ? iH֖Qh.ea`5wQұr :Ng`&,ħԪ-:keL!j QݿC`:F.aDzSZAY2*η? jN%!o Li1o_b-=yX5YO?μVk}J#sE 00Y[䫯ج:_Y]% J$һX \_TIgy _Z6RywE쓨H"y udhXƳTy}RRD2VfQM>P*5M'&T`J]:D̹AH!,"yn ŠԘ Ft;m9=;{s<͔ŬT\0X]]ӈZB@ yOH5fN'i3<kA3*s.dDiRTc!|a%2SVcfbvU5ΚW('3Y*T51riB3uG؀Kz =3҃zIs@++Ϟ$iƈ,bY]ےZ+''ܡJ4ڈH+;[H7%;rr VYˢ,X_z{+Ľa٬`$GQsNdfT阖"yr)<#ЬPԊA\И xpai-(IfLcne:1*X 3ҁ_3\c7 6>j^ˬ9alV6{?E&^1S><ǬSC#*(oKN쾄;K =wA2ˈENUxf3^51k)D*yȅ<m36GTV+B6G}Il<J}Q8Lj'*0&g,HAZJ UÜkiUU=ii)YĤ`G1F 7^ne3  q_\`9XZiyY2c@w. Y?xpp IVsu(%#>V)GyǏ$gcnf>,q2@1:jwUnW)|,WRK]dF+d;pdg}Cj $sD@SLf>Yf09͛Biߟ9I*|@|h̕b$dI.Yq uPX{IW:UgEc 6.,!E<XE36gY}1V;H޻{8|& Fū`^G r2 X\nŝZ.{[r{W.Q&fx沵)?',#HUyxQҜh7i3˗Od4ZX!~$+-st5Fggsكo>c`mj\4@~ cm7\Ny,Ms#RVWfvq TH&Re4R2 ëVI9"bTk4#WebG*gGl ac4PU/M l5SP!͇$M8*B@ӻ<,`+gIR_뛹 3(B|>fv ޜJ9L\*lEz f.VLèDW3;|r1XT7`Yo$7r3l' )ke(1\(1eLJgq42h$FuƎ%>'2"vIƹnNخ\%i{rzux&Qx3JfklT,hTsC0Flx5ij@?iLMѰJ|o IDATo VXpf;'''/yrV$LhVo+a8߫g&ABŐ05,'ϸ 1&0PL|ܳ=6ŕ zV^?[l2R';UeUxl@INbH8"ޔIG|S䙼r -E|̞A(>BNorkV^Y5ΰt_AswF ơG6kJRmYC*fyIs9g;ǵ=a!ac.f~PRa,t VԬ~tA}KrCuX0*}Tjy#8_CoLl{N0l̕|CS`kWۊm)StyXW -)]܂%Զ > 5tl{:/ɒ=Y\`.J vs<\oyfߙUdN&zsHŽfnS0*cw_ӟjJQ>9FWꔲI,%PnpR+BޫIˀ7uMN85qKrWל:c _3sIB"Y[P7! \t .t0)7DBlqag9cE AT27@L2i.w<(&0PోPA6;<4p흌+0L|Xa- \ KISΎLm6L$2P>:-_kh⇜`㉌SgWG[8X c*]dr>Sl<% FKsȴQ1J5RILiʋ3J[#dQ!vl,g|,nI8\fv V`o_:e~0ڻekgsڐEd0N4WU8bNlK:e=-#1:uVeht`H#'qAnV4.Iq3fhtTf|Z]BwNpF%*;F8szwMsۻ;8l?ex=5$˥LsHp7ˠʳ728%nnNz0&Yդ>PwxN/ƺEZa/{_2yʁY_~)@`xVLN8fQDbgDqX~3qtE:+bj|pw'ZIag)V$ ?j2b $xvd\}|suf2RٴLS+ 7 cFc<Ô>(Cp}C@R(< Ow$f2OJI{3v MsmsS$Zs96{kӔ#@;V*.V\m;C>T˖j( x3a1 &x|zS7n-Sy~k%ќl:tKn `ê k~~6iGZnFg[T|Tf<Ћ@73B8*x Ȭzn)Kx٦Y\6#$QV5B5WVs]̎7d6 eK,HM4^GTuyiCcfY1NNl"eʧW7uonO/e%#Rqy|vk(\.|麳}F,wJ&ZAՓ9ܹNOf2oT^_\iv6:]l:uݿkES$wJκgT|)gEFVZkm4=\\2#s|UAu=u˧'xݏTY_ݻ.hDHn8xz{`W FZ+FX= 7%)ږ8,uW_U~%?z,湠|蔗ت`csKgOQo6XR`ps@s#`.d)cE6]>ǷNp{xiyMy]i~4U|zPӍr>O.Wk<|"[r72s9+0"Q.C&G{: XZ(j* z(s.ٲ/cF ͈B X&h l.ƹ(+¤ZZL]s?2}FU5700flÁ]pvIB<Y:j .F7'ǕdgnLs{ʮ;Zf|:Zfz9_/}9,q Gcwkݝ w%n63+!ȥ2ᓏ1gTqr"Dz$؊آ͂d;   _nWE{xËdk\^{z. #a@;d xx04I]j˛9Z/MYrn׃!I5K5fP Wf'&t Wה;w9J`]#SE^gb^ЌRBlibTJi E@sqչsyU~d[oE/rUS0ꪟb2&&r/["n<މ%ߒ) Vw͍&eYif30m7e NWLe>؍{)fEodQ=Nc g=r$1G2# mZϓ:ĊjAІI\3p9QPb%ϊOYDžK̼Z$?KC'!6ľzjJTz6~g+>*p {KQک UTiO0̱RΈgǚkVkh%Uٹ@ 6ǹmfW*0x>x'ggNvح7ɇ+Eb(l+" ]iuTM`6k=﫮¢ugLY0qfYlV6i޳$.aL,rEMicԿF7HKc,ֆj[؏,*,9L_?y''X&da !ȂNlΦ$ AA䮁rLm)qfsf5,4kٞzJYndjR'7'ӫc9OG*:%Chg:Y ȄGE/7ggX9>K\_Ϗ%wP,>2JɘI 71'7t矠 ʦ7Ru) Ζ3.̈́hR`0ϞWZgg%'{vH;iF9L\L_.7vİ;977oLJǁMdžonoc4լ4F>S,xbcεTFRUbͤ͜MZ̢(ui=d8FJ52ZgD19F)F)bO^|GH)3> e^c7spA<&b  \jMAK@6(MV.7.m7$ˮT%^z .ΎO$mm1O՜+2l-s!^}:%Vh< `l^aJȉ7ɝ<) `f<&knFVL&ZL( cy #L!5˽lٹn9 w`[~}lo0UV cP 9kWd&!o`$#U[zY8%Vz3^y.$T 9t;A #yy["L~[c+Qo݀S\XoͩUYq)Ygʻ,"35@V2V8ܫ7eX\z.,u9ڏ.R,g̝oh(kv/+1j* a,o}$$Q^-9YZ@ (An MItWiy Tֱ` b^b Z׺LgRqh3ɣ̶#X.HbꏑS2VЩ71ۗYp|!yvKF:"Csm];Yfdf)"]y-"n^! ?XaW.mRJ*マϞbks`mf+׳NV̝R ,mF2[jr2͎$K,xpi)FZAKM4;[4 XkYKW6 F5kE RJMŤPHɷ"gT(Xɭ3$|&3TaۼpQΫ 'HPT jiNeI18ժ)\Uܟn2N[sgllno)iP/c<[?-2ξDod6Ѽ+pizhvչ5!]}/?dIXVd8X#>HbM*F%mpFk 7jB͚b11's8Nv/!z뛸/5xgyᰏz 7sK$e( ʂ(t"`i=!qI) mZ]Vf[Ƕ 7|!kӐ'CUCUGЁL;8KsJ(sZs1ꕥp1Nq|~>Hc ikWs:jl "5EիUrкds7G7hĊ;GG8;3:d$*M* ڴGd ͺ]-*',( Mhg*wB=Z$%_g6[J&px}^C <xmFJZAўй{KŚ&`15{X,>>B_dU#McZ::&t'`WW`0uzSuz-^OSlDr6՜6#6׹+Y\Egcz JX,+3ΕFIW/e,%@{c@*FJ4-gxs,;K"% yRE3!6#޲( 2ZSH9'Sqr*x˽wyU89^bZ0LiolJ) Af-f{lVsfΐX#'2߫`hɒ+MKTD{fQ$g+>n/WrI5V^2Zi6s\n7Ь|<0q#jSK._~!C } "&A7CƷ,yO3z-r~F\bN!s_Er1D'w@/pZU _]Ӛ 7v ;tsjSM7NQ~Zucdk %l4*99תbtS gf:3c(V#@g/Q:_(jUVOF_kb̻ɉSboHFidMH I ݻT 8dFf2*K{U%qh*ϴ+jRgk cY&3ӀgKpa^6߯g)Y)cWp!|x6w\w%#ϱF6*V%A2HvcUD]W@``O-^Z^N~C_`R8p𥄏& VK,tK3m}l߲`n'eTfqy(~Z-!C8'rռ3k5kܮPr` \عy\gT~2Ous|yo^<3F9Rj <>^FnSk2&[y=ib{k[DmR^jEɵZ Gp]ÃsV[C|N)%+MH9 92Ld< LI88>~ '[t#a\{;8s_/_+_/^ىb^}S<|HYӳSlV h9CE<:n[* LkrዅMjSE*C$n#O1=LeN9&O`;OXdK:xc Fd3F8y(rRB03( @'JFcS9Пg,jS:rz]"i?Sq8Q{PYWK,{5WbN\\MrmCl@Hwmlt+o\v~:2V%쀅kxnk&](Jď;1NE^Ω"V{Lp+^㊳s+XM"w@px)o7#3n΍CWnEk$QU'6 jE_=f)>ZLkR&mkصkfoKM2+FMR Z@wYe~+',"HzJo%H yFP /Al,;6?#͢a\_?Vn\x8=~I?|5J*'W(f ,}{>;]^gj2$M>(l/3Dyϕ4:XمbQefdbV"Cqx>Fd|s/{Zk7Qhi6C9MT=l蒓$beqZA?t.trL)7 k l6C4*K{usE(5 C|[Y!ZEy^+!':nfc\ rmpVb4w=Ah۸l]jֻr&LGYJ-bg@cN ׷7Η*\t ɬ.>L?k4>$דwH;{R`F$4.%zbTFO.pqDk\˔*s]>~Hq87,e LxC ELѠ@skKt &h*gla4g ):[$ln٬s}0 'zl1bb2+BH˅Ct&rBy/\)%3fl_OĚɫl'#͂7qIH:fS,(>'&-Wg94fN t:X,b$|9:aN1 98Uo2?)gy"ܢ& 8KGO ʹejt$3BgmEۋ:/{ȗ ͐ɥZe]kQi'0FFS)U8՚KT/Z:rfǔwb,)ϔͥf9k56c ?[0v 㑮bx}9],1h֌fU2ѫ4p!N^=E DNC$Xb:qXQ OQrF-6Wz!H|c[W0#=IE caW&v{5m-N1e.6rb3{ߣ]3(l$z˦ |/800X0H4.HobTE09ڼ7h'a rҚ>9̯*H+ͲfTnqdQ硩bKKw:w[~xrD$yC.Sxg9@ .3BENx6rͣܙsiؙQu73/oRlk®vRNViUQ|h U0u(f l{Ҭ{=͞ߟ+n&mIT2ؖ.˔]Úc^2gW3JJGS|$1+R;+2diI`s,sIrQDc;,㇏U@ԘUX2ڵZRo[?ޜ LW*xp.%ETf|lyX\ v/'Q2ßMP5\qqsz3dIEHءޒ6+b9{2KM)TI ffќ (tM#Q~n'C#&smlXĢ5ּMuY0ҝz1D){ÃCܻ{O=t;[ƽ;b|<};bnœyD`w3gLXEiFVw8t>QQ\wѫӯ$=8F-uo}F;[ vvuoBp<5"y  ;D~ћ[z=j=z*7 2D,y6qyq>qׯ^FnGw7OexL ;;|hFnٳs&K0xS&w;^kx+*+6;\_o(S{GLsfA002oh}9GO,5,*q6py*żfFEle{+.z%{Sd z=ylɀ FqU6ƓkyTDU'fHd2,$xcc>MiVZ٧lnlBs婚4"uLW5;fX8x'+ݤ9йXT\GWE"Mͤi>uڒ -|CȢz\A`[:Cp&k_Q@:"UtC;?sZZmrASיLP2E~weJ@G;}"g؎b6ɢKmpj삷nU8:/k2YnoFҢd^/%_$fùDj o Ngt3X c:z_3tI f6x^0p/rYv X2$ǞM;JBcr[ꎕ͗iptTs'4ZNuoou/Ӆd/.ߜ+" F7}hr=}>}1GxtĪpv6;`בo\{CRQb™2`pv7Aݣ;^_hf`sM' s[,krL/"t-wAWbykY[tlĉ{K^FNo ꕆ*%,wt q~v.PMpwlD2rv dI˼q H_} nCI5)8N "Ofω&k(7p}uf" ņbw\C9Jb&֙luђ/g4'bg-bF &3I*,Ǵ"vsϜc::/Y,on;c53{1]4n缷ի$آR_>iE.GX汶<pgĜE^*%\FcQAgWhF2sxKE$9G*>:l吋mT]?pYk}&P5U}_aF<=|yoh|b=G 'kIs)i5}'!O7&(g |y|ȿF ,,nHX<ƽOUkjQʮd{;!c̱t:趏p~c)t sTO\' ̓'XKs| bǒiscd0(=™YM# 6d^9Pd>UHs05NBgdîxFh{` pf^}T92\#3.|φ[[oXĊ#гm-YΠefCj_N+gkf{]|..J]cnhԽ7805Vj3+ȡui3eMz8$/Br#grG8N|O`ˈ]#c3 RjxSΪYRSfKJgYb,w2.zbg_+X6WI>SjJ/U*|FD82q_? xu~W'G6Yg8Ƃ4 zʀR 'os޸(9?|eARvB}%s+X=QOF6_ʍzS.Сu< f!>xoO`GO4q_j9vvpCSw0Z1S~?kλ2[]?,ٜ˹,B@ j͖Ao^r+?|VKni&iF4wSP1Ypw֔,PB˅s. |{8Dj.}uׁEfn*3ȽM1\0'8TJ"+ijZ Z&b }𺟧NV枕JvW= ص"khx~&몢T7#SCD`2w2Ytdq2?o+f̦;qvַnraǯ1tg} ݹr3]d q9c8qv~=._MuV{h`<p7T00ג'jQdQa'h>3Wx<ik͐+kkHI/!ù_pyu!d.1O 8;?w9y6_=Fk z(Zp0Pi|Nۊa9N!VсѪb$CKKhp,%holiћN٬$b9:n^iq42PJ54N~9f- _(L3 v20-z+ j"mXxIXJ|߭c0ZRW ~l4˚pnYxa8z<Z-$<~Yk禚c|\Sf39Mpg"Vq…S,&ⵘϕa5f 5fy;%ɍZ"@y9 כULε`!Mjrd@Q*L7k 'w8C26Ssz88WAfܿyfpO,,?jRqtx){edR\u2޻3krz_pk ͍֔Gk7x(+Y(ȫ<ߜSTF3aAlGVK]+kecmMsOB IDATI['YzŕY@ nܐq`!{] eA=tq f~6sM:x 2`,ce0[1q3}r#LXoZIxzV5һ!a^>ɸ|PFɊH}tR7K*?_uͮ('fQ4ᬻOa^_rGlufF Iш#>6 X[{us|ϟsB3FpC9 Mͦ[4d)ms'v f{"kj;x;՚2DGsAw!Lt;r`Qn"x9P0MG*ͿDИgK̖s3M%7TdԲ l<tKBMɹ!h]XYe5SWAV6wzYv+7wS"NE }T#Dp0pkkjUWQ!XKbgG0"/40(xs~o`X,qr{)vM{9^1Ńû tS\\Kv9Nt Z* Ͷ|uKEfG#i&@Ƹ}1t :='e>Έp۽NOO߼{>y2\ kȯhS,Kt q?=Y6QNlU/S8J xuU)=|縸յu^^kTɭX)Yqtp\^+k3| ? 2! 6ڢD91ܪ \oIhƸ181O4Vky|&ʑY˱Vo40,<`eyc<<_P!8g{x؊zM~l.f֚s޻{g'o4:SY*FgΞ]ʼ ~+9 ۺΔAah9a.yx-.ӌSz] czKӑbΖz?xlE3=gsݶ&3W4|eW jQ:~nۗE\(3"-e\*}|%(.gCD͐V''(kY,9Ax>E>Qh^$ {l? ˯s*[n=В"`<͈S[yjnÒI}^˜( be(^Vdʍ1Si<Ҵ͘]U=``gm'\]z|akJJ ll`:E9;HӕeOWj~ ? -ӒMeN-íe.nnK* p&Ȩ9\]c2Wjڄ-<58VN'9)ћh(2Eb1XfBUR&vuQ}ZQcס%fv$^$jn.$^u%ed1mْ.S"X)ZUwSۑ"oE1ĹS:t,9P< q2>ƣA!U,i$TQoՑkf]_y78p|}QQ`Gh#J!YuH ⢊F=||YInڪװUb1G_rx$bb\9e?P,#BQJHg;͜+oVUi~-Ny ^oc6~'}Pݻ\FM,l9cwTxBy}e0]vxI{Gbx`!ޑ eb=??V՜(@lҿUm"Û-Ǝ83ySo^ѣw9G[AR'E{ƹEnDJ'`X8ܢݡuKloI\G搢Ct.6Fc$ 1_Ų@b$st5VezsQؓFhc2cξR3cRJ]M:D ~riã$Rr7QZ@۔M$]8݃ 9xO8>9ET{Řzp1\|^յu\9= 09CBwwjl$NN}14-Z]EDHB׫O7C\ ƊѠ?btaڟR6-'rF_POւs*'Mhv%Klp^[uYBAAvYkk#2x@wjL*Nɼ{-(G6c>??Ӟ8 pVAb͆'2Լ̒PJJfFzďYXT3ĸ_ʕc42_ܳhS92v%E(W]dAS.-3 +<)X% 2,kX.gj>x ㌴)LZd7ps^TrE1bQpvI|9/{+ C9,#d=ON;_8v,Y_b/\h^ٿ[J)"AfnU@M[ !N2V+#n`,*KvκDɚF+Ĉ~FX{]dkvzKN]ck{;;1Mvc`^k ԢDNX2PaF^>V!zFa-*>i&LLcN%&m4u}.^itT%Ga2>bx?5͉d1Hfgi&lgxhbn\vcI@2St,d91d!\Q,bKzwFvɵK.dl U$+.?5UGZ^ e"b'qr(Gi\ň,xMRBl %JbG97k,ҙ S(8t)޸bF n \g3*,fw?_op<*cR8VڨK h'wao{/^k~FY*o E(89'#TEuq`d;0("~X_Dڔ /_tu.YK3O t)I4'vjvXߣÇ<>޹`=,9>?opu}!yH믾 K.t# $ՊX=2N&gwwwG՚|ˀsW~f+glb&ʵ46c{sWl9KdT?348=}͙T")e~bk{o޼dך1\WN 79Ӻ DI΋hնdilpiU*;.,YkK,gCLZו|)C,W~ʾhclmg0iʤ̓Aպgtᴻga16ٷi/dC Vgqvn6Ai:cokӗO7:fF%a:Oereu9SlbFDFG7UP~.:lD{&se]0ݖ%vu,vN: "rQ=[s{)#+7nf¦J_:ŗPY)W䂅区>r$y;oX## {ǠMW[u-|6kY/B6K_|8x]wc? FeHy  ,35/L:"|~_;QfxN{m͚s5K1+*9̭MbQ9νF6"xO5/ 6ĝ)D[2ԊfJʢ&h[)gP=-VW/Wcg nҜ̘)gå967op ~o78&>sd~ .EQFGs'KG7דWعs~3q;8bPy2CQ8+ rrVkc.Θ@9/O0hb:imNKTѨhc$QrU#e"c9 f bESUl1u#wlB3Jr/{MJr洘5c^9ʦj>7cn~6'Cr8 ಐB#y7Ƭyک#bTC_ms7T r_FI0ERƋRbRUdgCzdW~aICKȏ|L V͕C̽$SYqS*$ogHBje>l.b!*Qe{EDZ{nV32B:Z\n&3qb_8SZq1RwNa~3&hKN3fB}R{g#}*s'%آН#x _12 J-/dRh7P⺬ؕ46Ȉlb Zb${],e c7f;onnq=tuZhϵQd^o`Y ݵY4U| Y;('Z'[[zniCuggWːSK.273 ?2~Gv[@k,PQ$ ;79^FV:٬+|3?5XsQE8YN!] Wjb@hTL"Y. \\ 9jtQ9YE-BKܝyXP`|Z&eEץnESAH ܳϙWO:o;̹K'QtEܹ2+~UȧQ3O\[Μn2F{E'(On9w+6C#\P3F-\ # -cWjLPABcŕ Opl~!_ŠN򸳷\iB9! N!K8ֶa0}#JbI桾9T3r'YH>,\RPMgs1LH{G+|G?O"?[A;-JIkf&:*B^TN3<?#cɚnp~rF1iٜ\ J O|)} !vN+1Nvm47+ܣ Eb|fTV?gޒ@;Btsdy;ZKIpw01¡]:{K:LX/ IDATD!^' ŐR  YQ`f,KWɖ5DמvFbQz1ӷh˛/_A -o(§D!BdY"̰pA> =qr|pR"fXxXX*SP>٣"LH+Թ-b붚DfDSTikncgg0XVM*hȂEC[@ ,,bTy$\d&plbPPj]{rY)u+YRZfn-k;'GDuu"pֲ\LI9\dr[9/"zNODF"ESVt$ЙA\CjdK;<_s_*H֫Q57%q4+h \L~L7r]?3IzهP}UL:ADnvZYC1gXbv%Kd.g:GHL=z|ڴV+4݂ƶ"֭[['?Wio7{jQDJ7@zh~AD@Rg} &8!yW+>L^z 7t4M{YkRN#~vs4x|DLb,r41x[l줉L%KTE.?ґFPiٚ8JDgbHv^IDC-G xdДwwiRgsnTjnp(Ѥ"%MbsbmJer9b d"i&LRoddpsMtoTl2#j'elH|SSx]/c-## EM=U@Mξ$X܇۞f/Xjt)lȮ샜#" ktu4粉Y{lPEQ"2֖6C+/ s™KСl`ag̭@Qlw\=˱c+8t; 0d2{'#>jjsz {LB6 +<^5V62h7sRso^;pŞ5J32z ݧgv\[6w˰B*#s16f^5QI.e#e= 5k}ؾx5Rh &6Ds\sQwpzرX o)jōhaJ*mPKfBXtC۰!P6$.7o֬iK YS6N(G1 տg*çLe ZMx)IK1՚ܽǂA02=v?g{oش\= (ЩUvfd/f$)7YTD]C!G|M]'Ǡmj ||#ܽ+^K{(WJh ]mkui`({.'=z}5W7 @Zcp4'qQ@EAS^ahxi 7bq9Ǭ=M4HI#d(hWK%\$~¦ڮB:CKJ _@'JXv4<8j M Ͽ~"YmrtEfm՝,wؘK/=.b+L8]<ɫ/}+h"2e:HՐ'F2zxD/qfB" 7_3w+BhQצ*=iMnߺͼJ:Wdh̸ 8w>h*^?._|)'})_|)<}487^O=e\ήH'7Qsr%l@k6@Gh糕V3B (TaV+,\M'C)x#lbiJ#{D kR-Q Q1W9(b~Wg.桷s E&1ܐASMz4h*7Lgki:tʍFǤV`J^$4vxA[,@ q^zT]7bu`*żj@}sLr+3:/XK-tE59uk~1u9:5yKjTykpwNhVVtZ\d:sdW1cҙLm&4pǠEoq.Iuy4$0PJh'>;VR󹗤[MYCy\p,|kdiR6Pd(51Pj"Y3#/*3藧Ḟi}(>Ux%ݯ}c($y<4i^Y@:3>_>emȧ"E"ڄx 1֕-OdD 37b ȪXs@^ԧ:Dﴚ,؝xPأƨsgZj5eq.atO%Dp6C{سG6)]V(mf,VzKh3ql i;9.+-3lvua48H@=bZ3IJzݢL q5IofG!˦ڙF<][DY(lVr^F`YIYs_`QJٷ{Jh)c3[5WV3lbꛁiޟr^_y.,iR 79N\&5tй SY̦R XIߗGAͱV M"v}c72|˼_;qA=Gh̄׏wM3ȯԻohf)2e oʑTFK~ݏ|w#_xz0Mx:y !tl/odXN_G?+k7uM(  vafLtP.Mm_]YRWZU*+  +)9E[JC& UWR<<>Hƙ%⵻/7¤SR3wp15&h*mSqR=R=yow9}d5s5ـt UIj869h2Wk;Т'i^|jq\^og1t.(iߦl^ЬfDf Luf@X벳{tu}Ip}i4ruuC$辸7Ȫ*"' ^ӱT$$薌'3e*6Cf {>+`ysv{t'%SX#wb㺵ӥvLۨ 2]sjk<[hk]\]IM#7 df4 cl~RN5:ݽfv0ׅ5hϠ1)!rVk88q4C# Ff6ZuqIyJߌCyu6/Ϟ~-q> +1&SC=dx;)k]g |L@1}OgM,CtU/OSTs  q.Uj4}a?л #HW(lbSK5M-+ջnj6|OěM&FMsHi}mz$ZODWC|6fCSεVo-<`.a|ΩAmhYVxܚ`R3I)"x2B I0R}?\zm㵺ZcHibQ<6 yyÈ(ĽxS]m߰yoU-_ &Z*³y-c IhK|GDΫ <"'?k/<ь=:67~Q򸣍YAi ݜ;.8k+"qvQ;97xIs h* t(l&pΜNV>{Ҋm1_ɿ x12T[אUq V{PPbq[^ Pѿ|-Gi*eZt~V_g\YLuvΣ-Ds^Jwow!'_v38~RkVcvrQld*,K'Qh1v&&x $кD-DU€%=>$[R6LxXB[]mJ{2YNQMg+-FPAaKrgfD%io4`ZR, & FplTͭH[iFV#H#P(XwLn"@S)tz]+j{ ;Xdrxt B4'Hbi44%]p\9ӜAǁgE)4B&ku(n29Ƞo<<#7|/U4M Q)t`!K'^_|}#XkܼXP.lp;kbF ~w\~g9'l*駟ʫoKߥep.E/2o<JoS.D>cj߾}KfRgҚklQl7ZMv/t żqDɭcIX^x 1i*36 _BԵ0ͤ:] 5¤QGvnOxu5$)H+~yZ#ݽ#YԒҖ\qS'RMjrfXFsM'(F%ٔכPV\tt.ݒ~W1\XVx `.No$LȜ-V=hp*V$y6ckbd4~"pGjFDќ.WU6E/477ѼePјLbk4ODEMrmPmqqQ:h5fZ\1gCL탽i"._}w􂯍WpB^:LQz0RRY=C7@iZ|uzfaࡃOˎ/zIFmhʿR(CY]u#وXίo`k)/mʳ)mB\ߜTTLd)h Fnhh 7al~Cl2:ͫ3qpc\g%R6n~f)̀5Jm$67h"@'?W7#9<5ӊ<Q&߫ɟkq@xٷ2.dבэ\\4q$zv'W(܂& T?^%yQМ%Ab舑 ~s 5{c0+^X´JNJYA03TtXqB#SDl`@ :'UYyENX KJkn~),8D_9MvL,[Pć 5:Me΢({%R=FVf!\F3#6tNqq3"4R_H Xp@'g@u[\um|NRfWiKACY/mc}%$TetuE0F]7,<uu8Mߑh ե);=\PDn7VwGdžw|-׃k =]I|EϞnεd6g&СP7Mьgw[f Hvɗ_DTޣƴ{͈CrE2X >\@* MHʆf8d k&:F|n+i6j?@#yQlMJx?e|\: Sc$[iJtoK7I?72ȇ''쭌IًBa<%ūүVGN'w& *EJ؉\Y?ӷod, 54u0J6Οp#w#N'R5MPb}FZa 0 *QdD AbwH|KfH[2L|EP.d1 @֮zt"F)jl)`MLBjbDp9̴jC\ c,5k׈n%2`a+4_})m r( ]xܴ*ádHr.EcuzN(HV:)U2^ͩg@. D><<=ښvN,3"r>b4M7G294@+܌}i\Y}\\l5|"tB<K6hp&o3&5#m^Ԫh*jux?97=<=;Sr,ݿwW%;::<'˭w<yD3kB<=9-V:W/_L øG0,2vJ: 4Bߊggl}Tޜld{0eN .L'#@3MknY3@~I]d1ozxo0:+X9@OQbpLc> X@3FИ$d ˈ[+\4ź`'*VP5iv/`#J jft=ʘM_!e!F=t&u!fzOh0k" }Xu/Kx,nWŞi|Oc'ĵ1l6a?p1JtvRqa%Ӂb>9<'T9H%3|\?Cs7e#ڃQRޚOg!՛=YC%EsMbز#crf]&,ٓJΨ[(BpN؀ ő8F6=D5[}b(*I͔W`n,UwfFCW4rτk}\3(,0U!W#^ل]ʰzI b^QDs=SBJFsͦP=mPQHBfÅw]>Yt>;J&X*lFqhͽ KiÑ^ )MJB\wE dL 7xR>m,GKtØ.7QqؘW^g&VQ>p(|\9iQ 3bmJ[i"TdlBZIBd@#~p'l$G{7K=)_}|bװw:j%3D oHl d'T KZxs1v*m sH6NlٮhbFDb4>' Q Tɉe 4c|>8Ɛ6ó~x=y,QnQxq5t!@ 6~ cZy(0h1u0kP1P28IUhQ+ml!ws( ەZ7>gbvh站,=pu:eo_L|2 HUrxp&D@ְ7Y9tÇw>z93j9JXx]_hdwgz=@LJH>IEbllhRϔ'-_|,0=W\Cwv=}yyy!  nooqTkʨkhƆTv-o$PDHk60w1pFgKI\j)RAjjJ,2~V'}.y(рCsLG{ hpa`{AoMgE.c7AsȤV iOvD__ozQ3^׫ L7Fq.~#W9yp_o@7oۋsɖsq(*qomP]y,@U6 "8$~͢j Ic飁a~@gI"۵eͅ(j:n_5X.K,}Zof9aLEgV/8R mΈTqyh(Q]lj'J[22;˸EޭfGX/x8~1&jdm+&sJLVh x)d0މτsDM\q*[2TY!H6%]~,J1t1YwuTRcl˅,sY Wv=R 䶮$zNvo_z]+6j=vcy{J.ixE!dߧi/\ tmi6+oXpp}x`aK*}vy!<}J&h..4@BMxf&KhϤh1 Q^ ]L.)H ܃и.ɲH.0"Ǎ"^!% D)ՕdjYF;*2/O ÓŜM!&+L@liÛD"}Q=j![hln9NqV}{&E-*2k*ֹxJcN74*\,%0*Qt s4|vlLJuiyCQ"5ၬh˭2n`Lbۨ^ۛAZˣ>w4x7f߸-eLT~*kHZf1+O],ԭX8x TuDb`f\yX ^Ӽw۵N Dq>:6}zhuK|C#B j*h͡!!" +6QdW)5ʄx'O49&mܶZ(6rv~3w?.?r`ʼCy/*,Hٛ)λu{C)?Tt3* .RlM[X&0#bCӉS4'{ A6b$"km$! ΘX Df5N Qx7TYadJDiQ >o0f)"IeZx47U>yB ͤѱ?/hƣ41j9 >x̨R;Q^!>L'{6z)F\HU6`_Ű? *FCc0`x ho d(Mƪqs]ݐEFFVOyH`bwxZX+*.F%t BQP6ǥ>ZMΎS1|cP&k ր >"&:yPJyJI~כF&%,x#+RilXCc8 rYގ]f#!eM(w0?FMC}$|VG3%ZwVIJi,3f5$gݚZqKT>JE (AO+G`=C?mڑ[ZBph[D;wsث#aB?k*I;E0t6IXjěZ&ȬC;́ӛ8)׸r䖿鸒R[(*chFǦ)[,yR50Iqʸِ9}+_~)-Q0SڢV~hەn=|_FW{t340| :[Fͱ7mu6ި=0@&rpK -vxIO[rrtɱ4.V>+NuUmn˫+GOK6x[-UObE䰮]f.F)5Y;'.P1R$V̔Q)8qpL"հY@^ zFKR Б4k FK5*X O.̬(N0K,х7ED/hP . EL+ҩ5#OZ cLvl;h6@Ath&[Ehِx,;[[D{`T5g/( ֋T 곯./2[(ErdeSt=yVoK=|DY'VC >e>[ᖤw}鶻/>-eTN̈x\g|6L7+"n'thPo5s`ʍ裏E4 ZPi92;4b?h /QZ\|{I붼~(+P"4}Pt]_dQO[+AgJVu|<%DEk )h+ЬΡRX6* dc&A-/гK e6Iz*y6j*rY>;E*\sTY7{$Jg :t@Tq}rNyl.5,JёF%㛑DC}9EJIIVX*!MJBiBtfy %6t*Yqe QMitJ7 BE0|>P~s!fz.ckr<-wݴ4* ^3(ImWJRӚuo|^EyyDI¿ѕl:vhŜȹX8 8 Mh c5wn^lnsV+.1"zb4QMty誏j=Jgd p/~Ybz3EJ8b6_mjkryEwh(1zFʬXܑo+ͨH__\FLO@צݹwSRӘlĀ,TL˹uV5պ<%E?P9#6 <1\w. JɢCgd@Wa@W ]zXڤ"\ `qyyߑkm.h>D16\7$9 G'gCk IDATZ= ,_WoHp~O 8OrY6|Ӥ}J-6"cW_ȥ8?-IxX߾4vJ3*$jN c@(ʣMYwMHX:.?[ 4v䵲֬l^lvxϵʃHqdw=132DuqM4*TJ*W,!2ޡ|3YN-¹Fs d۪@P5êȵfK:ԬdFhܴi36z$i^y¢.6=p~#JCuJ vZ+blyp@e^֙_ASF\oDz*5hs5(3YkhtXݢ-}o4ѕˉ"]~'?ٙ|Q+R#a8Km}4L3-Ԑ% \?8ghZP4ZߓF.gg49bA\sjArFTrp)D05+Gߑ~wz_g2](Y`<9|zBg2\`LtqWӪ<|G#vM]g՗_Q(|y-+HЃq}˿+:_~\vJrHAo1&[rtDs?x!54xDtQ`m3.q+ 4qA@AMF=uɞD0])4*C4?gB4 K9y^,+kDpI.U!%(s"G1Y ru B5m`0|Cs_OI!,xodbEFDDx+jdԚ'tɉ6[st:M܌8@T˽Qd[[rpC|Gh4@GTMFwvD_};prXR}q(Jzdf1 ț-/_{D-rlhk( /ⰦQx\]_p2$ Eʆ<42P|sX&S]W `]6-hmɳWϥߑ}7Ӣ!=={+''G4SA#1Ť~/lƤި 1I7ܖ8z%i9Dbii1 MuxlAc\zAW&i & d8P*մfTqVcRU6J EM"#v)لUhkW{ҍzpuIH^VC 8.\"B`d fV,c"Qht%Su?5[(b:u✃ ;.YB@c8{f6Ћ%& viUNB;]Dh,R uM9\=}4>z-ƅ*сdXU*2_e{k1GҴlhٹT/zk ${۷d2֬si?XꤩÁ8#`:ڔ=Ў]_'u[ ck ^=U11i. nk$50 >9PFi#fSQ--$ D5@ODCG6U2 ,5Zj2-teY MԼZ߯Em8ڠZcm}"Ʒ&1ja^l8}VszX˝O;.U~*&<՟OM(fܽ{ gv{,SCm؛~M*E@ {FJ7ӡtЇ݆uiJ9a쎱)v!I1dI./VXu!R W? ?x4--A^~$r;eH뺒c3t;τbDJ?4v\\Iw^!F:^'%Yu]]ܣfY!ERƼ&0(RH6D度&# _aq#7|iR )O8e0f2k:/?Qgº壁.!1*hwXN"3wc"4l貵61+[EŤwNn4, 9ّ7oߊCĄ!@)P(Ʃ(ss5CN'R"j)) "љ76pI#)GJR%c~b7b*-TG4_sVhb5[r-bNC\9G$W%_A h(uvG:({c~,h8@Ҥٹ(8PkuŚcc>|*K[q{CkZ*?f>^-h`qD߇YAa)JS?N^GMQTRsN8QaZ!^Oz!y' R@&Lbr砸̺UOzmʨ"}oGVrY͝5X^̯W-Ad $4`$/d46 ^ѻIE gdnor#bb%a ko#)Mtǂ\zI\h Bb+*tzrݒ,`B^j,{CA+gυi]D[g廏[1hCH2҃ jԩ)+ _n!\ ͊"I3mI?MX\U̼&2PFj(AVhT$ gErס1+d,(R g̊ZB-qMҸ*Z@59hd͒ (&t \>' &󹬭nu㇏dwwy//?ݓ=i)^Mp^bN*`$VC3B6l!*ߕ6[X07ӂxttK`w_:.)_}5K#Uj'nt;,׾*iZdA~C9:<=)Ez:1)@B//D޾}CGȦ(ќxR^~#/^=@;.bQvvd-.(L[`0\A3WD4B~@P5Y+5(R5f9x*\$S6{±Ć@\̬ '>¯YxF3nM}(;ka=?{HMCJSjzXC4{\ 9=vkU%newgWe5H+C"u+iM2_4á׮ 3Z6v\+EH֧D\y~d|#mzQ|oƊF13eAfAEj GwX3wALJ/`EfjCZ6KDS=ٽӄx*ia 68o$%Ez`HMw7ZF}Um.ČxbKY`0,|eg*{?sZ(}C6J` ڤwJ)K>hZ:KmP9FrAPaFkG/Kͻ'aExz|i{BأF/nV"/+Q\u%.G$"ƦAU)ݳ +{wUǗx_?)ɮ((6vQ6x*j>N{;o^{;LX>'ȩچ4 )4D%QӼbNT޷Z3%ANM,j^_s4p0WȠt]rnBlq;7Fxo̴Aw Ӧsx*d@ ˼T$/D.uj V"+Vw4bS}ْZ@~F=~yZj({y%Gsm`Mif#K @͖=f?װ&sSlk:m(N[[}"O@tM6jVC./?Z JaM `ƻ䎨"TмX8N(E񙹺6DSȏ'Ct-f*y,q-&6[ӯ_Dcoıq%OW/l$GW3(@ W\]3fggWo-Y-,B?d!  9={.9ݝ==n(Օ #/ٗ$-[]Ijn-憢x{LnFS4uyt}gF N(Q;c\IG9WGrzzE<h۳Su<y:=űFm , ;3Dm@77Dhd@hZLfeJ%%m|+r]g"m-#-:FD /sR?{jY.DGSjϗ3MǒDy`h=h XC4zYsOR+iիSZ˩jqUkh3/'idcq•{lԌTyjE/Լ=Td\NKӣDݛAMW%GCMkRގ~B>JF;tsƦ s`N4eps-74G{lPLn֖ob(Lydl!{r1$jF$1epq)v_>zX]yꉌ7fZb=7/IRTe<ɝoL7 X4Mho-F"|&:M0C{5I\ibRn41Cf$7$mhb`h ZNso|j#̐f5ʌׯ9S}-#Aи~W|)Gl,4/뿗-/`P=|&M hx<ѰQ15pMJEM~9t|ݨ/iʛ7r}>m篹Va>`K 6hРkNOC'ܯ)£z{8lS +0KGcխiE"JXU&@IX.gC5h.a- qhK58imYtoITJo 4[AE9hX2$J9:'݈2_94Ky}%X:M)JúNȠyF9@e L tb.ا21Bk$NJ]1qxU##VRFq/Nh0*iwy̮+,K4h9N{mP/R RүFvru32ʟC]wA GW|v,_]uk1?A3i֌؞\pėB7|(_}9<2mHD2QZʙ\9vHW Qt+?$(ޑ2f0B|3gz+V=I٢.믎(-ր҈XΚkm4^Fj)̂W`ߣ;ğ1h^|>Z㕺ԗc6E0$S R\웒mG^ʀ|FVZ|c:N ]pиƆh٫~Q+UrI8}!p.;FUF#OvA?S! v)P<՚_7EPK辰<ێ02;MBod%ʼ"΀ gD-6* RZ=(qT&,΋z:]yVfןa/A( ("J9㯠VOʘ\ لީ&"ҤFHW?0:ljVc8aQEZ[Fx<\ߴM9\H'MVU$ܻr~u!W[Fr11b&׺¼ԇ~Wj۞y2{bM9hL~_*|4rIQS-+QDý 6M׌5T6Qz4VNW(ġs%mFd@i?lрk65ðfA:gg9ȹF,w w]zc˱D yae1M?yun pO-.e^fbMƁ0E酶z^;4IJ. GTWS)H u0B{+&dvBI(6'UQwah-9h_=5`3F3:_z%'ɯ~/r]ldd(T"7 ig{weِj%?Z/.I_Ű鋧2ڬ k(Ag FZj! "#Yd@i">\Kx}4/^d2A8>{.Bo]#ytY/_?XrDEI(%ͪb^(pϟ M(택|տʓgd6h;,ꑵ J2ch/_낾ڇ5Vrf<s=O7_s9>=o?'''9st&H-`aS = Aj԰WCg(!ъBJXP=G`#4ؠl?ivA3F M[}4kV78~x`#94k fp5h+N{KR~:RA ͊ & vOHՇAMNj*axkN{:;7Sq-󿖧? W-s-USJ҇" wtF2(QM)[ he`Ph^;F.}FD) `rHqk9ݛR68C҆+6E|U.x|H̤B6ȓ]m|c4Ky",JcK">h7Q8$2 GYɣV'[^oS.PUoZSaRzV{ȭByat{xS+ߘ8C}Nj} n}%5lORU1͡7k0|nKhF RKȤ@L%G -MsxGuWFF[_9ӂVf2䂬*ٛ $DuC]zW|@قCQƊL4rݚ)|[YQ=U~?L)NY5֝/\.|V5$?4Q_3Ib )sus?o7tOFr YL;W*o`bHM1{ _/Tch6&#d!ߓ@AVgzB}J΃!Ơ)"Kꬡ`HlG?o?ɳ߃ @ p&Q6i#)F9vUzMyH(#QB'*@I[2T/UϾ<Rc*C6p9i6mJgFFs+2:sZHI{=mUԸxM@ZPR y_iJnbD{D6 QVwMy|-]q+I0WN/uL=::bkNt"+Y3׳5Uga @^i,"ЅqB`-6#vœȧ58b@iF0%uk֨4d|mWS3'6G#E"86O3H;h zlEXIfiӈiYUr~N q$sLs5m 2OGohgWTɺ(_?霚Pg˙|CdCFF- _04P*}0rJF*2޲EEa~s&'77r3~'Wd<KEβGGg-Yrq(z]5;BU&G_pvyJb%WU+.ו63 Bk*4{N}@@(= Wpuƾ$crhz& ]8_B 5(jHb _hsCspoJ^k64iƸHI=e\{4p3z(ꖼ"Tc0:⳸HYi6 hp-VruJ:ޣʘY,%[ &)j2CeSQ!:lHe4{QҐMՔ#/Kysџ<^rpЍ'&;YS˫&NXVl5~}Y =+J+[0͸{Mb`lJwa×gI}Z`$`%tMR:?{Jkg+z>=ƥT2@-3ҏ6Ce(Fsr!Eb%*͒fd3y5?E3Z$`b%ڜj;y f|*z!OULa6JȞF*+V?ɕO>>& 5/<3-3~6EpϖJߤi1/Chdٴ9C7f6'`nFY4h`a&v=+}U4OFa Pw.ysOIS{5w`T I|A6lbE_#ȣ_Ⱥ8N\C)\KfHZ}Iw||H+h("X [д>FmwN]-P]57^+fkWUS.njusH^{ i(ڷ.2yv.//fr=VwjfKr$wN#r;;R5:rx{|RxoP4kBA L?_nϪNը2ooF:p#iuM7kF 5)NC{4\@`|K2RzC@r0A5c2 @{5lꂹ[yve .JUӳSE7,""%i6pd`(/_Ǐ?溌(EC |l*T(?cS[ƕ9g,_LG#K8y҄%dyzm/Ŋ{j0 FT rgi^*˟ҀGkgXy4n Mp^w $V9Na.v2 (B&tr-iwE=FmQ(M 8j;qAO z3|Χl2T롁fqTη2K ~&Vnl~&x$Ȧ7!p!q75%=U݌Lu;$DLFV. >ղ@ [M@*7 I/?WE[mCɊ$!+ 9epaި.=Bu]f6h}/< Gpʸ E E %vJUY"Ę}__eYobR`EYh%BN,@n(1V0vB t[螯`J@ }.M| 5*/6*l!,#R#6 n ~@(@F$csn76s2}$8.'sѧ?t]ͦAQO@ _$'qt#sE|uh*r<ܕ[ªqolBqӰ<7ܖĦ['JHԾSc9,pV ÄxL)e1G|"`l45TP^FTrJͪb*"ǒ@gDLfeJihqbA1EIի߯Α08*z +s9TINH5h# P}Vt@'%o4[M6>?;\ЌJZa)VIk D ca8*l 3R9A ~G_Et<y7ȲZ(_HpPpߕ'nR[ Nk +l*>)0T \FDY\@#>oM, O%d^#;C6z0퉢,t{w$k$郎eH2Ě@ \xh"ʅ ;w͙ЉĒi.AſūgZωݻt;Riu{rvq(2`ӏ" tFkms0 l )p]ܔwOe)X XǑ h!yTgc.hNrš I@r7" 0LC^k ڝra( C(rRd/ÍKeQ53ܖT pVq Qtb0mBs$=> Z-wd5RbM9e&Kk )J5N+e7<3}bQ\چ}z'[ozKM`D|٠`g:Ď`fkQ@F5ptϚU=Ōᓡ&u؆h-NOe>_d6hVcfYH9-&%BG3]O'_-4e6h([h^5tPX6DL+0`(|$IUP|ΖN)==0< .9,7,8u"bSNSXi}Qb1H%);]JەX])k6:d)iK ޾>}KH4l{46γD& [!IjWcGlaݕwozs062]Jӕ<!NH{;ݷ߰f&nmnx?M(sggͷDA'w.31{RnR3 5-xgDa6"S(۠[IgÇ\HQ@;,Iwx Q;PbMZtw0A+߰1ɚ#`q.l@J|MF|/YuES3j֛[|HKnL/ޠVA[dOvd8d83ȡNl(Π{2 t>~#:QIW0^G khud*A)hMKATNz*_/ӧlD\ksWw؇63SAO'dñUl+EbaPcsQhB&YJ0jI{mdryK%0ͤU=l6⨑cCZXuD6kJH1֋s+k'6ЈnѥpЄ2^meY2dvֹ:ů`iHi^[hdP3 k¿גJ CsYC5V~"9K `弹YP|Pw:$X}ho~`#DyԦ_5њo3:BPݎ0Ac ϓZE_0R"ʪ~LfB/5WX. VJ)(X<@j) l[Ig FS&:oVUmZ굛[9~s-uH@u5q4ַP㟪ŠXUKIkY[wrquE'\?7teG[ t| Ooߨz]peDVp Hc![CSb Ne_sw8 e ͕fE3`/IY,zm ((aI45^48~s7hnӱ?>jh$5q T(x1ͩ E*"fkiJ:cnd;H}MS3#(AC㤴 SͬV ZDь(s+6HV+>_s-ED ӣcYLgbMWjC'aI?:ICQ4AYYhn]x>rxnoo|;ME ?cso~TvwKщyAUzDc9&1ؠJƓl|p/5sr4q4\Gl\K"{j䧟\!3a 3',fh|m2J`gR^]\{>+P-ݻ2V,SWnGktmftE ' @qߏdAkͷ~#-а}܌h!yƭyE<Бn7pВDJ;롿;fRQN]!r-kce+Xt[Oh|AƊFZ(@t} q40ݥLR>T>]]]krU]>om(r}Rw童L&#ijt1ý&:cwxS/W7Bp /s^h`rUr=3!Ch m'K ڌ::9#Gw_iioJk/pfL"96)(ʖA=jGY D]+.¢殬+ސJ պ<п#e.DH)sC "sCǞ wmgf͝>bFC4lfaVKNktO.oheŀ{2L Y5vwv6W4\D/mvz|>iJ,q}xp7dT\jh[QsF ?Dνv+uOr+Lbr:˫ >Y^i4fʣП$q]?|e\7*#{RʫUaF,7Wp1m^H9b!vwAg[]Ld-<ޟdK\mjrhZrVrѦ2x(`};٣^F9m@ vmM9EVn#AuiھW[`sލio6V M=59Z|?FX <S33:^A3גim5}sN{n.4z 3dJ94K^CiքF`4#I@'/x]-]n>v o}fO?W"sH>}x_(jm[ZxUIa4dۧ}"fHw |Dp /d@0RY.(8%5@B~a^F@Jjl~7ZxXh!Ƥ mzDqw6]KQhFZ\1B)Erl"[&f[Ύ04Afd4meҏ#yx/|7\/9u;j]NR bɅ6 Ft}6\cj{C"g@<_%K Y.F|zI\[4s0GE?iߓofcwgHZۛ H149]B={0[.WJgO1_/Wstߋ"C_dͣinY|ttHdZmO2*?5F#F1^4RN4Q0E84i)I3>B0J:#6kCBN.o ~Nkm)K6Р;S]P %ggl֤Zp]*/\ X^G'{G2=9={ FB6R yZz׺ɔZ?,QLV@ي~$n.rdMI4;ut8+6R {2Ï>D.n3OԢO{1aLA]ghȺݦ^H]pG{\M]m:rm*wVx4!{~ΨÐȸ g>X&zI Daw"|nų0N0>,V  ^z0Csro/K؋_|9:N QO)u66vz:蹣 6tŮ;nǑwNuuΪl!4:NӉZr[V5Shh*DDNlWio>nz"_vFi(@FF|$I)bȣoe9(9*7|AzW6p8:3 '17hX5Qsӿ+k!lZW.hA6*3s0ފagf&EYx}x$nԃRWp7x!e[G;2o&EAg3^agryo!Zaeo9qȞ-B[XSL|PD Wa]5e:63*]NYp S$u tpbZO-ϸH2p@W,]jhq "aM':JiN@Nlz@"ʹ6!"I(c3Qt:Eb60VOlry ݕNNSt;?t|)X7BXɗ_ANAC)@b3Uo2f!zMwz^_}KXۓXްjdABH):rv<{DO[y! r5%5PUՔuіp(T!ZNOd oWl\Az;l јܑ7oϙ=H E'~&o޾Ky\{'Q zDN}"&3gOa"Gw2NĀkt>RU35u#||Q^9nH%uvtXLA F ~RKWV'}"e4xuED܂Iz rsIӎAOYiEJ8 DYT-1k"F18-EbGӽѓ}?cSHk˛2fg_n/9v ab6aCT\Q,uٹzg9r4c u4'VQK3D0aRYGFtoz"b""~Ȗ w {CِNeVb@ق WRA#֘}F; YBX4nd­?p9QT:?4jAhU \WC\ kڠjK-siCEs!f8Ӥ5Ko*C?A%6rޠjKb\|'<9"vf9 fXk3Y9J-nqXu heGfTG!F|1@ݕhqcS^,3U QxY4d;aF_}cޝ6Ip3VQUԚpFeb9?~gqK& k#~ 8u1t}:tYH5Z_$q䝥 zDEMdwyAмw4ͨQr!ڑ TQ54ҴY`njmR{-뿣k]FSP5:cTzS_-G s#- ]dy'Y򑈢7Hayf9JI1MLȲP){R|,_146jCgS?A36ޢr`c}ZmNeD|{N:/8F* N 3iCŌTs'N9WFeLg [YG\~E wIZl^Іh#|ڤW5FC3X+IvGHrz*js5,f]5k[% RU HJ<ң ѐhp))Eb1 4uLP,"\}naH+9G'҇T"!3Z׋"c\^^޾z{!iM%z0WO {5U竩,Tqo!YbHTV[yNAK)˅R66(U7sN<(JOGt2μ\L[lJc3Dw6e&w|* F֓;lZŔz>xF7o{}Vq=!:9<| IDATKD\͹܎Fbt\\$Iz#âO>X={ν{rttB'x }AD>2xm^i]aK'57*tL;CiⒶ Zx+WU(ht۳26|be-muA 9ba5[,z& @4wOOF%t`sנ*sڌi6Z2ǏC iJ3gkMiʅ: &|/rJ {ig8OCGl3趼n{)-SX,ppwP٪l*E'ӣnd96nKjdžX:6k.6kdzQQ]G[7VPl VSEŜ}o̝_7Б;/˖Qj=2k v`MiÕ~aTHT*YS_<#h+eA']^?ֈ:_Z6!wFUޣ8C@6=ki ?Π8Q6WESE}# gO(ɕRj w.[4mgom[/B,*uAoCYJciOIRIxm]GDV8n,S'S&X̀Qp1'ygQ80-t}72yQzQZZ8\4dܼ_h^_LE!LJ@C=/ƦOS1䋅MI#̝5^͚-J%gjăCw{U7@dkAC#CBʝZH|l2>j.Ōۛ-w4 nFv2O ͭ">JjkP4&T\֬:ʍU$h:fUyE;Di`܄HS hbEcIRJ bI+e PkH, bY+:zv-Lݖ\f~'2Z$+EKiz%0XU*gBt7kX,&1BG*OЃJ$fnyY)\Ҋ Y6֍%#"i1JC~"'Y@^f %e;mZ'%ܔр8+F /C:a?8:jEzSĸb3_$]gkw^k4d^o~ҙON7~#F򛯿h]bn$m|!޿&sh*ta^C Krv|su2;j!H 9d4)5* b)U3~:rD|[Qޕ8-kuؐi4&+VT yԍPXWkyw h^bȺ(fLwU1P4*64h>k =-Lz;URAC2h`GܻVfJ'A3tEH cILX3@_ 4͂*̵˲=eI"F=b3ydK]"K̤ب^k8ngnϑyFfX7qh!Qy rdk PhtD##(2IS{h]ʖ6)nlXlqQΕ6{96\]m>M1͠dJJb`3Ħ0Cf)]oiL1Jx6Gx1)},hqYWoً_iw8 ۠5Z[|.Ima?M{)8VәR`I;.,56ǵsӊDfez"*JpjbWLO+5yBg4|*Eh:] ẊCfC3iLI NǶdk(F[CFC Q\Cϓ> hDiR1!B\ٔlV=6e$*&dpzނlL +Rpa(^@- ߇(m6ikyYXr<חWRW+J{+wR^]2/XnǷ4|']9ߓtYLy%pz>3Ҧ47 ~#kɚ@te08 BBoEeSTnC4tbt>h@Y;<dB.nd1V{G;rv|{'vv(bd &YF+rh38-9݆W+IրR^~=te*81ͿwvZb6 ih D4ц G<+"ʊ{ [@yQDJ+I6[{2$Tk+˄IY`Gc=G [Q䉧5X{$_qTdWNxKP|OCH6IMUX!/A*7eGURr_雿4wa>ƞlDvBwwXo &P(:>cdF̡-O?k-|Mngwe|{cTΖst"G|$_>^8;Dz͂qrѥS?8lCpx kbD<"?Z{)YJ㉴1vTTXz&{%mEm08=ũ5&?7d[ ~2W6#h=I|8ܓ…tc5OY7۬Ҡ-C7Y99W.nZB!3Rp(wZarJmHBuD+-^RxŦ45RIBhj)"ERa 78 >~:U:B ?ݷ:LQcbĩ99+LC ҸA*ik0efE MQ? plTȢO|NOۧOjFMA'xʇgh8av1 0|!DL$U$V ̂.ޮE ldJ]bv{:\d>[>Vh^UXŤMcZ9 0*e>E7gãS9?wR ـP3_H˥f@EgM]-- EhӦRFܿ@X`hZsٔ G%Ī1S<Cӿ٨nfd.⠌b(!֓SH[ZV wW jM;E#ƣE[N- d 4r>%=5{EMcUXB?ltu`: 3 cĒ"]6qn@ϲV2u%G29H >ە(~%Zs8)ExDF$IK!˽b⎟Pp_x_i"RY"3B9AڠiQ#ЁN=R6+-޺mZ9lLBYA`v0w-.ܙ3s$;2(:RO뀢l9 Y> H݂.aޛ&RÈNH'vf2\]5F "-z^V6Dg-5FB:.mW-r1mۮ|)bZӺYܐ6rW}hzU6W9>#e*sTFfn= ^b~5A=Eg3ؔ!50^*[H:KA鵥L-b>tg'\BYTeaIh5zFn}=3IoKҜދo}^*ɩxe0 o:dZ5!N{]j_VzxaZ&=J5Kb2%? pMZ׈Rs0&fQb1=®gcRK,OkX)u\[# .4j${ԛC"?y R1]㪬t5QAZ󘦄՗݆/&ԇً@8e8$@T\pdW^r\7[]#6K⺹"fF #0Bu6l7҂6|6-E 12R օtL3/쏈pw.V5so h&ѐKEI>R\bΙ, 9PN>x#? y]'cfܴkT׭I?<%kg&$FpЗbU3B p#cxG9q1 t&ֆ9O؛79[WN@~4BK[2|2hGr=mʼn<<>薇]Y iAK*"iT6G8tQƨ.-'S%3-J2G"jMӦf*Y].ajH7][W(ƛG nEilрaЋMU(PxhYd2C!,+],dY,q I9)r\촻70{2A, ih;]&lTɤHM%nO졬䵸)OYbM&Y1,HoXf/yK"hDaݩfr%j='-HZE Y/ZSWWk;;r|r̈ׯ_'i"_K7?l|ASW_)/^O>%;GKhKl)Cl?h⚡36EF) &򉧶9iug7 hlبB /< %7U{q!VZsqq&du@)ZUƣE gp-9:ڷ;Sfݘ(z}M}R./ZchƲ?L,-ނ ft-]?~,G?9SaIo@>|\Nr(WҖ6OF$.lk7N^?׹s QohD%S@7EoVRRZ#64F4يN랖ݳ:LW6s潂曒^ƴ655N<pFLfPd/4^UUEk!UDwPq>qe~E9Ifv+bϊ>`裔~DuQ\. CI++.͝.<5m^f۩!*WF/2q";zjc)41߃'_]qfW_.ܖ2Ϻ'nii[=(dF%YGj F8JT޳7RqԚW>O=`HeQn5qhY۵M8d#dqOT|#O6Ⱥ:}!C9]y7fu[Qcw~jFJFAy6#=+4pyÚ`!aVգ!R_1^#_?xjzh 'ZZZTu]UmVRVhλ(;c7h֭$UR72P2qH y]& 'S9\3s?="+NpFfW;cջn^/")d`o _Ѱ JxCDUކ>9_.PUkF41by`)x+&hzEؿ|+ՄTR5mz޺IwVkF۰8|0i*dJIͲS6{ck2Gݮ^[\=jtirw+7l0QݮDYD1n[*6r6<s'h{lµç i>(wJ)D5⦲2i c Έ==3r'#yf&$ IDAT-{yt3[]9:>|&{wJոksg躓e(WsHWZ@뜃7%ľ'[ksi?IpJ{3Oc79V({AEX Ȑ{j59|fSvAɵ/%d@͍G OPŸ&xx>[nMp8!BZ9q'뉯aPbns G# I@t.qLzXa-]ɓ'9F"zt@G ý,]bI.;SP&WtޟeM3yi{GeN w2.s#;tXH4e`18P'2]:AYjf^aS<00xcΣA,)b987FBЋWHƊY:JATNd[2PDӔh_8!ԏhvOdbrYw(ܗ_+%^M+zf3lP9 13S,7=?kzKݡRmd>Onv-=xvFL|yy]_ehnqz9*\\Dxs.@D5]U"d|[/<5g"{1HOҭ5դAó] @vi$H˞gcN5?Ӻm^/}࢔Y7&iPb7(-dMpꕡUQV%5)' T-̴Y +;rC*]Lv E!xRvtF3=lH}{]\L}sZiPâ }\H@+S-taTNNzS;F Sn MeFAUnDp0e3a5Vx7υ6'| ɋMW1])̻#SRGJfDE蟝c3EڹHWkF9ƛMnW6 hԓ$hatc3qfK~sslo7˙밙$xt&E*|h7#)ܼkqC$>mU=8O hrY[6m Ͱ io"O財sIDV-B$![-{8(5T{球_ODjb$Z)t\_] rAD =sIiBDlhEnDc6ݔg@C| hVЊNW-LGCQ$.y޼JXm5"EluTj*}iPM1=ofhia2zkmIU EYem$yEkXt\[ە  qM/'쳟62FdFkh+tqh:Èu>Mx:@Ƞ~b*ן"}}Z"Irzv& p kyE ^zfszr*k0:|d{us#3O IZ(l.HM`DAjl-b,28}nP9~_!MG*@e;Cb N#4Po\g 4r"ohܗ%/Fl")b'd}pR? aE3z18v 4"ոT$jhAr46E !}LVj..3 n)u1˔.(\|*ՂfdX^Az.//^O1E!05K4^|3 7PPjϗ QM *TqNVžG3isٮ.>&3b$n1HQQ"9vTtVXYb}W4 2W)g#ůQ<PdѻLAP W䔿toYf3=֋ Om/dP{bWR>3suYڎ:톌<FݙSExA˦se6k}њAʆѥ]}\]VSl@_m-]M:dv5nn0bx^~8 }\ZPw]t_C Ms擰G!vZp޽W@L^Ȱͳݔ&JQ>s۷t_Q #p`pɛ&s9'iym%4E䌋B-z/Io?>ߺo-E@D=S+F79]lϪDlWӒ%mMeFNsKtV/24,):7? ,~godm9)fVbaB'MiUUl-_,SCϴPwE9C9,;CoXqf6+컛qxWSkհ ͡~PRL*rQO Ed'"+oyln7r~~62x=w*X zJ,\rڦX5 $89o^bxx>.n]B7RE% 6av4_"Ȍ"jBUs#,kp5Zt@A'BW.hq4`'`\(L3Ar;KY4,wQDOZ v$FAt$5]Wbd{& + \Ŷ& R6Dz$7^^||S9D҄k ƣdty!"Qp0R)E0! >_F%8>H*=>#xRO48[l N_P-5*'G9oۢeN{=Ao'zϟL&8;/S63lPqtdzPzt@{o_^+6*(,t%cYxjQn床Syl"Rd;qkf&|oF'uILP(w>y.s[k:׮U*|,RC"6zEu|oLp/^_c0Id*p{xclndf7~l=}iNQloR;˛܍'Ϧ7󳧒m7q|x"mjHfq!_4lHpL̎hq>eW*xr22xޙ }0&3^f|w#FOjNϢdlIh4o4QV@FTTz] T^ubїgxíƛx'^iSʷ>F_ rF+ݔMCk9[C[l2g yoFDPLJs6_ YiYM;z&2DՆLuvPqm^lR K A=Z M \\I6B!P٬.d5=&Q, iVW7Ȇ!h ah(UkҺS@fm"2Jȏ}Jll*;M:2ꋚ8؏訐-E|(k;]G)(^`E4w Mq9r6 mjטߜm1KܑvZד)s1jvIg1jxhHK$_({R'(F[T*nl4xUz'@ c4Ft_x$,Qhѧ@D Sۍcmk l`x :OޮZC^^˯1^cKݽWh_/ eQk|Gh7;8 X[#BE˚}wu}l&  H6 Zi$ a=Yܓ= R:77M}nONfrgڝT5)ƕ $HkqD3fL=v>f5SVws߉)nn&UT[=\^|~{ܯ׽5p;5&[_Ю4W1/;X+yVLϧ#ō#NǤߑ%s|xx&#>/yzjjX˯{64q 76 T`5n*T joTE'l GAdqE,VkEUh^O'O½jmإ+ j1vgh2 !/urj5]^]^7/&ISә^NZ$+.BoxwyK%5ҕƺfVYT$f=Tγ]X;ed kRI3-g1i~pYY[,Mwz}ey] 3GbilxATxW2װ6zwC``E˘ ak~w(i<{0qbӢOr˝WTkϒ,q53("qmC ]p5X,b*r4CvlJfѕV . ZVkgejQ3ds Z9n`Bp# ̴ݠFFUqcoz`4PV3[smL PNh?ӆjhBw  D.Pբ l94q%5MJ5/rԮN3*ҽLBJ}hfcq_L9Oni 4'&ٷDELv͚2=-(/  R,E.pugxkkW&=d<뭘T[e͓YY]斆:r&y䖦DzdC)rZ#Y*KlKl8}F_nZyed 0'Mg}y sEʭ\b)F7/.bl3T(4{xiI2&RgF4Ό WЎH&@f&Q%5js7 }Q B܍bD@ޘtN@~HɵRV˽B⨪h? fǯd ꪼ>5Daz1D 嚶 nE4fF凘32 j*YCdkEݩs?w =~W<MqxtA%wDxopzz.5\]TFRDT aߕƃT^-hI+zl]C;ɩLg8?餃a)Wq-u%U?};ZOtքc.xC UEuӼӪV܇}9Gti]60g1WX2xdqgZp,t{Bͯ?A^vO?ƣZцԪ_фP>Cf}z3\_l|9 Fd8Oc #K]?tMS`!71vZUP+apq|#b105)=?6Kq{{)~3\\}_> ˵UwDG"h# a0L0pK\}z5F-wUhuv8 k Ӵw>!Ο|ޙ0 nN}7#N1\ [P$]-iʌ 4ON6&v4k4R)ARR/6kY e1J\ А٤?~d$F\~ p{=P 紴ڭ=Ԫ 69#+RLE0*BefĸoEe'Gg7hpA'OL:Wi =C4V;0B!j)X4/r7y]ɋcWujT+iu\>{EwN5Kwd k\.q;5e_yq?x^ierMṶyH"_-Zn}\W9ou22?^?cP[;teJe 6ppCL>B/?q8ŞwUp/G E]SFx9SJ3N*&კ~HVԙ#ٟ.NN+4I JZpu̾Fo5 k*UtnygY昄֭t;'ogd.KBK؁NޯoO jR8,rP<2Ifn*Sļ)+Vl\8CA9Y4$r8*(QT6w6x@lܷJ~Iûa?w?HlyX$)&kWϱwx`,w7IO%RdL݉۬D)q97t456J:UCO@tw,x)O2A46mx9(+Hpx5>Z+ͣ 'pyX_^_Vz%I'爪MA'Ǹ:4?OԨ}^SiIvnxҴ"Ѩr xUd.90JU>Vmi9[]TkmT6Ezx;:C޽SAY Ζs4:i?DՒu[9Fáy=:{fOtvnZ%:ݞҹ,R;GE<A`XK:յ8r]1s\*gQVI_:%J oFQlh i~o=t9&ӕ1Hh|SL+vWA2śl<ǧÃ' WK-ÚmHB[m %sfe,-mS+ ?7uR?F(_%V|yd+7Q!utḱEK7Jjha]Jn9yVCS6BCveSܾl0B/PLcd:@%e^e"̓d7ѷ(?(=U.gr"mӁnDBJCZbث3ʬgĩRKllhJ o4Fm+ÝI:tUPumpI-mV0d5nJmsn*f>4Q*]=o-o-4y|֨ѢI=Cwu/Ch k|,֍R*,4DU\G޼0z tǭMcEqjZR ,o[$a6c W";]*2lJc.?OXz5_hAXg7$ K )uּ. XR4 X/( iK-CmWk}-I&^`}M5P'~zW[iRX@dFd .^Wk!>{$TrGm3x ^$ո#&hWOoSNcB PhtjJjRbŅhI!H}| C(Z3`ȝ[^HB Fש<{ "{4 >pf -8N-V1]\ 1:6nozƳv>.gwxv,nm"[0>/";v ?>4KC ƨVMom %y xt;G.PSRTYUOh1ybz'$?*py#0#IpzG888??|}{r_a|"4]j_NdpPW)_+L4MYDZ%%UAטC5^u $9>Z9jTRiHشPTVXLvZ\`cSZ;D j㸃 ֛Fj6NĤ׮B褭z! +ܿ@/ 6A`t{0 Խn_ *N`\zHKKʃ*`||%Zޙ A|c^# |A%)!LٴCgD19> 'Bmb`H:Y &VUQ52Y| ㅨ#_R=ՠ|j-sMIS>E0u@4w6]ړs"=i \LQXщm&hl!1_l PΓ$Miy(ZldSy7&y?Cb/OlN-$>'Jq{Vu)}fV/q#+\Ȍ^ߴ0 Ɠ_jbog9'^ ⪥]Z>4ΞNdYS}famA1@ێn,P̐TlD n ( $3P-PEGu|X_9eWJUV"%.Hlr r4S\Iui}K)9LE f(xkR/o jBo25vޟk s:d,d^4yuC<&=:567Vx9ٽF=w?\X^ќ]t{A.ѻșLLJj]/xiź/uH箑"0OPgom6X4,l7jD#oԺGioV4XmyIvWG wa3OR騿(*f2qv1wׁ2J-ST9HXlQ#2&JZ1 oS| ^CwpGh.-^QG\xݍK/,O?K c>_VhThidv߄s ͎zx1L2)NH]gcY/5Tz8MШ6*VjB:uGlffz5 D+wE)<PQsXd5OD aP|: :c A@p(cOwPEwT@ <jJDc3L!<+PT"l#)pMkՓ8lⷉd si%J3Wڇh7ڸݍT ^+`tlfJ֕oHg2~ݛ@(ߤ==ϟc>G^ l! 'AUHf=%w:dJ+M l`Ѩ &Ci'pxKOI *ZXjꂞ+L$ qt>?"z=AJw<ˋ hVGO}\\(?ǛHv+r{5bCɡŧ|*rCrxw#LJRАvY7r8F[6)\m̔ee& _'''U>5f iYȔ7wCTl$0})y!?`~%odͬqGTd$ZҐ[.xU+(LЪq%Rc ]NSvCYgVEiQGO0{Ou1NC@{7j1kws}S܍8Ltj8>~"{C^Ec!_dhIy)5f6:ؐ`UWN.Yi BC,,ŋL{En() †JŜ.TRK0MVn["8ؔ{10o!n88ܗ Y#~0А {u.dpx$fpҰZTƒ{tz8{B2\\]Y85RIsF߅46V1}w $)0=,VCRs"Ҿ_(ZVEq^6}E]8I*BXs{EZdN4;59qh# h`ZiQ,%};$<'kp:N=Xd9煎ez65C%&^ sAe=\kVZj@Cw%* 9XSߛZ ,oxpu5[Ƽ;ozgۍ Qdl֦3Ÿ `E3)+LȠU T؀w t%*vr]Krn,ߙKQbYΜsq.c'\yf-LCZt |}kWG9MӑPrJ" Q%,-'ŴF0*@XE¶W.4:gt`F`Q:ԭV:tPLO q׽6_q ʱx *)ęn=tq臨s)4w?&;ŘoVxxxO i`1"kA9SoHdt YG6[\5Iacө؄gh!*Bppp˛+u$Dk!Z%%#\\\ɔ4ij/f&ϕ''O)Q,i¦օk-4GjrHu<|s# LޗqΈ+Cε<MT ( ,mܻNޑ TXf`=#m0Ԫg2c!RjLvI\͓Q1I "^ib)H %Ntg`9;ymi"=jqWJ`\tXkxi66 E˲}9e [*<>Q]h & ΕSَ6 /u:;t+O{EwM+k%3fr69Kp"&ę0V_߁'g06i3]8/ct0BXK.?3-s:+ i^6U14 æI*YJ5GAE]\zt蓾EgF9Q;ph}i[?!7L}ՕYic$5\>2pԭ()mݪѽߚ؊Hp-)~`"w}[?/ń0o\1O&i1 W$+aE" ",fW2DᑠˇѨa1_a/l2\ڣc>opy6G|GGy -q;8H`< +ƹ&bFĿDєžħO`2 ݔ4L&MaL%*$I2֊1}Dĥ#5̕ ,Әk.+ZmƩE,D ż|j@faq>p$&V Ց?a-^buD=ܻ/tFsɅ8:y a-&zulghThhljG ujmy^n/_cXsA3Vdө\*eVօ ݨ`1c-L$AXiF7Ҁg\X2qT FE[fG6hfZnzE.6ۅ:J\ArJ*O}&O"56S="Q*wRD՚ e(%I*M^Ri gPH c(A+M66sehQBu Z#4i抚@ ^M_ s.zԳs`)2X=/+d~Qg;MIklKӡ3D\Və^/~ Wdž=8r ,cL!kD3,W,~7v;iɳiuŦ}/\cdTSfb fc9{HCj="X iZGa~>/N _}◻߼2ٹK(ѱg|4 $rpm}I$oх˕l${ے2vŶ/Ӆo./E{:>R("M/CO0nx>7i'5ܘ2Edf3ՐFtJsZ#PDb[sT͓|?8 lS3rټBiT<AAd΋:YÜN ԥFaQT3"]CYWt b6|t*^\^ο]m5R8+ZfZ.jk裪&= #,nbJ4rx7DJ%& f!j{NtZ 념FIsFmU(UMJpsqj);N`4[=;9$P >G~ h*͏hFM)uUtf^ pf"ANN7zh:2G"r_gOB${H3gBs†K˗X]m64)4k yKL.tI|#N4!R9_ $j yb?B=<<z"Ӣ?אI=7[#hwC .z pN%/R,pC9'Xh6_l ^2E Coh7O EHNb7K:Fwjd({9ʀF-2m.zV38BElu92X!mH(PE= ˍ6 }n]1-n' tqs1MFz2ԦKǩu T=(>z(xTtM1jXF9J+4-zN[^)} xfG?F)7G({JO"P`HW@+Z&mt&Ɖ u}lkNojsV4;}l:s0k\=GqUgͷ, pَ!2P?{~s mZAk{UK$C?? DsHS)ܐbjik f8l*bDTHV¹2b!xw-5*JR>h@޹ 6kffk`M%4$*Ej µ%Vj  &V8ݣc7?1f~% c[xr~__^5&͛ 1jXF:lL+l>b6ѹT`/q%Q!←BhT#|*IJިe&rҔqZgQM2#sς\vwOLLӮH$8>=?>HKrh1pqD3E#*lzΦ.؍0GT1qMϩ<Łַ6De{h0C R:zY!p(lB=U L*_2Ngu!g&KJ2 b^rP6f"=Vû:MJM(͡126oeV+5n@MEX)21,Qhp %S Zb$MnOrJZKh?tfh-o)BIΧ,#PJNNag ;dzk,"{8?VGFVek]x^LJ'Oވw=kƔ7Ͽ|>`x-V78;;p8!i˥w>=9}^sl( J6l~>gëׯu=??CTx}nI5]pOCy ސ<@T_|}v:Z9^<&͋ݤ^tPf0VM)[ x:C6u4I>Dg_|W{ޞPjW~_:^`Yf0?!Ϟ:F1c:?x7p)TFp4EQot;GǏ{MݬLH%"կUaCsO w/ݬG{=d DXרP*:=*Cb-LP\{Ȟg,6)MhBBs$Sj٫÷IZg.pOSAyv~ȎFCAzlgR l)o~n"f [r]e[D9!E4&|Ի3E ()\km__O;+%S1,sU`GZδ9O4M\N"7=wP`yVxm4J(T5 nÙT"E |k8B+jN;5LCv4?PƁ0) hgij*Iu(p\Ӽ͕ۜ.ecPԗ3}U;EO#k*٬D!Lz"w,伈3rD pw Bzͅ˧"ӱ1<[%o}e;Mv;Ei6qطJw5wt^lB"s1,c֤S#2-Чze;Gl^i=rp}vWf9k*EP|( 7oYgIM _[~, {n^)ؼ?+5,s)йfٔ׬1bXu\)fi]qkKߙ99MzvXK4wN۝ Au9KNRVV]tcr#BA$?*ғ:m2? -(<]z2 Z> Ñаd3g).V C $W"R|).pS^^I ۦ>s67.ANpP)KOz%WZKA64YbA#4kh s.ݬ0c&|E0;t^E@V92jx3mc|q̳ZU݃\PZtÌhNN}h+5,@:F|1WqMp[UM9alMKR&#\A090]jt"+ &5^Iwf<\o|mnbВN4qH)Ԥ@7Բu'2_ ˭7tL ["kڦ`(ZWj.׫%N[斯Gʟљ 8l1AHhPIx--t} ٮES*2,4LŽމ\[FP Q?h yrnzWK{76艪-hl7#L6pp^>/x7_K/ Yݠf2i% 7h7s7Igfnϟ}|/H0ziu&N͞.Z(V Cc7܃VvvXLU(ϗf ܽsAI/T3* )ԦvZg?h8nG薞8GyS͟{hMU@7"u-ժ2mpVg9&,3l1c43+ dH,vUX=<=6/9_=; j<KEƲ6(%9 L 2ZQK Gk+)UauMYטqt$uv'f2&jc?o=8wsL^ʙR5 es|4RF"ԩQ{!%\IMBm>nN"{>)82}k5_smiHVxާe-;؇Kro Q(^k׌*^}t]߻N_Tkb 641N^o=se{2]kÀ=)XBL3 WYE9aaxT;Zb#oS'(H8")l>GҍK(9 D+f bauݤ:^#XӎP, ,<{w/V#di8d nQB'sE GvOn;;:w.O|IW_ow0T@d>LjZr>P3w7p1;Ylן-5kfdpLnB80)D~ݪ6 :;S{,ydA651ʥŴ0fHZ.fz>&cȜ'2Ἀ0Y$oBI۷fN&H4r-.*([w>:ŋ4J'r*Vve)b<|n"xz>W ikC}$3+҄Yt JG3~ IDAT`jZ7E/{3W_H:~} c!e {ήquu3S=?X(gPo~ ř˙ݿ-9ާsCKwpx/sCLΕǛt: ]PߜblH'ODSzqnr/mtwt=9Np/S$t%-t= c5|QVBa1-ZOh4%-ьfϘgޡ|c.Z蠟G{ã{OuX/q~v>[AV/zYϝ PWTM=.x^> D-b#dY ./nXdҾ\kv:=!Z KRCC1Q=lw*Nok;hQ0-tyKb9,gg>mÇl`YE"7F°3Mr>3 1ʝ|#Qo[aͳMi뼑pA>Cr>qLtϢ4#j^)INPTvތqnጨ&&֛R|kƘd]143: `yCfniK^Nb,qX,t5RzoBJY7cZ50.)rGφ1`q2yQEڨ~B|Pi(hZ oDXcb!4֢JШatʪx_>8)y+-< X@-P_ׯ:2)M:HՃW *Gai|5n>V%k j𢌱Pe]9/ aj+3}.R'aSz~I_CZɕ{6 VD+$/!UvM1 ܙE=2+\H}biܼDWcxVEVUj%pDYsk[ˬ`+Fm Ged&6>LRoZ /2IJ 秧Bh^|DĦ+alL M<Ã8 /89L/۷189XNvpy+  nji/ Uַ#+mg\P6n[[۸ _|mPVFzkJСt$ڙgEMIc$ÁFDcbFLY0"rd~LV:56qw^ q|Xӌ %HK-7bFF^, %c$bjZiΊ^;MxeJTXzJti|nZsf3?XAL9 0 d,ݡ082/f`<_ i6I<8 vH𹌍lgSa4X(q㳚X~.]6ܥ4GmF*ѨbCLtwu 6m-%K0ҥ ߳9RjO-ײ~6cF̫-܏hڴy&Vm|4kxt&c]~tppxE֐o"tg>|ftf?D(9ݹ#cxDh} '|_Et6QΦ{=9;;8C\Q9P;BDn:mxa{wOհ|Bз]~sdoI$5l92P_Gޜ^h_zh&+̦fHZnh^W#MV3\ dFiѧ%61ϖ1 1L}tl2W*x[ܾ{O=EPaHu,ph"f\G^&=5MgDK#UWui(/ '#!,N/-^av'^M,MRrs->#:1),8HJ+~.e_:$PsөYpUIoK1s31$24,QLg Z:zB$_Yai] HD [kƹ͗sLf ׈+t(5%34xeU$vII lR:ƨbpP 389-eBZ;h4 ).JMQ+_hengǕ>5~S{,Rʸ)9 wpl{@ۗIt 8rך\Wr04Jn*U+3|Pi7|Y9yԪL tk:6_3l{0՜".W+l؁OyDFLet\|m,smWF.Js=9R8ž +*Fm Oő %8eNm:sR"L)d3H{1$h[p?EuN,ִɶ:hcy$qzrha1$wft%JjAs3]x?H"dZ%CZM<95&DX!ۤ籹 O~YCz||IaU,, ;✹nِTs%5Q'Ҷ@ + \#&Vj it)6tHvd2P^ul{I=;{;BwY\N"e,[bwcK:ԁ+ gfVԥ#-ySྐྵݱa 6'%ƓfBkERy99<|V{ގ]cQb-= ozVg 4-\_a1Ff(ĜpFVEOqqb]%"iv;}9,C ON,fŲ0\)DE'?sd)Z1\/psy>6f"d򜮿#$gSi ˅1$hvon0eh)2FGg˫ Rec;;J43VuN~I'CU$9yNZ|s^tadR;p/&nrIvf8T%}(,K@d*Uu>j?>'ŽXeal,HeVepbxy~`!Z.Rn¼sd?fJh`OybME.M8%2m1,G2W1/Q㚻F՛DrǽM[nWuQ:,ܔ!]y<БÎ]|OnXHdafUriYWn0J.Zԃ!”! ONBNj}9_`<VZ5 $OTE):J׉XDM骺i->(M%=dMWl9V%SsβbtmMvƂTZcq67E{"b0Jd8cQ?t6Z=ѩ;T4΁BzFZM#EOh57}<LL )1q:>gcsgS qTx3ˉ]}>5Ćӳ3l_~6V}px??{$˗x1ƣn/~RE%跷O->ƦثqC7oe6W_ZQ5 L.n B\KwNCBfhp|瑆gBC2Žt^b6wE' f::-ܺ@h4@ [NԜվbkUi@d"!N2C<MQ0/ /@+޾뛑=\]_k?ܽ{[9ҍ~[mA?"`Z\KؼY cZ7MQ@dHM 23SI`\ѾLWcccC !i+ 4XŊ㐣Gm׺B }Fij`wD9n);UMI@V G0[s*fٿƐrt5߿:l kܳoyhA\S7{9ȵ:5] YF8 ڮ׌\/;5)פiudSpY_GU-83 zjvg29Tf0C5fb;րݷđZT=wtqIԺڲi? Nq6k(p f=$>v/4E>ZN0 _a= .sw5Na ( QWä[}A{ I'q c9ǡ7d#p +uWGZ(?uփ?cӨt\Զ+2g㣈2 Eߚ^dZs&|H; 3v-n'Iptj7gG?W@c 9)ۯחXK*/3\]-h]`P |>¯^e&ϜՔSI4NTq,'vRN3 vٴ2 1cdz䢕ߡΎFJR*8c']}S? dU$2I'?s /retc`bB'ӌUnx=T$&.qG6,BIqTMupFlfA}iB=4bj:]1Qܑqp k^=|R7`QWl^~9YSדpݏzA)MG.~s%9M-^;]ltzXܲLFs4;*d=mkFPdHi@a>I]܌Ҥ?|1}5p\ǟf<ǽOXqzq|0]h7jvw10VEU66CDg۬X!mX14HzñF߾Oc5/G׿ <~O"EEə2Vyݟ? u=4芖ͿuVu2FErm\(OhXήF=,f3LG(d21ж\9Nݍ-lmzn{EFܴۋr%m꣥WXNo$FFhlxy_ iј/y6]W~tn."'X $nՠe -DJQ9+z_A#bNԻp댟03djGx!޿;k75Fۛ*N#h{Bs5"j9>vSvˎ\~_NsD,PВGPB{I\?^U\?0 =?5nTm o?6_l^ǿFҜu lqcQ}\G`z k5,фhNġq cƕ_ڜPX. }hTReMn%Da**ge V,[\;)JQ+P=3S~(V]{/0\55. ӊc:ʐkx?12zX5Ĝl\6,|mE(42QU^"*xq[)Ͱa)hb.z!S^b(;W>cg2D;űTƸ|>V&3LpëX΁q3i6_N4[X^PF\"5X u+xm_JUb肆Me\Qӓ4@ ! "2 ٸl) ʀyN*Q^nϰh& /+m-c:@q/"vOCx`Y`GX@Al]\< IDAT."RիGDq-0kwO=wfⓓ><.D_X,f0MVS>B"k١ su{ZCH{%)>\S9 ?~=ӟȑ8nDZߝD^-2Gzyh#2GLq,}hLGk _X\Kkqӈ]denoKdPA13b|1H.9T[-FM`NJp- ^-gX-gXRvPƑd܌EPjp !f7nz/_Dtf3z=R07vpƃ3_b`idE 1eX|֏E7{..FK/jV5ǹy Vn4(Yl6֟FTBk%s!E kkzې>$%:;Ph?e\:p!5#%(6,ϓs(w0_FxcJgFg5j_Yz>zSGLfӑOj xkª*5r#5m+PAz*nI0e 23ht!(ѥt3քR&0T (DVڗf< fP潁I6Dk^KjЌ(Ǯ+ۮ:z9:EԕxȘ/"QG22 !vFQ1h^+.QʵFפϢ‹XOe-7DTYkʮc0*5'&@ *mz鴋[n<MGY:΃VMzf Q{0\tlx3-Eßc=cTX?;jKafl/6~acD,JZ:-6pT%S C@&59g0k\S7O*k%: DK_@{ bp_|Rb^ӁD#]ɹ!lѨ$T4g&l;ཛԽ;S: ly͆4߼{il >aC=,g3ӓLk;'r^-n6e\mW(^~tOs(_ѥPݝ- gʜ Oe([iF^!,0_ C$i)DO;@Px''8>:V`2@p.˅$jUNuuy-U"ya>aw_ 7KbXeu6nYϽ)3);Y⴩HA=}=G7,VlφxwR*>>vw8m./hrCht2pbSJ-Xq-_^\Z}zv&IĝL45I7c~BN6\4 *v6A{CĎ~[Haq)K`lQ`>pyv)9\vSp.jiNd~nP QP9dFzNNۈӎ ۺh{~k{ Frevt24l}46O8^Y ѩeIurF&bR#)Ҵh]9!fN{K[VNG6Z/`UzIp],4Ol”rݐ{{,םoB:56j7bN5&`Ghj8dž42nJ'q̮@]Chdlm>%vـ ߣƱgmpV[Fke%! [% 4fgkM\Y=31Ӱu2a`1xTe~}S=Nl@ibpV'?yu]YT6LPZ_kS4vDQ#~.eVV:hsΝ_Vao:ܹ[ Aw I݊ a}438+&%hH~P8&!16)G0l?"_l^kLŦUILښµxn$@μq] GdY2^S׭;I0::ye-j#[BW3Ұg<a9nR.䲬EB>mJ8L ql'¼W|MNGTJ[-fRN 2 uo%MvaID9S7 C\s4*3%0r399 Fv3Ė)lYT)7sWAo$mgB0KlmnKqB y _[O/oWK ;4x.n.)S~MLn4* |⚸N4Lj]l5iut IGnD) Oz ه8\Y stzbɓD`bȰe::i͟"&43şOxpohM_^iS#TCԷz[s|}w7qmˀ)|D1[ΐG܏Up=}:8>8`$|`U,-F 5L:Hۛ2ab|~!:K0#nE4g^M8ܿ%c<)TgDk:ٻcz;WX03gmHxIsؐ2BAlmg ƣ!S5WW2Qz ޼yP 7Ij_6Zm,޿x2Ùؠ='鷢޹{WEQ*QD=|fvFS@y9[M 5>FUu4 nmoVq!|noho`1ʆfK>!lTy  rod8ԳBB5qԧz֐#ql{.%GWs (ݐ?E7sY:goi myAyVF4uYa%Kcehk lc{w * UjTSzNta׆I5ߠMLhk3Ƶ&R{_FjG@EerWu![(vE,+ +vn\Doydk9sc8N7٨U*Clbԡ!jlU7N!b̀k?o"]KZ hU3[!VμM˺K 2Zn 8F {yvtnhl+ϛtx-uZZ4NhD T$Kfrrk(PRdMq}m#:  ?o~& FtF4Uad,diyэ2lKz]Z; )F4lK;1 U68"*ČBb5#71_/TkҡXHrZX\=IugNJnБ7VXF!F;=w٬t~HՑO!E.I/_RFЊf4dtYtg,*Bڰt4Y괨C\ aʝkejEXnFB\S_&-|F7wWfKf+ܹu EG\ 7: ! B>>B0|łk uRHRcv߾ƒߕ Xq=Je3G:=&C7`)ujO@Vg4Yf4j_bL/fãs4&DQ_n,)-ltLt^-m %OӖq8Vč9\ziH4:98q.m/ Gryw!Rc7x}=ЁsUDb"?e㡙;ogR&8^QmMx'~nOHfWyKpt 97Ԝ cb[0,HrcdUj ?:{ŬR hI HUHC h}JmQh KTcgu-Q9ބ6$@gZJήk TZhLJ+B.gW.!ϕ~Xwo ݇uEYS,\>I* v]CCE&)_mXl4i( )˂^I׮Ʒ2 9y4DDpz!%6ȢZhٞCҍM;}UMB?Ԃ2}yk5=Ӵ, z:5̘d.\˽v=BceMS5S1׾8Wۇ+Gee5~lAsb4ḤL (yj>2MYtZYOI,2_j Ms5TFok Me/ʐzH  g35Gϒ9Y$Zxdr 1-N^LXB'}Jf.`=y7QbF i6RR͈>OYP1WtPgJ-7犫hwV4C9YNnc>Tt6oaxsbNsmx,fKbEl J ltw&Ux2?]\g3R[jvGΐD};?ISGým<]QGjnZ"N5L).ט.8??|>D-1 ܵ kB3"إӫx>O>>?+-jsnahǢ'cDe"eClkM~{ᑇi2tY)Z̫7o#Wjzm,9VgLW2l#ÁNw i*mOWh62!\ӠɊ:(bnp(2N抰N";9T"сYl i !TriQu2Z:-#t _LKуiw9z gC?b+JĚnGkT椡+yn95I[;9kd* Qwl-I똤\En̤x"3#9K&9UՕ'BE•ѬUtjFDiPɌveװ[Vl:){S̟e4I 2F(S:5d̖DsO|?+)4rYZPGrQF1 5ÞQrndS9Q#μ{|ـ3pKwqCʚq8#* 6cEeн[Vd?3~ 5}pmWutŨXUe?{\>7!ݾӢF5[7}7Qp.fۚN3P0Y72v^R 3 ^{6z#F_s4uPY&ZnQ'p`yXKUZrlz£mvNӰ |-zI =XjR:XEL?}}g"*?l<5q໬DT40jjxl "ey[fkb9r;(:tNhVe=SH  KwVg#ݐ.) 3:cyedQM:J#lh"Y6`ihlj6ܑt6{ K#OPX`Tϒ.V4w;su:^$TSsGMŔ9L!i\{D x?,_/QZ$X*3bTQ 7" 9E4K^_e)8FV Ns{g/''BpݹWg3D7j8cwNh7(y6B+ZJ E}zwzl{../t`??6>{f/;E+loou@d'0ӨfKo'?ֺhB&[89;fV7HM_\mYJ iEi^4~;CltfjtC IDATy"7\ 3FwkllZ\ Eۻ{M(l V\״Yq}M*6zDM瞴aU̯{/&fK2c.N_Wb;+5UbUQf53'BIOYiN}\igWͨ~qZ]יUȯM)AĚiF\<+"㍦bOQ'MJs?ϵF U'.)Ō=G42rnˈN޾LQ۷jj1&rui!o.ݡLjACC@ez M.`%ݐyC0*k7!hݐ k`ʭc͔ M E^oׇ&aXP|s 2*='_'8kޘzm௧|aQaPp1r^2DŞ?7w)@mQz]SIgk³}Rg?!sks}6Y7?ϲ:+jUU!+*&j\zQП|4X~vz i. +#GrIex No^g5W ~NKFOY=ޣF{Whl1J$tqngk'Ɲ lh'm4sW tb$Rvn~]Dq%:]`wc_cAHo?nh5RN6 bLEL9N|gX[ 4-0Ud%އ)V~q|xKכӓ|7>ݻ+mՕr4z,2961g>tڊܐ#^^s6;2q}l$ ?ppt"cf͔.cDqd`FzZ˅D!ѱBr5I^d1? 4e0HnjÆL/|M-҄e'ʜZH\iٽMGdp{JHZDffTX=\]/tVȬKFQd1LZsg?Gן^ Ơ!S}\Y5VYyLnl3js&Yf^ _ވi#vr%Zga 8r!kz}ZoeV7}\;QeF5r,R-nBsYxs~;e,D#U Q"}e}Zstёt?+H23g@=FЖ*rnhZ p4  PaLJ'Rsg&v Ynx}'J*yp,h6tqzwC )֍n \7OSNN(wְ?[D6@ZY]Q>68 zBR9PXQ:y 'gJ)5=-C6nLu>IpF5(grO (Q;aZ$Gq1Yz&LiL¼s$WR6'"->"ҽFF?A[ %֠ +7yR`@wyla̓|YbaHs"Z]bF6Z"\BONC Kn)[B`飁O+im*oSE@Ld с!077`Zg)^DZ墠L-PkEkD-Usk/s-4 5_(Ee-mDʆT6DdQE?WBb ^\&nrȮGqJsj K!D>Wy^ђDV>N*ZTj4XTSfByW/ g+|G-1'i2vU,qtmtXS '27Z;6h=ܹ=\ʤ|q\ucnft{;zﰚ=Mb,͗vhUrUH9@yJj"b-ts?臈󈨾|:VVXWz&ҍ$vebD9#՗ cG܅SϨ[h4XOp3Q˕4񤸦e 0)w\Ty_dKOdtEz31w Fe1O:5%#.DiF|anN:S71yS, t<[ssBTg3fm1* mcb1fM>I| A3W?@Zp\Ǘ;xSlLr&^2rEZo(ʪ7CMeVLIUEkz uHO5wײՋYU=MT9U5~QQ@m(ͫ!1~ǹDXQ񆡬8Grlda(ro͌P}ڹ3gQw CBrZyh:k la8kv NCt \ 8 VYw'"Ś [S~o)1xb{ng hFk{iz~vSԦ@3f@S5u-󶴇BԤɔ&c\VG(;m47((h63#;B"ds' EɕcN~MXZ_RW-SXz~CsԲnt6&V0DS{Uw)K֢@nWdP`s&iuXqDۢ6˼4˒N@  ݭO'KQ[3h1_ruvi6Etttgh0g>uŧv̋b6J+"sS?PZ9ݛ-"ns 7d 1`D'd1Y-ק'~V ?gT9d&/ctu3i|;'DyÝc[:xuBF4tao9V \M6zƋ3A%svXk/LFW#audztRe2iK36n?g_kus>dx-3!QҕH|vz3g{/GR|޽;׳O/ղ23VLvC ; fUl̝R6y4'ЈV, w/0vv5~YsmH@&&~ejWi)HL*Js)obbU; f/ n`4%1di-%UH>ĶɀnM@>Iq5߆vp 掌@RWfQ:!z2Js+;q}i%k8d:>G,#bV|<ٙȥK_JSʼ*b-̭\XMu )2(҇Agk%h*M^iEw6.k$*5\Wp}$԰? %`IZkyLR b]иXV0t=k& Q+l>}bR0jW%Q-m).D~#@+k+bDRL64Ź5U^f[[K˹0y4RSq,0t.טtRR%s%6ƙ9aH%YqiOc6 4ƎUBV0z&~)2b}pô Etp3B~ـx&sxΆ,s`t5)W4QDY聶IeTmNZCWx tE%^o>]ay:6[(3|{xpO.m7j,/ zō7a9 O7[8.Ȅy3` ώqyuaoM9~>jnr򰅭kwYKt2t6JrM^%ka48joȦ8>lF1h3"u$6YKyd~_Jh2N4ܹ}.v;"e:==AWU(TV'|p5ӓcquڝ4 [konn`q\ESh}ʮ m:͖Pvܾ# |-lo]ms .\ɤО9xc\rE!|:Oul6Nћa2@#c@3v>NN-`4Bù`x,iltudn.i*;FZD />v;M[Bf':-%\1CN幢8^+1Z͓OSk4>j\p4=QSUF|ƣREԂRo8tAFˡꪠ4bf1+5A<^NqCclO\.uHO?.{Ϟ?+2.҄1^fMGԛl~K'ΛN35nu)E:q);ujX܋UU<1Լ.y#,KUӦj#E&a(rAR2E4(ŲҼb쵤~|vm+54ځ stg2Db#5FIUn͉4Jbf$ 8p!|u}t!."e94ܥ5P1)e+շҊ ODE 05hBֹ@‚\Y9o(-KD՜4Vú416d 榨~ NgoܭGWkk_,b:!6&H+i0:&`z:a2bX%2!36~n54kyB- 5(ճj۬t`+5زAVuT6'lIzӖ d|(r_?\݂7Q>7~_$V!/ʸHQӗgk}+͘慟Rv_WB[Z^I*$iBQG}Q@icaafa6Δ!ldқ)›Ë)j.4z|݈4E:aY',ê%$JI&dYRKDRhDPSS,.P+uDoToeB4ԕ!/MԩJo$UOȚpS/Bpqah,EtJg!`>h5phޥ%i|ظkud&N//1%Cľ^$IݹZ6 2[u J=۲x\]R ũοOpy;ư$(&Xa:@;ܽWh?,YXB9#e$F{71φB޹oѿʱPOF9qu tp7qM\^\PiBKe+ ht mlnl{8::&~,:oPo\zKq&D i6ldTX?K1zM\yۻ88&, IDAT[mȵEKK(?^ Tk޽{ҰQ鶗,$\lyh;76DXssVH 9iHbRX`  zz{q->&6vpqٗ06ԥy=&oఀRk]ҐsWX&1Q@խTia\y߇l˺5NK/h.F4|N&150Jͤlqwi7nU_lDȱacyuJ izk.sUsXhR(qjFbZRA&9X qN qEyĭ4IKSOBMْ4a$Oqvz9"z+&T:@SB><&& E,j.AoiI`fZdsB\j`~gO^ZfelW";2F4j.8܆Yl*_4q-; tЊ`&IU5Sm ,+m$xکDEւ,S,QK#qp .%Z[[VC\\;i!9-|o'AZ< Il)_-QY{pj0*5ډ1u *qU5T0p f+%q1{x1_ Q3ň'X*lNاC$HyvBFaی.uא6VWf/Ąū}`^c:.@Eё4D^ 4IqHlDit% ?)?{hSo޹7`4ծ^#"{EprraC14.hkX_>|۷nQOqr+k.qt^?Zctv$XAAZu 精&ICi2Ä{+ǿ^<f9.G\:s[wnRu{g'$ [% QT"8k3U؈H_^Zd|%ߗiD `RGFPM[ ;D}#FoQM8pfd_ m_ aPSܿmM|+4;> 1if~Q\jne6M ꞋnejT^ٖEڰ&a#$̖P9oB;rz%"je ''gϑ.texFB^"f|F y"Cf.( m WceZ]iY`ժȐ.OL^D@)vHr2FH-U>hD)4<Q3Dۆ2ؚj-)c)̠ܨH!3B)BӚTl#V85oHx; *WH$37fQc#RIΜ7͎?[ #! ]0/<62 d7@^h> <"uTirKLh甯c=e%'4Dj4 ͺ5yT*ң/dh!"/Fxl;B|KDͨ7mhja!eQF=Xc` 0u7jD4)t;j!G&T& 2 ]au[*EJ;Or=a+0c{&&A?b )Hmpd&Џ xXEu cCjNw5s).b{7Zg%?<tK;RT m?ƉYqcw8fRLI.qi4ѮE- 9ֆfKQJ+& yƢ4;n')IX"Z>{D-Z&_cOM`Djc̄%MmiиzҌ2x`̔Ń7[T2)0/3 1i}Py YTDu\yA'}A8MecŭUDF-(Bƛs'`j]pd`; '!ɋ,4Z$FJЌ06RPr!uBi"EF#S)XD]mh FH7#}=|:/@kkx;g1/g>w[wkS<泩d'C +JV^SIJh^{YXn6]͏Ĝ34\B9=B+e4ON=TLbHϞ浱n%3go~@XJ#\;hVzBc087QYlr.-w#R!/kEoQT>~(Md?7t"_kkr=}?kw{6 ̦ Io?/[aiiMxx=l/#Lݥ- przoE+YCgy:dbўQt.Sl'gjQ4}.Щ˝PQ?tpgcV3AFW``ƌjY凉QF-`k{We)%Hw ׊ N~@)56G/T/_V_{Tq4+S4uEPyi)HNa]y^ ( &~oߔr?w6DS gp8RV 9Ω|b)/e3̟-#]S_ɢ6OMPplL]ze[: <杯}ʜXWDh9l"QWLܵ{|)ƓyDcJD:s/0вGѭaS=Ȫ :&RqEKh~YE!ilur,4= QUÞ$BiTcԡ$M:ua-h/c$Hz2n)"Iv5/k7ІGݩA4Pr{}haj 1R9veN\ֻ!z.H nL$ʃD9㘟(vpF KU?j2HF.D=ʨq]+u ό $<]`p-&W40>6Mw[!ΆCUSqc:45XeZY a 7cP=CuD&>k\ѓ5d0}0eQA}pin52%ҡ/@]0?(+j5(LX,P=x11dWy#g WyDkt;bF~o.Б_ 2-./4< 1;t#RIl @5c'B%<'f>$52N/1-sE{Ʉ`:^IPc°݁˱@96o\HlELBR5E6YG"u|?ϱNp$U;C$i4D@{0[|,K$A݌fCI!Jdqkkh%&We%C4Q+Yt/џƤrO48r>XM4m.FBh 6Hcze*lZWfyF=LltzL! Tp^ҖvgZB2Ky\=Dt^Y]C+X 4ѫz@є&bmm8rCfЪSP rpu/NY5]@=M<5?~&A**JX:nm_w޻}L,Oجa4NφO=c4pn"Fchg{_|TJ51R"MXؔk=L󺼌?~llhC::<ɱ4 kr=7V4rPd`Vd|nݮ[,ZZ/ Νr&K~zs#}1I'}1"vi}{7ߖa҃'+ ?K:(" 3.7pw.U6lܛ,\\\ڊoJ p= $i. \b\rq\AuI˗$Y*<؜o,}!h3ch623pt%[?_ dmig|s;dmcumC |8 " @m}cNGb֮a)#&"[F@zsՕ6-<_lj!XF˨<3tvpFkV+Ѭ˵uI0x,bHE8[}6_̞H3)JpM 14M.&,g/5t?[n?ÇS޿/!-jLĕRfU H SYJ!htZ %&Tkjsˎt@Y%JS c|G3Q&}h92yx5IZ<8x&W0G=mjQyBKĎy4iŏ)|IQׂ\g\Fr4i`YEg)Le!!st 4siߢ`P#҇ uշ&/uImyL#4jibC3yY FfCn4QAQ`g ^)\Yf+xEX|SyEv1IX|1J)}Oz?Յ"&Muڒa uҖu9?-l!?gN++[Css\]L@>=1tPu~v)9<ӒFiBnwֱw-ԛ]c#Գ9:7Eflj<È".͋e;:xJhnzڰ *9DcK~(1%4S/7QtœϵY}O<Ž7K>ƣĢlma{knɓ'rߓ)o J:&ZڔoŰǏnݼ#G]ڊ ׯD.1H"޺sVG-sG_ q41$Bwy3]sGz> 1:$c2d<sW!q)f#:݆qٞLs'JRMTPѼ@w'HiLA DTo3RSvM&H= j%B/Р zIpT|f?C2%۲|L2iT\PՍ8=z"QβSdqCZxn(1u5bkBz)ȩ␋WWmC0]~m)Ӯ2x+DD+jN~;uau_u9:yo:6f'/U1kߛsӕ2@׺ܮ׹d2 ^ lV d!4 b#4jCqqOT!".k@kԅn H%^`55BۀfNT 4SOb4j@$&iqh^ͩn2chL`S5qAjRFC mt.MJFDU@Id/C"SIhgOM (j8ʰՂV-V7;u YBc}gaF\$ 1iOm7LbӜ*}ڥӆOU.O/5P&>7ʺ\y343+sO%aP`X*CJWǤЩ1-3lfҜK.}} y>=\\Ɋ4$bOG-ojTm,B͒l1 e)%Zi( c J5U.DoTE4#/ձΥi⤴uO* ݌45PD&ͳ m &[ ShD_IԃG1e3\bVo`pT)Le:ie:ۭC3ԁpGseM TsoM-ECXbVٹC0vCF@9ht>4?-tJ'hL0BOp3GwOT>jcgayk8:Hňù:o~;7 I37qy~NLu.G5/HW766q)ȉxB}oNKstFVZ ܻ{NWOwޑi?|PG A"vwoى ?y$jLrn>ebeJ9 ( -,u h;_潹wGWEn*ڍ8}=^|k5;ouAg9ML&|F@sc, >{;my%]2 x?~ҲM4{T IDATEftLdk`EJPcSAIitKaVdu\'x5Y+QRS3; h6 1>oX^]B^>;rh$nUSi3 Od?KgQlwqr:J/p3/Hu=M\Rw搅Elif~7ofSeBL=7RJAZA܉]izyߚMKĄk)͜Zy?wZ] E7^3s)=DcFd~H nQ/1IX{stiؐ^o50̜KRfhǣb>j[)1k܂׎&sD Bgt؀:s˹j:{WEͫ5dQI=@¥ikYS]q]goyJk($2\,, ue+ŷ4U|4EayO*(p񚇽;\/ ;iFMєʀbn^2=AwJ }ұ$:K~A M DCp޵?Ӫ܆iF[?QPEW6pj}6|vLGFRщg:(L;%'H@\U{OPVP5GXD7j^s\ ] na$8X_ӳ28pntVm7=BTE)h5W0IñٲdHoNR&f#HqRex'Gm\w'7M9yjGCa}^4Bnh_]1,LFϓ0&(1n4p3ƞ Z0縜Lqr~) S'̦2ǵ´.Ъ5^f y;z37E?ff$SW.;rfj LQR{jrDGQ4W53<6R^.Fkˉ_]c0'[!uUj^Ns- dLR\2qE:|.L] 0-{i@9&I":aƜ4"Me+Tk2~]4f-t`jL0aftfŌ \QFr|o=N9]+Riuhol\G?{[q}䅮m}G,љ,k,k2C.9 &ڍeiiچOzX^Z#QzZC5]+Ƈd+Ę0qLz |oЭO̤,IwkoZs  /5>y>@GThd%+胟?7[^%.d>/į/Hp(1hKi&d#Zk{{ąEionn9bUᅬ 5r%KjwQ,[$G"q8ly,/ICSt:M~^=10w;aΡGaS o}͍蟟C :-|=ɹ5(s4[]if Nqyv3֊Szk[ji!u>KN/j#Z,@G_QI2~4N邗1yQE2 `9z?Qw.PU #L>JUTwg9]) -- 6$f5?$Y9/ T?f: IYGT>Lb^YցXSFm)& B?df!ߋU\EO2: 6s^_;~h_?\5ߡQL&H@Jho$רk-+Ь.ܔe˜MV&/Ik﹑>,7W5qq/$qfI3krW.<֦Е TV$& OjRHzmt1+Kؤ:\w^Ϟ1Ը|qM38EEgZ:/,a8J%-+)dL&j8c^@(AA} -ՕreeQG` X\ _U##-͍S\ Q7-rrJ9쿔],KQ"iLy2M-6TfL1K'Q'6j2V9ԍ925N'D継8qzϨa#zMbgK&75ѩ{ L5Ү2:wzJᦆB_fLW Ν7$ǴEjpt|7޸hkMSCy^֝;x/eK.]Si>Byi)pE'M(++RD I8Rd}|ztGGҘslCoQ0]ۤR =|쪎ͽ[ OA#Izmʚ~}:j &cAwqy]5_T7FNL47j)ʹ(;Xݾpz\#Wuq-/a0khں"{$KJm1Y#&dX{$cxZtm/Kr9u(PmX#ieV@Y 8Z! k9Bә"=j ͠O݋K^jcjR5sUg#82+!1MŦeriVK&Jdʻ(_:8p( sYNiZ*zC، q*^V1UZхpz54`.WKTRV:`l͍]wZCgO2A$l^!5DQkH!Ea_0Dɩ!ȳ )y%@Y$D -izeieVUD4}+m&t2>.D+݁@86Tt#:4 !J X< y46V @ ~rajl%,M"rCj^߿˪!4jlh7 ->i@F4jM b>q ΪIbj66 Y[&:4X±.T:4;Y` %ʴ-!Ng^Wc4-4 oOG|Y;nS,u{8=4g' 0ϧ .擗HU%˨9KYf> 9 v%O] Ys-oEn79?}%TW 69 ln&SdհÓc\^`@prv~uܼqC4}q:嫗syUMquU]'lkCRzK7w~҈^^^5[.=N%ցZ-,/oDzKh_c`uGi0Nm7Wׅ;:E@ދLJXލ8<|yؾhB?' AGL-ó:VVmg^a>| eJ7Y1 e"FGTրޒ܌3_;e 3ǘt퓳St{KbsM[t4kpM_uO\ K՜[mA!' Q0bK^yN̤m3v%>/Կ42hB  V5%Yrͷm88e֚'@l.&44S5 R D G}Ÿ#F96 5Tof˪4609Ij#Jb˜j_0cMS3rmtx]aEr v3x'ȉQKmkp.\|B#4kol*lQ=ߢUD]Ԥ&`(Z(=2`{EzEu_yq<.4XFFrU{"߯ҭîL'+rR[wʲ;$A3̈4:[CƖ3&K0@$U!k3$5QdM2<¾z39uQ=roΒ8'cP;[?ܜ.mV`B{>7-:E4L7 aMk@T厳_D@FZol>{ ᲨpGE3w|hhAntںPidBhD)BAؑaJ[c`(=`D}-;ݺu[>Q9i_>z,\mgw_Q/a3PB3/0mm$ Oq_fv$Q:N%*A<2$%r;tJ'F`QVfHTq1"6Ĉ\ܒb=6)=k 4Zg-F-=MS.G[{\C(C'F;=Hq E6M#\\Ű)=eN]YvB qEŞUeg͡/ M5"1,F#s%$ͯ200ZQn&Q;hP+Mz!8<=;ԛ llnѝY2\=tJ\[wy՛Xy~}"S_Bc>@Zc>9C#KĄjVV]kau` \T5cyZh=y?mSn@KMԻ8==ǵ9c1c{~OXٸ#Ʋ뵌˝:2W0 +uG#̅]CfFRk"k.]zs ==\KHetUg! H)%Fk)zBrG=>O\CEI\_oDI~CK3),b}32`D55&1MgEKM9;1Wr x>YۦaTR[@fM=.l:f3zU]7CӃ"r9m*̉.riby!9!NH5(L?maΕ 1uk%*KrmRgbj2(tl\ nex&s OP"̪c[h\&AS@wy(0q7^X):]hx(4|8WPQד/͖6 j:: HTPsRB}66q|qm.FVVpuvMHhxVV|} 9smdpyV)1,XOFcJ*'<} qU̚$h{iFJ`|0.:yS I%e$3Y6DOmf›F#EPf[0!Ԙd1pb1T^3q4z+QVqxrA=F'âp#&Xó .JUK0J!=Q"\U񖍲f)]LtlJAjäݫn;@ zaNw߸;{Ⱦ:=`q1 )Z.E+K1'fK{NOd{4r@A ||& '­fWiJ[CZk=tz{XYy11+]K6&{t1m\hp㗢Tl_F 15vV&^=ƕ5zk]AGj}}\vCg<߿/ki ,=&T^Wx)zmMǏN{'8:>;j0$B!n߾%(p>!{muE[i\dM*qmoO̍Qst! a?/gvnia0fno :Gwe{~$q:LD@&HbƘzv31F3E$ \@Xr&(bJK5:4H~J+x-{JY`<f Cn9I_M5DŠK5ߦnЍf&pL9ѧpY?{5~ZJ1jB A9iIE^okqMFr/6[-gӱϟ IDAT播cSO=n5ie9v65MXRjdy\kTbؼJ e/0/RRj,*q5f8z)TyUϵ`!9<ߙKH %eJ!& f^hyrm m ,[$ DE&)CѦœAƝQ3lSkzMY.㘋M9N..CIn'Ͽp4{HcFlSij>66q~q,jOseNzorcRu;mc]I4$)-VSjj%Rhdw/(󙘨q.z JHaJR\ bglbQ_*L\i53S;/>x?&wVtBBL (EG`}CS\lREkYXƆuS"jSʞsa`;v< 9 sL͢ )E$.sEiR50w @(cC4~iD]~ @@@ GP/;/Q^4 I`E(4#C.y˖= oI`b\Js⃴iRMuz*/+8<|l┦0r/("GzhDClP^!Rq s]fX C}!"fɠXRX : =5p? ÀPӯ>GnP,b#yeAINde N>OeV/KC3i Y[TÅQl+ s. $!(fɢ͜V 4ǭV ) ,ӷT.uxѴ2ݘ!yqTWs':Q+D v>tc gUYN*邺 b Z0:7%g\ 7|a4qv2d z\gPegꙫ# i^6̞5%Q'>oيx(0#}zvϟ}SM+j͓TlXj.nٞ7Ej)ƞSLc)yn%1MZDe 5לIZ[Qċ:35Fu\]b60 -q`i N,Og# u<^>{ν1 Cj8,wxGb{cW __13hDlo?o~9./$g'ggy|*/M-jnomI޵ry~_ NԻqzk^vW>Y:̲)Oj4˱"l +<K+riĻU9./Ŝ h6mr9 :n\M|yյM)̻-966ZoKOFE#)K;+ht͚POZۘ P+0_e3ieArQ9g#%ωl"!(S+Ҽ<_aOm 2QHۆ)^sRd:f F1y6hp)@5S0`Լ(lAFM屓\0+~p բ )Ek+P̑-QK޲{3) HFIB#SfpFedKJ? i2R σ4:XAL:} /QlV}h!55ātFN8?TÝ?+)PӢz ,⒪L r_)%\M]*E [>֊+{sdv )\S1D)^dZjPW?/cŨN3xaI:h.DMUuy@D㗫P!VHs@aHj&ljt brJc/s>p@:ie)ZDFA(O#; j(5@2x%^|RrA8ס!^Ct$څ:,N].+2Hv,8\RY=Il> Z!Z=>nV5p'hsx+HGJ% PyCvKtsslv@Yt2Gy&~y/# v2*j͓ ^e g E4 w|Dt+A4^ ͭ =iy} 6-k".Г*Z͚PDX6M&M@Ǥ{d|!1r2jGÍ<>9¥Q_YB1?xW&Υxp%&KT҂DQQ}LGckNQS2ZhPn_Y5Km /ԩXBDh 2Tc;K=ml6?k)0Պ M-Uz1xޚ"]AeU Ri*M0e},$UӟN|H8E,15׋r_.FUry!y2WSH|LDfPF6$6>sciZ>W&Si:/r0]Zhz"טpٰ&ޙm8I-A0=M)k v[RTi¨$R6e8m)!0|:o7[|Oy+)mHlXUNfk4kƴ:jbc/y30Yskou[N^~%:z"k0/G_Rn|:O~ {Xr[bkG&OUfH I3ҋ^,=I~ ̝itm&&˛yxFXw`[hVUfs[`4>C_`O> 4wݕ[3-W/eO<V-)d?G྄0ˋq||OH7|:g05xll l4 j2(!Wѿ! LKseSv:r}Ë 4s k>tՑ4'6VE fjk$N7v3cwx3=YFq5ޓ;[J xo`PUa{D,P(I (sn&^m[L!lj gMt0\ֽg X$'OK (gY<}z{m|bfVxs][WLb&L*|f _ݶX8rIw-UJgCBC^_Td3 ,AWH3:&ͳ&,/$ӏ 2P]cʽHɠAF]Θ(e8`w`Z] XxXu3_T +O>mOL^q詏hUfxU0S"`Eo ?ϗ_]HxS%}~N X6j&s|MYr[[ `u4Mu{8y: ɾz Jb=DU0e`߁Z~첦FΟ#\_R]d7Cyn09s5|q`]=bŞ l$=>)S}"Uch1}TYoܓ'F LgN g[!\k߁oU9nƒX~>v@ NQQ!ʶV?#e{AoacMkN ?\[44yg^nB9<~Ԯt%> [ag j2Yds L $XF|XYa=qrjHSZoln"Ւ@Mgݖ>ߛs`}%|cwD6ċbrq,tRZ%Јr0e<Շ<=;c"eyOAiDA159R~.ǐu@\Cy?HΝڈ?$NDƋ9eZ2Usﷱ\0@^o^#;:*VAz8 B߯6DKbg+-LWrxnrlwښ_*taQ^Nk6/ii|Vp aZeT{ɐ0sg_^%I;D{#a(WEºDR(Psb/ueIw ]zzcJVԳ]s- a|:ȕU*A#C!:m[!Ϯ8|MlT05!2 f3Q @JE#T,PU: `lTh NE>ġL2) oYqTH{0*,arKU67U:=(¿Y2Dm W#_p% }4ʺCb xfy2 u dXUR7>1of2p= AtX3HY_7\@UùNnzy [z^_.H)R[XU? ָa?I+iWZ-Cif։4Gpq~Z.`~YKgJ)'&06^& ӒGDZym|#Ld9&#}Xq2̛f<\Kha`Z[b@fp\clma1;47!Qya? *:T30{J nm"A 7 Eet-D1]Ҋ SY&i%AZQʽb_%,<8o Vu10[RSQ8_n r\$Bqw_{L]櫕fYDɰ;US^R%,6ݹ#/ d|Mt56pN)'gwA."7 wٗXqÀDBeJnܼ$XE5Vw=M\,{}Ayp|8?;'?XC8}RlMRb\yg6 A#|ϥ<)d~[GvHE_rq\2CnS<\ Luv~]es#\\K2=~ŗr\o8 0x}{K/`"X+7/tu*6&童)_aȗxp6!\6*M ЯA|mʁ+@NNՄ\ 4Z-&{7_G5o^V'KA韝F}ss9\% d́ O lx3WfSae0L8/dX-N>~=\\a:Bv&f1ZHfvo@QЩ1:=THO+m|בP~NWz'-րW zy OclW<^EUTX |t\)maɳԡ̅پByV %Qx`k`3yس>xFmC%1}p IDAT\g0>kEؑg3=i) F y\C Tq` 2WyYsmݥǎS/~ {;펢rlL"NKA'Yk:/~foS@K $WX-JŠu6iubk ZMߏdhd^-ϭTlcb,oMzoUZ~9C¼IC/5rdyݽ^;JؚH,}hɛ{yq#1\-1gI CJsz@qy~l&fƖǹ)pMz5|flT\Yp6~q:!n0ZEj8??ETŧz6jœL G)X{ RAd=^yˋ0y,R5rf"pK~AOFe!$K*4_J-|<7)I }XeNj_M%)! ̐M2+ɤ׮XazmY`:c%U}SN=(WQfc֦\3gd{NX߂kcKe;k(WxfaB^ų/Y:bU78Y2C|~^xr |0IVTG-jm/m*Zޡo~F-r[v3j᫯o[I. jn| ӿo{9/nΖH(us}Tdko>|X2W1 kr=΍z -VuZRE0e:T Me~ﱳ%ҊG GZX-X>k:mj~-|p㎾~PB1lK/Ӈy+jy/e0-ŻE@9};jTNr1^Tq՚n@ Zzi+8Z@_,%,<ؔsS#i*O3ҹX8:Zpk`/0 l~,b$ BI U05眝±J] gz0 K . J/ZY29G?vߑiʜ3ŚWZ+)nX{]~A]d4u= 6qbC:ͯؐZ;lÍe?Q*UӳYS3V &Fq=șo*ak|>XX!fT_ZM/ |ɨg [5ܞiƈ::C(WDV)1pE`saPzZΥOUP` 9/(Q\3{3Q3hJȃjӪo{Q]!$= ~(sQa+5@vMbJFAn .g&RBCN0'UEWU$]w,p*ew.md] Jw}Pںqje`+Ms_s'62|L}b5J +Oɬj^a^҃!XQIX4ra7Wnz٩z?ݞ&aRP[\ &Δ[Iz]$Gye u]'ȕ=1{rioݻKN䳼IS+ F?<̂P)u6K+Mj&1*,ݒ {ָl[ѓ'8?>*eՔ[-[c*.MK aL惷48aB$6z{zrC '5K#]Zb: F;cT&xzwsFII Zn*TteS<}If7vŃP.^ާ<<+1FRfϑ(0E!Z$d Zd80L)]YwS08&*i*Am"ɤ @tr (1FxLX6rk*%B7P6OpXya]|I<2(LBCaVF+a%{O21RcFA58qxlv}J.M7O)?2"]cz.)cJsBV1YRs5oxlnow%޻^ `<>=A;'r~_ o`o_p ܸqCjV./._nO?^;T_|wB>#}dd* lm|]h{h7 &=V_:A*0,m< 5Ys@VyCp#IE$kOKeEno cy_H?1V]Za'3t=aƩZCjRk "9 @+ YY\ :lB?1#%*t(eFt2Q0Idl&2 K2wݔklq. ]6FpH[T:񌐮|-g&o~&'ZZTZr"M_jd*2fӋ9n=ghՀrl׊`RTR {oE^6޽()9WB<&L\R8j/QC=( dV^WPp}y2&ujȳžoPk2fW2~k'cKoRrZ`&c*X9Rr[jST>/}$@)BH̕CbE 4vQydXQ֋TH\9G٣)Ǵ"WW VB"4{62½|igVGup^CU[l`f|jUAaKzϬr%@N/p7 `O{O2Ÿ^ 1ʭV& 5$ZxIv_$t߼F2576_bcK_lemaް \tݝG[Op{k[tVCM%t-,2a LM`N(\1Cs$ >?JnId̮݃F0@ 2X++Xb^apk5qd8}1N),lncog.KuO>߳<-C@m2Ȁ:bԯPaXz3t7a:%~k^L<߫BǔRpXg(7\bߢ֪k_`'ʦ\@vDnItb0L@] #$ 2e=rv lŷTm`}C #7?",_cxcyW01gG Xm:2a~nfR˔{}$L&S<|H1?>;9/*F#ȑ%So եn;jBݔ f4"E>[3W/0 e(?A_ ڃoyu9 ޕTYOϵtA3{%ɼT=]bF7ϰX72 HDY/.?#XVx_ =y4WT:) ^뵷{CCo:PQOdFEAՒcUmb c5D@[ۑkTz? ,39y{=VK6oBP.%rm0^2ϥ4lKtcQJ$ 1PpxK^(PNuڳD/$M0ia8G8]R* bm?s$dĉr[pQ~ ۔6A=qoJZXR\aO9@Ob'W^E\+^ɮ<#pl\f\aM~Ɗon@]ߵnx'TAtGX?zzQڽ׆>l)+[g O Dߥ_ZDzlAL^4d#SLz4H#I!0U<}jĤд(TvP&jE§\[63&ޙdO/?pIG*VdN=\W>Ǖ]5]{F5 Ʈ^+ݭħ%+{KVFzy#Ã}\plV c,r /IcyۂܞJQ&^¬D0@s޼^< ÁObLɞ\@SjQ,N 4+'y&a%l"%XK:|vTLIH]+^괯xo߽d9W-"s"J>xk!G3DɚgaƦs8EkB%҄`T2:J4Q"vM#w"u(CEZ &K-.9~3C,9c0x|9ڧLdRP <ӷ§y=^WgJKQXz8:[j`k{GWaXov/EvaF7ir.|˚n%::>zX/#i$gޓw5I3/2.bhd3,Xdj6޾}bl$<9z=ɩx$wk`1#/9 <03yNZ#xC5]c ?}b%՛7nu}zJ|şg%=h|VM3v2zFnݺ-l`r1%=dRpzv* WJ2+@RtmyHG 1ndDG9Mck6:mLsӥ0 sU5] j{N%eh%0Q%RR6T^ДH" 'Tk]i,U&K  7:txҳEj)`z -rf 8;_V2IZ큸 Y+*b]^\lzҋ"GTPG ֵ0FX24Jiho9E<ʤ[Lk4x,,4AHEJO,|üT-U6>~c!H2C]g.٬%ŗxa7p5Mj`X|?l%;ᷟ}* ^J2<( '(A/z)ь#.l@n*^œXMtE"3,R\=Ց0wLfJ- >)z `::2 Wk4%ٺ`Lҏ?5^]pwK"gk1ß<tpx*&lW+cVX/?D~^#+/&x8 %xFCllƊ<s l-_Ï>d QBdyLËZv;8;=F/d@Zf4RX0,Jr"lq^S&ZhIÊzlK?-a6\?xv)u@ Mݸ#q̱'?Kw.l`!ؔCL{#duFg>2nbe: ٪38ᣇh4?LY:SZ-`AL䵮,m! Oe"1#t(#gzPiQV޿v Vk__Lr&f <``#ϊԯRc@Rέ֥̖g-) :en#ZQ`h S]zQ_Res̜>)ġ Q缜4E϶B@Z$x͢HJKM=<PU¦Vˣz#f1sQ|F,Uyr߽d,#T\> ލXf"ER? ]p~ՓίCD9,K$7(˂*8/\xүPKI? %6 DMd^c@ 2z:)w´ż-^/ړ2,Xn9_>F0E-Bٌ wZl3!^#kɅ& t5W_4Td72%df7nG%TeWL2%5ܒkf7nK+ xb 5?;xca٤gvb1`7r`lOh5}[`&oÇбV([[/;3̽{ALjXHA$z ϟc<|T SJ >F. 1ΐSI,G} CVQotq1]Dx+~w ؑ+Fp5 [avݦY l!Jh dw2AQtIHw SԘiȝN[{ 0֯,3yLf RĤPi~m\;o J&u; I J j61a,!N 62ifT {A YfIP&nx- YŅ%LWnHj)u5E[T6p`4/MK$˭M lx2pvCY~ )"3x)ʀ~W>?ԊegԚuo`typ*@' (,W`*>TqE }w(AqcXhot^fyo 9(|QV욌M>(ok #~$̞!I:kXuMV#(PS'.lGU&J '}{jVYpN\'$;S+泷=y*sry;R'&2f1 PYg+~Uׇ1f~HpVJiR.6 د`S gYY˓V5cvS[ko$3LB/|{~ q\>ylzJd;NK_`8!DƛouN߼~\V9Tfy c> bٹt6"[#Pp&̲iIM^9[.p{{r!ۛ[4Mإئ oƂ)CСK_.`JFKĚVW״IAJt %ړkݯ^>/!q!fLpyE졌JVt0vXJZR@R&YctMa3+zx ӥ`ug+^ȒLk[Isy"f>:Bkt)/*JWX."뾸wqtm9;[[rN// awd`榜7_c5D`3D)Tviy1M,g@%d=%L 5 ;yJzd ./1/.KϨG\[O=D+ Jt%Mi-4y-U|8ͧs7W|~y!ieg~r>tn\=>sI|?EiptrWd;qyf!VEQ *&Xu(㇎Ex;SiLVn %YZ^<> d]SV>=KUzf+@3 }P йkOZ#ȫS?(Vi[9-/Y(`]WkxG2dVO'.ek3b#؉, iæ//"ਔ ˿7kKUjau8),^C* ϾŠ7obXQgAUb.ŨL?Acwq{w5h,~Nxo4X/xONػk[nL=R$1:Z,A%8 F[%BIe!=$ ?_K= J]\\]Or(Gp3ϴZGMBlK#nj$&MoI]W4($V[dd`껯..Q 74;>>AX5(e,'vH3loeE**/fD݌LH$IP Ӻ?&` 7{;PK#ڵn|ީoʘؒ#+ܧ,tZٚTĵt%>-Ё-ܰqzHhdސl=vnp4o>;[ء X'?~ ^}f}ipn-WZbyݎlzurl%Yj*^LN$4FR{h9aQIp-/$5la*E ܺVNK͖7n 'L4ÿŹt^\I8}-Ã8<)쓧fØ\R|_ vK,bw/^=5nݼSjL$B:^Ẋh7hcڟ-Byo;Dl1pX!suOU@i&;K b@Vv>1 &X.%u\Pn^ko`0c۬c2By0;Lf)VP ~4FCSt-f\'י$?(NWn>-9zV&ZK^ksEcH xDݷ:Th:wі?sͯ7Zu+|8>9j M`XZV,ATd L{tiH7rR ݞ>}w2<&Š4uXra懔'X0k%I7\{4 9/8_asή2|3u^xEH[Ju|*<JK PSjSeQg'jku$ O}Y|*U~2( ܆:H̗/Ibv26& -QC--D#ʺ5vdy \ ?x$)*ǰ<|X(J '{م|U_<8Mf8Z3>xt\ ׉ Rr=QUxm5d*ͤa)LIyUlzM$tQv[k0<=hD*P%h6wzwl^,=k& 9-=8y <~D6B:zFȖK"م'[ \Sȉc{{ܰ[l"]̱Uk+CB:E/?V0lj[fҲ\6{⃉#inl ?YѼNLThĉ.ӓ cТB|\V50$ M\M$ێ1ǭS94,AľTBk?R2'dl=Ezd\ s‰"‘1f(g/Z-l@Ba-V+*"/!iP$ɸfA> *u֥Ɵ1Kvݡ'9zSr8s1u>֜ =TO%,[qP\oF8&\/}kDś7}1f-T &vG'~#G&6I\eJ1zg)޾~ӳtg'xݕLدWWܔfz)&}rrϟiݻupqq&ފPVkܿ@?Lv6O>Ûr?S)br9xƤ0α/֠m0g)եceYMJ_|!ν{){I]kg_aw{_=j6@c8~3#[JU!CH1ί2cy鸆ޔޏsXU?zca:VL&(C˚$ +RXM)JS [.!A90`cCݰJ5PeJ;qʀA'ab $66P]KZX(`i-yexY̒~ nCo7<0EP+*IAY2d qתyȵ!X1V4H>U,,(.A[|ƫfgPD*%Ly4JYguXyo^AjBXU?g9İTrN+_d^Q_TaP:7[NQxrcKG)튯ʀf'p&)?b]Q8>WzkBC\RXc-–~8*1g1ҙuv0IUڇR(*%:ɭlW(i!7Ri& X$.4Sdȹ2Un5^V8yDU2zT:z~x6l^))%@Ir!(A\ *]\g zU fMUFCJ[,[7]+D:L%g Jj]n&'"B<9L-pocoץ&$pzΙe}ܽ}WwZo„>g:CV`+y,蟻d͵t&@%c-0C;d#[TUƈ^ҍ43&Y֎.y^hn+u#IeӘhN +_#c s `Cmh(>ܕ&o]ջdO,:6[*dr>í]A֐>LK1ޜ ǫwhoO?E\g:D`0&^|v|mtMVs;`DZ( LVI`]Yl8yp<~ڢC\ ]cz[. N?rtp# Hͯ#h0ě7\7$;{;hw{Td"1X0 5a:k K^$z {; #p18Fcs 3"n2L>D0- VCu5 ¥G DukZ/ie_umcʅE5x_T s)Totć㧲ALWzD'Ze%sE(=@_4ϩկ~%Iy&`k|>LL.׈ oR I-Ep61r.ߟu w\)T;-,g#|_j3@lKKi<ݼ-Eؔ^OfIqˆ] MXdCSck< = f cW"\-'${b?\05<[ݜs-h!3Q% ([1i6(v˫\>Ht07|3##\B G۞f@[Յgn2^!lgojN*@-˿IR&rfˑ)(ٕϊi1)낷r3MGzQaTQI.hY[6n~$ WX+|HЖ۴|[Hrn=/( &N&muNU(lIbߣYs ׽?*0Y.d9/>SaBP2\7 kj>S™YSW*['e%3&ؿ{ ޽}S9?W+'k?ѷQpxl^4|*B)/A_7(/ ~9v3]Z,'zx5Z(Kb~(j52i9Rao AUyo0 MFzNag(w1˅MN'ج'آ"SOC\(AUY%`[:Ju,ZԟMlcal&.,\6&ޑ7*'o2`PyeAVt,iV(CL^Rj a{ IDATn!'2 Kx2ƣR>=s[|0%i~KVAEP"]]I$x&?}M棌RH yߑ TT(k.1ХP7}k8:?tGhl pvu0W‚`,&-]~ X^e37[,DM:Lc|fdv[nޕl&&\:xWb8} n Ͼ!n߼'? <}E) (R23}!AL;{ø٨$6Oe4ݘ\=`jv#d{3TIּvdiQi*OM^D4%s%YBxU+;@̜f&`9ZHy>Ⱦ9?q޽:]}SrLB)U7Z0K]ߘ~U#ޔZ`KC h/xgl)EN:nT۝p^#콥}ijdcRQHep(*l_֔iha9gWSk_$ Ʋ(Шq4³:PYhJz R\ >eOXgĜz( X(_ǁC5z>KVX=˾[XV(0$!1Zk+kՀJ yooHTa]Iq%5z<'$>ЃYrn]l# ߗYq/*{KZCҰlW ;JdȕI_vm"&7 ՃV4%C[+i . g׼K﫵h=31Fxi~,) .D;4W4A ,[Ghh~I&IUWX)ldWgI5UEG85\r}An}x6?dkLv5N;$brɪ̮r);Hȇ1c2ڽ\B^'ˬ|6.QH=8ɍᓇoTHEGfypm,wSITV郇{Ga7 R^9'?AZ3 9ܼ?9wx 1%q" k "P\OsI~>{vxzֶpp)=ggҿ/~KΗsydvsK9Y f# ^[$Mf6'V$ Kjvů-Nd^b)?N/dF7En>044$xe&ܠLzM6?{הued& ;`1l\@dz@u 5e7S;i5$\^ߔVgYt~/+V޾{ÑmdkbQw5:>_ g8#8aU*Q5!VBg5q+}~G&$5^V!qI&s&+˾ =AQe{:2esezTh}KjO{V G]?Q]vCʙ$bUAwxTFW$+k 4EYWv@9y m2t@RDH㑼͒x0IFϗUL!l@|xr}^N3W?\456uh_drd.E^5O0aH0u<7Β \2ikMvuۋ _k)1ڋzh'M@3wƼjǫ܂H" a%Ya$Ɣu` Jƻ"ܿuGI;(-=:cN9'onpqv>GӇڱ-7NJ {;;*b)>^:9ɱKIT γ[,&opE9$b3Lb6|n]6PV Wwv1ɇr/޺+AW/$9=9٩lC=|/^ٗ0g*Exg{G]M+Jax׽c]3:9_{dGk}{eR{-5v`I{[l{aXT- GP& ]`CX5tp{\gk1 &h/D=nt?IMbg9 ԇymL"_n\7^_/~+`Lb [ KCW ]X2nzw$*.ꭞW!ɸuZ[]bZnݽ1ÉkuVF+m kuk+& ݵQ,NM C<|c̆P童# [L1\,q~vk Xv?s*/M>@pJ\?ǜNA鸎}i@yJ<SpOk[ ,]sß8\+>S,vΊTzǟ/^F[L>O̹`)r=O,|icxMCUASЊya9{XqC y8Ӽ?ߘ\fZMJ6Ux4ז7 gmS&/+H[Q۰wJ^BHQxpԽ48D3 'H礝 ʥKQi$jod77M'(9So*޻hwj4^aOvf&Y^\\MyPok2GCd#W1LhZa7Ny 71:.>gx{a:=\^^[~\_a88Օ:L7m)L(b\\gA .PK"f;4y%|xJ>PoX;A)L!;d]Dt}W7oĺ?<Խ_/~A_m~/QWX᠂=ܾXQlJ|>]L{Kl9ho(7rq%P7eh5ڹ$i齼>OhtRj.TC1Zk))2 &^}q\к$^ ԫ`Bי*Iv2}S.ljWak`*o,]7\kI&6٬b2C6[ Mzb%*5J S)f3ʋ}]"@^]. &3q~zdꮞmf"J m8pڂB:l\]֊-gZ%j2؀XZ<z7v&r+)7ѦR.(A:}oCg!-mPGKG 5`AJoatTdw)(^VAJ;d% \*Kz8 Ab[cKϤƨ006ihB lA:܉ϫg"2z91 b<_CPͣy8{ ?':3``E>>s^(3% D;؋xyЫ+|RP_?Lr8PeT-]B<& G#ϽFBh*aR3~l{ AeK|Kٴ*X`.:)={H(0a61KÚ|eMP[e0x#?/ʯ\d H̯"bO1q ݱ6kɭP!Ŝ%/1IZbtv5@.2޹R%󶜼~ $Ab L_\kB"10%ȕIL73Aa1j^k)xRx!{(1^cddV, C*UomBG__LDցǷy5hKDpkؾ[*%(S .(_%f2S6)[Oy]$t }`ۃd8* I1}=87v0s/U /(/3Kܿ{{n&s% o:ȃ +tmss r쨐'EU /(l2bҒ%peAe/gC KK'ӝ[7sbywNC%3kQC9 <ЅTpb࿫_g/O~,?Z`$ HTq>^5q"BQz4PAyL`lm M0u=8} HknXYS&BFYޔ`!a~1Nt!.Or}z2׫PGވ,)ӂ1"N|:/,3mxa v~N\Nΰ&b{Ҝ0N;2U#͉*\Z$0!-L˂rƘYNo FoߣUqեR)UTH+TxRl@Bާ[S]L[|bT IDAT )̽lzq4 '91#Tsa 'RUbY0 ZR?˗E퉐 RLΒ.ܲF=gZc*6:u/1Ktϑh~OfR/0υľ[EL%Nk{ؘa`0mZ0M Fáj60]c3峀YW95'ejˋwH{I< .-v5uLVi$H !O̚ ˜ DWWxϲQ2"*!*`Ao%K..$1*A!>u)Ж$eqşτ& 3YIش2PHuD9hK΋g2l8ԭ_cfc9ˍ8qKrϒ'>2 g ɯQ!-P PBLrei|uu =lvFk_@@ Û ly3-jO-BH #HJ< kқ\=\*WXyW8m!*YcCo\x? )3ʽyZwcKx J"̯ݸ`s>Z81mk\ޛ8M=_ KV+;|:O>"fHjp`cr;I9C @p?|&VltL~gBٻ',B_Y<1`Z'z:M/* @s'-#;=Xʸv1дh6ۇ0]6HTpO0ݫc|Db.b Pr>\Rlg2My3W2)xw׺ogj`UB*(wa+U P)Nܚ7644+O}ZQ-Zs Ib![ PJ)$-+ػ[ۻbޞ*'+Fzka YVHQK: P佛i)xt̜Q~6V&s7g)3$`"O`լZk̙M"4V?Hr?,S?v tjlf^4g1DXɗR&Q=&OD_St.xkK8cPZhnΆW)WQt1:K.,tT/ 3V{Nna,fȒ`sUd> 3ZRW7W3 vnckkO,Lv_DM5M<|w>lvq}3foGx-NNO0_u?$B>1667_퍖o4Nsth lbw{_rI` t ~!Hd1鑆.xƪ;x$u;|KT+91 cuvSRQ9@hpU}'gn4`u>󕼦:C֭jFW-@nhqe2r 8_kbC0ϯ63Kl M֟1I9dV&%{5)g.ʦ}=ՖǖBU0L Ln?:wprr,5sϙw22ߕ$xTDihT{kX+.\fu2K{|6Е, ![_#lkdm$AIzVJZ7e#*ӁMZ례Q^ @[ ^^Tr";1 %2!@hTt9_*/Tn~qK[lKgLa9TlcQ"N# r)C(WƟUk'RxeP.0=K 5(Y~WY}c?*jx] (/ÏJ=˲t2qA*>/$tvG Lu~wꫯu>c}ܾp} /L̫RZM:փZR peUC˗G7?_fT?^J䆝$ @ pneN l+.W..}I\ġ[ׁ7F)NS_y} L/Wy%sʷsvnԪ.QbۛS\55I{?Wt]GNdk6uZeLgIƀY3ٓ|XTLs51s jZ I-Նݬ!ZαYKqUtPz*1J9'Ù;&\V5eF)# T/Ɂ+1}j D ޷M޷zb+/{| a AF@ 69DQNI~rI`5--|Yan2m0tXp؛2SSqzrwo7/AԆ+Vc:i-BPDhh6 tFJ>Bt^dY.̤a֪!~f%X`hj`''J>weYy2]`xWUg|g~\`ojj vwb8P QR޾y/BSdF5_ #& ԛ[T۸C76Sy$eM952g5>~߼Gh puyӡ8ק/&Hӥy9\7՚ Olt|#khwOs|Lǡzk51.oYG c;o1 " ״܇hI`kX۶ǜDmC*2GR[$mKѨǒ;i4TD$ɋoLK`&2?')Ky0r@c- S[fD~֕V 7\Y[#F6Ѩ5|)c9aޔTbޫh OO=Oq_5;:=QlV9:>ՅUP;tz n//p=j;hy|H!\Ie@v[~<[b6>C[Kދk* pFFE[-zyybR 2o?P:,:p^\7 ^|ϟcf`_s!8|ҏڻ߾eu=_={JMF.oW>r9ѣǺ'ǣAU <9{$6+VSaU -$OԽJX eqW ]uz,}`d8\CV#nt;s6޾~ra+dR"uk7hm6kiH ^<+US08r;sL2 "̞o#eJrƬ {HL&M+ᗆ$-/ `Wjj`;ڒT%5r_m@>xm~C‡0782yz 4)MHP hSyRseE!kWG>JuK6/%h2`a'oz_=iClocM0ءk4TTaTEMӕn+}i_UiDj㓪wUot0,R@?/CYIa>+t[ I=s$禄LjXHl;:<";MrjcG Go0VG8??/OͿ&+CZ^"8눲璞Rv %htl~:<#K'#%r6ǫT+NR*J̔dc %/ b=M&X~'0?kG^/y\g1D9:Yɡ&3yTt/A6]@=Jb&SWm $5NT8$b2dp@^I⃉= IwJ- <^[۪zr; -ݖU8/f˯Z'&2igo8?;!xH7<Rvߣ=#3sdvNwH-Z2(G0Ɲ;*j`_,(}<ޫ4~cyD 9>zGGGdG J~G?coPO4d(? O~=dñLϟ+ܽsW8:9R0r ?yp޾$Xbwwnap}eϰ`Z0oqrRp:~\ۗo|[Vcn"fs]^.p~~^oh6|K;|(.F1۝]TZۈmoT%< {oFOZ C5xla5DCVeaudJ{nTE)<f-hT%K+Dz~isy.z3͗ )([.S=yv{JS>N+37Ag`8v۫l>+7nO1W͐1㼮 ̈v{~ῳVIb[,]B7^c T?̽ƮJT9ĿW,0%}{Xk2BFVE{d<T`Cv|3O5%E\hR&ا& klY(//U&g5Z-Nl ܏*E>`:`Rf 'n3aDܱX@h̘EPB(j1>/]kk9+s,p;5YӭUAރl~*`ZcWC㐶AElb Wdzt~V9,HPH?Yy&TD~mQkA=PO/x}N f.-kXއ.Eb^g(5ϓ &SZu-Lum{PFc*ub^_ ߃Or##aIbҧ(+&U&6W(7[NWR2&e K%dݽȓĮYJSsJ(+%-c2=M䳥wIY" BBH4Z~{%~n5__)dB"7 Wkhll`Ɛ&qSZ.Qmw^+11]SX.TY&Vg(JI{*I_ _)L ȮҞ8<~.|W0ݖ`v8%bɪ1d]12"0[j$3Wy<+€ TБ_z+4ḢDdq!\~&6MR-_KvÔʦx6 #כD7sYMäxf~qE`M֬G~$vV! Yi5Q]njIwk 纳c'OXqC:wgXjO]ghoT IDAT^޾}ϱncw+F)6=y"f?ًn:e\5St OI4ːan,u8r\qξjUE%ny|/u|}I6*q>Gb!޼үjHl?s|`}Օu٩`ce A6<XSx?1‹_ [Юwb6_m|9k7/^BgcKW_a88Pd b&> ~. ;h:Hj Phcp}˳c'_o5qzj!?j(i#+h5ںoc:]uoImDض(Z[T>[/VRod%y~PqoyƄ{^7aCw677 $b9!6vREE aR.㦺f إx l: f:^$QIzsϰ9Qc V.2O(/) & p/dFUSZɆt6qsY&g籍³ϝjUimL&S>Ql5j604Q*]Ы9<!J?Zl^@H>\IPm5tDqT$ScZXi௲wy- - I}~%Ivg4ZUGؼʌR>^[j&it8çR+A F >^z%+)SxZ[_/%6Zz\ɚ|:#eRBW+ #!/yē> /!%?Q.YR+j&dLrI4[(pʛ*zJU\dUnTz}3VxAeVU @CpD@WM*{]fccpucz;{۽jϞ ;[Mh4kGuB❽ c,Ãh~򼜟WSEP 0}#Û;IƝ~ZD< woȗ/1Ofv m iUu-/MڦzX'VBGyЀp<6/BLjlrY$)2D>Zʇ9jzkܲx[蒚뽻aV?5Ijo i` jv<Ƨ޽}uH8إ4y0._k(UcgwObRb2Ӱz,B2vREK/PҾao2ؼ;["xϴG/sq #-4[΍V3,?x޽ykQgRG={ٿi,)tsDZ6|X} ts"jVb{_DRbSe.Ka9AWg$D*Fq;-sJRWTR}mS+*wIgD( c1T7oxZ Ĉ߯zFIB`liCiUC}z:ͶJ3>\_P&PncCV"_aBi]5VcbUW10[eE^Im42JWsM5cBX)R&C0WL:L.8A=+]qCu'#L2!|j~K0NUU n@We"qX2.d,URbFe9s[d/5_BzT$lVQ"n^VDF%9rN])& hmv68mmbkt?+85;#uWB &v~)!gMKȷclRlI .va&/PIR'`W\9`~\Ւ*R8L>;ճ_/y B7x2|" x˩? c%;'x)nz}UY?| >dz#6?xxvwfc~3uͲև2Go՟gW*uWң+*~=:C9& t ,gfQu3 aϦ!]bamdN9YyfzfdZid؂C泥|{{:_LշǂmlWV+a[pC]Ltquy(M%k2Y`<ŝL*o^k{S^jd?;yS=h{k[7 J,t,TX 'R\h ?=n<۝M xM3Jfϑ'v5󰵳jDƆWF9v%v69wԎ\FirߌBV)MEʧc5% QUdƤqo=$њ lMr"? ˂.VT 5@]m;2+(RʔR2nķyy! L=(jJ=/AW^dfC-{*K&Q*f}x ` $$[ZF 'dկ< ~-,$`;&5[S;{ؒ:5T܋vg[Z'PGn ܮ%پezW&.bj";zc^_gt乯Ҍm)[u1f S2i+9Q?nɴ!P}j־jo.ިJ{K˖SSgJu3volld&KU~l-IgS}F{ݥJ]+K5sOHʐ=M @;`k p{6f<[h]G% ަU,&$1@+gUZke&7Z(ѵ^LCʪxh;񀛅:3[mb~[lW"ih-NiP"<8K̲%q&`kSKf](iXU%gUR?:;U#?D$IC:wr,UHI,fg1=Vܽ7)Ӓ5Mo.p&s*ًaeiY6WRu.`>U#nI~#ddDjqгxY6Gm8kU"i5!7:Ws,3J5L:Ai`y;m zZL>'𝧟(B)柒R #xs*1TQm*&qj Pas%qN߾lpj>bG1ꭆjDZu5D l=]`o\ ppIpd}LV\ )J-l}>٬qs~t"9l-F6̤M?LV+r LY\пeoW_n=|ރǨ7[bk.9%,q\FUlu{ b{`L[#O)v'Zqcz2yfN'G>:Xtto߽̚xn+vO͛8?{J@L}mDݽ[?8;\^#eX.ñTxwn`=b>=ep~%V)7QovY{~n^kH 7d#7i͖&s n]`.m*P}y7nUЄCZE=$晿}Vd͘Clh4x/5EӹzkGj #Smft/xY` ϤjJ?~K=z[[ܔsnkE|T=2ϲ""t^,N*ep-1@_JU3Qd!Pچ߽YVfXDkfh`IA@T)= qXXV^ h1pOz9Ǝq(&vV{I?G p`Dq2 NWql ̔˧.(˔ےi3'0R\8 ~lk1Xa-y5.RG7fkp@ͽ~o͎Rb\̅\m2,_lzj˴ɡӳ6[Inh,uysn](N)?[s0Wy& +̈ ]u H6 !K$. Ϟ=C>Dhj W\֙LN\ϝu BJs0RߊMHD -. k^D`v}}]W73[n^#`H|.UpD-4d4*_V,WIz+b>µ eZq^zg_߿' oڷs XZOO)ùj5 7w)fjSw <\677ĤWIDr򴶪Xhf$<07Lh3޽7'ĜUi֥*}D9syIm_^K0PEX85Wʴ N5~(-S12FBr_SKΣ4ԁ>7죥S 8pε жgghn61[MKy`Ћܘ6jmI=:FV 'G$мqxͭ櫕~v\`5ck+$.}1UWWJ%oϖGBrh~^}̣ nq51Y\_T5h0؊lˍl woɇsurnŒ<[ <}o˔I€"D,U|rRmSS IDATpod0C'xt_=Zh5KE;. -v'go׭֦!0?78{[Ǔ!K2LCUa-+U̦-\wbwc~)cznip>n?@q}yCCc5Fk拟a8֦ifw0lmcҭ1_INwz e:P`$T!.ђl}1Q]UT k>ZW7rAFwbcsSEssnl mZ"9gd[Z$;~{n3k)AQt:ʳT+՛#Yclk~GkJh |,)0a)ָ~a}D^O(/]5,+M,du'8y!2}Xj:8φP.˦ 4[:v+b)B%2Io12VUPKᝉ[T i {"c״5j1.e^31Y\ɍ,=3pÊjC o^SnU<@6$W))nU;v6Bp"K-(:-.!{cXN>88I!7o9k[a{=pV6IJ JCNpFZg,l$aIR#!hœLoܼdCuGXmIbUϬe'3+#ޓGC7Ɏ@ʀ~ 1/,u:[Jg i`g%lJU$6)KРDEi24+9If%B Ú(u%Js |U=)R't!'g4J P LV5cl1&by<9Ŗ(^m:^< ,l(qIWAObimL̼hJG]:K?(ɿܮF'G]# a)BIQv\öuIg98>;K__JJ)mQ2yM%Y/n { <<N G#Z]11I {X26Z(Fnl},rcn2^_|W=߿c23կ Պal)8ӣyRC_W tL_xg_}cp|z?zws}Ionrr/R[mtqqqTV&?)w sUJB?~}qwiagwI}]'%#\CFVp$i3aL'W+ Cf60``*.88ᰆH*65?\79 ;RYEx1@z3Cg&YfK̦K[#I<:*K-j]{Az3-l"F52J ]:vrI`1@6zUI^'К,/ 6q=RA>dÿ/+IҸi"xAM!hmcG8-=v䉜L=0c>%K-[w՚Hg457xjhD?4xzh$~J;1$aJ}G͉gDN krc2 d齮.MBCpNG7Wݲ!Ngc[4 Y3'_jrs/64J^MS1=L.b){XeYbʵ)KfUV {H5f gĀA>ivuWwT"tVW 3;Z{c\@DTk9{ZcGlt}%.fTAqo 8֞ѹl*ȞFn Dc,z ]]VSWS ƸSJ~fxD(nP]RZ- &-k[E,B &-J nE^u8aUXL7?<(3_̼5iT6d/ۤ#J2gvIg[sҵx-tM2{a3eM03d:=ƃtmn|z3?ż&f1ۊ f olnBt/fT l$.s`.bdxbFCZ>nCZ./̘ٶو-¹H\ޑSFNg^>O[ѤGƌ\)#Y,.VK꘥ˊv77M&@ȳo`cK99:p7w>99;3s\l2A/{wX2ؽ-۷ ՓN͹jSsp@{>˝;YăOgCaF3IZ:ⲎԚ[SF@B5 &ZS3EViwF1@:%ɔZN1`a3]QU0`sa T&Xz&c{!#M#fу1ZΙ,v14'TSWgUlΖt7.e6s/*ވ8F(/h4sn k8K_['Z\}..b0bg)42Z<NS@~1r/'^ޒQzIL+M>sH[5zcJs~ r,rI]j!oYčsv|a+dg.+da|)2&0W_.iP5 c-g5: mTiQh]\ G֢d*wutÖU #nU*kpυʤrŞt$UK GEYImbηU!\YqkkI"\~7'dk}j8pC 6FT⛠"9Jlzj#L5 cM95dYo$8~ ? iJ/ ֝rmhG2cg0*d_khj $ FER'1͡YZ'U}=$Zoџ oiԣ,xw_ͦ\L&2W,._b)ә 1ZZNkyLǗ_|,_y)J׻4@vWk}άF|>@+L+r RM,6&T\`zÿXZ:kͶ&(Hlm $+pF,+@\#k|Ua^ 7i!Rbs8ZWoWkع>e:i"Ԕuo`HeLeyg7ؤ'NәKy}[|x-TR2{C\% E*4]";zM QX!Y )VfRCɌ[Tf Aٮ;F}\"Ņ+ug=RX  ǂAӐ]EPAys,Z\14BAA(zO|sݫ%I>\TW)牳b`,x}rn vqSS(uCJwI՗+)Z{+m9=?4;0|Syྜs&qZث\m]38Y\C-~]⽋59Ar''*Ĩ;tx&eIbbf4oWېJr,X2&Jg\]| 'ܥlm9|FWd9;~=E'RFyܽ';;W_*?MFwFGNPgߗu8t2^Rr9e:BGrrz%X\ZЃ 9חCyf//.ɹ\ db>rAyCVRe!s9?}.^~!'g*mIMy{xLtggx2d23fӳKڹ%t=vi?,hu;zzybP"Ҹ"54e3>kgkCk͘DCA ȷ]j4E^4_^^r}%.z\/b| $ё zJNWf1e9hjtF׋F Ͽ/ SKg 4YV(&t Gt|BP85єD`zh2]D 4$`&ƢYrCOOm7:CͻT c|Wm_N. ZiUH0^>e9FIr ZLL " 1%-S10]bASqNӹ h[lIAYv10ښB#Q!1+NZDK*3``~%pznBAˢY;c*q(ILSG {NZ„YfcL IM"$&Ȯ:cDbYϡnRH6g%p1ŕ0o1mgq5BDN¿J UR]!5VTv cVɻSFӼ='(~cm =M,T$B.μ n p~ڢaWڽ] ,p⬁Or8V\qwy~obL Z̤pĎ' b2mlHRo0O_p}7ޞܽ@NNͺhV5f|0vXXX^3䧮E@jl*J:,6?DqMe`R1!G%) 9~i:CT5@Ͼv Ȇg9=9M^&k*9^g 7[q,C@ &$ظk)\BFCvsy}\Нvge.*bBQ>Y㬱V͞d6 8NZ..LQ\Rm PP.@M 2ȅEδ(Ho1IXXcpET c$,* %e1Tz0H>J̾= [$Ҙp,T*W2k`(&JgZSIq :D;r^j/ dv_YK: }0@Y=~C~SM&td8r^,Lt4^ܾ-G,;Lb<>/$.+{9!ӎ}F~+ڤ@憜a4eNNOz݁Q,p5ۻ(LJ==3p{]ͧ׌. SYƲsvS?y3d4`k.*\y_JNjrkɴ3obnp<"rU4v]#W8g)+.%/0˭3Pn4Z]ZhėS/?3mu[^>_ٳ.ޟl*plzyf09lZh4#tKsL O&siu{l5;]Ax4HI .Aŋ*ԙuflubD 3Ǝ-3*8hZl\\1เ~gU嵞芌;jzVO`!' Yl:9T^&,ЗKI/r~+e j$Hr}V2->Y \5 cp EU;&Ky˩-$zɡ4p\=k0k-lIl]q1n4 {f*. lDRZ!:f,IYL\ gɇM\mv5A٭J($QIk*0"an/$S~'JE"] e7`U1.dP X #9Wʂ:`tw .@6UcQ)EO1ksYek[bcs9'Nkh:x68줕 p&6-! Vg3bl'*5Pf""̔@Iuō.N#tq,ӠŐWv.:AC#Wp9(`2sNԍ8d8p*sץ1U%2n7"zY:*%d"Z]; 3|{S@=?;{`rtr"ۛ8ۺosV16T̛ @:`7^oĥ'|&\kf4;h&iG.=ɚ}w\w$ $T˥d,?@1M|sU!AŬ+5jJ_{\7zXG?<{RZ획; IDATL&W/r|t+ [[|ӷظY3O9JЬɎ__XΝ;ryyAGm(&=~o|CS&(6}鶚rqqbui5z 1.qݥq⭴jr-%dlz(RUdx89ۿC(y8XSd.- $pDAQAϘZrYN[ 9Bb0k0k%''dCM i?3\&R*|@F qUMUF6wu!#*ԋM½J17DdwH9s' =}S¾$omf Bڻt:L>\dul]!ı\] Gސ,A1gz L b. >ɉ5g[yH%0u@6U&Qa"lL|^&d87⹬R38nG=m3ʂUMn KG?QUL&&y_k yy*Ü赤'u}M*ism'yϵj-rtJF+ҢIsK޼=r]I;O39KykGd{|5{Kٓ4FKgnݡ 9|Fݣ9"yO>d٥fC]6}J6ەFkCפRNX$ԁ]1g7p˜H &Gpź<`Еx̙{4yjJU"$Ja5JfcW;g U0ʙvA noQ_J5s_r#s ; Z-;,JdQ@1iZ+eiWJ^ qBF?3:zP}E[U] i`{X7`wEP hI%-f=-pbD7\8`2W"ڡ&5\ &335MY$v~cb9,%5z4̠ H2MI˹!5Qg61o~q U%ݍU9SV%ZgO%2]m 5SYC_inoM>X<*fWUJZid]9.>~1Lv ̤\9یഴTU@#-x%5Y`CgJ9mB_/tSùRvG7IRfת{NI-ާ.c&Rݗq1\hP$ hָK>`pxBX)UdZ'9b>nerx*{;;y8 凜 we섛6tksCMӞќ RAo mJӥ ȆbA [0]?3#*䥉g+%`{Vs|$E~-~5R3Y4dg[uߺGplx*|$R:L `'+۷ߠt @=j!s vbBY-$ooXݿG32(;3gӤN;wمiX äxu@ QF>ElV!bvegwW~tw@xN22?p2 I)ë}.rtx$-z8_c&-kDB62^0c$;[;rqFNN_t¬-& \\`Sk_=[t?<9-JdZq^nO p2eh2kœ_ _Ih Q<{ $]FGn9d6rh(?Kl oP_#zaSOڊk|ʂ`@ױ0B'dJEHft0 ׎ꕴӫiYcs_?DR?:+Cp(}p0Df?fT9҆S✟<d&r0m>*!;RaYSbX ^_8VeelC*W^?Y1U74X$ 8K$n@ ДH.~8̥;KpeC Iⷂ_{^d κ{E0T^x .É: N⽁Km92)e|ekRVJQ{./| .9R&&שǐ)F'_y;AV3O]9{V}wos3iev3tZ2$m$,/U,t&„(tHk f$ IΉzIMƛy,XȆ=+ 9ٚ:*#5,a2ܕvt$w=/_$/2V3'ղU/Yj5I5:*Ӽy@. 9?tKźi%#FՌFA/*֜xDo:5gcaTOIN9KHYFL;7Қn0b Lrm`*G=Ռa8'Aj6 |jJѢX+\\] G>sM,Ke2+lL5B)2e܇pcX:=n5h{F*aveQZ>皟k.)c1}oEJ9_ސ|)]Q0kiI d͌jc(;ImV ͇lsAɢ !ʼ:nR|Ilj&E(@0DM:FfrxtD DLCi߻lsh6Q2πGrk_e տ:/^0 S_>L6mO`1wYz]ڝf#bǓtMiTWVߐgr]| ,CIV'2d2(cwd{/i{q |ys{rt13b7wn>K>WxT@/o4ZO1xNa84+y8oADlLS˗O@㴬&֠Tt붵@ ^.كyƦT%Ƙ9ṿ${x̃\ٷ_P}$#}|{9_ىR- 曯ʣ |,o[>ow<зdxp6-!ΧUdZ/'=٫%_X89;ڋU5YsLnt[2hd<}+\ڛ5[Rf@^a m"/M~´l y2E8 =bpjM#q[miQH]/9!WϟjdyRD L)#|Iud!4,BcGm.e1 ӧ~)_?յY f 髚H4ɪHB3@&wP1SO~"d:LR(%ʹ8/\S$Y%Uׯ0U'935؆hP`HDGzά/XMөbj9_JPs1qrPoa$Wؒ~S2`J3lR}|f^ͼh匡]DYi3m.HiY+gWY4 d(:Hm5l-981LTe.dq KaXl(JI,FK洓l6:RBj.\}*]yr.y`{1^+AXrڧf\Qa"%dxKny2Ĩ;}ٮ/؈8΅`9sNYufUQ30~4 `܄ϋ /t(}4KuAWrWc Ɂr9A `j)~_yvdח} ^NЋyOn@fzt|"^ 0%5Ft,.0M*/daF-b">kD.ۗL)\LR./drFb(P..N荼=z#璗N-eY裙46 ]:vi.Z2Rwe8T0l5e>Hel'x ߕ;w- ʒQ;ۻ\^VK-DMcs>Jv_Hmy{$ܿ,g'RCJڥTd n+ dy-ɘ3O| oߗ]:#RE.._^f_:$]J1llݖ~rgrk4QbfS'&W?9iPf̣`kMfKf0[.QK}eVC)c4 `/8d>x~ -Ǟ5x-CNj1˜JoAMd<|'rtrFq¨\_]y|- &YAR+N3Bv=*fZ(8g<(Πc.]ӂ}|ҙΦ!n^SLj= ̓ܗX+ o@#F}8ckVVe4ļ1|2Ҙ_hS9ث`J{ꂜ8D]mc^ @~"円o``ZRg*K.fd&!fECXe*qcFȪ+'m S~{NJeO"3}d*CS3W(X9sd4aGJjnwMp#7>)&I9CVT❋XP=dUylv76[f`uK鴸Jβi͌2C{U`˜RwG; LRI8ʠ0m V2=kC(3u^tOS:r`pcLTEvbIA@"s1U鰯  &I&4~REy͒ 5 T5' Ѻ{LVw݃{G IT&P)Lތ%v~5EJrk߹Ċ`zerLk' d`R#|5yv r5>6`S[ {2'gn{ v$y$,o3B(Ʊn6da#?l|ű\JZrsNnY.l Y:HpZT\MeR!Te硰IQWt;\V5 !`SچHIJ*JPJ$:"x*yGöCdnB0O+KL lvX0Bh4YiGSͼ2]ѼYK5+plV4 Z8L݁lөΓ'#/n=$/(lOc9;=9[dե͎>lIF7£ceS!qHHmHcp ; #'o`݌[Mp!턹آ(E/|,Xmd Bz[wJ֭2_!k9;{5r7=>}sz*m؂=:I[]:|&VO~|è?l$W,WCͯ,#ՙ{9Y1;wկ^<|"֝ۜcٗw<:=$#m4es{}xuy)|%̎36X5!OF}^g9+YӚpd4510ln`+mUw "΅ZA0^ )49+ *YPnʊ}| :4$J 3Ds |GXnE0,Z eщk5¬=SC} =Zj4_рۘכ~4sTlkPVR3RS7u3Ω !"H~??-!r_rMV\Εݫ`|ZƪtapQ*QLj!U4$ }ֳYC,v`gO67d2K9_r4݃rxv*OlS -7_{/+Ōh<l90Qd@p 6AWlwV1xpaĬ-jOWZH7edbn-Hfa)솜eQ{/[YCK1Ypy:(Cob<2M5KFt2b1ꪘdϩ!fuD 0x_S;5N-y>s,dN-&s[#λHMҬi+ ZXTr YC#XsHfa-BIjN]hTT:(9Ź(1|%?+#`0"*#`6$'K4#yuz\/t y;̐\rx)r).Xg7dg{:F%>;$(ZygRK5 na 87TQ쀅[, }&N_.Le<)d:nK"1KBV5eےxk\juK+"iI3c3(8f*x_< ZG#yCyßȭ;dhe2G@o/_K);x?=|Y0`덮}ޓ r-y5ƣ+-J]"tmHwk<FA<^ڭ> Wi"WΔ]N]L ]_h ! 1B&9h{0d) }G/ffE[-kRAa0{0LX ׇwЇTc 3߸O0 I*֛*~4ZpPא:=ǿ%+X}y+ֆ\_]K(7-D sa>0/)|=2ߓzKu]7gԾrr`)tzklj6?yӫڳZ2IM6"`X7ōe֠IR;b2 󀓔ãqݯo4sBgQu]Od^3Dl6MRì)2aJOH2F4l5QjȆJVfq<63^4#M$ךVBI7AlpfᕾZ{^/x "ު &M>6%dopNJ_8#n9䰡 xh l[uG{fx*vjn_gw E8I>w6VhCEESqhۈB"h.fՠL߾: IP)R5$&c>xc~ƮY2`pc46y ŵ21 Κm zt-H RBn&G`\P!7ox:e+bN_ZӻlrTQrZM@\UZcRn0I-%q. URMzB[ˎQ̨ƕTili0Rf=,t.=믞ʝWO2N08˯~,z, ޾yRF#4= o$T,/>cMIEW_\R,`2Vk@ٹs6yNnB|>䲊>8fK*2ƞC!G|30Pf Ŋʰ\7L} JQQ̂OY2(5{2 U& óٌB"7x>z_WQ^(aƸlHctD#s8 qUHiB|2Nh+lB,M5]_mt!u&J^3fSkvjgqN )EyjC٬Ɇkj.!,j 5*]͜_a{/ki}(LFsj[k$pO$U,9WkvxA̱ЊU 3q(x'R,r)|s6,|z55^so3gg璦 yxܾμ 1:ݟq7}m f̋SftMi2Y7Rt\}3uUěB h? {˼?Hdt;!rV aXQۮU6Yx^@S`)+)moIf@^Į TWxekZRg4DM̮n2>CX кmi`kKk.j8) DՇVcם | up?a06 y5pAjɈDAlej̕ø 󣭬هS 5Nnq& hK9gQq5[HݑՐ)Q2oAQl¡h$>~":HoNp^:4Aq%dY<22Z(13d+R, B4/lyIJt)Ү#{Yb*k4y2j&Cm[D/ FEf3`$3OG ;]4"Hu4vV}j~;\FeVŲGc"0mml񾀤f E!~ e%sA',n?Os=;{֮V3)V32m]{j6ڐ w+vq2 98gh\lsA3< Hw]]_I$; 'jgbʫWϥ֪v掼~ݝ31[t9޹-wn?lBoTx{GNON( ve77 c1iJёnMЃk14`ηwDcn}: fj1^CiôcgG(;xS"6#.l .oŽHɽW*ӄ&h0 sdĒm m5iZᤜq cLҚΉ/wGIŒsW?YZm{1_,X@32F,55kcF޻2OG2ί nSEiXy/ _tnZa}]ka3ʅ5E/"$gA`&ĸ Yett ៼n.AZO 3k%KꂃrJKsXm-0^_f.sL*jo;eOYWqU|L`*դQZT%.G;mfܣ|I\+&Qv˺GNBLj@M"،͐Xܚ{ypI62h6k35kNᵛ,7A}#雬u`򥺮!&R+ cFYVX}XկUIx +lS IDATzb>*T+dc˫7fDm_yelN[E.B~*OHW@jʌ$[+}a?ؔS X'g)7ya0_J>ut9,2oTƤ W`X)rSZK+3܌ĥ~-&\\d21F2ɗh;طZ].NN}䶩ʆknTYW{Y33-"f0sdNaѯdPɻӗr4ejV(ҙ֐)GF@V3(u0;֐=^VXB䂑2aVt 'FhID8IR3sMTb$ o_]`pRRES6BiK QDJ 5 % (2:_RWO2tF=yuAsCf( De> E+΍*fk{s3#K޶H 68O[V$K 3/!P.zZ _|3󪄉Y( N{(,HyL-%e0mIɖoWhe)B&:m6i9b&,`ļ)׳oɝwY94ሱzmKJIa<3 {vv׽奌f ǽ|Et\ʭuk_vr|z"?Տ>%ʐ-gSi5ڲq 2(1Ow8'n-#6jhd:]?9×XLedc6yp: g̡j^k6lx&[[#fyKhn;D@ 9(dx]4?&ۛl0sJBA ./љ}#o8lJIg`ˢA RZ%w}O%wKi9 bzD^>\O^oJ1(gd߼t[ɚ*ΧiM23v$kz}N I/dZy(^t{]LeNVr~5z/r,v_㤶zlXE&B\y%-BZͺ\/%5gRϚr}2YY֔()ϋT=iq5OWM..^w`ee>{ekB!"*[ 59~ƆHd׿nbט .eqrޔ kkKLq [S/R2PmBvBÆz+s4iJ$UFlå볖GSLޏk|w0t)3QO,`X$HךJW4dR.W;HbY+P{ ^đ&B\-rLےAs'c=K-Ìk&]ɱ#f/f\q.滩ۮ_:e]+c| inmL/ µ0 c!3YyΦ&Ҍ$'+|zL~2`&`S<8Ύɥ9,MJɑ `^\5C,!^' l>"3ֺx\ VBL\MS2!c›0u#ܲπQ_̀Pը%YYʹl*{;;rU`0 I\7d42zZ'@+|LXFyh0uJ%;W,hYlEǫ+EGs05FGpbFǮ1Ub] JOjV,9!Gk `LReH:dž8-'!i)+X8&V`AcY,QVg={,3焹ޤ7e|C`I.IAM/ q B̴+oӻ]܈8kΉȦIP{os} *RL*!O)BVLM84s0WO? !7q~yoРbL%ǔu*0۽?Fkp,tnqr>`3v +6c RDM HXe.Kri40<<)=b|hT[DUv ѓ6uAʗ󑀑JT1[.7T-]5 fZ]f .Xk>=~t Bԫ1 FW3")ܛ[[lD5ЪϑynQkw0M޽B%}F"!*&#mBi-L0Ƴgi1NO 75:h5:x%nQm06y>;=a>Vfo^:Ǐ6[ |i+<ۺuA@-!0) 4fsj!Iq2hcfgW<G/ټ-l!3'YҺJ ɶ[X&S~6h]$s}Y2cqFO\ 6qN?[[U=t}"jr dxBaL QFZ l48'~tz!%gKtW"6\"z4;I@; (ۡ)wtaos5JlÓ3(@=ʜY^b,SirI@vY yQ3;&І{c {ڔw@M`Q'tͩEDq#|a.CIua`y?=9BÖ́Ͼl!2wV&6LM)tw /:S%\b> RI(uY(R Ź $ޢb2 QLőG_HlL1yxQSAkYt݆\t/X RM=ӥe2T;ƔF[NE}Owqeʵgj $ϑǦ6":,~|4 k'隮ސqLVFɳlE(>Q]s- >yY.d0jܺC.ChZyc!7t4eD!7D&S٨tC2RJ#)jiYm}ٿ/dJd6eFF6:,pxt3+:-0Npg.7++] rQaW>z7nj1j :?1pr|mGn@OFgG?./Ш5(A޿sf6] KRԪ tkKYr˫36z;?y+`{{8#JiB&Ew<6a\D:7n㣇XLR yFyyyδ̆Wu%)&ꂐVU#g*ww 箢E''J!xMhb&Dj /)6?bƓJM7uAV-fXL'3 eD9vԥFje$cPJ+!őε-ɇuCdϊGxF;;nPk鮀7 <5,fg+Or_kX6܅^ Vm}*:Z[ O>MOU\g.yN] Rq!=>d bRI&ʥvs"T/)H1TKu^mE^>HEUhd&BP;ijG7$OA*UjK(Y' :4!e.-&W0QIݚ,pN.kiMMk jh @JFj3cjˠͬG8;{Cr}%.Ϲ'J?@zwnrsC"9>sUgg&nH$G!qDκф*J(wFSnuIjr5f!}d&ۧx\ט}y?G_ bBأ kbhSf,j9k#766yk{~v&3feMi AB(n~z g lb& &4'mNSI\ j}reܾ S K8=@#~ edhvmC9>1.vFv}ܽavc3!*&j6L@{uclZ|.//)?sAZaH Z_G^%dLQ3Dt8(NPm"ĄGtqpRMF= {;Ox+_ruu5 J$Go0g0}fBϛzf05m)1_aVr(b;Nΐ"':ûwoqzv$*7"puu{8Fz* bZ6uy]kfy9t {)eFW@OuᮠצunU6 Eki9)mVX)x/L).y"וY_ϣnֺ/\k%g =#wG_1Pf}&gtkZ_7|q [.| ZHt[La|WVҁ5tݫA.*H.DA/ٮ F@Vݢ)\haZhA Ixr\ژkTiKu?5d7pf^Κ 65sBdS{)ڧdgT#ezMa55j ]]vA}}kD;:7[#(`Hh2cQA~-~(RcU! JKi,yMtMS(T8BӚsبV,j3F w"k*E(@qͳb7 Dg!GVdRŤihpt|$3GhZ#FZ;] xj)=V̈tytu_Sj~y mr{)l}?t˔&[Q̷ 4o<]8@5Tj"@η8Ϟaej[oxŅ[Pqb1$l,ԘVqdZKtlB 9a6C\a"Ȅ0RC[UWa= ~=3MwyFJ=|{/^>cj`4B +L @wB֔iFmb9ӧccc;{7x80ьP .7Sp лv&t4 ŚMRmR=@X8M$~g?V[-֤ŕ?-#ouyqzĽ;1c}gZWo^[|lcllsg'xz}>;mybԓSJs{69UJk7xFJtjbU҅:8shk8ZSjNoLh F]lsڹYT|5eu-RJH!5 tE{ =9 Қ,,c &5.(:JSI\z *u94<F#7_RmQ}/J .E~/0淄:avèС2&TT0TחP6HNʔ; 2RUT!{1s[jt07j!AJ=x_Lr$3Az=]5>ңԤ3z u~}{zW}o.ٓ4ќ UsHdbYb0r,Z` IDATϜJ4k^#d1i.&$Â֛]4<+'%ӌ+Os|_nTrf곟t%Bzf3&sz0 DXy߷;9dn"?gMѠ>V͖!VuQֳ}Fb=f$\r%O8$G\Ir(VG7ip/7wvgj˟fIC^@# qq|$gƢ7I|,5zTB̯2 kߞ+GF渕JN$FtYbz\db'Y=ܡ-GAPOt5:ku(uAz1rlRte9&dKSr$G2GVx^mK J͈2hZ/f7^Ű~r?BPC$Lߍx6Fę9:+m f6Y5#rC3p$Q7b!It9WdF56M )&[c,\B ;٘ [dHO8&VE|B#1XSS\hS~Vd ]4D%S-o6Y+`|6j'ͯ!1Zq^捛x gS&}d o Cf &*;U#ڰ,#ѥZ2!T O uyR<`Dl>_}/fXK";X{޼|_KL&#|^__3ՙUeD2\ qs۴&͗3|ǘM\ Q+D&4g?i@tt-ֶLKffbg#> |/߼d`M-..1 4=E#kؿQh%gѰ明x|?O_^w#9gޟG|Yשqժ.01?<))]—A$3Ź0Q=6a ) $5ݺ)e2+Su3i\JƖVhT5UrCqaUݧhȇNWh&GIY34n/Y΀iș.%;/[TC04K((uH(]4BEC MԜ.]u饥] 1JhA\_a@C˯!Ki}#F(:` $H~á0QZ傖db7Z@j}+ sg wOX?&ϥ,[L)V=kLA , >rS(\^j`!RXHƳ+\d$`m&C [j(WL &j0|?G/3#SiiǙETOʐ?#K=hrvgCp ֯!82f0ӸXDuυDtf)%{KYnտ0RJC>[!CfUF RVw/A2:S`U+Gc֚&8T{*!YkigV&9y3g|A󗗨_FrV( I^9Oe1Oyq$ ֡; ŁQtȢTAQL jDl'TWD& gՐk*ILn&<@5rOygatIC.)f TXpTG~>K&cu=efU8R /#ΡZW:m58H F0 "OV 61x:1$4X]Y)9p{lD/$Hqrz͵ L_|bf1!I-2s ܐakV#gˎB?bIH3tnl~4یԐ })UȽ7Ȳz)#1 yHݻw REUo6!ro߽gEgmQ2O,ZN0l@{!?_ gۘNGI*R#& sncHC6-t׶l CFcnmvVQ{9&iud9>y =ݹk޼~ͭ L6g'K4]F{wvwC4HL k!Q)$V?2zYn(2gj%6-f Y"vFL4 հ1?DicÓ$dDqD['Z, ?D#^&<ovln5eWC6E1:NGk5#!E"I9$; DӃݳ3Vk㜂0gdlX]rƛL.OV!)*匟i`fMbOlydGtZ'eLeB4hǣtQ&@NQR});VthӺ*sgHT2ET^q ^$ռ|~g6yVT𳓬H\CE8"y-yfOua|02ǒ@A \(ε5RtNڕq%YklaKjQȷ ;39D.F8RNѣ?^qedF׬)AL^rK9H ˅?EFKa:V-FVyl ] P eu٧kp)Ӄ¹,@9!cZ#X*5"|_@sXK#F`X,㦬C]eƬtfJĸL]e e}F[5l_ADAT!kD04Y\C[j6CCy< Hu6ֹX|9u&+ 8JhiPjhpAzOGXүA;)3͑$/MoCQM"MBzvFԅ3/*NYn )h(!A[sF l{EZ[nX6'> 6e w9Q͟x J\.!1wbwk(]' &D \[${#kҶR9Ydo"=eU׆O%CY8Lը+1di fl>tzd2%+ C`5qJ77b;Pt3 lJZ'-_6ۡvu^(B̡8U0yH1|CDθO_?*X4VdGrdn0:ϱwc=MT,f3\^^qAOCFpIj^$ScT ΀Fx@zဝQaOڕn#Hq|HA| 9ђְ}:p 7ǍTҹ~K~/^rD烌HLLT|S 0Kh2iUC#_*N3?߾fe^epcvOtUdA͕[XoA RBFLkh:ܜ* .J// ?oj^i:1бrNJ Sphs1#[zョD [hh0^`2l0֜dn%rVd;@ʺwzbTF $Ӛ`PC5@2s 0gG`.oa1[iAZj`oou3Ifx;{獍E tVpv~CF4moPլӲ6Lwuɬ1g X@uLi+u!R zۈh6"OP[d<aЛ7(Gn taq97YDP7ҡ6`p A{^,9DMI3(v9FEX$^oZFh`K"sѸ-֣C>7C,Kl63&{RM^Ak}W?a0.'JV?YA}m5m{cwMQh: q,N3Kg}X[C=%vPkPG}Nr=o塁?J:kEh*Jie8a\Xұz:uhPuuYSTr9vMlqYfZgzm8'삖Ήl˰uA32%|Tejzpy_jڄЎE 5zdg/ E_|Mn*dku R'+SWXS E_#nVjT}T491=p "wQw J"YGp|ԩBBAircnT4}Pry2fY#t=RH`J u4ЛgZ{.91Chq s-|ε]:(Lė̉s宙ӔW1S\'k DܟcyBTSQVrуsnGf[u es7 ~]/]J)E ԂRY!4E>?~9z;KW+ȩ VM)QG=R'E&1Ai~ȷ.0ȆT"6<$ثS*=%4Tb`%C3#6ˤa$T=|.wow@AvRBZOc6S6[jkY5Tr3srNmF%WkBRM'UuTu() fƇ=1B6bPC׸tANMgR7s.. eBߨ4ꌼ?<,IҺ~noǤl*Xi40ІF4 2ة9Bu&:I^YUitAt̃-lnI(hxzԦ?<{7 ^~S76VƬmc:ag&$ɍm~vcv6X[#x˛jI枬Ԉ_]]o{XLRZ.1e5jkhn#!00cg_OT`j8Ѡ7rx|FS;[h,gc稅ns }HH{:lÛ"S 4O7*ĕugSͶnݹP6Hc:p|zōeo 2K֤q4 7u\  ;Ȳ1/Sn iZ(n(VEِP.O/$  < [)brЦa)+}/"3!+//ː:0=\M5+[ BD6:4 ȑ)<>Zmr[Pt۞a!5e4Kj^ ν<'ﺜwjÆPtsMO,. ]Y_-}ߠy/,hFwjHZ a+G֘8,Paz].i8][gQw% dxUݦyWT]XN^gW./3 2JZ ʭuFbjn)=Sܠ>93&;s1c5qyp^YY>NW4J#aevXu5ŵ0u}_D[ab+l w̎e`9˹!evdJ{*#P QBRB&˺R%$i?y.'Ѫz(S_pҕ&),#= jZFpiCT4WsnL qϹM 4ԆniBKrQ.!>mk=Tgb*1TOs}sT& -MqiM1ܪB ,L~r^mn\Naܗ8QP~:dCV IDATƔhk$*jS(d El@]LCEUd2K F_&OۤǪTG \LSd9nuYgۚghgmuVi#$5#YhIJ H11Ck&ɘi[vԜr- ;\LQ7n `BaJ3T0|\x6dKdrEVID!W-9 /aS+a›q<8<[g"s rNEEU8 |tϘ~{e6Kn e1䖛C-n߹soq5 !P2B ds|ut 'e}+#ǯ޾ V76Oz*:Z]r2ŒtԂOGZ;h>#=/@\i<^WHcܦ9bglf$kQ%;tyg3noosMsnnXӝ,:M =bgtKDTo|?t`Cwm<;pm_?ALM:&,[  >zZxQNWDojz9[XLO{M BIS5Jfpş3 5,G $V5ˀ;!=bFs/~*:*sК&PYSӅyܼ!|hCg󢦰\s˕{!#0[4rfApuY觭3Ű wAHVܵ7Z߉U^ҁʽQf%Y] m]#/u\`dzIp #Y7A NEut:\.?W|\mĈ5`ĨMa\YEȼt(ùʢ"!ԝ;4o<%ZKy^lto$G.2AGǢHX<+E\_p*Y|8kLڰ4+4|ժBcg%4G'⵫8S| ݄ٓN{9S2dENQ@4h\jYl`>ɰ!Rf5h[P8*mȟdArJD&N{ mSU@6A6@aY`0]&`1,-6~boVTp}s0T,&%+7Lψz +V#`GF'+ V\V67obL >9u:HSDD3m/V➸ɀZ(nZ97'zsJV!6_zW gi."\d3qyIdk-}T6le Q=DEI9fD̙ʺek$K2#!g0bAҒx+N.P|ۇ}*Fk e6>QjF)ó7 1EIJJʖ;X|ݟPoskmFFs_~Οt7à e .++8?=C5l_gmh27Ą!zsFHx96 !s4رv]{+Lc6'nLе6w&Aꊛz~Q5> |)޼{s6`tɴ{qt|3tf- yj9nݺՕ޾{N~J5"D~1zC?8 y? /zcmv;D&YeKիWX__ǭ[wy<:9Ż^훷0G6ꗿD,.0Kfr::YTMϿNDAp Q>0P ;#mzN^b1}=?nS)?;!/Ӏ }Ib2IBqWi01J6!V,"ڷ6\xC !a./p[J,1_y5Z^4ܸ:"tMlܸygO^ړ㯵֤F#JWg9H0Ee% Zϗi+)c87s&#`i5ƸsQ}oi2SWPJ0Roxe&rhUIOz&Xu7Q߷ZRЂN}9*/EXmV-Yɧ W+#QhY.}@hVVM Bi-W6Z"MtT+U,%njQuzAh9E-&siʵ\[oO;$ jy|<ׯq_t=轗t]q t˿fc%~x 9Q|)Jg}~u`:;ؒA~^"Z O(.̜K뺓sV ,CTLɂ:o4_W{B]:Fkӵ$ms68wUS2-pn-L#6vG%7ln͉*Mܼs$c{^A/_=ۃnNfƍ&8<ONǟ0ᰏ|ǚ{9_ɋqٻr 7̮U}~zzdC:|/#KoqZauyQF!Fgk1{+8<`A2r>DoNQBOΙz _`p7"kF}] 6Vl1@b+!Nϰ mss:pwo ImL`2K `x`8"66!Wx@[P6WX}z|&W<'Ci"Yh5"sDuLrvmT)" hcg C4tjS6b}&p< j4`J"ehʃ0}AZqKsm pgq:k@+qDר0۪ђс'9))յ4"SGbОT`BxWUIZ*Wy c_Ӛ94: =@PCg@ ܶ+F[15Tl({41W]fF]퍧?˥ɐƮ0*, cdgꪶܠ7SQ/=\!^фӕj6:Z\`tF* d.G%T"uu(멧T׼9&(2q݉ؽ6'+ Uj!yv3T}41L,N lZygJULלu,rAaHXkY֔ˏG3%Ȱc+W52:τ#RC#-<9&^E4PNJ$?L\zgMf83T{j$q >y[pwcc!r)]ŗ,q ZMQ oNKtaMu<ṕ}ϥ@Mӷra)ӕVTN/ MU +76n6bV 2}_XL9=>pu!n\R("-..&2_af5A(8 ;OOa{PjPqmDp0r֫|Q(jղxEk is@zGhUIVE+c{,Yzbi6իq4/5sjrm>jɍBgZHB7I H^ &Sa+u%[|IKDE3Ep)yOs3j#rѹ\>3!D%͡T˫Kݓ=;|˫> Q-mjfs- ޾}Q|WSv'bōmFe 6Y#Ds&*Uv&d=hV O͙oqxqLM3 x-ެ! vwn)iD`eӧQ(>MiIیfRyrrx lJE᭭-6bdxϟ=wqsw=glα nTqrowu4#)jYsM*~sk_|SQSm(SA%~dyV+x5v7wyK<|x_hjx)nܸM6o֕l9gZ.9JqYfkNHf)Iq%HhWM_pz 5;疴`8g -| s#M'gt3iǏ!d$)6MȨj,ҩZ Q^"@Tׁ1fVFclo  B~wʃZ"@q1'gL $nvVbO'OQd6}dDR2a&Ƌ9v|=]b4Sf1e3et^SJUJEUx 6&NNX"tΌ׆b?Rw/t[RGXEs-5uQPCc,c(JO^ R_?TJ_瘭:SmTve:|rM 5tP:nœ8r*5~j mrĖtb%utPU3)P2WG"3Xke1K+HNi>k?pˣӻrA$*T12tL0w{wVTUJ M4&s袋ﱂu5%M-vƑXՍ!2m6 VH&D6߼gmR\@f|D8yo\lnqq%WHj^5Ԑp3Ҕt*UBd݇øh"r52FH#t>+KT4`jNҴIpo2Hr%:Fa+~=t}̈́i8ƝM,"..gc~͓̈́|oP:5Dsj[VlMpgNc%5g.Ph :,ܗ%JCݐ j96 LquFUT]Θv\P/9i; b*[n|Zu3b٬&k!GD~x "Qb<y5FcAXI>}8<\oa>2|WW|}AoJɚ":xʛ#K:`<n7dnN$>Ρ,:67y8>~ &.;u6ob07cu}fC%*|4#WxY@<h:cbxկ~t/j!~@6G-P0}M= p>f 0]Pv eoWX4p|L a_lp|1hxʧW_I.x>o71s GD|jjGDp.U[yCn ؽdrƎ+[hu|SO~vXI30_b8%3*4b!:0 I(4)[V#EMJ]ɹ$7{Mш2Zk8j@.4ܘ͙hpPcX-bYFFi% 4(`ܒ9y c jPl gbAYAmnP|pv71:wzC4`^QP\v{< |šE.Q@^(0pLO*q!?^nDkDr(j\ I^?<'SKCmIZ^ezУ(bvXϧU[4=Nme{D%!r;H\ծ1whPXXJ۵kw =k09&iP?m};N']ve M5AAy+/\w-Y d *~''%ˏC'Z}ň=Rq^ܽ`L@\)י D&L BDF}PZ gU-K̭Ux2CLtkhu hR]uX&g0R;P3pJCfUeO~?i^??KХ$d#*7E~Dp6L3C.#Q?xGpP:\8i-աLwePW.M MQ5V_N uuY]eRkQg9Ф SS0pa*x;Zfk8;?ʼnb6K=k,( ,CB a;䲪1Ќ]B ]ˋ\4(6\W뺍qn[IQQJ. z(OojL'&=Q.mEYCbX!jG-rF({|)-x6p6Zœw/i"ȴ4ق):ߙQlKvΌX7I i6Z+#FapGG5V(-@: }kXI̜H3%f s.R IDATF&mDFȢ}&PD τu&vˬUr*߰jV\MPRa?OM3e8[4J{ ?ƛgOiǨ5]lðhdjn{#RarBn9Je1bjc:/|g.fݻ禪3AX}R捵RF=tj; zNU4p6΍٨ ߁d qcNQ Z!B='(! B+Uֹ{p3 pUl\wÕ ,6[(34ŦXoqeuW0f"RnPEoULZ&RfQ$+W1Jf7.s EZiN(*ĽBi5V($ۢ㠅61R:Q3{蜉5y.RXb'h50!J!4W5.J2V|4F~P$ddRMhx)OCED3TQ Tj{Ope-FG)o:Q:f՘)ؤ#_VkN;GLYw6I M;x)UʜJg^f)k j7jr\ ^_z{6.֗^`=*=`#}*9ҀQ̣. 4j)\_[o/CD>Hݝ-+N&CM/ʟ۬I6c2zF ШMOyZ6W*Uf9C˵*LJqsL5r-4 =TNG4^$mn\ݽ-T[宆Cf\Ba^[2 F%l,9f+ۜ4-ދG /}UcuQg3e7jb^8  8[yVks_.B݄d Shjbc9j4.A'ΤkZLQ}tiRϋ1 u:95n@Iu$3%*(W\ ,7BEOTezi& #50䦔(T\)A/7[#zhٶos-5tVWQ $ g\ʫq:J_b=kb'iDWV08蜇' ΰ!gYRSʍȋ/S},AxXn7[/{?O+n`su͛\wttlF4h=>hyX\`7^*7n`}ytnzoE6:<>e]uZf /\Z3_}Uɨ`frh3seܻmިaymh`6`48 O'w0`qi6d`6!vQlX1c7gqe?Wկ~Q^|#6>ϲSnѨVcz㩇箿}[/}*mlm&tNgTe\ܸy ZSKP'?1,1v;;Axxŋ w Lu am*˫ 8QiT_GxlĈl FL:IJKX),m\ELi5MR'Os5T5[5~zʑNmn扚K2ߣh ptڣ3ng㜟'p 6N|6MjQ)eFzP #Fc0$*IK Ac2N:~̃5y3~UDz k4MJJ%^Z:'tNqˌ(E=9Y ~P qM{Rq-rU:ˡj+cU)NÊE7Icr4XS9U+m8UPTF~3iF+]#,M&Lʠ8ܡ-?XMϙ5Reae{[ElyXG3Wd_7&p5C+7a~׊NѦNKd<>.,6F́Y ݞ噂hv 䪸̕86L;S&XG)\ iSxmb}1#CSd5oDcgAmywK݊+"9] +,f8hu1X)9uc4՗hІ͵تW'JszsYP]EbGuaϋC=FpّS4ӴG'I7цkhP_ʗ޳^soO_O ߘ5|W4 64bՅj9oRkr M30ڼj&l٫QMdy&5XM'n|<7MB'd^9kwWxCLFM2=1&l&ְ|{[S lM AĂ"$J%Ny`Pqw[G҂-@ܺOhQes>-ӱ|v;B*ϒt ԕ RƓp .\"X7Yֹ`50ôCbp8>>fw=M0hМ[I{{xϴa4~=FW676PT%Qv{~vuEUx֖v;"ϐzSً_]4k%F16̸ͦuި?0JM4o?ƣ0f ao0Bc %Dmrse|?6y tOwxtTl g.B{~))kpS/bl`b2qcH MRCr5nҥ8$_Z>Qèz}n$f>? (a?1\BG=XJӳDh!kN)7A`UAI #rn/wv\bS1xǔUj2Òc)p.wh'g1bJܘ6!3>Gh[C4u{k(IBz*Li&r)"Qk6hefhH@ùh4f8!x ofA(40Y5)wf4Z2bGΕBφwV5bJ-`Ŵ8+j ft6TO!9b2B 5*3Әxj%Vb4N똣ڮb>845r+2]ClT5RM;4 ءݼdHA3 &u.xduag($[Ǚ;t|P({E2E\q~nNmv}]Pc%GyCu$!h3k4qbHRI½7TՊ^ e)UI\Ql@ >̯?yMt~T/"~W?9v7|ǿB(zW?U-tcWgpA<(qtxΊR=Fpg%i%6BsE%$4sKmЕA -r4ܦnV=BEOq2MZmOP"S1?ǧX_&kg[EL# Ƅqx_\k^v:qnӳ3F3Zst 2(s/1zM /irlѬpW1M00O,TZ͆J54 NHBo3,-Q-}Ϻg<#O ;:fd{0<}da"ƃ>J*I8:=,ja$њ:GSڜ2쨟biH&u4mK@h%<_]i0\X{lf"G69ê a(i[:LsIANy&gh>[zȝO xLVZ=[iІ+uqrUq92URiMnNhu6YQfSE3$cT^Kf<~-7&Vg]ghMnkX\q5:Pc)+%z_;ačhSA/MUfGc X(]1T┈!VB4%l,K]$VBjTp ;s|.ņMl~_qmcqbm7~o^ƒi<(1\u<%Z(c,6@b=Us2 b&^x IDAT'y#U4| tQH|,U Ot+ijFC]9羊ᣇQ0i 5*HAT!x+>Ei'S~ҽKFt4$4b4s"]ɄL䣡۞-0#n0B @aJ4 1X7 D͟"zkR(K|OdK1\zoM4H3$)Fi7YsPBÎ+A[-SeFI83~dλY(3_ pxd7^F\mr'{yIit%eeƷԖp$yK@EvML͙hE39qlEڳMBx5l4>-T%y5\Wg;+՘g5֡Fka$8бFPsͲB<.reXz47QjL MDP[:4zӇms٫>8j5FՉ]D*"w2[Q! #2m8jMFUÑL!saiU3LAJ2}1AE$?PXkyM*aߋ2 TfOe=2R5*&ӳb2xs>`d *f L3DyFi:FN@Ҙ`FwjO P\x Dz6!r ќu'47>sOQ]eQ?jt 4e˜Nʦ$BLu]F%WNzNb֫Hf7lc4|ޔ=Txs: Lyޛ[aݘsmFh! CA!4GqD;drB@s Oݍh .$ ʝ)ҩ:&޽Z&Jx?a*xzp[/!< PENttj$KrgwT34:)ߗrwĭ^> {ƅM?ى&V17Aj_괄3LhToXfԺ\?B=djqv"Hh3j@gy~#|*`=frl ziqϹF$MStޓSOtJm׉17jJ߻aDn):g'X^݀6s7xsiz/]V{"6/>Ӷ@+#"|k_0zm~Kvqu'ܽZ kkqdA #35wp=~>bN;co¯Lq< ywP`:odI4By4C9 iٵQyX,Vф b̢1%mVD!N+tX45DZx@@^M^B3)\^ZR>ygՃПDEWJ9NLMMuZp8z5o1u e eya}W*U^ELǎlБ,~Bc36{H /P&+U:f*H/oB\+ԙH'{C\mޜQ(\1Z+:#,?: ZRޜHnK6t9^FrUkZa(CRۦTӈ4K40JIui)+te*/w,FScP ꐶsef讎eMJTksJx]ӝlLj c^0ø8[hZTbpl(|Ggd]0/YmUT35\dOZ8ɏ Q4BfL42:w)8{t)h-D}k܏^}oGqFh.êtnx%V~vώ)յE݀Q]# h8g7F.j'U6N !! Ӹzq6yNZdu"4pШ?OG8;|G>ђ$kO8JE]Te~Uw6M(d?4Ng:-?qs r?d47c{+2;Mtc>tR#cp64 Ri}8bLqZ8}kWAԴi W??~66ABM$&B9NSvLM$إ~hS,Q⌢ i\৆JMRB.gx(ZE-X?^f\3X08N#k5 $ERBz@:Mb4~t _T($[6_[4&r6l&?3⳱١2p'{{L;]]Z濛N0vj9EK[ˍ:^xӟ<_S̵q˸݃=S}\}yzrST5Mכh6zXZx;vmsD %|4t ℣>!fZ8|܇IhJt'3\XYQe4&Tz J\Р~ :)DZij 6#h+5D4B40M\c>9+~yy&㥅*޻eL dWݢDXtx!r __CFXmyr ax:}1ѭhk}t|ȆsKWКk}a0Rbn~G`6Fs327MtVAm-W7n]+ceY8Σ7T"zz2@ECjL`L8/J 2J~sŒJ /#[5N->SWhFj@%Mf~sWF1 +Yyӣ#ԪUn&| k0GY< 5>4\ }Ze,&-EG}njY͚ ZkvSQG XXH 6kLNyXVj>2gtQzV ܜnX/nO vr]&ipWPg8BX =.W7vݢe*D@MzSQg}4i5쾟:(yyIuQ kN-ys_!ț,T)&U ^k/`7/d": ,P!yj2GF)ڡV2(an$#/GQhSd<)~rzJXi?A7;̈́4޽(|Nhdڬq .̦Y>\*/656sFD[OG0:ɸOvQo7P(7ўyspk)MAC^ЊAX/fmbRZ 1 c%FSy%8-86læTIQ@UjQf'Fz]=F_C<}= FB&fbLi?%NӜvēy֧r]bEi2%vLlV>E5)񌵎Q^Gt\L!vǓzUݪ Uٸ2+z/BzRp86[~+_zUxP^!wՕenace W7ѮPUM'88=p2x|nO]2r,bҧPj^Ak"<#;CZ-D#,[C~F@dD;o}ua QJ9`%x%vAW?5]BRgq1V01:̴ZBoLڇxpV nsqB.D9sx=ױmz >vGz9%=fkSI˃DZXb/hVB)yJ{5EW|:$0J:-}e*/sVDƪkf͏8/E+b qy;3*ukrK|DYKτD ;<n^@,jd'eUb\eXGiXY4?JU@+I (^J :﹆ޕ,[*$.n)' u;S;JM>p̍D HMu]O tihmMdvrN/jZ~޻] zߟ×~W"1;./*L(H31>L.yO*:PG^74Q. [}Ӣtj=329]iqz[b*'L܉sYnVs e:>ܙ~țgQX^gqDk1ș;eU)/,Ĕz*F$;0{\yj7,MhRO=n(et<Ļ;[x5r !!x hGcЛXO!7vqf31zz xvWeT5jUv7,Wڸs.bEHg)v 4X QD,i_Ʉf<`yaGǝUYm`OֻL,`3xtDc/c6TF;AEcwE2бA7 Q9K!gnc}/2Ɠ.N=>G'lfɔ~ocI3-D62NIr\6^f͎DۦP48$7aji/tA=Thx:Q6bYîՔM wi"0lǺ>R:$rq)9-u?5J76/߱VJk,Rc"c09R*ޛ*8.~BHF5o,#"b91A4&%WG8:W6,VT[Zt4Z8g.͜^3ܞJ#xUyxi^fFDnE~E侙+ǞȚ^]]*,^tq5QyBQ=^29bcΏ-.dd5ώ/|IPsP5 .U=NMNbBDi\C&ix*KM5popooKsXj*%~Uz m<Q*"~TGRNؙ8 4`SF4Sn2i.f1lb`G iVdz4HryMLh4^@-5#ʓG6A9H~di#fBa̸cꡠ5eLu6 |?H䁅dsRw8ܪ>B3sRGPxpQΖ1c:Kq)z q*AT)";El |mu 7ylEtz=qd$s9(i6xwAQbѪ71zU6KsvdDMӧ$r1i1\E>GQ՛sJ^uM(Z]2W~q:CᢔjSܽ>|_ޟ4ҖNF#u&M=a U1j&Z.V9闚fVxM !*%| κgܠmmmc3khXcx1 bDx=,,V[b{ Gvq8Q qrzr1vu[DIJx~:ƃC̵8>yTRj"jfɈ~)#@) 8Z ( D҂:He,-2}2x NɈ* 1$!67ױ,igϯ0*JoZCjpEewe9}DxvLfg]a]2E>DӦkc14PUH28#g`U r?=MD KP%6jkjhx_O1%<>D>}zp0ʹXT%L]\f9俗әQؾй6\in&PRJeK\k3n֬;m>qG K!y,f5lr͡R1SMW#hfc9L NkZ>+ٱrEr>slPa2o%Z]XD Nc:a}}P~7s\Ãkk?)???,m֖sZhX|!YlO7!љՓ( x8 CȎP$[لA}< Qϓ1q`2ud3A᫤vd~F3qVϐIc׉<*`>۸N/0|`ѿd}p UϠhu*6H@o:jP&Lqhƹ&MWABW枘捺[i]sZP/!(&? YP~΍ګ|Iz2Li_t|ox1 ǞLS %v{;z/ r~y ΢1a @jn>wdӪUcdU N'՚89BpfД'7ژup4"(Uq61V)cMݽmll^hQ%윜vsW)IZEMxݙDH0&NNO}o|Y`vuy7nyI^WY#0ahvhoo^b}W뗱6v>MM:l%3|k_Ƶ_[˚NpZbeSE29C! *5:toKzۘo==E}nfFEB_CxS.&/ SFlu)b[h9\ G],oriMxVm}wXG;Eyΰ~{;1R(UjƔ8?huBpҤ 29V(Q,֩:JT5Ų68^6]Gz3imACA k^d"r,C+k JrDeΛʬցT;M򊳰f3u8oAsvʈ5H2tB W%_!6%6W1 gz ġi`L='^!deͦBuJZL䊭 }ըߓCu@ jdI#kn/? 5}hBhL^$.uCӅ0( @'4Egt-T{=5EdJCutaqqcr7LnwV2w #Aؚђ+nV+YjQoDսuwiƪUq 7'̤V餢 b~h|~-(B`9y4i{6-.(!#IX9o:Ts'D ;>τi8 -50]JK0P K؜[ş7f#tn3B+2zƃƳIfJ'1 a2, L2!'z=u^*S:BK>kT)GpAFW ,zJ@W`=L./-U):3͙h8[2lC454 ]7IVQtB "WR,.%z0Ymc!Lx%!&XYE]̢>;d;$^z&_wqrvO|xsL{$3ԫԙJ9{+w8f }An6丑V677qttv5%֙nqL8Uo. 1*^S!{F(ک[PB45hE!zs_Dt2Fj2{G^ȕFμ΅9Dzߚ`4z6Rץ+)h7^:#o:f^`ʣ# z}Bf32 Õ79D"g_(𽱱~ W.>ų8^y5LFC%8:9b8!kxze*6inr#yBx1Uӄ  jEF)J&]X!/rt5zYAlxhX۸m\tw<@E=͛8>>hh1QhǓ\te?,3}:!cA%SbY;4mF|rcg\l2Sf2mLC%ijRu'edENgb:XNjIHj>i!=GӀHKl9ΠFbmJFDFh *&8nlldF5K"Us4O` sEN"`gt8JeѹKQ[ev.!͵YsAnzX@ՌQc>?^}R51NG ώ[@ak|e@ՇxғUeb2 ͻfQ3Yk?ul\Ckc0+W戫gYWЯr!~ҠIܰ3mMY#^2 (tȏ&I55s T4 hd{FDpxYQYnh DC38ͼ'|`Z9ݸG*,J|Ki$ۧyC~#P[?O@6#<4~XInAӛ*kW0PXq0BeXDjY,ϡ",(/u@6o@u?(\ʱAJ#kGvM~~U8Uхk][Rэ&A\9І#Q6& %\('&FhA\kbQ<>s%lq A4+1#\t?{Ny!3FIh%r 9gUD# K.NfJed`Gu4"˄j%Dd=3u>ƓCm s yX¾ "#H(#RRE U$%7@w'z!5%CYL1 -}LYbS*."gS%p4}.0zE;,w9Nq$E( * >LCrrpVvm)be˗8>DWƛolp( huj`bz5]S3ߚauFK˗''ܫo0e((%QE{V1!S{Lac2!h(SFgo ʬj~sx>`a?{oY367OGXYZwx  Jb4Db6 ʨbDZ㸠J}]?~Q/ܴ o0jGŜFM0֖̿qz zՕy z+ #ݓ0xxdcQKI9X/c41=Id>iH< ќNF|I x !99,w3RH{X Hndz%im&vI*yթ2ߜmऊ(Z0(Z1__YHSh6K봡=;5ZcM\&;RWl8lou\XrD'pՌfGsD*Z/jJb23974Ȣ2d5]9l<Ĩ^i ("TlO,EKh$S:d2Y#L@&Y%~ol5  F*$LVt,7GuepCD5Gֺ}fa=rἳf8F_i @ k \->ͮJ@%ΤsI<3FYtx3U+gUdy՛3P3ʜ7I:ؒasz\)3MY+nIp>y%XM C{>Bh"[!,Xnp@ $J1ro@7iDZOJ Dg6h2Q~)Q\/lgh-}M\3|5r?ܽGe[zPu+׫W/t`' jLxbDz`9€ID @)LÀliK2j_\^[{bj"it ;JlTS VŤ 'M]i a|:)fF%pM.D%s'}dF178Ãg?b a_=MVlSa,}!7c2 h7;Ll7aNNN|nemkx͑(~f6K Vߵ5L]X3C-Y`rLRs@A!\K9t^v0Mqe>>)_KD+F:%$Lf})!_%fB.9$utL$dн=1j.߯޸~;{hڭ;[WCRQpa2"qDaay O|/qTz /_kS%_nc:>lD9u:k`ER"qF@׸Pz%j Son xViOh*x྘'QTݢA!6 B)3r/vRD : Bj$)J2p'ab?q N:l4f\u&hp||BZz5js>fx&;6"#ċOy}8F*2"NZkڌ$ҼĢ K?K81RpMrTB<`:Uc ϵ1{JDMfèu0%7ْ6y bٳ9&7C){ڈA= '&ú´Geh)\ǯ#"yu:E;V=2xRuO&'(q::)Zh䙪7^+[In2U6C?@mðP6y|}AYuC̕6i^i>C)'Egfhq6kP.&|ChMZDž^_kz֚ \*/5[ ko3'M0]+oX(\g&2|, Дk64*!Hu1EP53<ל,zI(i/ XZ1m53;O& IDATFYr^n=Nko0|t_m_3]xܻwo *xsȁ@*xsє8EѻrNY5BTP[͜TL68x x Ԁ!N@'>Ք\q]y E]KCSjq *'Gc Ct4?03Iz=FXP-b8SzDP>Ikyg?S{nS̱;JͧFڴh]|P vNZE1 CtQJλ:gEsiBH@j hqiEy9=cT]2eCb۵Zzyh:·< jMtmU<'=FьQM&؉qDXLIEYIgz kX0Eh#)(黛LuM jhq9H=HlT Sj,iN?7=79Mga L-EєN ɒ]+!ªOLX (m8꼖 45Zc6ެ/wwPwqhX;pfgx W{|c\>Ul]Cj]\^;,/|<<~d,'B4Ͽ7skx[oa88 7.'X_^A܋15M$ٜ8=y Ojoͫ|W;kNͧHS7!8`8Ik᧟~[7yֽ8hg1B4k]Tkm>Dp:|xou&DhW1@y<=;HC$>SKYge*;w?_gm- evLeO;ziVcJ>L6g3)>φ\GB"G[_Of3D'hnʭbuy2Kk٬Nj`6'}^kUT[-$f1ls,T#'GX_L]b/FcF/߃n'gJdYVAL3tM+kf9D8DU1Nfp !cܼrGsz">gJCʙidn@(P أ8`s=#K\Z*J7|W3J'[u*nD˦٪# &dݑ!uEA vs%{|ε C"WV|q#U @U+]}IdJ>J⟻Ry0ӵm;pb*:gz&YӴ v:.HkELs9/N57(\02PbMPi, UZKxڭʷRYj #Vٔhe|YL:@I&}y3/= Z[VgEo[2j&f=ekL Zl%jϓ+ʙ~[MK|_b54@`S2W S]R's+RiP&u}j(tR:#PRɈ;Mq7I?icXVхQ,#"pna~HHӆլquuЩ,r4AF\aATC\? gxWw@e -?'$<"EjM}2HYiOq8S~#!o L*lF)ETk@&1"HL S\VP4gN}"rc1*m=jxn2%o937.jr/L\Zt̒DT>'h6g:gk(i_l8a0ϰ?cSd5> ġf+l(BYaJhbW +U{uT !ST,yyrd"Z2.ނ=1dk 30.fN#E#LeO=D*^2rFy X7 FDM)+(L*aإ|ߑp0x4_ay.^z o}FML!qz.4XHFT bZ?l,X8X² se(}'O>wѽpzvpp;t5l^Zj4 `677?ϞemddZ#ӧ&D:†1zs @XmRm`4q.mG;qu ;&ĽcہKt#tؼ cL8qnj8S$t)O=bn4c,.]L 9NN82iغ]2\} ͅ-AtʹGqd/_bk \`iiO1=?Oخw"2InܸNSg?fZc aD,,bm* p贗ZhݣK+Nb6Pi,`Fc`*Ub vnL f-8qho Nt5juԪ\.^VhRI3nu .vv EE gVMUr);Sb0 UonV&WuFi̍h@E 2/8@Yu܌*'dvEףL"I0^@7#~E X݅Ɏ!G bg[s9Rwl碄#osL,6ÝbkS t1zqV9R3QϬhЀY&SQ@mHT`n2h}võܙ!inTkgEC?+CLNĊf%Tkk, e='ޅ;J`!zT0) _|׫b3e 7df_.9SP72Jqb>q72MH J8 k;Dnmm\{Pk^m0hV51)ܜNysN +cgӊjJ2;$ㅖ-z/r-&-Zs&V2ȬKyMi!T\驩sK&Y_<~`#&s&#<{I24 BT1*] £g |=szO$KY(#ؤY;T`4_T(_b_c-)]ԄI[[c>K]*y%"_N!W88cdr}>&!vr]VѨ _^<3dS1KS<4>cld(f ,FO};譭 Zv&VW/qap~5Jz]q[*V7`dͤG~MTh/ >Ol-ӫaapN=AF9Q۬'JRgU8L0$gX]^jC yZN+]Firp4BNl8FZ4Vkd3ޫ*_A}4 8::;c}sų CllnVvlVlB3xtѢdBdd6 ~5 9REkS5e:|}"0W!G8|h S'SSnIG !.QI5E5xL<lRF}YzHHi6 $U߈yG__KF*}[rN% KJ8uw7 FK1ORG@EC^,o|^i9",]{kތx9P-WP=^ r7W#؈n DRM|$)Ufɡ\q8^U. tUT6Rui~2F8)ϢqYY^QGηNΩC>4AXa[$r=^㬔-3_dcI&c).?'264G;T,uZs}0߫ԼRzܟIJSzWWnLi چEg<y\0&NЬЬxܸy ѨTRf济(TIxԏsuWjfs>|hc Zf8ӓGdb&n.]BT/4wkJq8*͙*L+5t!󇿆Y:SBѬLsahp; qɻt*Ռ+JT}fYJ&׼zx&JLrhNjtr]Ri8Ԭ[",BхLwĕ\!Dkkr6-,r$FĈ>E^+CRaS2(5%{qE;YR@snbd+r!Sl.SS.Lr7!1=w8LI$4,ci1I:Ee06rW.e1 @lh·;Xn5ЄOfgHfY+VӹBŚ4y4Pb>5O6'''l 慛 cƘ܌a9Rk檃f;pՍ-xN.SJAjq5<x{غe yOyӾq_׏ټC0sN75]wxO_ܗyD{ᅢ/Po,ͷv 7ۅiTTdDIͦTLNes7ɜk ֱxFs׮^%fo;S$cfc%NFG~yˮԋ kp`ڈ!oQ!5,`!ϏNṗGx"JkXoR>eD4;((qLoo5iIY_Z1jAD &hbkay%Q5T1+3sׁ:!:(69H3v{n(ONG\|Һ@u2e9KhN]IYGS6W SgkTBk&٦LstR[ݴIʞ\-3mn >K{*Ny&fyA?ٮas.@0;_H[iG<He627-ʬ?uL0WN  w,MQEn2hŹjiIu&Ƃ3aӁHE,|*kjt#%DQ6FF.(~x`4b͠rd'J?w(sTM];hkC:B%lĖL+8kXyRyem(h2|6cZ)3-ln`o! ҄Yaee 0nn]{~S/N؃ !Kyq 17q]_^A]M#mvXf0,rHĄў2j ZP =l6BMBSIkc4beiQwzv,|ʟm0?_bn^:Bk25}i"qgJ\LDsۼ^޾}!.<J٤XLD)!o4ԏ2eT٩;uLU=$ Yy r3[e#U֢qbX]tJ_ό/9(UӨVVg%AugIfL,(@zQKN <*vW5E-Yr),a%3nE'3yaGj&Duv-+<꿟)կ0 .+#F< 4]=4VZk뵦)i^- Dy#~ b?/:2CaC,DV9Uqf?C IDATVИ[b)d5(Hc%f1A YFȪ*aUCAb{dq=Nÿ?3zPqFSzrW12Sub+*hVEN 8ɽM+'& jF5V EswGKU΍kXM2R@lպ J Ey*KVgy4޷oq$ͰLb}O" LQ<h5#1#TL|S7r͟5Ȋalq<fRͪת"+VSn1 o~! \[YsZi#lX!‚{3C62'Z[hcjY8MG ΢1eA4#Mt6G&xnWViQR^DFPBn[\RlO|6=lGVKL["Ѭco Hc\槤OЪ7 3V|fg3StUFc'IiZW#7Q6q~~;wbկ| |0j?N7s-\ݺý}o`Y;K.ˋ+ܺŔ( ~*7r6n6Z _$q5xoQ:j]B 7_Çnp#*IRw4&kΏ2 2V=f`4hA!4)Ĥd0E'ؼ(X^ygaK/wPVȌf A2!j vրd6Mz&xQk`4:\ 8=9rIJ5tzMDnȱE2PixkϥθDT+-n蚧k?E=r<3)[0aO֗!l0Lx3Lz~$zQN4>;`$ u U410φJ_00ֺ0}9 k1Qs1:>m@3ȝm}ĈGȬ:X`ݷw1N0y* sVP{9/?+c5tڜHѯ (=_3asTfObitfgSeD卜6EEYnҋtr3ei%/ӐK%fI-S/US4bS5Ӿ-AI7֞9'&I 3<%$(3v|)Eߘ|(}, *JmzXm ơF]\hY&Cz] J4Le'J2ӿ"F;$'<9L2P$[1"9`] ?WBak1cFY[ 02yu{8+M^ˏԼ ?GOٮQ;8M35[)c(dr2,@taΝ $L6Ug:Wb7E2q_ΠЁfWVJ*9髅Vg)i@m?{G /,:LPسT蘱/4]f}b 7lHU Pt|6! ~ZӆQ&PQE}?<.^AjS{)" ]8j~i'i(|B6hƔy 8X ̐KjIM_fO䤛FT)(#};}1荰KLf͆<`!5Œr5ԍ)FT .Z*bA4fj`t:nC5N #j2^xiRD06hWL!/,{Ue)TFҙ L>#[ĵ)5դ:Р)!98)TᑚX#)̉C! )-&լbZьsQ@"]-Q3=Rܺk=4p#m2Ґ܅*xcigA#?b7 +8V2Ӡ!|>yrMG>9;v0My&m>5xڡV''ܐ&c\v;k4kk0L 2uxkqEZKYe*vmOqcEt 3Fn E^>*.-d3TU6z[xx$*&<0{J%敛 n5dpa&f'S&.w~%SF; WTV.]s`5|t-ktIüdh! ]0RjۭtDB g 5Z\72i'4]牠4nf˩o³GT@%ݚoŃ!|}DžD Ek"ֹWdX,,/!1gӽ|*9ѴO0qj\($o2I)LԦQP6SGnmXy=*5a$Tm񩬇lNN(&4YJ}6f]a SA\&y>|9|LM/.S ! ͩ&?h%:jd8z+L?ܺ+xwgM\]^am67oA<k޾1QKU\ZttWoǘO%CDt: > NO;8|v ںF0K x5!Nn%K&B[2v0cqMi0h-!S,uZM#u3x(0a @`r@QSTQ9l{F롭 Ƞ'pFĈZ^$+#5x4Y4色?y'~}}G~}G?M}ʯ*666ٿGba?{twƝx7F.VNC|UF</n4ŠHS8 ; {4'MOJͫorijԶܦݛd4FvO?@4|;m52H,(=fO%N\NQsiPRENŚkb1:T4WBMͮ} J#=,b']jVk*f0X 5a=kN#v5hM$"1 4nY%4kdB0+Sp|{-.J{z?j̏1VCr|Wb;I3TFϔW2j0g}L~_koQ*Mtuckkۖ(^1vfb =$^F\]r|.z]ϥ5ğQEϤ 4z\>5FLkl s^0ض#ߪ/1ӒoĬ6jr|:f@e"!'*MJj0G>1op{|50ƥ?S?_k)i)7zKt4BRPOj6Od- MU&$(Pn?' m&Q0mifIM\ 談U7JeazZ3}}> 6Yv3 ׿GmTvȈ%)}y|,we wi Ί4Ը@_8-̬ʏ҄gǏ K:i^is%OMC5R]֗XV%.AlB2Qn+elVJǼ H'<~/l,br`g-y&cY_DX~͐\yjIFTt%#rBjԳ0wٓhg.#TtS~!kX~SKTx(68QS3r~25"lרʍ,2hNuKLS։2C@GXQ}EN+>N9h00Y{;z1sOÈ4t t/aՅX03aH$ɓoƍШG 7TG.渌gES>duek /$*#5V5@9S+b'68EtM+,a^#'&)UJ*S;e6u-C^ˈb[c6᧘@{&5v 7 v]45|c"(\޸̍d:ƃSfrjomueSos..oiUo~7d=򃇟ҥKk&u&ڽ5ܺch|)z!Qő7nl~uti?yO>"~8a2Ơo~'0Xp˨Tz-.sQ3|:7^5a-4+ƃ#0$M8cu `+lX)V9e2|Jȍ) ht=ӂnr%&S% s:ǜ8#s&r['䔣lK.6Vjpť~K=!yZNriKS0aîw9)^:Jt*5I~{rݥU9M9r d1lUcDɥECω lC}폥' wWZq'vQ[v IDATY $opeS.W>8s)_[ mn_//A1,0ס5'lKiVRB .$߉U+(9V4O8ٰ*7f!X BI BzP6MdB]&mѫ0/E( %jϋŅg"lYKժP!1ڃ(HS3ǺJy"E;ߐE(s>,%/brl^%PGES$[Dc%%3"`MMBn^Ml'c6:VoljFg.pŘ=Wҗ=:-̩Dc駱fsz4]/sQ)Z&EI2k2L,z/t24:,j5IΞמQs) ShGy5\q"c#èAJmeA8c%&zzpa_]*:z6^l;n μm>ïx,/o M;8s8?SU%a!_q _VM9QLhB4* 'OtW>Ua?gyGXXhaO1EE#6D}QXZ!k['}*'A]`8A%&t}vhm:BX4d|7ԖR8`~be./x`wy8+9Nժ\`=R6X>QbHϩ'SI[YAHcjfr TƜLXT d#״+%t7P-j1KK.1qz]y]ʲܱG”6IҦ$7aQޟGgxO9K0ZCLeD:cwOL],,Cؤ+:JA-v{sn5dJoթF9Λ\h?W&L)˒&Q&tXxZBV+nO{S-.|aO;jw\ԨȻ":4\*''R2Xђo4cp7Ci5|dHi5J?Ͱ:QO2 jѝ#ZbiME#*RWB| =S2MPIJ4j?rE㍘9K>W 7KǥI+ Yqߑ.)6 w diCj<jT{M95^_*O'flJo sqs *hT-涢&,s[~ dt:M*^?{4g]7ϝz~,Yj墀(KdL$IP dRj2 ZkȈjJ l>3B+52cJ(j4SfJӈcD dА)2:IlrHMJ{\MrR޸kcƘGǀcu5 T۫L[?9:֥˒M7}y`qq NOpmlp3.c{1߿:)AhEt8M'x: MD!f;FCMԳ-0?㦿`mC|gvXPhgS<||ZXK˗ jt"D~ <˯1EJ0{%F秨V8S%N^^AbQna<~.zК$@MG36SΙ Mqrfβ:fZ?;ti29C<U 0rW:}^㚵˒Zop!=yHk!_GH ~Ro0(~z÷NtzWI{~LdF`yݙ%S%EA|qH74k>Șr++bszihir7~Gx͑bm^1ߑnKJElb\™<YBHs Fnǔz񱮨;}"=j ,\FT0wI赕NMtͩ^s\ oLѻ"K(O/JɛWU񴅳-rgge.ymt LotRviɔҊ-{!JeΜ)"9wP_{XrdSwlZ>Kyèc~QZOW2K}? HGhz &0G3mG{굩 w;$Q D e[JhaJ<7N=aL)%~V#Sm)ȵ ̲/`ۿ?SG&/??'oWWg*|)t\I]rPvn(M J ͟5&׹X[v"k$U .<] Meiشf4gz)7UrÖג:4*]dX{|w9: yF8pa8<9|?ejhՕgxxp3 Ѭ?0Z[;LfJ ܸ~ۏOf-FUC^5W]ý?Prb ^ aRĈ o"a t^]BNg|n:34j\z @lTdD!dj^|7h:BCWP͈`Wso^gr#ySjh=Rլ~B(tYcx$TLzGfR 3(̽mnމ8BmA;#rJ 4i58.fvo S|K6E5ԣYѸ1S?|;DSZ<VQZ3vy/*vLyͩKUCΰxkOM3_5<&+ӏsk+d9 ^q9Uhz2tzaHv24 AIմ./42KEρdQ4/{$I}CVEWW`w⁠?/' \ .l#lUݥ2+ufhvu%iXVs>e B/;jU}*Ӂ^ XKt2 +z@D:+r M\e' aibUER9+C]Ylyy.D]A,BFnfnyePoA75?}hԌOG?3Ex%neoJlqDn~?.% *dI e5#nDL8Jɗ| E7)ifʫT0^i_UKh>Y䰘a&QפF ]9ƩeYj[L!I[?1!49% Mx tO&NnC {E3 Qi4@+VY%@I6:_B$6Ma^y'U/umd;Q{SX4vԌ[si_A;!9e=Q3Ŵ5QSB!"F7}ݓ[BQ8+42hC)#lM<[QK$M|MMhO}+ADBȂ2ة(%ġK4#TnQ:]αFI kŌ6#2L,zqVʬlB$~HLS psY2E[nL3BYcKxd:66釘Am[ 1J˔]*DhjHw92BR )PƊP3H( L$$(:$#ʼn:' ?Lp1B;i[G) cNGD0-=B}DQZ*-xzz*OS1ÀG?~""six( LgSD8[[1qr'dDEyt!./.ypB/(^g3F6V+x@YJZNw9ob>}ݡ !h4{=t:}O ?w9}1_|/OV2`1^8(9~p}pni9[7%c8ib|̍'O#o9ӱK"zwkn\b2:Dϱw/^|/8G6='x#_Q >*[ggKxJOrF6'D 5Slc2:b#e6g|.Tc-"O%+%5!_QO5`fg45S޺C Oΰv|mn5u .K =9VHh~/^gP0lbN-g6V܋Y]t{]|X56B";FJo#B5ts/W@cmd gdu& IaF2mK\h04,0+Y&FC)rJ!xO(] %AҒHȽEToŠ n8WpG*B<,#Ѳ@}- EaW-YBNba^ zBN5K5jj1?a|.?ҬZ*UuńL"c8! 55U#qV#U#6p{i _2- REu/i WV9}^Zkn,⛳D\㐔Q$5 e\Py$HDfVkXf];Jf⩙X p9gƍU;sڻտ?oMs- WrGpss+gd9Z'"TlKY%gUxcE.FTKqmmp|<ѣ$2e,5! {592J/\M]D2]}l ~l_&Ȑ7Ҫ5Cw>Hcb±i9*FXBni싸IALhPJ_;m, ] 4T›`0{j4_ M9 s, Y"3ļ*orрzt It"ll Ѥ-L.n&/Ϗ9Hpow_LO:&GXR>"EU[8CI}) -D^Ę, ^`gwlEHȄ)Z;!yS"͑M5ˋ\L}f:iS -1QlQ{^,K!%6pԻ)U:W^ol4!6kn;"-Yga٘#&7Vz`M+ɥ>+3P-_L7H$J|s[V@vf?8J)5`bkUVȉ6'NH3}ev4c`TSvkXLu? ϒK-؛3"=<Ԝ 1>>5F_U# ,hhVW"X5*Us,'o%ժ x}5ǫ#EpKF)! jhU1_Ӕ7!0Ȇ%GG|DThaJ(2dq0#"sbh좻xN,:G*ؙEu2J%S n=Y>=c6z/ܸscW)4uDKFt-'lvKyNYs_iHTr7_&xyp۷S eUK<"ÇOqCd ^ *Ҹ_Ⴧ ?w?ʅKZx3tsud_}_|!|>H>:"!*avem<5pqv_}_|2gh]wqz|D=ndWn`sc3fׯE2%'?-S")W_ֱ~'Eped$ ? bX_!Q +QL|c6B7!ϑ-򠙶n'ef|Fkɖ%FVWz_sZ$W)r <α!dT5MRxcAgtxF1p# TK;\O[Ge~]X)Imѿ~s3ԄMiC!=_mJȡηJuIFIҟDn ]P:F[I27c( - ;Q 4t_u)p;}d '$Ya3x۳i."[#u<2@&{l`kZ9:uՓWbL\F (BQtR]fdUB*mb$XiBRߨE{F'HEcs0_3*Z*se\c1-G@GN{'ǘg3, >$N9^{!7 .#\D\2'-ɏ~ğ)]n]h;~Oӟ(xs7ۻunܸ$83 ֝\Pl{ӿ n\cPUSL&mx[xloa? PVlյMƧ( ^{}0hW8| T ;;8怜Cad:r ܺ{eوrrnsBk5h^^/{xcyp]Ҁk]L'# ] +eS.t9nDVMH@(\a 8_ VW:HrMj3L^0pcwM2`hcB! Bv7qzzsܿw,OS<b1c8\L}dI xI#6}K:O123̿陒M)l5%eZse 5IxEW@L/>k({{\FR dgbG"nyñ~(4fbe'h#Ir(W4dhIc6m2-.8qsk?4zHǎIֳZћr}}k@5 Z[=OpzT,֜S E蹠,=G$@?O܍\DHyg IxqRoY Ш͏$mz 6қ#ЈOb4[Tⲑ)ۤi;DU8pp6P@=Dsah NQ_89m١M]zF m}^%@^=WŠϢy[3oTdfNASEA/[Vp# lWjxXiPC€TDY a2U)3_*ni"ӵi1Ĵ[)d҈%(=UаYg3ie.LETI2h.%mk׮-" -CEnyWp\Ĵ;L{D n\ XuiJ&>+xla HhLJ7wh75mgxsnqN[ˋ33V铧Ƹs>ϑ-:?>}<{n`{}6._(N) _ ,(b.JKѭݎw<:?E9>>[G_`>kò)esVnaN4ut|M?}瘎#_y<'D5NҶl#%h9u̘KJqT0ݶ?D ~ l4ḥ+.;"-Ok\?^kD1'*!y絵!K؍W_{[x3F8Ŝ-QiϞh$KRdѿ/9̥Y|Zy] j1͵a)E%ݮ:-i}ǒ$%q0i\].U(UaNQBXQ¹е:J>'[U=5b%PQGZ3wi>6t`)W >u=TjbVCLW#Y3reF{q GM iJ5SX7}uޛ?_l2"f94^KUINrRb11lHt.G*˚vn _0_7ZI׋N[13]fBI匿9iz+E#isf-VMM{ٶBTFiW 7=-/SHb657aMH5{ t]s45ܞ\1Z(p=ϱiA>\TS4 ՆƭËL# n"'zڨsJE DڤƾAF#ȫ;<I| xt$1礰k9)s4Q%.^Ot/M4Q׌5ZF[8=4V2*RO閌u :aYZu,k'2Zb_b ;s¡g_9b?b bOK,%+'%Xܳ:NY-(1iűJ.F3a:a{c]|N/H.õ=.a:`.;;ѥv.W;O$fk{6VWFg鹡v{gysٓ4w(VM&97j#&}D6 n /l4$L>S>#S@z-2 fqİ=Qb#װޠloic1MN5qPCiyUDBRUh0}l#^6t{U3&*42 c(хH9A*< (\Phkh4Xx\=׏=P\+up OY6 K~}BS#mvSiu5I2pڿpy.4ukeCz=P_i,6ESөdHYR_kkz x(S?eqi^hW,5 {fda2ihCTl;(y7M9Q>0 Q 7Fx'h4&g0l- IS|M[opt2 яY%X#,өsUͫoKsu'3 >ޕ1%k:NBi( ^Ao|eׯ.pLYl:/:J[4,I$O.B9l"Nա1 1 Q 뤕!ŒAIZW5 -kߗf(kd5 L)x_ɰO.4bi)I LF (e9%.\`D鰽Vt\b/r)45)6qT+ (˂-N@΄TivkY7NX̄ KXM;MRr4M^M<W}6LJb8,,Libf臈B* )T&w>D;SJ\x; 0#mLf7rame5q.nαQli69P͹q-ɇ0_TX]YOڨz@b4 xk`mz++Xwz.vV9B3(u8K>~I4-[,aWm,NqiT yˋ1# ӲvÙ'cֱb'б{t02 42|"W]LfK%i1=y‘H|J da,y#q(: qoK4[[:0s;2W%hYjV95Rc=YUL],qPy8F_"C̄Rg)R 5A۠6;uW5U:ҥIYGǰZJc2p,vzn-%:ĕri3E1BFzkV"ʹÕyk6@j_ Jtu{:LsxQUe)Or$F. ~lܯAT+5$%,3<2,XB! [A$LMb8bo<[vLO6oSBZLLf< In䞦b= ML-[Z, *դ|M$^E#4ĠG4hҖ2j@MD>;crC8-0guVV֑'Z3؎F( Vő4'L+c^YY q4)wy9/qzvh7|ǵ.򭷾wΒ ]rm 6n߾_0u-L9UB{UװO bW&moo_GAg̮o-<|[=nZ6w01-*ll^g/eVQV9_"C{"2鰳wloe{;µkM'MV/.x',гr)F'j.iprz$|63ҳ=5rƲ]hX˼:`-9d%/y⽰~$*ƒ dnL_;~>c1buom?GQO"Uey5QF< IҲa /&)7 1RI*FϦ>fDWQpTοAY޵N5ZV5(ȱO0o 4BsMT+ 3W2Y9T7^tJL4RL8'KdIa}mj~%M4stM̖9fy|9G;qmAvU&Ϫ#6&I7qJTĥT+oۍ:ݑjplh{KRތٽ"%$ PhJ.@-:МB9J7 T N]9^ِźa.#/lqbDBn"*2Zaz>z 6YjRf>j*.LKtCҔX,^똳s~/lrvzaQ܊S ? jcY%( RKSGeO>@pqqK:Ϟ}ʛwU<~N`mu [[`ágm*Rp:" zie?ט({& 562@kgެ`P,IT&+[ub5Rb6<0+_ , U0S8r+ꁄmӯdPD {&h3YyײGCYr:[CrN(yݬ٭xOܼ~uiôFi qƓ)fI,䣏P@Ws琵8+JO0'^NB6,rFtQƗZs̘ke@i:TWemЈuoC@"M_}E/*zе(2GAHc4V&RyT CU&MzcsApF'Ieq)>4FW\rfUȿf#F5FtQ!l8 5*;VC[CNЕ"F5>S$PlЫ/u4ɮ"brjϸbo^1R[q٬Y46p! lm=l"%#*lƼ|BD Hz:`P[2oq&OYj0dMՑcjI px|\kK/ٝę`9?-Nq:-B8U$Op F&iVKJill7㷰ӳS~>$c%c~ɇ%kfqh0a{g}~?GԄ\R|| ?s錑B%?{=v+xytVXYxx|o}緑v h$/K2t w tc;9cC 3N_ 8*F|6XZ)a`ÕU?%SL/0 & g%pq~X< |fsܺ}pVc&%R&Us,1-蚯St ..lݝMٌ46K^Ab~łLW1nyO {666oKv{) F׷_Nj/q]<{D5g'`J&~oٳH9]|O.!le?1-L{NFxb{:S}{` ^=n} {ﲖ3^O?Brf o͝kX.8}6r~G[`q31ixi1F(_"γ *.Ss?Jh'=6ַn򳖒)Szz-ȔJ]~o\y3ifn갇l:b0 vteeVVL'V2`"wkСe2C & 6.҉O\ŝ CɳwJ!lz#J8VlL4BjZ] KpCq'0s . R6sF?U6J0xiJOT;j,Ց(MDˣ=kbff0 ڌA(~M`uAE+ e&dmf4N5ܦR}5̑di45gmݜ6sMΗrG]`boG mddξ!wv ɚHvBcY@ Na^SUpl^α\J>zHGZ]*8[[@Hs$ Pb__okkrEyy`ݠ'X)uN[PX53hAKl5Qiݡ=Z2#T&ZxIU}ݠ'dRAnSN|#T85`S'ƾ")N~Qq?ц1y_@zmeZsWIpj\lFT72\VR#donےhH7~џB(K4֔HcL-ը1*r8Z~-A Z&706vRC" DkICC+FKVڲ&JĘ:gfᅩ\F 6 zuFl׃U/5rN.ֈ@)FM#&2 6sq8n+}M̑b6RgFկ%XBN9 EǸ{TX:NZiuoE%Z^<_`uk `S)bΗt! Di2N&bb1kyem:b6*M*w+43JFm8G1/D>TZ\uE?˭O%ly/c9Ģ#T^*x.Bp,k5!!bC)F2xRڒXmD_A;bB(~g? urbe5G^Qsݛ  c8|~Z JtR5Xl mԸRLg=׮u ~H!+Θ F0dZ"ps[+gԎpi:!M Vqxt [x-'#̧gXΎJ2ȱֲI;g8<<@eQ}tWŴҳc|I e;;Eƴt=]{j{`M>ڛxD{88NN9֭}Kx9O^uG'O L,*?gh JJ& 1E,P(v ?#9]Xz.I_ʃCZekae첃yxr|WA _:B0i,@DeiьDVC9˥>j<zvass ggGȳYb6SDfSܼy#<5 f1dZ4* 2cZW"4ëK.Hi (=1qaZZh@<2$Պo9IGsVı칆؋ɋ~vJL#Hm]CsgۼS#ѕ@n6k=;̉>bhtZF4n(S̱ 4V6rX3X8!H#;R3Q᥃ZCV;878(mM 5R="P:t߱ۑ~ s/XiV/K4F9e=3JPg"ml dKdNVEN^-cFNjkN3,b)pS]C׍t<Z)4a#d 0JJQOזjKZL?p6ı$biPx߸O?77R᷸Pn6NNNj* 2IJ|T|ѡi{y-BKo1J3yى۶0#Ky"PR.K $.(4gSȊ(IX[ibٌ4fWycmJX*FM+9ܖ64spIp=JFM1Als|daC}R>/sT^=aןfh*xik0K"g*\i_-SDpj|4a/pLaV1R:%}%p9&JjfFOTĔȮ;jD/إŔBi-3I\6n)Ȗ>FJ;[X.&rRR32]"J- +t4Žč7p 8><5|ͭ]y g3/\cݻ^֭{\x;;[.qt,8::˗ooŋOpr9~p,2 IDATO4eb9ƒ\z7~ =DSs`}!<.m~fG:iVNg|11.qtvL%޵}TFhv %0sQ4P)]|(|<`[~:13FG4W}&̱)hІ5j y}~l]i7\@eXYIE6$j>|भs}A=_+]hWQ5wx̿ʹ,beg8 U5҆k=t%.{,k9&EQ6CjCHو^هRgWKb1&nsc(@.EKVKAvwEW!hNt_l姙/~t(oe|U[w;>zn(hK-A5j9BG hRI]yWA&9Q:wg? A~N> CF[e%N}\u<DT)q[x[CAHQ:rj.QfKthrʨ\rqF2g)}<6ݩDj`4H?p<-" r1/ptݔ\i46&1zˌp Í :WgHPf*N6"&Amͦu4f5P_&`/P,hV3HgҤ4p364.~QdeTV_qϻT,Hc'R[]$Nf|c^J1@ZNЧJ?;-ޒ$zyw5JJ#s~nkp4J6[5􀾁.R"n6qC mL9U!5 `j|>X -wiSFSj%-FMnӎU*e` Yg*2j.bh9RFF[ M 0c=W0\J@IqݍQVzd 0X3}]ՙզS43T#$z=f4Pk_\k3 f/}!k z(c>j0DBAROW^jD ~ޯSuZdt7o_hI?ktj-jULjz=C6E?';f'gm**u37UCht-Q-7^C1V2@ߧj5se)`>mf%,JQH#$lô7M;m\.ЉSLi1eD"%޻yܜeSFBQ37,vHسVQW4el ѧ8[1H㥀km\-leC4;BA#j\[]n'G'Yųrh#͞^FK J#N~h3#Dv!i-jGeT/t|Jr+"bNōVd1\Ԓaп MLbB(eW* ڧ2ULzT`x6 m~0?:1RF6'Bc&ͳi" ̱c]Y7i).s6t:q m_zXpy~t6~)gRCIZʫ װIKKh-!}ԿױLxk_&.ΎȞ[7orɈ#5kۘL.b)7)ox sQ-ln`gk'Cz/U;pqz'K,Þc8t-?p1IGgX[]=<]'l5N1:?EBGa![pQA]Ym +xt#G ܠV 6i/Kr; 'Zb1g٥:mzFt0EI:-p>- oIs yK=D^3'f߇=}RTG H5SٖQJh:"<͹Y͠k_! ſ0JrQ̈Uΐ7;1|?QwHv b;QpWPe9&@@>#ZjfF"e4׆:gj'ݲFYȔ$KĞs"޸>+5]vzjw+`%&,$BK+ffH9i3=]6*ݽy sלQ`j:3 s 0~|éRzڧ6R' dfJ QHɯf)J'q@FzJ>΅K]Sp?_֨AY`vcEeQH yV/HT*b[EGU_Qp@TuT'oɕ\62tf<|i}>d d 4^뜖|8 *tAM'J Ka4]Bo IF>ZE/NX|!S#}b" Vf:.Nj|_UΪo ̕z#ըAJnLSU5vqButL~6~ eAkXo#'Ed ۈ.{([fD{fcXt=qXqu77:&qQoNfi4ُW;u8-~|\kGxLUlX;,2X3%[)Thq  )`9E83zz5X#êذy^.2BA9aJ>{;h ݭ-t+;=Z=4vW_}>] lzCocmč>7ҤLݻ+k\~n^#?b6 7x{b3g|V' SrO9TAb1 t-^f4{Y(ܜ3jcڡl`@ږwnWg<SrΖt;`MZtqf#4Z)& Ai"ZNyPD !i59Tg5TJݑYG:X!khN4# a5g$>ѓ7źL7웰}J!ڳQ Xs%M -dE6Pe7JqO)x0qwJSj!,FiFMxӭ'gz#i":>%{&h 6^'KI|F*)jh ,Qe"]VN E]#{uJ7KHM-DȊ ȺΗ GkޫHw.8dO+#PFM*~hG9h'(&ErRN1N賑7Ҽ92_b@d*5N~˗𒛳NflRqWLdlij,cZO i%:"pCK4eWCz#] (Rm",) iX-DC:5b4R;p\/TP$Mhji6юKnj$Ѳ5\N01e29M6d8$1\ %2rdņ܈ŕI֑zOĕ-9(EuRf\0s|ɗ4 .c%Ga͹p)fߺ!jjT;%/\fe 969'R d\#BϦ ]Bni [VLZX/J~,Tg}Fmc,rh"4bq$},q 19PF kˈJ9LEgHYkF&4d&nDy$Nb%XŞS4ZtϯK/pr|FHtS~kڝ9L"L63k!❭H\~K[ F'+4Oi'E_})Sݯy`H\(~`{?5h#*Fӛ[nŋ3j4/GMhI.SI~rx񭻘GY#Ih,RO_&8:V_gކ-3|FOF4x} y>Oϰ=_>^N޾t0m\̰`2b3˗r]Vyn/~St[Mt:}t; vG̘tRADE.8z-:pNxB"QvWC \ G2X-3^X=no ɐ4#,c^&, z-֒)d6^0є)3,mz<űIT՛t >o,]×B{DEEp NC 8GE :)iND']Et?(Sφ ThS>e$XibN1A M#{5BzhAP &A 5o![E.1D5#8[тc* i5oJeIcRD%֬Z#TLP\fU?/R}Uj E+uM3\r&uwDlګ=EꜚzyC" ZLW#u73 峧zNM >J WfN:^(cOr`[;*Qszmh,1,BB3 1NuE(Ҵ#72=yZ]SKOcS s#+ YzL !Jz%>23͈ jx4FMRVQh؅Ctl&\hRl=QN^ye&F@$ 4+}߿w篯ؾ+S_v>7%louX|6[|6..^cKPϰvg,osQ&ɤml6.^aw\1DJau+|˳D>/Ɍkō'I=5߾{ O^|/=lǸMWfK{ݯ(H Rlmoc<KNndHW8~j@&4b< C|l1v͋Sd ᆝ#L.MA]7?k޽/1z.αۮKsV̀ .|GcJ#ѰK4>>%,/CWNE ;Z}q {ɺlrwq#>ilVh5XVh7clzj@DMDjyT׃ή//pr`sGOl#Gj3}?d?/F{i)ls\O=h!Zu8X`='w~W}|5"0t;=t;lEhc=Ѣ|̈́s(@d /^Ѣx_#;[;|Ύo)_&j,!SCr撜7B+߰kVz:`wg\jk9_q]P@l#^d$UZf76Pa|tjJڬ3YǥIB6#A U"JWULًQTV݁]hb'ͯvE(9eJ0jx2ykl[Z]}6Qc-uNǩTWQV(14 D* uMz=-ʡ uh5ڨҥ+wY9MpCbZi*} 3U9suzrŷ6桅jt|UV(p(6sBc<_hTg&#!x}clp@ᝪ+Dsyvъrw?Sݱip̕qS:tQz!C> sUWtʜHqWV;@{jR7>d4G̔wf7U&g&Z\xJ/[qS*U䄂^p̉rNۦ&N~}g&YϗJ-CO&2W`0UYmN#EH4JSĴ MZͰ:d: S0 mvɅ)RF;mVa3-PMV2HY-~;.LYeQc~AIm!mlM $^"R(;eXYʘ5JGeEtkB}ƭfyTװVvgTZa*YCk0Cwzs&&:eYYSoB4NK:ƌ 9UHQb]'Bd[%Fm z8F+ic`sLj݆W6Sj3z5&2XSg46ui4Y3VF2lI:&GaӤ"n$&xzq[Gwq6<+I;FV<%i9G&x?P꼿KEx$f1%Bu-#Ft|4Ql\,^-!7^z)rHbF\FCT)# |ҌRYdֽ!")va.o&x  {ח|ov=;"CO}!Fb:e .z_} tf60qx1:_|D٫H t}Z,|V2j[}LpntVλm%2' $xx%Ή Н;ww|Δ+x}ygg_a3 ?E÷^8? rl]c5dCݝɔMN}Snk= z?Iu۟|+,k|g>|4 F+[GGH5~4nm[VwfkHF:b>xR .^6L_ǤgwS,9?ڠ9nڦőf zbB3Xֹ4XnՌײ>7lO?gVHk}^+"H{t/-giXC ϱɉ"IFO)4l'蓜Ŭ75~ W/xݣń+awj/2"FKSQ1鸐\\Kc!^IvN/%"EB-A7c*m=zo`ޚ[p9~t*Oo,Ãn]_”ƑXsy|NacBcrKM@ t25bUMbCysצ4"̤]_+6h*[CV'Ī :Mi=Qfuxb=Ҭ_FHlVcDSw r5ׁ0Ψ)l@x54#<~,=LY95%j0yJ;WĚc y˱04(MlXɘ.ikآ#܁Mi;[ Wʠ:5== ͎u6MAL I$Y/sNL.El"4+ D7c{ k v68hlc.& F7W}bf["@4!3KЏhtzx5'K<{ uLI7|se:e&O*# Fno jٳ`V$ˑh\iFh\1IGO ν=ӿ+w\74VמIө4eg cSʣӆsi-h5ɑPS0R].=KCoyr!grB:X>Yz Hٕ3!RXqM&Ogɐ$M]* RA Ӎ4n.} <7&#WatSRzPL.lJ)uF2j\]e-t[Whf7u E9P&iPc8>`*lVd*G9\ߗhaɉYlўᜋW):vXm6$1zHDl`r5_lz43FGXfJ4Fb3uuFY p­q~y,[aѰ<[rXwgĒU-4ǿ4(bXcm2D1o?_|M}l>^:NjwjH!6+ɧXmL޼v}o1]b| Kc2_?_"mw-1Fg8;t>E!#â] #uV[.S`{M#gzd70]%54t!:u+FZ\:{xkWŚ |ʆLF"h$D^ib.<@H}kJu뙊鉜 KVWrLKCc.?^%{LhFdn71ΌLhTlF{x}~hqܐ5t5λϐU.sF=a={3jvgYmְNL8V4i LZ4Ds;v1jk/p+|52 GDof8KGM'/c^CIV, ,VW5nݺ&E88:-FOsCpuWHcnnz|ɰ7q>CL9.o7pͧ\rqr%ڝsl(#v-P̴B;nW傣ĦW{;a&ǃp'\PǴMҘ.RIK׼M_2X"j<{,)6LR50qLڜL'j`}6y8딛0L5Mm_ꜘq- 4*ͪx1btLtoӺ^2KQ醄x IDAT0SOH4ΛQ"K/Qf y@SE+7 T@z*Y|{ޤ/Vֿ:I`j1"иzdnGآбw\}6Vj-H9VxL*8Pw ͤ?eNcW|]7~~vTj^CU)M&&r#)`h*e6_>[!jd CEk^7_*e+PCuOsJNB(gƂ*͘5 V(`ekmyRin=ޣŦ:'ҪJ0*甼Y6jF00@{f%~e9I,.[M$~(_w4dcU96bj"F!=jԈFE71$_uJ6gsCp1ՒT5jDrl VzOOW|)z;;Hm֕>#\E߭SC=jil,GQJ[ c(j\=^CML%,+QJ @a'@{gJ'j\ KtM vw=6b.|*d9gæT`*iBxuG#.p_G~0ipSGd*ՌD`_۽}tEqdװ: HMZ>a1YTӯ4UcBB5cfq!vxcVQ1>٠6eۣZV Em8ڒ00].jRF#ܴ#d9WcP&ID7 H0*u/$+EnLrsHqɦ(LӢ8ŷмGV\9V|)#jt6_rs\<<4-BԈ5dQQ!;di gci/|as(Q%ΩP"֜ȽF&Q@k4Od=Ұqk :PsI4I<@{988`J #n:(s\jXQ!%ϳd`gc푦arsϟagkGlWZ[H;h ^|t:Mٳ'X^b:pWqqyvQJt]NJ2}zXs"![ vpuy)h`x*p[' LFWȋ #yF IpGh* g'B=&hQRf.Ν)1.H._g5xZjT(鋑aЂ6jDܗRjR?4UR [㵲NQ96NʔoCj06>GRau_0Z&QQSCx9Esi=gݳ|~a.Zo]+b(VAP_UV,5ȷ,Qyh7K-7=z6oF#Oߕ_f#}bx*-5o]ikl@v}@}(Æ ׅσաo?~Ԏj]}S1S}3Ba5>*34ɵx$8ՏѪԌakn(a:Wc5]ev1qMxӺ˦IB(ʊԏ߃$&ƦvCtj]"s$ږz:Nj>irunS 7fdlSJUs 715 4¦ iKhvH\!d;gV?!_> 6i&p ^QWB6PkhȔj#t^{BNGD.%8iS=J1z F%7 !8;$(B)EfX oҒT$T[Ԥzc7z6E͕G̮oDzk(V@/aa\6rF#:q&=*pd DBV7ٍːl 69^ܬxy}TNͿdžC5p% ?>/8`2>s+5@$E^Jr?2B9!TT:DD4ObD:-Ʃf4kD[M vzXFŊG`r2%ш`fE0W\E)愎yΆENW:#=kΨ: Ls|ïS ѭFx:lHFnۅLhŃ%hag E׉l3'j$9T PF,HvpvZ2P7X`L" rF[oNT (tЃq|Oj ppp=^zpFw? |Gxu~Nhq-,WxyiPDaJ+%ڔMHsmtlVcv6 |H靎HTvX['ef irP^2@;FqkrqaEZrǝٯfuEd 6BiBcי^wIA}xȆk^79]L\+]aj#np**Oְ9NcR]‰^;޿6_ܼٟ+ Y>*5j29}-ZJD͝cL7r4HӒG /vpb7jadݵ(,TD GU oXKߐԻ2jɑL)iZQCǑ6ZeGM+)HRdżo*F9t!)khQp):6VȤ$lY'9q P~}p DjHqt``iC ZC6~<҅.9zg9ndb6Ʉş;FJ(tLNrćp2tN« BJe\+Ȇ9P%QOh2>bx%2W|i6+so 20MM;dmO6XCƄul4rogCBrM]L9E)a_/C5;R0^L) zl+]2k( iH1ŇŔ wDDs4"{Lsɢ„\{=|bqNF8;;:OONn%>{lrWWC6OܺuOlQHvjVHS)\z__Q| |2܌?‹J`c7fX]}/^ck)6w1ȹi4{( ֓ ;:xɝG:Gi-YޏBOX.7rӈ[;{8D+bi#>ۺ1/y{UҀCN_m[P(s@Q)Bo IIC"P|w5z@uxF_2k5{f|},-kHl-4`LE$Cu (^!'D< MY}JR2P+uu<1H)G*GFMMOD!VXUU9MPCA45o<W1,ZD4gD_kL^,M*Is|6_ܼ*G[ӄFQZh99s @- MWK1B6˥1+ _}S,p97kE#*MfQ|4eV>4u[lwqwhY>?|)rCjc n#{o/EC:sb1K= ëx%ڝ-ܿs/lfsk0?fJgoSþWNuYClV8e3W#ؤ{Gwh|1ca8͈J nSRa“,ii4_4;;X-CCm.tA6p17Kz]=veCȬ564rS ZԽf4ma\`C)ZZ5nFU}c)؈|bM RWJToV i}U+iqec=dPF m\DUlMa;uXOҸFa ![~c<{KoEEUCIzTGcezV! PL|èN+ٜҽ[fTEJ[C˚ʘK6Bq͹dHČX ӨOu4BF+PZT_@d)Ij+T2j6 ee|#)jHU!lbvx[]T׺UJ O3m¬6biSkoCB}L[w$kYN\,<#sĨl G2M iаOS68 s|T+U,Cu LVΌ FE8;ۼ~w݆)4Tw\)EdY SRʂ{u$!jFp?9H]4>(lHKC)u> GO@.<ϱ\YQeM^i;Qai*4gĪ_J>M ^(*DS4MDذ;͔*"a \LBQFM 9??#.!|4/ "17h81{"s 5X^OnT5~4`?@ Ě T 6ڏpw(!Z!d[e`<+UmTe|,E@>1K4HГq 5;[;F૗O%Kl1 |u}VBt9qv#P0"E ."FZay rX4)֥pUN٘~VrQQ-\[„\ZJL)bFlL#"PfRkt Z23:SWDE̘4a eW$ >ףAHF6hsn~\nXkjԀP#*eRu'4I%Sˤ\qá%FtN.coiwjLN|22}tϦLV;n٤/_uF!βs25t<׸|)u2[ox9g}O8g`wo[[=,#,V D 7ZX(mq0knF7C:I~]QDɅmТ[4ё>q\wcFWC~/V!sz=|h N³'O8If8{6?gn 8uFkxtGt1j5ES8[a4YwbBןslu \^]1RuˋߛqS01:36jXOH($(1@:efƒLC.boG{rM2\09M=/% [Q<Ɉ%¾\~ӰV4i>M+-dKYu­<2@V}h q%I!wDIλ" \V1. Q3pe6~S K[=/xi?YXA20ѧ. kVSxZJ`yXh2.85 E*}F uêpBn_ոS*&8VCM@tpڰE!)ܠj}]5y}QYUoble& IF vz34w6Rcs^*pPo~ĆMmp=@N$-(y G\}?ϱ9J5tlFmıY)N`:qݥvFhB1=UD5g&:K\ ц fdVEX{L5 wy?>e5- (kVGYS=k IDATg|Fic9J~)7u"ʹ\=zJ?N68$7@- Y\HoX=-^C)$*4X*  YczwFEYA:+:>GBzTdrf;E0dC;H8ꔊ4A $I69J^8H$=/ i .!0)HW։,JM%nFHn$9J8rVB@hD6(W9&ibc#-Z7zQF.L_Pm߿ u0xKQ$4HL+= q5z*LK/s6]JL <̊sj%Z`F0f\JvXW;4J\i{{GIh\Fs",fůKMBˌ59#W 899ܨcdcr!VobUe&Ǧ--7(Y "k6 #c0n['pq~M$bDCX5y(a])^|fLn9nm< ?|oyo~m`7 +7جZM[g}tr17KW2bfif{x? Xu}gHމyռCN\j:pݤ E卢o:E#Шgobq%ߥ&g0NFCփڛz]\U18L7uxp˾*J{&Yzz+mV3PrcJPϺ!Hul4[KL/eͥf&qDGk3o͖pa4Etvt̋l55`91"24d#$&XboNHby7^/opv-.LJ|nVS 6woNq'xi]|9Қ1DBW_z|ݛx!}D! L _yӍ;cv'3lacg[yV''0)PjѶG3]!_ƳMO7G(Vg8zՊM&1z;xd'#߼"MEtiB=c1$"p8P7g1v0v qUP[Nbr%ͨ 0Gv8??5j4i :QWC@R2 lnnb猎+mD Չ cr+8?}̓0Vuf/]Jm҉\CQX Kn[EWvmPgQgZ@0PW*'guMMfT6|a.j'W6LM9 ʮ}$QdmRjSG(!KBsC4J91StMu"ͨWơ '*6nZљϻjCMIbq>0tu?*J/UseC֎ _/ob"P$HY)LKtѦW0wX5$ >i wv|JHv Pc#ԙ8*}6 46xtͲoT{KzM4:3 B0, {u:~f4Rf,})%bQJ m40]8&Ϛܘ 52`ӮJ,ݯ=eً9K-3Y-=ּ~oq7uu$hif4ƙP*fd\O5Q]Kfb!~smyWF_ ^MCTCn6F6 f.XBHM<\Xeh\]*͞Ų\D#-<6ҍ0ڇ|q lޜEimb\ի Z.9 k*&6Mb6s*iTEp }ȡ[,@ޕHQCUnFUj1{Y!6L}MO6bNhh }0DGM E;qKBϐ4DIće[是 +ұ%Kt !TCoNMz`$:Cmv2 ؐWpm]]zimW2KYjc ܄57D{8nec*&jf<z#Md>#"tK=< t7-CF8vM;mlFrF7j4!&/k)IښjvM~zfVU2ڀL <[L&ԜKcs~>Zڢ;-<~wS\w:ӟ YKs_@'OPW(|ãc;^"Hv_a@&c͋XD%BH95t4ZHbBl6b%Q,FNB_.c{:o+Wq|r۷o-y D˜ qB j0)>a61{F;vي%VhGWv_3{w)-i6Sn[Fwь!k9 L&nݼSGA92Z1QQs/Tz6|VkW!$Sa22xאkֈkoQ 3"~ॖsj )]ݖE\4qc-j9'U U 3+"Cj!#p˩"czCfn{&]ҝ(%4VCQ{Z؀;>ʹzͪZpIp(O_6:ve“CK=]!ňɈ1᳄EoťNKEK;>=I%"UPU 5.u9}Kڇ{y)5깭+Eq1'Ȃ ee ^]oQ 6 =d S=FVu0hu8pG+2ʨ͖ Dġ\?9>a`vQuaY@hzuf5dAZ8EMvSlo 2ˋDR-r(? f& z\Ewk2E-C%;\~ Ї< Sjp\'R| G 5ò j7UAUG#m 1YLeIc'HZu+X-P֫NR0PމYD9H[g|NQ-ρTzME#JCi.H<::q}~,ػ`0ӧOܾؔ}M"W678N և?l$irdͭ8&ESh0-0OZ uֱOݷlFg/%!HH `?+b5[A,Lǯpr{ט;ԕk.NFz6Gh|+7wn#&믉b x{{dϞt[8=|3qeo#Cۋ 4Z}Rd}ɠI``cmp~7/h\ӳogPd85CG-A"#A ww6qp(&X]nKH0 %]T*/2 4џs!R!m?((,EHZn]cBAIFs\U#M16vdKk $M R65Їb1'4ӊXkXNQg*vMs SߣqeBft؄E3IC Ŵ\PTӧhHF>i*4!ZBcY5ZژTMiCR+JuHVJAV~ ׮sh9J1J\E IHd9򉩔] T +iE6y)c&ܚgTXJ+0DI0FG $&5cݡ>@x# t'9#亚S|ͫ>aFG- ijh+F3Eס^2SQM^]h֚ad2KVl*6Z>vw`,0Z;$ LagH&Qf *礜&N[(sB 4wv$q5y,ހ&:23yb~.4$VbAY zz|)wt3>}ͬtձ&E5Yr!Pn7͒L^-Vv̥9ٖ> QQ5&7)lʹfҤ= %DPH$1^'4jbI`HIO=HM[{-k\(Cf떚|ItZk1ٚi֊0q!L\'1tUd0ȅ/%d%5}YwnhpZ3e3xd*:ܼ'(4ޫq .͖E'1`p<_DGC-L> gNMREGfAR rj5tQAVłM'>7\b!K+B+hdG/DyvvNx5͞D σ6ˬH!ڤOQX3o IϠ9[;{hz;m9{5:eK.)+h߼%ownaqy˓ghg9b5"$cr~JW|+/9dd/ ;wn hgCb 31p1cP.'X߈zR 9IT4",ԥ=,N^:Y[ ֚ټڃ]O~#|oi*FQޓ>TH{bJ4Mr$a ܴp(DjZ u a#Pc)j&]ݙUT::Y+}*3 D_ K6j\r΂&~E(!6L<]!jHtAs<ſ# ~ȱwj5d!0CHm ^$B"9;91ŀBT˚elIj'gHὅxyk+kUQˀ@7ouTG}h k$TzxjlK_µ~+h"2+c0Hjihu$iE+5Z/!ai+dO) i:@!oR4B9kpZMf#o@WYYng,?^*e4yQ#IRG,ko4_ԼE4&17Z)*Ņv6,2\ߞl,Nzќ4!9k-Ah2H'&9aLa B:!? _QZS"b>XUŬ(yǑۖlIӊz)0pzm UN7(fuًrrŸuɥ=Y p$=JؔzCɍ<=F2˖AOS_;T٠_^9l徥 fYUMS*Ee܅j5.[7 u,T)g0 ym8\.]k0qQ*͛hRJSONL\[& ,QUM,,DJP̠N1_]bX*w'dۙṞHu9 9NsIQ:%Ia{*:M [D/.Q%i2!z4q(ɞ 7o IDATmIĂlnV$iE: H* 4Q|KfS^ؙv[tEDföpdҸK֤L?i?"M4(L"!^sq|rxrnE[YQ:66qq~F]$6~#\NT++Frs,?sm,J !MO^w {t~zN0hv ,T"6ҥ%ʣ7 quy #LFoe B Hw:ը.9Xngr b۝>; o%җٳ3 #G9j;6W4?). u 2/W2"E j< 13@^l"zfsf&#Xgt6S>b1 Av齦WAkKk G4JybIִAZ miSءfFݻ5AgbB#47L(ՆKS #\p0$!id^ fа}V" FEU,f~{t=އK eEb=Žө&FiJ>;wgֲVE'Ba yFf*}P@j:PUФӐ&M*g^1jю/!IU'7R/Ѣ*:Xsj~Bq{ë7bVh$"m2u5|4q5JNt3}@,2G%uY3 e *-{>6FZKWܛ8MzͮhCϙk%eALS*'"e h.tՀ:iqU(}R&'A4b"Mr0Suy9!}UPhgo1`6;cfX+ ",j.M[D[F=2W_N܅:UJZ)hq,#MHf..t!Y dQ!3윅NUI"9CT[-SIaˬ9уan-E\+BMdR`tSDiH&o2h.LcRmhH~ B㼔' -f(̬<\G'CM3Ih#RCM9h\"5WPp}_J TW1\0Iodܳ3ܽ#lnr*5ݝYk{7 {̒=;~|1&QihڴظnW ęAdQLiJO?YNo- ?-ln<~-ׯacckq x .ΏIzSGg}b&٘PFHvxd1{u6޾oo3dBݸMDg~yFzzosi{9\Nqzv= -euns!ŐdgbD-1irmJL%h_\eX k+rw*I5.&{`&ybTY*itnX%R:c.cre^?i8P55D'[2^P9 7DGV`,򭐬ZOC}W`td㋧6ZbS>̇ ̬tz3ٖ=\$j}! Tgql5eIá9c xذ]VHwO8:q5v& (f(BVQ\0jMP;24r~hv27ksr֦0y2P}$*4՗ c_׵5֨OjlD[Cz̛]$@ui|TA-ʘK#(-9dΛ D8] Q B :m^reTh$2Tm|1 ^'ct(r=gZ~&&@fқ0BЌ^9"jzf<˥a5T5j)I>S_)Fٰk^a`;ѹڿ+[ojT^3D1QJ(ߵ!l/!Q*Z8bÙfF٬: 'vpQPnQ?ΒVHHRa^5AhRR\s#4@53&  JhnNM.QR2O39[((ډR{c]5.8GEyZwiuV@եJj(R;&Eej6$o^K#@y"2LX*V-RSL4mDwҒCAabEg6۽Tti"bGG3N'#:px% T$,ĸnҙwLJ,dϢ̰{~W̊m8Ϟ>_.%׆ c?5_D^MT3[QT+8؄9z\35,(P  A))X[6 MA+}`&,>KNΪu0˜. \@_)ye۴ Poak\J\zIW( 9G%& -suZ3ڣĐHAٲ6g'ychJA mUS+^FIA.'d  ,w͘KmZ3m:V& 'u2S)jE!f)} JE. F﫰M]_چi^6I" t楏n6<\W hAФWȽc^( :/^yMOzPdX,fXH%2'p:(0]<4X*犔$^\4F/2) dNwBfzo%,"AbHK]'<BWVTOUãJs,#x5 ο) V9V|ǒA!_գ⻨K5a KnQ˔ ;[YUoٽNmm- b%kSmE"֘9͠0ʌQ=O p L†0sr<.b,XH# ɽ4fM}W6iXB4+v4PEץFBףZ|es'^a?!_ҼO׆H(9}uDxh3ɞ"XÜZ?TКNG4Y <,K̬s(-/%G]'qܣמRov=a;LmxvVZ!VYAA]+tSo0mP%=8.b0juAZfm~RJkqz|ut@f3gOe9 Cv9! @[?7NYlmM*qU]kj0Ӥj\>ae&!Vv64Qj-Q9o}RׯHy zC{ҮRKfgc2̆mhHDtvCFAJ͞k, 4rez\W9f-,[9ýWNV3Lf4;ܽ7nФxkW#VN|n}ԀJ%| ^)oxVDZ[&n\IPlkb5je2-tpxp=c=+R6z k]o?;|5^}tFwk_7Ci*sfe:.n~Wo\S\)^=\9'm (d~fPγm̦ {k> .Ϟ#)/D^ܛ޼||"=c(2Ҁ4f[8F9Mb6ZXA&݄[w{uOSǸ~&/45ug.fRPՊ(sFj"[) 0gn3.{ 7Қ$4+QӽZ,pMq!k!ZL2X)C39%05 eedA.6Qh*ΣB*q 1207 iҬIEcDCr^(ȫLF@uz& :^]l;%8Ԧy.Y8`mU aDhm-FY72yދ61[0Y4G*sײf^hRW5#ػ2'ѡ`)uf iT]Ʋ-Pƹ>g;m˘` 5A 4B2sW録3*/ 8 0Qhxř\ΙWNj3؍q<++Z6"r.eMyx&R1L,5hCYM${}jܠ=R[cf(L) Oɐ?lk_=U~喓DgW :TfDW! +Ņ *dZ~/q)CC)x-[B?ERbU|SqQ{;qF"oV4!񸼧a_QC?k8<8ࣽӳs,T l6M5 ^Ed$A^o6T~o>C20/_:U'Ih.! t@>^# Oy^Y;R:NZ @A1+ M ܡw>DI͇'b'F"tIJ$,nlbZIVT*Rk ]MwGr4.Op}{ ||m:kj \z*J(zΎPW+ڭKçF!p2 R{adդ AMM*C>P:)ls@:Y4Qqis˄3iD ȉ@IK+]z ʢXh%`jRHAZP NPša蛛҂{ܼv a_}))=:Ԯ-1 Α~^ .ϲSc2w;$iksC8ŏ?wLH|B{&:<:D;@{ 8>:\)f+TdcǛSsjEg=$vtqWMv-&wDg?9vYUzX_kѣX_Ľ{?Y( IDATb_dtU>fP|S|_"_^{[իoFD4uf!~h/ uo^ԩ'?)ݟ?G ɵ)4R4m_ ݹ{_)렙X 3K`61߇ %\rAL8=>AѢDGc4m5-I}k69 O,]oh2nmʐ3^db&r XB 3+`KW6m[4 Hx%~+!~GRwE=1jlAv@9]@0zCœV+K3 3hi ՟ҴSf'HaFa9ca+Z+2Lm0\7b rUi͈֜GXϲEU`וprRիAJD<ܻ) Chu1vD4uhb Yu=𕖗-wV:\FaEZ7YMcCpupX2Ҵ^X),K6QWT,E L e VQi!-RYLa:fel,) R l:Rj.9C^@:7-844YRCuLp Zt /$0dыTy^OF #L2E)}oRWiWSRuڟ h]I0.r)әɩ]kc8) %f2Y.鰻6ē#}HI׸ d5ye6FuU'W5Qz6 8DzTPMR''5-\6KV"͙.*닁&&7ЈD6> ~x{vDT F,a2l].ۨ6#9<ͭқ.9"ao4P;U r@~)Bc&(&^n#82ep,2^[/+7]nR`&PҨH(πPNj9nlܽv(lUW99TP#Az,!dHWYE)| rA`esPp "+Υ&J"֭0c4bE*D.pgg&}^Kt89>;?@ن/Ma;+O>frxttv`/b`NgB?amr 7vyϖ,۷nן~V$W܏AFHĸ_B-߰Z](nÏ ܽ  :͂Mg# =t+('gS$!|$Ӑ-5F:{_}DN{Do߹g_|:>Ov lm~D3D K_L|?8x!N/F̻txKTdWW𽼼4z-09?}}j DoѺLߩhkEk&¢▭ Gj99tϦ&tYQD͑\/P΀ zʹ, G F&,>3l8Ð*|br)kJ 1\q^wM:.q?V絪ql4YK詥=;ļ9yNb":PLS/5a'$-qYAjF?,iXCIgPʈ G00֙fWѾ(dRgry{0bJʪa]CÛD#lCQUk Wfj0zs/™YU]jςYǡM@ƇyTW=C l wf~:vufCiƒjpzG4Y[TKpiQc[̗j%KSdEe&Nò/:{fig5_ &f.?ݚ ˭Ju]yUJPL׉+$cD4yx:<>bjiɢYΆ7aYhA+1MTg3ٖst L>ڒ[hcCo#_Nհ&XGnk ɋHem8& `dsH1!FPD]l( eT :  J6hRHC4gV昱SLjh!'Z\&G2HXf5\"[$Mm` w)<,Jӻ@\ofִEd}!4+qZdjlv:8[Ph&)6-l߯ iD:9]k$mphTKl97o°FXW !n> jV.56b^i4 R眹*P\m0LC4~)7J&H%3rr 1C[Y /Ly:kO(ayJl]Z\&܅B 3fG\jZu3CD#?m:Щ47jy6pxi w嗈bI^I$f^۷ϰ_"mc\CBUj,sa1o8yKdFW5]N9}F1_ß/_<ï&R35b&1*^7_`PptzP!q[yO}wcQ40LWx\F[ȝĠME2F2q_5|s/8M#3]3˜h6.O ,t|2?0GPseM.ݧ)A9\ÃHV)}%H1?Icc_ڳ-.'縜(R̵ ϟ?ư7tD1αXc}m|]9-r O ˕̴`nl>)3c1&+S)2qXo6iUX,ct܊_)\-pU\_ۢ~+F)=~ *R+!V5e3əRԓi eh n4q4+bŸ~LT̕>BAn*Tĉ'A-̌s0\0qS&F:ʨ ED'raGUs}L)E0t*;39e]L"+ؔ  "64K^iD~H/fpYY LQJNc)K9{=mYAAQ),gq}2>hÍJB=fAFg&D"`4Y:YF vk2=C&]YqQ%>U7xy y&|D {gi$dx*jTQa4,kԌ t r]j"Cyq.BWyOKVH|B.`BIU(O썲 }3ceCQ=X d ]˨}u}62iI)FF^!Z/aiݢPTLHR Lr$Ti!'.Mx[XN&Ȋ#kG~2Ukb ӬϿc*zk@#: \tiD1-"/k>!rqpzLz'pn z4Ԭ5P]h_JWbZpPha$eh(UO~ub#,Xx,ihS*ZRv=Vy54k[۸8=Eu3?|5L4+(̱ݮqbXΜ Wь9-pEӈeI\>CH0üE6:ARe(TkِZ^ZhJ-l0P oN6&)>iR?l6h_Ƣa/mhMS(y>|LMVbִD+l"މϒpϩvA9 SaVKC,04j hR|_ID%"~|ibQ,ck|\Y:?(ި!&J[!Nf/ɇl]1XN▻{ NO_I˪SPV5͐AM/%=[eͣ|5't^Xn<+#]ܾs?>pzMi 58O>?9ΰ›oH\l[y?Pfܐ9 7X  .⪞_ > SzxtuܸƓ'1=۶,0_b~d[8=-^Eۯ+\~ Wiw!/船whȵ MJeKɹm'q|/bvBc{f?tE&c6<|z4o~ޝx0+͝Hڛ8zCWi_}63RsglHm5s6hhW}rKxbnx0 p:iٲ@9gC||xhz8ѷ_ag1v\/(_fTtE`TUm[@ޘ 睼CaɾR(̢HBCFy*6K6#n:<$VJhA,:Faf1$@)Ģ,n"]c{DZy,ynyQ\ԕ*Kiqb2U(\w恀>.ud.K.6U?חURÄWޜh#[ v hi^"b]Pf}m4>T4Ҡ Uvg|_Eccy)Xԛ3}9H/jYѳ#f`,E=i}8t q:L&̆!ba0>Y^[󙽁$:(j4E!Xcgy+[4]4 [*# *b  '̥vT.fQY/5EnԬ*L!{F{}H.-r,5lϩ%dv!"Sh{lD(K%P\t C'hHQ RzJ+P!qq֟wbSJљzak#2Da&Ues*Uqq|L-iM\Zla#Mk]P @P^7BQNs6-.YHhl%T)Sѓnm)BI"3Lӏ>!NI8.(t-ާM,O4!"hMZrQ{Ar@  8y=Ԩԏ2鴺2D̙@j}CWQΥ\ѕ Js/ ň褲dhtaA#'<\6LQ4Vȕ!.aC,4(U*O4>O(I_*}@)M{&F"8'C#5}%6r< <Tc)Q7/g -3,%nitrW[7os^NyݽKӝ-V/H4ݏİ{|{׿:Fuא%|8|9 6wgDze%ZߢUq:>| ^u]/4R >\qq0y t]jO^ѣ/H?.rn^No!_lb6c:b| _$usV` Acz[͌o-qM" `džN_׮p7NW9I%b,۷#Zܨ2-, %%_V(20z\#x!FX$Gh~^<.EhjTRi!4B7oFY IDATt;MƺBY0-/IB}8)R [7J yF3 -JӺ#*UIR"Je֭.8y7$TnVȜy?(>3qܛdqF] Rmʺn0Kg Zܲy]fȪ+&E Z_Sy/>DYDmBμ0J;N%XNEl4a@Qh`ihw;}(}URY]J FR.*54mø54.2)amN>n =*rgA/6RÚ@Ml/!}"HOv{EQ'%hͥ9{[CԞ#j^|I H 妉_3){ 5GC3*DBVl:S` !w_^6KaWYBӡwPI˾v5/*BHV@Q7ԦBgΒtͲY!G c.P5#A !%|.$Ĝmeڰ&a/R/,FTMmeb۠W;-)'9!ڌF%r4pi6ְDW>bt 9J0j#InUj4ϰ{1ss@ 2dzuz9mPF<8 3-mƮ5,jSWq .u0A:+ Z{tؕZV\>Y {w6ntm`g؊W~ zf6E8G,sLJlT XVuylv'5r"q̱E`s:N/!MyS/1c?޼zew:cjm%ψ]S+T1ܼ&~?m,+AO0]y<{}ãslllrXtqv,\\&g(#4֚}O=a3<{klRgzqvmYpX,h8;;}KcVkuNB\WR/{odu >d $AŖdv[{z=i~̗=xB-[KdIIKUKf3.dB&b;P @Usa8"k= لzhh[i-m0(GА%Us&.틋6'ͺ{.L:utpKYlƒQ(WG 5!mY+t|&Z#0x_RrB&DHΣ/49h"k)iJĨ{UżWٚ]Dw|^Z(p0kU}k5ǫYSDWǥ2m*9M`IEG^3Fmc7hʪ{n%;z蟏Ei@(+3skZ,xuG=nMȬe/eQuqh M ح6d[V^ Lf;}t66}*;܋YZN51'̧ƍ!QsSA! ɡyF \@),{h×,5W@U4?WY0r5h,'~#r9-3P"-\4$8T.ϥ:<iE`20_;II0 E8`F'ZLaVZs{3(zo󯷶y[&YoЧ9 c#f5tH7 ̜\ٌ aߩk8Zb'ƕy6X\*ED)ՆTBW܊Ck@^C S3aބEʯl1ǫs,|*$<8nT 93V6NJ*%S.666*F}'f &p߈$EO GT~t1:F$\(ǦBr6 #5_i%`lT3Y^EUFr*YE6(5l\us'pߋ|VbAשHΝ U2/(SgeP7?PK.nr+QIx4oǐ ZBH-NJzKYf)._I3p!}$/!CDP'o7}th80c1;&ք(Պ1`^'b5kl {7j'8%V!Rj[xv`c::iĩ~`FrID{HXT8+٤KޞnXKKKF-$N F F-\^G8è]fic}> :;ƒ~F0K|}xW{K6[k}<{;PɫW#ÇqxwÓCF٩zL&#yaiy= f dy>+o"12jv^\[K[w}ho5CK`5T\|}|r]^_ >}13!}p>_!3/$@Bfw!c/?;kwѽc{>?Ť-,m?BlܘӷL- 0xOg6.o9u <{^oZDEl1Ѡk_,xp416"pm2ayE:eO^!E>%A{U6g>_Wb:\z=M9†ֵQo14h$YB Fޘ>(Zmt ZЊˌ,,R'7/ *`LFJ,V_#(Std).F/Tj $:W(=$JZ"eQ^ˉ455 HK'ӄ,Pc +'d[0ȬnP)S碉Oas4kDc]µ3JIP|a =6 qtzW `s&J*6N݈II \41 u'hlD6 AZz_3Vh~|O MO(B{xi!)9&6|-l0lz5oaSEj-L'd@ d2- Qnr+;Lm] e=! umbDt8zP]@ENBC wwƌOkj؁&yagTGC}F) $jdytOi:BL0en-p`w!}2Uں1{$+"^534M7YCb$٪p1c*N-aX &Ԭ1`Opu 4wX W0bi|qSMtvLՑ8m\w[9 ͒}\ ڽu~Nc͝ 1ـ7X7{S:ONO0O8pkNVW03f1}}&}{+|Ứ {( +;>Efgrӓ=ft?|27~}>.Na\gOŧҜS&s /Nw~vn^ah4Da>cCܸz'gKk8<:@^j9|J|)z+OgX[1 >=S/Z-m";=C3HЬ;!_$/ԪwHk \v 5wp|Yt[<#ԲCDpR+! MסN^ǫ/nHK$ד6nMZNs6x'{*޸4zٔiے6'nXL뱖 }ճ.7sߪ=Nb1ĭa4]Ie?ðw%?hF{xt[J Mu'WhEUVbC+׆uj:$hĕ:ZS7EFAm9]Oں`L#,RiQ$b!҉f>WQX=E}B@hTlidGUf9],ǩ?^C;_(*xS!ZеZw /b&>$a.E ;A4A%kJX% tDh)%)-*{+%^Fi{ա\X{icD)2():h+$+lmWo xvuzWq1m0r9\y!8|yWhlRT.Җy^&[#Fh H|f-|}f ܅Nejo9PN"γ0|!n 9ǡRКb[?k]m ҵ=wxMf!,ੰ঒4LATOބR3m$ܼ..b%dCʩY j1=ڿ6׮\a% _ϲdo|k5>zn?˗/zk2NONć;(֝z7}cԆVp0EJhc]a|HT&'#vkxz ь]{= HqnKw~.?{]/sz+tiׇ89~|/G3k~ :}]ζ]XQΣ?/xєiƄo.'b(Ipx1Gs [ >p1'K?8Ƃܐ9qt6xE-&ZQ]$?8OgyNFjW24dt^Y`p~Bȋ1D(d<c0t&S#/:yΩᲵ:ka=j9WxT26G6yS&yV sn!518II_ޟFӅ5Ҁ҈=Ch 4ai^w7i:pyl@a(2(֔ ]@9g:K*N3:vhKy&xvčӕj\P9?QMbaȞtWQ+ViDLo"1T]9Pp5zl&{$${zŨŵF`} @dR Iniqv0e-Re.bĉ_Zq%Ղ CҾD&Zqe&!S%NC3[Q-J%Z4K4U$iY|z^}-Seq 6gx| qxzl LGfڦLB\UACTdBCөW#n 2˦DD%'ҁXr:î^e u&Gr5 SB\C'Z6j-ʺl2WyWj_פDÜ&L=ҧB%>(O%# 4+S 4[RaA=US{7WЮaN_GO1lbҰ%w%"r5SYN pLBl VXj&ih>h G@Tkp>x mpֵf:&TO)Ы^MiIYg*#O&#D5<'7Y cYa7̈́"TNYWV^Z.RAO4sr&g:0}^È'w k2Y266WFz=k[7pb &1_05>F>|_scM^< ,m&?{Sf/w%-nlu&ɓǼO,sGx$>Ԡ3M'{ \˗rMhXt:=7:Wyj>a8=~g)#lO&T࿃N!6'e,Zq|dyXY^L0`院Z3lv.c}2>&?s|ܽuGr,fߒä-xY`b](n_aAno-Fӳ9y Ԋ .-ʜi9Zf`0u#;V4$!Z#S)J=ό`l~L 4$tҷNϹ)ear?$۾"l&74|m !s|3=عm?tx:@fcF~ǣ!&!)llx}1Hp \ 3<}nvi~Yx/c]4WvPn١2m#ֲҐ ̊:tMglLf KK)ˆ8Ԑ̳)&4̴xk oYyV+ſn5y0N^U$դ}#r2հ(i61b^ӈhS]hE{u,t]@T&ô@t%LO1nN UB3Uw ?0dXP:RAj dU'G/B6{)942d\6WEA&D!Z^m-t&e8'aT:h3F)p?L1&d\x=FDK6v[^?LbNoJ\ CT-&^נ Teݓ4۴Ҭ#4eQe5Dƈ]uStxhU{ P43`%P+gh_?5Az#z)xJ)xh1w"VWD5d+R&uR@SUjPjM$&W3pc0% .N*.1q&G& Z'ٳ J N̻BSdETJ3m"F :ًz0%( K Ƶx7,cR-HH'Jx_\LP!e]L9(Jt4 |iUS6D犖NgHZM1p|jt#HlIg ͱBAm5mdc$5a4#Ɯ C1y]frԸv^ۜ F!EMhy}2W7HvcZqi8)tfMJԌv0OM/mDzt:ٔqJrh.}%v% HB/*o5}DJG} =i SUj9%l~E6lBX 9d̯!CDie=S~0qtkt:jsDgx >Zy1gJ#R:YF&BC8q8iLtN4/t!FT]$M,r`&HCtzSlY'G&ߞ`0D2&ON]ԵA[Ffrq'n(f#m)Ze8#5Nl/ŕ;L X4g(nKFUc=t8iPKln^R>}lᱻ[Ww%g ]{d%M3˫1k\7 n޸Q/^=c|LԣoMqDNϙzۦQ~,s6Z cp1#<_[Cz.]AC->Wϳ1`~^66m^3%~[x78S~U΋8;?K,WX|_?᳾lE 7!vhu 4@7nn^WI>ï.&86.]9SIn8N f j-i]4x<h6FሊMZF#nQH|'ҴF#cLMx'_-kyؙsG&5^isSu;wkScf")CJx칐p򂍹jUubzoy'@W6_Ȝʡի+*+cb%II`iJ}A' NFuGdܢsP?^j'Hl(ε Q_Ot`!OVӸ2fDhm!U6\0bޛ`J:P!5P I#F4?PjJ(JXE6iej6e sF'>nTE0kNDUC-TM# 9 r5YQ56F^F b5&D`2IU;],!<$Bi$M24~@ QFAP//JWK\'\_5h8 PX€(OB Tp-1kiEu~nR䞢hĒ|XX&IM׺0h= CέQaUP2J7 6()8+id PkP:I2Ir;q -B)8tyibg4nPq: 3( +b&4zg)S$ƣh48[iFaH"P-&CFv9#n\DY3NWk`R͝",˰(#;鮬Zi) (:ׅܞ'(ikL^s09~E,EʅΕkYYaR:ڍ.׷Wq|3|w%ktk,S1LzB:?y۷Gg~#T F˛Y9Ύ_׮^xd1:?rK]􏎐$f@:0i?.7'GG΁°#*fCf#a}]/}h6Qi[ɟ B~+d`=uW{OO'ɣoQ,fXYZbSHaYk׺x\]`4BA+:?ŗ?S1\>vǣċ k_S4=low׏H[}(xASCFbb x ۩3Jx|ldzK.h%jZ.)ƋC"K_G7NYmbyys^3 . S{"ݫ6ls2GIAM5⽓$%bg\9T2<==(zZӆ>{dmyދ3́>,~t,"6Nja^.:#h*c3&SE1 sDB\=)8܄EI5&6eN1fIt l8=ADMc tɯ 9V_Ӱc#Gm\T k僛#Na^Qr5:DD1zdH3ƧRW+ 0@@BiКw2442`V$DfWVEI:\.]f<&҄tQZE69T%mmJ_6QbcTڹ3}ds٧3,s##ʰJHX D~֙^+Qa ߐfh YMg/RBPPY"ld:M2"M?G[l]5`ʜD1SNG2hUF@wQRMHm6 GVzlܵtn#7p$a^.ε^!J2SQ;F#lsM}ETבSlm5ZF#CbZAF$/eʦ"/ɛB&3hL}"kڴHG>F&v 9Dۚq-5O qФƂ ro,T8#SfFjBѥXJ|0YB|0[CT?tm#9!}W/Jd4j5LYVUfSIr;9UGc*|0 &PlIWZBžCANjuYY5č?!h;X'nq:d|ĕ7Ic4 <کA 5F1=7Vsőc-,Qurp5r#5x3>9:fQIFk;M4BU.Aa@Uc#OY-#U }" 9Cx"K݄'i/NpvvEfsԢORE"D}0MowOZ)Olt΍|u NbIB.Ѝf)_NwCn|"Vk`0 97pxzKs2< !C|BL'O5K:{ع͈YVbN߾[Fc4!<ܸ^{ ;n²Ґ` =6:w jp|-#vȝLsl_fL1k(Y~iuc0~.n VV5}<}%z2 ?o^Oy.\O}ձ]zp~xfrO^YvAţkcO9ܸ”i@ޡvL "Z4iҾy~FNˀtÄк>?LMts>aLsv$qVyd!F5L!*~J΋j&vNk=> ߠ(H*aoTj#Z(>uJUUjf(%78B^PV c*Hesm@h$ C$ΣnS!]ϕM rpSq hZu+ n&8Gʥ蒠Ie(-In;R$y+Z3ƤbQr0:Q_u w Y_qcA5T23.馁ˍQ(r})rCXx5et”Jf VYq!(1s t; d@19lܘK⃼6N4 J0$)E^+ ͩ"P녘H4(~[aWWa56gsez/ŖyuQl5j#N C 4F#l|H~18kw5⤘@y`7swfp[yc4?ѹÙr9. 2gCA!۬k"C>N]Ҥ9:3d?tW5Wpq§N¡A54WN¬ : XH83[g#OmR'T6ӁL>w`Y=u2sj4#?P ڃ6NŜ7Sshe#4>ewy & 4-щt' fK4Vr*]VPWZ')A?˺ve)詢KZ =_dl{Fto'YĬ&  ^(2 W0Dg! 'c0],($cSh+:u-i3X/z*4QRRy'1M%d1l!L%]Y)"ىm湑bc6'tyn*-Dü`#/Щ̈́ 2j߉6V>ѩֹXh25Dih1==fNV]1/QX*:+f88e4l־ϑ`餏z*gM]x˗ovg06c1/ =|AvklD P3tkٔ}j>945n`0c82ZADC"gsfw>ѵk~s\y4;d,n3k(l^ [#G$tݿL&}} x2eM!z]:glfA >wgS EݏyR#3z<ႜ(ow}kkk={pEDƆ|bM".¢a1[Op%,,c{{?K7;x;nbm} p#:ˉ!^\|{XV.-BBl \rF+Wy͑:NF1S}z2 !MINYqԉR-yte-xłČ.jQo16[?q6W& 0]cMM{'ޚiL{ETIXϞō{%ܔKO*(. L  2lā9kk@™Q$4 >) tODР(I"(f/ 5 E"<B_ YS 10 ׅs&ϡ`"hc)]Q3,I@F1eZګ+needTЖM<=M~zS"gDCͣ >f!:J]p%Nk%#2lnU6SA`D" m׫ykd@tECTd$ByB(FܰjkK{.3ɬE;C _w!L'W,)t,u+ ^ ǖ  IDAT'cEyO <~yGSWg)0b㸀v'UAtb ^dhmC1*ͺ=Zk[z' Y71_t'T3aܷO_w5-7pڻ;Bn0@Foeɴϝw~uG2GPsSպÎ/${ee#_~ñ4y ^bw^zQZSF{Vt^(`p`+-H]?/QK<^~څK1=7û/HKظz%xx+L^oat1}w_NjS;k~/0.qE.q;_]N0 cW:&[ +|_ׂ?D a$b.NB=TK[zNՕ_hԐ[uz 3jq3-ujIAŻRAz':ĺڱ_is}at]ث6JsO(bØۂR).rR*rDO|(p甁ĆWS$6^3 [mhs=|ZHe$eԍ.ԅ/!"M3pG8R-~'>6B1;|YS@A a8a4]&Et[T p]C} _h~mU +KeWG֡ b K2#y!<\gNAw::˺SJW]>!qzjWn9BNz5-dsv*] U95!)1ц]3q#YP^ĒԐT-\+.UW5T SZlUo +ͨRhaPZh+=m66o.!"  YVj eJ%mb-r@6mšؔzO9NYө6aK55J Dej`C~M6Hʺ`O:2OsE!T5obM1g#4ܸ:E&!ac5XnV(F)jȡ.lJy=~HZ~$U>_pу)}yBw:ss"?j FKK}Fw?} gR,./cܾqF<?ԈS'xe)#K]l}/1Os w޻|MYNK{&H\n;Ӈǟ +^lxC|a3G'@ƭwE02;"#:hʹ]j.)ԛ)#Tq3j$ڊҽ=4Bkmr, EU*s^/prrƆ霟5OhT2A{(4CP -KzUzIWNx@phG|ΌF),iWyh]G\SAhH[XZh+jm//ϴGbE+G:e(:2p.,J\g=F {YcDk\Rdr!oJaoft m&axhHE۽kքB7CWs>҂+/NaŎB77ԸO^Ŭ퐗B"gxYah  W(jf?tEt5Ml+h`֓PBW yPqs. ! j6\\FFr!u!csf1isWgGTpc&Z( AHkkuV(LסT!\gFlFypy]W>Fnard]3 ['S' ]$tu!/5 ͺa) Z]C&/ C-$ͶdDra_omMZt#5H 9[&B9CEF(4,YݒV4OQ:iqk:-osq,Rf6PQOlQ_cd`28bȄˢat|RғbS#>Mӹ+)rLSuc5އGI8uRp6A 5ʦG^ԩ*NKX1$i#ZArW)5N} MB/5lLq:Rac[)U~eP",3mh4ɼgIX4qSah$pQ+8F9h[_~t =!'Q'Z+ Wr" /:#ÓD4yHf.@.-|dɔ?~f\'d D69-`;y.: SIK} BJ!*hX'Ie&mdDFjĨB'" % ekP†bÍO롔xiRiDeKWrTE ᭓tH:.6%2uQ,Q"jQPaL" tb3C2wYF^w7ozΑ>GgXYd*K\޸Ĩt2cJIFw3nLU]K_cJS}\iwaZ2^9nGw ?üXčd7b?{8;#|OFߡE:%qӤ}Qt6fZ58tq'G1avVpt VcҔn?~?`<`23ٲfpi5' 6?8;=>:5Nl׿& ֏Sas2֍+Z[Fm[;3̧>[w<>1K|pl^JcmyɄ]/&7av%L'TrGs^GJ?U'^j W3\0HRL٥ARCLRb64ӟM؛[s-G%9VM~?tvZlI4zĆLR#&/7KUYH8i ͉mǘY=9S tϲ8PPNL_/n,ݗs8["OjioMkr1M3Rg# q>Qat"r1uEYk[^cChzwm9S`7@پ()!o> (W6)I3~MZ_=q.U"Pbv֎3 uCLhtE8h+õ6)h \H57R*$QcT_1GP+_!J9V1|n.DhwhAE4l%U* M>> 9VhP:א&")'t ܄ƞ Ⱦ#u/Fb,UL>䦒4ʴ06>JYRy_0+ci@e;eqѯow__wW?:(ȱD]"I2,5< y+E%[-n5x77nTlrLߛ"Hm36G#SEXFMh&3M7hnԸT$2EATxڒ^BhI!cPu_uK7BR y_i\}h4oUZ)"sq3cs' 1 : QJGaAl.PF.DL_b4DŽ*pWd!! 41#MPԵ6s֔b ;ޗCL1Rh32HCy05559ؘ'\tqemK6&1Qot͊ g. SFx0yI0:NzX;a=)Ю'b¡p'$=&L)sլѰ|@F.2ɦC6YuPC ,78L yHJNUgpc:* 802@`ALQ2; `Cgf^dZJ{(LמрPQbP}u6[5ll`o|.qާX^^o{|=ܾ}ֻ#ڵX_/KmSlxM OM '1͑ewY%ɆHc6ff9\ fp>~w&+&_mZFL8g<ΰu&y>{}z6h\wp~v^CG>}9Ύws}v:KbDE:#Зא΀9Ώx(@늴7oFpiWvn6lhX{2\*rӢݡnpH\buF&@21KtV}ݾt|.Ä1$Z+9qfbD4at&?|.2Di(`ݼh,2'+U4c]4Ϋ5{:~|^<冒4w N(PONuo3d*(ξy# $48x (&ļhMhtbčPBUeZL>ORɖ23FAΧ&?QW:5h1Bwڌ׻x *w#hrQ斛1ÇfV vǑ!zؕ-,$o 9RfAjT[Q7P nQAV[ES$)=1g HJ/MbtF5]̏~l^ 51%zɵL TA*ubk)?\j&P+H?(-Bޭ'8dȬ+ݞmC#bt(y9**OCrfvI|%pڝה,e !C0rNu`od?uD~N'>Drtit. Qg?_ooZ :V=ilĤ^ќ\]gZA/vs5fl>š̝z+;~*3@%z6q} :uQ!ݫ;W0RVyc2a<:ޝPFJy%yCMLJ 0:h)xB#P1:s4 diEװ}:n|I]WoMAtEnGh25FȅjiXBˈ(o Qpَ^("'s IY_@i(Sk90ZKS7V$,=p2;+#C6m. n{^ E"5M)fy!,r5.ѐh͛ <") i˨~hl*ͪ׳Ut^PƓbXR y%}R+Mp0{sI r7tySx*Rjx>&ɪ?т %sJQw%+MeR/|٪Y͛BS\M_}QbM'D6dy%H(!zRZIfL`Є"jmMl%,8:3 ) =6kg'ЩC-~W3dMoJIȋe]+5QOTo ޅ!okmmvTٓFјҺ3UTA\a`CXW`>~~y~I颓NNXDlY|^=q|0Ť:YP+Rv$i }pd;o/n^obQ,&ZZ4/N(+k$&e )MvrW4n34٧,֜)\u)lRTGɔc i IDATPEmeȢ5 WV/M(4h:;s#=,*'D.M}x]hON2ꆴbbQz5TlΙrhq)uHmR;|e3ҟ;uvNu¥/^I|BH$ 0׮˻暣ksn6EBj{*5콗0;3 2JDUOH#7C[+x4]i(/mV$MkbEzoKȵ&?"_`_%6[ WWKzi/۷Gx.ϩɕ-פd^&f?1VE[>8=؛aLդ+g9xtYcF\`jy@f(I Op5 !8ZH]h|羻a{ϟdc,ҵM6S7CN'擷G\5sa 8Ixog۸s蓟v8#[8Yw(o0;BC}( "O뒔TQRv8>՛gV: K6@.E#ްHsGM )wĜ6 +BYyyFFipB >.VN\+r xĒLXy;" O)x21 =C2՛~ P8!Gġ٣{8yC5x;$-m邆dVGDgWHVB[m荓Y<-6ʦWq}&Z v~15'HZK+Ń5 ANyԍMdTQDI*GTZz0@+ ao`qKX=GEMMTFT-ꦬ׌R :JB$1—#qf{ٍ؃GUν! zؽGʔ8^j^]u! O}QC`c9RGu{Q!W]9;I'[v6ܯ <`D68*bX[ytڹTܿL 5rzRsYe&dSd*ljBbY=J&:f SRW2hyv19Wեsr|vqxEizJFfHhz)ei B~($um\YA I-Њ@Q.(yĽz8~?z [E|j,ЩmPCG tf z0R`.*yM$Ass,R',JFyrQ{]yt@Pk`d%ۍ ӄQ9^:iR=4x0$X::G{S CX%սӜ̟ ;pjE_ĸUh^w␫`30z.ϙ5@Vs2uA/8=zkq I:=C]^`skp$Z¦iH٬i^D4\αC j0(+H()Q AFSDH+TXp\SٲO&DzHF/'^H0̈Իյ 'Z6p5>ã_OivQEq,Mg62^H+b<&N^wXy=OtxnٞGY~#,l,X̣ճb`-ѨSJ,]8?$,wlzE?Q1,'bE͒F&r>Z sIʔ[ƥʘBp`Wl*?Km50( -E%ѽ4^z^Dǁ?nl|7q%wbKD.Idg73VҒzғ*5ٛ!iTogKl̷9u_xWCk&j y2id'RJ7*2[i]aQ8{D$40'VXt(H͋m&"שNj? 9tMtaT5KMhfyAzL\GSD)k0Lb)J.iW-q]HXYRNWIyrA7:x.qjDCTɥ˳z#l<,T$K.agjzt>T&h04YF>؛;et\3|wXLt5 -&#:Ǜa\|&՜ʭԐ&Unb9FDyDoe*霉4q- l9cRr(V%2/KfN3}nSbg$oY }km%2`FokCG)"cSJeH4.29f±S9ֶ77XJSc kaMڭ=~6HJK1* ֩knH}iNRKof5N7cfMb߫k,) e1OQ3oh%h'JxRɟBٕ,qY݅`hn,ahuRL+[^( N3QRs&A4NTP?%Q=bթ)QMQXA$:*wlR%Tιg$H汘EC WRQFcdj# qB u~h<\2)7YcS,eXPg vagZSS~{[ n/Юlv5Yh_8ynWu.zO%Qd.SѡINk'onv.pzrN8˰Wh" 7oq{u բNZnD3 w}\]\[[;Ȳ)b !&[<:lDLf/ذb>!j}AaooL(uk]ķ_#~g䓷Ҏk={0Zt6c1oO1^DX:'pw})fea\BRDIEk-9-kQoQJ"T]õk1SमeҪI bĸ).T`AX) .1)r~jnJ㙕hRDCjs6Rtz\,ؔמgd_ATp@EDzc=>^Ǹhv6UNØ [("+,4AJ!A])ql()ծC\Qv"IIrTB:..|`)@8П#,A0h<x_JDf`vi\x݈FZ-.>b}M>|a@=R$ԭQ2cA-B ҴD#W0%;y??\=Qm\9tbq:nё6^Ok9$r&|koNZ$f4GSEw1jkaT#ER+!DդM~GD;[4 ohP˂IREBsAsYtAd3gٟ=D+t@7PALnFXg6z 1,uK44ROgfc PV"rexQmS/u&.Cڈ6QtNԬ0}߬7Ӻ!K+cYlv^%1-ztJ 1b0DSQyX{XM%Rgр};26Q'0vfגR)9! 4DeCWg0^ީ LcerYCn:$qUL.xm9Pf56([ } /tG]38CsF3+UH]{BW&gg'XFp4S^a2a2a(. I1hǧ?Oqp[{h4[DA]05xnW|ח/0 3]q۟`8ΑW0·{;ữŸxM]^`2+ Ώ~lvd<| ڭ.Olnq1tz͐MzvESL憬Wo1xm!2#sq b~$ &񃘐AY&cQ$aHa&YeF~W]4]~V= ͌r,>R,˂C<ڂr4%\{"Qmm4W7IWVfA-Nc=vla.î[75t*U7o%0ІM hnvz,r,xFJ&᪍t]bIK':F ,ƻVT[ե*>S[[-TkThb15/ST(`mW_#&]`w`OZ$I8}V~\^ktހ#㔃 EhRP ϒ5[/2շ^^iv#U{\rup=Fe-֎"KV^fߗQ! E=R8uh-fP tY忲/ts&z 5Sq|Mŋ)/@]r#1FٴʢȔÉe=*ƃ>WhPe#kH4⪚'@Ǘwgj)YĊ9=WJYR3)j9 6xixwGaڟ9mE@rH:w BqݿOۋ+ hwNHkE]"TܼTh9ːS)h|YI߾:)YчҥAYlYi([@RF[ ۽V3LQkt.ٜv9y?[>uB<>zݽmz;=5-XtRyf{()r 9Lp:ym 79͵6w'zB_EqwtmVM$kU\^仗Xdܻ>?42_,贚<Ÿ!I[8~sws>ⴅ-\]]Uۋ9R[O}%$$¹薯/LGGeZkP ׌yz;Ei`[{y|v6>9H%\>fT:Z\s͔yv%!*![l:{s1XI/t iVK{87t䳏"{)9 Kf, d`TtJd 3!~6gls5Sjmn`3dર ϊkup.ͱK"Rl jdCsoDXwfj7C|M9Z9>qIl.ń&vi3.Y8.6@jYC6M.4&x2ln N=Zs46ڪw*vAXQP1Fq=ޤ(R)ӘY"<]Q=W_G-RV T$43s9L"W/^Q@,ɐ\WO_辟'EDeдDS1Qa u5n~QD usb2|5ކBcqDz'~cp!z%#?0"P9xٴ U9N7LZۨdž>`L HTM иhc<*Ulh 7BsKcx`L%tWy xZZ5ב:HF#Aʉ^Gx+; /VcQyf3R o E5މ}uu@/YYhb1TaN-*H6nfFuű פzLN-FwŏSdv>[guSvfC%nH)l] Gs2cr"/:ݶIuHRe=.70јyN'` cV;Jk*h\,_VSTd }qJ) IDAThӸ+(#pbw T٥,rΝB ^'s-6VͶ:/\&ŜTu E 'bLL W[p0 Q]xn͍=|J6#be!JLs+,yz4JB,B,CS_-n,nͩplѠ &\7$""- ?Z I*Pa*D&/ -Ĭ4ڗffUTt47R97k15&KL˩6}LVpEo,b/IP=p1rG:*~y> d]YX鮠tSҠ5ֶ^deBԕFP8=}|ɑf1>&V]޳5CA]suhTK4s8phm#SiV{]o0 i, lbn2F-c-> ' /Bii.Klz]̋خ+ ^_tE|9O>:b`t0?>AxGG=;ڌ7nSg{ϱ߽|f{ R(Ş}%C"|JnR1/׃KqhtVi"V+E'+n2\娡)d(:u TP!$8͢Ml%+n7-3b!W9Ya,oPXNjms3mZ?mX\*[#O:$M gA,7X6u-QtV9+ۤlD߸hiRiLz m$opw.G]YNiԜp[$@ͯPplq0%-S9@KYRiDcE4b]5f2ǍU'Z 5d*m}W I9LZՕEhm_'g"ĈgMRB+tc(CQ94KJxC:郎D"N lVQΦ\",BF]O& rYdm(a)G(M0CrEOptgr7- L$2N\-S%f:ePZKFZl$UF> 7$ibQn۪֊&k 6Κ~G=MzrD=U%CҚch9^"S)z}ASx!;̍M3^)sSBL2eij5Vy?Z?m^C386iT b $<:B`ee!-Tk%<^ JH.yF&ɚtGȒ,+H%iDj ʩ%= B9(.ƶ`:Q !Mv8 m乚?]Avs8Qo$g*̗Roi*2"HHdF@Ҽ.ᔉ@ݢD5#HMViPO1s%ibZ,,LI+6Eυ*^zLAUSZY९.RaҤp'mhd|'C8!"G_g񄅋sF HDAd("43WSArhL O l"3B3-gZMTPJhniBM]NA XHCk5Hy13^kͱ&h7p:Klؕ'ԺEMÍEq@&Awo&\zSK܇ e97Ng&>&bShkHӏ c}"%Vw?Iw,`^Q'_'?)݀V{t㕦 b$Mw{1cǿn-zKi2P+Zo[:ֵmzL "RdZܜep!J}LVo`2`),~~3<8|=t^~':A*:|NGX\1c%P>3wߑzg6 pyQQ|38cb_a2blb$L=~ NZkT2k o>$N]Ce/ad{K}'|i, WHSn/ XSt2,4 9u>I.|+}PpZ[\]|Zܶ\1oY6EZ` uZ R-тLGmB8Yn~AjFͻ[] R O4s"1y :s@giY&7tIOe\޴ƣ-1 ͜A!+};-Չ #R/"j sSc|Č5;둑kh\!|EN4\j*j/=8BrQǥ?rVoDے Tk#C׍V**_fQ6.xXzot5g@Rf Z-4t{mYC3(0+EC9njayw6mb&Ȱ[hA#QYEDc'OOniZri(H̋4OG=5czB6s0I,"sQO(th#Ԝ|Q6݂jS)tP-egEnkثkjR}g|60ɗ僒D#ٌ5ĵ1zC?6ѿ4W/˳VEB(zܒ.6 0$J$e@|:gϜP%yMxJVI%["0;`:E|]v2bQМN^Ihꘜ,Jiz(%G?޿O5Q;h;?,éhĽ7iТmM>rrEf?r$8D|@ma5Օ0Krbm@m5D3% p<5ƦaJ~^7ä&N5dݭ>n6"҄$l,'/_{\'Ib"i&Z$Hq[Xyb{yz:6 "ȱ,2XvdJyn*AڂFr#u.͑XOi2e/ ~Cǩ aLl)jQ4xt@uæҊ<)ouޑ15!=pR†()ߏא`ij^Ǧ/u_lNA"|e@n0*1OS)A =S]FJtM5Y3eWݡdʵ1jhJ"Vr{`x7G/+(h8d<9ݝ=҃}!{[S!njA¦X[}`{`G&Dwp^DZʌK\,D/)H Z$:u.6ʨ mhup׿CycG6wbWBU\_3}|/npzvag1v=G\V_>rm2 [ǟCj}|c}ctԣ9] lhE&_,WFmӑrJ@f,2b|"<3"_6 "GHA/ uRYilT'B Ne[֩ qBXC1+dݏ-S2?1h?U8bַmܜ?goēBW56u0&ElFnq@"r.+dP ga+ܹmH)R(2 g.J,.[\mI1 "_Ч `xdF]Qog 8<)2cNDZ2},OS(܂#@3o D5Mͥd.MQ6PHc`5#4b]`]beyW4NX3sꖽ{Ҝj>4CO[䶄=@\CM7 |jů6=ԨBp"EvX/&^rsDAn妠ZHq/oN׿kf7-sjd32JKm(]j^dX ud&S#a6)i]LWqFM'Bm6XA;6X 'F!H;-%aWwY|!'R.IuһCt Y!6Ol1[ gw(ʹm>Z RnIqΩm*Ԩ@̼IMWaqJMLcJE (0( ĕFA|65&b"6gIqW\{02VW+"̽&>zL6w5ƣ+6PfJ],ihZirѫ_5h`ee חW^s^oR 5Vv%`>ɉБYcsl> R-XGǼ{}rd(PWѽ5g&<7N~ FX_78:=Rb7|/Sc>(sLg?y_ |ɧ8;>kVpqQ7̆el9VVzhWHIoVi%!A~oD^ txћwdT5Eؤ0PߙoNzۻ;ƶvW2st+e(ғ7L4V 1}D~ؤic%CP;OyA04Xy_9dt54MCt:_-\]߲LL۞]XDU `!(ĕ#mɵxGk;FD.2rvcWߢ2h5yRMU`߼Vax'dafH*c#~=ֵى5GW:־i(揕q8@K'k .D|sDʍq) !}]q,-7SWN42?MJgwf%2f}lL枆Eq\վ2XRlaٳ k;'1\> ޙرGdH_X^ZpnRt鎪Z15xYk\5eLv7LZnuuK׿&#V\"Đ 74@ ܌|<~h(\bKJhޱz;5L HϡM掠Swc[fAD?[y[{h 0Aߜ gJs:OY9R ɿͬq%7(Cc@GVxJ[-_*<1 vWSu!t-Nq)X(frXdF4I^z0v+}U#gR:,D^3Wkuf3Ҽ<8=yӷav-j, :TצQjmޣD{/6έ85H| =nDrp 0E IDAT)jX("E8⌦;mu|(^0`|cw*ِ߰C|V_oKD]c|)Лk;-{8;;<Ǔ' | BtvЏI.1&+pE,A50x[L'C6~KAm9&[q f^e>ݻO9H p{}Ml>E&1A#^} e9tp&dӾ &׀]>Xm~l1&ye[zow<;{xs|TY%K: 5>^#z̀m7+7 }l*.Nbko~ϸxC3PxGpLCa霃Ѥ($aQTnb<zx"Tl MMς$:Gt&5b9<-f\id&]JAIVVˀTܨ.Q]:ur?+w{h|VMpċ.s%%r\疣жD |SceM'Eƶ(e?GƐIolQgQp-괌%#%xdmȯI &ĉ5^$MTmY֘VxT AfZN'3Szt58h#* oE1&jK\ wA3Ľj#cUM~EJ읪)u8Fd!չtNB@܌j@"qd+K莫-l6AvTS*k@2!Myt+*Y&DLͬ -fht(J 6H77C<#8}ZcLF Xc6iT Q7${)K)l FtFl6Jpe< pJ4ur(}^zǏ0Z4iz D[ZH#/fan}[(pWÅH#dIURECSx%CR "PܘP#=_նcE}$n8lFpAv2qJ!gA'T=KͦIݕ$DJ#WkMe2,b΋ !jtagd I-lP1U>-U{Áh uSuz뗠Fkwp>b';6l P^{B55Ԓ&5٬:j^q[jޤ Q&^`-pqu1vJCvw'W"n$]4/^W_}I}Ĵ]\v;h74;Xdt4I36I!su.Ul1z+Ȩ nr^q:L6|t5X3|6qyvٸ˷ts)Ǩdxbw2H֦zⴁ?1g-=9=/PK%ȬWY㮮nN[ f-)s3Lj-tW{6hJ)v( !xB‘A Ø'OGCq9{no?SbZ~3d]h*y)X0sϵȒݿ]ԑ]>/C[HJ[6Â-O{LЀWIQS~#Ŋp{3:n9L靏}?,T9Lo^EސF g3Dί1鑛ϟ5l@P?p`ѻIZ_įh(P[2{wEɦ6 C,Tn*IzGfbxʨ'鯛>21sTˆe1K|.-H>"E $4X^x<7.XoV~t]5vsq׿)zT`cU_4(wm,ng q!~(6ξ2VMg߯m! }%\j[R MZA:jd;z &y.PGvz6 jM܌,XK[P,PJt& p2?;B,dz$Yz&V(ͭƚY-bql?Qw89ycywr Wl.%~[Z3d-ָ╲IJLK6R%ۂы\ -zHQ,5Bfcsμץ=]d)',IErix؊! >YK1\g>ewVhD !!kڨsI/v!KR*-&3ǑFs1,jp*1$+g;ɾ,4'`:Jq# z)+ř*2ᏔAݗСLWׅj^:'X2KuEpųxԨPQbEQ`Q.b>'RO3vYο6wXNL?PeJA'vPX&p&ђqBlfsop[mJ3(#NZͥO82I[`:_%<1k3dX \ mB&;tGKF_7nk& R8M57Ő#YFhȸ|uwj`OSs;W>, 4rPG;Z!ORW0'S)Z*-m]lqx0y_ ~L$1dmښPǷ[a\O''oʐx!ס (Zz[ƒ캪ǨGV].QzF/FCs_+BkDRDr:T'^k_-& Oj\92珗|%-9L<_moYyQXf[^5ASV&8\QsW| "W0fss?%.K=$rM 4 *y k/2萒h"&t53ѭ:/%jnGx?7/6o@'-K EȚ q Ψ0.6*-I+pk4]Cd^d0;ke<ק Kb,5pR|bAYհFu+ Әf8XHRtV7l4ItTic{Rݐδ4zs:s0nir4>RoYX8=uJs+ͫOoM+ 2nyn7R5h $%pc^fvx{ز;~W6%ZX̃/ͯ7! TpWuɊ{iG0R=0O5a1(^Ȣ:,cLjB>xZԌ+?;GPυ{c~򕜾zt?2n^(IӫBS"FA)r_9MÆS ՘M6,OF1[؅52Tipm>Ұbu"$xBŤ$Ѫm`6aoOD j* b`<rI;;zF[ݰ{pnT{f?yF }g{=$Z&{xIx |kacc>O J,&RI\flZ/Ѱ٩"nb7`:#.,g,S<~C3wH `(c817UbT/&aDd-Ij 'bckY7宆͝C>xlDM4[]&sϰy:A0^O?'wPqpxmf6|:FCV{{ď'3_\"sln#My4!Cf9OK<}>no/1_]]Q_[ounGQ.9דlAd]28oM\3rabY9cg8!?Έ$Ail!E@0V@a=%&h2`4Ϟ?GCn(X[Yh<!.J6D6c$TB[5:CM炳G°[VkZZ֤EkQ$gPT^gs0Ѣ /=-enu}_pĽY1IǑ9zjmu( }l`Av5Ry>+ha GP}^hQE͆ӨL3 jLߥ/??}7ǫ.h= Uc;ݼlHqz$$ٮvLMdBGaIQO523Nl`P1bt$JT7J %X @F&ɊY~d ۉVz}m185V uE`fO>+ͤ!NLփ( qi|>jEZS" )ZW~$mM 4D:1q2u. j'EZ 4U5jM |#Sq,;Mӈ Ѯ&2Iav`%ي y&EӓHI"nq!p@5ƿkj;j btsMINCt(K7}-L?*Z'7ZyDu8Lc31Xi)\ ]YfMXj4H4]!ytml5Uz:l*)B5-< w--ua;/ @̸MΡ&']DFidB$k:1wJ,g3lck}Ã]#u2gദ&yYq3ZtT.G]L?RvK'S7{;zn1>NXiԵnN3ї/t]7hCzS'ۢ0ʕEstͷMH(PKx8!"KaL:G嶙Dkpys*`t_ d\!| !g}kA*k 5G$1F];;{8:zC4v2mlɓ/iXYx kދ:εA ]3mtZm~f=MWxKmlJ/Şbc_՛78~{V؛oѼjۢC[bk1})ǯZz٢VJaf41xq}jV]|[,c\^b&wpvqr3B͕qaDյ\Χ7xG3'sݣ\C.0#mXdOi7Z얪M^VR]fx,-O">ښ7.!ש]~qHg.|5 J&…jn_WT R|nI&,Xn\ɠwJyG kR9ȃ1bs ֛^oAJ{LsIt{&I:u=z $H'ϵvlA`1geUȬ2tX;50V߻ }J?;;SVlD+ i3ZdD3y6> Xx hKc>/)#ԑ7h˹Sq閻 `e}fLg8GɴzFprmV3&&QRS*t3F=: +88U7S `4~66͐h7RMR"Z-*4fɣYLf[wwޓ|>@OuԾEVp(c7lc65H]|8fR>ٹ'Tq8lHo; rbC,F=&}l2Dl23+Mpn%DGp*30eWHjP&Xh`_CAR:̜ҨLq}{ D34n,f+KOop38Vkvqqu#s"BgGB76MJ|@\xMظmnl.V[* IDAT#b_f:C^vH[,u_sh&ʺgLe6X7. +.>?L<i'ヌ-#K g_腚(C,m+5kk'b "zvD8[{X_[E%~ɯf+fNg0}nj1>vqv|FLu=6pr|`U#gBLnϟH2Ϧ3績SF|j KllR HVפn4,?|hd/ڞ:-sA["{QH/b:5ṙQ 32xEvȜ2}E&כ]Eͦ\Ɖ)D/yXw岄 @j#۠*C3n{A\W\v-2s"P"}LR2ZZa"HF>XRQiɈ~oh)]*3 Սʅ3 bQ/ꊫ vT `A*=NOZ.ihScF#Ԏu[U)`8Qoug0*{ 9"鹈 fBikWʻ2Cs^9@óJZ)ЎC&1tCo;N& N6# ِjV߃z=E0Y2Ğ kg44qEshƤD#ʜklfcK"ad$$C܆tY{o&|95s(mh EL1TSi&^s½Mť%.9zKKb{suKKt LJUa|=UZonH{†@`./&;208ev*HZDhv+A&h[:z1^ybOpn2c!fkMzy>*2CM^i"8 fZNw TC(y#,ͅREfc32|~kkY(N_dgu-f.wk Os.%&i!)b40kNu9I)'"AynTHv0+SC7۰f3WLNPI{0w3pX ],MtthE!:،:mQqzY;w1"r峳'8=;.n(Ziե,/hhyW"Z#ܹs'Z?l<6Q'ׯf!B|g:./o#Uvf S r!\=~s¿9mISBc9 3&'h')ξ要5eI#<}9Nϱ"&Sm'1qc~#Xf)8=|wezKX_l)у{6Χ˿s o0 1_1NLJ>ݮ"mbyiS+)5 ,֎u5?;YSnZnᷴFȭQos0]kZCE Q6 ^kf"բj9pJFnN-wРP4S|^Ǟ> 2` @zhš+JjLz59j3*#K'ԍUmL6I.&vU|[fpJEO]JhaNB,j6V|YY8kib]I\#?.]/Oegn0bi0Fh/5!E^R(t>[OTf2jŅƶ4FifzW| 5lwLN% *lFܲg(+1׸R<77#ƾt19Vz7opI?L,*qV\kirdUt6 ""t4!f7emh4U,8 /h%x49@wclllr]8@H!)%D|ZD:;V#XlocN#R3AG7Ա4w xsg9i)r4u  Ltj'1ڵhw n41t.GGl KI{tu=:D ,Z*&?Ҍ&]bSMDǣ)nMeq%8wZ)NZTt%}NoL74LhPkK:0ydtă>{*^hؓO'(kwL=>>vϞt8gT׵ 'qAy56r֙?z+ԋݽ}ћyh.$p6.ξxvᖎb:O=^ұ2w:%֖8Υތej5!H1.NS/1f^cLd`Q?hDs$'_"* ϱFwW|gV~z6{R_f3D|ٔ룇.>y)66v?_NRlD $GRqzJQF9X*c'm%4g:aZPFYݼsIӝ1Z' aX'ͳY;ϖz_#6Ÿe(rvt^)6豀'v:EPḠ%0[SoLo&ߚ'XWhU]nJgQ4%& <5r,ђ?oCX6olڗ}{q. t\犕iv2FȔZ!Dl㚖)7zhUӺU@=6RtN 5LEiFWzdxxy*EE#X'lpg3Pklljz;`myEq lA>G1UI^kf)bK%\_]8-RWz%=u<8ŤۡS6Ѣ||IgAz/PrHF b&\N_J|_u v _~lB׽@#-,u[ =]jL#ܢ%M! _z-|O>ƔS(~{(wݝu-TF6o} /^(ϟ?ǃ51_}/iccoW/ůlE1~tWtӣ/PVY W嘖G+ŰPJsbxQv'-iNO&H=w:{ln:xxehF e9D#Veh;#J[lS\DX\~ l3bn0U2&s0I,4GN1q6ibM ҘDqc&.dBQɮ̄2dpjl>P:j}MPG< ³KE.Nfh w /f+݈2qkh& پȄ{o22"^5UWgTɑ*J?lljɐTe3鬑=㏬tYHXfQ浹y.&&F*0$QXGTV{)>bkJT\_yE,ph2B AFQk"F YusWR5Nu 1܍K1ݨe=^xpZ5}(cgx`M6ٵT G ,jʥn2-n$,ۉz݅0bIq3yQT͞=KK}:XW>9G3M;5e^[U. Uoo7wtɭ7w`:Pp=*# oZdP۔f 9b-ɻD9JtTl֔l*m_Є¨VN/]v=F,ҋi3M=Q3D[yH(QGf+d@J9a*"*>5Ly0]62lcFj6z2ɞ"/ ܑt6t$X(](5-+mB^;WRHK Dj#tfδFӦizxbŻiN3e3]04sXY^Ggs܌{j⨋n,s| 5=7L.>8Kŧ5sjk6'%J-M&)c!uv}mj`O*9Q7 ^Z2Dkili‚48ҬvSz<&MjYtm-l*=p8(kEeHy$[hC<~Ϟ}*M| U!?;<[jP̰Kp;m NHNNMq{s ݶrS2u+4iw{W_=RiwD/uټ:?G{ V/>2|ϯ l[`tv;U+_7R7RXyi1: NՕMVj94o^GQhxvP')2;C2Jyyy{w{_r} wD|[8Y@3XAq "NΑF:ó/'\ߌ6_ۺB{?sGx"CEE% H:Ͷ&X[I=,VlҧX[ý=|9fn4Z!63s9O=H{+V}c^Z>3jD%MҤ1!qeν`!0GGdo(4?J4Y?K9( #l\NNτp~ހ6x"1jX,Oj\*ߦRSeΆyqB![MDs t3CHk,<;7s*fhJ)-OŢ9КJ`j Ĺ_TDY(a,Hb/s!_֠TxE(āZ\Hj4 ӊk[kQEYqݙELR- ]4k>q]Ej"qY]F ~Ӏˢn`\wdl= =zԵ(>Z[42^{H][=*QYWà]d=BFyUwJ0 וPPn~q}eH9|=E7ehT9Dg$MԺ\TcW$QaFђd ,ϑ+&pe yIE_/UV(;ݨݹ^>7=T0pwx? ^1pp83Q!h6h5d >5~ ;0/7pJӔBXhXZõD]_&{-.ty}bZQ^ ӬD ^63GfWjS3DM.?LMh%YU\f-F(bMTN]aZ,@v̾Mtg^חB\g㱕>|Yc*m Fuoh42n 9޽kq^(kΝS|;2KOO,NOOrmw2Y*)!.Slo~x}%dPD̈́SO]\]O?W\^{n8<a2IY<] L1F[ ʚv>gvӚ ;6g5p@Q[ <<WFG?tj0G1%Mxs5D XK'R71h zayu yViq`^EYl.Mݘn6WVpm*uV'P΄r)wfTYh(c҆`BO{?utϦcd6s55-PM=e>>](McÃGZv||ׯuy/^bye,//c{g7CE v1n_!htpnt|gy)&tNؿ>Z-q,寱wyÒ c<\5!7w6VV6l6S5ysEjmfTLPLn-ۣWhwr}m×WX&+,[9C/{88x-G X>GvOobymC<Ż_Rz\)h8濚.tN-oy@O-F#RhsҞMڝ: 7>:xJ޼Kp3t7#oŖ#U֘ULj.sC 3,տ[(hv*+2cQx0BEѨ)}eERkm끅 3[KCh7wu~}issȢz}!~f@xTLF,hƖ0iR}䈨;8۴>L }FYGE)Y?ԴNeL 3j2KqtbȌljeԑ1}43vv|OD,fHrZTn 2\iIXfk+*S_jr4c#P݇`q I-J"Qs@cfqOl2t L,Knae"]NY%FI1ECEk3 ecH5/P1&oaX9 66Uɳ M:56c W>Y4B5_Tݱ#rLѦhڒhэ-5.,PV,K s???ctμ /$.Dq2\oD%j19aYl"3j1s1B8$iu|AšE[$bF*ξy zWWLGFRoy}ܽ6k{z$ԕk47&~2㙎1}}xk,NCvcȓ1޽*WW_[Þ1< ^~up7 n.#˛}ord.K|ogd6Ai /p{uC=/W'L.6KG?N8:<ɩ>v*BwT7Pe,M̜Z>Dw;X!Z,g䭯/}P$Fԡ?)o(|hWE6LE;jXLLF0V`*;5ss 6??d5B6!Z[؄0 m:rCbUYDģoсV9'(7(~35 03z}~FhT~Q}N%4D@[nj-I}s w¥lQ+hwzxVV4FiIJ4zhؿ...CsC3ˉi 48X6n^i+nl|:Bmső),8c& eok Ty?ՠ6+8s'kh\on,\_POHsRf D ,<)'nR`# 8;ɡ1V0j:c`hٙ?sK>xaPB Di\5^&<;Ш82,k$NIsm`W "f 8P4[pzu&+$BjHOP#` 6İ8GD|%7PTƠu#KjY,*ZsTM,fuTm\52X7݁kPFMu&KfK9 \ƎNm5x!:;GPY I̟*fO~[Ӣ*e7թӮL޸Ȼ6CZ&:TQDr xMhx!&ݼҢ1]vQW֯k*Y'c.qg# W{INaKVC `%Mf6 QiCRp~n GlJ[A.B]P]5ZP3j(=R쇠a.2%)Fki8$G#S L"2>ѝ sVWp;cF'F:UE<PP9./Jmab 겈fmCKvp=pHJ{tVm/ 9%SVi+/ѬQ Gj \c21?2 atWaF[v4،TԖ70d7sTaLaG@k$x贻$&Ms*}=GL3l혹O^j8TF枿onעLF 7M|ttU9>Q͋/FkH}!~Ϟ?:́x&oV >z-p᭘*\l iSϿ9:f 3lloK\#4a6:C3(#Ͷ?Vx{$#vB.05޹{˫fs. q~~, \{o#+7}*ɀҤ'f1..5E1(FRQ.ccu6;G3r*DW!;K~!z>^|'o_O5<`#J$u͵#3 x./.5Z]]K8_+RCQ)4KX<dZz<~M|NO.yJhxj4՞aGP%I+ճ(}\B%ay* Ml;i0 B圆7q0wr]]pKeE'Fɋ= vd+ nQ8*[g5(E1hX ujC#z[#kF#7)CZyL}7I0W]40hAWwfZY5qU{or>Du>jT͹:7[\VD{,n~<#wUQE}_oUxƵaa7{k4v Nmp`V4j}pk;T5+.m (AxWz3|˽ͪK-SGhi*֘lPǝl:JL̇e57ob83 (y-;{O?懚Ǖ嵚Lep\7|J$ vR"Iih>x@\ʕc-m‡٤6rR=ֆS*xolCRNEYʿn_wᅵ/ W-dD 15{BgS,ma6c>o?|?1Lp>aycS<P&0q;ӔgYa{U9wCN6iD&F דOf57ֹ9$(:XX0t-aCFjL9MZFq&f§±_QRc2͢jF{zOqW7Z@+xؐkѯ 7i>,x7sd2dy דҺzC Ac"1~uߕjp!mBZV^v݄զQs$ S3fdNC\LJwLҤ?nYFVV!bPv4M Tb^izM@e^Ժ&A"@8\DДYr T^l&#՗<&q0ވ5%< Ӑ\{w1N0dҫP# /)׷縺:)%"m \ U&};yFrzw0ΰk]'#5xR!fj0꩐GayyI HEDOPFZ[};w fSQ5/XݕhٔYC"|dse|ཏ԰%\_ ^1a:JGlU)?|KxՕ w}Wptz./~ ;kxs|_bme tgO?C>ג{ ʨ(ޣlboRL1a: Q_][վ91Cd˛2ܻ8?~|:ꊜGWZuGBSs5*\TQ"h.?7Luqqqm alh2CT36 6Z#3:"w:Cjg_bCG44RȝEC炙5,ʃ: IDAT8 +6/ݏ!,JhU.KǛ8&XJN/ υ؋6\ +Л &$6Cw"IBih\-(pk2(tNV\sʚ㪡C:ޟ(kT[׆],6|acibTt2(BvQ9rSUˡ^T|7u%UHko/l]Gn*e^xs<7}Br5ji.u]]S,C1BmevrU5xO}6jеԆU(^@؛4 >T؝ӛ׀^-,/Ҕ,8CjoАRY&k)rcFЦa-͆e SanT]*~a@FXޜƮ&p):Ұoܼ~s݆Ш&{ {oniY 9 cFlRI"h).d*CS9n[ S.j_"kx$LFJHDiUTNhNҀą#,bͪHw2CԎ.Թ2nR(/_FS.ݍwjϟߊ̝ÂAT)yt ڛ1& yiYKl.V)QAԁO'd]?(c\{cBHu hӾʉ4”4?RKrCD.nr*U9H/ LfʒNn;ᯭJ&&Nc"͕) ZA$#Q焑3@ˣzͼeFK)I #Q4cm+Yl' FccEzP$ь49#e.Q8Pt"/|]y8{@ŹM@)oSޞCܹs/_?T#|'CD L'g)6eOͿy;wunAQX%壓3}-Y:bH쨙~[wf!s]f26,<~!Gۻ8}CL/_T\=9[âRv[8?=٫O466z.M//xꕆ'3+;o6>c\>G|=lol\L^O/Hp7_"sYf0 ݣT[8>>O>kG#Zi[Dtz>dpTNN1鵱E;i,lnPIíCHnʷ"9_[_5jQ޽'Wrg%޿W/_0[b{n4qYmQ[[ۺoGskyG?~*i> dq54x(J md< Ut-~*AR4TL\`z[6UExX'D-1q!aJm:1t͟5lTKE*s*3s) r/7Zr BS@? q\V7њ{y-=6r'eUA YqE|P75!?5 Xh0* 6({R(7&8 K3h5A GXsW e[xkp:(ڕ8ܕOqAB W1=|(x\P!8N3`t6U-rmܥե]CK$eZIYQŐP, HtXSVٚPeCXuF/I2vJdэ>wn>\ja .f@X쓾\ hX5KB32bb9#k6 $q.LY81Nj" eT:]X9J9^kV.T# Mśt@/,ejed-"l@e I/2YLi UrIAI{bE(&¾4 rE5;N`#7,S(` #"@54ԝܳ"w Ep6ͤ4RE7S5[_nYCZ3"El,$av#bcH ܿ&Ga&Izо#Boa:6v 1. A4_BtPc[v0][^joIj̓&NVH1)Q0BEw4_QQYV*Hj:`5@a8o2:K& T(lnx@ڢ2!)9=vu,ټkA yo^|YEq[ۦi,asl1nnh|Ί]cdp%ޛøGѰۘNsy}ugX/r< eݶ72?&<6T$"&1nGt]U|R{҂rͬi0w-~C\(i0[9-R.L>r;I5xӟ#ߢovXӑEP,qsuVo=F^x_s\^at{ϟ9+,Nɓ'x~ FA7qؿ=s݃~o ~=llnx(évxm<|}QS녚5] V}]Hbwv0"Z!X[˯'3Ce7Uzn0hnfEH h͆+mǤcgs5,9P8sRҭ;Mo8:(RUZ+Dkjgg"d Hj4:v|zrk|{ןJg [͟R, @5zf(ʜ"]}y^:* x5%D0 Q/,2yT.؛صkq}Pw06elei}块NV9%[ ÂP6p /Pն}_,qxx{w榺oSc!.5_5ZYE[^8P-^/lUk"7-#սPpxks?CY!c8 Nh4 [5EF3 r؉*)Qi R>zzs $,A)YtY}[f ~zYp0),d@ǽp[s n>ؑiQjpgKfuYy|\$s͋xٺes4&"tip{Cԋize=٬ҫ YHX\3Ͼ@ZXw4+8צ>ܤ.4>ЦMH;{ :(GX]7l^^Zr$Q B*Pw80;yV]\3k^IkN+MٱS$1*Ȓ'VIYpKG6A-u,5Q֌i/lZ, %bohYMgOɍ"ݿϞ9m6:s02/X97Ct@% 7(EdPE K}sRH-J>fY,d38F 3ˣ#GλQZ`H#.+-LJZN/3rki֊LTs gMז G૯B0f VaqKcFe,fY2 YTGw]=?wLN䖞4(rNu$hi~~_Zt22(c>cme ޫ+nBx <|tq\ ɟ1.y "̅^}z GGF; sQZ׷:4rlݽK8x%M8:xtzʄ}+E,rfqy~q>wy2/oP$Yxqu)t{7@4n1@<1K'41X,*ڭ5L#^]Fo /_=޽Kimfoѷzh.4%tKjM_F>x NObܹ#?>k!\]\fʓ408?>ϰf)z!Zr R&s-61fמ%]Ȑzv"VdjɢƋ6[kO"z&Ƒgr870E!6=)\hA|Ll,VMݹy["ƋNȢ #:wtdTi2B^fA}9? *+_A9M8 e}tI1R YE*x7 F}3Y ڀD+,> B#|=#(M/hg^; k@d6k[ O{sJXj@Q<뚨Or4+cK]54ccƺή>]2+lmGT}o;hy '߲ OQ]7j8P4 Fy.GAg:Z]Tl&txCˊ U,]HE LyIQ:ˊjzbv: Z]@Cj0\*"rNQѥmM>X]wfͯS|$n3f 2CzʹpiW8xe/* 0^|mqbjp!3msPx0>IqjWF!kE^ff\r쨚fa' *}͆4; '*rg5 ^ "BXqYMo E +\i.ʠ7(jjpp-;k-(Y0z-!Bl{&D6٨Y4{#],q+tncm c;lF#ds28C39)sMSBtIgd1Nu1,Xف^(]*FX]86 ~ʊ Z;4JC%&)rdٙD6  rEؑʬGTb7PgnmFXd,t#XuUiPJӠ0<& qkm6:*xR/NJڍ'р4x(G.yMwcd5Z]G\ܠeB7rS̬I03걋\x4JU/lt`76d2UqF1؄$O7},UvnvCR!`Ya;ipp5hnL -ooUݗ ꁢ RrwCiS+p`AfXDZحTC#jGc3e>|vo\^]J']aV~NCY0ė_~ fwa8=ܽ_Of>?1Ɠ[`k{=ėO_-|ck->o1:)4i?u@RHH'zwM]ZsKVbDU>R'2iJ痾w̍id.~㟠Ȩ'VQƕ 0hW/^|~G9g/fյM[//`D?YKC 1.?H7DqG7xsd-jN(^ޠvp}s&pl$]9([Q̧ lY >Vse!vIKvjjߌ`FvcH)kNY[]Ê~wI7as)&Eak!k6e~pP5"‚$LM8Mw19j?+fjj#Lt Y2Q[~% ҳP ݮ*,}by9ܩԦ)֙)6}pZ!!*? *㈤θ_کQ#˾+1LҺN_\5=eYQTv6 h[HfRŨM skk?$9f C+ie"dVhz}-+#i_޳YJ|20 t$g#鳾ܐؕI1M-\oJfA L쮦+2 J55԰L7wfTܩF ZV[?НLJJx-\c8a乘>+ݡxN塯°)HFj*n:qGsi9At.,jBaHc&,7̴bf;SY4I6;ltF)'i,jK l%gLE#7rh&v ^.xwn5OL h5t={\(0h?`2V/'F#m++Gkpw+ 7~xbxaa΢~__~[\zUTI1QrѬIj5LlNid}ᅙWƨ`qVĒe-I4ޛj]Uie-9p xh}%:&w5މh6;xo1k3JɅ7=}h/~z#sZt+8x!Vx+Z>7 6n~4;(: |ɨȼٜZ5Z ,uP#ܸ~ GG.]?uⅣն FǕS%u%.YV"n,<~Ψ?%Ɗ'XepX&C=c X5){0<ȱdGZ?o~^´ n%5,r b2HM2R5gf)UXa1+%~hhsT[ Hg5>Or bM i! #}^ic3\RC@r\NKi~joߦ(N$ZER9Wl/W _ɴy^(BS}@] c͸J rD7PP^,(̛̅Y X@F֢SD֪?owr0Mt&/Jp18:]jeq"ʴ#S;l;|1QBbÛsLlbǹ蹌0#'Dxi JDTKJe5b"ӉYG tɅ gN r>RN:!e!$maF/텅OB dѪ[qȢsma ؝ݝne22_j=f9 2:,0IGwhBMkbOYuwRMjf.5K읟1ih1o"GX>)Sձ[oF9D C-zj&f4JY~s!k@VySNl5x줷̩or,YPc V;ORRi2*r%f9X85T"זTnuQyҤ1@=ܾ6sE~6ׯ2xYOwxf`>z)_2SƋ~" MW]ؐ;EC^Np;bΎSNt'x)<+Fp"m#jTٺ2I!}WX\XăǏ{p`ZaMW(LJb,/n7){3 b:2+}qH7j..jKX^Z:Fm_G;2:L· v'Ruq|r*&d$dn-Y$R ?h&qNVj9Nl|lmqX@TȊ!T Qc+3Ea ʽӱalIcr w$>E>V:_|C:+JCbN Ϩ^pUb `Jˆ-h!̵Ƭ&nL(ɵ"td3Y!2O#i\*9 +LPq/dƚdZ`X&IS-=ҥDg̨RS쩡+8)~;L֖~ۗ^DQ}meM%,vn#Se|O/tJ0p{kAS):x:si/C<)Ó7oފ&ʘs6Up|u vwٽS%bn W mow=nE~\:qU\Qo.`4AZ^|/gǏckpv6O/pxt2֝ xoaS !c{nVxm2'n⢵3䧘ۿ˪iDVQ,!E:'Q1yϛ qڠCׅu9(]hqUyVxFv7 ~Q y p3ܩåc˫ 㨢Se*VV0 "SS g& ݉k+$"6=Ds͇3ˠ猂v5,U*THv#g+S6(0#ȫ(iCE 9"渌,T$^FһGspj:R !vcFtW}RZk% SMN{,axd!eUpO#vK k%>_*Rg11iqZh4j(r1I|Mc"7`JUaZL5`pdU=q;5l>_k{Nl0skO?藹 {Z9 nXp4u-*MaTq64㙸)D,9Dn& pȴTS(G)N$ka|p)O/hs<6uM+f4 ՚H(I[_ι_Y{6f Me6ŀ:rzMtnl o i@RЌ~=rLg‚EO*e0zoSgTa#,BMర*rѠ+ J;LO^S"E(YXNDiR]V-RJ`.6z m(L+n!4yX7P.v>N Yא]WF-D\Nٸ6cɓM@|Ѧ&n-  26褰$Ncܙ qnA0Fn\P[D8ϣ)iZ?BrL"#ssfD'Gsm,ϱfg7n>?߸!FhB4O/4<>=Ǎ7quYLQﰲwٷ)rR}0\VMX%'lۿ9?"V6`?w ƺώ䶾uuS'g,`0WTK Pc7ϠkA. 35B]\byiA|¢yk8:>t 4%$k+8M2zhMfaWTJ=[.6iN5<859ϑX:Ɠ\fY(Ks$(\b\e yNT?WQsgg82g:Rh*9 EBʂ{NݚMŃXV^/;k֪o7><-4u\ly`h|R.J7  B->U\m#;/(ȇ;Z-7fL]~"V3ʌ!_45sϡC *P?gͩ!r&hX͘i.)9-iH}22r !C椺C}y\^YdAdBMb[ 3iC[JbK5UXSNyFnF!]IaȅiB@'MdC>6DYj*%vvbk%5S:¦{|m6 )5'?ͫ7cD7Iso[x)^3|}4qr{l~}e-9K qKڪ˟9ѳֿTy/.r;QuWt= ncGʿcMt:)..dnw+k<9tp|m4mtǘN G,;8;;EmY$j0촱s "{Xhwn6NͮH^aƯ~+llEmYgYKzgvpwa(Y_,u'ӟp\[ [׻a@a@xWL3#"x}e 3,/.jx@-em9"0ɲHg\8>9Gj F>+3neGӜ)5.]GI H^^VsuLFCϔ-xaʉk JGmTLGJC _|S$q=+^Y`4pway Q-`HamPخBmQ&)0fBŹ9|{ntŌfkKdMQggFt"ϔfs~0͑8~џEEН,3h!lҒpi\3MGʠ`n4aD]ҺYV\ )=5-g0EV]v '؆jwtOg@gaߌd4JXfMT7@Z{qSkQˋW0e"eqv3,.uIDtwoO\ hO>D5?Crև ܺ}O >MQih^htdik(? # TPU#^uT\;q$Ye9>;ϱӡc_yXuLW|@pߋz; Âeu-"fi݅sΌs$6@5&U QdBk\KSV !Me<pO<1ל='iJ )Bu\/=>4p~9 6/ڳ$Zj_5a`:L֛zdUV/;hYAa:V2M\7R:y#`sqj 3N f'-KKfH9p]gNЄ8̎ h0HB+BE}/$f>9̏c!o Isl͙qBlPauGSŮhÁVuS_RIjjq`tbq851j=bNV-?aقx-ՓS87})ZU;YG%LtE98b[szNDGvkǾC%)郲GfVhW8%'ԍgQˆӞhӽ(as3w(%c|q$0˅ M* 's'DaF]Qx^rY* sJz$0uv+56r{- , @.f]Y2ءnJ.賬Ѡݻwʌ-'|?zXrH4 FL(|~yfy1<r"S)֯m'2UzpCܾs{?dw%vjHQF-r=ƺL%U:ÆwvngOB)cڟojwq}$.nl?݇BI񴇃W_FlQ@W/H ŕ+x9z'""wnm{|z"xeRzV.& ݻCMG2#Q!S ef,,sA&ۀԳ ~oщe\ɘ,DuxДpʤFLbJfyWW/qX ;=z*s..ʲ๨u܌:\I $ }5ŘF:B뢫CBˬΘd֏s(ϛZEUgxt]mR@Q xC EPSTVuߵ!׶:kDr,ݠ)P)*\it=sUCD\F5݃3c [(]'lpoh]UNg(lp~.+B,?{xu!ꚤ*pX!Va 5#Q(cNpNOFyaE41';_bW`UлNҺ\Y$E{wRǹƔq7-0:6A%?W;f9Y裔I%LD"eؚ:&NJ@F~d5s6p}N( 9^ޛYn,gH,. tSD$xݓdFζغ#̲@#mbTߢ6l~iFKXL`֖tH4q,C$LԣU6 ,//IllnyӧfU3wM{yqg8|Fׯ|]on,^ŋW]\RD$]ovߠnccu]1?v[v: '6>x|' gA`sc}/q}899ǵ[wm fɁN AŤ.ƣ3t Gj:KWp6zKS,.2.9}QiMzjN9t`0ퟙF,H>u0:>N b-JM&)ǼϷ66$G`1yask {{f vچLZuϼiry/plzj➈pE pdL6|E'w ;y}flң4zf!J%I<+-za YNě\ك^Aa)v3>t^We&bX)[\,/9 -o>Cbכz;gF͕9ޖQ~gLmexVZ' 35$V7xN-$1vLpd OYiTPqpѨ{.ąo/4eŔnJY6>gVDoD\)FNa+CXAQTCaEYA&cwrQm ud<@ Ɯ ]Rvif)r#\G=8>0<eK[qfheayڑ!TvbͿ2c\іƾeF5,s$5Or`Dbы>V=x[6~ %2K9-cn^x~|͵I ,z5}3d:_DBO桀,Np"FE3--1,UʢQNO5o,֯- J%զZ+gdžBbgΏٹew]DW6|0"){FVFq 66H./,{=T%澡v%–JT#(DQz_{p!FD1aTkEQ 0b"!ZZʠHM}6=#\bes4-N<{x822+l#NG-}5FPP$-Q@ճ+- 8f8q>qS9q9~_D#M-$fgRܼv+X]Z7((gekCd9LS7ᢝ福MVHJH[: #3̪ظ.*7bƦs!]u/&^lOQ1iWx9X"B\qX_&LcfX|\OU8mm՛ 6RכQ9XojHkWcsuU /%<;;og3r;׷J￵tųyrMkBq KXZZUǜj]z.򲇳 [;ɔʸ^$/;Br LJk>.2tpi06q|ag;:Rq?ϟn^1F4&ҟt4nckB` fZx zKŋg8=;dzWfg}f\zcZN +7Optz ]--!-\CpڛbX]>O3l} Q#Cdy\Ku( J홑%CǴR]\HaN̙NW1L=Cy:f{ԕjyg?K 0k¸ aU;f9g^\ ^e#`9z[M钤WHm3xp><{nӻzdb[ s2E hW4zDJdئeh q S>u恖z <_7۝W:`G8??U`8Q &*\45*uD2nYK5ݾ~ KEbmsK['mfoM0 4ĴVyٓ64޾p="~uN0& ǾASe>Et3*.t)='sxБhLUCmҲ#9+˽M}Jmvߓn9t?R䎚2"[{ wqz|d"C&JE qpi>Bop){gaA҅7_a`_:ȋ3|.-cw睚>T+ĸ+fK7*-KO>Cօ.,,hi-wᆭ/^@+Wo߾ Zi\`Dob(Mn51Qg3@4Me VE7zqq!$b u] 5P`EOj?^Vk6^xLFLyT\]HhO?!; \h?PAr]ܾ+K }S{qO]>yvwPoU߾u[qsTku3\3߽q[tkhՙzzkH. 8>E6LIĊxg޹>ku]&5lmm5:r/᠏~$:9|C c!!Sl|9Ͱ}D!s: g;Nh ;4t@3 2ס`8Ay i\@x &9IR{KuP҆&ZICntYsNb.U:uCK9ph̅׉!6(βvUfF]҄"8_Z+۰@(<zqh8e͌x\6IȱTrU7I3r 8}I9RMAX$5Dl4E IDAT3VG>L &!H삼{ Ay^,%YI]8:W,ᰁ,o=hF!XKC4lIkƨ\[#tiASMCT>Su/>uSh\]?sv]`~ܬG[r,SNQ6iM;m:׍b`Y6bԌ|UR*72fh,3&nTMϢ(-D"tntM'jkO}Eͥ?.P֨y-4ycKS ȜHM+7X3@hm{p2Wλ7竻"GTӉ9^GvhN#lBEHqaYpɒcO( bd<bsEf<Ԩ IV_Nxxml߸!'f@VKfq7U]p)Md!2 hCD\c#$vŌ/` 6#uO׿BFP׭EǟO?ށbFa/}.^{`yy]:Lv iK˘O>ᡐ= ]Ƶ''G*lm`V 1rSt8˼QLg!jai*FaO&JO-KZL>xnj*Ϣ-|nB^@WxkLGr@>oo1^W iZyTCٕPKc>gj@ώeC-4븸w_}e9^>?xxC7D>X9=T|CD") ^|w^!iPfOu4[ظz DX^ےWPpכHtZ\\z ʓ#Q';E@lllJC@y6Q8JwA2$߼6S$^0t)*Grgh)Q(C\b&ǐWԛW36C\Wx 3TS>ƭ4j X0k]E ؜ ײJlݱE3<>mx%iw4jޞǁ#\CGp7TU&GsL29ʩ ZFCJ9O3G*CV k'}"wN͌E 5G]VRJ^ΥFrJ{Xx6Fgڌ<#4׺ќ )|I_C`$U/ab Qc]:R 7/tB GD> cVϚiD3թQ:Fl%ךwj8cXOLacA͙ 'q^33Ql, fip LXU9!05\%֊mQ}ș|%\m0T!-uDkp 0 lVp>Qsfy]͝M:FT0\ipS DJ\ztO[oiՁ(_eQ67D9lKM=}цyafVnrf&t0QkC(v+]pGB1AԽbraqQ'لKe L|zrS&'R1`MƦ4O`@ zM \/~x-6—R9y9z捚GʭE36e4sP7VD=:9Gu}{c2 H㢵iqKlM౐Vn'OhxϞH#4`Ԝ_ F>)O5VU,>|PaF!ݿ˫5pG8=bk"#=uV7sQINH[/1_,I{rx/K ߼qgg(i c9(~6ׯ|!o&8`NͽkJ/udS][la'ݬPHkmy/Tl~Vid8״!Tɭe6PQ9 (kM9,@#%!ވRz![ԛ D| W}8; 0C$܈C_zF@jor?#C#@0x| `B_le ⚡I{kT7;e"3yCJtlR-!$QlJ6b! vMQeTbhpDj`:eebk,r+ ^4g(43\.ԢBt?#r\Нb"А1Ө#vjp$2bf&d+,?yeS(7 `L(*G{r4OɤGuT~*ڮ{$A_9988`;<"h6[,5Q9qhʙvj $.rUu氋Y.*,W3q6 S4L[iZcvԈP %6:bꓨ<0o=?vkXpz M:?2NFjE!*Z5=f:RҮZs&6.Kn5* OM_\Աb|~ƽUԄƍS_iru6|"©P&J#^Ȝ2] IgSolf!Ł%)ѻ9-rzhbQ BhK,uP|2A^sr4"nvp1;nUG$@+h"b=ui5Dž)}{3칌)X+ ՗Y0E-Mjּ%D eAK!߼<‡)A" \0(GGZPG $ :TR1Ka8TofƤX.DNHׯhkxk&&qf6e& 0e䗈>GaV ҴPGqi׆ 'ќՕ ܼy~5u( prrC\v r%je>)O<:3$enwZb!-`8 ;jb0b{릌|MHLfB'㑮/~RqUwZ;ч~2 K3Wp 7>{8%M9+ʌAbrݝ=\}#E&ŰwVTHexŭMGQo-vpNL}{qSlNwqv#AYiYBMl\.p8{o^sucicN4u$J-ʅt_q%i||>Za2IzD,=bB^ {iټ?9xڸёkRAT;b..1(;p' ot|Ib͒5G5Ѻ£NB7sq FEg7nrYui ̠I5zvleJqœSKIEa B\qqy.P8 Ѭ^H:g䟹UGQ5d`C>,6|iƸ i{.x,C!o40'B͸b8`fSQD,Rŧ3YGx;?7E$ 'ȽUbV ކL>`j;,Ctذ{C*8'R&p}7!j 2N,sHAB@}P5b9$Qڇea \U+C, 'e3mMQhʔ DoL] $UN&j_QsJWv tSCetEH1klPuJ~|* 09 ,9sT:=/8s?J9pwӗznv6\InZS<ȍ4pC=d~ac< H6Wq& ceiI4`>g/^>ųOU4H& Bn;;;* ec )DCl'*_}ms%|vv ,h66|Ldpb.ʤ7oa ']wa11m`7l? īO(.HYkXÿ /&p.RR0Nszx'{Z͎ nÏ>뷻z^y׿ok5}DU!kVo6qyqA@[gӊslC{1(쬣V_8<[Ewo_jhj:Z<~z"n7E&Bz;j~Vk i%dm G/'?λwZñ! )ՖY|8b~1z(aIC ՇE}YƲFN՘Gdc}E-ufv&/{$י >ץϬ,<4Mj_tWRlV%َMOP(ɪJ89ͤ~6aX׽9q) 5E'/p N(u١fr$#8/ُBEPUs~/~B×Nj9]􍕒:/kmieM= !~: ?{fc{f6j:"zg7VFwM|vSl,aI4GXsblQ\SC{3GuRA03ttԹ4vds4ļ>%;vSI1C]MΔcNKzR2fݮuzDx."'*b\'fHaf5zgvhiԮRõ;9H7"tQJa04"!u٨ǩzȽI|"h"6Hj^GGh ˀ2Z򩘃%ʺ(H3禝!K:q.y}lqC,+STwm_5E=0qN 9ʤroɢKd~z^,,vm:VtUt=,- y6CmZWY`"2vHm(r BXL+DgS1U $SJ Ul@$י y*qPЦU~ %Yx:" QћQzWv6 dÔB1/xljanqNh9ѕUyFO+ɟ!OiYVHmdT&ʩ_u{eSIBPBá9t3zoPR(fx<&HXHJV**mn$VhvUܑeA_B U BTJ Mf/{fD78s eqrWJ%jf8Q3BFۀܤх#=X Βns59;PT%?\(/}rܫ0'u0 =v_L_|f(ˀ~\>VpX2" |cUDRϝ>#pY=!KrK"4Bs  Qp")hWW2;}_\5( ;œGoh9ӝ>''tn.,5lGrst}!)KFH3{yyûd%.P6 ?VYj#6.7q^x["}wx֛h]pIR6H.Q"xե&FÞjDk?8;9"X$:N",.O~;q]6I=ldHC4Wn1O? [[(WkX\^b&y_1H/?#z|mܕ" JuMԛ+}oGĽOͷ_dzc9=,B6`c&,@7@XQdxaiqG\ҦCJAe/`Big1J@D~V#kz;A%6C0wu'ρPQLZԐ&;̀;ou½)9 ERoܼN(!,qB{uʽ^Š9Ә>ЈoE;rgrg>H{@3)]<5醫Ujqj0Lghا;f]fDǥXFH89%LG}mB]Y,n&i,Ա(AENߝ!}!52#,4:-f0qV9ϲr\^iN_ Oz+™}K\<ٽthg($@r @8lϘ~L|ܹ#a-IMԓ!#~!D,!k u6.az97PS sZgMt0*ӜΌlxN0\Wi,OCPP+l\/ lb`yiSY^Dje:XsN5n.Rg 5ql) L \\(8SyϡRbAިAXhCkqj67I/m^LN=gd"qGFg?9t͢H'o*S!+vlHj- w<3Qh,&7V5s$)$S IDATI5}WBFI[h"#..y|i0iJ[H]&lFsaLsEFbbmV)7 b/UJIskOVBVH*h8W4-"#p DST&Y:[7oJC!юfR{՟Q.$Gm1MDG(h3jbN@# @ETb& e!6e4~^!3QuNk-(ų]9--6sʊxw_j^N Y(mas8Śʷ-|7i\bW;DzQLYﲹ^`ϕeAfBM4I1b$kA܄JK;[D5vlN'eTA>CxT] 5_$Z} :khJ4fI{xz[?ȱugX 7R$&Us'w/z6%y3O7ol=z{lQTPts24+ IO1U'^V]x9AA+x"'ǯs&>4\c4}Mܹ}k̤w'Yk,bU |gX[8Ozvvywӯ?gɈ )$w_$v{cj o>a\3fI D2$o}#f5ˍTl7d3f򽼵2͐1'AqMpz3y\{SVgQ<.&%)FMY6;E,?2\+-#Қ*۳#'aYI4@Ãsk OqTjr˸ᨺ}#ܡwϤi7z^ϰfWذ%Ն*نMSYߞt'7 G ܄h*΀+b)o>-?ժNs#w ],qԠbkz1&^7S]?P:5 :7%&,zI,]e6ȱQF8zZiά}s1ռf|hF`e31B0*]VӚ |[nf3n:uʹ+pfv`B?U71NS7mj7^f ëK{TRtxBFmm+ErT+!^2WKl߹M'HĔZWT28KFdWH=qgPoZ%nFEa'ϧ6δq95W}5Ҡ [Yd&$Zб4##H P2`y>-Dl1 FmTd2e8S, ?=;x2b F<99S:GZ䇼TGdSjEm_/r+̠vv} ˫M\wh,.)_^?{{G_#d==c#+ {}|Whxr|$jOyptv>>VVqttBՏ'*_ZX^]1Q_h`TVVx:SRig7\BOf#jО8>iO>o߻{bAmloߖ{8_kWKNM̄cĊĆrMdrGmCJfHuX{5 R9#IQD(aapT?rC3MRd ŹZDyO}( `fW# _׼)Z(eXX @f9fWT,s \=ҐT]΁y"mShzs`6qGS9MÐA9oZ`5d+HfchIAdݨ[ m Cs9{pudycbZؔc$Nl AK<3TM+=_9Kq2^jqEv3eH]`<~_?^3"V.[,REfsq9RXdz'(!Uys#s A=4%-YP䊻(0)'u,!4%T5ɦ 7 ] Bꡞ3Ήԝ9˂l2";#,;oiq}M:Zi$G,4 6$A(>A;x;-RdzFFX^ZĠ'c5b8I:MنbpjHq:ssQnuپ2 un9҉a3å}EWy5uS{&$&IY|(DQ,dpqyll-vu!ƺdL;R%)JDmO[??NQ-P+V}U++,ĄFΛм6׳GbH,*:T753꾜^*p0(iJ;Խʆ):]qaM4Wb!7+ƚޭ/Ltt^PԌ8FT Xi[VV?Mqվ$P rvd*e($v@f/` =Nn7 | Ku\Nprᰃ3fJbaɛoc4a4⍇pk527Qmj:[-ٌ-y?k]p}ʾVWeKK jUlfƫ"߿eS|vvFd8bkrb0_vְًq-"ωx+ҫVh_c4P|ӟPC[|]?Gf^O1Opy~#ɳ[[X@R""5_p/՗. Ǐ# +Ax2ƭ;hw0Y$6wue_DNƽ CW$(ҮYBA /^ÇY_~9.Mz}VNJ1zubX$y2'R2^~0>b2Np}es"]{Z1[̚1ŭ# ku9uSK@KWHuUFKd=g1#g$kS;.M&Wq}u>Y8QUB3f^NjRD5沞&ԭZx`ZLYC=k:vnb{ -猵:V\o}T.Rw֓'6ȚRչ %ٸ9W&>蟈#ee _?P* Pй3M&,%Ői9g3]#*/! {E]Ye;7X]9a%U2Li8j:N稈qרgqYo@ݼOm) 'Mrs&o.0wc\-\Jv&׆.Zl"JQ^"V6'c6N=P"ܾu x0qrtzA^sq*ַ ,1UTj c$XF~ZC!ɩ|6Ғ ,YfKsکFR5K u=ju >#iiRGtۣz/i‹ h6'lzcE,NK2i+K t/L52B[7bT/` gK[@MZJch3Ӧƙn_p4יQkl"ߙ0YqgE }-,šsJm,b> !' 5!PY:sߟuG]b3ӬYN\9F9fM { Wd{zfٺEZk^ t[ϐ2<\6g^u: Ҡg6Trù^95yN|f@*a;DM$fVbQz9r:;4ɧzl\?^8~.&M]dxl`z -Úv~7Wkˤ[n<gUOe̲&i hh:~1HCFQ9I3RWL%'V2gGY=o@^ hFtn^db-i1ͭ.\|532 =}=T %\B]E,AtAj0(/vIL3"kt֌H[(į~+ȥqzvƦe|cs٭{y)\c]4A4V-}fY}9 iDa̚fÀhk>4PPrG35pI6cȹ4h:fa$3#qDօ_P^Sn@XEju!`ƌ؟j&1G,Xf=bCSlnP!Y'hV2d\cyn"ý2m4 %Y|aΥ)SMgE' t(I[dIqL^ҭX,@3iؽ,,/ÇjwI4ϿoQ???bskܷ[7opWl1hw%-_N$׌Y[]F?5~cRMA47ADVųp6DS4;&d)NO_]^R.`:*mdvZ^+K7%l~dF*f`ׄR NXq׿A!L=@MP9Avڝr_2XE˅[2( fz}lkFit \jpmIƽb/BR(Ti`Xy4:jqU]`w hLM\H^3.%df)Bovڶ̼&7dF*hsl|촚D\n]hA6P欙~xU1%2Q:G}̛G!3uJk4)HgSu՚&͔ޚY|838ρhq*k:\S:@ b"gM iCM}ϫ< Ƹ |?7p=:l͡ԔҒד!KáL.Ngeٸټ;٣E#]r4;*08yN@KS SL;FNlb6Ips\_Lbуg d˕Søhr8wMɿc㨣ذ:7YNչjX,yUXդY8x2ΐqKMhjI1`p׀5NBx~_?&Be03S'6ksq 9;〔 4Q8Ng0ӈ¤ea-DF<[03xm +7,`{_L &ԫj-[X"&IEY0{x9*=FR 78^HC9G IDATp^CEA[M*WK|Jllƃ upY^BH04 t'OK6 1 4DRl'7p}u] P%6E@)ѳn4iBB6$uBKI!F FX5:A#uٷI^h~f9 5sin~1M?( I4NB&h vMMϥP+L=KPn+Dvfp־·/j9B Yt}cv&'CF NSk& j ғf:cN l:EwYK(xjU-`4uǓ67$x!DͣP xs&)sYvOj}x2:Nlx~&5#rzg @jc ,K̀$_>/^LЗK+ԃ=Ukܵۼ?~K s1Bqz?t4jz秿SW|/0ʑ3n2H!ν{qzt!ʲ'>G1~0x(ydU^X炼gCːR;Ѝ6:<+B1fSB;ѐ lLWyPRqؼt5n:A}=(喝ow$ޠjmq 佝I^Ōׁh2S[Ia*Scnli1iN94,yL5S(Ρzm.ꩺ +\5g6tyYNl¢V^+YDUk!bGO,3*Q/ŢR ^i3*fz1sNUK͟!/ESKT -(͑o ol9 [MhsbMn;Js*, 4 uQr9G^]S-AS?&CL(0SP-ԛk̽\#* b)FHI4MrT!jXtUtg7Bg!{Fou.~N0i 㻬I!70Lc]2Wih H ?ҊϱO5!HwWr [}Η@ݺ)8DUKPIѕIS󢛕<@ʐr2,|e~^JzjF%+ْ(@- R5_v.wMʺfs?֯/mr[R\gwQ Uu-Y+tL=3dju#|s݊Mr^Ě.>"N"eW͚ddD 1ULҩ0k zv8Zǧ_AʭG ְ/Y_^{+fI]u01! ׮/[tisRL͗Ep>nWp!QIt, oS5r8EuSWm&bQȦ,~l.,, MYPT4!R*KXFXY[b^O5čQwHA=klťE}Ӭqē:g/s3Z ;|zBfl:}9@٫_9BA\'lbbL%w4b"D4n ,<`R Ԍ(ƨje0TލX(WP/P,{o/A1Lzp`B:8nm[wOn'⺵}[ۤ z\(;x  EV"Kؾ3g"GfPXĎ yYs y@B9NsQ-jBrLa/mX¶><sl)tq{y]ϛϬ\/ӯ⸆/ͽ*\NX9qh3rHbCAˎ~<5Ć&3z-ύo:n\>+rx+|{4s9'Kυ i?=Tݥk6E76Rs@A5R9Cx254ؐWjTS9-]Z:bV Ѓq#3RtɑWjv#(Z)YsI=1 'b$T_z{Լc#p*w@OMol D_D~pzf1:Ei-\N42)рȦ?s$gX߅DR8*͕U7Xn.4& Rp <>bhf<)':;2㱚%l)Ӆ."byi r"aA#\5KÈecRe[Wq1Gy=)BrČq64pQ`^qӁR~t8t$;;-lΞ Ӳ f?5'P-Wbv_9.Nu^+ z6i$&wnӼV3TkuR!·O7ܿE +i*.// "m҈J;aGps{Ik 2,4W>Ak7oS\] @tCg8=|m|t1{F^t#:k1hwqk>SomۧO}|?[[8:xC z{zs}j)3yxHY2@p]\wh/(Vx[*ԛIg-o#(+^yn-="2\,Xl )F_Q_T5[7pt~ZS,5#mjKk8yBZUnO3$a"+ڟ.[rDQ)]d26ڜru[bJIZRs[iN3+B^IP-yLm}kЅEdΠ"a2ٕH,gqhO:dHC32}h,5|Q]= 19P6ѭS_krRGՙɏӽ92eZsconZlQ`VɄ2ˉo2:` }J@=ct$Ah̘Fι3s\/y沛 |(K:V)lHce4kHAȌ!,J79IPhFN4bC}2fwhNYbz_9{]y.sb"~N?O{]܊C=I23TɆTDuSHɸ|ӭ[E 9tKucKd^96|p *;qMHHyƦ?`VX@#*bcy lv#C z(ŤLU.MMg"RP*_\[ɩ\c6 ؖ/HMش̯ we43*XөNKCEEW ݩP{mP2Ͳ;=T](Qhp >Snl=J$U%~_uz}Źf&"S"X'gnjy'0ol}r4ǵF?/t7yΥK,6,`(Ww۹qs3H ~%׶Q-`ai=˽=f޼#ߞRAQzcdOXlp(^_pySO''%|՗XXGcqxПחx'8>z4 LClx%_\"pyvם!w￉OAT&UB.ցt7g@̰ٳ|n3r rD:&:rVVpr|J Ϗg*^5F :&j2hqidKԫ Lxw?~a8r[8(5vEyвy.8j.ɬP0/XHfRcY8'^{(g{? X; !\Z)U 5Mg{O><<)fP9N͝VyϿά .CVM&fK}TA4dy7:q)鞡jZcntF/ЦDmHv=Je=O iu!̹Z{dADdv;ֹF9ZC'=ל3&unީñiU՜M0oy-2Kg0LqęҰN8@/jbL3872g3,W~'g6?\MŦFxbdݻ `@f 3~}l&q79[:P}u o6:Hʍ&t2f $,)!^EOӡf;A%ڨRuLFS\1 QAPt}~8lGCq+h6xlwȧ`$Xr#)}  &nmKN}&ME%oR@4D&f;aѺj$tB.)oęK&~{( :"m;8R'4% :ꝱ9/NV4n)z)3d*KLZb'Z^M16E+jDo<>ˬK &dɰj^J_\w.>!ڞM9#_B 1Н1 c-<߷$[xFaLn9[ߣThkXn.R(e"J 7gGأC &C^}͈JTħ}f x9~Ɠ!ŅE9Z T5~7oЀo;pra<1o>~) w`4my~6EX_E64VR} ~aI/ǸwͦQӧ 7 )U ~VA;b qzk;,FVtt>=9bŗ@>(MZWͅ:1Og|Z!C#@1U#ht֓Y "qm>~ KWXh6qyͭ;& J,0\\DәРN}zxԉ*%2GM6eLpF52l=::"5vxaaOE*b@X*{Dxa<`4`:Qf0.ƺɺQ(Wpx|hZ]ha4fibHs6FDUm>5S/g/9rɺ˵Rw.Cc0%5N[2ˌfw.SdTMO4mi5##LcmL[[ CLL(Qpذ֐܄,pSD6!K3$Aިdn+jq҉ciϳ8aN lM⥚JE GޕIb@j25jJ WmP]bfȻicOF$Y$Qf9JQ);3)|4 u*>ҜKG egf 8kآhqf(#Ι&KUILi(:9k$Msyܣ^Lyh\4.#` dT$EP.GLc*5sgM,.5>d7{w*,=J|2M2i^.&OH,K W$XYgc5硟:hS6BWI Ľ9KR/W1HV"OOܿw_pN`{ݞ!(M#Lß z_YBA76ꆚwɴt?Exl(4RhRN*P4gJwM$:t%|R4PT8PONJn/*a'dC" >i%DF9y'b86z*hl*VKi":CAV+C^^Vijh EEy2f KmaB@o|dHC()Fڢ:KATbPd/=/'ZQ'Co.on!¢i(8#8CPP[l Wv{: SPBH|?oXnbaie /^ݗxl6'DN:}6l%N7 ʕ(/6XYZ ͵ukUj%ǵ+r`Tp|,-6qqFph6}4ifLz (Zt-6,9`{kPz3R#LC%=Kk-xXlݗY'uoohE*i{S/7l~Fsr}x.^w_Ж=rvMz-W7zcC9qyrjC/Rr@#jƂÒy# |u}ITۃCuPŵo2S.́ZɰzG(3Utq\qS0iyݠ>%ᱥtNGMmhaiTTD\x&J9`?[ވBxLQ]3y8s&#iiQ^f<̶FX7`fkQX=By+1iB"rf [0@R /w&n~D)~h\rGD2\(K%M }Z†Vvs|+Q&я}x Ͽ2-8`?$.4pt C[=s)TRD>o8m=T%51S6FG[n6 X:axTfB}14hoޜvL+Zw dD*{J°} )G#uxs!_ ˸DRCQǨ{eub4+M9aIT4/ڔ# b4PZ# |h:eMT!fJ5!Y")e~Iq ݨ \տ˿'S3EI#mlC)JX3PV(\ʲ.LҸcqT:I mÜ[ie;6gb0zsՊI['edxn=*`TAPsY龸1ɂ)蟼b |w4Aw8氇*-HQ2% +E@([A^JҜt6mvCe3 :.(ʼnj%P FsV0\q㊇𒞮#ND|O(E$7`NPٗEHC6 }{T C6;Ľ4iqE[h8tp'GPIN[W|EQŧ~I6M&iZjwyܡ|b9? $T rƣB{xZJPҘ+j.X^Zd8V,M :B 55:2(8?~m: T•n|:G.1JWh_IK* Q Oe˕:@a2 )fPMќC6wvV>{Ǐa{{bAq7wޝxkGWdH>pj-ƭ[wQ,WxߟIxU\__ufXb? :=k%>8U\\A(kZ}928aUFSP"s Rx%hG4?(1!Ther%aa,=ސ$̄ zLU:S[7?pð{I}7|}6 3c t4-(.kUq,1ԆC[k\9 w'"ԹH?x4O#h5 U$I#^B+Jk&K!j9VfNZTEvLj+|rF{!^~f>s/{c/Bqy$g"E8+Y~GtδzOr[4_KhsMneUurkU@~-CFkf9q?JSjMgC^5U2.բUeLtn3WZ(HG~3¹D5$"jݛxw][%fgrMa}E~y6:0Xk42^|mV}4`qy.Vo`qe_ZCjh1qj ha]p4.EN,_|6R{UQC\_]#"/?] \ \=  )}2wc$K^+OPMlS.A) ǂe˝sS g T.SȽ0LR$G`gfFFi*|p3tP`|OBd:CͣWNSWJE,J(Q!jg@ +eƨHXP:vfB^[ mAv{.<ܨu&#PXB":!UjC~,hP}ˑXpxtz mӲH)N:M-)NHV1$_zuMRjiosθH(zݠ\a.h2nb *DQ=޹C2gNJ~1f0yOQG_>%isVA's}5_!]mcLiXk@?~ ޹Ņ%~wDR٤^\,4֫+`. 1>-L͗YНڶW^^@(D 6ԺDvZ<3FQxrACF"^_ǿ_hp bCR'B.(%nܸb"]S+WWן`f9kxvh]uP(/ν\a 8Eʕ_uq8`8:?T"Vq>R;tx#L) U+%kȹ Q|:V5 66gqDw+:!:Vq/q{NOnlr0 df˺+ ѽﲟHΘeR0^h{0#Q"r|>b`'sf ېuj"fhlnkY6@p~epxn"Payr2/Yt:*q]eB/r-t(㒁lxY,YJUGgHjy\cdƴ^= 2`WsʹS?rzf?ͽfC=?ެIJ[g9 c HQ%QnmcO}oKn$I jr9IFHUy>{\ 1 ڰ͊}挚)>9Z8S箝o8YGi6^9a뮵7Qs&[;qgu g 5-$;l~i5jtg(1֭MϐsѴ s©{,.\/5ߛH^]0,!s3^(d g0%>g e*tbH5}<67$7|H?AƙS)%o½Nsl5:4+}"8<}DLGoj͍<'UY$h:N37C40hi,/9EGήMSj`2ŵCCZb.W6! MŊ־"9(@S26J` RgyzWҚJ9M%&?&IVcu@ >/l:JbAZ|D)F &t`f𱬭aT9|^canSk K9:-?iq{[*~ZW52yP~xK ?Ϩ0H~&>w/^J\ׯ_ŵn_/XmonKTn'JU|st4Yx/on$,%D{wgԵ!'&X&U:DKE*]^_'bTJPnEE0MZ_eĘoEyHRiFgȓߗ>H.ώBVhպ9ax6=9K^T~K?{ψk$}G#bX_ߐ^+zC@_7dցlܒ_;9<:AZV_?ퟤݹ.3^,i_ZKLrxBӱ,5#@6v[vv8tiuz2ad瀱gq4ɋ_d48`) J"K4iO1,0M*IhgSu}v3IH/,ֹ+ҾѠ'+DmM,ν~w3&6 }3I2# j\]!NgEdj`n.@f,bDzu9sX-b:ˈttKi4s1$}DܳpΥd!u(1YF۹&C\ᬉR/+UccգMݒjS3̌$_s(k3>Jb Ii; =S`;ѝ$Ide'!1gaWz}ĽI Ncg AE&y3m-<, ߰1qMdob}d p~OY5֛Hn&YiJiOs47k.ɮYW]m)<3K/eN̒7 'Wcַ [RR>kZilE:!̤2Î$Ú87ysEkN@2Շ1xQl{FNs맬7 03o78lC_5v4LE7"b~`[uM!vԡ :HU"9?PL`L,,laOh:TPPoE(n8ql{n3fYSfMAh*UR Mnik#4'M$e@:Z\6Zʺ ӱt7sZ֏Ë'RFgS.%t@0BkqSWq;ƍE8UuXLƇ mMu1 tb;z|9  l)$KN3dZW1#:9c]$c?Ll]TuIFEC%4KEi :4\pF%,bC (Xcn.ܘA+PmC'WBVp(/ xY"S;p:8օɹ68>%ـz%d5V;%-ICW3P% z}4jzE(5F^d.^4UMt7J}\ߒve?3-.#RSG)C#6~RszB#^!z{p ]'g%v̮ðg:OFcI$J"98xC nI1,/KyƛҨ׹ 8Ҁ=|Pj5;>>͍M7 RvwH676L αnW S^3PpDeu\_sD}}sWĭSryqfq') h,1tSL+,&ZSd܅=L&ꋲwݒ-udÐ\{trr(o `TrppO+_s8fB8oލ -^]:))d{63.iOT?'FfDZY ~B*4P>>^P"@Io (2̠f4}lb:*ki@Viʅ% A|N<řF,`o6$a䄦'}33Q+Vj6N&ӬFX&[*ruӒUup?ύnt/U*Dek(}ߨ֘5CY2P K|hCYlL??dL\Luj_ ơ /CќّnbX eJd8M!֚g&B/"ةSCu|Yjt.4v1ĩI|#N4O SNijt`UYm JwvkH\Ycq9RS IDATȂR>Y~3 S2g7ڷasfbxr.HkכXRvS&Q!G uΉZ| x 9 o9g-p͠W8(笯;t'O<E&%JW)^w=u פBv-L,>Cg(hp5>d wF:g+p CPj޻ϴ?ﵠ7miKD1f5݃i* NO-̱ *=z@!QcQ%vWF@{-уG4ϭ[eowOd"ޓ+Oz  ΢`4\l.+yp!W_}7:A3} %2^Ѥ6 j_PkI4X"Mb)\TYAWڝL"M_4dqiCZ璬on1%L1Tj,6wrBsQʓAǢoQ1[[-0388VkU +uݻ-bI?LYmZTN  †B$1*.^D22wDOe1L:F^<3bRS Ek EdQ~&] B@ :ؼ&OY*woC04>s12|`<*0 ` t8U!k\78U'Ya&p;ʜ҅q6-,rwla4(8hdWaN&#jtz=ְ& =De<]E2NYfݞ^dTYIXc#CRNԀ`HF*@W1Qoi+MOܐN:o?. ՚%rwmZ- C#>cR6nU_ $ӳN9}64>Pq_A̙l`-U: WYcF{ř]dl`M 5H!q痩 8Yď#iTJl?PsuhgT)P^&6dciY%iBvVU }X<\L"-k7@UCCQ ulѡ<<rOo/2Z][c C&ƞ͢`[Qߕ>@NNNeogWF1?{u% Uuh!_Hu-U#i*}3x*{iG/\mp[]^9;l6trr.#8;$%.C8ƲwSzuj&JE++Rh\#/E4ݻlLh]yyM{@Z:QDp>  @#DHZ_~.%Oc)# {./KЖuYޓFMTkgeh4iy זw2`)iFHh t *J,\ץ FC6W VQ9ZdIcTpVPLbLYDLTuO40Mii@QY\Ͼf"F%h0 =.uԏŦ= d(km9͠$iP&Ǵ5e0ΐ4e6,Ħ%М*'A:ʱs14NT}5WTekn\<74 ebx:,%iS,Mu1|Ob <~I-&D\h";3}2zk|W`McFWggEv0js{Y3oͩ Uqɦq qVO4^Meu?'i`,5hA6|M24RXdrϚ7qQ]H֫g%,(LU "9ȍ˜$l g%<Τ4+S b 'YVHRO'h|/r`;Ӛ;hԌM1kSgdmB$8ȸ8!5K&256c.ku0:G jE"ըOgXpl٬Tj#c#Km$l"{tfY3A بy olQ,m;?C<|/cc *18yPfU'R_poS-,PF|eM"pEeא;# .WBNÙ3V -)879e{4=HJ,_{PT^166*!D1stH&]* 4St0xy0kQ (p T,*֨V72Q%j4Tj4gPȏB4 5, j%6;Ќk3[n6.3iѢӚ8s# rLqgs(ɑlTR31 ՅjH\E6Kʪn?A RYlmf.,VR/TKEi\@WJJj>] 693"G6P4= ن ɑ' nd0Y' X;(X3%+\Qk4D7j!trìҧژ )p >2MNM Z|̺0:P7O4CIKjg5\!|7P^_wT!WDZa铤zMwݻl,_|.r|rŸvMa[z&Q]_Yጉ~fh<$7WE9934hౢ@?!"!׺hܓ~E398 Amwzw."2g`7Cy\ss twdNr5y<"ƍU8E)ˌ U+rڑWRtj >2>}i hXKzu: Fٖlkh9+aaxo%`j}c2{5aPNHjIGvz\g@ Ot*+%NIj h6l3\=z3Qy]XGh}qsں53 lh!9mPO3V[ieSʳ沺WeZcf\w/$3bX#`&J@$G-ǵ/2/Ӱݣ42|]DS0|"8ҳ_렭Qh&KgE ӽMf'=NgĹ;֝>,G? sW"Rң_rp|IN-N8B$1=#4blL?ZUMRGM8*\ZFvߗW,S& b22۰cw(8)aߓq-u4t:p=IaNRP 7b0v1k]ўl,b,418)[d"\,HPOHEd^֍jEAf7a lC?67=Й97̏?{ЁG}oV.VAȢELOhYhpXP 4xpM\)ez)"sr(0 h`RE ƬjiCA3rI XQtRTJx>_6Xw5љ!BD*uҲ&~Фtb9% B&&iwR }YT.&:@3ϴYNC=:rvu"ѐEz%`BF&ð,kkj{τ,/aMy##f3!4)$ϊLBD"E= +S md2vFldP0!{W<ئV"W/ۿebu:}:z˧}"}!uy RGÞ|K98,j|}߻-_|%-ݥ|csCJ墬,ѫפAJ%R> 7}+xk5iԽ2nVU3 6!ez)޴/$+;g3AYNٶ~K+IO`5GÞ>}B($Չ$,TdqqY|{ҨU$/zl4Hדs_Hm!C0?[`m9}Mg('gp0X\4-!|ꅜ$HO$2|Y!w舁~ʋglԓe `'2vILX\\\b`3HU9\cPRՕM6GTR4zLn}.WR,q?qܝ䳧OyքAvJo," P2k/t[>pno}-abQCpyXzCq}.,d8p/Y\R~H4jCŷw+F'No:1)(q//͐̐Φ*Huq|Í.GIr]qf-/ ^GR(~݌{ffĎnkiwqS?c36s59TIk οF^ktR8ra1Gdg>NdN-7˝UT<-4սe[X;9!yΑ̇s &kE됭E:~ij CgAM^׀Ku:7}سe,g:DWeE85'?o7y%:HekB}A[jƸQ5`*fd(+& GX(0t^2ʹ~WTZfC-sn$9*ǯMkxX4 5 }ܘJ!#vy3ngfvӭ!7i2XxƨL۽Lp,4y-l*Zd1a @tx}K8I3 jxyjfMK1`;rzR.[GR n&&'}^6moiP. ,/# srQtbD"QGyO( jڣ8R)B^"GTŮeŒf:g߫@uzF z]Ai,ыNGj |ήd8a 菻;ӏeggGf?&U!#A$J(*JSԮmpK#{{l//.NX@o:~Ci]]Ygؔ^geЌ$dgcU:'QY鷽|_$j4A"QQ(+ȟ@ r}ӓ7pQMH=~OpTu?s 䣏-apeJݢߒ䋧_p^|!\_^/oJڗ%qR%Gzo|"{4[Jf#yMWPNR.,KR.$hm=֍ʼn$ј#JCnnbV7۹^kH+ޅzڠS 'k5v[GS]CCƊFZ2#pnw;9҆.g"]=CәiUR0YB$ƘF])\0gOBĠ3:TL!׽QhQ6_Oy^QwhAxX#quɲL%8T_Ѩ ˊmZFfk9bh} C(qbѠǙd#׬DHT8ߐI+\1J<c9'y#ᙑ<(URs/9DޜҪB=_zs͝yZc1I8۵̙:uJⴕ1=$f !6 j}CB=;u IDAT5mxi;ߺ̀,W]gSK-=< (Đ=VGA׺!v.VQNK` ׭tj'AƐfBkZA 4TK&>#6u-~}Tܛ♴gtH^H)r^_^t(Ƣ  2 /TZޓaPWD7MԨ _F:@9-?w5MhiQų띒nSKREVx<`ìhRWMC2hLB~_H:&Tt2r9^NkLMwtn[GvZ!%LPY>S 1n<Ղ'~(4rE&pPPchud*c<¡z=)KAjіX'S)]$,6+2v"eܿ?T"4+vGbYrŒ_˻3՘l$kkk5i./sպj gGA ,iXc~}__f+?+Ϥ\[ݐ+#;ߓ߽k Tty|SL,ф beAn߾-cF |qiNcKd! {ymSQ-O3xgHݒ-nR(kAQUD##eD}fFL#xtE 7d2ºahBVQ ~:KZʚa#ߑ^~e"cw<+ ӝV[4xLTJi`爪dbM0\etb0is7gf6Z{\;s@5TTJa]S#ni%}SQ#g S~ih9󫵘~|Q_*UtL*'5syG޹&IkD?_0D {sM; Tk+X fe59֙h3lJhh4s3N]"ٛCS [{q5L&ـ÷uTmƉ޼[+_Ĵоs& ou(}mhBsܼ)C i"4)wZPPRejʆγÙڠ!q\rXԽ'0z6$jDTi&7F^n@=NN Ϻ:;0HETQS(8t_ ~˓<5S2)56Ӫ7+#$$;4Lx8A5sRa$:¥(ՅC51=" \\_`),Hׂ!4 hԆV=7%^<0,03+s2yQTWln'cX[B(GG'i]C#{_H$$5N|$;g1u&oz4z ^XX!FӹB`aB+Rx]ьVޔx ޔz{W@K|60?l. r(.H7SPF&H/R.o{}﷿3:6n 4ί/?\ڥ%o3_67s}NJJE~e.kWd)iA֕Ruvr"Q("Z*ߕ absEnzD=|UL?Si..Io4˓i4u8,N#9}OSsp_\Bc#cI#O~&kkW 'vv@zthv OF ;7J[;r}~9I'<'z5I%\_婜5\!{*ޓ/>čZ{Y2KP˳#63~fMG|?qR>K=hbn1y 3| cMTFtٙq(xFI]!gP6=xx FcP]Q.W qM$d ĆYi0/RHXͷYLO&6lsX5qYsBknQK..H{r~z(7ק2t$'DQV6e6F,؀Cx"ؓv'+kW_r8=9'A=N='4jU/1ݑgϾr('Gs)ۻgrȃo0 ޽R^Ϗ^H (ˋuy)ͦf\9cW?~(령?9ƶoɛ-nߖ>&}ͥ{@<(t n\Iu%7ݾ,l>Xڎܿ'_dcsKunq#uʍk׽8_POTVMõ=9D݀gC U)( QX+h4 ZUeCFSf~pXdJDAJ28{aI,4jryuE`1/9c@aG Pۃ}k^2 !5:L9͢^8fMEhɮiLY~dMY,rhNL\Ag+c^&E8SYdKb(C]ngQWh=3&zt7s +Ӳb r9{P"T.ck2C(>Z ftcƭ`nQwڞCá%2;ï C"쳩Wcg+`A LɈ(뮙-ndxb8X͠$ÑЂQpBB3dŵD VU׋F5vʸLz`(~6Hc8ܠ:B?%Ekg^A A&Y"kkfl12*:޼j759)@Jid5`!"˃Ki0"ݾVM3f+N?J;[/q-8/|}"[p2 ? Ȩӥ(Jfl!ELcR!S7F1%EҪ쮮E!ws4 U - 2? &bAwGgR0Wh 2N|mg6}~ QIȵIxZ^iX1"8i,=sݴOj65x]l^H co@tfto!a['c#Xs񠬀!0CuaVxFaUYfyFpN8|]TZ9qX:Rnb: !~e0 3U~hZy3,-p4V%لQhPomU.٫ ՚z"TBU>MqB60Jbj7e 5'F ØFZ c}E uhel.;Hݽ}ywʢ?BH}Y[%NKFe{,.R4[81)҂ܻXvT2_K"@, _rz? C Y]Yt$++W/Iz|Vwvlfuu4.(C)dԑV.O?x6֥DR*40%lߺ/JS|h2&Dtm&c4:a=y豬ٗ9{Bʡ|5;[477m#eiyM67dqyW@0ώ}s!Qq Ҩ'3fN, ϞHu)Ͼ|JS2ٗ%5WJRo4)˛}G6R3N E#̋./_5q:ˋSsR{HҔj}t]S*z2i]J}$ WW\׈$O)o6> Y. ]=Kf?ã35JLKX 0" PN1C]qaE+hȃ0OIV5fd2iFD.@(sjuCԍ3#ġN)꙱XuIQ+g:1ܧj:[C+;eV/dm,{X,Y.&9}l&UEq49dQb XB\_QϜCfL Cп~ %emwNʛg}ks'p2,kP] 7d|QpnlTmsWxI(}Gwֳь7VAw@O\s-W&W{f5BG2Iǀ#`C{]53.qL>ݳ$UD4>jE qNא)ᾥ@)ΡFM됺}0$[_D"8{9cR lc*OS;%{nx"%mn,^W1CݠX) FL5~108ȐO4^R,"ʲ\TJlc7\d3Ét E:CQZt&p]5 s 12Iǥ4\DlkĦFshf yEz,Afc#zi R=}t>!UBk(Je^NhN1cQӛRM$B =eB9ORYY^F{M**jkr!M1Q)D3j+ȗ juYv c#C9=g@H;AF7%Pa4|(.# :D F}/s7N;Q Lf@d4=uR6J"Q2Ko t 鈍#^Dn~$ޒ]9;/_ʓ?ãCnqصlr/>jܻ兔+e6W\om>Rnߺ-vN( 5'PaPS:kti(5OiY2xp-XBE6~:y-ǯ޾\ ^(~!^>j$OzףW45MxRoy^dmmK** !Kc)72`YK <@9>~(Dߺ#~uDv#f!jĹ!ryGn?Ks"w)ʢ\2$CAdrѓnٹq5G8.Y>t{NAvW|+PM|" eYڝ2F\P?B*:[! í+1O^)Ju Q2 _kt?N^cqٖiִc)/YYLL捝g{E-Ф8*`DiFA.eN'XXU<5>t͊-=T Y\$''i.kT]ge$3q,+tN&T^+48B߮d>ue!3q\ ÚXf}ϢB˽sR^V/(ɌJd\ĭ˛ IΙR3 l\܈JhئV.rHNu;b?pCAgZZ=f<ء nu~yD2eeqY|b-Ben4 jPHX,eieW\n,-GŚOP:[w%1n#RkCt4D&L6|TI <;>$lo@/ *i/I&M`^ԑ9ѕx"v.xA*LS5֮PH"GGGV_JONϲ(ݓc~VPK<`+ep 8C'`_jR9yE_,UIDžDZ[] 0tҌ ѿ_=iZ&B j%>B)1uJcH?7Eҙk9|tm  ^4N_ޯmW/dskCnZ:; aKȆus!:),0\7|'.R]^z)}SӴNQܹܽN&Cf&ބWxh azRei]]P[=LZVז,M4 PX .4YǽvļXeҊv^EKixFp׺s4kpg?bOɻ?<=$M X!qmeÇFm[l (MxmihI-Pc&xK47ĚѰ|R׭5`% (nm 2G, hkMV8sjR0M<F~?da99Igd `hBӻjejywFK}˵My~b :/=OQu!6'J 9dZUiJ!V/I̴BL1:Mlߢ#3ӂQ$Nq-V/xNTN'81wGt9cN'M$u~TQ1<m^4̨y@NR-.0tnɎ$QcI ءwyCPeZM ѝ^*6Df6S) T`&ӣ:]De7QdbS6͟m_F8Ė\`XB7,6ʍ|5(EހY)8Ħ5I=9Vf߮vn1`c+]"k*So8}jЄW6HyGng%J#TsF9Ǩ0+~ҵ&J Eȿ?GLːٿ#.W2r޾淿泏"٫QkkrD;rvz"7!x4|iuwL"sa6/_n}m/Uew|Wr]B=AQFFNNZԝ../J%^&2(haRUd86߽n[IqJEVyM2ڭD Y"0I%Yw鴞ӥBY0o2˂ 8>:uy]F|ՅE s2a(eK8bkjIMG_ޫɲ+K7 *Ph\wI 9#I^$ =(B'*H=P 3Dx4P@yܼXZ܋rv+7"P̛Zs~\GCCVR$jC2YmnqW5aY( i_t+fzYbMPU31"\:{cm9ӄʟYMC "9R{@>ainaYFi6CZJpJmkP҆Kp#k.՚~5LHƦ ѳMh֊h?6qѤ]?}0 -vUVYH3u|B3GˆQ!ֹ:a|f4}ͦ]?Bƹ٨Ȋއf(0ɘ?jLT\u1v MJ,JS-@mlr-r66-V#Z}w" 1,/Y /b|1YDRGDu2*P<ؒUִah?7WrwF,Z^.jeckHV7ۆNW\{Op9֘zrYxpn┆'/x5 bTb`HICn\F!Qj"C#y[n4;*,l,Z:#vqr|aGJ )pNz9xKs.?srFcٽ~֗h{oݍoݾZsG?fdYQg|Pollcc xk<[€#dmzg%hQ FHG@Pe\V74`oo+k|-,,t}DiT-\}>4^{q-d k)u[DZl)qؠtt|3$ڒ/ZP9J(r24j_&x  + ٬oP\ j\ɨ qj,2ͨ'̜sZ\ΩE)YQ[1(r*aM4VRK~DܹNTTgB ǔ%3nxRJiao/MT 56X@7`F. ӭk#£oҙ`œɹwG0 %4ywcP2G'R=5h48* ޡ J"̱4 zxK@g!9SvV+2()ϞU^oZct04mhxz9>>QMf:}.ǟg_?4*9D^eijjßw@DbGHGZ!M԰L/CjӍAܣ-, H2̴0Gr8 ̂Tu <=fezW?Vy,٤ ff]$\Q>)Fn(nI2TB/jxplh8>TcWRGf6qmE7ќE_UeT@ X=xMX15-S1Et,qC#&HV yjorF#1vE>Rny$:1+i֒p%(Myq{CDCOͲ dXx#24BrLplpj[s_̃ހ3Ҡ˔p)8JRt|&!L[m[Z7NL=]JS]CEn9m.lE|Ph(Tilj.p:BJmXQY3T RdeZK3*A;MLG?153{ws_vw4j]YI6Oڵ O+Tde(Б)h-Nyue{V*4HD81&q y.CwD}luawo}K`~VO>@I_]g~aMю0y`Fg*w7x3\xC˧V /,,wg_m6"4ǝMwwFdѨH~na~a_𞝙qgnݹV*676+7pu*p*EDÐLRu`Q)zq>#%xTaeDG>OH elHu/eX;oi&8TAԆmUp k"Q)^i;fS(%^2UޢNX"Y'\_%0,4p:X)ީ4 ^Q4E`ͯXzD84:Wс+Z_"zㆅEŏ4ZNe8slrE|`":53n78LGil(eQP6Y(`6t5y^^Iġ۴8ړjaƄJΧ|bƍghM+2c(nEÒE9orfb*`X(ˆg3ÌT%t W@X%z}l,*]*C\-{jRujtD56 hd5; )O#ع+cS\41($np|uXΏ0ud$=Z:{]IUMb'2ǀ^iSͨz.,(F_ dc&1;f/> a$ ZiB5Q:iHT^ V%9r G;ѱ]Gjdh"sBOcۙQWΎh.FzSgeɇ*HI_n:Hz9,8d#4{m) ?Y篢d箽Fԟc% Hsu) 9I,!`Q#%F:kV˂)H ڈUkZasR uI#Z.E(HŘ'NIZRHHRʾtUmqmE^Q^kLc "RE$8u%J{o'W*;.׻aD^:ˮZF iYFqPp}/_3xd2?z5rEE3t'H$QQ`YtSm=^?F"QRJ+Ϡs<|x0CtOxg :lԨ7paHբ"痬CQrL9 ,% N 9<}|V&n2>xT#Z& ;z\M xzov\3Jve61&5Ά'S6{œ8i,̲,RBZ3 LEڧPlq6^h$Q|=F^v,\lq̹!VR y)0 TX>QQP[7x]ѻDLVp4ڳ󼦳( V 4ް>n!h%/oyK0)RdNӪEA4}yԔ(/:T1:gQQNҦϧCusjnñsKpC,sTjIZ$ cdj> r7]WF ! 9y֠8;AI#v4re3V3X%:Fjň!ύI q)jkN@0NhM~Uulp9i;R"RѨO>{-:y#,̔΋ pIسzvWL${H./U8@I. E%ukuɗiZCmbgb6*6+ HԦ8zvL`I&hdoj#^A}-WlP m!%+Yp"99T {cXMHH409Yc-c'9S-w >R%E?^y5w)Cs#!p^2Ku&%"ih-l7FіI^EaR8e[աR m Lh NuU%po ,Q2jDC 5W&f:@D?52Yq9$}j ݹR=8ixj7"yJdOҜ;3ήΪ PmMOgp34]GCEB@N!flJ)\~lm>f 'Gvsw>gQkIk#A[>#^6lts n߾KӬ?penhsEZbm"Ftͳ6M,$Yťez=Х=<ǐr)N^nf9,U Xi=37?^YGG)5"S-$XaT:r~$2>3gu5mͩitX9'_!t/gI0Um[K5ev7ˬ+ QVW渖TN=Ffd2qPR1s*L:qqMDB Դ̐T+U7Y82b6zD1_B՘I\#->7||mPj\emȽ;&=:%2(JDFD EeZ689sUN3 9Db6aP;'/J`o\̉e%wdcu x%G%Y2MeZo#B84s»ykA,ǩH;6R_/:LQ׋:U1B8ˬU3%#bFܹ`|Z7*#,3c:ceC!gK-ߟ5 E FL^'[jU+^d<:H(!ԛلw0PE/0LJ Gc?ѠL NΒFBɉ77 bUkrB0dY~ZYXǁ䎒:&ա*Sz483++)hi4ب*42K"Ҽ UWn/3"Eߜ0o|] c0;~hѢ#n;[hD9E(ٳkl~wH]=O>d|[aueܸADsaa 7?ŏc6goGMBZل&>#"Z(^k{xÝǨb4 X\I(J@URŕsxd9*D%ۯst>^`CݽC\ #N{VW0[hjS5*;:LJX^^@1;XXZW_|Zs va1@"FPeh65Q]c{wRpfRQ?Hq4S8g^aU2L3D(ѰfEtI~;9&twaL Yַ;OY%i9>M[tG1b&Ns ДfH $,GM #UQR[m/ E^Csw|q)3*l(W_BGM`*=s1AsѩF+5=Z`y6.!A6QD>\DYW(6 ^c* n5W>-iK;D\XQfywguAZfȚD3D ,t,1c2*>w %{@RgXxjc╊Zh.oL.4!*,42ͫ6{fe#^ړvs~pY`5 O];d{[]([G|trcMapErL0?D{]Qk U|Ԩꩴا#X^`jznlse{T5,}N܆?lR-C`%M"/J],TDUg#2x?ġPGaЁ+^+͹eQMb WoU(keefF62gZ%{S'4s.^׷{2yrrťE,- "K0=Ǽ[1$kO8$ &4qJdZe87LH8}<w^`7^}M)LܹtȽUUcte@.$AgBkՃZ@:lVXf+,x̢4GRU&rQ| xg۰-j'ɹY*>Or@tM4ҿ [g{ȼk̜T*AeLGR>?򬾞OوP\1m OJ鼱 {-`6M>>/3ml}8qJgH9N?se- vs+2fVBlT&žxsr5`dbi>m%X\;x lZM uU  a֔ӳl19di{ǘ[Eq/yŗ&HcŽtvшD ~h>ɮ8ƐXk/ ){'=5=m Wcyܻ+wњ^Fޠ>?FܬD㠎c3Xzk+w;V kQ)ݎ)GJeJq }YjF>D :gdZu #ETÜn}wjEB`lRh%Ea EkH3:69ZZTXH 3vVM,SdF4j&B=b:AYc&9ԀυtkHY)MQzBjYy(d`Q_ ]&Ƴoh8E_bYgLDeƆL^RTƶx'`MFT`D*}̄R]z{?V}#gU&S 6T^,o#0}5Bk1磩P:hGLTu@N(NՁ lC o =I<[ѫ21;hLD9p2t/e<ÐqCк!*T5мDӼ(,Yfс} 7Tc&w$06SQ}Y7FZӮ9򻪵~;ۯ3yzd9g 0s.1†<6*FwzWBdC2R}W*W`9Rd}hMCSwRl2si01i3ғaUg8E$h $ӇIJl\=l[rXݸi5vd#0M&Dv 1-~*ZW3J49LE^exAVsuMDYðbs7Pk)"qًbTÊ}B| L5>G8ԠVÓX)0KђFW(‚G6!&FOG \,ad'ı60]Bao9:E:q%.ES8F/˩]-JӥaI gtP)6XaIhf[ H)9D\-bdFMLÈhEpB7]1%4llRr~Fq 67iy>};;;s6btmjw.ѝV ^8l >orÖWYg=[{6gf4.c G9F^#p2z[4S>bqV^9?~=zE΢;cx?{m!=b.M4)d ~郞)MϾU'DQٽ'\>,- Ԣ }̈LLLI>wgO)٨!Ƙ^!nc{gCzfxk≐ Tk`Ӧ?035~-tD#smv;$QCM%&GΑ!O4R=9G5^ɣ{4Zmwz(r{Qck.7Mq*x8ms =f}03ʼn7fT1M 17zua90wn,(s6Yi3I:,Y' IDATF,,S q`Z"O:jda^:<N(eD k8AڀZ &̝trscXpIcNI "&yH&4I!ibi$WƨLMi(MTRj CR4/2*lfU+!y4fC)P^"jT.w6 r!1(Q8N,V16AAunqn=.I&J@G9YM[!fWAE.:qrh,̣it ߾rYl9Z0+TZjz*fR_ &' Դ|ehZd:}᫊olpɐͥ'k! ˫^ ArG#M#}nS]9F3*?$[ytT*#Q5W`VsVCֶ!@uJ7 ,%MB ZƬ[7X\m|A]\%ǵ4d(Q=Uo5A. ѣH 0N0tͽd7%Ch0HiQAvz#ul֫\AGwAEEP9qM.8:&\T\#$0,n2_?v _~)l?K׮y4nU?!:7_å]ܼ5.?</%_@dV_"eq/2;jdZD/yz!sa*ס@!g0p}Z{uSӨUZP_G=>3X;DOÙxc"."qvn c`GIlt,V={y8{fhJ(J+nq:;'No|wg[jUY6fZ:)4ƓZ)^*;M 7& ][9^z; p˘T OZ y9U 9G3q|Դ yKkZ\٤d(B1c{kEu6Qh"S`qDв\j.4TO=(3k͖\9M[#lo}F࣢|"f?0h1 MGkM"UiD$q-cz[gj4Efk Fb"(E]P{ҸNE ͊f:CNV9V[Գf?[  *,$^Y^5s7NWFU95Ht#EI$NIJLc]a~q4¨"ذC/Kt`ɵb@ {{޽Μ/_Gy'\\LEOy=ܸ .>aAB/)TZ]E.M{͊*ˀHdDbVSq <{o|Mmc5*Sg!xūq6VxW1ժӏGPz7pzmkxs6bjT l䘝%XQ9ןscfa7q25|_ObLsC\|D(礗_$ o/N2^;15:8U^ÃNC" s9D*EtN:DԣjV(KQV5gΚ"/{DH m CVXWȎ4S({i)=ʆ5hg͒5%gmI@r3q!hd;l'Fm0wd3w(e:gjl3H By`Hh(1rٳ~):kL)^͊²!i)Q/2XSBg2:C|IV8'e4tD6FN.̀(=B2)5_vݮ=1/eB;ꊱ7(vGY>*,Aiu2%;V2T+f Gʴt&7J4py= n~yH1`LX͐!j SIRF?8`^bF6]!vcJc0;7m=^C9}԰'4E_x'ʙ9?3lnmsth_^(Y~rh[c۴)IRhg]xbV>{hK v{˔ۯ>WMenHX jԵOeJ]æP鿑6##~S+I.'ԵjӓQFhCAº.U)Yne O4i4sNC`ܼJ ґSGYȌ(aDښSK!hv\,R'Ψ2n70g,@bY D/+SPH wOf@hՄK7P܅ qB:t;("V3Afzݼ<볳֚Lk ="/j4] HB:ĵumŐ+a0RZ3-7##J+}N딚 ׌1-"F*8ihH<*+ko)Գ3A6b`kk])bk{Ї9\qKw,"*#bGo?Z&߿}M<pY\v {{H&Up|mj 樻on}ϑ _78H=Nn|8ǫϭzDG:H4-:p&a) )ή-wX[>4U^+W^;0=`nmFWΣOpz4C,#K2jnE *+^ģGOh@SFCŅEtNT"8!rX̔"4y4Q6 Rec C̝~RA 9ƈkky -P ,s6kay,93ne~;y_ht seDJ #*s-Ԝ>CyfeW1WvZJ4`2&R{3u!Ӝ[(*ID# y~ߨ sn31NμD,gpĀC=z$ j߯H>Pxʫ%%{2@01Yswu ǜd0$DZdKNļPyf5L u311:1 3Q#B#a4o\Z˙J!8͗0:}s. xĹ{ IeC{A%Js/ʆ90ݳ25أ'[p,k]"Pi _rrp(qlKc23C&4-l|癶UNx A4 !_5rXku$ ~"3ǁ+ijU!CDcwb&_bXَ =?Η\,;EIu-9ոh4=]7ISw FU(jKp"M[$&8!zJcN@ gTk ipX# a7O kNl4iqmhN7#Ejsv,FZ_78Ӑ S ut;5gFQFɼ'!:b~\ls &;<\IT_>Ί(~Wqy팚wr3RQ04M 'Y9xF!i7Kѥ(h:q4g'$#Iu*r6:3ԓ<[)YXf i`R%+8{)ʒ9uNLShFc3fVDضȱL31ꌘ^Ɔ\n4wt5j^&UAx3$jSU@R +I&qN!W =92:( Tj ҃b_jnNFT'95I,X88#$OXɂ*Er[e:(3',EZܦ.ZZkHvhIQTQ%dePyIKw=nYGP㪸A#$> N.NOcufӕ*NF= Bn#+U.X]3󨋙`͡ݬ˸hf|nw3BDSX uH(NљAHFQwN{ˎ wqsh8:6LLENӷ39`hatDK_yx>43imMogY (uAFj@,q<Ŏ7D59 IDATe&3p@4xI!,1yQʜȚ#lxEQI]GM3gyTn"S^=[Z$w6~t[6=)F :[,s*z#R\6V&V/] WGj, tc<$T:iU>NgE#> B{|>.>LDͥ\\pyj0 /pr G8̥jUDJ:iB7)ͥI! i4*ᄭ}!ԿʿULzyNXA -td3tK3ߞ!:HO>AP~(WIQXhQg{8$7ޜҚrm"龩(ST̲dT'"3=J)MG~#GYr11U}OK8˗.ФHܿ3^e{_!&J]~TtϿwc,l`oF7O9c] ɵfqqs3<C=TI-P:jJS Jq!n֍ZOztCβ!OpE aF033s_wz b0u&s]EEMd!N-•Wװv^SNZ?}˗ v7yoɺ237ZF#S6pY! zi)/_d4O<Tr쿪&pWqPE |.`o1#"N1=BfiIQcS߬ȆFo?)6A9Bh|Ƃ.*( ]\Ɗ8Ckfnkſ,b('M6N_tѬ: QW@>DVH 9\,,lY4'݂6aWh3rܨ.MU5ÕF@],7b;WZў!М &fSP;]Mr*D"gXk"ˍs"tD29He:5r Q9 {c]Yl ‰H0726Qɢ !v 4 ?zJ>&/9˿gi&vQx櫚=o (1_~!Y,VE(éR%!o^^| U #ʁA81"nHR8h6%C|:95<ޓی͠PRsEY4Hrv)Nۥ)|eTDOpBrodJOQg2܏!V }Yjb5Tb~DAI 8i;FGĘ;Wb}cCЅ>+FEq)M&Ht1p)+@I(O1Sͭ~)|F&f, FNDh9 ,bQqoջN>r[بzyunŠwFCt%G:hKS-,B.x>JrR.&ѪU- Luqx8L!GH>bFsDuyH.=JPSe@;EMHPR41k6ǻ=_$'!: 3:$*9 KX^>Et=9wn~k|EDujf fw>@Qǵ ̐",.?#J-M61KK6B78Ȱv{0=J?Dx4D45|S3('RTcЈY4I/=O6&>3Ī;ApU;;x5oVobeu7 MNweWv'|˹ h4if0!)Eʒ߀rl-D@ ts5,.?KXYGnvzXX>]!va<`oGY x8@h'X]lUʋ'GE;w,i80)?z ^Pa?!8s<~_!BnÇyA*dѐWa!D"5 WetzIl*(}sS`&1ԜEbܒ.xH'm\Sd2$uzε֪)ř:LF:ɒ'T.b5Ue CXctc .Iޤ'Bx"O%7|Xf&ip:`nt۞DBYaZ++$u!v~&}iCɕ][yH2YCҤG4p.y>*A/JDT(R̢s]׎4МrmqjڞfCueǎ3*V#錨݇X]_4@i)=ڠHCG%Q43=!+epB_L $IFϐh2lꜘL1}7&YO6:wfLM(YtGYdoN6&8x6{nݗ@DmϡXjY'p.s@P7kGׁP=J 8 S8IR.(tQ}'0dF*qurrπ&G>qZ_ҺkNBz˯۰3=V(UiCSct,IےP.MvNise~/1-:n:B>Z~?IQϰfCf&; tz hΗ_aCV0ߑ|fh:q. _.)䎥{et)d5a˧OВBFg8$«=ġ6n/Icy/у=u$& Tɰ"&f!v@PBș'|ɵF)*ew_Vd* Ɵ2$Jйy^faS&>m) {'yKlCT2Yhft FHPO I>k -(ИbD  ͌* J%jހ6A`Dhܼ9Ab egbFpӐm(5~Kٵ";) # H2ïW8Qi4PIhm&>s#IF0aT/t?AMT'V1ͨsuZ&p24:6_{x5~W%GD[*8>֥h[lD;fLr0?LJr,EPDՍ7괙\${Çr |Jv5N`~.Bwo{P)GrFztN,&6}IoXXXb|<Q/pH"y% aJm a@ܔ q&*P(T.7lKrKp||/9hͭ ,a78><}:6q9{f ;g#Ԋ*.͞WA\dQWp|hc8U>WvC <.cw?7TqӃB~P.H:!?j`e{O949-(Tgbh(e9&ڨ(gTqˎW" CF^)o$9*4bz"L+}Nq<+ #*CթW7/AT\oJR\.kF)hE,DxY)T&ϽMɪtts D41"l4K͋ dMsVVeZg¥&RstW &}L5 $5O6|pMjrՊeJH5Ŵiƞz>tHlNm|_"9%S/9ٌ2n2{#?B?OUzoNɺ[m<5yA3♢eiinw $gEH*׈=(;m]32[3m)^ag̟CC2ߔ@k1eCbi=?w&ΙZh^x<@'Sc\{؁orߐ:cFcM/ag]I~5I7F0cqyRZ#m<1MޤWqZ9N!( uzH4P4 {@bѲHXs]n>|W(.l^`jD'aD\7}c[OBNc6tk8k5P'c):Lx1_gIno\ A!1t&4#WbSa, *YDSNBqp8&U(T(9q iH@A߮`mV`eّBDU-NR}T f<ٿ[~شfff,HZ;<K|_co!.nmWq%6B#W_}}6\ݾ{/̰s?ϝ;ϓ~Se,KHOk ZCD$"53b?FY' >ǘ]eh<Ξrmܻb*U*U֍sx `s#1nXbe9Ji5ccm#ŀ h$!Y\Y 6_a)*<g1ossU=n'X}sl3n^xݽxtyƔ눽J)lj!wNv8;Xaviq/3UUI\`ӽٹv&(ʸu+ >Ĉ>81e4)e PXδѣ.i,\şWv7(M7(Nܘό@pOwyH^vϽngf#Ff(Ǝjb~9L7gC^B 85VhGA;;żvOuOOzrlSU/~Sk峗VprxFrܔ;Wb#2fVÌCnwhvF=J&#q}..Érʃ=W+ACp/`V @ùLTO k q$ t}nݣc,puDo=t4؆'۔x|_%2{#&uc CAxr S]}FAH"M4kKmq6370:$jn!kH -Q,{ٙ7l/ UDsbRqHNQxÏp>?w;{]5NeT`܎#YYX@T1ݾPK.ԊAF k:QQgxs8 (.-,ǧ/0r)g2^zhEU}Av&Jxe b@rZ8:+ Bě~d}>m>yuR{asg9s++0 \^o%FhSIbV\I(y9U0Qal(uLzxjEFGd:..l]ŭK׿De Ł-cЧ<ႸVY B3)bɭ}bq9HK~tNw3 q<qaHFr #GfzL4m'bJet;m^[hY,e DegBC,H"|yv],*fFER<:iFR'Ba5Z/@4FsN@+ ٥FE$5I6Y_M 2Af҄*CSD* Y,3ZTyyQU^.yCaLVTC.)s]d@'rX}?Q3Ӕ/@Na]THd ;2yPW@ф:*+uO,KV*E8]GMZ~R*O]Yg  `@_Oh7mIv UF)WTL4Ι IDATe  Lh㡿{Ϡ+}Fxpz\Ň ADYOy6i$9 sFs"ӄ -,ĪaQ=QN4$qglr`e%"G`l^Oɳ gmrS6ȟZ \V2[qZfST7Y7!@6'6 g5q>̅z1BPOfdvAO[,r }SJ9T)V,HqvcFsaiX1t 1ШS h%plGT* 632ߢX>~Ëh[PC.fҬ;D衹6end^Dvۈ2.]'V65Ze\WW_\`aai7o~:=/62ϮZk6z 6& r{wBRETfw* !>A!,/T[BP,𴉹Y&3SYEywnia`r=bhcc? 4 Kg<9>>UFvv9@5G蟍3ClჵU.F7.xow:?wD2pQv+΢?gM`>$wW3+ؙ*o Ԁce- &Wf*h&ѐ #[Z\@TK[lܿwuۯ_շ71tѶ z >I۳gOШQ&3@KL~+gr gbfVO!t/a23 ~K8=gRS^Ј WǙk`aa[y65s4ڌj3j47Q9M{쨩20L4˰Go^娭k4]YU +VM,X7t`:T}C74t8xN<2T1x#"R>qhqjJwWy`qFNK?@0.2k+Sݐ:CL_=4Jeh0#C49<:S P.\ܧw;ͫCCkj"'αqlਿc.4d iȘN 5 qnP7- (%2OxvrM.6!nTI[Xbn stO7.Ν9poZU2Ao x#.50peGxU"s c)) Mqzo%<|ˋv{gwoczŪe^{̍{?b.ܺ9& GU;=^݁ gO)ꌞu>{89>6>PQn*p9g5lQ+[{&Mt ~ܸ+3(WxgaK 8RCaP &V96#BPH?,3̒7vI^ThOfST𝜴PC;!*<Cg\1eQwKVyjds6P]~Uj؋҄=UXͺXDcje-S#LmJT+CukC?O22L&WpCgvmj F.xDoaM] A>KL^DmH~_F|;0GL4JI ]-II7UHĉ˻pBQӀN5)SVrZIG9'8% ݇QV}v/?j4k;X;Naq(,qrh<.7N*1[i[a E(ՀdnGe柙٠9&}hL >#,/pJ4ACeގ'{44ɣ'|-X4aцA N,Ƅ1Inxq^>f과9W !ꄔO1[^,f3 -@[͑J'A.\$sʴ6 ZƩEo^>֞Z)䵀2xm] AYmze= C[89T'L IZ!qژ:YQ 9R,1aN'SjDAu=6_gP$qtk hh2$5BϨm,5P\QB.b^ E Nѕ'(ST\~ N2i>}Fe4ũejc3A.]PɣdDYkcuFոɃɚԦfl3k)L dSɔ;OџdJl̃Ӳ9R(9 Stʍχ&u T];0Jsڶ,,(3NbzR$ ˏcַ$ |7I:$ߋk9xly}wE^wg~uvg y-5O^ nhACiKԍstm"bQnP>ZjsG48 X_EF'caaݾ5œqkS4G}PFd FDžC>Ve)* !N} >Z+|_C:0LJtԙF Z*dcz$p6[[Ge,W`OO.\Qi%1 Z'Q=4R. );AIAgk.RA^'RF1N.J '|;^3%OԩvA| +8991J.]:WB{[0k8N1S1Zc|{h7O1wf;0󐌎jO?0jېTf2⭷.bgI<`vBasK,/ns*9Jtq}JB Iq)2l_߻˃!"%ExV;ɧX籿c=^iڼj"5Ė(X9jJQ9 T$һs53өqhl4eLRI2-7#9ӬZ;Zk4pAq*|D/:B%#L ӂ Ͻ#FR0Gu~)$Q 5 pPK+R .7U`*&Ǖ+sXsTmcC=3'$xδd5bJ{LԀGLn،r)SqUhHzi҃C/E.n$NoGtco56B,S+qnPljʪ=)=YB(CL(Or5F]޿|/+ +blCoUM]yT7Y, eŢc/YCAPcic|ی5J;'mj䛔(Nb 2*]Z\B瑮uɖѺҎ3 TX|^=OlI0Y}yd#/g%NӘ??$[+~l ?ucUY2c=j3@4Qp Թ9 D\;B?3XRCREx(:"Nde~$*}]vhkbS7RL._<~hlMJa ]`LdHI1B%q.Zd a^&JBqoB]R/ 54 e(:ˆ$E$GFc-x~ x^{On|ę'Ui_8*#n>.w) E.P"JpQpnB&*KHF4SNaE5 N,/dN~dB LF0R..aEZDhhZV~ڻGf&*ffx>>:<|@v^ {;oFkK{TdŤ r/nf3u@Q$VrcqkG &u32>f2t{o07/9&CQkYoooq1G4A\a"LZF{nj2­_ 07L^i?i@K>n&tNݛtG,..EJQj6YK Y>rΨ'mz^gΟEF:j 9on]ef;{~;/^beQR-p2bj8}zPVa']Fv.֫R4B}NypH_ęEC%*n`xxBjj`'5\UW4LSZHdzآXENi0iyc"퉮" BiREZ |;L%c56B6c2<(AέVX8%~!91p=ˑux*mi+;^6܂]gՕX 7~f$kY!oZ&tM j \8̍=\z$߬yNޣƄю])`*1?U'}5S@输sDd1I{4䔯(­CoW *QPY?&4%J;2#(/&Z6sWsv(4bő-Y)۞"G[8ϗ>dF`a| )2R5$Tt IDAT iFRʶe-l4aDQ%"'b$Z_ <FĚ,d0!.9G14"3f3j~BhI9ہFnaz>(cn󪴞]E?-J1I5mk6xqWBi=yNg"*9h.gKOZf&;NHP!Z2BM*wpc6+x&RÃ*F*NukG+gͰe$ShOiXPy2H[[+!8E)Hس#D!S՘&āaj'Gԋ>Jv#2R4rƨ]B{{%*+\pyT7eNa5=6M2}Mk*,C qTtY|*VC#EMpR-D}v}ͳs׿L ! I.!G[L'*G?`%28nѨzgFċOsO /^᭫paaE1?? ƣ ._w_h'8=9 Gf9gan .c1vp&|*2v_|a4Z4V$y!rՆא[vk)lagłT첣I>gc\غ?A4rBk7%Z3ss>s=2O`v Ϋ(gf0m$cAd$GZ<U7LBm _{XN԰Ӿ Fȫ/lT E?υ0ْO]mz Lת!OߥrM&+HFhVԡu&#/nBX`CV1܎-MOQ#n^ybHoQmҾrtF%Gt/qBQul8; RR*Hb]EY'8< B'؝!2Y, :?ӟ>C5 Zq5EAu/[5:xÈPnhg|ƽ6Ӏ6"YHz2Jx!ݿ5b7?g; 8\BL!; ˁ!~cqa++K~ ~O?[?Se*T9^gTvvv<Og'_tI٨8ffy{jx1I4.SWpawY;>X]]c 0pȆd=L|o$h?G2)`gV ?< E=~tŅ %,/a4Q,,T~3 (hH4bJa[RiÓw4$~c}Q3*¨I 8'ۈ$0v,56ŸE JF$58skFTȪlis$yγ~*h״W1H"US9zLj]=䚌l͛OҬ)L)4&j5YD 7(fI)c }zkȒTuwd:a 4r+\"[GJwf>ɚ3!bj#\ҥ=yˢ24!)|Yut5@ݦ9=hP3FL LY7B/MYkKYkKzr<Tf+(Ku{zI6`ISgm YM!~儢ͅ҈;}b5әLB0D:vG%.gF7z6>ǘm0}Ƞ5{Nf$vA׃X%@Rc,OsiuDot"BG23ǩs3󡘧q[D)Odp;SWk?ȋLf׆4 ʂfh#:+hbϳSCO?S+S"pxD5.*G]AQk2=q妕܉S ;s&7rc=؇^i&~P$S;N1h51 OZ)pH3EAKrԧPF5%/Q.)ytyX/mk% P%zTA´9 1:E`mM&%i5mH4E#*/-BG*f&{)J5Z-ҕqW{HMH?g("BS@hꘄ l4F1ZAa4FN ƫu,-̡78͵Ҥ JnKDCL= Wm6 bJ)#\[<+=d1h>q.GZlJo_Mj@ ~ʠ>B v)?)>CncnMX^^^.άΰ$3H%Vqms wn:gvMW\d-b<l#-9'%hp̐!YJ `e >ɏISS<>nbCr/KCh"ۊ"]X9BE-IoL|h":71p]) ԃBdE#RL=esD$1dZg͚;y]|c95:T#)8Qj3؊Ukf2gp=XDJv}Sitq",B͍[yjۮ u﹎뮏$Rhi͵cդN;UV0T+) añ%#؎, jn`!&+HG^ (FtHmr NM!t0,VߛJu<9`O~ofv%Q./o~JHPD˞zH|&LϮ)hjMhǡȬ~е1>&QRR1 r9Km<Tt5%qcq{jG 5]W 'B͌ ɓ.x(DYPwy[rZ||OwX'$U!-J 4g9gFGch *jɝbpxܘqӗQiWB׺FVRKgGN QX\pD~rgBNXR2`́XWqk"5?Bo)nz_GXqiN]kDhޫaE*S2%*K!.0R 'c8㨂e tCQF$zIbяRTMR(]rņ$^Blb5^/MP!E8d@@R4ݤsFz,ul#TqD,Ae"9J{'1^45ZngP(5P,H)<svNYGyrJ&DPR]4FvA3rH"C_-8imqFXbȮ+++SlW2a}6yCR>;Q\,jP=9|ӧOay5U*.\,{A-.6Ĩ$_3`Q„HBщ1R\ܼ3TYVŭ-^o޼~_ W/_,f|rbHMdN۷(Wwo|%vdUB -A޺.v^ }kpqcY<>+5ܻ V.C\owsv "@n6^gHk2}kE~f^(ӨuN֝¼r ~Gv\mDc{"a2;O]Y}Lj$1 98LP$/qjN_5i*垗x݁Mѡ6H>PT.P Ǩm rB9<0$516(@SmXiޑdMct)^)ڸX֑b522s.rD6+N4GowX+-v=qTZ P'hcTD5KV,Ԃ{GVq[ڧhwyaa⣱x om@Oh=qN5 ډN'Y7#tG8 p?GEƷL顁[&#x@\ڨY+Ek|llMb9v X T`t{=ܸqoO);~PqQvh5]w2쉓 fk5wkzZ (7 E_Fj4{W~gO{y Tnl?.]GqA>#l954o1?@%h/al !rh n?q:a/C{JELoC\1<&qjeW\P1`iq޾Օ3R St#.l=zwnb@4tdcQ:yx(-8yb ~)C3sY.н3lOaУ{#aJuo KRvvP-pLJhB?֮)LiU/LbqeֳJ3U=]{8oR'y+ҕj5"[c#nQΛdݰh]6۳*Wf qd Co|׳\'v@y1^15Qʲj?m>Mj&nB*^3OeH(p4eit*#eqC4t="9BkLF6 N8.7g2LȅXꮝ\t6ф _K1Pfdy=LT`is<)GFf\S5zgpYdhwmG[g[}\TSZ]kXpƈqߓ;7paE{0HLyMe~Mf0C,́lZ?&HNuTo%VNΘH<_GίWx´HO;F5܁c. CT8Z׵;ۼҔskW`EXA29kx _4`jF7t;^mf )AZ)gj#i5!0/iumxJK75=< 92k2&]YದU IDAT(XxٵD)6L_-=&G3ޤmhVL e2e%Õ4/_ȸqG>&~M 'UbcT(ǒg(:MQ'^kPF4`7dbbC"Z赙B}njwA=ZHJW mQ*.9TCEp'40CG qvhKxuDPs]dZ3n 5T6X((rlq|q E'I0H~=Oh.ePZF)eј +Ӹ0ظ,9ΊG9/׫UJ4m{8u0duYTA;;' :Kh4V07j}TSNA[ZDmnqd}81Ga&{ـcGf˦B訉yuvfa3r9H!84 Spcw5<?'dZ3|? Fp7pt!J*bVV8i}t:}6"]8ӳEi&=~ʺʐu#|?.ހWXnMnJo_x *::.o+\0= ŋP#*ok5 w^{{< XX>%$dW0GH}7rI݅zcn.l}n߾>ACŋ[/H*Jotm*lw<~*:Ξ9F NEt&Y?9vvQ*y8>dEXph*qZ+žgy7mnÙ9#Q%zBzsH Q 34-@S@ylXZM D(#@WUfenkUvR0a4Iu٨=c"!Oϰ5  wTD4]_#96K1(f4+t^YL}9C XdG4VaNP:dQ gMuw ɷ?LŘ4MbX_cԇgh9rQok⬮pF;|G,M_| .Nf;|5`Vi l>.}غiMc>U49Fc蚒3(>|3Mf@&e~}5%VH\lEr`A4]6X4+==GYql7/QyYL'9׎5rJݡÈFYE5/*2B_Y5c8,zѯEDe]DآA;vE_PF"clqVq|u v/qͲ֕#wicoqBU'HNJAtsCgI]Q[23"%;0~cP&7fHԆ6#XH3"JkOsf*jޔ`)i`S/Y%қZj-iI~ 1t(3Fwz17sWf\]#<.| %u4h4AgNhE4S 9t(lZkN8gYAQPJTI!7Wf[JXq򂦝'3 d@]DO$1͋bD:5jL}%hZ m! "rJb: ˝9#,$Zmݯ~E2Le#Ӿ*7)u'SsC3N瘑4>3hB,FQmytjӕ⚘{F) a3Mq8?qI84Fo*9i^,dzѨ+wmL'Ril rɀaV|Z@7D紋dy!n.GnVGkpV#|("K{L\%>H(;=TNS 9MS&(ڊ&:27q:95un>1 w 6KFDzG1XiL^&Oqzҡ K \rWO!t5b\O?CZck  3f{.~}Z?{xVWy> 0:|צ4 ~!}~)=} F ?qXX7:ZK 'ԩn^ۯ]y5ll\%\:W%ݪbarb&tc, D ׻N8=> , W&#Ȁo}"_z~ͥyɈC4~Npu5r~ڭu㈩4 kk-z-lln"&3Lqxx y=BS1 C} f&9բ[ [ⴤ#Z49f+gY36p}Y5^^=s jaE}fB驆3}"HNPg PO9wi&p6@MYQءkp ;4uQ) 5o/l~5h)Է!5jQ,w |&YQC3}ӊ8nlӃgX ȌSyΊE EґKl&&0V&ͣ&c_ L,-ܹ=t2vefקhhorѝѓCwu]v&X4I>"JqO,PyKE)y/6or蹙!du$s#w:-bY(2gmg#E'yff28ʜ!,D 4HJ_s9sHj}%kQSnh?8XVji:cB>.RӰz0¨r`DPhRR45r !k]05xFe!XP}ggwG{sF5yi$ +Qδln3jEȲ LlˋӬy3`.wMY` FQwEZZ8 "]4k^-GSv1*DHZ ׆m \VdfBH2HW,K ]j=>!x#!+QGB/ӄe)XBD-ݡ5\S&6Q,XBuפYg;ftg+eh>r0E7Ae) 4iJtՊIo5MB"3 jOI0f"i;sxm^Zΰ\K0eG* !ùcˉ7Eg8EWŭ+ .lzE\3?1 -AHhnڳtY`lX1&Viyߚ:Cޢi߿$u1BA賚̤d8@ջwe3[iF47"9" l/bc+xp 7?}<wţGO8:yjZY2!I,W њ__BQ]2]'}Bѕ?!=z8<أ^͋WXz<~zjs/b``niZ8t:O&CQ DJe9: i[sX^^E>$Ƨ'["sutC,,ɓG'#,,,q'#9jgzt6*'y^C;{#7p{?h<ΣÚi AXd:$%\zxfB "9P.Qd iu`}qh_U\r:h^r+^})+cFp$)]Ϩrڌ}f^EmhOsյܚĜO9b~WC EUw(M='ɋ9 .vij=343n/igV@_Ivruߟsof˘7*kD#9tfHFSvMJI-UzƱxE/}@Թ &-507t͇|`Ȩ\'/8;<;CCvZL?j+JX`v :Xf;k/h4KeN> Ý ՖSC gZQ9L*I׆P7'<ӂÐxY[e>SlM,Y'Qp]DUZSWtʽQ9 e v0!5_("mŴ|e e-%f#ː+p%N}OvvynFLcWE傎 ._U\z)nP.\;(}&e4r "Q<)TD0kHDe3.Vf3Ww R(y䥃Ҏө_HTgy-5GiG `#E>j^`:+ api翊?L&Z6K/ak롾Y^"NG#{{HMRh,}Y?@Ѥ^VRM".,(5R& 3BmApp y @ޞh?Q $Yh% gS oZ&ɂz@Ǿ~ J48̰\*GNjeVPČIƢ<62z&ܓQt@ vwoÅW+ N$/q'7AdjKlPw)ҫxH޸| d4;#G}Vh?_g#a>#bKss jp&aNwť%<7qE]e$.yO~4Siqs0)KT@""UNkTfZ(\^P͝oK^8_J9Ʀie'/3XhQs>!elSZC"374[(NGbxc=ۡڴug92}tT_G 6canQ>@5^g ak,Jc=B9MG]|Bs|΍1-A߃CC3QЯ ŴVF B/\6dMQO=h[ X EKNq ("!uH;^^ ٌQg3gr:[vn9`4gU^8I*NkZ^ QUYAQ;O4#6ڹpԆ@p]ݑ,ny$S-ʕ!;"^n3t}W4־4Avyvӽ<*(KN-?/pHnkJ^ z$x:PV 7Zk&ʸ8_T5Yf\56~IZpm}7zes'L.H[2h:>V67=DX3kð|݂k4fGVk9{nP°?c>1}9ٗP.]u 2m8Q]#.RĚ\[&PeXzòfQn|߂lFJ mOQ:*1 9;>CG &HU-! |!EzI-"j fjD'Va1WjfLdcޠ 0 OD*GQ[L<=`1V%RMc]c &(:k3A+hj詡02mwٽʽ*]ijEtk 3s%_Pfd,N;!;svO~:c毮n'?)NOOXiqi?cc2V1Vh2j7l:]2ք BaZ\s7p%\z w9f֨KT'ߢ==; <-XUټJ7^/_cYA:7x)&m?k^dݻp_|A!^^=\{uTksXX\52$$ #!U$&W??>7Z؋.RǓ Z .PO|tppBͷp8q2S}89>GN3:.η%#;'P1[n)Wlx/&j kf#1@jKWq^9tWV[{\#5mJ:;'^fG*02(!DEojaVfE3GJBi(U4r_s7)eINHL`)!4>$|RJ=YuV }(#׌8:pAm56MCaS8Ddp̈́} Q hY@z`JO&>4R@4.W]M>_/4ּhJ%(ҲϻP8NJ1,變f׉inM#k@pT.:LfVS0U5Z{cJ7wVW7ɊՒRXrM !ᎃXvnyݺ,^m; T C^RI7>y&H ^wE[f\iGbͽy6 k9c>|?EgFP(L:ǘ? 8@tv4N]1lAnX>3}/6mpO;t:_Q-F@q,](M/@/uW2gD_ϲEM5P!:Wh>9픨P\墚X^\bÁ:e6ͳtBvY}uBA)JKt΄i3^zi9ĩWYˣۊɴo^:bvp_hr*ܼ|vAsgg@=Qd8!Mba@5۞9j:0C" JЉp fGBhws)U)4Wܢsd(fM*juMqhj}dhИ=PD!Ir!LI -<&͈N:0rqU ojJp8R(\D&6Pw^lp IDATR"84<|x }f$Q}dJbCc:IJPa_** mڇ3 ufvSbН6kKk^Lqs} FLL9lfuAbv1ISZo9 ]#6B~]8c'):6̘v[_ǧ^P6i{ N3'gg6 6FԱyRxXHò8K"?/1ߪ҅ \Ma}}_~)iq%=Gԑn"'r)epzx2fTd Oaeqs&a2MِfՈ@KH)W0QRt (ɟ{E!)C=2vB+&CD. Bϥ[<UN]1M)x铧n«䪼¼ecI,m(m[ÕCZJ)/?I=tz{f3XWn)ĢJK49X̕tƒe!, 8{x"F6\~U<d(|Fe-tAbPF, #>J`Xggo->^X?.[Rه{OjӨ U8i.u ƌTu)WOmaee 9iZe:-M%d͹+5& gnRPTi-5ӳͮozVgp*3Y;rW4ö P륙5oZR~\FEP#2(:)SNMMV j5 ʡt4Q\oF(1>{bbQRc$0≯sAK$b.5VGVNe&V>qaPlhI450x)V6n2KTOX jq̤x01j*j9ENqV9˱v9etWT &چ#L`bnI3Wr0w9MM^C*Ϸpqa bBhDb{VU3x键\77nQ+6_8 :>z)EdŚs֟g<ƪ͖WcAtPjvX[ëoYیI?n>)D":C8<:$]s{nA]G!Y6 *7I!\Go3q]Zi\{:'~|%Tc|+p9'SCߧ#tΎ1G܎ꫂZ(q[C6a)N0gQo#āXl(h7!o^h2 %X9wEs{ќC<`oo2)V~jWA8HGqs9h\="] Ly/ɽ 9;J$Wֶ%wY>9 pk)&Ia^BS1nҦD! qJ¯TQ`QbEhN5SB>6ɜWG}F gR I,Ũ Vixd{uq6H4g܄K nZk,~'sk4) jVsfUȍ ڄjxe o鼎scwnv9Das;JQ<332Ccu\@p6ZDi1s3Ԥ", vVhؒ[5vbq(TӔM?،kgdx ʝg3L(417 3ꟇH*!m U}D^z8  FH<-B;:G]lX?'>B˱:B39EGO  q7<h0Kx1?B=c0J5Ɖ W˷? ݚQQM?$UucRE 1BsnY^"rpQ%KTQf/R#%sğjf<6qkΥ6vں '6HkhukURWtu+ihfZ%**ߴP9@WMeDu E/lƿECIg֥,Ѳ-{"M%qZҵwg-i̳B;:Ye(*4̧<u-5`N9V6cW8R33QU Ѧ=3p@v!(a MΕa R$eʢc] my_;DS¹ T"6iZ>Ӳ̖jψij!âLM,CKuMPޠ16IA#>yRٙj-pɚCcf(~Ҭ{eP"ץjpIh>=9Y  02BTjc))} ۼsDY%r=;Ѹw\$)bj4q` R3d%Xw+[du{=7TWU%0[*k>dtaBe#.:5C=}IyJ7dJ Oߢ+s(JniIfW8ѼƦJJͲ_"Gx*HI}p:1Wh:2̟:Jipx< ]\t2CRjAXWX_lyKR!Rf=kO,[+Oum܆9k<4lR=BD!Dx$֫!xPBJTmOpc'bvT̗ghK&ٔ4I 0JI[1G(n`slRg7/#ya _2eGPPY°/@;SL{S*.^;p؜`@7qs2ȓ1&s5K8d44_<@]hBNX (jH2Yu;xȽV"<{t ~* MӉL|GJx6SS{#ZML'c-,.ڵ[8=9b|OX*y$׹=l|oWwihKټb]`4}]f*˗.ac}Bo񳭭cgg/F޼'^ZZ5ǨV3xa8AX[_ɱq7v?h`!^ys4Zs珐{]!\GKs M\rpW,˿EHLOba&iFZWq}H=\p8wq9ԄLk7na4a8`֛ojQ`agxG?ï^(Dϝ[[j"A[#R cLFZsrsa<h-Y4x5N$9%Ҹ2ğR\Ujt4)4쌟ȃ.4m ()3^-I%m(w̸ +yȌ k;#$CG]0a2э6'N<Ɓ٥g|!23,Eh岙SgzY0rj)vQlA\;?o(7Bزl&5p ~Yn'9<7~/ *vVoIt"e@~b̸r&\|msP!D ]n){4Z˸Fftr~ $n_UԜhz:IjpJd~) מJ4'0.(rbcW8$zWZ˿"OIMV({ tn] ۼ%8'B,z8o纫GwEIqL'٩5vFb ߡԏ))/t.,(DS7kM"99&&:bxeos0mdCA8Tֽ?쨂(F} %ۯgN-d?gq< 0zڄg%>'&blQW%XnzEޫP&J RM1LԐJzCԣ E-PkTI]͆Sr"΅/0QVl>#bZ0-zY\&M p2N DI k&өOԊXmD8W5c)0p)S@Yq~qe5Yu`#(ohRC崄E Iʦ,SSyRεx|5-O(j4&xhmRŧ[8Qk B(2Q|"d:&E(rR4j$2 = ߟ*}`SRLo ?'dF%vt?̀s?sFtHO E3N'R:*WJd2kszkYmq_Y^ov ˫?[x4Ӌϣިx5WWÏ4|{r<VVYnkDE#.k8 k o_:+˱dwee?я#9njיWwk8::F͛7'_R?g8y뤴jBݸp >NκX]@W_+przy3zd&t}>_>xV:M BIGgXhw{ڕx{ uF[绻tq<@>͘{89>A5jnMOLbqXojm" ]ca7n'ٌOUfIb}FcMł C΍d5La"&qb#sH#]͘(2IB{ 뫁R3,OS:=ҭX5G(P<+%2iQ\:ڦ"Rͦ JHL XyZ޷LPNI)K학iUnȧkSmkCgI+Cċ:u3w:hv& d>+unPa$v}X;R_5vR*M+ĻMhi#wHe$lea;&zԽ$hv 8/ܴà4r[L8LXM*]<^@4/81An,Z+%ܹJ^|]<=|y.҆) IDATQ;;WpEܾuf_^p\r#^n1d1oaۻڔCY~@EXU4Ul\yBKLj6ϟc w(mhZXYY%l*d'4moױy [u#+~m[9ڹNZ5u^9|чxiū~X_:Opm6B?<0[O=˯W_[?Gxd|Dsyד1:'tuf{4?vecS61t"Li,ҽ{H&HituSCn)N)j_|8ji X#MDp-k$f;ϚPXeR̢Pt,&6,y$zؕwK,3K\ya g\\Wfe.5{^aw#$T]r^d17;,(Y\qf(%%J{uyyAr nLiZsj&}RpV̩^pN _5Qʉ"kI?(+Guy1`-;'AXYJFavEC~R(U9ϩӶFw}cɠS5h6,2H(Z:C/w}9$y2UJ: <qQ)kDFO?L fn>zF7WV;p 3 ͺg&Bcg=RUV> XeF2BtIᄭ]"H^PcPkOܺD_}D,y2[\h?EuB+ -745s$k"zesX)* Dn6>CCy)Ί^7+6\M&Rǎ>}{U44NJm4I`ec]̛.W< *7Z{]zd*q%pΐ=eAr#Os֞C"n霒;\`!ME8T=w {6u-D/ {WLLH 2^ȹJ~~VéD$9תB50ͮ,x9Pn2̬WY`ZǻHqT2$Oi @]iV+5Gtxe}cL1byu1]pYJ Y'_{%s!`$bN,E6)a>nn[b0dN]1Is Z9^Vv0Q;XS} Lf3'Ը ƅx61)uk03C\>Ev87jxQ}LS@U]|#AIKW<%5M 0pAm0' mceu''<})QkWϿ:i|>#_^z%p ssX_ }Mcoo޸'[[<)+g1!jA%̋DUb$}wqyyER=:l~mFH(Q?2'){GWkU\x҆}Y+h_zS=~F](~ը|qwL=zmf^|H=:9!B;2v~nhγm~a@H~~2y/yWIy[, pX[E={C60W#y]@| !hDgwQ>./qn.,ј=|[z4l> tHJU͍1a}m2b;,Fs'1mjkR\ QrhީJ dTa3'LͅJ c ڲDii/g(̼LϹ:ILm=Sfd΁+\kr`2z:@ѡ m tSJ*Ʈ30mbxKI'R A`"}hN ~H:h<+XLȕV f-&a)צ|Xy64a+>P!7tsj o珆nьd$n¨'?yq/8]r=_iv"s+8fp4!Z,5P8yGjQԢr͞7(L&EG%)XEH6,>ϧN)rT%b4RLt *~YqLDz!-t:F ZXMŴ)`ơMS5]%WҠL磒@ 5<K$MdSfA6she&Vâ4qݳ>vْ(;^~j PhF 8xd~سȧ"t uDbt)Jq#.1ufEXWk/fR[1~kkqGGcOcҿل{ UrvF{@{7_~G{{XZZ?@5ptv17פƶZgX\\Mxt7]vv)U G|G| Zsml^5$Ӊol^#V'8!*'';Ť-oXnWnCR|Ŝi0A:ݞtaa" %XrQE48xE,-.agoABO[ >ƣ>p||mىV!~ـbiFƓ1>+6gO1XYp9s<~]{p蠓9ӳYԭ˯^oq跲z~W1v?fß$!FU^@)L |SptPuNHƤ[}Y{OjDSmqxX1ecDskZ]s 5z^p{ƛޢ0ד _RAR,M @OHL2eV`l,ѹz3v+U/[QMH^4^*^QdŚgyjf~"}\+ 5eΟASc9ט u\i~1v"9P3TUKdnog-R/Q&RSd5 1\nmSPΪ5^1z5`p(46CPHɓ/`y|KH[4T Nlw) P?AQ:A4!bb%V9hHnc&P lh:TO7 :d@Pn:5V.- Ue+˫88>8OIoDFJ2>k뎐贚Mqݓɵ ^r`-h\#Hw9!=#/4ոXcF gF-yLp<5]UgmRedp9Wry*#ѹmSL+B1u"),R3Dgv88=ŋm&]9|O>B",ͣh`yyyp"-E1>G}7_MxKeb :߇ќoΣ?#&ym`yuJ!JS68:<KݺuKu)uo~}1'뛛|7_g x:B5 1׿5.^CLCRoO?>*a?`0Jq|rE<9=cᗿ%F>v{+/>sc%i6" |L qb%7w L͵yL zS7|י7 нl2&#TM94a)C%~_RBKJDcGo:UVEBaXce-PtlZRMM"dW8i+4+lO,3`ȰNVtZx~fșCM_MpPQIM88Sx^QZ A]Cd5N9yӌYF3u5eDr0rDZCCSCݢPmw>rd Bc Uɕh-QԨb֜PAprޑZi<%{G2i#ڱ^ B\#*rPϧ8Ỏe{;M @W 2%Fvf.&3D#q\hgHq%Cmj 1 s}<j QMģ1eQpȺo, [Jğ(2,|y͍4"J_K2Ӭ;!4N'1f=*7pgd& .I6e̜i,WcQXlrkL+ F6U䢹mqRDmmc3o.kj /cp|I\Xd=svμCr9IFRaȋJT}Ud7c<ڔ'j9S^^6֌rѤp\MĜ <'ը#8{ܑt&go3ɾٴ3MgVέ(͙O,y~& 'Z,3@n!V2݇RFFA>G@mgea\Psӗjq *cDu_hҁp8ĂdSN x"›js:ys&\2:KU :=^Y COOuateiu ј +xwM.@4..`:F8OcdҨ S5]i`+ 5P<)b&OhlLF#EZՖfC d\ YGG ^}%l=ffMucc6Γ[it~;?YҍkxK_vOmۿ%S4y]]?vb~p~*,hƫoX\mas2ۏI]ۚP| |,,n_h8fvã;?:`Bo+*)|wqnנ8wp`Rß{_dC^^*>J2܈r!UiGl `Lbj.a5Ҏ~'8Xv*BZ"[1Ne!6_cga$A`'{XYn70r݋G^65|Vcdqy~0#[]F^t%⨃.Ep} ' G.\qa.2-JDӌri⪔A)Je<D%3nn_0S8g n{C3ej(`p1Cf:Vwy\ Gը5 ~O%Oj[] \W֐:tڳ}V@řщciW=KZ6Q#Bn]|^skk^PͲ%rW¹DN/=QSU u5)ـH' ,7Z@ʺQX"ROו9=RO6ris*f9aU-JFy\IL5 G:W9/U즹mϝC^ӬI*]:4 G D#xr.5Z%-VmҸp3dL\rQиA da(K&tJ"5-P:Zjn$-W[Uiʍot&e}s,>[aMl>Cw(ѢrL ~dbw(S6ElΥVmZ2(X~G$ ih#DAabCC(LYHM2Y:͔H6dG)aLz iFMz@[l ɴ r)PI EA:{{hJiV4hE@h<ǹ }>D51B1 ]P |N2JKߨVWX`h+\V)D$AXiKqQUg^<̦֚ϻ$ rH)Dx57v!E;1O=ly+ㄧ\FVJ TQ,D',9~2*1rw<]S)MHQ6%kY–]HMOU'IY@w(%JAV=#2SȍzXZ^x4`ܕ],}u{<99t<\CwǣO(_GQǭoRϾ$~n~u: ;;zWM)Ӂi%H_LX$ɴ aYm4%6ٝ<9{_~pN gÐmnS/,aٕ{gc=Ο})Je\qo6.\BLطn~bc*׮۬KdZ3gP7Xq?y raׯ^׿uX'ꫯ># Nbܺq;=ox IDATKKV b_y$+8zqmg|=N-\q{lppo'2LL$r r&GaToV8y^z~^Jӓv`|6PMce#O69.Mn;\獻}^ n׭ŗWo]E ]B8PGn1܏1v.#>= i-y,R1ĉ̳u۪BiIB8x80tR ]W)dzN  NGd)C~D7z%UG >;Wr2L~EKX`+w{xe17e7RwN'N<…F75N #))/j@B"_H&j U3i1uQ+ۭ\|b꜔5aOc)? Hp7:ZTV)٣ c%bې|K0x$4 !qI 0)vh!ƠL/! ;,hZ!K|,Nն`aKVXufj+\C2#`}RlSyVG}IҬtaIp-[l@Ă$s@FzRWq8GkXZǏa>yýUC\8V;߹t {G򩧟2*" Ĺ%+?XtN:Elopsz.^x9jΞ=è$ۃٙ _Σn*o033>sh5p"H 趺]|{n1^xY_W|ޒ3tQXoqQd% Jq*iR¡cESϞny&^xE̢nŋ+1ܹ{.nS3S םp1\r5͛X[YŁhvpKK yđGq-NZ.ۇnNRc'ܥ(XdRmT‰tf汱7ԏ _{]i@\%9PRo-#J-i&`#k| C qMtUeh.39Z zѠ|-pwޑ N' Мݏt\PQ]+Q|`ءv\$vS,;Gc{ ݝz0ud|rYO֝0Vk\_gn )%BZT ff) d`g=, $sb IZ .Ci ;%J@GQ( i71Fy*N;VeSaU|)RǵBI_&Th*HgSxM> մ dO8ubo0(h-|pv[#6f#9c'O`meAXMk_%ҿ1h"}Oꪳo n7R!.NO&Wj w/\ !"&IX-&4FdCAi嫱2%L"vsw7RLؐ( Qz8EbX ȑEf=V9 &C݆R4E[$]JT8F}yoy^E{`ˢN,uI.qjN8ݺK e'$v^zԑZLVᩫ85;BhU4GȎ5I)]n|\U'<&Pdlj~)ʵbBGvvI`B0wcnK*ߕgЏ !$š#BQ&=ӓQJw7D~&߱^SkRB3TuN iBHxaQp׵Q jypw=DZ#u)AIjn>,-/2) nZAc%LU"'l_F;Hf0|9*jRN.{&2 Wז-d>f_S3 gYyVޤ#5ȠS.a73ڀ <5 s9$ƛ?+gOTS{)Wsw6ijazBy]d)L tw KE#ؠեnd2::&H6*yt3ɶ%ReDeBZrn62SH(7yLPb}9Uc񉜘TY sE 8Hs 4>66qi'Zv9> }L M "LS,(B"hްL{gT+yD%=/Ѯhs7]V7cv 5= [RP2Q-.ŋ<ȯ*pɧH>@ űܕ+(4",Y(!g0KF$L K5e]W8<=DA`)wZ=֖&ujjZ#kb@K^E~ ehp'$XưT&OPtpSD,DrP,ZlI1hU?`~&ٓ`]W-C M)`2:FtR=hP*#3ztM㘭3 >>v l۸re [=ޮck}1Q)!HzX_@@c۳ؘM:XZ~5@c-ō׀h AX[P,HFYRD PtE7a2mqŷhXL )&5k !/pRLx!^f;#^/HJ:ixϹkwcem'8ؾ)\S>s3OyP-W./RO .)Jvgل95&P.s/xCl̩Sxc6qyjb IK.uɆacc |{X^YfTC "qsmU4/`{?:{+˘/~w;KhEܾyap޼rAࠔ௯Tkwo߹3537 o>-X57czz66Ytgr'MT٤/Asg&ܐbiʜLL_ 2IT a:fJ JXZ =kx I̞"@"%.eG$a. I-1f s@+؏D>WR>w%ܸel'omx +?)4zO8__E?F0ݭ+.b'hxR<E J3Es!$T԰ƙj7ؿ-p`wpx-|cx IDAT7&ll`UBK 6K!VĆc#XYykԋba|O3U0zJ`Z*8;t8S4ʼ۪3|oEd'$3+%*B(2@l].eKz'<UuaR V˵ַu@=4+t\\ZtPC.bɪ S0 3 v7Si'"iҋ`$c(:1 'ƌr1"g re푼0?qaFฬ݌9Q"uć&AxP}~S٧ VkBk(gyl+DaݚK$e!@.`m M,Qcu0,)iyOdυ@Sv}M4aAK%_~Š9跳B _9%DsB[{'cWnIfvfEɜsRyP`2UTDR1EX}D9"!q"eB[ :v\; !N∊QxFA͔gnN "(, ӽn{L! \B w<`^,YB||%k '8)"ꁒ:iXr7m:0 0ϑL*A-7*p*&~eY5xUO%̀+*6vMrIo*ksWpRl9+#zNqXk䦹цD`RtD\ c'Wk[0h5n Y\cpWr(m:S &z"VƍEͻ@F 0V6Kb4[ͤC:@4Mb9!Hbro%p# FUm C"e+D^x&*M޲7V1[˗W4ъȳ P'u&~a"ԃXVU1x_GŹGuIXGYG`'a$X*KCZ6wv;yVڶK!q3"ZwnmjVѭ,mn.-bӠ2?#5} uB{w]ֽN+_ o{HUKppUZTHXdAQGPJ )Q %^ Q-T Y3OY}y~(JZAn'³Eb=o){wYt/gA&⯒2&%_4.nݼώLO!\^̫PGb-BGXdAVIvjzRLSJz:.^Rus1c-xwu6)-Rb3cjv|C\`勘$%lCባqU,,g^7S|?~dr[ D`wRS3^emb_|q?hvfgz[[2[KOM u?pW 'q llmg^D^{iX@kbrk,UX`^X6&â_fן;?~q,>i<49jwf &'fPT `gcsăTO;o EZZ+)vr †™(bk8|rK&2J^ y'\p %M|깶ʏ `$'bk{S oA$\A6u\+EUgpIV#m4v%]tylAPcVS97ny )AȢ:,ǓMYXYEN-X:{CW${ _@HUs 'LZI8*V|V ]7\U(DmFYK7iZRƆu4&@z/vo%K]g#CAt\ SPKǙ-]cV5u9n(|8znf%Dߊ7,ӂ1oyVDSqy |GXVpg? R2Sƕ΋#\Z5/KI?2'%n*DATTHPFf ,(o(qGaT,ppQR"CEwoa}cspb[JWָ agi666p,Z}c*X ]b¾9߷¿s]-,ܹp|:;raKCn[8w޸sO?N{ ;&`NJC4k*vli wf3Iԍ˅'}}k?vṹ}h[0UjuޔD6,:9z/_*on=)"ۘ|yܸy =wk@>ۥ0E}W w]w >zN_%daEꦐ[2F O=߂IL(yB hgrLsJֹJ(*&H0)8:h C:"b|+L*Vo5KSQ`bI.$)(+4cJ2[FLřѠVK}xZ;u61M24(dIZ"hPu6Sf*=) ҂b(OmbԘ'AkĂJUR &wwplS3:Z7S7x{)T}+Kڝmj%=d{9.#&t2gy+]q'U.()ESȚ(C3RNﱨɵ1_u $8oF׬[{&8XN.jOBeCp |S3YCXn* 5V/\Xz_/VuBŖ&pE<_Sx'm?|-V%ݻKܵ%ϋGr'ן1%.*ؿ;o]Z c_zE\|?Ncgbe'tlg+{ƍ&N9I/R@DW5~>r}1wWVVq-*| Vk΍ H;] af= ʨ`J |{obfvӳg?iSxED1"nXKwn {m$-ErwQ*N(Fw_NsmHe80^==qagown3ړkx Lbs~c'8']*Jkxܓ oZ6qt~Lj- UXI .HpI&l6SMzXHAգZ8;R(.)v%3'@<Zv]= 5KJ{Y- -\9JW?qu9͡b{Ϻ1wObP,C:-ymIET+D7>CDs eu򻏹x_$T;10bgęԤp&ҩW4w5!n,or2cTʪW(.q3! 5 az],!/x$l/;.mͣ>:Ub'+rBp*4S~"_| :՛u۰8nLnG&scS:p ^9 KxY6ȗ5I2Xo:h%DҜ(/.e% ~lկ_W! OF33X_Y/+&c#4f"B& L4I$&ťt@x9TGMᴶBRB#g_o;qhadHӏء#IHPuքw 3x] ӁCj_HN <_x%vx2sV*i(xJW iq*CeHjYXa /+#q Y(i"?aՀc%%A) bcQ﶑RrxR6xv`|ƍʞ|ˍ&_Mx>*?f$TBTe~GyR,Q)1S`%rJT<44up4zyo2ح{"Fk.ۭ79q=sREA |ߔ."Mz,&$ڨKAlmz݄aU,S(%4KJ>R˗/~.-/~MoXX8z.]/`jzo &&v9gR.`ayXX?/*fJ>CGq1\ymbjfǏN,)lב803Kl}xQ} 'љ۷'HVK7Di? Vֶ&7?ϐ}VB譯c8zm[qO\16|,7]AvGcȵqG8?݉QN`ien >YyUL#5?p[;(T8q19~>Z]^nݼP./ajjH{|#;ub. +4)|* Z L0Z } ¥FuI[61NT ViR2Pp\,Hk}sO8X䡵F4$1 L$K%]M_Q/e]PѢ5IUYն(I:9@PN=׌H"igGd2Otk|4:.c5v TWe ȓK/p;rRkR~%./tk%o.<巒@%?^̺,Ӡr,w(IV+f;*jrfbQwM/ \9buZċ-~P]ͺ35>4HĉT M*3\xqWDuQDYԒ9ICq['x$Kw>d%zFaIJ c,OX}&w6Zչg;-E;ȩ'bEV XL?bt[I`+f۾I <$O:8 byNi%L!)%Z=Gp{tafQ\eI(&oLig+&Y̢GClf12J$ 9e0&V'VVGmHL0):qhBmr~r*bM՝2v+Dkn2֗Z>B3uU#6+%a b)<ۛUNq>in~}&'l֟Flo &86MO.cgs" lnq o~ׯ^[[-޿[[|N…(:(Qш# SlR"Jpɩ)IEMURQF YӘ/•+wk̙%VJ4qK y]!Vɝ-[EWS_df"I ?\Kvɓw\̋HŁU"ÅY))CfMy?ֶP+ Tk $1+Z,{PbhAy%щ"h2o+:(_ks27. @b'9}{Sr JŔZmR*,Vy^b NTay)qoeϳ@\׎8uxJ(ڋ5̹adp1]\1& 6wYzw\sgœ-gW-۸Pg⅋,?΂|K5=˨jg~ ׮_n\eؿ#XsšX8T7D"Nb5^_]CfE4niG&g MX$E블&ɺpj8P\(Y)`ͬbtpb廻e$aqf v-9Y4.E4Fg uEY+1 ث.k2Qa<)99u^j|ǛNXw<\)|AJA@}%! mEJ3"u+[@tMCzqJ4>c-L%%rvIHGku_:)Wb`P).\tanV~"UtEeabuc%)HPHBx2+?"{8IC[Frݻ=㊢.Åsoj\@iw:KX۰(ER-y6'Gƍ7Y}ҕko/|K\ 97n!M:jOBD7ro| tL++K~2wIxzfׯ^V6HM<[XX;LMs»vCyITe<-6fZƽ:{A<;? ۺT5\yK*>YpɳX_[éS'?BoQ;K,aoщOۘ";HoI?2䮭a"pq\v1"fjE쬡ʓ3(Vjؿp.^a84VX[RV'Naj%z$12H0sIq )GM7}.$ q$Uj BBQN\xKv^Ra໔hek4_"׍L K)ҁqƃb"YI2/ l9^Q )N?9wwqBk emG!J¦@"Q.$ 'PQ/Ī*xqABw)o>9gJKPaB%,:)SGt#j{uOJ!EBkQZ0z67 J$RGPN2_jFcwIVCp3L O*Xw/j}T+UFkTގ6?I/ $`! i&Q.w98=֎A  ̵"; w}w*??*Uځ Dys}ԫ'xq˸k@ mҡVO,w|57Ell;V;$VNEcBrꗁ,S M@\^rP̂&? Kۿ=10cdɦ]sDiк:vv`]\?:4Ib~ YߏsD 2]5ÛwcL':>[/fИ0{w?tϘAۘ15~-wiG28 ,#2s9f/yk^tU~Lv R,H!c}Xuϸ88~>ithW9B$J3#fswWI"r2$&87;#d=E]XbB!}Օu uҐd=&O{_}rU/GDDj@df3 9|~$ f?xQa~  khٶת>8=[yv`hۋƎ9꽶0bܵ6,ycrg?qŘ6Mu7θf=0sh WdAV [% f~ G>oP;6o`ȎYrc3>8n.9;4NƯC0 S^$7cMGovcyT 3t{c<| dc=˹8$V; Ǐ #Ƀqyl;3vI ;isI1D[v*hbѸ*[ԉ1Ͻ&,l8.J61YWPqX~1/~\MBl|c]574Sv*qc\|f| pD}b=eL3xzifyќWpt\uCsq|fȾkݱ^cK.er__ſO< J߽s[m\kogO~-N`E-Ψ(z6w$vD0rJNj>WW ̘8^6X`N\rB0g3d Bӆ8@.!:pǙO S+F]6 c,G=ds]L8f/n~p7C \/)+ $|_or=;wyb?pC-xg?ٳkn|\3ghܘ1hm08^ə^; $FiFnP~#>q$|uB>2 \т𹎋hc¼q^|~FRp B/ag{~!یΊuSΡD/_@T;v)F#y'1E *J"VR\KO=- h`̠}~U,hȺr{ȯ& -lt͉??I-wtA} dx~6P _NyFcb䈲=O[$rCIgjjO<4+NNL2xdiyXB`ȩ _C7mx OGRӫ' &݁w?Qc$Wùu>m%-u[ cj7o4(2!F`?6h:gS@n>s>\zˍaHUFYut.1𚁿 o7rӿ~UepOu-L0pF6bjcyNҜ$x$ZĉyoQqq'>9x4IM\7[ف$ eU e{=guCmYՍ=*{wM#1ω_}ؘ :~`,1ޛ7v?I1+[T63J7t_Y?98GN"El7l`޼[r$:"Z$M41!͉ : =EGWb9 =ev^l#tm+F &8eX &g}d(ǎD ?Yi$*+>)G:BqIR"e+=k6 jxd &ԏ׿&f',+#`V,QΪ:"}.-dC s4H(ߍK'1,ټpw ޗ̝M6ur'7>jR*5^NxX}@'{ `ח&q|dL·Z;YzX<%uٞ"{`ݕ6(jR&ZcJ[w>:4@!I>r#7z_@~=[(;{ECC('0!RC[x?C_My!rɼWY~ l?ghhIvoF m`j`K>nvOOL5.k~[uc>7T{Or*s`rKP{܏;zyD~xfcG%?3K$c_aDK0@&,D񇿣C\}~j1z oK9Nҝm}h[ /HbR!6Rt{}nngo~֣ǎ'q7s3#ay+^;+?6?]W;05󛿉'Od^l_*oW&ff} L nR-'rFA/A1%o^aӵ"J,}dԻ q>Y5F~wqxI5, Ad*EM\ cfIx5l0?skC>ɅOUXOtБ`b;q,[FʽIg'_& ρLyZa@/G1-de!"5'I#ğ%Cs`Hjeu'*<6cvҜO`Ϋ wkE#1ٰcqx|9*?Of;xil0,Kn_PyyqK*ɋ;:r}"Oc1'ң[`!D1 FFN~}rr_#aI92OT ޅMirK?0C Hlasj,1 ֞섐qw79)aa`\ŕ0 H(AHL66L:}^@ϰ{o`2,A`lȀ 4g}ߩ4W7ԽUN:N2$Sz6ÝV% ^4p܈Y=]FlaYaDmhClxX IDAT~4# &Ϥrt/ (?4"bk8&-Ѥ]ą#z{_lTp|pYXV1EO*bDԂoI1彷@7ȋyRo5EWx\Y!u2b9HI-׭<2CG$L\}#z@4Ӛ% Y04i C3o4SudIk[31T+X w}صld:f&poIڜoީlBZD k#%zB ldiJO9Թmrqeu]41?4 1Z􃜮9Ies RQ*=>]EM_\ )>q&j Hv+dV#kamdr9MQK*9YG\Fere>+[{Qnڰ~l>+)w^֢Ţs 0~>rN%Lsbe35Pͭʚ(*V=/>|O]} G簦91505PiMeL,!,^IkKab׵IE9F8g\lۺ5F 7GqyhQjp*&Ăw>6P}-r/?Ob o:ְ*w|cYqz'"I199*n2 Ĥ߃\'>3&f,zh$O z[^pLY߄xJEMŴ !sI0 nX Q3ʃ_o :ofw7Lgˣx?Pʇ3&#<D߰ QMkYtKQEyF#F-̣WVWcv(^eEĭF S|1C).ɮM#..25 |̃H /Z^<Č<Dzx<'%s&dγ=J8VMTDH8}U;a4`ZZ PoH l,ApPux‰U<5_s7rS˖fNn[߭ỲK (s`5}Xޒ-FiK̍,˫iЕ(d++/s)dLQ|zkS3f+W 4Xm۝1eάuo8[^u*\>;5W{tdR oJrPt/8ڬ/_>~ɦv g<5rf{P؄F >z=S`{5+.Q6#V ^ڊ9Au Ī/L!)cHLmQ4G2FC[B!Ģ4閇lf"UKݚ2kw)WMR|E1oj<|CcQ C}hljR^5WXN*?\5<1DxDZdځ@}O(_r-~,Mb Լ͞)!;ۈ=;0`fH)7[D3=ގ{"DQ#Qh1mH(>,bE8UZ9jjzFdRn?ޑ6Xq⊳W:Y}+Hh>kzhаnjFn׈\cuXG5%=pG,#bU@fP Pk@"7-ðY{Ey6 J%.b$mLiÀS m]|ۺ@=#!Ht%cUf5QsL '3]'(ֶ6۷Sb޽/!A$cHD[{zT;id5B8:e*bѰ,+Y틚)k^:i=km3KoQc"{bg^ߦqp-#|#8nJw=v'Lv(.K:ew<=[{8H&.U& 쳻iO(k#\.%4:儹 E__vå *Yݫ^?K)Jv(EVkTv"x,%!Ek`:1IcRPVFq&RV=E")6d'O\^ KR$e0]&7m1˫^Ï~xoȰA2ВGC E~M}mEH Da7kRve}&>uh]xstE)# tSc%+U^c뮽ƫa b$hA$:M3ܞ8xN ڧhڈ(–ˀ*5,lxghXWP5!`}`#Ť<UѢYNhzLqt@"xڧyϬeo{i̋ ⁘^_k}*e4s< (ukԀ(X&|^ޘn7Ӗ1G9% ~< K(D]X,^Sa˕I[E JW"j)AGA/;?^A'gHiؓD((27c$dhw22He[<)\5^;;zy!:G9f"Tc fww[fu\e9*lgWa*=sX;9)EeɵB9~LTi58[%3̾y濺]@ _/k#3a38F;i\]= 7;}sZg!1x䖗\&ҜOí脧sjegV r kﬦeY~r6cqEh-:̊)&2 E\FRZK߈CSssFFgiԔZ{EKsHIE> #2Ny (`@Ѩ=~4757&Z 6f)@CrIFUj1X*'Ɔċhķ``(}wW~ɓ4qR< ~wJ[^mD]ȺHu1<Zp}8؂;qF|Ae'A簦J P6+ k9 D+W$9qFOgKyP,kd"C(GԵz[<|raȈ> yHb9s)cz>#dx!ܺ)K#iջ0m44$kk~KuM]8VQК2st%(d3"Ә.޴OQdۂ^}m  _X;Bd$:ضS jb½1ݦ(e4f"{|]<[NFc@O=$Y~IHRIQ]͏̹KERqe/3ę?ȥ'3hrH-iu=%SkXZ(ݥ(B9/M>mJ SY\xt5\T&Ow"pS]lɓO"3 Ϫ&T€RDqi`olniA2UJ_ISNݻ12843M*[O&L:UweŇ2I:۔ҪS L b,]hoJ{R'fŝd*:5nkE 5xW1!Wbb}qF[U5*4 uuGT,E<!"*R Lc$CWҚ{ j?4p,`$074! cZ769 >;%UWJ^eуٖ8GuPޘF+7*:Seknʹq忮N54 ^, chcP{ [Cnp~yw*Y"\\e,.B&f6w`}h]iӻG$¾D@9V)D2‹b8~2HΏ3M]Dd!Euv'GR~yR32X!SkRȊV3&O=rwe:R21^hnnmͿvig/&G[=Ɗ[,8%0kz)ZZ[+~"Kx#,N/cJJsTRJ˔LX6A)Vʳ+΍@*jf;Ub^8}E~I>u`4OYKOu6T.q& ¾nWkcFK. dx0Qɵ.ڧ٧Ks"vdCː#oKaϰeٮxF{zkd[Lh(cs`$2VLX83un*ljp܃~5h}/ⷭJF5w>|ygpLHL3aE)=`3nљP%$3Z)h Yq nqsNzEOFƄiS\Sa'kXfbkg/1ϳ| gp#۷)̤;XhuR,v準M>OykGk>&muoeJ򽀵_1N]4%AU4p(w%S^,jx \2ET-Z39fk,[D9*~%kM5Uwj+232 _)$׋H8XՖSɾY*Τ_YS8HEJ!R}Y_3}'Ѷ3U7Pi%BHad/d*vjG69-B! Wk l͸ g+hZAZH1g$4eY.#2@B 6&}ND!B!쩩MnWZ` !̦:aK; ;}i6xcqq,n B!%Mt BzFbnxmx"2/-;pZ BH>ر){Μ9mmm|~HM(\Bz3Ƃݮ_>XBɃx9\|Ůw2k֬!8HtM3gʴb1xя~χz ӦM;=\\qY`AIĚ7?`G8=HW&`k+o.i'+fٶ}9ڋ f㼳CG{K޿뼵i{عk?:㌓CkG"Q^y `yʑ8dq18\kK{#X.` bR,7^R*a|_ߞr 8}``*\A^f";V"{q)쮻GG}47\AZ W_}5|I5) DwpOaܙ1)eǞG,'e<:{2,Y8< vn{>;(ڳ7߹Cá~בN+ܳäVvv׋kǞǜpYǣزmGW1b!Qşw.BH) Gkw_/bX{vm鿝xg$y?M X<~Jx288L$w܁*]uU8WA87ݬK-C8!~??[<S<}L%/~r~DF{қ;{Gxsc6rj{!S#6ҾNVL(6oَ^×-HɛK/9/>Pէ=‘+bɢ٘2)pƷcܙ%}0`8 Q,Y{b 0JZ^}x7l2X?J c}j$oN=pFF"ѵ]c8¼93+ʅfQ޾A.ßށ'Y:[iR͘6Y -[P u IDATw=ǞO~ߧtn>kWC}ʏ<#V\t$:c"Rʺ\"\]庶xr, s!e]\k3*j{ r11SZ%8l^dx W"{UuoEljj 7ܠ|_W ~򓟔$/ChmN*| uj?1,lMIww*VR0B_>Y/}^5BH\"w0&OjMzzE0Nj+V"]6$ώBHePJY':"tYg+-lܰU{ 2~°ׯ|+ Ҳ!Q+P(}:S-cZ'*EfÆ ?涺Q%\^ Jy!$HD}pkI}(]uCܝ5ljكpHX!QoH^_JmiNJ_XAYV?tD@&9LGu>Nk.؀DmXyb Ќkש$He>t`݅pkxXvRϭٳSNU;xSJYFC<9r{w[Wk].DGiZeiAͥV"~p*e40`Sy@"/} wQG_|H#p-`ʕW{4J:e# f-ׯ\se8n kX{ C}F`1ul>Q-BbQ:-B@\;Wa˶x7q%9}Jbi7.|<!T u"܂.k>ڳsgOOX|K/K<)WݹsR\ŲZ-pgA.&r TԔY بJС.'xN2%kgYȚ7(wߍc9dϦuu~'HDJmKɈSԀ:^kh$ 8])M *!/[Fz:Cí׃#NiǙ''w9mjuW7KP_!ڢ.'.e6϶֦g_)c_ZVP8SNI7J9eu~ǔцRA8!A֭[H$ctOH;^X?s/TqZT lB)l}or$HһA(dwPkw`pX6,[յ_&A.HTID]7]Fϙ\$r>}}UsORV;(6j[ApBH8|ghulJ)DQ:#ez.k UBVI6V< B*1I$|*0gqlWj6:iOжm̹s3<ə &.)=m?)Bkƍ {k nÓ8bb}UY.?"'\ gYtsO5WuCXq"\xΉسaL܆s/F\OuXwAtNnAf׫_Y}jV_'X)זȎ_ԧ>8lMDܣRZHf*E[7\dq*N`dP^ns^?t`nO@t3CKp'Nsۡ=>7oj{饗pkI=sq]ǵ\, ϣwTVLW_i3E8;B+)kd^=;mڴg}G2>Voy[5>xKz{W1i2á0>u6/Nu;^K>u-t)-C{KHV;T"Oc\s Wkτ+ߞ~5xvzx ;7' e&Ⱦrk7x !ٸ`~OQO9.דǞ]q2؈l_zf`H¦G%.7v]sԓ)Wofa6|lsȺ! ~W5_3?v>B5cyC=R=T/Z9-tcK,܏wO5 Mi[hkG)'gm^JtS2] q;c:% 5VjG]Ȯ{7 Qw_EgO`}"\4m7 %VXݢ.ܬ=xv;; -3aK,,ۈVʺQgTd?PO+!Eĭa7G$د\s!Ⱦ:F -ѝyt YϿʰQ\&7Gnx>POJ]o+ȱl^C zbv}$3Z+nP 6:BH.jJy$D3g|hGuR,-)SI-Xг 1/C2>9aI_@}$,[)Ifqk[CP(4!d\q1c@ZGEIdE591lj[|WuMuX {ܒu'NCS0m+ce5gv"ꍽ4T cw~+ɳ__MƲ:dԪdsMK^6<][#<܎هX>+5c-vagL,F@mHY>nuR㬓P5qJf}  UX, T:8:&ӭdBol << #C@dlKyn-ѡ-%>J_]9fҤIy9Miշ+Q?|+:N/x.EŕRZ^ vLd444ইCWBlsS/jO=RL6nkϹ W<ٻHY`mEUԶ͘0ǗrzT/ʺeo9.b؈(aeAʹJQ؛*~$~A0z'&8ץ&Wnٲ-JlsU}]~QV(J:69/H$^_ wqM&|*eeM6a@ٝ S >\вt v>ߊFv$'uՒSu۠d).RVW[ٝhY'ޱcΝ\LE.W X)+ _6Uxw6\wH&eӦMk]+ UC]]݄v܄=*W 4![/bgp&HR]V9\A 2gGȿzDpdV| xv.?ms"1nNŖ`nNRE~Jy}^6ѲN98D]&3 |0J"J_6,?zf~\pRHE*&],2٩ dDUr,w&2RUۿ?R\' ˜>m/ɤ\o_}ڿX8׻!dppv>Q>F߰+CNo2:o5)|իd( $ٳGy޵Nq}2kEJUW,jSm65JW??V`lV*X)e#+y(5DZ4ɃѸL6ۍJj|^hsi(E+lk+!On[m]JiVVK}*)R7p@H1sI_z׮]8Ut}._fm/YsmlM>sxꩧpI'%9XbߥR/O>V\^F }%1Ѯnw>KSz'W}88ݨđ۰T^Ii`V{q% X9թNW7u8v6cXoR/Ҽ\Wg@2结*nޫV@MѕpW\qn|nQu&};\*_JklLi3!5!fʜ\L,@ nB4֎mB&lu&]lj@'{?[-4R"b YwGtk$֏6(G>X\Eqq0~Ẃ֩tkT=?WʍPkSjRy%eN>uF ;:UtmCYGH3Y^Jm(æ5U\kjS J_wu8cqe) n Xrmł<dsJ}X6T^>RnE&iR(:ȺSTz궿r8/j285Hbq9`…2) *1QJB%7Xk%oG.ߘ7],E&iR(:ˠWJU^ Fy<x衇^hPyJ!Cɓqcʕ{{{;QWWv\.wb*G]}Gr?gk*K>}5NjCW9RNNB)H9܆)TnJP(b޽Xf V^]Z "mB[a<*69cY3y}eYi}kY0UGbf*4)Y= |~LLe,]"Tj !B!T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !dɲ89!B*B!B*2NŕB!X޶m6I"mb:`X0v"FOw}Xepk>ε8P(`ǵ͒z)DWcŧ0iCKoζ2w܊x 3gHYb a#Klxu]7XGGϼ|%3fTLՌ/h䱷-C~|>nԋV& L axriϲK~0`կnͿ~_АNXIh0#0z |~p!#K6'"w}:;!BHPy%TD,w*B!yBBK )!BHJ!ciAusֿS%B)*RQJB!6L!eaP>B!*26le5emik+Q>{B!0!L:nB!d+!*T\ !B+! ӱ~y D!R T^ !dRZsFB!$OB)T0!BHPy%+トB!D+!N130!BHPy%+B%B!T^ l$k[|#B:BHIJH!6 w&V)[2YOݏJɗu !-u B%­bB%AYG) T^ ) 1Kx{˪W2dSXlPB 2~8-ȝB>c;!d"i.ȡ2k6# *!:>8!P !cMeⳮB nÄ[HۃFnx䄐rlnBPB */&y@BDn:}B2A86:PB+!!)ءY=5p#6uA啐)s B%b˅3%u@啐 VwrEm!*!$KBHFB!-(TB! *Pd ~k?B!\#*BB!lJ!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!JHy`\֒jm 71! d!oR.Iw|Rm!zC) i(dqd)`SzxDyb'y7xonn># ^uib蟻>}k4M3Vϕ%lh`!1GJHfh)?|*Gp~aQ%eL g2XoR i.+'==={Ob5Boo/Z[[1c Xz*>uhkkO4˽K ˘Td4RT(LLL'5Ni^hfvww\}`zI[u58 9υ.`*ab3USb}fcbT5zA21CU4"osy rgx 9W)'.XYk=01UGDn Lӌb1ꫮ w&ɖyMӼevij`%`b@7Msi}"y](Nr> 9b '13s'&H 6R<}|&W\/{r 'smؒSP{]wW1)!Y\G΁hÄsܻ{ndO?_xѢ=s(pooo[6`ڴiy^Z*c)O_r &M6<0{5gz3.h2scݺuJXhr;\ J :묳9nd))y5\mg|P-w,\z(:;;3dk~YƤfHݾUrY^\m]o"zCȸSWO䁐jlY=N@~i9sƌ:Ξjw2&%6檫VuX\?ȻތE΁*eJ{'J8+c*cX k1g =pܱ*k] s@YGPR{1OT6n̺vY~%cLe,+hV\8SP}/L tMjW΁₏)'پ}%APdts-]W2 *+-hjn+W*W|ڰ8SP}`> 7ԉaL9B T^ )rQnG?ʹvV_(9昔%"6mތ2&LYb/_W{b'Uèe]r76LHqP0*q ~c9kiiJFAe|%`ʕ*ITM,c2UeNb[jըs\5,F+zCq+!ae֬YyL:νk?@mPX2 .cYBYq7p.XdYeuR8SnX9B\JHqxKru2)A~_.hvX~%2v#%"2&O|饗6Jү+]&;<|bYsՐw;8V9B JHqCwꩧoyks-Ҟ _X~%2vC7 ˘39DÍei279jȻ !ù4M>'B g)===5sfe_Z?"ِ;.{$}LWIȫe~מݻ, yea͚52&% 6 +V|"h>Wy՛92FXJHqb{{_s+@ԩSU0:r~K?Oa^R*9^ u%jmCIl+XƤ4f"z3V9BHhy%x ]vK!#n\HZ'"\ӧO_$JJeя~T)6顇ƿg/˘Z^Yf,r7JRy%xn6|3)܂'++)^>lْj2&%m 7T!+SoyU(ZL 9ג'13s'&HU+$Z{4͋Lӌb1s9OkڵJXLՔXFXo#Qyebd YK~4ͨH[oŜ2iҨ'[S ˘3h SuinU5W_m654%e?_ܧ.tS ˘3eSJ)^Q\ Bsx ]]]]Ckk(O;4|fFV\5.g1&Xh`!:`aBj7Е> ZG^p,5 I5LF !WBH>,p`vX ˘Td4RTR9B!B!B!B!B!B!B!B!B!DXpkIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/remove.png000066400000000000000000002117061473342170300263270ustar00rootroot00000000000000PNG  IHDR0̹ tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp *>A]:IDATx`5=!BHBZPħDP?}bAHz"4RͷwBBҁ!fvv2Q\t Y)d2AT ɰhsJJJKNWh4'JVgyj/U*3HA3ԅ}\4<UQ\98;;C &""""""" dr †llll'cARCZZO C """"""" EDD.j7L&Ӷ*0 0 =*Ud\z(SJr$IE 0 Æ&5ji*=p\\\$E 0r=--mO\\\ 0 """"""Jd"m"2 M9`u 5j+++nE"""""""zDѸqcLBdlޯ4g c'IlBd yZ!>>~?+/&DFaC{_:G1`#4'''#--MNsjDDD#d[[[^ilBd:'q&Rcqqq5WέDDdaDP!FeBRR  "FL"Cr YIvLL|MD 3= + 1,(\]]Ef`oϏ[$$$]FJ*Zq%""RbE$&&63[Im>w1o~b4Atz)OD>:h ';_"{Ę .!㶌PBTʓp4M^g4mI2]oLVprEDD#c8v_F':n6-꣨f=+1/m$?bbl 1N˼~"PLNjO95!0c8 H%v<דxـc0mj_)""pe2{6ĴǠqWrN; cCWdϬ Q%\dT_:d|6T.0 1 "z~+0S!+>#B y̡F![ϵUxkDڍQ1 ^gt_ԫ]%vVnnR,Xv/uag|>| 5~]6"*/Yq0^o uhr_:eNUhQ+)C-4g.q$89g_$!.!Ny/1FK f~e b)(xEf!J*K#iZFycъ|kHKf/ۯ LC\W#*MJOk_8‹# 5Do_j <_~'< !I1ˉ!1)Eݹy˕uCdtl֯p@X:.GRs3gm~2_ݏ_.2/cxuF ЧQGsb3f,ۆ|;j6f8::53cc k:æsm0୉+#98NE8S7xhlKO~3޿`f.FhTƃuTdYRQb<"X,NA=ABwݽr/[X){8Q1OM& z}WKMM?Ts\w>]v]Axj'&b /٢l@tO# ?#5*7>ehgZAHsdOͫyRY;=H }Pާ"<оojzѥ<ڶSXn?XRx!d o^}"Kր8QB^g8 4$r+$YGDDTByj#b1ӳk"?CՖxz vnp@Ǘ BCb ʜߨP# bhElڍ-BbMSMVTQ6 ;Hq}Vn(J +a0r $a= I>Æ% I~cWx."Y1%U#WZ'k{Q1uh+62ݤ4[gԨyj6E{Qm`2b84O g V_+aؗ JEΖ쁄Z "[|T*?ƇOĥTO^#(-cGF1?)#(Ni|5մZH0 p""bjӢ> /:^ٮ^^ZM-|4*W)bT>9:0E!]TH/ĉݻ3i\N.I_ߧ=!RMLo64`N[<$*JXvx=xS9!>bȾ^k+`w=sh݀{Q1ᄱ`fL4WM35M3ȕ"Xi?|y\gႄ \hS|}vU¥ET߳v~pU!UD7B ;Q!f(LpEb#b>U/"]ap鏲dPO>Y"Q G_9R%ONW󽌪 " /2<C(NrCm] bӻ70.Amk̟ϦFf[lՐCZ3(=;uh*WcD߉?c^@C (‹ [C2"~lYupAmNpFxu`0H2iV jl^}: VhmQk'ߌT~r.v$Q^;L) 0k__,_!sR2vu3 "*qF . V_-={\2jvijV7-cN ʐ|qg_A~=U!,#gRhh(7Y+ڨhP0!td ţB *WFe?KKKí[pNT!y*ObQjhhXaɯIaÉGb,Zx,Zg">\*+tz|~8ǭyN62 ""*!bOQ!*1&+rc%…h90(LDa qn+YD |=8*0dBjj[f|65-b 11~/t-=#"HJNƠ!ƪCw'b]bڂ]HJbU`adA`jN75Cg*f^x^kt ""'TD C30Z-:u%%%*lW""zz{O-o (l9<ᫀU2 Oq&"zZoaĸ?nnnŪ늋CTTTfE:r~-s#""S'zOGoP֟ѽz ADFF8^d=ͨUrEFAaX^!22))){Q"KDDƘ2,tɸZ=bT~DT Dx r ;Ī:ĥRWqFQ} ^""<ij3x̤MI&ccTUA {yDDNs"Ҥ0#RSS q*~(ĥWŔҨY-rv!)J!""LŪh4x%5yMtI^""' 1m$k n:.FN"c޼zm시q DD'e˖V$"zn$4+HnñV`#KDDK,D Rul)gEqR ^ $DD؃xQɞ;99풓jv#"zdzܾCtcUnDDQ'" """"z) 1 """"""", """""""x 0)͸bY<'--[t:n""""""bY<DDDDDDDd.$ [FDDDDDTt """"""",0߈DDDDDDDdXAT~#"""""*:V`cADDDDDDD]HJoDDDDDDE """""""x *a|#8t,<IoV!2*[ : $c+'G~LDDDDDDDTѻyܗ)eJ% lo!K{?$bo\kB/`fpN^(.B؟/8iu>fS|_UEB<.${†-{7Sxr3~Bz+$"k7BrEbM}jtzDD ;1kߘ9gnڃ䔴EN/.‚O Ē%8S`Ño6E>2Ux[ц)r1=e>5珲Mkʋun|98q +z#4<*ATTB<1]qd(%?&Y%W$x֬`\~?#(?n,(̗/'Q:6@rgq,>>bkG#8v(VM,c 2R) ì#+Dy+dm#y{yd[zey4y+C ̑bi*INh7i ^Qa]TrOAt+BRs"nBٳZjQ%3\ R*ezEEѽd.tgסP=<\`ok#w#I\\\AƼb 9E.]Ы+ 0-J9Hz9-l$DYqyu  "%Eo5'D=M0=Vn6-c̲O1sVvprMbcG$6VVvӹ}хaǰ{GwxWF⃕GDDDDt"&.~h2*#X( ԫ] *UKLL.1/S^[apw37Tm 3Ƅ`gn# OE* zFϾҝp}r&L7WbPaMH{fJQ45Oâ7iQgw`ObΡ6EكO:7B׿SLUYBDDDDdaFN;٦]<:y_DF 9%CJN"/0j Vhy =3pF,z 'Mvo%a᱒0`rúUqBFd!jhPV?n. `uǮ l޺ G/D32>UP71To\FX_ШP۱? +6""""g8 2ŔATJ:X[e@=l}D*P{VFx9QXq@xz i_^rr""s|u陓>_0@CϬap+X`7>x=mɤSa]vf_eW*Yj'S۴°uHxSM%X%o.SV-z gWk"!i?Y%8r3IDDDDdqFSnDXJQC{.}0nE@ZU{_<ĸv"=kmr4?p(2445cЧL U'ٶ0csxú} G_/%j&h֝ OZeÈ۶^pg]?f]7˜H#ʕ1Yuƌ Ͱq;04O>Ϻ睽xe:I}zlvѻBAC@ZLRU,ظ~3ժ=s. -TA x@] C_m%q$s-\ے;U1:`/qZ<+,="WjW ڵQDJI[/ҥ`)F.ٟOo|j2j b8r<+_vq?G\˧=y^?*>Bn $1|XVVV'ژrXIJpTrL]g0tm9ܛ>  ECQwp|`y|7knaל0u5TmZ IIpp8DDDD)v%^8 u@?hU+~ڡqhfDɟq}޲9[6Ca?pe亷)07DF:hԼ ]3/3{ -6@V1ǣHl D`U@ݎHer`Ʃ A|=w:~J'G0^oSۦ捬滍-`9?R vw/xy6NZ %TU1pXSX°z6$U 5A#9"%5xU8qv? nPĔ[å./ #WȂN/gnr\^mǑCߠXf)d&NWabL<9/=:N߻`Xf,7^_;rN?S5^_1a1ؽNOðb3m/]&7n?8t|۱ǂ5:q8z>WT+c=E,XtZqf:'C Ü^s!LJf4%*6 !a"E]C6Dy *HT[J(+B) FM}=goaR)*V5,O 9DZeDDDDuhj>+U߿EY9¡:jx'"6NBڿ;9I>Ґ4 F4\ _.8x5 . 'q4-&(#/kװږ?&/zm<ʼnUvTq"S;v+yj6r ;/a xNKKpՠW9%ewpSq}H,gaH؊9|j: 3.Ms6s#-BZ苚j(c~3Pmk8J肞3Hac Smjμ%d0@.Vn݊i8]hf6 uf, pɼBeJP|G]*@D|. ٍĞsiPX9ïzWƏD օ{ {罇1kVp CuF1[E;=ʿ g6]cunh˓XyXo؛cy ڎYnWX}dr. ١ p,7_7h=y L.2O'ٳQFq%*!:-Z.$DDDDDDDd`cADDDDDDDY<DDDDDDDd`cADDDDDDDY<DDDDDDDd`cADDDDDDDY<DDDDDDDd`SsB!!0ybb`JK6)&..PԬ u۶@(DDDDDO `bAP%VZU)&^cx8LI};ڵ4h'QI8Qia0@>.VRȼK)6y;mK$!i6؄@ 1J;>rs0t*ʖzh(KmBxٳ!?\Ƴg# Q [“ֿ+{sjV++<$wүy)NA"aOy$آ'z*ܑ"+$B ^<Șzb=Vi۝CT^&>=|)6wFסMxl?_ɡPqm|6j":F|"wWcR|0c{Rm'C&b; zί{oO7{kхc?`ѩxyu:GfJELeE~I oa5Y1ȩXX< J{'TNnE^v'""""GxF2b  =:sc.? .m><ڝ}P6"f?YCߟĔ/G]*¯]Eeɐe(ޥR5F-`o/C駹W~}zcߐ):L;V°98y? ? jHb=Ϥ\T^TXz5ߏhG-0|phZDDDDϐ./?>OH%#Xk7No(Dגn+>(Pl~ڍ=,0nv߼/zh:"p aZ'TXVNP oךt~ z6A0&&`mo '{84pCU1쬙e?P8:潼?j=!m>+G(jufB9PK +˩c ARRƏm=`DDDDDX}Y&랽$`k/^h -r#^Їn(r>C_D 'TάP=rθEkm0h#OcϠV6ף9+oͱ8@ũP5m}C*Bݮ]!F@eNt~;tV$~|H #U5Hz{.lsà1?_z%m0 YzuAXXXGYpL&aرTz=/ܹɨR F)=*W{t˗/+>|}}1n8yyw0o+VAZZ̯X^<ɓ0|۷O^D"֭[GDDDT<@ 0\-)n#{~=g#H/NEXZ~~u0<.ax5h 8rgјc jU ymE IlX _M؎zMGmbP-iWQfiD>)1ٳaW07sPC/Is='$m0͇R&@4RPhAonPoc;[Մ*aԁzP .ä˲2?JŻ‘p`D q)yBn,X̜9pww;w.Ν;' رcMoFr7)S@`Μ9_W_ATbXv-x 98|0.\zˋϚ?~XDDDDD\!.`1/2d~ƃ4.Եl`\)m܌2WzSDPAcr:h܎4=ĹJc |cݺ*p o?Gѫ4B+C3h \7[Uʺݠ yAq"N9C]`fDS(g`!DP]x|.A+'; j?GAUw)G=KCśo9_4n8yF#j5Kc׮]8q"U&ֿ?~7oƋ/r?~\!ضm\swU^G GDDD7EIy.$pZ]HnV ±SݬX7'*U{\ڢٺEt.7mX`jlD`M/;ifa\o)w#!ѧZ~np2Eܵh]%T .*>E E G{& n} 6N3aT ' P6n\\ CB.(Uz09c^֍̷V0ۥQKD!*$D7yoVҥ :u$r d \EqD@uȢCe~]ѽ{loڴi#Wkhժz///ለJv!)?WnFFT v-ᅙ) ۃl>oP=[aJ1D6z`Qm~X:~L?y 4> ]~ZFn [AbdXN 04] X(}*2оR]H\7g.>k>ޅ)61KB2$o!ː (LM{SYa\M(N%@'r> P&î]fзeR.#Ts;QlY{1&.]^zUYUP3f̐dzXf ֯_?X^&ϞTr( =p */Dlذop """"z6\NeR uTEZJ {>^ ~bY4rUFk4:"ץU0nyvk3d~~,:](/QiTc@|o܎F+/BG!WP8:꥗#u1010e,ՀR:͗`;,9;eGþ#о1P9db.2Td*_hz^Э sdD7ţI&q)@"hvZf#^ڵk:Hǵrb`Oq #000[PBDDDDEgIQeB4.%Ts|~I?AcLtmU, SÏ[EPۜBkqg zB]c% ylcRZ nݒǰW !Bn_CrCΝ "!_~%޽+1u; C bPQ1ΆdLTu#F͛'!K'GfADDDD%N1{liԨQD%D4;C^]%3v`1Ar?i#غu+Ν ^/W^;W2!""""*) 0J6mc &T1yq;ޢB)ZvUV | DDDDDd؅V֭j4rcEh """"*! *eՃ*"ZzJ ʝu͚P$ow"""""* 0J +{{|ʥKsdmbT8BBd  """""z*h<U7N^@ԝ8x{y~j҉ v!""""hẸ̀İ#&6Ӧƭ֬G@pgM """""zet'yE Ӆd Kذue5*WlXMb㧃#{1TpJ_ȭoRxq놨Zp.ouئ" 7&1)9>-CAp'< !?hˣЎh\PSG.!,YținXb`ZZ++pq'3ݳc_|]trJ!03hm })>G1pez\H1ܠqBA_}”[Q0qgǹpzW(o g" {tc/@өc a7q!e^b5xa_1[Fv#qE@, :]7)V^ǻ=27JcWHF Z8:ʡ2ܽ`_lt Q,fZͥL۪WEuzݠ0Z6F[rBzu=訫c+lq 1JmXJ;4DDDDDDD]7v[>kƦDQ]ϯN H] (4jE|e[ Y|o$1PM__E;XgDZ h[l?E=:gMǼY?L7M!wҼL0O6hܵ?%4ډgEJ`2si+*+@H;v]&DTc[ mN1``ƠعXۗ g+ºv^׭-Ig]v q #.!94`S8;wS~:BtNpUww;D9IO.,6컄QIHN0ܵsG񤧑[ߨ 36Lb|Dex{c}fG>Fs>8{^+koJv,WjȏBw!"""""xxED#h{ 6pRRR/жe#qr(= ʶVR8Avt Mr]\/ :/}s<11|QḓGP}x ߆I8z $ `;؊;"={j*֮]8h4te˖MKLطoN:qɗ0~8Jxո6 Tβ:S:,?o֍w;,G?lƈ_YdR4͘^?Z}>f`맭5")z*ƿASQ_},`?CN?PF1b\8{,zT⃳K.jժrW+Wܹsٳg'J.Z;w#Νc>A׎;cRDӦMQNbW{zz[ntnݒ#?<ʔ)YfeHNNl3s PQ1Xb#z =m_ީAaýX,5ÂYole^`*0[mw=V PlܸQ+N֭[{{{h(خ'j+.{_8yt<;I92 t:2Ur{.]AMҢEFoph܅LÜHC'w'gpGIc{1bgL,NG.Q|Ҳ/xIܲ) s^hŁ[ebu(c`Hy'OƜi(n`8sC  [U_ WpCCJĹ%яkpV*C a|4> ufVsh]=9x/>k @B 0=)"pĘ1c@BVfkk6mUn^/^Dz5ԭ[:u G"|fHLL_%7'`9q"!,{+5ܹ 7nd~J$NA*>>h۶-Z-#Ja@eb LDn+n;<(ׄMNx5 JY팾->—X5 u~ h |e߮ M΃[јw!^~F  azq(cvcZsם1?s,Z5.b{ kuw^%!rD 6| 7vFY@m tw"y/ |vcԹc5( 6GwLn؈87?|ׯ_Ν;ѿ?s 郓'Oa8ԋO7oޜm5jpn{8z#!;t耊+%|{|ϟ񃂂yz갱իWMԪU;"^_&2B }Cʕo5NN8(sM6ݭC5҈(8H(u'XB)Q.(`4pe]0齾XySWp/R¶ G}0 D܊F\.]cѐVZ!!!r /wI4 $,/[LnmQ!(%OQd!$5q-މl<[flWRˊƨx~:N4]&7EX!G4F|7w! 2yEq|qwtP)X)*6Ċb7X$Qc)jFSM$FS4DSMLb^wAt+pH}?μyCi^)mذQ!Fxg[qqq 7|-['Y0n o/D}-tau 1\3c}(O?zةSl R'`IQ"FtaqbS ǰK,~wWcׯ+2.Kh6j_N QW5NE1t|k*3:hPFxϜƭG0.d#2/OOB]MTU{^-Aӷ7dE>$|tڄ~.iahr4.z5 -l"q漄kC 9 (Voޣm@ @Ar5Ƽq@Uz3$)"Wb <<ȇE4j.sHk @V} >?J7'gfc~ Ϯۚ9&m[Q494ۼ{&`c1~6Ny CۗM+Fb0F5:uJw!mwZ;Z|_E?+>^껵Ʈ)˜5/+<Q.Ĩ^8iӋr% ;0!: @ C-h<`|wc+Z;nZ?~1&`ʱ @Z" y*lB hUx .:bc9U6DŽ`k_9 1).Y Y EgP] '@q2dQV-8ƞ,Hh]bUzc@scغ~?ꃆaa"WUNu6dbk>B>wYg8p ϸ.Û /bj]N]߄g-  K|}eȊ{;41 拯"/g.ΉQ1D8lv0|EY (L_QĻ#/D=3:CBL3.N,f™a!dD8D4:T%QT`Rz0VZ{D,Q-y00p?T6 z?L!fk+Vqbt7Lpj=1{N{/BsG1(>~xywî&ջ.̊|H8>8sZFIW ޭ3X;sv-^/-f֕pwxDt?ĚRہx)|o /%l릪Za[7zM b0L_RVb~ab_YE#y{uqo:BYƔPŽQyme-b}1׍0_ bXEТEQî! ,!R< 2\B} 6jE>+Na XV8*^l … u2KCX_,0k:yŇOQ/8Qo41k0}4'j,:~'Q lŔ&6yQC<I['w샱oOF`X2 WĔ~Ǟpm/O;G$S^܄o(:i3͙WnQ-bmױimaa~k Ypa؁WG&/aa00L9A^ߣ`aa}ZR 2:0 0 0eajz,,atm@&D(l<0 0 0Lq l/H/aLmbºI[VZ 0 0 Ô) #ljXBLa&'b$h#E `aaL laIF vh".}4:2xD0 0 0 wa #VEn# κȢM-;lQ*\NxaaaJSoE]j,G }ځ!JeۈX M6搊GA1 0 0 SVIԘP1!2>))aE_m5;/aa)E.†)ye@)ňۢ2 0 0 Sv6 !Ra9&7%ݴaaa!lĦ4G6󞗅7J`ۤ& J}yrpRv0 0¶iJg2'?ȇ$)I`HcT%Q),}I,lL0e֐b$0 0Lq`ȤOq x{+0xy:4$i?-@?$3ӷ1pTvF- &w87vN'>~z okR(W)e)=FRޑ8pP,A*0 0R0:5lU@ߺW]4& c 02X(蚠1SuMg W xi=o;~]܀V wu,yw(bĔg ܍\ ÔPôpLvy a)ؔf$zA~Gg/'' h_(οm:h GZZt2)T .8gIբCZɇWUnq%. A>*タ2LђCBԻ#aa%6DE:B rx ~ř)K7]/'w*0~0fpt0\-1U󂱚h'Sư脰0tŎCS nH7&]z[QVc_pwLiny\saaJ5%2CM{G,;Vtm y@yFǧ &T5`0t * [Fsǁ7}qX8.ܠ;} Ԟ=WSG[ lVH֙Λ(ɍԬr|o4Н{>CYI*)1qҁ=g (_>Lt~9h8fJ?Rζmbe d˾xyHu ԟc; \x楷VuR/W;8"-kf @7  QKmI_78\jRH);hvQqHXT[$@_i]6 6PNH0ϡF_nl3Ruu^Vg^9yQ&SI ѷMtTV1mObzvD]vcg Ԕ S.@x(*|M@鿡`zUaSC9w\p:V v׬x +X;o* ^撦WR37¹2oݙ&*[I n Lҫ\y*aN#ι=`'Î CS Eҵ6Vg))*6|쀆Kk2:T%|its w>X PZ}X$8RF*y1dMuB7K u P[:KX{[^*2]`B@4:QcH1 p $o Y_~O$4?l~Du[!![&~ 8@m$cA\I@m3߀ Ԗ4 4%jgmI *R\k*hJ{ ԧWU;-s=EjWIڀ!gAvQCH2@{̶2_&vTN5m@ =ӗW$ 1]䣝Ob\,d9?; ޶6k_Q\.ݗ'bm&aKV)?!r\=o9 u(՜]&(\&4eFÅh6'A ~QYP!v.PI.kCSO0{BP+fֆ2H bĄB(,&")PٸuM4E$KG$š+ =$C}7 83_{[j)8]39AI9")Ie1R[NP}Y'UVO+6$};oDew%}}7u>!zWࠠ?]HJz$Nz7d$??t^OkJ崘b#*Ы@!ú>Hq"ͨr:݈)5l,:+rsT(ĸI;^I; Ƨu\Gj/9RHб0/ґo8Gj4)ЯlD֗d6>HVڒI`(pOt~&ߋd>z]ou%eܰtOdoHk}{9Z~tH'͖dd ZFgcGCddo4Ggn6xЖl'M?Fz}ʢ-MǐJ.S{ʥgGًW"xS}~>K]BU?S'M:bGkN)gS=Jr1^tu҉-t:p¡bi~s rdInvK Lm Y(t i ,8(uIAawok)Yׇ;\@:_&u3qe֝b۸B#U`Ie,dY:1R: LUd⫝̸rU1)dQ?34 F)c\&NJ*m[X9]0LOwߓ,3q {Oғor x$_M{yRzvR3K)>bHOӛ i4zdQNq:\Bu%)n |8p_mJ,J,?;|9_]!嗔& 2L>9~־PZHج%{>u\s"ucJǀf$F)گWo1Am#aB"9ɛtEڗNdVg򙨖Iԛzo%AvYQ@R\\hq0OAXRf3sχ2#O\PpT:TrKc '> tI5CAPpX:|~fIR'Wub]+Z-|FSAzOjYk<阧#COy8U[~aƊs.h"k:zi1wZdK1؉ÄS/&N^͋4R?\yX/Ni3-t9m9/dޣ߻z/kqBiS_qIBYu4,v]7RC2o۞@#5 \ŹGjt!512r%#ж4*+:j яJnn{QVwe//zOuӗt4cR* Ԧ6pT&pOQH̡k\Z"vR!&*Zԡ~@l"_"~a]B$- {x&,x*u3HɘM"uCUTŰ9՝H%m%8:ng0(t AӍM$(|05la,qN:+)/&R#cjD>ԿIiRvOhP q{'gU'}k h%=9gnR7U\Gɑ9pƾ P  HBԿn4ĈEf*nE)F\!;nsAlMY[ E3w^"WU_r:@ QP wmaؗ=f)0Ѱ~E@;7ތ ЭUU {3|lѵW7(c4%`y]RH*X?ֺ 3n:/;2v뚐m8]@E+a[eaݲ7Ls~5 ^aa"mR^t  1 c1o2i(?bj4[o rUqԻ;u‰tIM.9U 58؉0 0Ia:0 Tݕ a/vW8$ tOmxv0 0LIc[.,ɋ~\Q+tscbdvB+ 2t h#%0eD;;/,Sch90 0E!#7;8*d@~ǔEGҵmmMKٱ0 0Ӂ!X aLT՝!tXyb=_9E( 'DIPTK002+/ 0 Sj'r0 0}(lĮ&Lq6f>rVͥ7[@Ylp F8,`/X’"׵1x0 Mc eOtEH &Xe(v v>T?L%԰0w(JMGWv f٦ ~#57m-Cw[ 0 Xk&6Pnsx<]j8(> 'ù0oޒ#zhrhek-ˎ)[츀"\ 0 0ӵ\驸Ht2*Xf &Ylqa2 pm~ RwzR1ݟ͔lXjysy0 Xj y(h`LQ, k2’#l wI:6Cח(#k`}kŃ-N asd4( Sj:8<Š$ 3{cΔm}*r0 0ה12 ;0#]9XCx:I:Vűd~ZG)BxѨn ..T4~Q{0IOʫ|`a: e"٩цaJcn7 m*a6\Tr;h[C9 }`{!55[7fBRaĨYRiIRI'[nڸ4I2-e\Sg0 <n#bΧȺE;0]5Pүr*Py+Ȳ4|9al[%[&T y vlۄaO=U& OG#v]0m,aİxй[O59}kQ2ju )ō^LF,{psT!{c;3PBExxxAeP̧>y _'o s>#{yUEVmt#8Z Ł}tMic,YfDʆ 0 'B6/UXaJqg9$r34 juYɂ1gz݅guc $P]qjf3mMI3w{6y)KaDm$SG,kق=w%C+Wv{:GRRlalQBNXBԭ}k<4Fr{ ʘaaraӰa؁VcRZE^y1# {j>bُ07Fnhݦ=ۅ{FlxqBaaRea`Pb/枮$ieƿ>ULl4AZuмehv|\{J1 0 Ô:Jԁ!WvHKKnéAފWFяߏoF7^SDx80 0LQbZ綝9/\k1ֱ5*&Ug@#kWP"#*'YT10.*٠G ~Od} \=}Z ܿtSLv{3;carC90FF(%$~;a.Y\c"B6vĘ?`{Thc+l2 _mA~UXϜ xu?8*Đ sd3۰`Fw1*` ({l=>_ a犚 ᅉ=Z \[ aayx *5d/'k?*6mV{qށظ%8|S1Yg@ȗbU-NR1=@O;+Oll"z5iP%ah/F࿛з;1}:H}ck`w -3q`jo?nnP#kNw̝^SKfN!Qno˓;ϬϾ·oᥠKa&K>"Ӈn#AQ](ZR .uѩ<$}:A-]Am8 jS/F i<23wڢY`Mv$"7lq׭<+yO Nm(Zh4 TvX~kPWoraҽBW٠z5Ta]B)]*@0o3w ,Jh ڮQGFoQ0 0 ÔJlFuѢiG*~na@j}VhZ# G6*l kˤH7EaoBKtp\_XS⿀J+6+ _X%gT]嫱bOh!IOEOeA'7C'hl&_uT5C݌W45eA#:R-'WdդA46-66F>з}m0q*cq6dﺤGqzB2$Fm,aDS_ vH ʀU^`J^wWs7-:}EzaZm[]Ü0iq$4թ.f/w%(vTGx{Uٌ ~>8ɓ&##TSgư*C)h_5%È.A7 $+kA2 v66dp /Gg3u*8!qpV,y.F{X6 KN3Eãj~LN2PIœKI]ƫ$4[:ӝjD ܐVд)4T;*|yJB|Z2U Qa9N*@JMpoanwб24Q'н#Q%Q?͠ 1"%f)I* DeΔ/!Em @>vgve煅 0%E s G+Ý*ERb, 2٘`MeL SP㓧xV 9A-?H/~ md%pw>X wYS'>{{BZs^jtuUa:y='zQ~MO-? am X_ T;!(EK¡vYIѸ&5ޅ(\RWEȋJE*-իWAʡHurY!9z#Ь] >z:aPNS@Zz-(. pUи'*+Lt!5>>WZc2n]S5x*5dU!4Ӂ6 T{MA!Z_AKj_ Ztń*%ɦ; z6q`Ȥ_TG/eاJ̫ 7^zF|Žx c-/dAQH@)<=TpT Wp4Fr5)Nj$G|^bRtSKTa1 3Hӡ$LߢBZtx?Cgqj"&tM8Ɨ7rd:w`YҪ _oV#jd,%Y,EŗΧߦOY2[yeS%X0Jni!S&<[oҹJW2ѥ9,YvB`BͰqz)*7_B^|a+N '`TPW[g4 /?;qn/̨} wOB@p4 'b8c36#8y.Sq-2 tc1T*XPIjZd=*$m%c jǏ~nx bhR#2Q'XEA+53.Hp-c(d4ёy("${(#FL, *2ڙ9=S.2QP]IK9'ǐNϊ!c=cU&߽ElbF)am(̼@q3-ɸZ b)6gU8oK”Sf2ZC!;K:j1DVau[!&@ed- Qp -H pw=i#Z:Gf4vZ|^>V14WT0x"d9)3Cx!E>Q:KZhj`hn辰 SvHQ/VtM{>jI-~jD$S/1⨮9dt,U}?ĩ65zmR㘻n8u|d$Xm\-%V9t[?~R3JK'5}0oqmݱժbkRBV/;{*X}%+*_\>q/Zq#$V3ۭ1C1]-m;yIpR0H[!ᒙx;/ ~o2 |:=~e{xթϵ7—_C\Zh7r$qw\9⁡) mp^8GYՐgGVL}N$E3 b$Tp-' GDfN#.[MNiћ$+U`..(5AcfMot2-x,RYI)Sx Zo uΩLYKP#⭪cL墠{^fYQFbm~VR:%6JL`Y.0$DS&LQao- #\\z*AQrCGS[/m<KGxO! ]d|]%WWԘ~C-:æ6irJ8_|%l!3ZsU^{}a2ڛV*. ߫xnVd{5*[=} 5<פH|39қ'*wH,UKguwJxx{Br^<< 7F90a' 1v$Mp>V[lqT(kJN3p)H"$T2J{g_g/W v Y(Z$ѽ^S_ Ȅ#(yp QAK7` dáK1*! c߶A2iU%9JAeqz[D: Iin.[@')ѕ4NT᷻@*?Nj`C}Jg EZtCE]OQ_K';N]J@-_#zb{ֳ ^UH2g_!Ԙ$0?sNJݻ9{/US`Gg$UӠ:GP…Ę)[LHF1ov&cnbRgUJ 4qhZѰ9 tSc)XmHUŠTV2YX݋v*tMu(K\5=g?G&mSAŜpoL4)nbߩ r}/UAj%$[a 0(oX/=0`TX6<'WƍO5_l,M볭+q`L4>?"ð0<=<?7ng`ŏ{Ǝ,kz6\Eg{~w-Tq:/ 3?#}8&:OO15VG*9j ؏M[8|^&4 na]ڽ',ݸߴ)wš 1a{}:K'NB\?,[[J*©Bk4xt/<7R*U1 0  a:jξi&&cѵ#.]{`?+_'6u!88^iԋUV U}ti TgN\vz7+햟c^@PVmT2mޘY^}Z5_ԭ[;wӍ6QQ:={>}{wg.y ,C+v;9; B^z!L1>'Ofra0 0 ;0)/oz0q> sW΁!?9|HK O, b1!9kMĖ<2 vO// HC]8QD^,*Uj#*d㖷v܎'Gp#4nP>Fڶ.(qP/׬-æ )ϯN|sf]/Kz/UkALYGLk0 0æað)_) k?u6ƥXe٪:(ea4&UjFX /-?u^za4Z }Gqx]yiպ 6[7tktx7̟ck {b>x?7 JE`/b[ޅaa؁0LIcn(2Cb/Gc>cޘ6m݄W.o $̵ɺtj5j֬"q^jfK:džF<&u\{X<ݻ(8\xA7De)*< 'G'C<1:iԮz#G"ߎ#mkUrgF?m}{JWF=caa.-$)/E(O/TzCKXA 2Ða+nلf-[ ٟ}q ,7GgG <ҳN:%}snlߺ~XD8\+UMtՍ~U>"ϝՅgNӍhM粏Z⻅_aƑV:G2}ރXK,M^#sڈb>bn|B ?B>a)ź/G–)t-Z5Ka6Z6u (J-BqDr BCC&ۗJJi'9 s>J Ia!:OJ@(S6|9FN~0bvLƯA̓R0*e0 0#- ҥKa0! 0Ǧ7S,U 2 V# =!yQ^0 Ôz/i#aʐP( Oʃ0eaN6uZh~Vxl޴۶nƗ–?BF`0Ux0 Ô>axrcH||/!.F=7&ME60 0v`0 ðVj[?t")|@?u#9aav`0 瑿Nر0 0v`0 ð0܀a)am(aa)aL0ݙWgpda8`Pc갸9vh0l1 0 0L 9֊ZVj. װ#/2\FUJ%)hfa w"==]o4J.SIJJ92\]]3`KY1*~M\~v_0 0ٻ( jMzMtDTPPPDl] vŮR)AKw,p9.<\ۛݝ 7̞?0cx {}Q'wzZL 3lȱsNEDD(W\ɖC2'Z|Qݻہ‹JP}}}jsgx2pA d.z` a!{9(xN+.o__hQWu }L1}BoLip~5'-X¹nVG&B>K^s:`{b'2Ew.ii-Y9(ȣUjyխY9K(OU*q֙i3R*]wI!HkȐНR 1Klyaaa@32.CCH.()66N6m̹]eZ@>5_#bq6'|'82.jVwu֫,:Zwecq\JҙNShܸ4곯}!*W|־Ȟrv|:'_BՠNUU\>6sR޳Ϲs\2K8,6nަreJiM*]r KuvI kTfeU :3K-ao2Q%TVe.Uw??l' %Ͳg$GJdeG>7 ֬YWt|K. ƛ2ub;ttF_nʕ+F +o=>=08_dhI2N祺jXZ4vo*]~nծ|Xhʗ-#+NW#bNyի׬?*_^LyRHߔe<{bYHF~ylX|?WOiΰ.;N@ڷo3ԢB(ȣukhsvE;VRA" +/Ӫ+R=R[5SvУ?Ç9eٲ׮]sԾ]+8SC}5ӿV:e~(gTv5s옳?<~g/7^ ֫aZiʤncncձEn Zhԋݮsfw:ue˸gwmٲ9ͺ.ч["նM 9wNz7nܠ[uʷu`˚1w *Y?k$Ck2O?n}'MfMv*/aa*T0͝jذcm k:xpeQoLy1'Fz!!W5Lιq"PC5_dƏAlΝ[3gLOZ~eھmڷ~lݲi?ؓZpwFyR+W,O60W4,׮]ӨߧG*'?w^v?+l=wݡ5 8ׂݞ?/3PD!]K5oޟa5|2}I=R/L+S>0˗ ƍEfիԁ}xL|ba&N͛71%oê~"""4k_4yҏ: .А!r#Tp^qص{sæmZvceJTXha%|Z_ٻ9 J|yVPǹ^n=cbwǁ!,[r& ofoʕ+]{*cΙcRT)'ۺy)w$ T%Ԯ}UQ#i tY֮YŋN֢K-զM[+VLv +ߢe+Moz!]Tz|=n3}M*O<'z4'q~Oqa=Rbŋ;llYf,nO~մY3g{][aM6U]|RǥZ7޺C]Sϕ*WVߛnv&ݳgLBtus=r޵Kwzg̘ xD4q$?gxѪW&M 7#.}1g=1v{ <,m,u94_+Mi'%d\ܮYko֌Y  sNjg_aٙcx2%˵cfujԙ89# cǎ9adצ;x\ Å̖=<'5mO?fЅ6֕W^[oi{ٞ%KL_4mOa]o=Ǐwzt|ڰ~ݻԠa#]{ԺkU4mѱNς0B ۹<};SwV yY=)S6龭[WE#\_ʋN/#GX1ΕyUq NQE.tNM'=fV,Yzc-ZL5k NaOEM$k86iPùZl%Q0-]"k_>龝+'ݿSNj[rfa/w~U_S5¾Ζ-Hg0{S ?ɰ?c†loQ}靷C4xicH}g~R:v9uMUDBμ uӖ͛ծ]Tc҆O)$;zNL}O;[˒,P)D''(9cw}0&n^{퍤׵۟ݻWrLS>4dyMgeÉ?qE-t;#7]p`d{K",GqWY~^Xb8W_?R5S<~4h}W_yI_|~w_*1=l~9GuS{vn2P4e$3ǧ=Kl4cRa wwJ,jבֿ9שnߖux+z-μ>ŋ9IYO JPŝ%׭]5N"ڶmkRT]v9KJ%H8gSfXn3/Fx7%{ى~1/la_g_[!δ|.׭ӊe4vP'|FE >e ;oSҎ۝I.aP&vxke˗s= S8e9>J;=F`Kx'tqg'(oIz"&|O5/#iy2uyuu_wֺdR5RlI곑ԗ#$T=fxzXK/V[eߏ{bi/S4iW_{ELlo&i*=L̺lTޏ?6mœ΋2Ÿg0ԑ1xMm7E n K ~a` 1NxǢ{gv>nkz8";jTd\4q3y?{$ܵSw*U,k;'z9{Urժ]GW\Uj 1xs;zNUTU UfU;[^%sd~[:0'{Ws qNuZvuuhZ'M PZ$ #FnՍ'OG%JңӇetk~w-N a ^pN۾mk5oVAä2 .g7Ulǀ}؆\2zذa }&p^X_)=L -l7qT -o`n=3;uj{i&5iD:Ogָq?:s.d{2pZbF̙YSJurn?g****q.}.P/px8O` g5}~- zS 8>R`Oi'ֵC $v. dmĈOapv؈mҐf 599B 3_4Iԍ7\yta@a Ժukg6ֻ*o\Ae{ZUke}o9Un;*kTj۷s8` GEZrAs#G,.A9{_(h Sڠ^>9'`B Ш3\hDQYpG1r liQ v0`#G\p^UO{tiFKw'<~c0@zPpr41㤝{ fJ䕞$m"]f1B9RS .(#=^}\j7G?-'ikCH -!8OzIEpJKo<"CZ[ʛҬ{#fWKK7t1>$ M \ghSG}JcH%O> uKP,UFSm\T09T%TA)nٖ߭f} 66by)w)=Y}"sy:4m*^n̾7uA-),@={rK3W" ,aI81kv>lO8DTve~jYyL@ifWn-yygvkٷL=_άa>imħL=a>2QC}0v<^J?"(B4jRRcӀ'`-%`?0B{tRRFҠ'_xUR_FwUii;(}VVMʕJҔŦkKKV)m5BgdV-5\Zy\~i!MKRR4߳ oM|7GTyY:>HRO]~56+LcAͺJY`te*ה5fߔn[-=xtS:"0ewy_zOGzS̾M]+T}l_T+ٗ g\G\I痋t|0i*UFz4,J-HFӘ^Rz4{20mZ*7.-1 %˥Q[NRi0/'Q')ti7 |2] .1/|Y}{!qۥJj&oȧ%_.oJswJ}K үf6˛o˟|]ާfJ~-69ڬ?aWs{i,SRB)?f7277Xj޵GB*f:g*yC0?rr6df6n&m;;aTv|ُhL_<&"= <+4J'I}FbR^]CCMc_(6F}|bJk?|b*E[MgCZQQ;b2Ϧq{Qu'z0-fVݦq}q.I>7_}(aC |K8,iج3h@a~2<}o^"by.*@in'.ڙmm/8>_'=lffn\sj9My;,ٿ1IH!zk> 'ëfcI0!S # I<#QW/ @ݵLjiY8'POmZΐ`Ǥ/VIoU3 UcH#%- @쐗]qm'mK['z?pQך7颯fkf9̸I  W5f_x(* sc x39p\Gډ_(<dDBM_s#/zog4fwʗ檓4fx76kSihQN_K5u -uLu/b),ؔf^DNsw47Z J7RSf_4Z>e?gTG'Ku.&&7ώ>4uӴ~ PfO<Æ K۷7^|_^ppK}5k*F]ک__ |X6bWJԳ1}MK mC}F\{T-t:)c |&<tti&cgXGiЖL,7)nigNo{ƙYhgL7EEE)((ȹx<}@NS 2ϨQs̹\yZg>T$~{=}tjާy~7Vĩ…']=IO:GnSzڗ$#7-yն 1*—@ A&Wt4xco @vȖgaCD*fl] i\uY;YXqZ1m֕kǺURI; YD{4OO,"ZKyL><b+ilNurl 0Ĝr6o߮- ը|sTAqmٲOG;cORT-cm/ntGOipqi"麹\m=06n9;Qڲmnߥ =oɻ)8#pw1v݄ST,]Ϭ¤?6l@6ʶ90R:3:*NM#4INGPѢ*C7J!HNm=]J,+7igBƸkNU2gV1e -[ ;1gJDd:z,F,)PSѫ~P"T3A-7Q3%(Y"XUZ5TԄzwBY֢7a6J$Q[Z3|y:AdvۮવU2j`"{P\\Q<zi:hO |x+%zcz};qTj}kȫf=#C^j ,qFȯ:5+kIi yWTQd.>Pz\|]NR.sC pgoM2C[T:Ը~ -r(aECysn<.OPPf Bvב5VhPs͜9S-[ M};wuRB9W\+VhѢE裏tquMd}v]˗/?2֯_rʩqƊv.$$D7x6mJe yUٲeUbEuQ~J=3ڹs̡CO8Aŝ^6lHL+m۶*\j׮QF)>>^fr[+WVddMk|hz'믿:mYr.B.Ɖ'*..ٟz)""B 4ѣ]j:LUP!]tE3g~mUTY5\-[>Z5}tu)0m7_~z ,l]6;gv?lK.u {h:ts߾}z^7w|ȑi{Ȑ!N^`!44T_^^kضQ?~x͝;is=:|)_diaÆg}V'Ov~*U8=1:Znk|١./qkN{q~ԦMM0ip^'OJiC#.axan t*T\@VT)',ؼy3\cҤINf͚~nf{${mv-6ο{gΊ/82GuXGqݻw׵^R?5YW}a†)?+\y*Öͩ՝-#7oz-g{ΙSIJ=kɸq^!vT7b ȡP? /{m{bرCQQQI;D706[@d^ t&#lYvL;… }Wfi;sjkaⰗ޽{;e<9,K;l /DO{1|pgg}:^3#<ݻwsp @ iF1c3 lKTo_5|^vŠA2׮]qa異) 矝-#dzq 78gꫯm6^DwGfKkvxW;TNFji}gOGxx/^&=isz;mdkC;FJMN<v،n /{d4pV2 6t)SyX}{& ;jժꫝ a{ >5kLh(x⶷-ig7I5eOj{P^{vG}ٗ:m; 5rD8p}.]NҿvzS Uiu& ĞwݺuPnoaٞ60v2P{jZ 6,o߾p8ہ][kmw&M243gٳg;Cs@.m:µmyiF \p= z0`#G qZ2q]\9Ӣv)=6 +͏箐XWc~JsW;AjæmI{/5kT;kլ7tm``;y=(|CKUQ I|6xP2QllBB8:![QGGOWaʝ;֬.R8י+h>hZ?ZrPԧG:Y *}%E{PY"cUc;>AMDpX>MIPPdyC/*ߟOJޡOoTڱ?G鉖#Z9YݳF>B}Vp=z_j<>I6(Ot ]] $Zfv UZt]]3[nGҽuBՂ͝5JJ:>S]54D}K Cwd9|ݧaUFK~Wz]}S?=q h І(({@v#f]r:C)1k>c4A( 6>CY맏G*fd={0]UvOW[+*:(VKPXdn-JZRx>d֯@ei>qecGk #T;ԥz{Ւ*t||M5}zS-}nSMNJF=ZkhR#^×ަO۪UnOoT׃ !`ș†i.ULeW/U֪ʛlx;W-I:;B4DW]CVΕTr*->Q6hB^R_ ~\T7f):#S5Hu/RWjhqZ8k&ڭK:$&d u.WEӘuHդuu<-Dj4w] o'.V5j(ȓx N̙R a6rXF31)t%tŭm5=(AUJ/RI?KXQm]TJT*TJ u <*X* A7"!N ^tU#ZrnoVIdPŠY뎪iP^8AgT|˄VmVy>دiwj/E&6y"kUtPw6TAfTH&ZM+*'\rrnaËzT{@qqq˗7Oxvt ӆ/J?!}8bwćxjV'Z"0|{9޽[ ?LeaÆ%u+ôpJm[6:'+9z) "cs?5oe>犘* ǥO/@ׁ.Iދ}ۛ6mR&MqzJ; *_~۲ebcc5rHUVMM6MkV\/\wy.RɓG ÌTpيr>xo]/O)\gԨQ#=[;ՠN55_";䥗^rK/>SM0yކ v8J%4g}/hѢto̙3//pRJGuB޽{;CNT+V8۠Ć(?ӥn{-1K, oz\7Uw@8z-[7ЦMx 2ęѴiSg-C8^}U8p n=;nvv8i cƌW_ 8c֪UKo31l0\ssJէ~vз~ .jԨ˞wNL,(HtNjOj'ጝvڼҚзo_j8K"{:N|^|޶4iis;KwQ![pp(<+vxT۾u)k 5aOsjB Q8c!TLٹ.z9CRlϓgyƙg\rT3 qB7|әNi'pۘGdNox@e.pv`@FۻԆxC {{/@ǧHprd 9P@I|0/6oYK@˾Ӛ"=MWgf7?dėJ|ygہ.zb >zav 4dHJ.wL{{_޿@]J#(PhI7FJe1|cvz@řGp uTeO'@z;:H^ie@"4+R:Ք&Lo̎[uzΐ}0 XNuF #OjCI3gZe3uojO:=e0JGWZaF@dL1 `@OjCI|o#}gN~FjB(!7;680 PJaRzf8{oJP^.F#(I=O'pݴ#Bh '\J8;oj\p.FPJ/\dAZcc0 ! -d /p7 8FRz I{YIMI _qy Ln0R`ss dq^Ipn"ll<nY\/*nG\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#G\p= z0`#yYQm[vVvYzQ(`+1V,FXh4c$>SL4co,` J@晻^n:7)眙9s3y_!GB!B!< !B!Bx B!B!<0B!By$`!B!HB!B!瑀!B!B舃BχB!bF wL4!{VB!"i/1scבFD"a{N444B!Y.i+8.*dgxD…3Q;k(,,3qB͘IB_ݶ5k YgM{.bo.uh}>3^ܯ3m41`/a3||F}ֵ<{:#QR$=C@6:? 0ot1 W=HS]%]r3Ңj9=at-#Z?CT4#NorU]LV49zh EwQcPSSc `yyyE-BFr N❩+Z(1B!Da֙pH!bt7c3gfPAwk(#vaJP ^b ce!D1nKxEjZs暣=kiv&/X]QySޔt-1n!f)"L`&T$^d+k E6L3<!B8&ԙƴ*oʛyy$܏CYbJpTV#S!bPJE6^oiJBil/G1;_d To$ΗlmT7MykݚC:T…{L "< &Fv BlۓBtl:cnl)o[-XX'bp$<ċ19ht>t]W [ :nRО:M{u*&N m.t>*oʛyyݞC) ZAW6NS!Bϣg!Z@)o[-_NY;$-95}2=^p8 $KH9l۩Zu>{ʚ/5H.xG$D+igS"m*o!3g]i3#Q(#mnMyS7oyL>Ӷ|FB ,FA$kӟ(@^ xBBm;F&< u9Gi=EכM=DP7{2Y2USM0٧PwRm;ɝYtb"ۙ"*FNt T#‘0"5GCcb gUϡ uR//G JBeqiW/n@W`>E34mć7hv) B.b޼y$ـl Ob?bQcoWU׾/kce >zVau8u0׾2/}{N nçx둟'g ;1 K ;mǓ3}+hO>D*vc !&[dW#FBv υ'Z +~;>}OƇ[5gl }˪QЯm|վQQ{ >'pmc50"_bupQQoo)p zbc3+`=M%E| x}',87z ϸ9,U346xe177_p8]^Ą[_j{0zTQ^íWqָH ;,k;/8{OW$+>%>}?Bс l?4B!r ›z<|(_+މAu_  >ôn0hF"&›eÿbz>MvTLx6n} Vc\l?J1x(F,:og .:xi.#;>9beZa5oa+pO|_1M9O/ %B߸?<̪Bz)h61ͯLG0@D[xjfo\tx 3Ptw0y9x ]8_<=/f_Ǥ+d\/Btc-[{wqx 44ſ|MX| L!/7@:[ށMD|N"6a@`C ֯8du*^!=_?py1ߗy\j~sMؿǎHV୩b@N2ToO4?|"έ'`KOa8tW۫PUe1Mcipn Hd[ ќc hs(<@(jat3j|᨟btsn݌7f] 1g{1CfzVaӊЏ}*JpڏɥiP{@4 \vêua4*bԬ]-GMFCp1qM0PV J/羆)cq9;17Q:gNd]kSp8ܴhZVSƪ?&V߂]w-Ly<38vww1i$'?8u]weO'f(Xe ˳Tk{۶mR~ᩧj'Uu'+ךX[ضc$zV_<~?=\5o8wاbj |fqvg~1??\6ؼa+z? +:^w~ f6."}0n⟫(-DPge]ysЙ?/>cc1yB% 0a:mtNM`D~{a/\ fqtJ{t|#b]:T.˷9b|&<L:BNz͑cD6^?Y4/i/_v-^n}|I|*H!?v6oޜŷm[8f'M6%#𶍃ގCM[}}wqx衇,;v[1O<Gq~.-C*,#ˬ5e'DX# F8|Ш@0X`v b7Y0ӊsoP ?ΘC;\ p< 8loǫ чWQCOϭH7lLF߳{16QSÿq+K0C3gצ37=)pꐞQ>G_0lg&.†S&BYaOBx!DGYYYi$(//7 {W܎>1~1cF߫pcذa1bڸ / 7܀jrkᢋ.n(^<-sȓY3d֬Y}kя~d?w<ιscMNޝZPg[6L;Vt:FTFbfl1e~nII!WyWXwI{/nn1$'g)oXSKzةラɓcmte%/mn>HF㊿+v p|\WW_޴4+eg,eͶx;k㛓BD{Rk7֬Qa%D1" Ct{J+ʮn7|޼yѷ18V\=hH}Mñrݏᐙi鷾-̜9s[`'ɠA9'xm1 p?jÆ ۶G}=. d:DF;~z\oVXg} /W__ѣFWVVb„ ĊyTw$x< W<_|_tS1*!@!8*H$Gw5gw[W_}ee v":(\r%v߀~@2d?n;ӬI~GCC3?z}`ݚml(R0(9rmtf${Fm#[ Ə Q2͆a=t>ԡ#R ϡ{JЪеWpmu@ ΊP. Ox~P!:Z\8V] 'W^yKlqȡY{¿f͚>}ݻ{g3;S6,;!˒eJ #Y{jC"Jbt ~2xv&T-y׌ !}`'R?Oˏ/uWwyߚiM!*ʓ$Ux?9s$tfzV?ɖPTF0)tj&B@$5gA?{JM XmuP._׶/o~i;?l@Z'>,jBlנ!g!$]7ߌ?>h_V\t71˒QRX8q:}a}~{j/5u?>ϛyꪫHbqslCEym1[-N:$ۆ0 W^y%؎`ǁg ?EhiJ7{%ik2bYXv,C.7ߒ6}FM//"6kxh5}31w]-eN9ڍ7X駟ڞ#|9/cRVVC=4e#w: B"iӦaƌu,tK/E=D~mMi91ٳgeu(<Ѫ(xqeōezi! K0k;w⭷ʺ{NJJghp'_>T2l߾}7рEZ)f<|̘1uTVW׈H@ --|aB?l 3bچa~E -p;[ Fy& }0 ,"tk׮UyCR٢?'WuY70`AAA_GI-/8$E٧~w_>n'0e˒yNyg ,)--i) y iύTe ~CDWoc9 Q-Fyk k-fߎzclEu~èN.֯_oS%cnGUz,|lb;u s׆c99-3+{رNp)WҋOc{9ꨣGfdc3L_q9i5K޽KB!Ŀ ;lop* aXK#\~2eJ.5/SH0;bPP ۗ"Ϯ`5J v Hf ZaAmkog3A?04FL1ի2U 6"M uݺu8Sz-Y~ݩ8(Q0MŚ_(808N-OBů|PQ4)$=z. tˡHPO~-DMŁ*=e>xn 7ÇG}};\isƱ `/ru D>!7tHgx1w߭bxW%]a&0\Fo_ѻ`O3Da+A9&o,֙ˁ< = C <9BE4QgNAIx=R7nˡ;5k=(\*TwC1n2@/B1W$0\P!vo>h=?萑*VТB!CxY:\Y|֬iD1^="| 뷈4(w4oGr?b hQL Nba  aǎ-|$s(F(^psRgZVXaF,_1bDFyc?>6L-M(pca" ڿ8/m[ 9>hnY:$gF/*eM6~=DTmmfkuU]=nߗ>YSՙγ:y(ArJ[ S?|~;A  lcxљXP  ZYЯ͚4鰳o߾2,?CP ZcК?3V܇xrK2hmuV466g IE !B!D&m.o0 vWgH=zCǢ{%5b7qgt7P!*th,AQ:!?#̚5˶2f:CP(`PTB2hLFKa2B$8@[L3 "TGSE^B/K^ jTX{h;??24έ"pww!DC kQ ,h gpiX"yDWv`U9ev`x0'DCxp6/Daw=P$p3d{;nbhWōaxpkGuyvGc74֩0W!BtHEq H7D[pޖֽ [Qt )Ј$?YggVP}&:ѣ3CўKpve!AEl QkM{pItٚK B!Bއ :Exi1*p|XM,x[ !Da9uZcدV쁾{ iNvUޔ7w`GlX%s(^Dl4I$B$K7ӜNgQySޔ[6iF۷($\FliAs?pЩUǓiTd-|ۓX+}꣪)o7"FlX#q\pn?_HNx p}v;x vĐ^VcBMMMrcOހ 0oy !b1,%_a&[v:5.D"M"MK{?{Q\[:|dvaB31ksýѼ~ױ`'})otGɛӯjEOs{?E 'hE1B!B=!#t=/bŋd"5 ߿gx;@S# "B4b]ivpS'\" {3Ee(Z'6YiPظq#Z q掦P"M3VB+W&8 #DSUUm!B!B!D8ꤟ͛7V#qI" - X}{ɒ%1"΁B wKP` 8 %"_5 ;wхxs8ƳHϙ!CG?M=}kjjlSn1T(((M?HW3GYP`充,X;,鎱"#X$1B!B!rTEG,XZ./_~Uu &!B!B!Dn+ZRA'+V@YY]gΜɹaaqqc=6Ŋ…3DDB!B$-9{lF;] 3)Znvb9c!B!BA.]MTVVjk1un<0k֬'LG:s/Kي]!B!DGuk3?#̚5 |!$p k#(b8OB!B!:F/}}mP(;0B!B!DGC 5 jpg`0xlaa<6lP) !B!à@ h5 kUU6VcobΜ9W !B!ݠ@́5?Z]oX-`(T0N۷;0l0竔B!B*tR,ZF)iMohbmm픚##Fl1>D!B!j tIb͚5Xp!P(taOfT0𒵵t1TciVBJyPE!B!%F4m%a/֮B͚C*GφCDhIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/screenshot.png000066400000000000000000002743431473342170300272150ustar00rootroot00000000000000PNG  IHDRߋ}3tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp HruWIDATx ]Uu?(<@$! I@@A)Xc)3:RD#q@Z/*SK*(E !ai9kϹEZ_>w߹q ߵ+.e Ƿ.e ?rlٲ'.b)wB 7Ek Iߧ;_>#4Ka*^dV֣WM4_}l8O1-*==:Vh}.Ȱ}0|Sk%{槪fK9iG)(ҵSvtە"=socC3\ˊ+87t>mR?m(NW\2fL9hUDC0yyePTm['ZE^C2S7rTr'Jy*c?xmTQa䬴n -qL?OD,=mO=m۾9RNr>:E;=v=*.q)zw4E[FYۃEB;z8;W~Qwj sYBET!6ndD(gtr,7f" je`}m e3Tu񯝇&KU6+1ٍDn9cxȽ_/,Ke24AIuJ+îb.6;~Ta鲯NQ3_c>@}]_ρ/`LG۲и=wvjAKG mR"ތQ?9DD7ā8##wL>I`a&I.cf !Z322?sUdanx}3n".C>w} "*B:Ht^/D1) c-{ue~*U:2!44I{uz)̓Ga2MW{dtn 2cc*ap`26~:^T3" L#쬱 C,FwTFIP Fkm\:q삲)k?\M%":m6v4vglmۗʱuk_H8۵Ϡ J98_䲑f5l&m˄\2ƴ=MQ?w1}`**PΌyR9 `(Cp1[tg}J?ѫ'cBG,̙}Wivm\]FrMP^,cO^_kCdsNC7tΪcANጴuVJvE!^OUccGԳ ٌAixˡ.s / /z?g sGj#ni^ewXC2nRǡ1ulDϢz:n]a\'SWI3+׭EIwmN.meQ;f/7Ns+NN3<<'-:K m&ҪpY~o/8oc!L;ׂ֡~J)o׍S2 R؀B~{ekr*i9<EK:ţQVV3PI0Wmm;~+DL?甐8 '_I &w)s<挸gM*_SGJwϮ-!OeKɾCL+]`L؅V頍~h~NmLfՆ`G(Qs(."xS"*:v3X/^y%[X}*e\' Y@ӵ0AucFFA:|byM YUpsF~"ni& aq"vX]W9te52i m{m&gsP麐.Sx Q;FX2~*=ˤ޴s'@SUeÚ4ίگ[0=YN12,Όd0CX=SZoVnii MFtT:F# p ikku:ȷ j9\͡7d2֐$O Fd|Zf4vh)Z^yR5Gߴ# pNYjX/@s&t߿vpQᘌ?u= ņη8:Zfp'hky\zlDb8D݀r'`wBy~"U $DjQKwFÃ8Uud#Q[RUuk[t..@l=sIgp80\V%*iM Bzmd|ȤOh3a$&zsQD q# 3Mk-&:k4M\/(Y#+ϡ9ۚZ,[s:4f86\&uaZii`@z'vYC{B"R,"AT,d1Ćdb3!HYbr6%Y! J37i EĵZBe͸bwm`ؠa3PXe^U5mÕs%|!c_猩i+hI 5b)S?;8 63s{bK>ۆG'%2Exֈ躗z(Pa1ƣT iQ3:h4L0ZvbfJ-mx -34hOFN}d8*9Lw1T?cvHj*AZ +'EyiQ pm{8*xA;F.vW;jZJd):CK7VFmD/jmZF[>MHFf;</q#LH_}_ٸw'Vb͍^;]xԑ?܎ y~wqw:bm}8ta@.20aBqŽG,D' P?bhiwԉģk4O uЛOcю[g"e3λJƲ*ycGmSr[Pwrc1HOnK3[?(zmEbU&uZg-L1@pm߅Sqxq{_|:Ki{c&k^^|jZx!/yI$çs>Ff9`;bx:dzK€XԒe9.fzNLq'U}XÍ,QMN!iN'pڇ>qW!ThxY49M&Knpo rdQd^u :8*Qss5ΘL4euϋ:Ҍ, ;ŋ/h2t;սCEka]юi L蕣EIOSX51u䦘5kRxkmk.hI/޳sfgrxNm06z+_| }p!l8Y4MjNl;tPVkVQ.jw0cqrFFgA\6gTRxL< eY4(tLѵ% \N `.h4Q7rG $i9TSRQĵ41AF5( vێwB9 l wлoן}#| Q}7xX{2&ѿG:G3U‡j"#MR&`iC ޶QsBoZ=uCQaѯ+Y2Mmʨv`9%/o gO 'Fk3"q<|d~%@l1+LU6b'^GQʚZo{q>AlCZ v2sS;ol wb3ѻ73?|Oor/fHhU+{TEU&~]IYҏWN]U#.,Gv&(e&? &jraTHB He}K&jƺء"?_1xPfāS7x |Ĥ!z NlF&k:XgFBEvi iMe$}N8v[r&?裸'c}qۏ<>=.37|i>p)/a\}(jc߁7=z q%qӥ_?8?#^gsΙҡ>"J$WEktFЩ^Txn:YrWg?Zi8M1:D'>Sq!&S3*k6~SA RmR9 DO(z; O%Snrp5MDB>7wJUF-[GGGW#ķ/`kc; Ӳb !ѯEH UQPV*Q@`U_|XR.2+ FA>HM٦d9^m235Ҷc7b6LZ]_FePN\(=j~b82Y#.MR_?sb90&L)4(W62\ S+lz.@ 2/aJ^a&ym(7<ݣd ưWg0ϭƍ疖̸5Qhˈ`N#N ah%VJ"#aJ-4`"cQUb,+Q( 8|-PTUH&C6qDN> Fv4Nri)_leuXj̝z(ȴ5M;4pOFV8(o1eMIN27E9&(&ˇF̲.kEch@GQW*h幣AnS!h>0kxJd Ta^!ؘ̥7@NErvƠI,!'hV<= QCKr{r%,B7kGH9Z8 tldqZ˃(B2?Pa˷S _9ŠSE\ ,Hځc+Y:E,h/:5KLf[-p"Z:{jҊ8ϓLh9B:6F0ăt.UqR!T$Τ,='m}Dfe:g]OŋMx)k8zuv S$)l/)q/G`j J '7V0xTqr"m@n /BLηZJx;Ut<gLuDg#q;"]%q2PRG3 g;|]Eu#?i(R^N&C.,*eu|$䊅&fJZI(`L8P(4&5GďPZvLwzR.e hD:xLEt,'0=S顱TN3_~U)!Ft Bv"w]块GfPS=O/]aۦ^GYT]c$H*N4k9IڶHw`:2C\Mj I"2!}=!&zإ8_Kl`F?> @h $Z M5Sf4Bqi!B;}+pd䭭5cK@3H;fɍu ?W=K3B**֊mdm=TBr (҉نN;Hj*a3VGC.c:2A$h[a* FX"I%GRC˵3>"獌΀<&G,g(Wl?DvQF @&/ "d!ޙ[wZ) =>ah2s A#ͷ5 v$ J]EC`?JC0\&~Dݍ_ۺ,'( pt+{"6m/d%bĆU"Ke t#Gf-4(̟eV}%FR'2 mو?2 ж.%E@(;n%қbJg:K/?h#ŔMa =Z A1tegCg]D+({s-q*jhGN>(zb$x7`47$ T[`3A:܈֨:~*%7WrB. ABRErh+*A}SM[@NY& ]c%CK@ZS904QVMu\EK|w~sC0\&B oopU_ĺ)=QI~`Qrl^(g@u D(PRD$Nቧ},];t~.kƚ:'Q$20/kɍnQHN"NFsaC^WS Tu2daC0\V3HW^KOݩ>znSCxDۧSף+X)2l>قA_NؤtnfeTFn+Jt32ttզ5oD@|eA 3"Gz2[YG*.ƼE(MNt"s]V) "~,:J`p;1|N` *]'߯ RQ'b{зnGe_.˙/؎ C8Rmw~yyIxު PTi4xX^[m iҬjXِls`{84Ң 1,ȴ;3K Cj|t 4]koڧ-Oyx(GP5'{9RvR|- VF"d 3MҏY~!<[c'FI{Nl׮S!tPfdeX.in5\:S`Mb[l)}qp hrۉİO0mj:fpW?Hf TЧi #3e%w-,G4Z69~Ԝlh6krHRZLŃzEղ.ʒf:D9ȉԌS?;8 pQW5m>n:/~LN\rxC*!Lz⑏||9QEΩtaDKR:b:oƊ+UeUaDկ4mǎ":jۦ0-% [U^cRNf%h]F2к+-y #c$/`:ko!n&#T˱"u5 ۔LQ&dr9/ \ݵpRd:?"S Bo<œa+&a;`|=>ݱAo2~v/qČ _I冝M6!f5z#T~2v&mh(@JUƀLq7Jl`Vو5ߢ%pNO47 %@QݺLꮩθp<:uTe^QRKN^ 1G$es +q =cfS~:VXlÈ{ܵ &}<8ހ~5n\`sp'_S@0X6v{c֫5&cH?iyӡ{@0G]חV"1|Mmv3+e ݒ^Ykp|zrVL!Qh 8sٔ-IV mT[uC*BJ)2緊;nj:y1j1<`/^[,eH̷uU;45?TKX@?+?Qt3q]0g9e8pW33lr/OF1}XWbvY1a;1i7ֽ\ѸOZ킳Yގ'n9'y+l:yrqǮ#pJdF15h5H;/K"atc#)Ѯ4^Я)YX !8˽ IJrΥkBxNm'bU5{>Y[W8Ye"esd{0ǵ[2J~{`8n:\zR4&6Ma5= xWV2/"~E\s|g~"_Gc<+=x?_0~3|૧༑kœEg :sލn?Gnc^xM?eobrɻ0z#7!Y~%XW~x:ex_gpGǻnz>u=xqp UV/jQkWU . a zSu8zpIѕZeÇy&28aT:$I9U ֙muKWP.B{S~>lj0U5ՒhEU}Wl 4<66~~}<Ĥ!Sc!,ɷڱN(V{#M11mP/o,oۧ)dbI`U 4(۠sh%|T\Fs3&;VL(]3u~0={tfnYu[X"ky~{LgֺsvspC5zh6x_k =<?VS׽j{ٶO˸rODp>|Ff/龖 :7;h&!-֙Nd,$sN^O "j2Pl CwW!AJXAI-o5m UVBÑd<и#: U[nɆRh2UdGuԿT`SL KepaE&f}? +k{+]6fl ` [`<4Mu=F2nRWrgC҂ֵ0U74:7WmSg^O! b CaDksb!<ܠR >C]۩ ieWM'i)FJPw8% \q}DRcn@mJuMT\G $҃qQzѵMkT)}%#\l^ջ&V ֛^oi]8[ `5.==»5fl9w73<7Sk:/\~{/sq6[Ԯka-^ݍe*"]awn5f<{)lNy%"A0FjV ¢sԩa$5I"6c)&kpj-ƤsEWh,us*jA b3=CAY \C]Y9hѼHIPꨰy  8_ yKACϊh6߶m \2> b>{6*햙 'nK}v,o1nps'e _o/\=jiU}9S.-<Ǘ,Mo%;dȗ^{"|#c19F0CϿxdrꦯ#_#ѽ#Gqi'K<_XGtQhǷjy)2Qi,6@Q׳fAe!W`>nHzO i g*̠[}Cn]Vn.!˴f6@(9~GSI^Z7E 5[ս>ڍs(;P1/^ ݅ &".Xp[ܝ©eם9,'k6yzqq_\q-w '/x"_W+o֯|krX?5k.}so;}S7*|y+z-xЇqْ?zї8aGJK D|RV>ύe)VI3:/Nśa*!#,=b4jP>KP6[{sG5wH!^{-Ղ2Nbyf;`k#\$ҁEAR.!`mdٲezttt13]04z9-+V?XF?j*&." XUA4*&&[Sd}PTЂm`O! I}\׶`6t=kǿjc :"l#C;#w5߶V^]F]O}6G)߾R`b\\AM)#73&Q6b}db(|7G -W:K] F86B ig!!qi+N2b&A `Lȥ$c"B+WF!׉t (K#9H`o-7!0 f31~L2IK;h[ƀ:#pY3W(N-6Q4B"\nPueT|_D}~f N3CN-V 2:213<&VNvA(J,Y'sm W=8IU1 iVDbEqƨk' ^] s.f5<9 ih:8lL& "z,tLj2]+zMU*=UGtW$J2)WuHDh;3.sq{+ngtDDc,-AVA 8(W3K'Uf a$ ZHt郣oF_4G\;D tiSf"xKZAà]sMV[a2vAqA"|_ꔆpY(/?]$F-1F\Ȇ8yRE >-OdGQħzw&+YTf;e]WLȓ\c!e( \Di3B5EN+fOi,= #'`zsAàr̀tmi=!M pYmHc*U5U4a dJ~0McQ3\l_cX״XTg+/մq "Z+P/Qg $G5UQިsVIF|"2Oj G5A\B@` ToԆj8D$ϰpb~cHBgJ?j~-I=ܶ@]Klϻ 8:} 퐴*CA?[}a3d贅tuO< $VvOHFB.|[*b<#];Ɋqjjou:9hF/D>AC0\&p#AǴjU\elí LAv[zJQi[{i[>2V"yC;nn۲,-d(mV j1)KB$b|p\K^pScU pQ$RY'da6^jiTks _􀵋.p DpaCj(ܔpkoId#Ŏӥ(|"ˊx-`>+UPT9%o<^NPom1L n& ehíޣzpr6[ީB ms5L{UEv؞DhKeIQԇ\HtUyhX8ܾ pYmE~KdZTpnTE$lS T٢]RCbT؜%8ItËsƞ;Z/&tpay2r^> iFo@T։Nf/dF%kUԱT{G:Y5RtX[ q*nRr=Rqu0.xQF`)3~1uC߄ rJVA*Кh[o0e]DDd X=;6R_:1)ҧv5WCF&Zi)2wXrҞ S}LTlc-c+⮠ؚFھiɊH"P&[pYё8EhGѢ۠&9+ AFTHˌw@_@1V\7lҹ40fM~'ŬP V.heF>\Z  t[˄+ gL;ZPe-˨'[j"(\ t;t.:2A@!$3l0z.'h0|$ D9h H,PٮPb%Ж (cൃ*@v: iA4V}Z;:oe ۴%&#hZa8N50B (qvQMM,;C7کM{O( L6Ux fs!0U`\kQ}>:Lߏ.\VAGB4Q [hTJoht Ybvdԉ l@pB : m ͵)&wl 2nHHwyQ퇅}0Ъ+Yi!P";?W \Т@[p@e{9\nyWY97¤WL3v"{|_c^;z.mzO>kC-6hkE@X\s!1mեv166_sR^{6T=R+ii'G2J TO-> B~whk~nU4%5Mت z5&4:6pIJeޢE$l&OO~?l>L?ovvw<μ2U8k &~80yQL0|?x O8ix(l7h1<~v`ɘttBgR`Wk^%8Sʼn35?yØRaF\EvsHOt69h4:nh[ @" hU RD4_"G].et<ltSGGܔ s#TY͖Doׄ2KǔjC\VAԽh :l&;PzDQ?+jd~&@={pa6k&[s;{ĭԆO,[Xt8gq'Fz8s pۃsq?!z 9ߺy1,Yt&NZp ^8JоVեifp5C0NE]7r*V:WHӕ@^sTi,JՌFa2XJ m5C/饳U UtoYd s^= k6Q:խ,k/XPhYeee0!lZLXV ¿zDY+z.B^ q_M!Lh})r*XލXL[/7 M;6QPVJ nFxa:a"N5jz۟ ףILru/$0Aw=94kCz/uFFNEi>Ja<.}g G)JBSm*\*ac%gb> ~r;߷[8_O/Ƿ.ew?43|=}ʅŸsp/m/yķq4/o|:o y,ޏW}aXh{-C+^Z2x0kGYY3ʵݼ_xnTKVC]wVld'MS{aRD.&}y#!7}})QǑd"ܠe D2br [[):DA-QBuͻJE{f bHN\4inb:ɟKlx#Vߺ³ i;\l:5{VUrSFS(EFJ3}'Ϡv@RAt}(Fܿ+wTuFZ 7ׅo"V)ըF6H3 jTu2 b* Ϲϸz[S~juXvŴӹqr1=)7RS@ex,ۧ@{]g]8nN+"XieE (; Q'VQ@  ?uFF[O=pLBk&G"7[Ǣfi k JԹ(K3[iC B'U[x-c eQĄsma&BMjQoZƗ=DVֱ_URj@JKMѠ: 'jUOuQJyP\͸(HL=@hDW8 4[@@2BF0w1>RRN'{tdSp$ wee8/i!٧ ݿMNu <\VE!f4H0e7EL`֔ TvWB28C2ѷbri6Vڈsx&Prз賁N!p-RCTdsJXgeK?kAiמIpL:cQkrAZG3;{!][(S7X]׎,c#`gAP`dC0\&bhԘLzp$,kmՂ pz`AԦ(CAkF\w(cY$ugH05R mE|95M2M ة62Gjt>V8L,="Ax7 Õ-UAY5x~ v}:o He$ڮ`0 . JT6!;Uß*n|RbWuLBgg El x3HEY5b1Π9 !VUQ׹L#N#咎M7w6}w@l5v76=*QFVEr Gg1(#ecM6eiՀD:pc8L4؂;*;hAQ%bE\U}9_3Þ^>u `viG_2#ap 7i,QޠVn;q?Dյ%6,. @,LDjO pn!EQ7ѣ759YdU3FO!<3f#.̫4=t4/DMAMVsi$NM tѱc F!TT4Lߋ bN;2zi?@* _g@_3:Z{fNYD>;t? `$nad!Ss/wڹJW;XBT|7l%|md,L B,^:44){u2i)aYTv")^ # ?2VXhH8)|XTwPф~W栗UܾZ58#4 Tu:Ëh7g&4JGj,zһY,?tc+i57AS>O%k‘yLZEn;uT'N+d~dvqam¾|_u]j"r̠؎;Eה]d4w Q !2Y(ȸR{-AuPhel ߂h k-o~x%M@;"HI,#D8mk!O$1U9Q!JaZZCtmiZ7QJے"D:.v ,xlRiek-:)IcS,YfQ{R3~~)N%2}g Y?!p.M5?lADPq4]]^ S:䩙stE( Sx m߿ zVSh~pGyNոpW߃K{yLA/>/v?<?^y~vpG[Nt:܃]_ǿGo{?}{F\t#$팛q}ۮŅn:v;V^āo. wuyM!ioiEw+;w\o; XYD= f6(&ק`iUvEW~mSǰek4WpԙAI0\:cB}ED'#jo{K&kpbRgbף-imJ~bOO~?l>L?ovvw<μ2U8k &~80yQL0|?sTO8ix(l7h3~ciÎ/w9S'c҆ӱa pooy8E3'/8l:oC'kb)ӱfc֜]߻ luG ~ q8buՖ9)? ǗS[b-p;:K"Uxc Zo6len( ] A"1&D30 /]4 A3LKM lrQ+>t *J?Lx4'"e[-uJr/܄}Y3ۚأ߀'~p%n]IO,[Xt8gq'}8s pۃsq?㑼z 9ߺy1,Yt&NZp 2#߻ ?@-12C[cqx_k~~1zaxÚ-^wG.n|wѦCwY~vЩ(9Ai)HL=8UwʫQ1Բ ?L_t\yRuhG}*Uˠ0>DF;:c!s]]`ՙOɸgj϶3B̡:b#~e{iȕ4pCi[-YS0zKlsEe!3FWtN%t.1~ǫA(bNrNU>Z>1fϚ\b3SK)#O y LY8jpn.Ws?noĔzNLq'.~a`9u4в=%x=#zո88ɳfa_WnbCvŊ^[_\{^{0ڦO]%z h1N\d)H"LS MU`g9+Y_Yv~'L>w28mYdREEHjwxd Kv}:K%4PV9j[~{5q /7R!tLMZL'GvPfs MXj,WBxzNOx\?I/E 8Mã<Kk0FFJɒv`e6 G(ԩ@`r8gteґ;3E`;:'Z՗X@ۈ Uh6[gI]_Z܏߮?3j3"G'D,*F2n`Ƽ't0Ei{aSt[y1Ǻ J;\UxpԂ,Po".yyl{ݔ7?$פjZjbΟ_t 5RHkTS!'R0N&!fDکqWQ-ڊԩ o<y՝K)!hN⧸߱td ouxo0!M0p7aM8ŻpbýTTp}O.»5fl9@Y[ogyOo2SהuV!/[_s/}lɳ/&W8=ypWߔA?q>[;oZx!+·bWJ;ZPΝ6I[Ƞldp,#{l97(ZDe{Λ4y,3PmdL8NXv5)L\UQ'E89on|RGS6F5 ?*!t8ˆԽPco--c~Ne3MIQc=O=}0wxpٟĹ_'o 7|i>7wE;x}tO_x#Ò?-N;޽vę'|w{4a5^o{O:/ZG,%K_O\ppٌ+{#QÙͣx䑧1r<#3֜C66Ml#Xcwz.p۷,,9F}BnB.}rx'C>}̂} XGY;.眤.ٱ FY uMڦ$d2 Jm4fEU9P: $#ga.QkE^jdbv>9YA}dN;1J=t=/¸j'F%'>Dg扸W : 9?km%vN\wS'k6yx=ú^e=ͮSlv\pp p./}(5VY=rOkbfs߿z{>ü植0c |=6v[pw~}~([}DbdO~ͤdWkKw!{o\3;cm QWNVoW]v2.E~너i6eC4NX2_&hRK|ir4 +9jdglD;]Bgj9DNO@HUzL9u1FuŧS'luF'*BbUæf; ,Ӎ>o*kV Ǖcc6r:<5-c3$P Y{M ``\+Aw1@PԊ\D*N7޸ov65J)MCJxp7 \%amCE;='ML t*[iP!5  4 ӧ1(3D ڮ.3"$~ KƯ-cwGcI@\gY|zՐ n>n鳁#s&+kaO hozh)1h}޷*]^!t|OTT8P3zڜj[UaSVs[{w?Tz ķ^Jˮ֫,.H7$TFcZ9.|)):8FGĥa CX8S˰)jF?XQ3H5mkYB\ģU飶"WVͪqy ,6t&KĊk€fCftݍ̡sƸAw]+ZHpG#TήZ P$$@B EE&B/V =ExS>TT|O:"ŀ4AH'Az$*g].;:;fʷ>;unЪhhi6(1gbyшᕺ:>\-An+",A]17 f(Vnd& gNsT /m,I!CPy~ 5A&:QS@pL Lt`(%J^͛~{6p_QH  @oaK O[&FZQp۠U""$y<+FL`A7/2҄PNEZ \C,S S1@n.sz}& qX*kԼje^O:Bgݸ+JZdt^ˁõ{כ h6Jz"LB?M5ؐjӅz.cܙqcȝrx? J7:@z4o.Y d M!3@UwRPư"Ur;sLɐ:olySxCOx}`e'RaqG 0.4q<;Xjm ĘuPF4ؘ8,*>]Tg[|_v Ofقm[>":7|=CG}ZZd" ErjS5, dɪ?GA%^arJ 2h#]̚3]vcV} i4l38~Y;dVW;<}Ww'U7(.\S%9ZҨWrŽ \o;rҊ{YNh,8f] B}nG)1xDC%89odt1;'ma#&dm5g/_\1LI"5I18S}[QH73sqrnE S}/7W`Z?jEIBcóMx m+fX,)UYxڰKQE`!JU霳qJ Nf2z(^ BEg,q ؿprE-#1p-hF6z"f]$~6nI sXSq^8pԩw·;q=임f%R<ѕEι#(KL38q5?Z9g+!%<L/2 &Lo/ejkM @K9VGN,?F8b4\ҰL6YΜxMUP K0F%}vG]d2!C%25%,1=(U&QY״U~Ѵ-K=Y[rEYDN r[8(DF}vg MeeLFx9jxL9\3X#])s C%za":ː){5Kg .yS *P~mHb-7E03nOIҠrBQ6i=R 췬j5tleaYZD8>1]qѳ:?uCB# X4_/%ύ#p"y5dSg,3 bɔLKʠbLg\a"؂ڗ)b>"kppF sV (til![lUG%xv?msE25ʆ4Fg,̃LA@YqXSM,OYnP /z.AR dezL6kTSM@P΀S#(1@,Y1'g6^XՊ'؝7eNkCE!/!?ٟe41s*Kn?(wg $o%QD }nzbCp͢AqFHJ JX9~sy&2KD*E!.J(EIE Q=co@ZEKQ\TlbO{9.%O>vpY5˺ nJ]ˈ.^xhζ*LYLf!D7XcZ#":;Ih|hfYڿ+ы/ɺďʞZ*CVf4ųq _n$qfKLzgb G\-| XpHWRO[W,Eb UbX4UH 8%+cx.5>KKðZe^dd2 痃itA;jϭs ryrPhRA5B86 #_qjLjf#zk bR_(ATtEAVԦĩ(`AṆd5T]Bq/+0 zdRL@5";{cRCַeQ$PcdsRdi+rCVS9"9?QJPc+) n6#qg?uj T-6;0ӊ%ė)SbY}<0L<<=Rk; :uq>5cZ˭<; 3;KhDMafS/gȿ]] 4# d~umğʊrMa"qHP;L(qRWq_^*zfsO!G==nw+8~^;[-n'8&?*!>[˿.Wx,|uaߏWhe?9>/9x58&]{gq>s=O|'פ K/э2B wD sN4eG "9`"eYSFۘd Ҳ_?>wTE4#]2ݧq"9v&>:t90Q[}U֊S!D+Q>O +^%y{|ߋx]6ekɱ׿ wo#՟'v_]5J ~Oy[ѿ# ZwK<Ƿ÷/,9 8 z!1~ Cɟŝ&>q Q,k@$pZ{ƶ̴z#Ed&(^TV`{u07A⥭kP]w ˄3쎸MbŬ}ϳڳHVR$ G*G(ښpbY4>=Yґq*Y;_,vsMf:=&$S˖VS뢴@A39$tc~ՙY c6[o[ZhOfNCᯓgbek%߅wAyx'YL7//ϷܼyXp+K67:jU<4VZk$,6zPWg-p(EFڡ__G_]v B2g`yp TFwўz+SlJ+9IC_AaO6^$~S3&XnߴGt Yl0u@:: q:Ú+JRK)z^dxcd´4#O3&J@E]r TU<4#pLD|kM'mS7'mxWn:zɘ0y#|~|̯K iw }9Vb;gላūeiKqpzSaݏEtJ8 pؤo5;v:R,a ۞KmǍXh\4d S LnMtƈF ׭#Xx*Vf;|"½U|VjB,: "p$\(\cV.bVk I:Y9.9\ۤ4SZMeeؖjbZd?MٙғQ+h8u&V:? .j.EI;3=4Erp`42}Sf|3<#{V˗J+.b9HS[_Nȋuض; FLDNp 20FFu(fRGhZFԞSEŢ"eRsJ, %)dmk[\TRdsn,LPq `"rv(c7Y}^#3gޟ'N *IO?|HO?=#XΈU=,edZ " =-K5wGlA9+ tkV 4^Rp#H} "k (mL  {ktu9[0:\L aN(H#M*hZh!YK"Te4 ׃ 2 )ca` F5 6lX6Vu")"\14BFAxm{h):ua bS:f{j0Ҍݐ P8h#\Q Q9Ht&@#k =g36Wp2!se,(]!"* Xau ]h9ҘooľS.}_$A' V$ҖA/d0vH7ض exӱ1ۍbƨ9fO^}z'qtz6w/`#Bm7LЖ3&JDHCA^P*&+":jˊPl=w47jLa?h;߲#- ;XizˈrFk:hʁlke!J%at萖~B5 Ǩ+| X騆AOLCi@-qC`}1'ףd!]XI7X1\s,L_c/x͆Dv"o`} Ol,#*xdFc ErY,]` @o>K̢K=kEE8SvgXJ-oQbY'[8gf4:.mЎ&<jr4w3AZ%'Xn ar*J/)Z|@*hf!`7؂y t6|_0[xrAi!9d, {%f:vE/i r"tiJӴf dxk-UeKEDmte seB@LDQo'}u"wR-T>M7:ʸ-c[_U6+``$l8`"yckT3(3]O^n`8eL^?QAa 3IoAQ鶚2__uX͸HU4 hCa[P0{ZHfb{))Xtz {EN:vǨNz_$i`$ȷa$F;/&9-Eb*YX nV( *#L[pfZD70KLA3MUMGz w bX(6Y:[|q3w\;BMX} Y6AVDOmmd'dElkʴ #e*g :׳Cj=^1:3فڨߴmq.g$&pfa-L[͎꠱-#nc3T/1!*Ph['f"nN($DeMWP\

q2a^MSJ'x^|,8e޾kKK4lnx$쿷㖺Ϧ@YQ/~/a _Li&|W :\hR LۮXX'A(HO>?+Cty-Sxmkbh ִe[= RT$1Y> :4ڊygn3s>#ްo*jٗ ƬXA+^81a4pa [{]aI;9Fq`jpw*^g<S[?}xC(}hʚZԣ;1sdYLqi2tJUgV} l-"Y]@Ɛ/A:~߫VbS,;f2۩zdsu-V{9˶7j ԕqiL6Ǎc$ $;g Қ Q[OZ3.F`np\ ӔxpfevG1q!fVņ_~yg7i^v26'p&v]v=} o3X0[|D\x,{bXfհGN} fIg0MA;'~H-B^ti~ A*u!/`k X'!ط?7 i+jbmd*i E~H$0"q2 aٮ9O#m[PPU[>lݓ 8Zx\{iV)ckΩ0ED,t <# 1ݠï6$[TД>[MjȨ2tq}Ͻ/h~ON;gv87Xt-G]8~>8]q.Gkisw6;#{Oν|Gˢ=Dž~s}s/"_r =.PM7r0bQ0ƴ9ݶ삔%]Dxoy4 rGmΈq*+HlDZE 2J8)[^;K_7b-s\K=,k`!!RRRVI}9(6g&Aܰ2J$wG³q+Flcjn79r0"&o7>Xp=X vi8qwS&aҔw}\71\|XCm`հGOmn~v8=΄~_{w?[:DTbiE)]X뗝5%J yKy&a!hȅf$q[`tpNL]^mbm #\ѳ N'(̢U1lNHX(;4vKjn@`La*;|S@5J-ɸ"k95fîe&{0}kq κ*9"MGwN[kLǔ֘ ZװM߿s>&ȋտ>6Xe̛2<α>,M`ܼyX)1qbwu+^}9}wZcMT)G7)U?/&"+@2 \xCwK%P>';UH"g61~T,<+}zF"25@ e0G AR N f h$TL E )Aْ 33nێVkolm$Χ hmf !4* =гr&Q}OY}'}F^o0r[K Өbq z^83Xv^YdO𝚐&B+`}v<Bes4@ow^,4t]W7UpgYF+ll&c B;q#03~t]@h4ׄ aAm#5`.Q ?CT<1dʁМeqr{$㪋pqșYHϳν9sxԞ+ETΊ><* ʹTL:VYʬN;T馅ݵS5 #[z psU䋀,鑎 螅PF5N'r2Y^#Vaj S##R{9JY#x Xxh?1`zS Eăh) )4_^}I~:"2*3ҙ٣o#ՄSX[{}Œ+R Cgq=[ A,l1J7x##|n.z!NLe 1gKtzʵeY5teMKWѾTs \g_G"{:M\;=\9RO> K/Cع8:O.%.b ,o<HKa)z_t=T'ӭϧ/i6{}}-zIkn,.;DrS(&-k'UVd?J C3yd̥ u!l`k@@o1Ɵan[.( 5-n^DR"0 U KF؆!38ðQ_>+!mEA I[2B:؂N\ ZbJM[IePOdlaZfxF!CFwkZAgkrVqz6Ƣ;iJUӄRd1Hd9^[F„'se(MM$`ˬ K 70<.@"n_2m.)aSCR31pN1RWF vab?k }P ,T#ϽE I);E@'J"`NSB&˸}i+Eِ C!^}.uy!=e  뜲eg՛-#ha{f"fa`m؟۟UUӔ-&Ĺ5ضP0.~[Ķ}"JyBEFSM,(D9֜BTL |-ۂsQI25| "Gi< U` C  d=[F;^deh?fm3D$ߪh;Yx]A4+hXza֨T(iNu&nD,V#Įw{-"`Ƣٵ$ZZ7`f-̓k S'yc$΃tPޗ!ǮC0w:زz)KO_Ay̝dϻ hA5PU7xIDMeR],FO|Du D6JaCRk_om}0vűxn]js|j0#xY(K7/M&TUdJ'΁e((c(U CTجHi^^p)d_d3-\k;dVd⨽s[Lg-Z+u{e$DTWb{0`B;U5 KѠ$R"]9涅P=oQY;fi?Թlw:W26e?3.0 ??j|;cS0zo{Q7}7ǟ|;-YX~nw80 \iW2RUlZq@{ԕ2VƆxwFu2""4S*"NAi)!x ht]g(:F~]33!m -0 ̧~)A;ۘTBosK,Ѕ8t98FL3Y6ssN`Xf98cW_,̿xۏĺ팟,LJᤙKc {,Bgš̓xfƏ]ט> FO.x<?vˮߴ'/Q7*-%Ǯ[Sz-\O_ 0&L</n=|]lpwzae'cODKMSb:eqŖO2}/3뮄as)d6~7|'aV¸1yqu }zcڕAQ-4mVB+(OR;"X!#[SK|14L!SXL.SI2#CS}J vdy䆔t7! ͳPetDެZ5祴Ìe:U4!J'h:+V\+j66V ^e;ሟ\{W~q޳-cwr煘'zK`Ư#O4.{5~ݰʣ҃ZtNooZt}"]#ON;gv87Xt-s]x=R59r:n9 }ڵ8ȹ{7`[ρɓتrIJ5ø6~o;»FWW`,6l;c,?'6ۃdw1n\4gI9a.aQ\Ǝr=v;[ G69[NISf9?}rgL{(fW g]  bœ٩a6+O\3f9\ިmyw+]8078{S.f"xs=ْ1xB։f= "tBvhڪcP> tpJ'PqT62wpDXYRzmG} ?mk|섋q e6{yXwy+yqtLiqRcװhH<3"?x?0_S,#A:cG1_vP%' />򤡅6cu#j6೎3楅uQyT2$u@YT$vjuH\H>ep9my0BjN2 #Ik(q ű+fr`+3~\3.\9:1ڦ {HEmxQɈwf4R¯~xjO;nxSe7g?sGHjlpX98EqmV\_ _%6{7n:ܲ6nCzMp0s`T>~,I1}t->~vW_,L#Q`榯/Cv`mswm tL؇'϶sq)W{mG~q$:OV~z:Q<÷ᮧ$V\iĀ.ڷNM/o_@o%+avO܏9ߗ{bwwog$8\wx*cɖodŰĢ K,_&{l4mX'Mh';-^VNo߿YWĔmo}2N9hMa?_\|x)Xtqιpl؛p7c:MöG܅S!t|SqZӡO!>HetBe+ o:umk21G Җifb CsrZu.k*+[KjӑAAX;[c~Rkd)qݽ߆2!ВcL&bHDw[(U$ɵDY3<#o[?Ft41j`܎cf  ⷗ϲU* %cg_G:ҧŲ4捭9<̠jB-h̪@iX`@.j Zqǐ|&,2083sSb2ysקiP+h+t2D f0;"}E-2e"rhved;fq(v"DoL}_K?ϞҌ̗O@:_ERNpuAk#) rs~:-{m2usex:.Us@=J;Dnq:Z hظۋ~T2 R.( Y'+a]4MWZ-m'RנS>İZ1݁cLj q1.phrx~[, b\nrqM?uKLԮU_[,lm?%555q87ut 4l3#^QDz}-?nxW( L@0[_У6+P {Qi:c'fkB]Y[*5B35h&त:)N$ ۓ,[s|`Ls99 d922SWj@"UaZ(۽ 6PzV/'-0( 3jq /h&z+Ҷ)#bZ+ڴ1T3ZhL!g>~j3s^gSAH)ꎪ>'ѿ3s]7zEV;_hړSÅVvETٶv926a ?k m);C!6"=悘2l6BKLH 壸VĢϵd"FQ_X`vHղ¶hjs>ePra:wcP3k fe(%T=V >aAޱ:޹[خ.+ l+l6P{\-z0dS j](e!E8B ?!eEܥd`ъYLQ ,41\E c'u9'+2fXvLqs\fd!pa]$KL~@}}j턇Q x8ldSP}W)ew.s~SajRem8g}gyz˿|QrF9i'K`1d TEj&*!FMTQm&qp՛ʍkSU6Um+U1T0p/  Y<-"5/WV u]16.(LRg1)%Ik$U֡&m׆6}L=f@EujjUQ#b;߂z0DxŮy /e{nޠ:܋Za[/qelT }c =~ Aۼ*u^+U/]Pu8 ZS;3W-sc.mY 2)ΙH`JGe{Uip;]9['Z{x grEt< 1T00a„-C cQ$OY4sP0]#)NҐ3N`pIpfeYW$y Ki2YjY_6FZ<Pm c*9MKD [^T'6KkGvdV ;頣`V 5u$wuYTmvuU&\MD{@o5RNaiN6uˢq5(klڼ`"",! KkGeu!\Ao2id6c+cV"0%kfx+T$ZX:6מY][0z`\ ֙QVRݓ|S55-Z们clz ˅NjGK2cʤ=K6BBai5D_V~PG,Z%#? m؎ܐSWř 5?2Ф("°H!*r-)=B!*C1=1~"[ bxDHa& Uh~4c|@N (WԵ]l)p1B5Ese/d.^ѵY8g_`-@JA-C1l(fm5 07@'t 4hT?˺/9' D!,b żQ!/7 ƾʠ *)*Wp"N=0\mƠvFv_I2Cj hTa`EݛPc\>?r1fCW2Σ1cűG᎞*;w>qgɻDb/nOꙂ&VWd!"pxlT]-L -L] BɄ,1滑A5ӡɷg`$eXqbBą\wNP+8j[5%˺eWq9{FF9 `O} |?2&Kp/Gy3ugۻZz)x_߽a4-&g,n |ȘmlD.?\1VYKEkQ|>.3t aq4`=m+F{ܵz33:;AsMo$91cʫ6}1|sHt߉5WZk z߅gaS׾dx&IYŕ\ze׵ &_ƽg] c;>mkbqN8g+ܳvLIJ&`V 9ɓqcxXZ%y9ʀ. 0R)⦗)D <q$T-"xMCj ODX 6i2PlyH)3 yO 9KZ8f߂՝+ }5s4qdO3Sk2; !P3p: H+_~ v|7nA{{^e kawĄ3LcOLl\!_,\1io>5TzCº\݁9GNǭ}?>1g6G)zq9G^x~ΧQߌGahHw>mx$->< 1ይMKÒnsnҊ3F'7@IH& z q6ݰnJu-S̰ޜu9QaǕNXh1ڃzJ݊ZZ\r;ꬸ.KaE N.sIvDƙ] r^.9T{R + qk-w c3Fx6ŚѿڻߎcC%cŢ+.oXKp_6;-ξ)}[\zX{=#,I˰OWw'o}t t.~ ߃/l0ipQ{y#'_ Oo _[.y׼Re/wHVm%CM) ٯjIO{v ?I ӓK;K@^Ɗ)h[ i(|_zOkdidMOaHN@:kw\©]vmt‹ۈ"p|4rO^PmzJxX*tД2"<}s2"'N)XozX:+,ꟌM +~<+eV`ͧYcݩc)kao@V{˼w/ ą*K. 7*}ߍp9㑲;ޅgEo?bX{tr7X`[`cq~)1ZWg/X y3c׿u 'j̥֨FnEt@$"}w8M^sM(;j&5bxO{85YL`jC), 9S~,Ņn56ܵGD4W͔݉`̘e]sYǡs߁ ;nslq[aZȅ]\f~y{,ǚoꊻ-&λs{@T1vZ;_Lo1QpbˌKL?o|wc6vCD8f*sb-OH);=!S~{y7/.Ʃ=THT&DM UzSi^;iL6K$ QGUB*)t4% Q%)Āwpo?k>)b?T:S]c K×)Sj }#n~Ng~Df޻`_uL~tzrcmtv,ΩX{-/aBL>sڪX1%;mik L[x`ܤI։Xno2k&:蠡Eh4ZgezI_iR:h*#z+i6˃c/fS;cpv9Eʅ!٫ f@oR(ќ\&h)Z!qߪi~rryqSPe;th7ZgOVknfS(dW~J hdtZ1_xR޹f-}~t•xvqݼc;o{~h7/>lw 8zxq} ;'V}_;]2M W/namL޺X+ tїd:6yMmV/ 0Qhˮ#dG jeJqla6"1Meձ<Cw)[ssjbpn~# R cfs ϺFS2Np-ݪ;X&3.LSvŷ?.e VZyMӷ$~uxm, 5s?hT֣p7c:MöG܅Sq?&6yo`\mßal9} rͳuLjYx tI 0z7CEXKG R`Nku5N22 98".r-̵:؇2Ύ[JtZ'uif“:*NLVDMí*!\7WŲ1Ld3qP75MMDG;}gP1ڑrX|ou?+ҐW)sylXb2Sds Y䢾/=j7ѭ5#q .% -3dz0i$;1=_+=_*)r[sKckTBZq:+v,]e3.JJx$] -XJܰZ|/>C}7C\{_hGhFx'`RX}l;f RᔴQ: G{"; $) i8.DfN =4S:h4b2scVƿ,x`9If sՍci_n($D35pDZ[ϔ8:]K ^s50+?6ճ#ʁK1~dJ8"6)=:eOqr]&Pn5mտ}tx<ۥe2sOu +T; D7DնV8CQwޝkb;5i3o \=C:Rx /5`o@zbD)U v%I+Cfag&Q$h4yɥLg_iF}ٻ8+{.,Tw]QQT5l clA#50[,_!EBAf?{{o]M{_9 a3ztĩc0I Y㠏\ ( @u؏$V|4 nLլMm;o,cu_z+[Z yR&3Q@BQd:FXg~sc./'1Lcj;ĚmIO4"ZN֦ 9*oNA"l#pXt!vB ױ'2z +uS9Q(a斔p2cڌUC>0bW-_s:.k3R֮ B( Uɬ#MRDp`|7`09>nO/^S;-t+y "t1ef!9^ $e Re R2|._˞q_FABgIuQ)!IǏOIzԂ1!NQ/+h94rFp߿M<+А+209EL=!ҊCzʤI&IL!N!ѳʱAp6X`ڐ سBjCdK{_U/׊+PRz_NNI)z釂9ο 9&%V5zQ-j)Ҫb-D&L|).3"\ω}'%plgL8䬂 uY ʨ9d8OwpTJӀ=37 MMg [~$/3ުA' R-pQunwH6cΫ\m-g~{sߢe溺jSc; [h"&Ipؾ px{i<Ķ9ncn'[.|u/y^(r\2`L| :iﺛ#gud/S:[Eሒ0/ pIY7}ii yZֳ.)ऊ!QbݺuL褦v-3Z55pZ?|Ԅ ';u:fu i_#C/k%j<(Y &1|8~h](I#EcwFڔ>,,X(W1jm$Z/ hH/pRqSKNu ҂%2K];y)bA-2g [rmV(^*MHRR5ByS.ÙjX6P1Vf-EaDTIHZ76QD;+'4VT%:"}hrpPTڬxzt} I']#_VX:,&1"1c Sk2UCRhd@jҤk af$q%M\4/o02[+W35¨ -7E']?Tc%.<Дi!1@/kDl؉~ q$%YW1rM2࠴xJpv6{Q+[uXcfwp'ls}]k_bꇫ;avCAgs5M>^'-Wc0U^BoWDv㢇g`UU8x*j]ۧ+QѺ:=tkm^ݱcG=Ʋe+G?)fЪU+nݚ.3 dZT1@/8*~-%#G' VPU0gIhc`LHFA0 I|/6lMND͌#j G/,Ki 8 r { >u}>>W;=GoF*>sxEoEBt8?]'|LKΊ;<{130oCmqخg|̿0cU2*j::Ϝq/'}sō02x]3pFw!X q_}:~u~;l$c*?@x0`^eN6n-l5ZlɆh_1 RϷpnjb/S#9Z D1 g4^pUTlTx#(2\mF޽$p AR tyo*) qF]ݞl >h_l]^14L`σ =zגFƣFBqYg1cPGXR~Wb_uo?ۏ(HlQL,eHpD_6<1wa[tЅ$Q#&6O[ mH"zNTsdv}IVHf&o_9Nݜ?vK2,~/!.T/SͪÈ3:U%sv ?_wPN8M_/-釣Tnckƌi_jtxEylXToӶ㧏?\kSD)vO{]8׽gd)bkVl_cʧvpK-rlhWQUNIg |6k!ZVBfQ[b|tV+גnݺaذa F0Fg($DkZUFƄҺ@iX= OL&n1Zx1B޺Z"m燴im7 į5$>kp:ִdAG~ptN,%2+*VN_nUGT o4F?4x 5} X8e݄k B>_W8 mѱs?Ee VLCSt3/839ѫxّdT+BT<|.}vqR0iwo`0pc08k^ ?œW틓X vr7g]b>|3o>6L ]ǝ{8j1fs?{Ou?$E :/s%n s##q ƍiӦaLofѐ:FEVhӦJJ2:YI)#Ӏ Eo |تK:{a\-?o,ƹs ;[g/ݻ &wo vt&x|vݭ9O2;6<; xiاgl=i?x}ѹrO\3R3gnf<(++/j.@e 'y&P[(ڭ-·-Tm(Ϝɉi!<Ⱦ9SQ1ᚴCw*N9!NNL*Ciuu*S_#7p`Sh͵vX-nq?h`p0ä)Oân?>:tP-^}B.ż71e$n~.5i(J~+i;ާs#ti* O[McR+V' imYg CYsD L둵̤-n`Ssfh/Ԃ;ʁ1jE/'UQc)ɵDAvNqb':s 2L^{pfu d?<Ӻu.缎.݋(zFME0/ =Td_jM*X_`JW iA3*R +I;~ֱ6u1 e,w$sm&^H7*6(Cz)v;fNS6<O-9%9/&oFmޢe ,^^.(闺$4UaP'uIOB̒>4-qH' ozq/[lM@f|IL>Ek6Q]$p Haˊh0PA#u8 !(Sʿlu 0y&I#4obOvkjjPBuEKC a ϫM"^@BDY2?vbm_Q̦K뭏10Q nXE(ӏrb :oljj7 (XMT=xEacXLmL2a!}:gVkklтe2r1{J(' wLg4Ө7p5#8JR":5xq܆*t%f䤲ɺi-4C&8V'ƽՎ g(DQ'r$4Ptt_)YgF_YQB>2lϝ@7ی[FJ\ZVXT[(gX8p f6u-z'aC:6Q?*KcA3;Zu;"t#i^drhu`yej>H*ia@(\#aЬysYr9Y1ǥY/z"#"2Qv݊g8/ ׾Z!IVfIB5B JiZ "QM%13P,VH&\fhClïGaȰW⺬ Lys%\'VAhtDhx8(iQ"`f +K7d+*T;IP.GevO|AvPx& sqQnZVbFr:O)lM) ؜=; 7>f0pňXW\#! 9lE~1GZ޴)a5CKt!ڳ'lSU=q%O4{ l4LMh%x3S<0to{+nǰ}}e%;=<2^ر#F3)lq߇F6j cEk_,~2,w̨HrZ?#G`M+P(CaDQ[0N:fYt>+E[ -+2̰R+A,By؉2$mLiT <{|8?Q | /T'Q1kLi(0>"zWnq0楏Kנԫq/L;ww Ǎ7c9A?sLiGq䕙:1` :tU~%;*=~l@FeM-a9Gf.N{h"G;z(KQjޫk޿<¨<񇽡֞,WuZTdĈ;vl MQP6 Zղt?" c!AqKCe2n rތM|v*.IDmSP*;xyITw ^uzL OFV C=|vrgHaStz_9xm*O?}j|o6K-XlMJlТƿ[n6l?'>Xb82w/<8I@u u O ՓF\fA0؆t:d (VO#YJf$%]I8Y' u x=H㯹.[+($Hݾ _P4q|ìȇ'ju_.N-q)c/%&2 Y-*<=h. Y1H%4i %!/ZSJ.Ez:G]n1`MxخloR~]'+]uƑp +ekcCu~ŋћ Dy,}~iA[MBH~4a3 /F&Q1haꁩˍD4RWf=wy^}Ux@ٓ/ui{lѢ .¶ )#&!sȸ#j.TlegZc%P 5T&-Y|!0#Y"[#e >3 ,(KC֢@0FMiT 15G¢p\bZb>"~mX-n:e [3~?QCp0"bG^^:`k7J,?>}=PX ~3@ɐX(>z-&#-bg=-4 I=KrMku;@[>u=G|>sH`=/ Nj d+[pQ~aEۺ.;EZTVɧ s3-4i-'Zet.a!a*ԀĖw6[9 OZ:|?įxbq~Qd+["FFp6W):t"jQ=Nsp-1m!6n=<<^)b;Ғ @S\W4c͸LexL/:zPtƳ^Cq2l5_B*1Xb"O[6G>@K-t& b(%ns2VF҄Ӷ']JMϺ`1h)iS3ͱ2,$8(VG_Ǻdf5JINV_>f/~nξД ҕr4" =jwX짞-F,C$!2)a=MBN[Aõ\wD 2ZOaaF$ibJ:p = "B$q설:XA@ ]WvkK3OTb>3 ǕlWz!Btbp՘۶GG*4s^7 V7^P$Z!Ծrہ漤jXsS5EfuE! A/%:37K<f0-x3$G:B277ugEMWǿdIBޮܸyzT Me$ FL>riM#AR.I8Yr9leAfqb]Ez?<4$E̩6'8;eJ C([)>ṏG-嘈e $4E]";g << ʂb^C9 !Y|)z켢Rb;*u9ce [ ~h!w p ZNʞ>}1\[%ha(XnYsTQ~</EwmIXb?)foiF6" M6P^;ωF V2i`pt^&#!fD=~QmB6'i$ÿBoo8`VGtNR6GK$#pdAPʆhˈWyV Vä⎢@,ը2z 1 n}ЂqAD:li&uvn\_vrTų|9CyxMĞ4kYf%nB2M/+oL7yaTC'KAbH}IXFt/4 (*P<9>rt-a=o.4G5y9$&ڢU"7i4N%Ii gu8V||$rI2lחt4 [Q&pS_@S(.3'5-Y3}ﲽA$ "ʕF"kDK}.[:r'`>1@`" ;W@d9&J&tspw: Pc}́ g5&p"V-޽'Z7+bJ$ae+[Ȟ8Eiɚ2*ce<0J[—- u;Lc &sgD§֝X>Sm'lP2ucNj8O@M,}g< l[cysj$RU1ƺoqKWn{wF ~FL5{?;Vu'u혶2IWǎ1zh <˖-Nz@>6cZ gOQo93Aqfe"Yh|0wwZ e,H!Ћ"T."EeYGNX<{#hs|.*)3(3Xm4ˈg |Qgr _! Ҿz />1?Zs;qҠX8௘ 3}:?XQd$SI ^ċE_}:~u~;l$c*?.ix0`AQ/B}ϷbPĵ%鎄8u m(c D!BđƜOūQ~S,~|=(,ڦ ՜R@:e| cMef oE6ύu M/F.'ʻ^˥;^^zznQN?.!cMWgTUuAŁ4|06_ɇB!7]о]'~ ͬz,,_FȒY.=XGk:p @;]d4*|8 W$ELMFTbԪQ(նR42Ÿ3k }S}䑅n?H:^y|j$q}Tu0tt7E"<>3PA.S|O={_Yk9atTlqy=7 ~oZĐNI37:y`DhZGYz05jƌKwQjjoޘaFid,Bڵ0F ZHqj<HDLØp⯱cێ%z%&4$᥸& ^BJ H5A$(0dg4L-Hj;_燮sZyG!3䔢$ 0)Pf5Xk׮ň#0vXTVV-uqR $ӌS;w>K{CN劈ޑSJ')œb.gVd_skJPfF'mvU|^ ɇ֑#@<\:`@nD߳6a>+C^1G W}>ftEN.3°}ݺ:df+3?cJ|w2{^En0lذM8)Ұ|]E!wQ%Q`ͪ$iRZ|1H^fzќA,t[υIlBZ2H5p&WBlHF=Ǿ"N^+<(Q@/ZRe{|QM 7Q} ͚^{W\q vkZN܂NcW='-X_']>x|fG|pطuHm0脾Xpϕ~\H26ƍiӦa 8~.بFqЎ4i΅AA.bz;4fݍ).!(X[qVw,G<1@@Lft.lYќ.sj'aYs(t2A4'Emd&XZ|X~7XmEîSמx8N]}ź東w vx+1X4mx..;cX 9.Oy +~pM9@/nNrH%e'hRb@%lT%9[A:GKr@L,./j|<1}E )ӎ:uօ@6>?[?LX$XdoX 7KDlz⭪Be>SE3ڿkUav=tx%P)Y !ILbIN)I ?"԰DjG8ZƎa= b;#e7[fSQ'1p:_w둭lտFEL?3G,F&"'sM^ɉA l#gtDDAEZM ^!ՑD d(aS͂tL,Xl^j  b NLJ(@T(cPa;bA!e0V@.W)r1)ёM*3UT撙i ;xRXK549AIO؜ƠJ2EEnA@mwIg>1-q9x#w΋A&9le WL! ^QA{ | !Q:V VIKc,>ĉ!"}5e!^弔Lnf/Ҫ;)WD?_di؉"•yGd(H17) znkhjJi[wI:~Ҕ*y5 2_я6d+[sAapEZ߻f;-3#ѕRF.BVb#Y3ڳ"NM?} 93 )qPƨETP9$Y@( \ة/ uR hv]Y|C>-0R]`ke [j@ي"4Ќ/'j [[ܾg .{DlQ[տ烨9{@`[(Hw.1N~FqpЖU2wȟC}NB19gAi)23uvTegt 7({Hi% ([V]v|P1M&8vذy?#fηiWMU_~:i0SlTQJ IKYK]1C"CqvM/H@HXݒ!/lTHD^" |XlOu,#p,jmJXf&,ʥR>m:.Ԏ0Wj[02zk f]r\:2N\ abu&0hEP4*_O5 y2) L(vxQT{ IE4 Fڵ㋩k)gm.wKgN^o8*ZAU#LH>!PZ qNsGF*zO,*Sw)OR)^wC0".{ct7U&/!E8cJns-ؔ0c96Jw\xKI*eMrfq%_ H@Հ i$(Pi߅eȥfg㹘Tli%C ، W -de:>r4-BW|X ѫnR4K]^]8PICS7b^d=9LLk?Km; plcNj8O5fQJW/6m딃 D-Т}w8a\Mqq#6C&_[j GcvMФv9 |:F6I7bձcG=ƲeY*QJa'!"kAO#|w$I [* B?@/,FLH.TKJ4JGSB3鴯brNoCNҲ| %.O$GґNd.{pxGp<䋌C}zH^+Tk_Ol~9&~9>~Rtx<w͛Xx~!Ҫ5~r]/줝~WۖkWNJq 4n{*NT'a?÷j^j'byNݔŒ9Sr<ɧx.XسŨKnx-+WK7Nzf{m*x_Y5 cƌҥK7*6K*"#0 ![gVݰ ~b0ULCi "Ol(C;n(2˔m4+% z0%V|!'!^7TL3f^c31亃018ӱa9#lh`lE,M|CꔢYlB֮ň#0vXTVVnH%9aX3,:A74":"5g!N) cî#5Gn<4 QwÀ@7ExB2+mc=)>ߌC(\\x1x_Lf~>XAii)uPX%_}b&f,)m [W:" d/MH{iCKyuwt)斣Q}R5ݺuða68 %/ցCmeNL!׷Tը5`Gydéär"* .P{(FOߏ4󌬩P b/ 43BlSJhkR}_P@ @$zdfIn&:G1f#x)6k>z\qXǁح)P֫7:/~ &}G2vu[574\w˘h1?.i26?$٘jlY>\[6i:>gbEX3+9'U+O/|9/⾻_DV׸q0m4?gG6U)^sX+-)KfH5ʨ=ی Wե%(}bu!GyvLx:jB3Ѱ1I-!d^ hx.;⫧Fcn;3Ow::{8#>87تcYKwۢס1[k@z` QP=N}pNi~NݱMq˧ffo3Fxr3O|Sqk5g|xQVV_"5)״Xw\LN5& 2▭V `seԸK#,#o1FE!4[vC+`ǒ/}:tZoD}Dxi[m\.=#cL . 6VСC߷xb|WX˴Z ?ۖ;,X-;FI&"|ZUΡ &dT,q;2Vv(TPԂZΖ<bCi*{^EJ6/QGm,Bur?sg}/*Z/cƔu2kg9S7xvQ10v"V{~ ,X}w?0|~;S/ v*In\yLLŒbEa4"Ckf y[- 6Ƈ'*^sW, wu/:(c-= XzecJ|G}Omh 7֜eo^ͪѥkWt.۴ Z{EO:n~m{tcpto-ǑN/FU ٶ} pU1w_~Ÿ#ܷ`̯F[e-{8L˅yg`7Te_u@טAةckl {t^΋EbI{Sۖhq' i|#vB\;^m**о1!pتus4k9}2np] :ngt,<qUcAL'mۆ}?b3_|н2ýI:?FM[hi[_A1c;ǟ|hã44ǭ[XhPK =\U-sls[V>H7g`{g+7n}.;>ߣ(foy9{>;ӧS]뢫d@B_'G[z|q 4n{9R)tW0/1?ݙpk'o|ϜN"x|o"ax<3}e5he)w]Xzx]cgwϯ0<q+q|=8nI ֧?n廏kۻpppoq#~и{%zܱ`+ۋÈN/fa<:4L!4[熞I'sY=p0q?t*a$ryN+k:?k~O`]+B0w0+swo~<|Fj_ ܗqYi`4 ,#nxb,/Gx:(s8#/qBp ꍎUbc|s ^Ȼf wDSiԢߘ㲣mQy@-N5tmʪq姢 xfuo܉;>W:۵D^ળvGOrcMWgTUuAŁ4|0E鵵q8ehѲ2 z߱GcJ'5?2\llѦ=|5׽~ g-b.ըr6ښB̫a4ܷ+pN!:_z0^|ֆ@gڷچ bFM;S F3ۤ^1=,RU_-+kӠ+>㙣Ϫ3moGu4,KC!|?pwx~Q Tt(ݦkilVq-i`b]Fvj'C㾻Ǟ7T?kwwnox/s_sҠ+j9|7c!vy!kWam񃼏ޭEŕ4CypYG\=/|vq;y>=" u.qpjjjϰ>ؾe|/qsO./mTѭ> , #А|hزbђ[wcJ( Ev[߇S{^=B撆?wL;l뷚a=`c:vBٜɏEѥK̚[jTGU[T};߄Q~-uVa֗ğwWIоG>Q!ҏ7ѽ@z&c߅lm-paaַ}k0h:ûiG61 #>-Ρ<lokCsQ1U@9;Osk0Z:ƶWd'/tmt i3"Z ^᾵- a]^ޡ>V4d6Q} ͚^{W\q vk 4w(l?ﯘ4}#TsNijW ß^sS_}w{a]ӯS‚_{>9^Q2xqn ,=|8/j98;uxo oNC1l&KjhK", Mh|~Р^p |1pc^#yCJn'6 (E7R2_4ĜN~Qxeŷ`_ G[$ZŒDm{+z$m"Ƶ^ó*>+wyS8/򡟗#BqPFZw=@rr2´HL =Cn?UTPPPPPP@AAAAAUTPPPPPP@AAAAAŃC)/&AWBBBPHMM@AA= ((((( * }>ݧ0mt;8zx(~?  BhmMgN[MU4pvD<ۨB p2޴;rs\~EQ}wUԗP);pbϨj(u5t'&E33IXnm5G PPH(a8{i4M/lؾ~[MAEZXm'1]j!D}d hUT+ K|t+ دW9vk~9m#bOY ,eQ|el,I8Cns/FWw vUg pCcʴ;>FP y\u׹+$y:![nA+V@hѢ(BPHO퍥G\5|>7n+pp:I «YX<8G'U//D펯bH5k:2U*eOpD$ O^x4exvLT\838 x ʄ"~O|~'\j:~Hs%^ ~UBhh$b“8p)$\+V:MNňl5AE??:ʣQߩ~ m)*]u-UQ}sn}#Rğ=catƨP>ط/-@F ADH?Ž{Wvm}_`\4R>DQ+*&\L!zi!'lƤu쓨xVӴS0Uh,S ,A8骂5 ^pDG;p #'Tup`::#sWV [Џ|Nd#uO3]M+JRG*"#+3Ѵcs[m[bl#T u8o['GׁVZ"o]Ykᙶ%TNd9y_@ ѱ[\Y~`"*T@QQ,ޜ;u{#)e_ozza~\~GYy8wćQmM=0ط2~+kie^!VG0r#y 2+oEB(GlDWa吼kuz 5*WDȪh;n6|lNXuF9<' ybCTiᒓ>,=87ܼKyQ kf.u|mDYv1{Q`|AGp i'p΍!>>e*#Z=C)7ۇ{eTb#HyT*đX-$D)Շ]\8|.ů7EqrI_WI8cl:ē ahV`stkg~E3k֧3Q,G+Ǝb8ŒNk|b"vݠv p.é 6Lx.Z]|#Zp\{/qzR"~= mX|-x[4"#+!a[`꣤gןz "u?Ư6৔f}s2SZ ջ9b{lppcoG/HUA/Vf&bE "ޙhQ`¹.xKN٩>*BoLLObI~h4l-B ;l1W?"6OZ5B6 +^ȓ@4 :bFڨX)X#V.Ζ/WC-y 1.>LAxq9SߗX8 ˟FJ1lPy]xw8pw<嚇s!ǞQ[H;ǍE[i#͏~y/1Ԛĵ}Q<$_n(ܼw;M/s}__aA7 [fvԸ1^iLAtO]Y)8Wx[Kd1y0mD Uv La. gx疖dOpaxIUCw!bDm6E߻Cs?DG@EItN]ܮ"e ) ?:pop{}?TĬc t H2BBp|(u'ͨ?k{{0 *_LN+w.E1dqj(uҩ0w / xh)~ःgm#bOh)|Dyt:8;|pa;[h[Ӗm(woڹCP 6Л7t<6l3Ugx6۷EdH(*y]pS" ~mB`C :ۓUx+ @:aIzſUyg<իGV PzM4hZ׊Ũ6h>u#_/=_WAp Vxu1T3z%5KA}2vX::CbP0*79px]łsE6u*bṔz fUv} }cgDP*bef 'FL*\y:REC_CapCxt;4Dq #ԄKXС + ٧C]g"NO,űA_&ug߮彮@PUз;L w'o WAqYu;flĸpzo nI\n:"~[ {5ㅢȸDX+<琏IۍQ8y<7+؍G7cJ4!;v5> zs>_j@>|]o1l^uT҈\-BI."["V`وZ2EJ@Ƿ7cT-aDws>M*xPBeRwͺSpVqTR,Wkgq"*lh:CаGn^ގū Å fcWQzQ#1Xڳ]P"^ ᵻcsUpy #SxƘqXxu4G f)>U;a( `joԫjr۝w:^Px'!X mYQ[ᅩfJxz(q7! w+Ch -XR,\nuUwxI2!%#аPg$^[ x1h]8u{dOoʆܗP֨_&f{,Fcy7#1O}k>{ݫ* ،oCIq0!gװ/.YyL.aK!2+_uDG18{TqsY:dӑ,|*[!Ү5X(P3-`t!ZQ10yt4bHGϲvTi Է>yaʠ|ɪe$zNxtHT- R@AY#s 'Tm=?TGprۮ,Na3E PיcHH;/;)᭦D\"+[4_z`i˺󑴴Sd3<w|ݫ}5GbBvM3 Y4:+.əqB.69,.7)b]4F+qUKēTH(өv/< #~ ;51L@VG0 ubh6sL\ /Wk|tדS\wwb&l~;30[m5~F?Ƒ-v;ZsۮpW:ii «Wi `qA֤#EIQz v݋cS{ Q Lrf @8̅.XwUk7.X(6uAڶ(1}i+J9?#͙S^ㅷaǪ~xʨ^a׮' Gx,X۝wڧvc]qH8r\t>}I>H?;P8- @P8UC5yWnDX΂禅{eP? :6}E[؉cx3J|0:Fg8}h,;`[cfs&`v4:?/X݉cعbu]ƥiHI܋}K`V>30?>pIS77\d]'ri]PX/݁/DѺTĕ|.z7^ }WƦ!Mo)m kKgt-bѥA*G@qsAF TCK!ɷq&f&'/,z|U᷉QzM)%PN}`}H8Bŕp"˧kuk5 HDZGI1K$|mQ5sQw](h@ VX6M0aL3_ zcՐόʳNWQՋ/P\pn~;S dBo!$:>AMqx6o薟ǬM8ec >lem*.5PR!ƬT7ܟg-۟3wO]? & vl i@J.[l'c&hSg|~čqNucX7pۉ Krct"SX^>-!ʃ(HNt l07P~㍊{D3$À|"eyc: Ć F*?ĠbPw?%Rl0v4>Zw!t"-- 7e & |b36Y : Nves~Ck&c) Bu/Q(UW’y?,=VxA͖MOĬ8]ǁU!hSjk/ a{q8H+~&oaO]2?||oL "4|6g*{F@+Y  G#E`HLe .5;`xV]? bs0s=+VKrI -Nь r˖] ~~vzfMV1gIkM+9פح{P0sŒmG/'X疮ya[6zK&hYQjda 5 ;+ zIp: WNIu#@q23Ũx9fE˞rv]S:{``Cz߱q~\.i>zuIl\w[[a:}a dƤ^=%8w뇯w G6MBͣcSX~p]dn`͘X^h(MC0oh,Zt9E͛"V_\;L6*QznM$ZN"zgV 濭h;aӋT"!|WO Tec{=h7n" f]b񨃡7 Z~ o֫Uz4/a8= +ju?T1nZB xH7E)Tl*& Tlֺ[!8t nϟ>0+|K=WvϤva֫G` `sHJB9̈[U`P(n|6=[@ҡ %[ ^4}gWH֏B@VX8\:ZQJ0C4:8b0`*NuSS@zlQ[m9YքrE gcO~)Hi})`7Rר&+ r_Dd,")J)yX&(R,|zGh޺\؇ոHeF^ыyIsFv7宎,# u2^FTV2nᘹa?AbX#8y?cF;U=~vyғnjnDl6@Z10PH ?%%7oR_^b3Qx kʴɽGi|ze᫠EX3+%3fe5) ȦWL7%b 1 9yReq7=/z@'+Ά"M]y[(QYU"=JF( g1 [Y%KVb ?c76~GymDYv1{QzVatS0f(A~^9a~ÉiFTY-U08Ǯ/ ەRo%!Ų|to x̽[qM26`5E]g^H3lΈ1\íG05 ^uBs""֗͐Øjd.KzAAF0`TБ#@ޅQ#%y(ԇ3Vs*/6,RRqE8*Z$g²+{M,qcIؓIfjr^U1T*̬K(in/0J2'68ʠ4oVv:KT("/zx5|zs<!/MahG-ߟe5f&LN>ΣYe `V QT6l6:ƗP/z R.'kԃ2k,58}ωRG Q>Ejrļu՛]LE`IJ}19sKX[]g_PjL 1Igo1VYFI _kN!NrQR[lɞ3D]32n Ve\v͐oyK˜er',I ѕ9},/ EIYs\ML+e D\2z #.rMKgjy%-)]+E8s6ZLcO߰~R؍d.N #ex}‰?,cơ2Eb,f8qzs!ˎ ⡴seV&R׉iWq5)d%;y(`fiuiHfNxyyA+Θ=#R>b1:_L6A`%O<ы-CbKqȊJ3( Yv=ܼ;TPi~x0P@ >Izo I\$Of0H)/ O3x8R6q6%MN$ O=Yg?) ]8EKۭ;WGEio4,M{eyr *>2Gng$s;Xݷ(fܷ]ZlTF* Ë"V "3I[Pmo%5OIU\eiiZV[FR$DȱZ9(y\[ފ1L8#j1p?fʵKF_MhAUBLS]1g V" U5c~3r N&vT5Χu<(;Wl8x<_("x]o۸H.uPfl*b16e&V? ŷ2Wkv#Y^',sɚ2$DPR )c\\jC^&c,/AT.LlZR28*潂&YOjBnxq֬MY肱8)֯@h+YU'{.;K(9<Я[lN" +óogo_xY4%"\˜t [`FzZ;]bEjdkʙ;6ER,Lً’7-ϨX:*D{|@}8]/4{KS=YxᩬqVɬ}/ظt<(+N郾lg $J6fɋ5C4-t]Bs^VF&lgm4_F9YP̳*%ƅ?8B$.vœ۷or֣"ř!J-o6TyͫO7^.fQR,`sR /G8n9ʪ*6[,ڬIib- @HLyXaKW/yx jPsD٧5ֺQM "i! V_*];οYemy_|\!;_ jSPPPP-P@AAA SU/KfIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/settings.png000066400000000000000000001500041473342170300266630ustar00rootroot00000000000000PNG  IHDR8tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp <xIDATx|U]w FniA@E 1baw``*" (J)llw%l|?{}{c[|9a~;μ͒133Evvvu3M9hn^_z~ +onVN7|bzzF??L?ϭ (<ͭݛ̄t[ll,xzz- ށe{xnnnxrrE;wzȄY9NZBܷy/%%ZLL eʔ&.!ٱc 2&o-}̓ٷo+ԋa &gJt8$%%5Yf^9wRRRXr%aaa<<<.3>p۷QÆ EDDDD`ׯOrrr#+[i~SSS6nmEbVnp`ݬgw4hm=b^zXr|ޭ`}۬>j"""""ŔՂ_Z5mV?xp󮿿?Z"""""\XXX^5l=ץj7WV)!VjW3yw5YYYDGGZĺUxx8{s_+V#""""RTPU3gE従tHc\p8l.[VVV8mlٲVWV-"""""RBEEEY-77N)kv{97#PW)<`{/777myfi`Vws\"""""%EDDDDΠ6uFS9G&4zܚ{өw@DDDD,+k*[r/""""r~Q{ZEDDDDR/`N)Bh#""""r~^܋m?(ƹ9K½Y EEDDDDΰŽS$W9?^DDDDgN7=׳7iiK)Iyȇtkm`~{XT>{a#sqYxQ(OZ͢;T=CDDDDkEAw[;u )w:aJ>aYoij-""""sӡػ";eg ]˞Ȃ_+QT0>^FU#_þ)sry@TtI]up" G<f-'} ?<zR!DDDDD9~x=@,{"3yNE𽔧XΫ+|0aѤW nkF}f-=!gߌ]^e„\`t WNv.(^K2uoLz J""""p_p7}#s J>xQixĝRU+HZ3ضc½[nwSɽ /cSO+؋ȣWpr3=< [ߩpLp8TIr3ԏO-dN<=YÁGi@DDDDO 4)|v'3#v ['{6B`KqyxxvOde{` [_斕ߛ~H,3-f~n!(ܟ>-٫WֺU2޺)W= gʌ9̛7϶ؚ/aXm} Uv3[oܞ~`fB~j NRO""""5;w`Å[@f)r)=m=:вYc6~j[Pe:7?E}Vz*'6:գܱ/ż4rdm7ワ&xJl&\v|4}g5wc_}8F/"""R½c^YĴnCM]dl%rw 8 ӕJ➬c^/lqrqM%/O"7׮BθqyxxT^U7ĵ]/ū;}Sf'p6w%9aDDDNSя~4C7;ojOiݸY9{ٰh[bKמgRR(>ŏwV>YΞ$xǽ-&y"#ES0"""[^56 jL/-;O3k n}=BsU2b'cʈd]t'N+2|dO*`̐wxӟXU-"Vrf9is*Nφ\#G"*P6vLts`[Ӯf)} <øYǛ s>fM ˏMO:䒔/כoǞ4*x`?1Eڿ{tfv9'³cً\FͿ{c)=n&[u|yKgnʟ͋&btH-"""E@m /Y}O׿'q~cK#UrGv)*t8qҸ}`!'0lc/z9G|=ׅ.p>Zj~tx"? _7S-`J'yae,\Ecxꖋ#;yea.NA)n }+L=r?\J< r3;,ru>|K=PDFOo*rClE2r|d F[p62ظ~ǁ3 ~Nݻr" Yˍߏ#Nuhʓ,|ٻWN?dW(܋!Y߿=-}X(7'vcOu ";+\l[T>\4k-cV9gݮt)j+<+R(܋Hptg)uU?ሆu[AB)8^rFpH6~Rm!NmO""" "rVxǶ/>QL<2c+\ ͙¾};EʾT\Ve!\ٕA)7EDDE,Mh7\9I;k7yPA|]{;{ͱ+9' omW=lyQWx37+s\)Y3 /w{T?+R(܋șL`]>`ЎW&\x:/n#ۭ\U3zKlgr'9VBph0nͬZwTl.KS2Lg/˺/G0嘖{~!xlX]ZDD ܹtU_S&Y$͔HGߺPmxmm1}ޝ"a*++tO.ґ~ˆډdPsTWxhm7Vbҧ/ڂX$L?Dd;ŗ.~|]oeW ?\ZDDD^D$z\譤<ϴtDN~R?nC19o>߾}.֢2>4;/;ٹq|5hWxn֛|4v2c@-25Zp+< WG~D_K/)iC.pT%%z݊C8Us"o'ؗ',ɇ<k9yj]Ī_~r>8+j[F>""""" {{Q{QQ{Q{{Q{Q{bOyd= GXL;y'&p!$:&r[xBlz#EDDDDٔ^ ov|bq%[CjGM"c_|tmLdO'k6'Dx, O϶ \Haz:aHaHXW/67%Ͻ w[o<AW/{pqd]#6m0udrV+U+Pm5{2pq{˟dS" )MݸD343ٙjd{aub.ޑq4|9w\Qu_jm˞tM"R<}"#^?ɰ[￙Y-y=>['^KDD}D;q (M+P}+%l33#{e'N4u}ԥ4n9KIՅrVdlO`ˇ(W,w36nHp|[rptgu"dytU֥qcw^e±d5_{]9$oۉW͖qubS=z #FHl0o"e]Y { [7;(yО^ *؋(܃o^{s5|iȵo^zWܯ*bӘ׸{Ł |ҶL_Mf@KյPl23!;-MK1j?duXʷ%0_X:kʚHr[Ӿ zN:g>CT&]½9B)I_ {Y E:Jw[zS6/^~|-)X-ӔjSy4Sf%Ѽ) `ޕAXྜt2mre0{o-y:U=gSLp)XqU {Sg039m*3c*kC}iLgrRjY۴7w}[1?}&,*Q* g-c_'J{٪\] ױtpr[ݢ7 Ctۏ> fv׊q/C&ńW 63mx6tg[mJiCwd}xQ,u}ysC]’}iKd7qw<8.:(:\HeԨQ^˽-/n=D?Yvw{ )rؽy'IiI,;~N=j #""p/"%+˝΍^n.""" "R"`kKP""""" """""p/""""" """""p/""""p/"""""%)frssȻܼriS6 wwwS^DDD 񩩩kcrknV'(((/ #""RLBRRH ga,oEDD#"%U2p/""rث^bil+܋\`gEDe[^DD<8"*gF9Ǭ.OU5ܞ[I{jT9lN2l+܋ ;5裢[8ppo`h]\+#"l+܋\!HNXXXYjݬV{k*(Q&)>""DY4X`+p~p&0?~/:c)ԇ V"444/șWbdo"\cPU V ˘9׵>ᱸ3xbR:. wOBhұ+u'|3W bIgxmcv8p BU:5 ԟO,[}KrѬ`DbbN }=?9.I: [? mbd\6UŖ-y u8{ǦLNƵM$Y(4%gMG XNb_ضLwX 7R@ý+i k64+r_j)H]5>ʌu߹/2z[lwx)QVG?0nNҽ"rw]]J"?;s>G%3f|Vu\.}-W[}KӘ)\`ռtށ勗2#*6ng CFLao׍{C{ /NI&*ǂWdS?k6@"$ظ2o\3֐کAfdV`GZzzV5A;UmZ:+ܻmAh.1/o`GGxh4 Q6KKΪ Hnp%MLU#o.ށaD`\_v,zY pog yk'JyY}a&@5Ʊx-2w)V}aL=u Mx΄!4xNI{/r{[h,3c3*xT3s4~楻@wNvOu %/ԊꄤA޿  '# ls_f}&bo?ޕz[+sO2 m Su)Qw[o+|Ӗ@ 9WM(w"q^Jm,vm@bhhkv'pm|rq97qwK\|wuOQx="Ӯ%

5xQc. 2޳ۖ0sgiZ_`/r~`˓q6' aC\|01S/ nΟdjoX i7k;LgCT)s#45Y7eAd h^Gh*-"R %b)qN~>?bد+ؖ:tZ4n}Rl 5,@Wie+h[U\vR1ԟr %'y<v4(JxL%.^Э[ؘkҁn^Y-ZV!@įq'n$`j9_~''YӎjR!2՚qoߋHc3Pgì|1NfU XZKAB^iw| r}{問LeY|GP4BzLΓh3`?`ߟ~bBB,Fa#vS։%*ȟjMiU)SpzӶ?/#ŕ_f]ĖrqIi})CFzܞ ',7aTyxx ]A,3Ǧ`6xVo;5>e=t {Ytu+!ٙW\sWu([ym[9ANpFۡei[xeC=>N})yx6oo|LTʱU<7]ኖ[RԩJ>|_S[O6h^*=b}|*c2wԎ[e]gW4 ͫדj0n>hm׶ U>^IşTlݚ.qy$-[vt,}oûs6z.JgeGt3Át5JU犇nW,+'0rrisATMgaF<sR10Ԣ>"gyF /{ͭȡϛK/&_7hk>¡ÁxxӜ'kOM"I'y< FLk,:_C_]=OȮ;j(|ݛ@x?K6z#&^7R;p izU&6 ~گ[/'Sy&_7n?ۼv%8K){πx}.`.Rg~c'{y^3O3&#3u~XŒei,B]rD TۼK̈́E'|P>s2¯g*6w . nݚݭ1$LS3𘢟wϦPvỳs[fu1MqK&1ד_]j9iZV&;Bc-A7{*v3Y^+I-GOֆMlvć~%/=6+uK`oN~#^<;{ߐO˸7?lkՎeg7~l0=k.K4⮲nǔ('ɦȨ~=`oMH%1@{,YM"Z5UB;l6SIwZu3i:xv33grLςj&go2AxF:<? =kHؾ}!h_:șW"1꧹Z [wv,5NնPe m*,}. ^[ҭ&>%'̝y9'_bVl3-3]7='0B%:I;v%[{>|!ޭZqq^"O"#ٳt/%Pi)Dg=&޵?4JƔk<&Xﴃf~ցpbϒx;SHxdsrNĠg|'dߓs:0uf*n@F#C`fV[8X9~<\ĭ糶SE=E oNѓߙ 9r͇նՍ9̇yurMɁp T01!UWZ~%aG"$mM"e! ݑ2|TZ>^+x81k"?~, znrCזg:2|Bw8uzJz'xA8n|N> 7JE{,bo\ҷ/Vr0MȦ |OGony򏴵_EA2)7iBRU>w]̫_7FTWu"u_ك07G ]~`̭w;W5l1-y<(;XZ:I*qša};_ZM |sE_si| EHXn'e>? nk apE x)μJ׊0##JUp01!?\gy۴7&-h9eLEh`S04i}X,I?rrr ^"rCuO[B.8' u8X19؞Ϟ{Cv[]r"## 5qYCa13 X Gi5G.K>keԨQ:MDVfON:+؋rNNNϯS\:XRF"rEhd~/9 y䈜"ZnϞ=%:[n.^hxhHQ]4_1չ+hm"_՝%(((MPIsn V`/p/"%gM"' 9ఘV\\u~,[eD{9>j9Xe* """YQV9;.""rnY] k//!!PֲYcuG0p/""ra9l KBIKK}n95œ("""c\"ZNky>Wc~\h+z׆P}if7L[?&l Si[ v9gbeEDYYm-޽{F}-!0 0yL [Pt-fp_}}6pMcQJY <91D"+NI "Rę^YhdCfUPpOOsV{vy9f-~x3xbR:{}h3_D_XY>gB-4˟ '${=N! +I"%-ܛ\Lz`o2;}h$5V߈%C汷p!h|)wh{װz0>ܬΨ_`[e Ye5,0h00 NCQvRs70ϼvf>2Z']nfNsmXT6"tfV b3E;oI[P""p}]_gkKv1ɏps_xp^y) _a>S{^wjspFiuMa*3W&Gޡ M.PK2| ĥfG9hy6q+ʀ 7BL%` f9ט\m8w0;+j - %3W/8RN6<SY $ߟ'5Li;-;kQY(D;nId lkw:d~ҏ nsH^uTr}?1\w%UeF?.V ѕ7>Ǚv71goGSrO}Lb,lbnqɵӿ]i3+F`y(b:oZȶ⥄lŐ6x:_]E9ˬ.OEeP(A֯ímRU^ 0z D 󂇇½H +Mw<6ԧ'5}M3= 6{ Lc؄]slxgvxfa(, 6V pXXRz0?/7Էj-&د_w5u?ҍM04~}Mzjo&<I3Fا{isx?WM-<,0o*綿xh.N T=,5tik $U,Hn׮eG<+YIߏuӢUH9>?eys`Y?HP"K_OkxZelǏF2?7zDΚӝʵowq"MȲ‰OJf+U!kP6/(/ \,fg&|L^|m+*qGd½"k10< kyt3a;Մؠ ) f%v[MP &8̈́ӏ B]*y' BZu4>* :ReLF˫t%1%v r+78]7WzEWyUsb6?HYZrE/N58ټb=UP}~I3W $0ʗ6m7[*ie+h[Ua_6))ոfT5ru{]E,6ntKvoV<יmCS&3z/4f3chSTc>"R(EZ}NN~&wᵪg)ՔuIǞd4Xk<W/3㜔kXjum *&CvKMک-A9Fy-=KY1@hw|#| 43Kl۰'scۨإtAX~ZwTjj&׮SSֳQu 6[J.q_ְcCY';73Á͖KJ'] |_zC2yg"YQUp8{*"XܴT#y]ZyTfcXCϼ.qa<$ɩ&r΁V߇sH6E.p0 o&$l90\7 C $iy~ ƣO;2pT7E> lf NE 7O}<`*'_//u®6pʗ+}d{bl{yzug)=r+Y?@Bf9 { :78+`cc30\3 6u39C~zA\u`^x 'u2_9Bi۽?ɬ1{ì,um^(Gc z잗i\fO\DZժT&ukSW&~1'izݘV9bkwJF}<9;rsONh2g8 pK/}~e& ]0x^9,ޒڅJp/Rý $B?FXinV`iR” \ :u]&^I[`)8ku屾 (tleM1o GlAl7+~Tkk|Kadk qyá>kɯ@؋F];i| 7C-ORf8R\԰}ȃ `OΠrxF4IsݢV~;WQX:5} _ӟzD޻w QZ)d1tPW~ b"nZ΄&RXy~4?>ؕz]! ^4`x:EpB(KMp6`my0` 2eX5i*þ,_y]'m&d6 eּ~Y鉐iM?ʬ QSxy||j^\)JBE$s/ l's$cF,S1 R3zߴ"7G&h=~Œ\/."%Î;qx)\:amRRRHOO.ҥK)Ln5jTPkK,T5 &3y*nf[LeFS)h[.1G!x+Ԯm6qɑŻoo58\y{Ѣe  }go4ƽ\Ώ{9`w޼.:}C}o@e+eا^,R9ǬV¶j[A9##///<<j%0?~/g8.G"""DGG{3Okz"##I)>JH˽<qYW!$:&r[xB` ""@(Ve}s`-Ӟ={_+Q-Mo糷ǃBX凼"iDNV 7P0r}}F1߮-*R,> +E+Q}m>DGEIqep߸g!S㣦t/>r:6&'˓ҵ[r}]i`Ó~"bs!wàk\L{?6#m]yqepO2Vooeh^Ӌ\%j5,s?5t?7BUIFpӒk3zOo^]5R~ri\#(ڍkoQ0H_^b̤֔bQuK<,߼8m!72Öj1`!#Ų_d^7nK&0R;~x6 ?p?5_+ÑEkr:2=xw@ϥm0훭2Vݟ2a%=Bj}n'%+7ìu#^]F^NB}%mK-FHoDGݧ2CYl;WcROp0DM:p#.X}ㆲ9{I©FK=̼y 2/3q4Oj |; Lm th|L9 \C_%C (Z\bkDI . BHoYlpwtO&M\ -3߾ϐ)CZZl>*lޕHq6gD{#yT-)3n8Ew{}F9=g-i_ׁKVqʳJ}N,fz8h}CZyџs؟|$/,Mf>Jp`q7]`|`GSZ)4jhNhXz<ӈ|DZs?qg7U]2vJ#(K˕#(}++Sھ& T]25 .[VB}7vQ}9-m`oZL|nIaX\_gF.B ^L̙(t^_z$ӂ͌N>ђb~$>ectTؙMbyS><3Q:xI~IZLTR,i3`KΝsqr2*Vׇ.ŽքEɳcžzzӮT~][& \;֝e+PZ֏ 8)p-j$f*"|1ekK~ށJͨyO㫭t@VF^c]gfVɚo6pL^;Ӗz18ۤ(ǻѰRkX31 S揠kiBmc4SMl+ֳ1uȯlQDV:R,xGi7-epp4Ш^J7ݦ ܬ0C*5m-yCݫۇ-*i +:hl.6V)ռk~f kW/[\>v+ibֿ4zJC҆p.GuuX]Jbx_iPb1kU/xa/V Bjh6 YJ"O֓>[7֞ U`KHʗ_%1(KTs/D+§'o?XTN5; Eq.9%u_k^VJs7??<-Tk^>`/Ssll,reS1GB'E.j\0iiyB.%4vѸu$ !^! j搟W8WOHH{!$ !f2T3Bu^eTWOͼ BY B!D,?^ B.B/KiB'\pE'}S½BB y_/^!(pSBktvx r+eyӫx{\aX&^ܩh\l% !0r!mps%߇2pxLh| n}/cK+udL*;G/F5bw{9y B9}- 7!ZBۧ$n"Ff[ h=Jޥ+bs{ya՞r޹*CTyGğ2+Y|-NY?PT*vẁFX+w//^Ezy.xjXv7Gq.^C}I8͏sxQMd$!(.C=ԯj'רLF !m[}6y1<+eH]\0gq+]>C3vZ7_nO3jR{12e~pwp ʖnaһs_>Aߘlxai!5^G?ظ?U@-C1= l8q̾5#|1l%3gn jnilXW?L%8 ו'! gqj<{fVlpX\vB((m;'j6ΡUǡ4M~o77C<7MB(h iR^NxMÒ dqj@ !XDž$T Wj6Y97p0/5/[9,OX};ت Yzוlθk;-v\$>c'cۼ3/ ݝRu;R k6<h߯)\q)IUp=өlf4ёA.zԲF')$v}A.E}<==."ꝘNͽv9.,azL79*9k5&n]7Ux16^g-ڻS<_5i9 [3Z)A7oůwomwmQ/pӝχܵ4ةsҸ[VαuvNT>YT/?CYn  >MgrV6K=ao?Dk>ǢgUyB j/[DEEKvșçH*׆NjW3!1" rӵm;9_rʓ2: me5,?q}7Cϩ0ONH LJaRW~)xzƩzH5Gs!J6y *(PԚuƾ dڃdrǁ >ф:tHȯ 0Rg~ΰvecG[ٰ,N࿼s=){)֕&e|Yfv:/VG)Ѹ|СW0ɗ-6@,.Ʃ"ͫNj~{3*cKiy *(X<Pk8'Ac ?vYCm}=셐pMwfE?h 8P^[vaei[o߬W"H0Z\N`O]uM^جVV h;- J (|5NwB'7BhXfZs~e9_Lj[V&o,Eހ3!`?R@JY(I!^BBΕIҥd#Bh\m=*a"с[Kşƣv ,% 5=4BhPݖy+;p)jͽyۑy^ܥU D~TpE7s` l<-9HRR,'^"k ֕( fch._<ˎǹ9Vcc{/pZ,NbC\QcڀvgX06"*:wKWG Ѽ=7YH+iWoM*A^~:^Ȥ k^|#3/X#_e3>a==KP@us)}0}L}gb Ȅڥ0-x1 bRpbT z_IZ|׹B""V-cë5dʤs} zOFol.~ Q?+); JjX׍IIIBd3YPʻ06J-xk^VJsDQCaJYBQBqlllkn"{$ !zRk](ñ겫!'B !(e-NNNuL'Fi'5 % !^!(=+#d |5g3^ɳEQmB"F~)猑f2JFEm5B!%m B!NVO {{{ B!DQGBn x B!D#9B<Զ ^!(Q5ܤ_BNmj[ίd!|gggs ~RRy\{u|<n5QqzQBF jB쒲!B!$ !B!$ !B!$ !B!$ !B!^ _! !BThL>yװR-p'3jW"%mϘ|;|≒* QH8#s&.dGXOr*[u$piQBQC|||<2(DVכojUP$W}J9DZ>|.:AiD!d~l` l9K !z3{ NiV=#r!#mX2w9?D'gXcOݵ?zjXv7Gq.^C}Ik\?3qZ9T>CF$,0.8L/{dAf0W(ڌ׳Y׳do4mnSxw},h j>ϲ7j K! u@1 ! /5A-_~b;FcY:dĉHmޕICBoz3ͳ]ƌOEN xoV9\ԯ`=ϻc*}kF-c8Kf@-4)u${ 2GO(f!Rbpof uѵLp!_ȸZ6/mR^4zbX_;B<KQ1WJr≠KɠeMǕ e?9LY} IF!f]>TL{Lܼsc:$42Nm۷:Uw@nI>Ѿ_SSzSY=6Z+[/I̴SbW%/Kyk4MNVbӔ+PuxOUn- Rw)O^JqxmZmyPB+z;wjb/qȁ…y.,aD̹HboI & 5ؠ'E e>fMJmN%p٧ s[eWp(p "/) ( F!$ɳB'muEZCΔL5u4F|?jid5*:1%2h'e<= ,8O->u1jl%鳲 &%&mgEg{"q2 !HqS 8֔C|,Qs&y.\ n_O7W;yil=ު3S>SQXqАgYɍSz=N·>k* F+_!pّq_՚OSύ[ƴ3S{m;'{],o"'.bO&/Rw&)w-bp?IQwasĥi)ʻ@SO S |MED%7Nb3anYٗRyO0?чY`/ 򔹼OO{`-880B!2du{qj}xtk{ \}}nB':$Q@YF/zauR B<{lӠAdM"'+upB,{"??<-^"xoQ8"S->#hy þ;ǣ*L e"N^Cv7݁1߫\X{KdP{\$(xL[\g_xW8azX+8PV tXWm rUoꮊL#孕Xt|VceNa[75 13J-->~#7-=S{ C|4n~>+ȩ%Sx韆DS]=3Q<)ߨ#cTB6\; m.߂Ƈ|37vŔa̼fo8ɶUmȠͩdr~{D+O*7mϰH+9?p?5_+ÑEkr:{ {ॆw6h+lxuыQ X^Nް¿j3FPs}gָPy'R&2 8MOQјBмoU9S WmμP7wwJK-N.+L>qeѿe'ϠJ^ۧ bY>vSEݩܡ5v-iDHo5.ˤkGzh^y`-M^UiC֡wx=̔LtM:#qQq$|ԥ^e2K'|-O~|7y"?6ϴ1o*jm.oUQh4:\$QQBnk+;ج{Q{j5dQcu^|`-gҦ{!X>$tT=QZK' Dvk4u}h~l_*x`]JCRo/D#e9BW7[1@qFL禥4&R T=w¥K׳5G-{ d[1ȶpyNڔ޾X\lz1W<3nN+k\ҺܹOyaU[Vc&8Pé3s%/W.r&7^ʥ %ŕwBN׷ .6/4Μ߯[~J2LqQ~ )92 !$ Qx#|R,/\VVxn2s?LІّ~毤f+>)~7IHW:A%a: WԘh }+Ky[s&*$58z{%p[kTVGY0cFsYvl=u8;Vcc{/pZ,NbC\QcڀvgX06"*:wKY } ÒWte|"q9fv:mGICC,c7vKMÝm+v HrS6Bz*;~kn,\VƵIneSCI'%%%[%ȣoٳg $kB9ɏ|(!D|갓>7i4GG˳!e9B!DA._WKǟ0] lrdz}몍aTմբzêxL#Y |& Z&B!$?c̙%3rbY|4ʧ_W`)=&%1la?꥟נ5]c㜏Y p\W 1f13j)->mr'dΈp䦑C^dΛnE{V2q"m ڐASU&B!Ѹ#1[19Pʞl|7(e87E l}91e9 n I}2~vYNsH3xNM6|1w1{B|5B!pt'[812ga.$eX0Om<]7'|J?Őeٴ9X@>m{.\āB!D*$'jpЊ)ΝZK\8r '퍟4}qO:Gds"bˑΉcYKoғw!6^t !xT^BBƹ/,)Srk@iԚӉM kEnu hiv.Rs/Q_#&ILL!D!jz|SۮzZ''|Bm!M֔C|,Q,,thR)]&,oyğ$_sƄUVQoۗό: !xx@`/D!a-B gwN8ͩ96fGEJTV~PqY7R;ÜM( k=Ѻ¡k<۷]z|q~4؞a \˅XW䈪BP{2!D᧶eM1Zmkiq4ٓr1gݴ2p^y2xgxѤc8徊4YxDBF=!X/m ^Gޣ pAnytʛ]jawY & go*6jOM !x^zxm:?j5g6 4HQ$E=9F!r[\\{!@js喈,O!"I9Ҷsv!"]fZƣjrbTBmۖp/B<:85{yyaaaa[[=^ #jWOTί(Jm[½BQCz[7^Wll@ !${xxZzT@:_BYfh=y7뤌WX:zfs_Ky~w"kYBez>?p!r2~]"& .ށjіBpţݖ~eo˸XWm fADWk^jwrr"**JNB½"mPͭ g2rUxkrc&Փg]du'|~%րu3 ^ BL46x{y`ѝ>ۻH:6tѷ, mЗRM7Ǹ R9VϾ9o3>߼U)Z@,xT0qo|:#;đjLP y9cgdL cY(->艜B'DS{Sc].ujoA|: }qbt)k9p.ӖcAP-c'R禞]Iv Ms4O֑EO=eSi6> Ќ)@2;t{max;:+pWXGWI1:d_) +lV VVUq)C^\xDհ<{؟~;}lBN6땐`e=%נ4=/D a(M{y н$Y>B'a Q8Hy$i\nވOdxSWޫי~x# ms$+0&ţ/eĨk_&Mp -8[SY^1aDvthP7C'J)(ѝ^ZeS3SXlla`sxI֗Ŷzg>[k~@'L]ALo+g}!`S&L|Uټ+*]+f{̪Mسa˖L&ʼj%Uvܭۭ+;_ܔ]o or|9Cr#;Wy`ҟ;Ȯ24fC붞Toՙ)婨 89Р՘0}m;4mfq*I|onrl, $qB½1)8r \ۿ7jY TYlZp3'p1/7e3u=Cr11 FQ@`0i$^p=}2QibV,<_ Q8HYTS? UgkSЯ67f~POY3hZ,uڳ .s-Ywqs%p5c}{4v! "V3oLks , B={iРA&DX[[ߵn ۏv~ QEFF>~u(JOOlwS^{R#˳!sB]mթ&^'ccce|kY"H01?V{Z-d{!|Ij]tttmu>BRs/Daq{<8=>݇!҄(j_-qrr2׿e:9y،w셐p/ȭ/w:LZZGVO`ph4b_ ;'x3N`/oB"FY~|ƨ5yNQqȹ״W.B䯂<2pm9V!gvvrjO"{{{ g)xq&0%lc\;! !(2B y__Hjl>\Uq)[p__lH!D!gB5BM-Qt~(T'Ƨ}^hO7|BB9pnnnǓ(+DBJW}~Z½Ε>}?^=+,ws$ʈKp]tCi;4ʮ<G3A3dTK0B$s/:|N#v֫m7Gz‡T%[3V3k1aR\qdI^d/SI}B|5 !6Ρզ;[c<$Dz}G泇+whAY Mhlqrڱ$B!smNL}^kz2L W8u!'?3h$9@DLe>fMJmN%pC!BHU{wԱ1uT=Q2O K'_->u1jl%鳲 &%TjB!D!d_JEbpBNx޾bskl=ު3S>SQXq !B!@ѸӸmeR.ᣕG9u+NyVǛpMsun&r.8&B!>Zz=+sgR\(Q>ڳ .s-Ywqs%% !BB~̙c8p Qd*꘵BRSSe{! KΣq["""ȯg !nj+ Qڭ^7ԶW! BrjVr~qp/Bj}V ! >-mZ½BQ5c/ēEmjۖp/B1ɳBiB'!m;XjB!:evZ#cF|Ӷs$PB!D@充ylmܦ{5^=IPY9׶s4jB! GHP/'>3u~MW!66\n _GjBB=<<},%CFكUhߩ9MJؒ+,|m>&qkJoyDи4xF/Gu0l^EP!v3`"R4R+E8闕cǾ]58'f-NG{QF5.l셐p/Dь6x{~ R6,g4Vj"fo8ɶUmȠͩ⪽oN8YֲtZwƾXZÈp䦑C^dΛnҚ>I'˙L[s6_x{|Xsé4yQIu?1=J;Νk\O%Zv\LxzԞ9o_X8#ٻ(T+"^X("bk;zEQ$`AE!!4Rw9 HaIvfg癳9]e(tclNvR?BOVŎy_޷ش;t#ZB{_nc}=Wգ<ĆݯW!6ZPO]؝z{m8I ы_Ή/LG]5>u0"hfeU½ؼ\bm& X5Ԝ^F ,`O{t~b>?7dl^&3^n#e9}Ns|m-Q35F-/]J%[nH'k;&P ^O@e;#yt.Mҿ w GxOsgcRc<ȝ> }oo?/cWZEsߟs/?Nؗ+0ˉ8.T ɥ;qoMؽWN& yEk{N`TuTk0l?ͱsOc\MWd}r(Ovߋ<)"y_=Bڇg0J0=2> ?[;pKOx<"r~U R0U]g_f/ޗU} AAYsm^5 HՖ}< uXz9$F1 kWR rKQÕ̃_^^ѷ&W : qO ᲛҴ?} {sVኛѼJUp-ݩos45iKU&~[\ɮqצG;oV.Zs Ydgt|EgVvκrU6gPtX8N7iʆ#Fn-|V\ ̀ɉ>)RZ)MN 37Y̱Ifh%c;2عsVfmVz:Y͓r± Ov @aGomDDԮ̆GʞG-{Lۑi,2¨| {jDxIjʝ4{>-q؜&#} ;_Gbk.1\bΐqʝ#Oy;F&x,e}2o}'+7}>0s; ou%p/"g-;j۲hf>{cu?5A/ʨ~睛jӑmޘ*e>bs}z[hFn☧~pr'O1<< 1|ԓ{݊o`y6\].8V|{a,3:ۚௗ@Գ'&!}$H 8zO%4)c^~;ѹJTs;9ǤuwU "} huzsĜ2>o9.aDT1sn:Eib(U:Q(UŰcvUw)=a.Erm%A_5,~v" VKu krh /a?7֦[˯,ژ^fgIC/o):f;Ϻz=N_ AY塐].)[Ts/RBiIO(V/YȻO+2^u5ǰ6e@7o~4Ob6<Օ&KY;ؘ=ms7hHXd/r0v]ǀKK>\غ)vZ^(fOY^]-=jOX?A! ٳymjtlI1jwݎ)HwDśBjj7!;`[NRxPkawb2Iz˹8Nzvịwe8uXx 15m3ȽH٢rhT-asu7(zͻ]i7G'-Fcg9 &gFi}=<|0eOIÃ\{kÙ7YK#eǷ^ Sb؞4C#zFw̠6 l̈́ǞbAw{P~b*Ȩ SyU[qLϿ+_LjywE}_@5̚2a{)NB#0+iSt_~7uw&s|{7 ׋_Ή9t> ~}׽/L }O+W7BBMD?t9RkB.8g,3gdʓrI Kaж|L'U($::כBw_̨9;JsDNr%["##U#"刳>ȑдsS 3A:!!LɴlʅDx)܋ȅ'# hPTkFJ=P70Ѥ"ejE䂓3n|Oo{ Z'R~)ͩs7e:%qؼzM}RRR " ""gͭM̚RDz7iJ u&oZLM e<`/R]^TDDt,s&&.l͊#R]g\Yg;lּэ6mۏ~GwkCߛc¢=%3˓Xzq۶?~;[c{'lQb奕 r>}ƺߺ/U:qM7q]vaxir.h4pFWr ᛗٛEDXr"Rյo-gLaK|o{sVRXt i_eGˌEpыSDDD5"RrӧKC;}G"\}Mc\jy<Uގ68F`t'ρgss%ynрxӠ^Ò{uXĽ.9G.\ks '-+ q1A쇗ano+H{{/kBe_<ּ/cNED4v&00P#"æ/֤53roFuedF)AqUdw=l2^ȚOUn?|?o571>pf)|7=5=6cˊN֚Yiwz߿yG?6.W`z| Z@DDNτED l$? WۺQ1}xЫƣ>y΃ׄdjtۏ"]'6×=.y nٛ7o E"""""e>ܛ3ΞEm.#V3iL% pdž)2X?r[QZc.t """"RlF5MwLM?0V~ЗsAyym;qOE'I)9<å2W.7;<@6*֮^s""""Rn}>Upϔg}3PJ*:șDu]ؠx0 >ޔw(xI~:<{?[eqfXptN76k7d͡?בFzA½I'8|ǂPJËA"j1lXOÑ;y,On0UYXd15OM?l6mx^Znvd1g͇ b|;Iڸ3r$BA%zI67S/8)>Sfw}ԯI*H#fR/A14)@wQt}m ?=4[ʆ~^wOTmIą͉~= Op\bW2{,V7KۺѢeT~C& A*U}"vO+/~Y}V~y?^Fnt?7{7b^tkKj,[5Q29N> ""rj&'&&!RmVVV]sZ__R;Cmĉ#F/#3"v&f/\DB|||ޛDl3!00H~A"##KZ9W9?ltiP)e^8"ӧMVgED}[^DD7q{Vp8GltKk9EΦo+܋ : š̭m~. &bB9P|_`^m/9p/""rJ#43mڑSrP[m/)a샃D86-Mg,km/QJlPlF˚\^)p/rIߵw}C52;{iZ5"r߿DGMCng).ʶǬ#%?r%)nyOl}BH!fN}p30Ԃڿ f P ZBd{J׵kT[;X;9a@jEZD5/½¹;zUn#g./Cy{S`s+w`MgۼO:hΠQre]/rsYq,n":5Ztѽ8 ۘ13>_Mg(){Kzw7&wS`o"oZ?TU4*jj6E3]Вmsf`o,uZ޺~hEM'I/L ]X;$Ye  ub\[D#1t)R3 D- >xI&do0zSLt,a?5gz\'LO·>1:)/|ʯ9wxc]Uny9>6:7Ǚu{|w,^ z9ν/'G·䃇>{i ӆOHO!y;s-д"YZ8\^ v󬀿 +N]Ex3;D0o?v~ٹ.{_vb'CW{kvoC+Ms#qj m9EE.$y/|Ű'J=.;ph^% TY4gg$ߵ\8? ]ylwf/ޗU} AAYVv&fr2t]jZKo6pyƫF~ZtErS0:an j;J6 +{[hͼ>wpG@ѵ񬧏ڴe LO ++e<Kej)$[̈́Y֎ʗw@}N Ҭ[O c`-DJrDӌ_޼8=-q7}roR!G7JՈ19QֆUqt˗M)dfx=0s™Ej? NI U|{NGUNuO6Azs)aCo}];Z{.k_&k5 +p>٨tb$ޯf % mR6PpUue\惉Jz½37?ui]:'M#mH[c8[^ {۸V[uKu?5AFl.x[[m=vɎp#P,<To/R Zm370괵-؟O!O~QA%6jZ\փ-,HiRYHFթ@lެjbرq4HGmgSz U\-R(5Ψr⏿{X%cG9IL|n !]&ˊ#*qW38z 9plwdGTeN+٠E)q8gޠYqtڣu' '}oVж=և='> N+?')e;r9h9EE. ;2flZ""aCyma=e&{S?\HteuQ[5#st^nE??Nl>M͛'M?ػ?kX[.ocz]`Y,ywhڏ,N9fͅUf9 bA6imgLl'!~7Ni.@"EȄJYAc%0ԺMBux3!7Z89j:SS :)Scĉ#FhM'=[p/̵\yrP.)'Τ%<:g8#."*::An'$$PsƗ3{ڒj_L$ٟ"?A`AST*W\b%22Re9"e#-S.'"%\LTvS,m{mÇ%WCVJ)RV,GDD3Q8J}?/6ibiV涻CfNӢ0)p/"""<7:sj<)))"ou .el9EEV71kJ9 >xvap/L,ySKlr^,65>giS׽½ƌbgee|P-h Hl1\N]t@mi$-A2qЕ\"rar2rҷ_RQĔ0ym`)ܥǜ:]˙8ip04jh>ﷄ?3^z1Hyyy!rV? 4EH|_kXY7~gB 1v3n֞,ۙMEDL  "Wwu-]½+jUO֙Ɩ_fW+XWXdTJCIK?Y߁_f :_Ξ9W3ʯN3~'sui{Pj׭5{yrvƐ'zo ~m,VEf.'`$mXsY- {p-nT9YdL}ANT#"e)1}45NGG;膻t}Mx7$)#o/ ''1 .`Fnj"gK}lU;H:xKٔG>ϼO3fh6sm:s-OI&3ydŇe;=>X7y U#00T>c˥5R ߧ;KrVQ@nP t1y؛?R.@PEp1v-`y/|Ű'J=6otiH֟+p>ڸɵl8Ծ1jS-0y"n!KDD ~~~H_S1~k鳦>\|ܷ7{mDoa\]Oٙ 9wF}Vl(٤7Fyq|{6,[?L o4#|ִuNetZteIl܇~<9-3عsVfmVz:Y͓rF5gȅ "r^{w5kT>>4sZ{MG\\q-(7?ui]:'M#mHÓֳ=yq]â)\<1~'i~睛jGyxwDDDD ͽKmlݼ;_J[7ERjMfVIvϥES11XSc[+Ӝ:ѴKsY0½-.!/pn`ox4kIx ܢֲhA9>{r"Yƒغk/V-ȿhؐF֊ $],]9n[k|-h]v?C^]i |=ms7gU*""""rrm5oԷ' < <ղ[Nd#3ŷ-O765%szZ iB6W 3OЊ᥏_`Ga ~Fwto_FT88Tq3nbtɲY{)1|=={?ۤenғya9DJ~cmb3],Hyk9'af^_WSGDNԇ:n< w;}P0חؓZRmy>'27=AAD^D?.}'bv$w987< X:S믯k"lߩBqaھa1!?+>`5/½¹;zUn#g./Cy{S`s+w`MgۼO:hΠQre]/rˊcѴϘ4wѢ Lƌ h=Ciշ5NYt]i^D>^?,{z8o͇ZtaKiw>Ǖd9o2N/T ol=uc7P鏯^݃h !* .hH69ToA퍅N+[B0ýi9 dui>QL[b/ܳ`/1t R3 D- >xIndo0zSLt,a?5gz\'LO·>1:)/|ʯ9wxc]Uny9>6:7Ǚu{|w,^ zu燏yfv yiǝ v}GN>?mxgM'-^4nZu[ȹ1Wl=LᝇSI#y}vC{8'|A53!뗳xgj,.CХ?5iSu-a- epMox{ל6Tշi|^Eh:T7?ѶO *Y,mm~4'Q+[֤R`^FlG^ArpFG"̵B&ǫ>l?aݰ'szw+?w]dImd ]í&/7B~!2<5zEE:Fyq|{6,[?L o4#NaT>aWFǏ쎱mFee˫\=fljH!ko4ųه,RIHtHgjDDؓ&Dѿ7[EjVö/wKCrhjWgݳZR= 74n&rY:pg{S W;܂X5 vd~EV/ z{9_,GypQTLL 6Űc,j;bPjVQ  O;JTsǎXs|mB-6!+X)`GKbDIq8 UϾlw3ib{"v Gx6,555 Ym9aff+;qEFuc oFf9#~S{bw4o䯑zYoc%0ԺMBux3!7Zi89jڴTn{Di/Vv BV$Ux Wކ]f9.Hybfs&zGBxРxCl+ۂZ3Y4{M]o܁A̙6;+0swNL"ݟZM;q['s'-Fcg9 &gFisw_1lw#OS$*}oy{Sm/F^WK%=z;3y;yqGz7uOmR&eVPZx[`}ZV[ЬD œ\ 2{ڲ?̇y-Vcut~|ۮ}8e v#}pgZVzҷ >pgh{qX;9þ3t Rrĉ#FК NzzoQ哹v+ON% EGGz3UcHHH_Xfۜte-eYsQr-*) e]Mg*)m/2' """e90Ռŕ j`btZfDoJH|}}sMKI]5XS}ACqi(AD^D ĭM̚ r֒7 & ym3_<-sVۋrDΦo+܋\`(vVVV?؀9(Sm/e)L.i)e%13\}[^DDyyyi%EDD.4L4Bowu- x{2"˦O{2̪|raӗKk6&͖#""R_N ~jjjf.ҘQFD oͬ8fҞI^DD1|RY½(܋½(܋(܋H٧0EDDʘLs/RNh{9)III)G6+++b9CoVe9"""e$ +؋s\Z)܋fޔHg """ Sc{Ӧo+܋\`"p/""rP9vQl9"""LwY~3ݞn9h0rpy)}[^DD/R^DDs3qL" ""EbȠg١!/N9A_D7,06WwªѪG_F_]bN}n@mś? [{9 mqL!zb&N~z5o"5" قذbu-6TRQUrj*ضHI҆8EےעV OV1i7YBj6`pl7q_X4Z`[/2/Kpo}_>ޖ>cꢭD'wXu:{|2 qLɮTj܁wCX43&Dtzj­{qq@קXgަԦສnj\ƣ.Ye  u|_.v }<*0'^x=>~8Y4y *\7%07X2G>I6ϙ3/|J[7ǹ?"G'-qgߚ0}i$Mػm+92fox?U{q$ƾ\q\NK:& hT!L7xTL;'|Ÿ>DE"KOYk _Hx0GQGDJ`@@@ԙ_;Ki١>m5/cLTj> l[ȲxvYS*4Ԃ>6?{%d[ܿ GVw>Թ5kkoͫ\ҝ;`6M)K6=mU|jgP;B/g>O_3td;R)ïoEf9:pSZ]t =|0E7܋>ʥvٙdU層iܹCd 3>+=ISCW">z]t˚cmcim_G>`>fW1x4ڕkhO*GF{{jDxlml?ϲgfNMYfh$z {bI E>k*TsW/ Z] x}QIED^DTsݷ/GXyam];7>S<2_w5?0cͯzN괶.\ẗ/H.Ww:kxS_T,^"rDJHU|wΩqZ RwP@!G/>GGl})0wy;r fuӞpd;pa??vKnAo/KiŰc9糣)=a.*Qu;bu=/.zxf{9b'[#6GcËlGDE.pn8x볭YݰN4W>X ao9X,K|jwocS`\lAt׌̹y V>@LV;$:s+$ě+Y:-NV-e?Q9FjnK=#e4Q̞U{߽.$V[zԲciʀn>i  Dm^?%z3]Ѥ5]*I1.Qt2jP}v{=;Cf(H2ϣ{Me9"6FfKә!F̓OSĽ$9<hZ[fld~L\}he(\;?~`x%s6fNΉIdSi'ndȅ&+_xʄB.+^ߗJ/w[Zg˝+Ԛ͢Sl:Bx<~wj xb]0wOk p} ?n3f7z^#"X?o@ǹ0&>V?##㬟KDĉ#FК Nz=<<.P|2׎sɉCDC"&::!n'$$P7gUiHѪ\rH8 q9m """e9֌y7g<)AH9 t7.ޔYe55III9+؋(܋yέM̚ R Mi y0>>/RY 茐"""R$''1~ٮwİ{n%2n޽۷+y;{L;w.)))Z["""""e gX#ǟ~$l63?H1u?#&[.Oy;...Wxzzn/4/""""R pksª &zIkŗ_~S#"""""+..Yfuۏ_O=_~*WlV弡yEDD<0Sc.]4g>{ ..._f͚59gPOOqVDWvs 9g̲½)ޯe}z֥uVC|nᰞh}_?X{3`M^ނIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/shortcut.png000066400000000000000000001543121473342170300267040ustar00rootroot00000000000000PNG  IHDRGK pHYs+ IDATxgX0ɤ"`A&U)vQ\;(v]W׶*6vA&"")R!BId~ksEV?'r̙ɜ9uL}𡚚ڗNo%%%a`S|i^~}Q(_y޽#GH7FgϢ(:@9ߑh\\\b1aB8q⇧ 4iEEEZZZ;k/^(gJJ 555qqqӧOB|KD"͙3Doxs_0… ߧRFqvv?۷$} ?6>czԼ~:a'O|UxxP(4448qibb& /fppppppyy9`0Ə/10:A222Ο?}ܹkfggwww!'0A.)))P(>>>^𨩩#W_DzwG>~`ذa <<<筭,+** |>}: lggrكD"kȐ!ZZZ{e٭ҩYYYEEE׷lݺH$J mjjGeoo_YYimm=gd͟?EQWVTTtttTWW8p@R$M/TWW|///%%~ŋK..#6m*,,looܳgO2ndddccp(B}}=͖D"HQWWUUU{,QRTTLOOWTTwrrjnn?n޼ѣGOf0 ,γy|||sssKKKlltK?W Z Eџ4͛bnСes$z&޶uذaCMLLf͚S\\d33䲲7ð ܹرcaaai#BQÕRߏX}Ν$E,r\cyy9Gmjj oVfgg+(((((qG5f̘xI}ٳgg͚,ggg<à :ug߿/djjjYY|?ω@  ׯ_kjj(:h +++C`v/q; LE#G]pANNn7o|cd sΕ'O(Lwww---"Ԕ.ٗ⓳6&&## ?~f;::޽!++[VVehnn'<(J /iXs^nܸQ]]޾`bqmmDD" ØL0  d~aaa뿒KIXA6nhddrJ+V "''QWW'][[[괴$}b ϳFq~&oDZÀرcիWo2eJlllmm޽{ |ܹs׮]o<<fkiiK3T*)%sQ+!}vQp}GxgOL~?J?p]6iҤ%K=|PzwMMMBJbЀo"'OVPP?z˗FFFoX{{P(1$##p$KF [n)**.YL&J$}}}1i4رcy<KMM5j$IjjjGGGgg'Ғ4do#z1cHV ggVߗh?>j%AB]r@o&o#ݻ77FDD(**\r=^/vZ{{_~Hop8Ϟ=>|+yYkkڵk9N{{y$k>>Q y-[,55xÆ |n݊^~)N CXzP(:uץo+++WM> 00ם>}ٳBѣG/]4??BD(&''oRٳg{zz٫H$ pBxx8vrr%h>j%AJKK\Ν;UTTtz<3B˗ԀY7Hf-[TVV ]vM2DR(膆cJsL:Ν;,믿244#oo@bΟ?onnzjI"vvvׯ_gXxAfH;yhh<裠s444N:b:;;>}p¥KqÇ޽[R444?~yhիsssy<޽{lmm3ra|wWWWccc\\Ç+**|~EEŁh4d닋ACC_RUU%fF .4ѣGђ WZXXMҏK+ |>ӧÇwF@^>hxXrg?k׮Ƅy miiV-ECQ4""bϞ=sOݻ&&&ovmOOϏ;v\xEя>_qݿfϒuurD"N0w+W&NtrrJJJJOOcIFw^f{b`}BNjDiӦ H0z\'''YYYy!}t0P&O|ŜӧO|9iҤiW(zxx| ðm۶dCCô'N :Ó탇Nj/)++ח3g͛a@coo{ϝ/Zwww}}̙3%999//W^bAx<N}s9qĄ]pɓ'...,+889?1EE#Gjhh_~ԩddd|1cd2Lvttlmm;MYYY--.P1 O5X,nnnFDAAAQQ0E׭[ףU'''#cǎYYY۷OUUU:jȐ!/mp܋/D"mmm }B&YRR2k,A<<\SSҬY Y,͛7 %޽{d绻0L/X-AZZ>aÆ;wN z(J|A|||xx'@\|@  lVhh֭[i4}ZGG_=xȑ#?ڍ;ŋ0[궶r\Abqqq1JD2dH^^ə1c@000 ZjF8qbllԴjժ]ʪF=qD]]]:⽲AmݺuÇOJJ1b SNQWW700}[}*HmmmHHH^^g8m5@`HBfޘ̙3g>}ɓq-,,,<<۷o  mРAS^^^,kjj"b$ (JlmmO`IKK[b FiiuuuIz>AX,\.޼G @ (bXbXEEFX,|%X,nhhPUU%666[BMtRll, bvڱcG$I]]]btww_re̙VVVyyys]~}fffAAΝ;ߘ>JR{onnƇلB!4O_1b55ɓ'[ZZq8է҉())uttH+6ko)q<raOp[ZZΙ3g۶mx8~ tٳ}}}+APUQQy1Q:H5?@ lذq޼y&LXl^I*%%%|r AǏ/\l۶ma…ZZZZZZꖖL&sڴi|m0իR IDATnnnd29;;cO"(99977W[RUUSTTlnn?~=xe˖ð6} 8ŋ]eoot񉏏o~pyX:@p8GEE6xRL&3--/aaa̷fl| 'N駟?s=ǯ[0bĈ7F&(}۷=رco{R |Edee҅.??_KKkƌ^rww0aBVVaoz$JR%'EEEAo@: ~u|Ѱt a---@ HwV՜hUUUd2y<1gUcllL Lfuu5BaAAAk55#F(((̘1?@uuu6m{.<Y <U7777774g͚XreeV| ]]]jjj((OoQ(SSohHtڵydee}UWWZJNNNYY9 ٳg322rssCQtўNOO,׿&wEQQq˖-III駟Ο?bcǎ  +..:DBCCˣ޽m6p޽SNYYYIIIXAr:d2?[[[׮]ի öl"?~k׮}1̃KJJJ,XteeOկH\nndddVVVVV֝;w~)p[nlllHKK#VVV$ `xyyZTAAСCL&`/y0 ;tÇsrr իFɖBYYYA2>*2il6;((hԩ N@JOB3g|ko٥-n߾!+W\p:\2)) |Qpˁӧ?V|$!C.]zϝ|`J aÆ~L *))]|y„ gΜG蛜?EߏQ &##zϝH$ҕ+W&NGݻwYe髃hDDĞ={ }C\,,,?~l``~(z̙]v}»cǎ/(QH &>=<<6GȸtD?Ї %>>^/H}'N?|0;;;22rҤIDHSUUvs)**޾};00PB$O33۷oxK8Q4ѣG .33SQQse5y/dee>}zo)]}M6=zٙN;88UҢE%OOO?b") @>0 ۶mL& СC&N;v-55u߾}b8;;=Rspp:ugkmmMLL>}<=iҤxHy:,,~ݺuk^^ ~~~Cg"rrrzzzy<G x?ꪪ=)G[~} 3f ^9::'eXqݡh틉|rcc"KW (nݺ7~+)) BE3%a"H,H+Vq8___ GDDlݺŋNNNhH-[bbb(Onn.ݹs'BAQׯhnn^x̎;jjj Fhh€|#)]vD"ijjJٳ'##ƍ~~~/^466wQQQ9qNy [@@KBB† >xt:]WW 8eʔμ5͛7ĐdAdrLL ~r,,,v]^^ꚕf?~>>::@iPPP@XÇ % 3w^reXXXzzקM^K4l0uus {{{KC%%%Xp 0ADҥK_xb*++7lc@ [˗L&ҥKP(۷2̒Yfᑍl6ߥ333ׯ_uk׮ bŊ&|fCGGÇjjjgΜ`XYYYcƌA"))ϯ8''GMMm֬Y,͛UUU"! l;wB!iԨQ/_NOOFff=JR###O<'~cim̘1ϟOKK0a@>}7fϞ"}1Coou-YFݻW2/㣭=nܸ5k֔ĨQH$B8qbVVP(,,,\l΂ -Zdnn 6l(((0447o󽼼233---?7J={6ͮ_f Fե4CBB\\\vرfmm픔8:>cƌcǎ}/qUTT 흖b(kdff&//?zh;;;GG}-_\[[;##c֭T*uذa!!!O_<8r~&|}===YfWhhh&''KǏ=ztƌΙ3'((hEQƍiii#FEEYj{Κ5wtt}4N?ydnn:Bollċ#D"Qqqq{{_5vWTTlܸo^=zΜ9frrr߿޽{544~'{{/gxUUUwqɓ':99%''oٲEEUQQyf@dɒ@˗4СCW\qvv>q޽{bbb hա({r;;;oo| rrr$Ț2wZ[[:88ddd455khh <(//X,.,,lllLcuc3O<DO>o>k%;::$H$KZ[[B_%zݲ2A={ܬr ¸8ggg###33DF[Y{'se>_QQQTTTVV=rrrL&3..;33ݰxERRH$zY\\ܴi޸;େĐׯ_ I aaat:СCSL)))xDSS3;;eggO>UUUtEV^MޙW^!]ZZ:ywJŧT*Uz@WWܹs񇕕UKKK[[ kjjz$p\"\nddFC$//``C&T9˭SPVV>yG~RP8rH==GFFN555|sEEE|>ɕ $'']]]^ ={bΝ;'4fgg`0RSSbxvðG@EEa2d^444H%<|d„ 񇥥cww7/++#_hѠAP500UxB())ÿdBCC/]4{l___% EQ%%&ckktfKƗM| F[l:t((,,P(}7҂ ˕ 666x| "Yy<^gg'x}}5>\!gF yD=1 @rΜ9۶mlGdrsssdd3DdʕQQQx8>כ֗G1 cX}@ Hրϗψb}ʕ3gZYY͝;w;w,..Ns\$++;hРuֹR(YYY1,$qa…D"177lvII5FkjjJJJ>|ubbbww֭[Ǎ ˗/ֆMb|>mmmaaaᮮؾ};4*m鍷M6|;_ [[[:&psNcc#~TTT{zzԄ t*˫ B FQUUFz#(⭢۷=رc=STIWUUU$  68::Λ7o„ ˖-G7x<JlfLL̙3,Y_3"(++k„ nnn^zV~~DžBĉ<(=#,y9tĿWD$%''JF_R{T&&d~C$ƺ[YY(8iҤާŋ .,,,ljj*..&H3f0LYY@ 2o߾=cƌQF(wVE(:ujҥoR^pgr ?U`vuggg##۷o#+k555C kO0aر?bzzϟOPD# $MMMDرc}||nݺ%=DO^hB|8^GGǚO2L&`0n޼c EMMMMM;;;SSSP$vvvV| H/_RVVVӦMKNNFQtڵ֭#VVV222T*_[[޽{Z𶶶R"ܪɩ.[Ç,FUUU566d TTTbeee ޡ 𺯠x2Ex*2TXXޮ2}7ݻgdd憢ѣ===>-,,={%WD"_D"1++?i(:OT~IIIG9{,:tݻ޽;awOMM0R'O r̜ &ܿNJvZJJJ]]ݴinݺU=uV\)]0BCCMJJJwwwJJʷĂOVVV!,knݺw^ZZڽ{233_@JJJ,XtȑSo}$c[[ڤ˗/رƍaaaÆ .\MKKqo #|UerrLJJʸqtuu%!%%%W\pdӒWܱcǞ={//..>|ܴiSFFƍWkooߺuecccLLLDDDZZH"Hፍ kժU ›~~~K)\./_ ݻw p}}Ԏr܀##ׯ_3˗Kdb822ɓ'fl6_ٳ֖cǎ௒}W?~k׮}1̃~ KIQQq˖-III駟Ο?_ gΜ NNNKĺurl2&e__͛7^"xyyL | |T'7SDcX}|Qh!r_F;wJ^П@ 'L||ի?vg'//ȑK.Hϝ/{gQP?ݻwYS?Bfgg{xx_]""##b |‰'-ZԟȞ40E?(**޾};00PB$O;vС+W8;;8qb޽aaa^^^111{MMϪUbwww@PX,u,YBтkkk4Gmggo߾˗kkkgddlݺJ6,$$:::G)c\M0şH$.X bvҁbG1cFzz: s Zxq.oEoܸ6bW^^xd2ǎ ի>oWUUMJJ-Zz5NOLLS,(((HiӦ]pðWbKK˼;;1cPԑ#G>|O$&&⌌ h aG 5kADUU ;;L&'%%UTT333gg܂ ]]]ɍ@Yr_D(())i|XAцP(d ;;{˖-Ce0 EEEA01dȐ>Zuқ:;;[ZZ"JAEQmmmr<~B<-W,^bX,3Ĵeew޲D"Qmmm@ 3gζm$544Q@2) ߘ8DdʕQQQxx,PUUUr(4H2aRUU_jɓ)SBW]]M bb|lيX,3gŋ;\^^kIE\\\Fk׮J999OO϶W^NGHWWWkk~ˠP(p`O9`5}tHT\\d2={3f5jƍOH$RE$ PEQtСZZZԾ0 ~۷DVVV(:::N4)!wq59wmSvW!m"f!2v3!BCQS Iim_%5hQݺmve|u}s>{y|Sd߫iuu x0%%%)))\v44478XT\.C󳵵hd2YIIIQQTWWGu͛W]]#&d2bbb "!!xbWWנ: !!a?@$\nAAʕ+srrz{{w )f111۶m۶mkii)Bpvv~eAAȃZ[[|~RR|pN:׮]SRR0Ν;֭݃[n݊k.ggg|dII޽{;;;RRRrպkr8Q{ܿ畕(((xiii}Wwޜ9sL?2CdͿۙ3grttx,bWPP,xW3a|>%%%ǏOII_^JPJKKwkA,Y ]hQAA~Ph9s?j*AH$ҭ[h4hPfffU\\,++K$Ǎ710jx<KX,V{{{ZZ2ttt TTTh4ZZZhGƢÇoڴi;88 ] F`CG`drxxٳgD"_;vDDD0l…6ԯL&俑;u!kjjN4CuΜ9}]EEQt222?L00E===srr.۶mh`bb2X@ ؤ3K.M0A𮾾۷zzz^_ȫx...$D"dww|!MLL ~WMM޾_{NSԾKx<޺u ?~< p8/_\t+,,lmm]QQXQZZz׮]rrr$L00>E `feeٳQ E/]TUUiӦ'O߼ySQQA ii_~tBa٣5"l p8;w %HHPggW$k׮}ISSSee3aD"~zׯ OeggL*PVVoKLLͭ[RRA7n;wd?~D|8SS[n-Y_mĉNRQQ %r t+Vܹs`\pANNE۷ر#22r޼yX[[߾};!! 7n Eݻ/iԩbbb>_ Zo;w~l@@qTTԃ񃮸ݻ?_EMLLDDD%jjjT*ɓ'@DJJJ ~o0ashhڵk\rGG &XAuuuIIIWWW˗/8pƦ ҍX'' 6HII޺ul߾}˖-T*ӧ|˗/ϟfjjjԬ0 sqq6m={^ Ξ=zt0 [xqDDDbb|w={v%KlذS jjj˖-ﺺ֮]ϝ;S++3gnܸqfff?vuu0D"qΝϟ733{H)))ijj255EEQ!_>}jiiSTTdiiࠤwY11O_jU\\0ԩS} qL!Gӣdhyy9'UUUݻw>}' p#Ъ0gmmm+WTUUmhh&>%%A77⮮.---__Βtsss)))333__ߺk׮͙3GBBAⰰ0S^^cUUk&M$##ޞwpmT*5***..vƍqqqwFðK.yu Op8/_IKKSTT|4mii[^^&M$hY޺u]]]cd "''NK*((|#>h" (ittheӇЇ͛7_QVVW_ćnڴIEE%'''99yŊBBBlwnl<<<.\b``з7=,kŊ۶mKII?.!!PTt D#!/^ MCA\.a(iD"X4/zڵkr2֬Yo$練s\E1 266&y<LUUU##'112ez]]]ii`%utt믅}7778kk 6\|9==޾fy^ݫW/yXΐ7nyyyٹ} UWWYӦM6H(--%\.ݻ/9s&aꜜy***,+)) `h>͛7ѣGL&d3FlCxcǠ6(FEE-^L :. F߷( WVV677Ǘwuu!W_tYPP(>V|$666***YYY xOL&sݺuo_xǏQĽ{̙d2矔nIEEE {{{~M*+(([իW ˗nnn;wLNNR,̙3COQϓX{{sNKJJRRR^ZWWvZ ۵]xO~|~PPΜ99rDVV'%%dw#~yyyzz:컼իW/_LNNEԩSG]reDD:;;o޼믿6 F\qqq}}}fffOOhSYYӧCCCLMM㏈Emݺ5##ٳgd2yٲe≉5 %>-aEtt4᪪@G\]]͛l65>>:hh񖖖C[bEyy9\f`YZZb ̄(Xttt&M4X}ȑ_|2arXfͭ[DEEGqoeee:::#[Û6mzUD[ ^~UCCC󣢢.\82!""r̙`"8>.2ٳgD"q޼y222(((|o]r%@t0[uǏNaqqq333 2D3fhiiPtV} ֎ț춶C*TVV666񟁑Qaa_M"FkLᑜaoo xڪ322|rff&SRRUٳ%$$!HQQQ0H$ hn._ҥKd2L&cpQ?㹸H$D&,p^t'}IIITTTr9·i䬬nooG(1gLh_}{VUUF0BAdeeY,Vuu5#[gM__ǧ~066޽{wnn. vvv/;jbbbccs; >ڊ XQQ0l֭Zu6NKJJz{{{{{}'32P<p8.ᇂTcAݡClmm+**N<)8Op|999ݝ;w^~@ ٳҚ^|닟LLLRSS_zU[[zjrʤiӦ444999H$Aڵk޽EbbJKK[ZZbcc'bt䦦&Ç}||,X`0X,VAAٳ TTTh4ZllKvvvssG,X Ȁ}éA &\~d3_TT*8--d[XXȏx<|>H$:;;$%%ݸqCWWAqm۶-666==ߟL&8ǔ˗/s\999(;;OfffR~ߩX\\͛uEEEݻ-,, )~ !bbb2rƸ'  >|x3fmɒ%uuu555r?~]ŋ=zŋxbbbnnnյޒC0999ݼyߟb۷ر#22r޼yJJJ׮]366qۧ;---'''K*J {{{Y,Vjjjoo/+WBCC>#'N <۷`N'&&^vEQGGEYXXDDD,[ԩS***ιcL ۹sg߅$ٳ/_طoaVǏp7p`G`EDD6oތa:ZZZEEE6lP( 4-33}###O>-,,K"bmm#}}}2|X111///QQ߼yVPUUʚ1c ::: ESS$??d2Ν;BBB}[uyyy)))D"q钒fqqXwwwaaa !!ӧ??#aeeeM<ÇvvvD"qŏ??1͛7QRRضmŋƍ"S222 :::UUUZZZ et˖-"""?zHCCCЪ,,,%&Mضm2H$]]]) D7n\8#/6A&M4eE̙SRRaX@@@yy3H$իݻwH$Oa#'''))~ĉkPOVV6==o JII`xyy)++m~#}CH$RPPӧ'L XH$$$$P]v-@;2KR NGDTT`snhUJJ*66 Eљ3gKKK#cр/ӳڂ/^o>Eb9 #pf0x^]GGvssSVVy&񁞾z{{f̘R>obbR[[U[[҂ @x? IDATb||ׯ544TTT|}};;;KJJ͉DҥKcccz{{CCC/vtt%$$(((Fͫ 677_rٳgQQQeeeT*qr8NBB0~п֬%''Qkk7iddTYY߿2۷os8SrvvƓrss񖫸… EDDۉDw}_WWSUU#;0 sssjׯEͭk4..NNNoVTT;wnmm۷\nyyy@@`YV|>rƌ ,0gƆ Hyy'O|~QQQCCJLHH(((`)))ϟ? {^x!++K|}}ZZZ]6g>>qqqgώeَ}snݺSSSٮlC3gN]]]BBillXerrr{{{ggg^^>n3DΝ;333i4 9add_eff^r?-0x<ޮ]Μ9waCCÍ7N<[p8vrpp[]G>J>,$$$--mcc#p8 [pRp8(*,,dɒ[n 6ֆ >wo 6by<пYRRիWx&>/)))%%%(|~}}=JEQTNNn֬Yxy2(677777KJJiWd2UUU=R>>>#)++ۿ?8yuttHIIv\c;eaaa&&&D"1## RRR#ENN{FFF:888::s1?ݻСCeeeoPWWW}}ի麺L&=>aN[~.--~%W _UERRr֭>>>>>>L&-<<_]zĉi4ڽ{ۗ`09xcÙL/mރN;w.//O]]Ҁ_J 6nٙvq[[.miD"@@QBo)))6lܻwoߟ&gX&L@P 惕$H|󍈈...fD"155UEEeٲeD"J= RQQraaaK.5k#ڃ(x⼼<| lxbÆ x^Ǐ_x1asss þk<A$%%+Wda7PƿZ988h4 &Ly%T}b}YYYmٲ`k%%%Kyu֭z`UQQ2D[[۳gP5k0WdXIIINNNDGr~~~vvv4L&+)))**6uuud7oSRRё |7|SRR򮕰n|$k `0TUU a_}ۙammm4m{QLRSRR6m8MRΝkee%''MļjjjԬ!V:})S666nذ!''g˖-zzz}jK&--w!?wӧO=<<˗;99sܡOKK\.=V:www6f{{{]\\O::k,I<^^^]ʼ}||<=={ @ppplhh,--}ƍZ gΜoW^9::R q̙ϷVTTlذaN;w۷?jzj˖-rrr%%%xwwwAAC;d2O?((811q8ڵ+***##wrr_ݻ7::Z0߆p[n|cL&s׮]666IIIIII;w7uAWAsQQQawaOOOWW>rދ/ O2EKKlE|~|||ff&eXSoGr?7)'uznCM:ӧfOءh-—\+++ zD"]]]FTFFF!&11˗#a`V0v}gy?޷xrrriiiF dr||YF~7>1w|,$//OЇG$uOsԩ+Wҝ>TSS{-[,9::R( ggW@_^7H?&((VVVgΜ),,}$%%uww[n= ?FF` U/B,-- #GPx>}zVV&@9|Mi"x-_z9 wxТE0 {7nXYYx?~<>>Cr]]]|>:::l6CFΝ322,*))Yf@(..>qċ/F1ȱ?&NhiiYUU/ܹsy<0AQÇ }ĝ;wfffΙ3EQ.;;dʔ)ׯ>}:Ba27o dWѦM&NpJJJ\]],r}||JJJ!H;vHNN04??իWmEp2??u+ cccx...$IUU511󫯾:߿_\\<[$oM IIׯ}[|.+##k]]-P(l6")..wޝ OŠRRRǎ 511rJz_|>?==AQQQ11"a֭[Ćٳzzz ǎR}|Wjjj0 KfKK˗\nkƒ%Kjjj80nܸ=$$L&#ѣG_D0EQׯ766ihh;vxٲeF0~x<|>?66655쌌 iiih xϛqZZϷ nnnwYYYӦM 066z6.N544}Ç FXb NЪ0500BH$ qƉٍ_pG5f[nZjӦMYYYwΝM<ÇvvvD"qŏ?Ԥh۷oԼ>0aBAAi/&&|rmUeeM$$$H$DRTTqpphmm]j@XdIss+W$$$tzRRҁ0Oٍ'NðAcWII`xyy)++ !o꺻 ^HӧOO0AH$HHH(vZطFR NGDTT`sn*$$doomaauz(NNު[hQNN9t:="") r÷f͚[nv `  :;;Skkk(// /**jhhRťx.Hd0o+++g̘` JJJzzz><`0v/}LL #<<իWׯ_T[[c"bMMML۷9NJJJKK>:xڵk5533cMMM999l6PVV/S\\rssskjj\Ԕ老'---Z@ xyyUUUuww b>{츸X]]]6XQQwĭ[Z[[|~jj0Omw˖- COOo͝}ם?~LL|~BBBLx>XXX(BQ2993//C>g"c;ܜﯧ7RرpqqqqqGŇΖ@ݻ̙3K"V\ikk;~x TTTPqƖ-[.^hee`0T۫_tqǎgϞ |-A|~{{;$88X\\|ٲeWoׯ+Wi(͚5Kp%"""ܿѣG&&&W\y {Μ9[nUQQx***.\ӡ-<^nr1 0l4(JHH477][~k]]˗ttt.Xĉ{ylϜfm-[fccwE $%% }@E0 m 3O`Ŋ'N8uԊ+zzzLMM?6qTUU Nyzz.[ĉ˖-CяݻСCeeerρ l+ˍ455upppttI` dX,YІ@ڵk4M /\~III>Lfbb,JAロ2eJAAǍN[\Ο?3sL##XA[ihhxw}7Crق~W򮛻s}߅< ODEѾأOCRRr֭>>>>>>L&-<<_]zĉi4ڽ{ۗ`0jHHHCCCYYD0رcL&ŋ۶mۡ NRRґ#G={DEE=}433JFۼy3^{155MKKkjj*//wqqGMLL;w~:@藰vnB"dee<Λ7o&$$ܹs/_\v@"##WZtȔ'NU'!!3Eg͚/L۷ooiiy`khh---$fkkkCB aslV\v@a禤$%%+Wd1~xeeoڴI[[{Ŋtuu!Nԅ1 +**r4:``︯\.ΎFd%%%EEE>֦{'JJJ:::oo!#l6{ҤIÌ?\v-~fHNNPPP@D___CCczh4FiT*5%%o3// !T*uܹVVVrrrt:]LL˫FMM AjժӧO8:::::N2DDDkMMMqqqWWW|믿^|?|)))///???yyyWWד'O***FDDXZZme---YYپW222/ްa`{O?٩&//f%%%׬Yֆ߿_~oD"@8zǏϟxb0رcʕ+gϞ]t>譺Odffdee ފlYf:9¢c>%CCk׮eddرףX#G,SRRyUV7gΜ>tУGjkk=cǎ)S444:uTGGg8*++  uqqy,!!a>>>'OAAAƉÙ wULLl׮]QQQᅮ5޿k޽n_~E.>>ݻ<ђWdDEEu߅===]]]x x񢰰)STTT|}};;;KJJ |>?>>>33X,~[lnnlllpႮ.V\\5`6j\\>ܼBPܹskkko߾r=FsLXs:CCCm۶i9=a%%%1 SUUUTTtmii 몪/^p8uuuiiiQf_~}%##%rݿG߀GS>}_Ǐ/^L-Z/鹹VVVmmm ,+((D"-]))~! !244| 媪(zȑׯ_׿w>x ޹/G`EDD>|A… tz]v#*99qtt|Oi% mذ!00{ IDATҥKW^MOO'ɺQQQ״i"""D^vvvIIIǏGdǎ[`>!Fdĉ H ;$AĜ Feeh`Dh4:?xYfMȈBrrrxxCEQx7iddWWWwG[[[UUUioo7nFDXXߖׯ_/Y;?GA T*_EZZvH(=BgddǛ b}Κ5+99bUTTݻK 6mTRRwW?ĉc9ƃ*++\vŋw=ĉ/^tƍ 6#hG&$$0utt믌 XII)))i͚5wMMMuss\?; n044}{14H6uT|Z\\|ʕ_Zר͖A'Nr999^^^/NAAHU8},M F;B,-- #GPx())1 2ځc'7nܰ"$$˫TPPLHHNa"s9s(r{ oÇ>}lΝ344D|2..˝Y> B$%$$͛wU*Z[[/]tX EVV6??fF?]>qHܹs=j``p92)**/hjooE䧟~^|?<cȷ|>fffuuu---׮]3gogggIIIzzy'33755p˗/{{{/_fΜPPPfSRR?fKKK_x!++ۯ .JII-P^^>_TT@RKKK.\ .Hd0oG[UUeee5cƌׯ_ihii%AAAmmms`_E---;;;ݴ(.X@FFftPa0zzz#U5kʣ:$//?Roա(*--bd}}}}}7L&~JUQQIOO[zPμa駲 "$$$$$Ԅ/jmmFxioonnn0 Dɹw&===7nܰb0oGpvy |ɳbZZZFK"=X7oޜ4iܱc\\\\\\ I`…'N~gΜyfEGQ1?܉'2իWt]]]&)(Z^^h$VAf2x]]]t:IP$$$%&$$$e<K{! 2|90\GG'<<|-~:::~~~_}/h3grͻw633333olhOܺulkk _W^=qDv޽}7773 vXxx8|Ŷmb xҖX8--d[XX77;w!5mڴ/-废$++un޼p_r5KK۷oNwwwOHH\jUWYY OvZ ô>UU~AE[[E?~޽{IIIFU'**pOFFFX$'''UUUAh4FEEEuuuNNNǏGDEEE^^0a8f<,+..nƍ< "FR׬Y#,,,--qƜA mmmϞ=CQt֬YjjjƸ۷QVa>>>mmm,k߾}׮][bP(kllɱk@D:::%%%Mю}L&+++{uiއ\.`XfZn]MMcmmm[[[aagWgϞddd7QՍŝL"V\YQQQWWt钒?~*f2۶m#F?~|ҥk׮}+TUUqolllI]]ALbZZZ.\@---xBBBFF<8>XؘhhhHRmmm9NxxT*MIIcǎxU\gÆ n}:zzzK,,Ο??%%A ++?zA݈]v1 t@/r^^^Ǐ?~8C#H󣢢X,֤I6lr=<<.]fOAo2ݼy0 ѣIII8v>)ggg777 sU^^^ׯ[k׮?s4RRR,CEO>~ & "Ξ=[\\yjiiY[[X}z JUUUx8d21cƄ֊۷H$gϞYfщbϏh:;; Bs*b-B zɓ޽+ڷǎr[ZZ]6tPZ\`ׯ_ׯ}ͻP(xӧO'FٳgK$\ @@۪:t'.\mffի;ٳEEE ,޾}{vv6 ~Ltz6ԩScƌOLL<| PO[[۩S~=H$1hicƌp¾}Ҹ\7mڴk׮577?~ݻ_|jǎ %$]%]|rO1b˗  uuuwܹf͚˗/+++h":NqƫW677ڵ} [l 555۶m{?cgggmm}om>'_`0wޝSSSGM211~z]]]ii']]]]SSﯩ /,,r:omll(|>0 ޸qc(nٲ%###!!!**jڴiFFF!!!7o$HIG>ӧO/_xjnnN&ƍ ʁݻzU {ӧO3%K(jooyOqhbȑB0 ʪ}ZRRχ a+bгSqx"((JKmεD_]KK?(eկ_^h soQ68%dr@@@mm C } @SS3))ӧDO>iii0 n_ݳg;6|˵Nd``p}555??W^ 0`Μ9+Wtrr0lǎ#F;va믿b6booC666?iSгtuuMLLbbb/q?|왯Srr2 ...nnn߉F-\UVV_~zmm9s,X@GG}ߌ3ٳ~zp&tԩt͟??+++55U149`KK˘Nͽ|\.'ގ3FGG'&&UUU-++p8cǎ%]%r` >}*Htuujnn޾}ȑ#;L~~~QQZ*)))rG y5@ -7 m E=}Ν;ߟ9s&qd,… t:8 @"kkkϘ1# bSLИ8qbEEETT\.aLLtZz7,uuu;SH$???XaٳgLɓLf\\hÆ cƌH$ dMppH$jmm|r4aㆆ}}PSSe˖]VSS3""UVV.--}9 Hxkll*WiiUTTdrkx+HChg>Éuuu999NNN***<E9Vd2Y ׵I"\~͛~~~˗JJJP,0`aDqpݮSSөSjkkS)S9qss344hWO>-,,dX}Aظo߾</99Aaff ȃhooa:\Y_~- GUiSгd2Y``]]] J522ׯ㍍ă0ٖjmm=wܪUGU/[Ncpw>V  0JbDPOmm#F ϟϞ=Ip~7o޹?}yO3;;b-YDUUXx⪪|"öpW{IsssTVV&H󣢢  6a,))QVV.//߼ysmmmݻN|رcnnn'++Kַ>++W\nB?^zuʕɓߔ%%%k׮m?O׮]wwQM\\ԩSާc4hPhh/JKK9ptt466 F;vʕw|>РABpVZZz [n|[[?#22שׁƍq@|LMM L^n]hh(U<\7pӦM8o]={\zð%1cFFFΧ֯_#YbĈdѣӧ+.oqé ӳ}!q3f qwwGJ޺uk۶mVVVIII[II@ {yzz?㵵lٲf֭QQQӦM322 y&Dꐏ;.]2n8Eg͚pǏGDDYgB.KRT*p_reLL NW$0,00ȑ#wx?;wC*++}}}'Fƍl6d"2pO8AR7mt77NOXA8NnnYa0qqq;v3gDDUUۻ]n8/""f|rӦMĥQ]]رcUUU111#F@u޽˗////?vѶ ;TԴo3qڛ;wn|||NNqAwݼy0 ѣIIIMk׮:ggg777҆ HKK˭\GzfRRRhh  FNNN||333uttԢN8A=z4o< <k``qQ Fŋc6z;ZZZiiiGhqqq:::qqq>>>t:]CCŋW\166".[n}ɍ7 'MdeeUWW秪ڧOгgǣN4#0,((Hq222JMM߿?FCވC=zm#qqq3f@Qt„ lݺuǎD'vjLP۷oo۶BENWGQFQ(D۷S(++gϞ͘1C9x񢲲2B133SRRӧO||!VQQ~z ~2dH~~+L;wǏ͉={kjj:::>xEhii5///'=aG۷/Jݼysff&#G/=ඳSWW144$+ϝ~׮]dɒK444bccFu/1󡦦###BEwٹ޾}=_]Cw[-`ѢEO>sgΜId`r:niiiaaall Hg̘bAHHȔ)S444&NXQQ%>|LCC,ŋRA #F;VEEeʔ).]۷ykk.\ō@ xgJWUUܬXaٳgLɓLf\\K)SXDdzߖsafeee'O4㉉yyymmm)))/_uZYY>eEEŨQfΜaXqqqKK q|>_ 322:uuNOX[[[.JSRRرcd/^Jt:]EEbijjhhhTTT|> 9998?|1 [[ۿիr|„ xA饧 tGG.kiiEGG3˗[d޽{g1cF~~>G׈JxoddܬT*0KbE544+zd2ٛrC=z˭ӏL[[{Сqqq[*r/qr@9%)&% q\.w~|r}}֭[}||N:ܬ8***&eeNOXI&Mqɔe˖/[ny#GS5'&`Fh4bA[[5w\]]ݘA(JCCŋ7|bFڵkE"QHHðs?11AeehDiӦM0!))SLqFii][n-\ׯ_d;wܻwoVVVKKKeemN8!H~7?El"JoܸoܸqK.e0K.H$$iϞ=;v`2 cÆ T*U`ffvusΖCZZZ}={r;;geed/P(lmm-++svvRlf׭[>C>I$ HDg555b0h4uuuC䏢@ ]zSyy/RSSg͚u-ŝ8~2uuu?C@@;ws_+l;nd'X,CԈGA p\\\w'//oٲe ܱcݻ;MԤxbF}}=KRUU6m;I"N>=a„|;:h"jkk+OZ[[}||FܹիW .C$999..)...))dO>MOO'6DB!$vϙ3'33AK.8hbbRTT4dȐUVEEE9(CtwwWܦ^wG`MMMNMRL2rBI$!F[zX,~iaa!ӧ }xɞ|aff ȃhooa:DUV)))X)**矉:wwǏWVVVTTE%$$edd5ѣG<d˗2 *jddԯ_?fH$H$Rjj ]0l& Ba0_JCG r@@P\;ѹnjjြMNN622Zd q̈ӼS}%rp8]:x<&nݺ}R("n/33q7p@uu#6mZuuuAAp8,+66ÜΝ;7!!ȧLtG^^MPP󳲲RSSON|&&&#F 6446){1Z*>zHII蹰Һy&ѤC&}#GvkVɓ'+++Bxx8 $???**bM4iÆ \.W$蔔466FDD |;v,,,} <sԩ,dfdd4"hÆ r_~innnll,,,TVVBT(յ8Rbb={lmm###Ϟ=;dǯ\bmm>\ƍ3zj/8;;''''''o۶MII&)))׮]rʷ>iҤ.?}P(3f ѻ" ρӧOZZZ9 l⠠!kܹ֬嶟_z~JN_x{Z[[?wx H]]]NN !/dddt7;Y>ݩ@MM uuu;K$ׯ߼yۻ;傯;l|<$lmm#F Ǐ;99YXXty[[1_D.SBQ"}8qbіr|>O>t)4>J_#:ӠABCC_xQZZp 8޸q#&&&88x'Oۇ8GDX,f2ѣGG`)))JϞ=z'LVWW_x qƍijj?~P$Յڶ.^X]]R__]?AQɓ'MMMDܛNPPollGj%_r|ǎ ESSs׮]ɐBxzz~=UZP(d2MMMNǿvnnnnuttڟ+Vسgʕ+޽+J?z_d7oޔJDJKK===) DZjӧO\nEE͛1 #ݽ{LGG'((:::ѣGÆ S]YYr O`0wޝSSSGM$~Y (Ο?ƚa$o߾M&w}&%%R([nm۶Xe``cmmaX``MΟ?fll| 6]__d2><|__/^,\Pg 8/""f|rӦMd2AuucǎUUUČ1d7np8zzzT*CVVVyyy #..nǎ|>`̙D>}]RRݶmVTTZoǏ766 Hrgggš@DOOիWEEEmmm5558}|ݨT۷Ν;333 ԢN8A=z4o޼M<A===###A̙SPP0vX*FT\!rF344B[uD;N]]=&&АX8q͛79ڵk,YxkddڽE`4IDATйh`,&M|reaaall HBX,^dI]]]uu5D7o^\\\NNNkk[ fX...|>ALbZZZ.\@---;L'VTTDEEaÆ1cxxxH$ޮKq\v… ]oAյVTT5j̙mN2rrrp!c0WmmmkkիWr ,,, Ĉ]wd/VUUID:bnn`0kjjA饧 tGG.kiiEGG3˗[d޽{NWWW^ZGG֭[d*Y"%$$\*l+V aO?Ft۵k͛UUUkqzz:fX˖-h`ѢEb8%%%,,ܜJ[bdMMMee巕e˖='Od0HR@@$jjjVFYNrD|l6'?~`pޮg8h4Jsuuݶm[3***͠˗/ٳgӦMO>;wnLLLRRCs&|>aƌ׌3{ϙ3600:u SNv>;=6ȈxHHDrssCl̘1 M&ÇSx<މ'կ_. [l٤I,--w؁(L&֪+++ N+fq<4 AE555{가q"+eL&sҤI h`tzQl\x-ɢlmmW\>{.x,C榦&ŐF}}=ϧhrE^ofB)VQUU6m%K,YhѢL~sRi4[R?zhtt4-..&bxz_7\.㭭{osԓ_AYfС,ӳO>WMMmذad2Y,H$\~yM4 EQeeaÆQT}(p*++])ihhHV^->}id2Y=x` >gzܹUV}!SÆ ={vqqqSSSuuQ1 3gn[)// M(6C,WgYx<\n]߾})+L,**矉:wwǏWVVķyYccJruu2iӦUWWp8bbcc;̙hlld0 ~Ȑ!***JJJf͢镕dE7o^rQNNΩS' H ,:>*D RM6577蔔466FDD X%I~~~TTŚ4i҆ \H$ztZ\^^޽{>p;&zȀ]okjjMIIyyy322*,,tI&p111Dcz֬Y555D;ӳ|[;pҁ | U|+V24UZZڠAH~6]ZZjeeՍ/{gT*5""L&_ݻw)Dٖ|X(8EQA\]]':+mbb"F[`ݻrG= \.JRL&q|ʕ111t:/9r]s:t׷}bA򌍍 >p*++7mD&/^=nܸ|///EmmmҸ\nYYَ;h4ZH0 =}:ɴd2WZn>Lr#F1qĬ'\.H4u`{]]!1'CbEx<^SSf L,(Δ2L6 g̘cǎ3f~ND\8Lpww6mڵk״yaQQQoW[(6Ǝ{٢ X[[o߾=;;AWWg&t:_~ڇu떍]WWmqOOOohh@DUUUMMhlܸCCA;vs)))nnn0@Qƍl6d2ݻw7 S]]p\蘓ӷo_"Ço{9y}}}_xpBAlll߿/jjj-[f``kccCicceddty>'HZZZ$޽{<ĪaÆɷn;v,ndחF]x̙3~~~;|xxsPǏr˗/|=^2JNNљ7oD4hO?-z^d2Y``]]] J522ׯ㍍CEtV«W'OBQt͚5d}$Nd``p}Y8jȐ!MMMSNEL&ϙ3l6HOwuu]]!CbAKӭ   lقaBɇ2iӦڵ۶m355u떅ktuuǎ!Ym CCC;=Gx򥗗/GQtĉvvv111K/mܼb 5kkkk(ðu |U7Od޽{ܹs]){챵LOO?{!Cpr劵uRRҬYޙInn;o֯_?dȐC <OUUUxEEŨQfΜaXqqqKK 2,88b\pN[ZZϊfee^^^~DXXXCC}ۯS]zcgCCí[*z?>u޼y^tҥKH$kkkb5k RRRQ"9ѣG#G|sC.;i$uXXXXXbՃlmm;KMMMMM0??SLiv]dԃ5|;Px;{._\__uVSN!"JM "C|Ք)S6nhll,ˍ/E޽xbssÇ=7R_~Yr b}]d2 0 "\,woD}NoOְSD`Sv ѣ]\\wg̜9ѣGpWΈ,H__˗/M:t񩩩cye2YTTʕ+݉n2M$PWWWVV M p̙ &L81..X^VVVPP!LgΜ Uu,~g(yD7$Pl;Q뢮NRܶ#i|lL|L3eccC>MV:{gϞEEE_effF̕  Drss344hWO>UlB1 +,,dfffD= R͛>nTrrr˳Y|޶hJ znjj* ùVVKZ @,=IDATx $Wu%|EYkWzQB 1lc1H`[Hx@?`261`y,vfÌb1b3kZKk=#^;""/%22*߉s= MSlmMv-dlm@y bN-%IB˂\~20(Ո(5Qk 4ZZY@%D^7rJm۾VVW&f!iBGrJ%Ñ(њ[OQd__]({Sq%RAݮy^Q<kղ|sjy~BfS>djCi߾n3*u Rc (1b~8P4f'T-GT2O*o"6)c-?I*Zc!}x/ñ1y :Mb,?cx^hܛT*%DRH2;Ʊ;w٧8.s~p ?ש28777YǾ:tȀRHf Q `/YđA,f,RT`D4~zPh? `ih42 Ta @Y5kd\hX@K42d( ?~bJ`YXhYѰCQ9RPNK4m0R V2G}ܡs`-.t> Xx I zv?@1T⋋ه9H~5@1x%ɐ/xM$3 H]Bxq_@}(U}B"`,j{A{dp?kM-zkf 9`TlXӀ #3iC0+E+kk֧ÇWiuuØud`fb 1?;M~bnaTh3 r03Y1 Eu * y0ca/ @ gȦl&1c4f hTh>_l.Щ]ĊRPNe;9c$ 4 TXȀ "s@nʾ'SZeX,T`^tH Lw0H\`$ αErawge59G PN !_ċH24,ULhRf’Nrdm*fS6 LJ4ʥat !Nλe[l.5/invMO1@ oCo@zdXl)^HfffƼBCn ,̕LBM*:,~> 9&u !?Bn3YfYSs٘@LUs3o0 S]&eUwf9Q$bjRU|!HbTglt>ɶ%7STI Vf\@ffhdBq6*P4@J%GX)#-K +4a2XKtप+bfThOB Yh0Jy /0si"qDaV1a{ATNjpP YnagアJZy,޸V!#JrE6\ÿo.F.W[plD 0Uc@8M Cs֖E %̞203!SzN.d 6H`>ɶuCoQ% s!a 2rgń3 ( b02!ȼk 31/dHpLnCmbL؝ 21@Xփ{ p[&$EG5,i +\ Q 7L6م&$To6yq R|LXF|kV5֢`f1VO9Q;:cab :u 3B NS1[ԩ-?uF˧p^k :T%>dmAɄ6JU8G PN-̗l R:AE0AcPkJZ nt6S$5J/bр>`w`T<]^J^ҀadX 0cB8y,D !ahWW9Pm-cYM^ {"sA-"I|Qr. ׁr%#tR嘧@Q!kbE+pʉ-Ite_^ 'pfn,tT64n&ruLd[߄\Za# b`G&܎^6+%jFVJ}ν 0x=r`tSmϞ}cnr@Ac(npnieXPm\N1Fe0Аܣl:p bRPۏ1a jC8&q1aY(^{9SpEW8&I#Xa|$w#HFf LVWWlr&j|QPRJ!('Qaڽ-r`רp']fl֩oBGoFۏCFӰ/w0KZr}7a`x6yHR"'<]vjM/P2lwkH4?!0JTݥ3h=[@̤m?-L lϱ|8ՙ'+k\5\k+OzP2՞`.tO]!$K` o'!*ir`SS3=ȱ݌"oԛjXhjsg('ۖtn.EI A:eOS}z6;ˌb&(Zk2{^ipyL,d:Ex!/\:UϞW(G#Yءyյ%}&I;1{T5U k5>F[E =сSxc'b([AwڅBƬEZʘc9.$͛ĺG96!!lLa8F=Go&%D%٥\X8@!kfӲFŭT. zc7rEXdIN5 j4D' X +Up.? p%[XE8*?ZW}h5֢Y[E(-x x (O},Ž. 9UAʥ؀n 1A߾( mbwI-sBP LԖ1Rk̇|T=զ Uzu*Wg@׳ƀabˀ5ɠeA4gBΝ9ʲ`ĹPl6[-Z_ 3Sd~/liT}Z϶*œdp1+07h+kHHrxލᆮxo~Q1M7|6tElVd;S6 m.aAY%5˜ dQhZE9FXFL6R>ҫϿyd)hMklMF.5Zq'.>qtϠǝ{1]~'U Kx-%] =c{=glk>z?,R)-gBѮϥ&c#%G] KFg장 /٘LjNzƙϣ^?MM77?>s }mJg׽Fz}n:z9["j͕Wg~qtg7^tumWҕr77^N/z3^BsYtiߟlGMGgVX(=t6lGen~LވjJ&q66爐U :Xe E `9W]yfǺdE1`NCH\r'Lğ[su*$c.6a&9- =@CZ.;jsԶ}t\r2>v+NBf#mtQL'o{;Ko|X[)J&'NB혝w*ufA̕zkNMYEÔ)(),SݵaW,cꘛյЇ{:pR0HWa"/y" < Ía+ڙ&3V0 t mb ~ЍrXd"Ʌ]؁/UXmbPd|C^PS3|3lu=]6vn [aVq&)Vy;s] dN݄*/?Ϯ>gه]8O"Hi.*먘>@7߲}w7}Uzowݻۮ:۫y~IJU:7,4H?elh8 <@n]'} ?Ux$Ts$d43`T"[xT`S-ڳg^j +1J4;;@uwa! 0,wA#_ `Ą`,Նx 4x4C_< %xaU%43ZQF;נ|a$mYdZ%gRq1M%dy%hJEM-ϓbkqyYn(VH"YE< BRP[{=i(y__pRހ[0f:ƭۉ/0#{f+Ml$}293;E&BI EcxL-OBYALIN' @)bZ>AgayV8 D'ׁk0 |ՍfOם@Žl/Tµrd*Nz&!GK0TKs sԚmP^67f!(@QhDFa1#!blsxhf`ԧ,5c-Bx" kk]j6Z\F eڄըGjTZfU>fTԓPQ~>ܽۻO1(u 7{/c#@/y; a}"^f}✯qKo]Q@7PcT&:CEr:ew [qy]%RFm('dp$ERa]5Gާ톋:kM CJ2I:t*N8hsr4-`1ub 9ǙR6҆ ljK,y0Ymy Y@S+p\QJ{m hSabU3LG V&jUKt̶yGT1k5,:H̯[\0^orE.s*R4 iW&v{TBacP,yBsʳGARDk9{OwԹ5&w{nS/>VJ$!GI|)]n*cqm33޼`lnx~.\dgC';ɶ#.ܔDf_}[)R5[oK¶) GRTQXBfuS2p s׸12mȓ;ٌ 3(A@2["f#$qa;e\cNo0&! Ȝ|"]Q $%?]}x)VjuA;!O ü=ĎHZ=<3MV2~hYhysg?γr0TF9ٶwr|3lȡ.mYBZLBR:J-0cc ,aH_ho8cvhoaez`Zh`Q)R$cWa#_ԕqB6OMm3}tV%st-{rx1&!Õ䂫Ol[|pgⰓ~D_Q,bοVx,/9d>Kۜ%^!G*>sv;o n>M +TI;jۓ]}$6ki*qQ>ɺEf1erJv+ÐMS7, X5Κ.E/'9Mo$Ui<ɶZɺHviRp 4Ա, /Ui9kXh5 "Xv*!MҘRW jd/8",?7LT lg9XA;wy9`kإCSba8R(h,"|g-`ss3KMƲƅb+32vLKUV=.g&_LR؊=Z5|6vُf`WIb~7qw9 E}:ݔA.p1|(?ɶ%^/cP|ʉ{~,&owxh.:Ĺ| tդHs U!W0@6;7kιf";b C~b,Tt f7 F< ܮc.\ѵq'`8Tn缈܆TR`RRYQ98q !;6ms5P\_27חsƌ4> IC`gj,@ RzF@Țx1덣dYdNJ< L5GB0Mϫ(cqcu^#y0-O{gȹO2X.Zπb>7r`ۄ o牋&<9s%N4ϊE-:=ɶ7Th/+1;a.Qg܉߰5tiQݪ$l AL(X 9=#|HU<)Z1K YPթn@RwIŅ#s@IMGs?W!)2*Ͷ ?}XD#&NvЍ7&X{݁`! ] sQq̓qXL<0E?.DJpP8wr-,=lO*( q4iT;m%\G9 ҶdF"Q&\9|6xRH `I=ٶ8ّRen5iza0K^CS*n)[v?}F!/foɑa%A;d*f_ slNO6^2Fᅬ xd QlY1=~Lxtf760;'pň6YN.gI%z>wlV ,wy0vpW0i-)GjzӺ̬ơ( aS2o7Qў?0lhN_;ħs,; o}sl[{c̗ 5`!0Z_5lm,=' s);R'p2F#TsQ= {Ҥ*fWV]#a!Me4AdgtaG0br1PڡŽ!d1 ӁS"F1ѭϻNؑs @F7nN`#m. B6nLE4Q,朎ܱhB!ٴD3ch b;w 92ɶs& mVԬԩVpAd}amY @3Llr>Rz;VxXEŽmVd? ͕kŒ#t`LDEbpm6j XJrӎ=1H,Dyc7 Y ÅS1!м7r\lIԨtwCvkC^s\9ߨcwLeq* M!>Jg8򚌅 #uLLUjֿ$ 0N򐱀'rdc]+zHzT&Mk&Md&o m*i(ԅOzcˎ[J+_}+]=4;rtk g̟IҮINf- bl}6Z:֘\03eK*&vgrcm"u2U%!xYC) LhebNjXp6@z,\YoFѨ1Wl rBΣ]]@lfXe ţv22٢(ix;Pl}/D}^ @Q~7Qe 7%ԎWg\œ`L2PÑ9T,cRμ>S[%`>`T.omDgf¦)Zw&o?Xr;nx;諷|}3iRosI\>few]չCn[yOANZq9C !5o4dUjn!m^bkX pMMpΐ٪m(9G( b3z-Rya8BmwFL}= |KX械={,Q3T>l-Vo_},Q C\Er!czws sq -<74CP1? 2_vYb[# oػ'8NT[(ۮgce4}/ҧ:k;_H>cʻ趻kt1=iF#Qo:6LpZ ^nqۢ,\KY͡hꍆg/Wd3X %{*J-Ve(Xp 57d+\͆~X0)) ɢ6TV^/Xbj4'i,D[ga3ŖTBL{Ԏpu~"ɸ3)sC9cvG*P4oou{܄kU"KtUs2]󇯥/w)}sGg< zܹW^)HoiwOsƄ­9 o9S蘹9uDJW/y=O__4:c,MG_p}F]t.^?MM79 -].zϟJ;gghCKO=G t\B]4;N=;M O^v=0مg{A+yHn?'of~N6GoQSmVZf̗Z ;$ln JW20Dt!FT]hd,4-Zŷ'o 툣@` LC.EaP*<=PlxY)jP9vJsCZ_Y2r7RAt@cܱjD_\_kB[DE)3Gym" S' NgrIP0q[[fHJ1nȀYewEe]zi* .| -}ug_oygo<o~+]wYW2]v]}-,>Ͼθrzxo^EϙFϿf%?tok{]ߢk.拴Y5;LϾcT~tͫ5o-H跾zgo;"2ˇC>YS:,4(}>#lC r9 JtQIDXLـ-`T:na&aȕv)@4^Xl۷oH ˈb69iidux1k:ۘpZQghjcKҳ/ 6S݉H 3MHvls1q: =g}l8`h8ڐwlLƘb:BZE 'D+w+Dė]iמ=oOދ\Mx[.z41wS~^ }?=^DCTs;&?vvAl6.r. - -=J'z=^}mI9kgr1_HT 8Ms Iwj gրybzmAݞ|iֳ/M0枞;0B[(4'OewUNg>,@wP5au4|!r]IQFaBp>z=4G\qƣ;;<"N8T&y}?y胾tiB.ZuNޤͷdw7}QzowݻۮdjЇOݓKwt 9:N;>㏡o:Tz;sv3(5 FiU=\!QFlXYΓr8vP~TB]h4o7B(8_e!ܧ i@R .e4;z>q,9n+6: yKL\+v؊rP^OOr:Y}t-77t3Eo94zP#/~}?-O߃=A?{;鿼tmwD_;JtE/sy[,L9R m%` dn"/aQuYWsb;+t!!8gL&Y:HKK20H<ή)q-:}X&%Deh8!sJlyM1ogm'\Sbb, syEUpLhF)]é E6&fmϮǑfx&lټjBkhxEdy7@9<sԉY$IJ>DW<سKOݿIKp4:^[g_DzO]^х{9FЙ\A)g>^Ӫ_O}z=?^shz)ѿx:|zĉ\v#?ox9='A)z<8ajݣWxKô7os \a#i\`"_j݀aq"mjS8 F Z0Lf(PVVF.-~l 61C<9OgH122)9yNg[C(*3]DǣpDt/ 62cN,7vgې*Se>Ķ iG\!S)N^s|iA묮ߓ-ݬ1R䄥T^ *,Q<ܮM>s'yc9(T|G) ܇:p@:77i±HI&EKu^d:jJ‰ȵ-OJ DOE#[3լqqM|4?9C|zE~OziC~ok21``iP02_4X(6 FyTY^/ea8b%b }`" p4v,Y/HTzM;v3[&Y>_[q &jIeʟIsݱ3A~&~2`8[8~%` aAm: sis|.BW4|5DJ$W=;P8qkyP^/(@YD.K))yB(C;X8 ]ҨݻVT ߓNɶ%71QMxRbHdΎʚ/wdP2,Vf?L-N; $6W@+X!r<|xj&Ԋ 9n`bgFː0<97sjkلxfNgTce wHױ2pC)3!Z)Q"Lj*?0N9Uc}Z\R~u`?R"B[8`Ɗk]u!/JXEQX3qpBo5RYCV8d}ꙿi C&@9ٶ6P.̄!(Tx5Bf²=1 lmR 'YgF&n<̥IF2CþGPNK^ ~`8yZ]]7* X6=QF4|)89gir" D\X%Cq#U2Brzbyc^ ؁89KglǍPuIҳYO\4?Q'nT;F) {`ex$N1 K2E l"ذPe0<#ߢן5O4nɠMºEEs8u߁d h9PՄIFO|!ң}$QPN8C_@!5,c&j0" ru(}M!e5d;(,O zJ):gtqΑ9vjQ ,N9;8iu˼(Te](XB\1'ÌlD7H3HPo:{kTpWLr3o H^,Gڂ4Z:FvG6O c yYP& =&KrmŭbIuƸz𼔙 PtJ%8áɀ!g}baz80--/JvDw߉Y4m؛ZC̎Gar}㉝bGIpK DW|ybf $-G*YL ߱uk{^q31u=39tu F 5ďOu,l/{W!Ȇs͏yϜys&\v "ޓmo.GM,?-y6_r%K؎lȚBVxAk ܂*@\Q=F. pB V+ň Xs \cT*R`(I=:hF,NRHȯ0:]sەcD"--Ç95"ZY2@s|κ9nHXwtW,2TN=ˮ+_V^)oi~FN61pW Pc/uJF|VYi]Lrm ^`ZN#\ -[@hGd[ [ղkS{qb.K2hN\CLK<<WlWmg x"4UxkUfۏa6l.M ^,ZeVu3;$PYB,ǍeOJxk4^#|G>יPxM+j8BZ]a(ty<t&Ù>2T}*:7@e%!CqS\Px(ssW|N#[_p>&ju`aRT^Cky3Y;_zߕhQ@`_J!GH*( ]kt 0J-.lCBiAD ҇ۨD6_p0,@q+"a]:|4Bč],puԷ: y_ 2.ɦry:`=c6o|*W hj΀XٱJ>02щ`SH'2ٶXJgqC#lAyɇnF 0놣KGdMj[9c"6S0!UJC6lT:sOѠuLY~q)Ԡ" Y2@ ?*Ɓ,(1cDD%.f aC#|Ze<_'@1 г"7츎% FP$fdnDBYΆ*y^}\Ǔ@8o<* 6\lNrmoP17rC #{ng?[KdXH !3 ]ч0 Otvkn < ,j"NͯvEL}BIr$g+ߊN֏$'8N #y> Ĺ^ZZ+}&֟n~\E _`f+zOk8%[ 3* PN%>))x#Rlǫ h$9_p~ A : a$slt c2?{s3#Hd ̲˒*q);06mvHGx +Xj̋Mb#1EyEZ@u,扇R 53 b8/_Ҟ/It䜍hJEߟ;bn^:yTB\~ڤ:ydۚ[9fwKM*:0,~"n0w%kQ{A*8T4AAt y m y&H-t G QqVz/F$%F8ܶ(Xi%\BPb(6v/M'dvPX!"6N)x<6As雁fjݍF,zxc4B$ղd;1R_r-cŨɊl[qS-tCpa.v.}"Q0HZ :|x?r,w'c Nf]p|a%'ʩFr³UJ?re.ؠ.GɫfwێTí}Vc(uThÆ#BpS5@}/~2W]M6q8*?{-I$0? 库l^pGcܩd:iPXA ṯ'wʏDPׁE~rK!d5V= "6i j9J@ة7da)X;˧l CRy=8\pa8QSn1D U<eXCyמUת ]`ᇑ.w؍(a0;V<`d{,w]U$iNH?]by('x/8rXL7m8&zm Tfօ#{Qb+\9jԩb@4ܾKns_5&4j=o0`!F ((k8lVXعњ٫7*C0ĺ &l918Tfcr`^ffrU{ \Wrk3Z,xcUC'?u1>6baV)]5澉n+IBXXcg.n:sޡAnȚ|7r2nceu6Mrmmzva5BdP3 \m*&{>˃yсq ȲqYl;1DA']3XP`XDk?TD\ia.V[mWҳ~]y1}xSy t/vOʄ2|n0]E Fa!,ʄQC)p8l~NDR!nvG湒䄾yNӡv[F@൘hTGZTa:f?!YZ`ȶj `.xGCϦ:*76iCk ,*rRfܡ"BpNݎ[8.{P* fg1(|Ok>cSl =c(.ϬlΑCbR9vgI)g*u1Kitpܥɫ/}3q^L_ z§7^#13;Χw?f[sЛa1MikN/>:fnv~.#7Ѱ#%G] KFg장 /Q̗}p‰3?>h!FlҖ(z #[v;7u]-5q0aĝ8 F}mEtZe CK:׽Fz}n:z9["uo~+]wYW2]v]n{+ҋ_n/_q=y_ LpnAJ&L]5 pւg6Z"FZX\^5bì7kf\hYI7,Jר7l>ص ,S;K^ *wZPЁ3I5 8ׄ.;fZh0Χu td/*'ǡ_#myW,ќIo;&#a=敹YP#PS1 Âf2o#uhԏR@C tɳY~ᤓhzn{%ӈ=eD>xڵtzDϛ"}+w?;M{IO}z/,?].0`kޝ 9ZQF#_At7 1!T}QgTsZ>"돺:'wΓQf niMu cnu`1);k lm\LVٜu&6,N1DddxX=b"v0;:7*W9W<*T<"(kD̂QhJ,!_ũ*oLgpNr;.!pb*T*UۣS ] D Ra6g~}}&:_J[/|I'eC/0rHy ׋c"l /71ū ĄzZN̃VPts=nMn*vZBK#ĒeD׽dʥ4AϠvp2?meuo-uG[5d򀯢*?{d צ[.SKp5d(F나F#~6rUSltu2F;R(3Hp 2YIdJfY]: D+c]fO*dqx“Y G9O`dpIg9odY BL=M(\ee&FiaA42r%kK1O2%s--%\ϖ*e_xy99S*Cwat{f5pG66&Ü^ykm?8>2D XȍNRn6Zjf툘19DHy0{糧ヌXpҡztm1Ô$2_92I4 936Ac``޿LDw?|1}ot%o+_?TMnL=e(z+^x:ro~^Ox_J_;.s0rit7ЂGΝI:ߦ>;G^|=g~oS1j|%9D9t<)$JljjH :2HsGckdl:8uDŽf}4#$ClH&7#c ,6!p@c ؙէw>/Oo}8b$Df~#C ]dG99Xy92p2`h بc"tPY#@ m`R8GÃ!l5Szn[8"@c xhJʳ"?~%ǮB#Uƴ"oڹn،g,E"ʐ5nUݖ*R TL1v0s24vK2*#I*c<@ÈV'ٍ{mӆL %=H`aA8i'0?‚ `:@TL$ SKh g2jl)T|~6HZلBh)E:qOF,J%=Xy\h$dD+S4~iग )oF\Vh&!ǎտ\FId8AiYzĕ\eve?d]u8AO^u`$Ҥ4`B澕0Kޕ(DĀxQSSdPi݆ <,9`jN im1%[RJ%oJ߀&Y -4=q7  )='ҡ_W.%6@ %'.)!rG.|0{iõy\lǰ<i6a5ɱ zX[aAHRzvCHtPӥ6& Ïһ&[?~1_ 166f\,% [6=9.cQ @vz]ڳguM*"Hc ւ8ÇJZr`iu`?]<(2x&7rKbIS ^Ѳ}riɴc"=ɿXaʪ28|}ӻd!P|pֵfZ]`LM]F`[O6mė'lןVi¾v3d,쉃iORSZ[O:.M |f*-}F(x1~\C$KwpQب̓Q*yf6Hyo=! gUj']}+ehx:vql:vvYgv߼}Iۧ_=::᱂ qf%w[3C r[?,kE.Q{vw'}#hrjG9 y 'ea6aIf=Մ 6(fnIʆ EuV*xnhd\\3MlpJ9G7Кu,d1dg& #d@)2$&䷀iZmCX :&yb! pT*Cӈӱi3 ^`UԯuLNy{''}d;o0.g昋V"e$<_N_6z_L#%j/'k֦/<Ɗ |Ȏ2r&Z)72&A5}Q)cwN|ķ-|vw|}s{Eos_E'=ԗпT x:=]ǿ7~Nqwo>;l zwnn߾J{f/֏k:>DwnVW?/4z%tЕxt]W_M m\I^hsB֛C}ri OO{ +,뺔nw"S {dD6o`@FVcS߮ n=,Qf O$ill!%.c|8ASϺ[&S6D'\=?^@O}̱t1Ӟd;߰::3^!玲x3 eً?"}3w=dLPi@}ۃh^O75_׿[4gK'n) }7s69yS%ニ~'ݗ>zK2 Zi1넝xMP ]!=E){ìXklCe(/N"V4  |*y_?J7#1t구;y}QvNr#(ӷ~ؤǽEtT (7?Qt7DO[~Jy}g_@aF^x}WwN?kϣK~Z?j㯣O.tK_"_o_M5~6% /W>գ_$;^=Y1ikFW̕iR YҠ zB:TU>r){T!P+Ƽ7sf yYC&]12FF:gڠ_rϒȦ ,..䲑q:5bِ/ C| Stl<9H{YgiVk$,cĪl|_v 3|:]n/T=>0N޸i4kk",)S*{e @5z"i#t Ν?:08b4Vh:amkkn.j @6ಕ^qmjԲqQtyeBYLw`k@~2 gG>p*txCv> 4s6w%҃+hY윫G\cvcٮ#ڽqŲX\/Zm|鸧K\^~`.X*`Lj |aE2+.`8_8x"{ȧva0 alHW4y`7pltT@vkțit a)3vѶ'&隡Mr)ce* ˙;FxN)FܯG7i LSdO Ȉ8̻Re"lPecE BVL(zܚ>@R4}0Ԥ.o]FʟP@'OtݻO064a'9]<(4#Do[5CYeH79+~C'<`mOGͫ/tޓ^Go:z'҅<'7oo#:CVt` 'NMVި `P8_/b`E ~:C_^k޽uퟝlQt y*7 srIz#ؔ5'pЋR*{`Voh4)yZ3';{9N>`ISet-u"zzھ6>ztbސQ)I5Zy!P"gq@r3uK7SrMq&dj7r|,o#:K.GD[ڍyl/&+h컒.r\6~}9}z٧ oW;GyƆ!D?|?iM1=޵_O_u-w螺tg>@W-@!l=xevm s0gWcZd{?a`'4:K>,Mb.ݛ1sC 'ϋ4u$W%oz:oϤ6W.&}'Q% ?|1}KhJ{\:—c?z^y [m7vl}?==/}{H/;>ߦw}'7zw텐7?"}/ ܣW'^Bgr{ijC oKI]sSBI/X;6jg_.t⻿M/=̣| [wr ϝɥO^ 1 3 mhfv?Jb|瞟Rt^\%=4]NQЙrYZÛn;b)Y< z5"\jAS02m"toxP~.OĪ]#y1Ѝ7q4c"dhּ{mtؔN' f"ZpHJ]7.?5I#'6~Ԥ8~/>2P0v%g1շb$ <쨞*m- Z.oYqRJ$z9+utٻ>HrgKUщ_DW)4b UܲH#^`>Q6uK.}iNUiOW$Oi}g=T 4qб<Ώϊr$]*:i^GZ)8e?C[߬6Xn>N9W?rUy╏X%;?K9s3OhcNy߇gnzG ]fhbI.S:TKz4=ס񑐍xׯ]KBH. hԪ㎣gT%Q`bQs˒T|¹d a @@ jllrj6`aJN\Nf Gjpl8pT_(\lXFÌcPZc/e:kz@~?g\d`LKH; KJLǎ,6_*^}x .ysILFب]'{N/?o_1AJ5!lUE>Y %1CⳉGhm|̀:[Tidl~p]# 4b`uXuo1 w'%fD/-DF@emK:HPޢsa=mzfjsYm"v b&2# v^-uW IŬ1[FxLrkXC2_vۄr.m! LǍ䠒; d[ *N6_tEfW5H8< pow k,0hNhV 07zEX}=*"n$Chv3 | ˴zz47H%.'8\cVb&rmzDVu[50{ϳNBez¢E^ -[4$"CQKy^o ĺV#i kĆqج }\r 4;f_Kl 5X<ڿ?='1b56MNeCc&O(AKxؖN%(T8PU-ePJ ^ޘ>> bуp=gyt&G_oz Q.U4P` @PgctU%v @!]vJ|n},+>[7!d }&tキӁVHB<;bw=FAYU,V9haaDOvbg#rI  c6#7n$R699^s\48%74| x[tJfMޑ%LbV3̬KagFV/s%CF9Ӵ `+.1xl֦\K`A2ԛp^\T9"WJ4pXLD'92qilE/D -oyz-0 In8=fus3~޲i4b `*e3mX"AƑEˀ_R=r-XJ\nb" ݻQ}q^KVMPT;%n`6z5 uaO߷l=M*`L!`\HX}CLl@Q"Y(Q Exd,K*_ PDض/g..#<',qJPl((\s?ҏ 4C, ɚqb&5yϚdXpp%J>Qb΂o:F6q)9R2 Y0(Vk\2fu[0أ'C+\.%ܿ+&[&ɒáZsa  !ښ ,үljݻA2ߛuIia\ y% tz!<% 7cS]',PzI2Px{E$2r&,[VMDHz ̜f˕ryP+qNy#Aʎwb2 tfO&bǍb4V 'vY N\,Α=60Y+. eB)k.m`P8g7Ҷk82 XF \f XH,2JFhE*F8N 4O#cSrX_hƍ2q'96eh߷A74~1-VJ\ Ӊt+X]A1(xaOmt5%e)AsDl!=њB[IdmzFL|?>13a(-#.$%L2)>D*55O頳zԒ?;veLzU\߳!Pywn:K1hKIe`„JR|v+ ,.ԩ a/ĶNKݹ74ulef\1/3Ѷ'3ƒ\iI Ʈ˸vʻN >7^_4=Zf2SF `yQfdgϞ:Xr34Z,5\XlР]ÎYwj "oE](b y2G6/ːC # 3gV7>MԚ4.V]9ݱ+n .pIFt1Dm0 L` F̮;6i@8'O# 9R ~\Qq9m7&=R~n(Lϐd5oAM(f=sT(C"H&2m4 3]"ty 81T/ nrr-Mdt[0-hѤ}{g֊U멧UcT.̞s m:g :dWT~6<)ÃF%᷾4j5v/p]‚rffZ!XaS0G.ɯI92K2{&K J%Eq̺G5@$E6pq> AoߤKNAdبRɤ1{[#f5@zikKpXڽXQLj5 0&x|bJ7mL3fyelYgWz`GOV |yvZ~>:BS/.]] 372R2lH,d<n4YnKxN3`Ix}#;=Ckd4hX7VDn*226 &Hnp(=|qĈjc0˖~,+b bg}uSqYq} |gK-erx2%G#j*";a )5cћT&ӭiF9K3{,wKyL˼8? LfLnMҦC3.k8 jHw =KOA'rAbYӎ.ˍn$M1z`AYhJdls.*M\K`umގ%,YQ)\vlRhYd |#v2mn̎SA*y"~\cEF%u/j}%o9\+/5 4SP3\=fivF g^ ~TVkR7@2Zl`pJ/P6o0\p xMp|l\^-wy)`dc`*irU>JJV5Cn#Ta\NE}Q iV29͖ ieq^V2w 0+o$AKoKV!i\QBxm5.ENm991,z*0ԥ>۳WcKuzT79?GFFَ 8kuS{IT<ԩ__&|f8P\/ٱF}y;׾6l~C@f xcCj k/ ޹b'b೉ryj1Uzcȓ-s SSSzrYq:촺<AaM!_aւ!X\A‚q1-ApɹeX CJ8E1aؒ.Gf;v< ؚo7zIji<3PcZ ILHv6u7lˎW$YdKk}NvgI!t;ses*q)ox)}wvVG2Ƨs5@~1 ij /8P9Ftit PtkgO.2xq iמ:6q` (!'5˃4x4[VX<-HZIӯs ]`D*E^ OVj03pZ"00kqWl3|7m2e҉yhd Z֖-0Q}flha(C4qt+a{N%17?^d/Fa|b-oe@ lm.*0L.X^6'"|.Z&aBeHťog#498Wdi+y8rH 2Ohaa^](Td Z8R(ංFP2KkpNv#dQ1 KNX#l[jM2ť}ɋN=#԰%DZJ68B%l/~rJ6UN MZg;>ҋO>VѺ#OW+k#7}p ?yk mLDE>4k[@)iv8F+ je`'k6j,/}n'.jlhQ=<*"f{ԯsOgwESDYoT)BDQ0B+:1:71V#lQ! nds|tLUs/4=Wp,`>K邿X,ck/_@9;0)qciV[}{մ=leu˕؇EԲ(Sy:uM_S:y"f~~Ε0fFbb.EPuTEEHw=%e@=4ޒ$IFte&j dc φb&Uѕȉ5#}sZ (n`{qî[X@mu&N{P{ =mߣ.?>z޿?|lӽ1J?q_A/ܘ^QuOП>iW|rݜ qclbڭ.ףjd n-B<YM%D"C>}fYrSDꈭNLBBPCɨ|nal - ƺfcѸd,=R.LqiHĚTs9Yxhr2>#n6eCJa;q[l aX%vn^*h13Li#0pOeӑMgJWmpiOgnwj ;wq ͍m %ʧ^@/<蝯0m_wv.9g˟;IzIw{O}vO.ro}7w\A + 10?[HfK }0YNM0ӫ + kg F\IROH7I]bSd5)P%_`3lZ5)!f s [AŢ.se00q6+]M`&Dݸq#$rɂTN8=RE&&I%ӟ$ 0qQߘoe])fBo 8y601˓Xwjc7|3cO9[hH-*;NFC(]NEx&:p#ˉ^⃺ ]ГD6=^p$Ӡ(?rg zN:t]^G M_W==asDWo E/@oNo_'֭3sts"<0H_3Xa0J+Rq}齚$"}fHJ )H@cc" ,j-e=K6PX >3Z1T`O``jK~ـ7`ՒuiX@t2pZZqTRA̱#O#oɖ.oYfY='N#kƏXLr~&Ns#w\a6u(cn{hrrrxk3K \ v{g( l#tX igf2^&&Gyڍ',cqxm͆}"bd@RDOu]—ivfMRu+z%|%mj"t텱ҽ('NȩK @7~aH[aڴ j" s(ORBd7YSHBwi u[A0c ;nJ#EB{ˮ3NrвL;!O02))A/|i&]> ejo 7Ln"LSbsSCV x^2/[鹆1,}w,oX@% u,2'nϬ&G}`5ҥNH5x_A\vܬ%ZaswReO!E\Lױ,szbWceRIĭ[vxFf'gx~/QyݷKтf\XXlB֯U?22כ-*>iˈgG(۰9;ujjmHc9)1i_C84pFZJM4d ='s[9N|>҈oXGȈHf9$;;aeȀE2$Q\: %`Cb\#h-+`$χAڵvn*ck]zǷ}N2,u+ÖZ4@ݡ~ 2tʖ}߆@9DxMewx\׏AΊU_xm[ yP&C7{c ud(3bdq)E2=H.Uب_T)QI=;6YB(DXc `pK'VS>%7&c쾳?Ghvu%N7rAEh *zKbUeŘZ* q)p?jS%5!`($_np➪qV|@H~KPJ^ŬSZ{` C w#VdM brxf]jjxYNBG.Һ5U5,*_=<8s OyV=p KN-ˊ0,ެKKc@v5(|-ln"}&QAnq1¯ny6 YAKwJ_r<@DZo%x rxcƵfy P 104u齆v﹏Rf8cZ-Qnoˠ HZ/`rESVcѸt0t`L]+5KMRvaO<ySV&źt_Š晞_O\ *zq9Mn?R܀eL7`L =Ԓ[3fpa(@!ae*-몃pLpErpbZrX&h oc۵n}]XƕJ#BK&#`c[o䁈~lWz `eM!1T$m ZYзKYᷛY2t}0fYF1ܬqq%2{ rxL<*G!+NkaaW:0뜱 7 9 eN[7gj TXMdW2  Lun3EMǠ ]7j9-$JhK 3+lkDHhW9sAuTR&Nd4oI5Ux g7c?#<=.1'}3h.0=[# Qf||AfKՑ7HƖ^`3Y&ZmeY.u?j¤1~O%;ghCC6ሲF!$1k>(R!qdƉ22Rafd .0htK U4aD1F/enjgB oΟZlF-CTL=Gl~K_(Y\yB5[q9h3?荣@"f|aS¶B××(P y%0[5Jmf%rF{ivco-))t'Hx6ރl/#Ua^6cgr~kdk۷5wϺ^ᓾ9Lzob{(&T7o糯#X3shqZ;Cf&TUX9#Rz\/Qu?N2mvK"Qeg6w-ZO= t}\%e ?'W8';hs,7%:Q b&g {;NczC{i)NG&qTi$AZ˗>^”a돡:.ֻ]Q3P+dghXN|?pt-=ӳ88xgy/sypSPr7SzeY! ۷eE"̟ꟼ-rmfP/hBfTkk leѭtQ"wouȌ|c!4bl7p![reS` _ Zx Ŝ75B6HXREVUFeTvW7z/Q*q[xMҍD$靹4!W,R1bY,_r+2)xNS1ͪ*͆ &!+=ڨr0;qX0 nT<]+8Xp%z'񞃒^Ak g}_}%m=7P %gtl?29q1:t-TY}m K;c+ >rɆ`oDob [U^SpYOr>a!;lL'HhUEAhuar#B=m5=KO)^ӡde|ΐ̑ `ư6buY 2kF,%o9z1(.kMYJH]~Og^4I[QNr =-7*GLG3'F"O=Eog~]%v6^cq 44\mZ~r_hl?~>6|b ߿Y1c.^ f"~l>XKm^P۾&PN*ʱn^184p;v8g<$X8w"bUiMFL̏V}/BmzTjFy͑ +h 0-&&H%{st@AuWJdG\\$LG;هM' }8WOr$? $8 Ό*[BA 6I֒-;6AX'"u$j':~;ok Ν܋pꉃ8c9\8Gf|dǏflΒ9v{.5r"UFOmA^OO/U%@b .Zȥ/ii ݨ6y_w2<&b3PoaAJܨ4~*Àgv*+M6}$7!vRˈ.`cOs\DGb.*LfX@D9_:Ĩ ܣb?˄q-kL\k$eU1:N7"p-,.)d:Bcd3g"c3""w#׍4Cq=wwmV?>ßfՕO_٪p^,{|֬pEG,V+!'MߪԁsO=}?wcҥmɢA䟣=| h>F*PUeeo:fY.I7H+RI1Pl&[l3NLתĔzg,KMS i-LO^Dn<SwiQ雲^M$nS&AA>*:ߐ;H%&ZUc' d5jF |37.s7o0w]k۶m쌏O* 7%$6ķrVwPDIlGG h"-#'dl&|A(1fP(/[IT3Sl勩M~x@ rYrz KtbCx0x XPۆ j ynpDzEm(X,)@r2FY(-t@8N:yf$(Ȉo*"GxDIϵ\턖/#m7ѽ!3?RϻG&ޞȧ|=6qq6XHiP&<|%tyvsy6.њ)bz,2pe@Nkcx9gB{  HH6eӸ*u)j"1lA1PIgY){\n;5WMx9sipYkT#Ę3 `m6zGV0Y$>=7I!ScD̛AGuOHuF(^.ˋMc@u4ԛT.C4ccH'^FI[5fRvÌBöP]RJ1L-_EЪ,:S,7xBʔifO}90fya n|n|?3'ʓp:w2ܪhCˠ&ޔGxb غIoxظͰ{ޯ82v&s_DxQ%UӤk$ҁh嶄9Zh^UEلzN$P&&鉅R2eDΪE89gqO3t>IS˅V7s&˨*&IBm&rT+/ ctR԰ŲrLC6%F]R +R1>D oUØXxCLOq#diU'59=,I~DVYZYRW2@RL@z7}UES:BO.z{z1zl6n&dAؑbfq\+db p4tfQƘ$ס_ "xEɩA=rb޴O5QdO3f/|'Wi^? OntPzwǹkV^Ml@;Y{[R83~LOUPN'%sYc𣉵GAR\尯 3Ez(Nu< =HRYEIth qxl6cjSh&~Ѕd?  e|6u޼zG3f2{3}te9 WC?lcs׬L wH~ؑn䫸Ƕ@CL2eV41UtKaٛboiCH1Ζ;&$'`Vfbq.&ڍM~KWTLOL>92sc/H JzAHLOBqSvޱ1c\^k/;)OrD_2H b&i>'osӔ=h,/R`9ɰl]!5uyv29f8tV]ef.S&¶6eEEnxhF'L(y2G.>uK 9T9MY7GV VąGw7-=!>|vph'GW9l ಜ6{zس-ɬ1x`}#aKXZ't S7eʍletѮh'2|c, )3gW -9N=w=g/~ϛǺĺJ EfÖdP@Z+"J Gp)bmRŽFq"f!G& p6Rv2#5*m=J'x()&19+wۃ7rC9bM}-[KhYb! MO2c~o^o6ژV 0H$nG))M>VvL80whz-Ρ~HhE:=3>IٍXZzi&D!:crmlٲe8^EvE=pfϲ0</&b (c۶98w'5>}}|'}(28WbfCT yzD5igj]toIR\eG '6##[xBj=Xz^܋8$ ĝ0qqۂXucs@f.wriRMl!dJnIŷ-#7ƙыmLIv+̀)mcun9v{ϽQ:x-|7oَ!6̥Y-LOME@?#]z> Ű|O. p 819 C/灐$&p*7IBDo:FQ -Sӓ  e1#NАZȠȱ`'ΉѬsrS/Cj6^e d;Zz:]L$8#;=NIҬ7]mZͻ;Bq-& zt3u$܌e[=u[cb>:n=wʫ!/&ryqrA"3^'sw*2%U3ؾ} LtvPkZ& ڪ侬*+*uuIjPJl*IC%^i1o܈oƓo9!O j5Qlorȡ9d}䏞֭9&"F([bcDg;0ä2L돾h #ɭK~hѬ9̈aDz,-f5NI(n\V/f+Io>&' pxroߖ9h}>6"Ϛ9]fn<7ٗI0EafƸˇzҶC~95˯eX(8 n%4`e1yR{؊+ \`}%QTQo\~IECBoI\RKr mh!"k5yXk(RŞj`$pmrh5䗶yZS IMjyAH/jv=B'Ճx}ұ>MD(%%afG"(feC yE(J%g7lϝ(ou]94y6_|^S4Ĕ* 4bllT}"\^k{CP3âޞ~.y)2m%R eU9Jsnovr"?&811pUr)gyM9MdFZɒ%0@eF6r@ħ89]Ybё=ڥ8$] (aV *V*IuFj*<wc=`H&n-Kif M>c?zL[2'ǵ9fZ4k/΢߿:L<{u,ܣnw^F,+s;/[w{v긪cucǙ?-[|'ǻysx-޵~[[睻G|M˞¿z)@A :*/CU-*o%}v5 劼=]o |NW$98f>h+\iDSTzb P֎RP@F/Q4A19$+IW|v3b.v$(,ّvFQ̧LxnֽI ݸnj iN+2fy)﹛GmxL:m Ezn@4׮Z$1UGN {cuno{K.GV\|7L퀇q [- Nj *ހ#C NKG[jG#vXtq8 NC|ovqxPT q#/^ûp.~+Fߺ^Q._8m/)nwC3qb ;׷s<O/Z%|>0K\Y*}_{? #<զ>cُ)=l̤U(ThIWsm(^-CxʶLS&"%bVdƨ41x(^+4yئ c1o,IbG0r;͂8֋e.։Ʋ!q RNcZ킰:!Ι5I-$ڽI;0gvi~/UaV3ߙ#%?,fPo&.{8xi 'a.ewuZ!|ؾr-x5rvo n19נWV}ߍi~ '}Wǣ?r-߶G"x݇?.<O}]uw*WL7ǿXzKdT9{$#\ x0&zu_ހ֭qlUvy0+*fzx '(W8@,fLZx<~5'(3"5>jMJg_,\ H_h6͗C3F=kT5KSWK1as=a iĮڞݎRo6Mn^̨͛iљz#fȫGk{p{)nrƍWn׋b}۫[߼.OK۶܌ko^#Xe֟nY_{4zu?yٯC} GֵjܺNFa͛xq_/W[W55T%] %fM/3Ko2PTk}DBM.ivIbzԿTEqwm:Oz"漴M} PjEu~Z|+.NZfa"t\FX"smdgc}:&SޔEXHX'synRNzVIo$-aF#Ci?.ˡVfє,WrGt뭀uVPZf~wL@6L*FnU ~݆c.oCqoqWUkԻ^Ge'ވ; /ak?Dn=x~۞_淸Ƿb1b?{š׼_w+STf 6݅{G0[x/fsp],&;EbfLrmSn: ehC&$Ey# 0x udѹ#Fe^3f1v8׃1Ǡr8Tö>_Oo6#롟>'*Oe \6SVRM*6vnMg2tvZ}821mL-?{I]C/{[f?qx}=_|8^@}uw/`wb"F\/vJם};.G_.a7/ԌOlWY -Z΀IFfbuM : ).QJlmɂ!SiUW!K%/YDސl%c icJy9!WmF`pϱ{">%%J $N?u 'a3U; 2\ p645e+ıI[Ymn#h2fb#>^UxC :)6aFi6ALޑ$I u E2:ɲ-dBL hha]dPcV ޼1Ɣ< ϞX C6%2bLlhuᴗ5 v'fa܂3ØVϯ@Ɠi7.bYĵ< ]n:CZ0 fζֲ9&dowmzH6CgUkj!dhSJ7t ED(15VArSʫdRbPB&eu9ߑlgݞ,$!J_G=&5x )"9o;[4Zt5G=CVeD@e-K"#ԸsHXSg]rK$mױٚ763,YUq@I"x)O"+^d'~%xؐjcSřKk,3p>wv&[# o۷(@2@%TЀAQAO@T$ݔM{jZ'j:bf9s"3bYM)dF. ;lj :ऽ$'!:`tg [*2 u#D*&ݴN6f!:-)!J.Sbtٔ7E{4!&~tH$z|OYf餋(Z$3r-,&-= #& ަXą)3^l%xHnO f2Jsݔ ade ˋ: c$WsĽ)@i tbKoTu aOR@e˖:wկؿJFpI$e{7XhNku@RN)-^=PK6'™W*RCkSIL}_;L6l)FhѢ:w/&tyZ131[*6oHj^2(38d71P:"Kq`2pav'4b&#g0ic:ݨ7X(h/AKET'VS+؜z\҂5d>qcpE&"ݞA8JQ +Sx&{Aan#+G$()1#еkh `K[I\浜csl6%Ɍb56%YfzbF=]v(%V*ͳO>qfb4 o(Al&᤯> E׃AzWN9@zˡ%y"v>rV矁R")'7a޼7 2^Ӑer 8gH ;Ri-Sh%Sk7GVkdL%ߚzTSu&QÛFyۮAD<dw{,^+ ήY NyB87*KS_;ؐᓔzqn3wʫX@NƤ+bQrԡȨ?Wu0"JOϩ#OARB+p7#Tn%&3qdr ܚ*sLF;= "e9Uj␣Y ilܧ˩nT&}7QmJICBlܑbӉ8aA oc$0>ss8@XC..>jEXmBM:1S$b:nwE)_ɨi(%pqTث+kvNA ٰ(7:7$ऑ[s(YyMoFB*pr9qq!*`l"/ΕJZ.#34"qYqTuhZGlW݇cܫ&Л7ATefwy=&4xlzl5fLj]]&PbۅqY jԛE.: LdHb<]7 }ɧL ЉξhOKF:wS!ö[aI@yZc4VK}id2* PI{ +d06TN=ș+T߬&IBDzf4۶GՁ܋ n;cX&39T&i[#ibgPkq)(-vcvm8a5U뤞Xnw!ҰWcNP]"9:^^"(%T)vSj9We!##oCf H9DoTi DDlY Uc+}MQ-$#4h9yQp|-n2YԯgV? Su5ia "`آ=$rv @rE$`75Mf noH~Z4fЊ\+`h?w~:l8m-&uVۈj2{p*U ?fK<X,s8;1parN*e9%Dˆz= dךtk%iV00327ܬOI&˶d,}ֱ~t(cHܺc7Yu%(_|mݫ/ނm_ͣ}y DɣƝs_!_7vEc^kEud\Eb![`a~SlT fTҗfjd0,z4hed#аCWYsIC4(619>ybnڵf̽@7JjlNݸiXal6(Ϭ j鏼su5AwT)k4nvki5Q 3|_fgǷ#kebyg p=|~qxן_+V`yx5.aojbz.au=8#j|3finJ#ۢ9#[TY_{vbt8R_O Xer8Xb$בU:@?QAf%]^4'vIeШְmc!Pn1 ҃ Gbk"ZC 1Hen0Jmı,Bt '6eC/ޢ؆r¤6@{Z8/kF.!E&rKhVm}Jo q< x3Y_z;XbW@/roX[0yWzZ6~aݱG pwjt*{ױM]}qqk1jE},½wa?%Ļ_ bɾ9?ٌt_WÃg;@|r|[1܆@|/3b===bK+YlQMQ|7/7(i996[ F/jԳǧ o<ёVtڶC%pꩧ#g1Lۿ{=qTe䤀b~dA`"QO,D_#0%CeN d Ha{Ct]7"sI-l߾]ĜAgAt}=$a h) s6S[pHdFNC1L##[;aLԶ=X]:itlڸ،}Z'cJ\)Gz=KI fRJ@5ZsT[!y:=P]Jn@$$MW7=nV,Yurc[Op$`UN:|ԃ X },dsdw+Rլ>\ 33 C$i4 cJ1H*{{-qntr 4 4BH~^ ;jX ..k1aNuevɅe@F3$Nr9+ @ik7/;r/S39f^5)F;Ь%rRv}-VG%mđs 0g%PN}T,P wh9zOᅤx.O6Ķ_]{0sZ<%qdt-F> ޮ8pe#t.8ضo=rƟb<Eu`x=jh= Vq'.K` v;4md/ޓq}'?IWSmyZt~D`YGlI|Xmz#.xm)R/|V\ɽŧ?i ߷ `(g|f%AT/*(OsO:> "qv\9Je3P6FFFĥωK2gnVuvA铉OMMђs X$k,\ Y <١*k9XΠ y}Q5a犑E'’Dd~uT'yl3zK}/wR3C֎]n1E,Kr>wxqǤטjF+q^Åh#079: Rste列gdc(ݾXzV.$jfo{NjH9g3b9 d%t`SgJ{)J?0-Y% S)'={8FǧŖÏ+?piGC]|N94A|dF}Aɔ)^oo%)>ƾՇbu&}}KhCj-p2`S^:$^'`mj]!I b5f"qI~ +xy5B (˩[(WWol&X;$6Zx۬_m]S@{ۄ|yA$]7Cb~60 ;}&Ή-}t0L'̧ZL;0t_Ҽɏ ֠m1ItgP\uj,[>uzz'ۃ1Gtu-{=]qi8 CG~| lqvsz'}W\qEԓed{Sѫy=?Q;a3+5 Ɋf3o4DŊ.˥X=y S!iXhv(`vx0}}kv(k7]}2> /Bh i7MScg#M0M*](%IBh4xNoS4ٔ4Z< CܳsDghbg"Ύ!guvSwQeM'빜Cϗ&ԁel[-FMk` t[t_-PW`F 3_3aM8r'dn!t el2=J$g~/3 #@V01 ]a@v4WP>^I5e(zIlz4}`JLҤ󉅙'CZLr)u\G0BDe nd$rm<2P<$FR?O.fu$։{-'amƞ

-V\{CdtӨ!90|< q7D&זG&059>` u =Dmț9QwsTcP^]җ$q7~jiLc_7$vذ_?LcR҉~P$9i:w$x qNJL1HWu6%Y*w81p*Y١\l֦>Y5Fb&ĺҹay6%] тswYNXd]#kYZhP0Y$C֌+c# q$MXmE]*p݄] ==mei=6}3C{r-NԦQ*0|ɩ*HL' k1|r*6i7[<%vL-%JUT,016a[T^!=)v,PPZ@6L$@αY#/H D  ;BY`a)뤜{En6=! j興NpVl,`Ozvg非 w`D)Eݙ& QOY3><24uTwJȑAjp)Gj ,8$]zy SGo5_1Rs(kVԵ;r砶j ;kKxBE"MMK#5=[nAXc=/]͛_锟$C?a;7~S:jBI]F MMG%yZVo47KP8ɩ=sxQcc %x MCB〔I3/f7cp7J>H!,GLB$KΈ@Ж?#ћxSINOR+5ǧ UAvz4d`۷ #9M夤grBhEYmQ6]IbE JKKsHSyA7,n8:KGMKih 4 oWD735S>jd#z f`O"fdV%0MX3@ 95j^Or!&OR9hrhږWz"rtl p<KE4ț2 9!ug!'4 Q@XX=%O;#2ÍSH <9Mס,&DDL"b ABRJ9XamM=8AߪǙm)28AD WpxM`М8Q4mvYU~!1'?c%Z6z:^s;=Z,w]&QC NZUߥP677 OM(Q|t u{ϗwForn7MMxP:QRb!BNngKJ#yf`X]]B?ePnR.FH)Fc",'O3L:NGd0UhqH15,P8$ʨӾvibB*.d[d\N޴섊1~͟3|ޚ뾆uJOASΖ1 .vas,GMu`@t+ՔՄ47-$fs|7xo,ZێIB}8 lG5j#< 9b.:jaS2)H4k HM1MHd[̌L4hq[)Iw)?1yFSոč$J27dnxMOi*N /{%\ d1)o''`GSsT C2x=V-̣V+=7[ŘӴ-OX,^ִIqjl;YDSb^ϬpYjk"N܎HOMEfj)۲m;B^VHufRIפVĶ[i%oZ}&z@Й*MfDsSvӒڏ"^gQk/qNY#ޮ^atC0f&O!L%נMͅ!;U]2Yآ%%pvUȠS7#9gQuOwLۺdB'lKuk%Q=pM=#iI%XHd9//iD)\f(4Ch,RO$} / 9/ ]SyIvJR -2 Rn+Nۈ000;(ke]jwrd &R#"Ɇ:7:( 4h9i1EsQ!" 饤72\Kz5S8m)vvpQ%&h.SQUS$R!@88-Y7%U8PS:Ô1-ĸ9HP$ijRA{WenRWEꝌDh|E&⼖Sik7G,,iNG$sοь^$3j54=CM*P*-]LLv|O+L!-#T^?rϘꟻ)s;<#fն}lcUROʊ*BS&HOOC"t1lN xKF6T-XQx1a< CB*` W)9o Z崳-T$1K$$.d<6]OFj[[Ɨ)~{h Gىռ᷌ȩe5 #_İiT9^>WU[hb퀲+nz8rw z{e5@@ =# >NҽAufW,_8:"3#=6|LB\lO@ 322mk9QS6 o,+-YL1ٸq#{TT=0䙐W+S姨<qi!UTV*=Z*$)<ߐhLmEu4Hv,(BH/Fa3L@hqDCQzw"L%ŽOMKS e-ra:\.=74Tεt< 䞜U8V+9n@XɧnY ZY0^M jڣKW7#x7bG~O;E)SĜmD>{`u>u%جel4p\BTk-gbؠ蘝%pSP ~?{59+wC]n6Obu41L_EkpwC0p߃0┋G]4Nx*yexYma+Q99(xyn9jk왫qGqk > _8BqOϹc=z4*w֢آ/d(-p*{јhҢ%$qLvI `tCpֻrzrƛeW ;NBzX#kЙ>A:ɢ"H`\Ti48bpg%]9=xJۦ%%4idMp*Ts}"HӍ^ ^yI /tLqZӰ>W.S`٭%hYϯq`w+΍En-aq`ՁaּO)vT_$xp[E3pF7 쟌_kv[ᘇ?IJs1}F?f,\9kG@y`ꕘ;u?,xn[ }xp#rgx|FL:j*z!~pNxS|lӟZ3s ƎK-]U(dJ{jf._ \v*1E"1-$9y:;#q]C5>t.8ڜh{VOð;jG\5EqG0 ('%߀ GnK3?A/x Ońû"7 :sQgcz!cw|?ɫ$~^;wl|e:!j 9$ kkMb'q&'` HMN899EUʥz#%ur oSn)ܼTF֔33Ą !bWo#k`tiSlTwΝ#n#;T#qs_qA8vB^q:2ia8Ͳ5{=}p[ը*-E]l%~[ G|1xv[#JXσ~BI&aʔ)(//uQP]S!ɪdfpx$EGLBTʶiIz3f"A1H 3|HKjG^qEZ"UˉVRtd.lOy-ZILC9nZT YmCJ/Ю7/\%Mff4e<ᝢn/%9͕Wfn.9<1CIn8 W eRQ%D&G<-O~?qU GTSJ88I>5eq\tꔃ]Xk8{%layqCxr x,1Vo9 =O< Na6|N~.A1,_Sݓ18tw2Z* n>,\6 ;*_tGW +~IXf+_$ӧƍעmڰ93s9p2zI2LT'cD%SL M-="#ǣirnO JIϣ1%2fǝbi* i7YCg*5}95}Ϯ`CQs5͛^2Z4 ]pӫm!̄CRZXw)8_jO 5'jP^*WTmϼ{? wܲ´{,zΖtIXUP0DrQN5m^3cU$ɯnE<d6 ?Ƕ|qSqǫ_c%܂fq9 K0-^-AexGs/oǕ^Ǘ߭/?Kv?)@z \Fi ݏw>ƢebwS0'H5uضy)^f]Xy/M-@3.?+V߄u~>*#ڰ8嬡M*}[:,|f<47=ӧcɒ%1cFˣvQCgRHᶡi2/8(-dk$e &eA#ZREjDJ3Ѧ -ϒmݢS1sPS'"fOP,ҜE<NG ֽa!/NhfW&8aTm M^8Q _T4Y "nF2,7x<^Y1Tᖌȅes/[s|䌦75{S $ jCR3[ f E]`tWO=GU<} d\俟W/€_ğ~-N-ǭwF.aSqfUx~xtxZ?rZ w>/mNhIppؓ.FI9jgCq#зjn1~_p^wbSqA{Q7c*ut<1Xxѿq&٢5=.}\~;%}c{qs׮]x/2Oش:/FZj_I<><.Y߆$cädr\,zҲIe U*!:j_j|[LaY:G"i {r<;q2m-YH@X;+PW[(*mś+l)t|fnu$Ip,ZI nNV>CtlBpq~NQj҆W9MdɱSu!>ۉ"^Sys1S̀'m S՜l޼nI-Y[cs\/ 'g}>SJ},ۖh PTT!Wka}<݆O6O7Z u՜"yX9lBqfIC2H@Z ƕUm͕mPhb+&\ϐCUM{AEK 19-YѯGW|+V2-F7%YNP/CZrR˒ jG6`?$SUo xD1%%T_Ԥ焃>uuĢcN%k mfMbI^#}7'HLDT&/bGw=(Y\m.,x. 4j'ʌEf09^ބ$BU.Zٖ #whLw$JYNh-;㍉!5Ǚ}3'-V-*+jud\\@`m(>9kQUI:9s p0),45ʞI"'#Sy% 7+%{cfz-9,O55U"TLme9KҤH$DmBtYBs$(.<hlCn.#RLLVFDLyDYVzXޭJsm)=lloՙŦdK^^W*0-<S5gJFSD$oNNܐGf bY[‰H%||ۘ'g#ĺ,&dy=xJʲLsF܄%ܠ7@2S?n_ҁQi9w5U7 z>KdJK]=s a^(kֹd:FRjGFJj.7iQe:a7 Dd]U74rwn<&HOMf朤)JTd" oٳ 'qnY{4MJ{; #+=SOOP[l;77[Aȶ@v,kJ ݅ό<osZ4MYsc"ƥiJOɌUAϙͶ=I-,IaDjܸR^xMϕښ)T99Qӣg*O%e`ږ܀ژ,n S!8Ucf{C"{vNo\̒57nmP9͸1I.&f1PDž8lc9իWֲRp>E,yg5`ys9*v!k!ع({ƫv8@ʕ{ YQ>v8zaSΒK/Yq̦۠oكi㰣{4ffD#bU{@6W{% d\jg^K"@hFܻDZqKF$ u[6H#33Iə!2:edpLUM= tG89@vLl E9TM6kXB9C4CTvdY 8JH,PT,UjJϗ#w*k|pdɎW[5RQU9#ztLщI.MY0!/<[fONav[G}CfkZmgUZt4uDnH[]]J#=:Nѻ=SF% 2Vk۷oANv$! 8MKo/~!-5C*iIv"d|0fu5!l7F|n#}j"p$ٹ[׎fX؆b }(yM(Y{ 3 "pՊ @Rױa[iy GYȔ@g[jό*4)%jYAŔ@\j3'mr#uKقdQG8N'Y&y#L80ؾqI7KxζINR 皟 BZmZ ߯Z̄)qޑXljvaYV$$tG:);3="z`{JZ*%I Tx3)@b$*FeoCN<7iHc$Ԕtֳ5dOOT{ ܋(&Fl=Ҥ43zAoNkRHrCP_ΊgcphB!<,A9Q3?iZ[x+KOmƚRy5uȂЦ!.Ͻv|Moi9 2Vi5u-t萏zDYy֐k}%zm`ڲ$OfBP.8F\ơRDL @("E q(υ$ OEQ*{:{z AArROi+rXYsts±D9ǞH-x Rϓq1 %::aĭ]<Ҩ"ש7 uIdDUf>'{X>WWߝ$'qt{l)2lp3H-o7і.e˖SG$<5DFA>HonJw ZҘ 6p X#i)L)2hfw ϴJf55LkzA>2؛bTPXhk3-&@vDr 켟smzUYTLJi"sn)t/K0Hza)d7n" xK(„-^UOam+L dn"ַG 7}i4k-Z(|ڒ_#GĜ9sPRR O(d]vŶm[X =fMJDdu5rNIKG8% 76F]YgDnbkr0HN#^.OeQHb,+hԹCII\ ldILx⨤bq1Q,T۶[҉pV v\bzM r$aP1pBa:gˀ>Cd';U%Kա{n SF`!BVmN`6"kKC;vkZj{Foգ#Ҵ(>qc=q!.Aޱ`Ո^.Ю?v~P# o]#&/=#; ymZ&6ƎŸὑ疣&=bL<GFeeeߟIyHŚ˰uPC8-P XFϩ}A!h f Wu&kEWG$"` k(uV~Mee+,^Xɳ$@mT]J $7o e HŠ7cl%cѨc۶\xX9Pݩ;ɈDEÐ݄-NCf0Uj{gh qSSp!/r[p{+]F[6sQ˳Ϛ&tClu f&ֿ<ggB{^|%\ 㭪xR{q!Wgp!Nc_Ccq 8 4 ^S‰gֹƌc9cǎm6\mXyB7Ƴ;˱U#t+ƯhNV@sf\Wd;0Wm&u:(dQ6h_RgZz1i[`K>DVmlތTM'䌫 HЩ57KmxÕW>0<]Ք<1 zI;2iT=eׁr!wiZT0>Kx۝7&(f4~GQ<ꊁw#}:; ;g ι9(:<:WnvvqpH9\v'ABu [MKz`(rPr p64ҖybB?[ꐄ2b <*'ExIB䍛~ 1q'k)Xߛ*ڦ%bD'@HLjr{1C)xյb$HpYJۖWhr4d1/5oH{Po~3{"Yl)[a r&W$H~J[iWW  J#_uSJx{#Iz=IIC99$k~o9ʴݻzVİv+3'Wg!5(>̣֖ {&CDWƫEnQoA1WZ+BJA~Ξya&Mˆ#p%`O% +v U;ߩw6<^BSx;++='4#B$ekd.iO$9sKI!^T:&SPchB4yvfIRt|RRͻ[nR5="g:PYɃ Cb^0xS!,>C$Ucd"mEfvÒXɕGꦤaBA"87Ģkr鷤zކio!mx[-PY׿?"JP-AD_<;;iV<~xܷZ'$Z/9o IKiZd2aL6 -эgA1p1rS;Y*=iFb<[P#z.<]C=T&se4g5^јsܒ+L١T흰YKb_O׆Z`y,>*g^A/_Ŷ 6кQ'EVtd-I{Br=,^fM'xVަ- J:vn5$΋sN -6!X%9p%x*#+&KymIG΅V/Ģrr˰ qɵUt<>@ӱd̘1%R^mƄGX[SҍرZTP/ZJ97QbKbːƊ2ZෳUKb/ f3q@غ؊7;8-w\>*9ZnRqI=mO˓NiYDŝtZ塣M͛ lÆ (**jJKK[3R(6o\Dco)}{CФs[P *|>]7#ղ'%IhlRBn;9XY]˂`Ď& CK$fF̡n&-lDT #&_zRιʐV.xíh$[~Zn.2w*L0>Ƴ桰h%LV ܥxF$>^NQڪ)Ø,Fc-F\7ތj5v{mH &0D'hIyE/vp: y|nʉP<8 k{A1'тv`(KrX`} 2 , ,( , , 2 , ,k>)6 A`GX`e`XX`PX`e`XX`PGgL]4N۾lx"_9?6ht9pjkFl:c0'; .@ d_,_p[6-[Ӻ{L 9r3p3.y@ j[Vw0)`eYkl\~oϔSp]᡾y+â78?n+~z9sAIIQ:>9xc#x ",( 節Fh^ >qIW")bWtqSx; <9k@|~2O/.mm%W1`g ǐ010 Y(L NkS?CJGn?TQݸ4 t"Cfn15nxJxq%3tUQ99(xyn9jKPް1yd={PZ:~@f7rY8a`>[#9?pU CD?{6mpz}݌ڳKw@үW^/AMİvssz+q,[fg(UČ=|bcܷR~͟+gbcXX޽lMNpom_} _Xg3Sa;==Wbpunup*3f 9;'Af_>"\Dx !"c`9U'PO?6Vq>%қ->b.7m"SL|x K0 GCcUhc `.yN: 9y}poFw`SpnExŝPY>Wfŗ!ba%((/?#%O=]?^0E9y(9L8r^ Mȫ$xRv^8# D(=Hz ":MF{8-ѣ_JZ\G. ߅Tz2v )mem`Ί{ˡ4EhPNtv(<JzBƦ ӳPI s>iik_{}=:|l j^/B+ުFUix60B4iL>[g4)DXvQD݄l|l%+ё5emdy]P ˗:`ބfm_cg^}rˆ~|-=a!wwa3I9'?9aR!J'R_ &`ڴi?IQ~7Boav>sݤߍ =GXݒ X]!Nk=2Rz-jK~F} bU.[%Hnڄ_4,IE]Pb5:0(Im[yH4VM  LeO׋M?L@qpq.^ V`@t lYX^Fw =t`bl]-Asmlǵtm8b81c,^_|>^yu,k؃Md(c;^=ŕSlp8¾_CO%>OWmcKαӧcɒ%1cO2ZUfHx=9SeSg'oԫ2/iU= @kᩨ Sm{xX'-kȭ^ u!p֩bEenƴĺ~I/uޗ?K-cW8:q&Z{V q7F“F;1۩8~=(zO]<^~e$7olSpfŬl{6rH+۰aZRz<.k)H~ H; 5ZX`PX`@X`e`XX`PX`@X`ך=   < ,( , , 2 , ,( ,_J3f%v 8Ů޺ŗcN@s/i*wx.}lc[튙ѭC2:#p>^{0.7xZz?}8Ps&q .jĜlٲ㱯pt$''7HA @mw.ںKGXXlgwu`[@{_;xwE Ocȑ3gJJJΎW Xe+W EU[Gim^/ȡ`8܉xb7S3&|sBlm^b5Go~6 aE-G[ԉCİY4NDrF~+>zt^D@ܼ{̾ )CqSfpe*+..ɓ1zhTV%<ܮлwo4 I]Կ{gӰ\x_G^޵1k-^L бd.~jY\uѮ’ů낼:,o*z׸O?:j-aJ=Z?C0 x%zz}pθ}j#G`gqnn~NܫNBhWgگ^{&:Spż}p{+qW'}hrm̘18c0vX8"v{YM_BZ:kXJsc1s -/_W?}Y^gxp[E3\C:l]9hH 8,jgˑGvn8:u@c-/ \:p14#vZuʊ9rz)fpvκ8 xEF^nķݷ:U}&rZ'N銂~ m܎mZ(¤I0e5!> v%^8z~()^\7jbQ&߬0p@7g6*޻NY߃vo$GOČ᭱ qUF\1g ,}qϰ`XY9 W7 R_ &`ڴi{^HJs=[NEe>7Vb^0v{aN<5o=릵]֕}AC8ЀF}*.تX|Rln9[0\!^e"WXx PPXBQYA^gtqƍ{>قcĉ@U [n.^p80푿rq\r󜟕엿[PƖ)ӟ[.oy71 9e sp~|4q67<;ob§s鬳q(=F!ƚZ^ Qxk mAYrFᲳsƍp_c XNg^<;67~Kk=>qcW#+p-K7߽[Pj(d\~Q8h8b?O^bF+1йk?ۗ?;c8{<' G=o?)|ػǣ}Z$6hgඛ`MGLjx$: v3fExK[v-xHIIٻVqnŝ1T|p̊y_yӲwՔãcU]\S.߼yk a=h_d>y]S.kaX`PX`@X`e`XX`PX`@X`e`XX`@X`e`XX`PX`@X`e`X푙p1c-k jW7/_ vc'+" z\|}mJf/_b,X`PS.ۃooBc7_`UV'QEcȑ3gJJJ}۷grW VtSs ww[4<v4]kozX ƺzNGo^ښ:ݨ%neQv@;b"$vez}gZcmm^/ȡ`8܉xb7P?{59+wCA8yXą88y>̘[>AW<5 o]#_OO:!;=zv!Q4shOtLGV8{ae6v|IgL+ny ]53_Av@~XKoc`3ʹÐϢeqq1&OѣG'%z$G8=ߜ!BA i0ą2BG(àׅ =?Cu~aqHMZGvYpY.b3>4^fMUؘWy&ֿ<GgE(-}gW}s7aMndES0MBK^Yן?asCo#L!T]9 _~_F#CGDž;!q/H4S.'վ_Gv~os cƌE0vX⋻B-"<036v$zW$pU^yc>ؖîDO39޸-45i{sǞ=M#ިтHVh:К3y{k;u|j".h$v~;"\pd!ưiωQ$E+wsĩ9D5|pqx10]!4rW0?y>0nѓ>_u XWG^ |~=b'Ò,*,X;&À71{!yF7x{? Ԛ_LyeB]nD?@ =٦EK{C]97{ `.nX ivYzq{ :϶m Vh=_ġwҿ;F$c5h0X\a˗tbvУ5O֏=(7vRӑf7 $`t0{x\rPt VU-i1)k(Oڠ!k@IaI0b\r%{,Eˡ{<=XGΓk+vykqǶg|Ws{ m{;|yoP?ڏyx/zZ 0C*r?}]N}=?x<zV&/pRx-n"Vi0aM"nǣrb$ػ Zr1Z|E| Vrſo*^[wBݏ<87E?[KڐM>F ؐ=;Xg١u GA~;-eQOǨ]);;*O͗ "2&!3f]5d>}0nܸᵦ ]bߝ$  ņku[7E {)Gz Up{6yM_lIpl* Qw!-=}^W DFigb^}X8':wȀec QpErR &wb:KK6z.=e+?Gq)}%x?!()HFXSa\߂k Ÿ a-")u湯a1> 6rqM>K,|Rvwbs--Py<Ai*~cN*03 *0 @ ;Z (RKz]33Zn%ܗRTPR@PPT``@=<,p|r!#~1W U`2BC)zy_6}*Жb8q455JON+)s[UE)9/rT',lPcGb{Պe >;&l6ʖ^5l&+..N(QI޽ ss2.ǗgŢR$/E<+.?UuUmdWQRR,.t>e9ח]x^KQUqcPJ?"ଣ WT]ʼn@Yp D KQ5~QQ3AI$$ UYY Us@ B2Nz0AIoUj]@DĠ$"bPI(߿=B.*D(jEijj=B0+J""%AIDD J""%[rwwR_wSY1Xcsxrx,k "RLa2hjh@CS:&/;ś5ݯ=ꖸaNCB7C#|;ii(& "x6ڙܠ_DYO=[^&Ԫ>V Wc ):{䳤ݍEn&/"ȑ! VVR)ZW0c"1(UE>.th5 jfH8c=ɮllےːge!u쇮88Lą ]j;m$j60ksu4@ZNE8|OC;+Ɍ]&+$bPVj2 ҢAZ:~N,0 ]E?x }7O|`P +(% Bq=),͞0IsċUzA !^+@].CĠ|2W(85"/HҌXM 5I.R,[|foK.C֛$vhP_ &2yp1(=jq} _?Ӄ#p/"cdts,Uĝ:=\:&Au1,i]O `k֛ ޤr7zsČTx)%1(Tp'8V Ġ$*X2AITz$6xں@F2TFp2{l򞯏Qh?#<)G a^X~< MqZ.@tHB"cpyuo|݈V@U`0HT"L@ =~z`y8(oڸf]H3ɤZ!&VS@Y7Y}eEu'_l# ľ\4I},V>owr8AYQ2#b-w"?s'[wBK-  w3M8 [qj2l9{渚þ($<"++0GH+X+σRnO ƜC͍帱kF鈖MEr]B}pl +v.1ly6"SoLhVv聥EWfڮ-m4=oR[mdai&n/aVHyx[(V\\ J/i.`3?2_S۫^EYȯF⪢L\Uw,J#+ z.hik II,f>D JDH:9q=> h>%kr$U1JR$"*%%AIDĠ$"bP1(&ו5%_0GIU#DDl*Feֲ M7p$ѧIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/subtitle.png000066400000000000000000001161361473342170300266660ustar00rootroot00000000000000PNG  IHDRFftEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp GIDATx]|=3m$$@ ]HoT߳|fςQXA&% - 2MQ z5˖ٙ;sϜ4MG9LOQ+( G#j#qÑV@C#'FN988881rppppb#'FN9888815![* >^* q}*y[97:,|8881$ʎ~i#):MF'7vzyێfbѱM A*ǟڲ#Ym<6{>z Pvb2uQ7ǕLB 桿V1ԙ_@\1^7K,LIJS1g;$5KB1u<^^bѼpOX?~Kn=Spa0k­VD4'd -j,IAF!ӱ]3pO}w.ӯ۱!NU޿&\]G!ѣ{1rD}k5xnr:zaFxkXYJ#τcʒ;"WouI-4ȇm!Q,1$(,7v͍}?1 A=ytʜż5;q )snq Lg9S&aAIW' -G>gcˡ8Mf?Ds#Xvވ@۔k[H|K jJĘhҸ3_?#x)3Я|qBx 2QA'm^Xt*FlfIhs4.]CW`˫YKif?ϊC9P+& jEDxrAJ{Nl&.≽h2_/A=Zsy/~0-]ae&uQ~[ |n%~,vpwqǰKEuò)}ъ(0|:~>|ot#âoC+Z298hۄKq($zTzϣ9Fhctktxo=Ìn'бS)F Ljy~ MOaʺbġcy,n@ڪiHJqӷnJzKv0k_^[LH==زaXFPT!:w2KzpOw 8//ڇ#(c I?S=&[٣P$WeC@~&2],"bDj>O}0qe>~I^Q/=n[E !Jct]D S#gnTbxw"^7Ew2tbQLVԯS?4)Hx3'OBa;bE&܈1Qֺ#qP;p M,=IÊGPLXNeptEo*߸1e^؆в%W}Z<iG=r-*~^Bv߱ +Ə}c49G~w킺<'F1$1޹8pu*CQ@ ZAi߄{Ɨ;\[zn6|MoߪUBۥJ&I咝fn'-  5?SЫ76}:%}/fMEphkqi;_KHM(0o7A( Ddd#]C&`Nd)寖ڎ}$6* 7G~zN1# D8~ě`"*sdD#F!/8ᝉ,59Ӱt$,({D2 c|l9t'33i |VcB-]vn {u?*P98zH&n,7b=6-R#’0yiJĘhҸ3_?#H e/ t l 1nf* j3X^|Ĭy]4D~obng,)A~hѨ;^z-  ׂ̹@R|S0 K2N, : ζĆ-G='nPFcJ|lru):DJy4mrlssH߷3[CbgT#τc{p~ { _oG7B1r"ʐs8#GrjXCby?x#mSo!5!,Y; #+)cNG;Ix|]4#?#5x󖽀1]S$$wǸ(Μ=ܪ yW+G{cx,?.(cFhE?`aQ+W1{-Wd?"\1^+Ar'FN77 c- ˠU@_ ÌEeIecbHod\ :œKX1 98l]EHE"j Uxk*& #`3W|5H&JԐPm6$EFLm#Vg%RS_FK%OZJ`(1rLj&2%I`.Kfu?!^;T`Vqb/@)QJOvR׏h NCM,8&Acƙ|Pe2e:B<3`*V,uէ:Jw&0^PJt'EBL-R" wsTx_ҏY~f4=>!Y;ix}:ZժK5m=0aS߰JnK\[d&4u)PwPWXqb"ߞN*Q ٿY1\JQWe7v⃵YOIO 3RdU]iG*#)G ?3gc$A܍4Z8^fϚQ3\ZRey^4cC{dhQJԚRN[0;4R2)y˥Jl)уW30C 798tS]&Iԥ^h/r~A=`y8 i2A'3iQ2dN@ x:J|%SuqшFHئ/D^!o8` ƆhIK>EU5eJ .`'hNQ(#:®"ϊ?YK&#Y+Fj2tfiפ*>xyBLdoۉJLDb2jP?"yG<:> A&#:b2H3'%$pK ߊ\<3/EBN}U;5Et;4UG &-xߺ>y *\ EB85(1ka]yqs}(V KQtUOܮc0>5y2RgK' ZLeGQݑ_&?ړZw8rhP *rx8:yӓ<Tqm{wx\߉mG}l 'M9n B\A~wXz.O}?|zŴP9ڕ#ɴ'hEMT4Ԥ!M,<_Ta&Ai,:P6*<٬Sgv!!Y1$L5RDUU5k'!3sdebCIDf ^E )RPb>w J94 CìmG+aQd@c 7Y8|n'GFtL1}8?; hoŭ?Ɓ^ qnFKW :G՘|ob=v)đ%Kr}3s"yiH,H?qL<*srrJBtM*BLhO)*Sj f'J(>16BOF#6cŊ:'cqP Kpp}V\]d ->,8ب)4&k%/1)5ʱjDER]!қd#[@'ƆeW",b.`b}D,[:{CR$9S.ӡ+0լ4rOX?~Kn=SΣ¶a\[hO.0HZ%X<7"Cco8UH:k}&彫FD#&>:➇Ʒ?ƛ'N^tg,\3+}1+D'+n 4NAAOc֪x2k EdnQ`pzB9D2 HH`px<N^(:VP=BMS qX`*K@gQF @f$L+@VET:{.`!cEv\D&nV; MetE&`K2#D(5X*ZEFD>c5ZAjnKCTE&qqDf>#6@DTsy~ ܀D.s/)Z#n݄!\b!xjXcڍK&']JՂ'%B=9rV4eV@P|t67Mq}}$z`t-XEmӰd!qݔʔ(DbX"G#N$i0]@ Rsh3Q@T-j.RbcܭԪ&_Gd戵Z0k&yHUrQzç]Y]ID}zv\8xȞCQP(V^dҸ[~@.~IMEؙ~c:g&u2$ԫ `;)Dڞc0ozlQ,Z ) V<޻A`AJbFYY0_O[:vbɫ׬c4b HBo/T9ԜfiACZz%(]4-1Q1rFZLedVD^Q.Wuj|^ݽȨL>=7z+ƾ$jۍ4LXrވo}QG* 90sщ+6CKvĻ?p{ }/wİ{".;ZZ6?:xfOz oĬdO͓W .@hHKM}(|tPl[4p{ cB@jw0/B=ꢑY$ٸ:-Ԡ_1 aQnj'/؄a@&{)ϣSw@ y7R"Pzb;"f덏&vkU&,oxg">k2= IXPb-G>?ǛtA=s!2SBvqM S0ub |'lΟ8]1S]?,%|Rz!į ۧWp^v8,[3y$>{Up9tu+3\YDNa3漣h7x٭F\fڧRC'\RK&b^j)no3]& QO aűlݗȊ߲=23yi%5#92I:dZ@c>!IBޤ|~cpm8|-L&9z>%>"+~S"M|M\)EOHcҮh&V(Mn4N$cekʈ,'Z*jdEO`U4U^d7_~&=j*.-2=J;dlַ&&me|7Q#:Y)WVQɡԲX*+Cp< 60Vq3$ߗJUT%` Tf]v TK5m$|GPYsb,}Wbڳ(*MJg-j)<*&|#H m{{V NǕNyTd ߐ%ziPJ3S22TH]+|W!˫t(Xw_丑J 1VhJAoYJ~֓1CTEG^>d9m1,^+ܮonC}OL;ڔ'JN-wc( b98 ċT+ QCջ2CM]d Nc 2]3-cX [P9['}5I4/_V1Q"| Ꝏ8P1-)+lM(0Q&ThP=eU&2nzC*oU2ZSdpӎ%z+]v[EhJԮ`XrfĖ:Xu #wfud3$OF%E[qyCPW^4b Wk-@T %OM;#A\ꏍ~0&' Cn#C% {798esVT*1^k<QeGbfȮY7bH DtM$,iqKsx4%bE>vJ+|d4-b'2R=|7#Ujk%i QEeX}j„o6MXGK:jZ&iLeDSƜC7Ϝ9ïtoJ7ʂ D Sf0>5ӄ Ƀw)sp]qJ6oƼ\Ü6b؊(jyO9]e$Xtܔਸ਼1ekZ=KJzV=)i26Obj[=i#dIv1)p~v8n8Z :l6UTl"Ҽ8fs "k)E(%`A*D9ٍ [> ?P߼*]f 岂136swaS~)ޗ*X(G98U㡩 li~"kilOK}1VX] syUQ %(EkKJ UĒ-Ph`!ֺ5WϦi=98T_fc(枢ͩQcNTmX,Pqm;ry^(nU(3)eEuU~D{˥"ꠌ2Mqb:CL2'$ 5fX6ՃL|///#&˒,_- )MEI+m_@ xq҃L.OնN/J%rh‰bKDr`z- L>^fzV*)ELLjzsDzGe&\zӿ#G5PB22y&6&VkS6KtreE*4;6B2FEWh4wYqR`2K,QS/JN`6_GZTe,ȣ,xtC:*Knܡ,0cU͵Hgիؿ臰'5ǵNHi<|;ըhL 7L[^C8ԋ.t2ȶhEOd9o1M8v]EQ$=jbqgw Q8(| _)u%x+%z@Rk/F}KX!Ջmfƾ?NS+T23*4$ :Y4=܁l0vbUN ^`Ԯp ) el&H՜PqbCB !a5V0/VY`6UL(ꁪ^!N ^Y7x7A / ǰlJ_APht>?-3*gРNB[3ˑ(7?ѝ&C¸vq/nji"jf=gQpw@XkоJ!ꆆzE/n|>^_QT0cLI*#DݿXoўO9.lѬ˸e}+㣂xʁ0_[ٯݿ'ÛZUpd~a?1zNixcнX$9oc1py4jJs4"n0]/]_\sį5N[|~f.yȖ6 Ϗ-k1h^,2us? }&| 58 驧^}.'<+I{[e 02=6&o 9ߌG צ yj)$pHL&7ݜ@ESLoR&/MR?H ,^2n0m t܊E _!z[QY b2l*p*. p!+:bұPoi^YBΊT G?t=" ,",!2ITad#ƒCr+E,b\8:hBE ´x,% 4XAU`hjDJ[*$Qvzb6ٺmge+N"K4:N41\4ly%O"Q$_`q&UN]:ZQ9>]PTp{ÅBV^z?ŇLd܎nĉ`\ bqx=:uwl.0.!/~KvɓGgt_-pIGp&謃99( T&*Gi{b^<| mH(_I522ڒref:Ą/txOϣLd*TxsVزeD-ʊQhOR#Mn-'+ň{_Ǜ=OѨfG5Uylz{ 5Fx-O~w;i[zc^ j.S*`T7-#o7EFͦcZGL:uJZ|Frp KMBQeen]jl@7!~&0X9b2"ܭ.B8o*}ˢ7֟ EGaWd_lF.Հhp#m'T8whb/]OTPvsMQ'15F-6XX}? M`jG&S%|=zM!pj6Y*)ۓe(b>=F*HD*Z|}QҤ"%؆:F(G3_Spˑa=Iȳ)y u! Q#Aoكv5G[ )zzW?#ErQc킧 Ł rܘAJTI)rֆ PdK2_"Ϟ (\yOI%Ł\d$H8=jBN 7cLxDX#H:׮nE0a`K^ JY]8 YUfCƑni׺!JWX"ƉVcEd!lhୠuL ZE!\,R̦-2jڮG8v3y$5Jϋ3"y _1łdcK󥒑4=ƔDk@FۡRʷljv)ŅDW"<!E;A|u}=QĖЙScQ[EЫ9_d~*pȎ >(SZ2^”)1R"@ :șOHc|9PE㊖uxsQ(!<٨UiJTjrH#m#%>}Pןp*Lu*(%]Q$7~P.csY+y315;Dѩ5ujuɘ!qqpj}oI)qQˈX`-6-f2D2Mz"1#fZ QF"L>A$lvFqb M^($m*5@R^v_s0!D.IahJHX{#rqY?G Xd6(5Bj4DIRFDA? ?/ |}=ؘ&`M_GoU/* qb2z NT?DI\"B&}5M&Mv]b^V2` _*afc豉Db$}L(AF7؉luQIһB3"[%=Ejӵ7vB=(@lj9 )֗{Gq:Z_!Km{4Nz-rڏLI1xWB9jQ@_:5yo`aJ 5[Wz>J Ua-hQTǐ2IԌDmH T12%Eˆ7fUMCVxulSL$g ,ZS×$I$Qȥ1=GLHSd~J\^d7(GYE4^ӗH+W6Ii?BX$' T[/FqHQϷ&.?lbdqb]2dH+/Q¥dGshOg:!K0JXJz1-–Nbi"gQQKqh4Ûy.U/R;*>@|D?l9]"tUY$_'BjD5QЗ6 ( %JIm*u#˼͌UHMg_Eƀf֢dۥo*経./-ypea7+JMO_;;_6؉zg^ Aшx z솹!Rdgf9%P Lz6Cu/DZSRE`_<ұ9.(Ny͏XHShF kK1HY+lh"=1r&cC^X#Cy Kp;KdLRj6D,`Q'8UB4CVXhLI:ɤڒlG D ;Dj/]t/38|22UL, dNӛQ߂*QWM2)  )Q.2ǥ+rn Hn0UD0U3Z dL& w7FdcXGKQ_N 1 f~Ѱ;߉<7R]EJRЭi=*I'4![Lr H: $XSe٫*ߏEi B;OTA)#Gi5&EB#J:)VTAZb4$UQdUdE7bt Dć*As`Wz=$L:;v]>FYw@tU# ceJƩyd N(Ȓ=KhQFգF}4G%"SC#_&ʓ.1Ӻ,DŽ#9N<ľ3* 4-VPҙCCMXerUAZgh"Nb|D4Br/bk2*iQJg#QƮ|b# "4R5 +l! 4XʼnkJ&yx# X`ԩתQ zs 9XS?*l9u7UUAU qr)(`XzH+3$1{U%__ӸNXҎZe\28|Qb(=KXek_kf($*_N5G֫*@"wUQ̵܎Vʟo Fa 7^z/B+[91rwߪry' 韼dp2uץW*Fddqu$^cpb9pUOUU~%S;j;"o7QqHjΫ/0i'LU{ |>Vq^\QBŚUOݤcfHYVKJD \8WKǎE+w~p;v g ~^^hwFj|.R*ٕu/qVO- }[Ws쓸=L@@B,Lh*8<ʝEo "!vLh5q O썤 GxHR '4)S1mxG4xtu˩yyn" n?Y.ZLYWw@:An,G_uzŗ ,\;_}_cy,n@ڪiHJqӷy=~߱90t0þǣ1-8u؁sM41^,~AAj3ǟiR/ cS޸6&])C԰ٵ9j},:|+&:G"2 ~w2n=>3myKБ0G<Whr߾C|x':ík6X=289881wGZykh-4^t|57S\"M!f_PA ֖H)BFiJ&,9Ѵi1dȽ5G ">晭;s*898nj]CVb0ck6,1_^m XQp1mHGb7ѬBIaf$'7 6 }M"0Wв?o~Cu!JN4U1?m?)@k8r;E6,!2)ŝ6Aα_/a]ٓl!i&bOO»ne%aɎ8y(]/\x{ ={EE_cTxĵs`x0zEƼ|ֈkJs=R0aWx"r&7n^OAFįL^v֠r1988881rppppb#'FN988881rpppppb#'FN/ NƳ1b,YeSh(==YVvw^]] ~ |=w^7'ƫHh{iyl<K^pp%vv殊"XU99u2Z}(V/`.C_8YX>y0$5@X`9(Z ]zC n79 ggFl|"ӽN{uj5 FuNu9.e -j,IAF!ӱ)E .! Fa5aqW(XC|7|J+[gEt!xYQű/`Sþ8` X_rwAGXM7ӫ:~ԉFl3uDזf2nLiG QX,^Nj/1>XtoKB_ň }7`\5rp hmꓝ?`[VK ٴ Yr!~a+}&`תuWre14AJb["..-25 KBy{,Z}@~Ut0Z6/{{y5UͻT'rh ~>9|K?N0=_F^ls*^oN@9ɂ۹Em+UN\Qzwg[nYjU-u`C:,7˼];MtD\Bwt1Nqurv7~w[~ b۸MNfLbilkgN=<ߣO!vZ]B*- o0j{_$,OcYkjRC@,vnfM*QGqϰc%|Zv\629i^6+f7)yz=aߕ9T8t]8/o7[Fzi8p$Bh3yڋD!~DG"9mAxQ%6[2_|ҹ A5^'$*aìUԾ'd ױf2TN doكr cI%lм"'Wd65.z9&]"{7uOq9&8vU>nFʎ3Wrf'?-.T5kلԙ1x.\e >iFw5m`vY\<’/0?:OםjӁ A-Q 6ZDhJ%{uJkIZUI|ȧ?5!_K(T]Ym *dY֐^sDf]C=>B5LDtry⌽psΧ]wʶb5~Oɜo4Xc DCQoeLijJСWK{lqiqYg .,--&O9mgGlj1}Gpe2Ǔb xo ژU8CwjM{+/޼ƭ'NAk7Ӥr`DU {e]3l$<2(5      ;9K.IM:  1JM:s       [@*{`lIٴT| MND_dI\21! jyO}Oռ0uw˓<%_4NGddT ` ǢsJ&ugƴ߬hLq.gIf܅$9Xl先#(('NHe"oDL\W2u&9ٹj מHFT>[OG+, J-9ظ}ӝG<-=ݰ7Y$Q欝63gin6}t79ks'zL܊MOl-/V.軩o9'cea'_#rrrbԨQ(-La|E366D1wk0,L߳t Iݫ>v7iA4~Uvdݽ,[s!u: >Mi.+e9qhA#2z.4 ņ,Þ^,é?">3ƻǸ;PkNOazyF4֯e˖ұcG}h-"ox,׋R?Yk->l\O{K,]ヺE> ,<5v_S-g4kC EiN ]]w/t]aŜ-jFiϲp*apw/du0eٸ(;:oLJ,o=j!8~.cR+KgFU,{7,kq 07kIt't?q̢ZwNGpey݋㏒F֬Fstk}-&ru?#ϒa!_~d<;I59-YG8ʩq*AQAڴh^] d\T 1bG&!!AZm*io4:VYbNmH-drtde츿A3IE5#ʠoYpMDϨiqwGWFi2#ՆmfJ}Grټ&''رc,xS|tQTI==5r(jƥ 3yZ&TnѐyZUƵ,y^^NuޯyfMgPUM̞J<q)L!ra>Wh@;sǏ]=yލIN "N'#MJ#!hr ηƬcjYHbs߯˭0-1΢iѳ 3?c#\z#}ҌBJT}7rx~=:iL.I5S7w|,'+&L@DD'N&0c] qtCzi茳qIa3N|"-ާt,J,Ʊb|"ԡ7R|24 `o=Z>E(=c4ʉ6U})Z.qtll,ƍcѢEH % .1;;RS*΢soNJ1H 1m$e&4#@DUDQު"mQ YjEU5+YǨv.d+CgYrAx)1F!{!cx " " " " " " " "    ;/U$Om+&ƾl|]kl ֳ 0.wY\ebBs զk]O]kScZ:JTZ6&HiY"o)Dϝ+ўCvF}i4ۭt , g\ώmkMg:?' #(('NHD߈Xɹe:Mrs=8OǍ|\VY:<+Ztsq;x[za]o&7,֮Uh?eΣeT+6nhV$GԒg2k`i7vpbD3#צ39x}oQWt(E ]u idӘAiG,ZT6_Q踶w =ľhm>w["rNOjNL ^bfvڅ핎)9e8991j(BBBHLL&0*A Uea*v{OpfL^@IY;Zuq/\bHSl7(G"˦|"hh̰+V37qt4;G,tOROs`]׋\MWܖ"Ə]aa9zi# 20I[„|߲#3j/ HJ9;͖1%׫_nIҋei4(Zw}jӃ3YO~?/O0VτY'yHe˖ұcG}h-"ox,׋RO ]kax[b-B| n`I恤YĶʘo9kWI]" x|(d8CY1w=zGcNf +D~KJߌ'9JFgMew^Lڔr^\\C{G4**ƚNuXVl?{jѴ)炽cQ~5ۘ,N4"fMfg]-qӏWX`)8~.cR+KgFU,S24K$ۑtƅ Fӽ›Uƍ %҉ 1Bj9)Q7w/?JjzZ ҭ-IBBF6<}]H99YՇ,퍛;źVizW'aV,5D h=$Cd*6tbdQ"?ѺTq~΍N2<朾yk9\E֖w^]<:I;OA d\C3dԃ oo7bFFF1ѣG -MVUYMkæ15PmtĨB6/M.-GGVʎy=#Y:j_яecr;lؐ[j2c.axwm ~pOOIhdN:5fףYcPJ3R > jMz06>.B&th-UkL,eT)MifI'& yRɄ2vX$ &!tQԏ|I9E5z1trI *hHؼo-FZ|:1Q$?|0,#gر>-EU/p)5.EAΦgU:cp:b([aY>9w:~=Cē$BE )ʍ3IQ'i〃CbonpE,2:rUθuXƘ.S.*tIZ O`h}1E$n*?F1jGY96Ә\oL- #n1|0ы} ÖӠU fp7\RCw3_N!<=CJ߱6bNr&nq1Gٱp+oL.I5S7w|,Si nQӿ`R+g7?lI}mq„ DDD0qDia?XGgON0VgWIa3aLM_ZQ݋Uj [j@ijcP!cDȻt.KPfExBLJ~Ɣ,) />4Ɛy|ձ-I__ -ȇ]=н*^Uʼn>m3t9ˆw| M{WNIg `d2+'ڌvTqhV 8kȔ˟ > P˸qXh&&&„l;Wʤhdʮ>%g~9_z?+-Ė0ӌ{1WEAxwI~;F1dV$gA"yPgr]x셌1 1 0 0 0 0 0 0 0 0 " " " " 0eM'{Lr"W%GMtDFFJEٚEyg9G4F8MNDXXnnnR!x]5}wWL5__`Tpĺdb)DIJ>87އZs?(0?k~̭)r{.avx٘cfM80Ok{[KKyG%v8991j(BBBHLL D>҉[ԝ1g=k7s2?;C0ZWo>+m7 R!xD㊭Yhח"=6 S3r _h26sw2-cJW3ܒ$lْ@:vA59_ZF}O.zQJ)Y#v>/,q,߆~ɜ0^WC;QR=I 7/veD4"fMfg]-qӏWX`2r^7!V1ay 1qT{]"duy> Fǭ*?E4EpLLsc\B2!wnHMIQ"OqkK_;|uN"F${K#F ?I!0j愷96I·#aIw9K̨G3uVZ-X6ëyGcbA>"99PƎ+(03qt.nHh*W8Y̍3INrӦE8^U===ԩTȦxbW}OP0/' #Jq\v8X8R^ &ĉ2.Utq͟/7Pr ]>bβCxՠp% ˸qXh&&&R!BDJ osI^iA4,1vr)D$@8NNN5BW./Yx?tOO?#bxeX.oOÁ۸2a^r?G3*{]ROOy_ԟa N&vRlْ@:vAUYo|1m'nhL]§=.` ܊cX {{wzua*{%swHckB^PP7n +r?>²~e|k0hc'Y8e(J;ƑS/qvxygFy0͙]5N||XVx{+`ddĈ#=z4 R!+Ӗ!v?;ebLաtY i=cG>qЅ#M*144yQWIOOa$rEAx FAFAFAFAFAFAsF甚U.Ȼ&ADADADADADADjBR35[̋1Ko EUN]KâỖpsHr`_ RJ|eoȶ2ŚNش['1z[J1ZŠ8|l u&sÓKd|4J"v8VPmD%! pXy)˲?a1K-ínP>Sis8Ż 9ցS}Ꮂloc87އZ+j ;#da m"4w"q\nD ky0]Q>SU,yJ7*'KPED*l5|~sTUDǂO'tŨ61̍g>PYBRl ϲ>U'1ܱ -{;{c5e|/&A܈0f"FbJxvcJ+a+xk0x'W0FO/T~S'{ ţܨxW!A9tlh&ƔķUޑ ҞeUi l_0`ʲqkNv>/,q,߆~ɜD>\0cӭ2 ^Swca|:Wc)BOp%trG"28]s2)jR)gKmS^bLISC߰{h.N;IT_?Lys[(Ǐp\ uݏ~xQA;RHKS9}"Jd1.㉘ە%PG"FY&o,RQQX%#Q7o1=\+5%H_wލPZej4t$,N>gi7w?WwTs`[ecciF?1%7ȁ|.bpz4N;$#S5v\"҅9uX5VQs(E+ۼ]7 ZbwoR78m#T aCA[`"|qʱ C+@'#+U)uVlIO!s]A~V=-{^C^TXy\ y8h+ϐ:=uNi2rÛGm\ڏ.tqVx77q|{09JcO7>1c[9p24.\d'5!1 *{܍BKK] {˸yYQ FAFAFAFAFAFAFAFA O? ¿KBԁ       *VLEN]SĤdr]OL;G]չJSy PDm'g\Ҏ*ݲ<)ٙ;W1] ;Y/O>vqq>5Z%뷠^ +@)ĬJˊnؚ%uA|`JWHzg ;oVUǁ; 3k5l[]] ",, 77lWiЛ߮ 5Msn?NcLc&_XP]><~&Y28'(i˦A\)F2o݋^ s/7=\Ks ;q~3SZU]*RkRZNL&Y0`fqܞiEoKJE(/f6k<}hV'|X8՜OW{"œtJbbiRscc+'W.Cr=F"$$l^clueKFоvy|X>Wxfl۔'Ѿ̰Aˋ9=]+ [<;1%Z`R~NX7σPԡe~5~hsNͧfDdXlN.ؘaVfEK$vva#?)<aqѳiYې a닯i-ϵ,zpNٸ`4z&Ӊ[ԝ1g=k7!6kV)"W͟胡W{̙~#rzmo)ҤncDl>crth^ ׼TNFBӟqҢjiJ{ }x6F4%6Mq w+Vs9Y7F$G0r]*): r)ޠ:xTa8f žčzHh] ?$²~e|k0hcr;pxfp6zoթf\>zkKn8Rv^y(^3NɝS]"ʇ]VR #m^㣚ܘ*jjDGbVNǴx)ҎqT;!FFF1ѣG]ym 4H}љg͑w8<ڟpK^I!ʵ'g5y)lG1ħRwU"OqkK_;˲P7n ӷ` f[e䁏 ;ͶZINOsUne&Gw#k8VuP.?ᲸǏ]":(u*ι$jsLRIn8T1%,gIFF5a"""8qbj  |UbFd0s6+_4᛫ EHtYJש{X>mz\Įw.=9v< /xTm?b>='#樲OVU'{c%%t݌dSNcߑ73x"c%9a|3h饣ҤKf*63㤔Ȼt.KPfEx7$_DOm _J\P,1|WFίUpsRNL/62aP3 ySO\)[.c0ӇT1 J.s27EabbF:9|h1Rd9p.,c:M&dVNŵNѪv ]E0^$^_"Jv}|e.1gPiyo ǘʞ>X5[ZZ*VL潽Ŋd1:iii_CCCj׮Mݺu)^^r?^nkĺuHLL]t*L 4r#a?ja]+o4kn@amXPk W"o{iϟm| 7z#so[H,ĉzSъGzN7nVү:QF 5qr.wNbd\'y> 3KGvE.~!6tttKO7cǺN]KwciUL9N#~>2#W|Twb022{p/&**J= ::+++<<<EIO:d|zbnnOջT.0ݻʕ‚… c` o{q1>ƆJjI Բ0;|ϧ=)|>lI58<&fFW>hekS_]l57~m7- W%n:ξCZUeԾ$(;&MpY0 JTR'f.^ܹs3L&5U.+R]Yޡ*jcU?KYEFǕ+W'- Nt}=>[NpnHOv j)ʘo9kW]ER!TRRu(b-+!_C|Q7uQoNӦM *D2e SRDOmj`L&&&uwǎzEE o֒fykDOa~jE!B(u%5=teY[j΁IBg G5~ׄԆ¹*_ FUUS'RTaT۪nxY+)^*sN0-\aZ y ggUNmHb~ˆ?Op":o3bIJ= TkRkhv,?a߰:>7@ ^ܑ#G:U=F:x-$:k˧OիO+gΜ={VSSsUT1uqqѯW߇K UVEQ2ccc[xy{_Qbŗ 9Flzh;{ j0r;4.]i2Ą-26sd_S Cו%iU:}mSkIK|ǣbbb:99gURgXm^t~ui ORgPΝ;z1h*6mҋϥjN.]___A/}*MDDQSc@N'o"MJ*zr ׊Xsɿ',^@"XK UKfq*ٖjIpvͼk9Uy4y%׫Wۨ5d:Kgة^T%+GxTqTQ't7o.7Q2ׯxN2;^Q] qtCzimf3.It_rcBAw|QABiAFAFAFAFAFAFAFAFAFAy[)47rϚ5Kj}AQ5jr-[C9Rv{V0̈́Bgػw/7nܠFjA5U P}~%I2E0nfqa|>ygAQcd5{3I4XL㠵 ux^4wNNĘP]ms%Q배0}URRR~nÆ XzT(dMvvvRJ?0jT}^uqwQTC]WRw ^6X8Wa;coaF"2)/G*zmSnD*n73֫ #ω4.Ն9W،\y32Riu9bin_=̏YBMY??YF:+G5.UJ,Ym۵FU(N  ?~>M?oZ ?rrGtjͣ0ǭkQ?wu>_JXC^^ԅl $adBէk]0?l*Zj.̨!]^ UA̙3#r0S:S5O]йsft멩zqDͱ-s;?q a7Z\лDQ:d*c{f߫ 5'Tf.A{SWZ58 㻃k5n>1C),cUS;,<̢B QLGSsO "ĴXp̑3thrcjbDABcs[ 料^^QLs*xZ? h|3y1Pjէz~ tf1?]…?~c|quqgJwV/i'_52h+W rHx8 G.cJS[ !!y+--H^iA ADADADADADADADADADADADADADAN]S_ ~u=i04ZFAd51ɕK#֦ Պ[P9v* =(Lj{\b5:3mL,O+j ;#0V"`b>~hydsJ;YbUOfä6[@#{c7~_l;991j(BBBHLL̦xg ;¤Vmc{oL]bNּczzҞK0hH!q.jQaj g,އyTyriQAsٲg+|ހpް S?ҲrtчX>{c2&oȡ />7r0.6ucٽh8$;0ֲeKرcza^<ȁ+؝2(^Ɵ{ѫAaik{[K.ZO{iPK\I;\SF?݀GIeObb1рrL1l+Dͣ{68o [4ݴRBycnGVL9xW$ssAs,MM1X5Ob&S1t +aoN@.4TŐcmJLۏ6|T7@wm5Sݤк }>-38۝1*+?ex6ggXz8:SlKե|0c-E2;3Ʀz7nvh`닯i-ϵ,] mC&fNFeLIjƗ[0*Vi=~LrR#Vsbjow]G9a$#GinLUUW-7Fsf[t{1L7^ʊXbo`ZhcJ9uƘ{{]y^Fy0͙]M;ű*J--i,;;gI\q%M+ÈWOr?<<4</EcNaT cdFM/J7-gK###FѣՄk,Yo|1m'n<H#bdvoڕ:~ vړ-2Pp*ق^{rП\QNm.ǀ;Q=~jx+ZTE$5&[XbK)k)sz o|/^2c_-ڧElPNu D^M45ICg7gGwﴚ5gr4 %t5HdBCC;v,/ -I`UKaYX܍J51^w8y[[*ᮽ.']W'q3>{7#7܍2aR*r ΝE]qW2á.h\bNY je&0!:yMiymgZG`," .J9K0B^#B>>}4xW?qx6Z$UG Ńv'C6ۉK$'kiڑ&4Ɏiz sn隆 uիhr CO>m!.c~$cE(vԉкWJȎLD;C;e ߢՠxT]>Ɇ_aj^(pM*Cq@XK ȼPɉO"KVvK یǨɬ=KQA&|4)sGqz1S G3cysCFb:pMOJ bޟv0gsܼ)naOk_$$$R}`)=h~5;ڎ[Yܴ޾hmeYZ冎Qj46 ',s՜-~ ݥl4N X: %K$WQ:xxQuxɡ3`۬H ]5%a7N}˖I[\k=qC9wgon$ϼbJ i= Ft1_H\0b׶+m"ru u;h4űyf,,,j?a|rymjnZ 졠M3t*VGMa]9e  YmK%PFtiL+6;´-V%+:`>k) +v=yL43DqeQ{K 'GA"}k%~[)F̞L8"6'6nX O fy?c$ՂV5/R' e=yyy888yEEEq횘Kƾont(7Akv1t TitnwA=\sď9{.tO Z71upw[/%_J( #U^L+,hT3:կLj0Qy ؜]Rm0S,žQ"ido#gLϹHVNΣ-1$>>Ol7i'Х]폯 f,=VQ? $ !2iBc^>5 7[S,C;YD^(1 ca4BaL$BQ!$BQ!$BQ!$BQ!$BQ!0 :=BH0 Qں" Fx`GPBo1$IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/fig/subtitlesettings.png000066400000000000000000001453461473342170300304540ustar00rootroot00000000000000PNG  IHDR8tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp CICZIDATxXG`Ůb4F j1&DEOb51Xcǎ HW=  ҾyV[ngofdΝCVr2UJ$)) *GSSSˉxt:kq1|T B&~fff-,,|kbb5KKKzb/K\21vU\DDDCvvv0555(hݻw_godF7KKK1666Jx5Q>>޽p\3b>u˜mb /=+ FժUo\.󌜞g q6OPB 7DDDDDT0!lٲW511i+>;!3<C/~ttt )K=poh6ŕY&͹ R ^Rnc^AZgůGEEժ^:LLL i*U@R~%k}~{ 5""""BJ r|3ý<--JGGG-""""B)/M[ϥ\bbbʉYt<U?)))ﻸZ"""""D *1{g> u"""""b#Wo%.2DKDDDDTH7t: -)))W(OOOi}=)Wpuu!""""*\^h?{QQ#«u +)kSq/6cX{t:W2EqrA<2Xp O ^7jc_1g4 GZbDDDDT̀b/ZA$[_%un607Sޞ1z J+8VG^c̕plt LM0r/ϯ_P9B@V"t<.*OmgUVD040 Xeǻ.r;~gic.Owݬ;vE= quo?0&jX%ڄy\݅Cr-۷bE q,Ehqa?l20Gu+)v Ԙ͛G?@BZfϛ.H7S%-u82ý0ec?[EːhYQO sBfU`nߕ^\|}~q0˫nf~P-;]|>^![6cS8{+ɂlPRutlrq׉>+?m{bچs+omu[DDD{5kn5H á=8}q?tTA&3.I1drmUP8&#2V9IP]TWA˿Lj9>OCZ.މA2y-m{G?Ӟ_^7!LϿQQjL`o|Uj6MXO2#5ݍnA|vǮI<,*]0o1kY1#*uGS'm}xG}B"}4(?aλPꅩׄ:ϲ,YOcOԿ}'iZ{ao-kGU3 b(.Kigmx?p?|pv8cǎa0&Xsv wp-wl#nRqc%k[gq1fekCLz4\k9>0; ^B>-G!+OJvOMڿ=4cC {I\Yw>#&n{`Ⱥg#}{5 -;G`ىh4EDDTL jw@'@nx9?}ו{q}Ŕ9hu's7Vɝʡ±!o /ԭa az5>lӗTz/64: 7lǴO5i/}M S(~9)fXΜ4´qM%Tl2D<}t szmz *ve-N ?Š J͉ Hc?FFMPD HdP{:k 8^CDdfb131n]|!Z_Gc]4- c3C_SĢo*/܃cR!s eB>錶5Q| a -quIڃ5m mAim'G;8Yf.)maAfb;Gi][ؚ˳|oG~Ottdž?E8QAr173f#5݂]!o65 y~]4 CGsMfag7WjOh:A-e !,^GqP>'h3>Mo=жTiv4\Sj[TL:–]cƿP˻[l^`t*e/@0snZ@>\ I8stQ'K+1DkAu6 ""bo;#|`Tɧ:B "f 6*-70,7vaI`n uOƠ]s$ooG`X5k-dj*_=XQ>ڻ2:w±{\|j!O'pSCT0G1x~OSLA2{_Ʀ޹ T틙[%G'%#yEsjLlf['-T]09޵?.S>''g;ͫu%$"Yf+DJwSL^.OY&3{퉈_' Z'{E,`DljIp5Dfu/TLe$l! eY+BasI.C<]fA;NJ^L2l*z*9_΍pա53WoXŶ;QJS{0sl泗:NNUQF0o_ tmuNa  7A ^{uQ,PʛCgᆊOѲ#:~FD:V M"o\57=Qfضc+D'!E+Ui]_Cie0|T ~Z)& N#߂ߞzo=nf͝K0wD!ь8A?%b7̥.|}z'>KWP <)l\F&Akfw4z ٳrOP:J%l'""[/_N6""""ឈឈឈឈឈ2. ""*\4 7 w Q!%ɠP(T*aii SSS{"""!!11;[VkXRV pXQ! QQQ DEԆ\P1R4 >-KmឈسǞxڴԶJY"bf'""*8m;p""&Mw{rp^Aʑm^_^TaS~דض9cgՐ֓¯3LLL skK$)JF s cĶpODDDCr U"-RoThPcoaS^דDDDE#;::,KeʚSeQ֓h|y ei3> ?Ұ]k1JE!:h=^"2,Gߏg;!dP Z~`wĨn`Xq6b([>We̳[9:.hLfbd5ٔn9Lv:lyQQ#ƣl(5pq/m>7JF(ohXUI<-)jDDDd{i^I~s CuQ@G#nyp:̩D 9,%7O?cgږI*>[U1w 5?-øE^9X>>Qhfvm{HB;8pQ$FFScܾ l$ _7v@O#:ȃ_p`_ x >r?+NA;24(8?s'^ʣ@m'}dpqv)U k1%ĵTI?-ۏ"b 'bXƨ9X2>NP}h:#9' swJMo|Ii}*, a]qpϘRӮ :7#B$ n֤-w B@ĎU L U _ C@ uN_ߡX0ܤc[{L]c7U]OiPpF_1éR:q \=G6cJ̩"s<$@^jhV@ݲO$`̯{@jՈ_|'O k@@ba/J^NO=x/0\ߣXSIl%~n^ouus+?RG&nܿ@e&fbŕؾx==ѥXr@**@.wnߕEXwZ c8Z5ttNM5{ )ěVfmyVHDt==2u0C=lipg'Z%m`]FEsf6C PF:{mXw)FT^$']CK+8Vp TɿBq^*ia8uC/2?C>:C0{IHv]mabC|$~!D%S-Mqزm2dqW pshX$^|%a~[@}Aֆ?XgףGij"hYA1ⅉxSI z-,^ xE0dXׁbKo`ד>I{b!rGNQ3;1?_bBՇ8kUUk Ϥf .9mPۆў# d݈&db 3WPxe|\B|> *4jꢦn#~Ye֞(뒂7c TK D,(ڏӗ4hx$Or]ӣbe7GkE/+<:}|ۻ? l {C(bw,!6P Y*@Pl 4rM!u-2:E<'Xoݞ^/*pH#^H)J;$VO-1g\FR"b,>0WZAemyS&[1c\_f`^Mk1uE$WcVE0S~٨N,-NdƼ+3/^ ,}ux4r6lWCw1ǀ/@V~SSe}2ҨZVšq:因/4=4х!l335ofJf(y r#,ۍE ' /bC˞^nou,u0(`> 1<\U^߈(b2K;xzސ^F:STjXʓ'qY+U /PFGsk^%#Ә&Gp9;U/=w8_Xۜ.a&?j B-\ 7O%K+*y"R(@PQzi=q{FL%?_vg"qG {/zBT;ċ^>-A| }ˑWLq1 btFN<'}^UipF@uxxj3Lx,$kgUjZ1S>1/Lsz ĽjE]x`OkyÇ5ف9NtX81zMxD>n^l ܵ89Bm!lZ:s8D߿7k 2}˺]qyveߦrE]; U*^iO7Z'[ד:^tS'GNzAF[qI@W*zSv9p+>ufr y-OӟeITLcQ~gؠPί.[d]M*1HI0S1Cނ=f""V(S-&_ t ]{ "_$R~hHD,6.yҞYncB L-&ۉ\RggvR  ̀ :x= lKdSn0|h`ɃSs>+J("ww}~䔫 ԛ-}j󆬼: hlWYO"wwW[/_<9k*N`Tg'"BLy4&_$G7$<9+zj&%BRTlODDtk ;;Bۃإ4}I ]Vb斛+?UB޿z1w=/-qSW~&< |iZ6qABjͱx y^'>|K\ Y=h[SV_ Up7fƕ)$0,pYP!3̛Js[V'ܶpODDTHZ3gf: S׶_59w;Q\Dl DDDń%v *T*=QI# (@DML^x{""B@-s-Km 0Ҭ'*6,傚Qocccd^OCDVGꭗnAϨpODDTH@ DDa9DDDDD DDDDDpODDDDD DDDDDpODDDDpODDDDD$""*d4 '*"8=eK qqqHLL *BVJPV j9,({"NjR[.w ^CDEԖ6pODDTIccOTHmZj DDD%t,m3Epx(>$CĶWl9aX l\KJ70KEy ~mH ~i=\nifܶ^L/ꔗu zٶ]r}%̙GʴIpB"om5J䡒S.#ɮ [ Q1`zRuvvanm$b)HXPnyaցev BM\qEwz (u ]؍Ɓ+H3_L&cY|.?۞`rc8\k=$9r{ee}oq'͢j?8Pҕch_Fi(O̙â=8z=3xWh#ZJ X,y"IJGTj>~'N¬Epj,tV.ڬV ~*&FzlmX  }H}H-/::0p\X2u *lDy:G@G/X?w`Ҥдx SY\8"nz<+f8UBבQN;X|i6<N_V)hDwy ~TǢi,ލ*k /A @Rh3{t!}gPfo1류8 kCoXuw{@<\ѩS_4:#Fc0," u9^w9Zԁ0*7*wD X!ŜBq;)m=.o߃s12$=]W2$'#;i7z?WD>S޻:Bxƞ㸪49ĵ{by5B +Fe‡Lvw ӉuA XŸ́;ƁK_vʦ(5pq/m>7JF(ohXU 0[ jޠWuɶ]^P7:1S15f 洃^s82Qey\AZc'6OLZ#Q9?D /@oS|}bk]5l]/wDM `6XAMJ")ѰJ￙v/3m(o éD/t9 ox:"uIA{c~Lu~X22K9ekprR!ItFiS9l,\SH߻q]~zL|_7hR8!))pϰ6I5ic;1"Haght80?쇹C-{f+0 ?8|QR,[ !;# Wykhk'fG۸ߠD%8S4hSL~ű{po ?w9/㼉Z2wnŴ.hsz8f;E,+o=sTdN&Q z`D ҇Zu>V1+ S6 ̫%^Ѱc~ 0#0"{ (h"^@,,E):_n4)ymG>@1Glj(?Nb b1=/^" 3áXkzs'S{փG0ko&iJTUyz᝱`x#߁Ib8vF.{< "oOT\JAxt˜jcx,\~B3*7yӺKmA@c]PꁹԂ=G_ěVfmyVH_x> d` o {*q/ϴS7Om [Y UBZ^p+kJfr mh n A ֙7 x~Ǹj_1=SPUuX|65}p.LSqƍЫH hUsː~#P>~B!l=4 ٢YV8!"xQ1cl-&bS\&)6@'<5ڹ @_1^wb@xH(K5ҷb($%?Xg'3ЈO;s 8:p~o1,@Tb{Cm_D /AQ#~p cIL~>og=sK Ee~c?Cl.wh:;4}TecqyVcc(tAew[ ^Aģ(h[ .wB`N}j!>x5BvuQ#puw£ a_~bv҄cMX{:%IڢAl){Z7fCjÏN2a=':7\9~ ;,V{ -p.4>6> }Q-Ց\P'{nu3S%&~ˁ!6P 6KTy@#Kj,r7EKvܥ /֯x @%o"g25ԩb`CmbUQeprwYbPe>:vz\KpG1MPHsv҃n;`6uS cm{4\Έi=, '!6Qqztz%3`X8,a .f\(<P8s%ܳ<[]-q^*\deEm$nGyQ ɠSJ_` ywI+ s p/f}< D D%y9mdKcoX$EV.JROL)z=dq3;0g  G8c55^ OӇm܋MAR=3!.H8 F oR*5xp;b8keoI7q;v|^d*-cWdFrv*0$~'P,B9@]-szw-86*~r\O!b#Ԉm-`Tvx~qx)Fd6NYyxS8=iXt3Dx9^Qa V*1Bm1q@_/ "_$M)?4md' %ƅIЙSMv^7ChԥР |PSēFk/d5TNM<3㽑7T7ޟ ~XBE/f3N4&(W=-_2tƃ r~$HSa }.6pTH$-9ͷ. '_{C}1C|E: IYƇZ=OZZ3ml2^\rV}Os-{ R ֶmJM)^| 8ؐ?yu *dg=A%Njjj(J("ww}ҔNNN>7|^zOv}ް^'c@d wwW[/_a9DDDE!,GGGJeiMa1u * 9T.22PNlR4}aSn@Tq=Q PZm. i)OQͼ9Voe@pODDDO\cfeɜBR R D3,}ͼ4e):Ew|30RoV5z[ӂ3:qVʏq=Q\Dl DDDń%wQ1RJi8HA"`obG3l1CTQ'a-ԬK-|$Ҝa6"zvfőz륶[г.12R8B>QnqX=1=11=1==1ܿ0-F/BDDDDT}ʵ-fp{s,Q s߃0 M(VcWxd*VIHDDDD/$8-Go8ۣTo4\˾At[eck/Զ&#@wC-Hɣ_Gt,80TÂa/!tD| A-C"""*p_MŽ(; Yy f(4!،zWM(y 2{4]a&F76NR{^P ?qЛ~{<ղ"oY7X+a쏺cՔ6#0S-9[E'JBz\68 j'1}ߟQ?Ϳm~ U@&A=WѺji8[[@P 5Za𲋆EQL> Lj`LeVG@eק`}Ou6efUA{f  K3*[-{RxpG ԩu b ٠_H9X˸OϽ^֐￀'Я5khݾ)ޑuXxL4~~z.uhi :~j+苿6ofc=:<S_/{a7PS^H0Z'Mb[?IZcD8Vn6!`OC yVk!ɾň4|Pp&Owݬ;vE= quDō>+?m{bڰzz(]'o?Ra:a뾰1\H ;Ewb_}<-lQ& A*^91 ->k&a^O! P91#i@U_ NE7ӽ/5X|pzzgV# 翉cШh= ڼ1gsy e !m#qg }^hbʡdT;nǗ}C]{L*\x zw,@i@iؼy$_Ҡ5S-8-&@@̙GM3:{$L^Z`aȻp ,쉈|-Ǽ8e:p A [" ֜~YrLP^L2;4v$\z7DnX T<o{g>1_/0,¦w/ Л9e砵A7ꯢbc8&shRu@kM`OumP1;J\XR-ćV 4DJ>(zM5QjADDp2OTcv: '|_3ljj~g!$>*?}*T1g -ΟV]>Zޞ5%K#DZY9*T<:CV5qzt'@=ODDTb{&q(f˴;{0kX?e^W伶쨗YAmḛ=c㠗;&kllՐ < l2%"%!^^r[ؼO9<,*]0o1kY1#*uGS'm}3 Z 酶YB9%B=AC0#9YHƧc{Vm6u`*]DDD yFCG?M1C[a(è-r},bbنؘ82k` =Xĉ{/$!12Xsb.c1˅>EE-ܛɧ ]2zMzO>6.]nM:`\vk~YgAHͱ9DDD٫7uBZ<^z|JKOמ#Q,Pln]d  .w*r h±]( S~jRRiBEDž-?[cn$-qM5(=\y`ɺxs F!QAwҸ_>zwi:ʝ3fk<  7NϞ7f--pv2w plVݺB܏r&}D* ~)4lv=s/ dZ] cOȧW2[ZrxE d30q~N8][OK=O`?nit /ş+ࢢ*1N$""*y!_UsS@F)78(S~0vXj! Uf_]wX׵5*9 ?<Ā~X1bjmZXԻ}[I(Dlzc;:*!NqpJ X5Cw`̟cև" v-w\7تEݶhf}G\uvajOh:A-e !,^Gqs_Ԩ?cLٌ;6qQj;7o7)H ۱f.܏K_y.CDDT͞=[s–*^ւD.WZB_ $fYY#UV0QH{|(x+LNk>?ߪ+PZ N~# <=$1KgY#P^07< =*>Br`ba/^l]῭\OxKSQ45,K _"|𖰹`# Ỿ{ 6J3ҡPA-lм2 SATF#aցpA+P^HIIq!"""**eL U89T="""*eDDDDD==1=11=1Qnp.IIIOt;dP(O)=␘ȝATڭV5,RUTPՆ_8,({"NjR[.w ^CDEԖ6pODDTIccOTHmZj DDD%t,m3CĶW8[Q ~i=\ni/g܆^o/*/ʞ!*Lmឈ0vV i=);;;0 i)HaZQPny^eCT6=Q ҇ۿ@MizɥrDGG/ScHwtt,`$]*Tz&_EsS"{"* a#Ѫ`x Mڏp5RG/Db-b׻3RvcCTqX+z4~u;:P6.z Ho1o23(og>k:8Y2eG&{7[FQڢV)ԮR(jC^U{ YHȸ vT$uE=瞜x_[Ezt ŜHε>ЋN/h!P3Jv,}!!*t B!U5"&&]U 8IyKQ%gaq0v+, e M*W|LdTP =|! )W)Dײhvm̜b:~W \hZѝ,xV9û|=߄6 73bs W[EoPk׼sӃo1Bd5;CMP\wxWZ@|'Fxiq:faW˦^OSv}tX70-(c4T?ovu?ͳGt"/!r;u(7aT*ԂTm҂>-/uXg]/|wfIo ۯE(X+s*zn IH ?s;^ڻ4WJʂX?!^ -T~z(U? L|pVJ@;}|`Vbhnpds`p&6DKv+l8-e{ߞe$*8VnY+JhnT{3(ޅ=s;u&iY{39v\k0$^irsx`2fzܻRGS;e2^H)!W'LqݥS|q,1M<v;Ka6ŽLmׂ}+NFaï6cER1aF '֓u>XGc;b\~SI:ܕc[p+Ghfݙ龉C},ִ)SN~T7g\ߔBk]R0n]&J͕xmROpIbĭ:r$ܲ9'_>FiT8\Ί_NuI;=$>t7eo/Ҹ.e61q^NGzc;6|R2^{԰3S=P"@Wv&$(O RC ZGg5U*f%_ nO#D^#ctp#v%߳q(E) ;u8Z$fHB CfM?UQLNym\-bU/%jU*SzjB#sq½sW3᦬U=Lkz$prb&,cLU&r7G-FNeX:i b1sXźX ׺ӢfL[(E硝i֭6sk0շ==/xB5A^$lUwA-O+sc`JC3P{2(˞lKLL|d:|+{ܯL(eZ k(P!?}1a:?ݕNS&/ZjH=Cpx4+ɰèmaFw[yg î(k\_܋7DYq_h*Z&lz2;˞1K{<\qwztW%_8Im Z{MJM)[Ç9t8bQb9 \ %\9~*Bu{5E 2k{{1^ӣtЍ|)b% !xO gz nleQ e!>')Gqm%8%o3?iԶ<ï+YUs_D/ZÏuԬ_+ .:BzAҭ_SXZ G8Al9|y-|6V[0s|BL䰰0Sƕg0uťi(G,W~ߌHC*SG79~5xW5Be\ȇ5ywe8\34d59$[OjxUR ۣGOUY9StXIDK{7azf.^$;R}ojwb2s&|$JEzSAJymSq+ˆ">fqay?/V}ufeٳ&&8BzrS /jeXBH BpjVM½BP{a8BOjp/BA{"wQZ% !yzB궄{!"8BH*2[B]> ~u=Vrދ#p= 궄{!".zLLLRVM`"5ܫ$-!u[½B!Krr]H}oMWoTTT Bd&B!rFwrr~'{V߻|KBY[r-xw&ʶ"S'k%Ы=y}JB~4| Y#2@rK7pWc:SR vGu2u/F: @!H{K=S-aaar#ܧW,v%/a&_tf:ud@gLnp1M|}>^9vk1+|<u+O_ưfՋg3cRsAcD}Rs,> oz*?5SGl Bp F3Ŭ+9dCyaZ$lYŬOr.88{Jmǽ*P@9%XH. p V Vm tڳ,)Hm̜b:~W;IփDUlK5[ B]w(O#'J[|m.l39ȉ$,]}߾=}\ypmw}Di6I2/8~1tiŕ! 8a`9ۙVSWs̊Wp ^ag_9*?ooIrDf-?Içoʐ]AXzmNt-k |~ևFӊfƳ\Ṁwz׿ eml@?\~8?-;&( }m+.Աz8Ͳ9kX{qfΔk؊]Jp\nȏjԡ`ʌQy{>ߕJ~%+Y,&Ӿk,6y&VvLK(ǖuL<-;ʙtΔTZw-rzcX}!)*aRs`J9AE2^'3r0p}RO1Ja\=1cxn2~EiX zbkKj)D`p4;GLO^V2W6o]^*hT/G+k0paV5a@ジXY9cزx4*c+ܘaoz/5gV &&HjdG׸=o⍛#E^ì&l~B&iի!qt+L6 .1cӵ u|cCMO*@oD`Cbip:.;ҿk4-5Y*R?;e߮BǺnD]"Qуo'ty>WN8NlgmHi|V8T{sol;ȕzmRpvħVE iymIv4-ggwvL\@fd}{7gEШ r a.ء8W`OuXR|SånJ`jXc A`O)JH|눺c@ Í-Kr֘J31Z+;at~P鍷8yןBD72];k0EB4#\ֱU|c͝HNH ?-DZ9= 4ͼZ߶~eiG8\J&y;㊏ݶF)w0\5+ e iQ_W-aR SOxk~-B VOSꃻ;^ڻTvGܫw1^EpiRnjD\%f{K@Zta5s_)f khq8P5 \SOd:ߺoq >cuڴG2'}rsj}q%OMҪWAiʲהtP{$ RBZI-*0PB>noNsdѧR쩼:p s\}Kz5 0&hYעӛbEGζr'&m\|ִK}?ؘI?̦z-\(׸ ^4z%|JMu*m]cd G-FNeX:i b1sXźX ׺ӢfL[(E硝i\cоU s:Jˆ濩7Fُ3M\b] ީ.*Qe*ߓcNnacX kvO-ֻ>_`0O79f9s.Gg4ŷ ?jM%t/rK۳^**奪VVVw?~J` Sy5,CémCPV99,NS)}X|ip6 ,BvYf'[B9 O\<{ӡQA:L|^W*wB\zKZ-O5JmA0()k~; 9{%K OO7"{6**깮\ z,߆Qw/ARP{V M"/~:!%^Tڅcoo\z^ (a:E}aICy 5{9p/B亀OM{:uxW~u\O^.bu}lll% !^yθճu{vl{!^tpL0b_ 7mLxVu[½BǨ=əo1 62+-u;B! 3s !roݖp/B`ȅ$ !y:E! &&?^½BPg9Bj]V ^!x j888H9ZպfzrB(٥O^=7Ά#Dn8joZw_LOBԐ/OK!B!^!B!^!B!^!B!^!B B!BL)Bdd{!r^!dcmrrrM7ھoa9B!K"##% éuX/7 B!K@W!r>.uZ½Bc^Ejݖp/B1ųBs"C(?@>B8BH*9f[-'CN2ܲy%{w}IBMiiڔ^Ԭ/mb0l+!rB;>,G-f_V Ug <ȁsחZ#$fv95л`bb2x`{F/ksn4\>12.AY]Hȏ_LR F3Ŭ+9dCyaz8Ͳ9kX{qfΔk؊]Q mxҁt\ʐQ?0`W]L)qo[I2çT-tX4v& %܉Q28kf. ])߰%;MwS1zKI4ZfUzjD5 !D 888Hu7^nQQQ)C$$.G{6au6ޅ^ncԨu$5Șw=1 %̼@Z;2Ź,>g~{,[};1~f ǜbi>i=1I~*ު9>AAH3uJpv-aHE=4sz;3qFMZG1kەM|X2mez"`oc̗a9Bgl@CvEoRlJ0ϓŧampo+Q RgEj5r'?nM2>pb;kCJ曕"ݛ{seA.! ֝VRG´jS.3$'њ gԬ] *My7.vvxWnīp!\.lROCo_Bq/^=+ps&veBNZmJx6)A_,\PT3ͬYR^fOA}oJPP$־޸=+uz6p}n&9DS'Oz<|8] ITÿy1ș貱,-Z֧uB8ܽ\^/1'ҨHVD``օy?>7sRqs\֙bjеs=*8ޓ1r;&'W ) eB<5u̸:^<;5& /S;Hզ)|0/n4P*Yktn0bd# e8Vjt*[$ !L0y:҉ppVV-J?0fT X6VtG٘RG͓)$L|9l}6s6#!2;׮c'WxB/;?TRQ >^<B YH9Oq^uBȬ'>{CTR ֳ7(KRӉem 5=6R,ZBБ `^ϱ+Ѵ;Y,W]oBYۇO@\kRy<@~_:yEM8h"Cf64W)~8K>|Yljk_TgT5BR{f(I:` OSJ/Vp^ 7EЬTm[`M=h )](|gj%@)a|0P~a={̨%6آj0y橄נڗm?mrz Zys !rSE*zU1CirR~ЬbK_0G5>WqKX)#J9u{Cq:Rnz<܃Oך+yGW:MNiNOAgU&(Gϥ"NRn3.ogO3"f׹ul=Xs) $ǒwswK{BIqCą _n zn)|XoƇ̝ % SBԞ^0 4I{z7Ua_%|+˪4㿜QJOKMj(`Z{!RB}Ӡ^RÜ9~> +AJyu)Tt46﷡R r?p_SYؤY3㎺-^f2,Gl vlK'mZl2fv.X1S!㔫ZwZp|x|<3ҖѺ/`|b ~Wo017Y@y$PZ]3Ww+fwH9D]؟}c]9}+cް,RL !2K+sת ʳAyUn `[%[@Pa_STOпmS1CkƦ.k4 )a|lʕP%E8yPyθost UY:kgbbblO!^VYf'[B9 O\<[dTa"FЫ|&D^q>NT?A)Af_d;k~; =r˒%KdX/#Xq(zq uV-%n[mܳmCxɰ!%^Tڅcoo\z'/rrmJ.Lo~oB_Vbkk2f\ Y`[ܳ/DVƦ_p/ޓMuƭ.B<33KjW}zXzmLxVxQu[½BǨ=ə^>}!V<~[ vv jB,gB޺-^!x,--e# YYYIB!uȋBML{!%΀#sԺA½BPgppp|!r8uE$!/QK2:?̆#]oYqz$ !/5!_! B!B½B!B½B!B½B!B½B!B!B! >zg07 Υ?`9&çBmLy{A!BHGcMv]w!l4unc[i1O^g?92wQ1=4ӆcyη SGΝa9I2! 3?CvTHΝ×S,564 !B'gt'lJ0ϓVmK`[۾8q,)w54*g\W窌's#8̨:l!BH9Z v1nf Ϻ?2{ Ko̷d\]q}M8p5VID^J}U.ߊdO7&euݾӿq:([Z+_!{w貫0I'Y5yzR-@ DD&p1T ;2׷aqtC>hU8)BӘQFʭ6͗LiQu|h֣_,ry>4se}^x{ZVlL"|$;R=p}I|yzM;q/-aJ(c(D_(^!p)\Q%i3ѡIJ&9CjN޼.5ppK' נZ-`|h@Z/\ 3ǩO/Rű~(6Etv{fyJ DYgM&8N2ꝷ0vB2+X~ì%X$̕WI6Ix(8+WJT,f38֩Ju7DN=NpM"coup@ FL4ѷ$@cS6ؽ` "$"'X Be}e hӷ96='5ZL:_:b5 ojLMyp4(96n׋Iõ\(=CrN>Ujď}>ÊcPu@M1Wdf2!;&ep5"?^2`ndpB\rL\ݳ- '6X9SjKƽJ0v|#oI;5Nn>4hS2(/>}dݮ|)ɽ-z ys?þ2ov:a+F{B ^͒Y+붢ky 툏 ڝ9x&}11zO2ֵU߸9:־akԘ4No ICMtv}S㌕MF>{FŸNZSc%6D6vu7x2fLlU֤q$ B,-3UBdʟ_i|Yo׳4G#lHK;v3MzKǯ` G^nf؄vzϱye k!YJ½T՜k~Ċ9z2k[ph'^oXܳHi?ЬlslsG2=-C4{^^^J}B,f"@qmSmΕs_Ơk,<بV5r36 D߈s݄Yai+"Sj !=O\–^s+.>x3cΚ{vLtmkzִ&~hRB!D6a9BHxj1&*<1.3sun'ܿp2gO{pG?'IֹRcpȆҞhL(Y4İ}nB!p/Dna蹾y%cV*lRq"0I>Ǯ=!I7 sdlLZƫީvvhW8}ViĞ='ܺ7m\1m olK I]C!j2,G-i?cjcUq/Gozf/[v'ڲL@:JtCI{H uI;vw'֚kY*\7wt-G cpK_֔ ͛>lJr#Qqݥ+[ig:Vy5 [ޱ-f?0Y)67kENø6[~Lt/BH"'1'}'lmqMq*A~_o;4/|w\,_/fvԛ,motyЇĊڃ0'>=s_$ZoL+>vx{&_d>ϵ<muE2Ǎ1?#ߴgkgM8[3h*Qn{!"i/ׯl $$$a$B!$ t⻞ZYBczgx %V`| 9߷q慶M79:l8hnͰs.@Хe힥tzN.;UMdB!$ܫa/O7L>֒_>J5L[ Ci]R SFnlch)Uw7R>Y;POe 9{&1, }LeOԒ ^u߆ 44,b $ú8x<Ր.BHvJx߳ah7x(h'F]7c}En";,!C(Q~tKr(/ذ*=׿ Gv2 B!$gmif䗡aZ N)Wk݄Zbԩ'9و,6VSv $/Cmjw،WZ~R5B}aO[y685>ҽO j`Q_dGHsShT+&|Nߢo\h:t7#,e6`?^2r F̐Q r`|Ǐ{G$+K6L|ٲ-}[b'k!"|^gJcV>AI\5Vi !^ߍ8&ҷ"#gƲhYֵ ᠓Cd7AWpo*&)Cpˏxŝ;d7iÈΖ$];ʲ%'4ۥ}eŐ?{Epn$;J/""*Y>AA7`ދ@$@Bzϖo@&ﭼݝs;}a!S>`As:L pMZ]0y~'`L jF~1 !kScx7l2\y|!fN-Ѷ_? -o3;04}Lv!""*^uBҞϟSZ>{U9ŠV_ڭq|.Z_}瞞;#tiHIPH  Wo־r]5kxM_6 8o5 U;2.N6Ho*4pqvxήAOkkJAFܱ<Ԧ+46p@meͭ:-KbWd}twg#8*yvǣҀw^'1ya&ێ[ *7RpflL'a{ï.tA@^4m EBY= z XXtzeGXa.+QA]RhRU á8m/Vv!.PR cFiiXÛvćo,`MP 6튀$u)uѶE'9g. \VJn*! T<T=˷ -;;Wz=7hҢqLl7D -jQInq/--$mo`\r25-dT)KOm*הmJ@ϡңZ4߬ q7jSu|!쎊qo_yvq3"!> F]>rg#RR8-M?1b(*{VoMzDƬ_"p/Mk2h:`e9[-Gg, \q k~4nhޯ- sLltӍcX#Ӡ%drիhls/DDD%8[;+9Z;tA7G#2rm5h$ɴXÿ삮,u[fvҌuXXa^}./(t[oƦdvtG:0fue5 }=bwB?Kkڴ .]}MѾ٢1wo߀o#*8xF@ADDLd7:%A9iiiOFV *~s!η~? eQ!疥KWs`DĮ8NmK3#}\HFX%8}pODDṮ=m{"""""b'""* L&`ճ0xYrˠ ыá>'ۓrde6 /P9=hZ: <8-Q ǩ_㻃):E&W@cmO hץ{[*>V].{q7Ƿ3L:EspN"j8{nǎx t 2N6M+SLuk-uh.5$ֵHqE+W2w=ѲI-ӝfع$Z7sų>n 斋pApWimzR2Fm܇OOD>+@ @fRxd 3u8EfzPKog׸a\Xq 3L >U99,gz"2:E}f ֗c=t ?v^;qHQء\Vr%ȥ4N\?7z b`o?ްBpxwlAԃ2 8z) <+C5Ƥn4_ 7a% @غ]k9UpF^hwtEh+;aI,DxƤ1u¶"y/+vL3π/W0TRpzufM?1HkR5A#1Gvo@{QW/^tɐ+\=ŵ.eE zR|=z{ޯE]~ LSdV&7a6c'|2h^gBͩ-HC¢C_dH)++5Eyjy@Q1&NQ>#Rݳ{_pˆ{2Q7o ^11g||&[8B"cJ'4]pդ)"} 4q8b~\HJ z@/>s l*x*~ ۏ1xl 8%_y1m)6k&a0kArc  CPscONxn&^ŪbFLUJ:?y=kt;}rJNHXuI#q,CCѯ)w;?9#pH?yBOIis_70cjs>| /4ܧ@c-Z &У qr-1UHhƑQzpD)pj~լUw~{9H=<|j0b_ò mc!wKg1v hΦ#' j:xtV +?GͲ%/J9OI3 4A52b5dr4ue{osDtGA:4P])hXۦ{YZ (k$HLв[T0 _mk ձ,DgWOĭD+fcCD ^`Wl IbPeQWqGUfigp}ހ߶Dj9_ ƚ})0 ˀ1>r4k /3hr^o ua n(pp+Z tH׳\J׷aM[]>YCƾ<>s93rl=ί P~ڷn*j̹^+-}-Oyᩱ{t: H .cź}aZ=2a#7BRB }Yj!t:Ɯ=>Ɯ뚫Lu eWKˑf <Ҟ+r;Tw#TTL ;@0syꎙ}^sG L{'߰FI*dZ')홳Ͻ1;~W,-e#W[1@Rndv]l P'Yz!h];bGP70]Z=<246r$܀+|h h5s,>>L_R()MqrgSN'^حkv}r|/,rdnD Q{sb½ }l wO%bH[`8]i k/q7.ߏCFaCgGKIOn*?2_=x%ojk< j*(w3j;b*tk_*lYo¶3koVy/8 7ȰR8tM:\x(UBL:57b%ORAt` r8e0;Gv<&Ʊy<'GNAsU,y;E.uYMzǀ0_OtʴY.ڿ-G6_fctƏM0>G1+P >'uS(ׁՁn*,<X\9a(`bsw91HOD%?g$#:&^z!%l\~VPvr{;8"'OE">1 iFĄ 2! )x3 *{[XKʈ8~#HF?6ĉ5;GD%s QFmq5I!w;ϳa+t򸃕?.Dz}aqi4hϺ?07.ޑ>Q=v˜#|V VSw"6nþͱhJ >];= T=0_5U=bϯtl,b4^k6_vMMvаm(7Ǝ`]ۺ⛷@ Z aM oaOmo먯bd'I)TZUĀ-QW 혫Xf[=/bޚxgGF\ @wŚJ_6+Ubw3ֺF}*yUzZf@a-P]C?q4%< Bnulѩ+pC T>z>ZC/#ڏ'$ NбwnŔBQlѢEA%߰%XPwm T3]% }s(snj#k<]mӰ+Qsy2?? k79/~d S-1Q?:3_f"--Ө^ .@)D%MRRM& [.]Z9 ջt19|7;2 n8E`G>/_#P8] A <[˕琚DDDDwa.Lc~]+Zcʥc'zgR*ʘD齜] JaF[H?0$ª\[tl- ]w"Rzt)gRN/iH}.\D~BOlJWqXt 7T-gգÍ`'@ZUF Qd抈9{=c&~;r}Զ ƾ}a#r\dݎo7DnjMΒzv]Y.QOk9AK)+[ɍH[OJՈ? #s]d@KFNDD &bdWM{`"U,o/8Sq'v8?m$:+P!hHl oƏEvH ??b a-BpW>n;^A`Mw("O߃w/OBځ9{!C2_k]["N=лR 0pkzv`;V]в3ɑrb'oc#[g('\n _"*9(5އw$-\9o} eKb ~IUɯ6Z2^>c!Z43f`+;/LwuަTØot1s,COYz=|W:5)fr N\Rahj`ODD]@u: @TR}h,ϼ0$"s!˻}6J%>Q 둑6mADDDEHMMeab_ط =QrMV|GDŏw>RLtQg'""2/~OOO7(:DMb_fľ+a777>],'!""2VVV>'wBCV/ Ʊ-b'"5{ DDDfDqa'~;^E=-=ဣu3,"""""{"""""b'"""""{"""""b'""""*8Z7INN6'k8L5̣I܋A H DDD"Ǜn_OdNۥxmS D|...ts6qeqcg=aCŪT*ӽ `aQ8kNpODDTTttȜ/BcئE۵hӊ oo$E+!!t2` e]>ܟ ,<l܈*Rv@;?`Hm+˄J 쩸۪fE/LGEEskWD]ٜ .fǤB6NZ <|8  _" +c_i]x^$ /!%ެlý;qæ#N* _g'K\dn6$ˁiqm+LQjls] bT"s2ˀ!*Pe뺘m]#nDDDE(ʽlsZ ǞUq6N,GD:DDDDoŢś32,`zབྷ|VeHDDD Df.}킱_T pu@%-wYLD,-wgz ÿ펀lGPc7\T4E.UdQB*~a]+-LAV1ӓ,1OnаtfOrgX`O#g1llJOO>LP9 1lZ$ jQ`?Y,Y `M- Vayc _񃕌GE7`ka@B[1c7c0btLt\]Mʋˊv &JA)CJ*6SYJ`i}t3csoRm ~68? OƢ*-HX/lJF2Ү bm[L3 }oBb&1 U7xu-ucFEF>nx:rGXzTD+|o7|?oc ╛R,a8}1]Ah9};yڊx;x]4+rՏ4 4 &5j5 1}gd덀A'I!|06W88J:'HI^l6@-n PO/Dw`O?iR%h4'k_* H?-l8 h6JWy, as^h"%r00pQ:N ~2jDJEp W%㧁ypnt&Xϙg"z9kÄi#Y8״R"_ ZBz=@d^m, ;ߖs=ғxjǭ(H';T&no}akgCY3BOu}PێrX{FqHDKZ| u#O৵]cE+=XD͝HTn@+_IIw {)p;kW k+*Hs{⥓)dg +;u= 0w0KKGPZ^iҋӀMƔ$S`aizW:!JDDySm)e|kJD7{R}8r Wp l4iQ e+{'vw*KA_tp?q7PG=h<!@l>K!q'`0d>`ˈdflsZRlZ c|sy&r T`_ xP.O6NrN-Mo҃po0 nXf^\֥pBвqؚƲ ""MTma6u), ;m4EKr'"""*T*P( u:VVVf.-/*K%S/;I(;f8>%mtc(^_h!%)mRX^21?1 xCar7"*Dh#*nn`V[(둚 Ӳu] SܗL&Wj@%f@mccj.-!%YsZ-Qܘ/2 Iɯ5\7_vXU3B-}AGy\+1uyaׁ!@mpk$QIvvvpqqyd9lb[ۤ66|=MDEgI`eFɤZG\<;Vf71"F/Q,"\}.DDDDDEw%""""b'"""""{"""""b'"""""{"""""{"""""b'"""""{"""""b'""""b'"""""{"""""b'"""""{"""""b'""""b'"""""{"""""b'"""""{"""""{"""""b'"""""{"""""b'""""b'"""""{"""""b'"""""{"""""b'""""b'"""""{"""""b'"""""{"""""{"""""b'"""""{"""""b'""""ϳ`O!..HOO`hd ! ˡRh`gg 5b'"WD>:: t[q%"zD#^GBB` "b'"z`e DTDU/꣌ 8;;3ӓQN"ԋVe'"%~9uQVDpODD{G >&&TG=e#^ g\dKrqqaP !1*|QG1hឈ5܋:ឈt Dd^QD DD~D:q""b"A,Xr꠭FԆ뿸14 |W|GpODD"϶PZZãl%tM 8Qi@ղHn܆_7h#l}* W;)∿>SZó\m1W.C0.BMzWQVh]k]CDKWDǞm2᝭k~?3qe0Pc@U.nʶ|.NN(ZU0ev,=X75-wlsHQ9b߹o wTg}} wt?WŁKwq7^G9|8tEW_3\^ϯ`ڨڰoǗwrsNN- hܽjkam5p {a -nct,e\EiJeXG˖& ӥ_o,N"#q^v(] QH5z@%^V{iwgMެ"EgDNG׃m+gp6ݐH&h@H'܏/>lyӧ#qzc7xLoG_Ɔ8rtҬtї>|>i9\W5jc܄߬:4RZ7"x9W`y°Ѩ@n02+sr==r bܮx\0ʔPJFG@sl!W)~7X(!Jk"wTUGk]`UcUVxvc+Z&[kOL5n,YtPG7tU֭|7,wWCKPnʹ(IR< gA~Ú (l_faL \|P~l EYxW\+fƽT.^3y*gڨƱ4:tmZ\P~ ڡ_X0LxW@v~b>%n[=/bޚxgGEջ!Xj "uvBuOd5E bINZZQ, .@P Ddς`nҥKQIpODDDDpODTdILDឈ8  ̎ឈ)(J{"2p/(PDD٨T*$''C7ȼt:XYY rOD-F#żD$("{"4rzVk7h h4?~YqttW䲔MȜ޽[jee%2,ߋcƹϓ/= _IMM@TjԨooojSؗ bEã'nٳgMw$El|KJzq~| Ӳ6op~ڱodyv V]15WeO>:2}lYǝߞ֔#IvB2foxC QIg@6i; \sY_d欽#$Δw|tGA8r\]v7ϙ5~O7e;<#+S\*e% Nύ 0I\9=< .L0cW@C)AӈRS^oX~'.)mVWV\[7k IQa۞/F1--Ku)'lSu33Bi!YlzVջU9yEn'׭O2s2\z󔽾6B/^I(/z",1/;hy>g<~-p)gK7d؄y{Mui>ֲ\K^{,E08rqNpMc[Zܟ|7К+Nꇌb9E)jnh@q+1 ` €0` €0` ߁`u;%Ĥ9I(i5󯚣KciۙasܿpA坟j=|gxio6(X`d{ 9"lH?v:jּ\0ZK^B\FyݒN ZnoOղ )DyDnv2%KIHOxVIzA+n*E4ۑOҏÓ.vg;4hLjeĨy^a~y n$羋#G aŬ>nӲx ߘ87m֠i0ǗiNzkG׏DR6noݭi\dy,,#1fծڬ|>y:}Mi"i HB2G&:H-)ҹeۉ4B+U~&*F 2^ 9:M؜1v*֛wfFx3^L(: ˀNnE cKp0 a@@0 a@@0 a@@I}Zme'l%-ԷzB"DTfÖQs蝮#rۗco= VUU6=} ?-vmM ngZ9MW8N<])5Sp;oXNZv"xit]h4Z~O)&5w;Jjʸw?nA%%h2Öڨn/ۉH;,u]Y2kԜ׷\-7wpE ~"Ц ̂?Pp~Dv]jijj[wdY^}b7l~Zq3SSkW2`KpW/v;0W! .]c@@0 a@@0 a@@0 an'{3RRԵÖ"Bæ,?y/*ͽG _@Pmj|9GILmX甯bU1['*w;S:XN?_nTԋ7/mr1R#3O$诹Y*هFyiƸImDb׫ĘD7Y,.nFim`GLwr+ |Դ:h= \rJok.)h-ݍo6F}PىM<EOJGPFAi;??sHEǸO^ZFSiI1hFB]qE8t"/WjZL햆Y>n窬B^;֮ 6op+Cl`sdaOm?s-T$ `vp!'*5XbR@̪C$qP^_ >v o&>κzst?\yZ#|̷$q\ˀN.] \@@\1w! na@@0 ATTT݀1 +!w[3Z=g Qq>Sjd\ǁ b7|ˀ0:9!epR{q` R8Ћ/,,,~{ 2bbbƏWń\q4ޚL4G'lZ?>fT}/A9JVE/^\YY ӧ^XBWSt8|ptt4`ʕ'NfK ,BH}/~Ehi;JNP/Ztfmčw?1Vdl My %Ci4=и$ݨ(r)YJBZ|zJVs^tts )Ӗ˹~rbOh9~ &&&۶mc{=#p\ӯ Kr_5s4J^}%%cT @9;ӭGo,`㬂72Mw@KAa"S 2Z0{fl'qĞY Wny ([F}}ٳ[ZZxyyK]S.\s-T*aq 8Q v^o/  ,ۍW#&h =wì3C.XTxLh7}a\7-:op:,u }F ^:6pur6u\c??~\]]'w+惊SfFK/}5V;f֒K[27le(7GcmVUWiRhK] 323k$«yAxwB|ߘ4&'N0111bD]1cԩS{%YG:^щFuu\Fdlf,uaC(@:V1Z2Gm&|{[ZDD֠0@[@ ˻șFm1L nj*%Rl?R!Pb45E3q02X`A%JL2y˜9sxxx.]$""ݻC6c<V #wd_ ,&뫘I^0gгˎd&>"f~tݍ^OzxRL1?<CNDdq]8@9rP\\뛐ؽ{4iƁCvɃ4\5cZK6d9UW  8|KإÜ" (dJt;A3x#jp /|&nTxiʠ&msL[s X~c޽CQ.""@gGgLݻa1?hp/JIIAG vrr=zto)"ګqx a@@0 a@@0 a@@0 5RZ>Kbw2+ꛍ ř@4" H?]9r]V_ZORˊ"3yB,rqbd9>U6: F[Wy_?{?#lXgkSl40 b !*I6 ~uZy̞#d%4,fj.!dʨy(?iX Pظi*o\c̀ hg w>#|[RL bL_\Fs-]EM;e91͓bž_qpJGNo -Wo|2cPtt3q/-PPаZvlӨܓ5za՗sl!'2b>3gvӗ#nZd}=,WG'_Au4ǻ0`{v99!D#O zq~NXUE$utFeff 4 +s!|æI8\_3/G1xvn&( ~j1FҾX@ ֻSÝl|i[wX?NNGG495Ahͻbmy:q5=jBKd?1NxmOLf(ƻX?Œzw<_TUUʝ* ,^y߀'UեRGxq] ̘,+.ϣ|P:#13$l RBԵ}c1w;7Ѐa@@0 a@@0 a@@0 a@@0_ wp4 oNȨ9lKu~}p"{qn h:,.]st0t7ԾsG2c9S%^[ݱEKd 5sNF+Qa$7i{IMV*bV 25@r ;I-{[\KkZ8_=~T(#_I1В0ڈ b.=M/}QߵC+n"Y`T=c; D7j nz۔z%a'7R%囊q Ʃ+ыqYYq&QbKC^e 2Wq0 ,}~lЙs1!ő)<XMLÌ!<Z)(sm?_#@J(2Qʼn@5/G}5b#hY9X;^kDFZ(US40+Z1ANCsZ''#4"i֯~*vmTTT]cۻqПa@@0 a@p}eC%zaK~:F[ (fdd|y!DJzs.."DfD]}~>g7u9oPVV6qļ.Ϲ@ Bd:f^Wl{Eô%"@3 IDATňNchuؕR.|ž'g!j~^,^۟v^4d\Yn%+.A2?z2W$%4N%|牐{v_Cxx_;"DT6ۼK{M>ޭx֓67s{K"nW0&К<]5< ܼ%oVxɗoO}eOW1N:nܸ =8Ӂ`4UGl`-}^g;kDժsǸ^4@Kbo\>S~u57]iSf7=Q=fC!d&mJF`D%{1=zq{~}޽.ɹ@ݘ*#&"B$XP~U蹎%FS+Fhkhͤitl=&b&GE׌r Y<ӆȧF3ڭm5QUPD6ojژ}փ*OZR];;"w޷o_MMM7KrfBv#$$)/O)s6||m,?#s(xžJGEXN. -Cӗ=g^ie_FQ m'wd!|b}{ ~fK q * @}gp0Y~ZEyekQ`g}rOdw"5aA/]4c,Vl8eטּЋS : '$)ZvInIWRN}>N?*+/yu6ŗ>9<~xZZZ```O@8F&ACQI8~e<&nNOv'YBVӝd!kg_s\j&.kg윧< 'za匽1(nٮIe&d}Mä4燕4 F ˛M=[üФ M?.f97z"O~QuYTz,v6^{ߋ$:z_[c拿әz Fs_3oDa[ū:y}<$4߱Xjo!F34GOy$"~_Ίk2ؙ s/`zn~jٶqPKc#z* # 4 L!kxŗ ݜmmXꏗO`qLn''zvBW!`⌾28€0` €0` €0` VZjs'}ۚyRBWSjrޓ9{&B}p FRO0Zt$-&A&9QsA6{_h*-.d6ț+޶ڲbr:v*>^v;\aEG]pqE3]㲋B}E&%kGZI[gޔ_]i=(my;B=B,SoZM힖ChNj IYƔO^?o*l:c#^bq ˦fW0--Ku)'lSu30|NV&;)2[m<&c~tow{\xc=A[ȣXy@4H"B%mU2Bkon Z666-I'Fk @Zɬ𞲶t! !&oM&<ױĮW +N9 n&c/]aFPC[a~>M\u;R@j%Ď˹T|eӫhʼی^/U$[oqG^lz]vBEvB/u;a €0` €0` €0` 证90"1+te11F6s`3{c@Mivrwnv2>$Wi=zի(y`07%̦9g$G͢3窐s;< ui119m[}mRn'g S#7 |'(f[8!CSmZvzAwV[a!>js /|䆸|9p龗TEofwn9B(싸qV#E?,R>.1//hnnӊK;lpp̾_~ٕ›$]aSrl܊Đu"=O@AH_ Vhf _OY]Ss`E\Dx.un:tY[n_Gܠ"(=]ij|3Q6b@lҎSsTO/uǍݳˉ90":Nv;a@@0 a@@0 a@@0 a@@63t,v'whO"/s,>lyfG<\ݖzTO@QASʃ? ܪ',ڢ?Ev_zoZbW̎ln3$|Xm9qq9>!Y4?0lʠ)VG 5W%&hXl~Sww,?_M(r)YJBZ|zt~_vvtȔw+>]g7LIQ)+U~=h;+Մ&]Pv?mrZoqVsͻPKyq} ͫm4egt/W'EBo44dYWwJR"Hxe V֑+* ZQfV]$D"|<n'4z9Ǐ[o|~ `+;M,1Z2G5˱Ot;~),.+<5"*DǠ;;T8@+OAvIIFc}  իT}%>\8,1蟀Xy#+()4̴xYDGfU hd:FRK?'=tBn'^g]&  9C^cwfFx3^L8o uvB€0` €0` €0` €0v y-$mK usο.bŖľ2ۯv;9X?wf".5;o~ w0yyy=\ɨysrQ\JQfG|h8t[|҅y#D'K^tts )Ӗ;9z W|ȋIw6yU#dDdU9y^zV_v!E% 'o:s9E/N 0?ox矙+oOBz-opuUt&*2 #٨Z-iH aYV?[}*ܯf>*,Pߞ:[v.>'YӋ6Gvs"NNXWO| .΁?n'(//1vJ’IjP(J}:M]i 헬]#R6KAzڭ̟[ jg{t ^鬕,# ;_Pߛ/'5[kHe'=3 k7KOԿڠ-ж۳D'_,oP*.سч[YYmݺb)?LX WyLXI0_꯷h0C|`w; šڃZ[BhK ^\9k{HBe[%ߺhii=(-(UA>>֛Q+ FAD^Pv tVc\;}lDŽ|m6 <,9EJ_v {Rի')ZYo+fI𳽽//ڗ:OSp8@1 Ht|wyWX'?gK3a< S 9Eg;H8wmN׺ .&g?(PDCMuu-*GvtV\ yDoDL6ZbdS--3AMngΩڊ#}^.)cbt|~PG an'` €0`  ***n@\#A݀ #€0` 3vԮx) I_@@X\Vn?TSvTf;ef&`[;BL9 Ho\3We8mukLbCIM\vb+{/="aZbDEc1U :EViS2ͱ+ե&]&}]a&`xan1 8l1"*?|m^Q%ǽIMttV|#s淑uZ-in&`N?D;Û-ű+^ulgs-2zZunw@r֋FhImlKBEqDK:=fu7ʈ#<_zn"vیꗧV82TSж?IzLD6@M2AMm ݁Us[|>//7뮏h'l10Y=5%*u 6Aȋ͖M1pUq.8Q u@gۤ{]d,?u(0AIX9'v]~&`36'I:P?woDl|X2~mɹƊ~5WKe/3ۻ3 1}e q a@@0 a@@0 a@@1:so}AZsQxkroO~{sTQBLJ|ltVZp ]m<!+Ʈ y_HMrܛ.ba5~gOdPB:FӍ7C׌ӖP0pɆ$ 1i5.r5WN?91B]ZLLN'4@gYk: ߓAh] RdIke5Wpqw?[9rqƼ˯3‡H^tK*`㱗 ,)ygEqʂbF@gńG<\ce490 !08=Hc>6 jh+g*@" "mv{85։\饅 DI+N) 5 P 1s0 a@@0 a@@0 a@@:^]]wGIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/en_US/movie.md000066400000000000000000000312071473342170300252140ustar00rootroot00000000000000# Movie|deepin-movie| ## Overview Movie is a video player with simple interface and smooth performance, which is compatible with various video formats and supports the functions of playing local video or streaming media files, searching subtitles online or loading subtitles manually. ![1|main](fig/main.png) ## Guide ### Run Movie 1. Click the Launcher icon ![deepin_launcher](../common/deepin_launcher.svg) in the Dock to enter the Launcher interface. 2. Locate Movie ![movie_24](../common/movie_24.svg) by scrolling the mouse wheel or searching "movie" in the Launcher interface and click it to run. 3. Right-click ![movie_24](../common/movie_24.svg) and you can: - Click **Send to desktop** to create a desktop shortcut. - Click **Send to dock** to fix it in the Dock. - Click **Add to startup** to add it to startup and it will automatically run when the system starts up. ### Exit Movie - On the Movie interface, click ![close](../common/close.svg) to exit. - Right-click ![movie_24](../common/movie_24.svg) in the Dock and select **Close All** to exit. - Click ![icon_menu](../common/icon_menu.svg) on the Movie interface and select **Exit** to exit. ### View Shortcuts On the Movie interface, press **Ctrl + Shift + ?** to view shortcuts. Proficiency in shortcuts will greatly improve your efficiency. ![1|shortcut](fig/shortcut.png) ## Main Interface ![1|playmovie](fig/playmovie.png) | Number | Name | Description | | ------ | -------------- | ------------------------------------------------------------ | | 1 | Play window | Display the video content. The video information and function icons will display after the mouse pointer is moved into the play window. Otherwise, they will be hidden. The play window is frameless. You can freely drag the play window to manually adjust its size. | | 2 | Time display | Display the total time and played time of the current video. | | 3 | Preview window | Display the video preview. You can view the video content at a time point via the preview window. | | 4 | Progress bar | Display the play progress. Drag the progress bar to adjust your play progress. The video preview window will display when the mouse pointer is placed over the progress bar. | | 5 | Video title | Display the name of video which is now playing. | | 6 | Main menu | You can add films and settings, switch window themes, view help manual, and get more information about Movie. |               > ![notes](../common/notes.svg) Notes: The preview window will display by default when the mouse is placed over the progress bar. If you do not need to display the preview window, you can enter the settings and change accordingly. Please refer to the [Basic Settings](#Basic Settings) for details. ### Icon Description | Icon | Name | Icon | Name | | ---------------------------------------------------------- | ---------- | ---------------------------------------------------------- | --------------- | | | Previous | | Next | | | Play | | Pause | | | Fullscreen | | Exit fullscreen | | | Playlist | | Volume | ## Basic Operations You can add, delete, view the information of the film or perform other operations in Movie. > ![notes](../common/notes.svg) Notes: The actual functions supported may differ according to the decoding method adopted. Please refer to the interface. ### Play Films You can play films in the following ways: - When there are no files in the playlist, click ![play](../common/play_normal.svg)or ![movie_24](../common/movie_24.svg) and open the File Manager to select a film file. - On the Movie interface, right-click or click ![menu](../common/icon_menu.svg) to select **Open file** and open the File Manager to select a film file. - On the Movie interface, right-click or click ![menu](../common/icon_menu.svg) to select **Open folder**. All the audiovisual files in the folder are displayed in the playlist and will be played in turn. - On the Movie interface, right-click, select **Open URL**, and paste the address to play the film. > ![attention](../common/attention.svg) Attention: Make sure your network is well-connected before playing online videos with Movie. - On the Movie interface, right-click and select **Open CD/DVD** to play the films in CD/DVD. - Drag the file/folder directly to the Movie interface to play local films. > ![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, hold down the film file with one finger and drag it to the Movie interface to play the film. ![0|open](fig/open.png) ### Forward/Rewind - On the Movie interface, drag the progress bar to forward or rewind the film. - On the Movie interface, press ![Right](../common/Right.svg) or ![Left](../common/Left.svg) on the keyboard to fast forward or rewind rewind the film. >![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, slide leftward with one finger on the video picture area to rewind and rightward to forward in the fullscreen mode. ### Adjust Window You can adjust the window size as you wish during playback. Right-click on the Movie interface and you can: - Select **Fullscreen** to play in fullscreen. - Select **Mini Mode** to play in mini mode. - Select **Always on Top** to put the window on the top layer. - You can also drag the window edge to adjust the window size. >![notes](../common/notes.svg) Notes: Double-click the window to switch between **Fullscreen** and **Normal Window**. ![0|window](fig/window.png) ### Adjust Play Mode 1. Right-click on the Movie interface. 2. Select **Play Mode** and you can: - Select **Order Play** and the films in the playlist will be played in order until the last one. - Select **Shuffle Play** and films in the playlist will be played randomly. Loop shuffle play mode will continue after playing all the files in the playlist. - Select **Single Play** and the player will stop after playing the current film. - Select **Single Loop** and the film will be played over and over again. - Select **List Loop** and the whole playlist will be played over and over again in the current order. ![0|play_mode](fig/play_mode.png) ### Adjust Playback Speed 1. Right-click on the Movie interface. 2. Select **Playback Speed** and select the corresponding playback speed as needed in the dropdown list. > ![tips](../common/tips.svg)Tips: You can also use shortcuts to adjust the playback speed. Speed up/down is relative to the original play speed. The video playback speed increases/decreases by 0.1 times in default mode each time when it is sped up/down. The maximum playback speed is 2 times faster than the original speed and the minimum playback speed is 10 times slower than the original speed. > > - Press and hold **Ctrl** + ![Right](../common/Right.svg) or ![Left](../common/Left.svg) on the keyboard and the playback speed will increase or decrease. > - Press ![R](../common/R.svg) to restore the original speed. ![Playback](fig/playbackspeed.png) ### Adjust Frame 1. Right-click on the Movie interface. 2. Select **Frame** and you can: - Adjust the film aspect ratio between 4:3, 16:9, 16:10, 1.85:1, and 2.35:1. - Rotate the film frame clockwise or counterclockwise. - Jump to the previous frame or next frame. ![0|frame](fig/frame.png) ### Set Sound 1. Right-click on the Movie interface. 2. Select **Sound** and you can: - Select **Channel** and select the channel on which the film is played. - Select **Track** and select the play track for the film. > ![notes](../common/notes.svg) Notes: If you are using a computer equipped with a touchscreen, slide upward with one finger on the video picture area to increase the volume and downward to decrease the volume in the fullscreen mode. ![0|sound](fig/sound.png) ### Set Subtitle 1. Right-click on the Movie interface. 2. Select **Subtitle** and you can: - Select **Load** to manually load subtitles. - Select **Online Search** to search subtitles online for the film and load the subtitles automatically after a successful match. - Check **Select** to switch between multiple subtitles for the film. - Select **Hide** to hide the current film subtitle. - Select **Encodings** to select an encoding for the film to solve the issue of garbled subtitles in some cases. ![0|subtitle](fig/subtitle.png) ### Take Screenshots 1. Right-click on the Movie interface. 2. Select **Screenshot** and you can: - Select **Film Screenshot** to take a screenshot of the film in the current frame. - Select **Burst Shooting** to take 15 screenshots of the film at different times to form a preview image of the storyline. - Select **Open screenshot folder** to view the screenshots. ![0|screenshot](fig/screenshot.png) ### View Film Info 1. Right-click on the Movie interface. 2. Select **Film Info** and you can view the film info, codec info, and audio info of the film. ## Playlist Management You can enter the playlist to manage the existing video files. ### Delete Film from the Playlist 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Hover the mouse pointer over the video file, right-click, and select **Delete from playlist**. > ![tips](../common/tips.svg) Tips: On the Playlist interface, hover the mouse pointer over the video file and click ![close](../common/close.svg) to delete it. ![list](fig/listmanage.png) ### Clear Playlist 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Click the **Empty** icon under Playlist, or right-click the video file and select **Empty playlist**. ### Display in File Manager 1. Click ![movie](../common/episodes_normal.svg ) on the Movie interface. 2. Hover the mouse pointer over the video file, right-click, and select **Display in file manager** to show the film file in File Manager. ## Main Menu On the main menu, you can open files/folders, switch window themes, view help manual, and get more information about Movie. ### Settings Click ![menu](../common/icon_menu.svg) > **Settings** on the Movie interface and you can set the basic information, shortcut keys, and subtitles. #### Basic Settings **Play Settings** - Check the **Clear playlist when exit** box to clear the playlist when you exit Movie. - Check the **Remember playback position** box to resume the film automatically from the last position played when Movie runs. - Check the **Auto add similar files to play **box to add the similar film files in the same folder to the playlist for playback in order. - Check the **Show video preview on mouseover** box to show the film preview when the mouse hovers over the progress bar. - Check the **Show thumbnails in progress bar** and a preview window will be displayed when you move the mouse over the progress bar. >![notes](../common/notes.svg) Notes: This feature is only available on the X86 platform. - Check the **Pause when minimized** to pause the playback automatically when minimizing the Movie window. - Select one mode from the **Default play mode** dropdown list and Movie will run in such mode next time. **Decoding Settings** - **Auto select**: Select the proper decoding manner automatically according to the device configuration. - **Hard decoding**: Decode the video by hardware. - **Soft decoding**: Decode the video by software. **Screenshot Settings** You can select the path to save screenshots as you wish. #### Shortcuts Settings You can view and custom shortcuts. #### Subtitle Settings You can set the font and font size for subtitles. ### Theme The window theme provides three theme types, namely Light Theme, Dark Theme, and System Theme. 1. Click ![icon_menu](../common/icon_menu.svg) on the Movie interface. 2. Click **Theme** to select one theme. ### Help 1. Click ![icon_menu](../common/icon_menu.svg) on the Movie interface. 2. Select **Help** to view the manual of Movie. ### About 1. Click ![icon_menu](../common/icon_menu.svg) on the Movie interface. 2. Click **About** to view the version and introduction of Movie. ### Exit 1. Click ![icon_menu](../common/icon_menu.svg) on the Movie interface. 2. Click **Exit** to exit Movie.deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/000077500000000000000000000000001473342170300235405ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/d_movie.md000077500000000000000000000276111473342170300255160ustar00rootroot00000000000000# 影院|deepin-movie| ## 概述 影院是一款界面简洁,性能流畅的视频播放软件,兼容多种视频格式,支持播放本地视频或流媒体文件、在线查找字幕或手动加载字幕等功能。 ![1|主界面](fig/main.png) ## 使用入门 ### 运行影院 1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg),进入启动器界面。 2. 上下滚动鼠标滚轮浏览或通过搜索,找到影院图标 ![movie_24](../common/movie_24.svg),单击运行。 3. 右键单击 ![movie_24](../common/movie_24.svg),您可以: - 单击 **发送到桌面**,在桌面创建快捷方式。 - 单击 **发送到任务栏**,将应用程序固定到任务栏。 - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 ### 关闭影院 - 在影院界面单击 ![close_icon](../common/close.svg),退出影院。 - 在任务栏右键单击 ![movie_24](../common/movie_24.svg),选择 **关闭所有**,退出影院。 - 在影院界面单击 ![icon_menu](../common/icon_menu.svg),选择 **退出**,退出影院。 ### 查看快捷键 在影院界面,使用快捷键 **Ctrl + Shift + ?** 打开快捷键预览界面。熟练地使用快捷键,将大大提升您的操作效率。 ![1|快捷键界面](fig/hotkey.png) ## 主界面 ![1|播放视频界面](fig/playmovie.png) | 标号 | 名称 | 说明 | | ---- | -------- | ------------------------------------------------------------ | | 1 | 播放窗口 | 显示视频内容,当鼠标指针移入播放窗口后将显示标题栏和工具栏,当鼠标移出播放窗口或无操作时将隐藏标题栏和工具栏。播放窗口为无框模式,您可以任意拖拽播放窗口,手动调节播放窗口的大小。 | | 2 | 时间显示 | 显示当前播放视频的时间总长和已经播放的时间信息。 | | 3 | 预览窗口 | 显示视频内容,通过预览窗口查看某一时间点的视频内容。 | | 4 | 进度条 | 显示视频播放进度,拖拽进度条可以改变视频播放进度。将鼠标指针置于进度条上,将显示视频预览窗口。 | | 5 | 标题栏 | 显示正在播放的视频名称。 | | 6 | 主菜单 | 通过主菜单可添加影片、设置影片、切换窗口主题、查看帮助手册和版本信息等。 | > ![notes](../common/notes.svg)说明 :当鼠标置于进度条上时,默认显示预览窗口。若要关闭预览窗口,请在设置中取消勾选 **鼠标悬停进度条时显示预览**。 ### 工具栏介绍 | 图标 | 名称 | 图标 | 名称 | | ---------------------------------------------------------- | ----------------- | --------------------------------------------------------- | -------------- | | | 播放上一个影片 | | 播放下一个影片 | | | 开始播放影片 | | 暂停播放影片 | | | 全屏播放 | | 退出全屏 | | | 调节音量 ||呼出/隐藏播放列表| ## 操作介绍 ### 添加影片 您可以通过以下方式来添加影片: - 当播放列表没有文件时,单击 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按钮,打开文件管理器选择影片文件。 - 单击鼠标右键或从 ![menu](../common/icon_menu.svg) 选择 **打开文件**,打开文件管理器选择影片文件。 - 单击鼠标右键或从 ![menu](../common/icon_menu.svg) 选择 **打开文件夹**,文件夹中的影音文件将全部显示在播放列表中,并依次进行播放。 - 单击鼠标右键,选择 **打开URL**,输入视频文件的网络地址,播放影片。 > ![attention](../common/attention.svg) 注意 :使用影院播放网络视频文件时,请确保您的电脑是连网状态。 - 单击鼠标右键,选择 **播放光盘**,播放光盘中的影片。 - 直接拖拽文件或文件夹到影院界面上,来添加本地影片。 > ![notes](../common/notes.svg) 说明:当使用触控屏电脑时,一指按住影片文件拖拽到影院界面来播放影片。 ![0|open](fig/open.png) ### 快进/快退 - 在影院界面,鼠标拖动进度条来快进或快退视频。 - 在影院界面,按下键盘上的 ![Right](../common/Right.svg) 快进视频或 ![Left](../common/Left.svg) 键快退视频。 >![notes](../common/notes.svg) 说明 :当使用触控屏电脑时,在全屏状态下,一指向左滑动视频快退视频,一指向右滑动视频快进视频。 ### 调整播放窗口 在播放影片时,您可以灵活地调整播放窗口大小。 在影院界面,单击鼠标右键: - 选择 **全屏**,将影院窗口调整为全屏。 - 选择 **迷你模式**,将影院窗口调整为迷你模式。 - 选择 **置顶窗口**,将影院窗口置顶到最前面,操作其他窗口时也不会遮挡影院窗口。 - 您也可以使用鼠标拖拽窗口边缘,自由调整窗口大小。 >![notes](../common/notes.svg) 说明 :在影院窗口上双击鼠标,在全屏与正常窗口之间切换。 ![0|windows](fig/fullscreen.png) ### 调整播放模式 1. 在影院界面,单击鼠标右键。 2. 选择 **播放模式**,在下拉菜单中: - 选择 **顺序播放**,影院将按照播放列表顺序依次播放影片,当列表中最后一个影片播放结束后停止。 - 选择 **随机播放**,影院将随机播放列表中的影片,当全部影片随机播放一遍之后继续循环随机播放。 - 选择 **单个播放**,影院将当前影片播放完成后停止。 - 选择 **单个循环**,影院将循环播放当前影片。 - 选择 **列表循环**,影院将按照播放列表顺序依次播放影片,当列表中最后一个影片播放结束后重新播放第一个影片。 ![0|mode](fig/mode.png) ### 调整播放速度 1. 在影院界面,单击鼠标右键。 2. 选择 **倍速播放**,在下拉菜单中选择播放速度。 >![tips](../common/tips.svg) 窍门:您也可以使用快捷键来进行倍速播放,加速/ 减速播放是相对于原播放速度而言的,每加速/减速一次,视频播放速度默认增加/减少0.1 倍;最高播放速度为2倍的原播放速度,最低播放速度为0.1倍的原播放速度。 > - 按下键盘上的 **Ctrl** + ![Right](../common/Right.svg) 键,视频加速播放。 > - 按下键盘上的 **Ctrl** + ![Left](../common/Left.svg) 键,视频减速播放。 > - 按下键盘上的 ![R](../common/R.svg) 键,恢复原速播放。 ![0|speed](fig/playback_speed.png) ### 调整画面 1. 在影院界面,单击鼠标右键。 2. 选择 **画面**,在下拉菜单中: - 选择画面比例,将播放画面调整成相应的比例。 - 选择旋转方式,将播放画面顺时针或逆时针旋转。 - 选择上一帧/下一帧。 ![0|frame](fig/frame.png) ### 调整声音 1. 在影院界面,单击鼠标右键。 2. 选择 **声音**,在下拉菜单中: - 选择 **声道**,选择影片的播放声道。 - 选择 **音轨**,选择影片的播放音轨。 > ![notes](../common/notes.svg) 说明:当使用触控屏电脑时,在全屏状态下,一指向上滑动视频画面区域增加音量,一指向下滑动视频画面区域减小音量。 ![0|sound](fig/sound.png) ### 调整字幕 1. 在影院界面,单击鼠标右键。 2. 选择 **字幕**,在下拉菜单中: - 选择 **载入字幕**,手动选择字幕文件加入到影片中。 - 选择 **查找在线字幕**,影院将在线匹配字幕,匹配成功后自动载入。 - 选择 **选择字幕**,在多个字幕间切换选择。 - 选择 **隐藏字幕**,取消当前的字幕显示。 - 选择 **编码**,切换字幕的编码方式,来解决某些情况下字幕显示乱码的问题。 ![0|subtitles](fig/subtitles.png) ### 截图 1. 在影院界面,单击鼠标右键。 2. 选择 **截图**,在下拉菜单中: - 选择 **影片截图**,对当前画面进行截图。 - 选择 **连拍截图**,分别截取影片不同时段的图片,最后组成一张剧情连拍预览图。 - 选择 **前往截图文件夹**,查看截图。 ![0|subtitles](fig/capture.png) ### 查看影片信息 1. 在影院界面,单击鼠标右键。 2. 选择 **影片信息**,查看影片信息、编码信息、音频流信息。 ## 列表管理 在播放列表中管理已添加的视频文件。 ### 删除视频文件 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **从播放列表删除**。 > ![tips](../common/tips.svg) 窍门: 在播放列表界面,选择一个视频文件,单击按钮![关闭图标](../common/close.svg) 将该视频文件从列表中移除。 ![list](fig/list.png) ### 清空播放列表 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **清空播放列表** 或 直接单击左侧 **清空列表**。 ### 在文件管理器中显示 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **在文件管理器中显示**,打开该视频所在的文件夹。 ## 主菜单 在主菜单中,您可以打开文件/文件夹添加影片、设置影片播放、切换窗口主题、查看帮助手册、了解影院的更多信息。 ### 设置 在影院界面,单击 ![icon_menu](../common/icon_menu.svg),选择 **设置** ,您可以进行基础设置、快捷键设置和字幕设置。 #### 基础设置 **播放设置** - 勾选 **退出影院时清空播放列表**,退出影院后将播放列表全部清空。 - 勾选 **自动从上次停止位置播放**,在打开影院后自动接续上次关闭时的视频播放。 - 勾选 **自动查找相似文件连续播放**,将同一个文件夹下名称相似的视频,自动添加到播放列表中依次进行播放。 - 勾选 **鼠标悬停进度条时显示预览**,当鼠标悬停在播放进度条上时显示预览窗口。 - 勾选 **进度条显示为胶片样式**,当鼠标滑动进度条时显示胶片样式。 >![notes](../common/notes.svg) 说明:仅x86平台支持胶片格式。 - 勾选 **最小化时暂停**,在影院最小化时自动暂停视频文件的播放。 - 设置默认播放模式,下次启动影院时默认以该模式来播放。 **解码方式** - **自动选择**:根据设备配置自动选择最合适的解码方式。 - **硬件解码**:通过硬件解码视频。 - **软件解码**:通过软件解码视频。 **截图** 设置保存影片截图的存储位置。 #### 快捷键设置 查看快捷键,支持自定义快捷键。 #### 字幕设置 设置字体样式和字号大小。 ### 主题 窗口主题包含浅色主题、深色主题和系统主题。 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **主题**,选择一种主题颜色。 ### 帮助 查看帮助手册,进一步了解和使用影院。 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **帮助**。 3. 查看影院的帮助手册。 ### 关于 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **关于**。 3. 查看影院的版本和介绍。 ### 退出 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **退出**。deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/000077500000000000000000000000001473342170300243055ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/capture.png000077500000000000000000004441671473342170300265010ustar00rootroot00000000000000PNG  IHDRFfF IDATx %Uu.tlADA -(ŗDO}qOASQ/EDũ (-SC7= U~UuνiIg;LUuN}-u}yx-eIO{[赅r +8i8$4M6Ia&0ifhr``2-.͏SèxjhUsll)rnjb.C|^(y|%(U"윃m9Gkעncnv}gјD6x,cF*EGm6HZ~la &AՂ1VH4`4Rtp '`㞌5+F (os*FƟ]m?}&|?:It lV I o[d]y+EcӱZѾ( *<9=ô-T[@5R87`h5S8_5K Wtj7g\[ Y_;@6 0 NȐ@!PZȉoPm|@0%I#w^ ! 8 ۷]3x>vJ- 8eRa?8o|"+ 4! Nj<#Mp eDs{ttu:(199Ȳ0>>H:VF :>N0푤#ݴDcŏIs4RHGh Awn'X6=#P=9! ȡF &:`㟈cR@e<_^ay[ #F#E|e Ο  ,Q]t V37V-΍q"P*Eh7!@b묙-$0ǔ^cvnNeLOuݚ1ٞD#i"M E\ cGy$+_Ǐ6jY׃I4o_{חDIJ^x˧jc d|ڱ$El)I64]a}:ZZǴ $BmMB:#Lf} (f 4&)I)lB21T'цklҲ*5|6E2IKP/3sl#@vޣ "-?,N8hjHa 3 s%QLwXj-֬˖ulM]jzANivH&Zm#<Zt3vlA)lv[G .]=6W:_%H.XUB>~\(}hJ Uu10ג\.Fay#|ԙ^-?>8Rg;簫? `Zm)<4 ߔ2D +3}mGy0BѣGpP}eIYVH UAa@& 1MhZ4WX&e(iyUE.f܆{kxa}Xf5Y$> {Cgo{39}߀^ϪbcT&L(pE %ITB!2\R$0=PRz 㵴V%'r9FJ!YPkZGҙ >ZVӄ.tlqSZ,ɐTo7?FH'_$5W-I{|#C&U^ŔXJ1[(E`YN%Bbp\氫;BXvFfz c3K&'Oǭ? Q@="\\ߟ,B??TZqX lD% Trl|%$Z~׺ɹ|0^Ȕ R5\1y,/4ՂjѷPM t#<@AO),l?`"H_3x2@;vMXʣ 3AW0x9S1-fA}Njk*hmJ۪G3t9N*_c ً+PhxsgD6pvSwH$i УQz ,p`LPDLaV <}tTa"n4 \<1٢strhD*ElD.Zm|3A2Hۍ2T#]^ahOkpTX4Եb2)K^1"$:o>H02!2 .r8P M 5b3E$-ö6vg3vCF-G4˛~<{aGw`vvV̠^C iH,rj؇"Wreiw }8k q}Sʊ$(G.ԙbKI$Z[ Pf栩Dh n:i#?ͥG:hKN/M,Bi315u?[v@}3PiH7 )OP,m6H˅#cIK@(ak'aD,,;|;GRp^Wp'ˁ<'32b5u8:{ [ݏnj^O :^ϽJ Y`y$=*k9!c`%pM+Y haz8%#T[HG PIl`(T>J"_MqC`0t!rMc&2:?"vf̥E 6TS "PL۶mCs?b$HrL"'|S(^w}q'Ǝ}xWuϖ9Yi3lr2[o""=2¬>XɝJt#?Zj^֒H@a7/$lQDŽJHҭR5.IgYE$Z;9y\D rZ[m8i>-zi<fxI-h̅ {O KpӤѪh,5t_߃-\Hsir\2%\r*@Z噟wxonq nRMRJ|8vpNىK3)X *jgiR<i@}qMyi[q7zAHz E?f3A 1]DX+6!q;;wbǎs옙 jdԟnQ mviRF38ԧBqiVn,ne}R_5&wAbŏĦѷgie$ik jtekmj{ADr`uEiU_!:?㪧g1}+1uzJ_NFn8:A Y]Cb%Q'<mGL+.g75~Ĉ,ax`׮]ضc;n߆mE?8Na0ۅzG1衠ҁ-NQG=kh,:{3\C\f4T]jo~?۴=/ڃqhF{׿:-OļBkfq "`r'??uZuẒWT=3kI,FuK>fk,.U Q/'w ,NA*S0󬸒 #EuD lKK'7&V;0lM$-P%E:An-npML teqrejP߹A&z [ہH>f]YnYO} شnQ82_h6L IP]5^.dr:,WEE0 ]f/S^wgDEt0n ~ r[>[785CkR+7wqq1Z|v_5\Pu:->(9V>3mB~iG aEYm|_'/C2-iu'd1Q`&,1ur<iܵh&eOBj- o#qyom.4`fZ wU#[B'Z ?"hzO> ok`uytOt/ /֩j%?x?|{3{t9np#)28ᆓ \Wq'^\ao뤭lM_Xtv܀o~m;~p;S/>~_~iu0(LD-9 ya6_0G9 d5|:ڛS>TظD]*rD`졜Ͷq L3Y4_T R690hՕ}R;4m$7P/&I͗,3QASc lAҳLwX ,8;`_pg<) r_.J-SX(_q~m-.>e*oķ6|.NG{qcq(zǾ?8Lߌ>D"nc*B' -5iT?-1םEU(JXCEd-fmg\||rVl5{%DKq5L[S?w/iYbmXc~|-`e }9%ZG⬋NW|?=Ӗ/o} W>pqw;}jǡ8E'm84դ_MMF4%H |_#R˞+h2 xIp[S9pʴ` . F"rT)#äp㠥F-,]E!"7 )LKN!`r}<%5l9J?bku1}E"c="Ί;}4^;1(&$hϑa68W$>_wYu\Һa)A'H@t4,kit՛و/x?+?y .hM_z9N1]OG^x>/g8k58^ "O/: ]7w} %WS3p3~6ơxqop;lwt.f^֚Qġ"b3C_.XU $L8O*[[P0S쑰[ | K=ɉĞΗj (QL Nx?j Wi}f,[-!KI0r0CNFyM?obmpq9\0.Fmӻ6bn6ݡj_F * q+HDqgWʏ}|j d<ѻE#.[.q/Qa85AWl|Nh-*j3^F|w\>w!zh;&\Fg? >} ط?C.ZJ@mU>v3md3=l߁0E>%$a)FgY8ϽL愚%&->nF(aht܎g [,",?QL]<4S%lJBD*: h[&huǘsKu$B^mc]ciP3N`FH>dCCZPŗp[`ڣL0MH8@Dpu~Չ]t&,#1G?22 E.^g_bT3nmP%Qcl۱M<~%X1Hc_^p.^gb:ӗक %s݁ϼeǶKnp{JuIS=tV|_U=̰"74gCkp+_I$8SQXq!OaMPj}1?n8"=hs|yKƖBj~!j`2vfӰc_ýR1l#Lm`GXIF$dS~P' I͐,h Hr=l償G"qN BX7~\%"aT*bkpkN&6g|qr(N:MK-Kn^LI0sdAECLrs6LOubAFXԡgn*pϵm::Q{[o<g6<Ÿ q5cyo`-DiÑ F$Uh5m[ޫY1M,tQ&|9-W&clN9EqhpWMTA;l_ EcTt蘃@- uFYfX](Ɏ<4f Xmm`~Vɨ=+{0QdE9t~,#Y@8Pf$hM],!V""/R? 85=[ow\>Y§tpŸp8Zef~Ka*zDHSV0YS)I\&wje7]| 'mIgw]3|2Y!PmxgW߈( gNgIm{hO\5Kkx6ZzN#Ů_w:eHf0"ذ@``Biؗ!)pI [C "-3;_hXR0leU`AQOpW~'iY%9P/ֿca`Z197{|^Ϟ.ֆ=+WqHUOu}UV[krmݺ?TE5>n# A_c:trfdA4dfL#4ߥ~LeE]wrivU H(oIt:ܻ.zTFB͕b~1Qpv*rHM:ZZV9 ,iTت(rd*wipM@IJPTg -÷!5?,b,2&p,1Iq5#ju6'F}j)Z=p퓢(8UM4RHg|N3Xr\;t9-I0~G&Fv#iU9P$" Fz#ɐ+504n֐Sж4$4SOxZ$QT + ke͋nxt, } S$"dY!N2 ^zcsC*u^ ʙ$wiN)\bp(7{ϲf1e^Yb'E6zٓ R}Z 9du{*"r!a5-FyDߏȕ7ӄ8^Kj-d0:nJ"Կ&Ɖy4k"m6!vWVi%lf?.LD40mVE/Lzy :xC]-M dl\!SZJYpQMjߔaZNSF;N8/ #\< Xtuk5EHL^dAÖC) ߇72"ILC<IC0鏮%m8L4쮾8 7*PDDJzː{|폁qҾ>3!:Hj}ls6#-& 12b$4ѴA}n; pP`Zh#I{*2+yHcYwѩ ]F sa/`Âx&rOk65ѱLG]HyQ;R<2Pb#20P sxb ;-X0MK':dpZqߍzhybP)`> 2[EǢܗ[beIO`#P.%MFϛRy(|~e"̢ ȣ:d)tNs/QJ) eL`ڵ#G A2ILkV 6:DER$fEYib@DDnJ@hIą-Œ1jv Jl,R%,fUzIO צ["0!a .yg/Yz-(Hu'v0Xj%љMFDZF,5Jcx!/@S2rh N$*i"usy@/p5r"a:D4 zsR>ѶܽTE-1$kɯ(]8UF]X"ʯdhh`S#*(\^EM(T\;+QL= 8CeJXي&O-a&RBbD@~͆dեā2cN-rdY-CGfԌ"R/, ފ.h(#;0` ALXVgLA`jTe&?Fz"gf A qDZc<Ӓca6ƨT. ܯ R.LW {HqdE1q9!owaP'SLӵt<D" R34aD<2.;?]X%g.`-5?EԜ#C-E:te+ұb֙M`Icc [;vqfnF,(Z,* 9|0s8B z+6QF>M^W.5IydI&,=hz$݄b'.04+Qa7e~q6ZɢAUu0Vh<ڝTA_׵53@<Z:aXjqXFm6I.A=z.r Q̤BDM`҅:CmRDރ[9C ^ =*x#ba0ю"ʈTfHB[c']g-7?B]j1oon3@D6H)8:bRH:9i\L{}@&q[W g]ZGJuWOcY53Xfk)BLJʠJDd[YJAF iAcKPdr;rτea2sZ1a$k @Xf}nQDyi&c %)w$1BJˎ4y:. Oe4/k6J͜t"44oRSyU[MpK|w~нp>'/"pѫK?'| oKqL̷b[ 8y]}z%cv?~%k~x~v7Qw/ޕa]n5cO 0R1;wPYeVݞGJ- }dO'"eA4WVBW@q"YNA'rGVyQ+~HK<;L ; TsW:ekȃ'% ҅q!(xZnh/Q :ᨘP&Ll~ԩ [JOO&4j’M-SI~x~,VQA%λs7m[19_r,A†me{N|>q>n:><c4>:Q/poƂ pا/Ӫwߺ /j7u2.VK}^=}hs\𓋿˟k;/ǭm|`ql@TYRm͢[t1I0ah7Ȁ~Rb1L#ABȍ SlC)m+x)"F--B0Hڹ:_tP(LKmZZ EXrB WBT\ΣݱZ`Fp4<%r0}=ű 8ÓmY~b,]_ ̯UQ#7Fkqٖܿ),[Yp8?޶u;pӟp`5i_79ǽ,~_SÖo}iľ{O}9JnG2wKVo^ .FA9iJ}iR>;I:Ê5-LnoЪV]4B،EG@t+88m}{_q(k>_q ֣Ešٯ{ًqc}{+:w_+>q0^r,. qZJG'(;儴`qn70Ɏf j&C;L5=J-JHH Eqơ߱c]uY(3^یo 96*DG<>2 IDAT&0dkicTc]f ;!DG'Gx5bFFZW&rL0p~O+Ef $k9\rȲyߝHW0WK ) v3ux'/K/ǩv#k} OB~wg qŋCkM]~/'j ~.}8/zX^-}ݬ9v9qF_n7|sxx[ӝ^XZazG!Jc 񪓕_`oD15D"p]/b1l`Ct5jV;?d>TcIvQ[.sFcmҀJDBNLh|H)jU0jNWlUTAS  ](EP:Nj^@S0bժ/u>rlXfJ0K8q>kx5?wl{2"_-kupz|ਰW+6 '~| /{#>r̻qy.W:\߄\ߞ~;{=po3s~ux_y'S?~\|oSq1pC\j#BiQs#KHvM[$osyFQ+xP( nc+>/ƺ'p~z ׽[qG|Ҙv-P8Љ4*A2b|.C&jG G,π+6( X8,ߪkK(Ku } բǢA۟vyB`jkr*uqIKBW|SuWl׫+$z˖C( Zx6@1u2Ƶ"&:QR6% .4ⵀ ?90-hvm{aTQޑ+!< S4Rˏ>>']x4>ɺ`Ï>y:[|h !G6)C1Ng㕟 OpO{׳eH߯N7"q2jTw\#L:-Ǩ#iIp# ~ayg|MSwl=`fT'J_pR¨͇XTSs8=Ӧ6OÑвݴ5E*SRay ކC#Wy>.vY Zfs ㄗ%sp7bh!j\* P~;$ %e3xiȹfE^ !n/0vI~-;Dq͏W5o{^} GzS]uz{p/v 7LDPU oll`9h;¼h"Sعݿۃ[z9t2 A`]55W=H>F ws6 Ut?6VYźk6wwpx|YB}[ pjKWw2e= .0+e8q y\]2:DBVbou˼Дnz ²Ui]A-EUf033f"b) b Fǯ9bĿ@~!(I/x x0waq'=vm8U>dg+ N~x_~_x%wcVqUB)A\{;qo8DɟaqEO"? \/^Qs/|/s7.x1&+Lt!*Rl*`}w)f>vȸJlZ&arNuP`ӆFd^cJ,bg׀reE,E-RmSa4 hҺ]2oK8o p q{=2WL.3ʃ|iGTf \n\p܅hiuCq܈rnL3q:ԲXz-p  /t98tb>*>8锬l+?N'=BqqȊjc k?F|G)vHCX2X>9\뿽I9ޑ>JF㵤VPopC (H9%bJt$9"Pd]McEV rUjnt PF%~+" ,k}q{Œkz+ɑ r/zD7,2 %UNK#uȦ@!xZ( %rrbhC+H]LsG%1TKH:8$FrmzkeXzܣ̗l y1P B48byHGudԛ( "Ȓ!2&f.6B_!@!^m(doʼ D {#X1ǎ?1~[|iz^/5^ QSUE_P*}\K$7FL, F iז.D,>u# v)OF [$92L3BP9dv,BZ$LY UOnI`œ0fu 0xp Ɋ <fziZ_iE'xV̊3; $YZݵzs52*8^KD,D˝.2r+`CaXp\O+b%~M'b:&S޴/!xQ(L ;׭ xxJޗrlj^16huZJ Ѻliz]Hg"b=7 ٫Ks~l]٨YWS/dYy6"z> l%ܹJ8'GdF)"/̄;,r~kGdŹi<%p/U7I nq)$!!R>/4ϗ 0>/rɁ9./ [i!gQch?5LԺ$@4R+/HuH3#4&bঈ&8聍 9UqQt兄ID>,a=ˆ'ƍU NNBQ6ĩJ,R7)ɜPQ0^K}9%VKhwRth;Hݮ ~9HΌF[(V氐CI"ݔ)5j1F3"T'BRekf Qh6FqIp!"sfCI -%64cxiB"o[9MDǙ@lIn17Xj2"(4s\V5$σL=ʬ8^KlY eeh,[bE`QL}mX\\h^_ gϣ4"q7`VҐ,#0EtDpZRJòMR@&2x N䎭 CoGF t$enq*Ƹ>^ Te[V[uO^hlL/Il>#]ojI̿rCɸ6c` zԲeŠe fɸ'%kGٚT\bLHu9qv?QuWXK9%@@U[T U<d`82|+|pRb(? &d ` &RxWzTYo؞ |0j {g gN6:^lNg Ch[vL՞)=ZjV'< &&&&8FkxJ$G~>GЖ5Z,ư0^KkEg9R  D+ؾ`;\s]~a`ǀ0.щTe:Fjb4JA~rJD뵺ʋ2IтhSHN\h<9Hn ޔ^$,"ؖnZSKL-ڒE}TyP a ~5w>ќ&4XzӞ\2nmLRtRJC(nwb'::<,3mzw.Mǀ!$PLLą  t b  =!HBI 6I9-gH |:~ZIWsy-O.1(#dJ%*q7gI ~TUDN_GВVڅfj th+\b6 ?Yzy+1;k 9-cثZv4*I zWWTNzzDI^յrIz|l0rY+Ӧrk|P.jCdj'l،#kBL$¢ob\곏yk-X'S0|L&+Wzw9<$}y͞Ð uGaW%<ο7^ǎ?lBvutD q ~ Fb9aX5`T92J\SjH?k6 Imrnc]g?+|YIxlM|ݲDM3aiCttMV :aqaN-*bGaHDP1Ϊˆ,x|$]ޘ cf_8Kg\Vk9gBDӭ.6w#Nw ;@i)lӹ&iX2TL!:F%@\XCzacz6?Oܷ}|ic_){? O}qW|/N9ooFN?G?y|;{Go:g ?4<5?ݧ=8ƉP~;!'r!/fN,  HH"$ N6q8M=[U*XsSn z $3a dxV2#kZ6'-hlǨ^h+ɒ9)gEI?ou%XMR{y}%Ջ`8{a]"-0bc#'+"0~߸[{G<%(z*ܿ!xQFImnS)sȒvލ݇1ܿ#k9/ŕ/6`[ϼ*!"a0}WW)9kWp&QyT;WϴD@V/?`nn)~Ȟ]hʜqvR)ẹ2qYKlݼc48F R(KG`Fia6N<ⲧAr%TZi',yznUm[K CV:5jlf$EKHN=eWKj^Hf}aJ63F% 1*TLˇiFTO\mSq  ?_;f݈Aqqu1~&F1Iian n.>⛻~عZG6X1X7d:aԨqP6JŰXp, ,baFyY{][[ %aV8GZu8v͋=EW$̍W}m&I9[ `k{>@#%5!j6TH+C8uF7 tO=uQiLӛ+M@򔹹 i5[K]I+36KE4M Wpٿl{1NMhkK8|A3= 7~FS[zqx/]&̡^^ɘW1mk<ތ"p8^cT[Ykk˚rCeی){a̓ZA)<$]3ҩKX/hTݏ'ƨZHCVMSRד僪v U`Ը8"F85l. >;p*Ѝ3< VX g Sȗ=8j"z(/?Gqh|[|\ ?/ߊ}bK pwk_ KK-?'O/SK\o 5xOq]]U8U5.hp@@ތ7 goV](XXP-~7%oXԶtV!ӕQ2],?F\qinLP|.YIa{if7j{u tP 7:(PWbh!ah1:Zi?@E$yv)x9dI8 y8Ff?.ﻳy\ Wr(|ӱŢb l>*Il sC9Ģ bs1*a24ҕc=&3\y=}+Igcoܼwa1[M%Ai |>x[?G7p*6Butھ @\8riQ1ZjŎ3"AG`,̛̌bz̷5&FG$N?["+@2P.gKQWW : +PCo1L% uX*Ŧj4Ȣ|M XeXefYCeR$ἓ1'̈́,tLXw֭[4هE+h2][SԢ^Fg9WjViTDJlz q? . guw(0n gmƵ v{ӡ;Qx.ƏW~qa[_,ȈAwƇ`0qͪ*R2iiIf/L%}t85j,g3ϸC vc)4ʂKXs*(: FhkC?Pt&`#Ñ%0$BTǖ)+@Q0Lcb֎fbG`ǶcpwTwD-] |R IxJq"%ԕx5Ƌp5zkqތ8pGɻKN\£x*vrU|K{Ncםwca{gY1IKaÚ^5 fC;o`Į6wĸā3E5sL6TC%п\JS$?YYDgW<MCR41.)yIHr[)fTfh&-y2e㵏KНD(Hn 4ݧ)w} &P$wTQIa甚(8Os[C@bȴ#)/ڸ~Ғ)S8^Z7T:SO8,2L ?+&0APwo/`׳?s78oyމ}N>|q֟tUMxix='74|?^Lv"߮fO-Xe&A;V/ s"j 0l8KUc8# f4Kހ4ւqLĊxB,kl=B$헜d̲!E<3A\1[ʵh?n4id0"lS9)эgY,͑&8㴳1ՙ(R,eڡҾ }̮L*[U ֎sE;ᆖ *w>޸}l; >T!GXs] 񍻿~qhLĢ3{;ou כ̯3Wą]af6tdȟn>r+O0kN~4QmDeRh2Z5B]ec ޚXjǢb,9*vj(IA|H㡄(t,vFuAUg!M"t~ES형(K4VcNQ;v3}ú A1J c4’[z!ӍVRbRP#b06Hf2c Kk 1ف]u mފuuijݴg<-x]P09uQM+\]Y5ۥnN&Jt2 y3FՒzϒ)KCM]  ;t`V.;M0B1sT )Dk*885Mziz"fmky$I̚X(oMmQ&$X]-* VajMSB'R;=;+0x5,Fb PΛ$WXBOg4$.u$WH)m1q;&̮3pa~+Z.|x孿\]KCCvC43ս x8\*]ژF ډ%^:vF]V ȹ@C ڨV{wN蕰gje|U?Al0WW4 !%[UVhCZ~rYOqɎ(ZZG@:tR%**oM*vCÉMb >Y6äbqa'cS脥baҔTїl AQ]3ϋj; }([$V ڋkC'zTV'qrҫku2aFbu YTX:]F3AUZ. L=%U--p_^b  ${eij"u6*"RYW/Y6^*j;wn{Ue}J8uD4CpU$7Yr4&=|}c6[$:$a]„jW{(Lw{dj) 9qi)lAP,FYe +°󟈩񁥘:EV̫Br$0j.%rdVIA䶱=bkcхJ8ipnA1F㞢U3-zqYKP˥s94_kĊA8_[/X!4 I[;{yI~!i5<',V+Rm}ƨzW: ^00L;PoHMxM=IZ']Vֲy-m]pvyO DIV+pB}@6rrɋ:`[ TlKYVF ڦ &2Б@lLc @6KqMKekh6]5 }-e\kFV,< qYņ~F}Akr5 F|UɆΛDW`,<6ېRwQԗLyNYx8a nC9LWl$Fl#e-džqq2=r0{F.Z3 b2ORс, $m+յ`BAaJ20/m"[8 ^hѡK[c!RC(Ē&vŠJ'!I_ϳMJ)M<2 K(ja:\-}|vOy%v Ze* 6ɷ/檐"(oR7񕃵CTv4*m&fEFgVS3ظy3vm ~n;OP:,ofR xL#R l md꠶,"oE,#D'忳V֪?EDK-F9 ŎJEDwc47 2VE,(4&\Uԯy*\v{XYuoFJ7ʌ7GX&9oᇆP"6phj5Aj4؜Rrٯe 6>)>bdñ>V&H%|L;8 L˅IY"fy 2E m{6153-[`zzm;wt &_!ɔ9{1/$ v4À;43t qIҍ g ڏ/#P8&}#PiiE`50gUX DٲRvt>|o,6erCRZC2JxJ$Z!nQR 2a#re\ h9sфS]rj* 509 JBFޑb'u5ȽR"+p*C ITfDM^f%&N1,iCv_<TL"}Q!NL̓keݰ3Sۏ؊-s~zF7B9,z#,ă nePi:f p#BFIG,@s&f gQC V&1Ơ_xj`\]+k"J8Q?.n by0ĖP‹9ZےdN= m*h#d}B8*,uUM ꣌' s]TFucyz~K6apD[vH汐kEpe~kdkp:{ҧ*oyXBИ2n iZU?ģP:kfa,6[I͛eˑN"3(h (\_ L03Gu`$060#ןdCƾД1Im(n)R𣬖,,c#`~ M٨q^ k-"S1KPl0U-Lu"d6Id6%G,бK>Ŏ)asW)p/RXHW@. IYde.1nƴñ\fapfX)j.-j$;il9(Pя5n|Tx`1"%l匿ؿ8}cXKUta4`=H&5r{)S)]aY $0BYaB׊FPWqu%2.aP)ꩬ)%%}"4%(hsAxB=t[N=M>|LwޙzJ\&k/̮-_k1TAL)YAME1Y'=l(lH:9ym[7a#Xf:PG%n{F{)[dMic$c>0XS1NVnjHR^QyYAZv3-MVHǦ?1ེV܊TfT]< Il$Ө ܵR5MU V:58 FjxGZ|Ln-U4\Rhe5WEg)Km_C{ƨbZA;賲Ueх FqY$m4p!_-v>qkׯ#ev 6MC+m@&+[9qglB+9,$6O̸~{C8qf }eH<辻1ny]iu}w>Q8kO$Xd&9đcYUh@Q0pAW:%诉^sܯ3uZE+ > D&2/i@;el,]20 gz)HԒ[}91i9`[F`b 61wazLf$Ej4t+LBi){(yZu\㦛oF&:6g{I$+|Sy1p7lpHe @_սŲ>]E>wP d$S5L~b;Oy$s_\q< 3HPaI:+ԁmۯƿC>~|ϟu>76|gsv7~%6(|1y^VU*R* >sf}%HGe *VǶjIV!-|Av%6AEeiK&9 evGmJqh= {XT<4mZle ]q+KRF93F&[]Kdv11vcAXdMS_vbz40B3 8W+;|M7,>>p|,RF#bp|~V"ޱ {~_{8μ|\Ux?O!wzy|iϝ7 3>?ml.ᅧgî҇a|no斞m+^eW됖Y˟:ՕǓ.x+.vvaz_N Kx*9L&JxAw~+ 5.$8TJ\BI3VNJ9 jƒ]9Ozb2MfFn >1? ;2FQV|H@̡WE'ᜥU؂ASkZՓTmӨ@4xQ|yt'1bq춝X79 ӳ&"⬬8$CHZϔERc ůb;wk_=r`*[OiPZAwy`c1q&C%ͰDoCEkrj:8K)=vSo uEOecg#1,D?~Qw6ʟ?/يWW|gϿ[pGߏ'Zu w޿bg~D{?W>C8mDŽ,bO%w?.7 }_/>`}­(Fp{p_?roy,vU@Q :\7n]V+Uwp*6Q\@Jĉ(Pl'Pj) qP}* B!|=PM n芁Ǡ2YdFN ϩWQ.5C 0\m i0@X3[|DLU4 eXhzZrhSu0k☣Q-;~ja9 ~)4BrcN5%-ɃA~Y`?Ura-L_\M7Ai1Oj(Tb^0yZ͙a7=LE:mx0q#j(A3@l2jZ*v=O8 [=& t{|n wܘ O?\h{K<O}*1%]:In`UQKU%502(:>4ިb4L͔@VoT>ɞr,"؆@sNe4p<ة- l6Y8!Ѡa``u ѪH Q39s[ضHiO"3auS,UP6(kuʯ.Cm (͎)8|7r F {hwr荢<(cVQay4dxg JC!14,dHɥk+^3qggf9~x݆bO™:bމсZhzNk8\r3RR)/51I5~Y[| {ފ]+؋Spq P"?x{O .>_t2}G: ;>~e-K>S~ "n8qV{qse)I'X\$mc'eW ߈N{swo+f{nǦ{>"맬>Al#g-}.G ͡BZqBpDOB`#bfkܟ2bKhbd)b'pJ[*BU)ÏdŽ6iBs5MFe%n~XEV'^nȾN i,AV̿+aeNb-8رHEj2Tl(y &> TGLXűqLaLTZ]Y{N0"c6oXߞnP.F0"1) B‘zX,xI[/>DcMۈߜ4z6Ggf-qуZCmsspa_/#q˷L4FZ;XqȯDƟJ@U/Pu*Y ]Vq ۡr,Tb iZhY?) z?.Bf$JlU@ dKR3]<& ~9`XLƥ@ڦ/ \@ و ׃D YÂa,j)s''q8KU=O9t !c Ĥgc{">Odq)ūA@u9>x|sp!NƮii`K˰WCoD Cc-<;C?{uݗOw=SseظGԻ7Gn{?<}54h'KUS-0y"p/I"^ EkGjdpc\P)RA,`TA{,!5'iOtn9h8 |ξ"AS3;9ȶ,=&nq_(- [KЙ^spq'c#0O .#Ψؿ2l^σ*ci D>ckŝ<  Bh*0bZ L)slQp"߿#a[c%F4"S(ӣCC$|cXNv? k=bR}-}qذine&a}Gb;c?o[/wa ?5\??oWxf?w+>= :L{7368'ǥ8Kq -Ӱ_M4W/Я*^eDQԪ˗r9g4k,*iS"f Z} ,K%_IHu@09Qu胹5ors,OBf:d"g+SY-=Wa|8@aX$A1ƎGe]X)(p@i`F2-%ib9tidUiÎ"dVNoC4Q7aUEa[sLt'8)ĦW]lT\_L-,EOA_Z&4Me0L( vMkbXh@yZ:@sVLcp^" ׽+'o7AWލ?q'<#n(K_"7:w} WO{.LPwo{1׻Ye9OpVgu?F y$,4*"k(yiW -G)R9}YwH֛VL sVciESΙpX1Q lTb} LLȋ521cj:8 1 X,6BNUkрƓEt>6Tk Ŏu۱cݑȣ ~D[^Զ3P\9)AY(l#6/Y]WYV%"j}Ygtϟ%+u] lDBvRs)ӹyVUES ~ [2[o͛WHno7sk-ǖNFB3Fw#>w;=/*ԓ8uxo 7? 'DSߌ⹸_uxS^om^1;uvX95BN \{‹O_%Lwwݍ=]1˗)d0,dY* 62LURW4`)N`Z%` 1H7)I9YāJD4# 8vȻr?J-hɳy$o!DpqmY+Eͱ"*? 2n*I1Ui+f >\3® 1nd:= ^|:0Af\ŋITYѣ4dԖT!14'~WI/,#ƴqH2EVK(FiK=I1*˕_Ҙbeh&rfLMu1̫AbPC~1bK߳Kb!-xqF5s 75k֬~U2x&N2~VKg{1 CL3ڇT6}/`É;w 7Z A^V41JQj@4uFn,2pVHjbPe] Xq&Bn%3Ə[`也[Fzvޏ0\(lM'&sn85sa\!X%:%^Hjbҡii(RԀYiYgtXTlA`~ {=>.]S:穙5Jm'2ea~?z +~;R%٢Hw2i=^]]+k3Ll|!SK46:b3|.?̲ 㩱KK6.s# c-?`Iq4uҖx>9񥭌K[i}乄Io,4-" Gn#\~TJ"̾Л tmÆ۱sneͻ@٠ڃlBshtXH {xՐ>s,dp!tX"xɹ2kYS)vjg)VUG8ł8 ژrӤB/eIn$\ k%-ڬ! ,sYh6㲶.Y>rh .Q &׃0Ύw xF{Y) QZl]pg`B@)-S

r덳?BE1+P@MTb$|gAeRŰ")uK5ɒs6Y v:ĥ{xyMw0O#snP80յ1c8slLT-a.J5MBz{YQJXLO }Vi IDATQX D>+'<,6hB$e,}F?HG 8. nҥ5[&mR?DtS: rAZ kE`!ZS娤mԡ|)h5 M:(9áa YUHcp#|,CS A[Ǫ/F%Cבq 4,xhvN4cns)AG+-OÍ%1S؇Fu k,;V v< C!5Ԓ46]NqHm*YCgd7 켘c8щ8`Kc\]ko QTQ-$=+ *̢ v !7,xT$1q\mHM{)7ɐ{BXT)f"pQ#oU"rw)DƩ?kb/FQ}~9B<$u.{$|){m[M`2Zx&)*IxB bY. UU"a~1yA<咟?Gx$eM ,c 3pu`d8ezy1aPIO(LLVք$ΐbdJ2E7AB6$Hdd4$$c*Y ?Z ke-:ԠH+Q*>yxdܘ6sCY!,*whIe&P-U-XQa ݴgg^`D1sXBRKx[aqT",b `3ts!<,sy}KEV-gmd,?e7bM뺛 aS0dSR/yBxIXH (YුWV}CJcyԨ̲ ٹb|;rd;em҅+G;FqA(,FXX8(tj d7AP 7SV`oKu󵡾 UqАzx POQ$HpC=I*h$jD)#XdD,ԠK (AᨙMx|zđ&a'yT;eDytD59^!$JR0cIAqhsȦ!ŁEg@1tq&YɚxIߏ힃/д ʦR!` BU`:7ᳫuw{򕲻Jg֍fF)+ fIrZ! *'<{ljnq{%1mP&%"lEx ծ%em,eioQ'VZ`xHa1 EIVjBAv@A܄g!"1QleyL$8J%#'E~V"E\Ypq?&Z!}ᢀ MA}/8*[3Pp.2f=[&a9XYPFQ>M[' Irm+V&d>N88X&|sb>VTiqCz^)sssru/bPЩZ7qK& 4p9梬 É*q2UΡ I 9z}!kyU5 S6tZF#>g,TizCTC G)5ӈIL)P@H,}02ʯ>;Z>GXO`vj=6LA!#'[K2LjlR)[{fWu" Kˡ:#cGw4JDY+멧?`ͯ(x5ddI-A&8E)J_0ơ5=jƸVԢ 2mnhhB:L"JI"KE2jJ\`vcYoMԟ9l1vϱ:gWE v:%va+2)gl ND>cx:=[p"F )$!Yz_zxq74H:bl7c=L5L4:@mEt0[!,hHQ  X.6RE=[nb j]$)6b{K|M`Jy="ɫѐhbU]CZ8Eç h̓+4CnB^*\gu#/(ڝRm(c>^y8E"f`<,m` 2 ϦHaae΀"5bT{|RgTR:(S3m2@jbrPFcnQ*V!\$yD6h(F#qqNuZtt l'mAg]c[Z(W9f X2Q1Swǒ]1*PV [ !> XTx~h#Tt{܈ы}X3s\C`R&I UFZ9qumАZIDk#Q hP!wŔԐ`!:~":P00idkrn~*/17104fϞ Ya=[mNSUHٱ0a{QLR7(1͆Om /zV,J4XJ1qLC#bv$)*L&i!ۈ]mLM2z)CBJkD.9H)oZ8:-̲{hI<UX Ik:q98*y'p H[knfTlݎ&@h[l TWM/&#Ax-JKFFVI#|1]shԧG\JGa`J'xNF' % ZY%>tcO }U}}v:%!oey"Rb*S|] kE-DY|%q&ط6LϬG>9RR$+fR?řSU$-f$ ,ZSxfRN+ l D 0$'> .$jQZ]t%a)ʐQzVtOi493x8a]mv;f5WI*#˸b ehV{ ?ĈsѥK8>א ;2NsR4,ɠd*lUd!Li:ρQl*Baѵi8+NR;!X $hȞ9NH2HE JQs$;c1vh"QL ӑi_rJq4ćAI \{Kg?>/XXt-;{[d\3!˰1O2~eoX* p0,CRxኡc)B笰"eeFUM0z}4h!̌7QGlCqfI>pg?̌)|Co/Wp`,~QC#eDq'.]q+‹lŬt0ž[XW5;тn RG*$iDE8=$NM"&=CZaoP&e9E`Ϟ>RN|ȇq`Gɔ7Tߪ~S[֒!nWZ=t_z+tffb,eIax$0b;w{ 8uiN8RІᕊΈ* b9 ЙRjI엙'F~Q%,A=F6qjuָt"|m>XR>NP͑pk1iv`O?o[5ӓH #ʓjΈ+PDIWpm8 slpw"p59Õ7]|o{Vgns{r"䳡{/[Ăk{$F-QDEPPiN?snkyZ.(2&ܙS)oy;+<=spJg xvWSqzk돳zopU%4_?,#Cz4,ηl cxxa4+Y{qLOl߅G2. .SjqL}I0j6:rEpy`Խy?OR?2^J{%!Yjc|t#!,-t4XSI},Va!8zN4!N)̄^ȐpDrm+Kh\xeᕊ C(YN~ gvi`smEz%0jMbEL\C%-I ,-(ϡZ $Lgt Y"^޹r4nٵ[zC`h {5pѺ.0Ͽz%H>'{3 s,lAMOamP oL 7nq|$%fbhrBYrQҒYx[rn=Om,״|˵aRFv$Cnr퇒f >Ҭka*p( '4;Q}@w)?:9nG6"M)w&%Xr":ۈ7 EۡwLQϜr:, uX{=qSFg@hyÖRCdP!Z5B^`QV4J2^Jb<:0)Y)clb\yy!KS6ۋvhu#|~rn|ȡ8mV}YO0)ElyPluJhE9?MyE8R|}~}o񚷼O8m#*.Kp!/=xJJvLk@mXfnmL P$(Eʞ_RABk\LlQ+ e?ĺ4lede^`gi H-QyJ\[V-1jYRLRrv29ϑjoQh`m @pr؅23N%ڈtʥ ӥ`PEN~j4>JQiG_;ո4FErRbpP)AI$ ~ PlC:T2dU16ZC^A1ÑSc~S4 **4g"ŢHure?@C'QAS[11؇'|o?wrm' e'IH$\o~}&u8ǖ!*a17O^p#dYy,B%KJ=,Kzj,j( e3Q5W2ftc,-v}_^zI$㔙,K~c2Ћ:uoGd2|sbN?S w7/j!2\1)WBV?mi$5DWs: <`-`{y{6Cîa_Ֆ9rʐ6# ZXuj^*SP+S{>42TWY}C2bWas u&Y^mP}4 cvvA6{QF%Efk"iGX?8g0;z)*VSd\J]ǯ{ӕj&H{[$=I14QpsxL c(FOyJ|1Gqo:/(e{oƳXiFAc0st^T QcaKZDw3efeo4BVyNn ?b {Hz>Y;ؓ2wAwm@y `{;Su.W"Z@0] ZjK;񤫮ǣxV19bG'\3@KOw425u?E5Ju5z "T${G! ̥Ŷ}'l/Um=&َz ti'*X~N(ofm ܾrmi#]Ċՙ@w8btSi щ q j]WAP#KB eB՗ ۨxZ }5By!S?Wұ$ g3 3J]FLl,PK"֪Y(=G?Nce/,-G ȟ\B3 kp FrYS 8Q"'HKHr_R.w֤B̐IWK6~!nz.?~݌sC8qkɚԆ L/ 9DElVtM&^smUd#XBʙ0$rՇLFoa*s$wkeʟ9Rvzժ MGFGDEZ&. دJ$+ԉPuk(C,ɴYaDO|p#&z:dMukbLg˃ ::(.2umj㺟 ffjlk`/dhv~-SXp;Ï&q N$c+5dyppL¨iV$wzz,;gvxV_XpmrIό:(.z*jQ,g%2ḰUS(IGƋ1j#d0PozkhT}? 2 K*à$d,K(%+Yznʢ)FڠKإ]rzd+i" .2# H:i EgL 9 0".d}^RP5T!IaKe-6STŢeh[ {n;pgE -T~|O}|iZt208{nJGq6oހYT]\XDLL'\TюgĶƵVRC,IQfZGG]dv<|)$8 3GbI0 4`n_vvff,Z tCtZdU92Szr3-UWɾYB,*X cK2I c|d~6t / 0G*>-TV8:A\p@3lkSZH} ѓdQMfJT/3qg '*<6c!< J"fFwy&: Hqbj:_kiEsudGMـnX90v&u}z,ueQDЗ8j` !j~Tdʕ@1Tٷw^x(!p @Hr^;3({~'"bಔ&L Aa0g9r ޜeVAxLtORX@0*5=Ff*g̤~63~Z̔}>%3xkVw~`m;z顏q dhp"05 teY5 ]<}-0Uu{]k i4MdkFӖ͠JRcc2izr{!ֱ0ř91oPxVX0 %٠2l ]ٰJJs mQy *e~Il C0te`y8I2fJQlm#NCvGP򇕹H/&cǴ0H߲iWnѽ2>V$(<4fLpjw?Y=Sc5+T7S-l1[QV7GhTB-B/JmP,d–ٟ*-JGO3>T\xAeB>NO TvD "ީhw0JײhZaIS5=}YpIr}"u[ 4],|G2ѵVev3ésfpUg 144$" &*}zȰ>p`|/Z9z;W*kdS QN;AAXUi:"eR5(c|rϼjnRK[ma-Ű:WX&(z+ 4vy͢aI.f8.yt')ŭ'tb1G+ dәu^y?JYΩ87``Uki@;db Sٺ *[FKf&!@$_t*43k pv#ڇݰgVšUbh"ݻ O@J"Re&y;f̸8&ϴej$ 07Bk~ ^P܂mBT }<'!!$ \GJ_ZB30d4ٛCDZ7D<%ɲ.syÔaJcv-HyF0 Ž`R3@PuWZKzf.9emY$" l i=v#_Sk5o^LǕ10lkqmli#[Г "3]QLe =AGDHYgOvՊ7Qo06VG=Dvl<7+i1S/W<]9q]4*Ě_GeJO8t󱘝mAuC8l`ꬹ̦gL pe@rf=3nrJFLik4.:ςƕlg~'|2ӽb+0ڌ@d\g?k W\ɠ,»)L;pMHS,Wʎ8Xp#Z`\[jkᗜZFE3.TKfXC }d@Hx()aF ~фT*Chwe]T1:OԀvf];i)AE/V*)P)BnJ5&z>64Bk!v$Y$;l6ǭ;<4ъAIVMK59ӜjqUq4d,TS;!v Sp6Lp L`zLeY3vIMg-LZWGzd*~fJf_v{9V>$jZT.sQl /:% S' `vv劏:[\":OM5PnV,ad,]M1ޑ0< ]T,LRe!W,@LeoRPFk1ϠRţXr+GII,ylQ/Ӭ lzfBI&X.Q%:K$~Q92c>E?*KcQ22{0 a_hZGCk)f%@ДIq3\ɣ+o Q={ec8)q+ign~>$(LR.dkQamM@il7ڀ:;k*ԇ(Wm8E 2șF1ܠyf%6?Z/l!4E)-w=; &SνH|ͼP`{X10iCXf~"Y) є3|!#NLݵZmK|T "d [5;({(%&Id1ƪ5홁ph乒M9eN. #V(bM>&a7~ZnA8hN #Lh6h/~Jv"Qf?41rHl^$z.kDYF(ng0Pp8+Yn|eb 2k@P<(`g>(n8RV8~!:򌀆 mImEF\EJC5эTް+"WQܩo׫C?q*RZz_}/5تde#_?6|sȳwWv;]->[O]O31ᥗ]^/~hc'I8 +=_3\Bv"ZʐF(z ta$l18G=j]J*vvSpӤ iϪu٠w1>6.dX8!xC=؄p),"*5me`'P4u(T $7Dm 6Z=G$S c&V&IdmWx6@th,όvA\{4Ǣԁ\r [)m1^gN⚀s?x.&S@I(TTzfJ_,}v]|{9~.;9d'/:: ]y2ȗp?NȣE߷{~#|?{a?W>5\w>?o݂<-ϝw\-YE旗 nŶ2$m+d r ]\.KA*.8TDg8EVPe8 @UqI#yjz$%6PF@FҲ\+U*.ѓU QZJ>F΁G׀P9i*}]7V+[ Âkj %6Wjz%yEy왠l1u5 H9mcE2|1砌7X3(QzZzZ9@5XQj1Wy+§{,Nxp7g~f(Ԋ*_zxQ%}zw~~zJ Υ\O49ҏ/F: >Pz.^ }:~\ckDE,ԦId13]Q? c% j(#b8 dQ.B.FET)#"Jn! YY5KyO%z]'*ĺ 1/Qeza|B[2RFn2Qdd=pp ?/}(6ȭ$#ddLˍĿҸp*"ORQLe+{JhKpc{2t[iG([JQL$`"u`9yٞS w /<\5y}G:\O?gK_o'4C*[`/5/{qc{x׵/{?'?8nU_3zuxQ??߁s'Bj TtB9N*R \Nx\LE&BUrtcz)j5RgBK [`^*,]厔Bc\ش~gbUȳ)uv˅LE>UM>\0L,˱ IDATVd\=yEF(=DcO`Hn)8 E-<`% a$q\yvp|@GKap$wSIt K5}[Y=* CJg^is/D$Ԏ:Z/? xץ9z&Cѓl38v_J|lhS MW_?4+/(^sId,3ଗ]y~;7%{FUQ}j7q~KO+c.U?x{M%/3?,0t<Z?5}g`KK" e*NO+o Pq0^&03X -U%-P+EnOM\ +}ػw.1MsѨlC~zSk > - KIk"0ALTi2?L3h3BFddYZdRٹXDxf֤0E$ cH!+~2dBDhiLz1l|𖡒`$S|MCH9Gfi_1 ڥV5\KCt>r@ zEX8m< o ϺKㇸOso_q*_~*pGd5<1>|2;?睋߶5lǥW]-[1n;-kFczRNn&twXCQB& e|4dìerg9u2zQV e,Sm&N84<܋aPQڎ6 m%!Kn*r96pDiY1Nj+*QLřa sckTra #"#E[sCkP1[#VZǺ8b_2SJ >r岂#t +T8M\b&3jfQT$I$Pr"S_5_tx0Nyx)Sq?Gq!nn_Zǜ(42^4)uǸs#>O}:Nߏ=8Lƞ\K~0l<|6xc0>?*7mön3ww={Xpy:j>TI d B!Њ峯*VH&ƯtsʡJE&ɱ)U SU36 ,ղ+ x~#0\^{NK zU~AqUߏIklEcC'\ M1}<(N Y=#TBGf%ugZ^wmFk 2 ORP s#:ĶM< * '"+'Jfռ[hj57vZmTfv^1M,)Nxq< DHI}^( tq" I5 /9f飼q=E{<ָo#[XؓfxS {Ų[]bJNgΛ!Nf6H! `AiZ[`EQ^B#2}ʥ#1b1OB^0W \'o7F/'m< Ž"UoCP^q"<;,X9,d/ n~p߉c&;'0~4qck[Hjv_ㆅ k8/g&}>o१Tō{WqTJ1Cu)+^ p)by)M'LDbxS(lێމ-o~.FL@8} ׳_?)g}z8<7O|enUQ旷\9!Zi\z&y5w#&ʄ Ҙ={W*kUYiJ6щ$:Iabd;;2Uc)B貌J9xFW>*/_<$eɆ'>R>ID]gMj&-˭ V!S H7P*XZ gRU'˿G=O^x1-Y %S\ DG$uDd¼s },!9x\FdQBprf!T0UGnJmmdX8uv6L3 hf:gP-ZH,8Yh'eRc/W(!TG >u6khp_ ~K1%tz }yVF (& p:iLwxճOSN8p#թbi4>&ןÛw4]SmU #pT8:ixץo+xλqn{ E J7}lj`Ie՚?%P%I a&&# X77KD G,Hc&`p5N /Ivjo9 %Ef@P&m8X֪p53JCJ 4FH:d 1t_cq"2 =]jhUL7dAaZlW$2y .g:Eqw Z[4G9͡*Ƈ01<$P<ƇKb-0ɓff3ĆQhae^ ?q169(.aYB> y_bp݋37B31506- uKD6$$ZZ>'4ޢ$T+h~0KPt/"̮"a eI8fDȝ OTϼZԴ3Jm{N!w53n1͑aQY)j9(cbl S\`rWfPA9V;|υC~tDʬ\+cj<┭A*n{+" t]"?]1R‚!F `pfƺ23| S,a+]L9)RX/b50?e]2v*kӣEh&cuP$>bj/[Z E}Ov]=dNH:X/~`{kqm2Qv}# 6RbJXlk+'劃(,@{YPɯ. ;%_Lێ7Fq`(Sz1*"`˸̔fʙ EXkUO^]tgHU$h TKTW.#K@3C>w:/2| fƧ:3{b lڃ;b{D!JDΞ#19g*dztq3,33@>33[XI3\xx}W;1Uʕ HǾ}ز x W= NiQ)r3I2Ҭ$;FYl؈za B)-NeCQ:bjgE)Ulzgʤ9c1Kdg#չ]̀ >}E֕+Vb`Z`(?͠&7UDr驲Dj#co\%k(vNai&CɤdEK^$[c&BKǵAڡu\6@;U9f1To%[+ T<Tt146RI-ɾ%|2327ՙ"ͩdyPwNz6*@NŤW -^ນ"̛eYa>iYdp|Áv0`@8IIPdf֪Z{~;+\ۀuqϯ[jM#C Ql=o-J !_׍PN1ێGPiGV0KMPeM ͓A٢>#[( /)<nK%r`iN2@XτU4܈ $preˋ"YN0\XmN5IN@{#ddVtDefuz]53UsAF33mɴXxն1 Qmc 7 L3fy \ mވ_ƍ7݆yN~Ş={ujզ`Gzuh:ٌ>rɦ43#>Pis3{6 eu0 #H!2;Qf8xbKPd(夰"d(Dk(S_/E:zBK_̴Lw=  hАi~b_+7:v\&.]p2PE- \gR6:<ģtZ`\[j5Utzؤ)[Kt̫nbO7ہzȇ-PR(p}{9iו*[C^_j$ֲ.Tn# +Qiy LYF;Tq+[w(hR #IoQ'=,/w~FWoݠ#ܿc9f‹lfjv[Ve%HĆ}9RVC\^TƖghMY?d̹mM1ƵVB&m)}LƆǐ.~va~a}Ӌʚرx< pCg>^hDJډL#ʊsQƤ*>p>Mfp$(P|[:1nQ<]rYFAo|Lp]X}z1/ 9ky=Ho+JHl~KT~%Ep$@J 4W:RttYqdXZ MR-41P)U(>J=k:_ycO^ shXPVZCZY_؏|쬭i(W-2P6nތ_8ąd(W41oa\kb]$~,N"M8p薣0]p(r•lbY/_Pw50G F3PYe12pzȁ2Q=/цtϕ琡M~)$W$LŎ%k\nv`sO02 2= `:h...!+)8 &TD͌ `ge%na)bV;-yǢ7س^)\|@գoߙՉ0xR:o[p)xiewso6oف4'¶Ɔ6䗱d;]ٌy!J-s-Aik"$ YHUѡO$:e/'`M䅷OivљU, :8r6QY(QR3Ŏ$=8ʹU79^Dk柙~:l*gL3xШ))Ȟ2C%v£Ԝv:GP%_m×EoHLaV13eK~Z羷Hbحv$qTej@h(e˒[?63)hS:bũ|Gk$?\xř+p-K)WI暞r>+@Y1smYleԔŕ xuT'q YaXEN [4 U_cU'C:+?0c+>?{giYݏ筷NߝK/KQAQc$Ĩ `bCPjF b,X@Ae}?gvuo.q_i=ğbLٲ1n%#eYFk_q|v+U7~(j; O/qן?;pc!&O//?,ubwXr1 uJc&g*N>enC$Llj"E:Bv}Td Z1y^webi[2mA![ƜVG(tȴ/Gx}TPӑV 69jQTPhFsEg L-ȬBF*ꖑƉ;=bhQy|U*Qo(H>8,^`IlHt15p>UK^6\Yxzy"v{#wxqL9)2FlUMr(|@•ΔxOd_1]a:DG ]%)![ Hԏ:)E]xx+;/{161ԝހ3VW_uƿ 쪧eWb[:;nHyaOK"8~>I~DEevPsk=w\. ދTUǨjǘ#B#)4P,qUs+No~,@%5㵲FH,gy&?Ct2i %ⶴbPVz|u٩ e9jhn(@ti,:0?Xj2i Ry'ښ)_vv`./BBhib2W+aȂh\{!Gڼcأ.iײzr\~Q3.ő8 o:;q8TCtQ6Q^\<^0jI *zpuWHpt@|FX6+ }+Gƌzic& ! rgȝ_jBcW4\~DɩۋHP%mtjHԱ!ㄻdΙmA䢑ӳ[:[?S H.7;dꪥBQ&g!Fm +)kה:w{U*~[3WͬdGΪzFg8,~D_? K"by{b߃>S_ze';7/>}1ߍO?۝Grrw0T+ܠ6tIE&(V_Q-I Ɵqhthv,,Pz7Ԛd,': s8dRBtX*3K7+\)Tc6caK{F%i^5zِc9<xEtq6lm,"mghR׺5 L%13 hK7^٣j]a ~e`c aEq3VҨ4?V:DL1?*)L7Z2G!X_]8kQG,5Q2iȤ"њGwj[|^c5u07-dtYMM%6V?n& 8io>[ Ey ⢯#N<ؕŘO?~N;b8lWo5o})0u]~x^n{~}'?4⹧X1!t=/#hn eJEҦ#vf%N=/e -CԣQhb1uU Y\GtQ&ZfhNi`=&)CXnQ@#3ig<Bk2 waYT"O+`B K^U|oPWsQ0738&,KM w(*|m뙏U]r}88CyWᛧ>5_}"^wͿbڻ8˽u' qڽYd+WT˔X~…h?t!מwzY{<䙟ہAg`L#JHmyr\g.m,&-y\KFe/|DIyHXwFVWؖZE>NXL w&:#>(}*gQ,:\T$Hmj^z Z,J@qmmxzj}(7k깈IgzNAlq*;)TMɐf6~tvaX)en5,u=6OxUGbvٚ~CF!%/mˠ4՝yÏ}RPߨA3Q"hƼȓ-H3 S@kpѣ7K;2dt c$tpG6ʁ!cX h2*D3Â\b2?* AD éSCtiV9ZfS#4tLNCmMQ*fד|IE6{d. D:a^)g=-9XI,Mvf.&?+$rga9āUp3ʝ;2ct(nn?Rd[fר<&iw'BsXsY1@of&*:m41l;Hώq,s(.It*Is2(*R$Te2DžK!l"AV¢=#/*o,.TXk(Ré:Ӯ12(S[ő4*b*cGT;.pFcGμI*V\[k~ ̊Uʄ&k!IP^i R* ӋjJqxi=f@[".TDE7%DAn5A=:ERBacFl0.EvhFx!Kšp곓Ff'bN*vqm<6jȕZMf".CX%Q7[(h>SM+ t Rߢ);ʐ. 8 Eɲ6ȴ54DW}Y2l04Z΢:k֮΅.wk6L,N(Z#SCʙeY80.H GDCM1;ʘp QU h9( )5!)q/rGOC{:fE^I;xpL+[jBuit!Ռ BKwa4+5e9եK^5*"wS1pTn9u(*OR!$M( Wmށ鱏;E ǣ6脇wP 1ܚ`s3-d_G{dT$(3Јk% X:E]$@s QJbt%xPWWvoE@YBQDPBіû̴bQE-ދZ"o%NnzC:zF.LFYemDY: DŽB$+i1𘬏)Q!-QG*hh+-g)BA\Kmq:);sg8~F((=lRcb9:aDwJMnQdZH.BaHc)e2_gECA0C(5rL]NFu 9yE;_CQ MEE"9Xګ8r͐ztu'or`Opr>pэ["Н݉mï?ƍ7?,osw߈>m쪮:M-?ٻC\_Ꭰ/㽗݄{h7GeOfx?qϮ܌KaX/6K^]ڥ)ADUMДk(G>cAyH?ڎ`tV$s!=Gw-đ$w@"+ G{te+RLԪV;N0rRanEpZ4慐Yv uG'pX 64Y?,=["ɮR~([(lޱc0eݮDڻڤ^ss6l z>,D 2>v1@cX0ε|t3CϲP#g.uZWR+J=*j Q]Dcbyc\+ڕgoŽ_`r&+?>8=Ggqﶛyw៱i98uv!>zu^8n;D<'P{D:KqދYX/J=>NC/|.6vuDI6k#%9 GXʅn0cW.>ڪSc YJ^j)҅2'?eْkؓJos EgFlٶ܂o}6zT +vϞ u%?xE:e|Xu>&ÅC ړ8sdQgߎ;1bT"*ͮVcϱP\:bc_A5 !XxaOEQuM qht%Y "{.2!\/ߔX6Y!-uρ::FA2$o!G+i'GِE [65 ZCt#S5{>蝢~面Z&KGrjv<}#\(7#!*a6^WlQ,d&+UjN9Y壓wowA)/Mʊՙfo6vo~>w* G#x*84q?^|N\.}syyQ_{"dnx^;|j#܇ <:HJ+<}zF@q*ѨyŚӀ5乮k/-G[ '&F"o=Pi5ѵ+"ҕ:4JƼDe]IgNwzFWf)G,p6}(Z1JY8)/Nʿ 17SAE8WVp9AeX/}ٍY>[w Yf!#/Pi`3T=ծ10t3Dm x!xf 6RJY*JXKMPؚ\qXEdU,Sabu{]Wk۬EUj;\w^\?s>qz'x.c3*ٹȜg/ 'gkC] ׿׾ }.q/Zq m!^ocr>t0o~w >pIx o`; +=71oy[g<g}6֨,Ey?8*moRhbڱQ#LEDHśҖd!xFav*8)H㞟jE&Ao܋0> oj۶퀓Ѩq! @A= ,X54r$N÷|8=I',LW@ǁ r[GltȖj| VeY5)!/;+B6f z,Y"算cx&8QANGW.}e(FHqOW[~ſ[[w#ÊEDr9wEwTo0Scb3PK[vOT򞔢(B ieӪT/+EwwVBL&?6|_ EQ}cDn>B`dru 9Z;R rmҚ-i|!V Y4`'y,mUB!h1#S97 +(2t5DqCN5vi` q(xRy}U@DPz3ͭakYje RtU|M÷Ϩ~PQ{P#D9Q,¸KoLJ>6#<#^_~\x3}MkXuK6Fm'[?n `&B_hP9": W6K$Ŧ(n<\zV> w(82' Ck7BC9᝿V-CEYgn"FEIA`. bp]~1+Pr[H!]4.߆oxPxEbtvJS͎pAn 38``l:- FZE(Da+f}>|A bZ=̠3t$Xb¯Ķ;@6bcuG6]e^Id"i_GpBsͶiԧ~,)R)ʼnS\m.;FXEχ\0?V^R}*D#efDҌ;b|]+w-A/Gހӎk|"u*Sgv7{x?<}}&:콿5~G !L5sXp= +?cG#'Mw܆7MLeT%"!#=lLy-^ߏÉN6#u~lmVAmEX|5Ad~)q #jvvRgUGs!nm1bkrK1 IDATjMw1_l6s=}ׁO&e0@}]V e> ،l?5σI=1{,mXah*NQT;vYx5d(vow> 6z^7\p#=L&+ךG(ԯG\O'Aqw8|T׎^myxa88],*hkj;Iz߭p[>xi{Axex >pxĥ_:Ze BX>9'ACKњG]?R\Sz.xßsW?:o>4ЛU"1>7UV=zN"V$:e5K_2a 1nٶkh-ԉ=alXۃ LkH}FdEn'=>tf Tj@8\ky«J#*(ЊI;GwP)JpiںL隕YZVAvu>,鹪änq:MYe^E WjHþBsQJS }趰Ie1瑛?M2 (<6FXa1mwflm2S_Gjc_#^Q' '3wcGool'87b W\&[kixG/i ׿^WzuYxegu>'=(l8f?qcq=fՏw;AXp䆣CQCFp}A9GJ`+aۚh\C}n N1sl*1ދcG>/(  NC6`cE;- (ADu9{R1}ȣtH,Q UeKϋe=g[9>^Tg!| ˦?x ;98rr 3|ݴ Xk546Hhu,M^z?׎a>rXs}vqU qݩ#!l-cs;ȄGK6BnUa~IE?.O$4#Ѯ꩒+cBt]*PAVWPd%$Ll/d$Rg$i\WD}IY:$ȧnd!u8|qX7v~=]t>:QNLGGM^azR/4E''lp= T)B2 ʛj S;6MS|ͩ ;>ڷnWbv<#v!e:htj[Hpvb ~=Ue]mGƪ 霹,+ 9aCi:.UtN~u`r]OYn9w7VT䤹r +JmbF{EKFKgQj`|b$'1lQ˘ MTШ%RQYb.0`Q~HL{>zqQA$Z7 e1FL*04 "rk)Ɨ8O;b?WhP0!bk<6Po:yfw sFpear&2a*ֲZ9cjɩVz`8vHQ|Malȑ5N;q5OQ=ۦx%ceZgU9ROswg0K],:C2UpC<֖"F2/ew(:W+gQ}bV**hv|X0@r0.Eut qDsGaͲ)Yf!g\FF;Myf Q)(? IrhvCe\\#" h!,7XeןÊz6LM:;rvʐXf.(Evq*ae%H=a cv|^4_SGiLUTrY HJ|*>PwRS\+Lـ;7w4Ǫ\RXjjty4 E5k^Gb |pFr(FX>e/dI+)~+AE #Id`:9ЋrlF$oh6-m딋fHzy[2Z, AdzvI3’K-(ݲZy0E@]8J(t<%''v "E)hd7-5RϪC4tTc:ը/Eҭ$]*KgqѺD 5j5`S7a.,OqDrF!-;  ]*&%alM] C/-u3!|7罣UlY#9~ffV/  Kzl|^nDu]c/ %&G@wgI&l4x`ڣ8rU\ W85?0gW'3gϠڅF>AqVScvJg-XvYGY;4/KeٹҎlFuxO*eQΞJ)hYΝ%iMESHVi\b;zXqfBF=2,8y ޑ݈I 19=Q~)%kqՏ{m K*S:Ac$GwǎYp|mIgZH o5?x1#: ï;`'Vka>;H꾋nr~"l"8ͯ#$o,dlk+=(Ur,+.Q10QD kUrx( WV\-:_gR>@7ݦV,-4Qyr3i£Fps!Ra\:D!jTX\Ĥ;utD +'B4DN@m u lٍњ֬ĚQ늦-x@cL`ݡ0فqxSk *YTj8DoCkQ)*S`MiV2NWפ{66Kq,`E(8I) Bt`T lJDl*|+cf@>ƛ-3+FƱ>+r$G $I[oO};nlcW F'@:Htz}m5GFMf-o [[5n1Q)fSvhRo.(,}#[U1qh%˥Ue[ ff⌣\ GuFsQL[Q2TpYF( JFsGRi7Kq, H( !LF93,H<.`>dY1H=ZuNk7[X|9FZ eoYh>ja;7'!&G0םcirۮa QjcTX96j:",uj:;1|VK"RMztd@":$ LU³T !WjŔ " Bdm.2CATzo SeeYR鵩;Lnv2R/Z*2M3_r# :JPزyIK:tI`Kq,QK8g 'aXF1 :Q`aAwY#03?dP'$H!u{ri=Iawz-=g~6Һonj \;Vf",;YLjd Oiw9̥sh٧4\ fPۣ̒C03]UǁÊSرuP@Shi5|?!-E}bi IHU:)CFcQeba.JөRJ|Qt&FcQBD Rvy hL7Vo)URa\:Pݹ]iH$ כEg(("{#A(OЋ>, zôûnC6j40Hc>&s0013)9X9V\6D1&ЮS`0i5EhN@ Bvc-c1b|YD$҈.Ǽ"U]UtwXeW}Z8ԝbvUBCЖ@ ]x\bY*X /y3Jg%\"7pNOIQԤ2+^#*r YTgdCbAݒĶِA?K$w$#bA#\1g14 0cӘ3h\0E!2>`cٹ8ò ̀7ͳsjoa9GdG<4-)e9nwAȔ>x>хLP]-I0!,}Ǘo[c.!ҥWϘãNe(rf1PxoM:K]d%xPU~(N C\)G(b_è  )yAvՀR0 [8weToRa\:^ "AbEy srp8Ia%s\v6$C/b>1;XT`"> h;' :]"n=xdǙ]16[k`ƭL%t:p\v)Qt>lȂ="s/RulM{,ky-qІؾsߘD5IKwHIߣbfp]c V_I7vy\*9'hNKT^Il7!h3.‘IY=C]^E%.̗tc{ ܈:tw tH2gq@Kd)d2q@@<9Y@bWyQ r$Dtؖ4^KA,Ht&11 7fL.=܏vڍ6;)&@X젧R*BDP<0!pc ܻi8"Es 9 HTwieMG:AwX3L){* %h@Jʢe1֌ASa8ZcHd[j+J5BgDj_AdxHjn/ۓxs jT΢:A AGǷ|7D2lM8`)iɴފ/;p5ol@-qH,xLJAI!M[Ѳ-\N!wJ1FȎ yly]ОXI@yH{I*)PE[7uيn+y1\2H,$ !TF uתC4'!Yy  jp6)HGni0$a 289d]JU>0+Q:egIN2K`,Гc9xC_}s'_y>񫽵9"__e\~5W٫wBsc}w㎟ /?^t%z9oe6v oMo4K7XcO%['0%*˱1=x G1z5?g;QíI^uhgUcXr ~뻑;1:bko9l#XA*uP1-ʜb~(99H욝}:\)YtP'ry(6!:sR~4Yʻp8% 5 󛱗}CaEFQZ=QbXD-dkdvEW.ME+* sl|>ՀJ$܊-[Ǹ{Ӗ{[B\H`Olw~~<~x)şj+?nxz{*fe-;A1lL <hNDs(~ UUF\ C+,wAg wlqi/b6`9 t$B7!$EPkL2'K@.mA rݍ^ Mc lW`|y\-!9A#\1 bȮqM/z]sNOLKDڲt&pKQL*`-Z _asY1]-\2aM,:{k/餓E"(2YefQDa ˌFPA@e "twUu-wg?sν* &̟R~ZZU}[dW$ecOqAmd[VHdDC_IY?ß](kK|>ŗ_|2я^_㞟y c>0`|Kʓv.ky/e%=uuIn຿.YOge=/[pcqja(`䉏;wpu7J6h=a %x֓/a8c}.ɿR4 2ʳnk,Ds+`r;N"bn DSnSzx>?a*N.k=WCrֺZKq~!.^txt{|T6 IDATm>z2UTrʈObkis_Iwz[yg~vP8TMSEA9n/6+IF@Sp\/3#N 3:Or:3hrwոMʠ2rR#ŏ@! zfq\TTh%G.`sjU("S Q3`葆1s4&Ejpb[<$./5ءZgDm\ppomBFbj 7gI:"_eCNR3IT0-&0_rQ\6 Ma2Hnj}Ӣ89fc3#fQ({TH6;ﻋ̺Sh_ʅoqgwEK|OD ?s|>? -=?tVx_=˿x~P.v_dó?ʻ_Ÿ{x[neO&x>%?}?0䥘;w5U<5k<mo{~g?KCitp&Z{nP.a j>"C_='ّ]W/ M 2 4s]\庿;FMde Z{-{xjCW]hea(ya䐲 1qe =.Lv/$~)0)#O 洵 c4?'iT+l QG0 / :Qca.E1U;4. 囹h~EؕfL$/80M`F¹ iECa.*h3 U1bQw=";ݽZg9/E8lr6/6ݷ',S"{f hQ)Oqc̏8C+Euw_e$*> Zi2Y~m<+/ދ3S-8ΊoH&KuWi%t=MXV$AtIce:fsNe'33[,'ڬ찴`-4Efǣ?aSJ";+i` h4 | 4gyze3l)r%ĦN+0.i$A:W;1i8Kp:VjeG4IwآQRn=*wc:#N\db8Yf3tad; d_KrS]_O2 (Gqw9~θ 5I }k?/qv)^~}7aEQ!ڧfKHGnYr'_jwҰ~|s~gw ɥlW jI٥h{V[|WP ?K/Ryx ~J'n%w`Q,tO??W-0b vuRݗeU z-v6Gnʻѵ)*-L#U{Zuヌ{YKﰶ屶( )|Y8Y +u]jKMU ܏C/5$ *a^h$F@bPL*x7MzHX <;TU]V?ekk)2 =dULjwBgD 2Pe\8v`n`8i>N^cd4dJlMLN2H1cfT(B7G$S@{d|GmL34_ǘOygmi4~7O_Ǽg|?7iGG^q{OV^9Qy{:9Gl>G/|?O)^> W2|y9B9XOmN|OuzWFzf|~gMѻ0ַ'=e<$ʺUG\j . n,kIZWv0O+2KWW6ZQ4JZBjbu|M EISi긮4^P|VI+eST6fRe$v\e2)6ǬP t{ZJZ+( i,^ȝg΢G~y OOl,rĜQѳn?{3u!}<#\WռxEߵԨ9Hvm&lNJ!ā/&+KJt0>nB?w:mR-©"ky$M"k qYk"{܉*t~1:9{~siON6}g*YXI]{ojvq#K#<|{xw G Ca6槞_kxtwv5/\#3Ydk0KTjz#Owrͥw4Q^K_uV0` {$;J,8~*!5zGgTe^;n9$C I'-e QN_E,#%e.LMu;ۭLx5|-fQe0f+Μt'a~3) ǥ; FjsollݥZ_>k4;G;.$Or_8#2d{YH WIfY!G:޴CTdm ]{Xs m)"8" b@kQ`s3v3y2K<9p?uA~M\ O,_5/_)Bz? xLM+.._mC{;;7|tg8 S?Ŕ]_㮋fJ~I5C\Pv9s~wϻnn&<%YCcv^7˔]5L-SvhSJTDZJmkD~`M`mVuYO{2? ĕNU>~﹃3 .GgMDQ/Vf$<Rl MT>SRcǷ>Q~2Bo(x&X+졈Tz#a (5̈́w9]F3#Sl&蛌AJ)Trnk ,IG\F'P@_Ǚ}R/OF'1L^ۛ>^UaẎ_D?_SQ7T-K/EWdƃU3|c9%ֹ(ί'O^]Sg_o9vW]u]w=HiaU9TZ\i.8d{0aށRS]3sbsZ}Jդjܼ6D+XvL""guʡ#N(amlT R2:b!]EuqJ.' 1R"S Μl){eI0X[sS5[=LWrf+95jUf f>ަ#u1j9#-ILFHԂVtrqR#cgTɫO(XTwEw:CQllNI{K dK"nq⏁zٱޯU~݆?vL5Zi>'?q{|Ae`H`rŋtҧyċx!v?޳.-/sß𾿾^q$ 8q'jyӋk0 yOݿs!ZVVV'+Zʉ3Zmy對6PSJis:aYV@:ܼv\)-ɞ5BO7Iڃmfbx9]Q:<).p$s5sao(elMkTpp::A̲ʕ."bn8BX88ѨP:uh$vĢjW^'5|U8d.QM)G_,/DR9ɨ3JCNu][dOըC̿Vte"ϔ8$'.*7U;1.=z'xtGW ~wgdm9uǟ\~͓ͩl&s? >WB~qGQs ȝSϴ>]icNr˥S=O~~/K.,tVWWg;H\iٙ Bg+6ܾL/sOh8#aԵ 'B L7tdA6HUzG*c-s i YpNDYCg,*x&Mj_W9쏯◞1GhMM/|ίu+^N^0LՋEgCcr-k<7,A 'bgN,ڗoK^={!QefFs^.QYkom1uwVQ=uLޡ9}SUE+9ջ[BvHPXPgp&@([rT5[ml'64/߶Cw9SQz%:;!6; RX@3ˊ>T5ղMU73hTvp=uoEk[~\f+.̳R_dw2q&i?([7h0.4Cx((t^H2\b٪EKvRسXuz PEE]@2Q'dHv\nUrPD}ȊZ_L ?~OA3ڃ߇TP!>J/t"ahNJ bo9s zzZg'ћe8EY8YRܪ-pye=>Wpscl$fj7_* zmzs llxqL(ӈ$ڱ>z{Gb*Ν{;NCN'_t~-nUci{wrL{cwo,4Z"GVfZl`iE~ 9OXz,_]UuVn {G @2A]%:k'T^tHd$sݱrYLVE i## Ԯ*x'?RI:VT>erFAWѰhxL](L1(NXRW+8jYu@6t5B@Ygk"~?ejaNt $f2u߸=Ё&uB{آ̕$Ji6Cn=s^Ua*۶=(֜e^&TE{91C=GgN(Nq:vHڛ̖R-Zf@ˋ)-UVgcnA:MZ'֦I"V9dTܹY֣ 5zVm~U܁Ҳ/dBQuf*A+3zSJÕkDM"#n=w^FyqƊe8`JeXCIx*Qfq^r  })MKBiFrISv|/$rl V`KCmU;qRd<t$ќ1"̰2empс-ʶú^fۭmMuNZ[̚&Mk'w$;, XS8aD*NZ:M71IELm ̝lZAiz]]bny7mRWc(W\vSPZ|ch܇Q9i"4 R26Zw*UGzC h-'}F #gTתRf s NudE,eDžO/:[.NcJaf3{SN;[YTj&VÈX0m8??805EW[fV?deB)qzMɲih ԅ,ξVg(*6iTf ?s;ka~8ď e~k@}fJ.5̠=`qj`3rbkjʁ4[IJ?D*e-1ZN[e4efkMa~ݮgGHa+3,Ɂ<^unZ?yR'q,e洝|j X+$/qAdDIv] f&f+&O[Q|sNfE vޙxN4'}dF?gq z< tȤllm"}Hٌhfsq^cmm,]@SkW7iR2SPqL<U*r4 L9Pszs;SHO/(ޠeOTѢ'ìu۹R:$Ķ+2`S*,ԧi)CV2'Npf@3XI7}t+Udoe"8ZQ*NzI'lND;hu&GHE9RqNf!NG9q;Iv71o:SEר+A(RVaiDBʸ{(pwɼ%}+)~?gәjy}˜Vv ;1\;$ MϜǴkno0X`-ܸvm|4K ՘h6k-S$t3{L7][g'lu:TBIY8̯̲AoWG>OfsLN[)W% b+h]fMZ^=p`eA@xP.qCfJUT]2>(t{.G1-:;mSHlL>1M." d!"3 IDATSl)J WEђ]+K LQ;hgOJ;qy7Q$ 9N >Bqh%0kڬoέQr 7DiJ5BR rvWŔ5~i=ORW:ɟ%3i `g,)Nwފ 6sS3E8~أ?(3řyTVΎccekU󾧳#"eP2SeS{Wɠ7Y!zTX2rIs\r*N+cnT.b<=ʆF_򥑺 :hL־^r;{F{O}^2;eaMG7"5:x5B 5Abu`έ'N2հέ2c5zi{6Ny'O)NZMѬOD P[*.ʂL4U6;]#0a`8$D̖ىc:zԃ(uۙ=r>.i{5CɊTUʼn,5]HR5666xœi;j)9U)y`".z&ӊ$RY2QI |O(@:#EgJkMx r!͉潊B"Zdvi'Ju8$>G 3ٶ:ArSZ-ɄdQi':¸β#I@铽$Ԭ&M㸘I>;|TC9Qg"¼n̑ZXs@ (&mqW4SX:JGGOM Ui|Bns+촹pUN wzs@ ȩ,c;p!'ZXԢdΎ $y{JA]t~xԕω"Iƴq%^TֿzFE0R(1} D*tK bX{R'v\>8h?gcR1]^G[!5o-Ueac*z&#Vbʝ'ۤGI?=M͞ [GQr5jMkrbրK9Lj ׉|6Y]C%`}m{!![Q88mq`jPUQѯuF0UxUݬPQS͌%51ulj ZguHTDknةxwhN6gN}a hqW%'TFޔm]+0(Zi[rI&iiVlqfq^ ԛ(Y|^nW- D1DUR`\䆹E;!{KY0' nڱxk.Vwawm:[m'lmK$NDnfH'$U^OT-Lu ̩aQ*Y 3ʯepQ#f n?}}ՒW>:ncmv-1HaeڱC-%`Ԧi rCYɞJE&Cݞ Qp3mDvvT.c2R: F|f$d4M'X)lup%{' 0mH0***r.kIr+gdQJ)ןPvs̺đfR%3HAW ILp'qD9R=naovosIE YuE_YutSU}a8Ta Zͭ.Ulm}$6Ѩ[6ClڞVA _= Uv-f:wӹ4U aX:d*?^!\g62Uv(i V3RբH$AEo"ZΖJdŊK&L^KA7b\ ^x+fZUTTc),JczZB."j) 2:QŊQZ_2P4d4rKSO*a&#`TN/vI^D8Wdc7T)$<kZ(jO9IL&2`c0Yc2r:賣0&|Uꁼ|q"IO:;|;PSlU*êrVZk,z  eas$Hiʔ;KA!԰4]bcV/F¤dlIai.̒2/1f0 ~+Rz02"CˬaTlpNZ&A\4☣Tj?0Q*l[I ;uNhrhCmb(<ؑiX"+jYŸX2*^Rt.Kɸ}neID-)Q^`hMŗ&`ةrIZ FZ^db$ZsT02B*PT="5d<OÐh{qh,_,.'Rl1S<W_̰ Io_~î>̿.~"R;9_:_|v_% JRQslEO(\b[UҴe[M3)i:a:&[G8B|k=q7;'ilt;9ڜS]4*:~@pqel4奘JMQ֫ E3peԥnH_@|c%I`M4 RĜ!Mht(ݟ-ed,_\n&vSْ4g(..dݕVjod΅0͊JyLm"> \]M]qњĻrs?F)Ҫ= :P͏XRM#DJ"VFAg bp=d\ +:~p7N;uX?@3-򶷽g?|h<1.a*8LB2ÒFgEzQHS[T y3[M˪}%z rpɁ pe}6 OR5U[8F Z0Ua&m._N8؁ROPؔ=t1"O[e&t4+U\v fnV:5NΨ)cW(d/'p2UXH5dыB-".B #tߚg52wjwp" 8" I'gȱrsc m€Vu-(pd}^ڌfrd~!Yc&K&>/oO]_貿a=y<)O+_w;{(|4TWXVVt׿dT^ostzM'4թ{wPCab&V.6H#0Ui*u@=}̙AymܲRЦI)W |'iH'IIvaGY^X:~dqr7qigFD{H GDa,BOL4ps>#=b dDiBa_6ٍ&zYW§|t~ ゔK4ks ȼ) U.FnE΀)HZL4Gk,-/1W(5XZZdzu5wQ筗~7ﺡ2W=oǑ%ȯjS+-P%ɦ3:2 W $Di[Bu1D(bXYiIclz]hbIwIzQ`ߡz 8lt,lQ Ҿ.1Af5R/BR$!O<Ϻ&X"ʼn{*x_HAQW q(6tmc}UtDmU\k/eDN㑇cW98Iv[b^LszP#L΂֣u y3_ ,} h?ՓqVx>NW($1IF_t'+cŋ+%:nPOMBvf漝$? :-B/ ',~!3M9c^Ђ w-*Gge8sة/]:N?&÷+/?x>t~y;񀋢g:PK$@(7äC!?US]h*Avҙ aDCXhE=B&J~k&Gj3)jGP VAi<5^NJPS,5j>N֡i"8Ib駑2o '(%:A*FkGv~檓?G@Hpd(<<7ZiǞԼZBT,Ɉ2"# " xQqҕic*NѽeQ a }M4[xXЃ4;B3=P#7 e|0 P +g(ՋQ* ~} UWT; /s(^xᅼ/}P:NbL QNM\ sXNmjԬ%!=>ZJ#鰫\isacY v :f0]Y ٢ֱ e)z?56J;8@EO <}R]5.-,H$k{PEO-Eb7t@K SDk{kh:AP2 qk  3# RN}Ľ& E1ے)V۹l%3'FHʮ\ŸE eR~GYF.R@}e(6IN><ɒՍ#p9~馛ԧ>> =h PE6q+&z0!G>#4-dcvR m 8Qj:e⨋/A$gpupñ { mDlA{cz&ah4>يsQ20kr^,yE ZI*BM&;#U`B7Y6~g H7Ŵ#ːb&SE3 8m zuzrf&ܾ5-TB9Su;}v}3w*At]?|>αcǸꪫp]AD\yzlT -aTY=H#ML~V!CePe#'U;;1#Jɒ:AQT!+0(6LŁUz4[7 '$t\ M4u\mV<7';AB, LHu૽Vw0?0^^MܲL:qQ8*U}V}M T":DVwGAyeXnCI&AUH0Bӕ# fJ"G8 cB]}z^Sm]i;h9y'nC|[n`sχls!ZVVo7XpS6Safk559bkl#.*v>`jzu HbJ(,|o@ ] JBNN9ڦ 9}]: "/Vmx;@ER"XSq\b -aM~">I kN(TݤhgD-NyVD]BLi 1=O|KtzM;4ly ԋX{;"ȾQ|lrzdHȐڔlH1q8$yE>nnLF[#Q2Qp0E@6ĕ#r_J(_Vfp;CLRcZ0T[vb %hi$pQ?Ň~+ˇ~ߜ~Sl=a4:%}ZPmeL_gh$ Ø2,sNi~<`z| IDAT̲  i^ǣvÞϣZ>N èGS`UdW<+VhO 4h z:a(٧F;8CY<j;YGmkRhVb1cpq6mAF;.ALئ d.X{R%̬[xtٽo,8Eᰣvu;垇iO?~Ps. T+`D[NG/ֳ=HSͮ} &gVzݻ~`?_%h;_^\s`z9ۏY) po8 &KŜ dY L%zi W:kjEEzA 4HRz!CT7h80@68K Nh. l[J6eEUN+R7J@ZH?G%GpyZ#E$fCM[!AM VYr =33ٮzVeL% t4DTG&O{UtMk5ⷨH٨Dh§ʂ>C;Im e]h#hWt[F=}#AoQ2.I->5fӤEIie񠎕։9D "? L\L?$M z :,8IY˺U?rLMhT 3ř3s^rΠ^Ttp]u՘j`[N?v?AT"g׷[Ջߚ"5H# @RF {utm (\u_s?]OMa\*p0KLY 'ötTڽ |l-2˔1Gx[3$E>X}svMwRp,ѳ,]# !6aF}J:wڡlT(k p"tn%H+u&0TT:(+ˠĈ<*ؔ,1#¢+^C)WT&1 f E $1fg/47uiGmD34`k͢3~j%͘$v]`iMq6`"u'aV,)>IfK+i +Px̯q ]1DQ6鹘vcE˭LWu_6R$l2(]ID[ݧIt Ee&-Pϱ,e;r)o?È$o<߿DrȺN)L*9@~OI 4n`՛t[hRX:]*Y7uqk>!0KLЕ#ԚpM-YeQOVJ.u;EXʊcZKP$z&*Omͬ"͠hh%/0H5/͐2Ў0\y I:V~ k֊TW#w(_W\^XGi~{I<}u☇'+BG=X^xQ&вdkSԙ{3\Ia`d)6϶i5>T8bh^E}s4h۰@ BHp3{:5מ]ܛw\}{NU]é?|EX&z &B13{mROS5ڪ 2NK^Ơ74sd ԛs8}:4V y.7CE9CX4MakTwlͩ(3C[mD2kƥ-H[+IZQ2BtCKҺk `M:$ECꣅKZH @u?_^ 2+# k};! B R:El 7/szqʣ"k[ ,K hJI;#gooQ_?/KTI0[Py% ޽GpuYјsI6"El7")d_m5X2OUe1|Dؑf"rC$EKGl]Vۋ:,cqǥ$d|-Ysd a~5q"ÜMd~e}839jҼsMkQJM%rhƽU~ ] Q(JB ^Xn̳43РF7b;d"KWAUuXr^:δZpBk{TFBhRTBØ-ޢSCH=K<#P'ɢ0}ۉ h Z*X.cmcAlEų9\MH~!1CbrV gi֘e/),&`*N9f_ñ/sb4MuIx#rbNn S{?2 e}ۆ6b2e%DӇ:'u{ߴY8$z2BUDހ&6@k!$H+#x%|S$_XEӅ6{Jf5L+F Q(2@Jl,*BC+FAmu82#TvrB;Vau"t6ny~| ``зa*HUD%WB5. " %qK'1+Hn3`ɆR #95=yfDSl!*i-|ƗL@3>r?݌Rg{0I >@9wLdwK\m6Jܼ0Ie*eU"[ZYtbW™;B8Ҡ%b8ވ߼,)R t 8)Y4 \t.Q*"1UG( { om\8 G%#  N[DPX.bsF{Ã|u}Rq-3F] cC>9I0աp(OMN]vfr'ISN/Ĺwσ'nch:NN+s ;I蓾ei`J^Q2 ;<'d`ҕʅ j4IY>mZ|zJ.A몆NL_ls߯8МeunRU|BulwT{>QXŋF] CG`Ѿ X9?B*PFP@ǎ j%H_UQY'=пQ S>їd7b&Sa<|Rr%pddhme nE~cO_bK% HF!kh *J#LXCT#!Ev[EXvTMX!/ " "M*Ixb= /x((lmm 0h(c)c%Hxj{ےS|GhLu2ȍ31b5܀eM(ۻ2J Nl<.uB{w5pnV~jbAK8r/h,YS$[mY\ғ-A!.B(efNAߖP {ABTP(h|;]r1;_MԖ98~bln%Շ׀@C(~۔pn^ueC*hH8Az\+mȚ(x 47b10!EaiqD`0hȆ$Q(cvi~5'8v+# nr_V =gYX)(@#ec+4+NDv# RZh}aWC8bkUū4{p|-{r;{?9ox5y N<5Uܳ#/ r]6Ç }Z e~RJ "UU hjb ߫#4C؇.,1QKyD# e,pv Q_z.0lT?Ӂ,jl Jt} :1<[jdgO^2_\srhD\A c大HyPv0zӓ9 fS;G:OzTc<`Q8cd$1rBG><+Ouxŏܵ=;nA<o«{07q]wI܈Z4qBz9$B[DM*ԩ'ܜGcuAz Q  cG _Z`5GN⹷B+X& "5]_V[| 鹔Uu 0 7ކRιxIq.6(Cm P,L b߁`wj*BDO&X0b.{\y@;*gV[q22w:'LC@HabǾqQjʼn Ř=(5OKo79LZJ') Kkz(p׸ҋ/_Oʫ[5"|ޗW..7#(k;߷mW|%QC*$ 9,(k_<}3i2RrܳSnݨm MBXf7}Zʊ:mc O>Ɋ>P0SEVȱM3q[o yʹH~ᛘ3P^b>eb=." jeETP+(A(UdFIͮ8Sg1靐/l=_k~{j68ߖL]d0I{Qkș8raOꋽ<_j?ӷG_7ߐ?`đn4:¥{ G};߉;o~133sEkv(jjTccF7)GV]DyAjȼ'&jz16`đ2#s҃h"$䕷3<7.nbOE͑-o2V5Z =8nlb_v%DrC(1v s l%ơ&nj^ہ7 +"GAdqFEԟ+ 1~P IDATvÙ+ !;ΦiLZxO 9) fp@f?(>S< Բ2<>alI32RNFzQE,-L"XȐ1ť$5fP=?VO~c|?=oV-oy w_1(rDsh]lP.I8\~a7;FV_18cc>8v 7 /A2P88^u ]̗E󷧰qҁP0o+*:vZ6Mi~lW ,|fj(^#pEVB5ԠaQGC IGl(#Vu X.Kv l .!)ga*e1~NcüGJrr6*e+)DbWB gStC₋q$$ɠ̑$!l2d[Lh=̭%Dq ؅pB4[@ZdCUդJŬ\N!Z 11QxjלI {mamMa4c`үދV֛:3Mx{k??^?F4e0! X3`{G1[Pkj;2Ͻ46]/FiTQE6ɰT(pғqrmk]l6ȁD`MA^ ń,@/:f^qh@ WH2%@YIH&aM"̩//tfٰ"9;@SNrKV1ƁX?Y$3~#峯%TDBf%$NiF\.d^j1naexoM]Z܏WM)Nwߍ~sϳ~{~iXU[^|3j~<ᦁ™:7q2ՍmR"6Wgczp׼eDjH@bs8s!MjTk2bB _.,m࡛GNf |H,04 D'*\:^Phv/E˿x;>EQϻ$csW7a%qy.>0gu/بʴ_\fzEoy s#WQ5>4Bo/[p l+6G /noqQBP9ӤTQ qp2y②:#*!:qx`|B`Bbt-}㿁Zނ)TJ "(F 2" e8 JjrBBY(EF癳>qw7^ҾWMw~#D"y\i/!^q[(%,4g1؀h8z0ZvkKUxx$}BbaU^.p?6N]TdM{ aPb*(\Z1P]F1l&V(61.~=(D8QU(h.̣lB.lmo:-* x{$/E%@+ 19LfX[H  j @ĥTB8<Gy}j^:иdωHdl=,"ؙiFL8RKZ锛 ϊN{ V/˨UJ8~"^^ =q6q>쟭`aa ~s 5qX\e! 2ok+pBX-*zpϝF@C1`i}8z˭ ysçGP>C -+R~ ojb5pFs!*'0QgF / ii%eujK=?ǵ/d >"wi (]Ƞ,QǞH|Ec㩤GLJY^e%wJ^4 f#k>pq^+3k,Kd(Cٴ:;F汝QNI)^|pkBo}j Ȅ,U/æ=Bqzv zo|Z4mwpY {mWч03bQDy,eg> 66u̖t9̳= ݂Z5\= 2g>R!*T_Ɩeea:bG2a}/k,V!s`d98 &]r_G$u0a'dHN Iew+`GILq񇆘[92i97j [ Av0reCF~/c܋]1ۿC 7k 6Յc M]< Pba3P4 f1Mfnk>z@U_1nc{2ٵ:DPIBGl (!I DGmE7+0!4+#,E+Äșڬ$k2B\8zDjCZo ^d6iRxza*{D8U`bt#$Ŵ=Ƭ'Cڎ0?bfI2'.NLm)}N"{H)˚岸0# r}eaNVΩe+ {V0CηWq~u^/HګxKǞxIJd)K-Tda:u& }%Srq;&Q'Ub\tPQ3a8Es5j;nTUC[="rvH|AOus )r f̄I28̦ө8C'y>t{9N ̮ Oi܊y:,G~21Ů \*o\,G =G>|sa֢8VOG%ɱ,(ԸM:AlltFdsu f8%*`(Ի|ILVFgaY=3lHyim"KY^dRBN.Nzz$sŠL<˜ 1{,I ؈C*Iq'J2S~ffXQj|xi9-MˈRd^87'Ϟ=ٚ@MQeA$@}$˥k_$]Ea t>IW-(5A -7#*ƫ;wu kۿm"|$%&Nmkl86lװx5b"B=<6]9`^jbN (P^p'^a: Rnhv@O}>d&mqN|2s]>]&fDoIuS|&xwߤ,1HaJr{Δ˲+d7 *HeÄ"%m)I=NֲɴsvsK^ 0|/l-[DY`)mFCPPdHB8n3$5*\ EzPBb08ڬ`QRRnY@+H,7PIXj0K8xs(Es/>T5abW ҬbkZGt V:o8Є Nd QoҲi($TfOK05"0ʲr6<^Gz"DH4(I(qobɊ=IS-_n%xT=<1y"DqH.M%%Yړcm$1Ů:Y3r͌]8QMaD*z32Kɼ"&aӅΞb\(wH'/nk7]lqmN$`ޠ96[JSI[+'L++% s\=s(chx1tKFEr?q5GƉmEfpx2 .#e`LX( t癿O2&cjM4q8OҿL`jLAkv^b"H)o/`_̦nS] iPSV(E769+:|(_.u%+ MO1E/{BO:7P,ɳf,B%-+8v$Ǡ jD$E-=0Y{kЂ!j /ظ:<7ɍ0jE`)&i8q R D ZE(#~պ`>P)cmm(r*M޶'W6ҲQ%ŁB }"CP"U'4Th2g`ɤf bt="2% ̱qЌfrgf>LdENW:8IUAJܖ Mi E9o(Sw/N~R(^ȄGxjgT〬Hi"I olc/(Xt[+S2W9kN❦x3&Sw0ue@g7|ً5L`YVP"J%>MN Ξ &;%[Axnĉ 0DeCBh 0S|v mĪA)Uyg:lZ՜s"")b@QqbS2q\*VXVh֛\3矄\4CBx.AA@:[ ЅDrA͂zGebSaL\ ;`i4)" Dk $VF F$#TB+]O&p3@vM,x,ub[NTweSEl1Q/QJyLaʦȃ"bNWfTJ§ZNwK6|"KCغcx>/Ocu-hyYLadY/0[=w` X IDATF K \Պb2ť2WsؿEpal;8q,.&Pub1G#4;ӏ=ĻeU@I!.LMBЭjG1r4M ˂ `{.,s׳22|YՒ$>0d.JΌ|3dC`Sߕ,b<)6X1` yW&02@xțip*Dq<7">v9 ` ߾Ǟz*މOVu37x1|"28A(@']zCV1 :kJ%l3cw|1l /Ănr"M2X@ "b:HLex>H %\?8t`K?.e70Q^'2ϐglmbh:WLwHbAK}r#6-Rf%$ L&Qr#d5´xlF)٤kry`kK9q'02[ ߍ?! O_6;ϣA->aؔ:s"-q]j}_׸p^$=Mۅ~Hqr δ ډk/|qp\{=nz+k 4D"avwῂ(0D s 9>>Gqz0"z A}50+] nO'(U%6-,%T˳6fYBZBYГXl?4{0- eǙe :˵{ȖH}L&NSl+xGLf@{ &Di›0qbl~`Me`I:Q%{q6_Yl#ۧ~ȃ'e? ǨyJh{c8|xn`ŝ~t!>/o8=8w]xހ{jY^"|j$8^W %"!5A] M=hPV71j] VHv!2D4g8'Vҹ˪67:*"Tn[qCc|,`P 6Q2ɦyj^j3cpMLi<@&U kGIeu{lHJlX#䤸hK\q ǧָ<β¼J iBSlH]St`3D񉟺8/>+߇|RG_.$Gwq/o|#~u]>>qnkQa^AZ+T3(6 MD h_[41mɳg Fj3e$5i b@l<[ B`Vo fgov1r m3ruu)6VLC\CgO>X~a0"!N{#!{D#')c d-R9 mdP0cɦ\&8yr"r9; )7Q_7_rA|CJߕ>]C?OGqs} >?みG亽R]yx_mWtTJONh&mSk4ƿ~PUq ή]V'Noa0l>1_us>Caaq/:fE%CADT Z|T .-r)wMTXMث4;>gq#CQԹ/hv* 4-8IѠ*1tFGe&XL%m` gׂe\fۖF'b  Qj0:1Jrt釩kbqj8TL6$qjI1OfA?</1 wϽʗCv6Gqu+O>su/~Aӿw;7WKY9>l=??GA`EB 󮏍vC:I?QtkU(J%(!`8q,Ea0 CV8=DٜX좨۳l*ÜI&kzb`k#(s9[;p1× d$2:yGV >ox(555RmVa%QB W٤?yL v "Y@ M< =ȃ¹mD@.3xSJL\4!´g+LwuqC衷ϾcUbWD%t?^]) #=e=oy[wAn@\A^s MyiоeVD4p貂=f8| mdMQ*C5T%}Q`C%2F&<!0 9+k$qWUA`e`k']J1PuJ< VE܏Ld<yX-d`;U. s"eI+dc,&2s<%H2YL%E:R;PU؁ޠǛ?x 8/ SÍ4%oP8<^Wⳟ,ի@ok*hV/gc afA|> -𲗾WV/Z3"k{.l3J|Nm +L'loa` P *t_ !AT+:.zL&|[o 3sB; bE#p/CAebhxm9NG&f ҶK=r YJ~s`#sk4dt=+ɞ ܤc<6|lz@BB  Uz E" 4Q" ҫ*HUt- MٙBOyN9sWb:+rcXO_dV1a<)0H֪[\tY$HxHn.*Lf둙B7ձ,a#DKwՌ."!xZ5/M+==w('R[>Q5]G]Bo'IK,X;wiR4؁.*"6k*#4O.‚HMgKH'ɹ{D k,~~܌UJ~r 3pu5ⷷ0Eh@lr cns/YPSHP0onBCrM [P&qu#'4W>CJ 8HOFJE&8g)XpupA./wdOW2ՙ1 j-+)$&ƫb!{m5Y˕bCU<3[}|q˙!@Kdg3JU3)++05sX4Xz6IJ p=l=}<<4U"]IlneLwhyNY4vMMo28)v{ߓxZ;qB*6a,f͇D+.$8M S/"I*.ncK-l#_}@98G^ ~޸J[SPP*(&qqq2PW 7ap(hCmƭ0aD6h„ ` &LdI&L0 &10aD6h„ ` &Ld:sw^Lfֿ )10aD6h„ ` &LdI&L0 &10aD6h„ tĘ+lU烡 '@R9}}!T=:'geI<&o#X6 +~Ɇ+V^Eg!lO Y(<\~HVn`K]ce]ϒ*B]=sKWQ1C`c,n۳8j9lĶ'3H81 Ыt͒zqKh `MK8tiS[Bpm%-{ujW|QڃW GA! );3·f...b I"8_+k$x`wBP=F΋e`Lj!ZKVL1:$sl=ߙY c 7ʿPe-Cy gi IBMr:1pWrS/6 o1pSg 6w⹞iɩ%Ojfq8Ck0)@nv|&t\7mʷp?٫s}bRkFs#w´f qR(Pvs Vv~xclf^SkS{ੵ|elwdپoh猘|=x(Œڰ{vbζ)oUʿ NANB( sDcQU |`:'(},*C^RcawL{NQ~Jya~sxmyq %o$;jכi4 ΦXV.,AE]1n7/ze$ky*FF"AERBQ&OaM.(y{3wEҥr|,Kpp:+z@Bob 4"~껊r|BW^o|7%NXfq_i-AY C~= + p[iXqK"tiu @jobv3T'*c` ďgZc䇤\Aqqdn8 .Gy,i}mdhh}~[0vP-LOfzV$v{h'b A6{> #j sl`o(ވñKO,G)1^x0^O6(XzA't}Ըqz3Bsn9Ogf4 RTIƾTnfAp|=ς _MnȽQx#cd5}_޾rp:/nOl[ 6..(1\8}0*Jo=םkpNQZ~ Rm f6lX 2VXgO\3@rރe+P{+ĊE ?d.۫IquE"0d Bbz#8}9ի[7)Z0"7Vu9_\A/9w^yBnϜY)MjێNN%69#Jr[A5TvQ\QKœ|uj/5|Ysrf4u Xenf uEqge߽)q K|=j;sÞz~$ $I0-#Wy\)ҟB⼶okʫ$qwT?C_PI1D簭_BZtgo%}Po{c?$1-2 _H͛n);[4(ŋx Ze$+Es~"ƨB|Xu)J)枅Ex7KlbL %@P8dއR!0b?P.Aՠw=H`Aae\=|&~;F#_C;wFD;K6pk(vB!juiI%k;Q6˹.R3 ϰe6r[p[tmfE|7Ua؟k@2QAbdMG*E,P8j߂+P;>@&6ĆN |oWHUh3.a3I Eo`gycBe!hګ13d4VnKX0EX4[E+c+RJݞzB?b1blnxyeC@rzU[~}+l3H8 1R%{ZWh㘴3%X{Lb4a€L)t:I2X1q.]GwV*ѿ.QܖYk/1p~l>[~,[gE֌Zs~.xx<ݧĘ}<+lΓ@Ϟ }|(/dXIIN")1Ĥ\E\)\zq=ӷҩ{-(KY?n&7soL~ȉ-SkS{RZ2;l74sF^9swm093q卑9@[{q~__| =%?x "REUfrʐMG=j#'VbV=cJ4%„CϨ[nI'[85pvy(_`;e^ƅ,#+7]DU',f|¸2*S`M^*U/Wbsmb9aũW?L~t&qa ˷ǒX GMrtT`=Gܕ6{?zZ nqc9ʍV.1 .4IHP\N "UߦK|(q0UU%d .l?Qr&h.9'Aa`2K/"Ze#B)70+ЃDl"ٶۃFkccL<NhcpGڡiC7cц-fNLT:kExMjH9r=Myn*KeMXKJIW6^Yp2 Nƣ~~~5'}cO"L |PrIb݉8N"W(%LƶhRl'Qz"Meė_!~q{gK2XqqA!܀QYFZQ\wҲKTh5m[P5lQ6aL)\T2,4}s:?1XWyg>@iaE6YBrm'9Sd^rCvrb"#W҄Zt*mPU.-{\DZ_!쉌$R\:m)T#{|wX~R-w6/ߠ)5>DO6ƕm(TUdest;-fѧZ p K╽Y4ZKciק$=&Ϣ͜\9?x׳٩%]̪>eqOO#UCbE(\m~sWhnldr \l,ۛ _=w=c-3W.B>s|DIi3.Ck$pv\LW8d,߿DQ$ \f**w<fԖVƅ=[je,>O0mdmo$FEqKVںyI1n񽳕I3QΠUF)Q#bFDE81^s.Sti0[]9;Wdfgjyk;Vfmn)2^:)9}e 鍇3" ?`e ߳햴؉h9ڠ?rZ,',g ,ޛBgy良+oUgҸ 8˷ߥyzU7A$R="DD2qQp XD6Iĸ܃Lk"h5k;_V g5LNΝ(V.R3 ϰe6r[p[tmfN0l;Ve"xDDZw\eM>Ľe;e)CF˧\1{ șz⪲kpA½<)X<ݳ-/AUʹ)քt'29[P"dhk_=E$oa|Xr-#JoW=.xV 'a;~%^<=u?k \ rI#n,7y .el lI|<ퟋD{aۏfCv2z&g¸T?ȹD݄dKI@Ɋi&}?Ϊ Z/93QgpXyّ4g_V$绨cqWmB}s.( \{[2Qj&iv{"f{ P 'Xgh4uãv.BDRӫ'w^>~$*5`qvi2 G1}]9ZX)#d'JFwjWU5ě]3 $f3ogꀡi9s٥Ep* '( \/"Kğwc{аs규K~ xw?? ;\M2% k4EzS3]:]F`).F#v S9wG2 !{ρ>]èj.=|r!{[sB8. ق1OW7N;։4{4ѩk?GҪ倀rܺ;&f̫G(v/3,| ^|Չhԫ->sޚ9y]7s}y]<[543eRn]t־G+nH:3?Uw6iP |w'o8&fGPrЄ ovbnD8шcFZ1WC \;gIDmZ94 CO! zZGŇ\DA`pde+їP>.t 'gMcMLoT2GmDwa/pH}T20nL$< ҹy ;Km2v> ;{n+hD6^d?r%k9+3l]'3gyO ׏OȌo$[CLL 7.g\Ϲ8}v_hͨ5WIQ+%?%{`rfӕ N/s36&k0Rw)o9us¼OFx(DFb~rzkzt_#V[^(়yZf AO7jdai1/#3 9%1j/j5UNy9ӯJx޺eC r{p}f/m@~!M`2vFҶHkwfg %yJڄP<+cXv8ygVL1:[:kwio8JUh.?m~믇R X&msrk.'e{< J7~?pD\K Q"S$sbqfV#jlxߥ ne۝9d5 EY$Uu6PN$\1Oluo\9TܓR>/35T]]?fW#,{{f3߿ Fydՙn2dA޼U@f^ƛEJ1l_8ޜOql8ynfp)N|H9/Gn{ d]N$FVcѺnJ:ZYw3}`wELb[:)Gq}JUO/h#S"iB`zW|sॾLOIh`k_0c'#}C&3>Kp<yпDrjfcQǁ~g)kSkS{Q)ު/m]5sF^}mSe|bڍS 7onp{4\'D7Ee{t?ͯy(y4>@[{q~'Zr@IZqn ^0X=jw}χ%790}2h*sc\bOMx/"v!F5X!oP&&zS%8pCS8l|ćΕݩDs=bcȈ/崵TPK4\ 'KeBi9;)0J9kj̨Oʴfze fl=s$gO2Xi3 )H~_-DANxﻻTS{Q*oO}MҤ ߲0G)tY9awwݽ91-h_7ԡ2l[u;7S%N]9o,ci+rzqqv}a`t.^tBx:Fldx.,AE]1n57/<VG+?A|VA#(jz=ͱJ%][[ Ga⟅_?Eҋ9KFe2.SKiar"磸/ibS҉vg|UBSTxLf]$T /؈qJ. *.ۭH(O~'V9Om|,?GXyP ˇcMB=27`Vp<d뱆ڹ"%_aLJDuoJ\ Uɤ޺X+I\ qƚ7Oו\Dsat#Sԩ3Yds6vPk{GӸJjf5٦뛡G FKx'~<$?#so)^v=eeHWקfT2/ktb8Nb3rx}%=ypJxșWI!U==R%qhR!g A.OՊ1W/QN!69#Jr[A5TvQ\QKœ|uj/5@KoMB&V-cYv]zkl+|uwQ ?q_SF%{y_j>JG] MT{t݇g!={$$Bbul"vS06ΧcP]=7ʭ} Tzgb I܋a9;#7>y;< B7(1=Yb/{6_2w7fC#"É%+ dmݼٴ!7ʤG(^Cg*#\ X\A ^/Y\+ڀ?!TTRo\k2+D?3w?.ㅭmzoFUppoZS`Dn꿊y IDATNÍTys")D^r<&l=*;܈O9hS,h=η'33xlؾ ɖ2eJβzh2m\q4/~6+VKjt2wo9իg9yߧԝGJj<ե%fvwD,fJ$.?Öysi_loѵ#thS| K4 _2b*7I>$|&WObҲ]gNͬ5r2rt.KxSb<WH{22Τ*آsVZ/Ur|*U,ImVѣL xwYk*q󗁼>a?ۧT[]ƿ˸!3'ĭD?p)p2y#9r{h]) 4 w3~0kǼHĠ:398+ƥrvAݍ%r>.#-;7op'ݗ%+Rٛp:6/`h 4oDcVi-ۍξ]5]Ӥ,~XavF<|MW_gYL"JđCh}2{pI$FZ=ʰ{L ywF*ԗr~."ȟhU] t`˾Fx<?fϵ!TR#r>6:Vm$W^4j}Ы$GLvjLzLhS M8{$%cAX/_~.Fq>l#ެ_@q~j0mc==OݞƏ <_,Lj_4Qi;  ,WOoBKϏ~_ :;-m1#?/ װ o1E[2iTڅ?f Sxt~8Csz1yu(K*Scn?bUa|^iT9(OUi͐2h/RN/aj$OB7{t%ors{S9=K|;顼& h֩d jf'Ye+Hu}Ke$-=6HJtatnY!FzN#t$I'I-qM-z,eh DdUz)6~AFy޲Fʽ4┵BNEFĂ CdYtuR[$AC‘ {H`z7"F+DG3Z\?gn` bgRʬ|1MFwcZf3Y2݉V),}u$[S!:JohXCv&X&fRM'L^k!SC: Hem[LFV;&/hddCNJ"hM# &ĠunA&]zQE X4MT:B43:K(/INV%S4$Q}pP\gQ Mﰂ.57T#*j5.t-ڴ];q$dvbzIʅL8m0ɔ,21<cC>h=eW"} *Kd*h 8Q$* S uPeLYk-NdcYXz6qD`sx67K~ ~FVP o)j* *RՎhU)HA@Q]h!jԾld]%C R$Ѯ%DbhKM9[ D" sUZTNhPAF ˮ U'sU>˸|hM%uޏx.]cU$S.(J,GkSuE^FGd}郐 j$()e4A;';̦ɜ/nM[ ZG˳ ETlt%7\PnD븂O^B輥t,`^2QIb©&IY,O!GkІ0LzTU$L]5H2*NhJ|-K0Tuަu4$ fII#1]J4L+k/٥C􇱋.Z$ = )NBp^}Ӭ:E n/S-5 }U"q :m6-Sz_vYJet Q%YR+QAc%Sv,jՖ5SF.餪zZLh/J8)]Qlk4ǒ! nP)R]T!TTm6Ȃ]]1ɚQO'1}\d5C:wXpg_wX<YtnPZ' $oOwQ-wa-uK%ݺ8|Ç{ڔ5,|3E疴#СR " .laβvwv)Mbtv8UȒ>AKw`(Z%W͑aT/:JICGdG^q=HFMlH*qYjtiRv45XR;r{G9öK-钑#$<@!8UK'!fMvU0"t',9PKWQ=F=mP h=+yunD6"*1WK:ie5Da=!WkYզZHKcSVto_o76˾#t|NK/WPD>,Oqu!7h]7B]M EIS$&ȒI%Y4gEʚg\ /vy;u(kzv-vIS4b El& ڽ%A0̓F̥ӂղJiӤ8#nQ?S"uˆ%N9^4챒6x1/Z7*h^s{xC/]ES-Ow|N :;)kXmKxr3Tm$EKQw "og%FB26bv\_S8u#gR3rEFE"L' o?{81bҔƪC[ WU;e[,]]vH0FǓmMPmiYWѣ}%#4F;veC 3 p xqQtk#Ña*8V"aYl{#NCR3t-#,D$ ߃E"É k eQ+&iS恖8,m< 22veRu=j{*^kM6,0{PnJѽ0X'$Fأ\ -rY/ޟ_Q潩99a./vM7ADt' {: )*S|1c,D:,*A#|"mt'a}u'g;+1-D|,0C62"e]* DIflN,E(TYQҡM+Ym` Y%Bݞ(ˆT+95u0ʡ1)]peD{l =@)-JvB$AUeuA%yc@4 Q 4HD+Z^jut>hڝne멥 iSE7O5 PaiQQ BVʴG0B;aD}_R:a FRb34b haAhQ%,ZiyOGufIth6LC5?Ewd!a1)u0g$VACs4r҈âIT@dЬ`ʺ$m8NΨsvQEj%n  ]b#6Ez-zԀ1-QyCtg8DYhϒQYU3(ϨQ t cd,!d !'s#q΋3ѱ8QYN"ycfxfGfF}t2MJ6]zhLL3U IIMIݿB6n_S34P R8Ҫc{7UiS~Z,Q:h'[}jצ=h&) Ru_{WbYg欱?Pl"*V6Rl0`#ZA!B EcgF̼`uw#w33XWwx,)seJwlHA4[gX6~j!eK>Qt6 }; lui>ѩ~h@ Dy Q+v*x9_~_~)~+}+_Gxo_|ߔ?)엿$z D^W|o}Z}y @KJe5ϊ_2"0XŠJYb&x& 'buOd@JOjS1o#H)퓚}wxQ^ղe!޼!,_AJwJ(ԨbXނgf*2I?̀I9]pW 49h~(D7{>1#n)0y"٥AK*4[k wwIP3o|Py'r_!=9ɳSlw측ZSbͧz@P((jۅ%g.zpWn-),)} 6Ip^ J͕Nmŝ; 1n 3gxæ}GJ#L9r9_CD^5 < =Ҿ L?ymi38?xN~vB_\y|Q5PBQpsh&2R|*&N ;n)H= ? =~3yDJ,8(%3Uuõ'QQ; sDCgxON6wK}A T4|& w3ِHx@VqVz*8ޟvs %v9IZۃ?/t>YQcH5P~Et$ Nw측0"ibNJ @͌QIJ^tzg}&ZP" 3:c .:Q]* {V͛Ú'.vk2(r-MWR J`Kn,(֠*Fsd!QRI=p 5rn:S෷]O9-ČuwT *-b@5?\”(+~M T ӪGBlp!MV^ԅ6SM%˴wxg98dJXdu.F l6M5$)-g i5UF?Hu"$$*$l. ,0ާ#$aZVc?V4AcCx5xa'+6:.Kb{WfIDAT` Do PXE#3@(6^_)C0<ɚSyurlIGH98n Fdf9Jqm7say@gd5X)E *.c%.ϬA${pgY-HJh/{dr%  TY.r5TBVCBkYFC_'cdtL ¥Z`pZ_U~reXE \u&yíT(l uiqF+z ɛspi]gsWo?kY#ںE -аBF+ܐ}qU3On ћZ^D]2鳚+~ǎLwڭ[=rIv>ϡj2~A0YY`S/PinXTTtԞx*.r ee{Јx7f@jϜ.Ѐ˶<ȣ`oktTO2Q/X12U܁-M#S[d)gCkx/T Uqsc;vT8U1%X\6SVI'.ZiZLDȍ~,hSgA?ykf]qAEW`!Yʼ-j-ճe&$C/{/Ci $4VE:DVvԙ?.{uN tvk*bWYa~ ʤܨ@-09o{pWcZ \GCZ%F}Y'JH}I%*wTD 0gbi0KkɏH&ćh!g&ig1"ٲ*,^tqNΝ*HV h/A^$E 5̯߫+hw Q[c #wqۮ5-L %]30tR"BLմ'xoO L}E~;n*+Vdj#*i48LdRQ*Vqp7TMצ7lk-8 ^<>? =iW%r;vرcǎ;vرcǎ;vرcǎsȿLOIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/frame.png000077500000000000000000003225041473342170300261160ustar00rootroot00000000000000PNG  IHDRFO0} IDATx eWU.9W}SJ IK$bP"I `xxaK}3ȻЈH+ހ*CBeHSIN^c̵>UЈ# ;>Y{1uw:lV]_z,Rt\%Pl aW[({ k+U5NAp9:-Dm+~gV;D.D`nj KeCǘ-)򬄆F T]id5@WNNo3(,}d<_(kvx{  h\(rh֢2 &>J9(`wTmsXla X^GcD:)9F|ުR:y?ۺkcPU_a`m"0 ,}F'vz@a4uUҿVS>J#B_ 8}3(KLUYJe{NQ[ ;oy۸_T0!*c,V+u jOOF:aDN* 4 =VXl5*kE a!\N#Abu QЖO[1|֖/cvʊYDPPK$p_L2C8E AjTі%z8 AP:A OKacq@Q[^!LB<)}QYL&I >z9GU*LsxnoUE`YE̮Y`4' I+UTXUqZX< %Ʌ~g= pk{meaB @G1 `4e0&a $Fgk5Rs0F! ډAIw# K!vg9+JQGYk聖nQf5T]AUWWh 5L``?bPE:FVPD6 L Ĕz"`Z8@X ]k*BBE E,rdqf)jg>0ˢBV s]366lUD9|0D3FZt^#m |[ #l-m[U ,=S$I k.a !耸 O@ C,Mxk9yF!kdLH Fֈ.tؠl,ȳyU Bmd,m 1A%'*ŅJ +L20Ce3C! gVF4ZTA$as E^f|(KuU3ʫ EQ1(i͖&%BQ X ic heH6i9r,06,c#Qkyu&q6;L†!}߶q{mUSJ֨eVE';!s&b5: N(ma6I'Ƈ{PaO3 1$dq뿤5vX;#1,7y$tBB@" m"pkYUg V F A ցv| &FL`)`,_HBۆte5UܓD4Fy@0qy,PT%*ʢ|rr΀vSNɏUyXgjVEay0ŲФפ+pF~{5o/9};_<IS+lZ+cpVUȖQa* <0nTit]YBX8 ),S"`Pm$y%a7WV RpY+fA53YZ*à]tJV{PUaj9 6ƒ"Np7 tgҭɯ+MM! [l͡wHIŇ b򌊟[]TeGch.]A fp$7v1{M> }߶GB7XSU 60n-tu9BJS8t" ~*ᢆ4r I !2S +,1*T%VbR3 ^:N2O,WqzIrVXa\T5â/\#SNJX3 &x98!R!TmDį 8tfIKQ*n5/)82SG!43_GLaES̙j&nxm6"%}q@QR%>+V.Cl CYP-gr*„p経!ppOZ%I~Y" B =$U!3G#K^bT 4 #S(MO0;$2TsIh&D %?M0R PIu0D ZVX 7 ܃Pr!M>=jG5$U)`a Ƴx<!,qRПYǒ$uN11@'MM遖](&lJ9c%:Zj ;t+ jO 8' 6f08e5a,yjD 5oг,az zySnDe^}zpݔčmQ"E%eG18 z`㐇XGj+xfنdUI,tQI$ s$eaQN:7վL@W,nb #'%1L;Wn6k;Ƴ۟ݬǣZI-46H,~vdFe<:5,ԼgnS/mވ`](pk6N 0M) 9F)@..XIa G1FŔNg$CfWZ6c^[l8 kbjt`;g$16a%*iT^qLߏ ['mlvC%"ܱEÆtKPlSKuHz*n=#!àR+>qO e5fl @& ABu!Te*+T1d uVZdAmHNITMTi-kEH‘d KZBQ+L( `ˀ,!ZF-BZWZ%WXsqwNX&6lDFF I?\ ,y)br W;rqh@Io8u .ʍ{LDĞj+j!'EMQeVH)F/ױ>[U*c#' 62f5,rj&&<}%ڋ *pB|>v`aKYV:Zq`{rᤋ!Z6q{m].2'> ]) xR}/\k K1\ ijʎ9q>kHn`gC191&@xP8V^*C9*\: 8Urt)TIXdci 1A1C6_&S QԮ}@v`TMP+”8l5h/!}Sw3]"lArfM0\ v6[pi XNC,1Z }~ Ks=,8aZI1থe>*?F[Uރ5)41v%tm)`o~gpʱF!ڟ-W߉ ^"ۿOYn/O>(g?7qs㿯}X?r/ʬd.Y9ϳyF'Ne%=},3!%^iބEB4*K竳F:|7Ko7(I bچa2` 0_(>$R!V%u :R#5y J'i9D tAla|[ h/d  a_=;NmNTo"W˭"FFs̖A+ ;=Ya|uHz_ Wa#JVGh4"-Z{3XҶ]X[*>~|oǗF}wUt2NMǫv1zǷ{_x폡s̷,0>?y@o_+/ģ~xoy-'`[='=*S5>WFZAKa_E5vu:H#uJ߲H#C(R+a$DV HkuPh zZºҟ6Cf #NB^ <06f Woz `N`K0i,Yحfn +`B̴cO[Tͦ S`$iK!IMEaV8a}H#͚tnc-E,+tZ1};;عBa^BIXC9ِ:qV0oE!wSV,3ѹO}Q* [?>|zg0^Ṕ5x+?zޭnzPHܹx3SDF +Á.ބ 6vxv! +;L9-#3<3qf2}7pyU7⸘Kp.|O_Lq{<=8ox},K_]iC_ 7[~Bw=~kA- =Ja;_lN7Fo niIN+*YpvB0!;H\e$ΘB 4Z. [ň0xBT Ҥ'"fәNl.$&1 Op;l!N<Y64 NךPED+" |a,ǚ!Sl C#a] Y%VBkI'#,)"kh gj%C8hą{]NNְhn6(tnt2Q *CR8EE%߆4;?J\W/ƙ\N\w~kx;.ycJ|}[~ة%gލ+?<'9ha|~3pޛS/;_8Ÿ Ko%$Ibj!: SJ_4I`nGŅQ[PC3YBχӡBHSW\V6b*vՐ6JtUҥ`SaDMs~v4aq8@o0@tLîCmB.(ohv* zоAJ[Y>[1* Mz&T-sŻxؿٖ)>gpƳz*ph =fF^1‡[ފS3!|77><?ufXZډ(Lm ѱ(;ۘp^Uc DXpd@~uꀫT(XQӵ Cz &#TȐ1ڧe^ [_5iN=vvd(%IY1=-h~> AhF2*~Cؒ;6.QcGz1Cv{AJ1HJ{9&h9BiDS]DϤV޲GHp1SXcl X82Z$"~Ks/R8mw;z]EH&5cB!xЛv 'ҩMpVlp_#3o Yy/&~O[o } U ˧< M8y0.~y.gww?oz Vwo}9~ȩxXB3:n_x^S_nbY"QtPݞР y M[Y dc/Xf"wߡd]K~M[G00js1sŠްÁG'#1܄~-osL}yłlgYrM̡L%䦓6 Np e|:lhZzcJv A䷙16H^'#Qnz)E6wƶb+iic' 6infI.Դe,Tb)Bnc#:PDm`#&HVnU{w`7x}z/lN~>_..Cz6sK1|#_/ \U= gpo/8_Na#ٯNs$.E5uw^\ nuY{@0>bZa^"gF6ec B`k:QI@5 ? IDATƒt5FBKgE5.7Z\4FZY5% ĩ3C1J Q^0Td UPIxm ;&;1?܋uZ6fx uqӼ&Iz\tk*3  F,X;2s_ax OB]He=&8WIQ"'Q S{})P2aaaPj'H] x7 b\ttȡЅ)9/ W?~z~/q μ쓸2y#^s߰ח!Sqh W8/9_»~3g~'= \R~o7᪟k_qOm/bQp$6Z:qR IJ>A*)0^^aME4sWUEMZ#ELJMcC轭׋g2$1atf Qp\yִJ62NLUr@Ngv< s˻P^ɘs@X{1 鷶 84Fp95w090h'WO[6[ x9--Z6~'tIeiannfs=tr,dH)Jic0lqFlOC"> *(skߖ 7Ue0WH'C:!FIŴ m8HG^NzlELAdXHQCLrXjz4WśZr%wg)vr*v!V[P^EUl/ΉW7:G37hfhOiq"oqERT1>_ٌ,]8n93GB",Xbre3$Όrȶ7J0C?)]B)9$QpnkYÕg {;M˕ߌO7/8 K 9Sm9!X]].PhೱwNp9ŗ~Q^؎#[܎_"0X݋j 6 etZ, 032? P") RbŒ35@{YI bszƒ?0[YB2NيNdes+l:`5瑔$&1Xe9>n10bJ9dAUTr"u"IT^ Pp7LX@bMiVi4_X'*aFn^* cy-aE9V}3`v6.3W*ޟ\i AS~;Wl Ƞ$܁D1Y$wp,Ngn9a94 @ZD\;m,  {mt-NaSYt)r|s.U.fAsQ~޴Ɖex %:@H9r>x-Tw5x/ N}_.,:doŇpm4Ɵ*~y< ']j^y\hylDx--:Q NMF>. wmmw-n+]gYf @h& 7VW ûl^bJ@Ф) 8@D퀜0ZV p'-:;v`8dϹa[-T|SQDcgъ=5d|3xK0ݨ.0@'s㮟J:pXVJK"_ 9UD-c~Ks}zthm(29'&20xlR(3[4H_<59 0w=/R䝘˯5H{a>WG?gqT>[~rW^v5> y+=x/}x;^7N\gv=[dHF͖{CrV)ڑ\YUaj ̞n3@Ibl,!iL^O iKio0!31;~ ;F3hčNɆ40 Ake24J:m,,®}}X\>^ '^v.8"evѫ y @S5>pS@[Z 6bt;- {JI }* ~#72f|"`can!] 礊$gHQ:A^`TzlqT2+KhsrWyE1<OX;]h5]@<ũkt`i^,M Ĺ};~'c!Zxci[ũ?<^_2<.P->iŇ? /xχOxPT=|G?]?z!Z>bI\c:Qv|,#~^RY0RBy%i'*NÒIZI["5$Ix>bE@r"m!f %"cVe>1 CY(=_`ǮϳڪIM(cR$!PEZ}y>^C57V^~6Ҥ)m#BEHtd4,HXSЖ>|)fY:XHC,:w8oSGt˱F 4EZzk+0[H# +qN _MN! ;G8g:x ~eOW]ZHVPnX\sǃG5nsՕu%lBgBV,蘙i?OգY &aJl4Q1p00F"o J*KU*Vu;#b x8l"+nsKK 3N^dcf,vPi?J@BPi KrT`[6,M*LJ;?*G!|i [cȆec>jZV~AaYj7 4!ݐAI'3](Q9y)ݱ>phmT<3iEQ iۓ8Pzmi׽ k+-g%s)2LbP(WXeCB&Q aF=R)ʷ9{'F .j\68rRoj|y[Cv  c=m@p&sdy MVrԉXD;:)V):q[eNG(;1?)zFv-62M3H:G(hd8͈})}Z%CG&B+yfO wq֕\,&øpxTsPekdƘ2OBQеȘY2ف,B %d6J  65 7v2$#P!ݒ"ADf 9RWe1Kbe1HR$)XY+U-BIF!A-e([?E$l}J[ky@'Pȭ&\6ps]i~<BuE$VRCZxf^F2"1DVRQ&NMZ )ܑWlVL{ЖY3(M<8A+6hw켭|۟z }8>2ɰ:0dE!fbxx,eU3fDO(4.Ih fC2054IK4&4R]Nh>JEQ5Xl\B,kȗ:;JD] CqXkI(Q~1xT2р9;S^d24F}fzz8AF T&:-͑Z)y25aPh$L!JX-& (!OfdK>٨vkz͊F+-9_v9 Y@ႧU 2, >JZ?PQD?yd=EP5I"涊Q^6T;&s%6@2LwEgmV!m~iܾA̚#ۈ|e)N1P!6P*{pϷ0FBnO [\ؚ<`FMLiNI^UjT2,>nm*vd-ZE+E^M6F^u+D+ٵ>ȑ!~yr4F>bdKXҋh"tPvhU% - . ["!<8XDž#F&FZY1ŝ4M(eL՝~p:zjInjXT2D '@Ta^8DżNi! Q8 *mg:ԂIZ[O ?2!R <8"b,t`ؼ&GҁAǶf*Eo>|:0Ɂh2_ E\)dC[NX ;G']Z1u=ኻn|GC.0򕾛}XcE6BT#YP Mf_Vl1mR%d`jٜ+Z7꼨Yʹik!܆:Rnv:WgcĻу j(m+6<2.(`Ƽ)0jv JK( s[4޿NV)d "2JzMr&$MnŁLt"4(]QZ?_Eʚcq{m*9DQn D\T;ͧ)V,e54vZLj< MnF iy&Va1O1^_$1Y Kq{m%98`(#hfzF*< 71D[+acPB2nh琴j%G44VPc1s{'cLuyEPG9:S `8؍OÎ}\u+1LPL@5y?yIHҋ*́7Pt`?|7QLUB݄PVؐ,Vz9} ?|nsв$3TL!])G9ߜrV𕎻}Ҽf6I7 @+j2l1޵; DHn2 1yna2!) hF[<ck)oN\r-p˵x~I IDATT>䇟Eyq9G-m`985G%FE !u6;D/ [p2xivæ2dz:='C#C<]&(jБA;X;qZ>b~m*kk+2{q@4e^D]:d_F*d*Qк$bq~{a 00ؒF Ks0,,6z4|3hdZexYcy+IF%Q8M,CvZ^t\ed EgP,lί8 9-B %"Ūn-~Ud};0>/xd\W=bo^q-ñ bko#O{@ߌxW^G^3-ZkOģED;?>노EB]f;$֥ӜQ"%JFTDܴ‡uv] 5ҨHL ١bv-BjA kuA& ÅXZ܋;Oνhuz'yđ#`. ix';EY,!Z__őCFt4XU N>ZQ`Zb IwNa.qѣ6dKs y9&dذ*u\dvL5Km̩UV26L%""HF#izS,=( TeQ(-a~TţyR t2FLyѱíJ׷~/|+xECasIkW2T7 O}uKqvBۻq_[ܹx3SDF +ÁoJ%7mHy&Ias]A҆Ҿ4FʧNbW\ZvNSIz k3R;)2ZAfJh-ETggzϦ4ZbU"oj6|1܌nNT_mx.A>^]H N?g<0fˈ p/{<:kV.v/?;dѠ 7r|%e?TVExIO}Tx = F[ܐ @\1*e [*41$ÈgiJNBiF|jG)S [Ən.PegEl.l-jWzK߆4;?J\W/ƙst0x߉ίP~탸o%~91}LR\q˳pկ>;u$LY̻q?;#S8{e  7ϗ_+ ]3W>a^a쉄כP`Oޝ' ji@Pcu+GAv5bXYMp:]X>aN,X)6av;y\j`0`P4&a1Ԣh؟QM&U%{b-9D5v܃e,:;v"Ԋ rc}t3[db9Dh#ۊU2z;`s,0嘵& ~tεȺ(̟.-,q2ίb3Է܅rnjr_?9[o D-@,4Eʫ>rݒC~?xcnn֗㷏%7{=N o),>Ixk|<5> U;/0|гa C9IϦ)qZ yL&=~ALv#~7sN1>);7  1)ɭ4Sv)ZKzqNJ7o1tv|]x]h} ./cmޗcG^%,?'=opsOC\[K?g=9x~?Pѩx՟·8[)zngp 9w݈q/܄Z`tФ? ZcX:pe@&u6v8;AX?QeV !Lpl*ބ[s}.9'=ƚ67ZdvC]qa$r5antʦpnkwc\ O|gjd}]ģ &Gc΃"<(r;=)DH')dՖW54vQp dUH0Iy@.t{LIz 2oǏee!z٦6]#QyH"9/ W?~z~/78O5\{}^__Oš2\u/^Sx >xW_kuQ Nz H,oU?}!~o6;?w׿Oxk4?_}doVpzd<:^YGg8\Źc=tX; MS ];%k+(1^Ik!D|nlu|[-,h_<>i.Ĉ XqWd|zG0`i!{}'iFոGz6k؀P(o?ُrHV$iN&cQ>}ˌءH3`2 eT6)&XO ? j>UŪ(9Ƹ:ax du9 Y?TcDž< /xbZC'^?qn٘uނU8ŋinaגϾ6^µW<'s".S Qn@91R,F;v%]^_F+VѽX'YLL3Z t x<;&nǸ㞻W%v/{1*m,d~b- brwq+K~Zf=Kx` DlJŗfs=(#myYOX] >)20N,gG1 k@1f~$\B%,q:1i )|(7 ͹ܜtoP::y,axo|wqoƧ&Pm9!X]]>(~p}'DxY8 :_^kO>_?wKRUu:8or`!DAAT@E]EKPbT@u]VEpuŌᯘ$N;T{sU{3-{:wul D'&c W+' *FZ1&J[&ki[ZQ:&ISVL/%S6v1_}KonXڛpmM %|W ߂g'c߫^WH|}xX4ef[#)\t?_}n< }B߼<z)SlX %LxHiQb$IV!0m/U^*ɟpMs)4|$oE2;QH8A_%OR TmӂM&ҊGHn!)dOZXEX5TmD$cdXZ1cfh!KKbaEsȉek ªvx8 :Hq틟 ny໱2-4~q5^u'מGaY2K gUavcGKQ]ι7=kp.9<]!,x;яg#c`w;߰W_p6^pqgƱr5*Ѣ9= Ab bLOa|b3S, vl h~Ĭ 6&bjx3d!bs`*`ILMN1,hhhSS15Pb04 O,]tjlYr*svh+G~aͦ[m37$Oj̐d&D#U,XK"VTuiل+.\uJ2E|bWzjlxa5ҥ845EKGȧȞ3yۧz!,\ V3@=qЩWM?g*C -SZ9>']R<'b/AP^=8շ?+᩻ؤ `OA^R K>7| =RG`~e⬏Ϲܲn7<H3FUp956 gxeRJTmܸc[xP(ńYhLnM Mxc[\=0 2}t:h J5E@WT'S|WlKݟތ9R<˗/'Z m+>]H~T6ϵҦJ4*m)dR-(R81M ɑT&FX!mzͤj[죑 S\"["B&ȜuE $I}ϵZGȞ!lʧxcÆ 8MV$uyGjE !p>`IݘD2:nbU)J2STʈ̽t:(@YEXxq%vY;ڙiI11`n>en`˖-2QTJe&OCZ ՞BcrâyUeULAtqf(IB9V: IBͱy4Z?AInb$~Δǧۼd81di'N)O(y1C"iƨ]b^^'H#%R(Y X*ny r?T9R[l1%=_Y\lN-ۡF*2T@J%赤eJ9=0DMWblQVQ`].eҋ^ؘnN19>#ci -o G0F۬-T 4oa%Hpeh-h$h"䧪8.8eFLo)PONL41=-WP># K֬*N}`JZ*/x4i K˜ a:'j5Q'r2lTd eR1 r%i-VlIL"1x;:Gjw=RP`0.Xj;/{1=>`r2ۄ-uqŊE`[睖`yhj ɊKZ,*hC TOv&U8Etb-go+F?),g~ϒV=#.4_xyGJOL1(aM2%PDh?^ތ֐ /8 ƑFf'EzIe 3 Zݚj&qhnKH[!m8ٽҋn WĀAIF+6d]1.H Dx{ADF!I Dsj%ˇjWR1FQTЇ dli6l\Ǿ3șbt­tdLi 3PP_+/.+wD\ a^ KO!<; ~@τlڡ*L3MVoU 4>+cFDs2tx 9w験z&vZjӆ:Q \+T{]Ԭ)=U4'n4A94Г``G?{ĝkIX1&6 J$jpIc=U Q_R~Vf`*Lm^167G9M6Z0_捣1kn˖aX< J5abH J,isXRE*?YcI[jTt_gO@Ԇ2+E3^x}K&IpSh^W:jb'HI91W~`h獒I4f{8a_BNbzG|[-1p"Qhx>-24B*!K*Z*Amns6Mc0ajn\Jyn56 vvC57ưrepR+ `!| .\0T)ٺ0,0}vjGT( f&bf#ks UΝhyIzzh+ fwtUf%PaXhv1; ^6Y(N% -G_. 3LEh,lm`+e7! {U!Sj\GgB]fX0ԲT%]N蒴&YGD.Sp_A50 dlcwoAkF'Qy4&Ʀ'ђ1; C_-X4 tBV K ͸[P&h/{J^Q&dR[]3Xwf uqD:gĶնdzX.7c$2nYƨuh>,d͐-U_QX1ts24,LlTҥ"Tf 0c$1F|ɐWāD "?d[D$z @a|4 HlE[x pSaXRK0:@{P^:|JAVe2)weDR-D_~w> F $N1oʤۧZݼ a .Z%`0Fy+J>֦m# 8sp|. N P_*9}ζۧpV{fvB$*/%FN6ʚ;noSt@9r4(U6<`PEu9bj/1B:Lc <5r[5Uhh09Շot<ݥ ӆQxF *֪V uVXnc'Q֋82$?Y]2;X 1Yxxu Q% q[d*gE$^!am_Q;l[*\&$q`+(m BމJ(Y7@{bj,4~ S$ +lKP9H|%^tU)tNHt7MG 1e~ذ9ؖiPFBn%YǑomA70FI?\yXi$PXp0`V.` ,(|;Ǭ34nS)%|d[WfSՙ]9g )ܮֹJҏ.Pت40*IQVxA-ev[zd"54ߴa9cygA z˗^t[hbPEG4 RFcc_7M<Ǔ2 n*QD[n4XZ 1XabbILX&wJu] 8Kâ P3J)@zõ*'܈TYoV<ܘjV˹xKED+hvCͥ l<!&2?-G:=H@O/gMr%$ɕb`,tf7Vw@1\BG7|T~%mQxg5^xs?uh/VwTv:$3Ѹ$>CFVv* c#\J_?Z Pc+5jH`Q2@(+(7Xj Jec02<KFh/XȢU}2k.B+Ep e _a)4Yu61[EHFZc~:%.~uf>3|V#  Cf- HB6>gowK,| VWox>p߶ߌIiۋ.wݍ&'H[-DǕػEfWjčiS RHteQNH GƧ124-ņײu& Q*(Ur"T+! bZC=,aVADBU?n5R*rd(UwEY`чqs5$>O6W䪻 f2tfm <cZo)Ğޅ9i˽L`UvVZgN.p8kTZ8x٫>YOx_}$ ޳s/K-:_y<㒻ϵ`~j+ ѲA]=,Ƃhn)ՠٵ8ĤkΑ/^;aa¢ A^\Xŭ}ޒi-H67XFcAEס&$߷8H"2Ҁ_m> !cmށO3 Cf7MV-}AFfaŸ0?wlt 1RA*F@\ٝ!D*K(HPsZj_4ڭ4~,Y ô]^HH^Q6={ŝ`!0/ťJ{"AhCKX),] ǂz'>Zo+u&6D1͋pS>.Ģjb?^˒"9hs9[p2X;y c,}PmBt!*kա۸η__t7\'g][|D4㍸ww7cZf?;0X5KvC"΍M4~_]z}C/0o Sh6sDP y>Dj&7؏Z_վ**"Dm`Txx Wzra˅UBj;BUGrj ^->% C{"H8NHR\+F" "Tޯ%39#nâ\3?\c"Sh߿Jgcia ТPlOj~VN)HI3nuSP/*E^D$|+-D:aJ"M_q╟> f]_9{ƽsxʧf\\m~X|³qgNϜla_wt<~ Ddo18ԏ0 aLMLJD.BZ_6,MK>:ꨆF#%R .Ct:ʨGU XZ%dc"mXB>(*2\ը#$'Y$ٌIFq[wfFrK}Y2;+TB,jl%& K*犹gf‚ ;&0E$oח/7wş6==H4YZ=OO7 W[5QWMx|ʚ%-_~_8 /Nݧw?λ[jTk+u$QBEE=X%V-qH5>$*BEeIД;fRa&̼إF@ 쒂UTՖU̠;jnS^7Z$(So5"\&*w'؄Γ:8@fß[nD,gيP1VȂ0VLl]x+o?k;g πEs;OXea˩&`p.˗}pMO;? c6!fc BW|^FKT/}q*^7L/!}$6FaRQ]%.Uw=}6g9{*9*\3LiAG%ōYˆף3Q}>LLYR+~ercV  b0Pzo-ҙ*ԟOJ[֟K9N!o΀-Y0 Y;*-cF`|2kknKyأi] O^o/߉7nSb\]{ xN;==u#^y:~\-۩Uҋm!Tk+#C… 07jj:jQD 4C$s$XF% De *TQ/QDk#k)Ē`kPNt>yпR|%@3NWnXoFMuu,巏HS^}$K{ymE!`WnɐsTa݉^4u5L|. }Hp5^҂1@[8C?؄QF9\Ծ`hQ>($kѻ[a2}ЏO8G}58ƙ*o S>"@Y@]Pk\ *Dj7F[csx(S(|e@؍BsH9\fNuRcSB ï~Ӆmӟ2~5AX+F+l;Q'Ⱇ|_ѓrW%\q񡛎ŇC~KpVnOM5_Yu)yNoQEiLqn!#4{l3GML,VϢȳܢd < E}vIWN+FӅC k3S>%׾6*+3U_\Wfõ'v ęq$Μ"{pwL֜}9OLqrD>#6g!|m'@&0,X˥27HMc ߜ>&i۩ZCM|u>*tbbM]n=Izkd ӿp`9I&[ڟ,9iI9\j+Iӊ\\5;ó!0cZ9pf6IEv#"QZ㯼 OSCXt5K;㘷} ǫ+0 пlOtUxAm = {QJ̘hs{6s%2 ZP5r_"R <2`y8ו>}W|®~N*& ^TKJSn1beJ.):WH]-ww*3H5ѩM:nYzM-4)%k9IUey$2/Vu}n[tJanvkN'/%OlΤȠ2F "ɳD3iv67bZRɖ|eKK+\97~; /yFQdIьM߳ U&t@}ْp,q(1*,g_r00,>aI-ON`|Vkho[j3DZlD}Fg)*-L g(Bq|Җ}(i+uk~"J1EN?]/ڻ^Gڛ1˂3 \9;2og许VmqFZ H6w'V+A)1'0>V(PNC"Jn*5'GtCZr̖N$UJLv1X?,Q- 02Q`E3+^bEW2EA(Ɗ]Vf!`|c}D|p'b+^X pAnwPc`-4>fR qXb9YJDA60?61ky*'E3P+T1{D6+(m9"Iفa $á_6wK*/Y Eql0[]*tP,)y[}|k{eS_d-Y{π弴фd@REA>cI "V  &&ZPZC* 1cRscXv:yF뜷U6}JKߵK|Ӿvj0v{eF6ٯH;b$Ew^bEwF=+CX iCS4YbbLV:r)YB] *BF̭t-M"Nz=vKV4 /YNgw: bV5osʇe.^Ðx΁BJ/1KC[_a8G_J0fƈB׏4c I6m/6M3@#VhLN7011ĞeΑNP0-{R:^mcqE<}.DH_$&I)3YppaŌk 0?BQ{e{K0s-I'`rEXk$-jI&oj3Ke:KWI 3ע-3miq :usZ,(nOrƌ o$u]BF^el4߶*TJYU ʨ ql:)ܻmQc/+6So|ez`t\p a! S1-P[܎ t"]*Knc]4աR)--&•XVZ8.5҈-4w̒3LOe ohlهڏIz ߻,؋񎣗qS6W̹8a;uh'a{|㢏#_ub?2}޻pCNd/&Jǝg1s}Lc+LS!s,*ZbaJdI8S% );$g ͐Zi{2ؒfJdnQNsRe-7o W-I%32D$Efu=S)+OsO9/?8қq7 XZ>,@Ӹm7W _`Tt9M6䭸//cݍ;)_W'yf>m\m{ͣ*\Łxq0΂~yT9;K2HDFp,Ih[B&ny1Vr%a;]b꼧3>^6|UyIQ3tɽFם4qvw"I_O+ 坤E(O*/K'_yb+[頺?ξˏGOY8 g>x>%HLWVcw_Aa;DvU};} Uq)y?yybxQ{zИޛ<Ax߭⌽z$BV !ȁ]J*b<%FʾڵRD40j%Jے*hm Y0liVفgvJ<ߧe?#SD*DI o(Y=p,` tȐ&#* KEL`es|P1*'>}^pQWWa;.'wy9u Z'Ť7ۯ|k/xӭćN:???_+5VYӼ5v ~~K~8:Z OnƏ/;;m1l[8#SE+1PTL6۾ :`d݉6TS*f8a4UaUa܎4nK#AuoZc*<8 Ua "4鉪Vs)}3rW]X,NEgksÔ)&?QXTY+G[tКx2~W_s/;?_\͗{oƂgx;koO gqcl&gN!}n~D[wx=e8i7W qG/O?ކ+z~_l0=umƮGjo~^ ȝ1pOKzp^֫+p_2\Q8kثϝ9)xmkv//;7Jw{xǁof&HA(c>N[M>V--I*RI#9bS% 0"NB6+K^s>i3Z*~Hn Z(D̃:=6g0g$mXq ,noaWȯHU@'C6BͣzF{_4~< c:3(H;ꢫ-Sٟ?~\E9s$9yobyݼJGo^cp>_aW\p1yٟ΄1/T&'ON]\{2vy-,2~O%6Kq kP v~wqy\`j~ ;zxT\<:S^Jc[gywڀ|FtXAfFiL TQo_׽i q̄ ǯGqF~= |&bhr$>˸1޵,vE؞(} מʒ #h:NUZ4׵IX*NӵZUl|U0<(=Y,#U- mLOlI8N\rws̘֙hu, <ݱh9rF'c?Ճ~N4S%+&0kq Y1֯O=ԗnկUr\?bf;W|q5xӱԾ ypo~O{{qԣMW&`7J[C6obmI[T\i+YiƣꋓWaNKL|m}.1JKE$6"R[ Q*׳0J)ts끽3!7UUNg˨dWޗG&fp,ɵs}T!WW335&^ g] N{Kpr}B\O]/x W|pތ%_8]>;oMx.Y]Z;iٞSn_]#/6D:txK{8cl"Ϙ54UkR@u2wres3";/R6v%iOU!]ǼF}uGb.y[pǞ9{/'^;80I ~o1@,ño õqŏ~̟/p`vc\!Gi x7aNuT? xϑcy kM?:ZY/َ[apQo;Pf7:AT\WߎYZ"H{a$k!Gt ؛RU&ai'㷻NݦH8 :}^퉙 ;c, 6+$ԾP;&$e$t1TL)gÚOeb~cuH_1w D3Uϙ% &e+0Hhw=^tU99+E*ZΡ*\XH"# &TFP% օ!-o惠GmzgGQHmf!"^Q2v5Z8m+,tZ,8o(iyt!<+_UNL[,H3` 42sD@{[W7}? -3H?&>{r -$m9^^bEFN)sI3^-35hA#3Oj z)/t0~Ubp|&ROe~0ԙl`JYQ MJ2>yJ7^)Aven$&CU#6D$LfaHzKgj> v%?MVۑxej!pY/E!™sSힳ0sIQ+Cq]Brէe0Q{t^yHfVnHfarfp+I{`6 u8F름*ͷU6aHK IQ)tԡi 9/磼t$iI)z+fR$j[_\{LwPTٗ^45-AKt8: 5 U?iɎ*[̤UĹY2r.j2l{5#atA,Ha Mm+K5դl7f~b*OiV*m+SeR@ yg! _$=DۛGrhq2߫{uQزVH`I-s ҂;څ {b0%Q{Q>srN;40U,(<8Үu#l| Lo#a6NJ=0Tƽť|B[*fb.$r{U ~\l̴=ތ"$R?^؋Y3'HâiM4#4 9a392^Gj,Zb"K gY;F҆f(Wdզ1 IDAT +ʢkB#gf)Qk[0w2ʪ'G|t 2ma9d/_n9K1IT D Q`*Z8# _ UG *7r Ad=]0!ʣRuѫ x UITĹM9YGF|B2dxie UVMqi\ +#j8܋4]mMJʶՎ?^C>gD^,V*Ƶk>ԏ;l ]YhloB#yk0VjA*,ů<]HvA6|cX1(T2naj'UTN܏fUQK9A\[ngjOca R7%ϢO؋^tK M)J <;B5 BOĂ򰛯Gi~Am%(H) j>B؊hi+ԫ + A2opiۆKe%70ɰLR[B-4 c8bu*e4pcߘ >^1a\hhȶڹsZ'9f]6!{όm5_ 9m'|W4h-&07kh3ܹi*LV/zb̘e06A![ *g+@]3DJg(*A'Y{(.A? Pp >+?5w\BߓǨ4G_i2R7w]^.;؎@KݔGl"lꀿ6=X\ǓFVycu*\ /ZlEӬW1BycpHljz>w)8Μ@R46i2 mb" =UFjw`"Ȟ[ IP`:Z*]Wڍv*%vFIisfp~~h K*N؋ JZ0폲;! 7*0VuJBxt0W8c**WT LH?*0lZ !} &'Lzڀkx_jG)mDv9aKDe L(fUD3*F3s%FN_8؋ 'kRE*NiL 5+ mf&9wFLYE9M ~JR*aF LS{TCI*Lm3Sq-߆u(R:AZS& y}LgN׵fP[28{LƯ`Nʽ5Xҩpu֒w/1BphO5q;YQ$ȁ=L9 dTNV*/g1M8R6AYg9ut{&.p2aH DɋSIaDZN œb&or 31Xg'JrUnFyOwByKLn*띧f?ivf[sV}f۫CML`)4X.X..̟3o ')'R;ófk+_Ż/6qq:y4kl\㾭J\p/C#s*N8Q&N$!F)*Q6h 7-5W'/P9±MAF&jD *a6a&]odƌdUTIVbZ4YD&n-@vK%R8B)nMV1-rY얪=0vyB3ƲYؗ'ﳜ1o6݌-V#..BVB',З ttGS7Ŏ:Y,1yDPxĨ1ǯW,x >~أ*w'иo8 Ps]^_ ЋG,EF$6j 8cdtT;M::JJ "WlH*K5*r9w$J6I>B  } mrM@(?u'|>;̢ᰡB3*mu͵ɧ߈=~de}0Xx6㞎dJ^_O5鶋qē߂[5l6l6!{|QZzKl" 1]`=\V1<.wIzlA[~d.I{_-Z³4bw`Esy9-S#ée_&]¸G^킊1]_~^Qx2yv~|z?bnĂZ7{'Xn\c%}TL p22Ɛ6z %KszSL˳J?<㍃LMyb$[B̄.Jb8rxbSuFV)^#K4>FM}B.rr8RZ.w[]+bx *{}r?TEed9FZk16kvv"~]~λYpa7p uOE-q 3l|@JVQ,pHGsisb݆BֆḬ݄Jbˏ\eJ2E(IfZ)iR^(Sa\gũV2N Q 5 pV4싪V[1ژ75Њ30"3bz\3/.%E':8"U(E jFy\!dP;f0qn^U;3cl'Pj/ŪvB-wlԈ+ۮKp%8nԝcS?zaoa!|QfuEn rҺ5'^c{oZ1cQ{` G[h; BQ;Sxi.G4cX?|N,|*&JN|,4Z EcE7I2ƺVWVڦY+<>Ҥ*܎mVOٻx9{]˵g ɖh!I~iQկQ)Ȓ,(E(s\rr?;;;sι l3.y<; Z VҦ cpK""SMrxmMl|b L݈9rp{~ٛpwU|ue`صu*x ԾsL|-51~;>i,TռPiLPXH =))ҡQ#.!uGnkh jtSlh*WشiSY)*E!#?/BGR`T Le}t:*DnsؔΌuVf"Žݺ&] ՝F3#FY~4Q4V%_Вcd5pO*Ǩ5vb"X<)n+x /̢@~pSO zx#C31 ()([1pNj"sR!F `Nq/Hq*;#h4R/#4PC#Bar&n:Yr0þĮ!a3ـ9%:.WJk \mՁ|3%m̧veGl5)ݠ8~|"J M)q\HD6-3)bʇܝxIrk#0+VCAx3.d5=OҴhOBTI7zqԥd4eĀ_4dP [+Z>w`MF<+g%"hG9RyFʫ; t<5 S]& 鱘Ggq'ׄywY8էk,1o4C6JOU3~>} Ͻ+O{кLw?b6ӎ,ķ&!tVcHKcxjICsSH򨆿#q&tA'0FUKXfXuETjE&g' e$]euMڐQX3zG͘(1z SiQ"cQ,qMJ$?4p)Mc{5ʪsux%85o,ɸ cfuuӅ0Cbi ,Rӣś `̱h$S3c4eR:PQi JaCdSjZx"*o4 !?b DT#d[Q6~lTl] ]$J$ B`CQ0%"aL m=1BZ>H񒔨ttY`<)VXӟޛ^ڥ^ЌBBo6m`°ސh;)ppLPqS /.֚ 5F6n(ѕrj󘧠Q&jE0@r,$qf(FFH ?w&]`r 3NYֵj5Xf046Cp 霓`ǰ~ƭil!r; v|f<Q1T`Iih֯s,)#Q4 OȚb:"`)61wQM' R{uTcHQ=`nQEecH)JY;HTK',p%9i5e#b@`LՆ+53܀9T=XmB#*DOOhT0D$Tͨ-r͙qs$*l[ԴF5a\'+fip1ӵ!`5ٱؑv\PN K"o9,xV4eٺRVt`j|[Q..tLFj/.𳞀Z`25"H9=.6&M[cڻQYK΍[swk ΤT@߶!ş_7c֔ip'1-ˣn/SYʔD0Kr$Fu҅ƥBw"[U-fD8B`ovۉaAxL%ks3 $ooZ''qYєĠ,E:eCNrGF[gzЇA H_9L*i` Ha$hxg\p>Tk_5tF'mH>]cԍy,SČ7%^^MY{@EX/B{qPm[r0i12ip&_bUtVDuP۬!kQI!6,GUuA #TC:Ӡ 34ttS,AՄ0]# BaۮT0Me,ӥt{5v#/Cc`IeMp䀤0ѐ"Ep.FU 5ʥ L6mCIjH["AeXٔNRgXGLб W6-Sϋ'v`S,&#-.s)ͫs4M~>783եX2Y2Q'.؋8[-3pgvxHy QA5Drц: L;|_t)2BYx2ZX;Q}4ݐ󢑈mC4!@h|}ad,Nťe+ *uR^DT%R`Wĩ}w1˜xdN4=jDLmi9,B-|dǞ띈Gw5L{V2;%8D{K*>g$y1RKr~LυT $*}Zb㌕F- Q*ڢI-UZXG8IꌤeP؏U$=%8[!AQ{IԩZ &.tZcsGXFg28k$xw&9u#&>1Y~C70Q3U]wT+GˉiqXڠ;Tf!/o=uMrKb|xYLc 3ƿ0cU1fM9ȩX0wQ9^cCfct}-:^z(asn.c*Nq2 cSZE]@af$z<(ub]5% 1%Fq|2w<6V2al?rHꐃ?| !:⺱pX?ZŞP);cRWXX+ 3vfgc_EX#;69Šld܃R߳3݄}ylWؒw 'Qrըs)ϢL5(dEe҉1=&lTcdhҡLfJV:st֛QDYdGS5tg)Í=UWP7qbx s+~WfGDxBL{"1l5^1j< IDATUSl׽-k1GIamԻ4ԫ:݇7MݭNE}O RjuēoN:tlY'9!-kѤQB"E$x$"iIk-'b \9Վá҉.H+ߏ~/:??GZ|*`F\$|QJ7CgBw:길xXo0sb8r]_EּWpVRZZ\Ur#lBr6ݱdϣPAs~hc:z^ :}Vu{ 8:Q*8u(th4 -/@i㯹hEXQ[R Rjw~Mn80%w$R +"DTH4B\ #A#Q떱ܱD=Ecdېw.V׿ͽ1]jLZ6-'rK7l̛8k; ǤsY )uQe`oFF>s71xXE+0s 0۰:uHͫ=}9JjvgNu&OZ9W ]?RXƏP>l%UP(%r 9Ŷm2E!H|SѴvo0,8k|K8bnŭbOI Y<:tHE!s0/{oGwy9@j#t=A3/ǔg⬏6݋6kȯuwgf=w[FnH{{48^l^ =ߗt,b+v73Ė;Uesvs ڔsk[_uN-8QExsJ'<6o!S 1I9_%c,%/I}nyJ\h>:;>4y[)("\_|SCg~f Cv =GG^^}X;dVޙe8uƀtp=d0YdZvUgX§bB PAClK1 [QnNmk) j 7at2TcoZJ[d,d)OZ痶@3 wzl>m#@"Yj<$LvQW'Z9Ֆ.sr#3ہȏjC4ZtGFH(d) N32hG~q҈:SlNHy~|[Qo&/w\#BHG&hШ/$ʼn!#pX rKMѲZK4 (n#> ie]7aWx5qYxl)=mz~ד/d35|$<3 PK\sCع/[g7mֿ/ʿoB{ `C֩zNdsbh5q,薁#&- ˧3B\h.CP:-9')3"-ԃh9ZH>p/Gѐ=U(t>q 78JD1/?xg6۩]@gI ~ ShhcY&{6!YZ ~gUqXϿ5]N+ sx`ө9FGŻñh}[\nlM~(pxדc[(fĩ137X9~Y|=Y=#`L2nނhG3K E@9f C1m*2c0{msrYE˳ר@U_$c OVqvruᮧǰ{n;xru(NAJJ RaeTRʖdO<,4솻[TTT;#R*TAht m5ٻrhvu'.SQ&Z^*I#)~c)QT(J*f"B1h|YfM>%(:^u)p4c}dMzl+=$O#XNqGnAv,psZlK%:5,|,vڅ~#FzDw|5N0S?y;.R[AD )Z41u/8'e- RF_PP@/H^dn4VX-/ cB N5y^a1ϓGY21f JwuoD/oWSѡ>i=R, ,,V-(I2l֔!F~ҨtUIjmj unB ɧIHTQGe+¿I0!H4Ror< #fJ&1T!]z?0lXTIU/Nݞ 9R5@҄! `D9<up\sƢ(*Rm` hqjqu،"ˍ2MkP!̰D|~|QVfWL)1XcɄS¼M9z>/ۋ[21jhp䳡YBDQ = IE?oس|" gHCv!m' B VGT -p%J.N0jG)&R `_SXeDB!%72WEl(I\4ҳ>8ⱸDHz'Ֆn23p%d_wפs-leaW:\פF&:?tSQhU_.MS*T@1b((s.%S8?ǟ6f.,}Q% 4wt#B\|6gi:)u:r b&ޱh"mB0QCki[Gڠ,>`7+=֭c ᗲ:$w9(mgAw,кꃏR[k>ٰk-}"ȯ-nESt1[-mO=A7V(vR M9mlrD};V9WXŰay:Uy,>7.-~4]Y''Tom e c`'ŭq Q ,l<ULsC;ΰT gVZMF!L:pH_#hBvGdՠXQ< kǧ{d,vmӖO49pG:^UƔg$fXKEd R[+.\cqBKD9 Yt)\IR#$NPB!2sRC0:ȴJ:>3鉣*+3KL-D*V2aXDMgiE[rbZE U&uIi;q>HOakm9-N+pl@|_K*ԸyTEeVö́c8nה] #M[qu cR:GE AUtƊCLLjPA{rb5'{ F} ?U<^5!!*NK~ML9ȣiq͈c`Ie_;c'$P膏$'-v; rs; KF1܂&]&72L΢B-d4(uT* C̣hV"qDMlwGc|>.F ũ8F׾sȣ"1"F  MPL-d.ԙ;4-PL6+x0AdK+R@qi'Һ i$$%o=Ss#L˻8Rg jo;vwX'8F>~"KEӡbQ3%{}ͻaXGmCoơ͘7>5;cJ( SWk$09+S2ZaYi4US H\E:ՀܟeMH4Bo]D!RD ZJK6^UN7Ġ%q#J9Gs-p?y^ sW&>/jctUWҠ?uTfaKQ^ѱ.hk6rL𧱸jNb_PNB&zu_\JNrJ뚷epL$H=22&fKLW7+F( [^zi}3,\ HƋA!@&SϣE R$5Jc9k) EJw&k ?1:ud=5^y4Tn[MGNV[t͗CowEݷs v($b$GX  ^&v/ڿ w :dmFo^ Y{T6"J(N^rhkƼ#uחi(woNn{?S{EF1軻OI`h+qGа UFfjmϷx"B=rs =+Q؏ՊUO -#g{\Б~,zZxn>z̹C|muw|ζPa,xGI_<˨}3^ g1V|=@.œ qSIh ҅m+B^kc<QYqL'i9A:NhXw=Uc *JSlPx#(6+L+Ac]RpS1eG뽊WP9F&VM|+;>G3ZjRz ndi~ʍW MXh69AIj`GCBW : ߏ)+ HqnƴA-1U\ ",Ǚ^8I-ߜT]4U"FFPjH'x (p-:H vK-:K{?CXMg,VQ6iRiZ'Lܔq/F3^~ Tk6ieA}3r~K_NY;Rc]p[秝WUɘP;03Ixi<qB!daa."[O5CY( )6ZTK? D#%g,:&i]!jHb4(NQ2B>vV;u)DD|4:pvN)BwOjˆ8]$Iyl>fܼ!EITc4q`+Np jceSgRCA2H ?āߢѠGЮ"_ssR ;&,eVDIbc599 C8 W55Z?5W=ŽU+'j %.gJMf%&h &j%J)\ӐRMQEڒH%T#y',RK84S7qQ%J_#p]ec={d׆r\),d"xfjVLa10%H`Y+A[PŇ.ʢG 1RG/{?t8/<߱WavF#!FMRSI!IcڏHH. CVlLf&NLAtLO uڒKG#w1>!g '%.?#88q> O2 G~}̧?":8\ ACb]d/m -ŸG|k3eU:ARד-* ]YQ[u𮼰nHI'jH5bQr 'SYNuϦ+¥WqFtGvL ¦s %ԉhQ=%_$,}v"VD[_ǠRX1}{9V=wΩzk)sN#*z>~=fUt`+,e畟a%cc3Q{7rP@xSs)YxGBk*6Q=Ʃx13xwdj34xT,HOf'%ctkK|sJrl2혗q_*N\b; qiпĊ ARmňlWkJ~휖Lv@dn['{!jb;J>9`4#gT>>!6FTi}^<1DYYYf ;k.X?H*kPl0cՓ,вO8.t([DY: RY@Gv< [p!Y'߆n8 $pÉV9I,M3|v ױy,Ot87h>DS59ƤL ,%e4==*D77Eh7I9+6CRڣiez1%՝iiPb CmTVQeFw9/evRߌaJ\'ዺXGL̰l\b,h^P}+ ӑ<KhTjRGG1&9뷪8).Df#wT~#qBQ[%(Ӱ!9j܂Y?> &0@[xMauqUoO9flil1LI Gs̿I4Ω-gW K9$k5>m(OL%j P)) r&ub]i: c ,)vky!%2"!D'0#n&0#0ܩ78@á=3?icEeTA ht9P*iZ`lUlC0,|FU!/&Bwr*ɴj#_Jc ,XP (6fntaL4c~d:DPGiTTfQd.JsMKnnȊ![pm;Gg6f=aQ$vi]Q({uAVs 5%enbд0 P@TY "ٍ5f`7Ò+TXTf~MEv%i*)2q2v9r~ƣ$ K0V*͚/;v$ ,cmIl񘝾pias%&kHv]񗃯T\X2A/ݚViݩt۰LhL$OЕ,iOHtM?>t;HQ,bUMV'*Tk3BGToJ4zEKt}esQ{ߤIݚ|F(|74'߯,/'V-CH@QN-;ƲDxVpEvLIJ [eQЁ&a⏧]WcXN!ۅo\oS`SqFd}kO:wn[aBRm~~!ē ɩgU1([44}IcG'DN5bM*f$exE b)Έ/qFeAlXq<8O m^6pitG=z00(C`KغoxB3ڲ)ᚦ c`Ie49*ATҌK)+R؅kPhYl/z(Ue1t\*gᦸA,`m: MfaMb#yx}`T_ t|t59O¢i!]SȆ(,uR!(I/h pb L"P R&T b 826E -$.!v8(I!54C>&c/(q0KT\ClX1_wHes:J *@E_M '4|%e4i*@BTN֖U`ti 8N*QF8OŐJicH׆S5C/%O36 C,bNN== ܡG؏dm!#HvU"i쪷hEcT)|0pv5mcG&]?7 ^xIx`[7#_]q@x؆oǽ61#`!$YGNŲiYY 2v3@ 눌t-T^tkꁿ..5(WiX#~"N/ָe'ٗAgUq-)l/j"ザ,K}8#/؈"YzE\ ?'q1JlWU]$魸1ByCayأ|8Yhxu|-Z(FJJ }/yK8dQM%i>JGno</]X u[^7_[rgV)iH)Rk{![(ڀ{մs7lWf> ୉nG6vls&~޹ 0՘&cgĖRT;(4"lOt^.oG-8:ս>۴j9Eu6b/%)SidK<4 Խ 7.] w_{g 6#0щ-5+иy)iq?8}OMIp%q]SoǭĬ_8.HOYjO qB+WD&M<(Wa~aȎS*p:ūhjG NaI$T]u]Pnz(> Ys m+v6Ϯ0݅Bf>V}6u4[2 \gUX)>hVnV缞ZC.EꛑgEu6%{J oŎy7X\].hk6rMtAkpix:zDO\Dǎ1w\ԯ_ŧbVhg#jڄU#!tc]fG$;E]X'a/Ab 7kS*∦ĦH;G}&܂]Ii/1@h$~Fy;QbX&mZfICЧwMmQ Zҁ}0Wq[=0[; =㹛WGsbqVzh<1-"WVaMvoX>}?Z'thT'M:?<,XeH`^,1,U`T1u&!1N$J/ !UjȚLDs]l>Ǝze}Rt\ד@H˥l59Bɓ.z(Q1nXYry~7%rͽ'\TIQAS[C_3[aj㛐y9ԉ9F 5B**6(aIEġ;tT]-Vj}#o;cLΓW`b=J_ކ}l?Ӫ5FjG/GݔQ^3U䦶ڵ+,Y=z`ڴiEuQ_\F)~1VZ=gxD5@G@vc($-'*es/M) k&")ZI?nݖrŋ7nǸxY٤z+_.m6A/odl;j+6swbWѭIczCޟS1݋kHʢ*b~1puۆ_W̞pj9\Ы7۳9Ø~w3TPR--r`Jx~MaKQldǫ1}mnc0( /԰E4ښ =:Ar</遳n Ǒ(XxMxRGcEǤJg~9S5@Ӧ3x;Wγ}_#TTs>)R܁ ))a$JeFjŕAU0m`3:2z ܇{3ރQ2<ޥZ7  ;>[djU;3/ނ%ذaCٳHJ5;3owN,arP90YPf>佽k*FAEp$rh[ )bΒ b ˙itJ7Uw {sָdس4Cr֏y?q}HU`F pt*{QZ RQY[m܇usPV%K$YʶÓV`d9?K@3 wzl7m#1c`Ŋ;vl?I_ (?6\p1Y] $qn@#5D΢ЛGEUL:T~>w/Z"F1jFgqq1Zy.;?:FM]XlԹjU8TJ1NsM|.~}ˀGޣqFC:V^O.=X8f llGГ8k$ʕ?fvn VMۡ P-7xu1:sg7oƨQ#5M[v"FĆhbg=[결>ȓ30 wQCOcZ@(f".2Q} }Hfޮ)騚N#kq3ȎZP! mxy!QM [=Ѩpeaj?GW.wF4Ѐ^c `t;~ƿ6uo DJC^;tj{鑃qqp,ZA.Ĺ-iF_SRL鞈IH5y>$`%{+a,r8?MA3+G|<ec2IL-E Jr 1B[tCf P8 ndaNQIE:"BT+L-Q3}H-fwZw"h^;e2./ŋ9 ʴ/GAY;эGf>EwEpe?!304f$[{ NReC4X%7j\#ubqGH TJL6۰;x]|}?X`:Q>H H N|䯋#"E{jxݙ[t&fa#2ϐ楩q Z?-#ؘ ~Ή W6=Q\8.X_w)(9XU|S/ND%0K&3IHO׸fKD6lp̎$Gi$Yڏ 1.."ZKJ3eqКN WojRd0)z#(,A)c7},-p%q5@0z/))샧9uJ+0̊BT* \@ >4ž$O ܁FiEWP#ܨ m]V]7|bCDG )$'TtQfaL&Nհ 7r|j?>\ c`Ie m85%F:E/@XxH/[GcЙsX$N&4YuZ5yXw ᲁ1: 2w!u>!֞ImUx,ʘҁXaqt{%?aΔ;'ezh,p% ¡ v ɣ$rWr4&XKҁ%qB/L(:&@;s0g` p'Uit]3^`*dk!tG<KHW\'C519Q\C±#cPT56dG|F/74k9kߴTi)D]i7 )&h}װSs^K%ߟ!#].Ǝ8N'`DDiTN}Ӱ1B$ںct'8{3i?ܢ7.d(dšVޑ9oXQb JLXoXRɱHiУI6Š#IJ8; m@2粶a3[븮n4kw n ݮg\D@iDg T~ƾmo}jZ``'Q[(-Ri}wpn+tz>n_:iU{ţб֥gMze+swT~K3'F;v?L n~t9$.y=Xtq k3g5ʠ~ͥ~ 4n^ jZeO,2GSO.ȅrJ4i$v0$mIort(F IDAT,y3'cՏbDs4 t).fbs[?l/݈Ĺ)Ѵpx#u%>$ ٱ[+CoB`lCc[C-uC?_z_4~쏺,d-κ"ZϧwXS\[}zj} gR`02A& L9l3mGuG>f C=NΈ͎]68lơ_ȋ06늽^M?&fQEMaDX8pQ9o=uZ_u޽ V(m{둯řJJ6`ΘvSr:71ywʫq=;b8\^iU0—a#p1 29uA]#*N{(s=/zBa(!׹lxOWQ|tZ|ZS2Wr@,G(6lYk4i#S\cY7]؈!՜dJNIi AoD 7fғ%iX@dAiWЧuIІ!z,FYd, IK3ӊ;FPȍBJM i: dad+ʗa,<(U*dZ*h?f݋tޘg.R܈-MFyֲ{e,#ZÄQX\L4/~oħo=.ʦVGUts~Yz=;87Q=8DHUM?(j&MSOj<#q 6DϞ= :g\`$O毠9N7ع|l 6qmѣP'OcDߠC(8e8{^Y\7kvi߄7n7` Pn hNEz@᪵ -mBݘ5ƌ+V`޼yE:9 ı]v9#/g|0j"vwz3v©%xV5/υyL(H)1gSdd4COWᩋʣ {Vc}>u.i`ơ%A6e_Ǐuk06oތQFᣏ>Bjjjh`űv۱efzẽaZppS0ĵu5 rQRoo!ُ-nmM"@,wU__ÇWaJ&Aѿygbw0~vsؾ6Hvfn@FY䯘ߌx&+Wz܍E͝Vvm̟?իW?<ʒ:y&4}YzX~_[+q2ۄ!'B%֐w6tL@G-#Mnc;M~Co'^w8P{Wˆo#a>F4Ѐ^c Kd5jT؉gJVVc=GVb8&Otitwu5#(7`[5Ѡ5#8?:܈ 5*ld,(.RKwOF{ԳYzV3s*ދ/.4~\ר$-j!gkPAŖPYo3Yw#Nu]Bi5H1yc`'1dX`V8 ,0X`&Y ,$ c`dc ,,pX`ɗNbƃ² GX`c`dc 7"U83)Kv4u/~Ϟ3Cg㠇M+z}~&1vBq1`ćil; ==ݵTj;SY?i0u>g~n }[-9G6*<8NX۹s'.;031GpŋDE>I:vvZNxv m?slv<a iD{Avv60aBS)Co {tW~͡bk濘0\ִg5#|vK/a}Aǎ &$5Ǭ0̵ٍ ;+^oMzPrT:"@'4gc 섳K⩧բE qaIJ~ߙi&2`b e_ \&kj8O{(LAݫu׽^umպmŭuYE\Ud#$AmZc=C;ry{^FlٲecwZ}||;wLnZW^]2yV[}qO{ƃ$DQ6VQ<{RbNs3x$E]@c>ۺRO.@KPDŸhjo} {{ ̗}ɿWI<<Ccǎ1zh8s nnn1l0su_K4%x'HSǣ?ѧEN݌F?Ҭ <6y܋S41 5d@m=h&PIU^ 6C^C@Ok?T-6Fށ0͚5kkkݻw'11Qlݺu+gh5/eA^yq fvq!ni<63,ٟA~EuwѴ/ѡEE~p: BS!#AdzW<p(nO S_Jz0?&M<~-[իgΜIŊ2~b'~\ѳ~㗾Yf=&mo ;JҌ+R*ȟw}ek.W]"؜.:Y{0i>- :E xL) !GP-@9<5g'2cˋ_~ztRkOOO.!m܊/OP<ɡmK69R |Ndܽr c˦&I4BbPc$h8 O2X qrqB_*Tȋ6h ÎB?\Z={6ZR?y.V^Qs~+;1X:YXJ*7<6Vயjz7tQ7ˮrif],hþXO*a$)V3s&uζ@NߠZ4HE\;4Rkyc~oT*ۛϟsEkג?kF%;k n-7 y$S P뒄$-FX)⨫ \hxZFh+ )So j[ u&6.L#KWJg>yykZY/pmt"}}}vEZuk?(AϺ$e)[I&iNcҭhFO';VSӸxt{/)>Pj|)-]Rȋ9oHUܾ}[/FF]ShX4BMC Z`;T z0Pb8 4`coҨh>9EleaKʰ[kB-'DE 1J_? l`yg} Hk&- ${C I” !|Va^uEEEArQ!ArQ!ArQ!ArPwǟ!Fdn4(1  B"0  &#=ݱpΑ3(e\4RJSmjHu_  CAĉEDj)^E-1k#f%`*moH̜/)c|Y>$ݻ/P7gZckY(snw/yk S=w.aY0|ږ !x04-xԞGBǤuPT%JIE[+SK%Fy2ёqfI#hUge*:FZr#ˆRyyewY"|X3%I72}5g>*s/ 1SM`>cӼZD ՗N#2ΗZ<4-q->쾺c9?-V2㵺v 9pEfOHݻy/{  BZEPZ";L`MCtM#Nm|,!$G(1"[IT}%YJ8GGcYR|.%t?]3P) 戠Ʌиqc-O#xf߮w 6wIKHS7_;Aأl fTq+?&R6Є!wSp.05czk M3oTA9vZt? o0k,033=yS(BCUD2ц^;K)mK. 9ÞnJ/*Fej<1Is2 :&2o+'ʍȑ#y ۷oG"1L8>f%$ 71@FG-Ae~ԑ|ѭ_(U`Ԙ:hWW>Pd42fKc+RDP7̞=&M7?>K찃,gx;«Iy̒ؽo$N13h%UW_ ppO-ޏ7f}VA~\+I"^;@J$Ya'E[[3gRn](1ŽBe1)P8y{u&Q~;6mHm[tJ:Z@uOM&?mm4J9wVקބyߥ`άSVVg?Eêx浴@-o|eh=j1G:ӜWTRӑEFXs^$da<emskVLGeտeUP,V^^^_<SRFU2?۔yi=2Lc?,YN:%EҐ$9&W&p2`"Ur T&^cOG(7\[^gFIfwZ.\/b _$.ن n Tro;Qe.sppٳى-|4 0*< S:Penoq)9 * Q oܲ'P=-Yʈ&.=`o'7 4릉w_'՝/b|$AD`AAFAD`AAFAD`AAFAD`AAFAD`AAFAD`Gpl\4+m":kԻժ5$oBeJ x:իBnc3R?:s9()I~tx"wvL&}~ۇ<Hr΀LtީE39ggұp!hJ^`1rV4O=LºiG(3fvQ1~_DiW pȸG;Tk ^d[bT&cϬ J+fX_-&/:-n=F|W͸Rmտ"%7~W!l(C"i84cTBR6ןs}.h # t÷1{ybsQاcX#+v{mdg}Fm*޹ =mH QcV'L]q$)ԟg 2ͱ!ȸP(MO苏; f\Jg`Aź[fhO 39yu8/FBuŷ"x+=uhLPiNɜQ13D1T*{.oFXRMcL?6)7X;+#ukl.T-MRTZu֙8i[\}̊#QsiP%⇒FvWfW6 uGFH˯"$J>ϚP7@GиqcN8j]r( :97 }zOةZYf~XjMq/, -[Qfˑkie>W&r~" |~KNiF`XƧfRzEV ol G )9`E_ϾiؤIq}GDh}S=}IF3]N.1 8 -qM_8Z a{_rhFrf_v5cT}m5iݹ7JRt ߃])<ʾF>C\ߤ̙3[.}22*srJSI IDATzz]k,ɜ=ʺ|W-a,Ռc%nK>=2. Ό-X{4e4q;)fOM񟑤d% +[1*b8Kg!0H )Uu; Z;{Q"66&d2uP޽;^^^\H*h UTҞ 9Mv_Άv]MOv\ZJSq-\Κ5k>jU"0 BcJKm[L]x$G'"VcE4ƽIc9+k2f??Ìr';;@@I/Xd ,]?]/^ie gI3idZ|ÜWӛ3s9< ׆`~{ .}w_/$1|KF~;I2dIWWɅ'cԥ$_ƚK,؊DP8{,vvv/)i\QEpdd%yt,J65 { FspnPBbO_4 m9Wd K `t& -ZrGRЀ"n~'mtD A>ftzUZ*-ID`AAFAD`AAFAD`AAFAD`AAFAD`AAFAD`Gpl\4+mu7kԻժ5$oBeWkާ;"oNߦ5u,·.AFAxMIS<dc2=4;o'>4/ߦg@s;ðXbޙNtoMc\ ;zFbAVw}#x ?N Vz Xр>ٗLºiG(3]]F;0qudSS`|;ޗ*ˡ\P1֢YiWD|.f7\0DPZegt#f뤕Rmտ"%7~W!l(?SaZ&G(1x:ȏ^A(3~nFAD=l9ǃgDDDċ>zމ> Y8g^}{vU/'H!&tGY}T:0&sD~rXIJ3#髢 +kxZ͊97ufn_Rݻwqww}q%)/cI97 '3|ڤ`Į=ʺEm S14`RZT3^"KsӌĒ?W%?@[xL˭B\V_Zx2 E.7^%ɨ6 R`All \!!!4nܘ3BP/Bʥ)S+z[u14LW-y HM&c tE*M#JLݙ<}9>U35~r}35=w>Bˡ ulosv8ލ$_9gEiD`Xbc)R,;so% 07ϏZ:'fh~KզK30囁9|wff4mk,§*5&$$~1I޹ xgܻ~7SԪ^ n ||qok45YKATsm (UԏP/0dZmB`P}|99)}5dGe]C+[̖|`KjFzױBk7U%Ͻ^'Ĵ6ՙfZEgӧ&.*۰e?p#|z>U0cudihXζdN8I!㏅T!]zC}KWy% 7,Y?NjߢY͵/+>֮?]{>Wn0-̚mGj/ |xp]jvj^s~ʓ'OXp!J ˤYѬ/ÕXlmpʼn,IWNO 7Ue/ʄ+uwЧܹ|ą>#".QΞ=ؓKc\:} l\)eL9;+c*:Wlۇ"Q5%oǶ,G&d=s B )|4'0:Pg~Ҕ"Y[Ly) u@҈B|Q(m1^üw ?f@A>H##h UwX+ 9( 9( 9(+uxx/g+%FA%F_Ju h QbAAFAxKzT6eHX{ǪSww/?kAi;|)ǃr)I>?7}}zX7^<-|J" $)v E,u(ajYd]/a1d3(v/3;ҹhgܿr =$?"E w(«J'6GȚol[:$_e O%Iϸw:i:v=<?ٷ!Ν ~u#+Kֲha\݇ߺ`w 0l9HAvcQ9]'m.FF#JqA~̐oѠaE|JG&a,:\C?!/>xm#Ij"6O\ *acyvV(! CMi_ͤ vM^1U}%vH]q'RE6:F0G~D^A#h0-j1֛R3\=0s@.½C4chnq4}-4LTrgPuYξ?oM<Lk)t1tNbtf2?BeYE6NfLdr3wmeYnYGUlhԽ ggŃHV{cU6ԂҀ6E)e$biP;J[tsw-NIܟY•Bi$d$8Peq~$k{Qk+gy|si E92ZQ&NdL[u,RlerL%7ʠ*kY h4#+lnIձW81EŃpWUՠ"5$}$8vգ'p ƲK{}c"0 i%1۾k8vƵ훰H~Ν/(7gϳaċKM,%+*`-d%6ZIM,?TPLF!3Rw1[G~awah#V상$2.tК^uR=9|E)h T{z<˔mzFo?Mv'/E/FFp$,N֛Mz 42H_?xΩk2f:Ŕ"NR[\Zޗr-1Gv<"G];:a˶'$r}-)ҷ"̏شMAwϢ~~)L9:bh AH”ug`I7f贩t!o̼0{<; tDL2b"cI2&_>)OobU(fo;?pC?"s{/Au۰y^MdDxudu}'b\݇ߺ`w 0l9HAvcQ9]'I O%Iϸw:i:v\\|4$0jQQ"{.}8f69mɝGRI7[겤ΤLmX= mi2g^B)9)2JdjR8N1jScLwa)n{{Oc -4s^meSVm-%W" &0g/NlvTߎM[;RV ڲ~ MFaN%-SKVB>;zyrJSzZ-X9{{$iD2,ԩ3 MK،366-c@Y:Sh&nwkφ)n>'.'1&Yn &=LF1QdXP%҈VnBI.]}97eЄjDWAQMNz*|d?cI8?d~UZc\Vc.8q"FҌKi/RՄdi)s`jlz#E"".ܑ`~k ES4_,χ+c.M`:ƶ҂ h*}+5FY\` IDATQK*wYvNq0Da?Jף$ 4֬kR3I9 [{*CI>gTokh?)6ͦCVE\LKt/FU%k!7UED[[,U\{Pve*UQBq>Zt7}Jp\p UQR~EN/B !¼.̞s ,-M9---1 BN(h >;ե(1  B"0  B"0  B"0 krR⢉e ΩL!:$< > ogG\RDrnoSʸ,|D.c4)b߻}oS|*=:)89;siw6i"1J98ž>ɓW"9vkƋlA+ V̹D+e[yf[i^MKN &agru={C˱BH|" (s8r^ģ,ocG'y秺VvՊRG-\y'[ġ>tv5T]G=wO9 < Ũd [3x3M~n=[d\V }}SU0ebUΨD/=^G{mtȯt@Qq |=y)eGRjL>cm̆q&uL\L Rf("@TF(ÂkdY| 2) ~tLP?^hcfk!wie(@jhqFJ,YºNnhw~,Ң!@vi+Y}ۖfj蹲s87̞;OxL)]X㧨ul;Ϡ 8$YsĄZ}=߷&SH3\NUp͔JՐx va8:"sf Xgp2H꭫VU9QMD8*S29?CTH0rśF@FV`]PB VL o7Us3)5LqE;WFbnZWW K, :HЇ9s[RRG`{2KcoKM.i>F%r$p*5M7*so! ́Jr81 'XgвmȠalrШ tW/ `.ASHQlj`U"K%7 I1!1nGPH&.ڐSI)+- rc#=0Kù\W-ٖ%!_k` k|ù(!-E:i)tA2.6p1|ꖽnDJ"y M:yթ)ek ]4C%YیُFL$]]k |yk0`TV VfK2HObMJbvT|m 36[6^ ֢e 03gL">l\M-QO4 'JEeUxoFWϢkQ %/,1ޥΡ$:4cXc*j<ؠ"DeXI^?iD\Z#_dh皺к +9%(&?t16_oGo U͡=4Aa IAl5G^oCRKcLtU1ӈ{ϟcڝt[a%pz5ԀnE1M{al/R;jO "lcl= :ƒY;zY¥˨[?!\8(_"GaW-䤩NAn9W;R$(^Xo5r03S -f^W}|w )k!ST;Ze&E-0x9a t_tlH9rgܘ8vGw/fPFhO]X|Yǘ4Ke\ =&F^T#R2IdAoh-~Jr.Bz6׶@e?V79{֝j*SH{+0Z8S3RըGg뷃?@-k} ;`OZw= _'uK; |7o7ͣ5N!_G==\:Hŭ)xqwF?N˧03^'E{Jn%(:vd,S9$d*bkB˥.aG̡;„vqjs_&G7x,8@}oX]ie$S>:g, ak:T[~ zz{v,wH(ՕLZ4V̭GZ/s6^F] \p_xK%WonɓZQa@3\YlMykU/'O[COӼ($Uω``%Vva*vySV/q-1ǵ^I}+"{zh.NfuS@U ;U0' aigf#7#F$]{嶼7>iP}}JgNYRqʛ_cf~v$}}%E[}<;9.IdA+\."(r (&̀rUzD% 69䙓3if60=̜sOwu/?M+ ^LO h݂%+5.y]D !A֚"-2K{pϢş?~ >g0A\2mkx}1[dK)D  %n;|l̾t rk_#>S~CxzIz>AooV?t"$H/F-OK' +.7]W8z|+Ǭ+k_M`)k?}~!lUd{2*_$fo֭k_˻Q %Y~7욏'z (c+dw` (EI$$f&w*|QD4;@O Q\7k?췟9{}Mx?ƣ+%t_qW OtuKd:x*F=4{m,Y K3 |ʰO{/~ /|s*2|QLbo-lOZk|h<A+óA$«pgnw<{ .~|fKݠ[\qڳp}5ÚmX} عEΡc6Z}ԌG-ez*i? ㌃e gI_\ޑh~_8/`̓WmGaZ 잇3~3ͳ; w)6>y#QvC};4S!LqmJ HVdLI@m4WKX}20!1dfPڹnRg1X`= U 7z z?̨ :{ePg?VUN2R}[2&!H_m8>؅'pio%9e]OWf̌VeK@_;mz0)w_n:pf@s}ofsi?~k)Kx~yL+} XFzc%/cq&<+ L>R'[ C 7aI&0>78/G&]8d:[b12YX)ֿ\s8ʙg^Mgvr\nxYh{!*f]N15}VDIE/H 柌&H8 d<W91frfzH394J -g` 8Pm\4;RfNs~jxz;sn g|0Gf;OA؃= :1ɅE:s|UmǤXj,5p}$Ӡ.75`tiH ^s:)3v GDj٢z5TEH>7^T|yu1bx?u%ey1IPsWaFq l!hEϘ 2q,91W=6m=hk){3?yPsŹX0~\?m >}xP޻e-x*]5d٣a&J;t43OfwQhQ&e \$,ГV 4p*Z78@<3X u E4\f"Pd4dRD 97iR+aʒy 4 ۡ0`#5T fPߥ !evAD# 3;g2b %Ӄy:Rc4 ,&? ( BWPg>4"Edzc SxϞ,(\b|J;W,eW%{1O988jOXtc\p(gZthjQe9R @e)x5.;z둟}DjN:VZֶM ^y454@J"=2T9 ;9 h~țZ! &#ĩft) rr=V*6?i=p*:@4 7^L;~.,6 I VyAآ[BԋXπ+ +vg/ySi R/t,\42drwx7 |{Ҩv╠nt YG~18F<03Y[OƤ҉,3OnYn3w._j_^xKĚ7>|\JcUoO6#%&< IDATntyZKw7Rh;}U[Y2Ƚs7>{汸ޥLxogǬuݭW'7p<{O\@Z ̼o|%Q?f,T7flMn2XThvi&aNb()2T$XL!A69W JuUl֜J/hZl0&'ؑ0 ϱ'96$3j ѵ[u^@c;5+Ny8eX׭(d9!d A K 0AȺ%ف509h@@\;%E*k/l*s fu3a C{_$z^W}?(Sb~ѥHQVQ#1fd74ra|Ÿ{wpVAgn{8f"I%Nؗѻ&=#+qpɎ.H+;<4TLK 1ixK\;zN.WbbOď腗Lj6%V#> Z{Ct}ŽٕݪBO c@7`h(= 8>8D:Mڰi m8Ā8lR3^,`^9ӅCGY=,BIϬ5s02 3sK`'=zw߬zҙR}$8OIJZ 1p2P`C6$%O-0wF`¦Jv4X7}#u¥:h$ Og̎L"vu*f`'dc+B{ X:LF" (ܘ6{`jA@L!Ϥhq*֑=0{wӓ4[ʧm! Y l=9*OH*Rf`+NvH `CiGy)( Y I²1 DɄ6b 04sjkB@z9DU![eC0UE)MMM6D*̩\ cyFL`5HOOXpRC !Т2_UY[yo]̹TMfVrcT7_/ }snU 2iek3DŽƟ tpPgBO|SV| `&] 2 uPuVpj.2[*4"*HG U }$;b\ZlJRA;:ZG'&HA^}J䩸 a2*RTȚ#+H)tܱHsco2_Hj<05텔W" εo6m˨K.ƏJ$\ڑٗ v"^3JC +UxRWS잭{IQ4%ɸS6-*xڢ:LK![\XfCKhڲ0NAO-l:!1[(e'w%GfBuT'(C BhF F3f"#5#>b&hKWP.2l+[GYT %ܸ&l2%|7 \rcdx ww *[:>MKϵ2eM&!3ګ/9@הVdWY(P9=φ(En3Yu _zuCm;211X-aK1{%eA}ISqAE1Ea_`ȳpeC6%lKf:b6L| \򦺷Mۓ`swX+yMzMŠ="Ԑn! 4xYL,; ۴j$Uwe-l [@@a]ל(DYvLld[̥+\nιf}k+ WZﷴ|Y O:`AZa@[LŨc~v._PQ|;cYoFwD*{6-˛j(MSw^|Qܴ6.BFyB :khxoٹolE 1|WI- p߫G޻1੤+D`$E|HSHa@ 5a† JJb=8B7N IE\Rg:ME^dqQ7 G8lI`ہ-SQ"lQ_usN E4Ω=fta5kfm *dKvjRIӪY-ɧ!EH0鉜-d2*RaMm'[GV:Ea ']qcIp,;vh]`xawSe87qQ{ަ[qၷ#>^Ψ›N &C{"U32dtj[R'ʬNl AslC7G$GvGv/K.Ɔ 6Ȯ-a3WX;aVϴgV!{&~C^6@LȓsxD+lij3T"R dKB A\:{@&oZ,zU}p:需E?sxs}?ŏ Vm~"Kf'cn\^(j{=X^n$ /I|+9m\󷙘}\3/|ν^bVWuky =bXex,ՑD2 :<Œ[=˘:?xYL~DI$yqW'Oy_<~} _U lݭG2P1H!qOA ?I$beoK|UGr%%%H$Q=,,9](}]4W^sTEu^OFclx^gO"6`[)VdDPd2T*k Olق5kRNJIllCOƤ[e%yW01<DŽ=\CO? *ҥُSܧxq0!T ɇmd!j &uw c[MܡJMV!˻㽦. ]*3\`_qq 8bؠ, ,\PkOz4VX1L#d牄D"&n;p=>a't4/R=X eIxÖ>߄|z4}rB2aKcJ!~L_\Ox,d2D"X,J@6Y)hԂ@gW3֌U%0}xށ* |f15 alO'~۩;Vڣ\VM끯|2l^WlyƏg?=WxunNվ/#/j\Q{ɷqe/I\fv8<=-~YY#g&Qyv d6]mv HA[Ln3qg wZXZ:͉ur8Hek1 fuwb&L@yy,^gI|H͘dQqٲeށZO7xi~ {=^_P_&aX{Ҙ59pcane)4}*=yq*xuYc$Gkf 7cnkF}J"ٽcл  nv d!s]@2M 8;֣OMVf4'"grXƞݗm@qڴiZUޖ.l pG@azG)'k@T"Y7ct\uo+++ӳہq~H ;00 ~yZz{^3tt!r%DC[kBM7ɴYf#.G/?TN|B`d{u S]FUP }oT>a$XqDO7[!=oI^ZSj~DK#/$jb|c8$ʔа]Pt&kjBoDvlh+74ϡ{K(>(ǎu|Ԭqwaq:ln|$0_DkĔ9d2D}'õuw8Mc8$"~qx췍)+#~G;<dg+Ѿrn9梀1ݸnlqQ걪!)vPN?xoO`{6}#E_ߧ-`%NkvS%LiZE7@姿~ufi&q z^wEEE.Y1sV!ŧ/ˣ;,2<"%L kpqG) /E}?t:PXh]ˊA+ t2ݩIJSl6; ]kpc1$Xe)^F,ʾv=XVt{ IDATlg9~ rdٰWSMƙB^hN9WiSQ}٥ۻHLSUuwHg7_( ]|8+r͠(eӛ[ cftt5KUV$QQQ1cj0mT%#$D2|DB]|L_o>L͇hݢ5q.nXW^Ht1_`7^:T{5(H"$Y>#!j+J}Lspz9=؀ ^}^I T AW:%SԂql KI7B-%s( o`ɒ(.Aiq'MbbL'<'4Fɰ_@:՘,UJU%2/CyJ ycP*%8l8 њ0le2$+´ }mS ,b<&0Rӆ4~e[u v @?^Jx"q(u[ؓ%X!o8xF ily饷s4c퍡cf c4Xw7ԉG"dw/lWh3T8x+{j b`V}ֶ;u[Az5Se߁d;eSbqHPtnttNllASݢGGvO:G#uxb1zhA]1D~*]]H& Rvơ\By{I$c$GHf,=L&71>Dʶ'f~fj@.Сr1vR+tB47Mt5h32jE G}gK)euC=~jQؕb X~5asKM8xΙlii)||eJnMzUkTU) !6W_kC:;ذA#1O(-Q^zjEy`I${B|M -b-}$VhocW},TW'd.KXT[NK+`ߑmxY(߀'Hx9R :gg~ ֎/}G ͏X ().BCC2'GQqрtu쮮lX6x72\#Gt.o $ҹ^jմugN!@h0j7Kסyz+F%JV' 9P_ry3}e,[Ə9g8(F!6=(0n| /7=0mz&Oi6cVtueJJ?Mֽ{{3pH"+bm;v C:Ùk*t{N癎qQ,/1e>:1cηJ@lۗ)"3 յϞ5x{rrb5Gz1o|Ovkq(v^uLi%0zD*ر==9;xk2UIT5ǡ'4ٌ?]M@<ЛΠes'^mq)Fɞ_Tv,YBwtS(6UnJs ӗX{9%}Ļz5ғLCU$cL7v vLm8\ʤFD*%o%1ft~n}>jv?^;_1yX;_Օ;ܯb MsU×!jG5-ds+WHs_kG<%%Ex噕=o$;a"zsݯ51rНBD'y_7o]S-ԗ^&2!/j<< ɷv{y4egň'2(ɵnc0drdwfcC3F.wCVT #\Z\ʊ2]QVsO]]X_mg~:-]S`T@k!;R{6rd/6 nUA#CCOOYgp'8Mz 7vX2ow kG1vb u%Ivʫ%Z7 so9=i*;Ud<*bh0 ձ!|[`h,RGl@Sϣ dǏѯ7Q]YCyf8|Ƥ*z5d::A<{751"W)мi}'/ڈ&4mhXu? בރ#!Bz- p߫Gdb{W3^p%Q=eQo=. NAgw ([%ɐQ+fXVn&uhAcc9vr4N߈66))3cֶxׯmE,.P]#0nz-y,;rMo5g;x(_]%y H0iF(LU%:-k`cO5+0z<סrAZސ}Ui8t"*%HqMP@!_pXXvJzDLI@?) ٱ|BeEL{F7W~DQj=R]'1jLLO g^POt!Z#J3fbтfut@?=TI/*IcyV (/l*Kfcn\^(_7qXH!( dqT#DMy`Ye%*P\12L:j2*FhpѯDWJT8c!׳ح˦jOR$9 Nؽa@̴I8(8] ٱ- $ 0U1֡ƒكEo. /bذaMy<XW)0hGU@iXaUĦ<,"dHQQM|+9m\󷙘}\3/|ν^bVW5G]'yͱ25) Bjr>Ci2,jFi,BUc FW" ƨ ꉤ?s*烿 A/X9!m ONJ<Ծ=8(U ryy S11gh #9]=Xn~7}yI;=R0Mރ ]R)q8;'#ҧC/bjaCIDeQѹNy:'TG3jw XIF7n@G?e8醇q%ݙGO^_1#َ q~*?GY*^pn(BňT(vloI*&e/1-nn36QxI|jD c3ōTKhȎ 䞷`1RZ={F6i0zyu..GrhU޶침8N+TVnIUXɆ-Xz*V4KA 2n1rAJ+k*P_RKv2ؐC6XS*l}~N₏[%J=\EH]l[xK^g 9>WH/Ő$h[Wi!7DkküLl4:XPZR5urgC7O^Ӿ[NHF1{I؛dHyttk[2׊9r,˩r2wŮD5o<,@]veR"8J%C#q\áxE+֧l~vؠZ[Ztz V? {wO2T5t:=X1 OiY A# dzsb%E@<x~I9LH9P랒翁N6_U|넲],goıH?WoK[v(I W㷳0k xe'! ٣qܹۓ*೬Nk+?߻~{"حt:4sRp=)VUmaX-YU~8ߎ+(P;H}%.e-^(F(Zt$H"d/ȿc7[կ~u]v01FI$6o޼DKMMM䕎dX.q%PR_TU@JU즒3OlຌX; nJ-Zm<)7]2$UP3bjlfA2s*PiZ L@B}R# fOR_FVooJi46Fer|tVg[wTPׂSq^pPI=@ǒ!ctm`Wd\_nwI1 0Ʀ Hs?~T 1όIt*PrjG\h2~1lTYp +Tm"1z;}\0=VNhr3j a @p0aꂎo3e(*{"]\"%B^nH=<گejm]vgyKL_,<c|z }A']^8BFݮD.ѭG'hx"geDe2"0Ʋ3=gHEIeB6&5 bt4Bre^ jIv/$D̓{3榤aL ́P' s5YVyoIDAT&DfcU:I6+cfvC,N5F9z85vp=*g멬_X^ڭY]N*5#!U, SPp661}΅tmI{QdYi fII(&Un1g!Ń 6Cl=ժ:s`q=!Vkmcld6h:ԥn<{I$@$-ȵZ^SM@ 0' K8=d,069=M^iƦ)CDXȡ wب܊ ;c!Ӱ2jRXV;id41ԃ-C# Ik^3@ŤcfOv5kIc' :gaOprs~%cBpI֓/8'k"q= I>:3:8=i.2Fp.Kr=F"B ‚Usvy!Hw 2sID aX bMLRHM#qhϓX n؍u(УyytKMq̠ŹZLLؘĔYt1VZd%dD"[uY>1ϑ~mMdܙ5pqYS 1K1B͒X4S=Vsf9/z$ v8K q^1IX$" r˘˙(F6fb*:k(%_h#,Z#FmI_'\3Rfi[ZFL^avn" Q!w,Hсq*j%ͭx0:)N@Ԛy A^cy!1\-V֙B3=T$@Hl0 }5y֞GC&ʜ;Hƹ!uc>RsqedmRaUPM2dvB`P6D&+wN=8waZ:g-2 ^aF ~86űbkp0p1DΎɵ:i\ z(l(tn@Z5Y-a6,#e7G1]U1k{%7~daCFaPđqk*`uPdf:؂E5.$͎ 0^!'/`,o4IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/fullscreen.png000077500000000000000000000556361473342170300271770ustar00rootroot00000000000000PNG  IHDRĎFy IDATxxSU$M{UVٛ"*TܸAAA%=e -P6eB͸Z(x>O538+Q?^B & +iڊC📚R| 9!)"Y!)"Y!)"Y!)"Y!)"Y!)"Y!) )%,swq)$9uQX[Jr!>Xh,HYDƧc*2 T۩lK*]:˧]*b}j;kOo`_uwU cƵwV/Ev\ں5ju"@/U[Іeh'J֔K^~[aך u1IQQ3^$ &J" ֢sYOs&Ճ"YҘ@lr6T zH5Sk4y1Lz+]KnQLzymQJ7GqLX~">;7RBT_dۆ*M|FnޘF|u!cS0 ^Rqpw.jVC _Mn)vA)uUť`B¶%A󾌱=|*t瑏 <+uV#_m_%DLX|BK5ߝ C?@M+qւpPg^fϖ87vA(8NeIT44V4|Ȣ y=B8vIzOb+PeUI+n1 -rqj9c׹0ld+|BliΔWM9v?WϷ7W5)CPϵN/ѲHvòn#oNb_W."%EmH+cq24i&>ȝv]ZcDbL8=+ڎ~Sf9bHKuEH(( U..yR,G\Nz4KRݽӍ,lЯtn1>DH|S0Rhp.]^<r,8 ->8/2Q(/OwFO;2*"0e\ߙ,*^9s,2ucGl:5ҍHì[uPݩqЧFqD0v䴪?G_[+s9-hְU{a_W<<ibYp"/_nc9dVPT;.7ȼEWqB_7R RA k14i3R6Ѫvryqdůۣ.WIrATyR"`h[,5 #S;'otvX;yS.:wL8_psPxAM^<"zO Nӡlmp=¨Zͭq,Or@CR +D BR +D BR +D BR +D BR +D BR +D BR +`?9m5;RiEgz.c3 ,j?3eMDb̄HE>ZR%ggD4}8٩XYx-G`?Sj+ ۿPǶ<EдDx~51dlwmJ$O ~g kLB͊-QIZRW沮 ]lIb2[l?gy"-T̲,2}ť=tdž+؏Ʃ ..xe=d}~&}mh5dO`T]֑{|Gl?3ujѴ3ZNn #!g~f ~6XRx]Οvdr:RC)m CI8uvp5;7[U*x5.^7݄ggׯmEቶpůnR2.Ei(j<͙/J?~& ~&"Y!)"Y!)"Y!)"Y!)"Y!)"Y!)"Y!gY!gYt կ\8Մ)}3&M>hJogRۺGz6lb_8bD瑽CO&Oޱ ‹‑hN-+10/Sh?w)\S13q:!^^=I<Rm bGsɳE%7!-3~8D8cwߧd$'-Qn~<{dzh6c{ƾl#oA9 J~fTTQ䐒d+Dgъk4ۋ@_S\~Ƞ)l?}]~e{#\Kf?Sh9CJz͂)dp,7lEJ1uD1xPE#b?ޚ=MQgKh?S8D02\;ωDWʗr*QSu C7!~_!H gϕ~Ư~[/e5d^ض-$@]-ؔ m,05[{W^p|2ޅ/ʣ۱oCFqSlߤ~&jS#syk\2Ty%g?kZehke;OK>vqقygY#g g!)"Y!)"Y!)"Y!)"Y!)"Y!)"Y!) I٬ M.dgOLdΆrdN6Y͞˅HcBٲ=pk^މ,ZUbExR̳%-.F)|i=׹(UkѩP9y~\o#Lɜں]KM$Zz짏YD[>#GGY/e'%~W=oB޳hbY@7Le7TyΌeyK7y9"1=6SڗQD뮵h3'*v~'֦뛕Z'ob sҭI.oRž`R>#lYY RѝM\ R4Q&d:+1~fZ*.NiO@ )ʹ-z&T[ }:VY6,#a9ᳩdP!,*_zXx2ҙ]S^Zq`<_X'}w~\z|t_.x23i2`4,)lCUNBұe,KN`p.S$2 Zfq1ըe\"A/aMO)'ݴi>;nYd[s R2k&T;Q<غPV] l)ʶ"ڐizğ3Z~j/ v,©N*>}'lLS>Ԑ=\㰾d/DxlKK>h˴䍏JWf<#Eq-1 ;ʞ\+{v}P+&ȁ^dmRL" y8?mSїb JѼ@c F>b61y`XҨrx㖭Ci[oWOgMHI'E~[eO$R E)Kҥ1أSҷtХc6Ci[q,߂_a(og4+5H @H)+]#|Ii$(xW/1g)3j\WJU=*7[WY0R*(92 gnl,;sUclj6{U!y$֨g܉3 (.=I\)_K-h7Uxi+^̕pռJ .ߌeOʝt2ϟ-+"yȢ +Jdw7ҧg")Um$}Z[̣,RfAWrul*n=;R==b$3u:*aq_2nA[cwl>^*-sYu7кe .Gc2'/KJ.HFm0\ f36 ~uvfl !+oȐvg'V#G %Jtc8ɔteS6s![|S(GN&.9Ms8_]^HZbs 't$JQ,0,'h~o5d.Z50-D5k4-(98 l?]ΨXnC្`v#GYj{נM.Pqix2I +kӺ+RJ,Injd`PZck$j"^ܤf$ťssBA)=~tMB@Bj6FsꊝSI˹RZKl) g9")"Y!)"Y!)"Ya.;99Y|*RB%@>*[ +n~((V~/JH H Hq \])oOKI#x$6+,ZŬ%]*hhWd\)#TL.`;>m=Y{ڛ2M6gzw9  1!#3a K?HUU3W ̜.ͽԷoTT)+Q ͒|;r_9Fe2?~=/ŏc荶PO+?>~ؗ Ȣ )eEqh' dGPODԚh}T~Y7j#Gn)܍2$ y!p1?lz✕sJQ\B 3ygeSM 狿 P{2]Р]tld˖KU` &ل^õ%ӖHM^8V+DWdHӅy;ɽ؟S{ꒃL2k<^(Ӗ 7jg+ܥ^tYlU UC34CjblBW4Bg-a+m__snScMҢ 8 "kTh{}~߶! #ճ9Ըuԡ,l}~xw0:=ȣ'_AB J_\s{D]j+gXWO+PR%G4sb՗%L3HٜH4?NOKrbqhesSwyʂJغ?5 e'MŃ}aQD]9Ά7z5D2r1 +_&!*~n"<;fCSHIcu /rgt7Җ͹5e:hHW |N̠M2T5ӵB yAY%(RY!ۄƯϝNsX{6Υ6dӆTb_Xk$[C=9;o'2V2 ]<=ӳQ[mr/_E4֬Աu3_fe#Qa?wt= a\ȓ,@ _EF_Pa0K.gua ŲY$>q_YvgWm|(ZSdg:h`PiGiG1^E I׸gA)Pک83 =vJM=4KfOcᜓdWS4~Ѹ2='8*OJ^dŚHQ?"|ͬNz ^ ifv{_Tw`;Fy^+Ԣ_dHҺL7gF.'^||-l2xtilrYch,D\ZmFYId{cWxrbCt cPQ@^Wo= I\9wۊH%v*G >EbB+;2ģ/\JcϷ~P[J*`{a-KrjŃ.]{2.ؖRŲ;ՠG?&U *o l`h,N}C3Z )SA tn$ѤLj'>/:#)=Qޭ=_+&7@uK|Iz6g=i8&s5Q zj!BmEՀʮz^-Yǡrˮq L!jkgSW0plsfj:Ǧ»4??ç-Pˑ A/e s"6ͫ#8s^kb9Im?UTAd#x*uhPH:==WnFn&oF5*| LkMŗUk< > ^Ti3uQQyRN] GZe*tI |wq1]ɐNLX0G`W9 T D,r;A"#L} ?usϻ9}QdȈD_AS7vR+WޭHXQJwYڟagc>7&|YL"d IDATbe=.i ;O/VE(ݔMtgF)d:#yd0o1yKI}l_8?>|WGQtBYT޵`MGNOs.(Uyn|m2DwL=ݺ>)}Qi1{m&4WMTu<.qێ޽[и^mjTJE_J{_~.'"|i1&y/ j*hhēJzZZAѠQ9{(8j͝YφASeu+P '9>x߷]J'j< relppn?5ǪU/Z\CaLtSLFMV;e6TLĮ{YݰnM2_ Ys8Vԭ6#jIIϦpMW67@6SX鰷ӈ }q!YtØ#H|Wȝδ~>eѳ!;z(?R|{B YnR8E>ph|;\F$bd/t1d(??_7W*m뱨@H,_rьG%WS}WVg[T`?&jX>}<[Πi||5 KVQLg>J~4بu[ oou2_o@ ~`:j:v˄ Rb:fv%?1qe R-=ab֩lTJtlmX|\G(!rS8u55׍l/h_<) V@ј5t4:װּ?}Z|3}p Crh1KrFث4e2,ˡR_> }"@fØf"/cr v(T\I³hVOOt2~z!_4tvYqBpȯڕa#~km?~s`(Z !ql eJLYD fuQwbH &|Ҽ>"'a24Iڐ23ɼ MG WԸWJҚ2o|DЗXe: ģ h՟6VbHǵl.ݓKtZq\܄,i86-GnݼjoaXZxT5WE/cƤ̋isa@u{,Ǥg;U~_?3{2!8:s~ccv<"V5-U*uhVxk'\G 1.Sٽҭ5/\gV{*u_>_Q2Te*Ux6qHү3?-i{quXL L KD BR +D BR +n rQB dUIR%@^Xڐc礦R /D BR +D BR +D B>2 }'sVT|5c=kף=8/ً7El+4%KJ^"^1P׹ N(LC:H96n3޻i XœiûӡݻO?ѼysJ,E&+>v0}Y-6똹 -16`Dӌ/fә,h Gဋ;n:v[AxtքtRI~^+'RؼM95z~%¦ =JLD|У ogǧիaD4xrA^bhؕ9scN3r 3xe\ДLH=s9N5:-_dw>D}ВHNtC Ys!}/D5} KkGJ&~rYh^^^4k잮QT0m͙e'9`-{U& ^UH55yw"wJdGWR} ,G1`rpKF_+2HAh$9^Y7mV?viSNw %Y*DGTvζm۸v#G 2x+ٻ cX>xy4.V)Js0l-VefAWrul*P(loFCd7ag6d|HSyTIlR㣉ʴOEE7 lEH<[ND֭[-C>ͽ_GȬ[>UI1Uă'0=Df~vR @Zb,&g7 ׂYv5mzC80_GՃV=:`o;V:G+ϕa)su9ۆsv+tkCɘMZBdXô("b8¨_ǑsT';SVt B2j( xd⒓HΔP) z;g_3|%٠(ڼB-1~2,'g$ɰN)y^e a4*3&s!h/;缦=w{w^^ӾfKftӅ*;5obP^%ǻ.l\O75leϫ]6ݺPCEƥ]lMgP0/t6ڴ抔K=))I75$=IqJ;)Iՙ8c,K@2*v"pMkySWxy4 nlB6jywc yE ĬC H H H H H H R"Ē?E8SNLI&lYbev^a~%Ll2RH!22Op`֭ǾOۚDz)q[ԪAk:Ñ$x4NSPN1/I\mk!@qtYj̼oÈL}h;ur펾y^va0`Kl[\=M<3sҹ{ 8֡eYy%6eQ"pBM~h"5,yځ*}x% zk;ɯ Nk.ka[*G,+-YOH>wvcӞtͶ$vjG8Y8Yfe&Ǔ7!iDA{9iI!.NFGbB-]JdtrRZ(~z>Trܺu\kLSS(4&aIӦ=֞>khTWip~1dpa̗3v{Rkh^i?0} ^7ZWX{9Ѽ-8r:K7:ǽ5UgoFs(~c>>=i;Scl?S`_3`~nOsdRE)w.O%6?6_[>S)zԞ:+ 4:K[4Iή$=^el0َ 93Qۡ0)qkЋAY3{aй ܇mi13Buӧ'<#usUXYDz{|jᗦjc iSQa+(a ՚;gg zEK}ﶵ~V<ύb\r'i¦(f}WeJ|jKk/l4-w@LGRp6\eIP u^&1ӶtFli/,}֞B{ٿ”Ez}%m=Jzެ")%mb @/ XСu޲{<3cF2 m1S2Fs&);#dY{8^ :2`P9S),:)t=V~4H˒p*RgEݗbp3#K̩DmkOQ*Yqony܆<0uh2Q'r.WOaAlk߀ >$ҍ* ~B@7}U.thmkÔߺXgiRVk<ΪsJ*!c8)귧)3W up$#9Ydgc4!qBUsv ?-:stޘFX h_Ҹt0SJwEBCR +D BR +D BR +D BR +D BR +D BR +D BR +D B&TBSJ}R]Can0%=N1)| F2I՗̬)-ԛgkCX*Џ:T k=\}ec?:t7/g%E] >xۈQog2 lU(I 9xfjEzvZTfhBƂ5-"l'oL)ܴ{WlDabL>gȧ  a9~#^V?p_3̢LKYRx{4 ] Qn#"IY+,NGKa|T[lJHɐIjz6EvkD}V,N-yT|,]2G^gM>a"K/VDތ*FAS/9i $g B6 1YJJl?UVC>mYʽk2K}r{ٙa?o]sw; Cfz`*m찱%II#NN˰O%fWS#itXߖ)ׂ~⧕۷ڛ#?(Ò>ˈ>#$%hi&INJ+!3.t21Eƥsv#8Aa{JbVV`/01 =Vů/|,('~&%N˹ke]a8oݡpF}2'~8-'~&s!0Z񾃘T-Ce|MiE^e+s=@G`?H=h12ʖΝjգ>QQ`\hWۗ}2.?~& ~&"Y!)"Y!)"Y!)"Y!)"Y!)"Y!)"Y!@JYlXGHkYp1+JCf PXJ9ڽTZmJsI-tg[OpC;L]c8[Nded2u> 2sR!ΉNk-!Lc^shWkkmm(bog2*!mi0y2.~ϛ'谳byJ%6@K7d8RM+/Jh4?d2e}ϐW E$lpsef }j5勘_(eqvl4܋Wp[<t\8x"I-b%5M^fxF:HME]*AHhmC :=LhvMIDATÆ g޼yd?C6Tp= dLοKђWUt; `.%7~{-Jm&J/^P "*iY04RLػ8pJ\Gkѓy<3Cq"v`#_}OLQD濤֘I:/KL˯*Ц*oFk=|~&}Q7)%"k$&,]kPQ$a3|РAJ|CzozO;W8mX>j/m4L.P:UilLM>ٽdhнbBf]׌$1Kn~XSobxTkƳ[^y2gBK:{%.[q'o |=>9 LMw[㒖 ݌dH%6:=FbS`(V@e Ej$f &z/qHp<(T&6'tI*ЖJl D;q/?)Q)E'qAACR +D BR +D BR +D BR +D BR +D BR +D BR +dH)<;q)#o ɕ}y>R  &2AW"'#,Ź[Wk8c*%pϠg+)1fq(Evy cyR lLݞtcѱY)݆KFu{Dꂹ,1ˡ3GIW <`"lqh( Tl -S{p?&ވR6ׂdBiW}pͶĕZ]pT`=yGUsM&! @ HB PQuVlֶ"*E)*=B-! @zSdR ˪w|'OΝιsAINNAU+^-o.c/ZjXaكQ/fb5e㛵)*"6˵4k?߂6x8ϼ<kXX֌dRx;T6X^2FuZgGJlمe d ".;ƕq Cv*.y q3geK:\\N;O`t,2z<ǟ]׻o;HpO?^dMM-(]Bן]c=<:ހTVMs)q7&I8xuKe<;9]39c&j3Ki [Ǔmg|wf͉K8P{=r$fbgKXCnt?.8Ϧ5q2>X~kU)@V"L~/ƣ%ϯC?aEPWP>S2hvDnL)g7KYè1Lϰ&eb\???tJR)x(pBF,nBb k08IWqXq.ט7P7`8$5Xyg/^eUhW|`3cдYNZr.7ɗuKv {/o)YO (o7pfxUTnerjb*\iw[x$CGs6\bʪ̈y~~~[g[ywq#%BkʁnSah.־*<dg_v:%O1/oLm#ablo|r]G7@A1 F"*x%(7NJ39Kmڊ*j-ͤg)b}"fplv. .&i{#i]4{.5?7X w qABd"="A:$+n9dʝnq|ΣxL9|3fmF^˼y[ϏUaDYENxPsEI7|)ʒb*組Ax,Ӻ2ضK)(0nzof&~N}x4s?60@W˕NKM*FU%/".!y%>xL$w(t Ή]85F1pv۶zWmSy{<"&;Ox0(o{{f)3q1'JgGݽDٷ+|6k_qnq6o?C\[‡FV*ͣI9\1圎[SXS;`=ij œʡrj{I8bF:!9c %[փ3z5d 㮆[r\M1rY(2ڢtA5) c`Tg#~n?J2}??ls[]{?s8Rw2EFMQ.%hI4|7~IּwV+uvJZ["{1~ 0AٷwQE A~Bafه^KL~b*d9ԮJV03tģn]]8p,Ό ǎNu AJ8u—cryG7zk)=8}TØG_.NVM(+SS΁M@9F#NSLΈPph@8e?X;ؘMI<|rwFfpB*9z4TهdmKؑIzt:_QI7?=+UwL&ag sո9Q߬bP A SG` ~ IGYv-k.mzhqtEbuuTR ^egGtLpXgw<wn=ךä/{BkT6s1 `L7wȄ -q疑̠(zmE-A; ѯ=q~!to1oe]@.MU% }lobQ8`6x9_=;~0{L m}- mg>h(k,w'ZZ ~ EĐ*6x5  _UZ"d:j]XCl֮W!trJpZ-ч#/sh?ٓt_s$': =OFC&m6N6TBM8N:(z6;%?1o9;rѣLu>Ⓝl6QQGذ;hG0wؿ?_+~GN@/FL@_5Ugw|#ui.(T}\O:#eUTU](5J/rHIA%^և52ٺ|; ùH|HBGa$JKgp M'okĊ2uF:ѱAI^?:wJX+[:PQOE( BR( BR( BR( BR( BR( BR(iܬ@%L yMr%q_hU|_5^ҋLrE I/q'3%\I\Zp? vClYU>Nǫ)LU.dߦT,QUckghW I/*4:[nm(*Ʊ$k%SY_/D<8A7# N2{6НEI ǵ+HRLv\kwi ϱ!>BmEYI^3&ՇR-lZw<8ZuKȢOl_y6_V iX6 E$0øX<*Ec5-Ys: YPSfDkpDmZ7ft)>otcT"S$W}"SmtUPRގaM$|w5b|͕2rӔQ>˃lP{~.bȃwvZUfd4$(/$^Yf@];Y2 Ī\[:1[G:^5'יI+ח F0{,"4BrrލQLظdr~~ڍO'm&l `ɶH?Cf\Ww7XH?K\Ӱ,NfvExvvgj/WJm^qs;.G)o2ߐ~D~+ٷ_L՛;l@Ir93/S zs|  ZAg%)m){BU_N!<[v GPGanT (^7oZKe]_KLvߛ.z-U=x|k#1?|+7")B|^"5#?pb!n!=„.tշ~Sp]ZÓG.ttFwsH}7[]kH#CWz˳Ei6\e;FwYD w-~&P@A @QA @QA @QA @QA @QA @QA r2>,d#וSPR1PBꉇs㸲l\I$'P4?ۆ4jDĕ Wh ``#۞"ג_Y'_dB`#HW,c٠ɽܭ IJGL鱯xD{<l?ƌ\b'mƃ/0ʲWގ De}pAbQ@:Oce0%q[!1tڧ4njZYcsuԻIT^cٜȿ㝸{Z_<vTpmw?#$/7z] ![nǘ=1˲ˆGAᐛz\$퓉}j _(4r$xX"} e![hږf5tPApn?Nb ]#u ]D.ydu ͡+Z>CkS ~]> 22QSN]}1yqg0MMM>ğoh%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~ Z%~Ho|}}I$ReeG (++Ο0a¢E^~˝innZ^^u wFM>ɓ'_֨Q9"""UI444֬Y&ܰaHQQ1GQQq +"$'IJJ\Gɩɍ1B___KKJ̛7ǎm۶s0 [`ݵk׾ijjcٔ';;@EEed^o-0h3gp8dY__|G~WWWL\\SUUuٲe===ikkH$˓RRRĜB6=douǎԨQo>vNOJJzo'''NѩP 7annF< ck׮-((;v+222RRRxQFyyymذNřts>|8o޼v--Tyyk{nF~/--人ymٲpLr޳ٙw^^^^^^_yWw-q8766^pŋ RRR^bXƍ0L@@L&r8okkk@3?~?ʝ;wh4 öl/899ݺu[2eJ'OLmyh 60LE___fbb2cƌzn2qq񀀀Wvuuz Gq|ŮIݸq#$9{ljj*ٮy޽PNTSS3<<ŋC MMMMMoaeeUTTTUU͛E1X++?}TNN!aخ]X,g˗//[w'~}OsN~~gS؛7o ~4HZZZrrgfgg-,,,Z[[CBBpVIRRR?orss~ a$//`s-[x{{7 qFkkmۖ-[bŊҼX,??>x!FYY?1IRo޼%zݨQDNNիW V[[k``u.q%55 ,+++Z[[>%00i8޸qCKKkڵ^:{lAA/߂fܹS[7nܴiӨT˗/]!Z~}ww֭[;::v-++200rJXXXhh(b{{{hhheeƁnFNNNXlbJ}1׷sΨf-""2sL+ D644 ^3003f Bd&''M |wT*۶mp84iӦ1LDHt…n/_~c4~)Dڲeĉ/\`mmeooh" O_zU__`0p722~Xvv6J[7n@uttj.ѣGo.nGPRR:}4񹾾%ÀzG+77&f\2x111Gy`a-az 9slݺŋg~Ibbӧ7lp]DxGG|||Əf” aWW|CBBBǏq|ҤI]F`ƿ뒬˗yw355pg$r劓*((lƍ}}}>D"]|v 3%eee{{{gggYYYII'O888$&&>z>--m̙ׯ__bɓ'BT*?Ǐ###lllgΜYPPP^^RUUsw!%#hhhܾ};4 L&ёvaaḸ8}[FFC))),!;;b}vF1c͛;;`6iҤׯHf -9::2={={ݻ4ć={\xd0l6dH$W3͛7m۶m2|_9sf{{{lllKKJjjgW˳$Z:4cƌ&0Ҳ:??w>QG0lʕ|[[[ȁL@@`ܹj%d';wDFFߒC+-]x1..񤤤pkkM67n޽[lȰZ~}rr28A"(Joo/Q-))IOOwtt|-oQ6 Sfdd455Χ~RRRl6Ɔ^YTTY5Xii^h4Z@@G۷o&''߹sgD͛׭[f,Y888,[,&&C|m1ZBiii ܜ`0_x1`:ZUUF&ڈMKK{4ÁcѵI}/En3fyaȑ#o> Kx'/LRzzz11 aa[)S )""B4"ϝ;mZDuÆ  %,,\CCc555ݗ/_uss#HpKC`8FKB|NHH >ϭ%..NPhiԨQ$033s/s圜Z)-- $zy}t4 [ZZ@Ruuu_xBZZ:!!o"%%%8XJJ lYsٿzWWN?pw˗/_N|f...o^z5R!Qwoݺ5z~S[[{ժUΤ-\PHHݻG@@`477s8--QQǏkhh|}!T^^xoDΌ>|S aaaSSӬ3x ]ZZ "..e'yݻSL9ydUU*1LF]]ݶmۈ޾s+Vx15 ߺ%',qaҤIiiit:]]]]ZZ?֭[q_dɝ;w*++n߾??xާB?#PԳgϸ-q!5qFui@R}||\~FYXX t8o"{oqqի1 @\mmm2%ѣGpϟ?SN8"cll|%بq/^?y!tڵhkkk0dh4ںu>l@4S1 {ԩ}}}ڝG''/z yyg~j)DKࣄΞ=kkkfdӧ_kF0bĈo8nnn䤫K0hÇ all|ImmmЈ#,,,0 ;wQŝPӇlFuu'''blJJJ|V0짟~ڴi1͛7oݺE\ 'a'$$$/h;vغu~YKNCCC*RVV>v… I$gVo1|UijjVTT\[gcWu]qqʷ|O =h h h h h h h FK8)|+7077s玪*1IR544f͚e˖ 6 .\"G e));w̜9!`0'Oloom۶K.-_oرCHH:usAAA999 << :iҤ{/WWד'OO%,BHQQ199Ԕ7xpp1c>]{쑖]ȑ#aB2e 7'RRR g[×cXEEE/_w޾} ֶflbnݬq||\NN,Y^[[ݻ֘7o.^>}zQQرcI__ϟ^~Q O<ڸqǩTѣGw| F$0aByy˗/?{zz p8NtzbbbXXرc***f̘uw+QT_|9wJurr⽇߿xb˗/--- ƃxӰ'Npcƌ)// YhQMMʹiM6-))d&&&ZZZ"B0A"$$$x^%((ƿ~ᯣR* & h E.]_LLLRR2%%eɒ%RR+W;wNc7nx2LDKC8p`ܹ999/^E蘙^ZGGGNN.22ڵk_ '$$ܹSQQ[hX366~?liiYRR2~x"Z䉧' }=x@RR2::轏<<<#""n޼zڵh%%%nKHH(>>'NR_w&/\#11Q@@`ܹNJII URRѩHHHHJJ.^h̘1o޼ nRrrE8GGGђvDDDYYnbbb||8BHVV6::2TVVjaa#<<<9-%%EP<==7ojkkgff HK455w%_dnn{neeeޭ[rrrS8 hIXX8..… >>>YYY222>>>"""ĝ}ڴi޽7o«Wytttp:6\]]bcbbf̘իիW_>==KTPX,Vxxgx1QQQo7q<$$Ν;K.8}4D0 XjÇw//Ǐ/^͛ 6'ݼySHHh.]P(+V NQewM_BDKSh޼y111Pb:::fff]jiiYZZjkkkll把  BCC%%ooϞ4իO>uqqtRnnxZKKjΝ666666GVVtvv5k\]]o߾gϞ;梨%SSӐ"Xܶmŋ%%%EDDN177䉭I̙s…+W 8p3ا%QQє?CdFK'Onjj=߾}[TT{oݺN566N4IAAŋD(oiBOO/;;{ԨQ&M G/+W" ۜ>}zCCC@@ ߿E"˖-#&qY̝;$<<ŋVVV|۷oZ`ƌ˖-{˗/]\\-,,JKKwadd7|qㆀSNOJJ6mڔ)SLLLxR}whi@Y@@ă "Z={֘5rYfFKO> s_{)--% DuǎE"H$B9s %`Vikk#߽{7gzii;o ߾}ipA%%%'Z_|9bĈ!9}h ðÇGliiiaG=&晙#G$&'OL~*Z1bDFFƸqto"L"l|ijgƎ| yzzZ[[#;{욚+WΞ=XFݾ}f$)&&)STUUUUUTTTܽ{wϞ=ދ/qk{JJJZZZ===-P(eee4->>jh0d2߽{7sb6ڊ֎ VQQ ijjwqq2e\VVݻB&Lhnnz+W,,,:;;/^xew/0lΝ֭CEFF.X[rpp@ۏ3ʪ{ȑ^^^W\!zi0ž6]ZZZ__(,,|ׯ_<{kHP >g~|wjjj6nf>|H*--Z~}MM wZww7o2555n~MM aL&'N8qXpN<0l߾}Ċl6{ڵ/^}||6mTWWj*UTTCEEĉ' `07n|/_;rH{{{iI"&O\YY5`DCCeNNN+VܴiO'D&f͚ aa+WZXX0 bݽ{-,,eeeccc?nhhx r~GGǷo~W hR===sa0T*(drJJ:L666#$$MR-,,RRRL&q[[[:8ȑ& IDAT`jjo>ooﲲ/^ɄN:bX}}},KGGhD@Mo~SNeggd{zz<<\RRbnnN&,Yb SRR6mOOq577_t)//oҥsE]]ㅅѣG͘1c ҥKex\JJѣ9y}BB?&Z"*8Κ5kӹf̘Q___ZZrorUR__СC➞YYY1 366PWARO~{{r# ۋ:{ҥK&PSS! ++ClCZZD"BҥKׯ%EIJJ={X'OP 8coo]ԩSJJJl6mmm===666W0LPPPLLLEE7 ƌ#!!!##t7oޔ0lڵ7oVPPXfѣGݻ7gggׯ+**fff8pvڟ3xmm;::yzzR(*h)**ѣGNՍ޲eΝ;TUUw܉TSSsuu'b'N;vlĉ6l H'Nxɭ[܈ Y[[;::?ȑ#!wތ "٦MTUUdrQQѸqH$кuz&?QnȘ;wnrr^=PWWd2;;;Lf~~uwwwSSӘ1c>LuT2a+qpp\@׭['((믿ho|P&ϟ??{,Bh"Ԝ?~hh(ߊ7]̭Ad&iffF&:;; 8L UQQB3!l;wgfðs|||L&˓'O~|KKٳgϟ?bdDאsݱcGjj*fffKKKlvNNéfXAAAD2]]]gg羾>?lj79Ǐw&L644 H?ǧIPPp…ϟ?/**b999Cv-8͕ۂqFP^^iiiiii!~Μ9%%%܍B!##7oސHu/"""V"-2PAA !L˗/}||rssykB7..֭[K,wހh4__)STTTh4UTTڸUUU)ʱcǸsrrrѾk c۶mYYYO>]n]~~~RRRII qZZQ DT.\0))IZŽƊXޯ }}}/_0Çt:ӧl6L&S(%%%nѣGfJHH޽;''gC266v@s[[رcCCCy;Gw6J&ϟ?9sVVV:tʊ{N111^^^t:J%镕ܸg^111UUUWWd))k׮=~8??9ptt|o74>uAq8^*%a}jkkX,gg箮 .TTTߟ3eʔt%%%99\R"3l6x )l|6޽{-}J",--=zNciiݻEY[[gffʮ_!Dt(ihh >9997n܀B*L>}:Q,))9 :ŪݺuʢEV\SbiMM,]('@PPpݦ;w$ y'NHNN>x 7N";VMM-)){{{o߾M˞3g.**zϴiVZի1cyyy} NguuYp8[n嶰!9uT%^]]Νcjj&..o߾%KO6mb0 7n۷o|HPlll*++sssGA4 JHH,Y$..Ç8O8qĈ'a.\޽{+W'N{;v>}]__?99[fSN]~G]]]6mRQQ!j:BNNN/^0aB|N;VUU3gL;w.w!$IGGf]pat:}ڵ;))Pee=ð&,F{{;oLygxݻWNNJFGG3? ޽! ߽{goo_]]bO?bٷn/_>~x͂?c[[bcc҂ٳ}}}oGl?1~v(muuuff&Q.uyZw^N&ycXt:=''4|}}]000-*hcc 9s233t:Q=۷x,##ۻgٲennneeeDikk[fͲenܸqAo> sN##7o&ƆpqqZfMAAA``ݻc88ࠫ+..x☘rΜ9D ))9zSNsgVUUUTTHHHoDYdΛ70kko;L&7} Ԕ ܹcbb ""UKKFm޼944СC )!!1eʔ"===AA[n:t9!!{0lƌ&M211aMMM۳gϒH$"N}z~~ܹslΝ;ͫ8w͛7[[[׬Yc``PVV/g~;988444/^(++ ݰaOPPвe(ȑ# ̄T+JJJ Xڵk>|XjN 744466~5QKII :u*KZZڹs爡kdFFFK,)//722h qqqB $%%MMM ܞ>}o߾ӧ+))# DGG5ѣGk֬0LUUݻ|~? yxxdgg;::!$%%u޽ӧ222)))OX~׆xKG޽yiӦ-Y͛,k…\`WI=i׆㸺zLL 񒁛ۢE|||$$$BL&d*uww8Oa9GasccaÆ4????~<777++d2׬Ysq&yoqH+WBiiio޼h_vԩSϞ=ɱc$%%P__wBf:zh]]]FFY`-[9[ 3226o|}Ɋht:]]]R@@`ԩ!;߽Y!F1y}p]${@G8N&R ߋuM~~wП&aDT\\0a@DK@DK@DK@DK@DK@DK hILL,::z$a֭۾}; 8>c yyybNZАJ._l =}>BH__ٳg߸qCUUu*:::&L>}ZBBb"aaᘘv \]]OQ#H}}}| WWWyﯯ۷mhjjjjj~\ $--sOOO5v˗/%vAAAxx1cfΜYXXm۶ӧgee>|X___HHȿ.\sEaΝ;?ν @P8ߜJ~~ܹsz{{;::X,VWWד'O2urq?<|Bbb"qg0555/WMMMjj*i|||\\\@@g^ڙK.ʚ?>wSFFƗ?nz@P㽼pNmmNNS[[# !!!))x⢢1cHJJyNRRRBBHv $%%F#G|eXXXBB™3g 'L`hhxK. YY蚚uʸY-,,1bǑ#G(U^^͛G5!aa;w***Oێ !MM]v}gff9)1 ۸qcVVVffߧcȑ#7m$))yammm777!dmmp<HcǎݷoQzغu֭[BNNNfzܙSN ޺uѭ9rbaN\\|ԨQT*UUUB|Wab8FKjjj&MB9RYYd?~\DDM!--}޽Ç_v-..޽{!!!h>}0009s[$%%xruaaa$)***''!tl (##C<%%%utt&NHRǎˍl8NQQ uuu]tiƍJJJs΍J***ɊڼVWWjll"Hk׮A8.))<<`X)))>!ݻ700(7o :;;Ϟ=^YYgCѦMu)bl*Ç>|H싔ԇ8ðlc򅈃\ZZD&58l Jkk+iii#Gf2D7$$ 9 p~7 OOO6=e___uuuâEB"""ImmZ^^~a###dzlwt񄄄x___111[n9;;1L&GDD Mvҥsq?X,2[lʕ+6m4 uuuMM-[BN߼ySDD'88(222((͍No۶mvppjkkݧNzMޥ˖-# .G}A[[;***44ZEE%+++$$dpL!*Z>|AA(--Z~=oG=55]ԸU~~~cǎ}]RRRNNXŋ'&&r nnnnnnm^r!bB>|8qbtt4A`0 FDDhvvƍ?~˗/9޾X%33D"M>BZZL&oذ_ IDATo޼6P(yyy ĄTTT8N}}=ɜ1cǏ۟?>1Ν;666Wh q999vE&ϟ?bŊ!kZZZ^#:tH\\3++71azzz3T*7~jjjq_r<$s83gرfۛx4;vl֭k֬qƍ8kb-YYٞbDAiiiDܗB.]JMM\~}ddMmm]__߳gU޿! B6mھ}"bbb}||y+O:f>=%%%1 #.O- omm=zhXXX@@}rssx8(_ǰlvhh( ^zo?5n@AA111t:=""bڴi_H`hh/'N8q"B5$$0n8t&)!!T]]MLZZZ__Ç&L(((.jii!.\HFBBѱٯ7..܉+qck\\ĉ 'OѺ%EEEAAA??7 ShhT~Y__L~1c^xٳrޔ%%%D+VN>d2\D! ޲e 6H$F;}]d!!!AAA/))˗߾}Ç_uF6666<aBBB4 q_kWʛ7oy!^&m޺u(暛ڗlXTTh.D=ZHH7+uuu '2< effN:ݫݹsLMMظdssCCß~vӦM #44Ǿ!**###((Hdeeeddx+k7oO2eŊ8H$---Jvv6X]SS;cX^,ڢXDrIP[J$R+ԑJ)CI$RI߳a/3?ot:_gfyyDڼyd2EDD;pĉ3g8::VWWYYY,]]]q߼ysPPFTPP tܻw~9sɓ'?uV6gΜ[nť3gp\}zDD &<<\x1|HtxxxCC𼈣G.))uP'Ξ=+P ~:F%nnn흝< p_lbSRR7mf;vիWo߾mook>2vڵ^w~fvv̙3^ )ݻwcbbRIIi޽oNNNۃ&ݻIII^^^l͛7`aÆ \jUffYQQH|||HH9xɔ)Sڮ^:gmmm ad2L&+((\v.11qɒ$ITTd5j::: 2$**655t6Ν;d2YMMȑ#^;vxDBQ5''GNNE1c$$$l9Y=:$$͛ ^PGQ4,,СC( &Vϧ999xNNĉAʕ{8q⧟~B ++K/J;_0i0GK.\`قf&z꼼Ç6,,,׌|>_ ,Ǐ q޽W@yK'O.,,lhhX`ANl zD 11DK`juLMM %r0%||:eeecccggRccquuMz0 AAAZZZ/))p8G> z򥎎Fdd$OxWWǏϟ?ӧ<ٳgG6%xwwh3a6b2z⫷??*))M0̙3cBQtӦM4MDDd;w<رcnXC냕lܸqϞ=CUk.)[!-M0… A&-- 87l t@pÆ ϳ0lȐ!zzzcǎ544d0  EIIIOOO___SSSEEEAA^͞=ܹscƌ 6m h 7&%%ݿ?66vA-Aз I(=AA ~ h  ?0Z    % h  ?0Z    % h  ?0Z    %  h`>}(sN SEDDH$ 1 Y!d2yA!((h͚5RRR}6lXppn+9sSdddEϝ;CΝ;G̀  hB5J^^^P)\GFF&11qӦMd2YSS˗O87k4MMMJtC/^())٫\CCjѢE!!!bbbޕ;wR*((khhhhhiӦ͘1C("C4,""BPGw9v온hAР}hJJJ EZZNz6{'N477߹scɷoFD]]=11q0ٳeee7oZZZIIIߟ"]]ӧ2DǏoڴi̘16 ߿`pӂ׷nݚ={vgg'Gdee_zϷk0PRR3f MOO1zzzvٲe+W HHH%rrrzzza{{{ ޽{g>z h0ђ-[dee´,Y"++ ޚ2e A!"--OQQL&TJP,Xf\ۧNp]_ϛ7o.]l22|^}l6668؀hILL G8;99]x͛7֭(ܹsڴiSL^6+++==]c==VUU9sL&uuuEDD;vQQQZ ,--'Mt5 zUØfo߾]ZZ~ ?s5 o0ĩ >l0 Î;vQQx{2e Fh:::555|Pkhh`mmm222?xAqqqO>e2d2L&/\޽{ D"رAE{ "n:Τ:A!CL>=&&F*IKKkhhܾ}Ajkko߾!&H 6TTT]pٳ/0LVVd7~ WWװ0}q1ii龋=Tݻw 9ΣG@3g>8 A4%UUtOa<==|>!!!BڠFEEw܉622B$00Ç;vؼyXfff||'>|Ȑ!yyy<8p@LLL]]ݻcǎED\\\[[۷߿,z-x< Μ9]VVFDmmѣK2eʹs.\h! .}X0~0 355}I~~ 0F>~Wggg#z۷l_\\<񣓑x͛GtɡC83mڴkvvvl8Յh}}ܹs 033ۻwB@DYYyNq\,AW\qqq={vXX˗333۵ko{={^x%66l eee…]]]7n IIIqFyyٳg?T T*uԨQ4->>А TQQlA&LxNNNŋoݺtҾ1Ӎ7캻%%%jjjnnnd2rrr_gۿƋ8Iˣ(yEAAMee .z._ ȶmۊ455SSSGU]]={liiijjj;wN: Hii?`EEEE;wA/^\zuƌwAd޹s499yܸq>A`4N[[FK h A0w@[[۲et#Gׯ_ qWw7;{,tss HII D]]]AAA8 #}Tp̙9zÇ/X狋;88dgg/A͘1 -- y{{ =PCPLMM.###..>a„ /_VUU ,//"6j(///'.]JPV^-X\pg\_~~~~~~T*۫W~)((h4RԷo߂򦦦Vbqq7oޤYd qr4 C|>իWO|gςl$IIɤ!CKHH ^޽{s9992qpp;s r[[[Lٳ',, ̴AԷ߿?<<͛T*uMMMW166....//!beeeΤF𮊊`*322\\\{zzPeX}c0,7Tĉ<ҏbbb@XWWw5A-[6dȐg϶zjYYY}`-Q(___SSy={lڴi .ɡAAA8X,ooׯST'O˳Xo:wbhhhhh^|+003##J222VZUSSD ccceeΜ9ĉd2633Ç1118qS>.@FLLŋ'1b`gg`Ѝaș3g@]aΫVrwwxزeۏ=/HEEENN˗A^ll]KK˞Ǐ J233W\innU[[p-[=\nUFF&f IDAT<<^^^)=6|C0W\QQQSSL.,,t5egg AKKKKKk[ћ|nn ld2Қ}||VZUPP0zhP}M[l ^Ϝ93o޼Ç#"//XR\\vZA}]]]kkkWWI&]!'Nu EQ H055-**244`cBadddݣmllRPP ~KRRb)**2 w.QTcnn~Emmm2e˖'O%-Z\]]}%'' (q={ :TYϮ]ĉ|>o8%|i{n0A$AA0雿  苂AAP`AA-AAFKAAAAP`AA-AAFKAAAAP`A}=ǎ˚(Ο?޼yXjl#18 A}ܹ#%%M%%/^$$$͛7رNܹfȑ_$طA}=/_LHH066꿦JLL L6mڨQx|d   ,hhhXdQ Ogjjݻ^-aaaa?p7o:::lllDEE]VRRm6__֐_____5k :n c% ֬YSWWwիWc؟?d2{-aՈő6335X[[<;0 333+,,0LEE%??OգFuΞ=.RRRzS bbbӥ-ə3g6 @SXX8l0rUUⴴ4 A!Nx" Z駟AQfyC_`0y֭{$Htttjkk{8zjx52ŤƌJp Z{S<55o [ZZSWWwܹuBApwrr鉉aaad2EQ vS&ikk9[3 e0 'Aɓʋ/888(++={(=sbI$]{{ŋ v%͛78pرcQQQk@@@xxpFIIў={233Y,NzzzLL̊+zzzp+~(酅FEJJF %Q _tp5 QFF y򥚚uqqL.++_vm^^`aȐ!ӧOЍmmmA-TGJJ]]]T...jA֦87m4gΜj8!'NOOo߾}QQQx 6\ÇpʫWΝ;WNNŋ***?118p@QQq266޿?B9~8Ǜ?>ðOnoo6m iii˗/wqq!əvvvJJJk׮3fLUUUXXXNNBILL4227nܒ%K***>$(zyy 9;w mjjz5kquu= AGqСC)Qvv|}}ɓ?9Ѝ_z;,Yr}}}6m$\… 񖖖(jii-nT\\Yp|ŎAЏeEK$'OV^-.Aϟ?d2Ngdd >A;wj&''ZYYzkoÏؘF˻92??_nQQ}||_\\֦(Fc0An$$ouwwqAӧgffFFFZ[[oڴ)'''11Q^^~ڴik׮씒x͛G؈ WRRҡC:X~}rr<(aٹ|>D|rfff?$Z 6TVV*++[[[_xqҤI(=x6lmlltrr:w{U{kE,X`^߅ ^ܼyFKЗ58FFF_611dJ|G1B[[;++OYYy^200`2/dΝcǎMII1pQ 5k?RRR~𡃃ĉ'N8zhh422=K,IOOqVqㆲɼxŋ)JJJʯ:Wݻ+R(8q⃉މ},oOOOgg'O5*--MAA!33fy*Jq܌ EEŏմkii.Y¤A׷!))`0Pe2 EQQtBtvv mlvee%Lp8l6 V  Aexxǣ(z᜜'Ormmm rrr޾}kC פֿ t:*eeeEEESNmmmjhhsΎ;9⼽Ҁ6JMM]lCvvvKK@7ӦMP(<`"$4ZBkΝ)!"&&f8(:l0]]zO?5558[ ?###119s怬 SSБ#G Ϻ ~> +?R(]---߿GQ ֭ p8&0" ]]]oDMMMaa@MZZz+VxmOOϺuTTT|||i=qH$EKJJLMMNNNN1"22RWWήΎb\jjj~ ˙4i۷oVVVCb(ZWWmll,,,>mmm«BQtرT^*++)ʬYΟ?Oӷo>~x333QQ/۾} SVV|ѣGgΜr޿.8;F?pONNnjjz@K,y𡇇ǵk׬&Mts>zhժU N7ZK,b=zu…EEE卍B0a:?޿3qĚGGG >iҤ 6#B˗׆ao茌UVyzz677nڴIBBb0O.,Y"!!l2;;;;;;_$|PLL l0 ۿ [<^:eʔn SNHŋ;::׳K.\~+((رcA=z膆MaL`m۶i~ʌvvv/^'yŗ.]uuu}}^SR,ofaafy<^vvE֑sQN2,ohYEEEh .**zW^^xJ f,ZĉC 9|WWÇ{u~:(((<<\ё`: hz𡏏Oqqqffǎ~ȑ#ǏWRRu(5MAׯ_5A_ :%AA % FKAAAAP`AA-AAFKAAAAP`AA-AAFKAAAAP`AA-AAFKAA!"4-A0LJJJ\\\48kqEFF744fuugVTTTTTzF)((H~B껈CcccGG(AQѣG( ***O&i4˗/[[[{`ܼyðO(|ڵH++nؾ}MѪР`KK˧O=?E|>  eϟ?Z A#a5Ѝԭ[#FB&Mj*((̛7ONNAKK˲2Adee,X0lذ^kRGrT*׻<7n=zÇ###EEE7o!""~yᅨEƎ[ZZjkkxϟ+))vq˗/|>Wx<{ߥSRR:tȑr++ׅhxxi4?Y͛7"""Gb0FcCwA:.))դTTT00LUUUBB__3A0i0ıݻwXD"uttL<EQE544;Ng55^k:tݻuuu 1 5k֡CΝ,VXXaaaaA״nll,((<_͛NNNݗaXLLc!))) 5 EQ77B''nW{7n/cDEE9LLLN:u޽(;;;p?p@a$ Aӧ'%%]reΜ9r%ڽ{_o$>}ʕ+.\_4:݀KKKSTT$t:=55UV{{g0gg[޽/^ B$<< ^:::\õktELL {o&""[SS3m4E1c`}}9sKJJkhh̟?_Bp݋a̙3ۥ޽U]]M,lʔ)k֬AO:t3vgDr}Oa&'';wtvС6|lX\\ܺu={ A h AhAF1eʔ;w U_~QQQ#Gܼy35KJJ̙3q+V=zǧTSWWF PfP-))IT222fp8۶mnii9tPEEEJJʳgώ;v1{{{ӧ'$$|d7oR;vq?wwedd|)++666.,,0a 666nݚ={vgg@7"H6lpww dee^Z|QAXcii;:[ZZ>,A'NdlYYM%tR)))k׮}XyyySQQpTTTh4`Zx}\ZWWWsssOOOAڨ0*;wtvv-Zh˖-=-q$ӓ8aNOJJ.,,TQQT&ɺ&&&:::"""ൾܤuSNEEE 6LCCCUU5>>>44tɒ% A.[YYyUyyy99rIII(> &TVVVUU޽G_v+Wtpp}vrrrww̙3WZekkۥK޽͛r߼yDuttzzzfϞ-  >yuuu_?aw޽pႽ=;v޽{Iccn0uԮ.֏y]gggss3 |>bzyyo4 %99yС?5kvFFӧ/]70Lx|۷""" .C͂!0֙`mm O8!""rUQQQ//;w9rdʔ)999;wSb8qqq__ߔ8Etzff;bbb(dzY,/EQ===SSS2eg,d|c9ATUUijjZsyy?WKK߿?<<\YY&~7>;cG6Ο?_b޽{w-[#"%%u)k;-D"JKK?ydDy_SS </^DD[[TVVpႠCl۶-))ȑ#Ɏ ._޼y HQQq6,,lذa/_0>_]]h[[aAܹsԩf@@ ,~SSqƭ^Aӧ߾}?{ሉ8^\\#z_ݻQffͶ7 IDATE۷}||\jݝ_SS#""R__p_p!GGG@--3 MMMA'),, /G"ǎ[]]=~ٳ'!!_ob0FK}xg2L77ATڵk{NhC]]=++AHJJ2 EL&Xyyy6]YYI&9Nkkkuu5W~1.))H ۷PG~Z]]T馦۷yyyvvv򖖖AIJJ rϟ?GQA\\ѣG8d 2tЪ ݻ'\uE߿ݻwGaRSSKAAAAA_V344 ab@s?N²2SSSAF%|Jym``ɓ'#""VXaA8>.T??????*zիW(Q/ŢP(Gi>ӧO^bmܸ乇XZZ]`` DBQظN;99N1bDdd]UUZrׯN<9dȐ#GE2449sƍ~˖-uuujT*͛7yyytڋX777'NP==sH$===|ccchѢ|3ÇtttT*8~Ǡ=s455'On`XϞ=kmm:x<^pp̙3SNmٲccc ^K!%8[[[a}YOOӧoذ(!!O *++ԬF%(_1c/mmmN2e ؙ:::g>wHB0ֶ'OeC?{]]]U{GSQQQUUd쩪tee劊 C8HN qby{{_~JȜ͛7ǎb~QUTT?~//۷۶m6mڪU6mm6 KKKKQQQ}}}//ׯ_/x x򉗗׬Y\аfqq񠠠Ç7Դ㵷m۶ܜFʦGGG Ŀk}i[O>_ti~~~nn̙3_xqC~mmݺvwwggg O^ZZjgg'\ðÇǃ$0l[YY?~lL&ٳgk֬W mmlp?0*zΝe˖ W̶OA:$] ZZZcRLḼ['k֬Yf ]]]]]]{ڴi\۶m:t(EEE .**z`\0 sέ_^RRrɒ%s𐑑As===8wuuatRGG7nA㭭LѻiӦtOOϑ#G޺u+""ٳg999tww[.""͛XL0rdggk׮I&}]J;wq 111iisNLAD_ [`OACQt޽#}K˗/7'"-IIIuttgyyy oή2޽{رc c/66d2ٳG{: ,'I"w޽+VL>}YYYq ާ~ClA6M6]~|ݻw,Xf##+W+W~Ïd쵶;::>{lƍ cO^^~T@'466vǎ$eee/HKK{{{ ?,G /ATTTWWĉ#GN:uҥՂqƕihhշ%Kg300vZOOOSSڵk$?N ޼% ;`0N>-))444N8C Io sM0A_NJJ:~`voӧ3f5jԒ%K222@MMpZgWWW}}= }PбBAh@  % h  ?0Z    % h  ?0Z    %  hINN.11qHHHhhh?~+Vl׮]OssOtNttfrmmÇKA_xj)  w* dsMMMFFƥK?)**{$9o֩bffF&!M8Q[[[KK`|FFFt_VRQQ\}! @7?A>}NoGmkkrC 0 lAiiikk`%iii&Ly}mknn>t:}ѢE?"8ҥK}1mmmfffvvvJJJo߾=qD~~(6rHNN666Fnnn܏_.lٲe˖-gǎ'N  4MKKkppɓ'L&syyyL],}reeeRRRbb"ٿ͛9wK_n߾f[XXxyyĀ[>􏨿&!!ڵk ~1}[c.ZBСC...x<>11ʕ+gϞuppAdܹ]]]a:'""B[[{ڴiEϝ;iӦ5k Q}}}K,zttt6o\XXU= &??ŋぁ%%%+WXZZ^at9466666rN:d>{ݻw_P۴iݻ'&&>yxxxN8Z?M2%44ŋֶ7<<.\:'Oɓ7oh'O|tcE Fkk+wѣGw5kgܨ(600p-nFFF>>>ؗA_cEK(&&&8;;'''>x 477;v,55uǎiiiٳg/_ѣG>>>(Ϛ5K[[E+W~jjjRRRܒtAooen߾O%33shҥKY,0Z(iii/ETVVFGG뗖'&&Μ9`jjJҬGbxwwjb͛8NTT;p6mڤcbܹ?ꌎԾ(FFFb hee%-**'ŐH]vp ڲϞ=Қ?[u["""$֭['##m/8WZ%**R===_gbNtRkkݻwlvww^\\18qHd0 NfΜIR-Zd2?P#ZZZRRRRRR/f0fffS%%1`XANNnŊMMMݢ1JDD$>>>22RFF vhii~lo?~j\\D{deesss233͛w(74͈`իWcܟRl3)))))+p?d~;{,TVV-ݽ{wPPPjj;w gBBByy97$ƍCDHHWAAE{)**n޼yŊ7nܸpnԩ]]]gϞ566^bX?v۷o߾߿{n*&&FRD"RPPgMchhvҥ[''';wbacn߾-..x]v1Ox℄(?(ɬwW|___DUU… NNNߢ?-m޼YIIICCcݺu,<""1,,LOO3LIIɈ:~֭cKttt233 >{.Jʆ)(( 1L[[[@JJ?? nXp8 //t`{{{8QW\ٷo_HHHLLLnn0,=gp lv}}=6@\\Ag^zm)##sen o߾{\rfffo߾솆cǎɕ`(K6]WWWXX HWWGQ$[AOOOOOp#///--`mm(ձ/^bޒOi[[[@@nnn׮]öΞr___QQQ}}=Lhjjcaaa+VػwoTTCSS{oxaX><s?vy U())H/_\RXXŋ۷oܹ'N Hv… } ̗ϟ?y󦕕UxxP^^nccUPPW^z{M6m쫭(**yf-aaӧOlٲECCi3󋊊 ߺu;[qG$)==[T//]vYZZfee jjj[ZZ,X{,n|oϟݻZVvXX6lMю?~]G~ 7-33SKK FKܘ0155[hQVVݻ v!"!!hii!UUUrrr7n"`CCÊwϞ=r劂BjjjyyyiiibbbddF;t >`l6ot4uvvzxx<| RcGP޿|򊊊˗DB`y`(~Jiƍ766VVVbz8ܹs}}}4m.}}}ӧO?wȳ| 277DzBCC?߿_[[hѢΈssׯ_'''_pAQQ6 ,KXXF=|ث3gΌX۝;wD"JHMMMLL\ )))NNNܿ_ؘ[0̡+j%X;wjjjmmmd2KZp}}}cs8.`0eeennnX :}4_NN盰?˗ 1??ݻwGQ2q )**&&&ĦB7:rHppɓ'޽K"[[[߼ySUU5l/KFQQxgggss3*۱cDŽ +++'Oo'555&&&kii)** 9Cutt9s]OO0PT++K.b!2RMM Hݏmۅ IDATZZZ%cah4Zhh(7  qww cVVX<99EEE ,غukbb"Ά_j,YrĉeQ(###EEiӦ_|o„  ٰa'wvvnmmk699ӧGFFoڴٳ?`GXaX˗/g23f𘛛geeST{Ғd8p;xǏ'%%iiiiiiX۲eZ[[o~n"'4'Ntwwϟ?_QQݽx ****((e2/^ %6667n߱u~y۷owpp:y$ ٳgODDpUWW\2!!Žr UlaO{{3g._СC_жK.߿ѣGgpppŊ֭[K.ݹs=p͛7o(ZPPsOU}QYEbܸqK,133 hwlAVZ5w\WWnW[[{1,ﶶWXXѿsƍ۷o*tuu{zzt: ==kmmm<{…>}:;;cϞ=xD: fpp%%%++_5CWa DDDfϞ+ _g۷o,Yj„ IIINtqqb0ϟ?p666o߾L:uڵk˵©SVWWs8`MMMAZۢhQ/coo]qq 6竩YZZ~B055pFFFϟ?~wM{rEE6{ Ý:u͛XLyfPPG9ydrr2 ޾}˽~Yp؃+P(Ǎ7BCC/^M81##c&LpVΜ9C .]tnϞ=SWW\ٳgؼ(FW¤طYVVVRRbݹZXX"2o}m6l(d̪>dii)))ݘp8===yyyKKKPGGg„ >>>---, o233KJJ|}}ϝ;ݭ^QQojj뛞.--nݺ[nq?oaǎ0Zup8a%_|0sҥfI===Gq㔔9Aƍ'""bhhȝhUUհ$ g??$o;lp=F"^x%-h4voq`A [ _ݻSRR222\nݺ/[BPoAA_Ip  h  h$0Z    F% h  h$0Z    F% EEEݒ/!&&;/''6cƌe˖m۶MTTEQ3ns8FFF~~~t:shҤI!!!mmmCKJJcmDD@@@HH YXX444l9991116GB䲲os  "X4vH$RHHvj rY777AZZBgffǟ9sFEEs\l'OVekk;000vѣJJJAAAQVV7oDXXA"QYYYQQg:^[[[RRb`` ,,o>YYY555:^^^_zoq9s||>jgg7 B|Lĺ[<<6#66|hRSStE޿pvehhhmmݵkמ={Ϝ9ݾiɒ%d2fڷo_TTeCCCPPv'p.]RUUp8uuu^ L4 /6vD"Jmmmņxxx߽{=E߿ZCC#111&&իWfff***̝;+##AWWN8188˗666XRdddGGGnnHaaazz:Nήގoɒ%bbbbbb ,`0&&&SQQYf#wх \]] cǎ99]]nA}c7Z"HX=Rd2{hbbW]]ӧUTTRRRah NtRkkݻwlvww^\\18qHd0 Nc|3gΤR-rqqa2f---)))))ŋ3 333쩒RNND啓P(898n„ L&ŋf***|ɓ'O>=4jq㆒"@^^>$$Çzzz8~,AL2}tj+**JIIV[[i&5fl6F}Y;3226mmeݼq ><33s„ ⪪?Rs \xqJJ(,,6半l,RWW)--PM6=},kɒ%t311vBZ84owg655t1]>'""חMBB"55/>>O㨨Cdܸqṹ^^^k֬innBH%K -DQ̙34Ύw۶mspphnn&H555GﯮNNN666vX[[[XXq/kQ-// >|XSSs 6bqFQe2UUUqqqC~f6؍TUUlll I$Ʌ jjj7oVRRXn]}}3277hll L&DRR2""Nߺuk`ttt233 LVݽ{&++PZZ*((hggd2mmmwܹwӧO kjj͛۷/ mX˗////GQTTTL&KKKO8E֟t}EW\ X`~<<<===488xƌbbbUUU[l!immm}}}ddduuݢE$%%w`0 @KK L*((qttt{xxVTT}ذŋ?{ʕ+ 奥4СC8H$xxxPHXXٳgݻw ܹm_7tҷoVUU566VWWϘ1CN:5 ijjojj.M!HtPPkkk-Z100`nn .`ɗ?bi4Z\\Ç>,,,:sX:{lGjjjbboa8,=%%֭[d2D"ݹsg׮]wXOqx<ȑ#[nMJJJJJ266h֖L&(N"RSS333Oaaa}}}kkgϪ`+EΘ1ёEсiii2<ڭ Gݶmۚ5k>*Fc(^zuĉuuu(YZZp86Ꭿ_?͟>}jaa  js%K,X`֭[UUUV^ZKKkɒ%?Eiӌo޼9m4uu˗/:thҤI &:t4-;;ٙO4/22711-٨x<Ǐسg`vv0aFW,,,&MtYabޒFKNN~pppÇo߾mjjziEb/_d2g̘177jooRrL&EEE!jEEţG>~|``K6006HKKKKKòeeeܖ-[ں}`!vII߿}iuuunQmnnZp}__رc7o'444z Lfff&DMJJZr2bA/iܸqK,133 DWfgg#jժs纺vwwH$??cǎq8rʾ}BBBbbbrssGrPEFFbܸqX')//wwwt ''kmmm<{…>}:;;c!g,,,>|7BQtƌ:::KOOρbcc>}jff&))9mڴr ɓ &`S_vuue ǎ~ c1Z8qbSSѣGY,˗/wnhhQUU%Hا@ \z랹sTWWJJJ'O9rd_~ƍ[/]ȑ#wL&bcǏWWW733z ^|imm}@99~^^^55| "nE*99z$_NII2eJRRXp8Vԫ ӧO hgk׮ ޽{[~=6륿L&744mllzիWӼJ\?-^^^CK(gΜYUU%,,LPp8\QQñ ,xU"H [PPaF>}:ll*jhhfӱۋnkxa,FKW\uVOO 055,+++))aXyyyO<6PUUEd޼yزLt:edd̚5>))fچ,]CoK&CBB VܜunںiӦlooo55ߗDFF655UWWoٲeΝ=Ů]X,Ν;DCiiiQQvssY.n }իUTT>94׹7|@dT*Ύbh4,}bŊ[lp8+V:9l]٨x<^VV[ Eutt`B6mڟów^&Y\\wbBs:88 };z݈fpx<{PPP`bbp}x5,\466nذᣭ=z.x<ݻ{1m4q={ímK[IYZZJJJ}VA '//oiiL0ǧbaD%%%ΝLOO"',UFFZ^^Ņf?{ŋgϞ%<(++p8O>upp-..&d2O-c4Zppd軰g\Q陜?mq8={$%%a}KnwQGGG777 fX?c,޽{O~ﲲo^XXfggInAM b۷oz~IgΜ#DǏI$hk¤_o BBBϟ ²ƏKsrr͚Ӄ޾}=7Jjmm-//V=t:}hKu,yf[AAG̙W__˗/c3C#$-AA}&ѵ! -AAFKAA# 1D IDATAAH`AA4-AШrrr(N7o^MMO8o߾}֭d2X!?h ~}c7oIBBB^^Sw?VVV8NBBBFFFVVvԩ:::222 @ gΜQQQᎉe˖qﭨ9y䡁(((={vԩ߼f</""B$y߄^KK `[999OOO$&& ܺuwf̘ݝÇXv_˗/Abߒ<NOOCCCϟmP]]=s괴`pa%%%n fi4Zxx8V~;?ٳg_{Tf*aÆ"33趶6޽{ccc޽m?008P={8;;kiiر~~~vA߅*wakk;00p v[YYYBP($÷n A6bbbb͛W\\k׮/^޽;##CDDAÇsQe٧Nڌ˦L~…+VY&11Ý={vEMM-++kh0t:KyQPP2eʧvT͂Gj^paWWAM0i FK,|~;wSSSFK~~~>>={a=zo``V]]}ԩ[;vdeeKJJLMMgϞꪣve99:!cxsd2VO"Bbbƍ?ׇ1ͦM;ƍGYYY؞OEKϞ=1eeeaaax<ѣUUU***`HDPmmmSSSʪ;;;ϝ;gll %o nޒPgg' 1119|},--INN=tPRR//Ν;m:~ҥֻwGEE n///==8N'++;qDEEE;;;!!!"`0( N'1~xUUո~H$޻wOVV177JMM-33s޼yϟqp8声<[vmrrrNNNnnnnnn@@E &}+ qqqeeexy }޿?l5 888"""((nhѢVyf%%% u;;;X,ss󈈈ư0===OOO<d2MLL$%%#""t[֯_F\.SXXf={ի, ##se?طo_?ۿ?Eϟ,--]p(A/m󋊊2 <O$?:+EQ???^^^A5wܞ ;88xyy7n$''kjj2A,OD"|rʕ)))T*յ.)BQxӧ>}:++KOOOWW7%%f/_naa]UU8l &jjjp.EdI/--]xÇߟYF&%700#9X#G`Y666+V8wܞ={8N}}Y- _:;;#S\|qΝ:ᑒB"Fhgcc#6555kWc /^ݻAٳg xA-,,-P^^:{l111uuu???II 6X W2孭_fMb`|||-[fꪫd2_BBBFF7b-_dz{{[[[cxxxͳ۩T*6`iid28PTTO!??~YYY'OdX!!!{񉈈(**KuuuNNʕ+~+W|'N:tlh:ׯ_쯿:l'OnذhϞ=͙3iSWW'%%uE999ldL)))++aݜ'N볱p!AUzKnnnk׮mnnVwް)ӧˇ[f̞=իW"""999}6ϒ%Kjjj&LtԩN---Yap8ӧ'*vĉ߿ HdddAAE]eeegg-[(Jhh(ѣW AA71vW[`DRSSSUU%D"q͚5fyP(BBB'O [(***))IKKP(ALMMSSS͛++?788СCFFFIII/_.ӵ=z=‚@}ə،v>ˤIu!bee]ϙ3g͚5bbb 0liݾ}{ܹ߭A!X`қ7oF= !fOxx<B䤥 ۷occc>| o `AAqXǕ  F% h  h$0Z    F% h  h$0Z    F% h  h$0Z    F3EK[@@Ν; mlr!"8PLL?p>>>W\ٺu+Ì3|}}yyyFFFؠ p!Z[[7o 'Or JŶ122v8qݻw ?Ze|}}d2` 7UVViG?# (BOj,FKW^V>~y]6((B?VVV8NBBBFFFVVvԩ:::222 @ gΜQQQ[e˖?{9yy gϞ:u귪PPPP^^YP(0aaa%%2i4իo޼d2$iӦM%ĉ&,,,))1sLiiiqqqyyycc k׮ạG>rBo1-}}}nҥK!񚘘tuuDJJj4 o?-eee'ORڴiZZZiii666YYY5554Ԕ`VWW[[-ϟ􌋋spp`0ǏWPPTWWp(KIIikkWTTtvvYHKK*aaƽ{Ν;`q8___&yI!!!433CDOOٳg|q(d17XZZ~6 ^z`h\\\***>ܑl߾]QQq޽ۿNiiittҍ7~@ic1Zzm||ƍmmmKKKիYYYVVVSL!ɼGINNቈHLLyꕙ s@յÇ'N ~򥷷 v p"## A)SDGG\x1>>h8ٳׯN ~{͟??%%Ǽ@QƍSSS˳|Wۻxb)))__G)++O2L&(ln)@EE̙3(cw}}}^^^)))uu_|ȕpsolժU}}}XJ"_qw}tGbl6fX,}c9=LUUUUUu[1fvv}$%%x<_jգGIK~~~>>={a==700pss>uTvvl6{ǎYYْSSSٳg褥]|YNNnŘ/^x9.???D"7n^jjjYYY3flڴرcߧ["HO<"t,-cyK^^^VYv$B|j"''GDDdǎ~}_{S?ut~'RdSm6M KI"bI.!BHTmj$KU7fx}Ol{yY㯙׼ΙsN3z=_Q\\w޲o&$$hjj۷Ʀ/6 ]v>}zƍD4SWWɓ _bJ222-[.--)6y &AAA555!)),B Iض*(((((PPPp8f722޿ۿ ^bSRRX,ƍmGvvvlllkk7MLLN>=88rmfllB7NSSQRRNWTT욚=*Bjcǎ%]]]t:͛?}𡥥etttBB`FPJ֑iLL̽{9L/_b֯_~m/{_SQQq㆗WZZZyy'OT#G<==)?*!z{{ xc{{;Ifff˭EuEnG\psooP(k׮ξz*B(666**jܸq\..//`~022W9::oJ骪_~:;; 8B7++ÅTPP}p8Ϗ5{HBMLL?JrhIWW7::Ν; .1443f ݳgOHHΝ;}}}TᑟORLLL$$$6nFQQQ*,,< D1ggg)))OOO__ߧOD IDAT׏b!DSSt$Iʂ*++MMMBk֬100X~=RJjhhHIIYXXرcI KJJ #תJJJX,ٳgnooGM4ipppԩ/^sssswwonnR7nܠP(G)((s=<<={|l333IIɓ'O⒙3gQd ?[B+V-Iq^ g,s۶mVVVcƌ3f̐?g n߾mhh(X\.#**cHh%kk놆Vܳd2Ӈԗ߾}ӯ]&..^VVvu֥xyy5ڵk . [byaa!^ Be„ UUUyyy??իW/wfKII577$GqܦG 3 K?[[[~8HRRSSB͋+))bmiX``yo箮UV988x"$$B,[|׮]&c0˖-pBTT>92l… BGQ0BLMMݹs'~ieeq̮]ޝN!4{!111֭{Ϙ1… qC1Z?~ZZNUU՘1cbccIt钄DZZ„  P(njiiqqqo***oߞWSS#8 FgoS_vuu% 200mp8 qomm711)--}7h``$IMML|)D_$ɢ988xVs /ſB$QF=|pׯ_///ǡ΁/_wN33W^l|dɒK._!;;!DѣkkkGSƳϞ=Ýq8Ycc#˵F577wvvutt[Õ+WBgt}WWר 6?jii]~PggNFP&Q 8geeUVVΚ5K\\|ppp̘1Ǐ:u+FE鵶ٳ\LL,11q>́,^xܹ۶mL&sΜ9YYY8ioٵk{S-[p8ÇMPuuuNN3W||Ν;o")J@@8qo0mڴիW; €F999x.{f]\\?WrwCCäI&q8KJII1VujjjA7xmNNE}}=4knn%$c̙3?~_G n߾yf|#DR==={{{T>{;Ν]>!oiÆ 111-zۖ/**Zreii[|||<<\[[4+--_xb޼y999Cvɜ?~MMݘ1cΞ=r񎎎M6M4"33` ׳|/_^PP```}/^<}?,)%%/qvvSa<۷Ϟ=KMMuvvШfҚ`% aߗccOxܹQFvtt i+{@ Zjv aFK!dɒ <ŋuuui4Z``'OƎ+))_ QFijjjii)++KKKl llloݺ-!!aiiI;;;???lnnޞRPP`oo|O]6m4CCþ;wYFFF&(('NLNNƏ9{ٻ-xVXQ]]$&&pz{{p҉'rSSaYYY||X8L"p Œy̙3g CfSTTtǏ'Lpƍ$III "Д)S222cccSRR=bGawIJJ}nVV__ԩSϜ9o/ +?I-!F_"""wAǣGddd  TPPa0 } p\s9KKϟ<}t˖-<&b<O09~'O%<ԩSAϟ={fݿjj2p111CCikk󀣥sss//ofK}k׮e0yyy_|E``qvee寿*x~$Y\\bv}=---իWO:u֭222hIGG'//*.=o޼#Z9sfFFFff.FuI& }}ݻw[GK,Y_t~9wxBSNݼysuu6lذ!ZXXB_~eKK۷/\=>o[ppp޽{o yO)**ᄒeees!W_DFFEEEsaa҆ 9Q\\w޲o&$$hjj۷i[ڵkWppӧ7n܈K%uuGM<_ +VK֭[.""JIIi#"888>>QF)++R2223gt 0I<\. !dhhw^eddt…uֽ6^YYJrii)(;;;66ƍ&&&Or]]]۶m366Õ)q455%%%tzEEή޿ۿ pSpppJJ ڸq`ÇG=k֬Yf)**|rѢEW^$Gt^$GzCA{r\.w_|ƌs-$SSSLfmmmVVVGGGuu'O߻£G*(('##:::BBBܹ3[$opYYYYYB_0p7o޷~kdd$"""!!d2+W׃'066rttiTPPx@FFfHO\sssOO?ś7op)bHڨ *iޒl6аdɒ< ؘhjj:s̩SL6BYY9..'?ן:uqYYY [lF#ZZZDDDԮ\I$//ٳg_v޽{O>z* Fċ/޼s?sL__~$ s̙2eʔ)Skjj֭[7e`++~ODKK˓x.>|{nzJGGˍxq$KKK Ɗ+.\wvuuuttQ@l… RRRg~XYY)##c}}}vvv]]]---3fÇ\"IСCw.((PTT?~|qq3Ə___?$OLدxN!𿍄vAA]]]qLHHȞ={p6N/KLMM_~o>PWWMDD'-Q(_A ECC֭[Ǐwqq)** ۾}͛76mT^^neeEԩS333?q)o޼9y򤕕EPpGmAA~?_VVɓv>~ٲennnmG?kk늊 ~gpg0VSS F.kcc3c 111\P(6l7oqJJ Lq:tHZZSNSRR0337o^zMJ-9  !3AfM999hB8::N0WCBBpvSS֭[mmm.]RgsVVV޶m29sdee4[og׮] !11/ZHOOuϞ=uuubbbׯhx"b~/oׯ_OII SSSKKK7n(8'7o/V^-8ҟ<+)))$$dҤIgҥRRRx'G?^MM-88XQQ3Hffff۷999999t:9<<w;$cǎD۰aCBBԩS p۱?UUصk۷/''g'O=zǏ]]].\8{ׯ_#(ʾ}x<ޱc"~@|^nnxHoI-Zo߾7negg9sɓ'.]YhL}}lww޲e6mѣGS($?~\[[;vXi4ŋ#_2eJtt>BK.ݹsݻw/_|www333;;;[[z_~EYYnmڴ !B{144444d2222L&Q[[;//޽{ٟ;88:#,Xk``p'O狊"kyy/jjj#{{ #ӧWUUAAA}}}]]]֭;Fo`XǏ{رc'N8}7<{N}SNr8'O㯛7oرc 2eggS(̘1-%%:88>|x?Ӄpi& mxp'~{ҥI&/wiooWQQ6mڂ S/F`O 99/nܸQLLBWǏ?{lSS~Zsmm? ZSSgϞ}riӦikkJKDdd$ mKJĜ9sFDD3)){RYYYfffUV3-y`2b$%%mmm[ vE;EEżKlmm={,XvڵT*UPVVݻw Iضr //r???oo'O$&&R#Gxzzt~>&MڰaN<266|#}͚5mKѣǎߏKt͛7UUU===?~lggCKK脄!W(BrtO^^fffNkkk\Nׯޯ&ח$6qĺ:$9ΪU(ѣI\`ϝ;kKK˻w|wk8mTLLLBBO5J]]_555/jjj $ҹs"JKKʂLLLkkkBAhw$op]NNΐ? I}}}8;;$yɏ555Pee`aoo-[:t֭ׯWUUh[&&&x<\N+))!))b444Hlnn;\ٳg -ZsNgϞھw< -**,a2t:]JJJLLL__嶶~_$3gaeesE566$#++kbb2iҤM6斕o޼9!!!..nٲeH|,^^^&MLOOȟ"Nᡭ]YY񂂂W^Ϳ#(ݻedd֭[r͛m6:I?ɓBϞ=۸qcWWOG ###;;;~@SSիW?˩T*NWUU/YPPppŋ#""Bׯ_s۰aO?/_f TP(Oo>JrsssBrrrADEE: ***.\_%-U5Y3;;;{hkkȄ._\FF4{l$>w RRR~WYYYCCC\ vܾ}~֬Y ͭh ZZZiӦ$[q1a„Gh4ވ?XCӓս[$ɊV$i4ʕ+o޼yȑooommm?:***۷o?zжMc;vlWWWpp0IrrraaaIII===fͪ*))aXnnngggϞ=!TUUۋtttm[Zd` n["BgF n,--&IJSSSК5k ֯_^' :88|1c %I˗ZZZSNE={L[[[MM/""BBBbŊqqq###䖖*jcc?[[[Ν7orܞ˗/۷ONN- !BK*ZWW7o^TT_II͞?իW Λ7tpp8{ oG6oLɓ';::Bk֬Y|yNNرcO8abbw_իW/w BfKII577$ d2_[[[?~i\+tzGGBIOO9_~MD___]]W!]ll;RRR|}} :IPMV[[r?!8p;FEEESRR$$$<=====w]RR}˗C3$mBDDdҥΝcf͚9s 9r]Ё===/]b֯_V\\lddDPrrr_cp7nGƤ*$#""|||ps˗/#pjyy__ÇGEAl '88xҤIjjjǏOII9v옑ђ%KB[l2!8΁ƌpB''3gxz3fYj``$IMMMҕP(7י3g? t:JKKK~ F;wiAAAg `2)#%%%..~#///++x⢢'޻wٳgӧO͝5kKHHWWW̜={vEE'?Z0iW\YfÇB8mѣG'NLUWW্jhh7oFGG^:55Sp'FEEUTTlݺU0 \|yƍG-,,,,,tww?}VTTQ߲eKtt4?F cFsrrx]]]<?$%%EDD$::ϯf<R;;۷/^B ޽ԩSrrrNNNǎ۶m۔)S\nnۺu<< y<^BBBbbbCC0#oH'O.\0= ޽+Xoߺ訪RTCCC.+##"aƌ?#Y7hm۶x/^:;;;111'N())Lv'' \pHUWW?.X߿B$''WWW:uJLLlݺugϞ pHiXEEŞ={N>-}iԎ;v`0~WoooP(Ǐӟ0x{{:tѣGeee8vyɼyaluuuTTTZZڐ;;;7r8s)mmmEEEEEE%%b$=zwuu8p@VVV__ҤIƍ[lYKKKrrr[[ۧ; >{! ..., T ՗,YįSWWԆqܒ'O hJ}}'OTTTr*8oɡCsss6mڴjժѣG_x$))R`?m?!VQQA7izzz+++edd|H<OLۖZZZRSSSSSCBBpIVVֻݻw޻;vرc%mmm;w? ~w CTTT\tiڵ zzz[nmhh@1-[h!) +VXti~~=0Bbyxxdff&$$>|811g AYYYVVJZZZeee|~$ɬ*//_ztLLLpppzzÇFCCCoܸ`0[[[qhii*L|F)ʆ ƌ#Qcc㐐!O$YSScmmmii҂1H f/۷o_) cIvLQ*++[rk[cǎAs%|t:= 444455Ν;Ƃup¸˗/UTT4i ;s挏OKKD[[jkkÃ|Npvv~-[pڨ?nJ?m"sN9iNohh-66.((8trr!\nWWWOOO ωoGѣG}搧p[ZZjhhXYYyxx;r䈪*BHNN.777 … mmm޽޾yf99ӧ?|Ŋ.]*((x˗/q𤠠 ))rpphkk‰Y[_}n*ihhh((( ?ׯ]E666Νp8=ZvSHKK9s&--m111o$//?|966˗oߞ3g A7o믕EDDH ꫯtttݻw̙߼y~̘1t:}Ϟ=AAA>2&A3D+PN70"pyK>C$IMBDKÁh `8- %@0p ZDKÁh `8- %@0p ZDKÁh `8- %@0p ZDKÁh `8- %@0p ZDKÁh `8- %@0p ZDKÁh `8- %@0C;v@xAp?~B.IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/list.png000077500000000000000000007214221473342170300260010ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxyeey?5D#(( !XĨuw4^BPİ+`1'kĨfZ^hHTIljzԙ~}NU7 sήlRJ)Z!4)RJ>RJ)RJ)hSJ)ZA4)RJ RJ)V J)R+?RJDßRJ) O)RjRJ)x"s_~[ϺWFNY7rzf>o7wUJ)ROo޼<蕿?]{s])VWVsk7!"'RJ)q5[OW>W<㈇l=oWp55)RJ)zLʥ_ǵ3;y6mK?\O^>ѯ'YZ7|'gLR'w}B gf| ·_=TJᇧWUJt{r<#=3> sP~w3}^ꘜGdqSyc|K_6qc9~nǤ<ݹꜗi*+ڵ/cFFFb{rmȗr'ċ_߸v;~ȥ^zEǧM)'*_ׇɽF% diM) :s~. WϿKwn o5kOF{?~vÆ ۶mۻwo{I4?lzz+h\pywyZ'>ۿjG0sVK>NMM{ッ}knݚ$3r-/{~~mvv=yUW]533s7=~JC?fYVOk[[zև_)yos\/}__cD#Ⱦ}?$M|]8_Mg255aÆ£>>>>NDׯ>)ƍyǎxD#oi$ ݏN|R3ΎVW_}W_u뭷=y}T+ʳ3=;w=qj53c;Ѻz7&{ks1f͚5Uv,{;ޑW^cٻ&"G2О={z 6S6J~cƍ''kus9T*E7o^XXXXX=ڻ`}FP*֯_k_ڷ7Mox>J=i;^wW~5c>~Sʲlǎs=u{]^5[ӟ4M7\wuG{ݯ}ko|?ܼyE]~6/y\sM|,N??E]T*կ޽_|K^⽿L(s밴w߱f v7qqۿw?j=4MԭL#?)Rj.}co~of~4˷mvW\}gy擛|뭷x㍿{%wy?|'>G;%fk+p}ϟ'˲/;?xOMMu'''?Xk?_x^{׿94M333wUW]566v%޽8>^J#Ǚwh|||O|bRpΣw7nL%#{[)+ϻk?S>\ Y+|O7>>~˾aW?wet!=E~?{Yŝsѓ8]RJ#wYzSz'|˾&t|9w7)[w{~xSRJ)Ir˾wK|/V{ΞcRJ)N<~Խ!:q#0?䧔RJ)L9`yEՋM[;nz~ێRJ) r|˾K6>?lyaz-?Q݄_z^xditRJ):ǟls_S=v&F1 ) {J)Rx=wٵ^[Φ3 MtĎsUJ)RO{]~ xRJ)uwÇRJ)zRJ)hSJ)ZA4)RJ RJ)V J)R+?RJDßRJ) O)RjRJ)hSJ)ZA4)RJ RJ)V J)R+?RJDßRJ) O)RjRJ)hSJ)ZA4)RJ RJ)Vg;<ӧ sPJ)zhyO|RJ)ّß$RJKRJ)V J)R+v*RJ GmPOBXJ)zvw"iSJ)Գ.*RJ RJ)V J)R+?RJDßRJ) O)RjRJ)hSJ)ZA4)RJ RJ)V J)R+?RJDßRJ) O)RjRJ)hSJ)ZA4)RJ RJ)V J)R+?RJDßRJ) O)RjRJ)hSJ)ZA4)RJ RJ)V gRJ)6|#,9CRJ)a#?9mH?J)Z9NV"꿽tc< $x#FOXtX)R?N| Khf9,q~MpC%rw"4)R݉  O|h#½8\`:Ia~1X!S#` 'N篔RJ)v*R_Xqe=SK)/@Ы=%s3WgC$$ ":i].ΐB^1rRJ)z.:zߑW^_^(GJ2F̡dHQ`Ra,!Zfo8CARJg b 8 XDe/|t0"Ia!D5~T+ՁZV E9cـ1$< -""yERDABEٟ͐+2Ġ(N.rCnYZ9 /'V9#hiå=+R+ E=$,LT$>:wyR~;qX!差o}{[8 KddkK.*q⢡Z}lphúV]f`aD0N`We#Ҳ|,Ś2o١$F)$K`T|`'CYǸ,MQ?p1 2L fX(SnFJ3*W2?|!74m7w4w.ftll]!k{a %FLSWY7ի׬^SK0ֈa ,S>&ci Cv DқHi8D&]/A2RJ),ur}Д  YC+VjV@D˷-Uzk&ofH #Ƃ |UH*\'^k@W4΁G,>1fsi5ά46mLf|^cX&b!Y=2wp y.Uky`@eQ<;3 .͈#c>vݺSV۰n)lZq;/DԂDĐ!0p`%_喧=K~h"C}9bzIyJ)ԊCpb"`ӟE <%40s *r1ݥ*6-۔&y7T%d{hDgfE7[BR$!3RK"D1H|(j~GC`V+efQN}MӔƱkvڔu,O\:cCSY^v|v`si˓Zի Է?غu3'͛7=Cp}`ltԱZZTJjWR9cH`@ Üo4K[0F<'xu"e-/ۘC<Ўf J)qZ*[U̫fB^л 3xYonQDR)㽭VC  A k :X, -bhTB/=$Cp,fw$pdiʔ}ȺؕJf AZwYg=~eDYj g鴓jw!Hb ^3:rJhfn999 cNw37V+{=?~:2P>)WLYS.U r20PKjuV@9r CJl/F2,npKoŹHxG #zâRJIu|]DW !7ze-zjJD8:xLH cf*RtlOXsNL$d I7"$hYUY|.ز!RJ:#Kt,urK^@,fmf^CKV572/t_J%f XSt!K fC.*Z^ eZXPq#iO 4B>#X;~ڜ5M]h JܤRQWmʹTOTF[yY\`,~b^џc *ڝݍGFf inc3tժ5nCfÇpEq6$&qr率Mfldp޽6v,͌5fbqDD֕UG7Նu'đX0"R,qO"#6F$I>Tl1PGPQ[\6/}db*)~H(G]<-pރbϟLוz}F "p1Ő~{u$S0&K#Cig~=""@ N_y1$0ظGw<,䜍܌M 8m?8K , f2Dij &kryfa. 0,|i[Y[NL-.mZvVpVU z9DXA2b*a`<b@"Lފr1F_z;͢'URv$mP!B-)˶yG =؇bz?oCB Rl44 @ c` $FSRm:2_#__nw.`>o(EQeYy-b Оsv`snatlU}Swp433Sr<:d@\lU9/zgF Ngdݚ :S2 +L`36fN+8k?bfk)px[㬁`bnvt`ľ| xfcc!1m sl $ه`(38q",mҘo7ʹR0.2L1&#޻⩛d^~Z"b B(s?/*NXj"YZ4{5Ӧ%@`8WJ No 1B(N(C,_nK#p:u:5o`-OWkTǚFvL, ^03{OZ4E$.)y3Ak /;v:-IY.I# kVn&H ! fg,3k=! D@ΐ]00%,vY<ƥre &(ֹ8qDfþS"D'ql]r9̳6=Z4;sاƐPTf)dҰp,5-|&ڐ^xFFC#?P3Ȇv\.hR.*y)S+GAkb""7ƈ>]VCactSq9EҕR+I _җ90 7y(Mz+ %yT[0g]vR8zW,850/ 8RN\) x! roK*X]Q/bdD! ]x}kGOm-,X0u8CZ,A#Sӆ\*2FtEL$O@,f}֝/@Lƕ*m>Ċx j9ɲ`( !`@ g ˆuFQ}`X86&98?D&qbe㫥Jٞl/d6D)wR5 kie:T3 A&)WFBwsV nۼe&%JdV֌eEfykW%MߝQlɌ;}Ӧܽnݺ[5j7 !g1,A@dH}X+1~-zŗuoMeOtcj·?t"-=Cs@UP&?4 a?ebcox:4q[?/n0ˣ$_" 梡MO|rQOz&\ :;*( [[4k!/0T\f{|]>JIk$Q O4+!KoL,Gfخ{2 !4-lk[pbP*8#j:?X!I6yJ+QBKL1M['&GNˆV4-2 k,d!gDV+KD$qTJ%Gֺ(RG!rfY9И1S[6jd\8gYKN:j4}mN5H]l4ڭ9N983 `KUɿL6[r]*NovV{ͪՀʕH^mNDQd})˥$V.%aqΔ9Y[k!z7LCbbb۔_{R%HhyC{#^;7/hZ6޶˝J7"6|zC^ᏹ>U<-C +*Q?mz7!aX`mJ^4k` Q k"QT,; !Eˈy-?PVbʵjjF/+شxG웝߰aC QdNZ pZkhlpuӶlzgX3nbqw$y(ő'`j $IBREQS0V `8Hd @R"\9T+eg._^PȲr$Qd2ύN{ۚ,2M`mM [yT'(̳Ontၱfw߁vW"5O]DR4PwZ,8kLNP ffq)ITʲʇ_ؘ߷oq/TʥzRJRNR.Z1fpp r6EB>L"+W¦W+[WQtϣhR1ܻߓ(k~'3[mR':?|#yU5_ff{e EE9}=چnyg _V\K(X"п1p_E 0 C aԘPD1A趻vļed(*Zoh8qv+Jjb@좘 w"ZSrmt͚;ٻ>Pz.qod`Mچ`- !|i`Ч!\8.NO7} q@JNGRφ,X1QdرHdm\Uqi&pHWk!xD14.v6:t 8۸JSIuEgQe.Oɩf{1NMgN{bZw3m3YlA`bi:0ooݱDiyw[3wRY'2ԧzfmEqE056Nv=6:l &RkVk$14KRCGQ7TJ%l@Y[.@\.jJ\U]d$r#({CyA//C  lK>:q0CB(C/zE@CHwhYpJ)~/_..zu|˟,^ˎZzҥ_!?,;@D\ 2`q(BDދٟKF| ga{8>Ka#,+VQ]`XGZ !d:myw޵a=SnC2Jv/9E^mOoڲebbgfH^MrY;Rz!xCZ ESAܻ1Xܙ627[Uj Sss sEݩ)!rQivn!<"0D@=eTTp,IJ3N88; ,H+m:ͅОiu%%D`悷ҥB:+>ccȌ&8NB}չJbزuZlͷ]#fEػogfUjwRA' Jșz_$x#C6v[Cj|`lݎ(/L[k304<070?976<>dbU*U,K'_T5 Dj*L,B֊b咑A|EQǑ `$~J[IME 16fJhE6XA(ߒ@Ԏk/~ yw3a7HYR^P|ғjRJt'{aX\*Fyk/!Pm7o\3-f%AgaB.E]XE/[ q Y ge L")C 0[q8K; D8/eOkUKlg ();˯ b+N;8nὃ9,׷r3ޟ8)Ǯ=Jźs|-b k0y4 !Kዕ(]M&JBc쬵VfR"1 C:SucB|B|&!$qHql !Dq,!ttjf.2!)Ǯb"JȎkƙO!:!"yӲ5EijuwL5xc]4KӖO.AR%V}&srSmعJb8! vsݻNtj^oڑȔj1CXbr C@i7u.Zc$7CW>0zql w:iN\6d*ZNvQb DZol/0!bcMS6p" .rJ컻L:AzBE`]R\dl5U*jZ7TF,H_t%)p~>X#17yo| բ{(~-4t'W\)1/T^sK.A>u5|G]1Wh@k!IBz%"Qu >.a R?,5tq )q[(jsšVӔc 4;8)߷g7Ψym6B;44 k.mkhv,߽\R$甋m )K5Wm\3Yy"+˂(c1EqR"68n6 iVIʕRjY7[c r$FB%6dOȈ6$ BcؖgeSh g|6eqkLT@nqz'Ǒ7n}`dE̘eYއZ \ZYv4+ˁjYv Nܞ}FFGϼ9&YfE46dX"+cL&NLi͐q%V+$.;I9niwS_6lnuY"pU `K ͬVp.rQ)ãk+RZNU.2b@@V@ck*@` {Kpb):D{9X)W|Z,PbTAXYtݓBr ! l/k ޻|mX^L׫2lTGez7˺"rS ]x5Xq q8R1qxpΊCS;wzn B\ãS ](j+Bm~X&/pEs@Tj5IA[ougw) C`\`IC&bCY{n" a"JqDȘfYdM>\dT<#$֖rdFb;Tt>pd́rg$|T{krN]m46o8m1"3)K[t)u.␵;ٹR*%-#֯YJIٿ~{fkhxب60[W'4Fu~\li\gf!p7MZF E1D6sYݮXuVcÃr"̑sn?֟rJ !c&z"qC&uZHEL~Jc~Ode~fŐrl`"-E)NҮx2.E@\\nrؗBV3u>rbcRys#IJA$8pJ:RJTJqT*%e%c"gY 0_d{ yh,.ӗ"W{5y/9gҢXHmR}Ce_}0/z/"zKa@Q/˻^uc=Eo!",=x8v{#k(d>6d`\72. XbٷHD(Ui{b;0,s&g@ex`f?3bg%vyY*Ƅ|x52@(Z=_*>D0ŅpA")w@Z9{sm}Dg (J|LNyX K3d1@dž(aL>/P(aB*!/'I0\Le* O-dϼE-*"@>ɲ,{o{v7SY3vttۙՇGMJ B)F SdEEfEU㟚" "%D ezg%nܜ@ ` r{_?_y&YdbD΀1Apgt1z4s|]1JQdcQuW :nOp2sjRkzqP]J;l޾W/_tt77~˳$;zY7oCk:֗WvkTSPrqxfDfB\Lm:pΥ)0)y)2MS035bBQIY}固QU,"D*Z0;YaeG UƧ!`!iCwTT<`o͠ #W!I=2󾩢ֶݴ 0L6tM)otI,0g{a_$hO>?u]vW鶿W&>lo W+d:\O|~8-},|byPP!:N Ƹ #0B] bfgzm{n5^6o"oMH3* 6"?2Ϯk]HCA-tێѪ;l^f! @UH4Mn1Fq;+G0 o- IDATu=*\GrUrVW7_׫m櫫 &*aȯ$f80/|o $H؁_=y] / 2y"Rx֝;=ydU ;FQ `ر ΩwD#:@(Z Q*rf7;(Ύd=l}m~YrBY!ʶ7GՍGr]fK)~?ߴ]Jd>~ppp X}t;~4L!YN9:ށJZp1 ­{^~TR`7NNΡ_r?W=ag5zY!zfV%#:@lHlŌIZ T0ACa˱ }7| KI3vd h$ oi 33"ѱ1^ܘv8ͫBIgf|֮OOφMp.zrc3r2+V`֓ýo~>Ͽ;C*J{?fOo߾wqv GGyݪ'g$E&&0 W-BC)͟v6Q߶!!%bαs"Lv/*b\13 1YQElf(vm\)e6 mr˫YM󓓓*P"~a V@TЩa1MWLI}twb~t {M6сD˫E;&@r^:D\s['/>7O/p9s1Wt?eJEzb~s8-Tz⪩!Vސ)]w(tW_KOܩ[:rS@_^OoM7_R?D@2٪|i ?Rh_v{T&r]BNYDCݤD;˵t g30ݜ[@"D<]1z(r&"f'<~x'|v[T>BQl˪j}ɋ|_iu7$n۾x0tT 2b[2jR; 0|1Z@`O=[puQ#vr|L7_{wm/N@49GD`)gyv].YU2Pt\yfIh@28Ȗ d˽/^bۋU6(g5{O5)vO>Ku0 ݤgqrϤ$EKVPX6m{tƍԒ';W>ǁ|253y&ryaU%Ӈ!b&Up0{.SqtTj-kW.T*SBĪ;hb%c n)(`RKC/Xjj׈BgԛzSw:)hkX?[wa]8~:5.% qQCuexO@T0s ױEԍ#ԨbFWWa0\aUa·}6x~vꛉ?WK`rN~ ރ>g/P&Zpxucb8á[ GM U}t^Y.3;Qӝ TDQbfc$\t fljƕ_O^ڵz~-GmKhf"f2;;xqLTɤ/OO æ;Ae{wn?}?䓣[mn{{bb!Z DFh G g1MEy*>3UAAq_zTm]7fc,xπwxPJ3璜sy0Cf$:1) )Y=C.K,CSA(ETWEJ ny堃󻷏֗i[Od.{:ֳ,xpps:V+î]Q*۶uΉa曦6ݺ>iU!<q2-,./CUU Wm<\ eP7F/R'M{o= -!9ä `v6u73vn#׾gW޹9mz@y }@C&cF !y!MuoTUb0 hʺ[IAco{ilt {9+?U?zԫ_KeM^4 h׬׌FhN9!\F1iyi@@ tnP"^BN@u4@ P. ѻ{ͣ'w%_Xn;A_΁ )IA]@ںs#64B1^ @SX }wx`D6i[.gcECOxqC)]O_t8 T [w̎ iIvLLL;HxRpXiDkܼɋK!&aR[r.\=N~'O8Xgt;OON..y'M)gI\kMkѳ/^PҝGknߊDynܴ+tz]5p Aٵrwn_̧Ss(RJ 27bqJRJ !)Ds_Q"UBP(s@B/Ϟn}TG7޺xT'7Hb6- g'HЁa.T˵Pn˦ButwyyR_r΂Y=;Ϧ6H wqn<}1m*ڃ0XM/f^vMS΁& PMlv Y]I:Uf8ݶ}S9+MDlW5˓ 1P U)EDЁ1&'*j hj.D$.+% !Qc' ԓޑ"3Cb@63h 5}vmd*6p9j#5o =՛Mh=[MU/;v4&Ax|N?N~*ˮ`w1e9P>~ 2Z\쳙!yocBJ])pɧ̴Mh2ML rݷ2&#zuu~ޝO1V񎭮sb伫#o+ݼ9puuuXJ׻T'k9\dv[g!\P_Ln/){oV4O8̫><9oA%0C$ڇNύw^< \FPؑxbM_N0Ejrrqzpz$sPP +nҷÿ?ֻ_+Oңr)J(ǟx<KN\ CUNAhUUM+bU ca2t}_T".bFFƊf4JAqCdiƅu̬y_غ Ur>1WubUMb3iUM\`W 0Hb`@#MF2!.AC_>XL~~o7ώ 'ӗۥ:|ݫ˫G)%]uIFP ,%NB=uK|7#kj%$ cJPUL""3CΓcPer3R4Z!A0 wmKgAoק&`LT\i9!U}~q}ɇRF0WiFÛ]m:V|[۶9'4Ն]F$UUA?U3ցe5[^$01U_/?dBu7dEOCpC.w~~|z{oZ"H=7o~ئ}'O<|\<ܻu3֕!B3+"v~vv-3Q-D(hDdRr/#A%piYbdFU4UUEfN9W1R58"!k:3~!1c3IEABP簉ܭIK!Bzyr$f;7y|"Vvt]oDBpڸBgf J5=O,CQ}2ڴ]-oIE9_/_Vh]U⬭N1DiU5VAT$燇sFf^WU `WWo^]>LzLjMLCQZ6M3ݴ)VR$n$HMtژD 8@c1pUM?R  1"FLhJ`DČj ˆF" ;cbMDgբBOHv  \ \{"t6UIQ0"C* a\ 8AVW5?m42/t/ZK>ԛzS;K_~Z  /eSH7 HcOU`F 003N`DsEȔ<B)eT3l[ѦM;$~Q})%!-2..B)9N2&b)fyn>_ :tm\W?jFg\8=AC Ct:/faZw|j~η?~ ν'O 8cD-=iA.<:6\ռ<ʧ>2Զ]o߼ç>+r͞3WtQRb~n3Iͦ؋Ju*-C%Q@5H\DBI9k ^DFSCt@G X3.D;G* +0Iհs>#j\RQ@P0`NN.hgaZ޹y8$f0/FM!U^XRШr])Ff)%mnՊt醜ҍ}sI4OV͈ ܻwga:͚$$_,fPĂn`:庪WfQPvvV  ĹCjUM!!'䪪-*RmCE2(J@0$4Q$+El90; .-<&n9Bd;ȸ7QjuަfFPhG 9( 0^EAˢ쉊HwE{ !q-jL̈Tq:5yC=(z\ xHY QwR``*p 6t8.ԛzSF??DxOULu܅5ZgGJ1$ELp310vt3~3^^1!N)1S"Y) LRGTUYbh||XO!R!c QD% &}8}tjݎKʜJ G&Id]\^QcGu ]z9g, 7$3ږ褸n3 !rƑ# vCIoߺ#m;qSp4wG.W^L$DS IDAT4΂\#wsc\wHH`y›+rGym6i=[_99;oe0.L?D<_D!'J.(1@Oߺs{yz}7t>⽣`MUF_t;)%@TOÓgOj>;B>ݶ!"D]Ks=!x!"Q:ìE$:LE+v&aQol6kL+䞝Zro$U 9E7 c5ϥM`$!9ֈTՕ!{w7˦CApm*E:g]ׂy46 ۮ:` \ʶMUif1:)g9po}$4S*j9v\0SzQ5"C"E, T2}l3q7d R$w M.#ܹϓ^@GDD :Nh`$0EDC𺻫"5܌ѳ^=OGCY~产}im+7tKґ(5x`hf:7+yC1Kai~/O>d(W$7lˋټdcgcPE"bE7?hpoq0%Ljvi>~_}1=ᭇOOn6_sqS˾x}_|q8l /N^#/*c$8DNMv~=@u7Z<"$av|~>fZ 0# 0 6gj j@A{;Mo1,WgT[߽[4y'ImίL9DX,ԕ\sCu?q飇] @з94 Dϙs<"Dd %3QVM=<80Dt sd( Xrq<6d+esd5D|>X^L$gf"yzT LZr7*@.Wjf6}ms.I\^\膡;;;A>w'*D3"SmLmSvb5[d\L1Nݖln.p:NрP.!b*ZGR""i[6]p1k22&TPDP`k)DD ,* @) ;8좶QVR LdfR2qC@}HjJH +ɜ0H 8F ջ&]i;<&'#**8J '%]wo$3t8 xDEfO\WH1{14ؽ:ڇ˧Έ+GY4{a2N(g|kUS* yGLHb0i*B 2#"2lo:D4۶u\v $ Cb٭%eE4rݻ8P X|ݐ(RծTEs_y=!/&0%?3Ll2qkq{oK?o㓔j=1S\LCr:9k.ήgaRO6l6Qcr}k@"EMĽDUJ&dD@P^@BTArݧv%m9zaNM[o=xG;uбU+OC;A+|s.R h!"8B]}yLd2e{Ӝsʹx窊=a{S&LFEsDL cPQHVP "-@hhb"A);@"*93#;?}AF7}Q*< CtLf0:h!1f8Π@LfFHaF`색" ,FvLw}p9B@DH6 Tv]@ P⥥|y,}~L뇰Ės[~*O|dg֞r:te 96qZ@ #)}5_lwؑ 㸅QAQecMHߗʾHr{5]z=r:?z4vE*";U=氍K>&(e ;Cnm@rΑA)Լ 8MsjffV#x&V 1TuR"ʇ2ƆFt[;_Ci;#1*^W΃/6 oo ԕ87 E~mᣧO}.߸[Nc]?4`-K={ f$\1[m*C*}Jzrn9}@*hQ؈)!"3"s={ѐ5>lyݭ„<5S?{1D`t]rUpU~O v! PlEACղ+)'-̸??B ]^-?̚j?|2e$eYߺqxaԤMC#Yr].65LD9<źR)e1F"3,^UXE D#fqC|U }b衪DIIILL'R̜߽s/eSE3MN}JEo'zd(R)xgm;L9r63<զz!F$}u3ݶii'Mc c)]]W" !BbUW'Lsɥd`7fߍg"Ye4^4c&/zf k Y$Gv&vw\^; kћn#JbzߩwF6CRM6{P(^u.~уG->̀*܌7!"IRL<^5MO'}JOTLQ h2OȀ"@{13"h#1*0!0"1%13B!ňhfI Ϟy.r#bD\9ȐԘe6 L8 ؛j4sqv+duϩ{ Y?3|X?xzhV6ha 94QX{8nN>0biRO!m/]oe'BǏI*`Imэ@-}P0+kc`8W%3+xfd"QD1ώs;2[LfjMeq42sƽ_8$4.n3r.&gJSM%̧սg,L:hۮ, yC[v'7S[7ϗ$Ci곓,9cQ罨(늢 Ĕ((SJoDȄLuڞWEC׷urN'?o`r+/O 1SSR%6;UU2_޻q%XpP~y b5ID$uMYHgrvIEQ6uGqUN"COYK`jLN@;v>P?ס73}J"4lDKiH){GID3f=:狔RF`"Ug35&*N6l4hl%"DRMJ@""2z"2@ d30`34E%"$hB&C"3bbf#[0I !ZzJ` "0ĎeoT  32⾕0OW!(!7XHՙqJH[[崦 W{*Gxe\=쮾W_PB6Oy 8l0(nHaB04#T" {8fޤ&L_ozc{ޮ7}*6O?y4XRU3Hql !_ƨf"E1ƾoyDIB"1`.ڮ9P.W+&0'薷n\tiTD3qH6/6zq( D <;@@$@Q1N@3u|8$2 9VI;Uٛ%{"RF~#/ QCfCpc W %cPvW!+|Ma1 3Qs`40C+#5}_)cD#5j/;xs=#[?#șB52v1B1 y65HFT aRVhF"@(L#OyOCӵ.ٍj{XcǾCMg+.R7uCK 7mMQY&Ͽ˜<{mtBө`e4@ ).%w?{:"*|MP8(8DQ30ue(IQLʢ .xB ")j"QUaEO7mksw˿m,86ا?솶wu[ūY+ph:YLD߹sɇ0Y_Gg=I鋗p&U%*Ln]}pxyxy}QUjocc/Q,UwMLT֛p>x )BN*c_ aH2DaY15\.@6KyJCJGnBRt6L}jsKj7ދmǎݶ}Zv. xݺzXT$F5PT) 3/PxKtquw!Ra.},czׄA zp"`L*e5]m0-B-1kJ](g~vC2 H}ת$E$31f9d2 ɼ> ;!XߵYkWtΫ* $f$\LBlLRg<265qH9RYAiw3FU9w:bNRAl术IC>;f DT#&̑Ƥ@p{fRÂbDRq{Ñ!@oYG(Oo+F`c" 4? TA7G=3|P!v5KCqC W}˴~֯ WϺa2^?LGi k_S\Wԗؕ68#|ݷ~kkhRO. ?y"61\l̀L A_.`lyQG"4$`$*>'O/T-U V 1+sH쇤i;ǎOMCh^]'8:~׫{4TiaM?h(ܻ?}zEl_o6a?خWO=?pDT 1LཕŨj <ηmc)Y6p c6٤Dr cp~Z(}('2EMD&!XR EM{>O/_6z.jz||fEOLG]\_ݺ{={~œ_;n?x>Ot:8 j᧿篯vծY7v ȿ`C<ry<.G1IJBHDP_ b14n̳鬪bA<"15m}TS4!%&JD*L" ԢLI }3)]`Ad\LOo!Skˋ4¶VlZ:woߺ|0Cյ!8xOnc߃f1&&>!t]ʲTCZU(1ܽ}Gbo}7m{歫+AƍbLfϭ'jx|AJRaToV$*Ťd`Rt^Zm\IQT(195K)4jFf2؅(fo^ MgDcIoܵ19˪d>nwtndvZbUUι Ddj#Ƀ HDĜa0C߄$ bI䌪PίױLzZ$w]{hC_VESoAD>vyEQ]/_]x?"w|>?}}q !0P$n|2ib42 Yy H$%1K\ṘMgy2v'1$50<*^|}b+!"-ӡ997ũު2xDA!0o% *Ѹ'ö F;XQ;L <7&DlW)0W% _NS̊ ̘1&AĖbqjgr;]o?j T3O%a=g`oGF,L26l̟cT]T41m4){O˺Z)z\uCggO`2w!'R??ͳ[Gҵ''~𭛷o'?zbR zCK;V\, g4E%@~CfodÓhtif輪ȉ,'8 6񽻬&Αc7)J 32sYfRzL$ aB$FMϛq֛HJD14*M`n@f[Ud9_E3~On.vwϧ~KM;}_j6vtCto{}yDR2ЮjB5i`"j6̻6k@DDP|ؑվ;:OCuU0xw.0tav혈/4(fI;ـI&DȚ|2S1 #ox{ޮo~OYJo&kxM92 R1Eu~?BUɳeD4fxfP!NOOS0f&;brHߵ:!F!0躺,҇eInxyz'y>?}ե/ïnΫr|-pr(7N:}fZ)-P87f=1$<f7>0|֭,`aVM6 {Ȉt\8wO5cDFʕl8E;t88ID &0M B6]ۮV+lv>9\%S\h68|'/޽sXοWwo:>B(ڦ~مh!7u۞UԻ,DTVM41z޻LS0b&En{A$}n#@`}]H]SfIU 'db[pvG\n֗ -Y%DUYȰmnh:]!V7MΑ$ѲH?쁐ʾO%G*A!!nŭ[5fRR$S,E0Dg8NrvpT;NjD PL) R̀ge$EϧI%A$ ?mձ G,f(WW=yf"j8C}/c$#Ql牥}H:"@Q2fMl#f!8G hnV,DAC <qvž+ob NHL]T!)Q/yPrVL":DƚwGwHGc"Xk䗊 Db$-O>4H#JAn\ܗnA3?Βp|m3v $;m߆WQ }3c|C6rKF#LHƞ v)s"¹Bgm]88 0"d0RL8>[]]/wȝ7>|tđd?w~/^]89<>Z1c>6ϟ=,48tGG> G}1)en6EH)`]bl7eY9Dd۵w`qW_;⻷ou۪U5tÇqsIuuqsw)a$D?~X,yeZ -R&z>)\Ls*gm|:]nR46JQx՘C&ilݕqu烮תWVEp'6Mfwm:=yxpBC3Q$ v3ȚfI9if㣳cQLvuîi>j98XlM]/`T7`Pz E^WUo8X7E51DOH,$>JRTaB$f&ɀheED"@\*#Hj̲c3CP&1mnOh%IL.PDa0EB)޹]?+q ( Ƅfr"&!0cy΁!,?:p;l~ڙfUίDT7 RVt$B443%,m&9:Q1&\|7̳(GUF}ޤGR~M-Gp@3-n-{~7jC}Y=* D`/~uĦ 7DF#9Żq^~zcB1QJ(!h$ ʲHCL}nmjϾz‹WO_={ŋGg7[7YuquK//˶]mM׾O//I;2ĢVgJTC(ĺ!jׂst|d` sLd)*jRxJmQsM8s1#2#мgd\]A TAt9% b` 7~+1!&kYF}RCn((r6]_.! b/I'!Ewdm^_]$S=>::=8!,uԾ HTLٹ(!L>b6Ev<{r4 9IUV3UeܺqCsn[ejZ><:!#YIy$H( Lv}R^h4m_}~7$~pe(Ja[7n l;͍wC198rڶTp,J1욶ivUc}kDH1nWeCl6@t2-3>xmks~cvYYUYb$s#XVsIC-f< eGsW"ppH)zwSQAHl5s9QJW8mp -dw̏r5I{#z}!٤@mFҸs|V_sA0 ?ǬbѶ7~fV 7tGc(% ı ѽ_R9>xvxx?1rpC߷}imѶiI}E0v5* wuQ, Pg搀@C84+5V:7T}L1Ϫ{ pDس (J{WxQ2`  dUjq Z2MIPMb&S5\@9"~WuEYh˻Ϻԕ֍3Z?]ΫwׯF߽s|NOzj}v|x|TDB= }"wz9?ʊ8d2i;3{έz&rϯHzu~EX,WW~Cdb yԛݧHby)q`f'%ri囶k zUZIG7}5C1MD$Wfs!$4sIYG0Am;N4}: HjF&L h?(3!gLNH4(Tc0MyW8iPWO5F"y¤ӏT<{. hq J>%P#@η]'Ƨ7}DȔHo@T>ӂArbNSǸ߅94d`&Ua)jYTiPQ#FbURI ]yJz034:>9fB8:88gI=}Zϟ={!(Lt>8r6|2(;? f٭O)" f`җ. ]b>pTh(f'={Yd4Mw>DMDMwЦTvM8 IDi'lmI5{{vn" EÉwDsI陵,*nU(hUU4DTA%-`6abcnhӴ  bm;@z݋ãcrF@IEAMUs4ì`B5ȡ&2!|LYI%T%B))ȌIDcCR1QLeqeO9vf<(S}1 S\,̐i>*q7#(˄WC-*c5cdQ$ pcBaYi`9` Hhd&f fR4%"@875QR ]bf_=IkHD ߮뷽%2 _GIADHgie췫7en Bo "f4q`yxnPxy=W8:X;?գc&Kҁܮ6O=m5E ՆDd+u7ɍ[?nwZE=q=2 y,h H6ލ& |*M1i,gw9s,=B7QԊbAծ/R"t}J41!eWU h:=BmCu;l=|s*(IG{GGg֫9<4/^6}b6)fO 'UfEpTD}py8 ënS7uzPL&s*]{y~>Nҷmmbg()>L"7ʝo좂+B>~mI;BbKe3ʓ[Л surzçe0&ݶ}}1Zj\mLlD3 E9.̖UQġonyp^of!yrSUU0L.8Cmc UU*JUHe11f*kˢ`W.N7UT }r7= r0#zrcgDPIRUm!eX_ A5"(qbH@*o@j9:[ QؑhdD!wl;$J&`fUN|ajqzH*8&v$d #4œ8 ɜCB(g7YfC4[LGeLIF28}`r f{uga&6Dܕg)2̳f!QέQfo@af?G,bެzqͯ|F{d^Yӻ']͏\/[DmV&TKY9˗/b뛶)/`$H M)^]^#:9>n}!m j( 3BȹHN}l6㺪BLins 0N @8Mmf 4hzE$i!msZ׍\Udrd%`"hrJ{UL >)Giqj׻C# GbȞ1T&3r"6Bvd"cF3eFDu9%B*fZ]_U1$D\=qhAXåoR4{}tln˽yD(H4{M;54&D+3B"CʪTg9Z@"k@VU$Q󎐀}h芍А<ɀ2~. P^TiX@dM22* DcxPuD.[z \.V@jP\//Y0%D^sl4}bt)!d.w~,6^^; vDX͌J-]"s E~e"LP$E1g95 jq 2EF]ՐSNNȲӛz_vf_<VEO>p nއ$v'5qst+ER?7i&Khf`qZ&#Ҕґp2"߬ =@]c9!x$b30F`S"F"l;!g_tvј!wr|Uttz|}IiȀ4z}A4 ;S[@$vj 8۰PEDwĸ8h7ۍAdZ͝ʣG={tqx˯;z&vĈ4%DI%CE#@CCCWfGQ'ɚcν,2)Ӕb0W̜syˮ;qʋ68Գ;VBU 4ju9saǦ !cLgw H3TՕGPqUqJ):̌YY\2Qu)G1Vu\y nv$(RHUWH\Uqb_M} Hj,Y%3#WLX\3-9"$u@,I!$@>i} j<c@@6.BВbB;;0aJB߼ FA2ֺOxQW0BbfOcbTgyn#*i3WLʀĞ\.xkyd+͕fDؙmaR㽽yP)'D>[04%ʀԄK>&;GSb_ +l`aI,-"jaf MI-oϼ "%w84'5`++K @ʀ8X9d&ˎwr#aF8m euMviA /^7ڎ7/.?z>m?{_ ' 7W&)tssih Uu)Qai{x6MI`>?iZ1Սv.nq$˗csL}pU||SW5y v}τn߹!xW=7qZVF `X6uK"r:=?1\UmYB-$ #c9f0n;bW7U =R!rt.]m_vmg3:> nVWfq(!8&8ՏR ]He׵H//_Mc4:Rʪ<͌f`;̆L9w~!o~^]9@熏 <2W_f0pB*n2Ex3Bfsœs-J-р`е ށ $A5g\.3]\]Ŕ/VoR/aC/=y'?mo_?R.xtXL-Ĥ&f~(XJP64 0iRvɓ/)RS[ŝwy7C]U1w=yĮ HSTS]Xdq*7πs5U CĨ*fȘ5$KYEbS9ϨÔb圦q `\P1S-3Qq !8DcB$dM;_~O~kon⨩׏=0}$ȅj+ߤ)nbljM+%A68fDUv frL 6-SISIY|·)z#*]6U]T!2"w"2i^6i=Md`"b`IӺnՕln|91;H5!t]7Nq-'v}~^m7˫kSFfخ|vqڛĔcm"c$O^EEbUSԈ!UEmUv2i L4WuR"a̡mq4ח'wDV#zϾ$2Zj}Q~8W|:Д"{V UgnWp^fZ :=Ul`x f֬OX &CR38s\shPbs1sZp03* BfbY7G\Y6lν+Q|D$b"sXE̅HT|!|K4Xwvv 40[?̊T} <|M y"WQЊ(fm 4h!hڜ3RBQg"3Lq lJ-{{e7+F5?VOoR p^[KfTbtHc Q*usA>&d>cr @!O|aSx*0yj+gq$9)Y~K5|q~o\3C\fԤܚj4SŦO8n]: Bp*Oԅpض!K2P2sͺEw_W*0mT7)$I̘8J6¨Y4S$Y&15r`` օfafj)&Ĉ y9â={~`Tח//xVrOr#`Pr?8<6}O>_ 8⃶R*_ f"u‡:%9==_t 9ec_mr`VY5N6Lq)&1}Gfu 4$R0PRt9%qx!eىbJq8﷫])9i0꺩Oe@NON\\ 5$qSrST !6az4OM0o64ن5'14:mUDw)c]Mj(uՠ#aOݰh;P$GG_cJ#6,ڹL1F8=z׈&8YB?NOOqRePB)j@WTȬȐUK02  ъqh9@*s  1";TCdu;cQx0y܉HC.DySc!\ LvNrQ"G@h{FYCd19Kq Y]3H4|jG( )>fo 1|]?ɷ4@je1<-"`2C"[zaoBgĺN(V~ӃqQp:4Gw޿zLM#?WGǡqq;:Y.yf4ܽsqzr|Y">=Oq#7e+o4)#3(vEVI"Kʙ-P{6uk{*G9N!vHaZG:h.x8#@SPbsȥmДQ3'bʚ, ʮ9riJ}S +@6PlhT<"sbfD\u<41Bt*0O~鳫˺=|O>zу?)GS:4Uj{77?ѯ?WZhNsI#WR7XDJSuM29fN1!1J;B]26dv"ʫׯiڅ^svٳgapbJfzkA4`zb?F&xWJXC#_]ǜe$O9MYҺ߮ɚlz՘PWغb{3IT5!U=v4MRUf1`mqʌDC]U)9'ɊNA[)0;+1TU8WW%68<8^г'Rl*DTfLV >4j 21B0vzG$G>}X!Qf*|EY`HͲ(;XTPL3BqƯQ dwi5b0sُ!d\\oU{zDW2qI2= {X(,WUqЀ#؅ oߟBfy%ֆƳUdYHDV͋y#.mIu.Aɯ\ @V E͕r rw-{iܶ bq穮Wpp0-\ͿQ9ރs3U޹vcjm1]_4A@HT{+G,%?r}?/~fn9|ׯ_b~2$׻~GL9 ryv~m({LJn{VygM Mc&f:8X0b||3~×7WT>@Vl`"9!@U{!I@cV3cđ' q6SY$gTi}302sTU*&Omɻ@19;???w샯O 5=M9 _Ԇ*xQ?$*ӳ)eבsSb]Ι 2QSY=EYۺ5yb&,X/pv]f~q4M]Z?R5Q.fqJ b;bmWWcE+5[y5y,7W*)xI (ۡZBiE\U"'8gkyvs4\ׁѐyij_uS̠:$nkyusjŰY/]tzyą"9 יbp>IjUNs ں9YZ6'Ba(83+2fd5 -{3M<[7þxO͞ yb0Mo"+>CI5`?x{ lu%T3˥M߹3|]뮟ׇy췐;>i^]tGы/vūiWI$9Znvq2"UB@f&2$Wu=J@Anw˫8MKGfU7ѲET9^ g\ÿO{'gݶB)`mRLT!YhfFWf+SK&YcAM>ih}s׎أCcώO +GIԉ}w~>ً}է_}qzt._rGӓ $~yuB&m̎=¿_6]t0MS{0Wk缩nvkfYJg`vPeB .qI\zsŁ:.Ewvv*yq)PdU@m\?n7+@j90<cu1%!*Z.U@6S|ʼW`DMaʻ!u#v$G~y"jݵjF,ںicŘcS*arr;p}?dv`BdmwTWnb7tyi!,Guwpqiqt7WhaJn,ԧ:gɛW]zXK6j %!*^DDr-;ΌEfd>EP)6J94# 4+#bF 3P9{o g;uj#s2qqfɞ#D2$S  A.3?2 NhAsas|p &e s!Cmrǥm>RMD#ZJDl4B0OͬΕj8RFiq-{oJpn_9揻ڞf/|ig;k.[s'{Xzu7_} 99NNxӳwN)1;/u}\j1ǸY# q%̯06b@Cp3Ţm?8naw}Uա)ŗ/^#NN.$dW/pS8Ʀ9&>,৘&nBÓnh΋e+Y"f7hSHf),ԡJD4U U͢DNGG✯B?:x˫:NiS93%eixE0ܽiqФ*DD23WJ$scpʰo!TiY`qtL:J/7uPTD4CD̎E_*D1JUytC`" "{4fD`F6o*'ķ TQ-SB /ܺAWM)D75IΎY^o{Z!!oy߄wU?}5kq74̜ނ_?Kw> TE9A3u;5mLIyo߶yfY=d5ҏӃ[rl9AӜ>z4|,SV[]^޽m_//GGMWϠHFpss nj@=!#CΦ1L;0X,n)x" ="nSDfT O71#q;0;h/^4.v}\wGG٧\TY1 0R%o<,0UČՎ!1c岟E"y&F92PUlɑ?XĔNȇ'/^ڲmԤ8l&8ﶻ9=9UzSf3CEOO2n;?O~g)uwpOxn{c.//sgg}P岌Ey"rppPtɓ'"rx|n_$Dvl|_!0vqwE}?2 BBQԠa}6ޏ1gSӄ@PU>0NɇZ1)NQNN·~Wj;]aC v&\*~~!1.Mz͵! ~w!TYbus#bU]fDiI 4%-HhcHccS9< gX.Ub5E1㔕8~z%߽bua`yX5q$N./BE0(x6L`k09x,bD[ 62- g:tr A XvZl¥:{^& dA9xBޓcޗ7YtH)'6 3%& ԱۓfT0l鬾ATEw+e[^y ٫jJ@# X3)P&C%gLrID܏tg<d}G:wMzDpd ?{ ޮy3?GWw)}awѕR 4{2="Ϝ %^o ށsVR&SгkjOԎNN87д )齻G\{x;I}y}sϿ&Hnv[̮ȤQ0(ӜPD9([Q<hƘɷOaicJs 3s2brj*pTr<;>naؤT"d Njf"PQǮ u5'Q2B #8ӔRJ)i,`@06NC$|eqXE~ჳsEbuKrnmMES;œ.1fZ|c8"Sz\.g48}ǗmZUo֫O=>:wqdHtppPu*HN;r qԜ\i afc`mL2() G̈0dyx>bGLJ\_c?ݽs1 z0:g8"9f Ω"N移H,A2!kŌɋj( LΑ`<=Xݼ|'qL8:fvs1ALyvuM'˫1fvsv4lVULm6SS~] 2 ;!&i@ɒ  YQLI }V `U3f-1]/Loٸ%oV`8#2wD \k-Ɯ3mh:y8Ul?BETE,H.L_B"okARH ![,=?Gz>wKZq""sP: Fbj0 &ٗ ͧR/ !.'w 5Tu&Uع`jwl6Xvý^W/6ۭ2+:$Y4eO1hR< r\{ CY5d͓f<z&Ծ(sj=bU1*[=o?϶l3Bᣛ}6|GwD>rsCGw/~MR"xj*8c4zjGU^zDu]W!}qڬ̤&~4N/ܹTnc""Q1]Õ\:ƞi)* MapBC9P}< ɱD@8>>|}ESL*`4V)`rx15"SlQ Cn쐙JuG.㔂H,48E"U dSvcbη9cq]RׄGo~ǑcMl*OiP6>I6tw>4T4ĔLr9gny"m?931@EDG*EXE1Y!;Q=2PSCR r{2D@D w9e"y>gUZ昳f cؑ8jZFP0YX+h.91C D* ̸>3oe lDfXHo4\AMfgie/"jtwF+[^Lh+ m+\`h_#z[no_2H 7oՊP/ޘ gl(#`Y;kyk9m x(̙H=FX1*׍SQvvW_B`Q\,SPj|IW?|v3a6q Ɇ;ȣ"fUs1Q}xanB_i$Iv3srϬz!%JG<͐:鵺*+|1>GvcQh}S'*#}w m#t8:r"a? NM9#W51#'?yfy7m&"ҧh*"̂ dM!8T:PDDMbJ*L,;1}s̪ A-J.kXWu~`ĜS۶"8g?˪g͛o2 \o^}j^W*񓣽??oNO*UjýW6UGϞ5>Lb>??UB|`=\\^~f'wml2ife_|E]uN/l6sHGG{U3sJsDL+,pD:&PUrJM廮%$ e]7!,".Iߵ@D5] D,28o+]7,=~^[U-!lw޹aHL*w^vtSBj!ƔޔөPEti鶛Ń-Pa`3rT2M&MYfvO$B'T|1kRc$kJI7@Ќya4ޖ@B5_`RSS"gm4+#TcJXb< ۱Xt|-"h1x9瘘Jv42(agSO"ǎC"3tTʦ3<#" "kc` Z2 $*i‰ƴcJ b n2ݫ޽#GPp)9xРE@'@ك[X]K)L~M~UiticGs'q{/,1AB܀sPW0zDTFP5zBd9?B9n`/ m XQ$x#?Y]|mM<8?_5!G0 $ G3r^ sbXӺ\-oMrv`fhy&#iSH3Ydqw[]]:9[mx}ww]߭W}QTXIE@+盺)>HL hDDHΑT=B`bS6Ŝ-+2&}@W&jݝS81UU5*W~Mܵ=1;n<.Ib'_޼xG/omJmWLVW Nٙfi*Oʯoo^4yݜ}}?߾:?>ޥvCr|]*wPX7բV_}u}szr&YUN&H m4**$S5CR!jCa:_vmԾlݨ"gպgIi?r{v(`݀g4.rܢajC76/ⰝϚm< #uUV54;Ե\UuD~Y{ǀn2tM?fa=;j!C{YMl1z Y];\^\42:U BC Q̎7ۍXmҀYMCt?vOdDrqЌdQ) "3()a ĦZ",;@3+coeۑd&SSC0D+jzs39Ȅ _Hn @Qؠ(Esyؽ גSS"2-\CSSGDqݵ1F<%x C{G.(͌yDP3-f]"9(7%[;ny/}w1yۍ7b@ G)+ Pl ++e*ɤzMCS5!!fo84Ó/>ۻd6E_~Я=|tzrvyy噏@ k>{ٓ'{xtӏ>e MYr.חb?b>W*TP7p[nnWYdӮ˿U>zj&X޾8)t{{ͤ5"ޕ9f6kq2j+'j6cӓ˛;v*j:$;{x^]`9EĞ>}23BcI/A1I}YR/uU;"019ǣ3KvXJ14is9禮ځ䜭m<Ƥ|Z.כv7mKGn]W}ߊi7uĔRV<-׋lZYJ-3jf+ĪHuVUUQ NN޲c@P2(x;F!N`A4B""Z!F𵛄\ 00؋ad-sHIUYz3۴ **.k.D@ Ȁ<}??BN蜗](<+e {o )^1,L QU T+ӱQhAŏ1D"&2ؑ$E SU gEvqи Gucy);/cfX0{~c}7#×_1P(̜j IDATG*$qޞ=yqj0,")iAh(x@b^w| M|sPny콧[I/) eCr~s~AٹU ۶t+;Wo΀ YzW0]toNN5͔$DݝޓoG 탇k$1Y鋯Y^md6mb./8G>K04ׯ^~^_v?>=ylno?bn9t2ijBBQ1P;@XOm{)Y̹JP0BLMd*yY;&մ^G{ӊ,Cg"Cfvj};SQaqxr U-Py@RSaP!HΛx`R)R!E5 ̱+T1y6ɱ_n)(Mj39d)E%.TU vq6ՕMs\(|u/Z&ݬ('[wLSKjd2D4$2u-Qu4C YF-~~5Qs;tN({Y$3ZsaÎ# X!a0F;[.3 XARh9ь#WE{?YpNrF(Ngs*2eG8*gݱwEkm.qs\67TRې'?yޭyӂT*֑~$ax8ow` )]>0`7 {LcJ0\ #|ÿ[c@W" ;=ȃ3*_"w [Țsɯ9>8جmۍ{*Ww)r ]8 @]eĽhOyjx2M`~(8\K/zQPSY%Kyf88CM ZJyGs񜫹&2h4s#s} * u3bcݫˋf?~'_}RI3l}X݉䘇s32dҴ}~ym9:{cΦ*BHJDnDTBM-VUrje::ɔhDG8f1ň1C"p3uT0sՠ:l4 2Nc bB.i6"`31:ؓc@(i_\pfQhXsXrS.4CaQP\ @^ٰdDG6@ l,t֏~$W,=g*wo67_1lAʵ+swW*V =bPyP TҊ%|!&b՛4=v苏?ӣIׯx/w'O!Vf6Iw0 >~MQbȚTzn0@5"[BpMϚT?Z~7 09v" ))৳YuA-FKQf&QsM)(Td'.@{!3Q͠\fIRIe1ffO-1fQZ.>}^ͧ~7_59Lxl2QBTtoo/8#r|u{U 4SYDPסr\v7oyxl֛nbWeU>||`XTu\ nnzG@]aL,?KձC_oo_p`n0%~@uehhM-y()K|MS9B"ýンA ӣի@9 RsEU he"&:T&ajiD ^-Ic% Y̅P!"8CpdM ̪λefƔE4g U%) D&Y4kuHjAL !RL޻9/1r!sLqC 1 ~0H(hEl9&!bUyGl)SfZMd]  3܂f{ YBDFkd@轧2rҢVvrLnat%iF5y2-9a Lg$hîTLFԐp'̻ U0"UKw cMō]YOqDSfC"T3)bD4߻=?`v.vDg.7ojSJP\P[;7S!&@ࡩ= T{{pʹL0 U S~򓯾 9Bޕ"Ɋ'>zO>xW/W{ }@DhY#}W5 0 T`qݔ#P}o^3G)g{{i8&3 |٬!zVnz3&4dl6}۾%} ƖCɒe$d.e* lp)f3Ƕ4#`6aP u jov^^NC1n١glmNy||Oc3(чj:ǏNOdmubM$&S{'}\99607tmݪ|:?>> 7Mo۶?D䫯 '/G߼?_}qp|,_yYN2//9SLu-`fDD&K2m7WgTDc~H3XѠl㬩QTgAYĘ@MݴaLG2f9KnUiT"1odҰöL4S+ ƠjuUG@(!P 5 Ci:+_O}ݬQԕdɢU32CfnooyJ9$f\yB09zˋQ?l`"̻hɫy@8W%Am"7!$S9 ٩*j,\E< }]y %bhFDĄ1 Vqw Ƨ;ъFR Bң\;c3b*lwc @ljZ,,e<<*Q |,G!瀥 Plߏq;Ow!j#; ށwa3?!c6n3o50_ @jB@Jy{MJY+?\[!gH fS /L0zY 9f fPZF7HUY?z|{}s2ӟ~n5DfZ4ͦ?=9/`McUb'1J==:6ӳlf!xmv;S>">3J"c{_$&@L9i 9Nsl?.-BH C8<:p/m YF½ 쾳@j\AB@j@&!s[V w%C5q?o^3$bف IB6c3vRwu }`9{M糘rU/qNo.tn&!PUM۫$ƹ~˛0Td 5!j)txp]O QNIUMr'9=k''gwwwHCM1sQ"__l6Z,YSMBd_O.տ7o^EID,CCT888zn\;zFvfoMg??9::99yq3Ô"nV|=|I@_ڶvfݷ~=_,͛/7_yLqRyWVC\KY>x=:19lRPKBQ_ :`JC7/%]EΒs*};rHd#Znfgua]Wo7XȦJ_ԈTgCE2&GLH}k$ m̛&M/"fة3#CWUEҐyfmjRM`sjjobuC|2]ص\nm&24d0$.p M \"N:{FGC҇/oJL dweNZ8I`GSf1X$n@ Te6Y"6Y ~v  c$!dfVB΢9/PT qt02 w3¡agfXneŀD {,dD) 9($6D`C4 D(4VQ+"bZb@IIי" J33[plA0cD{֏^߫1kT+a&fCJXxfF@NEv={ b"x""?,;C+΁w=8m7ӳ L]\\: t}ܴb0m4qLm`u>=>@_nWfwyLŋuVnCWd2_bZ5_<_ƘZ9S$LTWaLSD䈃wEL*ھI>;*9s2*0!z?Z7%MLGݐ|^mCcc`v90$sfypvR jH0)%4Ѯ'ǓIוgǡ 5*YPU;CyrD*yBI:Ir*"7LwK_D&Wxv}( S3npAbA`I#fEsGthQʆP2hRTLيYA{z iR^)wv.0on3+ 8JX2^qj#VX@"V1B+fw8XidJ^JK K/Gwcz͐KuZ)Ljx,?w"25U4E&&@wwas?Q3?DfY I -sJ2 870ȕ@~Au4y8,Xh9P釁 *4eɄ%/wm dwo.:SD^4š11HZmwg$fZ"jnLb4T-8r YA,d5YLD : BdoكG_:vxn[}7 **ã @TSJDHٱ DZlqPl8tn3tCdPK"@LL%[;F*PpPP7lo...D%T5"u{Yb/wO>ѣ'_ݝg:?zG|W]\l^C||QH GGLJY#|Vp9篿z1_ڮ6'GG7]?Qtw_M=a۶byG/eE;7_1 h9{ uLCʈ?_<|pFDoony>gp,`ZG&Q)VWX20/mJi"#8B%Yّmڕ*y=1ޞe2c`suWm֛󞉫F#$a>>{㗯^Fn+:ԛ7}wusuZEUp膶-ӣt2P''MU;ciUeYc? 5TUUuU׆p}sYWUUW"w=i^ݵVE>yRqeUry7afTf !f$Vfg3ܤn ){.[$kVMr8m6N$M7]1aB?IdMM7[s!ِ" ')X{GwwgϞ!fS>L LG]`p9N)sm13cJ'"*nI$&UJTU=!C}[ObCbr5 rzzDm57@UkE7 h\DMgbn<#GUrӄv5#9"ܵ#!;0i% %n7` JH@MF%l-0ɥɠ1XVX` H6#7r1# $J,Po,"`#,i+,)lB0(.Z(N;M6 _ sh&خ4ʾQdl` ̄E:YIr+@yWhQMEd',f4O3w1׏"yLyށQ;0~Tǯo3"x/`d*cQ0q@d',1,{21` f )L$9z{QN/l7vcӚ|z|'͊\'ϤYJsNT5,LI^/'hj/nsۗA}h(N~g !.fLOJ*̢;fLu=~zh٤:YwvcJ޹}NIT3Va"$$Jx.H9obD% fiKn: r OYd jzzxz89|\oTC>;{ffٵ8m8usdZq=-ޮovION{f"|vD9.xO)N&,bfu]JJ ۗpo>6W yſ]=kUypssbr}Y*i월ML&]UUU@As]xT˪@ L-xۭ^{!}DǡT⴩wp8~m7bWoϣwrHY] Yw}7 n7 Y\3g@Kjj{UA4Njcf#ٶ ! Y%,+#5&S$TEs5 ЕykA)6 at0䜜sűZ:-v=dn@#0^Ǫ੔{QLLWܩTu|-)QW0(!hq@2ztD"hyd!; 5U)ڂаt@9U$.łffjDTҞ؊MK$D4vW!O}$MՊ+cq:4;nGZ?S?QP㊄Wǎ؅y"a3Pɷp{F5~.f|+⬮aE4)?x;>z/pyw۷$n(ѡIo510£H.^"O Mހ%R؁s۷/ɲ:;&3{lW @K#KQ?JV+I$q˾zd"2+lݻF9ϞWY\.6M''ϲzWc)d͛7oPa ZΈFO?Yڨ٣ϙ?!fn۝-ulD@Qﲼ@4CˡnqU hH\6dzLӶevT>F@e}f<(gh\EG%@Q:j,svY @PE &iZ(Ʈ ˲>xk9sMy1~V{$>:,n/N`j҇ Dm|#$sxx^/ (r Hm!b!2e&P !ZM3,*VФut+DC_H Te6QEU[7"%DC2$lL.T,E0`2YfАDacq +!"1fTXT C1&1CH|gcb$CDRfC_2 "az֐ɍSpGa 4N*@Tc@2==C=TM$jacDT#6f{wooJ ""IaL9L"D['KGjE@! 9̒*)'†T-Km7o_7P._^یxcuWU G.ng_ܰ**&,sU^^Z`LGVՃni ,U˟jh+Nctǧfs^CCGt:>9?{W?yx~y{۫ͪ!2$Ʈ5]'PEDQRD %C@bG&#;F]ץ; Y r@Jg5옘2pQ2mfKD&sū6z}u.}Z[dtz~rn4B A1s\q2MUw@G&wl:݃o)VU{QB]v͛M[Mf|`~zt|^e5S6xsqja;.f]SFm]7&ufp:$ XXcT+۷9>ƺif"H"+QCs{{xeF"s!6&xlGj%-d>UQZ}lv "dNVeY0IN%cY+q^T2s@Q5Gec5%Te6"TNx(,uɎ 2O L HFN${=>\f$La7јip@x{=If hN8aˑ}v? -/ͤL6*#H!D8ޛEA04X7%C#!A!f}D23D^\(%!x~{k4JtW׻6 t@*Gj] " T7MM>|p뎹bqU|w/ 뛛o9u+d.UC |̋z U5+[A]iQ:fs 1y` Jx\mYv(ZaD( `w$ Q΀j( PT 1FQ5uGA&A4r<;fbBۆ茝EU=nQз$ƀqȞ@yY˷o&nTL?~4/n\V/~w&JEãdziip2 T%BQ*A Yf;bvw{s'yjc7`h~ޡ&c"8}}PĹWsgN߼gsʪù|׾mkUEL[#hW"`ì"3;B+]0?8\ngGd!rm*'Q,2vA3k4D:h}n./2g'9g@yӷ[u2u@,|yB*4P`/*WVsn4. b4zq mv; -({Dc)Lf%wod<QCTklߋDVU_P+™-5li;"z"j:?JF {#ʲd;PU"eՠB pi85SMū* þXibLix }P!`TeR" HImxT\''"```u>IGHhIEP8t z/}ڀ1 *#H Jrr3'6$̚Ūш(Q2 3`Q P^!I"UHJBT _>]2P8{noHWX1_t$UQؗ%q)  C| ~mf{\9 D%_l$xgp::v$SdQ0D曗ϽyqXxM^\](=h >"Ꞩn[>nz0>://.YZ>r7-8g޾9]]ED u dc`k,#pt<]Fb{ &*⽈{ ["w}UE$¢ 72l [*j 6,zJHCJE$(&3c83d@e߼|~C 9=&M E@&G>' fzvh\j 6_G5}勓߷ !f<YI@U3&G 2W|~'_>}S@xrU<ͿygnyppT.&d|sXZe1>:<Ɍ?UjUIC cXv&6skݨ(яGEY6[m!̱5_LH鬪Fu;:>XǣlvCq pnwٻwoD6Bcw}Y]1)ˋH ͦLB6;&!"%Џ{3d ^|]Skv-n3Kv}ɵ}g̬* (v}!{UMgBH.UGA@edERArR <+P .W.E/fz/J2%D}b&ػT4gAX!cHȌhR F&V@dsQAڛ#CX""$a6Pnc7f9 1  @bBi|O ))|_Ň}ރOݾ4_e|U9D@Rqpl8p~ CѺ0@89bǻ@`"HADb1Y/(d}ѓGM$EfrrpX8Ƿ ҟgfD1+AD>DPZtD0O'EkyZOON3dI\n0>{ UR"bfMLCp-'Ouoo*U1Jژk;!DiVdNsg M*m`+#bӵ@ у  q/hP83# єE>}Qd׷eKd-:qf:?X.WjN&e.}C|O?:=[mׅs*Q_}woOUC2_Wofn׵3gGE^_!l?ܮ7g3e믿3rcf]wzn3x6=Nחo~9*iDvc!vzc u_]#dҴ}vΚ,sye&u8ێFBg,_ܮt޶b8:l;Dmî 泣nP"J fMlؘ5rt]G"YF2hqEFh A5!1`5h5G}4H}<C|0N,jW4'^_!w)!3%⽥tRNXI$> ayT ۮKmP~&bT uf'@S!P$Ę&>?h n^3bb -f@×t{xffܳ xMTD0={ޣ(U4'Ku~Q^04kj6PB%&B?>x 1ϟB%ð$d;[`{H8$Ig"f%@d~0*dpKc]Mt#_{?ɟ~ip8VUu{{5D!ÛaoSIHDt,}>部BY"; F[k GG׆NQ$c}gKv\^{ j5v8<:֞'~Iq9Y.??{>ۋ kr[nnzue'ͯ[VyYe.#Է7W٬㪪7ۃw..뮱GIUvNAg'Yf*J[Z!.QB umOLΐ]" ;cEu{J,cNgmM2w"" #}7p]oC@rܮofRfەըok܊J^!h" 2c˹{d,++6C,+D6@b ˆ˲ #sO&O>^_RHFH4\j0\Hfib?!v+:}nWg kPAbhMs8جwmk/n.{oڮQh)8k!1!+bx^Ǯpt6m%$Ary^Nvu6MY%2dk|ЈЅ>{x6vYlG',vܹr2[|(@f{ۢ(l:f'O+6f>888<==rDX=~ѧ?~5XFwww_~(^|Ά_i_|j6LGLnW3Ƈ)HMh7+G#6#U ~#e ƶkBD}hl-ڴqUY&! hĸOG1"0a6ݭymF(˲٭]梏`YEYf]9>sVcQ1k;h-!Yxk(\vBA\b"F3>_dhVA0ƨI%m9T6B.1[+qOa&^Wg(O>{ꮉEHlE,QU-G "pէ,n6gEĦnڶ`,ւaAU.Fx~~{y1}}'@Y܍\bon.ۖ gL-"!XDQu1L"ϦnVHM 1E "5UB0ƒep@*L U A !%BQɰlFLժ5n>U٨, [˟b!DÛo۶u;9:suz<٬kWv^]gl؇z\ j'3e9?7yv>*Oc9G`Qmf<_v:%Dl̺Bp\B5N"9{KFV!h`uͫx<_6lmZ723}!""FHȘb@ Aڶ( ܃Ch8Ԍfg7_Di{k]zWgyqpxeUt轊=Bb 0"x@c 8onh&cfMuJj؛|" B25PW#"~qGlD2^Ibb*.CUe%abC ˜i@!&ZGM:1 | /[g!OCjF8gRz2@FMLYA ǃ$ݩKU! e$8)nDREx'ÄpV H1J)ր@I8B۶Ѹ5CUW6MHw%\zƇ˲! fY2Ƃd\aPm$}߭Qã!J;2 QyYUlFYӪ:9*\`!! "4㇏6̓],_rqX-ڮ}y}x`4T43x~`<͋8s??b5e}ٌr6{POOIGӳ➍.r< DX]S?m^d77yQcz:Xk@7ݣj6?ty~}sֳ<mF2I&;p2 '#RkܩŴ(x.,fݺ;g(0cmەEG˻Q@zcp.Fe=A$粦1h۶bzcFbdccǣv}]Z6&#Db0QiبH{˦rIΥƠ(ty ]u ZvM-RoPe>z^-%gmL0̺q>;02m2b]*1]`΀4^G1jH@Ox&gGa*^lAe&HƠD UUSLs6AdFQ@ZJ?bFF=0MA[I$tHzh[u?MnBv ʃޛ)﷮F.6_Q !7"DAHt`J{>/a\4\'E&_h }w~o7C@cx;G%h9ٷRy*Faԛ`\*v ?a1%s11b[v!D,RΜ<fs:w˕wb }㫫l\oC_|ik[m%Ez5ȓͶ:vytJ>͕t^AA I3I;?:}]1'cUQ̹ q\=vA@ShjEQR}\BRۤ,}AQ9Ct aʌ#bB!^ԫ}) *D#!eg$5 &R,mYh-Vwu׶U{U0*jy!f c||r|+f޵?~-2MǓWUͷ-V۳~fG,0Ϝ˽. (^Ah^\5] QU%|fq٬Go߼Lzgm]`>L3{yuiѯ6kDSfȮ< ]GO m}GDܵ!`kE^s擑H(8gOOOۦsw,Mis0T=̇H}׉3o3!:lBȳLcD"JĠuz鼈7b )H]׎* B}ddzznM-B>Ͷa$x/@EQ?\m=&B0lvQ4]׷%[LGJIoaD}Ww{}؞12O @ \PTڛd$$ySI Cq* FBL D2}kM1!De{iPFrE{FDϻ è=D! éjK!DԴ$*(. |j" {C }oY#pO()1ADҐA:D5 !f$E?ao)o߽BB)k U H jB}ilJJ4l4m;B! FW9>8~?쳖w_C}?O]-QO~ru}*'ú0tݐ2{3\ڪLHyV緫v }tK c/fuP~XfU- cFDFf.+ xS*gb&O]f4RX (1DUQBE| `lbmv۴}GQUͺm'?fٳgp\;Ve'~q>1pMG_G7ewXh2/dr0Lg?yݬ WmWۻ777g◿ջvq7_O~|f7όdOepxtTFz_XիNEg.Cd\j"/smbT@ } h,3 Aݾ8 Y*,!BveYgc&su26* s9h2Yv*#2Y&31 "@z"@:6sYc|ɜ51sܶa͜ #1?~vu9=> J JHYPIF'fQev $zeEYj ɋj&%WOADnd2Gg EiؗaE$08qtƎ8(R %Dcc$J pp½ 1̜,1c@(j+"8,&R`Tc }itF @2w+"HTb{pY bMza"?cBenC4ʀwiUh{k Tp A!PEQdf&ht{߇ɿ,.zFØ#1)* 0 < {B0Xנ*mØeI\lw@ HJ6; /3m1:Oz} ?l^?zW_4g>W߸r.z=pS !wzP}9MNmP/%ٹpPs&&1怓ѨqRV!xPKnn.AʜKRPS$ !@#xUJ%0"ɊCvHƤ=VT?Zg曣wmǗ>z$q{QU]Ͼ'.ޟ?ͯ/7r2u[Z{}qvxNUktBܭ߼~ۮUۛz^6m3L߼ys||W_}'1'|vgyィzlg}6|m9g[߭6ׯ^?ylG\|lyգ$m[2P(1wYo I,!XmkeQ6]{rr1d<[l|8?_oFb﬩.7ƔYq6`",W"ꦩʂQSݵQ0 ull];Dwx|MMYfS8\FR9ge5/oމ궉*BT@L3kw;* 1gFE A3"jmH!DkxmvmUzgj5hEn/C 7"JGD{+" EA $NAĄIP#j'$ˠ &L#VfС\=E0ҷDȸ,)#("&oZCC/3/,*[T$HŤQe&UѽnOJ^Y,4P`2Tಏoo4\-iPB 8Lq5"pV74c'#FI mU ߇ïG;R1H Ip$yaB4ie]Ѧk~nv鼨NN_~EY^.E3A#`,$Vĸg/2R*0AsCy:̤oUCbFyQ2dr4뾋ej bL) ( 3Q#HȈ*A !6lKf )$AS${%efb @*b@Rb`6>}6*򬓸\bD;wWxh'h7'ObChE@h<c30>9^o#7?O޼~{xp\Hx||moz{zΜL:cԺmu]fmf뚦K\oWɤ*&NE4Xwy9B$Hy߽4ZCzZcD%63v[ոmw 7cF%dELۚM^Vj2.&Q ٶ%g]`뺾nt1LGPyv(#Ͷ D3׶jǮd}{AYƹXgqƍF!D޷D&Fu2Li ֘"M2n.aDUXyJ`EPMmELD{_*TU٤0 %{U^4L$M̧:x{w/KIB`rN cX$"bj~J2U"PʇҤő(1ȡ# 5 .^H6D9ʞK^OK晴BT}HQAH': & }~H>(a"g}X?݃$[NNz؛=o5yO~ l4} :*XD$(Y  e@ (xS)0)#J{3 `3 `M ݴ*?͵gy6>FډXҵnm4>:hy} 1eCLԚӧx AzD~y0*0F2/ЗyU9*jnJ1*h* 1ΪQӶ "(2FuvEf͚,I3GrꮪF 6 LfIz_7LfDrfHlDgrs{ȪFc#A7—p?l@- ##κ)h,JUT 1@P$1D0 =8-(\'_}Ł/?AWϞ<DZ( dQp6_Y+2V_}ǮN< !\]_-"\̻'O>z fK]G_{hY viME^Ã}ϟG=9:wvuno~@d4auvzuzZכM96ryt6),r΀ִYDׯ~n9$IBlN{h&2 DbC)|~4vc9HJY~1oRa7d I `"nȈF!D x3&"Ʀ5.<,jtsY,M`9ɐuK )9LWG&1 Bdb&""Yb;FM4Cj%P\- Ժ&A`64d"(m%R SoՌF4B j(N`&Vl]@UaHj h"9R*VOfi IDAT," % mDj(lf"lovxt14V;z^^]r fv:yAr7U |>C mu‹ fHOw=1QLdb31Yv'{܆8{ST%Mi'vihY3L~f`S a 6P"TֵuPdhY{Sl$rz}moG~y͸k?x򒚠V'\ ޻w/n׷xx}9j۴n~όEwj\gNO7~V~Ϟ?{{+lvpu'gϟ_>zzhOxyt-k;"/^>_o7m ''Ǐ>>Z-V˦mݮoڶt93u]~nޭNfU~5д+D|vI΄6 {!p-ֻ@ v}>:^̚zvm3e@ J29D =?F&)CAD8Yf]%I :^\7Mqֵ̘䥺QU)mj{͢M;-0Jʃ!b xb,Ҵqۊ[Ma D}󄝈8ψ$ߛzֹE0B`EԽT ``&5$dAtޫ)s漕rʄҐơ 3 ~6y`;d&2{G= +%@`DCDF$Bp<&q"x+A$% ~jPgcAk`jD9\\2NFQX{T0nN"`FP YZ@f(Y :~׿.7/6W+[3imTVMJ0W4-抜|Dx"+@j]@D"!{T˛W{jӳ>' ӓ|=z `(Ogg//onoַk0bX/_׷y3ͷuzDf!綍3C?hB })iBh 9Y ,evkR PX HM #Cw^B*@Ñ9JrȰ]-Ciooo~zg7{juY 8fyٶgGNj?uJdRvm^;no__^6w0O~ާ ?>߿@-]|~0)箝 ?\-nѣW&ٮclNNO?x!" ys{s|4z"r*2_%~T kiME% 9$˧ݧfCFE!&W10ݬUmCh: sγy8~40cJɀvzf9r> Pvj&nމ&)umvAnÐahv1mf k9bNno/Y4(H~6 6,um*D{'NPL(FDFl͗ sc5ɳS(=;:; s*h߻&WO@)yL0R3 L5&5њfq 9C5PpX gP \ g17gGZw~/o: f?0ܬ~D?/o(F?O?^r˯Oζݰۃ T K)!k!!' &和& p(&FffC"9nSbg,F ̄)_}%552 `1PLlO`HD"򼛩Yʢ"艥AKzW"IL0! 4fO@% 0df˗WdKUArz]\_lf8ZrkN^_]~vY{4_~|r'._~}i}[,=}~vv>Yƈ_~>m( X/V''._|gWWW/ܻwq~~<2vso_FOO_z <}z}uWˣ(fIU%Bd߼Լ3uSn?r>JM|qlܪA C`"j& :/R QsIbCt@ClE混b9kbҋbmمIRD[0 A κ"X`bFi@s 1eim;abZJm׵M)ƈHMۨZDmlY(6L,'Y^_. @b5+j@`kř TA τ\CL졭XL%\x&d,!=Qy+"B6006 "Nu,Y[eb-1s;@tCC Oh%FBPqi5dc;ȝvJջ1(=~~-HkR 1_9 % N=k!{L`4(>~?9J7T-zxen86A$qC3[dȱ[ b1:uG1~i|u8"Xe=pBК1^7 g}G/NOov^\_~ޣ6~V}z򥉚( v)f T ?}V}Ă TkDb|mlY@Yb঍P_V6S|: YŴ&FB6lkIW92'} AXOR16 RT2 %᳘+E4%6R !@6Fٽc׷볳{g?yOOk"!U/?hZO. 7MvwϚx7]}{_>COo6w>}D|5/])rl_z#ŋvv|qt~~-3nGGW_p~vNfm|x!_Ǥa`9B+4.l>ɐ1Xw0IJB T-mw}ӵ b177Ĥ}2UmM)|9ҶiBJ8K0 ifϽjiHY;v]!rxzyt6s0CPC1b%! YnHˣ~v>xz^"iHy\,A!fۛkS6ޙ= QdYfPA԰Bԍ{:B>3 fL&"DDY40;X0 ~aPwPԬ0'$Q#!)z =PˌيVRPCbRq#k5j#-p (1L>DZ(X",d61+|n/ʣ) "2! 8Ne 21@~?Wwy zӞϿm b!嬈D!c32Pr@mg}_=$0<pHqNJB5;χ|W٧/_Owd_\^nrnCZ )~0P< &lN:D< lhApa" 0hydn%tEʦ949{ ~i7!׻7{Kʻ 4K2 xԇ׍R@cd NH 9ebᖀdYj>ODv~urY^ߜK)_xXxO{`Y|Y J]J}¿?~ M!&MM {ٗ_vnҷ̫bs<,b^z~f㓣$6qJkfb6ןFBj6M.Oono&C?jubf9=_|%3>OOϘXU^~mb"ݑ OFvWn:ɮ9|,Ym@ Y}Y9vTcvvE "C?z7XmdsRfem7ݮf&6ÐC41qlGG3DLV^_o_zzRߟnwjSNi! af{6ݦDd۟.CD7!zoYsܬ9TCj;& Q z6 crSCuk#"^ >xY ffl% iX01pDl8Ajpsν}tC̹j6+%zz3Ufc:j*qDjP2ߠe5,T j3J*N*z(4r`pH H$bJlM _f QDfD%Blzw[\K<3_-7"jZ[WOO>ߑ EbםWef0]gv[XLÐư3™y?@* V ~?͋W )3g9ZB|fw۝x : R5o&)7`/_6m+:)UX|Pew3Yfh+0e&#*!@3"` ncu~KyDM4K} X!a% LLLR`Y!9K9CM*a&0kf`Hټ-?v)kv !$߼|y9qvjG?;?_?{rZ?QՌ?.|?2mCm'?m͏|~tz|tBH3lyq0butf'7O<,V/r|~>! lכ*. ۮ7 t}g9{ PnxȾcUQ0DL"@ +G95=neZBDB-ݎ%g4X!DьdI(Lս-kG,&l&MDh6駟n$XǪ-/ I4$R2'm9Ӑd)g"sߕ]{@CBL!Hf*Yz09>$0fsf0@..e^8!18b "h#t }1B7̀?~_M&P^r 7vr߃*>_90MIu 籧|-,Bdh" `v ` bn`t By /3a}_##y3v>j($ZaVbBHl]e ]@KD h!cK9X LBb*؄8l{faZf}\-W'nv3\ݬ߻?y+C }Wݏ]#1XL6i7G/WϾ޽>|٫mNã nC-쓛!Ώ3<=;3bvuz1# lm&d,)4gv8[on_<=z|{s̈́ռ{~aUDDt_B>^,y=qe4f2֔hJkWWٌ͌xųaXh4q b؄~1obl۾E7ŜEGnn6j{'n׃"13q@Db1\APHֶϹ70 LR^,O. xYNF!Bh PstvrCInyJIU`Dq5#Q ՙBQd&P Npw@X,*@|DU 3R82jl ȈL19"3"TKCu#v7%V?/[' ྐj2>YQC ")e)8 JzD)YZ_:"Rk[4ZTJ-.FjȞyJXBP0wLÞc DrМ߁w7]S}QkU5 7jJ,fj1ob`\qsOשYƂ@lc /?*{AVSjUġF0M%N~51LZNBTc)'h2E(@Ωi=R&Hl!< nJOd6ߞb51Xsb$=EҶ(r`VOUT=Ibqd?L=ݰn%:l|ucMdbHMZsU=;g]Bl7Vq<`4m("\[d!DSMrJ`f9%1"HnK咶THv0Jܳ B6'P1!d !*b|QNTՉ D̢H*Zj!JTE b65R(~̟狀q22PU" L" ijnrf _~!=K u!D)xfDtF8Df^Ԁ߬ Wt)UC?H+V9mhcSIyA_9 IDAT}MG1o ~ tU;w (Q/FMOPxOrMnvкzфe30?R[ ,7,sN)n힘clpA\pu9{ô;}g]roa1Q/\";bb6-bזzz"3, XO<1B[xʂ$;HeO78Xp$@d^_ z=X%g6acZ3T!D" 2>.T쐳pU;w5<ofV,j'+a)I5f "1DUU@%5 Q݄\$CK<#+Xq"jqT !F(2 F,k HdVꆺ͉< if'C@V$j׵iHLۦaDK'@ bRW}1nW|ctԁmdfD&@9!"s-A]9R)W*9^Qi kڹ~\?fB AdAUK% ""4Z`:=>IPrB>Hā(T/ohD5֙!̲ƀV< a;Ubk~9⹃w͘N>m"&8o[lB8Dž`եzwUjNK lMeJG>b*7N(KzUn;KK` ^o\_ַ Z]ۨREw}>iӶ[73;p +(3rKPG_{""JV*WTIDLEG*ӗA\7)͵~ZŚ7\i5mN!bED@sճ4wy2r9e ½9EuvȝǑs);wO#BE%=)V"D & 6= @.ugX0uKMLX9#W-F^f\ƒwibDa97!P闥$%z}*<Bp6~HUBfLH!Ćh̰"RRզib{<db)%]s~ib)^9D&t 4#$-L:xI&bB˪ '͒c`| T.|p[aP͐(Y4)%OF9p40/gPJ d [B(513šsP =$AQs. \7S9 E+Y5GR^w:ES̆͛GEVe,:Ê#j۳>ɗ{;5_z:9zߛjyw%U0`* ҡ0aO;nJ<|p[ħ:֡ha - n -vW#[_~]vfCL(_ v1L{SPk_rDd"!Frۮ1Th50Vu"&_ۼ+S a3iTCjHYM1Aqeul\evLH yR52=d9&C'3,%Sdn%BT,jiÈ)F1O~Ƃ}6 1dsjDEIrJ0a0HmEOˀTQ&yTL׵r {~SSDDf6ɑCX clBPJ"~̡@:f!9!:1FfVBwTz#b)#ML4cZÐEYŲj`#D7D9"0UuD Tk-/f6SQ5C`2$ʒ+2.,v! kjnŒ4]N݀S8XU H9\j& !0owLEU"B7ňq[Pliwd7ۻ\VB޺*M`v~6F~*P΄CV\dM41xO]|(BeKkdW!`IXUv!awVMJXNB .?oH- 7%JBUj{-pP-x̢Y)~Co'p8@U|h n۰CTM`E>T\ `; cbMIC%$mH0U!$g=L 2'UvCSJ>uLU1"1C2UľhsgB5G$FrljgǙ c2"8D4kDM, BV `F,JX}fzkeneDRU 3 54P/뢨?$DIRՏÓ9_UdHJLΜK\0,&Dt_;~5kޔ,|JFu 7W]2@ Fvʿzge0X,2,ù;}wtUyrxxGOĝ'L[]q#x nr؞Λxw׿`a_xFd?-_Xy78axhMz/,̟C uxׯ`D~?~#p&nzxQey; QJ.GX8P' ',NLQe{0j){p'nk\.t021gS'ƊP5^P^*ytMRܖs΢Ws;pQd[&3yɹ05}D233**B*36D"F@AuZ`$:3r l)[+k ̒3h="U>_$g[, E{gn995ET} LjĢ CIh!1"!B(9#Pr¢pf7<"t~g-{M b6:a]PJW( zdϙI"J9BVsўDhsNYy0L99Tux(*.=F'ϤaUgl9(#?F=,frPqܮX 80ɝ@OeKU4 ~i*K7v;+cjsHvecceRt8zV&z[95#A0v=g۝gK#%\j}^w^zW8M0b~~z}Cq_Uߘ,]fF&ǫjk t; 8*vL{/ay<֖&^j8c3w~bE{S \]33gз|p:FzLF7"~TݳM!Jrr{\ye$$+޽{GE'KEf8+=zcn lܧ9?21a9&Ҝ!HrZRyOw!9!6FTPR33K)d-1} "DQ#gQb4)"`ӶV x,sVϻgum0 ЭKjU&S)9W2Pdytk(0x^(2ߪ3c .+]G̰5E"3 . Dq` Ő㮬3U F,Q3~撤TD$t©r#zش[; IԝduEM_? &HEW:aIԈ7AF8t 4^t7ɡ`ny۾6c'UЩNĽ%&KPNg*w4f,r_ /zkY^Cꨱ'S`7HKxhAopvc@`0:vMۙ?^;_8)g$jGZ4`{~*]c݉YD`bzܝcqJ8Y9& oapЍ EoN> rjƻMg4ڦIP42/7xU3d.~cOD5Ԉ!QCG<߂Ml=&Scn+Bp*SRB?XIߙȹ\*Y8 ; xVOaȉ]Q7yP9i@DHTWdx›jS&"i[5~ߏo˓1Q5,nfո95?sHn`@=ÅDTLpG*8#*l60PT!"2؀JqbIx{|"/VSʮi]$b+^K̗@ѳ@+IAUY#t65"Dftj-W{x]1y%縺'bv/^6M9Doڝ^Ld̬CN@wrTeyϙٻRH$@HIwA#(MTTP"Tʧt. "[$M/ݙߏs7 }H3gfSZ<BA$6Y |i,€ 3D*#!J+Y~WhĚ-mz Oydg$_z93eiOEބ PJ+(AH,i8wBsIhҀ-iQK"%p0@6D+-@GZ8c< ATp)J"aL`; 20E9cl1ab\ٰcC6 EQfö|i&%?6ßb@)-0R6SMl1k1jX $r LlR!bDtWԦ'GMڒ,oSY"^e Mx)LlH؄J)+o^qX IDAT^!N1K,9l6k&͚al$AX9K~HXh(s4dDi{YE^YdKD{5MndՆv9f[jg_IdxMSgmd\$wkE<#K'oF}%J`RQW&׾\t Ȅt5QO|.NW~ R;}Eɉ=DLY-:2{zIRZlr  QE.?"D*yggN?w0Eѕ!\O-PLfNr0g 'zeƅ2wb=i6cl\mmB-,fTj #+h!} 0^ 6B.bƾrխB Z ӦHG+*ft XlF3l^c|+а\Ў6sJMlahګ5BQ qHAAl8Lj:Q!z}U4" bm%.-;YEU ĈD֚Hl^=Z;_ Vak>K,W->4r&屝,wdc¯)J1WQQhkć.eHQ槝eR}ֈ%w aPA+$an1;|# jCt ]Q;9HcfE!9p)3ފne}2D.S Yb9:8-/|RKnƀ_)8J+7z1^떭I1BadJOÝ3ܔK+mQ\0_i|6;$fݔPifR nDR}@ZqPQB`SǹoR8J"R D@Ӹ;eDDI{Q :63bք=uOI^tP'D>D3yAk./]u5eQFU kP|V<_Y޺oTJD)եz lӪwBWfQİ 헤Qdشd6]F=/'1 o mH"97!q 3d Hm9aRBHNމQ傀H (f(l9âk:؅[&BS,e@f2۳DzF5bzJ?v>mIIW EK^eVFeQF_Zb""=40a2D@ATN Ӣ%+N~r9H>M\bb+:2 ڗDRJ[l2Ly$gJG-2C`=:@AR @3lR{^՘#.~@YajH69K1EGgD+z嶻 Nvkpj煓J Νtr)ݨhG]f~eQFeWCۦT`E[,52^eYV66 WR K \@ҡvjhCgӮ{^$ϳd5lw W#I_:_6qmK]AQdX6%pVʢa{""%( v^-P$6NS -njG<csCZSBQ3° 95w5o,\W(2(/ {&(Ufdiu ^z)q \R罰&^KTK¯ɒ(a*lwHd/Eu7x$,ʷWnU'Hft<" ɨ'Zkk[(2%oR:e)W S ]YL|zKI' 0 3tYmpk .2> KkW1eQFe_ۦTLY\uGܭ|Bl_ڏvߗg][ q֞Z'd.cDpeO$ קffMdyɞDbLU'HG–Fq%k#[[d|RvɮrY jc+@Q1j=7J['OK;߉N-;-_QFeuՙVnOe>Ytz)=Ȧo%l}?24}8D'1[^ t/ZHWn (IDLɗФlTBD6 $"\bf'>\2AP)OZwp І!i=异$'Iǁlna"D!R E*"*I$gi__EYGh:իxY.f6ElEaDDXk" DLέ \peQgxtŻcM0R13&/!> WrK}l)ݵZ?KSx"C?V=f6ΆѓO>5)aoN;nM :lX+o/<v!߰}V8^tɂu>xȐt')_2e AkI*3ChCi,AQN881#vHeN+N$bɴ5wyDpA`"E)R(e 8LBMywm2,iP+s=*UiFJ"/PU4ս$,!XrFXTjt` Bu`k (RZ*r@@Z*` h-YϾ2( Q v,{>raxȈpMKmA։nUj{T@xIk5"k:M`.uA44>[nW^uuG=4zسEUu @**r{2og⋼13|IcCÖc˟BUWz[AX,N}=fYK4 h榦7QGu%:!P|/s|_j&+>8Si;CNO!nLK4(2KN J)fcP|VGqddAJ(.RQdcr" ȱPMc)HSQ\, Ps$Кz;,eQF0*0*[SVmԽOaJ%I׈L96HiWh;?}$FxWnS9in֨Xo v;uiÎ{1&K=Z+mmW-Lq| ᰞZ8|RA2 [1E1Y+ZqSs{_.kM#ѷa1QcnUV\l.V5Ȁ}nI1UF**UFX0a1Xw1H!$]aF"\h,2(˅d.ر&B)u67_z%ׄsKP%%_' +V466q|UWUVU>cq&ߠ{^8hE >Cmmm}c6 0J\f:G ŸT 6H-mh2OǑT(""$!"S$0 A&`KdlnZ5[wo(5r5mޓW3Nk 9pjŋmг>wXهuݕ2(DI^D=:Lg:?fI(98:gXGQ7-ٲxn]kàtyn`u7o)K|Vf^yW|~뭷0{\.W]]uunj9|Ŋgy&ckjۍnb3ړx+Ƙ 466v`E ݻ9Cŋ1/=\isGdI/b_|K0Ғ BO=upCMMMXW[+** " F́@yJhXD2J&UM26I@nl<Ehe Zņܑ8[y''j3oa[8P-mj{ݻI[kaE3wm* DLLCS䀨*Z$!X,R1DMDAbjFa{J+1Nc{*Qn=55jEuיpuuO( ho 5(.?>~ƃ|4?^{ OAa8hNtN5vW_{f_s9ܵkC̛;[^rqEE8h 7ϛ;kin?`@uMP_CUW^wYz M ("Ʉ4\+.ZB -Q(&bA+EJيja0)U: '@z7 P(GzҩFdbmUM)I( ̦Wfҹ$)P3cŧ~Vט34@!T婩ȭB9*X6Vb81+cb5L`6+ADDas1@HXPk~'̚'nN}RCFb.آ+Osڛp'f맣 |]8nyO-c㘷9c.8c4WbQys#1~WlK(1xll3[<@x c=@T1LGV9bIxG^6ϣG؊wŅ/5qlG`PO/tӱrna.018c+ aw;=!`hX{Ĺ \##zaCf+2C! Guz~õwoZ_u=?"Jؐz9ɟu)gDdp~[wֿ儓O~w+'.m7tM7FȐf Z[ZOۋ !` ^|iS;vv`1fJM7߼IWdS;Z'qC͜QR,1yR3?HD>k~{5kxxrC8rA%z+a3z^떔DҾ;8]ؙA[bfYpɞ럏Me~|@BӢ]+//DB=9WٳH,"8MZ1 hKpl%0pUV Pz>&ebC"E.&|֘5w.&a ص;FװoXq Nƍo&8h4ߌsV0w0d |@LO5hLz O.@ w<@\5'W`QD܂ayS<*՜ind.7 }7f?̽!/aBd]{yy-p-}Ŕ.0c~t8db<>?C^8w6gpLl???KDŽ6tq;bD\BQF+|BxȀO@"vD.s<㲙_c寥W<'m_G>/]ߎomi;̯h$G&ÆrK̜1ラSx\9a;'&6eJr1c˷9&1.Xxiz^k`56O=3Os';OnN?z  pR "fvr)%&f"^4~\eq)3ti>jEIi6Dj[ӮA{=ˍ;1WFsl+rU-\Gu`ETt"Eb ! rF FVȱ L0X IDAT[VIYo% j_מ8s M!b&/0pnq8s9"yk@ t'8l4?UkT0& F7m_\><? sgOkP(g_1&⠧0N{p߹5/m\X ] NWz3h+9 rq%8VQD^x1]t^ ql~y~׌>@3c0x&oƟcD ~(i|HVEf[X/ ϟEr^z[g>#{okk,ҭ[?OWy1<̟mڑBpֹpUW}Y9>w5/Zz7q!EPp R" "Epu@k1Sz8G5:@9Qw-D[}ĉe ۪Ź%B%I@.]4RL3m[7@V|ƕ*aeMQJdž 1h+MTR"hc J(E +)(2LZbfJe!j:3w)l?O(쉡U%>2mga5z ŬГlj\YKZQ tZi} fc. o/6k7E?ψ/ƣڝJ߶?x1jt`Xi1hBEF `EDq+4UwkV117n6'06Cp'ړ-2'@6u>dZ[鍊t"o05D\˩muҔ/K,yiӦ1smmq}ͥtIAw՘q wUWj#F,mTVV0 c/ p1c}Iob˖wAi #^{|VV`eWM⾻ٻ\3pР'O~O`V[PV,ݥ664\x%w "–%|₠lfg=(:Skt¡&$("" qduBLL+F`!_DRSzЁ7k-Ϛ?f˯ )"U޹ &6X̅ZH6 -aQ۩ &"m؆A)eb1V&cXBaq"0]Z67`~M5bY/X=\uvA^E4KgYXu[̾~;f=z|g3mZ__?W V8|?|Ĉ$JKs3*MUecd|G榦|~SJ%ZTEE/.oС̚ч~S^z޶咞\10~/.G[o+~&(>믾;l\XWWsyFM ĪޣN"61?~Rʗ uAH_/mD 9Dx#'P8냸>RO?6loqoX1-m/Vʐ * 7˜E+6+*@@Vb! Th-0d0#dVM,bЁ!U9<ˠcń1!kL>*+%Y&q.,QuRa]ִk!'fv%`="ň#K{bs?蠃:<#?q'8|HxG6rbY`B Rv#FL|M;Vc$,# Цbȿ}E3ϜYDtg!TwƋSL2C7ټ#E -:ojn#Pb96""BЈc."*"]D ajBXD@ABڊ[3??jŶ1Jc!ͯ0pt|sK^phn} XlpC/'1V`(lOYLp$ nÆpP_8e| s*ψ45q0Krs&>.Ĝf9Ђe"X^,u <GK7|k MWkw)Oaf;j6_/2s&G(!a:xbzan^')h޽{nFu1}1÷Bk;v䑇y"FE}YeUfK*ygTۥ8E~3I,ݧϕ]QGцs J)("PZ[[|S?C}_ޠ_\.A2~쳉 .8V,_~{> ʰi}Ѵ(1pu2;m,VKNݗ*qA`EC"0Jige&()Erٙ@>ofc/A!~yRwLYzEC=L!jZb1m1qdbaHXdf1qGQ ``)b@EQL,b 3 > pGx Nh}2cݱgWZ8~̪{cyK ⴝGN~ ah+&܁,y]I#a~/b>xo -]sg|wK4LW *p8dd'%8<ۊvqC+8 L[,&mXQ\QԭQ?}A 2(c}Ģ/{Z/Dc!w[1f|1fo0edZd~I>}SJUVVye(59ͷdҟd.}K˗0ej'|7L}?@EQ6ˢ 9|ax ' P}o;wrKeU?a}!H8K&t6sJ:8lnK_(C6OG0,"DQD )mG8RNl&dJ;>Wo •\$ mD"2*n-gtV[(F  q? DZEcHXLlVHǹ\ikiŏ%K?zj =3ˌUkp2 ~2wj%3s \,y6pt9-iu8-=7#3J[3;;:{jZ1`;pWCQzÁ:ۿ2ZBE٣v1, uٴ-"?ɦ[O\oevm={BB!J'˱﮻vZ(t啛[J᲋/izQ&A(4ltՍ7-FxRUM 2%Kx__p{s\M|tJ3sWYsuWuqbK8'ihԱe3hbiK+z$Y2 /6'VH[շwO8P"$,nk++ Al"86"- 1ؘ .2C(c֊ńXǨ;Cn_ԭޔ᭝ * oص15ku$a"!s9o/M7p]wկTEjpJ( a.WS[;r„|e/ >^_} 6˖^tyF>gܸJDFfV6Ӟct̰'$'q4Slnnw*++_qƏti=zL+yB %5J_|O. Pk;bX+%Tݾ 7!펌0U,uA'&^rĊH PG8CS\d*+fH>")Db"ĆA6d-P "؈(#f"Ar nhh^=z~2,^x]w/BBODsV4|\*fU˞i5!pu:dѿ?=z;WM-ѣe.: WAnN=Sޝ4ķO>اzjc <ҞdgN(:Z[[8njl曏>=nܹ曃 !.엗^Z|qfϜvkLҔS^˺.%2nK /  Kb9ޜڝ7]hƔ7ߛ6cO0dM1@D6DZ$6M.YKx @CL,Q%fbKı! ؐ8 Q}ÒKKRFeQE, pp+z[Xv7DENi |Ňߚ٥+p-?:uĊ;iM9_Yy駛\}6gΈQԓwvۂn_fvлO+s~/|9|>?nUW\o~K.ٻcVcznW,_bŊyaY˗{MMMʪ=Cmk otҞs-jH+[I * ܇I>?fϑ5) @ %"KMȺZ+(JͭfZ|[Gus>\S!U478 1`I 9&`BJ H#1V*PƀClTX?l^n]+r)2(DȐ~k>xÚa޺%y u%0H)ACJL+ǔ߿喿hoQGե+4cƇѣnj [Z=yu>hh#{~ګw|>$ ,fA\¼s{UXK\weO,gQNBDӬfQH)E.W`3!"a02P_sW __ =;Pi0Dy14KCL܇h#I}a?T^5A(cݠe2/.|&VBַ('bEϮ&"tJvZ_3``Ek&U:~+2 ͇[&S(Ra&eUt!*QulbAD$M竪!k%)EJ|Lnz2NfKsy6JftKEP݈J"qNU}MaHtF -1#}XeSg-䯌B& Gqo@~Ҿ,$R\ӋtsgޗdIHorZ@ bBaa.DEf t ?HD efrJ6]c\ޫoZkA蛍H)3[(N7SmJ$N s2veg2{q5b(2( ',$6t^¬ ې qL\4̊TlvE]8,كR BN铴˯DZ)fS¤- ffaaHI%+z 09&|os&]{Io.N[Ӻ$RY#-Ifv2(2î+R_NyV2̮^5)m)5)CKX`!"P7Bd8`uE a"K*ePg)R@@fL'nYnlhw8ٛmb?gs,m-MbPN NRԅ6?^ _ |BV_*$UIlGB;~tcs7m~m~.j#J7ŲwZe]03vcw[xrD=0'`?ri;$ڤ J(4 )2혦7(;io4qL)ZۿFdtGtv~^8 $Z䘦O~3 1:QrW2L6G΀5 9*AQ,Q9"R 6LMWMYT [&fbf@Eƺ{B!^='JVz9m%hT! н;`4kS;>RqІ9o rLy s*䁐.QFAA"?T 1:˾(P r&O ¤Mڣeu2Oo"8(FuЇ. LHDˆ|b$kS@WUmTc\[P֩m ĖpDT9_9ϝkn~e,@TE4ʽM#DG r]O ^go;$I<7 <$h1q9%J NE02(@l> "8Ex_11;@uZX 8U;&9΄#α]UT$ߪ!C.1BªUb޹ι{p؄m +1ja3lCΥT1"1c#Lfg3!_vۉm"3\Tw.d ˖O\<s9gZDlhҽ0/͏b~ kgvX3I8:'GIIuoM /:38&#zہW j)FQ{B>d>Cp T#iQ1&B&]^%JֶBZ"K3qbGߴ6le \Aζ `!OB2u qGzڥs8HpDPɍRpܫ`2VMM2ac8KC %U"4)\UUDg(:v+_D:)4p2IhI6Up{ ӭz1U6sf";VU^ B`W(4CAEPU1dNSxέ7MyRi0#HN[=aUyb'#RM%)C4L\0J+'m|;.EBow`9 ł2Y-)UU5tmsL{d#DBH4Vmm4rIv:73\AHQ4ar~W˝s^2er=.hz=Co k _:7RU1]#T3D(nF !4&}]Ů&X%2)A9gbv[JPUッ*|UU*uOM!f !&4Of2WdBٰ&$(7PUChBĎy⪪jHD,$6bq䪪 g^Xcr"kf>`F骘h_U *LZeǡ ttYb,;oə8/y7E@cC߳䶛ݥw§ywO>/;zN_|/f|wvfŽK/^x{V~侻.]t]']}o~~Gtɽk$ΚI?n&{T8Y__&zx#hmm^Ƒ] T EعSTnADT9jLDnO9׼楇>罧^Yfo<M2zO{t-9yJWrש.h ͫyh]h{}U?%7-m߹VF|ǓjzrY~[lOn9 S/}xc[n[&wU7t-KWo"kDžu44{﷞~%| \bv{}{;7w}e^fŶ8ݗ#wZؾU5 qY+6{k^0g2]>c޲;{nYn¨G{aIKMD\L1}"%6,`09lݶoe0bL++1h0ۚVV|TĎ"fT84Bfֽp0Ldg&bbڟ*& ۑ8f;%㢖bٝ Mj$%LhTe' qƥ cd`e[mOYxr.Cyr`鎊H?y΂X%H/XZ"p x-d=qhV24' vĄyeaw>Ƙ2%bb"!8%{O T2XU``L){WƪYp'9BC" +qSM \H6Fk_# Wh_U"JyQ"&qs %@fXU=u"s1Jᵏ!:OucCMQ}uC0wִ<+ew`g}?gwQO~k~gyO[x@W;Ow;w>ij/[-+_{?}w{Fdk47?K*?k>KN|ԩf/ȏ/慯ߡ7\ˏ_o)8xYVU7icGsyht۝gKX[oepC˗Zȝwu}^mbCﯾsNz%?HKzt靲 xnSN[󘫯k:sUO>*Ǟ=/~S 7C؁M\wgΚ??ggu^9/7lmkQ@eB-npU՘Λݍ/E) eL"3ATI{?lD;#RӨ#FDֲŌbgᰉվeUDUfq?MNn&e]GV X,$o+S7i4tNP3ߊ.R)g2Db'ȷDZYH$˰i< v x *D̖8 uiT{NJǣαcM1v181F&UWRE4UUi s n7?<" Q30a#9G̢B Qf5FHBEb8 pP}KF _׽~ Qb>h |^Cg(rןoz[^ S/r=8is~oW}_ffn5s-nn"'[l9u4f~Co̙BCjOVT5V#CjHEl}@lnĬ1v?,ՐCa HB5s&شrG.Sx p>&˃W[늓y!DCJ)4aB&*m1)!Ȝi(%#3i"Ȑ@TGu9]aM %̣MCl*r*7I XB~[6퐥5}QUhل)7;gE2&X7Kj'neI/Lfv b%عJU 8{cc{Ŏ,p86#B }ͱ 2fw@ bEDc Z:|K1_8K3̔u& D " .ie`MB*ɑ5y Ps/ȞyrrpnSZgzM [o_Z_w=+n<;.wzï;|胯}j_wN_o?%ȪHuϼꪟ~`p7lS)즇os^I_vyoY]8c6^oҌ~-r-|ՙ9by±mwɧk/M5_![;|[o_s|7~s?xWkn޾/~ʯճlfn4gJ5}ƛmF0&ohCvwS.䒽{~w;ysNv)W>Ӧhzsf/]dެ[ű⡇.{gӟ~rFUUyg8[lZ|Щ-,Ec}}Zs!/⼏1z_UUgENߒԱqL*U1rڢ1+(nN,TF*bFĔ]d;:XJ` RR8/Hwڔ_MRlAMnOٰ Lw%;'ّsN,ݷEU]9XYl{Eh~E3Խ찫ҋ.[8m+VW1zӧOoaOaYŻXEA\oj@.j!,C}TegYBQVVV=sǬ"-0I!.H0V̄lԋ5)؅PTjim "YHgJc+>E:Qbn(æս^8HihD!s{? UVM2 H)dVښ9ZIM3@C*bV6EK!bW8.J UuU0<cTv5轷3x\(MU$M)v}Ճz[ƛf`#iI-= J936LlRsI7EA9L{'D!GVU^ Ҏb9)ړ& g_Q@`d❿=6{<_~豟=+Μ{)'>.'.]fg}og7P IDAT DGN9vȃw" ƒU<6u㬻3?zqлO]^q oz6~O:MW}?o]j;mO]Pa/箿_ݯ3 f8W++k/]|{7˿t[ BK\yط޺pz[ouXI{ غsn?Ν s5DDE# O7/ҕQ|Ц"ROq<2~p3󞈢Ģ-!/mV>b`&Î~`  UpgcsP D`vW**“g5MC fU}6EYsl󒶛pM$"?k,Qm9f6am:tr&vۧ2N57K}֓4{wXsٳ?LϞ_xstՃ^CϹx/<{vox4 WMU7vf{E;n;o>_9}ãmZ+.~7WR`czeZ¾tD4:фr: P0q3lT;oQ_UKcT8QaRǹwiKSKErr9I%l3f[iczll{lEi*+0!4Dڹ "1;%J> vW5U R iUv.\2UK(ZEpR|6͠=Ԑ9ko|\i˗n֣ }o}銽_|61C_Ec;/+UE뭷kN=O=c_sz.&.:'?}djAW\7_|g.~pTҦi?14uW|}O_Phƞ~Kz$'v{LJYx׿kʥDVu۲b|o]o#|#Ox/f)68>%9Gcou NcY'mRQp6p]wtM.yo~O{ڔSwy߲xwiQ񚫯3f;,Lpiޱ|6Ø߶3S>;Gsu-f1Dch$FV*kHas]Hr(3He1lXf?;~-#ʹE;\`dԢ '}g5(?tɿZ[d;*O ɸ=;u. B @X!(+y*")qF~ݑ'). >Z,a`.Q4~i**FWU=66^յ9gf㱑1XDf4 1X pkfTbS>y¯avM랼:x/Ly;Nxm7߼giapM+O愽M@ŗOro~ǡՏrV:g۹W~/S>{n5k~M }7cS߶OGUwx|#) K?ˮ'y&/_\}>mvп|/G嫮:ξU[ɱW6O^czꇰQ%~`L\ݗja'lrےW@zѱw+߅[&ofKe1%K+V [ou괩n[[?%S%/%Ko~w J+wy9DE.X;,zs}n~6};ɡ˹cɻIږd pc1D@]V$ 4Hfb &ό⨜QcoFH[E\IQMg[wSim~ dغ~.>m wexz?Iݻ75i&1XDQ4Ud6d?qQ-jLD#:H1{_266+4|ի{VU!&a6Ui ~VJUP Q|E̮ L(-c#"dr1CމPkT#]FVq6Vڐcc`Τ<A۰PbO)FQ8B$F" Y]ش)t~xG^ܱqnVm\'1btm#|[HUW\Ӷ31-Z7m;ñ՞9Zp'|e;3fxы^4}a+W>rN;1$H(3~2uڴ'߭7|_`'>񧧟[F?яlѪU/:d 7dK/9笳6|oux8ia dk @@dQYgxC(e28v>\I&#l _%x溪W涶P0Ŏ|r+>y++ "̂ O &dmӍKCy>̗(1*:'KOAZTsȲ*UU4Mow40L7ʮ 1 WURUq7M:F!sn0zcvD `8Pp”)&}QvαWK;c͜<()L V)\m 9Q ,2y/1uL fGaa s)ؘ| tgg\#gf3f_CFj:|_)JVكSjxL[qMIlٲe+iu>&Jv (kWcmӦ3xLua]J26>Oehqi"&7gg 6ٽ7v뎋=i~~seɪQ'" 1*"a8̬2!}6P+&b Uq"1G蝷a3dvysp(\MQXdαQg'iw*DcZ zR5W`%*3YL74ud~6US~L*XD5 9AEB=+u(OMڟnJQu1Y!~Q&Ftд6Fm mPLhѢD:֛|- Ӝ9sgH+8X \@% [[uv(xxu^-kR>Qefhg*B*ñ%6ڀ>.نdz ?f 'Fu;:XV9#ʴl5йZ';t &Q'+劢.fB(ٰ\=% ""Z0FLDVɘ`@PSa`&$ ՘F6 )J`P ;#i4C"Tv @il>!c s PDf#S(sАJ13{b>rN܈>ŗlgT!H2"DQ°``tKjSxfKM߅ſu3&Q5%eU1oN>] &@S!/I!DlS%tXU5H5kDd_@fefl;'eΊ6,|"fUt"JG}ݪt!S%vSsa,yd)2r%ɘ\t9pt@ǗDu8y/L%qa,i"@Ecp  ͔0YNR 3Jw1Ce0*{cW@⪛fh[/$a: PW5 $f7Mph"̜Us="Q3gT;7KmJSi#f*K  WQ wg^!) I3i6iN17{lªˁoK9arUt⼏:%6 h8$j_3rD\f\MqeTJ þy6I8#aWGni\ϝ`ݓ]Y ]CRvA rJ+V@Pf̎޲X\eQB1 2UW%Y lȳJP$6P$VUW9Db 1J{ ίlȹ?\k!Ј^HR]j?[t31QJkbu3%YIqiv,"J`O&&؏tg:P *ADg"A9eF YEufQ%QdYRFFDIl"bqlT4 ";BLclXsz0(nBs8snUU3b۵ :TιpXUy33-Xb${`"?i6ik*7A!2|ы⡗qC$3,wXT]<%mqT HPAK'uw?Ѓ 23O?15q@Et~1AGq0>E$:Mz|R"й9C}bBtqrgLoa;Bs玏QIh{ tq`a׵"9V9ڀٜ3Db 1J!9?՘l!%Ipu CX"' W"ѮB- p8DNXDTP3HiuҪꚝٍ D;j?T9o Y$2h-Ȳ7Sɉk]Ajoi܆4Dd%ajE*Db]ڨޜCUJ tD&ߤI "NuO5kQG1bQOIM%>~ G#!XE"]PJZLɵnkPKo !I )i"y=)ccyH @̹?z6J pi&! (0\nuzGf3ˇwRI9+:)_{R#ւxBs_K!"*NcL3A2EM&( h.sU@ 4KHdv ׽ka 2^M Y(u1FGhb ! `uX c F45QkQETBAUU.K_~ f,`4j€ YN(҄{z9AI&UFhr&gΤϓ}[ Һr` |3sr^ѨdBS=+x?rL\9JBy)0k#>X맞? =±%8%e 'Bv:B|Z`ZLPXc|´x)p9 IgTͥcL*Md)ovIBr-d>fљ@<-$t@hEM|juQElXE# jnwg,)?v=;!x1!"62讎 UQH}l*9;cƮGVxjHDc z3 VBCj< Tso ]!@DV"QU {_Y .`N*J.A&\#ryB,Cb)ST$\, +azu߷q[4rӯIY3ikS Du篳'H?sb5N"@K4qݫ93B옖2hj.L1M'#׵! 2+Pmgkd>B9riKܶJ(^`R]cXzg LjBӤJ4AJ)3Ƥ'Y v !Wum%a[69$FR4$v؋3R.s 5Mc j # HժeP3$չ`.i!3[KTq*4s9\szATuMMš `cLW0\0;˕ѹ9*rA{3k[Q]ŽbQqp7Udb"RMڤ69o&oe0瞻/oa&][73"jY b=X޼ ˔tRKE@jfJôv61/ι  xTD l@m#Ғ0ĥ9t';!(Usޛ(S? sgzNwֲ,22"t΅ᢢeYFYM]Iq%"9ĚzDPYF.S  gN 9lEOCv`)4"L{6-̩ch0VFEMqɽD'>1_/ p+wZ p&N/❎Wf2^c?VqN"BjX4O띡`o0eR6ir 1UL0Jv1dt( 8f)faTeP0o`2Qj՚Ci;g 8MI[۱m)ȵcF:U@!vPYQf%t[ `/B!By[Eѓt2aEyfƮHD"\%DarFHsr>Sa14h^H.V"vhi3sNT)+TD)%@Ucl} A: #߬dm>\7?yv_Ź_|gywiʪyX9Mw}y2^I]|٨JqCD伄55+vi /0X}n}~Pk50b6FFiDe`'D8osޑVXuVl5sD8-T 2B.)t&ih]@CBA6 s:ygBeKgq 5,>#{D(,CvPitS-)VQ2C9_󬔆CV@L"Db? q ER5Hn&vZ6BLK:hLy 9栓|}Y>tƗd2(5sKS{uWGym/Vk?x3?{^_#ϼ{.#\w."(_`Ň]}UO>Kzʔ[L"f&-gaһ@H޹XQ(?Lkwea/f$T`pb G$K`-if~1)d)F~5΢u0-t5W1ZI"j(ذ~ |("@DYԴ6] Vv1Cv#yrZWABy{ٜ A',,9V,ky7Wբ,mJEU\Yf#Od-漽Fȑ)^265=Yh8ERD>$i;cAB#4O~" T_w~dHWWWWW-rO5r۳ņ=? !jό'^?~gƌ^c~_u~xosQ A~,,?;_g5ey7N?Vvv;_Ԝ7g1ApzP(ߜKṲk.g ;/[ok;щNs!ⴉ'vι{5(] uTg|iM bu|ʧBzD[RA,L`sA8\D;l蘹F^wntFfCƘ\C&> E@&PQyKCs!L?(hxD@@9"LEXXBH9s(IT9r;"%3.۝2ϻB(-m|y2eeYXB#dD>|Ys(slRD,3ѱfD=J@raj!LGʚNaSLhDNnqL$DΗnk!pk{xoϽ_8B@_{8cK.8HY~M7o/޵kė/xgF6eW.%θm:/mԗilv]BY/9SBe]FâZcP1sUjC*2#+&C泲,D@Tɹ B(Y5ђOMoH*HERgC%yJDAUVļ !ȗo@7;9u;`'OʯX|G@z7|@g~߾vr>Sy&?r;c<ξ-88-W]m>{vK2߽17[py3`6^c vGNԎq1_rd};{'*;?zʫِՊkJBFrӾ4ipe EYzrlĔ8+B@cފLV)V_Tq !6 [Zغ|1UpUr dm"k`U6fJfHP'~͂8- 9h2 423Cyv!prM%M|Z\D.㲭"@~AĚW "9b.UU`WD,66SB3Qeuw]EHτKB"6!  3D X&FY.e@>1F0 ;T@UXG 4uv v빷 sk-__:䵛/d@6tɱcu1#~j O?Ը~G%_F/Xr+Wd#cs-]W+]u:~]2 n}e~ K㭥kb;1elQKf#_\r-Yz9tp(~+:2whwb=j8aVu5Ȫm͚9PH怚 *wX juW5ՆPʟ[o!kLMiC+"idgP㸏 (&DXb]7M"UeuHePcs,Kq`EQDI5[ |OO;3GdN+VHhlb8CcbUDBg҂ KY2BU1n0pwwGd}J,cn.}Pq}`ȕe =[w4sޛ"4U:rrF,ʙ pIN0vE-nn2hmr l$Tlj`&>_ڛt-6UD]%7wZ>k?Z]m=zs '^yQB6aEgw8}>)\o:x]>1|̒?b8…-<,[_~kk\d#uZWZ~ }^;?нW9Ni~z`頣Ntb>+։DP^A#CK(xĨeŀD!ݕ!8磳 @̞aarmRm&զteL8T4,\ !V8.>Re+Kfȩ ,VH"RZI9k+,;Sz(Ғ@ż#qWМϘKH :DJm3e(ͧ N̾Qs{WE{ԧZ=BVGDJI94#U0g,qG Ә'rYW(LȞDv^\٣ڞ=Š;4 [kyP)8ﴴNj-gs8tϺfq{ƞߟ،Ftn{sO~kϝpQ_`!v:7<;n5uA`\lG~ܳ{nξ|,#ŶismzV]z-(/vX1}C7:c%}6U_ns>oH̻x_TN4̲:N\&/5mfҲZ zCAYDmqʇW0fh$ ׻ ERk PbVRVՑJCј3LZOU5WآV5kb+;GG$ !pQ3OHEYM!fH$TVB?H v.VwWWwDrdyrBrؘͮDl!ϲؒj"n)v(e\S``y3)"b$&OkWrT؎Bl3y/re\F kWfy6[EZWA$Aq|^f#Ͽ.>fa}c.{ο3gvՉ_H~wλүFCKy#w'_zg m_7%HqOc7 O>Ę^vg=a|g=pi7c39xݕFo8xnU|{ၛ/i#UUlswVmo>2;* rloH3i{Eƍb9JaMKuUL|Mn3֊)ƦF*^zG. 1}dˆ}dUP,lICQa{EnYXDToQEY$T)iOyj5v_#Y _s9e9(G6*hFcU͢U"9".AMɮ_(2r˲,")C B(!E'|}\, R$pqF銈y{>QAEDEM `Ӆ-R@ǣNDX{Y(~OzߋS}s~|Ut{r?ixQ9S{ =vh݋1;7rŸg*92ˍ"~v_g |+ÕKuy~zy?l\ [b%`^s:lݗ'%ϼo럇:щ;{ U}6cǎ]eUw&L0a„ӧ~Ιmpףc)Z7%f嗇@ks΄E7VG{~|r>@[_ôVG-@k%vnenjBgwj|P^#m~8ӿ0_hO>@N_;tv[vUtFdc\4;p/ڋSdFxM],MƖ/?V42{_󓿲7w1_?%|_v9rƍ=zȑ#h]w]{'Ok+߲[l%VL7]U^tIW Ȩȍ]UoTYB} lTwE[MTjsTyVD##QJΒ%;ȇP!0@YޑNEPOeٔl%:2Ha}0g6&2n_sa"R3[FD$TQ h`Ww7b_p(A JrQ3Jb4ѐHݜs,ۄH*\nKfYPE,;["d9^{E!5k3ZT,Go.FΣww]yi볿Yy??olL[əE!KT ro,1zWZjSo 8v/k޲g~}ٟKCj]gZep?JF 셺3F,3~@ VSkȏ}yveKu a돾q ;lRG~{ؕ{ǭJ^sޫ,撜D'H'DhZK/.2ˬ[l~7/~|o넪Zp&S=~y/{h688ĢyEӨMv~qз}gJ㶃Oľk4bTTf{C?GL uOOj#.Yl+$f @f uu[f6$GX{i XՄ[+Gfڼ*9qu%5Dew؜& :&y',e L,Q8ZsYl+vcHH恒L`l10JUD#h{ }+IDe(TՑWG0HV@e9 g2AxT д\y[`/p2XF#PE$Q,~rQhvϚmRNɶȬiĴʶD%آ1sh`GtFʹ&}IPl#ysƲP((KĔAUsH$"՗`XPrDVWiU9/R6 HgBDtBe՛1aD.0[i!"7$C`+4"v#PmD>?Hs*\Yv|9r-B#{ǁEsNT'2sgdB4.HU DTyJ -1GL'ywޥvy۳koq,3?vN{b1 +EAD9stwwHYVg}/3zuW[}[qYz։/˿so:Cz^3{|e2 /=>y<+u&tԩ-愑.{6mvǵ'}gnKf7;kW^s]BӔgML!)`X:my!B蹶īN"iea $M5z\uЄܚ@^gȆsz~3TbT+4IqEUBU 9jUEX=Q,9@`fLyy ؿJjkAX# !eApD&m@431w y3t e^E͡,͹,sZxOΑo(R8jwiLSAb. A((,9MY%JU' YVѺڡ'DQQt+Y^v J,v3B(|fNy({qb2]Z|y[oUrwn/-yg L}/}WWp#>l_v˙縃6W~YKnveC| ވk78e>ta%Tg8׊秽 v*L?o9gUD߿u='\k/3Nt9nEQ/;vZkuGxSLwybn9/x7]}wknpAwywOvo}b._ uzS?7ziL]&{ll_Sjuw/hk7]ԺmTg&yf(7tުqTΈ~.:굪4lՆ2=RUWV>_#U]sUA,F"2$[{C`j䊂}Y !U#s̢@oD6(J\ x +Cv<"9}$(T<3H*,3TmnKey^3U)KU*(X2K)NU0k;V;ii6퍵e`Gy j =T́7Y]ߜ7nf}}wnoQ8œGF}j/"ZhG]/Xwk=m~^{_޳ɉnаaN_u|f#k1dt~}rGVX׵ >l{FU~H#VwY凮!g||ϞANt}*t#?{!ygk>g=0`'񗿽txw?}j_mG f఍Yok\pcS}rۙ?~]mO6r ~څRA˭9v~i_~w&\ R* 1%Eت&: 8"@(ʒ-*^fJHݾ^}کy*w$V9F:v몸DÅOcZ+ZTlڨC!'XAs,Q@ȑs`9YlM "9,Tϸ<ˍSxE S&OrJFeYZ(y, <~ƪ ">L5Rw.0AT;7YEX7fNDB]]3{G (ǘ(! B.pPTfQuhHSc-VĆvRD\ Fx}kMJ\\x3;/&ƒbf|tT_Ko׷_|2CGt;VgFY`zߺxmcD߸~>= RӉNt_އ'Yў9d†4Q}/gٓC7uBzܡ6?}97擛S_ ?8pįθkUGs\f?̜LAo[9ʓNing}tn81_}b^7R~KBǼlT -;nYwP_{6IWڅ~bϿ6{TSW}֓a·~w":""Qˮv[mȁoN9o{a度VG/ٯn|4g3s)/ _#;X(Y2$JK٬KHJ{CĪn{EZ0tмeR?MhZ$٩6Acް1D#unQ2o,,C]8˫ 33$#Ģ,  5Da@DBfaV h/jV*&`TִM !0seYQgw"U( 9igEѮg]Q2f"WO((V{4kklr5=G"%j;4abBDu!&Kpf]Y!蝓Xo-˫'K=ۗRtĨXI-h#O^t߬ɫw [ ΙCe>c]3xg9Nɬ}=_5^ow^^y޿/2eQ'UtYS|*;\oYyU Qq YDysVP * -4&P+elhUjj!--"#T5 IT-K9-"̂F**3+s1 ht]B$vʼEs@DYYƿvLw:,Qr8<\%3#42&GeRJDTaPDGВښ&\U* -c .6F#W;TdU$K;!ԇTDD{xPk\;щ!D@':?:o.~l%{~_f'npnX_{Xfjʻgk/1KƑ|Y~G2膱l9a֙^z}b^@#ބDYw $kWe b`)]L"c#зڮZs_b?f[88> f h7$"*X 92ty]s:6ZKJXl|#ի#r7D.c %D:`f"G"<1e>`,ˬ>rr^DUqTʢmeX4lkAE3zʲk`\Tvv(EEL|"86Wiq$18!">1?5DDݵpu"SQM0vNt_p%l+6 6tS2dk===^>a. N<Oxk8by|"_f}t\~ڵ}n}%2xFyq+-7bd_#1裏>䓫26lÆ [oNz}kl¯?{Tsޘ93X|t9ٻ|Oګ_{OO˷;>W_ʃ^S}6ha1k/9$Nn\rZy'nes~w+<G;s-l ҆ $#A1UKQ86PYSrTЪoCZYgZkrnZ^KJQR62X jzmBb0q}؀HbWU,8 "2UP:"Q.S&VԸUE:GYITbMJ罊HQUD( H$Sx`{܎aQMkl VwQe}Hd4@m4UXe4ܫP"2j۰W$fajIf9wQD'zGu0^B˲z/j>Ǥ~o~vcԿ\r[Z2SۀA)V No\N؍]UYYOAGJڋ5Su7.;"f iii-B2BRW_0&mb獨 Ę2W?S\ƽY[ILU˲̗[ZQ@@*&,8GHVp ;Z@d̕/V5#Dp>G$H(ˆ}fVɘ:jUq "9 qf N T `|DD e@#4w cy5ɠ(,V_Ab#]P3D'>hO?[ Zqߚ=ah);-6lҪAӴ\IQbЃ: X}kDȲ,߃/!w\n`~Q!&k$9J|GP]b5vs0^T{"hd0A+j7aʰB\Q#TI7o]g4jNp5h_Y-W0~!S+otm0c3FyY3䶋E;oH(KUα #$"Gz֔s˄> IDATTADT\&yۮf\`vfY!bQ}f`YM{萜<(8E, 3a=B,C>pSBʠ2n(PHFr>kJhm(`,B(MA8X$^ b*o7c&޶_F+:t?NtoL>}PwH:'}2*Tb{)UIM8h]BK/@S/w 6s jeﺨd.mVI0m.jp&5ތc<@Wg肊vª/&hZܫUU=Io'Ԙ4n4!*$5ue*_anPQ Ԙf'*QQeӣe"w9s2B%i2$1HK. f>s%#@f!`whHTD4@!r"Z{O vU27B@tΧJU2ѐԒAC(E{j r fH.QYXe Pu!RUx r*F""(a%(J+U; B)ͻdtNN[}g̘1l"2xE_MFNJV*Y} *ޭQ2YJS"T~~_ ݀%Wk9 fbl֨&L9~F⃔WZiETEv4$HEl !ڣ@i !QY܆uHJL}1"P=9}DHYZ8eYJmHJɲ@tQ#+dk DBa̲{Ϙ9REUV"rޅP@29!*:G dy\ ! &#kDDB!I4D9hl{1WDG̒:R$:6ThN;d}SWU 3JD:ƝD'>4!CQ/{>4c[-P>#G+1`U6GBجr}ĘV&BG 'Ի0ފr.ּ+H_wVM^}qYaYaXmkb*{OL@ qDTiDDbO |VWK "{X+%d+!o]f4#]ePGA9ԛnZqsFa\,L ",*0 6YCweywu9#:" 6LHd@@*905/Q4)1:rNH[geթO0e*襝2yfgЉN0gVt3?u[K:6&Zk;k_ @/] V覱j VqL!DɑQʴb@]̭I_tU6l+l XexKVe{F1gs@'1Gc+E Dr L)[7,`e>.s"B,ʢ,5vL1.TBKڲZb.9̡وUYZgHAp # \UB(Q2>OUʢPm-RS gNB!@ @>oU0D>"P5m3 "N4tQ΁CSQ`<թb6'Jv.BTC0:N3+C҉N,ؘ_xxXjR묳nTub̫#@W&!UEːB zQc}=RH`aeX((# KYVQZ슣Ø?V+VH:GI4Znv\NTS@MS$ܪqRTDʲ@N1qi@X*Y <8B!)Y}\ #LaެVEeafL"jueY*!کP١ʂC}>W,Ui ,VB,[lP;HV9k,*BB@ DB'B"X`b*')68쐊NthWѶm7c+ODd.ַMz{M4R4hZ>6I6T1kU`VҴ;u]Crw^=xV!HbbdA!v&E%#@O{ŇH PmBi@,g3"{YبDIkUJ$D`rVfʢ  .̆ڠ`Sy hT怱Z.Λ^Q,LP{DA؄Y0-9H#onADf1 &WEݛՈ"ppFCV`P*4a+3`Kqw.:'M'A{2|eGc]>DĴ"k.ݱLaMpŹFsn8U? ^ʀ61R4XD 1ϲEv[֭֒6lM 3i;T}l$Ph*5,pTv,S)Can(e(z/x,""239L%U;2@\;8gmpޗ4$ ҩϝϬ-%0sEQ0̥dY; B͖@MkF貼 ,H\W1G*2ˢT航@6bEDg' Qŀd:#iOANy-^ӳ|]$AtΓWww6b^q y.G:늇f{.=f/pO\OgV?u\o}_|߇ZhРv^]thD4tذ5Yg}rm4iF{zHcrwqŮEziZ;ꆧ˷9:-LlgڏpOn{gEOS*p (̙x ]):叼m@xk -ϼ:g*[AXIh.;jԒF(vq z_9JRX~=hk}CRJ=F9-]3, c#a/U c)uJ'[BL cqbRiz &B0B̄a@ @ {#kPf/x" J4jU4j5d}UUI*$|g 1j#μ\2AQkykѰfy&"vѶA?{Mgm+Z3{xނ$b 6bXDD aElDQQcDc7EQPw3kX3g{ߣ(ųwe}3ՈXE u4M ~j"*ZfD e:ƥ/ UW%"bZTmL* ̵MKDDt2"&;gqw.wy15 sl:_HѱS„J1yRX ̌"TyjC=+R|@U` e TRBROit+g~}W\ft5o㤓ѽmo1a:|gUwz岈RgNe؁_Wc??mtSG~COzQ=u .?{~~^viG>՟?;OO?i&=b[y-̗svtL yF}q*TI9nff UHѨf(ض `{)SMh,ȎEk 粅"o]*@57DE%$ɟ_h9?gfT%岃ob?%Ji,m-PevQ f[^KmrOJqX(S&C  puQ3~࡟z8Kg.Z?w軫f 8hSm߻rvp+x곿}\/Wхp@ͦw+yy_z:?}?|k==w>#uNoBo;IGlŶn{Æ6n/mX aņo֐)w\:n?l~'s/}I3SˑG>trsk'ƽW,=]__MVbX d>qn+ۖ>חSڿ3'@g|=_qţ^/,Ӌ?7׆]r[i2/*~"QA[5G}(%-kxp_E mތ5}ㄔH)Һ:zJpztVK~j0^P>/ [+%>GSׅ^D&asvPPK5I1BfLeC=:Up\,19J*0;PL)쉩:{r/jH@"|5YS ؑOH 5\fޗ:7|߶-1CC̎[N} dԐՇmZQ'1jv BU54e (-3*g澟24蜕b +Ncb*,5p"\gb4Lf:tTL1*MA} eD`f?gig.?9'ahv]87qmH,izpG7/;}Nݷ?+_Wni{>>`d 㣥b/;lW~GM?'W.`-_?/Ǟ;]v!qw~ʧX#}ygNS!Ǽr=dvm7Yvu lx >^njWzO_~v9+۽XGڛ6sXn/-?K&FM3[VOz1@ʚT V1ETZ2n)AP`XӄO<%B0uJ/- P|:r FYu\A[REFi"SZQ4%o^4imH7޹.v)*⛦LY2 `d4BD-"rHE-tAB$nm$c&!+U]ߴM{5 {󪁘s]5Ms Ȫj;DLUM@5B"m'3;("{f/WUbc|)1fb>da[BV[^>ySr0$J,!BGV]޲Џ wՕؽ?v?zTMzɧ~ԠK?ޣo:<7~r63%`%cīf.漣p9\9q9D^EŒIBH]QYK1{_Ds&_Յi$ m .䗮a7ig,IE-"|c)ͭyk~p ޮD$a v讟ּm;BI c"eB< S*%z1DH$A%'#Kû"M!o:"*]7 n @̓ɤ{e>:Ga$h1H3.0"Yv8 I!ev.%s,R$8A-QPv ԟDD`Z6.ig44kEo—}q^U?A_?к[z+swx9vCNxN ~o6zMyZoۻ<|wz{{vXŽpCv{>J~o?_:oM/K.nQ}K.䒳c%]5/wo_jqqq_ڇms?KOk[8eſO.QYo-9w7lߟ_,^l6l|kO|^t/+N=& IDAT7ߴC=󗷺(\6vU8!'"Xoi40FeY71W@K3xBsɰej5IlF#":t¬֊DE+%ZV>ٰŶ u}?i' LHփ _-mV8 ABۓ4JJ#E33:4/(s:ᡇռ-MbbQUTMP^X|-(ܩA+fMӪtRq Um{# !mKpn2Y1:D:ش Δ1B,7 akww"fe71Y^5YDDo&]fBZED&XDlzL9zT3}lsGi&  ~'^·qgN{nx}'>ɏwz)ϺF߻%xV w_}mǬv?]!b }@&4^|Mǽ<Wn Ǿ7/|#'?)Ekɓykv'=׿ahze.kKnV 1Ѭ,R%pJ z7+YFei#^ eK5Fta!Rk~Cv{,Ȑ4:Πg(pL"`Hb1?Pmd h:(i wPiۥYûҖ*$*v4;̡Ա)#T> C[t# *A!v"%1i;E7欄Q骅N8\"Teժ}4 x+jv1ĨPS((tOPhϽo'E4߉T3ĬB}ph+ "$_#b>(srmU`5oU M?U<oxk\?fc}7;3)oyn~ɟ}֮q[wl8/N w{]nYWPo#!|~{o5I\RE ELQʯvAXiӢ:,X pժ?#rc/W\{F *rޅ#k4s!L#wٙ22R֪RJgfqrbHFl쐝K1dpp@,3PDjTYU>4@ϣaPj1H4$Ǯ҉k.?7OkY0d}5|LV Xa x."~YE-iHM%zTfn9!>H4ka,`d~20s#%w:]\Bhֻid!F!N^83%p3y f[fyd-؃R[읷:\*vmBP@EnB?\x74􀇽cg{?}0InR@W]S|'wꏛ]e+/_x9Ϻpϣ>N/ȞSN םs;y9?n=g&Ll>[xwgGus?M_:?ur[i=:cfCfre(Z5T'VcT!C։QkMIe4w3 I;:-y|BnIKKo:AK̵klX T:z <$v[UEı#J7W}IT2#׾2S 3\ړL5"K&f4Մ\qfO@4UkKi0s\qHW){bANUE5G4&WOT&w]  ]޷"S@ O}Nň#8%k)>m@cTvRi&F1#DavQbdf(3<҄P)[Dkhvd9bP%1z.^};<3y®G?}C߃ }g>n#1~5gs?ݶZgM7K[ 4鯾_^h~sU?{Un?n_/kwT7Om/Hnd۔՗SH״g!e^ k(!6uRZ)]f~nB~ 3 AFFa pg}k^txoՊokmsrf[`@M?xIKҬ©*3ZX\! kh%!@WŦFvilCV:4C$ӜRBo'w.51#ؼE 2{~JI\ho%bud"ˀ`9}OiH;I- ]`"1s,si e.FaJLAS bX_wDlcR 4mj޲[8îPR`紮ZSz+-Q>%zQ;>-z?psQO}Nwm:e]h^*;CqeripPBP%"hpelj>4|51}0{c1S_4.A %P #t3u3XP %1| 9]s.+ V}xبB*ݾil8Mʣf|Zv>F"A/"QkI2kMМNk^:ic"Hd(jzs#̈\w;^( +P#HDpMbiMhږd0.*9!awS& 1x %1 YUڶQbh9HDLQWXgqqĠ#"M*}Kj{-o1b,dSyxXh>󞹌!5oʿ}o^C MĒ2?7K/8z7SRe뙢*&$[iMptn?Lp 7djtc\ZO-50xDKD>RŔ&9|]+dΪ*P 1Qeb3(b S"4{)_/,L6QF>Td'_3^Ȇ M|DhT%eR\kMd! Lp9Yz,q\jS*te~XǨ 1u1loN!r6&`_1,H}hhFXA^c@D䚦UѾuEQuQlo"9!*a"jk6OUL {b]4evι d%*_ Zfǜ,DLlOHR6ĶYohˤkQX10cu_1r:`Mx" n7}q2UW]DŠ98U J"SK$E?^J"FwtrE2ѥe2>FgA)$[es'Zxe 4TzԒ !3Y `(ieT~顪M8b(T5mT}Hab13, gSQUmk8F7H8s+kvhja$dveh4[ F _=VLSrnD5J+}e';oI@9)@InyoؔWjT#؈, ;T%$Uo, Qqj0 ]u]u{jr#&әNrM&+n؋f\KL"DE}y Ib η G)*5EI;:v7IqJƯy 7z.sԙm#[fums>Ƙ\*$NS#kVW+ߖ3h Հt8V Nhie @͌]fF׭IJ9[}Ztd-;0iT d,C_XH:9Q00ꅮT(cAR=3y3r5Pn z!KO(Tp?Xa챮2$St,n3ȹfi؃-|3qͤ k)lj *y"YfjR@sjmZ;,!A2 A%h eqj&̾ s͔z1M1ӬkĘm&cbх`LFM(5 ^&|$TsRңАi)X{ Ъ@ sPu<0_Ɛ ,*7dfP\5ի>6hD?7ќ{WW[gē49cusz5V@(,<991qPD#UFERAA6lQ$[**H=YM^U,B?D]ic0[T!pI[DIebfv;vMӆL!tV;(TDXb gf*c5$:LڅUl%@dapxP&H~ԃGX!1 $1(:41`][=v\6ZW1iL2cs\g![$Mj7ڌX*2sP,@i`k6CeqЌ b}-Per#kI'/dT܀SWuM;V /[D PQ3QFT%Ś="nif:<6!O57@v.m><8'.E˴ >*d h/I|-G & VΑHd<@D,"IE9V$f&f+;OD} `g\l3szU5#mw#@cm[,"t 5M FifgN!t1^kU !d9T%$ "($@ 7Iq> 1)_$Z,m.V/ϖg^ebƵ̋ܺ21l|F%E>W]䂁J0"͂z3ekVC'ʬYdHDY߹Sgm W #kchYj-8fR5:y56&Lh3 /g({أw> 1(Df2I}9v dxʱK %jKb ~:k8rhX!3ȏ*1sPjʍ@B\9p՗)`i tث&Qc4m@}&Eosڇ~NB3TB95{c 1U"c!B054RfLW ;%Rn̉FQ4IARLdss o.k_nைĐX g,UhN@1dȢ!«٩S%Juc-i(z,Uw,0S3]3sN>YO 3yPPs"2΋1z3-!9b'@us}QjDdVdrNHMxdVnDc}jاFJ5_n7!R@ɬLP`ŠC"Þ%n^'3Kg-E$,jmi P1EsEU%vhsA酠sn:uޅ.ꤝ\ӴDiDUc X%J4""EE7ۦUdM}:G*9"#;paoT$U;@$E REf{e.7Mo.Zv;MF~ $oVi0}0fVG:-hxDTŠ|#zPI{HMX芑Yja IDAT9k f0p YWk  c\T&Dj֜l5Dϒ[DWcCCŊ_02]UŠuE4D'H{;eZIQK&4U=&}Ξb 4[PDb?%%a}Yܻ}ޛʕ33P 1:P @"7KA&c 1:"}o\Zo(W@mwSs9!"9R 18UD8Ci'uS&hM;Q {oQp΃q^$dnX(j^ 0{5+@{G:J]`anwa.s\te1c 6DJk ,g kĴ\jԀ@ MӅ#08)CVõ3X*9Pd(팚DB:0Kf{ JtܙWq*)MRѥƫM{b!ه?: u" .;O*4LwAǖUJ 4pw^$d2Yj Q|1, qzH J$[@3@3ع#Slza"Զ ]7%bgI9#Bep "7mKF1Jkb(<$ XN"jPX51!fҮpٹe2yV2Ec 7j^jd> 9x];eP@ QF#iT#U4n*Ü4(jMQDl6Ҹ"A%*(c$ uEf "ǍJHdQ{CiB3UiHP=5IY Xji5}Fc'uL/]L2aJ)Xs A:@9U΢( *B9aI$T,% D02窈k`Qb9眹(gJU]XҌ}75>2JLV꺎Hc *O9YZD5%%bf@icѨ^3m(z J7Xһ׹& s\*)0,5*bZ:CcjY#gHEI+@cw4{dbS睹pGUnm*:r#rE}Vݲ\ ZK·JatP9[t <N9yQ!%Re)1F ` BoѨReΜˠ8t%TzR𕖕x5f^BT ;5F*#E&;$BhV9'Uhu9toV\ϔY1; EI1B !MӨ4mcuH$N ELNUo3 ]1iZkM`Dk@ <՘0Qv)skp{[$r0qٍ9-Mnz2vw7H:ZJe5JʚEPKc!U*v(HBoBQ.pV\dn&d6Bh87cxbV[U/8h@OS# kMC.}bE7k ­! =Gu햎$ª0HcԲXnR0աB{4 GfSB 05 ?D%6՘ m Mnc0_t:U Ccdl ȁjM%c N1kKU*_)4HTBARTDE!t ]p!B )cT"1^b"y=fWhn25MX%2ghS%6޸ڐ3rue+o:Ox@~|uyιFPmy䛾9COo/EnWoFK$f˧ ,jI 1ʧ(s{syH5H*+Y39L}aBFn P0uPpr!4 `҈\=V`WuE{Q$} Q5r PvyfD%e=m9˸?Ja, !) PUQ*3lE MUi  bsyf XQb׊zvB\D޻0Qiv⢪dˍoV87!:qӴDhKY*\3NWB߉aNR J㦙B;g6y2NE JgȘ6<*byB̎\)ͮZer3r2岏&gV;~|a$ ī|.\jv'>]߹:pO>ʕ_kp"qW7|{\V}SiOn0˜m%komp*dI5,5 4)ڨ'@N=[n*qiFGY\%bӠUd"8M²UBAqacSo˟n KGgxѲjTZQ"1'b#1ؑ:rU7Eʢ R))i#Xd+ SH=Xn(Ӱe.˴GRPtQM XSjlJ3ERL"c,.7i'^yU]XX!s2Z "Lη"!.9˲OfTDDZ#o*D PAk|ӆ~**c7YQ- Ro6sDUUeθ=gľzP(+Y&%q>&ba]JFx 0E2Ki~cŧu]+xag-|VşsUW\|}Cgf;xfM6^~V;?6/O[t޵ַg6֐97Jn5vw#LYjFK70@1׃HZCRjh 0i7LIJĶ"sq[aU%WEEԎ ?* }3? Ҭ]fumz4ehZȚLXX!cSb26^qƤ <";O{@塯|v.OoOO<riu;>lӾLn^_%mK97LnW޾D9e05V+$FȱX aB 9W>#F3XX3`Yq~ -V$"C C'0ѰN@BX6%BT1GTUj!Z" j+*$Duc0z蹂݇R|QbL(Eɨ,5 6/&ҮΡMٟY3I]nNRبKV@ƮGP}gVB*bX0s.LVDHE9U%b@QbE 4dv"baa|iQBc,Qa:w"꼷3bOs;nyS;v""p50|HoMeYa0 i򀦽Saw_z+uWZMݵ?B y_v\<;~p}n+?_=>E܄ \o%GtO}"+~t֛]׿擿.}_w/g}&֯G߫.N}C5/J[2[[n57Ziv.FYimG^՚h"gj( 2`=V"M(',-5Wt\k˙Җ^93HPJ,e|7QV8]DRks+fv /}Ts.]_8P,"P.o& !jb}&%;8Hh0 V`:1F&9% ?Jɉ5)go"y{D)D1L&bwIZH}+#CPQL}߷mbUyb4$Ĝ8<;,oj);e }g!mx$kxNF6D43VyBW6 $uԿ0Ti!`Q>߼.}'yǿ}78{m`wj /U?z~Yi3~4YolEx++A-][eF,+cTQo0Js}Q ]X.ق(Q[UV=g![1Ơt#,]B * FV)>PK;p@25SQ:X|_vVڹb,Jp)jVdVrfe tUϼgS m6iޢ_{tQ#@`%`8l}lBsDB%pK{{v}ē;(%v]7i[fL 1f}Ӵ^$0wH4tfN9fL`yj%`PnNT曆 ,,CB 18mQb ;| ȋD$WU';7O<1iGk%pK)AGvz'("n'^{>tnO4nyIoYП8>}?e2$k^2xPpDeAQ 5?8[/;uw}pgS75r9fK\֚u𷶦ٮ`V|O~#0 oUq3$\ ݄A Z'$|*eT=Rgr£ʏc*JpE CPs䰺gtqzKH`A )@jNဈkSDV5QJҕ&րYC^*ek ;sMC8: Έ!L:cz4Fd'zU-ň*čV0Lo{>}Ϳ'~}/ܟ>D~Ogs^c>"7K~!jE/zG⫿o~ͷӯi+T`>!7._^W [t[Tn0퓸HdJֹp0ܩ"F]-Kas=Aˡ~Z یHҨeU&X>rz͹I"y|-wN⿼f]Z:LnN7ǐSfRB,qE𱲄H,R"HP&1W3.30P_"3м)t0a}벀, uX^^B "A<8$0z<)`غ& w7kS7d&,j Xn>awʉk~O'/3~o}ϗ1P?Kl/~{ǫ+I o{?_{KĿE/_GOf~<'4~G:ͦT Aft`@vkjTĢE |2L?i LYӚgnFP'IS&yyi pd0lGMW\$6wZ<4G!Z2Ns7J8<}z qu?ob=iLMDj@DOwq$6Ȫ*,{a_+7lݯn9d Tv%sfuHX[7/?o`jKYpWNX.e(Z}7[$rOCzC;PWf r0}:@}:B&eYD/oafTXn-ݺQJ;z}uw77E@f,Rd!7}K3[(#fZ p3*00lZLgJq1GňTo7cюRLFݡj4^1^y`Sӟ?~k~}۷/׾zIC_Ӗ}?/~w|7}z)5N]ߧރ>8mU AĤfg}j4nq3/F0G `O:F$I Y=T9^ IDAT@Uc&Tfk&;=e:ƼdǞj`)HV=ůO+Ѭ0 mZE0Z{ae,UJh`8uw)z!*\&b41֘A=}ngJ*D& 53m,Rjݚ53Q Yg3!VUaѺ]W)î.Hi5Sb ',;yYM/nd.`piȞeY"ԺjjJG_rg&6ơqH<:qiC{B=廟|}?C𯼡 oo۾_,ok~^?S?+ __᧿s ~ic|O?>S5"=<<^ߛ]2peD*sU489Eo7cs <wX1??ipRA-!ȇt~MY2}/7VP571_ ؠt :iܥ]h[n~fꕣ2 ϡ';U.$GDO!'d,eU#.5‡&ľZx7j]iϝ|1[E܄tM#l[IPówaSUe,VM͘8,x3sr10 sݟݝxٶ/sS»nWfD) H ̲./3{eGl7Ef$˲ 1[Ly20 "ݟYO:7z2|Dv u2H Q[UIڝvOO#=[KG? tO~\W0wlh?S?¹Z)R_{?_]Ro#_ܝ=vD~7zz;%v+K2{͈̂)qcO_Ulmhxkpdz.icbeufiQ]yk O2:PRCK* *r./3[JŒt"f TFL`owTL_ޮkwW[#Šyangԕ^"˞mk6(ܥPFܡ;ʠL38\nPc&5YPBH ad4L(E(nF$D\d!܀pJYRR%^`f! ,˺03r B8fVTj݃4Ua ǾoUD6֎9m0M5 =HD܌kGtCgGzGzOIrO{MFC4EmQbn` 6~m(j `V?p算a'U9~΅f9{`{M3 ڠW9<2v j젛7Kj軇:e?azLGz{ [v.ۄ%eh@i/p@oLtl aD&DTDX&,s;^ a0zno0ơ~Hr=ziQu%w&0wOǶ4RKV"?}{ }(fNwl?0pSݷMw%R`CSEJpl&xvmaЌnݮ>79p]d +n&iuRVain zU;4f2Dw5WEXT* rwn5'ZTjS>}Lև#~w9{Gz/{ :bȣK<ǽ-Y2jc΍n^Urʵf ݰG0O@/S;iC/eދ𩰼t1}-R˙HJɳ|uva*Гk^?^pabpԠk)U}ߊjؚH)E7>pNC.}rKU i!,,Q~>m9Jʲ^yY˶mXka{yzA" \WN\,ą}ZK&p<24d o#ڍ7noρt/J@@|;O-&#=OH[zm>0-4PSm| BBX[FoJ䌧zkuF td7 #q:2c b[m;D۽_E";4ґ^ ׵#vSxsYj\Hm`Ml4 ͽN({5#];CQ 4&s qƆ ޲ <|&}]/"^J YERHj )͜D;v".eٶf5%Z벮.)̲O{D[ gfcj,T+gע̧^":""K'>,}MC9ÝZHrH1n16NY_"tif ^Of!DӅSYn™SB8yn =Ưe wb sc U5Y F 07PuCmMGWBu޽R˺99,٧'eTG{KFX3hSKiO Lޏ}ڿv_y;7tS\󿉮%G~n N?߷9rTӎ,E x251cA&akALȘm CŏNpG~Ҭ@7BZMm]/=yh'2kaE&!L,eYtS\@CS.dm߷wQlwWTAV-efJ)'54ytHz`9rx=g{GzO^: GbMU)I1A+OIqWbȶ'}Ԉ::fW2&ؚޅ^S1,|0>7rcfzkG!xމCrl݈rYpY-:fq38$N1s(:M#؁EU-XҜ SIK)eYNxd!wsmQ'"RJ)W5bELdfP zTK)fjp˖y7 R0K\$Zܪ2Q}jݑ)8 4ǎn7eaӉ @/E|GzOI ڶLs*nF̆cR6pKrg--|TQ'>|so?:;jTn.eM$ف4E2iU#7HsW ᲔXFPHcކ݌VP 7QR沉|rntіGAjmjjbsXօ@p~~c6 UsP PJDAnu#Iᙏ6@R,Uf(2k8hl, z!\•CLXMG>fV0)evA-;t"2Ny"$mni뇙N~Gzqfx1n)߷R_p%a p2\_@̸ph´v7 hW#sЦ6x'yj3sUW:Ljz.)SoD 0z =zBE"-uՔ0]h)KBi{!J)L2ȡ҅Hyno6ebX(8bJihuqI0w&޶E&ey<O/eiŭ0qZ,aawgȊ G9弁"3U|^``yuD|af&[pʲE݉ 0 jDfڷnp@, /3lu޽|&tfw@S.)}/wf#=қ^oz}(khfӁڙD<ªšRYs"7d17NhRJ:MʝJ){$ww؄8WGCG9#T%^mz m#H6l8 %IF~oiI=-PCqK:fmf=JYj@s_6STk]Ж167U,;,YSQU˲Pk)U!`YW,|nb&EFB$'E/ *9˲֝[4*3׺ܬU'RYnJVi4+"ٶo RFƤjEtf20Y3gN:=p`D8P_ùW郞>ľXu)fp~g)Ks8HueӑV aō!R"GU8 Bb+Ȱe;Ի?iB)\k&an3ܝ  sqEn逷Wx|9cc~n Z PIANN'1K3!xԧI1U5&SSb#Ɍl nkRH!bk4+3녈hU8J)L$,AΕ't}hFf߫rdu6tQ;,[wQW [05]&lҿ߄v;Zd^$hY0Eն@m\fl醆fRǮZX!"jUMI>)2f/#*=#o&2w#)0+papRtr8x$k5c1.GzN 8uZq}{$eϹAW sa?L%ܘ[vP46\OSg4NnwfB2~vx;0oÃGB1d<&C蕒kALOC4Q@u{53jc=jMXDz—C$s] :vrYKPU5EJ 9wIUE3Rjv/ Rdυpk%X^UD\bY7wjzέ hX4[pbx_|:̈c?ǟJ#G)3#B9ZH8H>G(=U ݣ͂#t"gRZ|$lGǂD+s'`fvۨȦˀ3:nʠo=D%d Z f aPDExk5fΛrݼQt*WZ0YEΈ}sܛ ,'9u{\<"%Ƚs!MАzhmFcki1m*eYp: ^`r\bb۶MVw՝#ju77kso{XĉyYW"2M8 IDATZl7Np71-y81СNSJg?t\qXP]}e%P[NqnCe!ns;zGz_[m"䩪 ψCz-d,"`ȧ^.Rf؁n:a9}Z '|h:uGn3]5wߐ憛Fݐo-g|!Ʃ=wuJVl2x[i/I2? ShjT=>pbwѩ)$b2otdؙ6ba:#KwbfH?۶OOjf㈟5#oRn;]3bj,oē`&%6(ea&5â;Rsԩ:xwGiUHRz虶~'@]7)%g:cJ5y$:$r8%H753seY#y)ug 4{U# `e]}8-xXE[⨮pF\7\He#eYl)%&P"?\JC 3ٴ"#$wSŸc }KtB=VF6\7pAJlOa'Bwi~,[mRQ4vԮ!a/oN$o1|h8شy/M+Ͻ|sP-H."ZNBU0 nz@u፧毦7KiwA~+xl{c"'617# tDDdjm$,\!R 5k!9S!Q3uYp;AZgTp}߂?>9xj碲>fz)jo*dJuJDwoj:s[_^k ?%U7e0vx"\S&N>88=;kieοx_^CK(&r:/['Y0<7R|8n!IhnxgKdng!Dm(44E3<=z|IϗfbZWY/jă)XP.hRu~ =L4Ú;F-e!" @[ZM4Я ?w-Z]bffz/,ipp!_~^Wf\ ,%lkD075#eY"J[L_ pe @DTLM"Gq.myCmD?7tc#%A!s.fSȎf0AM܁ꆪە>ClM&LsvH'"oqN0TcU'hf1nv'ԄwށPQ2rbigʈ=kpCVii.R 5w1ePVtJ̉F )&qZͭA;JYٶ&=suڌ63nN,S8[noV4*@ܭ*"Bȅ¬KYN3]U΄Zw&"b s1w0֝ ,շhϛxS &dk=(ѢmlfnkO5<@nx^Hw~{9tZ{𝖙C}=L,cmN=Lo5j3fj{Scw)Gz=y}nnF-߿biz^r!JXv#j-{ J43AIz>"2ؚbgG&JR¦1;Ӫr_A4/t%jecYò<~ᵄ:aAF<;ٳ+F, :~d h5 wE\zA! 4QDKC}y=~R C98gw0!,`0 Y'uqFG@aB&cL`&N#n:j,a9ax{},پa""|ݶ" t"YY3B:u*eqm{f"=)%bq>){e d x$:KĠuwe)!e3'w_bf0UJXs͐¤H;SwiV`]I1X֐{yɷr c߁*~s%ȧs7N"Gn:=@AgzMMשӽ^ېsSmrvR5>Բ35Y~p871.FL6E}͛uƎɘl:kxpQ!ըTf` |w1q%pA&\%7벪UҘ0:p)M+ֵ-u{1=h &(62)B4f&h(‰x)R,Ţr˲׺:rYZku HDhT ix,˲o;3Ah{"Ek-0ZwCwS69"Rz}2e]=U͜M "RauS.獾n`yKD<:?ԉ =|>zG9 ʧn>utբ+>!0!#ߐSؼ;0=|ϵCQxѐ縃s HǟwsX.<0fֶ{歩mo-ϩFOm¶*+& Q_zlWy8v-[#uGO0=A IIi42 {X'wX/ci;,*j}ӡ-^5o1ZV7ʡa 䰝/ ḡ=-o<:`GH S"Y"Eԧ=CiwAmz^v.&& 3G! n@dxsc%Ejww}KYLDDDJ3R}[u6w_׋HnX\AL"Es3N?mBwD@dh8xD|ts|Mrk?O {o1548r͒ҊH7nzvT]8Vt9tEvtU9\~)<ȍ?6]KD yOm1p\Vo{3? xiLj=̛O,n0 dngK5F S60o^:1H{Ch~\uKIS&@Rt?s R:⇡u:[bb pY숑Ldl“PRzOy`nU Uk+ld⧧ ǀm CEg\b{eY.)+Hڲw&ڶgM"޶Ͷ뵔BeYXʺ>EĎr O0ḬOzu(U#IV8Vx"vVi' )_d4ӄAh{-No휈o'zǜ{3yZ|6{ٌ|I_=rcᣃ')yvN޻m7H>- $1|Sу{)}I;׾]w|Z&LyiwN:Sޟ+9$ gYwdU׏[W7s$RxqpWg s }$ɕ.ss3HD N{[u6̯>ww6tH3oƝn)cIL_~J" ϐÃw6 R\.ORpyXk'QT?Ir!Ms~eGgҘg,(Yn3+  c|ۯo|GzuM;,, Ԃ@YSf/|7'|ɬl&"jСLq^S5z &u@jM5eB}\ou w ,[HZS`8zcШ<]ٰv;nV=$kenx&/U ,!7CܹmEd߷^(*1#fjL(,˶maEB w\jCKoy)C)K=K Vzٶʲ;Qs²\7.륔֝"alDB_s|soKY꾇3;,' p2} px#%" /F>a N^ʬڋq+4H͌Ɓ|UJ~Sw<)-/M/567Sшso^/9H[2oY kY-/\hAF~}tREnjsTGhzI/,k"eVgԺ&NF3̻^8ֹ#,Vf\ڹ5][->ֳ0qƿtB=KI>psVηe)RTDڐ Gq覑F ܠlVaRp ,bf"%,9^r &D‚0aۮf,Zk`J5 V-REE}oZ} ^ ERKPeRejUͥV8lU\D@Mmn}ezjeHq')E,kHxvyd/E<Р{"4̦ʵF2Z~|ee|Jju$xc);\̶84:tƨm&ttʄH>({RxZ/'rb!5o7E  ʏ R\XHP^oug딐ֻ#{0t5U:2#\< MϽ~Zp~ y?ǎV 1_p)Z.UZ hYPj4̮۳.0SݣǖRn۶03wg)eYE0nDްjRz w>v҄T̝UkSz~feP'0qvPxW݁K;'f@xf{N?yn̓ҡ7;T,\n?sZľ{r~9 ѓ)kp2gF%qw{ "@*Vk]ĕLB.Lf2<5'Gz%bbrSSJ3b[ϤqZXn1&w/Zp­t<]Ԉub Z^TH,Kպ,˺,{Hs,&,PڃȕRebHDxVa1f^RU6EQ.a)eYN$f"V+Rrƫj=o?ƮP#UTꀏ4PB;0ݼ7kɷ9й˷YJ"mq;)x 3`P7vT0#cMJ6XF?[w:I$?tLJ;GyNoi+OzE^7Jn1?#鵀<4#g_BMr[sݹv\s; kF.joE,ufP`B0|GmsMaJ_d  1CōRf4ۗw󃙸vDNގ}EUgπ$χeYUk[ےVo}t ?{W%}gD?pQg&vtw$+a_ d%LD](v "44ǎLTϧ+.Uw "˳؍fFUHD%y'1r񟘪Tj}r 1Q)pz>FLUTXTEZQ@)=\n*<(&いFi`4"o\8CJ;D}rl)c.IXx[;R6 *ٗ:Y¡y+Y%\{r6@\n+Q_zŢ F/1֤ʗ~mz(3@P&nCwmKv|7Ano\ kݞL(A {`FhS/7Yh^H&ǁ0"^IMU#iWc !Q$dTSQ1 $#BMaL!h/W#N;ȺZ B>` !!Hc.D fgM;ZS_}d [Wz*37a޶CdR+Wm/+|\)eb <Sm[h9c.ڸǖ\vW~cݪ[wr\#Dv^S?ñzw }РL_cJӼw%ޓ/P!V7x24rHc4As-D0" Z5N.`.~ugy2"FmA"Rac `@``d%6=yrl͟h6Z A|sC5ti h9Dn' bupF4A_Ozcbb&DYSUXXa;Ϗ{bj. Ƀ*3 Rj'!~P0 y>EqE:{3DȢJL-|!r)D\+83Uy>?Ka@"f'SMkzc2U&b!q .;cD8.8:Bpk4ܶ$e0ހ}(qy [q.(-Oz9+q睌Vټ{sf617_ML_P7wik-a.llWD F q+1].; 5 ։_yXdA;%jɎ+v0P Kv'OL& cD,*fLG5jYq\bwO"RQ:#b" b".H]p4 ROy.,h5Ĥ"3>G|A^Jtld?71%̊k {fdVu7wƶ|m+qWؚM0q/蕢O+t1.s^H\*@N˻uX8; o6$a۵@-4u\֪KtS"FE70bi :D9Ҹ*K6G!X{zY\魡)ě_a?M7kC:Oˌ`VYS(gH UimfNRĄ@Q?Wt!Մֆn26xc60GqɴRBW h}L\kU$RJ-ٽF|#-7H9Omڛ &=j 1!!Jo_ q<ϳ_̥8g#"Rk@UH?Ӳ!> ˳u["TK]}U`z~iq͛x,pDFL .ɞB362K ]JqԵW.QVij{K䦴Geb%+\koǍv|,ݦ%nx9! .}{:]~[ׂ?M27Nn@f=ℇ_A߬z/*齵?UA=}IhA@]"eٌy ~8o]1)0omE8f;:\C> P$,mZBm"giz,Yh}ZA<:q.801N/Lb^) ؽz]inS04ws9XT8T* @ЎBpҎ "zf08ƥ"|zR"2 hpN?j)!"HOT9z`Vݪ"k=VU.J UZk=Tk)۷Z@@-\"FFL@T3"gVC&s#yHg3tg0ݨ}}$ɶ*-c~e/~JVTv}Bn[̛V"G;^Mɵ]s ۝.2w+L c [ȝtKòI~4rpe̊0̛ \ÀJGN pk/&K>tX_GB=S4a_`2'y D,SxދN0|3KImL`jĥKGs>T~24G)@D6'95Vӫ#!j@Xx1_zKl9>`a<sanz{Su71*#~mTDӉÕ#ǔ "xhGƮ%G) bnZt?o ]p0l{el~WtnYj/5{k}_SeT@۟EեuJpt iK` Kr1.ߕEo߿n `pܷurwz4lb~'b|jRQ]7 7]5;3jp.^dc.=9 A[<.DlW|~l*!XaQb4|Lb>3H2jā% ^D|Nԓ d(P7-}z)rl W050W\u-Hgp%!X7KRp#J~lJ/H϶Վ)ixpܛR$ .q6 :}w_le˰Z?qwؐ y5N'ڕ&t(o%4{=X.$R <&K0z!%xwy.ahCG7Mjǵ?'a[:0+ك'oPM#DFWD DOq'S|kxXJŁ;4Rj=Rj Zon>H7"Taxz0 uZU:}~rxK. 3E=f$B"UE"7|fƞw&̌qHgA_s% څDjaG y?C~ Ck 'ٳ^!5xxR 15QQU.-6呟idvѼ 0Cp%'a7K•W+SFvadp\zXN жɕ6: TPāFCSf}2/2Ҙ$ q2<=;AF%Ԙ>ݳ5 γ=k^.b&. t0i173B MqNc1NUO$ D:zҥZDT2^AH /GSDy{| ^psu EZ΍6ra'%pQ˨0Qb-,$H2fI#A. gKB91-&Eo'cq)Fos!4E\_8#stٷp(S6V7Ǒi 1#"/"*eMxfw#B=IzGE.?vk̼̬mRz#Dw(ְBSTSbgNqd箰q\!D&ZTBFd6s~}|;\X1tc>xRW#A3U0pUWa 7ϰ(D1\'csp7d6-SxgDHDG=R+3:pa=bTqvN,z?bUJ)oP3g{0`SoBĨQ3Q3t51tiNb2.Z+\KABT%2<@$s$W6$fVj-Z!YLx@\Jqk  cT.ʥ !.{W.g. \TՌ CQ`>/?7YWx& d=S:2njz*^9hlou,crU(Je~PԿFjY1@ uK_ZK3JT>8ͻ.ZcDsCQ< 8RtmA̋%uaKЮ  +#'wEO5uT˖B<2q}1au3cT {M!v43CaQ'䵀n;6A#s6[,M3}05ej"Bw=~<*q&68í[kZZ#7X "W9R̥K> 38 灭GcSϫVj=vvqCxvgfCNQ)2@$*8L8`@\QMt/ TMDxz"R!sl:܇6=&;н[221 d0 IC0+b۲6ϣ{/c@J6nkrW_cA_7ֈULOJ~4 dӻo/EWo\a^AU_L ;'D •AC&8TE?߈?b="Kt21]ժB:A `"Ӡ)! Mup6*:p >,4rPV;i+!ʓO;q[B)Xn@̬SZ˰1 HȎ#DnIoꬾp={; x|邩·$x.j6L1d\'R 3+!ao!K)EjGR!D8|wEjbPDd.@|vzH33#7ӡg;xDn'KDĭ5qgb4PvW2##d@Bsa"jF8wTlR 3rJuRA/cL[ 0Йo 2..(Z"ᲊ ׭٧kyi5(-Z^n{DiilUќP~^J^BwEyצCo.O_n5 |eD2 owR1Tf  [rXQC%Sɉ`"R z\8Sdteq*03=#?K?L'oDv *2p$#/rϥ5ϟ0pRҥ4'j)ֶ~A5C1#BH@zI9Nd.|=]9( X}``*̐afΙCT=]D<㡨g։T2ݮ #ƙ8)䄣BԄLA`G 3J\j%U֥ 3Wv|J(Zk`pȾSZQvo||p.b"AdH&Jһ/sOAǥ*JHS+ojDlB\6dGl0ӈhv c%j[ۆaն\X^C#s)ֹm&uM2pxUѠ[hyKKˮo4a& 0lt1h ^[-{#lmڪGw}w嗩}/[:6=#p/LN( m+EM+ǑŀԄ(0DRLzGDd@={ g5a%Et j tMTRm uhv N+Т@~`'`tf B<!"5gں85C<2I=۩-Q D&~PJښ5@f3 4~Dޛ:|Da DXJ x(k;Cpx=-Ǻ*]/VF{Í o8Hq;^|U fn3 440nF73`+>_rg)iPV2.kأjC5q}yMKS {g`| )3RLpER. 'AB`_sl;\a\qXNK"ݔ/oZx~o5?=㫯 Kw- H`-[hq`~-Tfpm8تAt6j`מcO\y=L`%[\?wykߤ 篛\׷ЊK8dACR "v"E Af$Di0N0'fGy΃id*!mO # %Cknl9Jǁ"a2;qz`28sU:Q.`fFT~wm4: 3,hލru="Bd-l"NA-%a-R#FP뽻x~~~>5[;K),E3ڹ.6#E0Q1 w ek)Jқ84,=$Z WʁVlG)7aTQUY -2Y V_> .3bX n_Q 1 4UYx-D]vpM4n!ܾ[`V"+-ò_K:0ٔ]?Ǔ.ko_~&kޔ!l'^d|" Z;6QeV"p6 { Qw&A  ye[PBI#nnXW}-ab/1(24X'r= ӣ E KVQd8!2"u iLC&U DA5Z#@͡3~~RTK1U%-XfG43b\-`,]PkRܝ1%d^;1Qany65һtBR -"VT[m`FdVtO˥DÜb.s|":d- LxJo/XLE\z_V / .w$̭wQjxi]n0yo4!`̬F"JnkC*Fs @=-ccS!-e@B*pSTUݠZk=|HCcS=j$nB8~ EHGJ R@DTw/l1̀=U< 'GmnJhXz!=[0Eqt`P*"+S&%z X60B؈t#_0j|pFSG=g,pe7*I@@k]-Bx>%Zxy-o䕯W\k3L̼9+&"4ko.XG_t nӒ:~zB'~!ttwޛ\hVdy,l?#j i-I)M1dZT3{#<FA98qpM䗨 s1Rs^qfR_ofa~' h^FdxRu'@p_TT  Ҍr ;E`?ڈ#Y(%d&lw"F$uٞL&~ 69< ZEĵ<t)ZtQEQ-z>?)b]}Ia&"ArѨZ)`eֵ7bj*4(;c?²bnt cWᖅ+3t 6?,_u,ei?=~qoItLeEwY+ 6-}d]-Z>Z~_cʒyh{/֗L|ϡo;46pg漰14B TҢ&SCR 8.*AWSAyjFS1lv/58^:0 \ql :mK, xcN""ޛJ0r*HцHL0̵f@#+ی|Z #֚*u8@,03,3p0M=`bfI`:VݐBk#ARA"7HTf`V,pzaYcdsJլwqIlX'AjFrԸs}B@N~m_$pR~^T2K]?)?x|_榞;yǠoe`vpy$/=,$˻oቮ<]YnERK ^Ѓ>иy"8HegRcw V1s~'ՅDCbR3T1YbZ1&fDhiy3P͒d͒4Gx21Vw;$6f-J.+hzmU 9(ь|z"p.hM )s!wXNܣqU???Tb6Cb.&$0쀑 }<V7邈nbإED3S@apRz2b.fp>Eׅox|;G;"qؑ8PK5@$ROS04Jp))RT *9[$I?2rô.g+p]xae, ~e)tث[qþwf%6րk_?pYu9ehGH}tl$7]e 6./_~o X6Mùm&s/ODo005d̋?=8_҆P3sC;UӹhorT6VlUea&ڣB@Ix)*V.e)7HρO)ܑ}4x6g.yw`bƹjzAt=G9Z]7;(XAΙHL3 }T1V> .{/Rzg-tGw 8nZ9w쐒 )948d BKұn( @B!Z)-$Z$R\j}^f3>(W_=C|OUe.4ԇY⩁:޺z*|DP{PF$tZo}fx#ϐ8|1HPIG( 3Oi XcoGdE^P=x뾷:_j}\KnY.KuKzAg[~4«JLb8~N0.?(w)Cws :N fha!ϭ҂"Q gv1MBp-E 8ϭc u+@[ j_m@G$lrOKf0/ ;qZ,'v52 IDATa\~^Ds6Q@}~MF(17# f2(T{bU|VlV{<|>O307W~~g"UA"D,\>>>T|vq"43UEDR&0!n\q,<~`a{bv4TGV?ژlq9WLtK%"q,@uxCp6OFv@hА䁺co{=`90߼'W T7 U/̴L+EL.sF.)".? sAHeqRvP4RSZQ%RUĝr?.BVx[k)'J}Z-JDFbhJZkW]z]< 9R83 bz#mRNrܗ++AkQm ƾ^WLӼ n?`;k<~:U[IW%Œ߯^n[o(usrIeRS;—%!Oi\)@Rv><;I#K1Onf\B1Ĕ:PΓ"4+|}ᠡS7ZÌ5 AHE̚sR!أkbFmmBr|̶HJC! D 8[ ``q|<@R̾VKEz]Ho33H)""zcaz0s`DD]T$L<; Q)ٙMHkQ؄dt߿A;y>~T""" j"#$rajeGg栗ᕋQ[f{p3#"3A%H-0FV)I~Y.}--en,)|bO npdgCͽT@k4v\"+em`m9.QN6ΒV  ߜ9.$$)U(2]bbwyX^`>"+.$`;1$ሷ&u\`!|qET|2Smi m83$LI2`*`bc~+ᆭ7O "zíN 79=fT.~P*wq9(1k'c#'G^$">[CpDyք?x!j]L+}~~E2Z)UUjf5.83Y3*#Y'QzBcT@- cy0%##-L`OzL]jH[ 4t@<YTj})v5 Tb`)T4gy(i-U63weapZ^.e&^>kDY݄9Y?.~Pԣڍ,1Q 3$ ^2bn)s⧣m\%{1wqbjQ0Œyw_-G13^x [dۜ 0w]8{?Ll$RtL(aprf`6SG`eц!! ,j`LHcb+Cb؝r]X/st~XҺtSUVMzkgna*pYj!"O"HaMBax.Dfһ$U"EBx d "r3b\.Kjj*SEO㛪 F7t >zCmi:4f{_Fdr Sxuy|;Yl]ab98hYZ 3e(~YC)dygl3cX.k|d^+n")4maaO!r ]K$?p]]~ϻmlX8){:8KܼT5g~):rEWֶ,%|a&YC3'"RA"0j#2)&fli a`}q>,i4f 86]2E SaR !G&XG]zpeC9K\TE |K4܌ZBHfZJfhf$] TxV3y8\!WD"0ֻqa"CdD(j.A4@ׂ{9Soݽմ0 q_ @qɥ2:31ꚙHEwnYAT= !H)M$YL0cRD20{CrбsFJ(@We(xz~2)8\*'/+tn|k/~u}:Ṽ +2h"`h-I" ".nϽ˻V_6\3 A~heYq!S!၀ yă݀}q  hXF9lmC18s4tQ'c(l ΰCXy;DOM A+ 7Y԰#Z.r1s =ڰ}ޏz w;.,KGwa,83C$]Emx|?02DtzkDX]nZsw"RԔE3u̥f`XMij ɑCDZ;ͥcL ky`0$q]3IbjLTxHDW2?H#\_-CR :H]P2$(a&r? ߳T "w(!zInn+\د,.lp3EDz{nv.jte&cPN0ؒ ^ɟN2R14L@Lw qc69qjAtqӝ}cwM_ vWjnt3ؐ>^H~O{;I qRJ ܗ #0fXp'"ԱTFv3!D$T#y`'qݪԍέMl`ASPgKܝ ÂFX^4"">d8u ^Fo#[ðZ|Tfo88L3#ER];I'] HiL&vלOOХ "_oaf7Sogf<g,D|\7˻S1MBIԣA9j@q=:럗t?We7˻? V?|~вB-?/킆߳uy\@nJV ,SEziFqC]R4QYJq1@] "LP0B \Kz49pQ=}2Դ(R6DŸu.Ô40C"? ̕cXc~ќA\rHB/0Ḣ β OUEda)A@"G]a2H\fjKLDVJq[< \Z )S@vwX"Hgf!T 4qs#w x@Dw[ <DB,ϧ8gt2GQ\3]Dqa Y 0TLӅQU͕,x:ymyJxst<`"e)Ącd: 8v1cq!r \ϲ Lhgf 'Q*9~+tMWB'jmyyvSڒfu)nlcD % dq5n[.k{s@V"MQ7Kz@/l0_A*`Are(E]q0<:Q A(xf5e?@F4&VX% "`N%Sdq'`mƂ|0 eTyrG!9h<=bιyi,!,a*E y@y;_`ee^s1ԾAsM}%Dʽ% YM[B0"(B>uN>oi=L_72P3*)t?lSQx>ekwi{@-`3T""I(lW`)G;m?N@ ŦcM"R &鴦>vR\SdtF7Ya>kp!. )X: fh8 |Zu*wҮjgs,֑b{ES?YO8s2ÒO1 Q3;9"c;"_E$2o,5s~wμCNYUeYj1ZEFD sN1vybg%9^9.CD!~ h<__ {wLPg!NGĪ%;L̰|N bLϟ?}Y#]8тWEqR{#l^:FU> rMl=?OZ֝@Y#(AH LDűS-٤!D"CPN""129 &4ͳӁ"J4W;Ʉ "n>Aa fPN1`4YPDցwU2gLN*xURq8&cS v/.D,QqM"A䜓tOE%Cd$_!&r0Mxab"Uf瘧&F`z?0b&V6@ygB\M!iTT%Z@R99t5$d6[%O:;VPݞnu T_5C(_ڨ9m+F KEu&•|:BTr2l1===aY0,d!UFR IDAT`b^5jӝ1};߿Ь.0aT; Aɠ@D=s=wacadA%3陻O"A9{BF 7:h,_D2(8jq2 0.JgᯒNErVx;G-a\K8mEQg -KBˆ)KDyev+p4R]¤ +Ь&тŗTY.XѺ[Vvs4~|zhC8õLw7o 9 +ʟdSU~Ӆ`D &Tzf'/N:#!(aV~]I@:@$~5V"%_ZdӴNPXVZ`c\J(T%/ PsjA A:mQQUgt[UA) Cp^pث#$G^nbf"M:lɷҼ2"(n&kȾZ5xAUU-l NP̡֝O0M0jqy1Jt좚?"ۿ80p:p8U{oBeO0x7ϡt)JQH0S4]3Y fn^fkHn>O{?h ۞:V [ 5{IS6;{6c" YKsBTmaVt`=_#73u 3Z q59힆Q K騆 U0kJI${y#e2 JU x&\;?z"Z =4ENj4S5RcXt]^<(jѹau**Ulhf \t/c!PƹeH;͌'Q 'MY,٪*Q)Ti9gX%q>>$秢&hr@n *gvQjyB0W.iTb6K6U1WǛkſLewQTD%߬hwwou\D{[)u@ŏs%( k8;ϰdJ;'["cҼ`e?iY!duv21;zyM`*@j ujDڱShQTȎk{8 {}c lu hJkH`a5R) h&aBč4\&PEV3I+**AXӍDreu#jo)]"w$AQUkES+1; !!00c՗ww%%a+KRז'ebB_OdgFܽ(MTrss6k# ΝOi-A'؎ C$*DRa=]ݤ$[@BIUˢ$R de}glt6O%F&))$ʰ.$ETJd+ԭtV'ar[%,FOajİb Uw$[ܖLo8gC4 u:Z^ԡ<ɪ-wԩ\Is<+p (I4q}ns8nHA< {}}z~zvDK'/{hbK^#Ô~h@Ex:ٖ5#=i^e.@lviqv^Jf-"~,xY2K&i;{?e|[f;.l0fB)o&ua;}uU``A% 61랅T[`[5#38`0N$eJR!,5zŪ:M:5<3F$ejXm(sռH}TFl2׌I2Bxb6rY5Ɛð{)(*1 *:[if;OC? Pa)V)BƨyY !Ū`..8D4xoisc]upޚ"pv/,$eLZA|w.bD2lt0(jgq2:cfR 4_dB@Hm6/BS^uJlȝ\~,r3vBs!?>2ǰ#&^ o^u?,R\d'knm ;Y"35_p4Ӝti:0~.]l57PnUx;}wnL.\֭(vualrS0SĐVe۪{14od 0E"]:-0.X5ݤ"AD1Jyj,Ƀ0&ܴf:bL/dHV#Vq!Quxi {Ng9Mb'Jxf/!xǎ-wR&";36'a<1dOQ౪$.P ":sl%LZ9B.ev@ɀiZvwo Ҕ@NE4NqqԬeE>$0 CZd˱%U B4۴3TaGQW&]0^q,{\.|>Ə?p^L5 8]fUן/r駟~:^d*^Uq+7L"G䶎8|OMDes5h0{{_v*_ƪ5B #ʹ8mClSeH+f(K4b'^! øT_mYk|:^^>֮L&Wuc!ʜ^a2niOJgaeiA9}fVI~T|(ohYBϳ=!K˶rcմQf\[7VlۭX2$P ޼M֗OsyP > UXj؀`"LyHUȹݹl} I&-H ϝU׽<A1G,-@L>..q0ʂ= 0/S8j ^ñ&PUU< ^/Ͽ<==˯? ϺOȟ> //e%J1 ,֦Sv0~tCvO9AA5Xa}̚u|oL:ϳ'N߆ wLewzaR#f*oYuyTIs1!E&\,ƕu; +d.uM$<|o|/D9V~jyqE> Ao'FzJ-/II-@EG(RL Y.r9JX#JGqȨdUev.8S7%71@)].\]MytWML=VhEZC6$NEi9~}9aF̈ %7r0H:!yXE8 1u94"uq%D<<<$2x9|NSXA⬢s̎ةcy~!J qk9Ő;V:x3`b;&'p!7!&~M5K> } n6ˡn]qԌÎ Beά}eYb>d{rLML!TՊ62hH<#-"Z6~RM0%8tD$P##lܪ0¨ѪaaVtEĠ9G4<4*ADLvĄدr(,j'W;__Ec'Mȭ@@ FV$" ue.]Iq)~PQ>ygC4NQT]VJU*[$EKgGJ-lO Ji^[X%*@TxR PmW^6_",1\Q(u ,u/~Y&"?Q3۸1 \*04} wQޡW6x|TU`8SvX?f)o6At)T(Fce9BD9 IHf3{5c\*29˲~gvݶ#J (Pט BBrvA]" \HBxp 5Y[U'<=OlVI?<*iӱ~ֈ@yv".bs|ŌA/)/O3 o6s$_~0蝛C 3CE3/f V0W&k ơ.Ue,CodXVy ?Rt#/vP)fQno;[OEIv- `*6hͥ[cWHPu\vA5bWѾcдHK.9)ksW.!P\2]ڗ%(#" B9wT$b$d,1<==>>]>~|PxkҰ? +VUj)wԖ|JuJfvU)[sL 1/clvٗ[\Ҡu g?T!?[Mжs'J +C;Ѯ8N߀H+N裍;XP"un <"GDJ˂Br6 Xq(DJU6KDNtJ,*8O>mHӝs4q &ڜB7,A#x#~¶:*b΍ty*7t|-o- 9V}a?l`}oY=N^)5\Niw{mZ{s-DžwwJ1w]adؠ_TI(7z#ij6 0UB*[obMH͢ԕ4ʘ &LB $G!0y`mWdvJlv@|^;@[l&4mfmK8g *+NsI;YVXnJhGz {aW[zT.yCrеwoϝ[² k|+YC6U1\&(Z3%c^a*LcD5U)TemJ.&T\VHQ)28{R^>YP;¢Y[9ru^iԑb7.{=.=5(d' 'œ:"Y}z_?pȃՅT iP FhƉQMxgxQ,PRe~R%IUCϦMBIH0"([-i-.p$g?x8 n02^=&{cd$&i(̊)R$UJ#s*P{DӧOg,={myYsvtɆW{k]ęKYޮU1ZF=|=z R췀^unJn\woWvS #+\T^!k(Z5hmQ6WiNЫO/ qYp2)F6梛f* 䞟_#}xJaoNgFS< zy!7&>fʬf9|XUfѝ%0w{Yh<:OP'lO'ن*^H b!h]^/SNEگOzTZll6]xiY!6nq׵+-覱 LӪ|TuN{/nPn:`;_[w/P*yUS`yiq? ^4cUq ץz7Ŋ-;zX*8@5ynVL|׆M|< jSeG"E`C䇦D!|V@A@TCR+-IU%1Lm?}@JZ:Iga aS̴&!84W?u>]q]+k dZw[R:eK}\NWZV4 =jҵPe[ӸGݎ\kB!܀T.pNwѷӷk7q ,D9iV۷sTN?+ ot}4CBzuJ7ZM7;s}D47_3<_•CU[яvfoKTc:ԦLDN>^^^4, @3h:۰DaBeG8ٛFV:oMͷw iYK5mDU$[Lj٧ T,\iD%;0KqLv;E&P;~uwj+fvc;{O ;/NooKW6A0 ̼k:=3J` aeu桀" rDD|mW%bFcU]ZnxROM 4*PƀoW B^nyё^%*Hx&7ksf(*t`fՁ"DW/+-O'B(¯nDgd3,8|Y"]c*,; qq1WaGn/3q`lGS ktto[8>8xzyr2 y Q(g6yo" YG a(+TA7/z c4c.!Ss"We'8eFgo&3HEU!̎Y˲ Qb8FU@j"M3cy-3s#؜܎[&=2[M!j:azs-б62}uj]36!o[xc7v;v03ףkiWݎĘƏDZѓ0|xxCtl}(g9k[aq*~hJB W$š:i:NfS}0ݹjoBw跓t`dK 8HB =%ef`JEKCj[pPP >ԖM;oW[ Q{.,N9ɜN$@XDyq9YŋO{眈033"BDر<9D,Kg„KՁzm:uEt7 Vn/S~g9݌Jo[';:;/Bݬ~̷81']6H缀꧃w˿]J膜e*~~x1nJIgLpXg5XzZb="®+EnhG*@(75-qp# v|!AUn!JN<72&zwH}y56;*86~;" !46UD"rE9dM~fh"X""(b0 ""1.aq08T``3? ۪;HHhc^ϵE|>7Bi\cNĊcHww}Owu֯*0,Ӻ~2,y9^B&a;'RhDWo rT{9R}*z LymJʼnǦZL+E7[:-(X/]at2nBWZP"P֙7)9!&V!xXUTAα9&,K_*YM:83?U+}CϠ3Iw>>~~~pML[<=xr3[v[wUL=Uuh/Gl+C=Us^kzvd4Z"OlB ۿL\T&>6;7Bg2q c_(,f10TկQU{4c+a5(3VZ5B5촇vc`v|G_\w^{g-` ύ/ӝ6߆k]{ɂO_RU:sLYêv<1@A-b+*(jE+V|wt7to=NƂج\C~Wʄ$H8re~]W`r[e dYP(Y`!0;ŲxR"+r5JP# ){ ~A0Q\nëmTaX]yl?MfU{t]nop }x8Q!G\>+{AS c^암_`o5.{ɸ9 t&fLJ"Hs_Dk ;(]VM"?7-]3·6EJc" 4b7![lײtZ 0*l!bvv0{ 6MEoLu)ޚj* \(ַw_Enshث6uFSg~ ^P6{1ӝVVb%NO B9DŽbT5oVĮ$Tͅ P;}JE;mh}kǷ뒺oi?nds]$]挰 |tC$DQ1۸R&իqsDm%S73CT<Y]v;9|,y?7ic/\am\/]}qck :'zvj߮7B|t?I E VW $bhx$98tQ5ޢy  Jz}ظ zEB%QĐ0#ؑuSPS=ݬoouC5+I"Q[e f]o(%secdf;" JlDj,˪vdv\umeu>9h^ 7Sh{ȩ]~Ձ/*?7xNw?TGUQ "ˉHіsQRv˗ v'[2 nz~uOY;.u +]V}7hmw7 U +`- ! 0#TD96ݷOjbF5y&aZ_TAOk~re"z熔;j݃ߘnx]T0]sVǶح"?{mN%(ɧ~ 'ۑMW"Z|m%Y @GUsd(UKΰB K)B]ͽԆL!b95b:dP;Q _eۡn<ۿ6N︛ϭtlW:=FF߉piNwӝ9{YŤe KI\%=OG V;U(E4E@}NLZ#}()Ѳvԓvr bM̻ uq-00c2hYkQf'ٞ*[\F2Vv>DNs^l{i`Z_1އ7ȼҭ7ߵp 7[pvoͭsӝtGK߭t% O?|+J@"W"a~b m|-ʬR+D?M]dgg\Br#G ndUg\eOV.[Us$Y]u[A&*~ڢrv|s"7xvuݯ9@"mQ( W\ϸ9y͙Nw7;6(>?=NčKe2"֮3$aY׹y\4*7g5lNz`DJIsDc4)I鶻CLDj爥w+ڵ⼪AIwǮ@9EgTu *aK~_J5ߣwH{ UݟNwO7;ލVb%O}>BRüC%L4M;wΉH!ءKW }s3ೖ޹|j.hY׊cHTc\4ٮD3L OS D3't). k."UNF:xoV[=MSz[=r5o@ی(a+ݠM7盶:m;NEIv|-`)75L3R<BL67no)ص}܄)I)nU% N[E ]'6HGwJ%Je6oY?mZ4X^XPw,=1~#ǥ\TUP]toL;NwG  sGyf)Fο5mܰJþ >+`._g,SDWKQw2X/%1٢3]CN FSFmt \2|X7t/Q; h]Bت_qK.DNw?]l>n%<~U}՝tfWruemZ<-󀂘h^%QrՂ*Q'91KK}cnP;vW w}ߙo_Z,3.\ IDAT=݊Ҹ;NwZW[<O5/8o\ʨBL֢蔮vunb5 e *G|إ0&r8&}L)8(#"Q?&}+ۻNt6Iw ;/H۾FY;ӝtM׋^^X-Zyw̮‰ۼ"`&6zU,Weva~7bZ/krv-@C9Wqs*n -ȯoRnsoSPU򊾖?5hՔu31WTv/t;Ne| V{uKE$8A̡5S=c%i[?LD9\B"Zt]] d~]Rx<[5b5}pquDKz=t;/B_mֿe:J Tզs =m΃8!?O5\ 006 m`>8Po9N0TumR**VjS >}+YHc3vc F?ZiI-i]\Xji9:^I=ǂ1J dze+!jD3"q5#9MӺP"b$u_u8UO}1g7O@tY`]&5܌ٴ-vnQ6s n`Q#(_ʕВ+~1RRQפ#:{)ьyJ9xWG)OZ\䉨ۛg7V/|ſ*S!,2>}Norչdڪ1~7<?iih5uuU͖:ʟᕽp:knG랒NF/oo\G*OD]4dkn4E<]州Fbkwz-p0-`#X",8p*c-PE@u)Gu*E)~gD jq78qk|1ߍ*]ZiBȈܰas,lԎ8-ߜNN@ 1+7JPH24r`e;BV򋺭f:ա#05 0#-Tpzvcj؈[cL4+BoivJ_ :Z(IcXC _LfO{Q[k6aIzFjqq19Նg&'2UNfD2nC']9+@>Kgj*!J0PNJթAf#$:tnܘO_ Lp V3 D/%PHMO ʜ j3JZ}5`/ꎔI cרb< T#|@L z]};c;aVOv<90i7uSE.ꦈ⟱t&S' *F~@1޿cƙcD+oN=u  ^Sfv&o8 #$(D̼O,v3#5jNeH3_TM(XዜG MuX͙wȭ[f:趉in莨 ߦ.Βk wdG3?hz #p$EMqEDc#ŸݒX7DNUIt6'MxXacGYhK!& 3^~r"vn5:!p 2M2hMJō_q{&Oֻ*)iqO Ik2O-1 `O]̘oҚ3ĢgOD14K=V U Lx&>\%=_xfEf)x/#ES~Cb(3_tO]؅ UƘB7"\A0xf0Of DDBӪiJW/RMS'DgG@jyjfeS4#Do0)"Ε Nw_Vj /@ atJon͕@>mΣ? 3l72 ?P@ @A(  ?P@,i:.c,OԬSH_@>p[c?m.rnBtl܃`XҗT/nOɲYY~@![,J) eY$YeY-O yfD_i1B%Oy#RRl|&' AVLq(?* ^8eqʹ$Ixtp8r#@F ?P@>@Y_,?_xx$ƽaܛL5># x$k\^{u"|===cccy敗g=nRwn "!;*ŗ{뭷N>ٵk,6)5mmmnE(GpGţiUZZvڎ\ $=ӇuuuN3[E}Jxqd:]g+.C1}:GZ *};oisOnȬs1FZ/^=qeݴ~#_( B8z( `Ӧ 3=}K=*+JoW ~x҅KJɻ?s򖯬qMx8ElXӨ}bݻճ+mN~6k:]iL\I>U kW6BwΜ)ďR|"h99kxupxTd32ƢtWkV/Wq<'[J37vl"=z244tر7oy>K Gr!Ef$6GޥK.Z8R*?&n뫩jxdꥶ"kg&|tw~ X8k>s{Vo]Rb9ݷzKvR[3^b]ׇnjdjF _ ]/3O,O}`:/ճ26]~}޽>6f}7|3 e*BDfEH/66UY@+ `9H##^91v6sb#IOw{ qOxf?x1MMvlf3 ?0c}-J~`u^=;8JUf~5$$~;wnN7'e`Pybv\.ʲʊ0 e%w7˙Vs_ 1Ɣ˄ApB sАA-g?b[ф$((>娅$Ky ?<2c.SR=ѿgA]YuwT*daʲ/%|{c: !s (IMLݫ{p] jՙD[ϋr ~?ۭHL:ڼi܂;j?ֵu"vVW:W,7 O)FL1A IK΄e@1Q0B(Y ,6us*~slEVun簾>jC͜yLh`Q>0tN ޵bRSLC555=c޽{۷'H>~x[NPrt;fw:zyvUbr{.~652}i*x&$*/U>Y&<5!BYT* e≉II-x&󊬢d{ _d'&? L4XQVc^4AG[nuȑW^ysĉ,tel[3/+7(+Ls4aQ^$I_ww_YX_ dDxnMU>(έf]NI:ݪS Uv=" XY{+cNwUeYm{atúO|>JgϜ|}nٖ/v?PӚƶ5:8fngW[3ܥۿvoEYɂ׎ٰfiUe'o=]V3o]5%7o5+ZhnUe\iϻo>s_ ~ *~ӟj}rnJEm099O8q"SEGQFץN$Ix 1GY{kWev1TQ^CãGg W޽nn?km^~c8x7_m oRzg`׭^يfWϮ*'TϮΞsO'>^WT$2tK<|lmͷO߸54෯WYQ_;yW<ߝuߨ_01$y2#m\땯GnR?0cq=<ω%}'&ҸV>;/GlxbO\D Z,R3$Immm3C1lɎ6y.*?Λ7o)%d9t|/%T>ז̨K@lܸ?#GFGGՍ=܃>V'M} }6׸S u' @϶m۶mۖVQI ~nXa@jv.M~4~0s^#pP,h,^t0Ԃ6ML@?V*{/6^- lqm,B[9 SK|[9z 45{'? ;n8H;՗{oq),'{0 ȗoRȻ6,h3aͤՙ ?z$F3cL$szr Z^n!ɴ$<Έm&TS""BZPs:?+Wx<ɾ0`l%h) HvP>ޚILY? (Coll,E>c9ydY}v[tʲB$I1id|lSKܔ/el"ߕh"B{8 v\f:%OL$0@ t:xNg 0sy||jFXR6vgIn$ 9MMM J8uuiJ)q˗/l4 ctuu ` Zޅ \.| I$TO.b.m&DW(L;O fݖ#c…w y8B)v]ْVnDdY eruvvs@|+++S贞QUzN{zz6_/QPpex hcK (O¯y3)N 3I.'ݍ*jTeY:d%q?y˖-]OlJDAk7m']U4775ހw766?I!$ԧM Nʝ ʝݪXe?B-JǬqF'|~_WWWS %ИJPFzDwfVV;kzCoppp߾}'*GRUUuAet"""iEުhIDATղ_{{ /T#)?Bbyl %ed[۹/zS|+_ٻw "y0s0F* ʪ.Jjt!R裏>-R/?%{ۖ%ʵt6PzI,&?UUUնm6l0k֬ nZI7DJ!A-Ns\í^t9p8 }#piP@ @A(  ?P@(.P8jP:IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/main.png000077500000000000000000013372621473342170300257600ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxy]W}'o};$J-Y6øHӐ_8 4Ĵ4^ݘ0dzieI%kA5 {sJ%[Ɔ}Vչ{j޽i||J)RjRJ)JRJ)O?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJU=/xK^6qݻwfb|_λ~|J.T)RJ=y4>>e˖'rO7xYϞ߿o]?nNON3]W[;z /hp`#?_WJ)R'a|| m}-_w;]3sQO/;nkz|דZRJ)d=^~SS?[*RJ'g|| >t?|+;vfvn?=.y*>RJ)u"Nnot?_jI=%Ws׽|fRRJ)_/_N6kSS])RJ=y'{1sn{z{w԰qvmRJ)Աh#W]GvsKz<?%V3M###'~i $zZhs|>?Dc@+;oW gҹvm?ivm|oc^ص}-/Jϱ۷__wdyEdΝ<޲~MkP|w}]\tEbq]tѓymOuG'rryS圩_|oنSw se*N*޽+<9###O2=ĶyES/x~۶m{E==|E;쩟|Ép}Es_}XfLM/:$M)h4K.d~~~rrqj/UzUۿۿ?,m۶K_ҕW^ym]wufsrr=馛wosn۷o߯گ]s5󋋋ozӛe]W"o|$ǺZ|;W-jwկ~s{^{~󎌌]b͛7 _855WWַDd۶m>o޶mwfs[|sss}k8O~3x;h4>?cq̼hZ_oM7ݴsN JBITOpa$?xsCk۳OpoIʩ3/6~{+wgGOꡔRƘ??ټy_o'>h4>7333w^zm}|>G7GGG__qvh5׽kvll~zIb'>qg~ _z_|׾Þ0::|G꫷n}( "A|+_-reo>rK/[nᆷ-7p޽{ /+o /˿򓟼 ?LLLyoGFF o8/RgR;U'{O967p{4 .xы^tW~8_җ^tE}{w nKoW~||SڴiwߝiqUW]v/ /.;t:}c]׏zIr%/y_78y o{0?l6o馵k׾.Dꫯ曍1/9#}f_~{|֭[83|/~WunnxW_=;;{_7J'\tEvV<85eOv?2wl /_)̷e˖ďAOz]wuٟ1FD>߿]4-態(z% 6m?cq":ӆzIDzyffޱc <99nww7qppx0I4"":l{)Jz8.nZ 3͍oj\s5\St뭷x衇NcT33=3W=qZikN7kOwsͺW:&;}PßR?{1cccDeoy[%/~r׉]c w^k駟>== `ӦM"rGRGZ-8p1fSS˿{=je˖5kC>q|i?Wo|8׾5yUW]u'Vg8v'k)™ c˯OilXty'hJgo}߾}W]u՗᷾?~뭷>W_}fyy}{۵k>={ x߸o߾[ymvwC>{n顇?%eYcǎ__>p\W5[??g?k^믿X|W~W>я~k_۲eO}SQ]xz'⬳z;߹}7 q_޳g _<,%4J:,흪w}&o i[#r^G{?6nt<5M4umI^Rꧯ\q G^}_gO+|kf۶mOCz7_^TVޔu].|;ǘX]w]uUι|3dYvWy{c={kG?K/\n? /ꫯ^v_gϞ|)~5߉-[<^_w?z vK[Qyݵqǯo*=*l8/Y)~]wuK=ekQ?=W"Ɍ/O?犏j}ϻ뿦?q6λO\RJ w':%= >i_Sr?|>?0|;^/RJ)9i_@_f;?'CymRJ)N{lO}=wNj0 9/䧔RJ)t9`u핼ˮ3N>?q޿}5*RJS}m:kP=71?M8q-P|RJ)T@.xE|;27Mi(>kybw~^RJ):YO.-9^gK#fhOLgOpc=ZRJ)ԓt2}{[{ G)RJ=NC)RJRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)VPJ)R? :RJ)OCRJ)ԪkRJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"龀U(RJy?hSJ)z DƥK\܇?‰9rzZ)RT?9$oR[NccAK1_? C=J>20PjPcp^ H0`FDH@`"""H.xysy~ G~'~qNVJ)qJG;d̯xciL,[|Ä|H }{zd20̡uJauFFN[7aؚY%cA& a#W|,NaH"q 81VGmmIDRJ*OmV  /OT#9<,td "q>^P};OD D`JX)- 7n:}ƍo۴nldp8( #bɰE$"DD"bHy;"cȃEѕJ):SUџ,`Y{H3d8{Vd!\! 1 A#DZ3JfmgYqfM1o,Y jOȤ6ݏUJ)ԪrJ-WWV?b8wh1Tխ<`QN.r[D+kE@alB+AA`PLր=֚lq,hp(tF<{llVOm\1iw+6vfkjZڨ7V5TKA ![DEς`,CP,1rB&#pyC?'2*+Rgé_󷢚CD/ym#Ee(1f`%3b*I~Z`_LBo$"srx)3IZRJ)ᔅ]O~/s1=0{^IQ.<]æ= .Ĺh C{>ٗr 22!ҘkM`3A{r{[}Vsνu\V+Q".}0!B".6h4y bg{s?ÁX esC= Q)!9d,M[ٻ_¨b*.^ͅYgqy/x'dKfl݃ [[ov*v gfBZƵkOOrks0=;t 5VSno5+`r/X9qj5~]5B8ڵ 24X`R_308XW+㘄FĉD 0KMץ,DdʃER>dd9ˊ1XZ'QhSJ))l"+gvEX//@r"?s,hAxCyЁ D"q_%?GX䂸BժiD$!J,.c9f'E%K.dX@Kw~~F7_l~]>KkFۿR  N0ckd,:;- 3##6`gpKL'H=*F3N^gr"v$Z}Eg 8ٷ؎ŕ$M𚑡5C#놇՚EdaS|E!lr6+G.w>dX'RJ_Юԣί(`=m_woQk?"Q 8ʍ0 IZ&x EG 3C$ː(JU @$H9 19B7@B2{KZI:nQ{<8cZF\$ϥ,ׇ;Ea"L&Ȁ9&-?4`FPI+b5"Ƣ  |0I^~>yI)q5IJjd;a@S== $Yf1d "y.b jkG֌lZ~ZZ ""ز(ci[-+WV|W~x{ŷRx\}pTRJ{*KT!"qy尿G<"QQS a0# a3p٢`(B6g`FE#*Hz~ \5` q4%\lItj.x)kz,<MT.gڽoN %imt=u@< yGC,iϱ {'c%eCX ivML4NJ%^{(E{"y8|# ,6|D9,)[zfK= P DN"ˤYX4C?,2(p2f!,[Qm i.<=nlt܁ wi$rt O^ ;20 x#ݕ5k([l &YAfT@dqmrcwe2Xm4{ e|4Zag2  ăr1,1Y.1[xc8ckB2q%o6=,V厐v IDATDR O隿*K?XeW [t#9Ȋwhep4/Oi-^ bP O "z 0 6(vо_Kr$&ɋcK ^7xMH?1L\`- d)Y[ٚuc3=$Ɯ眾~HQh,wy`} ΋̝nZrfS,B0eN/` ;2,u9uLT/)urY):eȿH+18_ HE>Yh)C =ERkBc]=v}De(!`s "F S: :b.D礘e躚 ŕ]3 <<|![5#. `cvz΁8(NܴsXX4!Dd(pOz6 u 0g b 5jqf R3,&r5=1,t< A8k ĨذN-&JhӅҳl܄7QKzs(`N̖3s`b&d^;2qu IٽwϋsEӷlzig[=5kںyhi׫ggᢱ%K"1â͊t:C^K;V;rWkJ)~<ɵ++|,O23s/}/F@Q+#sD7?P1[vu.V1\՟]J?Kh*1AP5sZykJ9\8*wA(};90Y뽷d+`MqÆ]{dYeF1U-|8y Vsswȳ#/mpL  1CiˁKi3J\V/ >gcȘ2A 1Y JAeW Z!#&ϲ^@k x8@}$+b6[Yu;IK.]ٜu{ifKD8$ϓnRo4.<vN׭]8 N{/@ӞTq((tJA%G(pZ4MylgS_rR.ֿ|t#v;v;$a*)2 aόǚ*FS ~}5""&۹F9%@|VEF4h0 8r k@9Ur,-Eʍ@Ded5$U* 6&in޼}V{ͭfAc0 i %v֌/9m]vX#0@i'>\֬`CkņΡڀ陃V"<`I0^X {o {CgO\R" *X"kkQ%~0g *Ahi$6Fgm>83z9{X4SeYMz:E8KݾX~MY\yH@`zyZgN߳ ϟojz&es5oeC9`Ak˝ɖc65{$Iն06b\M3igdIq92lb5|:Ps4Ϝ {bD@t eDX뜅1&l5 *,lx({6qV7O[3LbI c<8]i>0$e@0959kyg#Y>n73T%eyO:c+]\8N5=T7M-}w?Zrca=\A\  Htph=8mA(\7vhpwPX5iFϳй1^sƂy^fbZ9/0C`G$X60F8$ON?cˆݓ{4[ k6nbs?E[6߾vvγظ: dL^H%7FRHnP6a_5*  3rF\ Ed9J]03{b -8G`p```zz@E`f1V ,sd]9FZc<u&I`L'Ҭ˳3Y/Fp0>$9LeY:Cbd֡6&JXB 83: M ew#^/sNN P/>wus5#gl^lJ=$MŢ<\Q /./έv;MZ1& Bdy⊥J%6DNmߨU#3r3f/RLYű =♓,qQ茅1.H{r~C6S\͸*GT%LF 6HFlQb=(e!.%tbĕʎ3D4M~J)u|Ow맠zq~w}{rKkޗոE"d!Kl ~k„A  Maɽ<[ra;_[|^0 2f8;7t/y?z,KL±m/G^\lv:Q:+VݵƄF5zFH~?uA,52Xc{TjY&Yb(\Kj3MvNL$<,g V{Gpo[Eb1օI9 "Sb1sϓ/4륒YCa U@PM=%4vd CJSo^HG V빱^sQ=$oVEƺJe8K$,aMX 0MSk1Yڭ~ݺuHAX|mƍ^ L$E]Tx VJVmq-j&0}b<c cDXD+jO^1%craG/~gPJiEqw 8@v(o8:b\25Ų?E9R62L-_ i~M­V9B2y[lZkn ,c;^={>=]p}TZ-&놇{Y$zIڻ/fb12mٴoa$qұ %B Uj&ټq]Ң2΁Edl\C# H 3!^sv{V!Qi="Ju Ц<2k jje9sZܷݺu"$Y,ˊQ|BD KP񠏆Й3Ά9sGa$܋"g^/ls?gɈ mN^Aڰ20/(%JKǖ&k8?K}zZNY;_E9D迳T[k>zҾnO3yf)I ewqrq^Dpr֖PW~&#.K Y0 9?m7=@aȘIsF\|l>b BgCHxac05f~n^K$8qg6 v?oQIyZ<ϘYcqCڳsSa5s"F7nN7OÃPc`\Z؆O{ ̐|錬YiD%d W5cL̞9 5$&IJǑs׬B'0v9854M"|0<pBk c`<ۨ0:e~v-KI/qV" 83بw-$ۈ}z1UziRX͵gSMy.l {QI3kj7Aara\{1 C,2H<)X`P"ū_"˽n`:@KmVzoq4ROIpr-jl_H_9f~ z)4p|9EQh)s0ϺoKY֖g9 !#sCS}`ٿJeXZv97ڝ*( x,$s29/wr+fu}ѳoIm @"2id s_L,&I)$nY&Lc.:8 !CY 03,'NH`{>%8r2Zk]xZO0YhxFN %3OrysOFHsྃY3n6`Mjs5Skm491y^ܳΞX77w5{^:ݎ3VIR4iwn[+YcP"]7iw0\ g,ȀANV3֘F= 0T*vm|J0@@so:G\089q5= M\,..an 0i78Kё5 sjqلZ&MY;yf9{K|ZJcg:& B[w,MIrn]7?xpz݋֮0c]ªq *d!+&"< YcAˠ.~o?o(}ܧzF 'Qlaڋb2;)[5$ޢ-ub_F&0@9MYFL1&ϙ"¸^o<P``l2;`^<8 H{\]}3O8}k{ ff)" y#d2J9IMp!{vu5O$D)P W΀ ƶՠ~uoH`7|צyfzJ?tno|om o@_=%i*rDlH3%@u~wχC]$ m.;#;N)92 ffEŬJ@Ex8ܯr3c=8Ӵ-P0)@m =Y\xd8qfvClPEF TG%Ȁd`N\n۫ju65m.rV tDc#!;#PNV"(8IF2()F ؿw7ZX4fm޻BW>V05MMq:S3 GUqE;5"5ۛ`7?'<8y?cO>m ̙U p2qLՠnb1 )'n^cQK]&&$t YRAM1CUi.E UTQUCF,G甜ITnϐ̚ @DU x٩BV3*GpJ@U j@㽣|舽U!TU5O&{wy`Ꜻ*VM.HYLUIKr׀`cRRF=@iDȳx4~w6 y]idPf9OFlySSKy˛ onS:ݜ~x[<{:9˪;طO*\W}}=`]&*B ٲB&`b;D!!)r_7;["zSU@귘?fK Lb[$6J^x}A&k`I"ة֣Q^!d&(} IDAT"S@{23:?U Az8:K]2,"{j zKZ2 A #fϞb&0c0yAÇO@d6n:]CF?b[4/#SC&uΡb?bx."S[.!e(f"iލ*#8z3K`oϜ0X+}j= AL!"0^_̌dfCUc2TbWCftn\naL[H˼οmӫ/`/8b)NF6Q}6kj>_s@EC=O~[?ݶO?-Oo~?}bX]Nϯ/[XOF]ӖR@E#V 1xhf-"`Pg\M\.].hwqqQFM(I|pq1e2Imۤ닔J|h\['T!6v8&t}t<b{gr|x `tj]ʃ~|X%6[j`EL"z')AKk\6`.&FR0 x M@)>[C@4T^HY;|cMz_Zd$MxsH``bPpKU5fWe20&۞oB`@0er-yX@|֑r^ BDyW@2KD:, )0eٽ9;{N''Sn}h^#Ѧi )p4str=9ܴ E20U̴Tǀyf}o:Z|~'ptZ33#ȑ'G YRРdĬbj΁'E +#9˶k U hNr^q lb3 p.(f`ղݮa=G'/Ϟ8;)77 ,lݮكGw|l~gO2=8|qv1|Q9B?`{{{ᮣ"DL'΃)B)e2UuMD]m֛ #sh&3*3Ro @` lbhHu4Wjr)%+ o6 *(TY8(]qRhsx[+]=ͺ^om=fo_^U>U=,h2MGE[\0)mf9ڜsCnԶ <.H:C(h]Cup(U˹hbOqX#tjiUi9ŗUD+dLqu}`E } nȡ800GkҢ!Mx#I06[|l+`zjvl*=:x26Cr,{qhjB.%BVє @ 1H݅lG$܍ Pv!g й3 fȩhF"tqCMb n@`dA+Lv0 rj]90:JqEwm'])7?{Uu6y=n-4''&pa| +`X-7d8;HG{_px\WUH1"o;bDV 1c$G\A Wh竦! ^l_zE7^7ku@]JMM:h/zVI3 'mu m Hj*7 ЉW0`ЭWLҵTUUJkxkҙI1xZY¶}OmO|>1.UG/^>[_0S]>={Fw{tyyy}s1iYi|ˋ 3w};ê[6"ON!ha`vATIUԼ`P"x]Z%K1vSQ }"HwsεMS΅ҵZ!옼#v{B)@k~""z$*R@!˾;G.? +䔶u48F+sP *)DJ(;ެ ѝ|-ueo:]C"m@t8Mo/sN7p3='TMy\PmWqݖ=Y/^-ٹh[n\Q[`% \doh^$+ Dvkꪒ":zuUKQO˵lӋkܦC>B"eSbeyCdT6%CSfU&j_}UF{`+E0$CcB$b$6%3x7o=molM8ZNh;ѴBU4Qw7o]4ھ=B-'U[`N h0f=@R].9S)" Z$?ip4L$A1LT JfYˇbly|v}rrS̐=SbG2p_~`X2`D¶|V@b|yzG''ͯ.!+)#gF ll<\Мs"\OqXRΣ$R@J =|u~dCU0ppQUjmڛU{arSaA.e->ww:{rnK!8Rg_޼{|R?o[}b\ח?ųջt?t<;߭'%:Jjz6@~#8ϝs"r {rELd^1p8,R2SBEwLmQ1"'")̐#I7v&qX z(R@e36mn6u]M9{y1C:ԕ, =:^.Oˊh1\U.e+LQͪqU]\_|Gn匃A,E}i\1sjmVUЊnZDlMk`Z#?&ӃWg rׂΣ*479ưYvհM ( Lb pS:`RL7FJB\#D$ ADs&Ť P,i.eSR&\)ohu+QA H "r5q0Ր9wʹ7Dwaڶ&g o)wpuvM5Jo_6NJb5 2b4تS@Pp4@o렔Aׂ;V_vk2RZ)"LHXLP44@Etٳ`ރh>ZCth9l3"H)pOO\=<OFO^J.]J.TLQ@څ<u1ckSis!0jQ9+%Wē1 ^\xU[4K3%35eGR%i)1{ι$%:@vh=3#*3b5 OfϖJ֑5RZNa[/;wQMTfYGFK$ ŋ/rIuy:$)iQdnyf~g9=}񴀱wW7xYV%z{;)Bu7$BDɥ))h}&u-8!byfjQHYETs)PT29 R:"1 #:If[SܴG/_>_m0t12.3k;8m8w "M@mg*e㌃ڣJn׾?rl΅")T F==tnv>;/an@btaoka8jY$wq8%9#6G U|ۤ9Tq4t]b$G߶w{c=,Φk؛b>qP DfSک(1~Ib EьDMMgFȥ 3c`Et6hFhj jH\*C Aǡ.9rN2mwvA·)x!"|;fo~n_ }!$RN2 ' (v <#w@)N|)A. Y_3D4DMԳPw0OvDI(` 6]۹Jf3{}ڮy1j?bLVMx>RSG}y,  F*{OFG%ݿ' >5Cbbb?Hu眑Pro9".0s_e@"UP_Q]{)gݰbb`E_1)t&%CYnS$ݿ:ĐggptG?%Td|9;??¶nGT" RϤ]\m6mEu{Zy]Oۦ[]OFnXAFCsl;D`7$5VuA~a"i19:\l"2QX7.I]e1|(::^݈FwtypLL.`jsYX#|vpzrSV-vMP+vXSڌuQ#3DLRh PUnL{7~A"ED#fbV#RafU`"0BBcRz_JQP6@4!;aO4`@r@"C4 hQ=WEgJl@jhH &3wB $.ۦtĽVg?VPZѯՉ]JwOJ+')5-C1['`S r P<:YRɟ?i ͈ xtRfuH+T5+( u-E{gΣ0+f 1j2P)iyv Cn*u_G}_]~t0GBTd̄bt/r.s[ zlf%-Ͳs @DJ)>WїYQrvNUo"DLqL̜SbιmDQ"(Ej6,A?N%MљY)E@ί7}I]bG6v*ZF|ݔ+%qnPădCF|&dXg\rOdUUlfC]-׫95A}(G'W/>EFbm)X7tT$#pڶ1@Gz^J{S9wL֫9k"BT~攉  DάdY!B0R2b\*@ֻf^ aL;RTS!"Zd&@uф dB@nt+ޚ-oUԿ A$ M'{TaPWCtat "!:32 "hrPq赓@vͿPxy~ZO|bןͧ OxߞV+]piJҡe0ۂ!S@ VXi#3@y-=+o4%|o+~!ϻ /mz*,L%OHJEo77volƮZەeBU()`>:*,q)d%{lcPSPr&ݣÛdLA ) ?ޛOOOaoy IDATz<"Jhlý EՌkעN LTUQ o~~mk'ǟo_ j=Fq0S 8&i=G!_Ozm#x$_]_<{Ԭ {-'̘v錩Yv2>\]H` ݯR //Nb\OH^ݨb U0o;4m޹AZ\ _:d^򣹋9z_{N=mk|c\zdoFPcfۅӃԥtm۬|yӥa\au<s]ERRN@9".'GAsDךּNDHD̄TJaff&&#Tf0.^dơnxf:9:Mn4gW⡦L"-VMSڶJgGǣςjӥR {*\=GMU6DT#Ej|<<ػ^gɸop0 q rNuzTU1&+ 9FpsN *hZ#qoķ!~ ?~?{ßSq>p9`xE7b֚v*\n.$(r0>9)Ȥ0I F KOI*@Vm-F ŌC$朋!(ϿxoF+rrtxj4) nsSd&9u7/&߸܀0R5ڭUE=U5l]ofbVˮr6q~Z7}]fUUy31at*yGfV1OqJ] ٦[%g۴ յ )ƠV`XכvӕeXbI֙y\ E@qdX݃wwtX:LVKO!1ћW4M*:R#t۶]-7a<֛x`DE-9"E|` PHT^JN%ӭ;w(L1o7ϛfT$vc{"G?l!UABH"7<&K1kQ>8>Yl\.;PEKL&EY&~9ѱREEyt(GC}9[Uݠ:FJ,e\ Ku5@8;}zqDN2fY!5+hdIJ1j$ŀrNHrk"l `EiZefg!*\(:_d"Y>'?1fU&;r/0~.;?7<g/f $0n%CZg& p,-Tfr0kq1k.mm7mmn;t>LB⫨H{vncC# QJ-$͛fUEau;XlLFUP.mj 0HJfT{ӣd-qWp*rxY5 t4h0Rrtp0gs:}O1ǔDI٤j\5[)8*|Gym˫q`0Y.%,E #j^8" 8轚)}F_8 WlC:4~Ȯ٩䲞t$b`Á353+ &eC?1)^S#Y$SY̞{lĒs"*R`JDv8uYM`zru ֛v\ !(FB) "谊HhT!*4Ϭ{8!ZEg_1h!G^Ἀ 0SoE1J׋ lhX5mF3QAAC$tH̰CG !9Ӟ֋awFv-"b_`v*BÈ77S5(Jѱ's!XE$bbLDagvܯtevaAHff@, ʖq2r.p_3=Ot8]}&/deY>+h|YTڲluNZP 2핓;J565B;~MO"~uR|UFoYu{/gB37^0.d;__ۄYNc? jg9\**XtyS眚yD!t4?ԵzZU O?<o|}3<!.N=\ܻs|1Llڧ*К}s\7֑?;:~t~v8d\W'|\8]>M`*ޱ10uӔ )nmOO&ʋd2Bպ[g %}QD" ̬Sf_fQ"Ts4tw];]frGd2gAnͳe@b)ۥ{}n[_- cBl)Y RS%՜CՔr.x8Xl׫]NkowP5!W]ŪL,g-pJU}U'G/=NnUʊELiqpԷOާ?>;۬~}I ;tΏ*Mˋj[7_Վl6mݮ,onsI3ͼv0ՓÃw7Nq1?@GR'GM0ňHi|gN1*aVEb$"5sH^8DmX_oWΨG O˧&{+0 #JRDB@jy:[փm۴RIg5R3XKjf:M̅|qc"~܇жsn Lԙǻ]sikd:8ISZv> Q$WU ft|tTx@7Y;Cc %4RAegɹ uNTgӦ f:Sof=w~qV(=@D6ψYaSغ"t3mmF%\K{k3igH&R)@!Qtd!!O>8]O}3@{cR"p: )!O "#^ 5ޖY!X߅Z.#.SUMDFDm˺sҺa%^nYZ}-G櫴JOeB7/` K7>o G!KFÉ [[a-|vîl{z7ܛ \mK);1 2y$T(0;F0n'̌QA%&Ii\L!"&S$T")z>l61g3O䑎f[ǧG2}}|ɋO?cQaw϶ۍeIs gݬ_<~d9]f8'TyB! t1j3IH)gPgǯ,LXy9PwnYɨJ`ˆ̣4Ty? ,TPqB$ D"R/6M]OLT}nԒj~5O'ӗ/_*@w!d 1s;"2SB2Q50"*&="0\sl6dY] _si_Y._l=~{k5is$)OLb}sMT͝DfMSrW۾*<_e m )!@b.<֫:8<8n`WUSm[Cp HǔZB5ǧ|btLDR$I0n%l>5S"Beb 9gG3Bv}>"FĮhRTՒVQ0DI P%jȀ[O+Rh®!z-Ps )T< UUǡ8TFB}I$3;ٱsR0[GV{! i5w`{j0vوZiL @Ԉ1 i З;qw/O!; ;;JKK>K˧i$^=\~7tv/{MUe zYbFf:(߆H]7jҿ `_|U#G8(AFȈߊŪRR2˕,}-'IM}#sBi\dǮaw]q9burm̟Cߵ7!ϏtssE9kvkrɮzw8ڏ~w֫Ͷ{?|ӧO}3"xm23oTjHBST3r?ܦ uPV]{x?ʻ2hb]dAE;Ofy$N|}8EN a$gd8<~nC5uŢmOn-~/\\~y͋ϟ^z?|?)|~}f{.aH[+91hţiN9Hn7?O][yDG n6L} 1eaPU4!xG)(f@% "XKm*Q󇯟],nY^7^&wǧ*8+{ ޵BU-] "ӨPH6PaLd Ueāo:Sirv}ML놘* f @EbR;IN"p 0պ5SVQO")ƌEJc `Uln;WA֗sU13 &`@F "``f8t4f2(s92̌ة*+t& ,ITb&o`&bH̜Pu*@ PtYZ&'R19¿BhCD DTD&D4S{cPh8I+PiV4(cO%cI;lD Uec"Zz 3@"2@ѨL,:ui^YZ~=\1\|_lxty^~/sk7]\_ㇼ(!.);G♠AEDFбU1F1B@/}7>#QTj63$<>8t9%9 "fev-K^Lw_ۮ{}yY>}p2Uιv^.;;b{vnVlrvrًgOW?jw!ǠS RQ~0A@@MD[IufG7W2 GGGmQDyCBN&HD>84CɳSAR,qN褯R6/eUHccZ__AG?+~zlk~囋[Ƿ^y6mjJoדţg>|~}eR'fRZv|)eqq9DQ^TI/> Ϧwn;>nӷ]DH4}pA¾7mSנBQt^b4U]2PGJ !YVOuz2*.,۶r6r`pN*\<:9nu]zO6z,oB"iJsf熮GIs0__8 Ԯ:" CL 4TRg,Ogͦ;Z:*Y%2ZF|6'bͫ~LEXD2O)VB ќrf 8 MRUhY.&7 3! ; ɥ"aZ!(sDRdL V:_̐ E ¦E;B0D3(*JϙBy4 +22ܬ+yؕ E-v/!"Rc{Bým_A.PLJ3 "J{ P1a j cKM IDAT2 HVս]=^WG0dJ~YQޟ#1*8-ݭ&(o׷׳~oo*O {Tރ /ޒ|8|FR0{d/>R b0zqƒ?@|pΪ@ 8~j 9z6]'b rٰ;9ݵCL뺮W=a3>Nr?[>hn|ݨfwԷlE$Ã,N~Y P5$HvܔW&S`.x?6'A[LYC a(E<ӬiX4T9BfpBBCI;3C%)^&}jPBLyJs̚9紋 j)o9·5HkZSnzZ} ]gOsPw?/~v,w6m]߿˻g'Ę& Y0c""~'Yv ^. bf)EIiqw)5[norHrtr"L4Tc,};2H"\i{&"CST0idy7 YF491uͤuJ Ir o~ };dU 'OWQ^7ۻ~k]iέ[^<v4>ivcOУwCv)ovJɸVHW۶{ハ̧!p4NLw3s=dh&yRŘa\IcPam4%E⪮R)mJ&8Wh#` Dܠ2QI sbVA@S%f@lIX`b(q=co hC@B$C"ff2䘑J!XݸGת MsMo3hBgDt4.R+·}<DFl@cv̔åP8&tD!MCJzaDld@P@,*izw^0_MZ=5۷H}#L[1FǬ.``!`i7dvL0KnH;y~zk rD=0#f05Ȓ$FD8$T#Ø NjW7o.Ƿ9.OyU=J=-<8 Oy͞Lt&L9ʪ1I5#6O `8&eb9`]U'ߋݲvr+UCT*{W"}w`ST3.Ԙt:YcNʄwrus|r۶DZ*s՘ Mr8%eQ :#,qW' I-H`{ lav3͌+"9nQh&#^,]]T#ZUR6<=]2;-4۸J8H S`&3(w P`yanroFDC ҉΄ESGpŵX^F7D2{yY) HB2j$8P~] eqoo߳6ٓ=CoEu6 wt) vj&]?>y@U If F`2,nDh>#z&G`IVM1o~ss-InH}l<}~Wv0?}'O>ČzB~q?m7F88mݫm7N$0i ȁ(΍qfX*Q0Kۤ 1aNs&Ud:$"," ޕ={O;Q\Ḙ*>ývfn7UU)I$'UeA[ՆU54?|CP{pG= ~yAWͮ\ܼ~i;'O~qT u3Mg! C4iE褩i bqZ'):۶s::F`fL5nwF/_]Pߺap~ZaXՕ?<<|p8 蠚 }Yۂ $jٳ4mB]]`:!Y툴rU76Ř7&J`qpzIpqH*Z7 +fwK <1aQLɛbۜӐ2 ha}ȵ]653DcfICԣkV$2cs%`d @ h0hFDL9%TD)q5_+?+:@ݫ `YNu0c 䂊m6J>@qƨ5 (X\6,UɠHD"@:V<!H[DRB@#S"J{3 P~P>[_)"a;__;?zJV!gHTG aK~R8BU 2`|.% cqLʠVl$fKsX3bNH%h!h93ɭ[ O޻w^F}uy_~cK5}_b~tn6Pͪf+:Ps>9`ƪ8#>>t4o#P5̖&K5vvVUX#0\]UR`*߰!YVP8sUWoVU0!dP(>DF$EQACzRR3NfG\ƘRj{_U';~lVlR͛JZo]qycD"B#DԷ>;5:gu}!Tsa>yVśvg{D?w3EW~TF^1 %/oJKc+(bc^mf% bDz(΃9tS"|j;aoa>(?X,xl/}Ǐzu1u8QCS6Cnw"mÃë*,q"]6O0Gl,tCDxԽuw0<7āp0R05ewL (CP U r9 SAl y'x&Znv1Tb^4{͓wW;jqy|1 |A.o߿[eY>|WXNbb.IbB$= U5]燡8K&¦j*ڮ57˛m7׎`2^]_g3&rȠ f1_]]lbL938*ۜsł7 =aTFR*0 3d"wuNk1TaۦSR7?U;׵kĮ6mRl/^?i`CEyn7&om49 aL3MnDF5Ra) H!1# >gLf9Ƭu`S 5cɤP0K3M{L9#(0S*Q4#ǔ9Cʹ|||zy!?(܎=%1& eT  T1^!D"w)X LL&=NQD 7 Ѱ8Xc23%f111o%]f]#[+E%?_צ#]lpg:wL{ },)Ah{c7;tJmw^rB:xT4Iv]v\p 6q UCl Js]Y3;kf 2Næm9Co#!",]|'?hNa1UC)Ur'l[ٴQ9ө o? aT&\^o~ǿ{1L*t4ݿgvz~}<Ĉȫ9dWLD)GyͫW&ɱn1,i3ɒ}_h_|PU2|Zmb|KSuDPinSe0P5>XavU.&7 9 CVE N^ج.˺g>l{EkcD]׵0(Χu6A6mnw94ffŬ&tM&d9EP"1"z놙SJLjUrÃ)!'ԕWI2PI*`FDL#4B.Tu@B.™[VTKXMSotaHxj'ߋh;|` Rbv}S_7gLU/HX;S< y'P2;y"[UZaO} Lf3aPSDJ1*H\O_Xv/׫Է燇ݰxuw:>{vg}T`6]V_~hz4Hԣͻ_v%՛/Xχ{~S LEJjUO†*%Z;D94?8?WQdbF IDqS׌X;!$0+ry2; 7DYDQ5Ɯ$`ErKș*2߻o*7`6_]ۛ.>7O Rfӣ[g><<6vsf&*O=D^\LbIYEιҔ%p^#1q˫u߶vw)z޼x3B}ߙ!,u)ipfcrⅈ$C9t+W`*.ݺ0=>UGCV}MSJ*Tb׵L-%GhbVjv||ǔ!MնNxjCS,M3#c.JUUUum9%3mFMRbq^_#&+|M3 zQ#B1q2N"$\ f):BfN&!' ]o\N=B#L9r Tmf0,=JDʢE@3+\ɝl1 Kw X4F D̀Zl4Ty(i-(Qdm撺-SK \|s;wJ [afrwVqD`zԘCy2: 3 q>]등#&fn֠:-TrOzhLܜ澯B#;CKДxL3dV DbٹiZU5hޥ~;u@f޹@ h//v;ýÓӓӦrܻ5xDn u9@Ea^\Yڮo&@ۧ4Y#1ҬbVR3G|p_1Rt}v;@U#.vMv\*#$pzڮi*SI`Àhc׵FI)7ޭ^C^bM$I3-[e-]յ`%BH!eF /<2ᐄC@ꮮ%LU{y>=9vUwDrOs4MbMMiDMfS (UĈ)Y)j`\Xd`pHT9j*\m߼$L$y0#83(Gvl*3a+98+c "1hFfP AF(9X } IDATpв * )I%^2l3t@ad 2#9*9*1*`P׌s.xd*V_40b&dDr+=B3D`F7qM0?# elJrߝbݔ26rAU1-:JdqCr$exBT3(R0Ĥ`Gv~Rڧܙ);sJh*B)峳{Jd*$cUԕr9XD"yR7 M'Ru=A mTDbECF`γYt(9& 2PM&"0YRB9V~WeBU9]@/(m΅PZ:pdmNUOK@ie6׼s7j p<B`PWXy*$(L)"2Pc u 12CCTPQ9F0F`C`X(EHh(9 u8D/vֻX _L/8Uz Pi9~` &@0Dևn$(p)nDUI\\] -XUтsqGd:"wη>z:+AȠLL7!4,&ӜS6. DA"!. Q;i7]wmN]*lH|bm{Fl CvUkGs&>4 8l*}?~vNOޓlO|_@DHO꺝?>ZLfSϯ)FmN=Z漋c60KioJ5x_6v9} t>ssC`7i(ǎS=!WK79d亞c}}د^eE"dv}ߩ(Ř9fy~ =3{ )9pt:, eU f$DU hlFdH {l DZغ1T aMzTԱ9SɚoW}XUU@ ;QҶ򤱪;q,<.i<mJQˍNӇ#bQ`b}Qܾ۬wpyz\:Crqzǿ{ߛ8⏯_O?_+nPr|ыTMLtx D !ϟ^xr,{gg]QU9Gx?mj\{+<.$ϼ;M0c9&0B3Ӣi'U `(`Աs 1KDQrKYF("&C)e~sErwބrc"E2uRfDT7g|xuW_g!fÏjҶ:ԏ뜕3!Lu; \yWː߼~w!n̐jC}}ehkGx**}7m6#b BaRO8yINfx>]?w^oEބfq[uf$PPL3ZS"< F۩6Y,&60sY,Sّ23Ϟ8L拫{fb^;Qӳ/>@7!L'uهh T{fWuU51l"~'Bw1'&3g6xK!D}ꛯONPmǎwf$CqM̘$Xک(}0nHjy3Lޱ)أf9i&iɒC:>>8;ɴFͻY1ơwTn"c&'6=27ME:ͪ9Sp8;lдIPUmN2VS!ft&Y,rOOEe!J'$3D-Y٘!B<&ΐ#VUᑙ1(C4"Тt.oraQKT;*`PJU RQŀ\ .x1#t h7M8VM@8:@-ɸTCy n9v+df,`T1Vm pS(/]HPb}mQ` .:fV<~&9"&U 3zֻL?cg[岚Of;ؗpTF%Ea\?x^#ML >B7 E4ڹdfD[SrgKf!1{FCR);66͒ z&##W6} .̦s-!l2yru޽I >v\޾_&FЄ:t7q#EBN&MӖ+rN ҾOm>`LeͯcLC'sTsndz{``*TwHDq*#PN ;"RytиOi?m(7}NFvׁ4uD0NLbkꪉYNn6:B4Jd5)ɤ12"3j^rI!"zESC}t1m';e ,u[2|8o^pG=,PQr{1&nXUUQT,9ڭ_}6_z j 3P#@$3 Ȏn62ʇGEZ cEHe7,)}d&PxfHN;J# #f+E)Ch:֝Y)( 'S1)T-xo/ Ÿp8NP-.=h%4DMTqq^ʖvԑE(pH8$Tn|C2/1f:Psށw7?U*,9 z?~`w߿v Fvw{)o?atG!n[˒{Qդ[xvzCfҪHּÐ2ø3i4bDNDB~;Uöݏ<=zR&4xD!H^uSMLNTUr!PW11sP|kwGu4 l7 " ΗA{,"!Df}01}Teu&6Ә!f~fjS>"(dj$4d")J`R5]D)'&'.B@M*c2~?L18v!>WUE8a6ow} #oS]~6vͧG'{F~ y& }bDԶJ? 8iGˣٴ]~!)*h"Babatؑ|Q0`h&vƌfD\ 2-d\̦1b aҢBA(f,vpRۼcs MjF4UupbeDdDv(8|ʰ2P_^S#ؗaDycSUrtE!)EJE*i̮v~e[% w˵QT T߁w7a5F7S3C: yB!0 :uKhV{[ sK8˷Bqo1!rbq|{亭v?rtvzw;șsju7Κitn_ΦӪfdo_ݰ1w20.;C99 >T΋0N<t2CbTTm\v]W2f?=z|R{߮BSg$i>:T S4\W..͞:19mcD\);$i0TBlUIʖPP)JxbE]EDrj2uP2bQsX!=G?ooNgٲ_wѥ]5ٳ?cQg'G 9ӳۛ{CM=#j {"}X]Yrgjzy~U.Y58ovA/9ۛ|qzrUը18Rr!;2uz_yGՊ h7D a.1wMkGaHcUT L7ìn[gSu>t}/dq61.xUm.@r2zU#"4Lv:oOIySy_0Ę$}Xd6'ǓnؔdvUw5f{x{bͷ0tL4m]Vfz5rUZ.2*gU6ߙ2hZ]\o~OU:t"+bR0@IQ!T0b)3â2+ʸszD|`2Ӭ#:QsީPAȒG,{;S9 BDDw KTDTljAtDN5)\߹ASD2 X@xw. d"b,sl3y8"C?^qK] +\=m`RI.>#C@@.!إ80Y|u|/ ;n&o L}>џ~]n~"n2"$INM @f|)؃c3P±Ebq0$@x^m~B@l3::A$! 7jz:uqO~2:vͲ C>x)DI>ի-c$鲎ᅅ4ѻѓ'ONN)wm3!2xTQT {NNv-d+⦪]!J+@(k<,s1` ˀ9Pay.vMf2[U5\5of};i|u<;JYsdx<˙Ug>8|8BެPUpyq|?>=?Y(b>zVΎۭUd( fl6XmzvyM*˟x7EVUUUkuj}AryR{9GqFav#i4 sjئwNk+st6?wr x0^^ng7ZΏOV7˫+j|7}cO>^.CzX]U"Yrfwm[缙/y2iڪ)ɉ"1;&IW~S|:5cLq\fS`bDtD`ؽi)2 ("0!mTux UpFG7+0jvTF,Y(enRT3@H .8bY;ix6DLLD3l1'`l:_L&?#BsizbjnIrz_Bb=~s_!bTgY!o版Ih1oCUe/^t:]o7/_""fl7^MιvO0#8}Y>m;P B$ġU> TUciHzzzn6WqŜ Uޥ'̍nMDl6̃ 0b !dm̩mBG^ɾO Đ͜!@9*L:΂U0#.+%n[nMSJY)~i*v;8WKK:i;wfh`"M+=crAwf;Nsԫ)tS9CE$06+:z& X)Uh41uyDwe tLr;x[/QU C\ cREGb+cPTK؏0k`5GBAdUTf)hEUCD5as0T'q흼Cp|xB? _?}fg8FY-B9p ƌBnT:NC7@19L'Ϟw;j 9Ƀ7Wg%O4{6/}rp %W]=ڱCTU41(֗s*C|8`j9 InSxwsmU=Sh*"KyrTjL)#ԝ7np$YLM8<9ܛ h&PZ Ǽ1hYrQM%'3TPOi޽W2>x0e H<|h6[1trIgύ;o1TgǏԎ_=?g>$0=X,f7^D߫ZY]3s?.cDR嫗C~Ϟ:&oӧ/'1~ɫ777mjU]>{2D4N&s$If])(9ɉZj'H&!&ih3~1m6bzrjĎSTl>Cr. ]/>VC"p޺~sD>,*@s̬#f@Ed*#R151+&r%ˮxs^̏fa~v۔ cH9%D)'!pD4ix~ܕ?9^ U]W [֡n{_Z}NAL= R3TɄBhw2;8 0Ҍ̀ Bʨ[)K+cI9ޛas`!͠$ PR!(sHCOZN76#nFz@b6(<8VPum]MxbRHvlDJ9))t,]'CԷ!_umx @M "*P[Om S4ޜJwJa{p\`J%o+%6 ,CLHF_oN D lV-.o;9/G߼xqv~ӯ~)\( Yct)8@I Ԩ+(QTH9QoD!Put6?9wj@X߬y1WŇusu~nɆf]1ll fLD@`m];ITЀ9S "F#dMR k%'uU5uԭ%u!).Wnk=_w}wj/Ëv'L9؛!\,Wۏ]D 9/^\orI98d_րx2?6mwضuPnfRW|w͛WWu]m6[D*DdYՌ1Мj2V*q:?C삣}퇎<ľs0.;G^gfUbV)a{qȹM';oYT-<_Sm0e.<:d!UU$AJ$aHT␘DRЊ4c*FYng/cNڔ0s\%K? )G|yIb&1XwU̥Tѧ xGi0nh0E.(:`Drl2S2'n0Z0 L g#o~J/ HGoA~Y R=ñ02AۂfP);HDTaV>>^,ϟCN j@شm,#`7}s>ݬw #u9+ɑ0A ) dX<99Mb  %u٬ͲdBo뇠VӉ30ѤR0GZo7%XUWWoo{vM0$͊(T5K&$ώL>8W00 ȠzWQLMǏOB=L狣*\#fv&fuӧ)WW_Κhn6'!4?_ys3Mٕ&9AyU,j*00(Ar YTUm 9 nHͺ릭cN]dr;[47{ocW%"o͝L.Ek*2e=cdKjuU$g.qΙd2Zw߂mCKL>y}B6 xTl]O{7  CdvS'ue$re5NbԮo)-D tڐtf_vɩi HMfF̖n-N<ЮĔd.Kb$)+) f`RF֨K戌FajNc Rhb5d4c·w ~^U6j`\9hfCrGvH"Z!af[܍˶;Fvv3Cg`BcOK)EUQ79` OUsшc/5ӱFڗ 8+f*DK|dǬ0,/evy= yޭ <*2"%:?KE)N0܍@mlow<(3@ F```U& @1)bqW0܅eۗ/AD +5uӦmZWM{*n֫f. UDkJxOf8@`0)vEw5|c&ޭn|]-fy5}$9ھWZ,G{U_.)ŔޭnBo{pZ5}w׷)Ǯo'u5c>T{_UID+)g7<,vhd.\v=? ՔLGIrՖuê_$"n[FBD\,C?<<<1i/YT`l&y0;>]3 L8_l9?䔲t:=o˽j9\uBķw7ۋoۘm_|Gޫnn./^/2xg1;aa6ijR5lor& ܭ,Xr1[oT%x ?CMb絮i1?٪Pݾwԡ﷞kG"Պ!zc}y_ehR1BNI6 @ Rpu WMY=ۍh$9u>WSU7En5("*v1yRb0okCB.mPbDл0bF t 22bU+A0to-:>3[ ,!rI".M̄D9K7dEPGcfM*PcDD<̀lHJ08 {9b0"3&UQ` Tpi 1z+@mn3lsfh31=>N7jmƁ%ʟƛUIx(Kx)Q<Ơ$ RN~[; wo~Yv#eQ @ .rAD%fϮ*9稂 )ɐ[Im2ai UwCʞʇ Tt]lʓw <j|MDjjx1nk&J6ǡW5D"pRHiMąh"Xl,")l̝%`EMa00"N!9:0:~ J:ĝI<I$VPqo.}k|I`& э[C@im/\΢V@M'o;ɮwx%Ǯ8rԸ A]!UE ?mBೌ6 IDAT[]oPweKoݭ`Xŋ`D~cJH jtH)w# FCNRd!gϖ{.+A4*r~uYF_qW@h}.#3Hr:\7뺑6QPYydӡBW/_0=8ƞbڇ9qp{/t]ez膜 K*G33+bjfUhyT`<ݜìnT3j ,Y$ 1i ^zP#eUUMb0 ݫj?_}M1*nB, FY%EiKG~6i6幯~CTnnɴ^]]Slf\?;=y 8[΢ˋtFOWnhw.0nuh>||}ڿz%,f'b>T!jwW9wLWz_-kLg77灐Mv LU]^ohlmto~ j2=L bipK J52@˃׷* }Y̧0i$'"T9jD.:GNDF4#Dkstqp9خ"}6b|v]Q%zBMæn&1*j"ޱiDER*>b\_#bhLT Ĵ;"R $2vaˆ *%w:Kf8!TBNBeW>)"Re U@ @f%#"@&Bs/1{Sޞw/"3 T@FutzWLD" ZؚΠB!ȎUS3cDgX, \' ]@MaY%;'KIK|#"Uށw뷼~N^v5cw/ @L8UF "f`nC\AD@84& *b-<٠՛t֪] #_sXJv~.{O<~nMfͪQL,yhn70E#@Z{r"73e4 vYf`d"ƨQ@4l~G#Pbzq{WW7۬Hy0?>}|~RWnWWYΗAbNGpsw}`C4;<80UZس Up至7o<>uX*飦 꽧O[o{{}z}_`A7Asq7w7WzTU,9CP!R{sLH:\> .a 7"11JpilBհ7oYSrR:Blb j^,9e=fͱ;ьF{UAEڵ]'9aJi:*V5릮LAs)!:0l|p(u|0В4upCc稽n!$ .jk(!y&͙gS#ܐ"sL b;7tрDQd-Iq@rw@L P !*7_GhHx0 UpIUR 0əYLMDBUd*1!;o`.0#1AہӝFtz]GZwcimSp y of&ƭltJ9vdA)2=hX`rgi%. RP"<.8 n1”_ё0_vt(br][; 5 Z?ۄЩNDzS (w.6^Q?79k+18S@ x(jB gKQ|X"goq)ˋ13 O>އ=;tǏxr{UrF@^ &MPO*%[ad?u=`=ΉH^\KNOj mE0abTu^pYG)ós֕w5g`dTRJ$v9NF:AD 03Q˜Z$S|U/\·4'])pJ@Q@ԬDW ԾZz{mnof> CZDp=}qE>{޿aT_Uf2'O'NO>njmBO?D7yvވl6=>9qUu\lC;|+_ݮ{?XN^ӟ-ˋ7ww_}boT^Ó,yL../S ZʹE$Rbfv{zu9B1Nf8<6 R{ }Mg9n}b(%55 ;lis%PUɳf:A65n!ivO%Ќ̠*I 9 1 ĥ-!qhqMU_; 1gfV>(UejCFۛ"Ƙ%@͐) HB0Uu9}ťN@\? I#TM xT}5ȚAIMEr Q1J[͝bj)Uuqɐ*tD&Tޏ*Pz>F+ڥLÎ!E$rlmW XR ׄ<20ェ 3*`Iۃ1~eNe0x!H"uO;:!cyD4XaJhLLDn#o"`rEfH;n?1gIL7P8:>}p:ο=3y 9ZNzooכM!g1^w}g?|;n6볳ooo_~÷IcjzƤͦ|9BH~:m &;6mumm5q:Tto6b9s 7,ooo&MSu1Tݪb}N!D=joMP-12i읊t}WU޻葜Ȱ*ynvUl$KU7UJ hNvGQRH׶xs}~S\a: }o]7Ta٬n;QUtG2;DN99GfLD(xbd". >~r}q&ũ``ƈzO aE,#dT˜جG;] FW AB-# (q920q`γe&3t*h@T錖 V0AYUvz P'v T9*b IA"m̌"XX+U@݇H#$ڥ<Hhtp|}-xWiz15KHI3MqֻQ_g_r5g?9m7_+V`XMbJ#;}f KlF۹pĻK[h&CCtb&A3bM/_OB $P",1 vvC?>8h,n9b7Į-0]ܘ) 1}ݷ߾Ǜ+ x JDɳlR:ͦ[}dS?裿ꋰIt1R,CΆ bLXv>FOsT0bRPF=r OβlmeJ)A-Lġj-.3D@5:TY{ H9Yi&S&,1٧?ۭdADD*vãOA{D\}ΜG· :tsVi3u9׫̓kIWUutxhuUCpoH'U7v%ěb\.snz_b>zߩz!垙RL%#876)&"FwAE 0e.;Ɯs=MӐr7LJպk+4ni;?͖}S\QC`0s'sw @&ff說!e%[۵mZ.*`|Xo:DSBt6nmC4gpv^91fZ u]lҤlÐ@!}b#Ąww{t6o./K1!ؗ猴*dcQ(`1*#@u4$v1!Xplvb\`6,JL`*)& ;&b.;ƱrAQxo+tzd)=@l!NU?HU35.vFCDCFpP:Rlcη :J5_}+8{w]HGZz,R;n"D@%7[oc7!-ѿ `8Of% $&@h(,ȲMHU)% qf{G1;@`:pD~ӼZV'$ػo !T,E L``QBSSs.ϳ uuE&4#Y+i 418IQ:`D&RgbT/?89"uԅ~%8P, >>9]e,) 1#!2X=/Lz2 R6(xtn1Hޫz}0 (:GLʹ&l!Am/~9g+$]癉@Φ>n6|_~ET珟|''}f1_̧jsJ&3oUݮ7eU+G`xlCU*86CofX*l7Û7ggC?{ t2!DON;%W w 6!#,Z9\SٵWUEHf"K)׵b{9jƤw% tRWcdj ֛P;&M5$$`YT.onnE { $"'U)i"|bLźp]O:BdISmڭ5Mhf]eCN}Sf"IЦt!=<}|u2y X9eH|L&"rNL7P5&Ɇ!:?Q f(Vv<|K18UHhj&#: v0%DьDckq8ӎb\+R8#] (l g􎊊܈ނU%逻Lv+?SHKo6@&"dT*p1Ew4@z.Qe@%Xw^ p|Ax5, ";ީd1<ݘ^w􉼣}߭'v;v=џ}XLHDف[U8>oa;0 ]Djc$ʨMyqTgU#31_}}ٲ۶CWO(T}NȲ!C 7C¬Lwffo7$)EUӟ]ǧW;xkxo.^7kВ 2 c>գG%9:gmH5g0M7b$gS*veu*Z,@ #"wHNDsD: h&T`XYsf!i5u&z^ sDUwpxt-w]+y8ᷯ~hm,7WM 1Φu 3YJm{|N10y% ֡B|4դ1&4"8 2ݬVm><a$Ͻ'~jԙl69&4$Tf^2&.o.6.>86~: H׵^ש`Q+! l^-fy"  nRZ!20Mʞfc*!f%]Q$V3* kfh&d@l;B>3e `l!bqG\@v48gȹ1؏va [dfEk#"|ӟЩ)!9 Pzb= {6AVIyňh@, h @d@tĢX|BPh)ݝ(p83`3a&r;HM߭wm΁?q=[7O2?/00gd$v LJcx  ݫXbt<QK* IDATk#"t .c?=g3P2M3af4?|M~rr_ǟ|}swYJ2ѓy4tU!ALYRGfOOummKq|>zly.mBa0 J!!MONiiʌ0zG_ޭ&ۡ{8Uz)76S5dl†8!H%UJ>aC@Ģ]%4:Y$bN9#" [E80orq6&BQF~ M|փ$Lfbm6b7ۓ3I-Qlo:#tsNQ.8Cjf6͢&0Ds n7wdztxќO~pqP׳Ր}p0__zthYe<*Bۻ!b1oMM1 M]#R=|(ݶK}&D(f6 i{hеiȱz]4Ůo)zv|®/9몪I"gyH\n7wg/>v׷{j:tvخדI+IPͣI4PyJI\ߦ#0V&~6x &mш֛곋 >)T烩n[FNgf "{̤&fK=2QMTJ8UqΈJ]P2"ج 3U?`l(aΩ`JL(%y'c"U+G'Mk ޼=ݲA?7ۖ!0ӑA@EBBg ;{dMq$1rĀ@@@Ml\c+-*eV($ۍv$ɇO1ǒc|L&%oQ~fYSFRFcKqJLH~߻]%Iצ' /Qp(bB`}@`N/(8P;9Srj1/B ɡzfE&zy>?|K:Uj9=8:?<>G T$d"Yd- wk*k7̜(C%.n.ZIrnC |/~7/&3+n"9癗lݷvsN1VnYmR!K̘BRWL<.x9 L"QԬr9P0 6.s֧?z޴̦|>_m6G_}掽CQL{1 f0D&C~ŋOON|u}{{׷ߝ]?{MUеޛȕ\gVH6^y>O"exzy`&2of!¸,3vv~F"o7 &̚ٸbJ77/ cnn_Z|qdﭶo=#;6fTXozZKi\ȼ\-MYeQN $ɡ(KҾF WA4^~1ݛ"IE!Z]ӽ9Wè.%@yT@MDzY8d2uΕݬqu en X$" 3"h]PL եEH]MUg6y OooOEMQ֓ibU">f2oKDuΪ!!B1f0섭1%du}&+uАi I~ہ"(HN [k$Cv*0D&G_&2` "&:t{jT(9QD5\Xvc,c@h3^ (~ A%!=`y v@h1D " L9)Id %)kVQDȹװS]9" ";3C :?K}7@DM"@&sj6B5LDHY|.?5/߿F~jW Ht%I#DݜoW1t!g~M2ड7o(wpZ 8@7l_?BY<.bVB ;}tG],o0 )AԘG"X,fp@v 7o6ibYU1 N}:@4juZj J1QiͨW7{8=$!&z4Q@$ D`X"SY-5,ɬkۤ$J1t(p$A<0FqTOK[?<]^6qE1Ο?lVۮ}TRץ5UQe=L[4)FX=f!1Uuy~>nW+$!. fY,DS ~_tJ77go1 A Y5WixX|TGe5+xIHf:^um۶ׅ"10fwI`gjI"4۪QoDʥC\Q>LzCn()x^V1k[T>I=*:\o XG'77u];q"rJC[{LQ!튈@ǬBNY²F)J[գ6ƺ{ۦ3R&Sc,l! 3B^h dU%(TDG *[lC)ӻ"bWG#%CІ4SʛY593LӎZk MD`xD,#X±d 21cNC"෷nTM$jv@݀pGf`wYE\- L +*(r>2(;XUw@)1wy_o @hTYUe6Y1;ĎF 47T3 <<4) Qaa#v[_{EXwH:`?#&Y]"}0!K D@#08/x.#&W 4LJk++B_w5eG>wAz|θrb@Q\^햑$Y7}|_zՉv9Ey} B`W]߃#׹.%4ै&ᆫzj M-fa&Fopvy\RmQcD>7ח㪞M&׷LJ(.BRNJ4,&D12uE @ b," 1AB<RlfӉ+g/_5[QbfARbR@[ThtI&ޓGGEQn֛I5^6o~bل ٴ07HRL('u}w[tY_|o>wmoNO ï~z2_y\&QU;g?{eJl *\鞿x-{˗PY{ãx7}]ݸbtkq I~YNrVRhX\Q]i zuU(mXofb!bEbҲ˷d1$IuGO^>-뺎;k$MaTշ7K*!&DҾՕ4}M'RC\"d @Y#gכO&uo4#7z Bq.+16>pnҥf(ZTGcECH6&TXKL1aD1G]a sX&V1 ~%QL]Sq PQ6eZ|UU@@٦J$Y'7P@ 1u4,ŜϚ#vJABt$Mp9 "ZAD%! enEi_fo2Pi0~PJw!ED* 3j@y[qc$sܻCoP°OֻgHaw4{&6kCܫ}g4ˍ<oE!p8Rxբ&&*tl IeMfrtiSimLAw^tT.CĄt2S1Hf] }Uӳ7o˷go ?YVm]]O7@4Eɀ%Z3kH;$̵)Nsm71 "(0&I1)h}ؘC!2DaRň1YIR8]oؚ=@J JO0JV<% ^ 9. kEι>w#U}?H%_~dG"RWz|ŨC"pY&Է_+ctgώ1xcUzߏcg-WE猭LJZn<&=>9=}, ޼]jTc7~GrqPfU=G{9!Xl ރlKUkBL1*T gع0ģSI,&_lRnMX[f޼i x\)6[oիe'Gb6hl-b=*UzBI6cƪ|(R5z]߶ I4RlII4*lY,oja ]eUJJR !}SH {_ŔHJUG'!7ocW) b(0)!6Bp8&˖c@QM@Mg Rb;vD3bfa A-n~ca Ƹ2"Qv(՜,;. )WmhlΎZjrk@=G޾*Os 24 &w0Q>P/2D# 1&Deja}X{}^A~קv (R"Q2 )AL:@I/;D|Dn9Y`ДE""!"qEq2[;:z|_m7#& I'\\\F߶mSƉB"UE5wc|ɱiw!Z/W+ \ǰi[!ˏN^]CQ-8+44 jcFca,Y~Դ;/"&-0RnP1t}U1dCDXIi,2[k8cJQŀrǐ0'դ@!ABB#[(C ޳()h2t1ZWUSzyۃv*ho~s*Ř^]_=z_וxo_>M{3FggIRi - xj_oRLn\?o~X_.׷LJ֕(fo~۳/1Є mӴm{s<:MAüM(C ,^"6r7"Eҝ S4vekw%$3CLLLl""F, ^%9ݖNH$" .;edw3UCDCgɠD p%c`B t#O8GaAU/MP$$`7/yKR!0TPD,^?^+>} tWԑBKdډB*9u 9*%a}kFlOc=m[ @*a5/͛%ł^޴-F >nbSJJ)kw1Eѽ޺i}@'>u߼ߏOc4;{=qQ3_fX^^ ˳{HOΖ岮Gd}~v~tx( Mryu_~}xxۮkڟ?xA63֐8E]Zk8׻!c$_ wD< @.@"ʻ$/!f7~g&yo!ҏ(_rG7v>xA2x?Tx(s.+ a<)8D-|+1Q< .Evݻ9> hoH*H )0ġ|* D8&P̎=J軆c^krqsم0JWD&UݮE|vys]_+e TTu'>;B*P|TVv}uyrtt\;}jvvwlصo{Pr̳J:ޟi1?Կ{׷eMM@RkmȆ@ P 8rhԖX:tD|&L II@Q5Iꂊo>9PA"S2g~ Uu]mFz4sUq~ps{.K5Av!TUC'>{z8lgEYo]i몼\|G峢8;Çٸz=/EQcSHWW7'N?z'O1t:/ʪ7t%E9ә!^nDD2xV&" հIvT 0J}Lb+ 6Umg&f7LSXvtIQY"IAՒglyK1uOD\]f]6DlzD\]Vu,)1hoz"Ddl5`}@,2n-!k 2 ~˟>Mjf3CpH1 ]G2SH fUE71U(}yPfXs?xsk0(%E@`αytJG4l(N"(I*"*"(!HiV5Vf6,DDXTBp7h H@vEF{f!]B.bMtGP`ȡ3@U(ݜqw 0]3#jfN:M䜈[N8(U IDAT̚23̜G_}x/ }W &H v4Y3)IL 6y DȉlG Ouy1>::6)#BU=:8]Į>?8(bZ[c{}ܬ Ho'娺]uI2 ]n0 5 щc̏/߼j{y!(kެ㣛-WU^ A #k BaFd& f~b}BPRHIBJ!HRQ )dI)jg-ZXCBL+*Bڇb1UDز4  cc 0G<87Og{g)" G7#Wnm  GPף{}|p#i6;[?o^>o}gvtm.G7o჏r{XƘl=179w||TEo~]ʔ7y۶ֺzZ6۪ g$΍ޡxqMc3ӯ|ߕUa-VU^oV"f4lGe'/.g(gUQ8:X'ӷo_L(S A!5ͦgjl@;eP@b#"ڮkQ=Rcq8cL?;7 Z7b^euxx"XQ6D>DD 1fDjLbX'-XCUY#qG5t]C%bW@`G TD@l5qq1HTwo@~x7Q%1"a">?O P迿xU С*$!G00ދ 5#M *D93oח/oPJ]%%¢"f:[h`*l6ᘞ|O=IٛLFBף7gh69|!]\D>ib RO)}uVe^@0H$ٴmX!w`ε@R@|tp_ ǣ%cr4Lr4+ȘM&{-^%[ѧiZs7bH)!jJJ N2Bhmirs @IHR%H"'EvH)PÇWm/쿄~O?8?v۷Gג:Dtxp^UPa2Huӹ~vdW|/? _U~^MGlsypaUN.]GU5QDUUMfRaVlvzT$]tfwpq@g.')fiچ.}dS.j&4rKVR%F)٦jlealoEAmBvaT9k`Ns<"lɹk1iZ؛Ն6S>Q1H2EBb0`ǣ!,`TUQ0I̦ˋXXW%(5ڢn1bDQFCGJdcZ}2lRa= 1N{Ea˺jnwF4v+9Earst a#QUSL|n+Kx"WFP4IB\N*)hX4Qg)01g&۱HE9!rH} 58 wʆ;&:ly^\apF`Յ;.(1e"\ 0s7^ps.2qי%QlӁ B>h>??=;_-?|֠  i@LC3$FzCD vٺ}2 vvH R6aۋW؈XĒ #0v9͚Uv}ࣳl//LBL]Uvr9: Y45-H Ylkx<Ѯ UY[jAm&KI+ M€1EbA$ Gf%9FB(ҫx! `H1DŘ(( XK"!IyhXvm7ۿ67o_/WK|AeK@LY8<:19j_| fWggzi6x2ۛb^:ׇH\DEQEL7͛k>~|(>n].̓^z]ޜRfӓSzcz%v{b>mWW!fdGضmP lĒKB B:k{ARHRk(bЦ#lZmY:W}|D8C1(Ȇ K96}c,U@Q!R{h{!JYe]גJ)1awQ5 lG{'}ڬnV۶zP|6cQDˬ FB dD$x\fD˪}DS5![Oח DH2||Fw 3$TS0*d# NBy$H@UA܅r7q1HJbEhs9,Β!$& x]7Bm3 ۦ .qp0D<+y{ZU47 "hvc&`3(~ AH0Nɧ?W*thnЉL2Ի}X{k?绨i?{-  #IIs#;ǐec]Q݆ 0/fP`PA6=Z-bmaG?/ɚ //.'ӛ@q4M=xŕ&}prrs{etm w4n2[W-,!JMP7yƉJ:l7B.9kj%"<mSU# 1 s9EUIJDr8 5pA2HE}!"Iڧ$uIU-Aۃva ]pmɟ]gm')*tu2Y\E)2ZcmQ*awPO&UgWWx2,Gl6e(%&fO~MLbͷF'O>}cwz2Ҏ'z~Tx$"{gͫOϯy6WEY߯&x1&u!tEI[p$[BbL7}᱒5Y6UYľ;Cv}Iix? M3۫"DњQRJȶ.Rpa f$1&&bgJ֨FAȹh< .\HE-eU_8׵5l-!~ɗ/zYUYeM*+ʢw"}2L:dB " ML f;6UQV>eDEzͮ/N!8 $ɠCD DlDQOAnGCyBYHA12P ,ID4gƐlg-7h`<M8`ìv97cRHdR=pGMN8 Ƌ)?T@s =F)nX'=RqP;>wX'2|v=|oɧ?_MfHޮ;=9]5 g!k$ >[̫ p'Ï;7uZ2/ S1`RdTw*#zU7}J2evFMă9Ma)AiL&HS.L )Je"B"Q ^+SrJn 3'T JhO>\믏l쬓*xVYfS^=G~?={?_\l7u3u>AI⯾u7$Y7o/^<vkVwrzyuyz"]]/7oW׏?IM6{l^?lǟ}9Rk1ƛٳg?l6k]}J 1B{ol0Zjo浂TԒ[|0|]W1x2l6eU nb{z|d٤ОzӚ) )cj*rtQeFu1GDY7Y|"vT;l۽iѷ@( c -KUQW&{/RMbAb 3C-L޴ {"VPklYVEc*ƘmuJ RҺ[;[ gX$ " 9 5!$ED$ Ӑ; oqnR<ͺma18@:&"P$V#e!ab_"Bb@.*:@a7 wO$ Ska"FAӎU~.;B=[vy)*;Ι (@"Y$?f NO) fy$%*$̢* <*Q;>wX=ǯ5`0EL) ^ZMMRxWI% g0X; * I"Ve̔do׏cQeQM#ҺN=e&߃LJr?9x;w3HVb"Pk-q9/_|ÕC"AKz7@l 7F+'y!jpfZcc=ecdXEXs"%H 6eP_yA0(*FT(¦.!HƠ1CY T0D~h4$EYvor Z˷g׷ J4O?8'>N'|1MgӪ8f ҤNJݲMlrOVpuuŋ|=;?K)]]^_ً̠0/B)aۦ-GYof\WEIDo޼lo.fzTfg I)DQ(ut pO;O4 &g],lz\oZWVxzy{)RCsf wzޮ#7O%F dwD}߁-ʦmΦRJ~\W*U;LTC}qE\mG Ah6&qd"DBQH0v2aAAE`<*oXRkAaC@c  2JJl:>%q={ ;*2 ]5ۑnpIZPu @|ͮ rC7;2ww#3UU@db@U$20˭8NwTr6\f[Ts['-;ݞTndv7{& q$SP.}X}#bHDBR6fBE Bvu{ L!A|&םC]0Qc;} 0(ӏ?d1?ypo^IHWO IF_mnˏ?_A;]^]G1@Hb/uħ(OO:?[7 QC\ܻz?X["D t̆(*kLRĹE]O/oD tH`d4KmTb]Z,QHڪ1u Bxj*[qQSP@ɋbI"E(EeB1( 9"AАߜ]O?}}˗e'S~5^`VClȨ._f>WӶfw M$a͚J3bHPU]l e2 iқ46cz̐Mr -5rF%Ddp+CȈHoK] ]돏1}-&ݻwysFD?r>7UrZ|Pv]䣏b^6:(bj2iͶCLTC JƖ EX_~i|,9DMǏT#`FNC q+HR)uOB;hz.A lTDQIU@Du}[I8l]E%teҗɃLZnMUZl]{vΣO޼| SJvN&tC>ZgHF"SV%TcLڲG4f dR4H h5}UEEұ-0(( N׆ B)*@@")HڡfhRȭz-EBȔKK5*2[Dd 9"܀9Fw$?w1)Dn{GѝTPUtƥbE=J 0Ʌ}pR`B47FH3/.*V2 ^G.=G5RTU"#UI`TXDUcOӾx Dݷl)8@&t Î83՛Ƿ) :t'@o$I ) 7zѓ'_xiP O>|z#(߶z;v֯V]V_G_\e8LW#Ou qY^eQ -jSlV )0.ڶQD4ֈHLQA cLጂlc;պ(C?hRbL $IbBR`Fh DVEb3~$baKFf$@%B()lC9W@].?zxb ћ7d4Gw{7WΗãtwCE槏DI!(ZVYU7~]4pc^ץiSo./P9w}}  1^]^8;;}puU߿bOܛ׳;u\)17^w{yS7+las ![WN˲/޶X:z^_- 13Bfش]¤ෛ%3_̆M:6m6$8]70)hlU5T`pFUvcQ)(,JU輶*WvXU3 ¡JbI*mc! IPR A "c9PmTa2avm!%}o4)UeVs`RPEl;c@Y!!!2j2Sr%UMhj$hoF1.OGR"Φ(dF&$b9D }EYjn&Tk02gcÅ̅j wv&pIͰ)iiQwo2t3"$kN(nj$C08༽6L glFWG~ݱۗ`Z| IDAT579c@DD_0|xƿA&I+sA$ Y6gmf8XI^Kn42dtP FX #pNO>[Vdyyb1=jp`{qq$ yL 1}m>}S/_]l+"`En nFd]@.$uHʀb*L*1WiL&Ȍ-BTX @L*$k&]!`/c(&d4̆kr*1 vWEcxKI"e* N5Cv\Veo Sur>9>9;{]JBւdf Ǎ5Iea>,^/o_o{|fsxۛt#{/{o۲>鯯.?|i~ӟUU- /o֗dC;0ړs/D޻ز@2جbz8A5L }J(J眳E V5ai zX ⃲v cS} we]\[!j]ߪtƘISsyf^UU SD>%g +(nZ*[ !;xOdJD CU")X%_.ާcH)R$EQ(3O6Ĉ` K$v**|_WĄAR ,ʮ,"b&ySwø(l?LTUw$we 5~nS1t7ݨrL "rd,'A%BrՔ"!&!b!¡1􏁿F! #qJa݉b/ENr ȨB޷0W3?1p۠z;zmr[vI1+ "D8oJ RD6@)iN~}4ULXʖϙz] d&|4CP 1IE4bHIwGiʹl?ݾ)^1U91yǷ' @*ָ?g??m'||Y0no~ߑzUx9?ū S>Yli8Js!f`² `kv BfT8+1$k " !#1`L)0La* )F452wDB!R4** c cf@hASW$*B@1%T%Tdb$N>$(̄IBfo2Cb51ݤt7b~ԍ>HݳLh`1vYOfӿwM4^?88Xdg̪bVZ58UY&7Wחν1ʳ/&'u===;+*c}hVQ94o{{Wo^zvus;\N&Eٶ[W|Z"JuL<_,/.‚g77(gYYLDĔRH)Vu#DTVg*']w锰߬/֥-SUDаak$ 2!1>ʤ$?0eb2XW!qU ,uے*^_ sJƨM1 BzS!JeYͦ7o4|#& Ffc,]Q)%$X8[ZStEI\Q,;#wJ ɔESl&7L}F-5@6ey"J*ѫ]{0y7*Sr"e=K$6C$\$Peޛ9,s;z݂]k7Fjfw/T јU (:Y Xע a QLVqGHmтCjQ )SO{~a׿'91]-]N?yG7g/5,"Y Jd Q'ɶkAB?dpn8\M)'H2@` `CH@>f]۔>~զVW͓GO*v|cf3`#U!@R1mdwyׯA@kAt4#a@_>"Rho?Z. `Ƥ")Ft8s )"5&X:C.*}z=\'f^L@N,I9{4 1(2 *`B4a4@PUM*IRJ)(;S!5 =8:8XݽmÃ.Jpg~ӏɃ#ެV$V^B뇗g|EMEهN~u<&A,W~pr \߼K1We}Y5ٳgv WE°ٮ/n۾ ,|6wv}jrxt|sc3֖U @{9#x]h"9gi{w0ィ ? !;爙$BӍ"33]\n&H}Q@0O>TH 1XT%EdycSJieYjqE\M J>v1 (FMo./ٰ~hٲtR!LSbQ٦dq)U1^\/'â@%^ew)!ĈDHbeY@J1I'0ft} v;41|> #M{7ˋlS̏ro26ˌa <QsY.+h(yEL9ۧ0d㶙|:<:* )8g/ٛWۮ; 2yP;ϟm۶kX35USr>YTH1Q3͛ӛݡ~ juttwM& t6{ۡ_s?li'Ӻ˾Njcs}*ٲ(KMQD|mW/u1v1c6*zl-+Qv H4_:MSV ɰ IUsqq.tjQ)(S]UZ6e]LI>"ZWV1рjAڶ.I@"Ii6$j(j(1,6MeY9k}+Yl׋y!zvw痯uMiCJч_ޫjdRSƘ$jհ_,8۵}a10~|Pu=$(Vb[% o'/ѫ0 ;b"ms#cNw 3*i$REDv'OlWY(af2[g2ͭB oOUroNxĪ̽~DG8+­xӌ;Di_߬l]76dD1*=ƁnLߜT g"6lהO!ʱXD[6%csJĶP̨ofvC ^`D0n _/.4X?ٟNY-!Ij6 ֔ 4)DmCCãWIb2[8cs޲ǿ@_PVH"@P$)wf0+!BQL@ $g]\Ұ m>@L@QLL0 rQQG?@ ≰b,H(!OU %A( ))*'NoNbIԖxq|X]^7B\ѝrśtO~\VGvU'Ij0:khz?Ϻ?|˽b:7eQ$X,g__->z4N={ֶѣG09>Αl| GaYf*zq%3ŋf|CB4-O1{z:888<<:@<}u,F5NHƖ$.u5)b;UkWmr&t]z$C)bSM}~ gUq=35McLa(ŤeY!c2uedShJIنZg7$b۞'ueEEcYS@?FŅ(DbOJRfCm"CDuݴj>|Vokc(3*Q;}Ϯ^8h!Y%탌d/!e߀A0h~0+Y5$@4I&'A@328halPK`h}(3rF\љ@6t̑gd,(Lwܧ9Y4ٔˉA) N7GOg4F[Oƭ0Ԍ%V:9&@Fw9A0^U1#@s#aÒo!oZ?|CHĢ()ul XDb#RQW<0xus`6)cpn[LR3`Ө?/WWqDQDC7z&u=6OW%0ibem&@qϣa;nP(R}@BLqLeA$j@J>E)گѨ$Cc`$hXaeCĈdITvuD5loUGf\;eCk*-3@!w],OoZr^&|ofjfӳWei $B2+~ژᝣryusi7e=A6~o~7rL=-\:;۴ۏ|LHu8kT{? ~4dzxx`vǟ\l|77WW{Y~6‰}Y1|OMQsYVv}Y](Gǡ۪:lվ/Psa"MJL[lԽ:6K"0t77$T6Я,1d LuuZcJٴʚp#KCd5F$4$!FP,,e_*`<_}Bw}}|hۈ(I1, C k$&I6ȦP$;dq ,%gr"0@e*f<:F@8e&D \0;^QȭppGRF_H(:JlFq 3.,"b<#TTO Će"b2ӁxnۋLSpj!}CgȬ@T .^$A޽oUy|69E@|PesIHc8 ދ/\5)CR0^,?䟳HMekg  ShBnqT`L@"4zAnEm&3tg|_%hc懗77XN&vD ~?M}Ӧ1&fl$"!U:;~Kk0̈lLJY!Pmv5@Bb"bj:oƈuU4ĨJD hIQTp$$)@˪kf,;8sH?_\\ZcD"L`R@&Kqm^o^m,>=}ZۆdӟISmp&o_vV/p)n\\wtZt2Q'fX.Ϝe[G- X+uΊCjz !VUs)":1rݪbۮ;$u%1CkG gMV%rtZ0$I"Re*ð#8[? j"1qQNj'k{>D˖~6u7_ܛMH@EHnk*,I"^@!z(KtLy+DPAB" q|YmF^YT5IJI42t ,w]OFLA9x*s "ǹ廽jXDKP"/š*pNS_-};hSƦ5NnJJ " \.ʸJ'oݠ#Q>|̈́#~_GeV|FpKRχP#ի}t!$<T2FE1 [Su D !)fc[r!!0Cw*3mE6\.Itnl !!O1oㅙk;`k޺@Gd|kc5<|6M0SQ LdM#)KgxL=qpQ:cH$$FXrJl+,@Ss2A[ (r}CQWw,lF;[b]=&ﬞO_5)I AIJ0x IDATBHjWߨS9OWyl]F( e1ځaRU>7]Ӈ~M0?+kQBc f6@B׎1-;wn( Wio!3 q3rzF($5J $jGL 6yc/ZBg|'eaMy$ >xڡOAUYbRQO'S@TUB1&uiO=8˕1~h 1 :laBd#"5d<<у~/_oo:H5۹-X{UY?|W>s߾9?51 @]*zc)ҫW#6w|SUt2n JLm], 1l zW5''?8;;͚7_~N_]_7GG{juj}{xp Gݛ6I05\te]ϜEQcTb^/Oͦv0|Po16Gk\-l2DX{$,c|Y@}<\H `BYVM]wmr2g/1@!I]9kh&@*ݓ/'ԮU 0 \U@N=>%ĺ2uqQ7MrCl!2aU*]^ogrT8]]gGLnVYwŷr9xg#bgQ]& TQ`̒㝉uo-d&%QBd1leNl+;?Ћ$Drg֗NvBCvH3ٵeo݀NU6V燻ĭ5I7FgT&vlH9dUT(X$] ;7[.k ޱ# 3?tm~# d1TLL}C߯? M;ƑގDЬUHإ+/_(2Κ`r bBEcb ;r/QTH2rƄq5,n s aGw>{ѝ->{ѽw&"NN}^ C?")q3Dе#gہC=_booZAY5a Xj΋:;ؔ$9Te`(qdiQ͚v&WU "20*% DUT(1jJ !UD$IIYT EB*iY%֤ )!BilۯpPHӢzss4a1pلnwxgggfW7W77U]QfLQeYRJ)7Hm|o,d۵ouI)N'}^׋DrWgN>|a" 1>88fG9nin拽l# G"KRbæ&oʢ)U4d'ɼoo,]fvUSNrv^u<ڬC16gi׷A:)[T5 f4~9b~T:\IR!xgf!zc%&J}H1dB!Ħ. H3߿x{,˲1uC1jU<-\\_ !(1zUL&Q%G7KD( \9__-׫|oQWmDrfܒӊ5 p[Acd,0B[ga !X PTr,<uO_.!eDK f1dX(D; \NhY\cP=$Qқ%՚iR5uJH~ ̤N)]"YH$rĪcIhxc!n.*W2y 9|7C#6L:w23Z/ Oz~o? } MZWA2449:88TPoatTȘe *ߊJP|ԑ#A<#Jm%"f HR6`>C1 Ւk'z4چ6Dh hHJDD{9UD%ZL]BYY׮_=>8Wth@a[zfnW ]?g}͍acm_}) cbIQT zs9O.cJGι/_ucC$rnU51f&& EHȮ&2u3a 6F۸rRra^N`ٸ$$LaoL5D Iě׃6}ad6ە hmT K$ 9[!uUY+|hc H$1h5ƜnT5{t%jf}?C Ɉ"1ˢ!b%)NJ6Ӊ*e]mb]w!2ׯ^^/zu}Msctk ;팷4[A4I8?8Ku$P ![L2Y+"-$kc(r* YDc_! 1  AF]Y,Ĩ!lEV&6<$FݙsIQUq6[0Iv`q052:9_8QFeƀ|fFAQGF 06) O\_%o WeBGTX&B@Iu=1"@J%&i>IXזQ"1X3YY$>̊ÿx?~%74D:v !r'#kr۶*% GmVπ|@"<:>89{2/N>^- S_]rro[EbQUw', c̢,g1*O޴I-"rj REHfzZ=3}l˴ٰ[Hq+ւžX/U-Q-( n0XBTg{8F(Z.KI^o)i+WyF#hULdm]*Ɣ٬mcߣP3Ll%Ȩq'zYT];w1iۖѐm0Ɏ@c1*O};Єwސ(K~cʾ/x1*8ƾH43Iu8~߶Ք5Iurz?ČNOWCe[783TB}is@쩐dHs0a~HT$wTXIb$* K26Saf#BT3w uˈ tN#DŽ9KveES0!P$r^WuPUӜHDfs\Q@BbvQS`罗8pAEX aX`,cڅ2C54 l-*JAG*]MX1![g%4c.I}DS0(*I$wMՕ-L|E#G!l !,r;MQD$CsKX`e@sx^]?SUf>\9uEDλi81v}0dH")w"1Rb_n/?'Ƙ2RR3vS{"3iyD$Mv7/ɵM| \ 穩ر@Y;*GMV:4 TTsșBe]58)wmM+%fq~/>OQcZoOY5 D̀,um a#Q-Kbv{0ƜBz%_w'-!p^VjE) `&J30̑~f`83&lD@`9s[VK(;'X#U"z1Jq2'>ҽ CIc|[mCb6o֯"Uu<쮛[tIok5???8>9]UWbowݰ|syޢmA/>}EţWWW>Իh9믾>ͮz{}c=xvm*,%"z`j0c&Dprtkյq߄P3y5ԜFscUP9#sLuݮ1eU\pLnT2Q4b&DSJMӈ dQLYKYeE^@jeǼ\J5`fJ٬a\TcZs`] 2@5P2fR-;^!sY l yfCq@džh\ݜߚR{&&FPD jejͷ;D j{3&*=|gy6dBZ-""wDB[U)0@,[|w.3 ϽijPpb2`P J3X₩h#F 4]jJ0wTC;uHa?1#hLCRxzz>MbN*uv 7_ono^ޜnfj5g_,GDtٶMsd{{Z,?g_^.nǏkBu=ifX,Drs>K/^8>>U_U8CSUSb"Ô 5Et7ث#!Dyur>Tj꺍SŘFƘg17az;YTǘǤ]&D2vߏ+cvxbZ(缨kGd٫g_LMmSDUӓz}l`fvm[vnJ{D}Ӵ]OCLc9'aܖtA!|ɧ/e02b 9~Y NQ#5Kq\%6+TgZLE%f%&`mtK1=HlK;GLSQ44J rX BgFsrZfCq(Ԍx&{Ƣ8G: 2` %FKtҡrx~fNCU(Fi,isR* "arsLD)gzޯ/f8`E}+H) yr ~O"a0v9M4tM)Jt~4գv>(ۦe$`@~\0a&DDU3E0ӼhqjP7v\H`&e9[-J]qE=KGѦAr622%fSΩ0o;J8w1TaiB$r3 %@ED+(LT OBTfɑ&MJ1n.߮@Vlȹ*Z@etDJXhΎw G,UNy"ŏ|8 4Iғ>7i=XRS1Hߵ Q$E/v[ţŢG4hpٽ_(Wi?MPUm-q&ڏC|u}n7wn 8˗m.7|⡈xrut|vr\rFLyd&"na H u{楦1a:9ji>0\hכ~?IpƆ-WϒTkw-' JNޱ 4U]e眦ڮSϒ1Q B4fpڎxOU͢~rSo5 snIuv j<o87~ Yᨪ>E~|ۧ/PP/>{Ye_E&,T}W_~ }?,i,KS7`pttܴNONGb*vX.OOO ͫ9qμxcf5<#p&sUWAwU\sfnq}~٢j]dӔVeJv8۷C]-uLclރCį]!Aeх옛F"U P%Q~ZL9YGɽT T CW;~"YpJҵ-,vMU1R,&iۖhFA$gj`F̮mðUM׾2r13S+TF0^ P 0;sTFEXfX4gD(jDTB!XLfsI4h3F;UhpH|ep\ $.pz$d.,!|)9E7Og$`ޥTdfb&3SbR5^@p+|JalǤYpeSU2C}-hnEW`y MDH΢ |fq1$۾GDctā%"fV9Z.onݎ"L<3!(Y 9<+ ΗH^җĈ K4CȪq7aX dM9Ke3`&&"bLgOJ}Ri@EמǾ00B,^\->y| tQt]{mUvfOmwbp{{{zr1MPO_|~~ϼw?omrʇIR(p|t:S|r>7oV|cċ{(L.߼dm[qSW4Ap~&<E2qu*)"-EJTITdjyZ2Nw'nO}=/a/~b"}>(읯TgiiLeQOm朽im/SZoբF5ehJ.ҩi;cڦiS۴\LF>S|p@rTԇP7#.mBVО?z^_R4(l̊8"ή1+iHTI$՗ p'd;L5p5#87U-h0ЛEl%`Z6*Ӣ#&jbFeXue&Z:HJ ^9[DF8 Js@fF9,TJ?q掋Ny YlvLMlc"$̒g(w]Jvﻳw^.vmrٶ}?VB֗FFfGuӾ)c65(1N}J>y7N~ߓҲ[՛?<:Z}WӯR'ꈉڶ]t]hPoYV1:q{by ǧgUU6U3U0U(x ]dyy3IS7',}Ju{̇e֊9YRS%x~46 ;"xzlTw\5@4!4It`B@f{>>ZiJ%&$ Ç=buJ7}IS`wC *d8ba$,Zaeז,na)fIfD&Gð^O~S#(8P"9R0 'X1,oE?X P E9Fm#̳ms1M’ZgDs0!yόd<$q\<%5&MMb!-NX]w/;7@6Ԋ0׊"{vΚ #~wN[:%U/bI@,9ߝ?JYp.ǁ'fTr p0̞fB3㟾ןxMf}g} _w~M#Yy)Oq43}D(ZpCpꐱ\2м1"8 9T7PCn;LG~~+Uh6#5= yBYs^@sgf5"P]I^B]i҃u19ƒX0"m{[;;mb9[V3 ŔT,n!7vB:Qc.P) #7Hfg2nز8:Nɹz]U#ԏ}j᛿_ 'O{rg_?|+Xt5}&T$29@P*GmXtb|~^::z}}ɲ[IWקˣo~)Bݓ'?x0cTꇟ/~7/~ͳgMݨs,UU]]qB8ѣGYn~ ;΍X1:m^rI;67W۶5t]}}rrrqU9a~Nq=bR1~u,Njr"bth4M"&|,Jښs&#Ff4ݻblY? l7 DUf60*RXP{q@AD$,QQqV@|=`u!R9+qvӼbͩ \>\yg@HX;aŃ\_~+af1UseD9LK)+`iL"T-8M/Qeoy60CP ?;5K>!8fƎ.椪 Ҷ0$۫|򽷻}fq~ `5;@08O+@P^xg胗7ׄHMU h`K ?):x}^l&vQErd%E2i%7ĜŜPGHef "$p\!%BM!#QiBJ"Sd+cLTU˓S5ܼU~o͘37ur?|!?7"lgO'D"*ifA <س"~S#Bt1UD0UyR DVxl~dQM{x==C@*i8e9[:憒/b,60c^'~'Kxޯm]_?ˀgꈲd v̤"9gUI&ʥfS-@Cu4@X\dsPeCsxa9`TI5'79ų]-Nכ5Xƪox2+UDN0GokL 2yD4 0T*LLL]jѥՎlQ7?8ܮ1s4J.(K5g3VpJN dB‚T <{c*J)&&!Ȩ T;`M fjY .UdHI;>MqNcsR=$ރ=:=d?LWnN~G.7fI5).ju``޼~syy4۰mLJ]_=S˿F__~Ӻl.OjO?~{ss.o3zv8?|rr&t胇<> AT~tiHRJmL8Nja{3!$UnUCb۝jF4bcJMݤi>n 9<n7ibq<`utz{su~~Yc_a3a,a+o#PWT0 Z`dƘL=×/:bnUy.w RJiJ|GIv[,a,cNbI@2DC_93%e[ f2`yKS;kFF 6#d/"D$*mFTwr:3#,͘ZfMQ-xLJ, y` E?D,sn!}S DÔdy3@E: "!25\jw![?3 xjro5 H%MiJ9 X1CbyI4;@2A&0@8p :0 -Z竮kU@"2grl& e~ǜA )s]4DQ.qRP52|t~^eDBLw3`c͹.8GMכӳ~&7=،֫fSUX)""*Js43v#"% "%6k86D %ԓEsTӌQ)a)fD"e@f"b+Y DcA)n't~avH&smU_iy]T`iǭ#5O͛vr'7/66?_77Ϧ.7kn: !]_Ps͛0I2Pmj?n>mS)M9SԾ5ޞ_ YҲM&0`D(du=32gOi U{Dd'@)޵mE]A0aLY ┙Yr)-˾;mS60H)qH[tݦm)fKE;g twzcjv`-*# A5A {/Bc60D'Y3%D3*2A)ٜQHIQ29l{LHaLF{TPRq ±w&L2ͣ2 T;j>2P("LyR*,;2*@q[@VFs/(qAp'ח?s>ux3{/J_ 7Cz?޹}?FbR* $*'DF!ĐRyb36EoIafI1|.3ރdXAJQj"d1Vh iUX'Hst199k* \=w3u/ͭ*@\# =Ǔ,a IDATGM50{BRbBFP0-UVU G: !!BS tHRޥ/׽;7N!\ƎɪZ^dY (σD\oUSPf8kGj¤Q%(N2{X\ybD5ϥ/_nirf]}> ߻ з)U5qч/9+A 3+Ό{g1Z)cjJkˋv^͡-f+9t7{v3t?ggao9*Ǒ h8wC,a>; aw={ǒ Փ?xo<Փori*d.ݶ߉|1nͶMԫ fLEE6g~OO~ǪS5Yg`UTEi=;Nz$Bb)ɾ;?jIrc.PBb~=zİ^ogKch|8J@:ɼmTf5cmSŬ*c93t|/~'ͬv|H9O1)y8,fR) *XסmUTe ދd|4pDإ8(8ĺsm~L`0 uʷP'"©σ J-~!(SCqA2jaL=hTprޔWY$U;L8u|䕱 ] MǢ._XUgE0geɚ"JJ c*xܤU{M#2]? qLH!LfwJV{NxI9 `Ġp iUq}\a?oU-pZLqQlg,Nmm6Ґ[N6B`v@<AR4 ! `2iH9<RPi!z33b2I)MW&4ލOJ t?"| f&``*noaPhɕBUrR'߲'gRϞz TQ#;#=W `Q#84.L!PcY$PWP̊ 51sX2A<:#B+L}4!#%!Py=swؿ~֜S(,x^zuu?ƺn>xQO*d!am\.BUiX9v;t믿|v_yhNaӜ,̗iJɓ0¬;@~fz?`Tb  w&4Ӫw/9|xWy[wY߭ooC׍EUmRGb#SSQ)n$0ƘDŬn!FUMI(/:)*C]>8+~?0+j; :C #Z4(0<|L*,:FItJIIJ&51Dj;fDH%$\^XnH0e㙪a2NSLХMT^$,*!dDTⵏiuEC=]uCO.x#_[*_.{DG?WNGC7Y-hITU)* "nWC?@_F=Oݸ 0 {Gorq{bajV L $8%t;O,/M \͗]̇~'v aƺ_Ż/),J6 #`ǐ ~\"&fF<99"*82[f]Uagbd4M1YW9:@U%"Ҥ)eD00C IJ)#TD˟m5C7rwsZM)g~Eͳg^09T?xu5*B;kR,9Tpޭo*<{ىϿ1KBU}WΉyh3qsivp6_]6\,Բ'{7ݡ移r^!r4Ij#bTMS#0N 'ࠪB97Q@XUu4k%Al\,l1n1spDJvSՈ )`ߍgmŪ#2:绮Sf9{S*QDD"l"bC1zF͚:| - @4cpݦQ8-J(TLATl$2 -)Sɺf%T J6!"2&G;DGFe"᛭&dOnHpDTPK6 ?".4"P)5`@FTD(izHlVj񊹢KS!mRe N^+"3@=re›fޣ XE TLO?"ןxkѾe ?z?uoߞ_g4DjE; bb>T)šл` l i1KE;pݍ 8pn@=gڬu%(9'y7vDpQyU1!cwYç}J]^z 3+I4^f8_/>T-f3 0on*H{a`VS G`ȀLTWc&$~~vn%QUs3qEQoأ"b"@bƩ<- dԌ* @s ]q!:F\LFF>%` LޑT{;cm`?y ͗.'?~줩޽{;ovX-ڶHH)%&'ݾ6_lwjARq6_ 1N4h|U5 èCMc&p{)6CжA;m|_tϗ81b^q`v"nL'v)jD$ @Ԭ/R5qj~wk")1}8FB`@De{1MA6*3B {+@HfX*>\LS1@l1ɋ1Elb K jة)Z5MAp)"s%#ATlmf`my6d06O) )YĬ¥&\Ia&J?qֿ@~ E4F JgD40l%O)L9p Ԝ 2#SѪM_1y{&'L48Oh"INj >Ju7xnoǷg{賺8(81N57q53YAUD3TJk 桞ːwҟ> ݪ}8ѢjU;'pA Asy0 dI&cIcX|*-:P U%(CtjL ):hBD xC:_ `7*r]=^|6tzN T-n6#P}‹oݣ˷o_u?Hhf"_+MTM9gH~$iݘbaaxtp~^v/}K/.֏?Z{s~v6}n}{Ǫh Bxd u%̔$=}DM^{]μwY{{ssqq}U@t8@s6Pw_Í!1[0thPlh|rzEfWWW1'e$G̐;3tawC\j5u =c!a}r~wyqJ,1ju;&Kql됏R5&7 ~1w9EϡӓSf71`!cM%)2 }vUrۦԵe˃@Fųˇ j T= dczI )lS8nH&ph2cA g0 [M?-G؏P\UbU1+b*N\8r@XI fI.mqa>^9b zs+wLND _x=JIq%+!xz)07Mb8 Eg4# TK zLke?4o:z^nL`Z!B9Pb$HBL0Bsq;`4;PUSu[@?$ RRW9/ L8!*9U9A6h*c|ws>=9=/޽>~rw,(?]o6GU@"@P&545 `h,m w>#4 סb9Cj$[jcWu>WϗO?p!jVNFfHTE(Br65DXA+@T@6ISŔL!J=q8&{S"DGsس Usngp fFzpZ^__Wu <}Uys{rN'^Hj`vOU]M[Urd _vޕڛSg*P@_f'9xwj<ah컡U[4lQqn;U1Y;# mӶM j0bgn;ѬvwQwzrPn sF\ND$6WUcnFUcj(htΡ*XCJ?:D\,qىjڬp&"ڄ\B)&Y x'xdNe)1H'/ݵ̛ű1#*F{}ؕgDDpHKβ9?!@WKmp()\Dv"M}tߌleRUf>X`vo:AIjFpyq&r݁wn߂*\=dHRS>c1Sf`\>yeQ@Q4$s˶ fRUU#xYLct'ыwoS70kJjVWW˺Aoފ`FBhEB 9*gl՛()BJwb!&RT 8& fL#B{WWu:bW1=j9E"˦l;=_z/n]7ggp`bG F˺ɒEF]Wz6 j{$ dC48⬖ˊ799X>#lCw;/ڦ}n?wN旡 8|珟]=|\?{8ѣGNNv]Uk$pw_5}ٛ_۳Ӌ*x37ig&C1+zn<ݼw;bMM4CכJ듓h\8Vl:DBpWn!'DPUt^,ض<uؽ)&Ur.4^R,ZW)5CŠiB,;3%nj^AVFvlw ]s"3 Lꪚ[23 ռ뇜EK ()-*D9Do'M>6^Z1*L\Z = Rv>E3b t94rȆh\!-M*LpL)[Ttz|!8N˝L}!;ǐb*VNox@e<%`h>AO4ny\TUDT3EjlC&w)tʣ*o.*#*G L$* Jg}\oqx_? [F¿{UU犐 A ֛\\Z$ũHb*&A5pG r d.  JGHD0;3V@m, \=jp/<"5Tc_7p\w߽}㈅/b'7yC`*r?S[[t9BzLQlG ë) 옒F\w53#:fOx!y\_߭/7w9j?$f{?t)eUDF PO5PHG&=kCX19G@rxjFOȪw옼7$Ch<.T`&Y0/fV@smRΣj=tQtlY2#>_~{֥yX8g˟O]*|u:t;FU3kWcLUM>퇻ncFP_^>جoris)@HH917fz+PPLKv;ӯ2 PdZm#_Ƹc*n}!L \UMH \[NthjT0qfeo'\Ȏwb`S*hHG[ @=#L伯)SX9n|}4tڴ*y7tIL#)#r=!exV9$9!3ƨ 4}P0 s1!aK8C?)&I9eA!g9uNQm7tVQǦnm2qZv:;8fEЄwF؈4;ͻ$ju՜ƃ(\=sLkjuow˶/f6#Ϟ={U6>|X?'u5k꺪jQ`ogMb)媪7ꔵ9N''_b\97!skC`Bԍgyv 3|v"((3Q,YorءaSQNKqI׵ϗޓQ48x]?䬎KQRfPW^Ur6U"6+ǜe. rH98wLUifr٬. ƱY*"u"yMLm$vvsaow{DuXhF08&ilu m2#1MھcqBrz>̮8|T@:r9QQ mrXU8'!kfj.gL8SORrA$R `DVJ펒=/E5Xj HfYY3E-q׿J~r|T&䟘)L)k7ߎA9 x`.PA; i ! !0Ęq"Yt Rv|~׿̓*~oJL?_&H)`c&b#$4{ 3MD0BͼqU˯[J-QwPUcJQ |B2cvy0'j3Fc4&`T9G'9ELLDCpCu&X[뢲eCU@G b@3)keIYRYMdSA;pKYSc8x}LMRv7/߽9zG jj@M՜/cfqsn5ۼi\}? W5ѲJZ=_>>ASRNcmLo۷/NO7&vzzRfsrv"*1 WW]\<~1cxs{+@a{9e\,W)khCU)%Uv 9,OWU]b>\fT]UjCe^9Xng. oނ!͢l=Ɯԣ݇-=]\th1iUW($xHqK'vqaX!alMݦ^p6M]ݭ e9E0>!2:DZ7SvLȦS10Ak<1n& )@XID& 6vdã=B)VtJ 4,nr5-#h [6afՔHHHH`&h QLE(7% >)# z 64*ѩp̆ԁ[J މQ(\&tz#@9'HScDg0 I2 fipL(0u))i(">?w;9T"'$DP,@nɫb:U}L.S104+ H(܄隠`6}m1B21 WCwgWnf1~W? ?Gtuz"[8!f9%9 #21YI"cJHrf*Gq!Xv}aX4w\xϟy&g%3T90*ȤF452pLιcf#V*vhc(,5[T.*@[j -[NC@V)mQU9Tb ڭwþi*e]5;@4Z]i<чY?ڦ]љz#p<.ur0@o-|a"u=޳TwM{h^VvXmguӜ_^<_}(~wCB3GtC꺮z$fMIh[܄RJtv~1bRJwwwfV껚n3&HJh9ɩvw|u*u~߽y:s -sSd-;ݟ7{>ĵW??m0-Wێ(;4L;DYaP@f1Tu BڦYҾjꊼsC78bU5t@E]sdQ7ppƘ!"9Ϡ#BUsH*LIX5 !H&`w]-Lؔg%}[X c1ٔWNtv A.%YVI^7zut`e[>z>[ ?rO_kt,䈳dSc"Y9B9C9تtf8KJ!kp܃d0= AJ~>ݡS HγhYr/t9?O|j}?fLP'2/ uE\ww@'[J"\"UkO^U(97ib$^oJLLK]V95c3at*_řw.o1xM2. Y8@̪`ƈFO L")GfyRQ%F3fR1I,e遈;7Uu39CC@ɳ~蓄P;GWfkBW!i@p6_1Vgo~9ю X<|,4(O}RPC\n_.+c`,_Q^È./.9_0VU]u.|{~'!4}?2SUUϟ?b"v~fm{}}frs*!cLQ-'Dia[CIۍ@.4I9y{!t9ѱ]`׋W^tW~z9?N߮ :[o:"R<9;;qU=̜, D`}?BQy:UfROH}WG>;=}]7ծ7UED U{wwB@-BJ>PJ;QU=3:}YNNOCdf"0 qJ#s`FL1֟|׿gÀD"jM蛆ق+jB26 QeF$5DDp?${48=)BD:.jmݤu3CDEd"SA 4!8S+齺DLr)U=&kqIsS~o[ ?J`zߕF{L ģ&DPe@ЈT& P_qAw7Lc[ ^G0@hAMUO>47@{Pm%t`n+[ 008@ hEH M &clSt T2!w0z$cN\euqf=&ٕ][|5#ʪ&%h@Uz@"% ]ݝUY{`G`8#Ґ@f=zWv57UH T*d-H̱&B␩ ,r]}BlILw"x3S4@$jL;""> cwz!mb&J,SR"D)8 Aˀs0(:03I)!Fe&$>Ԋ \B`LyJDLQھ0DL5g}ϣv2K1hkMlo*| yDz66ջN׋;LsEfQ Q5)ʌ]7tiߞ_7q:\v?DZ_}z4Nnn64Xۛg|vm瘛iN $F`ͦ( hBD,Y"T1g pzy4[GHO3z iznW[0]󤜴|_ԓrѿހ1 t+&Lۜ'h6YѶ:)`'rDb/%#T%"XFeYHv,k3;jJ*Q2o򭚩)vZDnelE(o #?DD0ߝA;!@n3W<@sFdLV;Dhhۿz +@bCsXOMMLih1ٷ hh Lu-98KmA+ƸpÐ_2\Q̀L ,_ga\aeҴQEi& ygտq}\Hh? H)%T C=3 α%h1nTA,H郘F TBB:@F#nb" ńYjXTQu%]Ozӳ)YWT񓧿|ܙΏN17@1DԑE*fHo 2$j233sJs]օgC3IΜu] ȕIRTUuR&nabZ#5Ac GA22E 6gI NR36PB$FcN@ CS5QM1W 35C(G]>(+(֡ĴtUШ[mMWWO`rpbz|xY&Ŵ5XMu/ ]\wߩ/ X6 SGFΡ3@IѤ`d\:җ_~z/~|}7Ջŧ>=??x2t:}@Ӳ/Ώ v]k^!}{ttlQU)Ƙ7^GggYjf/%*ѕBTF~շr}+w?󳟵oq6͆]QM~WqOX,߼ Nc!j!nX!‡'ͪt`%xVeQyLoY铆i IGιͶ>9wh(W&PQb"f3QD$:o.=xݫboXӴ")%u.#춅w35U6MR6@Pe/-9C۰5j Uyv)+{&mJM4c<}h̐ǬNU,!RdF1u(}'!0&BuO]=۟ >=̠tL 1HTx?e޻y? !>U3lD4e[?s}\׿nȇA?'o8W3"aBIUdn߁!d7$ rgZ 1 !4`D'Kq);dWugj9%Ʋ~eD#7WeYofYM|٧xɓf"5Ct397hL&i6]@dݵO튐رf)a*LFU9f`;4# L[PMU%UY:diuj7ƚFw]"$\$@a0!2`$VUODHA#`"z1Q0|\AD)g?+NCwz ڶM]~<4"fjιvmG*ě6 tm?xbmi Ny]eYnWH'KcvU1OɴoD 4Y@^EP=Y=>)ˣg雷o_|&.ulr|||0}nX>zg?Y~lH8Մ{j<$̳ {ʿƩ73Db}df $7WߘtO|tB({yzX-;/GOdzOlݛt'óӣo60Jjf,fش|2\ w{k0%G PD p4mwjjI4)31<U}23IN'Q1\.cV5rWh\;Tc9⨮QQuhODr!Lgi"6 &S; 9CڏziHbS ;r;,{DnMAt>idV!#0\pvh7׌<ODLZMaz6@6UvhC@՛fH3 cpF'X43(ϩ_MEN!PDdj$*[OoYnMdg@̔oø)*4$}DDIFl@@{LCxd/7l%wSU6wY:EU,l۷,FMf}6PqDo.dzY0bqѣ 3@DE;NTAR3%Դ~,5ZRSB(j*339a9DLTel~';ImZ 2ɨdPMDERT5xYDS0D IDATj5sP;2Шi^'D8+MM'QQ|h۝!"{"(*(z(ׯOg)L`2|-]bv~zVx爖`0l;0b`H ]4e"EG(PytOI]'O?-׋h?o~s~sp:\\^NƓdz|x\WuB=;+"wL%1{'U5O ^~]UU](0PPmV"8X"/OI(g\qM'}\ﶫx͗d޿P p6;lf֥~ OfTSj-l[9<4um}(Lɫ~ߵ]pHj1jk۶noW)%3kXU[b}7i(9T[5K"xȎ8@^TI$%Q1Z/j!j)8fC@cvhjL`"@µR k!2侵d 1?IUG3lVPS3qTj,*$*j\?ӏ?N1?˗["Q` !GNTbRR*j?de0!B@zrxw"x5;AИvMKFmvImEȰrzC`̳wMlۼ'pd ) s;U 7M㙝s_qPsR  d"\ƺ""UDfMz~𓫛vmjY_G_v\ٽ㓢,7|~0?O)I7{W"Zjq~m?ޱʺf9G*CC3E 1P 9fDyfYN' 1~{Yöox]ݮo޽ZT,8rh<>ﴪG1u-)kx:9vߺb[ovS>>H %C)m6[bSrHe}LE "CD\&bL>"6Sfs)PB@Cng&n8g흅"oHLDhPU6&݃?c0 C0DC0P}Yw{T$CTZX.[MȂg< c:Xif h)EӪt! `?eSv yf 290{odg}A_z~7E qwݑAV@d00S>d9g(P09SS 0C"h@  -0CC] S`xI5]=WPm"vs鬮N/ίr" $]ːG =qJ;3RyonnƳש$Bq=ZlVhܙ,wF@1j mnS#VAQq5C=E#0"ŘR7V]}D%ufF#!fRՖ9*3sfv{s[VmOכrO$TiG")zу>nٜ*IJ?`tmԜT3vJ^q-Mwa16..߽=;9J0OW{'FWMQɸ 07xrYIo'iJc7e$ۮg1%U` fYܰ, m[ID}X5IJ)#eQUǤ=&ԜTvm|PH]d(Q 0T54kUA=F<Lr7F6 _U m L5Se1dB @  ש}P cC*D(Z1#XLB@!T PS֡ cw 4" !U 1Lip_a0O:`4r]!$fĎG{YJD$U1"B@S#l @>?+t,7^n3W߈z&$ibgj@x;mmrm%y E`j@u<Tkϯ/f۴IR:'M +fh|\fq4DȬ/D]U&@bWʳ!"9fdžHUhsAf@PUHЄ]1S]<Ө,Q-*8yZ=zr]aAIz$ $3xp @%Mۭ4[HNU Pb26$$mwbDRTM4‚ó"ը0*]QQkE,7x+2S;gg׷վTsBp⺹IK7UYƨ7>88=-FPO"Uggί.~UԫWn "U9.]u=M7gid:-бM&qY/|??8?==Vl}f/^~{y}5?<|l>W>m]lEz&0d"@'Wޡuյ:JQK#붫z_ʢ@brǭSĸ,IUf{;0988n۲p9%5_o(kz& g~\^'.bI5!"';1ˈ+9˲@`L.$ΝovlBDc>`D{bMfhRp(رcbQ]CbEBS#@4Bݻr|wb ,]g8Y{NBwCBW!)rR=bGji "!>9#,v H!~D̐0s$`8L}#T2Q%fs$U2`5k)%fb*uƾ$K݃{Po/vMDb9Mc{@) BG=0(]Y ̠,! 8U@JOOjBضuު Ln%⴬6mMQb3j5Q޼" x0}Ue1@qH3j]D*:dɐX@ FE!fP_:>L&{oUP԰,]]N=~>yR9%#ekvM5&EKFI ]6!sV8hΑ%5Ĩ lcA{U4d L$1;B"BDd}401SU䘠->;_'ge:QոƾI^޾!n%6 BۯۮMov;شmQn{ }7n-;V''?}vu{vO׿H8NtbU9麆}ůu᧳齓ӓSb7ۗ^\_ǿov?O/^9.<@"gJ-o--"v;YYѽԴFEjυ@IOЗ7_9PjO}07V]L_o]V''ծkE w}[+_n..X4&c*.&1H{0@Ծc@$O'HQi^)"]1I0%0&Omd6g&&ĢpHHHNnn{@t! lfF]̀2TQe؇  #110AA7lߛdw`Fz0EӋlbhh @lfYY'`GP!cEYp?X: sݼh)=Nr~M+d 픈?PY|<Ȁ察:IY.QĎу q}\*߮gw鲻;c}AkjI^ݗ In)x?# D &L9$VP9M^/n ҆g#2qDvlXJ`#fͪ3}y[U6!f&yUcʻ!mg&.EY]T6 yO3#fUp")˧}]9@u6ؕCQ"[x2$ƾW]*WmfwV6KU%2G H< BL0 d9d޳C)hKQS5$S Q\HD=w>i"}G""1)rſͪї^c'mYxGisJn>=REb,؍q|vu+bJ)E^on?~׫v#.Te:}\-צ]2٣Omw7_G_;Mmʲ"ě۶ozlP͏WMT}7ᄍZ^(blj51N&q]#/ x65vNndooW+' ]f޶ۛKsZln]<޿{GgnT}03fxoM'UL1]_|4"x95Mߴͤ.@,FCD)*@T({?({c"Fg1v z_mԲG4Բ HLjfc&6#;Fv۩1   m֙B5vA%CЭxgސwMf1 !' o "Cș1/bJYv,f. cNUTҝarcDbFi 1 _a(?Hsӎs/ >[~Ã{I$DC5ٿ T#s0DMIw)3]zvDᛯc@h'lCŸ)14A0`7{xv"¨5~~:)%01Ae rˮۦR? 3Z4@H~xaI,}mAaafDyȣUYncƘD>{"hy_V}虍;$̈5M)4GHhLli g6k>_^\tNb<z] Dɴ JlQ3jY(C(72K Б:6GTcW IH2( ) )cP5G@ .PACh7EAg<O>d4"EO=1b43Nr\'E}xr6[-׀Ɩ]|c*OQǗ7~6?|ȭ7`ڙGPbquycnI[1Qtn;r1 (u[3",g<ݬ/ vlnd"x|\9v.epY]'ّHQtT F"{']2"Tjp||]{<{9.sxh7×, De敦 4YMp:hwB Y*b û=Al:<it/` E3 E-fHH:UHɱSzDPbGIwܝzoڹ;p w昳~{2! 1&M)E5ux~\׿#h߭oeK&emJC^"s$Gu9B1 ES`"*a $0 b]))~v LM)FǏ{ˀV:0G(ԆQ@Vb$69f)Iӵr=cLj&0104!$v< :f!x&T""! B(f׈JJIhj4ES6EbpdyM:۶KIx$I󋘺(.Nnoo²Bgvmw{]<&ٵM=>>Gcc.)QR"Ljo]N5nFoTLq8%E5>JJɀbe Y9P(rm' vZ6|[3!)͌ "!QXN&lزZLx BC]nJ|8`X,K1&<5d( aB Mb?]Xd6a7Gtb؋&;[Z&C%ɇGiJ))Pf`rJ'TyVß N^F'DǷ_+:PاI!%@@7o9 4U`2@0Ôgb@ Y&RxtrZ붙Nfnb77 s>xǔ1i' b 2dqpgnXby/2Y,9(IQ*r³gRS`&@@"P BS),}<)  Kƺ[Q D5EGt`d<"dZP%Dǁ j戣( jNW&#B"D=kbB5/"QAElv;D1Yfܨྐྵz;|9 Ouh]+z488r15SzUJ՛ד IDATbuf۶Z6ï]]]7}lc}n=ԁ&mۺ_^\G_m|6onݵr ޯVY]8:}zz''e($ y/>ii>`m=ac$}_QUO@)umƵu޻G)]]T!AU8"O\8(Yf֛͋oz<){%C(X&{f ߬wNjdQЏfE'$fv1(}׈ux{ o1l0ܶM;( -(LIZ;HO%)cSMDbB$v "1?Vav!o,U͞N0L)8v,D=L  sӻg!YxW`: N0jjz"jhҵ*0'BP3",2X dS܃Z1 4$!Hd!$J1z5g1%BDJ`HDU-C&E34)#HMnP hȤD-{v}T I)`b׵$@FYJL@dC3sa2hҔ4T9gУ R ڗ Dr7|L03!2碠(B]ʲ\׌wMT/&cWŭw:Szg'gEx:0 1<<9횮*˛.mVٽ՚Ilݕ'],.˫.RU޼}Am@]y??>~ѣO޾hSGFZ-V!T|q~gg^/gh꺭Xm]l/Iӳ}fǧ{tz4"t]7_ړOP.kQ}C(mV2O v @"W8|vvu]TӶCd(fcךe[u=eHTnnȕ>ᴈ"M_ A/g'pjn._DrۮeDeUu Ǻ.bg4M׷v#MX¾+QO|.38gz3+w73U價g` IKUWdDgg10*u=Q;_u$w@/0,X.SElb;556TU"Ea8^N LZݑ@D*GTZibR>45H,_04NqGGaM6"U M 'LMxvhCS9uXQA"jΙYۮDP0nʌH;Y+~1m~OJa3Ɣ+ςGW?le;%W   ,~XĞ҈DsdP??u Su]yy^7Ž t>֞*uAM9kp75{պ[1:gm.RL@ϗ\B`/D,+zeln92SVNSw DfnIS610'W"@X= [UU(X$!C Fdf@@xjaHRJ!) 4fD›[wr'!b 9CB_~lzCPϚ]rsqZ.vs!g M >|ONcm7C7Tbնs"|/_߼qۡ/ϯ6UpooHZs!ƺ~7n^]^޿[,vwv֛M:vֳܲi` www boH.\^mѣ7AP7Y js6"EW1Ѭ^ i9bwvw//{GjfP_)8*ܴnc췝@LBLc4V+I$9kJĘA*AM- "ABϹnB )W]7jUcf" Y\N%cc&t;<,B1ψV?̌!Jp,ZM-|.t8EkT!H KY tw$d Fvv8єn\T/ci/;y8b1J &/b`q1fó+ j$ f}_ kuM3[ 5SB`9Ayc*.2hګIX H 4CP 8|%/^~;w='&G|k[ONjB> RC- ԴA'$5,H^SެM-弬e}vvn6[%r"Fr7āxP]biȩ26p(~yV$i$EJ}vwqApd9@3#zf"7ݜH1 R8P*k`>Y$Ժa`q@BFU "˦n:zJdN%ķ" sL)ƮTU5; @̈NL *Uyݶ jyN3c̰Yj[t{ugvٷ1m=8: 맛?\|X҆p1 s<7ל]=W]뫫gr}j:==B]٬iY[mX~WЅI9rC@duޢivvTH:ܽ=kҼXHc2b6lB rN`ԶKC%Wscaȳvvuq9XB'TOkfLc-McQfL,w xXa !Kl6[뷀n*cJRUfSf(d5 Ll% "rYǔr@ Pܑ1!e"ϗlPFfJztR^OmFOe1IY'c &AiiOR1Sq#^K<K":yQP!@[LGKc{ZɬC+3YTEYڛV&:6 ^m"6忕k$2πTpLUq.=(Qu8`͔Asvi cE*nUrpw޹Lo8o?ip ,T,;}n;?3#|eB86 0RC__>?=6ˡggO-eNQ<91@#Bnl 0~4kJæ-IP͡m6")% 9(2 A* . ]\Uujb#E. 2iRB]& ѓi$ ԄK BMltSJg`E˖R D -Һ]NI YDV*FTAߦ4kSUb-Lwo1HsXm?h/?{=؞Ѓi5n4\qsHiMnzg&eZkٞ}tl y7\"7 Szx RP-t9j?jϿ[w_Uŭ;ܽރ}c wo߹}a899!o޼ۯyrlsUKE1G=8?ޝ/S5^^mJqV{ ,ݬg&fj-M)T; IS=kI(u]RCrE 7]< SLj\W̗cuf`Z7H @"jػ1[n}VEĜ-%@TUN!ݣ*k!$0uGW7TS,"d D",HDȀnUz{xgm^^K7wtWo>zXt2 Fgf-6m괩!e'҉`Qh椪jjjmGf]udٹq * ]_]{VuU3sfaD UU'6G?>r~_w>;;ɐjp7^r~MN=KDa.1[6pE;O6/ㆡtPPDZx~{?<;C<9=:88ۿ_~_߿{_-!|>vԘ=|ѣG;;̞=?qm*5w'>y&g[,R_ogOb~}VWsC!Io򖁟 nu@FGX.WCZUC$t~%58&bn:AF*”˽s=̷߭} 3iB?$Qn W*0SZE @]SB%̝r%D,AR̄f^W;~5]2aQ5pmzR zġ_ s^z~zJ iGCѴe`. "1#rviSI.7w+:B !f1-zܩ; @u^x lg_9 +5U D81YG#. 2^c 5  ]̀Wߛ=`G3xe'y:!@1 DOfv0r<+hh*ELX`ف>vd_<v#iߏ24P"w8a(7E7n=}ɩ&MG߾|c[C `\ Y`og jȢ& KizQ6-"ކ$a`95"a>@h u]tӘb.ͺ[oz/Ȭ*$申0QŀF mE݉B$nպi9FM՘t9(dlfnhX:"0DcHDD2||ݓ/~M{ iYVCp $Aurv.]vW77_|k/aڽNXfuoэ;3487L탷?ǿgyQݶYmgn9;9\_eϾɋ7?{/vwvכuwyf_>={n?~ΞvVmΩѐ[M_"25iU=gNo!V~6u}=ko}ٜǾGhʔok5*]^f)96WfLN1iU-!!yZ n]fCu 7m[DZJ5!:a,n Y P:44u,RU\g2) Kn8idwtOcC2(5+WŵgiR3^)iVl(0y&BF0 z1kHLciR& 4̜hY61Ds 65@sGBa@Fv௨ B:Fk(Z,O*:40wpc0QՉɊ}Kً#g2w{U?Sh?F~5!.UbTG3?$pd4r`"Q:,$4q-0Ȩ&~9e ;Tal2CJgSig;`Cy.Kj'/C֜ӿg'9gjgu8rFEzlK31ջ;}wӳu Dw af00BIk4O;Iֱo&kb.ˌ^mL]E/zw͞x"p6J镻3;Àc ̅mH`sBVaM"T#bFe+@Q CW*PIQRټqc1fڜủ73&7\.9փ [Ϗ5mCMŋg8 Iv1{t_o; ML]dkJYONYt1 g<;J) 8v#``Z8]]޼f"2Ӝ2lc}쎚Ґ }D+jJ: )PLrouӸ)%7WkF}!JMr̈ȁhbp 90 SIfNecv)L8Bt6S 7%y1*/$pSc',2U@FBG\y$Q3`DLn Q*8=6ptr(/E 72~u|Nb籟7Wv]Z*{ ");OANc#cipdp'bc,n5hjلh쓉?Yoֿ?bJ5 ́bA[9SH+3Q6(̀30d:MP`/@_Xv,^&}30 lA&_v19眢hV_?) XJ`-i KBW{I AK@'k fV5"D br/ 1(&M->yL'7fRNhU=*c_d&S-ג,+4rQ3`;3`t]Mb2Gba$3(h0BEIo\&uSrKY4AHg)e2ڳftBp"n 5fMlIF@P0 9![l}"AuI1N? 9D5R ZLWӸ>tpwQX&f<;#FfigT`Fsp,2wvt3:X; A@]`^'-fc$|;/ = T\l5g!UU3?@7T%mX4dLmUQVS379gS5HHCBySYJ8}X LP4T0 $Fs12WEZٙܪct&)ȵ G^#MϿ^{GG3@t!^ +=S1R$p5W7٪ݝތ}߬yp|Vs~Чg::{Y{Nu$i2Er`n,DِLݵ̉< &5kf$B.)E2ǜg-""ؔ DPdGb*ln͊ĤI]Bs&o.0dZ#lZtX-wU5{/_: r6.P;F6}`}׭vown-wϹİwM~|p/߆ap;"'?zIVm3wALón޼/nݺu|/>%Ϗ{Ⴧ{]@ڏ w8ח/_6,rw4殛ͤvU$4wp[7z>lNC]g^-vgO BnC5K٬WF*!7-ZFj rŽ;i nX|9 ]Tw iVXO;8 ;ڶ9H *A5gu46X!"f͈LDYW0 9%a0<}1>N! c216Ɉb,G8Rh #wtO:a#tEx)-1cS03S 둲_2@[_EcTSKl:>+;fhODnx2VNࣗP ?2=,28@V+΢.[! #SfJ8v`y<Ւ#U~hYu||?eׁ?wOrlEu["q&n#Nb2I؀i8*]Ax2Jti@ \A p3bg@8+6 irQ/DTg/^ƾ?yrpiBir]8z ^9 7o0  N[sxxkoГX$V,BF4~*qBuE"PG<=٢꠮ǜd%`f@B5ggV*F]F"LxUCmCU%h(j-Dsu45 @榦H̚3cf_fJ"\E2%!K<~5Db"E]Ηj6ZhEf٢mf^zww?n=mS?|iJadqfvHg')﷝iD]^*Џ>@/RƬUh }f888|Ͽ[˯Y.۪zރÃ>g#uɷÐg\`w~7n<ؿhkۿfGa6{m>zEסI9S`HLv> ZkbFݽáB,$BjEN=")`o>k+B4zoooVUl0$?8r 5njo97MUWu[UIAn d)[Z1FUkjYbRAD@,)|../TFldԡפ t3a"RnJ:-3V!sDpfafba %~\v~uen!; A1שX\ K7TuNX{z:)Z7IA3,qLs4$r`dF7^w#9 %5gmsVj"nj9prXo^8:?曔!@y"_S;'GAXF/LbF`s@r++!AU,=q'2AmT$|bҾ}b^yNf] szvt^;j@pv"VE̱*n\048Pr@\ IUsRAԓ`(TM2u@"Bt'S(2&hTy]HPTYuY 0G"'")['BDDTU5a]79H[b拿I9jow/TϚ#kZveΛ +\c&+3͛#^/gz{u*> ew|p?Y8\]UJtv~~K3x/??9;uG}wyVՋ7o.|/O?W?xfs]狅A:|hB%a<_?6V70p⛔rwTcl)7o=eN])ډ'-Y#q? RTלt!T,u3[#[И0^]?|#UGOA$WgUaШ*ܼi4S S"4"4պ Hl;&7%j3pHIEX Bb2*CDbt myts1.&#r ^h+'c됴kUfXߘ PP"`d7P3s-:lө{,TV6^@U[?25nǴTG/&D0WSёlt2p$BD99^ U,[TtGfw3BA~d^;:?3"70{+#1 _BK14YO|TBQc):EC!3ˬirF4$}N=XbþbH`9{F\hrCBKip0OOOG3x8zEX1I1#bC'gAmYܸIDQ }!!V"&lΆ5 Fj\ۡ@>l>81¬ [ "Y M=#x#0U5յssO)9إ{.23 Ws3US:LU8y$!wGP*K="?/X?Zf"A" gÛ[OcXj C:ݜ4lr3愲{qζڻ>;ޝωxȪs5hwo9~GϾbέ}Ýg_}oA-l^nvyuy|r!m۷o 쮂!F ǫbbϿ~>諯nGG=;9?nhgf}?ݧ ϗǏ?.CuvA<:ˆ!| }\1 TzgX–$@EZn^̚{7mvM>z+k!"e[.L!v{Y C4Q""s6Ӧ&)>f#'ĬZs6ǜ~P/!s],BnĪm۔iHBێ\] BbΎ3(npὮ`cU~FŰGDؤVPJnlT)u Fб:upc vpa0cwtw_LL=?'לGf0q!0K: eDO`O wi`ږ'0H!޾s\PIfu e0۴{lzNݛ.*޺}XDP4Q;o}EJyjb0b#rai7v Uykэ@sB +GPfHZ3 ait0BߩuMDjfI!H51^EIuk !K8@S1 @4k!$c1М؉]#  qD"jYGF!33Vu>8GS! @ 2#_=|!v'yH=1 ^7έ;>AxV]b8YUؽq޾BEﮞ=yq4kdݭ/.wywouuz~|'?Rݫwдumͬ}vG/~@ |rqq\n>/jWT8~V `x/@'m{)x[&GC"YUͳWˆ>v1u ޫfe{MYGhwٌM]vB0&b?h(epo*},Ap2S]1u0lLfnjD(U)<,jI-1/;ٔ W`,tBv ac z!Egu""3yB 4IFb˦qi؍Ԡ"e.QED3v8TEI =!'V-/*؋ y*\&fX \Y͋> cVUC%,Lĝ>7no~C8 $_wH?/l$B{D{}Xl\l 8h9D6a}fK/p2@0zqzB0@NNחFd @Ľ.N~ɐv`b”g{odq #n-BmHEIz鶶i=<L WyX9YEQuдrP[w{=>ηwM6!3@~[@ )9H{;[[ۧW@蝻Qh|h97(#F0pĄXNQ ɳJuـf]JdL 386JDJ|A瘌etK"#2IҔLP#&CBs1C@" }Y5fǿQ.}ŤujvĺMOcLeʝ&=bjQiFRV[3mBWDq6׋M <~={m"/r{d:w^״}RL?j/l_x1v6z{kSUpt߁|ezujutƽ7foZ,NdhqpVIS7)!{WwyM[;dG@ƨ<Eb pЖy7oΏ}:]]3Ķ[/ ]Uf65"eSBD1z6"1BR!ߺd#j)Ffb7UDLuMHe92S,"^RRtN WjBen 洩A74ʖ3oO͹M:l _+ K# k{*C!2a. !̛vYQn@ sy8ԫ߇>u5߽>p xG89<Dٶ}b7Z#r)&5ay`DLfJlӣ7p_^agYgg ^3_ x}+2~C{C |%r˲~>t;D$^XJfFE0HjU5]*59^^ XxZ1UUIhӠfOO{0@5Ǻ$ jt\C!;![l0uf%_aQU@e6JDRR1ЬBo$znҩ#;mcG>I¬d -3r90Vfs.Dc$ONS>Kј@DΒQOs 0##ʳ!pe(% ߾:?.TEBflk@AќcRgMۮq5_^_IYfUW놘Ajpf(/.PlL*H-䃊JB0 "شjRl/n}aL"ň{mO$U$,'t"XD  &K)%I4yA IDAT5@3.v8d|>_,;isIpZ* ށU; $lL,"0̩.E>/e!2s8*w)bot)@ OFM `(a^kD܃w.7o,f8o?`᛹,"!d&UA "EpIP՜cR67 R%7ȅ"DӔ3H,E Q|\4 ?Tb{pq]Mtf"=/rGyuɓ'p=}qrrzWw~Po~_~qu}g5գۇ?[O'xҵwwwx1ɨ=g[[_~L[ۛӯ~*.ub4OX]g'{§mڍ[^e^ǣ _Vիړ 1;;?ZQؘ3'XV)YDőt[[t¨W}'N_bڎsUqZ:fQy1hu/;WVm2]g|Z%zbYVBO&ž8g1&7ίl:"]̴M A*Zg&bP׻Af=Yf4`6551("5N4ea&oNę6|@AVq}k܈ꣷ7@M zL HTR.."D|*DMDAnm!{~}g@jws6z~y}jtp0?boBྨ)лeZ;yD<B }ϽjɌ17)u*BfS-$N (36] !zrqx6Sfmpbl F jĺ-ߙ϶pT??7/^w߾Wˮ |cŤ6-GISB`BmۦUYv6 *ky2j [i۵K*dDRBpKzhRf.rS9D)xD#BFpI%i$`j#G@fbJdLL "3RNS˚\ex4v mjiUE hdF)J&Pմ,uJҡZtE(fyB$br~ *M|1:?>ޞ%S$ͷ}M]|y[_7ۦiFOl6twg27*ڶ'$q{kt]?ӘRD_}~\8R9}b1OnZSU׬C>i(tTM_4]9mllFD?'܆n0޺Ϟ!8:P-0+D0%Xz _H7C  V|& YG73wY? 4|vsysQ5ĸ^, 7vbw9AE!>kKB6id!'0F"(dS>dX_c0ߣz,πwm"k~D{[D3С~ü39̈=G2d@5pyx(;0ƞXo'p4lDFШ$)6D&vmJ$Sumz򳩮WmZ"- $yڛZe5Wm L}px\6xkY^/ʒЀ"2sEE3'0UTB MA! $ 0o50'tI*GM!%g&D:@Qԫ Un c ɘUDO3"1 (jJ%_|O?{9 505PF1X\_*s1,1"MFURE-Ngˤli %Fq̢l?j{W/jcr dU%z.ʺVEy]UA^~'G*!(,%@uݘ)1!;׶ɘ 2FjˁJĈ0OT085i<ٸZ0sO{  : 16ST5#rf1zl a?0`!>im=n$ޓgvL 4KgO;6>Cn;-3y~DϜz窐dn^;: S${3vN`95z z~oS7U%Idl1UtĘR|ӻb={H`߿}uƻ!Zl\:} Է"*\`eowߺ{H+bB~vH4 ZY Mfhgb9=9;}uv䶷v,A Ԫ٬ m@ $@50P@4" NLjscddۣTc3 zzyz|ry:"")(EU MPT+Ɉ:%,:ѴS$e? zTRu(2"X/(Rdo6nx8e`t j9P)SbR1UQI$>1'9erΑd*77yj&$I뚮[KMӠAYj؂q `u{٥ ӮwwѺm>/.Η |WT{g?.u^<7wx|w'ŦvG/ϏuعeogU5Z,ggϦxTեJ74Ib> i{tV}azm4eݬq l9Wb<5Y.d.O^KfҲp!\^uQ$ɤIzrdEU]/ `y|Q^S81h#s ըrEiP!L"xD T#ikUI)bL̒:3j -"tqMB࣐mHCDsҍHnv?fz~ɀp z_f5ԑ)Uqb ,Ƞ+}o8U}u3˱oaramdty=-${Z€ H"̇p$v~<=\Q5IWe3܉(dT[{/k߯b9*FvE!(9=!X40&0S3tĪ@j=f?}+~^pcF7pdY O^n^`]\_sE5HJ-̏&x2M7 Zn&D"$1斘z h]/.@n'B h[Pծ3p uJbOGUe "3{ըǸ=ƶnwff)F42Li[jƈL="9&GL/.gtL$Yc%Ah$x:#v lF (Y `픠hd>$SL j0R rs /?/ƒ?k@nMdo_-oM7#D43UhPDwْWO}zԭחW @VPv]}vjz[|\UMӶ'&rQA%]9Woft:i{w xfIm_ Ξza%wgG~ Kfj hHU5b9 QUP_}/֫uH58U#:;cYooM剮ݍŪ,'MsYέbP@+/lӤ;)\{RǎA"I=)*%&CI2uP003#9₍1xFI1 f 3ŘI)a(ɇ$1y4!|ppyuE K~mΝWoS{ߟW/fPʪY7Q|Q, B ikǸp<'S\-VͶvvW孃O^"흞}ᷧ/~M.@ܹ;*+fxqy6Ƣ,ܹ$]]_6roP~_5u9髝^Lzlr5:>r1nDeQ,o}{W)^%u/Wb!$ ~5!몪(X-WIæk]{#G]C*UeZ~(jMcYm5*r.WNĪqե@̞bctΫZ׊s!NRS7ϻQYDQS_XoMϴЙ^fцfh}#e a@2>)a nsLQ(<3"7Ӄs~s`n8^Ӎ}9ʔi6XhRICᅃH{t60`Rk b[e IDAThw "yw ( 1eٷ*;@ILTij)0aN7@U4g~}.-ߡnso7.'ojF Ei &GX@ (fؼe?`"}E~Ljcw\k#@>SoF@D֪98{~-}㏏_rtuA54mSU9CtuzܵkIRn57xLwd!dQU2h,R;AѶF¦kW)*93^Tb25ELqK!{IQ9S ) #!]ԭjm&b)Ra>w]+gǪ%G0 4Tx 0Bj L{)%QC$$IL98Қ)!vk6yPQ1:ʏo}YvޅO}x{kSquccmׯ^}?;xM5o76g˲(GeJG*xBujb}ەu]L̍}H@t2 W#lqt6}WLwr\t֭;W]Q9v?G`EE^-:'=>}J=lck=_}9o]Ӣuupm\^]#l0rq8V6T .-^!e"i;έPr5.n]pHY֎0&)HFLaTzVEVdXŧ}u4mhI%ƈ]rλfs KTyGjQ:9EB*EifeʢXm X߼|ifD e栖/"7,˻a ,3B)Y&KrxU1w)9"*u`v={ fxݘ#W!F]"@@ \pD@rf9I?&3^$V:#P@9PU ;0 #d"Lג: `_MW>^|WQٜA\ILjݘ*(nl4 8)yxbځ/]jkH5 33c1FRrdXZCb{PF{Ŕ ׃є":& JS|ʥ!gB!#210AQTɹHRU^7mfJb$1uIs,& &Œ,TXDI$>CɊ>@HHQMs;0Cb*F4&E^W|(/ON?:<::;f&CwrrZyrzp{gZ1X#1kw*b19lcmtA5}}{E5~pۇ8ǣH+_ׯ^<ؘ7{{!xck{<'sM7_틈ggI|'ggggt:ݹ}A(5j}΃ʽ;r>}k#![{x>ipb$`2U/;hֽdu2"6xT6ejkl6h<*Q WD\\6h1N jzra:zr\6 Ms&*HhsS ޵];H <iITRLը2в̤R#"{6]* 9)[o!^ {*W#[ Rb?oAb6#VʂsLY[]tO Z GwP6;MȄ8WJo3339>Z.܃~/];O)C@D KoPxso-g"XBDb"fϔJ~_z' t"WȆS(L"W$7ylV@l2D Ϊn$tc~y4n4k, 1F@"eyqy &Ƽ}9°躧/_Y뮻nbqg{w?{v$x:]7͖' )4נP0GIёHʢ@ YŠ-bmY[r٪f<fDl1` cJƄCVU5J Rl@5E"$I`&H\ySdBpX: Jfʉ<T d(a2$,_G5l2U3et299;{՛Eݜ5u&e9zv9?y 666rsyŴÏomo"9e޹=ϘYDtW'Z&ou[3|VSדd6ՋEYz ҇Zf-A$FUu}KĨK:ں8?-aRjGE)!&WiuswE2^=ZG\kԖ8S>:{xG 0 EpX1ibFb@8bX3|1XAΣ/s^Z&LPI@Z$  y䐜Y+sp^}@(μ8Tu?G2+Cr[CD=}f[.QU}萐$t<޼zӶ! *1 E59\\}+unb<9}8,O/.~g|p7_TJ?O_!VbXOb:3N3_?9?MwTdg?ߋ觟|zvz^ףM,wwѝxKw={VW]^9hw>~o^|/N˛fu/DlYN!Wz}yuνɨk;Ν;eU߻{()!tyuU6)ׯ_WM嗿8;{UyΝVVd:Ӫ{ރ]4翮\D]d+-16l 1̨ LgI׮0*JTeBeS`h uI"2m5e*&nM]i o u(J# }u~DXUe&0]BG3dfDUYl%!|3ݹ*J"ƭ9$[m[*& ø1`>Et-0޲Ö˂ύ?[]4ncr_M`=Lp{5UC?m",-۾- BhEIno= lpHh0 fG(eBE3ղ=6Ө 9O?Sށw돹_^ -o}akbo|/^=oUbLQDEљ1g.S^TƐ9z8^5qwvkʺ;;N"G 9 =8((3=>>&ɴF`^-1#?jԤb".tQPsrq~\^G7wBD_xǯ%Ã;HBY.ӫh4n6|G>|ElgKoN{}y췫]2_O/ FW=o4P.U%]fș9x[fz{wKRZs+1- 3ַRBDDbݞNP':a#fQ$e(̀@Hl"I"߻\6ohGo~~*mDbmmZU U5{DADқp[D[|hf7uUV|Ч둴)XTUSQ¹zLI3D" _eY!bJ2֛.{0{rl"i篘 5-к_CKq<߯yvlbg?0"r UCǎlŇ4 4Hŀ`_Ykp];p̈TtQn&s- 1_k~.D;`e6\465o -[lA`1BpD1I6@3Bs eR&-%uYlTC?nwu~/ޢ?Q%'Poowذ#_C>*\D\n֞?oyr"fd(|AĪh]ab %#&Y55i ٮSsEuJYڨjȊ 1ZV#4%z֪*!9xO=cNSE&P1U yMljHfdH*p\8•H#%GTŨ=|ܙL?j\iLԯ%Y3I͋hե>& BbrPe }Քͦ,$Vf7+uk&T4(@bV 2W޳h,%5ǎnͺ3타)3{D1ƞcdYx ه\^]eN~WB݀)5Ti @lW+,뽃ö] $P9Ǘ!jRX̀9 giT,&;)0 1"(Sׂ&TWPII`FSs{0c榪D'd"%'^//=; Qh8퀈l [#r՞Z %EK`Z֧iq;[j !]R߇mV}̅^RL`ʤ f x- `@Uf$f bHŒ%F!I*P/ ̊H`uhBD޹»?{x0mw3LhuQpU?f7eS7)j݌GѸ*MT*+pu=>_\.)vP{0+_^I\.o޼Z.WkIߨ? \C`Eׅ>FGըGi1_;@HWqӀUp\*ԕJza~3?%5߼'''g!l% p]7H "ڪUUlڔbӌgi{G)JAD]߇S"6m\:ePAfme=L]7!7rOn̔7#*lfp!pH}4{+?Ѡ@pTxF .~ϳ:oχAW-3mf j%Yw@͒Bm, dA5"ݢ`ME`* QbLRLhF] Ԕ۹?m<օ/7 F,ID9`j=@U&жAr$Wb.{P)UL"Pa.vFjD&iUtٶA$*T7C=0lCe?Ά۳D|aU (g3i{XAr>a^sTS3ީ"`/Tzr)WR]1D(IJcGTBȶ'+6IvX3&jT@K,&L# %`^A hOPqчRҔQ %S R4ᢜLg{{!uq•ɤI=pZ-#QcvUѓ'?<:?=(>|ūNN5w_Ngf:WpAInEq98D0?츏iËӳf4~G1IU? mFj}5 vu]L'|/~|9GMS?;EoFggg̴7;~Af܅Txw lgߧ>\X/o~]o\5U?{pw~}~viFVՎey]P6>WVe>'Ԡ3RUy(}p1y"mqn$!h'g{㝑+ ڬ>|r}ui%&zӶqcƪc@f%˲(W#]<;0dZ˔V$;99d jHfYy=ca0n &ҭsf [aqm-sm Rmh|[03!NcM3[coUBeUF23$3˃#@[#dl'Q!!UAUfm43U-S4L"9w;GyɁO} zߜnEF03 9 bH"D1K0Fa( HPL=xirn1H.B-W7"MYL.kLZrT;ӗ'`/}͖iL}N(Jwf0lڃ6ѽMۂ$STfO5;RA*G@"0 0}[9I[M a{f&4]J\e(ԛf=R^`gLjh@ lʔMA d 9"3.` oSKbXS(QYz1QUǶu:J?|qG5l}hg;ޡjZ_ p#!!;&皒ΕK*'W Вs΋ 3__-eՌೇE7g/ zd2} >F+j|IS9>߿3q]5~tuY=yٳ_ݝ_^Gz}g_w˛7!R5~ dnD)߻8I?tgѨGhnjg~ջVx\ư\iIlӶt:n6M}ץ>ԕc05u6}oMQYJsPнt:-l$m7Ab~/ٱ"rgw}zyC5W 0kryo_\~_mUTM8:|qY֣^Q6wܝ͛7,EԍG{wbrw=r1#]^tATe$HnQ=~{tiRAig{c:~rogx]T`'EՌHUӌTWnVg_Y\3{ 6)$Tc,"3##G#Fnۍs\UYq!1%91wr2qSx_dںbXLؑ*t]`HPUxD7Nk;kus.onpggwE]UׅfH fFqH Eت̐ȶ0kn~1!ӁkUm!3jy#5H lΆ_BY`9GķvJD" -Sm2'lhlS[L:ڀ#~u gB[Cٲ 0ܿ)#FМQI-1YI3j$ǜwҀ?y{O٭_l m˶C 3'Ot*ý]$BŁQ{t ߻g{zЖ\3`(\Ն0vV@4yZ@"`#4۞0ج7 **@-mqS7bqN&R=wo9_;wÏ~ݫ bN)$?SluwLZ6QqSDrw%ZZ c6O@&f,VhcE3&,RɡÜLjED(`(=QfT͜cIDM̳CBSҤHЈ ejG>`2F@q]Ue  r@1n/_>WPg$A狥c*招z3/_?}}՛W9=|켋h4i  @sߛ콧Vo$1& }TNT4?)mGO\AVUzL&3fWWݩ, XίDϼso_ޝgWmONbLg׿o:J>x\588w~y}czLauӍ/ Fwf/y۶bEY]+VELuow U1Ǯ(;(K0xUuY:rn梸uY.VO>rB!Rnr v©*U$B#"3pjF305>4͸djq*0y@ Ĕ9횷CHU偌mlKzJh eeG q9DEp9F~oNL ݺd?;|]x n{ťǠ{Kl;fU7j?D0pmqp>p#$33Fa8HgrC^ :զfޕ@sDW]߭w[*/?Έ-?}ᛗ 2A0spYfnqK~ڽ\DC3`ا_]751|YПY7*vq~Zt2?~lDx7/fWg,oG\!F_jO?W_~>zכk JaUW}UU/-FP(h Fu%"@!cE+B%,zfrEi*}p#jrM7_,n7?;>9Bɹ2[JB@yb2S< L&>f\uUwuuBeӜ\gcgPdRb$򤂙 !!oہ˽0OdFT>?2EvBֶ9*4 hwUeY8 v+]ۋ'؀!ٖl(CcCk3ʯxi= `e߆%G g@ױ7 -FHF$f ԇ#BHILDȑJrEOcW`ֻ?7prd~ݳ^|1;ܻwtt!qND_W^ }Zey@80PpQxk˗`[5pnۢP"6 @0-XTaI 6F%HpϞ)`;ǞL r2!s Lf 1>>zr}IeV:%Ed.'tD;w*4hԡĤbD$GIIh5( )"3=s@4#c23&6IL# O/&dN!HL߅J(`)ݽ;]LǓ|u}L `o6JjD]-kB>[-] DDTT}Q ;W>,@5^†-wwIw/Tʽggo/Ooοx6` ч?ׯ_޽yWgx:ƴݗ߶Ztw?gvmJoN_` 77lV?UM<ٹÅ{}¹{zu(]PU{uIק )H f2sg.&-m?O5s(I"u^;Qʘ8X(z43%Ҫ,bZwٝHXtt hY* \#jLn&5sWb_b2GYp&sf:F2B֙a5CA:͜%pP!zh`XÁ$D-4/ J IDATvLg (^lV>d36X 02k&i\⼡h$xnݐ{L#h;-y]6ȟ7$|]rmر($D<f *\6ͳzAE{V܂Ww{避ʟ@7@)% $]zZPAD(ѽ6 k@Um׬Fx4}uLr3У0AB̾d-͛xT=ﯗ7jgoj n>>~4z}x"|S0ݯoڙVU9Mp6Eb9 |a,.`4lZ՞ e٬Ȩn%YU徏E^NU rrrf}#^^xhBl2Ak񤉶Y-WXsF̗",cdC?*2?W+ʦjl:vٛgL6h6! " 0T#mM-;oS+uiIbr̜Q܍ s϶oE ``ȼ006JU;9@a(Ì(ٻ3nfp':@+kVGm' 4"1S5"3FcG]AYb9"Y.f?Oi򛯃sLn(Y E BЛ!DѮ< C4;PH>,"h2'WEhHK?`AwgβiJL$H `g 0`;gM8N!!  0kg,y*R4PU0ŴˀS0!FS|;հ6c{37}P@z8?`1(ØLYK!OeXbLgk_X9rQ0fCXxX LDP@c T DeuIna IFc!ch9;g(D} bVF Thިf}|fz{5EųO_gCh䋛f2O&l<.jgWfy9WWؙN=7>r8Fm{Sy6/sFUv|4~U0'Σg=Xכ.G/^8۬o_/~pr;G.F'Ηf܉Wl2޽wzO$v뾫 ?vt#ebD>}f2] }ͮro|VWjL jܛڸ*)(RCTng.Cl:r狼*DPѨL =cT6Gg/9>)$2(fM۞ ;7]&󛛛ƌLI}FCupRMY<ږ6$J/)!i:5%[_r3{7fVNSLH)%A@N[*1>ffA!!`G6̝ 6L\%3q4-?$U& 6@C|O2$!P@C X+&%191Dpue@{1rT}tQ*E8;B $_ 3?ZzMϬ%Hi!yNHiDLj;S)BC0l4 5(@߁& 2)h P"@D jl1 @p˂ỡ 1YOƓi>?wlġ'B뺆Բ-<, 1Qˀw駅~*@͘ e*;8e'$޹i#L5b}]ӵ=jQ9ڶ&`e }4҇ Nb״40u)X18TSAFfDD=8R$5QDp':̈]@:@`)C%񾌧3}* ` H! 6& F7_Y/{prȳMt1z\}ɧ?x;Ϗߞ_`p6˼oۆGTs ]_X߾Y/.BZv|9juo_iE+ 7IL$ϫlRŏi}}՗_~s ׫lo2c>ԀYG,E>ڙo˫IӇ>!۳x\fGǏ.on/a;PbrY^9{qVxWYu-F{R_wbpY ]?c;[hh&!HTD%hmĮ%33O?<.l h+!Smtd|DP iխyb-+J˟?8z~r$pT*"f^WF}wTXU [*)MwԎx78&gsQ sr\Ynz5)1t4\^a=eGO~rMӬu|99l˛ۛGݿу^`GGfӽ'r^<Ư^~}k G?}c9ڦ{>V'O>"_JTBN?|UO>Ջz{Rg&lsfu㓏bݣ%+@E]f؊i7-Z֚F̜3NbdD~zBjБwȊ]kMۇN&Bd򻻻*)1}xY4mV#B*z IR콱B4SB L4"1'^MR"6X79#xGyNw;3ؒJ!=FUynIQA&ubqnym#OHF# ԳY̢ jDH a#1%nDe> Z>O!w{mzͳ=#:0P "UL,#TTD  @[U({CeETzwG&`X=!;v=j |Y>xgVi]/A5Ɍ12;mo}a6c`0}lzH泬!򄌙i`S+bIh!լdGH&:՚rr@2k[ p2֛{']]{LTcaRK쪖d `QL!0r>B F621:f"$dd4bK|Hbj*$jnj*yB/n>iMѤmÝݶnB LJGqYT/߼ywYenYw]|pPYYȌY滺 ҋqYvc|qpXhԅ~պ ƻrsr}PW.f9veP9(O?hg3~<݋"/noףjуj?zqq;<|0]=˲իo.;MӋ7?y3x<~{tt׷77^^^}?9F*EU(gŜbznV`ZEmBJ#첼18٘ H̳IQ$c27V qg}i(:N۾!p5-ǩWtrދD$!Y]7ƨ^LS s) ih"^ۦ򀉨D!U-LhDmXSD.3q"rn :wG8]ͶW[P-!ӫ%Jֶq ;FPZ%ށ?HtoJS2"iL @v!"g59B>OC?>^r%~#ٳzDBDDTDMEӰH}/B^0Z 0(ց9pI^3p YeBzGDpÛXoƻ^ nIAwC8ŀGI4߹Y`  u; @Z8Dsԛ"B2NI%"BӝKd:u{Z b[`PmS'׫8T]7˫`}C*U兘t!ա KYH(@54*V#:"H322+@]YN3Iͺg&8|Cn^}\?zw>?:8ꗿ̜_óP k5ȼ/ۙMc51E碜gϞ]| 4X}tU_xϖi+Wob>MsmK~WzSdE|X\Fl68T6uXn?_GYg|19<8:x>b]o?~{u9(ϼ*4~]՛_+j41v!6qshuߢ(flx\a# D:G"a&qv{Hb1F `Q5~@4y曦}ߦ|\,AbQUbb $ t\glYzby6"Na(9*r0cLQdHlS1d):}Ǐ?Zo6o˳7o^fh<힝߻w<.~YƟ~EYoރ9r\M g8+vj%": ׅ j`c2cҒ1Z"X =Pj E! "%QR1I,`mf]W7MsDۙ~7G''?b>fYʋ|{G>n65uejLM9"V2=UQr:/?<NBgO46۳M7Ȱiulvyy}qycٙ߼~vq{|x"1J6#зoM>~ůo~ŏOxV|4DGu3F//my^7o^?>z,RѠQ=]jYB.#}Ӷ]d2EY+U >:Z,WL$%#Jۇ b]SdsE!AR!7¶(2 ,p&̡2*f i=Lٸn )_m4\:33c{GéSh0&L]λ;)ɹ34{;h? Вw;xgL6@RHߝ tȻ8h̬ Y0`gs9 |{aWFmMhwnLU1ffridl IDAT4 }j .$-0PwQ&ĆHC^`YZ!t-Z4(F.Cy# CYB@Ac0)t(j@Qй"&=t[t { E5Ȓ4:m2s18{6XC,\NACeEyl6jYe7/a!.b-1tyUĢ- r_ik,DA jL C<.v)Gȑ g}+dFNͅ{aPU;"Ԙ(1QVЏG*m9_dߝo֫ohtvՅfj{quY^\.߬MF"LL̩U3UCgž;ӷ/~.>uQVM42w"m!e'LpBc|X1tT?_~ɣ'O+QqڶoGenV݃jdwrӺwN~7߿~Z}ltkvU^4}F}ѽӦ8ݜЏ۫7yF\nӶh<{qvU6_B%6QI"uQۆv厫^j$G ƸXvG#4CfgUAzs_׫o|hbjyY-noY b1I>G`0U1,x#jHYT %1sԄ6R h.هDh*(3z$( <  ӿbbh&#?TDsoR[ap.M`7 5_03Y{ǻ(0ٝ߳`DJ2`)%rBb?n $5PB) bЀL0'0Ө PQX5:wODwaQ?cw'<}{ vY,z0Bv7G@ fx!\e M8Srrjk!&!ƭmM $B`bPҦ3B=y2/"~3эAPӗ囋[V' ` AA v~jی`2D@xabjz5CΕEwکX׎r2[6u]cY/=].sԩ0q45'3MR,F,*@v``h%i dL" )#;4k Ե½ !9!JE 1*PPeU͜1Vz*b$v d`Iv ^QYNIԌݿ{{i뾍E5}wuuvyc0ٙOg/on.B]o<|g_"Q5*M]1(f}}58=t_eׯ_e}Ѩԫjh;driZNcl6ce/^Fk>SDoug>C?IW&ͱ*U^ӗ/_W"޾ɟmeX]{w _gׯ}lv4F|>^nwo.MxBQzuO=x+mݽ4$~UTA^ɸA֝4ukc*yM,2M۶(y'?۟}U97s4} CDrP-f EF*pV-T005Cބ33'jfldp'-|zk`&`&Q m{YtGTapd/ )Zj;{d:&cfIhߪIH5py*ڊi='0ۆٽZ4df)pfR# ý'$"uD]r1SCdU1cښoÇaA2h[^AH" x:p^` }29n|Q3ܞ{aׁw@ xb!@V JKy9h|x|jtJbF'GG_yG잼e_Lb霟v.GW/L{"lB.ppx/mz!W^u{;{'sw2{ճW߿xv<!?:=elcv/_rGivq4∙IԜ˙\۶iZ0Yy̰nBr(˜T$s,7HH͈w.//T""{54EL jLlf@(!%ם4(hFB&b AڀDY43z3p C[0{;ci$yѝ'3޳q౑m0n u[A/ aoЛD$φǸPu -y4" `L`$  gs̔X/?L~X?}{}~# (\B0( `h!&> [7) S-fy1Ao3B D"1/ȈX:&8ϟ<ޝquA__ޒ*eVա~d:NƩywVOW"we$V+,s'V;ǹpe1w;v̞HD#JAU"X_7&QŨ65M5Mӥ5M+tA@+OYDF2&`jiƦp6@I(OaLiѺ3Q" bLG@AUETMT(QCk71}" LƓ+BlhzLrTf1O~CS6ֵ=9D|U1y1XQdD$k۾Sgu]{t/>irS7ȮM^.^,=zj6ys4zO~ZEU@]o6jΓc&dg_e"eǓxp\TjR.?~O>yG={]eYOEadGDTV+DІʶBxQTGR^%nT]rϥF&3M?Sv 5rU (29&ǘgy2fIr7;PCJ,D-hwLw+{Q|wW;ܗKm(u !%]QVV:8 DKtm( OsߎQj`'P1&W(|cޥ>cf>课M >` Q3]*zݲ:dETE$‡ 1Esr`A,л5`0<@ ShquWoTUɸi朁2P"R7 1Ƙ,h4@ͫ [aȱ #!;@#B|rܵ]1tf$J!BjA40Ns5e:!F3"բj@jT&%$6;&hE2?Uԣj<?fٛOW۷wGQq䨮7A4M. ɷH1y"xiXon/'ӃGOl6;P1d!^]߼=?7TDP߼ysp_y(FٴmUUWO|eySo̭6'Fo_YPfE,6uU׫h'_ r蚯t2D?'2oFTڶ)͛|w飯jѷ_/zu{d\N&sܖ4Gٛomb˘{GgfI B`+r*n wHiU01E] "eYxt4W ;3@@&VQXԭC gz|"0@0ΉPtՌSUTNn&i߉-x)"l[dNJ! z>?=W:n) bϲ0#y. +] 5X4'߽%$d5AtLCxnv[mn쁶v };H43H"0E31Up6}%ARsD^F}GpWxApMJdXlU&`g9ƾOkU$gI5] Z痗U?Ycnv86D6M?-u,8e6[@@0!^*ȁaƠ8Z%z:#f[1FOPdBzQE05#f%bgPbJ$5h]}UUyMh\3BH1r}߿|n6!z^׿:>8݋Q8=>5)r\\,;OQẶj5L Fe?N_'||Zݻ?5_+j]_ruz|v/f3绾ެѿ/ߞM>fپs.Pyl..1UA3Gb9Ο~zuqurmgoڶ9=};}wʱeexxLU`x2UJ- 7:ƨδTƩu 12SEgn殕>cM9$ԟK;t"A7On׷K2JccސuZssҨ-=7$+]kJ;Co mt'$8O%vF[` "0uw$DE@U`H쓷Ӭ?k}AҁD UfHw|ht]tT9 1P0)(R905g΁c`N=-'V$QQр1:HrMcȐ^@$1,N)Yd AKrG:XP9$%au׌GPnpnVkZ *0#Fc۵0yoՂaU51aF)bIɐaXLD9B2{+Une FfQ()hH+6; &D}VKb'[We Cbp}s;[1˫"(mӆ]C(B;vNū󋦭2^zqYwp~4j0('{/_>W7Ǐ?xRKDD'Bg~kks_ |W/OjyWx7;kW8\ԎOUu]흲̖whѻ84uvD$ח/}{wb0˗gM,>CRGr8rڮo/_469Pߟ! sU1s!y궚Ljeh8.,YXD!ŸȋzxgϾ (zVQ :Qf=xI "Za1eUtuhDePR0=tSjfjB9v]U$ dc7CB0Ϝwh$vui˚N$we4Uo3'~?#W3DL9tbltpͭ-nCÈɇaqgZ NI>4l.AރvY'C;oi߷돺5@Hj=C|rTDԒ1$g윜#h ivʿ 3P瓒Q# ;l`Vl}&v#)dYǫ:%QfK4$,dUWAWۺȭA Tv6DGv9oԝy!núY?ĉɘy晐*sTM٤i0wn\F n6G$cS4F4$ ##$GX릉d*4,PG uD fHN șޓ1(eDD@ DE~ "$ȑ挌%#YyB>#!Yբs4,'_LG$;?lN˲oz=r~z~ӽjܚ9V뵈 &e.VMU5r{j~Ilr?Lv}ho_^Tp2ޚwOݽx%/B<~ v={R/֫V{ r~~w?nsW? hf$WH٣GN'_˲Ai|9'mM0g p:f>.6M i:Ɲq~}u+< ˼(hPx:hۘDg,/U(UeV`JU:<|2bфi$3##5%FʘV˹b"-(),!*ƔKɑȀ Hli }I`H]/bʮf5!dJ];M 1B9z",g8P NARu2G}.}ZQ4d\ Znxzd f798ӵ4 Þ"2$^5um @UKynbts ]? 7&-`c-DMeM>soT!FvlM} ^ `e&}?/w/@ I9R?\RG ^"bU'R y9,KtHp V\ IDAT]5 #tɿhU[kti֏ Ơb-p#Bcƚs tS"LfLTS^8T}FLDAgY>(:@F63Ml\V~ISWfNÂ`G=Α3wy髛;~:/q9؛n1QP]Jƃtm3Cݮzy[EUxjw57g?jeۗj`FΗ vvrzUHVU\Ǫ"#|nVތ=zndj, (rWW53Vdj~U(cfH m|HgUUR*CBtfE'E rL, 6m<H/!m,Dt{Slo. إX2bdp#v)Mzk:b^^0fnICOSɫQ L)Aw7H?z՞0Ժ8MUu`j~=`lrIM@DR(N$iL)91EQ$! 2CT ]{ ޮ?A&e Vߛ4SH4,(RU)WS6HW_*ft:a9c@؂+7 d]sD e֟@2$A5h,jBDi 0* tP҇I o7t1 ð(,WUTfL[Ѥw'pG/!֪:i*i46 aVf5!Y+%FE&@PcF&BB@%4 A,9Ȉ18L5u T0'$oEqL3r4؛!@lD -y FxZ-/74ZQh4|5_,iۦghj~wqs{ xWWϾ{!F&"sn4(C*WL?>__=%' A>gAz9_ip8mCU@gQІoVm!|_}Gxnc?d:W//_ B[xqm[>}Zh{{ouX]\_v9{?hbQQrX.wy>.<2Lʶ <:99$kf8[TP8( h LMYMbZey~vz6l8"Bm`eNXUE!3cSm^@Di 2L7%IS.r (f &~" nOWTEQ 65JidK,2y Fro_o!q W8!a( 9M!Zf:sZچm*lm;s-)}o'6k"0J‚R $$CV4~SY2I7I7{oX/IA޼B^vŒnnC BY@`u}0\szYpr~I,3@ o2@F~k|aU jTԆG0\]&b) 132b ┆* QX <̦bO"&c_)F"0"*9` "U8tt~uã{X(ЊɽE5ZgfN׭@"x}=yR}&u0{cbVw v" K"f`b2-F5bud#j 8 J )D vH !7M0fO>V)Ž _ 嫗U]ZA@h8~{~ݽQ9jB(Ggϟf8=J֒>sM#}4T_T,=}uO_~j!ԵGuqH YWyj ''A9 b˯t8ޚ4]yNOxb{qu޶2kEQelW}}_?g?=9EԛˌR`{v껋jH1jYU Vo^C[ 7*ղ{jM-b;1@@0ZE1^1e=dF08ϲۭH<isQ@T\j˱cUsoۘ"βijf膃+UTi645 1YC&lJ=DfbDhQa29 όԐb\=3; Idfmx!{nRsKE2Ҧ=R /??ޡvc1f}'2UM+&Cw1Tƒfx3`!FDLĀ,QTTQDXrxUDs)_M?]opΩZ pm.mz `Ron;,E&t BL`8}(= hC@Ow Q°TUB;dp @}:1rE)l jUp\FowyL}w "h`Y.qH g:n:xS(A oVԁkcD]s@Kcﯮo;~w8,3M*j1 b ✳UD&jFj(Q:gj6gNjzI{~E5c8Djd@qQu4C(3r5 !D#!Z{Y445$X7)!30PxdIYdyY9!>hb ǟ,wͯeLُ?-.fWׇ;Qqq}}qqnλݝwpo_~WyF?zFArzPH=ݮ]1//.ncsƦ|wPU% vl6VU|_sfAZgMhB4Qjr5o;w7WG~wH<0_ӰM}}GWgGr1_YTnoFE9ͯΟ_ݽ^|x2b}w: FŘq9ukyZL٠7cUnTY9鼑Xtr7_f΋4Gf u=+YDu|^8 8rmobCJIc23F9GHhX @29 @j@ 3K&fb[%{BM0$ӄpYUS-b71DY7aS6Mt*V]8 &X$+ J'-ԺڕkR4 Ⱥfdztj @E=oU și{BxR0 TEmAQ5NQH1,%V^NvX֝cnbb}朋R#RGY@Su>%D?UMD $Kyư\u1@j(Ϡ ewO/Z<&y@L" 3, Zu ki ;$J;;eS`F` h&e/ng.3.raQ^.>]WHytڊEU(Lrёt`2295P!3"# yD'1`CL8F#v%wPc!3 2P@}yFsADDLAɣ&ӝمش6U`r;|P};<Փzu||\u9,rvp8 D^]kCѪy9Qs8'_W&(Y =^.^Y.Ϝ?_yQ jOA65{?!4|qGY }=8>xNO` 30.|,g/4,"'>=b;y g;In/5G&y[e9*#C.ˠBs;ז߮UXLf>Eiw&uY_[! `@g!*  LNM1afqޫjBi(Y1:}u#!M: {VB'E$Fl;>UM &Ɣׁ]m3̌4)``&}͑`o`\S*_ȾͶaӌ asY:-b0 n(fX,")7%Uv#UD$ !)v&#)"v]?4M 4|U1'3IӀ:'P0ԚH/&1 H# oYҁg0Bܐ& ,I[r4ZUŌQLM 9$ !ZzGCUka'0wGƄq|Eb,ϼ G8L0d<,Gd\/f fYn!Ŵi%Z4Ct H P@ Md0%N6sL G"SP0210G-D d`&:FUET? (GHt<?~hJimVr8x52yӶ'^1ww˥.7z]Ga\lƫղ3ȑYY1V6!y6DtH<[Vdh^-WY:{ۋū2?[.UUݿwAU_<l誺booTz~4U g~}njjMK+@u]|t|]xM;7je#Z޼::߮n-L44UQY1$+艘T&w}9fd8DdVaM#s!(q4*U|YEEP1yBΛiY:ٓ/C,s5A@DdffclT>z%`dFiIHb`̱% Ftco)Hs7O3̏#%1L<=7N(][q=7U9q8fƤ@z/h:[mqaOC*KT鍔}!!7 ]O8!eN4u[obofR99f,*jTҁHtzD6v|ɽu~ޮO6R8@*5m>"/ϞJz| @4d{ 젍` &[G\z:6lB T1{XoK EryJTJtTѠaP P13$>@ ؠ uJ"jBPbϘ5izGNݹ&BD }w;0Rq;c0"E0VMEU0mփWDBАtkk8Y-%`j̀̀r[ Qs'LHLӐkYdT$|r>s9J DMUJe"!w(Z@#:ODw9#\8 bhuS+P9U}򓽭iw?чn1G`Y\_x9]5uմ㭃r=UG3V!݇E=.կ.O(T-[&y5bXN~_ bX a U>:>>~ӏ?e |d:9;{U]f96 Wߕq>槃aifhou.Ս0IM-ŌX l{<63Gh4Rжa]U1nYiPGaJPQ`P6miy ZʃG>Q T8fQ!&0C쮦6j.  "N^feɂkS"*X =;3@FTK1v)4L`5M nfwE;dСu»z+=rwQO@7!*1w@ $5@3#䍢:`ONϐt4z(m/CD1UQSuaf@ 91Tviw,b\D @5E~okOn޿!L cXW $F 0<6TI0 b]O.٠uV) Uc\iw40 `BYgb軉 #9mUVz6C3G;k@DQQNa,"{jlYnnB 1 QU5HHfhN86vP3`- }l[WQg1b2exn,A¢,5 1F,ݻȌI E0< ILkN$Ѐ(eTG-sv4ϣ 8"`1"'64"$'b̘9`]Wcz1]4u|NF9aFq??yOu{\~7G{{w?eQ5[xMӊmjOT ^U-}Z@Ѩxyv>3/?j.AEѰr#ϊVl-泜Cm E1[ܶm=ӟFO!|vv}1NyGտxruyϯ :&*f"2T3džovr8ry5N1Mp-b9V6$B4Ahj GUY2{U&oCF"\QE0J1BTJ1` 9=T!f@DnC1U2n@""z `@3 -u5_Ɠ&V+c /<99㻻4E8_-/y~s;>Y/w!3C= GÝnogtAmߣ\4Uiv5NG%6ӦY 6QYpv *돟 IDAT u"˯.>:[:eۆܻɫSv;zvwyy=;]%ϋG 8 4>8NoN N]@w|6ɨZ@T|D䳺87ٞݡHQ:P-fQTd0Z6M zgk b41!Wu 6H((9l[!y/w/P؜s/W;DKF*HL7*QN4BwuM5FRDRU"&bE40$U4U@5aHvf&@߂K鿊HfI H HT")&Q:#'`؉I7$8ʽ4^(ba@{uv! &^c7?ٿN6fD̊BЬzE ,",%$v2""]oiyӾ}7Xe?2Gb`Z:S%08a*<3QTCu="6zn㈓x2e8߁EQ@BiEUEE fcNIbb FD"ҝnUj5P.ֿÞޜR"`׵<ӗpc^ IɈhJ uV@HHj$. [еUSe>w;ڹjw4!45jADAU,}Z?"# 0y&s Q!` UУ1FڮaQ,":4.4riJS`B;3Arz4mStEԆ~_ >owkERw"gɓ/i2ON/GGrv@jʳ!"}<]|Qշ.뫢,y̲bhȃz{/[Gܤu!"+ GgO=hp]b^W;PG{zҶ{Gǣ>1|/'\\\mM˛'}=>wߌ[? >*ʽx{xg{߬^ǫ;?Ÿ(Gޭg/ *DȎ&bk:];^-y0('Q HDR]mlC`27M6OHA Se1dhjP[W!,+ c;- 2 i/C3VDDd %dl}4d7!hAvyhػ#"w8!9eYGLc .4`P`& 7|i.`oZ痖Y׽"ܺ3#HȰ9 9?Hv֟毣쵋R~[U1 @U3Y `@%Y*ii#{nwaNl-Bs#.@01@l^B\PME2C͘TLUM|1kRd`1_mâAc)D$""ÔqHPETQPCEˣkpӬ[kQТY*D⤼N#1DPVNQOHHIJc1zTh &ff sDlHbʄf7hH` FLeȡ)8"!zNO_}Wv@AQzt|,*x|g_~\v7ow__Nӗ/_>!-x 0tb0nK%EL9a\lMPU_j Atw.N޽?:9䓿tY6pk2xz^OWW'|1{b; 4ϼNwv^zRUO~ݯ\> csm3c[LgU^|w{z*Es;zYd`sye~Eg{`9!k:6rPѪjj}e9cD%!""v<H8<|I ΫQYv\wbg˼mWWuIɞ1l+FYHIU^{39V5D-3rtFGUm䜢1d}B9弜O-4ob 2],ݍJX1bp\/nqJQE ɳ9%"F ͽn'Q ֒MYh7fϲbq3f$0rB¡a7Jkm7D3 >IoѾ#v[_+Gupc4.td/ߺ2R[%Ԭ4w# K:;JA6ѶݱСC Gz{9?vϾB+Ф䦈Zڨ^ 3xQɕ-ڋ(0%e1C0A TZu\0G/{;9|koU:"zk9wySZB֩L0Z۶]y^Gm^kh -/ݤHd H% I",6]lonUYw׷>2&fr F@K ! ;d0w@CGمQ źr_52 ba)#;+#g+ D 1H,5nf4#,4T0GTZonnlWO܆0Z6/..z<ߜ_"x}kON^$9[,fy~q` PV }Gt_}Žf/}Ʉ;-{$ Ŝ`4+ySr?!Tѳ|ǯo}uu׋&t:ki7p8Wg/FÝ1rpz18|{`a{wg_[T_^Nflcܹ}w>;!H\߽.<ڞ/a<./ͽp 6ƃV)Cp6Ƹ7zj(%LUF1V9e m`4㍓7BB )Z yybxR$1I RX~¿+XaHܥ@-.Tw,3vx[R"fp5tNcsZVnpB V#vWGR#r X34$,`Bm{/Biw4 @p,;؇b5b)J3g&&tl @LMi;IՄf-ε9RpOwho=_7B$Ftw:^ JЬo%ʉ$Ft0ּMEyPUE*Qq}u4_{&h4A&q,Y9eQs6J1! S1Z>/q%vSn%4Ϻ|" KX(J`$gI"(V8@AnmZMenچas}"0m "Ad Pc0w%$ba`.fYZˋ120u0w5"*rc49,tG.f֪;pVlHa'A] bee5 LfVL^__?:~]a&<djo.tښ^]]sB&|m2b8{W9.:X .Lѭ흃C~M/ɓx>OFG; rUFõhnZ=ظ8|Wyq~#9|_W|%գ'=WQW/ph4Bln6ӣqh4ycsm;ӳr`o;̯ a1 l_>mDѐ*Ԯ& 3ef)!02kjj\"X9 %eS3r,PR6 {|td׊78kAAfk3i~^+k [杹-p_ IERq㉑9D"ޣq7ZGb7^VV%rpwE O @TQkHwItu3;!9 ]w]Z+z8KZt@X]$hS6F=WVsglLԈ͂H2۸;N毬oxV%ӞTHudpMB~Y& j؟=9c'.#pvUe#_,a~.(Le*ً4zmBlrN N nm HM "[C𞇺!⽔]oV!e%D{Y) 0@k3rnTZU^_R}HH3^]^@nAm(W7TxDDꨫ(( @*[Kќ%<;w-fvdPEiirP-"es̕6#gnϧWOzXW~q'7U~_ ^~B(հv_R˳p{8~3.FuMDS΁ ;{d}oz:&tCU&kNqy{cgߜIaX xc u ?ٿ3 | XN=8;7h>{?Z&XA?c6?ţgOGd3Z4Z$[jo*ݘ ّgO*Fmz\OO{$(8Σ6{H)p⬊::.hBp 1=zrmrN9)8Y/nݵ=ݭv6V17>oJܻ H #2@@ND‚Xr" D$\z,߅Kܜˀ~cj9]!D'A C(͌ ~؅8% гEem@С𭉵̋ßeoSDwws"".f%ߔ95$̹طͲ9gn[ۖG1J$džJ[EspD_pXVrb6 @1 % c\zVr&#Bݰx(]GeI XNds̮ X܈SV(A#Ek s`ɛ/f} 0ŝz@3+tJ@fb(PU@#U4oTf߼f4m筞/W߼:ZYroA$TB!6M&Zj ӐmMi= #9g  $fLB ajYպ `v@$fsBD+lu9z@ U""HZڼl_ǃӓOӽ_zQ΍9omY 9㗇o޻`<̛'r1>{4xbPˋKi U\xnmIF۷OQc<3|zҴKj8}zY}d4>Y͖eNmo1|eQ=z\d-j@r@UJs5˫ F=<;?ࣔuնK{?.H*tkwwc{w9}Eyv~?M$v< <3yXn|zsc++A]z8, 3@zvbhU D.۬-{U4CVd&|)bv;tKafJD'#Rb@*Y̋{J_YY]/sḾK  2a)ܞq`4 IDAT8r=owE /|"n#/@у[!pvZYF۷Z}y}A{+,/ToRRAwD7^}@UcD%!{LF2 ӻnwY /]+){?fq>v D3!zVMfeùI<#QZA1S@H;"(>A!`s,P*Jp5 a5>ū-A#w Wp3K`E2DfU5Yru{BUC@e>߻ ~k[n]YB}DAXD123! %Mzy!nm[nVYG˹6![BO"hge7Vu.Ł "}k\s&Fhn FIeedNȬe?/np劄L$Q\BUD34_019;X_M/ybA5zdk{gZ, U$FhQNjxrtttrr|~~<gb1փݽugR~Ea[2cA]_C=ͮcajؘ$;8˫Ikۣhz5G޽{?}ã7k'g/>!?Sų>9y\\,Ѹ^ۺ=_5g~<lڝ_\:ċgg1V,J+Jnɑ/.etp{mVWMvXٜd}j7Ĉ̢͵cnbn s$L9̪kkkmTkD6kZ3=="#VP@27LD HFMY~݈n^̒Uj%KJKf2$VW d{uKغv~:,/MCO%J:qD ,bPFrZE X. ѰD7p.Unڱ -)vS'b(/7! !r*_\c`s#$7&F)3*y ɠMw b M{;߻ݮ;ᯟz"~,SqB/p((]qZD-JuCUBaɻ- ;mS7uX~4쒭ArD}Js$ruDH\hDjLHZB|y ~ixg@P-o ;Wr95 D(R(XHH`0 arMr6J.0&tet(lѦ`FT  Ž0 *00*ac9 e՟ΉQ5uzIRpCC BT2-%mBQe NLAeuMvv~Jm\_d0X_&u3l7WQԁ0'? <|׏ Yh&"T!:t6KYn6PrXW[ᆄů//`5?!rh;Lgxmk6?w7Wx4&;۷F/~m?Y]@<ӟOUɗ~{_͟@t8'jP|U>_{]^Y_ۺGn~u|uO̴qw{k Tt}c3<}+5!ցzmsykl(2 NN`PqNiy;H6eUl1e6mdlb6#651wk%KWo?˗n8EVeAz2xm>kao{BJs'p!i] 3L[#xsvmŋաMD1%<c:Ρ̊FߞnԷ0i\8jD"vk ^)p]5;FzD@ZxPko}.N]DL{2BIF"3 L2tн ډDiSB,z)wֿL~j><;M$0f4A]:y%!;S`D L肘U /ZeE@} p: ԁ@Bp 弜NB ъܰ̄ypԚSN)j%Vۖx~][1^{g4yw3pFEXPB F`H Q5ݵ n|[XsV]sr 0%B7DF,ktA6"D@92B`TW7:$`,6(UBA"slڴXfPS^j9y}m|j*KF58ћï~́q0xX-tz~H<;M6fd kPUL5B3=jW!O^?Bl);:ҪmV޹3/'?ݻO&'Oh.>{Iwݹ߻s}&^._z, +\=AԔTǃQ1eߛg*"43l%Qɴ7yOFfS <[1Tж@No=2Q+GQZWbq#̥(Sۦ=!.oT5.;j hyO/?nZ-OED*FD/"D %9r@ы;kÝzZjV@n喢 cM *;jB`5+ ɳ:RPEd EKyWXB(D%:!sVFA ]Z`iUqXA m)iU rzxvAFAUm;gvoZt9S&!.W͢my,Sb5}&l*!:bvqptr @%=?ax%*AULVKA߲3@'>d@TL`X&%I`kќ$F-El*D:eu @w`Yrk1&:H.cKӁӀIM(hV!p0成43jj&Мu:;ӟ>h8j`VЫR )2`tѤ*d(f(dM,[Dl6#Vʈlf*nD&" ;8 Z2w(*BTrٶ;{ʉx6_̯q<\67_ŚRK9tqmoB<]&3_d`M˜Ҫ@_&M$(AVN'jP v67w6ɣͭG.\\&;gmZU1.O{wfj ?'Ԧdͳۛ{kk?;zs6A'lnӓu"kw>X0ƊglkRݻoN6nַɭbyox}%o>G맯BVNi9zVZͰޮU1z0hlgm$u`BZ m)K!|)Wpz~D:j6+y)G/\nlzW9 [i&;.gTio~ J~R)->nnC23b6"H NA(i#@bt *cfA8$P ̧] u|uQ7º0"-[y:^] "Y ,m&e,;~)߻4@[dQoރEHm܅ &@4#b7!$3Cs#fsu-eBls~ޭw;_b2㯞=II/_&au#ZAUMsVU5c7HB1RɷQ;iR4@h(RTa{9]wntr0‍ch^`nn% wwP:=_7 zwnHk/af#ɘ t(R}LIM0Wsգ,9t&«tCZzru7! DE| LcP>R2LK@ӌHޔ#s$ @v$Qf .Ap6cAMhkc޿s|rli߿w~ݬnm&߿RQPwuGY-:v$3=AVIivS U ɗ4:8?} OF֣G_#3ݻsoXG;{O=-Ǔx4 !SGn?}h>?ѧ>?9{6:jjO~wOfYί~oSp'ソ^|;[><ޏ8 ,VՋ/9֯^֣LMv4ՁSJuUA&ϩ U͂tkk=L srsfD7DQP[gpu+{13*6mq-9@ 0Z*'KQ"+ܼD憄es &u,UC*!HLzڴ+z{'g|{GN0*FĤt]`.B*Grxзw[?v /eděR>있# ].j{a3QVJ)v>*)Z6 VQ$in=Aw8ޭjӾw]&¿~Ȑ{o$r ~^N"Ԧpow,W߼zr8m#Opprվxi///ζ6>?gOLb>xګgݿ{XLIw;9><<:vWy5:~(x6:غ}rzXCd T v qcWM6:B^ jY%@h[3KnjIYbJJmp}(M´Z.5'&@2w*fPW0ULfD$Lf Q>Q QۀX{@dBU'b@ވPbuʰBu0>;@롩 C(BAEx9~GwWhkWOfrRdl΄F8Ll8fM`+2bB"f,Qu%R3s` EOк%# )8j,rq9R4K8j:ޜ =W!f#iT:xR?<|I!RRpM5+`"u h*hS 1jRًj6󺮂P6˫p0CG?}[_}'" B4r,/sjbyIrru{ѣ?Oփlm쵋z_?z{O~Ǐ 'o~/y4m_>t(qWm̷>iFAƣIΪpcQ]EUX ,WͨN(+1;dmlgk2RML,x8_^ Q7gӜ]5ՐQڽ3;9PE3Ż0wN`}Fငl`}&y#WR ѼUwΔr ,L$l`N`f \0>BKGoОe3%Bo)ܡyZm_<P+B"*UX%}^mR+n!6ۄ = gr4JQĀ 3(UU(!씖'""`L+Cֻ]o ޿c;EG_1g57 12sIrs2#dPڽ&A E[pRK}E,ԩ9G7~ff z>ٽ ݺw5CAL}s"\=[?ێ\ׯ+="[787.XWB f,' LDBˋNooo)eADRV-斬NȀD *A=nR9!@6f0M Sk*dŜ!) Ya4+Z +fjfăȮژ5AŁTiE8G`H& IDATiS&@( 8xTWQqPW9*|*gCtU>ŏ_ˎ:ZQ(nR$Sd,{g~{33,S EIލ-q"H394%A4QU/_^/ K2w2w5 Y7?s,_4i3jXbY3r\q(!Mj˜<j=v3izEW xbvJ'+UXEĒs!#G;omƛ\E7#;+Hqij~͎h2PO6f;p!0R `e!1-qL4 ISsY Ԭ֤Ykgpټ@N,/\ ?-C. sbg0bՔ8"o]A򪫪YyZ_ZDōH+M#D6yvT,4(bS6z{ޑ;ÙQ7͟o ,v#3e; !F"ԽnT(S(e=/իAb1;xi+>M R1Rᦦa$6`r&cRa(.Z j⑆.nc'㫧t:zXB -˴r)\ +sO{W? 1WnH9mdxP657lA:Js1Hc귀EF(6H)`,,."i# ^{b[bO".dˋ,ON|N̥eg90,E!M1S"o/lWl2͗{ﷳo^RJa?㶙$^___`w+]]ݞ{ѣG_/>{ڹ`@=ˣ> WWgoz'ͧYL7Ykfs͗ac|xPu OUKú=`޽7 `GPKo!fiS꺞Ig<0rJ)LVI F0-]3EUoos.P5 $2/WGGfș x!0VU.EVJ;܍ওmzVenv ,E7QD$md_0&KF!vsIjIZJ;kՕOz^k)6"7oo}8],?;wbpp}xjYΖ\u,b1k\=\޽֢<}w<IOg>r9'VrMӈbѨlޚ3f)σf!]6:XtZRеA$jD"J)r.hXEj#̵ӑ 9`2Q5o|jۙ^Wa );j3kRRS18Yj Ka_=8scݶO /Nj5mp[#ƪDD^gt18k\3M>2scI(Fh;oi!݇DL0bkLTM>khiRSj]Ȑjܲ:I{xrfׯ1C!///>gQBYudhVf<mQa 5 jBc{UH b1G`MouzbX-"v" %#cMݫqONHF>C 8i?UH/m|,0ݏr;߉ÈSe'(qY"%c B #2S%.nJ]ͥ ,RR͝M^56Cw^b:' \T#BT09Yh`nNbgHFPHB⡚C1zՍ!PJu'uf6&5 +m1ꮑJdoR@`kb`t(EdĹXɚK)jÐkp `f9}չ.kظS6qu{ͽ_];\=|V,bjGY]_\^}x}q9{o=?@(yWOOϟ=^e٦?jg$Ons=~;Ο|6_|~R򍑦vN,Wo.{sXΟ>z88-ymټLK\wcK Ik(éiu|RIXcwCg"qO D5faREղ)"jZHA)a100 1$C(fE9yH;^Jl߯wM#w@7yeӢEn ݰ2ճ˺hZJ9kQ,Y, gVdC/nHCy3"ߋQ⿱2dbL"]^^|ɿWȈ>6pXvs޸ͧ׏̓ޛ/氫b`fɖ1_q7 ׫Itzyu?:ymy@EQ)|6!ܛ+7MJZ~P4Juib`du͐UM?n6m7ɽ׳[Y7H$$-n3,g_w!HT޴]9IC׸MxR;Hn0?\3K@N\X $p1qNy9k@4~e~aۙig) u20 4h紬D+6'k0 ф=kV 1{l?+RoP"|D0vo qpw (VuX'|pZ2(mv6JbF̬m{[V:H(ypbd1JQHڐ:l덈3Vfb`uˣ}ww{;=qS; B443'bs_ND0ʻvL `z+MyuFĢf@9C01D"69µȝP Ӑ5/'/ovZi_3L/2w 0/>k(b#ace~uPleb0Mq§\ˆ#Z;-Q`^'vb)ƐBn(| v "sI j 1 pVApKBTn6h jXk+ <:&<(j Ŏ<>st'#gI$0R3IB N)0qRkW-F;9bvpvs9ss{/8e%Z#vs0t:&"YL$">dC)j I` }ԉRqe%33FˈH%ۚM 1a7& {pN!}0d3%g5`Z)6'wpZ066b/po_bLMoZpS|u77}o~g{7_ۖ㻟󻧯~;]w7nܹs`q}}_?=yzݻ2-O~qY>|=z#Bw|W^:S߭Wgͷ7ȸWc=\o񫧧Oyq`i[vf43/2_ 5viJ2 B]i(,!H@YX3GIeDo>!K6b^YmI\6&b+aD'' !HVoO_Č,&Y1ĪJ&"Th]^b+r%0:Nݦ ̴~*Ĭ*j{4>)G-,QSkMtG^B08D&urXswH W%|2G.,Vg}^A GS Y&0EB Lj4g/re] ܾk֮pm0$0ĕ'Ԫudik/YMx]b:3Q/d0D:c^#vJiüvENGb"QUf*[t@]EhY53M$5}{^~5Ի*Ik}3%" OXs r{ziv laF1AhU PԐq;O?K@< *K 1KDΪm$ X DjZJfbg ̍ۜи3;TU0FZ˫J#6]p=v;;b-81A$& LR]Q#aa"S<4S jAקG{8n[LU*aQM؈!d$Sփ('dg߯Y+ @<onR3IpZ@jʌ%fy[ACzm^/feAԻa;hf Y@~aHCN*4 nof0mf}PNo.W_op/eXm~񝻯9_]_Pz7nnvu >]{ |rqi~?ɗlO%޾ze氾~6#}wެ]0y7ξ}h+˲mH?}OV~u}u\a;a<gj. +mh| ެsWx^1N,Bm"R_Mӄ$O>ubi2̊;x9R ;Ĝ];~.A~TFu̎%4)E" #In:ثD-^ ĵOW{GQRWtLf;!pJq|6$ؒ}/#~G IDATT0hrVXvutuM;8)Dc!a`ڌ2"°bB!P$YUb̃Ȑ5RE}63}~Jc?@:Y!< K?9^u}A9tcB!\"1:\9O zydw3Īy(ۙ*J ;(=1a!!ເ28nΞP>v  Z:qS30GMIU*Txr8r&4BB1 b (LDj rK:l$a^QnX?:L,UVW?YQ/8< @Ɖ;y fi&Mc*r1Uh*jDYE,i1B[kuV  QW^nܶBfڀ~{"QJ9 d4wzmO>dzbb67h!aK!;3)H^ ذ=Xͣ{Ֆm7ݶs!4L?%jꫯO=Y.6жW_}:ɼ?xoG|DVO~y;o/mͦ?:y{o^W۽gHnP㰾vEe"\1Ƀw.=nW?lY}Rn3]m1nnofH]^_Y B)@!ؖbLC(!w޿xzr5cfQX,ݶssqt̕]%uWp`HqUa4ҾZMU9LS9 PU¬A@LbM#2Y01ڱVInvA"#|zDbaE?#ϫ&\rA] &!W95Ux)P0QDI4Ԭ!b斉e7UHZ汶Abʪ!rLFp˹8(A^b:yݗn/ox3K @д8JBL,kV}z<݈XBڶƮ/B2$IU}؂P;G6f tkL+ش!ݝ, QVS )Ep6cBFV=r,F<3G%bC~j%*@w<ǃ2DV\;N^}19B٭a4c DD,"yLNd= 6%2߲ӲV)`֤Οmt:\ݴ!E T4 91I%w3saSg v?(c2 b}ΥhYV˽K7 ]&R՞$Fb)1Yoyn7[+XR13X`ղi%nFL .!%bhȂZOmj`rwxK53]ݔg(~s9g5@g8?}B_88{rۮl\_<}6__\\x{O>t^֫ڣŬ8z{{Ō˳WN~z<,]oIi I?V^+ܙ IbuGwN]^>],xv|sa.Ţi7Z|oֶjN), 3[,nfaҦmaB4a(iH.Ywt|zqQY)ͱϷݖ ũ%E2ws(u&d5awÙkވd4 )k1qE`$Nz~s`ȴhC8$v\ Dk *a_YZ=LVzvs8x\ߡm`wkm 1/uGQMs."@{0H/#]9jfD#bz\H phmNԉ%fF].#1ȐmP8hN^{ Κ?U @뱺EjQi[p/@:!Ur8уfV-B C~j^C||@)hT ]1\(S/D8LB8813BPcUk R@:kZTQm#q0>zTuБ5}4tmV3 tR  7!( xFMT2#XvpggY[o( D9a1{V-A`.͎h̪RܮWK?~Wtywg>fpxr:EiyGO0cӯ W_}B1rln]J2`M !&-+i8.ڶl&43isnMnz,R_eۍ#dc3yb9k3j1]͊a &uL`̼:5U0Pu5k)~VԴe)B\kV͖GwLVna`'+[Z,LNZ/O9\ f hŠT,NصJ%j'Ta$LjaR7!;D pf'5`7d33_e߸Yw-2ljzCU)ub82uFFC XZ~W qPR OAIf1{e&Lܘ"*fER8$$BFH]:38yLqEJA)T?"30@/@ϫ|.5SFAaK33z0{Z` f*[_^{t>'Af]=5sG"y1rc(bCg@/BD(+ްgf*,B ي$ /8͂4yua0y hyɗ6i I ]_SUBB2<0Q0P "|M Om\gm\m֋\~`ǏMH6iȹm-tzL~yȎvk_}+᧊`1wzv^ϖG$^_ G`:9<웯7N^d{?8>:/?.oo~'Ϯκ]|3o¢Iӿz+>믟|˒Pŧm/ngG_U׫W7Y9;=mmoy~hЕ:*ӻ[ɋr. C!٬j6kBDBF)QAVPDLlf5A>P REQ%rbrWLTCiǵ{JD%hݽ2q"5n\wM[)rFFśD@V1  <[v7,qG10H|"v&"HVBF\#s>y}ywl\U=kj#Vnbk2[ /v$e^]$ar۴wG7:fsMRDֵ{|=$r.nf}p 65%gPԢa%;;8C^j. ɘLݽfcU1ՅMc,f'^ySyuw0{ QQAơ8t'TR+} zAԷ@nc -`G[X\DFM6U q%Ad#FC @d&3gOnuJDS0j݄K.;31w6T By2$8 TM&\YMAWށӚ¼\_gϙ)yHM$pf/ٜ̔+\<ArP7ޮer9lTnvxTS N~̭yq3nҴg7k#v{"&ZQ,vSl44i<4{ *, K,{Ι@QmRXGmke ψȌ=[Vxxl:$U9ab,Mz0.߼}I3M,'9Ckubr<,yz:pw|gѺ 3={S9.\?|ˈiО6>gӯ?{_?S~,N<=}9= ;7ۉ*iwX^/_u)PMR&ba )W5|ѧ>V6lViRhqIu{|qg vvs1儬!HJcw)3K}V1LVs3C(K2B0us7)E0l#03(dE6**l|%| @#B$BtdQi\B '76΃IH9|X*ilfEAe4,:BBP b3+ՐtToG0S.Ѧ V$683!:"3QF䄦nuZ1/O@t"WMouP߭ww~,7'g@}N7 af3ߕ>Y2pGzr-*Ae ޮ|3LARNr $5g(NJ (D^Gw@JDr$T`Yk65D  `)[pF`:LdJäRd|@}8Ƈ nNAPHlXTPP\Mti;u\0LiI4fb]YԺ ;p Nm7"w#ws>y " _}Ͽo곍9i#Q;퀲xz1$!K 39."7 5bVM]_.v128B a62k4ד*_n-S=߻9铓`Œ^N'MGϠ6bF̖ܽ߬m>~ Qܽlуzqf~m"l2gZ ׯQQHYNq֍/.] |4?39Uf'IW?3("݄֓<ݙ~t/~|DG_NwŋO}iu^\~x|cz}^}yz$˾O t>g3ŝ^mo߾I4\\\N'iw拓ŪVO*pwyFj2ַ{Xc"ꚾ.531 z 0zሺ!2 <E4y&"h\_Q/ Ɗ1Ff?˔ݭYX^Y X6M/Kww*fD3r x#u[4- Ȇ<:M}] M]$Dr7s""FtcB3@ * 4K%FF$e#ap@sv$!&))dN7-V7~dۮwvRTAC A8շMw_XmnIuo..rӮY!dx?9W{M?[\ a4/OO+ 5^,G?l7?8~In޸q{zغˬ.q!M'Vꃃv{<_߸q5zvuU]=}lqp/΍ǿN)O/_xΆ ڸPMQӯ\jbf%89p hRrj]ob=ԶkX5$$LӶmU1WLc|Z_/hJvPGL ȴGH*y4+BZC(lc4Gq@KtHEQED3 nH8F a7pͶp`]2RT~X<0ġ]0A6ژaFsfh6GR" #щ ӍTw5b@1/.yqҹuDB.CK)#Arp`V~0zy{7lBi#f< NE pp&~+uyjoᡁ<<b{r"@)0wrh{ Lz*H1032{ 1"T-Dz19^\8" ؽ.\*Y.Y{rm4 IDATr"&f$QGJSׯ?_O/.Vir=B" %USɘ`ZB)vffcH93Z;80RzOyZG5sF|^}[UYJ:-Yʙ>^m@(Db&to ;;Ggno:nm.!Vռ5z[-n[.sz?6t2yɤ&|u|Ç''׮<l6Ixq}Y7{Gv L&:wYn5/f[3:H}jfEY8_o4wIc x^0 2a/˔:qwk7JfBv@$MgE`L DC>41K_5#40b}7 lay"&"j:L)6<+BY)'~p^=PpFXAo#Mhh . 0+A-a0"6d1o% S=dT6LQL$Z@D=0jI- ߻]]W.:ov8N-'?1Hr(a@9ŷeVcD12^;]!NTt!\9%`=JS_U Pc՛Ϥډ|rCsx-'S@`f !Uuy-\!*`2 T* 0 Bs#-r 3&И5; !GHf!Dp [6$Y`\[.&6d2Igݙܺsݣ9-Znm"!3"!i$T8 k 1@މg;֬@ 'u6z~1K)x`!JUTEwL>u膚#e:NTЁ=e$\BjmTUz1;X|98%FռXΧtѬW;sج o?ۤpbk׮7mͦsK_^iٮϞoϿAۈty;;Y[sU[_?g{{O}2'fI׵"U=Mכ|rpq~.}ӿkەa1d6_wOZڶ7to Գz2hz!vJ A:痡B5;rVwݴٮi:P!lC #"f6}Sf*>+A(8-6#@h4"R8Jjv9Jqn;kƺ"3 mQ&B4[@jeO=6Ҁ<|34ȶI!ХCC&SyW  g`$1cMp+L 8hA\ MH1K2K] B8&A"!pBj׎?׻nwo-|¿g?9e @Ô^Ckr MĆf9)Wh#ӯxXYZ @0֤) ,pE  ɤܧT #a3 DDT`sUj4 UCqu6P`HߔQP<4 c"PHl@N1h1' 㢮Y#n=lib u)09! !ȼ[3;\, Fi p@{@p}V=WL!i T, 'wIis6z5M4\I'!k Rdp||wٺr؀6 `aob-[uU*5m~RWZN.`oXW? mbi$l6H\7]i7Biiז^ |9o~8:>}CjjjZŨw8LΓO֭{g?싟]]|qpq\;Ӻ޶__ ܸ~_|6fspxصmQc0nv̏|>鏂Tٴv&]%TE9_{]a:_mn}i R p"'B0_']׸[ɓo0G$-"]yp!Ȏ6"]w &oӛ28q0x 2ș"8<(`B+>xSX _'7^Q| lx[+2xX *`E(]>q,+bh8K݈ LK3tF wFa)YZfF3Ȇ13SV& !.&? GH ;qLLFʀ ޠ2(=.9ŲΑivqA' #}] AxA]G`:MJ(8@L Y88_>mG?넾MWW8{}@_|C7;Ulܻ}(D;8|dp <ًG}[!o9H8/w{A(wb6u9?^cQ,oSNLr6}'iXoشj`glk"=v(\Ռ DQuoSߙVы1"6}ީГaiYѰ B t9he eWl֠4 m,#O+IBNZx8*m ╝_T%l/|RmK~"m-;l*ܡlMXތio^̮9X|?jq2 (}ѹ!hp]:JqJ #!Ё܄s$fv9*0$! *& dvo}`>ޭ7?>#~@~7hx` #s ԷRHpȦ$a/ȯdOrk@m3J3@aQU! ǏLjwnfBB@FGg*tp4d@"l@:)ct0&"'UfËF։ BF30@ "Qd@"2Ybɟo/~aVO,J2ۗll:htBYK3GJSpY$45lϐrv/\pTSVs*yܧT1Gfٳ"tR5R֎K7PwC\3N&!fS?y2TUZ/SݝdUXW]𛯻v {`py~q^IN|26}j7Lۦ Il٬W/_,!]|8y` 1mSOr M~6RwNmꚄW_>y?yr|;;TGׅ>$vܙJ8Eph^_=~k_rnm;7=::tUS t {;ժZaIͦ;3 HF!V ǷWOF9Ry&G䕕֚Bv_zOj 8t6Ws8̈u%8(ɏJ" I~0q좍A 6<9B6WxiTvXOR-}f.,FE1 ujѱ7P8L -A;88}G UP@]QVUODB=Ws@HmHLn{~7X@U*hVo;0/Gi2Bo&{kbvSf{KȉhsnO̠m?kwA:pR13n(CJUH .^Tw1,D\sFwHP [z_*WۈB6xߘ^"@ `0)7p C9!$wA&@L߼>EOjwxyFI\USD0gV{wnIן+9ǐ:#zFjA3("dDp&UWD,(-KoG2Ϊ*"nrnm8y:u2ɨw^E>{ q׷ds5.^nQ~` aLwclh3&ԙ޽}uߧ*[>Ǐ{=*V77cҕN%Ϧrʕ^LnTr=횗Mմje~MKڤ.'MCrot> U@U]*2ql![vlW%*{~/ nD@\3C20@nZ [S(ww ,ʢB#֕bM7Tl_8݋/ B1 "Ɂ e$ X:83€͆5rN T$Xy+UA}(Rň;hR8ypOb% agKMHJ̒@tuG"AwbT37B2K o|e{ޭg}_k Ï)kMo0V´VKBUi=}=5gKi0s\~Jճ8;LA5r*n a ț\݁jH92Qݬ AƒNHQ8 ^4@C@/& P!1ˤa!}nM1 Wa, ^TS)DHDXD$&SHjХ4bxmͺkQhjQǘU'bӝcù)*: ybZv"FpR1;̧^TrN# 82#*KK=i B! 4M&i6MmךNcBul6%F۶S C }ɲx ?P3l6[DbZ]䬷o])7o/*拋cu>i<6g'k3pws uf۶g/_9ZLv%NھQkۋfn8]ߺyosn^O^G_=ET׳Ğ=Ҫo6'Ϟ׋v{\Ϊ^=[\Omz*;oPM;׾'{jڬ> )[r;-TȚfXO&"!BgDB@R#P0]6ϷmȀ@H zoѹx!}p+JQTB?Wph58@a(2ĺ|XA,C5 }a{Âm(LTZg>4Ӱ +ODԡp#9n8&JCisS)gdJd8(i>;8Qxf88pj%K t˚ B%a%2^WtD,HVOمL8\[4}Cm "#i-B.epI4tK(_f) =D2Y"hmKPnV^S:'3CdaxZҀ  Kre M]B$l[-ʉMgdZUYn݂yu]o7F"zLN (p*y8D`s ='bL(P!BA 2kTM[y>f=8P<6~o1D7fP(Y.)L(: A'3ume h( l%XVsWpr@H9V*I2GDP X*B&Db7k6pAfM%Nf90!3OyN@֜/V QdzƫӗM}r>\_f'Ox4Ge=TN'ۮTp]iڭr:kn|[ϙC`Ύb4DnOf&n~pӓg[]Wn<ۿã;۳G}{q'e錪r${w6Ozl2tm!P5L7mZܶy1 y8}skU6E9eW59bg/=3 thqɳ3x½y`G0X|B*LR \K$bq\v +ȱ0C`r$"tCTo!Pb 8C0,#@Xa XK8QQܛ(6zu`b Q HV)L[^=FEP -&r LAMxyyd+#:Fd sj`JEDȎlbʙB^D%:sc0A8 PKɴgdHv9P4TvլwmRnz,W'/K5oVi]mXt]7fq7gkڵBi} ATj1/˦M]HzOv0ٍOn|~q/ܺM4}|g_>uu)[n<&{~X i7u&k9o9zV-wn!rfjO~ִ01T(!޲n69kUեXޒA6XSڮCu0| Y?GY%꒲eŊ]{+|W` qޖ IDATǃK0(7gHCQ3䄁qƁߝ"@1sj CA1YKW*Ƅ4>fjμy@8X H^="נ]|E+9>r`GdD8≽!"!`">ES& ]UZWUrD,gKN|G:t~=?ĿvA0?}HV4&T ʰ~8;\Ճ;;$}뗯UA0&uhCɬ@@?FKq eAUݲ={ P)/s9jN}/DttUy0ϪjRr(LjAǘL?Js|OJW J.FZ@ !zY$sUը3 a3!@7PP 1 LkTK3# PzGjS] gG0ؽ 89sakNoF7ģOA%B %7÷t.&ݍJ,s8?"JS D eœŋr){V҈H"9z) !"st^HঈG~{w oeP^oRׯ{;wm rgN @@Pױb6G=QQ"q ̕YNhJGw@P* A!BJrAtEh$Ŭ B=]mrʖ3Q*Drotppppp)fo /i0o[7wˀQJM7M[ ܠQWnXšR/!) C@.@dr d.b $vL$7ӺF$D7*=Q(^lsA jl ]+t~3Lg/^J)d$vh (Dn.ALD] b&3cmAUP(>2 1!`<׫dlz5$FĜ5(Η9ܷN޼w0;V]ѽ\_;g\m7Cӵj}>z:OYH&׮߽v޽.垄)toyɋ0}H*unY?Է o{tugm<ܫI=߭'_*mO5/ϦeGբ)lRE@,,jۖd9='LRDdkn>'YA̝ M 8WBgɑ ʨٝHċP%77լ r]\L:|Y;?|}~{o$qe{{/"2rZQBa'M6nq5f0?X_GZjgzzEK3-^}Y6Ԣ(Ȉ=Vi'r0~3.a."cN5~ ƱD9*b!JlYX5sgww5-O'gw@X=B-UE{gzsea6OOEػ~O^޻~ɲK֭av}ڻᢿ$[,ϟ ވ\BX~wqqi}2iJ5C Y侽dNC }NĘ OF 3{jW_vw>x! NN(3Hxd53;:Q,DMYL$je%o}@au~ެ?+33o) 2~l-"QTqP&jB`g %LY ȥ`)g2 *Wh|@*1#> Lch pba 93QJ'W3EJNuS_.nNLܗi03 ssau-[$ȡ r9 e@ q ezYژC՗lTQqքUw{VSB uHȦCNZj[.tZ5Fc;Ǧ`GB }lJwʊE]^9qH Nwrq٧D$Ca207FYBV*\dB^GBl(#I>zfPU6DM\Di-10)1[NS*ŵfkkv7wvt'ϟ\\^uoqm/mL|m2*/Ӎgb'Ϟ?z=?.ƝvT_Wu~x~rάQ\\,˦z:ag'/x8YڢlM3v.<7ɦufi -$Ť&%E70N*YRNgf].et˞0IbBmH^ۿ{#sBj8DShV2вzX。YFDTxՖZK%V9&*U-%^SIќXpb;@ش܉|56򕟗ŜF-anjq}4BVҨydn׭E-Z Ùq|ZB9aɚy]fLjf`1w" LcH լ0*iNj{Sw ܥAD10l}1H#vQOfYo?_U!^ !p2LM91;j&SÔ̻g@ɝ$WR@FĘ`J<)ՔPC I` )b %\B,X]mA5@v)3vw6IDft1|'fȍ=k82<ȍԃp 5S[⬛} ci4uh_Z.c5`CD=̈́f 's:<0$ -\E?|isʩ+¦˅RrV@Cud Dʼn7F/)Pe%6*FwBNd$iv9@"w U9k%H@(Pl\q8Y?t$r,Uj'',9={Oz/.߹/͛CaY[||V쮯?z|T\Teg'{\l6SӋew^M666ˋeOqrr{PcM̈́s<|Ύ~?x/k͍jٝy?޺~y=|vrq,`řixu|4V!+u%=i&Xb\d] fS˖STuWUII  njU f-V͹D"&g@1bOTXƨxT%([؍T!1 neJk 0f*#|d\F[Q؝8^K̜Wf^Ҍt%.4OUWWWẍbA#.r̻@DD+#X,bcs03 ؀Ȃ\`J{6r|]HbD%;#gK)X+V =0/o֛X,g\=+cs#048M͞ dct"c8ϹPΆ5 1+@ bҜu}ÇL,>JgbMyUYL2 a焪S)F4yD͜Yf:)pufaHnsDNNOo\IܝAT* C ,07%,rrv "Hi%'"05vvëU5JvIΙgl!SxX.lIJRJfV2,J*,B313/SxzTqoQW5QT$nllzz$A1dR)+!98p RDaC]!=X_bv.r+WJp<FO@H. r.VA5وԈ%jF"wE8iRWbc><8LbalA\MsUg͚!|tzfAs"UE}9ֳdZwnpl1]AņpN^C6aCfkR_wQak뵭w>s|3y軭͝-xّpaiYO*?>T!5ǵ]GwZ/parw*vT`Aܭ$1ӕM@Mݨ[6-U 0 '5@I¬j%걊"l  o֛Yױoy:/L =򷝛D9 l6nјj+wqN IDAT2R"] ̳fmsNgEUE?V=:$5\9$ w\v$Ҥ!UJ@M&y1WsXUư*̆ԫ2%Q(&'wjnj<4⌫*A־EǮ|qĻXfdEZA5JP&CUMzsZ S0Z01"uϏQk͸Kf s"802U)jLcwݝt{gQ3T)j%"69I] 7"uh&1XYKZ|v;3Făz PMK¥M2#;U]*. f D\mܾbqԶdqmcnyȓIszrr|tbu W\,6ֿl6[˯>ysZSl'_,\EN&9ubyxtrmm2=Xѐu/߻vj֤欷܏M֭v_΄d?5jT/R>~{&^[of;;s]۾eܹUOyy軇!'w,6lnˡ*gFc5,2#İ\il5' ,AUb83ٕ`Ǫ 3XluVS3Hyg|?yÊB9q02W@2&kCz]WEWwb*4Gz$; wZW\ ,,ME:a\2VBòӺ;L2-ݙ>iDՕ`; m&rfIY [风nVاr`.KCNpIa2:4+~fYYx~__~5s.p942TxRaUcf51ql$rNvmi| |hiLVT,6zfA2xcw"g)XrL'0lݚ֛_k ,l\ X0T@03 眉8ƶOLu! GL,gIUyN 5k>ڜFgN8 /ۡ`z;rfDLB(btPE0xg>r·g/㬞Q>WPIFyVVsXמ?6Y?-+:UuP6JvPvKe잕Aƴk\UUGu<ýE`ׯMCKQ8J0ӫW#2<0=ƍ͝9wgl#X_&)@j&s8;>^v! oZ.ݝwzDvsc&Ϛ|y9f!llv/s__{ob1U׮moo_~ogs83/v_\[[g'׶׿o9./Oի]oLv1L=TM=\oiGf>PlgsEMղev6%N+UR*V4DYBUm^j'Cʪ(f f-aZ|RJN7( *x%zPsr 9m,|tFބ44"@Ǻ1\ \|aÅJ߂Iˉ3Aޕm%G h(؅[edG>Xp$x.^bu"ǭd"22%('JcYB^{ͳfWsq܁PUЋԓ-jr%n0'QTG{WؽY~cN课B p1sbhTEf/S4f ABbvS)mN)OUYᎅ".~  w+7';KSN'Y܅iLg!a˅r .39 {!cSB Cs9KȪJs+6wOise#WUR̀8 'a1PCec࢙L]H!:qjp |237Sefo$F^l}vIj`"bM3MEA-2aE;ZVD,W%ٜYHU$2 A@L$7nVr6b7e&˙pYC^C(%0O餉`rQM).*fM:wpULܿRonUU<>yE Wdz<ɓ[7o&Oٜ1_X\\ۿ7ndC<}M=~蛾=[kdg{rOݷz_/r}swo06>ɷ}6uuv|^< ly;|&1nlھAL'LSn&M]W`8,TU?ݝ[Lj4rvvJe_UvKFx6-ŇUb } &p\]K0x7䵚mpX`H@aݘF1(P{ 4 HDAc̣wCC"]8G'GHK9;S(D (]k Iμ .;U(7%5+L!h+@)s~q`q2Qry ⢐qcŪnAFq3~E"D&R 0 PSŜr0oxL.#H#Qݤ4KHN=] fj}J C5%aaH"Am5ɽ{,wꊒs W~B%:D*k 7 mų񤶬}N*ri㝓jA\ NP/c[@|XJd`s2l]-P[{cT0`^c|ꉻy5./."$!`4 $%HI+ 3) ,lqvyygwGs  t>?[Ð|!۽n\<Cf۷Z.˷ܝL'{>weedm6]?xxyg[{w|e<_P%w?J`0R#{K=U_g/t666vn}ΏO˗?k|}<_۽v~rk%L$'HMs+鰵1൵8x:!wٍHb7Ų6f!IUU٭3j4 1V zR[! -̹mlaw?>xd7"I&j{OJ?J ЈƓsxe"frICu-Qba՘l|X (zq^b*\WBUP !`B,{i(R ΁Q׈X$3ƜAXAF*q D$`֗!ԑ8{f6a?8{']>~>A$B,`v2 Lj膺B/M{jeZH Z-:̄(2M= -UIUI{*VӦò '-pp4j!ux3 }Z萠~;[w'uvmb:ͺt!uUQwyud>ۛo\7W>8:|1gGĕiX])]& Ffy7N^~d]}G_}_H΃7m|Wm{rv~xl[o=hgk{6om>\~oeW_泿l)Xb3u^]N7wz>{١.wlٷ`е]=iԌ:C C4%,UV5"b\,M>Eb$e`ͼkOkńk^uۨ @2B)f+z0"'J66 )è%ܜE|dUA4U` ǥܬ9RBQ;Čr?Zi PIp^aQd8`+{ jy Z%3#bO9%1FwJxj`81,aH9{7$̌ҧ*䔊(ݾ oߛ\DQ/6'P% '5rwH'éYecݨ}f3r(9Y91 GZlPBhFk" ZVQ!b } /mwmV5sacc}~|vD(ի!g ۶ u53@"dju A=Ņ,&dg `]SL%δ52]he(Llc:o +4<1ց{(@=QEŒ@Qpw*#zQ&Jݳ [[9Ëb=T .ّݍXB(d39S?|Dr6ȵ*vqzs bf^Tp֬uݝE"KpIv}}iiQQBA}H|nY[;^> i\w kO_\pyqֵ'?4MKN_$k{GG';[|ry1Ų\ݿ}v`;6f/.B?* k,U ů>35g6 1N>GBolPMC.O>ǜ35Ï~}ךrd O>vhYqރ?^n43 *& 2 K}ljt60Xfkk'p.6}4E4Dל/.ϮݼÔh.$NN(CE+Q(#4bb7i2bCHq˗\#w/AC% Dژ`w+^i.shzBŽ)yF3ܝ ARBE>fxPTKm%|LNW\HLcv?ʜ2ɡ̅c ʯ1r:yhVP˪!ep0͌_u{ެlȐLDr| ^8eR6\,^|9,4Dйgs#rd^R$`vƶiЮ1r~kͲxrH r$[r[]I7Uu)`|{&`B $>+8 "UU9H6H^l+`VmU=՛xAFx!MˀH@PU 2 ɜԈAk&50 (ĸYڼVXC]IJCFR5R#Wa{UyRg'PqQ8pSUQN!RI%bbLiI:F`&3&BWF 2fjff6zM̆Ӌ[Rw٫Xؾ͡>>}v@j}ͫWG{7w2fuUmw.]WgkӭͶv6_z>˔vYvtֽTԴ8<~{}OBrH9{5Wecsf3~~&dk}e sb2޺y|Sw ϾG:xճ6={u-eo/U\[.:aY.Z3r&lɔ9DZơp *qClRf9lB& f&A݂Yv?JD$p6#7D`0F!_1_4$Wj- $SPff1D^žԖ3&Yћ S]}pJ2 KWAb-^Uo{ٮn#[gIcff#_"\y81 q,*p|mTA3ZV-x҄'j`N֘_;'Xu!":2o֛]6֚/%qr$5INCVyrMCl$9:s+aW(N%2L:y\1OBh^ԤCۥ…geoUEHv#N/ΧUUU 8J&)4(Lti`R\D$DB܆cs:Y#+Ԡl0D \W^ѝ7^N _UIH]]ۧr]QsRde!Ʋ:+iuxr5muSMfFNK]#Q%$j֩efN+G/ܝcU!JA8|vp:8:p'}:)o-d{|$l3 [Ӛ_fwtƇZ=99~y~XϺ{ߟvs-̫{پֵK3iqپYy$C҈)kى9Iċh7m丮Ͻ#ޒ[UVe"AhՒMƬL4iMR %Dw>x,3eMh^n/_8qϖ8T hs)$NIBr@G5+h)$6)b+ FS)[GS' qQSsq^z BsP5[Tˈ_bcAQ9[D"(&nf>dPjN ҫsm\)@gwj c( p uSӬJ@M!#*:SWbIG'|dtBU.Vj3ח'T0Ci ɂ*E{S܀X>M>grDƐ{?m<hw{Joo]/“TRjFZ#X ubm&Jh`nRٛ'G/Go ^ԧM"⬰@AcsqyM`)BҌ &M \|8Ba9!<3ÙPb5W f &z7W,&n#ѐ=^i3S#Ԋ9{}af^L2gǐV*kfp$WcA /ZRsjt LEK EbѤw(v8WoKisevS5# 07 TaYV61i5&ڜ1;gI]g{>xг߾uշO.N^o=stROW-?=8ϟ:F|{I{@ _h'nށ78Mǟ'ߐ G -9?mӧݾq㗿E;ܹ~1|޿~7lmm/OWڽ::5=me9d EM-Mv>WO~_Ms;.?rK2[Tn8N9O#tښr/.>?;/+^'V圧INg}ܚD^֮ DĹ??{u``2&؉m#]6ێ>f1uf*TL": .o&yPJ `0@6b~,p__~j{==1l<ͥ6sT[\bDjM6 Up}nLv8I -:KDIALXA'21AfȪ)E +;4I[n-ѫp Ajz_jޮ?xj@I&BdEۄalnYlpRU( sxw:驻W 9ޔ#g`(%_wWWo6fX]s#@^ dm*樃ńͲVYnIa'Ej݌.lZBC&n.ZQx,?=ٚM.|Ň,r|20ן}ٻ=9z>{oMR8??~e;dz}ptݙ_}h4η'4;''ܺ}75묫~џbߺ{/óG?S<ɟk@TW_fi=1i߾{`ӭC.~/>&!fX-P+ 3V} B1 ]Uwtw$al@5k.\j(]%9]nRF\k9P"7X1Ә޹*󑀮3UOc o6 >Lp󙺁ƿQ?y*Ԩ(J5IGsWwU[=Z=UL\`܈4JGQ6%Wǘs1F B"U @D:T]ogaѾ+@w~1aT"JPKQϝ.6V csBC'mlm_,旦xT9C0?/k 0~TADHLܵd-JQ%y˔yR_EI۫oqRWs݌Qn;/q]Y2jۛXms8Rk|! |x͜:1j˅`Pa,$(Ɛb@,C1aj[{Wv32, tb7W&6)KQr( ,[\Z``eVX6$5<9 @!9ALX}#\r;:9D"peW,6fb[1Ye9^gᝓש1x{_ݹi޿׫4}[GG';W̑xrr~964׏?[N\9wF"sRTnܼXs޹c2vG΃gS|˗.Ϸ/W\]h՗8_{ҟ|emz{w>պW],ەQW_+YgϞ9-n(f\)MjV58P)YM9ȉ9{NMjY, (7v?W$-pB!'#rھ{kpj`]d&(.1:b'uLLyYMU HQ% 1 ;x;U^XH.߸Z6{Cɑ I b'pT&խb13ױנ;:$&jbTj67B|D$_Q: 0 ;! S.0O'u;ҾoyҾFCb[ A({W s-#Vj McZu6\tƀག 9AB  0jqUPIOJ)hQe Ŵy`r`f frCۻX`V-sfr0U!)Q  qv { o,1{h%jaC_fUL(" Q^p"M Uj,m$wܽTXy?t1Ds< ʘ%1YMUP81ZfSpp)dJi+#0Ch(Tۦe5 ޶%pܑU͔Est#2hg~ͨx&?}jqj=D97iu'}? .M&?-\߿se{{wooٳg~p> 16dd>{T<΁Sz߻r\u/gC(# ݫq7Ϟ~0N_|7/۷a2uW[7V F$@ 5\-排+CKU`Lai$D{lF< ҰQU f6C3@%wm3(4)B!3qAD AD +d%F7yB;mIlvom?zT/[G10SܦD$8EhW@!8\|6Az1vPHa ꌴ8 !)AUK)ҙS.*! !BA/qd^}ڭwi^W]Zve2-}\\\|in^?ܻr4_~i ޶agګ'^)Co&nx"G]*s?YQiӤO7oߙe}x i/|ië|vλ[[]nm۶ݺ}ra4+7(a4yG~Va|?p0351#DDMJCYR.e2-ĘmۖIdeRK}.^g?O?&6"*.46s1Q՞zk=Gs10: D6Dq"0h[u܎AB7SJL2h Ex?c4+4r߼={|yI%ieyN9Zt8l$M1@E 6?f1js`EF bz ~>oRʥw (Ơ(N,L)S[}1yUYHn9.з} gk1' XB60 `t5ѯ:T+$Иj0θM1baB1lj}fwýOuݽXkhėmBJ Cv._;88;?$"!M g"SBtVBAMՔ/5L!RQ4ZDp-bE*]g$ 9R@`?w9tC-!AX@д̈DC JLm 1F&&O) Ee!+r`@](d{2sNiô/sS]te%P3PD1 DUBHl¤; 8!Sfj62+\i1MՊR:1QlE>gk-d%# 51KI_y۽  iw~wÃvvv>O^vc8o잟/e:'O@NQ0ˣO IgO}9;twe"Ch(noᄎ8;w7st|2'OWQ>X~v7߼W*ׯyG2/tEi[}?08!ϟ?:HSٴƠjmDݫ953g_}jƊƺC~ #"ZG:_f:1׸nlJ) _I31mA[w"3ͯ2\Y a:V{Q @K!Ux©lʩ]]n)) JDsPfk׏$2 B1$6@3arp7C`8@Df+=sfl)Tc|Q٣07n<׌a~"5Ut`1Jj"(6N5tk!APte0#Hq@CL1vh`C P(}&c7L$ݴl<SsUk%4brc2 QbPJ޽ёA!zZ$ǖcb `hda$;nٜBx0%"A9$`ݹyپm8醅s}&Mn߾s8kPhb{ݮ>|? Ւ{Isx`{k8L[&>y"vOdgj+gՅ[!SBMIۻWu*{?xmwgOd]qr|N=6 ?h=tק'ON_j8n8INaGg/kDUidwLIf\C '3cismnlwnNZɹb,dˮIi1D/rq @n."m9F¾%1j_HV-Ց$s&IS,cě\;Woޅ;F:x8FS6-u08dώ``n,0Z&?"1hH9\ցYHX>*h$7&ƣrQ8M"7D 2IRj!$DuKQW]1iD^YB.9޼v^Ki_⽽+@!G";RhP &S/ &7c7Z !a=^ivCUQ4no0,cՀV9_FD]!7EIT;߻u켘ݙ\# >@D!8 !>8jEʹM9|51,79&ɶ`.hjVF)VQv> sa)4QBj"K!3RB.!D؅lN i~Dq:f7pLT#\ )MNDf&R,ڝWj!jpfv5QL]@,2f Cf si$&`ju|+!qB!X;MfΛfUsܩܿdɳ׎c]/t&Wϟxĝ-noUGhHMjaC 7I,@SƦNz8|{'Od: ǦKgѰ<8wf?ONNN.˝+ZQH\ge{ӳ"z\twb]?S;t#W{^0I۴UoKa3"'rup!2S.n0xq`-͆lui.*T7H43"q3p_xQ%OE]kȄV0£5Sk_@)p,7g@MqfK k*bܜouPg?dW3HyԻHGL w䲴ƛ J~om S@޷50?`2wD0>q0 Ա9j0ܘ  IDAT[bzGXՈsQ"$ĹTuŅ\!CLhbkɺ7m)XH1Lo{ooXcKTM؝XM$Ԣ:`  [^vz*%YMGU'ԪpJFPжyMR a҂Lɺ_er*ni:&!89\1 Jf̕C!m-5EB8%2P@LG}3U3< zOJ@)@-E5Q(ҤD.ZQ#e bJ!][DoRbԼA4j`! 2iE$a! b .>`#[w0iR1kdy|rt *6ؼ$0 HIa$0L/_XŌU]jʄY]%S!L(| ZB6A9+dS1+߈$K7O`Э=SoN/vwӳݽ[ ֋?̓}zO> AOD̼#hVݝwV(jq҃yѭAs.qџ?~鍛~8Jc= K3?u_ˣ{MW/ϗ۷l&_|?y 'w޻?ǧw谌ٺ/u}xoX)djIu RrXwrY-!S 'ӖaJLgښs(Y]ۿc1iD YHb5m3֎@Fc.H "Oضi$uخj٩jXB`Gc a666a&;F4kݙ|rB1KtDo+ֱgmPϝ\ 7admL1as%%!ױ=fAb0M HM1CɤQ3rҍ;߂<[])"})nVk}[ha~νpa\(8! +4 ܝA\9|;LC 1.F"\%`BTG}ð\ܼuGKY5o-zjl Q5ZF)H fꪮPAUɜZaP7U58! z0#KA=w7]Vn&)Wa-֖YP4&H&ADiD8j{u5sB` RKx -'/sx_ӕų$+P ndnQ4gL1  L&[W:}VUPLNfA8*cj#9j!lED,'&P^koeH͇zEޘMdrzvCw֭Ou/WφM;wORZ^|qqvzwoM'[$i',ٰEgvf'ϛe3Nӝ;,.N)ٴx٭Ώ{RvwoSlzy:N\ώ=[7Ύ^8|m1vgg Noݾ)g_kY]6!*ׯ-/rG|CLR{avd27CׯyP5b 38rђ[&amz4ws("pvsf42A;A `syC0!ZeN7s='S Lۘ&!eްD"s1K܅TP0cG6 Eɣ‡,^*:&T^xA`O7@R5&0m # IH(^MLsnlY͗EyL\8fdB S4GS͹Rs3Ax!X1mpYdPZy$R!;8EouE5?5:5Ic&j lhEJNi>_82xe^]MUol= sctnԀ"F!$(z[/&g"WKMТBHquEi{:wU0<0kOHB7/fD9}_337)B!\)J5 ^:ͶNϽN7McMC6B'ئh2j`}0v &dBpfrb.ã'к"0#ų`Fz겖)Giq7,[^9kJ\{5+ctg$[^/uyr)V8 ׊r#YI)Yoek,.gP@14: 0^'Moˏ_ۚO$@Kŷvzv^Aj|:ݝm@Ldrvv{TlvvO_=k٩јo?V7fӛ7-nϿO>?yespx}zfٛVgן˟~Is;]^9ij3lݬ?}w^ՌD$ސ].KVelvU\ϾƇ?=GؗV.tTu{k~?g&Ļ7o_ˣW}ktN~qב'/>ՋgGϿgO>^>ԯN_}̧2j]l7gms8߹g_<7yu=@he4ݚº;A$v@D1ì"nCƒbI:ȍvBfdF8On.pqw1D L15U01u+&eI6hE@jTK*E{ip͗vݘa’+F~u42ԗ7L.Hd,e4i3L$y$dXnPF, cV*&bC9L5oF&xHeoDuB^qdU)6b늆YJ Xo8Hj#I 3+}S+v]DN5㑇{'nŚl#ؘ3FFdk_e"{Dޫ"QШMS1 $ =w`mn"qrW]ukw76mtry LC)X$:k TIeES~8uÀM& gE"2M Zw4>_>yHdZ|z<̦hCpxHZ*%܋jRUIB"!Fˊ"U]gSHdfukLS@P sP&dDU͛1Ǥ8tNyU%ue`x@ѵ"XJE>[V@TB Z&kuw#+K%mU|qs2k 2Sk$, Ȅ,eX2z90 Qe1Lw|jJI{8ٲ&fb Rjt}umFNـCd.9PGLLBC#S@ LYB>cbP0T:}˶fMJWTKͲx?ӝݽ_᧿n{ѤUw_|6Y_i/$dO /_zG6լj:M)h>~Y{}r]\ypy?N?'rq/ m`"GU??5OrqY&y;0^,oȓQ bZWxˆ^dn"Ue@N)U1.8Qzu'"1s5Xx2 d<8{]આ %͝Ylm(ð3?BnX2a *Q @\hQM¢uppb*`ӿV el Xg`VKeaXk"a 3 P,X Fެ#4ׯΙQpMFDa 99 p"U9eR 9*iª.bHΞBfrQ#0&!}v'ÿ{g7"'}k@Oo`Hw(ipl|}uy gZ숀1THVK"7(`yj6m@VpPM74gkbzz?ί!:Q6cdlXɁrzQA$ FD͗L@uzv|}#u5ד(ZRGܕkU vv..Tyru[HBwfCLò dvsҦAUD~hVoqcsw_|b5Oݻ;ο0mnl-m*YHL̀ۜw6&:onϟ>;8oZ\n eM uylZR=? -ەݷ_=yl3ot],HewuԑrjӉ ,l}3 8:6J$2ĪFB$V]mdH\یh]Xy]SBqppp|b}$4ޠ΋|X ԁ̍Q9OF\W*]d,rʭ= 2mѕeÿ\4 TYС: |2S$F&ps pDR"2 K;HoO~2zm`lJd!fO WM3Ԝ"UpgU!lߔ"D 9Y6` u&{f04Ɛ\\J4;Dpճr[ %Ͽ>iMH4BG>bs )̌R0rա2@~VUn6;H!0 {^R,./l֧~s Sխ€4L 1P :smcUMW]. #"^tlܯĺ7\Yǀl{ >?9:!5 &'H ڦ9~}`?9>}?_.˳j:<oѝ1;;{"x/@C}VEՀR2c֜~:ӲoF:Xb+aH]*]E_\_"y@,=*jCEnk{`6RP`3S-<I(g?"BbZHZ+ T~g ז^ooB ^PX0m#0u~Pb*[H<9BuqVd] NM,tC/@é)[1QZ}z# fՆS*@Lݻ^ x&!jN,}~\/>4@Bq*kyyuN`ƄP2IqЃK-c=V<A#X|(ok#p`ޕ zԁT!F..D_/.n MErV5ABR/̠ ܫ{5.wFSj62r R{$ n1H{s3fTI]hE3B(2-8k&0u03R~6#rojV!;n e@*&F&"&Cf=01:^*{ u,^dEmؚQr'߿pQ(Ð"$vL*Y ]PMp.ǸX5]'ŔmЁIxzEJ}N}UJFX7WrWttpbI"gl㋯>M`nk73~n޻K@O?y9Pzc:_|ѨHwvrߍ꺊W^.ѣ=pUF[O>ӫ˛ͣPMWW_<9}޽sYj{OBb V˃7ūW{3N^,6>Ǫq&?˯1ǩ󽽝ԯjrrېPӴu5N}fxC!$Ϲ'̳I`z-t^DTm<}B{3H.B]b5@Q=nV=3;9)6|ga[G"m9,a(P,0pFFD`#!0#BIaZex;嵞H!ĀHH"fN ́ @a=A,r@G*j/1(rnsꂛt>e[;]cAf%:ڵ\^0@JJur69+""=޵=I0) d0#PՒMH|xmv_EKo>[,V6qQQ۴:f'@17"-NeBNnFY @D!CPt{oj>Y IDATvAP@$'M` ܨܟ__<ٮh6]]_apAj0c &b!F2C3̇;mԬ+ d:M v' eD !!Y*z$z:Md2!8`ЬCoK0 a]*aN/ DC  :#7wvJBxo~1:{CP4FB,F4Rҥԧޑb7Z=jmI'󭬪9̦bY.5!n(Y3!I0M sGHfVVe6]Z^8BVe89ڛ߃w~Fv~s}ogc F[[WW?OG[{Ufvy> oQcL,t2R(Q]5 1A"33%ו#j@g"ӈ^jyy MD#2lQEBaFHkFP*g|0ttҼױ>>9MfuKj+HHiLXPBe Y!V>>flccGGl6ܼ7W'x_W'/y'mϦ;'/#G'W|EkݭƣN~w{0믿o-H^< g|vu(IBqއ,nksيNgۯ$DKdՒ kArl%Ԧ.UGB5LDM!m2s9vɨBkDQj>ۯ}@5!:@.04uC@)_@XwpZ߰ M;4Y  $P)~ 9bRGưrsXB,fVR@Nn@A-]vkIzhXlû]*a< u@f L93S`*fS3P\PXGQ10 Il8*wSjDn^W?z[]?.u?\Vx+ChlQ8x1gK@aĀ\nkDF43G$tZ j)VbB PPJFc+@C@`JR.|\_-rr_ VEzH4U"R%J`<. &F1ٴM&][WF܍]PS ܹl*]npZM 2_J u$\! 0G#;3Xĕc@. 7t^iV&ݘoZ1ۻ^5f$h,M*˜[@˚Q,g05l@zSJdRJ 0#PIr5g7k6db"f ,BTxA^"ml)t٭{ý˓|t*@XQ]o> t<#jr3*r$"f6Kk4x}V93sJ}BLv}1CJɣ#{DT͆݋-@A91{!ߤ!B%^F!ݘYJ)y |)]u4[`u 7ؑ_֩3\"qmؠp2z)i3;9ڌ NY?ч-)-Ԧ?D>`DĥSK"SR;YgUP*Ȥ)HY "s%w&B@6i]XF5jFbwԬvޮ~GWO˵ TmR+6HX F"!Xc,y\pdhFh*sZX MV|(zPV9\LiUY^  !ԣkq Asb QrCM]׺-oh=# ,BL+6`$7t<$db{a75pvHw>u d4>aA"x׭&55p dnNhlf )$'hlf)0Fͻwml s0f *THݜXB5`psʩ;TnJ̫xNl[Q+F;x^RQّ0Q@ B`VQ59ؿ7&cQ$ۻFONN̗Wig|~sgggϮ)[;{{Gnfkg{!L)uUwm%Vӳ~sF{7קh7 ]j="&cw>NMw}{}~vz~\5yÇWUwWWu=m?|y@upqq.(/Ζ]蝏l.e8~1twwouu9I]zZul[`Ό,̳i 1/UJ̊Y>V1mۺ=v)rW"w.-v(I k&:J̮BbRZ 8<6T~k J[DԱOBٍ )]K5p9k04m15]ʊQ89-ޮ~_Nj[V=M :"'AĊM5kMu`aa+ ,r6h`FhAu]HVI6\k8Z6Wa!p< kd”qtZ.*iTHjzUL& 9*!fЕu-L3*Z9AΔ;R ɁH\3-zݻ5$%Tlt)#^,ڶ'/nOfDк*@- 1(""@G3&`FeQ$%[MT0etepL6gW<&[ǯ^ !DQ0q"x Ls5Mgz1T d(9h5ަϖ ^l63Fjc6Y.oML]wu16}3WǯNnxneCHwDxRW/_~q}u_.f۩V]m)0 ^8Lȡi^K`huq6jDr5M ۮ3G`H6Ts]Wmۘ)#YVp'6UnĮ,!ۮOf9ŀ%$0 A|?lk#*&U3'f$qE,RUZu|MG4_[Y! =&uG|i|c6ĸqf fٱ* k] d ]otTDEHj%}. pkR#4FYMY͈]J`w Tra3*Ʈ%9*vI#"6mvrצ L-1;w ~ޮcŻ\M0B喤 3 ~ 5;rUkU9v@Y \s7RC4a 8X@ sB bD8m:% ,L>;s-: rJk~% pn4e#Wͭ9;;!;auoc(;J ̐si}mw&IU_]_'Mʐ24;RAC tG$aQNDd"U-N"a!r Pd`bv5}2\2#U=bjU@5\W]YK9-Nf) !aVP̀4g'!*`#$7O9e|M]WOzw_fZ;0ˊf& R V &Ctcgi\g525H1l]\kU HC`5a@D0z=A}u]5Cf.QC]5hΈfN}Jͧig$Ij֮sJ7`(K/z wwtfFw7Ӝ$`n85-Xn tmk s2d7 jBU.wt*&jQ{V`T$ &d@bʚLSΈllSD,w.No.Onѻ!!X(9!ǓADTԒ.zڴHI50e5Bf/ >l%VUpԤJH1ѓoD}ɟGRuLbI\q귿_??קgϓGܻ{t1GDU*rN]d:z2iߞI hT'}M7FQ._A1d)B^BEց8+XX( accJ"XzH܊Cp lQ$zZ"i` "= ;= zRJq ?mJօ}y&p%6uͭE#@찮aP  7d¡(tp_-C.¨B( 7&e>9ՁXWQ$"SVjpׂ#Շ\``ܐXDw!4`j=DT~e*RQK)|+!p7;M D<%P7@ѻaU盫.5jf%ac6CfbN[ͪqw51.KМXf I8 L⧼dPh.LBDY91S irh`U C ^ t@L)2[*XDb"u6 (М)A/䁄#JfppL9 IDATqQA3s`O7'zunBN`@vcZ60Ӷ8@D7dNN\ b n)ek )(*I:!'h\my쥈,V7[[W^";R뉫OW^-ELu:dw}~oh{${𫯿\j6,ry~yst9'~M]ד~q:<:o1RWgd~tŢ;~}ÇWWe:̷>ٽ~?*Gg tp^{j翼zuvls61&ٽ;wQf r54 RDI5ޘo>˾G4k{A:U=R+5N(' HըJ}Wx{:&AOX|wsv䃡y907d! t4jK%&cP hBcG抅e Iʯ|ᠮ%DB!7mmpl(gYAi\: o=NFjuA q$u@L&7M>(b;.ikRG"6ĮઊfDLI͔A0DHI90PQ܂D !%+N+I99:TQ09hiHʋќhY:)ЇJD"K^*SQjP61N4mmm r[@bl4kT͖]1ycQ֡#T$cʦY"r=sL TcDdČh%γPLdZDW*ΰrȄ^S ,8o9V19";md~EWG΍CknjP@ŲG1:gQpP|ػ0L/.ϗŲ]UQUOϟ6z}wgVӌY;^G[;k;h,. ;`mk˯w}b:={qr9]$?|EãG]M36e=8|;g$h>AR[0ebQag+&+XWBdCP55!Y 0"ʻbDŹUs<pFfehVB@-vz<\=o )CL4Xz YE!91 .D-FHD)eDb&ӕ QuwfY2"OmCjRRK "39"TMι(ҧ9Օ/ld!r9 31&C",^1ɺv`]fg }n}-~_ Ls;DU$#{yߺZת9F&5seTH|Zv= 2 bVf׽DjZ#h:46woN6N~̒ %ߥ*fY2!iJ\kPyUoAĜC0|xsk󧻻?g;;ۏ?ͮ陪NF^vWzj,0xSO(wSK^WCp6=">zbvv}y~z~.֛jW}qmؾBϽo7䪳 %oo&13m_.j^>hb}}-6hFlf%glv+f d888X,;L9 唈DOy}L%%1iRL,dk;* ܇w|Wn[ V'ool#ύKnlf hTZ5(abʈNCPSFl3*B\. 9$l L!gk"lssJv *]ۥ-i]. BO&9xǎ=\5eS%pfD^7#ы>F)E_?;8^ _Uo^8G;߾}}{9,[Pwd<=}z4/'mlo&u r.U_~t9}= U^oxW_~=ܽ`z᧛[G1PFdN]xo6=D j6=~{yrVM~lΏӷi3mN4M5={C{4h{g}^nN46׶5[$9e]hTRK%D\X.b3{_f3Ds1SS1뎍/E&CۀP @Dx0~A1т!k (0)`aIT YMN3{m9BbO+uP2)*~^@ըOX"J X&PDeW}VCU(w)%v\j?̆K[U5E J%ZA{geFE˭Z$6Fh~\f5vLLZY2#SSrZ9o!l@X発s&d@.f % YМ'P;u["HO_nnt hDCTF+ڦ9#z@4xf`h1'D9&#UL&L$"`2 SY W(Vrbnv191=1m89B]z#MܗqN c̒K(@ι3F%!4kN9;`&EC"4!=BԄx8B`ST$!^⚁()V5c#Mv;1"db@f p)rq&X-@sI@6II* %2fMX*p6:@E\V̳HU1ʅrYUNr#J}xfuCUZ̅Usʌ?'4KkW@胫_ $-nߖG_=IӮOmOMw!<\,[}{|ڶig7˾6v]?8}ׂivM]o!JZ^?lXtRWzY//Bǯ_}o-:K wwx?&GG_}g}- K.'IO?+q3999|՛o~* POޜoܽwO5z&IL R7_̖Gw'r~:lq5^_i΀HslVZEo^^^hPQ߈>@U>Fh&eOB \ף"ZtfDX"EoUB*@K"RG)HB #kP eVJ6윅]u݉40z4J* K.9A`4cF$RY,HXL&SRVCLස>qU* *綃6 Q։)Y#3zR`Z#A65F VPГ `2! ,^C\DF!Iw r6"2cSWL#bY (>x!K#rHސmRb b3͢<MO^RAh}mj3Sq]ld} ٟ:g~'"=_\_\ޓ; *L5hٳ>xܾ}{sc# '?Otm;?\̯XӔ"GFݶK!o?']ib9掤~q}uKDU.i\vb6ٿd4 q:]__(&<Vw($B! b}Y@"@11V]]kTθ \#*Ej`Y&r5t}<)޽{z 9gdA$єKʂc*N *bX,̘в"Jf g; xt 5amJ)2cm*aB3K$sJɄ <27ȩ ͒8V$rf\(✼sDJ66%V] yǞ10]Ϯ9bKDY! }͸D1fQ#@G 9s5EITob7c'Is]Og{e{Wf?^O}|/)u[[;|BUWȣCU ۡv9u٣3-.^F-B=fT=}h4fvՋ_,Յ#{{]۾v~O''`~yGiɓOd<|z1Ο? v.Li{Eu!umݽb߹ fJ)g1L"#d2X0x8:Xs!h5`#OzyϪs@?Lj%E0{ϾrDB(ԈdvhLEVh:"*UŁ`@V5#VP&{2!*ҟ\\~"e[\_+j7{63"(Ϣ:w*5J\6c"'D]8)\ׁbʅW3*Vl`VW.!8)kȚ:hV3-t`ޱ >ޭy/L#o~e)]% \28.V4T1MN/Ϋb̑ETRT""ILVWa zU)\r`V*CeDonU,;ýJWyy(<@|됈1_VS+l"%3#2c@Rb[2qjBΙA: YDr/fLhbjU%GHf S Eɱ"JCL@QT8]ΫZDl*V\bH )#yF0 QfcDCTpHhh"CU[.?<>@׵]"19fU);fNYO3̐RpDޱ1^oSaPEӾл0-]^.mc!"{/ "FuR%ǁv%9kJ_^ݹuo}X wO^MO*4G-v6vw{QX޾uX-ٝ_ф5!\_|䉊>糫hDl֪.)fm7K}T->/oi*z/^<][kޞ~-.s:u{q}cl6MO>ǟ|};z>[|'o98yO>{s Z\,Ӫj[JڏFۻG1ihVI`$ cGĢU>;i6h4Usʀ0Ɣs9}Z;F6g9VFp홂d j d*V< DMƊJ1 bյ#DQA5,'天jeƆvK%"hV NV[Ԁ`hi3@24b]Ũ  &HD9gU 33Jm4<|ᒈVnFTeH%F*E-0fPl ȐTL$7MP՘2 "ՁS {Zܫ*of1IL:@0CC&;Mޭu'?0?/恄̯XJ \M*dC2B,%EnHd UTlxU+ih@ǯy]W3hˠL0e0RjKի9ڀL=(!y$03"SQcK "x4$bbfIY-gP-s(j*0YF`sS-73Cm>%llxߤ$,=܂8}:h4[% bP=2*U-ZXF<=4 IDAT5ij9L|eRDlB2DfMW+]U35,)J+o<3Sfr1?8íh2ˬ^w ͋{oe7 ՗oN^:Q}{z~돞|SWWWW!;d~u5ߗColͫiytrzѶ q[2lE2ooNIl_"w.REc{-^wnwQ6b2\//.lݹL6ûmRg_~4>CwMd|q~Ua4\x{tEYPL+,>crʢ)FF2ȑj5"}Jιf_VlH`U AV) *j)`IG45!Om2+@͌c$Fc q1;nBreXN4Ao[E[VԳ6diE"G˓ONN^x^|Z|2o8<;>ٹsrD[G"{&x;~u299ek[[ۋ~ޒO U9SUwe{y}ِYQ"wV>Vz( w8RB@C ..|"2NP(`\zDkaWX% 3s>bIA@`4 gVS 1Z,1'4$&rΙdTt{HxDj єQTh00L@":4&F3`n@a(rQXNղjRYbͅb)\`蘍줐r6P @LcN U;d "H~cmjӓ{vTA!Bh`T8:^ƴ05ՠIL)#_{O3&EDL)cw,I${;U˒R\vqE{IAAR\[[ޙ/ڍw{}G޹{w>? aTblWW kySTزYf\aĒ1913- e F l;C/6X5l;W3P(f4T⚙ AC0j2ބR / ¢aVEPP UYJ.Ʉ %Kf,,?H罘:D$AVMz T9([J@^fڀI r-j eXHgSQDΪRc՜E ꘣P8b3cG̜Rf)K]JYTD'+Y3,bYw?s {ğ~+Մl;\Z\jPM\4Xu3JmWBxmu &+a "*[A3:41F.hfc`Nr7uS0f >8l } 9s``m۟/x}}=KBt! 4LCXUGȒR#GeK91Yp1Sq I9#PЩ:ԗk,ע0XWXy"iJF'#EjEMK(UP0Ĕ(vb<9MyҬ׾;wMsb䑐 dɒWf}<&0}J=zEuK@W T\ndJ(,jK`nG,Iӌd9bL{W"94o9 ς_|oϮd9֣z:[g'gg'g/__0ÇPM&k{󎚪|}tOϮ|1i*<^mhx5=K*߻Ywx:o<~ciBy˓o|q5ǕoݿHw5$i~uqS<==>9~yt?j7_Mg6Gd\~mtssזbDJNTLDH>Dj*Υpz}EȈU萜l01q̈f++5R͆X30`50@UBU+Nfʌ!ǡd`;Ǽr~w! d\fĪ:W#Rw\\ʾ 0gu%zUYJR$gD˥qY)ʘb%3 B@N)Rg*9"y_DE3HuCʪHj r )f@ʢg"9cfDԬ slSU&w[G :뷿"#RV_d ja241k %GfeiM*Ax Ӱ  2pаx8Аb \M\ӵ $u瀼\x0!aG3sLq]YrMՔ@T}PI#=8(Ex)#e` G @L#i5PZ@C$4C+̊Ыb$nzr  ѵ*!pٝɣ'/>|Q\p13PQ3ev%f`"p֝Q}==7xc}s\ۮ]s)Z0[*SP)#9iad ꢪddfs S`1e^;>y97/<WzX?ӫӷ'=jxgϾff|>գbs1;&wθʣxݣ'ߜַW`˯_LդMh/ߌ*no__ǣPom߹sgϞ!H{ #[n{m2<~{~g{ >wOvEx흝 ǯl)-M⭛N/J-x}mtfj!TNrv1CR1Oʾd*T~4/[ev.xfqazbRށw^?78Z->1[>I!IssVrҔ+ƚ`ɩ`%hT)`44ljV`hE X)@\p&'@`@8P 99ίAzUZrlw4vaiiDMQʶY49̅v,hP0*h91 Il112;,]%9GaR"ɩ՚ͭ*Tr~9]vmvtpd {ۻ->檪wwwgevM3::͓'O޼ycfUU?z˫s&DYfӺXTe PUk]; ipD)-pT~pnqlAz{ӧ_izΚxv,JO;7p|r~ٞ0h*?lF[>췟ly}LD_~e/{4iQS'o^╢Ĕq4k%)3:GP!Mumۙ*!cNم*+*r3:}M*JE0HfW識D#+^^>%;,`43x W:/vf@<$ B(^%06DT/V2JD{'INgU}T== fBiAi߼&3V\IF 3}_U]g^=}Ȟ!宑 뮪L翳/ <,V9%y-ѵ|54]rmzp/ Yr_,jE{O9b 6U31hbfDEBd )%T 1bY)2"9!v͔~n[H:IY_΃uP65h]k<#Lh >gj1s~4:cGSLY$C9"=LXVX8c  f,!=îHD|P{ |K~ϟ\ Q DXB*dhlL@1iVEBvUTqsfv 8U2Pz⪋&9#F9bD״ > ͼCTeV~r)%b6S CbKsΒ{WNXN {cNq=jQX,\a=sxCTU(8J_ڐSΈ " h&K-h,-ch:UBSC9rjFs46y4X-.'G]RӦ/WissrLF {{璚+W^䯾|F#E&L۫Usͭ> '[W~͗}Xc_]̺p=cQٽqtwOu\,^zqm6wN^*m>9C`<|vw|ᣭ׮|'}٣Gw޻\ON޼9y4;~ڵ7oZ~_>ѭ[ƴkV[tx֣o>_.x|G?mr].,Vpw)Ir U })/.+ĔT2 F6F\6])V͡d1" Ʈbv2ĔL ?0oGbYr S2~6P"&LQ1TE"se yCuss){Zo,޳9!H}^#43+Pkof6 ){̊C䶰}Oguk، is܁J2Ř~rs~D?ˬiDLSRPy0.8SSSf.mIιE)9G@$ sf:8QɪDܫ7RYӝMֻ^i_Gkug5'#]{tl%zT\.'3E VF:@1@3o@" `=hP W YI|g_(^}00ԁ33ةL co6Y/^y*S]oH܌{!# (Ok+Zp>"0:Te)WX+ EV&fg(I6r[#H9 3gIΦ̌99N12' d#)V`W+Hua:]Ô 2{٘hHH)f#!lGQ#`b6Ć[UZJrpPy)Tc`2!.ɪbJ)$QQ#{tk0!ˠ"#yv*@MrEsG1όJ9CQVb9a격Al&PR?dP8O777&mN/׮b5܏EoǏ?b6;կ޽b\o=;}|ڍ?F=<::9?Nƛu9WkW_~ݿ4{Wo 뺗ol^u7-/WzPU/.](*׌ֵ4ycJM8BE)5XWU2PI)`DHp و!BJż5ǔSf,}c[\W7;c0!YAcZ*`6( [3={=z2.~A{Gs^l?᭽QV vz.\jgBU.[4~סuE/e|CH+y LQDÿA޴{VMEs"DĢ91(hQKBJ|9t`*rڵPW!eƜ3na^.x۪|C$~ңkyx~ YԄs#v+ԩaJr֪*&ybJr֘h80)p 5/n\rB!$k͜B]A) $G^4My&rӤ`<,ݍgg yk2$)oO7$fQnj9gb3)r\,u兇5m*fJjk0/2j&fAbWR+9`01iMj Ѐ$BHTfZ' Q{&9L'۔77Ƌ;Xh0(cRS\?,bR$"ehN9TD~:۾TS7Qf*H!c.`\@y(U@C;埼z];s.Uz__lnNv)"reo[m|S^%IӍ͜9p~vǓ{'H<oM,hVoL6ٺb &ܚ_^<~F\X; xzzv|i"{>!RI{/_>я?v1ˋx4\.YN7v&b&qήV!ݪ]TdsFL]{Uo~tX&_UA͈)'5SC^Ո1)2{3`CUǓe92^2 " Dvu@?n&7Tђ=W08MQU ; W"̄ޢJVRSXG8Xk 臊R TS,-!Z?&\0>GILf,Y,RO2:b ?p"B)(b=FD%Ns޵LVK"՚7"j<6Z]9fQ̪sPMS2ԕYLcsH)fC ,.#Mbs&p?eڳc]Q0˶ @βVHV*&Ѷcv Jk$6Q@ LfPļ8= s.Z}9-Bߍ# #H*@6ep4;{7lH"~xTwN\vjˮif(J)ŜP@sױsL"\ -%B_nk̑RPS0ECF S}D6"0wc^e@Acl0qA48`r`P&Ipȗ3U3/۶Rq\2/yMytӃkZu"*DSl.儀 @HJ]y͐SnGXr,uT/~WO//gۻo.gk׮Įtu~ų676dg?wODݻf7͍/>O?|E_ٜ֦y*o攫7ۯě񠪸']J)+ћӳtL hSN@b*W$!B/6ʟZԀZt܅VE"".TD!3RL&& 5 b 9-3j6"eY0@Ԫ9L"Zh% /n[Cw75u6[4G!g@ &y:"WfH`j2傺lz\1"!jL S;i˟ϞzsDb .33f5&"bW%0ԃZr~Oh„`[ ;T>%MV$b 2 f,Qa; * hgѽ[@8 n<_^WmdtRJq0sAKl^U?uU]WCF54/:3ȔR1/o*!dɌ \j ,1 )5բrX.֗|t+R)Wg'˧{)ݝ;~ݿ89GwyӍ:t`\5=;8uz_&^F~i >C*.I7|0^?3,Vww:ԁ̀4Up8-<_.gL,TTĄŘʔ1;) q(6mͭ罙 jX.J Iiv@b&0QВ>') ͠JY@ c* {s" _M뭺<+C#Ze:>XLp co]܂ĵaom^X%*9S3xzc1B/ ( Pn$Ree[ 7*3"R%DBJD$ۮ`1?3X̖BΑ":E@k7Ea!bݾ~OO"8̀=D\ⴀL67UDrrZ- "rR,[Gմmwmmo٠ͪ%@Q 13b0yǞy4Ƙ{9r D-0uYgle KL2tW\t>"&΅VeU#a=|pxV瘢h:u <Vi9T;f"Cp~+_x>Η͹zfܻ<{B-#Ҫ13KetV5’DԏH>+_f&4Sj52W+ڮS5d˘Vkj? O.D~?˗&G޼uw?t_፶iwvw767^|^D]0S{]ljpp(:T/^_rk+pܹ~o^~U?C2Ij~wA]Jvrwߛ]hl nwwrr|4j~!09"]Ɠɛj6nT-'r fb;yy&K^͈]!LS¦$ۻ1vIӠݼ2]5mI傤.b#[{cKP2!@$fM%xň`T爈 4TX+ #!9W6>pԋ9J)ީ{2ldg~՗ b/'|/"?BKHBW Ra @%MٕOyLYMluU6&fR EdBb]0- K8f]`)ev=,T }ޭ?|kcb@'U@~ jnjHBV HHL H]Ue)7C9BtUQ?t U HAl &;;Jػuej1oǦALGQgRLk}qf[B3+9␜srA+ڶ*0՝UfI)1";̔O'Ium+EcSdt}"lLLZ1`ϸ}a5 @$d)C|g5"w^= e440a]JX){S@M8=CR€MbWö[JslitM%T,˧ P84a2leլ,jV-ZΪ,d n'L7}pEkׯVb1;?vd*ݶVU5vwwh:~E1`zy57ioOgNd}Σ UӟƋ_Y?|wvh+7vvw?OgWӭ݃>xU/.2Nj]~xgu1ݶd4ɂ hߨ HeΩ$+U'sj0$fZދ̕c ?'! \9eP-XdWs%avf:".ofϴ/""ڃm=!ia׉X<(X7MYq#[Aawf+Ud)")@?]<Kcsf"*t]W;f朋)wV@IDC.f{Β)ާ`2f^'a%#0w-z?Iӿ/O5CENr/#^L{A Wv]ZG.#1 09PT. | 1P E0& _ǓBs,kH>8?\㋣nv={./\ fѽe؉aM7;W׃L]>iW m֡vF>7OKZӳѰ }`jTF;;"wͩի7eϷwÑfg8xboo޾BG?d]@޻vY6ݸstz4zG?Y.S٫PN= .ΏN^~"GZjfv.9|5b:NWFUV0{B]3Tm_s֫\F eJd6 3K3յn-n+f@3$s%]I eBr#Ay@T(ODe.y+i%z8@ZKR2qRER~]69(JBȦRf>D3c>+l}G"Bzd g1-u&RV˒UJ'2ZŔՁՐّ(oU!*1U+ǩScO@mC!b P}T;=xn{P9Yѯ"ؐE} G֙/e,V ńlD˜)8"4@3Pu[9#:`cԛKʈd*CVFvbjVQ3 &7SF@;&~c&ștk84oj2O7@^Nm0ThEeL!5AlY*8`LED `9mrYWv!gg%G 欈̬! '2,"u*Rl:3hC`Y 'nG:rU)Ry缂A*Mvc!3d."onըLrG_Ά#c&pD`Br҂B]ImCW\>ilAU:,r'M9sJY!t1+mnn_..l9> 9:9;{s&z:\twwr~w]jSҭ͝i߹ghDD7oGc|!4`p4;K,~ccKE.O='mus;@>^W׃Yg~R+.pbqFj_<|~v\.6߻{}E޻wl<>}3l\\?޳gG_Ŕr~q2OWWmJ]חo,{lh$ R.J$4m]YUr )"},4w=pDEճ+w}P$hP6q~맺•""!80D"Bt@#dd_@$\A$l6zCIO.\`~9@1hEB]ºo @AG 6e]AT}":ǪB` G{ĐaD."Qb "2Jι;3)AӽU߫f-#á*LYʫ<HVCb&rL1&SQ1bD]\F~.}[b~?g0uٯ"MTet'B@L@D9jEĆ`73Zs-xLLF0(b@x?_u0/>)3mXŮhystjeCU e2j^[;w>8[.ΛE+4@*$V(M^iHS2"#Ѵ t:.˔^43+XRQͪY%lDD]q3˒ߎ@0Y fyM G+/$:4 ꘑtpm7I$ ,]'jJbH9s^U=ysb6a0׀rR/fOuKAnLzPe.08IbT ,bFDjS`J}<1sjB9LyfGO//g9ɵk;ۻϞ~9ywdzřW?^x7߬V7Ver6;9~7Gdog{\޻uOFjōDfE mLj/>s|~0y{?qdiOGD̒ P 63;gkooύhMMUY)#w?x$Ȼ۵۹p̀BVET sxoggSu'w&a=z'z1֋Y_|~y"r,~?^nf~>=8MҡT?_w|Fc]wnKbOb0Mm㔢ArKSEDM [uݨ9Oѐ}WuGWaHn ڀpr-@l/j@b0 "0PME4sHUd!oDj eofJ8rQy,ƐdĊbCZD H-<5 .!5krs_6"\3V.zJfa.@fW%Q6kIybDDW5I!DJ D^ET{$D LsYc&ẅЄh)p-z0SY M =z ^ysnS![.`8 e0 CF31f{5*'@ i0Q#*:]USa^ bs'AoZRj1nBӸv)%>$8=<9y%@{4P$Lf49H 9ԔH1$,D@xZ)% z 9tWW̨ͥe&F91E@s"Ib:mLl$!@3_j{0Һ )!sאX %*h1I^Ѭp1Ύ#̕ U`&nӥ;v.W w__j^|1NO1&X Ï(2;gDFqRSBދ4sY%!=~eͻ@=y~r֖iO]`r?i6||x퓓ǏS"J)9>꣗O>^ yI/:! d4v=WW/?oB'moӿ^>?zk{N^US=z㭋Ojq۹uw/~AMeT GWp]K0ݾ$WMSH, B睗Em$K $IuӐ+0~o|DEMD9S5ad/f̗9rTɵҌP҇`H. ώY1 5&UnCXh;n[hrL[qP,ښi3D̋,wC9DDp{oD,Ze `(JS0HƁf`;5c&] )Z8p,MfCLd]ĒDf.Jj32@Pzvm*DDEY:ן17 ?h-6۔ض-m8&ĘLHͲADD3Iɲnz-;߅)dzrM'|>ڿsWMLq09:|P::}SPvl~̠F? ],W, Eb`O(əT~B]10"ZKv:!;v$)@Q옒)h&E9GBfuԗ i#vF R3 (!d&A(&5I ,JfH;ں7MR~du:ҋ&Ƴ`̥9FBt9gcr߫^*߿uTN7P"Z0LF1!j~C8bf&M&mR[-DvqDXE hX\_ Ih1 Y\:o;^w\\9_ܺ}ǟ{'Oޫjs@޺u0p<*jp~rBʅ7r<~LIwzAW҄~eSZ*WyBn󋳗)vwUw1oVܺsxw^9RX,Ib˵FWCfRQ.hӏ?O s{f77ޠDښnUMoBIQ XeF3`@J޳RyذN1Q6W^gm!3; & 'T7 NU$1@D*јo\nZ40Սnd(Ր@Ω4!6vd@-?0w,y[h5U.٘,w}ֲڗ H^<7}nH)ۊN1ŐVT(c9DRTp޹, &ҹ)Elj49RQ1E"t Cjxkz ~P1_2˛"0ܔ͈"ڞ_[ΧqP"bP]'EE(igWHbЗY竹n-W3@ br>?nm흜T`{;2 a{gk7E`tNJf*{ r] A6ABf2:- u`GIh3+ S$bfv)Z[#HRJ1E:J4 FAsE{.D}X 8b 0*HvD@3͸ݹ y8#AFI,vʪ-+Gi:7|3s2l ^?9~vS/gޭV`]gS\֑(bQTM͑)0/9__ֱY1D*B\z}ˊ7cr=:9^w<9sNIS/^>7S"߿w^?;? M7ݿxǓdx\,,ez]w:"G9XLF`XMLc,=z{^/?R+ދ/lvsxkȋbv]h4/ypp:[[|z9::&Ii{ѳ.VA,b>Q|QU\<{ݳ/!Fc0] .W^$I*4Au~_sW)E@AbC g׿铫뫢|'-rZ,W C(z'*G^Cۻ=..^~iQu]<>L&n=U}l6blwvTp{kSVF,z>f%ĵ^t%'O bbzs}i4 G!4Gիrgg㋓$ͨ{͢J/Ug?{zzWO׽Gp6`\;w_M%,zT|xNvz MN"V^40 nhR DS&"fymoE"Q;׋"q @dHiQuQz=V&}J֪ߟ5+2)JfgEh0/W5;vwvbӟ=y?410"9fu1Eʢ`Dț,M*)w2qPMH #=jYMyFom4WADSQ dy3`,IRdtI `θSFU#_x"ʧ!ۓ0s:~Ӑ$M߿=OvN吹$v鹠LVU S* (f!*T;ށsdՍ;_<vyu\z:W*LgϿKq1º;[ۣ( DZ,Uizz=F/f ?? ɓƓS)N}|Euqԑ;BSI{:'O$ :6-g/]-ӫ3дggb)7"5L|'b9XNWUo4g9;ܚo._rmo~0pjRCW1ۚ|DEXUg! bJkry*)F0[- rGD5^gjym`3/E$֗Tr3.; F ue$4pLsA="6llCt:5-y3Dj6SWg.<䆖h#,kN27\5#GfFDD Wq0d4AEM sO0DѾI9}1(1T@5 RΉH,@E2YRU!D$.R$aL☼G&QsMqF} pj]'M'b/qJIz동vRve m ۴CؕE&P% Ĥ@P5X !3JRHҎUn/A@6nyF A̡ۿ{xS7`FαiL3,g3k`Mb1 $ܢFpT(QU Dp~3J@SJ1̠pkox3!3b,,aB);_Cz"$J!F IDATb}EQ Jgb0"`H]Rd)},I@" Z\9/3h14INUfwݪS9.l=7-M<$<\0t#txzqX No{2貮+\1=5}pi2<^PbuD0%[#3y&0$5]uYv᧟wߝ/ͨګ:!bv;w=?/_\]/fʰΛo??~1ܹ}g4Ϗ_k!E7Oq {j)/3S3!wUg2LNH^WGow3_ G_~ iwXnXEy2 F[aO;{oKD,g/M WQn*O'{a=}zŝ[;'''b˗D\H !iD Y N]qC(ˮc^u("jY7bF`v\}k9d }﷢٣T9D A@@-F ɣ{E3h=7̀s} Dj* h^̀UUM )UTY *HnlvkV8jaknr l#D(J5Wcd#=n51s(AD]Ӭ "I,"1i)f 1I&e+ qHUĒ"f3,^׏hm!᫘W=6$PU-b7צĎDH8U!0+LS4U4C0V+$%S`0j v"^^cJP$`jՔ°(o.IbN<-WK[$QA0C~ HD 3yD J"逘y~!c#3-|Q.b4&4ͩrJVyU(s sf"L)DDss9 E3`We4)a"c s7 T"P`D%'I E٫ z)'j=UԈfgt(1o\]lv.Mo/r{2>9;EgUɤ;|*bysu'H//OΞ6{Ec,sf^\^x_4uޫ:X7Є~|/Z'_} Ûtz_(w(hww筷gUnv_,`a=3N:\8Av1iR-puN?F=wUED,)i"2/?ud[Uɘ(..k=t7갬1I\/_<~x5sO60ݭ|qEQޒXqQz\ٺvDLEʪS:ZznA,33MLTZ U/)]܈쇜W=B33NM5P5@\ա(ѓk@'9zQ!I2Akpnf3%D&\0yh¶ 0J̪69{qI'}"b".R3kl#I'eVϜ3EL8f)liNU1yyoU<{dJF3&V@Vͳf+?)z^5~5Vx;p93SPD6%XesC@3RB$E**-66DCA/O/\bI<Va ^}y*Jj5."f TP3yU+=#PD9g] -$޹j6Ķ#l͆aHUSȑyc8D yn, 0Cv<jA>% 5RTE>&tnQV:)󊈈;[2PeU3g%@6eyPX6dFϞNױIu{t04( BN"UrZ-WeY9w>zh8cB eY^_]lo=|>mF;fyzVn؃!$ |wry4Mln9??/GIӕg;>޹;d5c^78mUu:zxr[7^Qv:-VrqSrV`8pnxπlMMlPDH3dB HĊ6S0R'1 ʮ@[JԗZ-_JT)`#@D BC$z[[qǃ(ƴnVPiBdj-}*!t =R G9X6bk1(PKԺnʥzUXNm!zb0Sr339"UX@IlX"BPd20X mh8jtwf\E4C"vMf5"bAU%"x_\5j&ߐ-o9N&h]qs3nE.Ho˳eS7R,jv>_LS 5fW"jK#%G Ԭzɞev;ϟ>E?u6SBL/.ƣI{nxR/NaD=ػ5Y<ٳ'˓GÏ>..ΑL{t:}vXRvORQȕ=.M"~pkzVuS72N߽:?%۷o7~Ͽv K1.t2ΧiPb4BXC Alb1OPUvx '[۳UUvRBw'ܺiʪ"bM T1!iV ҭ/(ZLS3 B vef߫3QR՝lKiN6ÍZ5'%)ygy}́-axqs+-oFl)ʐ67!湭m-ʴg&Fd-1D5.)v/=fr f*H@DN YcYSASfε)ISҭJ&nbQ%{"0Ĕ,ղtLvĔLE%{kzOojWTW*`Y:8 UgJ7me#hU;;EXd-eDŔZ5qKSY{f@3Ajqz~^:I̳w\A6~(Q*U!wBw<2`(S+yUB6GU)LUQYv=n߾X.LZq034 dL΁jo9/+SUQ`iАG^!qJ]0G.bbahبb&L85;*9M151(sp\0.@DޑlF#Dsw!K|[ǘD=B0(?_]KYHLe|`4Tnm)lބ$194%bfF"DL bB㭝뫛7|DܙN.///ΎλA]/ lMbgoG?|? />o杷M]Hث^\OwuU[o֫UޭO>}y]/h2^ͯHמL$1^vZ;Gޞ]]Q~_~'&,)-cUeqZG3S1 ݝϒ݃1)?}b{{{9?۹U// qyuy^ *Ry7ڹ8v:& t$%B+{*BĪ 4իcSJ`@9[EN0< ru?/ah" pcIPVپ#2BrԌe -{`@Z֠mi6c3q#!fhƞjJHЦgh= =6,q Di4-yg7w ?lD3z 3Z>S=Hfb3?I{שĺnʲ$Buηjb1FtJ" 19GID9thL49,+LTV$(<1&\L=z_]*Gj^]RD:ςL[Ijw(S d276Dյl  }|=_ ZUB,{M>kBJZ#pSUxL}P(0"9}ը^eiL׵nM:`Q?1IY/Kf_9J"F;뿎wv<|xy5],|i٩fÇ̞_O?/)ûw _xgO?{xz}~5_~ZbRwwCI!UE$1YUv^^d}^45dYΖM/yǁ:/FPT|MZߜL/VU]ĝmo\]&{Y R޿wd2ZodS d1_030-+Vd(7nߚ^O 98l%m-K@idE$rC'~e|=BJ^cBl֘o؎p\ 3mS4\ u{ 7:sl:#tV<diȵ [Gӊ_AMMS%B,af8f>c .sc(DsMnS*K !DQ~E{B`GUUXLw=5Mbuh(("/V+&Ӳ(bkG^\gh# Q? !lnɓ痗}J(哧ߕ/='19Y<9S-k)"}QݽC]ԫzkk'f D]"\,fռqoPᄹ֭[?MC&,4+Cf?=ř5Pqvzr1 YQvʒFl[};Tf;fG9N^0W3kJZHyT爐8Gvσ/>5{um@D%U-@IfΊ VFβ48Ȼ}QLvW)e&<^@0ex4OcՖuXH Ky)wܢ2:#y"fc&Ecq*rڄ@$ 3T1X#ָ@Sgos>#as@%|@HG@u]=3hM:eሽ sgT[r+{D>>=i_UecӴ^]?p^L}U;;˫h QM85jը*eY\_-Wh;$ჇNg0,7Ǐ&7|tqqZNNfܾu;Ϟ޽{gϞv''ǞE7&ۙVeŎc`ڌF3|yyX5ᖨrv5Non&{7.)&gW׳fk/Ew'[g'؁x3_n~o'իeQr!B׭z>Oݽ/'{Qjxlz֝jڄu/N_r?!O*$]̖:/D{eIr GySRhA!ęÙ3oax>R`7кKWfVjqeD*4Hx({Sqf]>qtrBֶ[-1FA6Evw0/gU])1"[ӄ4r5NJ*Bd˜͚,\UEI51պv%i&3U7Ri4|T; ]DxG\K Hlih~UЀKƪ*""VA0H$"DL^ZGDI (|$bsU "7b!s6YCHcl+Z!Hldi6/Sp(s3+ xLYU"b "*uB2Ǒ̍;_?^իׯ7{铝KzNJa ׻*jLn] e$@ );dW",J#rΥ&hH 6F բ᧋_a"Vny# IDATOg>?Vukmk2"DJ+`( Ph I\j1XݛWg%`2Ҍ,b Q`U%[Ld(2Nfmܰf h0DW-b,ksd pl8d@!@i-B֨ *ljcarch#TvB2(ªB4Zvfd2Yt:EsAm"4"Ї_?~pu5tVpyȳ ?e-ky9+ˋj@vRezVRGĺli,wֹb D >oBԿG?x/.Ιcݹ}Fy۪pt|ksgwwჇnnw7:"v3v4]Ve)̰]n zer]WcB!c*l|uyv1[,(+^g8ia<Ӫ 9xv_D´]XcmY;M!H1X |(;u[7zk@JE`fgHD6)vQTM$ (%.,b, *$3'dinם0Tu晳,PkX0^?HQ]aܦ]&^wU3QeHHLCt;$ yb fxmx `4-E&cOL+jk)6"ky](&r X5c,UJ-ZfdLdu2G BY{$2!rU`Q eY@a^c YVsG$cl lIb^տq*M4NyyLP Nźlٔ 5(j")s7Ar~cNGfD&9qc0P` 쯙f/E #d (W9IkX"ؼe?vU9bQ!HlNIr hא+1i])P owW H2Kls\]}CDc!qY+(#bfgK\ az8pb1,zB@fHDZ ($Z'PLgUm J9XLzNɲ5넼V 8<9iw[e/ͼWϿ~0!J]chYDTBE=NcMx~5lo0Kf]Պ18kL |'0bUȗz,ϊg@PCEƂ#:b./ܾ]|z_֌F~;}S^{(AYwwvGWoUO8~Ç?^Y[}O?WWF E N`V6(,/5 z]e,آluI;GTnۓrŏJ޼y-[qb8\:;? ^(oԒ繪ZPycDP_<& umu$3ED4Wef#0[Ե/+~Vյ*bDTd߫w_c/B#xH"5H3.T@%(.QAɡa"B" ʊ@ 1D"E@dt/ j\7@ `=5d[lYH?J0]BjTZ cg#q5>C(;LFS_ P<ԕͳN唙;jB( (#!Ѡi`k' bapEk3GV$S MTWaU"U 2vH@ 1I2ɯ IcaTB0hCdj<1pkW$HFc(,116xWBh<=ӣ~; ֘E̜SPdV?1̝^U?. eUv^8 @c?̮ծL-gc1J1+:E{U՞ϧvm'W7n<>ɍ1uuNY͍=_Vi__F]ww\>}\>::;]~旳{hgc}uvx_=`CE^=[ ugg'QUpa&c G6""+%NHPI["sHmܘ'MT;l Q D֝hԥUP82Q• ,$ r; & q|NhUI$arL}:Q,$ @M"(Ć'RR%9Jhҕch!dټ(Q##G"✫_lVc1+Nf4Er43 tfiA_伪WoY/-jJ)@t̀Hn S`d4}Egf"LjbilA-P:;B pg1,0DX`]# c2 a_B=W `f#hp#e+e 1!D ˕G7vϏ%rk/gޗL+D!D:(\1$3$?q,>:ckޒ +DHkHP͈T$(*2$nj_fȭ.  :6j-1%KqJ> 1Ynkd C-CK}k TuI&2QL"(3H}EYgCh2~{g) q-!b/'v] ;l6Uw?#{fdYV/׭ɥ&\|AJc!I@mA|Wtd )XX??=xpӧ+Q)jtʲ/Duws{d6vw867nݾ3/͝eG>>9U,OjiY#}mnzb5{ͳ?,zժeM|~ʒAȭ:;<xd gON|iNTqڛe֐&wlQkL]UJ5VWӗs&MoFx!]D&4EPTli@1&̤դfX4U!ވ4>H1!1˵CAyqqDfn vIƫ%4YRqvz)ټ򃪂06~7){c tLmDTSGz Cu= TWU "Wժb90D o 0^{w%"B}|f.: o4~1N2)%U5/MMC`h&5i#bVHES^z,"+5T@I ! ւ(7R_DPqv( d@Ef}}1@J TD P6dHK+* pZkۄ)7^]MGW9lKxU P,EOƳќ Xl + Y !=>2eE&IuzNš\Bd)͂j  )ȶTVrBCFEZ(C2 C#!4BT5MCTƢ3UY~zYv9cQMd&@ !L&V֖ٳch, 'OmoofeY>#񈴾up|U)F/O(AWp$k,`3UT'x g>&CUzAQ8D|EX͏[o4~[?nPկhv|rev ˯W/.fG=y&"ї( }҇7NV:RMEFl[o 77>񴿴"6WWgόͶ xIˋݽ l: >۾mW _=GhqcïuSd53*[<d+]B-Ny_;J$_kbzH Dw!l^8%lL<P2<J7/ e)k=j㜂*Bt(q *QIXHh84(F=r2nI:%')IpVD qj\?Y*@SА t=3"bHD"p'37 )ٝ|( |#6Jӆ:/t18ߺq3  W/ߩ~-5ŗľ"0Zplc)ST A, $fi(*(ؔ&9YZd劂{hM @\ |@$g|떓)'b(hH@`Q E052Wku_՟ݹ}G|zz!֮txn%f(Z{A VI%fΑe- aQ,f$"uЈ*\ dRVŒ/ r%J婢%Fz[9 U@  7( .9E( j rȠISEM5DQ *%:έNVqVV˺& p]nQU~syYb}cc!v{}o"c!Bh"GU2 _G((EYMHrʻpetu>v:<|dʊEhZݿiCc?O&Qslyyi޽٧--u_|wյx^tZ/{aQˋ!w~t>{tvkV5uMٸU;M{nTzZݥvwp~~|#"铳?*<2Ȅώǣa1dggVѾ}G?:;;3+{nn0hRa 룫K)Zr&5 y{DʜFg3$,2U  –~`EH` p©2@R0!&!91iyDh()S!6Z6ah}@iL565=?MDfS ޥ8FS^"X}ddf]T%ȪITռ 1VuͼϨ^wuF^ Vi?~jhy7G/GUk'H|48ht8׮曧{U߲~-_{ "Ŀlx-o/)BXU%~!(k"U0! TԤOo Wd"dz!0hZ`CI`P\_ݸx" x%p a>41d*Jh@5!7wv(,$HTgD9|~ Bf{h #kFo?qpsl6 Vb/ϰ(:鱄Zuέ EޛL'Dgfk{3r[`|ȋ/PǨ,2S|XO-T썷=<<ɑuq1-v4jh7oƹxsg_YZjRy폧;kWן?Ao^]" A O`PpHGG1VVTZ{@a"g_& 0"it4!l6\H"("܄)ʵ*Q6baXR+^r`y1`Ph4 cAc CH}c9f|! SS!ωfŅ^_A@HI4{@4.c0(atyUj2ud: :@nOpkc0֡0"|}Z򜜝ITR1Ĉ C1FhP1(Jޗ"5Za^5V #lY,S`5.) U#%O"Q!G2 ,:ca>w:x\W彃緶vVZRˬt[yne֥Ia0A|eY p`G3X10(AP" h0=5Q#D $sj YA oyIU՟rwso'~YTfٳx8\Q~0VC2^X޸qh4:] ^7j:ۥZ{d>ekkC߼,y*B=}GWDz͟gd_{y&~堝*˛|6E>?<(rgƌSa NF3c[kJKWGϏgF̶۶Kurkt6Ɍ=:>_z^\fys Z/v'11̜Q0UDQ4IsNaNSBdDb-rb62HM'F4+PK_̪ P"F(&9{Ϭ9c !HA_HzZ?8Y]R5?^<%~{0w=lz GRcj鯓ɤ|t@zLxyT.}|q>,A]﨡c.tћ}UW[ F)/I!!'t IDAT:Q bXc! ĚْX@Ќ$e1m5uJ T5DUl|cTk0YYLƳ= dt_F 2!*fR2OkIr[M\l%[%vX D&aa{#!AWg2lR& LutuU*}]ZgX|d!/\^I~7ԢvV>l|vvYgq<WVg󪳶|Y X[Yfh'HdW|r 3KYQ߼g/GOO+_Çie]Meg7w>?:?觟 w޸OS [o|^}ZeXFTue' (l<~$˳Ȟ/j]VI&Ь:D@Er3%UD=Ei:m{3/_"M) 16ډ^BRrHd!E$5.{E!C 1Y*24Ini8Bc췀M/cžd/Ai;'#bY|Sqiiiii(Gz=y͛{.s;; hZ]du'8m!h `A U_Y:k?glFR Ef"*Dm&P[1,D9b  D6ưXysUj@IMbES VkH< zK||g( *k{jlL0(W0&;p[kϏKӋ_x8\1Q$ XHWD 4֑N9N2YV A:+y P' Z$(Gcikj,CɤFQ@*<#" ѐ *R:h ZA2KAFP%ыWL- 2RVuU1TO?|AjDUv D"2by9tfkΚrfUMSPZ- `ڃ,ХUb08A>ZgT ̉`f];2[c33?q*aUQo:;vyAUyyu$pc]Q[o.ggݻn?=;=}睇9h6׊xs}6YQyllo^"2D4'myWk~fEb0LA4@*,M[0hFDXǪJ;㜛0Q"n|{t"^i6r1uhˈ0@$ (D0ou!&B7Ӝ4>9=#00?=<F*2 ZDLb̜Ek#pm%dYVzu{]_׀Y96DQ@g-!Rܐ* A Qu`Z.JesaEP|@$qd̐9ePaDAUk⦅pVfCxtx4v7o.uZfI,0 {DD޶Ys@${drTFfo;y6(\s B@dDUb@k 9bE:YQ{5DzTbl YkE37{_8#.(GNU}{͵鳽|'ι7>s nxx6Zn]Ɠ޽y5yBiuw߾svgYuc(sy72_^^\8ݫ3Йnln zWUQ)+1,:NVŢjZh\$'1 G4Fa-Hr gNbxiȬQ3RlUJfp=ly 9,R5aԤh /*Bܐ4]8R3}_3MD K>zV-/,t䢵 z|||-///ͨ_"^^^noo_G ,sDc$BjM~D/׼[5''/e˵lU_~2oRi2"0'`Y ЂYz>J9p,kA ZcCU+%O2ֲp"9XGogo|_~A*XV|h HM LW#1Xaǡ5(  5dFĀ@ooqUgh SK!|FL$+0Ɖ #^GĊ2H-A"eDT!CS.f:WV_ZnO'* 54Hއv˜f&D2-af$PeUyrvu|G|2\y-$hWdzy~Բ@y%0,+lVlxҠ'ڝiku]jWx>Z0z}pp YHA"re:b`'Wpk,^U%YGjXH;>"B1pn6 UA A7ܢF]Dtǂ"wShO߼Hڣ6ĒF2{2D!(*EEPՒE'#A +++׻}d}X)3nooKt>/6}nKxܘ0;<_qrzϫzU+SZ'O_|hPZb6 Lڇ3x1" `kAM R! G̢17d (d?|H/@@M++Hr͵˫էyuao)@ \VV$SvѸٰ.!EU `8Qhjxv{>+^_6gy:y|<#u j3=ZDv!sX !,-_yxwcf4[QE|(ݮ!!(@U׵,3U(x|c$D wȑe\ ZCTU j:WHAHAK QD; ?cgKXq "G7cWű=9fO>hu/޹y=V<_[<=|D:C tcVV{8+ˣ-x:g{NΝ;_j{go}k>-uspW,<~oy rWENGeGPßY{ (Y)f{_v{"wO8f3X$veM%˪osν ^fVfVV\A#mɴ%-ݚ܍-G- % n,$7H 1K((a(ǹ2+r\Ub7pwoKSHUI]'uquBw{8&"IDU٥:6I>{~ ٔdJNDEE%Wy`m33oAم3DnXBaٳJrOq91^ bN^fmll 6}zLUy\MQp$"3f;~?0{) іD[dEU͖ @(r:{7Ο74.-QGtpxw{pSb8qD<͸H4i0..,$bl-QlM0`Fb ǒTm=K`%rw9\j{=/^Ψ]3S;lKi cnw܁iÇs}Ĵ7|ůU[:nmwc3\i<ٜu·J|3o iw]ehLT . ft-c0eyU&+4ͭw]=,)J3>~Ix9( >ĺn1s0'#YrFpN{O!5ЄXz0 Ptd{4Md @vnP": .TUMCV c5, s̝KsxkMJД4&!9 s]QpuѠCX[pQD wLUSRHƪ`^S Y:9Υ(±X \XaD#W-->.}vAR_3A$u>quYzΤ)^=XtJ-1mTհ,{~&I ~ңus||}{G-'sQ;$J hJ0Y3,mT;,LB#T`4Ovto'fx)l] pAF;+0ADdwǮm [XUmz|0"KlV=} _7|ݪ5obozױ?X[Z:t9fR˴Թ5M$/{CvI!]|6{d2IQ:ny FM vQ˟+q%oew*vאԐ5sDFmS 2 K2CVHq@4Ol<0" gU4 mS敕-$ YkH%)"I%H3&K@PpA!GNooTޑ80J F (؈"pޓ#Gd* @% u(SD=(5uTOk͢8skW-vzh`#UU!jh&jdOM)y22u L spIClzn bqhO.I'%"bR;xge"Xu;(FԌFI8%cpE؅Iiϝۿ`>guǁ_M*nm;uة?'9Ѓ#Ѡǃhs䚫+B訤O? @M# lmՇxೇ]{ē~ۭhHidks}B8ֳg ~(<49337IqUj FO2yȔce9r-TeCVobX% ʪ:mo3M9+YOVMA9m/,,{tZ\e=joz+_?'~h3Փo!rjywBo1L) BBҝ IDATן$d 2 ?W!hҞ?78K7FM+;\;w=s{y `sFN~.aA]me=^]>4SpL{Dd0ٻr>޻oA3~J\o~|+K$ݸ]x R9 @@j]0qT[h0W {ʲ k9sjRtP " x0TaeU'O a 3β3,gfnr¹-i:srEs dS:E窥|?iW), LPsLjZ,{]NJ}&b&FPtT([^ZqzvP9vX%5&w!.qpoy N& ʎ{ׁIJHj3#;b5r̵ UW9vC($,)`DΔ5eB-vz4*41[6USO)E"l&)E+x0ڜ WS3"S%DAE9NNf%! ))w%9F(6w=gά?xnqhM4@qiwQG>%s ('4wP>=w-??GtcSc 4`$ JzZ`཯*ƸRYu]uvw&;vl;c^>""0Z 8@'Af`cZbMr-7=c;[ۭRS|no{skP)6͛vaR*X5NR@ElF/ixiTS(fw-dQJ Jb.xTW9f}s?W7נZ;LT\&FD0BD U̕)lo|亭Q@PʍeO+!3E&8RV ebs{1W)wJ RiRJ!`sԓeT~o5{b}c=SLKj\QcT={"ǤJ4RTUmO^7 v}CjdzE]iUEKѤ{>*h}aU}Q1Xjx!4Uu~So*k;'N<1 ;uD]KEDDsk=ϯ553!nGCbJ"v".b2- :U v6XK婴$bbl b^<ހ P Gp><ڳ֟6b@A.ID77]butM dVь lnW=mm,/~dI.<a4vJO=_@0^kqWȇxݩcǦg?C^.!˕_ᄏ_+rIV׈{>$5ٮe t:fOq$͍F#"gy~~~gg'/Bf9߼o~?C̒J\"7}Rߧޘ_bdˌz&@۹sem~cLYvc>TAmPO5I Ep`7E$~$3sȼ^;ý9צJD^JLɈ8 *Jf̦of814w: N0@"7O9s`a7{>(z< 5C Dg$&u $O/-)Ͻyl%"cP`),96c5RJD0{bas{3&l;6"TJ|L)\C-^L`aEE:I R=1ú7rP]&䤎7ޏ&ʞw9X&_N'I"f啭pHŽ/~x0ŢmjPMEATt(EPܞ56 ٕu->ȍ7ܴoM)=y6&:|45ޅ}`\ǹ=sul67M݀ƬڌǓ~\ A>wRڙcfȔT"4IČ@b֕r6 s6]n<\`,^LM"m] 8u i!TF}oVL!S;1g(P^&ۻn̓{9rs6jF͌{ӛt a0ϟmo\}sܤ[e:hixϼo}λg}?%]ջHOҮzwQرJDaN^̌HJ:Kí ]%qh %OOZs~);LXêIL)?zR??Fq utEџUQ<d"|aDB0@Yc9(LΙ v$I[>qTE8|G&`a\#xxȚD@Lc(Ht:d:;%RJMHgAx:IdINێ"" -kQ(۷oss`dD٫D6`MGa'uq7-vLD47tɤnj\FI;M5b'ݹ;k60$HJ)6|pI1dp GS5s?HQdwy`ǎ=J$fR #gֶqUW)DbJ9agl0f\;ODhmtdK)8]![YȌٴ_&$Fd S#iQP6L}Ov+6:vիq>*̌gUOTng>;)ft|. ىZqjɁѡ9[psG}w\BFD.:ijc}'|:Go V^>|c` j/垟mۏ=6/'ǎ>UUFyMSKѬ[^8eivp /g7w?g>۳2M rg oߔ%bg0s 9"MR6Ck햜w fktt]3`ey 9ι,"d geYY9K =KċDe{^oR|ߗm)]좧.10l=09L6ŤFYB )⹩h%;0Bȍh/K=B1"8tj97d #h(w덷=z|sc nD(D ljrDʫX Ҳ9@#sY0l}~mwV6Z܎Til*BMg\9-31wL)+O͵_nT%ds^f{O.P)fQS"'٘u< rp7;uM!Yw}-26) x5{?z/~胟/~[~}{Sނ CYލ/3x^6.W6]=v]wrg0 ۭ$AP}wzlj0KhyyypgΜ.̀y|~?%Z^Y^@ %P#Gs2$V{0;4|S2C(C(sٱ82c'J\;}|όrw404($60o&V)5vP@EN) XS8)؉O| ؎`5k(x=h#u3ZɌ)}:OeSS>#r6K( en$#Q94uf "K[á#7'EadJ;ޕ#ϴgaqg8$2]B*BB4 >-Ĥn*aНILؒ5k 5f>3Vc6Ĵ"̮XR $V|R0W!R73MJl>& L&CTł輒Z5 ñ )u]Dy?nT\{ru|z4ΤNbbTx\:3Чf0D+Ni'U#eD[ԥԌm%6cs912iMaP(e.l#N~{UM`Pٴα]乙ptR~^p[vc{7~'^~ -.-3{5Qxn?w^0߳[Xs'rٖ$2C+cD;k摭=9U]Xs@__L9Y~yrt}}me^7ۯ~wo}Ey$BLڽu/x?G['3F:W֯܃.=}WwUE(HM|qaqtw-Ƨd/`\awG(VW667T50+$:pOtbYv9YLY*rYRF~9uDsK ѺtvчWJ|[}hM/Q/P:@ht v 5.(T+8gvc\ kU BM3gɍO"792hxb>bK0ΘhV@+W,ПBv>H5Rbr8 A|n9qvu"iY ̇N ۛM& ΕDi`V ƎvS0Rڨ)1s^j\R1MTz?idv`f151&B2-\Ec+*aEXY('QaW%&SZI!`^͙Jh33%$:r&* qD) UqMl $IH<&%1E18=Co%ʲ"icss0Sj&ͤƣ0f8Nd2J)(u=SjR$ r_"TԦvTd˙T%#(TamBfmq2K݊ СC~gP`4 ~dƗ>)*&n/ڃ/SXDOۧIƐw=ظ_r,0;*j,x >䉝ބ}lC==-C6+?2%k6R9)Y\@ZN/}K{yů{?uם^lZGkwqwǷ\{htCc_|>qYV9f|o|$(3.E~75%fU6z*e;SWa )v|ȥs^}>΅wĕZ[]B {; NęcϮv%b"xmCԭ3A'W_7ޱjxTv6mY6KD+L>g)ƁΟ?4 w{_B[ub-_ꛟ +?8#L H3g)Ncv 0Q2S96#BDA22nۃ!';}nLs2"_8Ļڋ\+Mo5ǝ/fm]6'0cxuFk@D.,N`j ۏMUVy^ FQe0b4M=2{ zqA /44Ơ\5;/Usow9Xb&vNAQdԊhD)<̐ Kr~aED,t`Eس&P9ȱHfuS9DPnX"DsĦ.:]Kڒ%ԩ O|#G==9pfp0zN\ J)i'x9G)EL&SM JVSҔ Q`"JjE!Y \)jѦ>0sP6 7uNUՔUUMEr0#P[ 6ͨmVC/.'#- 2;)5J*^\.%젖rt| /~oן[3~a{{Yn`P"_3̟W%Uf%:Μjn_[BvUBC)bݲF92GL@i IDAT$ŦshnB&M&B+q6N29О5Rȱs6>ƾ~oITDLL\Z ʂO!gBSrITk lOd9Ѭo,~܈dٟwL#¹u4]^9ʯw54=?C}8_zjʙ݃ }`QWz4"T7"}Q03@3`NyG.˲EJDEYxKIC?qy~J NNEgqy|8+q%Vy1"uuo^52:wy)it:Hrnj7xjz"y x3m!G=*;vBAwCPle.U`DPpBh 3y5Ue &դIťͶ%` F`(μZ9%Azְw!xNkjT\;E`VNE`v"b%Ecc"Q*|Jʆ6](qQtqIVH")@=aG?& OX!3 -)ȢMj3ɶ*`B26e2LQu80 bt9HgSԵRv៙fĎ=3s9-;뛛qvSA=eן^s=_X"j$ƒ8V\ث,}&Z7b 5?szӦhwoeч $hsk_Zf9G3xq= !RyPd}MCX_>_5?kj1A[|B:\7oF5OW?}X p$Bi D1w)k0'~sm7ZV!`Y:A?|o}{j-5w6fEhޗ>?sMy]+6Ixe _eS$v~]j~Wo@\h γgzX[!vr1"Af(Q+ȓYh`NCbBYӤN)NEL|-;eY|+;eSP81pΩahD$" fv;1gGĭiMo+q% _5Vvx" LP{h%C287 whϊ:ִJvhSPӜZ(-H b k%zr 1]WX۾#AA 0q+VZJLU)>U`UE9uQh;I0G *R ҄"l hp{ߌGbf$E6x$6ĘJHJP%$ID%흪 At S<]r܃զYq-/rFaTia~("L3{r~g.ONc<273òxBL|m43is{GǞ8uFB'^rM{.{v#q4V~R}g`em-_-o:RWK1\]mNՓJ\a?^YRr'RN`YĉϽ~i)~-ʻ}DpY{֔k()i{vT̀?tȠ/>q4 RԺd#9"DJkɰ ѐ7EIn,9Ll<\gYVͲȳ<3k-k LGIN)Tf&&b&t@Y~>$ݪ(D?GLs r - *![lD`WJ`TpU Q0KVxCF_)^)& %ΦlyKr1B]-8]k_@!l'[ڗ8 K/Oy{/_ިק!Kg®Pݱ 5w 耾.~̄#CLYSm *lLw|[cEp)"uGl XJd z^Yy&9n0QbX&6ZXcڳֆ@ߋp5z%()0̆ p!P<=j9g%kȅ/ȍu`o'xpD t@c!L@^%% xa6Q8@7A{,%h{ H0D"B<|hR  8~ /P ljbTE(dWD~2>zRL.|w/gAҎ#B[et ?[yE2052fLXr;Z]R]V)ҋxՃ?{/֗^q%[jo<~,w3=&ձ׵W@*!t2G>v!/*@@kT%H>?r܄1vssCorYlrٴoW5@*66kj Gĝ~*>:MOu]E]3 14@FzOr~py0czKk>* [QĘaћo~BE+o{{;L9Z8&׷ &D")G_3~s,V cm2%,BǶ4ϢIc L&XD0c`Un˶̭ͳ4Yn1BaGrf$R3/`b<c!Gsd"/f=RCI\bttbb@&y?o\g]b!9zL҃V:"B!r")`҂ @j'8y;bK ԃ VW*UCG[PQ!@4䦊LS##VxP$\Di5B ڹ'PQz)pbBM6D\֢Xf 0uۅ-RgO?F+B"J M~yxM7cW<ϳ f22&rk3y`Mm0\Bߖ{ 1;OtZ"bi-ibc"aL8>E]mBHfTwzY9؜Bz@<߼hϚ9_jU‰ ~FT8-Y#4B&dC QsUh&s^TO=eNHC*"IQF0̯s,] BsBAK5E(&I4v`C:aROa8_QM@|~裱b'g3.ہ Dʑ϶^f`c)A6πs2f괆'Z%lSg_D>no]DUD.kסH7+D vmB{BoMPE90Rrd8l΢MZQvXKpe-!lp`n`MV2] 3[e֒acmeMfYl rS]6AF R?Ѵ->[ j:f C~rֆBR?GokNPGUEѳ@#KC=/㩪 Nxa"aURD=t̩!pmC! /onp>\A5B޳R/ޑxR@dl@,(dJ,"YA4)aZ U RJ gA1@ÔDD j>H5q;In@&RNP4D1XKEl(UUGE @tP0%uea1 #3nXP(XwOƘQb2dJ0 {?ߪůy.w;ڭ܊P>%;zk7qJD5jsk몳+2Qz\g?# ы3^[L芈az;ojC҇"#=w ТlQ_<uϲ1*_g^Q{>Oy>y'o=޺| 5G?Ip'x؀ Wv& b ڦ\4Z1Qp@7u%Z|`C@Mπc!2; )1DO6E[K ajotfkQZr 3|g^D?Ϻa50,J^AK7(X{8Eze/޼"kj W ^_bFNJ}og0|yRMnڱ2 emGޫ^]Q*j_Z;yKD<-'ի[o~[{W5lol69KǓ=%lW[ [y'wvG~Pnjr{0VuK~M$W(X` R)0ZECH%zZWuJäi@.mݎ>Id[1Bgm4`!F` (rk )&@ PM$s66ܬ1f6ftGnbP6҅@D̦.ELzIǘ945EmiQ!̑| C ͳtxRF%<H7%)9|u/>'HAUGD]zl)!UJ9VGZKa2U9nۀ`>,ƁIЖ J!͒vCCmlv\ |ϠJLI*˼Cȹk_S #_lf' _5xJkc>(vm@UՅ[h r: $ @+W"mވD|ß#rwi7$@nɕoCH` hodCC@ 5m@Zz)N895D"h D@C,ktm_B4>1D1Be(reyxYYZ5YvBd#6DLT:Hp'qi]X1P᧦.sVݜ4Ar0-a< nThz"<c$ Ԙe^/ٵ׺9?y0{2BjPJ!F|mH#?v p:9N.\82}#|kO|XUTS{=^ǎ՛pVJRQѨJDy߻?9[26id}^mf{ / X90z @QNRC QbC6V6oj\r EbT}H'yf5ޅ%!y-O|'ƘYc"/ȋ,ec\F5ߐ"qF[bNDc4dlB4,uO_Jut^z г_Tt,Nvv-.c걁 v޾Ӂ3[௙egƤY`M+N-Ma eIȐ)^TP%fK[vAV9Y]=<(Oް~;|cJ׼,V 0k&utuv"-a8Kx-<ϟKcʆfLEDF]C2_蹸W܄v q50)`1u5E=<( bg=vÊW9q@"Wa9bjůn(ĸ7P-JHidI3!RJhˎ߷>`vSB`@]{s]9(긞F4J(tP=h?B;H ?g*ڗ*tZA*^ iXIU2$o\Aj@5N"dFS#V'!E0`UnduܻYaHW?*ŠPfU&ѽ1Ĩ*"lL>!:SDhZ,,1DDĊ@[K79@U=yU"xZ4N=qWL)%:_3u0dKB~@/1(PfXʧzg,KPq.˯:NPVb)4RzBՌ{Y/T0ix ;5R<ǧ}G3ݧ|.} `V[W9g}n rWdU 78//s晝` 0ԾsL݅ԋ^Ӥф'#;h팊j2$3qoeydTFG%p[Qx D&{1DUD5=PfQj=$6pQf1ڵdڸy"21{֛,==UѠ_?)/r֖9z&<`VˢgL&(g.r_8%e%gYeYygrX^ ѱCB[jPbYtA,Sζ/)3Vġ;hWJ; !E:gg㙟hͣYrS.a7s g2J$A *jTr3wF4bD{wuq~wuY@;t)͓w} >ڙCPe,{}tS2%&Pr8DF bpE+gQ F[LwfxmnZ߳3eU՘E: =7\*=wWxWB0RdDtUsSw+cL* 2ؽ"c>s{_*\2V/M4|C0 п(ş:}(dQPˇ8T/.Gז;;'BJ95< bB,ޫ&^+ ͲE{̹nv˗*T|眺{eu]WYYV022Y1x_YาO3p+zDTEQcMX 4Ens^ch{c^b)\hq9g<+~\#d 4<?U I_C}W6M th'|IWdٵnΥFW:#q(" 6 PD~=p5R Źiaa0'? 1ͫHhӘkH@-7 ceA1p23k߉ad|-{3*u~ 37 d "xl*ptoE1z*?09vU{jtv ҭc5fX%pL!b1p$1+9qwq_݅oO5.4X}+%M?[0̚&Wk+^Ydrʕ^?3ypH%ch208#ww֚^(ʓ'Olmo=vt:nn j?;?{{6wFkk7:|t2.{Wcp,@tFeeT6a,54`N!봅p"ڒ:4#pF01㛸"jX;]:-w3@3* ,lzX^r`~R;_gn&uI`|@$OeҥZ$ ;"*"w:.;QqRI[2)Tsds+߹9% 7DcW2TQe׷|#O>پlQ@!%W QT#;yT왌xh)zВx/ @|{>5jiq!*e,ݞ 92l30}' \;B.pT .WD`&bܹ8foPpSvSLpM7oOS'r~&""޻;IrF5״'-!ߜy MgV; q~ ak̤lUt0\/]PngS2=uͽ<;zd>n8; diF2kf+* u;뮻\~Ǎ'oe*jRt:քDZPh`j6ENCύpoث͈Ti7,1z a4 IJaWnBΗ_XOw}eY5(3/~aκ#f>̘TtK.;?Lei;PUDD j}zN;02skѷhС`gbRf!߷qbG7̰ &-W:TlDGYLkpJ~MiZ^eSB@wv,0i}HUeJ͝[Haڨcdm06qFU%F2r|NBH4,zu$ 1Xǀ))zNcAfW kwcQ G﹏> 7FW%Z?2L1 cN'./!:!"~jl)$z(ɥb5!t[9eIg559+M0~u t߸jܢg2l7Wq=)E=6"P?<#"߬ѺB-AABжYo|Wʖevz=> S׾_=n6"G׏:|iv3C ||L<| .a8A Ly1|֒}7 @ <^Nq[:3Vј*ia~2Р$و4s[ 9WUprva./5^rKİofqP?€%emM4(f׀JSOFkзy@:9YQEQ=6_8![92}_3mQMG/^܄#STp/3[H Z/60Q8ԘNtZA8MxjP[IUy`F =b2zjc!,{ԩ#9i5cPn t(c#nhKiGDUD[HY:̜<@֚,0XfLd1GquyZjć/eô + 8FEگsy v@C!ND0S,(ɈqhpkMldƙ'Py\ΎiB*L}ϘBU2wաW;}*MlȠ'"M:x4>(-qJtLJxÙǦ1@Bb2,`pla2Se zEs.3 AfʲLch*`,mnҙW d2C@CvsoKA"PD.5xbi,TMی]ms -=?̚lU}M#g9y򴁿+´+/^oѸxN}"+ 啕[ļWwO_οI[. T18w(1 / L j_Bs(d/H BD,t1 ::'A1UC6P{uBD6XSkڄik-BD-l! !CR᫪D2Hy*nC%:'EBcB9&@;^8)+"jd!%(#d Dq D78)؃ŋ8'j9lw\̻-Y.LI= `ށWOj,,DË́w+"TuV+#:~;n'DUϜ;yuX3G٧+C+~ .lfIH}6835 hiɥ\OfjN u@A*!'"@Q(;& $B(P`Mbf#YXN J;-5/&u,_l8rhR{䫓NVOp8(sf{w~2N+%JcmT96"Fcc ,Lܢzn<Ʊ"a$H[0GfkxvSx;0=֘9 Cl $VCv.ύAu^m±0n%;Uw6?2 31ϙ$.mh<1Sjh@&TlNYdd˦t_J_sbz?Oֻ?>˦ O2jBQ 0*z՝n.;!L^EHEᨚU@M$p_|! `Ļ^nc<ٙVx;.=\?_|D5SuqwfBj]w}EHl,ٚʫ0fZGHNl 2`T0yVu5uy{m&S L0$jԨ*$ zsO{"VV~dwݾ6dG g<)ޅGHw,q[]DL929U$w5sЭ$,1Jd/΁?9muNtb` 9釖kU.뒅L잮 м~@yg]wxDSW=Pj j>l9܁ȟ&ytI&@0lx[QW{z}o3 oQfR (T+Nnv'W'"$~ J gᓿQ O/TtZVSH% O\3j["S"r'Q֖a@@ 4wX>XL 3s(FߋܾQU/On5>Q0qp!* 2Mk%&h MII֮X,1+R"x DX7IarcUfDB7‰DLƘ ^ouuumjec,LIYw6d4"lX(:xÓZ'WYC}uu4R=3,\BNfq.6!za6O3;_A<{4立y׀)st`Z%Y[rHK钃@z r NyCg*v#"x}_~Éc@D0ԯ\[#Uت5i4CɬE쨀V^q3_z몁t3ڬnr}ܰ^v.feV I $).#I'E:N EE9U`'<eQ iޅs!VZ.)b/"*׫լv⫂24 0ޕE {eUU X1FR,A~Z?LYD(`/`0-G.q5LRF HkfjOJ;gB9n,'j؊-AI$Yѳ`0cK\Þ6kW,,M|+S~=@@bMz^-!"/I .dBxgww15cȾE>so`.hUU„4B(}WM쉤+ mz.HNxUHP""@&+:l SEP" qDS/rI0U"s3dyqd^]q:gέ L 6SW2{d0pye6"y6ȋA˭]ȋZk"cqhIaGR0F@l iH HQBi˒mS(%kQTu9,jhꜫpﱴ2iB1ʵ}לkϾHtϩ::"n#s^'r ȳ u!^B[MoAԚݝcҮZ;3a=V6<1ƂDIKj !ׇvofvOu&D&LØȄ+D$Ű*2;km5vAs,Cs_ q Wqmr"cL Peb^&Sde[ÆQЌP/Zb6ee9{&٬sf+sSV"/19Uf&ɷ#Uŗ$].6:,"PǗpZ'̢z7]DZwf~mWzW(Qi0hv$e/ޭ_~YFWվ_略N؁y{\}p ?҅@ށȁ\SP/NIW쾅҉t&G/Q GhU J"]g4v_OϿ{=s79s#*5v |h]z5$b8Zs(<]"t@;m,Ul&  zB"6aeKY0d+õp[nGGd8V\X? &uƨΨ 9~PcPW }kQl3k8D&Ȓ!h dz]IAD xEl[fR&>yH/M}\13^efSke؟Q[r6gc׺+t{$\SW%R{?U9@dr ̑g7con{'D!@G?O|SD;氪v0X8m0@ fW"SY 9^42+@9C ³`%7w/i}umgws`'=1+2eU+އ$\[ QX5<ȭZzs{& 8 0$¤*$? Kf旤R!xfRKMQeRS_eLXR$xH  @0Clc7ƴݒ޽}ӓZZr|l齧{Բ\ Ȥe%l3-ӖJZV6ȴ9T=ɤRt:8h!jڀz[`6!B._8"F?OZ)ZM >"b-K. ;֬K0YD-+iCEUYz]U!FT6?HFl (2NpTѹ0-mRC6M0 Ô2-$h C@m   VD&%D;7g)V$D*8E %3(|a* oj@o{Y9%RglBR9l @t{w2R]{Bm%mN[qDzׯB!@/SZ7 ߔ lND!TCZ( *1oAy/<sw3=-HE$R(# / f3 _tf]_An'UȌnT.ZqT K 򊏮F&Waf&!w;2z=N ̐%P]FPI7]PTFx^?`#k}"D OyS  R:ͥu@X:SK?ůR|:@]0Up%E6l25g֬l[V²eYB$H6JLq0щ7jk ÇC~+2t?s2_5*Zh7_- LŢ_{BA 3*9+(%]5`e{{ Q1 6Mn!03LɺBt{[ >>ߔ곤R+3HB)@ LNu:+p D P K)(!cRJ hk]s1 !Z6 bD@[kD +D$mDZ(m6j쮶tO{gG&>#eٶe)"ϥD:\Ĝ)A*XVyMf^Of 1 MgIUM (T)M\pAQE~[s{0VQŜ ^7v'|\^' Z8"%3Ft-/s0yEТES[3*a:д5ugMl,k,BaZ lIUȲc"$BS/D$N&=6: BܸqpEfK:P EvdIN*VrRt{2ՕN5Q@xjҺN@p#7".W]aL'S`\ %?H_,uưZFCѯi}6-#*/]҃U^V`(Bs*Vv[*Sh\2RP ez60 \&z:/S"A z[y)AO *B"(-4ZJt0 ˿s* @) ] P  RH±ABD\D@RJW(6xP IBXfgT3Le:3m'm;)8 Ƕ TJjP <zmx~r7a_U]%~)L5L7R !"/w-=40I.2Nkɴߕ0Mc/2JbW񿍢S.u02Zdm0 s0z,xP($ $EG[q ̊. Ddy_:H@$(DI ,!Y=k֬Y]=]]T:!hYB P BI/@wjSHfKMHXY"e)NsW( 8Z=nXE/iYUj"u)?~brWVݵ4WP`^DE|s[aaJr?{~B"BXD6I "E%XQ`J/K_q9\tKO?:*0 4|hͧ,a $T -K)UnV 0o ^xhE#mblWoeğ)pWzTZNW w,a Hx)EdۖA]3_{ә3_@ W-Mgrڮ\It ]cDVLd5 0 sрV/ D]> DYfH]k;C+uز&ZUR3P̱&*JF}*f250 ÜSaت:D@*" "TWRfm=iDZm۶-ry"caVPE#VEWJu wxqaY"XVQ L\[Z8wV*"1m? F!:ud(0 0h֖/ EWrڒ TgGVI5:2+D2?ZO*M5+|J)"RJISz>\">'HB~H~1` 0ZE2 0 S7h'LMm-\d6Z@0HIDAT!!VVK,˶2V*N?>%BDw@PViGJ) ]gusxAoQ47 R%d0 0L@!+Z73iSG %$B  3,?ӆ)%pl&VϠQ,)%Džx$Paq2r'|uDJk)P[kzi`Owg2?4 P!r_T)EDR.jK~*BU60 0 H]"0<R QI9~qXK@dwgWwG4 DG+)(}Q͕RMaaDˣ'2L>O6i-A@?f%@ZaqhR]K@\= XEW~D2Dɔ{ڕR7K!0 0Lh0Egiϓ Yf $`U U !y{2D"N֖-J8L:D7ܮ2HN>ɿr>DbL|>߸ѲfF0 0'Ͳ{Yަw"NDN 0 T p cӓ;&!pr$9Acv]nFv2 WBe)4|Wȴ%BPD&״F)fy\]m;͎蕛aiEڒ\.N)rll,Lj[ 1j!ՖlnmmI<h1!9_l&s1aIfWw1b 0LL$r\6mJȲl6ڒ5dZ$T[-lz\.pj k."!DG6#]*!i!I%; %n!J;Jai-[H #J[*'M*RRZ-.ڮRp^l(Y mAoDz<|ӳ$Ķm `5;a e; ,MnUN56lX|C=T)i6nW x?s03[n[lyG|f l˝;wN{D~Y իnй^[bŧ\t^/{^)"G~gmy+O?ԇȧ <4pϏ-q埭=x|Xq޽;>7'uŚUϾFo# 3{&@s|< *bg/Ywڏ]ͤV,]^20::T|uM6ywy׾UV֯_j 5MnfV˿w/:vXC;+-[p guwFԅۗg>Ƕܶ /xeWRʁc#ϾYg.I&@"xy"tw̟;?sU[{y׮9OnpG?gxϊ }{ems?:~ lyeLuվ;cñ/_p9,ԃ?䋩g{3Θy+}."(ZE;iZ&nͧ~Ço/}Ig@M9_}ʕk֬]G.>qlXywȁGsK޻l:m) 8|3 n;ly=LjwrǥT{ѡrڒxd`RIT 3fOtrx]jY2xݻn`* 4?´|LnO<Ć |u5%id27^_wu]wq\#e ҩect[ў.+8xh`<>p~e pl+Ֆ8zlh<=#zfu`>pG;rt(J+9f͵TyϝsJiZ_'?I-2aĒ˝wE ړo???r|9hʕnݺ?וDHx?P۶ຈhY3mO?ϧS9)e" @۶ Jlqg۳eؖ= ^z_?{וpyE~$1:s|cܨ_@0} vp}w<==unwg<2S~-8BQLRQGnk׾M Y9|ߨȶm!b>껮Qq-*dp\_ i۶m[|tlVqq Жgo./׿va|` ,e|`VG:|l=tMrKk*?+䙶Qg>E.No޼y˖-/䒻kSe1_;wݡCz .gɤ34-9>Ruwemy>4|Ꮮ~sgfLz7s=?nOU' ~g?ٻ{:|,[M8o9,~O']׿yO+#=o_]zddW_w͇9{y+C[~K}T*7h*?4Pzv6=kϻ_/NY֞cϾm߱>q+V\z#Ofk?za37 yd`wzɗ~U+Λ3kvOgy9x}͵̯6hѢ*5|9\}5XU022o߾ /5\sc=L$|V44fIMTHooo$|Rʋ/ ->s[Yߺu8(G?xXoҥug.ՅǞzyl,w3|W\Q?&/?~њU@:6svO'"Ν}gv˯_t_~T* ǥTsz:Fx;'tco[_yogpՇ.\ʏa֡oÿVWWy~&"D0r|ܲDt:}ƍ? ?9?)T >r~i˲LO~:YW/N.T135\Ǿ^Ď0L+P#K/}׿nMr)u7=߄tvvVyq\Οtm?뺗\rIA57nذ!v EXqwM0 svگ|+6m2wҺ' '}}}Ġj_+[ܹsKsbaɉ N|0' _~_(H&Sۆ/`J/˰c( CO.Q;e3 0uZ/ҕ1>~w_l`[5=ꯖ 1aN"Mן?9}Pwѯ>ظxa_d0@B.e:e~; 6af59󯪴olGr&aBB7nC{~{06, 㮟7%Vt'0 3=L:[smX}S 0Gڬo>7u޳58raafzЍc \OUoddKKLQAA(80 Dh/ߚ'Mi``DwP(T339\;1 0FJ)lvD1O)뺑+cnR$Ç#h!FGy#rq 0h8RR*e@K<22BU022:1ۑ>#GT3TU|ȑٳgIS4/daLe51 )% U=R1B2ófj#XS/r5U'Wҫ Lr,P pVaXsr][*BPW(Z!cǎy(1)OG.wIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/mode.png000077500000000000000000004131261473342170300257510ustar00rootroot00000000000000PNG  IHDRE IDATx eiYy891Gd\YYCV@aPb!"*(( W6}hepA@DA)+++爌ȘϼϞdസv^+"2✳>{Vv,^Zz }nU)p\\IfB+ P2@SsLD74P3 $'K,ixsF hTplDKu)r M\[ F>f3gw fkuq<9tpypY 2糳l'A+:Q&cJBVjrƹǗӈ}7`va3-Xh_" cB?r ַ`jb y ί gh:IC7 ykJ嘪S*ш;q'i&ئ%^+OEtCe5E2XߤTP>f|Ͳk*6,gq"ysgG>B)c:$ i~B&T!J ]H.Y!ZA|B-PCQASqmI nL]6|ŋ,F#8 à( tt"_B_ n&c}-E&[ƄY@V7>K [gL>j"8:~SoN%n8`,-m+f6՜^[7]y4&I*:*(`mma/ U6L04ʆhBթϛ\{SN<bqp5ov=rƞ{8y8<z;۬on)ZeU Ҵ M2TՒ4308VRm5\*Q d`J˲Xn:Ufx+U>su7D[8CDQ S, RlÕ=y%Y&_Sa㼭^ <$4 R ۶EKB4t4GwMV.fAsS'J67 V0 G=LECQPU 3sdeB/BlqG7Xc;6a'1q,2 4OK6 {qfIìj&jjlh $SE,c5Sfy)JkX{4aQjͶg36(`؎ hYqڗ?m:k,]Xe% ðP&$ב#W)3rxK_BӚcFÈަU JM<~$S T~oҹ%F,;ꪨF\Aoy6oPHvQst:Vb8z0{jQvM*eBٜ R,g1"vi!]rq+%zyJGdyJ^EU2at+OPvKQ=p4NaFy yQ(Tp1 R $/4t `TjMMyh뺲]YYhcQ#YZ:FLuOCGaDR=y7(+fW7F1iRE#Y%J@UTr%G42dtc7R',g}kҹ! 4I iUˌ]<.3eT̹s;i3-i>$3S& `eiIփ:]B;DsE)2,G^tmd":yo-a~K]k&r\9i ( ncێ,;WVVysG޲)U5 #Cuj2Ah՘bt-Phh}V8< O"VϬ% zAyR : jc$9f"*(˙$"T|Sf$a0dVTUǥ$r1uR%Ctäm#KQrdq4#ɒ]Lqw]9K`~]b8$at}5SxQ QQu$IǤf(,EY$* yl%'t1^ހT+`}oT{>#?A35& OQ(n҈jacK2h9 hPmNqCb =]8w1>j*U$͈ +E C !HRbEuGo- ߃ixS8㸥&U aJnYlynԴQbt]bJhib&5@XyEAeLM͐$B&54%#Vl6Ab, K| ڞIɰP2R /pgTKeY._X"3tU|JIB'nNfgnK {Y;I> '>Jl1-R Hu7&+iF yτr[AeU@\Y 139[S?9+Gt[&`.͞6ZTf0.Iߋؿm$HK%ew=ǭ)'+&硤̔.`8&CdD(YԛcbeX*q7\O~p57Qu0fc}$afWHuZmV4l7OeF>؂ƌ{$u,o!Q(["6()U%m2n9=5&i&}?LQݦd5De9 ɀƁl[9p$TUaDhj[㝝]#gl<ΙGV)M,s =k0aҪP)\\ʆKxad|]We{oP%d18۴{[LL7p6jxJ|+ bTCG1R>K.f1 FTJeO#)uuCT`m(Cש7JDaj0d&Zv+(sKRf7z <Ʊhꀃ|C3H /Ҫ8/ pYG7d404vߧg\s-z"GeңdF3n.=O iSPT4CRB:33orѽLȒ"}]Fؖ]$8 GfZe\j )LKrH ۲,`q(2c/]J2PkZHZX.z rq`&8uBeks]2ʰMLٻ0CF*&r-1f1sEDot)y/lj]∣AgXIN)7pq]yw]a+C**/$U_931=Q64ot@%;nz  QIspTMi q*˗6iN<#lo |FǪ39)Xi3XA4vCNn15U'Ԥ ]c:լD##k'ea6Y_ r C1Qm ewVy$zA/bgsMZ*Q/bކJ]sd8CFAj+:NŲu)@V4&Ԫe,"F}AO"沅Sm0H#Bg83q\f/RuۨB^EQ\gsqyoM.os՞fʴI鮍tqʤK8hz] MK`x%D )yx\AEiVlMfyfHd3Iwd IhÈJۦU(0T\s" 3LMqSػ/ XI1IC| CItMJQ>p0q 0:4R`",D_6.-JQT,"u~LM[~D rLAU- GBlHf-$-=D흢BVLv |8(R lLaF<CUS`ǦS* #d4ZӉCWIp dQ @Tq̂*x! Z e|/ K}XI$ UPp, d+ :$,.ȣN-Wi54%~$!W72c)u ITn*O^Y]e S.;L/L=eI~yZQQ6F}|qU4g?^#?@&/O>DP8Ϡhi4dO0!3 9Yp6Wʆ/aQdiJt9<|ĒyDK*4(tqeF5cI Fd}E .D0 gԄQD NIlnhjUfYfF %3HUpfE E(MNw@H ]IQd.pƑqkJ>sŁ 4Lbfѡ>[%ݠDFU]I$#n$6z:Uƕ&!iR,H]fl=9XTk1` 0EezzZ !E ~H:#aT&a25Qeq%~}8^bSJ?nˬ-MTjF*6/24+~Fu qLTJDt: ZUՈB B%&,I^0NCPTt(RFc6IdG-ml\^oa&/Ș[P$[(Hexo2e U6yfSr,Fc SlI5D/#(LJ(JZa3t[jED%əǰ,*ͲX xnUJD.L>aNٕ+p PtSlK`,"RљQ ÀL (XCB<('?'8,%Co͝mRMdOUY +ӱeQ0UPLl,6р~oDۥR/1;;阤Inض%2„<34ZM;iuSN(Di&+nvVd3c۫0eF(JBv,h^lOԂq#Z#;z>wBsݬMi,aL%R+J $ȲRHFLÖآ#z)]}U.S3qxcX%^%:}4%ГGQ 06d{2U VU$R<;Պ.Kb _|~>F0IQV[3|zFP-%>&Q|ҜYDlh}jG &M骖I}#I&;hػoK/+8AFuH\,T:9^KIwf43XjUJDs0-eEB m/pJ& ҨeCGG RWa &T!eпpɑPm)ʲLHL᪫c )')9eKυ~@$gv}U:!oPٚĒEPU4Btpc UQư[tiZ z+90?=-ɚIXYsi[&[4]41N,rLX[M$tvpopSRQjkC(Ԓ=wϵy0 eɵi /IRi֧>qSdl}L]AQMo\&/Wnzi;ّ)TE;y=ɫ1|O?;)Ԋxz+MFc>p/qD=ίl?wOI(ձeZF1& وBJbbb$P1<9V/\BSM Tfj޽>"yKo05dJE6a)j& - v,60ZdP\#W,\!>dNCw='a 4N)l]2cڨj!Ui:bQc|3;=>y1^?ZN\}YTŦ2Utn}*u:TMJB)i2/(bp++&h֟ws E|~?aC wa sҖ4yY#'R*\TdcW Ǵ0]؇nC-_.F;rp eF2Q641.!y }ڗiw4fjʮX15P(aRe>3W79I2Jk^+{pE"Z*[_7^JoG~D}NjaXK'Kgq1.8YW "Þ׻DQ8(Wk Sܺc9vBj UZ 1@kx[Vbrfg WɄQmse:苬@cͥ[ [¡ϲ8Sd~veyN>|?{WG5 Y ]&&eF&ꤙ%6R\X^bp͡= }QaWeI:sGhG97=.dmkgebj{#3={)Co裕׿z6'X&9̕ sKmF|<}!?analhDk X 4J)FEΜ>⑃4P]6;6'$As_;l5%ש3ڌ!$[=xu&ۼ)ϓ3OSDtɓB̕5AZ!75‘̪# vk+6L(@\u1mI9zun ̪ErF2Rc'ln \%^4}Sş)zjw(xJX8pt+݂Zhy,m '. a3Yb`A_֛8#AXX*N& B4ge(SopQ9 KDT$1A:%ô QB$L*mʱUUa[l tU+eƙ+G<YI> <ǘ$e|'=#?LrYxL%1nih.9AOѤ Յc\1Qd}"k7Wpi_yG[vR@,,9|uX#zE+&Euǎq)&-EG>F܎00g=l{8xj UA8dr0Œ5MmX1UK|?n:qa9 s-3 3&ϋ= |Y=2`cvOY~a"G)ֹb0nR!Uv6 ]z6;!nQbԏ^<5uUId߷WNK1E8K -`l9Z|W p4Yr8qcm"F~bm 2jɅi.@ p䄈B*yhSg6(g&NDyb K>3A$q-C0?9e#o.}Þ2N7$o|/~/~)FEt6e) (v]cC] TJSB-i9}qp,Gv3=xR-B$y2#/cyu: |Ou€)+asyx=gN._P=ΚJW.`y ;0WH,vYQg0U6#J35:m̅Iʵ*Gnyx{f,ʥ*`KfJc{gEwHC& Y>j0`(1WQx/vvvt▜(]kҖM@g4InB`}{ :{L8^%Xw)OUP#L [xSfŠ:%HQg|TA|U5Nќtr.rɿ$Fǹ5H1'긦u`nn )u _+ }~Ի~Gg |/ƽƋscM/|Mek쮯*La}^1qloYM%櫢]dS92k؎Ckn/ئJĢM@2r \u,O/aq^ZfW8KUXtMb?1LM B1wXQbna$NHbٽ_w [XJF{y;S/#(D(qũqn`2TLKlo{7IB)4e5ȓ"f#nwK*8ܦ՜tWIG 58%vqJaSM>9AW3H>)9N! 3K{"`bjVNۿhَsR~gY#j3.>Ks ]7 ׵uBB=Ŵ٩)%?CvɆ TJDͱs:K>c&*Lbs}M&ARiqw.^^L'<^ /nƏ}౧7~{/XŐ~5t;yT <'~Wȉzra,n7c`ml)cy3_!6-p ^C)1\7 )%G\jҬ't.-F02UV[Q٣.F$tې? ~X| c2Qa1Ṛި |tKgo 5Z{8 gP,Ya?Q0^!stSM/'|3_R19Ȥl0 ;q<={1|˸sz1|lt}i,7~̈!y?|ݻq_W%;{-xM.Xbs^| 腭Iab ^Dx8R*.l hVAdDAhikSTŜ_`m}Sh֫4S Zɥ9}jIgSuK,J& Ryl jB$,-kXlG8C (N w[j̘kƒ$^c̜q8$2 s ES9TV9%Rrh3LrbVfc Z.:MRTi1Ѥ(!KLHr{FMtA !{/.tz:Qo*ȃNdkH)t 6ٚ%Ǔ^y,iԩg:r2Q"3 "\PȫSZsv΋myL"9 kw_BE$JL u/EP Ovb.@gZH:~(FNgC?E8ONb`z]ǥIosVF^cuu0d^Dw?躔qwK7ag6њI-S 7Cf+Ơ0E+CN8ġdHaE$f8v1k y(/=/KyU'rʳZ@]k-v n Z&18>SEA-$Y+qM.zj}q)Tǯ%Nq\agrf4[G$McÏɃtE2xWJ۲Gc,uVЏs}v )kcèHs [[(Z g 276ںEQ,h CHeI]OXZwDN?| >SrglgdLa'$ SKID`(j9DUrSYJ1[-6:ޒ*zM."i鎑'v*ιO&Ef'h.XF*('nЬz>,E@Pb:'N|2/U,x4F}OQl\M9\%?HH-[JEb@{>rjVreK^Xtą307UDQ'sڝ[b3l3Ƞ!;"# C5!w;d}&# GA.NWvV$jCBvʆHyDtVLOM`L.Lae;PdBUe¾1[ց릅Rʦ?Z0ل~.kw4|:E~,@265#7z%n"O, ޅ.ull!Is_Q#@va儢H)Gu]A:);:zcMr4H#8%9u:Np-#N2x)0rh#XeIB]"*(r>"x#AJ1Ѩ" ,Svw~5"wuv$n)e4XmBVOP!!… ˘ױ07^Ak ? ٢0m>rA+OM!<d~o,A`ЁnFdr3&:H#*`J)CSCB\<0:cQF8qbdj[IrBFDJY2$( dRMTުw]Џ"c,tS&k(u,pwH4^'y;Eoi ϶T5ũcW%:8}H!#$"AD)s='B=@`YDtS17gqVK E$fV%^,0XBR>縛 2Nŭ`Ԕ]f(NQp݌vK Vd 腐M7bcuF(9x-ӆOyj:ϭaRcSiN#xI\1 Ȇ8 td)&Hy((Zvt(>''(bJYJ SsDVS\ {z ^B>Y`huM#4Qa+/?SH23Z{Ӆ$KNIU߽E#,ÅШW[a^RE#Q㈑4-cĖT&C3G^A5ލG}!O2dm^mbjjF1Fc:s^qjj4E^}\t7pI)!Ls |\i? v@x!ә-8!Swm0)BW5`>ssmb2<ʂ ?I6$,'ЅQ;*!1_2sPdhdF_ʹ3wb.U|4^{t.V_cz>wsE IlPҥ.w3yii $ q8Dț/¤0IL." w^~m\!`r:$Ʒ@kH؁i;q10 θ e 8e}/EmzbY2v:wpǥ3GECMx F-DO˰Vg AR)A$ h%̂ԝL2e2׈aAE!R! 3}i=<~{=X00 9>=dvXaTFN^w1'ϟz{ "Aļrh:\ OЈŭ!H*5~)58Y 9p[BVӀ:2@V!bЉ bj:Y1N؋:l(+`,מ8.3Pu6 c212A+MR'Igev+ )^jPiUfˇVQnqtAM?rYA1dsxaIM]!#tv(fLJD˓<j.c8V96USe b7R̝vQmEΒJ eFՇSs$%Buфa+(C'Eb a*v>6YKx辇hE8=@1&ٟi U:D6=})I0YwF1gCKEQ-j77֑DC"RIU˰6hsm3IDM7JM4n´-~%dTU L/]&"s#2Yȗrۧ(JCCuvtGTU ɄL$1Wtv8VfE]!s@!1 @™($N9!NR!Pqt@nz2 -Ô[ ۇmuyBdee O~b 3SN(:p""x |>{G?b T0( aU$^?`&gY&C˟]RN66q[`J E.9"Ǐ~/~8sliiLDQ 8#d{Wn7t)/m1M?ߴT$/J3- s򗾎森5nj>wO?";1]l02i$q d{Wo oi2j\."2dLc5STgp(.ό)Tpg4BYFvr) =Y wB)?d˱rg$?J"Z-\Nm6|T*~駳#;pSH >i~8S78rAv ׃jv>(s o}1t{]y||.v!SN(qfi]]!{DBjd@m+5 Z`"*pU3yLMl{.ΟYaמZ +m`&[M#Hq`Ǧj32SdkϞè.V v/RBU.`ԙ{&C6TJ峫p ΃&( E4na<"E瑚n:l ƪ 9%FY<+^67pՇ!,G G-Nr#x3~x_3:^Mg?׾i# R_p27 vQ+BfGC+/]ⷭ}~7UTN4V!˧#o(n\5Lӿ2e]XnQ,aa3K05{PW븵|ۉ Z[C8CsZyw˕Je$disZu9@iDdez?r} aw^T W= Q l K)Ә1!Z*%/[99xVL-,uu0Taj6^0xRPep>zj V:-W u  ч r1#XqK#kKNTp1,McUїfqB''fs3 7" l/Gk.eU}*iq (Agjװ?dtq ӓ584,J$,wWDQ8t-m!3,=~ 2|s0+C?[+ ̻9I6 ]8\.4ǞÇqxy [[ ?W⏿r/E)n)rw}aj;s-}yɿ]?⓿QmCŧ[?cw6n!:4EL5XF1L#`8 :E0熴6Y KK1; C*52t h<-bؠD.Α1Q(X6@CѢ" L&뫌 )c: ) g2DEbRYDReif` XmO .`DTEu!/D4s"]A0U%: ÊW@{ibRsKY֒#+ Ӓ9:TN4#$lm`ͅ\iDWMaY5yHE7#ΎNH Xn{XR {pS[J;۴YM&TG1RK|k *)} ㏜$KK%6ɕ3DJS7^E1kۿpy ~ Diw4O Opm1~az7~Nuxû~YuLNyXWދ;}8]s]<ø_^|rxs &x!~q & ;x 'o -If-hThh Л:.]_Cdq m]tz 'C3]7b.].,mG$x+_ahL/STiyiw'I($u.N&,P]pFR }^ .hp 9 o<}031 gԃfyJ7MSQmF'>!Uw:؇I(ɸ\p;-Ӫ+&Kwy%-tFW"c|oc>> ?p ?}N?;PKC1d'7V+0>vȇ|oi~B[7v{qYkqCc|z{KOȫJY "ˆbl)0䲮jew TiGHd]Z&rAC{J~$氱a B.\Br7JѦ s8T%uE&SZsCiYG#]j<*Ⱥj2 IDAThL%ԗUS)aTk45 6ڛ(,NG>g(Sd* 1HbaFQv{ A Br\ְtzxqT,ؒfjG(V3QL%yZ.PJN7"I'jrm,$S'Eo,VN`ZB{ _\:{wB?u{=$di̙.ܒlh2^$~}ٝiӥa!qSBdRnRDp5p(Vz+} ߝ3X\~'pN(ą'PY00ojЏw#x7gf|/ZǢw7PExY?[دl"ͿϞ jnWC`"Y{Ə> 'y !j 2@T l-eڤTd\o$'LrX:ow 7I4f0'2ESCԑ[B8Bq_aZB@er&f0`۹ێfA#Y)B*(vk\Z%gϯq#FU$ f{Jk*F  Ę $:ػ{Za3B3AA%jx'w5.bϿ=ӈ6D-`qi3XD1np$[hB4.@cV= Νara7vά} !30)@JYh8O:J `L6)@`K&{7ërTZlGג^B 6(8 T;C>~ Ci3z}ǯ<7:}v gn{7}kn}WO_xxosW> >H z>xX}oAP<^vo,mB֏WP!+(MONrz*O¥bؠ݇ZV(YDoxzc6dn(Y/ i:&Hc.  ^U͸ۢugtciyW()cpa?TXS{+.._' \w3 X;Ѯ+K$o/wsn%q'$'g4 P*ߜݝo nmlpQjD3VpG?k|o>uu`w6z}=z}3nco5ۏ*p|_-&^(݌WcoǑe,\_ߌWE_[ ?ϭw/w^n#x?\y|뿅 OQ"PD<,OCQ!#ǻ>rtgڛC רͰӦ0a1rQ;m G`fŽ8;PzcIhH40l$.4]©* %x0e=HY%E`i u=w!UeWqȃ0cb3摓:t]oFQƾYdVPUȩs- BJ4[mԘ;xjkL}ZbAEٽI ٚ&ȝ^\)cmZyZKu\]0*L95cY][_ƘVQll ܇zc a b\@<=h ELa2Bb| C%Yו::\ʌaH ͒@!_dFK+a3-bI?:Kދ7pÿ7z1/ޒxΛ{)^÷8| xڷc(zcywhgÇ~㧏tCԏ9d|P<^UoqOƓA VV5w.\b)">KbG(p@As= Ѩ/cC?z_0"J%3dk!hCHj:HZ2ٖYJ!+Jȳ/ -Gp>GlHI_pGc_?xW<"K4ndσH{%8L?<Eur(9lۆB)ԼBB!H Yy&<ރ$Q$sK=4NA?Q-WvyܵOBܵGf bӳWC$7VXSU^j:#CtA8L94zM,>yy7ϧe{Ps]XGkc/#Kx3BRTiٸB(9ǝG-W;So.)9ƿ:L??8}.9q@wǎ'a*0O{'ϡmۈ!`')uȑ` q|hF#I%7q|,<^sM[8w4J" $l"]<쁨謪 ٗF|U5,/ +b<DUt;U`y*9N+(M8^]!=GæQ@݈}#KICJ1QҚ!%T@geuI\©$Mqb A8TmC'ώ6 5ޫc0D:]dFl`.p+L4gIe^^v+8נ 8tXѥ$wEv@h*;vفCDa-={BI\UΥ .lJf$-W]fB~:sq4n1M [Hw㏗u_ ?2<ߍg1nm~w_O<[~wSo[ZiT VVA 1zK>*D!.4.NhG6y-d4^*kh EQ$u2ATE Q)kr I% 2]q^ ŜJ ewܨ@TF}kg.!EfC"p N$ S a cyp!\CkXa*,2ZrUP7+8ZvN t DX9=GZjm~ .ɘY+xSVs!Uo &TA᫏.W`'&d b(.;rUR @'fT9e"vi\BYP)\GOz^5\wݵIŌ`Zl[m{oU2Ow`~%1:/}r' ?r ߃fk^zG^grN ݞo;CwozF֟7U/ OK3Wdx?@b$`nfA0D1#p^*T% G+@2B72O* rق;$Rq^SS:PGb>ዴT5QlqA93-.n-el^;"@$OP*T-FyX>1A*B _nj.L$VPid :=,~Icv EUPH[A+cK8|xsM/{7ܗ9>G?Oٟ7^N_Цopvs0e$xC#-] % )ADR軀뮽1q(#L<<h6HE}rNl ơk4fkL>/las/AvSS*}lb!"A ;f 9^/]zgI3ZX*@L}kְզ?;w. j](uQA"K8"]@V,.>HyGGvwsIl ^)6OdYlpKAfWF^<+-ab rQT~(Kh.M=s71c O{FT0Kmo*S ^׼^|߻o um0EΣQ0s{=/R< o{_<>y>I {(9ј*QQ5Rz9RLA9 B5cƶY7? ?~4Sa;5xt&[ Yn}+u t6lR_D- zw]Td[0Di]qRGcvde:^FL2܂K8t #K,%a<֖WpuSX(c}cA4pBADewuf0w"bB"읇9|CLbހ<*>v6{*g?[yZ8XpԂ`һ99"NRAD~a$;0ZwP{a*ZA # $d\nqeu#~5h9W̡ze[-G!Qyaȴ I .d9\D| G\V 67 ЈEAQ!5j0 :[b1f"%,)P$ä )s`yt^BZT4#'x7jWKǡXG^>Pl%6B R2><`p6Maa<~Kt%g>Ývݶ )N U$K0t#5dP-h j:,  A:Ο® @hx*$o|K痸Oc? $Ԭ ^ҥ5i&_D#21W1sCep#Hy$fl(<&sAιm٘M>|l`MR6*G&ֈnABKIVll!i$1B0Mm41)չq@ u~刳C,*QQ˥e*+L7!w"'El plib(i{̞BtIXyDdUy[AZ kkh:l56BҔQ@EYʢ߇TV sX*g&t3GN`vqxgU"1 a`h rΟ82ʰ~iY}wj Bgh4JчrpT1?)R%!fc+,sAj{c6ǯi[wDq8|3KH٣sR(^Z^2N=0c+ \uBW^al2F 3;E4Q,5QBHtfr0 !gP̕ P$rbf<"_?'P-(VLJ'bu6.,Ë]% QU%;^:n$}\{߅]8%Y~ қߠs澻~S,ZD ?FcĖ`Ih5<&zm#/GسkDQa ,I+Xśx!m#3X2&їِFvpQU!LYm݃v UC\ @1\Bדlۡ-(b ]4ֻ8ϰ&PAIA>Ffi\?0ad\],09:V2-#Di /1k}7 h曎i]]Csfo,0a $ eo߉)YfZ]"PHwL@Qe9npBQCR}_>ȥZnA"' ])^!gdt1F쮣T) $Gc)+|d6FҘz 0zn#d@Vт L7aD(Y:N=v VEBj={413k 8L±l;E( "q >D$ +E eܩK]:GYIt/l\Q(MI3lDEZ_,Oi~l&Э*4BQ9?q2P+LٷAGqztćPqGSsZAǮ:N|x\1]E+# hTU:.BRĂT9zc,;x8Yq8HSHru0\.z2Ef@Ղn[Z(yN [)|C);:~!:|\iFSDJ2.%#Jf%*ԅU9 㘓|obL`,榩 aHՑPcJG7_.,)JE,Hv<~<>{A.7d(FT$䑒:&6ƞ(;D`NʣbO;X!~*l!A;N2PR6 'IY( QH$rI+N_JAB jcv>#D(mxwGnawk OٞGFM[Y(dc$ J&Q [+~Oޝ䩍$7$FcL|K9L'hzH$UҎUTh L_"5 =Ts%ZK22)I&7;s IDATK~ :#4ՙKE~V`HRǵ` . *=2-RvatǻJݰ@Ȥ)X]T`zCBIEA'B|f*R)OL)\40ezuQΥ 17삉㰓LPPX."')w̖7F#l)~&9YQS\gݡbnz~C%Ce<{]n>(g$BN7&:YRaMц סB'%=^ŽӍv&ZPv3H]i%YNFLa{dw"t;Li*Tk>FZVdji8D[7}9u>!EB[(}Fg7da/q8pD䦋8xbW"S/|\tY F [)GƂ͒g(AE.N{RU#H}$EI\ն\Z.T`a51[jכho8{4]b]6!2 ߿l(ќdsEu *Զ@8^D!%~(¹sHa5`"6ӇeE)j" O4^&Vak*T4 LQxUUTyJ2(Y.Iwj>U6Ѭ?A3ITKc0Z SḴ=5;@4fg8R518\B;P-&LcGOi N,0G1NBMM*zNLTFsA\GWcNuX^[( b/g4'L椻0vjd"h*xv݃SL=Jc <̽g" Uس{VfChHλ\̟XB1K Õ"V#c[dqJ˲(aH`0袪%R S˜äz> T*04;oaX[GS+QF+ mێO!3 XeM!f%*%g1(9 {2)[Þ}[Q*+> 䙺Ah)E[se&xDvU''cG*L BBI +pm@&D} M">@"pFFF0ALkm~G}7,nC>  Ȁ`n0U}F= dцP^ A!)?X.`рJ2(:y-W3 )&= LnE~lmK$IluFG>HFkMU94c)}& ̈+Hr "=ȉM1&[Iis,^kZTZ McH]t>V D()&oBHzݻKFqάC#UjC*/io'rnG"H2] (PJO`z)IHevY12`Л* ɥyXbv(4Up&Gv iiE / ˰hFQ"@Aqڟqn\B8Zpwf(bd~)$o 011MU8  {2ǡ !hPTFEQ\ ,ybq"qG1#j@)qVu Sqy z>m7⍢qΰ#$عsB}yhq{$+.R"fnbuˊH^Sp2?F`lgZ1fAFi0B hQ1` qPq*d,҅kIϬ>sÌ|ܵmt}81i*ĨφzEa?w{]ޑvM/br8 H\؊~?jHNJVx;>ET&ybPKJ=N\17[Ǯe<AiȉU֛Ut2S0H(+䃪% Y=W4'JUu}ڽ G# TG,z[6DFQ8g!av4F&*aihtPkytQPLݠa'Dgq1eolG\>CdGm-*~g.S|/P.eESRGRs;N# JU/2spĻsez<đ]\Lᛮ[mH=~bz4lDëոS$/24<"[1o15ΚR2KңtGw92]FU v:MQ3T(I#+HFooHt$Q='Y ne2ȞA nv/ć~?K_cyÏv!:4 l'Ke"+tZ2(fTLEn%k b"m`L=[[PI~t?R|~NWzCBJ]/M.PQIy575kr;C1>yδ'b(.@(rlm)YP(2y0M; :]@?;.7 6 ޏB.S,(vc*JG(;#JQ.o߹xO2vyCB 4ȉ_Җ(k; piؖ 6ICbt:91y\rŗ"NiG +cx}f](D1s^kBv*"+rv?$d(uJ!ȝ}"MEk='^":+!RG.s 8CbԚ%*qyy;xӳQcE/[}\tajY?ah-{`ϏqNwC[;GZ^ Y|'B5τ:QkŬ٥q8Zw>}9eǵ 9:l(bnC94;زu^W@,hF=۽'rfNFBUPؘ`ŕvЭηۂSkEޭ%lXYYj]|})_˒yDRBM""K)&0?WG.#U0#zq3~E6@V&v+-hN.qi`J8rEX)*=JҫTHyKSpYgannn}l,ZB佘cM;L-YWn{cz 3. p!EU5n=9v -J{% 1wpH.1]-u9BGk E1E|Lͯ{΀Kl?׏;wO:Gn3O&C()Q0$] >YA%)L{ɫಬ/u eFQ6NB Gk( w1ѱA;[sKd C" X6Xf &uݺ;vKЀ )1YcYiTJ%ɈV !cgi*ؓ[)A4D$IBN(k-&?$C6Ε Hg(6,g$t=H8QǨT. L\Jq'Nՙg L;0??;"J֍DWFt+ TA7)rDgf/c:wҔsCRنDt,J#(apxl' l.,>92Kb6cu2?އ[ <~(ud݂ AgT ""rS!ӂ~P v.7H}IiuYA3;-jkn0JETz!:ރG"94$Bv*I:4&Sseb`qfg动$,-TBCmuz*6Ṇ180 PcfȜGHr6j.l[`* udf+$Qی16J >FEy~=R-Ɔ0911S'J: 2!sR\ g.؂ E$hx18Pػ{/6OpN9c'q NϭA45lJkI#N+?qE Py:2AqZe5ݾ$hXՋYBft!3}lus d;ͅ%^q>hɀξ,L33O, k9r)\fo!,oxTwR_;{?i_;6f!v!l4`Yope1s4!Ydj$Q EN %9PN[{<0DM.!DFAr')T^]S'Wp -  Cnޤ3auy &-PnTYG$z2bc=850]Lށ6J" z1b !Mr@S U%ʿ#j3 }N$#xӧ߈ fp7~g~we3ZC տ~5fz+݅ sBF8avMV@:x9G0}Ou iџdE{*D8D&G{?2SS~#R|uO*N{XocR41_V@3FI[0& )+8CE]ui]HV^iau5͛8τ~ fF8$2?oQ`;Nv%Nl1xNS'`:WV%1?G{.?E9b+C=gqʡ(]x=ሐMbzzݻNLMтL])i;6S^!NU+(Ot赊"D%9Nw%!UA,- y'疱%"J#i!% e5FZK)3a|N=/߁^^,z'q>{'a]ay.fL\~v'v[?‰HpX;;BZ}diDBϥgNW5~Q)_̜ vGUr&ƫa-1 Q}S%_Ek #Ν+! gP"5d;:TyTÖe| v͡#Qȿl M*&{!lB@OƑƫp9g?9PQJ:uw&ak:\~S,PPVaS`#l#.nR{)*`I3 +kNCUݤb!P-g o Тf ;u||+~o?=0Q+Pq*CiXi23Ozh.Egs x۽w>Uџ¦ Q-9Syy]@")U&7gaJ:$rBSIm4mZNl(la~F25,ASyEA]qqOsHU q4v5Pݾ-0sjzob^·GdjWW.xf&-77bQ>~wNph $m$ ҌI#;uVNŽ#8uK7*Ǧ6ZJ&e5oњ&9d%J "EJ&=YB <" E!p*VV8Gz|j`Su7N%ULա,{8gah7x>;0 IDATs`X4.D̶* 9ag.ɦJbώ4?(Z6N^ hvԳ /r;?o}.l XEq{/׾C3bosSds xȗߏs?LTxqH3ϊsdb$ Rr㛉f Ǎ@=e #lK8]ضmwg42h'0ћ:=nlBNd~bhs'{7sjT*̧qG{RIEs縴Xc Y!#(U6 fBȟ#R6F͎@C3hzfO߄ 7M :|۫C6g)SY/u0 &LJ6Z=T؉䕢JFǐ,/L(rym@ޖ$]oz|4C h3gIny{2*6mڅMШzI"^w;>jal6E$B"0ҤHp>o1=}o`dU>S3{>:p[}/!{09~٦ 6mSߞ/s_c(Rn$g݉=rv:'4El`?r'q$4R0?XMXskP @6eyN[a!REFŐZ 0-+JttCqӌfF+5\9xͫ_}R#X]A ^4]kր<  RPC^Y M`xf.t[LI"%y5/HCg;<ѿo▱U #Ÿ':WW^YFqo?|+c|-n|Gރk Ÿņ=9H* 㠨 iQD&u%)4Z1Z짙( bs&TDL!>|i$p`6DX@mb<I8LʑVDP>Ol"H73 p +t"ugWb`P(_CoG<8q׭S o4B),{ (I]#2I[6EX]6B={AtDi $/Әn)ť^ R%V`Lmbyq{Y4>2V]j" hh)~א&1T\ďu{PHei²^9زzr7Za;Jr W,*l]& wї2i! t;>RF|R!|$Լs-iI/4REńUf 7އZϲfn˦Qȉ cfL?J O)av'ڤH3EQق[Sё086gQ\tGλ^ øY9iZ;A (R2?9#8ARmć* `}j%cN` =ʐ6z6 Ί Z#5HdOiFYl'B I"G*2y GoAGcUK=HM]|LMX%1fcSn 3J!7v: _5T C'b휦}~8AYPue&`!$aˠЮ]chzn"ej'Q59kȍlF|^@iEG+z9~ǏYG>w/79E4-F =f6TIAiz 2$53uѓ5)C'&03N٥A$F:<|is׺L 1-]cu+Q_@ '0$]Ǝߴ 'q Uw*"|1tMyd_ hH a3S$:@ik'R&N~3TQjC7~CyǣpIhԺU%܂,,]^e@9Jpk ٧?ӍayWXNqTsFz3/@`G2T,BD0T BlC5a)n{;`[1o:7|WbnS-2b`[D+8}hX@@Œ4.ɳ/#,{H|>IV9Uَ?Vt8ZW$Q#n+HD4鑲+K+kBnxs <5<}}c;/HPŢDuU‹F-@COd!\?dB´(^hvn;COg ؤ^7us<\CFp u CbbT8XsP5rJUhfI!SK\LNPx|rϡ~vfNָK'9!'yl"豈}[#7PRg_Sc 5nWm3PpշʻP(O2?q!l$ U Al$fLf!2`6^|-`.8{7=0#@ P}h%k2F Ko܄K<<|`OIb_=]HM~xm̥.{J1RUAUaht$u r!@h א6ƭ~Mw1V$y)si^/е"\m;kP)X6G*kEFA*A\d1iӇo ,Yʅ2N!EJo͗H7C |t;M8}j~`N=;A²tN#CU,-u|MɂY=zjfaQ!lQ/)з N?ö X\\؈#8gJU,-u<-G&hUyHf QiB~OOsv=\m3I oi|&KP `y0qjlbîYf1b&,XBRݠȃf崍yY)P n 6VrghIȋЃ %gTVTE\wa#bv? czdI|Ǔ 'q|~Mo(+ t$w"#\4.oNXRi3'2 KUȞ_/Gm7QL\u~|&|_#$L ,s{C%h'aB]Tlr"qRj([vV?n*u8 ~w|U09>|B^,";UHd*cëxA,`RBJӼfr)n3/WwӈL;" ccKeq > @ LW  Ldhǫ8|Iq 7N81Krv2S '"ILF k:~}h1?v){wq"1*1 acȻh8kr'P5\<\[VQ5\{pe;&p \ YpY;];Ǧ*<=ǟ>ZiGLtP<ǁTujrGGO=swk1ZǡܩϚEȃ0WX!biE?4|uAU4?GQG骫0MoBXtFQ8gΡ]5,"".H3a&prti-ES(AQ =]CbL]N*6a[XBSU=I"H#䎏Oo})Nyi r% G#^ pux$S8~܂#OgV/)d9M]mЙӗ\lFlcu~C*i{ú#.'pqcZKkڼ=Jػs+~߆SOTDу*eVbCQ-4X]o3ZLF>DlɅY$JXRO-֛Cޮm}*TsU3! 8DH/Ͷqa#ǎ!gx\z9>5\y~RL3Mo6\w/&FA fY8|FQ8gΡoݒ#M"U= NԡwaJr<>Qn"s}ܘL2l7H!L"=,x:^(3ڦ<9K֖ ţ:f: s-.R/NFZ=p}r'vi,㛇YRkⱧ¬s&@ Uz50G\C] sP0Zw/pCL/ڭ6s"`BkT8l͵uXQ(%,.ǟ@X)$RFY3!*M B#Țœy޻ r]y>e?4%UdA?+0:6 ȥנdd=vB.w ,cv!XQ#6(9YQw fg[nO ]ƻ̊! ,xW$ 7y1;€42ʢE - (JhZ 33f4uϿ @[{>csY+MNn0 :45]%h7=t(0ZމL!.=<äKpsű#DZpz~SOǾ/T8tg%L"ܑ{}irLBvaHB`u9rjr@DGuxehje Uqzv6 JU( MwmA.EA !g . o)t.Y eaƫUVCIq&$^Zͪ:PhY54s($m&l32F zNW_;^t+&5y?}õ#^~ QhT`>c,! ч()pcf:" 'T$H S9X~3=/=HRM\6.ݽo? ]8xe#ZnB7ULm+'r ,Bg> /& ▋+^z -\\e0UF9c?E˰ ! #65+ُcS|ng?yI }@_Ml<7\uL6U_%m ^3FؾyjKMȒVbn }`: ÄQrDꯢQ[c|lAb#d;vs~O YB98hw|(J+=]3 qھ /ymx/}_xI&(E oo3xh6P(̋ (fvG'E iVv~ނ7ޙ/I䲑 !DϐJ8v}JZ&AUaMO>ba/e$(i-Iة$īcCK6!@M$=mh'4W(nX]inkYZ^"SkYH q^dx:M[4092]Sð9[ o^{#~Sa1F&[ %r1\*@LV1X(E1j!؏t 7_u^tõC ~ a$WZv].q^53v =2pau$+IFGђJ,afӘeWq "E `Bb ?wx;߅ǏڅzFQ8g)Y(qaRJ QP妐 ї(,Ö*𖷾NPsB14_(!eeF^aPG7 I5ıu8&LpIE.ଝݡ$1 jf }sDžfmC>@RQ!&X#O1o}gD!I0N{,L*aE Q9`m1> :$E롶T)سm={$^x- (~f7^ :Qtb|x o=wxPTM^^VW95GT F,JaWK/؉$\aj tvM*ժwqBJ\Lmb!7ٹ&x;v z|ƷZ"`.\b]OgPQL۸;aRIתaynǟ~Wwo>H|Sx'?wY* {#O߿Cݍ̖ 6*AԬ6޹ <*Yуa[8CHC ^ʹDVM0.jyԤv[onwRdc`t+/?m|wp(~ EpaJ N7^{5+^Hu"$8bĦ2yw"Xl 7Wo4)DdZ(8PBiL!D119^%crbwmeVصky_T˕g~ȟ."8,FY;QgP]yswx/y]/cC1[Z~x`%y3>D9c3A.'Lg~#__{' h4v~|OG#m>Ǎn-8udyMU^Wg056=A98l l{[xk_f} i.9L"I*G[]H y?dY{wl!D$<2Bs'w8>7 )qyɣFmmH@鯓i)K"4.QG>/BLM H,z TKnz VԸ`4Ab~.8ajU>C<~wipϝWT*,xm@ȦوsxݠRu1ݻrnYi,殌$FL-CT!~}C/fo(aeӫw?>^HM9SbؾpuBqVHg':z<ߦo}=?mč?{nFT)O8qyl(}x3RR6D| ~3E|ߎ? K<{xtt=6~_ѓؙ/ W_M!g3<0aCؔ'm;wL#}?~Ya5RC#(u}LjE2U)UTcc#goWIJ@"N51ߟ>͟}$e[9,$DE(JQA%"A*\@$P+H䜗ٝ:V{gp0{v:WUw:=\'4m1󤽢'<ܢ֌!S@H2$n'r"ᢷw-ș_vPF$5\^ OWAuRQ*1g*硳O"< |XѲPņ tC(;Ͳd)9wr|fgSK08gpx}8Wb_oġ [R36Ң0SѺW>oz zGgމμ{}c0!ןc{s.~d{W^zZm!މ&.NmLݶ"'5:y ^2ȡ>2̘D|! ac}?nXkLeh gP} vbLPz(楾ISG >|;(S1ql* )خ^uL5,0`QlHp†#נdNܸNaog^K@ 'iF%uTrL\7בcMNPh\&|NY:áҨZ(bтX*.;P>o`)|Nv$6߇$;yXƒIj 0}z'-|fhS1tNکD:6x!;UUNYhZD&@@¡הpa9CNbf;co/>%}C O}3umbryG{6F׫c%JGN,m&9v<q5~?gwED^ ħx[YtVʍO.9 _Y4~Ʊ|d4z!|#o/2bfTxħi4^3H#s?܋˜3OaH DG&ނxGnUυ r+Q$B ggGD@?Ҡ& E a^ }yǝj?E ,?ƌ٬ 4v:EttuX,1n1I1՛t1CFG4 pJc<UsO 4l| c~,7>cqSV$ '6H(T)pvם0?(n[;lSlU܆{nbigDe޹G/Iy8K0īXCk^Gf>.pJ@Řߜ@<-N|b5.t$Ltd=Ϳ}M9b؋Hg[(1) EOQ[!K[hcH.N St:Ï8'-dR$^` SQ@put3pqV!#F6YTQSHP .cX3ؾK)hnK"a.)S*rsRSm;սwqy/FӦw2a$E&W ---gnHZ X&wcvF_W(ȕv*FKƒ կo]w? hqxLK1xk l|-?}q޳Uc'|đ_]3fe{]{'w]O[q!7i)r9ϼy,AN_lO 2[rpAq _ ā?M1/^? ݼ;xsvXUG)==]+jOjqVRpy$5'rz᪫~SLojqDcBdFJmDB8G5ikHGsslQSȃgkka#rc !+r:3Mgvܑ)'X5pxtB!RW}<1"#aT25]2J9'yw{E Sx9OY*\lkOc4[Dog[C>3.Oݾ';#'3*Ќp4kL az/pQ.Ʒnc~v5Nع+_oD#\ėK׾9c@̶PT;1g5Ao".خ xz!u5Sç h %[a7a&ͱyoǙ_?ХqkopO_3 ?aw=ͮߋQ )/ŧӻq9g^l)L@J.Ts. hO 2Jhj[CЄҘd& 3Nj옉Q{goKT0uFħwwxq>.LkhGNekimXvPDBP_SSKk+Qx&N䚊RMO8_9\VHշH̴JhGRaBGߐc9{;t?EMr_Nq]7aXK6?8m#m]8bKKpi| (q3,L_]{& tb]'N ߻f3fC`$|8qKaq%cwxjM:j -^_t.n_cOA%`H'hFG,N#lE;Ǝa`p!h"~z37_2|a'|YlJ)Lƒ\:QCRrA͜9>34+-lSg۱y1HCT> hR[ #Cʷ<_=Ӄ946Pɦ4U 6KN9i<+xgfbM$Sc; l쎽 GOG%h[6qO#+a⅘IlB&(0`Q29;mDڧq߲Òwp0b־ m݅5s̪_)j'IBշW(?6EUk=OuXA4K;35E1nu _¯߂Ѣqnooc´ U)IWUtfOQ R8Z5-G:/#?xU҇#y,KKcmbp.>&8`ظ s 6k6<ҋ3<{6fgz3Dk2=aHSH6[G&_Ѳjx6X.a8Ql_$6ri|bqE$inZXȘ& "O> u,NAa\b226N90, -g(#fMav~fK3/1)q%;>r0(B(@Voӫlg6uXEúɫqaehn{z\q8s:f9ܙag}]xx!Pn8 Ux{!22 wL|⬿|QIb2qr ;NJ9Uno<T_C!k3& Loא>k&̙L#ec#;Rd+qO_L-%8zK*,k iơkifUd*ک`TZt:Ò(5M3g΄\z*@t`,Ok# - rhn:es*JG5 !A3E18:뮽1C[[q+lbttv`eq7|ک\Vtc݈A3 om75ť?uЎ >cG,87gg`?> Xڬ\{8[?@mS=ȯ^Wo8nT `'+9}l/3[^;l>%~ 88#.{7|#; /1:om] =3KyND]f(*ZtCc%f NsH.Dvd:Mx^IPkZǘW3RB2ܑfMc&]uǾ^8Ng Ï8F!X:<Y5dmzH62M .AQQr,-͛O45 kz0:VO 6;= ;˖|'l.,[7.;s6h,hk6AQSg[) .b7\ڪb}Eh х{ng4ǰ>aF:SgKNa$E#{ڑhweO&"hj眎w#֬ƌLL*hoiFq,˴^B| )L1ع]>ˀ%ΟSgd %1Ol|R[  JT{TB1,Ea-qOA[[LG6]mL,Wx|m_h#lx b)m UQGˈMcA5M뛘3s>V,QbbVyK0 ub TU辋L2ŎN B1q}V9'_ &X5(UU y$GvD']n-'6!q"3,xlȝi*d.|b>ҔH.w̙֊91wq}EМ1h4[04b$ %b$5(5'<(RJ%k)ż]_3 (Tfx衇֘+{лr=GQ,:m1{*7Ys4K%8ϘJ9MQ̪ _f ̸:ok8`{;6󱩹DGkpQ,9eͤ,7`L)F@ߥBE.gqSEWc|4)D FRqaḯ榌 8Rm""~rB%Nnuי-]nJѓ)4,ȩIR.[4p-"/i3פcm )ˋ@R ʩ4 Qbj/YLցhӸL:d\GW{i΢; L/Lmfq}kN!Z7tNiQHQ#)+9C|^:iRedd c\f0ͨXd?uz<{ PegYqGpYsP|YR|Dnu 9Y.;F(N Y 7:HLPcBᴘ `dd_;1k #'\$yw%VWmèMZC(#.V ~12R,$VaRĜDQ)¨Z\&X0ICd =u7ptUMO6ۡj$T%OIMZXhMjmOv WLjsn2E6̝B)ju~~U/Dɂ&|q45`bhnif Ӿqmg[K9%cI 7 S"pE:х8˲-E!r@!4Q,a+E=uH€rdT()M~p*EDOX:7)̙tYV"(94k*R#FB*BKef6U18dҜB9̭;`y}4#Cr2# /DRt?cӶs:PoH91,Yԝb>L,:59ߺMǺ=F X:H`-PQWRSÓ2'z$pLj=LPjpGȡ>x'q"YϏMت5a$;C!JRs8UddyhH'`eCSk.O]+qn,4?|>E7vB|zMfIR)6"<%BCHG?t:ƍR#`rL@i&TC$w`$b^]CYV[TRq #;G":5. vt%&ىhm&5)W5//TLF8ݧSo?s ~e4=~{_{o9z&8}݅g8ZGWj%PP']T-7;I;"kIV'1w]8{allŞWy*Y_JIu9D1,mw5ff&UrQsiٗ}#YtMV]09p87x[P&_~.)1}WXQ0c3m_ebɔY>n&2T^xq]c2圢7 /SyoġG]z&p 4q5 GN2H2 Ve%Ha@ TBz-RQQǖ;rU)UPcC*@ 2eZy(_xQjJp,_qHHPPv= ;;yJ}-mhnm}QU^K#(ZE 䔰#hniD%s^E֫Z`< S#_p!rC),bsY3nƁ W?Qs9o4O^^ML3,E1 E 輤DKX@T2S%c6]68 f%= 8c((:_Vt)*Mmד2Ԅu`S䇴p X w#6Uv/SQH-Tc"OI)<] gJ'sB+؈ SCdTќnf:N̷8,4R*r) ( S^.\A(r=U$NK=xKóu`Y/x|uߏs86J/PL{|s1>?'MjA"%0)ka$1: 8epCť݊L&a;%5؎G~!0y*6{+ݪ&ދEfePd+Lj)xe@KbGvNH%mEE2ՄkiLJ- a7JH -iX-)x71/@Ϥigbܙhlnǐ=R{ 9 :F# ɝF"pɮ-OXH4A%+MAʤԙ.L2N[C~4=xم=~뿉oïXk}1V(~W}\,R7ҀDTyW:4EYa(aQ!#xX65o$|TTV(Z ޗ85y:=,Y[SWLܺ׳R{S#P fE;!!@P@ =Fb$93Ͱe8+X,q윫`˂* Ί tbӝfd(q0j,GyHiO)c}hmiB:CpcX?F [H@{\eeOYuU#,Ƙ1Nqj>#K-6}⅟߱u0ը 2-VFf3ob:pv-~I?fwsvC^`F,93ܻ gvSGccu9 |{*ra8!>kv3[t♚xLa06 mNPOØoKǬtS71X Gqh5V)IsP4:wyr MS05CR#T)̟mT=)D] En&`'+FuCWvInPC}xGX% WBD8ZVx` KH'I,NtrJhkmbfW~~(s|T|qp*q=)``|Nź'f h LX",PUpcLBT1`7-ڞ\6t:aTV/Cı_1')q/&a.lM)(x`,z.'pɧ;Wп=!s>;>-U#.çUũjtU Ud-I:,juăoU")ס8>z̔" CFaؔb ~"U5pvl-EF"b땽 =$6`Lcp稍R`{ #h5v!pPL ;u== )a>}#)ePCGJ ppNfH?$4R=7OeQ/r~D ahP8  ηW`| %l4&Ed^;L'&A?RCl;rcpw1-O|&}]e|3©;xkpq_sܣbYarAVLzʩR#|z"ؔ^G cTGk[TPG WIUW8>]xyXI(8_85Izr;y[ӂT;ziS)Ź[sWhQ]3[?O g8gݜ 7| 5߿-'!;Lx?i+"IFi^dD/'6Y`D O*OZwU5i#;pLb9cc7HNhU86XݮX3PhYL4cc9F(1`hmoGKs ^v|%^|7b2b!O5HWQB5_c"3 Ē)^ .5D@I?& YW+˨,US>q7~쪀0Q05G|l8j*7lQMp魇aHDhy1;S1%GR7EC>9F.-hb`H䵛 E IDAT/ ?فr]~$AA8}V;EJED#E0}& JOACŢ:ЂWTt(}H~=Z^xI%4vLk %݄td%y6RI4hJ-bSOamq鎥QGXrN(<.~b*#G*;F8M9۳-m̥H4E~C42I拈'sds+HGY4~-i[ֆBԀ#]dyNnu p,[Ip ONGkBg$Ԉ8"՜ƆN֙yDFO^щDG}ESh?p.q}CP(Ih2fR UvIdL' ,{n&G/!7 $єoQz# fA7"iVA0Yھ/qsjaQIG$<: 4$U)t }1^Gs`J)|CPLk&6,ڦo6vPAFZ>T,,^д9{pyNBmJJnm%W_)htOC t* F^@:4-RbhyG a*.|Ie' !*'cs"6jN 5``"DOj# %#M2J"$y ؊4|r@Ml LѶ^ ߓz ¸Ұ ![HrDJv Z…J'fq8b. IMPr:s9446BOa;鉪Gg"j:oV*aGF@BLO6C4ª1isXe'(DXjH @ϑ^%)4JEkcc%QQ-&Ǫ*JOТR4F`4QJ"+r;nBH^FE㺚nKNS/$Op kޖrAbI*RiLfTuHVCu𶤒.vƌYSGGgIFǹ#ƑpjWM|7"zLXwuR扐EevhDV8"@P"NRU{I/d _.FNE?^ł˒ V с!;uk &v[B eLXky_2 tEcS#YvD\Jޒ\h!7]I`tBqvu.XqM#o&U2)FtlN.<Ǖmki>;Js S(d.c8 zG$)r1gXPOC?|sP,|^/>{S<bM, kCYUJvJ1aƔk(BQ1s-y*uX㕣3g c",~%1ZGa*-MTtJz-qlîx?"&\6qC,f6{3nrn8Bw,Cnܖ1WQuH?CF~p1JfFycEU')TSm~@."Th^!'"۠)"*gĥ֝bݦ^/6@$u ‹]31rSQMnCi7Բ!i! \ASn:`wbѨL iG%N btLANP4|ik(/º&4у"2$Ch׿  G`ꉑȘ]=`=V*mI^QN5wǙHEj)OZr6h>c$bi"F5+zX'Rlk4*?!wP7Nr^, bq 8ҩ4::J,W%\X Yu5`a5U*KHT9ynx|dBI!%TNnSخ"/ Yayt:~Mdy4!TfWT$Q 5$k51u-k^[MzŪ/2k}n+!iɚLNyZQm2lH"|G# HJ]$e&{1fx`H Qǔj~@j7o65@WG wm;O'Q"Rj˵`dG $3 :6dFF0k4eXj%GMMUM&<3`58x1GDˏUXn#O 9խbiqhTjPƐe2Z0hpEtJ8VG\Ks( ǘ}+Vp#@`.EioCu:Xl"b'8ե;Mt=׷9 ##+-hNꋚ.rB(/ՂBaYrА`FmЈI>9H"s vq*kP=m+HԔjUoDHT[M:P]8a'Uy*&\t|tJI'h+#>7&4j_ 1X^΅܆5_2ﲊYUO2,tQȑPHL7 N2UCc{hFoFR$ +ą:E!;\eL X@\N6\9$,"=YH#$KxpU9`}o%$cVI'Xrd{wbݦQEMUS8PHTQS:5;GޗSkT+% B8hJ ,K('c(- aڵH9 c} CGYȩJ-AD0vqZ ( Gt±GDA eHlp!H6vU &6\oOSKX]xz !w]Sܹ\>敊pj/~O"|w_z)n87n~TkqEw>zxv!zJrX>"zH=n$LBUƽG# `zpˋ0删.\uDe\yfCtml&uMlȩflT,Kr b | s4̙ӱ馋`[]f {r/8θ|" Ck 1%OCC3J<Ş8c &TV K6r@7:\ =,:"*K%c KN ⥿O-^!5qgC aٯKwOtwٳ(D~'A{0=[.C4>gYyۯl E_o//QӋU/Ƌkz7ېsxïWbht  nꆚtXFv~ NsP%ouU(2U-/)Z-j".$=OT>,G/(S Q=FkWFVԬ`RYާ HxRw.,%X+ԶY(i&d#+P?"ˡ Z7bP h?]NZRؚ̢OކQryyy:dN:&cL&3XdīHcMj"~zP.@pQ4W^.;q.deb I!3\cwzͱCpo!ZFol{-F,~뵸k&1|h8(_`M`ŕ3 `ގ⦕W9;Nx<0g3}vx:w>EpZ'L-\g\&udw28>J%slC1;%#Rs|/VEaj,݁yiQ]/3I`V3<+~ Y[E|AJUK1&'hL0i"bndHQrxa"7J .)6sst50+/g7 k\*硒GsRf`σt^# ~/rW;Dn$e<9CHjbLpS[ 1NE!/ bqj28 sI%d*ɋ}#Nӈ5}R%:J9䣊6g>XhɳTbhnnt?E{{;\"ؒ\j$V;'ʼ]k2~ 8E=%zs=߹/|'agt8! )U8~fonyvltIV/` %}֍,a :Oo隼/C/9ۃR|R[qVލ癊ֈ.L8fHiթ0? %sS C7?Ʃ&1s>CͰ`h ??gFSsTnmkmf(ۗ#uqGk0m̴S++ԚVf=L..֭孿=l-s/9篳j7]-n _' LbSoiKj[aB%KN+/S ![YyX72feHqpcnj:Dߠ-lbAD#U]eOXRieX"9G B(D:&HXyB.|ov'` =(Mh8(Nw ˓IV^5W;A䶌&& 0tOfd;[Zf݌ 8W~~)GԱ/7$T3|^"wG2I /d<4o X=w{wU0]hnjRa]-qZu9Y1ho&3+7tme_j#Yj!)Ĥex,etCuBI+i,KԎH}Vt+gd2k5 GP4ou 4[&RJ TdGѾVUBQtpƐ%Gy 02p- f\ kµg_̂cܽVyh~G\6q6)>AdH˟y.a{Z# r)m ^t ʒwvviW^"UH*2 y*,BO&J^!"7}q{)J(*V {j$!d ۣ)2kqiCn7xn]Wt<=MZ, Ogߣxoo.N=0Ozg;˚v9O N"ld__E@f;F܆p1P(#Oa2^7 ,]usYn. -;=Y;9x]+װ@6 Y:S;a2P呌Ik( })֯Hwh IDATWJHC1D.ntXE,/1g\^ khĊo;51*$P|zzI$jtq2ҒB yĖ3lӐ9eѴK_=NK)I7?ѩ'ȉS^^gm9lZhثBl?`'泴Ⱦ}*/o-_es3ȏpԽO X.?s){lRJӾt>c-Y?_a=uUنhS*7BdzCg6I6乛O l†\`q *)| syUB` @>d(UnI}yt*S(dcJ:P$& >{Iʅ~G1,S# K^>.]J6UW\uN{{{Y-!{yެ F}¸)ݯppcxX>y,\rUU k޶;R 3Τ>A|9txȄIL[imX|woWk#+47Npkqserkq85UȪeRy/g R]ET6VGn(?oh:<*Wsc r;8U,3ko~j(|a./Ӭ'#^@f8HNEdR[J%#KWg:fGauz 5lWkRkyN(קۏYnuĤFi&֮]UkظqFlcZm[Qܩ穳HɠCk|θ{>3_Jsd6, "K="+]?_9FY~]]v+}& ~!ֱQAp1sq\6U?W|_k06J]8k~p5켙}/+8Ctҁۮ vԨC:w?`||b^Lʖw+Q̀\a|s$-fa l{PGl΃QeUN-H-ΰb&1rkU+Qd۞?bV@aEl:R^D<&u ]  Iǹ>4)Ob8yFR4=T9GPGKE$b+imL1lٶ\4|9LCh2g v 1}\(XÈ&ͲjZ6n\KWJW#m{FJzYR`;=)߯zH^W*E+I[л|:UXQfF]9#s n-kĩli#'p9Km:e<j>"8) vD5R8!N>FYtL63}BHMQ辢 6E b"*C!߉@5>Y6KSbE! P糵2s"*XBf ׋37CN=ɒ(,E+Gs%k>v}CF۫:&ӓߋmkpd۲s#,&AZԙG/,ChTg%Ҭ#wR[i֒;:Q+)ѬeᔊIIumk&p QG2GB&.zV.MS ,}rU?nȈXʔr< Wɭ8xʵ5i;ރ)048OzjVrJ% ]\8P2NMMo>?ΰFo9Gt%YE|DjjdDSI1mOhcZ"#Q:~,!OmN$=w͒צ[Ycw$D |Q}ii<316X\V?(HD |)ѽU6h.dmF^չFUUVkPRXtQVV I2lQ#XXB'&c%;78'DL"^,g(iaQ c,!1>gK`,!g鼺 @:<BCf 3à,6 y|ΦaՓ+dS,mvS3t DB.y,~q&D\\ .V$֨5TJg3)0)mYC¢1)AZ,u܄Bnġ&j:I|4ڨl~H"׿ FZIS4?1-]@BV62QyK-pPvEzHIp/ kA 2~x_ED'sŕ͎ VJ(|À"l8y;8*xhdR3qf"Is:%\:;!|DR"RI58ocovL1_6Dt&sfKui'\eEU& zih]2[iK';O&F7/)tsyJ" #EIwl/k8xU\`6SJ[fsFUt҂[kh׸!hHdʾ3L]SX#lZ[,R H\BПj+ѾlkH߸1cnPg5]֯#T**]8H2,PXݚ$0~҄I.]J\YcHU\;Zjm^En:}oe]-善텬| N1˸F/!smMBD>6ld.ߔbS[L6\ata&#pa R֑mw:+d ,U;2X4gzqgPF Z-OU,|lo3D}6C Jå E%:9*es4iS"!3I-kzp2Y}O E®G $Kww/ł ) H&jYfuйqkd*c[o'Ә^\]Lѽe^F;֡Hg"wD ]+qћN=wߝVݧqqRe,ҨUbFRy D֠0z'_a4NmhzX  iYe*"Q,m*/'J؏h8QiYL/nqeoS&T[v[$J)8"^jT& 7 zmfiJ궣7W#:]7'y<di*c0\60-Ap *?l+`1Rb+B-sΣ 7)'˔;ȧ,;uG;҈&+ئ"ʑa)4/EF' sJ5vmWnNjIt6<[c.t\Hp-( \^q%BV:5 wнo?'].6ScFY~N1MmXyIcpL-6RY(AosOL_B0Oy]'ҥSfĪh'\M9kq=?~B`]*P^۷Cx!KSp/̘8'Mͮ60`VTY)S[Hu&(:5RڧRșؑ( 9(BZ18=}zh?^1AT炬IDfx:NGFU_cʔ&^͖m!%NeӃ_`71뺿E;] Ôſg\#Qv>w|gK!uӫx{ yaǩIōO9%p8 th*-ħE=CڜH٢9 J`$*)l4ʔ@VbcS"jj 6?8~sJ 14Z#6W>c\gߑ1_>s~j,ɞ2k[LȔi;Z۳ģ1JnfM7uIa, <\"kt?;'3m]sۓI?ċ/.v8;eFݲJin*)D)WT4Z}|ܸ1S)z4q"HƨoOh&5 sْc"BlÌizTω3b'вwR;Wr9{_!qÜS= ڿv|Cz<"xrdnәff g/9/L;qp].o;N>L맹煟pLkՕElfQ* \Mb%1͒F6^):>=T0&cjWR*QL=bBJi8nъ^ /KȴGi~&=Uv"'AAFXD`^( 9~+$S>(}iwrL8LL ctƂDm)3?P8Iww 5@lDuTZF!u@j+}7x#;m:>3 9V3*J(YȜ&dӞfBtƷaF,ڠ5ĢŒ/%  Ѷ[FSLTߏ^=ǜ_)KՋ]顋9sywп~m"VAubƛqe5.[ē>5߉ئpw|c; Ka Y\xi ,d!k lL +1|"*38o,9*hzH9r|'J hJc47  >')ɧqeT mOW83ڗ4rTwۏP@l + *:`(} /Wa>;&oGQ c`3μ%\ur-m1E}ClN/@,#Dk[%A*+'m'K9r=/xF/ 2H( G(T==$q-HHDR BrkuZpԦq }2:$믩o#^>n:nUʖ^W~zG|AĞ_C~\tً{翤oqԵ<˾号)~'uɊ َf@'I+ aR/.ΥX*i)v2Qa 1Oͥ g1<_ZS˂%Gq[.(+}u h!3Du';L#^F ,U' KMj}%;].Nx b.&Q;2&3X"&S Ky r$ҟ__ p8 =GBcj:z3!LVG^&QYbSy񱧉EЕ5DKG;nR'gl{MM]z蠱A秗/_ŔɓɘHW.aLG#EI: r<CN:ۚ0&h- %'bz5ݸFmmm:{52edy&g,i_;<:A.{v IDAT~=RAsrņHn]=Kxa7;N#;TyԈ{ܹ|q":zI|ޜ~8ÿˮmH&bvP$=Jżdb()*t#snf-TZbI_)FjSP%9(L8qHV$XjZjF0j/JxZEFf%7CV6qM Ba.Lp$i0K9LAv0FEcPH^#F;Їv !);G ,ysFȤ/__HS~l.M]].>\VdG"= $kJ+o'9X=HD"IZšuz!$lWH*Ʉ^ɚXCA->j9ĿpthB®{edrL":al ǚFS4W渹c)oS񜇙y78ePfNl?fDݮs_naO䓷N_ma̗nc)ɏmOSVmkL"b ,`U Oo1 Gg ',٪%u9ձjW3qK"\5!KXo대ƏjCCO4?dïbV>!;`(4iT @4<b3cTB"C}cq衘0,bgfMނvAWTҢS.رct9*ڢ%R1S$T[#WHTnFb:ePdQUaG={|}6~$5ҨsfyI \f!e=I}ZSQi' YV'!6l\7jI'DAw:k_Q}Wﺗ 7oJ-Axh_ܽ|jkkeƕ_1-͇pfx#Uο9]Wܠ (=-"M`v^RPHM'$U?%و1a2HEDDU1[D)$]vh0F ѴTj\"TfѺY1hk_sb~Tv#d񡒞F !%%W߶~28&ȭ\sG'"bP(唒-mƲ~Q|^) ŬFy5ZIE-_1-ZڐI9`Nt-,eYVX&)X\u iZƵxvez,[HDԡ HqZ˩ڿٜqqZh#d=_dd:_dD5<2옞`ŢeTM4@r:$ӔB8`\[Ky&kxd|t.ͺ+d.(*߹~K* պ8PiȨ)q#()QmQ3-۪r d2 =ܔR\ >1Є*7PtSdݔ,EG@MɋNA[2'k]?k/ƘVjMm^ĭ0aʗhh!J }ȒaOŦ^L#BMc-^4J{O(ںpy\G:uAW#UX8,vi*Ο?~(B8*E1*傰f}]=) G*#BeYG6;e MGfHg5GlT OX#Cc7yerG;_sT"|_?Zն„D0p'+ɫsbY$[(i\F$?e涨 D .ޢXHm6$\-2[yXȥȧ! i l(X"7mO?=1_ bMhZ}V٢ BPQWp<ъ))NivHmL&b!Cu2sE?jUмfZl\'IS,:4!3±xBcjho@CC#O:~];NeTQ^ҋFHXΊS'w *#vݒ LcǶa֓ݗSKj21&YL464ڪ#xʚX;bsmACöv&e\">.Ogi{u?\eʱؼ/&d2LuRӎԃYv=TNSqHy@ޒKSy1fԩݰQ7"*rqJJ]](g_ܟep\KƼu8o :*s,5ö2-Sњg8tܯL mjLd3imDB6 2kL=?ȻaJ+:X\.gJYvQm] ҳGSt .XVi\ RV"mk-ܜv Rz49ds5Muӛhz,ЙbQ)@iɤK eG(%:s4dn)cEccP(߇Da.|8mmw(ӉXh@U^+Ѫ,%+Ged;/Oy fsw|zvs-䒝ڷv~w\xsO6I s|;"f{/{s~z>nՆY)%J ʠ|}Z$WS7}v)&N"–1-? ?+2ئ&Ōi "" #Z8* jd"6 I_lW{d:1ȰTP`c,JyZѨ/c|Ӯ6~.3un!K>GP_XiDS+o!3 $SH'wi$2ȅç, aBaC#ӏ!S}>՚!)vm]RBJFeLbGHy:]ȻJ6*bsA2?Wvvxnf _뫜w%wt`%dX5}Nodp՞3~toʑǿj 45_f,a#Bh265ї4%S ,ץ##譟tEDk::׫-)Af')~tvkC#`'^~hBSr;bJƴѢnPa @e1>q_Ij9Fg)I}s:2a80"&Wt:Mcc4dn[U )K5km)QpH-ֱzzuv$U]Z!,BՓryRLuIFtvwI1{FN}z5tHZ1R>!t glSG2Ҕ/P)I2z vNqkM}Xz2dPM:~\ө yqhQZצObպەg2vlmN}DeJFS/^JSqSJ2Q[RǴ aI}g5IJsF}Z,VDKF_F@r,Hk5Q%{/mIBi\|'r[7eL:e ݊2Dmm=ݝ`E"Iwϸ(Dr ~(jtZD?U,9Ad292}zjXaTjiV5RڨŹjiNujUZ*VUªNjUZ*VU´ѲqkUj7MUhjXUj;&WI /jªbժVUX)VjUZUbժVUX)VjUZUbժVUX)VjUZhA}c;= g#;O$9C[OO8x)puMp)puQs31ppljUS7(cޔG)yxi%Æ<4eaV?dH1!fe-EsVnݧ1Nò }$ kapxnUn˯ڿǞ}Yx/lOh#uQQ{ҹs8"QZ˱+},_lq^:?]c>#t~ٴ~-W`Ś0jo@n;Y8K{ K!~Z&K© Q3\8>3M߯yG\͡ଳA~GwnZfv5|w&'̱g/q?pw.?KLn!w|0!CFT5"B;y9:_[JOEsv۲ZD_1Kq"5ܒA8Q`O~sm{ॗ_?A:FEx!󹨆+fw F6~<ݠv}=>;bC{M{Bi-ܰ >gU<ࢍW4Zl/Y@~&u,x^<+8= q;_Iy|q6d|FmS;Yg,wy'U_;МsxOym5GN?eg|;磢`MUeD&癿N&0c&ϻp,j)._wa k_ֲWoW^eg`e,3ଃ>Zґ)qq\5=А 7áKPQ+N;f<^׬Y{ږtywx1x.j#ڪ^1Л|TP:UJtCny[f,FIӟzO$MI[n_ߞ#䪤iDi3מȗ}g6z3Kkxg8Sᕟ[=''*{)Z}My\\[н56*ҋ+Upt|:C„}# Ɓ+Evtaz0yp8~y@|`|8 8m|H_#ٸ tolE ;8Nlrh?y衇t]tGuԿqg ?p.yɗ䣻5g.zYnvf`Ę16G'm_JξkNFԨc-W Km'}Ah}lʙsњVFSq'xnGxx!>< n "s=|ИgavLx|ow3z(?/},5=Nw/QKYwY̺M!'OSǁA>: OCbG10;;M:pۯ`np$XUx4hV.Qh0u63_Z8߻,-jώsb^x!K,?aë}b=)&¶:-# 8%~p>UC]͟v"[j.t?P_w|0씁 Ny IDATu?k솓(t1}^;p?n?= [^yo֔x10u]zOSO}[wqg+ Zpޔݸs3";8k;D |q<~y31}:J?$w k9{cc0N_]̙8ҼGr:B]c1^9oK=bq̏v$ wy,r|8l}N8vqlWNjA>^E A'3u?>Ο`΄- ̈́ E{.-g}G˨㩧bڴi-[/XoO:U-JBB+P"\;,wL:t\3m+N澽M] _9Z?u4#wˍܸ3Yy٭~G_ O m5kF+|oSS{#qTk@w%PCs(}}ߣ 6Lj8~w߯- 0!گB`~)l ? _ɣ0?̟%iӉcwO̰m2ش3n퀃`#ER_dK,oWW{,< cǎ?OO(yo έN /MoP3i y\h5i kX?}\ȕ`Ęad':3Oa]p'NbiVѳMV41T SHL;"0ۨ&p6q߄+B0vB|pL3}B|C&L"z}˾߷~Mn~{䉛mFEXW0Z.5|wHтso1Xǿ -&tF[]}Ps,|v_b=<-x8u:ueо##z!Ê5` X}/‘m"Ț ls6Rn&^y=P^{5}#s'涭b1|&>p,z_A>vM&V?pRc #9/;7'd~c})[,бf9ۑcW_u~i=>os;PS*NѮK> ixp9T\W= +{G)x<%:0 ߄'`4o o`};` o w dc<;9;s ]v%lX ? Ŵ8oX퐂?τ 8wW̛7O}z!^~iЊ8sF׏LM^,6chޙa]x gwGoiM_P՝}S h.#W&d$vUVU.\pK _Qy [H[t+ߝ5Qz9a"=E }GW1vhRRRȹ^_P?%_ppmfe˖۷ViҤq$2`+>\JIZS~[g^y#uKX:i_ hH֘#>Vc8\R1oҦ܍c%ewyD7ŨqrËG1z?XZh- M&\H-GY̴,:_BB$J&xz *Y!BE.w}vG֥ _3e d$As}'~ܶ|/^ I=6a)>=-c;)w 03Iw@](]`lLrc] ~ml:תή8Q#9iSjoN&\z+;m\$>q帻q[ٓ>q i0Z){.\+ޅ۸DAIE*_bYsn}3?UgëDѝ[]<id2aSxyؐ.y;18$guSe_꼸FٓP%ܔN=6}߭`H[n8{^YwW̙uSjBSU[Uh-F/rOliW6ԅ|Z1X4[VMs>oQ>:X]EˣޝΠ(a >ںe<[r~`>-Av1U5{*]+,?5Jǎٽ{Db=qgLݽF=u1]U ƀ~шy;@C !ª#ʵ5Cgv.]F8U/_6*Zqzqn^⵫>3˫)yGͼ\[2xWIdwY."6w :1n4~Z˂&9Z΢M7̞E](Wޥeh2{=M;DnJu0]Q}.Rǚdz?;V¤ B̓牭,:+T"ׯI5{+ b:wfڋgŊE2 c*P=n*3r <5Oi6,*" Cyaz# q?x+,L731G2c:N=)HqNhiN̗g>g8O—yթ7H/F_@4)M<ظ:6]goKQڼ_}kCu(=[Bvt='_IK\J仪/+(bNNY> +4(Ya?'~kONe6Yբ1 Ӷn!UUWGqn^,ATVYq#}ԕXH1?"\ϭRW Qt;\TLjwQj5췊ft~f4}@:UZoHV?W+r:7BM KXqj>OZ0Y*bKޑ&Ij;e6%ƽ˼yg!YB2<„sxxNoq [!x2SҰ1b'NTL=БfL`4ccl6c1\wFr~I!|0frQHgo DQKX|bф\J9oǯu\Np.+]c4|goJ >!z5W~I\4\HwSlH~fsKh8-#`E7jϟS-Mي剋 D҉b{i2k>:4ұշo_&M֠YTl>y+'r|k/$j9%csL?'t!WZ7%N֝{*WSV|rܠ1Kb̈́wHц:m5/d/&CwGSޯ**alf9Ar7/.G# .G7[3 @ g'A _NZ ?Z_c0tETB=4ad31ȟ3JJHDa^6z ov1D(6 Q Ʒt.G~o͔pea; ;,:fB;b}T<29CUj0(vAP\wQMWVr)}7Py]u 3J9ļo\-3fr?g2uT>3!eeT 8Ee1xsChiN|3unZ%&T-zM&elIKjQt^J%YFS\r^[.gŠ)J?|>Ӷ^$G!c4=_`)|<ϳ՝dL|W qݓM~VYjCeҒpE`??c5l7=?e˲sNJ jh2p[}HJ$EmW9oCHQ\4+g][ԫt*I8h,գ93?x0S~qAL]S>[²yq癫iy׵mKufy!%#LfΪnUXϵ W0"}t9wgMn^crEtȪaOQ#H=g)ojULwBy%FPJB1<;.vyw5#ؽǎBt W |1w!>OJ+ghISXfAmq^If3O:h?k'䙶/Ut"㜡"<->5c.h>%Oˊwb^$>iK`XcsTz}/ MFU)|XY*(۔sCC^~N^t|i1l%^t֪_z?XٿxYaz4H9}hbΗ-O>Gݕ R 4x#ַHP cpboh*pbb>/9CUγav(EL)#0`+kЪ6Tq ӅqF4)))rI2!硌eC,+!Yeb *Xl@L #&HظNGʐ~TF$]9$f Gh gH+ƹi/F{}^<71}U $FfZ+PƙNVsTHOO(BzQ @E@ @@ x DQ <(Q( B!@E@ @@ x DQ <(QC4-_{SL$Igv!6QْuCX?wu?r~H8s}'E9md_@{vmZS3|;{fٻY)3,DMkxǛA4ߨ Fl4 n^뵍&N} o5V"Db;,=zի`?Qv`^7Vtb|4iUֻs98%ƹqܬ6.tRIF7yQ6ڗoїwqᇒxMwVg|ʞ6ȿػpAY"^@`JUzgrrTjP5QpHJJUVlݺ+'@Foąh<>+*6-71h&[4#)~\ugnlږSܑ4O.5MnY.H S̏0jYZJq ^nǭsa͋4zn9i+V8/,Y`$$ber^˴q(Qwpk*K;NJLL &Lcǎ޽u}ՄgxБׯv }Jua޹tMi&/m6‰9Jf׸ YAڹTt]DV'eL6=4h=WۗnCSVZDGɰ˫h:ymmA|gӥn sqHhĆ>+Vє+^Wӽb@m0CԳTN].~3)cǠ51]cm LW>7xIX8#?BW0U4*UʋoNIj6Mi^,ATa 57aXG/LiSMB[Yu+TTC-[pі~x?}q] YƪvT?ܒM/3Spsz=ǏYfٳ%:fQ\5?JXN85zN@Q"|и`KO$WIW'&# xg34if}2vKM|'{CխPӂ';)WHnb )S zc=gS4|v5'3x3bQ}2iҤOWI"[ߌ=䩿m\Bu5TnCW|ͪR_%y>ڸи Jޑ&Ij;e6%ƽ˼ygSW%$#L07ǰUbɏ's9uh/! k#"?WzZz#X w?VNY+(XJzQ A}t̆TZ]jy61k]`}LBg2;F{pz"f¼ᴌs(Ze^k<\\61dBmiV,O\^ NLB@LFM:Lh8sɏ1O>O>}:f%>xuGݯ}Gƀhh*פVgKOna?=P~W[y9([EΓ EhMX0ke섣0֝fb׈ IDATIL| 3_?׷>_'0~~do ٳL:]va6K%/p:5P؜nzxFXKQ[vG&lF6|{~?!I}mJbsOpfe\:}jm 1ukc/Ke†oʿ/EӜIyCg^Sq^7ͥNDZN46 OqRDF>p%([,;w$*5:,UQ)vi'roэ}7tk;nogM.QW<)}7Py<:9rf2 ?ZyYrK ϕ_aj^?$;Jtttzo袐cje a|WuYI,y-29?.fֆZ<ݻ,AFR8W1z[|jDz],}KO+LH=sVS!;|LAR-wSx򏰤n8 S~St]V*/=R*-@om ӭ?Q9;7jV/R >}ʾ#XM&%%E.qC&8233t莍C d7SgVewyD7ŨqrËG1z?XZH. M&\H-GY̴,:_BB$J&x: *Y!Bށ߄"A <(Q( B!@E@ @@ x DQ <(Q( B/E'WbԚVRLy6ox󶻀i_>S]}׷^_PB^H!!;y}Ȭ6CC")+^4+#.v`;yڄ % IC"}'j@Uܥ YN=UFpx(ʗv1Q;f%=޻aVxOV?VY>,fQfwY9z(իW/g~z3n".R?iҪέw!rpKs I/c餽cXI$ICqX.ԤcG\ 6ӯء}`47g|D5v?n-{oVΑ2/_M?<֭[Xm^2<ÊWZ3|FL:>ӣO?1X=E+9αgՏ/gý3/,+O#&"US{SϤ씳dBܻm))7]tz)ޤǗ9=kDT%X$CzM*/huܸ3B):.ŢαM u슮2y-4j9e!k+f]#!_0a:vݻ (Y'`ZM{5߃~S KΥc}x9~=wM^ۆm;SQNN,GN7j6ChdmBÞUo/[p-"Qߦxfuwj#QVŠCp> h0h@B~;N5`Z(t;Q}avN72pke#+} 0ˤlHujRԄV~Z乇($ʼn[u!k?8ײ2Add$$"<ߕ/rٲT%ю%v߾}4iRҧäygX*C<'ry]/<_jW}j}kއ6ng.48n &n'Z Ȓb/;)S, ™OQLʔȯ/"# JX+o7EYoGoѧr b=SbmRz.QSv)RRRq UBLn2&;rnrI_OFb*UѣGɻTɄDqg8fC|&,Ƙh(mc*|۷+SWw$}GFj BcnT~Q M> Xҵ"K ^]ߕ+?'{07\9. ϯ{(7n /ES.MNCk&WDD1-ǥn`w:ϘqMߺ3g2uTvڅl.QHο\F؜nzyJA~.ұEv X)UK,5o<,;dw٧z*Vs 17wɾ5˱N[ {tOt&?'Η[ (m;w$**]Yj<3.Sn`Ȑr"BӷBbɢOQ֧g |A,vB,^ igrC"|KdW7-dڼlYu #tH1:?̌#D>{ R4"u콏p01o DQ)<-F>I7v79O]8_Fx^ŸS<^րwEgOu-gp^!51_^GNz\GLs2ZUx=?T&/Z]0#=Ƙo2I˞vΜɰnJ&pBMx !JB'#!@E@ @@ x DQ <(Q( B!@E@ @@ x DQ CV$,B̕ kUUCifXzC/c4o DZ3; _/7Y6;O.y>I3Y_{ܽ5[' ޑ#Smưc,lAĤ瘫gS4UtR2=ޤ2ͱ'H (O?xDe=JK\'>ヽؔYvn ~sϰL SjY9#]p&L@ǎٽ{7%h,T^ xZ &&ҹP[.R.-=ڑ7clbR89l }?Os8`ٜmâ߷ {fTqB@d>`#lyµ^H)65c/?E]y:_xaeZ1+)}Gua|q׹| -5Jf9_p=;wdzbŊ[:$RTtuS(*OhL*z4’nRLc|څrZ͆yU"~Jao'5Ug\})Յ%{1]X/C#%EMk_%ki<5p\[bĖqa֞= (b֭ϡC#W;Hfռ3Lw7Lނw8xo5z+AUZ98i=u{oAO ‰Q`H$|{b甖^+2;J3gH+J/gw 6e<3线D ?7"qy=˚S eZVr? /r悋X*&^i֬={,1I'6t,9y#Yѭ%;*D'-d.m}M#oSFS^Tf1|pEۉAXA Z'yh0`I8PZ049@JO<S81bs.wm>YEEΜNPn&?/ȆYܩ2sr"qewoü-tͩh1|Obkr0#c۷/&M*9Y^8mGҰtQ%sOr8 I$`IW4FĚq7/Ue*#CV^SߟqfMN Z ȒK|N}vEbPe&EyWˆ뺂䖛j"HY{d}6,!Aѓfq dv Q2v3ѧYxxd {ɔ=M^Cu 7ӴޝΠMP;"UTG%̮|,3`LWbdshs:)5u6: ȶdv4S iqb mZZ8X=EǕS3M5fGNcUI,5oRn9(b%VnɁK(R #6e{x[x(j#1猍9͵< 08|{a332Gbpd֌Csޝ&ĐOÇپ}{*LZD欋)h=:--qe{.gΔ,S@wbPH L01onrU\@U>5 wb4/`I׊,(QR]Y9>ޛ5!q|. ϯ{$6?@.Ɍ3_VNq]LUk~t6#pp8{,SNe׮]Ś2Ec&zy< s u] r@iNZΐwb2^DzZjr>j^kZ}:R 7RVoSte.4WOj6qy~?P)qLL \# oÖ=+ϰmjVh<Y;po;Iٲeٹs'QQQ%$"5fK/:C&#v ~Αb. @KhX(o<\H70=p}G5T/"XDQvsQҜ(ScDuja,v''>MGt_-ʗ q;Nttt>{2[؂>LÕA4HSՆTVZ\8nf؞U, ^4#-1~> R:IǍR:t,tLp3q:b璷 [?&3x]ѻu^wFLTt;?_U ]nf6):/ 0Lk=0E/5j b^Ծas9N_Z7LJ/9>y,hT(t+3w[FF({m#?{?5k#GY'[1MQcS?@ȕqHt~uƝ>SbSb8KɾXH5wӶtj}q{j~mMz0^SIea3rc&* 9aEM?|BHcLV8+4)))rG&ǒ%7V'.{: @ x DQ <(Q( B!@E@ @@ x DQ <(QN1.'Е9p,:O$@ x% 2qH玱}vlMCEKOYTv:xp=HVѣA$ڍľISn&w|oO҉wqcVX:NO=cGI>MCjҏIӍ<]yqn2dYѣT^OxXX*G<9(ѸI$ǎDĆr΁$d] &:OZJJ^n.NE y8]v.S6: ɇpq;sqc(F j'=#KJe~:ه̬L|| h52 ه *U ݎF]d08)(,D~زMLb6LFFAA>deeotxh% [F+si4Z'" C%.79G9}:AIJnn>/.W>ŌAA9}3<d#V_p: EoPҼY%c0)p8ߠ. i`̅ h\-d2.b1l-9T̢T(rrr(a$!!Yov"%|Sj*m!O3lYx?#8nt!ʔxr0>W^,#"<*T(}O5""",C\ D$%%ѪU+N8f4r:۝:.%AFgҩq;ݸn4vKrR*4 _tZFFv Fv]IrӺqlh<4731m٘ 2FB 1Z|ȱ]b2cv˪! ||\heXyq3p U-ItvI&z :ܲL cEFKVN*'LFjd%ݦUˍG֥,uMVt%%fܲG"'_q:jdG^A>.ވNg`x(yJ&& KXqj>OZ&sO8޵j IDATLUh [1~G>0}V'd\2BZ}Y{u Nbbb0a;v$;;O1ue Et:Q*Vhԫ$/IZ9 z#. DZ A,Ut:hZf?SCAaU0v;e+RN/-۩|TёqސFGjՊjAը9`\n'.wr^ sRݠAժV7S~Crc+c2qڜ%pR6neCjYe_SB7 Sˠ_$W[Rr %In#peUS&  &:rK0H뜛KFEl4ۥW6d=VVdTc+P8$$222EoQK0r&SF[ηZX zL:7&,Ffc>ԭYU-9J[ec8 Y]QnTEw$ nێ4`J4.|bdUoVՊV𵚑 }ͪ>*$)7NREBP@RE@5b6URD@&Jne Hn*2XIz:SWN\B%tTd /Ffs^RF?N(T O.*J"!!T`VV]FQ3!*Y6'V_Ő:"Z.^$9muG̙k T깘L:VP"yRN^!s0*ԪMq[-R6:P2ۻs\)?w^3.j%OmA6齄:A6@@vϠTPՃq bkɽĹv|m[K&+>&z.IsY%Hn3^%LztZU zŋԨyzJئ'48ɄAB4:tZ>EFrp:0lh$BmŠ@!heÔSBWn:n\pGP,8qvS Wn%iuj%WCc?T;N ^hjVӐ*Z$k]$id;ڱs!;X|$‚62É"!A~z_^Fi_T۵j^+ADCUD#u:LpA-?Azլ|-JCkՄ^CfvKE *Z[j r\n7N}Qns~Z^.cTBYE!EPa*(+j83]ݪhG1HJG":ʱ z.\(jUAWt2Wxi:-fE-C*E}שaLHrkxfc6[fKjQBzE1 1f"p=+F+DѝCG3FIo1 lM0|Op^6z%ȷdz.۲#F{'Y]ٙ+*"D6?,1l=rME0d2(d!jvwv'wNsjfExz6=~陮:u.{=a\})^7{~6^ݩ)}o _ 9赺p,K̛ pmzG> NVU7Ԅ|Vv*aJ5h-%UGP4Q,:escMdɤm 0: ̃ef.CJ\E෤S,8:96?r)ZަwX*,pZ ^S|>hb su!ݮ JP$p|_yy< X>z'V` (2JG2|z}Qzye||TBd@ו9 ԽN$ 9AIݶ0?~q;:܌sysXPbaI"LZ7(FhѓP]x`,v>ɿ=n;qFJ#+fڦ?w\'8ozpG^ ʕ…۪>.I'>wEn BǏZD6* z=_ss3X]^939K7##-DyQBVkӮb. BBJXEt[mryCż-!9Ye(20A.f} S3E}hԇR f m0 OX]J5;1%/ Q)SӑZ02%TeNβ1K0D$S* cK@4T5e)epB*oIQ 0u199%v!Ĉ04y 肋bsX{ez)6 -PX*.y`'~w/~;_k[;0mGarǖͫo9eVð bhM_ *dSCP,etNk(\aNTv;g'Φpl&l'G%$-uDk =(]V j9O K#k9JƎI2fؿ?vX6 {-ZMN>i(h/eZrϧuّ׶Ӓ#8<m2D% , b'`+UcBӑ"El% NaN/ ,+ # Yh{HdBdRjm S"G !4 }xAvϓsl7r$oX&.f1*cR@ȈH1]:Rmʍ`49E~1SYULIcO#89QcOA~=ą}&^w%;WZwavmK\jwv=0T B-`bbR.̴3D4P1-׮#g(d8FE H6'ڨMrf$H0 ʦХ(ɅC1 e8&l;dTђ 71ā5t-əB/qt,kȦ:*& A@LQ-PH1Zq0;=HNXP|tW=r)aaH%tcrVZɆt.l(9nE0&_lST 0dtZ{*x Aw #i"bGRYcl40}0P֊ͩ7 mcE,`Jnz0l$gtM'9K ˻r Rdbь2bn2P,=tտy>N~+;.p?3hJ|_q,S>,`w/{;˗!=S/Xsss7_T8űcKwcu X} qm4d5:Q)3ar<sTJYugPfj`i!vQ8ɈlocϞ),"CɷM?hajёҎZU zE)zIeRVr~d:$2J204 H`U|(3OQa-m YtJlmYN*|l$S!e>Awubzژ:s}avK>@cv.Mu %}1R f eq6K^_x>=|O靸"sd@x?+6xnKşmgb_w1|V`meڵ 70&ƧE$9=Vs4VtkO?~Id2.MS$>4(l#6mw$gixCo},j%4:m9r;", o̥jDNbtZme=D>_2/艱 .GʮX t:L|*t~= {M:u) > %m`3fǵ&2)N]XaabՐ*K +c hRdO! OBv)>S̸Ϸ(aKl3BRi-d) 4dRp-aLzӒKm#VR!FpgyNjA)+bVGCer6߆4&07\+Y/ dbz"Yl1Ty}^?yէ?{1;bqŸ`oiزׁSN=28"}8bvnT +}FnaIf10FAuc\byVLONkd%g)fptc9 RDQt_0Ĭ-Sc[~'r) _zOܰmwaR$"w +((# HAZD3S52.rnJ4Oڃo+Y #U]hIB̑qv  V\UK_Od7J"c(o``JV F.oi֧,u0-u+@`bdeFKcٖZJAYXpdxcJU˽^_ g'_X(sZɄ=uqByxB -xi@;Oyñ{w52׼/|2؁$p+{U_exDZ*b˙V[ع&2mc(.#o"11V7 5jt}d36,k;fw0壸av[v̢DFnjpB ؆*RI?6R4)L5y9+diC%ÀfGE],xXYY.R(lDAZ(- Ȥ#x=KL:㮯.cn۴TrEl6 U)}C%`m% \$2߶刴E;^Bl9 `)F(RBnG?0$=][k*yٌ˞bulOTmVe߳M$.CevC~&d8;Cg(˒~0iqTBMQ}Z[k}cG'2cسoan+-8,ka,'@P)1Gg#(RWrm C6S((hKXK8>;?bqT%TtV.ԉ 51j9\&,lFE zuDA ,ʵ2V13=&zHCƎݎЩ3B[&t FG*I:>ms'q꿮TLtQȳNKn"J(],xDp}$:$ 1::"6Vj QDiycOaAeT9^#.l-$هא y$#ܐR -'r{BaLaG WP-+@[kS-Πs1եZu#شJ۸ .ej Kk^fGEب/bPm@8bwHZ"Fȸ&f&oECдKx'Ϥ x@tCA&[f,ذ!zƴh[<;;{J=9^1>Z`;y.dRQ!09G8XE1bAx] GRImh)-f`vz)qN9y;nT>"2n aF*c;L}f*ÎJPNA@QRZS,س̼&AU:VYr`NLȼ(DbuyТ8 #f E-QHJJ7vRs-PZjFZM"t{4f(Rk4Ŕ4{1Q.س&ac1G442BD.N cX<~#F\c.Sen4kBx]նhY!s`wsTz,1DCv_$-P:p,vJBb2R9#`ǡ2+|g`T:ojcZEa>K՜}lM!MՕ%j&2)_S{ ھjtX#0s)XT EJjrh" q5ds;mhD"#]M%X%汦ܬ*t튋PyO= ˙>DaH9ӁX&_IpELΧ*ϩuS!ś-PZjqi;|T()aDۥP@ZzрFr0R?v$%!VRW0mú\\^C:R(sQja06$:uL,.//;*llKΫ\)ctWTG6[ qd(`j)mnc GUXAML%رCLOl`vfTrLIV2j'8p zE8jזEf:stL5i{6B2<XX(!cjcmr-㼉P)] S|EFlb .%K'ךP0}%"<']bs3xϥ,g ֦Z*9=Xy>0h$ TIv<]SNu׎0V+7DupR7%DS&Y}ZY]nXrRt!CbqД 8:>X5T*%4L(&*ՁZLݝʷP*rn*ð/vW\y]==]+)Xcf`j*DD}J9LMVQ)uI%t+Hh\3 ($y!Z+?>燬)od]?z ;RRRҹfN8L8,&|J]~x (*lMx!?&,mtn,yrqu+%,"@1He1=Ղ żr4|߂ =2Lc- &Mf*JHl ݰ:+\ l x}S$1m1I ̛yP =LMO-AИ,nNeǫ"dվPryS ϠXbr":הn6sFԕ{fjjA.r\N\uU3bFòm]H,sYC;g IDATACbpJȾ٭#]1f$D6UHu߈]]Οfq1bi:$zGHohM/WȊ4i ֦ZtcXa\}Va&nnnB惐ew(!MO!X )YW.rT,az hnzu7ʶW"*M`}T+%IWP -Y@!?>i#EӾB%p̓ 2GI֦ZԪ}|3qvF&vQ)i aX_q2qnLԓBgy.F_ļ 9̉ S]/( ;Sބ8Q/.,\mõUxh72@f<# CP)^(,0?TR20F J>`u.2+)}-m1E4jlE47={vkNdI~vLa_#8e+Si%X\Z vȠ+o~/T؄t"|R a#`LF(Us1|vDVE'CR1/Vӌģ2%&+&}i Fx>!@=2Onj0 }Te=)R_m)rZeYsaEfPɻ8z<\[EIq o1 𢔸hIG&W2M:=*{e$҄iX[% |K4aG횶j{ºȂN+HLÕmAMFtA=%FN~O /$z2Fp<_]4Z>Y pC`jPQ[Btǎ%٠E}!Ʌp,C-waF@XGXdAߺm*u@^g ղ? Ĉw(g,VGVЭ_fR0aéτ'UK:tNwx2r6ERg~d KGdrV0*br4VU>,C40q0pR59Pe`7[ڒ QȕѨs*#E6})ZQF֦Z@ZҩrE4?`w sff䢾Zaj1dʜN׋d(TL^$"d h})~dW1B9Zӿ/R<-}2_\u%\o¤ժ*أÉlʘ"O:*ȅaŲ EYK2j*4եnGД/ 3줥aey+:FlAAݚ0]sp˨78u NމR1+,mnO='Nd, k ,yچ̩q,ٴ/tK$ rR(ݙZ@tP2 5,yf"|6)ޕylo>B討5%1cJ+oEPtmT+X8ސjT v%& )M9bA$-N/%@t,y2[ V$/|jlv-VSS6L(F-,OL*~15%$gY(e9Ft Ek"v9*%4ǿe4ՒPBHV8>n4idFܦa%xu(QDJn8y5 L L#C[7iH;94KpR9<4/d$I<]p`ﲱdQBjȿ 1{ȧ\qIʸ)چf%ɏʊm۶pbHi"GP!hAm$ -lT+2M9(9&ŜA$Lx+2(+2Iv,eȴ9 =SOP:6+cbpШX=!se 'J3ٗR='s0LJ`#22EdAVtv JZ2$ 9 ̼%7h(I22=yfP_̒9[ť[0}D5[fex VJ%1̭*p0@(a;t 2oG -dU^g%&n,J^L@6țni9ۆ#rf:cijcuid_:C1~/v۶02r4a|[ksޠTjE{tES]UЬa(R +PC̲beUn;.s)f K,''%$WW 7 :1 ²Kjlrn4l[K0lV3c( JNM^.WHуFkMXY RXY8vKK R! ۄBF>Gm$'1;7SɱR fN@2)`tMsmKoԈ; 4}H)T&@l-݆kE%G)K[h1=UWBsUv;8>nm$)psl0Zv8@2%w[>>}Nv`j(n͵ ӗ@SV gDa2邀 rT{JLіbNE,P"B0 w(h`3%x$ÓԴ;4:24<+ LBvBVk%"^ee v{F0}@Xl;wn=ǷZ'l!f%>!⡞z0-*r|jaGR$;PVcM*bAף6>`M,Gp}sBbsmU*=Se.هm8-Š{#P["ڞ3i{t&h2"!0Z eDh`fˈZmm%lSFJҩ-PZk1TfbbZ:E ԋl.'U_52)ץIJ%ya7>}Vx} c PT.L'yM{'jko L_<>P>: ( gK]õrkGF(biGPK7kܷ5 K%q?#YT!KmGdFd<_260=6Qm]!b¿p;@tY<'<O{C7|GpsC㊅0y4•~u3}C3=!kɝ7|e ֨;2qG%,eti(9V%ѱF=a&U8"}mJVvZA_}FtNBk[-ap̿h*7lT:Nv LD% E7809< ΍̖ Cj ǎInUn.}֔)նV8Z }]җb^2) {ĩzFV.YG$La\ZTʜt0QDEe\ 73ӳ(% om#SkǙ&ڝ&/վ&FZ_vV ;Nr+G.- -iDc{~#3=l{#mZ(s8xuJZı#RMf>錁Gr2iT`zƋ)58 Sp,ihaYx翊w\xOOލه< ?HEW8*b϶߾F"E(VGKb|*o?tL3l E LMao`1TK5pm8XY\ݳGܻon8eN]cmuY&bEVW, 1?N\w!ڵ#rt;a?Cc(865H%R~Tnt,ZXsc/XP|ll|5@Ƶ?v{ (&!?|=/#q߆keD׾h탸V)SN{.x)??ᅨku\wәu6X9anz)V}vN;M}o_6܁?ñ:?%m (1w;魤\BjZ/4DMGoFeіQ~ -DCef'd:o6bZVCY sv-^?(a@C&h3Դby\^Bm#W;bhYU; Ȁ KKj߃Wh@nS]C\U } VSriäxIkv1Q)'$gE|m1ymyJRj`g#BǏ.בK";s( 8~lp~n^{oח1>QVi{($IWxŜʦ#nyY[=.7$G3f1 y {LO`&l&$ZFDXp*&2DܫDk3\J>/?z!{݈w.WzΗ^շ o]ǻ$t+/~|?Op7ފGO}z_.Rc6 ^qc (J$v#VJ3;OD 3,v ¨hV 6"NJ)a*!/T3pHjCd؁З3y!gsJ9=OZ zdẏ,O2g<~pe?q%vZ^Ji9n2=mujތB\8pPrfKg20T3CW&ָT87H8 .aD s̕wS-8݈ig˹J{2&&J8힐vC^6D"eIX~_$ ҸxETSr8MyOL<`C馲` ×sq}gqS/Ƌ? OxqUx?}"ēzST~?v>.8\"zW݀Ã?SNl>~R >u5Oɔ~ /ϻg: __7/cO;PKp[æË M̂Q$M6ceDc# ɏ/±-)jS;ߋ3fφ{4=rLrY| K@]0 )f;x>C;deJK0`qY2Jpt S-1 wH g o>ZN:<()@W&̳5l6%sN C$GLzGK'r#mE;c9~8ͨ2 1sd:)q@ƴۑAb4KM %SM+ŻO?\Gc/*QB>x˻ z򞟠Aqمe#%_O8Owz  ,`+}_fvSSF8~o^ } }S3:gbel6?o٣O+xԛ#/hkQo}/Lz.y \g޳-LsK0KBK1#1 %fPY'\DE |fuXIP34(02eLK$Bd;ؤ.%!i!FҵZ;_^&,( 7hUح G%.i@Wre^;F[~"AQΤn.PPrsqlG@Qf )Mu1z_ԸLL!z?BUPxɈ~Ҏl?`CV/yMuӴlULTJNl܆lhcߟ~_zKpiY9IÃϜFiá*x=7kM~}cOY-{01d[̀31} =;72@w a?8g&GޭA,j;_x>.ETDz_e'}x9㚙n; Bb *dS`"K[n:Uᇄ}a@Bia %G!W^(@"LL4ضҺ,ꞑ0&L%rUOSbX+W\;LQW X”thi$ abQ%G:Wj\(˿![eBguHISBoCQ=ODpF% NA&9bVNF2b RHC>&ꭰ͛~ yPK92 3Pʛ&6Je;UW+Ϲ;*E~ :\w>yxY`*.͝B)xϋ_+wxw~@:Aߍ'?HrƳcqg_+s1ya~eۯmlq~ehТ.pL3#C__$l@yEЉu[chv&"EfmO106샩@l2S?G >N;b|YGǫؕAN3TC.jyfIN2.HXc(CaHA%T)g*v0y(cVް8"25T8V۶UNy8'7zB@%;wKiŮyA.7( mKp:A3kfV|oag~Gz\{o>?Ut> !X<|L k._?x'< Mhm*;x.z5{ߑ%:pgm4GAQm/}t~Y7x? wp[{ RfǠWUE 4uH_ RlN*  R@be U5yq.9)CWwuABU,(KLT[6k )(:4P,Kىci R1aZ# [5e%~:JQlײ:6pA=Ϸ#D@e]&vqNN~PyķϋY0Y=qN8>B|*OM+TU; r:.}nPVGb&=^=|O{c{9Χ]E~WojQ÷w_ ܭRƙO+>>~~<On `3{&\ X~QB kL_W?r?ilDܙe肁\\Z312aT#ɡ 1c15W,I[0K3_adKP_*Ƽe#h.B)MYLCKǓ:p!F J6L#a>AD1eTvE}ٻž7=$.v7` ٶOnnEst P6Vc]\wee71s3a0H˰"wahj$E֘5;kڒu!ϳq)h6hCI+4%-Uevxr RRP;HeС5t@B >Z$Dzꢐș(8/瘯hH*ˡʓ^{'#H4|+5T)3aj 7j/y]U^t^:Z,D}(EZ [`.c~~>V:OYq(64?XjcJq ,K%Y_$"nHȬRPdYsi4= -yazC4D,L"в GVaŖ8PH'ŜP47OVÜv2K2DVZmeB\9. ^e;<ΏN<56U(ƨٕȹ!SC̞E(l tULW* P@>vb̶Ja)zSkj, X4%[)*lAߓtVyx>0+?X5 [yc㮣́))Vo:&؅nitY [9ih`ӡZI^G*QDf\h0W`v+5KPOئ8h "@DKkT݇fTrk+ًh@Bdgn8/*aMf:)fmKi/EυBƅU,chUbJ>q>vq}Ԛ ۲+U29o\S J/^e$֣n U( urH")#N?$Ϳ*"bmוPFHF=/[ߟ\a[kkKrQ"pSCDtKrXHD)#әڑۗq`cdOIyl2~R٠% ^D"…3N'2-ut8re"l3<:.;PՓY OuّrHNP8?GfMpRUkbor-N\Z)av%Uf}Jq%UqYatٔ1?ޭ&VSM3 . ZXD{f&(Ġ`h{UHjXfŅ0J^СsJI6p}O Q? C' IQ i|u@a= R%0\2Cd!'5cI.Y={M]HpH<83+ +>=ǻ[kSX m~ J@$׍#6,tf\Y `نw7D,Ybrlis@N #U&r.\ULXC &j)fHaVQyhD F-MW%_G?l=>2/Tu Uu;J\a&7#6jwx@qkm%"Ό '7|oF3KU|ɠQX܅A% k&HCW$7hYl$wByC7 ןoě0Dd%Z(sc$D4Ο*oReŹ?ΰAeXAkZ _%M(nM:%w1/:!hINZ;ڠS 7M "dM-t*-r!.PT%Qi 8G6:D @α;fFR> t< 3ja۴TKJ#C3F~4NQL=_x@qkmb6ꂊJnlY06 m3uN26A"1=U.)Ć6Fƶb-NHP@ GP2XuDžՓ \3Ҙ: QT٨Gt^yXHM\y{ERA|Xw*[~Bxv_tBE:ĔNqlk(@ )bDvjyj2הUރ@C.jqX!(M9I8!!d tqpFE}3̤ ὡDf m` u1{JPn {lb='NHQ:k ֦ZQb*":C VF_1H*QXSxT L#kYНf$v\=u{,էia]7%H*XirmJMk9ITc"s۾T@PDp9kǻ[kSF1?䦶Jz:FƺhcM-eiu+ڱatbE[mfaوdtǒQGUhi6jw(56c\XNy_?@{ǏCIbG_uZwyEZQL'r?3̈́%sX*wkS{FwwE)MBC e:'"oWM+{+%&Lw3wdm/wnI*rb[͊{}m̄E886͍E~zqy=]~#歇ULCBox}A?McCq.,>x6Ä5b63&Q/S5z%ݥܫx:[$sqV]w%[^c Q"uSs=DV7>}_p~`|/_0~?ߒVr*.Rhg O8Q`[ki؝'L퍡FPU ..,'$uu3LZ?8vcs?*6t3 # co>KDabn(ltMC0NKƯʽߌ5KW7ke@GK_wp+06 r`^׾_q]?j WӟfA?p !Ea&}]z(K>]ՉKJ֫`esu%Qz7-"(D|6uDhbU{u'@(-ژ+??e1JzL9 7L6uXWtb܏A>Bo>|Oxӻe3%,,A\ct>=HYQQ/QLo0|wS[ى;"%~CO}׹)/<`|rkŔ􀨈 ڋ9 PH)fYR.yA Z Ŵqs5m'C0uPo'i7b8yg֧?i|< .^x]v~P @I"=OF ܅\~'( +_XO|>p1ʭV >_[‹' [u+ 8oba0\מCH:LCuKP2 w1cF Rdᬖ 뭙zRݰ_Hm$ BRz"`᭎6+yyaȆcޕWQdSHBBB $aQ" Y\pcQAmPQљ8?3. 2(" ;@y[E’{/nUw>*(Rƨg Ǐ?{1bҐRF!8ғ`?0XUo "86ȏNEt|K⇸wWfa˺$tjF9m 7ư٫1shj<312cSrW:<ݡҏWG4I 9t6u-i[BԦ-gPRVb䒙D)Ud&-֧ .'cS?;}G*Ȇr}ROWeܱ5^ٝR9eXq1~d1nyEHJഋجq[ٴk R~3W\-J5wA^:T n^TUh|AGtp̑u+f;o( {VŘ%GDN}o'ʈN^ms݉_Z3yb 7dP/vA}_}.툢RJ^KjF]##$86}CK.Bh`|*yE48hY(+@|\4L`VnO7kd_mڍ"I܆b.g 'vn} 晿ŽoeN~q/*_w+ =OM)Nk'uqCVv83 zV$%ƫ{31X_d%qlqS6\֣\ѝ )Um[rAjnc6&a_p5n.}hݲ)1(;CTd]{ ձ>,JD2O$sj׸ק+xKcFlaϞ=7n}YiӦNTT]IDATpQ#~+8pܮ[_3)o㷯fY}ƈx'O”20G}@hJTmBSWꏸ)=i5 J`zvQjIX^9KѢy97#gy/v=(DeF"ܽMcQPTmKh"sw6OaǮ,>?gRl"ND6 uv*M3<ȍdEcǎŘ1cb&MQk 5$yk|Yŀ%pȿbHmaaˢ蘆M#: w2>N-m+JTdf/;-Ue9Z-w cLŐ*f-Cc u%(/DxoZzrsI!:J aYXTsLZM㢜Th^o  cF 'g9p(EQI)eEE%lwzhjn1ё8x(]xmr`PLn?!tMլ:>#f+MKOuA"," 0r(8MDk5=ɀRZJԝ="^=SدOgt딂Ec'k69F+%*Sȭkj :oA&7ܼ.+2"3є GGNl~7'%^z%XτHJ| DZa4#Ԍ%b/)6xpd[S3g%f7FYOY(X?36_[lP {澆,do;aV`bdVNq AA(VRZDHp$h_RaǮG,Rl0ɗ1xr(^CcN:[ 'uIpģEVS^ {_ cȐ!m ^OňJ@DPk\;a01%)[E]s1%3JeT4o-N"D &YZz0k'>r;na{xpaxdD.1hV8ɐ3R۽ ma-Dd~܏6$[&;wgsF&LRet =CGQT\VI-}Ï0[&5IURrhn!q&r׋=YxݼY,ǽy}tLf͚|+Hш /FK1(xQ3[Kp 1kVGr1HoD+D(zA,ӭT1H"&MI|;+qqM W 䖡ʞnJ $)@"9-QB3jH#")+~jQQ)gfaؐ˙8܇gn-m#u?Wࢶ-xN&hݲ){ e"svwW*,-;Ŗ;N]Hvnp)"eS۷‚%kXmBf}g";;jԨnZZÇQTTtV28IQZZn``Zw-U^|F-o׷F˾G0O.$Joh57 ђަ!83vkkcW6n Cy\ʵhnޝ>;]QYŶ+N`Nc*;57]hhhpڴih޼9^sEEEطo)դMR8}R\~=# &X7(>>Cz8,7>{+zYg3af AꤵȾwp|sH&F%[q#(ZN0:tpUm]Pxl:M?=M'Svx|x=YaDUj s["^.Moƒީ6p:}6}0H&s" " L .XBő]qY={'b#fth 'al!Q[AkaI5oؕ+c=ZgIr u &''G_$Z @`tK6U8<Ʃx'k6\0$GYƮQa2̛:zk<^ş?ArI|}=4c@B4$'!!A_ZkHޭ62oeae>vm^%+U/Axv&E 7Ek&E 7@𦡡M~ФM~ФM~ФM~Ћk wDVIQUH~^~m5 M&'䫜K)0EK&c}G0iMaxw}*9B-J (@j9?,Zpb-S,́*ӲL8)`> +(:tMzM헳 vXF!9,6@0!LB#5` y>βj,j?"3᡿U=LʡF7nz ˮ>,"xvdGu7Y7 /€AkdiTSjjC.v@C^⯦Bg W&uU.'ovGʹ;U0dQ`01ѯL729 .O!1LFrΪ SZK YI3e Gϥ bfKR5\dÂxTG' Rp̑t Z8^T؆V*(⑤c:BFe˄uT T} #˱$aׁ줇G('4%A3! St~Ӯ"Pk9lQeQsjRp[tK31 $Gar;)L#LyP K8K ;%m0B,IVɔQ,lmr6T>fgsv0D)0Yyǃ?`јIU"Zk8Y7!R%PVQ6^Y.%U`)Ib(n)U/AdlnRj+bTR~ %7ڣS."cG+$;dls=>Ӥ2ߖr aRՍWU yAҖ,CJZcR_u\Zث\pE<p2&1rMJјPɴըr{-#ؔQƒ8 g(H7HS.Ҧ+a*WH@`YHdLM&*uV,LUW'=dn#aӰaff+zn#Tʜ!%P !ȧ&rѰE6&E wA:J91:[UYcIզ+s,J<=!l?r#l)ʍelR1(Ő26Fq2>f& pt:T+udVv #KC1PaV˖6X"Q W(Qk;=`LY/Qar|$!kdJ]Lٰ*I؉*޴w:`.PqHSGHh? XzذZtVdrHV U吐IeڡFR*$&i۔r)9yeA& y K >_QJȸr9~ԑsԭ:ATӉGeIO~ݔ5IvrZ2Bv& Є ђlL&8اL>[Ln^e brT*cxxQ(5-:PY/oUqc"Dv n۔V7dW.-U6֣51h; 7@u'fpIfmP@X69Q'3TVYp~+IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/open.png000077500000000000000000000564361473342170300257750ustar00rootroot00000000000000PNG  IHDRĎFy IDATxx$Me e#{˔ R\WąPdo V.tѝ4PP}V_SY%!"r"_ E )"Y!)"Y!)"Y!)"Y!)"Y!)"Y!) !t#_|Pã޲DƥM|3殧lB|6Fsl e?]}‘U 䋬\~$ BOstq\JǘU5h4~Ҋ͛M;t_3guѬsls ӓ07MTNGوzF}VL_#$0\Zw-[f׀S85 {QğvV&NDoq>L.aCI rTX2%ΟV;ơs~(9:NN~ ;uעC^ 3ݰRgRV-jinm3nb0f~$ê `B;&)\;s =Cv62ajA %tgѭǏDMh&-g{kRSQ|vAio?&Cy_:B:PNҼ0cM޿ Lyi{_ O02ǎS9ndiLW{5 uAi[By'iJ:5t+PR s|觖ܳէs*x$`~n7/3(!1kHq!4LM·_M>+!!؛ kܼb MmzjΌ_sԷV9ejMJO!чFk1:9>jS8$f!uVܾ}?`x-M¯}j`dӘws󛡼*HBȢi@#GkWw&qu".BV!1) Z:S]P( *1/Zzu" cuުqwAl˺/1.據o=@u^uq}2_|:, ܻ3V>)1kק|6ju'Nj'Cy֎ZT7dH aGy;nC:q#I"[IeKq]Xt,m%2qh:Νz nwF95~s>`˝{ I5([%)pV3[Z414*h6܉4i/ӵ3x;(l:w#PM{k ;*ukV[t!kܛuN\' ٔDȦDR +D BR +D BR +D BR +D BR +D BR +D BR +`?3Fg9woS/gD\N@t|RO.~C ;{ _c$דI?GB=nIo?#4wlnwON* γ62[ͷ )\=QPEozGl&Rv V8i1\ʯK2gpyn?ȈDhl&C?p2$2#k9٤#C8dږ=jV)Dʢzv#/ZǦ?7r#Ч1HSX +uH&גo?GQ:7Vd? N} v.÷e|L?}?3XOy^紱{Ka?{3n/%-#;P1cv,dwEFx3YʁqWz`ޘӞ|O6~g)çJ4+3!@sلeע/٭o[2m =wذN=e/$SĥgZ(?\+˴b)@Wb"j#g~ܐ&>`)y[ /U 1i-Zɑ3~gjV.ʢAr#߮ʞO\KsUj5h@.Bw긨 '`ǘO )?Ν'3#]%πcIlu8I?<¥ u6ݜfn7c^OOcAK9ҿ8]hg?HXbyP~_4ϲ3{MnoB7*<.߼8ӟ/鴟9~.ayc֔m2~C *%;28dg1q wkigf9hQī4L*@ٝ7-lvODcC1,n߰fu452E~6g~fG̷U,LiSyI(p]Rqo{s! g_cPkB|YRϔғ;RȜm+ѼG7-Әw O@~44΋ FQmJ~Ns?ӯNI gs xU l:Zr9 tħQ- }!@s`~9$l}**6 {sBGByg뱯hKyd?؎׷ePig/veA204ٛ>3߳[(҉ublI(hEn:yLJdm<}33,3, H H H H H H RJa|Q.&øtGle͢9|٧?TqЭ|~ Agζ>fR}17u$/x.UQ i #$uƋ* ;g^}+ETwPwh6\yc JiW8h'IJm"rnj."o(#q%9;D,B|'K٩$$$`/k9Fb޴$Ҋ,#(:V2? @im„7-:"X2{bsNKY۾ѮtN~ڵkSn7>u65w!A{8>m]k-gpB@n$=3|pO$2S`>5{m=hK+BiE3̋ dxoC͍+V5(3|ZuHW//3_)qi*ubֺ3tS:) ?NO7y@"314TID&P|-f bI뱈 [r8ZN=EԄ0%vK:wi4IJwx~ܕ[jmOBy %e|uN$fXҺ+pD3q5l CUnܩ2ř=rlƸk \\:6'ߡ۶۵ F2ž#oe_1--2CJ-=iܦURz7ߛ*[FmSP|&Fղ=,{f`OrygI~5J$xø5NUjRMc gsXkp዇Mޣ"B *qČX')#_eAĤ̇MxEyϤ,,~^ZڠDM ٹK}aAt8|JKʼ 6c6UbtIWjqZ)Ѡ OⷆuM"/)izTJL\O/I$P;NB=Cs')Ty!_d35`jͻdWc$"C/}AYWtl_pӚy)2MuvZ"%p g`ۊ^BNy2y [,^_߷a+͖K2;>ߌa>OBT1/͉r0M\~,[Es5:IF,Tݜޔ?Vp̚:ߘ05oKd}'Ƹ2bnIceLd웟e>=g9Wy$~`ڳ:-^'ySoM:?\ ZyCK o+즋vE)c?Bju)&/|u^jDbHج͛VBBme*ZgH%"qC_x*{ѝb_4;~Л>JpHEr3(,/끓F݋|ٔ d d@V@ d@V@ dŭvDYaG {J(!\tpp_?'55Uy!)"Y!)"Y!)2X2Y+ c?Ŷ?wS~%:/E"5xWGD:zxYR]eתD uWnx{*_e p)7Foƪςi[ҭ)M 1/K%H@ J EI R"+WmgF h?.E.ⷹqߝfUέek~g> ȣ_>kAؼ(9 3k=Z$NqI8\ɒ?rS?kWyݩUuf8\o:YZwx:HqϧܑA ğ\[өW2cILCGn/>S:tdUUԧL5R&WU7H%5]R)olllۯNj%$fytDjChS`aMN2'Ր|z9? SoQ/_D}ybGuH;o+tZ*.ep{cs^@% lV ed!#SETMf0(eI'E'z2!a0XPBjoJK{[ G)"Cvƨ}4m%2KÞ'1n^i'erq7lHm -=yꊓY"CvJּ=uޘ퓙oݫRc<7.C.i۳m ϾN*V(\ Fӣ ֶ"rFK!> Uh鄃C&Nd /,G2Tae뀓C>#+l2Ž=ؖ?ͩUiK_U$6ndS/=<iIqҸw(,VdzSJG&6UP\5B Ӎu("Y!)"Y!)"Y!)"Y!)"Y!)"Y!)"Y!@JzBC+,jIk'd߄fgc(zߤɵ OC8kJ) {"(J_0),`ڔKsDڕL.S'j G i8?!*KBJ fM\LLD!eL'PN$%8O R"8'tݻ,HΈAjJ 78 q))GpfY"SHIMm{ſh.ēck z_d/ۑZ_ n\sbݤ`6Iʉc孴s!]E\tA;b~k'#+,g},A_/5%G\RAʹ=^Rc~NxӦsȦBS$D‘ؼ5H?9DU.t/WsەLqR|Iś+lAڵ>C MI2ͪ-hFg6OOS|~Y#2m>~sMH=.RNDȨסKf*7gpw ge~OBՖUUPk#=h!yT8q!#QqF"<ļp iwbw77ګO^AbRqnd[*IPjp YҐDt@a$z[ĉl˰Fuox…nؒ k+g>U" gK&CRzZ.M2ϱ+Es`|2# ,ݩX{0j"pkER"=trԔ{Mw|L ZΧڝо_kmm .<zN]"u4뉣2wZ֍PΤ࿏flM&pQs[!$("X)'*R!@*<_'Ru.FND'6Qhkqi_ uj $;jwH +7u䨇KiH82e !l[z/ӣM߷ʁΖt IDAT͂,«=jP#Eꄩ'7 4૝%aTmK[mcM5ԢR6/*ۿYjtG'CMp/9qnX)׾[[/)+z@? / ]n1'ݨThZdžd,OlDF%D jL[s }M}?;2nRoYgUH*S b"p,_+Q\Rʊ':& Ɗ]F3ʡ"n"^P6d:XZ) Ž%ԧ ϕ+Z(勴6xm6'ͯ))t4L* >͉I€am ]ɘEj| TrD(QƔM_~.Y64,AڛYY2{ [k@OE;gƫ& VWy<=)lZ!ۢ9{ndEdr%REx3((C޼ 422ABB2YjŻ1]emWԛ y68[sZyƫPX6v8}|+_Sh)`ި\ TpZ[憫bJbJmmva~0ŕBACR +D BR +D BR +D BR +D BR +D BR +D BR +dHI2b40(KH佬RL+,^t(>)"1Gc"\A i #;¹8ᅢ貕REsb %{ a}fJRYuX&ݍ\1'f2c[ĸO>Ǥɸ9]bSʙ VJeJ.es>"ۍeR(L©_)ݑ/Y2<>:R0~#_cyTBeO)%G*+M)0OJh|Lzsֲ[_[!d.;Ww,u!ƝiEܾj~썶!b=#+(yR2b۫дL xR.h*9/9zP~ICsdR|{5sTIW ڷߦA=6o ^d3ðR@>ʩq 䱯ZZdsWo˒*jэJGVys( 'sܡmM N.QԨҩ ME:GغvԤ׿!@*3Y%*!;*;spO2)8Sֶt)*?MP 4ڏ~c ӏOeºax8W!Y"^~٘J?U1^?Y\±Dײg -{ -#ط;s=߳ ; +-Ԩf@R[MJ,, Dװ ?%FF *tz*Gr·v-f@NȉRS^&d#)v.@]hܼUT u}]z!x@dH}!6wB 5c]ƌTP- \e_ww "ҽ.;٤"%qn֢2;Qh:j+"O]&!TvIlRb¹eUwT⿎lzSÏ 8"ߥ2,B~uHp/Y rdchSK湜;;S(I6ORîޭV-k΂̼ܾŽ߫a%)7\fA;YS;9M5>T}4;A?yȦ$GB*',,4ZlMG.}%e׮]KenYɬ޴i΁uש5d$c~'thbY5-q4J&}@+?ȍrt}m YvEel69KL^v dI0SA ,7{&'oE<FѼkjQݻ7?[BYdƇrv:n zP:xk5Ԟ<,eymyԆ8uLM#ّJ^;MAH QRo-yDTj->۠H!͘M).)%º:}̢FfnLG>Sks&G=\JNC/#z=+W_~#Đsӆ&\9~W[?9&gF\1- MutS8Xi5X*$j7"g8y!1x0g6ɱ&jQ)joJ6ǵ% a|T+V͍VZN *=o@K j4U'yߏlRϸw(OYm)Mz|7+ߒ@F}\e} S)؈47nfK@o=ki?ܑqzSnWϪdđ,U DXݧ]vɄ ʢ0+%k/|?W7?&95&$W)S%N\cIʈ?\+tE T%Jט2\wڏʖC ܹciy[-dVm^g$ CӢ,7vOg:DFWQ[g$C8Neȉ d;0jL89#Ce8:cgۊ I\9.Vkx}nمSN4x벡dBMDLg61;8XFn_opb"deX|!]\\xwqt,}95YLN"9CB,8C;Ma2 JH) TXB2GHkUBz؀iVgHC=xK 3; jPfDz̞VГi{}.IըUOw:۠VHhޥ-y\&NO鍓/+ |36rã_YWHA[D҅V֧}-8b'-%6J'bW۪|ihvR<[w䣜7ToBm& sߖu)q8ꤥXEt6켄mo! P ;D BR +D BR +D BR +D BR +D BR +D BR +D Bf]9ʁqd}6Db$rrr7I\nBJ"?0ХKTDB8ϟ-vs!ж&(^Jʑ-Tz7*s"\I'Y>}5'2HZFsoѩ% )+ۦF=;UpK)+ uVLJ|[pku[JTjǗFӭnױv c߂s-ݷm-Wp4LJ&@^eTnҡ(.Q7=/FR#.w¡tI;P}Ԅ2A,2mAK#"w8zU1NJ0STA#(뗉qز/C5w\e[{xgi{ذ'L=2I4c2,27$/gХ{LfJV6 6GK`I5 .nUft=z3ݼ*io?Qocm?3 zƗ6K:wd|yh _. :|wm Dβ ge?>`ސ#ٰ?r|S:Ywڃ~ڠp8V?З5]vgwMv3'i(MOy* +Ӱ,:m1&eG]E *K.t-cw/I[Ek{`CcFmtԶ(J4U,;ޢ5}sM[ JjwJV 9ud%++;>[4mZo[{:yg%c]v\kG z($sasE*5KYl:ʳNa g{HŻ&/X7l<9<;O [ qݰ5~Lt9賮rlIdL+RUsn #* ##!$WQ!zMZfsKF (MSȕZ2s=]1݉qLjIlzsu{I:-ɾ <"(llX[PYYߐUz++j%Og8d'c?!߳&"v45xi [@r@ (,svZt:l?VZg:d碥ݨt6r#jfkܳP>7W[ z`*m%IQfdk%JLHGIdL<?u=3a"Dxg93 SIJR0%9))L'bб{|Rٸy_~/(co?SIL`F55*fME a*!> IdDžsպ?ܹ2qpwnu22[pv[pOLJrqq1BS+BV󐭴  OL"N6+CqyGˈC|xgѐpEES ~Nu\}I #g g!)"Y!)"Y!)"Y!)"Y!M3IDAT)"Y!)"Y!) Eж-J17HAod3}t1VroDYVZ,R7|qD||[Hj{2xߥE7{*]Yv̈́;iH'#+\!<q o %,JNn=_[ccM1}~&҆/F ϻw_ǯydUZl-94SK!a[2ԛE eیD!̙3~jʸboBZNq6 2q-ҳЈ>5:/U_(era7lϹA3yRJ#1:8{8ZLj\[ȸMyeۊT,FpuCt=N&MgѢEe?C6TXp GdHޕاhKUbWtvKȇE0&Km?Cg٦MwVEB~RrveU`$hTuL1bl*qKʶg2~#f*EG҉ØMTK K]]2qoa$B-q/(3# KyP^ERvlaj {ui=ߣKD6,fU#}&Y@@~v?)t)`6m9@8"fO方oz lV<۽=5߷-w كĹ^is?Q)Ui}&c!Ύqec$0yg#q)U(p ^5{7~\m~9`>ygQDJNK BJU@D *"}⮢+VDIQ:!tB6=3H@r{u`&chЂ_RކʱRq7X8|`˟+H^&>r٩*{\=v0fcSbi%˭gA1ql=CڡV˫\ (7p!2:$ ;ϖtJT\ţEg|HIc(-|lUkv?3$yM,i.y/tumrb<%0]ڊ]V>g9՞@yUblj>ކf]δJ$%%2F˻?׻iqSO|Z,*s%j}^V&~k1a# ;%6O=p~etEԨi$-]Ί^oҥK%22QT %D{nS~gYy4qZ ]~Sly 7Oǩ$nh"屸]|~X6Bι n>Z}z꾍\ ][Mj7Ty{8q ֝I I0qc9D1fmLⓛzr\jC\tK'KZAqA4kf',>sI? < KMy~}XgeY8ᑷuʎ6cONV9RA<mdgpo>pے7~sO12#6pِu?v0}@'):bz \1zfQčv G p?(!H( !H( !H( xAA*;J-@YX[HWWWqYwK@qA @QA @QA r)K~8oͷMTSC4Ο>=lY#/R/Sys9mt(8?ĝF;sHڼ}i8Ԙ1^"݌\y~BWЖNtG*e\ufkVUD} !̵*A잓8v] Lxx SxyR'& ; sL!ںDEq):3r9qyqs, Nv&i{#i9 ݗU,'_edPcǵ9#K켦sx opO7$SGIǼדτ!_DnfJR9݆ƥ7b|ߩp';Õܣ|ʎZoFy,sBh7>y7IĴD-3' }QmnE يq+8;.gn{˺;eYkk::Śc4{3s{SyWd6~~G$׶\8w,+Pc7%b꼴g?as2Rh=%OH]`K\ęl=U%۾Eמ&j p:L'9p>\=M:>b̲K>VDFg' 17K{FW؜Ag_7`&CZƐG!FbҬ;GW27S9N {9߃ ={M,ߙ,,;kH6p*2 ^&837~|gn:iV2'WƇ[ohuC[Fa4C /%n%?82 PwQ/YR Mk%edu;F?7Q} {A*o&5/RYZF^}.OeS41/[gƘF}sm %ZbѶV@ ,\@H_0e]!ޢl ʔ$or~WD|)GMH8H&4ue,lLF ^x9r gЫy0!%>#*B|mD2eNM|EJخ9>7J:=nn:A,RL)98^IP@~O$ZQ(4,_0v=H<EosQv'eC[χx&"lٕoR89ڣdB1{ -pm?}8$y'|t~( ݠ'+&g ?۸F&GKn!6&zNBTsn, h!|'GU0mhcS=fCsy}˲?zߦx;VuiJsm}f{m̀_xiu98 O%\=dce1}nF}n0/5?U9atPD hS?U]&/,BŜ;v ϶~r {'4в,Uk8nz}-N\M]V5ɔQ:dͯ9-<n4u9z 'a( b1Aye1{2}l,.jokKwA{y_,=ʔ&{,&#yYxb|u~d?Ӧwc_UׂWJxFjg_9c '"} W}L&+'ؽ~pAɓF3Ilf~֡9vB")W]OAZUET~+կ^gwԶrO!L}Eq܍(gb>I hN Vd̜L/'w[=ĤA!ь R#yOkZV #Emeo?!MqOߞaO@=1lܲ`!F;>KHAgo5w?z6v.(q$:0|;OĩDi(esImiөa8W{Ij읜Y_H{k2.$VUpδWPdcQVلh}ia4q5iVGc"m/PkِƑT:Ew^enceK/3ssՋy,fT,L ޥ(JgX 兕h]Q)7EE֔OyMq}%Cߙzٙ)ml@B7 7Xҝܟ R_s+̙|qbn r%^&=95A{?ňv7IйKƜ#lZ|V2gɺ<}?#myHp/9_-8}whύ-9ϜA[HK QʭEPeܲ:LVѻDL`Ai;e*6VrJ I| ܃/a-p$|kJXBnX7! axeBULޡoͻpO=tHr)iS0C3&}Q¯7c4e V WȵS>XF}oN^Bm|<ޏ?@'iReBF#Lz1/2Pdiqv/J#/mӜ׍Ip|b\p̞L{Z|֞^ 69Nhv/_m>FIәܳNuOvuM(ЇOȐN,XS6C!c?kt^iYhl#4ȆֿK$GU]u=-$jVeߋ:s'elbɶ,ZF߲Mr=6E'g3b=eXr+3&K\LKǯ~&2e##m=wp6dߌ~S'O&?uEt=ɺq, he'){+jAMXTb7"ʔmpQY/.D܍{޾9h[vU-1iXGZ鵔/5n g |F2%Ho:B#8۝ۏ)owN~<1&;pęnW툤ŧ]oFᛢMڵEՐ9)eљ{'0``G Șɱ]pvU8wg@p*]y)(5Zn: ܵgqW @QA @QA @QA @QA @QA @QA @Q('\LzZ5=R5ـZgkǕes"Y7D>Q M soz?5my*r)k΂͹pw?#ZىA=2fR!?]:Sfi0CVsNN33zPxh1 1pȊ瓏 o}4Wܑ34%iJ861FR-2eŔz];{=Luf~W]kIznmɝ͉ne k2/ˢpnhUFlP6b4k,:ry ߆'smM҈$i+$Sp;,j5C9k·2qU%%'=YvUZy 4obh0לZQ.O38 R( KXMVYߗkߒJptm,)5VRVTB:k$Js.]RlJ翱<03oTpmw"$/~z]| K _\A0V`"c,J % 7zAdXVW\%1A&eo|jFРʞnC߿qgs.+>ź/VD_FַX6T( Rc z/ѯSnI\hzcN~ /b-u ( ~42e{ z)fl`Y%dT^p{(L2YJ"eFdK担t8EmҮB[:˥ر&7;+ (p3 ;rlKI(m\l2b?c M( xŧX;Ob\JoĮЄa/v5Ӯ&k|}|Fĭ/3^KS ,aMMs&GDjJ@jN=CRR.}`hoC$У"Q w;L8 BR( BR( BR( BR( BR( BR( BR(4f@pƣ~ƭIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/playback_speed.png000077500000000000000000003024071473342170300277720ustar00rootroot00000000000000PNG  IHDRE IDATx $U-NLyסּbIDD,AiQqע<EmexJ#دj;A`/"[Fl' (kSDs޷>'22[\!7_~d͌ck֬YcѷZG|N1PT{ΟpUkj̛iahJMcPS c܁ j@59M sAU1aBJu[um۷=f)x.bcwlݪC nl^Yfn<ٷ'&GǐQt94XZ;2ף0>sf ⚡F RЦB !G17N(@rEQ@#7 h1$-Yz@,osܶȡY3okG0ݹq#nq14& SK.R:#87P@i_?}+7:YA)mVu 6j4P3M4D>Ğ !Pq5 fDm5 qt z+0Ym dSH) Cv;6k/t"YXѥ5'3u5WivnNm jt8:t` W6vSF.MO|3ㄟY47f H] *dǩv~ܷetVSRӄ:puEj{*6Sn}VYwчmR ׍|Rz$LklQ?FLVԃAe4Ѩ7dbNew^ABYEd[)#;ž.(.B6i%|զn;3K]f5q@ir) :uzm=F:*a5Ysav .tNb[O&Ӓ~OPxʽ&yM|:ߘ͏yl72pc>O6.@ t*mmf;PBE4rHZ gT˜=dH(ʲ"0#N0na ?IFG19ȌX>o Fw V&Vݚv@\jxuvo|~A &GAt)kkuN,8o86Gfq4P V]V&RNy1EAN/tcyᨪr 'P's0Qʙ'm]o`.9gyYOjJ3S[.`yv; uBESTHqlqA}\L5RzMY;,h?}۬EI ָ#Arj\+.4@eZQ"ڤλ?QjMjITLn>6 j3\)S.Sݏ5:ƆGj8"(1gg\':tέ]ڏ6,t3EnZC%ZM8E!G2HDG蜞+[qEu+*s) xTpVAA!ױ0>1v]va(wl[+I[)|wle]c#Ѭ ^"DnsRN$~F6gpH:Qc"l̩UYYYaqʪL(8mPةm11nVY T0ڜbY 6^ʼ*SP3E#G[[8w-WqX=->唹{T>\PB99tr?5@ XS.%88otЍgWR'IG)(WW,S۬2FQV GsY$ 4˚SAhAXZ]A>g-=Se0X'n@R5hMN`NSԽV+{gޚmk4 =DB;QvTj߽暳Em )ܢ=֯)mVu:>=4 Z"ՠʳz '.`gꜢuEZRmwPde)׳h7HIgf'`dfL'Ү/L)>ՐYkq`٣oY4^>M~|[)ps'7]3o3Zs>A ê: ;sN $t)&w4uj✢t0`߆i9~4E8 phH,8|#j@;u蹹=l0ۺvA`ҢUXr]뮩wふ VO߂kGL/+syכ6߈3qE~>ٌ!uCvd2UU%ID1;J%{gIL(TPԎԵa!qj 8pYبDJO) 횘k1ّLٞ}t)?dnGKpF̊ qivop|d Щ,`RTHfmMQ?T]c_/ę݆S,^>_qĐ|e8S|qhPsAub;|~xƴ ]_ƍ >bcu˓ 4JļzBJ@f$}"򋉺DQPN\-Dh4 H}7u\`&'WJ~3̃6٥kq9g-ZE۰#ʏݍ)-NA?<[\ ˀ#?މyֱaCKpGnsepmB&ݐ3oFI=Q05olpٝٞ)8t?8pq+bܲxG[q /.;~|![ո9_ĝww㫯<>~tQPADȍeJJRhp<@Qbm)B"K3DE"oD4r&i3PV a_ɛm:'y26Tؿ]3w&p Sq 2;KRvz1\+ozh7597ŨLA܆V FHg Az':C_; 40jʜE}̓X>"Tl-Z&, C븵%K鳪a]piG‹= քo-?ޯsEgK# qxWsXq MS\hQ݇D@|}JezaX2RDHDx\ħ:$1Ν-x tQ? ܣ1p*O= y v+Vbr4@ֽF "(ˉjNo'?S9,#Xk.{Wӽ`5gW<-yQ˓=߃UDBCPS? A˖7?{ϫ h_xny~'ECPh5RZC3nd kg5S}RA0$iO~t[h1TI!PIw9,E7[,htXgޠAlmtp{sG=p-t=VBjql=̚hYݖEX$)r=K\PktMYQSX^K>{vsZz;p˰v{!w{2ŅUl3 Gdde/MװX(/đ%bR#a v.:2<#0\'i[2GM4 A1vfiD5QSPq|kܶ/q:{" ic& Qx*kiY] JcNQA_YwC.فȪ}n#x`}=}eXqkq^7J(~ޡ[Gu0F|!8~eG3PSlхK ů *54MnMҥ56µ2:dM% AZs]Eq:jhd $݄-<[(Zܸf4!2WX;9Q+5W(rHF5j:̓c[_7Azt 'u·E=\єb8 _m+zH$ML=>) Mܿ)T&dm$t)B!j5" o1Y- <Ah$fcIUz~h~xFskW6p3У#7a?.JgMb<WO ?|=g[]Ek}qC6|gI/a(>p1Mgി=9`1(LvOǁ3m(Ԏx4  (JZM@hPEY4M9*B- CHڈ1#̏e1BZ8 0!x8,k2yHH;w1sp;sgo="VaB[ u//@tX?Қ眇>kVsXYaʠݒfY%4RFGVV:^g@ 7J{xUi0XCwv(le9G3D }׳o\7![|1ֳ|4f'p GQx]O8BRZKpu_Gy/; W<КnA_5: _$lPF#5]nTOYL.@3RSH!NN1N0I8m3Z$Xe3Mf/< vi ;Eʍh2+pvDB[j3{5g ǫ3wvg?^@t^#N>yX88EW'^ůlj8Cj爷#/zNЭ1^u P {|plB滾hqŢVQ1*I!"IdHw~(#NT85i 曉vխR$58n'1qY0Qvܶ<[cɩvG\70r˓v.| xU&V(c6t1֫`ʚ"Ɖ9/f͚5voO.۸q#jF%1TBmËGXfšwph7<v7km\&${"h̩bn2Yf~VVlkԛFeX3Fc}sOʹu3[kmnOZ^Me˙Y7.Q*1EtYs& P8Dg z"Q;2 "iR9KfַnH@qc%0`M2vy%BEb'I߬\WQ4ڳ5gw9S\2vZ(#|#ɣf:L;EPNYME-Xی,1Smݿۉ51af!HE0g}lC3y:&gHi ׭155ž͙uiҥ@ԑ/rg Gy`1Ƣ+O,r|1;bzי;n7&qcj~ltƇGjh1R#. K2tV#\sX}طYe̘16hBۊ$"~qpE K}r3d4c">aeB[RKML=ALQ wrN|j/Id_l͔t`qpr[8{Ui ~ܷYeBE1ؙsQM΀5Wb4 60`D ڀ e IID:Խ*۬r5MFTA3@!2)"be8eN.V2%--hm*H0#lB9¦n 4 v*!(+qg2!S=t9a:5ǧ.پ[n2Q" jٵ5ʫCCȓ &uZI+UDȁ) 6SFQ Q0)5@ OVhh…1Ó$|FIX"VrV>*b6kGMVl&-9{[V WLa|`l"ݔxnI Q!5Axl/pai?׺@Yck0\7@{.m ̓coO&*EtHL;9w j5vitVqDzvRwq.]irR@f=MNNRYoS53*aKa|ܘҘ"8'tK7emlEԠi)mVYD<C'"aV⅚^dInh&"M!ACJDj'1DXVY%oڝI1ӶnLH"Zܓcȉ{nFc Egw&Z&a;Za-HsE *u{w~y^9S~oBeclA2%EzJ%YT ,Y͌(CA '+JT"X*.R 3RZjCUhQg3(rkNS虧Rێ!!$.`) =Dji ޚّ>Q\KUG?a1:2" -3Q*=z*^侜v> [t:2U9~طYe1/hTv:UP~/x,1Z4_>1B! - lC` P b+\jc|xXΘI4NQir(6Z{+ZɱQ4MJp ZKHZQ 9n,Ro(gb?crlejШ%߀IwU.n*fK6m P=(IR\'.uRNS/Y>^a>%K|!μ6BWWo$ %LNǡU"I]޹/ʷgL{}ZL.Wou7n\Δ?,w%P+Rw5rY>xOMErkmJ꣰Q"'Ѫ t9vΑA9Qu35:gIUq=0J,L^A$$Jpʞ33NnirDZV!og]cғD(Llú;njL={Cs"DjBe[Qfizi Ux sV8|tZ[G|-߇R_o_~>)i2\a v/T?gsN'*q Z /<ݘdÓ_Zpu˕8eM_]97N۵< Z׺wҷ)𳏗_/?{ xփǖ-@0C$SyT8)83^(y.du*U0Td(]D!>n SH=C0ZU(JaUEkHzCoZm^jȷ;*p+j&5t7D)ZLk8 _jʉs_z!nh{:۸ҫpGV+'?].\WiAO+?|x?Mø};pgss4y`#z9ٞg㣯~8yop^z>|$N<4>K2 x]H3^3=IP0bbUL `:!mj+R;:Z}IT6K yt X)gk>"{*pzP3Ejvew~?f{0wċOwطS`m--Gp߽Ǽ`"b|n-__kEy{pPp7?/"UC{W^cgQapl36JBcVQHCimHjLNX2+w BWLKD4z'xal$p"KsdA*^Za,ZH$D`MNFVh#kL27_V%E9MN=12"Mstca"Ш`)!j$Xd \֔&I C!3=*<9t4$E}̓X>"wl-Z&, CRr;ʌ?{j}ٸ}7֬X\Om4o*u;ڶHwԸAv`&WPP tjNhӤ3!gHמgS$ Xk.{WL Sb3ފҫg}<ɞտ*+C r<K!  eSnv|GZTn@wTܰL<ЈDr,f军YIy7.E. :mAc#{echO46$m"bpt͔H3f9f?)M'QEA!#L)[6p疠Ro,L;mOEQ5yL{cg9V] xQOG?q^/|ZkquK1\[p?U';b_-.mܨrpK<JPb6:5&ծ]YsTr^X&RcY6}ZnТNbjʐ(XEi_H\5>7CzyWhGOR7S$7[XzϽ#{W''SG M9Kj&Y mC p/>njҼ,mhe{XL u'I+`T65IܴaAF ه8D@i5r:GlMcMuYL>p%Og}X6ދ_}\c=Gw:\u >w{c6 >/ g'~7<8/,ؙ*?O9k2C6,wMSgіqh`D鳎g^>QZu8b Az'%vD9"4mm\o35s+7݂?C1a3&&3a28!O:nBSXѯud:5Ԍɨa2nXՑ%-ott_TkLRY@|I'ROqLN6%N1{7Ȏ:Es8{]~sPD5bgO/AMaXG5 _pG#E,{p#n?=KymFdK_wcό+s]sQ$$JIYױ9.{RcQY՟Q2XQ":OAۥ&RV 7z:K 9B[j3{5&g ǫ3wvg?^^#N>yX88}mOi1*(/a_/8;%8p@հoG^&[c@׾VsGc`C5cP[4o"Nk,'{g}fqWOubɺ9L+sɎD.8ֈD3 ,9){"J0qb6ʆhjNvh4G!y wj"9FAgX.ZivU+W%b5D1kfN*r$tXK]O^άDe+*ќ@"tr 9 ā_Ҥ%>G1&Fua,}0.5Bu,CT b͚5v[߶6n܈zd:Tbx$H#t2+NnB+Iy6wj+6c`@4VRfZbN"Y1ӟ  8ݦ"Śl4z*;W@bp`m 8ȗcޞ{^nk3`7EU~`M1dL5ĺիqZ4'y9XbieB Чت1va.ȑa.0t& šZ#DrIo<^G+ XXfm֙acBH%|[W? 9 H *d2Yn48L1/bOIYqL@@ MQA9[$*w-\DNQ$ZtaUr: i cؼnFodBBȣCO #7?NZ\x| D4O:ŔuWR>naik&x\K qaiFN4uHlH^h)GQT!3?ڙf\)4M”fxP%NSl2hXp~d _ #t% 1bi66ŴVqC0-+EǑeYWYs.%V rڠM5C/ũƟ~#X~F#Biq@DJIQpo:\3 2W IH^S'5PA)P'`^:G%!7;Q8)*_;N UC% e Ab#Z̉w^\* }طe,CZ^ XQU^hnVZbXX F=)lVfF_b&U\J ~jVܵFx][s*ic7U̟+vjlذi4RV!BKi#oFraGJtEErSrzAW,&/F9pJ#iX'A{?C%t[*PeU*(KD <26T^AEy FXC.,Z%E)i!OĨ)i IDAT.b ]i\#%wD*W"MJXAn3j˔x&I*vpZ+V`ӦM,E&,g߷Sb4uޡ2%ƙ^M ?yQ9bǁD[3/)Qsı|Bmqt$x*э! Q,݌@c}̖N{DCLn@..V]`6ki%]| xQ*Pe8+-4ǸvL6D$Dܘ!ݖY ,}w$X7#q4-i[S2X| '",c M6bƍ$&\;kjh= N!."T],MN~K{v1[^:tCyLIF|yHy%,wܽ69 TXj9?uٱAS۬3UuQ0HJȉ=_f|jЂ8Eb qɁ2SwL͉/;\&_mPA|ߨJ!hd`ƆGИcHjSr4C (01gG74i®t_9c㣿-o(^o*}z$\ xgpp,Q&A*D]c*sS3qYgn$$dbBwHBUksv)o0biRh%tW#4Dpk'm IʱK)ec@uf=Vy//̟y #T7dxL}tgcL 9;?E:GB- {a k,uNJx )$G5{\rץ(QN)shÌ'tuAc< GP{m(V0(IQa)8ȕcہ YO/FrL+(J$hMqC\W6a[V.h`a~0VEmRdy UxO=LX]ȁB#HG,xe2iqKQ -'49ױfdqhQ($8IӖ8]KY -tqj9c0z%J#%B1~Q~^ \z <]RjO_usmb u/ Nl b  &Q֐z.WkUD<9t\BuV _K#fq5Aڤ,5h4-}Y$~> Ɛ"U²%< 8P!'f}ܸ]j#CqtDIxa:|Gu>K挢дV;EN䳾we`l었kkwyժ5L6񼖓Q 'v72hY4320;KKQee\zAq&NR96jJp݆n}\:f!MWT՝F o0,Ja '\s(())?1c:sj'*]TF  9qV,t`I$e"h6T:6٥< ~d½ˇޙbz+>vqhmހ;>2LG۷YbSE@/QLy]tĚ6-l@F*w H[jQؗrGj,RMX1@DHQ()bQNZŔ'ѮOH'Wh@C΅:iO*c Q"(%]#,0$G< l?6xҟ9 xF=p-US.5Np]En*9jJU]L xjqT"I"h N{Ňq{s./\n)ԵZz%N:~N _rNtZ%}P?ǿf Wr` [/*|PDvo.X-8^?N|=+L܎߀_q#~ރ„-g<-kH.ՇHH:/_Q*9 ir0Pͪ:($@( ¨@ 1٬+B\=q۩ T8Obhhg-R=$!L 0Yxhm h,N/?PH w| G}-8Dտs5\۽PsEXO֞-jNPqSv[J"Rtjnv(c NIDLB;NgT)@dQ4cdI"+nLa'̩VX ^v n rA~7rHs)cynsH N\"eQCΎ#V6!y0/5S(VؔU2~W1T: HM'LEATʳZ4oGFLMյDChfH6HҌdȑD@RK9g1N6ΏYEA QKvufeT O-S՚}ບ8" @[E?(Z49LͰc:'aӾYGZ Jhܔg /lCt t!ij^j2)ם 7EV*)en:`0+.1vJТ,)Խ*IA<.het㮼FduΎj]q,Tp r<}BDI\:)$AEEh[HSTa~iI,kɱl-Z&, Cxx%K0**}{,캣d246-_{ϝwY=n&2(wҳ-`)]Y^dA\tSJ.b#.DGNHXӽW`"YS.3Af ʁ5sYO6*RudžF¨3W-10/Ⱍ,yF3]_1og_6_MB#<gZPT"`v'M\^gt6X~͙xox3|wzd}mx?8=^.|39Jӌ/\*S5 0]a2l D#E),1+{/d1`(rqDs!?r !bRY<2EhT*lV+Pʇs"z]&:}2Tԭ%LhxĮ%*!%E" ɖn !rDJsGGO.ʯ ("^0Nؒ ,7N0'm14Z0)"]*8De\'* ?Bq Pqh"R OY lk|=bkq~~z-ִe_7{,$GN#^RDw\fF-(z-# E]θTu VEA (;*>B)4XR%hOZ)7~'q?2ӭ &j'Ut \/ML:uV`B"T1 1wCFO*vH͖XlAB%p*_r>ٳcہC^=EB7]֏LAGt#ku9r<|W9N}Nn'&BX@%.P?`&= WmPL}al!/ƬI:k[L77(?9Zm@&6h0p\mUtA,5_"'E?r7B;5G\.j"DacyNw7?;F=kwzHMJ# ֪̯-}bs<8yF!&NMОpKy7./_ٙ}/;oS{>X[OEE{O7>p poFf`ێZ8bQc_&Af9n,7R_ԅX 1*("1F9*ul[ZxڍQ=0-)}Y0w&#N+n0 8"Ւ@ /!H$1Awr 'bM1٫+E8+R(SgR}0(M(a:*&b՛$&Lk9 .w7~ 2 Y'!-e9%ZJ|ꨧoWCx?^p``| XƯ-ϟԨ0E'o g~*ӱ(}zpǙEcښhߦ2Åo!Q'h6۪$ad:7sdH\ ՘Xs0C 9Z#jccmm0Bha i19MaG@O9E}i/EmPys$XK blaE< +YSTߗ;I|Ž)1?&K1٬$Gte> λDkNz}\y`8UfgHNK&I X-r`nI[r'uLMn,;=#Evqaэb QUUOZg:e,+dFBbRsL D 6 cdJ2MQ4,"xJTqWO ?|=gw? wU&~oK-/tvBAGAAF "DQQADQtTADGPADdY tWJ$"ZSOnݥ9vůqНp{_YIOwyV[d⏼xK ky' e*6qZT|s5ͰRqr 4Csƥa@ [vlB}Ykz%}%%#0G4)3y_;RjH&91E'骓w24Dm6|eZpMGcGӷva'tʭvkqiVu絣 RMt u+Ds9Ԍ,̚ .fplcDEL Mn\^{~MIf Չ:d`|&:]^, w+~wFQ,?7≿;ُzV}W1_Ob5G> [UVf\ԗ$kO}I .~"qG\'ʇ<7{a/c1NNڢdG/tr!Zx~9LZIx!2;wqTQ(6]e}ۃRx~1<95S x~49nAVQ`vEgF,zH;. )@Q= P;C 6Ls ",$t,\yx+6Qm`q<'(Ԧ& NTgO`yr!TȄ FcLd^Joc+F"nD0dv/C_>|S ؋Aot._'X[߅G@7&X=r{WON\pdpﬓ .? ^w꠨tX05}*IJ]l/BBFVImE&A{AMS<^.Šm5M<ӱ4C:ɿcQ` ~Mb.oFWIٚws2sF˅xKaPCeLRtI ~.ɯub:=}%#MsD{>@FBDɂ:T{ʺi:e`':RD2eOʀ(&d;CX; \p7&+=x/<)7}+^w/+"`yr/LB=WܙSIźd'8(uL,,IJKqB\[Ur6F`eL11y z{&yyqMڪ@RiFedG;u'Vo7@DrD4=2 [`Þ,6k&]t# ;nE֗'2C %jRMvu慙Flfg#JNݹ1.԰'<]wFb3YDmH(gF;3e)Xu*1<*qޘv+73~1\ IDATƖn#{$ZO$Cz2H:a:E0uSڹXKeR; L=r@i:) U+uuS3t%xD@Ꜥ'F,`$\%,< dn-6ST#K߱PYF>FEp˨t!½BƟlj#f6q}: 811B^o/35=Jqq^LEqyvԑ61e6'IaZ'6 z>|E(bFM1GEB@ѺBŌYs`uRŌj 3e|^ع_h&ҕګv7dm\偞d CgU9ۘb4ty̦w$V!ؑ(."ub o, +(˙\Yn̥@T$srrx_۹Sb6єS jYgG!%B?7JLg1l1Wz;ڗ]pЎ[Ikf ]j $vE}nf4cu -bTú_DYBki$7a4;vPSKk,%x6Z__up9$f٪؎EZ 5UFf,$nSe;z uHm7~7ٱ=oNmnMPj Y!IM{mcdNqy NpܬR6vTϚ&65b"puXÃ[PM?@_c4.e0+dSȑEp<8i8*r*Ka";7#] P *6piYM@MU=h#bëXt`HwLԺgK=clsqOaLʖab߰D\sx,y+f|_שhP*YdL%)v4-0#Q89QOr=si Hjle"s/ImT] b7 eQ\uk / $!aX~zK_LЙ-n32A/Dwf911dh@sT"'ahY!ꫝdEJwΛl=c;=V(SSfz}IJi,A›rT!d'NVuky-YHI4xb6~h}ny zc6UAQ:귡5Y."tD.< 7z 6e6tr@( _$|DڥV5l:F^ PkZ1f ƳiC4:Ma*!8 qn,当M;yyv6 a@\'ђ>"%Ck* </Ʊ6Mݶ[*]/,YE;WqkEC9O6YK]j$f Mc4FyfGş Nm>+NoN$ѩ<&QPˡa[JaB9LFG+N*`d ""Ns+*z;:Ӎ!&=o]FiҨ3]w*`xZH zs8Tr|^x(cGFqȔ!9 +8n66r+"3̽Rn%M.mZV!H !HC~~Xc|ν'QQH׸9B %(gtzex+dm| z ; 7-nõxzL"gSuj9@ҽrMLf.?~4Iz~.ʼnű &u)MkL*l7a8 ;\3CopEO"]H8 ]Ա"|bKL"P@ͲՂ9'd</VU۸)@+"Kj.6c?Ƚ_M.U48)(LXd1*noBֱIo-}:xɗ)b=3tꌅu~+sz0\YWY{3SBSJv%RP0Sĥ0|\o;FWǑ3*c9v<-u]T4S4`Lm'Tf%4cA1SfolbW`Ƥm9f ðlE P)y꒛"`y YRgD;D 0kq')wMC0樖e[6B 9.\ (> X오q=tם@ݚi~R+zHr!_M>$Qԅ$C5QeZ`cu(.:ѢdڢW#c@̲D8fi_yNI@ofckG?qeǦZMgxi:XUQ34sA(JM^Dm;T+eBGCqdVUF*QaV6$}cmmrmRDb TŦm\|PaxZFEEqyvYD)Ov^NB,:rv!@]@RcB9$RuF7̈́{hͱD07,0C䋧Fik+R1"2=I l"o+uk=L0[oy^1R樕Rd%K3L"$Tyx. 9Cf%Nnl@1l3uv^FwGۣ腅JPwadbC I֭V '#^z8b,^Bٻ۳3[Yu筑AmXd-X`;7Q. Ƀ@ܪK``4ri[7K VѧJ !1EZV5w2H_"8w`x)/$saYվg>n؜"`R{ SiӨ. %2LU4S`!MT(jsfi\Q$*(oܾ̞;*X 8Kg&wj39+s9Wq|lbP$?'}7kK3*K>yֳ̮{ޝѢހ?{#w]iWr_U4o_y6^ A'߅?ݟy^[Roye[2O-3[,B!ˎQXܬ4oԻ=|4xAE.h._C)dA:vj±ވ,F;9KgyD8Gh3bz!n9A2_&gSx!NGV_~ߋw74ƿ~"b1|:}\w_s]w۾gyniV6] & 3,^,]$gG/90e@MfA&O7\t!Bj37ot^9`g֭)s,;e4eme[&Sr-_M@L9a'ذӓr}bC=;ëv>~վ=`ͩ+?O~ԩu\p_OoWß7.N3nG2ݭ.͜UBR 7N3hŃ.QbѬ+3TeS<%˶o;sn_Zk䶝}'yb2i3_G)1BB\# q oY`h!1;>'sSYH`":QWwTi"˹~6s)'mbFȱbS{䂺`vb[iYR0!i!Q1Q0K닔ϭـi2 alQ{h d0.^8s~5{TO3 C=@TP\'>x {w ?ƚvH|!SFwp;^goGM}>Jףs1^a%o\܇}~ X/ɫy~665K\ys֏~A"u?Ps V 8j7yetR4 *rrw3]B7S40IT$Hl: ؈ƶ(ڗ֥yM)SLdu W r@4:iƂUdaU uSz`13# wRjۜ5FӠ0 ȫ{+X 5<9&2y΄mr!0l3U0ƹw5brE wE!K'H0Bn}tk%Fm˕G}5Z ̋/JʈanňxeSwþGw/vHg>c|Sp5Sܟx=kxy՟y7=1?<Iwf>>a!;gw;p.]7kl\{ u%?,~WqA} Np==82$#z(l6 ltyI4Z5ƺEU".ĿXe[e䑗2V |1IAykG+CG2w ÚsL ffzA"jXm @vdI2mcl&k5i.~v5Nшڡs]; Sw+X/J YI,0wn|vϚy+x>i\'J l to!]!m`]P%$Yj<'iz|dL0ao/u&Á{>t[Q|}sO9KG];sx'qZH/߁q?}A>;mpⳟpǣ~i`Ϲù{|=5qх8bc|Nq3\?ck81ŏ#z4UVyw&&β S{d&q-š]|#"vK|s0?0I5έ޶ܲȧQ ǡkk77h eeH7z[}YzsѦiUnf}"Quf]{`;E4z(Zw15ƞkű _oR4[E#Sj**1fՔdGX@cn4)Fؘ*TȮhh 4Ehe$'YOHu"kcc6dhvdM{_Eba<(v2#h)>}G-~G \]ݏ/O?^8ڷ&^{/ƃw%|x Woޏ}|>%XK>:&~xO{-G^ϒ+Z㺿|=^3^~poywk{ج3\N =3sTrQ! =3tm3'dkk-1aVG.rLgnaMo$K^R& VZkm%ۧB̎n0v4F8=ilIJ9xM2`h$όWS9ڬ mqÉX]+nCEPaS iDh\ imP;刔•0wjH'@㯇&G6zHsW ֍;(68oEMbrU/kpӟ؅]п忸|֥_lq8.8nF{}sKS|Ko[/:mpw(7"/8;۞_߅gP_f%G\^_O5gF=kA߃ك_ˋNWD||çxkoEu8NDCƳGT#SIZM ]󾎧l+<Cy.NZW̭w>$=W|0ceΐ]l?]:5J'L z*2}(^#nZJe\\)zFá\hu\XtNUr? E8kwN1Å?Ђoxb:q/K\=_5`'c]cDD@Y  u;z3~0qc[~5!/61^/} ,knF$Smʅk]:geUJ"D,,4߫gNZm CJh65"&Tƍ!tYzAaA^tn+|X<YNݬ;E~{rV̔mf/(1(:! @Y`Fδur9zFBuAo; OD'kJwe=O)ƨLn4G&=`#y],U0vaH |BN%׹xCq>?gWwǸ֗F{oڧy^oy\?yݫ? xn;|x+ʽxg;1? oxO_xdzy\_5O]S^g_~Oē3se<߃>gͥ?]3+5S40$/)H$֏`-{KM_BZED{K =:qܱ C=v[YV],C)# eʩ#CG\x! 'G-TL$XrsG*PH)=SI#SF5YVH4*s%=xz<5Pï)lbYGp7[#v*UǕ'$ٸ!8vE`N{_z =m<⭧'ۯ|!{R4\#wz?b9s 3 `K=F?M̕vAI{/9,,3EQZԙI|y,]v %'oϮ5BMf ,6-ۑMLkxF,cnhk> yd8tלu1cDS9zK/5(jyT3c%cD,1v/$fWɠ ;4*]$u.ii&6VA3#+VV{d4=p:b}f;( ;qu]|~v# Gmi}s* C_s!v=.}5y!G 7ΗG[;p;? r!}6-~ފ7[a5c߀;鸉 ۪3"*13tth`r-=[OK-+C6NͭW;ɀ&>؉2F(]fj]&t~b7$ qRS"S!'&5nhg3_ ̚Hț3#rHhE]Ip4 LYIokO10dXZ WWqؤ3ԫUdKSl6P!XP%d]vYok7WeV+N/c4ncSL&Sacipé"h"AMmf0JR#3ic$(*7N"Dz䫏8ɢFP4coib7 'Gjr8#^}Ǐ#-`oNZ.ώ;[tDCލnRw&[dޕ[cWNpU$M3l:A{6"w 'j, Ij̬Ĕ52#6rfǛjQneb44r4"N*=* TRWH QBBm5)EG|,)KL l}h;Ђ|Mi-/ :ZSR ˝Y4-u9|Eb -X,s#P$IѬЭo1N^.t (Dtj}Y>@ac&qwCU昕! $^tMϝ j ♫FEF/:\/TF|Β ͩ U3P A hLP[WDkZd #|!zny@%'Q RBӹF fVXR†|+6f[`*a߱HWWQS"IM?wYg'Ļ^(0I% 3+>-.#WZۭ{W91:{+3F"Ø4&C -B?C[AeL_U8I“G?*Q$F$˴ ,Z#1I_X\oڣ E.7[6%pؘ$FEsU1kpxdu6ߟKӨ#WtFH̓FevL=a2 b@8ܸ#+9W%˙A_l6҇Q̰nKnIs&dT֘F y2 1FvjѬ|](I\݃ށ}X=t+ MuLBoYQT*]׻^5V';I]] sSO2If_lQp"sm75 NyJRQ봞s1A\rYo7Roߨ!*5S[  Bʱz<w%c[5X \R%Dh]8r18tо߻AZEqyvi&8an0E y.GMDs\5cŒ ;#M" YBVEwqP_u }[D-H8R!܊)ॲkG0nh=.K yKBΛܸhk\[>N1L揙=.6=x$`׸|sr<Q ۱0nPeB>8{]8pQHi6=gR1i&2݊^>rH'bQ4J)l,'S3Y3s`"Qׇi+Ҏ L2]90 UÍ?^ g@ʱD:-J-W"ɞz$d℮A00)+so7H2( 0T#-ȼc8rYWvh1K쨓{zQ-n?^q,B8DR˙e(. 5Ge8/xh6d>uƭ]爅N5:4^ݘ;x]Y1eL)cˎ2u]g}\BN!׀Eғ:3 v||]x`zqN(\KE SZl54.2`ܔK$+kY`em{̩gdwQLm? ꪫayOlMnصB)*L=ўnDn-$XIjgE 'iya3u%$^XlGq05Kҗ2WeF5^nJ"6*}jdWXV⵭+D,mj&IBnҙOlX#ic %9~;D؉ 'uOKs]FOSl\D0#Nj<>őƞmhvKyyvitޝ4r{#l,ĥnW\t U gQp%HWt#no9cMMZM7:6XnbѲAۅwk,Ph6`"7ihAz> z%!;wvv!+/kRh4rD-Fw:=+y,6f1m-E>=rE`SD7`N}8cH.ҌӨH= Z]-g*Z *R&+ݪ:K믑(Jf7"7 |pew{UE '1MmC/ɴ 0˱9P Zo!FSErjE@)+6ű\3I8!io@ٱ-d1Ko Cp՘5Ʃ+E<98Ǣ sMbWg lJo`ǾR&3H{<#H& 6 !Y7F#K v%#v5w[ &3?43ŎIm:iK M 6de83;_=;h|Kβ(.ώ<'n?"\0Eǚţ7RˆU;-^d4Q(RZD*;E11S/FU \b45*EO< #=ݦs$rϻWlCF.8Yف`7I է1I<yI=?,Oh ?,sSl7o8:ߓ$rJOG`:q[^"ft$꧹\YG ͗ ,ώ:MQ'rB I*vTi"*b_35G4~.=CDʽSSh\jO$+GkûEy ƶMғ'ns1+"~LɌ)k0ޭUffFc1)h+RTOnrHO: kyį|v̲DR4O9~EHVf>x-gQd#GqbQ&[ ͝e<;h47R 4?KL|k㇤prܿfh uw=ZD\jw1R8m9=|6E~X0aP9d i_rV-s &kA*:r+R-Q63AQ]%쎍(_`<+qb4 MV XJidRr1 pa#%%ZHkݗKK(H0}<"E d{/y).ώ;ExU5Ev[h}zZiD2uW!>łx(:pK,O(,K "T3>vvSh5/'jl9Zvwb—yELlO\,\" D۵jlf`sNBY0}4 n.k/*RǝU&vv݃睏}w=;IK47c}3ggG^~\spq+5w%81*1hN%ca4tEx cԪbW}+̽ao_}<>T_1WF"B^[feTI H5}%[wv6kǀi*uYj"ư0z.Y~'vpCHJtoZwcRzvsnC[ [v/cb/o<7> mq.y_6ڣt90☔zG`:Z]7U5nql"eU8fTUg&2Qg kH#]e/ϿЦ$ ήn. e͑cqSq7}TnVl+e\Tc9&FZǹh f<%/Wv  t쀂FĬĪ1 f)XQe!CL*̀7 O(WSen21k,x]#{m"nll肔gCyRCmk942Mf::8%9X5Js(F~jԨ1uC?~ os>U qEOz,~ig<} }Z%AD͒ѽĩ.\ch5֎^aӥʢF Xr)&\zq;$q] 62wg+>J[ruw^&q 6՞Q CԺP IDAT+N=ǧwM *BM9 9f:dQ }ʖ+rUG"BdPS7򂜿v(|?=3͂bI;&.`mEJ$ċWnAE?/׽葸h/x^}=#/NT|O?|G^.]Bs|ȳkuH7iyQPu ʣI=Bi z `L4oI @ԡEi|MXmzkN۴% [EASlǞZtBj@bVhBa^ }(*rt%S]FQEsVnv);4WhbKJ`Kc#uK#'HE]#TG_ڎ)7KW__0\7M/z}?|Tʿ5_| q{? z,K#_=o9OzsK/ְct ݗkᔔ@bKpىx66ӺlrVv|#+!uq,nUɈ"@ em&dYLi~uT#K%TZXEZ^n4sHkOcwd 42V WaU+3%Y"F'`;b'k%W#eTA4Ľ,y4'y{mk~w-}zڢu\[쀢Xo{^r7Ëw71h<|˳ޏ~Cxo|Bv(kqkqooUW_'ޛ76x\\kNou3H`Qj|% Abŕ› K/M.)FNqDӹa;WH%5&MWeH#7$vG֝Y1aDeB-*:Dt=QBLt[.+V3}Mi1G'qݩV#&`zu̖5͙;uG#k0ċ2[Q]$w9V_J0>8^?{{'Cw/<O=w # z{b)aIu4, r3;8wϻ/֖ Ɲ{ebֶ5KV )!Ho)Nja;6{ O+ڢljlZ!BS3DjQnl?_r` |4[lz؞,3", #ՑWuX 3۔(M,lNhF"@ƾҮ2C-*I~fuC8vS] އuKgg%HQaFk3`M u/vb,H2Mh5g~#Ėv#.Sq̦ŤLa͏ WTq4,ͪRC~!LZy]i{:M]iRiL\5.W%[kC!V{L*u='V֭*I9zy`1Eʕ;}mp[hV[ߣh.PsU9s 쨢ӯ rr^|{o;hOW;µ<]+޳߽&~=5LZX^w99nZPUwkkq]EW; m1a @ssn#̬(1( _>(bH'tsԛSR[iHsԵֶݥ{ 12BMPp&BqT*T OFcmR#f/h O -V)7XaFkH ` }ڷzfBS!RWvac8  gGv_x[b{?p>?g}z߆*x?]oƳIR`eA熲E5(a=\R4E\ƈdv`X@'md*‹&_<rdMk6Zd-Lj~ Vl&nusRϑݦ.8|Ge `94X;u%7&%61pjqcGXm.GmԹ(=E<x1/ X a:8|%WKN> x_z3~kcgrnJXǎ-w_ gsb~fJn99B $3m*,r-&u>G2t %V$J b:)+t;SXHZ˚T "!:WF莔#{L+T0+,$=( kŻt5p J mGG6Vbl( kxfIzM5lpm8Ѕ#\j!4K#)(r㈶ V1w Ɵi7r 3S_O=?SGÇD0[ڳu qej=2d%V33iU7zhBp+BZAZmEߢL 23m$O# [txB?^>x;o:wu#̱6߀kKȯXh42dF)/̣ KR{C1 h@s9+vHW:E¶#:y5X0~Rb[~[ճRpVog$Zۤ0,tݷ"5%qJFLzʑ"Ex Rve=V]Lh4cS[vl^|Fȋ̠GX -*9ԕ{-I'eRr`c8$<29=o?;ZU>[mx9?C1\%qyCN)A- A7ìIV HN#]ZЪHtuI5n=&?C=T]HѢ!MJ"re5OFe3J#'66&U#ċgk "nɊ,*NH RfBQ؉u_8r]&R]b̐Y4yw҅_IrzHtu,g8G>=r2Fo9"С|KS|k\<_E'KęK]ߏbOiCPHWfc4F=5نH,hmB;6-5i,H.; f'iJبJ MͪEQǢ7B̤*#t!D;l%DnOԣduQWa4#,jsi֙fhU,Wh$'SZ]):+HBn' r.m~-Ež8p(Vy:=br+9l֖EqyvԉAcNEִw1,TA"aoUd7:f1"&]E`f<*KbF^ri8Ԩz:8N,|qP\F1ӿV1 }!zBq!+W&,+| ̻PrSU^x!)ͅ[9I [,YO `촳,˳Ζb,MccWK1= z-Toz*9a4bckQ\N6W787ViHwT5)do. v2q!Ss+^@*K^r]4a-XŭD˲`1OKL=]* ijI`4Y@4<}O-{ș$m',EqyvQ.G;OBcX( XKL9ehUZb05*HmXݶvPw.d x"qjg. @p}X8m` M-{,dX фQ$?X4Su1ֿOߛ@?82KFw/JL#TeN>Z٧p. `qsPZMT_B[I4.l( n Mg_eAΠt9Ф*T U!S=}-5EQt즆CGeaX le+, (uu}Qv5rvɜGRE:9*.ޏ`]4;פev(;8ǢZVL(I{JPf![LpAU1#1\noˢ<;ane^`G\$/eښB=u^$V'mj u9SWcIQSMeHEA4eo R@mPPSa$~4BtRYwM!=h4fX#K1V@mՁNթܰ-sٜ <9)1%/0-5643[q K0K3ۏt)a?k+ij,˳lA=b |*$oJƱ.PA-Q Ț`EEps4¸1wpoX~,3`RR,B֕L2Յe:jo}"lwfUXh F=-Jba"O+L)oc+T e82w0 h<umd=j"Δ.ca`T5X 7[qㅄ1ZYVu# ×ܺ!+:M]2ykfN[VFWaA,/^[f?d?X}:!r!BtI˓/4*`9uuٔk((h1Vk}ؑh=ԣC FjL)Ge\(-ct26 /ۓ6tTjC97rα~幝X0o"pƢNS'Ӳd<:@ŰBA8\ WǸn䡽nus:حU![vn0܋eja3wy~I*; )rTwCFG cED"؉&1LHYtU.T,!A8nߔ[u]uN7 N3E3:ύ eaY}Ś6Bq@EŀR?,=>2+k>vq=%eM{Ӊ;,쨣̔,hasj1ʽ =cDqذ,Tz%Qe r21[u(vXU:bZ&ZQ[8[LT6s&CڍљPP9ZGœ6zŗE{N٘r N| 0:θY b*eK7  -2cA15H[Q'tz*k6֎Y,y@{$;QNL,$)A5`ѩ@D)3 ;cs4Dt & []$FeZ`}e= *| )H`EAE*H.`O(EA1H Bv7=ufywΜ% *:WvO33{>Oƪ2m||=drS7& ZFLGhE"dΏi6a5T Qmғ8 F71?D-%`^,rOqǜ]q(QUDΕ .ϡNg@#Y o>kWwAq|` CL".z<.]s3GI ʣqD7\ѣCzsԚdB4}6ϐ઺"ۢmHu??QyYD`<i GmBQ롎󤊎miTqjG[fpzaEXF+!Y"j"Aͣ\pChx%=u$3y \j6U5 i"F2K`*R+TҌA76cMjsBT]v0NBlM e8+}ۤVy&"PJcc0#>EmjȎQ𱱸 䔒B짒0h@rZK?MFH.2n3uFHZ:9x.wsl? 5i"H]屰FWw7R5] Bw#EV<^ptLqEz\ xm]v;^\9cxN#zqc:q?Ҭthn֙!=6תՒ;Z_|)rDgdQKRtܘ]̜Q7r[(q2qBW"}EV mۃ/2ElB&7>߃j {e/7RQ.7VᑇJm)Ƀh;uVZg2yT *A(dX*{ &Tja klbO8kR 8⏽4Ћ_\>~R3{XxOĊqm/[_|].]/ w\{_ ˖C,nwzW-_/>NR1(*^m|LJSfz>uKqcErJJd%pdrb\zحrIΒF|IOLqtN> mY0X:Rk"irT E>Z1d>q3pmKIӨBM9dQK%RX>"mRc?=0Xe HtP#&K±S!Slc}Eg5)xM%oFm1tuʏq㫗=[a ĥ p/&l|rl5,'sñ>z~0D#+Mga~gaï݀wXv>/ v IDATqM7sekpsJɔ:Ԭ(-ҬEd:ӡNuA%Bt3,}Obˑ1aAЎ >}::;{x>X%BUjN=%WFOGL gJ$﹖V6P%02>2tLA44(W(ĞRb@aG'I8U4ٶvLmu|2Vjj$%Fh@͕)ܱgqSW1#ڶ.vFYCs݆* qo 8pQn\~R|a=kXrm1˝ƭ ][E(-],²RW G౾*z=<0XEyGEeT_8RXx큘mni]Wv,f>{ovo;V,1J, `puA)γi>ŭ=Ṋ,"µNR?$27U H_Os D{er2=\t#F!Y~Rd)tݔ&WH%n"{/{^INs@j Xd~;Opqtyo*'dq>%ҴOG;M\_j1h[a3ѵޅD| ~w)i|z7ᚻvY~ wN9q މP/ވ~I= _}|nVůfw-~;٫NIsna?/pĉo?N&Z(Y9QPH$4K1ĦC%nkAT0\`81oR")cZZȊ|LFHpc:.C\O,8(1sL[5n4x$AFۣ<ի>( B=D-%ίD8I:z Q A|, buaP8Jl/ǎ\BYLvĵ6i]cװ8;<{{q९5?iI8ܽ/z64|㚿Ҷ+.+w=qch)P蟳f=lx#=nӧqwO']+gp*B~faCAL56-f pt8Td;`/BJڐ25-K[V0p IHn6ҩeE<.7 B%\C$$9==M<8(tḶB-HlAU"2J Ė>.Q2#Mmk$.vU:2,[#2]_p8{O/ G\pSwug܎wwˈ+xcp|-P]ҏdŨ\oLAni7crr8lϯQG#[oxyk*(:Wru k͋ -l\N7 &BHD cRES׀nԈa$*ґVv4Pi]~hY6 .A# oh5,:2%ͩ*3 93mrŢ&Shs@tĿݧ~ 46&{1U,]m7 = l.^(l7Z;C'?8fLo¦ŗǷqQS/_>tk '~vRiǜC8뚇ѧ8yXr%V۲p΍M\z=߾a\ e^ƊUcS#eK,:F#G4& ,bBѷ$tJM.H 2/ 314]($7"2aV\GL#_x&[KQBfUKdb=5=G\.`5} BI c3)mI&/R-`Ģdf}ij5}hSXcޘyKbNqpz?:Zc6ϫ- <ȷO^;gWN)Tc|5l_`I9, o rQ>w1\'}̱عo9z25&&Jէ: VKccY~'> Ӥal,+LrT+b7?./QnxDM ͵@ٮS1}K+mFNe޶y)rUT1P!^ !zkĤybKf$@SIgT*a1XD!TE}ՠ6 R D#YV"OSX+RȻ>%/ݥ&kWJuٮA(4{T4ғ<\TM)Rf,mD;{0yư"H4g8,1r9Lj=Giz[yXw#ީ[iIO_+ c7|O=k)l.{*,x%9(Z1/R }}}xCq-ױ͹W⨭Eg8,a xݰo| Lã|7n|}[zlI?#ۣ/&Jki6BbJkQՌ I}N_g+ G "[$h[z$֤i!?'0BDDoG,R77:h\q{&Z']gbRqDQզ!ZGA 'iؐ5\7# *OPVS jsՑ-t\,vvstN,DscoOf~isV*茉HQ=K|?yj*NƻYBxXl1yqeӴ BK|b!Ge!vȞӐL_uL銱qΟv·Ϲ瞺~{ݢmd|I{n%.nl{q/AyƮ8p{?(*/9).;R Α ( |?X5F4CmmAan3͘P>ɬjN!DğY;wynx4uį5ZqSGX2!iɔ6t4@EuθpX0f*#'r{vJ\6ױrJ@1dD8]OJ[V?6}+Ʒp MM>r{&cZ}:\Xmwb/ĭ;16rhz]6;ftYFѾgqg[xvhYˋҞA ћBw}}R1@8DDS!wWi&/(%n"ZGh.0d]YR#9y]H%YyDA  G$t[g`Lgoǩei@BI1{T7\"3R92Ci26攙gCg~,tWdYpI;ɢ< MGG\֒%K1{VX3NR܈(+a̼;隺ǀ®:-d5+qi4EJUζ!RZi"8sXa"7ESCv6 NEN{<%,(appY\ Vj"w.36>~p*>X"VAbG'7vZeMQ&Dl"B::ٻ4q q#g{2(x1-ze(y-Q/Ejh=u2ޱ6s="Z%Z[9}̎18Ԫ3p,L:BwVhz^c!؏ESyXJL|z$,lmrOQQ̯rxR2 B3(l{p*dՉhҹDQ$"i0//,jkl{Rg1's^F`JzLD:t~wY|"Qb| ]]0gǗ5 3C__z/qP_cjڶOj&V+ "52R Ui F (z,kQfrlњ/XIKЄY_ m(VA}V,6w<~B8Vy%DR艤~:PhC&dG5DCbv4A'@uS:O/$[0+8~!jaFIL2BQ=8O> ~.?0kL-ĕ(o{܄E8R-L*Fݴ(D}L"i9ӣE< A16!^ [f/ 'wb 25ٞ~u\ƒEHdeImYe;}jPF`C HΟH&ڊye3%N6mqP_cjL\Gqt1ҼP\t:$fECl!ҵ';u6բ*sIt|K0;ks蓧LX2bjQkꢂ+xY ㈖ H7,l\˵aϊ9VgBA",Kl%fQ ,:L\"e;"mi]GWպ|PgLirśt_7\x5kL01pGٶ xZFG| E@<2qAXCVCZrZDPtE:Qa1j4\Mq;#c+Ny$jꢓ Z 1hl%@,y4Dls>Z+:7NKYu[5}@JkAm+$5SpXlc5ai?`o5kL-3W:*3.+7%blN[_E\mx*Tq{N!6GNBcK :&dGUɝ\&C Ԥ`{V&!RrG}YԵF?"f-A=e8QMzK,LFcDB/hbׄ.GQ"8ڢ(sktX 2c(RVZfu<^H%\G}ZD抁0 !14/1KVLܖtX# Jђ/t\E2[UuĻ"r5i"+jQLGXl )i>&8y\Ań)S-fGU0SV+oܿٺblsR#=rK'^G>Oby58S99!IΡGn+5B Dcl6π4:߶ՠ$B b`4?hek%m1 De};+Q^2ȶgQXDL7Qbڑ.b1֩*~>ErzhIQi !D Y9QO4 8%OEoq4=a^ qP_cjhϗXI>ȶixڃ{xq d}Vti -G8-2,r_5:v"FS~X;d5VdqTyA-4aR0YMAC-&fLgMoJS.T!lBmv~Ov XSVYL":dHщ3U6n~i5hAQ8(C*ak"O;rcAZ# "VMO:NI,JLOcGYJ֛@HgN㭆/IChJ6E*ҜA2/vK)y@qNf̶, #_,!]/Wʨ_XG$HGX1rh+3yOz: otz#'l x2nV9H:ZTXHg|׍Gk-OGf+ B/ I)V,*wRs4Y[2L&@eIR[.4/nvPFk \Ȧ"8Aj4 'EЉcAe=ttTE_ öٜn<&i[Xz&cL^/~wͨ2)irc-JdM+7w-i<<bmOdEl'xmf&uTZ"}MF4Aq|EVRs)6. Gdolq]yLNԥ퇒^Fqcc(P77ntS$JU##ȵGK(;G.STJ*KOj@ 7ΜDϮ#UdC*I7ũѪrPgH74Y>D|? #Q;Q40ñcxJwi&VMГZHDUA"~ZVt"4(6[{$LsOe?Ҋ6_k,-fȒXD+m0V*HmK祇3¶&NOGR JYLB= VJSvisQ!N"QgB<2Md?(i;0XiHPBm= z%i-;vO7yC :YPenbkࡹuJ*;D)D#EAZjRhl)R#G[]Dc+aQ:%2Y2~(B6,: {.&kk K~Y2h4fm]+g: IDATచ:8SKf40H'R$Kf^؈mA a+!w`95AsscDU~葚Q(ypbH*O-~n[72&bECֲPjlϵG[,K\dv ؒݬrCX;>kt74$a7͏+GzmDc劈uom:~3bN~\jQF|_:a`RQ6Ya |50)5wbF Ij'Ee.4A;ZStIDn'T`b?JϡYmdFV1,P-UQIDb5V 1XՀ>-l}x9- 4_{fl 9C\ .bw>n r6wlofV&aߠҼZ!mI=r6Ӎ&¥/aG6_aΙBe xř>Z3ɳ0o88㞿s.՚yUz{}ǎm'ͣZ_EuCl.++b#M9k) oOqȎQi),bkFp>҆qt?+p(0Q˃gqjiMW6 b";ڥ/Kjgj|t,Zֽ6[ 1X.H!)ܐu@tj$uREǺ`i)*-Dk/i ށIӦ)"/&PeH#- 3&Vq'NzK=oSs7?_?uXqu;֟e,w$0aODgN'] p{n܊;qgb!'{9]5Pk|ᄕo z,JgMDF IwP@G,ǕN]$ h-hI,5"B?|reSI ȳi1dUӉNEKڊ5d+'D ,0 щRI$ZB[҄\f$6o1fܵL̮g=Hl ¤Yd%%e!GMͶ4uT[,M6yrS' SHlFk; PT9 /^꾥k܄ ޜҷfO\wr߅ _oԤ]{>d_ìB.'AqlY=jE%&"3yvHEזN5Kg j EBN(R ©F4P(cfxh,1 [<+AOOTjv8s,e+Dy?[yjTt -s41Z.Y>_z n.|W͞ ;k`I1XrirTl:qk J9j1{9>-AΠfy^Ο(9W7_kZDTe/FF G1U'չIJ3]]9V3H > BhMJC'f X XPg_LJGJgm5ElG-Fʑ4Bd-XHzbNU ?NQb;YgYkux.{&aYҽg6a`tC5KR\pĿ= jT[8!'[ncCNu1fyӷ C,+&,[u@#=!²?\ϭ=G}꿱w;rCw9f#5YLԖ8:4ٴPݐ652ҍ4x$eOi'<İNfPSd&H65ƆbJc5\ u{Jx٤~G:^ r< A YLJ%(7 ]f)9"6Z^;Zp2kWv}̎}FYJuꟴ^Sx05*=}ѪxvtL g,{b.~q }/c輼]V[[^7$d(' hJ(⋴_llr QBⅬb!@RdLjg)mًb3PGJ4~Ǻa#KkE XцV&Ws8Pi`ޱ4lAvlAazh>U{\lڏ&чF0^'tcN:}2u7MҨm>wc␯%!uɲ\ނNijw}_ֲ]U-cs㏿ ssz~F xO=(i?QuSua*#KCvv3,w:GETcĤhȰ0ޏTZiP͆t mgj& 4&d^Jt&dCYMzUxJa^C :awNAql=|p\ucO-%nͬSZx)۲l/SxPI-5җW,7jTkH\ [Ɂzf {&ܩxԃpӾmu'ݵ ;|~{X݊;*7o^qL9~蹙 0Ѿ+!E!תL`e%BxGEI@k~Q\(  weTJ,VI;!- I#e6ۤEH"vbpn|Lj@FlOV+QB}d- ]\k\rɻu5J(vDZkׇSAPY@6i<2pGV-NCHiUF(&X3 (&CZ@mɴլ:zRS ]v?yckK}]} ϱ26!豪X򗹸pkN![6_<ðI?{kü~\#:`ޛ=oEQN NhlI}8<˴H%cs4#vc`$: 4JPtjFt8Jf9JDc ;Nѐ' H|M71b"~?K+o6DS'Mցcok,Aer r7^dgQu"=IPY4eh_lҀ#NS6MGTSO- <+lR4R[3ZX&D*7G{C155&@ѝYC|G^X C=o⾗Ofh=+i| ?I{p]`neb*1yp6>c?iOL)_#> qtAYQ]V$He`u<"GC&"k|_6T `k4E&2]L5wjɡil牛kh->֑Aq|%sUNmхg PH-DPI9-@B7-JKNXé2-{d' ~N4/ICAPȶnP]REDEtsC0ȷ:3:210!? 7 >6OUђ0mS6s8Jjj9%bYWCLcÊ[>?9ekdC{a:۩mۤ]ihGz[$EyXYY,JII_݌+h.@K=p v642P,2uG橉l7]v10RfFO[fc6ɛEZt3H·qb"rP Pj<zf^mb1".Б;Fyol;l10(zL)M`+c;2ITkl(@ߵZ_k쭌g1d# SIÅҼJ@lMtzh(wH.nmFEM6]bIX#EcM7"5$Y;'䋓h8!Sme!EґxdKl\3 ͷʫ']CDtJM؎4bKQBQk4f7>'S@']OD|_CZoLr^V!/_N583cmNWjܔV 5F,\\LS4`9Jtq$Et3!gDոLRkl K˖&tlD[q4/-\F<fw1D ;h0G f -9 nyҶvQDz-uN[WAqP_cjsHf=l}9<\;nb?@>`qt8;둞VŦKc$%hdFNug&yubi IF(b0QԘH>[Xvٲ 7qPe`Se8 cяtsEXCzJ%dc+K,J ;l3NQb"Ve-C~Rp 8KRne5KCo|Z"DSDࠫ+ ]I$HQCR j yk8d!c!:WTBd=DlJQW#/m$0a%&S׋"Eh1)~2ƨhR4LuDI(\y+:>@uBR*Mn\i"A2ph3,*+PBXϘQ widrikjHwy7%\ Ei3{zFi"h^toܸ`S>/c7&I((7FbaUD&f'DlkRyd2,cR@C?JhV(2w9au}[Aq|5yJ (n.I38Xf0" ̨G#t>1[ 9 DJ17Z4NhMTBI|HQ4G|i׉K73Lؠpcv"T{`ʈF IDATE nFXӁ`7cyPSLg)n{4CF1jn0B6o샙hYe?9Hn u5Lf5oXT[,K(yajH0$9\TSUnPn7$R(n~2#mFc8I U)n*(;FhHk4F 2n=yf+/co1;H:TUZ 4Nxt.-Ɍ5yFِ#=')i uZeKkڇ@ꋄtmטZ'tP*2J X*Qhy|˺y "y{>>0XNrM뼝b6ϩ1Ic%`sP(#ElE5Hv޳dn#@sJ~%,-`#>FRx(!H0v&m#%ٱ`J!4Sl-NC'uq"mBhЪ^I OgG4sJsկ~7ˍ+w14Џ/݅n6ӳ;pMKOq,=77+^ý?Om&j˗w.j-15Gއ.w][Tq_EFӐ&hoU.ѿSцwE-!dڂk1-%ˊJg|J+{<(WB6SI:-j5"qkMG Cf: ֎ @( w6$'X) WpϜL%M@_/~ZڒĺQ$2I4ZȓOyO%؎ARΉU07V"V>Ư%f9tD׈Ii &I,!>g-3!?/(fO|ģEX u뮨an+@=0A.FY|ozo'~3y)r#8+FEYNHMkx,]fBhk@S肍xu,`˔z#UXh"b"Q̑ J P,MMYJDJGOQd]ˀPƶMMSq ͊7THVUD rم c!Q [(fXGɥ*0a#a5+S\p2=tYSfMhMn/~7|lxp~^|q{=EX28{`>6ߦ;? SWw5_ԕxN8kg'z_-PSg\_> ݺ8HޢO?-M[?ogH&]Kv݅n%r/\G-j 4RT*Z_ij[4?q&"zE)QM9\$4(5*<_ieF3LtznhG$QN\ڎkjI]RRÑ#6z(8-WKݘdYi4 59 [#-1 Kn9~*Vrv#Y59[Epڌ́wN?t.||r waȯ 1[]g 6{8y Kea _q;v36Gngq~&Y1o"}DUeol>ۋjK0Pš͖*MgWדQ9YJ;vbY''![O4@s(XP~f2ƨ̤SG7e(R4C!.% Nx6*I n~CKCy߱e39@9>B͊k5ΉjP#Y `Xi?7y漨Fq!ۭ)Yc RPXG97l1Tӹ_2|<1õ1a/]>:߱1<{/^vSz'i,=~\ߝI㠫㊃f4Nj X3?msl3m &N{{wX93ڧpɧ6C!}l-8j'텃wy Bv֘YlPzw,[WλI)osG8apFc`|;3<I's=/ W2 *p_xx9V{Rap+ "r]"L.T1>6җ]~#$9ƑlJ>( Td6B{Ph]=[L5.;0) Ҫ:1`4ⶖ٨cWñ_}{Ug}~V5Ug}g98{syg9 VJ;Y<>AWÊ+ܖ=wNuJ۷>taX*fOYg.J "9-T(Dv!p,R)3( D>cZ|&`&x)bNUs+ 5`ܱގ1tmDk:zX%mVYvR7CPmqb<}f#φkHYH p3G߰ mjU$ȫ!Q`D^7`[BQpK5?g0De`џq\~x4zf8+p]Xs.rA8z {2fm4v(οq؇zݛksj ~] /׉ws,y11kDVǞ8cAg s?9.2㬝wv(ݲ)U?|1IqM7QGN׷ | p2q\D z*F5 ERB@OuB1_[d2ܸוX86ʥ*Fؖ/1\z7rў' w)RI[ 8]D% &p0^\[^ͯmh:7&&is"l) \# ykC#f VP\Kr@@b_MUwm=mb/|xo5&l5663rⰎr[&f-6跋Wa^`Jx]ѕr yf>6n{VgV2}<JoEi]tE?>.ukJzWcؙkԍV@o*۰rjr__SXlל00Pb RLMvu*a] u\c@t 8t}c}KE't5P2ڢұ)/x9]T'u)R4KjGBy4RiFTI%/ 9kz v8F?>jZo0a;̶Dšo4+ƆWމ/#9g _sTZ|Tk?EK'% [7+HLJY|*1CVtrI+ҟU&"o6H~E{{G-)$ MTT|$%'諺dݝ8TR4,UVX̰mY$t_jpLh},:_O24vP AiQF* 1 @W o_UUkHѧ7-=UF>Xy\RQmmQIH*eN5\N%5hXb:><.6[J$K1IU֧xu!~NĴGa=Z$}€rf ~7'B&)nU-1۔]dlN'6* JB.õ|I8j cOm0'c}Uy^e E6Ȣ^(x~~^X<%s}|=0.=c<uGѲ}B91X\R8y1 JK%CQfj~;)00<0Jwv> I(T- 6X}jog. M fAo8 /Nyg[C]/p..SgyXacUC]!lTУ0ğP {&=uÍ|x.ܕ. kM7\ڰ*ؑߎ-udD:AQOk=!UjCvzruFL w  Ap! ~z+ԧCׁ~N`A@@ö*4Ci_60+7 Z%NUi:"u dhdShc(vIy3! Up3'L&Bspjy]MYhj^ѧe±07ub~~+kB <\|2#aEH'j;Rw@IN.I/*]5|Ǔsi0k?>Df(u(TӡB3 >dQAZIͪA7Y ?T"#t*_T2JЯ +@z[y~IrBJ썇dώ'OpN۩).P" FF;(tQv(  bhWmy4{o ުͮS\O{TuIゝy IDAT"Iyt]^H[|φ%:rOx/x嘄hniOT@=oQg&m>> 54|S}~̹+`K6@ ߂0)쳃~̥:8)`lCpUCZ4^{GJ,>b/ @L_≳]Y+Ձ")Į;ˈJC]%æMeEP[h=i)~_fh pFIc(\iSÏP9-B.B`]"ˆ#MHLIt+BP A 5'LoA{ՁP$Y! V/eй4t pi7hJXf0dW~D=YihTVX%Vžd3Xme] x.C羣ܽ%lu }t`bwjZCёi^X&iup+;&urEEǴfeY5 n݆J `4ᄾQu (Z8gp2`!~?tɍ*; LZP^@Tڃ7y}X.RJm@H%>*24mMM=0 %P9T7ж'kOgg[?,^% &mgAș&'lZp/x7ҋj? ^EWmog)8 g4ؑw[|"ޅ 6p-Tf`tR-+# {d  Am ,] G819Vhҭ,-8:t}.D!5| BnZK[@>'D@[v7oC3{ JvF(])H 7>02<댯|YZiOz(* 4GGt)\;只IUJZ))31}Kc7ք]l ܥǒL1k71|>co\LC( @#Xu4ZŠOCHBd@ :CuX` k"@]p=5.Ÿװ s4z 62 `- =ޠ;R&E]CjvTN./Mj5;X!:_n ݚV»@8M@"+-S'rh(t_}0݀ vҨ`';zaFqP^8iJ͂[.l)aj> FSrxnz.WkaI*4+v8{+ W/>Mrt,oyQeGzdDGG( h( LIE@ !DQ (FQ#( B!@`ܣ%}d3^+~Ui ,E@ 0B@ !DQ (FQ#( BEmۿ&nj#ϸ<81Ç[ ȃ̾=CTڳ 3>Nh x Đ?6>cWa{q_̟gt:\B2e}}!ݻ-[2x`&M$~+Syu8D*wNb4y0^6!!!Ԯ][ŋ?_(FEEQjU"##)X\"+2.Sg=/d %ueV]~ńF֑NFV6!kbL~R?|tGر|twezo{Z=e F" CгgO֮]+f̙رC>Tun֬3@}/XTCxӶo nT{Ntҳ ޶0_I$LYi낻;vX:͓Ƞm\bf<'cR:>BzJj GDϗٳg;v|J*1n/.cѠ*,o]:%nqB(ɗֻ:_gG C?9YDTRP)w TRbܹ?~VZzG`Nd ħf ,$-jK,pNo:}Ok1hFCCrǺF5'[ezW:~)%#Yh/^ޗݻw3b9p%J]Ȑ!CbŊ -/3̉^k+UR = "&jHM&-K<&5AA=2gB#(sކVp`f͚QdeUEQJRb]9+nLLE5@kz[Qz÷[KL1k71|>c$:T<&$Zos'nes~!)))=ӧO˥)`?Kޥ9rH2)w@ ⵠ ZM*h(hЃ>8mdih5V- +-S'rp>[.2k/$#tѴ1s&G7e޲`FY]|_~ 'gqOG)5Ox5jԈ4i€(8(Z{Pr5leKP,zBƍJxoY1Tv`ڌ[g)NV_鰕WQwUY Ϻ; 3N`@"c'r4U}rÊ& _M#?l'xen~ZVnHٸqc2777Μ9ײ o>K~M-J۷S~} /$Q4g7l@zdߢDB "YH (FQ#( B!@`E@ 0B@ !DQ (FQ#( &,Y\0n{i3cdvG4FѤOFq3yw~WU{uU3* IaĦ `fɧ3o]2R}%jg ڈɘ |Y5=n}xz\b9:?ˎ FbNʕ+)S_2+AfMpnŒt});0I3fRb] $=-]#ScAlvo+Őa2U '44f͚&odE_fԲ<u~|7a]5Vb|RDZ5Q<~;ܑr@[/;*xM'TRCl.>.$2e mڴ!!!!^G-_&~O4;_ǟPo fh zuQ.kL&G.#4@)0uVoK|j:MDh &^v- ?oӪ>k<=]Pnh-NU2JYPcv~I朘&Eaº v*5b-(Ļytj\2E)O9jԨ 8W`Tˬ+$jI 5]J_w}gӘi.s11"d1-| T6a(3٧gLhҰ\td$D{8*Xڻb_@LNL߰aC4h{IoDݑCzRZU%<ѐ;A4qLGu:tعᡖ6ۙa rAuj'ly4\1Nړ.d (t,2mڴ7UYp R7TPn:#Ӽ 3uL睥 -)( ~b6ى Kb=J-@Gb˾$JW^%t 0Mi, MBt FUϘ餍"4)dz5(>]#*?f0'\kiOcΜ9\x7>eugfPhtD$\ ɤer uI{{`.noШFDtk_K!8Ϛ5ףV_ӑ@Z:{wA*M~egʏ) ]$$c򘆥?Ho12VOn QV*]ɭ^<>>>%[N ZC.5l-ūKZ3;}YUEQ[g;Jt\r2e Q(Pvx'N=s ؐS^"02'sG&Z3m|)+:x4]Jfػw/ŋw77+2.mvWkâ;۱Ŵ %&a\"E\ؗMzt75Oā109].ۛ)SЦM>}>9:Ro2GZ2qTb)1(o'QϘ(UhgpC{PM>#(/}qog-qx~qCгgO֮]B_DB}/XTCxӷ֥%ペ#,%VHQ"|2$OQ1Ȋ--X}JJ9~ӱ E]j`gDH2+Ցvy!m `(AՑ{־Oic¯7-1gE.,6M >㊫ jP7(_ S: nxL̘4iSNQ^?td$>S*0qmt ԥ;2z3+'-L#Ky!4U<&iT3cs; LB#DQ` L@  B!@`E@ 0B@ !DQ (FQ#( B!@`E@ 0B@ !DQ 09QFf%X1"H %*UP Θ(jI"22ЫFETB ^l]8@DamM?FګT@`ҘF:]A||2ͅح#8 [+)쀍必h۲ -ZG17~lSD$k111Q/(,}Z fxBנKX4J)fS.|y!m Ziev0k{=Dkô1kX\<86YB]!$gK8֤Q8?V%ʾu].`:nF)ė&Mbԩr.%T/#v6,]P爨gO-ǢtGFuf夥I{d 3O4d"8 IDAT`$Ϛ]0z 铎W:SQBYqO rh٥~9jrm>Ov#G5wOa}4^)Hfdڴi4ui6;~a-~Iz28 $/FIVzPn:#\8ME!dL>Yv:IiPw}XTHYʲY j9*F>* [0E\q װfXcev 9*BRJѫW|yݙ!ۘa A=D-P@|jڛ3HKbiM6QS`r(*؇li̠ӏZdM 3".Ǭ,Q#.+Tg7lSe&3D̙ŋϗ%``TOK>'tƣ9qIӁLjL#}.D!5LҊ8Rh{jzS~qTNx`,cՓp=㈰,3O*UU:~S2"t̬YX~=j:ߕ_x{2#/s"yL; Thp-]iB/pu{ɢ)?0t&gijh(eY3~_{3{kItP4Ws枡=P{ϴ[Uh3|7{V0QAt߻Kd|W}}o>>>Ny)YOEB3lp<-QHˤT2BNojĊ<{|Zt\* fhu t:<*S'Wkuѯ˽TZo ''lll~'%2!KQCZyB50A3FS j|HJ\Ou&jMХql>%|s?j|+z %KiaY?8R<`.n{~hP\ mq_X&/E{T<0Z{Pńvxz)*̬q en{iR3V-4/͞?s4[J=Jɖq a8:4-GO]y4*/Nӆհ,HC}?s9OuJtD>- Jz*7Sm4&[4Ev%ʾUDs3ob8;VЉf]2%}h֨, Ύ5x;$żnɪ̢,x ItLGN\Uh\,y[^T6$$>}0sLJ*BaY-Iw|{4*'iOZ^e^Y܊ImߤI Ҕ)^9g_+Q*ƲqlVѢV)CKXڑ38QY\;Ud'Ti医N:nˀf2ƏK]i g0싙 ')9zZjޅ&,"X3(. "E"WYCge[!gm7,e0N8Y$&l+p= biiAН0]Ǚ`=1V .!ظ$C|\YʖmTwAtwwna9&*IrNd|=?ݕm3[vn._JjŕSd JᚸCVJKH5'TŽht~;Jɻ^sh]fMQ4nkVyu{*UJ\BOʵe9ZJvFHiJ 1)O7gy 6>Q^.`!oӢjeO";[+pTTɩiXfffq.xS8'+Y.RRd@Fձ4/G{I۶mYp %gwGbJlK罊Cu! zʼGy;(~ۗ]"^jLRmL%ԤլHQc ƒ2r#U?udtlpJ(gKzvMH챴0@%;54-۶B9]rz<$j@YX<;ɂ-Jb&z +]dєi굅,B.%Nl?}7gY$$}ُhkc%[T-Xjr77cӎtD.~<.ޢqʤgkzohmmO1 @G0ɋQtQ*8BM1,Fs|4 fbL՘x_F|ͱ"Z=s XڨѥcH;XYx(!7Fa;}oh90G#5+gSi4z]Ɋ[=S ⛀$XIBin.@K┕ɳþ,G LrjI<$_u+lAV._,%0/[ TlqGjOho#Dt}R;4S9\/ RreZl{pY%Ku/&|3wR8cuޛwti:Ϯbގ |\mV&QAd{ٓqq|Lr&f~L~qdG!#f :Zv%R^JTEI6Zf>4P_A]Ư\J#xI7&qd-+ 0'1=5-CBGA AJ֠M^ёR5<Űd!J>I'[Y|Ֆym&ӓouk˝id]Ja88қcJJz#F4ATDQAPmⵘ)y~kTvcm)_D~T ՠ4BbvGI Lo3#~߰a^_*9:P5aݍt&qk,z}О;SY46yԈ\zdP)1Ehy[4WfU`a:ϥiҧ ߮N'[+$wB"eK$deK,[!N"#R$' J~FDŒN1_}ʃ`,.ʔty^jX~?w[!daUH>^ph^ZղпjhРK-ITuI'o\%vܹmah* MBPѦR=U*k^x7a)JH(ݭ b+Kһ%DQVбY )jÏSiYD^Xڈ yͿh$!Ur]BIj>qQ&'q3[חF]&WkeRsY *"xPܺu XjęԯUAYɪ\fn-p9P>or~Ja;ަUweQZ+)]ekS_%IDaaa:''7%\eo2RHrrrlh.7RePb)6GKp"q*=Z$Knպ=(J~b?X$VC a͚5)ԋnݺ/B %MH'FKQ`R^&9Ϟ!@`E@ 0B@ !DQ (R Y@ x.H k"!))|sqRY%AI鈢ާ%M5fsP^MQftAϥ2D.,Ă3FMxhb´99S0m#Wҟ_vZKSc5V$,O%S(Bz[)NؐR)I`Lٿ(M*TV)TnRgv3RXknn`:a77;be2rz 6_1[De4Y-p-f= slk\WF__}'_|q̚c h!\Q}HY Ҕ3*9*s&ݻEδ|,233|BvbE%յ, -،IE q ( N("8"('qI4("blQ>A2 \z_^k׹ݭHճ}j8ubDO Nxf9c=./zl8ln|>VBxţ-׸kṔK|y+/:_pߎ}F;3G\|ʻp ߈@7%G\w5KαhՃh{{FPan-A2V^!D̞S_~g'S=V4Oqcê _A{_]h=6X/8n^G^!?N tlO 4Xc8=şg7,VgqdIr^q&ubPƍ_<.q>aM a㟅'm46xcp'>}\[? Jt6]k^5_^|8&S+9|h6hMVcf~o~ *Yp%Q^~nر`OĿ;g<O^I[~ Nq.9w/關%z:(=|{o?sө6qa s>/6-ȇh\6!p%8mw}x{ewxkF| /zB~ W> ~Cawߌ' Hko7_<~(^K_;n?u8g=n<Aq&q?O޳;m]|=N/wY }Ѹg^uhI/ ;~l;׆fKM0 J'1kq{=k8lرƯmcB<Y.F{m"@1n3XNOKºϝp3'vk* n`tFk`nBj0 wsC-/>Gbb\s?vuwGh?7;027 n 9hpM7u]w|У=Vje/^<&lQ IDATG{Xm6h lFm8h6Gm6h6FPmF6hAqFm`cUhe]NG({^XZꗡ|;Rj@̡>c@(C,/G!}-gb}*9?\KL9k#'טA㹕dK^b= gJ9ytxt`sˋu Sour v\/gH)gTю9ˡ(Uʿy);rTr_r{K7F@>D֖q>6YVb]zu-ିk7t6LG F\=T%gvRpz5p-cűϮ51D~ l؂CzCi{<"؆!p sVdQOX |"{=t.uqӲbdya4ʷ'F:mP~> \+@z9W ?2':dx ҉hMT>u G2,uy,gZ %@wcq5 X$w` +I )w/ 98`!tWK=np # ;~p0/?KBg L`Q/iXΑi>\PXhU/@[-eѻe [owS+֍#/\=0$ r2{ 0 |Ŭ鵖Yp`YӶ,Eaa kRk4,1L34wV tۤ܀]^v`X["Y.YB$[kW3#QP;zh 56O#9 z]MӞUM#\tH&'|b?ܱ5Xzލ&c(ǣb=S~XobS.ǽSϼ [~n wOav^ylhi 㿓w-9*Oὔ^I:ys}067Gog}E'o_1,3[e6Ć?m\w ~/?u9)ay=h0Y __=|!5CG²,|" 8u RqQU2H1%;˘$$ejʙ>S86˪K%ڃ@Fۤk̖2ZGeYM.swer2H"!o-<{5'WKռ׾!wg4GƑId)&Dt \kqō_}P\8K#3764nXsu{?N{x*^ޓ fc>X4L=OU{hp534$xXRV-7)~P%zۀ<g^-it-zKԘV.쮜hN-0= ^ zN=}*S|^yYd U8w̞_c`VF!*$,pa"'"0Y0idczY*A?uŐ;]n &.2$K %rΧmv.ɒ5Z ߚ&!|G%,Э=4xo[7 >x>z W]^BDlW\uqU_'iXnJ^7W{sj̒0y QZOq Z}kRt{! PDX\CȼUd9IbRHyQX̦i$|R6MhC5}>g~x \|xgaV1?{Ν WF_=ڄqI0Rdf) 9[FUgBmJP%WU3ȱIQ9z0SkVM1`"zOϲ dRy{`D|&y nfySqzE?i j bc >D a#ލ\Kc-t20Vvpru0")떡^O|iS"9I$وj.&CuGpdž>\~.}OX ޶`=X,mxFfPVFzd$WT7oSwאLď>=&v ©5_(,_-z{y5k-p(D&PSyw)xypALJyɝ`;5dng$ʦr='3iʧ<2@bz kh[7!(Z9Оg}h@V/њ=2DTR- aonA1c-߻ vx3[? xӇciolU#`=p;{~bb2"{$EӽU2 Ur [ш?ܤqrK2װja3aP[ȤF\Hvl Q<5\mwV!m0y= h$ q]*ӴyY`I,NYjAqӷNLGn*\I'!D{³='=3;qEγO[)c]_u$q_Gb_YCqNY5PWy.JFAuKEjlU*⽴v'UI?ڳͱߞȞPXp'5H )ۑܓ']g7fW:MBՎIFQU zLnfxIH讘†^kV2jUfEki#Wgdv-MJX߭Of5P (XEN;n[GSg"@nƳNQ7\q-fk_Oq='l+µ^v=wءyX>=iB9sx9heE;!/-ӊZ5I.O]]`\>-l|J3:WN`X3MM y/ؔ=Qu:AUH)QFLV^B^I/kͨ '-:ۈ3ˤ1Irl4Ϸ|(8=nVX%<)-T1*Gr^o5:z߅U[o 2U2Qv~tla VN 9K3!A#?c4\1 +Wˋ[b Ю\H}5'1CvsV"$cVn !Y,5;*tN]M4Y(ɴsb?9zFZ/D(emϔ1SicTMt|ml<]kzMXI 1291.xc8`3J.* tmxZ:`SD0V ^6&VX-*aFr*ɽyS  J(&iRꮕRm.JltX 剐s^H1kA| -ZGF$IA kZ%xʯH aa#u#IҔ}o8b}Kr4Eף/T6AaI3q+e,?wϝo~bvK*MOՔT;5?TfK,T~{PkbWS:-`߭^*_XcKx\V³ܲ:O`cTSbJ*' )F^̈́3ŀ#VZxXfi'`ԪDH]MI%uŽX%o glP|܃74s:s`FĥBȇ#Kߌg ƫMCL$A թ:9)K@4b@`T2 wV]vJ>v KZk=yʞ@B sM3I2jBetk\i 0eW:ʸ0H0Ci k=&TJrre@&V`US+_aQL=S%yӏ:jԊ*ya q9g-Qq$3=l )uCv v5Dtk[H~lE=@ a\a7`TϙN&8y>e]cU*yJѲɥQ[)zdIU-!Id.A;i6DBB sdVGbD× sd&Q#-d25`=D l^#)G"WZ+8a4E,Y_ܹmY)SdEeYI2Nʂ,V:OR!#[o A%3s^o"s]T<3ԧRس8S k'l{u!Lԁ#Nx{Ѥ(C\QϾ&3<x[i2;hX\F84˭7iXWۄ`ːpWqIBd.I ^#xH+Ji%KLS*d0x"ɅjrVLawi0&j%yJt^ B!J+_q?sgJD%@J6˝ܧ,T&=KЏWg|\M6T ̉͡ A (fR%h:,3m_Lv ͗0K6b-W8J~!N6-, dkחu:tɃ׮rDP7vU^T](hā3`}/cÊޞv(līV2V¾=ΓPY~0OI)`AnkPGPm,i"Oa)To*1&$ b?ʞrzab67*\y WR"tZkDM SumMp*YIjݪ=aS@!Q5p6Q5<qIG@5R`*t{UeV7V ud캪.4*8"AEQBp3׃a'*}4FPmKc CFp1#u=lEax*ZvyLǦ:x1z 2 %4}χf-1/t,Q~؊ƽ7PKDy$ӡg3rv]eBsPI&1f٤:F*V_,Hėp> zzϚS"=+v ;he֭s.')LV0W9]awoAkm켖&{CzG!c=5eJL$1ޯ ٓb4h !]cVXz8XIDAT{O2kSJIGPm,ek&YX:u?JF! :4M[+BHUXw m;ل&Q yƭBt~s&'O(U]Y4?͎5ջ0g4k}ĄOb2UtQSV<6(J3CՅR]|&j`A2nXGeS"^Ux? BX<*ni~0@j)A}VցAKT֌UbIƬ1:Kg"^ CYtm6Qt\Xw]@ޖD=J de3HkÌ~WldOEzSSX;_6YN6kI G@mL=`xhS tgHJ\2ߺf-|jDu^"dIZ+GvlQVճ%6-֧@hn+Ė%7~Ӥꬮ2R 2Ri`|l3$(0nٳrԃ4I5 =sP#T6%z;OZ {fp,lϬMRNAq2^:e:M>f5`g.xWA*i$lfF QVu.0eDW:Z}`נ7 nW f٦u̱ CM&I<{%k"4~ kb#{ 9 U<=f1w? =>3> !9^+Ǝ2ēӯ5줓bù)g}_؍6$X}b1*ԣqp>D -*5VMjPT +,4#4] k\G3L Z/0#G|ǖv9 }|`YdGm 9=aqaW(W-H%֟#P@gؤJ6ڤ3-V۴yT5a:Cn%`l}Z_U{RQCx5Nڔ5rIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/playmovie.png000077500000000000000000027504511473342170300270410ustar00rootroot00000000000000PNG  IHDR$W$ IDATxdWuPDe eX6"ý$. ~L" V@IA FiF҄Ρrp>UфiuMשSZ{;"B8p&,`( ldB98Cda+!vcq,o<0._rr9gr0Ӊ\xEbl^9wA#yCYPB! 1m]*D9By9 ўA#AYPB! SurַJuٯ|^rtOi{W:!N'Px%B6Ñ챺xы^ ?0Bݺq#-[&z2Otg`{Ӊ"x{ B#5|#٣pM?iΗ.G?Kx%d~pyoy^O$s=}to−e]yvt:~-!+!2d[G?r~n#du{7?v3v)@!WB!d?^?KJ>3g׾5k_Zl{{KN7\V%!2oΔ\~3gӫ_j}W ׹8,-#dߠx%B roiN'*qk='tiSuwDa0!2ĸ k׮գ^M_z|w3sr:sIv[־\B_淿FM;C!!BN=gBYWqv!.J23+vG>1'}%!Vov|K_†  >+=<9N'+k^ !3"g#v_/R?}dzZ*y}F=@ "^_שp$]~332[FȾAJ!̟[ 'rʼN鸮﹕}a9Ml}oDx%Bur>{^'ߣ{<{#dim{|:g;N'B Bo9ߜ{J7CYg=K__s5=_߼w3sr:x{ݺu|Аx:?Bෲ_󚽞]K.D!!׿umXgINſK7t`QSO}I[y?Y +t"d݆ !pǎ8055ۓ^~ejv311k˰?v/_.y;-oݞGD}].:so7 _"鉼ePGB! So[x+^83~z}-BwOo¿x9?%y!dI9ɋ/cӉ"BF1e/@Ӄy{HPhqn9g2_ VĊ 5{JNӉ"BƳ@/8=ç?=Jy{ޣq+<]lr:BpܰBُx]Y8Nt>Q׷|^#&•{IA'Y?\Oʙ"\yB!o'/v/u:._LHٙ_pADm^9΃!fo8~=Hp[&և8>'tz8=kôaB!dx1R%Q'n_~9aoߎf.q#5:7*jC#AYPB! ]WCUx m|Í|ɷo!v\Ok 7p|?+W}S+oWevv(Gߒ^p~BYh$VCMN;4I?K?*Y{۞k~ywS^Ӊrr!Ob6!=-!WB!БD`-B&췄"(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%Bnμz!~KHB!xuk{oFm1aB 췄8B!^B=췄B! YD;9~G]ira%x%Bq!3J;$zo !(^ !OZ:g/ƨ !-!=+!r`H $0y׍. ![BznD!8.֝CiӽOңPB!{{B>췄(Bȁ%2hHZo A(^ !\6x+\~KHCJ!8v6`~4~ 94ңPB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!< y/$!KE:&su=?#?\,_x˳OA^pG ߄îa~/?o~h4~-U֮]x8p؊׵k@I!}g/Wo& 9 `%;{a+^"B10pB 췄:(^ !CzŎr~KȡB9DD#UBo 9tp+!rEwbAqwaۆΟ#z}gk/Y/nƆc}*B!Eɉ+Q]0ݐ9V>C9[PB!~~ِqltSBȡ}ނB9/Hd7SBȡ}ނOW"=y8IgaXrc~oߊ[ q 2B!BBaG^E>/%l'=נ5=;W~s>Z3xw̍q?W?K!ʎٙto$# !]Bzy]H߾/\ 1qEI{!o7_y2B9Fo9#lciB1컄 6z‡\?埾cwnBE{c ހl .'BU?#4YH *s>nCc3C .!ł|g>ϟZ>'qÏ{"a2BydħB#5dgdI72_s0"w#9 N.Y_z-GC*yxܻ>E? `:!G.bƯ wDm6| 4~ 1w# ׃̾WgW!W ޅoםYO<33:$rhEw#p/NN zw}ieOH姘 w/WXB!{oi&ϩ^R{p_R')rI';*;!sALwx8^U)\ʂK0z-~xYc>◿%^u{|cx{ 333xUW]7xSΟ4^.%\o~L͖z,x+^iٺuO|*j%EV^w8S122~3{_$599¶mXf ^Wu?~'xtKݔe-1_x%"] X ]`ī?}vSw޸Ƈ_B#d-X"ބW ]tmo{%I ~U{Ӟ .U`-YDEO37x#/˖-2 |rnk9炋`^n Z'< v_'b<)|._*|cww7kFEY߻BKkK_~8 -DQo߮~Se+w{6lz-9y.!))_^@-I/"jE_}՚, J5|35{I9P&݂ûgm7ky>}6)[_Mq:/B;$ VRsEFJ\ޗ(JꩬXkW\q>2fw}ٕH7C(iʒ+kIeݬ7ISt%z(Q=]o_ UIH\g|͐$)"O|"9|pDICӟ5 վpQGfN"n7jPJD-ܢuB!dJR_ x ypGY\[Eu7K~N"C}rPT*FHb*q(]h@-3="j{yr+TX6YJ!'(iemZIVԇXY ,N#+ZYۻzV`RNB= Թ<va7o<Az<>9N#ycp%B!Ă ឋ߅hPx5$o5'Ͼ[?E%B!xj7]{/|3kU9oc};pާJ<ȄB!`Ypk^B:OEٯl Q8LSztm`[sпͨ~{(B!B9Q93&*Q'xc;c, FOzπ?릅^kB!rPxΛQ)!B!ey%B!r@J!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!3ǯ?.c(P&kan<я-w݅ zM˰rh3#ȻFbLJAY./ "6%TsA N\@*fKs94u#tÍz(6s~3:h1D&HӨTH򘝙EVC__ blVQY081b訶9yv( 6SZ6igA08Rn_1|ߵE6(Fky,\p=kʤ/;.|Q*i.VMxPފЊV+54! uhE@kۑu{q)Ԫ. 2f4ԛ1Ui٨#9ȥ3lHy@ jU А-N!)V>Ϣ^wBS.V'1jx}B,ҹպY .=wnB!!bPnXx56oRjn* V$lބJz؇}%h4Qz)rE8n6KiNPאNgy)-^0jari iLNΠ:]/CKazl+).293yKNmŊ%̠P*43W\'&2K[͕PoQ.|2LO4c_.k;t],"|FaBaF^ҨԚ]+jmf-Tj@!(ghER~\FHQ>1OE }NS\O3~Hۄc F3 °T:rR!'nOY!l}83y-]8NN̘hV`Z^/LMnM8Rţ 2c=@ncKZ0zUs3X(s|=OTx/&ƱŌhpî|FF84wBsU,cSJ=O!<߃+c]l.RLEki->.zZסfč z_cG2ؾv8HRd >:c0B.uơ7'LBM4JlQH #s(󋓔}X?oc'rX3g#-?"sj/ 92i]Ks{E]sj2Ħ\Tΐk[Ʊ6v'rt<#Eb[c=bȘ;}w,ts؊ #"Xv$3+p{cmOKkcMҙtrqU kL]#2瘿|x4cvLSJ!-oQ6lbڵWG su|)VFB.Sþ!R^C3 8..8|+ׯ֌9tN*c[rH-_+W_ua=ͭۑ/OarSlo$iK dpAB*l%a`Q?۶"#el:&MzR+iJ֑=Wrx:8b*FywԘ}B~tCzF2>r~CCKGE;JZa`8j0@lu u1b2ibX:OI 0NxfRL?GX`c!6 "3 j1S@I*3=A 4;)!W 'o~;1>R 6?NʥlQQkcu]}:2Xx1FFt2#QZ"ՉB)򹆊L- (TH?pf#AQG`{K?w'3;;~VL6Je2<02hZT yo5ܒ1A !ieךHČ_rrVS_Cdʐ#k T#[v3yPˊq (NQ7/ъ;fL,avBH{gjjI?\iQ%bDD_f3zf8FXrYW] "drTjKhZf/rgTds94Uw)Ht]i E,_zvlbcgR{Eé(CPϠ܌Po41BG6F9búp&u/WgfL͌ZB;(HS#,Y@S(rjU[(V "cEVDAtH45qT%} 5Yk0>6~dRͺT`Ųeێ\ U3h ,[ҏIQ*l5jRTeh j8Gm]Q%8 6\lic8q6-ɍpBR\R B#@<90Ao,XoVCVVnjY(M"Y,wk;@[āl@o s=1WD+qu}+Pag+-;:_bh1+bd ԡ+^:VH&O*RUx0@4@ugUC۞M~zh'+C,]GK];8"әf6?a'~cn:Buw>jѱƑV;IaL@Dů:b`Š}wXep-b`jM®[8ao56 $Hae@GS[M>}˜5;ךmp莬7b⨥+m&n#!`u$ ǸyHs_ldc%Fv!~F:H9o"?< ?M"<߈UX m0M#N7ӤPKěbpsHNbX'Z0K\4Xښԍ[-mmwĤ3f2jt-X*Ya9NVk6MD*~294U'M5 8!<3~JQr{h܏f}\j-1|O=ՁNMrNBA"$FU'nZVU(: ٨V7f#Iig6/@'v/Q灌U'D@'t1 9kcJU'F^$"'ZF0sE6_@r+e0Kv2Q8Vh5C>L"6ѨMIgQ)믢V+#lHI[mjI$ e ?_먮'B҉BY|iKܴ֬]BUuRF똙YJH2냟j91VXiiZM#rDjXKiF=DԾ2;3K~4^o:DLO)QT3y  #̼מ6Ҵd&AvbLFĦ<*'Za3F3vt~!LQd  l#D2,0zǁ% c_gԧV&ʶ }OƆت7U'ZbС1$F˜ H:t3vk:ױI2 S_kYۇqjmȖW١q<{6j%I}Fۘ^;)cnE4+HD+bGrUXǖ^fHl Ԟ0"ȳQVO2Ytm+#Ni8`TY>kEg貟OD V5&hM$'9]C]cD̕R"Fې4Qh_[]]6O<'yILFSlFmMۋlT60ND|Iې Lqw]?ĩS߳)i{m"- \?\mNR-kM"al+NG6 Jm95 Oq~d[Xa̬$qRfr4\f d:g??t$MqmD37=iG M PNL*<>ܺG$QI#N 'pFzeZj*q晸Kи曐/d.)xZCZFq$HJtJuRԘZڈ;`Z44}M:VX|^2z^9CF㵞Һ!-hr02mRVcT*.b%'eT> µض۴^`ӈ}߈Rnð:D8b0OYU VazJƤIJ#Cmۅ|^$,zBAeRSJ"y(26!F;ZE5:}Ij)'\4_Ii*YR1xS9gCIiLN#Z4[*6ZZ1Д6* Ϋ`3YPE>ߏf͈˖b5H!^("("Q(t0>9Ƶ8$*՚N˵ȘͨâhqxhdUdXLr,Z*c#דrlQ(w3&#| 8B-p@}~ʈ̡EE__i[qeil*BQۤ\6F=PQ-kf?\T r5vbm .#K6e7LF\s:LIQOnlBd22D`"(hTiuP:hhRl;>a1ČRuª-XpwEkvy~Ե)-Z;4Nu$&srՏx=xKk_4uKY!uuIL:RQWgi[s](ٵ!Y?:Lhc:qt\ZFt#GLhȚ07jQJu'i?c:P\;dl2i e<=r=6mM)3OaIϓ$uWRo]R JMӅ[Mi̵J݇R_FdDs5@TDj=Zl*&>" =kcwu'fG3Noߤd #TܰiR̐f0WBezxcn |̔&J7e۞XDJgI+smVڂJ]K*dKi`_>o&H3*X#^-H1e=|^ѵ9r&F+WQo5BM᧍wyi|8Ac֭(vb21>J!L( ϫ5=3iJe+cwf%A6WFKْW,UkB wϽbÍ7-+_]#9Z؉{`x*F=Ho~#:4!h^~Zp67æCD)Dȱ H:iPuɉ 5̪ժ z}]"+Jb`TJusFzۮpM T[դC;/Yb%][/rhr$}V6 zx!4(e ъ=7ZhZ?*]njrdGhz}Ӭ,ӨI:ęaЈV Q's\#ұe_Iwkp5qđf,aX.c {QӺnz`GҴ&t MmOcEsuFOyKy*|-B /(k]ULƙ؊ĿnŦD&cZC_‘F&>vYsȈ]oM8(m;]1ɭ I"6I8&SGX29W: b&vɺSǚZ46'"Tk3amFeNDDlg%9T.gBܱ[wCEɄA]@${"m[d26z@r}O\Pa Hfc%J-'{|~Fb3wi5nlNdl3v31{96v^uImQ,I6탚٠L@1&Ikm}lGx5qbtkQǷev}D;NHu$h`Ϯr49,GGSLD~++IBԵR"DMJdm ۨ߃ȢӉ&$dtTqf?B4no|`m7:NfպSZO<ۧfHȦ ;>1dtwo};ݻǭ^Ql%~p?RaxwXtWfN Њ}$=K A/p&ڦIv"1M1TtVb$w Xc3WW|Qam<.G: D!<v| 9mbSf /YScy$ga!ZD1̊c!2)1e5e7mb`\FƺUr5—Ie<-!4VheP3"T ^HQHyXQMrDf0>1ja~VFQbl/[uw?Řעas01>߄ŋa0b/Z\\ 5U.V 4✱54xY)vہ:BLL8}i=|riTj4dZ_}"JJt2HnZϳLjYv0B!Nadgff5$Xtn"}I6ud֗صx1Eo+Wj q캸Ոu)D؛]!k!9, d24$uɦ/,ڮAfMF5ϢZCXUQo, 4kܕrMU^3FG !%!.#L׼ʆ)!Jł-QzّI뾄VHvVYsz@MvRZjnIV-T*":$JnF֝'LNOh?ٲ^s&(reidJw7X62(u|촥 n:6i ciRbWsJ3vb9ok\%J.2fнW#(:"Ms"^8)F q4%&hM1٤߫4Y/kS1u(n 7My}0ttK611X8B?3u~6B4Yة<GyIU'hY?fQI-I͙Db07iջ-icyM JRq^fݰATtRa]8 $-[~` ZwNMdh`'ؤK' l+38>NUXƎ5õ rINy:G"2[:Nk"aՠ JPS/]3ӆLx'M.qaNˠ8sl~ٜʤ0u,Ux'}М\":&ҝA+7%5W>i,Myu&];u2# Ӕ04#6I ,:-tWJפzgi#24cfKk鳆goo:1 $ DWWd}5]Tjbdv B/rV͉uR6Ź eDMb`Ow2mM8bG-NoY׵w",d**q/gGrZhy۷`bnKH]cvf'UQMw#ʮ<3ctDtjȭ]Lg̮vWO:FmTQ!۷mW_SO?U׾}:^b> ax9xF<ݶ zPǮA@G9gg+j?G/aV=6#鍰;6:$lܔҩqصLqlFfQv$45LMM:YtFJ:5<S,YhM6%5\^7>KeS==uJ$鯑u0;3AЩiM!Z$Q5:d@[ l$Ƿu.M79U#2$ȴs~,q4U>f%| :V#)i j9P ٍԈɦ5lDv=k/CmS5kdRIuZAgx&EY@wDOYRYkCWq{S(;Lfok؜WM#"ȓaPYIsYs=슒XDvJik hGbHuxp@|ʾKE{d9$ޕAHh }W&ܳ{$dD\:uɵ6ncZ\-\mՈ,slצ '/v֚&>grLZ&ӳlz8:T|Be.w/iN'jGZP m1/mvN)V7| #aQ֖M{mj4TvtiڕDͥ9vc$NgKl'"m، -8 \zP/TvyKظȷX=L%Qj`mix’k k4\Vv1 bI fF~]xf"L"0TPmӍ:2yA.`"۴ Ij`cbm8Ɩ#شmFnhiT@(FQ##ƈumi>4#9cD4%V{N{MMB╕rI^Z~;ח t35[+)͙`+IEVfK[lCKkY c.;J$Εx.V] ف826%Y IϦ_]ԃo &%-,E[Ǯp|I$:#;UzY:Dj?޳Y,[ϖq==3FRB (EHèߠE4 @`<0Ӿtg{bϹYM~Ч u_(pMZY~9Ϟe^tl5Z<}Q{RN| %aI'0]1x^I< oZ5 ګ 35佤k`6`9Npp`05_f%=5|jTc=CƄ&0dnڱ TIs3hHrB5QsѰf =Ȑ&u^-^H^6D2lYiT$rmg5;XkjLnUGg@ܝI}WH\:6qN+MV7Ŋ[w03Q(#dxƦ s'JfeQɏ7m>hd2 iڛJӮm S(4:_%α1|gx`a⹰Z1FY~~ͩ{m`.԰,-?z."È>┏À# G#M!USO"݂/vz'/8~$-pVA(*qߘ㧿- EilAN.Nyx@Qt}z},KN9##tKBYṇ]P:( L}=t9>o8R ¼fG2 cn.<}G0~f*bǓ/iVh' K2 . a+6&ƕU縚D&*I^d{InNIgV cz?J$x SM7gMZ%@{;bQߢG67N^yIܦBM-oKoAzzu` {׏ny;(:㤇}ܾz} 6hszrjH>Fa[rx^O JiXBmtfGZC5=d6dbv>z |:({qJT0R%:'dwTf LfG4c QoIZn&f5Ӏf2`<5)xWGt89OhQ8fX]>UVr`b<%6_vf+7ܖτĉi4PZ78==qyE}0”,9|4۠$3&XmR~yޠ/4ܼ@|5׹!i}7u)nhЀ5F/ A[D(DJU4Z*F2{a$52>(pYwX K,!qH<P)|C SSsG/7eB&|Z)fn[s42XL/q}2ƘoƵ!}Q۷6uMϸ)(Sr\b:iz"(lBw.gs\,8_q3&$ik9s[Ϧ-ޓbzurF!A3Wnȩ-!=g=zuP))4DxX;~<dž7Ԗ u'WBK+];ް$mKR6U k@d"45¯_yo LpttLIZ8LC̆|Zj@IϞ=3QlΆb}47`z*6̑.soOE?ٽfFv<ZݘFGCF+fS)s&eY5lC7Х(iP qCZ9xyо_B%)U5gΆ|1ݼ7b:{|+5(l*-2C]^'eNs8zdMS֭l*Z2}5]/ ȥ48{oN9-: guk {۫qup:c|x L%dW`ڵ}Mpu9UӷZaTbԭPN1xgʐ 8x~Md!S ;3 IDAT:}\oʹbELx~}ymd65$w`GdllR\oy ڇ.Dq]vTHnkVc'kq`tq+Fu{n99G7DI3[oOTJpݶQTW8@lkgF+?$iY>ߝhp*>_/s53ǯ Lԩkǰ'QS6V 6pd;t׉"Lܐi%s*4mwC{-7oo)7|׉^y٠hs'6 )~_st_> = O/ΰ0<<5UukbōT>fXFZ)GGTê 4n4_┛ζr%މ!Fwmt^sgx+_çgʭy-#W79>/};cij|2* ~fE _:Y,bLG\u0iD+ \1W2j2W.+S,äŵkخ:#S!7Hi!="Fz./%f6?R|鍯b8" ݕkg8*_*E`dV=nNzx-p{O Feo} 4 wyxH7Z,68T&}5`vR@={|_?D,Ďy^HM#X1WQM݀fC,"0Ld \0Hah{n_Wj ULEehEL+Jg"Mei9W,Մ|,Q>,Tyh9U;&Qxߕ-1VN{6m^Q3lSƦiHヺ2LJV__Pv sz`s廖=,1b--6ͮq< 3ʡj/jY@mBXWi۸!vgOS)bRԿ>+dx{: kdʔFf>ΗpE79vO?,cnC#fҐT6_ qM(<9eFӑ>zdT΍kQcpm| <.6L+sߦ-!5gg>(a!U\M7x[m6^$4Xט2 Z`oꍜQ}$zbupMlh"2˝q5N`Ey5V+:v] KsKcXIGfV,յ9f^\_녖3T D f!nS̿5-_xuuk捅0==ޗ[nettr wp&c8:R$D+QEޯL+}./0brZ]hG2ދ(yсK2csr> DC= N{zr"d*ݰ%a [;nHE8myy%_ױx O>r&uΗP)ԤYW穹ylNkOqx*Gdr5#c?>[k=SBj@'A{u+8FF5b6]bpF3ޚ;e7eO3tcNޠ7Xצa&^z#SUשU~MuPolԮ/fH>P Bi5{FsO M-i2^K$/tG11OdZ\4lѳӐY쉦xB&츮f)3&o?˄M n(>5WY;IxT8H+Gmo jm)E&biqN4HNbdjWF(6,aƜR:7j09 s0ZHlꑚVښ5 ً5XHM~-z#D3sC1-ă5fbhȢdPM#v ;c\|<14ƎmQ9NuΙy $Q\,"s[ql[kmnk!LSĎUOj^oo܆q|椏vSpֱkWÚrvwnHUCjv0&V\D_C+.@nΤ&WULȧ ڢT־o%Bܴ"C`5c6=C*UBZ"-ߋ}i*w6+|w}q>} t9ɻݍ$-}9Ql\shmw'-WݯV 9?''63Ze4BX&-ϯ^Q4.nݼ'x01pcdDJoT"9um|mN0 ~ϑFYD9 F){m<_VmfΔ[37`)!`^pWRq~eu.ex\'qBrsƥFNm#2{]^جi@{7P,tPI99 Q)Ё MC9#/8 {u|'}׿B1gBvCQ  вc5~22)_ |7Ġ?`1_(hra.uX㼶tGCg1) ݧIgE-oU G፩Yl?-Nvtۅ 9^5\qpnyOQֱ"_Xl&SQ:R,42rI MQ#RnuCTk%Αf:C kB;U8'X3DAcb6*X!j4JÌ̐0ҖNg,]+5Yu'y.b"0EnY亮!Lp8?fc:xD^̗F}،:rtfď IU2I9483J֞ ˻?2+ 4^oS RPcjfBl۝&MwvHUmB)Eۡ]uk& !;C!wsyR, Mon|B\,͑:D^Vl\D r v3-Nc&IU}@t"44)W\ Ј\ش`\¶kR4fMʒxq:;IMhUAcSZ+Hu5mk$L-+%iDiC}];!n9AK(f $C&X_>-@2>H?vDjv}"2npӕGSm7rp"Aw4sl&@E.}ESk' esC7MMH.D#лL;òPÇPִD4YnԢq()ytMr? ^08< X5X^o| oã#+?{~`wݐ>on]Kv3WCgƲpN["RsΆ[lԨ66cSY|v2^z||$W譯e ^ifWN_k ".Ke ӖwbHQf:g.&n.[ 'CXrTg6l5iO43#Gp͉ <(KtW#gS$6vÊ㠺 x{$b,7=f2S\@kyB(rX:"H/4T+cGQS75dބi!^)UQQ"cMkQ-DE[xcW׊/!t-;VfqxPb(5[.Ѿ*CꗚS#xӞ5Zf˫,Eʤ_10Xqjbg*fNoןa*S0cqDav<+q omHZ^kKya'j(riMءFjc5jڅf;tx~bR\ D7[q|&_ixMmphiDʮ.,{ۼ~_M].q R$OfE_=6"zMDS~6O ˢE[#]x;"!>:]mb#GjGYmwbh%$wJk`pvX6??{{g_;oɳX=v*\0Q%J7sO/0>cL*xz#E{}f*bwSsHg׬<^Nq8 g3ŕF^?짟bH*tq$JnhRMvFTĂр#k6`Iqf]>@Âd3!tu)vF[9%w01ffwS|9#䃿3EUhA!"lTCՀƑʵLO?fNE>CVs]剢^X0Ħ#_%]^?1..Of2drnÇ%x.PO~,+Tw\я?7qj%ajaaQ-v|F1X>296Vi<8:y6!ΰh͜h[)5UXc@o1X2"Xđ tl j4u܌ݛa#+!9C;iC Z.6g4ZvմK7ZCPm^bu3_.]6\"A+kG^2pqNK/+6''zļ^ZSԹ㪔Ә驧>=;fh4pLÑ~ a!:nTx!59̥UZyxP=W͠n0s-)`&j,)h drHw9t2}vZ̨C9l پ*Q^NMerF7c7[YA1M7:ʷl w| ޙV16ZLLy`VȊZl Y*7|آ sjk5EƐ7IulܭVlv(=;M%{kQ,rhswY'XZ:(|2s+9eSupZnDiU!n`{CBy ٪z+\05b&jV9f<4AA!ڑ\Zi2!q4l^bAB?! }/7=QWjFUͶ ѣǸQ9RK/_o?t>ӵd{w1Hy7_]cz 6(֍!ter8VQ&cGZP^xBpJP91`p pGjۘrJiaku iK:1"6DGݼi- iiTq~eXLdrfA.|t|v!WUKxWMbJC.VtV*HV2^ݸ'Obqq&.bնbakXfM6:#.sCKGǩ'g]B3kC%⹘]IƅMk)LUt~0VBRBr^w_MmMQZZNnMslVe6tDi'#rem- c 9|MebKhܪ( EZNU='6D4XJƝ W*!+$ڭRÕ %ʤs-^ ZWr5"+rT5{B^LT?8Repۈ<)"d?}BlM1'l 2!enAʊBǭD`,up25A&h3f#Xx&jasf-箯!ơ&m񽦍pY?L+ʕTVVGZwu1M2cΓc8ڙk%c=s3~gY2iux t-7ڰ1b3k:8"Mܨ(k=$iWveagRDc A 'nr,:i,ыQ?C|nM6?Alp,"仱NL3zke*Gcʈg;r%Q%ω]LHyJqȌ U1#쾭w32]hДLEO+sww"FOFLumg"6 v;^o-~k؜NJuo~9z:nIz3ݠhDE SC,ߢƍW]`^]b+ W%ᅦ˿~Z{8<#M֗u>/;s|D*;p#SSCS&"tf&q"4m^)*7"tϑ!^.D܈"LrDN&嬊D\n_y |p&:238՞)wf2tF%K[Ϝ[mUb+rdMߝp`Y܇π1$97y{,& c7toNs=yw\r*Cor L F᜞]jFđlz%t.D0 !Y4F@:h;b>e*0V~OxqA"G!pΫՈ,fc?E6*Ĩԛ"Ftv&m+1k,/fSl*W9F㾎}dgtBNwoo;w #4H j >jFadPQ_\L(r3x"iםa?eE#]9ݎѮy9}l gTpv%Zl "4Sa8 P_Q;u llDЕ:*n1WT( 7J9*ܝ[Z1p6Ü ۪ƊP]Uuҭ uI RFLi4| 5AMvqSF6ACg>;iU%9JS\6[p̝clKl"#xQ+.?fh) <({ʬWƒ9i{Q-iG8lp*(*[7p>rMhG8V HRy]vnZjH"S<<.4[!Ar7pȯSuK)Bsk&3m )G k7jaCjPRy<_D*k ~tDz嵳5؊r-sܩ:& r*-Izd7dkX{+^& R>N,v~__`mMb)MkpL(m/ClװlgQ3@#*5csgꖹF7Rv̦64{bO6ڳ9[k?~#ܾyKHT_< ]wŽ7O>H7nGdjaˍ,1zcf!1¾N]ljLhQMhjj+Yh_iA>:tNqu$2Y+2OUKCD5tH!W'n'2:Jz X1_]j>/FN? ~+Z6*R2r䮱!Otp\`:)P,ht-8=Q,}Ƥ@o6!9 {/~|{8?;ɉ?>xOnֵU nN`TqmM!M)mښzDZZlʎEfMvc GIĵ٨SmU@.Pf3{J`\+<@ȣvs`|tԴ9e[c}<":>eXcqM#p"65Tz]nnYV ϟ>atۮ᧞ȈR\,b+=NCZFȒw{<;>sr2G!/Yj2"ɒf2&~!ҎW]lV+8 I .=7ybTjrCK%z7`zq!nL̼(.>#b2t3.0B؟[ :vf c'dEnFCfJ蔙ѽ7^mWsEͨuq6ndf{+_+-V>SFpZX39_]NE$;F=[+:85=s9)?Y͒[(SL9C G73E1:g;N͝x܏3_,VҾDT3j!tFˇƴ^:>Q>{mhxW[7qdDa!j-;Ir γapIMx>n"T`UU4b4 \~ ! "5Qۑ+Cc[+59EĆN:ח̍vdtmiNo7,R#ܢ!o : q N0cP_S#YJְNۀ dem7GȒ9]V>ed8t.Yn\Nb&]m|gnǜnP0|5T*cG'nO<&l/;65oQ ?xwp '52Ȧ &~( $wajDA舛* v2*0} /<\l7u^LӓZBtG\|ŧ*?Ɠ}d|cܺy_:w;ƝԠ~_Hxv~ssO(xX*^,5!;=hȹ4$,I#??uY1W!+\\Զ&B$ց|4oY t(V"rȆϡ΅i9YWc0Wѓ`hB Gz`3A4 FCN僛l¼\P$ׇaW{Zt{)d\ܣ 1Gd{.-hkܼ'Z 䔖]@ym\8{MH+pO< W<&45+x3W8=?{?d2,y5×x.TwjӮ?C|D۲->x]=N&/|hgyɳ\0cVcuE?/~s<;;~;~tM# -DRv,dSڴ0$TF:r@!)X@:J.ht2drdVNpu+7K..p e7k2);+E&B.jitK"g+{<|xBҙmj #LY{Af ]]Y/. <{^[w[lW+ܸvޝWqm\?<S}ԗ VM8N7RE;M,7ss{r6ffQ˸SE[&#emJp*lC#`җ{yoQ!ѲR̄tpUlfy},Ox,lmˆ{ۈM;)z4PwC䔹m9%7bڠ.ْqGAdvkNfiv-9B[o}'89JԹSF\E)j }nO~WXNQfX ߹}4jE永UZUs7R3p~>x/= ǢҽHI62>.΃ؑuz^yMe#=,KW2QWw46^_>᱑A \"0=r>J61'׆ȕEge(mp@C?Gñe}c,h8*Ԩ25ԙ yA|x]8 9ؑG1!HDU9)x$Fvq@IJi6luP@_w2iNB Vo- Bԅzͨ7M&r NiHoƘ5;RT" *NP A@۸Y޽gM}{)5ݶO%zbwಂ6Y:,th2ggR ȬmoKuNᦍ񹈚ڳU1d0]+i1%MҩydtFF-[̼3D5k{_}w06̈V#V`9/} ?}F?x<-2ͨX,>=7 M~c*0\ ЈU]a^ct *Ъ<BQ03q*+# rY Otu:.KyUɪwm ` QbdbB϶d"6ӤTؤވbl<:Su IDATEn/1Fͱ!W6֧:qYςʛ q69F3t66pbEXpbkS5BLM*g1vPbEXQ@u!W_^2J\Mx |[Խ]m0D\2p}+?6+2o&+|:G*wП=yJd?|!~{Y啈3tZ\/-)F4r$Fvg`azV8TG{]MuߒFf!cH7 Im,?Ѩ)O5YnЕ`!..)l-b4T`dERH7VtB#\>1踢QeB?!67o3!DrH,:}M3wlQf5BH(24  q2H7s!Ԑ: QyG( s1&c=RZ5D9(bca2*Lm6zkgUʒ܎./r^X_;:\΅ԛ }Uj` lUZ;fRq|x>-j,;~B2|mq1'~Y?ni4ix0 i Đ&(B>uXvFgaG>yE/37m!2۴}rs`z;.P_ifQ}FF \.r,V>,j!cWCdx { Ms|QǽplY!V,>~?*w Y6tS)j!+e9B3A⵻ouSe_vb)|F,{ϮNpr!\yOF#GCMhsG&"F۠ |׮!.)sԤb|VT'\^^(_5s홨w,:c#+fmSdt_#m9_7^l-Mc7)6BI.ٍV+p B^E5TxbSܵYDiVDm|9}G7tiWv&Wi"TZc3dx){Ȼ{(&7-F7qX3CwzsRk|ɇ+8]<~P?`ɤE&@n,D n@:2 LV5 ΢=yӊHSpmfhe,\B<*> 2vWc`R\S q[))21)W&8+zcfLtZ=}lXYxMF;..L|͐!IF#:_;uj(olm@brHO w<n<ކfއ4gA+u?tlj`L{%ITG3ctM3rO.ױѭ8'%pt09-+ƘMjW{MۮK BHٲQfx-T~|vYPF4jko\hGߍ/cZ&n1!SiE_nl|Ի[7eA*_n^4m; ABK Y6&[Ta1 pDY~"dR=FDG_+>{pSONaYF mLH%vb5|o}k8==׌l܋Ϙsx JHR_c0a`lc+:΁9fcdiZ -~PO.^9*{-4XXgQZv0ÀzD9,79S~6 UVg8=?Ǎ[7? !ǭ#7s3 GH/9QTyU.tC>r_Hc,rHiQU 9?{z9Cgϟ6n.+2b\.(tڈ }>jmacv,<9s/J׍='Dcq|Rk*΄.\"}erjqba]  AG&$r4cV {kpxW8\_2~擟iX;-Bƍ-+lzGjԚzncSw8y\de zCL_",گ_8+2r[:9̺88!b$+H'J?qvvaSaHp#&sPץ%$bժ*zGpv1Մ=^`v;ul˕^I-+oD2;n`?u0{Qm&t"6ȁ,ރ%41]GcKXq#Dw٭9|6;)dz]cqyKkv2B=tz%̥ūW+2pM@jy%Ik ܪl̳Dt jYL "2iHu #>N .[R^.b#b'IҸ}٩Px ^ulmddE&e͚,3 wsά U(T )(Qav_)#vÎԤ%RPsey{fǷܢ'D jʼsgMۥzGƯ68ϱ9CtddxTd.1\q]K i奄g}mꕠ~MFm r8n62Tx3}5D6 X#(&QZז LoKGK{5hq whPfDTv]aTU3LQ;,k7*r 0|N061*uE>\5FNu޻C+kݩ:Jo XU9]kYө։[&s_5=9Q@*7Wô ʰ^WPd~i64Y`^!xf]a{8j_o$iM[1qx6~WX+$e"זE&,k A2c>8v#R{33"a ^I%@'bή4;8iuL]&˰/РiO5:B Rĺ鱣FΥъgefS$ݏ7Ev=>rS| uQ 믥ؖ踃Ao,M9b&Q-Df4H wpOpz~"zh79`qu gs>5^7\IF1 # ['Jnf=1[p}3ǨBbnt _沎F&2aiI&e珚\Ap #adaw{BN?љ#E ]ӤlZHD H|nF!t m\]! AO4({>2EQYf"p0ծW4]ֺ}5Nw jɚhwF5T$Us5]_k1Y Lf )Zg]LukC,nl690Jh#qgpp"G.ܹqQ0cww?wedEUF&1̆C >/4j)|hN8HU6 c,2$+ Cr,3uwnazf:&/:LtP݊ u3qiޣ\q Y PczxUiE=jYb[ZZkTU[WFEilBǏ\mSyz9\gVY_*EU)FKq +n﫾֓Fʐ f#PG T jot䓓/ N/Y7u"'-.O [}i]Mu\] փvTKi( a60C&bw3erY`+BK]˩y@%0+\4.v89c;0T|7@;jzn#U(u3WuFd$Q?z;K* y*_jˆqO®t# &AUk3Mp4~HtdJ QNח: סDpqÇx9,f<7^#79o["q ┭ƿWvri@6`NI< uW,_:Rp+wR'zgv7 u  }&? (+9}G6Vl2-A??qq8V_H =}\'+LI#4nj.%2Dlnl Yh1P, QMK?nD'Պcv.ڰm)S8yhg9Va&뛛b|L0 d1-S*Z%Mw}tfr#KU8?9ŠՅ =0UQ@"\:L X#fd ̖+qe7{쫧X7V 6޿Z+їX?Kh#aT͋Q7sRdA]5#FVTNNM ɞ[%{![/Xfr.\I5e6R2M#)#-dŵ9 MM+fҌF"Ϙgaljኔ WY6#WCMSUTZ]AÄe}.YAT޽lzj9O0xs,^!*|S_(VhYn6ΕŵdNDu6f\Jh#lqDE13̧BK AByF+G)h<Q5sɃP=ۭXPNjmwC\\O\LdXR+qZ [X,1UZhtZj&hk璝J7sCԋ%P_a{+FH|( 0o%j8h(' &[9vdhnS23MF*ZZL>޽F2sJCQg: q8꣘NNQjXh+ız5^>ljDT y`ӝD)됗 ]-EbTڀҏ,+.3jJO5MAǪjCkǵQSyn}ܤ F0)Ŏ.lMJ e(B|Q6z*s$.uh{ȓnŝR>[;X-o\:~ؽs+tvvA }QEU?ɟ'|?x/Q4ORU&0>0ݖp 6Bw BݭVA,oPWr0(+4&FGwNVsEMjS1V>^5ajn 淟#a-JH])mbM($}O,ZF$ K]"Yclf1]i iaM u%6Cuf/M,r2irߕI" \âh :˭ U.~?>NN.p||dcDAs*]"p<7\6Mw^zr)*4? )5Ñʬ `Fk\,ـ~X.oG#B2ao٧mщ{})5d=#uP2];ӥҤHmU:P+4S2]t,ZF[s8UͦN՘Cu3,'X:OKr  }Xl.M(Scĝ.Ύ_H,"%-P"6GpPװ۷c>A5( m|Al4`5{4mliN90naHpd1G璛1P}u(pœa6bk>-T0w/?G7v{CrW,K-8@%Jl?YbM++}KAi,!DD;=i$)V8YS_7oC"U+YZCPhNGdžS1A)ijq뚤ȣ^Ɓn|+sۚ7Q7| Xa{aMy6ڲ5~>>q=R҈;.qEtVC,im#10lx7tcsS GvZ9X,8ςPCgALE*q GÚҤHr\SFa(F n^6wC(YNYn}s5]4{:P 3dl|\@5aC:n2Wh8}q *s'fHU V tCC`mmnYlhl696>wMwaT+t ~›R.5®kpàn7L6˲cWDZmD*O6Oyġ[[sʮF+xZh( E#oh0p&NBh[UɇD 3W5~(K^&nnqфPhM[T ]$[P~D@;R>eQ0yt~o^Ջg8=y+->֭2ږM1")֗I5],z)$)R)0?`Ue(u%]d"G"&f9DLЦ{g'+,ES4 Fph`1cT1aggB$ XX)54>A u0k8+|M_O4،4>a1)KT q3ՑBH7jz2T^Q$ќVLiZbdx5A xL%)2X) (/Es=t.,ww˵D ʹmD25~)0Oxt>G?f F[x-CyoϱK) Fl|Y4- |.йVC+kO6"\`oD 4Lc@Ġ?cH%!BN<4f:YaC_#H4RJLI6gQ>5; OHͽt~htJ_:4ӦhSə89Z$'  kjD(w\QX5 s LTT2:VsVGS3@!XcA 7l{TKkJ`-{=-޸2Z?8*Ɩ {YkG=烍+㳤5p)uvAΙ9# rGAOѐ% j)0^v[:k^Wx<ҭ8lNkT|k+UNN_y+QSiUaOXS7 s m3u:{[.sף&!# OtU_Cu׆n[FUtoN5+7nE@}u)pԞaKUsq55z\k}kz`b1Jpcc$Zn :Aj G&ouR0~ۼ~_Ҽ/LYԎNiᆠ8[U5ZVm;N+ܠI$66,z]+5ө3ߗ½]Qj}i6+ʍ7rǺy|x5a |v\Cg.KWUY ѩ*t5ڤn!NФė1~M&*3d26g$*P~`j~l?O%|\xyzY3qo%Wj{аcz Wb4Jal!uec%//iOejJ9d(B7+5OIĠ] Ry`|h"5Qd :t8"Mikh D]#>dž҆6[uQJs9b N B@Ti\Ho*C|S|RUdRG9 (b2(r^;4M>~FM$lFZҼ9Xf H %\zÃ$I9pGwnޭC)b./,Wޒm1U굚tSk+XX7-eeL&c\\;!-*\O&8%&62䛦:Ԕb7fƦNNNdßeЀ;'9S2TQ\T <|"])[7ium740ť 7h7;ҸDxgkġco~1)7FHVSnJn1!qƣO,3^T7WrHy_~ޛyû!=ssuWB;'$*L,řD!{ #cTU nA[ؐUIk//.U̒ 09[cLZ@ ^f=kJ3Y*f8;g_0!$6ͽ+'z2DU au`{_&] xPPE1r̵77ԃMڮnV8 M] +wθɯEwMh2 \VQP5H,[oKןE݄fjdnt`%!Mu )5/Rsm_g853Lt-VNsibrO7FMMSd2~ڣ!n3sj48]g_`}/ň8HE6MA5[- %\ 5mL mZt@I|q3t5]\Jpzy>>@nF6x^Bt8giZ`w]89{(e$ZAzl! 21Q)43k!^Mndzَ %ɦ э4*6*{KȲh2oRרDl& ȽFKco bS5*\ϮE[ZTJ3$0>{x a=cQ{kA"%W2ռYnZӃe).FuT(OGD5)9`a;EǢMl z!'D5-ũ2ďC#F[=E3ېGRG㱚 E-RH 9eq.-o,2#\B,/-)Uqjho:?s-S{pTA{<aBUĂ 1\ILNBmL};HQ*P'hV4R Ca㿦) Ҵ CN=tƳrLNvGGB-6ndDv[uiy(#ih̕ԪrHJdƋfdnp,2 L4:7NWJ 4;}7dr-|{?_#r{9|/I ڪ]"m 0h+ZKG]5xMWI.tvÐ؊5LxO=$ w 4:x/"(Rn\H#8tcc*B%9T3[$DV#EyUYM)dNgs *. S50ut BRnSpvv*}qHbU,hFTq[tE-:@}88ttJU gXSºXvjjOuh^..J YVUV5ĵ.1tq;NPSm\]=몦>m]XQz1jZC=G zʂeb\9t"2:4UczblF1Z1c!&w\`V)C|Fx1dž70ʹҘ#ӊ#ee>P06 5KܡGݺ7A)%yJX:}/ rfZFyF ޥ>o"s ͚ .kBG+8F#Xٓլ1N]DLA viG]77A:;]eDXՌMCO6#FDR`1SϦ9ԬgkQ>zh!|oiJ:55.lmXs5bCWrm7)AMfc#EGj{WaHk"ZS%%ljmdacl3Lر {*vȢu^7@ޢh61',F L:[j>=|чf2#쏔_KjC(o7V~z6yq,3z4 &jV*uZ21rܥ̏Ï|[-:R@o>s"Jto#1/ys a$᫐Lr1Xն2C.Ǫ5cE[qAW]B5 !N6DM%UX͹ARy^Ecz<RBG{\ȲQcvrS, W1ѢFuشH:C@t"pup8$dFADf9 6 c ('4.C z%5Oh62+durgGE8c8`8AD؈ј-MR8S+)Ig#p P);h5tXaY)3Nwis)+SZ萒Mo;@8C"W,jXR;:׆ya2˽`L2GXΑBIk[&x+yHI#\36UQ%tv Ȕ⍷/՘'c1i|yj9F,UdqMsdD \+rMܹ}WlFw I&+F:!HF%&|Z| IDAT2#rxs}..tmt{=Ngj٭N SRDzXV2|"]ZsGsH:h\N40e.ĶDZ5z" *.R$fTiU!N!AոP$榬B/䀃SS䠄߷tb8"uz=gs3AI1^f}5Tg<tuZA&P-EssRu:6ew4^k=9Wk>V͜&,h#+:+a8EX0@ ^^Bβt\- 5;lan\  a0>5i0TMӹ4(\\Yӣya*+X9&;*j4ÔmIdMfƵUh퉴f4Y/otMh\GHq|@Sm4t:gZZ"y' edV9iHeMbhUɊ;Wa95YSzaIXj c*O67eVU32 p7eȌrJk_ƿFӁ^G^k;"D֔;C01x@v$Gh^gV%0:^/9YT&}>yFؼ?vVL`2.:KVvhȺUa4QrG#7jg<hln1<5-8pd":zx$EK )dSѦV13"CPUɽk1Fb;qV,cn=y|)~5~SFx#looӟϾByL3qUƘYO *+*Okt}վcb?Ƴ/ (ש6T?V D` ;-4*GHpt-s+0=V@1!4D45pLE{f?wX7o_Mm *Sײ4o1hBm^9t+!..ֆDzK$_&X cj;\"(&! .[{8??p#j6铏?w13\j-&6&GCm`o;T8;x\g<.ҟI{nZY~8"C"LEd#ZGm#t]QJ 0\#v8K/0{-1‰%bArMt2E*e4Z יv.+10yz33Va+zGd0HvERU*h;)Y&mqS/TJPi -6h&[<'0TDi8h4[~~VPZI]ٴN\^>UvEF 4Q9RdRYu%C>jHV^>I6k a!2SU[#˦$[r2GA:8 ):24bU ek)f`q)- W֜ؾcv*\:`bQK]iJǥ@V~0FXK\Yj9J ,=E.GK*Ņ\xp),K_\ii>+C32/*g,ELl G =[3!0wT;%:g ,Hð"Іm msl޿F]FA ꪳ%"F+&2U-vueZUkNYT6͐5#u;_ ( F3꽏JC+Sɥ0\hU}5ຮ"c `ZNW{M,{ݚYw SU>;ot ]o|]Z|x3zAy;~(xf>Zj% fGy&ؼ7u3҂:Tj'Ē  u eA6 NUXV-$Th3~0PQȒLZ&1S N֖Y Z}*P'r}|}։s֖SB̋$@[-zB:dx]%Uӳs`No?+mtFcWgg% V+z4Ri&nO&.od3KZ B  _@?LnH"M#W&jx}̧s p궅*H1~-̓43[-M ̖3'~OtVKV1EMb4ڨ(2yDiO{aEei\dJ5P3I+Zh\Gtn^.kd멘'12IWQД%1:[Rl 6㰉\j#r>y>>y]<@sR#3 DZ_ꩋ\1G\8 0o!]gD ܭv{gxt–fa-1EWݥԱ,1d5aj>IVkdB-@AB/=9?;1Ϸ(,BF'w/knG6, i5<\{4WvQ Rp%PZoiat`(-ӝI>X b#*)^|xhjE\dVSDRIP>\DmeHu T>MGxm2,ivQ&kT"sH-.qy=Op~z`ib\#N-ލ6 ,dnaw:&ח˒48#sZ ɡdg=!Ub &ѻ ;ݠ~L nCe\&2YҳY |ύ'H,c2I{^Yyr M;],o"jrG Qu&-Q] %OB,ۖ{|s F-td_e"QMUz(!{!"7U+QD8JtU$v|E.7;xu7LNwsIQ;W~ƺRocݫCߒ>U^QE`9v5Z˘2 uY:yFy4w;5Y7QHS`ʗFYUeizPUڔA"R:m[cչ6"38ꌠ!*իX$|6i7-NѩCz k`WftjWŒL^l7]%\)(56^2$vQuínQ?l5 =K{NJ9bX߽裏˧ ?3O#+1Vay}v*]HnP"t/h9l%3\S`j{x<ȶz}CɲOLBu>әhOyܯ/u-B#&F8:QuN s eCi7fuU5a*Yd9cSСPŰ;Mbו!=x'>[fxSIsG#la>?'~;C[CG8>!vǻ8=D#hSDާv{w/p{))>9^\ti+AxIoC}1~\^^H R>#S/-,`oGGGB&ZEf Ra z]&Y>IpS/Pb<?OLbCj"1.d^'(kTK&Bgnga9鵫o4Ƒ8.dBzP%H]rP`-<L5zg5 (S!ncLkW*Աj0MbxB`xG88ׯ Z#uP,WxF~hjZ(s-_\KX*Yɿ] n7T dU(rZb ~p4mgg[̽0M,,Y!>4s&\s-3:O{k8yAkB+Ҹ̲9kh6{8yfE?,e@.Lfz \,nEYPD,fG#qjV'r!kI2l-9BuDg8[,0/qK-M$Ze%E41V4bJugqܐ# m\+ ń(CEƜ4̰M2rrɵ,Slxs%./N8 Ȁ#aBUu\51ip |s^ϞXS<>+Z㇟ s`g{{GXtZ]<[B{d_aX BWo^/ǟS\L>sZoI%E' |q}&?˥a1 cCiXp*\Nay6-t 9O nx{,$l>z`xlP40ZDӧ+Q!lJR,cY;=4i(~^fY 6ͬqOX!32L/_`4ޑ ;|åFg wrv%Dl2h::47ldӊ"JeJuf~c\^To6)z=[ѓO0>13i&_> d"HN%Sie0^ YiƎܻNNb[O%RIY,29TZFVk1ywǂ#Hp)Č}>m7M2q+9+AdJ "_$Bt"'Rk>@ōmGgJhwe7ra]nZE$SoP(FfjydeF &fN58pqM|7Ao8STlL*Thj^/6տsRn1En,TI_# ʍչ h5q|vjQVǔ[:f#bZlc9V fS)4fϩbjNXG 0SRXVq^Z#5܆*5RWEG_FxqdC\,a3CjifFo߼ěc|gO/4\z!Du6K.B-u]Il?7O//_7XȗSy%53ɱ=7j;Nz8nbN ,zgazKFOdQ7N6ꥢZb2h4ƳWq\ ) såy4A:| EJ&lCP@A8M8P9fNAZL2źLJX ZQGԌ_!.3p{Gq޼~qwl!mm|G(BhȊWRd;qG{G:oub%C_ne RsrvG>g}뛩"AgglH,>54k6T L iڍa3bt9 $6>klj48bN$H"|Ѧ6ۂfI'׼|?:CbU[bZµ}єŋxЎ8Ԑq)C+#mPK3y^_d3УtnqJ+tZʐb==! ~'냆Tr/hOfWs 1RY֦%j]x4X)?>ɼ>EY-t^t?+x 789~lylu4Zi$TaS D\AD(- ۤڮW]v ==0[$i~ȝ5@z43;cAVI XԔE2+@Bߏa /!J")4&5) Kєlg~V/FayfMk>Kq[y%œϬUhR $'\%fVͦ#{:C* g\R`wWS,+a0+  ]G=\V IDAT^]!# $BI,N=,IESfU c]ڰhp((=*WEU ن FTLQPOeqz0j";!QtEVݿj͙v)lePm/ 7bPgx]p;'3rhB rP/ff:\F'yKG}U3qCͼr9f~[ 'sHUasMZnwhSn6EfthޕJܜ!OMSP7S=eY&)_ 5i἟i1Qڵ@FkY^>1rR`QOjGs??SV5c!5:M2t>6T[h.v h(׺^+?PЍ;moLZ l^] {~A< 5º)\W#M*!vb埋ƌHCBꆂB4mkQ٧VGEX'A=RrVט[I swqD^:h8z^ MlvY!a.l\R](^\kLV٘P,b6ߧTKqYx4yo6E<//p7 *v r8(-ifK=p(YB Bu%zD^kR_Etŝ`LfzS|tP@GViã#z(M\Wb"+ J5ۘwX%+8$X#FiBd/Hunpw6XtL;Xqr!5[XZެe^%ŎLkHrOel.0Ǩz>üp-!` ɹw8.{W7>g" ͠ÝLrt:}t=?¿7ZP}UĸJ:VKl 6/-~!Mdà ;g78?y}>~/^LfA<_G~_۷xPٸnӉ"dQ$:AcJ'i*S\Ҷ<8^G}4QBj"޼y)j&Me#<17ıMV+)D>iE$c6,,+ŤtD!-K0xMbc=#?Շ ].%.jee!dShr1gWkiŔ2HDԡS(C! R.)ѝi%97өVWRau`p6- xq_=}*׉vD.6`@^[&)F!D q =W-67FmdHg(ƻVu|"j*% CAjs%۔ gDݐ, <-X?I1\OR[iQU'j}y<߻wo_ mff g-Ғ.1>GȬ̰R{@v1ڽ_FABjs(qToQlաE7{zZv/+ q}ռjqu֛X$.A=hCܹ ɻj!X1 GźR$ZcE(s(]Ί҆y娹S W44; $l=@@.ejRB5:!:h)T ⬂*Gc4'RYj*߻>nU)%]d ɊvܗIRQyEM]wrW\Zxk#!A :"]< &X ᘻ@!N4j>[FCk w` R$=:q=o]#u*kPyg:*-^&!5z6 5z8 :pPӤ]cd3?(׮l6n(,dь;C}k7ZrCA[iqF>ΩJ\^V? Zh~mM~y2Nt`4 yL챡[IXlpqTEAe_P(EQI&/:::B_RPH ;I'PoHdsib7uw_+ v0=zql5 jK<}_?{zuD"Dx{箬w"_gx4,::Q,GϯoK p0> BvJ1k,jlKi]\\HrqVC8,\.A"Y)*U). ;p37..&B bwCPܸ. ܹ{?xlh;vIWwR'Ҭ׃VHow\la Yu0+&\#8awZNjU"o)95 ِC, Uؖ|A7Љ*f=uh#qsĿH^l:HPD" lژg}ǭ `P{=ޖa юq9l؈䥰3CIY<4Rt[=UtQa-:6 9B.y(#\1eQ]LoޤǶJNsNj7$cD)%eTUeV.̞0<l v2TʥL)S E|}}s}k}# /"ZFWLrv#}:+ngH#:/' !B`b mnu jd)-(oG3^ f1> ӡM눆qC0}$a+4sY |nHZ>&)z:4itv0<ýwJ1N/BȽM#K2a(gMyWrm>!Q3em>ΣU>4tϢ+E*hZʃ6;?UN7DZk.@Xb֌Tf7wlX|s})CDs:z+Gd~$Q$F &14aKtF@`#zβXմ{L`kJ,g97#g5=76osR4=r&ܗ| bFkmFN4e{^8qWvoҚ'-F`C\o; MJfF:V憌`|VnUF`u4_痚ן]2ю-? @beMqU?jfRk!&uTNIR\+00”Oo@NDX ep;mhRS /` ;wna1`NiN3@LlSmuUj Owp9l )qtr755?}D]9erl)D(+6M6 bM.'zEϕ!P˹4<̙=6wݗhd& B68%m*L .L^cxn$:p+o&ݏn<9`' TkÊngGQe"mL ܺ.^Ke I2I-^fk0k 1ί.3o}v=mϞ=d1,@&=q0S{r]!qWCş>뛷n/ƃw_\=xo^Oj:͸{wE7^dX{~v.ӏ?B\b|4^BiȰsA "|JoSYqddn9vu(_ A1>Ci'τ9&EBPh-HF=lM56Ϟ=GWAz&M&^^#~"qm*<.P2M  cZ,'qaKјt<{CbFUpB&fN%UCꗿJi%:W <م򀙽:DSTT:m̖K`^r3Wr5u1_B7zM=gj5viFavt鮸E(n`@RӉz Lcln;BRNO,l*. slpvˋVX1"rja5(FKg|vm9@c Պ.R\GUCt3{wODArAmlc2"%#AI;2*߉\_~‹ ̵'ћa|-/^x<Ë1}|=;8>zB.٥#`|]o'-\oL|Xhs&~<fZ:5P %HU-~+1 ~*hc%͆Xk2m ʛ`ԃUL,ܑ͊HsW(+4qYR4u%kTeS3rI/fgs*,3OYpMs3K\2o-Z" D/WPףEMj:q٭7gRyz!quGB-C#^&ihۭ94"P ԐS#Zco]Ri ΚfXC"6cE""0G$"ݦAC||fQ]c-Djl^(؉7F>\#9Ќf~d8gQxvkjkM;,@G6ip.\SoׯKT3/KL*?=;Be(XԲ)]kLq#xqER7̒gd#jRY&A[%tA,R RdIbC,&ct[ Z3e̘ Gg'~+*]6 n^񵄮2{vo?sܹ?ŒV6->̣ ǯq1K;G,gwPe`d*6^O2|aCp4|rx?wS`||mZzy݄^A-̻F+G♎M+^olo#3݂CҔoxӇO2zWʭkF&|?韴$o4}Ҽ6nYo`!x vlna2b6:"3^=3,9J r5Œ[|,wfN}z}Ÿu/?{wk<[[xan/i*LnUw !o1Χg}ϴ2[?+4 ޹n3\ rD޷zJWq"}R?j ҈;{~ea̜P+4DyDJ77?K:|w;]$ %˗ ~pM<>~Ҵ/F{w"ll+ܾ}[[8:>qMԼ:/;{dDŦ ʹ äTt5iRӢ+B","UA;@+0ZhC=\1q!gnS4 !9}!;Y-rR{߹~`p9AD3[)FY/i1CMMR:^Z1Nո KMP7*ux0Ijmdl3jf4+EI^{0nGt*=ol15\3OzZ\_I՗9^!n[{|><2)xxͅs3BՒ^(;\75ZWD*Xb;sgC,&WwZOD4UAQaK4S  U1̳ug4Ii$ z>c8:џ xjH2?1 pQJF!f|N=^Bl+4L7}[8?7o/~?z( 9G*jiF͐20W++ҵ ̍Rںht)}'t sUʹlAKӖܓި ͌{L'j|e*hUn;6%LtP,Xb:`>SY?c|o0M1#ňzSBw8 P$F^uhrϠ"CD`4dC]ٳ߹s3Hz/,X4uMN#5*%N.19lx<S,^gÉy@ic2= 4RcI2VEBK,KG$xgWβ`Q,DdSƍ ]>!׍2 _3N [.H )NuӧO`< oDrF;8'"5 {ۻ899Ww<>z.NܻO-_/ihnגܾ{_~T,g'W{=3qm**Ú3[gJ, NT,4F?5,>MQIΩ\;nҿJH0p|c\SGjZIgCfjr<}"͘PޓSQAoǘT 7tBbu;s0,wqXYDbDTh0QfX'[LF:G#fv#7^,@(6r>׶%*Ti5,eiGEû~!^~Fkzi2*fHTjp!Z,=\RSIdS؜um#bgPs0,4|`Af~>DN+:m]kٮ 5ȴ7tSW!rgzg/XtBQuښ9pVZ3̖4f fUЍz$k 0HVGHeNۮbU i`1:Bfɕ#q9Zx˗E xvj  9 -hbK^péU,+orm??Y3&m0=t-=`f(Y\IhߊĝhP=6=5/Yhk$Ed!|:Ẑ$ AZX&wa24UVaGUeٯ*5~9:s:y ~y_F\P\,DL}ݔ!Zk\+ױkQ9| DzFr ͯ'.O" fh\34hXYH&j R7GfxE244O[,fsMXsj֛YG'sLMJz$NYDٙ"ݽmtncF9|= k%N. d/@5[(\,S3?.̍?f)棙rr+׼a"`(F91T+4枘l`kS!}l)j}kcC6ph:ï> =k^JM6m FΖ jvn5~Q{{VKHV"]p5$i&`rWlxĒ "Ѝӈ'R AXCcX(X-gm)B@ݧ!F bȠehNX5P}&=Ա.sL/" )VD`0'Z=ϙu2Hkn7R/85k(SH'+Ŷ9^*B4klo5by4 h\07DCpF 3ƦB\ (lƠ)K`,=Vj1eV!CbpE Q]G׌SK!&2uJ1Ć1Dkij)|$5_h"弪j2^MM46UQ0\#!u&514YcNP IuuuuV[:bDV4Z\j'f@ه|FJ_i:&*kb?ǘY LԨ rML5՝Hg- 'RCkXLCs)J }=hDHXʸGjͥ]&HQRh$7 ]Ѹ0ELh`nٵ_^%[| W]]tGY?J2<,. =Tw9|8+58,vvvp#^ O g'= lߺx) 33i\zSX#t%\'e7q_Xm44S'7oduħ~Qgo^?Ԑr;EŲMim9i ac*JaDQ T>ZU`o_n*nXل8f|P L@a3md-|o0l6BE6Ew7t/g luz 3݇Hp!Ydtl.Ffn3|V bFΉBqbJ0*_vkuM XA/=&^G?/Gl妡'!4L*ԴeLZ9|{1NԨ 57"zJGFôt=`Лc= OfmJIoDc -4~7-8PΤ!5ύiӸbrk4ϥt=)&eʰ5-rv^6i}rpuyoț 5jfF˥Zs YBwpxd =ϧ9`.& &Y,1 q5S\lIAe$ms.o`csg'gC2;l:@NaDk9S>Mt[6)pH=xy2҉ϼX}*JRJݱudp-/^)۩E0jԵ hXU4 ( M|@|׺ԠM"^_"~zDMBh!JšTkz|Xڀߟ7AO^Sy[:EnޓشkZiwqD6@~YWdMr\ukhH͢^׵% iQ+[O@DKg^n]yZؼO I|U`Q%WuY\֚Oj&\F݌s5so#7tVփ5;i2 ca(;~XdjI˷Z-.*P ,{d]ZZSo12k YX䒦H>dϿw^O~>H&?ë+o6B:ׯ}6Ut9[`5pmln_WR_~=t7pv_aNH dAI`UzWU;uFޑŰ4'ZobJGXFJ`Rr>V^6;Tf"y\Bax'+D,LZܞjݐv"b!3 ǘ tRUV184Crg跻W>Q'JL- g ͖fi@;~kp= T!ZMqlm)@C[OBD98 Ee2b9(ËS˩n.Wa:>j1AZ)ǟykҗ]\4PhJi^ĺY;ꙵzc(t&BMFFF-N$ z=cUx@BNk:oMԕ&~۰y^~Z=՚TvK|/w:F~y_:HWWlaE >Ьb74BXs܍ dY MR0 O=\CF R ibXFLQ;Qɴ%ЌclL[jPټS!,\YЦe͑M>hWE6nlwqO>{o~-`6 Ix!oqtrF!4UGߡXLm ? wt]7~D6hC,(w@! ׾4,Sd{z[?E)]$4j4L#X4.ʰ]jmSʺCg>p Ze;6q59R6܉X4򪈛'!UWgG8^h*mf9j9I &Gmg8N9\rC2k3k:u2O/>C zRge]'_`k3- hO`(΁jUak^`4o<ƴSCj0?yK\!i 6Ժl0P3Y܈4ԭTS9 ם9h4Jކ7nLP5VPPc@st{B+Y8ɒ_ O=õ}co[+j9l^K<xL>ɂpu1ft (e:/w `wc {׮c0!inX%|%BLͧim9>vx4TTkLFj҄gg(*%mP՜2'KJloH瘎/e%}giz6vWrVdMҍ#LWs_#C F*_DeRAM),ؘ.+Q&Toghw{m5|_4_Z !+@GMhp{\ fNLcؙ\LrĕyQ`o3 ghJR`d#PwMbm]\`wOQ FP]zdMeho⍐$3+DcdpWX.Nf_;P >z! Jzp,z#͞p|.mؖ);C/qrϿz-Oyi4ֳ-s)jt}N`*$:6cME<)邳e*cIN zP07ujMMK霙;4QtR׹ů>IAl$ujdFeY+k8ozBUhZXm/5}+7B\qtp!Zwˑ,sf5=Wh}cC ޸fb45|" ~?s@5PcXI `, *ԩѴ p~ԡ{x~/PSSUgdηbd:?pѨALJ*vU8ڝ U)_f?Kg(neٖcP,v-ei6bUQYY&G_xsLV'i`A~ 1 DF#MH _ MFe[ BR5&''8#(<W~ʠN:sAs8Y,MBcUj>*l[iBgOP6mfv-l4:&ӯ0-ƨr~ş <{LW#Fg>c~SH&%??@{[PEs ~w_>ۨ{~{ cHEl4YæH<ٸ09M|K/y4}@ͱ$??u.Pc35?rͤ%&${}}t~_CfC25r\S*Rz",jd v`Fg51 k8R󲘉e0\{q9T.iXv^+zx5щDM:dv,wggo;BzggW :9SB lBA ?sVA tz\MZl2YԳr8mX\ Xsd oXA-2\qgBfSTGXy^#KlfFeܫR" * ../XeuecLl:B>MS4 =HRZh6Lw\rw"޿hb14fj@':\^F;V {Ip,|hci[}P#ru0"P[}RYR.աɊFB2w_5 A7`_EMipy^Ʌ^ ҪnCheoN XIpFkb(>q7uzo Ȼdj I$k[oךCaClh\CqQڰvPozT\iw0Y?eS>, 5m?316IhذB`Rs!rxѥ.LйM~yR9inMk;lX7o> gk`!'ꄑNYHG(ejƔF5 זu5G`(&qDZ],oIw4d;SVZKT*A7n݇B Px*M&޿y _*zeN 74~2{]IMˮj=Bkso17svts  <àr13%imҶi'φXmD xXj^VȫU3^ ')Tsoֵ4fqY,lcO ,'zh➗h9]bghFթSM+A*EDW<– o`YV8v X3da)q{W,\Np$E5?›S]vk [wq{ x~_:oc}D^^zǭÛͯ>:qMjyoq@AjfLz)6D{Ǐкws$p-3V\ݮ+|O㠊<ʔtH\wcC7kpL g~rAy~Jeo^ii{?ü47?Gz3̗[w0MZZfjgqZNE˥6I lMuzM*UVҝ+!\ݎ>xO~煩9#RS^kZGglX$-Dn5XɍУDk NS:UE*.Og-h8ƒUlZH~3oɤR{9Bi Y>CL8 rP;Xx .nPax6CsuK/X9<2.mߥa#Jeؐ!OU1].Nr4.|񵹍1P6sFՅ9!hxyaoi;܇&3w03,fgK].>pmUX,lh 5dĐ;gҳ|L٬TC0L꘳XX-sc%iFS;3g> j -tZ #c/LK!oGSsjoX8?S&%1g?+6ḩPwU"N%ErMr%jLk+;fM)qԋM1\IjȝԐ'zC2Mk7\=^C=nؒ5@@ӬDyR7ᄩ#DMQ*gAf5[-fTt/LcT 8Eg}Vz#ofQ~L5 guQ@r.+׮=vU55>o̬!7ʶzz[#37G[ki>`Uv7)XZS5Qn`hko(ըe vMݍoN?}NWh4u=]/)R58d8U&PӉg}s˲ȇ榩Bf.#kdQȵC/ҙVQRBg^D˹4AKSLYx".MENab "wc57٦DSMlkBD[Ź8mƎ>sسJٕШYxhEtPpOg"{D]?nj..e3\Ƚor鹐鋳 Ӣc&_ <>;.W1Y3, c-|Ά(W+lmbscIp9,Q-Tǵ^hi@mF'@,lٌ6Q& [T_Gۈ|K{We4,cLHfK\S6? (*-C N3]TMi,c+" eeҕϨv :-7蹻[)4g@o4(K di];utWy.^[MZ;0;N$K5 f^tV(א, [*fAMu#$cMJAYFxlX:6#u3wׁh3y_T,5'6> 3U,+E3҉a6-{zHD8h p sOQ[[6@gAJUXxM(3K~w 4[(l,YokG 'Х%4jW@\ؙ94Ҏm(NCpaVGUf+ _5ɡL 1N6&fCFSd FB2\'{`08WGL iR/-^斾&jcbB<x%M<]WZdݔ)1zVYI]84E=:ÐɌ TE@Um94V@YsmK=N4r;2 (HnVw%~_j^.Dj#]k>έ jVn(X&5PӵIRHRliI (VyWgS&FST1`-ȌF !^zeQ ԌhC|ut>ڭ6#O M!{~~ />O8;z?;Zͳ8^o#5T^}{Ƶks^~{3NA>x!^B9!+]p Tד9&Z(ü/FobkcS;pW@6l| zϼT fQy}Yf+!VfĬJ{+4#G!>](/UU@T_PRϴ%q%Jzє" FHo!?dJERda u[B_IQ+ńN֬w;2 C6jɉvp5Tcl*htz8>9Ds~tڝɌ͐1XJaAׯw0Mǭ70] #;*xDǝ;䢴!nKϽtT+\_ l6rG].&]2bcNףMZK"D5^_#7oDˈ)>YS r,O{F9..&BZ&{pxik7|9D-zsK.F#kL.J3Dn>๨WX ua| wwrddKC7nHJFS}lX՚S4=7 /x(B`<\b; LЀ&NqPUVZIX!%<6g-ѦUahX1r0xkbm`Q莨+Lz˘"s\%&K. Y'Aܺ+#F?2x&ѝI=2FW_3(:e҇]k&|:b!m-(k)gߴrw 9gvku0h4}! ,ܾNWSӆiX9mեe;8h$ 8MlemOr&ԕ>ITg/^UzӋ;@gәAt C8*6x,ݱ.{x#nϮyaڨv~4w<HVa!esnIԥ&Lm!@vqGȳ^j_rBf81+ *KC$'l$U_}[bзPP-GD=uʍ./px@|o@Mݕ.5D1d*p\8\ ԴHsScr5Byب %^zs\IQ :{|%ӉΎS؈a56cAzR.fMEޔ)UAC#b %Dߖ*;&2FSzM5"D+ U.l̂gK]C΢NEu%L=Vk&{F-dLsB "OZ-*5;]^^ OL W?-&é\elLYhX(B^ȅ#HƁ|wڛ !<>KIX$^ʹD4:Y xta)'-I.,'Ua9flT~VST1%t_3r*Pg4 f-ULNߙ$wsI|cUl&ڭ닮ӹ l+K6[ QFGpfskpF#l1ksIpr-jS$VΆ!F.|L j}u~*&˩h4Eth *grIV+\h:WCHeiupE#X^_EEYsA}I!DB-EޮJwD ^:M)q* flbRF)#卦86w }v:k3e&nf+:SkW1HRA[B57]OQwOERI=9>Ζv|XCMx'6wht= ,UQIaHZr\wUjXD`&{A{ZˮiWr#Fv2]:N_g4chTR&i%fuYЗѭ *?Z~i:mp4uDW'(5lɵ{jufer4; Sc:@}aCc6d+pP~U~Q\|,38L-VeDsu5D0Jj$ˇi䬮Sm;4{ fIbjU[9cMt5s4ssRÞLߢ{U@/l~6AOŹ ̤Iߙ!36ܳ!] ^э=5A,ҷ@?f~O1r/VFj8EЛ!8$rU5}<7с8l,H]ډ @ Gɗ(c#Mn IDATS2 :z_ )r:6V#Xֹ~@51~H^/h~m t G505!N~<{N'/0|J;m(_ƴr8i[ 4薫(:jPs jkqoׯKH&|]kZCøuL7}k6`QUW@\RsIVSF7pbtո68i,lI"K\+l[BЈDCڌMP"*ae;b6. ܼqIQ9ċ7;+kd<ƼO~ɗj&9ůNkPϪYtqڮϸ֍[2cx54"sUY<LJ~g.Hm,%%vnl4F_?b0@IC"׳ʍ0S$y5}\ f+$:3N\Ã}xO(g6kԤՇ$݊dDSͦo]Q B|Ν IL&BU 0V/^zA̧rLgZyNa7v{ijXv*)P{5Tk,r)#"iJCz?|no:{NR]0]LxoCO1jCn`w{Y>=wwōkjBwťDl,1IS=Y0μco:󵓨P99HbDXčJ#u 2V-lqBie81!h X+z D# FB\uu3YzyJ: Nݫf!7+|_Z8}خiQJ ri+j<ܛ[6B k`uWr{ߚQk `>op~n#CMTVQ2[G+K,s!|\nla41ʊf]_cs/pwcXgǸ]a\<]Gp ~gB}4Tqb-}J\""[X K7ӳ( 7fg3oYxds}E-]DF\xFq/=iJ9B1'əSҺ,\# P &YA HO6[Wg+Y=): :+2@X\0NqU }P(0saqC7K9<HS sVF -hHM#R}+ ̈́tq`G5Og@%o՗ӓgt_Fs t2ьoQ7 M̐H͹P.k^7-)#+92OoAk7$sB+9ɔb(o"mH9GUנbrG'ܯ*l ]b.]4׮f&P.C/vUbw1I'=7 Bm`"u&#w6"F__6qh^I=*_W䄚24xkZf>š(D9c.(a f:νG0֗8>g(3=o{Jw䲍3'hʽS[mYD3Ú[cȻ5"RݰFVუb̨-BcMP'}`Re;_x)b}&[lC54F# az^^"+SV[Cۋ~?.?Ng ;*CTsLBgd]G!jƕsϙ*AFCVnǁRS;DS YI-d=f ?2BϑPuMj.Y?qBce2:6t#Lzl7~|W 3 sAǸZ? 4}2IuټֲF(fgXݧ?'swfsE9PFKݓڲ`kn,-m6߽-K5np PTjPPi?);(FN!:dZ3(9Ȼ/7#IC1ሻ6JCF\Ezfkl[BC3HvY(s@U eLل,5aV@Z^@f#RF6|CXWs:uJ/?wf'3͚M-:6L;5d8{63nÏ>_VkA0IB "iٹ !2T )Wdh^^\Scݎ85)7Ӊ\\6n@@#_]3ͦ2z)] 6D.^<ΦE}U@J?؛አsб b2$,a4]jMgs_m.uYZi8b15u&1PZn"YY' (5p]jA$zdlFCJ3m6r-LeK ،x/M^iȺ̕Qy^ $I!Dd|s-Jם{Z;bPYR[N0|hJY' nIumʁTCZz܇(R{߭P_|f{٪Jy8lom3vhel" ^eo[=Iӑ:Z;Rn%ik0WV y퉴f*bO"KӒx̦u%5 Nmxllmja5p4FĘjv_$_ ~32#uEcVpsHViS89e52 &YBWïˡda n):Y:&%5"gjaGe  k(j!dijFGb6UK9Hסt.'b6"+/Evޑ=LrP)`h=o\ٓ$*q{gZ-cMCJA`C3׽k41wlsq::3D9|So,>iL ͽ)vFhԦ(wΑ;w7ЅgJadsh\.9UPNҌ@!Ws\\R○r<Cԛy1kRhID $ӝ~]0ơԢ=rUA#"t>!B zK!vÐ8ZtHp~_MU~~?l^h&_"y+țk0*sCerM(åMls |hSنxPsh ԕ6!LB3La7|,#iU*:WzRli]xlFnG8sק_*RFExVtU eLL_~(2y<~]>5MqMryOd˕Dm-pnZMY6|8Z]/mnkiupSy-r)PQ'VQd&T͐y3As&@5*\|6kunTsjMGӌ*]GP#l:p6:RQ25sE0l,I9%.8Օ:QUc*}@Pvt/;bR4L4RlSġ6 #BY}@AWclޮl mҝt͆nn!9elT,InlnhBWih|0blhD)JI鞃ĜƉ_^kG#ҼNOOe\Ps'KqECb._DJ~8_x`' Ukh‘pH16FM@3C SQ4EP-VUdLd2_=0KG2HCMҕt:uYXh`o0hpm܌FElHےt9fcQߦm4*t%NW׀h.#|xNę`\muD-tM'݌|s;Ut:f nUcl1@Qkm5"E1 I#g֤Q|>5p ) +@ T\hW](1W^(A(7ܗ[Iw\\LWޗ\_\bg=i%6d|u Ȗ+9:< 5hhDbүmD2hbш!QӯhŠRUƞ cwK>1lR]C!ɹ'c?@eFP{s*Û\_]X+@-QBkZȅkC3ҘضK4S;(F3|.٦(p(vPfLY،e _ n"(bAX5z(ð6 A *YvH#Ѝ҅Gd@Bwj7q Ly,e⩎%ホ 6=͌TI$@0/8t@Wj[s|NgQ]Aĕok!ZE0xJ{mC5[fx~,;ۻ,ќ]\^:=Wڊ1uY+01 <́[ݑl5rwwO>|:k]{wC6Mj/坷17fN9ɳl Ш^]^2;Z6\@ Ύ/\Wt&Vkl@zDŽq-!舚v )F݀_jCg4lycAkFAiGj3@EUrZ$]%2>eWo Gg̲bZlݶ$钨#"*D6HMsiQuߨeRDXA/P]IWS8Nl[;_~0tihok"Q%^4ffKMj՘&{9c>=2hrCCf&),tctrC|1_HbHJMh`r4à sTu&|C2^P"QmvjPwc9=~0 sNDArڌ#ҘIwbHfc=f(CmX rXΗ:Q€{8!BIDIh%Q|>6 JtZKP=J[GoJ)&ǡ|܊q /B2ͳ{bvbN fLz:pna=+63u-6"i1Feim=Zy*Әm&XNz)Rb-B\:+7PDïX 7=%,[72s65\yy{.D 7~ IDATu" @׼ N^)Ж;A9ryYiqHP);M5.f 9P4$ij UoHtQdJFT~xlm/<~ #9hgrggGZ 9fSLfzs#sq./ϥPJu $w جI鍁]G2Lr=H406}:pj;נ(AXUp 2?qkV*t,,"@_JV@zXy@N^ DLhDf·cۜ@IƵW˜Y! NX X[4S)5@44`(p82G hP#]-Pai?@6NV$=H'e)ZχI+S|ʸ B{!f#>z,'<_u?r9͍t=NO:Yl2yyvA'fmě\2>wt$iyV tjPwlR3b-j4`@44JZ'txE>+Lx&!AAqMN)gO>Pj&kRIk4fqiwؠ-Zkρpa`p@ 3x5XCD#oa-1Pjhaf4n<DzIf,L uh":g,h]f.#՚{eHfs DŽH ĪZ fd.!Rߐj ڊ@39Rx&OL7C;h ϞC8gӴq nD5fNz)f29e\p9fTCW|Nfyh%ͮQf:؈lDh[{r~L,cY̮%'Y%ە#k6~Z 7DHOn~@ :*v?HǰH,i 'ŜHp-ǾGT4t;΄?\eLxWO7b05F7 ~L7hwwV9Ѧ]dNfM`7VQCs.NbzR1s29&ti2<B7oK E:4#pED!g fPrOl\CS:In{a4ZR3%m32TWokHCG};c͐Fd"ͼGJ[Vxu6 D5W59uRc)- 43Nmz[qC¶Tw"7$0g8}5}tٛN\|;0c~^geBRckԟ+70se ȧܔˆk-5U!;>K]ྜIXAU:z2oc74ȽndLïлϻ!i-Yynؼ~5R4~W+mtxeԕC\K/Mrcŭ*1APBrGsPiMrmh"g14zcl$fH$y4Tݾ-W4y 'IXBFҪC>Uȳkg̓Dͮ?h%A,?~Y6[r[Ȇ @5n~_& i0HR!"~0nJUåTZ۲Y.KÄ=%j4%_[0fkYʣw[yvr̦J,soԹyV+.xi18b# Sg"߾e\Vs~D]z. Ã"k Zvȸ^j}4:hتEBd2*t* Xi4Mkj[E[ gfmV1twD~cCT\޿rPq$Ǘgr5yY&GGr1篞Iej4wޓ>/蔊h6Ly}F@7Y!q@VAy9Q]LP YLXldXIӑwUnp(ωRG@c+փ}jdф v|(650AKH=4S:ׯݹ}/W߰Y><hV]\86πiaEZ}f:p(Z A{ƀfCcy%KL3GG l-5rboJHQ(J׊ Jt Vcm(84)nF  Cv5ڗ$92$:W̗3j],S 2g W9 7ԴDAį_@|cC8Y9`S ̗NG21] 90c@h5'Jj~%+ [u31"\잎ڃs9 C)}QPh־=#C,R{߇:wLmNz?ȩdYx 6s~}yۿ8(uh( zQLYϥ) M}s۪.&>R0@254rML:,v%Hޕ _DDR%]DYBcg:c B~ɩZ(P- ~'=:'qZ#Ө5ق&Pc 1#n㧟Ͼӫ +$ժ/8Y#`/%]vM.NO&|6,ˆN(9A-F w>>C~#MPƑZRGQv?3yrzF^Oؠ :W^]4A@$`|u==Ks#ǽ<9KF:<{\NNz4VKoW^w6r0`@ (00| / %9o֬& tM\6+Nb%S)`h4IACo/~ޑ,]JU^/@cfMT&ɔ >"XtM:o0qi7@#i7*lrT9ODz5ؕ%uj@d%jU*jH$9BtrkX˹R*C:e6)͔T 7F̐zVZUYzuCI4ɵqT kYoCp>\B3U15]ɇcܹ1.@L Zuf{.r3OnF^CorCt` B&+wޞh;ȟSْ=fV/݋7I+џP80uMX^BPF'y(TZ:ـ(nhšl>ƨf^ߘ2 \ ;is{۰hrt)tYJ1ZݠW}_u}Wꪘ.Ɍڜ[{?SJ0_$KlWtkr/IL7p%JP}Xot%P$#-2!tQTm俻5aqUֈX.d4HVK,IUHWH/u޿'ϯZNO_K`oXJ%G|XՖ|}y{ P?~G>2i_>7?'OҼL2Ph7,)M QXkJMNS 6t)in pFA1 'Ke"4-8faあA$d:= e j2۬ج8s,J Ń=rs%\iʒj# 2^Le"F)q0DJ@ 2@Oҭ٤E5Mf5g,&\>FpG(vt]찉\Ց d@uR']80.ÕZ.NK8ڂ R5}P\]\*$Pӽ(ȉ$l$<99l!3hӄ*Rv4(-f| o,}lo`F?ҩf4o\#o%lC/Ă#P 8Ax{k |bQM8w0X. .>ߧ/[[i4\(@2 ;­ĤRoŻzxAT%40ϿdZ0asa3 NIb(HMV4{RGZ03Kk*JՍlCÔ4U4`DLt9[nV^ ݀r©%hJV`'hD4.dLcЬcmCRq C:)ZA uEp&|fBJ:0BiqDIJZa(VZM&JwIK2d@D+[ vShCg[:j 9N]hS Ǽ[m+MXFa-e Xq 0_m=x߀#4;{>/'XC :p\248d"8*(|!op`X3'PZ2uԓ'ŌK+3!Rֹ:Rqȸt;y &UhhF P-4= lZRV*zIĿI.5@FZ&s5&}}L "c7Dg{ Yjr0G.}JyXC5|fwŮDʟ=nM2sQ8v[VjNf06tHnH,F)J AZrk9aZ/Pw12M:G&J}ܴ|S d8wj>>¯uTVJ1,wY+]M+2ՈeGd> e2T#0Mt8^d%-G))i] vNyo0JtVPZ=$10l< ^^_+sa<=CJs(0!`x33tώ*s<<1C ]Gur2\]Mu !* /mךkU`R< 5_7M\c[uCp?7H3ŽX:+ w;+[ >qG7~*j ZY1* 0|s"E֫eX@>ʺeD;$侢 !tyժý`& bZֽTԿ_p"Z~? D;CMe@\aq('WT;t&J v2V/k ։4Xb " bllꍦlt8@`KLv#;᝻fko~)ܖ>tLHbAoߥaPۑͯd#B) E>6h$N/YlFv+fCz5Šd` lnᜁ܌GYAwH@&Ixwv^_]֑l!+9={ʵ[D?}#zLsSRbN1ΧQXzcHj׹8公oHYC#A1 櫤(4rU9.L1A4[L}YRY"wZX͓Pԃ Weabỵ}IІW\ BH͒Nɨqhd<]Mٗ03"mE5U]Uis`IiJjl:#+B"1r t",Mb$6gLنdʽͺV̵̝\ UE)i*=R)I$ xsb[kfbŪx\k%M+#gbeNz KXO{_fpDy"&uWCm6ޓh !y0 Ilj+FsM&AYDaw 7)6ȪCUw?'%ZhWIܣifvqCk LI rd+%NZ|j*<S׊gY0,_L1 <-s!/!w==wǮj8z6@]|1r0g1%)I%RgE3UT2 \"جh?&Mk~V٠Xl"~gĦH)@''|]v}q`$ (°I*뼡ޢQ+Ff5uRʇr G峧_Cyyy%=.ֶwʠӖok[mҜ>\{!#|T<})8&|TDsſ}Ӊni¦nB#i|5ΥZ s[rfj"q]!vҐ_~)HF"&-LT[0 U_l+KSFʭBУ B[TZ?%Ueٖ*tmժG¡Z3äIJO"p6eCґI3(͐|eD%bJmDcg%}wn(G0EIPb(<1E F1>/d$bM\b}ꈹ-8F'ՠm˽}&gW;;<~X]˭[2Z,d jK%{2Kv65 Y@QvL:0îSy5*"˛+o˻Ff&a-^ef(j%/%V]I;v1/)x:{@C7F"ϙC J$׳5ȣ{aj93iH^xJd\h26dl=5ޏtl6l5p?5 0 @ji7 jCCLXj$d~ց\]\I=$K<` i}yNCx.F$B*d`\bK;oi̔Hő\?Oj@Ue8Co ne&5VEF}ճtf2 L{ׄE|dk:Q0(hΤUI=j(w:-aZnhXXgQrɼ:ڷK,LkÆ4K}$:,.F y2-XF㚻̚|}2Brfs+8`&H5VJjWِ'C4qV]w%P fZ< x` jzsRu *o;VMVwg[@Hܠц جt2 ZC,sy9Z1-uaŦn H#/ql{2 tZKPH(R4 \^_^HO\BNOdZ)^O$6AM7i"Yh>׌DM  CQ7,79'̔:b-:AFc4>aR ĶDED@5WȕV˯v/&#Y]h2\R-K Wyy$?ɟ锾KӐf#'Nfv#ϟ?WDziR-'-Τn1䘔·ݗnHӟѫS"&vKN^aTjcyuJ]PS3ʕ&xokXnZh`B<{B{D^ ZS]wwq:?g/3@I_˓2 >l{]NuAur3|-/_tQTru Xv%g,]oD 墆IaQeeP0(8(NoZւ3ɘޛJϖ3 ~Uo\x)Bk"wWl(Fs,u\d<_ؼwPjUkݢqvUz)hIZ4RkJo5WAѤ-L0Y5ƹ𩢯uH3g8ZJesR~=g(Ti''/ӧtHr-7&˝f[gPjN_\:[Vކ-ks3%~-+8FmVn)"1f#BwL<k\:\'/e~}(woɳi$0~fW@\s1i[Ft2F6z,dphq`n2hѨA:MWoa؂kzȮS`BGAn) D|6p~EP.,:Y i8?=bJ`hz'syid orcqҒkX~6Hzi:eӍ:ZD*h4/&JGpvLXDwk"NEu|Өo!i" Y@8+:?:9Hi6D VƉӲ u)H=BڡĖh&iyڼK7CRcbV L#mj M2.zbC3]&_O~{MDE6l{fIFQc缚Q'?ia]f qW9Fm33ȓhFJؤ $d At=׉t[RQ$( A]*Y*g왬#aZX T9ȯ~/S6F]vvvΝ2$=x߽upgΈ:O}~Ct-iVr#woݖ/e:{uFOPt t۳Wr(ɉ\_^+| H@v`io,xq,|(Iey}~Ƃ;wҭ`Gܹ';;;,.7c˯%C4&X e~TDXf48w-&,9 BFSI7#1j p*r=&:H,'`[YH.Kdu6f4hLnJrxD0>[Le8Y eW$k©R< )#60&}%(4``]ctàEaZ5xZuvDZEQ{LZ)@-fD&)4 CQ/V+e^j}82(!K<;-DAƿuN~DVSEh8jflHr7༂q0N^^9zϧDplжR`E14X|P7fZu.kP ="?(2J8aQ`Qq?j(jGșCCDS>2fAJ:5$Qlm2J>C87WRhAKt)P"#{Bojc(3\@ڮȲ\gT174pM5DMYƱ: ,qZ\պ\kyӦDa:u"Y0fjë ,+"PUJiU6#8fn[<Α}/Cn}7X.k$/ }\[mH! hwez]AC1tp]nΙTO93bkQY@$sh$83Q,Vq܆Jf{|0ytݙ8Y Dnp߻ ?jjd,M򵄍ZTӞ4)\'6T/Qzs%rQm=R΂5+{b$/$vd?'}wf#-&UjMp%m,"y*Svd6gZ$D^GTy :] 21ODGUc IDAT𡈈PSөnK"QK5J3+hMϏk[ d1{T+2&rs}5 ݑdʢH52ϕk nmh2u!Jw%:{y!  ,Y:Zx#nGf)0 3 K(PU5 Yԍd)1]}bmF c߆NWD4\x? 68x™YoiؓuӬu=NEiBpw &6v >/F m gޟOޭ;DEq-OOd@Ω̲=C 9:%/^1t4#%]uMT;V uCh2V{/>'m`@޹+6oNǍSY'+but_mޡ=VN /_k;F--"y Tjă({hHꖜD =tx"j*YJ^Tp ޒ) "{¥k^!٪7Mgu-p^#io#s-פ.XVl}Ī,j`s G]:=Y-FJYis"j-Y/'kt u$: ^&ﳱ=V=D ![>x@cm%D\.dU,9}P`ͤd`(mhE })i8КD.V؇ {Ѭhq OLNYkNz"֨L; !2+g-(I):7ΉW3j( QZoZ7df63#W8q( Lu~Hp{!yr%M|͎{[8\G7ekU 82 3j\b|%37XNCD5C.7V$w:9CJ!P@nQNAq_;sQn9)(:lϳ5ejSjDٯyGVqE19KL3sWNd%km;aO?Gkz\ZRfEW&S((7F58oP ཀྵ7_(ŧ0pLN|<\c5ZAS/8bdhLԎ3T<#RXR|d)+GKH=~/wTi@R\V[@>,Aj}=:}yT.4/g3ey\ ee 'nfهzF)kc'9J j&uaEgHbA]yC2?zψ֋sܒfIh ^72^3V$ZR:{IN1}o> -#޺&S=h4 j{qq!77Br: }:eS1 )%Pf4g/:y+!+i+KPkϗG8EWd4egPVL* 3:`~p@49) 84MM\}T 7,Wx dkc]Rr蜡8v>AmFNHÆ Q,xPDר &A8VI^(Aw )5O 'ϧ<"/"N0/B8F"s%yZi䡙{|@"h1.\ĵT 鮭x[4Z6ȃj(㚚bBUn lt M&)c-9R *[zWL+4NQuFiO8(pVrxx(g:؃N7=5z͛[ì9)XESC_3.i,1 DOhXNvO  r5؁~jG jhrsimTbLйIĮwsVݱXTGd&V79f]AൻeҬ XSAnGϩE|54͠kQٴ94jh`Jtf:wjaxk +'uc`컊NЄ4+7VHhH^`PYX9;;$Ӑ\|Nn~ӌZCMGa\4zdy*0moY/^j\gqv9tH@C7w:t; +xO aZfh}ZB BK o>v׹AP6GӪgnlX~gk"qf\~k^/߼B牂$tfEjͪKfQz+?c #)]u٨IJk rda hDgd40lZ|&&6ц+e> liTTϖ&"x~l̜6Zyb:?JX2jf  oרk c2Nj9ʐF.yn<#zSvv$~ ?(ڡÜLR_F&bZ !7ss Xl2OIC# WIb:C>Qd{Q9Li 5$E@7ʝ}N\nd<3*z+R,`*޻sG֛m+3EXVYPSCnk0>"r?~z Ϟ=b&э[Y[_':P4ݝ5Ak%\]_9ݽ6>/AݥM8:4h(siIgG2O?|?0AO>{ۻ\w!},h(/.Nv2cUjӏDFrp z//rY0ҩ7"?cN&c<@\.vWYȑ4 \x[r:#֚t]YlZW:KM2[.Mג-hK65CD$vv ޮC@{ѐBFc5jC+@^q>@u$p]B!!i޲" E dlbs_Y 26ߐ,Xؐ-5@k$ިR猵0U Koe< 1D#5pìV-4ú%f)zAuU>4#{hϛ4'ꍽ yѸtN}ocWIcT{dx;JܔK܄Jg YpvnM?CoFq1zE)aBƲȨPdR ϋ6\g^fuXq"ZtGPuj1S텂F%%ziPPgkᤷEednn:C&smȽ֕*^a G6O8j~ގՊ(Pف}nʁf#݊REZGֈ1&&avpćqGHbhV曥,{ln@8Xxeq*q7eWaģZhNώ얁kPB>{ZQR/fА;ΖJQ-9ECum͵ytrP0_>>7ʲE=FWע!,&WSb.xr^Pփm:X^"GYl)"x\Uj:u01>.ܣ5TE.5z#A%odڬ8B qoM,x| {ʀ90D2Hܠ eՔקor3ՠu8~JO@8Id616IC7W3M u EcGgoOݎLߠΫs1D'D!5(~#8Hulu3rBc r1JJM:ݮ B" e\kj}715KLcEX}6:6}a.)]R937*lPd$}PԊ^I&J*a]bLgԥ);w"]t reKy9)0hO>ޣnzht+ gD o4{5"R8Y((Aﻼb>*2Ds9e%+98jNDZ_f5͍MI%4$J4h!x4qT44a~ZS7ꆈ451[Jٕk.Vwp& <>5€՛%ٗ2B*tz]-r;JYc9L3ق0<ڀe8OlٜZZO~"WWM,0L4>3̗0L #6Հ"'XHC agYJIVC_9:dZ 9udK}4Z&#菸67B fǀ "> PD7-'9#R,ry3`|Ldg/?yہ i2F&ԕ"gn<Y.{3"O~ VSrKj8 y?+4|L~e0f1alSpM.wkh-O#h4>3o\NpR:1s#R_BjJ2]o\lDhf 2{;[a`[ݑla WM}$VRg__#Hc~턤J.DTt4@qݦuKFue sz!f(CW<7ATQڛxJ"r/ }Fd uOS4zP "eJij"i6p_@4QN$ȋ&Z2C#\2]D&K QkѴ HaXcFtcR2ub[ \IcsQ,It?MvT.YlZ !h٨́qT)G0p;ӧHYW <,ք::r{J|o.Xt~璆YѸq$l6ZdYBan7"U5%\RWvnsu^]ItnORޗG/'ox2hZ\3s}z[CIԨK(&cՈntčn4Y;!r{r#'ժl,Ch= <AQ6@:pLR54QAȊ:hsb2 IDATv8vhcY1h5Aq ciUlbJ'>ˎ:%QV k5Vg0r"#&B'4B/T9q;KFT5| g_Q `ZsQ t˴ 4u:mVչǟʫ/K&\7'oެK֐x&[[)2;G+yc0g^cLڭ;rCO^9=aAE ߔveFVb =܉{"XϞ~,f-'粹'gruu&WW嫧rvv,'ZTRRLĨ9_xs5@ qQ7&fݴX -; ZH}|)2C\"}6Tp=st>i TkHf+dEѫ@&k#34:A;29, =x$'o%f 5se rOj[A+9ܲ%5޺ln?4ݬQBaqq9` 'F(#dS@f[͎\\JY9k" -pЮB{W+`@sY0t[,i(aZ=՚p@n5IfR#(֏7T{r~ZIf]פOuR6Q{ WUMieabDG͠)"R􌅸sEaz BFA6k2 Uk:kfTF|_^~ 45sb)Z|E"O'bU9p-)-1, 6 G%3̨ӡH:2k3dP{\0hGc0?4TZ^LbsY#Ѹ]R72LiYUˁ!MkuPKY&禜P4VnyhwPy/aٞ 62ӫ#j8̌Q56,pqYQڲO10e&;Z];Mת8w2KPrACPjRLE苙Eђ;ӹ%dJgA ,60G'MFX: 3E3}ԬEi7T͸̤n.W9Q)Ah~$!w>V>z>:=BS,|4)ⳬ@@+xj{Wc[R/5F5LLSK+v x@vSrjbԌzh\G?dV|ȁ ,8DNOyLDWQ&t'˫/&ҟT7`"a6]5>@^>!]&KU;M$4H*0˗lʀHcB!RjXG Cdn %Ed86t*2 $Jڜ}_COcY֤ls=[2j!tە +?zPN..hzԥ(5.֨jk(@j.FS?\.06d Yt(A_S- 5Fb "CiS.WHk9xE&ޒ, YduH|nyΎ<{ԫž0Ȣ]?Xm@LίaF-*`P` $RW?xBNKŵtBBziSp9 TۻÁiXВj_k]S>셔nIJ%m}ɧlx5zQ k'`r^ qQLm( "Φ~8oXZaj:*X̹&xLj5P"gp-AGTaQˆ d}9{s$z#7M]H)y֐]>[)}%AOn ғ⣀_|N@827u=3.IHBr $XXmo+[kko0$"ɝ=]푟y͘wPl%Dx car_W]Zg3Fr:#AG;湲]\`G[QUj7fcdnrm1$!~nY͊,U$ ISQ²@}2ZkaE{ı U4dQ< F.{q% t% . 믻&6Z%5LVאcp(s-@\Ӟ;ɊoP‚( }s[r3]׳O{_QīcW4qŵ-!>eehw/X(U{< Ffm^aA5▕bw2~ɎͲ 圅vS^z8*`ϲ yVh[հP\/Ȏ0i)J0%Gd@xFo'<aw-rfw/6j?4(6U՗W%W+g?lەB\˿W[gkߗ/eӖVU5bYF fCGyQ&"m΃?_zx9}?AFDa QOԛlIlzjDt#m\#C(2axê?wL:7 j=t,f2[X]nN 6Ј@=6iHcf5~VC6HA]rQHBDAMYlv?kM'cnNUjU~\]zh\l"lpLV1uf#<{(s]x(~W6h<>LOoT<v-}؏M۷ov|Km6;/ܹ{$߼ý=ڕ"mL2rc?/d:x!A2X65 B.H{Fs&Stk@׋ψA hbx(   Wgh4}yvA4Z-`}gٗJ^ondQ㽵.V hj.@Ep_P.޿#KP@חl.?{fX56:IJ#-ދYAX!ƗxY,&4Il<`dו(9,CѺIWPfӥ`1هMOc-t$ɹLfKRj@ʠ hz;3;rٟh괤l#Zhzh$c؛-jo2Q& W+zKn |'v ('3M,4X ۷7#>k1 Zy$2ЬN!:ʱsu7Fo^Y8R .XdJ95DX`e <"s q:U8!rt IWURsennF1`A.#QRfZ4ˬQ̼t~Q΍v P2 XVt~8Jy4w5ˌjs}\Pp;{in _y6ȭ ( !|Ri^960SWQm tٍsfAa0a_&JKa6C7C keYh2::/-;;)6jU1ut_g@&"0)tda7PVQ3Й91z#r{P <:PSc(N&l&.,J45.=Ўq_ f2KΚL  {=j]]SfvMjpYv!:jA*ZI\ [[+YK:,p00S]f5âfF{pH&͘1Tj=pm& X/V˄r8Dу&%,UjI Hȸ}FLja3rt60&4UҭWQEKapfv{,DĊ\OdԷ<`L4W#t/C"=1֙ҟA˖\]d+0nFA[0fL4ΐz.GE>UH3NQ)oA2xh&9j!φ{H]|Ͷ  J%T,ljd~x߉U57:aݓCȽY`Do5֐dN[fXeCFf4mRS]C݊'pL|BZbG9Cޜa#ޙ54Vi$]3Qh$K|P:Fug9k\#vM2rE9c8[)u9vw=ڙiP\ФIEl?TvY4*-"{+^TPð5cP`z:&{E+6 *xn10vlBsr͢[/&A(֚[cnZnûl"6}C"zgѓ7--ܨL84as~Ga;}2Lܚΰ[b_rx+fvXAҲ@!!D'.CQc3gBQ1$\\\(7wYL\T"K&2AS2f%,Pfwr^Bk*JѲ)UiD ^Wh@^Sj6-:;=`(WWjX4ҵ0C+&51ouRt3 BW2w#<>נb?^k>x`giđisJeEfnFI0K+ohT +|gcI3DtXtBeL@PԬvG>SrfMн]g 2?" Fɘ^(T^>}!?x,;MY-?j.VKv[2Ll[4ڣf!1Q!ٔlEdps#,.Ȁ"94as S-2^_D+\@]- KꞕRGfh>^&ZPaޗR67_p׃;%ͧDӋ[9?;[N#L*6"!GOG,GR)(&ȓFCDpBm䂟bQE[TTFz)Pt.g%}V(%ȲD6y#_V7C"hpZmVlR)ݻd}z1޸WVt,,W-ж9r+9::f4fczxtONx]a1 ֐ 47 UeRj7;FWq 9"4'qDZ mn.YxO'T;hR- H{bx%<76ZLMcN)7OyRO[)5>X*ib J5F:`@`=)>x_.NJ%S l"vCĵ>b+n}Fzs~sMƦł~x0QTݞ7]̡e{dWQD9!R)pb߮׹ot:Re}f*7]0Wl_RVsI? rC,bPX/4m2sw} @k:q{z=>ɟϾb"mX[O'f*T$r8e#땒jg$"ѹFYk14~hQaq!}9ANp@g1[@v%##֔}5ts}QV;9MNjt]-3WzYyX1)I#( |d r$hg9ҥx(!CC23xqMGh[n56d)x.,3agZ#anjޓUK9j.gX(Bb?(85ihXn9*3C튜UG%J 64̻\φ΀Ĉr:ӪCJ$Xuw򑙟eʥ/rkb.XBوt(;`)\naq @ %80ڼc(*D@;#`鱋+\] ӌ ~.{At9c#y^\dс:S;3y  1VCL2kbӱ`bom1PIȠRXD>UJ(C=#sd)ifAMﴙC\â8y+[Go4ξ\\]lIRP:(*}>2嵺q$N]oA\gӧ,vE+xaҒaEKw37aE$ ˑ ogy!F&LD~ ?@96&#k}IS1*-CһP@c0P"_uxzu!ϏeZMlt,sL}C5- !ѽ}iH.d@+,b:gܹey tb@&XdQv%浊>#QVqEcIW!7Pl+Zؔ^W^yKt]M& ћѨcY蓦JDM[@z5%0oXHdgsGbǦ;s4!_ RSәR3BǙ/!uALSUs0B\ϱs+b.8G͹^'-q0jz"dy,Fst2XgPqmF`@IyPQ %99F*櫃hȴbiW\pH5cD=7AsgX,pSYg#PL,fS1ɔu3]_9j`]O CSZ%M+p(,-T?*Q^5k^DNnE0v DD>K v٥"N;ZV:h꽑3_ңsRFAho=8 (L\vmƼS#u 9%OщcsxH\qY[6?@maswK5nKʹfG_ahx◬ Ê{Wܛ2 -rE;:pt{{܆/6SڭC' @.Q [?`#lbwS+C>k[fL]fyZ]%*~ .?ej4I%$m>QȬH&?e}W_DqѬ^9 ֤#$ HzF[9H?7[{,!) ]PMzt>D_ ǂ\hd@ŨaMxzu3q?sO~*}ܕcĥt[7ݽ4΢8@!JC87Ǎt5böit[DwK$c̑>|` cs 6/ޥqs|41NG|a'_ ,g6y$5[oF%?MxLJG)xXtId>$OF&E&ѨNWmC 1HEHt%NXX~ѧIK;f V|X\{WOS~GkP95КDF˱8~!'ry}% ̤ 0F*pY.9z'ZC։ι4<(v@5Dl*ЅB $@=8`Ss Sxc>аa{.0Їx2VGHk±^nLz5yLt͆s \'5U߱tu$Bn_tT|"DÑl.p &<@FGuƐkК1 f6k6U -U-Ї!̈b"xίMp?;T}n*-c;,8V^_i>CsJ]dO5812]THʾhVYu .1TYsi*`[1EfIjd#oBg5݉C_ JY/ȨjnEm8JkY@Sy`̵!;ՆU91t;-2(HJ QК uFf9Glګ4NEcqЩX6ӕtGadDR\=2{fjPIKg8ͨm)PS*U4E`e;A15r8!5yfC:[#6tv2LFNof[l ݮskj7,3XtQtŽQnRnuvslcȯq5ectZ{MyaiP`7,z"0|&L$j}pg 3K \zmj^C^/6?8g5 65!,~b xT5q"J@kCjhlhͱkE"Yӹu!)"皋ۀ f2KrdҶ (%a([t]/n#(pb} sY/_0YJÁ<>uII"=~"|.dt5Prs{ dP{3:Ci6 fLs ¹MiUB+sU!WJMp>EJ>~%XM x93&EhE!`2&$Jt,VMt\^5VBSl7u!z^Ն|?r~y)iɯH6H?aZ˼ݳLӹLoe.%Cr{ | r>0j>Dn{V%J3=VP^e~r&ZC)ϦSEh $_)up(F 7ã<]S#dv69(ykyk\s}ȫOewSF7Cmu'?F/gW⹼<#W!PsHZ=ႮlY`KhںMtkN0Rˡd|T+Kj1]qHzRճ,cͤi *U.4C?hK~_\ǏM t%汅WB>NOθp Lļ*6:>5"ceL.I4J0MVW'2=Zl"\hr&=6h*T#ZFF%DFI (|f`XWн9nHpb+I蚇7ܧQl֊ zo%9TiCXw!{4W˴R ^ ܾ> X)E6g5S A~*]] 6DMACUG4T!tb.8^7xS3rf5R۴QVEWe'0O<47qgNmaLY4M ݘț1uGX~˃JintY PrRѝ7(W?s e>AiXLA9\h.-O֥/: M͹5,AAln:&ۀ96߃|W0 5o^%?eDL|n;KaP n0quFCc;gd<qHP C/W~@ Ӧ,+tZ4VKrwYjxYdb'+:9! 8N{#'#0G;kF#?~`W_t|+J(r/N%Oi]^H=T Ss"|ps^Gta"6Q"V@l>?͐0?|y0ɂz{ zgflJ֐E)7A κ9;ѭd@pØ'ERjyuMN93AtvlYk6HzmTBxd8?VA.P][ui"!@РL27!Ҩ"\]l.k":A Y馇Is?4Uj\w7dx=&Re)5VVIx@֗^'ޚ|,2Oe27I}[Kє".QZnY-jgL}w (kͮnI&G{^Шkml*3 VL!qBmF#z E'o|t8+FH)ڵ, j ᙼz\)j"QSkQsGw?/e1G1עp%wӳ9;;ms ?ׯdggKs<薧gDWԤ8yt=67V&[ah()c~BbpECptr3sl2C3ul -5V&ZsSfB@5:t[k,=c =G#-;>_/riSjo| VTiMTTV=d@DI]Y2[riTR̞MT %ap 5,٬qDDCJQ8Ŵ<T& 1l956pߎ5$Rwh]Gyj¯ő9~WQi~kD56dJ-dLd{cT(N.^m5AКq -I^_Ҽ :p쁸1=[Enuq6:bN5X-?Wޣ\+uM°jȤP3]AC5;̮p/JԐ{r3r ]TMhA~"ҲfSdأQhL\VёyiQ革x/5ӆ&\X΀J?BSYYh#MaǡCAe8op xV7g0}2w]tmmZ^*[2 7+JˍQ]C4^JѢ[>՟Oߑ9 0QA>Zݤ [EC$2"v"w \FcO N0"7 @`b]j1]BR58놁3G TY5_ dkw]cZKdvil&} үJA:eʾhI荳nUuL&3jo_';u剦C`:ٯ}+U*7h nTD-,P|ǃL{1[ EbnZe{"+`aa j)_?qѝA=}KR~GҎCy׸dۋ ;VҬIyQ_tsYo1>cCli&G?f3#Zir6xz [ۛ oA^,$_-ZUtUΕnIj44 QkLԃL圦6VJDc/nD1wZ0MDP]^^HRV$i&nGFО3AQ`G5#"59t')ݜRٌfJ,p@"HPm$6A63ӹn12#RYXq׃TнveXI޲(SRT5=^o]zk,lܻwFP/߼AnDʡ\&έ?z9X|) 2h@G:gPޖ~-{1.зAS"d%SR7aU4!oyxp@D7D>l`R3]ӧZvwvY-RYmSiLLȸ*QlMJ)߼%L٨Ɖ4^4mÏ IDAT=h]gu}vk]&8v$#6*VrsZV u{{f 3$3誤qSZM WSI&Wq[:dt2h { Qp nF԰d2ƼjƐD0h!fUh0lK09F!Ւ\q>J8yH\] @uUB9dB;hr&e']w7g."]gO, ;~>؃HC$U{C/W ŁvEa443s!.ΖܹP^?;):#i#LkNꑑ¤)jӚYN)MJBM딋3|jP#e9 RDp4stGCL }d< fE'Sy}u!ky Cf16J:Rrͦ297H";d1[ܔdNt3`]mir5W^\^]˗/_o}!Ǘ}On{J^A fܻܽlmɝ~|՗ n7aYłE]ِxׁΞA9EG_ȈP`dkkQ2`21׋c,Hu@pvyH&o(]LoVe ղGg>5*Kj$!BfiTJԐ 0X35K4dL&$Ǎlܹ'S%F,vgD-["4ъة%3,Ϝ{WJrl+I56 3'(YJ&|7LÁtQ_zxx$ݾYb22v(`ػ}׽ Ja Hfwnݖ=uF#ip&ᕬnx=|-L*.e"X҉%dÝ\H6[Xn(DiQbTGt5hiV  L#zrG*UG9['֔M8;C"W2dHWIG9&Ԁ$L~Hjtyn:ף+4OOy4 F~) g2[&FQ\]Iq> 8onlpA] w>UN⦴w8u9H)<3 {2 dcHx +{q-zgv:e̸>ѩ=WcCWjug-?wwwO('2ڸw_mb>dc;?mK6YT6רR@H,(»YM]x'Ԁare\ľU4!G8&Ran E9 1i^cLp` NkѼNtŚ4M^gW~~Mh poQ9Em p `ll^Ev(e6dޏw]ϐ%ׅKsRae9ŖuDU=Jjܳl.b>] ήuL20)^P6giKֽT,| ~;e0co3cyE:@&i K0mQr Z?.ͥIʅu3c%EgCפGIkK!Vaڥ\d%fTm]u?GWV2pD| ~L%׾oOÁd`֣Lb<-ڂ#~6%|^/ո3X;]߷r=9=ۘ Ra8.|f6"->۸A"aMH:Q$wUF޹GZ||23q9?ً2D yYpPc dyPwdUzjPsLB66YT@X\=q$I%~QhśayLk}U%0AQJ\1z}y&W-˛#I腹@xޗ}d>ZߤT 6m1 ss).4c&avȜX:0s1C,(`y9MZ*qb XXрGSYnwe1Kޑ;R\ldY=JXzDz)I_]OB蜳\>,0beLEյ55g4|!.\EQݻ"XCjK5HRt&J̙u_w攽e? ^ NN\ $HW?'Gdo6ryy{㯞IgyYxyL'7r)qn!뫞$:"X4`]OOd{{K?yLW^nlbVfk`tye,lK\m0/L;d62ږ6ek{"e1lx& % ,&RM46|y>[> f ]0B5@X0ӈSYG2ayxJŔe/^iltuuDNQ*nZF}ջ^\( $("kZdtgcXtRVÚ]Xp. o ryѵQAɽo}W>J>pqQ[7J%/1 "}C]Tًi)G81&/ œ8#Va^_8}f1nklN^IAf5l䭑1'`߼yW,i dH34!יz 䶦Ri+}8cs̤sFФR5>-"K Ae(daTZZ$ Ѓyf}Adܛ\p(0ұ7c3#=5Xo@2z@aTdE4qd]킑V4\0y>I\iq uӌqs.*L3g0`nV+2rؠp;ᡋbl1j-q4yb=d󝵤*.]) -<$*Y0YXf-}E5qչS2bβ06 .||/?Ӌ35I6ZA!g53MB^I5`@6˲!-Tyst(od1ﳈ~;w^ d2{weޡܥwWWuE0 VT^D}JjL=Rٗ#$BIrq~(GdKB\ͭMoK@{Bz,ڕ*&ڑ-6"F#q;wJҗgO>zL߾tB! θsĔ6X<#ȅ+d@VwMj8g1果GMq]{~_\kKgILF5dд,fR1_볫#FuAPpxI@,LRdԺ&xoPE;=2=r _r)l] |T̍VMf.[d41OP\KW~V^Q`t2Fq t蚹(o#*h {RՊ܌Mj5w8D qn+,ܱi`rM/ہ| ? 9( I6ґ(da:;9^dLN?0s* <]@;VCZy,=L0땪)F"Xn=Oywٹ5.mu4Bw>gS-4~ѱ8nc]tJO@߾e13eyDE86ric E!+4 rWBc(4A䅸@'>$%#r0&:Xj9XOy`6%+]*0騆xs܎J͛({1`¢hS>ru"v%yPE6EP dd>(Ld:c%rsAKb9M{ԃJqΤy&_sz[{̼~܈I*l.MSqciUA(gFm'q3 (Qp#Ǒ3>jǂ͋\0W+J{֕ }3z]X\Vm8'+r9E*eYZ_፴M,,2Gڡe,(.Q@T}6;zaF|99ԀZ]~ʗF0"O\K,l?a3K^{_1񕋊ybYjDDF?;wuJXZx6gY"KrtÅ~'Wrtq.C< X$:6l!-)Ӈpې=2`Iܤ_\eO$n*D'ra$7/(LZŊvJdF8?B~QDzŎ@>%=lɱ>x(_>y"yd8dtNL%F{w9Xn%U#ugޤ{?۲!we3 %Y][o^Z^y)g'ˋnox"^18^M IDATj-\#itD*UYZ;yԕ*Qg%N: 2UZmIA30?ͧCI ˊ(˝yMiBa v { |.6E̱(z-&{FwhC:SNVW}`v\/ךtmTbsh\ax:Fep~BmAEpĵl'˳N5FhН5K,Պƿ@W)l`~`nm䝞i^"3\k3AC ff>~ `,[HO$X Ǚag - 8Xz-?My54 2f3o5Ttl>|nՆ F|Neέ]mPOW7. έ-A43KeX o2%ZtfoHZůYXXUF6܋.F6KgV*GQ0̻ cc$:+3x R ie_А#R ({ , 6VYwysSg1IGD.E\dsԗe0{TrƽZZxiYrF"W9rWk瞜_^, `hFq.>}"ŔLnJ1G1c18p~gd$'g<zwY.Yc\K߻G.\\^>L{MiTZdpg [e"_>y*o?X! 43I4+:7m)[*h ̘0O {=~eD0}vqbL]d }aӹx}s]> >aKa>Шjuõ4@C6JÙSRktB03L (b#"(FkI5f3 錳`m޻ТsRDa1*'|! ؓTN͘Zur+TpٚG өs/xr4mt `zZx='g !^jd EmYT*uus6B:?9p(ݺ)'oJ d*CuέpUPWoG8b4 @tRdx3trE!G7\8?fs5Sӹ& N4j-Ѱ QU! PHP9g3( ksp?ZPF-ߝ][|.Ib=@tf m8[V7m+2w̝2WdC,_ɼĔ8l2 /$@#8 2\ K_T y'`~:NȒ27J!,X>S0)r׭EUd28tomM_v=|[vrحln\ygr`}ds7jժV$.5]x,1 R®. "$fs!s<,5(DQ\#1T V@D)3iݻ<ISqD*_Iﰦp~. Aٜ:e90|`rw]sJw?#rWE Jbml)zPpzMgcyܻWNOϙ<r͍ ~9XV@ :rUwo=Sset2T5!\"ʂQ6 0õ&x8 d6\eaġ%u`VQ[yX[i0ïuW$~eӐ8x'ӑu#2dx_014Xh$WstaS(p2d t2[H&8*iy>ʜr_--0?U)1 r?:邋 'i*0CxV@ 2+)aEv [#ͭ&9k7+5̨p1 %)fNIJ:׍85J8c2/Ea4e}k_DzOdtNPס)Ǩ訋X9pMQ?|X4{C6ME''hj^;?x5užD9}6K C p 2YUuh Ipz`6œ_0"`dFc%ccj8,gr?q(d d)ⴘL牔yJ0ҏ(T&vwZ qCurQR[(muvC/c?ԱyoAX_g4@ΰj5Q5:End 3 *%bҿ<~ Ӡ. 628s+^>Rb3?\b}"E]ӐZMu^_̦v eo,M b.8oK.lLA\`"-)qu҄R! zPkMyuqأ ]ռա R&\˝j,Z^05hΧA 8VgytټxV0}lks#*1W]8dsš%u FK10'Fٕ)ڝecT4r*]갿TN5@2V!/Y^ sNVw\*G\KΖ.vC*1"KYou`{GXjU~.Ȋe,T L t=Fwmǟ|"kK˔)X80!Z\˥]WȦ1Xm[JgFS$`X|6n|"k+]Xq6<\[<$1=F>Y,(Vuxs󫱌̘Gugrb8q',2hvYQ`,cµl Ŝ)^XWˏ:ϓs!'e.d4`{AdE*fR ?eut|܉ɑI*a3!3XY0HaT678`doݾ͙փ{!mDϔ+n5),2΁o}L)oەEk7_??#8@(r4:ܽϘdJI<(ms@9].ᕌG=JU{x_ʆ]C ҭ'"x`bfwwPz"| :^^2}9ťE *X[i+&xtt*{(kڮ,P]Vm٫uqy7p@XD JmݞU쐡| pqOfkiv[V6Մ ,qUf=&;'ڑZ%F#Օe`fJ5"0Ӿ,y:z}.*r|r%;6זOYu٫ȰeLuF>U̩ܿw@035y`F W49Ay͝2!:y13PD})ECiJMEYAb/&ډdcF8_7Ҭ'*gJc* gE_zc* t `g:9-U΋pԇŵT-Y^ݔJ.uMINt[H| |`A{&< |q4ƳLs!nIJR 7d2|pU߾YЪ'bܹi`wJEMm7QXUf&jGYf̘i]e>^ .H{5d~.sd:9w?H#3˝5y`JllN(mTbẍgWk7bQS p1wiŞ@O[iS_)&ӈ$~M[ujEA 9 jiQ^?%9Qؒ4#B.PɹJR|;8`n)rRu&5ϴμ.QvDXMHyưÉmDT ltMF]-$R\p3 c,sJDܽ-. `N\{# W.*\gTn~>;WN 8SEj_)܆0J\N|szx'2pݢtup?5Q"Wr6y*ۧd2ӗRoGH8bd,LrN'{?<\;ɀD]lT%qٓbW*_3``wtzi|GןZO֙1y{2Ldms2R|ͧr-s`]$_smjz*Ks=H35#[N oȦ@yS,u76 K⥖ z 8oɌA2WF%wWsuy䑜J$wtcd)Q*e0޻P6slGH!K*UJ'łv٩TY4YRU\&L#7l "Y2qTjIDO9a]^U+f]!_pYG-wF6L D6GlEN[J(-?<^DCb:<h]ߖS$)-gQŮ}DGg{4Ҝrm(>ńv4rn7K Yar^&&n`kh.VӘ/KgtHt ͑J"I33<\qUVgw%w0JQjR:G<ͅ\æ# A.%'dbk;JŎi`Y֫zzSfT4MʯɊ"@?t7hBF#O1O1JfDthQ_Z/%d"?}kWn7m%ejR./_!X)a ʓc{ȩSat2` -ٕ'o^TqQe#k̹JgYO/ݽ]r8d*S̿NKrpZӹ'duuFIcdMt f4OZFs;ui*nT;ߗ_űmSJ83PZ%[wQ!tp5-<⌬k5Va<2/N+ق2CalF<ёLxɏx9hlLCmd"nG~$Kɛ7oOEpbBxXk+rzzF'}xL?X\CW"R\x` 3RZMqՕN-^_WыsF@ @9`ͰP|Z~ 4)wBYw8+ Ry2*dT Dqߦ }"!61˩ƥ:hׁLo^lҗ& `J#ݮSȜR_:dR9%`lo,љx6pKY}s<UlmtoudʢV}'ry9f]w:kSE;Z:]g9s9$ƨ] IDATy{gfHcؔrHm9>l+n']Lp&8g /XMnFgt۪w})\49Ov1~V忹ŵll,@N}s :"sic#9һ \;lĚvl2| 7M^mP~=d4Ӎ4lrmŌx~b96f|MyK!C`Sh#c=w>Ox JEc (2XC1P}%Hg&5`)7I>`KPH XzQ V'Ga/ NN<a&FQ{QIfkX9+a`+83D^eHMl 2_;ԃ-*XF+V8vaC$֎5JFH>~S0*bs-l ߽Ktλgb [gErݔ2q_LWjFC~=z%*b̹{Ό QNA6^ux*rS;͖B\4s)Y"~6xhqC\x^]`P4Gr.+EfA^0&Yv,\kD|9ZԜ$eQbs}K8JLj "y s|mDrz{0WANQ0 (0 U&{gcBJTI>1$vf[R "bGW2`su ҨQ;ϱ7qKYn`b[( xA*9Ss XS-!`r5 FOr2,\\\՘ T!{N&YFtdJIcU"ǟ~ 3y򅜝啼:<:C,u嫗VM^<{:0+utr?R.έiDlllJ0sy˳#9|VPVq)ew\:KjfbLt,ͥ|1 >/>{t;lbaKeƵ:R 3p6Py5̗u6-N'd0\jeksG}֑#+zuq!V+$?ǟ0/wѣGx@i*U Q'Nnl39YK֖h1lx$%MŁR݁f+ Se.K&I+P&gH1<յvm *` 5|H4e0=Y>0;թ:&cΐY_Wj j,"LD%gdVT>\1ɮ|p9!bu2u܆+,e HGG̬DΥh:b̧*1\l&FU:*k 34[n |Jf_r͂%1`#g P虲h4"sVWfmKrmsks?cQaGC2d'ws ?ih9GE>aЅ!L"tYc`>ϊɠ` fPX;g!Afis5IT,:i_?2S) 3^*̅Ec $z'W~LWX^-! XL0we1JԘ;spש@lWȨ"!=dަTQDỳĻq6 |. H+e21 H]iH)RemB}zq 6 -#v06m|o|!6V/]J0Fy+FHF)e3\$˛tWdxcũfL31̥n7da 6wsg[ [fb6`@z4T*py<ػ-5RM^6<UiPYsO.{r}}y͍mLFrzzBd S`T`?T^nё:i|=@l6K{?m/r>LZj:d1Kk>`Tn0ψZ4to9՚'|L^huʝ*&y.>p… ϕ5PrtB8Vg[;BhBCխ;L/>1G]QȸL] wﮜ.;r/uD~1VFsjMRۯٯ3L"YX,eAJ׽);6 cEt.h`͢krI]O9vW.`G4xy9МqX) @5^#ܙm{)%P7$lbc!pj5:Wu8!'* "_@>:Gt}}"1?x`dѸ7u׵@Ç55TWVe8qM,rߢ3:@9aO4m0a3 M[8`s-+dݐ _WMY9R&% {2.f 6KY#W0.7eh%\r 2T j߬ ^b}5gϢJ+93 M̃Eȹcc}&9T}_bUi5dAB#@k˟Z3Gh)[VƩ77nZeFcԁV#7I[МXn& ̺΄z^!${=SymIݕO_p/^ݏ?Ϟʍdjads-UqV88cBIZ8ȋHVm|?#y,Zhw012@CugRL-f`ڼmb38G*r9!h]!HMPNg{Xmss̭(%DοƂ \/m΢(hqBNo"Wr8SWa6xY 5~5r4lfwwr.wޕǐuM*l@ Ӯ H} ߐ$\]Ql":"RwoҊ|xgt`:AmwZa<Չ\+c*,jvvj3usgG =~.u_ɷW,/-h_k鴚t s''_7or+~-6hXPqDx4;cW]جx5޻˽B")b꼻LN"2WHPȸN3N|msox<يJWf[ = j h$G&O}Yo /覼pm荥P!>:w`FҌֽ8㤘ƵČ2x{6gŘ-'BM m]lt2p+29;Y;WRXQf$[7dP@רey{\gĻjuibF"ܑ y-̀]lSl&M/-Օ V:UmD;k04pWUYD 5SPͪ+DwPA\g6eꟲni<6bf4Lj(9iTRKjB?ˌ|{,KSo D~G??򗲲N m}cCd V" 2Ke(E*/^o}1 ί$U?t9v%&׶ƱeՑ?7goL0դ? iH֖Qh.ea`5wQұr :Ng`&,ħԪ-:keL!j QݿC`:F.aDzSZAY2*η? jN%!o Li1o_b-=yX5YO?μVk}J#sE 00Y[䫯ج:_Y]% J$һX \_TIgy _Z6RywE쓨H"y udhXƳTy}RRD2VfQM>P*5M'&T`J]:D̹AH!,"yn ŠԘ Ft;m9=;{s<͔ŬT\0X]]ӈZB@ yOH5fN'i3<kA3*s.dDiRTc!|a%2SVcfbvU5ΚW('3Y*T51riB3uG؀Kz =3҃zIs@++Ϟ$iƈ,bY]ےZ+''ܡJ4ڈH+;[H7%;rr VYˢ,X_z{+Ľa٬`$GQsNdfT阖"yr)<#ЬPԊA\И xpai-(IfLcne:1*X 3ҁ_3\c7 6>j^ˬ9alV6{?E&^1S><ǬSC#*(oKN쾄;K =wA2ˈENUxf3^51k)D*yȅ<m36GTV+B6G}Il<J}Q8Lj'*0&g,HAZJ UÜkiUU=ii)YĤ`G1F 7^ne3  q_\`9XZiyY2c@w. Y?xpp IVsu(%#>V)GyǏ$gcnf>,q2@1:jwUnW)|,WRK]dF+d;pdg}Cj $sD@SLf>Yf09͛Biߟ9I*|@|h̕b$dI.Yq uPX{IW:UgEc 6.,!E<XE36gY}1V;H޻{8|& Fū`^G r2 X\nŝZ.{[r{W.Q&fx沵)?',#HUyxQҜh7i3˗Od4ZX!~$+-st5Fggsكo>c`mj\4@~ cm7\Ny,Ms#RVWfvq TH&Re4R2 ëVI9"bTk4#WebG*gGl ac4PU/M l5SP!͇$M8*B@ӻ<,`+gIR_뛹 3(B|>fv ޜJ9L\*lEz f.VLèDW3;|r1XT7`Yo$7r3l' )ke(1\(1eLJgq42h$FuƎ%>'2"vIƹnNخ\%i{rzux&Qx3JfklT,hTsC0Flx5ij@?iLMѰJ|o IDATo VXpf;'''/yrV$LhVo+a8߫g&ABŐ05,'ϸ 1&0PL|ܳ=6ŕ zV^?[l2R';UeUxl@INbH8"ޔIG|S䙼r -E|̞A(>BNorkV^Y5ΰt_AswF ơG6kJRmYC*fyIs9g;ǵ=a!ac.f~PRa,t VԬ~tA}KrCuX0*}Tjy#8_CoLl{N0l̕|CS`kWۊm)StyXW -)]܂%Զ > 5tl{:/ɒ=Y\`.J vs<\oyfߙUdN&zsHŽfnS0*cw_ӟjJQ>9FWꔲI,%PnpR+BޫIˀ7uMN85qKrWל:c _3sIB"Y[P7! \t .t0)7DBlqag9cE AT27@L2i.w<(&0PోPA6;<4p흌+0L|Xa- \ KISΎLm6L$2P>:-_kh⇜`㉌SgWG[8X c*]dr>Sl<% FKsȴQ1J5RILiʋ3J[#dQ!vl,g|,nI8\fv V`o_:e~0ڻekgsڐEd0N4WU8bNlK:e=-#1:uVeht`H#'qAnV4.Iq3fhtTf|Z]BwNpF%*;F8szwMsۻ;8l?ex=5$˥LsHp7ˠʳ728%nnNz0&Yդ>PwxN/ƺEZa/{_2yʁY_~)@`xVLN8fQDbgDqX~3qtE:+bj|pw'ZIag)V$ ?j2b $xvd\}|suf2RٴLS+ 7 cFc<Ô>(Cp}C@R(< Ow$f2OJI{3v MsmsS$Zs96{kӔ#@;V*.V\m;C>T˖j( x3a1 &x|zS7n-Sy~k%ќl:tKn `ê k~~6iGZnFg[T|Tf<Ћ@73B8*x Ȭzn)Kx٦Y\6#$QV5B5WVs]̎7d6 eK,HM4^GTuyiCcfY1NNl"eʧW7uonO/e%#Rqy|vk(\.|麳}F,wJ&ZAՓ9ܹNOf2oT^_\iv6:]l:uݿkES$wJκgT|)gEFVZkm4=\\2#s|UAu=u˧'xݏTY_ݻ.hDHn8xz{`W FZ+FX= 7%)ږ8,uW_U~%?z,湠|蔗ت`csKgOQo6XR`ps@s#`.d)cE6]>ǷNp{xiyMy]i~4U|zPӍr>O.Wk<|"[r72s9+0"Q.C&G{: XZ(j* z(s.ٲ/cF ͈B X&h l.ƹ(+¤ZZL]s?2}FU5700flÁ]pvIB<Y:j .F7'ǕdgnLs{ʮ;Zf|:Zfz9_/}9,q Gcwkݝ w%n63+!ȥ2ᓏ1gTqr"Dz$؊آ͂d;   _nWE{xËdk\^{z. #a@;d xx04I]j˛9Z/MYrn׃!I5K5fP Wf'&t Wה;w9J`]#SE^gb^ЌRBlibTJi E@sqչsyU~d[oE/rUS0ꪟb2&&r/["n<މ%ߒ) Vw͍&eYif30m7e NWLe>؍{)fEodQ=Nc g=r$1G2# mZϓ:ĊjAІI\3p9QPb%ϊOYDžK̼Z$?KC'!6ľzjJTz6~g+>*p {KQک UTiO0̱RΈgǚkVkh%Uٹ@ 6ǹmfW*0x>x'ggNvح7ɇ+Eb(l+" ]iuTM`6k=﫮¢ugLY0qfYlV6i޳$.aL,rEMicԿF7HKc,ֆj[؏,*,9L_?y''X&da !ȂNlΦ$ AA䮁rLm)qfsf5,4kٞzJYndjR'7'ӫc9OG*:%Chg:Y ȄGE/7ggX9>K\_Ϗ%wP,>2JɘI 71'7t矠 ʦ7Ru) Ζ3.̈́hR`0ϞWZgg%'{vH;iF9L\L_.7vİ;977oLJǁMdžonoc4լ4F>S,xbcεTFRUbͤ͜MZ̢(ui=d8FJ52ZgD19F)F)bO^|GH)3> e^c7spA<&b  \jMAK@6(MV.7.m7$ˮT%^z .ΎO$mm1O՜+2l-s!^}:%Vh< `l^aJȉ7ɝ<) `f<&knFVL&ZL( cy #L!5˽lٹn9 w`[~}lo0UV cP 9kWd&!o`$#U[zY8%Vz3^y.$T 9t;A #yy["L~[c+Qo݀S\XoͩUYq)Ygʻ,"35@V2V8ܫ7eX\z.,u9ڏ.R,g̝oh(kv/+1j* a,o}$$Q^-9YZ@ (An MItWiy Tֱ` b^b Z׺LgRqh3ɣ̶#X.HbꏑS2VЩ71ۗYp|!yvKF:"Csm];Yfdf)"]y-"n^! ?XaW.mRJ*マϞbks`mf+׳NV̝R ,mF2[jr2͎$K,xpi)FZAKM4;[4 XkYKW6 F5kE RJMŤPHɷ"gT(Xɭ3$|&3TaۼpQΫ 'HPT jiNeI18ժ)\Uܟn2N[sgllno)iP/c<[?-2ξDod6Ѽ+pizhvչ5!]}/?dIXVd8X#>HbM*F%mpFk 7jB͚b11's8Nv/!z뛸/5xgyᰏz 7sK$e( ʂ(t"`i=!qI) mZ]Vf[Ƕ 7|!kӐ'CUCUGЁL;8KsJ(sZs1ꕥp1Nq|~>Hc ikWs:jl "5EիUrкds7G7hĊ;GG8;3:d$*M* ڴGd ͺ]-*',( Mhg*wB=Z$%_g6[J&px}^C <xmFJZAўй{KŚ&`15{X,>>B_dU#McZ::&t'`WW`0uzSuz-^OSlDr6՜6#6׹+Y\Egcz JX,+3ΕFIW/e,%@{c@*FJ4-gxs,;K"% yRE3!6#޲( 2ZSH9'Sqr*x˽wyU89^bZ0LiolJ) Af-f{lVsfΐX#'2߫`hɒ+MKTD{fQ$g+>n/WrI5V^2Zi6s\n7Ь|<0q#jSK._~!C } "&A7CƷ,yO3z-r~F\bN!s_Er1D'w@/pZU _]Ӛ 7v ;tsjSM7NQ~Zucdk %l4*99תbtS gf:3c(V#@g/Q:_(jUVOF_kb̻ɉSboHFidMH I ݻT 8dFf2*K{U%qh*ϴ+jRgk cY&3ӀgKpa^6߯g)Y)cWp!|x6w\w%#ϱF6*V%A2HvcUD]W@``O-^Z^N~C_`R8p𥄏& VK,tK3m}l߲`n'eTfqy(~Z-!C8'rռ3k5kܮPr` \عy\gT~2Ous|yo^<3F9Rj <>^FnSk2&[y=ib{k[DmR^jEɵZ Gp]ÃsV[C|N)%+MH9 92Ld< LI88>~ '[t#a\{;8s_/_+_/^ىb^}S<|HYӳSlV h9CE<:n[* LkrዅMjSE*C$n#O1=LeN9&O`;OXdK:xc Fd3F8y(rRB03( @'JFcS9Пg,jS:rz]"i?Sq8Q{PYWK,{5WbN\\MrmCl@Hwmlt+o\v~:2V%쀅kxnk&](Jď;1NE^Ω"V{Lp+^㊳s+XM"w@px)o7#3n΍CWnEk$QU'6 jE_=f)>ZLkR&mkصkfoKM2+FMR Z@wYe~+',"HzJo%H yFP /Al,;6?#͢a\_?Vn\x8=~I?|5J*'W(f ,}{>;]^gj2$M>(l/3Dyϕ4:XمbQefdbV"Cqx>Fd|s/{Zk7Qhi6C9MT=l蒓$beqZA?t.trL)7 k l6C4*K{usE(5 C|[Y!ZEy^+!':nfc\ rmpVb4w=Ah۸l]jֻr&LGYJ-bg@cN ׷7Η*\t ɬ.>L?k4>$דwH;{R`F$4.%zbTFO.pqDk\˔*s]>~Hq87,e LxC ELѠ@skKt &h*gla4g ):[$ln٬s}0 'zl1bb2+BH˅Ct&rBy/\)%3fl_OĚɫl'#͂7qIH:fS,(>'&-Wg94fN t:X,b$|9:aN1 98Uo2?)gy"ܢ& 8KGO ʹejt$3BgmEۋ:/{ȗ ͐ɥZe]kQi'0FFS)U8՚KT/Z:rfǔwb,)ϔͥf9k56c ?[0v 㑮bx}9],1h֌fU2ѫ4p!N^=E DNC$Xb:qXQ OQrF-6Wz!H|c[W0#=IE caW&v{5m-N1e.6rb3{ߣ]3(l$z˦ |/800X0H4.HobTE09ڼ7h'a rҚ>9̯*H+ͲfTnqdQ硩bKKw:w[~xrD$yC.Sxg9@ .3BENx6rͣܙsiؙQu73/oRlk®vRNViUQ|h U0u(f l{Ҭ{=͞ߟ+n&mIT2ؖ.˔]Úc^2gW3JJGS|$1+R;+2diI`s,sIrQDc;,㇏U@ԘUX2ڵZRo[?ޜ LW*xp.%ETf|lyX\ v/'Q2ßMP5\qqsz3dIEHءޒ6+b9{2KM)TI ffќ (tM#Q~n'C#&smlXĢ5ּMuY0ҝz1D){ÃCܻ{O=t;[ƽ;b|<};bnœyD`w3gLXEiFVw8t>QQ\wѫӯ$=8F-uo}F;[ vvuoBp<5"y  ;D~ћ[z=j=z*7 2D,y6qyq>qׯ^FnGw7OexL ;;|hFnٳs&K0xS&w;^kx+*+6;\_o(S{GLsfA002oh}9GO,5,*q6py*żfFEle{+.z%{Sd z=ylɀ FqU6ƓkyTDU'fHd2,$xcc>MiVZ٧lnlBs婚4"uLW5;fX8x'+ݤ9йXT\GWE"Mͤi>uڒ -|CȢz\A`[:Cp&k_Q@:"UtC;?sZZmrASיLP2E~weJ@G;}"g؎b6ɢKmpj삷nU8:/k2YnoFҢd^/%_$fùDj o Ngt3X c:z_3tI f6x^0p/rYv X2$ǞM;JBcr[ꎕ͗iptTs'4ZNuoou/Ӆd/.ߜ+" F7}hr=}>}1GxtĪpv6;`בo\{CRQb™2`pv7Aݣ;^_hf`sM' s[,krL/"t-wAWbykY[tlĉ{K^FNo ꕆ*%,wt q~v.PMpwlD2rv dI˼q H_} nCI5)8N "Ofω&k(7p}uf" ņbw\C9Jb&֙luђ/g4'bg-bF &3I*,Ǵ"vsϜc::/Y,on;c53{1]4n缷ի$آR_>iE.GX汶<pgĜE^*%\FcQAgWhF2sxKE$9G*>:l吋mT]?pYk}&P5U}_aF<=|yoh|b=G 'kIs)i5}'!O7&(g |y|ȿF ,,nHX<ƽOUkjQʮd{;!c̱t:趏p~c)t sTO\' ̓'XKs| bǒiscd0(=™YM# 6d^9Pd>UHs05NBgdîxFh{` pf^}T92\#3.|φ[[oXĊ#гm-YΠefCj_N+gkf{]|..J]cnhԽ7805Vj3+ȡui3eMz8$/Br#grG8N|O`ˈ]#c3 RjxSΪYRSfKJgYb,w2.zbg_+X6WI>SjJ/U*|FD82q_? xu~W'G6Yg8Ƃ4 zʀR 'os޸(9?|eARvB}%s+X=QOF6_ʍzS.Сu< f!>xoO`GO4q_j9vvpCSw0Z1S~?kλ2[]?,ٜ˹,B@ j͖Ao^r+?|VKni&iF4wSP1Ypw֔,PB˅s. |{8Dj.}uׁEfn*3ȽM1\0'8TJ"+ijZ Z&b }𺟧NV枕JvW= ص"khx~&몢T7#SCD`2w2Ytdq2?o+f̦;qvַnraǯ1tg} ݹr3]d q9c8qv~=._MuV{h`<p7T00ג'jQdQa'h>3Wx<ik͐+kkHI/!ù_pyu!d.1O 8;?w9y6_=Fk z(Zp0Pi|Nۊa9N!VсѪb$CKKhp,%holiћN٬$b9:n^iq42PJ54N~9f- _(L3 v20-z+ j"mXxIXJ|߭c0ZRW ~l4˚pnYxa8z<Z-$<~Yk禚c|\Sf39Mpg"Vq…S,&ⵘϕa5f 5fy;%ɍZ"@y9 כULε`!Mjrd@Q*L7k 'w8C26Ssz88WAfܿyfpO,,?jRqtx){edR\u2޻3krz_pk ͍֔Gk7x(+Y(ȫ<ߜSTF3aAlGVK]+kecmMsOB IDATI['YzŕY@ nܐq`!{] eA=tq f~6sM:x 2`,ce0[1q3}r#LXoZIxzV5һ!a^>ɸ|PFɊH}tR7K*?_uͮ('fQ4ᬻOa^_rGlufF Iш#>6 X[{us|ϟsB3FpC9 Mͦ[4d)ms'v f{"kj;x;՚2DGsAw!Lt;r`Qn"x9P0MG*ͿDИgK̖s3M%7TdԲ l<tKBMɹ!h]XYe5SWAV6wzYv+7wS"NE }T#Dp0pkkjUWQ!XKbgG0"/40(xs~o`X,qr{)vM{9^1Ńû tS\\Kv9Nt Z* Ͷ|uKEfG#i&@Ƹ}1t :='e>Έp۽NOO߼{>y2\ kȯhS,Kt q?=Y6QNlU/S8J xuU)=|縸յu^^kTɭX)Yqtp\^+k3| ? 2! 6ڢD91ܪ \oIhƸ181O4Vky|&ʑY˱Vo40,<`eyc<<_P!8g{x؊zM~l.f֚s޻{g'o4:SY*FgΞ]ʼ ~+9 ۺΔAah9a.yx-.ӌSz] czKӑbΖz?xlE3=gsݶ&3W4|eW jQ:~nۗE\(3"-e\*}|%(.gCD͐V''(kY,9Ax>E>Qh^$ {l? ˯s*[n=В"`<͈S[yjnÒI}^˜( be(^Vdʍ1Si<Ҵ͘]U=``gm'\]z|akJJ ll`:E9;HӕeOWj~ ? -ӒMeN-íe.nnK* p&Ȩ9\]c2Wjڄ-<58VN'9)ћh(2Eb1XfBUR&vuQ}ZQcס%fv$^$jn.$^u%ed1mْ.S"X)ZUwSۑ"oE1ĹS:t,9P< q2>ƣA!U,i$TQoՑkf]_y78p|}QQ`Gh#J!YuH ⢊F=||YInڪװUb1G_rx$bb\9e?P,#BQJHg;͜+oVUi~-Ny ^oc6~'}Pݻ\FM,l9cwTxBy}e0]vxI{Gbx`!ޑ eb=??V՜(@lҿUm"Û-Ǝ83ySo^ѣw9G[AR'E{ƹEnDJ'`X8ܢݡuKloI\G搢Ct.6Fc$ 1_Ų@b$st5VezsQؓFhc2cξR3cRJ]M:D ~riã$Rr7QZ@۔M$]8݃ 9xO8>9ET{Řzp1\|^յu\9= 09CBwwjl$NN}14-Z]EDHB׫O7C\ ƊѠ?btaڟR6-'rF_POւs*'Mhv%Klp^[uYBAAvYkk#2x@wjL*Nɼ{-(G6c>??Ӟ8 pVAb͆'2Լ̒PJJfFzďYXT3ĸ_ʕc42_ܳhS92v%E(W]dAS.-3 +<)X% 2,kX.gj>x ㌴)LZd7ps^TrE1bQpvI|9/{+ C9,#d=ON;_8v,Y_b/\h^ٿ[J)"AfnU@M[ !N2V+#n`,*KvκDɚF+Ĉ~FX{]dkvzKN]ck{;;1Mvc`^k ԢDNX2PaF^>V!zFa-*>i&LLcN%&m4u}.^itT%Ga2>bx?5͉d1Hfgi&lgxhbn\vcI@2St,d91d!\Q,bKzwFvɵK.dl U$+.?5UGZ^ e"b'qr(Gi\ň,xMRBl %JbG97k,ҙ S(8t)޸bF n \g3*,fw?_op<*cR8VڨK h'wao{/^k~FY*o E(89'#TEuq`d;0("~X_Dڔ /_tu.YK3O t)I4'vjvXߣÇ<>޹`=,9>?opu}!yH믾 K.t# $ՊX=2N&gwwwG՚|ˀsW~f+glb&ʵ46c{sWl9KdT?348=}͙T")e~bk{o޼dך1\WN 79Ӻ DI΋hնdilpiU*;.,YkK,gCLZו|)C,W~ʾhclmg0iʤ̓Aպgtᴻga16ٷi/dC Vgqvn6Ai:cokӗO7:fF%a:Oereu9SlbFDFG7UP~.:lD{&se]0ݖ%vu,vN: "rQ=[s{)#+7nf¦J_:ŗPY)W䂅区>r$y;oX## {ǠMW[u-|6kY/B6K_|8x]wc? FeHy  ,35/L:"|~_;QfxN{m͚s5K1+*9̭MbQ9νF6"xO5/ 6ĝ)D[2ԊfJʢ&h[)gP=-VW/Wcg nҜ̘)gå967op ~o78&>sd~ .EQFGs'KG7דWعs~3q;8bPy2CQ8+ rrVkc.Θ@9/O0hb:imNKTѨhc$QrU#e"c9 f bESUl1u#wlB3Jr/{MJr洘5c^9ʦj>7cn~6'Cr8 ಐB#y7Ƭyک#bTC_ms7T r_FI0ERƋRbRUdgCzdW~aICKȏ|L V͕C̽$SYqS*$ogHBje>l.b!*Qe{EDZ{nV32B:Z\n&3qb_8SZq1RwNa~3&hKN3fB}R{g#}*s'%آН#x _12 J-/dRh7P⺬ؕ46Ȉlb Zb${],e c7f;onnq=tuZhϵQd^o`Y ݵY4U| Y;('Z'[[zniCuggWːSK.273 ?2~Gv[@k,PQ$ ;79^FV:٬+|3?5XsQE8YN!] Wjb@hTL"Y. \\ 9jtQ9YE-BKܝyXP`|Z&eEץnESAH ܳϙWO:o;̹K'QtEܹ2+~UȧQ3O\[Μn2F{E'(On9w+6C#\P3F-\ # -cWjLPABcŕ Opl~!_ŠN򸳷\iB9! N!K8ֶa0}#JbI桾9T3r'YH>,\RPMgs1LH{G+|G?O"?[A;-JIkf&:*B^TN3<?#cɚnp~rF1iٜ\ J O|)} !vN+1Nvm47+ܣ Eb|fTV?gޒ@;Btsdy;ZKIpw01¡]:{K:LX/ IDATD!^' ŐR  YQ`f,KWɖ5DמvFbQz1ӷh˛/_A -o(§D!BdY"̰pA> =qr|pR"fXxXX*SP>٣"LH+Թ-b붚DfDSTikncgg0XVM*hȂEC[@ ,,bTy$\d&plbPPj]{rY)u+YRZfn-k;'GDuu"pֲ\LI9\dr[9/"zNODF"ESVt$ЙA\CjdK;<_s_*H֫Q57%q4+h \L~L7r]?3IzهP}UL:ADnvZYC1gXbv%Kd.g:GHL=z|ڴV+4݂ƶ"֭[['?Wio7{jQDJ7@zh~AD@Rg} &8!yW+>L^z 7t4M{YkRN#~vs4x|DLb,r41x[l줉L%KTE.?ґFPiٚ8JDgbHv^IDC-G xdДwwiRgsnTjnp(Ѥ"%MbsbmJer9b d"i&LRoddpsMtoTl2#j'elH|SSx]/c-## EM=U@Mξ$X܇۞f/Xjt)lȮ샜#" ktu4粉Y{lPEQ"2֖6C+/ s™KСl`ag̭@Qlw\=˱c+8t; 0d2{'#>jjsz {LB6 +<^5V62h7sRso^;pŞ5J32z ݧgv\[6w˰B*#s16f^5QI.e#e= 5k}ؾx5Rh &6Ds\sQwpzرX o)jōhaJ*mPKfBXtC۰!P6$.7o֬iK YS6N(G1 տg*çLe ZMx)IK1՚ܽǂA02=v?g{oش\= (ЩUvfd/f$)7YTD]C!G|M]'Ǡmj ||#ܽ+^K{(WJh ]mkui`({.'=z}5W7 @Zcp4'qQ@EAS^ahxi 7bq9Ǭ=M4HI#d(hWK%\$~¦ڮB:CKJ _@'JXv4<8j M Ͽ~"YmrtEfm՝,wؘK/=.b+L8]<ɫ/}+h"2e:HՐ'F2zxD/qfB" 7_3w+BhQצ*=iMnߺͼJ:Wdh̸ 8w>h*^?._|)'})_|)<}487^O=e\ήH'7Qsr%l@k6@Gh糕V3B (TaV+,\M'C)x#lbiJ#{D kR-Q Q1W9(b~Wg.桷s E&1ܐASMz4h*7Lgki:tʍFǤV`J^$4vxA[,@ q^zT]7bu`*żj@}sLr+3:/XK-tE59uk~1u9:5yKjTykpwNhVVtZ\d:sdW1cҙLm&4pǠEoq.Iuy4$0PJh'>;VR󹗤[MYCy\p,|kdiR6Pd(51Pj"Y3#/*3藧Ḟi}(>Ux%ݯ}c($y<4i^Y@:3>_>emȧ"E"ڄx 1֕-OdD 37b ȪXs@^ԧ:Dﴚ,؝xPأƨsgZj5eq.atO%Dp6C{سG6)]V(mf,VzKh3ql i;9.+-3lvua48H@=bZ3IJzݢL q5IofG!˦ڙF<][DY(lVr^F`YIYs_`QJٷ{Jh)c3[5WV3lbꛁiޟr^_y.,iR 79N\&5tй SY̦R XIߗGAͱV M"v}c72|˼_;qA=Gh̄׏wM3ȯԻohf)2e oʑTFK~ݏ|w#_xz0Mx:y !tl/odXN_G?+k7uM(  vafLtP.Mm_]YRWZU*+  +)9E[JC& UWR<<>Hƙ%⵻/7¤SR3wp15&h*mSqR=R=yow9}d5s5ـt UIj869h2Wk;Т'i^|jq\^og1t.(iߦl^ЬfDf Luf@X벳{tu}Ip}i4ruuC$辸7Ȫ*"' ^ӱT$$薌'3e*6Cf {>+`ysv{t'%SX#wb㺵ӥvLۨ 2]sjk<[hk]\]IM#7 df4 cl~RN5:ݽfv0ׅ5hϠ1)!rVk88q4C# Ff6ZuqIyJߌCyu6/Ϟ~-q> +1&SC=dx;)k]g |L@1}OgM,CtU/OSTs  q.Uj4}a?л #HW(lbSK5M-+ջnj6|OěM&FMsHi}mz$ZODWC|6fCSεVo-<`.a|ΩAmhYVxܚ`R3I)"x2B I0R}?\zm㵺ZcHibQ<6 yyÈ(ĽxS]m߰yoU-_ &Z*³y-c IhK|GDΫ <"'?k/<ь=:67~Q򸣍YAi ݜ;.8k+"qvQ;97xIs h* t(l&pΜNV>{Ҋm1_ɿ x12T[אUq V{PPbq[^ Pѿ|-Gi*eZt~V_g\YLuvΣ-Ds^Jwow!'_v38~RkVcvrQld*,K'Qh1v&&x $кD-DU€%=>$[R6LxXB[]mJ{2YNQMg+-FPAaKrgfD%io4`ZR, & FplTͭH[iFV#H#P(XwLn"@S)tz]+j{ ;Xdrxt B4'Hbi44%]p\9ӜAǁgE)4B&ku(n29Ƞo<<#7|/U4M Q)t`!K'^_|}#XkܼXP.lp;kbF ~w\~g9'l*駟ʫoKߥep.E/2o<JoS.D>cj߾}KfRgҚklQl7ZMv/t żqDɭcIX^x 1i*36 _BԵ0ͤ:] 5¤QGvnOxu5$)H+~yZ#ݽ#YԒҖ\qS'RMjrfXFsM'(F%ٔכPV\tt.ݒ~W1\XVx `.No$LȜ-V=hp*V$y6ckbd4~"pGjFDќ.WU6E/477ѼePјLbk4ODEMrmPmqqQ:h5fZ\1gCL탽i"._}w􂯍WpB^:LQz0RRY=C7@iZ|uzfaࡃOˎ/zIFmhʿR(CY]u#وXίo`k)/mʳ)mB\ߜTTLd)h Fnhh 7al~Cl2:ͫ3qpc\g%R6n~f)̀5Jm$67h"@'?W7#9<5ӊ<Q&߫ɟkq@xٷ2.dבэ\\4q$zv'W(܂& T?^%yQМ%Ab舑 ~s 5{c0+^X´JNJYA03TtXqB#SDl`@ :'UYyENX KJkn~),8D_9MvL,[Pć 5:Me΢({%R=FVf!\F3#6tNqq3"4R_H Xp@'g@u[\um|NRfWiKACY/mc}%$TetuE0F]7,<uu8Mߑh ե);=\PDn7VwGdžw|-׃k =]I|EϞnεd6g&СP7Mьgw[f Hvɗ_DTޣƴ{͈CrE2X >\@* MHʆf8d k&:F|n+i6j?@#yQlMJx?e|\: Sc$[iJtoK7I?72ȇ''쭌IًBa<%ūүVGN'w& *EJ؉\Y?ӷod, 54u0J6Οp#w#N'R5MPb}FZa 0 *QdD AbwH|KfH[2L|EP.d1 @֮zt"F)jl)`MLBjbDp9̴jC\ c,5k׈n%2`a+4_})m r( ]xܴ*ádHr.EcuzN(HV:)U2^ͩg@. D><<=ښvN,3"r>b4M7G294@+܌}i\Y}\\l5|"tB<K6hp&o3&5#m^Ԫh*jux?97=<=;Sr,ݿwW%;::<'˭w<yD3kB<=9-V:W/_L øG0,2vJ: 4Bߊggl}Tޜld{0eN .L'#@3MknY3@~I]d1ozxo0:+X9@OQbpLc> X@3FИ$d ˈ[+\4ź`'*VP5iv/`#J jft=ʘM_!e!F=t&u!fzOh0k" }Xu/Kx,nWŞi|Oc'ĵ1l6a?p1JtvRqa%Ӂb>9<'T9H%3|\?Cs7e#ڃQRޚOg!՛=YC%EsMbز#crf]&,ٓJΨ[(BpN؀ ő8F6=D5[}b(*I͔W`n,UwfFCW4rτk}\3(,0U!W#^ل]ʰzI b^QDs=SBJFsͦP=mPQHBfÅw]>Yt>;J&X*lFqhͽ KiÑ^ )MJB\wE dL 7xR>m,GKtØ.7QqؘW^g&VQ>p(|\9iQ 3bmJ[i"TdlBZIBd@#~p'l$G{7K=)_}|bװw:j%3D oHl d'T KZxs1v*m sH6NlٮhbFDb4>' Q Tɉe 4c|>8Ɛ6ó~x=y,QnQxq5t!@ 6~ cZy(0h1u0kP1P28IUhQ+ml!ws( ەZ7>gbvh站,=pu:eo_L|2 HUrxp&D@ְ7Y9tÇw>z93j9JXx]_hdwgz=@LJH>IEbllhRϔ'-_|,0=W\Cwv=}yyy!  nooqTkʨkhƆTv-o$PDHk60w1pFgKI\j)RAjjJ,2~V'}.y(рCsLG{ hpa`{AoMgE.c7AsȤV iOvD__ozQ3^׫ L7Fq.~#W9yp_o@7oۋsɖsq(*qomP]y,@U6 "8$~͢j Ic飁a~@gI"۵eͅ(j:n_5X.K,}Zof9aLEgV/8R mΈTqyh(Q]lj'J[22;˸EޭfGX/x8~1&jdm+&sJLVh x)d0މτsDM\q*[2TY!H6%]~,J1t1YwuTRcl˅,sY Wv=R 䶮$zNvo_z]+6j=vcy{J.ixE!dߧi/\ tmi6+oXpp}x`aK*}vy!<}J&h..4@BMxf&KhϤh1 Q^ ]L.)H ܃и.ɲH.0"Ǎ"^!% D)ՕdjYF;*2/O ÓŜM!&+L@liÛD"}Q=j![hln9NqV}{&E-*2k*ֹxJcN74*\,%0*Qt s4|vlLJuiyCQ"5ၬh˭2n`Lbۨ^ۛAZˣ>w4x7f߸-eLT~*kHZf1+O],ԭX8x TuDb`f\yX ^Ӽw۵N Dq>:6}zhuK|C#B j*h͡!!" +6QdW)5ʄx'O49&mܶZ(6rv~3w?.?r`ʼCy/*,Hٛ)λu{C)?Tt3* .RlM[X&0#bCӉS4'{ A6b$"km$! ΘX Df5N Qx7TYadJDiQ >o0f)"IeZx47U>yB ͤѱ?/hƣ41j9 >x̨R;Q^!>L'{6z)F\HU6`_Ű? *FCc0`x ho d(Mƪqs]ݐEFFVOyH`bwxZX+*.F%t BQP6ǥ>ZMΎS1|cP&k ր >"&:yPJyJI~כF&%,x#+RilXCc8 rYގ]f#!eM(w0?FMC}$|VG3%ZwVIJi,3f5$gݚZqKT>JE (AO+G`=C?mڑ[ZBph[D;wsث#aB?k*I;E0t6IXjěZ&ȬC;́ӛ8)׸r䖿鸒R[(*chFǦ)[,yR50Iqʸِ9}+_~)-Q0SڢV~hەn=|_FW{t340| :[Fͱ7mu6ި=0@&rpK -vxIO[rrtɱ4.V>+NuUmn˫+GOK6x[-UObE䰮]f.F)5Y;'.P1R$V̔Q)8qpL"հY@^ zFKR Б4k FK5*X O.̬(N0K,х7ED/hP . EL+ҩ5#OZ cLvl;h6@Ath&[Ehِx,;[[D{`T5g/( ֋T 곯./2[(ErdeSt=yVoK=|DY'VC >e>[ᖤw}鶻/>-eTN̈x\g|6L7+"n'thPo5s`ʍ裏E4 ZPi92;4b?h /QZ\|{I붼~(+P"4}Pt]_dQO[+AgJVu|<%DEk )h+ЬΡRX6* dc&A-/гK e6Iz*y6j*rY>;E*\sTY7{$Jg :t@Tq}rNyl.5,JёF%㛑DC}9EJIIVX*!MJBiBtfy %6t*Yqe QMitJ7 BE0|>P~s!fz.ckr<-wݴ4* ^3(ImWJRӚuo|^EyyDI¿ѕl:vhŜȹX8 8 Mh c5wn^lnsV+.1"zb4QMty誏j=Jgd p/~Ybz3EJ8b6_mjkryEwh(1zFʬXܑo+ͨH__\FLO@צݹwSRӘlĀ,TL˹uV5պ<%E?P9#6 <1\w. JɢCgd@Wa@W ]zXڤ"\ `qyyߑkm.h>D16\7$9 G'gCk IDATZ= ,_WoHp~O 8OrY6|Ӥ}J-6"cW_ȥ8?-IxX߾4vJ3*$jN c@(ʣMYwMHX:.?[ 4v䵲֬l^lvxϵʃHqdw=132DuqM4*TJ*W,!2ޡ|3YN-¹Fs d۪@P5êȵfK:ԬdFhܴi36z$i^y¢.6=p~#JCuJ vZ+blyp@e^֙_ASF\oDz*5hs5(3YkhtXݢ-}o4ѕˉ"]~'?ٙ|Q+R#a8Km}4L3-Ԑ% \?8ghZP4ZߓF.gg49bA\sjArFTrp)D05+Gߑ~wz_g2](Y`<9|zBg2\`LtqWӪ<|G#vM]g՗_Q(|y-+HЃq}˿+:_~\vJrHAo1&[rtDs?x!54xDtQ`m3.q+ 4qA@AMF=uɞD0])4*C4?gB4 K9y^,+kDpI.U!%(s"G1Y ru B5m`0|Cs_OI!,xodbEFDDx+jdԚ'tɉ6[st:M܌8@T˽Qd[[rpC|Gh4@GTMFwvD_};prXR}q(Jzdf1 ț-/_{D-rlhk( /ⰦQx\]_p2$ Eʆ<42P|sX&S]W `]6-hmɳWϥߑ}7Ӣ!=={+''G4SA#1Ť~/lƤި 1I7ܖ8z%i9Dbii1 MuxlAc\zAW&i & d8P*մfTqVcRU6J EM"#v)لUhkW{ҍzpuIH^VC 8.\"B`d fV,c"Qht%Su?5[(b:u✃ ;.YB@c8{f6Ћ%& viUNB;]Dh,R uM9\=}4>z-ƅ*сdXU*2_e{k1GҴlhٹT/zk ${۷d2֬si?XꤩÁ8#`:ڔ=Ў]_'u[ ck ^=U11i. nk$50 >9PFi#fSQ--$ D5@ODCG6U2 ,5Zj2-teY MԼZ߯Em8ڠZcm}"Ʒ&1ja^l8}VszX˝O;.U~*&<՟OM(fܽ{ gv{,SCm؛~M*E@ {FJ7ӡtЇ݆uiJ9a쎱)v!I1dI./VXu!R W? ?x4--A^~$r;eH뺒c3t;τbDJ?4v\\Iw^!F:^'%Yu]]ܣfY!ERƼ&0(RH6D度&# _aq#7|iR )O8e0f2k:/?Qgº壁.!1*hwXN"3wc"4l貵61+[EŤwNn4, 9ّ7oߊCĄ!@)P(Ʃ(ss5CN'R"j)) "љ76pI#)GJR%c~b7b*-TG4_sVhb5[r-bNC\9G$W%_A h(uvG:({c~,h8@Ҥٹ(8PkuŚcc>|*K[q{CkZ*?f>^-h`qD߇YAa)JS?N^GMQTRsN8QaZ!^Oz!y' R@&Lbr砸̺UOzmʨ"}oGVrY͝5X^̯W-Ad $4`$/d46 ^ѻIE gdnor#bb%a ko#)Mtǂ\zI\h Bb+*tzrݒ,`B^j,{CA+gυi]D[g廏[1hCH2҃ jԩ)+ _n!\ ͊"I3mI?MX\U̼&2PFj(AVhT$ gErס1+d,(R g̊ZB-qMҸ*Z@59hd͒ (&t \>' &󹬭nu㇏dwwy//?ݓ=i)^Mp^bN*`$VC3B6l!*ߕ6[X07ӂxttK`w_:.)_}5K#Uj'nt;,׾*iZdA~C9:<=)Ez:1)@B//D޾}CGȦ(ќxR^~#/^=@;.bQvvd-.(L[`0\A3WD4B~@P5Y+5(R5f9x*\$S6{±Ć@\̬ '>¯YxF3nM}(;ka=?{HMCJSjzXC4{\ 9=vkU%newgWe5H+C"u+iM2_4á׮ 3Z6v\+EH֧D\y~d|#mzQ|oƊF13eAfAEj GwX3wALJ/`EfjCZ6KDS=ٽӄx*ia 68o$%Ez`HMw7ZF}Um.ČxbKY`0,|eg*{?sZ(}C6J` ڤwJ)K>hZ:KmP9FrAPaFkG/Kͻ'aExz|i{BأF/nV"/+Q\u%.G$"ƦAU)ݳ +{wUǗx_?)ɮ((6vQ6x*j>N{;o^{;LX>'ȩچ4 )4D%QӼbNT޷Z3%ANM,j^_s4p0WȠt]rnBlq;7Fxo̴Aw Ӧsx*d@ ˼T$/D.uj V"+Vw4bS}ْZ@~F=~yZj({y%Gsm`Mif#K @͖=f?װ&sSlk:m(N[[}"O@tM6jVC./?Z JaM `ƻ䎨"TмX8N(E񙹺6DSȏ'Ct-f*y,q-&6[ӯ_Dcoıq%OW/l$GW3(@ W\]3fggWo-Y-,B?d!  9={.9ݝ==n(Օ #/ٗ$-[]Ijn-憢x{LnFS4uyt}gF N(Q;c\IG9WGrzzE<h۳Su<y:=űFm , ;3Dm@77Dhd@hZLfeJ%%m|+r]g"m-#-:FD /sR?{jY.DGSjϗ3MǒDy`h=h XC4zYsOR+iիSZ˩jqUkh3/'idcq•{lԌTyjE/Լ=Td\NKӣDݛAMW%GCMkRގ~B>JF;tsƦ s`N4eps-74G{lPLn֖ob(Lydl!{r1$jF$1epq)v_>zX]yꉌ7fZb=7/IRTe<ɝoL7 X4Mho-F"|&:M0C{5I\ibRn41Cf$7$mhb`h ZNso|j#̐f5ʌׯ9S}-#Aи~W|)Gl,4/뿗-/`P=|&M hx<ѰQ15pMJEM~9t|ݨ/iʛ7r}>m篹Va>`K 6hРkNOC'ܯ)£z{8lS +0KGcխiE"JXU&@IX.gC5h.a- qhK58imYtoITJo 4[AE9hX2$J9:'݈2_94Ky}%X:M)JúNȠyF9@e L tb.ا21Bk$NJ]1qxU##VRFq/Nh0*iwy̮+,K4h9N{mP/R RүFvru32ʟC]wA GW|v,_]uk1?A3i֌؞\pėB7|(_}9<2mHD2QZʙ\9vHW Qt+?$(ޑ2f0B|3gz+V=I٢.믎(-ր҈XΚkm4^Fj)̂W`ߣ;ğ1h^|>Z㕺ԗc6E0$S R\웒mG^ʀ|FVZ|c:N ]pиƆh٫~Q+UrI8}!p.;FUF#OvA?S! v)P<՚_7EPK辰<ێ02;MBod%ʼ"΀ gD-6* RZ=(qT&,΋z:]yVfןa/A( ("J9㯠VOʘ\ لީ&"ҤFHW?0:ljVc8aQEZ[Fx<\ߴM9\H'MVU$ܻr~u!W[Fr11b&׺¼ԇ~Wj۞y2{bM9hL~_*|4rIQS-+QDý 6M׌5T6Qz4VNW(ġs%mFd@i?lрk65ðfA:gg9ȹF,w w]zc˱D yae1M?yun pO-.e^fbMƁ0E酶z^;4IJ. GTWS)H u0B{+&dvBI(6'UQwah-9h_=5`3F3:_z%'ɯ~/r]ldd(T"7 ig{weِj%?Z/.I_Ű鋧2ڬ k(Ag FZj! "#Yd@i">\Kx}4/^d2A8>{.Bo]#ytY/_?XrDEI(%ͪb^(pϟ M(택|տʓgd6h;,ꑵ J2ch/_낾ڇ5Vrf<s=O7_s9>=o?'''9st&H-`aS = Aj԰WCg(!ъBJXP=G`#4ؠl?ivA3F M[}4kV78~x`#94k fp5h+N{KR~:RA ͊ & vOHՇAMNj*axkN{:;7Sq-󿖧? W-s-USJ҇" wtF2(QM)[ he`Ph^;F.}FD) `rHqk9ݛR68C҆+6E|U.x|H̤B6ȓ]m|c4Ky",JcK">h7Q8$2 GYɣV'[^oS.PUoZSaRzV{ȭByat{xS+ߘ8C}Nj} n}%5lORU1͡7k0|nKhF RKȤ@L%G -MsxGuWFF[_9ӂVf2䂬*ٛ $DuC]zW|@قCQƊL4rݚ)|[YQ=U~?L)NY5֝/\.|V5$?4Q_3Ib )sus?o7tOFr YL;W*o`bHM1{ _/Tch6&#d!ߓ@AVgzB}J΃!Ơ)"Kꬡ`HlG?o?ɳ߃ @ p&Q6i#)F9vUzMyH(#QB'*@I[2T/UϾ<Rc*C6p9i6mJgFFs+2:sZHI{=mUԸxM@ZPR y_iJnbD{D6 QVwMy|-]q+I0WN/uL=::bkNt"+Y3׳5Uga @^i,"ЅqB`-6#vœȧ58b@iF0%uk֨4d|mWS3'6G#E"86O3H;h zlEXIfiӈiYUr~N q$sLs5m 2OGohgWTɺ(_?霚Pg˙|CdCFF- _04P*}0rJF*2޲EEa~s&'77r3~'Wd<KEβGGg-Yrq(z]5;BU&G_pvyJb%WU+.ו63 Bk*4{N}@@(= Wpuƾ$crhz& ]8_B 5(jHb _hsCspoJ^k64iƸHI=e\{4p3z(ꖼ"Tc0:⳸HYi6 hp-VruJ:ޣʘY,%[ &)j2CeSQ!:lHe4{QҐMՔ#/Kysџ<^rpЍ'&;YS˫&NXVl5~}Y =+J+[0͸{Mb`lJwa×gI}Z`$`%tMR:?{Jkg+z>=ƥT2@-3ҏ6Ce(Fsr!Eb%*͒fd3y5?E3Z$`b%ڜj;y f|*z!OULa6JȞF*+V?ɕO>>& 5/<3-3~6EpϖJߤi1/Chdٴ9C7f6'`nFY4h`a&v=+}U4OFa Pw.ysOIS{5w`T I|A6lbE_#ȣ_Ⱥ8N\C)\KfHZ}Iw||H+h("X [д>FmwN]-P]57^+fkWUS.njusH^{ i(ڷ.2yv.//fr=VwjfKr$wN#r;;R5:rx{|RxoP4kBA L?_nϪNը2ooF:p#iuM7kF 5)NC{4\@`|K2RzC@r0A5c2 @{5lꂹ[yve .JUӳSE7,""%i6pd`(/_Ǐ?溌(EC |l*T(?cS[ƕ9g,_LG#K8y҄%dyzm/Ŋ{j0 FT rgi^*˟ҀGkgXy4n Mp^w $V9Na.v2 (B&tr-iwE=FmQ(M 8j;qAO z3|Χl2T롁fqTη2K ~&Vnl~&x$Ȧ7!p!q75%=U݌Lu;$DLFV. >ղ@ [M@*7 I/?WE[mCɊ$!+ 9epaި.=Bu]f6h}/< Gpʸ E E %vJUY"Ę}__eYobR`EYh%BN,@n(1V0vB t[螯`J@ }.M| 5*/6*l!,#R#6 n ~@(@F$csn76s2}$8.'sѧ?t]ͦAQO@ _$'qt#sE|uh*r<ܕ[ªqolBqӰ<7ܖĦ['JHԾSc9,pV ÄxL)e1G|"`l45TP^FTrJͪb*"ǒ@gDLfeJihqbA1EIի߯Α08*z +s9TINH5h# P}Vt@'%o4[M6>?;\ЌJZa)VIk D ca8*l 3R9A ~G_Et<y7ȲZ(_HpPpߕ'nR[ Nk +l*>)0T \FDY\@#>oM, O%d^#;C6z0퉢,t{w$k$郎eH2Ě@ \xh"ʅ ;w͙ЉĒi.AſūgZωݻt;Riu{rvq(2`ӏ" tFkms0 l )p]ܔwOe)X XǑ h!yTgc.hNrš I@r7" 0LC^k ڝra( C(rRd/ÍKeQ53ܖT pVq Qtb0mBs$=> Z-wd5RbM9e&Kk )J5N+e7<3}bQ\چ}z'[ozKM`D|٠`g:Ď`fkQ@F5ptϚU=Ōᓡ&u؆h-NOe>_d6hVcfYH9-&%BG3]O'_-4e6h([h^5tPX6DL+0`(|$IUP|ΖN)==0< .9,7,8u"bSNSXi}Qb1H%);]JەX])k6:d)iK ޾>}KH4l{46γD& [!IjWcGlaݕwozs062]Jӕ<!NH{;ݷ߰f&nmnx?M(sggͷDA'w.31{RnR3 5-xgDa6"S(۠[IgÇ\HQ@;,Iwx Q;PbMZtw0A+߰1ɚ#`q.l@J|MF|/YuES3j֛[|HKnL/ޠVA[dOvd8d83ȡNl(Π{2 t>~#:QIW0^G khud*A)hMKATNz*_/ӧlD\ksWw؇63SAO'dñUl+EbaPcsQhB&YJ0jI{mdryK%0ͤU=l6⨑cCZXuD6kJH1֋s+k'6ЈnѥpЄ2^meY2dvֹ:ů`iHi^[hdP3 k¿גJ CsYC5V~"9K `弹YP|Pw:$X}ho~`#DyԦ_5њo3:BPݎ0Ac ϓZE_0R"ʪ~LfB/5WX. VJ)(X<@j) l[Ig FS&:oVUmZ굛[9~s-uH@u5q4ַP㟪ŠXUKIkY[wrquE'\?7teG[ t| Ooߨz]peDVp Hc![CSb Ne_sw8 e ͕fE3`/IY,zm ((aI45^48~s7hnӱ?>jh$5q T(x1ͩ E*"fkiJ:cnd;H}MS3#(AC㤴 SͬV ZDь(s+6HV+>_s-ED ӣcYLgbMWjC'aI?:ICQ4AYYhn]x>rxnoo|;ME ?cso~TvwKщyAUzDc9&1ؠJƓl|p/5sr4q4\Gl\K"{j䧟\!3a 3',fh|m2J`gR^]\{>+P-ݻ2V,SWnGktmftE ' @qߏdAkͷ~#-а}܌h!yƭyE<Бn7pВDJ;롿;fRQN]!r-kce+Xt[Oh|AƊFZ(@t} q40ݥLR>T>]]]krU]>om(r}Rw童L&#ijt1ý&:cwxS/W7Bp /s^h`rUr=3!Ch m'K ڌ::9#Gw_iioJk/pfL"96)(ʖA=jGY D]+.¢殬+ސJ պ<п#e.DH)sC "sCǞ wmgf͝>bFC4lfaVKNktO.oheŀ{2L Y5vwv6W4\D/mvz|>iJ,q}xp7dT\jh[QsF ?Dνv+uOr+Lbr:˫ >Y^i4fʣП$q]?|e\7*#{RʫUaF,7Wp1m^H9b!vwAg[]Ld-<ޟdK\mjrhZrVrѦ2x(`};٣^F9m@ vmM9EVn#AuiھW[`sލio6V M=59Z|?FX <S33:^A3גim5}sN{n.4z 3dJ94K^CiքF`4#I@'/x]-]n>v o}fO?W"sH>}x_(jm[ZxUIa4dۧ}"fHw |Dp /d@0RY.(8%5@B~a^F@Jjl~7ZxXh!Ƥ mzDqw6]KQhFZ\1B)Erl"[&f[Ύ04Afd4meҏ#yx/|7\/9u;j]NR bɅ6 Ft}6\cj{C"g@<_%K Y.F|zI\[4s0GE?iߓofcwgHZۛ H149]B={0[.WJgO1_/Wstߋ"C_dͣinY|ttHdZmO2*?5F#F1^4RN4Q0E84i)I3>B0J:#6kCBN.o ~Nkm)K6Р;S]P %ggl֤Zp]*/\ X^G'{G2=9={ FB6R yZz׺ɔZ?,QLV@ي~$n.rdMI4;ut8+6R {2Ï>D.n3OԢO{1aLA]ghȺݦ^H]pG{\M]m:rm*wVx4!{~ΨÐȸ g>X&zI Daw"|nų0N0>,V  ^z0Csro/K؋_|9:N QO)u66vz:蹣 6tŮ;nǑwNuuΪl!4:NӉZr[V5Shh*DDNlWio>nz"_vFi(@FF|$I)bȣoe9(9*7|AzW6p8:3 '17hX5Qsӿ+k!lZW.hA6*3s0ފagf&EYx}x$nԃRWp7x!e[G;2o&EAg3^agryo!Zaeo9qȞ-B[XSL|PD Wa]5e:63*]NYp S$u tpbZO-ϸH2p@W,]jhq "aM':JiN@Nlz@"ʹ6!"I(c3Qt:Eb60VOlry ݕNNSt;?t|)X7BXɗ_ANAC)@b3Uo2f!zMwz^_}KXۓXްjdABH):rv<{DO[y! r5%5PUՔuіp(T!ZNOd oWl\Az;l јܑ7oϙ=H E'~&o޾Ky\{'Q zDN}"&3gOa"Gw2NĀkt>RU35u#||Q^9nH%uvtXLA F ~RKWV'}"e4xuED܂Iz rsIӎAOYiEJ8 DYT-1k"F18-EbGӽѓ}?cSHk˛2fg_n/9v ab6aCT\Q,uٹzg9r4c u4'VQK3D0aRYGFtoz"b""~Ȗ w {CِNeVb@ق WRA#֘}F; YBX4nd­?p9QT:?4jAhU \WC\ kڠjK-siCEs!f8Ӥ5Ko*C?A%6rޠjKb\|'<9"vf9 fXk3Y9J-nqXu heGfTG!F|1@ݕhqcS^,3U QxY4d;aF_}cޝ6Ip3VQUԚpFeb9?~gqK& k#~ 8u1t}:tYH5Z_$q䝥 zDEMdwyAмw4ͨQr!ڑ TQ54ҴY`njmR{-뿣k]FSP5:cTzS_-G s#- ]dy'Y򑈢7Hayf9JI1MLȲP){R|,_146jCgS?A36ޢr`c}ZmNeD|{N:/8F* N 3iCŌTs'N9WFeLg [YG\~E wIZl^Іh#|ڤW5FC3X+IvGHrz*js5,f]5k[% RU HJ<ң ѐhp))Eb1 4uLP,"\}naH+9G'҇T"!3Z׋"c\^^޾z{!iM%z0WO {5U竩,Tqo!YbHTV[yNAK)˅R66(U7sN<(JOGt2μ\L[lJc3Dw6e&w|* F֓;lZŔz>xF7o{}Vq=!:9<| IDATKD\͹܎Fbt\\$Iz#âO>X={ν{rttB'x }AD>2xm^i]aK'57*tL;CiⒶ Zx+WU(ht۳26|be-muA 9ba5[,z& @4wOOF%t`sנ*sڌi6Z2ǏC iJ3gkMiʅ: &|/rJ {ig8OCGl3趼n{)-SX,ppwP٪l*E'ӣnd96nKjdžX:6k.6kdzQQ]G[7VPl VSEŜ}o̝_7Б;/˖Qj=2k v`MiÕ~aTHT*YS_<#h+eA']^?ֈ:_Z6!wFUޣ8C@6=ki ?Π8Q6WESE}# gO(ɕRj w.[4mgom[/B,*uAoCYJciOIRIxm]GDV8n,S'S&X̀Qp1'ygQ80-t}72yQzQZZ8\4dܼ_h^_LE!LJ@C=/ƦOS1䋅MI#̝5^͚-J%gjăCw{U7@dkAC#CBʝZH|l2>j.Ōۛ-w4 nFv2O ͭ">JjkP4&T\֬:ʍU$h:fUyE;Di`܄HS hbEcIRJ bI+e PkH, bY+:zv-Lݖ\f~'2Z$+EKiz%0XU*gBt7kX,&1BG*OЃJ$fnyY)\Ҋ Y6֍%#"i1JC~"'Y@^f %e;mZ'%ܔр8+F /C:a?8:jEzSĸb3_$]gkw^k4d^o~ҙON7~#F򛯿h]bn$m|!޿&sh*ta^C Krv|su2;j!H 9d4)5* b)U3~:rD|[Qޕ8-kuؐi4&+VT yԍPXWkyw h^bȺ(fLwU1P4*64h>k =-Lz;URAC2h`GܻVfJ'A3tEH cILX3@_ 4͂*̵˲=eI"F=b3ydK]"K̤ب^k8ngnϑyFfX7qh!Qy rdk PhtD##(2IS{h]ʖ6)nlXlqQΕ6{96\]m>M1͠dJJb`3Ħ0Cf)]oiL1Jx6Gx1)},hqYWoً_iw8 ۠5Z[|.Ima?M{)8VәR`I;.,56ǵsӊDfez"*JpjbWLO+5yBg4|*Eh:] ẊCfC3iLI NǶdk(F[CFC Q\Cϓ> hDiR1!B\ٔlV=6e$*&dpzނlL +Rpa(^@- ߇(m6ikyYXr<חWRW+J{+wR^]2/XnǷ4|']9ߓtYLy%pz>3Ҧ47 ~#kɚ@te08 BBoEeSTnC4tbt>h@Y;<dB.nd1V{G;rv|{'vv(bd &YF+rh38-9݆W+IրR^~=te*81ͿwvZb6 ih D4ц G<+"ʊ{ [@yQDJ+I6[{2$Tk+˄IY`Gc=G [Q䉧5X{$_qTdWNxKP|OCH6IMUX!/A*7eGURr_雿4wa>ƞlDvBwwXo &P(:>cdF̡-O?k-|Mngwe|{cTΖst"G|$_>^8;Dz͂qrѥS?8lCpx kbD<"?Z{)YJ㉴1vTTXz&{%mEm08=ũ5&?7d[ ~2W6#h=I|8ܓ…tc5OY7۬Ҡ-C7Y99W.nZB!3Rp(wZarJmHBuD+-^RxŦ45RIBhj)"ERa 78 >~:U:B ?ݷ:LQcbĩ99+LC ҸA*ik0efE MQ? plTȢO|NOۧOjFMA'xʇgh8av1 0|!DL$U$V ̂.ޮE ldJ]bv{:\d>[>Vh^UXŤMcZ9 0*e>E7gãS9?wR ـP3_H˥f@EgM]-- EhӦRFܿ@X`hZsٔ G%Ī1S<Cӿ٨nfd.⠌b(!֓SH[ZV wW jM;E#ƣE[N- d 4r>%=5{EMcUXB?ltu`: 3 cĒ"]6qn@ϲV2u%G29H >ە(~%Zs8)ExDF$IK!˽b⎟Pp_x_i"RY"3B9AڠiQ#ЁN=R6+-޺mZ9lLBYA`v0w-.ܙ3s$;2(:RO뀢l9 Y> H݂.aޛ&RÈNH'vf2\]5F "-z^V6Dg-5FB:.mW-r1mۮ|)bZӺYܐ6rW}hzU6W9>#e*sTFfn= ^b~5A=Eg3ؔ!50^*[H:KA鵥L-b>tg'\BYTeaIh5zFn}=3IoKҜދo}^*ɩxe0 o:dZ5!N{]j_VzxaZ&=J5Kb2%? pMZ׈Rs0&fQb1=®gcRK,OkX)u\[# .4j${ԛC"?y R1]㪬t5QAZ󘦄՗݆/&ԇً@8e8$@T\pdW^r\7[]#6K⺹"fF #0Bu6l7҂6|6-E 12R օtL3/쏈pw.V5so h&ѐKEI>R\bΙ, 9PN>x#? y]'cfܴkT׭I?<%kg&$FpЗbU3B p#cxG9q1 t&ֆ9O؛79[WN@~4BK[2|2hGr=mʼn<<>薇]Y iAK*"iT6G8tQƨ.-'S%3-J2G"jMӦf*Y].ajH7][W(ƛG nEilрaЋMU(PxhYd2C!,+],dY,q I9)r\촻70{2A, ih;]&lTɤHM%nO졬䵸)OYbM&Y1,HoXf/yK"hDaݩfr%j='-HZE Y/ZSWWk;;r|r̈ׯ_'i"_K7?l|ASW_)/^O>%;GKhKl)Cl?h⚡36EF) &򉧶9iug7 hlبB /< %7U{q!VZsqq&du@)ZUƣE gp-9:ڷ;Sfݘ(z}M}R./ZchƲ?L,-ނ ft-]?~,G?9SaIo@>|\Nr(WҖ6OF$.lk7N^?׹s QohD%S@7EoVRRZ#64F4يN랖ݳ:LW6s潂曒^ƴ655N<pFLfPd/4^UUEk!UDwPq>qe~E9Ifv+bϊ>`裔~DuQ\. CI++.͝.<5m^f۩!*WF/2q";zjc)41߃'_]qfW_.ܖ2Ϻ'nii[=(dF%YGj F8JT޳7RqԚW>O=`HeQn5qhY۵M8d#dqOT|#O6Ⱥ:}!C9]y7fu[Qcw~jFJFAy6#=+4pyÚ`!aVգ!R_1^#_?xjzh 'ZZZTu]UmVRVhλ(;c7h֭$UR72P2qH y]& 'S9\3s?="+NpFfW;cջn^/")d`o _Ѱ JxCDUކ>9_.PUkF41by`)x+&hzEؿ|+ՄTR5mz޺IwVkF۰8|0i*dJIͲS6{ck2Gݮ^[\=jtirw+7l0QݮDYD1n[*6r6<s'h{lµç i>(wJ)D5⦲2i c Έ==3r'#yf&$ IDAT-{yt3[]9:>|&{wJոksg躓e(WsHWZ@뜃7%ľ'[ksi?IpJ{3Oc79V({AEX Ȑ{j59|fSvAɵ/%d@͍G OPŸ&xx>[nMp8!BZ9q'뉯aPbns G# I@t.qLzXa-]ɓ'9F"zt@G ý,]bI.;SP&WtޟeM3yi{GeN w2.s#;tXH4e`18P'2]:AYjf^aS<00xcΣA,)b987FBЋWHƊY:JATNd[2PDӔh_8!ԏhvOdbrYw(ܗ_+%^M+zf3lP9 13S,7=?kzKݡRmd>Onv-=xvFL|yy]_ehnqz9*\\Dxs.@D5]U"d|[/<5g"{1HOҭ5դAó] @vi$H˞gcN5?Ӻm^/}࢔Y7&iPb7(-dMpꕡUQV%5)' T-̴Y +;rC*]Lv E!xRvtF3=lH}{]\L}sZiPâ }\H@+S-taTNNzS;F Sn MeFAUnDp0e3a5Vx7υ6'| ɋMW1])̻#SRGJfDE蟝c3EڹHWkF9ƛMnW6 hԓ$hatc3qfK~sslo7˙밙$xt&E*|h7#)ܼkqC$>mU=8O hrY[6m Ͱ io"O財sIDV-B$![-{8(5T{球_ODjb$Z)t\_] rAD =sIiBDlhEnDc6ݔg@C| hVЊNW-LGCQ$.y޼JXm5"EluTj*}iPM1=ofhia2zkmIU EYem$yEkXt\[ە  qM/'쳟62FdFkh+tqh:Èu>Mx:@Ƞ~b*ן"}}Z"Irzv& p kyE ^zfszr*k0:|d{us#3O IZ(l.HM`DAjl-b,28}nP9~_!MG*@e;Cb N#4Po\g 4r"ohܗ%/Fl")b'd}pR? aE3z18v 4"ոT$jhAr46E !}LVj..3 n)u1˔.(\|*ՂfdX^Az.//^O1E!05K4^|3 7PPjϗ QM *TqNVžG3isٮ.>&3b$n1HQQ"9vTtVXYb}W4 2W)g#ůQ<PdѻLAP W䔿toYf3=֋ Om/dP{bWR>3suYڎ:톌<FݙSExA˦se6k}њAʆѥ]}\]VSl@_m-]M:dv5nn0bx^~8 }\ZPw]t_C Ms擰G!vZp޽W@L^Ȱͳݔ&JQ>s۷t_Q #p`pɛ&s9'iym%4E䌋B-z/Io?>ߺo-E@D=S+F79]lϪDlWӒ%mMeFNsKtV/24,):7? ,~godm9)fVbaB'MiUUl-_,SCϴPwE9C9,;CoXqf6+컛qxWSkհ ͡~PRL*rQO Ed'"+oyln7r~~62x=w*X zJ,\rڦX5 $89o^bxx>.n]B7RE% 6av4_"Ȍ"jBUs#,kp5Zt@A'BW.hq4`'`\(L3Ar;KY4,wQDOZ v$FAt$5]Wbd{& + \Ŷ& R6Dz$7^^||S9D҄k ƣdty!"Qp0R)E0! >_F%8>H*=>#xRO48[l N_P-5*'G9oۢeN{=Ao'zϟL&8;/S63lPqtdzPzt@{o_^+6*(,t%cYxjQn床Syl"Rd;qkf&|oF'uILP(w>y.s[k:׮U*|,RC"6zEu|oLp/^_c0Id*p{xclndf7~l=}iNQloR;˛܍'Ϧ7󳧒m7q|x"mjHfq!_4lHpL̎hq>eW*xr22xޙ }0&3^f|w#FOjNϢdlIh4o4QV@FTTz] T^ubїgxíƛx'^iSʷ>F_ rF+ݔMCk9[C[l2g yoFDPLJs6_ YiYM;z&2DՆLuvPqm^lR K A=Z M \\I6B!P٬.d5=&Q, iVW7Ȇ!h ah(UkҺS@fm"2Jȏ}Jll*;M:2ꋚ8؏訐-E|(k;]G)(^`E4w Mq9r6 mjטߜm1KܑvZד)s1jvIg1jxhHK$_({R'(F[T*nl4xUz'@ c4Ft_x$,Qhѧ@D Sۍcmk l`x :OޮZC^^˯1^cKݽWh_/ eQk|Gh7;8 X[#BE˚}wu}l&  H6 Zi$ a=Yܓ= R:77M}nONfrgڝT5)ƕ $HkqD3fL=v>f5SVws߉)nn&UT[=\^|~{ܯ׽5p;5&[_Ю4W1/;X+yVLϧ#ō#NǤߑ%s|xx&#>/yzjjX˯{64q 76 T`5n*T joTE'l GAdqE,VkEUh^O'O½jmإ+ j1vgh2 !/urj5]^]^7/&ISә^NZ$+.BoxwyK%5ҕƺfVYT$f=Tγ]X;ed kRI3-g1i~pYY[,Mwz}ey] 3GbilxATxW2װ6zwC``E˘ ak~w(i<{0qbӢOr˝WTkϒ,q53("qmC ]p5X,b*r4CvlJfѕV . ZVkgejQ3ds Z9n`Bp# ̴ݠFFUqcoz`4PV3[smL PNh?ӆjhBw  D.Pբ l94q%5MJ5/rԮN3*ҽLBJ}hfcq_L9Oni 4'&ٷDELv͚2=-(/  R,E.pugxkkW&=d<뭘T[e͓YY]斆:r&y䖦DzdC)rZ#Y*KlKl8}F_nZyed 0'Mg}y sEʭ\b)F7/.bl3T(4{xiI2&RgF4Ό WЎH&@f&Q%5js7 }Q B܍bD@ޘtN@~HɵRV˽B⨪h? fǯd ꪼ>5Daz1D 嚶 nE4fF凘32 j*YCdkEݩs?w =~W<MqxtA%wDxopzz.5\]TFRDT aߕƃT^-hI+zl]C;ɩLg8?餃a)Wq-u%U?};ZOtքc.xC UEuӼӪV܇}9Gti]60g1WX2xdqgZp,t{Bͯ?A^vO?ƣZцԪ_фP>Cf}z3\_l|9 Fd8Oc #K]?tMS`!71vZUP+apq|#b105)=?6Kq{{)~3\\}_> ˵UwDG"h# a0L0pK\}z5F-wUhuv8 k Ӵw>!Ο|ޙ0 nN}7#N1\ [P$]-iʌ 4ON6&v4k4R)ARR/6kY e1J\ А٤?~d$F\~ p{=P 紴ڭ=Ԫ 69#+RLE0*BefĸoEe'Gg7hpA'OL:Wi =C4V;0B!j)X4/r7y]ɋcWujT+iu\>{EwN5Kwd k\.q;5e_yq?x^ierMṶyH"_-Zn}\W9ou22?^?cP[;teJe 6ppCL>B/?q8ŞwUp/G E]SFx9SJ3N*&კ~HVԙ#ٟ.NN+4I JZpu̾Fo5 k*UtnygY昄֭t;'ogd.KBK؁NޯoO jR8,rP<2Ifn*Sļ)+Vl\8CA9Y4$r8*(QT6w6x@lܷJ~Iûa?w?HlyX$)&kWϱwx`,w7IO%RdL݉۬D)q97t456J:UCO@tw,x)O2A46mx9(+Hpx5>Z+ͣ 'pyX_^_Vz%I'爪MA'Ǹ:4?OԨ}^SiIvnxҴ"Ѩr xUd.90JU>Vmi9[]TkmT6Ezx;:C޽SAY Ζs4:i?DՒu[9Fáy=:{fOtvnZ%:ݞҹ,R;GE<A`XK:յ8r]1s\*gQVI_:%J oFQlh i~o=t9&ӕ1Hh|SL+vWA2śl<ǧÃ' WK-ÚmHB[m %sfe,-mS+ ?7uR?F(_%V|yd+7Q!utḱEK7Jjha]Jn9yVCS6BCveSܾl0B/PLcd:@%e^e"̓d7ѷ(?(=U.gr"mӁnDBJCZbث3ʬgĩRKllhJ o4Fm+ÝI:tUPumpI-mV0d5nJmsn*f>4Q*]=o-o-4y|֨ѢI=Cwu/Ch k|,֍R*,4DU\G޼0z tǭMcEqjZR ,o[$a6c W";]*2lJc.?OXz5_hAXg7$ K )uּ. XR4 X/( iK-CmWk}-I&^`}M5P'~zW[iRX@dFd .^Wk!>{$TrGm3x ^$ո#&hWOoSNcB PhtjJjRbŅhI!H}| C(Z3`ȝ[^HB Fש<{ "{4 >pf -8N-V1]\ 1:6nozƳv>.gwxv,nm"[0>/";v ?>4KC ƨVMom %y xt;G.PSRTYUOh1ybz'$?*py#0#IpzG888??|}{r_a|"4]j_NdpPW)_+L4MYDZ%%UAטC5^u $9>Z9jTRiHشPTVXLvZ\`cSZ;D j㸃 ֛Fj6NĤ׮B褭z! +ܿ@/ 6A`t{0 Խn_ *N`\zHKKʃ*`||%Zޙ A|c^# |A%)!LٴCgD19> 'Bmb`H:Y &VUQ52Y| ㅨ#_R=ՠ|j-sMIS>E0u@4w6]ړs"=i \LQXщm&hl!1_l PΓ$Miy(ZldSy7&y?Cb/OlN-$>'Jq{Vu)}fV/q#+\Ȍ^ߴ0 Ɠ_jbog9'^ ⪥]Z>4ΞNdYS}famA1@ێn,P̐TlD n ( $3P-PEGu|X_9eWJUV"%.Hlr r4S\Iui}K)9LE f(xkR/o jBo25vޟk s:d,d^4yuC<&=:567Vx9ٽF=w?\X^ќ]t{A.ѻșLLJj]/xiź/uH箑"0OPgom6X4,l7jD#oԺGioV4XmyIvWG wa3OR騿(*f2qv1wׁ2J-ST9HXlQ#2&JZ1 oS| ^CwpGh.-^QG\xݍK/,O?K c>_VhThidv߄s ͎zx1L2)NH]gcY/5Tz8MШ6*VjB:uGlffz5 D+wE)<PQsXd5OD aP|: :c A@p(cOwPEwT@ <jJDc3L!<+PT"l#)pMkՓ8lⷉd si%J3Wڇh7ڸݍT ^+`tlfJ֕oHg2~ݛ@(ߤ==ϟc>G^ l! 'AUHf=%w:dJ+M l`Ѩ &Ci'pxKOI *ZXjꂞ+L$ qt>?"z=AJw<ˋ hVGO}\\(?ǛHv+r{5bCɡŧ|*rCrxw#LJRАvY7r8F[6)\m̔ee& _'''U>5f iYȔ7wCTl$0})y!?`~%odͬqGTd$ZҐ[.xU+(LЪq%Rc ]NSvCYgVEiQGO0{Ou1NC@{7j1kws}S܍8Ltj8>~"{C^Ec!_dhIy)5f6:ؐ`UWN.Yi BC,,ŋL{En() †JŜ.TRK0MVn["8ؔ{10o!n88ܗ Y#~0А {u.dpx$fpҰZTƒ{tz8{B2\\]Y85RIsF߅46V1}w $)0=,VCRs"Ҿ_(ZVEq^6}E]8I*BXs{EZdN4;59qh# h`ZiQ,%};$<'kp:N=Xd9煎ez65C%&^ sAe=\kVZj@Cw%* 9XSߛZ ,oxpu5[Ƽ;ozgۍ Qdl֦3Ÿ `E3)+LȠU T؀w t%*vr]Krn,ߙKQbYΜsq.c'\yf-LCZt |}kWG9MӑPrJ" Q%,-'ŴF0*@XE¶W.4:gt`F`Q:ԭV:tPLO q׽6_q ʱx *)ęn=tq臨s)4w?&;ŘoVxxxO i`1"kA9SoHdt YG6[\5Iacө؄gh!*Bppp˛+u$Dk!Z%%#\\\ɔ4ij/f&ϕ''O)Q,i¦օk-4GjrHu<|s# LޗqΈ+Cε<MT ( ,mܻNޑ TXf`=#m0Ԫg2c!RjLvI\͓Q1I "^ib)H %Ntg`9;ymi"=jqWJ`\tXkxi66 E˲}9e [*<>Q]h & ΕSَ6 /u:;t+O{EwM+k%3fr69Kp"&ę0V_߁'g06i3]8/ct0BXK.?3-s:+ i^6U14 æI*YJ5GAE]\zt蓾EgF9Q;ph}i[?!7L}ՕYic$5\>2pԭ()mݪѽߚ؊Hp-)~`"w}[?/ń0o\1O&i1 W$+aE" ",fW2DᑠˇѨa1_a/l2\ڣc>opy6G|GGy -q;8H`< +ƹ&bFĿDєžħO`2 ݔ4L&MaL%*$I2֊1}Dĥ#5̕ ,Әk.+ZmƩE,D ż|j@faq>p$&V Ց?a-^buD=ܻ/tFsɅ8:y a-&zulghThhljG ujmy^n/_cXsA3Vdө\*eVօ ݨ`1c-L$AXiF7Ҁg\X2qT FE[fG6hfZnzE.6ۅ:J\ArJ*O}&O"56S="Q*wRD՚ e(%I*M^Ri gPH c(A+M66sehQBu Z#4i抚@ ^M_ s.zԳs`)2X=/+d~Qg;MIklKӡ3D\Və^/~ Wdž=8r ,cL!kD3,W,~7v;iɳiuŦ}/\cdTSfb fc9{HCj="X iZGa~>/N _}◻߼2ٹK(ѱg|4 $rpm}I$oх˕l${ے2vŶ/Ӆo./E{:>R("M/CO0nx>7i'5ܘ2Edf3ՐFtJsZ#PDb[sT͓|?8 lS3rټBiT<AAd΋:YÜN ԥFaQT3"]CYWt b6|t*^\^ο]m5R8+ZfZ.jk裪&= #,nbJ4rx7DJ%& f!j{NtZ 념FIsFmU(UMJpsqj);N`4[=;9$P >G~ h*͏hFM)uUtf^ pf"ANN7zh:2G"r_gOB${H3gBs†K˗X]m64)4k yKL.tI|#N4!R9_ $j yb?B=<<z"Ӣ?אI=7[#hwC .z pN%/R,pC9'Xh6_l ^2E Coh7O EHNb7K:Fwjd({9ʀF-2m.zV38BElu92X!mH(PE= ˍ6 }n]1-n' tqs1MFz2ԦKǩu T=(>z(xTtM1jXF9J+4-zN[^)} xfG?F)7G({JO"P`HW@+Z&mt&Ɖ u}lkNojsV4;}l:s0k\=GqUgͷ, pَ!2P?{~s mZAk{UK$C?? DsHS)ܐbjik f8l*bDTHV¹2b!xw-5*JR>h@޹ 6kffk`M%4$*Ej µ%Vj  &V8ݣc7?1f~% c[xr~__^5&͛ 1jXF:lL+l>b6ѹT`/q%Q!←BhT#|*IJިe&rҔqZgQM2#sς\vwOLLӮH$8>=?>HKrh1pqD3E#*lzΦ.؍0GT1qMϩ<Łַ6De{h0C R:zY!p(lB=U L*_2Ngu!g&KJ2 b^rP6f"=Vû:MJM(͡126oeV+5n@MEX)21,Qhp %S Zb$MnOrJZKh?tfh-o)BIΧ,#PJNNag ;dzk,"{8?VGFVek]x^LJ'Oވw=kƔ7Ͽ|>`x-V78;;p8!i˥w>=9}^sl( J6l~>gëׯu=??CTx}nI5]pOCy ސ<@T_|}v:Z9^<&͋ݤ^tPf0VM)[ x:C6u4I>Dg_|W{ޞPjW~_:^`Yf0?!Ϟ:F1c:?x7p)TFp4EQot;GǏ{MݬLH%"կUaCsO w/ݬG{=d DXרP*:=*Cb-LP\{Ȟg,6)MhBBs$Sj٫÷IZg.pOSAyv~ȎFCAzlgR l)o~n"f [r]e[D9!E4&|Ի3E ()\km__O;+%S1,sU`GZδ9O4M\N"7=wP`yVxm4J(T5 nÙT"E |k8B+jN;5LCv4?PƁ0) hgij*Iu(p\Ӽ͕ۜ.ecPԗ3}U;EO#k*٬D!Lz"w,伈3rD pw Bzͅ˧"ӱ1<[%o}e;Mv;Ei6qطJw5wt^lB"s1,c֤S#2-Чze;Gl^i=rp}vWf9k*EP|( 7oYgIM _[~, {n^)ؼ?+5,s)йfٔ׬1bXu\)fi]qkKߙ99MzvXK4wN۝ Au9KNRVV]tcr#BA$?*ғ:m2? -(<]z2 Z> Ñаd3g).V C $W"R|).pS^^I ۦ>s67.ANpP)KOz%WZKA64YbA#4kh s.ݬ0c&|E0;t^E@V92jx3mc|q̳ZU݃\PZtÌhNN}h+5,@:F|1WqMp[UM9alMKR&#\A090]jt"+ &5^Iwf<\o|mnbВN4qH)Ԥ@7Բu'2_ ˭7tL ["kڦ`(ZWj.׫%N[斯Gʟљ 8l1AHhPIx--t} ٮES*2,4LŽމ\[FP Q?h yrnzWK{76艪-hl7#L6pp^>/x7_K/ Yݠf2i% 7h7s7Igfnϟ}|/H0ziu&N͞.Z(V Cc7܃VvvXLU(ϗf ܽsAI/T3* )ԦvZg?h8nG薞8GyS͟{hMU@7"u-ժ2mpVg9&,3l1c43+ dH,vUX=<=6/9_=; j<KEƲ6(%9 L 2ZQK Gk+)UauMYטqt$uv'f2&jc?o=8wsL^ʙR5 es|4RF"ԩQ{!%\IMBm>nN"{>)82}k5_smiHVxާe-;؇Kro Q(^k׌*^}t]߻N_Tkb 641N^o=se{2]kÀ=)XBL3 WYE9aaxT;Zb#oS'(H8")l>GҍK(9 D+f bauݤ:^#XӎP, ,<{w/V#di8d nQB'sE GvOn;;:w.O|IW_ow0T@d>LjZr>P3w7p1;Ylן-5kfdpLnB80)D~ݪ6 :;S{,ydA651ʥŴ0fHZ.fz>&cȜ'2Ἀ0Y$oBI۷fN&H4r-.*([w>:ŋ4J'r*Vve)b<|n"xz>W ikC}$3+҄Yt JG3~ IDAT`jZ7E/{3W_H:~} c!e {ήquu3S=?X(gPo~ ř˙ݿ-9ާsCKwpx/sCLΕǛt: ]PߜblH'ODSzqnr/mtwt=9Np/S$t%-t= c5|QVBa1-ZOh4%-ьfϘgޡ|c.Z蠟G{ã{OuX/q~v>[AV/zYϝ PWTM=.x^> D-b#dY ./nXdҾ\kv:=!Z KRCC1Q=lw*Nok;hQ0-tyKb9,gg>mÇl`YE"7F°3Mr>3 1ʝ|#Qo[aͳMi뼑pA>Cr>qLtϢ4#j^)INPTvތqnጨ&&֛R|kƘd]143: `yCfniK^Nb,qX,t5RzoBJY7cZ50.)rGφ1`q2yQEڨ~B|Pi(hZ oDXcb!4֢JШatʪx_>8)y+-< X@-P_ׯ:2)M:HՃW *Gai|5n>V%k j𢌱Pe]9/ aj+3}.R'aSz~I_CZɕ{6 VD+$/!UvM1 ܙE=2+\H}biܼDWcxVEVUj%pDYsk[ˬ`+Fm Ged&6>LRoZ /2IJ 秧Bh^|DĦ+alL M<Ã8 /89L/۷189XNvpy+  nji/ Uַ#+mg\P6n[[۸ _|mPVFzkJСt$ڙgEMIc$ÁFDcbFLY0"rd~LV:56qw^ q|Xӌ %HK-7bFF^, %c$bjZiΊ^;MxeJTXzJti|nZsf3?XAL9 0 d,ݡ082/f`<_ i6I<8 vH𹌍lgSa4X(q㳚X~.]6ܥ4GmF*ѨbCLtwu 6m-%K0ҥ ߳9RjO-ײ~6cF̫-܏hڴy&Vm|4kxt&c]~tppxE֐o"tg>|ftf?D(9ݹ#cxDh} '|_Et6QΦ{=9;;8C\Q9P;BDn:mxa{wOհ|Bз]~sdoI$5l92P_Gޜ^h_zh&+̦fHZnh^W#MV3\ dFiѧ%61ϖ1 1L}tl2W*x[ܾ{O=EPaHu,ph"f\G^&=5MgDK#UWui(/ '#!,N/-^av'^M,MRrs->#:1),8HJ+~.e_:$PsөYpUIoK1s31$24,QLg Z:zB$_Yai] HD [kƹ͗sLf ׈+t(5%34xeU$vII lR:ƨbpP 389-eBZ;h4 ).JMQ+_hengǕ>5~S{,Rʸ)9 wpl{@ۗIt 8rך\Wr04Jn*U+3|Pi7|Y9yԪL tk:6_3l{0՜".W+l؁OyDFLet\|m,smWF.Js=9R8ž +*Fm Oő %8eNm:sR"L)d3H{1$h[p?EuN,ִɶ:hcy$qzrha1$wft%JjAs3]x?H"dZ%CZM<95&DX!ۤ籹 O~YCz||IaU,, ;✹nِTs%5Q'Ҷ@ + \#&Vj it)6tHvd2P^ul{I=;{;BwY\N"e,[bwcK:ԁ+ gfVԥ#-ySྐྵݱa 6'%ƓfBkERy99<|V{ގ]cQb-= ozVg 4-\_a1Ff(ĜpFVEOqqb]%"iv;}9,C ON,fŲ0\)DE'?sd)Z1\/psy>6f"d򜮿#$gSi ˅1$hvon0eh)2FGg˫ Rec;;J43VuN~I'CU$9yNZ|s^tadR;p/&nrIvf8T%}(,K@d*Uu>j?>'ŽXeal,HeVepbxy~`!Z.Rn¼sd?fJh`OybME.M8%2m1,G2W1/Q㚻F՛DrǽM[nWuQ:,ܔ!]y<БÎ]|OnXHdafUriYWn0J.Zԃ!”! ONBNj}9_`<VZ5 $OTE):J׉XDM骺i->(M%=dMWl9V%SsβbtmMvƂTZcq67E{"b0Jd8cQ?t6Z=ѩ;T4΁BzFZM#EOh57}<LL )1q:>gcsgS qTx3ˉ]}>5Ćӳ3l_~6V}px??{$˗x1ƣn/~RE%跷O->ƦثqC7oe6W_ZQ5 L.n B\KwNCBfhp|瑆gBC2Žt^b6wE' f::-ܺ@h4@ [NԜվbkUi@d"!N2C<MQ0/ /@+޾뛑=\]_k?ܽ{[9ҍ~[mA?"`Z\KؼY cZ7MQ@dHM 23SI`\ѾLWcccC !i+ 4XŊ㐣Gm׺B }Fij`wD9n);UMI@V G0[s*fٿƐrt5߿:l kܳoyhA\S7{9ȵ:5] YF8 ڮ׌\/;5)פiudSpY_GU-83 zjvg29Tf0C5fb;րݷđZT=wtqIԺڲi? Nq6k(p f=$>v/4E>ZN0 _a= .sw5Na ( QWä[}A{ I'q c9ǡ7d#p +uWGZ(?uփ?cӨt\Զ+2g㣈2 Eߚ^dZs&|H; 3v-n'Iptj7gG?W@c 9)ۯחXK*/3\]-h]`P |>¯^e&ϜՔSI4NTq,'vRN3 vٴ2 1cdz䢕ߡΎFJR*8c']}S? dU$2I'?s /retc`bB'ӌUnx=T$&.qG6,BIqTMupFlfA}iB=4bj:]1Qܑqp k^=|R7`QWl^~9YSדpݏzA)MG.~s%9M-^;]ltzXܲLFs4;*d=mkFPdHi@a>I]܌Ҥ?|1}5p\ǟf<ǽOXqzq|0]h7jvw10VEU66CDg۬X!mX14HzñF߾Oc5/G׿ <~O"EEə2Vyݟ? u=4芖ͿuVu2FErm\(OhXήF=,f3LG(d21ж\9Nݍ-lmzn{EFܴۋr%m꣥WXNo$FFhlxy_ iј/y6]W~tn."'X $nՠe -DJQ9+z_A#bNԻp댟03djGx!޿;k75Fۛ*N#h{Bs5"j9>vSvˎ\~_NsD,PВGPB{I\?^U\?0 =?5nTm o?6_l^ǿFҜu lqcQ}\G`z k5,фhNġq cƕ_ڜPX. }hTReMn%Da**ge V,[\;)JQ+P=3S~(V]{/0\55. ӊc:ʐkx?12zX5Ĝl\6,|mE(42QU^"*xq[)Ͱa)hb.z!S^b(;W>cg2D;űTƸ|>V&3LpëX΁q3i6_N4[X^PF\"5X u+xm_JUb肆Me\Qӓ4@ ! "2 ٸl) ʀyN*Q^nϰh& /+m-c:@q/"vOCx`Y`GX@Al]\< IDAT."RիGDq-0kwO=wfⓓ><.D_X,f0MVS>B"k١ su{ZCH{%)>\S9 ?~=ӟȑ8nDZߝD^-2Gzyh#2GLq,}hLGk _X\Kkqӈ]denoKdPA13b|1H.9T[-FM`NJp- ^-gX-gXRvPƑd܌EPjp !f7nz/_Dtf3z=R07vpƃ3_b`idE 1eX|֏E7{..FK/jV5ǹy Vn4(Yl6֟FTBk%s!E kkzې>$%:;Ph?e\:p!5#%(6,ϓs(w0_FxcJgFg5j_Yz>zSGLfӑOj xkª*5r#5m+PAz*nI0e 23ht!(ѥt3քR&0T (DVڗf< fP潁I6Dk^KjЌ(Ǯ+ۮ:z9:EԕxȘ/"QG22 !vFQ1h^+.QʵFפϢ‹XOe-7DTYkʮc0*5'&@ *mz鴋[n<MGY:΃VMzf Q{0\tlx3-Eßc=cTX?;jKafl/6~acD,JZ:-6pT%S C@&59g0k\S7O*k%: DK_@{ bp_|Rb^ӁD#]ɹ!lѨ$T4g&l;ཛԽ;S: ly͆4߼{il >aC=,g3ӓLk;'r^-n6e\mW(^~tOs(_ѥPݝ- gʜ Oe([iF^!,0_ C$i)DO;@Px''8>:V`2@p.˅$jUNuuy-U"ya>aw_ 7KbXeu6nYϽ)3);Y⴩HA=}=G7,VlφxwR*>>vw8m./hrCht2pbSJ-Xq-_^\Z}zv&IĝL45I7c~BN6\4 *v6A{CĎ~[Haq)K`lQ`>pyv)9\vSp.jiNd~nP QP9dFzNNۈӎ ۺh{~k{ Frevt24l}46O8^Y ѩeIurF&bR#)Ҵh]9!fN{K[VNG6Z/`UzIp],4Ol”rݐ{{,םoB:56j7bN5&`Ghj8dž42nJ'q̮@]Chdlm>%vـ ߣƱgmpV[Fke%! [% 4fgkM\Y=31Ӱu2a`1xTe~}S=Nl@ibpV'?yu]YT6LPZ_kS4vDQ#~.eVV:hsΝ_Vao:ܹ[ Aw I݊ a}438+&%hH~P8&!16)G0l?"_l^kLŦUILښµxn$@μq] GdY2^S׭;I0::ye-j#[BW3Ұg<a9nR.䲬EB>mJ8L ql'¼W|MNGTJ[-fRN 2 uo%MvaID9S7 C\s4*3%0r399 Fv3Ė)lYT)7sWAo$mgB0KlmnKqB y _[O/oWK ;4x.n.)S~MLn4* |⚸N4Lj]l5iut IGnD) Oz ه8\Y stzbɓD`bȰe::i͟"&43şOxpohM_^iS#TCԷz[s|}w7qmˀ)|D1[ΐG܏Up=}:8>8`$|`U,-F 5L:Hۛ2ab|~!:K0#nE4g^M8ܿ%c<)TgDk:ٻcz;WX03gmHxIsؐ2BAlmg ƣ!S5WW2Qz ޼yP 7Ij_6Zm,޿x2Ùؠ='鷢޹{WEQ*QD=|fvFS@y9[M 5>FUu4 nmoVq!|noho`1ʆfK>!lTy  rod8ԳBB5qԧz֐#ql{.%GWs (ݐ?E7sY:goi myAyVF4uYa%Kcehk lc{w * UjTSzNta׆I5ߠMLhk3Ƶ&R{_FjG@EerWu![(vE,+ +vn\Doydk9sc8N7٨U*Clbԡ!jlU7N!b̀k?o"]KZ hU3[!VμM˺K 2Zn 8F {yvtnhl+ϛtx-uZZ4NhD T$Kfrrk(PRdMq}m#:  ?o~& FtF4Uad,diyэ2lKz]Z; )F4lK;1 U68"*ČBb5#71_/TkҡXHrZX\=IugNJnБ7VXF!F;=w٬t~HՑO!E.I/_RFЊf4dtYtg,*Bڰt4Y괨C\ aʝkejEXnFB\S_&-|F7wWfKf+ܹu EG\ 7: ! B>>B0|łk uRHRcv߾ƒߕ Xq=Je3G:=&C7`)ujO@Vg4Yf4j_bL/fãs4&DQ_n,)-ltLt^-m %OӖq8Vč9\ziH4:98q.m/ Gryw!Rc7x}=ЁsUDb"?e㡙;ogR&8^QmMx'~nOHfWyKpt 97Ԝ cb[0,HrcdUj ?:{ŬR hI HUHC h}JmQh KTcgu-Q9ބ6$@gZJήk TZhLJ+B.gW.!ϕ~Xwo ݇uEYS,\>I* v]CCE&)_mXl4i( )˂^I׮Ʒ2 9y4DDpz!%6ȢZhٞCҍM;}UMB?Ԃ2}yk5=Ӵ, z:5̘d.\˽v=BceMS5S1׾8Wۇ+Gee5~lAsb4ḤL (yj>2MYtZYOI,2_j Ms5TFok Me/ʐzH  g35Gϒ9Y$Zxdr 1-N^LXB'}Jf.`=y7QbF i6RR͈>OYP1WtPgJ-7犫hwV4C9YNnc>Tt6oaxsbNsmx,fKbEl J ltw&Ux2?]\g3R[jvGΐD};?ISGým<]QGjnZ"N5L).ט.8??|>D-1 ܵ kB3"إӫx>O>>?+-jsnahǢ'cDe"eClkM~{ᑇi2tY)Z̫7o#Wjzm,9VgLW2l#ÁNw i*mOWh62!\ӠɊ:(bnp(2N抰N";9T"сYl i !TriQu2Z:-#t _LKуiw9z gC?b+JĚnGkT椡+yn95I[;9kd* Qwl-I똤\En̤x"3#9K&9UՕ'BE•ѬUtjFDiPɌveװ[Vl:){S̟e4I 2F(S:5d̖DsO|?+)4rYZPGrQF1 5ÞQrndS9Q#μ{|ـ3pKwqCʚq8#* 6cEeн[Vd?3~ 5}pmWutŨXUe?{\>7!ݾӢF5[7}7Qp.fۚN3P0Y72v^R 3 ^{6z#F_s4uPY&ZnQ'p`yXKUZrlz£mvNӰ |-zI =XjR:XEL?}}g"*?l<5q໬DT40jjxl "ey[fkb9r;(:tNhVe=SH  KwVg#ݐ.) 3:cyedQM:J#lh"Y6`ihlj6ܑt6{ K#OPX`Tϒ.V4w;su:^$TSsGMŔ9L!i\{D x?,_/QZ$X*3bTQ 7" 9E4K^_e)8FV Ns{g/''BpݹWg3D7j8cwNh7(y6B+ZJ E}zwzl{../t`??6>{f/;E+loou@d'0ӨfKo'?ֺhB&[89;fV7HM_\mYJ iEi^4~;CltfjtC IDATy"7\ 3FwkllZ\ Eۻ{M(l V\״Yq}M*6zDM瞴aU̯{/&fK2c.N_Wb;+5UbUQf53'BIOYiN}\igWͨ~qZ]יUȯM)AĚiF\<+"㍦bOQ'MJs?ϵF U'.)Ō=G42rnˈN޾LQ۷jj1&rui!o.ݡLjACC@ez M.`%ݐyC0*k7!hݐ k`ʭc͔ M E^oׇ&aXP|s 2*='_'8kޘzm௧|aQaPp1r^2DŞ?7w)@mQz]SIgk³}Rg?!sks}6Y7?ϲ:+jUU!+*&j\zQП|4X~vz i. +#GrIex No^g5W ~NKFOY=ޣF{Whl1J$tqngk'Ɲ lh'm4sW tb$Rvn~]Dq%:]`wc_cAHo?nh5RN6 bLEL9N|gX[ 4-0Ud%އ)V~q|xKכӓ|7>ݻ+mՕr4z,2961g>tڊܐ#^^s6;2q}l$ ?ppt"cf͔.cDqd`FzZ˅D!ѱBr5I^d1? 4e0HnjÆL/|M-҄e'ʜZH\iٽMGdp{JHZDffTX=\]/tVȬKFQd1LZsg?Gן^ Ơ!S}\Y5VYyLnl3js&Yf^ _ވi#vr%Zga 8r!kz}ZoeV7}\;QeF5r,R-nBsYxs~;e,D#U Q"}e}Zstёt?+H23g@=FЖ*rnhZ p4  PaLJ'Rsg&v Ynx}'J*yp,h6tqzwC )֍n \7OSNN(wְ?[D6@ZY]Q>68 zBR9PXQ:y 'gJ)5=-C6nLu>IpF5(grO (Q;aZ$Gq1Yz&LiL¼s$WR6'"->"ҽFF?A[ %֠ +7yR`@wyla̓|YbaHs"Z]bF6Z"\BONC Kn)[B`飁O+im*oSE@Ld с!077`Zg)^DZ墠L-PkEkD-Usk/s-4 5_(Ee-mDʆT6DdQE?WBb ^\&nrȮGqJsj K!D>Wy^ђDV>N*ZTj4XTSfByW/ g+|G-1'i2vU,qtmtXS '27Z;6h=ܹ=\ʤ|q\ucnft{;zﰚ=Mb,͗vhUrUH9@yJj"b-ts?臈󈨾|:VVXWz&ҍ$vebD9#՗ cG܅SϨ[h4XOp3Q˕4񤸦e 0)w\Ty_dKOdtEz31w Fe1O:5%#.DiF|anN:S71yS, t<[ssBTg3fm1* mcb1fM>I| A3W?@Zp\Ǘ;xSlLr&^2rEZo(ʪ7CMeVLIUEkz uHO5wײՋYU=MT9U5~QQ@m(ͫ!1~ǹDXQ񆡬8Grlda(ro͌P}ڹ3gQw CBrZyh:k la8kv NCt \ 8 VYw'"Ś [S~o)1xb{ng hFk{iz~vSԦ@3f@S5u-󶴇BԤɔ&c\VG(;m47((h63#;B"ds' EɕcN~MXZ_RW-SXz~CsԲnt6&V0DS{Uw)K֢@nWdP`s&iuXqDۢ6˼4˒N@  ݭO'KQ[3h1_ruvi6Etttgh0g>uŧv̋b6J+"sS?PZ9ݛ-"ns 7d 1`D'd1Y-ק'~V ?gT9d&/ctu3i|;'DyÝc[:xuBF4tao9V \M6zƋ3A%svXk/LFW#audztRe2iK36n?g_kus>dx-3!QҕH|vz3g{/GR|޽;׳O/ղ23VLvC ; fUl̝R6y4'ЈV, w/0vv5~YsmH@&&~ejWi)HL*Js)obbU; f/ n`4%1di-%UH>ĶɀnM@>Iq5߆vp 掌@RWfQ:!z2Js+;q}i%k8d:>G,#bV|<ٙȥK_JSʼ*b-̭\XMu )2(҇Agk%h*M^iEw6.k$*5\Wp}$԰? %`IZkyLR b]иXV0t=k& Q+l>}bR0jW%Q-m).D~#@+k+bDRL64Ź5U^f[[K˹0y4RSq,0t.טtRR%s%6ƙ9aH%YqiOc6 4ƎUBV0z&~)2b}pô Etp3B~ـx&sxΆ,s`t5)W4QDY聶IeTmNZCWx tE%^o>]ay:6[(3|{xpO.m7j,/ zō7a9 O7[8.Ȅy3` ώqyuaoM9~>jnr򰅭kwYKt2t6JrM^%ka48joȦ8>lF1h3"u$6YKyd~_Jh2N4ܹ}.v;"e:==AWU(TV'|p5ӓcquڝ4 [konn`q\ESh}ʮ m:͖Pvܾ# |-lo]ms .\ɤО9xc\rE!|:Oul6Nћa2@#c@3v>NN-`4Bù`x,iltudn.i*;FZD />v;M[Bf':-%\1CN幢8^+1Z͓OSk4>j\p4=QSUF|ƣREԂRo8tAFˡꪠ4bf1+5A<^NqCclO\.uHO?.{Ϟ?+2.҄1^fMGԛl~K'ΛN35nu)E:q);ujX܋UU<1Լ.y#,KUӦj#E&a(rAR2E4(ŲҼb쵤~|vm+54ځ stg2Db#5FIUn͉4Jbf$ 8p!|u}t!."e94ܥ5P1)e+շҊ ODE 05hBֹ@‚\Y9o(-KD՜4Vú416d 榨~ NgoܭGWkk_,b:!6&H+i0:&`z:a2bX%2!36~n54kyB- 5(ճj۬t`+5زAVuT6'lIzӖ d|(r_?\݂7Q>7~_$V!/ʸHQӗgk}+͘慟Rv_WB[Z^I*$iBQG}Q@icaafa6Δ!ldқ)›Ë)j.4z|݈4E:aY',ê%$JI&dYRKDRhDPSS,.P+uDoToeB4ԕ!/MԩJo$UOȚpS/Bpqah,EtJg!`>h5phޥ%i|ظkud&N//1%Cľ^$IݹZ6 2[u J=۲x\]R ũοOpy;ư$(&Xa:@;ܽWh?,YXB9#e$F{71φB޹oѿʱPOF9qu tp7qM\^\PiBKe+ ht mlnl{8::&~,:oPo\zKq&D i6ldTX?K1zM\yۻ88&, IDAT[mȵEKK(?^ Tk޽{ҰQ鶗,$\lyh;76DXssVH 9iHbRX`  zz{q->&6vpqٗ06ԥy=&oఀRk]ҐsWX&1Q@խTia\y߇l˺5NK/h.F4|N&150Jͤlqwi7nU_lDȱacyuJ izk.sUsXhR(qjFbZRA&9X qN qEyĭ4IKSOBMْ4a$Oqvz9"z+&T:@SB><&& E,j.AoiI`fZdsB\j`~gO^ZfelW";2F4j.8܆Yl*_4q-; tЊ`&IU5Sm ,+m$xکDEւ,S,QK#qp .%Z[[VC\\;i!9-|o'AZ< Il)_-QY{pj0*5ډ1u *qU5T0p f+%q1{x1_ Q3ň'X*lNاC$HyvBFaی.uא6VWf/Ąū}`^c:.@Eё4D^ 4IqHlDit% ?)?{hSo޹7`4ծ^#"{EprraC14.hkX_>|۷nQOqr+k.qt^?Zctv$XAAZu 精&ICi2Ä{+ǿ^<f9.G\:s[wnRu{g'$ [% QT"8k3U؈H_^Zd|%ߗiD `RGFPM[ ;D}#FoQM8pfd_ m_ aPSܿmM|+4;> 1if~Q\jne6M ꞋnejT^ٖEڰ&a#$̖P9oB;rz%"je ''gϑ.texFB^"f|F y"Cf.( m WceZ]iY`ժȐ.OL^D@)vHr2FH-U>hD)4<Q3Dۆ2ؚj-)c)̠ܨH!3B)BӚTl#V85oHx; *WH$37fQc#RIΜ7͎?[ #! ]0/<62 d7@^h> <"uTirKLh甯c=e%'4Dj4 ͺ5yT*ң/dh!"/Fxl;B|KDͨ7mhja!eQF=Xc` 0u7jD4)t;j!G&T& 2 ]au[*EJ;Or=a+0c{&&A?b )Hmpd&Џ xXEu cCjNw5s).b{7Zg%?<tK;RT m?ƉYqcw8fRLI.qi4ѮE- 9ֆfKQJ+& yƢ4;n')IX"Z>{D-Z&_cOM`Djc̄%MmiиzҌ2x`̔Ń7[T2)0/3 1i}Py YTDu\yA'}A8MecŭUDF-(Bƛs'`j]pd`; '!ɋ,4Z$FJЌ06RPr!uBi"EF#S)XD]mh FH7#}=|:/@kkx;g1/g>w[wkS<泩d'C +JV^SIJh^{YXn6]͏Ĝ34\B9=B+e4ON=TLbHϞ浱n%3go~@XJ#\;hVzBc087QYlr.-w#R!/kEoQT>~(Md?7t"_kkr=}?kw{6 ̦ Io?/[aiiMxx=l/#Lݥ- przoE+YCgy:dbўQt.Sl'gjQ4}.Щ˝PQ?tpgcV3AFW``ƌjY凉QF-`k{We)%Hw ׊ N~@)56G/T/_V_{Tq4+S4uEPyi)HNa]y^ ( &~oߔr?w6DS gp8RV 9Ω|b)/e3̟-#]S_ɢ6OMPplL]ze[: <杯}ʜXWDh9l"QWLܵ{|)ƓyDcJD:s/0вGѭaS=Ȫ :&RqEKh~YE!ilur,4= QUÞ$BiTcԡ$M:ua-h/c$Hz2n)"Iv5/k7ІGݩA4Pr{}haj 1R9veN\ֻ!z.H nL$ʃD9㘟(vpF KU?j2HF.D=ʨq]+u ό $<]`p-&W40>6Mw[!ΆCUSqc:45XeZY a 7cP=CuD&>k\ѓ5d0}0eQA}pin52%ҡ/@]0?(+j5(LX,P=x11dWy#g WyDkt;bF~o.Б_ 2-./4< 1;t#RIl @5c'B%<'f>$52N/1-sE{Ʉ`:^IPc°݁˱@96o\HlELBR5E6YG"u|?ϱNp$U;C$i4D@{0[|,K$A݌fCI!Jdqkkh%&We%C4Q+Yt/џƤrO48r>XM4m.FBh 6Hcze*lZWfyF=LltzL! Tp^ҖvgZB2Ky\=Dt^Y]C+X 4ѫz@є&bmm8rCfЪSP rpu/NY5]@=M<5?~&A**JX:nm_w޻}L,Oجa4NφO=c4pn"Fchg{_|TJ51R"MXؔk=L󺼌?~llhC::<ɱ4 kr=7V4rPd`Vd|nݮ[,ZZ/ Νr&K~zs#}1I'}1"vi}{7ߖa҃'+ ?K:(" 3.7pw.U6lܛ,\\\ڊoJ p= $i. \b\rq\AuI˗$Y*<؜o,}!h3ch623pt%[?_ dmig|s;dmcumC |8 " @m}cNGb֮a)#&"[F@zsՕ6-<_lj!XF˨<3tvpFkV+Ѭ˵uI0x,bHE8[}6_̞H3)JpM 14M.&,g/5t?[n?ÇS޿/!-jLĕRfU H SYJ!htZ %&Tkjsˎt@Y%JS c|G3Q&}h92yx5IZ<8x&W0G=mjQyBKĎy4iŏ)|IQׂ\g\Fr4i`YEg)Le!!st 4siߢ`P#҇ uշ&/uImyL#4jibC3yY FfCn4QAQ`g ^)\Yf+xEX|SyEv1IX|1J)}Oz?Յ"&Muڒa uҖu9?-l!?gN++[Css\]L@>=1tPu~v)9<ӒFiBnwֱw-ԛ]c#Գ9:7Eflj<È".͋e;:xJhnzڰ *9DcK~(1%4S/7QtœϵY}O<Ž7K>ƣĢlma{knɓ'rߓ)o J:&ZڔoŰǏnݼ#G]ڊ ׯD.1H"޺sVG-sG_ q41$Bwy3]sGz> 1:$c2d<sW!q)f#:݆qٞLs'JRMTPѼ@w'HiLA DTo3RSvM&H= j%B/Р zIpT|f?C2%۲|L2iT\PՍ8=z"QβSdqCZxn(1u5bkBz)ȩ␋WWmC0]~m)Ӯ2x+DD+jN~;uau_u9:yo:6f'/U1kߛsӕ2@׺ܮ׹d2 ^ lV d!4 b#4jCqqOT!".k@kԅn H%^`55BۀfNT 4SOb4j@$&iqh^ͩn2chL`S5qAjRFC mt.MJFDU@Id/C"SIhgOM (j8ʰՂV-V7;u YBc}gaF\$ 1iOm7LbӜ*}ڥӆOU.O/5P&>7ʺ\y343+sO%aP`X*CJWǤЩ1-3lfҜK.}} y>=\\Ɋ4$bOG-ojTm,B͒l1 e)%Zi( c J5U.DoTE4#/ձΥi⤴uO* ݌45PD&ͳ m &[ ShD_IԃG1e3\bVo`pT)Le:ie:ۭC3ԁpGseM TsoM-ECXbVٹC0vCF@9ht>4?-tJ'hL0BOp3GwOT>jcgayk8:Hňù:o~;7 I37qy~NLu.G5/HW766q)ȉxB}oNKstFVZ ܻ{NWOwޑi?|PG A"vwoى ?y$jLrn>ebeJ9 ( -,u h;_潹wGWEn*ڍ8}=^|k5;ouAg9ML&|F@sc, >{;my%]2 x?~ҲM4{T IDATEftLdk`EJPcSAIitKaVdu\'x5Y+QRS3; h6 1>oX^]B^>;rh$nUSi3 Od?KgQlwqr:J/p3/Hu=M\Rw搅Elif~7ofSeBL=7RJAZA܉]izyߚMKĄk)͜Zy?wZ] E7^3s)=DcFd~H nQ/1IX{stiؐ^o50̜KRfhǣb>j[)1k܂׎&sD Bgt؀:s˹j:{WEͫ5dQI=@¥ikYS]q]goyJk($2\,, ue+ŷ4U|4EayO*(p񚇽;\/ ;iFMєʀbn^2=AwJ }ұ$:K~A M DCp޵?Ӫ܆iF[?QPEW6pj}6|vLGFRщg:(L;%'H@\U{OPVP5GXD7j^s\ ] na$8X_ӳ28pntVm7=BTE)h5W0IñٲdHoNR&f#HqRex'Gm\w'7M9yjGCa}^4Bnh_]1,LFϓ0&(1n4p3ƞ Z0縜Lqr~) S'̦2ǵ´.Ъ5^f y;z37E?ff$SW.;rfj LQR{jrDGQ4W53<6R^.Fkˉ_]c0'[!uUj^Ns- dLR\2qE:|.L] 0-{i@9&I":aƜ4"Me+Tk2~]4f-t`jL0aftfŌ \QFr|o=N9]+Riuhol\G?{[q}䅮m}G,љ,k,k2C.9 &ڍeiiچOzX^Z#QzZC5]+Ƈd+Ę0qLz |oЭO̤,IwkoZs  /5>y>@GThd%+胟?7[^%.d>/į/Hp(1hKi&d#Zk{{ąEionn9bUᅬ 5r%KjwQ,[$G"q8ly,/ICSt:M~^=10w;aΡGaS o}͍蟟C :-|=ɹ5(s4[]if Nqyv3֊Szk[ji!u>KN/j#Z,@G_QI2~4N邗1yQE2 `9z?Qw.PU #L>JUTwg9]) -- 6$f5?$Y9/ T?f: IYGT>Lb^YցXSFm)& B?df!ߋU\EO2: 6s^_;~h_?\5ߡQL&H@Jho$רk-+Ь.ܔe˜MV&/Ik﹑>,7W5qq/$qfI3krW.<֦Е TV$& OjRHzmt1+Kؤ:\w^Ϟ1Ը|qM38EEgZ:/,a8J%-+)dL&j8c^@(AA} -ՕreeQG` X\ _U##-͍S\ Q7-rrJ9쿔],KQ"iLy2M-6TfL1K'Q'6j2V9ԍ925N'D継8qzϨa#zMbgK&75ѩ{ L5Ү2:wzJᦆB_fLW Ν7$ǴEjpt|7޸hkMSCy^֝;x/eK.]Si>Byi)pE'M(++RD I8Rd}|ztGGҘslCoQ0]ۤR =|쪎ͽ[ OA#Izmʚ~}:j &cAwqy]5_T7FNL47j)ʹ(;Xݾpz\#Wuq-/a0khں"{$KJm1Y#&dX{$cxZtm/Kr9u(PmX#ieV@Y 8Z! k9Bә"=j ͠O݋K^jcjR5sUg#82+!1MŦeriVK&Jdʻ(_:8p( sYNiZ*zC، q*^V1UZхpz54`.WKTRV:`l͍]wZCgO2A$l^!5DQkH!Ea_0Dɩ!ȳ )y%@Y$D -izeieVUD4}+m&t2>.D+݁@86Tt#:4 !J X< y46V @ ~rajl%,M"rCj^߿˪!4jlh7 ->i@F4jM b>q ΪIbj66 Y[&:4X±.T:4;Y` %ʴ-!Ng^Wc4-4 oOG|Y;nS,u{8=4g' 0ϧ .擗HU%˨9KYf> 9 v%O] Ys-oEn79?}%TW 69 ln&SdհÓc\^`@prv~uܼqC4}q:嫗syUMquU]'lkCRzK7w~҈^^^5[.=N%ցZ-,/oDzKh_c`uGi0Nm7Wׅ;:E@ދLJXލ8<|yؾhB?' AGL-ó:VVmg^a>| eJ7Y1 e"FGTրޒ܌3_;e 3ǘt퓳St{KbsM[t4kpM_uO\ K՜[mA!' Q0bK^yN̤m3v%>/Կ42hB  V5%Yrͷm88e֚'@l.&44S5 R D G}Ÿ#F96 5Tof˪4609Ij#Jb˜j_0cMS3rmtx]aEr v3x'ȉQKmkp.\|B#4kol*lQ=ߢUD]Ԥ&`(Z(=2`{EzEu_yq<.4XFFrU{"߯ҭîL'+rR[wʲ;$A3̈4:[CƖ3&K0@$U!k3$5QdM2<¾z39uQ=roΒ8'cP;[?ܜ.mV`B{>7-:E4L7 aMk@T厳_D@FZol>{ ᲨpGE3w|hhAntںPidBhD)BAؑaJ[c`(=`D}-;ݺu[>Q9i_>z,\mgw_Q/a3PB3/0mm$ Oq_fv$Q:N%*A<2$%r;tJ'F`QVfHTq1"6Ĉ\ܒb=6)=k 4Zg-F-=MS.G[{\C(C'F;=Hq E6M#\\Ű)=eN]YvB qEŞUeg͡/ M5"1,F#s%$ͯ200ZQn&Q;hP+Mz!8<=;ԛ llnѝY2\=tJ\[wy՛Xy~}"S_Bc>@Zc>9C#KĄjVV]kau` \T5cyZh=y?mSn@KMԻ8==ǵ9c1c{~OXٸ#Ʋ뵌˝:2W0 +uG#̅]CfFRk"k.]zs ==\KHetUg! H)%Fk)zBrG=>O\CEI\_oDI~CK3),b}32`D55&1MgEKM9;1Wr x>YۦaTR[@fM=.l:f3zU]7CӃ"r9m*̉.riby!9!NH5(L?maΕ 1uk%*KrmRgbj2(tl\ nex&s OP"̪c[h\&AS@wy(0q7^X):]hx(4|8WPQד/͖6 j:: HTPsRB}66q|qm.FVVpuvMHhxVV|} 9smdpyV)1,XOFcJ*'<} qU̚$h{iFJ`|0.:yS I%e$3Y6DOmf›F#EPf[0!Ԙd1pb1T^3q4z+QVqxrA=F'âp#&Xó .JUK0J!=Q"\U񖍲f)]LtlJAjäݫn;@ zaNw߸;{Ⱦ:=`q1 )Z.E+K1'fK{NOd{4r@A ||& '­fWiJ[CZk=tz{XYy11+]K6&{t1m\hp㗢Tl_F 15vV&^=ƕ5zk]AGj}}\vCg<߿/ki ,=&T^Wx)zmMǏN{'8:>;j0$B!n߾%(p>!{muE[i\dM*qmoO̍Qst! a?/gvnia0fno :Gwe{~$q:LD@&HbƘzv31F3E$ \@Xr&(bJK5:4H~J+x-{JY`<f Cn9I_M5DŠK5ߦnЍf&pL9ѧpY?{5~ZJ1jB A9iIE^okqMFr/6[-gӱϟ IDAT播cSO=n5ie9v65MXRjdy\kTbؼJ e/0/RRj,*q5f8z)TyUϵ`!9<ߙKH %eJ!& f^hyrm m ,[$ DE&)CѦœAƝQ3lSkzMY.㘋M9N..CIn'Ͽp4{HcFlSij>66q~q,jOseNzorcRu;mc]I4$)-VSjj%Rhdw/(󙘨q.z JHaJR\ bglbQ_*L\i53S;/>x?&wVtBBL (EG`}CS\lREkYXƆuS"jSʞsa`;v< 9 sL͢ )E$.sEiR50w @(cC4~iD]~ @@@ GP/;/Q^4 I`E(4#C.y˖= oI`b\Js⃴iRMuz*/+8<|l┦0r/("GzhDClP^!Rq s]fX C}!"fɠXRX : =5p? ÀPӯ>GnP,b#yeAINde N>OeV/KC3i Y[TÅQl+ s. $!(fɢ͜V 4ǭV ) ,ӷT.uxѴ2ݘ!yqTWs':Q+D v>tc gUYN*邺 b Z0:7%g\ 7|a4qv2d z\gPegꙫ# i^6̞5%Q'>oيx(0#}zvϟ}SM+j͓TlXj.nٞ7Ej)ƞSLc)yn%1MZDe 5לIZ[Qċ:35Fu\]b60 -q`i N,Og# u<^>{ν1 Cj8,wxGb{cW __13hDlo?o~9./$g'ggy|*/M-jnomI޵ry~_ NԻqzk^vW>Y:̲)Oj4˱"l +<K+riĻU9./Ŝ h6mr9 :n\M|yյM)̻-966ZoKOFE#)K;+ht͚POZۘ P+0_e3ieArQ9g#%ωl"!(S+Ҽ<_aOm 2QHۆ)^sRd:f F1y6hp)@5S0`Լ(lAFM屓\0+~p բ )Ek+P̑-QK޲{3) HFIB#SfpFedKJ? i2R σ4:XAL:} /QlV}h!55ātFN8?TÝ?+)PӢz ,⒪L r_)%\M]*E [>֊+{sdv )\S1D)^dZjPW?/cŨN3xaI:h.DMUuy@D㗫P!VHs@aHj&ljt brJc/s>p@:ie)ZDFA(O#; j(5@2x%^|RrA8ס!^Ct$څ:,N].+2Hv,8\RY=Il> Z!Z=>nV5p'hsx+HGJ% PyCvKtsslv@Yt2Gy&~y/# v2*j͓ ^e g E4 w|Dt+A4^ ͭ =iy} 6-k".Г*Z͚PDX6M&M@Ǥ{d|!1r2jGÍ<>9¥Q_YB1?xW&Υxp%&KT҂DQQ}LGckNQS2ZhPn_Y5Km /ԩXBDh 2Tc;K=ml6?k)0Պ M-Uz1xޚ"]AeU Ri*M0e},$UӟN|H8E,15׋r_.FUry!y2WSH|LDfPF6$6>sciZ>W&Si:/r0]Zhz"טpٰ&ޙm8I-A0=M)k v[RTi¨$R6e8m)!0|:o7[|Oy+)mHlXUNfk4kƴ:jbc/y30Yskou[N^~%:z"k0/G_Rn|:O~ {Xr[bkG&OUfH I3ҋ^,=I~ ̝itm&&˛yxFXw`[hVUfs[`4>C_`O> 4wݕ[3-W/eO<V-)d?G྄0ˋq||OH7|:g05xll l4 j2(!Wѿ! LKseSv:r}Ë 4s k>tՑ4'6VE fjk$N7v3cwx3=YFq5ޓ;[J xo`PUa{D,P(I (sn&^m[L!lj gMt0\ֽg X$'OK (gY<}z{m|bfVxs][WLb&L*|f _ݶX8rIw-UJgCBC^_Td3 ,AWH3:&ͳ&,/$ӏ 2P]cʽHɠAF]Θ(e8`w`Z] XxXu3_T +O>mOL^q詏hUfxU0S"`Eo ?ϗ_]HxS%}~N X6j&s|MYr[[ `u4Mu{8y: ɾz Jb=DU0e`߁Z~첦FΟ#\_R]d7Cyn09s5|q`]=bŞ l$=>)S}"Uch1}TYoܓ'F LgN g[!\k߁oU9nƒX~>v@ NQQ!ʶV?#e{AoacMkN ?\[44yg^nB9<~Ԯt%> [ag j2Yds L $XF|XYa=qrjHSZoln"Ւ@Mgݖ>ߛs`}%|cwD6ċbrq,tRZ%Јr0e<Շ<=;c"eyOAiDA159R~.ǐu@\Cy?HΝڈ?$NDƋ9eZ2Usﷱ\0@^o^#;:*VAz8 B߯6DKbg+-LWrxnrlwښ_*taQ^Nk6/ii|Vp aZeT{ɐ0sg_^%I;D{#a(WEºDR(Psb/ueIw ]zzcJVԳ]s- a|:ȕU*A#C!:m[!Ϯ8|MlT05!2 f3Q @JE#T,PU: `lTh NE>ġL2) oYqTH{0*,arKU67U:=(¿Y2Dm W#_p% }4ʺCb xfy2 u dXUR7>1of2p= AtX3HY_7\@UùNnzy [z^_.H)R[XU? ָa?I+iWZ-Cif։4Gpq~Z.`~YKgJ)'&06^& ӒGDZym|#Ld9&#}Xq2̛f<\Kha`Z[b@fp\clma1;47!Qya? *:T30{J nm"A 7 Eet-D1]Ҋ SY&i%AZQʽb_%,<8o Vu10[RSQ8_n r\$Bqw_{L]櫕fYDɰ;US^R%,6ݹ#/ d|Mt56pN)'gwA."7 wٗXqÀDBeJnܼ$XE5Vw=M\,{}Ayp|8?;'?XC8}RlMRb\yg6 A#|ϥ<)d~[GvHE_rq\2CnS<\ Luv~]es#\\K2=~ŗr\o8 0x}{K/`"X+7/tu*6&童)_aȗxp6!\6*M ЯA|mʁ+@NNՄ\ 4Z-&{7_G5o^V'KA韝F}ss9\% d́ O lx3WfSae0L8/dX-N>~=\\a:Bv&f1ZHfvo@QЩ1:=THO+m|בP~NWz'-րW zy OclW<^EUTX |t\)maɳԡ̅پByV %Qx`k`3yس>xFmC%1}p IDAT\g0>kEؑg3=i) F y\C Tq` 2WyYsmݥǎS/~ {;펢rlL"NKA'Yk:/~foS@K $WX-JŠu6iubk ZMߏdhd^-ϭTlcb,oMzoUZ~9C¼IC/5rdyݽ^;JؚH,}hɛ{yq#1\-1gI CJsz@qy~l&fƖǹ)pMz5|flT\Yp6~q:!n0ZEj8??ETŧz6jœL G)X{ RAd=^yˋ0y,R5rf"pK~AOFe!$K*4_J-|<7)I }XeNj_M%)! ̐M2+ɤ׮XazmY`:c%U}SN=(WQfc֦\3gd{NX߂kcKe;k(WxfaB^ų/Y:bU78Y2C|~^xr |0IVTG-jm/m*Zޡo~F-r[v3j᫯o[I. jn| ӿo{9/nΖH(us}Tdko>|X2W1 kr=΍z -VuZRE0e:T Me~ﱳ%ҊG GZX-X>k:mj~-|p㎾~PB1lK/Ӈy+jy/e0-ŻE@9};jTNr1^Tq՚n@ Zzi+8Z@_,%,<ؔsS#i*O3ҹX8:Zpk`/0 l~,b$ BI U05眝±J] gz0 K . J/ZY29G?vߑiʜ3ŚWZ+)nX{]~A]d4u= 6qbC:ͯؐZ;lÍe?Q*UӳYS3V &Fq=șo*ak|>XX!fT_ZM/ |ɨg [5ܞiƈ::C(WDV)1pE`saPzZΥOUP` 9/(Q\3{3Q3hJȃjӪo{Q]!$= ~(sQa+5@vMbJFAn .g&RBCN0'UEWU$]w,p*ew.md] Jw}Pںqje`+Ms_s'62|L}b5J +Oɬj^a^҃!XQIX4ra7Wnz٩z?ݞ&aRP[\ &Δ[Iz]$Gye u]'ȕ=1{rioݻKN䳼IS+ F?<̂P)u6K+Mj&1*,ݒ {ָl[ѓ'8?>*eՔ[-[c*.MK aL惷48aB$6z{zrC '5K#]Zb: F;cT&xzwsFII Zn*TteS<}If7vŃP.^ާ<<+1FRfϑ(0E!Z$d Zd80L)]YwS08&*i*Am"ɤ @tr (1FxLX6rk*%B7P6OpXya]|I<2(LBCaVF+a%{O21RcFA58qxlv}J.M7O)?2"]cz.)cJsBV1YRs5oxlnow%޻^ `<>=A;'r~_ o`o_p ܸqCjV./._nO?^;T_|wB>#}dd* lm|]h{h7 &=V_:A*0,m< 5Ys@VyCp#IE$kOKeEno cy_H?1V]Za'3t=aƩZCjRk "9 @+ YY\ :lB?1#%*t(eFt2Q0Idl&2 K2wݔklq. ]6FpH[T:񌐮|-g&o~&'ZZTZr"M_jd*2fӋ9n=ghՀrl׊`RTR {oE^6޽()9WB<&L\R8j/QC=( dV^WPp}y2&ujȳžoPk2fW2~k'cKoRrZ`&c*X9Rr[jST>/}$@)BH̕CbE 4vQydXQ֋TH\9G٣)Ǵ"WW VB"4{62½|igVGup^CU[l`f|jUAaKzϬr%@N/p7 `O{O2Ÿ^ 1ʭV& 5$ZxIv_$t߼F2576_bcK_lemaް \tݝG[Op{k[tVCM%t-,2a LM`N(\1Cs$ >?JnId̮݃F0@ 2X++Xb^apk5qd8}1N),lncog.KuO>߳<-C@m2Ȁ:bԯPaXz3t7a:%~k^L<߫BǔRpXg(7\bߢ֪k_`'ʦ\@vDnItb0L@] #$ 2e=rv lŷTm`}C #7?",_cxcyW01gG Xm:2a~nfR˔{}$L&S<|H1?>;9/*F#ȑ%So եn;jBݔ f4"E>[3W/0 e(?A_ ڃoyu9 ޕTYOϵtA3{%ɼT=]bF7ϰX72 HDY/.?#XVx_ =y4WT:) ^뵷{CCo:PQOdFEAՒcUmb c5D@[ۑkTz? ,39y{=VK6oBP.%rm0^2ϥ4lKtcQJ$ 1PpxK^(PNuڳD/$M0ia8G8]R* bm?s$dĉr[pQ~ ۔6A=qoJZXR\aO9@Ob'W^E\+^ɮ<#pl\f\aM~Ɗon@]ߵnx'TAtGX?zzQڽ׆>l)+[g O Dߥ_ZDzlAL^4d#SLz4H#I!0U<}jĤд(TvP&jE§\[63&ޙdO/?pIG*VdN=\W>Ǖ]5]{F5 Ʈ^+ݭħ%+{KVFzy#Ã}\plV c,r /IcyۂܞJQ&^¬D0@s޼^< ÁObLɞ\@SjQ,N 4+'y&a%l"%XK:|vTLIH]+^괯xo߽d9W-"s"J>xk!G3DɚgaƦs8EkB%҄`T2:J4Q"vM#w"u(CEZ &K-.9~3C,9c0x|9ڧLdRP <ӷ§y=^WgJKQXz8:[j`k{GWaXov/EvaF7ir.|˚n%::>zX/#i$gޓw5I3/2.bhd3,Xdj6޾}bl$<9z=ɩx$wk`1#/9 <03yNZ#xC5]c ?}b%՛7nu}zJ|şg%=h|VM3v2zFnݺ-l`r1%=dRpzv* WJ2+@RtmyHG 1ndDG9Mck6:mLsӥ0 sU5] j{N%eh%0Q%RR6T^ДH" 'Tk]i,U&K  7:txҳEj)`z -rf 8;_V2IZ큸 Y+*b]^\lzҋ"GTPG ֵ0FX24Jiho9E<ʤ[Lk4x,,4AHEJO,|üT-U6>~c!H2C]g.٬%ŗxa7p5Mj`X|?l%;ᷟ}* ^J2<( '(A/z)ь#.l@n*^œXMtE"3,R\=Ց0wLfJ- >)z `::2 Wk4%ٺ`Lҏ?5^]pwK"gk1ß<tpx*&lW+cVX/?D~^#+/&x8 %xFCllƊ<s l-_Ï>d QBdyLËZv;8;=F/d@Zf4RX0,Jr"lq^S&ZhIÊzlK?-a6\?xv)u@ Mݸ#q̱'?Kw.l`!ؔCL{#duFg>2nbe: ٪38ᣇh4?LY:SZ-`AL䵮,m! Oe"1#t(#gzPiQV޿v Vk__Lr&f <``#ϊԯRc@Rέ֥̖g-) :en#ZQ`h S]zQ_Res̜>)ġ Q缜4E϶B@Z$x͢HJKM=<PU¦Vˣz#f1sQ|F,Uyr߽d,#T\> ލXf"ER? ]p~ՓίCD9,K$7(˂*8/\xүPKI? %6 DMd^c@ 2z:)w´ż-^/ړ2,Xn9_>F0E-Bٌ wZl3!^#kɅ& t5W_4Td72%df7nG%TeWL2%5ܒkf7nK+ xb 5?;xca٤gvb1`7r`lOh5}[`&oÇбV([[/;3̽{ALjXHA$z ϟc<|T SJ >F. 1ΐSI,G} CVQotq1]Dx+~w ؑ+Fp5 [avݦY l!Jh dw2AQtIHw SԘiȝN[{ 0֯,3yLf RĤPi~m\;o J&u; I J j61a,!N 62ifT {A YfIP&nx- YŅ%LWnHj)u5E[T6p`4/MK$˭M lx2pvCY~ )"3x)ʀ~W>?ԊegԚuo`typ*@' (,W`*>TqE }w(AqcXhot^fyo 9(|QV욌M>(ok #~$̞!I:kXuMV#(PS'.lGU&J '}{jVYpN\'$;S+泷=y*sry;R'&2f1 PYg+~Uׇ1f~HpVJiR.6 د`S gYY˓V5cvS[ko$3LB/|{~ q\>ylzJd;NK_`8!DƛouN߼~\V9Tfy c> bٹt6"[#Pp&̲iIM^9[.p{{r!ۛ[4Mإئ oƂ)CСK_.`JFKĚVW״IAJt %ړkݯ^>/!q!fLpyE졌JVt0vXJZR@R&YctMa3+zx ӥ`ug+^ȒLk[Isy"f>:Bkt)/*JWX."뾸wqtm9;[[rN// awd`榜7_c5D`3D)Tviy1M,g@%d=%L 5 ;yJzd ./1/.KϨG\[O=D+ Jt%Mi-4y-U|8ͧs7W|~y!ieg~r>tn\=>sI|?EiptrWd;qyf!VEQ *&Xu(㇎Ex;SiLVn %YZ^<> d]SV>=KUzf+@3 }P йkOZ#ȫS?(Vi[9-/Y(`]WkxG2dVO'.ek3b#؉, iæ//"ਔ ˿7kKUjau8),^C* ϾŠ7obXQgAUb.ŨL?Acwq{w5h,~Nxo4X/xONػk[nL=R$1:Z,A%8 F[%BIe!=$ ?_K= J]\\]Or(Gp3ϴZGMBlK#nj$&MoI]W4($V[dd`껯..Q 74;>>AX5(e,'vH3loeE**/fD݌LH$IP Ӻ?&` 7{;PK#ڵn|ީoʘؒ#+ܧ,tZٚTĵt%>-Ё-ܰqzHhdސl=vnp4o>;[ء X'?~ ^}f}ipn-WZbyݎlzurl%Yj*^LN$4FR{h9aQIp-/$5la*E ܺVNK͖7n 'L4ÿŹt^\I8}-Ã8<)쓧fØ\R|_ vK,bw/^=5nݼSjL$B:^Ẋh7hcڟ-Byo;Dl1pX!suOU@i&;K b@Vv>1 &X.%u\Pn^ko`0c۬c2By0;Lf)VP ~4FCSt-f\'י$?(NWn>-9zV&ZK^ksEcH xDݷ:Th:wі?sͯ7Zu+|8>9j M`XZV,ATd L{tiH7rR ݞ>}w2<&Š4uXra懔'X0k%I7\{4 9/8_asή2|3u^xEH[Ju|*<JK PSjSeQg'jku$ O}Y|*U~2( ܆:H̗/Ibv26& -QC--D#ʺ5vdy \ ?x$)*ǰ<|X(J '{م|U_<8Mf8Z3>xt\ ׉ Rr=QUxm5d*ͤa)LIyUlzM$tQv[k0<=hD*P%h6wzwl^,=k& 9-=8y <~D6B:zFȖK"م'[ \Sȉc{{ܰ[l"]̱Uk+CB:E/?V0lj[fҲ\6{⃉#inl ?YѼNLThĉ.ӓ cТB|\V50$ M\M$ێ1ǭS94,AľTBk?R2'dl=Ezd\ s‰"‘1f(g/Z-l@Ba-V+*"/!iP$ɸfA> *u֥Ɵ1Kvݡ'9zSr8s1u>֜ =TO%,[qP\oF8&\/}kDś7}1f-T &vG'~#G&6I\eJ1zg)޾~ӳtg'xݕLدWWܔfz)&}rrϟiݻupqq&ފPVkܿ@?Lv6O>Ûr?S)br9xƤ0α/֠m0g)եceYMJ_|!ν{){I]kg_aw{_=j6@c8~3#[JU!CH1ί2cy鸆ޔޏsXU?zca:VL&(C˚$ +RXM)JS [.!A90`cCݰJ5PeJ;qʀA'ab $66P]KZX(`i-yexY̒~ nCo7<0EP+*IAY2d qתyȵ!X1V4H>U,,(.A[|ƫfgPD*%Ly4JYguXyo^AjBXU?g9İTrN+_d^Q_TaP:7[NQxrcKG)튯ʀf'p&)?b]Q8>WzkBC\RXc-–~8*1g1ҙuv0IUڇR(*%:ɭlW(i!7Ri& X$.4Sdȹ2Un5^V8yDU2zT:z~x6l^))%@Ir!(A\ *]\g zU fMUFCJ[,[7]+D:L%g Jj]n&'"B<9L-pocoץ&$pzΙe}ܽ}WwZo„>g:CV`+y,蟻d͵t&@%c-0C;d#[TUƈ^ҍ43&Y֎.y^hn+u#IeӘhN +_#c s `Cmh(>ܕ&o]ջdO,:6[*dr>í]A֐>LK1ޜ ǫwhoO?E\g:D`0&^|v|mtMVs;`DZ( LVI`]Yl8yp<~ڢC\ ]cz[. N?rtp# Hͯ#h0ě7\7$;{;hw{Td"1X0 5a:k K^$z {; #p18Fcs 3"n2L>D0- VCu5 ¥G DukZ/ie_umcʅE5x_T s)Totć㧲ALWzD'Ze%sE(=@_4ϩկ~%Iy&`k|>LL.׈ oR I-Ep61r.ߟu w\)T;-,g#|_j3@lKKi<ݼ-Eؔ^OfIqˆ] MXdCSck< = f cW"\-'${b?\05<[ݜs-h!3Q% ([1i6(v˫\>Ht07|3##\B G۞f@[Յgn2^!lgojN*@-˿IR&rfˑ)(ٕϊi1)낷r3MGzQaTQI.hY[6n~$ WX+|HЖ۴|[Hrn=/( &N&muNU(lIbߣYs ׽?*0Y.d9/>SaBP2\7 kj>S™YSW*['e%3&ؿ{ ޽}S9?W+'k?ѷQpxl^4|*B)/A_7(/ ~9v3]Z,'zx5Z(Kb~(j52i9Rao AUyo0 MFzNag(w1˅MN'ج'آ"SOC\(AUY%`[:Ju,ZԟMlcal&.,\6&ޑ7*'o2`PyeAVt,iV(CL^Rj a{ IDATn!'2 Kx2ƣR>=s[|0%i~KVAEP"]]I$x&?}M棌RH yߑ TT(k.1ХP7}k8:?tGhl pvu0W‚`,&-]~ X^e37[,DM:Lc|fdv[nޕl&&\:xWb8} n Ͼ!n߼'? <}E) (R23}!AL;{ø٨$6Oe4ݘ\=`jv#d{3TIּvdiQi*OM^D4%s%YBxU+;@̜f&`9ZHy>Ⱦ9?q޽:]}SrLB)U7Z0K]ߘ~U#ޔZ`KC h/xgl)EN:nT۝p^#콥}ijdcRQHep(*l_֔iha9gWSk_$ Ʋ(Шq4³:PYhJz R\ >eOXgĜz( X(_ǁC5z>KVX=˾[XV(0$!1Zk+kՀJ yooHTa]Iq%5z<'$>ЃYrn]l# ߗYq/*{KZCҰlW ;JdȕI_vm"&7 ՃV4%C[+i . g׼K﫵h=31Fxi~,) .D;4W4A ,[Ghh~I&IUWX)ldWgI5UEG85\r}An}x6?dkLv5N;$brɪ̮r);Hȇ1c2ڽ\B^'ˬ|6.QH=8ɍᓇoTHEGfypm,wSITV郇{Ga7 R^9'?AZ3 9ܼ?9wx 1%q" k "P\OsI~>{vxzֶpp)=ggҿ/~KΗsydvsK9Y f# ^[$Mf6'V$ Kjvů-Nd^b)?N/dF7En>044$xe&ܠLzM6?{הued& ;`1l\@dz@u 5e7S;i5$\^ߔVgYt~/+V޾{ÑmdkbQw5:>_ g8#8aU*Q5!VBg5q+}~G&$5^V!qI&s&+˾ =AQe{:2esezTh}KjO{V G]?Q]vCʙ$bUAwxTFW$+k 4EYWv@9y m2t@RDH㑼͒x0IFϗUL!l@|xr}^N3W?\456uh_drd.E^5O0aH0u<7Β \2ikMvuۋ _k)1ڋzh'M@3wƼjǫ܂H" a%Ya$Ɣu` Jƻ"ܿuGI;(-=:cN9'onpqv>GӇڱ-7NJ {;;*b)>^:9ɱKIT γ[,&opE9$b3Lb6|n]6PV Wwv1ɇr/޺+AW/$9=9٩lC=|/^ٗ0g*Exg{G]M+Jax׽c]3:9_{dGk}{eR{-5v`I{[l{aXT- GP& ]`CX5tp{\gk1 &h/D=nt?IMbg9 ԇymL"_n\7^_/~+`Lb [ KCW ]X2nzw$*.ꭞW!ɸuZ[]bZnݽ1ÉkuVF+m kuk+& ݵQ,NM C<|c̆P童# [L1\,q~vk Xv?s*/M>@pJ\?ǜNA鸎}i@yJ<SpOk[ ,]sß8\+>S,vΊTzǟ/^F[L>O̹`)r=O,|icxMCUASЊya9{XqC y8Ӽ?ߘ\fZMJ6Ux4ז7 gmS&/+H[Q۰wJ^BHQxpԽ48D3 'H礝 ʥKQi$jod77M'(9So*޻hwj4^aOvf&Y^\\MyPok2GCd#W1LhZa7Ny 71:.>gx{a:=\^^[~\_a88Օ:L7m)L(b\\gA .PK"f;4y%|xJ>PoX;A)L!;d]Dt}W7oĺ?<Խ_/~A_m~/QWX᠂=ܾXQlJ|>]L{Kl9ho(7rq%P7eh5ڹ$i齼>OhtRj.TC1Zk))2 &^}q\к$^ ԫ`Bי*Iv2}S.ljWak`*o,]7\kI&6٬b2C6[ Mzb%*5J S)f3ʋ}]"@^]. &3q~zdꮞmf"J m8pڂB:l\]֊-gZ%j2؀XZ<z7v&r+)7ѦR.(A:}oCg!-mPGKG 5`AJoatTdw)(^VAJ;d% \*Kz8 Ab[cKϤƨ006ihB lA:܉ϫg"2z91 b<_CPͣy8{ ?':3``E>>s^(3% D;؋xyЫ+|RP_?Lr8PeT-]B<& G#ϽFBh*aR3~l{ AeK|Kٴ*X`.:)={H(0a61KÚ|eMP[e0x#?/ʯ\d H̯"bO1q ݱ6kɭP!Ŝ%/1IZbtv5@.2޹R%󶜼~ $Ab L_\kB"10%ȕIL73Aa1j^k)xRx!{(1^cddV, C*UomBG__LDցǷy5hKDpkؾ[*%(S .(_%f2S6)[Oy]$t }`ۃd8* I1}=87v0s/U /(/3Kܿ{{n&s% o:ȃ +tmss r쨐'EU /(l2bҒ%peAe/gC KK'ӝ[7sbywNC%3kQC9 <ЅTpb࿫_g/O~,?Z`$ HTq>^5q"BQz4PAyL`lm M0u=8} HknXYS&BFYޔ`!a~1Nt!.Or}z2׫PGވ,)ӂ1"N|:/,3mxa v~N\Nΰ&b{Ҝ0N;2U#͉*\Z$0!-L˂rƘYNo FoߣUqեR)UTH+TxRl@Bާ[S]L[|bT IDAT )̽lzq4 '91#Tsa 'RUbY0 ZR?˗E퉐 RLΒ.ܲF=gZc*6:u/1Ktϑh~OfR/0υľ[EL%Nk{ؘa`0mZ0M Fáj60]c3峀YW95'ejˋwH{I< .-v5uLVi$H !O̚ ˜ DWWxϲQ2"*!*`Ao%K..$1*A!>u)Ж$eqşτ& 3YIش2PHuD9hK΋g2l8ԭ_cfc9ˍ8qKrϒ'>2 g ɯQ!-P PBLrei|uu =lvFk_@@ Û ly3-jO-BH #HJ< kқ\=\*WXyW8m!*YcCo\x? )3ʽyZwcKx J"̯ݸ`s>Z81mk\ޛ8M=_ KV+;|:O>"fHjp`cr;I9C @p?|&VltL~gBٻ',B_Y<1`Z'z:M/* @s'-#;=Xʸv1дh6ۇ0]6HTpO0ݫc|Db.b Pr>\Rlg2My3W2)xw׺ogj`UB*(wa+U P)Nܚ7644+O}ZQ-Zs Ib![ PJ)$-+ػ[ۻbޞ*'+Fzka YVHQK: P佛i)xt̜Q~6V&s7g)3$`"O`լZk̙M"4V?Hr?,S?v tjlf^4g1DXɗR&Q=&OD_St.xkK8cPZhnΆW)WQt1:K.,tT/ 3V{Nna,fȒ`sUd> 3ZRW7W3 vnckkO,Lv_DM5M<|w>lvq}3foGx-NNO0_u?$B>1667_퍖o4Nsth lbw{_rI` t ~!Hd1鑆.xƪ;x$u;|KT+91 cuvSRQ9@hpU}'gn4`u>󕼦:C֭jFW-@nhqe2r 8_kbC0ϯ63Kl M֟1I9dV&%{5)g.ʦ}=ՖǖBU0L Ln?:wprr,5sϙw22ߕ$xTDihT{kX+.\fu2K{|6Е, ![_#lkdm$AIzVJZ7e#*ӁMZ례Q^ @[ ^^Tr";1 %2!@hTt9_*/Tn~qK[lKgLa9TlcQ"N# r)C(WƟUk'RxeP.0=K 5(Y~WY}c?*jx] (/ÏJ=˲t2qA*>/$tvG Lu~wꫯu>c}ܾp} /L̫RZM:փZR peUC˗G7?_fT?^J䆝$ @ pneN l+.W..}I\ġ[ׁ7F)NS_y} L/Wy%sʷsvnԪ.QbۛS\55I{?Wt]GNdk6uZeLgIƀY3ٓ|XTLs51s jZ I-Նݬ!ZαYKqUtPz*1J9'Ù;&\V5eF)# T/Ɂ+1}j D ޷M޷zb+/{| a AF@ 69DQNI~rI`5--|Yan2m0tXp؛2SSqzrwo7/AԆ+Vc:i-BPDhh6 tFJ>Bt^dY.̤a֪!~f%X`hj`''J>weYy2]`xWUg|g~\`ojj vwb8P QR޾y/BSdF5_ #& ԛ[T۸C76Sy$eM952g5>~߼Gh puyӡ8ק/&Hӥy9\7՚ Olt|#khwOs|Lǡzk51.oYG c;o1 " ״܇hI`kX۶ǜDmC*2GR[$mKѨǒ;i4TD$ɋoLK`&2?')Ky0r@c- S[fD~֕V 7\Y[#F6Ѩ5|)c9aޔTbޫh OO=Oq_5;:=QlV9:>ՅUP;tz n//p=j;hy|H!\Ie@v[~<[b6>C[Kދk* pFFE[-zyybR 2o?P:,:p^\7 ^|ϟcf`_s!8|ҏڻ߾eu=_={JMF.oW>r9ѣǺ'ǣAU <9{$6+VSaU -$OԽJX eqW ]uz,}`d8\CV#nt;s6޾~ra+dR"uk7hm6kiH ^<+US08r;sL2 "̞o#eJrƬ {HL&M+ᗆ$-/ `Wjj`;ڒT%5r_m@>xm~C‡0782yz 4)MHP hSyRseE!kWG>JuK6/%h2`a'oz_=iClocM0ءk4TTaTEMӕn+}i_UiDj㓪wUot0,R@?/CYIa>+t[ I=s$禄LjXHl;:<";MrjcG Go0VG8??/OͿ&+CZ^"8눲璞Rv %htl~:<#K'#%r6ǫT+NR*J̔dc %/ b=M&X~'0?kG^/y\g1D9:Yɡ&3yTt/A6]@=Jb&SWm $5NT8$b2dp@^I⃉= IwJ- <^[۪zr; -ݖU8/f˯Z'&2igo8?;!xH7<Rvߣ=#3sdvNwH-Z2(G0Ɲ;*j`_,(}<ޫ4~cyD 9>zGGGdG J~G?coPO4d(? O~=dñLϟ+ܽsW8:9R0r ?yp޾$Xbwwnap}eϰ`Z0oqrRp:~\ۗo|[Vcn"fs]^.p~~^oh6|K;|(.F1۝]TZۈmoT%< {oFOZ C5xla5DCVeaudJ{nTE)<f-hT%K+Dz~isy.z3͗ )([.S=yv{JS>N+37Ag`8v۫l>+7nO1W͐1㼮 ̈v{~ῳVIb[,]B7^c T?̽ƮJT9ĿW,0%}{Xk2BFVE{d<T`Cv|3O5%E\hR&ا& klY(//U&g5Z-Nl ܏*E>`:`Rf 'n3aDܱX@h̘EPB(j1>/]kk9+s,p;5YӭUAރl~*`ZcWC㐶AElb Wdzt~V9,HPH?Yy&TD~mQkA=PO/x}N f.-kXއ.Eb^g(5ϓ &SZu-Lum{PFc*ub^_ ߃Or##aIbҧ(+&U&6W(7[NWR2&e K%dݽȓĮYJSsJ(+%-c2=M䳥wIY" BBH4Z~{%~n5__)dB"7 Wkhll`Ɛ&qSZ.Qmw^+11]SX.TY&Vg(JI{*I_ _)L ȮҞ8<~.|W0ݖ`v8%bɪ1d]12"0[j$3Wy<+€ TБ_z+4ḢDdq!\~&6MR-_KvÔʦx6 #כD7sYMäxf~qE`M֬G~$vV! Yi5Q]njIwk 纳c'OXqC:wgXjO]ghoT IDAT^޾}ϱncw+F)6=y"f?ًn:e\5St OI4ːan,u8r\qξjUE%ny|/u|}I6*q>Gb!޼үjHl?s|`}Օu٩`ce A6<XSx?1‹_ [Юwb6_m|9k7/^BgcKW_a88Pd b&> ~. ;h:Hj Phcp}˳c'_o5qzj!?j(i#+h5ںoc:]uoImDض(Z[T>[/VRod%y~PqoyƄ{^7aCw677 $b9!6vREE aR.㦺f إx l: f:^$QIzsϰ9Qc V.2O(/) & p/dFUSZɆt6qsY&g籍³ϝjUimL&S>Ql5j604Q*]Ы9<!J?Zl^@H>\IPm5tDqT$ScZXi௲wy- - I}~%Ivg4ZUGؼʌR>^[j&it8çR+A F >^z%+)SxZ[_/%6Zz\ɚ|:#eRBW+ #!/yē> /!%?Q.YR+j&dLrI4[(pʛ*zJU\dUnTz}3VxAeVU @CpD@WM*{]fccpucz;{۽jϞ ;[Mh4kGuB❽ c,Ãh~򼜟WSEP 0}#Û;IƝ~ZD< woȗ/1Ofv m iUu-/MڦzX'VBGyЀp<6/BLjlrY$)2D>Zʇ9jzkܲx[蒚뽻aV?5Ijo i` jv<Ƨ޽}uH8إ4y0._k(UcgwObRb2Ӱz,B2vREK/PҾao2ؼ;["xϴG/sq #-4[΍V3,?x޽ykQgRG={ٿi,)tsDZ6|X} ts"jVb{_DRbSe.Ka9AWg$D*Fq;-sJRWTR}mS+*wIgD( c1T7oxZ Ĉ߯zFIB`liCiUC}z:ͶJ3>\_P&PncCV"_aBi]5VcbUW10[eE^Im42JWsM5cBX)R&C0WL:L.8A=+]qCu'#L2!|j~K0NUU n@We"qX2.d,URbFe9s[d/5_BzT$lVQ"n^VDF%9rN])& hmv68mmbkt?+85;#uWB &v~)!gMKȷclRlI .va&/PIR'`W\9`~\Ւ*R8L>;ճ_/y B7x2|" x˩? c%;'x)nz}UY?| >dz#6?xxvwfc~3uͲև2Go՟gW*uWң+*~=:C9& t ,gfQu3 aϦ!]bamdN9YyfzfdZid؂C泥|{{:_LշǂmlWV+a[pC]Ltquy(M%k2Y`<ŝL*o^k{S^jd?;yS=h{k[7 J,t,TX 'R\h ?=n<۝M xM3Jfϑ'v5󰵳jDƆWF9v%v69wԎ\FirߌBV)MEʧc5% QUdƤqo=$њ lMr"? ˂.VT 5@]m;2+(RʔR2nķyy! L=(jJ=/AW^dfC-{*K&Q*f}x ` $$[ZF 'dկ< ~-,$`;&5[S;{ؒ:5T܋vg[Z'PGn ܮ%پezW&.bj";zc^_gt乯Ҍm)[u1f S2i+9Q?nɴ!P}j־jo.ިJ{K˖SSgJu3volld&KU~l-IgS}F{ݥJ]+K5sOHʐ=M @;`k p{6f<[h]G% ަU,&$1@+gUZke&7Z(ѵ^LCʪxh;񀛅:3[mb~[lW"ih-NiP"<8K̲%q&`kSKf](iXU%gUR?:;U#?D$IC:wr,UHI,fg1=Vܽ7)Ӓ5Mo.p&s*ًaeiY6WRu.`>U#nI~#ddDjqгxY6Gm8kU"i5!7:Ws,3J5L:Ai`y;m zZL>'𝧟(B)柒R #xs*1TQm*&qj Pas%qN߾lpj>bG1ꭆjDZu5D l=]`o\ ppIpd}LV\ )J-l}>٬qs~t"9l-F6̤M?LV+r LY\пeoW_n=|ރǨ7[bk.9%,q\FUlu{ b{`L[#O)v'Zqcz2yfN'G>:Xtto߽̚xn+vO͛8?{J@L}mDݽ[?8;\^#eX.ñTxwn`=b>=ep~%V)7QovY{~n^kH 7d#7i͖&s n]`.m*P}y7nUЄCZE=$晿}Vd͘Clh4x/5EӹzkGj #Smft/xY` ϤjJ?~K=z[[ܔsnkE|T=2ϲ""t^,N*ep-1@_JU3Qd!Pچ߽YVfXDkfh`IA@T)= qXXV^ h1pOz9Ǝq(&vV{I?G p`Dq2 NWql ̔˧.(˔ےi3'0R\8 ~lk1Xa-y5.RG7fkp@ͽ~o͎Rb\̅\m2,_lzj˴ɡӳ6[Inh,uysn](N)?[s0Wy& +̈ ]u H6 !K$. Ϟ=C>Dhj W\֙LN\ϝu BJs0RߊMHD -. k^D`v}}]W73[n^#`H|.UpD-4d4*_V,WIz+b>µ eZq^zg_߿' oڷs XZOO)ùj5 7w)fjSw <\677ĤWIDr򴶪Xhf$<07Lh3޽7'ĜUi֥*}D9syIm_^K0PEX85Wʴ N5~(-S12FBr_SKΣ4ԁ>7죥S 8pε жgghn61[MKy`Ћܘ6jmI=:FV 'G$мqxͭ櫕~v\`5ck+$.}1UWWJ%oϖGBrh~^}̣ nq51Y\_T5h0؊lˍl woɇsurnŒ<[ <}o˔I€"D,U|rRmSS IDATpod0C'xt_=Zh5KE;. -v'go׭֦!0?78{[Ǔ!K2LCUa-+U̦-\wbwc~)cznip>n?@q}yCCc5Fk拟a8֦ifw0lmcҭ1_INwz e:P`$T!.ђl}1Q]UT k>ZW7rAFwbcsSEssnl mZ"9gd[Z$;~{n3k)AQt:ʳT+՛#Yclk~GkJh |,)0a)ָ~a}D^O(/]5,+M,du'8y!2}Xj:8φP.˦ 4[:v+b)B%2Io12VUPKᝉ[T i {"c״5j1.e^31Y\ɍ,=3pÊjC o^SnU<@6$W))nU;v6Bp"K-(:-.!{cXN>88I!7o9k[a{=pV6IJ JCNpFZg,l$aIR#!hœLoܼdCuGXmIbUϬe'3+#ޓGC7Ɏ@ʀ~ 1/,u:[Jg i`g%lJU$6)KРDEi24+9If%B Ú(u%Js |U=)R't!'g4J P LV5cl1&by<9Ŗ(^m:^< ,l(qIWAObimL̼hJG]:K?(ɿܮF'G]# a)BIQv\öuIg98>;K__JJ)mQ2yM%Y/n { <<N G#Z]11I {X26Z(Fnl},rcn2^_|W=߿c23կ Պal)8ӣyRC_W tL_xg_}cp|z?zws}Ionrr/R[mtqqqTV&?)w sUJB?~}qwiagwI}]'%#\CFVp$i3aL'W+ Cf60``*.88ᰆH*65?\79 ;RYEx1@z3Cg&YfK̦K[#I<:*K-j]{Az3-l"F52J ]:vrI`1@6zUI^'К,/ 6q=RA>dÿ/+IҸi"xAM!hmcG8-=v䉜L=0c>%K-[w՚Hg457xjhD?4xzh$~J;1$aJ}G͉gDN krc2 d齮.MBCpNG7Wݲ!Ngc[4 Y3'_jrs/64J^MS1=L.b){XeYbʵ)KfUV {H5f gĀA>ivuWwT"tVW 3;Z{c\@DTk9{ZcGlt}%.fTAqo 8֞ѹl*ȞFn Dc,z ]]VSWS ƸSJ~fxD(nP]RZ- &-k[E,B &-J nE^u8aUXL7?<(3_̼5iT6d/ۤ#J2gvIg[sҵx-tM2{a3eM03d:=ƃtmn|z3?ż&f1ۊ f olnBt/fT l$.s`.bdxbFCZ>nCZ./̘ٶو-¹H\ޑSFNg^>O[ѤGƌ\)#Y,.VK꘥ˊv77M&@ȳo`cK99:p7w>99;3s\l2A/{wX2ؽ-۷ ՓN͹jSsp@{>˝;YăOgCaF3IZ:ⲎԚ[SF@B5 &ZS3EViwF1@:%ɔZN1`a3]QU0`sa T&Xz&c{!#M#fу1ZΙ,v14'TSWgUlΖt7.e6s/*ވ8F(/h4sn k8K_['Z\}..b0bg)42Z<NS@~1r/'^ޒQzIL+M>sH[5zcJs~ r,rI]j!oYčsv|a+dg.+da|)2&0W_.iP5 c-g5: mTiQh]\ G֢d*wutÖU #nU*kpυʤrŞt$UK GEYImbηU!\YqkkI"\~7'dk}j8pC 6FT⛠"9Jlzj#L5 cM95dYo$8~ ? iJ/ ֝rmhG2cg0*d_khj $ FER'1͡YZ'U}=$Zoџ oiԣ,xw_ͦ\L&2W,._b)ә 1ZZNkyLǗ_|,_y)J׻4@vWk}άF|>@+L+r RM,6&T\`zÿXZ:kͶ&(Hlm $+pF,+@\#k|Ua^ 7i!Rbs8ZWoWkع>e:i"Ԕuo`HeLeyg7ؤ'NәKy}[|x-TR2{C\% E*4]";zM QX!Y )VfRCɌ[Tf Aٮ;F}\"Ņ+ug=RX  ǂAӐ]EPAys,Z\14BAA(zO|sݫ%I>\TW)牳b`,x}rn vqSS(uCJwI՗+)Z{+m9=?4;0|Syྜs&qZث\m]38Y\C-~]⽋59Ar''*Ĩ;tx&eIbbf4oWېJr,X2&Jg\]| 'ܥlm9|FWd9;~=E'RFyܽ';;W_*?MFwFGNPgߗu8t2^Rr9e:BGrrz%X\ZЃ 9חCyf//.ɹ\ db>rAyCVRe!s9?}.^~!'g*mIMy{xLtggx2d23fӳKڹ%t=vi?,hu;zzybP"Ҹ"54e3>kgkCk͘DCA ȷ]j4E^4_^^r}%.z\/b| $ё zJNWf1e9hjtF׋F Ͽ/ SKg 4YV(&t Gt|BP85єD`zh2]D 4$`&ƢYrCOOm7:CͻT c|Wm_N. ZiUH0^>e9FIr ZLL " 1%-S10]bASqNӹ h[lIAYv10ښB#Q!1+NZDK*3``~%pznBAˢY;c*q(ILSG {NZ„YfcL IM"$&Ȯ:cDbYϡnRH6g%p1ŕ0o1mgq5BDN¿J UR]!5VTv cVɻSFӼ='(~cm =M,T$B.μ n p~ڢaWڽ] ,p⬁Or8V\qwy~obL Z̤pĎ' b2mlHRo0O_p}7ޞܽ@NNͺhV5f|0vXXX^3䧮E@jl*J:,6?DqMe`R1!G%) 9~i:CT5@Ͼv Ȇg9=9M^&k*9^g 7[q,C@ &$ظk)\BFCvsy}\Нvge.*bBQ>Y㬱V͞d6 8NZ..LQ\Rm PP.@M 2ȅEδ(Ho1IXXcpET c$,* %e1Tz0H>J̾= [$Ҙp,T*W2k`(&JgZSIq :D;r^j/ dv_YK: }0@Y=~C~SM&td8r^,Lt4^ܾ-G,;Lb<>/$.+{9!ӎ}F~+ڤ@憜a4eNNOz݁Q,p5ۻ(LJ==3p{]ͧ׌. SYƲsvS?y3d4`k.*\y_JNjrkɴ3obnp<"rU4v]#W8g)+.%/0˭3Pn4Z]ZhėS/?3mu[^>_ٳ.ޟl*plzyf09lZh4#tKsL O&siu{l5;]Ax4HI .Aŋ*ԙuflubD 3Ǝ-3*8hZl\\1เ~gU嵞芌;jzVO`!' Yl:9T^&,ЗKI/r~+e j$Hr}V2->Y \5 cp EU;&Ky˩-$zɡ4p\=k0k-lIl]q1n4 {f*. lDRZ!:f,IYL\ gɇM\mv5A٭J($QIk*0"an/$S~'JE"] e7`U1.dP X #9Wʂ:`tw .@6UcQ)EO1ksYek[bcs9'Nkh:x68줕 p&6-! Vg3bl'*5Pf""̔@Iuō.N#tq,ӠŐWv.:AC#Wp9(`2sNԍ8d8p*sץ1U%2n7"zY:*%d"Z]; 3|{S@=?;{`rtr"ۛ8ۺosV16T̛ @:`7^oĥ'|&\kf4;h&iG.=ɚ}w\w$ $T˥d,?@1M|sU!AŬ+5jJ_{\7zXG?<{RZ획; IDATL&W/r|t+ [[|ӷظY3O9JЬɎ__XΝ;ryyAGm(&=~o|CS&(6}鶚rqqbui5z 1.qݥq⭴jr-%dlz(RUdx89ۿC(y8XSd.- $pDAQAϘZrYN[ 9Bb0k0k%''dCM i?3\&R*|@F qUMUF6wu!#*ԋM½J17DdwH9s' =}S¾$omf Bڻt:L>\dul]!ı\] Gސ,A1gz L b. >ɉ5g[yH%0u@6U&Qa"lL|^&d87⹬R38nG=m3ʂUMn KG?QUL&&y_k yy*Ü赤'u}M*ism'yϵj-rtJF+ҢIsK޼=r]I;O39KykGd{|5{Kٓ4FKgnݡ 9|Fݣ9"yO>d٥fC]6}J6ەFkCפRNX$ԁ]1g7p˜H &Gpź<`Еx̙{4yjJU"$Ja5JfcW;g U0ʙvA noQ_J5s_r#s ; Z-;,JdQ@1iZ+eiWJ^ qBF?3:zP}E[U] i`{X7`wEP hI%-f=-pbD7\8`2W"ڡ&5\ &335MY$v~cb9,%5z4̠ H2MI˹!5Qg61o~q U%ݍU9SV%ZgO%2]m 5SYC_inoM>X<*fWUJZid]9.>~1Lv ̤\9یഴTU@#-x%5Y`CgJ9mB_/tSùRvG7IRfת{NI-ާ.c&Rݗq1\hP$ hָK>`pxBX)UdZ'9b>nerx*{;;y8 凜 we섛6tksCMӞќ RAo mJӥ ȆbA [0]?3#*䥉g+%`{Vs|$E~-~5R3Y4dg[uߺGplx*|$R:L `'+۷ߠt @=j!s vbBY-$ooXݿG32(;3gӤN;wمiX äxu@ QF>ElV!bvegwW~tw@xN22?p2 I)ë}.rtx$-z8_c&-kDB62^0c$;[;rqFNN_t¬-& \\`Sk_=[t?<9-JdZq^nO p2eh2kœ_ _Ih Q<{ $]FGn9d6rh(?Kl oP_#zaSOڊk|ʂ`@ױ0B'dJEHft0 ׎ꕴӫiYcs_?DR?:+Cp(}p0Df?fT9҆S✟<d&r0m>*!;RaYSbX ^_8VeelC*W^?Y1U74X$ 8K$n@ ДH.~8̥;KpeC Iⷂ_{^d κ{E0T^x .É: N⽁Km92)e|ekRVJQ{./| .9R&&שǐ)F'_y;AV3O]9{V}wos3iev3tZ2$m$,/U,t&„(tHk f$ IΉzIMƛy,XȆ=+ 9ٚ:*#5,a2ܕvt$w=/_$/2V3'ղU/Yj5I5:*Ӽy@. 9?tKźi%#FՌFA/*֜xDo:5gcaTOIN9KHYFL;7Қn0b Lrm`*G=Ռa8'Aj6 |jJѢX+\\] G>sM,Ke2+lL5B)2e܇pcX:=n5h{F*aveQZ>皟k.)c1}oEJ9_ސ|)]Q0kiI d͌jc(;ImV ͇lsAɢ !ʼ:nR|Ilj&E(@0DM:FfrxtD DLCi߻lsh6Q2πGrk_e տ:/^0 S_>L6mO`1wYz]ڝf#bǓtMiTWVߐgr]| ,CIV'2d2(cwd{/i{q |ys{rt13b7wn>K>WxT@/o4ZO1xNa84+y8oADlLS˗O@㴬&֠Tt붵@ ^.كyƦT%Ƙ9ṿ${x̃\ٷ_P}$#}|{9_ىR- 曯ʣ |,o[>ow<зdxp6-!ΧUdZ/'=٫%_X89;ڋU5YsLnt[2hd<}+\ڛ5[Rf@^a m"/M~´l y2E8 =bpjM#q[miQH]/9!WϟjdyRD L)#|Iud!4,BcGm.e1 ӧ~)_?յY f 髚H4ɪHB3@&wP1SO~"d:LR(%ʹ8/\S$Y%Uׯ0U'935؆hP`HDGzά/XMөbj9_JPs1qrPoa$Wؒ~S2`J3lR}|f^ͼh匡]DYi3m.HiY+gWY4 d(:Hm5l-981LTe.dq KaXl(JI,FK洓l6:RBj.\}*]yr.y`{1^+AXrڧf\Qa"%dxKny2Ĩ;}ٮ/؈8΅`9sNYufUQ30~4 `܄ϋ /t(}4KuAWrWc Ɂr9A `j)~_yvdח} ^NЋyOn@fzt|"^ 0%5Ft,.0M*/daF-b">kD.ۗL)\LR./drFb(P..N荼=z#璗N-eY裙46 ]:vi.Z2Rwe8T0l5e>Hel'x ߕ;w- ʒQ;ۻ\^VK-DMcs>Jv_Hmy{$ܿ,g'RCJڥTd n+ dy-ɘ3O| oߗ]:#RE.._^f_:$]J1llݖ~rgrk4QbfS'&W?9iPf̣`kMfKf0[.QK}eVC)c4 `/8d>x~ -Ǟ5x-CNj1˜JoAMd<|'rtrFq¨\_]y|- &YAR+N3Bv=*fZ(8g<(Πc.]ӂ}|ҙΦ!n^SLj= ̓ܗX+ o@#F}8ckVVe4ļ1|2Ҙ_hS9ث`J{ꂜ8D]mc^ @~"円o``ZRg*K.fd&!fECXe*qcFȪ+'m S~{NJeO"3}d*CS3W(X9sd4aGJjnwMp#7>)&I9CVT❋XP=dUylv76[f`uK鴸Jβi͌2C{U`˜RwG; LRI8ʠ0m V2=kC(3u^tOS:r`pcLTEvbIA@"s1U鰯  &I&4~REy͒ 5 T5' Ѻ{LVw݃{G IT&P)Lތ%v~5EJrk߹Ċ`zerLk' d`R#|5yv r5>6`S[ {2'gn{ v$y$,o3B(Ʊn6da#?l|ű\JZrsNnY.l Y:HpZT\MeR!Te硰IQWt;\V5 !`SچHIJ*JPJ$:"x*yGöCdnB0O+KL lvX0Bh4YiGSͼ2]ѼYK5+plV4 Z8L݁lөΓ'#/n=$/(lOc9;=9[dե͎>lIF7£ceS!qHHmHcp ; #'o`݌[Mp!턹آ(E/|,Xmd Bz[wJ֭2_!k9;{5r7=>}sz*m؂=:I[]:|&VO~|è?l$W,WCͯ,#ՙ{9Y1;wկ^<|"֝ۜcٗw<:=$#m4es{}xuy)|%̎36X5!OF}^g9+YӚpd4510ln`+mUw "΅ZA0^ )49+ *YPnʊ}| :4$J 3Ds |GXnE0,Z eщk5¬=SC} =Zj4_рۘכ~4sTlkPVR3RS7u3Ω !"H~??-!r_rMV\Εݫ`|ZƪtapQ*QLj!U4$ }ֳYC,v`gO67d2K9_r4݃rxv*OlS -7_{/+Ōh<l90Qd@p 6AWlwV1xpaĬ-jOWZH7edbn-Hfa)솜eQ{/[YCK1Ypy:(Cob<2M5KFt2b1ꪘdϩ!fuD 0x_S;5N-y>s,dN-&s[#λHMҬi+ ZXTr YC#XsHfa-BIjN]hTT:(9Ź(1|%?+#`0"*#`6$'K4#yuz\/t y;̐\rx)r).Xg7dg{:F%>;$(ZygRK5 na 87TQ쀅[, }&N_.Le<)d:nK"1KBV5eےxk\juK+"iI3c3(8f*x_< ZG#yCyßȭ;dhe2G@o/_K);x?=|Y0`덮}ޓ r-y5ƣ+-J]"tmHwk<FA<^ڭ> Wi"WΔ]N]L ]_h ! 1B&9h{0d) }G/ffE[-kRAa0{0LX ׇwЇTc 3߸O0 I*֛*~4ZpPא:=ǿ%+X}y+ֆ\_]K(7-D sa>0/)|=2ߓzKu]7gԾrr`)tzklj6?yӫڳZ2IM6"`X7ōe֠IR;b2 󀓔ãqݯo4sBgQu]Od^3Dl6MRì)2aJOH2F4l5QjȆJVfq<63^4#M$ךVBI7AlpfᕾZ{^/x "ު &M>6%dopNJ_8#n9䰡 xh l[uG{fx*vjn_gw E8I>w6VhCEESqhۈB"h.fՠL߾: IP)R5$&c>xc~ƮY2`pc46y ŵ21 Κm zt-H RBn&G`\P!7ox:e+bN_ZӻlrTQrZM@\UZcRn0I-%q. URMzB[ˎQ̨ƕTili0Rf=,t.=믞ʝWO2N08˯~,z, ޾yRF#4= o$T,/>cMIEW_\R,`2Vk@ٹs6yNnB|>䲊>8fK*2ƞC!G|30Pf Ŋʰ\7L} JQQ̂OY2(5{2 U& óٌB"7x>z_WQ^(aƸlHctD#s8 qUHiB|2Nh+lB,M5]_mt!u&J^3fSkvjgqN )EyjC٬Ɇkj.!,j 5*]͜_a{/ki}(LFsj[k$pO$U,9WkvxA̱ЊU 3q(x'R,r)|s6,|z55^so3gg璦 yxܾμ 1:ݟq7}m f̋SftMi2Y7Rt\}3uUěB h? {˼?Hdt;!rV aXQۮU6Yx^@S`)+)moIf@^Į TWxekZRg4DM̮n2>CX кmi`kKk.j8) DՇVcם | up?a06 y5pAjɈDAlej̕ø 󣭬هS 5Nnq& hK9gQq5[HݑՐ)Q2oAQl¡h$>~":HoNp^:4Aq%dY<22Z(13d+R, B4/lyIJt)Ү#{Yb*k4y2j&Cm[D/ FEf3`$3OG ;]4"Hu4vV}j~;\FeVŲGc"0mml񾀤f E!~ e%sA',n?Os=;{֮V3)V32m]{j6ڐ w+vq2 98gh\lsA3< Hw]]_I$; 'jgbʫWϥ֪v掼~ݝ31[t9޹-wn?lBoTx{GNON( ve77 c1iJёnMЃk14`ηwDcn}: fj1^CiôcgG(;xS"6#.l .oŽHɽW*ӄ&h0 sdĒm m5iZᤜq cLҚΉ/wGIŒsW?YZm{1_,X@32F,55kcF޻2OG2ί nSEiXy/ _tnZa}]ka3ʅ5E/"$gA`&ĸ Yett ៼n.AZO 3k%KꂃrJKsXm-0^_f.sL*jo;eOYWqU|L`*դQZT%.G;mfܣ|I\+&Qv˺GNBLj@M"،͐Xܚ{ypI62h6k35kNᵛ,7A}#雬u`򥺮!&R+ cFYVX}XկUIx +lS IDATzb>*T+dc˫7fDm_yelN[E.B~*OHW@jʌ$[+}a?ؔS X'g)7ya0_J>ut9,2oTƤ W`X)rSZK+3܌ĥ~-&\\d21F2ɗh;طZ].NN}䶩ʆknTYW{Y33-"f0sdNaѯdPɻӗr4ejV(ҙ֐)GF@V3(u0;֐=^VXB䂑2aVt 'FhID8IR3sMTb$ o_]`pRRES6BiK QDJ 5 % (2:_RWO2tF=yuAsCf( De> E+΍*fk{s3#K޶H 68O[V$K 3/!P.zZ _|3󪄉Y( N{(,HyL-%e0mIɖoWhe)B&:m6i9b&,`ļ)׳oɝwY94ሱzmKJIa<3 {vv׽奌f ǽ|Et\ʭuk_vr|z"?Տ>%ʐ-gSi5ڲq 2(1Ow8'n-#6jhd:]?9×XLedc6yp: g̡j^k6lx&[[#fyKhn;D@ 9(dx]4?&ۛl0sJBA ./љ}#o8lJIg`ˢA RZ%w}O%wKi9 bzD^>\O^oJ1(gd߼t[ɚ*ΧiM23v$kz}N I/dZy(^t{]LeNVr~5z/r,v_㤶zlXE&B\y%-BZͺ\/%5gRϚr}2YY֔()ϋT=iq5OWM..^w`ee>{ekB!"*[ 59~ƆHd׿nbט .eqrޔ kkKLq [S/R2PmBvBÆz+s4iJ$UFlå볖GSLޏk|w0t)3QO,`X$HךJW4dR.W;HbY+P{ ^đ&B\-rLےAs'c=K-Ìk&]ɱ#f/f\q.滩ۮ_:e]+c| inmL/ µ0 c!3YyΦ&Ҍ$'+|zL~2`&`S<8Ύɥ9,MJɑ `^\5C,!^' l>"3ֺx\ VBL\MS2!c›0u#ܲπQ_̀Pը%YYʹl*{;;rU`0 I\7d42zZ'@+|LXFyh0uJ%;W,hYlEǫ+EGs05FGpbFǮ1Ub] JOjV,9!Gk `LReH:dž8-'!i)+X8&V`AcY,QVg={,3焹ޤ7e|C`I.IAM/ q B̴+oӻ]܈8kΉȦIP{os} *RL*!O)BVLM84s0WO? !7q~yoРbL%ǔu*0۽?Fkp,tnqr>`3v +6c RDM HXe.Kri40<<)=b|hT[DUv ѓ6uAʗ󑀑JT1[.7T-]5 fZ]f .Xk>=~t Bԫ1 FW3")ܛ[[lD5ЪϑynQkw0M޽B%}F"!*&#mBi-L0Ƴgi1NO 75:h5:x%nQm06y>;=a>Vfo^:Ǐ6[ |i+<ۺuA@-!0) 4fsj!Iq2hcfgW<G/ټ-l!3'YҺJ ɶ[X&S~6h]$s}Y2cqFO\ 6qN?[[U=t}"jr dxBaL QFZ l48'~tz!%gKtW"6\"z4;I@; (ۡ)wtaos5JlÓ3(@=ʜY^b,SirI@vY yQ3;&І{c {ڔw@M`Q'tͩEDq#|a.CIua`y?=9BÖ́Ͼl!2wV&6LM)tw /:S%\b> RI(uY(R Ź $ޢb2 QLőG_HlL1yxQSAkYt݆\t/X RM=ӥe2T;ƔF[NE}Owqeʵgj $ϑǦ6":,~|4 k'隮ސqLVFɳlE(>Q]s- >yY.d0jܺC.ChZyc!7t4eD!7D&S٨tC2RJ#)jiYm}ٿ/dJd6eFF6:,pxt3+:-0Npg.7++] rQaW>z7nj1j :?1pr|mGn@OFgG?./Ш5(A޿sf6] KRԪ tkKYr˫36z;?y+`{{8#JiB&Ew<6a\D:7n㣇XLR yFyyyδ̆Wu%)&ꂐVU#g*ww 箢E''J!xMhb&Dj /)6?bƓJM7uAV-fXL'3 eD9vԥFje$cPJ+!őε-ɇuCdϊGxF;;nPk鮀7 <5,fg+Or_kX6܅^ Vm}*:Z[ O>MOU\g.yN] Rq!=>d bRI&ʥvs"T/)H1TKu^mE^>HEUhd&BP;ijG7$OA*UjK(Y' :4!e.-&W0QIݚ,pN.kiMMk jh @JFj3cjˠͬG8;{Cr}%.Ϲ'J?@zwnrsC"9>sUgg&nH$G!qDκф*J(wFSnuIjr5f!}d&ۧx\ט}y?G_ bBأ kbhSf,j9k#766yk{~v&3feMi AB(n~z g lb& &4'mNSI\ j}reܾ S K8=@#~ edhvmC9>1.vFv}ܽavc3!*&j6L@{uclZ|.//)?sAZaH Z_G^%dLQ3Dt8(NPm"ĄGtqpRMF= {;Ox+_ruu5 J$Go0g0}fBϛzf05m)1_aVr(b;Nΐ"':ûwoqzv$*7"puu{8Fz* bZ6uy]kfy9t {)eFW@OuᮠצunU6 Eki9)mVX)x/L).y"וY_ϣnֺ/\k%g =#wG_1Pf}&gtkZ_7|q [.| ZHt[La|WVҁ5tݫA.*H.DA/ٮ F@Vݢ)\haZhA Ixr\ژkTiKu?5d7pf^Κ 65sBdS{)ڧdgT#ezMa55j ]]vA}}kD;:7[#(`Hh2cQA~-~(RcU! JKi,yMtMS(T8BӚsبV,j3F w"k*E(@qͳb7 Dg!GVdRŤihpt|$3GhZ#FZ;] xj)=V̈tytu_Sj~y mr{)l}?t˔&[Q̷ 4o<]8@5Tj"@η8Ϟaej[oxŅ[Pqb1$l,ԘVqdZKtlB 9a6C\a"Ȅ0RC[UWa= ~=3MwyFJ=|{/^>cj`4B +L @wB֔iFmb9ӧccc;{7x80ьP .7Sp лv&t4 ŚMRmR=@X8M$~g?V[-֤ŕ?-#ouyqzĽ;1c}gZWo^[|lcllsg'xz}>;mybԓSJs{69UJk7xFJtjbU҅:8shk8ZSjNoLh F]lsڹYT|5eu-RJH!5 tE{ =9 Қ,,c &5.(:JSI\z *u94<F#7_RmQ}/J .E~/0淄:avèС2&TT0TחP6HNʔ; 2RUT!{1s[jt07j!AJ=x_Lr$3Az=]5>ңԤ3z u~}{zW}o.ٓ4ќ UsHdbYb0r,Z` IDATϜJ4k^#d1i.&$Â֛]4<+'%ӌ+Os|_nTrf곟t%Bzf3&sz0 DXy߷;9dn"?gMѠ>V͖!VuQֳ}Fb=f$\r%O8$G\Ir(VG7ip/7wvgj˟fIC^@# qq|$gƢ7I|,5zTB̯2 kߞ+GF渕JN$FtYbz\db'Y=ܡ-GAPOt5:ku(uAz1rlRte9&dKSr$G2GVx^mK J͈2hZ/f7^Ű~r?BPC$Lߍx6Fę9:+m f6Y5#rC3p$Q7b!It9WdF56M )&[c,\B ;٘ [dHO8&VE|B#1XSS\hS~Vd ]4D%S-o6Y+`|6j'ͯ!1Zq^捛x gS&}d o Cf &*;U#ڰ,#ѥZ2!T O uyR<`Dl>_}/fXK";X{޼|_KL&#|^__3ՙUeD2\ qs۴&͗3|ǘM\ Q+D&4g?i@tt-ֶLKffbg#> |/߼d`M-..1 4=E#kؿQh%gѰ明x|?O_^w#9gޟG|Yשqժ.01?<))]—A$3Ź0Q=6a ) $5ݺ)e2+Su3i\JƖVhT5UrCqaUݧhȇNWh&GIY34n/Y΀iș.%;/[TC04K((uH(]4BEC MԜ.]u饥] 1JhA\_a@C˯!Ki}#F(:` $H~á0QZ傖db7Z@j}+ sg wOX?&ϥ,[L)V=kLA , >rS(\^j`!RXHƳ+\d$`m&C [j(WL &j0|?G/3#SiiǙETOʐ?#K=hrvgCp ֯!82f0ӸXDuυDtf)%{KYnտ0RJC>[!CfUF RVw/A2:S`U+Gc֚&8T{*!YkigV&9y3g|A󗗨_FrV( I^9Oe1Oyq$ ֡; ŁQtȢTAQL jDl'TWD& gՐk*ILn&<@5rOygatIC.)f TXpTG~>K&cu=efU8R /#ΡZW:m58H F0 "OV 61x:1$4X]Y)9p{lD/$Hqrz͵ L_|bf1!I-2s ܐakV#gˎB?bIH3tnl~4یԐ })UȽ7Ȳz)#1 yHݻw REUo6!ro߽gEgmQ2O,ZN0l@{!?_ gۘNGI*R#& sncHC6-t׶l CFcnmvVQ{9&iud9>y =ݹk޼~ͭ L6g'K4]F{wvwC4HL k!Q)$V?2zYn(2gj%6-f Y"vFL4 հ1?DicÓ$dDqD['Z, ?D#^&<ovln5eWC6E1:NGk5#!E"I9$; DӃݳ3Vk㜂0gdlX]rƛL.OV!)*匟i`fMbOlydGtZ'eLeB4hǣtQ&@NQR});VthӺ*sgHT2ET^q ^$ռ|~g6yVT𳓬H\CE8"y-yfOua|02ǒ@A \(ε5RtNڕq%YklaKjQȷ ;39D.F8RNѣ?^qedF׬)AL^rK9H ˅?EFKa:V-FVyl ] P eu٧kp)Ӄ¹,@9!cZ#X*5"|_@sXK#F`X,㦬C]eƬtfJĸL]e e}F[5l_ADAT!kD04Y\C[j6CCy< Hu6ֹX|9u&+ 8JhiPjhpAzOGXүA;)3͑$/MoCQM"MBzvFԅ3/*NYn )h(!A[sF l{EZ[nX6'> 6e w9Q͟x J\.!1wbwk(]' &D \[${#kҶR9Ydo"=eU׆O%CY8Lը+1di fl>tzd2%+ C`5qJ77b;Pt3 lJZ'-_6ۡvu^(B̡8U0yH1|CDθO_?*X4VdGrdn0:ϱwc=MT,f3\^^qAOCFpIj^$ScT ΀Fx@zဝQaOڕn#Hq|HA| 9ђְ}:p 7ǍTҹ~K~/^rD烌HLLT|S 0Kh2iUC#_*N3?߾fe^epcvOtUdA͕[XoA RBFLkh:ܜ* .J// ?oj^i:1бrNJ Sphs1#[zョD [hh0^`2l0֜dn%rVd;@ʺwzbTF $Ӛ`PC5@2s 0gG`.oa1[iAZj`oou3Ifx;{獍E tVpv~CF4moPլӲ6Lwuɬ1g X@uLi+u!R zۈh6"OP[d<aЛ7(Gn taq97YDP7ҡ6`p A{^,9DMI3(v9FEX$^oZFh`K"sѸ-֣C>7C,Kl63&{RM^Ak}W?a0.'JV?YA}m5m{cwMQh: q,N3Kg}X[C=%vPkPG}Nr=o塁?J:kEh*Jie8a\Xұz:uhPuuYSTr9vMlqYfZgzm8'삖Ήl˰uA32%|Tejzpy_jڄЎE 5zdg/ E_|Mn*dku R'+SWXS E_#nVjT}T491=p "wQw J"YGp|ԩBBAircnT4}Pry2fY#t=RH`J u4ЛgZ{.91Chq s-|ε]:(Lė̉s宙ӔW1S\'k DܟcyBTSQVrуsnGf[u es7 ~]/]J)E ԂRY!4E>?~9z;KW+ȩ VM)QG=R'E&1Ai~ȷ.0ȆT"6<$ثS*=%4Tb`%C3#6ˤa$T=|.wow@AvRBZOc6S6[jkY5Tr3srNmF%WkBRM'UuTu() fƇ=1B6bPC׸tANMgR7s.. eBߨ4ꌼ?<,IҺ~noǤl*Xi40ІF4 2ة9Bu&:I^YUitAt̃-lnI(hxzԦ?<{7 ^~S76VƬmc:ag&$ɍm~vcv6X[#x˛jI枬Ԉ_]]o{XLRZ.1e5jkhn#!00cg_OT`j8Ѡ7rx|FS;[h,gc稅ns }HH{:lÛ"S 4O7*ĕugSͶnݹP6Hc:p|zōeo 2K֤q4 7u\  ;Ȳ1/Sn iZ(n(VEِP.O/$  < [)brЦa)+}/"3!+//ː:0=\M5+[ BD6:4 ȑ)<>Zmr[Pt۞a!5e4Kj^ ν<'ﺜwjÆPtsMO,. ]Y_-}ߠy/,hFwjHZ a+G֘8,Paz].i8][gQw% dxUݦyWT]XN^gW./3 2JZ ʭuFbjn)=Sܠ>93&;s1c5qyp^YY>NW4J#aevXu5ŵ0u}_D[ab+l w̎e`9˹!evdJ{*#P QBRB&˺R%$i?y.'Ѫz(S_pҕ&),#= jZFpiCT4WsnL qϹM 4ԆniBKrQ.!>mk=Tgb*1TOs}sT& -MqiM1ܪB ,L~r^mn\Naܗ8QP~:dCV IDATƔhk$*jS(d El@]LCEUd2K F_&OۤǪTG \LSd9nuYgۚghgmuVi#$5#YhIJ H11Ck&ɘi[vԜr- ;\LQ7n `BaJ3T0|\x6dKdrEVID!W-9 /aS+a›q<8<[g"s rNEEU8 |tϘ~{e6Kn e1䖛C-n߹soq5 !P2B ds|ut 'e}+#ǯ޾ V76Oz*:Z]r2ŒtԂOGZ;h>#=/@\i<^WHcܦ9bglf$kQ%;tyg3noosMsnnXӝ,:M =bgtKDTo|?t`Cwm<;pm_?ALM:&,[  >zZxQNWDojz9[XLO{M BIS5Jfpş3 5,G $V5ˀ;!=bFs/~*:*sК&PYSӅyܼ!|hCg󢦰\s˕{!#0[4rfApuY觭3Ű wAHVܵ7Z߉U^ҁʽQf%Y] m]#/u\`dzIp #Y7A NEut:\.?W|\mĈ5`ĨMa\YEȼt(ùʢ"!ԝ;4o<%ZKy^lto$G.2AGǢHX<+E\_p*Y|8kLڰ4+4|ժBcg%4G'⵫8S| ݄ٓN{9S2dENQ@4h\jYl`>ɰ!Rf5h[P8*mȟdArJD&N{ mSU@6A6@aY`0]&`1,-6~boVTp}s0T,&%+7Lψz +V#`GF'+ V\V67obL >9u:HSDD3m/V➸ɀZ(nZ97'zsJV!6_zW gi."\d3qyIdk-}T6le Q=DEI9fD̙ʺek$K2#!g0bAҒx+N.P|ۇ}*Fk e6>QjF)ó7 1EIJJʖ;X|ݟPoskmFFs_~Οt7à e .++8?=C5l_gmh27Ą!zsFHx96 !s4رv]{+Lc6'nLе6w&Aꊛz~Q5> |)޼{s6`tɴ{qt|3tf- yj9nݺՕ޾{N~J5"D~1zC?8 y? /zcmv;D&YeKիWX__ǭ[wy<:9Ż^훷0G6ꗿD,.0Kfr::YTMϿNDAp Q>0P ;#mzN^b1}=?nS)?;!/Ӏ }Ib2IBqWi01J6!V,"ڷ6\xC !a./p[J,1_y5Z^4ܸ:"tMlܸygO^ړ㯵֤F#JWg9H0Ee% Zϗi+)c87s&#`i5ƸsQ}oi2SWPJ0Roxe&rhUIOz&Xu7Q߷ZRЂN}9*/EXmV-Yɧ W+#QhY.}@hVVM Bi-W6Z"MtT+U,%njQuzAh9E-&siʵ\[oO;$ jy|<ׯq_t=轗t]q t˿fc%~x 9Q|)Jg}~u`:;ؒA~^"Z O(.̜K뺓sV ,CTLɂ:o4_W{B]:Fkӵ$ms68wUS2-pn-L#6vG%7ln͉*Mܼs$c{^A/_=ۃnNfƍ&8<ONǟ0ᰏ|ǚ{9_ɋqٻr 7̮U}~zzdC:|/#KoqZauyQF!Fgk1{+8<`A2r>DoNQBOΙz _`p7"kF}] 6Vl1@b+!Nϰ mss:pwo ImL`2K `x`8"66!Wx@[P6WX}z|&W<'Ci"Yh5"sDuLrvmT)" hcg C4tjS6b}&p< j4`J"ehʃ0}AZqKsm pgq:k@+qDר0۪ђс'9))յ4"SGbОT`BxWUIZ*Wy c_Ӛ94: =@PCg@ ܶ+F[15Tl({41W]fF]퍧?˥ɐƮ0*, cdgꪶܠ7SQ/=\!^фӕj6:Z\`tF* d.G%T"uu(멧T׼9&(2q݉ؽ6'+ Uj!yv3T}41L,N lZygJULלu,rAaHXkY֔ˏG3%Ȱc+W52:τ#RC#-<9&^E4PNJ$?L\zgMf83T{j$q >y[pwcc!r)]ŗ,q ZMQ oNKtaMu<ṕ}ϥ@Mӷra)ӕVTN/ MU +76n6bV 2}_XL9=>pu!n\R("-..&2_af5A(8 ;OOa{PjPqmDp0r֫|Q(jղxEk is@zGhUIVE+c{,Yzbi6իq4/5sjrm>jɍBgZHB7I H^ &Sa+u%[|IKDE3Ep)yOs3j#rѹ\>3!D%͡T˫Kݓ=;|˫> Q-mjfs- ޾}Q|WSv'bōmFe 6Y#Ds&*Uv&d=hV O͙oqxqLM3 x-ެ! vwn)iD`eӧQ(>MiIیfRyrrx lJE᭭-6bdxϟ=wqsw=glα nTqrowu4#)jYsM*~sk_|SQSm(SA%~dyV+x5v7wyK<|x_hjx)nܸM6o֕l9gZ.9JqYfkNHf)Iq%HhWM_pz 5;疴`8g -| s#M'gt3iǏ!d$)6MȨj,ҩZ Q^"@Tׁ1fVFclo  B~wʃZ"@q1'gL $nvVbO'OQd6}dDR2a&Ƌ9v|=]b4Sf1e3et^SJUJEUx 6&NNX"tΌ׆b?Rw/t[RGXEs-5uQPCc,c(JO^ R_?TJ_瘭:SmTve:|rM 5tP:nœ8r*5~j mrĖtb%utPU3)P2WG"3Xke1K+HNi>k?pˣӻrA$*T12tL0w{wVTUJ M4&s袋ﱂu5%M-vƑXՍ!2m6 VH&D6߼gmR\@f|D8yo\lnqq%WHj^5Ԑp3Ҕt*UBd݇øh"r52FH#t>+KT4`jNҴIpo2Hr%:Fa+~=t}̈́i8ƝM,"..gc~͓̈́|oP:5Dsj[VlMpgNc%5g.Ph :,ܗ%JCݐ j96 LquFUT]Θv\P/9i; b*[n|Zu3b٬&k!GD~x "Qb<y5FcAXI>}8<\oa>2|WW|}AoJɚ":xʛ#K:`<n7dnN$>Ρ,:67y8>~ &.;u6ob07cu}fC%*|4#WxY@<h:cbxկ~t/j!~@6G-P0}M= p>f 0]Pv eoWX4p|L a_lp|1hxʧW_I.x>o71s GD|jjGDp.U[yCn ؽdrƎ+[hu|SO~vXI30_b8%3*4b!:0 I(4)[V#EMJ]ɹ$7{Mш2Zk8j@.4ܘ͙hpPcX-bYFFi% 4(`ܒ9y c jPl gbAYAmnP|pv71:wzC4`^QP\v{< |šE.Q@^(0pLO*q!?^nDkDr(j\ I^?<'SKCmIZ^ezУ(bvXϧU[4=Nme{D%!r;H\ծ1whPXXJ۵kw =k09&iP?m};N']ve M5AAy+/\w-Y d *~''%ˏC'Z}ň=Rq^ܽ`L@\)י D&L BDF}PZ gU-K̭Ux2CLtkhu hR]uX&g0R;P3pJCfUeO~?i^??KХ$d#*7E~Dp6L3C.#Q?xGpP:\8i-աLwePW.M MQ5V_N uuY]eRkQg9Ф SS0pa*x;Zfk8;?ʼnb6K=k,( ,CB a;䲪1Ќ]B ]ˋ\4(6\W뺍qn[IQQJ. z(OojL'&=Q.mEYCbX!jG-rF({|)-x6p6Zœw/i"ȴ4ق):ߙQlKvΌX7I i6Z+#FapGG5V(-@: }kXI̜H3%f s.R IDATF&mDFȢ}&PD τu&vˬUr*߰jV\MPRa?OM3e8[4J{ ?ƛgOiǨ5]lðhdjn{#RarBn9Je1bjc:/|g.fݻ禪3AX}R捵RF=tj; zNU4p6΍٨ ߁d qcNQ Z!B='(! B+Uֹ{p3 pUl\wÕ ,6[(34ŦXoqeuW0f"RnPEoULZ&RfQ$+W1Jf7.s EZiN(*ĽBi5V($ۢ㠅61R:Q3{蜉5y.RXb'h50!J!4W5.J2V|4F~P$ddRMhx)OCED3TQ Tj{Ope-FG)o:Q:f՘)ؤ#_VkN;GLYw6I M;x)UʜJg^f)k j7jr\ ^_z{6.֗^`=*=`#}*9ҀQ̣. 4j)\_[o/CD>Hݝ-+N&CM/ʟ۬I6c2zF ШMOyZ6W*Uf9C˵*LJqsL5r-4 =TNG4^$mn\ݽ-T[宆Cf\Ba^[2 F%l,9f+ۜ4-ދG /}UcuQg3e7jb^8  8[yVks_.B݄d Shjbc9j4.A'ΤkZLQ}tiRϋ1 u:95n@Iu$3%*(W\ ,7BEOTezi& #50䦔(T\)A/7[#zhٶos-5tVWQ $ g\ʫq:J_b=kb'iDWV08蜇' ΰ!gYRSʍȋ/S},AxXn7[/{?O+n`su͛\wttlF4h=>hyX\`7^*7n`}ytnzoE6:<>e]uZf /\Z3_}Uɨ`frh3seܻmިaymh`6`48 O'w0`qi6d`6!vQlX1c7gqe?Wկ~Q^|#6>ϲSnѨVcz㩇箿}[/}*mlm&tNgTe\ܸy ZSKP'?1,1v;;Axxŋ w Lu am*˫ 8QiT_GxlĈl FL:IJKX),m\ELi5MR'Os5T5[5~zʑNmn扚K2ߣh ptڣ3ng㜟'p 6N|6MjQ)eFzP #Fc0$*IK Ac2N:~̃5y3~UDz k4MJJ%^Z:'tNqˌ(E=9Y ~P qM{Rq-rU:ˡj+cU)NÊE7Icr4XS9U+m8UPTF~3iF+]#,M&Lʠ8ܡ-?XMϙ5Reae{[ElyXG3Wd_7&p5C+7a~׊NѦNKd<>.,6F́Y ݞ噂hv 䪸̕86L;S&XG)\ iSxmb}1#CSd5oDcgAmywK݊+"9] +,f8hu1X)9uc4՗hІ͵تW'JszsYP]EbGuaϋC=FpّS4ӴG'I7цkhP_ʗ޳^soO_O ߘ5|W4 64bՅj9oRkr M30ڼj&l٫QMdy&5XM'n|<7MB'd^9kwWxCLFM2=1&l&ְ|{[S lM AĂ"$J%Ny`Pqw[G҂-@ܺOhQes>-ӱ|v;B*ϒt ԕ RƓp .\"X7Yֹ`50ôCbp8>>fw=M0hМ[I{{xϴa4~=FW676PT%Qv{~vuEUx֖v;"ϐzSً_]4k%F16̸ͦuި?0JM4o?ƣ0f ao0Bc %Dmrse|?6y tOwxtTl g.B{~))kpS/bl`b2qcH MRCr5nҥ8$_Z>Qèz}n$f>? (a?1\BG=XJӳDh!kN)7A`UAI #rn/wv\bS1xǔUj2Òc)p.wh'g1bJܘ6!3>Gh[C4u{k(IBz*Li&r)"Qk6hefhH@ùh4f8!x ofA(40Y5)wf4Z2bGΕBφwV5bJ-`Ŵ8+j ft6TO!9b2B 5*3Әxj%Vb4N똣ڮb>845r+2]ClT5RM;4 ءݼdHA3 &u.xduag($[Ǚ;t|P({E2E\q~nNmv}]Pc%GyCu$!h3k4qbHRI½7TՊ^ e)UI\Ql@ >̯?yMt~T/"~W?9v7|ǿB(zW?U-tcWgpA<(qtxΊR=Fpg%i%6BsE%$4sKmЕA -r4ܦnV=BEOq2MZmOP"S1?ǧX_&kg[EL# Ƅqx_\k^v:qnӳ3F3Zst 2(s/1zM /irlѬpW1M00O,TZ͆J54 NHBo3,-Q-}Ϻg<#O ;:fd{0<}da"ƃ>J*I8:=,ja$њ:GSڜ2쨟biH&u4mK@h%<_]i0\X{lf"G69ê a(i[:LsIANy&gh>[zȝO xLVZ=[iІ+uqrUq92URiMnNhu6YQfSE3$cT^Kf<~-7&Vg]ghMnkX\q5:Pc)+%z_;ačhSA/MUfGc X(]1T┈!VB4%l,K]$VBjTp ;s|.ņMl~_qmcqbm7~o^ƒi<(1\u<%Z(c,6@b=Us2 b&^x IDAT'y#U4| tQH|,U Ot+ijFC]9羊ᣇQ0i 5*HAT!x+>Ei'S~ҽKFt4$4b4s"]ɄL䣡۞-0#n0B @aJ4 1X7 D͟"zkR(K|OdK1\zoM4H3$)Fi7YsPBÎ+A[-SeFI83~dλY(3_ pxd7^F\mr'{yIit%eeƷԖp$yK@EvML͙hE39qlEڳMBx5l4>-T%y5\Wg;+՘g5֡Fka$8бFPsͲB<.reXz47QjL MDP[:4zӇms٫>8j5FՉ]D*"w2[Q! #2m8jMFUÑL!saiU3LAJ2}1AE$?PXkyM*aߋ2 TfOe=2R5*&ӳb2xs>`d *f L3DyFi:FN@Ҙ`FwjO P\x Dz6!r ќu'47>sOQ]eQ?jt 4e˜Nʦ$BLu]F%WNzNb֫Hf7lc4|ޔ=Txs: Lyޛ[aݘsmFh! CA!4GqD;drB@s Oݍh .$ ʝ)ҩ:&޽Z&Jx?a*xzp[/!< PENttj$KrgwT34:)ߗrwĭ^> {ƅM?ى&V17Aj_괄3LhToXfԺ\?B=djqv"Hh3j@gy~#|*`=frl ziqϹF$MStޓSOtJm׉17jJ߻aDn):g'X^݀6s7xsiz/]V{"6/>Ӷ@+#"|k_0zm~Kvqu'ܽZ kkqdA #35wp=~>bN;co¯Lq< ywP`:odI4By4C9 iٵQyX,Vф b̢1%mVD!N+tX45DZx@@^M^B3)\^ZR>ygՃПDEWJ9NLMMuZp8z5o1u e eya}W*U^ELǎlБ,~Bc36{H /P&+U:f*H/oB\+ԙH'{C\mޜQ(\1Z+:#,?: ZRޜHnK6t9^FrUkZa(CRۦTӈ4K40JIui)+te*/w,FScP ꐶsef讎eMJTksJx]ӝlLj c^0ø8[hZTbpl(|Ggd]0/YmUT35\dOZ8ɏ Q4BfL42:w)8{t)h-D}k܏^}oGqFh.êtnx%V~vώ)յE݀Q]# h8g7F.j'U6N !! Ӹzq6yNZdu"4pШ?OG8;|G>ђ$kO8JE]Te~Uw6M(d?4Ng:-?qs r?d47c{+2;Mtc>tR#cp64 Ri}8bLqZ8}kWAԴi W??~66ABM$&B9NSvLM$إ~hS,Q⌢ i\৆JMRB.gx(ZE-X?^f\3X08N#k5 $ERBz@:Mb4~t _T($[6_[4&r6l&?3⳱١2p'{{L;]]Z濛N0vj9EK[ˍ:^xӟ<_S̵q˸݃=S}\}yzrST5Mכh6zXZx;vmsD %|4t ℣>!fZ8|܇IhJt'3\XYQe4&Tz J\Р~ :)DZij 6#h+5D4B40M\c>9+~yy&㥅*޻eL dWݢDXtx!r __CFXmyr ax:}1ѭhk}t|ȆsKWКk}a0Rbn~G`6Fs327MtVAm-W7n]+ceY8Σ7T"zz2@ECjL`L8/J 2J~sŒJ /#[5N->SWhFj@%Mf~sWF1 +Yyӣ#ԪUn&| k0GY< 5>4\ }Ze,&-EG}njY͚ ZkvSQG XXH 6kLNyXVj>2gtQzV ܜnX/nO vr]&ipWPg8BX =.W7vݢe*D@MzSQg}4i5쾟:(yyIuQ kN-ys_!ț,T)&U ^k/`7/d": ,P!yj2GF)ڡV2(an$#/GQhSd<)~rzJXi?A7;̈́4޽(|Nhdڬq .̦Y>\*/656sFD[OG0:ɸOvQo7P(7ўyspk)MAC^ЊAX/fmbRZ 1 c%FSy%8-86læTIQ@UjQf'Fz]=F_C<}= FB&fbLi?%NӜvēy֧r]bEi2%vLlV>E5)񌵎Q^Gt\L!vǓzUݪ Uٸ2+z/BzRp86[~+_zUxP^!wՕenace W7ѮPUM'88=p2x|nO]2r,bҧPj^Ak"<#;CZ-D#,[C~F@dD;o}ua QJ9`%x%vAW?5]BRgq1V01:̴ZBoLڇxpV nsqB.D9sx=ױmz >vGz9%=fkSI˃DZXb/hVB)yJ{5EW|:$0J:-}e*/sVDƪkf͏8/E+b qy;3*ukrK|DYKτD ;<n^@,jd'eUb\eXGiXY4?JU@+I (^J :﹆ޕ,[*$.n)' u;S;JM>p̍D HMu]O tihmMdvrN/jZ~޻] zߟ×~W"1;./*L(H31>L.yO*:PG^74Q. [}Ӣtj=329]iqz[b*'L܉sYnVs e:>ܙ~țgQX^gqDk1ș;eU)/,Ĕz*F$;0{\yj7,MhRO=n(et<Ļ;[x5r !!x hGcЛXO!7vqf31zz xvWeT5jUv7,Wڸs.bEHg)v 4X QD,i_Ʉf<`yaGǝUYm`OֻL,`3xtDc/c6TF;AEcwE2бA7 Q9K!gnc}/2Ɠ.N=>G'lfɔ~ocI3-D62NIr\6^f͎DۦP48$7aji/tA=Thx:Q6bYîՔM wi"0lǺ>R:$rq)9-u?5J76/߱VJk,Rc"c09R*ޛ*8.~BHF5o,#"b91A4&%WG8:W6,VT[Zt4Z8g.͜^3ܞJ#xUyxi^fFDnE~E侙+ǞȚ^]]*,^tq5QyBQ=^29bcΏ-.dd5ώ/|IPsP5 .U=NMNbBDi\C&ix*KM5popooKsXj*%~Uz m<Q*"~TGRNؙ8 4`SF4Sn2i.f1lb`G iVdz4HryMLh4^@-5#ʓG6A9H~di#fBa̸cꡠ5eLu6 |?H䁅dsRw8ܪ>B3sRGPxpQΖ1c:Kq)z q*AT)";El |mu 7ylEtz=qd$s9(i6xwAQbѪ71zU6KsvdDMӧ$r1i1\E>GQ՛sJ^uM(Z]2W~q:CᢔjSܽ>|_ޟ4ҖNF#u&M=a U1j&Z.V9闚fVxM !*%| κgܠmmmc3khXcx1 bDx=,,V[b{ Gvq8Q qrzr1vu[DIJx~:ƃC̵8>yTRj"jfɈ~)#@) 8Z ( D҂:He,-2}2x NɈ* 1$!67ױ,igϯ0*JoZCjpEewe9}DxvLfg]a]2E>DӦkc14PUH28#g`U r?=MD KP%6jkjhx_O1%<>D>}zp0ʹXT%L]\f9俗әQؾй6\in&PRJeK\k3n֬;m>qG K!y,f5lr͡R1SMW#hfc9L NkZ>+ٱrEr>slPa2o%Z]XD Nc:a}}P~7s\Ãkk?)???,m֖sZhX|!YlO7!љՓ( x8 CȎP$[لA}< Qϓ1q`2ud3A᫤vd~F3qVϐIc׉<*`>۸N/0|`ѿd}p UϠhu*6H@o:jP&Lqhƹ&MWABW枘捺[i]sZP/!(&? YP~΍ګ|Iz2Li_t|ox1 ǞLS %v{;z/ r~y ΢1a @jn>wdӪUcdU N'՚89BpfД'7ژup4"(Uq61V)cMݽmll^hQ%윜vsW)IZEMxݙDH0&NNO}o|Y`vuy7nyI^WY#0ahvhoo^b}W뗱6v>MM:l%3|k_Ƶ_[˚NpZbeSE29C! *5:toKzۘo==E}nfFEB_CxS.&/ SFlu)b[h9\ G],oriMxVm}wXG;Eyΰ~{;1R(UjƔ8?huBpҤ 29V(Q,֩:JT5Ų68^6]Gz3imACA k^d"r,C+k JrDeΛʬցT;M򊳰f3u8oAsvʈ5H2tB W%_!6%6W1 gz ġi`L='^!deͦBuJZL䊭 }ըߓCu@ jdI#kn/? 5}hBhL^$.uCӅ0( @'4Egt-T{=5EdJCutaqqcr7LnwV2w #Aؚђ+nV+YjQoDսuwiƪUq 7'̤V餢 b~h|~-(B`9y4i{6-.(!#IX9o:Ts'D ;>τi8 -50]JK0P K؜[ş7f#tn3B+2zƃƳIfJ'1 a2, L2!'z=u^*S:BK>kT)GpAFW ,zJ@W`=L./-U):3͙h8[2lC454 ]7IVQtB "WR,.%z0Ymc!Lx%!&XYE]̢>;d;$^z&_wqrvO|xsL{$3ԫԙJ9{+w8f }An6丑V677qttv5%֙nqL8Uo. 1*^S!{F(ک[PB45hE!zs_Dt2Fj2{G^ȕFμ΅9Dzߚ`4z6Rץ+)h7^:#o:f^`ʣ# z}Bf32 Õ79D"g_(𽱱~ W.>ų8^y5LFC%8:9b8!kxze*6inr#yBx1Uӄ  jEF)J&]X!/rt5zYAlxhX۸m\tw<@E=͛8>>hh1QhǓ\te?,3}:!cA%SbY;4mF|rcg\l2Sf2mLC%ijRu'edENgb:XNjIHj>i!=GӀHKl9ΠFbmJFDFh *&8nlldF5K"Us4O` sEN"`gt8JeѹKQ[ev.!͵YsAnzX@ՌQc>?^}R51NG ώ[@ak|e@ՇxғUeb2 ͻfQ3Yk?ul\Ckc0+W戫gYWЯr!~ҠIܰ3mMY#^2 (tȏ&I55s T4 hd{FDpxYQYnh DC38ͼ'|`Z9ݸG*,J|Ki$ۧyC~#P[?O@6#<4~XInAӛ*kW0PXq0BeXDjY,ϡ",(/u@6o@u?(\ʱAJ#kGvM~~U8Uхk][Rэ&A\9І#Q6& %\('&FhA\kbQ<>s%lq A4+1#\t?{Ny!3FIh%r 9gUD# K.NfJed`Gu4"˄j%Dd=3u>ƓCm s yX¾ "#H(#RRE U$%7@w'z!5%CYL1 -}LYbS*."gS%p4}.0zE;,w9Nq$E( * >LCrrpVvm)be˗8>DWƛolp( huj`bz5]S3ߚauFK˗''ܫo0e((%QE{V1!S{Lac2!h(SFgo ʬj~sx>`a?{oY367OGXYZwx  Jb4Db6 ʨbDZ㸠J}]?~Q/ܴ o0jGŜFM0֖̿qz zՕy z+ #ݓ0xxdcQKI9X/c41=Id>iH< ќNF|I x !99,w3RH{X Hndz%im&vI*yթ2ߜmऊ(Z0(Z1__YHSh6K봡=;5ZcM\&;RWl8lou\XrD'pՌfGsD*Z/jJb23974Ȣ2d5]9l<Ĩ^i ("TlO,EKh$S:d2Y#L@&Y%~ol5  F*$LVt,7GuepCD5Gֺ}fa=rἳf8F_i @ k \->ͮJ@%ΤsI<3FYtx3U+gUdy՛3P3ʜ7I:ؒasz\)3MY+nIp>y%XM C{>Bh"[!,Xnp@ $J1ro@7iDZOJ Dg6h2Q~)Q\/lgh-}M\3|5r?ܽGe[zPu+׫W/t`' jLxbDz`9€ID @)LÀliK2j_\^[{bj"it ;JlTS VŤ 'M]i a|:)fF%pM.D%s'}dF178Ãg?b a_=MVlSa,}!7c2 h7;Ll7aNNN|nemkx͑(~f6K Vߵ5L]X3C-Y`rLRs@A!\K9t^v0Mqe>>)_KD+F:%$Lf})!_%fB.9$utL$dн=1j.߯޸~;{hڭ;[WCRQpa2"qDaay O|/qTz /_kS%_nc:>lD9u:k`ER"qF@׸Pz%j Son xViOh*x྘'QTݢA!6 B)3r/vRD : Bj$)J2p'ab?q N:l4f\u&hp||BZz5js>fx&;6"#ċOy}8F*2"NZkڌ$ҼĢ K?K81RpMrTB<`:Uc ϵ1{JDMfèu0%7ْ6y bٳ9&7C){ڈA= '&ú´Geh)\ǯ#"yu:E;V=2xRuO&'(q::)Zh䙪7^+[In2U6C?@mðP6y|}AYuC̕6i^i>C)'Egfhq6kP.&|ChMZDž^_kz֚ \*/5[ ko3'M0]+oX(\g&2|, Дk64*!Hu1EP53<ל,zI(i/ XZ1m53;O& IDATFYr^n=Nko0|t_m_3]xܻwo *xsȁ@*xsє8EѻrNY5BTP[͜TL68x x Ԁ!N@'>Ք\q]y E]KCSjq *'Gc Ct4?03Iz=FXP-b8SzDP>Ikyg?S{nS̱;JͧFڴh]|P vNZE1 CtQJλ:gEsiBH@j hqiEy9=cT]2eCb۵Zzyh:·< jMtmU<'=FьQM&؉qDXLIEYIgz kX0Eh#)(黛LuM jhq9H=HlT Sj,iN?7=79Mga L-EєN ɒ]+!ªOLX (m8꼖 45Zc6ެ/wwPwqhX;pfgx W{|c\>Ul]Cj]\^;,/|<<~d,'B4Ͽ7skx[oa88 7.'X_^A܋15M$ٜ8=y Ojoͫ|W;kNͧHS7!8`8Ik᧟~[7yֽ8hg1B4k]Tkm>Dp:|xou&DhW1@y<=;HC$>SKYge*;w?_gm- evLeO;ziVcJ>L6g3)>φ\GB"G[_Of3D'hnʭbuy2Kk٬Nj`6'}^kUT[-$f1ls,T#'GX_L]b/FcF/߃n'gJdYVAL3tM+kf9D8DU1Nfp !cܼrGsz">gJCʙidn@(P أ8`s=#K\Z*J7|W3J'[u*nD˦٪# &dݑ!uEA vs%{|ε C"WV|q#U @U+]}IdJ>J⟻Ry0ӵm;pb*:gz&YӴ v:.HkELs9/N57(\02PbMPi, UZKxڭʷRYj #Vٔhe|YL:@I&}y3/= Z[VgEo[2j&f=ekL Zl%jϓ+ʙ~[MK|_b54@`S2W S]R's+RiP&u}j(tR:#PRɈ;Mq7I?icXVхQ,#"pna~HHӆլquuЩ,r4AF\aATC\? gxWw@e -?'$<"EjM}2HYiOq8S~#!o L*lF)ETk@&1"HL S\VP4gN}"rc1*m=jxn2%o937.jr/L\Zt̒DT>'h6g:gk(i_l8a0ϰ?cSd5> ġf+l(BYaJhbW +U{uT !ST,yyrd"Z2.ނ=1dk 30.fN#E#LeO=D*^2rFy X7 FDM)+(L*aإ|ߑp0x4_ay.^z o}FML!qz.4XHFT bZ?l,X8X² se(}'O>wѽpzvpp;t5l^Zj4 `677?ϞemddZ#ӧ&D:†1zs @XmRm`4q.mG;qu ;&ĽcہKt#tؼ cL8qnj8S$t)O=bn4c,.]L 9NN82iغ]2\} ͅ-AtʹGqd/_bk \`iiO1=?Oخw"2InܸNSg?fZc aD,,bm* p贗ZhݣK+Nb6Pi,`Fc`*Ub vnL f-8qho Nt5juԪ\.^VhRI3nu .vv EE gVMUr);Sb0 UonV&WuFi̍h@E 2/8@Yu܌*'dvEףL"I0^@7#~E X݅Ɏ!G bg[s9Rwl碄#osL,6ÝbkS t1zqV9R3QϬhЀY&SQ@mHT`n2h}võܙ!inTkgEC?+CLNĊf%Tkk, e='ޅ;J`!zT0) _|׫b3e 7df_.9SP72Jqb>q72MH J8 k;Dnmm\{Pk^m0hV51)ܜNysN +cgӊjJ2;$ㅖ-z/r-&-Zs&V2ȬKyMi!T\驩sK&Y_<~`#&s&#<{I24 BT1*] £g |=szO$KY(#ؤY;T`4_T(_b_c-)]ԄI[[c>K]*y%"_N!W88cdr}>&!vr]VѨ _^<3dS1KS<4>cld(f ,FO};譭 Zv&VW/qap~5Jz]q[*V7`dͤG~MTh/ >Ol-ӫaapN=AF9Q۬'JRgU8L0$gX]^jC yZN+]Firp4BNl8FZ4Vkd3ޫ*_A}4 8::;c}sų CllnVvlVlB3xtѢdBdd6 ~5 9REkS5e:|}"0W!G8|h S'SSnIG !.QI5E5xL<lRF}YzHHi6 $U߈yG__KF*}[rN% KJ8uw7 FK1ORG@EC^,o|^i9",]{kތx9P-WP=^ r7W#؈n DRM|$)Ufɡ\q8^U. tUT6Rui~2F8)ϢqYY^QGηNΩC>4AXa[$r=^㬔-3_dcI&c).?'264G;T,uZs}0߫ԼRzܟIJSzWWnLi چEg<y\0&NЬЬxܸy ѨTRf济(TIxԏsuWjfs>|hc Zf8ӓGdb&n.]BT/4wkJq8*͙*L+5t!󇿆Y:SBѬLsahp; qɻt*Ռ+JT}fYJ&׼zx&JLrhNjtr]Ri8Ԭ[",BхLwĕ\!Dkkr6-,r$FĈ>E^+CRaS2(5%{qE;YR@snbd+r!Sl.SS.Lr7!1=w8LI$4,ci1I:Ee06rW.e1 @lh·;Xn5ЄOfgHfY+VӹBŚ4y4Pb>5O6'''l 慛 cƘ܌a9Rk檃f;pՍ-xN.SJAjq5<x{غe yOyӾq_׏ټC0sN75]wxO_ܗyD{ᅢ/Po,ͷv 7ۅiTTdDIͦTLNes7ɜk ֱxFs׮^%fo;S$cfc%NFG~yˮԋ kp`ڈ!oQ!5,`!ϏNṗGx"JkXoR>eD4;((qLoo5iIY_Z1jAD &hbkay%Q5T1+3sׁ:!:(69H3v{n(ONG\|Һ@u2e9KhN]IYGS6W SgkTBk&٦LstR[ݴIʞ\-3mn >K{*Ny&fyA?ٮas.@0;_H[iG<He627-ʬ?uL0WN  w,MQEn2hŹjiIu&Ƃ3aӁHE,|*kjt#%DQ6FF.(~x`4b͠rd'J?w(sTM];hkC:B%lĖL+8kXyRyem(h2|6cZ)3-ln`o! ҄Yaee 0nn]{~S/N؃ !Kyq 17q]_^A]M#mvXf0,rHĄў2j ZP =l6BMBSIkc4beiQwzv,|ʟm0?_bn^:Bk25}i"qgJ\LDsۼ^޾}!.<J٤XLD)!o4ԏ2eT٩;uLU=$ Yy r3[e#U֢qbX]tJ_ό/9(UӨVVg%AugIfL,(@zQKN <*vW5E-Yr),a%3nE'3yaGj&Duv-+<꿟)կ0 .+#F< 4]=4VZk뵦)i^- Dy#~ b?/:2CaC,DV9Uqf?C IDATVИ[b)d5(Hc%f1A YFȪ*aUCAb{dq=Nÿ?3zPqFSzrW12Sub+*hVEN 8ɽM+'& jF5V EswGKU΍kXM2R@lպ J Ey*KVgy4޷oq$ͰLb}O" LQ<h5#1#TL|S7r͟5Ȋalq<fRͪת"+VSn1 o~! \[YsZi#lX!‚{3C62'Z[hcjY8MG ΢1eA4#Mt6G&xnWViQR^DFPBn[\RlO|6=lGVKL["Ѭco Hc\槤OЪ7 3V|fg3StUFc'IiZW#7Q6q~~;wbկ| |0j?N7s-\ݺý}o`Y;K.ˋ+ܺŔ( ~*7r6n6Z _$q5xoQ:j]B 7_Çnp#*IRw4&kΏ2 2V=f`4hA!4)Ĥd0E'ؼ(X^ygaK/wPVȌf A2!j vրd6Mz&xQk`4:\ 8=9rIJ5tzMDnȱE2PixkϥθDT+-n蚧k?E=r<3)[0aO֗!l0Lx3Lz~$zQN4>;`$ u U410φJ_00ֺ0}9 k1Qs1:>m@3ȝm}ĈGȬ:X`ݷw1N0y* sVP{9/?+c5tڜHѯ (=_3asTfObitfgSeD卜6EEYnҋtr3ei%/ӐK%fI-S/US4bS5Ӿ-AI7֞9'&I 3<%$(3v|)Eߘ|(}, *JmzXm ơF]\hY&Cz] J4Le'J2ӿ"F;$'<9L2P$[1"9`] ?WBak1cFY[ 02yu{8+M^ˏԼ ?GOٮQ;8M35[)c(dr2,@taΝ $L6Ug:Wb7E2q_ΠЁfWVJ*9髅Vg)i@m?{G /,:LPسT蘱/4]f}b 7lHU Pt|6! ~ZӆQ&PQE}?<.^AjS{)" ]8j~i'i(|B6hƔy 8X ̐KjIM_fO䤛FT)(#};}1荰KLf͆<`!5Œr5ԍ)FT .Z*bA4fj`t:nC5N #j2^xiRD06hWL!/,{Ue)TFҙ L>#[ĵ)5դ:Р)!98)TᑚX#)̉C! )-&լbZьsQ@"]-Q3=Rܺk=4p#m2Ґ܅*xcigA#?b7 +8V2Ӡ!|>yrMG>9;v0My&m>5xڡV''ܐ&c\v;k4kk0L 2uxkqEZKYe*vmOqcEt 3Fn E^>*.-d3TU6z[xx$*&<0{J%敛 n5dpa&f'S&.w~%SF; WTV.]s`5|t-ktIüdh! ]0RjۭtDB g 5Z\72i'4]牠4nf˩o³GT@%ݚoŃ!|}DžD Ek"ֹWdX,,/!1gӽ|*9ѴO0qj\($o2I)LԦQP6SGnmXy=*5a$Tm񩬇lNN(&4YJ}6f]a SA\&y>|9|LM/.S ! ͩ&?h%:jd8z+L?ܺ+xwgM\]^am67oA<k޾1QKU\ZttWoǘO%CDt: > NO;8|v ںF0K x5!Nn%K&B[2v0cqMi0h-!S,uZM#u3x(0a @`r@QSTQ9l{F롭 Ƞ'pFĈZ^$+#5x4Y4色?y'~}}G~}G?M}ʯ*666ٿGba?{twƝx7F.VNC|UF</n4ŠHS8 ; {4'MOJͫorijԶܦݛd4FvO?@4|;m52H,(=fO%N\NQsiPRENŚkb1:T4WBMͮ} J#=,b']jVk*f0X 5a=kN#v5hM$"1 4nY%4kdB0+Sp|{-.J{z?j̏1VCr|Wb;I3TFϔW2j0g}L~_koQ*Mtuckkۖ(^1vfb =$^F\]r|.z]ϥ5ğQEϤ 4z\>5FLkl s^0ض#ߪ/1ӒoĬ6jr|:f@e"!'*MJj0G>1op{|50ƥ?S?_k)i)7zKt4BRPOj6Od- MU&$(Pn?' m&Q0mifIM\ 談U7JeazZ3}}> 6Yv3 ׿GmTvȈ%)}y|,we wi Ί4Ը@_8-̬ʏ҄gǏ K:i^is%OMC5R]֗XV%.AlB2Qn+elVJǼ H'<~/l,br`g-y&cY_DX~͐\yjIFTt%#rBjԳ0wٓhg.#TtS~!kX~SKTx(68QS3r~25"lרʍ,2hNuKLS։2C@GXQ}EN+>N9h00Y{;z1sOÈ4t t/aՅX03aH$ɓoƍШG 7TG.渌gES>duek /$*#5V5@9S+b'68EtM+,a^#'&)UJ*S;e6u-C^ˈb[c6᧘@{&5v 7 v]45|c"(\޸̍d:ƃSfrjomueSos..oiUo~7d=򃇟ҥKk&u&ڽ5ܺch|)z!Qő7nl~uti?yO>"~8a2Ơo~'0Xp˨Tz-.sQ3|:7^5a-4+ƃ#0$M8cu `+lX)V9e2|Jȍ) ht=ӂnr%&S% s:ǜ8#s&r['䔣lK.6Vjpť~K=!yZNriKS0aîw9)^:Jt*5I~{rݥU9M9r d1lUcDɥECω lC}폥' wWZq'vQ[v IDATY $opeS.W>8s)_[ mn_//A1,0ס5'lKiVRB .$߉U+(9V4O8ٰ*7f!X BI BzP6MdB]&mѫ0/E( %jϋŅg"lYKժP!1ڃ(HS3ǺJy"E;ߐE(s>,%/brl^%PGES$[Dc%%3"`MMBn^Ml'c6:VoljFg.pŘ=Wҗ=:-̩Dc駱fsz4]/sQ)Z&EI2k2L,z/t24:,j5IΞמQs) ShGy5\q"c#èAJmeA8c%&zzpa_]*:z6^l;n μm>ïx,/o M;8s8?SU%a!_q _VM9QLhB4* 'OtW>Ua?gyGXXhaO1EE#6D}QXZ!k['}*'A]`8A%&t}vhm:BX4d|7ԖR8`~be./x`wy8+9Nժ\`=R6X>QbHϩ'SI[YAHcjfr TƜLXT d#״+%t7P-j1KK.1qz]y]ʲܱG”6IҦ$7aQޟGgxO9K0ZCLeD:cwOL],,Cؤ+:JA-v{sn5dJoթF9Λ\h?W&L)˒&Q&tXxZBV+nO{S-.|aO;jw\ԨȻ":4\*''R2Xђo4cp7Ci5|dHi5J?Ͱ:QO2 jѝ#ZbiME#*RWB| =S2MPIJ4j?rE㍘9K>W 7KǥI+ Yqߑ.)6 w diCj<jT{M95^_*O'flJo sqs *hT-涢&,s[~ dt:M*^?{4g]7ϝz~,Yj墀(KdL$IP dRj2 ZkȈjJ l>3B+52cJ(j4SfJӈcD dА)2:IlrHMJ{\MrR޸kcƘGǀcu5 T۫L[?9:֥˒M7}y`qq NOpmlp3.c{1߿:)AhEt8M'x: MD!f;FCMԳ-0?㦿`mC|gvXPhgS<||ZXK˗ jt"D~ <˯1EJ0{%F秨V8S%N^^AbQna<~.zК$@MG36SΙ Mqrfβ:fZ?;ti29C<U 0rW:}^㚵˒Zop!=yHk!_GH ~Ro0(~z÷NtzWI{~LdF`yݙ%S%EA|qH74k>Șr++bszihir7~Gx͑bm^1ߑnKJElb\™<YBHs Fnǔz񱮨;}"=j ,\FT0wI赕NMtͩ^s\ oLѻ"K(O/JɛWU񴅳-rgge.ymt LotRviɔҊ-{!JeΜ)"9wP_{XrdSwlZ>Kyèc~QZOW2K}? HGhz &0G3mG{굩 w;$Q D e[JhaJ<7N=aL)%~V#Sm)ȵ ̲/`ۿ?SG&/??'oWWg*|)t\I]rPvn(M J ͟5&׹X[v"k$U .<] Meiشf4gz)7UrÖג:4*]dX{|w9: yF8pa8<9|?ejhՕgxxp3 Ѭ?0Z[;LfJ ܸ~ۏOf-FUC^5W]ý?Prb ^ aRĈ o"a t^]BNg|n:34j\z @lTdD!dj^|7h:BCWP͈`Wso^gr#ySjh=Rլ~B(tYcx$TLzGfR 3(̽mnމ8BmA;#rJ 4i58.fvo S|K6E5ԣYѸ1S?|;DSZ<VQZ3vy/*vLyͩKUCΰxkOM3_5<&+ӏsk+d9 ^q9Uhz2tzaHv24 AIմ./42KEρdQ4/{$I}CVEWW`w⁠?/' \ .l#lUݥ2+ufhvu%iXVs>e B/;jU}*Ӂ^ XKt2 +z@D:+r M\e' aibUER9+C]Ylyy.D]A,BFnfnyePoA75?}hԌOG?3Ex%neoJlqDn~?.% *dI e5#nDL8Jɗ| E7)ifʫT0^i_UKh>Y䰘a&QפF ]9ƩeYj[L!I[?1!49% Mx tO&NnC {E3 Qi4@+VY%@I6:_B$6Ma^y'U/umd;Q{SX4vԌ[si_A;!9e=Q3Ŵ5QSB!"F7}ݓ[BQ8+42hC)#lM<[QK$M|MMhO}+ADBȂ2ة(%ġK4#TnQ:]αFI kŌ6#2L,zqVʬlB$~HLS psY2E[nL3BYcKxd:66釘Am[ 1J˔]*DhjHw92BR )PƊP3H( L$$(:$#ʼn:' ?Lp1B;i[G) cNGD0-=B}DQZ*-xzz*OS1ÀG?~""six( LgSD8[[1qr'dDEyt!./.ypB/(^g3F6V+x@YJZNw9ob>}ݡ !h4{=t:}O ?w9}1_|/OV2`1^8(9~p}pni9[7%c8ib|̍'O#o9ӱK"zwkn\b2:Dϱw/^|/8G6='x#_Q >*[ggKxJOrF6'D 5Slc2:b#e6g|.Tc-"O%+%5!_QO5`fg45S޺C Oΰv|mn5u .K =9VHh~/^gP0lbN-g6V܋Y]t{]|X56B";FJo#B5ts/W@cmd gdu& IaF2mK\h04,0+Y&FC)rJ!xO(] %AҒHȽEToŠ n8WpG*B<,#Ѳ@}- EaW-YBNba^ zBN5K5jj1?a|.?ҬZ*UuńL"c8! 55U#qV#U#6p{i _2- REu/i WV9}^Zkn,⛳D\㐔Q$5 e\Py$HDfVkXf];Jf⩙X p9gƍU;sڻտ?oMs- WrGpss+gd9Z'"TlKY%gUxcE.FTKqmmp|<ѣ$2e,5! {592J/\M]D2]}l ~l_&Ȑ7Ҫ5Cw>Hcb±i9*FXBni싸IALhPJ_;m, ] 4T›`0{j4_ M9 s, Y"3ļ*orрzt It"ll Ѥ-L.n&/Ϗ9Hpow_LO:&GXR>"EU[8CI}) -D^Ę, ^`gwlEHȄ)Z;!yS"͑M5ˋ\L}f:iS -1QlQ{^,K!%6pԻ)U:W^ol4!6kn;"-Yga٘#&7Vz`M+ɥ>+3P-_L7H$J|s[V@vf?8J)5`bkUVȉ6'NH3}ev4c`TSvkXLu? ϒK-؛3"=<Ԝ 1>>5F_U# ,hhVW"X5*Us,'o%ժ x}5ǫ#EpKF)! jhU1_Ӕ7!0Ȇ%GG|DThaJ(2dq0#"sbh좻xN,:G*ؙEu2J%S n=Y>=c6z/ܸscW)4uDKFt-'lvKyNYs_iHTr7_&xyp۷S eUK<"ÇOqCd ^ *Ҹ_Ⴧ ?w?ʅKZx3tsud_}_|!|>H>:"!*avem<5pqv_}_|2gh]wqz|D=ndWn`sc3fׯE2%'?-S")W_ֱ~'Eped$ ? bX_!Q +QL|c6B7!ϑ-򠙶n'ef|Fkɖ%FVWz_sZ$W)r <α!dT5MRxcAgtxF1p# TK;\O[Ge~]X)Imѿ~s3ԄMiC!=_mJȡηJuIFIҟDn ]P:F[I27c( - ;Q 4t_u)p;}d '$Ya3x۳i."[#u<2@&{l`kZ9:uՓWbL\F (BQtR]fdUB*mb$XiBRߨE{F'HEcs0_3*Z*se\c1-G@GN{'ǘg3, >$N9^{!7 .#\D\2'-ɏ~ğ)]n]h;~Oӟ(xs7ۻunܸ$83 ֝\Pl{ӿ n\cPUSL&mx[xloa? PVlյMƧ( ^{}0hW8| T ;;8怜Cad:r ܺ{eوrrnsBk5h^^/{xcyp]Ҁk]L'# ] +eS.t9nDVMH@(\a 8_ VW:HrMj3L^0pcwM2`hcB! Bv7qzzsܿw,OS<b1c8\L}dI xI#6}K:O123̿陒M)l5%eZse 5IxEW@L/>k({{\FR dgbG"nyñ~(4fbe'h#Ir(W4dhIc6m2-.8qsk?4zHǎIֳZћr}}k@5 Z[=OpzT,֜S E蹠,=G$@?O܍\DHyg IxqRoY Ш͏$mz 6қ#ЈOb4[Tⲑ)ۤi;DU8pp6P@=Dsah NQ_89m١M]zF m}^%@^=WŠϢy[3oTdfNASEA/[Vp# lWjxXiPC€TDY a2U)3_*ni"ӵi1Ĵ[)d҈%(=UаYg3ie.LETI2h.%mk׮-" -CEnyWp\Ĵ;L{D n\ XuiJ&>+xla HhLJ7wh75mgxsnqN[ˋ33V铧Ƹs>ϑ-:?>}<{n`{}6._(N) _ ,(b.JKѭݎw<:?E9>>[G_`>kò)esVnaN4ut|M?}瘎#_y<'D5NҶl#%h9u̘KJqT0ݶ?D ~ l4ḥ+.;"-Ok\?^kD1'*!y絵!K؍W_{[x3F8Ŝ-QiϞh$KRdѿ/9̥Y|Zy] j1͵a)E%ݮ:-i}ǒ$%q0i\].U(UaNQBXQ¹е:J>'[U=5b%PQGZ3wi>6t`)W >u=TjbVCLW#Y3reF{q GM iJ5SX7}uޛ?_l2"f94^KUINrRb11lHt.G*˚vn _0_7ZI׋N[13]fBI匿9iz+E#isf-VMM{ٶBTFiW 7=-/SHb657aMH5{ t]s45ܞ\1Z(p=ϱiA>\TS4 ՆƭËL# n"'zڨsJE DڤƾAF#ȫ;<I| xt$1礰k9)s4Q%.^Ot/M4Q׌5ZF[8=4V2*RO閌u :aYZu,k'2Zb_b ;s¡g_9b?b bOK,%+'%Xܳ:NY-(1iűJ.F3a:a{c]|N/H.õ=.a:`.;;ѥv.W;O$fk{6VWFg鹡v{gysٓ4w(VM&97j#&}D6 n /l4$L>S>#S@z-2 fqİ=Qb#װޠloic1MN5qPCiyUDBRUh0}l#^6t{U3&*42 c(хH9A*< (\Phkh4Xx\=׏=P\+up OY6 K~}BS#mvSiu5I2pڿpy.4ukeCz=P_i,6ESөdHYR_kkz x(S?eqi^hW,5 {fda2ihCTl;(y7M9Q>0 Q 7Fx'h4&g0l- IS|M[opt2 яY%X#,өsUͫoKsu'3 >ޕ1%k:NBi( ^Ao|eׯ.pLYl:/:J[4,I$O.B9l"Nա1 1 Q 뤕!ŒAIZW5 -kߗf(kd5 L)x_ɰO.4bi)I LF (e9%.\`D鰽Vt\b/r)45)6qT+ (˂-N@΄TivkY7NX̄ KXM;MRr4M^M<W}6LJb8,,Libf臈B* )T&w>D;SJ\x; 0#mLf7rame5q.nαQli69P͹q-ɇ0_TX]YOڨz@b4 xk`mz++Xwz.vV9B3(u8K>~I4-[,aWm,NqiT yˋ1# ӲvÙ'cֱb'б{t02 42|"W]LfK%i1=y‘H|J da,y#q(: qoK4[[:0s;2W%hYjV95Rc=YUL],qPy8F_"C̄Rg)R 5A۠6;uW5U:ҥIYGǰZJc2p,vzn-%:ĕri3E1BFzkV"ʹÕyk6@j_ Jtu{:LsxQUe)Or$F. ~lܯAT+5$%,3<2,XB! [A$LMb8bo<[vLO6oSBZLLf< In䞦b= ML-[Z, *դ|M$^E#4ĠG4hҖ2j@MD>;crC8-0guVV֑'Z3؎F( Vő4'L+c^YY q4)wy9/qzvh7|ǵ.򭷾wΒ ]rm 6n߾_0u-L9UB{UװO bW&moo_GAg̮o-<|[=nZ6w01-*ll^g/eVQV9_"C{"2鰳wloe{;µkM'MV/.x',гr)F'j.iprz$|63ҳ=5rƲ]hX˼:`-9d%/y⽰~$*ƒ dnL_;~>c1buom?GQO"Uey5QF< IҲa /&)7 1RI*FϦ>fDWQpTοAY޵N5ZV5(ȱO0o 4BsMT+ 3W2Y9T7^tJL4RL8'KdIa}mj~%M4stM̖9fy|9G;qmAvU&Ϫ#6&I7qJTĥT+oۍ:ݑjplh{KRތٽ"%$ PhJ.@-:МB9J7 T N]9^ِźa.#/lqbDBn"*2Zaz>z 6YjRf>j*.LKtCҔX,^똳s~/lrvzaQ܊S ? jcY%( RKSGeO>@pqqK:Ϟ}ʛwU<~N`mu [[`ágm*Rp:" zie?ט({& 562@kgެ`P,IT&+[ub5Rb6<0+_ , U0S8r+ꁄmӯdPD {&h3YyײGCYr:[CrN(yݬ٭xOܼ~uiôFi qƓ)fI,䣏P@Ws琵8+JO0'^NB6,rFtQƗZs̘ke@i:TWemЈuoC@"M_}E/*zе(2GAHc4V&RyT CU&MzcsApF'Ieq)>4FW\rfUȿf#F5FtQ!l8 5*;VC[CNЕ"F5>S$PlЫ/u4ɮ"brjϸbo^1R[q٬Y46p! lm=l"%#*lƼ|BD Hz:`P[2oq&OYj0dMՑcjI px|\kK/ٝę`9?-Nq:-B8U$Op F&iVKJill7㷰ӳS~>$c%c~ɇ%kfqh0a{g}~?GԄ\R|| ?s錑B%?{=v+xytVXYxx|o}緑v h$/K2t w tc;9cC 3N_ 8*F|6XZ)a`ÕU?%SL/0 & g%pq~X< |fsܺ}pVc&%R&Us,1-蚯St ..lݝMٌ46K^Ab~łLW1nyO {666oKv{) F׷_Nj/q]<{D5g'`J&~oٳH9]|O.!le?1-L{NFxb{:S}{` ^=n} {ﲖ3^O?Brf o͝kX.8}6r~G[`q31ixi1F(_"γ *.Ss?Jh'=6ַn򳖒)Szz-ȔJ]~o\y3ifn갇l:b0 vteeVVL'V2`"wkСe2C & 6.҉O\ŝ CɳwJ!lz#J8VlL4BjZ] KpCq'0s . R6sF?U6J0xiJOT;j,Ց(MDˣ=kbff0 ڌA(~M`uAE+ e&dmf4N5ܦR}5̑di45gmݜ6sMΗrG]`boG mddξ!wv ɚHvBcY@ Na^SUpl^α\J>zHGZ]*8[[@Hs$ Pb__okkrEyy`ݠ'X)uN[PX53hAKl5Qiݡ=Z2#T&ZxIU}ݠ'dRAnSN|#T85`S'ƾ")N~Qq?ц1y_@zmeZsWIpj\lFT72\VR#donےhH7~џB(K4֔HcL-ը1*r8Z~-A Z&706vRC" DkICC+FKVڲ&JĘ:gfᅩ\F 6 zuFl׃U/5rN.ֈ@)FM#&2 6sq8n+}M̑b6RgFկ%XBN9 EǸ{TX:NZiuoE%Z^<_`uk `S)bΗt! Di2N&bb1kyem:b6*M*w+43JFm8G1/D>TZ\uE?˭O%ly/c9Ģ#T^*x.Bp,k5!!bC)F2xRڒXmD_A;bB(~g? urbe5G^Qsݛ  c8|~Z JtR5Xl mԸRLg=׮u ~H!+Θ F0dZ"ps[+gԎpi:!M Vqxt [x-'#̧gXΎJ2ȱֲI;g8<<@eQ}tWŴҳc|I e;;Eƴt=]{j{`M>ڛxD{88NN9֭}Kx9O^uG'O L,*?gh JJ& 1E,P(v ?#9]Xz.I_ʃCZekae첃yxr|WA _:B0i,@DeiьDVC9˥>j<zvass ggGȳYb6SDfSܼy#<5 f1dZ4* 2cZW"4ëK.Hi (=1qaZZh@<2$Պo9IGsVı칆؋ɋ~vJL#Hm]CsgۼS#ѕ@n6k=;̉>bhtZF4n(S̱ 4V6rX3X8!H#;R3Q᥃ZCV;878(mM 5R="P:t߱ۑ~ s/XiV/K4F9e=3JPg"ml dKdNVEN^-cFNjkN3,b)pS]C׍t<Z)4a#d 0JJQOזjKZL?p6ı$biPx߸O?77R᷸Pn6NNNj* 2IJ|T|ѡi{y-BKo1J3yى۶0#Ky"PR.K $.(4gSȊ(IX[ibٌ4fWycmJX*FM+9ܖ64spIp=JFM1Als|daC}R>/sT^=aןfh*xik0K"g*\i_-SDpj|4a/pLaV1R:%}%p9&JjfFOTĔȮ;jD/إŔBi-3I\6n)Ȗ>FJ;[X.&rRR32]"J- +t4Žč7p 8><5|ͭ]y g3/\cݻ^֭{\x;;[.qt,8::˗ooŋOpr9~p,2 IDATO4eb9ƒ\z7~ =DSs`}!<.m~fG:iVNg|11.qtvL%޵}TFhv %0sQ4P)]|(|<`[~:13FG4W}&̱)hІ5j y}~l]i7\@eXYIE6$j>|भs}A=_+]hWQ5wx̿ʹ,beg8 U5҆k=t%.{,k9&EQ6CjCHو^هRgWKb1&nsc(@.EKVKAvwEW!hNt_l姙/~t(oe|U[w;>zn(hK-A5j9BG hRI]yWA&9Q:wg? A~N> CF[e%N}\u<DT)q[x[CAHQ:rj.QfKthrʨ\rqF2g)}<6ݩDj`4H?p<-" r1/ptݔ\i46&1zˌp Í :WgHPf*N6"&Amͦu4f5P_&`/P,hV3HgҤ4p364.~QdeTV_qϻT,Hc'R[]$Nf|c^J1@ZNЧJ?;-ޒ$zyw5JJ#s~nkp4J6[5􀾁.R"n6qC mL9U!5 `j|>X -wiSFSj%-FMnӎU*e` Yg*2j.bh9RFF[ M 0c=W0\J@IqݍQVzd 0X3}]ՙզS43T#$z=f4Pk_\k3 f/}!k z(c>j0DBAROW^jD ~ޯSuZdt7o_hI?ktj-jULjz=C6E?';f'gm**u37UCht-Q-7^C1V2@ߧj5se)`>mf%,JQH#$lô7M;m\.ЉSLi1eD"%޻yܜeSFBQ37,vHسVQW4el ѧ8[1H㥀km\-leC4;BA#j\[]n'G'Yųrh#͞^FK J#N~h3#Dv!i-jGeT/t|Jr+"bNōVd1\Ԓaп MLbB(eW* ڧ2ULzT`x6 m~0?:1RF6'Bc&ͳi" ̱c]Y7i).s6t:q m_zXpy~t6~)gRCIZʫ װIKKh-!}ԿױLxk_&.ΎȞ[7orɈ#5kۘL.b)7)ox sQ-ln`gk'Cz/U;pqz'K,Þc8t-?p1IGgX[]=<]'l5N1:?EBGa![pQA]Ym +xt#G ܠV 6i/Kr; 'Zb1g٥:mzFt0EI:-p>- oIs yK=D^3'f߇=}RTG H5SٖQJh:"<͹Y͠k_! ſ0JrQ̈Uΐ7;1|?QwHv b;QpWPe9&@@>#ZjfF"e4׆:gj'ݲFYȔ$KĞs"޸>+5]vzjw+`%&,$BK+ffH9i3=]6*ݽy sלQ`j:3 s 0~|éRzڧ6R' dfJ QHɯf)J'q@FzJ>΅K]Sp?_֨AY`vcEeQH yV/HT*b[EGU_Qp@TuT'oɕ\62tf<|i}>d d 4^뜖|8 *tAM'J Ka4]Bo IF>ZE/NX|!S#}b" Vf:.Nj|_UΪo ̕z#ըAJnLSU5vqButL~6~ eAkXo#'Ed ۈ.{([fD{fcXt=qXqu77:&qQoNfi4ُW;u8-~|\kGxLUlX;,2X3%[)Thq  )`9E83zz5X#êذy^.2BA9aJ>{;h ݭ-t+;=Z=4vW_}>] lzCocmč>7ҤLݻ+k\~n^#?b6 7x{b3g|V' SrO9TAb1 t-^f4{Y(ܜ3jcڡl`@ږwnWg<SrΖt;`MZtqf#4Z)& Ai"ZNyPD !i59Tg5TJݑYG:X!khN4# a5g$>ѓ7źL7웰}J!ڳQ Xs%M -dE6Pe7JqO)x0qwJSj!,FiFMxӭ'gz#i":>%{&h 6^'KI|F*)jh ,Qe"]VN E]#{uJ7KHM-DȊ ȺΗ GkޫHw.8dO+#PFM*~hG9h'(&ErRN1N賑7Ҽ92_b@d*5N~˗𒛳NflRqWLdlij,cZO i%:"pCK4eWCz#] (Rm",) iX-DC:5b4R;p\/TP$Mhji6юKnj$Ѳ5\N01e29M6d8$1\ %2rdņ܈ŕI֑zOĕ-9(EuRf\0s|ɗ4 .c%Ga͹p)fߺ!jjT;%/\fe 969'R d\#BϦ ]Bni [VLZX/J~,Tg}Fmc,rh"4bq$},q 19PF kˈJ9LEgHYkF&4d&nDy$Nb%XŞS4ZtϯK/pr|FHtS~kڝ9L"L63k!❭H\~K[ F'+4Oi'E_})Sݯy`H\(~`{?5h#*Fӛ[nŋ3j4/GMhI.SI~rx񭻘GY#Ih,RO_&8:V_gކ-3|FOF4x} y>Oϰ=_>^N޾t0m\̰`2b3˗r]Vyn/~St[Mt:}t; vG̘tRADE.8z-:pNxB"QvWC \ G2X-3^X=no ɐ4#,c^&, z-֒)d6^0є)3,mz<űIT՛t >o,]×B{DEEp NC 8GE :)iND']Et?(Sφ ThS>e$XibN1A M#{5BzhAP &A 5o![E.1D5#8[тc* i5oJeIcRD%֬Z#TLP\fU?/R}Uj E+uM3\r&uwDlګ=EꜚzyC" ZLW#u73 峧zNM >J WfN:^(cOr`[;*Qszmh,1,BB3 1NuE(Ҵ#72=yZ]SKOcS s#+ YzL !Jz%>23͈ jx4FMRVQh؅Ctl&\hRl=QN^ye&F@$ 4+}߿w篯ؾ+S_v>7%louX|6[|6..^cKPϰvg,osQ&ɤml6.^aw\1DJau+|˳D>/Ɍkō'I=5߾{ O^|/=lǸMWfK{ݯ(H Rlmoc<KNndHW8~j@&4b< C|l1v͋Sd ᆝ#L.MA]7?k޽/1z.αۮKsV̀ .|GcJ#ѰK4>>%,/CWNE ;Z}q {ɺlrwq#>ilVh5XVh7clzj@DMDjyT׃ή//pr`sGOl#Gj3}?d?/F{i)ls\O=h!Zu8X`='w~W}|5"0t;=t;lEhc=Ѣ|̈́s(@d /^Ѣx_#;[;|Ύo)_&j,!SCr撜7B+߰kVz:`wg\jk9_q]P@l#^d$UZf76Pa|tjJڬ3YǥIB6#A U"JWULًQTV݁]hb'ͯvE(9eJ0jx2ykl[Z]}6Qc-uNǩTWQV(14 D* uMz=-ʡ uh5ڨҥ+wY9MpCbZi*} 3U9suzrŷ6桅jt|UV(p(6sBc<_hTg&#!x}clp@ᝪ+Dsyvъrw?Sݱip̕qS:tQz!C> sUWtʜHqWV;@{jR7>d4G̔wf7U&g&Z\xJ/[qS*U䄂^p̉rNۦ&N~}g&YϗJ-CO&2W`0UYmN#EH4JSĴ MZͰ:d: S0 mvɅ)RF;mVa3-PMV2HY-~;.LYeQc~AIm!mlM $^"R(;eXYʘ5JGeEtkB}ƭfyTװVvgTZa*YCk0Cwzs&&:eYYSoB4NK:ƌ 9UHQb]'Bd[%Fm z8F+ic`sLj݆W6Sj3z5&2XSg46ui4Y3VF2lI:&GaӤ"n$&xzq[Gwq6<+I;FV<%i9G&x?P꼿KEx$f1%Bu-#Ft|4Ql\,^-!7^z)rHbF\FCT)# |ҌRYdֽ!")va.o&x  {ח|ov=;"CO}!Fb:e .z_} tf60qx1:_|D٫H t}Z,|V2j[}LpntVλm%2' $xx%Ή Н;ww|Δ+x}ygg_a3 ?E÷^8? rl]c5dCݝɔMN}Snk= z?Iu۟|+,k|g>|4 F+[GGH5~4nm[VwfkHF:b>xR .^6L_ǤgwS,9?ڠ9nڦőf zbB3Xֹ4XnՌײ>7lO?gVHk}^+"H{t/-giXC ϱɉ"IFO)4l'蓜Ŭ75~ W/xݣń+awj/2"FKSQ1鸐\\Kc!^IvN/%"EB-A7c*m=zo`ޚ[p9~t*Oo,Ãn]_”ƑXsy|NacBcrKM@ t25bUMbCysצ4"̤]_+6h*[CV'Ī :Mi=Qfuxb=Ҭ_FHlVcDSw r5ׁ0Ψ)l@x54#<~,=LY95%j0yJ;WĚc y˱04(MlXɘ.ikآ#܁Mi;[ Wʠ:5== ͎u6MAL I$Y/sNL.El"4+ D7c{ k v68hlc.& F7W}bf["@4!3KЏhtzx5'K<{ uLI7|se:e&O*# Fno jٳ`V$ˑh\iFh\1IGO ν=ӿ+w\74VמIө4eg cSʣӆsi-h5ɑPS0R].=KCoyr!grB:X>Yz Hٕ3!RXqM&Ogɐ$M]* RA Ӎ4n.} <7&#WatSRzPL.lJ)uF2j\]e-t[Whf7u E9P&iPc8>`*lVd*G9\ߗhaɉYlўᜋW):vXm6$1zHDl`r5_lz43FGXfJ4Fb3uuFY p­q~y,[aѰ<[rXwgĒU-4ǿ4(bXcm2D1o?_|M}l>^:NjwjH!6+ɧXmL޼v}o1]b| Kc2_?_"mw-1Fg8;t>E!#â] #uV[.S`{M#gzd70]%54t!:u+FZ\:{xkWŚ |ʆLF"h$D^ib.<@H}kJu뙊鉜 KVWrLKCc.?^%{LhFdn71ΌLhTlF{x}~hqܐ5t5λϐU.sF=a={3jvgYmְNL8V4i LZ4Ds;v1jk/p+|52 GDof8KGM'/c^CIV, ,VW5nݺ&E88:-FOsCpuWHcnnz|ɰ7q>CL9.o7pͧ\rqr%ڝsl(#v-P̴B;nW傣ĦW{;a&ǃp'\PǴMҘ.RIK׼M_2X"j<{,)6LR50qLڜL'j`}6y8딛0L5Mm_ꜘq- 4*ͪx1btLtoӺ^2KQ醄x IDAT0SOH4ΛQ"K/Qf y@SE+7 T@z*Y|{ޤ/Vֿ:I`j1"иzdnGآбw\}6Vj-H9VxL*8Pw ͤ?eNcW|]7~~vTj^CU)M&&r#)`h*e6_>[!jd CEk^7_*e+PCuOsJNB(gƂ*͘5 V(`ekmyRin=ޣŦ:'ҪJ0*甼Y6jF00@{f%~e9I,.[M$~(_w4dcU96bj"F!=jԈFE71$_uJ6gsCp1ՒT5jDrl VzOOW|)z;;Hm֕>#\E߭SC=jil,GQJ[ c(j\=^CML%,+QJ @a'@{gJ'j\ KtM vw=6b.|*d9gæT`*iBxuG#.p_G~0ipSGd*ՌD`_۽}tEqdװ: HMZ>a1YTӯ4UcBB5cfq!vxcVQ1>٠6eۣZV Em8ڒ00].jRF#ܴ#d9WcP&ID7 H0*u/$+EnLrsHqɦ(LӢ8ŷмGV\9V|)#jt6_rs\<<4-BԈ5dQQ!;di gci/|as(Q%ΩP"֜ȽF&Q@k4Od=Ұqk :PsI4I<@{988`J #n:(s\jXQ!%ϳd`gc푦arsϟagkGlWZ[H;h ^|t:Mٳ'X^b:pWqqyvQJt]NJ2}zXs"![ vpuy)h`x*p[' LFWȋ #yF IpGh* g'B=&hQRf.Ν)1.H._g5xZjT(鋑aЂ6jDܗRjR?4UR [㵲NQ96NʔoCj06>GRau_0Z&QQSCx9Esi=gݳ|~a.Zo]+b(VAP_UV,5ȷ,Qyh7K-7=z6oF#Oߕ_f#}bx*-5o]ikl@v}@}(Æ ׅσաo?~Ԏj]}S1S}3Ba5>*34ɵx$8ՏѪԌakn(a:Wc5]ev1qMxӺ˦IB(ʊԏ߃$&ƦvCtj]"s$ږz:Nj>irunS 7fdlSJUs 715 4¦ iKhvH\!d;gV?!_> 6i&p ^QWB6PkhȔj#t^{BNGD.%8iS=J1z F%7 !8;$(B)EfX oҒT$T[Ԥzc7z6E͕G̮oDzk(V@/aa\6rF#:q&=*pd DBV7ٍːl 69^ܬxy}TNͿdžC5p% ?>/8`2>s+5@$E^Jr?2B9!TT:DD4ObD:-Ʃf4kD[M vzXFŊG`r2%ш`fE0W\E)愎yΆENW:#=kΨ: Ls|ïS ѭFx:lHFnۅLhŃ%hag E׉l3'j$9T PF,HvpvZ2P7X`L" rF[oNT (tЃq|Oj ppp=^zpFw? |Gxu~Nhq-,WxyiPDaJ+%ڔMHsmtlVcv6 |H靎HTvX['ef irP^2@;FqkrqaEZrǝٯfuEd 6BiBcי^wIA}xȆk^79]L\+]aj#np**Oְ9NcR]‰^;޿6_ܼٟ+ Y>*5j29}-ZJD͝cL7r4HӒG /vpb7jadݵ(,TD GU oXKߐԻ2jɑL)iZQCǑ6ZeGM+)HRdżo*F9t!)khQp):6VȤ$lY'9q P~}p DjHqt``iC ZC6~<҅.9zg9ndb6Ʉş;FJ(tLNrćp2tN« BJe\+Ȇ9P%QOh2>bx%2W|i6+so 20MM;dmO6XCƄul4rogCBrM]L9E)a_/C5;R0^L) zl+]2k( iH1ŇŔ wDDs4"{Lsɢ„\{=|bqNF8;;:OONn%>{lrWWC6OܺuOlQHvjVHS)\z__Q| |2܌?‹J`c7fX]}/^ck)6w1ȹi4{( ֓ ;:xɝG:Gi-YޏBOX.7rӈ[;{8D+bi#>ۺ1/y{UҀCN_m[P(s@Q)Bo IIC"P|w5z@uxF_2k5{f|},-kHl-4`LE$Cu (^!'D< MY}JR2P+uu<1H)G*GFMMOD!VXUU9MPCA45o<W1,ZD4gD_kL^,M*Is|6_ܼ*G[ӄFQZh99s @- MWK1B6˥1+ _}S,p97kE#*MfQ|4eV>4u[lwqwhY>?|)rCjc n#{o/EC:sb1K= ëx%ڝ-ܿs/lfsk0?fJgoSþWNuYClV8e3W#ؤ{Gwh|1ca8͈J nSRa“,ii4_4;;X-CCm.tA6p17Kz]=veCȬ564rS ZԽf4ma\`C)ZZ5nFU}c)؈|bM RWJToV i}U+iqec=dPF m\DUlMa;uXOҸFa ![~c<{KoEEUCIzTGcezV! PL|èN+ٜҽ[fTEJ[C˚ʘK6Bq͹dHČX ӨOu4BF+PZT_@d)Ij+T2j6 ee|#)jHU!lbvx[]T׺UJ O3m¬6biSkoCB}L[w$kYN\,<#sĨl G2M iаOS68 s|T+U,Cu LVΌ FE8;ۼ~w݆)4Tw\)EdY SRʂ{u$!jFp?9H]4>(lHKC)u> GO@.<ϱ\YQeM^i;Qai*4gĪ_J>M ^(*DS4MDذ;͔*"a \LBQFM 9??#.!|4/ "17h81{"s 5X^OnT5~4`?@ Ě T 6ڏpw(!Z!d[e`<+UmTe|,E@>1K4HГq 5;[;F૗O%Kl1 |u}VBt9qv#P0"E ."FZay rX4)֥pUN٘~VrQQ-\[„\ZJL)bFlL#"PfRkt Z23:SWDE̘4a eW$ >ףAHF6hsn~\nXkjԀP#*eRu'4I%Sˤ\qá%FtN.coiwjLN|22}tϦLV;n٤/_uF!βs25t<׸|)u2[ox9g}O8g`wo[[=,#,V D 7ZX(mq0knF7C:I~]QDɅmТ[4ё>q\wcFWC~/V!sz=|h N³'O8If8{6?gn 8uFkxtGt1j5ES8[a4YwbBןslu \^]1RuˋߛqS01:36jXOH($(1@:efƒLC.boG{rM2\09M=/% [Q<Ɉ%¾\~ӰV4i>M+-dKYu­<2@V}h q%I!wDIλ" \V1. Q3pe6~S K[=/xi?YXA20ѧ. kVSxZJ`yXh2.85 E*}F uêpBn_ոS*&8VCM@tpڰE!)ܠj}]5y}QYUoble& IF vz34w6Rcs^*pPo~ĆMmp=@N$-(y G\}?ϱ9J5tlFmıY)N`:qݥvFhB1=UD5g&:K\ ц fdVEX{L5 wy?>e5- (kVGYS=k IDATg|Fic9J~)7u"ʹ\=zJ?N68$7@- Y\HoX=-^C)$*4X*  YczwFEYA:+:>GBzTdrf;E0dC;H8ꔊ4A $I69J^8H$=/ i .!0)HW։,JM%nFHn$9J8rVB@hD6(W9&ibc#-Z7zQF.L_Pm߿ u0xKQ$4HL+= q5z*LK/s6]JL <̊sj%Z`F0f\JvXW;4J\i{{GIh\Fs",fůKMBˌ59#W 899ܨcdcr!VobUe&Ǧ--7(Y "k6 #c0n['pq~M$bDCX5y(a])^|fLn9nm< ?|oyo~m`7 +7جZM[g}tr17KW2bfif{x? Xu}gHމyռCN\j:pݤ E卢o:E#Шgobq%ߥ&g0NFCփڛz]\U18L7uxp˾*J{&Yzz+mV3PrcJPϺ!Hul4[KL/eͥf&qDGk3o͖pa4Etvt̋l55`91"24d#$&XboNHby7^/opv-.LJ|nVS 6woNq'xi]|9Қ1DBW_z|ݛx!}D! L _yӍ;cv'3lacg[yV''0)PjѶG3]!_ƳMO7G(Vg8zՊM&1z;xd'#߼"MEtiB=c1$"p8P7g1v0v qUP[Nbr%ͨ 0Gv8??5j4i :QWC@R2 lnnb猎+mD Չ cr+8?}̓0Vuf/]Jm҉\CQX Kn[EWvmPgQgZ@0PW*'guMMfT6|a.j'W6LM9 ʮ}$QdmRjSG(!KBsC4J91StMu"ͨWơ '*6nZљϻjCMIbq>0tu?*J/UseC֎ _/ob"P$HY)LKtѦW0wX5$ >i wv|JHv Pc#ԙ8*}6 46xtͲoT{KzM4:3 B0, {u:~f4Rf,})%bQJ m40]8&Ϛܘ 52`ӮJ,ݯ=eً9K-3Y-=ּ~oq7uu$hif4ƙP*fd\O5Q]Kfb!~smyWF_ ^MCTCn6F6 f.XBHM<\Xeh\]*͞Ų\D#-<6ҍ0ڇ|q lޜEimb\ի Z.9 k*&6Mb6s*iTEp }ȡ[,@ޕHQCUnFUj1{Y!6L}MO6bNhh }0DGM E;qKBϐ4DIće[是 +ұ%Kt !TCoNMz`$:Cmv2 ؐWpm]]zimW2KYjc ܄57D{8nec*&jf<z#Md>#"tK=< t7-CF8vM;mlFrF7j4!&/k)IښjvM~zfVU2ڀL <[L&ԜKcs~>Zڢ;-<~wS\w:ӟ YKs_@'OPW(|ãc;^"Hv_a@&c͋XD%BH95t4ZHbBl6b%Q,FNB_.c{:o+Wq|r۷o-y D˜ qB j0)>a61{F;vي%VhGWv_3{w)-i6Sn[Fwь!k9 L&nݼSGA92Z1QQs/Tz6|VkW!$Sa22xאkֈkoQ 3"~ॖsj )]ݖE\4qc-j9'U U 3+"Cj!#p˩"czCfn{&]ҝ(%4VCQ{Z؀;>ʹzͪZpIp(O_6:ve“CK=]!ňɈ1᳄EoťNKEK;>=I%"UPU 5.u9}Kڇ{y)5깭+Eq1'Ȃ ee ^]oQ 6 =d S=FVu0hu8pG+2ʨ͖ Dġ\?9>a`vQuaY@hzuf5dAZ8EMvSlo 2ˋDR-r(? f& z\Ewk2E-C%;\~ Ї< Sjp\'R| G 5ò j7UAUG#m 1YLeIc'HZu+X-P֫NR0PމYD9H[g|NQ-ρTzME#JCi.H<::q}~,ػ`0ӧOܾؔ}M"W678N և?l$irdͭ8&ESh0-0OZ uֱOݷlFg/%!HH `?+b5[A,Lǯpr{ט;ԕk.NFz6Gh|+7wn#&믉b x{{dϞt[8=|3qeo#Cۋ 4Z}Rd}ɠI``cmp~7/h\ӳogPd85CG-A"#A ww6qp(&X]nKH0 %]T*/2 4џs!R!m?((,EHZn]cBAIFs\U#M16vdKk $M R65Їb1'4ӊXkXNQg*vMs SߣqeBft؄E3IC Ŵ\PTӧhHF>i*4!ZBcY5ZژTMiCR+JuHVJAV~ ׮sh9J1J\E IHd9򉩔] T +iE6y)c&ܚgTXJ+0DI0FG $&5cݡ>@x# t'9#亚S|ͫ>aFG- ijh+F3Eס^2SQM^]h֚ad2KVl*6Z>vw`,0Z;$ LagH&Qf *礜&N[(sB 4wv$q5y,ހ&:23yb~.4$VbAY zz|)wt3>}ͬtձ&E5Yr!Pn7͒L^-Vv̥9ٖ> QQ5&7)lʹfҤ= %DPH$1^'4jbI`HIO=HM[{-k\(Cf떚|ItZk1ٚi֊0q!L\'1tUd0ȅ/%d%5}YwnhpZ3e3xd*:ܼ'(4ޫq .͖E'1`p<_DGC-L> gNMREGfAR rj5tQAVłM'>7\b!K+B+hdG/DyvvNx5͞D σ6ˬH!ڤOQX3o IϠ9[;{hz;m9{5:eK.)+h߼%ownaqy˓ghg9b5"$cr~JW|+/9dd/ ;wn hgCb 31p1cP.'X߈zR 9IT4",ԥ=,N^:Y[ ֚ټڃ]O~#|oi*FQޓ>TH{bJ4Mr$a ܴp(DjZ u a#Pc)j&]ݙUT::Y+}*3 D_ K6j\r΂&~E(!6L<]!jHtAs<ſ# ~ȱwj5d!0CHm ^$B"9;91ŀBT˚elIj'gHὅxyk+kUQˀ@7ouTG}h k$TzxjlK_µ~+h"2+c0Hjihu$iE+5Z/!ai+dO) i:@!oR4B9kpZMf#o@WYYng,?^*e4yQ#IRG,ko4_ԼE4&17Z)*Ņv6,2\ߞl,Nzќ4!9k-Ah2H'&9aLa B:!? _QZS"b>XUŬ(yǑۖlIӊz)0pzm UN7(fuًrrŸuɥ=Y p$=JؔzCɍ<=F2˖AOS_;T٠_^9l徥 fYUMS*Ee܅j5.[7 u,T)g0 ym8\.]k0qQ*͛hRJSONL\[& ,QUM,,DJP̠N1_]bX*w'dۙṞHu9 9NsIQ:%Ia{*:M [D/.Q%i2!z4q(ɞ 7o IDATmIĂlnV$iE: H* 4Q|KfS^ؙv[tEDföpdҸK֤L?i?"M4(L"!^sq|rxrnE[YQ:66qq~F]$6~#\NT++Frs,?sm,J !MO^w {t~zN0hv ,T"6ҥ%ʣ7 quy #LFoe B Hw:ը.9Xngr b۝>; o%җٳ3 #G9j;6W4?). u 2/W2"E j< 13@^l"zfsf&#Xgt6S>b1 Av齦WAkKk G4JybIִAZ miSءfFݻ5AgbB#47L(ՆKS #\p0$!id^ fа}V" FEU,f~{t=އK eEb=Žө&FiJ>;wgֲVE'Ba yFf*}P@j:PUФӐ&M*g^1jю/!IU'7R/Ѣ*:Xsj~Bq{ë7bVh$"m2u5|4q5JNt3}@,2G%uY3 e *-{>6FZKWܛ8MzͮhCϙk%eALS*'"e h.tՀ:iqU(}R&'A4b"Mr0Suy9!}UPhgo1`6;cfX+ ",j.M[D[F=2W_N܅:UJZ)hq,#MHf..t!Y dQ!3윅NUI"9CT[-SIaˬ9уan-E\+BMdR`tSDiH&o2h.LcRmhH~ B㼔' -f(̬<\G'CM3Ih#RCM9h\"5WPp}_J TW1\0Iodܳ3ܽ#lnr*5ݝYk{7 {̒=;~|1&QihڴظnW ęAdQLiJO?YNo- ?-ln<~-ׯacckq x .ΏIzSGg}b&٘PFHvxd1{u6޾oo3dBݸMDg~yFzzosi{9\Nqzv= -euns!ŐdgbD-1irmJL%h_\eX k+rw*I5.&{`&ybTY*itnX%R:c.cre^?i8P55D'[2^P9 7DGV`,򭐬ZOC}W`td㋧6ZbS>̇ ̬tz3ٖ=\$j}! Tgql5eIá9c xذ]VHwO8:q5v& (f(BVQ\0jMP;24r~hv27ksr֦0y2P}$*4՗ c_׵5֨OjlD[Cz̛]$@ui|TA-ʘK#(-9dΛ D8] Q B :m^reTh$2Tm|1 ^'ct(r=gZ~&&@fқ0BЌ^9"jzf<˥a5T5j)I>S_)Fٰk^a`;ѹڿ+[ojT^3D1QJ(ߵ!l/!Q*Z8bÙfF٬: 'vpQPnQ?ΒVHHRa^5AhRR\s#4@53&  JhnNM.QR2O39[((ډR{c]5.8GEyZwiuV@եJj(R;&Eej6$o^K#@y"2LX*V-RSL4mDwҒCAabEg6۽Tti"bGG3N'#:px% T$,ĸnҙwLJ,dϢ̰{~W̊m8Ϟ>_.%׆ c?5_D^MT3[QT+8؄9z\35,(P  A))X[6 MA+}`&,>KNΪu0˜. \@_)ye۴ Poak\J\zIW( 9G%& -suZ3ڣĐHAٲ6g'ychJA mUS+^FIA.'d  ,w͘KmZ3m:V& 'u2S)jE!f)} JE. F﫰M]_چi^6I" t楏n6<\W hAФWȽc^( :/^yMOzPdX,fXH%2'p:(0]<4X*犔$^\4F/2) dNwBfzo%,"AbHK]'<BWVTOUãJs,#x5 ο) V9V|ǒA!_գ⻨K5a KnQ˔ ;[YUoٽNmm- b%kSmE"֘9͠0ʌQ=O p L†0sr<.b,XH# ɽ4fM}W6iXB4+v4PEץFBףZ|es'^a?!_ҼO׆H(9}uDxh3ɞ"XÜZ?TКNG4Y <,K̬s(-/%G]'qܣמRov=a;LmxvVZ!VYAA]+tSo0mP%=8.b0juAZfm~RJkqz|ut@f3gOe9 Cv9! @[?7NYlmM*qU]kj0Ӥj\>ae&!Vv64Qj-Q9o}RׯHy zC{ҮRKfgc2̆mhHDtvCFAJ͞k, 4rez\W9f-,[9ýWNV3Lf4;ܽ7nФxkW#VN|n}ԀJ%| ^)oxVDZ[&n\IPlkb5je2-tpxp=c=+R6z k]o?;|5^}tFwk_7Ci*sfe:.n~Wo\S\)^=\9'm (d~fPγm̦ {k> .Ϟ#)/D^ܛ޼||"=c(2Ҁ4f[8F9Mb6ZXA&݄[w{uOSǸ~&/45ug.fRPՊ(sFj"[) 0gn3.{ 7Қ$4+QӽZ,pMq!k!ZL2X)C39%05 eedA.6Qh*ΣB*q 1207 iҬIEcDCr^(ȫLF@uz& :^]l;%8Ԧy.Y8`mU aDhm-FY72yދ61[0Y4G*sײf^hRW5#ػ2'ѡ`)uf iT]Ʋ-Pƹ>g;m˘` 5A 4B2sW録3*/ 8 0Qhxř\ΙWNj3؍q<++Z6"r.eMyx&R1L,5hCYM${}jܠ=R[cf(L) Oɐ?lk_=U~喓DgW :TfDW! +Ņ *dZ~/q)CC)x-[B?ERbU|SqQ{;qF"oV4!񸼧a_QC?k8<8ࣽӳs,T l6M5 ^Ed$A^o6T~o>C20/_:U'Ih.! t@>^# Oy^Y;R:NZ @A1+ M ܡw>DI͇'b'F"tIJ$,nlbZIVT*Rk ]MwGr4.Op}{ ||m:kj \z*J(zΎPW+ڭKçF!p2 R{adդ AMM*C>P:)ls@:Y4Qqis˄3iD ȉ@IK+]z ʢXh%`jRHAZP NPša蛛҂{ܼv a_}))=:Ԯ-1 Α~^ .ϲSc2w;$iksC8ŏ?wLH|B{&:<:D;@{ 8>:\)f+TdcǛSsjEg=$vtqWMv-&wDg?9vYUzX_kѣX_Ľ{?Y( IDATb_dtU>fP|S|_"_^{[իoFD4uf!~h/ uo^ԩ'?)ݟ?G ɵ)4R4m_ ݹ{_)렙X 3K`61߇ %\rAL8=>AѢDGc4m5-I}k69 O,]oh2nmʐ3^db&r XB 3+`KW6m[4 Hx%~+!~GRwE=1jlAv@9]@0zCœV+K3 3hi ՟ҴSf'HaFa9ca+Z+2Lm0\7b rUi͈֜GXϲEU`וprRիAJD<ܻ) Chu1vD4uhb Yu=𕖗-wV:\FaEZ7YMcCpupX2Ҵ^X),K6QWT,E L e VQi!-RYLa:fel,) R l:Rj.9C^@:7-844YRCuLp Zt /$0dыTy^OF #L2E)}oRWiWSRuڟ h]I0.r)әɩ]kc8) %f2Y.鰻6ē#}HI׸ d5ye6FuU'W5Qz6 8DzTPMR''5-\6KV"͙.*닁&&7ЈD6> ~x{vDT F,a2l].ۨ6#9<ͭқ.9"ao4P;U r@~)Bc&(&^n#82ep,2^[/+7]nR`&PҨH(πPNj9nlܽv(lUW99TP#Az,!dHWYE)| rA`esPp "+Υ&J"֭0c4bE*D.pgg&}^Kt89>;?@ن/Ma;+O>frxttv`/b`NgB?amr 7vyϖ,۷nן~V$W܏AFHĸ_B-߰Z](nÏ ܽ  :͂Mg# =t+('gS$!|$Ӑ-5F:{_}DN{Do߹g_|:>Ov lm~D3D K_L|?8x!N/F̻txKTdWW𽼼4z-09?}}j DoѺLߩhkEk&¢▭ Gj99tϦ&tYQD͑\/P΀ zʹ, G F&,>3l8Ð*|br)kJ 1\q^wM:.q?V絪ql4YK詥=;ļ9yNb":PLS/5a'$-qYAjF?,iXCIgPʈ G00֙fWѾ(dRgry{0bJʪa]CÛD#lCQUk Wfj0zs/™YU]jςYǡM@ƇyTW=C l wf~:vufCiƒjpzG4Y[TKpiQc[̗j%KSdEe&Nò/:{fig5_ &f.?ݚ ˭Ju]yUJPL׉+$cD4yx:<>bjiɢYΆ7aYhA+1MTg3ٖst L>ڒ[hcCo#_Nհ&XGnk ɋHem8& `dsH1!FPD]l( eT :  J6hRHC4gV昱SLjh!'Z\&G2HXf5\"[$Mm` w)<,Jӻ@\ofִEd}!4+qZdjlv:8[Ph&)6-l߯ iD:9]k$mphTKl97o°FXW !n> jV.56b^i4 R眹*P\m0LC4~)7J&H%3rr 1C[Y /Ly:kO(ayJl]Z\&܅B 3fG\jZu3CD#?m:Щ47jy6pxi w嗈bI^I$f^۷ϰ_"mc\CBUj,sa1o8yKdFW5]N9}F1_ß/_<ï&R35b&1*^7_`PptzP!q[yO}wcQ40LWx\F[ȝĠME2F2q_5|s/8M#3]3˜h6.O ,t|2?0GPseM.ݧ)A9\ÃHV)}%H1?Icc_ڳ-.'縜(R̵ ϟ?ư7tD1αXc}m|]9-r O ˕̴`nl>)3c1&+S)2qXo6iUX,ct܊_)\-pU\_ۢ~+F)=~ *R+!V5e3əRԓi eh n4q4+bŸ~LT̕>BAn*Tĉ'A-̌s0\0qS&F:ʨ ED'raGUs}L)E0t*;39e]L"+ؔ  "64K^iD~H/fpYY LQJNc)K9{=mYAAQ),gq}2>hÍJB=fAFg&D"`4Y:YF vk2=C&]YqQ%>U7xy y&|D {gi$dx*jTQa4,kԌ t r]j"Cyq.BWyOKVH|B.`BIU(O썲 }3ceCQ=X d ]˨}u}62iI)FF^!Z/aiݢPTLHR Lr$Ti!'.Mx[XN&Ȋ#kG~2Ukb ӬϿc*zk@#: \tiD1-"/k>!rqpzLz'pn z4Ԭ5P]h_JWbZpPha$eh(UO~ub#,Xx,ihS*ZRv=Vy54k[۸8=Eu3?|5L4+(̱ݮqbXΜ Wь9-pEӈeI\>CH0üE6:ARe(TkِZ^ZhJ-l0P oN6&)>iR?l6h_Ƣa/mhMS(y>|LMVbִD+l"މϒpϩvA9 SaVKC,04j hR|_ID%"~|ibQ,ck|\Y:?(ި!&J[!Nf/ɇl]1XN▻{ NO_I˪SPV5͐AM/%=[eͣ|5't^Xn<+#]ܾs?>pzMi 58O>?9ΰ›oH\l[y?Pfܐ9 7X  .⪞_ > SzxtuܸƓ'1=۶,0_b~d[8=-^Eۯ+\~ Wiw!/船whȵ MJeKɹm'q|/bvBc{f?tE&c6<|z4o~ޝx0+͝Hڛ8zCWi_}63RsglHm5s6hhW}rKxbnx0 p:iٲ@9gC||xhz8ѷ_ag1v\/(_fTtE`TUm[@ޘ 睼CaɾR(̢HBCFy*6K6#n:<$VJhA,:Faf1$@)Ģ,n"]c{DZy,ynyQ\ԕ*Kiqb2U(\w恀>.ud.K.6U?חURÄWޜh#[ v hi^"b]Pf}m4>T4Ҡ Uvg|_Eccy)Xԛ3}9H/jYѳ#f`,E=i}8t q:L&̆!ba0>Y^[󙽁$:(j4E!Xcgy+[4]4 [*# *b  '̥vT.fQY/5EnԬ*L!{F{}H.-r,5lϩ%dv!"Sh{lD(K%P\t C'hHQ RzJ+P!qq֟wbSJљzak#2Da&Ues*Uqq|L-iM\Zla#Mk]P @P^7BQNs6-.YHhl%T)Sѓnm)BI"3Lӏ>!NI8.(t-ާM,O4!"hMZrQ{Ar@  8y=Ԩԏ2鴺2D̙@j}CWQΥ\ѕ Js/ ň褲dhtaA#'<\6LQ4Vȕ!.aC,4(U*O4>O(I_*}@)M{&F"8'C#5}%6r< <Tc)Q7/g -3,%nitrW[7os^NyݽKӝ-V/H4ݏİ{|{׿:Fuא%|8|9 6wgDze%ZߢUq:>| ^u]/4R >\qq0y t]jO^ѣ/H?.rn^No!_lb6c:b| _$usV` Acz[͌o-qM" `džN_׮p7NW9I%b,۷#Zܨ2-, %%_V(20z\#x!FX$Gh~^<.EhjTRi!4B7oFY IDATt;MƺBY0-/IB}8)R [7J yF3 -JӺ#*UIR"Je֭.8y7$TnVȜy?(>3qܛdqF] Rmʺn0Kg Zܲy]fȪ+&E Z_Sy/>DYDmBμ0J;N%XNEl4a@Qh`ihw;}(}URY]J FR.*54mø54.2)amN>n =*rgA/6RÚ@Ml/!}"HOv{EQ'%hͥ9{[CԞ#j^|I H 妉_3){ 5GC3*DBVl:S` !w_^6KaWYBӡwPI˾v5/*BHV@Q7ԦBgΒtͲY!G c.P5#A !%|.$Ĝmeڰ&a/R/,FTMmeb۠W;-)'9!ڌF%r4pi6ְDW>bt 9J0j#InUj4ϰ{1ss@ 2dzuz9mPF<8 3-mƮ5,jSWq .u0A:+ Z{tؕZV\>Y {w6ntm`g؊W~ zf6E8G,sLJlT XVuylv'5r"q̱E`s:N/!MyS/1c?޼zew:cjm%ψ]S+T1ܼ&~?m,+AO0]y<{}ãslllrXtqv,\\&g(#4֚}O=a3<{klRgzqvmYpX,h8;;}KcVkuNB\WR/{odu >d $AŖdv[{z=i~̗=xB-[KdIIKUKf3.dB&b;P @Usa8"k= لzhh[i-m0(GА%Us&.틋6'ͺ{.L:utpKYlƒQ(WG 5!mY+t|&Z#0x_RrB&DHΣ/49h"k)iJĨ{UżWٚ]Dw|^Z(p0kU}k5ǫYSDWǥ2m*9M`IEG^3Fmc7hʪ{n%;z蟏Ei@(+3skZ,xuG=nMȬe/eQuqh M ح6d[V^ Lf;}t66}*;܋YZN51'̧ƍ!QsSA! ɡyF \@),{h×,5W@U4?WY0r5h,'~#r9-3P"-\4$8T.ϥ:<iE`20_;II0 E8`F'ZLaVZs{3(zo󯷶y[&YoЧ9 c#f5tH7 ̜\ٌ aߩk8Zb'ƕy6X\*ED)ՆTBW܊Ck@^C S3aބEʯl1ǫs,|*$<8nT 93V6NJ*%S.666*F}'f &p߈$EO GT~t1:F$\(ǦBr6 #5_i%`lT3Y^EUFr*YE6(5l\us'pߋ|VbAשHΝ U2/(SgeP7?PK.nr+QIx4oǐ ZBH-NJzKYf)._I3p!}$/!CDP'o7}th80c1;&ք(Պ1`^'b5kl {7j'8%V!Rj[xv`c::iĩ~`FrID{HXT8+٤KޞnXKKKF-$N F F-\^G8è]fic}> :;ƒ~F0K|}xW{K6[k}<{;PɫW#ÇqxwÓCF٩zL&#yaiy= f dy>+o"12jv^\[K[w}ho5CK`5T\|}|r]^_ >}13!}p>_!3/$@Bfw!c/?;kwѽc{>?Ť-,m?BlܘӷL- 0xOg6.o9u <{^oZDEl1Ѡk_,xp416"pm2ayE:eO^!E>%A{U6g>_Wb:\z=M9†ֵQo14h$YB Fޘ>(Zmt ZЊˌ,,R'7/ *`LFJ,V_#(Std).F/Tj $:W(=$JZ"eQ^ˉ455 HK'ӄ,Pc +'d[0ȬnP)S碉Oas4kDc]µ3JIP|a =6 qtzW `s&J*6N݈II \41 u'hlD6 AZz_3Vh~|O MO(B{xi!)9&6|-l0lz5oaSEj-L'd@ d2- Qnr+;Lm] e=! umbDt8zP]@ENBC wwƌOkj؁&yagTGC}F) $jdytOi:BL0en-p`w!}2Uں1{$+"^534M7YCb$٪p1c*N-aX &Ԭ1`Opu 4wX W0bi|qSMtvLՑ8m\w[9 ͒}\ ڽu~Nc͝ 1ـ7X7{S:ONO0O8pkNVW03f1}}&}{+|Ứ {( +;>Efgrӓ=ft?|27~}>.Na\gOŧҜS&s /Nw~vn^ah4Da>cCܸz'gKk8<:@^j9|J|)z+OgX[1 >=S/Z-m";=C3HЬ;!_$/ԪwHk \v 5wp|Yt[<#ԲCDpR+! MסN^ǫ/nHK$ד6nMZNs6x'{*޸4zٔiے6'nXL뱖 }ճ.7sߪ=Nb1ĭa4]Ie?ðw%?hF{xt[J Mu'WhEUVbC+׆uj:$hĕ:ZS7EFAm9]Oں`L#,RiQ$b!҉f>WQX=E}B@hTlidGUf9],ǩ?^C;_(*xS!ZеZw /b&>$a.E ;A4A%kJX% tDh)%)-*{+%^Fi{ա\X{icD)2():h+$+lmWo xvuzWq1m0r9\y!8|yWhlRT.Җy^&[#Fh H|f-|}f ܅Nejo9PN"γ0|!n 9ǡRКb[?k]m ҵ=wxMf!,ੰ঒4LATOބR3m$ܼ..b%dCʩY j1=ڿ6׮\a% _ϲdo|k5>zn?˗/zk2NONć;(֝z7}cԆVp0EJhc]a|HT&'#vkxz ь]{= HqnKw~.?{]/sz+tiׇ89~|/G3k~ :}]ζ]XQΣ?/xєiƄo.'b(Ipx1Gs [ >p1'K?8Ƃܐ9qt6xE-&ZQ]$?8OgyNFjW24dt^Y`p~Bȋ1D(d<c0t&S#/:yΩᲵ:ka=j9WxT26G6yS&yV sn!518II_ޟFӅ5Ҁ҈=Ch 4ai^w7i:pyl@a(2(֔ ]@9g:K*N3:vhKy&xvčӕj\P9?QMbaȞtWQ+ViDLo"1T]9Pp5zl&{$${zŨŵF`} @dR Iniqv0e-Re.bĉ_Zq%Ղ CҾD&Zqe&!S%NC3[Q-J%Z4K4U$iY|z^}-Seq 6gx| qxzl LGfڦLB\UACTdBCөW#n 2˦DD%'ҁXr:î^e u&Gr5 SB\C'Z6j-ʺl2WyWj_פDÜ&L=ҧB%>(O%# 4+S 4[RaA=US{7WЮaN_GO1lbҰ%w%"r5SYN pLBl VXj&ih>h G@Tkp>x mpֵf:&TO)Ы^MiIYg*#O&#D5<'7Y cYa7̈́"TNYWV^Z.RAO4sr&g:0}^È'w k2Y266WFz=k[7pb &1_05>F>|_scM^< ,m&?{Sf/w%-nlu&ɓǼO,sGx$>Ԡ3M'{ \˗rMhXt:=7:Wyj>a8=~g)#lO&T࿃N!6'e,Zq|dyXY^L0`院Z3lv.c}2>&?s|ܽuGr,fߒä-xY`b](n_aAno-Fӳ9y Ԋ .-ʜi9Zf`0u#;V4$!Z#S)J=ό`l~L 4$tҷNϹ)ear?$۾"l&74|m !s|3=عm?tx:@fcF~ǣ!&!)llx}1Hp \ 3<}nvi~Yx/c]4WvPn١2m#ֲҐ ̊:tMglLf KK)ˆ8Ԑ̳)&4̴xk oYyV+ſn5y0N^U$դ}#r2հ(i61b^ӈhS]hE{u,t]@T&ô@t%LO1nN UB3Uw ?0dXP:RAj dU'G/B6{)942d\6WEA&D!Z^m-t&e8'aT:h3F)p?L1&d\x=FDK6v[^?LbNoJ\ CT-&^נ Teݓ4۴Ҭ#4eQe5Dƈ]uStxhU{ P43`%P+gh_?5Az#z)xJ)xh1w"VWD5d+R&uR@SUjPjM$&W3pc0% .N*.1q&G& Z'ٳ J N̻BSdETJ3m"F :ًz0%( K Ƶx7,cR-HH'Jx_\LP!e]L9(Jt4 |iUS6D犖NgHZM1p|jt#HlIg ͱBAm5mdc$5a4#Ɯ C1y]frԸv^ۜ F!EMhy}2W7HvcZqi8)tfMJԌv0OM/mDzt:ٔqJrh.}%v% HB/*o5}DJG} =i SUj9%l~E6lBX 9d̯!CDie=S~0qtkt:jsDgx >Zy1gJ#R:YF&BC8q8iLtN4/t!FT]$M,r`&HCtzSlY'G&ߞ`0D2&ON]ԵA[Ffrq'n(f#m)Ze8#5Nl/ŕ;L X4g(nKFUc=t8iPKln^R>}lᱻ[Ww%g ]{d%M3˫1k\7 n޸Q/^=c|LԣoMqDNϙzۦQ~,s6Z cp1#<_[Cz.]AC->Wϳ1`~^66m^3%~[x78S~U΋8;?K,WX|_?᳾lE 7!vhu 4@7nn^WI>ï.&86.]9SIn8N f j-i]4x<h6FሊMZF#nQH|'ҴF#cLMx'_-kyؙsG&5^isSu;wkScf")CJx칐p򂍹jUubzoy'@W6_Ȝʡի+*+cb%II`iJ}A' NFuGdܢsP?^j'Hl(ε Q_Ot`!OVӸ2fDhm!U6\0bޛ`J:P!5P I#F4?PjJ(JXE6iej6e sF'>nTE0kNDUC-TM# 9 r5YQ56F^F b5&D`2IU;],!<$Bi$M24~@ QFAP//JWK\'\_5h8 PX€(OB Tp-1kiEu~nR䞢hĒ|XX&IM׺0h= CέQaUP2J7 6()8+id PkP:I2Ir;q -B)8tyibg4nPq: 3( +b&4zg)S$ƣh48[iFaH"P-&CFv9#n\DY3NWk`R͝",˰(#;鮬Zi) (:ׅܞ'(ikL^s09~E,EʅΕkYYaR:ڍ.׷Wq|3|w%ktk,S1LzB:?y۷Gg~#T F˛Y9Ύ_׮^xd1:?rK]􏎐$f@:0i?.7'GG΁°#*fCf#a}]/}h6Qi[ɟ B~+d`=uW{OO'ɣoQ,fXYZbSHaYk׺x\]`4BA+:?ŗ?S1\>vǣċ k_S4=low׏H[}(xASCFbb x ۩3Jx|ldzK.h%jZ.)ƋC"K_G7NYmbyys^3 . S{"ݫ6ls2GIAM5⽓$%bg\9T2<==(zZӆ>{dmyދ3́>,~t,"6Nja^.:#h*c3&SE1 sDB\=)8܄EI5&6eN1fIt l8=ADMc tɯ 9V_Ӱc#Gm\T k僛#Na^Qr5:DD1zdH3ƧRW+ 0@@BiКw2442`V$DfWVEI:\.]f<&҄tQZE69T%mmJ_6QbcTڹ3}ds٧3,s##ʰJHX D~֙^+Qa ߐfh YMg/RBPPY"ld:M2"M?G[l]5`ʜD1SNG2hUF@wQRMHm6 GVzlܵtn#7p$a^.ε^!J2SQ;F#lsM}ETבSlm5ZF#CbZAF$/eʦ"/ɛB&3hL}"kڴHG>F&v 9Dۚq-5O qФƂ ro,T8#SfFjBѥXJ|0YB|0[CT?tm#9!}W/Jd4j5LYVUfSIr;9UGc*|0 &PlIWZBžCANjuYY5č?!h;X'nq:d|ĕ7Ic4 <کA 5F1=7Vsőc-,Qurp5r#5x3>9:fQIFk;M4BU.Aa@Uc#OY-#U }" 9Cx"K݄'i/NpvvEfsԢORE"D}0MowOZ)Olt΍|u NbIB.Ѝf)_NwCn|"Vk`0 97pxzKs2< !C|BL'O5K:{ع͈YVbN߾[Fc4!<ܸ^{ ;n²Ґ` =6:w jp|-#vȝLsl_fL1k(Y~iuc0~.n VV5}<}%z2 ?o^Oy.\O}ձ]zp~xfrO^YvAţkcO9ܸ”i@ޡvL "Z4iҾy~FNˀtÄк>?LMts>aLsv$qVyd!F5L!*~J΋j&vNk=> ߠ(H*aoTj#Z(>uJUUjf(%78B^PV c*Hesm@h$ C$ΣnS!]ϕM rpSq hZu+ n&8Gʥ蒠Ie(-In;R$y+Z3ƤbQr0:Q_u w Y_qcA5T23.馁ˍQ(r})rCXx5et”Jf VYq!(1s t; d@19lܘK⃼6N4 J0$)E^+ ͩ"P녘H4(~[aWWa56gsez/ŖyuQl5j#N C 4F#l|H~18kw5⤘@y`7swfp[yc4?ѹÙr9. 2gCA!۬k"C>N]Ҥ9:3d?tW5Wpq§N¡A54WN¬ : XH83[g#OmR'T6ӁL>w`Y=u2sj4#?P ڃ6NŜ7Sshe#4>ewy & 4-щt' fK4Vr*]VPWZ')A?˺ve)詢KZ =_dl{Fto'YĬ&  ^(2 W0Dg! 'c0],($cSh+:u-i3X/z*4QRRy'1M%d1l!L%]Y)"ىm湑bc6'tyn*-Dü`#/Щ̈́ 2j߉6V>ѩֹXh25Dih1==fNV]1/QX*:+f88e4l־ϑ`餏z*gM]x˗ovg06c1/ =|AvklD P3tkٔ}j>945n`0c82ZADC"gsfw>ѵk~s\y4;d,n3k(l^ [#G$tݿL&}} x2eM!z]:glfA >wgS EݏyR#3z<ႜ(ow}kkk={pEDƆ|bM".¢a1[Op%,,c{{?K7;x;nbm} p#:ˉ!^\|{XV.-BBl \rF+Wy͑:NF1S}z2 !MINYqԉR-yte-xłČ.jQo16[?q6W& 0]cMM{'ޚiL{ETIXϞō{%ܔKO*(. L  2lā9kk@™Q$4 >) tODР(I"(f/ 5 E"<B_ YS 10 ׅs&ϡ`"hc)]Q3,I@F1eZګ+needTЖM<=M~zS"gDCͣ >f!:J]p%Nk%#2lnU6SA`D" m׫ykd@tECTd$ByB(FܰjkK{.3ɬE;C _w!L'W,)t,u+ ^ ǖ  IDAT'cEyO <~yGSWg)0b㸀v'UAtb ^dhmC1*ͺ=Zk[z' Y71_t'T3aܷO_w5-7pڻ;Bn0@Foeɴϝw~uG2GPsSպÎ/${ee#_~ñ4y ^bw^zQZSF{Vt^(`p`+-H]?/QK<^~څK1=7û/HKظz%xx+L^oat1}w_NjS;k~/0.qE.q;_]N0 cW:&[ +|_ׂ?D a$b.NB=TK[zNՕ_hԐ[uz 3jq3-ujIAŻRAz':ĺڱ_is}at]ث6JsO(bØۂR).rR*rDO|(p甁ĆWS$6^3 [mhs=|ZHe$eԍ.ԅ/!"M3pG8R-~'>6B1;|YS@A a8a4]&Et[T p]C} _h~mU +KeWG֡ b K2#y!<\gNAw::˺SJW]>!qzjWn9BNz5-dsv*] U95!)1ц]3q#YP^ĒԐT-\+.UW5T SZlUo +ͨRhaPZh+=m66o.!"  YVj eJ%mb-r@6mšؔzO9NYө6aK55J Dej`C~M6Hʺ`O:2OsE!T5obM1g#4ܸ:E&!ac5XnV(F)jȡ.lJy=~HZ~$U>_pу)}yBw:ss"?j FKK}Fw?} gR,./cܾqF<?ԈS'xe)#K]l}/1Os w޻|MYNK{&H\n;Ӈǟ +^lxC|a3G'@ƭwE02;"#:hʹ]j.)ԛ)#Tq3j$ڊҽ=4Bkmr, EU*s^/prrƆ霟5OhT2A{(4CP -KzUzIWNx@phG|ΌF),iWyh]G\SAhH[XZh+jm//ϴGbE+G:e(:2p.,J\g=F {YcDk\Rdr!oJaoft m&axhHE۽kքB7CWs>҂+/NaŎB77ԸO^Ŭ퐗B"gxYah  W(jf?tEt5Ml+h`֓PBW yPqs. ! j6\\FFr!u!csf1isWgGTpc&Z( AHkkuV(LסT!\gFlFypy]W>Fnard]3 ['S' ]$tu!/5 ͺa) Z]C&/ C-$ͶdDra_omMZt#5H 9[&B9CEF(4,YݒV4OQ:iqk:-osq,Rf6PQOlQ_cd`28bȄˢat|RғbS#>Mӹ+)rLSuc5އGI8uRp6A 5ʦG^ԩ*NKX1$i#ZArW)5N} MB/5lLq:Rac[)U~eP",3mh4ɼgIX4qSah$pQ+8F9h[_~t =!'Q'Z+ Wr" /:#ÓD4yHf.@.-|dɔ?~f\'d D69-`;y.: SIK} BJ!*hX'Ie&mdDFjĨB'" % ekP†bÍO롔xiRiDeKWrTE ᭓tH:.6%2uQ,Q"jQPaL" tb3C2wYF^w7ozΑ>GgXYd*K\޸Ĩt2cJIFw3nLU]K_cJS}\iwaZ2^9nGw ?üXčd7b?{8;#|OFߡE:%qӤ}Qt6fZ58tq'G1avVpt VcҔn?~?`<`23ٲfpi5' 6?8;=>:5Nl׿& ֏Sas2֍+Z[Fm[;3̧>[w<>1K|pl^JcmyɄ]/&7av%L'TrGs^GJ?U'^j W3\0HRL٥ARCLRb64ӟM؛[s-G%9VM~?tvZlI4zĆLR#&/7KUYH8i ͉mǘY=9S tϲ8PPNL_/n,ݗs8["OjioMkr1M3Rg# q>Qat"r1uEYk[^cChzwm9S`7@پ()!o> (W6)I3~MZ_=q.U"Pbv֎3 uCLhtE8h+õ6)h \H57R*$QcT_1GP+_!J9V1|n.DhwhAE4l%U* M>> 9VhP:א&")'t ܄ƞ Ⱦ#u/Fb,UL>䦒4ʴ06>JYRy_0+ci@e;eqѯow__wW?:(ȱD]"I2,5< y+E%[-n5x77nTlrLߛ"Hm36G#SEXFMh&3M7hnԸT$2EATxڒ^BhI!cPu_uK7BR y_i\}h4oUZ)"sq3cs' 1 : QJGaAl.PF.DL_b4DŽ*pWd!! 41#MPԵ6s֔b ;ޗCL1Rh32HCy05559ؘ'\tqemK6&1Qot͊ g. SFx0yI0:NzX;a=)Ю'b¡p'$=&L)sլѰ|@F.2ɦC6YuPC ,78L yHJNUgpc:* 802@`ALQ2; `Cgf^dZJ{(LמрPQbP}u6[5ll`o|.qާX^^o{|=ܾ}ֻ#ڵX_/KmSlxM OM '1͑ewY%ɆHc6ff9\ fp>~w&+&_mZFL8g<ΰu&y>{}z6h\wp~v^CG>}9Ύws}v:KbDE:#Зא΀9Ώx(@늴7oFpiWvn6lhX{2\*rӢݡnpH\buF&@21KtV}ݾt|.Ä1$Z+9qfbD4at&?|.2Di(`ݼh,2'+U4c]4Ϋ5{:~|^<冒4w N(PONuo3d*(ξy# $48x (&ļhMhtbčPBUeZL>ORɖ23FAΧ&?QW:5h1Bwڌ׻x *w#hrQ斛1ÇfV vǑ!zؕ-,$o 9RfAjT[Q7P nQAV[ES$)=1g HJ/MbtF5]̏~l^ 51%zɵL TA*ubk)?\j&P+H?(-Bޭ'8dȬ+ݞmC#bt(y9**OCrfvI|%pڝה,e !C0rNu`od?uD~N'>Drtit. Qg?_ooZ :V=ilĤ^ќ\]gZA/vs5fl>š̝z+;~*3@%z6q} :uQ!ݫ;W0RVyc2a<:ޝPFJy%yCMLJ 0:h)xB#P1:s4 diEװ}:n|I]WoMAtEnGh25FȅjiXBˈ(o Qpَ^("'s IY_@i(Sk90ZKS7V$,=p2;+#C6m. n{^ E"5M)fy!,r5.ѐh͛ <") i˨~hl*ͪ׳Ut^PƓbXR y%}R+Mp0{sI r7tySx*Rjx>&ɪ?т %sJQw%+MeR/|٪Y͛BS\M_}QbM'D6dy%H(!zRZIfL`Є"jmMl%,8:3 ) =6kg'ЩC-~W3dMoJIȋe]+5QOTo ޅ!okmmvTٓFјҺ3UTA\a`CXW`>~~y~I颓NNXDlY|^=q|0Ť:YP+Rv$i }pd;o/n^obQ,&ZZ4/N(+k$&e )MvrW4n34٧,֜)\u)lRTGɔc i IDATPEmeȢ5 WV/M(4h:;s#=,*'D.M}x]hON2ꆴbbQz5TlΙrhq)uHmR;|e3ҟ;uvNu¥/^I|BH$ 0׮˻暣ksn6EBj{*5콗0;3 2JDUOH#7C[+x4]i(/mV$MkbEzoKȵ&?"_`_%6[ WWKzi/۷Gx.ϩɕ-פd^&f?1VE[>8=؛aLդ+g9xtYcF\`jy@f(I Op5 !8ZH]h|羻a{ϟdc,ҵM6S7CN'擷G\5sa 8Ixog۸s蓟v8#[8Yw(o0;BC}( "O뒔TQRv8>՛gV: K6@.E#ްHsGM )wĜ6 +BYyyFFipB >.VN\+r xĒLXy;" O)x21 =C2՛~ P8!Gġ٣{8yC5x;$-m邆dVGDgWHVB[m荓Y<-6ʦWq}&Z v~15'HZK+Ń5 ANyԍMdTQDI*GTZz0@+ ao`qKX=GEMMTFT-ꦬ׌R :JB$1—#qf{ٍ؃GUν! zؽGʔ8^j^]u! O}QC`c9RGu{Q!W]9;I'[v6ܯ <`D68*bX[ytڹTܿL 5rzRsYe&dSd*ljBbY=J&:f SRW2hyv19Wեsr|vqxEizJFfHhz)ei B~($um\YA I-Њ@Q.(yĽz8~?z [E|j,ЩmPCG tf z0R`.*yM$Ass,R',JFyrQ{]yt@Pk`d%ۍ ӄQ9^:iR=4x0$X::G{S CX%սӜ̟ ;pjE_ĸUh^w␫`30z.ϙ5@Vs2uA/8=zkq I:=C]^`skp$Z¦iH٬i^D4\αC j0(+H()Q AFSDH+TXp\SٲO&DzHF/'^H0̈Իյ 'Z6p5>ã_OivQEq,Mg62^H+b<&N^wXy=OtxnٞGY~#,l,X̣ճb`-ѨSJ,]8?$,wlzE?Q1,'bE͒F&r>Z sIʔ[ƥʘBp`Wl*?Km50( -E%ѽ4^z^Dǁ?nl|7q%wbKD.Idg73VҒzғ*5ٛ!iTogKl̷9u_xWCk&j y2id'RJ7*2[i]aQ8{D$40'VXt(H͋m&"שNj? 9tMtaT5KMhfyAzL\GSD)k0Lb)J.iW-q]HXYRNWIyrA7:x.qjDCTɥ˳z#l<,T$K.agjzt>T&h04YF>؛;et\3|wXLt5 -&#:Ǜa\|&՜ʭԐ&Unb9FDyDoe*霉4q- l9cRr(V%2/KfN3}nSbg$oY }km%2`FokCG)"cSJeH4.29f±S9ֶ77XJSc kaMڭ=~6HJK1* ֩knH}iNRKof5N7cfMb߫k,) e1OQ3oh%h'JxRɟBٕ,qY݅`hn,ahuRL+[^( N3QRs&A4NTP?%Q=bթ)QMQXA$:*wlR%Tιg$H汘EC WRQFcdj# qB u~h<\2)7YcS,eXPg vagZSS~{[ n/Юlv5Yh_8ynWu.zO%Qd.SѡINk'onv.pzrN8˰Wh" 7oq{u բNZnD3 w}\]\[[;Ȳ)b !&[<:lDLf/ذb>!j}AaooL(uk]ķ_#~g䓷Ҏk={0Zt6c1oO1^DX:'pw})fea\BRDIEk-9-kQoQJ"T]õk1SमeҪI bĸ).T`AX) .1)r~jnJ㙕hRDCjs6Rtz\,ؔמgd_ATp@EDzc=>^Ǹhv6UNØ [("+,4AJ!A])ql()ծC\Qv"IIrTB:..|`)@8П#,A0h<x_JDf`vi\x݈FZ-.>b}M>|a@=R$ԭQ2cA-B ҴD#W0%;y??\=Qm\9tbq:nё6^Ok9$r&|koNZ$f4GSEw1jkaT#ER+!DդM~GD;[4 ohP˂IREBsAsYtAd3gٟ=D+t@7PALnFXg6z 1,uK44ROgfc PV"rexQmS/u&.Cڈ6QtNԬ0}߬7Ӻ!K+cYlv^%1-ztJ 1b0DSQyX{XM%Rgр};26Q'0vfגR)9! 4DeCWg0^ީ LcerYCn:$qUL.xm9Pf56([ } /tG]38CsF3+UH]{BW&gg'XFp4S^a2a2a(. I1hǧ?Oqp[{h4[DA]05xnW|ח/0 3]q۟`8ΑW0·{;ữŸxM]^`2+ Ώ~lvd<| ڭ.Olnq1tz͐MzvESL憬Wo1xm!2#sq b~$ &񃘐AY&cQ$aHa&YeF~W]4]~V= ͌r,>R,˂C<ڂr4%\{"Qmm4W7IWVfA-Nc=vla.î[75t*U7o%0ІM hnvz,r,xFJ&᪍t]bIK':F ,ƻVT[ե*>S[[-TkThb15/ST(`mW_#&]`w`OZ$I8}V~\^ktހ#㔃 EhRP ϒ5[/2շ^^iv#U{\rup=Fe-֎"KV^fߗQ! E=R8uh-fP tY忲/ts&z 5Sq|Mŋ)/@]r#1FٴʢȔÉe=*ƃ>WhPe#kH4⪚'@Ǘwgj)YĊ9=WJYR3)j9 6xixwGaڟ9mE@rH:w BqݿOۋ+ hwNHkE]"TܼTh9ːS)h|YI߾:)YчҥAYlYi([@RF[ ۽V3LQkt.ٜv9y?[>uB<>zݽmz;=5-XtRyf{()r 9Lp:ym 79͵6w'zB_EqwtmVM$kU\^仗Xdܻ>?42_,贚<Ÿ!I[8~sws>ⴅ-\]]Uۋ9R[O}%$$¹薯/LGGeZkP ׌yz;Ei`[{y|v6>9H%\>fT:Z\s͔yv%!*![l:{s1XI/t iVK{87t䳏"{)9 Kf, d`TtJd 3!~6gls5Sjmn`3dર ϊkup.ͱK"Rl jdCsoDXwfj7C|M9Z9>qIl.ń&vi3.Y8.6@jYC6M.4&x2ln N=Zs46ڪw*vAXQP1Fq=ޤ(R)ӘY"<]Q=W_G-RV T$43s9L"W/^Q@,ɐ\WO_辟'EDeдDS1Qa u5n~QD usb2|5ކBcqDz'~cp!z%#?0"P9xٴ U9N7LZۨdž>`L HTM иhc<*Ulh 7BsKcx`L%tWy xZZ5ב:HF#Aʉ^Gx+; /VcQyf3R o E5މ}uu@/YYhb1TaN-*H6nfFuű פzLN-FwŏSdv>[guSvfC%nH)l] Gs2cr"/:ݶIuHRe=.70јyN'` cV;Jk*h\,_VSTd }qJ) IDAThӸ+(#pbw T٥,rΝB ^'s-6VͶ:/\&ŜTu E 'bLL W[p0 Q]xn͍=|J6#be!JLs+,yz4JB,B,CS_-n,nͩplѠ &\7$""- ?Z I*Pa*D&/ -Ĭ4ڗffUTt47R97k15&KL˩6}LVpEo,b/IP=p1rG:*~y> d]YX鮠tSҠ5ֶ^deBԕFP8=}|ɑf1>&V]޳5CA]suhTK4s8phm#SiV{]o0 i, lbn2F-c-> ' /Bii.Klz]̋خ+ ^_tE|9O>:b`t0?>AxGG=;ڌ7nSg{ϱ߽|f{ R(Ş}%C"|JnR1/׃KqhtVi"V+E'+n2\娡)d(:u TP!$8͢Ml%+n7-3b!W9Ya,oPXNjms3mZ?mX\*[#O:$M gA,7X6u-QtV9+ۤlD߸hiRiLz m$opw.G]YNiԜp[$@ͯPplq0%-S9@KYRiDcE4b]5f2ǍU'Z 5d*m}W I9LZՕEhm_'g"ĈgMRB+tc(CQ94KJxC:郎D"N lVQΦ\",BF]O& rYdm(a)G(M0CrEOptgr7- L$2N\-S%f:ePZKFZl$UF> 7$ibQn۪֊&k 6Κ~G=MzrD=U%CҚch9^"S)z}ASx!;̍M3^)sSBL2eij5Vy?Z?m^C386iT b $<:B`ee!-Tk%<^ JH.yF&ɚtGȒ,+H%iDj ʩ%= B9(.ƶ`:Q !Mv8 m乚?]Avs8Qo$g*̗Roi*2"HHdF@Ҽ.ᔉ@ݢD5#HMViPO1s%ibZ,,LI+6Eυ*^zLAUSZY९.RaҤp'mhd|'C8!"G_g񄅋sF HDAd("43WSArhL O l"3B3-gZMTPJhniBM]NA XHCk5Hy13^kͱ&h7p:Klؕ'ԺEMÍEq@&Awo&\zSK܇ e97Ng&>&bShkHӏ c}"%Vw?Iw,`^Q'_'?)݀V{t㕦 b$Mw{1cǿn-zKi2P+Zo[:ֵmzL "RdZܜep!J}LVo`2`),~~3<8|=t^~':A*:|NGX\1c%P>3wߑzg6 pyQQ|38cb_a2blb$L=~ NZkT2k o>$N]Ce/ad{K}'|i, WHSn/ XSt2,4 9u>I.|+}PpZ[\]|Zܶ\1oY6EZ` uZ R-тLGmB8Yn~AjFͻ[] R O4s"1y :s@giY&7tIOe\޴ƣ-1 ͜A!+};-Չ #R/"j sSc|Č5;둑kh\!|EN4\j*j/=8BrQǥ?rVoDے Tk#C׍V**_fQ6.xXzot5g@Rf Z-4t{mYC3(0+EC9njayw6mb&Ȱ[hA#QYEDc'OOniZri(H̋4OG=5czB6s0I,"sQO(th#Ԝ|Q6݂jS)tP-egEnkثkjR}g|60ɗ僒D#ٌ5ĵ1zC?6ѿ4W/˳VEB(zܒ.6 0$J$e@|:gϜP%yMxJVI%["0;`:E|]v2bQМN^Ihꘜ,Jiz(%G?޿O5Q;h;?,éhĽ7iТmM>rrEf?r$8D|@ma5Օ0Krbm@m5D3% p<5ƦaJ~^7ä&N5dݭ>n6"҄$l,'/_{\'Ib"i&Z$Hq[Xyb{yz:6 "ȱ,2XvdJyn*AڂFr#u.͑XOi2e/ ~Cǩ aLl)jQ4xt@uæҊ<)ouޑ15!=pR†()ߏא`ij^Ǧ/u_lNA"|e@n0*1OS)A =S]FJtM5Y3eWݡdʵ1jhJ"Vr{`x7G/+(h8d<9ݝ=҃}!{[S!njA¦X[}`{`G&Dwp^DZʌK\,D/)H Z$:u.6ʨ mhup׿CycG6wbWBU\_3}|/npzvag1v=G\V_>rm2 [ǟCj}|c}ctԣ9] lhE&_,WFmӑrJ@f,2b|"<3"_6 "GHA/ uRYilT'B Ne[֩ qBXC1+dݏ-S2?1h?U8bַmܜ?goēBW56u0&ElFnq@"r.+dP ga+ܹmH)R(2 g.J,.[\mI1 "_Ч `xdF]Qog 8<)2cNDZ2},OS(܂#@3o D5Mͥd.MQ6PHc`5#4b]`]beyW4NX3sꖽ{Ҝj>4CO[䶄=@\CM7 |jů6=ԨBp"EvX/&^rsDAn妠ZHq/oN׿kf7-sjd32JKm(]j^dX ud&S#a6)i]LWqFM'Bm6XA;6X 'F!H;-%aWwY|!'R.IuһCt Y!6Ol1[ gw(ʹm>Z RnIqΩm*Ԩ@̼IMWaqJMLcJE (0( ĕFA|65&b"6gIqW\{02VW+"̽&>zL6w5ƣ+6PfJ],ihZirѫ_5h`ee חW^s^oR 5Vv%`>ɉБYcsl> R-XGǼ{}rd(PWѽ5g&<7N~ FX_78:=Rb7|/Sc>(sLg?y_ |ɧ8;>kVpqQ7̆el9VVzhWHIoVi%!A~oD^ txћwdT5Eؤ0PߙoNzۻ;ƶvW2st+e(ғ7L4V 1}D~ؤic%CP;OyA04Xy_9dt54MCt:_-\]߲LL۞]XDU `!(ĕ#mɵxGk;FD.2rvcWߢ2h5yRMU`߼Vax'dafH*c#~=ֵى5GW:־i(揕q8@K'k .D|sDʍq) !}]q,-7SWN42?MJgwf%2f}lL枆Eq\վ2XRlaٳ k;'1\> ޙرGdH_X^ZpnRt鎪Z15xYk\5eLv7LZnuuK׿&#V\"Đ 74@ ܌|<~h(\bKJhޱz;5L HϡM掠Swc[fAD?[y[{h 0Aߜ gJs:OY9R ɿͬq%7(Cc@GVxJ[-_*<1 vWSu!t-Nq)X(frXdF4I^z0v+}U#gR:,D^3Wkuf3Ҽ<8=yӷav-j, :TצQjmޣD{/6έ85H| =nDrp 0E IDAT)jX("E8⌦;mu|(^0`|cw*ِ߰C|V_oKD]c|)Лk;-{8;;<Ǔ' | BtvЏI.1&+pE,A50x[L'C6~KAm9&[q f^e>ݻO9H p{}Ml>E&1A#^} e9tp&dӾ &׀]>Xm~l1&ye[zow<;{xs|TY%K: 5>^#z̀m7+7 }l*.Nbko~ϸxC3PxGpLCa霃Ѥ($aQTnb<zx"Tl MMς$:Gt&5b9<-f\id&]JAIVVˀTܨ.Q]:ur?+w{h|VMpċ.s%%r\疣жD |SceM'Eƶ(e?GƐIolQgQp-괌%#%xdmȯI &ĉ5^$MTmY֘VxT AfZN'3Szt58h#* oE1&jK\ wA3Ľj#cUM~EJ읪)u8Fd!չtNB@܌j@"qd+K莫-l6AvTS*k@2!Myt+*Y&DLͬ -fht(J 6H77C<#8}ZcLF Xc6iT Q7${)K)l FtFl6Jpe< pJ4ur(}^zǏ0Z4iz D[ZH#/fan}[(pWÅH#dIURECSx%CR "PܘP#=_նcE}$n8lFpAv2qJ!gA'T=KͦIݕ$DJ#WkMe2,b΋ !jtagd I-lP1U>-U{Áh uSuz뗠Fkwp>b';6l P^{B55Ԓ&5٬:j^q[jޤ Q&^`-pqu1vJCvw'W"n$]4/^W_}I}Ĵ]\v;h74;Xdt4I36I!su.Ul1z+Ȩ nr^q:L6|t5X3|6qyvٸ˷ts)Ǩdxbw2H֦zⴁ?1g-=9=/PK%ȬWY㮮nN[ f-)s3Lj-tW{6hJ)v( !xB‘A Ø'OGCq9{no?SbZ~3d]h*y)X0sϵȒݿ]ԑ]>/C[HJ[6Â-O{LЀWIQS~#Ŋp{3:n9L靏}?,T9Lo^EސF g3Dί1鑛ϟ5l@P?p`ѻIZ_įh(P[2{wEɦ6 C,Tn*IzGfbxʨ'鯛>21sTˆe1K|.-H>"E $4X^x<7.XoV~t]5vsq׿)zT`cU_4(wm,ng q!~(6ξ2VMg߯m! }%\j[R MZA:jd;z &y.PGvz6 jM܌,XK[P,PJt& p2?;B,dz$Yz&V(ͭƚY-bql?Qw89ycywr Wl.%~[Z3d-ָ╲IJLK6R%ۂы\ -zHQ,5Bfcsμץ=]d)',IErix؊! >YK1\g>ewVhD !!kڨsI/v!KR*-&3ǑFs1,jp*1$+g;ɾ,4'`:Jq# z)+ř*2ᏔAݗСLWׅj^:'X2KuEpųxԨPQbEQ`Q.b>'RO3vYο6wXNL?PeJA'vPX&p&ђqBlfsop[mJ3(#NZͥO82I[`:_%<1k3dX \ mB&;tGKF_7nk& R8M57Ő#YFhȸ|uwj`OSs;W>, 4rPG;Z!ORW0'S)Z*-m]lqx0y_ ~L$1dmښPǷ[a\O''oʐx!ס (Zz[ƒ캪ǨGV].QzF/FCs_+BkDRDr:T'^k_-& Oj\92珗|%-9L<_moYyQXf[^5ASV&8\QsW| "W0fss?%.K=$rM 4 *y k/2萒h"&t53ѭ:/%jnGx?7/6o@'-K EȚ q Ψ0.6*-I+pk4]Cd^d0;ke<ק Kb,5pR|bAYհFu+ Әf8XHRtV7l4ItTic{Rݐδ4zs:s0nir4>RoYX8=uJs+ͫOoM+ 2nyn7R5h $%pc^fvx{ز;~W6%ZX̃/ͯ7! TpWuɊ{iG0R=0O5a1(^Ȣ:,cLjB>xZԌ+?;GPυ{c~򕜾zt?2n^(IӫBS"FA)r_9MÆS ՘M6,OF1[؅52Tipm>Ұbu"$xBŤ$Ѫm`6aoOD j* b`<rI;;zF[ݰ{pnT{f?yF }g{=$Z&{xIx |kacc>O J,&RI\flZ/Ѱ٩"nb7`:#.,g,S<~C3wH `(c817UbT/&aDd-Ij 'bckY7宆͝C>xlDM4[]&sϰy:A0^O?'wPqpxmf6|:FCV{{ď'3_\"sln#My4!Cf9OK<}>no/1_]]Q_[ounGQ.9דlAd]28oM\3rabY9cg8!?Έ$Ail!E@0V@a=%&h2`4Ϟ?GCn(X[Yh<!.J6D6c$TB[5:CM炳G°[VkZZ֤EkQ$gPT^gs0Ѣ /=-enu}_pĽY1IǑ9zjmu( }l`Av5Ry>+ha GP}^hQE͆ӨL3 jLߥ/??}7ǫ.h= Uc;ݼlHqz$$ٮvLMdBGaIQO523Nl`P1bt$JT7J %X @F&ɊY~d ۉVz}m185V uE`fO>+ͤ!NLփ( qi|>jEZS" )ZW~$mM 4D:1q2u. j'EZ 4U5jM |#Sq,;Mӈ Ѯ&2Iav`%ي y&EӓHI"nq!p@5ƿkj;j btsMINCt(K7}-L?*Z'7ZyDu8Lc31Xi)\ ]YfMXj4H4]!ytml5Uz:l*)B5-< w--ua;/ @̸MΡ&']DFidB$k:1wJ,g3lck}Ã]#u2gദ&yYq3ZtT.G]L?RvK'S7{;zn1>NXiԵnN3ї/t]7hCzS'ۢ0ʕEstͷMH(PKx8!"KaL:G嶙Dkpys*`t_ d\!| !g}kA*k 5G$1F];;{8:zC4v2mlɓ/iXYx kދ:εA ]3mtZm~f=MWxKmlJ/Şbc_՛78~{V؛oѼjۢC[bk1})ǯZz٢VJaf41xq}jV]|[,c\^b&wpvqr3B͕qaDյ\Χ7xG3'sݣ\C.0#mXdOi7Z얪M^VR]fx,-O">ښ7.!ש]~qHg.|5 J&…jn_WT R|nI&,Xn\ɠwJyG kR9ȃ1bs ֛^oAJ{LsIt{&I:u=z $H'ϵvlA`1geUȬ2tX;50V߻ }J?;;SVlD+ i3ZdD3y6> Xx hKc>/)#ԑ7h˹Sq閻 `e}fLg8GɴzFprmV3&&QRS*t3F=: +88U7S `4~66͐h7RMR"Z-*4fɣYLf[wwޓ|>@OuԾEVp(c7lc65H]|8fR>ٹ'Tq8lHo; rbC,F=&}l2Dl23+Mpn%DGp*30eWHjP&Xh`_CAR:̜ҨLq}{ D34n,f+KOop38Vkvqqu#s"BgGB76MJ|@\xMظmnl.V[* IDAT#b_f:C^vH[,u_sh&ʺgLe6X7. +.>?L<i'ヌ-#K g_腚(C,m+5kk'b "zvD8[{X_[E%~ɯf+fNg0}nj1>vqv|FLu=6pr|`U#gBLnϟH2Ϧ3績SF|j KllR HVפn4,?|hd/ڞ:-sA["{QH/b:5ṙQ 32xEvȜ2}E&כ]Eͦ\Ɖ)D/yXw岄 @j#۠*C3n{A\W\v-2s"P"}LR2ZZa"HF>XRQiɈ~oh)]*3 Սʅ3 bQ/ꊫ vT `A*=NOZ.ihScF#Ԏu[U)`8Qoug0*{ 9"鹈 fBikWʻ2Cs^9@óJZ)ЎC&1tCo;N& N6# ِjV߃z=E0Y2Ğ kg44qEshƤD#ʜklfcK"ad$$C܆tY{o&|95s(mh EL1TSi&^s½Mť%.9zKKb{suKKt LJUa|=UZonH{†@`./&;208ev*HZDhv+A&h[:z1^ybOpn2c!fkMzy>*2CM^i"8 fZNw TC(y#,ͅREfc32|~kkY(N_dgu-f.wk Os.%&i!)b40kNu9I)'"AynTHv0+SC7۰f3WLNPI{0w3pX ],MtthE!:،:mQqzY;w1"r峳'8=;.n(Ziե,/hhyW"Z#ܹs'Z?l<6Q'ׯf!B|g:./o#Uvf S r!\=~s¿9mISBc9 3&'h')ξ要5eI#<}9Nϱ"&Sm'1qc~#Xf)8=|wezKX_l)у{6Χ˿s o0 1_1NLJ>ݮ"mbyiS+)5 ,֎u5?;YSnZnᷴFȭQos0]kZCE Q6 ^kf"բj9pJFnN-wРP4S|^Ǟ> 2` @zhš+JjLz59j3*#K'ԍUmL6I.&vU|[fpJEO]JhaNB,j6V|YY8kib]I\#?.]/Oegn0bi0Fh/5!E^R(t>[OTf2jŅƶ4FifzW| 5lwLN% *lFܲg(+1׸R<77#ƾt19Vz7opI?L,*qV\kirdUt6 ""t4!f7emh4U,8 /h%x49@wclllr]8@H!)%D|ZD:;V#XlocN#R3AG7Ա4w xsg9i)r4u  Ltj'1ڵhw n41t.GGl KI{tu=:D ,Z*&?Ҍ&]bSMDǣ)nMeq%8wZ)NZTt%}NoL74LhPkK:0ydtă>{*^hؓO'(kwL=>>vϞt8gT׵ 'qAy56r֙?z+ԋݽ}ћyh.$p6.ξxvᖎb:O=^ұ2w:%֖8Υތej5!H1.NS/1f^cLd`Q?hDs$'_"* ϱFwW|gV~z6{R_f3D|ٔ룇.>y)66v?_NRlD $GRqzJQF9X*c'm%4g:aZPFYݼsIӝ1Z' aX'ͳY;ϖz_#6Ÿe(rvt^)6豀'v:EPḠ%0[SoLo&ߚ'XWhU]nJgQ4%& <5r,ђ?oCX6olڗ}{q. t\犕iv2FȔZ!Dl㚖)7zhUӺU@=6RtN 5LEiFWzdxxy*EE#X'lpg3Pklljz;`myEq lA>G1UI^kf)bK%\_]8-RWz%=u<8ŤۡS6Ѣ||IgAz/PrHF b&\N_J|_u v _~lB׽@#-,u[ =]jL#ܢ%M! _z-|O>ƔS(~{(wݝu-TF6o} /^(ϟ?ǃ51_}/iccoW/ůlE1~tWtӣ/PVY W嘖G+ŰPJsbxQv'-iNO&H=w:{ln:xxehF e9D#Veh;#J[lS\DX\~ l3bn0U2&s0I,4GN1q6ibM ҘDqc&.dBQɮ̄2dpjl>P:j}MPG< ³KE.Nfh w /f+݈2qkh& پȄ{o22"^5UWgTɑ*J?lljɐTe3鬑=㏬tYHXfQ浹y.&&F*0$QXGTV{)>bkJT\_yE,ph2B AFQk"F YusWR5Nu 1܍K1ݨe=^xpZ5}(cgx`M6ٵT G ,jʥn2-n$,ۉz݅0bIq3yQT͞=KK}:XW>9G3M;5e^[U. Uoo7wtɭ7w`:Pp=*# oZdP۔f 9b-ɻD9JtTl֔l*m_Є¨VN/]v=F,ҋi3M=Q3D[yH(QGf+d@J9a*"*>5Ly0]62lcFj6z2ɞ"/ ܑt6t$X(](5-+mB^;WRHK Dj#tfδFӦizxbŻiN3e3]04sXY^Ggs܌{j⨋n,s| 5=7L.>8Kŧ5sjk6'%J-M&)c!uv}mj`O*9Q7 ^Z2Dkili‚48ҬvSz<&MjYtm-l*=p8(kEeHy$[hC<~Ϟ}*M| U!?;<[jP̰Kp;m NHNNMq{s ݶrS2u+4iw{W_=RiwD/uټ:?G{ V/>2|ϯ l[`tv;U+_7R7RXyi1: NՕMVj94o^GQhxvP')2;C2Jyyy{w{_r} wD|[8Y@3XAq "NΑF:ó/'\ߌ6_ۺB{?sGx"CEE% H:Ͷ&X[I=,VlҧX[ý=|9fn4Z!63s9O=H{+V}c^Z>3jD%MҤ1!qeν`!0GGdo(4?J4Y?K9( #l\NNτp~ހ6x"1jX,Oj\*ߦRSeΆyqB![MDs t3CHk,<;7s*fhJ)-OŢ9КJ`j Ĺ_TDY(a,Hb/s!_֠TxE(āZ\Hj4 ӊk[kQEYqݙELR- ]4k>q]Ej"qY]F ~Ӏˢn`\wdl= =zԵ(>Z[42^{H][=*QYWà]d=BFyUwJ0 וPPn~q}eH9|=E7ehT9Dg$MԺ\TcW$QaFђd ,ϑ+&pe yIE_/UV(;ݨݹ^>7=T0pwx? ^1pp83Q!h6h5d >5~ ;0/7pJӔBXhXZõD]_&{-.ty}bZQ^ ӬD ^63GfWjS3DM.?LMh%YU\f-F(bMTN]aZ,@v̾Mtg^חB\g㱕>|Yc*m Fuoh42n 9޽kq^(kΝS|;2KOO,NOOrmw2Y*)!.Slo~x}%dPD̈́SO]\]O?W\^{n8<a2IY<] L1F[ ʚv>gvӚ ;6g5p@Q[ <<WFG?tj0G1%Mxs5D XK'R71h zayu yViq`^EYl.Mݘn6WVpm*uV'P΄r)wfTYh(c҆`BO{?utϦcd6s55-PM=e>>](McÃGZv||ׯuy/^bye,//c{g7CE v1n_!htpnt|gy)&tNؿ>Z-q,寱wyÒ c<\5!7w6VV6l6S5ysEjmfTLPLn-ۣWhwr}m×WX&+,[9C/{88x-G X>GvOobymC<Ż_Rz\)h8濚.tN-oy@O-F#RhsҞMڝ: 7>:xJ޼Kp3t7#oŖ#U֘ULj.sC 3,տ[(hv*+2cQx0BEѨ)}eERkm끅 3[KCh7wu~}issȢz}!~f@xTLF,hƖ0iR}䈨;8۴>L }FYGE)Y?ԴNeL 3j2KqtbȌljeԑ1}43vv|OD,fHrZTn 2\iIXfk+*S_jr4c#P݇`q I-J"Qs@cfqOl2t L,Knae"]NY%FI1ECEk3 ecH5/P1&oaX9 66Uɳ M:56c W>Y4B5_Tݱ#rLѦhڒhэ-5.,PV,K s???ctμ /$.Dq2\oD%j19aYl"3j1s1B8$iu|AšE[$bF*ξy zWWLGFRoy}ܽ6k{z$ԕk47&~2㙎1}}xk,NCvcȓ1޽*WW_[Þ1< ^~up7 n.#˛}ord.K|ogd6Ai /p{uC=/W'L.6KG?N8:<ɩ>v*BwT7Pe,M̜Z>Dw;X!Z,g䭯/}P$Fԡ?)o(|hWE6LE;jXLLF0V`*;5ss 6??d5B6!Z[؄0 m:rCbUYDģoсV9'(7(~35 03z}~FhT~Q}N%4D@[nj-I}s w¥lQ+hwzxVV4FiIJ4zhؿ...CsC3ˉi 48X6n^i+nl|:Bmső),8c& eok Ty?ՠ6+8s'kh\on,\_POHsRf D ,<)'nR`# 8;ɡ1V0j:c`hٙ?sK>xaPB Di\5^&<;Ш82,k$NIsm`W "f 8P4[pzu&+$BjHOP#` 6İ8GD|%7PTƠu#KjY,*ZsTM,fuTm\52X7݁kPFMu&KfK9 \ƎNm5x!:;GPY I̟*fO~[Ӣ*e7թӮL޸Ȼ6CZ&:TQDr xMhx!&ݼҢ1]vQW֯k*Y'c.qg# W{INaKVC `%Mf6 QiCRp~n GlJ[A.B]P]5ZP3j(=R쇠a.2%)Fki8$G#S L"2>ѝ sVWp;cF'F:UE<PP9./Jmab 겈fmCKvp=pHJ{tVm/ 9%SVi+/ѬQ Gj \c21?2 atWaF[v4،TԖ70d7sTaLaG@k$x贻$&Ms*}=GL3l혹O^j8TF枿onעLF 7M|ttU9>Q͋/FkH}!~Ϟ?:́x&oV >z-p᭘*\l iSϿ9:f 3lloK\#4a6:C3(#Ͷ?Vx{$#vB.05޹{˫fs. q~~, \{o#+7}*ɀҤ'f1..5E1(FRQ.ccu6;G3r*DW!;K~!z>^|'o_O5<`#J$u͵#3 x./.5Z]]K8_+RCQ)4KX<dZz<~M|NO.yJhxj4՞aGP%I+ճ(}\B%ay* Ml;i0 B圆7q0wr]]pKeE'Fɋ= vd+ nQ8*[g5(E1hX ujC#z[#kF#7)CZyL}7I0W]40hAWwfZY5qU{or>Du>jT͹:7[\VD{,n~<#wUQE}_oUxƵaa7{k4v Nmp`V4j}pk;T5+.m (AxWz3|˽ͪK-SGhi*֘lPǝl:JL̇e57ob83 (y-;{O?懚Ǖ嵚Lep\7|J$ vR"Iih>x@\ʕc-m‡٤6rR=ֆS*xolCRNEYʿn_wᅵ/ W-dD 15{BgS,ma6c>o?|?1Lp>aycS<P&0q;ӔgYa{U9wCN6iD&F דOf57ֹ9$(:XX0t-aCFjL9MZFq&f§±_QRc2͢jF{zOqW7Z@+xؐkѯ 7i>,x7sd2dy דҺzC Ac"1~uߕjp!mBZV^v݄զQs$ S3fdNC\LJwLҤ?nYFVV!bPv4M Tb^izM@e^Ժ&A"@8\DДYr T^l&#՗<&q0ވ5%< Ӑ\{w1N0dҫP# /)׷縺:)%"m \ U&};yFrzw0ΰk]'#5xR!fj0꩐GayyI HEDOPFZ[};w fSQ5/XݕhٔYC"|dse|ཏ԰%\_ ^1a:JGlU)?|KxՕ w}Wptz./~ ;kxs|_bme tgO?C>ג{ ʨ(ޣlboRL1a: Q_][վ91Cd˛2ܻ8?~|:ꊜGWZuGBSs5*\TQ"h.?7Luqqqm alh2CT36 6Z#3:"w:Cjg_bCG44RȝEC炙5,ʃ: IDAT8 +6/ݏ!,JhU.KǛ8&XJN/ υ؋6\ +Л &$6Cw"IBih\-(pk2(tNV\sʚ㪡C:ޟ(kT[׆],6|acibTt2(BvQ9rSUˡ^T|7u%UHko/l]Gn*e^xs<7}Br5ji.u]]S,C1BmevrU5xO}6jеԆU(^@؛4 >T؝ӛ׀^-,/Ҕ,8CjoАRY&k)rcFЦa-͆e SanT]*~a@FXޜƮ&p):Ұoܼ~s݆Ш&{ {oniY 9 cFlRI"h).d*CS9n[ S.j_"kx$LFJHDiUTNhNҀą#,bͪHw2CԎ.Թ2nR(/_FS.ݍwjϟߊ̝ÂAT)yt ڛ1& yiYKl.V)QAԁO'd]?(c\{cBHu hӾʉ4”4?RKrCD.nr*U9H/ LfʒNn;ᯭJ&&Nc"͕) ZA$#Q焑3@ˣzͼeFK)I #Q4cm+Yl' FccEzP$ь49#e.Q8Pt"/|]y8{@ŹM@)oSޞCܹs/_?T#|'CD L'g)6eOͿy;wunAQX%壓3}-Y:bH쨙~[wf!s]f26,<~!Gۻ8}CL/_T\=9[âRv[8?=٫O466z.M//xꕆ'3+;o6>c\>G|=lol\L^O/Hp7_"sYf0 ݣT[8>>O>kG#Zi[Dtz>dpTNN1鵱E;i,lnPIíCHnʷ"9_[_5jQ޽'Wrg%޿W/_0[b{n4qYmQ[[ۺoGskyG?~*i> dq54x(J md< Ut-~*AR4TL\`z[6UExX'D-1q!aJm:1t͟5lTKE*s*3s) r/7Zr BS@? q\V7њ{y-=6r'eUA YqE|P75!?5 Xh0* 6({R(7&8 K3h5A GXsW e[xkp:(ڕ8ܕOqAB W1=|(x\P!8N3`t6U-rmܥե]CK$eZIYQŐP, HtXSVٚPeCXuF/I2vJdэ>wn>\ja .f@X쓾\ hX5KB32bb9#k6 $q.LY81Nj" eT:]X9J9^kV.T# Mśt@/,ejed-"l@e I/2YLi UrIAI{bE(&¾4 rE5;N`#7,S(` #"@54ԝܳ"w Ep6ͤ4RE7S5[_nYCZ3"El,$av#bcH ܿ&Ga&Izо#Boa:6v 1. A4_BtPc[v0][^joIj̓&NVH1)Q0BEw4_QQYV*Hj:`5@a8o2:K& T(lnx@ڢ2!)9=vu,ټkA yo^|YEq[ۦi,asl1nnh|Ί]cdp%ޛøGѰۘNsy}ugX/r< eݶ72?&<6T$"&1nGt]U|R{҂rͬi0w-~C\(i0[9-R.L>r;I5xӟ#ߢovXӑEP,qsuVo=F^x_s\^at{ϟ9+,Nɓ'x~ FA7qؿ=s݃~o ~=llnx(évxm<|}QS녚5] V}]Hbwv0"Z!X[˯'3Ce7Uzn0hnfEH h͆+mǤcgs5,9P8sRҭ;Mo8:(RUZ+Dkjgg"d Hj4:v|zrk|{ןJg [͟R, @5zf(ʜ"]}y^:* x5%D0 Q/,2yT.؛صkq}Pw06elei}块NV9%[ ÂP6p /Pն}_,qxx{w榺oSc!.5_5ZYE[^8P-^/lUk"7-#սPpxks?CY!c8 Nh4 [5EF3 r؉*)Qi R>zzs $,A)YtY}[f ~zYp0),d@ǽp[s n>ؑiQjpgKfuYy|\$s͋xٺes4&"tip{Cԋize=٬ҫ YHX\3Ͼ@ZXw4+8צ>ܤ.4>ЦMH;{ :(GX]7l^^Zr$Q B*Pw80;yV]\3k^IkN+MٱS$1*Ȓ'VIYpKG6A-u,5Q֌i/lZ, %bohYMgOɍ"ݿϞ9m6:s02/X97Ct@% 7(EdPE K}sRH-J>fY,d38F 3ˣ#GλQZ`H#.+-LJZN/3rki֊LTs gMז G૯B0f VaqKcFe,fY2 YTGw]=?wLN䖞4(rNu$hi~~_Zt22(c>cme ޫ+nBx <|tq\ ɟ1.y "̅^}z GGF; sQZ׷:4rlݽK8x%M8:xtzʄ}+E,rfqy~q>wy2/oP$Yxqu)t{7@4n1@<1K'41X,*ڭ5L#^]Fo /_=޽Kimfoѷzh.4%tKjM_F>x NObܹ#?>k!\]\fʓ408?>ϰf)z!Zr R&s-61fמ%]Ȑzv"VdjɢƋ6[kO"z&Ƒgr870E!6=)\hA|Ll,VMݹy["ƋNȢ #:wtdTi2B^fA}9? *+_A9M8 e}tI1R YE*x7 F}3Y ڀD+,> B#|=#(M/hg^; k@d6k[ O{sJXj@Q<뚨Or4+cK]54ccƺή>]2+lmGT}o;hy '߲ OQ]7j8P4 Fy.GAg:Z]Tl&txCˊ U,]HE LyIQ:ˊjzbv: Z]@Cj0\*"rNQѥmM>X]wfͯS|$n3f 2CzʹpiW8xe/* 0^|mqbjp!3msPx0>IqjWF!kE^ff\r쨚fa' *}͆4; '*rg5 ^ "BXqYMo E +\i.ʠ7(jjpp-;k-(Y0z-!Bl{&D6٨Y4{#],q+tncm c;lF#ds28C39)sMSBtIgd1Nu1,Xف^(]*FX]86 ~ʊ Z;4JC%&)rdٙD6  rEؑʬGTb7PgnmFXd,t#XuUiPJӠ0<& qkm6:*xR/NJڍ'р4x(G.yMwcd5Z]G\ܠeB7rS̬I03걋\x4JU/lt`76d2UqF1؄$O7},UvnvCR!`Ya;ipp5hnL -ooUݗ ꁢ RrwCiS+p`AfXDZحTC#jGc3e>|vo\^]J']aV~NCY0ė_~ fwa8=ܽ_Of>?1Ɠ[`k{=ėO_-|ck->o1:)4i?u@RHH'zwM]ZsKVbDU>R'2iJ痾w̍id.~㟠Ȩ'VQƕ 0hW/^|~G9g/fյM[//`D?YKC 1.?H7DqG7xsd-jN(^ޠvp}s&pl$]9([Q̧ lY >Vse!vIKvjjߌ`FvcH)kNY[]Ê~wI7as)&Eak!k6e~pP5"‚$LM8Mw19j?+fjj#Lt Y2Q[~% ҳP ݮ*,}by9ܩԦ)֙)6}pZ!!*? *㈤θ_کQ#˾+1LҺN_\5=eYQTv6 h[HfRŨM skk?$9f C+ie"dVhz}-+#i_޳YJ|20 t$g#鳾ܐؕI1M-\oJfA L쮦+2 J55԰L7wfTܩF ZV[?НLJJx-\c8a乘>+ݡxN塯°)HFj*n:qGsi9At.,jBaHc&,7̴bf;SY4I6;ltF)'i,jK l%gLE#7rh&v ^.xwn5OL h5t={\(0h?`2V/'F#m++Gkpw+ 7~xbxaa΢~__~[\zUTI1QrѬIj5LlNid}ᅙWƨ`qVĒe-I4ޛj]Uie-9p xh}%:&w5މh6;xo1k3JɅ7=}h/~z#sZt+8x!Vx+Z>7 6n~4;(: |ɨȼٜZ5Z ,uP#ܸ~ GG.]?uⅣն FǕS%u%.YV"n,<~Ψ?%Ɗ'XepX&C=c X5){0<ȱdGZ?o~^´ n%5,r b2HM2R5gf)UXa1+%~hhsT[ Hg5>Or bM i! #}^ic3\RC@r\NKi~joߦ(N$ZER9Wl/W _ɴy^(BS}@] c͸J rD7PP^,(̛̅Y X@F֢SD֪?owr0Mt&/Jp18:]jeq"ʴ#S;l;|1QBbÛsLlbǹ蹌0#'Dxi JDTKJe5b"ӉYG tɅ gN r>RN:!e!$maF/텅OB dѪ[qȢsma ؝ݝne22_j=f9 2:,0IGwhBMkbOYuwRMjf.5K읟1ih1o"GX>)Sձ[oF9D C-zj&f4JY~s!k@VySNl5x줷̩or,YPc V;ORRi2*r%f9X85T"זTnuQyҤ1@=ܾ6sE~6ׯ2xYOwxf`>z)_2SƋ~" MW]ؐ;EC^Np;bΎSNt'x)<+Fp"m#jTٺ2I!}WX\XăǏ{p`ZaMW(LJb,/n7){3 b:2+}qH7j..jKX^Z:Fm_G;2:L· v'Ruq|r*&d$dn-Y$R ?h&qNVj9Nl|lmqX@TȊ!T Qc+3Ea ʽӱalIcr w$>E>V:_|C:+JCbN Ϩ^pUb `Jˆ-h!̵Ƭ&nL(ɵ"td3Y!2O#i\*9 +LPq/dƚdZ`X&IS-=ҥDg̨RS쩡+8)~;L֖~ۗ^DQ}meM%,vn#Se|O/tJ0p{kAS):x:si/C<)Ó7oފ&ʘs6Up|u vwٽS%bn W mow=nE~\:qU\Qo.`4AZ^|/gǏckpv6O/pxt2֝ xoaS !c{nVxm2'n⢵3䧘ۿ˪iDVQ,!E:'Q1yϛ qڠCׅu9(]hqUyVxFv7 ~Q y p3ܩåc˫ 㨢Se*VV0 "SS g& ݉k+$"6=Ds͇3ˠ猂v5,U*THv#g+S6(0#ȫ(iCE 9"渌,T$^FһGspj:R !vcFtW}RZk% SMN{,axd!eUpO#vK k%>_*Rg11iqZh4j(r1I|Mc"7`JUaZL5`pdU=q;5l>_k{Nl0skO?藹 {Z9 nXp4u-*MaTq64㙸)D,9Dn& pȴTS(G)N$ka|p)O/hs<6uM+f4 ՚H(I[_ι_Y{6f Me6ŀ:rzMtnl o i@RЌ~=rLg‚EO*e0zoSgTa#,BMర*rѠ+ J;LO^S"E(YXNDiR]V-RJ`.6z m(L+n!4yX7P.v>N Yא]WF-D\Nٸ6cɓM@|Ѧ&n-  26褰$Ncܙ qnA0Fn\P[D8ϣ)iZ?BrL"#ssfD'Gsm,ϱfg7n>?߸!FhB4O/4<>=Ǎ7quYLQﰲwٷ)rR}0\VMX%'lۿ9?"V6`?w ƺώ䶾uuS'g,`0WTK Pc7ϠkA. 35B]\byiA|¢yk8:>t 4%$k+8M2zhMfaWTJ=[.6iN5<859ϑX:Ɠ\fY(Ks$(\b\e yNT?WQsgg82g:Rh*9 EBʂ{NݚMŃXV^/;k֪o7><-4u\ly`h|R.J7  B->U\m#;/(ȇ;Z-7fL]~"V3ʌ!_45sϡC *P?gͩ!r&hX͘i.)9-iH}22r !C椺C}y\^YdAdBMb[ 3iC[JbK5UXSNyFnF!]IaȅiB@'MdC>6DYj*%vvbk%5S:¦{|m6 )5'?ͫ7cD7Iso[x)^3|}4qr{l~}e-9K qKڪ˟9ѳֿTy/.r;QuWt= ncGʿcMt:)..dnw+k<9tp|m4mtǘN G,;8;;EmY$j0촱s "{Xhwn6NͮH^aƯ~+llEmYgYKzgvpwa(Y_,u'ӟp\[ [׻a@a@xWL3#"x}e 3,/.jx@-em9"0ɲHg\8>9Gj F>+3neGӜ)5.]GI H^^VsuLFCϔ-xaʉk JGmTLGJC _|S$q=+^Y`4pway Q-`HamPخBmQ&)0fBŹ9|{ntŌfkKdMQggFt"ϔfs~0͑8~џEEН,3h!lҒpi\3MGʠ`n4aD]ҺYV\ )=5-g0EV]v '؆jwtOg@gaߌd4JXfMT7@Z{qSkQˋW0e"eqv3,.uIDtwoO\ hO>D5?Crև ܺ}O >MQih^htdik(? # TPU#^uT\;q$Ye9>;ϱӡc_yXuLW|@pߋz; Âeu-"fi݅sΌs$6@5&U QdBk\KSV !Me<pO<1ל='iJ )Bu\/=>4p~9 6/ڳ$Zj_5a`:L֛zdUV/;hYAa:V2M\7R:y#`sqj 3N f'-KKfH9p]gNЄ8̎ h0HB+BE}/$f>9̏c!o Isl͙qBlPauGSŮhÁVuS_RIjjq`tbq851j=bNV-?aقx-ՓS87})ZU;YG%LtE98b[szNDGvkǾC%)郲GfVhW8%'ԍgQˆӞhӽ(as3w(%c|q$0˅ M* 's'DaF]Qx^rY* sJz$0uv+56r{- , @.f]Y2ءnJ.賬Ѡݻwʌ-'|?zXrH4 FL(|~yfy1<r"S)֯m'2UzpCܾs{?dw%vjHQF-r=ƺL%U:ÆwvngOB)cڟojwq}$.nl?݇BI񴇃W_FlQ@W/H ŕ+x9z'""wnm{|z"xeRzV.& ݻCMG2#Q!S ef,,sA&ۀԳ ~oщe\ɘ,DuxДpʤFLbJfyWW/qX ;=z*s..ʲ๨u܌:\I $ }5ŘF:B뢫CBˬΘd֏s(ϛZEUgxt]mR@Q xC EPSTVuߵ!׶:kDr,ݠ)P)*\it=sUCD\F5݃3c [(]'lpoh]UNg(lp~.+B,?{xu!ꚤ*pX!Va 5#Q(cNpNOFyaE41';_bW`UлNҺ\Y$E{wRǹƔq7-0:6A%?W;f9Y裔I%LD"eؚ:&NJ@F~d5s6p}N( 9^ޛYn,gH,. tSD$xݓdFζغ#̲@#mbTߢ6l~iFKXL`֖tH4q,C$LԣU6 ,//IllnyӧfU3wM{yqg8|Fׯ|]on,^ŋW]\RD$]ovߠnccu]1?v[v: '6>x|' gA`sc}/q}899ǵ[wm fɁN AŤ.ƣ3t Gj:KWp6zKS,.2.9}QiMzjN9t`0ퟙF,H>u0:>N b-JM&)ǼϷ66$G`1yask {{f vچLZuϼiry/plzj➈pE pdL6|E'w ;y}flң4zf!J%I<+-za YNě\ك^Aa)v3>t^We&bX)[\,/9 -o>Cbכz;gF͕9ޖQ~gLmexVZ' 35$V7xN-$1vLpd OYiTPqpѨ{.ąo/4eŔnJY6>gVDoD\)FNa+CXAQTCaEYA&cwrQm ud<@ Ɯ ]Rvif)r#\G=8>0<eK[qfheayڑ!TvbͿ2c\іƾeF5,s$5Or`Dbы>V=x[6~ %2K9-cn^x~|͵I ,z5}3d:_DBO桀,Np"FE3--1,UʢQNO5o,֯- J%զZ+gdžBbgΏٹew]DW6|0"){FVFq 66H./,{=T%澡v%–JT#(DQz_{p!FD1aTkEQ 0b"!ZZʠHM}6=#\bes4-N<{x822+l#NG-}5FPP$-Q@ճ+- 8f8q>qS9q9~_D#M-$fgRܼv+X]Z7((gekCd9LS7ᢝ福MVHJH[: #3̪ظ.*7bƦs!]u/&^lOQ1iWx9X"B\qX_&LcfX|\OU8mm՛ 6RכQ9XojHkWcsuU /%<;;og3r;׷J￵tųyrMkBq KXZZUǜj]z.򲇳 [;ɔʸ^$/;Br LJk>.2tpi06q|ag;:Rq?ϟn^1F4&ҟt4nckB` fZx zKŋg8=;dzWfg}f\zcZN +7Optz ]--!-\CpڛbX]>O3l} Q#Cdy\Ku( J홑%CǴR]\HaN̙NW1L=Cy:f{ԕjyg?K 0k¸ aU;f9g^\ ^e#`9z[M钤WHm3xp><{nӻzdb[ s2E hW4zDJdئeh q S>u恖z <_7۝W:`G8??U`8Q &*\45*uD2nYK5ݾ~ KEbmsK['mfoM0 4ĴVyٓ64޾p="~uN0& ǾASe>Et3*.t)='sxБhLUCmҲ#9+˽M}Jmvߓn9t?R䎚2"[{ wqz|d"C&JE qpi>Bop){gaA҅7_a`_:ȋ3|.-cw睚>T+ĸ+fK7*-KO>Cօ.,,hi-wᆭ/^@+Wo߾ Zi\`Dob(Mn51Qg3@4Me VE7zqq!$b u] 5P`EOj?^Vk6^xLFLyT\]HhO?!; \h?PAr]ܾ+K }S{qO]>yvwPoU߾u[qsTku3\3߽q[tkhՙzzkH. 8>E6LIĊxg޹>ku]&5lmm5:r/᠏~$:9|C c!!Sl|9Ͱ}D!s: g;Nh ;4t@3 2ס`8Ay i\@x &9IR{KuP҆&ZICntYsNb.U:uCK9ph̅׉!6(βvUfF]҄"8_Z+۰@(<zqh8e͌x\6IȱTrU7I3r 8}I9RMAX$5Dl4E IDAT3VG>L &!H삼{ Ay^,%YI]8:W,ᰁ,o=hF!XKC4lIkƨ\[#tiASMCT>Su/>uSh\]?sv]`~ܬG[r,SNQ6iM;m:׍b`Y6bԌ|UR*72fh,3&nTMϢ(-D"tntM'jkO}Eͥ?.P֨y-4ycKS ȜHM+7X3@hm{p2Wλ7竻"GTӉ9^GvhN#lBEHqaYpɒcO( bd<bsEf<Ԩ IV_Nxxml߸!'f@VKfq7U]p)Md!2 hCD\c#$vŌ/` 6#uO׿BFP׭EǟO?ށbFa/}.^{`yy]:Lv iK˘O>ᡐ= ]Ƶ''G*lm`V 1rSt8˼QLg!jai*FaO&JO-KZL>xnj*Ϣ-|nB^@WxkLGr@>oo1^W iZyTCٕPKc>gj@ώeC-4븸w_}e9^>?xxC7D>X9=T|CD") ^|w^!iPfOu4[ظz DX^ےWPpכHtZ\\z ʓ#Q';E@lllJC@y6Q8JwA2$߼6S$^0t)*Grgh)Q(C\b&ǐWԛW36C\Wx 3TS>ƭ4j X0k]E ؜ ײJlݱE3<>mx%iw4jޞǁ#\CGp7TU&GsL29ʩ ZFCJ9O3G*CV k'}"wN͌E 5G]VRJ^ΥFrJ{Xx6Fgڌ<#4׺ќ )|I_C`$U/ab Qc]:R 7/tB GD> cVϚiD3թQ:Fl%ךwj8cXOLacA͙ 'q^33Ql, fip LXU9!05\%֊mQ}ș|%\m0T!-uDkp 0 lVp>Qsfy]͝M:FT0\ipS DJ\ztO[oiՁ(_eQ67D9lKM=}цyafVnrf&t0QkC(v+]pGB1AԽbraqQ'لKe L|zrS&'R1`MƦ4O`@ zM \/~x-6—R9y9z捚GʭE36e4sP7VD=:9Gu}{c2 H㢵iqKlM౐Vn'OhxϞH#4`Ԝ_ F>)O5VU,>|PaF!ݿ˫5pG8=bk"#=uV7sQINH[/1_,I{rx/K ߼qgg(i c9(~6ׯ|!o&8`NͽkJ/udS][la'ݬPHkmy/Tl~Vid8״!Tɭe6PQ9 (kM9,@#%!ވRz![ԛ D| W}8; 0C$܈C_zF@jor?#C#@0x| `B_le ⚡I{kT7;e"3yCJtlR-!$QlJ6b! vMQeTbhpDj`:eebk,r+ ^4g(43\.ԢBt?#r\Нb"А1Ө#vjp$2bf&d+,?yeS(7 `L(*G{r4OɤGuT~*ڮ{$A_9988`;<"h6[,5Q9qhʙvj $.rUu氋Y.*,W3q6 S4L[iZcvԈP %6:bꓨ<0o=?vkXpz M:?2NFjE!*Z5=f:RҮZs&6.Kn5* OM_\Աb|~ƽUԄƍS_iru6|"©P&J#^Ȝ2] IgSolf!Ł%)ѻ9-rzhbQ BhK,uP|2A^sr4"nvp1;nUG$@+h"b=ui5Dž)}{3칌)X+ ՗Y0E-Mjּ%D eAK!߼<‡)A" \0(GGZPG $ :TR1Ka8TofƤX.DNHׯhkxk&&qf6e& 0e䗈>GaV ҴPGqi׆ 'ќՕ ܼy~5u( prrC\v r%je>)O<:3$enwZb!-`8 ;jb0b{릌|MHLfB'㑮/~RqUwZ;ч~2 K3Wp 7>{8%M9+ʌAbrݝ=\}#E&ŰwVTHexŭMGQo-vpNL}{qSlNwqv#AYiYBMl\.p8{o^sucicN4u$J-ʅt_q%i||>Za2IzD,=bB^ {iټ?9xڸёkRAT;b..1(;p' ot|Ib͒5G5Ѻ£NB7sq FEg7nrYui ̠I5zvleJqœSKIEa B\qqy.P8 Ѭ^H:g䟹UGQ5d`C>,6|iƸ i{.x,C!o40'B͸b8`fSQD,Rŧ3YGx;?7E$ 'ȽUbV ކL>`j;,Ctذ{C*8'R&p}7!j 2N,sHAB@}P5b9$Qڇea \U+C, 'e3mMQhʔ DoL] $UN&j_QsJWv tSCetEH1klPuJ~|* 09 ,9sT:=/8s?J9pwӗznv6\InZS<ȍ4pC=d~ac< H6Wq& ceiI4`>g/^>ųOU4H& Bn;;;* ec )DCl'*_}ms%|vv ,h66|Ldpb.ʤ7oa ']wa11m`7l? īO(.HYkXÿ /&p.RR0Nszx'{Z͎ nÏ>뷻z^y׿ok5}DU!kVo6qyqA@[gӊslC{1(쬣V_8<[Ewo_jhj:Z<~z"n7E&Bz;j~Vk i%dm G/'?λwZñ! )ՖY|8b~1z(aIC ՇE}YƲFN՘Gdc}E-ufv&/{$י >ץϬ,<4Mj_tWRlV%َMOP(ɪJ89ͤ~6aX׽9q) 5E'/p N(u١fr$#8/ُBEPUs~/~B×Nj9]􍕒:/kmieM= !~: ?{fc{f6j:"zg7VFwM|vSl,aI4GXsblQ\SC{3GuRA03ttԹ4vds4ļ>%;vSI1C]MΔcNKzR2fݮuzDx."'*b\'fHaf5zgvhiԮRõ;9H7"tQJa04"!u٨ǩzȽI|"h"6Hj^GGh ˀ2Z򩘃%ʺ(H3禝!K:q.y}lqC,+STwm_5E=0qN 9ʤroɢKd~z^,,vm:VtUt=,- y6CmZWY`"2vHm(r BXL+DgS1U $SJ Ul@$י y*qPЦU~ %Yx:" QћQzWv6 dÔB1/xljanqNh9ѕUyFO+ɟ!OiYVHmdT&ʩ_u{eSIBPBá9t3zoPR(fx<&HXHJV**mn$VhvUܑeA_B U BTJ Mf/{fD78s eqrWJ%jf8Q3BFۀܤх#=X Βns59;PT%?\(/}rܫ0'u0 =v_L_|f(ˀ~\>VpX2" |cUDRϝ>#pY=!KrK"4Bs  Qp")hWW2;}_\5( ;œGoh9ӝ>''tn.,5lGrst}!)KFH3{yyûd%.P6 ?VYj#6.7q^x["}wx֛h]pIR6H.Q"xե&FÞjDk?8;9"X$:N",.O~;q]6I=ldHC4Wn1O? [[(WkX\^b&y_1H/?#z|mܕ" JuMԛ+}oGĽOͷ_dzc9=,B6`c&,@7@XQdxaiqG\ҦCJAe/`Big1J@D~V#kz;A%6C0wu'ρPQLZԐ&;̀;ou½)9 ERoܼN(!,qB{uʽ^Š9Ә>ЈoE;rgrg>H{@3)]<5醫Ujqj0Lghا;f]fDǥXFH89%LG}mB]Y,n&i,Ա(AENߝ!}!52#,4:-f0qV9ϲr\^iN_ Oz+™}K\<ٽthg($@r @8lϘ~L|ܹ#a-IMԓ!#~!D,!k u6.az97PS sZgMt0*ӜΌlxN0\Wi,OCPP+l\/ lb`yiSY^Dje:XsN5n.Rg 5ql) L \\(8SyϡRbAިAXhCkqj67I/m^LN=gd"qGFg?9t͢H'o*S!+vlHj- w<3Qh,&7V5s$)$S IDATI5}WBFI[h"#..y|i0iJ[H]&lFsaLsEFbbmV)7 b/UJIskOVBVH*h8W4-"#p DST&Y:[7oJC!юfR{՟Q.$Gm1MDG(h3jbN@# @ETb& e!6e4~^!3QuNk-(ų]9--6sʊxw_j^N Y(mas8Śʷ-|7i\bW;DzQLYﲹ^`ϕeAfBM4I1b$kA܄JK;[D5vlN'eTA>CxT] 5_$Z} :khJ4fI{xz[?ȱugX 7R$&Us'w/z6%y3O7ol=z{lQTPts24+ IO1U'^V]x9AA+x"'ǯs&>4\c4}Mܹ}k̤w'Yk,bU |gX[8Ozvvywӯ?gɈ )$w_$v{cj o>a\3fI D2$o}#f5ˍTl7d3f򽼵2͐1'AqMpz3y\{SVgQ<.&%)FMY6;E,?2\+-#Қ*۳#'aYI4@Ãsk OqTjr˸ᨺ}#ܡwϤi7z^ϰfWذ%Ն*نMSYߞt'7 G ܄h*΀+b)o>-?ժNs#w ],qԠbkz1&^7S]?P:5 :7%&,zI,]e6ȱQF8zZiά}s1ռf|hF`e31B0*]VӚ |[nf3n:uʹ+pfv`B?U71NS7mj7^f ëK{TRtxBFmm+ErT+!^2WKl߹M'HĔZWT28KFdWH=qgPoZ%nFEa'ϧ6δq95W}5Ҡ [Yd&$Zб4##H P2`y>-Dl1 FmTd2e8S, ?=;x2b F<99S:GZ䇼TGdSjEm_/r+̠vv} ˫M\wh,.)_^?{{G_#d==c#+ {}|Whxr|$jOyptv>>VVqttBՏ'*_ZX^]1Q_h`TVVx:SRig7\BOf#jО8>iO>o߻{bAmloߖ{8_kWKNM̄cĊĆrMdrGmCJfHuX{5 R9#IQD(aapT?rC3MRd ŹZDyO}( `fW# _׼)Z(eXX @f9fWT,s \=ҐT]΁y"mShzs`6qGS9MÐA9oZ`5d+HfchIAdݨ[ m Cs9{pudycbZؔc$Nl AK<3TM+=_9Kq2^jqEv3eH]`<~_?^3"V.[,REfsq9RXdz'(!Uys#s A=4%-YP䊻(0)'u,!4%T5ɦ 7 ] Bꡞ3Ήԝ9˂l2";#,;oiq}M:Zi$G,4 6$A(>A;x;-RdzFFX^ZĠ'c5b8I:MنbpjHq:ssQnuپ2 un9҉a3å}EWy5uS{&$&IY|(DQ,dpqyll-vu!ƺdL;R%)JDmO[??NQ-P+V}U++,ĄFΛм6׳GbH,*:T753꾜^*p0(iJ;Խʆ):]qaM4Wb!7+ƚޭ/Ltt^PԌ8FT Xi[VV?Mqվ$P rvd*e($v@f/` =Nn7 | Ku\Nprᰃ3fJbaɛoc4a4⍇pk527Qmj:[-ٌ-y?k]p}ʾVWeKK jUlfƫ"߿eS|vvFd8bkrb0_vְًq-"ωx+ҫVh_c4P|ӟPC[|]?Gf^O1Opy~#ɳ[[X@R""5_p/՗. Ǐ# +Ax2ƭ;hw0Y$6wue_DNƽ CW$(ҮYBA /^ÇY_~9.Mz}VNJ1zubX$y2'R2^~0>b2Np}es"]{Z1[̚1ŭ# ku9uSK@KWHuUFKd=g1#g$kS;.M&Wq}u>Y8QUB3f^NjRD5沞&ԭZx`ZLYC=k:vnb{ -猵:V\o}T.Rw֓'6ȚRչ %ٸ9W&>蟈#ee _?P* Pй3M&,%Ői9g3]#*/! {E]Ye;7X]9a%U2Li8j:N稈qרgqYo@ݼOm) 'Mrs&o.0wc\-\Jv&׆.Zl"JQ^"V6'c6N=P"ܾu x0qrtzA^sq*ַ ,1UTj c$XF~ZC!ɩ|6Ғ ,YfKsکFR5K u=ju >#iiRGtۣz/i‹ h6'lzcE,NK2i+K t/L52B[7bT/` gK[@MZJch3Ӧƙn_p4יQkl"ߙ0YqgE }-,šsJm,b> !' 5!PY:sߟuG]b3ӬYN\9F9fM { Wd{zfٺEZk^ t[ϐ2<\6g^u: Ҡg6Trù^95yN|f@*a;DM$fVbQz9r:;4ɧzl\?^8~.&M]dxl`z -Úv~7Wkˤ[n<gUOe̲&i hh:~1HCFQ9I3RWL%'V2gGY=o@^ hFtn^db-i1ͭ.\|532 =}=T %\B]E,AtAj0(/vIL3"kt֌H[(į~+ȥqzvƦe|cs٭{y)\c]4A4V-}fY}9 iDa̚fÀhk>4PPrG35pI6cȹ4h:fa$3#qDօ_P^Sn@XEju!`ƌ؟j&1G,Xf=bCSlnP!Y'hV2d\cyn"ý2m4 %Y|aΥ)SMgE' t(I[dIqL^ҭX,@3iؽ,,/ÇjwI4ϿoQ???bskܷ[7opWl1hw%-_N$׌Y[]F?5~cRMA47ADVųp6DS4;&d)NO_]^R.`:*mdvZ^+K7%l~dF*f`ׄR NXq׿A!L=@MP9Avڝr_2XE˅[2( fz}lkFit \jpmIƽb/BR(Ti`Xy4:jqU]`w hLM\H^3.%df)Bovڶ̼&7dF*hsl|촚D\n]hA6P欙~xU1%2Q:G}̛G!3uJk4)HgSu՚&͔ޚY|838ρhq*k:\S:@ b"gM iCM}ϫ< Ƹ |?7p=:l͡ԔҒד!KáL.Ngeٸټ;٣E#]r4;*08yN@KS SL;FNlb6Ips\_Lbуg d˕Søhr8wMɿc㨣ذ:7YNչjX,yUXդY8x2ΐqKMhjI1`p׀5NBx~_?&Be03S'6ksq 9;〔 4Q8Ng0ӈ¤ea-DF<[03xm +7,`{_L &ԫj-[X"&IEY0{x9*=FR 78^HC9G IDATp^CEA[M*WK|Jllƃ upY^BH04 t'OK6 1 4DRl'7p}u] P%6E@)ѳn4iBB6$uBKI!F FX5:A#uٷI^h~f9 5sin~1M?( I4NB&h vMMϥP+L=KPn+Dvfp־·/j9B Yt}cv&'CF NSk& j ғf:cN l:EwYK(xjU-`4uǓ67$x!DͣP xs&)sYvOj}x2:Nlx~&5#rzg @jc ,K̀$_>/^LЗK+ԃ=Ukܵۼ?~K s1Bqz?t4jz秿SW|/0ʑ3n2H!ν{qzt!ʲ'>G1~0x(ydU^X炼gCːR;Ѝ6:<+B1fSB;ѐ lLWyPRqؼt5n:A}=(喝ow$ޠjmq 佝I^Ōׁh2S[Ia*Scnli1iN94,yL5S(Ρzm.ꩺ +\5g6tyYNl¢V^+YDUk!bGO,3*Q/ŢR ^i3*fz1sNUK͟!/ESKT -(͑o ol9 [MhsbMn;Js*, 4 uQr9G^]S-AS?&CL(0SP-ԛk̽\#* b)FHI4MrT!jXtUtg7Bg!{Fou.~N0i 㻬I!70Lc]2Wih H ?ҊϱO5!HwWr [}Η@ݺ)8DUKPIѕIS󢛕<@ʐr2,|e~^JzjF%+ْ(@- R5_v.wMʺfs?֯/mr[R\gwQ Uu-Y+tL=3dju#|s݊Mr^Ě.>"N"eW͚ddD 1ULҩ0k zv8Zǧ_AʭG ְ/Y_^{+fI]u01! ׮/[tisRL͗Ep>nWp!QIt, oS5r8EuSWm&bQȦ,~l.,, MYPT4!R*KXFXY[b^O5čQwHA=klťE}Ӭqē:g/s3Z ;|zBfl:}9@٫_9BA\'lbbL%w4b"D4n ,<`R Ԍ(ƨje0TލX(WP/P,{o/A1Lzp`B:8nm[wOn'⺵}[ۤ z\(;x  EV"Kؾ3g"GfPXĎ yYs y@B9NsQ-jBrLa/mX¶><sl)tq{y]ϛϬ\/ӯ⸆/ͽ*\NX9qh3rHbCAˎ~<5Ć&3z-ύo:n\>+rx+|{4s9'Kυ i?=Tݥk6E76Rs@A5R9Cx254ؐWjTS9-]Z:bV Ѓq#3RtɑWjv#(Z)YsI=1 'b$T_z{Լc#p*w@OMol D_D~pzf1:Ei-\N42)рȦ?s$gX߅DR8*͕U7Xn.4& Rp <>bhf<)':;2㱚%l)Ӆ."byi r"aA#\5KÈecRe[Wq1Gy=)BrČq64pQ`^qӁR~t8t$;;-lΞ Ӳ f?5'P-Wbv_9.Nu^+ z6i$&wnӼV3TkuR!·O7ܿE +i*.// "m҈J;aGps{Ik 2,4W>Ak7oS\] @tCg8=|m|t1{F^t#:k1hwqk>SomۧO}|?[[8:xC z{zs}j)3yxHY2@p]\wh/(Vx[*ԛIg-o#(+^yn-="2\,Xl )F_Q_T5[7pt~ZS,5#mjKk8yBZUnO3$a"+ڟ.[rDQ)]d26ڜru[bJIZRs[iN3+B^IP-yLm}kЅEdΠ"a2ٕH,gqhO:dHC32}h,5|Q]= 19P6ѭS_krRGՙɏӽ92eZsconZlQ`VɄ2ˉo2:` }J@=ct$Ah̘Fι3s\/y沛 |(K:V)lHce4kHAȌ!,J79IPhFN4bC}2fwhNYbz_9{]y.sb"~N?O{]܊C=I23TɆTDuSHɸ|ӭ[E 9tKucKd^96|p *;qMHHyƦ?`VX@#*bcy lv#C z(ŤLU.MMg"RP*_\[ɩ\c6 ؖ/HMش̯ we43*XөNKCEEW ݩP{mP2Ͳ;=T](Qhp >Snl=J$U%~_uz}Źf&"S"X'gnjy'0ol}r4ǵF?/t7yΥK,6,`(Ww۹qs3H ~%׶Q-`ai=˽=f޼#ߞRAQzcdOXlp(^_pySO''%|՗XXGcqxПחx'8>z4 LClx%_\"pyvם!w￉OAT&UB.ցt7g@̰ٳ|n3r rD:&:rVVpr|J Ϗg*^5F :&j2hqidKԫ Lxw?~a8r[8(5vEyвy.8j.ɬP0/XHfRcY8'^{(g{? X; !\Z)U 5Mg{O><<)fP9N͝VyϿά .CVM&fK}TA4dy7:q)鞡jZcntF/ЦDmHv=Je=O iu!̹Z{dADdv;ֹF9ZC'=ל3&unީñiU՜M0oy-2Kg0LqęҰN8@/jbL3872g3,W~'g6?\MŦFxbdݻ `@f 3~}l&q79[:P}u o6:Hʍ&t2f $,)!^EOӡf;A%ڨRuLFS\1 QAPt}~8lGCq+h6xlwȧ`$Xr#)}  &nmKN}&ME%oR@4D&f;aѺj$tB.)oęK&~{( :"m;8R'4% :ꝱ9/NV4n)z)3d*KLZb'Z^M16E+jDo<>ˬK &dɰj^J_\w.>!ڞM9#_B 1Н1 c-<߷$[xFaLn9[ߣThkXn.R(e"J 7gGأC &C^}͈JTħ}f x9~Ɠ!ŅE9Z T5~7oЀo;pra<1o>~) w`4my~6EX_E64VR} ~aI/ǸwͦQӧ 7 )U ~VA;b qzk;,FVtt>=9bŗ@>(MZWͅ:1Og|Z!C#@1U#ht֓Y "qm>~ KWXh6qyͭ;& J,0\\DәРN}zxԉ*%2GM6eLpF52l=::"5vxaaOE*b@X*{Dxa<`4`:Qf0.ƺɺQ(Wpx|hZ]ha4fibHs6FDUm>5S/g/9rɺ˵Rw.Cc0%5N[2ˌfw.SdTMO4mi5##LcmL[[ CLL(Qpذ֐܄,pSD6!K3$Aިdn+jq҉ciϳ8aN lM⥚JE GޕIb@j25jJ WmP]bfȻicOF$Y$Qf9JQ);3)|4 u*>ҜKG egf 8kآhqf(#Ι&KUILi(:9k$Msyܣ^Lyh\4.#` dT$EP.GLc*5sgM,.5>d7{w*,=J|2M2i^.&OH,K W$XYgc5硟:hS6BWI Ľ9KR/W1HV"OOܿw_pN`{ݞ!(M#Lß z_YBA76ꆚwɴt?Exl(4RhRN*P4gJwM$:t%|R4PT8PONJn/*a'dC" >i%DF9y'b86z*hl*VKi":CAV+C^^Vijh EEy2f KmaB@o|dHC()Fڢ:KATbPd/=/'ZQ'Co.on!¢i(8#8CPP[l Wv{: SPBH|?oXnbaie /^ݗxl6'DN:}6l%N7 ʕ(/6XYZ ͵ukUj%ǵ+r`Tp|,-6qqFph6}4ifLz (Zt-6,9`{kPz3R#LC%=Kk-xXlݗY'uoohE*i{S/7l~Fsr}x.^w_Ж=rvMz-W7zcC9qyrjC/Rr@#jƂÒy# |u}ITۃCuPŵo2S.́ZɰzG(3Utq\qS0iyݠ>%ᱥtNGMmhaiTTD\x&J9`?[ވBxLQ]3y8s&#iiQ^f<̶FX7`fkQX=By+1iB"rf [0@R /w&n~D)~h\rGD2\(K%M }Z†Vvs|+Q&я}x Ͽ2-8`?$.4pt C[=s)TRD>o8m=T%51S6FG[n6 X:axTfB}14hoޜvL+Zw dD*{J°} )G#uxs!_ ˸DRCQǨ{eub4+M9aIT4/ڔ# b4PZ# |h:eMT!fJ5!Y")e~Iq ݨ \տ˿'S3EI#mlC)JX3PV(\ʲ.LҸcqT:I mÜ[ie;6gb0zsՊI['edxn=*`TAPsY龸1ɂ)蟼b |w4Aw8氇*-HQ2% +E@([A^JҜt6mvCe3 :.(ʼnj%P FsV0\q㊇𒞮#ND|O(E$7`NPٗEHC6 }{T C6;Ľ4iqE[h8tp'GPIN[W|EQŧ~I6M&iZjwyܡ|b9? $T rƣB{xZJPҘ+j.X^Zd8V,M :B 55:2(8?~m: T•n|:G.1JWh_IK* Q Oe˕:@a2 )fPMќC6wvV>{Ǐa{{bAq7wޝxkGWdH>pj-ƭ[wQ,WxߟIxU\__ufXb? :=k%>8U\\A(kZ}928aUFSP"s Rx%hG4?(1!Ther%aa,=ސ$̄ zLU:S[7?pð{I}7|}6 3c t4-(.kUq,1ԆC[k\9 w'"ԹH?x4O#h5 U$I#^B+Jk&K!j9VfNZTEvLj+|rF{!^~f>s/{c/Bqy$g"E8+Y~GtδzOr[4_KhsMneUurkU@~-CFkf9q?JSjMgC^5U2.բUeLtn3WZ(HG~3¹D5$"jݛxw][%fgrMa}E~y6:0Xk42^|mV}4`qy.Vo`qe_ZCjh1qj ha]p4.EN,_|6R{UQC\_]#"/?] \ \=  )}2wc$K^+OPMlS.A) ǂe˝sS g T.SȽ0LR$G`gfFFi*|p3tP`|OBd:CͣWNSWJE,J(Q!jg@ +eƨHXP:vfB^[ mAv{.<ܨu&#PXB":!UjC~,hP}ˑXpxtz mӲH)N:M-)NHV1$_zuMRjiosθH(zݠ\a.h2nb *DQ=޹C2gNJ~1f0yOQG_>%isVA's}5_!]mcLiXk@?~ ޹Ņ%~wDR٤^\,4֫+`. 1>-L͗YНڶW^^@(D 6ԺDvZ<3FQxrACF"^_ǿ_hp bCR'B.(%nܸb"]S+WWן`f9kxvh]uP(/ν\a 8Eʕ_uq8`8:?T"Vq>R;tx#L) U+%kȹ Q|:V5 66gqDw+:!:Vq/q{NOnlr0 df˺+ ѽﲟHΘeR0^h{0#Q"r|>b`'sf ېuj"fhlnkY6@p~epxn"Payr2/Yt:*q]eB/r-t(㒁lxY,YJUGgHjy\cdƴ^= 2`WsʹS?rzf?ͽfC=?ެIJ[g9 c HQ%QnmcO}oKn$I jr9IFHUy>{\ 1 ڰ͊}挚)>9Z8S箝o8YGi6^9a뮵7Qs&[;qgu g 5-$;l~i5jtg(1֭MϐsѴ s©{,.\/5ߛH^]0,!s3^(d g0%>g e*tbH5}<67$7|H?AƙS)%o½Nsl5:4+}"8<}DLGoj͍<'UY$h:N37C40hi,/9EGήMSj`2ŵCCZb.W6! MŊ־"9(@S26J` RgyzWҚJ9M%&?&IVcu@ >/l:JbAZ|D)F &t`f𱬭aT9|^canSk K9:-?iq{[*~ZW52yP~xK ?Ϩ0H~&>w/^J\ׯ_ŵn_/XmonKTn'JU|st4Yx/on$,%D{wgԵ!'&X&U:DKE*]^_'bTJPnEE0MZ_eĘoEyHRiFgȓߗ>H.ώBVhպ9ax6=9K^T~K?{ψk$}G#bX_ߐ^+zC@_7dցlܒ_;9<:AZV_?ퟤݹ.3^,i_ZKLrxBӱ,5#@6v[vv8tiuz2ad瀱gq4ɋ_d48`) J"K4iO1,0M*IhgSu}v3IH/,ֹ+ҾѠ'+DmM,ν~w3&6 }3I2# j\]!NgEdj`n.@f,bDzu9sX-b:ˈttKi4s1$}DܳpΥd!u(1YF۹&C\ᬉR/+UccգMݒjS3̌$_s(k3>Jb Ii; =S`;ѝ$Ide'!1gaWz}ĽI Ncg AE&y3m-<, ߰1qMdob}d p~OY5֛Hn&YiJiOs47k.ɮYW]m)<3K/eN̒7 'Wcַ [RR>kZilE:!̤2Î$Ú87ysEkN@2Շ1xQl{FNs맬7 03o78lC_5v4LE7"b~`[uM!vԡ :HU"9?PL`L,,laOh:TPPoE(n8ql{n3fYSfMAh*UR Mnik#4'M$e@:Z\6Zʺ ӱt7sZ֏Ë'RFgS.%t@0BkqSWq;ƍE8UuXLƇ mMu1 tb;z|9  l)$KN3dZW1#:9c]$c?Ll]TuIFEC%4KEi :4\pF%,bC (Xcn.ܘA+PmC'WBVp(/ xY"S;p:8օɹ68>%ـz%d5V;%-ICW3P% z}4jzE(5F^d.^4UMt7J}\ߒve?3-.#RSG)C#6~RszB#^!z{p ]'g%v̮ðg:OFcI$J"98xC nI1,/KyƛҨ׹ 8Ҁ=|Pj5;>>͍M7 RvwH676L αnW S^3PpDeu\_sD}}sWĭSryqfq') h,1tSL+,&ZSd܅=L&ꋲwݒ-udÐ\{trr(o `TrppO+_s8fB8oލ -^]:))d{63.iOT?'FfDZY ~B*4P>>^P"@Io (2̠f4}lb:*ki@Viʅ% A|N<řF,`o6$a䄦'}33Q+Vj6N&ӬFX&[*ruӒUup?ύnt/U*Dek(}ߨ֘5CY2P K|hCYlL??dL\Luj_ ơ /CќّnbX eJd8M!֚g&B/"ةSCu|Yjt.4v1ĩI|#N4O SNijt`UYm JwvkH\Ycq9RS IDATȂR>Y~3 S2g7ڷasfbxr.HkכXRvS&Q!G uΉZ| x 9 o9g-p͠W8(笯;t'O<E&%JW)^w=u פBv-L,>Cg(hp5>d wF:g+p CPj޻ϴ?ﵠ7miKD1f5݃i* NO-̱ *=z@!QcQ%vWF@{-уG4ϭ[eowOd"ޓ+Oz  ΢`4\l.+yp!W_}7:A3} %2^Ѥ6 j_PkI4X"Mb)\TYAWڝL"M_4dqiCZ璬on1%L1Tj,6wrBsQʓAǢoQ1[[-0388VkU +uݻ-bI?LYmZTN  †B$1*.^D22wDOe1L:F^<3bRS Ek EdQ~&] B@ :ؼ&OY*woC04>s12|`<*0 ` t8U!k\78U'Ya&p;ʜ҅q6-,rwla4(8hdWaN&#jtz=ְ& =De<]E2NYfݞ^dTYIXc#CRNԀ`HF*@W1Qoi+MOܐN:o?. ՚%rwmZ- C#>cR6nU_ $ӳN9}64>Pq_A̙l`-U: WYcF{ř]dl`M 5H!q痩 8Yď#iTJl?PsuhgT)P^&6dciY%iBvVU }X<\L"-k7@UCCQ ulѡ<<rOo/2Z][c C&ƞ͢`[Qߕ>@NNNeogWF1?{u% Uuh!_Hu-U#i*}3x*{iG/\mp[]^9;l6trr.#8;$%.C8ƲwSzuj&JE++Rh\#/E4ݻlLh]yyM{@Z:QDp>  @#DHZ_~.%Oc)# {./KЖuYޓFMTkgeh4iy זw2`)iFHh t *J,\ץ FC6W VQ9ZdIcTpVPLbLYDLTuO40Mii@QY\Ͼf"F%h0 =.uԏŦ= d(km9͠$iP&Ǵ5e0ΐ4e6,Ħ%М*'A:ʱs14NT}5WTekn\<74 ebx:,%iS,Mu1|Ob <~I-&D\h";3}2zk|W`McFWggEv0js{Y3oͩ Uqɦq qVO4^Meu?'i`,5hA6|M24RXdrϚ7qQ]H֫g%,(LU "9ȍ˜$l g%<Τ4+S b 'YVHRO'h|/r`;Ӛ;hԌM1kSgdmB$8ȸ8!5K&256c.ku0:G jE"ըOgXpl٬Tj#c#Km$l"{tfY3A بy olQ,m;?C<|/cc *18yPfU'R_poS-,PF|eM"pEeא;# .WBNÙ3V -)879e{4=HJ,_{PT^166*!D1stH&]* 4St0xy0kQ (p T,*֨V72Q%j4Tj4gPȏB4 5, j%6;Ќk3[n6.3iѢӚ8s# rLqgs(ɑlTR31 ՅjH\E6Kʪn?A RYlmf.,VR/TKEi\@WJJj>] 693"G6P4= ن ɑ' nd0Y' X;(X3%+\Qk4D7j!trìҧژ )p >2MNM Z|̺0:P7O4CIKjg5\!|7P^_wT!WDZa铤zMwݻl,_|.r|rŸvMa[z&Q]_Yጉ~fh<$7WE9934hౢ@?!"!׺hܓ~E398 Amwzw."2g`7Cy\ss twdNr5y<"ƍU8E)ˌ U+rڑWRtj >2>}i hXKzu: Fٖlkh9+aaxo%`j}c2{5aPNHjIGvz\g@ Ot*+%NIj h6l3\=z3Qy]XGh}qsں53 lh!9mPO3V[ieSʳ沺WeZcf\w/$3bX#`&J@$G-ǵ/2/Ӱݣ42|]DS0|"8ҳ_렭Qh&KgE ӽMf'=NgĹ;֝>,G? sW"Rң_rp|IN-N8B$1=#4blL?ZUMRGM8*\ZFvߗW,S& b22۰cw(8)aߓq-u4t:p=IaNRP 7b0v1k]ўl,b,418)[d"\,HPOHEd^֍jEAf7a lC?67=Й97̏?{ЁG}oV.VAȢELOhYhpXP 4xpM\)ez)"sr(0 h`RE ƬjiCA3rI XQtRTJx>_6Xw5љ!BD*uҲ&~Фtb9% B&&iwR }YT.&:@3ϴYNC=:rvu"ѐEz%`BF&ð,kkj{τ,/aMy##f3!4)$ϊLBD"E= +S md2vFldP0!{W<ئV"W/ۿebu:}:z˧}"}!uy RGÞ|K98,j|}߻-_|%-ݥ|csCJ墬,ѫפAJ%R> 7}+xk5iԽ2nVU3 6!ez)޴/$+;g3AYNٶ~K+IO`5GÞ>}B($Չ$,TdqqY|{ҨU$/zl4Hדs_Hm!C0?[`m9}Mg('gp0X\4-!|ꅜ$HO$2|Y!w舁~ʋglԓe `'2vILX\\\b`3HU9\cPRՕM6GTR4zLn}.WR,q?qܝ䳧OyքAvJo," P2k/t[>pno}-abQCpyXzCq}.,d8p/Y\R~H4jCŷw+F'No:1)(q//͐̐Φ*Huq|Í.GIr]qf-/ ^GR(~݌{ffĎnkiwqS?c36s59TIk οF^ktR8ra1Gdg>NdN-7˝UT<-4սe[X;9!yΑ̇s &kE됭E:~ij CgAM^׀Ku:7}سe,g:DWeE85'?o7y%:HekB}A[jƸQ5`*fd(+& GX(0t^2ʹ~WTZfC-sn$9*ǯMkxX4 5 }ܘJ!#vy3ngfvӭ!7i2XxƨL۽Lp,4y-l*Zd1a @tx}K8I3 jxyjfMK1`;rzR.[GR n&&'}^6moiP. ,/# srQtbD"QGyO( jڣ8R)B^"GTŮeŒf:g߫@uzF z]Ai,ыNGj |ήd8a 菻;ӏeggGf?&U!#A$J(*JSԮmpK#{{l//.NX@o:~Ci]]Ygؔ^geЌ$dgcU:'QY鷽|_$j4A"QQ(+ȟ@ r}ӓ7pQMH=~OpTu?s 䣏-apeJݢߒ䋧_p^|!\_^/oJڗ%qR%Gzo|"{4[Jf#yMWPNR.,KR.$hm=֍ʼn$ј#JCnnbV7۹^kH+ޅzڠS 'k5v[GS]CCƊFZ2#pnw;9҆.g"]=CәiUR0YB$ƘF])\0gOBĠ3:TL!׽QhQ6_Oy^QwhAxX#quɲL%8T_Ѩ ˊmZFfk9bh} C(qbѠǙd#׬DHT8ߐI+\1J<c9'y#ᙑ<(URs/9DޜҪB=_zs͝yZc1I8۵̙:uJⴕ1=$f !6 j}CB=;u IDAT5mxi;ߺ̀,W]gSK-=< (Đ=VGA׺!v.VQNK` ׭tj'AƐfBkZA 4TK&>#6u-~}Tܛ♴gtH^H)r^_^t(Ƣ  2 /TZޓaPWD7MԨ _F:@9-?w5MhiQų띒nSKREVx<`ìhRWMC2hLB~_H:&Tt2r9^NkLMwtn[GvZ!%LPY>S 1n<Ղ'~(4rE&pPPchud*c<¡z=)KAjіX'S)]$,6+2v"eܿ?T"4+vGbYrŒ_˻3՘l$kkk5i./sպj gGA ,iXc~}__f+?+Ϥ\[ݐ+#;ߓ߽k Tty|SL,ф beAn߾-cF |qiNcKd! {ymSQ-O3xgHݒ-nR(kAQUD##eD}fFL#xtE 7d2ºahBVQ ~:KZʚa#ߑ^~e"cw<+ ӝV[4xLTJi`爪dbM0\etb0is7gf6Z{\;s@5TTJa]S#ni%}SQ#g S~ih9󫵘~|Q_*UtL*'5syG޹&IkD?_0D {sM; Tk+X fe59֙h3lJhh4s3N]"ٛCS [{q5L&ـ÷uTmƉ޼[+_Ĵоs& ou(}mhBsܼ)C i"4)wZPPRejʆγÙڠ!q\rXԽ'0z6$jDTi&7F^n@=NN Ϻ:;0HETQS(8t_ ~˓<5S2)56Ӫ7+#$$;4Lx8A5sRa$:¥(ՅC51=" \\_`),Hׂ!4 hԆV=7%^<0,03+s2yQTWln'cX[B(GG'i]C#{_H$$5N|$;g1u&oz4z ^XX!FӹB`aB+Rx]ьVޔx ޔz{W@K|60?l. r(.H7SPF&H/R.o{}﷿3:6n 4ί/?\ڥ%o3_67s}NJJE~e.kWd)iA֕Ruvr"Q("Z*ߕ absEnzD=|UL?Si..Io4˓i4u8,N#9}OSsp_\Bc#cI#O~&kkW 'vv@zthv OF ;7J[;r}~9I'<'z5I%\_婜5\!{*ޓ/>čZ{Y2KP˳#63~fMG|?qR>K=hbn1y 3| cMTFtٙq(xFI]!gP6=xx FcP]Q.W qM$d ĆYi0/RHXͷYLO&6lsX5qYsBknQK..H{r~z(7ק2t$'DQV6e6F,؀Cx"ؓv'+kW_r8=9'A=N='4jU/1ݑgϾr('Gs)ۻgrȃo0 ޽R^Ϗ^H (ˋuy)ͦf\9cW?~(령?9ƶoɛ-nߖ>&}ͥ{@<(t n\Iu%7ݾ,l>Xڎܿ'_dcsKunq#uʍk׽8_POTVMõ=9D݀gC U)( QX+h4 ZUeCFSf~pXdJDAJ28{aI,4jryuE`1/9c@aG Pۃ}k^2 !5:L9͢^8fMEhɮiLY~dMY,rhNL\Ag+c^&E8SYdKb(C]ngQWh=3&zt7s +Ӳb r9{P"T.ck2C(>Z ftcƭ`nQwڞCá%2;ï C"쳩Wcg+`A LɈ(뮙-ndxb8X͠$ÑЂQpBB3dŵD VU׋F5vʸLz`(~6Hc8ܠ:B?%Ekg^A A&Y"kkfl12*:޼j759)@Jid5`!"˃Ki0"ݾVM3f+N?J;[/q-8/|}"[p2 ? Ȩӥ(Jfl!ELcR!S7F1%EҪ쮮E!ws4 U - 2? &bAwGgR0Wh 2N|mg6}~ QIȵIxZ^iX1"8i,=sݴOj65x]l^H co@tfto!a['c#Xs񠬀!0CuaVxFaUYfyFpN8|]TZ9qX:Rnb: !~e0 3U~hZy3,-p4V%لQhPomU.٫ ՚z"TBU>MqB60Jbj7e 5'F ØFZ c}E uhel.;Hݽ}ywʢ?BH}Y[%NKFe{,.R4[81)҂ܻXvT2_K"@, _rz? C Y]Yt$++W/Iz|Vwvlfuu4.(C)dԑV.O?x6֥DR*40%lߺ/JS|h2&Dtm&c4:a=y豬ٗ9{Bʡ|5;[477m#eiyM67dqyW@0ώ}s!Qq Ҩ'3fN, ϞHu)Ͼ|JS2ٗ%5WJRo4)˛}G6R3N E#̋./_5q:ˋSsR{HҔj}t]S*z2i]J}$ WW\׈$O)o6> Y. ]=Kf?ã35JLKX 0" PN1C]qaE+hȃ0OIV5fd2iFD.@(sjuCԍ3#ġN)꙱XuIQ+g:1ܧj:[C+;eV/dm,{X,Y.&9}l&UEq49dQb XB\_QϜCfL Cп~ %emwNʛg}ks'p2,kP] 7d|QpnlTmsWxI(}Gwֳь7VAw@O\s-W&W{f5BG2Iǀ#`C{]53.qL>ݳ$UD4>jE qNא)ᾥ@)ΡFM됺}0$[_D"8{9cR lc*OS;%{nx"%mn,^W1CݠX) FL5~108ȐO4^R,"ʲ\TJlc7\d3Ét E:CQZt&p]5 s 12Iǥ4\DlkĦFshf yEz,Afc#zi R=}t>!UBk(Je^NhN1cQӛRM$B =eB9ORYY^F{M**jkr!M1Q)D3j+ȗ juYv c#C9=g@H;AF7%Pa4|(.# :D F}/s7N;Q Lf@d4=uR6J"Q2Ko t 鈍#^Dn~$ޒ]9;/_ʓ?ãCnqصlr/>jܻ兔+e6W\om>Rnߺ-vN( 5'PaPS:kti(5OiY2xp-XBE6~:y-ǯ޾\ ^(~!^>j$OzףW45MxRoy^dmmK** !Kc)72`YK <@9>~(Dߺ#~uDv#f!jĹ!ryGn?Ks"w)ʢ\2$CAdrѓnٹq5G8.Y>t{NAvW|+PM|" eYڝ2F\P?B*:[! í+1O^)Ju Q2 _kt?N^cqٖiִc)/YYLL捝g{E-Ф8*`DiFA.eN'XXU<5>t͊-=T Y\$''i.kT]ge$3q,+tN&T^+48B߮d>ue!3q\ ÚXf}ϢB˽sR^V/(ɌJd\ĭ˛ IΙR3 l\܈JhئV.rHNu;b?pCAgZZ=f<ء nu~yD2eeqY|b-Ben4 jPHX,eieW\n,-GŚOP:[w%1n#RkCt4D&L6|TI <;>$lo@/ *i/I&M`^ԑ9ѕx"v.xA*LS5֮PH"GGGV_JONϲ(ݓc~VPK<`+ep 8C'`_jR9yE_,UIDžDZ[] 0tҌ ѿ_=iZ&B j%>B)1uJcH?7Eҙk9|tm  ^4N_ޯmW/dskCnZ:; aKȆus!:),0\7|'.R]^z)}SӴNQܹܽN&Cf&ބWxh azRei]]P[=LZVז,M4 PX .4YǽvļXeҊv^EKixFp׺s4kpg?bOɻ?<=$M X!qmeÇFm[l (MxmihI-Pc&xK47ĚѰ|R׭5`% (nm 2G, hkMV8sjR0M<F~?da99Igd `hBӻjejywFK}˵My~b :/=OQu!6'J 9dZUiJ!V/I̴BL1:Mlߢ#3ӂQ$Nq-V/xNTN'81wGt9cN'M$u~TQ1<m^4̨y@NR-.0tnɎ$QcI ءwyCPeZM ѝ^*6Df6S) T`&ӣ:]De7QdbS6͟m_F8Ė\`XB7,6ʍ|5(EހY)8Ħ5I=9Vf߮vn1`c+]"k*So8}jЄW6HyGng%J#TsF9Ǩ0+~ҵ&J Eȿ?GLːٿ#.W2r޾淿泏"٫QkkrD;rvz"7!x4|iuwL"sa6/_n}m/Uew|Wr]B=AQFFNNZԝ../J%^&2(haRUd86߽n[IqJEVyM2ڭD Y"0I%Yw鴞ӥBY0o2˂ 8>:uy]F|ՅE s2a(eK8bkjIMG_ޫɲ+K7 *Ph\wI 9#I^$ =(B'*H=P 3Dx4P@yܼXZ܋rv+7"P̛Zs~\GCCVR$jC2YmnqW5aY( i_t+fzYbMPU31"\:{cm9ӄʟYMC "9R{@>ainaYFi6CZJpJmkP҆Kp#k.՚~5LHƦ ѳMh֊h?6qѤ]?}0 -vUVYH3u|B3GˆQ!ֹ:a|f4}ͦ]?Bƹ٨Ȋއf(0ɘ?jLT\u1v MJ,JS-@mlr-r66-V#Z}w" 1,/Y /b|1YDRGDu2*P<ؒUִah?7WrwF,Z^.jeckHV7ۆNW\{Op9֘zrYxpn┆'/x5 bTb`HICn\F!Qj"C#y[n4;*,l,Z:#vqr|aGJ )pNz9xKs.?srFcٽ~֗h{oݍoݾZsG?fdYQg|Pollcc xk<[€#dmzg%hQ FHG@Pe\V74`oo+k|-,,t}DiT-\}>4^{q-d k)u[DZl)qؠtt|3$ڒ/ZP9J(r24j_&x  + ٬oP\ j\ɨ qj,2ͨ'̜sZ\ΩE)YQ[1(r*aM4VRK~DܹNTTgB ǔ%3nxRJiao/MT 56X@7`F. ӭk#£oҙ`œɹwG0 %4ywcP2G'R=5h48* ޡ J"̱4 zxK@g!9SvV+2()ϞU^oZct04mhxz9>>QMf:}.ǟg_?4*9D^eijjßw@DbGHGZ!M԰L/CjӍAܣ-, H2̴0Gr8 ̂Tu <=fezW?Vy,٤ ff]$\Q>)Fn(nI2TB/jxplh8>TcWRGf6qmE7ќE_UeT@ X=xMX15-S1Et,qC#&HV yjorF#1vE>Rny$:1+i֒p%(Myq{CDCOͲ dXx#24BrLplpj[s_̃ހ3Ҡ˔p)8JRt|&!L[m[Z7NL=]JS]CEn9m.lE|Ph(Tilj.p:BJmXQY3T RdeZK3*A;MLG?153{ws_vw4j]YI6Oڵ O+Tde(Б)h-Nyue{V*4HD81&q y.CwD}luawo}K`~VO>@I_]g~aMю0y`Fg*w7x3\xC˧V /,,wg_m6"4ǝMwwFdѨH~na~a_𞝙qgnݹV*676+7pu*p*EDÐLRu`Q)zq>#%xTaeDG>OH elHu/eX;oi&8TAԆmUp k"Q)^i;fS(%^2UޢNX"Y'\_%0,4p:X)ީ4 ^Q4E`ͯXzD84:Wс+Z_"zㆅEŏ4ZNe8slrE|`":53n78LGil(eQP6Y(`6t5y^^Iġ۴8ړjaƄJΧ|bƍghM+2c(nEÒE9orfb*`X(ˆg3ÌT%t W@X%z}l,*]*C\-{jRujtD56 hd5; )O#ع+cS\41($np|uXΏ0ud$=Z:{]IUMb'2ǀ^iSͨz.,(F_ dc&1;f/> a$ ZiB5Q:iHT^ V%9r G;ѱ]Gjdh"sBOcۙQWΎh.FzSgeɇ*HI_n:Hz9,8d#4{m) ?Y篢d箽Fԟc% Hsu) 9I,!`Q#%F:kV˂)H ڈUkZasR uI#Z.E(HŘ'NIZRHHRʾtUmqmE^Q^kLc "RE$8u%J{o'W*;.׻aD^:ˮZF iYFqPp}/_3xd2?z5rEE3t'H$QQ`YtSm=^?F"QRJ+Ϡs<|x0CtOxg :lԨ7paHբ"痬CQrL9 ,% N 9<}|V&n2>xT#Z& ;z\M xzov\3Jve61&5Ά'S6{œ8i,̲,RBZ3 LEڧPlq6^h$Q|=F^v,\lq̹!VR y)0 TX>QQP[7x]ѻDLVp4ڳ󼦳( V 4ް>n!h%/oyK0)RdNӪEA4}yԔ(/:T1:gQQNҦϧCusjnñsKpC,sTjIZ$ cdj> r7]WF ! 9y֠8;AI#v4re3V3X%:Fjň!ύI q)jkN@0NhM~Uulp9i;R"RѨO>{-:y#,̔΋ pIسzvWL${H./U8@I. E%ukuɗiZCmbgb6*6+ HԦ8zvL`I&hdoj#^A}-WlP m!%+Yp"99T {cXMHH409Yc-c'9S-w >R%E?^y5w)Cs#!p^2Ku&%"ih-l7FіI^EaR8e[աR m Lh NuU%po ,Q2jDC 5W&f:@D?52Yq9$}j ݹR=8ixj7"yJdOҜ;3ήΪ PmMOgp34]GCEB@N!flJ)\~lm>f 'Gvsw>gQkIk#A[>#^6lts n߾KӬ?penhsEZbm"Ftͳ6M,$Yťez=Х=<ǐr)N^nf9,U Xi=37?^YGG)5"S-$XaT:r~$2>3gu5mͩitX9'_!t/gI0Um[K5ev7ˬ+ QVW渖TN=Ffd2qPR1s*L:qqMDB Դ̐T+U7Y82b6zD1_B՘I\#->7||mPj\emȽ;&=:%2(JDFD EeZ689sUN3 9Db6aP;'/J`o\̉e%wdcu x%G%Y2MeZo#B84s»ykA,ǩH;6R_/:LQ׋:U1B8ˬU3%#bFܹ`|Z7*#,3c:ceC!gK-ߟ5 E FL^'[jU+^d<:H(!ԛلw0PE/0LJ Gc?ѠL NΒFBɉ77 bUkrB0dY~ZYXǁ䎒:&ա*Sz483++)hi4ب*42K"Ҽ UWn/3"Eߜ0o|] c0;~hѢ#n;[hD9E(ٳkl~wH]=O>d|[aueܸADsaa 7?ŏc6goGMBZل&>#"Z(^k{xÝǨb4 X\I(J@URŕsxd9*D%ۯst>^`CݽC\ #N{VW0[hjS5*;:LJX^^@1;XXZW_|Zs va1@"FPeh65Q]c{wRpfRQ?Hq4S8g^aU2L3D(ѰfEtI~;9&twaL Yַ;OY%i9>M[tG1b&Ns ДfH $,GM #UQR[m/ E^Csw|q)3*l(W_BGM`*=s1AsѩF+5=Z`y6.!A6QD>\DYW(6 ^c* n5W>-iK;D\XQfywguAZfȚD3D ,t,1c2*>w %{@RgXxjc╊Zh.oL.4!*,42ͫ6{fe#^ړvs~pY`5 O];d{[]([G|trcMapErL0?D{]Qk U|Ԩꩴا#X^`jznlse{T5,}N܆?lR-C`%M"/J],TDUg#2x?ġPGaЁ+^+͹eQMb WoU(keefF62gZ%{S'4s.^׷{2yrrťE,- "K0=Ǽ[1$kO8$ &4qJdZe87LH8}<w^`7^}M)LܹtȽUUcte@.$AgBkՃZ@:lVXf+,x̢4GRU&rQ| xg۰-j'ɹY*>Or@tM4ҿ [g{ȼk̜T*AeLGR>?򬾞OوP\1m OJ鼱 {-`6M>>/3ml}8qJgH9N?se- vs+2fVBlT&žxsr5`dbi>m%X\;x lZM uU  a֔ӳl19di{ǘ[Eq/yŗ&HcŽtvшD ~h>ɮ8ƐXk/ ){'=5=m Wcyܻ+wњ^Fޠ>?FܬD㠎c3Xzk+w;V kQ)ݎ)GJeJq }YjF>D :gdZu #ETÜn}wjEB`lRh%Ea EkH3:69ZZTXH 3vVM,SdF4j&B=b:AYc&9ԀυtkHY)MQzBjYy(d`Q_ ]&Ƴoh8E_bYgLDeƆL^RTƶx'`MFT`D*}̄R]z{?V}#gU&S 6T^,o#0}5Bk1磩P:hGLTu@N(NՁ lC o =I<[ѫ21;hLD9p2t/e<ÐqCк!*T5мDӼ(,Yfс} 7Tc&w$06SQ}Y7FZӮ9򻪵~;ۯ3yzd9g 0s.1†<6*FwzWBdC2R}W*W`9Rd}hMCSwRl2si01i3ғaUg8E$h $ӇIJl\=l[rXݸi5vd#0M&Dv 1-~*ZW3J49LE^exAVsuMDYðbs7Pk)"qًbTÊ}B| L5>G8ԠVÓX)0KђFW(‚G6!&FOG \,ad'ı60]Bao9:E:q%.ES8F/˩]-JӥaI gtP)6XaIhf[ H)9D\-bdFMLÈhEpB7]1%4llRr~Fq 67iy>};;;s6btmjw.ѝV ^8l >orÖWYg=[{6gf4.c G9F^#p2z[4S>bqV^9?~=zE΢;cx?{m!=b.M4)d ~郞)MϾU'DQٽ'\>,- Ԣ }̈LLLI>wgO)٨!Ƙ^!nc{gCzfxk≐ Tk`Ӧ?035~-tD#smv;$QCM%&GΑ!O4R=9G5^ɣ{4Zmwz(r{Qck.7Mq*x8ms =f}03ʼn7fT1M 17zua90wn,(s6Yi3I:,Y' IDATF,,S q`Z"O:jda^:<N(eD k8AڀZ &̝trscXpIcNI "&yH&4I!ibi$WƨLMi(MTRj CR4/2*lfU+!y4fC)P^"jT.w6 r!1(Q8N,V16AAunqn=.I&J@G9YM[!fWAE.:qrh,̣it ߾rYl9Z0+TZjz*fR_ &' Դ|ehZd:}᫊olpɐͥ'k! ˫^ ArG#M#}nS]9F3*?$[ytT*#Q5W`VsVCֶ!@uJ7 ,%MB ZƬ[7X\m|A]\%ǵ4d(Q=Uo5A. ѣH 0N0tͽd7%Ch0HiQAvz#ul֫\AGwAEEP9qM.8:&\T\#$0,n2_?v _~)l?K׮y4nU?!:7_å]ܼ5.?</%_@dV_"eq/2;jdZD/yz!sa*ס@!g0p}Z{uSӨUZP_G=>3X;DOÙxc"."qvn c`GIlt,V={y8{fhJ(J+nq:;'No|wg[jUY6fZ:)4ƓZ)^*;M 7& ][9^z; p˘T OZ y9U 9G3q|Դ yKkZ\٤d(B1c{kEu6Qh"S`qDв\j.4TO=(3k͖\9M[#lo}F࣢|"f?0h1 MGkM"UiD$q-cz[gj4Efk Fb"(E]P{ҸNE ͊f:CNV9V[Գf?[  *,$^Y^5s7NWFU95Ht#EI$NIJLc]a~q4¨"ذC/Kt`ɵb@ {{޽Μ/_Gy'\\LEOy=ܸ .>aAB/)TZ]E.M{͊*ˀHdDbVSq <{o|Mmc5*Sg!xūq6VxW1ժӏGPz7pzmkxs6bjT l䘝%XQ9ןscfa7q25|_ObLsC\|D(礗_$ o/N2^;15:8U^ÃNC" s9D*EtN:DԣjV(KQV5gΚ"/{DH m CVXWȎ4S({i)=ʆ5hg͒5%gmI@r3q!hd;l'Fm0wd3w(e:gjl3H By`Hh(1rٳ~):kL)^͊²!i)Q/2XSBg2:C|IV8'e4tD6FN.̀(=B2)5_vݮ=1/eB;ꊱ7(vGY>*,Aiu2%;V2T+f Gʴt&7J4py= n~yH1`LX͐!j SIRF?8`^bF6]!vcJc0;7m=^C9}԰'4E_x'ʙ9?3lnmsth_^(Y~rh[c۴)IRhg]xbV>{hK v{˔ۯ>WMenHX jԵOeJ]æP鿑6##~S+I.'ԵjӓQFhCAº.U)Yne O4i4sNC`ܼJ ґSGYȌ(aDښSK!hv\,R'Ψ2n70g,@bY D/+SPH wOf@hՄK7P܅ qB:t;("V3Afzݼ<볳֚Lk ="/j4] HB:ĵumŐ+a0RZ3-7##J+}N딚 ׌1-"F*8ihH<*+ko)Գ3A6b`kk])bk{Ї9\qKw,"*#bGo?Z&߿}M<pY\v {{H&Up|mj 樻on}ϑ _78H=Nn|8ǫϭzDG:H4-:p&a) )ή-wX[>4U^+W^;0=`nmFWΣOpz4C,#K2jnE *+^ģGOh@SFCŅEtNT"8!rX̔"4y4Q6 Rec C̝~RA 9ƈkky -P ,s6kay,93ne~;y_ht seDJ #*s-Ԝ>CyfeW1WvZJ4`2&R{3u!Ӝ[(*ID# y~ߨ sn31NμD,gpĀC=z$ j߯H>Pxʫ%%{2@01Yswu ǜd0$DZdKNļPyf5L u311:1 3Q#B#a4o\Z˙J!8͗0:}s. xĹ{ IeC{A%Js/ʆ90ݳ25أ'[p,k]"Pi _rrp(qlKc23C&4-l|癶UNx A4 !_5rXku$ ~"3ǁ+ijU!CDcwb&_bXَ =?Η\,;EIu-9ոh4=]7ISw FU(jKp"M[$&8!zJcN@ gTk ipX# a7O kNl4iqmhN7#Ejsv,FZ_78Ӑ S ut;5gFQFɼ'!:b~\ls &;<\IT_>Ί(~Wqy팚wr3RQ04M 'Y9xF!i7Kѥ(h:q4g'$#Iu*r6:3ԓ<[)YXf i`R%+8{)ʒ9uNLShFc3fVDضȱL31ꌘ^Ɔ\n4wt5j^&UAx3$jSU@R +I&qN!W =92:( Tj ҃b_jnNFT'95I,X88#$OXɂ*Er[e:(3',EZܦ.ZZkHvhIQTQ%dePyIKw=nYGP㪸A#$> N.NOcufӕ*NF= Bn#+U.X]3󨋙`͡ݬ˸hf|nw3BDSX uH(NљAHFQwN{ˎ wqsh8:6LLENӷ39`hatDK_yx>43imMogY (uAFj@,q<Ŏ7D59 IDATe&3p@4xI!,1yQʜȚ#lxEQI]GM3gyTn"S^=[Z$w6~t[6=)F :[,s*z#R\6V&V/] WGj, tc<$T:iU>NgE#> B{|>.>LDͥ\\pyj0 /pr G8̥jUDJ:iB7)ͥI! i4*ᄭ}!ԿʿULzyNXA -td3tK3ߞ!:HO>AP~(WIQXhQg{8$7ޜҚrm"龩(ST̲dT'"3=J)MG~#GYr11U}OK8˗.ФHܿ3^e{_!&J]~TtϿwc,l`oF7O9c] ɵfqqs3<C=TI-P:jJS Jq!n֍ZOztCβ!OpE aF033s_wz b0u&s]EEMd!N-•Wװv^SNZ?}˗ v7yoɺ237ZF#S6pY! zi)/_d4O<Tr쿪&pWqPE |.`o1#"N1=BfiIQcS߬ȆFo?)6A9Bh|Ƃ.*( ]\Ɗ8Ckfnkſ,b('M6N_tѬ: QW@>DVH 9\,,lY4'݂6aWh3rܨ.MU5ÕF@],7b;WZў!М &fSP;]Mr*D"gXk"ˍs"tD29He:5r Q9 {c]Yl ‰H0726Qɢ !v 4 ?zJ>&/9˿gi&vQx櫚=o (1_~!Y,VE(éR%!o^^| U #ʁA81"nHR8h6%C|:95<ޓی͠PRsEY4Hrv)Nۥ)|eTDOpBrodJOQg2܏!V }Yjb5Tb~DAI 8i;FGĘ;Wb}cCЅ>+FEq)M&Ht1p)+@I(O1Sͭ~)|F&f, FNDh9 ,bQqoջN>r[بzyunŠwFCt%G:hKS-,B.x>JrR.&ѪU- Luqx8L!GH>bFsDuyH.=JPSe@;EMHPR41k6ǻ=_$'!: 3:$*9 KX^>Et=9wn~k|EDujf fw>@Qǵ ̐",.?#J-M61KK6B78Ȱv{0=J?Dx4D45|S3('RTcЈY4I/=O6&>3Ī;ApU;;x5oVobeu7 MNweWv'|˹ h4if0!)Eʒ߀rl-D@ ts5,.?KXYGnvzXX>]!va<`oGY x8@h'X]lUʋ'GE;w,i80)?z ^Pa?!8s<~_!BnÇyA*dѐWa!D"5 WetzIl*(}sS`&1ԜEbܒ.xH'm\Sd2$uzε֪)ř:LF:ɒ'T.b5Ue CXctc .Iޤ'Bx"O%7|Xf&ip:`nt۞DBYaZ++$u!v~&}iCɕ][yH2YCҤG4p.y>*A/JDT(R̢s]׎4МrmqjڞfCueǎ3*V#錨݇X]_4@i)=ڠHCG%Q43=!+epB_L $IFϐh2lꜘL1}7&YO6:wfLM(YtGYdoN6&8x6{nݗ@DmϡXjY'p.s@P7kGׁP=J 8 S8IR.(tQ}'0dF*qurrπ&G>qZ_ҺkNBz˯۰3=V(UiCSct,IےP.MvNise~/1-:n:B>Z~?IQϰfCf&; tz hΗ_aCV0ߑ|fh:q. _.)䎥{et)d5a˧OВBFg8$«=ġ6n/Icy/у=u$& Tɰ"&f!v@PBș'|ɵF)*ew_Vd* Ɵ2$Jйy^faS&>m) {'yKlCT2Yhft FHPO I>k -(ИbD  ͌* J%jހ6A`Dhܼ9Ab egbFpӐm(5~Kٵ";) # H2ïW8Qi4PIhm&>s#IF0aT/t?AMT'V1ͨsuZ&p24:6_{x5~W%GD[*8>֥h[lD;fLr0?LJr,EPDՍ7괙\${Çr |Jv5N`~.Bwo{P)GrFztN,&6}IoXXXb|<Q/pH"y% aJm a@ܔ q&*P(T.7lKrKp||/9hͭ ,a78><}:6q9{f ;g#Ԋ*.͞WA\dQWp|hc8U>WvC <.cw?7TqӃB~P.H:!?j`e{O949-(Tgbh(e9&ڨ(gTqˎW" CF^)o$9*4bz"L+}Nq<+ #*CթW7/AT\oJR\.kF)hE,DxY)T&ϽMɪtts D41"l4K͋ dMsVVeZg¥&RstW &}L5 $5O6|pMjrՊeJH5Ŵiƞz>tHlNm|_"9%S/9ٌ2n2{#?B?OUzoNɺ[m<5yA3♢eiinw $gEH*׈=(;m]32[3m)^ag̟CC2ߔ@k1eCbi=?w&ΙZh^x<@'Sc\{؁orߐ:cFcM/ag]I~5I7F0cqyRZ#m<1MޤWqZ9N!( uzH4P4 {@bѲHXs]n>|W(.l^`jD'aD\7}c[OBNc6tk8k5P'c):Lx1_gIno\ A!1t&4#WbSa, *YDSNBqp8&U(T(9q iH@A߮`mV`eّBDU-NR}T f<ٿ[~شfff,HZ;<K|_co!.nmWq%6B#W_}}6\ݾ{/̰s?ϝ;ϓ~Se,KHOk ZCD$"53b?FY' >ǘ]eh<Ξrmܻb*U*U֍sx `s#1nXbe9Ji5ccm#ŀ h$!Y\Y 6_a)*<g1ossU=n'X}sl3n^xݽxtyƔ눽J)lj!wNv8;Xaviq/3UUI\`ӽٹv&(ʸu+ >Ĉ>81e4)e PXδѣ.i,\şWv7(M7(Nܘό@pOwyH^vϽngf#Ff(Ǝjb~9L7gC^B 85VhGA;;żvOuOOzrlSU/~Sk峗VprxFrܔ;Wb#2fVÌCnwhvF=J&#q}..Érʃ=W+ACp/`V @ùLTO k q$ t}nݣc,puDo=t4؆'۔x|_%2{#&uc CAxr S]}FAH"M4kKmq6370:$jn!kH -Q,{ٙ7l/ UDsbRqHNQxÏp>?w;{]5NeT`܎#YYX@T1ݾPK.ԊAF k:QQgxs8 (.-,ǧ/0r)g2^zhEU}Av&Jxe b@rZ8:+ Bě~d}>m>yuR{asg9s++0 \^o%FhSIbV\I(y9U0Qal(uLzxjEFGd:..l]ŭK׿De Ł-cЧ<ႸVY B3)bɭ}bq9HK~tNw3 q<qaHFr #GfzL4m'bJet;m^[hY,e DegBC,H"|yv],*fFER<:iFR'Ba5Z/@4FsN@+ ٥FE$5I6Y_M 2Af҄*CSD* Y,3ZTyyQU^.yCaLVTC.)s]d@'rX}?Q3Ӕ/@Na]THd ;2yPW@ф:*+uO,KV*E8]GMZ~R*O]Yg  `@_Oh7mIv UF)WTL4Ι IDATe  Lh㡿{Ϡ+}Fxpz\Ň ADYOy6i$9 sFs"ӄ -,ĪaQ=QN4$qglr`e%"G`l^Oɳ gmrS6ȟZ \V2[qZfST7Y7!@6'6 g5q>̅z1BPOfdvAO[,r }SJ9T)V,HqvcFsaiX1t 1ШS h%plGT* 632ߢX>~Ëh[PC.fҬ;D衹6end^Dvۈ2.]'V65Ze\WW_\`aai7o~:=/62ϮZk6z 6& r{wBRETfw* !>A!,/T[BP,𴉹Y&3SYEywnia`r=bhcc? 4 Kg<9>>UFvv9@5G蟍3ClჵU.F7.xow:?wD2pQv+΢?gM`>$wW3+ؙ*o Ԁce- &Wf*h&ѐ #[Z\@TK[lܿwuۯ_շ71tѶ z >I۳gOШQ&3@KL~+gr gbfVO!t/a23 ~K8=gRS^Ј WǙk`aa[y65s4ڌj3j47Q9M{쨩20L4˰Go^娭k4]YU +VM,X7t`:T}C74t8xN<2T1x#"R>qhqjJwWy`qFNK?@0.2k+Sݐ:CL_=4Jeh0#C49<:S P.\ܧw;ͫCCkj"'αqlਿc.4d iȘN 5 qnP7- (%2OxvrM.6!nTI[Xbn stO7.Ν9poZU2Ao x#.50peGxU"s c)) Mqzo%<|ˋv{gwoczŪe^{̍{?b.ܺ9& GU;=^݁ gO)ꌞu>{89>6>PQn*p9g5lQ+[{&Mt ~ܸ+3(WxgaK 8RCaP &V96#BPH?,3̒7vI^ThOfST𝜴PC;!*<Cg\1eQwKVyjds6P]~Uj؋҄=UXͺXDcje-S#LmJT+CukC?O22L&WpCgvmj F.xDoaM] A>KL^DmH~_F|;0GL4JI ]-II7UHĉ˻pBQӀN5)SVrZIG9'8% ݇QV}v/?j4k;X;Naq(,qrh<.7N*1[i[a E(ՀdnGe柙٠9&}hL >#,/pJ4ACeގ'{44ɣ'|-X4aцA N,Ƅ1Inxq^>f과9W !ꄔO1[^,f3 -@[͑J'A.\$sʴ6 ZƩEo^>֞Z)䵀2xm] AYmze= C[89T'L IZ!qژ:YQ 9R,1aN'SjDAu=6_gP$qtk hh2$5BϨm,5P\QB.b^ E Nѕ'(ST\~ N2i>}Fe4ũejc3A.]PɣdDYkcuFոɃɚԦfl3k)L dSɔ;OџdJl̃Ӳ9R(9 Stʍχ&u T];0Jsڶ,,(3NbzR$ ˏcַ$ |7I:$ߋk9xly}wE^wg~uvg y-5O^ nhACiKԍstm"bQnP>ZjsG48 X_EF'caaݾ5œqkS4G}PFd FDžC>Ve)* !N} >Z+|_C:0LJtԙF Z*dcz$p6[[Ge,W`OO.\Qi%1 Z'Q=4R. );AIAgk.RA^'RF1N.J '|;^3%OԩvA| +8991J.]:WB{[0k8N1S1Zc|{h7O1wf;0󐌎jO?0jېTf2⭷.bgI<`vBasK,/ns*9Jtq}JB Iq)2l_߻˃!"%ExV;ɧX籿c=^iڼj"5Ė(X9jJQ9 T$һs53өqhl4eLRI2-7#9ӬZ;Zk4pAq*|D/:B%#L ӂ Ͻ#FR0Gu~)$Q 5 pPK+R .7U`*&Ǖ+sXsTmcC=3'$xδd5bJ{LԀGLn،r)SqUhHzi҃C/E.n$NoGtco56B,S+qnPljʪ=)=YB(CL(Or5F]޿|/+ +blCoUM]yT7Y, eŢc/YCAPcic|ی5J;'mj䛔(Nb 2*]Z\B瑮uɖѺҎ3 TX|^=OlI0Y}yd#/g%NӘ??$[+~l ?ucUY2c=j3@4Qp Թ9 D\;B?3XRCREx(:"Nde~$*}]vhkbS7RL._<~hlMJa ]`LdHI1B%q.Zd a^&JBqoB]R/ 54 e(:ˆ$E$GFc-x~ x^{On|ę'Ui_8*#n>.w) E.P"JpQpnB&*KHF4SNaE5 N,/dN~dB LF0R..aEZDhhZV~ڻGf&*ffx>>:<|@v^ {;oFkK{TdŤ r/nf3u@Q$VrcqkG &u32>f2t{o07/9&CQkYoooq1G4A\a"LZF{nj2­_ 07L^i?i@K>n&tNݛtG,..EJQj6YK Y>rΨ'mz^gΟEF:j 9on]ef;{~;/^beQR-p2bj8}zPVa']Fv.֫R4B}NypH_ęEC%*n`xxBjj`'5\UW4LSZHdzآXENi0iyc"퉮" BiREZ |;L%c56B6c2<(AέVX8%~!91p=ˑux*mi+;^6܂]gՕX 7~f$kY!oZ&tM j \8̍=\z$߬yNޣƄю])`*1?U'}5S@输sDd1I{4䔯(­CoW *QPY?&4%J;2#(/&Z6sWsv(4bő-Y)۞"G[8ϗ>dF`a| )2R5$Tt IDAT iFRʶe-l4aDQ%"'b$Z_ <FĚ,d0!.9G14"3f3j~BhI9ہFnaz>(cn󪴞]E?-J1I5mk6xqWBi=yNg"*9h.gKOZf&;NHP!Z2BM*wpc6+x&RÃ*F*NukG+gͰe$ShOiXPy2H[[+!8E)Hس#D!S՘&āaj'Gԋ>Jv#2R4rƨ]B{{%*+\pyT7eNa5=6M2}Mk*,C qTtY|*VC#EMpR-D}v}ͳs׿L ! I.!G[L'*G?`%28nѨzgFċOsO /^᭫paaE1?? ƣ ._w_h'8=9 Gf9gan .c1vp&|*2v_|a4Z4V$y!rՆא[vk)lagłT첣I>gc\غ?A4rBk7%Z3ss>s=2O`v Ϋ(gf0m$cAd$GZ<U7LBm _{XN԰Ӿ Fȫ/lT E?υ0ْO]mz Lת!OߥrM&+HFhVԡu&#/nBX`CV1܎-MOQ#n^ybHoQmҾrtF%Gt/qBQul8; RR*Hb]EY'8< B'؝!2Y, :?ӟ>C5 Zq5EAu/[5:xÈPnhg|ƽ6Ӏ6"YHz2Jx!ݿ5b7?g; 8\BL!; ˁ!~cqa++K~ ~O?[?Se*T9^gTvvv<Og'_tI٨8ffy{jx1I4.SWpawY;>X]]c 0pȆd=L|o$h?G2)`gV ?< E=~tŅ %,/a4Q,,T~3 (hH4bJa[RiÓw4$~c}Q3*¨I 8'ۈ$0v,56ŸE JF$58skFTȪlis$yγ~*h״W1H"US9zLj]=䚌l͛OҬ)L)4&j5YD 7(fI)c }zkȒTuwd:a 4r+\"[GJwf>ɚ3!bj#\ҥ=yˢ24!)|Yut5@ݦ9=hP3FL LY7B/MYkKYkKzr<Tf+(Ku{zI6`ISgm YM!~儢ͅ҈;}b5әLB0D:vG%.gF7z6>ǘm0}Ƞ5{Nf$vA׃X%@Rc,OsiuDot"BG23ǩs3󡘧q[D)Odp;SWk?ȋLf׆4 ʂfh#:+hbϳSCO?S+S"pxD5.*G]AQk2=q妕܉S ;s&7rc=؇^i&~P$S;N1h51 OZ)pH3EAKrԧPF5%/Q.)ytyX/mk% P%zTA´9 1:E`mM&%i5mH4E#*/-BG*f&{)J5Z-ҕqW{HMH?g("BS@hꘄ l4F1ZAa4FN ƫu,-̡78͵Ҥ JnKDCL= Wm6 bJ)#\[<+=d1h>q.GZlJo_Mj@ ~ʠ>B v)?)>CncnMX^^^.άΰ$3H%Vqms wn:gvMW\d-b<l#-9'%hp̐!YJ `e >ɏISS<>nbCr/KCh"ۊ"]X9BE-IoL|h":71p]) ԃBdE#RL=esD$1dZg͚;y]|c95:T#)8Qj3؊Ukf2gp=XDJv}Sitq",B͍[yjۮ u﹎뮏$Rhi͵cդN;UV0T+) añ%#؎, jn`!&+HG^ (FtHmr NM!t0,VߛJu<9`O~ofv%Q./o~JHPD˞zH|&LϮ)hjMhǡȬ~е1>&QRR1 r9Km<Tt5%qcq{jG 5]W 'B͌ ɓ.x(DYPwy[rZ||OwX'$U!-J 4g9gFGch *jɝbpxܘqӗQiWB׺FVRKgGN QX\pD~rgBNXR2`́XWqk"5?Bo)nz_GXqiN]kDhޫaE*S2%*K!.0R 'c8㨂e tCQF$zIbяRTMR(]rņ$^Blb5^/MP!E8d@@R4ݤsFz,ul#TqD,Ae"9J{'1^45ZngP(5P,H)<svNYGyrJ&DPR]4FvA3rH"C_-8imqFXbȮ+++SlW2a}6yCR>;Q\,jP=9|ӧOay5U*.\,{A-.6Ĩ$_3`Q„HBщ1R\ܼ3TYVŭ-^o޼~_ W/_,f|rbHMdN۷(Wwo|%vdUB -A޺.v^ }kpqcY<>+5ܻ V.C\owsv "@n6^gHk2}kE~f^(ӨuN֝¼r ~Gv\mDc{"a2;O]Y}Lj$1 98LP$/qjN_5i*垗x݁Mѡ6H>PT.P Ǩm rB9<0$516(@SmXiޑdMct)^)ڸX֑b522s.rD6+N4GowX+-v=qTZ P'hcTD5KV,Ԃ{GVq[ڧhwyaa⣱x om@Oh=qN5 ډN'Y7#tG8 p?GEƷL顁[&#x@\ڨY+Ek|llMb9v X T`t{=ܸqoO);~PqQvh5]w2쉓 fk5wkzZ (7 E_Fj4{W~gO{y Tnl?.]GqA>#l954o1?@%h/al !rh n?q:a/C{JELoC\1<&qjeW\P1`iq޾Օ3R St#.l=zwnb@4tdcQ:yx(-8yb ~)C3sY.н3lOaУ{#aJuo KRvvP-pLJhB?֮)LiU/LbqeֳJ3U=]{8oR'y+ҕj5"[c#nQΛdݰh]6۳*Wf qd Co|׳\'v@y1^15Qʲj?m>Mj&nB*^3OeH(p4eit*#eqC4t="9BkLF6 N8.7g2LȅXꮝ\t6ф _K1Pfdy=LT`is<)GFf\S5zgpYdhwmG[g[}\TSZ]kXpƈqߓ;7paE{0HLyMe~Mf0C,́lZ?&HNuTo%VNΘH<_GίWx´HO;F5܁c. CT8Z׵;ۼҔskW`EXA29kx _4`jF7t;^mf )AZ)gj#i5!0/iumxJK75=< 92k2&]YದU IDAT(XxٵD)6L_-=&G3ޤmhVL e2e%Õ4/_ȸqG>&~M 'UbcT(ǒg(:MQ'^kPF4`7dbbC"Z赙B}njwA=ZHJW mQ*.9TCEp'40CG qvhKxuDPs]dZ3n 5T6X((rlq|q E'I0H~=Oh.ePZF)eј +Ӹ0ظ,9ΊG9/׫UJ4m{8u0duYTA;;' :Kh4V07j}TSNA[ZDmnqd}81Ga&{ـcGf˦B訉yuvfa3r9H!84 Spcw5<?'dZ3|? Fp7pt!J*bVV8i}t:}6"]8ӳEi&=~ʺʐu#|?.ހWXnMnJo_x *::.o+\0= ŋP#*ok5 w^{{< XX>%$dW0GH}7rI݅zcn.l}n߾>ACŋ[/H*Jotm*lw<~*:Ξ9F NEt&Y?9vvQ*y8>dEXph*qZ+žgy7mnÙ9#Q%zBzsH Q 34-@S@ylXZM D(#@WUfenkUvR0a4Iu٨=c"!Oϰ5  wTD4]_#96K1(f4+t^YL}9C XdG4VaNP:dQ gMuw ɷ?LŘ4MbX_cԇgh9rQok⬮pF;|G,M_| .Nf;|5`Vi l>.}غiMc>U49Fc蚒3(>|3Mf@&e~}5%VH\lEr`A4]6X4+==GYql7/QyYL'9׎5rJݡÈFYE5/*2B_Y5c8,zѯEDe]DآA;vE_PF"clqVq|u v/qͲ֕#wicoqBU'HNJAtsCgI]Q[23"%;0~cP&7fHԆ6#XH3"JkOsf*jޔ`)i`S/Y%қZj-iI~ 1t(3Fwz17sWf\]#<.| %u4h4AgNhE4S 9t(lZkN8gYAQPJTI!7Wf[JXq򂦝'3 d@]DO$1͋bD:5jL}%hZ m! "rJb: ˝9#,$Zmݯ~E2Le#Ӿ*7)u'SsC3N瘑4>3hB,FQmytjӕ⚘{F) a3Mq8?qI84Fo*9i^,dzѨ+wmL'Ril rɀaV|Z@7D紋dy!n.GnVGkpV#|("K{L\%>H(;=TNS 9MS&(ڊ&:27q:95un>1 w 6KFDzG1XiL^&Oqzҡ K \rWO!t5b\O?CZck  3f{.~}Z?{xVWy> 0:|צ4 ~!}~)=} F ?qXX7:ZK 'ԩn^ۯ]y5ll\%\:W%ݪbarb&tc, D ׻N8=> , W&#Ȁo}"_z~ͥyɈC4~Npu5r~ڭu㈩4 kk-z-lln"&3Lqxx y=BS1 C} f&9բ[ [ⴤ#Z49f+gY36p}Y5^^=s jaE}fB驆3}"HNPg PO9wi&p6@MYQءkp ;4uQ) 5o/l~5h)Է!5jQ,w |&YQC3}ӊ8nlӃgX ȌSyΊE EґKl&&0V&ͣ&c_ L,-ܹ=t2vefקhhorѝѓCwu]v&X4I>"JqO,PyKE)y/6or蹙!du$s#w:-bY(2gmg#E'yff28ʜ!,D 4HJ_s9sHj}%kQSnh?8XVji:cB>.RӰz0¨r`DPhRR45r !k]05xFe!XP}ggwG{sF5yi$ +Qδln3jEȲ LlˋӬy3`.wMY` FQwEZZ8 "]4k^-GSv1*DHZ ׆m \VdfBH2HW,K ]j=>!x#!+QGB/ӄe)XBD-ݡ5\S&6Q,XBuפYg;ftg+eh>r0E7Ae) 4iJtՊIo5MB"3 jOI0f"i;sxm^Zΰ\K0eG* !ùcˉ7Eg8EWŭ+ .lzE\3?1 -AHhnڳtY`lX1&Viyߚ:Cޢi߿$u1BA賚̤d8@ջwe3[iF47"9" l/bc+xp 7?}<wţGO8:yjZY2!I,W њ__BQ]2]'}Bѕ?!=z8<أ^͋WXz<~zjs/b``niZ8t:O&CQ DJe9: i[sX^^E>$Ƨ'["sutC,,ɓG'#,,,q'#9jgzt6*'y^C;{#7p{?h<ΣÚi AXd:$%\zxfB "9P.Qd iu`}qh_U\r:h^r+^})+cFp$)]Ϩrڌ}f^EmhOsյܚĜO9b~WC EUw(M='ɋ9 .vij=343n/igV@_Ivruߟsof˘7*kD#9tfHFSvMJI-UzƱxE/}@Թ &-507t͇|`Ȩ\'/8;<;CCvZL?j+JX`v :Xf;k/h4KeN> Ý ՖSC gZQ9L*I׆P7'<ӂÐxY[e>SlM,Y'Qp]DUZSWtʽQ9 e v0!5_("mŴ|e e-%f#ː+p%N}OvvynFLcWE傎 ._U\z)nP.\;(}&e4r "Q<)TD0kHDe3.Vf3Ww R(y䥃Ҏө_HTgy-5GiG `#E>j^`:+ api翊?L&Z6K/ak롾Y^"NG#{{HMRh,}Y?@Ѥ^VRM".,(5R& 3BmApp y @ޞh?Q $Yh% gS oZ&ɂz@Ǿ~ J48̰\*GNjeVPČIƢ<62z&ܓQt@ vwoÅW+ N$/q'7AdjKlPw)ҫxH޸| d4;#G}Vh?_g#a>#bKss jp&aNwť%<7qE]e$.yO~4Siqs0)KT@""UNkTfZ(\^P͝oK^8_J9Ʀie'/3XhQs>!elSZC"374[(NGbxc=ۡڴug92}tT_G 6canQ>@5^g ak,Jc=B9MG]|Bs|΍1-A߃CC3QЯ ŴVF B/\6dMQO=h[ X EKNq ("!uH;^^ ٌQg3gr:[vn9`4gU^8I*NkZ^ QUYAQ;O4#6ڹpԆ@p]ݑ,ny$S-ʕ!;"^n3t}W4־4Avyvӽ<*(KN-?/pHnkJ^ z$x:PV 7Zk&ʸ8_T5Yf\56~IZpm}7zes'L.H[2h:>V67=DX3kð|݂k4fGVk9{nP°?c>1}9ٗP.]u 2m8Q]#.RĚ\[&PeXzòfQn|߂lFJ mOQ:*1 9;>CG &HU-! |!EzI-"j fjD'Va1WjfLdcޠ 0 OD*GQ[L<=`1V%RMc]c &(:k3A+hj詡02mwٽʽ*]ijEtk 3s%_Pfd,N;!;svO~:c毮n'?)NOOXiqi?cc2V1Vh2j7l:]2ք BaZ\s7p%\z w9f֨KT'ߢ==; <-XUټJ7^/_cYA:7x)&m?k^dݻp_|A!^^=\{uTksXX\52$$ #!U$&W??>7Z؋.RǓ Z .PO|tppBͷp8q2S}89>GN3:.η%#;'P1[n)Wlx/&j kf#1@jKWq^9tWV[{\#5mJ:;'^fG*02(!DEojaVfE3GJBi(U4r_s7)eINHL`)!4>$|RJ=YuV }(#׌8:pAm56MCaS8Ddp̈́} Q hY@z`JO&>4R@4.W]M>_/4ּhJ%(ҲϻP8NJ1,變f׉inM#k@pT.:LfVS0U5Z{cJ7wVW7ɊՒRXrM !ᎃXvnyݺ,^m; T C^RI7>y&H ^wE[f\iGbͽy6 k9c>|?EgFP(L:ǘ? 8@tv4N]1lAnX>3}/6mpO;t:_Q-F@q,](M/@/uW2gD_ϲEM5P!:Wh>9픨P\墚X^\bÁ:e6ͳtBvY}uBA)JKt΄i3^zi9ĩWYˣۊɴo^:bvp_hr*ܼ|vAsgg@=Qd8!Mba@5۞9j:0C" JЉp fGBhws)U)4Wܢsd(fM*juMqhj}dhИ=PD!Ir!LI -<&͈N:0rqU ojJp8R(\D&6Pw^lp IDATR"84<|x }f$Q}dJbCc:IJPa_** mڇ3 ufvSbН6kKk^Lqs} FLL9lfuAbv1ISZo9 ]#6B~]8c'):6̘v[_ǧ^P6i{ N3'gg6 6FԱyRxXHò8K"?/1ߪ҅ \Ma}}_~)iq%=Gԑn"'r)epzx2fTd Oaeqs&a2MِfՈ@KH)W0QRt (ɟ{E!)C=2vB+&CD. Bϥ[<UN]1M)x铧n«䪼¼ecI,m(m[ÕCZJ)/?I=tz{f3XWn)ĢJK49X̕tƒe!, 8{x"F6\~U<d(|Fe-tAbPF, #>J`Xggo->^X?.[Rه{OjӨ U8i.u ƌTu)WOmaee 9iZe:-M%d͹+5& gnRPTi-5ӳͮozVgp*3Y;rW4ö P륙5oZR~\FEP#2(:)SNMMV j5 ʡt4Q\oF(1>{bbQRc$0≯sAK$b.5VGVNe&V>qaPlhI450x)V6n2KTOX jq̤x01j*j9ENqV9˱v9etWT &چ#L`bnI3Wr0w9MM^C*Ϸpqa bBhDb{VU3x键\77nQ+6_8 :>z)EdŚs֟g<ƪ͖WcAtPjvX[ëoYیI?n>)D":C8<:$]s{nA]G!Y6 *7I!\Go3q]Zi\{:'~|%Tc|+p9'SCߧ#tΎ1G܎ꫂZ(q[C6a)N0gQo#āXl(h7!o^h2 %X9wEs{ќC<`oo2)V~jWA8HGqs9h\="] Ly/ɽ 9;J$Wֶ%wY>9 pk)&Ia^BS1nҦD! qJ¯TQ`QbEhN5SB>6ɜWG}F gR I,Ũ Vixd{uq6H4g܄K nZk,~'sk4) jVsfUȍ ڄjxe o鼎scwnv9Das;JQ<332Ccu\@p6ZDi1s3Ԥ", vVhؒ[5vbq(TӔM?،kgdx ʝg3L(417 3ꟇH*!m U}D^z8  FH<-B;:G]lX?'>B˱:B39EGO  q7<h0Kx1?B=c0J5Ɖ W˷? ݚQQM?$UucRE 1BsnY^"rpQ%KTQf/R#%sğjf<6qkΥ6vں '6HkhukURWtu+ihfZ%**ߴP9@WMeDu E/lƿECIg֥,Ѳ-{"M%qZҵwg-i̳B;:Ye(*4̧<u-5`N9V6cW8R33QU Ѧ=3p@v!(a MΕa R$eʢc] my_;DS¹ T"6iZ>Ӳ̖jψij!âLM,CKuMPޠ16IA#>yRٙj-pɚCcf(~Ҭ{eP"ץjpIh>=9Y  02BTjc))} ۼsDY%r=;Ѹw\$)bj4q` R3d%Xw+[du{=7TWU%0[*k>dtaBe#.:5C=}IyJ7dJ Oߢ+s(JniIfW8ѼƦJJͲ_"Gx*HI}p:1Wh:2̟:Jipx< ]\t2CRjAXWX_lyKR!Rf=kO,[+Oum܆9k<4lR=BD!Dx$֫!xPBJTmOpc'bvT̗ghK&ٔ4I 0JI[1G(n`slRg7/#ya _2eGPPY°/@;SL{S*.^;p؜`@7qs2ȓ1&s5K8d44_<@]hBNX (jH2Yu;xȽV"<{t ~* MӉL|GJx6SS{#ZML'c-,.ڵ[8=9b|OX*y$׹=l|oWwihKټb]`4}]f*˗.ac}Bo񳭭cgg/F޼'^ZZ5ǨV3xa8AX[_ɱq7v?h`!^ys4Zs珐{]!\GKs M\rpW,˿EHLOba&iFZWq}H=\p8wq9ԄLk7na4a8`֛ojQ`agxG?ï^(Dϝ[[j"A[#R cLFZsrsa<h-Y4x5N$9%Ҹ2ğR\Ujt4)4쌟ȃ.4m ()3^-I%m(w̸ +yȌ k;#$CG]0a2э6'N<Ɓ٥g|!23,Eh岙SgzY0rj)vQlA\;?o(7Bزl&5p ~Yn'9<7~/ *vVoIt"e@~b̸r&\|msP!D ]n){4Z˸Fftr~ $n_UԜhz:IjpJd~) מJ4'0.(rbcW8$zWZ˿"OIMV({ tn] ۼ%8'B,z8o纫GwEIqL'٩5vFb ߡԏ))/t.,(DS7kM"99&&:bxeos0mdCA8Tֽ?쨂(F} %ۯgN-d?gq< 0zڄg%>'&blQW%XnzEޫP&J RM1LԐJzCԣ E-PkTI]͆Sr"΅/0QVl>#bZ0-zY\&M p2N DI k&өOԊXmD8W5c)0p)S@Yq~qe5Yu`#(ohRC崄E Iʦ,SSyRεx|5-O(j4&xhmRŧ[8Qk B(2Q|"d:&E(rR4j$2 = ߟ*}`SRLo ?'dF%vt?̀s?sFtHO E3N'R:*WJd2kszkYmq_Y^ov ˫?[x4Ӌϣިx5WWÏ4|{r<VVYnkDE#.k8 k o_:+˱dwee?я#9njיWwk8::F͛7'_R?g8y뤴jBݸp >NκX]@W_+przy3zd&t}>_>xV:M BIGgXhw{ڕx{ uF[绻tq<@>͘{89>A5jnMOLbqXojm" ]ca7n'ٌOUfIb}FcMł C΍d5La"&qb#sH#]͘(2IB{ 뫁R3,OS:=ҭX5G(P<+%2iQ\:ڦ"Rͦ JHL XyZ޷LPNI)K학iUnȧkSmkCgI+Cċ:u3w:hv& d>+unPa$v}X;R_5vR*M+ĻMhi#wHe$lea;&zԽ$hv 8/ܴà4r[L8LXM*]<^@4/81An,Z+%ܹJ^|]<=|y.҆) IDATQ;;WpEܾuf_^p\r#^n1d1oaۻڔCY~@EXU4Ul\yBKLj6ϟc w(mhZXYY%l*d'4moױy [u#+~m[9ڹNZ5u^9|чxiū~X_:Opm6B?<0[O=˯W_[?Gxd|Dsyד1:'tuf{4?vecS61t"Li,ҽ{H&HituSCn)N)j_|8ji X#MDp-k$f;ϚPXeR̢Pt,&6,y$zؕwK,3K\ya g\\Wfe.5{^aw#$T]r^d17;,(Y\qf(%%J{uyyAr nLiZsj&}RpV̩^pN _5Qʉ"kI?(+Guy1`-;'AXYJFavEC~R(U9ϩӶFw}cɠS5h6,2H(Z:C/w}9$y2UJ: <qQ)kDFO?L fn>zF7WV;p 3 ͺg&Bcg=RUV> XeF2BtIᄭ]"H^PcPkOܺD_}D,y2[\h?EuB+ -745s$k"zesX)* Dn6>CCy)Ί^7+6\M&Rǎ>}{U44NJm4I`ec]̛.W< *7Z{]zd*q%pΐ=eAr#Os֞C"n霒;\`!ME8T=w {6u-D/ {WLLH 2^ȹJ~~VéD$9תB50ͮ,x9Pn2̬WY`ZǻHqT2$Oi @]iV+5Gtxe}cL1byu1]pYJ Y'_{%s!`$bN,E6)a>nn[b0dN]1Is Z9^Vv0Q;XS} Lf3'Ը ƅx61)uk03C\>Ev87jxQ}LS@U]|#AIKW<%5M 0pAm0' mceu''<})QkWϿ:i|>#_^z%p ssX_ }Mcoo޸'[[<)+g1!jA%̋DUb$}wqyyER=:l~mFH(Q?2'){GWkU\x҆}Y+h_zS=~F](~ը|qwL=zmf^|H=:9!B;2v~nhγm~a@H~~2y/yWIy[, pX[E={C60W#y]@| !hDgwQ>./qn.,ј=|[z4l> tHJU͍1a}m2b;,Fs'1mjkR\ QrhީJ dTa3'LͅJ c ڲDii/g(̼LϹ:ILm=Sfd΁+\kr`2z:@ѡ m tSJ*Ʈ30mbxKI'R A`"}hN ~H:h<+XLȕV f-&a)צ|Xy64a+>P!7tsj o珆nьd$n¨'?yq/8]r=_iv"s+8fp4!Z,5P8yGjQԢr͞7(L&EG%)XEH6,>ϧN)rT%b4RLt *~YqLDz!-t:F ZXMŴ)`ơMS5]%WҠL磒@ 5<K$MdSfA6she&Vâ4qݳ>vْ(;^~j PhF 8xd~سȧ"t uDbt)Jq#.1ufEXWk/fR[1~kkqGGcOcҿل{ UrvF{@{7_~G{{XZZ?@5ptv17פƶZgX\\Mxt7]vv)U G|G| Zsml^5$Ӊol^#V'8!*'';Ť-oXnWnCR|Ŝi0A:ݞtaa" %XrQE48xE,-.agoABO[ >ƣ>p||mىV!~ـbiFƓ1>+6gO1XYp9s<~]{p蠓9ӳYԭ˯^oq跲z~W1v?fß$!FU^@)L |SptPuNHƤ[}Y{OjDSmqxX1ecDskZ]s 5z^p{ƛޢ0ד _RAR,M @OHL2eV`l,ѹz3v+U/[QMH^4^*^QdŚgyjf~"}\+ 5eΟASc9ט u\i~1v"9P3TUKdnog-R/Q&RSd5 1\nmSPΪ5^1z5`p(46CPHɓ/`y|KH[4T Nlw) P?AQ:A4!bb%V9hHnc&P lh:TO7 :d@Pn:5V.- Ue+˫88>8OIoDFJ2>k뎐贚Mqݓɵ ^r`-h\#Hw9!=#/4ոXcF gF-yLp<5]UgmRedp9Wry*#ѹmSL+B1u"),R3Dgv88=ŋm&]9|O>B",ͣh`yyyp"-E1>G}7_MxKeb :߇ќoΣ?#&ym`yuJ!JS68:<KݺuKu)uo~}1'뛛|7_g x:B5 1׿5.^CLCRoO?>*a?`0Jq|rE<9=cᗿ%F>v{+/>sc%i6" |L qb%7w L͵yL zS7|י7 нl2&#TM94a)C%~_RBKJDcGo:UVEBaXce-PtlZRMM"dW8i+4+lO,3`ȰNVtZx~fșCM_MpPQIM88Sx^QZ A]Cd5N9yӌYF3u5eDr0rDZCCSCݢPmw>rd Bc Uɕh-QԨb֜PAprޑZi<%{G2i#ڱ^ B\#*rPϧ8Ỏe{;M @W 2%Fvf.&3D#q\hgHq%Cmj 1 s}<j QMģ1eQpȺo, [Jğ(2,|y͍4"J_K2Ӭ;!4N'1f=*7pgd& .I6e̜i,WcQXlrkL+ F6U䢹mqRDmmc3o.kj /cp|I\Xd=svμCr9IFRaȋJT}Ud7c<ڔ'j9S^^6֌rѤp\MĜ <'ը#8{ܑt&go3ɾٴ3MgVέ(͙O,y~& 'Z,3@n!V2݇RFFA>G@mgea\Psӗjq *cDu_hҁp8ĂdSN x"›js:ys&\2:KU :=^Y COOuateiu ј +xwM.@4..`:F8OcdҨ S5]i`+ 5P<)b&OhlLF#EZՖfC d\ YGG ^}%l=ffMucc6Γ[it~;?YҍkxK_vOmۿ%S4y]]?vb~p~*,hƫoX\mas2ۏI]ۚP| |,,n_h8fvã;?:`Bo+*)|wqnנ8wp`Rß{_dC^^*>J2܈r!UiGl `Lbj.a5Ҏ~'8Xv*BZ"[1Ne!6_cga$A`'{XYn70r݋G^65|Vcdqy~0#[]F^t%⨃.Ep} ' G.\qa.2-JDӌri⪔A)Je<D%3nn_0S8g n{C3ej(`p1Cf:Vwy\ Gը5 ~O%Oj[] \W֐:tڳ}V@řщciW=KZ6Q#Bn]|^skk^PͲ%rW¹DN/=QSU u5)ـH' ,7Z@ʺQX"ROו9=RO6ris*f9aU-JFy\IL5 G:W9/U즹mϝC^ӬI*]:4 G D#xr.5Z%-VmҸp3dL\rQиA da(K&tJ"5-P:Zjn$-W[Uiʍot&e}s,>[aMl>Cw(ѢrL ~dbw(S6ElΥVmZ2(X~G$ ih#DAabCC(LYHM2Y:͔H6dG)aLz iFMz@[l ɴ r)PI EA:{{hJiV4hE@h<ǹ }>D51B1 ]P |N2JKߨVWX`h+\V)D$AXiKqQUg^<̦֚ϻ$ rH)Dx57v!E;1O=ly+ㄧ\FVJ TQ,D',9~2*1rw<]S)MHQ6%kY–]HMOU'IY@w(%JAV=#2SȍzXZ^x4`ܕ],}u{<99t<\CwǣO(_GQǭoRϾ$~n~u: ;;zWM)Ӂi%H_LX$ɴ aYm4%6ٝ<9{_~pN gÐmnS/,aٕ{gc=Ο})Je\qo6.\BLطn~bc*׮۬KdZ3gP7Xq?y raׯ^׿uX'ꫯ># Nbܺq;=ox IDATKKV b_y$+8zqmg|=N-\q{lppo'2LL$r r&GaToV8y^z~^Jӓv`|6PMce#O69.Mn;\獻}^ n׭ŗWo]E ]B8PGn1܏1v.#>= i-y,R1ĉ̳u۪BiIB8x80tR ]W)dzN  NGd)C~D7z%UG >;Wr2L~EKX`+w{xe17e7RwN'N<…F75N #))/j@B"_H&j U3i1uQ+ۭ\|b꜔5aOc)? Hp7:ZTV)٣ c%bې|K0x$4 !qI 0)vh!ƠL/! ;,hZ!K|,Nն`aKVXufj+\C2#`}RlSyVG}IҬtaIp-[l@Ă$s@FzRWq8GkXZǏa>yýUC\8V;߹t {G򩧟2*" Ĺ%+?XtN:Elopsz.^x9jΞ=è$ۃٙ _Σn*o033>sh5p"H 趺]|{n1^xY_W|ޒ3tQXoqQd% Jq*iR¡cESϞny&^xE̢nŋ+1ܹ{.nS3S םp1\r5͛X[YŁhvpKK yđGq-NZ.ۇnNRc'ܥ(XdRmT‰tf汱7ԏ _{]i@\%9PRo-#J-i&`#k| C qMtUeh.39Z zѠ|-pwޑ N' Мݏt\PQ]+Q|`ءv\$vS,;Gc{ ݝz0ud|rYO֝0Vk\_gn )%BZT ff) d`g=, $sb IZ .Ci ;%J@GQ( i71Fy*N;VeSaU|)RǵBI_&Th*HgSxM> մ dO8ubo0(h-|pv[#6f#9c'O`meAXMk_%ҿ1h"}Oꪳo n7R!.NO&Wj w/\ !"&IX-&4FdCAi嫱2%L"vsw7RLؐ( Qz8EbX ȑEf=V9 &C݆R4E[$]JT8F}yoy^E{`ˢN,uI.qjN8ݺK e'$v^zԑZLVᩫ85;BhU4GȎ5I)]n|\U'<&Pdlj~)ʵbBGvvI`B0wcnK*ߕgЏ !$š#BQ&=ӓQJw7D~&߱^SkRB3TuN iBHxaQp׵Q jypw=DZ#u)AIjn>,-/2) nZAc%LU"'l_F;Hf0|9*jRN.{&2 Wז-d>f_S3 gYyVޤ#5ȠS.a73ڀ <5 s9$ƛ?+gOTS{)Wsw6ijazBy]d)L tw KE#ؠեnd2::&H6*yt3ɶ%ReDeBZrn62SH(7yLPb}9Uc񉜘TY sE 8Hs 4>66qi'Zv9> }L M "LS,(B"hްL{gT+yD%=/Ѯhs7]V7cv 5= [RP2Q-.ŋ<ȯ*pɧH>@ űܕ+(4",Y(!g0KF$L K5e]W8<=DA`)wZ=֖&ujjZ#kb@K^E~ ehp'$XưT&OPtpSD,DrP,ZlI1hU?`~&ٓ`]W-C M)`2:FtR=hP*#3ztM㘭3 >>v l۸re [=ޮck}1Q)!HzX_@@c۳ؘM:XZ~5@c-ō׀h AX[P,HFYRD PtE7a2mqŷhXL )&5k !/pRLx!^f;#^/HJ:ixϹkwcem'8ؾ)\S>s3OyP-W./RO .)Jvgل95&P.s/xCl̩Sxc6qyjb IK.uɆacc |{X^YfTC "qsmU4/`{?:{+˘/~w;KhEܾyap޼rAࠔ௯Tkwo߹3537 o>-X57czz66Ytgr'MT٤/Asg&ܐbiʜLL_ 2IT a:fJ JXZ =kx I̞"@"%.eG$a. I-1f s@+؏D>WR>w%ܸel'omx +?)4zO8__E?F0ݭ+.b'hxR<E J3Es!$T԰ƙj7ؿ-p`wpx-|cx IDAT7&ll`UBK 6K!VĆc#XYykԋba|O3U0zJ`Z*8;t8S4ʼ۪3|oEd'$3+%*B(2@l].eKz'<UuaR V˵ַu@=4+t\\ZtPC.bɪ S0 3 v7Si'"iҋ`$c(:1 'ƌr1"g re푼0?qaFฬ݌9Q"uć&AxP}~S٧ VkBk(gyl+DaݚK$e!@.`m M,Qcu0,)iyOdυ@Sv}M4aAK%_~Š9跳B _9%DsB[{'cWnIfvfEɜsRyP`2UTDR1EX}D9"!q"eB[ :v\; !N∊QxFA͔gnN "(, ӽn{L! \B w<`^,YB||%k '8)"ꁒ:iXr7m:0 0ϑL*A-7*p*&~eY5xUO%̀+*6vMrIo*ksWpRl9+#zNqXk䦹цD`RtD\ c'Wk[0h5n Y\cpWr(m:S &z"VƍEͻ@F 0V6Kb4[ͤC:@4Mb9!Hbro%p# FUm C"e+D^x&*M޲7V1[˗W4ъȳ P'u&~a"ԃXVU1x_GŹGuIXGYG`'a$X*KCZ6wv;yVڶK!q3"ZwnmjVѭ,mn.-bӠ2?#5} uB{w]ֽN+_ o{HUKppUZTHXdAQGPJ )Q %^ Q-T Y3OY}y~(JZAn'³Eb=o){wYt/gA&⯒2&%_4.nݼώLO!\^̫PGb-BGXdAVIvjzRLSJz:.^Rus1c-xwu6)-Rb3cjv|C\`勘$%lCባqU,,g^7S|?~dr[ D`wRS3^emb_|q?hvfgz[[2[KOM u?pW 'q llmg^D^{iX@kbrk,UX`^X6&â_fן;?~q,>i<49jwf &'fPT `gcsăTO;o EZZ+)vr †™(bk8|rK&2J^ y'\p %M|깶ʏ `$'bk{S oA$\A6u\+EUgpIV#m4v%]tylAPcVS97ny )AȢ:,ǓMYXYEN-X:{CW${ _@HUs 'LZI8*V|V ]7\U(DmFYK7iZRƆu4&@z/vo%K]g#CAt\ SPKǙ-]cV5u9n(|8znf%Dߊ7,ӂ1oyVDSqy |GXVpg? R2Sƕ΋#\Z5/KI?2'%n*DATTHPFf ,(o(qGaT,ppQR"CEwoa}cspb[JWָ agi666p,Z}c*X ]b¾9߷¿s]-,ܹp|:;raKCn[8w޸sO?N{ ;&`NJC4k*vli wf3Iԍ˅'}}k?vṹ}h[0UjuޔD6,:9z/_*on=)"ۘ|yܸy =wk@>ۥ0E}W w]w >zN_%daEꦐ[2F O=߂IL(yB hgrLsJֹJ(*&H0)8:h C:"b|+L*Vo5KSQ`bI.$)(+4cJ2[FLřѠVK}xZ;u61M24(dIZ"hPu6Sf*=) ҂b(OmbԘ'AkĂJUR &wwplS3:Z7S7x{)T}+Kڝmj%=d{9.#&t2gy+]q'U.()ESȚ(C3RNﱨɵ1_u $8oF׬[{&8XN.jOBeCp |S3YCXn* 5V/\Xz_/VuBŖ&pE<_Sx'm?|-V%ݻKܵ%ϋGr'ן1%.*ؿ;o]Z c_zE\|?Ncgbe'tlg+{ƍ&N9I/R@DW5~>r}1wWVVq-*| Vk΍ H;] af= ʨ`J |{obfvӳg?iSxED1"nXKwn {m$-ErwQ*N(Fw_NsmHe80^==qagown3ړkx Lbs~c'8']*Jkxܓ oZ6qt~Lj- UXI .HpI&l6SMzXHAգZ8;R(.)v%3'@<Zv]= 5KJ{Y- -\9JW?qu9͡b{Ϻ1wObP,C:-ymIET+D7>CDs eu򻏹x_$T;10bgęԤp&ҩW4w5!n,or2cTʪW(.q3! 5 az],!/x$l/;.mͣ>:Ub'+rBp*4S~"_| :՛u۰8nLnG&scS:p ^9 KxY6ȗ5I2Xo:h%DҜ(/.e% ~lկ_W! OF33X_Y/+&c#4f"B& L4I$&ťt@x9TGMᴶBRB#g_o;qhadHӏء#IHPuքw 3x] ӁCj_HN <_x%vx2sV*i(xJW iq*CeHjYXa /+#q Y(i"?aՀc%%A) bcQ﶑RrxR6xv`|ƍʞ|ˍ&_Mx>*?f$TBTe~GyR,Q)1S`%rJT<44up4zyo2ح{"Fk.ۭ79q=sREA |ߔ."Mz,&$ڨKAlmz݄aU,S(%4KJ>R˗/~.-/~MoXX8z.]/`jzo &&v9gR.`ayXX?/*fJ>CGq1\ymbjfǏN,)lב803Kl}xQ} 'љ۷'HVK7Di? Vֶ&7?ϐ}VB譯c8zm[qO\16|,7]AvGcȵqG8?݉QN`ien >YyUL#5?p[;(T8q19~>Z]^nݼP./ajjH{|#;ub. +4)|* Z L0Z } ¥FuI[61NT ViR2Pp\,Hk}sO8X䡵F4$1 L$K%]M_Q/e]PѢ5IUYն(I:9@PN=׌H"igGd2Otk|4:.c5v TWe ȓK/p;rRkR~%./tk%o.<巒@%?^̺,Ӡr,w(IV+f;*jrfbQwM/ \9buZċ-~P]ͺ35>4HĉT M*3\xqWDuQDYԒ9ICq['x$Kw>d%zFaIJ c,OX}&w6Zչg;-E;ȩ'bEV XL?bt[I`+f۾I <$O:8 byNi%L!)%Z=Gp{tafQ\eI(&oLig+&Y̢GClf12J$ 9e0&V'VVGmHL0):qhBmr~r*bM՝2v+Dkn2֗Z>B3uU#6+%a b)<ۛUNq>in~}&'l֟Flo &86MO.cgs" lnq o~ׯ^[[-޿[[|N…(:(Qш# SlR"Jpɩ)IEMURQF YӘ/•+wk̙%VJ4qK y]!Vɝ-[EWS_df"I ?\Kvɓw\̋HŁU"ÅY))CfMy?ֶP+ Tk $1+Z,{PbhAy%щ"h2o+:(_ks27. @b'9}{Sr JŔZmR*,Vy^b NTay)qoeϳ@\׎8uxJ(ڋ5̹adp1]\1& 6wYzw\sgœ-gW-۸Pg⅋,?΂|K5=˨jg~ ׮_n\eؿ#XsšX8T7D"Nb5^_]CfE4niG&g MX$E블&ɺpj8P\(Y)`ͬbtpb廻e$aqf v-9Y4.E4Fg uEY+1 ث.k2Qa<)99u^j|ǛNXw<\)|AJA@}%! mEJ3"u+[@tMCzqJ4>c-L%%rvIHGku_:)Wb`P).\tanV~"UtEeabuc%)HPHBx2+?"{8IC[Frݻ=㊢.Åsoj\@iw:KX۰(ER-y6'Gƍ7Y}ҕko/|K\ 97n!M:jOBD7ro| tL++K~2wIxzfׯ^V6HM<[XX;LMs»vCyITe<-6fZƽ:{A<;? ۺT5\yK*>YpɳX_[éS'?BoQ;K,aoщOۘ";HoI?2䮭a"pq\v1"fjE쬡ʓ3(Vjؿp.^a84VX[RV'Naj%z$12H0sIq )GM7}.$ q$Uj BBQN\xKv^Ra໔hek4_"׍L K)ҁqƃb"YI2/ l9^Q )N?9wwqBk emG!J¦@"Q.$ 'PQ/Ī*xqABw)o>9gJKPaB%,:)SGt#j{uOJ!EBkQZ0z67 J$RGPN2_jFcwIVCp3L O*Xw/j}T+UFkTގ6?I/ $`! i&Q.w98=֎A  ̵"; w}w*??*Uځ Dys}ԫ'xq˸k@ mҡVO,w|57Ell;V;$VNEcBrꗁ,S M@\^rP̂&? Kۿ=10cdɦ]sDiк:vv`]\?:4Ib~ YߏsD 2]5ÛwcL':>[/fИ0{w?tϘAۘ15~-wiG28 ,#2s9f/yk^tU~Lv R,H!c}Xuϸ88~>ithW9B$J3#fswWI"r2$&87;#d=E]XbB!}Օu uҐd=&O{_}rU/GDDj@df3 9|~$ f?xQa~  khٶת>8=[yv`hۋƎ9꽶0bܵ6,ycrg?qŘ6Mu7θf=0sh WdAV [% f~ G>oP;6o`ȎYrc3>8n.9;4NƯC0 S^$7cMGovcyT 3t{c<| dc=˹8$V; Ǐ #Ƀqyl;3vI ;isI1D[v*hbѸ*[ԉ1Ͻ&,l8.J61YWPqX~1/~\MBl|c]574Sv*qc\|f| pD}b=eL3xzifyќWpt\uCsq|fȾkݱ^cK.er__ſO< J߽s[m\kogO~-N`E-Ψ(z6w$vD0rJNj>WW ̘8^6X`N\rB0g3d Bӆ8@.!:pǙO S+F]6 c,G=ds]L8f/n~p7C \/)+ $|_or=;wyb?pC-xg?ٳkn|\3ghܘ1hm08^ə^; $FiFnP~#>q$|uB>2 \т𹎋hc¼q^|~FRp B/ag{~!یΊuSΡD/_@T;v)F#y'1E *J"VR\KO=- h`̠}~U,hȺr{ȯ& -lt͉??I-wtA} dx~6P _NyFcb䈲=O[$rCIgjjO<4+NNL2xdiyXB`ȩ _C7mx OGRӫ' &݁w?Qc$Wùu>m%-u[ cj7o4(2!F`?6h:gS@n>s>\zˍaHUFYut.1𚁿 o7rӿ~UepOu-L0pF6bjcyNҜ$x$ZĉyoQqq'>9x4IM\7[ف$ eU e{=guCmYՍ=*{wM#1ω_}ؘ :~`,1ޛ7v?I1+[T63J7t_Y?98GN"El7l`޼[r$:"Z$M41!͉ : =EGWb9 =ev^l#tm+F &8eX &g}d(ǎD ?Yi$*+>)G:BqIR"e+=k6 jxd &ԏ׿&f',+#`V,QΪ:"}.-dC s4H(ߍK'1,ټpw ޗ̝M6ur'7>jR*5^NxX}@'{ `ח&q|dL·Z;YzX<%uٞ"{`ݕ6(jR&ZcJ[w>:4@!I>r#7z_@~=[(;{ECC('0!RC[x?C_My!rɼWY~ l?ghhIvoF m`j`K>nvOOL5.k~[uc>7T{Or*s`rKP{܏;zyD~xfcG%?3K$c_aDK0@&,D񇿣C\}~j1z oK9Nҝm}h[ /HbR!6Rt{}nngo~֣ǎ'q7s3#ay+^;+?6?]W;05󛿉'Od^l_*oW&ff} L nR-'rFA/A1%o^aӵ"J,}dԻ q>Y5F~wqxI5, Ad*EM\ cfIx5l0?skC>ɅOUXOtБ`b;q,[FʽIg'_& ρLyZa@/G1-de!"5'I#ğ%Cs`Hjeu'*<6cvҜO`Ϋ wkE#1ٰcqx|9*?Of;xil0,Kn_PyyqK*ɋ;:r}"Oc1'ң[`!D1 FFN~}rr_#aI92OT ޅMirK?0C Hlasj,1 ֞섐qw79)aa`\ŕ0 H(AHL66L:}^@ϰ{o`2,A`lȀ 4g}ߩ4W7ԽUN:N2$Sz6ÝV% ^4p܈Y=]FlaYaDmhClxX IDAT~4# &Ϥrt/ (?4"bk8&-Ѥ]ą#z{_lTp|pYXV1EO*bDԂoI1彷@7ȋyRo5EWx\Y!u2b9HI-׭<2CG$L\}#z@4Ӛ% Y04i C3o4SudIk[31T+X w}صld:f&poIڜoީlBZD k#%zB ldiJO9Թmrqeu]41?4 1Z􃜮9Ies RQ*=>]EM_\ )>q&j Hv+dV#kamdr9MQK*9YG\Fere>+[{Qnڰ~l>+)w^֢Ţs 0~>rN%Lsbe35Pͭʚ(*V=/>|O]} G簦91505PiMeL,!,^IkKab׵IE9F8g\lۺ5F 7GqyhQjp*&Ăw>6P}-r/?Ob o:ְ*w|cYqz'"I199*n2 Ĥ߃\'>3&f,zh$O z[^pLY߄xJEMŴ !sI0 nX Q3ʃ_o :ofw7Lgˣx?Pʇ3&#<D߰ QMkYtKQEyF#F-̣WVWcv(^eEĭF S|1C).ɮM#..25 |̃H /Z^<Č<Dzx<'%s&dγ=J8VMTDH8}U;a4`ZZ PoH l,ApPux‰U<5_s7rS˖fNn[߭ỲK (s`5}Xޒ-FiK̍,˫iЕ(d++/s)dLQ|zkS3f+W 4Xm۝1eάuo8[^u*\>;5W{tdR oJrPt/8ڬ/_>~ɦv g<5rf{P؄F >z=S`{5+.Q6#V ^ڊ9Au Ī/L!)cHLmQ4G2FC[B!Ģ4閇lf"UKݚ2kw)WMR|E1oj<|CcQ C}hljR^5WXN*?\5<1DxDZdځ@}O(_r-~,Mb Լ͞)!;ۈ=;0`fH)7[D3=ގ{"DQ#Qh1mH(>,bE8UZ9jjzFdRn?ޑ6Xq⊳W:Y}+Hh>kzhаnjFn׈\cuXG5%=pG,#bU@fP Pk@"7-ðY{Ey6 J%.b$mLiÀS m]|ۺ@=#!Ht%cUf5QsL '3]'(ֶ6۷Sb޽/!A$cHD[{zT;id5B8:e*bѰ,+Y틚)k^:i=km3KoQc"{bg^ߦqp-#|#8nJw=v'Lv(.K:ew<=[{8H&.U& 쳻iO(k#\.%4:儹 E__vå *Yݫ^?K)Jv(EVkTv"x,%!Ek`:1IcRPVFq&RV=E")6d'O\^ KR$e0]&7m1˫^Ï~xoȰA2ВGC E~M}mEH Da7kRve}&>uh]xstE)# tSc%+U^c뮽ƫa b$hA$:M3ܞ8xN ڧhڈ(–ˀ*5,lxghXWP5!`}`#Ť<UѢYNhzLqt@"xڧyϬeo{i̋ ⁘^_k}*e4s< (ukԀ(X&|^ޘn7Ӗ1G9% ~< K(D]X,^Sa˕I[E JW"j)AGA/;?^A'gHiؓD((27c$dhw22He[<)\5^;;zy!:G9f"Tc fww[fu\e9*lgWa*=sX;9)EeɵB9~LTi58[%3̾y濺]@ _/k#3a38F;i\]= 7;}sZg!1x䖗\&ҜOí脧sjegV r kﬦeY~r6cqEh-:̊)&2 E\FRZK߈CSssFFgiԔZ{EKsHIE> #2Ny (`@Ѩ=~4757&Z 6f)@CrIFUj1X*'Ɔċhķ``(}wW~ɓ4qR< ~wJ[^mD]ȺHu1<Zp}8؂;qF|Ae'A簦J P6+ k9 D+W$9qFOgKyP,kd"C(GԵz[<|raȈ> yHb9s)cz>#dx!ܺ)K#iջ0m44$kk~KuM]8VQК2st%(d3"Ә.޴OQdۂ^}m  _X;Bd$:ضS jb½1ݦ(e4f"{|]<[NFc@O=$Y~IHRIQ]͏̹KERqe/3ę?ȥ'3hrH-iu=%SkXZ(ݥ(B9/M>mJ SY\xt5\T&Ow"pS]lɓO"3 Ϫ&T€RDqi`olniA2UJ_ISNݻ12843M*[O&L:UweŇ2I:۔ҪS L b,]hoJ{R'fŝd*:5nkE 5xW1!Wbb}qF[U5*4 uuGT,E<!"*R Lc$CWҚ{ j?4p,`$074! cZ769 >;%UWJ^eуٖ8GuPޘF+7*:Seknʹq忮N54 ^, chcP{ [Cnp~yw*Y"\\e,.B&f6w`}h]iӻG$¾D@9V)D2‹b8~2HΏ3M]Dd!Euv'GR~yR32X!SkRȊV3&O=rwe:R21^hnnmͿvig/&G[=Ɗ[,8%0kz)ZZ[+~"Kx#,N/cJJsTRJ˔LX6A)Vʳ+΍@*jf;Ub^8}E~I>u`4OYKOu6T.q& ¾nWkcFK. dx0Qɵ.ڧ٧Ks"vdCː#oKaϰeٮxF{zkd[Lh(cs`$2VLX83un*ljp܃~5h}/ⷭJF5w>|ygpLHL3aE)=`3nљP%$3Z)h Yq nqsNzEOFƄiS\Sa'kXfbkg/1ϳ| gp#۷)̤;XhuR,v準M>OykGk>&muoeJ򽀵_1N]4%AU4p(w%S^,jx \2ET-Z39fk,[D9*~%kM5Uwj+232 _)$׋H8XՖSɾY*Τ_YS8HEJ!R}Y_3}'Ѷ3U7Pi%BHad/d*vjG69-B! Wk l͸ g+hZAZH1g$4eY.#2@B 6&}ND!B!쩩MnWZ` !̦:aK; ;}i6xcqq,n B!%Mt BzFbnxmx"2/-;pZ BH>ر){Μ9mmm|~HM(\Bz3Ƃݮ_>XBɃx9\|Ůw2k֬!8HtM3gʴb1xя~χz ӦM;=\\qY`AIĚ7?`G8=HW&`k+o.i'+fٶ}9ڋ f㼳CG{K޿뼵i{عk?:㌓CkG"Q^y `yʑ8dq18\kK{#X.` bR,7^R*a|_ߞr 8}``*\A^f";V"{q)쮻GG}47\AZ W_}5|I5) DwpOaܙ1)eǞG,'e<:{2,Y8< vn{>;(ڳ7߹Cá~בN+ܳäVvv׋kǞǜpYǣزmGW1b!Qşw.BH) Gkw_/bX{vm鿝xg$y?M X<~Jx288L$w܁*]uU8WA87ݬK-C8!~??[<S<}L%/~r~DF{қ;{Gxsc6rj{!S#6ҾNVL(6oَ^×-HɛK/9/>Pէ=‘+bɢ٘2)pƷcܙ%}0`8 Q,Y{b 0JZ^}x7l2X?J c}j$oN=pFF"ѵ]c8¼93+ʅfQ޾A.ßށ'Y:[iR͘6Y -[P u IDATw=ǞO~ߧtn>kWC}ʏ<#V\t$:c"Rʺ\"\]庶xr, s!e]\k3*j{ r11SZ%8l^dx W"{UuoEljj 7ܠ|_W ~򓟔$/ChmN*| uj?1,lMIww*VR0B_>Y/}^5BH\"w0&OjMzzE0Nj+V"]6$ώBHePJY':"tYg+-lܰU{ 2~°ׯ|+ Ҳ!Q+P(}:S-cZ'*EfÆ ?涺Q%\^ Jy!$HD}pkI}(]uCܝ5ljكpHX!QoH^_JmiNJ_XAYV?tD@&9LGu>Nk.؀DmXyb Ќkש$He>t`݅pkxXvRϭٳSNU;xSJYFC<9r{w[Wk].DGiZeiAͥV"~p*e40`Sy@"/} wQG_|H#p-`ʕW{4J:e# f-ׯ\se8n kX{ C}F`1ul>Q-BbQ:-B@\;Wa˶x7q%9}Jbi7.|<!T u"܂.k>ڳsgOOX|K/K<)WݹsR\ŲZ-pgA.&r TԔY بJС.'xN2%kgYȚ7(wߍc9dϦuu~'HDJmKɈSԀ:^kh$ 8])M *!/[Fz:Cí׃#NiǙ''w9mjuW7KP_!ڢ.'.e6϶֦g_)c_ZVP8SNI7J9eu~ǔцRA8!A֭[H$ctOH;^X?s/TqZT lB)l}or$HһA(dwPkw`pX6,[յ_&A.HTID]7]Fϙ\$r>}}UsORV;(6j[ApBH8|ghulJ)DQ:#ez.k UBVI6V< B*1I$|*0gqlWj6:iOжm̹s3<ə &.)=m?)Bkƍ {k nÓ8bb}UY.?"'\ gYtsO5WuCXq"\xΉسaL܆s/F\OuXwAtNnAf׫_Y}jV_'X)זȎ_ԧ>8lMDܣRZHf*E[7\dq*N`dP^ns^?t`nO@t3CKp'Nsۡ=>7oj{饗pkI=sq]ǵ\, ϣwTVLW_i3E8;B+)kd^=;mڴg}G2>Voy[5>xKz{W1i2á0>u6/Nu;^K>u-t)-C{KHV;T"Oc\s Wkτ+ߞ~5xvzx ;7' e&Ⱦrk7x !ٸ`~OQO9.דǞ]q2؈l_zf`H¦G%.7v]sԓ)Wofa6|lsȺ! ~W5_3?v>B5cyC=R=T/Z9-tcK,܏wO5 Mi[hkG)'gm^JtS2] q;c:% 5VjG]Ȯ{7 Qw_EgO`}"\4m7 %VXݢ.ܬ=xv;; -3aK,,ۈVʺQgTd?PO+!Eĭa7G$د\s!Ⱦ:F -ѝyt YϿʰQ\&7Gnx>POJ]o+ȱl^C zbv}$3Z+nP 6:BH.jJy$D3g|hGuR,-)SI-Xг 1/C2>9aI_@}$,[)Ifqk[CP(4!d\q1c@ZGEIdE591lj[|WuMuX {ܒu'NCS0m+ce5gv"ꍽ4T cw~+ɳ__MƲ:dԪdsMK^6<][#<܎هX>+5c-vagL,F@mHY>nuR㬓P5qJf}  UX, T:8:&ӭdBol << #C@dlKyn-ѡ-%>J_]9fҤIy9Miշ+Q?|+:N/x.EŕRZ^ vLd444ইCWBlsS/jO=RL6nkϹ W<ٻHY`mEUԶ͘0ǗrzT/ʺeo9.b؈(aeAʹJQ؛*~$~A0z'&8ץ&Wnٲ-JlsU}]~QV(J:69/H$^_ wqM&|*eeM6a@ٝ S >\вt v>ߊFv$'uՒSu۠d).RVW[ٝhY'ޱcΝ\LE.W X)+ _6Uxw6\wH&eӦMk]+ UC]]݄v܄=*W 4![/bgp&HR]V9\A 2gGȿzDpdV| xv.?ms"1nNŖ`nNRE~Jy}^6ѲN98D]&3 |0J"J_6,?zf~\pRHE*&],2٩ dDUr,w&2RUۿ?R\' ˜>m/ɤ\o_}ڿX8׻!dppv>Q>F߰+CNo2:o5)|իd( $ٳGy޵Nq}2kEJUW,jSm65JW??V`lV*X)e#+y(5DZ4ɃѸL6ۍJj|^hsi(E+lk+!On[m]JiVVK}*)R7p@H1sI_z׮]8Ut}._fm/YsmlM>sxꩧpI'%9XbߥR/O>V\^F }%1Ѯnw>KSz'W}88ݨđ۰T^Ii`V{q% X9թNW7u8v6cXoR/Ҽ\Wg@2结*nޫV@MѕpW\qn|nQu&};\*_JklLi3!5!fʜ\L,@ nB4֎mB&lu&]lj@'{?[-4R"b YwGtk$֏6(G>X\Eqq0~Ẃ֩tkT=?WʍPkSjRy%eN>uF ;:UtmCYGH3Y^Jm(æ5U\kjS J_wu8cqe) n Xrmł<dsJ}X6T^>RnE&iR(:ȺSTz궿r8/j285Hbq9`…2) *1QJB%7Xk%oG.ߘ7],E&iR(:ˠWJU^ Fy<x衇^hPyJ!Cɓqcʕ{{{;QWWv\.wb*G]}Gr?gk*K>}5NjCW9RNNB)H9܆)TnJP(b޽Xf V^]Z "mB[a<*69cY3y}eYi}kY0UGbf*4)Y= |~LLe,]"Tj !B!T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !dɲ89!B*B!B*2NŕB!X޶m6I"mb:`X0v"FOw}Xepk>ε8P(`ǵ͒z)DWcŧ0iCKoζ2w܊x 3gHYb a#Klxu]7XGGϼ|%3fTLՌ/h䱷-C~|>nԋV& L axriϲK~0`կnͿ~_АNXIh0#0z |~p!#K6'"w}:;!BHPy%TD,w*B!yBBK )!BHJ!ciAusֿS%B)*RQJB!6L!eaP>B!*26le5emik+Q>{B!0!L:nB!d+!*T\ !B+! ӱ~y D!R T^ !dRZsFB!$OB)T0!BHPy%+トB!D+!N130!BHPy%+B%B!T^ l$k[|#B:BHIJH!6 w&V)[2YOݏJɗu !-u B%­bB%AYG) T^ ) 1Kx{˪W2dSXlPB 2~8-ȝB>c;!d"i.ȡ2k6# *!:>8!P !cMeⳮB nÄ[HۃFnx䄐rlnBPB */&y@BDn:}B2A86:PB+!!)ءY=5p#6uA啐)s B%b˅3%u@啐 VwrEm!*!$KBHFB!-(TB! *Pd ~k?B!\#*BB!lJ!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!JHy`\֒jm 71! d!oR.Iw|Rm!zC) i(dqd)`SzxDyb'y7xonn># ^uib蟻>}k4M3Vϕ%lh`!1GJHfh)?|*Gp~aQ%eL g2XoR i.+'==={Ob5Boo/Z[[1c Xz*>uhkkO4˽K ˘Td4RT(LLL'5Ni^hfvww\}`zI[u58 9υ.`*ab3USb}fcbT5zA21CU4"osy rgx 9W)'.XYk=01UGDn Lӌb1ꫮ w&ɖyMӼevij`%`b@7Msi}"y](Nr> 9b '13s'&H 6R<}|&W\/{r 'smؒSP{]wW1)!Y\G΁hÄsܻ{ndO?_xѢ=s(pooo[6`ڴiy^Z*c)O_r &M6<0{5gz3.h2scݺuJXhr;\ J :묳9nd))y5\mg|P-w,\z(:;;3dk~YƤfHݾUrY^\m]o"zCȸSWO䁐jlY=N@~i9sƌ:Ξjw2&%6檫VuX\?ȻތE΁*eJ{'J8+c*cX k1g =pܱ*k] s@YGPR{1OT6n̺vY~%cLe,+hV\8SP}/L tMjW΁₏)'پ}%APdts-]W2 *+-hjn+W*W|ڰ8SP}`> 7ԉaL9B T^ )rQnG?ʹvV_(9昔%"6mތ2&LYb/_W{b'Uèe]r76LHqP0*q ~c9kiiJFAe|%`ʕ*ITM,c2UeNb[jըs\5,F+zCq+!ae֬YyL:νk?@mPX2 .cYBYq7p.XdYeuR8SnX9B\JHqxKru2)A~_.hvX~%2v#%"2&O|饗6Jү+]&;<|bYsՐw;8V9B JHqCwꩧoyks-Ҟ _X~%2vC7 ˘39DÍei279jȻ !ù4M>'B g)===5sfe_Z?"ِ;.{$}LWIȫe~מݻ, yea͚52&% 6 +V|"h>Wy՛92FXJHqb{{_s+@ԩSU0:r~K?Oa^R*9^ u%jmCIl+XƤ4f"z3V9BHhy%x ]vK!#n\HZ'"\ӧO_$JJeя~T)6顇ƿg/˘Z^Yf,r7JRy%xn6|3)܂'++)^>lْj2&%m 7T!+SoyU(ZL 9ג'13s'&HU+$Z{4͋Lӌb1s9OkڵJXLՔXFXo#Qyebd YK~4ͨH[oŜ2iҨ'[S ˘3h SuinU5W_m654%e?_ܧ.tS ˘3eSJ)^Q\ Bsx ]]]]Ckk(O;4|fFV\5.g1&Xh`!:`aBj7Е> ZG^p,5 I5LF !WBH>,p`vX ˘Td4RTR9B!B!B!B!B!B!B!B!B!DXpkIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/settings.png000066400000000000000000002106461473342170300266640ustar00rootroot00000000000000PNG  IHDRjl pHYs+ IDATxu\l,"bwwwwי]gܝyR3?CO|߯{;3,yyyB!$ppp(bB!$44TPe B?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!RPB!%?!-jag/WBȷɭ&F_9lBFz߳Bȷ~PB!߸3/'B}Yg_*AO!|?ϋB?!*( !oT?!-H_~888MB!;JB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJB!ġ'BJaq|ǔJeqB?!RPB!%?!RPB!%?!RPB!%?!RPB!% C:aX wY!`B_cg_Y ɯۊo!4I UT;gu03ߪN]<:K]W*yrJ]ױ޺N^g\1CR?[{k0m5k 2Z%x:2OPvsqwiP>\S10t!υ{Mn4LBYm+*|͵=㩞Ba2&Bt}8dA};=~5C/-rV㾹q+u6p׺R:m:1cVxyX]#sssKtYYc]}sssPQ=Bȏ ?:+~(.@+sbt>ޓo>Yp\L0INϪ. kyI5֤ƇB6[H7wφ >qB!ߨ/>O±A.A-u/U>ۙeƻZ~v[uϹu>ºM2uu=dp'vQo%L ;Hu1Bȏǿi˵P܅zZw9tQKKi沗 nH{Xתb+ 1;(i 䙙Hٚ~^!2 +@p*_z}cٮ[d߹~ Uu#g|ىl z0ӕo^4mޞN;Nȭ z|6EGvzoZU\WnuLLc$B|sO,lI!|׾)o46̺[mm.,yaazze=0lr7Ӑ|rk2oB\f^<}ކK5纮ɻ[DŽ %”*}ϼyzDyJyB!?/v+.?6mns+>ĔƼfu᳭U ԩ^''_hrB͓gR.^lYnU;YpaU} 6z#D#鄀By""kH.*$IQ?I)xP}#._Vlת?3aaVa#'Oջw,O uL˦ E^~VJjXwKSqo-mMyQ>2wy s߬w)ZW,LkScq'Oc!_Ɍ Mڈ-e"}#)iVC]K3*ex.kb^̎>96m4o2x9' |зq1o^Lg$i0xhᘽ1-\f" ƔzZ)*0"g1#)R B))ssG\M4 [X^{{e?tqʇ ۖ7rʈg{ k9jڧ~i+oqWĸaۥ'vt-M}2"Ҽ[YF^׀*M̼s/U|;UκX2]ƌ^*HmtCO<~ہeIJ`΄?_O{fS6Ei>jڬ~!Gd8V}k~ʥwb]ʇN|`7'aul[H[A=:{Hn^ƚzGXzkl\eHz7-9`}!rqjG5lHU+y'u)I>l :^ЊRXd `3s1غf-Њ Ycr+ձ3t(rP?M3j~M6{ZiV~k=ȪV>U0H|'R! +M G)jO\v[^*45+3Y={=Tzǫ߾VK3OH>R"?+\} 7ӷt*:]9367Mndjsgjh,ϙS_ڹULg,QAW*9#eO 0zZbSA&RK;+IDbj6K32ǺnVǝR}OoWB!RPB!%?!RPB!%?!RPB!%'>)P"7vhQolqBWSCK A!)R_ ߜoB"۔] ͡:!t D?tBѨBHCO!8<`}/4Bk`KlLPv&H~u*a1ʺ(=}@ש !+d2@,џPSZ!t19=BriSQ+CURB!?V^۱%^xA Ӂap/4 Jj pGw !Mq&^bvǪM`Lѷ:WA( zXƚЄceX 9KD'p B8?({DK_[s{vcAh5 ccP`Jk4RyVqӘa@,0_{_Bp/m4E|$dԩ .jL@7{]\P-ZYρ/Nh.!_eU{Z-˲B oڿ YS (2Ac,>{u?!*c !̀?eBVsWܥ bjyD_o?hյpbeH=O7틘x Ldy^l%+4 e?!ph39D?.R5* /uaS{x2!p(dxG*5ŠHUܥ oBVWxq6DcC!|Pmt쥷@ã!LT Űvpܗ,#!_e?!jR'?_q!|_ag81_!UW`+p8 ^&^fB$P⪢|1O!y}o+6?-#wPнpI !vvZ->?B}+׿Qs^ )b dw#7"0@>;%<[|c4BFgP}-a-Fn[ 'd?dY 5kpX :B/bI"p0.fFƫ9B!;R/0πWb4>Ǽxs6а&zPi1.R&섁>hQL) w0B qpp C-YAT~hD"=~d{3ү{( !|#>F{5|go2 >ߩ7FN\93poϬ}O+ڳ"%<,"$,"$,<%;F6HMC4N\.cXwtи?IU؝+=Hr*xJ彛7:iӉﶮ г-qWoڧ|V|ݣkHy=\̵]{RPOQB>[e"dvIȷEǚ>vp]Y6.m L^Pc/^|9oۀZ23^U;ۚ^:j\AfRb/li/,X2iz\C9`K5] xW rQeH Mdl2mܳke] @' 8su, w0լk>:-YOϫymf\ T):n5V2^˃*H =sa<::yc/o-@Bv5dz"Eܛہxd$ejs~,\vNˆt t +5!0E;C%!;.G= t.ʚ57|"n.tܧLvu憌u0IػcrUwksqW-0APUO_œ3 )"%NK.TQS;.x̳X6i5*^sN.Y0) t8utGwX.ẕ9Z%l\Gp퓌Wq9$^-x5qcԳpoY>`lsF%#ܳ9*Z3`p q՛)22yjv_߃;{zٶ= /S߱SW'-z=L7pZ*;>JANv} 7aKtykʾ<>2[êw!$ MTV І\"6 FebSz#n`/'9gj_QU^Fry)9'ZRNNT+}T>=yk̦GY+B[&}wճ.<۲ )"E vaȷbt5[w!_X90#[k]FP(* )h;M[}uy3Mwu?ĝ׏f \\Лh*t:muhϭS\a ZXC*T"Y+W!/8KwZuhdy7sw#c K̈n!l?D9V6^?w}*dcψtݪXu|w>5TSm#ƙ\z]/T<{6Z C|.Ѫ%yD֦CE{ ]Sd_ IDAT=SjnaͧZ'j^}fwMV- ?6oolFVɾϰR#~B>EQ_/q5k|8am.:%2qϨ @qs།"dΐFNZt6rV,/~a9eG:BQ&u,oז0_x UO9ʐ Uw蜷XJpO ԁǶ- mvBuHtH°|ލ/[v؜~\d C&Utrݮg<=zD;|1&5l;lS7j2V\8Zޛ;4:V~̜>-$jԌޖpsݼ)]mZ6H-dB)`-pkg/>峜Gk2G5: R )xU9+o8qḤ>cysІ ,!$'[KR0)i]v\6뱤i_ j?iy*>Sw@Nm/ajU+bb߄jLkeϪ,T~T͈`ȱI{XyEW-i9[wt seu* ?HLa#e(5s鹁3`tg]po&zR}1HPWGz5o]j5ԇck~gΟ+-#cq򪤗>|~,g~f"pZ9pl_HmicU*!sB9\j\FzfĿZ7byXSX7״ߟTdv5_ۿAE<@Oڏp@$(شlNV3.cXFV3]Ϭ1Ր fLZ.w[+4,e=ʃVi,d2K9Q@`r朶L]jN??ai ){rޖeMY|jDxF ,lYFV^YYY'[CƫtB.f+]G$">=k:,~-p>̪6S}1P|#*hHtEFָGCW F\% WyvYykΆkv"OOuعCyW۴> (wٛٹm<{SiV7g+Ӽc Y"!QJLULg |Fۗx-U@Ev9.޹Qv#oFD/ܙutU\>pgpaV(8d 'zշϯh?ԩC*tk3~aG#OWKqc`Ś/ ZO l͟)ngm(þ-zXrMbtgjz}cNz 5a~n+7vz$TXkg79L=Lp9}cOը!y|hוo"38GeSZwjޡay[u#H(w_V7o?5d]6԰wY'ٵW$hc }{|o2Q̴?0|%GwO9D ӻ^(3Qeծ<|{U^kw˃uдmDl׻'ϚZ`/7YGRZ86)6?f] 4V#aMfB\=Pn{sC#y܆&1I)kZ?*ς)ǀ?AD3zcoBնK6*g(@sO snuZ0qǿ ODǫ `95\gdy7϶#Z֯lN-תl?HRbws?6oew׏g?p)aB;ܺ8HTd*5 +"!+ %RKuС"#Y4x#UY,-: ?<{mj{ͧ׸,m*BCTyS5"&UIaiБHu LMc&<~2jNBhUpsr, cKZ}z]~Uΐ/O IHgF@qQ[L3L_׍n]V>ɞ[9516:4+56D3)goTC[3IoKqkg)@y."E]9W{^tO~<_i_=ɿj-Xm梖XY4B_)}JOHq=B!ġ'BJB!ġ'BJB!)_<|7J_fOwIFȹ_~o ؒ-ޡI/Lx1B!P7/9jTZ'|kߍ 0s(3&˝\T{㗟T{^CNf1 {:Pmjm'G>ς5m?~KB!U'?v_# WloӢ7毊뺼GU%"av~w%1#ٱR=m H".\Wd"F}ѵ/dYh8u ſ.pMŁn4!Mƿͥˏz]#ϥjX[I8Ik`z,pl\ِ[[?f:Y#fcyz6 cdÎKF)X\~4woc !Jqƿ<Җᩊ};7d@CQ S#7A32 $c:e[\V.-Qfl?-.g :nU#YD>{lKB!Wed9Ƭȥ6E5Y`w㧓זL O?bUC6L29m+#"SkYFJ3Rafuݟ5`}:Z9VjTh[:[|Mh)xeZђRИRWc3:O@/:B־ZFe/}u@ی )Woe&d~Щlw2̤԰iaAy^:qL 3ErR'X#B~{_?7utTu2W2ZuzRRF_x%SPy_,^>-6Zuwfr4o &vuw= .->Sx?CfldY;/*.tߊMMLB~X}`ir+s-6:Ӡ5<{aܺa/4<#301ҕj?Aww^:<-Ug߼H-Uޚn')3h¼~ʿG5Y`wcôkwyye-:wsF ݻN%O= 98^M`'(ƲIVjX\2?8Y82ݍF!R~`RApv+O?l./>|m@̴4v'p*g¡ΥEThYDG>6*g^#+3 ^Vw-ʞ>/IKefH&-BȗUٖ&[v5`fvEKZ둧MN$f0Q5ĥ_d |vݨ?5#z:qꣃW %6ꔯ\|'kCux)KQ@B!?bG ٳ5~t$vW0b&;\ȨwOwWԨW#Us-tW:zRdoM'++u#>FVQ!p.{8BH߰ yT}Qҙ'UUM Bi=GQ ]t'jNd4\E,# D"$~U("!|(b*S/ e,B3Zױ^yūމεkI@r=+|@+;ntZȤ]=ܡ>uuG]'7u?H&i|o&=ujhU yfffzzzBl\dTLxzv̲ nY^y6V!|x`%g ÍKRhQD=8u'OB6cRy[Gn}?U]e jb52kl](:STyovOQ={ .m[qKSE*?>',oZPfdAjCk<R9vDwXΓyNx]S}`ŴgݨNռ6O3.Kt EKsZ+fH =sa<::|]JS/ߏe9?R;*r&ҏFIWxg&tRޤf/di;͓kuws`|e՜0#_]kx'kG{7awگ.⃂c-.x&>7oasfmN}-ޟH0v̈́v֟vc:)_ֽGW L =kvq6j'O{*}ƾeֱ&vbv}d}V޹յ3|Tcd; /1B>J|y\_Td?cf^ >\ʃ?6}o`Grx6 a_U%oITq 5La$fOʌtɭ驩0v}ͤV.sKSWϭ8T8wk0BW h\y#uqZ3,{+RS}s N\޵!eB/׹S̻qw|pmYzٛhfq |ƽ7=Rdd*.쾾w=@}1ijm{~_p#kǦNݾ ^*"3.*(XY Qd Id:7 1e- sNY.ГRpi2Y}k:zOzP^^;||mH- Χ1&5l;lSo+/9#~ň۶Uid׬[g-eטb݃1ݧr?4C:T{1RQRM9}>Qo+h GQ/62䩲tw'qboWfDX8(T*He9ņ[_<ݽ:@6?v5>;q֑ĄhO5=w^G\gk|^׍kcUuߌ?\`b'rUIQF͌-5,܆+>q圜J':ܳyy@+ph=pFƮ%hWj%ghkxL\ٹ1|v\AqE|y)c[9:&Tyyy12s+QDL¸7m&9oX/_O~V@\zn`e'd ]?c{.̾I+uާp)IAZt uupWYU&\%ٟ|92Jwt,d<ǣqQlf +pn?&]W.;ƪٹ/^݋T 4}f5Jnum.3I_%ĵu{GOg9;I?-xū'Kو@sS~=ͶZ_Z]#zĚֽv*"IR Nj"I 'ZF՘7ހE˙s2ۆvU?8-7\y[ޖ7eVVRJݪ 2e[i\L!|\LxP/T]ώ%|^ .&E,l\߻4"ڿ֡UB_-kVػ+>GF MKLr -j (+^;5! km=gWY]-*$"Ui/_lvynK'K*1<$A7>/oFdbkkӫӪJUҨ4V4}ekM}p=>kC0 þ-zXrMbtgjz}cNz 5a~n+7vzt @HPSOCx6P~c.ffX$E,D]NlV%ATn*hٿ9K r%WULV6RJd 4?ϯNwT@?~c AFH~  Z&I0 kP ` "Hux0q7 0 ktp0 ðF 0 ktp0 ðF_g"Tv\avfG[ba6ӴD 9M{;C A輘@KwunRt󥳽i>fu0 0QI o+zĒUGP;q.dN=2ޖ IF9>m*w$spo: 0 kp~k']wӞ.\ǁ95 @€ ӤEc4r4 L5 IïRZijiqDP\.%TȢy*aր/ >;dCmۿ~ۅ(E&寑4ݷCD[Vc`,4ca 8%if/$ߜ~`-ADй6!j88? K><%aOpo ;4W?vKf3+ihFf05ٗwS:bs-S.#[+@11 (_[ܿ%΍:}Fiv0O22*fr# ǿ|u `NlDL0aaXYGrw,ڸJvt7"A*;37;laDy]ܰNPlݴ}6;:RA~9e6~boYPEMbaX/)]\;yqudD9c;g?HFip,KHH~sY .@/~[9S";&)Jc/:|7@r(?OMk/'_u@:ޟV ,|8{={Yl|@ÚteOչ]œ"qB)jYtfӎj{B҂,a}ч.LN٣4Cg['slRZR(6 TvMok^ðkgN-bBfTz n#ZZ*Ӌ+oЮ;g I|qaV%wv7>v7WmfU\$ 3s$+F~~D=sn%X`)jq)fm eyE"9&~ߚA$WYEYqY RsY8S3%96h#ʓ lM$}ܞSga kpb1x}^D\d Șjgdi9"tNRq 2 8/$U[z5h ȯNkWZU˲_qx ېRP1{k7]CYwIct$P˻RQwQjZi1IVK#[;ߴ o_DA],"y{lDpQvoNTq~7OjLOJ<^TZ&&}faTNY~[fD +{׿|@;qyzӨ,Q6ʗk6O=F AꯙgQUR.#o1ˤP&A/l=jeze_nZoe<ɂ5/r8W謬 D7N|rΰ f/Ϝ=Fw6?=q?L}gmgP77{>(j3{Tҫ?{|og`w8saLJٹi;)r}c]uC+#-M#UT-W{S--(QɏvCkg(fd#ܥPh`3+)@(X|EnYqؠU/:qD{{f % niN{̝~Hti [s?Yݾ<95dVBOSOGAscKrNXGs*rd")(ڡK:$iB[t2߼Հv*k"$PmMM(('M y' f|XH3_ /keZDT!r>-|xZ~7{w(. Ϝ7lu= `*k3RBLATLS3oVVMog53#G&7~q|Z1on 0Ag7[r?OjiApYvK}`igZDѱaVma O)*TJi^z}Ft`m+vJ_xLI=˰9ʔmw $޻uY 2dixP9lG& b0-QyQ;M%4ׁP˹n%;*niqq7&{Iзj#'~)OIJZ__80L'K[c/5`m1 8Ud<:WKw\Q1V,|hN'hTb$YISLoX{ρ:툽:|&_>Iz[0EdzN 4^V6usC @y*[rQE?KM$PlV{ӫ{1u8^P.ݺ={ƷFj3۪VpuMluh60 Z֕ůkm=kSؖ])7ydY ;i-.~y{7dᮚ%RN惇eeRDRP310* 8 Z\| <ۨnָ5`#|i;k]F??d]TY`O0\,;>IŠĭѻ\a׮4_4 IB#lHJKt獝+JjvEƏh ٚjb,S?(gZnMGZ>;~-,izVFLw1 K=f( 3H! 䋲!h?nKaSߛ7l8_5zjHЅ鈯@@TD0y|Moiƽ1 p(FeY򔡣[Z F03Sysj7m◩c&'sT`V4$qjRP~C Aǩ=ŚCck7Ȩ|GZ[yA~|aSul={Kg3{\'-շ?9kB\. ۽콢}#v&aVP%ε"<[T&DTUo$xgCg #snS:q*PYcg^P@*1O.3751bG">D~WMxz\`: 8vwHΈ=HTc$IجZ!13b}P kp$ 5D G G0S+`HOΨ$XL?BAK1u71ܘ8ُ|Y :6ܵ& /+š&:R?j K|yERDR$~q_U|XGQ?ƊG|)c5U3͖몭q0Ag+/J|xQy}u>?9joܤ] ~),L-dmM+$kĴꦣo>.M ~uLٽ H<[_Scb@sn+/^ nz$@%܋R^:x0 F,1$dכAg?,}ac-̵ Qڣ'Dm٨d4]eRULG #/}ygPY+v1/lv92QE\7b>}s"JNngVL86&yIBYMZ;_Se3vy }Ӻ{\gHm3Һ dokc r"P$6;[/P}{k L{w|CQɃO?f k:qR<5zT[+%@gW?iӦe ZaΒg9b UU!"լHZ7` ůNwT@?~c AFH~ cKCc  A1 "0 1 00 1 00 +w^rt~5};܏vZWŠ?MgK)՟,T}8i`aXw:;h׼?ߤKkEjT}gG@Aya*_c6Ppw]`뮀_0 ]tIzDF sS .#־)T;ەON']٩}Nn6$J錄u\ B`aX"-LH4- ~U> kfhX&OtţԽvzǕ?ίtʝmjo@nd&> o~:0cf;G.oKm?d6€id1 0?kk9@ u9ޕi}wV[i+_njM*K~SHˣcKAi1ߤ=rV97DR7ijg^{Vi񞾃-۠Jɛ+]Mʤ2LMEklSv<%a ?#whN]?'i;SЮO.l;dߝɖ*~Jņ sNq t ujGQ`0Aj}{XW ݸosSV.wm_oksc4?aXcT"`hu%Вu@ :on ~|0r_m;Dddd-e+LÂʽ|H BkuM׽"P:8aak]}.IFT,/uy)joneJ?ov唤G?x';kqYҬB*ߗ1y@'e~ćDeIE"yNLh`@CӲ9`ʋHE WT7-0 ? P5.bC*[V)䷜qyWyoJϜrO Pf059Ol?WK;}z]GML%İ\mEd0!Нx-`=\a5v?@([ x?WI5Q/Pf+;]~̠&Z}paQұg]e|ޞ3۪c# &XuQSZ-6em{}aP:^:EYKg:lS.d?ύ{:7rA~ZLTTNv\~bsAJöm0`I"F01=0 ð, }zB^z3~4]4kp*t9vM+sRab~r]y7Riikkkk7aaXG_.lo8}XR)X&-Gg{4ہsVG!T0ٷtQ̽-|s<ADVsc9-QB]`.~ta50PGom6KFq*QHGZQZ=~1]z}H5F twyO  IC&Q/T@ dW#pO ð,*Kz~|µ'ί[&ם?X8bVΰbj I,/ ܽLݔ i ˄RU.ۑQQPº5_saP>x,5r= (@B pC?eDa,, Ҩ-)LMOLLM6أj}_ѭta=(h9z %(^噷kk%9}:hxheǦF)n4dYC4+yNs5N ^]5j,Q iS=!?0I]()~AM4 5w%_ye2 zYF \UZ`όQWީB5c|msIg)1}cw£V;u ߹T{N]|dG+-eb̀w/>tܲjvgNs C 0N^eAE kVYgʔR:\џa]F0-&J K,QHEt?cv=~I.T܃Q\!%9w>3(?(PPQ >:mPsEhAOxW[uyA;ZjVP',W>yOpW%Xj: d9//^Y▟Y1jUU$3j WP/n)X G]GNXw\,'6PVz@p͌TX`݋ ~-B_J7`%8}٩yY_}2l"+LC[XwRy1#QEi>ը|`9`6[ h6 xb 8oj?nMaF L$ٖoB\33eq,;*@)vèesS JDb!TmqO(ק~;MEh=n]Brn%eg ޵S=[:hl p|]L0vN2Q~HKq_qŊ?،vәufwS[sM7L˅gt >P*CA[Ux}#ʢ3X|KEf]w(eljaP}T[@X8g3ðk#d>tpp#E]C=Ζ @($jn:/,0EnF[v@XwʨDNд都Y`[kfTu>Wfz27xqMM  D&"3UA_/GJ;d^4@yl[ѿa e٩%tF.MNL)kߺ{Z}bb%YHs+vyӵSg}BhC!Ͼ*[:8䒶UvPon)1{h NzppnǵVɋ=w8Y>uTSEB^udsGod>6Bֽ ?FeWڥH*LM+vM2,VdԬ,zy^Ҫ5;((ҬWi^YX^/6MGYP!qX+ZFߎk5{ǰBP&S]-ub 1L eҟ-&5G! dosX{"+>?&ufZbʦkRZzql:֭?, t|cEڍ\ [Kc|{lg q\ +,5+$ey^zb, O31Yy"cZ})T]]t\]P.Fᾧ#t,߲<%p 7s<ծH}\[Ǧ/Y]deEiթÚi49[ee- <|<";N٩* އ&I\6 \[aXj7V՛K>޺a囚5plWc=C|F7i,КdX^4.] 97Sc&~ޅwW@0 # QjQ߇Xӓl mjM?}eӆ+u~TY/riDG=zیAIaK9jCE9+<3]n2Ht.Fe7;\mUnk[N)!S~4b;?={z Lh4d:d+C;R3V]6}eBi ?y-Hk-OlrZL"Љo_xrg܎PYk,byсAoBޅU0mf/`ZN[7й`vp{\ռ6LIصnB'hSߍPnFWad -L"Y4#7Q'$e Z*7(Y$t["#:Y`gE_x(iq0kR4i}%'8r̄g /6i RnEkF c%HNPP鼏5z),4W+NS9ڶ]赚..5sM']<%"Ņ|cź-~VRXT_X"/{}Ku7uߩew8첓&0c^:'<g8Tpwwn[9l0ъmkkNCKiPURc<> .x]nǑG8QĚnEg#n2?n (_/0/X}aATT#aM\,$-CϒfC@([Z' Jwg@ʉ~02SKJ2C{s6RVPTQio8wtS&XЀ2yrW Ï.P|"lfvv6Fiy >yPl>xߊz$4Mo݁*^w%`5ij]yjjM-@fQUe4 .F\lC(ݽ%_ T*&;1h( ~ ؒ ߒR@4Ye w? IC匿daÈמ.c:>_Je0.zhX<=O`߂CVζ7nzQ@6wMݝ$Cg؇/Lkn$Tb°^&53ڏ~zxȴR2]ZAPIUyu*L햭'k;E177Lqtש܎a3 qʇζe7Lzm(vN5ơY)ܼ?RsʣK=Vei~T7.inR.EzP3AJ2AZXq ԁan5Hj{)$# !Q2`tЈضn,_T*F@jN׺j.Jiۀ$;{۪vߦAꇸ/^3¨۲g}Sbѫ/CskZ-{-޻ƻ4'l{u G˲3܂OjF/I(* CW$+j$'~Pq}I+*(裫vL]xb|UzߎK;uF&-Uw)M,ծko =\̓<cvX4²}H!-.nTBp59´гG853NO*D#EX?٨EEɠ7җ:l3=lfOhjĤ9`tAU+wzе]l+njSB]>ٌM"(U3tƑOdJ y^nHX{oz:ᢅ$rhT)6lAFb|RZ-KMLh_ kgWVWym{n_;*I}.*WV}soj~yO+j 51*&!e?mT2.ɉIM/R bbe_;;zt:b(}eO_G9v0CĊvн'v?U\mEO,ԶL@ˤ1]>{zp=\5<do)zY+eLiEҤ+Gfg'4/r3:_ IDATR㙋lb?xUghFOj?߲︡|2Do;|!%),a6?aLs%Jbɱ?|Tk=lO$1FJ4'_ʊEj&Z#;91vc92c+#旉 YBJat %O|uSXq;hZ@$ddfҼz=η1aNr~5v8{6 ȧt[X: Y;lZtb,1ƿ;X$3ZXEDjTD銅U$+#Ced،Yڋh`cnR-,Zkp$wNlyjrW]NwާKj@l^p#\Qѳ:j4-J7CEzFƚhan|tBl|Jlހ1m 8!:K\3__0]ĵѝH@%-k7;'%)q93Al]r'c9bLm_ꓠѼiEnzsڱ|Uqߡ]gkT+7jŭ^$--/"DL )|*p~o 4hڏ 0A_2"z=2Q]^aPDžXCE0H`㻳IuN~ +M0 1 00 1 00 1 00 1 00 </c[ba ؿ_01E;^O^Ydba4?';=#3%@Ӑ͕% V|z'͕ha~wZ+ԕ#qUUYeyM#-\P> 'K2KZ aQ1 0/oxnNg]-D@USZp N~gd:o} 0 ~cGGK(- CqPI_tA*xqǪ璊!F43r]M$>'&D&(؛J 0 917xJIB֫]Ǣ Nh[sgw+1BH&J&ڊa#:9=؟tq40 0':ڦ iqR?zx'?*Ǿ{[p !UE b+pIhQnٸ?a)!+Όޱ):]*)G_X *LM3Vy^e vƬwsꃏcB3;1C{0uU^¨,HoU4߿tҧlTsaHUxvLho1ok}5m֟-)Έ)|T(Óc *J/+]ZRTTL 9dٱ9d? ϥϣ H_~=FC!>z-:< IO/) }+$ arhлҊكוYm*>O_z(cлۏ$?~ðF_s[g[3sAתrϏ/}9JIsY$w1;mٍoɎc')2bW_>k[J>ul,LI(Ȭ3az-$L uXTwzNEE[nnAa1?yyv3ӭh2=>)SY4'7Оowk^BGy(iMzq}-vQԚa~ A& s3[9 2'&2Мs7\doj]8dFzaSd$%k^zEԨb/X襝-eaY us|=,΢khXiߞ{ZK?\8qڶbMԱ,9"T+ϭtNBziqLD3qSº˂^y,KJNIʿ(a?,k~~'6'T-'8^ujsޫVhCAϑ `-'r$;V oޅX6foއVf"0?Zwl ~㨴{n /Zx1E4Ng;aaOpꏝ=.`#ϮWG]rAYv `W$q?oޢLnlRXW& JTt 4ifzulφ'R5Z21$6Ǭeŵl3“jr,PnG, \Yb0IRxx,%Fvl3#򈿖ռDW[\j4sͽn[ugB2Z51lk_g= kӭ.q/ޤ$2j>zr5vO%-C \l5jWq[eZO(6iԉ{L־2tc-M}& V#1tMo䇄fq0߀m6CWL,LCy+sSSRURLMMB|C->S)#~L||`Ӳ󚮱8#^5 SCFYrFsL*4uu洆z.dGw`,J`wư.d>ۿe v%~Q*~LJVC 16hAqc)Mkڤud]YJlR*> +I\[)ڍZI OgOyC݂0oL{'@P}A6kn=,MYSGvqn6C0pV'vA8V232Lz|d:%3݀`SÒ22'qRV9ҤM>lSF 62g;'}oE 7g6f&rq>|'yvő}أy+~2E^xq#iK[{ uen:Rcttsɜ}y@XT@n=4 RB3-'rĨj5ꜬAm,.;|τ'LX2흻)KBlR=C+IYcYWlI`w6Wq~D+=׭C|`ɪ6vWF/@bS[gSFszAsmU"ɔ.Ny<څWsb YG14u󶃘4Һuq_m< &7zg۩Z={4%\]wQ]aE_:w*N}!B/keNʦEJ#{lY3_'qd'Yq υƶn%saD0=kG7c " lʱE VA?^Ic1qFv^L>>ᵌ :vٺhWF9sUjqus_ЖMn ܻy9i62)ҷ.˼?0wy)cf1V==#w-N0'LOlwL 8L ^={\z u׉}vz~g6foakejn8:g.ͻsA _ ܚ87)3Q lٳwE۶\p_^QAʡqvUaϲb}xR|z}j%ŧq,mMHoj# n/Gk6'3XBr)ڮ>yo＀e..<|s6eEř&: ;ܰŮse#aZ]'uu7Nn`*Q}z* T7|[U&}pm\:ٻWu36_nۄaH'|$΋{>,B^a!Ǎ/VMUj*lˏ [7Ѿeۺ'#V>gzzFfg.:Ĕc'Ќ\Iwv ;`ZaNKO}䓃uM4>*@@TP[9k#@|#4NL\~jق*B4ж=Vթhmj&!{A|X[,QaQU2$UVn؋Q+AdnVB!/ӝxVsXӌ :;2 NIVyٖW!]jPQϞZKधI,Pؾ{Ecjù7ky8g'Zno3K0!df`(59OMi{6`ΞSY0 S BDZi8c9*&Ǯ)8(_4YHfң97 sàx+d>0ղ..YZ>ل WaH)é (J:v:(z_w=wWkJ]byn.64ky_(Tnfs xF)Y`݅kjݢgn}FT7hiwʹO<&UKA?Z@']۰ @4o=B6SmB ;ܰ,+Y߯M8Nό{}Z ǐZ ܯZz_p]g=omOHVD$Vƿ׶ӫׂ#o}oڷu]g}mz4ćg[Pq=/{iv^|ix"B$Z"X)emǮRusuNw˴֗eWoE<ݢqVڴ ->՝`coM=Ϻ* >uBCrLDd Q0ȇ'?7}MKyzzj =ĵOϬ]u^:E9;tupsdzb jgpÂ696>~,lff"hjHb p"S#dU}L9Q%;U5(3SzuiC 0y%\20ܷ7wBjDx"UB97F k;fl~NeLߺɸNU3ޞ;򐶽6⋾Ȓ4b&c&/-.&8:Oܸ!XT M\ Jn\)qr#*; *ZYVfe$72յEٹR>gmk C܎Q{U6x=zOܤ0n"vd/4En=ZXшM{sMpC\e Cbkv_Jx8DǖSB ԧnn9R,Or9ETS^N xafۚ[X i>ejkطNZMzixj}E(ݺN ry\ ZfҺ25DF6`sc셱3W\y߸au-i[xN{{-٨Վ*؏DvUE<@BMsS^>5T+V{Xwn5ȪD"##mll P|edZ) Jy3,K5&c(c )yEMLL$w)sJM@b?A?FA AQOA AQOA AQOA AQOAYږAĿR+۞m^v_8xJ7m3N ?A'Ջ5].# Z= +RƼ锈ܴ/>zjPd%r$ JHc RO^Y]\0"#m>  *O*/ey1<5h IDAT+ 6=&*MU{tcpу[Y#n `6$/Y>)sO-`B~3mzUo&l*Ar??Ih`U3am[^Wm|cǢҢ8]᳝ԑW&LbGR{JGA[(J%Kqc[D}y p2x"V'gi!q*K&56"0=J B:y4ݫPyE33ӕ'̨gPФϱv}87!H' ~Ϧ\הIq}7t|nqߥz/v}5s}dh릥ͬp˶~* t 4AX9~Z#̔2zOl'r-cuy%,zLǞ4k ltLM 3%Okbl/z|ԥ3e: 5+وSǼ# _˯UUsix;uܽm}y?ctf%2_3|>_ kIE}qjMZ` R?26SÝ>.5=5CJ{aY8MgEb NMShG4)ڲF]X;#__y*_٤肈ţxe("A/?&D'6^*MO+2$GFqVb\D$LEIK2qdCyG1qO=ժٶ3})"$bZd߯G)79_~ s_'!0n+?jƈB~&8:͜YsCNҡ/X}znz|huԣ@WW/?ˏ(ڏLNKJ9ެS,(ݡ^]+!ȋ|r4PЮ[ C2~ _ ^> Ka޿jn]q0M7Sk; Sr0ʥWoW?.i0=oʺ-kvwe3L=yoKyQ\T,x#A 8Ász }jNuKUnR[u Ņ'ŤsVˈ&I24w1uB}ZuU [K33)UcYxy榾~.FzE^vuըpʉ: Is豳91DvO`D g<t?<L : uXtrXPA wOogӮ/]UY:vS'b?Qy|kL˴qd4t:ɉF_G՚tR$xҰ!0ciwE'Jz!BXuv\Lò VހSz6)K.r%WGg[ۯPX. 9;h|99 G'~VNQ3f4b._*_  D,ql6*]?3:|<alefzs۵ Xvjս)C˗2ٮޕ^voB>^8/ںK+"?Nr8"sKmq}l]xxCqjȳKS2c2rxac 9/?n o.FX? A? +;s!ZjCjir8ZB2 *+ I=U,Z8=|V4Q 5r}ףgϽJ*{>Tv6<ɋT{& WɇTqnkiyqNZ-9jBc#n#)/D1q~L`>n6wvPD!f_/uW_3lƳE)81aO ៨>n^@vǹuY>.cҿ"ýQ#_ңdw֬2RL 8Gŷ]%V=J\!j <JNMQYVia*7n'x &_Z:AA?Q .s1pS 5 _~AGvV}5:~ƿreh—VutԺumP?v|ۦ4>Y= M9qi1)V!msNY"JdiqӃ#ּAYQqk몀3Jo)VIS3X#.A DDSएGylİs(VJev ]O!~:WcƶF:=:%4*?q2lZR%5#q6u461zLj@PPRz0FZ5.Y|H@_%$Qs vbG$Jox`/-uM!wbLZ @666] BR(zekaA͂\ ~pC]fY8?ATt?v92OTTC Q4 J\  !  * !  * !  * !  * %Kc^?1S}}+Kvj! G~xmK _)ee*MzQܢ!2P}~ˆysM=m窲yb*:35 *T/*s_0?OvA9LNhǼ%tc;xvz ū-[؋ 2b>w9AAT8ߴ~lI޵0ds0a_eYZ!ebk FPHTvy AAT I^ZiBK&jcUʛ]kν3ϗ̼H4qhA(/pgG;D{ 6 0 LąSZl&,B4_[2M{`FhXo6)wׯױ{s3:O  *UT7!I ֵԧNƭ낤:uc봱FOM7|M:~Vk ^9AAT@?֥u?XMլ%~pVлtkp۔J999b B/4M✜#Hʫ@՚{G$Ytڃ3jWڟ_5+2SE..5CZð}A< dee d]o7!Bay¿2h "@}v 4~Rb$PGl1{);] eggS"߃W.(/2nρ 8Xsiz=7z'q -Nwmc`ںvQ7˓HJ ~RI EQJ>EFFؐsGAߏmQEv#%66;w²B,;W5110$ʱ3H?[" eLX 9FS4)EI!,],|!2/;#=1.6<4$3OnpI#OvQ-|{ǾosJGGN\߫?ۻ/0rz߭weq ˷?|Fhzɲe`9JV*c_u;3+jܬĈO/\kw/q/_H{x\rB{AslŹ+~ HѪ-\i,O|҈ӼIxk5imEF܄bWbUfl*Va&ڸc"=25K؞eMŘ@k 5Kxy?LGPrH*E>Ktl*7-[ oUEGWDvdƭ[7gO 6/?wm8#7ʫ&WϿ*~ H{9WWyziMcuvB;{DPG;VfY-CV L쭠>U yһZ年A| DsoڱK*^l}Z:S?g== &OjJؙMYklѶ-W-?$uѭ۷y%S_6791UY?{񹊋 tM2c?^ࡦt ͋f-6s`_R Csh`0{U7o}v,$bSl*qVc;MhhDJZ~ZشMąQɢ][ o;쯾 O?Ym mcz\[ʯrZ+K:'6;&wy>֥0뷟 ps06,}@?Q7ni;yӖЌ:>.M͒YJ28B*csE&5MT^Tݱ]c~r`%@z͆61#]X}~N[fm,~/uxr̡S?Yw߭ ڑSw͸d1gfL8uL;ìl}bor,_X ?Z zVBQw# hkZV4҉J t|z7#)u̻ьZQȤ!Ycl7K>f?GtpݰTH'*V$\49ojbD\-s2!AsGǪn9[xYfK5H4U>5SܶjEjlIw.; (&".^ ><3g<yuE??Z|l%E˂1)O0K)w.]3裉 j=&Ez6܈1)AC{t. aU˜8@lLRS-LEdƄ~K>vk0v9}|_{[.`H'*F)0+WaPrEqE\¹i2->H2 +v4ȎRx gsn[qΧ7/hsas[+nٺY6+\0R&ݦm I6lQRcϜ/Cr1eč{6K;QA?ݚ?k-yѢ'6Z_ IDAT3rXg4f1yc `(xdò,8 ;MޱTBb-kv=֠ʃG\9bEN= `Ŕ>զ]oSG#CNuL~/kK.[wp͖cct޾&٘^ >1uTMS6if];'UJDEFf`Go6qJ?ĨkVl2H|[WXc{nȶ~FlZ!ݽxfpR)ZxLXѩyr뭫ɯcsC>Q֏0vhYkH5Բi1vFlsyj6 d],PL*pӟ}ч<xVgM|z} ֐g!8GEΣe'7?!ZD&y"Wu~ࣻ-?紉_Ա?4y&a5 U -gOUc[/;…(L|k%&Cvӆͥ`m4~U\*6\NmjA>Gfy #8; ]Sجx'F#HG$A MtLf}<kT{TK n [GLk~t=}4"Y?w 8t),9E JV;]#FSف:ucھ^[WI8v>޹ 8~M&a]Z&BlNV#V"@K(@adߟ}68=vhg[_: D&>^:fDqe8U\7&~֠a?KxӶE:YI |Ʀ2n9s? :ϪVmo__%mbm@ΎM55V|p -ir\ޱ4*,I⽯ŽΝ|"'<TyV'ʳb Of]PSg3]X)_/9cVdi&,L]==+''6KQ1 rߴ+xժ9iFƚirL X}(\_HL040"TUMي#RnC9$m7C^Ues?=ޙjx;Nt̲8鲙{s|YQzu[;ܪ΂@_&N`sw k57U*|- ?R6jhQHvANC {ٶ74%ʐ!= P)[aOHXF+ܷ7=ƒ4|Z![їU!)=M@{+L^ pnZla)X)g<nDrK|=3hW^.(JZ XRs4ܞ;$jZu+m۩ȚDE zJSh!/<2Ə_ݾz5@PϿ;|f$}|#>5m؜B]=WڐmKǦ wuʱi#9nxkԢ V%"{8 /<-[31.h@6#5͍txriu}fFau?q,KY~=[x}HU:|ߦa}l&8iXBV7juzJ:'T}~kPC5yh)G2e02߿cQgYTLwXZ pmӦX,VeS'N=Zw7,_K4gX ,.3. M:_gS ZьhF ױdiCAs`G w/eRyۏ\z[(~sd,[~qgh{yWj_LOOZ'>l³ۚ™#,nqp^RإF۪ACwܞ2!ᣴjC+.D(75egfe䰔n;lmNKgo)KplkmhZZ1l;rQ|`;2%H.Q!)oHcu2sU?CXjq"A^T|M-|aBs@4V?oar E#ye+Ћ$zltLK^yuլ_-UuKtEwQU5'or HbVloX:eϣ 'ZPVE൚S`'i B?ok7\XfR.k:9wVϸVdA iw"C~1r@4Mr̊ɐS}8aK!;olm&a2% ޮhSm3iD#C*,JD%GQM;cѠ6꼱ҿS%9O2ijQiif?3uWϷL >1{ؼ3WJ7|Ḥvf ;9ʆ'Է@+˲dh7ABU/>:.dYN@,lSON_/WѦK$!wכ_]OnHq6 ur)e+!T `ʉ|2|ᠺ6I--f h daT kLwu~bIߥ+hQ}K:'Omo۠y|*ӭ=vDU\gM#PyGrZµ].I ~ʖyo65}p LթVj)#σBߪ?;lA, +̸qK{)6oNM&RGUwD_I|tZR2u5Iң[o[LpCeSB, 9 #K欜R_<5tpۣ䕴s˼M1xtϲ62ϔ2GA1ef$4 䩩`-+g2rX eLSB[Td?޾|>oJ}?~5xIk]M tJ(FJcӢBD5s0c3g2bbM%zpܼў dtA5,Fuv۞ 6{vjJ)hgғS@[r33XNyYZj߆žz e|]<BU@EƿȩlS}&*e_\|?k]MJX'rWwGqĜ'[PfowZyoVK83=kRۨTBisn{MVP;H.-)I:E =ЧQOoPS+OcDm+}? @aCv}K)?Y6nq%41] R*"6 e6*L1gm32}#'7N\曣{9=ȨuIȾQF-+? o7n kj ]T'dNvdn|زypx@t[m9ޓ,y4EkMkTŚٌwEŏ.+.$jy.\ŤHy{t[DկZyo˙Gfi~pTO)Bn/O;DKŽ~o^TL2` BNW\iL4p <Ǩْ _;d06ѣ.f5 8oŌO}^Y{efeu侪XjܵgY_&6uz٥KyriXEܱ' BR38,`(ƴ~Ջ7(H>^@ +ϦwK aejfqZH[(Ivݮk /zQW49f~ t#?)WpθqT["MrxbkQ1^opVɋkZ˷vud$g4@ BU%(Ms Ku[D4o~*xV5k l`CA\B]F@GQ|sT5#hk}* Њox]y\NkM>}E27+x|V=I5sʹ 4ȁy O[ܿYa{@֫Mc]/xO x@ "w9a#jhgimQGi6,]GY"B厄[YYUٜ׏/s=RXi[ǗmkܭK6[k l|HxP3.U0>xwWt<^.+})(U:֯o&LfLxR&Gƒ.v[ܸۢlR G[JVF, qP)W.9ymr&V֭};w-7e^k#G}#YH/wi/J5M4?H5[}6Qdd/|[RnRB XEG㑭5dUM˺}&?H=WC( b|B! nGUZ95#ve7c!R;!G!?B!v0B!BBH`#Bj!R;!G!?B!v0B!BBH`#Bj!R;!G!wq0 ˲U BQMӄ?T*0!ʯ0 C4WQ*!u0R,M`ER,[{BeYJU~cJ$᫢!*aʯS9?m~7>0H͏K=gϩK=`#PQwV,Fczwv*m#ya!9Υ{4a]Wf;, .T%3w2{HT!*" 7_%\߁+o ]9]|WUS[ wvLb4j+>P(f [ Bt eQ=scvoBdY݌x>{}>a~[^b:L{)T>!T)SZlWr_AdFu dn#W[ՖG>MZM]fFSa3B}҈n2ώU٘# DϏN0X\e!J=__B)8eֺai+(`?7x|9LmhϺ*!]%2.x1lڳ+אG˳t/{bY y /~paYw&u"u$%i#u}]9%?"&x +?Vj*i)'IY.5g)^"o! IDAT#a- ţ3eR0 fJFO?{.{Czy_яD@;%_r;}dr]b}~?e +9IrEk Zc$ϷlJcX}8.54 B&L-ڽ ?(Sãj0&\\rK@{\l3uF/&oNȵe=/#yq\W.k XKANUiI,-# 3u eFZiwl 5sl{9CP|@(nm\NĵuǮkfau N &#+pbsYA7fZٲ\[>6f]]( mˍ+S2EgoX2D}o_:UJlidCE%}܆NRqzw޿Y GO$ >rG{sZ\ߓ'p#>MZ|݋RD~19\^fRz2kt-B2}*ǢNXF{˿tMMJHH\L~Y1k1aY7 =ag7|^o݂Vk|R0Z8ϺAk+-lVs9q}׷$>_{lҶ=;ܮ&4ww*F:8kz f!x~SBh˿״b]{Ĭ ?9TUOZY:Li o'q립6xGEsNmdR}QaS8}ZnެV)--]W?:1 zIf|c >H G؉c{)R%?cN .aPSHNPRܳnKYW@MHX&"DҦŪsM:c_oUϞccGN3׷yLڢazlMNt'=,= odz:ޛ_Rl6L cC,Ucc3'r<ί}5ҧǚN6/KԘԮ3Қt\H#-)I/@xڮcV]{vކ?͛Ei"$*}]Ԛ$&<-s-&KxZ-dkSܶ`h .]E^+b.nr_4W宻ob;a#T}{^}IX)s6g̳CpYoO>e]cϭEtmx4*s/!VL9~ӱC]9'HUwN\?HE Cl-F.d=qec5juG{;q)_ qjeY!rGךߚVӏ=0qI{6IX9[&ዥ7l0QP%8[d&hws`Ń #J]/1vnfܶxʻƣYVD(~O[=\mߜg3fc[HցǗEVbxj@0.R>ii#`\OQf-whϼתuK}~0gKXSDd*_82Calm̤ HG.奥/^ns oe˅]pA9-MDڅ%bn]m0F-rڭ[Ѿ‚hjC<MGj>lFzm(2{#oD3۞auhl'\ J.H(9gYP§͵?LL¶HpuY1Vzyy Dzf:k1)ˍxcU_PLKb۩.թ[ . ͝PͫS4M0pl[땐Qv՛P(24M,@EBCP> 0@E6_9"B+XUGx2)⓲q4<2;} '|GUUg2 ]^3[ -6s77fZ6 LFJhk-9ôsuhlvضqy&} .7Zڦݹ G;T,I ~+7-$lv;Aa>TiJ}¾.,0 +zӂ2kpm [i @k @SKnC}~.Y2(MjRudtED$51WЫ\_{!#O۴Q4 kղHĠw,#"uv!R~}D?! *g,ʟ|`T]fukk}?tv) g~ݛCO=W ل6kcTi~3{tdy$mjzYbdblb.4EZT+w_ZØz6lc1QFTTRl KEKY1ç5W6bvoOvr4ť[{AS l~C}z-HBk4w-cҰʳ.%mmء iyI&54=#-oi*dAmhS9նiѽwFzFFVNhO)I KfbMjJm谉OGwnٌB tmگX˗\̭s/f{8ʊ|iҲ1UKRFU59?U?<&/7bqNjc(dG2jc#-m GH`o:BH`#Bj!R;!G!?B!v0B!BBH`#Bj!R;8?(`knea㱍BS$^sS9\zHSTk.UD5`S872[~}n}soy/q@!amFWNd=صhKxȚ9_XlZoݿk, Ө9XLE?q;s[}'.{5-RCK[/y>+֤GnT}X\zo!+T_iCm>k܈^_|璹.DùUMhwv+#@pqWoi={}) bI~g>44vT^ĝ{7-7y/ &|IGX6Ewz7Mq[sx'sZ%aͥx< ؘ5%XG}oX@UKw,LJ|;s~R}+1B9v21 _+䇗B&IbJ.}؛Ļ ~~v&Mt}}qzTEFzRKbfR.bikcn'cϽdhafmiHD kJR*U73n>y;:˜4ݎE g>8kٵf<#:*#2l4ChiԷ?BGURxd,|E*BX X N+Q[&96hVq{"D|poxI<.ǰݖH ;/@\G\NvBVny:ߚw̌H1~bsQC4-j.ݫ`*&6L42Fi_[B?ޗYD0V`v)tKkZ o;sώ9-51o8|V ;t? D@ 4$e֪[oFwٶ% e㝓utmS@!J";-h}Ã!T tkR Q/j 1gf7g yxSӞX;vw_y=i#^/hJyyoƯilʻ,ϑ2ʜ Z#xƝl ӝVL.#1>^XҲY=L!u$[K^fw!۹#b5lE ϩ+`و|@KTz(c|^g5~ nq3lߓ쀷  h8/Z͢Ujjjk24o^+Pp3/_UBa*„|O8oei\"DVg=/L,z4jܦKԉ.ZҒ HB7 [MWG1_wҿRX,Z Аwv%KZS<\p " &@}W(Cǟ;YWlӫ"F5x=;x)fԌt={| K"oб..'؟/MhnV&gg=6kjzZY7Wm}G]H_O?ݲS"&ښ0q7 ٹH)";Sq~P_y6抔tħ)LWΜ|ngim!U>DO~_Wl«n Wgy-$W"`Bo::.cJv=<Ԍ';|/TNthr]&Ԯהf'fr@I]{v>*պ] 52֣WΟLy Z x3~ĽAa7L\:tӡ/jt; Z21?B軪ڿ*!e|{XW<`_< 0;Ti=Zy_撨lϮ#)uqM6Duŵ!8ckυwFFǍޫm}2-M`戯,JiƔKtm'67HzWV.fw0qQ|  iNAu6e8\}E8`"WHAl_4g!B~N%Ź' ?(#o\kBCfD TzfO8bgK~:hW*  WPλ%̲Ũz^/k^?Ƿsodܟ2w=˲v.$mɳח#tg2kQM{ʅëfvnz kju?U3䚝x촔C7`Qkmq<>< /ժDtB?gantcjiǥ<:c=a_ro/^љO\x֫VSŠ~Wq,zģ6]OavAAGGAj,Cxa9iyJ&ghB? Ȩ܏o ןXђx? -M{|ro$&7ɵiѦsgyPݻ]leЅJn=:KEv>4U1Ns> rm!Џ"M}uQO;y͛Ưo'b8~VCS (Y^]My޵$\+&> ׮ٙy(%Cay>BUzʓE&=>7f ťe8pU^:iQ<6+>:عq3'Z9z{c~&7x;?$ TuPj[K  X2!Vm6*vt{ٜPϬQujWw1(pC{9VL BMcO3T[n%ڜX4)2:0tmQPjֲ)޵Oօ-֣@Ӧq5lw.]9فwr/"mˎ͗ni}d_e\~gy@tn>hGBLؑ<|=r3*4w3ש{dfDzfiTs>p^ LU1QDg5ʿ0NOx!UIaN,C\}Z~=ysfA`ӢRlmώ9-51og"v3-ԐH@C"PFnq{}t}mNpox>:nQs.dVDvZ*WN"?#ue=){ j^0x?Y%ڔyCs79NgWvnz躞Ʀry.IKIѠZ:7nɦj0)h$2l%-uQc͎tS ?l/y=%߅DvnWV?"iR)`upjInFRMx"4sKTz(c|^g5~ nq3lߓ쀷  h8/Z͢Ujjjk24o^+Pp3/K~B0QdeaBS_uqϷ4.k!"U  )FO_*Q8 6UX kg)R߀6l5i\\ZAiHBJhK*DbGh@@C;9=fl/iiNgkpwF(3ʊ|Gtx!]a*pݶԸXlm<s޽x.(&;񷑏y66hz",aX +aho7C?cFLCA+Rl^frB2]{;s>ƿ_OM񏪪.-Z•KyܥiiN}.G~ mjqF/_76[wWG_p^Fz:=soݙ׽ΜΟ4g ~K u.;51:>=>k-@舋Z21?BGUآ9 ;Wё9۲dZ|_,DZC|„_j_҄JQ5 ,̚;sF:_kaҜmp 4p1D]c qhQ!}amQ\?eze,]H$k|/(YȮ / -ii+;`@MuOʪž&dŃ7eZ-LJ0ŃPYݡZ.BGU^4 s;w+K\\ER̪ Ӷ%]a+\DE@F()М4{r5mXJU]?}s #nֻ>HxxUE Ei^\%%B h&)vE|eKI7BUnol1PQy6?_*VXĄK kd@/kzKTlE :EBGѮg: {3́- )*(YDƍLY³;gk=k =r䁷^9W~BaJS$)RS.+`RA5%lz.uJ &Z#P*.'[X%Z7m>n%ӳ]]~Ip[NZ_JX[}׶8~_f|5Ȕ7vmm&<,BT9qONPgo{0mħs,̟X2?MMI|]k9M;̮/|sƢ155X(#@XA_ !*Tpa}ٖ^ vRBT.%Ozu3ʸej+\;[fFSJV3i߲E7~=Cw7~E!*ElU4ĺ' &.2/+jlbrHZ (rl3/"u5kḽYUUwBU:]JN>F{AF4h.!&{ߡ82qYAG SSB8Ea_y?BoRvP!G!?B!v0B!BBH`#Bj!R;!G!?*U. I e+zBH}}$0 !xG8@ 0 6 RBXUT_\ #Rm!aFT~͒T*04MSEAq,~Mq5-Q!3BBH`#Bj!R;!G!?B!v0B! Bw{(:IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/sound.png000077500000000000000000003373721473342170300261650ustar00rootroot00000000000000PNG  IHDRF6D IDATx dEy-j>gF@^dDP@E(x]! *^$H O0GK`ΜUu=j9g&]9}w{1^5'RZZoL[g}L1&?Xc\~do@g u&PN{1F|@iB&z8q&Z}mCG?6M>D?֮Eᧇݺi!B=-m+=Z:kb(# i BA?~~Y+  .{9̈́.?k>FN =0i,6 A:94 K.x0kA }p)>i'#>Q o!F%I{!G (=|:4eҫG`m8gD}> ^*igCsbpS Ca$]11."WorLJKG`בiß5`a10 l;|TFGˮA:Е~袕+O@ Ơi,h[0ZfH00iF dM|#P3e=sC!Ql7O'OX\|~1%;>)8v6 8:cnH"y=GZA".}ŀ#KNǜqQ,,Ue-]8ZOĦ׊AR.5iBK0#@2PxJ h"tᑋ@E'ZFצڶsk>0r4X [Gk 0 r[i Is\wB?ԧ^i;JO}JcS"ntJ{z'|:u=BIۦ`Q&brjd"szJژEU) 89JM6r|E.8І#BIm,."{kRHGKd9BLlj~DX{ RJIQOT~k8PZA5B;m8^k )M-S4% EQP.ۡD3 lz/F0tNij SqH^N0t=)j4̀#49"I{Ah4F ʾ tSꏚw|K-)]0wF/. ]0RN(P*c '(!p7 M` H]G R҈rHʴ?-JF Sd^+D)B8~l10|\ @C?%H@Eu/RiJ4Ț$+yTUÅZ%`|n ]JCERl"9SO!:8ܘ5 (2&WNssNeRb~ -ы>/6 gGn Fiۖ#F {M ̀鹆l\ҿM:FMKAcm25SE#>7s"Kh1KSv5k~ Һ}%(2 W5ξ< i`h15(zLKN0PbbРI';N yGjPa#!7axqJ E'NKRH\$֖ g?!GPe u_@>YRasT?JJm6nPRԕfP7_7˖3x>%H8Pm FϘszoNQ]G͖ ꐺҩC4C:j}t0MڣB#mX&v $FEHU!Ag g4ZDIC)NPGڒ}& *֕t *-fJDAJ^iG'ug\(8$@0=)ynKI͐RFҥNI1hZ4/rq|yfi H(Jp?l(@دQzy6R$J͍d h%J-bc9]F @:I)#xd?<()U%P*EӤ&HGBJ!Pks$j횢8BnR"]c Ӻ7b-5hEqIzfBQN 2(j#fҴE|._=Jg:wLQ\N\{Bx6NphT4/jBzY~&HD)2YQ4\L&w)&BIԜԬIBi(^SY@q!~ۆ9Sdi/AL D.v v=5[(8mZvE;ѢhB}cOyEH;aaJ'8G0eLGA@]Qzɬ ZM5Kdrk#h@ DL#NvS p׻4[vé#DUJ`W&\ u: S1k#]ltkI)bȱ\@2+ U *Q4OϓZo>{1Q|##E҅N|IAfrI N@Z#5+E(E(mJc`$2`+Pf#0϶a*I\:yQAS_JWx ^@DP|X6" rKH6.ElV.xВ(Y bVho_{^",Ku:#K ˀ9I.?J* {e2@1*)d]b:JqkZp4~3Ѡ HIVx:mzaGSFd40w˔,l`p|U`QPa^]ȏՎvԝt'"uJDOI1PwMY%@( uzE^\uL4떍 ,dHsH`%+gPCc=[+2 ;JdT!$34]T꘵iq 7W&&')uv5q0-qR_E+itTTZTk-MGtrEi`$vq}b6ꌔ"k-F.@o( $_#s"a;(aDذE$_ |6x$蒟F%)4\.)^TtQqj(AjCR2CFK؇!.m .l@1e)ﲔ0 3R<[ ZqNDӐʩ>#]<kBUwc`D}2Z_`1m%}:"Jۅot_C"tܛ` ǜ.x4|!W ?+`7_w]7V<Vڛv櫱rغqƒ܉|xxðﶃʝZƔzP/YЫC~tS9a6+`]66t x=6l".Oۋi& 0j哖ի0/,5'L$yRuC$՝c O+/2B#5ELI |\N$'jhJ1rtPu@T&5G3oMw`sv19 ~x+˾M%91g=7 Wݽo#ohtCPGP=VjH1TRۏQ `~+ Ot+@R\Pev7Q 0]lmTmGnl`^H $0?'N,мFK6k:+ iMDTJ}ލ{LVA< T݈7`b"TKlyl(6.驩D_e 5u"(iP `kº5?Z,]>|x}-1vvXDqj LSn ̯ ̊8;^zt߸Gmt] =;ǒ>5ܱv_޲?x}M;mh=>eʌ&V'eiw"f^(@-dUJKG͂>Pam/m:aʴ=+54@N^ 7[RMcYx.J@O/=!i-àH Q)((Oט^w55VRhKZe ZkLX!55`e:ThL*[PRdk^"]/t"ߣ{Xvk>'Xs/^;05j-wbp?]T,;ljxI8p_:.o\ ~q~睊ݻ{LqKgXގ?fƦӮCoJ` 0ŲnCx$uߕ-:mpD93U檈I'2.yOb}Q˯/G!yl꩖TS'dEk^ƅթl`=芝P"b]( 6nmmF.5V 5X .`3C_z}Ca`R&o&wyc 1yF! n{>/[ⵟ>Oizt/_w-=iߋf̜Q kwJb6&r60Q$jZWq*\(2ֵ&Gn !]:e}F7 +O!ZI$)씒'O@fY -U%u4F qkNcq#Iġ 6LE\sRnY~CBQǿ *|p%M XZ٬{Wį~E{1xQS_nO>޽sXqUkj SSkqe{<~ۃ׾˷}3O[ Y|[߄?}Lq8]_ W,X'b% 099<knt[v4>s놨x+nm_$o ,7HbE%b÷XxN Z$5UWfJˌaNDk1D}I@:Q\5}3NRC.Fu y-6Bѱ2a(O4jGu(j(⁧2̘{d? */y,)bbbBi3C ~Hk.QhtC!۱kNӁM[xY#G %$jXwa^'{cOĚio;Q;vu.-6?4']z d/)hX9TB̫='_@6[n66> V1L !Xqva"u(]27Ni@JڝȍaRN AU_m:!t45zWHn(G)(xJeeJp-,F;Z"Kd ȅ %EC):QTR YƬu2I|FpĘQ8uS=M:!w!,.Ĩ_k F2ث7`DD* kݍ  6ub`dl qŎ[NOՇqeRo+v] {3GNk;WDCvsIf7Էr%N= G1Mu跦P)5{ ISc!Մn]l]h[Դ/9.R>2#=no[QF(Ycoa8MC( }r`@TL)^ IDAT uC.8,Uquى kQLqR_N/j発 @Sf2it Q:B-K8Z49w: vsA08 (߿?ƅm{%{ނ9lX&߰ 'T|YyY2NJ'w~=|]r'mrg߃8gOxj^sS|./,J%Z5rwF9M䔌p4`lnnh֓*"A/ݪ<֒LMZUD HmM|ZJ( $AjDt|`eP:ia' vb:G2E^%I' -_R4و3X:#7fZ4hTgXt0RwE-ߝ2c1 Iʭ|I 8a 6r)o⍖`aL1X <#xaLg[`\O{<8xӱƳ[|)ް qi׵x)4Ab'-O; u.e"w\YQ8j1u7jd|1WEovLhsJp!Ϙ .NǏGW#[Naxz6RD^]Y ͚~ Љa,MDbW!<ԧhNc=ջ:qfuI6Mm# }@no$^2j̓kNۦOBQL.R*QxNe5Kqۢ1V86A2(jטbX&WcnD{1PN*5k ˜"sw&ojԅrl¤9jxͫEX5U27Et6Nұ!(G  (]6;e&7fe6[#|k(XyJ CvH)RMRF[h:J7#*u/3+R6܄.@ɔ^ev\c`yCGR=IU.[ض=7PMiS"yKL5z;[?i^4[X9m։3 dwʉC?m)zNI`# =[_: ;&j˃֓(:]FLaSDF1Դ#e'WqӁՈ6um˜D%YQ*=p2ZccmW!;zpBkHYBb R=W+i zH$T$*8t0%FqD3S$/f8%6cH,sMU2L.4&ml¨ o%%m56h@+9=BxEPF%0&JѠeecI}"e+dV4m(ZRPAm4EKJ%Ղ*@y]0m6%fjBMiVJ> acBg:ǺQ9I iEFlxkî7$`؅Z&i`dɞ^Dpq;]pR`cY.%$aX2pA{mH7):/uV׸/uM2-mEJ^0H|qDDWzhmV#<{T6E1XYc`yM#0kOӪCj#"F=1E-e LvVCL/di٤_枍UuZ^eM*#N#ȩaIiFŇkh#|dRKslB9: Gi<)JF#gLb# #ɝc=Nkf6YF|ucH\TSGG`^bxͫխh(4k&0 GH( >IT H]*6.BŤ ?$n&7 HלLl'="5%ar lHWn㤽|[_dst򋾻7[XTCRU =mfD45Ey pAS빣62TCIA,;*0T7t.5P5}ı$p኱*KjlD,9TQGB:edZ̈́~0;ScQEDQ*{ʋ(XBkbu IÙ\5AGjQ/drRt^vrqQڭ|0,sBNt:#%uv>;Ubl4UtmA/tTzt-j+D#3*tj~{jD9ra5U"|`L?nf҄7,cGMDmjXE5ik XEH'` #ƢNSzgYެ's#A˃!S,J!S߫2A(=NU- w#@kFJ(PP2(QKQD 02QeDr.j M.*)s3I $YWHԩtmTH5b3tȍ`ӥi~͕'矑o܃-Ͷkq༟o~%30`rxw#O9O}պwƙ7ߊq0`aϯxa{L2ҫV$MR za1UPB[Ke+ -}l҉QXrS0p~1Fy[FZES2F(tS핾  _w<=ImMcT9F'(NGqweʼfhJ wh\'v?#0O&GZؕߣ/F1Ndd"~8Olb~_8a[T8~㺵u)g_;N{8&]nǟv'Nb?V_8 u2ooFMVⅯ/7,Dƈow^5\urm}k~3_.\ccš X;/oYlpx_q},/w!a_3K dQŠ z?`0꘣kLŃN؋9W5XG޷7܆?~*~? 8#-$%˓q6 {5=n˱ ~|7^rYn =?p 6xyȳ>ƊJ"k#lxX5UW8pӃ$*䔑74)]A] l!bwf*OTDi$Y&X"&S9S;$dB :>/jdQ6^Z&2LZQ iDGLjF`49g㖩inG\7`ڞlu-\u8f8qm0uqý_m<\-Njۈl?8;]홳fڼ%~?$1][&V>#_iXpDwP7㻾O3qC#vNojzznϛak߆pɕcOȏ^~w8|k/s }*sДl VRtB8E/Ӑ#HZγLZƅ$͔nԔ$m3ZiGvQu8K3uU8 b >wF # +qOJ*kRQHF_b X(k%MㄭCG]Fq{&qNy5t3fJ[l~ix/1/?=%N3[N[) <r̫='_@6[n+>[_񩲝K\y~8K  ~<1@5B8<3G/e!-Y[AΟ14!hQt: C$ꨊ< *Z~uK"B[M]erg#GR4V<&CZUiMXeðU-GbdҰ2Ds0XB\l "* Gx>.u7/;v.בf'c_\[wx.vr9)~ҮF }Lv]n Fe3Kڋ/3z9NWs6s ~l5䚟ܖد͕F(L ʏ)NcbW])H@Hʠ%;uU$eq}ܬqy]},@ٻE3Jrtє؊ݙZFs-^I ټT yR-T))͟Pn._Xђz*vkfjfnּ(:vqޏo߷q~gcxˊ䃎Y߄gF vY`׼/Trkq IDATUIE_ڷJ5vbC0ŭg(V#3/7!Rz'ys%lnSEК^UDV&m<mڦe7qNcZ͵$67l9< X m6VxLui 4zsICnszwO)zd;Hن̓4bARAZAdbپ/`A[o(,FL}#+'ø}).=#_x"!x^;c$3k.»xYiqt3piGC~x:ƣMЎˋ3VˆDRqQw eZlb?83" ujJSt#SvFY WvWndDtFR'%)yFR]g]9?M"@3r'cNۙ~ci{@@oLr4r Cƿؕn }'(tZ: tZC%EMS(]WR`z~Döýw@noXx}D,[T0߰ 'T|YyY2NJ'w~=|]y6+pa{I8ԯދ㟻;<|<|p_e_38*~/]|B;bPkjTW-[uk*zmt%}z4KuT]0M -9c7\f~HϤx!0t%JTٯKZJ *:zK]J˶L(.5D"lPM̷Iu9Jӧ*igF6x4Տ_#m*hXJI^6Έ4Ӎ"Ji NZ<;,[.>o⍖`a\3X <#xaLg[`\O{<8xӱƳ[|)ް qi׵x6Ab'-O; rlZlxʋߋ?lѬRV]CwŎsBc_%Xzlrk Ўhr32G`Ze4o;I9tY@#ioyזԜJ[` AS9#͒22k`f6濕M{8UᥚJT L->ok%s##= _7ni 0q86R;;XV+'m%"j! IWˠnFcE8UKi(ЦsP] s&~k[uMO7+2MFHWc4=B}4FIbe qKW ~Cs 2.rt=c%[Z\B鎻# .>&RCa/Lz_Dt .00StNlj>:Jp[-xkN6ڔh9fGpu6E$=2ٚOqhU W)e~vՃ8L>0&hKt(1"dNhRR o}\3S^)u=#QcY籾v(xxi(#b Z$SR״i3k`U,,95ɞL]}QCM&/34YGѥ"sGhEX!SoxTtT_tTdҋR(N:DEy=Vo1U~ڇ!E)q0CJ.( @)c`yT6jtG]ڱuy#rC X8ҲBW&c:cҽ6yUZ30M#@Mі 4n+SX.mqȑY6]'V2&XD`,dSF1J*pI}1Y1r8ZE/4AFF k^-ӛ] nlc/V(&7ކ֔KZZ2XFo!ĞA@͍lYAmCʑ#BਵEp^M[F X6ɍtÛ˾p1/#'.ߥFkKMA520:*kUఓefg(Q!tXLp6?V50 E5Pz4QCƺAP1y5BqR~S/d4ժ؃O.gwI_B=:tlCVB9ԅ7MY2:Jg*NH!\7b-l+F᥁dkuXID#u5ɴBgrWa Uv\nHO.@UhiDTy*7EԺhgGiliF::#2J'g"QmڕH{8J Ik1챺(Gx>qj+5T70D҉lKiHJX&>dFH0,#(w+sD)]NhG:tRADJOLhv2hڶBٱK- cyxvƛ~dIQ*TN=dvwL (권F!LڣZ˒# 2 Q-s[1ܨQcцwLzhU;1|[9 j[آ0WX<̩>gRSb 0{e)u8pDd92#NJ-d٥lψq쁔|0(]fqq@>[N-:kNM)Wq ʠ,TuG( ؠ rb-\2\wHB`D n٭̉JccXasTt L^FΞdvj sE ,M: Z*%b_QJtJq#[Evdа.25azߨs.DʧmjDvW#mse)Ʃ})5dnN)3dwM]efH `4 wR{+4ҬD):fN&^jU@ eSDps^g:BDbK+2 `H+\ɒ^&걀^l,f*7tb%v.;ekVtAjr٣ 'Ffm嚣sYcsfĪgu(=r4T"F;jFMP2ՎzD3V!ACf窰|yLVOIdc!]@V.e3W+BE?mJfeN2̣>g czHgZ\$Fn720ROT\L1 sɴAT0'nl(]i^tѕdh/r#lȸ{/@Q^B޵J*SCN %)D,;MqfjcV'?|0ʘL1PPӿ7 &dNI9_#"I1Ո.Cx_}{&T10׼ZM厢9b\҉?` #y,ꪻఁR#t(QBbEܕ1,k 3$[1bV˱&U#dyZU_Ƌ#Btc=28nT$?WsYg%T(w(SՓ!U%S7Ƹ6ZGϨ{]Ӷ(+`7_w]7~Gur3gHN7>. f<σJ;TXq+Pb%@F(;ȣI_F/⋘gGp2?nS.щ"X9z8/2v;ARV5Y0jKx)h[uʥV̔vdci6y_=-9Y"}~z2*l?{%7/{>e?MJ^t{xSѯ|Xt<`|īW<[xmrAzzgb() qa8X.6(JAo*EnĎDVd@!Gt:R@) >dr̮ <8Hyڞ@B&;TtUF'ebO(̦) z0Ft/:{&2&^prG܋~N hPՁdY -qc]zy1v݊[x5waTĚ݈E ymK]>|xOdqda۝V`S馶D;V9oZܷ?iBuđέӉTZ @ufdх(3jD]Uͳ*J,i|mꫬGgT(*<o&(z.A:VHGޓ:~ӽ_b#2r9wt;*:1hs-Sgݎo8k&xojt-\@'H:Qit- (gP,c,|5T X򣝅2 #uVYr(Bd-FɨFDeCF\iCƑ4p=@+v)XUEb sPCPoyviv]4\Y2RFP4ّ&:p Dժ50|ޜ'oZvLyU1!Jt\<Ӛ(SŒ,@#T$Նo} vye\΋|g6?7zmW5|,ZoTB6/}'[58n37z'Rz `Jz\pN뚫g ]ȌUŞ]U٥򀾧2_|%~"#!TWzk,#Gkzc8bu2qAىOvZ<^A~7X>乮g/`A[ox<7'>r> qv~^/L,[Qq[y'v+Nwqs_=nZ2D>E&I޹ { 0԰T|"a] }oBѦAqjf"Q:qt&{:+)8 "0w3R=1GwވT-MMdn-yeO!7"1+<dzN*YZݞJC4*,c] (øe× IDATZ|u[!k*n*mLҒGQ6`ta oqX wb٢L7Ÿ+wƂGA;'p\1;~[wbO巟$oS>ʷ<^/ꦦF<a1XYJРu &|ִ1e&v08<[[D۱Q:<YI(fZ JMHENm+?]?|-`-b~^LbFK˰YNM m+|aX>3Yo: kn8,1uDW0!eX׮#u!mкi{0MrF_Ϭ MmXj_r)"@mo70JtLlM*Vgx; [/eT- N&0E:G{#5"7lұ0hTG&JJF V.4NFANGVUwzQdL_/6-P AN^ q!'sǥK%o뷰n\OM/ V@ =)C ~:^Kb:C݃Trje-+N_ WCASWFN4 koF[Et+s$y5eHihԫjj@?ۑ4Y#tqIJgM~&((5tDPsRCj{8ɪl9[3 l"BdqGQ\↊F%**h܈%§A@Q1F1. K\ &jEef{[=3˗MOwWWݪ "i(|=l*,N@VbaqQyBL1bP8T%(Fcn.w]`lPQ>cjyԑ-4muk5!3FXR$G2'rB7& mB3ۛtUR`hggKEJ)Lʖ) w(x& 6'r>uPqw b.[Wt=/@_+T>!z".0So,+u&b5ik@OuFe2ȺMphoguIP wQY2k^swOseV"r6!ГX& J覲EԴ<PUb:r5yMn*u15\vf w2lϏ䥃HJ(lRT;f3ra3`\Ґ™b}QYYR-kkh&h܈! UJ3YЭn*ʓ ]PaegP%JwELHݮ%X+J1-Bي%Uf|JIGr a9KL4ԚQQh LrO y1*[."Vf M JAC#-&H< d%*e+U Ҍ=ٙ-*IR)1" "$&iKJ֎DsǧJE%ٖOtrMTҳȶu XnQ`AV)ݠE[vVS[>ȿ% 㪠I|0cG#0=LjRQFAS#^ $J|KKL&,1FX&1: WBMʩK[E6V6c^m7D fNUD}M3Hp? D??R(RmѦ Dj^f\zܶb`Ц3Zu.\ < E-H.RO_F++,cX_qy=tqUV{/%{={-07KY0Z?|㑇j7_rŪ觯áO?Waq^XKo>4n nJe_LJq6z^j1^^~[Y_8hQP_~FJyUGe<T:Pyl:6\ ñSR2ZKڡ/.ԉ46%-^I9Ig(Gjlcs$Eɣg᭳E‹7|WD2͇08I0t33fXlm~Et%W:W]BԖZ^s/Jj$E!B%t*!MJ~FRwة'֭[ 9K 3sp~G| w|z'+~6ӳկ_~iWtOxV׸5?[*^ϝixa ~[vL'^e_lwwyUEPždYTU RhxI,3JŦ  u~ϏnFfCpWw:[_T85G׼ |e qµ_};tx1H^'8ZlLx.__4P&;hsdMuފMNI`2bSpgh?+M (v.A͜0*,11"FX[5XB9smVhЪ)xϤQ92s>ZMGLh,(agb*S-2.(CR>>>:Q鸈'4mKs5~ef9G{8r["JXG%l^{>Iw$팃ח#(̖ƮcUo{ ?z+xv/•n3v! q翏׼GX~yx=O vhR㓿ǜ/A* gw'W:} ыg 8%?cr/Mms=|n{xѧa'6jmQ] bkwv'7uu ˕+dhP{$:NL ӎ%#LC95L6 4MlLQ7Uc{kmT k.yޡgrL7f ~Bb'[t6$FuֹgvY=lsc E%1Mrx˜a9uuCH}&*Qczͽ]tY<352 Uw|VIa\p[l@.>^8<&j󛟏˴CDZx*W/C_íoe}Gv l_I!x̡;\6MXG;hjƆϽ?T\8uŷv|ꇞ?/^{E'x:^{˱ˇ3g%pטG)\.X}{eծҁX; T,E RM &Q_GѮ A"ʓw5؏1N1l碌[4P,%E˜Kܛ&H).!]N5{U͜a6AH`;5ιN%$I18STݠ{ErT*of %uyxPmmգM"ͤBd~T/5I՚S# WŊ5Jt^gɨ~^U1).z߱xć_=:%?C~OPg# oܛtyqяnl| O_ӡOޚֳGyv>/R|Yww;߾H9DwEl{pwǓ?v-9?{?;'>vXZb]oNV VpziXFPT-UЮL<4{'n=LYV(t"S,[v3pC76OG0LӾ8h'"_B^ wnh >W'\'#yo{<}p[~=xޫ\=JJ%'Mo}^19IȒ?:g ==0RHhaI #McA!,2(c-,V4obҴ䖷ٽ.חcqiZ9QRyTt|N-Y<oE)ǑQvy6X[CԜQQkMd|3OfTl m帕vE6e.36b1^OO IDAT̻~(l3YUlo/W;ϝwd?tЎ>u8Oŧ>/=xQv/`EyIԓ"]g9֬_Eq>^wA['_kq=|nw? /7ү= ~]~ $ =rn YLzɚ'm' #[*0 /P]yzp؇2j˩ ԍ(EYr 75㫡x59[)6Î8%+oG[5-xEflZ1:[8u8[miW< ?6yw3˖tq3'68~x~[}>u U%uMnܞ?,% {E.HfӦ0G[>GF by:e+PYC]a<aA?4^º5vXf{n=v\=vZ;ǚFc, jd * ʁWޞ+޷ыql*b`&y3%$4l f3y% ;RW̜L(0E)N叱249c*03aC3Sgf:lI1dIJaklwtwv4d!ߏν#Ƿ@j\}O=< x >1qg1ngm<[\!],}wpCO76ݘ|_YuQ?: ӡsPzG[>ȕbB"{Jő\sQ?d&ķ# 1XU#!0 X8Zvi-.NvvNkwkcvqa ֍*,yHJ18]R)TG 9}d!)MfTNZ s岢f&QT&Rowt eDxǯѹBӊS]ݶKφu2.Eԕט DCZtx%.r\q=9tzG`;`ͳ3ƃH{{<oG_X>|>}L<ʿӞfOkz~]G8t׺Ww߳­6ktϼ;}_?8{cݛ^HTbZkPǴ̮N](B̜qW\wq!xac_<65;7;/8ؾ\~wS`M\k79v sMY\s ^#u^glUټs o[kG q|ŀNNZytCn. c tq<PV-A@N].k.sq\f[~G>P/ \A u²e G#uQ P1r cvf|/z)Lďx6HlI&ˌ;tS5NF.Hc ItcV: 2U*4H'mQ&lɶ |0~)^LAmCm\6pa(Z!L  Pq1O[(1r#4R GZ0¸qA\G'p*t;tzL,"Q5޴-}(r Pl$wr۸ bf+`v} gpw٩Ҥ/TA;F]}!K(c6t֬m|Za eG}c`Ϣ tAyPٸ'LzXzڈmZU]19_i* щD-E5QA[~u $Cn} Q5ͯlٽ&E?y,&.m)lR뒪):>:ܑڮ~&3$ 5Uͅ,朓¸v:x۵\oh73gIRBpW0UԣϪ6a(@#N jj3$ S/-իby4Pm# TGy!6uhgaibyb Nf*G FCjփLy:柷 4ۖ|Ћ-eT-rژ٨IޱP|8; qY"vS؇CJm՜W$OB+`*}\&qV2F E]Q>>nPqTB54 zB9wC%xu!5 A[DyfS -yb).pܵX-*>]d!FI6J7"TtՍt:#SLP#'ZirR=N>띵jHN_v} Lo`;K|CT!-kR pMɖY+haﬡҬnaYbGCqVr,ƮrVY\gȬ&APKZG;LYXCQ3;ǴBm3ajPt?βjԤſMM' t;!%TR$Y!JϚ2L$=LIErj"bf`AW/HFx1bJ˩G})W'yzb^0{N_SyD,Tqh(Gg[QEס%*Qq%] Hlcn9? \7FS\NjJģ&MRk"[߲!!Ɉ/dšCS%"2NYgi0XX\xf4o*i:Lі8Srƫ&H6"Hn)*@:3E{륷4.@dMz%R삛xp"qVkfҒ6VRcrr>JPd&:Ӣ%q(S.V)6 n%( :L,DBh f!K`m&pnH8e֌eTn$GFttXaɿmjNqS/m@RcnxycjctjD l95fpl#ü0תZ9h3 _hgY6Zl7-A8hYɶE+\b>JKS.e&ݵZ*'AG݊HRp{6%ZnWP$xtesF':'38FWCh"Ik7dj jʛM˛D2wj _}Y\,CBVyh[D%׺t*$ShSNLLp֨G^w6b$z6%gg|k7/VWЄb5WUPyIUR7|Kn=w Qń;qD-2ߢBѺr$!uP!U2N.ix+,{M kW{ed׼ծ5S2s,)XBi86k@Au@ F:?ȍ1d;a3S'!uiSIj1=J3&o ھg\wNym3q+J:9:3'@ a<^h'rH7❑syDܔ5PB872R<0k-^qS=6R>|&Q).TX١l:>e~u[ݒ4P]H]-f uvP#_ nw^c w1^4h}x;m`q9!`яPn7ՙ<$TVߙN.E5U9$HMu]g^9kEɺwu˝PHo$^3˼0תZ$"o9]ОwY9[v+PQW`?ķiLrQ(?* ЅFY+c2&rsF ZP'"/fDc0cP`>T "5ТvDfȳQz65L!8]}vrW.x^ wYEr!!¬.M ؋:K56 `vA4SAߩdһVBE] |emƅiEv-74{h b/Z2;L)Tff,(@"w 6 \a+M1#&?څ\<qͯ&~#mTF^ܽ@Jq@lCcfZS7J4Y GʮY0a&efHsK]ȃ4žxy5eVr {C TϤe.v!sgm_f" xVeHssOGt2l[KtuX e: :uŰԌ. xkیL*ȴl1,cLN X=AM0!VbEVוfd2bQ"W1uM39"iڹ !^M9*ud0Z:ua?o"eM2JiYz<ϫn2ĘO)j 6^9$=RÊ程''~f47iR\q[۟}SqvvxͷDq͹!~;.{/ҿU.|/ ;IZ[fA*rb~ݡSytӭbDO:j9WZ~h* 62_yB f)1D4tT c<ɬY,8{V5'Uy>Շ0#LsgqJ\X;jqG"8ȴ%v }A@'$ȭLwXVC_YP|P6;n=T VToxa|/+@Jr.@9񌸫6U}ـ Zdum6V ,@oq}l=wb&uHr#UImX+ k1"6ҙ]hPs ɥmzz[F'9*,\ жj17?W2CbvBLQ͎V Ų{d/xwoJ+ۅ{c%ÑOӎ}vJhn|ň aVy3Y85ty%mYfzޯu1GR.̵2c:KxȅUZ|O1}Fo){bHO#Ġa(S+߶f^̙@%\Y}.d(Ax9=}RC2l ]w'hT&~*i3%JۉfH)rtvF^ܩuEZL\`yN9JYhtg IDAT0"".*ZkF6-N9e-s_b#Y$w-3bPKH/Ōiƴ<0\I:mP ݡuK똉L_URJ|'ǿǜ7}{<`zܦ~CGb={&#/={'q)^p[j_~誜{6PC>2vqD]}-+׍ uqTpUL3` HWny+Oe;*Ǒ"܉MPr0c)WvX;ǎ8]2{i4̈́:ǤGK*$R\W )ԕtui R|zlE_4NmVs-raӈYFWvCb.gSעc}r?2<ޔUr\obN 3G" s2]3#UP[\o8߼=1^˧G-6l厸>wNp|~=s;,v|eőW1 8mP:k>Hd C%; 5okC%09cv^ۢn)-{14-}6mVfGz4JKGlIbHI\ Ac=UAeʳ4`cHsQOtJ >%)MPl1J.7#Ő`|;E*ZA%%7[R/AipWEtw=v__I ŧ{g,x=Jzp+yp֮xL8o<0{8uu\w?NܣHv%YF:x8?%*m+D-zZ}VlS9Y?>aTW< j/Ⱦ.m~z,A1k޾ұ D2cWGP^E=Zբ=[h?zSTN\[ b{-bTNߗ3S O1 02Yռhڊڈ@%*2(ۜ0HNL2Ơט&tu`Ktse*yy "&-yղFvڼ+}ŵ=fws[bqn2lv괟:i8.%8 w])@%n琦ưUFa}`L(ҏxh  LT{K TED$GW@W·$TT혩hPtJ]bI\(=:+^%I$焺ʳfbJM o]i+yTsI,bHd&tj3`>bOK:1/1І]- -wMԦ=#'h48*jJgijc%hl%ջ˜CxfS߻N]uprt?x >Sv!OG6n)²ˬS<vE__VߕҶYƌ\rL#nQm0QZ(jT;zi*jQ)"h +Hcˊc:lgxd;JhUHHbҖ9 I&Mbp5u7`H1}EKN6D Y~#HO,CT0n~m5ENZB(w}1ƣzerr!;41Q/A:jAL/z0_LwO8G6g犭g_JA/<ĉ9.u[ #M ;)L#:.Ku4*EꝠ^(8%D3婨l f+Qd+À㶥)?.ϖeBה@vA\dt Y8)E2vוXi\Pÿ́üS4D!vDV&DQַЋk]uw]˗?pOF\;nN{bR;Vu+Alg V.3"r՘FY!}.涁cGq%K:SJPx_脥LupCV T/8>9VXEF _hh|-rę.LM0].4^!R!j'991CnJ+u5!ڨ# b }kqp9O];xk=ʒb(WIl=w]|0C5mqyv (LIRypB:H][g BYZ,󂠶% -dEMsٺ,;LR y YWY+BE1IH|3F7C"wlրT" Ht +F;SĔlZ)|Q\YARcd3h{5&QUc2Op_d|4.ꢥyѢ rctGzcJjR+T>OǤiמ?w;XNjt-˒D&Xޒ*yq7Z6V:+=݆2Wv0#@bK`N")NqB #WמŸC=w2y1JGٔ+)>i~C@̴EN{Lu'f̂2o,{tO\zFޣI'ŝ4b*1|J:]t"Ҟ6-51.$l> b |8p؟eki%]rdHk=J3) xOHb4ŬA%p aɥ+aP7aϳ,/EA+Re-nBQr\uUČ►AdI12`yЪ[@0䌦@c8GlתTť -"1>,SwFHaĜ&Mq)8{47ia8_ke5Mpj`X/z#(g, CH4"5[|- nriѕE M9n2gE_Pz+CG{SXƈ@!/Jsڥ4s^ (Pkb41ȃ*kV.xc,^^CaFfI854 dV29POjV `+u!0j*/PbcT:G`R LG.fa8_lS_\"A3i@|mlEjEDI'-@g]2"סi.F:dNBxEAYBײͫm;5''w̶nxֺ8jjljjTM2e0a^T0/#Y41 /c%1x>0eب}\āi?)DCv diIo$"]"mW JD3IJ!6 s8d 3~fg/zS )A|eu&!halKuQ RsXU46Z4̢$+8 qwM\*B:u3Ť·hZJ |yaU_&V3&ib]VSm2Pun+̗iz\Nb`nQ}x,x0rgFvr{: t9,  ٗPvYlI6U͢vIQ|,rQfȖZcnS: @jz $p귅۲֤t*ȡtDGBSꅝY9Axf(LJi?hPfRe-C&rbkWbIDP,.S *:/iUMDnpXٮ'|1:Su.6x4=XHX280תZy.s.Zfԙ>g1pb0o5%u+w/ER;S rx5_\d rZQm.[YRpU2 zyV< V ^xJ׊{NRЃwY\ ho^rG*G\epbW놊X@/*lA5FL!0)dzɼΖ6=/23ΈUMD:[U+Z %K/eaVi2nm$~M?gWfqec/[IfHޒl-؊1V?Iw`z^&W<0CSG m:W_\8M/M6GfNof@CW?p%?+T ׌pYF8з3\#$hwX Y,neˬ 2j/sa.Uh1Vp7W9'hFs'~LѮ ?> )/cfV_>c?烈}g@7|b <s_]O~|\o¯5:G3E/_&٨= PeՁa x2sIHm)uIM*̡>BV\Y˼Bޗ@KMI]}REK \$O\(BTď/KidD#UXt)Vx=F_bay:IM#7wC|I +U.hf]%🸎M⏮M}a%PU=x%,.xqza+\/z~)#]~.^ t؀{&.}x~̓t5W_5leoO>5׸˟~p7+•?7|ˮUW_1э>Kחos< '7bV1vA541H'u#XaaT6t1^*rvWZL C\#Ž7?NS_83NЧK[%sA릱r;X:P!LR2'jLkڵhE# h(ϥE3HrQ ډ&V7mE L:Ln4Gx5oɀb\P0G%WzO<䕧῞x?s{ p9G^Oo:>>MsTp6|<sފg.z'W#nubGG`v D(&>~N|gao/=*VlT~^<ƭ4+ӽ<ȏN'\&4sI,˞hR5mz+ ^U3e cv-.e+3YnKbv|g:b͈E}`a-+>矴 "c"ݶ$8_t+JN_%Y1S?Z4BpUU߽UO`!`0!UYD "\ *:⪀QEQe2L׻ڻb^w _97`$KI7PX@B3Ȅr58 -GB+i|SQghn@#v~(NN# Ο1KǶ;{0 kz.}s=s {;N<{RbW㋇w[??1>XpCXB X+`n+٣^ wv6aΞ1gϱ6 7ģRFՒ;# XD'$"z7%ccV7}[h;ZpD)nl/Ỵ*.lMfuOj5"@uԖl+ hGdN;N3fAR,nj*fk2srVjI$bT3Ԍ/ݤvFi[LsVzTBlrj.v-9M 2wlٕ1د.kq eU_{nYp8vS#[&C? -Kb]\r}ۯm6 g{+b-'9;os5 pW ?B]z>nfO G~rcӯƩ݌_aw|fϘv|?*z5q`e<(? 3v?{ϋLqћ6/g_s0g0gﱛfnmq p8FsI߷Zx 4vy{)6M=r=iT؝:ȴRCA3Yά dⅶ(^ȽSp"89mf~4wIJ:NcA9 ^Kʎkj;ʾLu;R0֋vcTeX'2h8ՍdjI1Z`n+Ģ+;u=?k_5|3ռ+g9;b5|S[+/zjF)mWx3͇v3qO[w/ _<j7u\ȗnқp&\~p6YS^w B,c%`l Nip%T cRU2M j< lWl#1f1H'k׉9T/ McSY?-IwAOMaI(`Q5ѡJ,8i}*`bW˃=Y-,UJ%t 63Zz=P3I9SV`)8N÷JOUHYL%q1=׾bO7ۜ|͘s>G^e:[{$ŷp͸? >dmleK#a|\WbEulNXr+|k/Zᢇ=o_-qUü!)Y9#-isP ʣ9LFF2<\‹d$.V~Ř? WcDA^cL/1d;8*Z$}3xt(;Fս#zJ-Ts6MLf`H&IX>GD-iyPI1Z8ҍ|g@v5/ md"d"A طc 3'֨G]n~{5ʰMLQp-X / I1Gn|-66]qSQc5vƱӗaSpKgm+q' *Iz+}}u3׆?3_ѿn3nxhY<V⺿- ~[p~l>z/ʤ|#Pc-rB&B;fn6>zq%20(_^X)2Ke~2P޲XF%Q瀤/{ڋ]'b~XxԩqPJsO/j2̯h)+r)~~KFI*RHOSj8IHs-tt8c#aNiUB%Ҳx+BeQK[%AoJU5IW _vvw;~xnc)+%$ΜXccac՗iw G3޽ϫ;L_mq:0eU|<7e,̚r'.;} 9`>=a1 < } ?>V|7q[b-?\|q=<O=W0s3^Ovvy  ԋs4,x=ڨND"wZ1Ed EPXʇt5@` U)uel  )oJUZN1\JG0n6WL% F 3&Us\ :c `j_#xZ)lXKצp>_!GLвtCmFpݵSжbMQ+B,JҗS.eMc -9_W};{0¿Y=|seճ?-0qwqg'xn̯ _:Lu0v~/=z޵8v8y.KKo / 7_k4m߹;N|޽9v]y8y*"O>Ȣ(P>ʅҝVpJ9FcqQDM#LLeQ̂rGE,OE'2#9(0sKW]̤-J] B 3*O]uvu(btЈ*:j.FZfjH*d\fs[BJyO(FR @eEa =z@c},c*aK>;?T=PdW)B29 cki|}U%Z ۾vÏ8iďHK-0T5.#솽7YvMÊ/#ˬGW6#07E: K,r8fuܕgbd\uf> ;Xvc!-12R3S@Xkf|4&DOc~A7gYϒ7VM}}ʽͽ| !ChKEF,) 1L3!ϟ`6I=fWOI\ӴEdLRڣI+!=)Ibl] 5ds|ׅ^)S{e}H '){LJXFtoR[/*XKvk96pwuWZzG?5\67602 B39 ׬#"B]? U}Rӳ,G=ɧImge)鉪ʊi2Cu t 0eBQst-4SVS1&Y`f N'c~xY-hߝ¦JUk<2%1@VaX9t* ^C'(Jxb¥1|ׄɯ)1̎ZZPMflkUqۦʾ)uY'Q4PpMe S L1yIqr"Y S)g{8mhw^biNeh9hp_̘iEGpTmXiRQW  8&uKi\*i[A>Uem脯4KoUJ THFQyUuщyא]-1f] 9qVV !RpU=aߑɤ3\Bt>'EETf/ f"A%gt^0{+ew64(άL'RpuUOmmiy2{ItȅfHq@OIod^z&oF!8T[gAL%h* (<sנP'Քd*{N 2uRro$DMҚ| \_Ѳl>v؏~TBt>X pp0r)eMc9eNu]ډX?LA%R 6jL Ğ#!P,̆%yjЎ1-%rTvP 8^ci{* yCHHvgǎԺ ^3;!HҾ,fb[N;åg#[6塯8㚍$=pMeDƖF ͓Y2rRɹJ+]l|mcgvWVהr?$Ûfyc xVЭ~!e-  ,P^: S/Y\[񧎙r9LUzbE9 {J431 _$7 P*fM\;˜/#TV,hKYaWyE99uTe;o :Ye.!7.(=ߧͧΑ@t3 !_|M;,xjfЫ&&jw,0 -YG ɫl~̄1| b I 5HW*ߤ cOө[FVڿ 4 wa s!@$Sf)Rh֪nV@*GljQT8\j)+2EYZ{S-"-{nS3I$|50SMyN%x`&-LkL;jAz{yr/~R PJ:Mɬ<Ό1ȰT¬X4_wO]SY+V4WNF>FnjNd@d*rsB]R]-@YQ#H"!V PDCȾpޯʙKr6Z(Ձe8\jMғ]1)^-Ok# RP1 5VJmSyh<-  Ye;m/4yl# :)uVQL(SfU$V (JIXѬ*7H)/,(w;Eq5V+W QVza։c_0Qd%-%Ǥ}2f_G/gQkۗl-H{ȦO8X<4dAˊI4|as15 9.{_pp'>>p݊=7FB QpyVE۶Vc6`,[Rdz^nOʟ]6JvzM_x>~Axǽ߱W/>5a=|\uk#gUw՟1 0xƪ8+oZRgxXBx/`#ް&W`ipWwVO3ށo$v0>'~Rt QZtfy$Uh0dz ?ԇĩ;_դ=1{CWGMC1wJO$CkɌ*TUX"mdz>}2ov G}O@t|\fVf1yl}+ؘ,}nd^q/ZrTB: R&G/ysP K<S URT7/T2 ]\]a i,K6j2d1;{~vK~bx|3|K I`6q׭>Tmc_=)/AY/ƖFqJw]1<xϮoip;hXjwwgʰru{}77ėDf8PTA:Tw/ho3tʉTv)WfߏG Q̏Sc耠*&_)LWIX˺Q(@-F $j@]#P_X06 l]L\{fϴSRD7Z>FG+9Լ.|ՙJy2ݦ.*پP"EӔsѯTG=93N tr0㥇ʻ>=8;ₗ~{Jj8hBY1\1I^_YԬ-[=gEܻg5O/bWZ=(y3N-:6yX~0r̨,$@n( g3rɷSѵG(B!0Um, _qvL.b [:®)#{ 4e.2c6(4 qϪAxE5U5LA@UcIQ+_Ltn)ܱG(g7NZ"S|hdӔ~qeE:i)dBdwx'tEs{C8mx(6@=۴7+Դ+SdPw#mVnXS>7:pe!:鲇[\e'_mpl%jy+GȶI"4hj2}>ɣ3EsmUBrWHW$+oY~3Qx78a >`0WY]v+ 6mԣpVo[:^e?2R˿L\b?k'L Z@)˩r~"͕ mI b ݨ.U HM 0 CT,VD1>5sfTe"1O'٣EgPE>O_`D ɢ࿓L]m+B_g3?Mt5t޲;*s:=hʪ;l=Yzg* HdŊ1pZ9cqRq)outwnxOyz.pιXW-T* %8Wb~CjY{wE,7eZ{J˭r\* XCϳ]yz-{j_L #wQ(Vz  )>Zcrڶ[ZW0W65!1#@%xw1 ]fr%ǠRMTM+!<|}Vg$`hASKamW X,ݏRg'xPM!(75Lq(^[U)N s~W|ĝl}+D+0;qꅎ7JFИ 6I/Tff@$fL44boY^2ʓ tJq\;kQKE A:U}rAGͫ3uo]8rN˿>m1\3x셯 ?[oI|c1<{|%~xGcG/Yl53ka멭_FmJpŁF#x}']ݦ{%RJOT4Q݅̕Օ6eGlg.rUF/ b jxHOy1ڑ͡JA{zhP(nx (b~+Cc'Hθ3;SAa8Zr~[Q$d iR G$.bͶ/ȖJ[k[( AH1 /w՟V[+ocIyq2둏c=`e98p}[3_>l8vp5> W{><ۭ?[b9,}ixW?^֌O l"\m9d+luxE,8kprkH+ f=g.~),{F<^ڋ &fILHIBIzxӂ}UM d&*\GG/^"ә' pPʉ i]aTp7I`KD ͊;aKE Qr@Dzcv`J]THfhЏް#*۩A.3d5W $]G8w""뮻K/=R_~|t]\z5F "yW4Ͽ\{B*3 6,jl:F8d\Ԩ5мGLSdPSwXA]FrTNvr},G/|OK&=)PБ\Ef:OS|)#JsaO9<0,\ؠQ a6 5HUI}5R_I辂1#s}O{9ɬwb:F3LMp LL0VQp4'l%Xq]6 'h"=WL}2@Gy}j Ҏ&r3`ȁGy˩eg )q ˯hMQ=1! =)TT J4j)L*dl S}1 "&PQ*1/*MOzc Ɂ{a弰oR"8qs 6D$܀wس$ 3{Tsء_@a!Zl')zT L 2DNwj.8ERz.7]q e2M21h1{8EKa{c;HmvCpZF7bW XZ{Bi6[r#_ I]q )ҰYRMVTkŴ̩zD,2Mi%PzEY=8\k-*2CS^7g^#"?95&Ter\σh}hi_ ߊU8Js%ofxk,cM5v3$S=6-T[`*^Q)2ih@XE[i tǯU4w̫]~n|OѲĄpՆrvȦAn9Z{" m:ȕgޖ [~{Qy`1RHYZ +Dah) z~%dD.큉~/*jDX #c (~)hKv0rP Qj01w"4bfd|^$b 话4w}ƒfɁeS& ä_|ꤏ'ҒR(53!5bie+%3wI%WMr_gֲ Rdk>8J N!PU85w4 f6ͽٌ e9FV6iӶ5:}eHWjaVҗ[Dis =Te'-(zI VYa+3_'aCQjo %#QE$rUʹ4R 7ri>(: ղ5y~ VEpBd+iTt_ ĝt"L 8mhfn:8?g!J r9BmoKD(FU\0! sFA}`d`!qK"ZVcTdОY863eN=(4r,TJNГQ x>a\t.JQ2a1פ[vLxJbelCZITTDL;W:& 'TU1S mpzQM$*FaxMvCa/ .928EB$Od_Y74rS~mbZ-gv(=H6S+qjϠW~TDzZ Ĩ[\gˌCpM8@"_*:}4м/ ֊ڳjV2D'*OPڸ6< T1  ǺN0A/L0ݥx=-MC u#'Oave{ec-P!a?AAިr *[LSn{j?gy_70|w IDAT|'(Щ8sA9ًDT( 00פZ#h"tītǬQ"oO @< #1 AX%'::6U8E 1bI6=u_8=G{DI[` '݁p"lZO]Hwpc#+LZmǺ|5/&LK%l"m#m)QiDhC02atY+9FGP5#[^wT@"'w&QT~BR*2o)uАJ=:[pYbN; t\l*yI*c{ ykNouhQELA9cLTtQu5t11*hfQʖNE8ݱ -!DSwt`'e7`B@@ .2D`G]"H`22Yp2@MJ: (ִ=R087%B(uA3q9t)i 3Af-P^PHBG֧2\%`#/e":O`5`< <'h:Y6f0p0[J4]SSIHp^MKA312+±`fb*^'t750П,)}Jmo[')>42-a+c],}-fQVg/]1a.[ev0'a;ƹ/htO._Topq= XNG=}|{WC3\fm#QTu}.P8zy0{VlQL! 0DU1gt/2A{`NapE,LxFdF"82/:gM({UKӠbuUn"ef> d*NӪuSd,B)MI|CuR\%4"2$-!AV*%*T'J];X7 7SD ?ǿX}ӗ 틽w}5tOqXVt>Yl>սƼg ?py_o>wrue{qϭ~/ACx[0ۓv?cܶ Ŏ3T?4m+&O<K 'eeP=EË; * tz"6ʠ!ڜ͘V1Hc|dn#c0" ;=Ѧ$+#`ڻq˔[tE,U>\& [};f%J⁺8F+M2YA)5\g(|jπV~LRZ7uS9_3 o..q׭.,5Wbӗdz./yk=/{f\[w7;XiGR=`aȳ':Gt[`ߍfGZj%i-CO, ;JR"%MY#S;G 56AѢ>s>RUc0&ۊkmd7L"1r0-Y3/_ɎGt$^.q>]s`lq_#_bD} r0YKwv־E/I}zu}_ik ľ+݊c7o[W4řԄZ+_0z2r+`xT_),) 俀s$EmO=^`C: 59.Nv[}% W @3Xm)C|.r 爭njX{}f/Hp cEjƽYf'nEMbMCjB +a-oo ?C:~}?U,Z8'W␭f_omkpjn9mCW>zl:vqϙ/6~ b[Nǖ: = +[^_4u=nwᄹExǁ~g XSsK.K.޵L wZ_{C*垢`̋d/`7cL)qR~:Ȕ>q8E&?*i|C H:bF/lwa 8DzWhj6M^-g>}bd )! lx ~]s]/F^zYG~%(a qZz 5V))Fb?1J!j2gf[̸s\yL2SZ0?:ZцuRJ;,ͱs~2`KUތ>\|pEs%-؏ +ˮ=*cW ?^0ka ?ݽfka Yg8{C.m&.>$t58}kgmx9}Eq5V5[c#qZn=*H&jd1&GVf/}6qcݮ3߄ٝb$?^/o. }aoĝlg(,ހZ L?<~L\u]ÑGs+;U#25gGA~ 3T'%rkj*>N1&2[te :y-ugҍtzFʽ\Yjbj>#Z{ZJ{Vs@cK†^'< c )D$"q˯~,|ˡuuω[.[n\K{g͗x\|/UxwLϹi3}E0y ss}m߸#_;m˻"Y/X ,>O-ey!э/s2qJZ@{}! ͯE6s4UYA Qt] Gt9Xdc XNe@#˓gsl%/}h4iIR`>:\ N/LOGVn烙7P8DR x,K{SFϕK@ȴEbh0^bq5 ƼaD6R3OȭnMxo^g/~Spi{~(; +q~٘i<ރgK8Q,m$KE` r1fEc4LQ$z0)/5~w/;o8]lW>o%,ׇWGl{?:=D)X}-0sUüg <tIO|GfjLkxH ['f'&>ZtJa@F 2d?KaڱW6X_GcQN"ϊ %|Nr˿ݯN5"}XFPoT"X{2neL\D]2%7wwRdYzoc2qïWO N~7pwKc}Oc~⃸]qcǞrS1sE0y?ㆇgox)ڲGg&[o '_6﷔LM#4ʜ\OAT[B r8A[QaJ[b29R+C)鱡﵇(uXlYPAȇ"ؑWHuMp4&WC[90+?sM:դ= 6y?g-2fNiUjݭQYJO135}5!NfZb1aN+7ё1YcȄK=˪X>W-Ȧ#ԫx{c<\~ /\y ׳#W~ _8c֫"GqEXx8=NsoqMG /*)3gaR } Oñz"~tK/4JT WLnxyH:h2K E:˺ZcSpXDz=:e_(zsC)<0@(?ϔ?nK Ԧ2sɞW?'+=zvϝ(wh[V>žmEg~z=xJ~pNgĜf/Uo߱Ǭw6wg~_ٸd8s_0|у6ƱOw^uϣp_XzWo|)^ƘXs1'lq>&ͱϼ1+6-y V•/Ѧâ kBSNWxO5SR:a\hcDtEVYv CiAР`L̡ I4x>$:;׊c))VkѫVʀ0=cy,Y6qVHRrJCnHZ^a4G+raJ&(x|&G`oq>?:dgzˬ)>u++⎟p~ECϛfN['_5f`eKl.|e<6_ӗzI7(T֊341&-{4V~\4D/AIMuB%.UCh#Mqnj(Β)zކ.i&DF>E-:j;4H!%*IJTkxՉ#"d ySfHHe4']YUOhnF"8$2K5d!k(tG5oa>1NoFQYg.zRMɢs5ѧ?w6ˀU?#Y2[ OJp L 9:zZ$]V괕u߰sӾfޘI+-_J^%ԿNu__k`{ Mʉ^~Z/#uuӊ@Q{dtX]k 1)n*[ٵ 3P3L_(B7o_<5p^.>Y@"#6++Oa/}-YZklECO7b t6|ZU>:ȔV)h<% ٗ^] }J?ѣYxI1zbpdB1卧rCdkpJ}ڧ#9[<{Im'$NUAi1Jx5vж`!F\KjKGA ` Vw)z,N8PhܐL q2D2@Eh$dsFo׮$yq&22OoFatE7WA݆X/FIJ %B[(mݡ /4 1.s"6$h AN;|羡HEn\r6tCEAz֩*NYc'8ĐLP' Ԁq{@佑vG[.ь2%5$IuQGXT0։Q?KSѨl}r.<4 5^tڿhopnD`kGo\f >;i/ *1 ,BGOV9e8N%6 IaW0 pf&k@UI V'!|Q|bIP{AnBAEZ!4@?Ǩa%ъTUmܱܵUڸ ֒zD 0c&297aG\zICXlKz"7bͨ,pC _ v0&zs@dKyiE?W6{jU!ߎR`Rl@$#`lK=u$qrd$1ߑIS IDATdp"O4h0j]Rm(BtwZ8dQa 飶9] |^*qLߊ@r%p0Czeju>EF& ]!U?S}'tƄrJoTaE5F/s۲`v-xQL&1u%q0㨒+sgj؞4A1&Bɮb&ц(2M4XG z'8wT4{ 6Nj2Y{i^q&C&]  :lqWP2DnVɃQlvU쏙bԖ-fbT׽Uȍ0$4tSzBt8ϗ pMoCqV?3Q(ul&f} ʬxfȍe\}#R>7Od4L*a10A1gU-zOhɞ8WQy<؞v4$Y#G%6}lշj )-4zvP_7 JyimJ$"ò?i;~(+WeO;HID.9stKLEWKa`IlMt}KAn$6oR +qx$L &Z.rK&Tvb9Ñ#jZf )[IIdflE)CFAۦNhjZUiHʝɶ8KTNͬLޖM9hX,@i*ǩwҦ :vV*= @6+!vR?M'F"`Z*]6 5 "lUx^(2g E}V 9È&/WA3PJ`+VT UR(8A'恂i-FԃGA,P]LYwqpIg]L/y4>i`Dԛ%Hv[2y>¦:$)PDUpQ!m3I4Z` 50NX`{f5W+J!1j_rYedVΆ' fa^j<X sP͎`Uw֜H}f$I)BQ~U2Eעf#虥=0g=UgdU.R1qi1 K{*e@c<&uvD^EČ1vXL`fJcY1~b* Dts2Ue7X4$: 5VVffIRd(yJb_طX0~"f457ýS 5s[!\"PSuE8Us 1It&{-t90u vz{fR'}oIv3G}@,hh- rg6̰AS+<ۦω@V$>#mT9уYCNh5bYFHLBs'=OiVUv-KыqԺ el]&+>95M̰I;dݢmD ~A5001ѓݢQpH &_G-F)7mj DK6: 5V8)nț}ҋh MU+rҬ%r;$Rq9NTMt6A)p2- FL8Enq{+=9"af.&SK[Si$8`g )IYVaMRF(ē*騸w@;SQZ@O2ylZM0iBՔCk`@ I,g Y߂b敛zoir_v&Vvg3}y+;Hif>ÃqIK`ղbwۋmH}x`:f ኼc4 Mh Y!YV4LBi,i!gQhTKNd2$t, S=E>+~`T 9@͜QB+wJIˈv?tV zj O*#3Hto2 ,A?(*DY,%lVoA}ײil 2it"KнOtVpp1=w0.s%Z@}n9u*|@Һ-DGdީ! 4댌<.K}uc wC_`s~Œ'o Pir-ɏ9jq1:N^UUUh7xª൪EPW⧰2 x_?czn;7t(N=(ר!ۺ+ʑ1Ȏ Yw?w~2jboa%-mq L&xd[>dT=Oe?sYM/̓B/-GF]sfgk Ak),,uuaT Uܾ ))`ʦcdTX8&<B-OóS;+pGb)ƩÊj>~*{1?͎ei. WmxfϞ}FUD释񸙧,JM'rU8D ["RF ՠ}L2Pp@ \OM& [X )p#`lh_9EIK%ޕkF~Y2VǂvE.8x.:qpjͪF\%Dَ(vZK\<_O;x]1B쪆U3'? ɍc3oߟ8/T3uix~8qDG0cqիKEpNފ 纨qrBL~f=jgɯ{a[kB\2m6f/xGu'|7n .]p!I&wBuZE?Ť ">#.j3囉CWiA2?En( g0;ejhQ⿁dF)-Ę 'Zi/]~p};1$T#K8FECZ \}*+,h',)Q0WW/% ~-}#sv`N#ElnBov‘VP2r6/U^ 5]jiӂQ㝇n St!ŻEKx"EK>O  &ݎw< /z7G|o#^8D|.W;2|X2ZqNY j&fLNN#<7ŤjvMY-{m_MĎ8m-ѱo/8h ̜9iPҐ% YC/1fShLZno*! (1->f{VcOl+Į:Nùh<(뺍oQ 7TB fX{zse%NB. $H]MH*N}VBxĒ5zQ)Ce'G49~cu~j#Z4_V9_b7Ϛ=гd1~~X^Gux\|CpKP޲%ZV@IEEKlYҢi=߯/ȧポNz`˛o;vf%= -Cqq13oPU| +~~jo@`N4/f D)uELdj<Ӳ~_Oy0_T4GrաLPC@;PMTYXFFp`k4s 'pyުs'ѱO5CG3Y\Su!9DD*5dus8m&ㅚ :fp W&BN~|67<O\>gw7eG\AMxq@d\\<ze6\O}9 FDbn .:|͖fXsA?6{n-/:#1b뇡C(+K8]u5 I0*Qc4Ob5 C'jZp*iq,pk-eZ уq !E8f*Nxn*iTZ_xD.r\L;3iI\ A8hi *,;}I~O1$ᨊߊf1@=qr4uJS;h8ڷ f}j+’<4]VYpťY(7].ƌ]&n<\<:luns#m[diK?~:=rJa]+tD|x8KڊD=O W_N= o}+QG;{-sMKmѯ_ߵfO|?A"VGz6 Fj2)r&(:?MJU , QЭF| )2WXչ@M:$FL }rVOTFxD 2;P)F(;Q[;:;pv֫*dC2 duqieZDijSd̈! jn!3~aX#R 8LYGKd7Md^ce}0dȐf}Ρ%3% +< QܫXp"DF p F ADp?xWLkOun`a ƘP6jIY5l8~hBb30]iŨuQ9,ZiF*Z JSS`4|bL%w|AvzHyݢXK<R)a}ǚ ,짱dSbQvzŮ܆gIg ƭS{79,AŮ]+qCbgxȭqϏ(GB;X6ѵϦQ[^Jt쎭JK}г>ƌYfnz2O>@DZ|/N12&wuyz c0 άw>XQ%/:yS b^I;w{)qN!6.1:VdT97*4-Tfi^0;ZHgo+$&PMΫHռq_IJ!OEkGa$@:zL&j֐p53}5l~`t})o"nW36{W٪<ѣ1m44{ `Ú4PbH7`~tk`)~/\oTjj}CO [|1i0\5\F-Fk˘CFE5bKI/牺N&>%(YL 7\cA gj-IȀE{@~̑1Ъ<ܐ uԗ.-@JH". *Ug#FɫL׊w¨աCp5t3b"J{4GA_`|qǂX |W-?z#tɮ8ߡ5(47M8|+~GYxM??{_',ƒsZYpi;q|a" >#_ nݻwԩSѥKu:@ǘ'hpq7|;%: x*>^!&Ʈ%(5[si*.Ix[[;}1phc biDfLY ʖyni3e } KXT[jd}C+_kC ,J(D{!0.hq]'bb/xW^?/<&]b YSbm?~ <5a HC<]۩DŽ3`[`x W$7[? 'pd%ř |Uފ לZ9л4]>3oU`ڵ:.&JUGN#E3(#Y|PK4,Uihr A}e`Z\n`%2blA/eʼub˫MCMd17 Jt`{.L&{Aq{q1JAUW\; #fPdʃ( b,Bǝ6尞nb蓣wxAZQ;c63ӆSXSS:>uH$v7Qr ']EPp¯?5+ڹ 3pKةhY|ppZMǟv;lJ}$:bǫ-R\_80:PzS 7B8#/RZB86@\N/Kgj3Ua2$Jy"G\\NuTQQ׷i f(>ED͜VüevJWK+q\JOֳʕfjMd \JWLXhC_"i<"HՔGMt5%n:!-"'P 48O&2<> yQ<ޘa(1g^_UU7bC#/!069SOIDjjp`xT XcדavlaWբ9ȐΤ" 4JHE&CMU֣ zap,@L"z@IP%+6BbMKk DҜU IDAT\23oXz64S}^6#lK6k+Rl$;p&9kP0hy!$H4qsrX<)Â.\2ĺF+v˩j~aF J5sYN (09~0َH%+APUI'i dQϧ"!%ZV K-R[T H )‚L\=fu|QŘa`HZsd )jbVdO\ox\"\;TgJr2joխ&eyN"Ae&TbMnrrU:eѢ&>uU_,IRG R=X#KWQpʒB(qZLB> 9{ mNՠVfFY4kwMGc(wѧMpTOelь}3"bߞtQȭE&( ZD-}kLW%Hrs(Pq5#TH E#o|:IP牗%H'Q֢TӜ(-_@rƌ%FB* e:֧HbYa1ꑥ>ҕ(*M5mZ}"ـTõ""CnY)SWTCP喎II ~a9D!x &o|XW|YelTR*ag@!fz;C|Hv-[1 G&x<0*AVp'㧎#[ -$nkt~#H8& 2)qE0\H˰EqL&QZD<(0eEAv8dѱIu97Yh5 U\Js"#4)qDf0Փ&(CVXqF+7 ˑz63ӽ^6G|]ɢyNY7IDÄ)U>UvI/%5**L'/ YX2K&KT=''Gy3IR:,+,麢p'9J1) Z2.3DQ+jѢde_ejUo5NB t²:YQͻQŒO4ڛu`t!I.U"@n"Pa)v#KI"F U>/fI$$J3ªsDaAW:.<~~T{ß*%EI"\.É EE9~dB3dBcI^gѭgRJ*u^+ ^N; . &۴֘. $1lO`a)1U*ǂ2-<-)".dDa𭶲`(CS,4nkA~ΑjβCPT$ *ԵFfG oo RDxU)Ki8}S9l-$ƩEɄtŃAi&{LuȉQ(Eؒ%夅7,1Zt^ ?tU^ ED0DSVU5=钠 mp1nJ$B˔f{"&bq*nW'LufZrc&LI/sZ$¹{gQ?D/^Vx2YEFM]IgaLa_DퟞBT_e6ܵw묔x=.Fp|*e{[NjKJQK= Qeo+$y9>ݓ.uJ+4b2+ S=w7bQCL0P얉fueTgHN 6ǂ0)T(\Vq$DG2$|q{C|}*'T֋io08KCPَt-5<#500Y \(ô =P--X5jaQ+ʁAea7XK^"g\& 0M~3){UFI<t:IAEž>ԕ e=1.dx0h wO;(=czzv**;-b$HtӨ,rhJ>Qe,1ZU!'U]gY"bLʋEڂuRRj'PFV9,pTAR#be|S R%} (WuhRP\1PZNrj,eM3ƲU r!A:hxܲ*J,䡴8 QN]elѻ*ڷŢϾ@m] JʑuZ܉'vDzkxp?V8GlC.31;h ̙31x`?~Ŕ$+skei6bf_rp[, 5}],Uve(g2 N"i긝]U깁#!!1 G&\":ht, ()ŊըJIbWɈ>T*+<]QD8??$t^Xt-Jc3RXLȉ՛Ǧ2b/JsbJy'^DdQ/oL~/=,hƂ r8-oN;]E-ۡShӢ]mu5_?)+JZ3#O[lpǘ;YA "x8yVQJYk$n:; b?}EV̈#Я_? :MDQTK"2Kt=PF%~WLHYLZ܄*wgF0~"`8DHRU|0,I&DbDمEcڑ+ʗKФLifѽK[@Pֱ b,2Hg 2$\(.,[ ^ ͉x(kнS%>x}dh7qi|g(kWwb,*#B Pܺaaq3Su/|7.|iW0<ވ?յN6fZX?p}ذa5jTI1Q`>!_l v2dH3wœG)cl\g}t e24HGV"C_EwL(IXf䫞_=VV=-Cڵx^WW+VeHbdB&PD-"i~x,F鴇4$Z*U Z9"qFbV()i!Jv'w*JVNG|X&d!37'@'@HtyhY?J~TOܮ1c`֬YFiӦdNMdx%3*{KE԰z{~ݵh:.kUHj7Ө%cwa6N[AT\G#c1^\n1&i6m \^=Qi iݦ5***кUk(/GiIX IB2H3XS5,VҖ2Q;œ1AˀD3N&'@eD_3?"ά*{7\M|xa 7cހQ8o-L(,>n-YjX<^oa461b_'F;(υbaaakE -,,,bhaaa%F ,1ZXXX`"R|k=/*+caa-F ,1ZXXX`"K1XbE M |zC;m !'\'~ܑSi,[xǪ[Zs5ˍx~vzhR[l, T^ޱ+ ޛx? ,L%>oXzŦ V\};ܽ,z"To0W+ح[[W}݉?O]Yj7Ue[sM_?cg4q `E}Kw,Յjeo{l: Fv,x*c <~<7ksgm$kC8={6-pڂ Ɔp% i$Ӏ2;>'T`w,!n t; qeM`!c~;4I̺j7$Z/G}c˞Ȋߠ7[bZ$Pަ5Jj~X`w_L4 {nֺ810_Z39⏀^8(v4 j?}dIqca*/0~{qA;s4<9 ;qq@nh͇ҧ] IDATe!{?iS 5n4YY nݺaȑ8p Ofm`,b`@=Sk%Gۡ$8k1@16P,F~,֝&HEr5砪)n.ؼlv9;])`;k-n\~bGAYYײ9N/`w7Oisˆ. d`3%o4 uwN\#;h26dwnnWoăVĿW__@s%0[>wp*RqᲟ,۴.nr􁥫)rg|$`2̱,^VPh ǽKvwi8 1t;9xttԓ\xXqqfuW\+>.ݵ [bĈׯdϻ]nz燭XcwB[?+.Z:ƌYfaޕ!>݀N s4ppEyJ@_jb26.[D_'X.!s>e3ȍoS~v-ˠ6uk-_<=zhL6 %%%ޙ F=@ř@m5p >_ǕxS¼^c֒-HqH1}KX]1xԮ0m#k.i|o숊"$H:֢.WXqKlVi7wSK.봅 cufX{Jn% ns_Mg@_2S{n8N/t{^lּcfkDQĸ|%_+9c~^[@Pn qRߒf=$;1ȮY-^wp;*}Ԣ.8  7!GDJˬX(^i Wbo[1XbE -,,,bhaaa%F ,1ZXXX SWmbsX~k1ZXXX`"K1XbE -,,,b(XbW܄s2MZ{t']n=|tLة\wWq ek޿{ƫ?c#gkQWA#)kq;X70Э(o8] ; ~.-2[ހEH‚J~ſG^Ƨ¥uY2xyAEʭŒ|%M[ cKcܱ[?\e>!iTG/Gݍ?N6Yq yZSa1~Q/xG͇={6 =ׯ~gLƞOE_qt̺j{| |s~Jca%gj7'NNkX_,\ǤIлwM|R,$|~tG<ئX-=>^AmN{ 3r$-8(oV:?~ H 7ctź`}J[c$D,R?{?ǒ0wɜ%XpkXܲ/nݺaȑ8p VZY   W0݃p ;#JQeKt/{-3Je.XyO}w+ߨf[?w(f6U\n-r[(^~;A{Inqȟ7G|<ϰfBt-vbHEn d/ٙNǷyGC )-gމOM8Y\1z=p#C/2W=vI<dVfɻx'n>=ZQh_A; *Yu{ {1ĿW_}&qz>nEGѢc08mP<5__jZ$Ϳl|ﰀbq0,a\;oX6L(lY)-K1=1nEnNYْ͍ >&tĈׯIL$eгWXZ]Hy 8~6wǸ/GQoO92, `6>wXĘ^y/A]VOq+x?|/[zvGE5pƱ03p̳c<9ի֠,GnpR) 6 FƢX(sX2ix^pxKȫx8O %>x[X|Bx8{pK1vX~4\x`ܗ97?nQncƌY0yM2/Ďe6nkC=Sa_Yb9g㘷Ew\VSVbK~TeōY?wX1Ƶwގa|.Â%sV#vV=n< ѣ1m4佝m݆Ϝ9Ox#8XIo ,㽘9|_$zK-э2L,=Qn(p%FRn˟9ͻ߻^w*za>D,CyRx>G}\]qC{:u*tI㖠eK!ZD~B pxE<clM1d9a,=n4vm߃Wu]6$wXpƜo#,Ӷ.d >{7o8=7|]+OE-vpQo¬ v>2u*A=W'H8ˢp*zbecqys§Kܰ v!tDezk۱~7#lgQ/yB狅T狵-,,,bhaaa%F ,1ZXXX`"K1XbE -,,,bhaaa%F ,1ZXXX`"K11%qjx 3 M[bIC uP-C݊N`?|~-@4)b`rvw|R<} tt $cIӶ ֲUy(1+{1?/3|s- dH 9K=; 3jk3`gȭʍ xb勵Ʊ>fϞ}6۵k'q#RP!ʵO,Ƒ@Rlgǘpe)a;AHd2jW?_'ą30_{?O~B+>_! TlC> $topQ×!K},q*˟_⃸Q8|Pخ#/vLGcq̏~PO0C\~Ͼi0AT}^"7nL, 2f ?|\NsO-I7>/Lw7}a1־s#v7 G]we{f~zc. /,X6nw> t놑#Gb>}:*++ufǕV:DG6tLP}1IOY*y;XMt*,Dj/rKv.׾R)3kǝ=aqI%Zl=6Ic[,J8}5KxKQI>%9wa8@.6Z ZlpZGYb;> mhR_Ɉ#'6τğ Ba{LVzɔ Y꾝BJÇo|Vډ=ޭ='}{Z=v?6K^;mTz ̓1b뇡C6} |/F c='*d?zE>q#G%`yaN$B<]cd&0"Ivؕ/\bCb)dMHh@Ʀ(~Yߓ-?F o$M1cqѴ:iw~?q9cv9ZY}ºUqS:1CXq 7 Em܏:S?|9Fc8 S hS_s~w + Ɯ7f-텁'] x,q-~xx'p>zZ ϯDڰa0jԨu*-8a:쁋툋WD|Y#3[|;$c]@ыFcq r|ͱ1BZa6>$O}aX.(-@T>$7P⋛G-+&Aa^F8rp }Yww^ͦػh7tf;֌ţb7bV6oX_x^~.;\{8z|v_?Xko !C4= c],.18+XW>K+?qsEJ+7ZB t$`fwH Io74,5HbGӪ!y4QR%Dae:fY3mW6czwo.;ԙi(k<[\#ANC{˱\ϱM]q[{%~>YK>A1p|m:>nD3fɓQ!hB!^s(.H ꂎ1yP5A,v0$bFKF)KBqQU(%P0G֌͵! CLΒFvL Ą% X\KAE̊9|V!dreݢ ŨriJrr,t{WoνѾY8o_>s y. ?q`}oĤ^'GYzca=z4M]_%IA\H7*|u8Go,]#+f[*u2^_?dLf/ݻcԩҥ:/N#A` GUGyR!p( b"P*A+ wzuaWac W݆#z?/BI>ޏv끕}*@xu8FVzUz\bvΫ> ;zFQ\wpjtkh1OQG$qx/4b1:Pς I&%O/]6n"{|63êInu#ѼVZϮaz0nOA)Vv [ArHpyVy!2El2fVk74_$umS`r!8pEG+;pp~(!a 4?wΧ݅! 3=}]T.=_§~[KP~ hd1ڊ_Ô퍑`4u$$UaF0~5"Ap +ۨ[̷L3+oX&=bYs:nDjˠ̫_r _\Db{Q]G:.d r /6/cBa$}\Gykku+!/ΊdA@,+DxA}$RoxJ ?"S ;w}k8u.8鉾oՊ#DB[)]CfU=$CXqw4ˌ2oK B"epkB0DgR ȓC*9*Dg`J[A՗`bn. fc 6 @{X@~~x1b$nhv{PeY$~(AX\k8aK ~Ayn@"Ʒk$ d[\Θk|,hZqQ3 ?-1ZDn /YUR[>Ƌ Q9ė]-%OZ6 OD;5cג)GV" MX$pQ MI;KP6VebrAT 1*q"VE2-R<ׅݲQt 7 W 2JkN2M p}njXNhYO O) L[-ǰJ.NFs2 h(oEmobTW:BYA-2:|CB7E~ͤ> ~*͑B W&k wE!ΐ IDATdJ,1Z{dcQU(T19j5h^GH~ρ(E&51_,tY] F|ӧNE] V0 ]wAN>zԏ?FǑDV @fH<7o4z,Ƭk Ssa_>R ofD0AF[Y\G3/"JIE8Qފ变KuMT1|Յ)dVAf49q"4W-\f nvbX[80M F;*~*hƠn621c;{|x )IsHN<B!YiZHM.^Ica!8nQ6۵eG|)O{Q5xX~L*!JBfmn\7$5$>"D=&>EF`|e54*7D  R%ȥA'x99lq+%-Em 3] 2 ܛ77\- +۫'eRudlL8g>Qs03bX/ NLT 85JS71GK!%%r"5aü|Gh%4E1Jgi(â:KA7v(15,-'⾌)b z/@1=_bvDvرX/ 7l_Jܽ%:uԈMCuRC<xLjekxKҸ4!L"m3’H )&PNES1{ʯyzb=a@QA, (H$A{fw0 3ӱf/,HZY͆YVo ˲CcUS >meK X$y#2?Fʫ95M[*9WP tHmYٙdc&\dZ#%B^;tTS8/cfO9*G .!)I [JԀEA&J vT&1TK6񅝐J&ѹįb:"Z pcV1ʺ i,wHy{D_^hm Jgw̜D|b0$E!)q6pdq(b,YpwsXin7Aꊮrt>~1 HLN:qidx*-n[yJj r!̗2} IabIo9^p(=+KS0J$W;z 'xGH3E`FhzZ(ٽ% W8D9jFOt-POxfovÄXE!®]qTE!n@89zi 1Bފ ˶Mp˫5݈L#ó!R* PƩ: ˺𛕞AxqU-T[BTx:'j0hZE|h8^Z &\gؗ 1Gpr:yfE3X_ EW UT#-rmA8,۫NSu`n6HVrNmgu܀Hɒ ]R( }Lb˱RhOb%}0`ؔ_RuHU(·όJC`LJ&]YY yսu?Đm!^#<رc=VNmӗ؉=[ev$P ޕMC!*OgKxQPo(S3ڍ/Cb>ǘA,>[]\7IeҊz#Z2u>QW[w<~ilVT~/g؜L!)1l^fx["Xym;W 0m'Qc2xp ow,y66⿃M+ wd"%߆7!VX T 夸[&.;}jaz1hex^XFHTqu;j]YC(:roHr7!1r;/%t]T _ͻ~6oKF*qۚ=k|G-RIҎz'P J/͛mIPi)a{ 1$, L/-@ HӋhkH+6CږwH bи NkXul7qfgPħnƓaUauQe&=xvpyȭo}_`h1!n,Im[*l6wuW@ ӛ5IC!)Axp R4SYZ0AW A+ R@ĕmJ ?3 ؑ*2u2|"I`2 [b#QHJ>KJ.x$1G R+mR sXQ.л|S@]9~eR^[@à*!a {x0=[ g`䴕XC8-_i'N?Ųn * o<7_t'XB뱞֭ĴG/BZ=pkѡՍxc%_+|$|<˄D NWQQ1|#,@f@R6[\H*}a“–c$TyVF~\ V$BQFW"i[TÕԺ,Q(n+Y\c&uXC+a/$F΂F\IBqd1 #(F[{6 ~S.kljٻ:se [v*TlC(:n $/bc<ݏ" .*)%]6 v􁗼P-|mJҶ'6 }=Xf&,{^U]1NV~^]XT44ơJYȤO+`Avؿc!Fj YA •7_Y޲ m'ꪳcU ׾g].u}sw W7qϿUKW# #/m)NxgQg^ 2 /OոiFxoN n"^Y  6P (}+FePb )2=J,~J=tlaq fރ$ߘvFw U7B=|N!maߙWֻhE; [2+(6S 4]N–CX8c *ȒE1SS-.둨_+'bq܄Wyc切gE2?] wbu֣3rZSۆhܓvh׸lPǀ}_OK^Aʽ/ך;pFx荅`DeAIa.aDX#'C*,/^,(e|`V#{t/wDuq;B´Рeo1a*TG*=6 Spp k6_h~f,RW-.8rGI {oz ;c"-܎6`>8l?Ϯ.}׵E,y'?^F;7= nVG]5-sV`T18ZtVyV[7ZSyna;jh3ApxZ^ psm.&MمU=5O}jjw0S/ S2ZI3<&-8#@4;۶"YTaj Bqᤘ`T1v%AJ>O4m)eχE4ݏR*nT'IV90,I*D!mape7_,'GծH3Q0^cyUq. Hgx{u_ ;.]BFǸep'Tbˬ1Ů ˮsFj<5ll`rڶD18YQI b4>u4x ֖vdd4h!w@u}o|u.NhZ%`KW?g<^]Q)x]CDPZu^SK\X!x+i^og.F ߲6 ĨV4)dhN&5P%MJuL@ưcxHjډe+i9\]JCŖͭ Wivf:j~T24甑#;+~? S-^E_$HDͰ"dE[(.P X?Q"lR/moI˞B_&UinD*M}4G"5oQhJǸgZW B8)z-ᕶ4^(\rǎG@wd>Dϓ_,Xp+EJaZ|?iP^,(bC6"ce^YGyE!-az'UfokhfZ:&Uܰƽm˓FxC)A,ۿ-i+Cb&Smzvt4z=)mĒ1<12C \Ōy8$!+ꈋ!lamq VlG?'z %,1ܨ!;¤FDOrh?=ͨe5'cJ{=0Uu=z6+LE60\<M㪜*1j_gB{˓ [ %IDAT#`)H'%d̒'N-=:"SA(^%T6YvI^SzExߎ9q1ibH>С*1q%G;`6Fg1BZ!eHr7[KBE4 mLr-vWe!+axowO>(8) B45hH6(\Gц^3ŽOY%qa-.=0SFu@.cB2DjBNŇhj,1DNx*tPL vKFpp6zJl!\ [U}MiO͉6#T1^cJkJM脧*Ui+ (m 0 &AGD]u2{HbJARj^P+r?őeY#E!C]ʱfb꼙$ɥE}~5/﮹gدX`=`cwקnKEa"缈Lګ78wxl!)$ ]VI ={$q/gSB˄1D̞ bLKVkr[enj#>kfuWc{sulNJ s Kbtz왨,U'k>D\*:osK( |Waʳ;b?>6WYG.H_"?yyk7 .CybaE,`mAe;O2ki] mY AlZwu?U*񽬊mkl`i gۈ*Zsр_K\]6rfow),\b^>J+Udzrv"b-C0x֬u9I^Znvf^^ìe"+jTGy1op;<~uwo!S ,|H ]>^KyR'{j#5ۡfݦ?z Y[hо9K,Gc`QF/l~SxzyUl\M-Xw<9&Y;x< 7 FѠ&n$ 3NqT_Wš›?ݦcDטC3OgRl=_HQM֩0O)ǰwo!2>tBKm[&C!ӰsU_ gF\C%X=xХEr8޷1:)׭.h$<$lqުz`)5R4f,S\w\,sM\qƌ<J7k'"K37(h1A^f,6M^|VlYF\T2a~: ʶEA2zjx9Kj_!2v҂nge6~kYϪm3Fb`נl QdQmѱcId> NW9LLT 1hn;*ݗ/;Ba)7 6,6~ C.=kZc嘴B8n0.h2,{yngN~5\Ӿ9(.ʸ V5x+x6dN_ekE7w J'~~y#¼,a:nXb7J!΍@8rԧDk2MXPi$WUi5o`q+ B je~uW9J Q5ZkHVh3Tl/].xۍU>GZa/dq㶞u2rwzqSz>k9ſ[ز#Z&yK;<)lxBf@QyJR-~v,ORS$j!1AD_IA"YrL/=&54-P;,~Ix8+\ X0/r!=:>EaŇsQԶ':;b@sCj,X*ĉb''+,f*AX73\$.yzm$5 }lLF"i:I5$}sRPPe+Cl!g8,: gی=o£wb`Gv5T^ {>n~J8qKf+ Eꍯ4ݑTC|)7r_}Ю&L7U] ɇ IHN0"G?x+oHR*_f>h#atL o#ߛ"=}>8ik&zGeR }ִckIoe".ū)pl`S2?Li(pd71SZH +ILu ^;]0:Dk^.?ŶxdH #f\< _|}gG.ě#F1SPUNJFe֧ɑ_Ȯ{ѭbHw 1% E,$T[<~ZVtA_W=77, 5iJyk ΅5dy4,$0QխGY>j\!'nyD%Dy*fn GmF j/&_iAvn:9jUk{ &U 8}$d\+ -θ #Z5ohpFO*V6r:Lzh4n4Sp->x~9rC;Zުnw ϩU3` 3GIy!0@ȤPr$4*;d|qP1(gNOtj>oU"% . 9I1Ir TES# hb8D4>ߓfX8~KvR*4Kv*%=4@.^,j*S%:WGm^V pw aa/b%~#P?ƕîfbL1de%𽓈V 6DaVpZ _ϒۙOuiA ϤBp`"h>! Q])&I:YR F ?71>Qƛڤ0iȆ,<*Գ%Ni7l{-l{ y qBsc>R"&=P1FBH924Zi :%\[(+|TÓ8 $HH[:9t~igg o52!/1t"cD)4ڤ(YC3*!POO"b!O?_g-Bt Or'cүY.={tNZ-;އ mhѬ?+U9'I8ж9Ybs3p*MԮ_ܛu .{Dㆹ8hX6""$|:lt89#O@8~guc&?YB|3e.21tl"pVͪ,Yqo~ٙ6X!-Ǿqٟ{"#C1JE[tmXڨY9s2|tj'v:_ZEKF:5"b!BAWqNwFNe6l|| N>8> aټϾ±0 RJuKa5SQZe֪뷠yLZlݲم7Q 7lڎkeaQ1jTcGWk~[g ztb$ mϊc";vFuָam%mnl߱hҨ#x3xT(U1BځLSD_(I+SH<gUHwJh<rFqCUrLyЌm1)Jvp1Mp*ͭȋ)6nX{|̮Xby&1<diN8N+.Ͷ>|;:# 1mR6~}11Be%-J~TuH$Yfd04%bG[/Ia[ R)O0͈Se zt`8s1$;mb.ZJO SM>;wvjU*2unjIUUlDϓ;qE!B2RCr U f NW߁D1+p0ֽ~0 phs>|z>"D8i=yq|V8TG3OnǷa$ۍ9ḣ˗b7ES9P7yB|=9JT`"&-}CR1FԨ w3Nc┹شe.ۃnh3ﳕ8Nvr6Ҭw!O| s[ Š6AtYokzafY?Hb.H3K&MGg7utm6X|["2CaMH<̧bP 8c"HbtäpE`;zC hŽ1`iv54k!SsD>*/wrOZQOR Ti7uݸaul2ti(NknڃC$WGr#}Wb^OW/gࡧ&liّΈT4-tQʈm][<1j2^X/(Ʒ/_es`1k)S^upWpaKw$k!¯4 ܅^BQc0/욉GC}F9dff8v1!BHObbv uT\2{3nuX1stl_>YѺ;,@l,7W|~HCb$(joE C4½MTwq`{iN wcMAk+>B1ʻ;.ݗ~tō\KZE jT.{j!B?'pglxʳxvP oY)>zם؅5=Q\!B2 m2_0%W #G7 x[xѢŸqw7UcOiOR:LZ< kDt ˋ~9(%Wm@V-QYIOτݽNi_}im1_nUP(C_+rnDDi+Ꮜ# B Qwt@5!B"1BZ!#"bV1B: R#D@$1FH+Dct@D 1FHD!ct@D 1FHD!nDcBD1FH+8NT#.o#"b1BZ!R#"bV޽{D !BNbD4IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/fig/subtitles.png000077500000000000000000004456201473342170300270470ustar00rootroot00000000000000PNG  IHDRF6D IDATx}eU:+6ZZZeDT% (eQpP(``lQ 6iswn7P#r!pDz\H ` C9$@3~a"sv Rҿ,ۂ--~?,CPYF'Fky[3IXK fau!]:D pRXDQm;(JزYA%)\ۆM'gڲe $eA繹&9_<B Hb?ӑ:t}C sdB $Ni1GR~4M+ MM1(Iuh0lnیIti ~l>NDwAVcJHPp-'wl8bI[Xpm?^ShEYױ92KB` a ζlBgDMq΀C`D X)9rCsD(G.d,vo'C\E ա$!sKI*g۝T$S})kEe%[?W@,mC)z %x7XlciوSzbxE]¨L ik|lKFbJ!W9e9Xd?zptRs,Wrϲ0i3v3J)mP6Gyj]͒W'!JSTU4H_SF2$5R 8à& -:||a 4r +HѶQP)GP D"]䒃\8j4 DȂRv^-)M9 S]A(FF\Xr6$=4GbmqԚ=<Y 8E6>E>j9fIȢTM&S;ТEބ辔RA%{I)LjZ(jv-ym"&PRXLJ ¤8$hd#J\"T̤J 3Sg#w]szva [9і&ͯJ1hLEP! T=JLKJqɀv|xFҊ86*HQh9p-[ÃQ]U:݃ qZV.bɣa!zҰӓ @1Z m,$̚]r\xLzh430ٶTNЬPNY9ⶂ "(1հ(j8BZ#_IRj a+Je-"br v<΄L4GɱZ?g&5y5.ʖj(1/ԄqҐ4k&1'12GaSk[]}xh*Ժkv YFNJ>G==u9$cRŶe[w@s vl6%If-imEL'lkqC% TpJg0Ζ8NOqzMEik!gD4qR̖a3I;FE HL&W()¡40TF:h:RSՂKhpZG^% rkjDOoV ]`9AP0ېM̑sTc0E*_F)L]Ril(B%^#j!ۜr̗0jr4H@-*ٮF_&DhTcdwy3͑y<;: axHU (SݴV-Ceh r$e4"X@Űis\dq iqs94[Q4Q5 I+ "JGi,P5 kj-m nT.> ]0%QjF~ l/bǵ"!ЦY򨞎>kh]@U2 :ȤvmR@,|~-&-8pC%]Vz2kj:P)R~B(@|QDʂx db*gx⚢JTf4wY\$'I7("o#<@FrT/7n(ehCqvm)pJ-Ǭq=A4B 9"CQ5W#_* |@z]]N&^kb (PNH(őoQJv Gf6]XZ`|0v5; umhZ`:AnEHJGr>Sm"R Xe\njJg(|HI,L2NY栟LFZE iU~E.K3tƖLYD(n~qXȜlj$ EM1 s[>DzqU#"IenLٜ&1=m>^ƛmxvH(6C(> QtyX.zz0ޯV A)s9ZlӥnnQ˝xHDPFYC l)N-פI}3_H+$,z "4i='A66]`$ADJ;DH&D *}>BTO(3)@ZC:Ƕcrte,:_( c]m"u߱`S$3fq0 Q!҃L<||$[țrQs!5tH [ZChmQ`喐Tst?+L>` V^]m|#eiu2/V`UprRSI-:6-I,~H$y 1[Q v^;PsQNĬany^^bvⴉ x%}RɆI H?.2X8'f 'a9 ,8uMt[(<1z"̒EH}$a;4D1t$L(2qY"#m"YEp"ю3A燢ќ,rVbYv1Hoe.ԫPMTd Z(u*d ERTȃ=͵w ─׿ "~_PMzLj92>x^ ?y^; b[G'b8וL+Jp3daAE6ɩ/84DSPj$p]Y1Lk N9DRƀ Zw5saF&&JBNكj\_KU.Ʋ 1XLߪ,[EO CEW0o3K ,>J>HdAE쏺 Q5LZ ]KÝ@dfAr Fƞ-z{zلG~} A\$$j ?SJϋ)ۏSr1MZ#~ۃþ[\}puu< oF&f+HR:|DR}\coO;7ٿ7nYO#ᄬ3{^oΗՁLbKh3Ltg)%'oִPr\xlC$ K@{1J(a]l4ISgsZh\X;7188 ҉E d^fpl7!UMY@b#BK":a@CL&O_Eg ̖!e>b!5w"3[XnD4QIs"`㮢¥Q/"K{oµd G"R H1q,K >JmXyMNɇ}q1G -OY+6`vjM7&a\f"ܹXVS6 W@M@lx Fz3HcR:7 R8ٟ?oހotoC6JςdyEXT/1 ωEX=|=xB㪓QϑH? ˿up7p@ .{X!L1 e*N.sve:z|3(&~Xgym48)L eo%7prxeV"*9S 2V? mAe3U,l RJ)΅(,$Rڙj@8Y,3OdFծ ,攐vY!"i=dia':2>8ʡ {A벤πbATA/SR$sd1u*o na32UNL-ɑ'Ւ-`<(ҧ6?Q!rB;NEsK]SGqy=G־h`=sn4HifIW42phK8c4#>q/vEXӰhk)v=r,?(Cp䯟'y޿\NN۾~؍Aܱ8pA5tMٿI,[AL4t1GXM'(`\LbśVFB.j9Qp-$Q ՀU1h}`"Yu$MBؚSIYEkrbZ ˎ;YC>OH淚r)d\KHYQ&Ƒ.vŒ!o}w;MC ڰR u Ldr+,.D_ kd!`rm'dC[ 1G rpl!p<2o,i+EfTnpjOW-6\Kkzo\L(_X]G Xrr+zW&P`//=鯘݉98;n܎bܒ-uy!mCރ/|,6O˧纨s fq dl-iNhƲDlpUF^X%ZPc-DOi*~yGL !@A>|Wm)֡陦 RqEwIb 'Ȱܡ) ʤqȚY$qHȴ h3`#<v+Zsx^-ucgָfR Fh)˕"Pf. m,tlK'$-*̴@{NFN **v V$Fم_E7q+3)y஦p}i#ouS B=rưa^ 뷢5<xϕNc]ꢑ|9%)c|:YF{X=dNZQ_5Ƈ7"NZ5JE^x8K;F,7+q٦cpo0񹡅ϧƄUUī ,t Ó+psʗZDR?]4KbAc8ȌM5Xkϼ{2ƣ[.u]؁D#n 7@hOuJ#]V8}fu/wMe b[|3S 3=N6Ib< *j-I_ IDAT GЩ0Efǝ1\͙*t^2N}M+% t!K'$ IREq\v;PZ_i_Àc[Kc57"|`5E2`a.IE,+7rjZ4E;q—~? g}Ly{X}8=1gԗ]j6\/ș ^{N)S?r.았pP߸XT1wCq/?.I݈#i1.)*ނEGsIboPf'6c `2RoRD+3J_ZVtP]-1ť̀Jsj{#¸s׌ۨhFE7LjSdZR I'Csh2;JNȩ"='M2F1n$,$Mi/i?Csm֗1$f.+pb&R㑻uCjYڎd= LRB`,"]`.Q3 Q*# ڈ_h0KRa9s6=. (eXm퇷~gYc̰;$f^qq֘3:v?AR e/ KQ;޿w~ - 0lGd|O JeLVaוP0 ׼h 'mR7NQ/1fF<|=e=]!P# tebRH.c ծ#Lyh$e%0)%`$Grb!*^j65 |}^lڸ*K 5u47c*MVQSAϗ;5i =&,%pO|o‚ǯ%F.vh1I5.2$p E=.ˬyy]n9P o ,ilBoɃP x`I2CJH)@ݏGSg{MW`Qj}1w{e㖲gw4\r+-V^_#bkq.9P/-ɼSjyI_nł^׷5Պìqo&oEi8-f[+QbPaIJm.>3TL :f ǭs<͙= ,} # _exdh-ph5TCa5qbo1&M/7!Ͷ}aوܷ /bƗ\˩ρ_XLʲx6ܢb*čv nJTE#E#!90T]G2~t:cfȴ-iLT:bF[/K/0Ȱ_WWټg]S+ ƿ}#?}9q߅G,Deka}K.z#C#w,Tz U9 w`kgP,SL(6c`%c`0&R,6MTDŽOf?QoFe8?s~z5.Hz-" ap2M` ҲN$m&_ūKXx_'PG)(&€2SH qmgRl|t;01&)l7uWVPZSrl,muk<0Ct>x*^c wlYrj ؘ{+DD6kZ(Wk]ƦM[JtBX| J(ӪHD3I!]LwijL:}W`;|9Ha|ޢ#z0,R뤏///|,yWi^e͇`Tsw xu.9 _{< 3&l5J3桬9/|?|1}ňu1 1j 1Z 'yR CAc|s~zi#gLA>r̓8uGJv׉Rcypލ_?\xHDP7 G8ɰSᭃPFbp:EC(sX=jM r#>EuWla.)i_N>06hGq߻W_cbHiaknu`t>[)1-IBlsFNϞr/8HgKnSWYc| ^1cVs?-,l3cEXz%`! 8X[a _r8N8b'8"o?ܽEQ·_~CT\vd ,k2C -Byb񐥧:VKm?|GeID$|3Y„yzmi3gsž{d,ldjhyJ (U/gX%v5Hȟ2eI:Fl&fsCuI'd 1Ɏ9@DHi2/k {:`Pl;Eh{7s_=p/.8ShG!rK u3Uc\ 叆5;)3ٶl_$UE6;uXŌL/yI%vAq?^K䯬{G>?fepg𲄋={7O<7| ASnR:,M`ũ:MqD +4Ü˸/cyeC1e.ֹɉ"~=>bՆp3f@fHd<'T'Ѵ#?$yKRβ|&O]e9磿{A֎?c.j zq(T hrQVe%-2SS[_)@%y::g5:|QM YM5"Y@Z,_h4ۅZHHz$BbfYɴXLX{qOny dŴB4ͳd!({Cik.Ǽ+m#r|WGHFVkUXvA.HLqifw.mPD@ZxݺH§9ԅfd`[bS{zMf/T8 ރ'gJqL%թ(h A%YM1o֕KFG.CjC4S;ЍBhlv& (*S-{n| iL+[-ʌb+"eQi^0n]\FDN5VG̦HgÝQFBd #[1i3wȐqH8fw'hۦ=/-FR^kʬZPQǾ7lu:I9S.-P iSp^:%q璦}xu晸BdDB:ޖk5צA}<[{R54HDpYl g"KRH.NkTΨԪ5sZW}wC5܏ݞWD}0D&)CV\s\d?f͢5s]1dRаf<6~ŸOp{K!=^&T. v{ˉm tʉXZ6lF6E)ngCDRf˱fҰ}XK>ϗI~H5Ffم1萀57eZ8 kJMe=0yyccڿ%K‘&^YR5*cFsEIw}w$EW̘cfxYeI~vdA-i.́k? lx6w&=ʟF@:{ƿ+6mބCmzҔ̃Iٹg& <#s9n'1,ef%ɳ_u}a\f̘-[4ɗ5S}8xn.m.(aK5\v(]Rbݺ}~Xi#1l 7i,FBT*|_DOwϤ/ )5ۗ7\uP>lz%͑ϛ!K.F7*6 !pLhlΨ&G$ͨ\b0sK5I眤?Tkܰq .٩eZ^*1 <%GGnr{wާu3ooؚ,׽δi2˚-'"ȊߨR/,~^uȡO,{[|s Z R~0BR]Zc0Q!Č?5adu̍xFENu[Ee: Id ]2:NqEtV߯_Mb6Y+g A#,c*G4("pw6f;Xv\̟3-%DMpSGq'N1aBDH^403Ւ-Q-,|Y/A}>6x(W!_$a@)Qd fK-GNsq9&H:";wq\>.QdED EM)tB#_I[[N $=>EXw!LbelGv,JRzX(m$kj;#z.iZ2ad@xZ3'\PF 7AWOwpi\٦Vsh4:M >̙3-6apVI0F#hx@>\j-ټk!k1hw:hCȇ#5VPA@D!餓F|:կ`}" c<X0sVmX%{"?ëcv#\Q"I l&hE-4V>~Rzau"9$& g7 ׇR6adhDžb[`N_/)V4 O%!NgCzɩb;6WzlHb] y.&Mcx]!pġGcۈ<y8WQnegX:i*S-,%Hr?#$ѳb$XL ojF"h5pEu^HB+ aeI۝6aȑ>.(;2\݋1Ρh+!۴/:J.rr P3dᙾtضZZy->ko>Y#|:Wpk|A6?XV? 9߈|᣸-˒֔_G`_VM2$EL`("y桧g2z&|SfnXRQĈC# /z ѹAnظu kء|4ȋIPɵ: 7mF0044,+f>w9H׋jOWSo2ؐmn\jICԊXDFV >JU?_q=8+ǿg\w;Nex{7W,-d+HSQult^7xI ֝՛_ߍ݀,ǟǰ]0c# F܇{Wpv1' 8R6 I ='l|CBfPt'm=!1-Il +ld7Z1GmQ*SkznvDa 9ESG5ۢ z FCA{*BF\,n1W3s^mn6ـXm㒢 Ek2JfYl++ IDAT$fpaፂI~dB)6XZ4<퓁sY NY FqN>$۱BLqOFO_aG|&S'yM{oac.2}go-Nxi}}Rw+O*$}4Gn:.a7qpş~_A8-xff&zu$:f\t s.nގq'V{Xnj W-["E"dzminaAVhЛQmCX#9ZX7# a(=~7sFi#YJFHGs̢HB%IA+Ճb#$s2V~:vm2rH)LhCT1 t<EhI,a jKů;'~+<Џ,Y%\lsF%X^]Ѝ;p\[2rXqfG|v_mFm/G}32,X %FNvp5_m={`?VF,vL?۶$];nra0{ff=C lew~=n:<8WwlQ=(Az.H2:Os_)۱E}jnFl[-p4[p[eK&%J"s:wlBKl2 OKg(]eV@j##D{p6uhrPTLb(yV כmrXJ2ZLeӽ)`Ŋrt+V߿bވ8݌U߻ Ic8`?6с]6^5agsC d~}񪷾 Q@ˎ{#褁A]c?å gz qejgg\{jwE=V\m2hXcr߰aMtfDg2܄i,eՍ{8>FWB$hjpjJݑW=5:ةG8XHu;K<BB~p\p\H481J0 +*;`M,* ;-D8,IiafS|zC޼\!|pw tr [3y.5_|qj ^{N)S?r.았pP߸RT1wCq/?.I݈#ާ]4aݡԱ/;q_ԍ=7܃mha;ckϮ n=(U ;$l# G'i1Cǖ<ts0<.E.nF CoNXW-,889 ӷ \C?kѯg ߼rq[ͣ?_v=e?(~y'pP/|e^C^8O)y礚U?4l1BMG$@< 7[ՠ {=<IJ6TUd7bEND̾yߜ N5qf[Mh6h/j܏X3R $G3 ]DSlwXޏ+˰;Ϻ8 1ވS; ,qՙ8rZ1^#.G3_˹|pڒb 0̷|kmp_S~Wǂp/w\5g l݊CpM>?sɎE~i!Y#,Fp&tx=#eFL̞5 ֯GG f!ѳ{Pibp{1qX9vF'DwU0Lx,Z)Wp%O@l*ͮ;ԑAP3"Ҁ+h{&F@U+hF!Z4%SpU]xRӬ鍫 S4-+Uc3cTLT]V\Dx9}Ǐ%.Fs7]5{@[c%OAW|\x heO 0fֺx(sJ8ᤓʇ?Fͱ_i8#_/}?ru{L%f#m [SUF;JuFvX*=a\݄"2DMkSyL*IEKp;W~$ڪ%%RF,33 %Gl޳> 5б8}㕟7xa'Bktp{>'^:)ᾳqE`ߧ2eB `j?vz%GK|tBqQ.-| poի/|N'،5 N8APbKaܐnG5i6ю#Xtه]G߼vN:A!Be:W?7}ݔ*5q熈#/||n$%-=LyID̽W.)pKO TR]o( |2@VeBj#@{V I \ &ȡfX ;\ESOR 9g˲EB^Xkb&6PID;, JXXؾ?|wQɞ}ܹ=={8x+p{wYOY&F'_&V;r3N!x⏘z97OA` GacF`ܱ7M{~8;oqc(um{]/p9gPqT^8ϗ d-hTF뚕O@RJ4!nXd? .`xi)6ړ099eR &Myoy$G s(C.cv=u2d$qǛY賊nXz;TN7hI{sX6;N9!q#ݦJpNu@j <ۂ5js똙&`8AI{ 7^du]nԄZI,QAIEl=xY| )8˯ (+ }iUU=:: lk7IyaLeֹ)1  /j2^y Hfdy|cO=sÈ~-qU`ҤILP]^$ĺbD@W'#HDEcp&3P ͲjdW᫝s䳓4[g~H;nKu-cu )nŷ~XE=XZ> w48;MdTG#QVXm;GTќs"Dg̡Ƈ8P;hlT8"IKR˴'~u=fs&;tjPlZV "`6?mw~̮"6GTV"Έn͍pHJiJ^V{ {zb3,"OʨMO(Iw$-㿉@3H6uG̩gk3A$(ՆQPƢ+x$L+hkȑbmӹFE4HmIVۛvTd2MeՋ#Eq[S`$2ȥS,|e 44#S-f6r]M܌DGtf!y|)U]6ّv[m[F: s· D8acZѨ{azch߫ ^67FlfXUhFtDϦ1wp0y~) )'h.: _y52@<#Hm (AoR'cɈꈮÐb,)rtLa6unhݎۺ\_.#X͚tV@EFe3e I,Lϰ9(d  Թ vv7{]%jB%PV1EX(#i!2X^4F2ˏEj 5}@4D8i4MY#q}j19@#37U;Ҋ Z$NUrP@Ssc!ɁJ]maߟ"%BUf *!) PE8AXРP%GEC1XE%*|#$kIõa?9Uúp[ :-=d!@$$EpgLH&')7 +f9, 4:>(Jp,ҨFbe%(-/ P,T*V02RI\ޣ*{Vswcl41벂(9J+( 0'z &PnHQxY)JC̙"ZFn7u-PnQ(c~FJi4--Xldf$!A| q޴ 7HGGHvv K5 XӰ14gkҭ#AXļ{Z{jdl" iCv]8H칗]X ׿²n"JP hMlExN\6VA`̸41JT R8P$Š46H:ѩ|mM jLru;E#4i4ӖıSÇDnm?gj[Hr\58v?7g# F&'8YS04k@z5J \"1\E:-i$u)]% 9mūdYr9&O}I#dTg$ًm2x+a_oDJ`! >0zFgIKv"vb***;4cl"da<)j#Sh*C PLZ2 oe#("2V`e,4hikf^B~e Ix6BrE7eʕiH }wU5zUUMXy(#pґ)}V4l^@%dj]+;r=Rjga~"҇lUR U_!l%*Bب OlM`f&J4 8`~fHQ!?@sk+q9ڈj|[sۤMk}sq| f;"CA~s$Ggގ{ᅦa:oie: *F 8--_,@FvbD,ўN-&uɶz4/]5aAxV^l0Ԓ2 '=xm?+3V-}QBZ d*V/BID%ROSu,^HlTMa 0p~(47Ci HPJbӳ(-A\U 醠nnZV6Ҥ/"|5v7gC#d5]TTNB,5\cZЄ\**Mm(E2D|k;|oo]ߢ)Ui^*4w]0\n$mLh0E!z-EB:s-++D*yPjmRmqߡY@ wzM\SUtY cҟmq (%bgJ{~X$@ `*.RW_>V$qHZjc A>1e< qW])X\SH[,CfN,l"P5tK9FgQG\+ 6bQ:DŽҒ)\[f|ڀ}A@z5x VgCd'EWQV#3s=$6jnC.@9K;i3P'njmSoF!(I FA/ ]jZ R:O29xyDJϯ Z 3$إlI܇IV #ތڲlގ;8\{#r, vQ:K2 H7"jYib!$" mҾa[aD|!UkZ =q@]WyJƖ\Ĥn a~ӄwLj[]MW:}/$Xz/F |nw ~s˘;Xmu;sq確G"&'XȐ IDAT;$hmlBؓDZ&XVrnTD$f&E*/š&DNѡ |MUBg@R!'硤N,#N: n`h"!cϧ2*1xT%jA$mT:EXԠrBдy9`Z3Eᔓ#Ah:ϢH-1Elrmێpц`i!mvFυ96XSX 7Re`:i8HfBww6zP\ε[ИjȎ 4y )BZT';oLgвGU9EDIY\ u4Q|K$Cƕ}YFSS <+șd#fhmI = r.'#y2ihEX[FTh(29/H(5#0"⠈:D(K% REihoۚ`E4J"9ܼ[`a/KHӃBui#Y@Пԝ"9g#crJԀ v\TVU’ zڒۇfu*QݾKVga-kDl+wsoĘW^h AF#0Sj4Go>VO{ &2MgbHwv ϒs yYLtj!L +_ }8 $G5/\6$ %(DJ^MY(u<RU*(3m ,MN( 62&,YN A]G:F*]0\&5,< DkӃ:fX )K:i=ZPJ:i=2Ԇޏe9S)!J7(NgX΀qr=q{ᅬ&j!2˸A"JFPD %JJaPM`vhr#ɩ-6  Ra@(:(tc'g oڈ\75j0s62/ X e GRT- *h^5#u>N# }>eFmZ (DܝwYՂX *(ZZ 9&@A ̴4Nid9`v(Z(,lMsmL2EĪMf qRw=S%!S)ˢK[E("$sa갓@M$0r-fQӍ.3f8F5Ͷ,E\;Gݚ&]MtūaXXp>kKpav_(]r-ƂAy6({o87Gbɒ8#QZUwߛێ㚜+¥K.l4-s EknG>8G*erHfhkWzর@6Rf^(#n+WJ꟨!O@Q9:KfҐ:;wI;q.(N rzuk 6xNI碾a yDySȋ˲hoQsρ`75. Tc 7DOhč/zn(j$gߵۢkLeEe^[sTe"}N$Kc1|epwiJ8YD#j3"JF瘜(mI%D5={#&^wEAw 7=L#n?|Ve"˞~N4{ fT߻@QGG U&b$$+mW+$Ba@ O@eeeg_3P(8&QG͊PY ,Xܲ3&ι#&Ɖbm/_1SNH85]:7_,bPc|@//i~cn :?ڷN_sf㾙O/@&E9LjXi֤š2Zm|SR" 1?{S۹,JaYUPH\&Y ! q69r((JRjJA Ȥ8ʢK9Ԇ!Ax3jnh 0mhZM1ECh9riȩ<G-kP3~ 4I(\ -#][8HEO)"$D &s>LZAg蚐Ii '.h*$JA7w95o|LۧϑGH\TEjYKv+)ᄓXv{i?hc墏Q@3(PZ 4ej V5%o8 п؜Mo?O%w8(RiDȹ,ʫ8&0򯹭) (GlC$H=f`f3]Fxajx3пWo\5P;F4ռ(" ñ % MIi ;F"%bH\ b4/flh#U@=&Q$iJmUDc H'Aެd(biIQ*/Ex4JDxܹ/_cߍBrr\/ԽO[Dڐ <_Y?QNw;&/72ښqgs:.ϣq\?L>=E2Ɲw߅cuׯb(N6іuߢ;T+@6^tJ!;gpV4چ_,(4I$_Na#jɧ N=dIA4G q;8e1CϹLC->Y-9W7A}1V:2V!B5Pt'$'O09/084! Gpᇋ(psD#A}!J$,((# 3j5DvE. ,3sm`Tx)E'i CC|$hĬC3""JHESx5MNW;o%k6Vp'X.bHQ>lp9.PS̴WzX{0pؘ1ϠԒxֵU.FǦUo7ߦO_ɣ- ENU=DkXk(Xi w>hqM!r]+ #rM,!5,8)FME3N!Eod`c2'ib i㈚ \#2YqLpd53Ѷ8c,sET:޼%ձ!Bʠpr,LClfv]q8ꨣFHi~qLS@ſy g$}Y5/JΗNL;BԬ0mXfX-y=  Aar¯,o2!V/QAwa% 5 OsJ:'q8 [ќ4IP[&GG gNaSH9H./qaay;nTϏv?\ NmDj%ݎ3>bST$e}i=7|Vw^]F$,9N>Gp,"%KQK0 u 9DovعPTn{"?;B[P#/s'&}bN_$x܌0وb¡NjRObA]fP4]&*xMBT)QC=z,Cx8` "OWTv5#0渿ᒉƠ0CHj+춟yN>$\$|N4ZGTg#EAOMGz+Xplp=kPp1IðD5ŝ_ N A]n'&F@AUC0|1|x2lB$ߙſ}y)[[[!<)*Cq(}iJ;YQ ?CQxu!EZ:}:LYn%("P/%]8b|rET (Y6Q,.z@ {Tn 5}x왧ѴxN*' g{L3):ȼ{:d_-Ѵt9sYdG±j$$P۫|i]~/97X v@a>GTsy̎/7rϲ+sCvtedgq:^yU>Q?O]qsI#fY"DH, EJ'TE3@ .ғ}}8 !"!Zڸ@m$ۓheQovVVƘ#E2FZDȚjr4.1i+tσ%%9m`p8̝Xi 2iD [ag/`/\Nh؊5Aq҄˂/i6LW$*TauьII߄U$SM?D+2)HXQ䇞3nۺyH:,v~)^i1l' MM>|8Q7Le`<;K& _.BSj2jQPhcf sϯ.C{D8E$eHn &q2'@Vu=%t᠋spGUS#؆|:KbQ)P 6ϽҔ 1(jd`&{`fkiXJ%u"!/*X U u߽quנ]t\W  Og3 á9oCeI1}t~Mي4lL`K8G#<¢[Hn1je)ID?`p<p-kc,>[PtiΔ"EJ5LScucGt\mA.ֶ&~nTSYۄ.zbwf>?MaAЈtbDZ^HԍF ^*$>ΰߕk!ֆ1R9:r41K1l TMSxL2 qi2/5Y4(i;t {`ScO1v[2zHRBEu]V&ɶː "mhkE6ey }EvaD<á]٠ |>Ee!9rDS#h3o^"p,@WBiDZ-ToN2$Rmx#=OS='x*jGP+6}2)&.n.3 iq|ׯ- c 8'B,Z FinEiEBjԏYoh&GmiE$M rN(ع0+验?kssgOߍX Q&Q 0Lt*L$d֣a)0>l\i-AhJ pFj(.|7M䍢@?ӲXv{@7ݻ&1Ck\O "34")(+[dd.Ū!T_DFГ"i"09_٠H.F8m3.ZD )^{\.D@΃{Gy##8ŵҾrh &,*swgf\hf2, N؉TYUP(SRnm]p#a6µW^A mcau5W"np[h+.\yH!iEx\+!,SYF|9N8i2&upI3$J1%GE˺CjC3w%1{&;L:ͥRUȐbZE`8句I,:Yoʾ2hF |6ix@ii &jRqW@uF9FJ{e#E.(h]GFf&˺*(CNJh3QwWۺ}+ƤUA!Osl:&M]Ǣꗻ"˶F W`C_2R1=c"QOeݕ(HqTcDCE4\x t0Cy}|Є"Iyb 7!coTVIsa '~njH ǧ~3YEj0֜&O8s<cJ״yE':u39,\dI@ J)B$2ly Ȱn.lm+נuE=rm5jh4> ~_QS NPG& bK=bȸ1PQ~ C0X;(f:{jPSTVȿDQMp$~$&.~Hy6?*`z<ߓeu%Bo*~QSj8P O;I[kC/39LZG X u}b"Llގ#tg,t(#Vv᧺c0Yj5D (T dt&Re(@eUen.c}{TgI$GYrPA$ .N@^R,EIAoA˲:NWǨ25(P }$Fyuī*Xf *tY#,Rty>5֍7@\#Φ#*5qR9r("Z>N_c1Rkg5W-f3ӱ8|HQ-u,5c09Mr O01Y<$+b[,OBCaĢQ4Dcuqۢ tEHr21%8X +ǔ!#&'oF!J++1q37駟i-պ4mؼ 45SHu/"}1_XofmfL537vÑ&Ou?4^y厛RQG<m;чob=HYgi"_$9Sky6> ՘ 6mjr^o_w .U/f,f[E_|_ |X< 7Z:_naxxp{v[_≫/?;ξQt[#Y;db莃 =l.p8HQPdpKbP#aaq8xyOAT\AZ(Z'AIiin\6O[o 07\½4SxkCE# nϺw Я#{3pƏzsվ*]A(J~5VBs&+!'م"Fy89q|&;'e`xU;GL|yxaEe_E~Sy.5P{ KŻYxhZL3'=du^mfhy͸k̼CJ*M Po3!WaEp<CÕ\ ¡!|w~1d!V>N L+bzk$-|~n4C6}8f: ༙cO߉|bNGuI'yI^ȶ]H!ш&p PlL #>1ܧ$p}˗|`Z6ԲltTZ ƙ^Ng>>SO/]^ RH/ŋ4Ǡͷ??ק`,O_{HĔ\zx9߸zȾWXSs*]>.ݳ̏}_XiI̮BnSKQshbGBce0n,{_8pC"0tfxjz|5=d;/ `.0a(z$w='kB[9ꫯrsE1(ArMFT}ZS|Yf]'b 3IBcn_p? ?Uh%qa]O8>gG~Y/X+6!5r*Nw `˗{ߊ%_{^o0/^xˎ<UQ*-[ n9z ״0XVMGH\]p˯ub.; ]+ɪ eZMc&ϛ3 [_E?ʉ0I0ONj/%K:vc+z$ XV k8=d8G='H4(E_iӦa Ð,Ftk3Ͱm~4gk?a"-|j\Af¼yhdRMNt%O2s ;6"QNHxNF$?uyzX&a,B0lqYo۲%$FGcF\zg2;|p//QKߒ0o;gVC%WƢCO?'o܂{)Cwb廜w|>9Nע_v,ޡhǪ+) lGêVi!&:o,]U,5UknvW7Ƹ!xW:>,vygLj'>‹/c?Lجkw<6-Og~Ae-LcIJ D B`"s 7>HGNNEpbϵ3%_?D%2 $"v}[-a}#Ï4Z,\>UeT U[ǬEjD %z῰Zm?NR/J@P|Ou'3_=ta C&~)=q[wCҢ˘Y;;<{yH&9 H2 昣qs]V?| x f̘$y]8#`te $_٧ а3xqif!Fk'AijJ8cF!a Iia(F4U ^<8&LpG7\YB :OCoO< ,dOb:\m dy܏:Qmv!gGky#= a)>ANX[UP0Æ&"RCbGF[/]0 [My q hȉhScpÜ,v;`tRmJtDBQ <ӦNcfn0INqSՒ(*|> #SΧ8 x'Qݣ ֈ bɲfQxCK!G.M !QZ(]X\i,I\֡aY̲]A 5)bdms4 J ._loZ\{d'eTJ~KgG iw9i+33&;pg?uh|4N-*6k{?g_EGqA |8%#чI N|.= o|޺$p:]xʽPgA{p=q>#B,2'N}ԎnishfiQ"wZ+$1=ɖ\`ˆ&\ށnC%WS䩷qXU <7ߑ)e~\P j#tc7 ]AyOwZDr0L|&f_ď\.|B 1V (86MEsлwx;1Y ߀pzqph/\6ņݏ/n۴&w)5oT5wX(APĩX2TCpC:Z'cp0v.Eƹ(ׯ9CTƔGh 't"Ι+l2͞xڈ[$bb@-(,Ҋځq,*qtDCQcv[硆 tJc,/pJV13=Qa/ƆғVsstA IlX_LҪbH8cAY^-vQ=NF=+mQ]Gmo{x#IcsXiHSfc;xjfI Ԅe)H*"(.Q:3?`ɗX,*9*_t:aEEY@t#dtLSD% U-4t/ZL{tS ׳E2rv(&~ns4jiμC6DZOpĻ[l >~ o=yv5oyb'ɺ<2m`$q'I"i:ܒ?M`@+r"Y(\⛋ȾV43Ir"IdÈ$O$ةveG׍?A֠G;!>kkk_ƺk(|.?(܈3O#O5-Bf|8y }?W}:R+#n$otϓ5εDj(Ӆ0cZZY&dF098s`J,*?aL>LMd,>^Ͼ"&x/@Q'naRĄkG@Tu_d!^ =G*LjP]duQ]nOS 9ik옻Y׬B}{gq PO[!2 \cy wBڝ@9~ pJ+q≋R8< qBswkn ']/8?t 6z 0.'7! sxm׵+w5c=i8ƍ5Zg^Rn!m((QX*Tn5Wgn 'K {iy0ZV`ECd%~PmZH*=jP|#o,G8$Ux4(!fm#<_̟\;mރBIe\^Ǭ+!+b.о03!ء.b᠘ #7NpT#qɇC}I@Ϙc[1bl4M3k,\rHyVY$ kPGEu5"0CgR-h``H;!l`rKD 1*EF%ch4*қ, ,,˶ٝnys‡b@`3/}ٹswy[~E۞Xm9!Q`4 D1NpH%Vm j![ ^4h1$ƥX I(E@('0.~DZuӕG^YĎ{ '* ?k)?F|o?HQV8 4FTEMc(OPcN}YLFdq$0 Ш7pLʾ$cr0DZ@FFU,5^ΐMB4Wq[#fyY"$ h!7MbNhIXEtg> 4>R^}ι(&y3cߣ{x[|6)#<.L(8i41y27•YQĸ{B%BU\},F8AJzֲ&X bfM~>z i;-1^8qc QR\ 8ڏAc e2&/[x8 i.%ƥXAsV\iRBtVH׿π lR dE2ZOy(U$mS-4=,1=t\!Jĩ,-]+p#Z؈~yHz 9Nd}ۂ]kmLyR1JlV AZ󒄪L6ɗTIR2G Q8BYGSo2&DY6XEDKx՟^Y.G$ƧR*K2~<:֬dm@8(1Wc]O5/''NrԨטKm3mUb&1ݟ(.}OH#%^ȇt lp5- b}{iRWQAmHjb) ^ׯV*a17O}z@o}oIށ~Ȧ; 3xa7QP|(A9EX%xܬ!$NJy <>'nՍ$8v(\BQbO IDAT2UtH Tli^T鑱YUlS 8ĝ='FqWNVɑSc}:_JKC=:jgQABVrE@f+O:< < tY^:=v:YE1|_eY9ޙ 1D2|"m$U9Mc?9<,҂r|hWhTz߇XL -"xN+ ƦFdo|SkKT4$i1J"u'`l: P!$N :3~5ELK|]&D4|#5baQʎ-R<60N> '4BK?<@:FOg{-b{L~ W3^:L>B?bc=%ya͎lsE'1oET*ƥXAta&Þ{W\iҼ߄ $80[{72.SȡnYkV!It"@9aHl*TLtHJ$-ۃe ep3HdRlsyWpji١:ۜ %IAY>8F Mrj&ctLT;;:xh.VJǶ1. SWTy4wA<&ߌ_L%ƅ6܇l&#d-RW H>x8ܾ*lë{жZ?rs]6`S~X[Mu9LuU-A+u!-HؘibElP“l (ub)~[>͏24n8QN Mlv-sm,XgAuOJf Ndd|ضm?}Og#W,Ȫہb 6~%Y%95!뾇mK&鰥C;G5ԆŏT?~yؼCAs\4QPR xRYcPql;P^BW[N/dPm+HCE Q_<7Mm3UQb 2KQܚ=ѿ!2mmB,`b\T:Jdf݃Ai…W ,(1aSN:ibi"6I柒U:8`Z";.j[i܊^^[HUѲZYDG1жw5L !ZttX^!1\HV<ދv 8NN=;t jjBOhƭ/%aYfŠ =1J"ZJdN|>bq3T=lc:40\6-'kwgnb"OHPɇqriK'4- Ⱥ, '.J.>,_f f.s(t3وD+Zpi:tQDat RP)UY9%Ŷ<LMc0DU ײzjdt_Vd!1&QJ"V!0? Ud]E!&kqH qCLWAwŪ 9,0ʩΡ\l,-S*"EL.~g3|aPH&4mXDHAU0?1XJ/Ԧ9MYla?6n[l I$ xPeYZp*'⵶etB1ki R!Bjhl.cǗ]WލARջ5Ϛ VyoGcz#E'MFmt~A=ejy~jgp5Bv4Ů*9Ʉѳxa/khN !*5lg3vl_<<&s?!-t;LdU={t=;Z*;q{UEWwb J t | 7l.ό"8 ]4CJ|w ^_1fox/N?Z?##7m4]g&T? |vwRXݷ _۶cO|o8CY")榖pE$;eÍr9H SSLrIWD #x6B]CS!TEc`Ԟ @"\?+ "* E #ap-Ȫ FRT!eķ%6E c Ȑ1ez6b@OyLqeaFm WĿ F4/|k}.Ĉ~k^ lõ/{b|K$A B+:Ϥr,Uġ5#Ŏ\0o6uBe>Q4&XN!&qSjY lA, A3H0Zc׶Y iS&C0I 8NW# ։̕k…nF!Edyzj=nB؋/1^?/p"~_=8 *GyoyPiq/œͣhb(**2x5Id\a$:@n~e7;c#Vih'L~^XM:l;UYep& %ǀcժ*Ð$^F'Q6^@8~/Jd1!ڌ.+4i%(vi MU1A,} l(åtI4͙^Arb*HӘr}!1EQm6 KB6;O oFT5twt,'ލw_8*Co _ߏ.r4Axg%,<<4 x{ȕN4l 6Z'ry=NcbHR 2TQkGӚR𨢔ugtZ+׭~29ڹ Z$B\HV u;ː#4h&?!-@t; nINCnvmێvE6!-94GGѳl|Q0SI$J,nۇ|o'Zq4Z,bAHMR0;1&E]˗ؙ}(wb8p_,6˿7{9.ϱyx#xecܳ>m`;3k0ڨVQOLs[r9EHZn#|?G&^ 釞_C$LSC64HTP "?5A M ~g1SHi^N:oWa"c0J\^B$C~%af!t:^:g43$NtŽZR.~"H>F~aӏ`Nîz4Xa1jwc ;p;hϢ}<wbjzSpw͗,f6ϯ(dA`ɱ+W򌈘 sSS}|jO+{z|RIXpՓsU5r&FJ('HqA|uEV.DʋV]1Mp %KG엳zZs%*D*2TJ b>rDz4/ev -dH&$⽤WYTUTLLLe9 ߗ ֬%<D<h'T:RWZi+_/e&*ϧ۾j'"qju }?j!BjHj{Og0<'ˏy? Fni JbVvK{/ E#ZZح*Ἆ(PZN [6"fU!z{)hCYabt|ϯ`JETy\qxl}NN4GG<>I>3[gHAm Nr2LjlE1*ŇCncQ˩pNk] FFY:z=T-[k;Xb28g/&УJ,Z..qض,"R!GCQdy8fr=߃+c$BbJeh[O\}};t.Wq%'AV󫺗0àcXaUGD1oC:x|BĮ}lK^Jr3sa@š @M 0XV2HkGꭿ5 E x_Z"CdZ|JDV0`+a8U%t*TMVUAGŬ$i slW~'0?;UlA\ E`c^U7}ub&B{Q-'>׉t-Ţ :Oz E;жQ3PMh&I}yJ8G/`>%E$N <$ xrbz,ggfRY!M`YEBy{={N2 8!+\AFB?Ⱦ 9%؄b5{&!!PdǢ}n^?_G_of\={ٱqtN}oZ~.~>Ӿ =reb|7WϛID^ tt SUϠ ~c/ ^ +^Tq͗~w]r[_H~~);c^HR "d*W9T1Q%DFYaOx M?%?FV%MHwx+C+A~CZ߳҆%- XYZ!Џq4G\LXy61ӲDD!FG s-ˇ1=9fԄ-hG,l&kt.E 65~9 ͨ8UHĎ^1\s^}o ͷݷ /xo]쮥| Ey.ftː ogfV_y7B_VF?a\2 v)N% QfsZ- K$dQKE#,N$^~s:hi"Hܢҍ'hV:I |Tǜ0K{!Ɉr=Vjq5:d ︘þQCF55rU S3029\-dKUqڑfVG-gϏD_ۿ}c֑ 53膌 ty@Ot@EY0R;J(s 049ׁiUоq׾+C /yQLaDTVU[3Lvf* 23y5#c ~Pd=''173*׃0t"$TRI BH.%MYVPJUB"o#&!a6>Qj2?e6V6`wfL?|>{YOQD)FNp*;@EUDn}y CX*!1ٳ&ReHzKYxF60ݣ = ;R[yd):<yNm3UلJH@4GVv8FD3JZDFh\-zIYxА7h/04^z&ѱ1*M 6i&2 I B_w"Ib}WK?U2^8ƥxnծdN~‰=%̌Lr6 ZBn+Dz;;CsLjRU3q b%$ʣ"PB 1!ё7QAD4V xds8.prxO3d(! ,hZU3 b( d@Nb'suT*a?%U7 j%Ě5}Dx tىq($w pX{z(cAfV/0 EgI{)H IDATy'q23"*[9U j.LSt0!DL C6e&hY@ %n֊D%"QMEyl[(6Cd a5_!$[U -tqbL#YSG0P*@-`f:;!d)fvQb63%I 녒XCɓ8 ֦M(GZSdD P4ʕnℳ^ 㤳xG-Uz◝K K"~썠9dD?2^<݂ۨg[d/j1rMpn T56{fv` Sej{~%AE*PO%& %_ (f`J] f! VAǜ :h0K}xCa \ַ&'sm*O!U$fP2)r[uDcT$Dn ZĀ%cXMRg3~$HqM7~|QJH  "#*(p mDNCF wn`rt jl? >X Xj5z,G%4u[~}p)1." !z̍&OA,##/Y4qhDPе!L%Bh!;pv}ah2ffp͗PR@["<$fZ!3)7*&:DY2!fXc! l]Po^UaG.6uت3iM0E3ѷdݫat CV:0g F= Oxؒf9ib!#69Be91qAiTE"#C6(Ielݱ oTgCϺWVȮ}P/%ƥXr .ֆ 7DTU:$@u`I+PJ\%NIw'5-bU@(1\(.s^ =j7A!kDYZjUFQa&`+g$7;Ӆj G\Gk_y!&spH)!t^d5t%Ȃ U"hG t]B$@ɽ/Лb$s)OLH( #5ar!2D |:|| &z}X,! qJmyhYX{;Ҳb6!#%9݀oYMs$2Jصф,GL:M+7"@Sq_)X؈)A N'tH`ZH Hz#+!w,pEIA"NaP$p éMB#*eOEsc4!%O@Ek Ձ;A[.-_bc4"jӁPIĺ'iI\%/)u1Jι`5زwk FH(ItΕx!H2D&q jZUҎi VEiO(G^FdXc>?P%okʟ=|cci$(< gHGH3u PhdMܸV~/$ţ)Sހ'bYf z,edAreq<`F:_F-Qur%v QK2a-P4M45jS ?﫳{gs 8m.Hl)RfOPBq Xnl2ٙ,^ix % B & xhOpɀl&S-o 3ӬH\}lD, RB4YHU׵Ĩ*& f0q|v/b3-☠$-֪aՆcN(vp[ pXԚ!j` md<41OV"5.L؇]-t5m1C"Z+#lm08ft#7WJKD,@DY뀆܉V.I&>}{0{'[n= (q=B^f76y:<8FvTu>ORb\E"2fMۅ*Ș{P-W! (R21F$m$-RIrMQ6|YhpZJo׀*(De3LBMX%Jp=Z a&2&ph5[|,܊"c"۳bjaǎ{۝xo \9GezaM=GF SHuHDԶHtaVw+S Ze\ '~Rb\,"CeAWj]Vb,)\ѩN31k +E-iȓ\DZ| ׳!#f3̈l QPL[$Vek2\ijY!Vj d5^s6QBcͪbQu'?zZ d:j5,hfҪII$dT8:Npp(- @#(iB b$!R2bå1(:j?T/@_qa3d!Vo*FW ^m# (W50uwb3$S|߼uzO;1H[!}<}PڏrCgWF`h͎!tCddL|-[JKBQdd8[|*tb.Qe[h5-*&iŤDGc?3xD!)bFID§C'Au6d U M˰lx#@gP#1'Dbd&+5xA4 m)D+bY6b6?tڌ156 !׻:b_QF>5z,] %ą; ^GF,IF+>5+ qg/۔hZk w^@<_*h.._X$1jX¥#1TJF9=Ty)2,~3s<'0O B=j "FP Z$9P,L@fT;fH8Ih$Q5*ޙ+XPj" 2Дװk_ s3^mw܌k6<܃5'cjDc8猣p[!w+`d FS'NChoeuoԓٜ UcBp1hi7?RQ%QB !ktdU,TtmYdXbvb вs;Q S{-[Ptm8 Me` ە)Bc"G hy2=~n߆A5\!&O8x#MAb -D )bq-Ȕ>n JDQ֛\Byvu G}#Z L+|CFS3`1˙"|P(I- x1ERn@KD" k[der&j3sC05/y8V?yM悗#7 _a;m ZR'?<'Z}b^قϗ`,0<Ša; 90i4f [T׆,Oz1B'~h=C- .CcUCh503UP؉[ Y (>ľep+MlZ cfCYpc8cpŒt8u Ak5 6yv ucB&Ȯ? x [-t1‹FHpѻo^s%̴/Y!W| {{NŚбuHUoncS,~u7XT~jw4[NQݩ_᪯>SעXߺvDG~{e_M:\u?'(Qjd=s'? !8҉UĆLR 1''٘K[^_VIA偿D 26Bϙ@xPHAjY;W?,ff܂ h,B,FaR}V˂mY($O@gX=hbdz]t: 'Z][FPޫވ>}#9ώ*  RBIӠD} '"5 [dMP՘,g)#iאffIGqXMvN/@We#;p&W\h> 8z&Z"/ AzlTGwbކ:Y8uSmމʾG Bp8}gQ;Ph{y/ah%DL=qsMVaתdHc [eHpjEe4݅ɻna#!ޠ/_AcWc[/%nu>w\fM݉} o#̅뿊OlTQ͸mK'Pg>r wD /9R챓{/\ o^Z6$ ug z)Q`$vdG],9^LVӆԄň&'XIV%)F 3Th SC-|m] iD ۧ AQSTV9b箭>4@ kTI)h| pJ4u˂ "2Uĺ d;"onIܵ-蜵W 95<. O5`8>ZI^1yxfB8\|kWKx>>_!{ͯ>N[p&|)Wb0^L| NȾq`X'ϾW0QtGyl/y1CW m\q&wSn5ޯ)P@/V/xURjCy% &>EBOe+PEAk-QGÛF, *t<".:r ץ PM# \ȪbG7$Yx7[B᛼}0>>@R3p5xvf<%7WL IDATCǜFax18zC% s p#,Y'Mg?:X CGGREj"^|eYPf,Xp:B%V51/W1:\Ŭ]{ οfwza.mY} عM@4x%y|sQPP_FsMs݄=/1;?+⶿ |y;xk_706ߢf*nt>' ,m]j^h! I1/7t]Ll>+|2LYٜ-+Yv6$/ -Y'V#&.{li\Q5]`Tph@22jOA@|nzz@*r^i8K2A$$-y2sІv,s5QZ/ݺeض %`_Bf2F{Gvݏb/}|S\ţB ׇ[wqpǃ%#U Գ q}^3.({O"d4B%E&+Tl"5q+165 ) 6*TzDaCr؆3O–";4z tE/{%]/'f4 H6KZM2Z   `&PBiG#4swz{{Zgpc{~:s4U]UֽKp NCpq`O͝buy kpv4]yaxi P ͻOCݻ GBap3Kpp[oet<^ɷ:s"~+kڃ{U8W:"amt:^.<p q]C: #8qN/zPAN{8ojUT:f1ʼn? 5Z*̊mkJ,v}lC8vH͚+m+Bx²Md G DE]8͐&Mdm͖S(tJmTc",`j&(0@52y$sElu]p(!4@}P0\C8|={)v?Xհ܋1?qN_`vVz1gh{5VrZ-MV j;HV֮2 8:vv>n{h| cfv (T_bkV<4RmJ"Qa`G ꤊչ04g=w1V~wm3Rx1;U7@;u{npd?vm<KKn9i"c(i!L@a~aͰ`+B/t̷hH@UL?C8nc-a׮ Oi<'{cj'}xK/( x>g_K/}e⎏xsN+Bw}* j8Ž .{n?SYg=S&XO_aYva9] zw"I7K2A8IPW1ǰ]KBޙ;bha9*kLjQ"JC#I!e7DHcIHQ=XZMFQ^Հ̔*vJ $d47iܫ)FJ= H}Q{?rf>hﭣ䨙 :1谣`hAۨ:;#L5'_tT>e_bp#0 ^2]A'ʗ ?3⏮}H=/b/p~dbD?$TKo>f_&yv` R(9FP'udV^u9j"ݨp)*=WsC%L8_G8JwJPHUhǩC7*(23. TTGb1F11D;qB3( [  @"?:+#r;kjB&1[`Pk.f;#!t]y p>ұƭY\sM47o=.3OC(İcwG*S0 ހz f$# ! ||ضeE!.tXs|ypwl m1C_F˘Wiq N8]ؾc 8olG-~vx o+tS0I^&[!j;jc5Gfa羆UoKkxc.o&1p󷾃];~)v_3|]GFꂗw1m|,[~/~~ _7x a1~,v_L')DssGH@BqI&泣A0ZVH (Bv%>FUFq4Ҵt$"Z$%!8FFHE!Kpd5Q,̡!;cq Y:u#(FB5ڱ[-V' p"pA2فڃ9\Wv;ؔ+wbëh[ }Dܬψ˓vλ5sSfoae=|e.o>މqR ! >@a 熫t0ZG2Al}~{8`*6G1 .3cq ؀? nǰtǕWkk_M[ȵIFja~߆{08UT7@z^s%һ)rG`aÕ{)aR? /};pw>te<?<56v >Xl\B4m[.F~1xR-?]ŷ?maǩ سǾ[svZMl$C dd@ҹqgH@ó= T۲ZCbZm ^!\B $cn`V(i$OIȄCL4N'tu1CUrKjH׳XF^8\4LV$+Y$N?e:I1S2 =c|,{uzh ;H݉coo.9aOnwQul޲a>s*Y8i#g\+VMfPIzw1:x/꛶=F0%C@̦ >nVa"Q fUQG1wi_8:vlV\yw]<[fZ&6>N޽91h611 /Cdc7ΠZ ^-:^C=W;4b!hWp}|dzpT{3/O0ܨ㇟+|ᱻg\_n}i xޙuOqOx|w~~+p^i7Ec徛qsr1ν:ܵFq7Gȧ1рa w.&mDa<.MŵAY־?FFBIER*^<]F5 TSI1e$>GZ0DcH,j| h ip,NZkb~?d@E:N 8ݰe! HeGcɖ b\C-t - YXy Ӆz xYoõ.X Tg0 `8-$NEqEbfLbc0m;AR;/݌,AIԁB ?N.r&66+X{nE{>8X]x=<,cw| nnj9UL4g6nz̴l qU@%ԊI Fb%,{+aOA vhq$0FfTg2}K4#D"ބ|s1)x-7h kፈ>zA4hOc׎@ 5Oqآaii c3. `M[0ѿYYZǻ{pqέ3ly♏zHBzp/F^vo 9W@p7-@7+e\n 魏pW"ۿ_O{3񶏿< uǟ^yxϹ/ƛ&j/O:1x3:t"҂_Lܱx.(9?~[08rDL\ I$]:kMJۖ?zBדuaC]L#gr ߳,ɏ,?TJ BYmht= ,!H r/ь8^d'=MCFI>xQ,!4P NNԐ*I]v5 (ع}'UMkmQp)gcUsdAw}[~jpξ{@aSn cc|x)@GtktAk"7 dAr(XEKaqnhՊ w|&&=j?88tu;Ow/"mo`'iBE> 770VFhnہp=HmT,MMa:q6_t9wJu؋iDёP zنÈcp ߌ˞W菆 #;k0 nszNNYvJ/x} 9sbM\_rTֿZm|_:)wAy9~}'c77D%;E_N|8:EZ;!y"]bLbNYx G_STĶg$szV0= MSPRH,2)l5e"qd5G^ђL`(Ug>\S? C2g)y""tWà?: i?mb©d|,]!\G~oG_ :f|{n [N9MsJo*.P=n0}\[L XӬ@x 2p%cQ*6,gS|vٸ{(I&LxLk氎;[w `TtT5x`vwhl<Ye p1u). wo"1dfݴBblה c P8rz.Ac5[%J5JUĕUX+LYc^Ńi2ӽF½,֓5@ #̀,d0 6u3ޠz-w1 ɤ .3 #Ϛͺ}*Áh W)ْ5+`(8Gаn8|? -ދp]w114hYAg ?P, "*e(E愃a"w)?o6n54 ŕx<(/˰4?' 5ؓ-aouGQbQfo>vu3O kd 1a*vt ̯OIPo;0Z{:6o;ϡ>je +!zp5V*Rx(}Yt2szteq jk x湋$Q§alhj[fњH*S$4wSruvmfqci?k7Q6ak Ǥ&C ,}1ͨvAeVO$2Ě E3``M54c`&C0mTGOL5zpZ^^maD2{oBumP" zcu~YU*X uܿzÎ kevmobma(CM1[FT2wTt1;5t>ۺM [1&'-Gϑv2$i,㜶//c9%oUhHJ]I6QkxB w,Kv_tTvq,ڞban!ٰ_XSG9ն# Bڶ%r\t.?JLSfQ5U;$"$ԙjZvqNƢx]JTSsju:V%D^E$uҵ:2#GoTXnP 15`",rSd nl=~̈́SyQVۂ]qB j&4JWרa8J>z [Ö[W0d´CELNNCs-X%1w7&jdLx#kQmXsuS`GbcF^lwu 8#}=ZPd1>EnmKFFᰏ]= S[S_TFaYH@=XQ ;agVknC-›*vvN#zFpL tPSj5La!&,u$\tIq,MRLB:\ 0NjgbaxwwI:URXH.|x?AIM٨JHűM dj&BvW̒;/ClD!U39uGW)np!H]yFáŘ ed.ҴW6ʊ$0Ϗ~2'D!ɯdz8E*!Rl@(B|ŕLg{W̉(q 0jаظ˶KŌ H&9*0d>\qIȿS"fgfhU3&'na䳣ҥp'Zsƶ$B'Ǔo\`|FU}ܖDWxr W(Jl( |o`4FszQ0UjK4َ6#A}zj`=^0ʠpIgumU< oFRj /qcfvVk+uDqI&I\ڮvC(<&<,D2#X39X_FBv*L >:tⴣ*03AP3$,8%1LNt&G|4O3l1>5qñ]~}_@)ͰMK4TR]L$:6]j*.1zGa>|y.(DHt]IWRJ 8+2ofkL2!ZD_Ia 4LBZH(FL[piіC ũ2"u&rœقͻO-FՆd] xLN6P P3+hw{*=Gāfut`B9RsGڰEi°ʴRоLBvlA0뺞H #1q9hZ ]-P' 59ڐ\ٚ*Qsb {?IYxGE&F,@aYHyi"sQp^]ZAŭqojhlʺ%yPY&R"ԴT:XYE(̿.HgKWXwOÍAOyvtN~n!i ŔFv #@2+My!HE%b%E.>vf&t%5)q@Bv]ŽDmO d<=E3fKqܳҙ;Er51&ɃwzΙu?F^:FLҒ8S΍ICqMBL*am׀ tŘFmp1;B-!h$E,>y$o$[U$Gķ.=\O܌s+21.V-)n;T(r?H0>,\SSRdeF%] pٝс'S#& ҉?Twg7Ro{cx ^;v&^24֏C?q/|=@?f>.!Liq+qSMEAKpǞ_z:?6>s݇٣9:8.C!b,r#tg٨cq0߽SPFIY1!ajS PfQR&ٝbZp+\l?U`s$Q\+hK)'!б< c* <m\O^B`C ehY9BbHM`7%+Kz2M;[99,]! S1Q%Qv![Ѣ4]w*bIYl$"U#W ЮbF􃞙T< lۉRJI1ZN%GhW#ny :$Y)_[Ϲfm6ȥVZ .F)fA釩LDhw)_O<;>߬J ;F.z>o*zիp8F0\8qŃ{v &h(7 1RcQh6X]]rv,*R\wcEӴ % 4ˀmy赇}X*^/3agJ5ݺJ6hp$vlTwY .|眄ʏ}/Zğ|W̺haE ,~!i,.*=vNQVװu4dHs֠HZ``FL{$mXxqFCS#EvqiZ alѨԹh ,F̲N1,lH"$Jt\V-"M^2-сX9QbCHTXz )n-T gQźjR eK8t^pOF(.,SK} iޚϹ(1(jR\ fBǬl$,4+'׫j^sjN?y~i(ןr2(OPٱ^Y[{sdħ.}+isٗ=s[_o\$;Zh Ɠ89 / <ɳ>/Wn>{?_Gy,p/Y=tGIìDKl2ș#]c/=[ӳSBߺu3_.Qqh<@ێRGWorłii?J# `RI}VC,/: l]@l Ǥ~;tVm,s2r,%GޔXO0Htw*)Jb٧%Z&ʈڢME3QSeQ, SR`^\ug DTI 44pqxB*jc4;0*n(cQ$Ľ&?OtJ(Ȯ[+YVv{xXHc'}-x[j8yrg7*60Y)$˘_H7¨n| @Xwux?'|e7|x#s/q_0~9'~'Yx_?+|O?ei ۨ6+ tP`6 G\KfQ*xYwv|XL)GdȟG,В)h}>,]@ z ZXRY!qIPOQwi"kztyoUwEd^|x7½p5q{ u 0GH$m*v IDATeMKݹ&ZU4j>rIkq0' ./^^[ ^}4B8ja(ŏ1ia#|;MvͺfEVRSO%kD]!]T)T]VjtrY0&SKǬG wКb)91rm&zË֡Ѭc쯫eⲠ6="#T*kIguw/ȔcK9ޖÒ!^4T+Ʀ3pbd3XyY_ ^seGY/8߸ ~x%;a}~G/x ?]ZDlUGDG2NḔD& Ր}mUmTk޽ {%l*5Il_'L#ITLybp®z+dU T0&nL_O?R%?V24Cf"ݖFǩJ-7aS1P7u:ذip bh#1{C)0T-Qdٺvl<$q8h,h3݊PTlU8=Qwv_^&;9,ZP cJ2!UWTG^YJ5+"tZM(Q~[sqIEWM@Gikf&nFf)4vH$kœ{$OF)0cGDQ\N; cxG#B,ߑ㾲 *`C_4< | oss\o[u ?= {1B_a48q[`}^`ΝXY[zmBe1&-!yw:ؼeCIxw愠k+a4s->4- -Zgv8!JGz*SxpP!ȔP@ZQV@4!ҴP95\'XzZ-RJ"eف&K?9р[Nt(& < sBknwdN)%**L)IF kfňO#iRdGFh7Iz >JSSZٹt&J-JΣX.!oK[rD) t9~%9,&lUyO"L=|ͷϺI(^x/b|k㒋߈QӨ>~p{nwex"~&?ƻ&ފG[xseOc;!߰Av~G8 rjE>xܱFhskcJāZiBΝ1fp8ZL= N8:z5xr~S:Xn1yHQ٨yp#!6eB%l舂TL²-T+UYRB%A2DC>!Z %-+4A EHڙX!WCJpLn *d}Q8 0ٚ@SSc!swW%1ia#m,d,]X[.$7̺8H6 TUǠӕ"BR{z>&;r Y|U# xe7RҼ/+RQHKCvij\^`1] Δ(C @|} Ӗ` At! ?B5z'׶K/!4kâ{DtϟK]pQޏ؈v۷wǥhlL(!+O?<PUw瞛C $$OED$## 8*R3RNz,߽1U.uU1 wnŮ]rP;r3_'10+3ff4@QxLPV]Iln-dI(c!c5s:&3PnEɫc3CZ( -d^JhuG q%Z0h.&TāXCPBsz.ׅ?dD =8ncEvDMU\2hT1Rx>RCBM[[=)RLdSf<Ё*BM^M 3{ܠ" IܐM7َL0?DJ ǯw)@4.Qâڝ+s`"rD:$( )q(^p.¨y|bȾk9taD`hpZOț ;p{!x;ދ;E43H&$YHHt=X"m';vt’B& ~n2!O6R$~qnQ]'sVe<2Fhl iuݽVkrC?"ux˯)bs+ٳ[jTejF2q/1 ja0P,ȽN3]ͭƧރi%NBa}X`vN[B>Fݬ|F|Ӂ867(JRQư bG qGmO:/f1c_QQ.հ5FL U3!B>f*-1 #t8\$fsS7BVj>UG*I _TxcO(0"rXBuc_*"TĸŢ2 }'1?c2#(0m2’MG6d56Eި45޴ZuT% '1̋ҹxz!FyRʎk A!y񛺙GrM2)Tpp A%O$o|b4N5Nn F${@,n"*-O|؜BIlܒ݊%0 SDU&sHXn[h0;L@vct=?CKIќk si&yH,0庂oyZFUD}xucUp4^ υt*p\WǾņ(>*^?/ / bvP8o+=\{EƱ]3Bh&&jk:9;f˕Ԫ&6#쬍 U$S C?..Ι3+r&L2Wz]J(Q߹Yi+:yǒT ޝ)p$ۑ.T,KQ"5sL:8vO$ʼn.C2G1I efYPR8Rѕn"źT*Qȋ*bL dw3Ͳ-xv/"/dBau*@ZiD/eUe9yE.o1f@II)7Ri#Es =~(>{XB\}*\<Q0|U]Z^(2DF8RŖjT4{nm4M#ћ4eUL%Nvux ]8o/c*@Vp9)NMsxysXoبMQOXǩ ?QUL!aa4qqj ]E;/5u5q$XΦ^o z>ZUJ&W_u5 =D2ձF{j-}p%cY憏pQױzVѻPo0W]7pJ& r6έc}k"!Y(Cvʘ=dέkvIh;WrY*   "AY .^4 \"]ffPx8J-P,Qu)^n 2ΉZqRk6U%ĕ5(Dj RPtMVQadq&ZfEI5z{!*% ZCB}t 8yfQbĞWbmp2B9?O8rӆ041LQtXY=-' '@w4|(-U"7\-ŎgR3+e*J#i.UXFVfm=45tztkI \H7xbЏP)w'#q5'fGk*y҆.5%ZI0ڞH)qY) ¥cUEH 2q/-wD`q66\1Xet9qg`3ޘRe/>X %3qk'$Vo4 QF%qmx.1Ƿ)z2R144U@Y"@:,R8^0SLcr {h IF8H-FZERPǠ7Fu1]:$%5dY_d*#-=#X_ Nt'۪LD ߸˨<#o85#)ʥxa<!Y&2F!8mghǍ;1@Uq^n?2H2B2DrDiE0R蔐h׺*VOЙ ¡'QFǓx=9譥h;fĹ37*g63WSo {:9 0M=9%%EKrS[%,)$vr|kZ2Z˝%Q{;eTP1ۉg\1^<on u >B"$C z<o ؖE{^Aw{[L"x"84iup,32&C_qv-aΞZAHFCu)Û[^0kH230M1yPS&H Cؽr1{]CQaoq P'LN{I %=IK G26 ŕȬq Pt(F T` ,)JB\a8#`!3-),Ern/h-0}/$pd *3;:lוs 6TXO$$[>cߌ[1C17WjpK ڋ8xZ "IJ7U)j&pJ0*rJH2Q#t0DKCt3;Ns:\ IDATXRvPmDvRU <Y:uV$?  |+'f1?v_{؆8!զ{D4RyF~%bϽkh;bɸOG#}',Zp0^<֡ 7#bn1 ö#ӀGI6S`[ڇ`p `KTJ,=\{b0?_ljcw7s_%ղَP60 [g oJ9{f\>(c5%Ms`7ِy7I޵'bRW 4vh6B4v,\f* tŏf4p2tBf[o?*;hH]"8rCPں!'7|GDRonĬ4j- 8jnJӎԖt8+pX?v|K_,cB-QЍٽJ~Ђ' mAs"f;̈)}nMЊo:],uR™U;^o d$& mQ`~`pN\Ge#(Y2|H.9PeZ(Kga(&+1Vғ*FjU GY|[FR@S~`2}TIHQjà)\W_ud :uke㸣&9'd,jHJfҙ*8)lAI1I%E7r5mEqF/S@"94 ǒ#XeޖDwA ;L骧p%1([L=>-F5ôc1=}r_mg>|}(WwJ  CUvϜ LAA2ۦ j uyl\?n5 ˮ0O+B) T>Ey~dMYEsᝯr4V6{c6dNtf˯؅$ 4,s5qp zЕm\s'ix/ÕWG\׍w.w#,-L*.>.%B;oc~iIڳs4 03cPb|Xb~"v_S\yd/.9Aw,` dFVݜ-.dw .!b 3 lomkHL%=lLKFM5-T> n7r=1gM[|'"s>""#YBKUKTs;8J+*' mE2-ʘ)Ìm4j/ 7c/O(B9qqjdL}&:FHÝN.:j~Nŝ@H)fb G'W iN uDZfsx\Pgs{hkɓMzS$@1CfB&"pfgʨBm\.4+a~_^>4t$(J-hgp7㪫` Pp1mϷP,QA[338N"j \8d7_gļ±8ʦ\zGg)ǹ7 :sZ`0vaQg)MFtB++8vlC~h+MM7͜|ޗ*4v[,$BсnbK\vt,"g~a߸.Q :,vH~S}8#h @L\1 t[ٳpp%BnRq:مD"{O]nVfyJb L\[mAbKH:)M/vu&*N31ۚ)TU vjm٫avXkTk뢠Y( Gu1lRP_ǾK%gzfهO|sHu*U 7}ƶX;/zuHLq5z JRFeG0-rm~{~#X}dw:vОZp]DNc"DG6\A@48)DY *h-Hڝ2丘 |x 6@ j-$s(2$igȂZ4Rj#!Ep;nj☣=QQb!Th,NQڳ F %Xh   3Q+6q ];V=vD&#m 2*t,ҠrpD"l9#x S:Ef铯i_@1೿3x+⩖--Ʊn?u3տ2їwx>ouOW1xOx]7?uxk?t~yV_01Ow\ZŁC,.:(15P)GÎ2iXcq GnwE= 8u!H!0 ‹ʏյE}ϭ8szZ>Z((KXIm%mTlˋd(4!d6nU %13`@\6UZfm h45ô-9߅m>߇4$TWP& T1L1u$4 vHr(XO*E^ީMۏ'"Qaan>2z̸aQy VQoh,YSUBA 5Lw8NSGZCJmnn$pʺcLD1C %5t"ѭ |1ɠ`i =x7a>~|gf0$u b{g7cI|G_u}V6|}s,`c}'w 83ܶxݍ4%|MO?l]g5\<;ɓ(Uh4Yneh{MT+2Q ŝ"2DȜ՛**U.]8 ^Aǿ1aZ]4+]w0XܡmXYI@&TL17xC.aSpB7ym&jdKسZgJBbw54;:- %z H8Lj@jJ۰C;"mCZFƣ(r>7xˇ~ ?ԃ!AY^̨}-?V?$~_^)y7 } ϝ?iObtǩ^iO׮݄g=x߄?ǃs3os?[6_~=/B랥%<я>1T(ZXjfFQ*1 2Ū |lgaj9_c> A odwJ,<_2$)S+ϿBT^[W/ :_x~]zyQ4s7^8 W><ٟ3ّƟ?P?wz'߄+z<pOC~6ILJ~ iYF7}t 0C_oL-<=׹;T],TY^Wq{>ψr oc='j ꃝzQ͎ C\y>Z\Džbey!wvѲѕ"V~ < dT|cOn`s'j\]w : ~/X{g'T {mxxM;g0yez{+GkUfғ~x3w{20$=e rRY:BZ+cw[$($/Ey0UK E8|dN=F: 2]Pߛ4Kb$_ff; ۛ\1ꏠ+y!TJ*,ցY-!1 6@֔H/Ĥ2-  -R(c?J`Q S:FSBXTE 7tUnJUx@rƩn-$cyϟ0$L6m1R=SpibϢi#Q(2^#Eo0@ݾj`ffQy) tPܡ[+m'*5ϸQ;V͑ )з;bs=x7Exңԧ~_>{O;^kˋx?n0)| e_Ka {( _a|g }ԇrp3g/=ᴏ3G1XU9l3;î1y_gzXCr+(UK؀AGY>3`H FQ#9kDn0t -hHڲw#2YA4| 7taòFh5p6it$ubv؅`b4H2Ǒh|>lt56 rom  pks([+07qOH5MP)e\MXD,`0LgKVQ.פh.^ ͎PTm QeV5Km:zEՒPZ.˷f(bsj5iWV6l-u0G`,r,18p"1b]M@&$|HZbQg8dWTHGhbU.^H*)ѿ?_4G?iOx 7~=~7bVrJx?I?_w%7_]|y4nx vk;?{3eq/٩ǽVvӻ> _6G/:A>|r|+= ysP׿:d:Yލ0-(W֨u.Mԇe( vlkx mIiDkacS]-&(MVUAFvH5Ehp]͙" a 4eB )S b!YW58BSx@M72`0Yb8R}^*4<}o8V*À%qC`8rP-ZCսGw}]Oa~Uh|S0B0`i.48bL&vo $WRqؗn1IddR9|'RN/lrx>x3^pc P*(SG7ǰ|J:=c|zxߍuQ]߅[ ?r8 oZ-ޔ i1#Ku j8p`Abhp`s+@XIRq`,vjt9o%ѣ632a/Y|覷O/h20CO9BNɲ"xbG=c^w5ؑm&Gލox~gH_{|T<뵔| {`kqv~0 ?I⥗^g=YCUjf19ڸ}( ހS,c<4Ai$!jOZcOFK:>)" Ɓ$ *NCj{۾8Lf4Tԝ٦iM6#؅zA Z 5nV%nM 88"CZgٳkVfw0B('ahBN!u{t&pXMsQ4"xX(ϣd@ +.KIz"$ GW`!ac2T,y!e X%q V, hnA`FŹST*! ḏbvcs<2ZTke'#0s[7&N6ʃnKXq߰a_b|bo. IDAT-j7v7}_kqP0%8txW V4U/XEӤب75x0^@X庌S+|IT0c(n:!"70u(*oba&ѭ+0 :Y /%`mk[!ƹFa Eu T1e:N|^p-oxQo)"]$' 6j='a< fœZ] {D U$Τ@-Ďluz2JujՒPV [ڪ@+5`&.?,PeT]B:v6qaJFB5 H&bYB9G1< VKfJWl,1FmDXLriI^Hn9q[ Cqm>?~㱯Z %|ZQ5f,>>X$0)ٰZފwūoz)u7)זv:H >y$N*C?/Eqח=M'85W= ;hvW^xӗBp ##qZ&(d1NVihFT*5K`;Zp`c²UA yy%>.ލf,/h^ܿ9/܊I< ï)rx'{c$ ݄?x~/*|6^0Jk~VbVN-W ya|o=Ԫy޳އ?v"]0'&o+o+={ӟ~=@➽u[C-VQ,7w]E*'F& DwPhJcnي#/ڶA3$moB&'s(O՛Lċ2f|Fr10PlSkX駲=o},zOW W\'~QGxs[xރ]'&~{g\-*>?[=xλ_(AJ^Y׾~3NĨ_Cɟ|08raUfx= o}Zܾz?񛕖812aYFQ]nA=m,dYے .A =Iw2M5Q5z0"BL`6  ڡBWʋ8/9Oǡ\rJIh+yWC 0(^peK:Bq)◞~_|S<'߁U(׸.śx]?r&,bL1 $Yq q;4!S/N_J K6 t;IDbȎM1ьOlUb,%c)S"* >x ƭ߉Y)Vb8ݮc8z&1ƓqG&)cJ)RAx՚Hb23X_Ї TTђ7]v SC4uΔL & *YL.=l!16T򦡘8|WnqKv=E{~6}$lLML2ѱgsҋhkM0TfEC)"` $ $h;Y;qG\&-v香h§),9*<ȕh8k4"Lz½3 )I&Ĩ-e8_~/ #t:eDq_lz>%649JOдw\>$iϗ$>T:ꂺ2A{j햻ha 4B G8BbODG hԅ2?Naq_M@ &8'Hn'{W5<5Si^ij>aIz o`,Uclg_mflN464e *2!'H+)S{7 NfSb6Uj v)v*8}\X#ۤ 4@&x)4??Ӏ $n1$:lr648)L\QO"*,¬iLÅ}Bw= h_,vh ]g4\=!aa"#ǧvϰ G;?bjcO&R,Rr8˜e\s<_(qiCp XiZxc+lTJUUFA (kUMISDTKD=%1)OPBd>(aqc67v`tk⎓h!'<&t"yNoT;:{`&4ECQ"PV(iBq⺃N5@ ;f"̓XVh0F!0mrMc!ƫ)|ߋT@%EcôSUUZe&0Lj#9NLtz\j\,v"f-O%n{(#$PYEcG1z$'p*"8GVr^(&".| f 4k6Z5W7.%3?@˜Nlzq۩[Rg:Z4U7f8J:5,wiV"b,5%Ln a81R:qV/(6|:XYr 'Uh+9E88˖u#$vp-;2ݰbdfĘ")H1/ǹuxTT"><0s-- =7ж5sJ2 X"2aڵU/PUUG% r+RA"#7ԼnUw{z6N x+Mpqt."tQ]/ zCXv 3b.GQ%bKމ\x5Bf6r<;N—h-$q Ѭ";,vhṟ-̋gzLsWrq4cXj8"{z-'ҁ:ʤu[1 nvf%uY9<  1PZ$].< +M=5n˂H n"QnSwa34CaXqP )\z!\q: rW^a`e &&z F%%u$\0.AfGsQVbS.@i6€`1PBq1wGhҜj_ Z "Nz˸>N&C"l 4ꞖD 5{'7MmE!DTv2#%Kd ::Dce2 Spe<;m42-Ma˙ݫFxXd\H;"$AQs2\ӛ[8tt7ݸCYddi(laq3iKFIh:Ήp.=a*5qRDhG20a YZ1 fںLFꮹ}1QL`S,.h5F1p1'8v\ʛMSݙ3eY\6&uKJܺ@{J0݆-Cu 4C%J)Ö3t.nY.(oq !7bӢ,$P^ i!Q %0Z9Ot₍lf@;M+eOQ,X_s`e^@匳aؘ:]XXx±iuƱQ8nꙝ#Jc\~ ǰ?|$y\sYuhKbTL>q18 /0'\BXڲl#=0 g11fTC6F-ƿHj1X0cWuD vCIѴ;NQູ2qEIѶ¸[\o,a80E&u'`:H ̳R``Va4R"Abtd7lY\m6Ů]y#) {#Ǘ5BvFpkX^ڣڒee[19NZsv̯Bu+0`4ٯCY<4!r6 bd\񮆑byS )'By xqd˫Ob0ހ.B ь0PZȧ.64h6]L#mIg>O*R;`_",G8q4ͶUh$m*;z;h4*ť^2]L}w{; Ȓ:^ola0l2S 0W3"^VQqh02z%6JCSh/i!L8V0R<"TQoOG(uܪY}O#b ӧç>Q% SX1FQ LE~,u& \Sv#5{?W}1c@xK|loCLe77s]bo-JI7?YxMG[*ř+{5>&+'vsŨ)gp >k׾w%ߋWcƻ.N}/~|oŅdyM"JG\-$3$$ե2@n8=wMcy ҪS6gS=vɸlJy`3ۻ2iuA>ww25aLJ )Ster4e!|1u=2za8dQ*$pC9/mSa̔ '-ި6L"H^cu [c@FjA et Jyѡ'c}¢T+{I/3v8ۢGT fAda$.K $ 2-]0d)|֨yʮv<Aݗtt ẾwsxF 4.,7GSZػH 󡗠lqj&X.yI F)pNa}Q'ExNXF7xNXkG<o)R~hkm|gq;;)c~f u'x=~~Ozԣko(u7Lpo-}k!GԌJ@x2SsLTD_vIpk܀-tπVQ'Yni PQA=ɜhyZv,|Օ"LDq1t6+nAP0\K0tVbFԖ ~pdV"defɘ"eH ݉X YC+2 ,^zQ^Fy{w'/$ő~*,t2ϔ|IN\OL^,-ͬd\? m};r{HiwWS#c@q҉ȯ\Ztz pHSg _:( 8bi%b3[ȘIs._\xGk{ }cx?.J8׎=.ay~''x :q#{㺝g'ފ_w|}_i]~os =sx3 z3c}o7ߌ[M\x__m_'c]/`A|[OK|˺h"FHg!qN5,]hJ'np w863[z]rf毱[=[#Q˗ڴrm̂%b2t, FC>zXx'7-vbƛoGbVbL#k&Qzd8׭;EӼ!K+m1 zXx"Yɭn~Ivz2 Z갓NP3ki;D"A2 UY<ή錼*jt ݦOY"ʏ'cQG~?rurz`DIkv<ͰުRUNŅ&>Z*e/]z|?y=o3_7P>'㢇~lx{!|׺yFO_6k_Gxq$]}* I|-C0 {/xpoC^)| }<`pgj wqI<M7=֙!&-9+*F53i9; T!2HB:P0M1D-$.qJL6CWd*g 5/8:}̢+X[mfpz>Uv \~ZOm5vR;JN@}E ٹrQ!{ 'Sub=gאKa΍w؅ GJQ;M6qS^dd0W blyGCKA*}͂8+?5Nm۫MK$O[9u.AUa #%%!j("6~9;4gQshևh6%Y^s+{b1 \l!n/. |gѸSqc+#Z?Zԋp}>;S݇p#~ymx/>^ۯ{mէ/>u5=x}['} g9>+`?;pk_'\o=9%+}Lo砰a7Ad\BS S⒄x<[MбAYՆ6rC&(bPQbaqIi\9X]ma:#$YhZF r͙ ȳвt[iSnױuuuI 4a!Xu gMvGUVr-F*jM+*2-4Th62G u45Od wWPtz-n+Zoy Gh5t_,*FYySc<(EYZ.|>@Q6+!/@Da vP\IbDuRJإ.A5T.TM>9M "J+S:Sύ2^-<[x> >wözAg_{ױQg]A}/:k>/c-UCUzuxna3о.cùwjq|>ꪫ89#7 5l/Վ $ht%CvdOlYkhgif.Q\4¦ˤԻ]:LD{(ս b8V݅i4E^,"lLH#u^_"lKŏpƙ (kF5m:ɂi |{ hÖ LS9 L3D4g&$1 ٤ G`>?Ӹ$Ps0B_·?xكq%~>}pK/|!>W\rnnln^p! w }$o.E8k_p%~_w_]Ky?w>DPn?x[jo_~ A,/~1^җ}? U`>*x7UR.ڈ#!1l^I}oSzx5w]k;y zֳvy 8Xl-e8p`M~IX{⨲gڒr M#4+I!'ٳi.[S`4%XL! h;*tK*tU{zyD'~^EڲҜE;&qd  9\E\ }mqFMNhK/'4QoQ!5ފ +M@͡hR5ѵ: M}49LrS֕҇CPtnvLgBbP2 |<J)J Gn4h6r[[PAd_J&\"='̪%OuqK=g1[7QٝG[)x>7^\]=S7:֗G/8q#qyB o_AW9g|6>gwZG~'Wo|6}x;{^OVS<>*\[La,q$G<tuW|Fŋ/O{Ӿb1ҵeOiWs${ {3.FIcdE:Hꄧ"G]Rq]b+1<ı˴mR&=%L.z<!rBv}O F()9h4̪Lf0oјvղʘBJ8ukhPO򈑞^?${*Kw w1fݥ&tZqB-ޒ&fL\< smur4bp+JmXLS 5ʤ f#uP+]hJ DS\֧1ѱH\q'/1ecHgu1n !;xfz߲̮ -3'>7bv[Q ܧqp|Y`xjk[{{╿\.^O|'_:R0뉸7YFc?PP  }%a^%%~^z!,RQ\T pկ_~ gjv---݅XIWi!6Z=N +kb:˄%q3l<]c jAqT*miˌ8,Nd˓F5c2ܴ9L, Ck6+OGnYH#`Em̱&1e6;_C[B]ѧmv=|nɅ͚Ffv|~ն49&"..wdTK]%rs,t[2`1[Y^ؼPSΑ>ve8p`CXY:mj95f,WWK4,:@3cZ|s4o{}̟ᚧg޾ ?xo+ NqӮ5g<{_+U8D|icF_ywCu|ׅ~x+_~ ~G]v]ڠn4B-hu3>]خNhJ/$rTxna!9z<u%z<#J 33Ցr@\̙|Wlhw(ԙ̡*z^ z_&\G|\TawULY+,=O@Bԇx]g RNbGiaE&%!xAvJlKͩ2jع -sS9:$y$4¶uρ8tpQ^[ÙMt }YGcF.*y1u$ч{݊9t8rCU..ݔPu2^)_C-3CF7LY߳ԥm:oɦۉM ;܀?x.c{4}kp{Cbȑ?'^bg/gW0}O_߄׼nE&:y C-̯^?ųg{^?܄opIG#<q#.BRgG.2rDERZlݝ3㹊c{ c"EZcQ80HV7#re͔,Γ'ɓ먇-YQh,(vc(VBUB[VZ:I,j~ i']$_Fcj' OrhGZ𢳾~Zݖ`<i:V ”pJQr6׵T;!6H"{Tge -rqpWpp[ҒXY 8$WH;e>h'C<# h]=% 5a8vgy[N\Cק#5\ʓnw|7UGo Jtҷuȃ&5R҂[j~OcU?+^/HQ$[_;xu{'ѿs<OmYǯ=Ο]~<mX9^jcKxxǓ:^ IDATOynq~z(]xO5x/.w3KX/\7㗟??S.t:t;.0M5 gm`н楺I*, :B߹x\?# 0.e!q.=ӛD //j|k\JaHV'xI^GȬ#i$툸mٮNAΊ,fq[jzHpVdI6윩ccMSlzµjԭ6\mxàXfiY١u2u+_.Kn}mUKn)9pyyA!ljnExb7L&>q5|!0M{zLG?E&͈n6$hOfjIZ![O9J9Jӑkc}}vuloo㥯72&X QXZ'.= )ccKq<\l^KXX\6N>!|IǮ>ٍz6V3R嵃p봴,ːŤp 3VAKUlq*\QT8n>J\0 2ƕť G-ܤ.X.8p^ tUSGJy %!yi>WbE鞺ȑ5/4++ʹwOZ״" @7ЖI~|?#DRm]a |~\u$LCRg6t v[Xn QqN_r2ZPD2p;6>Q9b3L"@ EzHdHܜ-",J܋MUpZ-r/ǹt#u:<ᴻ0K!x/%7eCFSUv;=~?4zi2Qaww$FG!ʅ.ʬ67doM;gR8Zzε)F|~oN2Uಁˇ 'tnVGՏ툫 :i@&HKv_0h,Q -~ eD! *6AQJLap*5 \LQy2ҥHŏ`r!ҡ?#$sk1.\l>g+yѣtr<L>Nf)cL/A4>7D@*)}YnL~a?Ω(L4æx=@[1߮YQ OO r18`0"g!]ѵ%lmG(?A](-٢q&M,EiUJ idsfs9WEXUl)ԅ2Umc.3l"- W&X\tFy2(BE*(#8~B!40G_38>Ƹ[ <۠%q<ҊLL:28M#U~ILXAz}Q))^iRV䕌Pm&X]j7ҧmYj|2AXVVp]rKf#0N 'R]] [nt8j|#n+Sׅ,L+R !MeYT5jO*0 Z?ݗ=BC`3&tbVHwL͠ G0QvrG 5ҏF)HH cޏ}; mv}9&o$M\,rY no\KD.e)콏3ɞ#^HvyIR/9ud  &HuL[[RS(72„ń pGFcdfz^NHb1䆕IT>v7Ijǘ@@]ؠ?VA+r) ؀ŖR@>_>i\xPiA-.7Q<.;v.8_cGj BSm!zy?4m4\S"c6>"Bc4Q8hqE%gQ"^$;(gH E#-dj~PwBexa>{OIuܾY\Yѱe{8aYT.8e:H#wD6 NP wPy!Uz~Bo|?NX7 qNx&qEn/HP21lWF_Kn1I.66J,%,zldC޳1HӖ_D.wH n{(("Ѽ;e-WufA X'%X2sj];2,rq۵dqRHA|̴1l,, 4)ei04@p 'fL28r󢡭|(-kUΊ  A 8;`M=}+R7;||}\w^LؕTEZ68B V79,I2>1n -ͪY4Q 2vQ~Y+׬XL)͘]P>@I;V<~a?Ω#C\a$87}ąB3e{cpe!z\Ɗ* _-!$/SD̍'O` b5 xv,DfGCsO*%HEn&ǮH$+0rʑ#9eh,K|>XGt,, ]mgRDiAdkkY2pTQgl2iOz^DjU0yQ FBϕRщ{Xdz~t&JއI4*@P$G -K)v ݇S9p>d` PQΥŦ |5G3=tKw-]x<h595tk W¸Se,`aBeETJ%yaNszr~h4^+ v36 ͆:IV X]Y FvTfϒjn4տZW%=l/#e)jaCDyT!!3,(:}ºHW^r+h>@TEșSGw/2jsml"ϴDnq,%䝝x帼#B68 x*‚ wՕ|P]VM,uTLYNt^;wM^8,ijgӅֵPJk ԩr?έ#'s;]I\n:;>+\RRaq,p &XϭtKFҔƅ Vx0rn=P]"{HngB 30E0/-a?{r 8;H[ fTX GCQu$C&O'7 uÖ Wɡ6WBյ9Bќ⢊5MZzTLB)%1R@Vx0]Hx!Jm'1bM**Ls4aXGs؂lfmߔ@=wm5WP2@;ɰuLz%gfvM&?bbf\:YQmpKI\rY192w]QW՜ʊ*ILx~CXOm\Z e͑1l[ uث]dA-Q:I-%rTB,􁅺J45~ϔ\bGZvvz**3L.ZP\(Rՙ{ [E弿#Gc{{KF -aTJ#|֬2wJ/LY Id?-3ZVddר4fQ%:PeNxȮɳ䕮2 Q"חZ5*t\N͢1&^d$+fEE zeq ! ut:;*Swܜ 0t+ˑ% ҕgų'#<&d2T&^M4".>Z"RᶙoǼ -~iaU*Q -ǪovE38-n??4cd/H2Mz46`&2Pƥ m8VACA 5PʧA"EA7lѥ 1 Feh+2ӂMiAyLCRu2,]oH&fOWIAD|\ (.tSȁ]53Yؐr4"FYC+~f?-[ax =[~5?7?=<ؿH7B7cW.;zv]8ZMʂ$fNݮqžK7PYiSm%x2:LR>Oo"IF8VW>Ï"b2DZBe5BbVnω*z\,.uyH /<ɴzSaP#9bt|1 z^?⿲pDnwMʒ.fU*D";$&EP!!+IFGXhNv0L1"*M!==4}ɉɓx뮻^xsa?:GXUk3714M'јϴlR@$kv}q,̑#66zrT|-~ĂUT>rat)Mp$Hg97veE0]Ef;6M=S:gQO *4f6S`^rU%^Ȩvkk ֺz씏?x(r.pN|RqmW߳{'x\,,51vOF?-︟/}Ӄ#?uܼ}n IDAT?o|kM_q%/W^}c#vI2KH汤[K]o#)*hKKahOŰyb,ܲ\bä"ӘLG-hŜRոbɮ%'^tj {# 21H,ZTŞöTiaY~a¬ 1 '8z."SBtT"1tq m㒩Z8X9N\DYvʛɋ=aB rYّe|H MŢU ;#Q;]ц?؆Kj/"Tr]k 2lfVe ;+RdU|{da7Ԁ:Jil,[1{J %;G9+{.U#Tu`x3 .kp-7ϿuOo~ƒ{o,N=~nW~6?B<y{~c#x<UW].9Γ2UB=DwX`Gt̓nП`2I|C[0YynS4<7 UgX-b|4ދJ0e-FRt!2KؼܰhVc{NqOyrJ]52M-I  kX\^`Xg?c=FfQ|*|Wdt+Y:,m0a,$i#Ku ©7\foxzEq,]ETn[\EY81uBrO J,J#u@ "M(< d,BUd\=j 1l"+*3`e垉%UOIsNđk~ wrcn4a"qdƥ9c48vKM~{ b͞jMD~BoJēOW)%9\$!IOH*?t E2E2u##~p&"(d|;븗?:9{}Yzy9s~?7"X5 _KOU]uug'xtMvaC+Yj"EN8\LDPLl2خ6p Ӑ Xev_h9xܬLf{>G32nu[QX[8Qo!6WC4[.j$%7a{.Jl$LpJs&*.bLא +r<$D,&?1qv&*=B 4A$Ls Xʈ@0E6zJnO.hb0iMMCd;P2DCbˠa7bHb_l,8Ȉ##v̄C< ]qY@D-HjdJ}RuF-j,&~C; ! |Q98>䓱;+_ ։R3j鍣e*P`iXh%v '" M5!LLhX%VRYt4x 4mЊ +k9 +ARE1aY~qsdVfC&3fACRZFsdΐF$wSV>'iV),-1D~cqH#2X%CN'h%K.(_S2n\#~M`G)/E]$9ΣbM'sbE >1)!YkmΞ90QgIq 7āflΈHqѳŕDheq&433˜^1OYTҖ*9P*2R,G:0vӃG%P8V0)z׫@y>Mn;DjHH2ZDNlP1,Q7)JelQKA&6]ט%5DF/B ѹ-i5QD: ^&ёTvB٩T)-z DeFL4J5(!77/Ҡ(Qo(F?$'7LmޡL屬xJI2LwHB躰[-_ךeܞڔ(-t V=_F$>l56g̘)IqU?>4Su}Ǹ)A5s]x±w,['!o䓍b5h"y晸0Z3<^ES04dUIҫ0h %5;vpiVH<)/N`Ol"]z& qcϕN 3p,D?V?C#Ҧ 򉐳u K Lv>xgb٠T=OvR `V Gm:&&VQѕL砂;Wwb$rT":r,'y]f>`hPU:upNǨˈ'ur&FpidAD9Ѕ2~jY$#VC{˨˿#rXպ-[AL1@+¸os2%ckU,}7}-e 6\-]瞋 qh.%noƋx̙3q]w~ &CO [;r%p y$'Q*UpX݆04t=&eʉ됗R7GN|͖˛O`wH'GE#CWSn\+I $"bR@&d<;WLu;k&&{r@Wc!@J#-f Mzb9@Of?TkqG4 HAUu&Qlb84uE]G&wxQ) lhBTά+Fl!v'2hV6l-uIttz)U?[d'. |ͼ/eitʧZi=zNZHSDe#cn4َІbM ;_fjr&Qbt| Ϋ߲wV˾\6Uo{:(T|tXcL6uL)#mm/T AL!}GG %Hʪr,ʾˉ{zn!=g }}ݕF٘: D8NbugIvІcʔxT7y xDUW;%WPcѓI)YCgy㯯GOO/fe/ eQ̚\6ٳg Jlr&fv=ehs홊Jن(HQ*HVNDVL(Q3/,}AP6zXINcdxDy2s-bPQhL/$}eBs3k@t*.0 O`tl%2(teϛBã1ͥShV[6ڮ =rmT|87$Y>f688qCG_)ˇ53S188yIRd%ŕ"SqA'ɮh! Cs@?c@׻>ӿ=_2fş뎞heBd5r`L+=Θ\'D\FPTH1C y';;LFN"|x@T"gJZ<4fgVelX|9VF3,RPϫ, ?Qu' u6VPʚL2Lʾ@UgmtWWB*r\޸v5]L[fgU/V"`EQnZ%mҋNEKKw vL$: Ų"GJ/ϸe HypuLK+JdSRWEu̙tF.\Oĸ֡8qOn?٘pe.l# 4&@3L*%#ym2P{(0uڀx⤒;ĒLSɎe,&p\*Z+KsR&FԶɓ xd.I -\Jno2Y- 3d ӧOJ| ;+V,ySQUDwpJO ffK&AqJ "\'$ɚI5"9*P JKX8b$$&cjRmB 'nL&Z7GGBBT*AL֠[MXC@!J9V9D.\MmNhZriD$~2 T%Rk E1J:*tw /c"AĞ 2nlɩ\k"}OWBm)r֖}04P Jj8토 Y(9ߏzR +B_T\|H5v5$9[A#vRfԝlreR2/ҥ)YnJk'bsϖ!ndfr(/ TCo^ׄU("d[@s`Tk#Ȥr%o&J6DZ&O/N{Z Si#LH H0mDWhIYKbJ`ȋd65>NbG@>nפ˱M}rqIqӕZ6Mn*!7y[ Lg F|A:ml1* IVYQsLɤd*T-BU(&SԹ9{hPO"5uAĕm&}m <– SJGMC7[R*0ދzҖsX*y,a tx2/$n&W4aJ[YiIjU}Ԫb S{ӤwJI*Z1Ŧ"A8#AVJG@հQV WXA,aH5HPS\l}WmfK9&G P뤕RfXC,gMo[cx+KHd`11!mcC\7,АI`hSr6 &.l [8zT. V\9 aJ h8~\dGT]yd-=ddX61 SiC 8x)OEB(&&Ѩ!)qӃ"aNynd2yAx ^$ʈs$]r.IHgE23G$SR`颎ڲb7^!K9dIȐCڏHHƓ ! 4'C|potڲ޶DPnt;:zz{Dϒ'VYrCf7T)xhSrM: =VEH3*y<X)ƵG%E%a0Gx/Xa5M EH柞ݑg D]јӂ۔N<+aC),sl&J"4'!)Dv2YAlu#͆.s=y2I܍IIKemHRL)f'd&-,+F ᜛8TM8?*P>>/m ]IPkzZb*]\N+Uz4NDi;[.J]ܗ]b}o(KIT SDtȽn<d,hVͬ$.qWҢVk5IJT g;ڲm4mQ9X%oQ (o BIJLn`u|Pª]:) ǁ(N5D-r4hVHNǖ-V(-D1z;:[xKEwL[C u%&ka\Jx 1l4 IDAT!yq}:cgIY/HrՔ*Nߕ٬0hf_}m K^̟4kն|눉EW$'"!`ӺtrH%cB!*H+Tn Epheժ-=9|J>e:MDZEWwTrMFT 7eshGajI=/$,Z?M(֦D\+A1>._ ʆVLdukM޻Ī\ \F FE Zv!/L2XeRPoLhk!S(B7ah:BvF1hTkPuՒd٪7Mg^g}<4z\v 58FGrb7ۨդ"[QI1]TwH!_}^e$bIꆦەJJEXGy_Y.V-I! Zi(ն']D(7NѬ K1l&t#ghrTRR}\a+KC/R~dIv^,5ێL6ِ7CR5/(uY7Y]3eEJU r Е9-w)4aCf7+[Uid9odRh>*Ft9N>ְܐnĎskBYrC&a$tL* +C1A.m wDݶTɸ$㪣F<(&WE>OETJC *tbO oVȘOLᶉPu ٚ3[n,r2s@Kp)Rj:]W"1CF#DJ*ZJPZt4jL0\Mu+؟r]PIqUHa<~LjvT6ILV2& ɳI3T2hے9/.tu!{nZ~8G1),%eYR)%(&U;}t]1[ᦿ\+#I1?2$?ׅl(X;=$ciC, (LIiE 9 LR 3)2(iK:A N!j?4JuWv$%EPPG*iv 7Yt* 9bRxVE=Y,[:&\EE>,pʢ-$owax4Y 60n!Sxcxt=r\ $/roX5"T=r;A4&a&q17Dܐω賬ܖm~Lu,C!g,͚ axR$# ǑϦuQLh1jQHF\cxUmN"JtRl7Gŋ /N0 V|ƪrCDY/c֌)Z24Q&b`[=& }Sl6zKf ]*H5̘ևVc\)MH2.57Qk%hP%_YIsNY) hJIIV4mś=$ 0] 4SzJoc#ӕ< דF+$ 񺘧r$lE zi cMCs/; i~$(X JOwpx|UJ"Nso6kV]$9Zui%I#63Asޜɪ'N&G=KŠmqIS!]X:RlCŤ Xp1.#2) pkeU٥YgTFZR{':8<* :9Be ZR-s ݖclt qC$&횬uuefU*J M'nVx-t(-*aQ]R#q.Ȟ.9鹝!;1 LLJH$1(Vf)ҔଡTU2`%I*=dӺ,F&"M$)%T)6(,TĠ6pf8jZDSiؔ6+↠J[FdҶ۪%6C#lV]MF_QFRph6Y{4uHM"9n N)VS1b81xq  ,g~ "R~+Ɠ DPm״Z҂&(h*G+I1b)>).*AU'lxRqEZ,6 p,Hl+d%C_ l(Uf:w[ PxmN ZE;٬IUǪB:(1bQfDN5]`5\E@6aJERђd熟ڥRA(K<J,iWD4jA7PIrmt#Z/LDZV" hm5:\:0_DB$)cQ<1sIϓƱt5](4ZX)[ &C1!֚" tĹ_Nt۷Ehv>[nVqCx(sy3gdSJpbr&F˰_bٿ4[_D]H>j+aJtl8]!id~Vz3Xdǰ~ءZyL۵@*%FUՍ棫;XdLr0]>7`YTui1%GVZ HTRx$/ah#-aXH p9ف柿fv㪽,,V‡/,h6&(g V4:+QyX]nT+5c/Y*11 B~glp"ɗ܏NX\r\6}hHJ[ XVFU1,ߍ-]O;~<[}_;v/n=_/}GU18#V O<6h DG*%hH'2wfrժc.!%<#VvhEX\}3- ah&  B]*bvDWKe!J0+C7`[0t4!XdDڿE8Iuä7Cg%GtEWC|lz$TRU\㜑p\K%t. %e`DĖ3YvJ݂"Y!k 166,DzyD+ -TZԩSC-V4)CZ-V(:ӝʀih5C$@Y40 %72X9 H, itGlgl LEɸQ耨/1Aduˣ֡g|.DPnjdHoM' +PJMt/@,m%I38SѼTaL vy"ar;/#?QҮ0nuq³05JդRv$QrkR$^6LtZ(VY$‹\L_U'4D41m<3F]oR#~ 1\3U VV{ҫ~Ǣ[_0>M)JoR̘1z*{oA^k+/aWXLFTSVu<+ ȌZZIRrs!bXxNS )ESfaUjǓzW 玬X _O03ƋT%ʮ"|SO(VǨ='JO l7-%{b݊UnOxoө_ï8tEi}> ̙y͒)Xl ӸHdžI\h!Cxn+GwmV[?)\#!ztL6▆z%⧉dJt6lgn~alHIJ{ƓO'b UvYf4Fe[/P(Z.&lanƤ$𠅦2( :@kh^ha tVobq:e%R%JM'.tc"7F/D BnRܖh 8)\n*=7Eʍ&vbV 䙦෫"_ƪc&kD,Sx -&u"c* Jy:kX=]]b]T5 bK-L.DW ,q f {՜CfӜ):HqRXQABl(2Q*QoVENm$F\k?#x7}|i3>~s5n'%7#X5n1֏h%|M[¨m%K7ݓA7.C*!L(RC&C__?Fa%t4T8Hɸ5dF$g1ڂ&FGeG &H"vCZLV,#-q1RijXU1b(մlHz"J+e JZ]4w%Dtvl.x߄JL`F>Q6bD8H92+b)PtzA@ ;hy0lduLՖ/(-z{ʖgr]lpߋ.cr]ŠVDwqcU{Oz  RI9Diok َ Fٲk1eU~@j]&0D1%;BgP 4'>m)`i6HM6N\,X oG p@alLɕ2\=gcu")?֓O>vFGG!)ʊ'p>J)5KX,P":`:=futw[1 r4'e钅5s:\O#]ՐYs9egg_:n ȡ- kt lFfɑx-b~[N6 %1:2n17#N* ɘ$Q& ;L> 39th,L6754 TiQ`VV=Ѭg bbiW3H.\SD42ȀM6xBh6TFCloPЀ LH=]~K66㠌H֕fJE>3k![cY yrg*zǀLv/rGy2Cl!'t:I($ y_ZYI"C9>ntM2/K>NwFkMmmSnme7+8rH)䲈+e>EBfZܖp7M% Oi$d̐J E:^Tж=XO ;E:VRED.ځL 3aC>,0E!ХtF!DB:m:,GaV@& [xM/Ig&ߔkK'duX]@en:Dݰe,䑙玩Qw#I\%ߖMtw,y,:A  nqT$OVD txcjP}5V;84b&t&IPwE b mj.A,[ ˖-pՃWrzE} աDn{n<5B!%٬)y4#BHmVR.]y,]hkX2bVH Hk_APC*XpleE6![C MWDb ny43@]iK1#8U+M$H\o2YB]~ s1Sle7:in02\fbAP 3ebE MmԙlF^;E(Nq(̅"s@nb lU2sFNJťQJ%깆ZcX%irb |?Xa<4eI}̢> RI2E[Vb 0xOp૟MeDpa쌹C+Ŵi^@ǜGjR6Q5QlVZ~ĆHɎaݨl8GtQ!uE j8IʜQtZ@M Et@ɧ IDATZ6V.s8kMN`ކKe(M\Fƚx0#zEQ>78 Ǭb +dG8CU (L)R^)&\tA둚.H5exЈެb %GvǎAf'gLJevA7҄K4:" =."ɉ"E(}O5˩S7SY4j#LfE CvIbϤMY)byJQsDjjcZF2C[lYZP>z)f 9WķvID~vz最O HLx-(x#($HQDcwdH6(bbD1(bBD1(bBD1(bBD1(bBD1(bBD1(bBJ`Dt\Ʋ&EohDcQDńcQDńcQDńcQDńcQDńcQDń1zݾw!ܿw? {QFw<ܺ|.u6v3Ma? 8r<\^ W{uǤm6; -+p^ݏ&pĄ='>3o6g[9fE^/???ęJ X\z=+x䦿"G^Nj)o9 wGj* ,>0wϿ t1?m^6$\=,&pﷁ'!B\I"w\1v jчo> b^v4|xGy߁W\m3.>UMXs?v<~/bܚ{pZ8f&^Ó9om]9C.j'U߀Km2Gm>_M_K)`N' "Pyw7ecFu`ˀgFbGµ1s_|ܻp{MԞYC3ArQvCXe-%__?m:`'Ff?sa(_Lѝx%A_`ɾ#)/ۃc?+z ~w#WI+69ܞ}?u+WKpMDoB,G 3?*[;-?t<]ᤗXϧ⟿~UӚٳ5xGނw[0?օ"WBkuLh0c~ X<ưyحWpq[ᔶE19\z#`,سoN{GƎ=3ǀ-F&oh<>p%}6S;I-MWt;mҤ8oy<xK? 1> |g6p֥ܗ?FX2I8W[IQ°{PxJ,|iӇuXou4ᢇ!? v)Ve%xnYǯΚ X̓/6HZٮa?W}{]!\9xjRR ȵIA:o\\v!Զa35ޕ?_+.8`v29:9kgt}xYs2Xםpv?;`LCa퇮u-DSa~9:!w}t,^gWb嗟AgqMw9ؽ/ʌkL4`ˁp4p<{pc{C `{ f W{mhykr'Gb |x,?Oݶ91,w_Wrw)n;/w\=psƼ^!A; ~k/As D|Es-qn_ w, pұ`وb_Sh;}?@/yΝܾÿpξտ(^s*O%B{~ V{ edԜ:Q^HsS$:>_y(>QAO~u>|3ӾM^g [xǝ4#{|8}s4p۹X/N3eM!𧧀灇_m~6py8=O7\ o}F:}Y\reH#/<۝~s9;| `Jm4~70c)ӢZb%T8`6wf9kSˀlIF󖽑'b?ZC!'_&}*Fl!z0XM@n7¦QvKų v9(|4úG.16]FW~xh<~pMs ZZ^a*rFdu1Nƈo㔣O/`u8.m-P@kS|{|(i} lZ|PQCf#q&&ṟA6귰VLČh9Ƥ_x_^ $4߃o66EophFL%ŷUDĦ(" %(" %(" %(" %(" %(" !tQo!(+ct- ͈b"(Qb"(Qb"(Qb"(Qb"(Qb"(.1/cӰC V.Tk ^2_Wu'?,_wnx9vO}>ܺW:5Œֿn,?<ܻl(^]~qx6 ao+~=Z[#&Ib ʕ+rɓ/ʕ40Ucw~t'VtI$kdC|=5\XBKw̟(>u/ .=v@l-/iz Gyk~-68Z(,}%8qG7L탳>?qX FN1O^政۾Zomɑv;@x;mܰ{N߇ѵvYX nd?k6a/ \78+P3Jhv'`_ ,Y]wӟ뿥^żG>bso܁V,2:SYM NG@mٳX^oaɈf<@q`6Ry`F];ƲO,3@/s>?KmOm?Y??3m7›9)ˇh?ۮ< ?G{ݸ'=>2ֹWJ\8*;4.KS}Goǐ >yW}sxˋNO~Y_Eg[;~y >(\x]ŷś3fs[kVE8+0<ǥN9qcg˛:s=}w|{6=ssub_oļX+xv;N:,޹9X>G%;Npb'Z+َظg+ CP4 ;w vbc=1=Hƺ0sT*CXm(̘K3v;Qur5WÝmSK"1Z| n:>I{L]|y[ Chd!MZ_#N9u_<瞴?]q~xhtvf|ľ|sy󠭍Kd w|ˁ/] Xlz2<_~xG|f-|ว>{O|랇?ԇ[~ Y3ǵp10Ntr Dחn6αrǍ8"=4:巸tW}zWd{򏟊))޸S$E#8b?NeOt5^??\\NK;!pcjuD1 ||R/UB_xwSluVB7fZC;?oû78iw+E?ގZoQypÆ? .15S,hFEݹa{az9h7nK>)[|g\S`R޻{bbOǏ&X\c#x`ljsv[5+{oo.??E?ZK(AݿPkM+~o\_ҹ7CO1'joZlSr;&&$ӟu-ܲ[l?VX&KV>mJn&1oՌ2~ L;p4gBR2S;n77hѼ!66d%})(c975:cl-sL?E3ƞJ_tf7=SH_jS"Qt~+@ʣ;qwMy>sev|1z0|tnRX{n' N-ŋcK7[{3";C)yts\KV^7v ;0=4^E<#U_u7pww8;;Ӱ*ÂHJz4 vyCfrpOGEjN1?}Ch5v7wRQfw*] bOEkץM'fPg6>JdUjM8>os'Y< a8?92;ʋ,ך*._(s4x{?2GO\z6z/cX^V $B:e |ࢣdGe %(㮰l@/Z;i7c/b 'U]20oS*DtĽތ@28zl7< ;G.cgL%?Ť7: y/$TR@*}dXЋ Hooh<"VMSޑNtIddJZ 1X.S4[U1nOo}wdϟ 7[#TgY.v͇_!{:{ee?߷^+~G 1 Ӑt@rtu,ߗI ץ[P:CI9PIرeS}Cǒ ?`e6KKFn`,G[U<$4W =P=;s?Mۈϥ}gԢ? \p)QGÇ+JkS1@H%dޗ=>:XFF [Ec@ h!Q (Za-0 B@ !@+{O14  IDAT@ (ދz@+Q (Za-0 B\JNǘ\ ^2VFGZ2C~f|p:#a_ǭRss*r~6BlT@6k̭ۘE70շ^Gyy! 珮nX;|/+&$̲Q 0JB7}m߳tɲ2:RGϾ+@Q~`ԁHMPfIz߻ɥSƲʫ\Kv{e8bՕDIԉZqWﻈ2C3ƱV@9S>#Ll,=ǡ^$ "##5KTl"ݷԁm{ܻw:`Wl4z+WxwXC~}ԱtϬnI =, IV=II/I%0nHDNs0ϕ3[lL@"z2fFwTI-k*CS<'fw\ǹm yS3x!w/M3.6Uo@ah;޲/C•Í~7t8:IJ_ae#1xMm[S~to{hq1@Abd)JPZz)U=_qAC,%i5/fS ykıU&Jq70;rUغu+;u@%X A/1he18PjQ]yz'=$u F~R{6Cr\ʦџʠȔSyt*}*/bd߆G rqKQ>N|Us})$/̫`PXi6#nk[g]eZ\[tt~owڴ Ҫ e*dc9s\Cɫ GD-~NbYf͚i>G1h a4J=8GL*]oUaS1='4{G6E_JF̘_##[NƐLUb8?IAy~R G,zucyڞ 99RƐ]Vؘ1Mt#bxcb-DBlЄ!^!~ (ۛ875U蜹êdՙ)GsbZ{NDuvM-e&'Vzwcn~KQkL+aP x=%љع9`'ϙ΄L2ӳgϏD>FTF oJWl՞W6p5dUzb:X)j3AL(2)oc-؊rV2$=wI Q}yii(QxSWZm͚m~2xM'NBfnѿP#r9g̙WQJκZ^Y1:/i€ ֮}1ٯ&u\0l)ﻒ;1r\~εG}L͙j-K'\^Ee4o2k>wS{)kZQw\"\GE4weF((Qݻy:$a\ Ǔ <'-f@MkXb)ĸLwޒ)m[qKӊJO#Uꀻg ;[o۞yZj6cΕޥG%>JOdjEO dȹ oRw*5mT9?301_($e3ΰfn==C2CD4¡L 8j`h儛;n8Z`d]ww7gl;rƪy$_e^M7z'Uk_fZy̱)g_au=)aXًr/(%JQ\p!ofѢE|NJG)SƆ'lm_ʈkqG)0H)ù6+m~ϝb}l fùfH]' pI7m6KİbU:]7лhBQ$ǢJٌ;Żlꑴ-k%u3= UU?OP{Qx9<#'.2 tReVGwpQ¹-AC'c_΢ŕ-2UfA$Űvf,Rgl}D +qtqwvi0+GUDjmڟƕ=)mNK/GlFs/{|W3znZ1x5IV[WU#ih#+/_kBGӧOY넏QH&iy[ /Xk4ciٛ\B Pi)$bv=&d_9_<&'Fx[kdEi`[ډ2WĂVr׉JNќH/8l&njMҖ%vo?}3q?s5#]đn\dn4B?yT WcRVW(T{G(C, 2Jߟw zQ a 8_Īt;Ro!\\\>\Y]<Ӑe݊.z(O~(3yBKanog1l4g_$hŌ)<{Eq ֱ}c- "wwEmqʫ%J^=ªI #`+Wdz|֭bJn|(·Y5̈́@~ om)RMмwWq'$ ]Y&V腬bD$_* gG4pb~`ב`=rXViKH-(hu@O8r>FUs< }"9aڇ2+V@ t-ҍ4m6l=#QZz.b#4ЭXd9ԚϪ!ͣ]*R?",>gQI'E+)#ϰk_,AYG'X],j,И1QmLUq7^?CjKʶZCfeYKn={6 G$F,  56oԉ:ϐDFF>߁2j7CWSLO+O^])zKX%%N>{!¬29q1ak+'OMV%'K 9c3z,Dy }*|~ދkqπ:o'Xzͩ^=PIJc31V#P_C@MllnBy+a ja3B<@ B@ h!Q (Za-0 B@ !@F@ B@ h!Q (*gnn%q.qibވ~Vc8sd&G70sƯVJ~I/t}r!M<_kg:1NMa׳(ӕѲ-mEA$*Г0L$b{}؍14yw"Yի3LlڝNS>M?PJzw"gxי693 oco83'vŔ/1 idU`_Zoo3?GH0jMn;Vq\X2iRX[c\{"o)r)$Osv{HH0mEQug*KPc㷋̱!S}aL+6*).-q-^'5n{v:v'^O;ՠU=ԝMBQ3{{nÆYW b0*dl.Y$.>“9y{5^ `8"Zeo 9X;(g#¨G!]Kt=Z%JN_~YP CF?К$ĩvA٬]闘Z㵭Fߢ4 7Uy'V|s߄@0p_}^<\w㳬oRkuGv}_"ۅ,ji8 ۿ?2_Pznv,MB)V&lԗFgbi /9NKZ^z^s׎mjIi@-=&tt)EQ_78d l3@s׬,1<fZ}Oi׏-Y$-Ok8Gm u<1yљ$  *қ"F3w~54Њ!+_'!37HhG¨WGvkBB,H10Vpm~5+ӳB 2#$xo0f\gQOFJZsEP(SIRQg7M#x:g^TR &$szq3ʪkˊdYgHqJ]96lM3NI'27M>tñy7iE݁zp_g>>rэ7e #8*⪵TK~Hl`|S׼bL$Y4:+k) H0+^f.b gyOIhkbW;Đ/QNz:٤ ؀C+p?ĔjKQ3˷N%L۪ù>J ÒkI;r9KUt׎pREnTy̱)g_au=)aXًr/(%B?e313";z ~(nDϐ^e\N{O-Q~gu™dw"כTQ)wUi1tqn Rȑej|[헆>&qTmXۢ?O*@Bs^HJ^;2{guw-TAQQ Yꄍ!a,Y"^wtW{0-V\Jٌ;$CFvoD'=ʅ!)JT/SۉHI!Efy )𛿜;sYq%ݾÝ;Jٰ [g&3)bHr5OBGҙ<=Uig Jmx8%3=3o8[m`oqMGW3vyRpy#K}ˈ<Ri,WU ң߮9Do:ST އ1t åJ⑞AsX? `_-S״:.pv ؗނmJ$VCM&#!w%]Y8 eEbdWpvA\* ᆑ`=rXҖ=ZPF𢡊p|.:12r-~.q9&4/d}}:~ݗq2\_Вf+d3SIY&Cow;f^cNA=FOF:޸w.8vn*bldÓ j[wAyi+`yQvT.㈱ȟN̮Rܨ/HD&RPϮaD IDATԡ&{boz^-WP=])ϦAm3Os Z1žcWm#C$f~=|vUbd;,fo)L f7p̶ *YdMp T3'+$M t|D1+_Q1 t_|@w#Q (Za-0 B@ !@F@ B@ h!Q (Za-0 Z(c6.D.dk$7 _sa"NoGR^X䜞s[&7U:O"/ZȏnZd6굋H1Σ;sK+^t+B=ȉTJI+ul$v?QOu gp"F]R|eS%<+J!uܘ6mmڴןib]'gq)*R_;}a'z{b|C|H ˲(C4Ƌ.siwk#_x1!SLcx!# O$ع*gW,!T%N±ѱcG^[n:ΈmPX7ZP)EO_V4=H+2ls/{ Ei<g3:G! =NnB]WcQm͡ڗ#9$<ɂ5] G꾕>q$01p2yz'Y~g5?.d9U*`8 roƇ|Őԣ,\Jm8FϠ}6{-!xx2Rd6DF8yvMiHb_'UO#bITRvwQ7+h] b=1o<d \I.I6h7#ֺ3,bN<޹kL?˥܋ TTĝKvk1jї~3N0p-JeT^CSK,L1E~NVt{wg%[¨R!v=5?'|7W:.EZkn nnU:"}=KEU:ٟ0dpg~LŞϤ uHM(f܀.ħ;yP*G/8$[їaT%+Q:#e:MkC,7T)_z33HMM}7.FG u@- (廈ݱQ*gBS٢#EyЧ(,% 1hi`k%(b~lJ)B^siT@ǐDFF>B8#IUy4~zC45 r&xI@>O-=|t$><ƶ"kB>bccuG!'X,"] #Մ+ccfɵ>R}P2LO !=:Fc(7#Q+Q@ !@F@ B@ h!Q (Za-0 B@ !@F@ B@ h!Q `X B3@ avvva,X-S?G_@  IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_CN/movie.md000066400000000000000000000301461473342170300252050ustar00rootroot00000000000000# 影院|deepin-movie| ## 概述 影院是一款界面简洁,性能流畅的视频播放软件,兼容多种视频格式,支持播放本地视频或流媒体文件、在线查找字幕或手动加载字幕等功能。 ![1|主界面](fig/main.png) ## 使用入门 ### 运行影院 1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg),进入启动器界面。 2. 上下滚动鼠标滚轮浏览或通过搜索,找到影院图标 ![movie_24](../common/movie_24.svg),单击运行。 3. 右键单击 ![movie_24](../common/movie_24.svg),您可以: - 单击 **发送到桌面**,在桌面创建快捷方式。 - 单击 **发送到任务栏**,将应用程序固定到任务栏。 - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 ### 关闭影院 - 在影院界面单击 ![close_icon](../common/close.svg),退出影院。 - 在任务栏上右键单击 ![movie_24](../common/movie_24.svg),选择 **关闭所有**,退出影院。 - 在影院界面单击 ![icon_menu](../common/icon_menu.svg),选择 **退出**,退出影院。 ### 查看快捷键 在影院界面,使用快捷键 **Ctrl + Shift + ?** 打开快捷键预览界面。熟练地使用快捷键,将大大提升您的操作效率。 ![1|快捷键界面](fig/hotkey.png) ## 主界面 ![1|播放视频界面](fig/playmovie.png) | 标号 | 名称 | 说明 | | ---- | -------- | ------------------------------------------------------------ | | 1 | 播放窗口 | 显示视频内容,当鼠标指针移入播放窗口后将显示标题栏和工具栏,当鼠标移出播放窗口或无操作时将隐藏标题栏和工具栏。播放窗口为无框模式,您可以任意拖拽播放窗口,手动调节播放窗口的大小。 | | 2 | 时间显示 | 显示当前播放视频的时间总长和已经播放的时间信息。 | | 3 | 预览窗口 | 显示视频内容,通过预览窗口查看某一时间点的视频内容。 | | 4 | 进度条 | 显示视频播放进度,拖拽进度条可以改变视频播放进度。将鼠标指针置于进度条上,将显示视频预览窗口。 | | 5 | 标题栏 | 显示正在播放的视频名称。 | | 6 | 主菜单 | 通过主菜单可添加影片、设置影片、切换窗口主题、查看帮助手册和版本信息等。 | > ![notes](../common/notes.svg) 说明 :当鼠标置于进度条上时,默认显示预览窗口。如果要关闭预览窗口,可在设置中取消勾选 **鼠标悬停进度条时显示预览**。 ### 工具栏介绍 | 图标 | 名称 | 图标 | 名称 | | ---------------------------------------------------------- | ----------------- | --------------------------------------------------------- | -------------- | | | 播放上一个影片 | | 播放下一个影片 | | | 开始播放影片 | | 暂停播放影片 | | | 全屏播放 | | 退出全屏 | | | 调节音量 ||呼出/隐藏播放列表| ## 操作介绍 您可以在影院中进行影片添加、删除、信息查看等操作。 > ![notes](../common/notes.svg) 说明:采用不同的解码技术,其所支持的功能也会不同,请以实际界面为准。 ### 添加影片 您可以通过以下方式来添加影片: - 当播放列表没有文件时,单击 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按钮,打开文件管理器选择影片文件。 - 单击鼠标右键或从 ![menu](../common/icon_menu.svg) 选择 **打开文件**,打开文件管理器选择影片文件。 - 单击鼠标右键或从 ![menu](../common/icon_menu.svg) 选择 **打开文件夹**,文件夹中的影音文件将全部显示在播放列表中,并依次进行播放。 - 单击鼠标右键,选择 **打开URL**,输入视频文件的网络地址,播放影片。 > ![attention](../common/attention.svg) 注意 :使用影院播放网络视频文件时,请确保您的电脑是连网状态。 - 单击鼠标右键,选择 **播放光盘**,播放光盘中的影片。 - 直接拖拽文件或文件夹到影院界面上,来添加本地影片。 > ![notes](../common/notes.svg) 说明:当使用触控屏电脑时,一指按住影片文件拖拽到影院界面来播放影片。 ![0|open](fig/open.png) ### 快进/快退 - 在影院界面,鼠标拖动进度条来快进或快退视频。 - 在影院界面,按下键盘上的 ![Right](../common/Right.svg) 快进视频或 ![Left](../common/Left.svg) 键快退视频。 >![notes](../common/notes.svg) 说明 :当使用触控屏电脑时,在全屏状态下,一指向左滑动视频快退视频,一指向右滑动视频快进视频。 ### 调整播放窗口 在播放影片时,您可以灵活地调整播放窗口大小。 在影院界面,单击鼠标右键: - 选择 **全屏**,将影院窗口调整为全屏。 - 选择 **迷你模式**,将影院窗口调整为迷你模式。 - 选择 **置顶窗口**,将影院窗口置顶到最前面,操作其他窗口时也不会遮挡影院窗口。 - 您也可以使用鼠标拖拽窗口边缘,自由调整窗口大小。 >![notes](../common/notes.svg) 说明 :在影院窗口上双击鼠标,在全屏与正常窗口之间切换。 ![0|windows](fig/fullscreen.png) ### 调整播放模式 1. 在影院界面,单击鼠标右键。 2. 选择 **播放模式**,在下拉菜单中: - 选择 **顺序播放**,影院将按照播放列表顺序依次播放影片,当列表中最后一个影片播放结束后停止。 - 选择 **随机播放**,影院将随机播放列表中的影片,当全部影片随机播放一遍之后继续循环随机播放。 - 选择 **单个播放**,影院将当前影片播放完成后停止。 - 选择 **单个循环**,影院将循环播放当前影片。 - 选择 **列表循环**,影院将按照播放列表顺序依次播放影片,当列表中最后一个影片播放结束后重新播放第一个影片。 ![0|mode](fig/mode.png) ### 调整播放速度 1. 在影院界面,单击鼠标右键。 2. 选择 **倍速播放**,在下拉菜单中选择播放速度。 >![tips](../common/tips.svg) 窍门:您也可以使用快捷键来进行倍速播放,加速/ 减速播放是相对于原播放速度而言的,每加速/减速一次,视频播放速度默认增加/减少0.1 倍;最高播放速度为2倍的原播放速度,最低播放速度为0.1倍的原播放速度。 > - 按下键盘上的 **Ctrl** + ![Right](../common/Right.svg) 键,视频加速播放。 > - 按下键盘上的 **Ctrl** + ![Left](../common/Left.svg) 键,视频减速播放。 > - 按下键盘上的 ![R](../common/R.svg) 键,恢复原速播放。 ![0|speed](fig/playback_speed.png) ### 调整画面 1. 在影院界面,单击鼠标右键。 2. 选择 **画面**,在下拉菜单中: - 选择画面比例,将播放画面调整成相应的比例。 - 选择旋转方式,将播放画面顺时针或逆时针旋转。 - 选择上一帧/下一帧。 ![0|frame](fig/frame.png) ### 调整声音 1. 在影院界面,单击鼠标右键。 2. 选择 **声音**,在下拉菜单中: - 选择 **声道**,选择影片的播放声道。 - 选择 **音轨**,选择影片的播放音轨。 > ![notes](../common/notes.svg) 说明:当使用触控屏电脑时,在全屏状态下,一指向上滑动视频画面区域增加音量,一指向下滑动视频画面区域减小音量。 ![0|sound](fig/sound.png) ### 调整字幕 1. 在影院界面,单击鼠标右键。 2. 选择 **字幕**,在下拉菜单中: - 选择 **载入字幕**,手动选择字幕文件加入到影片中。 - 选择 **查找在线字幕**,影院将在线匹配字幕,匹配成功后自动载入。 - 选择 **选择字幕**,在多个字幕间切换选择。 - 选择 **隐藏字幕**,取消当前的字幕显示。 - 选择 **编码**,切换字幕的编码方式,来解决某些情况下字幕显示乱码的问题。 ![0|subtitles](fig/subtitles.png) ### 截图 1. 在影院界面,单击鼠标右键。 2. 选择 **截图**,在下拉菜单中: - 选择 **影片截图**,对当前画面进行截图。 - 选择 **连拍截图**,分别截取影片不同时段的图片,最后组成一张剧情连拍预览图。 - 选择 **前往截图文件夹**,查看截图。 ![0|subtitles](fig/capture.png) ### 查看影片信息 1. 在影院界面,单击鼠标右键。 2. 选择 **影片信息**,查看影片信息、编码信息、音频流信息。 ## 列表管理 在播放列表中管理已添加的视频文件。 ### 删除视频文件 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **从播放列表删除**。 > ![tips](../common/tips.svg) 窍门: 在播放列表界面,选择一个视频文件,单击按钮![关闭图标](../common/close.svg) 将该视频文件从列表中移除。 ![list](fig/list.png) ### 清空播放列表 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **清空播放列表** 或 直接单击左侧 **清空列表**。 ### 在文件管理器中显示 1. 在影院界面,单击 ![movie](../common/episodes_normal.svg )。 2. 进入播放列表窗口,右键单击视频文件。 3. 选择 **在文件管理器中显示**,打开该视频所在的文件夹。 ## 主菜单 在主菜单中,您可以打开文件/文件夹添加影片、设置影片播放、切换窗口主题、查看帮助手册、了解影院的更多信息。 ### 设置 在影院界面,单击 ![icon_menu](../common/icon_menu.svg),选择 **设置** ,您可以进行基础设置、快捷键设置和字幕设置。 #### 基础设置 **播放设置** - 勾选 **退出影院时清空播放列表**,退出影院后将播放列表全部清空。 - 勾选 **自动从上次停止位置播放**,在打开影院后自动接续上次关闭时的视频播放。 - 勾选 **自动查找相似文件连续播放**,将同一个文件夹下名称相似的视频,自动添加到播放列表中依次进行播放。 - 勾选 **鼠标悬停进度条时显示预览**,当鼠标悬停在播放进度条上时显示预览窗口。 - 勾选 **进度条显示为胶片样式**,当鼠标滑动进度条时显示胶片样式。 >![notes](../common/notes.svg) 说明:仅x86平台支持胶片格式。 - 勾选 **最小化时暂停**,在影院最小化时自动暂停视频文件的播放。 - 设置默认播放模式,下次启动影院时默认以该模式来播放。 **解码方式** - **自动选择**:根据设备配置自动选择最合适的解码方式。 - **硬件解码**:通过硬件解码视频。 - **软件解码**:通过软件解码视频。 **截图** 设置保存影片截图的存储位置。 #### 快捷键设置 查看快捷键,支持自定义快捷键。 #### 字幕设置 设置字体样式和字号大小。 ### 主题 窗口主题包含浅色主题、深色主题和系统主题。 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **主题**,选择一种主题颜色。 ### 帮助 查看帮助手册,进一步了解和使用影院。 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **帮助**。 3. 查看影院的帮助手册。 ### 关于 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **关于**。 3. 查看影院的版本和介绍。 ### 退出 1. 在影院界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 选择 **退出**。deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/000077500000000000000000000000001473342170300235425ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/d_movie.md000077500000000000000000000275671473342170300255320ustar00rootroot00000000000000# 電影|deepin-movie| ## 概述 電影是一款界面簡潔,性能流暢的影片播放軟件,兼容多種影片格式,支持播放本地影片或流媒體文件、在線查找字幕或手動加載字幕等功能。 ![1|主界面](fig/main.png) ## 使用入門 ### 運行電影 1. 單擊任務欄上的啟動器圖標 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器界面。 2. 上下滾動鼠標滾輪瀏覽或通過搜索,找到電影圖標 ![movie_24](../common/movie_24.svg),單擊運行。 3. 右鍵單擊 ![movie-24](../common/movie_24.svg),您可以: - 單擊 **傳送到桌面**,在桌面創建快捷方式。 - 單擊 **傳送到任務欄**,將應用程序固定到任務欄。 - 單擊 **加至開機啟動**,將應用程序添加到開機啟動項,在電腦開機時自動運行該應用。 ### 關閉電影 - 在電影界面單擊 ![close_icon](../common/close.svg),關閉電影。 - 在任務欄右鍵單擊 ![movie-24](../common/movie_24.svg),選擇 **關閉所有**,關閉電影。 - 在電影界面單擊 ![icon_menu](../common/icon_menu.svg),選擇 **退出**,關閉電影。 ### 查看快捷鍵 在電影界面,使用快捷鍵 **Ctrl + Shift + ?** 打開快捷鍵預覽界面。熟練地使用快捷鍵,將大大提升您的操作效率。 ![1|快捷鍵界面](fig/hotkey.png) ## 主界面 ![1|播放影片界面](fig/playmovie.png) | 標號 | 名稱 | 說明 | | ---- | -------- | ------------------------------------------------------------ | | 1 | 播放窗口 | 顯示影片內容,當鼠標指針移入播放窗口時會顯示標題欄和工具欄,當鼠標移出播放窗口或無操作時將隱藏標題欄和工具欄。播放窗口為無框模式,您可以任意拖拽播放窗口,手動調節播放窗口的大小。 | | 2 | 時間顯示 | 顯示當前播放影片的時間總長和已經播放的時間訊息。 | | 3 | 預覽窗口 | 顯示影片內容,通過預覽窗口查看某一時間點的影片內容。 | | 4 | 進度條 | 顯示影片播放進度,拖拽進度條可以改變影片播放進度。將鼠標指針置於進度條上,將顯示影片預覽窗口。 | | 5 | 標題欄 | 顯示正在播放的影片名稱。 | | 6 | 主菜單 | 通過主菜單可以添加影片、設置影片、切換窗口主題、查看幫助手冊和版本訊息等。 | > ![notes](../common/notes.svg)說明 :當鼠標置於進度條上時,默認顯示預覽窗口。若要關閉預覽窗口,請在設置中取消勾選 **鼠標懸停進度條時顯示預覽**。 ### 工具欄介紹 | 圖標 | 名稱 | 圖標 | 名稱 | | ---------------------------------------------------------- | ----------------- | --------------------------------------------------------- | -------------- | | | 播放上一個影片 | | 播放下一個影片 | | | 開始播放影片 | | 暫停播放影片 | | | 全螢幕播放 | | 退出全螢幕 | | | 調節音量 ||呼出/隱藏播放列表| ## 操作介绍 ### 添加影片 您可以通過以下方式來播放影片: - 當播放列表沒有文件時,單擊 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按鈕,打開文件管理器選擇影片文件。 - 單擊鼠標右鍵或從 ![menu](../common/icon_menu.svg) 選擇 **開啓檔案**, 選擇影片文件。 - 單擊鼠標右鍵或從 ![menu](../common/icon_menu.svg) 選擇 **開啓資料夾**,文件夾中的影音文件將全部顯示在播放列表中,並依次進行播放。 - 單擊鼠標右鍵,選擇 **打開網址**,輸入影片文件的網絡地址,播放影片。 > ![attention](../common/attention.svg) 注意 :使用電影播放網絡影片文件時,請確保您的電腦是連網狀態。 - 單擊鼠標右鍵,選擇 **播放光盤**,播放光盤中的影片。 - 直接拖拽文件或文件夾到影院界面上,來播放本地影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,一指按住影片文件拖拽到電影界面來播放影片。 ![0|open](fig/open.png) ### 快進/快退 - 在電影界面,鼠標拖動進度條來快進或快退影片。 - 在電影界面,按下鍵盤上的 ![Right](../common/Right.svg) 鍵快進影片或 ![Left](../common/Left.svg) 鍵快退影片。 >![notes](../common/notes.svg) 說明 :當使用觸控屏電腦時,在全螢幕狀態下,一指向左滑動影片畫面區域快退影片,一指向右滑動影片畫面區域快進影片。 ### 調整播放窗口 在播放影片時,您可以靈活的調整播放窗口大小。 在電影界面,單擊鼠標右鍵: - 選擇 **全螢幕**,將播放窗口調整成全螢幕。 - 選擇 **迷你模式**,將播放窗口調整成迷你模式。 - 選擇 **置頂窗口**,將播放窗口置頂到桌面上方。 - 您也可以使用鼠標拖拽窗口邊緣,自由調整窗口大小。 >![notes](../common/notes.svg)說明 :在電影窗口上雙擊鼠標,在全螢幕與正常窗口之間切換。 ![0|windows](fig/fullscreen.png) ### 調整播放模式 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **播放模式**,您可以: - 選擇 **順序播放**,將按照播放列表順序依次播放影片,播放列表中最後一個文件播放結束後停止。 - 選擇 **隨機播放**,將隨機播放列表裏的文件,播放列表中的文件全部隨機播放一遍之後繼續循環隨機播放。 - 選擇 **單個播放**,將當前影片播放完成後停止。 - 選擇 **單個循環**,將循環播放當前影片。 - 選擇 **列表循環**,將按照播放列表順序依次播放影片,播放列表中最後一個文件播放結束後重新播放第一個文件。 ![0|mode](fig/mode.png) ### 調整播放速度 1. 在影院界面,單擊鼠標右鍵。 2. 選擇 **倍速播放**,在下拉菜單中選擇播放速度。 >![tips](../common/tips.svg) 竅門:您也可以使用快捷鍵來進行倍速播放,加速/ 減速播放是相對於原播放速度而言的,每加速/減速一次,影片播放速度默認增加/減少0.1 倍;最高播放速度為2倍的原播放速度,最低播放速度為0.1倍的原播放速度。 > - 按下鍵盤上的 **Ctrl** + ![Right](../common/Right.svg) 鍵,影片加速播放。 > - 按下鍵盤上的 **Ctrl** + ![Left](../common/Left.svg) 鍵,影片減速播放。 > - 按下鍵盤上的 ![R](../common/R.svg) 鍵,恢復原速播放。 ![0|speed](fig/playback.png) ### 調整影格 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **影格**,您可以: - 選擇一種影格比例,將播放畫面調整成相應的比例。 - 選擇一種旋轉方式,將播放畫面相應旋轉。 - 跳轉到上一幀/下一幀。 ![0|frame](fig/frame.png) ### 調整音效 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **音效**,您可以: - 選擇 **聲道**,選擇影片的播放聲道。 - 選擇 **音軌**,選擇影片的播放音軌。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向上滑動影片畫面區域增加音量,一指向下滑動影片畫面區域減小音量。 ![0|sound](fig/sound.png) ### 調整字幕 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **字幕**,您可以: - 選擇 **載入字幕**,手動選擇字幕文件加入到影片中。 - 選擇 **查找在線字幕**,影院將在線匹配字幕,匹配成功後自動載入。 - 選擇 **選擇字幕**,在多個字幕間切換選擇。 - 選擇 **隱藏字幕**,取消當前的字幕顯示。 - 選擇 **編碼**,切換字幕的編碼方式,來解決某些情況下字幕顯示亂碼的問題。 ![0|subtitles](fig/subtitles.png) ### 截圖 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **截圖設定**,您可以: - 選擇 **影片截圖**,對當前畫面進行截圖。 - 選擇 **連拍截圖**,分別截取影片不同時段的圖片,最後組成一張劇情連拍預覽圖。 - 選擇 **前往截圖文件夾**,查看截圖。 ![0|subtitles](fig/capture.png) ### 查看影片訊息 1. 在電影界面,單擊鼠標右鍵。 2. 選擇 **影片訊息**,可以查看影片的詳細訊息。 ## 列表管理 您可以進入播放列表來添加或刪除影片文件。 ### 刪除影片文件 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **從播放列表刪除**。 > ![tips](../common/tips.svg)竅門: 在播放列表界面,選擇一個影片文件,單擊按鈕 ![關閉圖標](../common/close.svg) 刪除該影片文件。 ![list](fig/list.png) ### 清空播放列表 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **清空播放列表**。 ### 在檔案管理員顯示 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **在檔案管理員顯示**,打開影片所在的文件夾。 ## 主菜單 在主菜單中,您可以開啟檔案/開啟資料夾、切換窗口主題、查看幫助手冊,了解電影的更多訊息。 ### 設置 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **設置** ,您可以進行基礎設置、快捷鍵設置和字幕設置。 #### 基礎設置 **播放設置** - 勾選 **退出影院時清空播放列表**,退出影院後將播放列表全部清空。 - 勾選 **記錄播放時間**,在打開影院後自動接續上次關閉時的影片播放。 - 勾選 **自動查找相似文件連續播放**,將同一個文件夾下名稱相似的影片,自動添加到播放列表中依次進行播放。 - 勾選 **鼠標懸停進度條時顯示預覽**,當鼠標懸停在播放進度條上時顯示預覽窗口。 - 勾選 **進度條顯示為膠片樣式**,當鼠標滑動進度條時顯示膠片樣式。 >![notes](../common/notes.svg) 說明:僅x86平台支持膠片格式。 - 勾選 **最小化時暫停**,在影院最小化時自動暫停影片文件的播放。 - 設置默認播放模式,下次啟動影院時默認以該模式來播放。 **解碼方式** - **自動選擇**:根據設備配置自動選擇最合適的解碼方式。 - **硬件解碼**:通過硬件解碼影片。 - **軟件解碼**:通過軟件解碼影片。 **截圖** 設置保存影片截圖的存儲位置。 #### 快捷鍵設置 查看快捷鍵,支持自定義快捷鍵。 #### 字幕設置 設置字體樣式和字號大小。 ### 主題 窗口主題包含淺色主題、深色主題和系統主題。 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **主題**,選擇一種主題顏色。 ### 幫助 查看幫助手冊,進一步了解和使用電影。 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **幫助**。 3. 查看電影的幫助手冊。 ### 關於 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **關於**。 3. 查看電影的版本和介紹。 ### 退出 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **退出**。deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/000077500000000000000000000000001473342170300243075ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/capture.png000077500000000000000000001203731473342170300264710ustar00rootroot00000000000000PNG  IHDRF6D pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F(IDATxutioJFKiK[(Ŋ-,;⺸.wwCiRn$yheYw9sN3I&ɝ_{f2"44TVBʖHⳠM B!(B!(B!(B!(B!(B!(B!Б!%%%ۤ!5C.])h4r,AM&*!la݁uD_+V'pkh_DMc=@Oq,8Nӗx5}]'x,BO`.M }ᷳ+?okUl;ؘGqeEK9O֦ׄAZPOӑ=j7JLQw2bmY]suUKdR1oXSMĽ'fQcrQ֙IE1Sg>WmSIx+BcӉ řy4)\QcӒYǡoRw]oI#9Cahg\ѠhH 9̯Kc44xǼx~d5]?>8Uڒa?$_5v7j_?FH~Ӳ>9`p:neP͒qgen\WeN>NP7Ne7/e[v|ߔ*iYBHgPa`d-p+sSL-m.6BmbćёPf ̚.Ggfj }e) ? #YnFx;!+x1yHxm sa)CkXp3t´隣|yǓ.K)q;kcZT= {=N*dӰpWchh>0 ݿfԊ28dK YFx;<{͵gM\8p WgD`gW <ݕ~d,ޜe>T5 Ƀ\8uxR<ܔ•ahk?,QPkn~IXcbR O$>y!қOd>Zmjf7Gqq,=ܨM^OZ1}4ڌl)~Ԏo߭5 ZEYsC'^]Ck9Q/Uy~sIOҢd.jHz&s!^Cw_f/pUU I{H"2O8w)ϸmV3 ]1Ǣ0l䉥=P׀3Dh4h#qn^U`vȖq0A Zgňchb8;w"YģUzRBo{Z7Z}K)duBG1(iukBH0a:4X UF!LJG~\2uel6>K,1I ~Z8}0]F6ߴ_y87rDmC}>LfU1Iy3jƬ>=JZ?d5ǎl{G:ͿFd_@*nco˚ܔmhKz/?-$c)4U2Q*Oի|PNլ(ʆP)QkxQ@cn?6LQd k L wQ;;a>M]6-ݍE+dT+9"-GWC6=C$ɿUdd$...TY0BϑCB!(B!(B!(B!(B!(B!(B!gё!%%%ۤ!5C.])h4d&GC:"/Wy=]Y|-߾[2o?ToǬ9b)'"ײB!6 vv%Gmp@ :6mR&3ΥZ;DD:6G8$4fP8khMd(bL-GLݧVq;$<[oI~aH47ٲ4^͛u;<]>ruB!>3-6?5u@lɺf7OgJWQ~-!<&::`cjyn}'^Q3h\~"dR`hΉHu[o[)uf5Y(@M)U;S_^dE't~α߰c&fEOX<~lG0#;@ck۸mm+fQcr/H >zfT\mܙB9(f}x1 JCPϥ_Q ŋ\|󳏩W:]{ `Y_z WL\- }׍^s1NncϛOuؑs9vr1k!]iLÏD{l"$!D"N~O΁;J@p0]K'SjN?ѮK*~ɈnSꓲ?M;n'|h8mQ!>O MТɋC|2 WiR2űh(m )WX2$^efg;J&s 2 4~ $`HfC{,1p岸 g sq?K@ifM.{{ek1_F\&n,`2Ɛ%K̈ch2D?%Mǜ#<5ä<#V{y`m<3av^Abp"tl+"?oxqZ РLnq6/sHΧa! !]cY!+X( 0˖2ic6U1cq2_-SOQ-](UA&$aÎEّˮIz/ri~^ Uܜم?Ђ𾑗ѳէߞ>㏺z\:}s2BH0rjs j @/³(},i efaskC3uV+b+恲rcFQ_2\7J=% YD%Xcw*1AOdБ9|B: w5kF(-NvpUnGhO?:Nc[z0쨒;h[4ǣ$VwaO3/ʽsx{ #h}xZ?f~ؕlblV:ihZkuhu:@NCJZD'p|hU:9n*37EJPѵU/TFF r-U[Yj$GOzB4 ѯtpGDqgvsc4^]ϲY06֥tTǠJ&4t¶L~Z}H4rַR1fpڎ#X[vNzDzO-yr'peɻLn }"Eժ4/hSLmlф@S0$cJϨx]f B07Mt1Y*ItsV&8Z^Г~m{:C&W2*jaqu `o-tj̰Kc)^3X*eUU]Z6|Br[F#]?駤'p[;94noˆ ćSݻpmF7Qd `Hڽ`&?x/_^X>+R&XYfkA 1iw[Fحg^J( !˲ۧyZƿ0}"N!u?ߢ,}wc_~߱,#&G:{Ye҉R{?n7ڕύaF$77qׯL\ƙդ ϲS oVԣkKSL?m~jL՚}ϬQыlM!-|Cvp~<_(+׆ j] O%E!%kdzFyR})̪vWCZ1oUBϟ W^aBylktBI֩pm> i)YȖ_Qc Oe$soBWNW(K˸)T޻ay.kPsS֚{,Zڌl12 *ʚ#2BardPUa:΋׉T- ##УK|9WݻJS].K^嶵(hg9Wiۛ׭q3(BCCjѦSblVHR1TOBׄBQ!$BQ!$BQ!$BQ!$BQ!$BQ!$Bϥ}y3R;גI!%%ۤѐӣM|]+ڗr0y?O(-̝{ۧ;\'FhBO@x{K\ YBr>~Oبf8I>{W6='>1X)up=/h1 9U~C)SIJD5]NjgY2E\\;m7+5X{:otGu9iqg3rw4G_Šn[VgqVŸk!vPZ)'#&'jFqRNwޙq &EfBM^M~կ2fnb+b~o4!w>wl !TI.Y~')=:Rp.,U1Pq|o,]/53bo?ʼTy0B@kQ jcka dc&bH2.] ~J`#QӡKӣ2'TErBG05;;;ʲ oŒ'V-ɉs܋Ԣ40@i{kTwtYc_pJр4uSEP&<9ĺM8|Bf2MſbpfV7r`Rmyu}_V2ii4.9/2ϗ JcKX#+;NVh(֧D,:ѳ:c4Rӵtz@NCtzt R4iu̓_wM_Q1DSv!M?n)!}49^1feUk-ΨD;Qި5C2ox=[)ܧcهεG2'*\đ <J 6 44dQq~78gVUt[C+ [ -IG_S:4d_2A{RhaBS ;o T0"<`v/%J4ٛc^ˮЧp`&^থp4}BH0EwǡDVI|xnN!:ThɜC>Dh }51PS\?8 7RHB/ U @n[:݃-[( t-ctM<)T 7)U,?v6DDVs$mʛXfqa!DđnD#Jϴ*Ƽ(͠3>XE&ı)μ;ʄ|6+YǖS4x5V;bo0#GWhh52 ٠J߉7wʐ cbS:TLI3,?}^pmЃAKv'2]V7}O\IMX(s1,Eq>ʠʅSlчβu%#{8M(Oㅑ>ʆS1Lǭ6}m1mALBK'š »`+SF&@C`4}5+UV!H?L/384MWĒNա~AHYC>1͗oIJl^ŝ]9gjlU4_gcp4:VNwVP{rrK(Jěg*sQddE6Ez]K+mB &vȉJ+ߖRv8 3|3:(ȸ I>/Cs@U`Q;u8'?wP僵e̬-](U.*qR2%/Qyn#^ļc.4VcpJaQm4kj92zK賬aFbyf/[ye*`12/r%TRq 5vXtlrFLٿ*..̻! S]9pҔ+Q$ L)P% >^׳Ѳ=;i]F ]Snb7sq1~'6U1zXveY4u1& Wrs.^ΪV[< cۻ,>1 \ۊLS>~nO64p7ʵ0uyR1i$+՘X`SQ;ҚcM.nQuo URoO!*Ҋ>c75$̸M HNFaj>x{ͤNIDGiqpPBܭ(hred9&JTFcbiEǼ*Z4-L0Td.эB&T-M~_ſeh+,)g%.0lփ-_@ܼ8YRRK*ȇDr7Ed,+@㹚βF/Nr'*,_gxc.Fb290ɑi/-K ƿ՘SD$qs^E/!IĽjduYrR.=`2\H}:!l޷գXѻ/iQ92{x2~xdm R*C+!G$OXHƫBcu>duܜzyw$ff> н lAzxd33fB[a︶QAl{<ǣ:l=iL:> S5,&f1Ѐ0puzij9A@E1Yiɻ%lB]]:HBҡK +{s'ث1COag c;C!B éuE?!p3C;;%A>!ؗ,\̧j}M>gԉ>9L 8*Ll1/Kdd$...rF`BQ|nB!(B!(B!(B1 -!q*BHH(o([B"##e#BQ!$BQ!$BQ!$FT}y7$|^ >ư|:="h4knkb@ZnD˟n!?aP%J*nO?<3&[ $sgpf,Mρ{x'Ԃ߶|zo]FVcV+M ՌrlWXg=F]p*e0,!$q 2;'bC ƏZƍ_ ~ºM6#ڒ;$ wQESm5_.[q-bX(84|iYׯb NO-e=&*0VHu%vg{iڔzOkKFlZ: v~OƷSy{p K\(]捠%Evl Τc!Jms6vŪ'oxe.69Q:oEԵ +^!$~4Y:zm&en;_#.fDۮ^)9aO[!$~ fECs鈬՜z@̭͘je„\y1k7t)J쾹YUk&`5fԲ$8tuc JMmeDkn>*M"z !d%YE{-* ,ȗ/+jb1(J)&/zIYU||Yr|fQI%-=FCJJqD7lO%Vndz4z?z<Њbhw"tnDH:{WgTѼFF 142ȀYx }]lPn;NJvS*IWZH0 !(\V!$BQ!$BQ!$BQ!$BQ!$BQ!$BQ!$B͵M<,>sP,]0׭l`=ڔ9O^%KMA[/ʂL>&k gWlpm]W7,eX=V0f7Q9toҸ`Cnh93@yp,\H.]p--#9["/yib Gp`%UF(C'C@|"#xug~_qwJ.xCx[C>jc\qXځ? H&Jע ҢUZ%x=r]NmKН&Ew QU^TN)7>axqN }**]%Wӥm?+پ{m3agXS]V6""#zvxL<]Dއ ;r4,0۷8iЫ!ed5ϭ;yV|ws~kBH0WDI\W|<fJ^gUG0O%6?NdcMI͆Usn<5m#95'km`J{t?B< fsvWv˩CR>O$Cގ͌Z8՛u;9-mHywio5VUFqnE<\A%!?S^:{VfǤXx.GT*ނVXɏgAG4:bTE~ LJвGuON%كpK6oOPz:ԯ5!U=JRI !,qֆl̸Δ8΃>`ʞIo^Q0J,ls_o |7{ѧ6þBKjn45ub82%Å|ήe)I*#W8gF,/BHEɨ\e#׃ *3)myy8A`ٓ:Q22$sZB<= Ǯ8.~UɥYa:-]Ec53oߥG?eb X5>Ǘb{P֮:ƫtC/IDTQ麗,kӟt-RlΩ%CmkHd\*!$'q}T}碵D]†64,ePR-4@aJV-)bSnh@(YBvޚb[c(2RNԭoOoG#)J}:'TwCEpª6^hhY^ބhh1n^ZDv%.3DEeHҙ)=J;/Gz#g)pN}:|to{<BEk*A^FԒ wce 4 ,YIb3ok^C-K!#%L,4iWBH0YiW]Zť> ?ZA}-gmf/ kϳۻ0-y|ԨUqCu ?}8t^噿?GQ5>#wx5ūSuՁ>s;V2!$T$6?Lu gϤY^_vϲ4tq@]BQ1׀xW LN]d>#iXƼCd sypiXzJ lAwQB2(Tv<%٥cυhL05V&8;Lլ/nDCپeZcf$irZII$&&PU~xTU!hQ2+=eL/Kf2c8gEt+i<ͬa=s/֎B:k~ؖ7ԠRR*g^[J={ucE,їћ tts`hbpvd"8:ÀUgrGZ4fP8}&6j9`ygpM#E Y'kHYF]\נIY|7 & ܆#OpNse\w/ߗSf93좓g[VPBC8<$߻9At|"Eޯ?}VM܁?>m9Í2f  u+-Z ovųpalhI w"䳶P01VflW! rYxc;1`} \DTZakkFXebr.ޣa+ךֽǠQQҺ`#=i-5fp7tZyaيc5vSǗF=`EgD6{72rp b sb\)ܦ/78SBoMHڔ`6؟a+U_71WI0 !Gr1(CgS'Q}rsf+%Ev^]JSwѕoeRXyPd te3BqL96j #0PZ/S VhX%O_gQci us 8%yR  ˿tJ;~]e00(#9=szswVmd?!=>/zM>q)ګ*:Sΰ!+n>3$yw;o< ,!bcccsVhz# o'OT]~ٍO#,,S& RcF"?й451gjH;߳ls[=iq7|4Iig DDL|OW_i$BH0470qyҩ{ӡMO'=]0j?@sM i3?$rSAZ\l[fi BH0~cf9ҺPN0߳Mt)]9樰-QK~,bu.U crp:}O' $|e1WdKxux'ʕpF+]i}k`_rl0!(ȅjBQ!$BQ!$BQ!$oc&[BT*l!B|l 񏋌 bB F!`B F!`B F!`uDtcSnf̝2u7c}x",XuWslߊqeAw&,gWlpm]W7,~KOC[ K ?.;{,J|iu};6ShIWLG)02Km\ I\tX)$7w@@Tdn7_Ct+]ɥoxKGm3 :.K;i„`bЁ*ޜvbq6%H;x&%!ԟ/_`g޻\0vh<\U?V{wS5;ޔT6k0 [ĭXwvv 20TFJ*IۢQcf/g1J`ZL0QƦ!yܼPbGoD+qg79ڐn*'pgyC Y 8=΢yt>oɌӷi z"tѰxv~x~`o꾧A>|{Ԁ?z?}Zn͍E4 cLƍ9}4 _`0,!{R"rɁsq93^[2j3ӘtffGQ,R+ǝe\=.Y!kuf,dW\dfǽ[.O<᱙ыۻ12?U-RPGH1=O(kWU!$"*wS 5|lQesN-jC^@"2U̜99s-DHV>Qoq*Pn.xgMl!Ȋ+~0S[aaGaLZ { rԚ{`ϪJmhnr1a`g4jl,0QSQ;ҖcU7:QKMxWjQT绱m2MUf,Ĥ 5/%q/&|D+L…ӧl !S`V6 #11V22엿1zb@F :Qo) ?}8tua !4VCVͩݜwJbm_ή݀j&GO'8x=[o&kKq[6q<^<5dƒĘk9ZJ&* ,+ѿ2J X`GI".*<}puOX¹0Gy͂Uʾh]0fN`Ү`¹yǂ.B{B2lNFʹuԥPBCCyo287Q$[>;㟠G뻉6p/ېѵYsxN.m^,Iv xtW?>ɟ4E.((ėsZmyv.OƩ8dzӾ f؏}^MfTo3ь÷'?}n89Գ8T:(Yܥ~]|- ;5 $%yrC2Ci@\UaѿAz;p^ЇERy!v=ϓC4w^~OfȲLƍ9}4 ҕCb V/E:eebWq ?W77\I|uj) Tn,2 fP8k,h귞6YC{0;>?գXN, ͌%=8).^#}J\$%EgA/H fGS3f{W,{Wt#IoƫWN $?nصN Ӭ&XX[cmisKk-15RUIݥD`VA5gGڍ@Yw5 ?Yf%ڂSpKn>#8UGl B_<<ٳg-K0j2(:u;ZAPHQj ͥXŚNӟPETaw:}"N "%%O~K ]iBt߭yH|oE}~lQ21k@Kzqf(oGX܄]oR߭a}fxc3ˣwcL/pe~>WZWտa0sL̙Ctt|ė~?l= eU@aO/JDB' TbB.){.MjdgJX4L^2N%16FgKt> wlƓ>%e2OܩyRIQӃصcѱaTwE3e:Bh0↥h}[&$L'] .ȯFAxiN9ęմ$iWm?E#᮶L9lW3=1;T…>G3sSJL173Cm1zb@F n25ji{Ւ%Kx!K.o`i 9ҲۻQ?i qy5McӺQk;)l)J] H&_ݲ@Lc}X;zdDԞ?i }76-!cNNWJ!͒ p"з!D`P1mw73gkpvTC6 =%zgiq%$JCCìCC5&\LAqݟ)?tY<7VBCUA} !tOZ3GOy>L4DGĐ2NIO% aH 猉\UwE`BQ|nBB!(B!(B!(B!(B!(B!(B!((2IѦ,m go|B/5<]:slMd6 :WǤ@O30n1V{Ndܛl"D\}VCXΊ1z{;34X>/^ׯ}Ù5˸˩j?7g\ _Gdc1S2byvl6] VelW̰L { _I䅯/wvLcTu)4)hk(W qR1ίc]O$%*E.^v_Eύdǫ;9c_,8}M }tVW]G7PX>𿚫+gϦu\t +++(ٍ7Mo29(h|/6I+hnc*c+rО7Cϐu}] k)6#G$00]vP /cJgG˩yŬxlizG'ӳ0=Q*w3R9=#VVYlSCy.>eW-?u[͞=xfϞ-CH?IO"&>N> *=AS}7Λ5j7{/e/\à]]ObWH LB=+,aI5Z|Uy-T ܹC:u1hhB1Thw9vZʏv3t mȺ.Ǚ'nGU&tvC[j7Q.c{^O7 ƿFa̝;WH0wpuY3zB [*vYv(fBϱK(Ӓ6YLܫa͸ ۏ}W@>)\0}!8: ۓSSSLM켕$) tD]^;x˓koб:(MR+PD Ml=J~7Xd >dҥ1T$jˠ^T|,^xBKd iS0/͡'\h".^l!.?>!NV< Ce$~-W0S!L {݅i19`PHZnnn\pgggB*?Bz0qOIт'4aUlJe=Ʀ5^ϥUѹtG_...Tx%rWc% pp!E{yB*F!`B F!`B F!`B F!`B F!B!(B!(B tLkRcz{?cc^!R'lK %,.=[jH9uٮҧ4s% qtJ(nF#Ng\Occ//|<}%).:7qUhX}&[_j|&rV025\QK0mz=OmukumM|߭<9kضLV(y!1x57"̰~>J!8m3=q6`s_ՕٳgӺukd UƝyQV1ǬQ;&ys6`3Q I$u.ZB$fl9O_Сקwz YcT[-;EKR+r)ēZ Ѳ污З1/N̞҅=&M0{lƎ+DH0f_ 7XƧ9 T60},~Ê-4y ~`qҚ~뛂˓W|[20`̙ԩS~!#Q sh>A[nP)6l[;#[`͏MT6&|8j[kEm4 fܹ- k/~&ǔwmps)zy=Jz~۠^>IӤo4x` .L>}dc(e6+JHw Hy /ېPy>+S9MKbd>|ٳgec#B 1'4C?Lfl6Y3v<o#^ Gz,Z={`bb"DHgP`am*: F'sxF?nƽmaoqɯ!8%n.PdZDé,G`Jnnn\pgggBoJ듹?oa祝K `ǐ.K3f>J.fX.k iP>l!Ui2b=S#8#G(L)cg9h~πS>ݛD/W`[A'2BVZoB !BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !BH0m O?kG$@Ӎh-49 !?xÓ֢ըj̊veñIԱ7U{ZQ^ Ǩ Nr"Y\6. aӔp"39sk8%3KȬѭ}OJ]*4wdΌ@LFۘc$B*}'O_?W.T+>|q/{+i;?o[l܋UO,<ױ 9Q:oEԵ *R4nܘӧO)DH01jyhFTꧺz/=Gg|̵O<-+1KOoٳiݺ5.]J6`ՁƣN*TE ~j718ҡCܹC޽ٵk ŗ +=+f;6-OY}my;~bt݃w"ҕdddФIj֬رcs"##ɛ7鈺TGnNAO}gYM" <{ܘ}xS6ֆe`̙3SCFR1ҢxA}H($0gS|c?ݚ۞vB=}})M%j}Eղnݺ F,BԂ4S&>,1,^])P1y~(ΈA^ceW/JvÑǑ$,P,YtRdŮ>G3yZObywSWd=,óA_8zFEYh/^D6 `kٖ~3[j%i$b^ƝFѐp% ElEy ſ.\Y6O+"{ #!_dNjԽ<Њbhw"A|>uaޔwmqv)FQQښ#lPn;NJvS*ٟ > Z?[{QڡDFFʅj"' F!`B F!`B F!`Bzl #@H(B!(B!(Bo].7i7рf| U"adGþkLup>S3XðM1/g{Nd8lѶ m{LJoEVAzbbtl_lmRvs|8~(s}I\;6NJ ){ ʫb1uqS3N"CUalI.k`,c F E] )1m*8bJXj&vؕN+ w:S Ղ{`jw8l| *{h_ ]tucj 'MJ!4m++$:ғJ8I{cOO>5EơƶS^4jJ8.ŹMf]7êueW{W#sgzM,z_X0*`@+m& [Ø],m {6V,}1kc`sʪ,\|-@-{ȕAJP`6ٖ> Vsq T7Qė,LgE¼H뻗3Ozݽ>TqS5aV#WFZ2acûcFɃ jgR0{wHT^T.lmh+Ae>+ CoڢRB[(Nj0uxu_.7?=nt04!& 8ot%h/lPVp3^|673t˳caTݖ&*2>1֔ήP>dF«+r$37[,sZd>=o,aiy-\FKrZÏWS_q%>^\){A~cO:[q\JՁ^vF`)Y fhrqh58y k!.{ 1.ć`xr"S~Z/;BNF2yK{b- ws{_.Ա+rt,AYߏ-cՕ4˹l]n2'yk`¸kTa7(2+.vY]\AwfZ&`fؼ1zVp[(K:̜ځ}y4jogv&էS+¾ pA _;-Nr6"}O z_FN|w/6I# LC]lxTR̞-?~&<6GvrÝPPaiJx8cNkATmt/YW &FR1.v' PO(B@':;fۭyd|}@ϥ`6 ǐUg,CZxu:4yVy Nv_K_Hrj΍lG^o˙g3`z<vՇFҡ%J[;;W/T\ĪPs1n*N,ptLc׷﷒y$G~Ro0{ݏ}J}V MYc4Րr &m8Z ĉ:ص^VY][+XbM"pJ@>LF8vAFO NTfH`iV܆/^,ԍOۢQ*J Znʠ񏩾v J[f;ƬGAxe*mʛ98nmZvߋWvϚ>8ռN@KjO2A`T^7F2`$?2 V.N0*ha*htS 73l֗NOե{AycmbvW8N, -/7#I87NpB}&t=QOQ5w'yZr1ҍ_}|SQ̬aXtǷ65 Z(S @'ge?S>L`-0u`A>~~ỹ:AM`a42X-孻E'%Lrr[:ab=qu]0}[!) DPjm44٧(NXSxWv[> ?i Zǣw+vpy6_al:K3wWp1BWg@x?eň!Wp<\zj2o>@_{Q ``{0N܁3eahDBg'8 e?5H5@ea]xEJ %sC _'llO9*._cۋuy)Ç>M(UU S ra=ׄsA_/߹u:N\1 i9y=PjfJH3+k󩊱’@ ư 8&C@ddZFGpH||0R _ACP ib!(;wkQ/`U[]3L('5r':' ܂I)&5_WRQ[s?Y1Ea|&|ի5͂8`#brV?>!m2CY~ 8p [کP/_t\ؼ'5Q%_kw^)Չӗ#ק(i\)_fEJz}qkeUqv3rE0*wusR xu'PŠ#5|΀04_Uޟt8<E,x'B v 􇃗ASaw ] 7^NUѳ!ըօg`:̯iSR`eIMX1{[R5u}ixMrg$gs7}Gm\>XNxywij.Ry [RkrFl9 l ca-Xy4y 4 p:|#_e.3**#4+c0*[pZv|9o혚"CcWβT`R6]'^5_F+1wOM/7So7_gݙrY3Qbp@kAtF(G| ^]Z$_vMwZGGyl񏋌K !/k|!B!(B!(BW1([BÌdⳮeKTttl!BH0 !BH0 !hyvcw#GwM3Vq%R"l kG縚 a_{]= w71eYB3r<@CTp)HTD8oMA'@6D\;=T&11$ed&s.m9Q3 vz}wыlClcy~z5m1/+F\ @=r%W4:n)S+sd6^#4/ƕ}?W7!ViͧFԏ4k:gw2:s2umƏ2yStꆫ:`Si_qd;6Yw x1,P3iR_Hbb" vǣ ēHbbIhqx)AD>×<=0ee1QQh)Z}AI!wx|GI4PiZ^]rb}-YõH"##遉?V>g]iR :VG{N;0 5s?ВHxtx)Z ysMWQ:?-fmj ~`ϖ1Lz7N˛ j|:GV9kB )_a{y 6eac{aXﴴ/#)|!XRy)?W}8h\St7=p滃g[ƴTc9c8qpNd+;`i jMኊx`һJ\u]n2u4oѵOƴ`"M'!<?CyQ0ވ׻Mκ6 Yސ>,lECyx2=F5#gjDOаl-3 `IՅ89}1kPvH'9ܐ#mUK&Zے}}AXUř;Yz!Ε bͰ;rtm]ֹ2Sq34[η>Dyc3>S꼇'b8'gˏ⥟ 8n@p'?Գ=(FX+!43ȓ"^/ΘAãFk݋f֕|H FgR2%{HL yIWs!Tg`8 ;jxAʨv# `{ ʩ^1̎{)j )Iu)*5 ʏ~@Ȭ =G뽒Vի 0J~' RJl_3,eo'mӦ95cVMwc_>O[;;W/T\ĪPs1n*N,ptLc׷﷒y-]G;Rt+_G$Jۥ*:LL[zZRtG0b +m.$+a}o+>{ r Wub8ռN@KjO2zS=m$FrQ+}8a_xwleʈ|ߛOP°fRfߜ~>^fphH%)7Cb%q5Wœwri2SkXZtҸ8O9&AOS o+Qk;CVE>[fx?ƥF"4g'Ҵ/bIr-7RϽŠ<6[;+v@$'Z>LSj4,O*Lc$jkmoޫ8΍G4'-FܥܵLmꎕW &APF:&khpfO!u 6^EHXۉRn65$kqFޭ\ڬ O x,d]FS҃1e(l}ܨ]\XWkyxy%}+QyMnEb|37%(!OK%E7O;[c`׎E6ѫby5fu'c^-}F&*2kF!SR&q3 99KJc;IY'ԇf`}7fd޴+D#PX/q"!7Bt)hsOeY#޿=͑k*6/3$##MTSC|r ^Ӿxz؏)Kr⾹8CW7*K=ݱ]i9QI /7k[Q'l)km-ġ5xɓ~Iy9.C=?MnIQ*W̟?=>8|9r4K+&N:NAӨ%cop/rF4 G뻧s~\D[}mǒ4(57)^]ca*XaŴT'fwmtzt!)N᧱DJio053&~A팟~ZC)cV&Mʉ~ zt{}EW7y =j ލ1_4z.73Ӵԫi---guF[ƶΡtG"Fm5V~9{=g0k@"^-WvԁnqU k> eXYIyM}w}ѵ_8晌EU}O46j 3Ia[|J0}@wS\{ZM (!EAqTt6ވQ (G?((J@Q @Q @Q @Q @Q @Q h8q19?E;XzfvW"JtNا%V ~:C\op`яQOvU$'&qKbj67IfnZ(_pajᘤx|L4}:ˠ $$$ʣx1'$̓P&7r+Y$Xqj)NľGExKf?<+k?9':M2"\ 7Nd0)|꽾ݏj0C,%EgX<>.>6>\0/}@ $O{Бb"25 uBC2#oDPm?Ӭ3:\> 7;9O j`Xǟ8EnGqʍĿUkj]m#(==eF7dB. Xnߌ!d|V˜^|򁇀ESz WǮڌ;'؟؃Xr̗\B(s$?{{%F7k,uQ`'''_ ,\$ZqÇq!Gc(ɻYѧX&WHNw?;-[[bhyFaˀ*{Knc3St# ueyHAdKbnߊs[ͣ8uJ~ptsvGOcjdkN13/Kc2.GӶ?s!dC%ߣ%4Zno{!TsP%{tƆ(Ц\g\+o;$]uv+UӢFb¹^;Ã\]wy gGbfI̟yK{57$ZW!/OΠØвH؎q8b$BE1ZȆ~+ϻʸp&}-;Hߊ xMFm:2d3dfp(.8,dKyQؾTDbh+GfbM_ Xk2ʙ&^A=62Ws#!xbZߜ_\{ A4˟Bg?ֵ'F瘟 sJ%Gyc1/nW+!zolkO1a ܬأ0㯁l;v7=hAc >)܊g7ۚ<ݸ}56H̜pR`Z#G* {ڸ:jq+{’i<;H!@iy/;؀$R=Lm}fb4Ouv4/n*#0N^\$JDSx8 dƶ\Xw#*SmM-ʕ>Z^ϑZ;7]}Eoe\G]a_EKJ5kmrC+1[)iڡ}gK' r_y- XdV`\R{oz[OYQ*H*0-H@WVf{{oe*,r\_剽2. )wwbݕm Jt1%b{C>&onۛ\>oLjVe(F4iL*.2d&oѕOrhP {ɅIf}1w n'e|BQv!𜀇Вք,o\Xeצro k^9Q{v Ȱ<}MVlz*%2j>IhP? ok ;%JVɓ }h'yw :/vJjeċ"ƽ_ 1OEW"E*+[ù3q)41iaLCC9rd<=83ymOK$M' hu4Y9<&]U\,@?iUBOAl1EJ:(΄9ǐ<3UIi,MQOz2fBCjͥ7X?U{;io"غ21!.R%&T݅]b$z ;>*Ѩzq;sx_G8&#;lOs|8fD?mNZ* ZdUxwzc1vNJԶ<1zv,gZ&D"yS,nnKL?b-Ra 'ūQ<@>5Gق91E>6; #G݆7L ኶ȈYPj ʛ p7W.!# iP>Be}y~bHt(EsR_:c 6zQA\:T!', T@dg&+|lR1r_ەDW?o2grT(7ܟmDk75ԤWy k&a;ktĭ7ILUtdnzx4(|i;cee&cϯUth!6_Xoaz? )'Ur 2LTfYYYdeed@4c0}eDpev^t@5oT,d'sjM 1_Nuj֬.&Q+v&i4ţXc4.<>2OJ qqqyy41PWe1519a'>>'=uƖxTŔYЙuz" e%ZrD='du_,U<:yxxxQG7W׋.v6渟c <)YFb%o,| W4 ԍQ$(RĘПjFrr9rv];wȑ!: KtR(g1ܳ/fQV/!k>f9{'Q`Hu*B3\`ejR X>tϙ'"X0lZk8;ʲNtVNe~BEK`fM؅9x{*B_4Y-/5;;Ks$v taqjPrIjVŦ?Ԋ/dW2yr؏ V]x9?NONjI7;[fvHrH|ObJ&j RL+cǏP#QpԏŸ)3n?nyqwtܘgމQݱ!+i֑-4- f vr7q&4)4v 6ۛҺYr[9}h%<,ʴ‰tў`V(T<1-p9 vǦ~gjTSܜ2dJM81^(xe?eK])i{7<ƶ RYS S|&vf"ڬ+VgsjYulڏMz1b%Nҥm wmU<[#/?C*5뀡I%XYbm5}AMo=Vp/G9UG&ZZZ;OW?lWmfln}<.t?-M<8,JGL5`iP&> ͼ.+=W.SZ sBxnkJP"> bwtS>x԰Wm r c ;RRR!ZF& _B(bDʃ[ ]!IifD{n &TFvthOޓHQ~@`0jzh6{hNwpk7ʫkxRV%k Y/DkHt8`pa@P~(bb#1_B@ (B@ (B@ (B@ (B@ (B@ (1\VQ(DM%r"NdQx,_z723G BըQk>fn R (\bccBI\!JzKy4V&`VM4GNz& W<*L.ίG,!fCe:))iz1+ɤTkѨY|)2K.#Tft \ !.[I_:iJ7YBW\m@PQZRϣq_E`MЩA$8`,zWq¡'L f%rfbQeUgpPb C ۋP}{O %Jn-HٵY|Ҩ*mYbD[II |(\+aQgTT5^f~Gp0$Ҵ[Y"6.ѯR29ng3ܛR"YYi#FSoD3<*1o3]+7 soS 6Iڌݩf9PQQ (Ui$5W6c k-A^rIu/-\]2QZ2tAhI>m8UXY!.5{KxVGVRI$@ `b/PƽͽXH+gmx/}"pMLJjQ_{3邼׾MҝZ 'F)FX7/"1l!c~Bv*llxW2ZSLt.]~}ŕQRP(tHP5S\xMZ.2ILN֪ܷdgg~GJ41 r~Fm45 /݋lVƅ cG}KOˑGH8p*:[gyDdBĨJ@ I-'UВtv5+nWk|f@n*OoTcNC&n=!F܋Q b#Dg@ b!F@ b!F@ b!F@ b!F@ b!F@ b!F@ b!F@ GGVP(ę|g:mjCgIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/frame.png000077500000000000000000001474101473342170300261210ustar00rootroot00000000000000PNG  IHDRFTi! pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F5IDATxu|Gǿ{@B Bpw{q+V(VŊw+(PxKpK!nx ϔogTtF Y)!X[[|vE"tH@ (B@@ |z" ,[' I!A4`~H^]/e<-0 LL`?dT~Ť4Z3~BrqUژ= a|ʘmב%ד$™ 3+]ʹϊ*Q ȆTw,Ŝ-ҼC*-(B@@ a/@ǪI&hƫQZ6dM4Aw8f{0YK੅/RQ,>u=. @#GrsXC}뱳< ռ>桏80ŴlEov.UP{ᶽm¡$ iА /ך_7^' Г <}2sO  oZd!qOM  ݨS"xjCX#3 B#@С~fy%-mQUI{XH}~*Ǥ}Dx}:vX%Ӕ8ԏQ3& ף/r fKnzϡLѭk3la+~oC>Qa!a|?"X!qc⯐Eɳ(H*ҝUW`?/Ov:q~yoh<~<>~]q98Y6FFm(3/-%.2a*& I-,j_Cp?4&]4=ߑGC'C4ӡ֘XMDlK˝IT̼cs{@x1o~Sy`.Gsy+E$:#8X2x{cܶۆ?!N7* DLhwrS3,K[L155Ŷlz6%ml!w<6rHaK!([&z!gVڎ[܈8.jSStuF^\ sos,D>鍷735%mmSPd8@`1mrK( 6ڔg)FǸpg~hyU)5p' KiӘcmѻxjO0lb$\Ga*~ۍJKrw:3~MhPݑCئȶ_[RF)r@!Q6 ++K,L16:W.r*ȷ22 UvĩTywOOJh4dddV hZ41ĥSC Тf]?J[4[om׏6`}x?2.ppT]QGn0)`hÉ^?u}z93֓T #+@ wiu86K˲VoH;DɖNvީ3n– kh_td#ޕn}Jg:m"ZZP5Qв$N 8ЗiK\P6MS}^20n8~_&#,(`4:%|x6vqԂr%*)98j5oFסEu9@3}×B~|AJûo׆&yX־ \O6F$fX`VL,|/ -z84iMEEĸhuwoN^eS4rDs /} {)բ/@ ѢE _нcuTA{mWWphʠvձRX1KbjbϲSujuXp0NfVh3={ͽØ#g<`CL(@(Oz+zzL 4b{̿HF ǡc޼~yhH!@ Q 0  _:MVŨKFׅf_gRPW(б/Z~QB94t(1]_qeYz 4j泛N] axcjQeMi#F@G|ϙRj%t&&&&MPEFn{ ju|2iSM?!Lxj!KmV?b¯ex遱k,yj=9r{EV/[a?|i# azw҄" (n&QPNT(h}:<M `rW_NUV5X@߼0JާRrD2!K5u6<3u4O.^E\bq7͂ uB>!:J{5E!stT6'zc!ATjEx}:vX%֏A~Gr2a\ Roˉyh9N7%%f5I"I Ge?ƔxاgXu&5>11< (WA_Fh b|'  'dZtFгK60yiҥW&& c_D#eX[5B#c0?5)ٳqb>b4Dr#]c c62 B!)V?6s:#vѧ/?B% 魰8̜T7\Y\W9,Kz336O!c%^//cN,^[]v&j-OB*7͇u,O0_i,˯5ڑ^;X[qSʮ#.1|DQܿ80 6 8k[󧎴i)`l{{L,F#-!D[QLM^t.vv |6ѩsF\CU)m.(Ҧ}^209(~Í/i68qmd,Z䋅pqv)mЧp`k:3)Xy-d.M,T/\iyFԟ`<Z:٢$\׻26B_v :DBϵc<7n$7"]?~JXϮ/fX`VLäp]KZ$"mV?;pX9 \ٴ5h޸:r&Z.OŒ$xFtqtQ_-|AI'ҍۮu ^_`ДAcbԑĨeqLԌd`:̬Z7gz& vokPןCݒb4éJe[tnUj8m [o9+bo4% btSlG4Z;a1{ѻ) P,SJS;2ehP& Ee^js)  0 #(Ȓ#0J1)$%kj:y$5˂d`2JT/hē0E\ɖ\ͱf:ԣeg槕h/YK>lmmk1ǣU꣯l_+~+2@XVR?mm@ |M tb^K9ÿz@ QdMz(OہksBC)u4(0i͖t2$Si&Q TUvX_9j(r.AE@ b(•|ր@ QE)eB/j>=BVme%\'#|_ 22b6c!I>BWIx@K؅5qѩVi>jk5ĩcIj28u11_X`=!]r}w/̩;q3Ld[GSxX' yfS(=fG G<ޝܾYãhkI+oYwKʊrs..< qetv>FO <0g U&n$$vyEg2/+Vs[•֣ɍLPg jɚ{Y qUqB1&tv(p{Y:ϰcOiz6U]W?s(w_!EF+Iу< V<5nϱ`5jub8"ڗ'G&֝y'_5]1VPL2)뎕<֗J0iefvcPllxt ּqMpO\o"hde(e\j_0D^[Ne ^>KZ<YVF nId ېb1vH"#C8R 2яwwC 矵w3ejQM?ɕ)a"%ɜT?am{mx.t}dW ]i ˆspS!@ CPEqg܈IJ%7hb볥%fƘYZ+W.rJ R̄g{ܡFOr3PBO=N&QntoĺQt•~0o_uՠO(UMQłw^LlXccbSN!Ϯya6yʅxt Z#n7zm렦rc @ 1ۑ0LCY^Txuf^Ț8b5h2EѢZ6u\: &$mQjc@eUyV8Vc4D]"SHidf;NC5a 0mSE㵻/E7&~y8 iO!y ߾BReiE@p,uGоIkO@ Hralz]fV1UGrm:,U>i[(q$Ui]O&:@߅+@km^kRSB pf;`'rB.K\©8MZx.cP!P`UG:ʋeW m}hڋs׊'␱ώ^qη7TX8(E.r+[[[Z5(Q~k?~Jug{|_]j%T ZA'!@"}}rDW B@@ a!@'+ %@ sFn}Lץ7O%'de KV+Q#>R&}NM{diѾgI$e fS)(Q >VVYH _@gQ֖~>-W?o}{9.npܝĿ}Q{㢶% ^aczE?tpK䟸KmL A_|dؒ*k@ loܞOnJRq_Hqp¡)U Gs}ESJ*E2•e]RT)-ĽﵜVIdXE6CydgV1ϵ5S&C*) 2x#+cy CYѣ JɔrgA vOewEK)+U~<80.㜟D*r*Gsؿ(4%aԝ snɚ{Qjj5n3%l۸^FGzL۹E)v_U;NcɡY1& mjɚ8b4Eދ0/M?fA"!A©2?m3D@Ё: ۭūoU͕ږwX8vВ4DFڦ^11 e"=< rt\ *|[D%Mu-1]vxr'W@nSc} G}6~S6r_'V x7>F݃x'1ۿ0yNA¨ë|ɿQ|DU+z]KBk& ~Lr%6p7fcH?cw/$9x 5i T J?JL?1lPteȬ?P,\ mȧESEͨyn8̀hT> ZXSI S?9ʟ{_) Nv)RI.auy3-*S^;ѷ`6"y%'"Q.r\,1<88S(\YtpUrfL>\\%stRKT QSt襏C`މmsbmf SiR6qf!n7m)zwh__K*j>(v=]sU\ꚛFØWJxm lR?;'=M twm^3 $h +32u$XTϱFڗpekBrI kK<N;FG ʼ4^J:K$276@9:uDG; -)ݿg!CV2ae$u o ~iBޤ + >G7G!,:)":>_ZQPH IBJjxxH$ͩH- #-.$#1}$OGZH?E_askN_e1i"}Qȷӹ{"i>6vv-/~ۿoЫ|Ŕ-T8ַ/Fe6!iEl SGA@UIoic2!ÏECN(҉Y.IJ/YsqF=N ,gkZ}X WI+[[[֌}?7Ƚ:m m\;uӹ4wqb23;>q4RBҔ\x`ShJ_S> ª=HW;B*:: /He@iTDx;dI5%Kr3FDѯ ܦ+B5,:r+r;߃4YN9WUt.0 &rp3R;_(Y~KvK1U s3XɋiɯY,k,,FSH߹CG|LA}r_Y~?{\@iDc"Yq,7](Ȅ0 :sK-'RBQ*(!&? bi@g];!b)!DȢ%3κZS(羌E@̤H&˯ٗ|G41}uIXs$F> y2Vp1H鮓13Ӧ-? g}ޢMIa`ʙ%b%g1%)$J wRz'G" Idd)K;LViv4L7v!}?D$'5ӧU 򿇅,QX;=)"!Kb\7EGސ,'3Φ%g5 ߔVFS9:le?0ӞޗFKwE:Kgѭ~r,AOxqJxq4 N!kerz(\ m>Ը`@8|fU">4>B_8:eʔI U`[lef5U}>hg]x%j_&Ზ{RR0)э'h`B98X&*2s"# B?Klɋ(LoDI;Xًq#s99$ˢ7Ėwq`M#,iB-/>r8b ,o4m}wؔ8 ۋ[1SH8ׂ1j.t`ʶ-),Sle+xZ uN?Yv'}apٛS|}%[$FHRe#6t .aex耇kFcc"Qie2_ o> k*3vILzlguƱ>㍳5E߭@&.{|!a8ƲQj5s;b$afvC_<6Q%'a2OΛ ,=$^~ϒ+v+B(#5& Ch2N&TcZ#fl/uإEz{̔Abzey_=Y%9M>.s&΅;7vo^"mA¨ Ξk78>¢,?.CC;΍ǐN51{4t_5Y(5ꨫ̫jiq +~nKB_$tQ}1=S&2l+ij|EF'$Xj511Q"/ ӜrS61[Ȅ{fvoKq7l6g[; EY6??"YsqBˏQ``IG=bno`"PdO#$Zsk\15RQ"=«, tQ Q LVWV7 ^E-)8$%-$Y%uB98JRs]6Env3+ ~t6jɳ%~BoٽE )US}FT^wo) ~l"r, y(C(Q % &KV>eWS {AKN %M,Qň#R|D@ a!@ Q"BYtQiû!Z9Z:I>+1;g"QVa0+Ҙœ6>kyysv*~3e9(bg~c)gxYćZR!lI~Zw]]dQO%?VH-#n<קWr^Y-H#/]ϩ#/^\Ȫh< k8ᙸGC\Ƈ#qn#k8t)ļa_ЃI^$!*VN[K94>K!JFO?{{!hANEGQBtENLi;Zrc"k@ʂ&^v4 <˦93Ape+ Rˠ!u<c# ٕ?3BBƍݫ8/x>jBa\^֙3-/F+]5抗E+{[nAG%1NIX[*=hQ€'8]Yfh<&7'7ڰR#mK`M@>j1phΤ?WQz{%:s>Qӻ)堏Ag0L픀5 $weR*Gu7ۏcJԅ4~}?jFɟ7F9kt zK0En?~nq`wkɏ}UTvIeNȃE4R}/U߿UZcJ ><ʭ%'l1V<ɪ=ya_6 !%ޘ';Y&sNu G'\Ln`}ͥ$oٜ֍}r~\bp!i !1M Z'5%?mʦjoJ~ !r̉BZ5X~*frn3?-S:qϦ{Ę?'V/IXS(d3Yc.EPj -]cFf(CBc3*Cy4eM^csWgRpS6vWRQp]QV?d|]GKjxV+@*Iq?˲{(?;&Qшt\~%7NH8*Sy Kԣm) G6rZ)ldUƴYQը/0lQ&M[^[ùWz'@ 1iS^ 4MEPaS6p%&/)v(FZ+O RE.C6tX;%+jaRRP`#ֱL[BUd 'fH25qux|Y~@I|S -3=UF7_\4 0n]ɹuq S|=o4j?ΧsӤףh]wwݕmKb[J6fԖ 34kbH0(~M(SIw󡊓Q9$^>6qx^μ1ys>L8s+i98V RTl{@tZu]Dcfl r; W«rs,t+#q҉163zmgu{q3۝^Q%&F*j/\LW.FEdd$hU@Q%Ԕ!}ѠP&Zz2#'<ҙL_qڠ,;ew2kXOkP}!{Ex+4Pb9J,KkT ?vgeI,+pE/4~X6X$^r͟ץYL:яQq ^ V͸r(]¿>x{z"Z`ldA"BEIH(3q> uoܯ10/Xy(hSA Y$(.݉ٻJSP0r+1S4dZ+^-1^L+gor^J1E ǽ+WJ >A}1;WM`` %@1&[oBF@ (B@@ H%EG4yrRbW c}2{+(dePIR~g.J]9QUeYz?m ulB:ONcf#gbrV%s;:rGN${<F)[!B}/CWȌ4_>,]+%r& B@>QC*)$W>m8< e6UYp"fQt<2;f-3ns[㩮S`6_(}tf+~^,0reL(x䇭Gr]NCIWҵY|# :%܊#suT.9}M]\tsO溃..0c^߯%qG> qC(C OlKO0J1/-ݭw>~o}>jZOߍ_DmLM3GXX; WLQ;Rr<18pS8--$Fq֔,jFn }"/=TPX`mmoHX)BZX0>A#]%Y}8fX~xJ?uǰbXVifG`,i~}ibxKa71\^Д\4m0k4`etcz{TMShq4Vey%,ʕ5 J!nJ43h4w>(=O+; B1eܽXZ щUn2lsñ[e1 hi_n|s5)-)S T498r<{73{N~1fX[D xq>޵گFΐ}CuBZCO Ԓ4̓ pUz:ZfݒRӊߔ៊M+qᜡ1>b? H:"q}%/`#Nku=ʑ#G8rxszg fZN <\ߎW>Γho.$\W4B4D _7VZ!x:;bU7>: \ET:t _Jd@gF߾<5.j;\Ĭ]7y/s{/Zx`a:*^f%t_xt{"2@ 3 =ߍaV.բ'>>Y$h4hVp|I7=k3$2 "g23N:/LJ0+drg1 ،g"QL\^(.Ә&u oe?\: kx_s7c|NF|}_[Ù/08vR2뿘2CW&6{5xt^1jPJc,q ɔo< n3n& ߈86,I?;}ihI6|\`#3>hl"U frf(dl&y:k5`bt SgL+3Lf:tI˜ດuGr#&gVXO^˳鵇#{Z7ʼn,s \3uKTTKG̝Ќ'2kDJ21k1Lng?Wͭ-^4k*TSד4=U⾤Ye'hJ:ɟ. _Qq߬o$hg(LxI?YN_})\?ǠGj/4P &VΥuR+hL//׺k'k}տ|/4̗AV9&iiTk 99b)V[C2r~kcd)7)Nx :3;Uh> eIatB*ɖ(#1+j@@ a!@!u/BkI FX/,)4rJY]q@ Q ^J|vJHw3r'xhgg'RB LZ5WKA"MK,N3}i) @;ͫߨ$əNIs>tuԤ{v鱒McA,etclNM'DY@R~u~b]7,3MD%9SmTuvkʂ,ٻ a( a|(I$3 f.R%3\LK/9ES变r6T.dWa)QR Ĕ2+Z@@ a#e:D hDۃ'\|7dIq%m#\ ~?KPZ{\Yw5$s3]L:"ZZOb Ŀ\XOLŕ~;:/bX'[۹ࣆ؛,@Uim}oFGC>- )Ih_O#Q\xPk5DGxrlA<'^yF@Hϸ{g?%oGMC 8̛:caԢfL ˜]cm,݊;eqhғAߗ!S4 <}s\ ̹;Em J:ڋh<&7'7ڰR#mK`M@>j1phΤ?WQz{5Ȳ̽{ė%Dt\7A>yKR0_Ǥp¡);*A4zUY%Nq_Z/Oochj`~(±J3p?# OlK~˜*#Rhn y;v DJlV6zzO~i=nJ.|]j֭̚5gbaa9}E!0RM}=G49-DubT`n-^m:l|5eж1&:0 6OdQ-$, I^藣{"ؙJ`Z<$?02YGSt56wu&eS6vDM*aeSW \ƹ,}ݍ;wݛ;v"̖&IˬJˉJ>v'ƶ= &߉BizE TK})iBۦ+s!ޱZTޏ)UԁeQs:8'[[EˡA=(qxτP<)*J xNP 5{lZhٳ3fHgw3tM/_0NiD8ߠܵLiELX3Ju_ Jjh3I'}\147Fz\5Kl 1;1F8eyOW "(9\fQCčX1ch&_+ z r!̙33g"A9+ꂅ躼l F`)f/ȝs[}UqU0Kj0WD;C%FGg EZ#Jn,{琒,qr5C0j1 /PDsdHlb,3뱚Yhx5m¬XH[Jj8"-yj3w\>o@sU\)-0Ź0&t+Eyű)7 ޾ޜU<0QBp%qD+TXa0B-4)mTcFTk7 jӘ01juf-ӡ3۫v81C/Db+V>} z5 !鲌c Y齚9 015PSSS N/JHBN#%};GX< On0:N ZXTT*T5u,VPÉURRLMb\x0zFW{ҥܹse˖/,mN%$Yia2aš^ؐJX[Q3 Brq 6H~%hc2Sa(QPKI%K8L^]wqwwW .m:*٘Q[.3#fy.'Dg=ǴtmܾZC6 ˮ|UӓEk.źzݾ>dTSڔc&,ɟ1M0fDqe^Up%J%u eolfŁrt6>ow[{g7SB=e} ZP9$^j6RYaca0g3XFn(iU EK5`DEZ'u9YMT1f_W'FGGGN>|RKJzg Cf{ H3RNZP| >@㙟Z/.lN#rI,&9M/8v=!Vz:bO=0&|aRBeů4xv7Ы* 9t&ӗnm'l\D6(cwٝ֓1w_H޿q- :TX%RBYoK }Q}nR?0CŪJcY]|DliSh㢇߉,ØΥPb.nb_lC4sFwǴ FjBU+/WlMxgAXHp.ɢiڠ ,/ M5ŋQ8%R*ϣcq)T|Y"003w_Hj%rr#%ibimN˯q43Wdבd׫]Ҋs0 B0 WZ x'ʲB_(rC9t((7!3.ONrF2eRuo$gzK8!J^o^)kM Gr #C"quW#Ū߸䱔ɒ kEFANwߗw{7t久0 )7-IF0'_g(xWu@ (F_X~J :$RٔG䷟r((ai3ϝQL%I$_D=>}&[t2B_)!دR&nyJE)n-^HW+HZ[XNڟML-}ݞivJ)Q[–?F Txg0R"'CLv{aU zO)D˶X ag9/a&r"irNȷL ]K; 'Lޞ#kNh2&1wzk: |'cEzw<~}J$Z5e)W0'Ccz?ƧTqgϞMxx8g~gz?w EDŽ6?.1h(1e+ώʅߚvOT]z Kk]{]lyt/qH(@I^.=;'v#nqufUW8ЖY~cD{ޗY97ݫh3|Zh1}\n< r슃͠zzz̜9 Я_?>l%Jԡ,aE$C}$)g_@iߚݭw߈FR" E|܎7jx_dq=l]ZS$K.s V02HaJf[65iR8x`+F>}>1++XT>1$vNg)>$>QHW "*L^j5\-iSEMɟ2tFEoVUjh6tvҪ,}z֘[4l `ÊW66(3ᮬ5 i,+ƞ,Z]vaddN6zH2BWzWNvmTq+e2)*>v0ƇGh|jD?Iwp#o%85/6ٸ0VJP@-ijg`k5cz":.󑨣qolfŁrt6>ow[{g7SB=e} _::::ri?䜫f׬Ԝ xr9OIIRd2< Fd/D%60@ƥ$<9weZxŤ9~HYzz/z(S-ƵX^S`O N]rFνaO6o ߶s=o+? *1:]GiCW'$3rG\WŸCʦx5ؾxj)~ۅa$8+L%.2HbIP衯WaljD̙I4t3y5 \):Z1C{{Ѷ)w|L h&8 X)r)rlQ,UG}UA{Ĭo/E"tN!a|(@  AF0 F@ (B@@ ajH gŷH@@ a!@ Q 0 F%0pMޠM]asap>Wrc^S <<x!BΈ6r 0-l[B4ZZ@~sRs)UZ8)RcǎѤIƎc5 *5*[V鷥'}T֘nd_N^e8LЂtjiM}#g ~pu+ad-T@oq]G%!%mnK@@?#Z͛73s7[ ڳB}b 0sgǰSq.P+ C;T1$ sLd[: ϗȣDAc1wS ڴ"B2H#=Eru৪ ?!{a]ly)8@N.`Y:A#f~i sa-! 8 >_gSn@ s ~-wj|t<`QT] a' . :͛g`6t_=n'w"jRwe!jO&Y6Ua`T|&ǯBձQgh\we zPHh'Rgљ:y{@1  l_A1߂6013 [A1AB0 ða9(v6wu$lŸ?7n`TP)Sde1*P!lˡ%p3"~iœ9(=?q _XI†XR S8!UBr5y?k$5_3P, p ,$y#zay\ ',4 y-aEFFRzu} ē'OXtiE1y*jƓ/z dFVy!uľ>KِດڽhiVjkYSQY\bAF1ʰm{P[.u"`ZJrRhSnni>csh[e E <v\Krv@O@+ð+˗/B T^}7of֭tڕΝ;e>,AeJ?Xn9v`V,:r&^$:L4ޱ&[?X5h{o}F<a, a2@%qCyX aL O B`G3 tL{q-)XU׳GaԨQXXXp))͍aÆ… ?nZVNY=)TrkQ$&fEhcq@g6-xf@=J9̤p&P {IJEY@p2xJ2D588o3g`kkK||<=z ""}}}6l؀هFrWhK-c+EբM24Z-.{dYxo(ك׵bJt;K0@=l. a*nU84@r[aK(Vr 6{%eJ+8YP}$d[hE4hiӆ#G0yd^ ̙3\rAu(CHU0(Lc9ָ%u"? D&˜u `uXh9a`u$+ k[>dQe^.~$OG(X?R=n>}x K,4lؐ[nдiS~lA=mtW{YJaHFCxP !D$q n=FсTȌN`Lys ^Zr, *Ÿ-ag0[a,=vO 7\"/~2?rٳi۶-7oDeXv-/:!O35 $>ڑtbRԗy]=y`tzq~.{W1sS͗r|s7[:Qi/uQf0 /z#SMxpƜ3LNՠ41 oIy/W^ "Jsu .^B`Ν.,rn,Ԁ5q,z^_Qiwgអ1~NazT};RL9q^?JQ!Qj٣BhDo}:xSn]ڴi[YF̻׼i Ǣ3ښ۷od 'DJDF@ (B@@ aztH g%8X@X@ Q 0 F@ (B@$ޝ²yirh&rgjŋYGg /,> 9̼?Q3o0%n)$?zBwˑLsC 'Z|v/74,wFWBËxde)֞ɖ=gپ JɈ xQ*! Y>%K͞Mu [̧i&kcj.Ȯ8̘r:ѷO{* \쉆S-xy͖p#TZ=g%(FѕGρ_Q8KbV/LlN)x1Wr/[XBRr<_1yÊǩޣ;H2Lu6֥F  s{Ac6x-Q*Ѫ3iĬ{w^?7FIe_8᱉..&/8zr&hdڡm!Xb'gDX#UR /`CˢPL_? v'k!_0f+'Q${M`D?9bԾE>-[bҥܹse˖/{+~ {}- dÈ-Ly牏!:" a>~ebz\iC5}OԀmKa<o1}t<==Yhvz6VzV*MUwPG4Nq~L:ݨ ‘ZzFYZb1gi՘fP Goz~ך ;PGϞ;-[S4} G3`" zcӧM2GJUp@߬4CulTjԑ۾^>!9]ʺQ9.~r<"GssIkZ[ek&ѲZ"/o~ݥV0EA BlȪm i[P_y#8884tubTutX|[0n|IGHƔ;;26UY9`iQ<2؃./* Q9bQCnXL 2 Q 0 F@ (B@@ a!@ Q 0 F@ (B@CxY5;7G$/`.YrxKF pLkbo2)э'h`B98X&/Ud /-&`A}Í_(NXtB}pԶCVUH\S+S җe߿Oɒ%<]6>'g- ?S:.q]Š{8qJoWU7/a_xi_=G ܰKyUt[2Z_?vJZ :!=eAحX#M9v...9M։~z]'2W|㠻3S;KxZ*SoiL 5}麿,3&'_iV]jb'*uF3#(V4*H6gȬZLNԄjR%?̞=vqY,,,rEA4ښ1+]aôCT\t-&u =2XrY\F՛X*8&<]t3ebBߊҙ6uxѡ 3 3^? [)) dm:7ά"|cTtܙׯӻwov؁$}iv5ZvB/# x><+DI.P~\@a|kAmSEMi|.rho~~boqRd6^uoŻ̞=-Z0{lƌ<@;#s'P  e|pub%vI5 Z!B7#][˸j{FYfKcv <qȃI:!Vf,==fΜI ׯLLd11n$OߍЭ0Z.XLPjkF._KEU}lBnmR$A 6!o&.ghm9py)ZhLB'k n[{f[m6MLp""123Phw;jܹseQ M+=% ? (Šh1t)LII- [ v*ș-@,؆/2I'6ew8ΰɮ_6vt;Pod׋N(f+V>}|!O 3I/u=JC.J2tXDUZ 7Z߶.D"_kV{Qӆ0NOti By,%/ wmFˋQȪn%)y $cOҥKs˖-J´DMqcH7@S4'",Mo9Gиs<(,ƏV4m-wL põu)$oFsu|9.M4r0o#ɢE8s FFF9,OEs!~ܼ"Iz΃׉ӷ¹l!,m痍t?qmpĊUA|?ZItػU#90'N ]M1l p#*aցOEg{7 se:<*kyv!8F'ŏ#O>E^[ t&qS*XʊyY@[2FEP+\4]n3özKݗ.F~Q{q=CM[zmF2[Ȅ{f7G| ,֎B ϟ?gF\Yn|zKv'j[T4~Ǩ1Jd !lixSnXc5mu?GqJ@ }WEjyM}(;NL"!ѕI$@1] 2"Q 0 F@ (B@@ a!@ Q 0 F@ (B @ceՊTҋVa\ߴ+NQ4&OIPp r֮- G?%DZ۟։5ʱAxyr= Ӽ3{}V^T0> b>9$&$ps@Dhr{?/Bp Y  1pGoI\jZ&.2P%@ ϗFՠQY8ZAJl2Սm `JȤ)B 2˱Ǒ1۲䫽;W|.gboU[N\Y5fY`zs<20NiW֜#^hpS}\kuC=^;',Gqv i4(sUf%caU>{)25RǍbeKjPgGʖ}K N3\bU{Em7) <ԕq_ay;v &D?=|Bޫ8:Kq?3ǡ52$c gyB03J0M}!~և1X0K#DJ3JmӺ G ?xQ`̓4Kmw3؇f&q]ޑ SH*PB!Cgh^[X%m7 c B ٳi׮gϞ"^¢ VWpoecm͐E"a!*.:̖yQiL7$;(6fƨ/N\wbT{Q0tM?ҹ\slEp*w7.,kG!95扻;O82&Nr7770iR* Ҍ> ~CsY{X7Aj9MI~Qi^'zθЯKM$@aC f,gq)̊zh},΍H9](K `xͼ~0_:;wqYrO+ԲKEz|vwzŽ^KyeY.#L)^>Wx# e#HFsu 3 n1u%:G(=1ˍ,Ҏv5;{AվL+2H~MQ<4}ҫqJsC7'$UChB˱zz%; ƳFԴLYSQY\bAFkֺ*öaB4Bŵ+ԀĀH,i-ꆒ33gΤA XP&&2seΧ} ֏lV|-pa,o#A4Fez "Q Q#yqƮ5$NCKi0ۚ [PP aߣ tkBrH)˜icl6=p%yKsA"53ګ#h"ucU[ÌfyQ6gs\,dtǘʂ]&MS?N>NB*?N6F_PjܹseQ M+=% ? (Šh1t)LIY&0Is660L12Fe")BvPi>4NqXBEkq)LEO?OjkO Pb'X;PHyqb/fkGnӕt :)-kS6c5vcQt /(`S}8b1[DlG(\Cxa&ddYFʠP2#O>E^[ t뾫S*XʊyY@[2FEP+\g{;$]mZ1ͼ6O_ }fy)˖NtܸME..Tk=k^~ ?jOV1e1BdS# kpqb|UZ'&t>dt8ֹon\N4si=vUYDBh#9e+~)@jܻJZuFppH#0gݦ`iI$;Vyߓh~j!ϋpewsR(iF Պ=+`(޷#e$#zGѲ('&›[gr mwp9{;(. P,QlX?{k%h1Fc4F{=jƨQco(; }gٙ;3965<2XM@ C@ a!@ Q 0 F@ x'!V'@X@-FGGG$JHHxa1 F@ (B@@ a!9Mf >ACTs=˜=mk3sv.4UhR>,=Ip/G2C_ɍ{/XR22X?ыܑI53ҲNp5ӐzndT\p7:)ĜHq U͡rnŵyb'MK̫JUic 4C<Ց(Ig94\FS\(.;fвzdcd\3ז56R2t񉜊=6 WWW\]pOg8&wcdr21>Gz:~CѾhL9*#Ygcx O|ﱑ{_Wcb zk /F92U&zFBƖ8mlW.aTwϻ :"4FzKȉSW)UsF_Qz|OY_(S~ŴqN))g"A-`3pO+ڴ1\u#櫆EuHXUet\_܈2_<.}G6wI|P} ~ϡZ̈́0pLZ5Tk 0Ƈ>Q3|{tJa=ϓ:Wo)A"ogHUCw1n”M1%FV4|f bܘEIӺқ%5~>/ ]ޝT@1O; jp@} !64Q3YEK~FLlD08YaD@66& ֏}Gv0s^ aL_HkIڐ}dRs'*)BYm2[QwbG)k#=rz͐u F'eΥ[ 1w抪?O\/ss[9:Z9Y'>Ѣ,ڀ =q03ޓ6}zXlV Bcy,'7s~8G4d/?G\_+||2)Cmd=zFL*WO.mmv>ܻ7v5\3+4;S UFyagg`+ُ?0I]GoOi[lll_5M~*}}[.篕)ѽ31sL1Pw^!Ojk"+a|xyaʵώPifV3qWssYi?eg\/2qGn<(l]'_U+SIw; i j@|GU;_ N[if ]YFAu^X&kK D&>"X xSk[%aQ'<@S6%.S*$@NDH!1£9u0Q۸ቕ7qlj 4@cw v$PancBM&_˭:Ӹiq1' @~e풬1ut-4Q]їS ʜ 1W^4.pE~ pɗ0=|7лR:,F_4漩,>xsf|)V^(o`L6 GNrtόn#nÆM+,nWJo|hUv$nP!KU>SjLM(V15QBlJ-v:Kyb*!k㉱0XJ<%LEte _vgxDkޕw9E>|USښġ!.09yK%Ci"FfX܅ MhA=ɋ^Gǯ*V!%(n[-ֲ1Kom\AJVHX׉տ׉)Tf#v0mE,$@ikTsFkW>*ȶ9y+3~S!>n;OgߝEuK!pX ~?az)Z>!vӓ?|PŘzu%!khi=#ҙwNgw)c XϷ|9{K^Vh.((:էR4$@#i1aQ!pY9l.`)w!w#gf<=[2= @U eLҩzxe(N4^X~suTcgC˕*Yc6 Ʀ 㳱5n+MLl6 Upei2íio d"w%Zu@~#ƘhHP'u()!#tcA^F (!@ Q 0 F@ (B@@ a!@ Q 0 F@ I&\zLM,ptG9gN<9}MWp!-%d9Y~sjMrho.ѲƟNexTނ~q>0E9=*Ubд͡rn2JA9fCZé¨8D* j$V+'Lʀ/5.9W$@J밥u<Ww;266-u 1ёc*ːmfpH~'zɔ#r/\ևI77'aZn&@ܛ⯿0|#l=rh Vrz&'$D-FpEs.TzJTucgV(+f~ه1qBO)%4ryQM>{;%X!3&pƿIT$ԥZ0VTρ#X6*Hc=pL|^7dq0pLZ5TVվfY57FpL >>>eAƭkWZ?4BIsi~u)~kù(MvR'cROOO>qˏT`aBC M_YN;XRUnT$FVw2ixA NR;E ER`p$:'Ħ<~#g"Hxb̌c1"D<Ŵ% /O~"[V J y6@lN _>cڦaBnΐ1Vnd!si?E )P( ē7K!~Y-j}{+kY:",kQKyڣdtz}3/#SdP*j5z(lV-ѐ}mlDʾ+ssS+Ocn@唐~h (RYi֓@&&HFZh)IC ?dl1y+Wﷇgʰ}ԵϸA[؜_n=g89pV.ڀE4MhnIŊPb- =y#:VJŕCzuj^75#q%6nxJcX\4%X\M=;Ii.0 hZ9+7X2t(*dgd^͢Tu)C{%M'!T[((|"W`lJߣW_]0jʗk1Stb'"!A;wdR\Q;l1*F>eNN^LiD> a8O'716Ǝ"oNQQ}k'pEtVJ_D)'eH9!80R*@7eqLj {T dž2H!`k#/lO[vN)f$qyI}J%gS$9 PÃJhNNVݳ|vD!ÖТ 6X,BG[`קb2%^ow ivK*E:  rK,҃o0x~uw@RR.6[‡ckX6 "_ӯYE [Es}VXu׆1-VcUyL݈۰4wS 5gt\ݙR4o_ܼpxc<Z3aff9ź# x!'Ehq/z7c3w6Ze$ B#XO3_kfuƴ{yjj!GpVNj dsi]bC2[#7h@ h~'̝(U ],0 ;?f 6ڍhĴL?VCe [u ;XeE,$@ikT*@&F2ңv jtm1;Z ku,B=g*4&CE&Fj-CĖ;g,ez֙Bmۢ@Q%=ܫؓFsby'ڕݨeX%6-:%C 6bZQ[!^S\͊8Y%&Iak͝Y,+=z¯Έ#f13H˸Q "(( *l( ._[OuD[Ϣ c IndQ֯w)kEZu_Q b|#'&>*$VV&h9-emp'nŸz Keyy=3ć΢ǬP`^otEU6 RB[P^EhoZtM=:┰1jAC mmm70n^|)蹒R8w0S?u-HBmT T(G^eg4׀QQR}Ŝ.蘑.nE܂9k;WsPg>˱7XQt`C5hd3N֢u !@aa(A( B@@ a!@6G ) v*br!1Q  Q 0 F@ (BF9˿Oe)Ν;I]=IJjYte@Bb2>@_z|E0i~<="͂g]W#^ +>;cTA<>le?y 9 3Zf^cI>~rFg{-[6iB->)/]Ē,l%p2 5,c[z Ϟ}_;LfٜpUPg(Q!Of  JFsw ',}g*1h^η q(Ov+ςM[|?珝>elPThnx؝GE2G^IHHf(>F'9(4(Nn4\thM u׻ }u ~xM4_5tl?C1m挏>wϲ3U'綏>>GR P׸m4OSS,{sR4iC#%ڨO3{$zLSTZa?M&ܹyFZ̺c7s!wMZwâk\YP uqܾa?Qh>lb/ϠClm3_dŽOr'edpCqI-AY%Ca>(Z~IĤ\Fy2S'ӆyfWb IF̒xhcR`wQ=%}zeTu,%@2QAܣ?ҷgsd'(>KE鍱7X\b޳^:ԋbavz; !adf֓pe)-ٰpYGxp76УxHT Qф`bEGN]?PT0Q㠂.#_3꞉OOu'!jڷ~QmS9' IuGq16qaY?{bc k[=bBuTܰSFC^mmsy oxv=ixE>@S PPDMBVB=$?>KITj2?C[or췍s Ig~vIOĤ| ? #cG/Q`nR>콙ı`OD/{Fn lu+Oe?QDopJ  4 DZEq<{ʞ,#i1h44 ΡjˊHq.^%.jԢ ޴_\H}mMT(JYHlcN%P,{]X=&yݦ`* 3·KJ/'PDd: FJE:]G ,4z||B HXgE">lM'XUwz"%Ƶ8=ܸoÃLTe>`3LXDj^/#GYءHqqdžyFߚ]tIU뼧91;բז6F[.:>Cx;M{ѥGp4OVRnY&M=PBMwiQY0D243VXB[D^_B)0S-BKR$+':*nfne4&S V%- LM  q^^pScĮlǢ$Wz%XVu)S(E hcJ\5LJ2 1bS ( ~ʀ+@½k\(Ҁ_%u>HZ@OI_B%Hkya6veEKdl핥XRm;P,+˘z2H#Jz$ m(P'j:JRS$Մ ط[f $ZI}eW:#ʼcs9ae7y,ڗbHQh,֜OCW#D?^CcL3\ ܧQ#>Tܻ|=W)k>LKTOGNmq#|wa'+ӿ4fysT {NPs¢kx\8ĉ[DD]h6!ؗ6&hbd%rP YK&u}&9ά/S[qqt#EѠ pi:ՏpUb zD7aB-"xoOlN-C/q'5:cU/_Ĥu98nGb$$$#YFiӓ)hW5hB/tN*e#*4oIR(M-,NAA8sexyOr}J|X#M묥uhۆR}I`g|7y;ϥv/'%( М> kt2g=X/ @,/צYpn3M'l#_P"qӼl4n4^e,YBv/?ױd#::WY3 cLtQ3ǹp_(Ȗ՘z`C+d`J20BBѣ0e$ne`Z3dÌK]YpS#P 1šN|&BL]jEjFq5}_`GcOluXBsO)[]eUAw7FWB/4ҟWcd([J&ؕK+eC)D+Lv(n&+ǗC$Jh0u0=9-zLuNẺ:^. E9U΍%إ /$d[[[Q.JHH"fRU)xD@ 7"D#Q 0 F@ (B@@ a!@ Q 0 F@ (B@@1!tӗ9_vȔ0{^g9Υ:Gz4\?iMg]W# *u=&U0N#Q3h9<t:AAAL2g,{egaˮ20shBtC9V㳤euQpF$GN]&)L|uN@d4w0}n7+Mj.P' +Gp{\YU˴oK&gGm䨫^ye6Z۫ΑYzfܯ#ozS>f{񜳻(8473+U5:\UcPWD5)tؙ'6g,i2&4/2'(Zzsa8eGlīB\5~^ ʪįoN?pukOZ^i&?g/)`PQL+U"VAӇ{SVNQLV/._I (`(`zs"5Z`"u,I}E9U΍%إ /Ii,$Iz1$dYa;$te%E4Kmᇴb靾,L2~GY{wGɶ\HH08::%APPFoZXA~9Ռ MJ^Nւn?KRV*Y#"J֥*,I, z@@ a!@ Q !WU< Cd;J2 cf/_g[+``b@,_vӝrW Jgv{z})ElV4D Җ4".cʳy^i'r#n<E,ʭnVox_.Oxx$c,l1Ծa|/;FILkg+=zlVθ1꽥Ie U$}pƿI@1I7[gE;wLe4ƅaiwj/3V&ìƶpLqTj2?*b>́nN1S3D`a)g7QPYak.DQcTŀm%V9fG1N1mr('&ף/IG[.=EE~WƁ8(F6q3Ees~$TѠhshx br gѶv>=û]lS$x$%cV`Dm!gKӥ=ar ִM8# vgF)sgk?LL+0qzfx~1>ѥ85 ċ(䬒bgq^>+總ecjPk4_2G3w` (&łl1bcXDDoxbr.ʙڽ3<0> dpBW!R#FW} w C.gL9+5}*F•Ub[2m%V)3J5чNQ+Ql2 e /u^8~-]02.Biy?=~xҒDWVEŦ|_[ՔmmmEd;%0ty.#@ (B@@ a!@x:2+>G)Rʝ1ѐ`IC z!K353e6FD@Yt>nIz|OF$~ )in$3{DʆzBy r0iN}.d@3iddYz}KwI_yoOnio&Ante Z)i{'XzmQNkMo,bKxrzh<J[G1.IiËca5A בb49Ƭ݇h10 rHӀ7_aDzuTw(oAi+"\@Ɇ]XlĢyH}?kێ Εท?9Gn()O>bt^Q\>h"C2pssíʷ|o 5"J@=(GQl0;O͈qGIBifh(|ZK8\ɡ\ֿ'[ 1| s+-|LrTTCuSMALQ9$[Ѡhshxbr*|gZ)j+$xzon<?)Q,i[%itxB_AbFK ,W N͝h2/3cjmLoDNԤZ,oBcJo6|G%ϜZ;h,c:PNZ&o-C ]:'H"" "<}#mcW xٽlKmOjgt @N,|0+i{rFCnGa}?0> dpB&KO)rbXL\zI")Vb3[+]݈T֞+I_Lv} w C.gL9+5}*F0&`Y~m$Z[1AHm¾XsAuaf%9<}+qʗҥ$oVlPVMc3*%fj%-w$oϖMY:y1bΞ.=8آw}5mLP՘^WF,Ice!X Lj邑O[^BVNhJB?2 2f5sG3g<[(L)V3z7~Q=3z Xc 6 v#ڊ!v0OJ0YlyF{\iYҿXCQwI^,vȈfur$ {}Np\1f^P$Z5 Ao7.M3 @-˯%1BE%ɠ,̝u_~ӃI fIVaY\!\J'[YN(''/2d!JrZPNq]ftnzox 7 q΀y.eʀg)4LyV3vR3d= 0()gLK2s^/əby_.DԠU2Z Bsa'L+mJjJZ%VF"_%6P_* ('ͮxE&HWN*Y+&d-)I1db'.Y0^S fERD=g$7sճ+(\~ OsAF)H۲M"eGJ}3)ƆWyUo 9ʆ\_9몓A@NB~.eY xWZzO~(ʯiasS$#֞lwe o+nr&@]BO,K߂/Q)] !(ePX ;}u4dGF,"@Q9gԜ%egtMP :j\f畐 S]Y/9AH^ C^yGԇ^L / cI!!xsdm! I a2moyt:D?[ !IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/fullscreen.png000077500000000000000000000657231473342170300271770ustar00rootroot00000000000000PNG  IHDRK. pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FaIDATxg@l,WA bc5j41Tk%vcPPD.e+;3) xO09}֬YHHC?/BACO`#!H6`#!H6`#!H6`O^((Bl~)E?+P"oQJYyTP@%9 +xxFEij5.KO)Q!lz%Z{a[4u@̺C]l?aKdɗ<|_9zzr5Py%ż@V&K]zWBydFǮ\BTK8N,ECߐaNQ3sm9.}!Z22]f|2D$2q (eJEιI,<Gr+ɂ: IJ8U6ɖ0dgf޵,1Է,/UD!aC}rjja`D,^դZQ5<ᑽZo`M"0_FO[6Zx8#Heέ_OVMhN4~2x/pT91;nuo#;/ypt98x/@zBZmĺ[{ی ֝@D0.MJ RYq'?{}[t@>^f{{× -#HpA_r`J,-yj^=>w}~MpFG?Ӎ <:u bxmqEȞ{3d>*IvgsFQdȞ(=D85e?el6rܚM.,0duinFS_@q|qDN2$]V+ӝ?R"ѤyL6_;K{l54 7ы 2 MhaC ]WU]rp(NO[y8+$cyOh^&TNy9'eg%Pv|2[fvu馠&77Uwc฽ewݽte7ψʢlgwNT*t/$# ʔbq"Q5 ~i_[=h6 Ҕ_Yh߻͋.XsxUxN^ּnbȚR`^+LIжR/]ک_<}bڈ_BRˡxNXҘ]+5I` v}{+߰!ߨ]% ~UnCǹr10v JiN/UH{Xpx}~5 4yO\ܳ2pQ _wܱ͛yɍ?pJWsx˅߁tt01xƶ9ѱM{j?ߕhoN|0 /}f4 (jr?ǩ뤉<|Y@4̡x86IDN0_Yi4V|0Y2Nm !tgݒl֬Yϻ8) (c}[P(Z'1NG_`#!H6`#!H6`#!H6`Og\ͮP[99E %^I[TUzԝg%uD~*`8X+0.>vo/` =7P,*}^ʍ{qFEtR#}^K;*,φ`-a'ݱ{),)Hu}]iӂW7_`:Z20%7m ̨LKDzȝ#&oJJUiͤ@d%%^X" wtaE kB"1ۡso{((*(ItNy%@TgFHVݦ̤?tߟjRx$oxtS}#z.Nk/V6yms\Oa ),Z[ fLE e;K1SfE5@M5KPx]5Gzs9QWzww`sY']mq]xj6|͋p1^ϓV5A$ȳ.rx "Wo.;9Y䰈f3w T#?|F1AKǷ7T z-x_t N#} 8 ^kk.Wڒ'zeYUJM8ߣϨ>mW*BFÀ %}0"IĨG2_8E;NyCIbO(:6#ւ}p@wκ8Z̚REsؚjMu%qO&a{X˼ݠj6gi4xrbAQz ZF< =;gY~W]/_ 鴦cEDU G[ SvIWԪ|UA/xiGF m+b]͒;vYF!m>buDmdD'z.ΦmH,5ͨbBS%yyVUy,]M@ҮPWK \8ߑ`6Qi9C1\V)6P9gO?m1Ahj 79Ob2p Ps33ʹpI#fTw)#Ü8_7Lڥ8yR34Iܸ,Ʊp `Cxu4r{] 2߽ߔZ/op .`o9ɗNzܪKl8fN%=k^,-?Ue9Y _61ƫ݊2Sk\@WWXb7[sF}aJm_5彫E9rq/B.Kh `#!H6`#!H6`#!6?H|VAAihlK74B_AJOm%Y?*мGI9[GJSJE|]`ngaݚ}6cO1/3x@W&P'I)Ewޫi~Fşv@Wt#׆x?|qh ʧם)зd/ݤf{8IEwQ7Ъ͌j6YW#`v?׫mMgIajT^GT) z \!8(nyýFs75f @]q{_Fv}`>G` ѰNgCy}0URRboF.eFq7ߛh70 ~>~3>@Y|w>-P'ѽFiS\Ϸ4rCK7V)e^X hQ+:!0 'OMYǿ_oQi$UzjWYmK[((dϮz6lڌGL.SCuuyYc Lyt?2C>WL``NÈGsdɽu]ʣvTqג{g wl?4ĚKq\zF@5ITbC<Ƶ^o 1Ei >w'G>7ӕIG{"OV1~:)oon'zB h8F7up'Vw1h@-^5Wym:[[ iT/&[S&gݕ=wC̯?2ޅ i"_W+Yev$zq?-p׃cMRޣPg u%ͱsWFUy=?CARPIQ$IvO]e~u;/Y¸(U8HCpM[gW]ζ@!5:"UwV֮8q>L7c}Kbf$}h20$(Ng^inJBLT҂0)"~[ G}_҉ >I&^<,p"=fC\d}mJv9y{riig}q܉ ='~Z@LjLTӍzk ,>\ +k|lLLZ<`GÍ b}޲".H({:Ӑ_^i܁gHIaVgܽӯ$ǔZKT聅a@Hsm8\EA'Pyf]c+5 31|~woye0,.ZGgᖁ?mKq"^72婷Nɬ9deKa,Rrֵ@QCxFdԲjB!UR).2q; tw) (m~e_KG_v~|1>ɮc23z<:=0:nȽzNÇ+; 3'aL 6EV_yo`c>s? 7u%\TJ 1ۭ}esYhmi+{l'heYߦK/wJ5pRgݽ2  38]'AiFAa(wa zf]Iv;]]۶l\q!S"->CQq-,er>Rr6*g|+u !%&[n*U:Ӛn]!.üیO2G"oN^8{]⸋Tъ5X^~V, ~|w[eue2=EIXJ9}8ӻMx&.1d"Q^˻koh& s)p$եS{1U`u*MӍ_v ó3a#&wuv NqvoV~|(½<ʗJ)z4߲?|t >z@-DztjgqW//Wn± PQhH6`#!Hl*?E2I<y)Rݏk_qB䜜 v`BZ߆]vcev Tv]Cd;Y[[jVd~6t25)G"Kvbl6k+_48 ;܁0̕Ol6v:Z&+ic o V,Wl{pz'9'Mb)ӰaeGdf;ꮮPձs[F&p9Ӌ۵Yͯ.)))))$!oT'̝r Qm`9/4ns<dRI>a+|;W^ g %J-M/䌈5a+ˉ;4W`S꼛[?d呵cp0IN=M#<4 w=5׺/XVmec7ӻ]KwLYF:5 Zi)1#SB~%]#[N>ȵAMrr…GF\άV%>شvd =P/m=[fG3/ oc^gvHnʈTV,GpTMy+V.}={+[_z_L\>f RDIޚ&򵑍1q1HiR!_7Ccfo3GҊ1`کG[D#Ƭ!Č=_,hl13sCh  !+8&prTEb.qvvn<^ܖ)ܶo?VUg=|ύ@dq3N+9> AoVVZ&) @U>LM&;q+3ċ'}|닮BP=v==m}i$tΣ*m/Ù3P>ɫ5Pu*iEVTWsR;ĉwd¸|w@K!o*f=:\{T@z=SU'Nڌ {qqߵ)\z:4B%ll竧Ošݖ0gɜׇ-Ng@t!_P[i8ͦJpN 9d6N<_ $n\6ig{ %w79:tW a3.O.,81r|wf/\w⹑KD]?4O%%X:=8e_Eɮ-0t[1pW]<vgV@tuH}6Uwrӝ%EUOs2OuoO>1k֍vO7\x+{lzEǧ}Zyih|;ʲ&*lQ:m :Sס[?fU}zp;zxeS4o o%sؚ! EYqJ_O.#pr.bj׌%D:4vlƵe)Ota>4w y#Q+[,6`m3 ey<ӣ?sf$3ւN.Z ާƭ^b{JT mw'2uw׫fLSvmu6n֦?݇pxm'l5y_ܪ4& gx?6PKyuɞ]Wr>UT5"nc*a8\bbʗ Mq#")j/w2]acXDCC"0}>j/Z~_DhZwV8 t?Q<h_5Kپ0ͼGw櫜wO]n;,̵Y 1tjNNNN¼|{KCd5*}?M$_;ac fP_8I_TLC_}fn]10}~׾ b\#m:ܐck]hՖk_4i:qiʠ~QU}嫡=|z9 vtTAiUr{Ơ&g_ at.|0mlbu&(FRJeE7D [3y f?PtoO~aԞfy@Άq3d%{-$۳M§/PK7W[]>ݽq 9ŅyjH( x<.G 3El À&̶g7{]w"2pO]5^ 6lf<#/`7\bof #h4 t~^H6`#!H6`#!H6`#!HQI?AOs(M)Ԣl:lR+d9@VDwb,mO&1618=,8Ml:`Wqޤc9j*q[6_FjʇvݔjQ_LB\{/NYbʋ̫_YxrBYPRR}i˜ڬRPRRRRRpugmq{콘?z Tǹ> #>[Цm[ hu$Yt0K!01qG)[ch"DB[85̜2mҪ$[6IN(a,r+Nm8{p6PaW? ̸ 93u gkyϯM[`6<#.0i鑳^ SFf.>dG ȅ*kx4t/¸`ꉇ[['z \#ۏ2׆[~eʳG ?HD(=Bæ %O2+PA@mƙW|6҈&r30c\7a;g2f8S hm^N!\r 4JdǨO]~=kzg2ׯ_;ӔQ;(~$v*O]IN?oǣgneV {LXq.VV$nFlbXMb2}S崯ydOjVG%~xۦTn/mNa&}66G~2&;)Godibڰ_d JWk`J6l\e36~X'{Q$z4-V?9tomv9xT]_nKFd2{qfk%7[I^Ӛlv}j]ߛU{I~u"%`"tZFӬήMzE5f}?({eiO|r=yŬ^μc ǜ*3;9 0oreOsv逳sWV7&C▮ݗ&h#lwLȝm o={_o#iAff]o~XgaMx4槴]pgfP%uWaۥ3?A ÙlϺ[)?&fʻ$CGm(0z3]gn8ZJ8.|9{ٴ(;(D{m^aS&E |`#H6`#!HUX%ѳ*^N3""Lރ^Sq٨`#!H6߇MERPS+岪Ң܌/D̻J+nlEɒ~% &Ɓ )4 ,=**]F~x;R"gf<&xhCΖm-ٚJqPx;sY$Q7Ey'̎Iz |ujN_eBPJSW6l ^ߑdrl5wCʞfP{zI(=㛿}3U;>.zt \cW:ښZBRUlmĘ$rc{Tpkϗ6X mM縥sì^Szp .4qnXmJKKmll"ZkmmTLmN&*:,7]lJJy?hRYgX ]"lC*Un:fwũ~^tǙ@VXw$Ya G 1[lYh_9[f?<\J$qo¸%3pqC9W/ÐaI6500J~(fȪG^6=-MyeO],9JYmi#v!fg4C=Z}?xFcZwG?6=ztեKr8?>RPF]q?H=.i$ԝ.K@.m[6 p6_&*3uRX!C,E, XPiv۔]|z %ݽ[1Wlv9=on ~C͚5 ð&:]aaBY  |TFפX6?)QfvP2:"KN&1NۈoEY`^E`Te )WQ/ΠO81bĈ?m{le+xs^:ɢw\fL>۔J^I9jcl&F98j1Y*ҹݻX`Hw3 &4c(_xVVV]ty^ڜRI]b FgX,&]J]UZim/f`I ÅVLޜ^bU d5O7~-T۽/֖eۺI唳hʋTb;3;o...^x[9[>nE'L)*slR+±w'Z a_|ò#w0Q'U3 w p|;@_a^/tɒ%b-AiM_͵vцȦSă+>Պ} n쌭 >{@-]΀ǎΟ٪%k^ܾrRASG hv#g=r.'wеl)sj`gkcm!10ʣshԯPrwӵkbb7*~ (c/:8߸Y޿6'9JkXfLVmx|Z`oXRJL(Mn ~gIum9(R]]g/+`lMOm8{$#ͼԹ]w';g&ƎtR߃F'+z]ЮHwgyk 0f/f_z {.kBwhoJ_4]|~RSST)J9BKiTV|O|Z(_v.VMS߭l;ځb6VxTvHt9ql0GS! WYw a;`|όkqu>ܪMtvs-K.7P:eQsk_TS\oy9}aSgջVH$;w+.ւM_KAqv)ɓ8_7f'3X3pj{{M=ێtj"ĎLFk0Nm{Yڕ  .kZ44~msqRhA @hUj=IR&S\άpH,*ڏeBrzFg\5I=s[GW$^=u'__Y&k< r7Nrqa=dFξegT $pշx~># tzxc@!-((fnspWN^21%.W>aQo3pPnrqbcj@3zƁrhX>)OKv~笥>[ӝIR=âCt&#~>W%aӦܺ((kC<[t!JÃEt/:CQU.N 'Uppڦ441o6K:ṋQE]*w rhCyGNhOJvbMOy|S׮zgz.%9PcQ㻋XUg軪 -skh|gz4dEJiaK/2:t~l,dLɤ. }78~IqؑT~d2Zclߐ{4QpϪ?]wn+w$rYUW3],TOÃpdRŴ 'Z0Ьy2L93=ڳKgY[r3]68_o7!{ϜĩHȽٲKhێ]2#Tɕ5*oXLkYg #sqP[n:;S n O;scgS_R:F o L6Ci&mb޿k3̙p=uQBB}[]!{$|`#H6`#!H6`#!H6`#!RӘ9Psz&YJdb:3U[Z(e_"~sj]˒E{ɫF 70 :!x=<5YwON=-5EHyY5ik4#6>Z< ᆷ $a0ԗ$I)KzcZi=$tRV/S:˽q6%{:@_sp[G3"] ї @[g8"IDMQ޴ ;W_`v2:9;Y25Њ(8[uYpNkꬤqn`Vogk6޳`>G*2.}O]xןmh%/7Nwl/GvHM]8J}MSvVz9s,-,=3Wv8iVs")0A<e#z\ƮW_:TsȨyAfLR%g^0c;t9zs{ktlG_mtqj^ _\h̺sdYGve6T C0a-PUn U/81[Px~ϰGEPY>Př hib>U %]g4sYj-_ġpoD)4űLъa\+q;2*dJ7Yr㪬H'LOn7Xɥ]h) ``SDd2ڵkSP{Qga,1[uJ}p Зĝ:}Y ݇ϛ9rǗ2ۿ;Es> GǏ3BӵF1N__Ȅ/74}U^肕'F=tbssKqNR⫭:X:ұ zrq*drO^D'޺( yxW3K]Ju|mnl[Xk M-,ELMήuR2ƾ'~cB,8û ե6vȌ\FkT*[l!{G a\^N&k o^gb ;do x۱>,+9%O<ߏ553JCh@dl=}4yn4'~_.͋}$r3+ͭ@tU\u386#hٵg=iFT=|.s~̙nB-躲Ƿ ULb'+FNgpBV&^8|?o_!LY䱋9Kfp֋a\RSuA?w>[l|݌n7ׯ~Q3q3x ]a6Af51%"&ӾAb 0Th;ξ̙ІcC81,.XMg+%q^);۾~:/7h /{нyY^3enL D \ U2|Qti^2F>W (IHn.VM3o?y)Q\K`ygL7"Ⱥ2U'W ֹ8:8;Lk9Q'úOgLM dk#}EoW.WǯڎϲE:\ӣ?=)+kIDjxE8j[ӠT+k8jiAduYi=bܔMhtQ@J͔ì괚:&ƛ4o5^Tͳ#?펭Ã]g/i?>Ƶ!:|0EQ'OӮ׿b0^f?ʁ(,;6eqP ^׮QDȰ=Q6Fݾ}ѣG/So_kJ Hq12`Ң__3߶F}] mzdS{FwIՍuQsgZ@w"rcwn/0\ MiIZ=ZE6@iZA=ܱ\g@d.F8ɲ胗 xbVsmwCx]{E KY߄p8|8/!6`#!H6`#!H6`#HYEfrǞPyfaDW"0QTב(\&@otua@2K ٯPt{PgJuj@Qe/ehP?N'9$c'@ɓNsI,X1ă1Wnj/]IEffgb}޻t#Rg]q۝VC?@q';sk<-vJcvmP3`^*g(^PVŃ;_^޵xv,j]rpֻlkwF%?EqDPu Iߩb^[Q=b (e;+94|Liݥ*;pe6#p¾mxI=nFe]vÕ?hGWˇ7D_`zy춝/ʶf8hр" $N'y}M"Iocwa3+>gBRz;30))*m߅s~~2lz'kTVT/k߾vfv| ]q1;O貤CY=s|M 9ASuMDocD4##wҍa6tLbjF9"~wyamU}ڥ=c?DBgcA+?HW{5qζ\#S801##4qY]ƃ%V&w8)EFڥF(j5Z*/oL=NG&*qEϟҼ<Oo6-Nxνf؆Urdyyנtuk5v8IyʵsQEAKPv{Uޔ0 o5R. e۠*|uMdI?%e 4I|D$j y(4JgFGOᚚr N[ +^+h^5wYg3o)+8̧Ḷ(6J£K2.1C{aPŤyJ^~K <]Ws⹝]oU.Nuxr[U""kADQ]9y %ҍE9Ӕ<8'G~u `haO/<;ߣMUd䫲BvHB1TeMĖ eg?ѕRp!/,5^P<^iqB!=-O۸uv@U: O|]J]Kl{]nS6w@SLv+Q5Γr-h~cǻM=Ybn>Q)#i*L:ROI1QuĢ;7q&%ZFb34(kw]zu̒!0<p.w)*Mmgּ!'8KrvGTן_0z38{/فmQ‘sө:iFܽڦK1S>// "A=nɊnVz֔urKt߸Vb׽KYbur`/dƀݏLcxnc#d`VVR hJunyҫJNo0$]`amO0o-F#!6`#!H6ҿ%:r aM~"[$AC 4$ FBl6UWy/KAPN˪*Jr3b_nqF+nTFɒnfۦ) RR KS[EEa|6Ppk%l{KRΜbI Fgwe0*cҸ^+OvRҠ_7sq%֧i k@-pxz-<}h6=THrpc)h1 7/6,JwW1jAu*MӍ_v ó3a#&wuv NqvoV~|(½<ʗJ;J]UZim/f`I ^Z1zW{sz1gu9TqڷMog5C딒{[).ְ L[>nE'L))s96D6%ψ~'\qVMpcglMl4:v=vp`CRL_&UW f بA]izGM׃#TfML8h@;.ct}=wyyڜ>}ϵgqV>wEc4Y` ȵy>*0:޼c:}]'SN6!!B>l h8-Zg_G`#!H6`#!H6`#!H6`"4JMRyj2_?y+|_7=Di72GgI߲ m] KÁTd8x0o0Q]eTo?R>N1ͽۉ-3&-Qo!BՓdU2xx;4:IG߬؁C'YG'x&6Z Yvݽ5JCs`y_\9E5(Z\T}/a&F $ C$,峏iuieZ E+zYUpZXCzN8-o^ї @[g8"IDMQeZe}k*$m̲ ixKص7|r"oh㟻YpN7.I_nOz;7T sm6a2i2UR$~=KuѾ&1 Z^S L,{o%dO64ϒ?4>Ӯ6SP$0Ԥskl1\\k";~qm: f80A<&MPZUYg-°hEoG5ZE̫'EGO[EK_Wg!oig?N892j^)EYb&F)/nKk2yqAt1akgɭlc3#Xw]]' ˿,lZ)iEO[wx4|q2ɓe}[џ?}^9KےZLWSPS;Srg~>2dkI.tf1ǶhR9~3nA]l٦n<AeU c@;g2`n9 9.!1 BzeMU^̧)C {ZpIb77.+L0aׯ߿᪆ 󮮮?]`''? |gg0ENN.22$33Hh۷o733{)C0l۶mnnnnBVVVZZZZZZRROa222|ԠAV\T__?3+))mݺUVVHںu+B)//%!0 ||۷o׭[ak``]N>381b^^^͎ :f m544l۶ 0"eፍoALLۏ ˻]B޽'0ĺ:$ZGYWW~zD[l.,,lmmmmm%~򥽽ݻwyꕆ*** QFh&9b+++++3g՝9sb޼yGoGI]c۶m---8<_=r䈔TzzgD3gdd~ڴiiii!`0kkk?7n̝;ԩS_&q?s̃Dh)S&***vww/]J6k P@~'NSϟeo:>uueggj%4mҥ ؽ{ݻD>|ZWW'y-ڰaCUU BD"%$$hhhL2 !4duuիW۷oѢEk֬A [ oߊ~loo9sfZZڟ;8P4P(uuuSNݲe=/^1"))IFFFռyΝ'}̙3E[a}+((駟LիW߿͡C.YYXX`FѪ('o޼ill422bXvijjjkkcVXXبV__OR1 cXqqqJJJKUVV/}|| ZH$ҏ??&私ADDݶmێ;FDꚚO\Of[[[ ؽ{:^SSxqqz]]ݥKB_***jkk.]JmllƏ(\U.]HoD?G;7n(ӧO߽{WVVH־xkˆ8!!!666"" {f̘Ae <WSS022rMMMӦMCa?ݸp… \nQFYJ ;vl̙SLA)))=yD'NNN׮]TKKGG?AߐÇ/_\BKK Qۮ9s&00PDeee\.!`0\fGgW^v횤JEP._-}rΚ5mѢE߿߳g!WZZ&IQqqqѱ[|eeϿ_=}tk֬IKKKMM4hгgό(umm-=ztaaƍ7ncǏk:{lwwwXXXuu5N_|ygggxxׯCCCCCC@RR㭭EEE!DH$ 2D M|}nnnXX͛7_|211ijjbK,100())񑒒3g͛8ɓ>233;pA_v !DdrGGtLL… O>MӽGq˗/LQUU5sxr 3g:{0%))9cƌ@^^h;wwwx_C ö%pT/V"b)GMss3quuE 4222S˗/0**+44L&#$$$Ο?/p{.ɔ ۿ?Q ,CrIII1Cٳg!Z_@5t;v\pAFF&** q".9~89|1c֮];"?D>|@ Դd2#Gzp|> ?_|bڴi} SUUURR"ѐC"ӧ?=E ?5ݻw222s环pNuuѣG#>}nݺC9rƍ Gy$TQQpB{{;BHOO'22rݺuS4 4($$̙37nx9&Lݻ9IFFfƍK.MII Lp႘y!Ϩ-Q &s8.[___ZZ}U {{{b7BhiiiIJ+V511~|||޽d2իW^} ---Ѣ.Xeĉ!cc} uuOJ77/_vuuڵKG7onnnNLL 9{B6lhhh }4hK]]رcmٲ壯D|H EN<Ӭ N_r588B$L&JIIlۖV^sNbsEEEϘ1cƌD%gOII!Ʈ"L@ p8d2F\t=##lڴt۶mD%!K^|}}{zzB)))w0###"&,X@#VQQQD av7n\IIIjj͛7_.B`0ϟCCC@PTTt PYYٺuy<^CCfGGǚbӑΝ2eʶmۖ-[N?ŋ߿/lO0,88GSbM>fSIJJ677S(???ѯjjjN8'V򜜜aСC̄㖈)/^hggԴrJ[[uֵ&H'O,))QSSc2,͛DF%&& W^ |͛79-ZtΝ!C̚5C87a%@@&֠? >;,aXLLLyy9qA̬A {i$(++ڮ\m֬Yaaavvv]]]Ǐ;vk(EEEEBuuu---ϻ CWWD"h4CIrٺo)' Xuuu ⺺TjWWq <8((L&;::9OCSSSzzzoo̙3WX/_~et>2Ϻ~׮]C zjddd[[[TTEttwСgΜY|y}}pa1L[Q)))Jojjj~j)Cɓ'۷O__`:ŋ/^L-Ν;gΜ_uŊ}~^Wl[CH1cưlggg æM&a͛7qhL&qCCÄYYիWsܨ(X1jkk I8CHAA߿zӦMG޷o.~'55+VhhhTVVr\5~x@aԩSW*:{삂гgψ?iic>~X# յh"vuu)++kkkARQQ}ݿ~|˗/o޼ikk{j]]] LMM>0ݽs˖-{G'oۖ^ с EMMM___MMMyaeeb\__dɒ[H$oo7nTUUK,{.ӅQW^^'Oݽy#Fl۶mgϞMJJz)㾾t̛7o9s&0`~SS_d2#~z ?ODDD0ݻw h+z <ɓzzz隢?򰰰*[[[ѭt> <_f/G;beee+V0S- bM?孮^\\x[[Km( ptthuuuG2eJgg'MMM111'''ʊX9a3f̨466&Fygff~wk׮jkk& Gx<^aaW{{{RR=2%%룅|ߌD"M2nŊ<O$IYYyϟgRRR.K\fٲe QAAA7n\kkFym?wp?ŋTwqLa޽{++++MLLl֭[^~rˍT&aĝkHqƩ<8O5ss FEEikkl[7nݳgχoi`ffpˉY]QVV.,,ڸq;w~uu T8a300 oXו}Q;q_DK@ DK@ DK@ DK@ DK@ DK@ DK@ DK%SZo`d2]\\DS,,,i4(//P(G~QJJJ׮]0aN}}ѣGo۶xf׮]RRRG;;3gΨT*UAAa˗/0 !$//]???ќ222W\]pAZZZ4q/_!b{… ]'N?x```߾| S߿?~hyy;w:nTVV]6""/PT[[[aIRRR&M /]RUUUWWpZ[[lvjjݻwڞ}y<@ p[n:99YEEEUU5//oڴi ,nkk{ϟOREƌŋaÆ.]S?j…ΝKHH8zݻw"'տKAAyw^ èTKvܹvڞ>k*fS y>$foll\x0XBBՕ办l68 <o! BGGG&ǎC}͛)nnneܹpRSSBD g٧HJJo_$$$> }+&hIVVvΝNb,+::ݝby{{)!!q3gh|hzƍNP(D4uT"… 3g1bǏg̘RQQ1667n\ii+UUUO8q}b}W^KYYY=|֭[W\y%$$TUU%$$h4Lܶm[FFFdd +++O`0[0Z533 PUU]~}FḞŐJNN>vXLL?+"55FM2%66b??O$--}*???D&>|@&d2aYYYMMM\.z޽kjjjllloo{.ɔyvv^||NII agg|{{{[[[b7Ti4񷥥Ç3bhiҤIC;hѣGۏ?XQQA;;::/^xذa,kѢE%CRO:%쉓$ڵh`jjjdd~ɓB>>>9r7oD9}X.)))//6m^XXE.B~*Z0,22СC6mEa=&&L8p q٦,,,~~%DGysB}}}YYY##755ɓ';99ijjn߾WtTN_%6gભmuuuuu5...p8|>_ p8۷kjjFGGKH$MMMCCC]]]777999*+:S]]EKp޾};qD"߿G=xɓ,kϞ= !yygϦݻ 444sΝ/Ξ=D"1u֥^zu< ölٲyQFkJևxQQQ|>'''̙3/_rD=;)))>>>''qлw8NdddkkM6'OŋQFdL&ɌnjjyqdXMMMg>uT{{4&ɣGBӷ_ :|0ڻw/D"KhhMNN7nHӳ( $Kr8LZZ:$$b}vD~۷oH$KKD*zl]]x]pqq144Rd2"̟?FxB___BX,}}} mmmg=8KIIuwwKHH888X,C|E&===544p3gNBBÓ9BdE#g|BII9cǎ\+ se˖ >ܹs˖-  UTTٳg a?# e2AAAw;w۷۷իW<Oy<q"33sÇG<~N G :TQQQIIiƌd29..8iBd29-- !b "J}}}JJdWWח;B+Wfdd?~|cccEE+ݿѻw.]\8p@^^Ǣ1 V!!!y<{g94".!B}#\nGG2LxDϧwvv_ĉ...l68k,D,R__񪪪t1_啐#\066VSSS :teŊĈIII999ljðC*(( 0`/_|aڵk 6mڤrÇߺuk4ʕ+٥\zl;hN\rYYٸӧO_vmݺuRLLLfffllիW?|UM lٲ%44TSSSWW744!pB---3ssӧOTWW'%%Ncǎ\~kĉ/yLr///gg9s9r$>>>""!޽{l!!!iiiiii EKKŋd2yܹRRR֭kmm%2،92((eeeM2%--[o`666Cb27n Z999<D"yxx잞Ν;BOG&Ϟ=K*$$!<{lNRRr===&&&t:ӧOF]$tiӦ{Na) SQQ9x𠎎N~AgsΝ7oBH ܸq`'իW… Gr劳ڻwlllN>l~~~ǏӇOsݵkWzz:D7n\n芊6@xMM rӧO߼y3ãxD"o8ð^:)ȑ#d4rZZZ$%%]]]>} @PVVןQFYZZFFFk׮E]t!D_O<\&a[ZZ|B۷^h… 7mDd#d]b-áh?|@@UE[B&%%]~{ѢEnꓡ0999:tR[[Jyyy:N"tttڄuuuTѣG)yyyѾ94mٺMMM+W}ذa]__/@ Xj'B?~ɓ\nUUՁ1 `0C tz4`TUU >\gZZ˗>|XTTD)((̙3ݻqޗ/QqJHH IIIIII9r'JLL}lmm322455UUU- >}dJdzL&;::fffx5kX[[y󦮮nϞ=***˖-'Z2 jjj!@iii/PIP(cƌ!C@@=EE>|>޺u[ppGokkkUTTDuuuDF8O |\TTTKJJ233 mll !wǎB̬Y޾}{Ν/_6D͘1ONNN&&&^^^:h՝DxdeegǷn*a_Lvv񩩩;677722R^^nnn0aByyȑ#͛fCBBL6olaa͛w9;;!qpFPz{{׬d!Bh:::8 /@bBHOOJuvvX,@jiiYdSdw~'к3gθyE tMMC-]4<<\xFBʀض$4wٳgP(+555W^z5B(88mԩf'uuucc'OkkkEJII!&j3,hdd"!!A Z"H\.444{Ͳܳgϓ'OݻGRE󵵵1 TPPNJJjhhPVV&HF֞6m KLLtvv޽{ŋG{]v ѥd@ ((( ZΟ?`][otA--2ð]v SRRB# ͚5k޽qqqD"q|Ν;w/Ĕxo߾uww!fg%H򞞞}Ç6mn߾wܹjN>ۻzjm>@ 0779sf@@h S]]MRO^SSMTEE;wnԩ˗/yD"͙3'77ҥK<[?Ѻ:>`0:::P~ݶt):.:~?z7777-OqHJJN<9;;`MӦMܱc_, zyyz*((8x[[ʕ+.\/Jod\vX '憘;wnAAAWWʕ+W^{n##N ޽#^JOO+..TBMOOť#8ԩS1 ?~|UUUQQQIIq0LOOOSSɉΘ1ƍ666}޲g4446m:x~%;;g /^055~<<|dɒW C_reΝvо1?$333%%eҥD$[lT?fwwwdd#*ÇǏ?rHttٳg==Omk׮NLoNk!$lkE0LuuM6eddͳ! .lSPP3fLQQє)STUU?--MZZzԩӧO4hЙ3g]vȑ߯\իW>=L ? O?&&FXPPP5jԞ={1"&&'##cYǏonn㛛srrH$RFFk|kxx3?I2a둼ѣG{zzh4Zttccc;::h4ZUUUkkkCCÒ%Krrr̮]F&=*ڀ'<==9δiӈ)))6m8p'O?~,Zp8+Wp8xp>]]݋/"߿ˏ扏|wjkkccc>}smll=ZPP?޸qH\TT?iҤ,g̘e˖ŋҬM6ݾ}F"t:ׯhvvv!;߼ٶ;B|1b ˢ !&\۷OmKbP(0uk3ȸyO?DL#$ʾvy"Lף:āh @āh @āh @āh @āh @āh oFE~-M4aغuvA")ʼyƎK|400 յg2_>۶mSVVF8P_dE&M?dk6mɓ'>JZZ:!!cS<==?`0>!MM UTT400044444TSS]0#G"H$رc-,,>~ *jkksΡC"RRR,d`````KїӧOϟO|0رcgϞdrllcLjѣG͙3At:kKMKK[t)aV6Yfr]]]B [ ^^^KMM 0dX} j*`8q.-%%9JO"!!alllŋ S%$$\]]\l6[ Sx<;:::.]%%%|>L__L&9r$..NVV6%%ᴋ쬭566s{dooΝRUU-(( ~L&+((PT$%%>SQ''Lђ4446l؅ MLLUTTl ,QTTTRR9r䈮.sjjjyH;w 0E&? JMMM tƍ=:`u%&&JHH\x188XEEÇ.))I"E+}Uy&^[[[jkkђzXXXrrrRRҪUĴamllg[`ǏM&LnzE@R-Z;vl1A?666P(222L&ĤUVVVFFF|o߾f [ZZ555<}MMMahIEE%..fff} +aQKKKԴ}}}#""rssTٳ 6m4x\իSRRBCC544Ч9s\zU]]!d``{64a„Ϝmܸك Կak#x!###///EEE+gggW^-''WQQ'!!aaaaiid"gEEEgg̙3o߾v_$77766F^^~իW8ѵ 8pŊb ðݻw/[hqwws玛?rss;p@{{;Bzyy;vO)m۶{ny-Zt…+W| v\__/Ç߿/2~xYYϺ_ưa<ӧOS(WW茌SNՒHqq8ׯxBm۶m\./?P{{?prttBx< r֭aÆ pԩ1cƴ!dee̙YYYy ӵ IDAT.ojjJOO'H<F8aXcc#L^fʹiN:5eʔo `0TjXXXVVBĉ!995k$&&"zzz7n(>E!D"6oL&\ra~ ÊF"d&%%vI#Ο?qFᡢ2eʔa$//add$,ׯnnnِkVUU zzzH$Z7?kjj,ttt[ZZ,Ч FX"///?a+ixLLLFFhŬYO`0._0aBHHgsģw84lذ$;;nuuk>zѢEDɓ'a2|>b)ݻwDmB|!y͛79r߃N".]DSݻw=b_ZZZp40,22277WNDGEEEKK BC`GyaOI$RZg̘QVVKYY٢8p4UPn駘hkkC%''M222۷o}ӧI$RddǏwofll\UUp8εkפa@ x>繉ImmmoZZZƌ#חXFFFo޼!z7݋8 tvvNHH;w;wnBB̙3={BT*֭[ӧO722"ʼnv H>qƱ줤$ggg'ƍtzVVVRR0 ##ŋQF b2L&3::͛Ç'z6,--Y,VSSٳO:^YYI,M&G/B۷'N$F_8>hРÇX{NPKKK۷4&HH$իWSSS׮]KӍ}ݻ8B\\\\\]t)++KxڵO⮮ݻw?OWzhbwwۗ\YYLP6lpҥ/_ KT*1^NNNJJJGGF3~?}θ7n(++XxkJH$UUU^h(G|||OOΝ;-[źr>w]t !D233;pǏE3cfmmmjj*(!!At!ZZZ&M$))yر&aǏ=zرފ æLRRRK`0W\9|p[ooo&Cvtt(++d⾄";;;ׯ_ cZ?g0B YKn[*K*Z\_J]%p)EB%JB+Kd߳cs~<;/_Eq9g3Μ9yY ((&** bdggs*t…oְ`X{9|իWa:DVV|D"[."""%%yժU/]4~xϞ=5009T(aT*UHH~>u;88X"00&:u*//OHHhw[|(_ǘpNMMn: ##w++++)):uJ\\ӧU\lٲQ8ǃ_>}:˗tȾ}]'&&))+WrqqtuuHY@KKѣGpBbb˗/#""QBB".. ,,?*77ܼ888 ݻgiiI48**JJJ555RRRbbb_񘿾Ƌ88a!!!0Dž))++{u#5۷x„ ?2eJ]]ݲeˆtձ켼<q —9Ct0ιMɓ'ar `Ϟ=ԇ3vL:7o-,,iii2̏\vmhh˗/nruu+--qݻw܃߯1- îh4QQQL V__?w#GX˗i[B7ݻwo۶mҥC;_q˗/((lL4 v"0۷+++744HHH222xxx`I=<<`VVVζ0lp BSUU744 &***\ Pee%Lutt2e͛'@Pl(>>S;߿dæр5l(**jiiiiiCIIڵk\;::쪫kTQQ>$e0-p/80 h|||$iW?V3C0/'D3gΝ;w`n^^鐽}KJJaw!`ҤI05x 2228IHuuu5g>uTkkiii]CCÞ={ ޽{b>]]]bbb;vhnn611 b2\\\'NHHH(((dee555JJJ nӦMO>qϞ=?6m˗e8L5k<qpQ˾&,ÜA__?;yyy^zuMYYm۶={ v +++KJJ|_BB34β a/mttt\pCGGf̘z5 A555sΝ3gNKKׯ~ſzccc==5kɽ^__ 322OLLjذ>){8UUU0<~ٳga+_ >77eZ[[lR__[RR2mڴe˖9;;~t]]]ooϟS(EUWW ?p f̘ (**vuu%ɕJJJmmm0`XfGK SWWwժUt:ҥK͛wI"$%%{{{ G?;w/[n,**́k>W8p ))۷W$$$DфdrBBBiiNCCxll ,W`2gddڵk9aN͐|n&H<<<0Dqѣ>>>~K999...NNN,߳gDՙ6667n܀H8 prfiiiV^gϞD^&9$rrrrںuJKK;w' ۷sqqݾ};88ߗ7  իW/ZhҤI.]ZreIIIttccc+++1 3660lԩqqqMMMmmmp jkkd+7B}}}'O (((koonoo_no&((/8aXÇݻw^گ$--iڵ6l0իW[wӘ )F"<==2A;vhkk[zO-鹼===_ jjjV\YYYzM6訫666...+VL/|CP?cδg+,,TVV455NKK۴iݻwd2OS1 W%'$$Ss 駟8k>g05||;YYY]]]{{ ]]ݏٸqcZZAqq… |KܹAXX-%%soK.-++ N6mʔ)pְqƬ,kk\\6]SSd2W\HHH2e罽<<ȷ!&&F444?yttt566:88L> ׯ߻wo^^'U ؔ~nək; `p fO㸷={~V PTT$''4a p՛7ovtt:9997k! =zTZZ N)yyy%$$8ٖY&447X{8--m޽=B3ͶA"'1Fܹ3111%%%**jڵ?fp^Am[B$ J9AAGä~0  W%AAh AAd$(ZBA AAF%AAh AAd$(ZBA AAF%AAh AAd$(ZBA AAF2v3g^rEAA@knna2fff...111A)TAF$##sAqqq JJJT*RG577l}OnݺkȞ.]*""2Mi4ZDDDDDDhv ?55555ѮP/^8w777J=w\qq97{>yD@@@KKRXCRG"FPPɓ'...nWWܹsaӧ[n111,%,,xÇ֭^C@@ӧnnnC*So! !!!ZZZwC33~Z!20i,-Ȅ=zTTT488x֬YVVV7o%?.+++//0440 0Q=D|%""OTIIW^޹sgϞ=&Mz]\\ݻw;4benn>~xŋ###9ʓ'O>|eƍgϞئrӧ di͝4}+ ƫWv(##A1% dee]\\ݻ7o>82y,6s~ 'O'j|||G7o>~KBBppX۷iii222666QQQ-x葳w "-&Mz7LLLX,ӧX,N߲e˃***ϟT^^d2;;;-[m۶>HPPPVVݻ'Omggwҥ8~ٮEm۶fvB[._|Ŋ Ǐwww,^811qԩp+YY'Opvf7nxƍ`ٳG~t\__߾}7$''{>}Çݫbvqq%) LUPP ߯ IDATNϙ3'==;''gxg\BB84P($IJJJAAdmKKK,`ƍ666!!!MMM666iiivkmmեP(ѩ45kܺuKVVvڵ999_3FX6oleexggg@@@dd}mmVkkqYYٮ]p۷ݓ' L f207oޕ+Wp%f8yK--GIJJ_|aooqqqbbbQQQpԩS .5wvv888 ݻgiiI48**JJJ555RRRbbb# >/8fa$!..aXHHHtt4@]]~:eƍ}O0SL[lp[[-Ƈ^p!|ȑ# kkOUXDDd͚5/_}֭[K,y`RRRϞ={˗/`0ڨT:R||oߎ㸼$FsqqZXX8::VWW"""9r &9GRVV7~4TPP0i$o`0o߮Z222xxx Ԅa̼X777aCPTUUEDD ;::;~jkk%%%#$ROO8eʔ͛7OBlٲQ||vsss?yd˖-5J*77wyy9\)//\RR2sL~~ǏnGǙL&J<@j,vu?} '--S~~~^^K.?}ZZZT*UUU˯^GQX]]m``!e׌]|EEE------Ѳ>|())Yv_HX,Z `0Z[[[R0^^^G"/G8޿_QQj*Μ|||O34gΜ;wXWW7//t޾`˗/g2鍍L&SQQq<==}ڴi0/++FX`y AXl[␕]x1lqֶ 344<}ݻw]\\n޼ygqr`{zz"##>>^lYkk-[uuuKJJl`0PTTLOOIUyy &?qOMMݰaaOc7'ٳgH;;>466޹s~zIIɫWvtt{:==}x 70sm۶Aٳ'++ J&7mڤB ~觟~駟raa͛z{{SSSDK...?Y$IHHF 䄄Rqq)ʁܹ#++;sLAAAX,22rڵðSNM8{{{،D"xxx96=zבcooߟDž{9x`ppׯoR]]iccs XI p.8?FFF W޳gӘd\EDDKKK7o+>88ZHH˗n䢢"NSSFFD16DHH(%%ȑ#W\\|yEEŽ{ZZZlmmN>s ^uɒ%?`_2 Beee...!!!MMLSSSraaɓ,Yjhh(..NJJZ~=ð/&!`: a$Ozzz?g DBA`4Fۖ,|ܾ};220i$mmm.\mllpa111~~~&900000@ӏ;Ő1#44v888L> +_~޽yyy0U#<Z ȗ#J cw?rAAB  HP  2-! EK  #A  HP  2-! EK  #A Q(wwwwww 0aҥK%%%#""֭[9sիǍ7ڕEC qqqŸ6mŋ-ZDRTTT`8 cAo'111''gɒ% ::ڵCOPSS  8*fOhii"am[8qĉT2BBB.]677{$F\xRRRǧΙ3 7‰'H$yyyss͛7?z֭[ǏR~ҥ"""R[2vvvvvv3g/7q*#ǑG#IIIΝߘL&TttSTUUʞ?UUUM~'''KKӧ_v^__$))aӧOl6ʕ+rb {he YhQLL ///`ֶhFFF$$$h4ahѢTF FXddjkknooC7{H$Җ-[|||ᝃݻUUUIIIO:ujrrrjjjJJӧOd2yܸq'N*--7nJ-=~866L\]]=##3`jj5Wh"Hƅ'O&^^^^^^w]zmjjDz*x!??hXA""##9+׬Y|QPTTHHHR?s``7o89sFQQq ä1-afooҲe2cǎuq&4k֬5kHII~𡶶ѣG'N%EDD233 FSSSCCCSS驪RPP011yEzz)SђӧOM6LMM_|rJ?ȌP0Q;"..Elvtt4.\Iw]???8ð#G6WFKK. BҨ?~OO˗/Ϟ= #?D\\|e֮]amAAdɒjA/^LII.ӧO_r(⿍irrׯ*((HR_ 1 $";;sQDD ---+V(..y 0ŋݻw?JRRrMMM{cNi8+))XѮԏðٳgOׯddd.**1n,FK gϞ533qڵk|||s|=z'z+)).e|||ŋߥtuu}}})ʅ X,uee%D"}Դh"3g>}iӦ 6䴴:KKKm۶M6ٳ %!!!$$DGGG[[{ݺu0t]ǎO^={aŋZ*((6)' bԩ>>>8AQ3gojj7oޛ7o&L0ڕ ͙3D"lWWׇarAdddb=ddc1ZZx͛/XӧOkhh566&''~駳gϺO8N$xxxOȗեR6l|ss3L&&&d2900PFF 9 ɨajjZ__?~x3gΜRWW׻w`gnnž}KZZZL&㸯occ#3ݻwl6ٳrrr⛗`0`bpp0ɬ?y]x1~~{ jii!###!!_uvv^3$$axt=KKK:k?8C3311wwѮo ܹswܑ^ ףy1h,ηGHJJ*(((((HJJdiiiytvv?ȨT__׷̙3NNN===&&&MMM=twwC>>> .Sⴵutt233aAϟ?9l#  w<< 8SUU544QUU9sfiihA"a8JWWݻw3fPTT|%Ʉedd888ر###CDDݻwSLRw9s挭mbb")2ŋ/33s666 9 `ܹ ƍ{#Hgjժ:55511յɉk׮]cvr*d2g͚% zzz7FFFrqqa"H'nnZ`Jd2J0 .aAƜ18;ԩS?|) 066mllloogX, qǟWuT*9vOY c؝x4a6]UUfAz{{႘W޼yҥK999/^`2?VPP8phTZZ0xj E8:ٳGEDD .#((rnMlX*)) 0...4c wIA) P }A  HP  2-! EK  #A  HP  2-! EK  #A  HP  2-! EK  #A  HDEE]b``^^^%*** @q|&!!!_𨪪JIIIHHx**!!1(JM(̻wrrrxyy1 cٰ0//d2Jݿaaaggd??'fdd$$$twwmذСCwa0ÏԩST*s?hdښ??a;v;wnJJ \#,,#"`4FۖLMMw) 0yo6RQQabbIHH\RLL @&OPMMo߾}maa'(ʐ7]lYuuu'p ݻwOLLLSSs͚5<<<[n ן7oL޳gOLL ???dvvvikk0aGCCٳ***.\dɒ'O˜lV&MRWW׏3g#a_#...))9x B #f{zzoRPP hqe1AAAyyy響̒H$||?.+++//0440 0 'ǏWRR;Y77z__ߕ+W:88 ;F"Ξ=KɚRRR)))zzz3g΄$%%{{{$Ʀ*;;۷#|_vss߽{wjjѣG8b2v_DÇÃQ[q|Ǐ |#222ǎw^\\;ASxyy555G9fΜ˗/[ZZ0D"yyywʼn7o\|_~; ??XX͛7_hmG!**lgg"!!!$$ Ϋ00 [v>tرǤI>;wpi4qdd$F+))qvvOOO_0 _Lf\\DKKk7n5g,kRkmmlٲƦލ7rȃ-X`֭sssb999p` D33X899mذ!..NDDL&3L:b+󫭭 'ɖAAAϟOII|SCCqqq򮮮飅 (//omm%L&oذgΜa0[lQVV޶mG/`jjjmm}}|ʘ0 ܱcKHK" IDATH촶NOO())q{n__@Gt:,{;;˗Ϟ=_ ݱc,,..ra6tҥ3g-X͛q㼼DDDjjj,,, }:::̙dddܾ}[EEe޼yqㆥe|||aa1 v}!U'|o 7767NVV6??6;w.??l...j'''= Hѹq)SC}^rSqEL&EEE+++an(_[nnn۶-778f0T*ux3A"8#k8Ǎ7cƌs}Ç>>>111 GQQ߯`0rrr6l`ffb.[l֭8 <<<޾}Hgt:N/**Rd2YCCc̙&MZZZkBLḺcnܸ"//ڵ{zz޿}d2kjjnݺ%...&&VUU5n8yy˗/ns244Zd[ZZrss,_Ϟ=cX...)++;::$%%⪪*:::t{{-Cp޽ Çdfggx"-->NZZ̙3IIIׯ__j춘1cƅ .];u.\Os_gggGGGww7UVq]vHMP|066 Oi4ZZZڡC"##)ʅ 222: Ynll䬩RVVlذfff 222C1 qn˖-***8O<ӭ[f͚UVVYʹ8cG6ږ755+((tuu9;;3Ϊe˖m۶-33 9v}}}paŒ7o :}˗/d2FKMMUUU<{S syܹs>}JI$… sssΝc``fggN>=**ׯ̞=;((!***&&/pqq]t ցɓ'))ON4SDaaa*9o͛_zw-%%%&&FČ3Ν;wH---ddd8pv$6;vsa MBBBa۷of 8r;w>}Çݫ'ɻvq9 &, *((EEM6Y[[߾}˜nM--SS]veffhb8pل;wH$??V111~~~ B"LGoH$҉'lښfnncǎoر׷SYbX͛3g΄WEeffqƏظqƂ8fYKK ðO𵱱 ⊎DFFwwGuvv::: ޿?((_GG!##:m4&4rdqqq[LRRݻw^+=Ҹq,,,vڅ8 $%%o߾DD]p!311 z%`̙4+000((f{xxCCCWZ3}Tjss5k0 MLLx… wamm3Ə?ŋ{zzaeggֶ}q]r^^^3f8{,b֭$il6{ӦM\\\׮]۳g! >tRTMU^z@DII l۠RRPPpQ?Nw05B#o&-- rʝ;w~:5 l6~1 XuuuXRVV7nۗpBXȑ# [[޲eKUU --mOiiiJJJ .\PTTtib ˗//_ΙF%NijjYh\rrrOOډ'|}}Gk{\\\>>>3f̈;~x||?^Xz{{mmm-,,}}}nnn^^^G9qɤR۶m; spwd2YZZZAA 7okk!  >qtuu޿hhh;wCH$o޼믿8q6h4^rr2[ZZ>~X\\\__)##dL&͛7}իW8d 2~گ/ϟ^w5kֵ99ǏB?,fff6d͏ٶO{EEŒK1;RYYptt2e͛_R˽.]믿.sss?yd˖-0h#"B?8krssrGXu-,,`ےd\\5quu500wss366C^^^pp'Orrr֭[WTTCqqqee)S,--mll89AחfŽy|_W333344tss޽-99yԽ1ςyyy0KJ^|իW4oP@@ &&2&&FAAݻh7 444:;;g͚u nܸܸRSSa@[[,>zhtt4ɪ̙3֭SSS\MMM%%ǏÓ`ܽ{@JJ_~a0>>>RRR΅ZZZRRR֭TQSS;aԮpG=zTIIQQQkL?h4O5kBP(666?H+**VZIs㓕ɓrccceeend2---iӦ!WNXww͐k׮daaaHzz:JLL3h """#744! ]re꼼_>yd\\۷yxxtttJKKg͚\]] S`Fg|= ͛WVVz#"**GN6mK111CCӧOKJJJIIݽ{;00͛wk֬YpS=q4mĉ!!!~~~nnn ,ؾ}ի%%%'O<8SJIIIFF&%%ԩSGYYY666eee3f6khh\tiѢEܗ/_^hgW1 \s.c^d;KFKMR%F3m*ok#62Lh*h" %Qvٲnnr]?wiZTG>}_9sYSS̚5?#??``{8?}t׮]7nܨbX/_LJJJKKO1&,buK.qqqvtt̚5ɓ'p8^TT{ N?b_-Q(u֩tyyy Ν;PRR&5kLnSN566&3'a؄޽{jkk]644`0={Νd29 T*M\\޽{QQQ4mM^__/11o&>> hkkkii'H-/&b޼y'N&H۷oɁ])++JHHܹŋ7okC}}}}}}d.[,??˫cAAAk׮mhhHLL C%iiieee{n511iCDKK?ܾƍ[l0ɓɰwUVyyyyxx>|bEGGo۶-444!!F*wquuΆ?33SVZejjٳݻw_pv) ?q&9~5hQMMͪU===*++ /9|ի̶m6'  ˣ9O}||7ޜ9suttrrrZ`Bqss{5o`bbrnnk׮=}TBB"77w龾ǎ~u뾌>D^HHț~b' }r˖-kjjttt444.\xb^^ދ/oyutt?j/^;w;,,,9հ7ðGGGs~-[ܜwI]]];;;ww zyy9::dyrssϜ9ӧsީTjvvohѢ[ tuujjj?~b ر̌GLL(55p{~~~l6-v "##cccZZZ233%%% jjjRRR? [HKKWWW;886mڔ71twwXYYթ䌌 V7 bMMM0sƌ=JLL}SSSD" r>tttijj~Kihhqqq]~}͚5͙3Oׯ\{VWW} `40 STTLJJ;wի[&966666FcUc999kkkΝ;ailvKKpmmmEEgbxx ®xN|-''믿^:&&FBBbqzA866(DZzk^^\G`|?N_d 9>tP~~UTTݻ_YYyΝ3;t||>y湹Xv<==cbb&_;wy͟;N`% m׮] 366kB_/_SοRoD"}.}FME`ߒtbbbjjFQQ͛-Z<<<NNN%%%?#Fχ{ϝ;7+++$$D^^fL&ł}K222***xʕ+֬YSYY7۩Bl2#GP(SN%$$̝;WAAaBg0W?%˗/ <%qƆ lmm[n-^Ӝä8; V#QSA> &IԊan@gg'O}ɒ%O>>Μ9CP,--Tsvhhhh4o AL2_~ijj{ F})`.  ///JVIEH0LB}K ȇ2:: dFA

>> qqq|H$ҩSྃPrCCCll?a#' .XXXpmmm` A]p?s ACCCh ooo]]]&YTTORWKKKPP-u=<.--MKKSVVw $L0om&-[\~^+ o^xRT*MMMΜ4>>>F[NSSSZZ>jnnOX9%%N{{{Ox NyٳSRRLLLaW͛(Jzz:N/**shDEEoݺb0͎J JHHe5lll`vdlly7eWWk׮x}\BX,ooׯoKO.//oyyyT*˖-W\9wVySzٗd2tttOχ𩆆p?777LZ"H N%Q(8wxxv<<<>|Ks萿jժgdd466ZXX ib ^oiii%%%򪪪Oتbݻ7**×.]ⲷ5k֓'OZZZ& v())ݺu [ rH$???55s577Ϙ1(22.kDD[[yoo`a{{;''}/^$%%ԩSwޅa6*jggg|՘X,S~~>tڴiСCB،q|hhHEEEKKBBB1_os=\[[ W߀o`0L&cccL&ve}P0㍏LII)&&F___SS3##ctt3""BMMmiiiѫWq|Ϟ=}}}{&//?{cǎIHH=z2 FGG.\ svvؔ %KhtwwsqqE}}}g/N~FFF###8+NOOL&O8AEEEwnlllhh o'JKKmmmOt@d7eee;;ǏFcB]]}*̓~#[[[)) ; /^fgg{ȑA]][nikkkkk?}Z@@ڵk|||yyyxwbܹ _oo着*Ψ; zyydffJJJԤ #ɕ+W D233u떞ާnHKKWWW;886mڔ%""rUwwwU]] Lq!_VV&**f*av .wSSS3k֬899 \ti۶m?+HӧO6oĜMMM-***!!D"w$ rԩ{r]ZZ H8rœaqI.o ```pԩb_ 077?uT___yy-`ܹVtpp)N(++e0L]];/!?W__^x!""2k֬-[X޽{BBB(2qqq}7222mmmO>{ϟ?߷oc󓒒LLL`!!!%%%q #ҥK===>/(**:::qs\\\;wT0Lÿ[b544L63c@__`ajGG"9G^ #6l0׮]p6-&& Hd2TTTXZZ›;vBbNW\9G? //OXX[RRg#]vFDD$&&?ԩSnnnyyyYYY΂Ua3g d(..o`&!!A",Y BCC{{{Y,on޼YSS2<=B}K 7E̟~&}}K vAA &   AAEK  o%AAA  ۠h AAmP  6(ZBAy-! 䍖LMMҔO:ekk ppp8qℐ#..kaaTUU511qvv Ι3'<<>533KMMoRSSM6\CCѣjjj1 RN  **JRO9'wСK˅  2I%EEŃtttbfbb"$$466Q(yyy5k<"+++))iڴi<<<4?BqrrRUUOuttf̘d29`0o@ĦLbll,((2e_TTT͕9%"""򦤤_YrFyyy}}ӧOϜ9Y|5kwgP(111! P>u^CCC#55_~a0~-//ooo A$''KIIꦧܹ3***>>~xxdJJJH$ pkjj~ bdd$99… %%%ӧmll7ʕ+ .q|֭VVVΝ377bPP'8/^vM6w;v$''/Ysl6\D":uJ]]G?{M1 o>}1  l-aаuuֹ %%%kiiZð~CWW7777===//o隚b 6mT]]}ӧGEE=|pΝzzz˖-}Hǎ{ݻwEEE+++ o߾Bŋ/X>;w:e˗/8q"77wӦM[n ؾ};{ݻw ?uAtAw^zիŵ,YBvޝzĉCC:::033{o``Ǐ1 #׮];sLhh(Asuvvf08?{LWWjhh<~***gϬ)uttǎsN||͛CRǥoݺ^[[i&0( _-D L$}CHH<<&3N(A4%==rH0k0%27ߤ7o\QQϩC%))kϜ9sѢEADEEUUU|u]SSk׮777tttp9 斑>}:A}}}}}}0ALfSSӂ ϟ GBPN>8aLTT sNMCCCΝgiiiZZ{A$%%yxxtuuqϜ9F?ȿ2oz Zyy֯_foߞ]WWIP7(Mӹ>|ꚟ;:: ]z… /\0s˗/szƣR***o||:ByeooHwwpk ?~\[[[RRqǏ`MrAtvvL:5'''//… ***u|<, .bee yFFF85srr1 s̩255 yDFF>!EDDY,vtt4;;zxx.Y}vQQс>ٳg |ҥKZZZZ[[]\\/Y$#^P(Nwrgg'@TT֭[`aJe2222l6 OvMTT4++;v?fO899 yyyFFFk׮uqq|( qss355sݻx*{?nggmiiI222Μ9305$$DIIA@@ܜb;v ?ի$ eŊ8{yy͛7eϞ=݋-8p_w6TTT$$$nܸxww7OCJJS3Z OhhhnnnH$A_xe\\W\\\cc# `8g rΝ8Nŋ?cEENOHH}]MMM~$"""f͒WPPgiiiVVVϟ0LWW7%%d2 nnnB|X,S~~>nbLMM: ) LJTTT^;٥.55ŋ-[Lm7AGUVV q|lldԟIDDD__LII)&&F___SS3##ctt3""BMMmiiiѫWq|Ϟ=}}}1l~MRRСC\\\ׯ }DPSSZtuu޹sږ=z"88Ν;ŷ4%dkk/''7yх ۷ᱱ)++_pU t7n L666^zU-''ڵȴ7 xL#ghh￷\jN00PPP#'NtQQQ!glllhh(--~k߈ 9sxzzᗑӧOX[[KJJ͚5HMM f6mf;;;<(//_SS.5%-->..ndddݣ0fX\\\M}KVVVǏWVV1c`޽nnnv*,, 6TWW/]t߾}MMM7oVWWWWWBUUUMMMkk뎎3gΜ8qÇaaa퓗߽{1119sfQQ&LOP.\ڪ 󵴴rss']0 Ϟ={ӦMg^~3g233=jee+HS:;;r֊~ٲe[n ѣG$r|7?f;;;ggg~W\ٺu>>>///SSӖ>>>,Xѣ1%%%*ymEEū&'ul6777c&++{=6m```ll|m~~~a6]UU+{]nFK?~ĉAkkkkjjƊ׬Ysrsss]]] O:W^^N"Νjժ\6tϟ{{{ñUN3555 aaOOOAAAnnn~~> twwoذaϞ=}}}httҥKYYYvvvgϞ9|Bnnnww7???&bmܸJ{xx<~l6; VAՍ "ϟ+ )))8qF .]qBw nٲCð~~~GGG ijjjjjrqqY~{v܉xWWtqq}KЄq٨rrrd2YNNÉ^xQSScllk.۷hh-&i˗Q 87l0G׮]S(0 cbbbed9C8amm 'G744kկmySS|`gg8 8:&&&ضm`:j{A>/=ٵk//oDDDbbO:;eee'|b6sLAAA>>>N:C&a3(..o`&!!A",YJ BCC{{{Y,nyfMMMxxxJJ𰎎NAA^ZZZZYY|Q*QXXX[[xIIhuu5B涱2n' Aϟ?xP8?9774aX]Ad2i4Zqqq{{@gg'g%K>}Gę3g(exxxyy^@@K^^^Ζq|߾}T*5""b֬Y0 _5111999//f2555wQllU={bŊX,\qӦMW^ _veeed2jtttxxð۷oO AK#--]]]QUU, pUccc__'OzzzJJJ:::䈋h;vLH ļYf9sk3)) f QTOO7nN0L#q ȗaʔ)KSSߓ'Oh4Zll\nnngg#G0 e0ccc666QQQL&.=}}}edvuu1΀([(**}῏I\\\@@`ƌ]]]ʳgϾq0رɓOAK`0>]D`}@GGŋ322/ P  z0LY  AAEK  o%AAA  ۠h A>IIɤ+VpJϟ)%%5eʔ.ZZZaaapwfmm~))$A _`&gb999{{3gu^]nX,;]=<<8éc^u|}ҥK>.MMM\qqqdd$|*l2NIuuuIICtttkk+˗ W^f͍7/^<669::{7鎥ͱ555 Lby7?a'..իqqqAAA rrr3fXx2B_ϟ?/$$MP0 87麺UUU۶m+..P 6}ȑ{yC_---'NXܹs$ѣ+W|K444^YXXgEEŨ(--7MG2eJaa5k֬vuuP8<}gϞܹ`nnw˗/e6̉6m8k֬6gT`jj{ׯeÆ hAAx0L}KgϞ掌TSS[zuzz:F#ٳgrrrΝ;1 ;rCBB87(GGG_t ,hkk8x``\wU~ٳ/44tB  Ɂccc1$&&[~~~LÇaO@ttߡSL8gƍ%!!!!!!/_&vvv~mXX煣)((駟8l6bqVVV={aB'ܕߺu hjj\D|m&c b1]v={6;;;;;… ˗/ߺu7l`gg$N7448;; yzzb`0"##^xI"O>66(,,LR>%Ly@8󚵦uʴ%%E-rE$%%ʒn!nWUE"+RRIV}Ѧey8;Z}59Zzu󜗆wC%INNڻwoEEELLL``ȰQ ذ1 Cbٚ6lٲ%KgΜq|ر˖-8q/;qp2|ɡ!tB֢E|}})JddN>=44!'''##cff 0 svvx`d2f̘!XL&8p@' f͚r֬Y+BCC߿A[4J%"())YWWG"*Z,\!??D"QDDBH$6l|H\b"...qqqSNMJJnkk;z(,&,,|irZZZRRReeeQaG޽{֭A"vؑPUUo IJJ 8 0L[[[JJJFFݽ۷|zzzlRXXxQ |Ո-[WVV655}b24Jw޽|V3gGDDcPAeeeAAAӧqqqp&AJKKߺurհɓ'޿_ 0MḾBwwwKة=DhIDDDVV6-- >===6,ZHOO/777==֖?"<<ظ<LUUEBBG -- WYY {c*[*jnnBݻ,XPUUellGLLi/^ Br ldΝk.33P(dr&a6666662O>E ߽Q:7oD"L訴 l߾ϏL&ر߽{WEE¢?,,vǏsܝ;w^zu!!!$ /$$` 555UDD˗݈zߖgVWW8q"++ 55rX,VMMMssu_x1viӦO8L|R!] *++7oޣG Raaݻ޿_TT$%%5mڴ .|M6-77_222̙ccc q<>>*<<\SSѣk)++*((@G0uԑ'mB>hISSSHHvwwXfppYGG'77b-_|yyy7n7n֭[MLLCBB^zekkkkk%++SPPeddmmmT* +++߸qCi A̟F)**paJss? رcGhhhFFE+yrMm6,X3gΨ9rusIIIMMMEEE[[۾P[[ۣG8 wcct©&&&---GgkjjX* L+Gm:pرc-Zr̙hdddnn2l- _=S777o޼yXCgg}SSS)rmllG#y䉸LAAΝ;1 1cJ pVI ;;KdXsw xc IDATbx$%%YWWsiӦIJJEvƼ%ׯsܩS ` d'N0LTT#11,Xgokk  wvvYBBBs8 ,_]Ayyy+WܰagVVVTTv}"Ujkksrr\]]`˗}͞=[0<33-""_l޽񵶶FEEZ, `|y3g7544]r'//ǩϙ3';;ФI&N8ls{{{~jQ~~ܹsw~ҥ<W^=eʔ_@ 6yM$a}?ӉBF[ly[[[,w6;… kkk>|pBOOϐGGUV23fɕϯ;v瓓=뫧͛L8K2J'Nlܸ68;v,22r N:okk;ONNN]]]k׮h</11F)GRBܸqӧ?mO8;DE?>44T\\bIFFF}}}\^^lB)Ϟ=[\\ѣg9|MMMvvvSSSEEEGGʉ'?c 770 !pl#GN:U^^^ZZpsrr,--ppB{{{vv6@HOO777_rerr2˅OXp˗/w _ acƌ?~|ooFttoq<44THH? ð>89וo߾Gў={8p`+pĉmppŋ744\.7n022"Huuu111yȞ?nkk+&&f``$..N`xii_u"|0ذTYY?F Dz-Pt}X9HF$C> uuu=== ^~}G 0AA>+&1q  AAF%AAh AAd$(ZBA AAF%AAh AAd$(ZBA AAF%AAh AAd$(ZBAɷ--Yߴi8H$\reV^o>2,p̘1VVV111 iӦ9;;޽˞SS`aaa _ $)66S@{{5kT*5**"""Cpp0F/1 ۵kWhh(HVŋT*~ UUU2̺:555iii}S ; -M>ÖkhhXYYZ*,,FxU***w0F;vLJJNRT"lٲ^Xx$`mt:]VVvӧOWPP`0***VVV!!!׮],Qc.\%O/3@$.\,** HII999RRRUGJKKґ!CFOKuu DEELƟDEE;::g``xBB}VVV}}}}}͛mll޼yS___[[b ~8>}z޽oyMxx"8hiiM2۷]]]_l|+~[n%%%[GIUVV'[KMMvڢE0 illljj*//700 ֭ KHHUw677ܹ͛7</887**JRRxkkrRR?xv_F~bb"?srr[#h333333噙ׯ_~}ffkx 6޽ RSS/++;7A H_khh_bJ`ccllly<˗/ǏO ®]ttt-[p\.߷lقaXrrr|||HHȒ%K0 333cbpw)SL:p?sիq:e4iRDDD}}}ll,Drtt>qDzzs>I$ǝ;w:4446o8~ȑ%%%o޼訧?00 XXLLаa`yamff׷`ٳg8dee% p8222)))"""oVQQѰw%$$}}} F@ XXXlkk디y7$$$&NH$;::_rObZ[[I$Raa1 311pu744r\.whhhhhq҇?~^ 7qIJSNeff3H$ĥK>~XBB r</22r׮]\.wX Ǐ孬6oޜaC.ݴi@II?cƌ6???}}{ |D"166̙30i &&FPH$RbbG255/YzÇa % y?op8?/]THHHJJj岲+WЦM>,0g2%%%榦/_gٵ%%%fffeeeA/o߾ӧOo޼.TTT={6e~y âVZ%XzFFMOOϰk2++Ȩ&880pYZ0L=qׯ_~аuhhhppp߾}L&ѣG{խLHHr7o޻worr͛mGSSSii)~#G`f٣t ]4a555'''III2]WWU(1~K.F8"wQRRzⅽӧO---Ϟ={an$66ѣGRPP ׯ_IKKwF?koNMMںuƍsssDCBzz&m"""dee}}}o߾b ,,,'L`bb0ۻkʕ?ohiӦgdd̜9S0 `ddtE2|ɬ,555@ t¢)))ihhhXw(6mijg`1 &T*\Owoo_...|>'000ꚓ{MLLBCCLBPjkk .lhhϟ>}:HM4+V(**87uԤ$ooﶶGb§OpA.%---%%UVV76UWW .߾}{XXݻwoݺUSS`0H$Ҏ;Md2Y^^0IIIaaaUUUam뇆>}.$$#((Gjj*L o3CYYfUVVΛ7PYYի ###''zXB caʕ+MLLs9sLdd$@FFf͚5l6;99饤TUUš3f|crrr ǰθ򈈈-[WVVvwwb&$$$)) FgiibPgܿ񎎎ӧOeee=}JKKWXdiiIPݻoa .x۶m ǂ/@000PTT,++rQQQT*ťCFFfѢEzzz鶶mmmpv'Orrr:::q<<~7o.\3a„b. f "Q(##C__ޞ޽{w͎''/_Ϛ5 &-񵷷 `0kjjl5p ##Yf{KhIAA!::f9;; -]vvv.X`ҥ~~~۶m۳gLwիH$Rtt5`ڵZZZ;w[QoBBB6MP]]]t_AAAcc;lQSS$Vjڵk'OXD*N9s&\v(4~xo> Ç/_;{욚 p֭P~43iҤ[466.))_ruZ[[87 >6 3%*hѢ,iijssL.[RR"!!qmYYI&iiiEFF.Y$00PVVVGG̙3ϟ_hQcc`pjj*ަ<|dXT*&-6~G044t𨨨۷oS(7666UVV~B400㸚Zff&*a>_񲲲'N۷ŋpVƸa;#Q98 !!S[nUUUPiܸqHKK~:@CCCYY977o455}-FwK,ihhhnnv횏<]$a< 7nY[[Yˢ"x577s\|ؿRQQ7nٳgKSo K*"HG544;wnSSΣA >@wuu$jam|Vq )Sƍs cǎ7nĉƫVzxxDEEẺ1..~[[[[[۬,YYYܹs:;;4OO /M9D+Wvuuyzzl߾}hh cݰMPmmmNN+˗#xI IGGɓ'ӦM _f͇x< H$ cX<>D^^^MMٳl6{֭p~Kvvvmϟ?MLL ZlNczhWWޛ7o233'O ͳ|܊'O}ɒ~~ccΝ;UUU%p>eff]t)%%='Zaupppss.B9~w͛gcctƍaS3^k¤Q-֯_?ß 33+WhjjHoܸqΝ$ܹs^z`[ZZjjjlbccS[[{]&Iӏ?nbbBӬYl"""o>33b8-Д)S?~k׮`Z3fڎ?.,,lbb Ɓ>vOOO֭[ٳ> ðիW:uJJJO"11|mK ('dmmZ__?00pmcccX ))jl6<$ʢ_0 0* RWWWTTɁDE^zUXX8hرZZZ EAA'C;Q I(ZBA8&^  #A  HP  2-! EK  #A  HP  2-! EK  #A  HFcDP/^,""_sQ^1cbbbӦMsvv޽{˗===$255 /Ο?H$\r^z߾}d2v@\\<**3"s122\m۶+V +IΝ;~z99+W ŋ?*##e2uuu#|(--8{L555jeea322H$~.zgϒH$eeeQQQwwn117o DDFx/_tuuuxiiiYYYd2djjj~z``xKKK{{?a؏?[TT$&&F H$ymmݻwqx߿$RRRu544LLL=*X$B-''wҥ]vGGGXAYYYiii㸍 ǹvرcJKK\ٳg EHHÙT*B ~w.]WXXPPPiӦtiiaprG/xN֞?:DRRRũT*EEEuuu? `29993f' "/^622233ho&&&K.ݺukaaÇ|}}gΜ rګ~xyy޽{=z.++f͚bmmmcc;vHKK3̒ssskk댌 ζ155-++z,,,222233'O hjjfee$$$>|7B O>.\qG}gVAS&h)(( 26mFKgX!WWWUYY͛SSSGMIIƌ3ݻ EFFڵ{cx#|_J0Z/cbb> {!a%f,YQXX^QQ󰰰0ؘ4k֬Ǐ]t)&&J]]]KKK7m4e/o~djjz6][[[RRbffDK˾}N>yfD0ZRQQyٔ)S1 㷽A6lHKKEttK ŋ&&&%gϞlU(ii .XXX|CäјgϞ9s攗[ZZN4iݺu֭[uaU?)((TVV·JKKa#G`f٣t X@ ())M0AMMIRRL&yFeggٳGWW2!!޼ySXXx޽›7olٳfϞ-''gjjŋ+))ݼy/L&'ccoo_QQ\fڵk544`\"""dee}}}o߾b ,,,'L`bb0ۻkʕúE4mڴi3gBFFF/^$'ORSSa 4؛7oTe`ى.BJJJb&&&&!!1i$QQQ R9d.NG μ%0o޼ܚ77;vdzlFo^QQ Ƀ<OMM^.+H$XBQQqS&%%y{{fO> WrZZZRRReee… ON$EDD( Dh#H$Rss$x޽+SN6m RŋMMM{yy]x͛77mmm___aʕ+MLLs9sLdd$@FFf͚5l6;99xVVjsssyy9\XSS7 0 --"[l VUU0LHHHRRRUU;wYƍΝ=QPPHOOz¤/^8mmmz-\~ O7ի{7nǏ߾};nܸׯ777%%%_?'CCCh"oooyyaqaoeeeYYY8GNNܹsK.ݰa8lm3j={633˞/'OrG1L99pMMM%%%55[nEGG++++)))++9st}vɒ%AAAo߾500hhhhnnv횏3$a>>MMMD"qݺuAAAqqq *ܾ}f-^۷Vknn?ð(6f>QVV_FEE;"EAA~uVRR O4ILL XYYeee1O GQPPuttܿ||3bbb|w˖-111޽svv1PYYYqq1K.$6G}cM4󊊊W^533sss#111nnn_{A_}}}ׯg۷'N}ƍ)eeeuuu߿pBv_UH={q nu```O_QD"q۶mk׮pŠ+bbb`V^}aԆ @@"ƌ#'aa^ٳg̙_b/o\~~K̙STT X ð۷ .TRRz|wm4FKoNMMںuƍsssDCd2,L %$$0\.PPP(--jUUUJJJxâ%Զ?~K8\bd;w^xaooSKK˳g^z(@ C䛦P^^YQQի?555yxx鱱ɓ'3 &Lq>u \.㩩::: 8 ^jժٳgp8SWW7}/_n{_m1 }.##6ʿGc򲲲#@qr޼yW^999 e``}QKK 0 ;v,Je2 ða=qK.\ɓ'?q~/`N}uu۷ݽ{֭[555 D"ر#!!dyyy $%%UUUqomm 'fZZZzzz ׮]sww9,VRRbkk˿ r|BBBbbb d2Njkks~1ǣΜ9a՞={/^ sU{{{)_kkeEx<˗f zzziiiPicccOOO&Y]]񂂂֬Y#@ +--a.kgg?䐐M2 2e h,?9/g4FKNwݼy˗p9af6''ɓczzzacŋkjj-]|yڵӟm;x\.1//`00 mub||<!t[vD===;1a"gggaXvvvWW{zz_a2҇tsso8~[8pয়~0,99cƌՅoǽ{\]]֭[',,vځއ'O8{nooawԣͤI"""cccI$ctt'ϝ;_ԩښ8y6 H$;w:th```ƍL&~sX[[(##2j&Fc?~<ڷo É/_={vMMMEE@PPPuVhh(1iҤ[jjj244>\.kĉ Vvڰ%K\\\[󩩩UVV\q~ _uu `ڵ'O/ _BcXٳg8]|@ǎ;BG _VWW7661Leee6-..jժK.{RR##>e&ahDX)5h = Q(QDތ2B0 H|"ގ@$=n"[0a0v9PO[{/پ{>͝;7))ח >}znnnzz@ cK+VHJJ2}]m4,,~ 0IDAT,,,zڨ[DD}<|p__mjOo677+ Bwx<ޙ3g"##!uuuFOOO__C@!dK##bBȢE233---AIIPRjѣGƍ#zyy%n[s߾} ~jWW׌ OOϪGk ݼy֭[/^TT kknV6[oϟ7uɓ'gffd?PVmǏ{vvڵkBCC\\\hEwQu5dcKBa{1 C4;;[TFEEݿh彽;#*jHnݺRx㍭[p\J~{{{P{-[L6N]z;688XUUV⋘{^rEjy1yxb+3f(..xwvvvfFЫt+gddraveiiimm]VV6sLݚyݜBCC=zYwwwhCC!ٳVFFF˖-;~CVVVZZ555׮]{ =ɓ'322N>bŊy}RruzaGGǗ_~)tH644h4zs].[[[j!$11r-PHrC/bZ7oH$!'$$̜9SR-_ۄwwt ~ !˵ZsBBB$Y^^މ'A\\\DD/d&??Ðc?Y.F,YDw(Z-Xvx_ロ3go޼o߾E?*99O>!#pYfbjmW^߽{7$$dĈbD,߿W(ܹ/77wmkkKJJPCCCjnn dƟZ>xH$jhh{?rGTd2۳i&iB=gjjjlllll,;H$u%B}g.]1BbiA$M2%**J"ܸq#""bݺu555[l[ZZrrr233hjjwJD"ȐdtcNNXO~o߾=88XQQAIIIcǎxt۷oTw,X lٲE 9;;k4[~g+'M'rn󡡡;wk4FB)))ٶm۸q_ , ;::rRۜ~x&MR.\ER:qq#N2lkk!1 MsaBBB]n 1-ر.t[˗/!r|j۷o~= ~ĉVVV*ᑔD~[1bDbbb___nn=444\ѣÊaaa.]H$NNN/^lii>믿~ yxlhL23q022:p@ee%0]]] ]]]{4iRYYR(/_UPT7|NC8qMT GJ\.wƍgƍ?`jjjwؑ9{캺:>ر?8''gҥ'O.//x񉉉>,i_xJ%#4&O z_YQ %6HKl -AZ`i %6HKl -AZ`i %6HKl -AZ`i %6HKl -AZ`i %6HKl -AZ`i %6HKl -AZ`quu39ZVIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/list.png000077500000000000000000001164601473342170300260030ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxy\TU $inZ٢iˣOϥ,[44557PA@Maf=4 _zݹssgeÇw߿ ӪU_hB!"I[ ^zj$I$ __~,˲LӧOu n>}0<pc0@'.<:#:#5}:_;Կv 9w.;=ض-{V:}0KNNʙu|`CoO jz`\AfFQV&' vN.{{ޕ? !wXw[d-6?#tbG6h1`/up'LNJ_wݲt֋wy=tr*MU&yn|gq?>w`2Ni}Ժ/u٥+v|#*r5AH+n4MԝdYn? &5lJK צr5QsMO+HӴ=W1d+ 7W%_֬O޷[uC=GyRUEEf{qWR>Ms\Jiޖ6ϝsUuc^BY@ Zz׭lj)DThtOUBT$ɫndp7_eСW6]`M>}Ϟ=]߿^UEkԣŴԼS& X~ YS1yIΧEtqp Pu]=zP\)@߿/֕W\E_vWU"{7oӌ; > V*QLз["NժUk~BMwՊj0מy2uu+Xu`Kf,HmTx{{7sι.\p;vl݋.]?(믿.ZE| ҿiӦ>|$I:t}||gdd8qz!Y.\/FEE_>4mC _f͚yl6س>kٖ.]_rmZ}2sI3|)řي_е$I>}z6m>o688ر̙M4yw.\Ot?9؟~aÆͳZ$IDO>?̙3CBB>3OOO6h\tiBB”)S>;w.[ڵuva…!CFED111w̙3 oGz`tUϢjƫv lFj@nmێ7nD3Qbcc_xᅔ"ڵkW~mFD?Ycǎia„ aȑ_ŋȑ#?s.]|_:v؜]Κ5kƍ 0iӦ6m""/C^ lٲ^{mʕo٠F( ӷآVYE_~F\˯}mΚz_S#!ӮGDD s:ojX,VMbd 6 fgg兇ι}[aX8 fggv%22^khw}US3]]W߿ӳj $J]:go(XWtEIn nن f3 WDj~~~>>>Ν#"I8JcAiii{y';4hꫯN>}׮]U&]e92_9+#XEEnR=!j~y:{ԗ_~yѢE~~~Ç߱cDZcǦMW_jjӦM W%K<ÅÇOOO_j_s{eS_ܾ}{˖-;vofeeeeeBpO<P5.iz忊w V"\vJ Oc;KjZV%,gbƍ˛2eʽ޻j*{j?~c^~3fDGGVd_~a|͜1chVPPPXXXd8nnnow=mڴ 6T!̜q-Xrr=O//_~ }YkWf_""r o.| 7zu,}s7\?"*9sJ^Nt km/}T.QI=ǼG!*tNH$=3Rٯc+jSfԍtGָʹm}XH=c t2yPuU Dd4zͭ(zb&;GMDfDb'EʺҫY;^%|fG^JQe+G_ ] VpB?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?A?Az]( W^>>>c\J4姚e߰lyyy_~}vvu)KNNwРAחeپǑJo8?[C W*[9DiZRR_j.99_Ny$QYɯj?fƬY*HtN8K+eO{cYо?99yvZIE~IQ֭[ 6T|oEc駟:B6]UKPY՛14cKKs $ysn=}=ӻw`h۷oDD(RJVV~jfj(2z9'?Iׯ߷oիWW  pܠt_3<;.sXsYԜ"p}՜?ge2g~!tc####ɩWs˯kKG&?g5<p-jo &"gcouB4h "ӾHW=z)r=Q򐎔#QkùjJ٣J\rRKr5Ƙ,=zH1*Tw걲'JvMP'r?&`6j6.e~cPF>yD9t4]lUUลc"uce&ShrX9cRzeY ݒ ݖ& ȚIbsl8gA"Ƚ*|||\wZztjpm=ξ,. $~LL*0-rϙ.RhEZͼj*L B؟=`p5nwE.^g4_Y2p'Cr"cR@u19Dc\L&SE\W>o}VK1FU@hy5W}\jҳQTͮrzS'"qQnbsVE`8#"MlJnDVd H0U0EU5,sY4Mwa!{W?FT@9. FBbĄ`D$*vexe\v ?إ mDRs VYAAM&S=?f={iӦСCy:;y\\djذa9wl$ɲ|RRR֭[Wv>}.TU꽫ųG"M. BCfeYyR]/OE34IEq$Ј&7oIf, " A$AT!K2s$UE1i1(,,Ǣ~).s) ڷjI\?!$*E ,*ʉwi8psWEH~(''O?ԩ=^x177%IIIiii6mҤIvTBB„ j׮=|̙ӹs2KRXX[oLM%&ADą)>nDqM6F$1&qY5"ٸPA3zNim&c$ohy.`PL.M6Uҟ}v^6V.o-VW(2dӦM&LX,.lذav"/ -}FnݺuϞ=}q~+;;;==׷^z$00pÆ F7nܝwSO:u۷oq#ɓ fyɧ~://:u|wv2eСM6򪡭b} 2 M,ɜ%,]"4&l\5ĈqY3ʊdI"IV4$fXlؿBHL%!Y4Hdd4FB",KE!#S_hxPFb S7cHBT$R3R^U_W}s<{l͛_>裃 ̜0aBǎrh֭۞={RSS]>-[:.W_~z뭑#GKEEE<`pglݻw裏edd9sx駟~饗셌'*au:گXܭ\fbtIVlIY `d&1Y$1iBp $"!7lSIbQ E(]"7^1Wm3wzz3?*xwXY ~\U+s_yyyN4iͭ[[s?~ȑp'N|6bkԩS'Ni߾l6[TTTLAEEE}'}m޼jZdIpp{p8諾)T+0d[fbӈs! !ʄ‰qMSC&I 4d0)k$4.4$U"Y%D&`$KLS rgEW-h^iwT$IhE3p'+ʬs~%̛7///(//l6O:d2s=]v߿|6m8N4m֭1&###_-))).177={:tHqaG(t {'<=={Zh`"Z~ Jw+{.V6mRXN wq_~O79GFZ%E9V"bZ럞o1SIӘ"+$BHD$l&%Zl"s*w(L*42(ƹF4.H4%ʢ|z$# L˭R%IznCn\LRzzϡhÆ %%%֭$)**k׮111HIIqcǎf͚h±s$ŋϘ1cȑKǓG9rKI6m#,111}s ?z_~O:78nܸ_]Wd ޽{ttttYK`z=umH2kubUļkLI戰`fjA$Y]!$&#I4+cB傑sҘ̸HR8\(D™ Eas W/3KuVSh` }5ȪƄ$)]~~37;[_S*'5j֭yf"JII5j… }||֯_?o<" hР͛<(ؼy;ÿ[" {ܹؕ377o?}?#V믿 "!ѣGի缚JpppϞ=/e4eYr},_U:ڵSdYڵ~oE֣@8ȸcA"Mpn,F¨(¦1NB4` 32h@d$db'k$I Yb*Ɋ}fɲdcm407#bDa ]'#j^^a`?ff_6\>GhcObbps[-TU]bŶmJaƎ;vAD:t޽U_^^ކ 4MpBAA=eff燇KII7nĉ;t@Dqqqiii.W;~jB IDATik֬q_;[n7o򹹹UxٴлeOsMRw+)%fKnK$ $ͦ Ҭ\aR\bd.ˊL(41.8ZBIb\%!i2#HVAUU\'&wT. @Y ~Q$nySϛ܈Dt?[-L , PRTd2.ABb&d& Ƭ*jTK(D1+$"iYdH#gjL+d+yz %oAcj"\mH LӐ;FD$д. mhYeӦ8jҊFsiFӒdMG?H ==_2okzirDPϻ}"F= Ծ5MNs%Ծ9=I[o\7$P GF{?[LD*jג:sup_QQ?w1c4o|…_|EXXشi~"2 =Xxxo㏿M4qcA͚5#ǏYvڏ?Y<8|pUU;֪U+F}wXW^evs١CBٳg7o.=) &F$s+"LFbS ZUU!M#Qv~g-F6ȹ& aH#m6Y\)q&k ƄBh\eBD$!l?z>r()N 鉥JD@PDDї_ӳQ0&MZ)vw4e=)OuifQp}ksiJAVRx"zt`=Ԛ>޹Dvؙ3gmTݻwϜg8q]vO:th޽.]zȑ̢'OFFF.R-Gݻwɥ: JWF2zuw;O71bұdѢEp3Yd Ũܳ$n$cIhSM3զ!Y4*F$ɲk\%ID%f8kŝ_ZJnKQ2JK{"Q`RjדkǃS}KyDDT($y3(Ԭ]Bu4elj]HyD$($3VLDs鰢K.eTNaAD7E[Qfy1Q4ѧ@B`BatrWe{oeTUr'.mTv+9sf7nB7d2[f9$$m۶6m"Ç !vUPP`?]vk׮7o^ӦMSNV+ļ^^^jjժUqqqU{u>s[8}CqriӦtd-_<$$szjjRWVTШ_Tlyٱs ҈ DLiRPbjj4ȂR2Ƅ&,T IRU971ĢڇF$i*S] $e )H=OK?v jxaKpz":^ TA]"S^[zQwʮnA v,C+-3{|hN4:(+qtDTkqɶeIҘ$AQlVFc0AyPEJFnt*'")\Ȓ45΅Ii-I*8'lʿ )(l"#GF{Ri`-fWs(zԥ~D%V@r\Whрťy7E`?yů UxT>QadIx\k;5D&MΝۢEݻww ASN4h7|3k֬nݺѺu^y啈2.\`X,"rԮޤIQ\:9?=zmV4v~B&H>djӒNIu4/8%1~YfE6VXT˜ p 2rM΅\0IUE&.$!8'I %HҸJDVj4I2Uk2)B;>3mM-dp=Ԁ^xQ VTO(z4wxJ$Q@ W*=ؕLGQ}W_Z~ҌԷ-IʜPiʛNY4,ťP_"Zo9W WG-cccՊRSSCBBHaw۷C ðaÜssm۶]NZJ;Ν;;mw5kDFF0@|2!Y*ܺ!Ѱ^to_ߏH#J*.Eթ-r'1(^fj!b\"&4U%M1!DVդHD9WU$l"$ι&5|jXUY!EH9g2\0WAL}iP (#)pΠ_ч{R9ZZPPH72_?Ǩ(' \ek%SXcSZt[ &q!O߮voVvM}g3Pӗw&MrKo̘1!… gΜ WIl6[bb}l6y_իsrrnD,]XA111.ʕ+׮][nQFUQ9 37nF lIL5$lB|-VD$ɢڌF>\0#!8c, Z5M .8HS5I4Mj4 <iO7Jɢ]Jfduh17o#cܥ7^zAQ޾%?])\n PDfm/zwOXx$@T-]E1ګ׭[}#F4mڔ}]x;'"ιjU8˖-駟dYl|ItttttuΝ;os=#999B%K,YJxٲeefLLLB$&&Κ5X;ScǎW:b>̚inDY -t&4U b%a,iĪi$ ĸf#ƅ%ic q㚦1nd$1EU5"xI."AĉYߝO?7 ?#s&WKnݺB]vk`0,]իW =z؇Z|`e-Yd֬Ynnn֭[+m̞=;쳵jrg˗/3Lz <^iھ}l6[޽]&sxOG~:|#Gڷo_kIIIzΝ t'^ .8jJKMM rxzz:jA"شiS||[;v\|III;w ҥ "2uIJVҞ:`D7n{v!ĥ8=sιivΝ;[,P5l:0h}d5LP  l=լ~Te ]@GDd5݈+#arlv.6`R9X-mhl#z0"닻Rҍt+3JvYXkWwzP52zm#ސApM&B@.~@]:ȉ妕 ':#:#:#: ۶m+((9|СxN:ar-w:kO?]{PY.GhDē%l'WL,'ZIQ^۶Ϛ:ڥCEIšYg;gN律[_-}OYK*Le"Ėuw:My&諽җ=<={655ӥ ׯ^:==[億۷w1::Ν+..ɩC0_Q H1ߏRG#\[,={j*e%nѢٳgM&S``ljԨQ@@sMfy˖-III111111,߼p{ !Ҟ6u ;3~c|-ϮpNw.VI<{[Ʊݑ܆ԤSD}J/˚n9va߽ᴍ_n"ϦNwiwgKT?biK}cnHgP;R7ǣ8'j-T_;pFCkjm5fNZ=yΔan_^5-_pSӴG !snZV+fYVGԳKMMMMM%"ƘN:AAAM4 +,, >|Χ 4CG5b1}3gج%??9*Q/x8sz;;h`/wڶ#~-(ЦU) ,~]4NstdHK?^\mZ|DDb?1<_vCu ?z=>FߚX=3L_1 "z["ZۋhmBOF0۩6geQB77նQ#"{pG~_Y|E ) {25S<2z6֬{.it_ xϽS_ں@l6ڵKk>l^zuNԩsСD"?5.\HDF{ ޱcGAAA>}N9󋌌]+|A'6V>cDV}F{'{tx~'!g?:rO${Iv8甉תmS<"{ܑjƟp'S {,OÊFNu}Y?uͿ=~|V0bLo9Ĭ^H.*c̓$>/,r#U;4wk!\[>H//}!#XrehhhXXf͚eiv=z89/((HIIq Ƙ,˜s+=$Io0|ٵ<&sA<?죛~kֽmuB3 #4 IDATlDܣ?E͙qq' mrFٻNƢ/I5'̝ 9cHpn5U/XxdI?*߸?wpɷyyޞr: #SK9YN8 "Qt{nu^jIDʼnjvlH9f{:>WD=DD{kjkP@Gf=1}wpz-dYsָq;399㎝lڴ)))|ҫW:u8kfXΝ;2w c쮻j޼ x=b)b2cEEE1UUz@[~s"bڙ ޢ[v7N/ k'~sױf|?wtVO'"rc_!ĄbnװAd0tq@0uh?r7CW^46F$P%=vvЯzo r}xZ.tyy:sȿ/\ʻߕHd2\cUV:uW[ӳu^^^j***JLLlРjX,=zp篨hŊ7Qn EQ$I~._fUBwaU?} bNp,fefj(GΜ[3gn܊ >8xBezޯ3|aޮg;$ +p}>ODB'X"-=f YybeF5NXZgk:}71ϡ'4mC+=1ÿZcH}PIǪ\4PE{'Tq [aE^޵6=T lPb Ƙk7-9c)]F| ̞2c혥M_o\ݯzϣEne/93hQQzr&B@{o͛7oܸADV ZT qϟ#/^p蘧[ "ww$b~S(]e l>2UqtXEk91 "2l ξZkgOj9%֐$$<\,&F juKRc$/&U)u_=aT63۴cn>tޓr""֫۲׬r^޷%?Vq7gMYe[~1nƖV gw!t[[7Lx)q aggfe>a*Wl{UL& TT>>>gϞPN]6 kР%Uqk-3 RĽ'ga"zdY 'IfCX"ż2/Vv,R'""B||={K6##ިKqpS1$$.9t Q,z )&"Ʈ7&jXJ]ׅqwN^|c?N?$DƅgU͞? NY"M=۔gưVɉ~ N{˫)J~LQmїxkrn6O<G%''=zرc.Fc\\\K :z7n( B0]XXؓ'O8x (11>>>&_'@y^_q`zK^()Aq'B6DjZV[罼>`ܿtađ3fdڞ[t7.?TAwwMG2HBҥ ȗ7b",>Nkwj YǟG-{ʞ/^1f)CQSX:!X ?,&pI}?h},orgd_LD[~0?*)O=+c_/]T?@n(L?ZݡC,22222RDtΝʕ+}yJѣjժCׯ_7e˖}d? i È L:\.WVWetZV&i41 iCN0Z掭Uɽ3f_^g.i;Ku]qf{jL4Rv1DD:O.]!3Ŏw~3ڮj3uۨv]dgza౞{V~S|Icg7|D}WqWEߋ7=zL2}Nl{=v=vtEJ,i>nᚫfNbv,X@/ 3=LWqї~z2Iž?y#aqӱoŕϞ[]o0,d2V+UX~݋bY׮]񱷷YÇo߾ݴiS???q/a|}}ӟvih)dbh4T+˲jZqJV?)a!`FQr4ٛ%Rm=j WmVj`Κ}4Sf> ^90WVYg=-T Xv!p9-:ShA{-๝Z~Zm2_`d]+ulVɴG_NF6u_šߕU Pgl 򯺮H 23C)&pq~CN8/bF$`Gh}$ӓll FYGGX\ſA/TTd2AF@=_o2 hct:nbL&튗޶>Ųxnۢ 0D`e]]]sD㸜ʹs<2}y_MIIV@auzR 7Fq8y~Y$<<=}Qՙ}NL̈ɏjZ4hMgr:1-|+MjQ(P?a2^׋h4f'j@۷Y*`}spAzoHd6˲ bPL~&)#feYRP(89-HSN@%б~տ_eZ+dd`b^}w@h4b1⒁J2A0 **r2>I RRAz^Vf"N͚ۋu c# ii,lsdOAz;#. #T]MJ(Vsv5@65?mÜdz Z6FfG˥'ɬEM,%_P,VH;B={v$ٜ{=Dx}UGGG??"Ewp)h>*~^qܑ#G.]D/?ra=㸸ϟ_xJ*5kܓ>f) kݼۑT\AZP<ͤo[n4 /q͛e2߈m?/^v!;-d2Yʽz-a )|ȑ#ٿJVxxѣG4íBe5̊a È$L&Sf9ҋj ټLp^@ Ytd2ŋ-PXmˬ$Ʋ,K2Zlx=7qWfYwC GqnJֹ+vrz,dPGrVkggggg'3̠a7On'[¶ j|}Culb}C<R?}~+ښý3?z$>r/c~D,w$4(L?4HBJGXMlqxuXw_HG$9ySkןꑧ1q)}UȺ}PKan> ÈQ&}R:YOX,&IRMg8.%%%} e2* X,#֟Xɾ|9[\& Xz=dDD[!Nc?vbaJ9 MЦ"{C^SyՎ_Z.2f"?f{TX' cE=~3Zws|8111 H>b̫FE.=9m恘LǸܻ%'-AͶ'l6rq(Z`5eQtWOqd?M(/,=Tb^-זԸ|)2!U>4@p,KD26%:S&\uݭn-"הh_,o3SϴEÛIq(y'nx3D$$\kO_HSb 2zUgi"~߫۫;|׋#nh/r~w=疇}/8;<ɖ-!".]7@_lzf)emqC6щY󋞽i jQځ%"2ǜ;mnn&*d[`dn\>-7|dʄ5M铚-1*Jw).BฃsZu~퍎2v IDATa:hx`U^R&ֳgvjiRN2@^(|/|7E[lK+ڿ g'؝zG^Ǵ!Y<@;=HQfUXO͖(&6=}|]|4S[_oګ7Kkdڰg]CV4g7,߰g܅5W TGl=yik4x[y!$?V|5lؐ\\\TBDCfSpj|\1ȱY)_f ]'2P`𗃋<߸qݻ+WjՊj׮gx"hn9cKn:x'1%XGRE, y_WV t̲6/'Ԝ/?, T_2͓&MrvvNӧq\|||qO vR 9B|)?v3&'2_߳dY Ƨaٽ @n%$$B UƗ\؆ѽ6ڒvܳj%@)di*i4%A( )d?{{L&Q<;::w+p(d)dֈ.AJ*߭¡`V 0 #XS! Ŋ 8\##qAAA( YcYq%KX, `XJ,ٸqc l*d>HѴmѣ/_;=Eݮ<"0L*U6lhQPhGDvvv͚5\rhhhxxxRRW($ _ʕ===Je~=IJ,˲ aP DT*}||<==yk|beY\^xb<00FX,&]g\P( Err\jZ̯ PhGD,ˢj\.t37 ٯK'2,[lC.k4SRRriF0 #KryÂ˾*8t>,bq{ ګ~wkGoUvW>у>f4fch۬qi>f}g*uI) IV} Jf`@(ޑ *JӽQ(نdVr8s\=<'o5oQ؏ݺg9ξkCw/;{uQynG_'Y{ 痶cXwspzM.-vs?W*^OD|klpq_zSIiWb?r`p~FMj(H7V G 6_5gW{u;Yy+FnH@xgYVPYqQ[Ӳ0\.7 JRPyqAs@DG\KM_ۈQq& Ϟ>nZFo٠5h=.NE3 Ư8Ȑ^[vevb٧o8E6~NLe57vX85]#z+N AwrBP6r/ "mɥߞ2FԲcTN7p8)rA.AL&Jz$1ccL93 bdjZr\'>eggg2LhҌcFZ7 "BT*iXZ'v([,&ɶJeY٬RllF<` af? 9fԁeN:4:F%IR\T9):Α}:Ov8w<ܹ懁/Yy] '5vߨCaj_޿Q"ٵ[6.W.˫{ÉoL[^ZYJa˵]ysϪu1HfBF y1&-C+oW/UWtԀ__cUXB6bu=5(# YybU_Lxx[.qb`3L:N RbMNnD$̬7fsC1* #Jy1K1 #FO1Y,(2[SfMR^/l6 Lf3Ţ98h4OiNJf:!ll8d?l '&V~rY5XkCbj[I"##/Z~ƫ#####Obԥ**pww(~찆ZϸysZ+EK5rlR5~l&As֭1sLۑ R4z,<2/jN<q|zco:^){aS(QD^{e 7ⓒɍg )3N*kAd*RgXxWTz>}z}DbΓbRӛ(f2ےXƓd.'ۋmf{R `bl7R}#nm6[k<8?hoTQj=:,WV=`T׊2"r.1GlӇ1}6kT7q{9?}MU1peNDD}#GDm|'R:+{d%E1bߙ1udԹOUm}N}mHߌ;.kq!+z#v`k(}mֽgThh4ȖL&ҽu62jz4I{bOZ7κ&EJED /g/*-8Ꮟ?7䘣cTWƆM$?7D?s1X.=Y5meHUֈ#^DZt9ɣ'Lǒ[v.O` v6->WDDNT T3z5icH폨Nsw6ϻeu=65A5F*vM $YB4`Qyvlmo[옽 GagnvY9ސ:Dhʗ gf5`~bjG&@""dggP(lS8 OL~#Y gF bdA8qGvfNH\:ČuiP\9/sɜ{t/wAke{ED³-ڽ[5ocLϭT-1iWb|\ͫGW, -Rv?-[Eǡ "c|jD"#M<5fz,Y,6exݎ4 c+4Xqb-1hb51͐>\q4Ƿm8A\ɗq=ts?;?.!ɳc۶w?:aݛsM3?3Mqܶmq7kzuDd>?bnUtFQ+ZU፫6(qꟛTT?ױC[XNnmOf;ouC~n0@xOlEOLcV9lތF8Yغ2q U\,v-e ga&ĥ0r\k0ҟlqabpAn)lK^Y}1zCt@gH/#:eB>ӱi=1jO Xந7bu)W{YLߓ\c73#, =w5_o׺'$%%DcMXvdD8Iv15RM7j?{'},/ʟsi~"iѫ{(@n@@2fX,iҕxY[ "JSn`2^dJlk{虝"."0QlOmxO2Hvlqz)x=-H]r%ηVd\'co\R'M,1bQu^f)ɡU톦oxƮh42"n-ii;+8MonƭV[{!4<]y xƥ3M[]zq?HTt[y /J|IER|5Nz5l8%>Pc#^#ls|4;ߧ +jſ^dPrd:HŐ պ-;8|hvXS]jqVQA̎2nPYecdnNҶG>K+vsn2""Fy33Z">jf5˺_1FQYϊMztXNL!]>,m35Vk,sl]=g Kt=7y{.nqj0".~aĉ,d2q=-q].Bgk^G ۋy;::C}ſ1 5J48zE<ׯ_?3cWbKG A)@@B$@B$@B$@B$@B$@B$1'>OX 6p1Nx}og&%4in5  K ug݌3s|`&>rs߫ݚ0 Q­;wbt&@BN 8L\خۆn!"ub{^ӽSr|fb;ɪ}|~/hfOyRƾ:%tAƣo_-ϮO/j@!?`3,/Ӛ |RkWXS7׶cSE-,w-7cZ/r['su@>A(`k,y̳Ӽi[. XnxcL'=ݾ4G|wUw+ŝeO_Zx)63m+Njјv a/@A}cXNt)wvc]kvQ}TBB]"cͼb~{wۣ1GVLU3r2e]J)SϿ*4ZΑU;,8%:S ׉ zC);VjJw^B£|!yÆnc"D>GA%=?FD6)3%1ِ'{}9_i:ҫ]bLT&n}`W ya{aGW‹%"Awg㨁knj PΙj*K>g߄{∋<2%e^nLg9v&,ߎ}s2@AcyxpEX"b]]L_p$'>ښ _;j">5o|yx3SbcccS7շ  =})tnK:5U0@8T~儨Kwws0KF> >jɑg&s*YON}s[֯]_W+ol蓝/?NDM4O)Jiv>~]_9u`4ƿeƯ#˱ y `a=[\ᾟH~|qC6LٴCjc4 Bz.|Y{ߦ3j: i]_P|ؿyq;m\UU.wmu""M˙'}o1B`b=B z'N,+Xo0/:xy=GFfY5[,666%%%[AH;{>#A!yy8y~Y1<<c$@B$@B$@B$@B$@B$@B$@B$D (L8V=?7Mx'? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A?SIDAT A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? y'BaV? nb/rV}Q f7Mij{ K+*c2$GQۊufR/E( ك^=J W9fT$$'+Wp;v|IDH H H H H H H H<< ya:BȩCٜ{geYE(\OT:88hZ\{!d2ґCTґyX,z>999_#*Jj4dA^F[0Nj]њdFoe@#'O{]Ҏ=x?OOOGGG< L&}(ys/]\\bccsDP1 Rr902,x8N, |Y+m6̔E7R !VFm^Pn>P}SfmBN4oooGGǼ=\"ɢ-P1 EDj: Y&qqWTTTTiǏf>}1RML^bXD$0[\XϢ#s*k(V_b=aoo/#e2FSS.=Eϻg\3G2GRrT*U~7 J%fh4ZϩfF6ITm"E>Mww9r NNNy3Ory@Ahrube6#4Mv6.Pmgv+ϟ-V&093!^ H'J<߭$7 ͧ5Dİs&nLC/Wr?ŲL&V,egdfbeOSrG!K7etR: ȇ5еYo1lN-.X0^ ? A? A,$w:I\Ͻf,u=RB8L<3rэ3\RHϱaIʰ$ڻ.~ QX{h䔏܆ u&٘^8^ p9,I#?Ν;?n2`|l)S̝;w$ߏ?u)Sm6OHEh\.:k䥾}zŋ;vlܸq```>*Cm۶]v&&&ʻwSƥ`&3!oV^+Wٕ.]:/O{ִT +UT@t'Qsx/988ݻw?taÆ4ŋժXc_~%,u[jСCmy~ٲeӦMǎVUV\uS*i ] } :fP*Dd6[υJI5~n{**y`-8;dՍ{$:hf U='/h7Z*_,-⟠@5iTpL7 O._w{jZqOcv;}7쑳}ԨR6߯&86{a#.\V%''_2e-,K\rnݺ+WܲeK͚5ߟ-I?ȑ#9tر>7m?ag.u ;ruW([Ķ'.^M[|>mٸFtLuzc[]|>Wg/>nY5[,:Xྐթvo wKt!v36)EGGhѢEv+TpB8l9y_m[W(,;ZVEzڕ7q\|‹SgU,[RR; ]r[m8zu]n*'-P{f,[\9]#~ v^gJ ')o&;\Nӯgb{n-m[ VAruEE.3t za稌9g9 oXc)N %ii[c$i٤I0NIwusٝ=hG+έ-ݏkb <喲}zҤI3fx뭷r{[ZJ8%\kK{Kk/QecZۜ].5[}@@|0?;3D)2}mEˣa{GdO? mc< =8cj NBonNB+bjw.0ahBDzFa jwz nogrMEK:~Rٲˢ(Jٲv%7WWMˣgјr*!J{'/_ݮ(~ОR6>d u/LL͙3gfϞ}mm~O4iҤ{Ι3'ODY1˄ci BY(oP~ӫ=fL(8B(BES, (Jb KtȲ\(JҌ)E.5kv^N3IurfY<\N<uՊR%08V=[^j90c O5~ς .;0?+VTjL&m=$8 nEۄ%(R7[vm[[[uuu}}} dY޵k̙3_~e< I9k8QA.*o&dXie? D&Ȓ,2 ̈́NS4DZGh[W_O3S X]nU' R1?[TSl5}Te _}Yu_sdnoh=OD{nѢEq=@ٳgΝ6bZڰTl$rҥK͛K/M:__f EQ%I1̄zΝ;7o޼~z ;0p洂Kk p{JK+,fhLdP~(._Vv{|cKn.?dhip{zƕ SLi{DQZlrS(eïlI"g~z, y)DQRY(:͘LDL 6O;::V^}!uˁX6IH;|P7} 0 CzBAyEEE1YOg-6G*33KZ ][nݴiS[HPh.uGLIyc ~7nܸg흴֭[7*Vk04𗗗|×F;=х7jŋ/Nt+d=uh-ꖗuF1"dy鰺 7P-shU#q93FŸ6Tj00ޞ} K'6SvQE`3yWWsް"d8;;!LQT>Ԃ6՚_ AD68J~yFqΏ/l_Thw?TY'7pLA$dB}!.KDQԟ9bW{(YJ|O)Y^^&?r YLWTrytbGɲى^u"|ms\: @@ Ǻ)YY#=ʳZꥡa̙ Jiuui緩LLM%777 kТ(fn0 7@E'f8Nu*yqίz~z륮67a6I$_ueߓ'O%eXJJJSvv}XiaPQ|IIѣY6jԨrQIQTCfiG/VVKhKZy@%fiv2WyFvLlvXvB*]AOᛒ@ss (*ImGp ;5$uMo eYYE8IZZZ.v :6EAP?uޅvuNUX,!$;;{֭"a_J{rA? J; /Q#Q?B˲/ ?m }Zzz 8-[D]O1gΜcj_h ʅ `SN$ih#Pdɒ￿a=/GݶH%(dKA?5xҥ?| %OxYfeee5l6+& k"HAZ?ݾ<ϻNW_E:/,B,wbЉn ?`AAF`};@| ?15ѡ`8<6Q `xs\ ``IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/main.png000077500000000000000000013372621473342170300257620ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxy]W}'o};$J-Y6øHӐ_8 4Ĵ4^ݘ0dzieI%kA5 {sJ%[Ɔ}Vչ{j޽i||J)RjRJ)JRJ)O?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJU=/xK^6qݻwfb|_λ~|J.T)RJ=y4>>e˖'rO7xYϞ߿o]?nNON3]W[;z /hp`#?_WJ)R'a|| m}-_w;]3sQO/;nkz|דZRJ)d=^~SS?[*RJ'g|| >t?|+;vfvn?=.y*>RJ)u"Nnot?_jI=%Ws׽|fRRJ)_/_N6kSS])RJ=y'{1sn{z{w԰qvmRJ)Աh#W]GvsKz<?%V3M###'~i $zZhs|>?Dc@+;oW gҹvm?ivm|oc^ص}-/Jϱ۷__wdyEdΝ<޲~MkP|w}]\tEbq]tѓymOuG'rryS圩_|oنSw se*N*޽+<9###O2=ĶyES/x~۶m{E==|E;쩟|Ép}Es_}XfLM/:$M)h4K.d~~~rrqj/UzUۿۿ?,m۶K_ҕW^ym]wufsrr=馛wosn۷o߯گ]s5󋋋ozӛe]W"o|$ǺZ|;W-jwկ~s{^{~󎌌]b͛7 _855WWַDd۶m>o޶mwfs[|sss}k8O~3x;h4>?cq̼hZ_oM7ݴsN JBITOpa$?xsCk۳OpoIʩ3/6~{+wgGOꡔRƘ??ټy_o'>h4>7333w^zm}|>G7GGG__qvh5׽kvll~zIb'>qg~ _z_|׾Þ0::|G꫷n}( "A|+_-reo>rK/[nᆷ-7p޽{ /+o /˿򓟼 ?LLLyoGFF o8/RgR;U'{O967p{4 .xы^tW~8_җ^tE}{w nKoW~||SڴiwߝiqUW]v/ /.;t:}c]׏zIr%/y_78y o{0?l6o馵k׾.Dꫯ曍1/9#}f_~{|֭[83|/~WunnxW_=;;{_7J'\tEvV<85eOv?2wl /_)̷e˖ďAOz]wuٟ1FD>߿]4-態(z% 6m?cq":ӆzIDzyffޱc <99nww7qppx0I4"":l{)Jz8.nZ 3͍oj\s5\St뭷x衇NcT33=3W=qZikN7kOwsͺW:&;}PßR?{1cccDeoy[%/~r׉]c w^k駟>== `ӦM"rGRGZ-8p1fSS˿{=je˖5kC>q|i?Wo|8׾5yUW]u'Vg8v'k)™ c˯OilXty'hJgo}߾}W]u՗᷾?~뭷>W_}fyy}{۵k>={ x߸o߾[ymvwC>{n顇?%eYcǎ__>p\W5[??g?k^믿X|W~W>я~k_۲eO}SQ]xz'⬳z;߹}7 q_޳g _<,%4J:,흪w}&o i[#r^G{?6nt<5M4umI^Rꧯ\q G^}_gO+|kf۶mOCz7_^TVޔu].|;ǘX]w]uUι|3dYvWy{c={kG?K/\n? /ꫯ^v_gϞ|)~5߉-[<^_w?z vK[Qyݵqǯo*=*l8/Y)~]wuK=ekQ?=W"Ɍ/O?犏j}ϻ뿦?q6λO\RJ w':%= >i_Sr?|>?0|;^/RJ)9i_@_f;?'CymRJ)N{lO}=wNj0 9/䧔RJ)t9`u핼ˮ3N>?q޿}5*RJS}m:kP=71?M8q-P|RJ)T@.xE|;27Mi(>kybw~^RJ):YO.-9^gK#fhOLgOpc=ZRJ)ԓt2}{[{ G)RJ=NC)RJRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)VPJ)R? :RJ)OCRJ)ԪkRJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"RJ)V J)R?RJUDßRJ)*O)RjRJ)hSJ)ZE4)RJ"龀U(RJy?hSJ)z DƥK\܇?‰9rzZ)RT?9$oR[NccAK1_? C=J>20PjPcp^ H0`FDH@`"""H.xysy~ G~'~qNVJ)qJG;d̯xciL,[|Ä|H }{zd20̡uJauFFN[7aؚY%cA& a#W|,NaH"q 81VGmmIDRJ*OmV  /OT#9<,td "q>^P};OD D`JX)- 7n:}ƍo۴nldp8( #bɰE$"DD"bHy;"cȃEѕJ):SUџ,`Y{H3d8{Vd!\! 1 A#DZ3JfmgYqfM1o,Y jOȤ6ݏUJ)ԪrJ-WWV?b8wh1Tխ<`QN.r[D+kE@alB+AA`PLր=֚lq,hp(tF<{llVOm\1iw+6vfkjZڨ7V5TKA ![DEς`,CP,1rB&#pyC?'2*+Rgé_󷢚CD/ym#Ee(1f`%3b*I~Z`_LBo$"srx)3IZRJ)ᔅ]O~/s1=0{^IQ.<]æ= .Ĺh C{>ٗr 22!ҘkM`3A{r{[}Vsνu\V+Q".}0!B".6h4y bg{s?ÁX esC= Q)!9d,M[ٻ_¨b*.^ͅYgqy/x'dKfl݃ [[ov*v gfBZƵkOOrks0=;t 5VSno5+`r/X9qj5~]5B8ڵ 24X`R_308XW+㘄FĉD 0KMץ,DdʃER>dd9ˊ1XZ'QhSJ))l"+gvEX//@r"?s,hAxCyЁ D"q_%?GX䂸BժiD$!J,.c9f'E%K.dX@Kw~~F7_l~]>KkFۿR  N0ckd,:;- 3##6`gpKL'H=*F3N^gr"v$Z}Eg 8ٷ؎ŕ$M𚑡5C#놇՚EdaS|E!lr6+G.w>dX'RJ_Юԣί(`=m_woQk?"Q 8ʍ0 IZ&x EG 3C$ː(JU @$H9 19B7@B2{KZI:nQ{<8cZF\$ϥ,ׇ;Ea"L&Ȁ9&-?4`FPI+b5"Ƣ  |0I^~>yI)q5IJjd;a@S== $Yf1d "y.b jkG֌lZ~ZZ ""ز(ci[-+WV|W~x{ŷRx\}pTRJ{*KT!"qy尿G<"QQS a0# a3p٢`(B6g`FE#*Hz~ \5` q4%\lItj.x)kz,<MT.gڽoN %imt=u@< yGC,iϱ {'c%eCX ivML4NJ%^{(E{"y8|# ,6|D9,)[zfK= P DN"ˤYX4C?,2(p2f!,[Qm i.<=nlt܁ wi$rt O^ ;20 x#ݕ5k([l &YAfT@dqmrcwe2Xm4{ e|4Zag2  ăr1,1Y.1[xc8ckB2q%o6=,V厐v IDATDR O隿*K?XeW [t#9Ȋwhep4/Oi-^ bP O "z 0 6(vо_Kr$&ɋcK ^7xMH?1L\`- d)Y[ٚuc3=$Ɯ眾~HQh,wy`} ΋̝nZrfS,B0eN/` ;2,u9uLT/)urY):eȿH+18_ HE>Yh)C =ERkBc]=v}De(!`s "F S: :b.D礘e躚 ŕ]3 <<|![5#. `cvz΁8(NܴsXX4!Dd(pOz6 u 0g b 5jqf R3,&r5=1,t< A8k ĨذN-&JhӅҳl܄7QKzs(`N̖3s`b&d^;2qu IٽwϋsEӷlzig[=5kںyhi׫ggᢱ%K"1â͊t:C^K;V;rWkJ)~<ɵ++|,O23s/}/F@Q+#sD7?P1[vu.V1\՟]J?Kh*1AP5sZykJ9\8*wA(};90Y뽷d+`MqÆ]{dYeF1U-|8y Vsswȳ#/mpL  1CiˁKi3J\V/ >gcȘ2A 1Y JAeW Z!#&ϲ^@k x8@}$+b6[Yu;IK.]ٜu{ifKD8$ϓnRo4.<vN׭]8 N{/@ӞTq((tJA%G(pZ4MylgS_rR.ֿ|t#v;v;$a*)2 aόǚ*FS ~}5""&۹F9%@|VEF4h0 8r k@9Ur,-Eʍ@Ded5$U* 6&in޼}V{ͭfAc0 i %v֌/9m]vX#0@i'>\֬`CkņΡڀ陃V"<`I0^X {o {CgO\R" *X"kkQ%~0g *Ahi$6Fgm>83z9{X4SeYMz:E8KݾX~MY\yH@`zyZgN߳ ϟojz&es5oeC9`Ak˝ɖc65{$Iն06b\M3igdIq92lb5|:Ps4Ϝ {bD@t eDX뜅1&l5 *,lx({6qV7O[3LbI c<8]i>0$e@0959kyg#Y>n73T%eyO:c+]\8N5=T7M-}w?Zrca=\A\  Htph=8mA(\7vhpwPX5iFϳй1^sƂy^fbZ9/0C`G$X60F8$ON?cˆݓ{4[ k6nbs?E[6߾vvγظ: dL^H%7FRHnP6a_5*  3rF\ Ed9J]03{b -8G`p```zz@E`f1V ,sd]9FZc<u&I`L'Ҭ˳3Y/Fp0>$9LeY:Cbd֡6&JXB 83: M ew#^/sNN P/>wus5#gl^lJ=$MŢ<\Q /./έv;MZ1& Bdy⊥J%6DNmߨU#3r3f/RLYű =♓,qQ茅1.H{r~C6S\͸*GT%LF 6HFlQb=(e!.%tbĕʎ3D4M~J)u|Ow맠zq~w}{rKkޗոE"d!Kl ~k„A  Maɽ<[ra;_[|^0 2f8;7t/y?z,KL±m/G^\lv:Q:+VݵƄF5zFH~?uA,52Xc{TjY&Yb(\Kj3MvNL$<,g V{Gpo[Eb1օI9 "Sb1sϓ/4륒YCa U@PM=%4vd CJSo^HG V빱^sQ=$oVEƺJe8K$,aMX 0MSk1Yڭ~ݺuHAX|mƍ^ L$E]Tx VJVmq-j&0}b<c cDXD+jO^1%craG/~gPJiEqw 8@v(o8:b\25Ų?E9R62L-_ i~M­V9B2y[lZkn ,c;^={>=]p}TZ-&놇{Y$zIڻ/fb12mٴoa$qұ %B Uj&ټq]Ң2΁Edl\C# H 3!^sv{V!Qi="Ju Ц<2k jje9sZܷݺu"$Y,ˊQ|BD KP񠏆Й3Ά9sGa$܋"g^/ls?gɈ mN^Aڰ20/(%JKǖ&k8?K}zZNY;_E9D迳T[k>zҾnO3yf)I ewqrq^Dpr֖PW~&#.K Y0 9?m7=@aȘIsF\|l>b BgCHxac05f~n^K$8qg6 v?oQIyZ<ϘYcqCڳsSa5s"F7nN7OÃPc`\Z؆O{ ̐|錬YiD%d W5cL̞9 5$&IJǑs׬B'0v9854M"|0<pBk c`<ۨ0:e~v-KI/qV" 83بw-$ۈ}z1UziRX͵gSMy.l {QI3kj7Aara\{1 C,2H<)X`P"ū_"˽n`:@KmVzoq4ROIpr-jl_H_9f~ z)4p|9EQh)s0ϺoKY֖g9 !#sCS}`ٿJeXZv97ڝ*( x,$s29/wr+fu}ѳoIm @"2id s_L,&I)$nY&Lc.:8 !CY 03,'NH`{>%8r2Zk]xZO0YhxFN %3OrysOFHsྃY3n6`Mjs5Skm491y^ܳΞX77w5{^:ݎ3VIR4iwn[+YcP"]7iw0\ g,ȀANV3֘F= 0T*vm|J0@@so:G\089q5= M\,..an 0i78Kё5 sjqلZ&MY;yf9{K|ZJcg:& B[w,MIrn]7?xpz݋֮0c]ªq *d!+&"< YcAˠ.~o?o(}ܧzF 'Qlaڋb2;)[5$ޢ-ub_F&0@9MYFL1&ϙ"¸^o<P``l2;`^<8 H{\]}3O8}k{ ff)" y#d2J9IMp!{vu5O$D)P W΀ ƶՠ~uoH`7|צyfzJ?tno|om o@_=%i*rDlH3%@u~wχC]$ m.;#;N)92 ffEŬJ@Ex8ܯr3c=8Ӵ-P0)@m =Y\xd8qfvClPEF TG%Ȁd`N\n۫ju65m.rV tDc#!;#PNV"(8IF2()F ؿw7ZX4fm޻BW>V05MMq:S3 GUqE;5"5ۛ`7?'<8y?cO>m ̙U p2qLՠnb1 )'n^cQK]&&$t YRAM1CUi.E UTQUCF,G甜ITnϐ̚ @DU x٩BV3*GpJ@U j@㽣|舽U!TU5O&{wy`Ꜻ*VM.HYLUIKr׀`cRRF=@iDȳx4~w6 y]idPf9OFlySSKy˛ onS:ݜ~x[<{:9˪;طO*\W}}=`]&*B ٲB&`b;D!!)r_7;["zSU@귘?fK Lb[$6J^x}A&k`I"ة֣Q^!d&(} IDAT"S@{23:?U Az8:K]2,"{j zKZ2 A #fϞb&0c0yAÇO@d6n:]CF?b[4/#SC&uΡb?bx."S[.!e(f"iލ*#8z3K`oϜ0X+}j= AL!"0^_̌dfCUc2TbWCftn\naL[H˼οmӫ/`/8b)NF6Q}6kj>_s@EC=O~[?ݶO?-Oo~?}bX]Nϯ/[XOF]ӖR@E#V 1xhf-"`Pg\M\.].hwqqQFM(I|pq1e2Imۤ닔J|h\['T!6v8&t}t<b{gr|x `tj]ʃ~|X%6[j`EL"z')AKk\6`.&FR0 x M@)>[C@4T^HY;|cMz_Zd$MxsH``bPpKU5fWe20&۞oB`@0er-yX@|֑r^ BDyW@2KD:, )0eٽ9;{N''Sn}h^#Ѧi )p4str=9ܴ E20U̴Tǀyf}o:Z|~'ptZ33#ȑ'G YRРdĬbj΁'E +#9˶k U hNr^q lb3 p.(f`ղݮa=G'/Ϟ8;)77 ,lݮكGw|l~gO2=8|qv1|Q9B?`{{{ᮣ"DL'΃)B)e2UuMD]m֛ #sh&3*3Ro @` lbhHu4Wjr)%+ o6 *(TY8(]qRhsx[+]=ͺ^om=fo_^U>U=,h2MGE[\0)mf9ڜsCnԶ <.H:C(h]Cup(U˹hbOqX#tjiUi9ŗUD+dLqu}`E } nȡ800GkҢ!Mx#I06[|l+`zjvl*=:x26Cr,{qhjB.%BVє @ 1H݅lG$܍ Pv!g й3 fȩhF"tqCMb n@`dA+Lv0 rj]90:JqEwm'])7?{Uu6y=n-4''&pa| +`X-7d8;HG{_px\WUH1"o;bDV 1c$G\A Wh竦! ^l_zE7^7ku@]JMM:h/zVI3 'mu m Hj*7 ЉW0`ЭWLҵTUUJkxkҙI1xZY¶}OmO|>1.UG/^>[_0S]>={Fw{tyyy}s1iYi|ˋ 3w};ê[6"ON!ha`vATIUԼ`P"x]Z%K1vSQ }"HwsεMS΅ҵZ!옼#v{B)@k~""z$*R@!˾;G.? +䔶u48F+sP *)DJ(;ެ ѝ|-ueo:]C"m@t8Mo/sN7p3='TMy\PmWqݖ=Y/^-ٹh[n\Q[`% \doh^$+ Dvkꪒ":zuUKQO˵lӋkܦC>B"eSbeyCdT6%CSfU&j_}UF{`+E0$CcB$b$6%3x7o=molM8ZNh;ѴBU4Qw7o]4ھ=B-'U[`N h0f=@R].9S)" Z$?ip4L$A1LT JfYˇbly|v}rrS̐=SbG2p_~`X2`D¶|V@b|yzG''ͯ.!+)#gF ll<\Мs"\OqXRΣ$R@J =|u~dCU0ppQUjmڛU{arSaA.e->ww:{rnK!8Rg_޼{|R?o[}b\ח?ųջt?t<;߭'%:Jjz6@~#8ϝs"r {rELd^1p8,R2SBEwLmQ1"'")̐#I7v&qX z(R@e36mn6u]M9{y1C:ԕ, =:^.Oˊh1\U.e+LQͪqU]\_|Gn匃A,E}i\1sjmVUЊnZDlMk`Z#?&ӃWg rׂΣ*479ưYvհM ( Lb pS:`RL7FJB\#D$ ADs&Ť P,i.eSR&\)ohu+QA H "r5q0Ր9wʹ7Dwaڶ&g o)wpuvM5Jo_6NJb5 2b4تS@Pp4@o렔Aׂ;V_vk2RZ)"LHXLP44@Etٳ`ރh>ZCth9l3"H)pOO\=<OFO^J.]J.TLQ@څ<u1ckSis!0jQ9+%Wē1 ^\xU[4K3%35eGR%i)1{ι$%:@vh=3#*3b5 OfϖJ֑5RZNa[/;wQMTfYGFK$ ŋ/rIuy:$)iQdnyf~g9=}񴀱wW7xYV%z{;)Bu7$BDɥ))h}&u-8!byfjQHYETs)PT29 R:"1 #:If[SܴG/_>_m0t12.3k;8m8w "M@mg*e㌃ڣJn׾?rl΅")T F==tnv>;/an@btaoka8jY$wq8%9#6G U|ۤ9Tq4t]b$G߶w{c=,Φk؛b>qP DfSک(1~Ib EьDMMgFȥ 3c`Et6hFhj jH\*C Aǡ.9rN2mwvA·)x!"|;fo~n_ }!$RN2 ' (v <#w@)N|)A. Y_3D4DMԳPw0OvDI(` 6]۹Jf3{}ڮy1j?bLVMx>RSG}y,  F*{OFG%ݿ' >5Cbbb?Hu眑Pro9".0s_e@"UP_Q]{)gݰbb`E_1)t&%CYnS$ݿ:ĐggptG?%Td|9;??¶nGT" RϤ]\m6mEu{Zy]Oۦ[]OFnXAFCsl;D`7$5VuA~a"i19:\l"2QX7.I]e1|(::^݈FwtypLL.`jsYX#|vpzrSV-vMP+vXSڌuQ#3DLRh PUnL{7~A"ED#fbV#RafU`"0BBcRz_JQP6@4!;aO4`@r@"C4 hQ=WEgJl@jhH &3wB $.ۦtĽVg?VPZѯՉ]JwOJ+')5-C1['`S r P<:YRɟ?i ͈ xtRfuH+T5+( u-E{gΣ0+f 1j2P)iyv Cn*u_G}_]~t0GBTd̄bt/r.s[ zlf%-Ͳs @DJ)>WїYQrvNUo"DLqL̜SbιmDQ"(Ej6,A?N%MљY)E@ί7}I]bG6v*ZF|ݔ+%qnPădCF|&dXg\rOdUUlfC]-׫95A}(G'W/>EFbm)X7tT$#pڶ1@Gz^J{S9wL֫9k"BT~攉  DάdY!B0R2b\*@ֻf^ aL;RTS!"Zd&@uф dB@nt+ޚ-oUԿ A$ M'{TaPWCtat "!:32 "hrPq赓@vͿPxy~ZO|bןͧ OxߞV+]piJҡe0ۂ!S@ VXi#3@y-=+o4%|o+~!ϻ /mz*,L%OHJEo77volƮZەeBU()`>:*,q)d%{lcPSPr&ݣÛdLA ) ?ޛOOOaoy IDATz<"Jhlý EՌkעN LTUQ o~~mk'ǟo_ j=Fq0S 8&i=G!_Ozm#x$_]_<{Ԭ {-'̘v錩Yv2>\]H` ݯR //Nb\OH^ݨb U0o;4m޹AZ\ _:d^򣹋9z_{N=mk|c\zdoFPcfۅӃԥtm۬|yӥa\au<s]ERRN@9".'GAsDךּNDHD̄TJaff&&#Tf0.^dơnxf:9:Mn4gW⡦L"-VMSڶJgGǣςjӥR {*\=GMU6DT#Ej|<<ػ^gɸop0 q rNuzTU1&+ 9FpsN *hZ#qoķ!~ ?~?{ßSq>p9`xE7b֚v*\n.$(r0>9)Ȥ0I F KOI*@Vm-F ŌC$朋!(ϿxoF+rrtxj4) nsSd&9u7/&߸܀0R5ڭUE=U5l]ofbVˮr6q~Z7}]fUUy31at*yGfV1OqJ] ٦[%g۴ յ )ƠV`XכvӕeXbI֙y\ E@qdX݃wwtX:LVKO!1ћW4M*:R#t۶]-7a<֛x`DE-9"E|` PHT^JN%ӭ;w(L1o7ϛfT$vc{"G?l!UABH"7<&K1kQ>8>Yl\.;PEKL&EY&~9ѱREEyt(GC}9[Uݠ:FJ,e\ Ku5@8;}zqDN2fY!5+hdIJ1j$ŀrNHrk"l `EiZefg!*\(:_d"Y>'?1fU&;r/0~.;?7<g/f $0n%CZg& p,-Tfr0kq1k.mm7mmn;t>LB⫨H{vncC# QJ-$͛fUEau;XlLFUP.mj 0HJfT{ӣd-qWp*rxY5 t4h0Rrtp0gs:}O1ǔDI٤j\5[)8*|Gym˫q`0Y.%,E #j^8" 8轚)}F_8 WlC:4~Ȯ٩䲞t$b`Á353+ &eC?1)^S#Y$SY̞{lĒs"*R`JDv8uYM`zru ֛v\ !(FB) "谊HhT!*4Ϭ{8!ZEg_1h!G^Ἀ 0SoE1J׋ lhX5mF3QAAC$tH̰CG !9Ӟ֋awFv-"b_`v*BÈ77S5(Jѱ's!XE$bbLDagvܯtevaAHff@, ʖq2r.p_3=Ot8]}&/deY>+h|YTڲluNZP 2핓;J565B;~MO"~uR|UFoYu{/gB37^0.d;__ۄYNc? jg9\**XtyS眚yD!t4?ԵzZU O?<o|}3<!.N=\ܻs|1Llڧ*К}s\7֑?;:~t~v8d\W'|\8]>M`*ޱ10uӔ )nmOO&ʋd2Bպ[g %}QD" ̬Sf_fQ"Ts4tw];]frGd2gAnͳe@b)ۥ{}n[_- cBl)Y RS%՜CՔr.x8Xl׫]NkowP5!W]ŪL,g-pJU}U'G/=NnUʊELiqpԷOާ?>;۬~}I ;tΏ*Mˋj[7_Վl6mݮ,onsI3ͼv0ՓÃw7Nq1?@GR'GM0ňHi|gN1*aVEb$"5sH^8DmX_oWΨG O˧&{+0 #JRDB@jy:[փm۴RIg5R3XKjf:M̅|qc"~܇жsn Lԙǻ]sikd:8ISZv> Q$WU ft|tTx@7Y;Cc %4RAegɹ uNTgӦ f:Sof=w~qV(=@D6ψYaSغ"t3mmF%\K{k3igH&R)@!Qtd!!O>8]O}3@{cR"p: )!O "#^ 5ޖY!X߅Z.#.SUMDFDm˺sҺa%^nYZ}-G櫴JOeB7/` K7>o G!KFÉ [[a-|vîl{z7ܛ \mK);1 2y$T(0;F0n'̌QA%&Ii\L!"&S$T")z>l61g3O䑎f[ǧG2}}|ɋO?cQaw϶ۍeIs gݬ_<~d9]f8'TyB! t1j3IH)gPgǯ,LXy9PwnYɨJ`ˆ̣4Ty? ,TPqB$ D"R/6M]OLT}nԒj~5O'ӗ/_*@w!d 1s;"2SB2Q50"*&="0\sl6dY] _si_Y._l=~{k5is$)OLb}sMT͝DfMSrW۾*<_e m )!@b.<֫:8<8n`WUSm[Cp HǔZB5ǧ|btLDR$I0n%l>5S"Beb 9gG3Bv}>"FĮhRTՒVQ0DI P%jȀ[O+Rh®!z-Ps )T< UUǡ8TFB}I$3;ٱsR0[GV{! i5w`{j0vوZiL @Ԉ1 i З;qw/O!; ;;JKK>K˧i$^=\~7tv/{MUe zYbFf:(߆H]7jҿ `_|U#G8(AFȈߊŪRR2˕,}-'IM}#sBi\dǮaw]q9burm̟Cߵ7!ϏtssE9kvkrɮzw8ڏ~w֫Ͷ{?|ӧO}3"xm23oTjHBST3r?ܦ uPV]{x?ʻ2hb]dAE;Ofy$N|}8EN a$gd8<~nC5uŢmOn-~/\\~y͋ϟ^z?|?)|~}f{.aH[+91hţiN9Hn7?O][yDG n6L} 1eaPU4!xG)(f@% "XKm*Q󇯟],nY^7^&wǧ*8+{ ޵BU-] "ӨPH6PaLd Ueāo:Sirv}ML놘* f @EbR;IN"p 0պ5SVQO")ƌEJc `Uln;WA֗sU13 &`@F "``f8t4f2(s92̌ة*+t& ,ITb&o`&bH̜Pu*@ PtYZ&'R19¿BhCD DTD&D4S{cPh8I+PiV4(cO%cI;lD Uec"Zz 3@"2@ѨL,:ui^YZ~=\1\|_lxty^~/sk7]\_ㇼ(!.);G♠AEDFбU1F1B@/}7>#QTj63$<>8t9%9 "fev-K^Lw_ۮ{}yY>}p2Uιv^.;;b{vnVlrvrًgOW?jw!ǠS RQ~0A@@MD[IufG7W2 GGGmQDyCBN&HD>84CɳSAR,qN褯R6/eUHccZ__AG?+~zlk~囋[Ƿ^y6mjJoדţg>|~}eR'fRZv|)eqq9DQ^TI/> Ϧwn;>nӷ]DH4}pA¾7mSנBQt^b4U]2PGJ !YVOuz2*.,۶r6r`pN*\<:9nu]zO6z,oB"iJsf熮GIs0__8 Ԯ:" CL 4TRg,Ogͦ;Z:*Y%2ZF|6'bͫ~LEXD2O)VB ќrf 8 MRUhY.&7 3! ; ɥ"aZ!(sDRdL V:_̐ E ¦E;B0D3(*JϙBy4 +22ܬ+yؕ E-v/!"Rc{Bým_A.PLJ3 "J{ P1a j cKM IDAT2 HVս]=^WG0dJ~YQޟ#1*8-ݭ&(o׷׳~oo*O {Tރ /ޒ|8|FR0{d/>R b0zqƒ?@|pΪ@ 8~j 9z6]'b rٰ;9ݵCL뺮W=a3>Nr?[>hn|ݨfwԷlE$Ã,N~Y P5$HvܔW&S`.x?6'A[LYC a(E<ӬiX4T9BfpBBCI;3C%)^&}jPBLyJs̚9紋 j)o9·5HkZSnzZ} ]gOsPw?/~v,w6m]߿˻g'Ę& Y0c""~'Yv ^. bf)EIiqw)5[norHrtr"L4Tc,};2H"\i{&"CST0idy7 YF491uͤuJ Ir o~ };dU 'OWQ^7ۻ~k]iέ[^<v4>ivcOУwCv)ovJɸVHW۶{ハ̧!p4NLw3s=dh&yRŘa\IcPam4%E⪮R)mJ&8Wh#` Dܠ2QI sbVA@S%f@lIX`b(q=co hC@B$C"ff2䘑J!XݸGת MsMo3hBgDt4.R+·}<DFl@cv̔åP8&tD!MCJzaDld@P@,*izw^0_MZ=5۷H}#L[1FǬ.``!`i7dvL0KnH;y~zk rD=0#f05Ȓ$FD8$T#Ø NjW7o.Ƿ9.OyU=J=-<8 Oy͞Lt&L9ʪ1I5#6O `8&eb9`]U'ߋݲvr+UCT*{W"}w`ST3.Ԙt:YcNʄwrus|r۶DZ*s՘ Mr8%eQ :#,qW' I-H`{ lav3͌+"9nQh&#^,]]T#ZUR6<=]2;-4۸J8H S`&3(w P`yanroFDC ҉΄ESGpŵX^F7D2{yY) HB2j$8P~] eqoo߳6ٓ=CoEu6 wt) vj&]?>y@U If F`2,nDh>#z&G`IVM1o~ss-InH}l<}~Wv0?}'O>ČzB~q?m7F88mݫm7N$0i ȁ(΍qfX*Q0Kۤ 1aNs&Ud:$"," ޕ={O;Q\Ḙ*>ývfn7UU)I$'UeA[ՆU54?|CP{pG= ~yAWͮ\ܼ~i;'O~qT u3Mg! C4iE褩i bqZ'):۶s::F`fL5nwF/_]Pߺap~ZaXՕ?<<|p8 蠚 }Yۂ $jٳ4mB]]`:!Y툴rU76Ř7&J`qpzIpqH*Z7 +fwK <1aQLɛbۜӐ2 ha}ȵ]653DcfICԣkV$2cs%`d @ h0hFDL9%TD)q5_+?+:@ݫ `YNu0c 䂊m6J>@qƨ5 (X\6,UɠHD"@:V<!H[DRB@#S"J{3 P~P>[_)"a;__;?zJV!gHTG aK~R8BU 2`|.% cqLʠVl$fKsX3bNH%h!h93ɭ[ O޻w^F}uy_~cK5}_b~tn6Pͪf+:Ps>9`ƪ8#>>t4o#P5̖&K5vvVUX#0\]UR`*߰!YVP8sUWoVU0!dP(>DF$EQACzRR3NfG\ƘRj{_U';~lVlR͛JZo]qycD"B#DԷ>;5:gu}!Tsa>yVśvg{D?w3EW~TF^1 %/oJKc+(bc^mf% bDz(΃9tS"|j;aoa>(?X,xl/}Ǐzu1u8QCS6Cnw"mÃë*,q"]6O0Gl,tCDxԽuw0<7āp0R05ewL (CP U r9 SAl y'x&Znv1Tb^4{͓wW;jqy|1 |A.o߿[eY>|WXNbb.IbB$= U5]燡8K&¦j*ڮ57˛m7׎`2^]_g3&rȠ f1_]]lbL938*ۜsł7 =aTFR*0 3d"wuNk1TaۦSR7?U;׵kĮ6mRl/^?i`CEyn7&om49 aL3MnDF5Ra) H!1# >gLf9Ƭu`S 5cɤP0K3M{L9#(0S*Q4#ǔ9Cʹ|||zy!?(܎=%1& eT  T1^!D"w)X LL&=NQD 7 Ѱ8Xc23%f111o%]f]#[+E%?_צ#]lpg:wL{ },)Ah{c7;tJmw^rB:xT4Iv]v\p 6q UCl Js]Y3;kf 2Næm9Co#!",]|'?hNa1UC)Ur'l[ٴQ9ө o? aT&\^o~ǿ{1L*t4ݿgvz~}<Ĉȫ9dWLD)GyͫW&ɱn1,i3ɒ}_h_|PU2|Zmb|KSuDPinSe0P5>XavU.&7 9 CVE N^ج.˺g>l{EkcD]׵0(Χu6A6mnw94ffŬ&tM&d9EP"1"z놙SJLjUrÃ)!'ԕWI2PI*`FDL#4B.Tu@B.™[VTKXMSotaHxj'ߋh;|` Rbv}S_7gLU/HX;S< y'P2;y"[UZaO} Lf3aPSDJ1*H\O_Xv/׫Է燇ݰxuw:>{vg}T`6]V_~hz4Hԣͻ_v%՛/Xχ{~S LEJjUO†*%Z;D94?8?WQdbF IDqS׌X;!$0+ry2; 7DYDQ5Ɯ$`ErKș*2߻o*7`6_]ۛ.>7O Rfӣ[g><<6vsf&*O=D^\LbIYEιҔ%p^#1q˫u߶vw)z޼x3B}ߙ!,u)ipfcrⅈ$C9t+W`*.ݺ0=>UGCV}MSJ*Tb׵L-%GhbVjv||ǔ!MնNxjCS,M3#c.JUUUum9%3mFMRbq^_#&+|M3 zQ#B1q2N"$\ f):BfN&!' ]o\N=B#L9r Tmf0,=JDʢE@3+\ɝl1 Kw X4F D̀Zl4Ty(i-(Qdm撺-SK \|s;wJ [afrwVqD`zԘCy2: 3 q>]등#&fn֠:-TrOzhLܜ澯B#;CKДxL3dV DbٹiZU5hޥ~;u@f޹@ h//v;ýÓӓӦrܻ5xDn u9@Ea^\Yڮo&@ۧ4Y#1ҬbVR3G|p_1Rt}v;@U#.vMv\*#$pzڮi*SI`Àhc׵FI)7ޭ^C^bM$I3-[e-]յ`%BH!eF /<2ᐄC@ꮮ%LU{y>=9vUwDrOs4MbMMiDMfS (UĈ)Y)j`\Xd`pHT9j*\m߼$L$y0#83(Gvl*3a+98+c "1hFfP AF(9X } IDATpв * )I%^2l3t@ad 2#9*9*1*`P׌s.xd*V_40b&dDr+=B3D`F7qM0?# elJrߝbݔ26rAU1-:JdqCr$exBT3(R0Ĥ`Gv~Rڧܙ);sJh*B)峳{Jd*$cUԕr9XD"yR7 M'Ru=A mTDbECF`γYt(9& 2PM&"0YRB9V~WeBU9]@/(m΅PZ:pdmNUOK@ie6׼s7j p<B`PWXy*$(L)"2Pc u 12CCTPQ9F0F`C`X(EHh(9 u8D/vֻX _L/8Uz Pi9~` &@0Dևn$(p)nDUI\\] -XUтsqGd:"wη>z:+AȠLL7!4,&ӜS6. DA"!. Q;i7]wmN]*lH|bm{Fl CvUkGs&>4 8l*}?~vNOޓlO|_@DHO꺝?>ZLfSϯ)FmN=Z漋c60KioJ5x_6v9} t>ssC`7i(ǎS=!WK79d亞c}}د^eE"dv}ߩ(Ř9fy~ =3{ )9pt:, eU f$DU hlFdH {l DZغ1T aMzTԱ9SɚoW}XUU@ ;QҶ򤱪;q,<.i<mJQˍNӇ#bQ`b}Qܾ۬wpyz\:Crqzǿ{ߛ8⏯_O?_+nPr|ыTMLtx D !ϟ^xr,{gg]QU9Gx?mj\{+<.$ϼ;M0c9&0B3Ӣi'U `(`Աs 1KDQrKYF("&C)e~sErwބrc"E2uRfDT7g|xuW_g!fÏjҶ:ԏ뜕3!Lu; \yWː߼~w!n̐jC}}ehkGx**}7m6#b BaRO8yINfx>]?w^oEބfq[uf$PPL3ZS"< F۩6Y,&60sY,Sّ23Ϟ8L拫{fb^;Qӳ/>@7!L'uهh T{fWuU51l"~'Bw1'&3g6xK!D}ꛯONPmǎwf$CqM̘$Xک(}0nHjy3Lޱ)أf9i&iɒC:>>8;ɴFͻY1ơwTn"c&'6=27ME:ͪ9Sp8;lдIPUmN2VS!ft&Y,rOOEe!J'$3D-Y٘!B<&ΐ#VUᑙ1(C4"Тt.oraQKT;*`PJU RQŀ\ .x1#t h7M8VM@8:@-ɸTCy n9v+df,`T1Vm pS(/]HPb}mQ` .:fV<~&9"&U 3zֻL?cg[岚Of;ؗpTF%Ea\?x^#ML >B7 E4ڹdfD[SrgKf!1{FCR);66͒ z&##W6} .̦s-!l2yru޽I >v\޾_&FЄ:t7q#EBN&MӖ+rN ҾOm>`LeͯcLC'sTsndz{``*TwHDq*#PN ;"RytиOi?m(7}NFvׁ4uD0NLbkꪉYNn6:B4Jd5)ɤ12"3j^rI!"zESC}t1m';e ,u[2|8o^pG=,PQr{1&nXUUQT,9ڭ_}6_z j 3P#@$3 Ȏn62ʇGEZ cEHe7,)}d&PxfHN;J# #f+E)Ch:֝Y)( 'S1)T-xo/ Ÿp8NP-.=h%4DMTqq^ʖvԑE(pH8$Tn|C2/1f:Psށw7?U*,9 z?~`w߿v Fvw{)o?atG!n[˒{Qդ[xvzCfҪHּÐ2ø3i4bDNDB~;Uöݏ<=zR&4xD!H^uSMLNTUr!PW11sP|kwGu4 l7 " ΗA{,"!Df}01}Teu&6Ә!f~fjS>"(dj$4d")J`R5]D)'&'.B@M*c2~?L18v!>WUE8a6ow} #oS]~6vͧG'{F~ y& }bDԶJ? 8iGˣٴ]~!)*h"Babatؑ|Q0`h&vƌfD\ 2-d\̦1b aҢBA(f,vpRۼcs MjF4UupbeDdDv(8|ʰ2P_^S#ؗaDycSUrtE!)EJE*i̮v~e[% w˵QT T߁w7a5F7S3C: yB!0 :uKhV{[ sK8˷Bqo1!rbq|{亭v?rtvzw;șsju7Κitn_ΦӪfdo_ݰ1w20.;C99 >T΋0N<t2CbTTm\v]W2f?=z|R{߮BSg$i>:T S4\W..͞:19mcD\);$i0TBlUIʖPP)JxbE]EDrj2uP2bQsX!=G?ooNgٲ_wѥ]5ٳ?cQg'G 9ӳۛ{CM=#j {"}X]Yrgjzy~U.Y58ovA/9ۛ|qzrUը18Rr!;2uz_yGՊ h7D a.1wMkGaHcUT L7ìn[gSu>t}/dq61.xUm.@r2zU#"4Lv:oOIySy_0Ę$}Xd6'ǓnؔdvUw5f{x{bͷ0tL4m]Vfz5rUZ.2*gU6ߙ2hZ]\o~OU:t"+bR0@IQ!T0b)3â2+ʸszD|`2Ӭ#:QsީPAȒG,{;S9 BDDw KTDTljAtDN5)\߹ASD2 X@xw. d"b,sl3y8"C?^qK] +\=m`RI.>#C@@.!إ80Y|u|/ ;n&o L}>џ~]n~"n2"$INM @f|)؃c3P±Ebq0$@x^m~B@l3::A$! 7jz:uqO~2:vͲ C>x)DI>ի-c$鲎ᅅ4ѻѓ'ONN)wm3!2xTQT {NNv-d+⦪]!J+@(k<,s1` ˀ9Pay.vMf2[U5\5of};i|u<;JYsdx<˙Ug>8|8BެPUpyq|?>=?Y(b>zVΎۭUd( fl6XmzvyM*˟x7EVUUUkuj}AryR{9GqFav#i4 sjئwNk+st6?wr x0^^ng7ZΏOV7˫+j|7}cO>^.CzX]U"Yrfwm[缙/y2iڪ)ɉ"1;&IW~S|:5cLq\fS`bDtD`ؽi)2 ("0!mTux UpFG7+0jvTF,Y(enRT3@H .8bY;ix6DLLD3l1'`l:_L&?#BsizbjnIrz_Bb=~s_!bTgY!o版Ih1oCUe/^t:]o7/_""fl7^MιvO0#8}Y>m;P B$ġU> TUciHzzzn6WqŜ Uޥ'̍nMDl6̃ 0b !dm̩mBG^ɾO Đ͜!@9*L:΂U0#.+%n[nMSJY)~i*v;8WKK:i;wfh`"M+=crAwf;Nsԫ)tS9CE$06+:z& X)Uh41uyDwe tLr;x[/QU C\ cREGb+cPTK؏0k`5GBAdUTf)hEUCD5as0T'q흼Cp|xB? _?}fg8FY-B9p ƌBnT:NC7@19L'Ϟw;j 9Ƀ7Wg%O4{6/}rp %W]=ڱCTU41(֗s*C|8`j9 InSxwsmU=Sh*"KyrTjL)#ԝ7np$YLM8<9ܛ h&PZ Ǽ1hYrQM%'3TPOi޽W2>x0e H<|h6[1trIgύ;o1TgǏԎ_=?g>$0=X,f7^D߫ZY]3s?.cDR嫗C~Ϟ:&oӧ/'1~ɫ777mjU]>{2D4N&s$If])(9ɉZj'H&!&ih3~1m6bzrjĎSTl>Cr. ]/>VC"p޺~sD>,*@s̬#f@Ed*#R151+&r%ˮxs^̏fa~v۔ cH9%D)'!pD4ix~ܕ?9^ U]W [֡n{_Z}NAL= R3TɄBhw2;8 0Ҍ̀ Bʨ[)K+cI9ޛas`!͠$ PR!(sHCOZN76#nFz@b6(<8VPum]MxbRHvlDJ9))t,]'CԷ!_umx @M "*P[Om S4ޜJwJa{p\`J%o+%6 ,CLHF_oN D lV-.o;9/G߼xqv~ӯ~)\( Yct)8@I Ԩ+(QTH9QoD!Put6?9wj@X߬y1WŇusu~nɆf]1ll fLD@`m];ITЀ9S "F#dMR k%'uU5uԭ%u!).Wnk=_w}wj/Ëv'L9؛!\,Wۏ]D 9/^\orI98d_րx2?6mwضuPnfRW|w͛WWu]m6[D*DdYՌ1Мj2V*q:?C삣}퇎<ľs0.;G^gfUbV)a{qȹM';oYT-<_Sm0e.<:d!UU$AJ$aHT␘DRЊ4c*FYng/cNڔ0s\%K? )G|yIb&1XwU̥Tѧ xGi0nh0E.(:`Drl2S2'n0Z0 L g#o~J/ HGoA~Y R=ñ02AۂfP);HDTaV>>^,ϟCN j@شm,#`7}s>ݬw #u9+ɑ0A ) dX<99Mb  %u٬ͲdBo뇠VӉ30ѤR0GZo7%XUWWoo{vM0$͊(T5K&$ώL>8W00 ȠzWQLMǏOB=L狣*\#fv&fuӧ)WW_Κhn6'!4?_ys3Mٕ&9AyU,j*00(Ar YTUm 9 nHͺ릭cN]dr;[47{ocW%"o͝L.Ek*2e=cdKjuU$g.qΙd2Zw߂mCKL>y}B6 xTl]O{7  CdvS'ue$re5NbԮo)-D tڐtf_vɩi HMfF̖n-N<ЮĔd.Kb$)+) f`RF֨K戌FajNc Rhb5d4c·w ~^U6j`\9hfCrGvH"Z!af[܍˶;Fvv3Cg`BcOK)EUQ79` OUsшc/5ӱFڗ 8+f*DK|dǬ0,/evy= yޭ <*2"%:?KE)N0܍@mlow<(3@ F```U& @1)bqW0܅eۗ/AD +5uӦmZWM{*n֫f. UDkJxOf8@`0)vEw5|c&ޭn|]-fy5}$9ھWZ,G{U_.)ŔޭnBo{pZ5}w׷)Ǯo'u5c>T{_UID+)g7<,vhd.\v=? ՔLGIrՖuê_$"n[FBD\,C?<<<1i/YT`l&y0;>]3 L8_l9?䔲t:=o˽j9\uBķw7ۋoۘm_|Gޫnn./^/2xg1;aa6ijR5lor& ܭ,Xr1[oT%x ?CMb絮i1?٪Pݾwԡ﷞kG"Պ!zc}y_ehR1BNI6 @ Rpu WMY=ۍh$9u>WSU7En5("*v1yRb0okCB.mPbDл0bF t 22bU+A0to-:>3[ ,!rI".M̄D9K7dEPGcfM*PcDD<̀lHJ08 {9b0"3&UQ` Tpi 1z+@mn3lsfh31=>N7jmƁ%ʟƛUIx(Kx)Q<Ơ$ RN~[; wo~Yv#eQ @ .rAD%fϮ*9稂 )ɐ[Im2ai UwCʞʇ Tt]lʓw <j|MDjjx1nk&J6ǡW5D"pRHiMąh"Xl,")l̝%`EMa00"N!9:0:~ J:ĝI<I$VPqo.}k|I`& э[C@im/\΢V@M'o;ɮwx%Ǯ8rԸ A]!UE ?mBೌ6 IDAT[]oPweKoݭ`Xŋ`D~cJH jtH)w# FCNRd!gϖ{.+A4*r~uYF_qW@h}.#3Hr:\7뺑6QPYydӡBW/_0=8ƞbڇ9qp{/t]ez膜 K*G33+bjfUhyT`<ݜìnT3j ,Y$ 1i ^zP#eUUMb0 ݫj?_}M1*nB, FY%EiKG~6i6幯~CTnnɴ^]]Slf\?;=y 8[΢ˋtFOWnhw.0nuh>||}ڿz%,f'b>T!jwW9wLWz_-kLg77灐Mv LU]^ohlmto~ j2=L bipK J52@˃׷* }Y̧0i$'"T9jD.:GNDF4#Dkstqp9خ"}6b|v]Q%zBMæn&1*j"ޱiDER*>b\_#bhLT Ĵ;"R $2vaˆ *%w:Kf8!TBNBeW>)"Re U@ @f%#"@&Bs/1{Sޞw/"3 T@FutzWLD" ZؚΠB!ȎUS3cDgX, \' ]@MaY%;'KIK|#"Uށw뷼~N^v5cw/ @L8UF "f`nC\AD@84& *b-<٠՛t֪] #_sXJv~.{O<~nMfͪQL,yhn70E#@Z{r"73e4 vYf`d"ƨQ@4l~G#Pbzq{WW7۬Hy0?>}|~RWnWWYΗAbNGpsw}`C4;<80UZس Up至7o<>uX*飦 꽧O[o{{}z}_`A7Asq7w7WzTU,9CP!R{sLH:\> .a 7"11JpilBհ7oYSrR:Blb j^,9e=fͱ;ьF{UAEڵ]'9aJi:*V5릮LAs)!:0l|p(u|0В4upCc稽n!$ .jk(!y&͙gS#ܐ"sL b;7tрDQd-Iq@rw@L P !*7_GhHx0 UpIUR 0əYLMDBUd*1!;o`.0#1AہӝFtz]GZwcimSp y of&ƭltJ9vdA)2=hX`rgi%. RP"<.8 n1”_ё0_vt(br][; 5 Z?ۄЩNDzS (w.6^Q?79k+18S@ x(jB gKQ|X"goq)ˋ13 O>އ=;tǏxr{UrF@^ &MPO*%[ad?u=`=ΉH^\KNOj mE0abTu^pYG)ós֕w5g`dTRJ$v9NF:AD 03Q˜Z$S|U/\·4'])pJ@Q@ԬDW ԾZz{mnof> CZDp=}qE>{޿aT_Uf2'O'NO>njmBO?D7yvވl6=>9qUu\lC;|+_ݮ{?XN^ӟ-ˋ7ww_}boT^Ó,yL../S ZʹE$Rbfv{zu9B1Nf8<6 R{ }Mg9n}b(%55 ;lis%PUɳf:A65n!ivO%Ќ̠*I 9 1 ĥ-!qhqMU_; 1gfV>(UejCFۛ"Ƙ%@͐) HB0Uu9}ťN@\? I#TM xT}5ȚAIMEr Q1J[͝bj)Uuqɐ*tD&Tޏ*Pz>F+ڥLÎ!E$rlmW XR ׄ<20ェ 3*`Iۃ1~eNe0x!H"uO;:!cyD4XaJhLLDn#o"`rEfH;n?1gIL7P8:>}p:ο=3y 9ZNzooכM!g1^w}g?|;n6볳ooo_~÷IcjzƤͦ|9BH~:m &;6mumm5q:Tto6b9s 7,ooo&MSu1Tݪb}N!D=joMP-12i읊t}WU޻葜Ȱ*ynvUl$KU7UJ hNvGQRH׶xs}~S\a: }o]7Ta٬n;QUtG2;DN99GfLD(xbd". >~r}q&ũ``ƈzO aE,#dT˜جG;] FW AB-# (q920q`γe&3t*h@T錖 V0AYUvz P'v T9*b IA"m̌"XX+U@݇H#$ڥ<Hhtp|}-xWiz15KHI3MqֻQ_g_r5g?9m7_+V`XMbJ#;}f KlF۹pĻK[h&CCtb&A3bM/_OB $P",1 vvC?>8h,n9b7Į-0]ܘ) 1}ݷ߾Ǜ+ x JDɳlR:ͦ[}dS?裿ꋰIt1R,CΆ bLXv>FOsT0bRPF=r OβlmeJ)A-Lġj-.3D@5:TY{ H9Yi&S&,1٧?ۭdADD*vãOA{D\}ΜG· :tsVi3u9׫̓kIWUutxhuUCpoH'U7v%ěb\.snz_b>zߩz!垙RL%#876)&"FwAE 0e.;Ɯs=MӐr7LJպk+4ni;?͖}S\QC`0s'sw @&ff說!e%[۵mZ.*`|Xo:DSBt6nmC4gpv^91fZ u]lҤlÐ@!}b#Ąww{t6o./K1!ؗ猴*dcQ(`1*#@u4$v1!Xplvb\`6,JL`*)& ;&b.;ƱrAQxo+tzd)=@l!NU?HU35.vFCDCFpP:Rlcη :J5_}+8{w]HGZz,R;n"D@%7[oc7!-ѿ `8Of% $&@h(,ȲMHU)% qf{G1;@`:pD~ӼZV'$ػo !T,E L``QBSSs.ϳ uuE&4#Y+i 418IQ:`D&RgbT/?89"uԅ~%8P, >>9]e,) 1#!2X=/Lz2 R6(xtn1Hޫz}0 (:GLʹ&l!Am/~9g+$]癉@Φ>n6|_~ET珟|''}f1_̧jsJ&3oUݮ7eU+G`xlCU*86CofX*l7Û7ggC?{ t2!DON;%W w 6!#,Z9\SٵWUEHf"K)׵b{9jƤw% tRWcdj ֛P;&M5$$`YT.onnE { $"'U)i"|bLźp]O:BdISmڭ5Mhf]eCN}Sf"IЦt!=<}|u2y X9eH|L&"rNL7P5&Ɇ!:?Q f(Vv<|K18UHhj&#: v0%DьDckq8ӎb\+R8#] (l g􎊊܈ނU%逻Lv+?SHKo6@&"dT*p1Ew4@z.Qe@%Xw^ p|Ax5, ";ީd1<ݘ^w􉼣}߭'v;v=џ}XLHDف[U8>oa;0 ]Djc$ʨMyqTgU#31_}}ٲ۶CWO(T}NȲ!C 7C¬Lwffo7$)EUӟ]ǧW;xkxo.^7kВ 2 c>գG%9:gmH5g0M7b$gS*veu*Z,@ #"wHNDsD: h&T`XYsf!i5u&z^ sDUwpxt-w]+y8ᷯ~hm,7WM 1Φu 3YJm{|N10y% ֡B|4դ1&4"8 2ݬVm><a$Ͻ'~jԙl69&4$Tf^2&.o.6.>86~: H׵^ש`Q+! l^-fy"  nRZ!20Mʞfc*!f%]Q$V3* kfh&d@l;B>3e `l!bqG\@v48gȹ1؏va [dfEk#"|ӟЩ)!9 Pzb= {6AVIyňh@, h @d@tĢX|BPh)ݝ(p83`3a&r;HM߭wm΁?q=[7O2?/00gd$v LJcx  ݫXbt<QK* IDATk#"t .c?=g3P2M3af4?|M~rr_ǟ|}swYJ2ѓy4tU!ALYRGfOOummKq|>zly.mBa0 J!!MONiiʌ0zG_ޭ&ۡ{8Uz)76S5dl†8!H%UJ>aC@Ģ]%4:Y$bN9#" [E80orq6&BQF~ M|փ$Lfbm6b7ۓ3I-Qlo:#tsNQ.8Cjf6͢&0Ds n7wdztxќO~pqP׳Ր}p0__zthYe<*Bۻ!b1oMM1 M]#R=|(ݶK}&D(f6 i{hеiȱz]4Ůo)zv|®/9몪I"gyH\n7wg/>v׷{j:tvخדI+IPͣI4PyJI\ߦ#0V&~6x &mш֛곋 >)T烩n[FNgf "{̤&fK=2QMTJ8UqΈJ]P2"ج 3U?`l(aΩ`JL(%y'c"U+G'Mk ޼=ݲA?7ۖ!0ӑA@EBBg ;{dMq$1rĀ@@@Ml\c+-*eV($ۍv$ɇO1ǒc|L&%oQ~fYSFRFcKqJLH~߻]%Iצ' /Qp(bB`}@`N/(8P;9Srj1/B ɡzfE&zy>?|K:Uj9=8:?<>G T$d"Yd- wk*k7̜(C%.n.ZIrnC |/~7/&3+n"9癗lݷvsN1VnYmR!K̘BRWL<.x9 L"QԬr9P0 6.s֧?z޴̦|>_m6G_}掽CQL{1 f0D&C~ŋOON|u}{{׷ߝ]?{MUеޛȕ\gVH6^y>O"exzy`&2of!¸,3vv~F"o7 &̚ٸbJ77/ cnn_Z|qdﭶo=#;6fTXozZKi\ȼ\-MYeQN $ɡ(KҾF WA4^~1ݛ"IE!Z]ӽ9Wè.%@yT@MDzY8d2uΕݬqu en X$" 3"h]PL եEH]MUg6y OooOEMQ֓ibU">f2oKDuΪ!!B1f0섭1%du}&+uАi I~ہ"(HN [k$Cv*0D&G_&2` "&:t{jT(9QD5\Xvc,c@h3^ (~ A%!=`y v@h1D " L9)Id %)kVQDȹװS]9" ";3C :?K}7@DM"@&sj6B5LDHY|.?5/߿F~jW Ht%I#DݜoW1t!g~M2ड7o(wpZ 8@7l_?BY<.bVB ;}tG],o0 )AԘG"X,fp@v 7o6ibYU1 N}:@4juZj J1QiͨW7{8=$!&z4Q@$ D`X"SY-5,ɬkۤ$J1t(p$A<0FqTOK[?<]^6qE1Ο?lVۮ}TRץ5UQe=L[4)FX=f!1Uuy~>nW+$!. fY,DS ~_tJ77go1 A Y5WixX|TGe5+xIHf:^um۶ׅ"10fwI`gjI"4۪QoDʥC\Q>LzCn()x^V1k[T>I=*:\o XG'77u];q"rJC[{LQ!튈@ǬBNY²F)J[գ6ƺ{ۦ3R&Sc,l! 3B^h dU%(TDG *[lC)ӻ"bWG#%CІ4SʛY593LӎZk MD`xD,#X±d 21cNC"෷nTM$jv@݀pGf`wYE\- L +*(r>2(;XUw@)1wy_o @hTYUe6Y1;ĎF 47T3 <<4) Qaa#v[_{EXwH:`?#&Y]"}0!K D@#08/x.#&W 4LJk++B_w5eG>wAz|θrb@Q\^햑$Y7}|_zՉv9Ey} B`W]߃#׹.%4ै&ᆫzj M-fa&Fopvy\RmQcD>7ח㪞M&׷LJ(.BRNJ4,&D12uE @ b," 1AB<RlfӉ+g/_5[QbfARbR@[ThtI&ޓGGEQn֛I5^6o~bل ٴ07HRL('u}w[tY_|o>wmoNO ï~z2_y\&QU;g?{eJl *\鞿x-{˗PY{ãx7}]ݸbtkq I~YNrVRhX\Q]i zuU(mXofb!bEbҲ˷d1$IuGO^>-뺎;k$MaTշ7K*!&DҾՕ4}M'RC\"d @Y#gכO&uo4#7z Bq.+16>pnҥf(ZTGcECH6&TXKL1aD1G]a sX&V1 ~%QL]Sq PQ6eZ|UU@@٦J$Y'7P@ 1u4,ŜϚ#vJABt$Mp9 "ZAD%! enEi_fo2Pi0~PJw!ED* 3j@y[qc$sܻCoP°OֻgHaw4{&6kCܫ}g4ˍ<oE!p8Rxբ&&*tl IeMfrtiSimLAw^tT.CĄt2S1Hf] }Uӳ7o˷go ?YVm]]O7@4Eɀ%Z3kH;$̵)Nsm71 "(0&I1)h}ؘC!2DaRň1YIR8]oؚ=@J JO0JV<% ^ 9. kEι>w#U}?H%_~dG"RWz|ŨC"pY&Է_+ctgώ1xcUzߏcg-WE猭LJZn<&=>9=}, ޼]jTc7~GrqPfU=G{9!Xl ރlKUkBL1*T gع0ģSI,&_lRnMX[f޼i x\)6[oիe'Gb6hl-b=*UzBI6cƪ|(R5z]߶ I4RlII4*lY,oja ]eUJJR !}SH {_ŔHJUG'!7ocW) b(0)!6Bp8&˖c@QM@Mg Rb;vD3bfa A-n~ca Ƹ2"Qv(՜,;. )WmhlΎZjrk@=G޾*Os 24 &w0Q>P/2D# 1&Deja}X{}^A~קv (R"Q2 )AL:@I/;D|Dn9Y`ДE""!"qEq2[;:z|_m7#& I'\\\F߶mSƉB"UE5wc|ɱiw!Z/W+ \ǰi[!ˏN^]CQ-8+44 jcFca,Y~Դ;/"&-0RnP1t}U1dCDXIi,2[k8cJQŀrǐ0'դ@!ABB#[(C ޳()h2t1ZWUSzyۃv*ho~s*Ř^]_=z_וxo_>M{3FggIRi - xj_oRLn\?o~X_.׷LJ֕(fo~۳/1Є mӴm{s<:MAüM(C ,^"6r7"Eҝ S4vekw%$3CLLLl""F, ^%9ݖNH$" .;edw3UCDCgɠD p%c`B t#O8GaAU/MP$$`7/yKR!0TPD,^?^+>} tWԑBKdډB*9u 9*%a}kFlOc=m[ @*a5/͛%ł^޴-F >nbSJJ)kw1Eѽ޺i}@'>u߼ߏOc4;{=qQ3_fX^^ ˳{HOΖ岮Gd}~v~tx( Mryu_~}xxۮkڟ?xA63֐8E]Zk8׻!c$_ wD< @.@"ʻ$/!f7~g&yo!ҏ(_rG7v>xA2x?Tx(s.+ a<)8D-|+1Q< .Evݻ9> hoH*H )0ġ|* D8&P̎=J軆c^krqsم0JWD&UݮE|vys]_+e TTu'>;B*P|TVv}uyrtt\;}jvvwlصo{Pr̳J:ޟi1?Կ{׷eMM@RkmȆ@ P 8rhԖX:tD|&L II@Q5Iꂊo>9PA"S2g~ Uu]mFz4sUq~ps{.K5Av!TUC'>{z8lgEYo]i몼\|G峢8;Çٸz=/EQcSHWW7'N?z'O1t:/ʪ7t%E9ә!^nDD2xV&" հIvT 0J}Lb+ 6Umg&f7LSXvtIQY"IAՒglyK1uOD\]f]6DlzD\]Vu,)1hoz"Ddl5`}@,2n-!k 2 ~˟>Mjf3CpH1 ]G2SH fUE71U(}yPfXs?xsk0(%E@`αytJG4l(N"(I*"*"(!HiV5Vf6,DDXTBp7h H@vEF{f!]B.bMtGP`ȡ3@U(ݜqw 0]3#jfN:M䜈[N8(U IDAT̚23̜G_}x/ }W &H v4Y3)IL 6y DȉlG Ouy1>::6)#BU=:8]Į>?8(bZ[c{}ܬ Ho'娺]uI2 ]n0 5 щc̏/߼j{y!(kެ㣛-WU^ A #k BaFd& f~b}BPRHIBJ!HRQ )dI)jg-ZXCBL+*Bڇb1UDز4  cc 0G<87Og{g)" G7#Wnm  GPף{}|p#i6;[?o^>o}gvtm.G7o჏r{XƘl=179w||TEo~]ʔ7y۶ֺzZ6۪ g$΍ޡxqMc3ӯ|ߕUa-VU^oV"f4lGe'/.g(gUQ8:X'ӷo_L(S A!5ͦgjl@;eP@b#"ڮkQ=Rcq8cL?;7 Z7b^euxx"XQ6D>DD 1fDjLbX'-XCUY#qG5t]C%bW@`G TD@l5qq1HTwo@~x7Q%1"a">?O P迿xU С*$!G00ދ 5#M *D93oח/oPJ]%%¢"f:[h`*l6ᘞ|O=IٛLFBף7gh69|!]\D>ib RO)}uVe^@0H$ٴmX!w`ε@R@|tp_ ǣ%cr4Lr4+ȘM&{-^%[ѧiZs7bH)!jJJ N2Bhmirs @IHR%H"'EvH)PÇWm/쿄~O?8?v۷Gג:Dtxp^UPa2Huӹ~vdW|/? _U~^MGlsypaUN.]GU5QDUUMfRaVlvzT$]tfwpq@g.')fiچ.}dS.j&4rKVR%F)٦jlealoEAmBvaT9k`Ns<"lɹk1iZ؛Ն6S>Q1H2EBb0`ǣ!,`TUQ0I̦ˋXXW%(5ڢn1bDQFCGJdcZ}2lRa= 1N{Ea˺jnwF4v+9Earst a#QUSL|n+Kx"WFP4IB\N*)hX4Qg)01g&۱HE9!rH} 58 wʆ;&:ly^\apF`Յ;.(1e"\ 0s7^ps.2qי%QlӁ B>h>??=;_-?|֠  i@LC3$FzCD vٺ}2 vvH R6aۋW؈XĒ #0v9͚Uv}ࣳl//LBL]Uvr9: Y45-H Ylkx<Ѯ UY[jAm&KI+ M€1EbA$ Gf%9FB(ҫx! `H1DŘ(( XK"!IyhXvm7ۿ67o_/WK|AeK@LY8<:19j_| fWggzi6x2ۛb^:ׇH\DEQEL7͛k>~|(>n].̓^z]ޜRfӓSzcz%v{b>mWW!fdGضmP lĒKB B:k{ARHRk(bЦ#lZmY:W}|D8C1(Ȇ K96}c,U@Q!R{h{!JYe]גJ)1awQ5 lG{'}ڬnV۶zP|6cQDˬ FB dD$x\fD˪}DS5![Oח DH2||Fw 3$TS0*d# NBy$H@UA܅r7q1HJbEhs9,Β!$& x]7Bm3 ۦ .qp0D<+y{ZU47 "hvc&`3(~ AH0Nɧ?W*thnЉL2Ի}X{k?绨i?{-  #IIs#;ǐec]Q݆ 0/fP`PA6=Z-bmaG?/ɚ //.'ӛ@q4M=xŕ&}prrs{etm w4n2[W-,!JMP7yƉJ:l7B.9kj%"<mSU# 1 s9EUIJDr8 5pA2HE}!"Iڧ$uIU-Aۃva ]pmɟ]gm')*tu2Y\E)2ZcmQ*awPO&UgWWx2,Gl6e(%&fO~MLbͷF'O>}cwz2Ҏ'z~Tx$"{gͫOϯy6WEY߯&x1&u!tEI[p$[BbL7}᱒5Y6UYľ;Cv}Iix? M3۫"DњQRJȶ.Rpa f$1&&bgJ֨FAȹh< .\HE-eU_8׵5l-!~ɗ/zYUYeM*+ʢw"}2L:dB " ML f;6UQV>eDEzͮ/N!8 $ɠCD DlDQOAnGCyBYHA12P ,ID4gƐlg-7h`<M8`ìv97cRHdR=pGMN8 Ƌ)?T@s =F)nX'=RqP;>wX'2|v=|oɧ?_MfHޮ;=9]5 g!k$ >[̫ p'Ï;7uZ2/ S1`RdTw*#zU7}J2evFMă9Ma)AiL&HS.L )Je"B"Q ^+SrJn 3'T JhO>\믏l쬓*xVYfS^=G~?={?_\l7u3u>AI⯾u7$Y7o/^<vkVwrzyuyz"]]/7oW׏?IM6{l^?lǟ}9Rk1ƛٳg?l6k]}J 1B{ol0Zjo浂TԒ[|0|]W1x2l6eU nb{z|d٤ОzӚ) )cj*rtQeFu1GDY7Y|"vT;l۽iѷ@( c -KUQW&{/RMbAb 3C-L޴ {"VPklYVEc*ƘmuJ RҺ[;[ gX$ " 9 5!$ED$ Ӑ; oqnR<ͺma18@:&"P$V#e!ab_"Bb@.*:@a7 wO$ Ska"FAӎU~.;B=[vy)*;Ι (@"Y$?f NO) fy$%*$̢* <*Q;>wX=ǯ5`0EL) ^ZMMRxWI% g0X; * I"Ve̔do׏cQeQM#ҺN=e&߃LJr?9x;w3HVb"Pk-q9/_|ÕC"AKz7@l 7F+'y!jpfZcc=ecdXEXs"%H 6eP_yA0(*FT(¦.!HƠ1CY T0D~h4$EYvor Z˷g׷ J4O?8'>N'|1MgӪ8f ҤNJݲMlrOVpuuŋ|=;?K)]]^_ً̠0/B)aۦ-GYof\WEIDo޼lo.fzTfg I)DQ(ut pO;O4 &g],lz\oZWVxzy{)RCsf wzޮ#7O%F dwD}߁-ʦmΦRJ~\W*U;LTC}qE\mG Ah6&qd"DBQH0v2aAAE`<*oXRkAaC@c  2JJl:>%q={ ;*2 ]5ۑnpIZPu @|ͮ rC7;2ww#3UU@db@U$20˭8NwTr6\f[Ts['-;ݞTndv7{& q$SP.}X}#bHDBR6fBE Bvu{ L!A|&םC]0Qc;} 0(ӏ?d1?ypo^IHWO IF_mnˏ?_A;]^]G1@Hb/uħ(OO:?[7 QC\ܻz?X["D t̆(*kLRĹE]O/oD tH`d4KmTb]Z,QHڪ1u Bxj*[qQSP@ɋbI"E(EeB1( 9"AАߜ]O?}}˗e'S~5^`VClȨ._f>WӶfw M$a͚J3bHPU]l e2 iқ46cz̐Mr -5rF%Ddp+CȈHoK] ]돏1}-&ݻwysFD?r>7UrZ|Pv]䣏b^6:(bj2iͶCLTC JƖ EX_~i|,9DMǏT#`FNC q+HR)uOB;hz.A lTDQIU@Du}[I8l]E%teҗɃLZnMUZl]{vΣO޼| SJvN&tC>ZgHF"SV%TcLڲG4f dR4H h5}UEEұ-0(( N׆ B)*@@")HڡfhRȭz-EBȔKK5*2[Dd 9"܀9Fw$?w1)Dn{GѝTPUtƥbE=J 0Ʌ}pR`B47FH3/.*V2 ^G.=G5RTU"#UI`TXDUcOӾx Dݷl)8@&t Î83՛Ƿ) :t'@o$I ) 7zѓ'_xiP O>|z#(߶z;v֯V]V_G_\e8LW#Ou qY^eQ -jSlV )0.ڶQD4ֈHLQA cLጂlc;պ(C?hRbL $IbBR`Fh DVEb3~$baKFf$@%B()lC9W@].?zxb ћ7d4Gw{7WΗãtwCE槏DI!(ZVYU7~]4pc^ץiSo./P9w}}  1^]^8;;}puU߿bOܛ׳;u\)17^w{yS7+las ![WN˲/޶X:z^_- 13Bfش]¤ෛ%3_̆M:6m6$8]70)hlU5T`pFUvcQ)(,JU輶*WvXU3 ¡JbI*mc! IPR A "c9PmTa2avm!%}o4)UeVs`RPEl;c@Y!!!2j2Sr%UMhj$hoF1.OGR"Φ(dF&$b9D }EYjn&Tk02gcÅ̅j wv&pIͰ)iiQwo2t3"$kN(nj$C08༽6L glFWG~ݱۗ`Z| IDAT579c@DD_0|xƿA&I+sA$ Y6gmf8XI^Kn42dtP FX #pNO>[Vdyyb1=jp`{qq$ yL 1}m>}S/_]l+"`En nFd]@.$uHʀb*L*1WiL&Ȍ-BTX @L*$k&]!`/c(&d4̆kr*1 vWEcxKI"e* N5Cv\Veo Sur>9>9;{]JBւdf Ǎ5Iea>,^/o_o{|fsxۛt#{/{o۲>鯯.?|i~ӟUU- /o֗dC;0ړs/D޻ز@2جbz8A5L }J(J眳E V5ai zX ⃲v cS} we]\[!j]ߪtƘISsyf^UU SD>%g +(nZ*[ !;xOdJD CU")X%_.ާcH)R$EQ(3O6Ĉ` K$v**|_WĄAR ,ʮ,"b&ySwø(l?LTUw$we 5~nS1t7ݨrL "rd,'A%BrՔ"!&!b!¡1􏁿F! #qJa݉b/ENr ȨB޷0W3?1p۠z;zmr[vI1+ "D8oJ RD6@)iN~}4ULXʖϙz] d&|4CP 1IE4bHIwGiʹl?ݾ)^1U91yǷ' @*ָ?g??m'||Y0no~ߑzUx9?ū S>Yli8Js!f`² `kv BfT8+1$k " !#1`L)0La* )F452wDB!R4** c cf@hASW$*B@1%T%Tdb$N>$(̄IBfo2Cb51ݤt7b~ԍ>HݳLh`1vYOfӿwM4^?88Xdg̪bVZ58UY&7Wחν1ʳ/&'u===;+*c}hVQ94o{{Wo^zvus;\N&Eٶ[W|Z"JuL<_,/.‚g77(gYYLDĔRH)Vu#DTVg*']w锰߬/֥-SUDаak$ 2!1>ʤ$?0eb2XW!qU ,uے*^_ sJƨM1 BzS!JeYͦ7o4|#& Ffc,]Q)%$X8[ZStEI\Q,;#wJ ɔESl&7L}F-5@6ey"J*ѫ]{0y7*Sr"e=K$6C$\$Peޛ9,s;z݂]k7Fjfw/T јU (:Y Xע a QLVqGHmтCjQ )SO{~a׿'91]-]N?yG7g/5,"Y Jd Q'ɶkAB?dpn8\M)'H2@` `CH@>f]۔>~զVW͓GO*v|cf3`#U!@R1mdwyׯA@kAt4#a@_>"Rho?Z. `Ƥ")Ft8s )"5&X:C.*}z=\'f^L@N,I9{4 1(2 *`B4a4@PUM*IRJ)(;S!5 =8:8XݽmÃ.Jpg~ӏɃ#ެV$V^B뇗g|EMEهN~u<&A,W~pr \߼K1We}Y5ٳgv WE°ٮ/n۾ ,|6wv}jrxt|sc3֖U @{9#x]h"9gi{w0ィ ? !;爙$BӍ"33]\n&H}Q@0O>TH 1XT%EdycSJieYjqE\M J>v1 (FMo./ٰ~hٲtR!LSbQ٦dq)U1^\/'â@%^ew)!ĈDHbeY@J1I'0ft} v;41|> #M{7ˋlS̏ro26ˌa <QsY.+h(yEL9ۧ0d㶙|:<:* )8g/ٛWۮ; 2yP;ϟm۶kX35USr>YTH1Q3͛ӛݡ~ juttwM& t6{ۡ_s?li'Ӻ˾Njcs}*ٲ(KMQD|mW/u1v1c6*zl-+Qv H4_:MSV ɰ IUsqq.tjQ)(S]UZ6e]LI>"ZWV1рjAڶ.I@"Ii6$j(j(1,6MeY9k}+Yl׋y!zvw痯uMiCJч_ޫjdRSƘ$jհ_,8۵}a10~|Pu=$(Vb[% o'/ѫ0 ;b"ms#cNw 3*i$REDv'OlWY(af2[g2ͭB oOUroNxĪ̽~DG8+­xӌ;Di_߬l]76dD1*=ƁnLߜT g"6lהO!ʱXD[6%csJĶP̨ofvC ^`D0n _/.4X?ٟNY-!Ij6 ֔ 4)DmCCãWIb2[8cs޲ǿ@_PVH"@P$)wf0+!BQL@ $g]\Ұ m>@L@QLL0 rQQG?@ ≰b,H(!OU %A( ))*'NoNbIԖxq|X]^7B\ѝrśtO~\VGvU'Ij0:khz?Ϻ?|˽b:7eQ$X,g__->z4N={ֶѣG09>Αl| GaYf*zq%3ŋf|CB4-O1{z:888<<:@<}u,F5NHƖ$.u5)b;UkWmr&t]z$C)bSM}~ gUq=35McLa(ŤeY!c2uedShJIنZg7$b۞'ueEEcYS@?FŅ(DbOJRfCm"CDuݴj>|Vokc(3*Q;}Ϯ^8h!Y%탌d/!e߀A0h~0+Y5$@4I&'A@328halPK`h}(3rF\љ@6t̑gd,(Lwܧ9Y4ٔˉA) N7GOg4F[Oƭ0Ԍ%V:9&@Fw9A0^U1#@s#aÒo!oZ?|CHĢ()ul XDb#RQW<0xus`6)cpn[LR3`Ө?/WWqDQDC7z&u=6OW%0ibem&@qϣa;nP(R}@BLqLeA$j@J>E)گѨ$Cc`$hXaeCĈdITvuD5loUGf\;eCk*-3@!w],OoZr^&|ofjfӳWei $B2+~ژᝣryusi7e=A6~o~7rL=-\:;۴ۏ|LHu8kT{? ~4dzxx`vǟ\l|77WW{Y~6‰}Y1|OMQsYVv}Y](Gǡ۪:lվ/Psa"MJL[lԽ:6K"0t77$T6Я,1d LuuZcJٴʚp#KCd5F$4$!FP,,e_*`<_}Bw}}|hۈ(I1, C k$&I6ȦP$;dq ,%gr"0@e*f<:F@8e&D \0;^QȭppGRF_H(:JlFq 3.,"b<#TTO Će"b2ӁxnۋLSpj!}CgȬ@T .^$A޽oUy|69E@|PesIHc8 ދ/\5)CR0^,?䟳HMekg  ShBnqT`L@"4zAnEm&3tg|_%hc懗77XN&vD ~?M}Ӧ1&fl$"!U:;~Kk0̈lLJY!Pmv5@Bb"bj:oƈuU4ĨJD hIQTp$$)@˪kf,;8sH?_\\ZcD"L`R@&Kqm^o^m,>=}ZۆdӟISmp&o_vV/p)n\\wtZt2Q'fX.Ϝe[G- X+uΊCjz !VUs)":1rݪbۮ;$u%1CkG gMV%rtZ0$I"Re*ð#8[? j"1qQNj'k{>D˖~6u7_ܛMH@EHnk*,I"^@!z(KtLy+DPAB" q|YmF^YT5IJI42t ,w]OFLA9x*s "ǹ廽jXDKP"/š*pNS_-};hSƦ5NnJJ " \.ʸJ'oݠ#Q>|̈́#~_GeV|FpKRχP#ի}t!$<T2FE1 [Su D !)fc[r!!0Cw*3mE6\.Itnl !!O1oㅙk;`k޺@Gd|kc5<|6M0SQ LdM#)KgxL=qpQ:cH$$FXrJl+,@Ss2A[ (r}CQWw,lF;[b]=&ﬞO_5)I AIJ0x IDATBHjWߨS9OWyl]F( e1ځaRU>7]Ӈ~M0?+kQBc f6@B׎1-;wn( Wio!3 q3rzF($5J $jGL 6yc/ZBg|'eaMy$ >xڡOAUYbRQO'S@TUB1&uiO=8˕1~h 1 :laBd#"5d<<у~/_oo:H5۹-X{UY?|W>s߾9?51 @]*zc)ҫW#6w|SUt2n JLm], 1l zW5''?8;;͚7_~N_]_7GG{juj}{xp Gݛ6I05\te]ϜEQcTb^/Oͦv0|Po16Gk\-l2DX{$,c|Y@}<\H `BYVM]wmr2g/1@!I]9kh&@*ݓ/'ԮU 0 \U@N=>%ĺ2uqQ7MrCl!2aU*]^ogrT8]]gGLnVYwŷr9xg#bgQ]& TQ`̒㝉uo-d&%QBd1leNl+;?Ћ$Drg֗NvBCvH3ٵeo݀NU6V燻ĭ5I7FgT&vlH9dUT(X$] ;7[.k ޱ# 3?tm~# d1TLL}C߯? M;ƑގDЬUHإ+/_(2Κ`r bBEcb ;r/QTH2rƄq5,n s aGw>{ѝ->{ѽw&"NN}^ C?")q3Dе#gہC=_booZAY5a Xj΋:;ؔ$9Te`(qdiQ͚v&WU "20*% DUT(1jJ !UD$IIYT EB*iY%֤ )!BilۯpPHӢzss4a1pلnwxgggfW7W77U]QfLQeYRJ)7Hm|o,d۵ouI)N'}^׋DrWgN>|a" 1>88fG9nin拽l# G"KRbæ&oʢ)U4d'ɼoo,]fvUSNrv^u<ڬC16gi׷A:)[T5 f4~9b~T:\IR!xgf!zc%&J}H1dB!Ħ. H3߿x{,˲1uC1jU<-\\_ !(1zUL&Q%G7KD( \9__-׫|oQWmDrfܒӊ5 p[Acd,0B[ga !X PTr,<uO_.!eDK f1dX(D; \NhY\cP=$Qқ%՚iR5uJH~ ̤N)]"YH$rĪcIhxc!n.*W2y 9|7C#6L:w23Z/ Oz~o? } MZWA2449:88TPoatTȘe *ߊJP|ԑ#A<#Jm%"f HR6`>C1 Ւk'z4چ6Dh hHJDD{9UD%ZL]BYY׮_=>8Wth@a[zfnW ]?g}͍acm_}) cbIQT zs9O.cJGι/_ucC$rnU51f&& EHȮ&2u3a 6F۸rRra^N`ٸ$$LaoL5D Iě׃6}ad6ە hmT K$ 9[!uUY+|hc H$1h5ƜnT5{t%jf}?C Ɉ"1ˢ!b%)NJ6Ӊ*e]mb]w!2ׯ^^/zu}Msctk ;팷4[A4I8?8Ku$P ![L2Y+"-$kc(r* YDc_! 1  AF]Y,Ĩ!lEV&6<$FݙsIQUq6[0Iv`q052:9_8QFeƀ|fFAQGF 06) O\_%o WeBGTX&B@Iu=1"@J%&i>IXזQ"1X3YY$>̊ÿx?~%74D:v !r'#kr۶*% GmVπ|@"<:>89{2/N>^- S_]rro[EbQUw', c̢,g1*O޴I-"rj REHfzZ=3}l˴ٰ[Hq+ւžX/U-Q-( n0XBTg{8F(Z.KI^o)i+WyF#hULdm]*Ɣ٬mcߣP3Ll%Ȩq'zYT];w1iۖѐm0Ɏ@c1*O};Єwސ(K~cʾ/x1*8ƾH43Iu8~߶Ք5Iurz?ČNOWCe[783TB}is@쩐dHs0a~HT$wTXIb$* K26Saf#BT3w uˈ tN#DŽ9KveES0!P$r^WuPUӜHDfs\Q@BbvQS`罗8pAEX aX`,cڅ2C54 l-*JAG*]MX1![g%4c.I}DS0(*I$wMՕ-L|E#G!l !,r;MQD$CsKX`e@sx^]?SUf>\9uEDλi81v}0dH")w"1Rb_n/?'Ƙ2RR3vS{"3iyD$Mv7/ɵM| \ 穩ر@Y;*GMV:4 TTsșBe]58)wmM+%fq~/>OQcZoOY5 D̀,um a#Q-Kbv{0ƜBz%_w'-!p^VjE) `&J30̑~f`83&lD@`9s[VK(;'X#U"z1Jq2'>ҽ CIc|[mCb6o֯"Uu<쮛[tIok5???8>9]UWbowݰ|syޢmA/>}EţWWW>Իh9믾>ͮz{}c=xvm*,%"z`j0c&Dprtkյq߄P3y5ԜFscUP9#sLuݮ1eU\pLnT2Q4b&DSJMӈ dQLYKYeE^@jeǼ\J5`fJ٬a\TcZs`] 2@5P2fR-;^!sY l yfCq@džh\ݜߚR{&&FPD jejͷ;D j{3&*=|gy6dBZ-""wDB[U)0@,[|w.3 ϽijPpb2`P J3X₩h#F 4]jJ0wTC;uHa?1#hLCRxzz>MbN*uv 7_ono^ޜnfj5g_,GDtٶMsd{{Z,?g_^.nǏkBu=ifX,Drs>K/^8>>U_U8CSUSb"Ô 5Et7ث#!Dyur>Tj꺍SŘFƘg17az;YTǘǤ]&D2vߏ+cvxbZ(缨kGd٫g_LMmSDUӓz}l`fvm[vnJ{D}Ӵ]OCLc9'aܖtA!|ɧ/e02b 9~Y NQ#5Kq\%6+TgZLE%f%&`mtK1=HlK;GLSQ44J rX BgFsrZfCq(Ԍx&{Ƣ8G: 2` %FKtҡrx~fNCU(Fi,isR* "arsLD)gzޯ/f8`E}+H) yr ~O"a0v9M4tM)Jt~4գv>(ۦe$`@~\0a&DDU3E0ӼhqjP7v\H`&e9[-J]qE=KGѦAr622%fSΩ0o;J8w1TaiB$r3 %@ED+(LT OBTfɑ&MJ1n.߮@Vlȹ*Z@etDJXhΎw G,UNy"ŏ|8 4Iғ>7i=XRS1Hߵ Q$E/v[ţŢG4hpٽ_(Wi?MPUm-q&ڏC|u}n7wn 8˗m.7|⡈xrut|vr\rFLyd&"na H u{楦1a:9ji>0\hכ~?IpƆ-WϒTkw-' JNޱ 4U]e眦ڮSϒ1Q B4fpڎxOU͢~rSo5 snIuv j<o87~ Yᨪ>E~|ۧ/PP/>{Ye_E&,T}W_~ }?,i,KS7`pttܴNONGb*vX.OOO ͫ9qμxcf5<#p&sUWAwU\sfnq}~٢j]dӔVeJv8۷C]-uLclރCį]!Aeх옛F"U P%Q~ZL9YGɽT T CW;~"YpJҵ-,vMU1R,&iۖhFA$gj`F̮mðUM׾2r13S+TF0^ P 0;sTFEXfX4gD(jDTB!XLfsI4h3F;UhpH|ep\ $.pz$d.,!|)9E7Og$`ޥTdfb&3SbR5^@p+|JalǤYpeSU2C}-hnEW`y MDH΢ |fq1$۾GDctā%"fV9Z.onݎ"L<3!(Y 9<+ ΗH^җĈ K4CȪq7aX dM9Ke3`&&"bLgOJ}Ri@EמǾ00B,^\->y| tQt]{mUvfOmwbp{{{zr1MPO_|~~ϼw?omrʇIR(p|t:S|r>7oV|cċ{(L.߼dm[qSW4Ap~&<E2qu*)"-EJTITdjyZ2Nw'nO}=/a/~b"}>(읯TgiiLeQOm朽im/SZoբF5ehJ.ҩi;cڦiS۴\LF>S|p@rTԇP7#.mBVО?z^_R4(l̊8"ή1+iHTI$՗ p'd;L5p5#87U-h0ЛEl%`Z6*Ӣ#&jbFeXue&Z:HJ ^9[DF8 Js@fF9,TJ?q掋Ny YlvLMlc"$̒g(w]Jvﻳw^.vmrٶ}?VB֗FFfGuӾ)c65(1N}J>y7N~ߓҲ[՛?<:Z}WӯR'ꈉڶ]t]hPoYV1:q{by ǧgUU6U3U0U(x ]dyy3IS7',}Ju{̇e֊9YRS%x~46 ;"xzlTw\5@4!4It`B@f{>>ZiJ%&$ Ç=buJ7}IS`wC *d8ba$,Zaeז,na)fIfD&Gð^O~S#(8P"9R0 'X1,oE?X P E9Fm#̳ms1M’ZgDs0!yόd<$q\<%5&MMb!-NX]w/;7@6Ԋ0׊"{vΚ #~wN[:%U/bI@,9ߝ?JYp.ǁ'fTr p0̞fB3㟾ןxMf}g} _w~M#Yy)Oq43}D(ZpCpꐱ\2м1"8 9T7PCn;LG~~+Uh6#5= yBYs^@sgf5"P]I^B]i҃u19ƒX0"m{[;;mb9[V3 ŔT,n!7vB:Qc.P) #7Hfg2nز8:Nɹz]U#ԏ}j᛿_ 'O{rg_?|+Xt5}&T$29@P*GmXtb|~^::z}}ɲ[IWקˣo~)Bݓ'?x0cTꇟ/~7/~ͳgMݨs,UU]]qB8ѣGYn~ ;΍X1:m^rI;67W۶5t]}}rrrqU9a~Nq=bR1~u,Njr"bth4M"&|,Jښs&#Ff4ݻblY? l7 DUf60*RXP{q@AD$,QQqV@|=`u!R9+qvӼbͩ \>\yg@HX;aŃ\_~+af1UseD9LK)+`iL"T-8M/Qeoy60CP ?;5K>!8fƎ.椪 Ҷ0$۫|򽷻}fq~ `5;@08O+@P^xg胗7ׄHMU h`K ?):x}^l&vQErd%E2i%7ĜŜPGHef "$p\!%BM!#QiBJ"Sd+cLTU˓S5ܼU~o͘37ur?|!?7"lgO'D"*ifA <س"~S#Bt1UD0UyR DVxl~dQM{x==C@*i8e9[:憒/b,60c^'~'Kxޯm]_?ˀgꈲd v̤"9gUI&ʥfS-@Cu4@X\dsPeCsxa9`TI5'79ų]-Nכ5Xƪox2+UDN0GokL 2yD4 0T*LLL]jѥՎlQ7?8ܮ1s4J.(K5g3VpJN dB‚T <{c*J)&&!Ȩ T;`M fjY .UdHI;>MqNcsR=$ރ=:=d?LWnN~G.7fI5).ju``޼~syy4۰mLJ]_=S˿F__~Ӻl.OjO?~{ss.o3zv8?|rr&t胇<> AT~tiHRJmL8Nja{3!$UnUCb۝jF4bcJMݤi>n 9<n7ibq<`utz{su~~Yc_a3a,a+o#PWT0 Z`dƘL=×/:bnUy.w RJiJ|GIv[,a,cNbI@2DC_93%e[ f2`yKS;kFF 6#d/"D$*mFTwr:3#,͘ZfMQ-xLJ, y` E?D,sn!}S DÔdy3@E: "!25\jw![?3 xjro5 H%MiJ9 X1CbyI4;@2A&0@8p :0 -Z竮kU@"2grl& e~ǜA )s]4DQ.qRP52|t~^eDBLw3`c͹.8GMכӳ~&7=،֫fSUX)""*Js43v#"% "%6k86D %ԓEsTӌQ)a)fD"e@f"b+Y DcA)n't~avH&smU_iy]T`iǭ#5O͛vr'7/66?_77Ϧ.7kn: !]_Ps͛0I2Pmj?n>mS)M9SԾ5ޞ_ YҲM&0`D(du=32gOi U{Dd'@)޵mE]A0aLY ┙Yr)-˾;mS60H)qH[tݦm)fKE;g twzcjv`-*# A5A {/Bc60D'Y3%D3*2A)ٜQHIQ29l{LHaLF{TPRq ±w&L2ͣ2 T;j>2P("LyR*,;2*@q[@VFs/(qAp'ח?s>ux3{/J_ 7Cz?޹}?FbR* $*'DF!ĐRyb36EoIafI1|.3ރdXAJQj"d1Vh iUX'Hst199k* \=w3u/ͭ*@\# =Ǔ,a IDATGM50{BRbBFP0-UVU G: !!BS tHRޥ/׽;7N!\ƎɪZ^dY (σD\oUSPf8kGj¤Q%(N2{X\ybD5ϥ/_nirf]}> ߻ з)U5qч/9+A 3+Ό{g1Z)cjJkˋv^͡-f+9t7{v3t?ggao9*Ǒ h8wC,a>; aw={ǒ Փ?xo<Փori*d.ݶ߉|1nͶMԫ fLEE6g~OO~ǪS5Yg`UTEi=;Nz$Bb)ɾ;?jIrc.PBb~=zİ^ogKch|8J@:ɼmTf5cmSŬ*c93t|/~'ͬv|H9O1)y8,fR) *XסmUTe ދd|4pDإ8(8ĺsm~L`0 uʷP'"©σ J-~!(SCqA2jaL=hTprޔWY$U;L8u|䕱 ] MǢ._XUgE0geɚ"JJ c*xܤU{M#2]? qLH!LfwJV{NxI9 `Ġp iUq}\a?oU-pZLqQlg,Nmm6Ґ[N6B`v@<AR4 ! `2iH9<RPi!z33b2I)MW&4ލOJ t?"| f&``*noaPhɕBUrR'߲'gRϞz TQ#;#=W `Q#84.L!PcY$PWP̊ 51sX2A<:#B+L}4!#%!Py=swؿ~֜S(,x^zuu?ƺn>xQO*d!am\.BUiX9v;t믿|v_yhNaӜ,̗iJɓ0¬;@~fz?`Tb  w&4Ӫw/9|xWy[wY߭ooC׍EUmRGb#SSQ)n$0ƘDŬn!FUMI(/:)*C]>8+~?0+j; :C #Z4(0<|L*,:FItJIIJ&51Dj;fDH%$\^XnH0e㙪a2NSLХMT^$,*!dDTⵏiuEC=]uCO.x#_[*_.{DG?WNGC7Y-hITU)* "nWC?@_F=Oݸ 0 {Gorq{bajV L $8%t;O,/M \͗]̇~'v aƺ_Ż/),J6 #`ǐ ~\"&fF<99"*82[f]Uagbd4M1YW9:@U%"Ҥ)eD00C IJ)#TD˟m5C7rwsZM)g~Eͳg^09T?xu5*B;kR,9Tpޭo*<{ىϿ1KBU}WΉyh3qsivp6_]6\,Բ'{7ݡ移r^!r4Ij#bTMS#0N 'ࠪB97Q@XUu4k%Al\,l1n1spDJvSՈ )`ߍgmŪ#2:绮Sf9{S*QDD"l"bC1zF͚:| - @4cpݦQ8-J(TLATl$2 -)Sɺf%T J6!"2&G;DGFe"᛭&dOnHpDTPK6 ?".4"P)5`@FTD(izHlVj񊹢KS!mRe N^+"3@=re›fޣ XE TLO?"ןxkѾe ?z?uoߞ_g4DjE; bb>T)šл` l i1KE;pݍ 8pn@=gڬu%(9'y7vDpQyU1!cwYç}J]^z 3+I4^f8_/>T-f3 0on*H{a`VS G`ȀLTWc&$~~vn%QUs3qEQoأ"b"@bƩ<- dԌ* @s ]q!:F\LFF>%` LޑT{;cm`?y ͗.'?~줩޽{;ovX-ڶHH)%&'ݾ6_lwjARq6_ 1N4h|U5 èCMc&p{)6CжA;m|_tϗ81b^q`v"nL'v)jD$ @Ԭ/R5qj~wk")1}8FB`@De{1MA6*3B {+@HfX*>\LS1@l1ɋ1Elb K jة)Z5MAp)"s%#ATlmf`my6d06O) )YĬ¥&\Ia&J?qֿ@~ E4F JgD40l%O)L9p Ԝ 2#SѪM_1y{&'L48Oh"INj >Ju7xnoǷg{賺8(81N57q53YAUD3TJk 桞ːwҟ> ݪ}8ѢjU;'pA Asy0 dI&cIcX|*-:P U%(CtjL ):hBD xC:_ `7*r]=^|6tzN T-n6#P}‹oݣ˷o_u?Hhf"_+MTM9gH~$iݘbaaxtp~^v/}K/.֏?Z{s~v6}n}{Ǫh Bxd u%̔$=}DM^{]μwY{{ssqq}U@t8@s6Pw_Í!1[0thPlh|rzEfWWW1'e$G̐;3tawC\j5u =c!a}r~wyqJ,1ju;&Kql됏R5&7 ~1w9EϡӓSf71`!cM%)2 }vUrۦԵe˃@Fųˇ j T= dczI )lS8nH&ph2cA g0 [M?-G؏P\UbU1+b*N\8r@XI fI.mqa>^9b zs+wLND _x=JIq%+!xz)07Mb8 Eg4# TK zLke?4o:z^nL`Z!B9Pb$HBL0Bsq;`4;PUSu[@?$ RRW9/ L8!*9U9A6h*c|ws>=9=/޽>~rw,(?]o6GU@"@P&545 `h,m w>#4 סb9Cj$[jcWu>WϗO?p!jVNFfHTE(Br65DXA+@T@6ISŔL!J=q8&{S"DGsس Usngp fFzpZ^__Wu <}Uys{rN'^Hj`vOU]M[Urd _vޕڛSg*P@_f'9xwj<ah컡U[4lQqn;U1Y;# mӶM j0bgn;ѬvwQwzrPn sF\ND$6WUcnFUcj(htΡ*XCJ?:D\,qىjڬp&"ڄ\B)&Y x'xdNe)1H'/ݵ̛ű1#*F{}ؕgDDpHKβ9?!@WKmp()\Dv"M}tߌleRUf>X`vo:AIjFpyq&r݁wn߂*\=dHRS>c1Sf`\>yeQ@Q4$s˶ fRUU#xYLct'ыwoS70kJjVWW˺Aoފ`FBhEB 9*gl՛()BJwb!&RT 8& fL#B{WWu:bW1=j9E"˦l;=_z/n]7ggp`bG F˺ɒEF]Wz6 j{$ dC48⬖ˊ799X>#lCw;/ڦ}n?wN旡 8|珟]=|\?{8ѣGNNv]Uk$pw_5}ٛ_۳Ӌ*x37ig&C1+zn<ݼw;bMM4CכJ듓h\8Vl:DBpWn!'DPUt^,ض<uؽ)&Ur.4^R,ZW)5CŠiB,;3%nj^AVFvlw ]s"3 Lꪚ[23 ռ뇜EK ()-*D9Do'M>6^Z1*L\Z = Rv>E3b t94rȆh\!-M*LpL)[Ttz|!8N˝L}!;ǐb*VNox@e<%`h>AO4ny\TUDT3EjlC&w)tʣ*o.*#*G L$* Jg}\oqx_? [F¿{UU犐 A ֛\\Z$ũHb*&A5pG r d.  JGHD0;3V@m, \=jp/<"5Tc_7p\w߽}㈅/b'7yC`*r?S[[t9BzLQlG ë) 옒F\w53#:fOx!y\_߭/7w9j?$f{?t)eUDF PO5PHG&=kCX19G@rxjFOȪw옼7$Ch<.T`&Y0/fV@smRΣj=tQtlY2#>_~{֥yX8g˟O]*|u:t;FU3kWcLUM>퇻ncFP_^>جoris)@HH917fz+PPLKv;ӯ2 PdZm#_Ƹc*n}!L \UMH \[NthjT0qfeo'\Ȏwb`S*hHG[ @=#L伯)SX9n|}4tڴ*y7tIL#)#r=!exV9$9!3ƨ 4}P0 s1!aK8C?)&I9eA!g9uNQm7tVQǦnm2qZv:;8fEЄwF؈4;ͻ$ju՜ƃ(\=sLkjuow˶/f6#Ϟ={U6>|X?'u5k꺪jQ`ogMb)媪7ꔵ9N''_b\97!skC`Bԍgyv 3|v"((3Q,YorءaSQNKqI׵ϗޓQ48x]?䬎KQRfPW^Ur6U"6+ǜe. rH98wLUifr٬. ƱY*"u"yMLm$vvsaow{DuXhF08&ilu m2#1MھcqBrz>̮8|T@:r9QQ mrXU8'!kfj.gL8SORrA$R `DVJ펒=/E5Xj HfYY3E-q׿J~r|T&䟘)L)k7ߎA9 x`.PA; i ! !0Ęq"Yt Rv|~׿̓*~oJL?_&H)`c&b#$4{ 3MD0BͼqU˯[J-QwPUcJQ |B2cvy0'j3Fc4&`T9G'9ELLDCpCu&X[뢲eCU@G b@3)keIYRYMdSA;pKYSc8x}LMRv7/߽9zG jj@M՜/cfqsn5ۼi\}? W5ѲJZ=_>>ASRNcmLo۷/NO7&vzzRfsrv"*1 WW]\<~1cxs{+@a{9e\,W)khCU)%Uv 9,OWU]b>\fT]UjCe^9Xng. oނ!͢l=Ɯԣ݇-=]\th1iUW($xHqK'vqaX!alMݦ^p6M]ݭ e9E0>!2:DZ7SvLȦS10Ak<1n& )@XID& 6vdã=B)VtJ 4,nr5-#h [6afՔHHHH`&h QLE(7% >)# z 64*ѩp̆ԁ[J މQ(\&tz#@9'HScDg0 I2 fipL(0u))i(">?w;9T"'$DP,@nɫb:U}L.S104+ H(܄隠`6}m1B21 WCwgWnf1~W? ?Gtuz"[8!f9%9 #21YI"cJHrf*Gq!Xv}aX4w\xϟy&g%3T90*ȤF452pLιcf#V*vhc(,5[T.*@[j -[NC@V)mQU9Tb ڭwþi*e]5;@4Z]i<чY?ڦ]љz#p<.ur0@o-|a"u=޳TwM{h^VvXmguӜ_^<_}(~wCB3GtC꺮z$fMIh[܄RJtv~1bRJwwwfV껚n3&HJh9ɩvw|u*u~߽y:s -sSd-;ݟ7{>ĵW??m0-Wێ(;4L;DYaP@f1Tu BڦYҾjꊼsC78bU5t@E]sdQ7ppƘ!"9Ϡ#BUsH*LIX5 !H&`w]-Lؔg%}[X c1ٔWNtv A.%YVI^7zut`e[>z>[ ?rO_kt,䈳dSc"Y9B9C9تtf8KJ!kp܃d0= AJ~>ݡS HγhYr/t9?O|j}?fLP'2/ uE\ww@'[J"\"UkO^U(97ib$^oJLLK]V95c3at*_řw.o1xM2. Y8@̪`ƈFO L")GfyRQ%F3fR1I,e遈;7Uu39CC@ɳ~蓄P;GWfkBW!i@p6_1Vgo~9ю X<|,4(O}RPC\n_.+c`,_Q^È./.9_0VU]u.|{~'!4}?2SUUϟ?b"v~fm{}}frs*!cLQ-'Dia[CIۍ@.4I9y{!t9ѱ]`׋W^tW~z9?N߮ :[o:"R<9;;qU=̜, D`}?BQy:UfROH}WG>;=}]7ծ7UED U{wwB@-BJ>PJ;QU=3:}YNNOCdf"0 qJ#s`FL1֟|׿gÀD"jM蛆ق+jB26 QeF$5DDp?${48=)BD:.jmݤu3CDEd"SA 4!8S+齺DLr)U=&kqIsS~o[ ?J`zߕF{L ģ&DPe@ЈT& P_qAw7Lc[ ^G0@hAMUO>47@{Pm%t`n+[ 008@ hEH M &clSt T2!w0z$cN\euqf=&ٕ][|5#ʪ&%h@Uz@"% ]ݝUY{`G`8#Ґ@f=zWv57UH T*d-H̱&B␩ ,r]}BlILw"x3S4@$jL;""> cwz!mb&J,SR"D)8 Aˀs0(:03I)!Fe&$>Ԋ \B`LyJDLQھ0DL5g}ϣv2K1hkMlo*| yDz66ջN׋;LsEfQ Q5)ʌ]7tiߞ_7q:\v?DZ_}z4Nnn64Xۛg|vm瘛iN $F`ͦ( hBD,Y"T1g pzy4[GHO3z iznW[0]󤜴|_ԓrѿހ1 t+&Lۜ'h6YѶ:)`'rDb/%#T%"XFeYHv,k3;jJ*Q2o򭚩)vZDnelE(o #?DD0ߝA;!@n3W<@sFdLV;Dhhۿz +@bCsXOMMLih1ٷ hh Lu-98KmA+ƸpÐ_2\Q̀L ,_ga\aeҴQEi& ygտq}\Hh? H)%T C=3 α%h1nTA,H郘F TBB:@F#nb" ńYjXTQu%]Ozӳ)YWT񓧿|ܙΏN17@1DԑE*fHo 2$j233sJs]օgC3IΜu] ȕIRTUuR&nabZ#5Ac GA22E 6gI NR36PB$FcN@ CS5QM1W 35C(G]>(+(֡ĴtUШ[mMWWO`rpbz|xY&Ŵ5XMu/ ]\wߩ/ X6 SGFΡ3@IѤ`d\:җ_~z/~|}7Ջŧ>=??x2t:}@Ӳ/Ώ v]k^!}{ttlQU)Ƙ7^GggYjf/%*ѕBTF~շr}+w?󳟵oq6͆]QM~WqOX,߼ Nc!j!nX!‡'ͪt`%xVeQyLoY铆i IGιͶ>9wh(W&PQb"f3QD$:o.=xݫboXӴ")%u.#춅w35U6MR6@Pe/-9C۰5j Uyv)+{&mJM4c<}h̐ǬNU,!RdF1u(}'!0&BuO]=۟ >=̠tL 1HTx?e޻y? !>U3lD4e[?s}\׿nȇA?'o8W3"aBIUdn߁!d7$ rgZ 1 !4`D'Kq);dWugj9%Ʋ~eD#7WeYofYM|٧xɓf"5Ct397hL&i6]@dݵO튐رf)a*LFU9f`;4# L[PMU%UY:diuj7ƚFw]"$\$@a0!2`$VUODHA#`"z1Q0|\AD)g?+NCwz ڶM]~<4"fjιvmG*ě6 tm?xbmi Ny]eYnWH'KcvU1OɴoD 4Y@^EP=Y=>)ˣg雷o_|&.ulr|||0}nX>zg?Y~lH8Մ{j<$̳ {ʿƩ73Db}df $7WߘtO|tB({yzX-;/GOdzOlݛt'óӣo60Jjf,fش|2\ w{k0%G PD p4mwjjI4)31<U}23IN'Q1\.cV5rWh\;Tc9⨮QQuhODr!Lgi"6 &S; 9CڏziHbS ;r;,{DnMAt>idV!#0\pvh7׌<ODLZMaz6@6UvhC@՛fH3 cpF'X43(ϩ_MEN!PDdj$*[OoYnMdg@̔oø)*4$}DDIFl@@{LCxd/7l%wSU6wY:EU,l۷,FMf}6PqDo.dzY0bqѣ 3@DE;NTAR3%Դ~,5ZRSB(j*339a9DLTel~';ImZ 2ɨdPMDERT5xYDS0D IDATj5sP;2Шi^'D8+MM'QQ|h۝!"{"(*(z(ׯOg)L`2|-]bv~zVx爖`0l;0b`H ]4e"EG(PytOI]'O?-׋h?o~s~sp:\\^NƓdz|x\WuB=;+"wL%1{'U5O ^~]UU](0PPmV"8X"/OI(g\qM'}\ﶫx͗d޿P p6;lf֥~ OfTSj-l[9<4um}(Lɫ~ߵ]pHj1jk۶noW)%3kXU[b}7i(9T[5K"xȎ8@^TI$%Q1Z/j!j)8fC@cvhjL`"@µR k!2侵d 1?IUG3lVPS3qTj,*$*j\?ӏ?N1?˗["Q` !GNTbRR*j?de0!B@zrxw"x5;AИvMKFmvImEȰrzC`̳wMlۼ'pd ) s;U 7M㙝s_qPsR  d"\ƺ""UDfMz~𓫛vmjY_G_v\ٽ㓢,7|~0?O)I7{W"Zjq~m?ޱʺf9G*CC3E 1P 9fDyfYN' 1~{Yöox]ݮo޽ZT,8rh<>ﴪG1u-)kx:9vߺb[ovS>>H %C)m6[bSrHe}LE "CD\&bL>"6Sfs)PB@Cng&n8g흅"oHLDhPU6&݃?c0 C0DC0P}Yw{T$CTZX.[MȂg< c:Xif h)EӪt! `?eSv yf 290{odg}A_z~7E qwݑAV@d00S>d9g(P09SS 0C"h@  -0CC] S`xI5]=WPm"vs鬮N/ίr" $]ːG =qJ;3RyonnƳש$Bq=ZlVhܙ,wF@1j mnS#VAQq5C=E#0"ŘR7V]}D%ufF#!fRՖ9*3sfv{s[VmOכrO$TiG")zу>nٜ*IJ?`tmԜT3vJ^q-Mwa16..߽=;9J0OW{'FWMQɸ 07xrYIo'iJc7e$ۮg1%U` fYܰ, m[ID}X5IJ)#eQUǤ=&ԜTvm|PH]d(Q 0T54kUA=F<Lr7F6 _U m L5Se1dB @  ש}P cC*D(Z1#XLB@!T PS֡ cw 4" !U 1Lip_a0O:`4r]!$fĎG{YJD$U1"B@S#l @>?+t,7^n3W߈z&$ibgj@x;mmrm%y E`j@u<Tkϯ/f۴IR:'M +fh|\fq4DȬ/D]U&@bWʳ!"9fdžHUhsAf@PUHЄ]1S]<Ө,Q-*8yZ=zr]aAIz$ $3xp @%Mۭ4[HNU Pb26$$mwbDRTM4‚ó"ը0*]QQkE,7x+2S;gg׷վTsBp⺹IK7UYƨ7>88=-FPO"Uggί.~UԫWn "U9.]u=M7gid:-бM&qY/|??8?==Vl}f/^~{y}5?<|l>W>m]lEz&0d"@'Wޡuյ:JQK#붫z_ʢ@brǭSĸ,IUf{;0988n۲p9%5_o(kz& g~\^'.bI5!"';1ˈ+9˲@`L.$ΝovlBDc>`D{bMfhRp(رcbQ]CbEBS#@4Bݻr|wb ,]g8Y{NBwCBW!)rR=bGji "!>9#,v H!~D̐0s$`8L}#T2Q%fs$U2`5k)%fb*uƾ$K݃{Po/vMDb9Mc{@) BG=0(]Y ̠,! 8U@JOOjBضuު Ln%⴬6mMQb3j5Q޼" x0}Ue1@qH3j]D*:dɐX@ FE!fP_:>L&{oUP԰,]]N=~>yR9%#ekvM5&EKFI ]6!sV8hΑ%5Ĩ lcA{U4d L$1;B"BDd}401SU䘠->;_'ge:QոƾI^޾!n%6 BۯۮMov;شmQn{ }7n-;V''?}vu{vO׿H8NtbU9麆}ůu᧳齓ӓSb7ۗ^\_ǿov?O/^9.<@"gJ-o--"v;YYѽԴFEjυ@IOЗ7_9PjO}07V]L_o]V''ծkE w}[+_n..X4&c*.&1H{0@Ծc@$O'HQi^)"]1I0%0&Omd6g&&ĢpHHHNnn{@t! lfF]̀2TQe؇  #110AA7lߛdw`Fz0EӋlbhh @lfYY'`GP!cEYp?X: sݼh)=Nr~M+d 픈?PY|<Ȁ察:IY.QĎу q}\*߮gw鲻;c}AkjI^ݗ In)x?# D &L9$VP9M^/n ҆g#2qDvlXJ`#fͪ3}y[U6!f&yUcʻ!mg&.EY]T6 yO3#fUp")˧}]9@u6ؕCQ"[x2$ƾW]*WmfwV6KU%2G H< BL0 d9d޳C)hKQS5$S Q\HD=w>i"}G""1)rſͪї^c'mYxGisJn>=REb,؍q|vu+bJ)E^on?~׫v#.Te:}\-צ]2٣Omw7_G_;Mmʲ"ě۶ozlP͏WMT}7ᄍZ^(blj51N&q]#/ x65vNndooW+' ]f޶ۛKsZln]<޿{GgnT}03fxoM'UL1]_|4"x95Mߴͤ.@,FCD)*@T({?({c"Fg1v z_mԲG4Բ HLjfc&6#;Fv۩1   m֙B5vA%CЭxgސwMf1 !' o "Cș1/bJYv,f. cNUTҝarcDbFi 1 _a(?Hsӎs/ >[~Ã{I$DC5ٿ T#s0DMIw)3]zvDᛯc@h'lCŸ)14A0`7{xv"¨5~~:)%01Ae rˮۦR? 3Z4@H~xaI,}mAaafDyȣUYncƘD>{"hy_V}虍;$̈5M)4GHhLli g6k>_^\tNb<z] Dɴ JlQ3jY(C(72K Б:6GTcW IH2( ) )cP5G@ .PACh7EAg<O>d4"EO=1b43Nr\'E}xr6[-׀Ɩ]|c*OQǗ7~6?|ȭ7`ڙGPbquycnI[1Qtn;r1 (u[3",g<ݬ/ vlnd"x|\9v.epY]'ّHQtT F"{']2"Tjp||]{<{9.sxh7×, De敦 4YMp:hwB Y*b û=Al:<it/` E3 E-fHH:UHɱSzDPbGIwܝzoڹ;p w昳~{2! 1&M)E5ux~\׿#h߭oeK&emJC^"s$Gu9B1 ES`"*a $0 b]))~v LM)FǏ{ˀV:0G(ԆQ@Vb$69f)Iӵr=cLj&0104!$v< :f!x&T""! B(f׈JJIhj4ES6EbpdyM:۶KIx$I󋘺(.Nnoo²Bgvmw{]<&ٵM=>>Gcc.)QR"Ljo]N5nFoTLq8%E5>JJɀbe Y9P(rm' vZ6|[3!)͌ "!QXN&lزZLx BC]nJ|8`X,K1&<5d( aB Mb?]Xd6a7Gtb؋&;[Z&C%ɇGiJ))Pf`rJ'TyVß N^F'DǷ_+:PاI!%@@7o9 4U`2@0Ôgb@ Y&RxtrZ붙Nfnb77 s>xǔ1i' b 2dqpgnXby/2Y,9(IQ*r³gRS`&@@"P BS),}<)  Kƺ[Q D5EGt`d<"dZP%Dǁ j戣( jNW&#B"D=kbB5/"QAElv;D1Yfܨྐྵz;|9 Ouh]+z488r15SzUJ՛ד IDATbuf۶Z6ï]]]7}lc}n=ԁ&mۺ_^\G_m|6onݵr ޯVY]8:}zz''e($ y/>ii>`m=ac$}_QUO@)umƵu޻G)]]T!AU8"O\8(Yf֛͋oz<){%C(X&{f ߬wNjdQЏfE'$fv1(}׈ux{ o1l0ܶM;( -(LIZ;HO%)cSMDbB$v "1?Vav!o,U͞N0L)8v,D=L  sӻg!YxW`: N0jjz"jhҵ*0'BP3",2X dS܃Z1 4$!Hd!$J1z5g1%BDJ`HDU-C&E34)#HMnP hȤD-{v}T I)`b׵$@FYJL@dC3sa2hҔ4T9gУ R ڗ Dr7|L03!2碠(B]ʲ\׌wMT/&cWŭw:Szg'gEx:0 1<<9횮*˛.mVٽ՚Ilݕ'],.˫.RU޼}Am@]y??>~ѣO޾hSGFZ-V!T|q~gg^/gh꺭Xm]l/Iӳ}fǧ{tz4"t]7_ړOP.kQ}C(mV2O v @"W8|vvu]TӶCd(fcךe[u=eHTnnȕ>ᴈ"M_ A/g'pjn._DrۮeDeUu Ǻ.bg4M׷v#MX¾+QO|.38gz3+w73U價g` IKUWdDgg10*u=Q;_u$w@/0,X.SElb;556TU"Ea8^N LZݑ@D*GTZibR>45H,_04NqGGaM6"U M 'LMxvhCS9uXQA"jΙYۮDP0nʌH;Y+~1m~OJa3Ɣ+ςGW?le;%W   ,~XĞ҈DsdP??u Su]yy^7Ž t>֞*uAM9kp75{պ[1:gm.RL@ϗ\B`/D,+zeln92SVNSw DfnIS610'W"@X= [UU(X$!C Fdf@@xjaHRJ!) 4fD›[wr'!b 9CB_~lzCPϚ]rsqZ.vs!g M >|ONcm7C7Tbնs"|/_߼qۡ/ϯ6UpooHZs!ƺ~7n^]^޿[,vwv֛M:vֳܲi` www boH.\^mѣ7AP7Y js6"EW1Ѭ^ i9bwvw//{GjfP_)8*ܴnc췝@LBLc4V+I$9kJĘA*AM- "ABϹnB )W]7jUcf" Y\N%cc&t;<,B1ψV?̌!Jp,ZM-|.t8EkT!H KY tw$d Fvv8єn\T/ci/;y8b1J &/b`q1fó+ j$ f}_ kuM3[ 5SB`9Ayc*.2hګIX H 4CP 8|%/^~;w='&G|k[ONjB> RC- ԴA'$5,H^SެM-弬e}vvn6[%r"Fr7āxP]biȩ26p(~yV$i$EJ}vwqApd9@3#zf"7ݜH1 R8P*k`>Y$Ժa`q@BFU "˦n:zJdN%ķ" sL)ƮTU5; @̈NL *Uyݶ jyN3c̰Yj[t{ugvٷ1m=8: 맛?\|X҆p1 s<7ל]=W]뫫gr}j:==B]٬iY[mX~WЅI9rC@duޢivvTH:ܽ=kҼXHc2b6lB rN`ԶKC%Wscaȳvvuq9XB'TOkfLc-McQfL,w xXa !Kl6[뷀n*cJRUfSf(d5 Ll% "rYǔr@ Pܑ1!e"ϗlPFfJztR^OmFOe1IY'c &AiiOR1Sq#^K<K":yQP!@[LGKc{ZɬC+3YTEYڛV&:6 ^m"6忕k$2πTpLUq.=(Qu8`͔Asvi cE*nUrpw޹Lo8o?ip ,T,;}n;?3#|eB86 0RC__>?=6ˡggO-eNQ<91@#Bnl 0~4kJæ-IP͡m6")% 9(2 A* . ]\Uujb#E. 2iRB]& ѓi$ ԄK BMltSJg`E˖R D -Һ]NI YDV*FTAߦ4kSUb-Lwo1HsXm?h/?{=؞Ѓi5n4\qsHiMnzg&eZkٞ}tl y7\"7 Szx RP-t9j?jϿ[w_Uŭ;ܽރ}c wo߹}a899!o޼ۯyrlsUKE1G=8?ޝ/S5^^mJqV{ ,ݬg&fj-M)T; IS=kI(u]RCrE 7]< SLj\W̗cuf`Z7H @"jػ1[n}VEĜ-%@TUN!ݣ*k!$0uGW7TS,"d D",HDȀnUz{xgm^^K7wtWo>zXt2 Fgf-6m괩!e'҉`Qh椪jjjmGf]udٹq * ]_]{VuU3sfaD UU'6G?>r~_w>;;ɐjp7^r~MN=KDa.1[6pE;O6/ㆡtPPDZx~{?<;C<9=:88ۿ_~_߿{_-!|>vԘ=|ѣG;;̞=?qm*5w'>y&g[,R_ogOb~}VWsC!Io򖁟 nu@FGX.WCZUC$t~%58&bn:AF*”˽s=̷߭} 3iB?$Qn W*0SZE @]SB%̝r%D,AR̄f^W;~5]2aQ5pmzR zġ_ s^z~zJ iGCѴe`. "1#rviSI.7w+:B !f1-zܩ; @u^x lg_9 +5U D81YG#. 2^c 5  ]̀Wߛ=`G3xe'y:!@1 DOfv0r<+hh*ELX`ف>vd_<v#iߏ24P"w8a(7E7n=}ɩ&MG߾|c[C `\ Y`og jȢ& KizQ6-"ކ$a`95"a>@h u]tӘb.ͺ[oz/Ȭ*$申0QŀF mE݉B$nպi9FM՘t9(dlfnhX:"0DcHDD2||ݓ/~M{ iYVCp $Aurv.]vW77_|k/aڽNXfuoэ;3487L탷?ǿgyQݶYmgn9;9\_eϾɋ7?{/vwvכuwyf_>={n?~ΞvVmΩѐ[M_"25iU=gNo!V~6u}=ko}ٜǾGhʔok5*]^f)96WfLN1iU-!!yZ n]fCu 7m[DZJ5!:a,n Y P:44u,RU\g2) Kn8idwtOcC2(5+WŵgiR3^)iVl(0y&BF0 z1kHLciR& 4̜hY61Ds 65@sGBa@Fv௨ B:Fk(Z,O*:40wpc0QՉɊ}Kً#g2w{U?Sh?F~5!.UbTG3?$pd4r`"Q:,$4q-0Ȩ&~9e ;Tal2CJgSig;`Cy.Kj'/C֜ӿg'9gjgu8rFEzlK31ջ;}wӳu Dw af00BIk4O;Iֱo&kb.ˌ^mL]E/zw͞x"p6J镻3;Àc ̅mH`sBVaM"T#bFe+@Q CW*PIQRټqc1fڜủ73&7\.9փ [Ϗ5mCMŋg8 Iv1{t_o; ML]dkJYONYt1 g<;J) 8v#``Z8]]޼f"2Ӝ2lc}쎚Ґ }D+jJ: )PLrouӸ)%7WkF}!JMr̈ȁhbp 90 SIfNecv)L8Bt6S 7%y1*/$pSc',2U@FBG\y$Q3`DLn Q*8=6ptr(/E 72~u|Nb籟7Wv]Z*{ ");OANc#cipdp'bc,n5hjلh쓉?Yoֿ?bJ5 ́bA[9SH+3Q6(̀30d:MP`/@_Xv,^&}30 lA&_v19眢hV_?) XJ`-i KBW{I AK@'k fV5"D br/ 1(&M->yL'7fRNhU=*c_d&S-ג,+4rQ3`;3`t]Mb2Gba$3(h0BEIo\&uSrKY4AHg)e2ڳftBp"n 5fMlIF@P0 9![l}"AuI1N? 9D5R ZLWӸ>tpwQX&f<;#FfigT`Fsp,2wvt3:X; A@]`^'-fc$|;/ = T\l5g!UU3?@7T%mX4dLmUQVS379gS5HHCBySYJ8}X LP4T0 $Fs12WEZٙܪct&)ȵ G^#MϿ^{GG3@t!^ +=S1R$p5W7٪ݝތ}߬yp|Vs~Чg::{Y{Nu$i2Er`n,DِLݵ̉< &5kf$B.)E2ǜg-""ؔ DPdGb*ln͊ĤI]Bs&o.0dZ#lZtX-wU5{/_: r6.P;F6}`}׭vown-wϹİwM~|p/߆ap;"'?zIVm3wALón޼/nݺu|/>%Ϗ{Ⴧ{]@ڏ w8ח/_6,rw4殛ͤvU$4wp[7z>lNC]g^-vgO BnC5K٬WF*!7-ZFj rŽ;i nX|9 ]Tw iVXO;8 ;ڶ9H *A5gu46X!"f͈LDYW0 9%a0<}1>N! c216Ɉb,G8Rh #wtO:a#tEx)-1cS03S 둲_2@[_EcTSKl:>+;fhODnx2VNࣗP ?2=,28@V+΢.[! #SfJ8v`y<Ւ#U~hYu||?eׁ?wOrlEu["q&n#Nb2I؀i8*]Ax2Jti@ \A p3bg@8+6 irQ/DTg/^ƾ?yrpiBir]8z ^9 7o0  N[sxxkoГX$V,BF4~*qBuE"PG<=٢꠮ǜd%`f@B5ggV*F]F"LxUCmCU%h(j-Dsu45 @榦H̚3cf_fJ"\E2%!K<~5Db"E]Ηj6ZhEf٢mf^zww?n=mS?|iJadqfvHg')﷝iD]^*Џ>@/RƬUh }f888|Ͽ[˯Y.۪zރÃ>g#uɷÐg\`w~7n<ؿhkۿfGa6{m>zEסI9S`HLv> ZkbFݽáB,$BjEN=")`o>k+B4zoooVUl0$?8r 5njo97MUWu[UIAn d)[Z1FUkjYbRAD@,)|../TFldԡפ t3a"RnJ:-3V!sDpfafba %~\v~uen!; A1שX\ K7TuNX{z:)Z7IA3,qLs4$r`dF7^w#9 %5gmsVj"nj9prXo^8:?曔!@y"_S;'GAXF/LbF`s@r++!AU,=q'2AmT$|bҾ}b^yNf] szvt^;j@pv"VE̱*n\048Pr@\ IUsRAԓ`(TM2u@"Bt'S(2&hTy]HPTYuY 0G"'")['BDDTU5a]79H[b拿I9jow/TϚ#kZveΛ +\c&+3͛#^/gz{u*> ew|p?Y8\]UJtv~~K3x/??9;uG}wyVՋ7o.|/O?W?xfs]狅A:|hB%a<_?6V70p⛔rwTcl)7o=eN])ډ'-Y#q? RTלt!T,u3[#[И0^]?|#UGOA$WgUaШ*ܼi4S S"4"4պ Hl;&7%j3pHIEX Bb2*CDbt myts1.&#r ^h+'c됴kUfXߘ PP"`d7P3s-:lө{,TV6^@U[?25nǴTG/&D0WSёlt2p$BD99^ U,[TtGfw3BA~d^;:?3"70{+#1 _BK14YO|TBQc):EC!3ˬirF4$}N=XbþbH`9{F\hrCBKip0OOOG3x8zEX1I1#bC'gAmYܸIDQ }!!V"&lΆ5 Fj\ۡ@>l>81¬ [ "Y M=#x#0U5յssO)9إ{.23 Ws3US:LU8y$!wGP*K="?/X?Zf"A" gÛ[OcXj C:ݜ4lr3愲{qζڻ>;ޝωxȪs5hwo9~GϾbέ}Ýg_}oA-l^nvyuy|r!m۷o 쮂!F ǫbbϿ~>諯nGG=;9?nhgf}?ݧ ϗǏ?.CuvA<:ˆ!| }\1 TzgX–$@EZn^̚{7mvM>z+k!"e[.L!v{Y C4Q""s6Ӧ&)>f#'ĬZs6ǜ~P/!s],BnĪm۔iHBێ\] BbΎ3(npὮ`cU~FŰGDؤVPJnlT)u Fб:upc vpa0cwtw_LL=?'לGf0q!0K: eDO`O wi`ږ'0H!޾s\PIfu e0۴{lzNݛ.*޺}XDP4Q;o}EJyjb0b#rai7v Uykэ@sB +GPfHZ3 ait0BߩuMDjfI!H51^EIuk !K8@S1 @4k!$c1М؉]#  qD"jYGF!33Vu>8GS! @ 2#_=|!v'yH=1 ^7έ;>AxV]b8YUؽq޾BEﮞ=yq4kdݭ/.wywouuz~|'?Rݫwдumͬ}vG/~@ |rqq\n>/jWT8~V `x/@'m{)x[&GC"YUͳWˆ>v1u ޫfe{MYGhwٌM]vB0&b?h(epo*},Ap2S]1u0lLfnjD(U)<,jI-1/;ٔ W`,tBv ac z!Egu""3yB 4IFb˦qi؍Ԡ"e.QED3v8TEI =!'V-/*؋ y*\&fX \Y͋> cVUC%,Lĝ>7no~C8 $_wH?/l$B{D{}Xl\l 8h9D6a}fK/p2@0zqzB0@NNחFd @Ľ.N~ɐv`b”g{odq #n-BmHEIz鶶i=<L WyX9YEQuдrP[w{=>ηwM6!3@~[@ )9H{;[[ۧW@蝻Qh|h97(#F0pĄXNQ ɳJuـf]JdL 386JDJ|A瘌etK"#2IҔLP#&CBs1C@" }Y5fǿQ.}ŤujvĺMOcLeʝ&=bjQiFRV[3mBWDq6׋M <~={m"/r{d:w^״}RL?j/l_x1v6z{kSUpt߁|ezujutƽ7foZ,NdhqpVIS7)!{WwyM[;dG@ƨ<Eb pЖy7oΏ}:]]3Ķ[/ ]Uf65"eSBD1z6"1BR!ߺd#j)Ffb7UDLuMHe92S,"^RRtN WjBen 洩A74ʖ3oO͹M:l _+ K# k{*C!2a. !̛vYQn@ sy8ԫ߇>u5߽>p xG89<Dٶ}b7Z#r)&5ay`DLfJlӣ7p_^agYgg ^3_ x}+2~C{C |%r˲~>t;D$^XJfFE0HjU5]*59^^ XxZ1UUIhӠfOO{0@5Ǻ$ jt\C!;![l0uf%_aQU@e6JDRR1ЬBo$znҩ#;mcG>I¬d -3r90Vfs.Dc$ONS>Kј@DΒQOs 0##ʳ!pe(% ߾:?.TEBflk@AќcRgMۮq5_^_IYfUW놘Ajpf(/.PlL*H-䃊JB0 "شjRl/n}aL"ň{mO$U$,'t"XD  &K)%I4yA IDAT5@3.v8d|>_,;isIpZ* ށU; $lL,"0̩.E>/e!2s8*w)bot)@ OFM `(a^kD܃w.7o,f8o?`᛹,"!d&UA "EpIP՜cR67 R%7ȅ"DӔ3H,E Q|\4 ?Tb{pq]Mtf"=/rGyuɓ'p=}qrrzWw~Po~_~qu}g5գۇ?[O'xҵwwwx1ɨ=g[[_~L[ۛӯ~*.ub4OX]g'{§mڍ[^e^ǣ _Vիړ 1;;?ZQؘ3'XV)YDőt[[t¨W}'N_bڎsUqZ:fQy1hu/;WVm2]g|Z%zbYVBO&ž8g1&7ίl:"]̴M A*Zg&bP׻Af=Yf4`6551("5N4ea&oNę6|@AVq}k܈ꣷ7@M zL HTR.."D|*DMDAnm!{~}g@jws6z~y}jtp0?boBྨ)лeZ;yD<B }ϽjɌ17)u*BfS-$N (36] !zrqx6Sfmpbl F jĺ-ߙ϶pT??7/^w߾Wˮ |cŤ6-GISB`BmۦUYv6 *ky2j [i۵K*dDRBpKzhRf.rS9D)xD#BFpI%i$`j#G@fbJdLL "3RNS˚\ex4v mjiUE hdF)J&Pմ,uJҡZtE(fyB$br~ *M|1:?>ޞ%S$ͷ}M]|y[_7ۦiFOl6twg27*ڶ'$q{kt]?ӘRD_}~\8R9}b1OnZSU׬C>i(tTM_4]9mllFD?'܆n0޺Ϟ!8:P-0+D0%Xz _H7C  V|& YG73wY? 4|vsysQ5ĸ^, 7vbw9AE!>kKB6id!'0F"(dS>dX_c0ߣz,πwm"k~D{[D3С~ü39̈=G2d@5pyx(;0ƞXo'p4lDFШ$)6D&vmJ$Sumz򳩮WmZ"- $yڛZe5Wm L}px\6xkY^/ʒЀ"2sEE3'0UTB MA! $ 0o50'tI*GM!%g&D:@Qԫ Un c ɘUDO3"1 (jJ%_|O?{9 505PF1X\_*s1,1"MFURE-Ngˤli %Fq̢l?j{W/jcr dU%z.ʺVEy]UA^~'G*!(,%@uݘ)1!;׶ɘ 2FjˁJĈ0OT085i<ٸZ0sO{  : 16ST5#rf1zl a?0`!>im=n$ޓgvL 4KgO;6>Cn;-3y~DϜz窐dn^;: S${3vN`95z z~oS7U%Idl1UtĘR|ӻb={H`߿}uƻ!Zl\:} Է"*\`eowߺ{H+bB~vH4 ZY Mfhgb9=9;}uv䶷v,A Ԫ٬ m@ $@50P@4" NLjscddۣTc3 zzyz|ry:"")(EU MPT+Ɉ:%,:ѴS$e? zTRu(2"X/(Rdo6nx8e`t j9P)SbR1UQI$>1'9erΑd*77yj&$I뚮[KMӠAYj؂q `u{٥ ӮwwѺm>/.Η |WT{g?.u^<7wx|w'ŦvG/ϏuعeogU5Z,ggϦxTեJ74Ib> i{tV}azm4eݬq l9Wb<5Y.d.O^KfҲp!\^uQ$ɤIzrdEU]/ `y|Q^S81h#s ըrEiP!L"xD T#ikUI)bL̒:3j -"tqMB࣐mHCDsҍHnv?fz~ɀp z_f5ԑ)Uqb ,Ƞ+}o8U}u3˱oaramdty=-${Z€ H"̇p$v~<=\Q5IWe3܉(dT[{/k߯b9*FvE!(9=!X40&0S3tĪ@j=f?}+~^pcF7pdY O^n^`]\_sE5HJ-̏&x2M7 Zn&D"$1斘z h]/.@n'B h[Pծ3p uJbOGUe "3{ըǸ=ƶnwff)F42Li[jƈL="9&GL/.gtL$Yc%Ah$x:#v lF (Y `픠hd>$SL j0R rs /?/ƒ?k@nMdo_-oM7#D43UhPDwْWO}zԭחW @VPv]}vjz[|\UMӶ'&rQA%]9Woft:i{w xfIm_ Ξza%wgG~ Kfj hHU5b9 QUP_}/֫uH58U#:;cYooM剮ݍŪ,'MsYέbP@+/lӤ;)\{RǎA"I=)*%&CI2uP003#9₍1xFI1 f 3ŘI)a(ɇ$1y4!|ppyuE K~mΝWoS{ߟW/fPʪY7Q|Q, B ikǸp<'S\-VͶvvW孃O^"흞}ᷧ/~M.@ܹ;*+fxqy6Ƣ,ܹ$]]_6roP~_5u9髝^Lzlr5:>r1nDeQ,o}{W)^%u/Wb!$ ~5!몪(X-WIæk]{#G]C*UeZ~(jMcYm5*r.WNĪqե@̞bctΫZ׊s!NRS7ϻQYDQS_XoMϴЙ^fцfh}#e a@2>)a nsLQ(<3"7Ӄs~s`n8^Ӎ}9ʔi6XhRICᅃH{t60`Rk b[e IDAThw "yw ( 1eٷ*;@ILTij)0aN7@U4g~}.-ߡnso7.'ojF Ei &GX@ (fؼe?`"}E~Ljcw\k#@>SoF@D֪98{~-}㏏_rtuA54mSU9CtuzܵkIRn57xLwd!dQU2h,R;AѶF¦kW)*93^Tb25ELqK!{IQ9S ) #!]ԭjm&b)Ra>w]+gǪ%G0 4Tx 0Bj L{)%QC$$IL98Қ)!vk6yPQ1:ʏo}YvޅO}x{kSquccmׯ^}?;xM5o76g˲(GeJG*xBujb}ەu]L̍}H@t2 W#lqt6}WLwr\t֭;W]Q9v?G`EE^-:'=>}J=lck=_}9o]Ӣuupm\^]#l0rq8V6T .-^!e"i;έPr5.n]pHY֎0&)HFLaTzVEVdXŧ}u4mhI%ƈ]rλfs KTyGjQ:9EB*EifeʢXm X߼|ifD e栖/"7,˻a ,3B)Y&KrxU1w)9"*u`v={ fxݘ#W!F]"@@ \pD@rf9I?&3^$V:#P@9PU ;0 #d"Lג: `_MW>^|WQٜA\ILjݘ*(nl4 8)yxbځ/]jkH5 33c1FRrdXZCb{PF{Ŕ ׃є":& JS|ʥ!gB!#210AQTɹHRU^7mfJb$1uIs,& &Œ,TXDI$>CɊ>@HHQMs;0Cb*F4&E^W|(/ON?:<::;f&CwrrZyrzp{gZ1X#1kw*b19lcmtA5}}{E5~pۇ8ǣH+_ׯ^<ؘ7{{!xck{<'sM7_틈ggI|'ggggt:ݹ}A(5j}΃ʽ;r>}k#![{x>ipb$`2U/;hֽdu2"6xT6ejkl6h<*Q WD\\6h1N jzra:zr\6 Ms&*HhsS ޵];H <iITRLը2в̤R#"{6]* 9)[o!^ {*W#[ Rb?oAb6#VʂsLY[]tO Z GwP6;MȄ8WJo3339>Z.܃~/];O)C@D KoPxso-g"XBDb"fϔJ~_z' t"WȆS(L"W$7ylV@l2D Ϊn$tc~y4n4k, 1F@"eyqy &Ƽ}9°躧/_Y뮻nbqg{w?{v$x:]7͖' )4נP0GIёHʢ@ YŠ-bmY[r٪f<fDl1` cJƄCVU5J Rl@5E"$I`&H\ySdBpX: Jfʉ<T d(a2$,_G5l2U3et299;{՛Eݜ5u&e9zv9?y 666rsyŴÏomo"9e޹=ϘYDtW'Z&ou[3|VSדd6ՋEYz ҇Zf-A$FUu}KĨK:ں8?-aRjGE)!&WiuswE2^=ZG\kԖ8S>:{xG 0 EpX1ibFb@8bX3|1XAΣ/s^Z&LPI@Z$  y䐜Y+sp^}@(μ8Tu?G2+Cr[CD=}f[.QU}萐$t<޼zӶ! *1 E59\\}+unb<9}8,O/.~g|p7_TJ?O_!VbXOb:3N3_?9?MwTdg?ߋ觟|zvz^ףM,wwѝxKw={VW]^9hw>~o^|/N˛fu/DlYN!Wz}yuνɨk;Ν;eU߻{()!tyuU6)ׯ_WM嗿8;{UyΝVVd:Ӫ{ރ]4翮\D]d+-16l 1̨ LgI׮0*JTeBeS`h uI"2m5e*&nM]i o u(J# }u~DXUe&0]BG3dfDUYl%!|3ݹ*J"ƭ9$[m[*& ø1`>Et-0޲Ö˂ύ?[]4ncr_M`=Lp{5UC?m",-۾- BhEIno= lpHh0 fG(eBE3ղ=6Ө 9O?Sށw돹_^ -o}akbo|/^=oUbLQDEљ1g.S^TƐ9z8^5qwvkʺ;;N"G 9 =8((3=>>&ɴF`^-1#?jԤb".tQPsrq~\^G7wBD_xǯ%Ã;HBY.ӫh4n6|G>|ElgKoN{}y췫]2_O/ FW=o4P.U%]fș9x[fz{wKRZs+1- 3ַRBDDbݞNP':a#fQ$e(̀@Hl"I"߻\6ohGo~~*mDbmmZU U5{DADқp[D[|hf7uUV|Ч둴)XTUSQ¹zLI3D" _eY!bJ2֛.{0{rl"i篘 5-к_CKq<߯yvlbg?0"r UCǎlŇ4 4Hŀ`_Ykp];p̈TtQn&s- 1_k~.D;`e6\465o -[lA`1BpD1I6@3Bs eR&-%uYlTC?nwu~/ޢ?Q%'Poowذ#_C>*\D\n֞?oyr"fd(|AĪh]ab %#&Y55i ٮSsEuJYڨjȊ 1ZV#4%z֪*!9xO=cNSE&P1U yMljHfdH*p\8•H#%GTŨ=|ܙL?j\iLԯ%Y3I͋hե>& BbrPe }Քͦ,$Vf7+uk&T4(@bV 2W޳h,%5ǎnͺ3타)3{D1ƞcdYx ه\^]eN~WB݀)5Ti @lW+,뽃ö] $P9Ǘ!jRX̀9 giT,&;)0 1"(Sׂ&TWPII`FSs{0c榪D'd"%'^//=; Qh8퀈l [#r՞Z %EK`Z֧iq;[j !]R߇mV}̅^RL`ʤ f x- `@Uf$f bHŒ%F!I*P/ ̊H`uhBD޹»?{x0mw3LhuQpU?f7eS7)j݌GѸ*MT*+pu=>_\.)vP{0+_^I\.o޼Z.WkIߨ? \C`Eׅ>FGըGi1_;@HWqӀUp\*ԕJza~3?%5߼'''g!l% p]7H "ڪUUlڔbӌgi{G)JAD]߇S"6m\:ePAfme=L]7!7rOn̔7#*lfp!pH}4{+?Ѡ@pTxF .~ϳ:oχAW-3mf j%Yw@͒Bm, dA5"ݢ`ME`* QbLRLhF] Ԕ۹?m<օ/7 F,ID9`j=@U&жAr$Wb.{P)UL"Pa.vFjD&iUtٶA$*T7C=0lCe?Ά۳D|aU (g3i{XAr>a^sTS3ީ"`/Tzr)WR]1D(IJcGTBȶ'+6IvX3&jT@K,&L# %`^A hOPqчRҔQ %S R4ᢜLg{{!uq•ɤI=pZ-#QcvUѓ'?<:?=(>|ūNN5w_Ngf:WpAInEq98D0?츏iËӳf4~G1IU? mFj}5 vu]L'|/~|9GMS?;EoFggg̴7;~Af܅Txw lgߧ>\X/o~]o\5U?{pw~}~viFVՎey]P6>WVe>'Ԡ3RUy(}p1y"mqn$!h'g{㝑+ ڬ>|r}ui%&zӶqcƪc@f%˲(W#]<;0dZ˔V$;99d jHfYy=ca0n &ҭsf [aqm-sm Rmh|[03!NcM3[coUBeUF23$3˃#@[#dl'Q!!UAUfm43U-S4L"9w;GyɁO} zߜnEF03 9 bH"D1K0Fa( HPL=xirn1H.B-W7"MYL.kLZrT;ӗ'`/}͖iL}N(Jwf0lڃ6ѽMۂ$STfO5;RA*G@"0 0}[9I[M a{f&4]J\e(ԛf=R^`gLjh@ lʔMA d 9"3.` oSKbXS(QYz1QUǶu:J?|qG5l}hg;ޡjZ_ p#!!;&皒ΕK*'W Вs΋ 3__-eՌೇE7g/ zd2} >F+j|IS9>߿3q]5~tuY=yٳ_ݝ_^Gz}g_w˛7!R5~ dnD)߻8I?tgѨGhnjg~ջVx\ư\iIlӶt:n6M}ץ>ԕc05u6}oMQYJsPнt:-l$m7Ab~/ٱ"rgw}zyC5W 0kryo_\~_mUTM8:|qY֣^Q6wܝ͛7,EԍG{wbrw=r1#]^tATe$HnQ=~{tiRAig{c:~rogx]T`'EՌHUӌTWnVg_Y\3{ 6)$Tc,"3##G#Fnۍs\UYq!1%91wr2qSx_dںbXLؑ*t]`HPUxD7Nk;kus.onpggwE]UׅfH fFqH Eت̐ȶ0kn~1!ӁkUm!3jy#5H lΆ_BY`9GķvJD" -Sm2'lhlS[L:ڀ#~u gB[Cٲ 0ܿ)#FМQI-1YI3j$ǜwҀ?y{O٭_l m˶C 3'Ot*ý]$BŁQ{t ߻g{zЖ\3`(\Ն0vV@4yZ@"`#4۞0ج7 **@-mqS7bqN&R=wo9_;wÏ~ݫ bN)$?SluwLZ6QqSDrw%ZZ c6O@&f,VhcE3&,RɡÜLjED(`(=QfT͜cIDM̳CBSҤHЈ ejG>`2F@q]Ue  r@1n/_>WPg$A狥c*招z3/_?}}՛W9=|켋h4i  @sߛ콧Vo$1& }TNT4?)mGO\AVUzL&3fWWݩ, XίDϼso_ޝgWmONbLg׿o:J>x\588w~y}czLauӍ/ Fwf/y۶bEY]+VELuow U1Ǯ(;(K0xUuY:rn梸uY.VO>rB!Rnr v©*U$B#"3pjF305>4͸djq*0y@ Ĕ9횷CHU偌mlKzJh eeG q9DEp9F~oNL ݺd?;|]x n{ťǠ{Kl;fU7j?D0pmqp>p#$33Fa8HgrC^ :զfޕ@sDW]߭w[*/?Έ-?}ᛗ 2A0spYfnqK~ڽ\DC3`ا_]751|YПY7*vq~Zt2?~lDx7/fWg,oG\!F_jO?W_~>zכk JaUW}UU/-FP(h Fu%"@!cE+B%,zfrEi*}p#jrM7_,n7?;>9Bɹ2[JB@yb2S< L&>f\uUwuuBeӜ\gcgPdRb$򤂙 !!oہ˽0OdFT>?2EvBֶ9*4 hwUeY8 v+]ۋ'؀!ٖl(CcCk3ʯxi= `e߆%G g@ױ7 -FHF$f ԇ#BHILDȑJrEOcW`ֻ?7prd~ݳ^|1;ܻwtt!qND_W^ }Zey@80PpQxk˗`[5pnۢP"6 @0-XTaI 6F%HpϞ)`;ǞL r2!s Lf 1>>zr}IeV:%Ed.'tD;w*4hԡĤbD$GIIh5( )"3=s@4#c23&6IL# O/&dN!HL߅J(`)ݽ;]LǓ|u}L `o6JjD]-kB>[-] DDTT}Q ;W>,@5^†-wwIw/Tʽggo/Ooοx6` ч?ׯ_޽yWgx:ƴݗ߶Ztw?gvmJoN_` 77lV?UM<ٹÅ{}¹{zu(]PU{uIק )H f2sg.&-m?O5s(I"u^;Qʘ8X(z43%Ҫ,bZwٝHXtt hY* \#jLn&5sWb_b2GYp&sf:F2B֙a5CA:͜%pP!zh`XÁ$D-4/ J IDATvLg (^lV>d36X 02k&i\⼡h$xnݐ{L#h;-y]6ȟ7$|]rmر($D<f *\6ͳzAE{V܂Ww{避ʟ@7@)% $]zZPAD(ѽ6 k@Um׬Fx4}uLr3У0AB̾d-͛xT=ﯗ7jgoj n>>~4z}x"|S0ݯoڙVU9Mp6Eb9 |a,.`4lZ՞ e٬Ȩn%YU徏E^NU rrrf}#^^xhBl2Ak񤉶Y-WXsF̗",cdC?*2?W+ʦjl:vٛgL6h6! " 0T#mM-;oS+uiIbr̜Q܍ s϶oE ``ȼ006JU;9@a(Ì(ٻ3nfp':@+kVGm' 4"1S5"3FcG]AYb9"Y.f?Oi򛯃sLn(Y E BЛ!DѮ< C4;PH>,"h2'WEhHK?`AwgβiJL$H `g 0`;gM8N!!  0kg,y*R4PU0ŴˀS0!FS|;հ6c{37}P@z8?`1(ØLYK!OeXbLgk_X9rQ0fCXxX LDP@c T DeuIna IFc!ch9;g(D} bVF Thިf}|fz{5EųO_gCh䋛f2O&l<.jgWfy9WWؙN=7>r8Fm{Sy6/sFUv|4~U0'Σg=Xכ.G/^8۬o_/~pr;G.F'Ηf܉Wl2޽wzO$v뾫 ?vt#ebD>}f2] }ͮro|VWjL jܛڸ*)(RCTng.Cl:r狼*DPѨL =cT6Gg/9>)$2(fM۞ ;7]&󛛛ƌLI}FCupRMY<ږ6$J/)!i:5%[_r3{7fVNSLH)%A@N[*1>ffA!!`G6̝ 6L\%3q4-?$U& 6@C|O2$!P@C X+&%191Dpue@{1rT}tQ*E8;B $_ 3?ZzMϬ%Hi!yNHiDLj;S)BC0l4 5(@߁& 2)h P"@D jl1 @p˂ỡ 1YOƓi>?wlġ'B뺆Բ-<, 1Qˀw駅~*@͘ e*;8e'$޹i#L5b}]ӵ=jQ9ڶ&`e }4҇ Nb״40u)X18TSAFfDD=8R$5QDp':̈]@:@`)C%񾌧3}* ` H! 6& F7_Y/{prȳMt1z\}ɧ?x;Ϗߞ_`p6˼oۆGTs ]_X߾Y/.BZv|9juo_iE+ 7IL$ϫlRŏi}}՗_~s ׫lo2c>ԀYG,E>ڙo˫IӇ>!۳x\fGǏ.on/a;PbrY^9{qVxWYu-F{R_wbpY ]?c;[hh&!HTD%hmĮ%33O?<.l h+!Smtd|DP iխyb-+J˟?8z~r$pT*"f^WF}wTXU [*)MwԎx78&gsQ sr\Ynz5)1t4\^a=eGO~rMӬu|99l˛ۛGݿу^`GGfӽ'r^<Ư^~}k G?}c9ڦ{>V'O>"_JTBN?|UO>Ջz{Rg&lsfu㓏bݣ%+@E]f؊i7-Z֚F̜3NbdD~zBjБwȊ]kMۇN&Bd򻻻*)1}xY4mV#B*z IR콱B4SB L4"1'^MR"6X79#xGyNw;3ؒJ!=FUynIQA&ubqnym#OHF# ԳY̢ jDH a#1%nDe> Z>O!w{mzͳ=#:0P "UL,#TTD  @[U({CeETzwG&`X=!;v=j |Y>xgVi]/A5Ɍ12;mo}a6c`0}lzH泬!򄌙i`S+bIh!լdGH&:՚rr@2k[ p2֛{']]{LTcaRK쪖d `QL!0r>B F621:f"$dd4bK|Hbj*$jnj*yB/n>iMѤmÝݶnB LJGqYT/߼ywYenYw]|pPYYȌY滺 ҋqYvc|qpXhԅ~պ ƻrsr}PW.f9veP9(O?hg3~<݋"/noףjуj?zqq;<|0]=˲իo.;MӋ7?y3x<~{tt׷77^^^}?9F*EU(gŜbznV`ZEmBJ#첼18٘ H̳IQ$c27V qg}i(:N۾!p5-ǩWtrދD$!Y]7ƨ^LS s) ih"^ۦ򀉨D!U-LhDmXSD.3q"rn :wG8]ͶW[P-!ӫ%Jֶq ;FPZ%ށ?HtoJS2"iL @v!"g59B>OC?>^r%~#ٳzDBDDTDMEӰH}/B^0Z 0(ց9pI^3p YeBzGDpÛXoƻ^ nIAwC8ŀGI4߹Y`  u; @Z8Dsԛ"B2NI%"BӝKd:u{Z b[`PmS'׫8T]7˫`}C*U兘t!ա KYH(@54*V#:"H322+@]YN3Iͺg&8|Cn^}\?zw>?:8ꗿ̜_óP k5ȼ/ۙMc51E碜gϞ]| 4X}tU_xϖi+Wob>MsmK~WzSdE|X\Fl68T6uXn?_GYg|19<8:x>b]o?~{u9(ϼ*4~]՛_+j41v!6qshuߢ(flx\a# D:G"a&qv{Hb1F `Q5~@4y曦}ߦ|\,AbQUbb $ t\glYzby6"Na(9*r0cLQdHlS1d):}Ǐ?Zo6o˳7o^fh<힝߻w<.~YƟ~EYoރ9r\M g8+vj%": ׅ j`c2cҒ1Z"X =Pj E! "%QR1I,`mf]W7MsDۙ~7G''?b>fYʋ|{G>n65uejLM9"V2=UQr:/?<NBgO46۳M7Ȱiulvyy}qycٙ߼~vq{|x"1J6#зoM>~ůo~ŏOxV|4DGu3F//my^7o^?>z,RѠQ=]jYB.#}Ӷ]d2EY+U >:Z,WL$%#Jۇ b]SdsE!AR!7¶(2 ,p&̡2*f i=Lٸn )_m4\:33c{GéSh0&L]λ;)ɹ34{;h? Вw;xgL6@RHߝ tȻ8h̬ Y0`gs9 |{aWFmMhwnLU1ffridl IDAT4 }j .$-0PwQ&ĆHC^`YZ!t-Z4(F.Cy# CYB@Ac0)t(j@Qй"&=t[t { E5Ȓ4:m2s18{6XC,\NACeEyl6jYe7/a!.b-1tyUĢ- r_ik,DA jL C<.v)Gȑ g}+dFNͅ{aPU;"Ԙ(1QVЏG*m9_dߝo֫ohtvՅfj{quY^\.߬MF"LL̩U3UCgž;ӷ/~.>uQVM42w"m!e'LpBc|X1tT?_~ɣ'O+QqڶoGenV݃jdwrӺwN~7߿~Z}ltkvU^4}F}ѽӦ8ݜЏ۫7yF\nӶh<{qvU6_B%6QI"uQۆv厫^j$G ƸXvG#4CfgUAzs_׫o|hbjyY-noY b1I>G`0U1,x#jHYT %1sԄ6R h.هDh*(3z$( <  ӿbbh&#?TDsoR[ap.M`7 5_03Y{ǻ(0ٝ߳`DJ2`)%rBb?n $5PB) bЀL0'0Ө PQX5:wODwaQ?cw'<}{ vY,z0Bv7G@ fx!\e M8Srrjk!&!ƭmM $B`bPҦ3B=y2/"~3эAPӗ囋[V' ` AA v~jی`2D@xabjz5CΕEwکX׎r2[6u]cY/=].sԩ0q45'3MR,F,*@v``h%i dL" )#;4k Ե½ !9!JE 1*PPeU͜1Vz*b$v d`Iv ^QYNIԌݿ{{i뾍E5}wuuvyc0ٙOg/on.B]o<|g_"Q5*M]1(f}}58=t_eׯ_e}Ѩԫjh;driZNcl6ce/^Fk>SDoug>C?IW&ͱ*U^ӗ/_W"޾ɟmeX]{w _gׯ}lv4F|>^nwo.MxBQzuO=x+mݽ4$~UTA^ɸA֝4ukc*yM,2M۶(y'?۟}U97s4} CDrP-f EF*pV-T005Cބ33'jfldp'-|zk`&`&Q m{YtGTapd/ )Zj;{d:&cfIhߪIH5py*ڊi='0ۆٽZ4df)pfR# ý'$"uD]r1SCdU1cښoÇaA2h[^AH" x:p^` }29n|Q3ܞ{aׁw@ xb!@V JKy9h|x|jtJbF'GG_yG잼e_Lb霟v.GW/L{"lB.ppx/mz!W^u{;{'sw2{ճW߿xv<!?:=elcv/_rGivq4∙IԜ˙\۶iZ0Yy̰nBr(˜T$s,7HH͈w.//T""{54EL jLlf@(!%ם4(hFB&b AڀDY43z3p C[0{;ci$yѝ'3޳q౑m0n u[A/ aoЛD$φǸPu -y4" `L`$  gs̔X/?L~X?}{}~# (\B0( `h!&> [7) S-fy1Ao3B D"1/ȈX:&8ϟ<ޝquA__ޒ*eVա~d:NƩywVOW"we$V+,s'V;ǹpe1w;v̞HD#JAU"X_7&QŨ65M5Mӥ5M+tA@+OYDF2&`jiƦp6@I(OaLiѺ3Q" bLG@AUETMT(QCk71}" LƓ+BlhzLrTf1O~CS6ֵ=9D|U1y1XQdD$k۾Sgu]{t/>irS7ȮM^.^,=zj6ys4zO~ZEU@]o6jΓc&dg_e"eǓxp\TjR.?~O>yG={]eYOEadGDTV+DІʶBxQTGR^%nT]rϥF&3M?Sv 5rU (29&ǘgy2fIr7;PCJ,D-hwLw+{Q|wW;ܗKm(u !%]QVV:8 DKtm( OsߎQj`'P1&W(|cޥ>cf>课M >` Q3]*zݲ:dETE$‡ 1Esr`A,л5`0<@ ShquWoTUɸi朁2P"R7 1Ƙ,h4@ͫ [aȱ #!;@#B|rܵ]1tf$J!BjA40Ns5e:!F3"բj@jT&%$6;&hE2?Uԣj<?fٛOW۷wGQq䨮7A4M. ɷH1y"xiXon/'ӃGOl6;P1d!^]߼=?7TDP߼ysp_y(FٴmUUWO|eySo̭6'Fo_YPfE,6uU׫h'_ r蚯t2D?'2oFTڶ)͛|w飯jѷ_/zu{d\N&sܖ4Gٛomb˘{GgfI B`+r*n wHiU01E] "eYxt4W ;3@@&VQXԭC gz|"0@0ΉPtՌSUTNn&i߉-x)"l[dNJ! z>?=W:n) bϲ0#y. +] 5X4'߽%$d5AtLCxnv[mn쁶v };H43H"0E31Up6}%ARsD^F}GpWxApMJdXlU&`g9ƾOkU$gI5] Z痗U?Ycnv86D6M?-u,8e6[@@0!^*ȁaƠ8Z%z:#f[1FOPdBzQE05#f%bgPbJ$5h]}UUyMh\3BH1r}߿|n6!z^׿:>8݋Q8=>5)r\\,;OQẶj5L Fe?N_'||Zݻ?5_+j]_ruz|v/f3绾ެѿ/ߞM>fپs.Pyl..1UA3Gb9Ο~zuqurmgoڶ9=};}wʱeexxLU`x2UJ- 7:ƨδTƩu 12SEgn殕>cM9$ԟK;t"A7On׷K2JccސuZssҨ-=7$+]kJ;Co mt'$8O%vF[` "0uw$DE@U`H쓷Ӭ?k}AҁD UfHw|ht]tT9 1P0)(R905g΁c`N=-'V$QQр1:HrMcȐ^@$1,N)Yd AKrG:XP9$%au׌GPnpnVkZ *0#Fc۵0yoՂaU51aF)bIɐaXLD9B2{+Une FfQ()hH+6; &D}VKb'[We Cbp}s;[1˫"(mӆ]C(B;vNū󋦭2^zqYwp~4j0('{/_>W7Ǐ?xRKDD'Bg~kks_ |W/OjyWx7;kW8\ԎOUu]흲̖whѻ84uvD$ח/}{wb0˗gM,>CRGr8rڮo/_469Pߟ! sU1s!y궚Ljeh8.,YXD!ŸȋzxgϾ (zVQ :Qf=xI "Za1eUtuhDePR0=tSjfjB9v]U$ dc7CB0Ϝwh$vui˚N$we4Uo3'~?#W3DL9tbltpͭ-nCÈɇaqgZ NI>4l.AރvY'C;oi߷돺5@Hj=C|rTDԒ1$g윜#h ivʿ 3P瓒Q# ;l`Vl}&v#)dYǫ:%QfK4$,dUWAWۺȭA Tv6DGv9oԝy!núY?ĉɘy晐*sTM٤i0wn\F n6G$cS4F4$ ##$GX릉d*4,PG uD fHN șޓ1(eDD@ DE~ "$ȑ挌%#YyB>#!Yբs4,'_LG$;?lN˲oz=r~z~ӽjܚ9V뵈 &e.VMU5r{j~Ilr?Lv}ho_^Tp2ޚwOݽx%/B<~ v={R/֫V{ r~~w?nsW? hf$WH٣GN'_˲Ai|9'mM0g p:f>.6M i:Ɲq~}u+< ˼(hPx:hۘDg,/U(UeV`JU:<|2bфi$3##5%FʘV˹b"-(),!*ƔKɑȀ Hli }I`H]/bʮf5!dJ];M 1B9z",g8P NARu2G}.}ZQ4d\ Znxzd f798ӵ4 Þ"2$^5um @UKynbts ]? 7&-`c-DMeM>soT!FvlM} ^ `e&}?/w/@ I9R?\RG ^"bU'R y9,KtHp V\ IDAT]5 #tɿhU[kti֏ Ơb-p#Bcƚs tS"LfLTS^8T}FLDAgY>(:@F63Ml\V~ISWfNÂ`G=Α3wy髛;~:/q9؛n1QP]Jƃtm3Cݮzy[EUxjw57g?jeۗj`FΗ vvrzUHVU\Ǫ"#|nVތ=zndj, (rWW53Vdj~U(cfH m|HgUUR*CBtfE'E rL, 6m<H/!m,Dt{Slo. إX2bdp#v)Mzk:b^^0fnICOSɫQ L)Aw7H?z՞0Ժ8MUu`j~=`lrIM@DR(N$iL)91EQ$! 2CT ]{ ޮ?A&e Vߛ4SH4,(RU)WS6HW_*ft:a9c@؂+7 d]sD e֟@2$A5h,jBDi 0* tP҇I o7t1 ð(,WUTfL[Ѥw'pG/!֪:i*i46 aVf5!Y+%FE&@PcF&BB@%4 A,9Ȉ18L5u T0'$oEqL3r4؛!@lD -y FxZ-/74ZQh4|5_,iۦghj~wqs{ xWWϾ{!F&"sn4(C*WL?>__=%' A>gAz9_ip8mCU@gQІoVm!|_}Gxnc?d:W//_ B[xqm[>}Zh{{ouX]\_v9{?hbQQrX.wy>.<2Lʶ <:99$kf8[TP8( h LMYMbZey~vz6l8"Bm`eNXUE!3cSm^@Di 2L7%IS.r (f &~" nOWTEQ 65JidK,2y Fro_o!q W8!a( 9M!Zf:sZچm*lm;s-)}o'6k"0J‚R $$CV4~SY2I7I7{oX/IA޼B^vŒnnC BY@`u}0\szYpr~I,3@ o2@F~k|aU jTԆG0\]&b) 132b ┆* QX <̦bO"&c_)F"0"*9` "U8tt~uã{X(ЊɽE5ZgfN׭@"x}=yR}&u0{cbVw v" K"f`b2-F5bud#j 8 J )D vH !7M0fO>V)Ž _ 嫗U]ZA@h8~{~ݽQ9jB(Ggϟf8=J֒>sM#}4T_T,=}uO_~j!ԵGuqH YWyj ''A9 b˯t8ޚ4]yNOxb{qu޶2kEQelW}}_?g?=9EԛˌR`{v껋jH1jYU Vo^C[ 7*ղ{jM-b;1@@0ZE1^1e=dF08ϲۭH<isQ@T\j˱cUsoۘ"βijf膃+UTi645 1YC&lJ=DfbDhQa29 όԐb\=3; Idfmx!{nRsKE2Ҧ=R /??ޡvc1f}'2UM+&Cw1Tƒfx3`!FDLĀ,QTTQDXrxUDs)_M?]opΩZ pm.mz `Ron;,E&t BL`8}(= hC@Ow Q°TUB;dp @}:1rE)l jUp\FowyL}w "h`Y.qH g:n:xS(A oVԁkcD]s@Kcﯮo;~w8,3M*j1 b ✳UD&jFj(Q:gj6gNjzI{~E5c8Djd@qQu4C(3r5 !D#!Z{Y445$X7)!30PxdIYdyY9!>hb ǟ,wͯeLُ?-.fWׇ;Qqq}}qqnλݝwpo_~WyF?zFArzPH=ݮ]1//.ncsƦ|wPU% vl6VU|_sfAZgMhB4Qjr5o;w7WG~wH<0_ӰM}}GWgGr1_YTnoFE9ͯΟ_ݽ^|x2b}w: FŘq9ukyZL٠7cUnTY9鼑Xtr7_f΋4Gf u=+YDu|^8 8rmobCJIc23F9GHhX @29 @j@ 3K&fb[%{BM0$ӄpYUS-b71DY7aS6Mt*V]8 &X$+ J'-ԺڕkR4 Ⱥfdztj @E=oU și{BxR0 TEmAQ5NQH1,%V^NvX֝cnbb}朋R#RGY@Su>%D?UMD $Kyư\u1@j(Ϡ ewO/Z<&y@L" 3, Zu ki ;$J;;eS`F` h&e/ng.3.raQ^.>]WHytڊEU(Lrёt`2295P!3"# yD'1`CL8F#v%wPc!3 2P@}yFsADDLAɣ&ӝمش6U`r;|P};<Փzu||\u9,rvp8 D^]kCѪy9Qs8'_W&(Y =^.^Y.Ϝ?_yQ jOA65{?!4|qGY }=8>xNO` 30.|,g/4,"'>=b;y g;In/5G&y[e9*#C.ˠBs;ז߮UXLf>Eiw&uY_[! `@g!*  LNM1afqޫjBi(Y1:}u#!M: {VB'E$Fl;>UM &Ɣׁ]m3̌4)``&}͑`o`\S*_ȾͶaӌ asY:-b0 n(fX,")7%Uv#UD$ !)v&#)"v]?4M 4|U1'3IӀ:'P0ԚH/&1 H# oYҁg0Bܐ& ,I[r4ZUŌQLM 9$ !ZzGCUka'0wGƄq|Eb,ϼ G8L0d<,Gd\/f fYn!Ŵi%Z4Ct H P@ Md0%N6sL G"SP0210G-D d`&:FUET? (GHt<?~hJimVr8x52yӶ'^1ww˥.7z]Ga\lƫղ3ȑYY1V6!y6DtH<[Vdh^-WY:{ۋū2?[.UUݿwAU_<l誺booTz~4U g~}njjMK+@u]|t|]xM;7je#Z޼::߮n-L44UQY1$+艘T&w}9fd8DdVaM#s!(q4*U|YEEP1yBΛiY:ٓ/C,s5A@DdffclT>z%`dFiIHb`̱% Ftco)Hs7O3̏#%1L<=7N(][q=7U9q8fƤ@z/h:[mqaOC*KT鍔}!!7 ]O8!eN4u[obofR99f,*jTҁHtzD6v|ɽu~ޮO6R8@*5m>"/ϞJz| @4d{ 젍` &[G\z:6lB T1{XoK EryJTJtTѠaP P13$>@ ؠ uJ"jBPbϘ5izGNݹ&BD }w;0Rq;c0"E0VMEU0mփWDBАtkk8Y-%`j̀̀r[ Qs'LHLӐkYdT$|r>s9J DMUJe"!w(Z@#:ODw9#\8 bhuS+P9U}򓽭iw?чn1G`Y\_x9]5uմ㭃r=UG3V!݇E=.կ.O(T-[&y5bXN~_ bX a U>:>>~ӏ?e |d:9;{U]f96 Wߕq>槃aifhou.Ս0IM-ŌX l{<63Gh4Rжa]U1nYiPGaJPQ`P6miy ZʃG>Q T8fQ!&0C쮦6j.  "N^feɂkS"*X =;3@FTK1v)4L`5M nfwE;dСu»z+=rwQO@7!*1w@ $5@3#䍢:`ONϐt4z(m/CD1UQSuaf@ 91Tviw,b\D @5E~okOn޿!L cXW $F 0<6TI0 b]O.٠uV) Uc\iw40 `BYgb軉 #9mUVz6C3G;k@DQQNa,"{jlYnnB 1 QU5HHfhN86vP3`- }l[WQg1b2exn,A¢,5 1F,ݻȌI E0< ILkN$Ѐ(eTG-sv4ϣ 8"`1"'64"$'b̘9`]Wcz1]4u|NF9aFq??yOu{\~7G{{w?eQ5[xMӊmjOT ^U-}Z@Ѩxyv>3/?j.AEѰr#ϊVl-泜Cm E1[ܶm=ӟFO!|vv}1NyGտxruyϯ :&*f"2T3džovr8ry5N1Mp-b9V6$B4Ahj GUY2{U&oCF"\QE0J1BTJ1` 9=T!f@DnC1U2n@""z `@3 -u5_Ɠ&V+c /<99㻻4E8_-/y~s;>Y/w!3C= GÝnogtAmߣ\4Uiv5NG%6ӦY 6QYpv *돟 IDAT u"˯.>:[:eۆܻɫSv;zvwyy=;]%ϋG 8 4>8NoN N]@w|6ɨZ@T|D䳺87ٞݡHQ:P-fQTd0Z6M zgk b41!Wu 6H((9l[!y/w/P؜s/W;DKF*HL7*QN4BwuM5FRDRU"&bE40$U4U@5aHvf&@߂K鿊HfI H HT")&Q:#'`؉I7$8ʽ4^(ba@{uv! &^c7?ٿN6fD̊BЬzE ,",%$v2""]oiyӾ}7Xe?2Gb`Z:S%08a*<3QTCu="6zn㈓x2e8߁EQ@BiEUEE fcNIbb FD"ҝnUj5P.ֿÞޜR"`׵<ӗpc^ IɈhJ uV@HHj$. [еUSe>w;ڹjw4!45jADAU,}Z?"# 0y&s Q!` UУ1FڮaQ,":4.4riJS`B;3Arz4mStEԆ~_ >owkERw"gɓ/i2ON/GGrv@jʳ!"}<]|Qշ.뫢,y̲bhȃz{/[Gܤu!"+ GgO=hp]b^W;PG{zҶ{Gǣ>1|/'\\\mM˛'}=>wߌ[? >*ʽx{xg{߬^ǫ;?Ÿ(Gޭg/ *DȎ&bk:];^-y0('Q HDR]mlC`27M6OHA Se1dhjP[W!,+ c;- 2 i/C3VDDd %dl}4d7!hAvyhػ#"w8!9eYGLc .4`P`& 7|i.`oZ痖Y׽"ܺ3#HȰ9 9?Hv֟毣쵋R~[U1 @U3Y `@%Y*ii#{nwaNl-Bs#.@01@l^B\PME2C͘TLUM|1kRd`1_mâAc)D$""ÔqHPETQPCEˣkpӬ[kQТY*D⤼N#1DPVNQOHHIJc1zTh &ff sDlHbʄf7hH` FLeȡ)8"!zNO_}Wv@AQzt|,*x|g_~\v7ow__Nӗ/_>!-x 0tb0nK%EL9a\lMPU_j Atw.N޽?:9䓿tY6pk2xz^OWW'|1{b; 4ϼNwv^zRUO~ݯ\> csm3c[LgU^|w{z*Es;zYd`sye~Eg{`9!k:6rPѪjj}e9cD%!""v<H8<|I ΫQYv\wbg˼mWWuIɞ1l+FYHIU^{39V5D-3rtFGUm䜢1d}B9弜O-4ob 2],ݍJX1bp\/nqJQE ɳ9%"F ͽn'Q ֒MYh7fϲbq3f$0rB¡a7Jkm7D3 >IoѾ#v[_+Gupc4.td/ߺ2R[%Ԭ4w# K:;JA6ѶݱСC Gz{9?vϾB+Ф䦈Zڨ^ 3xQɕ-ڋ(0%e1C0A TZu\0G/{;9|koU:"zk9wySZB֩L0Z۶]y^Gm^kh -/ݤHd H% I",6]lonUYw׷>2&fr F@K ! ;d0w@CGمQ źr_52 ba)#;+#g+ D 1H,5nf4#,4T0GTZonnlWO܆0Z6/..z<ߜ_"x}kON^$9[,fy~q` PV }Gt_}Žf/}Ʉ;-{$ Ŝ`4+ySr?!Tѳ|ǯo}uu׋&t:ki7p8Wg/FÝ1rpz18|{`a{wg_[T_^Nflcܹ}w>;!H\߽.<ڞ/a<./ͽp 6ƃV)Cp6Ƹ7zj(%LUF1V9e m`4㍓7BB )Z yybxR$1I RX~¿+XaHܥ@-.Tw,3vx[R"fp5tNcsZVnpB V#vWGR#r X34$,`Bm{/Biw4 @p,;؇b5b)J3g&&tl @LMi;IՄf-ε9RpOwho=_7B$Ftw:^ JЬo%ʉ$Ft0ּMEyPUE*Qq}u4_{&h4A&q,Y9eQs6J1! S1Z>/q%vSn%4Ϻ|" KX(J`$gI"(V8@AnmZMenچas}"0m "Ad Pc0w%$ba`.fYZˋ120u0w5"*rc49,tG.f֪;pVlHa'A] bee5 LfVL^__?:~]a&<djo.tښ^]]sB&|m2b8{W9.:X .Lѭ흃C~M/ɓx>OFG; rUFõhnZ=ظ8|Wyq~#9|_W|%գ'=WQW/ph4Bln6ӣqh4ycsm;ӳr`o;̯ a1 l_>mDѐ*Ԯ& 3ef)!02kjj\"X9 %eS3r,PR6 {|td׊78kAAfk3i~^+k [杹-p_ IERq㉑9D"ޣq7ZGb7^VV%rpwE O @TQkHwItu3;!9 ]w]Z+z8KZt@X]$hS6F=WVsglLԈ͂H2۸;N毬oxV%ӞTHudpMB~Y& j؟=9c'.#pvUe#_,a~.(Le*ً4zmBlrN N nm HM "[C𞇺!⽔]oV!e%D{Y) 0@k3rnTZU^_R}HH3^]^@nAm(W7TxDDꨫ(( @*[Kќ%<;w-fvdPEiirP-"es̕6#gnϧWOzXW~q'7U~_ ^~B(հv_R˳p{8~3.FuMDS΁ ;{d}oz:&tCU&kNqy{cgߜIaX xc u ?ٿ3 | XN=8;7h>{?Z&XA?c6?ţgOGd3Z4Z$[jo*ݘ ّgO*Fmz\OO{$(8Σ6{H)p⬊::.hBp 1=zrmrN9)8Y/nݵ=ݭv6V17>oJܻ H #2@@ND‚Xr" D$\z,߅Kܜˀ~cj9]!D'A C(͌ ~؅8% гEem@С𭉵̋ßeoSDwws"".f%ߔ95$̹طͲ9gn[ۖG1J$džJ[EspD_pXVrb6 @1 % c\zVr&#Bݰx(]GeI XNds̮ X܈SV(A#Ek s`ɛ/f} 0ŝz@3+tJ@fb(PU@#U4oTf߼f4m筞/W߼:ZYroA$TB!6M&Zj ӐmMi= #9g  $fLB ajYպ `v@$fsBD+lu9z@ U""HZڼl_ǃӓOӽ_zQ΍9omY 9㗇o޻`<̛'r1>{4xbPˋKi U\xnmIF۷OQc<3|zҴKj8}zY}d4>Y͖eNmo1|eQ=z\d-j@r@UJs5˫ F=<;?ࣔuնK{?.H*tkwwc{w9}Eyv~?M$v< <3yXn|zsc++A]z8, 3@zvbhU D.۬-{U4CVd&|)bv;tKafJD'#Rb@*Y̋{J_YY]/sḾK  2a)ܞq`4 IDAT8r=owE /|"n#/@у[!pvZYF۷Z}y}A{+,/ToRRAwD7^}@UcD%!{LF2 ӻnwY /]+){?fq>v D3!zVMfeùI<#QZA1S@H;"(>A!`s,P*Jp5 a5>ū-A#w Wp3K`E2DfU5Yru{BUC@e>߻ ~k[n]YB}DAXD123! %Mzy!nm[nVYG˹6![BO"hge7Vu.Ł "}k\s&Fhn FIeedNȬe?/np劄L$Q\BUD34_019;X_M/ybA5zdk{gZ, U$FhQNjxrtttrr|~~<gb1փݽugR~Ea[2cA]_C=ͮcajؘ$;8˫Ikۣhz5G޽{?}ã7k'g/>!?Sų>9y\\,Ѹ^ۺ=_5g~<lڝ_\:ċgg1V,J+Jnɑ/.etp{mVWMvXٜd}j7Ĉ̢͵cnbn s$L9̪kkkmTkD6kZ3=="#VP@27LD HFMY~݈n^̒Uj%KJKf2$VW d{uKغv~:,/MCO%J:qD ,bPFrZE X. ѰD7p.Unڱ -)vS'b(/7! !r*_\c`s#$7&F)3*y ɠMw b M{;߻ݮ;ᯟz"~,SqB/p((]qZD-JuCUBaɻ- ;mS7uX~4쒭ArD}Js$ruDH\hDjLHZB|y ~ixg@P-o ;Wr95 D(R(XHH`0 arMr6J.0&tet(lѦ`FT  Ž0 *00*ac9 e՟ΉQ5uzIRpCC BT2-%mBQe NLAeuMvv~Jm\_d0X_&u3l7WQԁ0'? <|׏ Yh&"T!:t6KYn6PrXW[ᆄů//`5?!rh;Lgxmk6?w7Wx4&;۷F/~m?Y]@<ӟOUɗ~{_͟@t8'jP|U>_{]^Y_ۺGn~u|uO̴qw{k Tt}c3<}+5!ցzmsykl(2 NN`PqNiy;H6eUl1e6mdlb6#651wk%KWo?˗n8EVeAz2xm>kao{BJs'p!i] 3L[#xsvmŋաMD1%<c:Ρ̊FߞnԷ0i\8jD"vk ^)p]5;FzD@ZxPko}.N]DL{2BIF"3 L2tн ډDiSB,z)wֿL~j><;M$0f4A]:y%!;S`D L肘U /ZeE@} p: ԁ@Bp 弜NB ъܰ̄ypԚSN)j%Vۖx~][1^{g4yw3pFEXPB F`H Q5ݵ n|[XsV]sr 0%B7DF,ktA6"D@92B`TW7:$`,6(UBA"slڴXfPS^j9y}m|j*KF58ћï~́q0xX-tz~H<;M6fd kPUL5B3=jW!O^?Bl);:ҪmV޹3/'?ݻO&'Oh.>{Iwݹ߻s}&^._z, +\=AԔTǃQ1eߛg*"43l%Qɴ7yOFfS <[1Tж@No=2Q+GQZWbq#̥(Sۦ=!.oT5.;j hyO/?nZ-OED*FD/"D %9r@ы;kÝzZjV@n喢 cM *;jB`5+ ɳ:RPEd EKyWXB(D%:!sVFA ]Z`iUqXA m)iU rzxvAFAUm;gvoZt9S&!.W͢my,Sb5}&l*!:bvqptr @%=?ax%*AULVKA߲3@'>d@TL`X&%I`kќ$F-El*D:eu @w`Yrk1&:H.cKӁӀIM(hV!p0成43jj&Мu:;ӟ>h8j`VЫR )2`tѤ*d(f(dM,[Dl6#Vʈlf*nD&" ;8 Z2w(*BTrٶ;{ʉx6_̯q<\67_ŚRK9tqmoB<]&3_d`M˜Ҫ@_&M$(AVN'jP v67w6ɣͭG.\\&;gmZU1.O{wfj ?'Ԧdͳۛ{kk?;zs6A'lnӓu"kw>X0ƊglkRݻoN6nַɭbyox}%o>G맯BVNi9zVZͰޮU1z0hlgm$u`BZ m)K!|)Wpz~D:j6+y)G/\nlzW9 [i&;.gTio~ J~R)->nnC23b6"H NA(i#@bt *cfA8$P ̧] u|uQ7º0"-[y:^] "Y ,m&e,;~)߻4@[dQoރEHm܅ &@4#b7!$3Cs#fsu-eBls~ޭw;_b2㯞=II/_&au#ZAUMsVU5c7HB1RɷQ;iR4@h(RTa{9]wntr0‍ch^`nn% wwP:=_7 zwnHk/af#ɘ t(R}LIM0Wsգ,9t&«tCZzru7! DE| LcP>R2LK@ӌHޔ#s$ @v$Qf .Ap6cAMhkc޿s|rli߿w~ݬnm&߿RQPwuGY-:v$3=AVIivS U ɗ4:8?} OF֣G_#3ݻsoXG;{O=-Ǔx4 !SGn?}h>?ѧ>?9{6:jjO~wOfYί~oSp'ソ^|;[><ޏ8 ,VՋ/9֯^֣LMv4ՁSJuUA&ϩ U͂tkk=L srsfD7DQP[gpu+{13*6mq-9@ 0Z*'KQ"+ܼD憄es &u,UC*!HLzڴ+z{'g|{GN0*FĤt]`.B*Grxзw[?v /eděR>있# ].j{a3QVJ)v>*)Z6 VQ$in=Aw8ޭjӾw]&¿~Ȑ{o$r ~^N"Ԧpow,W߼zr8m#Opprվxi///ζ6>?gOLb>xګgݿ{XLIw;9><<:vWy5:~(x6:غ}rzXCd T v qcWM6:B^ jY%@h[3KnjIYbJJmp}(M´Z.5'&@2w*fPW0ULfD$Lf Q>Q QۀX{@dBU'b@ވPbuʰBu0>;@롩 C(BAEx9~GwWhkWOfrRdl΄F8Ll8fM`+2bB"f,Qu%R3s` EOк%# )8j,rq9R4K8j:ޜ =W!f#iT:xR?<|I!RRpM5+`"u h*hS 1jRًj6󺮂P6˫p0CG?}[_}'" B4r,/sjbyIrru{ѣ?Oփlm쵋z_?z{O~Ǐ 'o~/y4m_>t(qWm̷>iFAƣIΪpcQ]EUX ,WͨN(+1;dmlgk2RML,x8_^ Q7gӜ]5ՐQڽ3;9PE3Ż0wN`}Fငl`}&y#WR ѼUwΔr ,L$l`N`f \0>BKGoОe3%Bo)ܡyZm_<P+B"*UX%}^mR+n!6ۄ = gr4JQĀ 3(UU(!씖'""`L+Cֻ]o ޿c;EG_1g57 12sIrs2#dPڽ&A E[pRK}E,ԩ9G7~ff z>ٽ ݺw5CAL}s"\=[?ێ\ׯ+="[787.XWB f,' LDBˋNooo)eADRV-斬NȀD *A=nR9!@6f0M Sk*dŜ!) Ya4+Z +fjfăȮژ5AŁTiE8G`H& IDATiS&@( 8xTWQqPW9*|*gCtU>ŏ_ˎ:ZQ(nR$Sd,{g~{33,S EIލ-q"H394%A4QU/_^/ K2w2w5 Y7?s,_4i3jXbY3r\q(!Mj˜<j=v3izEW xbvJ'+UXEĒs!#G;omƛ\E7#;+Hqij~͎h2PO6f;p!0R `e!1-qL4 ISsY Ԭ֤Ykgpټ@N,/\ ?-C. sbg0bՔ8"o]A򪫪YyZ_ZDōH+M#D6yvT,4(bS6z{ޑ;ÙQ7͟o ,v#3e; !F"ԽnT(S(e=/իAb1;xi+>M R1Rᦦa$6`r&cRa(.Z j⑆.nc'㫧t:zXB -˴r)\ +sO{W? 1WnH9mdxP657lA:Js1Hc귀EF(6H)`,,."i# ^{b[bO".dˋ,ON|N̥eg90,E!M1S"o/lWl2͗{ﷳo^RJa?㶙$^___`w+]]ݞ{ѣG_/>{ڹ`@=ˣ> WWgoz'ͧYL7Ykfs͗ac|xPu OUKú=`޽7 `GPKo!fiS꺞Ig<0rJ)LVI F0-]3EUoos.P5 $2/WGGfș x!0VU.EVJ;܍ওmzVenv ,E7QD$md_0&KF!vsIjIZJ;kՕOz^k)6"7oo}8],?;wbpp}xjYΖ\u,b1k\=\޽֢<}w<IOg>r9'VrMӈbѨlޚ3f)σf!]6:XtZRеA$jD"J)r.hXEj#̵ӑ 9`2Q5o|jۙ^Wa );j3kRRS18Yj Ka_=8scݶO /Nj5mp[#ƪDD^gt18k\3M>2scI(Fh;oi!݇DL0bkLTM>khiRSj]Ȑjܲ:I{xrfׯ1C!///>gQBYudhVf<mQa 5 jBc{UH b1G`MouzbX-"v" %#cMݫqONHF>C 8i?UH/m|,0ݏr;߉ÈSe'(qY"%c B #2S%.nJ]ͥ ,RR͝M^56Cw^b:' \T#BT09Yh`nNbgHFPHB⡚C1zՍ!PJu'uf6&5 +m1ꮑJdoR@`kb`t(EdĹXɚK)jÐkp `f9}չ.kظS6qu{ͽ_];\=|V,bjGY]_\^}x}q9{o=?@(yWOOϟ=^e٦?jg$Ons=~;Ο|6_|~R򍑦vN,Wo.{sXΟ>z88-ymټLK\wcK Ik(éiu|RIXcwCg"qO D5faREղ)"jZHA)a100 1$C(fE9yH;^Jl߯wM#w@7yeӢEn ݰ2ճ˺hZJ9kQ,Y, gVdC/nHCy3"ߋQ⿱2dbL"]^^|ɿWȈ>6pXvs޸ͧ׏̓ޛ/氫b`fɖ1_q7 ׫Itzyu?:ymy@EQ)|6!ܛ+7MJZ~P4Juib`du͐UM?n6m7ɽ׳[Y7H$$-n3,g_w!HT޴]9IC׸MxR;Hn0?\3K@N\X $p1qNy9k@4~e~aۙig) u20 4h紬D+6'k0 ф=kV 1{l?+RoP"|D0vo qpw (VuX'|pZ2(mv6JbF̬m{[V:H(ypbd1JQHڐ:l덈3Vfb`uˣ}ww{;=qS; B443'bs_ND0ʻvL `z+MyuFĢf@9C01D"69µȝP Ӑ5/'/ovZi_3L/2w 0/>k(b#ace~uPleb0Mq§\ˆ#Z;-Q`^'vb)ƐBn(| v "sI j 1 pVApKBTn6h jXk+ <:&<(j Ŏ<>st'#gI$0R3IB N)0qRkW-F;9bvpvs9ss{/8e%Z#vs0t:&"YL$">dC)j I` }ԉRqe%33FˈH%ۚM 1a7& {pN!}0d3%g5`Z)6'wpZ066b/po_bLMoZpS|u77}o~g{7_ۖ㻟󻧯~;]w7nܹs`q}}_?=yzݻ2-O~qY>|=z#Bw|W^:S߭Wgͷ7ȸWc=\o񫧧Oyq`i[vf43/2_ 5viJ2 B]i(,!H@YX3GIeDo>!K6b^YmI\6&b+aD'' !HVoO_Č,&Y1ĪJ&"Th]^b+r%0:Nݦ ̴~*Ĭ*j{4>)G-,QSkMtG^B08D&urXswH W%|2G.,Vg}^A GS Y&0EB Lj4g/re] ܾk֮pm0$0ĕ'Ԫudik/YMx]b:3Q/d0D:c^#vJiüvENGb"QUf*[t@]EhY53M$5}{^~5Ի*Ik}3%" OXs r{ziv laF1AhU PԐq;O?K@< *K 1KDΪm$ X DjZJfbg ̍ۜи3;TU0FZ˫J#6]p=v;;b-81A$& LR]Q#aa"S<4S jAקG{8n[LU*aQM؈!d$Sփ('dg߯Y+ @<onR3IpZ@jʌ%fy[ACzm^/feAԻa;hf Y@~aHCN*4 nof0mf}PNo.W_op/eXm~񝻯9_]_Pz7nnvu >]{ |rqi~?ɗlO%޾ze氾~6#}wެ]0y7ξ}h+˲mH?}OV~u}u\a;a<gj. +mh| ެsWx^1N,Bm"R_Mӄ$O>ubi2̊;x9R ;Ĝ];~.A~TFu̎%4)E" #In:ثD-^ ĵOW{GQRWtLf;!pJq|6$ؒ}/#~G IDATT0hrVXvutuM;8)Dc!a`ڌ2"°bB!P$YUb̃Ȑ5RE}63}~Jc?@:Y!< K?9^u}A9tcB!\"1:\9O zydw3Īy(ۙ*J ;(=1a!!ເ28nΞP>v  Z:qS30GMIU*Txr8r&4BB1 b (LDj rK:l$a^QnX?:L,UVW?YQ/8< @Ɖ;y fi&Mc*r1Uh*jDYE,i1B[kuV  QW^nܶBfڀ~{"QJ9 d4wzmO>dzbb67h!aK!;3)H^ ذ=Xͣ{Ֆm7ݶs!4L?%jꫯO=Y.6жW_}:ɼ?xoG|DVO~y;o/mͦ?:y{o^W۽gHnP㰾vEe"\1Ƀw.=nW?lY}Rn3]m1nnofH]^_Y B)@!ؖbLC(!w޿xzr5cfQX,ݶssqt̕]%uWp`HqUa4ҾZMU9LS9 PU¬A@LbM#2Y01ڱVInvA"#|zDbaE?#ϫ&\rA] &!W95Ux)P0QDI4Ԭ!b斉e7UHZ汶Abʪ!rLFp˹8(A^b:yݗn/ox3K @д8JBL,kV}z<݈XBڶƮ/B2$IU}؂P;G6f tkL+ش!ݝ, QVS )Ep6cBFV=r,F<3G%bC~j%*@w<ǃ2DV\;N^}19B٭a4c DD,"yLNd= 6%2߲ӲV)`֤Οmt:\ݴ!E T4 91I%w3saSg v?(c2 b}ΥhYV˽K7 ]&R՞$Fb)1Yoyn7[+XR13X`ղi%nFL .!%bhȂZOmj`rwxK53]ݔg(~s9g5@g8?}B_88{rۮl\_<}6__\\x{O>t^֫ڣŬ8z{{Ō˳WN~z<,]oIi I?V^+ܙ IbuGwN]^>],xv|sa.Ţi7Z|oֶjN), 3[,nfaҦmaB4a(iH.Ywt|zqQY)ͱϷݖ ũ%E2ws(u&d5awÙkވd4 )k1qE`$Nz~s`ȴhC8$v\ Dk *a_YZ=LVzvs8x\ߡm`wkm 1/uGQMs."@{0H/#]9jfD#bz\H phmNԉ%fF].#1ȐmP8hN^{ Κ?U @뱺EjQi[p/@:!Ur8уfV-B C~j^C||@)hT ]1\(S/D8LB8813BPcUk R@:kZTQm#q0>zTuБ5}4tmV3 tR  7!( xFMT2#XvpggY[o( D9a1{V-A`.͎h̪RܮWK?~Wtywg>fpxr:EiyGO0cӯ W_}B1rln]J2`M !&-+i8.ڶl&43isnMnz,R_eۍ#dc3yb9k3j1]͊a &uL`̼:5U0Pu5k)~VԴe)B\kV͖GwLVna`'+[Z,LNZ/O9\ f hŠT,NصJ%j'Ta$LjaR7!;D pf'5`7d33_e߸Yw-2ljzCU)ub82uFFC XZ~W qPR OAIf1{e&Lܘ"*fER8$$BFH]:38yLqEJA)T?"30@/@ϫ|.5SFAaK33z0{Z` f*[_^{t>'Af]=5sG"y1rc(bCg@/BD(+ްgf*,B ي$ /8͂4yua0y hyɗ6i I ]_SUBB2<0Q0P "|M Om\gm\m֋\~`ǏMH6iȹm-tzL~yȎvk_}+᧊`1wzv^ϖG$^_ G`:9<웯7N^d{?8>:/?.oo~'Ϯκ]|3o¢Iӿz+>믟|˒Pŧm/ngG_U׫W7Y9;=mmoy~hЕ:*ӻ[ɋr. C!٬j6kBDBF)QAVPDLlf5A>P REQ%rbrWLTCiǵ{JD%hݽ2q"5n\wM[)rFFśD@V1  <[v7,qG10H|"v&"HVBF\#s>y}ywl\U=kj#Vnbk2[ /v$e^]$ar۴wG7:fsMRDֵ{|=$r.nf}p 65%gPԢa%;;8C^j. ɘLݽfcU1ՅMc,f'^ySyuw0{ QQAơ8t'TR+} zAԷ@nc -`G[X\DFM6U q%Ad#FC @d&3gOnuJDS0j݄K.;31w6T By2$8 TM&\YMAWށӚ¼\_gϙ)yHM$pf/ٜ̔+\<ArP7ޮer9lTnvxTS N~̭yq3nҴg7k#v{"&ZQ,vSl44i<4{ *, K,{Ι@QmRXGmke ψȌ=[Vxxl:$U9ab,Mz0.߼}I3M,'9Ckubr<,yz:pw|gѺ 3={S9.\?|ˈiО6>gӯ?{_?S~,N<=}9= ;7ۉ*iwX^/_u)PMR&ba )W5|ѧ>V6lViRhqIu{|qg vvs1儬!HJcw)3K}V1LVs3C(K2B0us7)E0l#03(dE6**l|%| @#B$BtdQi\B '76΃IH9|X*ilfEAe4,:BBP b3+ՐtToG0S.Ѧ V$683!:"3QF䄦nuZ1/O@t"WMouP߭ww~,7'g@}N7 af3ߕ>Y2pGzr-*Ae ޮ|3LARNr $5g(NJ (D^Gw@JDr$T`Yk65D  `)[pF`:LdJäRd|@}8Ƈ nNAPHlXTPP\Mti;u\0LiI4fb]YԺ ;p Nm7"w#ws>y " _}Ͽo곍9i#Q;퀲xz1$!K 39."7 5bVM]_.v128B a62k4ד*_n-S=߻9铓`Œ^N'MGϠ6bF̖ܽ߬m>~ Qܽlуzqf~m"l2gZ ׯQQHYNq֍/.] |4?39Uf'IW?3("݄֓<ݙ~t/~|DG_NwŋO}iu^\~x|cz}^}yz$˾O t>g3ŝ^mo߾I4\\\N'iw拓ŪVO*pwyFj2ַ{Xc"ꚾ.531 z 0zሺ!2 <E4y&"h\_Q/ Ɗ1Ff?˔ݭYX^Y X6M/Kww*fD3r x#u[4- Ȇ<:M}] M]$Dr7s""FtcB3@ * 4K%FF$e#ap@sv$!&))dN7-V7~dۮwvRTAC A8շMw_XmnIuo..rӮY!dx?9W{M?[\ a4/OO+ 5^,G?l7?8~In޸q{zغˬ.q!M'Vꃃv{<_߸q5zvuU]=}lqp/΍ǿN)O/_xΆ ڸPMQӯ\jbf%89p hRrj]ob=ԶkX5$$LӶmU1WLc|Z_/hJvPGL ȴGH*y4+BZC(lc4Gq@KtHEQED3 nH8F a7pͶp`]2RT~X<0ġ]0A6ژaFsfh6GR" #щ ӍTw5b@1/.yqҹuDB.CK)#Arp`V~0zy{7lBi#f< NE pp&~+uyjoᡁ<<b{r"@)0wrh{ Lz*H1032{ 1"T-Dz19^\8" ؽ.\*Y.Y{rm4 IDATr"&f$QGJSׯ?_O/.Vir=B" %USɘ`ZB)vffcH93Z;80RzOyZG5sF|^}[UYJ:-Yʙ>^m@(Db&to ;;Ggno:nm.!Vռ5z[-n[.sz?6t2yɤ&|u|Ç''׮<l6Ixq}Y7{Gv L&:wYn5/f[3:H}jfEY8_o4wIc x^0 2a/˔:qwk7JfBv@$MgE`L DC>41K_5#40b}7 lay"&"j:L)6<+BY)'~p^=PpFXAo#Mhh . 0+A-a0"6d1o% S=dT6LQL$Z@D=0jI- ߻]]W.:ov8N-'?1Hr(a@9ŷeVcD12^;]!NTt!\9%`=JS_U Pc՛Ϥډ|rCsx-'S@`f !Uuy-\!*`2 T* 0 Bs#-r 3&И5; !GHf!Dp [6$Y`\[.&6d2Igݙܺsݣ9-Znm"!3"!i$T8 k 1@މg;֬@ 'u6z~1K)x`!JUTEwL>u膚#e:NTЁ=e$\BjmTUz1;X|98%FռXΧtѬW;sج o?ۤpbk׮7mͦsK_^iٮϞoϿAۈty;;Y[sU[_?g{{O}2'fI׵"U=Mכ|rpq~.}ӿkەa1d6_wOZڶ7to Գz2hz!vJ A:痡B5;rVwݴٮi:P!lC #"f6}Sf*>+A(8-6#@h4"R8Jjv9Jqn;kƺ"3 mQ&B4[@jeO=6Ҁ<|34ȶI!ХCC&SyW  g`$1cMp+L 8hA\ MH1K2K] B8&A"!pBj׎?׻nwo-|¿g?9e @Ô^Ckr MĆf9)Wh#ӯxXYZ @0֤) ,pE  ɤܧT #a3 DDT`sUj4 UCqu6P`HߔQP<4 c"PHl@N1h1' 㢮Y#n=lib u)09! !ȼ[3;\, Fi p@{@p}V=WL!i T, 'wIis6z5M4\I'!k Rdp||wٺr؀6 `aob-[uU*5m~RWZN.`oXW? mbi$l6H\7]i7Biiז^ |9o~8:>}CjjjZŨw8LΓO֭{g?싟]]|qpq\;Ӻ޶__ ܸ~_|6fspxصmQc0nv̏|>鏂Tٴv&]%TE9_{]a:_mn}i R p"'B0_']׸[ɓo0G$-"]yp!Ȏ6"]w &oӛ28q0x 2ș"8<(`B+>xSX _'7^Q| lx[+2xX *`E(]>q,+bh8K݈ LK3tF wFa)YZfF3Ȇ13SV& !.&? GH ;qLLFʀ ޠ2(=.9ŲΑivqA' #}] AxA]G`:MJ(8@L Y88_>mG?넾MWW8{}@_|C7;Ulܻ}(D;8|dp <ًG}[!o9H8/w{A(wb6u9?^cQ,oSNLr6}'iXoشj`glk"=v(\Ռ DQuoSߙVы1"6}ީГaiYѰ B t9he eWl֠4 m,#O+IBNZx8*m ╝_T%l/|RmK~"m-;l*ܡlMXތio^̮9X|?jq2 (}ѹ!hp]:JqJ #!Ё܄s$fv9*0$! *& dvo}`>ޭ7?>#~@~7hx` #s ԷRHpȦ$a/ȯdOrk@m3J3@aQU! ǏLjwnfBB@FGg*tp4d@"l@:)ct0&"'UfËF։ BF30@ "Qd@"2Ybɟo/~aVO,J2ۗll:htBYK3GJSpY$45lϐrv/\pTSVs*yܧT1Gfٳ"tR5R֎K7PwC\3N&!fS?y2TUZ/SݝdUXW]𛯻v {`py~q^IN|26}j7Lۦ Il٬W/_,!]|8y` 1mSOr M~6RwNmꚄW_>y?yr|;;TGׅ>$vܙJ8Eph^_=~k_rnm;7=::tUS t {;ժZaIͦ;3 HF!V ǷWOF9Ry&G䕕֚Bv_zOj 8t6Ws8̈u%8(ɏJ" I~0q좍A 6<9B6WxiTvXOR-}f.,FE1 ujѱ7P8L -A;88}G UP@]QVUODB=Ws@HmHLn{~7X@U*hVo;0/Gi2Bo&{kbvSf{KȉhsnO̠m?kwA:pR13n(CJUH .^Tw1,D\sFwHP [z_*WۈB6xߘ^"@ `0)7p C9!$wA&@L߼>EOjwxyFI\USD0gV{wnIן+9ǐ:#zFjA3("dDp&UWD,(-KoG2Ϊ*"nrnm8y:u2ɨw^E>{ q׷ds5.^nQ~` aLwclh3&ԙ޽}uߧ*[>Ǐ{=*V77cҕN%Ϧrʕ^LnTr=횗Mմje~MKڤ.'MCrot> U@U]*2ql![vlW%*{~/ nD@\3C20@nZ [S(ww ,ʢB#֕bM7Tl_8݋/ B1 "Ɂ e$ X:83€͆5rN T$Xy+UA}(Rň;hR8ypOb% agKMHJ̒@tuG"AwbT37B2K o|e{ޭg}_k Ï)kMo0V´VKBUi=}=5gKi0s\~Jճ8;LA5r*n a ț\݁jH92Qݬ AƒNHQ8 ^4@C@/& P!1ˤa!}nM1 Wa, ^TS)DHDXD$&SHjХ4bxmͺkQhjQǘU'bӝcù)*: ybZv"FpR1;̧^TrN# 82#*KK=i B! 4M&i6MmךNcBul6%F۶S C }ɲx ?P3l6[DbZ]䬷o])7o/*拋cu>i<6g'k3pws uf۶g/_9ZLv%NھQkۋfn8]ߺyosn^O^G_=ET׳Ğ=Ҫo6'Ϟ׋v{\Ϊ^=[\Omz*;oPM;׾'{jڬ> )[r;-TȚfXO&"!BgDB@R#P0]6ϷmȀ@H zoѹx!}p+JQTB?Wph58@a(2ĺ|XA,C5 }a{Âm(LTZg>4Ӱ +ODԡp#9n8&JCisS)gdJd8(i>;8Qxf88pj%K t˚ B%a%2^WtD,HVOمL8\[4}Cm "#i-B.epI4tK(_f) =D2Y"hmKPnV^S:'3CdaxZҀ  Kre M]B$l[-ʉMgdZUYn݂yu]o7F"zLN (p*y8D`s ='bL(P!BA 2kTM[y>f=8P<6~o1D7fP(Y.)L(: A'3ume h( l%XVsWpr@H9V*I2GDP X*B&Db7k6pAfM%Nf90!3OyN@֜/V QdzƫӗM}r>\_f'Ox4Ge=TN'ۮTp]iڭr:kn|[ϙC`Ύb4DnOf&n~pӓg[]Wn<ۿã;۳G}{q'e錪r${w6Ozl2tm!P5L7mZܶy1 y8}skU6E9eW59bg/=3 thqɳ3x½y`G0X|B*LR \K$bq\v +ȱ0C`r$"tCTo!Pb 8C0,#@Xa XK8QQܛ(6zu`b Q HV)L[^=FEP -&r LAMxyyd+#:Fd sj`JEDȎlbʙB^D%:sc0A8 PKɴgdHv9P4TvլwmRnz,W'/K5oVi]mXt]7fq7gkڵBi} ATj1/˦M]HzOv0ٍOn|~q/ܺM4}|g_>uu)[n<&{~X i7u&k9o9zV-wn!rfjO~ִ01T(!޲n69kUեXޒA6XSڮCu0| Y?GY%꒲eŊ]{+|W` qޖ IDATǃK0(7gHCQ3䄁qƁߝ"@1sj CA1YKW*Ƅ4>fjμy@8X H^="נ]|E+9>r`GdD8≽!"!`">ES& ]UZWUrD,gKN|G:t~=?ĿvA0?}HV4&T ʰ~8;\Ճ;;$}뗯UA0&uhCɬ@@?FKq eAUݲ={ P)/s9jN}/DttUy0ϪjRr(LjAǘL?Js|OJW J.FZ@ !zY$sUը3 a3!@7PP 1 LkTK3# PzGjS] gG0ؽ 89sakNoF7ģOA%B %7÷t.&ݍJ,s8?"JS D eœŋr){V҈H"9z) !"st^HঈG~{w oeP^oRׯ{;wm rgN @@Pױb6G=QQ"q ̕YNhJGw@P* A!BJrAtEh$Ŭ B=]mrʖ3Q*Drotppppp)fo /i0o[7wˀQJM7M[ ܠQWnXšR/!) C@.@dr d.b $vL$7ӺF$D7*=Q(^lsA jl ]+t~3Lg/^J)d$vh (Dn.ALD] b&3cmAUP(>2 1!`<׫dlz5$FĜ5(Η9ܷN޼w0;V]ѽ\_;g\m7Cӵj}>z:OYH&׮߽v޽.垄)toyɋ0}H*unY?Է o{tugm<ܫI=߭'_*mO5/ϦeGբ)lRE@,,jۖd9='LRDdkn>'YA̝ M 8WBgɑ ʨٝHċP%77լ r]\L:|Y;?|}~{o$qe{{/"2rZQBa'M6nq5f0?X_GZjgzzEK3-^}Y6Ԣ(Ȉ=Vi'r0~3.a."cN5~ ƱD9*b!JlYX5sgww5-O'gw@X=B-UE{gzsea6OOEػ~O^޻~ɲK֭av}ڻᢿ$[,ϟ ވ\BX~wqqi}2iJ5C Y侽dNC }NĘ OF 3{jW_vw>x! NN(3Hxd53;:Q,DMYL$je%o}@au~ެ?+33o) 2~l-"QTqP&jB`g %LY ȥ`)g2 *Wh|@*1#> Lch pba 93QJ'W3EJNuS_.nNLܗi03 ssau-[$ȡ r9 e@ q ezYژC՗lTQqքUw{VSB uHȦCNZj[.tZ5Fc;Ǧ`GB }lJwʊE]^9qH Nwrq٧D$Ca207FYBV*\dB^GBl(#I>zfPU6DM\Di-10)1[NS*ŵfkkv7wvt'ϟ\\^uoqm/mL|m2*/Ӎgb'Ϟ?z=?.ƝvT_Wu~x~rάQ\\,˦z:ag'/x8YڢlM3v.<7ɦufi -$Ť&%E70N*YRNgf].et˞0IbBmH^ۿ{#sBj8DShV2вzX。YFDTxՖZK%V9&*U-%^SIќXpb;@ش܉|56򕟗ŜF-anjq}4BVҨydn׭E-Z Ùq|ZB9aɚy]fLjf`1w" LcH լ0*iNj{Sw ܥAD10l}1H#vQOfYo?_U!^ !p2LM91;j&SÔ̻g@ɝ$WR@FĘ`J<)ՔPC I` )b %\B,X]mA5@v)3vw6IDft1|'fȍ=k82<ȍԃp 5S[⬛} ci4uh_Z.c5`CD=̈́f 's:<0$ -\E?|isʩ+¦˅RrV@Cud Dʼn7F/)Pe%6*FwBNd$iv9@"w U9k%H@(Pl\q8Y?t$r,Uj'',9={Oz/.߹/͛CaY[||V쮯?z|T\Teg'{\l6SӋew^M666ˋeOqrr{PcM̈́s<|Ύ~?x/k͍jٝy?޺~y=|vrq,`řixu|4V!+u%=i&Xb\d] fS˖STuWUII  njU f-V͹D"&g@1bOTXƨxT%([؍T!1 neJk 0f*#|d\F[Q؝8^K̜Wf^Ҍt%.4OUWWWẍbA#.r̻@DD+#X,bcs03 ؀Ȃ\`J{6r|]HbD%;#gK)X+V =0/o֛X,g\=+cs#048M͞ dct"c8ϹPΆ5 1+@ bҜu}ÇL,>JgbMyUYL2 a焪S)F4yD͜Yf:)pufaHnsDNNOo\IܝAT* C ,07%,rrv "Hi%'"05vvëU5JvIΙgl!SxX.lIJRJfV2,J*,B313/SxzTqoQW5QT$nllzz$A1dR)+!98p RDaC]!=X_bv.r+WJp<FO@H. r.VA5وԈ%jF"wE8iRWbc><8LbalA\MsUg͚!|tzfAs"UE}9ֳdZwnpl1]AņpN^C6aCfkR_wQak뵭w>s|3y軭͝-xّpaiYO*?>T!5ǵ]GwZ/parw*vT`Aܭ$1ӕM@Mݨ[6-U 0 '5@I¬j%걊"l  o֛Yױoy:/L =򷝛D9 l6nјj+wqN IDAT2R"] ̳fmsNgEUE?V=:$5\9$ w\v$Ҥ!UJ@M&y1WsXUư*̆ԫ2%Q(&'wjnj<4⌫*A־EǮ|qĻXfdEZA5JP&CUMzsZ S0Z01"uϏQk͸Kf s"802U)jLcwݝt{gQ3T)j%"69I] 7"uh&1XYKZ|v;3Făz PMK¥M2#;U]*. f D\mܾbqԶdqmcnyȓIszrr|tbu W\,6ֿl6[˯>ysZSl'_,\EN&9ubyxtrmm2=Xѐu/߻vj֤欷܏M֭v_΄d?5jT/R>~{&^[of;;s]۾eܹUOyy軇!'w,6lnˡ*gFc5,2#İ\il5' ,AUb83ٕ`Ǫ 3XluVS3Hyg|?yÊB9q02W@2&kCz]WEWwb*4Gz$; wZW\ ,,ME:a\2VBòӺ;L2-ݙ>iDՕ`; m&rfIY [风nVاr`.KCNpIa2:4+~fYYx~__~5s.p942TxRaUcf51ql$rNvmi| |hiLVT,6zfA2xcw"g)XrL'0lݚ֛_k ,l\ X0T@03 眉8ƶOLu! GL,gIUyN 5k>ڜFgN8 /ۡ`z;rfDLB(btPE0xg>r·g/㬞Q>WPIFyVVsXמ?6Y?-+:UuP6JvPvKe잕Aƴk\UUGu<ýE`ׯMCKQ8J0ӫW#2<0=ƍ͝9wgl#X_&)@j&s8;>^v! oZ.ݝwzDvsc&Ϛ|y9f!llv/s__{ob1U׮moo_~ogs83/v_\[[g'׶׿o9./Oի]oLv1L=TM=\oiGf>PlgsEMղev6%N+UR*V4DYBUm^j'Cʪ(f f-aZ|RJN7( *x%zPsr 9m,|tFބ44"@Ǻ1\ \|aÅJ߂Iˉ3Aޕm%G h(؅[edG>Xp$x.^bu"ǭd"22%('JcYB^{ͳfWsq܁PUЋԓ-jr%n0'QTG{WؽY~cN课B p1sbhTEf/S4f ABbvS)mN)OUYᎅ".~  w+7';KSN'Y܅iLg!a˅r .39 {!cSB Cs9KȪJs+6wOise#WUR̀8 'a1PCec࢙L]H!:qjp |237Sefo$F^l}vIj`"bM3MEA-2aE;ZVD,W%ٜYHU$2 A@L$7nVr6b7e&˙pYC^C(%0O餉`rQM).*fM:wpULܿRonUU<>yE Wdz<ɓ[7o&Oٜ1_X\\ۿ7ndC<}M=~蛾=[kdg{rOݷz_/r}swo06>ɷ}6uuv|^< ly;|&1nlھAL'LSn&M]W`8,TU?ݝ[Lj4rvvJe_UvKFx6-ŇUb } &p\]K0x7䵚mpX`H@aݘF1(P{ 4 HDAc̣wCC"]8G'GHK9;S(D (]k Iμ .;U(7%5+L!h+@)s~q`q2Qry ⢐qcŪnAFq3~E"D&R 0 PSŜr0oxL.#H#Qݤ4KHN=] fj}J C5%aaH"Am5ɽ{,wꊒs W~B%:D*k 7 mų񤶬}N*ri㝓jA\ NP/c[@|XJd`s2l]-P[{cT0`^c|ꉻy5./."$!`4 $%HI+ 3) ,lqvyygwGs  t>?[Ð|!۽n\<Cf۷Z.˷ܝL'{>weedm6]?xxyg[{w|e<_P%w?J`0R#{K=U_g/t666vn}ΏO˗?k|}<_۽v~rk%L$'HMs+鰵1൵8x:!wٍHb7Ų6f!IUU٭3j4 1V zR[! -̹mlaw?>xd7"I&j{OJ?J ЈƓsxe"frICu-Qba՘l|X (zq^b*\WBUP !`B,{i(R ΁Q׈X$3ƜAXAF*q D$`֗!ԑ8{f6a?8{']>~>A$B,`v2 Lj膺B/M{jeZH Z-:̄(2M= -UIUI{*VӦò '-pp4j!ux3 }Z萠~;[w'uvmb:ͺt!uUQwyud>ۛo\7W>8:|1gGĕiX])]& Ffy7N^~d]}G_}_H΃7m|Wm{rv~xl[o=hgk{6om>\~oeW_泿l)Xb3u^]N7wz>{١.wlٷ`е]=iԌ:C C4%,UV5"b\,M>Eb$e`ͼkOkńk^uۨ @2B)f+z0"'J66 )è%ܜE|dUA4U` ǥܬ9RBQ;Čr?Zi PIp^aQd8`+{ jy Z%3#bO9%1FwJxj`81,aH9{7$̌ҧ*䔊(ݾ oߛ\DQ/6'P% '5rwH'éYecݨ}f3r(9Y91 GZlPBhFk" ZVQ!b } /mwmV5sacc}~|vD(ի!g ۶ u53@"dju A=Ņ,&dg `]SL%δ52]he(Llc:o +4<1ց{(@=QEŒ@Qpw*#zQ&Jݳ [[9Ëb=T .ّݍXB(d39S?|Dr6ȵ*vqzs bf^Tp֬uݝE"KpIv}}iiQQBA}H|nY[;^> i\w kO_\pyqֵ'?4MKN_$k{GG';[|ry1Ų\ݿ}v`;6f/.B?* k,U ů>35g6 1N>GBolPMC.O>ǜ35Ï~}ךrd O>vhYqރ?^n43 *& 2 K}ljt60Xfkk'p.6}4E4Dל/.ϮݼÔh.$NN(CE+Q(#4bb7i2bCHq˗\#w/AC% Dژ`w+^i.shzBŽ)yF3ܝ ARBE>fxPTKm%|LNW\HLcv?ʜ2ɡ̅c ʯ1r:yhVP˪!ep0͌_u{ެlȐLDr| ^8eR6\,^|9,4Dйgs#rd^R$`vƶiЮ1r~kͲxrH r$[r[]I7Uu)`|{&`B $>+8 "UU9H6H^l+`VmU=՛xAFx!MˀH@PU 2 ɜԈAk&50 (ĸYڼVXC]IJCFR5R#Wa{UyRg'PqQ8pSUQN!RI%bbLiI:F`&3&BWF 2fjff6zM̆Ӌ[Rw٫Xؾ͡>>}v@j}ͫWG{7w2fuUmw.]WgkӭͶv6_z>˔vYvtֽTԴ8<~{}OBrH9{5Wecsf3~~&dk}e sb2޺y|Sw ϾG:xճ6={u-eo/U\[.:aY.Z3r&lɔ9DZơp *qClRf9lB& f&A݂Yv?JD$p6#7D`0F!_1_4$Wj- $SPff1D^žԖ3&Yћ S]}pJ2 KWAb-^Uo{ٮn#[gIcff#_"\y81 q,*p|mTA3ZV-x҄'j`N֘_;'Xu!":2o֛]6֚/%qr$5INCVyrMCl$9:s+aW(N%2L:y\1OBh^ԤCۥ…geoUEHv#N/ΧUUU 8J&)4(Lti`R\D$DB܆cs:Y#+Ԡl0D \W^ѝ7^N _UIH]]ۧr]QsRde!Ʋ:+iuxr5muSMfFNK]#Q%$j֩efN+G/ܝcU!JA8|vp:8:p'}:)o-d{|$l3 [Ӛ_fwtƇZ=99~y~XϺ{ߟvs-̫{پֵK3iqپYy$C҈)kى9Iċh7m丮Ͻ#ޒ[UVe"AhՒMƬL4iMR %Dw>x,3eMh^n/_8qϖ8T hs)$NIBr@G5+h)$6)b+ FS)[GS' qQSsq^z BsP5[Tˈ_bcAQ9[D"(&nf>dPjN ҫsm\)@gwj c( p uSӬJ@M!#*:SWbIG'|dtBU.Vj3ח'T0Ci ɂ*E{S܀X>M>grDƐ{?m<hw{Joo]/“TRjFZ#X ubm&Jh`nRٛ'G/Go ^ԧM"⬰@AcsqyM`)BҌ &M \|8Ba9!<3ÙPb5W f &z7W,&n#ѐ=^i3S#Ԋ9{}af^L2gǐV*kfp$WcA /ZRsjt LEK EbѤw(v8WoKisevS5# 07 TaYV61i5&ڜ1;gI]g{>xг߾uշO.N^o=stROW-?=8ϟ:F|{I{@ _h'nށ78Mǟ'ߐ G -9?mӧݾq㗿E;ܹ~1|޿~7lmm/OWڽ::5=me9d EM-Mv>WO~_Ms;.?rK2[Tn8N9O#tښr/.>?;/+^'V圧INg}ܚD^֮ DĹ??{u``2&؉m#]6ێ>f1uf*TL": .o&yPJ `0@6b~,p__~j{==1l<ͥ6sT[\bDjM6 Up}nLv8I -:KDIALXA'21AfȪ)E +;4I[n-ѫp Ajz_jޮ?xj@I&BdEۄalnYlpRU( sxw:驻W 9ޔ#g`(%_wWWo6fX]s#@^ dm*樃ńͲVYnIa'Ej݌.lZBC&n.ZQx,?=ٚM.|Ň,r|20ן}ٻ=9z>{oMR8??~e;dz}ptݙ_}h4η'4;''ܺ}75묫~џbߺ{/óG?S<ɟk@TW_fi=1i߾{`ӭC.~/>&!fX-P+ 3V} B1 ]Uwtw$al@5k.\j(]%9]nRF\k9P"7X1Ә޹*󑀮3UOc o6 >Lp󙺁ƿQ?y*Ԩ(J5IGsWwU[=Z=UL\`܈4JGQ6%Wǘs1F B"U @D:T]ogaѾ+@w~1aT"JPKQϝ.6V csBC'mlm_,旦xT9C0?/k 0~TADHLܵd-JQ%y˔yR_EI۫oqRWs݌Qn;/q]Y2jۛXms8Rk|! |x͜:1j˅`Pa,$(Ɛb@,C1aj[{Wv32, tb7W&6)KQr( ,[\Z``eVX6$5<9 @!9ALX}#\r;:9D"peW,6fb[1Ye9^gᝓש1x{_ݹi޿׫4}[GG';W̑xrr~964׏?[N\9wF"sRTnܼXs޹c2vG΃gS|˗.Ϸ/W\]h՗8_{ҟ|emz{w>պW],ەQW_+YgϞ9-n(f\)MjV58P)YM9ȉ9{NMjY, (7v?W$-pB!'#rھ{kpj`]d&(.1:b'uLLyYMU HQ% 1 ;x;U^XH.߸Z6{Cɑ I b'pT&խb13ױנ;:$&jbTj67B|D$_Q: 0 ;! S.0O'u;ҾoyҾFCb[ A({W s-#Vj McZu6\tƀག 9AB  0jqUPIOJ)hQe Ŵy`r`f frCۻX`V-sfr0U!)Q  qv { o,1{h%jaC_fUL(" Q^p"M Uj,m$wܽTXy?t1Ds< ʘ%1YMUP81ZfSpp)dJi+#0Ch(Tۦe5 ޶%pܑU͔Est#2hg~ͨx&?}jqj=D97iu'}? .M&?-\߿se{{wooٳg~p> 16dd>{T<΁Sz߻r\u/gC(# ݫq7Ϟ~0N_|7/۷a2uW[7V F$@ 5\-排+CKU`Lai$D{lF< ҰQU f6C3@%wm3(4)B!3qAD AD +d%F7yB;mIlvom?zT/[G10SܦD$8EhW@!8\|6Az1vPHa ꌴ8 !)AUK)ҙS.*! !BA/qd^}ڭwi^W]Zve2-}\\\|in^?ܻr4_~i ޶agګ'^)Co&nx"G]*s?YQiӤO7oߙe}x i/|ië|vλ[[]nm۶ݺ}ra4+7(a4yG~Va|?p0351#DDMJCYR.e2-ĘmۖIdeRK}.^g?O?&6"*.46s1Q՞zk=Gs10: D6Dq"0h[u܎AB7SJL2h Ex?c4+4r߼={|yI%ieyN9Zt8l$M1@E 6?f1js`EF bz ~>oRʥw (Ơ(N,L)S[}1yUYHn9.з} gk1' XB60 `t5ѯ:T+$Иj0θM1baB1lj}fwýOuݽXkhėmBJ Cv._;88;?$"!M g"SBtVBAMՔ/5L!RQ4ZDp-bE*]g$ 9R@`?w9tC-!AX@д̈DC JLm 1F&&O) Ee!+r`@](d{2sNiô/sS]te%P3PD1 DUBHl¤; 8!Sfj62+\i1MՊR:1QlE>gk-d%# 51KI_y۽  iw~wÃvvv>O^vc8o잟/e:'O@NQ0ˣO IgO}9;twe"Ch(noᄎ8;w7st|2'OWQ>X~v7߼W*ׯyG2/tEi[}?08!ϟ?:HSٴƠjmDݫ953g_}jƊƺC~ #"ZG:_f:1׸nlJ) _I31mA[w"3ͯ2\Y a:V{Q @K!Ux©lʩ]]n)) JDsPfk׏$2 B1$6@3arp7C`8@Df+=sfl)Tc|Q٣07n<׌a~"5Ut`1Jj"(6N5tk!APte0#Hq@CL1vh`C P(}&c7L$ݴl<SsUk%4brc2 QbPJ޽ёA!zZ$ǖcb `hda$;nٜBx0%"A9$`ݹyپm8醅s}&Mn߾s8kPhb{ݮ>|? Ւ{Isx`{k8L[&>y"vOdgj+gՅ[!SBMIۻWu*{?xmwgOd]qr|N=6 ?h=tק'ON_j8n8INaGg/kDUidwLIf\C '3cismnlwnNZɹb,dˮIi1D/rq @n."m9F¾%1j_HV-Ց$s&IS,cě\;Woޅ;F:x8FS6-u08dώ``n,0Z&?"1hH9\ցYHX>*h$7&ƣrQ8M"7D 2IRj!$DuKQW]1iD^YB.9޼v^Ki_⽽+@!G";RhP &S/ &7c7Z !a=^ivCUQ4no0,cՀV9_FD]!7EIT;߻u켘ݙ\# >@D!8 !>8jEʹM9|51,79&ɶ`.hjVF)VQv> sa)4QBj"K!3RB.!D؅lN i~Dq:f7pLT#\ )MNDf&R,ڝWj!jpfv5QL]@,2f Cf si$&`ju|+!qB!X;MfΛfUsܩܿdɳ׎c]/t&Wϟxĝ-noUGhHMjaC 7I,@SƦNz8|{'Od: ǦKgѰ<8wf?ONNN.˝+ZQH\ge{ӳ"z\twb]?S;t#W{^0I۴UoKa3"'rup!2S.n0xq`-͆lui.*T7H43"q3p_xQ%OE]kȄV0£5Sk_@)p,7g@MqfK k*bܜouPg?dW3HyԻHGL w䲴ƛ J~om S@޷50?`2wD0>q0 Ա9j0ܘ  IDAT[bzGXՈsQ"$ĹTuŅ\!CLhbkɺ7m)XH1Lo{ooXcKTM؝XM$Ԣ:`  [^vz*%YMGU'ԪpJFPжyMR a҂Lɺ_er*ni:&!89\1 Jf̕C!m-5EB8%2P@LG}3U3< zOJ@)@-E5Q(ҤD.ZQ#e bJ!][DoRbԼA4j`! 2iE$a! b .>`#[w0iR1kdy|rt *6ؼ$0 HIa$0L/_XŌU]jʄY]%S!L(| ZB6A9+dS1+߈$K7O`Э=SoN/vwӳݽ[ ֋?̓}zO> AOD̼#hVݝwV(jq҃yѭAs.qџ?~鍛~8Jc= K3?u_ˣ{MW/ϗ۷l&_|?y 'w޻?ǧw谌ٺ/u}xoX)djIu RrXwrY-!S 'ӖaJLgښs(Y]ۿc1iD YHb5m3֎@Fc.H "Oضi$uخj٩jXB`Gc a666a&;F4kݙ|rB1KtDo+ֱgmPϝ\ 7admL1as%%!ױ=fAb0M HM1CɤQ3rҍ;߂<[])"})nVk}[ha~νpa\(8! +4 ܝA\9|;LC 1.F"\%`BTG}ð\ܼuGKY5o-zjl Q5ZF)H fꪮPAUɜZaP7U58! z0#KA=w7]Vn&)Wa-֖YP4&H&ADiD8j{u5sB` RKx -'/sx_ӕų$+P ndnQ4gL1  L&[W:}VUPLNfA8*cj#9j!lED,'&P^koeH͇zEޘMdrzvCw֭Ou/WφM;wORZ^|qqvzwoM'[$i',ٰEgvf'ϛe3Nӝ;,.N)ٴx٭Ώ{RvwoSlzy:N\ώ=[7Ύ^8|m1vgg Noݾ)g_kY]6!*ׯ-/rG|CLR{avd27CׯyP5b 38rђ[&amz4ws("pvsf42A;A `syC0!ZeN7s='S Lۘ&!eްD"s1K܅TP0cG6 Eɣ‡,^*:&T^xA`O7@R5&0m # IH(^MLsnlY͗EyL\8fdB S4GS͹Rs3Ax!X1mpYdPZy$R!;8EouE5?5:5Ic&j lhEJNi>_82xe^]MUol= sctnԀ"F!$(z[/&g"WKMТBHquEi{:wU0<0kOHB7/fD9}_337)B!\)J5 ^:ͶNϽN7McMC6B'ئh2j`}0v &dBpfrb.ã'к"0#ų`Fz겖)Giq7,[^9kJ\{5+ctg$[^/uyr)V8 ׊r#YI)Yoek,.gP@14: 0^'Moˏ_ۚO$@Kŷvzv^Aj|:ݝm@Ldrvv{TlvvO_=k٩јo?V7fӛ7-nϿO>?yespx}zfٛVgן˟~Is;]^9ij3lݬ?}w^ՌD$ސ].KVelvU\ϾƇ?=GؗV.tTu{k~?g&Ļ7o_ˣW}ktN~qב'/>ՋgGϿgO>^>ԯN_}̧2j]l7gms8߹g_<7yu=@he4ݚº;A$v@D1ì"nCƒbI:ȍvBfdF8On.pqw1D L15U01u+&eI6hE@jTK*E{ip͗vݘa’+F~u42ԗ7L.Hd,e4i3L$y$dXnPF, cV*&bC9L5oF&xHeoDuB^qdU)6b늆YJ Xo8Hj#I 3+}S+v]DN5㑇{'nŚl#ؘ3FFdk_e"{Dޫ"QШMS1 $ =w`mn"qrW]ukw76mtry LC)X$:k TIeES~8uÀM& gE"2M Zw4>_>yHdZ|z<̦hCpxHZ*%܋jRUIB"!Fˊ"U]gSHdfukLS@P sP&dDU͛1Ǥ8tNyU%ue`x@ѵ"XJE>[V@TB Z&kuw#+K%mU|qs2k 2Sk$, Ȅ,eX2z90 Qe1Lw|jJI{8ٲ&fb Rjt}umFNـCd.9PGLLBC#S@ LYB>cbP0T:}˶fMJWTKͲx?ӝݽ_᧿n{ѤUw_|6Y_i/$dO /_zG6լj:M)h>~Y{}r]\ypy?N?'rq/ m`"GU??5OrqY&y;0^,oȓQ bZWxˆ^dn"Ue@N)U1.8Qzu'"1s5Xx2 d<8{]આ %͝Ylm(ð3?BnX2a *Q @\hQM¢uppb*`ӿV el Xg`VKeaXk"a 3 P,X Fެ#4ׯΙQpMFDa 99 p"U9eR 9*iª.bHΞBfrQ#0&!}v'ÿ{g7"'}k@Oo`Hw(ipl|}uy gZ숀1THVK"7(`yj6m@VpPM74gkbzz?ί!:Q6cdlXɁrzQA$ FD͗L@uzv|}#u5ד(ZRGܕkU vv..Tyru[HBwfCLò dvsҦAUD~hVoqcsw_|b5Oݻ;ο0mnl-m*YHL̀ۜw6&:onϟ>;8oZ\n eM uylZR=? -ەݷ_=yl3ot],HewuԑrjӉ ,l}3 8:6J$2ĪFB$V]mdH\یh]Xy]SBqppp|b}$4ޠ΋|X ԁ̍Q9OF\W*]d,rʭ= 2mѕeÿ\4 TYС: |2S$F&ps pDR"2 K;HoO~2zm`lJd!fO WM3Ԝ"UpgU!lߔ"D 9Y6` u&{f04Ɛ\\J4;Dpճr[ %Ͽ>iMH4BG>bs )̌R0rա2@~VUn6;H!0 {^R,./l֧~s Sխ€4L 1P :smcUMW]. #"^tlܯĺ7\Yǀl{ >?9:!5 &'H ڦ9~}`?9>}?_.˳j:<oѝ1;;{"x/@C}VEՀR2c֜~:ӲoF:Xb+aH]*]E_\_"y@,=*jCEnk{`6RP`3S-<I(g?"BbZHZ+ T~g ז^ooB ^PX0m#0u~Pb*[H<9BuqVd] NM,tC/@é)[1QZ}z# fՆS*@Lݻ^ x&!jN,}~\/>4@Bq*kyyuN`ƄP2IqЃK-c=V<A#X|(ok#p`ޕ zԁT!F..D_/.n MErV5ABR/̠ ܫ{5.wFSj62r R{$ n1H{s3fTI]hE3B(2-8k&0u03R~6#rojV!;n e@*&F&"&Cf=01:^*{ u,^dEmؚQr'߿pQ(Ð"$vL*Y ]PMp.ǸX5]'ŔmЁIxzEJ}N}UJFX7WrWttpbI"gl㋯>M`nk73~n޻K@O?y9Pzc:_|ѨHwvrߍ꺊W^.ѣ=pUF[O>ӫ˛ͣPMWW_<9}޽sYj{OBb V˃7ūW{3N^,6>Ǫq&?˯1ǩ󽽝ԯjrrېPӴu5N}fxC!$Ϲ'̳I`z-t^DTm<}B{3H.B]b5@Q=nV=3;9)6|ga[G"m9,a(P,0pFFD`#!0#BIaZex;嵞H!ĀHH"fN ́ @a=A,r@G*j/1(rnsꂛt>e[;]cAf%:ڵ\^0@JJur69+""=޵=I0) d0#PՒMH|xmv_EKo>[,V6qQQ۴:f'@17"-NeBNnFY @D!CPt{oj>Y IDATvAP@$'M` ܨܟ__<ٮh6]]_apAj0c &b!F2C3̇;mԬ+ d:M v' eD !!Y*z$z:Md2!8`ЬCoK0 a]*aN/ DC  :#7wvJBxo~1:{CP4FB,F4Rҥԧޑb7Z=jmI'󭬪9̦bY.5!n(Y3!I0M sGHfVVe6]Z^8BVe89ڛ߃w~Fv~s}ogc F[[WW?OG[{Ufvy> oQcL,t2R(Q]5 1A"33%ו#j@g"ӈ^jyy MD#2lQEBaFHkFP*g|0ttҼױ>>9MfuKj+HHiLXPBe Y!V>>flccGGl6ܼ7W'x_W'/y'mϦ;'/#G'W|EkݭƣN~w{0믿o-H^< g|vu(IBqއ,nksيNgۯ$DKdՒ kArl%Ԧ.UGB5LDM!m2s9vɨBkDQj>ۯ}@5!:@.04uC@)_@XwpZ߰ M;4Y  $P)~ 9bRGưrsXB,fVR@Nn@A-]vkIzhXlû]*a< u@f L93S`*fS3P\PXGQ10 Il8*wSjDn^W?z[]?.u?\Vx+ChlQ8x1gK@aĀ\nkDF43G$tZ j)VbB PPJFc+@C@`JR.|\_-rr_ VEzH4U"R%J`<. &F1ٴM&][WF܍]PS ܹl*]npZM 2_J u$\! 0G#;3Xĕc@. 7t^iV&ݘoZ1ۻ^5f$h,M*˜[@˚Q,g05l@zSJdRJ 0#PIr5g7k6db"f ,BTxA^"ml)t٭{ý˓|t*@XQ]o> t<#jr3*r$"f6Kk4x}V93sJ}BLv}1CJɣ#{DT͆݋-@A91{!ߤ!B%^F!ݘYJ)y |)]u4[`u 7ؑ_֩3\"qmؠp2z)i3;9ڌ NY?ч-)-Ԧ?D>`DĥSK"SR;YgUP*Ȥ)HY "s%w&B@6i]XF5jFbwԬvޮ~GWO˵ TmR+6HX F"!Xc,y\pdhFh*sZX MV|(zPV9\LiUY^  !ԣkq Asb QrCM]׺-oh=# ,BL+6`$7t<$db{a75pvHw>u d4>aA"x׭&55p dnNhlf )$'hlf)0Fͻwml s0f *THݜXB5`psʩ;TnJ̫xNl[Q+F;x^RQّ0Q@ B`VQ59ؿ7&cQ$ۻFONN̗Wig|~sgggϮ)[;{{Gnfkg{!L)uUwm%Vӳ~sF{7קh7 ]j="&cw>NMw}{}~vz~\5yÇWUwWWu=m?|y@upqq.(/Ζ]蝏l.e8~1twwouu9I]zZul[`Ό,̳i 1/UJ̊Y>V1mۺ=v)rW"w.-v(I k&:J̮BbRZ 8<6T~k J[DԱOBٍ )]K5p9k04m15]ʊQ89-ޮ~_Nj[V=M :"'AĊM5kMu`aa+ ,r6h`FhAu]HVI6\k8Z6Wa!p< kd”qtZ.*iTHjzUL& 9*!fЕu-L3*Z9AΔ;R ɁH\3-zݻ5$%Tlt)#^,ڶ'/nOfDк*@- 1(""@G3&`FeQ$%[MT0etepL6gW<&[ǯ^ !DQ0q"x Ls5Mgz1T d(9h5ަϖ ^l63Fjc6Y.oML]wu16}3WǯNnxneCHwDxRW/_~q}u_.f۩V]m)0 ^8Lȡi^K`huq6jDr5M ۮ3G`H6Ts]Wmۘ)#YVp'6UnĮ,!ۮOf9ŀ%$0 A|?lk#*&U3'f$qE,RUZu|MG4_[Y! =&uG|i|c6ĸqf fٱ* k] d ]otTDEHj%}. pkR#4FYMY͈]J`w Tra3*Ʈ%9*vI#"6mvrצ L-1;w ~ޮcŻ\M0B喤 3 ~ 5;rUkU9v@Y \s7RC4a 8X@ sB bD8m:% ,L>;s-: rJk~% pn4e#Wͭ9;;!;auoc(;J ̐si}mw&IU_]_'Mʐ24;RAC tG$aQNDd"U-N"a!r Pd`bv5}2\2#U=bjU@5\W]YK9-Nf) !aVP̀4g'!*`#$7O9e|M]WOzw_fZ;0ˊf& R V &Ctcgi\g525H1l]\kU HC`5a@D0z=A}u]5Cf.QC]5hΈfN}Jͧig$Ij֮sJ7`(K/z wwtfFw7Ӝ$`n85-Xn tmk s2d7 jBU.wt*&jQ{V`T$ &d@bʚLSΈllSD,w.No.Onѻ!!X(9!ǓADTԒ.zڴHI50e5Bf/ >l%VUpԤJH1ѓoD}ɟGRuLbI\q귿_??קgϓGܻ{t1GDU*rN]d:z2iߞI hT'}M7FQ._A1d)B^BEց8+XX( accJ"XzH܊Cp lQ$zZ"i` "= ;= zRJq ?mJօ}y&p%6uͭE#@찮aP  7d¡(tp_-C.¨B( 7&e>9ՁXWQ$"SVjpׂ#Շ\``ܐXDw!4`j=DT~e*RQK)|+!p7;M D<%P7@ѻaU盫.5jf%ac6CfbN[ͪqw51.KМXf I8 L⧼dPh.LBDY91S irh`U C ^ t@L)2[*XDb"u6 (М)A/䁄#JfppL9 IDATqQA3s`O7'zunBN`@vcZ60Ӷ8@D7dNN\ b n)ek )(*I:!'h\my쥈,V7[[W^";R뉫OW^-ELu:dw}~oh{${𫯿\j6,ry~yst9'~M]ד~q:<:o1RWgd~tŢ;~}ÇWWe:̷>ٽ~?*Gg tp^{j翼zuvls61&ٽ;wQf r54 RDI5ޘo>˾G4k{A:U=R+5N(' HըJ}Wx{:&AOX|wsv䃡y907d! t4jK%&cP hBcG抅e Iʯ|ᠮ%DB!7mmpl(gYAi\: o=NFjuA q$u@L&7M>(b;.ikRG"6ĮઊfDLI͔A0DHI90PQ܂D !%+N+I99:TQ09hiHʋќhY:)ЇJD"K^*SQjP61N4mmm r[@bl4kT͖]1ycQ֡#T$cʦY"r=sL TcDdČh%γPLdZDW*ΰrȄ^S ,8o9V19";md~EWG΍CknjP@ŲG1:gQpP|ػ0L/.ϗŲ]UQUOϟ6z}wgVӌY;^G[;k;h,. ;`mk˯w}b:={qr9]$?|EãG]M36e=8|;g$h>AR[0ebQag+&+XWBdCP55!Y 0"ʻbDŹUs<pFfehVB@-vz<\=o )CL4Xz YE!91 .D-FHD)eDb&ӕ QuwfY2"OmCjRRK "39"TMι(ҧ9Օ/ld!r9 31&C",^1ɺv`]fg }n}-~_ Ls;DU$#{yߺZת9F&5seTH|Zv= 2 bVf׽DjZ#h:46woN6N~̒ %ߥ*fY2!iJ\kPyUoAĜC0|xsk󧻻?g;;ۏ?ͮ陪NF^vWzj,0xSO(wSK^WCp6=">zbvv}y~z~.֛jW}qmؾBϽo7䪳 %oo&13m_.j^>hb}}-6hFlf%glv+f d888X,;L9 唈DOy}L%%1iRL,dk;* ܇w|Wn[ V'ool#ύKnlf hTZ5(abʈNCPSFl3*B\. 9$l L!gk"lssJv *]ۥ-i]. BO&9xǎ=\5eS%pfD^7#ы>F)E_?;8^ _Uo^8G;߾}}{9,[Pwd<=}z4/'mlo&u r.U_~t9}= U^oxW_~=ܽ`z᧛[G1PFdN]xo6=D j6=~{yrVM~lΏӷi3mN4M5={C{4h{g}^nN46׶5[$9e]hTRK%D\X.b3{_f3Ds1SS1뎍/E&CۀP @Dx0~A1т!k (0)`aIT YMN3{m9BbO+uP2)*~^@ըOX"J X&PDeW}VCU(w)%v\j?̆K[U5E J%ZA{geFE˭Z$6Fh~\f5vLLZY2#SSrZ9o!l@X発s&d@.f % YМ'P;u["HO_nnt hDCTF+ڦ9#z@4xf`h1'D9&#UL&L$"`2 SY W(Vrbnv191=1m89B]z#MܗqN c̒K(@ι3F%!4kN9;`&EC"4!=BԄx8B`ST$!^⚁()V5c#Mv;1"db@f p)rq&X-@sI@6II* %2fMX*p6:@E\V̳HU1ʅrYUNr#J}xfuCUZ̅Usʌ?'4KkW@胫_ $-nߖG_=IӮOmOMw!<\,[}{|ڶig7˾6v]?8}ׂivM]o!JZ^?lXtRWzY//Bǯ_}o-:K wwx?&GG_}g}- K.'IO?+q3999|՛o~* POޜoܽwO5z&IL R7_̖Gw'r~:lq5^_i΀HslVZEo^^^hPQ߈>@U>Fh&eOB \ף"ZtfDX"EoUB*@K"RG)HB #kP eVJ6윅]u݉40z4J* K.9A`4cF$RY,HXL&SRVCLස>qU* *綃6 Q։)Y#3zR`Z#A65F VPГ `2! ,^C\DF!Iw r6"2cSWL#bY (>x!K#rHސmRb b3͢<MO^RAh}mj3Sq]ld} ٟ:g~'"=_\_\ޓ; *L5hٳ>xܾ}{sc# '?Otm;?\̯XӔ"GFݶK!o?']ib9掤~q}uKDU.i\vb6ٿd4 q:]__(&<Vw($B! b}Y@"@11V]]kTθ \#*Ej`Y&r5t}<)޽{z 9gdA$єKʂc*N *bX,̘в"Jf g; xt 5amJ)2cm*aB3K$sJɄ <27ȩ ͒8V$rf\(✼sDJ66%V] yǞ10]Ϯ9bKDY! }͸D1fQ#@G 9s5EITob7c'Is]Og{e{Wf?^O}|/)u[[;|BUWȣCU ۡv9u٣3-.^F-B=fT=}h4fvՋ_,Յ#{{]۾v~O''`~yGiɓOd<|z1Ο? v.Li{Eu!umݽb߹ fJ)g1L"#d2X0x8:Xs!h5`#OzyϪs@?Lj%E0{ϾrDB(ԈdvhLEVh:"*UŁ`@V5#VP&{2!*ҟ\\~"e[\_+j7{63"(Ϣ:w*5J\6c"'D]8)\ׁbʅW3*Vl`VW.!8)kȚ:hV3-t`ޱ >ޭy/L#o~e)]% \28.V4T1MN/Ϋb̑ETRT""ILVWa zU)\r`V*CeDonU,;ýJWyy(<@|됈1_VS+l"%3#2c@Rb[2qjBΙA: YDr/fLhbjU%GHf S Eɱ"JCL@QT8]ΫZDl*V\bH )#yF0 QfcDCTpHhh"CU[.?<>@׵]"19fU);fNYO3̐RpDޱ1^oSaPEӾл0-]^.mc!"{/ "FuR%ǁv%9kJ_^ݹuo}X wO^MO*4G-v6vw{QX޾uX-ٝ_ф5!\_|䉊>糫hDl֪.)fm7K}T->/oi*z/^<][kޞ~-.s:u{q}cl6MO>ǟ|};z>[|'o98yO>{s Z\,Ӫj[JڏFۻG1ihVI`$ cGĢU>;i6h4Usʀ0Ɣs9}Z;F6g9VFp홂d j d*V< DMƊJ1 bյ#DQA5,'天jeƆvK%"hV NV[Ԁ`hi3@24b]Ũ  &HD9gU 33Jm4<|ᒈVnFTeH%F*E-0fPl ȐTL$7MP՘2 "ՁS {Zܫ*of1IL:@0CC&;Mޭu'?0?/恄̯XJ \M*dC2B,%EnHd UTlxU+ih@ǯy]W3hˠL0e0RjKի9ڀL=(!y$03"SQcK "x4$bbfIY-gP-s(j*0YF`sS-73Cm>%llxߤ$,=܂8}:h4[% bP=2*U-ZXF<=4 IDAT5ij9L|eRDlB2DfMW+]U35,)J+o<3Sfr1?8íh2ˬ^w ͋{oe7 ՗oN^:Q}{z~돞|SWWWW!;d~u5ߗColͫiytrzѶ q[2lE2ooNIl_"w.REc{-^wnwQ6b2\//.lݹL6ûmRg_~4>CwMd|q~Ua4\x{tEYPL+,>crʢ)FF2ȑj5"}Jιf_VlH`U AV) *j)`IG45!Om2+@͌c$Fc q1;nBreXN4Ao[E[VԳ6diE"G˓ONN^x^|Z|2o8<;>ٹsrD[G"{&x;~u299ek[[ۋ~ޒO U9SUwe{y}ِYQ"wV>Vz( w8RB@C ..|"2NP(`\zDkaWX% 3s>bIA@`4 gVS 1Z,1'4$&rΙdTt{HxDj єQTh00L@":4&F3`n@a(rQXNղjRYbͅb)\`蘍줐r6P @LcN U;d "H~cmjӓ{vTA!Bh`T8:^ƴ05ՠIL)#_{O3&EDL)cw,I${;U˒R\vqE{IAAR\[[ޙ/ڍw{}G޹{w>? aTblWW kySTزYf\aĒ1913- e F l;C/6X5l;W3P(f4T⚙ AC0j2ބR / ¢aVEPP UYJ.Ʉ %Kf,,?H罘:D$AVMz T9([J@^fڀI r-j eXHgSQDΪRc՜E ꘣P8b3cG̜Rf)K]JYTD'+Y3,bYw?s {ğ~+Մl;\Z\jPM\4Xu3JmWBxmu &+a "*[A3:41F.hfc`Nr7uS0f >8l } 9s``m۟/x}}=KBt! 4LCXUGȒR#GeK91Yp1Sq I9#PЩ:ԗk,ע0XWXy"iJF'#EjEMK(UP0Ĕ(vb<9MyҬ׾;wMsb䑐 dɒWf}<&0}J=zEuK@W T\ndJ(,jK`nG,Iӌd9bL{W"94o9 ς_|oϮd9֣z:[g'gg'g/__0ÇPM&k{󎚪|}tOϮ|1i*<^mhx5=K*߻Ywx:o<~ciBy˓o|q5ǕoݿHw5$i~uqS<==>9~yt?j7_Mg6Gd\~mtssזbDJNTLDH>Dj*Υpz}EȈU萜l01q̈f++5R͆X30`50@UBU+Nfʌ!ǡd`;Ǽr~w! d\fĪ:W#Rw\\ʾ 0gu%zUYJR$gD˥qY)ʘb%3 B@N)Rg*9"y_DE3HuCʪHj r )f@ʢg"9cfDԬ slSU&w[G :뷿"#RV_d ja241k %GfeiM*Ax Ӱ  2pаx8Аb \M\ӵ $u瀼\x0!aG3sLq]YrMՔ@T}PI#=8(Ex)#e` G @L#i5PZ@C$4C+̊Ыb$nzr  ѵ*!pٝɣ'/>|Q\p13PQ3ev%f`"p֝Q}==7xc}s\ۮ]s)Z0[*SP)#9iad ꢪddfs S`1e^;>y97/<WzX?ӫӷ'=jxgϾff|>գbs1;&wθʣxݣ'ߜַW`˯_LդMh/ߌ*no__ǣPom߹sgϞ!H{ #[n{m2<~{~g{ >wOvEx흝 ǯl)-M⭛N/J-x}mtfj!TNrv1CR1Oʾd*T~4/[ev.xfqazbRށw^?78Z->1[>I!IssVrҔ+ƚ`ɩ`%hT)`44ljV`hE X)@\p&'@`@8P 99ίAzUZrlw4vaiiDMQʶY49̅v,hP0*h91 Il112;,]%9GaR"ɩ՚ͭ*Tr~9]vmvtpd {ۻ->檪wwwgevM3::͓'O޼ycfUU?z˫s&DYfӺXTe PUk]; ipD)-pT~pnqlAz{ӧ_izΚxv,JO;7p|r~ٞ0h*?lF[>췟ly}LD_~e/{4iQS'o^╢Ĕq4k%)3:GP!Mumۙ*!cNم*+*r3:}M*JE0HfW識D#+^^>%;,`43x W:/vf@<$ B(^%06DT/V2JD{'INgU}T== fBiAi߼&3V\IF 3}_U]g^=}Ȟ!宑 뮪L翳/ <,V9%y-ѵ|54]rmzp/ Yr_,jE{O9b 6U31hbfDEBd )%T 1bY)2"9!v͔~n[H:IY_΃uP65h]k<#Lh >gj1s~4:cGSLY$C9"=LXVX8c  f,!=îHD|P{ |K~ϟ\ Q DXB*dhlL@1iVEBvUTqsfv 8U2Pz⪋&9#F9bD״ > ͼCTeV~r)%b6S CbKsΒ{WNXN {cNq=jQX,\a=sxCTU(8J_ڐSΈ " h&K-h,-ch:UBSC9rjFs46y4X-.'G]RӦ/WissrLF {{璚+W^䯾|F#E&L۫Usͭ> '[W~͗}Xc_]̺p=cQٽqtwOu\,^zqm6wN^*m>9C`<|vw|ᣭ׮|'}٣Gw޻\ON޼9y4;~ڵ7oZ~_>ѭ[ƴkV[tx֣o>_.x|G?mr].,Vpw)Ir U })/.+ĔT2 F6F\6])V͡d1" Ʈbv2ĔL ?0oGbYr S2~6P"&LQ1TE"se yCuss){Zo,޳9!H}^#43+Pkof6 ){̊C䶰}Oguk، is܁J2Ř~rs~D?ˬiDLSRPy0.8SSSf.mIιE)9G@$ sf:8QɪDܫ7RYӝMֻ^i_Gkug5'#]{tl%zT\.'3E VF:@1@3o@" `=hP W YI|g_(^}00ԁ33ةL co6Y/^y*S]oH܌{!# (Ok+Zp>"0:Te)WX+ EV&fg(I6r[#H9 3gIΦ̌99N12' d#)V`W+Hua:]Ô 2{٘hHH)f#!lGQ#`b6Ć[UZJrpPy)Tc`2!.ɪbJ)$QQ#{tk0!ˠ"#yv*@MrEsG1όJ9CQVb9a격Al&PR?dP8O777&mN/׮b5܏EoǏ?b6;կ޽b\o=;}|ڍ?F=<::9?Nƛu9WkW_~ݿ4{Wo 뺗ol^u7-/WzPU/.](*׌ֵ4ycJM8BE)5XWU2PI)`DHp و!BJż5ǔSf,}c[\W7;c0!YAcZ*`6( [3={=z2.~A{Gs^l?᭽QV vz.\jgBU.[4~סuE/e|CH+y LQDÿA޴{VMEs"DĢ91(hQKBJ|9t`*rڵPW!eƜ3na^.x۪|C$~ңkyx~ YԄs#v+ԩaJr֪*&ybJr֘h80)p 5/n\rB!$k͜B]A) $G^4My&rӤ`<,ݍgg yk2$)oO7$fQnj9gb3)r\,u兇5m*fJjk0/2j&fAbWR+9`01iMj Ѐ$BHTfZ' Q{&9L'۔77Ƌ;Xh0(cRS\?,bR$"ehN9TD~:۾TS7Qf*H!c.`\@y(U@C;埼z];s.Uz__lnNv)"reo[m|S^%IӍ͜9p~vǓ{'H<oM,hVoL6ٺb &ܚ_^<~F\X; xzzv|i"{>!RI{/_>я?v1ˋx4\.YN7v&b&qήV!ݪ]TdsFL]{Uo~tX&_UA͈)'5SC^Ո1)2{3`CUǓe92^2 " Dvu@?n&7Tђ=W08MQU ; W"̄ޢJVRSXG8Xk 臊R TS,-!Z?&\0>GILf,Y,RO2:b ?p"B)(b=FD%Ns޵LVK"՚7"j<6Z]9fQ̪sPMS2ԕYLcsH)fC ,.#Mbs&p?eڳc]Q0˶ @βVHV*&Ѷcv Jk$6Q@ LfPļ8= s.Z}9-Bߍ# #H*@6ep4;{7lH"~xTwN\vjˮif(J)ŜP@sױsL"\ -%B_nk̑RPS0ECF S}D6"0wc^e@Acl0qA48`r`P&Ipȗ3U3/۶Rq\2/yMytӃkZu"*DSl.儀 @HJ]y͐SnGXr,uT/~WO//gۻo.gk׮Įtu~ų676dg?wODݻf7͍/>O?|E_ٜ֦y*o攫7ۯě񠪸']J)+ћӳtL hSN@b*W$!B/6ʟZԀZt܅VE"".TD!3RL&& 5 b 9-3j6"eY0@Ԫ9L"Zh% /n[Cw75u6[4G!g@ &y:"WfH`j2傺lz\1"!jL S;i˟ϞzsDb .33f5&"bW%0ԃZr~Oh„`[ ;T>%MV$b 2 f,Qa; * hgѽ[@8 n<_^WmdtRJq0sAKl^U?uU]WCF54/:3ȔR1/o*!dɌ \j ,1 )5բrX.֗|t+R)Wg'˧{)ݝ;~ݿ89GwyӍ:t`\5=;8uz_&^F~i >C*.I7|0^?3,Vww:ԁ̀4Up8-<_.gL,TTĄŘʔ1;) q(6mͭ罙 jX.J Iiv@b&0QВ>') ͠JY@ c* {s" _M뭺<+C#Ze:>XLp co]܂ĵaom^X%*9S3xzc1B/ ( Pn$Ree[ 7*3"R%DBJD$ۮ`1?3X̖BΑ":E@k7Ea!bݾ~OO"8̀=D\ⴀL67UDrrZ- "rR,[Gմmwmmo٠ͪ%@Q 13b0yǞy4Ƙ{9r D-0uYgle KL2tW\t>"&΅VeU#a=|pxV瘢h:u <Vi9T;f"Cp~+_x>Η͹zfܻ<{B-#Ҫ13KetV5’DԏH>+_f&4Sj52W+ڮS5d˘Vkj? O.D~?˗&G޼uw?t_፶iwvw767^|^D]0S{]ljpp(:T/^_rk+pܹ~o^~U?C2Ij~wA]Jvrwߛ]hl nwwrr|4j~!09"]Ɠɛj6nT-'r fb;yy&K^͈]!LS¦$ۻ1vIӠݼ2]5mI傤.b#[{cKP2!@$fM%xň`T爈 4TX+ #!9W6>pԋ9J)ީ{2ldg~՗ b/'|/"?BKHBW Ra @%MٕOyLYMluU6&fR EdBb]0- K8f]`)ev=,T }ޭ?|kcb@'U@~ jnjHBV HHL H]Ue)7C9BtUQ?t U HAl &;;Jػuej1oǦALGQgRLk}qf[B3+9␜srA+ڶ*0՝UfI)1";̔O'Ium+EcSdt}"lLLZ1`ϸ}a5 @$d)C|g5"w^= e440a]JX){S@M8=CR€MbWö[JslitM%T,˧ P84a2leլ,jV-ZΪ,d n'L7}pEkׯVb1;?vd*ݶVU5vwwh:~E1`zy57ioOgNd}Σ UӟƋ_Y?|wvh+7vvw?OgWӭ݃>xU/.2Nj]~xgu1ݶd4ɂ hߨ HeΩ$+U'sj0$fZދ̕c ?'! \9eP-XdWs%avf:".ofϴ/""ڃm=!ia׉X<(X7MYq#[Aawf+Ud)")@?]<Kcsf"*t]W;f朋)wV@IDC.f{Β)ާ`2f^'a%#0w-z?Iӿ/O5CENr/#^L{A Wv]ZG.#1 09PT. | 1P E0& _ǓBs,kH>8?\㋣nv={./\ fѽe؉aM7;W׃L]>iW m֡vF>7OKZӳѰ }`jTF;;"wͩի7eϷwÑfg8xboo޾BG?d]@޻vY6ݸstz4zG?Y.S٫PN= .ΏN^~"GZjfv.9|5b:NWFUV0{B]3Tm_s֫\F eJd6 3K3յn-n+f@3$s%]I eBr#Ay@T(ODe.y+i%z8@ZKR2qRER~]69(JBȦRf>D3c>+l}G"Bzd g1-u&RV˒UJ'2ZŔՁՐّ(oU!*1U+ǩScO@mC!b P}T;=xn{P9Yѯ"ؐE} G֙/e,V ńlD˜)8"4@3Pu[9#:`cԛKʈd*CVFvbjVQ3 &7SF@;&~c&ștk84oj2O7@^Nm0ThEeL!5AlY*8`LED `9mrYWv!gg%G 欈̬! '2,"u*Rl:3hC`Y 'nG:rU)Ry缂A*Mvc!3d."onըLrG_Ά#c&pD`Br҂B]ImCW\>ilAU:,r'M9sJY!t1+mnn_..l9> 9:9;{s&z:\twwr~w]jSҭ͝i߹ghDD7oGc|!4`p4;K,~ccKE.O='mus;@>^W׃Yg~R+.pbqFj_<|~v\.6߻{}E޻wl<>}3l\\?޳gG_Ŕr~q2OWWmJ]חo,{lh$ R.J$4m]YUr )"},4w=pDEճ+w}P$hP6q~맺•""!80D"Bt@#dd_@$\A$l6zCIO.\`~9@1hEB]ºo @AG 6e]AT}":ǪB` G{ĐaD."Qb "2Jι;3)AӽU߫f-#á*LYʫ<HVCb&rL1&SQ1bD]\F~.}[b~?g0uٯ"MTet'B@L@D9jEĆ`73Zs-xLLF0(b@x?_u0/>)3mXŮhystjeCU e2j^[;w>8[.ΛE+4@*$V(M^iHS2"#Ѵ t:.˔^43+XRQͪY%lDD]q3˒ߎ@0Y fyM G+/$:4 ꘑtpm7I$ ,]'jJbH9s^U=ysb6a0׀rR/fOuKAnLzPe.08IbT ,bFDjS`J}<1sjB9LyfGO//g9ɵk;ۻϞ~9ywdzřW?^x7߬V7Ver6;9~7Gdog{\޻uOFjōDfE mLj/>s|~0y{?qdiOGD̒ P 63;gkooύhMMUY)#w?x$Ȼ۵۹p̀BVET sxoggSu'w&a=z'z1֋Y_|~y"r,~?^nf~>=8MҡT?_w|Fc]wnKbOb0Mm㔢ArKSEDM [uݨ9Oѐ}WuGWaHn ڀpr-@l/j@b0 "0PME4sHUd!oDj eofJ8rQy,ƐdĊbCZD H-<5 .!5krs_6"\3V.zJfa.@fW%Q6kIybDDW5I!DJ D^ET{$D LsYc&ẅЄh)p-z0SY M =z ^ysnS![.`8 e0 CF31f{5*'@ i0Q#*:]USa^ bs'AoZRj1nBӸv)%>$8=<9y%@{4P$Lf49H 9ԔH1$,D@xZ)% z 9tWW̨ͥe&F91E@s"Ib:mLl$!@3_j{0Һ )!sאX %*h1I^Ѭp1Ύ#̕ U`&nӥ;v.W w__j^|1NO1&X Ï(2;gDFqRSBދ4sY%!=~eͻ@=y~r֖iO]`r?i6||x퓓ǏS"J)9>꣗O>^ yI/:! d4v=WW/?oB'moӿ^>?zk{N^US=z㭋Ojq۹uw/~AMeT GWp]K0ݾ$WMSH, B睗Em$K $IuӐ+0~o|DEMD9S5ad/f̗9rTɵҌP҇`H. ώY1 5&UnCXh;n[hrL[qP,ښi3D̋,wC9DDp{oD,Ze `(JS0HƁf`;5c&] )Z8p,MfCLd]ĒDf.Jj32@Pzvm*DDEY:ן17 ?h-6۔ض-m8&ĘLHͲADD3Iɲnz-;߅)dzrM'|>ڿsWMLq09:|P::}SPvl~̠F? ],W, Eb`O(əT~B]10"ZKv:!;v$)@Q옒)h&E9GBfuԗ i#vF R3 (!d&A(&5I ,JfH;ں7MR~du:ҋ&Ƴ`̥9FBt9gcr߫^*߿uTN7P"Z0LF1!j~C8bf&M&mR[-DvqDXE hX\_ Ih1 Y\:o;^w\\9_ܺ}ǟ{'Oޫjs@޺u0p<*jp~rBʅ7r<~LIwzAW҄~eSZ*WyBn󋳗)vwUw1oVܺsxw^9RX,Ib˵FWCfRQ.hӏ?O s{f77ޠDښnUMoBIQ XeF3`@J޳RyذN1Q6W^gm!3; & 'T7 NU$1@D*јo\nZ40Սnd(Ր@Ω4!6vd@-?0w,y[h5U.٘,w}ֲڗ H^<7}nH)ۊN1ŐVT(c9DRTp޹, &ҹ)Elj49RQ1E"t Cjxkz ~P1_2˛"0ܔ͈"ڞ_[ΧqP"bP]'EE(igWHbЗY竹n-W3@ br>?nm흜T`{;2 a{gk7E`tNJf*{ r] A6ABf2:- u`GIh3+ S$bfv)Z[#HRJ1E:J4 FAsE{.D}X 8b 0*HvD@3͸ݹ y8#AFI,vʪ-+Gi:7|3s2l ^?9~vS/gޭV`]gS\֑(bQTM͑)0/9__ֱY1D*B\z}ˊ7cr=:9^w<9sNIS/^>7S"߿w^?;? M7ݿxǓdx\,,ez]w:"G9XLF`XMLc,=z{^/?R+ދ/lvsxkȋbv]h4/ypp:[[|z9::&Ii{ѳ.VA,b>Q|QU\<{ݳ/!Fc0] .W^$I*4Au~_sW)E@AbC g׿铫뫢|'-rZ,W C(z'*G^Cۻ=..^~iQu]<>L&n=U}l6blwvTp{kSVF,z>f%ĵ^t%'O bbzs}i4 G!4Gիrgg㋓$ͨ{͢J/Ug?{zzWO׽Gp6`\;w_M%,zT|xNvz MN"V^40 nhR DS&"fymoE"Q;׋"q @dHiQuQz=V&}J֪ߟ5+2)JfgEh0/W5;vwvbӟ=y?410"9fu1Eʢ`Dț,M*)w2qPMH #=jYMyFom4WADSQ dy3`,IRdtI `θSFU#_x"ʧ!ۓ0s:~Ӑ$M߿=OvN吹$v鹠LVU S* (f!*T;ށsdՍ;_<vyu\z:W*LgϿKq1º;[ۣ( DZ,Uizz=F/f ?? ɓƓS)N}|Euqԑ;BSI{:'O$ :6-g/]-ӫ3дggb)7"5L|'b9XNWUo4g9;ܚo._rmo~0pjRCW1ۚ|DEXUg! bJkry*)F0[- rGD5^gjym`3/E$֗Tr3.; F ue$4pLsA="6llCt:5-y3Dj6SWg.<䆖h#,kN27\5#GfFDD Wq0d4AEM sO0DѾI9}1(1T@5 RΉH,@E2YRU!D$.R$aL☼G&QsMqF} pj]'M'b/qJIz동vRve m ۴CؕE&P% Ĥ@P5X !3JRHҎUn/A@6nyF A̡ۿ{xS7`FαiL3,g3k`Mb1 $ܢFpT(QU Dp~3J@SJ1̠pkox3!3b,,aB);_Cz"$J!F IDATb}EQ Jgb0"`H]Rd)},I@" Z\9/3h14INUfwݪS9.l=7-M<$<\0t#txzqX No{2貮+\1=5}pi2<^PbuD0%[#3y&0$5]uYv᧟wߝ/ͨګ:!bv;w=?/_\]/fʰΛo??~1ܹ}g4Ϗ_k!E7Oq {j)/3S3!wUg2LNH^WGow3_ G_~ iwXnXEy2 F[aO;{oKD,g/M WQn*O'{a=}zŝ[;'''b˗D\H !iD Y N]qC(ˮc^u("jY7bF`v\}k9d }﷢٣T9D A@@-F ɣ{E3h=7̀s} Dj* h^̀UUM )UTY *HnlvkV8jaknr l#D(J5Wcd#=n51s(AD]Ӭ "I,"1i)f 1I&e+ qHUĒ"f3,^׏hm!᫘W=6$PU-b7צĎDH8U!0+LS4U4C0V+$%S`0j v"^^cJP$`jՔ°(o.IbN<-WK[$QA0C~ HD 3yD J"逘y~!c#3-|Q.b4&4ͩrJVyU(s sf"L)DDss9 E3`We4)a"c s7 T"P`D%'I E٫ z)'j=UԈfgt(1o\]lv.Mo/r{2>9;EgUɤ;|*bysu'H//OΞ6{Ec,sf^\^x_4uޫ:X7Є~|/Z'_} Ûtz_(w(hww筷gUnv_,`a=3N:\8Av1iR-puN?F=wUED,)i"2/?ud[Uɘ(..k=t7갬1I\/_<~x5sO60ݭ|qEQޒXqQz\ٺvDLEʪS:ZznA,33MLTZ U/)]܈쇜W=B33NM5P5@\ա(ѓk@'9zQ!I2Akpnf3%D&\0yh¶ 0J̪69{qI'}"b".R3kl#I'eVϜ3EL8f)liNU1yyoU<{dJF3&V@Vͳf+?)z^5~5Vx;p93SPD6%XesC@3RB$E**-66DCA/O/\bI<Va ^}y*Jj5."f TP3yU+=#PD9g] -$޹j6Ķ#l͆aHUSȑyc8D yn, 0Cv<jA>% 5RTE>&tnQV:)󊈈;[2PeU3g%@6eyPX6dFϞNױIu{t04( BN"UrZ-WeY9w>zh8cB eY^_]lo=|>mF;fyzVn؃!$ |wry4Mln9??/GIӕg;>޹;d5c^78mUu:zxr[7^Qv:-VrqSrV`8pnxπlMMlPDH3dB HĊ6S0R'1 ʮ@[JԗZ-_JT)`#@D BC$z[[qǃ(ƴnVPiBdj-}*!t =R G9X6bk1(PKԺnʥzUXNm!zb0Sr339"UX@IlX"BPd20X mh8jtwf\E4C"vMf5"bAU%"x_\5j&ߐ-o9N&h]qs3nE.Ho˳eS7R,jv>_LS 5fW"jK#%G Ԭzɞev;ϟ>E?u6SBL/.ƣI{nxR/NaD=ػ5Y<ٳ'˓GÏ>..ΑL{t:}vXRvORQȕ=.M"~pkzVuS72N߽:?%۷o7~Ͽv K1.t2ΧiPb4BXC Alb1OPUvx '[۳UUvRBw'ܺiʪ"bM T1!iV ҭ/(ZLS3 B vef߫3QR՝lKiN6ÍZ5'%)ygy}́-axqs+-oFl)ʐ67!湭m-ʴg&Fd-1D5.)v/=fr f*H@DN YcYSASfε)ISҭJ&nbQ%{"0Ĕ,ղtLvĔLE%{kzOojWTW*`Y:8 UgJ7me#hU;;EXd-eDŔZ5qKSY{f@3Ajqz~^:I̳w\A6~(Q*U!wBw<2`(S+yUB6GU)LUQYv=n߾X.LZq034 dL΁jo9/+SUQ`iАG^!qJ]0G.bbahبb&L85;*9M151(sp\0.@DޑlF#Dsw!K|[ǘD=B0(?_]KYHLe|`4Tnm)lބ$194%bfF"DL bB㭝뫛7|DܙN.///ΎλA]/ lMbgoG?|? />o杷M]Hث^\OwuU[o֫UޭO>}y]/h2^ͯHמL$1^vZ;Gޞ]]Q~_~'&,)-cUeqZG3S1 ݝϒ݃1)?}b{{{9?۹U// qyuy^ *Ry7ڹ8v:& t$%B+{*BĪ 4իcSJ`@9[EN0< ru?/ah" pcIPVپ#2BrԌe -{`@Z֠mi6c3q#!fhƞjJHЦgh= =6,q Di4-yg7w ?lD3z 3Z>S=Hfb3?I{שĺnʲ$Buηjb1FtJ" 19GID9thL49,+LTV$(<1&\L=z_]*Gj^]RD:ςL[Ijw(S d276Dյl  }|=_ ZUB,{M>kBJZ#pSUxL}P(0"9}ը^eiL׵nM:`Q?1IY/Kf_9J"F;뿎wv<|xy5],|i٩fÇ̞_O?/)ûw _xgO?{xz}~5_~ZbRwwCI!UE$1YUv^^d}^45dYΖM/yǁ:/FPT|MZߜL/VU]ĝmo\]&{Y R޿wd2ZodS d1_030-+Vd(7nߚ^O 98l%m-K@idE$rC'~e|=BJ^cBl֘o؎p\ 3mS4\ u{ 7:sl:#tV<diȵ [Gӊ_AMMS%B,af8f>c .sc(DsMnS*K !DQ~E{B`GUUXLw=5Mbuh(("/V+&Ӳ(bkG^\gh# Q? !lnɓ痗}J(哧ߕ/='19Y<9S-k)"}QݽC]ԫzkk'f D]"\,fռqoPᄹ֭[?MC&,4+Cf?=ř5Pqvzr1 YQvʒFl[};Tf;fG9N^0W3kJZHyT爐8Gvσ/>5{um@D%U-@IfΊ VFβ48Ȼ}QLvW)e&<^@0ex4OcՖuXH Ky)wܢ2:#y"fc&Ecq*rڄ@$ 3T1X#ָ@Sgos>#as@%|@HG@u]=3hM:eሽ sgT[r+{D>>=i_UecӴ^]?p^L}U;;˫h QM85jը*eY\_-Wh;$ჇNg0,7Ǐ&7|tqqZNNfܾu;Ϟ޽{gϞv''ǞE7&ۙVeŎc`ڌF3|yyX5ᖨrv5Non&{7.)&gW׳fk/Ew'[g'؁x3_n~o'իeQr!B׭z>Oݽ/'{Qjxlz֝jڄu/N_r?!O*$]̖:/D{eIr GySRhA!ęÙ3oax>R`7кKWfVjqeD*4Hx({Sqf]>qtrBֶ[-1FA6Evw0/gU])1"[ӄ4r5NJ*Bd˜͚,\UEI51պv%i&3U7Ri4|T; ]DxG\K Hlih~UЀKƪ*""VA0H$"DL^ZGDI (|$bsU "7b!s6YCHcl+Z!Hldi6/Sp(s3+ xLYU"b "*uB2Ǒ̍;_?^իׯ7{铝KzNJa ׻*jLn] e$@ );dW",J#rΥ&hH 6F բ᧋_a"Vny# IDATOg>?Vukmk2"DJ+`( Ph I\j1XݛWg%`2Ҍ,b Q`U%[Ld(2Nfmܰf h0DW-b,ksd pl8d@!@i-B֨ *ljcarch#TvB2(ªB4Zvfd2Yt:EsAm"4"Ї_?~pu5tVpyȳ ?e-ky9+ˋj@vRezVRGĺli,wֹb D >oBԿG?x/.Ιcݹ}Fy۪pt|ksgwwჇnnw7:"v3v4]Ve)̰]n zer]WcB!c*l|uyv1[,(+^g8ia<Ӫ 9xv_D´]XcmY;M!H1X |(;u[7zk@JE`fgHD6)vQTM$ (%.,b, *$3'dinם0Tu晳,PkX0^?HQ]aܦ]&^wU3QeHHLCt;$ yb fxmx `4-E&cOL+jk)6"ky](&r X5c,UJ-ZfdLdu2G BY{$2!rU`Q eY@a^c YVsG$cl lIb^տq*M4NyyLP Nźlٔ 5(j")s7Ar~cNGfD&9qc0P` 쯙f/E #d (W9IkX"ؼe?vU9bQ!HlNIr hא+1i])P owW H2Kls\]}CDc!qY+(#bfgK\ az8pb1,zB@fHDZ ($Z'PLgUm J9XLzNɲ5넼V 8<9iw[e/ͼWϿ~0!J]chYDTBE=NcMx~5lo0Kf]Պ18kL |'0bUȗz,ϊg@PCEƂ#:b./ܾ]|z_֌F~;}S^{(AYwwvGWoUO8~Ç?^Y[}O?WWF E N`V6(,/5 z]e,آluI;GTnۓrŏJ޼y-[qb8\:;? ^(oԒ繪ZPycDP_<& umu$3ED4Wef#0[Ե/+~Vյ*bDTd߫w_c/B#xH"5H3.T@%(.QAɡa"B" ʊ@ 1D"E@dt/ j\7@ `=5d[lYH?J0]BjTZ cg#q5>C(;LFS_ P<ԕͳN唙;jB( (#!Ѡi`k' bapEk3GV$S MTWaU"U 2vH@ 1I2ɯ IcaTB0hCdj<1pkW$HFc(,116xWBh<=ӣ~; ֘E̜SPdV?1̝^U?. eUv^8 @c?̮ծL-gc1J1+:E{U՞ϧvm'W7n<>ɍ1uuNY͍=_Vi__F]ww\>}\>::;]~旳{hgc}uvx_=`CE^=[ ugg'QUpa&c G6""+%NHPI["sHmܘ'MT;l Q D֝hԥUP82Q• ,$ r; & q|NhUI$arL}:Q,$ @M"(Ć'RR%9Jhҕch!dټ(Q##G"✫_lVc1+Nf4Er43 tfiA_伪WoY/-jJ)@t̀Hn S`d4}Egf"LjbilA-P:;B pg1,0DX`]# c2 a_B=W `f#hp#e+e 1!D ˕G7vϏ%rk/gޗL+D!D:(\1$3$?q,>:ckޒ +DHkHP͈T$(*2$nj_fȭ.  :6j-1%KqJ> 1Ynkd C-CK}k TuI&2QL"(3H}EYgCh2~{g) q-!b/'v] ;l6Uw?#{fdYV/׭ɥ&\|AJc!I@mA|Wtd )XX??=xpӧ+Q)jtʲ/Duws{d6vw867nݾ3/͝eG>>9U,OjiY#}mnzb5{ͳ?,zժeM|~ʒAȭ:;<xd gON|iNTqڛe֐&wlQkL]UJ5VWӗs&MoFx!]D&4EPTli@1&̤դfX4U!ވ4>H1!1˵CAyqqDfn vIƫ%4YRqvz)ټ򃪂06~7){c tLmDTSGz Cu= TWU "Wժb90D o 0^{w%"B}|f.: o4~1N2)%U5/MMC`h&5i#bVHES^z,"+5T@I ! ւ(7R_DPqv( d@Ef}}1@J TD P6dHK+* pZkۄ)7^]MGW9lKxU P,EOƳќ Xl + Y !=>2eE&IuzNš\Bd)͂j  )ȶTVrBCFEZ(C2 C#!4BT5MCTƢ3UY~zYv9cQMd&@ !L&V֖ٳch, 'OmoofeY>#񈴾up|U)F/O(AWp$k,`3UT'x g>&CUzAQ8D|EX͏[o4~[?nPկhv|rev ˯W/.fG=y&"ї( }҇7NV:RMEFl[o 77>񴿴"6WWgόͶ xIˋݽ l: >۾mW _=GhqcïuSd53*[<d+]B-Ny_;J$_kbzH Dw!l^8%lL<P2<J7/ e)k=j㜂*Bt(q *QIXHh84(F=r2nI:%')IpVD qj\?Y*@SА t=3"bHD"p'37 )ٝ|( |#6Jӆ:/t18ߺq3  W/ߩ~-5ŗľ"0Zplc)ST A, $fi(*(ؔ&9YZd劂{hM @\ |@$g|떓)'b(hH@`Q E052Wku_՟ݹ}G|zz!֮txn%f(Z{A VI%fΑe- aQ,f$"uЈ*\ dRVŒ/ r%J婢%Fz[9 U@  7( .9E( j rȠISEM5DQ *%:έNVqVV˺& p]nQU~syYb}cc!v{}o"c!Bh"GU2 _G((EYMHrʻpetu>v:<|dʊEhZݿiCc?O&Qslyyi޽٧--u_|wյx^tZ/{aQˋ!w~t>{tvkV5uMٸU;M{nTzZݥvwp~~|#"铳?*<2Ȅώǣa1dggVѾ}G?:;;3+{nn0hRa 룫K)Zr&5 y{DʜFg3$,2U  –~`EH` p©2@R0!&!91iyDh()S!6Z6ah}@iL565=?MDfS ޥ8FS^"X}ddf]T%ȪITռ 1VuͼϨ^wuF^ Vi?~jhy7G/GUk'H|48ht8׮曧{U߲~-_{ "Ŀlx-o/)BXU%~!(k"U0! TԤOo Wd"dz!0hZ`CI`P\_ݸx" x%p a>41d*Jh@5!7wv(,$HTgD9|~ Bf{h #kFo?qpsl6 Vb/ϰ(:鱄Zuέ EޛL'Dgfk{3r[`|ȋ/PǨ,2S|XO-T썷=<<ɑuq1-v4jh7oƹxsg_YZjRy폧;kWן?Ao^]" A O`PpHGG1VVTZ{@a"g_& 0"it4!l6\H"("܄)ʵ*Q6baXR+^r`y1`Ph4 cAc CH}c9f|! SS!ωfŅ^_A@HI4{@4.c0(atyUj2ud: :@nOpkc0֡0"|}Z򜜝ITR1Ĉ C1FhP1(Jޗ"5Za^5V #lY,S`5.) U#%O"Q!G2 ,:ca>w:x\W彃緶vVZRˬt[yne֥Ia0A|eY p`G3X10(AP" h0=5Q#D $sj YA oyIU՟rwso'~YTfٳx8\Q~0VC2^X޸qh4:] ^7j:ۥZ{d>ekkC߼,y*B=}GWDz͟gd_{y&~堝*˛|6E>?<(rgƌSa NF3c[kJKWGϏgF̶۶Kurkt6Ɍ=:>_z^\fys Z/v'11̜Q0UDQ4IsNaNSBdDb-rb62HM'F4+PK_̪ P"F(&9{Ϭ9c !HA_HzZ?8Y]R5?^<%~{0w=lz GRcj鯓ɤ|t@zLxyT.}|q>,A]﨡c.tћ}UW[ F)/I!!'t IDAT:Q bXc! ĚْX@Ќ$e1m5uJ T5DUl|cTk0YYLƳ= dt_F 2!*fR2OkIr[M\l%[%vX D&aa{#!AWg2lR& LutuU*}]ZgX|d!/\^I~7ԢvV>l|vvYgq<WVg󪳶|Y X[Yfh'HdW|r 3KYQ߼g/GOO+_Çie]Meg7w>?:?觟 w޸OS [o|^}ZeXFTue' (l<~$˳Ȟ/j]VI&Ь:D@Er3%UD=Ei:m{3/_"M) 16ډ^BRrHd!E$5.{E!C 1Y*24Ini8Bc췀M/cžd/Ai;'#bY|Sqiiiii(Gz=y͛{.s;; hZ]du'8m!h `A U_Y:k?glFR Ef"*Dm&P[1,D9b  D6ưXysUj@IMbES VkH< zK||g( *k{jlL0(W0&;p[kϏKӋ_x8\1Q$ XHWD 4֑N9N2YV A:+y P' Z$(Gcikj,CɤFQ@*<#" ѐ *R:h ZA2KAFP%ыWL- 2RVuU1TO?|AjDUv D"2by9tfkΚrfUMSPZ- `ڃ,ХUb08A>ZgT ̉`f];2[c33?q*aUQo:;vyAUyyu$pc]Q[o.ggݻn?=;=}睇9h6׊xs}6YQyllo^"2D4'myWk~fEb0LA4@*,M[0hFDXǪJ;㜛0Q"n|{t"^i6r1uhˈ0@$ (D0ou!&B7Ӝ4>9=#00?=<F*2 ZDLb̜Ek#pm%dYVzu{]_׀Y96DQ@g-!Rܐ* A Qu`Z.JesaEP|@$qd̐9ePaDAUk⦅pVfCxtx4v7o.uZfI,0 {DD޶Ys@${drTFfo;y6(\s B@dDUb@k 9bE:YQ{5DzTbl YkE37{_8#.(GNU}{͵鳽|'ι7>s nxx6Zn]Ɠ޽y5yBiuw߾svgYuc(sy72_^^\8ݫ3Йnln zWUQ)+1,:NVŢjZh\$'1 G4Fa-Hr gNbxiȬQ3RlUJfp=ly 9,R5aԤh /*Bܐ4]8R3}_3MD K>zV-/,t䢵 z|||-///ͨ_"^^^noo_G ,sDc$BjM~D/׼[5''/e˵lU_~2oRi2"0'`Y ЂYz>J9p,kA ZcCU+%O2ֲp"9XGogo|_~A*XV|h HM LW#1Xaǡ5(  5dFĀ@ooqUgh SK!|FL$+0Ɖ #^GĊ2H-A"eDT!CS.f:WV_ZnO'* 54Hއv˜f&D2-af$PeUyrvu|G|2\y-$hWdzy~Բ@y%0,+lVlxҠ'ڝiku]jWx>Z0z}pp YHA"re:b`'Wpk,^U%YGjXH;>"B1pn6 UA A7ܢF]Dtǂ"wShO߼Hڣ6ĒF2{2D!(*EEPՒE'#A +++׻}d}X)3nooKt>/6}nKxܘ0;<_qrzϫzU+SZ'O_|hPZb6 Lڇ3x1" `kAM R! G̢17d (d?|H/@@M++Hr͵˫էyuao)@ \VV$SvѸٰ.!EU `8Qhjxv{>+^_6gy:y|<#u j3=ZDv!sX !,-_yxwcf4[QE|(ݮ!!(@U׵,3U(x|c$D wȑe\ ZCTU j:WHAHAK QD; ?cgKXq "G7cWű=9fO>hu/޹y=V<_[<=|D:C tcVV{8+ˣ-x:g{NΝ;_j{go}k>-uspW,<~oy rWENGeGPßY{ (Y)f{_v{"wO8f3X$veM%˪osν ^fVfVV\A#mɴ%-ݚ܍-G- % n,$7H 1K((a(ǹ2+r\Ub7pwoKSHUI]'uquBw{8&"IDU٥:6I>{~ ٔdJNDEE%Wy`m33oAم3DnXBaٳJrOq91^ bN^fmll 6}zLUy\MQp$"3f;~?0{) іD[dEU͖ @(r:{7Ο74.-QGtpxw{pSb8qD<͸H4i0..,$bl-QlM0`Fb ǒTm=K`%rw9\j{=/^Ψ]3S;lKi cnw܁iÇs}Ĵ7|ůU[:nmwc3\i<ٜu·J|3o iw]ehLT . ft-c0eyU&+4ͭw]=,)J3>~Ix9( >ĺn1s0'#YrFpN{O!5ЄXz0 Ptd{4Md @vnP": .TUMCV c5, s̝KsxkMJД4&!9 s]QpuѠCX[pQD wLUSRHƪ`^S Y:9Υ(±X \XaD#W-->.}vAR_3A$u>quYzΤ)^=XtJ-1mTհ,{~&I ~ңus||}{G-'sQ;$J hJ0Y3,mT;,LB#T`4Ovto'fx)l] pAF;+0ADdwǮm [XUmz|0"KlV=} _7|ݪ5obozױ?X[Z:t9fR˴Թ5M$/{CvI!]|6{d2IQ:ny FM vQ˟+q%oew*vאԐ5sDFmS 2 K2CVHq@4Ol<0" gU4 mS敕-$ YkH%)"I%H3&K@PpA!GNooTޑ80J F (؈"pޓ#Gd* @% u(SD=(5uTOk͢8skW-vzh`#UU!jh&jdOM)y22u L spIClzn bqhO.I'%"bR;xge"Xu;(FԌFI8%cpE؅Iiϝۿ`>guǁ_M*nm;uة?'9Ѓ#Ѡǃhs䚫+B訤O? @M# lmՇxೇ]{ē~ۭhHidks}B8ֳg ~(<49337IqUj FO2yȔce9r-TeCVobX% ʪ:mo3M9+YOVMA9m/,,{tZ\e=joz+_?'~h3Փo!rjywBo1L) BBҝ IDATן$d 2 ?W!hҞ?78K7FM+;\;w=s{y `sFN~.aA]me=^]>4SpL{Dd0ٻr>޻oA3~J\o~|+K$ݸ]x R9 @@j]0qT[h0W {ʲ k9sjRtP " x0TaeU'O a 3β3,gfnr¹-i:srEs dS:E窥|?iW), LPsLjZ,{]NJ}&b&FPtT([^ZqzvP9vX%5&w!.qpoy N& ʎ{ׁIJHj3#;b5r̵ UW9vC($,)`DΔ5eB-vz4*41[6USO)E"l&)E+x0ڜ WS3"S%DAE9NNf%! ))w%9F(6w=gά?xnqhM4@qiwQG>%s ('4wP>=w-??GtcSc 4`$ JzZ`཯*ƸRYu]uvw&;vl;c^>""0Z 8@'Af`cZbMr-7=c;[ۭRS|no{skP)6͛vaR*X5NR@ElF/ixiTS(fw-dQJ Jb.xTW9f}s?W7נZ;LT\&FD0BD U̕)lo|亭Q@PʍeO+!3E&8RV ebs{1W)wJ RiRJ!`sԓeT~o5{b}c=SLKj\QcT={"ǤJ4RTUmO^7 v}CjdzE]iUEKѤ{>*h}aU}Q1Xjx!4Uu~So*k;'N<1 ;uD]KEDDsk=ϯ553!nGCbJ"v".b2- :U v6XK婴$bbl b^<ހ P Gp><ڳ֟6b@A.ID77]butM dVь lnW=mm,/~dI.<a4vJO=_@0^kqWȇxݩcǦg?C^.!˕_ᄏ_+rIV׈{>$5ٮe t:fOq$͍F#"gy~~~gg'/Bf9߼o~?C̒J\"7}Rߧޘ_bdˌz&@۹sem~cLYvc>TAmPO5I Ep`7E$~$3sȼ^;ý9צJD^JLɈ8 *Jf̦of814w: N0@"7O9s`a7{>(z< 5C Dg$&u $O/-)Ͻyl%"cP`),96c5RJD0{bas{3&l;6"TJ|L)\C-^L`aEE:I R=1ú7rP]&䤎7ޏ&ʞw9X&_N'I"f啭pHŽ/~x0ŢmjPMEATt(EPܞ56 ٕu->ȍ7ܴoM)=y6&:|45ޅ}`\ǹ=sul67M݀ƬڌǓ~\ A>wRڙcfȔT"4IČ@b֕r6 s6]n<\`,^LM"m] 8u i!TF}oVL!S;1g(P^&ۻn̓{9rs6jF͌{ӛt a0ϟmo\}sܤ[e:hixϼo}λg}?%]ջHOҮzwQرJDaN^̌HJ:Kí ]%qh %OOZs~);LXêIL)?zR??Fq utEџUQ<d"|aDB0@Yc9(LΙ v$I[>qTE8|G&`a\#xxȚD@Lc(Ht:d:;%RJMHgAx:IdINێ"" -kQ(۷oss`dD٫D6`MGa'uq7-vLD47tɤnj\FI;M5b'ݹ;k60$HJ)6|pI1dp GS5s?HQdwy`ǎ=J$fR #gֶqUW)DbJ9agl0f\;ODhmtdK)8]![YȌٴ_&$Fd S#iQP6L}Ov+6:vիq>*̌gUOTng>;)ft|. ىZqjɁѡ9[psG}w\BFD.:ijc}'|:Go V^>|c` j/垟mۏ=6/'ǎ>UUFyMSKѬ[^8eivp /g7w?g>۳2M rg oߔ%bg0s 9"MR6Ck햜w fktt]3`ey 9ι,"d geYY9K =KċDe{^oR|ߗm)]좧.10l=09L6ŤFYB )⹩h%;0Bȍh/K=B1"8tj97d #h(w덷=z|sc nD(D ljrDʫX Ҳ9@#sY0l}~mwV6Z܎Til*BMg\9-31wL)+O͵_nT%ds^f{O.P)fQS"'٘u< rp7;uM!Yw}-26) x5{?z/~胟/~[~}{Sނ CYލ/3x^6.W6]=v]wrg0 ۭ$AP}wzlj0KhyyypgΜ.̀y|~?%Z^Y^@ %P#Gs2$V{0;4|S2C(C(sٱ82c'J\;}|όrw404($60o&V)5vP@EN) XS8)؉O| ؎`5k(x=h#u3ZɌ)}:OeSS>#r6K( en$#Q94uf "K[á#7'EadJ;ޕ#ϴgaqg8$2]B*BB4 >-Ĥn*aНILؒ5k 5f>3Vc6Ĵ"̮XR $V|R0W!R73MJl>& L&CTł輒Z5 ñ )u]Dy?nT\{ru|z4ΤNbbTx\:3Чf0D+Ni'U#eD[ԥԌm%6cs912iMaP(e.l#N~{UM`Pٴα]乙ptR~^p[vc{7~'^~ -.-3{5Qxn?w^0߳[Xs'rٖ$2C+cD;k摭=9U]Xs@__L9Y~yrt}}me^7ۯ~wo}Ey$BLڽu/x?G['3F:W֯܃.=}WwUE(HM|qaqtw-Ƨd/`\awG(VW667T50+$:pOtbYv9YLY*rYRF~9uDsK ѺtvчWJ|[}hM/Q/P:@ht v 5.(T+8gvc\ kU BM3gɍO"792hxb>bK0ΘhV@+W,ПBv>H5Rbr8 A|n9qvu"iY ̇N ۛM& ΕDi`V ƎvS0Rڨ)1s^j\R1MTz?idv`f151&B2-\Ec+*aEXY('QaW%&SZI!`^͙Jh33%$:r&* qD) UqMl $IH<&%1E18=Co%ʲ"icss0Sj&ͤƣ0f8Nd2J)(u=SjR$ r_"TԦvTd˙T%#(TamBfmq2K݊ СC~gP`4 ~dƗ>)*&n/ڃ/SXDOۧIƐw=ظ_r,0;*j,x >䉝ބ}lC==-C6+?2%k6R9)Y\@ZN/}K{yů{?uם^lZGkwqwǷ\{htCc_|>qYV9f|o|$(3.E~75%fU6z*e;SWa )v|ȥs^}>΅wĕZ[]B {; NęcϮv%b"xmCԭ3A'W_7ޱjxTv6mY6KD+L>g)ƁΟ?4 w{_B[ub-_ꛟ +?8#L H3g)Ncv 0Q2S96#BDA22nۃ!';}nLs2"_8Ļڋ\+Mo5ǝ/fm]6'0cxuFk@D.,N`j ۏMUVy^ FQe0b4M=2{ zqA /44Ơ\5;/Usow9Xb&vNAQdԊhD)<̐ Kr~aED,t`Eس&P9ȱHfuS9DPnX"DsĦ.:]Kڒ%ԩ O|#G==9pfp0zN\ J)i'x9G)EL&SM JVSҔ Q`"JjE!Y \)jѦ>0sP6 7uNUՔUUMEr0#P[ 6ͨmVC/.'#- 2;)5J*^\.%젖rt| /~oן[3~a{{Yn`P"_3̟W%Uf%:Μjn_[BvUBC)bݲF92GL@i IDAT$ŦshnB&M&B+q6N29О5Rȱs6>ƾ~oITDLL\Z ʂO!gBSrITk lOd9Ѭo,~܈dٟwL#¹u4]^9ʯw54=?C}8_zjʙ݃ }`QWz4"T7"}Q03@3`NyG.˲EJDEYxKIC?qy~J NNEgqy|8+q%Vy1"uuo^52:wy)it:Hrnj7xjz"y x3m!G=*;vBAwCPle.U`DPpBh 3y5Ue &դIťͶ%` F`(μZ9%Azְw!xNkjT\;E`VNE`v"b%Ecc"Q*|Jʆ6](qQtqIVH")@=aG?& OX!3 -)ȢMj3ɶ*`B26e2LQu80 bt9HgSԵRv៙fĎ=3s9-;뛛qvSA=eן^s=_X"j$ƒ8V\ث,}&Z7b 5?szӦhwoeч $hsk_Zf9G3xq= !RyPd}MCX_>_5?kj1A[|B:\7oF5OW?}X p$Bi D1w)k0'~sm7ZV!`Y:A?|o}{j-5w6fEhޗ>?sMy]+6Ixe _eS$v~]j~Wo@\h γgzX[!vr1"Af(Q+ȓYh`NCbBYӤN)NEL|-;eY|+;eSP81pΩahD$" fv;1gGĭiMo+q% _5Vvx" LP{h%C287 whϊ:ִJvhSPӜZ(-H b k%zr 1]WX۾#AA 0q+VZJLU)>U`UE9uQh;I0G *R ҄"l hp{ߌGbf$E6x$6ĘJHJP%$ID%흪 At S<]r܃զYq-/rFaTia~("L3{r~g.ONc<273òxBL|m43is{GǞ8uFB'^rM{.{v#q4V~R}g`em-_-o:RWK1\]mNՓJ\a?^YRr'RN`YĉϽ~i)~-ʻ}DpY{֔k()i{vT̀?tȠ/>q4 RԺd#9"DJkɰ ѐ7EIn,9Ll<\gYVͲȳ<3k-k LGIN)Tf&&b&t@Y~>$ݪ(D?GLs r - *![lD`WJ`TpU Q0KVxCF_)^)& %ΦlyKr1B]-8]k_@!l'[ڗ8 K/Oy{/_ިק!Kg®Pݱ 5w 耾.~̄#CLYSm *lLw|[cEp)"uGl XJd z^Yy&9n0QbX&6ZXcڳֆ@ߋp5z%()0̆ p!P<=j9g%kȅ/ȍu`o'xpD t@c!L@^%% xa6Q8@7A{,%h{ H0D"B<|hR  8~ /P ljbTE(dWD~2>zRL.|w/gAҎ#B[et ?[yE2052fLXr;Z]R]V)ҋxՃ?{/֗^q%[jo<~,w3=&ձ׵W@*!t2G>v!/*@@kT%H>?r܄1vssCorYlrٴoW5@*66kj Gĝ~*>:MOu]E]3 14@FzOr~py0czKk>* [QĘaћo~BE+o{{;L9Z8&׷ &D")G_3~s,V cm2%,BǶ4ϢIc L&XD0c`Un˶̭ͳ4Yn1BaGrf$R3/`b<c!Gsd"/f=RCI\bttbb@&y?o\g]b!9zL҃V:"B!r")`҂ @j'8y;bK ԃ VW*UCG[PQ!@4䦊LS##VxP$\Di5B ڹ'PQz)pbBM6D\֢Xf 0uۅ-RgO?F+B"J M~yxM7cW<ϳ f22&rk3y`Mm0\Bߖ{ 1;OtZ"bi-ibc"aL8>E]mBHfTwzY9؜Bz@<߼hϚ9_jU‰ ~FT8-Y#4B&dC QsUh&s^TO=eNHC*"IQF0̯s,] BsBAK5E(&I4v`C:aROa8_QM@|~裱b'g3.ہ Dʑ϶^f`c)A6πs2f괆'Z%lSg_D>no]DUD.kסH7+D vmB{BoMPE90Rrd8l΢MZQvXKpe-!lp`n`MV2] 3[e֒acmeMfYl rS]6AF R?Ѵ->[ j:f C~rֆBR?GokNPGUEѳ@#KC=/㩪 Nxa"aURD=t̩!pmC! /onp>\A5B޳R/ޑxR@dl@,(dJ,"YA4)aZ U RJ gA1@ÔDD j>H5q;In@&RNP4D1XKEl(UUGE @tP0%uea1 #3nXP(XwOƘQb2dJ0 {?ߪůy.w;ڭ܊P>%;zk7qJD5jsk몳+2Qz\g?# ы3^[L芈az;ojC҇"#=w ТlQ_<uϲ1*_g^Q{>Oy>y'o=޺| 5G?Ip'x؀ Wv& b ڦ\4Z1Qp@7u%Z|`C@Mπc!2; )1DO6E[K ajotfkQZr 3|g^D?Ϻa50,J^AK7(X{8Eze/޼"kj W ^_bFNJ}og0|yRMnڱ2 emGޫ^]Q*j_Z;yKD<-'ի[o~[{W5lol69KǓ=%lW[ [y'wvG~Pnjr{0VuK~M$W(X` R)0ZECH%zZWuJäi@.mݎ>Id[1Bgm4`!F` (rk )&@ PM$s66ܬ1f6ftGnbP6҅@D̦.ELzIǘ945EmiQ!̑| C ͳtxRF%<H7%)9|u/>'HAUGD]zl)!UJ9VGZKa2U9nۀ`>,ƁIЖ J!͒vCCmlv\ |ϠJLI*˼Cȹk_S #_lf' _5xJkc>(vm@UՅ[h r: $ @+W"mވD|ß#rwi7$@nɕoCH` hodCC@ 5m@Zz)N895D"h D@C,ktm_B4>1D1Be(reyxYYZ5YvBd#6DLT:Hp'qi]X1P᧦.sVݜ4Ar0-a< nThz"<c$ Ԙe^/ٵ׺9?y0{2BjPJ!F|mH#?v p:9N.\82}#|kO|XUTS{=^ǎ՛pVJRQѨJDy߻?9[26id}^mf{ / X90z @QNRC QbC6V6oj\r EbT}H'yf5ޅ%!y-O|'ƘYc"/ȋ,ec\F5ߐ"qF[bNDc4dlB4,uO_Jut^z г_Tt,Nvv-.c걁 v޾Ӂ3[௙egƤY`M+N-Ma eIȐ)^TP%fK[vAV9Y]=<(Oް~;|cJ׼,V 0k&utuv"-a8Kx-<ϟKcʆfLEDF]C2_蹸W܄v q50)`1u5E=<( bg=vÊW9q@"Wa9bjůn(ĸ7P-JHidI3!RJhˎ߷>`vSB`@]{s]9(긞F4J(tP=h?B;H ?g*ڗ*tZA*^ iXIU2$o\Aj@5N"dFS#V'!E0`UnduܻYaHW?*ŠPfU&ѽ1Ĩ*"lL>!:SDhZ,,1DDĊ@[K79@U=yU"xZ4N=qWL)%:_3u0dKB~@/1(PfXʧzg,KPq.˯:NPVb)4RzBՌ{Y/T0ix ;5R<ǧ}G3ݧ|.} `V[W9g}n rWdU 78//s晝` 0ԾsL݅ԋ^Ӥф'#;h팊j2$3qoeydTFG%p[Qx D&{1DUD5=PfQj=$6pQf1ڵdڸy"21{֛,==UѠ_?)/r֖9z&<`VˢgL&(g.r_8%e%gYeYygrX^ ѱCB[jPbYtA,Sζ/)3Vġ;hWJ; !E:gg㙟hͣYrS.a7s g2J$A *jTr3wF4bD{wuq~wuY@;t)͓w} >ڙCPe,{}tS2%&Pr8DF bpE+gQ F[LwfxmnZ߳3eU՘E: =7\*=wWxWB0RdDtUsSw+cL* 2ؽ"c>s{_*\2V/M4|C0 п(ş:}(dQPˇ8T/.Gז;;'BJ95< bB,ޫ&^+ ͲE{̹nv˗*T|眺{eu]WYYV022Y1x_YาO3p+zDTEQcMX 4Ens^ch{c^b)\hq9g<+~\#d 4<?U I_C}W6M th'|IWdٵnΥFW:#q(" 6 PD~=p5R Źiaa0'? 1ͫHhӘkH@-7 ceA1p23k߉ad|-{3*u~ 37 d "xl*ptoE1z*?09vU{jtv ҭc5fX%pL!b1p$1+9qwq_݅oO5.4X}+%M?[0̚&Wk+^Ydrʕ^?3ypH%ch208#ww֚^(ʓ'Olmo=vt:nn j?;?{{6wFkk7:|t2.{Wcp,@tFeeT6a,54`N!봅p"ڒ:4#pF01㛸"jX;]:-w3@3* ,lzX^r`~R;_gn&uI`|@$OeҥZ$ ;"*"w:.;QqRI[2)Tsds+߹9% 7DcW2TQe׷|#O>پlQ@!%W QT#;yT왌xh)zВx/ @|{>5jiq!*e,ݞ 92l30}' \;B.pT .WD`&bܹ8foPpSvSLpM7oOS'r~&""޻;IrF5״'-!ߜy MgV; q~ ak̤lUt0\/]PngS2=uͽ<;zd>n8; diF2kf+* u;뮻\~Ǎ'oe*jRt:քDZPh`j6ENCύpoث͈Ti7,1z a4 IJaWnBΗ_XOw}eY5(3/~aκ#f>̘TtK.;?Lei;PUDD j}zN;02skѷhС`gbRf!߷qbG7̰ &-W:TlDGYLkpJ~MiZ^eSB@wv,0i}HUeJ͝[Haڨcdm06qFU%F2r|NBH4,zu$ 1Xǀ))zNcAfW kwcQ G﹏> 7FW%Z?2L1 cN'./!:!"~jl)$z(ɥb5!t[9eIg559+M0~u t߸jܢg2l7Wq=)E=6"P?<#"߬ѺB-AABжYo|Wʖevz=> S׾_=n6"G׏:|iv3C ||L<| .a8A Ly1|֒}7 @ <^Nq[:3Vј*ia~2Р$و4s[ 9WUprva./5^rKİofqP?€%emM4(f׀JSOFkзy@:9YQEQ=6_8![92}_3mQMG/^܄#STp/3[H Z/60Q8ԘNtZA8MxjP[IUy`F =b2zjc!,{ԩ#9i5cPn t(c#nhKiGDUD[HY:̜<@֚,0XfLd1GquyZjć/eô + 8FEگsy v@C!ND0S,(ɈqhpkMldƙ'Py\ΎiB*L}ϘBU2wաW;}*MlȠ'"M:x4>(-qJtLJxÙǦ1@Bb2,`pla2Se zEs.3 AfʲLch*`,mnҙW d2C@CvsoKA"PD.5xbi,TMی]ms -=?̚lU}M#g9y򴁿+´+/^oѸxN}"+ 啕[ļWwO_οI[. T18w(1 / L j_Bs(d/H BD,t1 ::'A1UC6P{uBD6XSkڄik-BD-l! !CR᫪D2Hy*nC%:'EBcB9&@;^8)+"jd!%(#d Dq D78)؃ŋ8'j9lw\̻-Y.LI= `ށWOj,,DË́w+"TuV+#:~;n'DUϜ;yuX3G٧+C+~ .lfIH}6835 hiɥ\OfjN u@A*!'"@Q(;& $B(P`Mbf#YXN J;-5/&u,_l8rhR{䫓NVOp8(sf{w~2N+%JcmT96"Fcc ,Lܢzn<Ʊ"a$H[0GfkxvSx;0=֘9 Cl $VCv.ύAu^m±0n%;Uw6?2 31ϙ$.mh<1Sjh@&TlNYdd˦t_J_sbz?Oֻ?>˦ O2jBQ 0*z՝n.;!L^EHEᨚU@M$p_|! `Ļ^nc<ٙVx;.=\?_|D5SuqwfBj]w}EHl,ٚʫ0fZGHNl 2`T0yVu5uy{m&S L0$jԨ*$ zsO{"VV~dwݾ6dG g<)ޅGHw,q[]DL929U$w5sЭ$,1Jd/΁?9muNtb` 9釖kU.뒅L잮 м~@yg]wxDSW=Pj j>l9܁ȟ&ytI&@0lx[QW{z}o3 oQfR (T+Nnv'W'"$~ J gᓿQ O/TtZVSH% O\3j["S"r'Q֖a@@ 4wX>XL 3s(FߋܾQU/On5>Q0qp!* 2Mk%&h MII֮X,1+R"x DX7IarcUfDB7‰DLƘ ^ouuumjec,LIYw6d4"lX(:xÓZ'WYC}uu4R=3,\BNfq.6!za6O3;_A<{4立y׀)st`Z%Y[rHK钃@z r NyCg*v#"x}_~Éc@D0ԯ\[#Uت5i4CɬE쨀V^q3_z몁t3ڬnr}ܰ^v.feV I $).#I'E:N EE9U`'<eQ iޅs!VZ.)b/"*׫լv⫂24 0ޕE {eUU X1FR,A~Z?LYD(`/`0-G.q5LRF HkfjOJ;gB9n,'j؊-AI$Yѳ`0cK\Þ6kW,,M|+S~=@@bMz^-!"/I .dBxgww15cȾE>so`.hUU„4B(}WM쉤+ mz.HNxUHP""@&+:l SEP" qDS/rI0U"s3dyqd^]q:gέ L 6SW2{d0pye6"y6ȋA˭]ȋZk"cqhIaGR0F@l iH HQBi˒mS(%kQTu9,jhꜫpﱴ2iB1ʵ}לkϾHtϩ::"n#s^'r ȳ u!^B[MoAԚݝcҮZ;3a=V6<1ƂDIKj !ׇvofvOu&D&LØȄ+D$Ű*2;km5vAs,Cs_ q Wqmr"cL Peb^&Sde[ÆQЌP/Zb6ee9{&٬sf+sSV"/19Uf&ɷ#Uŗ$].6:,"PǗpZ'̢z7]DZwf~mWzW(Qi0hv$e/ޭ_~YFWվ_略N؁y{\}p ?҅@ށȁ\SP/NIW쾅҉t&G/Q GhU J"]g4v_OϿ{=s79s#*5v |h]z5$b8Zs(<]"t@;m,Ul&  zB"6aeKY0d+õp[nGGd8V\X? &uƨΨ 9~PcPW }kQl3k8D&Ȓ!h dz]IAD xEl[fR&>yH/M}\13^efSke؟Q[r6gc׺+t{$\SW%R{?U9@dr ̑g7con{'D!@G?O|SD;氪v0X8m0@ fW"SY 9^42+@9C ³`%7w/i}umgws`'=1+2eU+އ$\[ QX5<ȭZzs{& 8 0$¤*$? Kf旤R!xfRKMQeRS_eLXR$xH  @0Clc7ƴݒ޽}ӓZZr|l齧{Բ\ Ȥe%l3-ӖJZV6ȴ9T=ɤRt:8h!jڀz[`6!B._8"F?OZ)ZM >"b-K. ;֬K0YD-+iCEUYz]U!FT6?HFl (2NpTѹ0-mRC6M0 Ô2-$h C@m   VD&%D;7g)V$D*8E %3(|a* oj@o{Y9%RglBR9l @t{w2R]{Bm%mN[qDzׯB!@/SZ7 ߔ lND!TCZ( *1oAy/<sw3=-HE$R(# / f3 _tf]_An'UȌnT.ZqT K 򊏮F&Waf&!w;2z=N ̐%P]FPI7]PTFx^?`#k}"D OyS  R:ͥu@X:SK?ůR|:@]0Up%E6l25g֬l[V²eYB$H6JLq0щ7jk ÇC~+2t?s2_5*Zh7_- LŢ_{BA 3*9+(%]5`e{{ Q1 6Mn!03LɺBt{[ >>ߔ곤R+3HB)@ LNu:+p D P K)(!cRJ hk]s1 !Z6 bD@[kD +D$mDZ(m6j쮶tO{gG&>#eٶe)"ϥD:\Ĝ)A*XVyMf^Of 1 MgIUM (T)M\pAQE~[s{0VQŜ ^7v'|\^' Z8"%3Ft-/s0yEТES[3*a:д5ugMl,k,BaZ lIUȲc"$BS/D$N&=6: BܸqpEfK:P EvdIN*VrRt{2ՕN5Q@xjҺN@p#7".W]aL'S`\ %?H_,uưZFCѯi}6-#*/]҃U^V`(Bs*Vv[*Sh\2RP ez60 \&z:/S"A z[y)AO *B"(-4ZJt0 ˿s* @) ] P  RH±ABD\D@RJW(6xP IBXfgT3Le:3m'm;)8 Ƕ TJjP <zmx~r7a_U]%~)L5L7R !"/w-=40I.2Nkɴߕ0Mc/2JbW񿍢S.u02Zdm0 s0z,xP($ $EG[q ̊. Ddy_:H@$(DI ,!Y=k֬Y]=]]T:!hYB P BI/@wjSHfKMHXY"e)NsW( 8Z=nXE/iYUj"u)?~brWVݵ4WP`^DE|s[aaJr?{~B"BXD6I "E%XQ`J/K_q9\tKO?:*0 4|hͧ,a $T -K)UnV 0o ^xhE#mblWoeğ)pWzTZNW w,a Hx)EdۖA]3_{ә3_@ W-Mgrڮ\It ]cDVLd5 0 sрV/ D]> DYfH]k;C+uز&ZUR3P̱&*JF}*f250 ÜSaت:D@*" "TWRfm=iDZm۶-ry"caVPE#VEWJu wxqaY"XVQ L\[Z8wV*"1m? F!:ud(0 0h֖/ EWrڒ TgGVI5:2+D2?ZO*M5+|J)"RJISz>\">'HB~H~1` 0ZE2 0 S7h'LMm-\d6Z@0HIDAT!!VVK,˶2V*N?>%BDw@PViGJ) ]gusxAoQ47 R%d0 0L@!+Z73iSG %$B  3,?ӆ)%pl&VϠQ,)%Džx$Paq2r'|uDJk)P[kzi`Owg2?4 P!r_T)EDR.jK~*BU60 0 H]"0<R QI9~qXK@dwgWwG4 DG+)(}Q͕RMaaDˣ'2L>O6i-A@?f%@ZaqhR]K@\= XEW~D2Dɔ{ڕR7K!0 0Lh0Egiϓ Yf $`U U !y{2D"N֖-J8L:D7ܮ2HN>ɿr>DbL|>߸ѲfF0 0'Ͳ{Yަw"NDN 0 T p cӓ;&!pr$9Acv]nFv2 WBe)4|Wȴ%BPD&״F)fy\]m;͎蕛aiEڒ\.N)rll,Lj[ 1j!ՖlnmmI<h1!9_l&s1aIfWw1b 0LL$r\6mJȲl6ڒ5dZ$T[-lz\.pj k."!DG6#]*!i!I%; %n!J;Jai-[H #J[*'M*RRZ-.ڮRp^l(Y mAoDz<|ӳ$Ķm `5;a e; ,MnUN56lX|C=T)i6nW x?s03[n[lyG|f l˝;wN{D~Y իnй^[bŧ\t^/{^)"G~gmy+O?ԇȧ <4pϏ-q埭=x|Xq޽;>7'uŚUϾFo# 3{&@s|< *bg/Ywڏ]ͤV,]^20::T|uM6ywy׾UV֯_j 5MnfV˿w/:vXC;+-[p guwFԅۗg>Ƕܶ /xeWRʁc#ϾYg.I&@"xy"tw̟;?sU[{y׮9OnpG?gxϊ }{ems?:~ lyeLuվ;cñ/_p9,ԃ?䋩g{3Θy+}."(ZE;iZ&nͧ~Ço/}Ig@M9_}ʕk֬]G.>qlXywȁGsK޻l:m) 8|3 n;ly=LjwrǥT{ѡrڒxd`RIT 3fOtrx]jY2xݻn`* 4?´|LnO<Ć |u5%id27^_wu]wq\#e ҩect[ў.+8xh`<>p~e pl+Ֆ8zlh<=#zfu`>pG;rt(J+9f͵TyϝsJiZ_'?I-2aĒ˝wE ړo???r|9hʕnݺ?וDHx?P۶ຈhY3mO?ϧS9)e" @۶ Jlqg۳eؖ= ^z_?{וpyE~$1:s|cܨ_@0} vp}w<==unwg<2S~-8BQLRQGnk׾M Y9|ߨȶm!b>껮Qq-*dp\_ i۶m[|tlVqq Жgo./׿va|` ,e|`VG:|l=tMrKk*?+䙶Qg>E.No޼y˖-/䒻kSe1_;wݡCz .gɤ34-9>Ruwemy>4|Ꮮ~sgfLz7s=?nOU' ~g?ٻ{:|,[M8o9,~O']׿yO+#=o_]zddW_w͇9{y+C[~K}T*7h*?4Pzv6=kϻ_/NY֞cϾm߱>q+V\z#Ofk?za37 yd`wzɗ~U+Λ3kvOgy9x}͵̯6hѢ*5|9\}5XU022o߾ /5\sc=L$|V44fIMTHooo$|Rʋ/ ->s[Yߺu8(G?xXoҥug.ՅǞzyl,w3|W\Q?&/?~њU@:6svO'"Ν}gv˯_t_~T* ǥTsz:Fx;'tco[_yogpՇ.\ʏa֡oÿVWWy~&"D0r|ܲDt:}ƍ? ?9?)T >r~i˲LO~:YW/N.T135\Ǿ^Ď0L+P#K/}׿nMr)u7=߄tvvVyq\Οtm?뺗\rIA57nذ!v EXqwM0 svگ|+6m2wҺ' '}}}Ġj_+[ܹsKsbaɉ N|0' _~_(H&Sۆ/`J/˰c( CO.Q;e3 0uZ/ҕ1>~w_l`[5=ꯖ 1aN"Mן?9}Pwѯ>ظxa_d0@B.e:e~; 6af59󯪴olGr&aBB7nC{~{06, 㮟7%Vt'0 3=L:[smX}S 0Gڬo>7u޳58raafzЍc \OUoddKKLQAA(80 Dh/ߚ'Mi``DwP(T339\;1 0FJ)lvD1O)뺑+cnR$Ç#h!FGy#rq 0h8RR*e@K<22BU022:1ۑ>#GT3TU|ȑٳgIS4/daLe51 )% U=R1B2ófj#XS/r5U'Wҫ Lr,P pVaXsr][*BPW(Z!cǎy(1)OG.wIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/mode.png000077500000000000000000001252031473342170300257470ustar00rootroot00000000000000PNG  IHDRF6D pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxu\S6"(]ݭvݭ Hұ~x8a:\Ph4$J$mzuE R `A( QA FA "AD0 `A( QA FA-i)jT*UIMJmUihZNLT3n͖ψiQSxi<+oDE:‡"y}2ˮ~M|c5\:xWⲖ /`+Ewoc h25uO8iĝDD>69AOӈ}sgx0uv%aj҃l'e=$ᄇ"B84u_}IhD\GzĪHu\_ݙXI l*NTp{m'l0Co8kBkRpZ+r^+*jISE:Ni ZCdGWksXG2lj]}{BD$#  =-V}'fES(( ,>ġYԗ .ζ_ 4` MD$38fMqUKL166ƶdutFX`cc(RiːHRCo{9%ǏĀ ,1Vق^*UȰ?Gbu'` > ӠyS@42AP1eMm3"A*G݁o-Y|ٟb&)1f. M0_P0ݍ/=b4dd[ޣ+ +{.(C& keR8A oD;~O؂"62ѲATzz՚XXcflVVXYw(|-j5]?0;m1~#^={Gl/Oe((P+d´{홳dˤ&V,0-=q6k_ipu2yK݄ʐ #`f;{?:TLO)wjθupzȅ^7ΫMp:<}3WqnA@ݯhC`gthkEo^Oue/>Y)+sQ Hɂ K#5EFAFFthZ4RG%"8s+dv9peMe45k@~ nmf2ajƏ+ܘp("ǭr{90(#ONk߂[{T͋kVmBqmiWY`NH̀\~ק.,Ŵ*ΎϖILY5!҃ug,`P:mb[3袸}VRadhc~/1ԖswnMv<{+[wvFNuSq|=϶+{l]>q" &'VL]A$L3&g-zg/rGV6$}cd$Qq\Wx3BEM`pcG_tqXc.xή.Qs e LZ:96r'=YQÙtkwjuPjA[D( ƿl$%^֮˯KķkC%<"7:&.òlOVL~iAu$:KKy3thȥ"I"##IL 13ɳ-LAD0 `A( QA FA "AD0 `A( QA_EKZJmREF|juZ04D>l98k˙gB81+זp o1S;էry;}ײ9D0G"TG;ЃB_̷|4tv:ԧ\AʴfNO""yNӜ נ sq;ZaQ餼:öPe}  '$Y#1=Hj NyG~uyNG|Hئ8S MFq97ߧV(ߙ &;U-lꢹ83u1@TzKM콶vXe\[y0q@U0T$9?v c4in&30Xt Y~2u3;oSk2/*LU/Q_`?a_c(1"r@? lnOm31+g%M+-⑑zQy]?qV7^ ԚϜtc -FKΉ;e3 7 W|hP Hy*|Oeλgw7GW~ڱ퐞]id헻 BO@sc~4nWCz#>1Ą 1t$$Hą|=Cg&88 t5t'\ <'<æNE%&cpNklll45>=@E #StSq+juƔǒ9^xzL?s]S2f9S'M*$סēeն>7N]5[M]`li5>&<A]c=Y63X$Hȵ;mt #|~)hR R)_nvFw]at`^҆rl`5Т$tl]vu4X{K#`^w:tسmk~~F/Mf9yd/m6|֡SlZ鑮D("zz՚:ïM Ke4KKZMyյS~$|Jy*-C]1}j]Ƹ~Ehn-@O&Cʓ_ >WB).EJ$D^OC|iF9uϱeRw1d;ۓҐR~u']0v "AcW<ͥna eȅT03Ce\)NV&yU _FC7|CW8W3ͨ3R"溜Q^nmS>SK PJf-~K95Ã҆tg&={@O1?u$v2_ k=ZihСCѢjZ*'bN䷷>k*7b[ MУiJP[/T>9Oz_k&ԩ[FEšʊ\d^>pLѶ9ːN|xU:f,#i݀u2[u2v`5qon%;TjJL35p Z8٢7dU,WEA˲GxY+..n 2+Y ySvaY;3Le"eԞ6_RuNyU-&n̾hx"usď^cԢ8Ɋٱ*Oӑя< M0sl̰vUZ0GTj5𛬬˜NMӀ̯vCVM+\7ZVREm7ی0T"ӣBmN¹ǡ$ke8C?v6NE嵌mz:m?veVٽT&p7B+Z  Ǐ\BH"a~~[6kSPfaICRYF`Udƍ8ﺍU)k% v.$CRPqQQ\ɣ Q`ր>yS<ǛT/ }}!3OՂx$9ԠUV˸աEs~CM;G~g8[-P忼:4iiherR*22TU*K&~ ¿GAD0 `A( QA FA "AD0 `A( QA_K{sOiHUPMj5iZTU*ԩ_X[Ͻ% ,/?-s#cc;hx^1٪n9AZў#O(3Ŭ&3  >SGZu1 [</uHMpɓʙDZؤ#\x?'F ""4дlY*t]EPjU(Ky{FќOHLL$1 SmT1vDcBu$9̊ 4rT#e %R5(q1o^=A7d9 C':l{b W,+ב`^!~ꅤ{.l-ۼSn4J1(iMVfV{zeOϋ:MPsr5Z^iOHyPݙMsW/aGc<((8?Fpa3j,o67/yQR%y :a/ /$ySzF1Oq;.~ATTTy2+F%}w:ugK}, *an/Oy #ϸId;G ,]qs+W/aAF+Gٲe)hE[D0/QբMx‰US~ ^iA2rHNT4賹9&[beeUy?EPH R==8EڵǼGt GUFN**+'*Ä'ٲ($T]ߨjҀ7Syi +i΁bxi?mu33秾.gKmZ }"]~٥;;,cɪvsӶj*:U41ɢ"9 *gΌ5ctTR4h:@VE:tT/:Nh6s. LLͰqpFC ;q\1ZVgUE-ÀiqΈ4XKBy1Iir4[~q 1OZj{Q&Z 2Pez4 Rڳ"["##ILo *1֥ )BF_OA( QA FA "AD0 `A( QA FA]"OeH6MMbG‚xқ<8sg`˃>_Q׃en"`Λև1o*/Geͽ^^ˍseu4RSS?MiZ1D `wBԐu.Xf=3K:.HJC4FZ>_[Q*r;<[\&sgeb9^N,cBȧpqOzs>D}ZK8*h8?7ɇRQٷpjELM155ԴSĉA_Ƞ Îg\V|$+ƱQou)Ek|TP|}}O0%7n=˸:j99@jd(Wfp_\[BǹwAѾchJ/T85i `sbL0~~M#!<?pnT*u3#>uկpű1 @Ɣ(Q27*SD kZC+WEj]Z|Άh"-ogwkfW@NʃL=NIpWdc V̭,؝ZA%,ꔨ]xk@ PRxHp|i V50%}:[e2c$um?D:M*)YQJ6qDLK2hZ;JHO֝˯C Mg'q|Kr`h)6vbwE6@۲\8@{Z  ^̪i^I0/\WW /CϊE>ʠ,MgyPբ ϝe* qzѺ8NH(Rmh9΃{u)Mlŀ ʶ=G{t3"@M`~}LFt,lӾ;`+S(RtЫ:Ϗb5Y,qxr٨6kFQ]gBAUy5fӥj=*<1U{SFT $C[ܹaAś}=#hʹ^]8l"ne8!oȂKi=ň[x,'qB| UnCJ00zf5NŎ.LLāe>LrQb`)]z*&J䒌 PPzY |ޓ+>hf%?R י^~maSjǀb'-w}t nIS,>FTԂʣo(=A'mJ2I& $f))X6aͽ?#us~)tɡ S}+Ӄ/BOLΎ ;Ehr$ڈ%"f.J4\M:ǫjevYu{fG:.6-`zva9#uyKBf:Fpz`vaF|%$R)tͧ_\d|EN?aѕxBhsV-l¬[1)NlކlNZO۹h:؆vv!G&w  > 3[i>`fJŸrWɴ9JCa;sR瀌Y'dTYs} &P忺'p:>nM9gm\eԹJ]J&H 1.HRdXYI tO:fMoCTxkiulzϷ?6ۻfCԢ}?ø8J4Uj8C~)9/}y6\Os\?kga?y"5w4?m}LNˇpR(P(өgım':QvΎeEfq+Y %")@]A$_an'8ȶALQyQ*ws_Z'Qu jݷ~_X<]1HmPBCC N*'[7Ifiq2 7JJq}A6Hu?b_ق:tP}vUJm,>؍_ 1q0ؤ.8}tyt)DX_[_6paWkoeg"_ Mr%cTv/RݤFYr2m"EKbW/c{ L4l'_7".gisƭF)5s_L?QGlw*r؜M|FA/D2&OMzg]WYi>F#GnMˆN1x4\أW@oa kDRVP#g&TӪ#<g sڣ%C E#B{o-CzScHgm7mexq&[2lmʽ)\ȘlT_-aCיkh# 'pݐcc%N+]2Wd +%084! R>zN ̪OM-0.s똒Qjx)?e^)*GTQc/GC\FS=A㿒fN3+$ޛ3`_n@gR3/uE:u^eiM1lf6tB_xRvEڢo_o(.%%41@d `D%k3N%!]37TȊ $Ĭ桿_DiްCWF\fzMSHÂW5K >Pgmx ?5Má{٪RA_>^lE…)\0]Jum~5p :y6S\O===#e LX[.AiZL8s9'Ɯ "<.{QBNDV HBCCuߖ钸9,CM9i<\Xf|{]Yv ?N̘FC)-51ƥ&NNG}bF$Jęwr*NxZΘ| !! C\ ژ0RtDc6奭oIjIYRəɗQ$=[OclwCR1EA>12LXUxW~46|Ċ9BjZ j*8eyo˻ۙӦ0y(/tMlkG!{PAtiDH:WfhML}&>zng" \O#&YSK#P=Z7rՉ QD0 P FA "AD0 `A( QA FA "AD0 `AwN֟@5KK̵-qF"Uu <ڹiz5oU~)uq^֋>d!%z_ θζx}wz=KD0O$ȢbUAyYm'p6\ HW \,kDk$gK=mMv-DoILoqOѥ$;11Dzn@xG~#518v5`w RD ~3֡yiZN;󘤯A{:4vSVWED?B ((˩˱KZIN43ReFWK~,o[%zqK@R;6eƎTyӯ(w3Ծ n4NXPOXpLA>w¬Ÿ҄]fê0oB~I8O$:([&*J~'Fr&,?292$rDOOg[Ihі=2Jc?ʃ4cj !(qU1*؄k bd)}fUiWsV,+g4[41nlp0$!]«Smi}Ug3٠?Ƞ1jldm+zp`.Ay1և0m"#1\H/슭A!({8*e5 uh,)yt*Ҕ7jAã]qLD0T$6v=K}̣e~7%f}u@]"]? lD_U Ǻ(Ru( b>6Ʃ_Ò\ţ9?3$Ci {(bΤU-Q_mk\htj 11LroLF^ل'{ҧS7H$inII$&&b[V1zu }ɛb4He4+fӧy]s=K +#1To]͓(뿜q/ r ZT)_npoBnߞ8պr=PeP,#mJvA6֫D!62,Kvb8 i}/bg䗕iA)+b=|5/_!ב,--H'-]xC"##ILo_D( QA FA "AD0 `A( `A( QA FAjФ;&HEfs,ED0~D1ƿ9Pe7 s<`lkݹ~uҢ2Cdj[_?u.wբQ}'I^C}\WNü5Y镄Z[nAձyؓ3ju ? ص_]?y'RP(~Ӱü D'\%(4PMا-໣-'~TaZrI:ShۗLg}QΈ()@eXAE#.XPSjI Ob47CHd( $XVk39=JA KKK4i!,Wb<ך־;ʰqQu '\Bggƙm9[Z}942Iq1Uڳ5,kNgaq/kUJ4γfz[NGiVnsV~TمB+[bc6؟ܺ%ʔ2 Ű3։a9ܹ"G5qL7J6N A$fΔ*] mN̨T{pΎʱ"h׼ vaA#%&XEK,}k6Yї hﱢYJIH+! `RIcAM{Vbҋ7W_9=ѸA_EZB})j:uQCr??eEcv1 bKC46ssd"A]ڈ%{É308îh] K^MRe|cnezՓQ1"^jʇ+p߱ގ=%LI+еkOkB+? 2KK̟| }17s9Lf>Kr)Ihh mtt6d !Fh02Jk[9S +RDe~dGޛKdCM}:BcwBsf.$c^»GxSotuyƵ0+22Tx Q]iAAtt42 3h4"KE m  "AD0 `A_WBWA w]1:( ^ _xQ1 `A( QA FA h*`%1? w` ΗX&K)gZdĩ usϷxJu|eοoVa5-ݾ7oKJ*DCKOS{fs"W .bСQ'NH//>ƹcٰ9SWs5,k:Ծ,pWsvT>R1 ,A0 涁1U t2CT` >34Tqx>cVR-lTvږ*>f32ea{ v%5jɓ{am$bO2qILzsٸ _LE~#1`+s'мIBV8oLѲ&N2?e{. Fvp%sgebKJVx}a/%sk5jPglRB) ?CPxOg_ x3@Mc(Ӝ~}*Mƫ {!AIǶDDDзo_Z-wspT.Fh9ms߷́ʳ_߫`s*4kg hG}}9^ƎTk;Oofd+juNjJ FB `K~/nzq;4uwps?_|"A:J@`rPX ۃ2>VTVU(e'm{'ag>p/`a5Ձ1@c+cTx̙ sn+Ӡb7D{ۡ4hH$֯_^afqhrʶrDPt>twE-R66ZC{OtZ2 ?hXǭIͦQ%㹶1}^ʸ#Or5^Ú+]{1cˋ;*+WUU2VE(+.) A pKCxsx~/ 4!0˜&| VP[@x]%m\sxJw$.=7/mէ@ zN߶ NPLrZҁ{`1 ʪ4]٥i]ͽvp~VEJW7Iђ OR5 cYS{T0:Ow(=,Fbߒ`^#ذnEe"r[0.¦={}"3f.70߽r/. ?TZQ@ArúSC7( ZUWgIu $cIdT̐v *ÎA///fΜ @r5kRzvg-$b1yNěh]SHHǺm8J`(0?Գ34,˟Z'v80cgܮ.>KKAR3 態`*eYvbc Ư9|*sP po :0J7}t;wjCuFΝ5h S|ڭEŨK%U C t*_\y}K<ġNmgL t&֋޷u%'yUk AJ.J4GϪ#+Ύ5x6f-bU|\CHM}7aKH ^ka/ľk`2o@D<2>> @t8 u Ea B p'-=} l.[`_h'oMy%zV@?4jV6.jPN0*:v͚5cŊЦM`޼yTXO_vXH9HR6XYYaeeE& 󧂺`޼+Iaŷ3U",{ٯ.[fɗ̬cEqzgFr' )$(0.ޛp`85bЊPeL{ `?e ڥ yrd R}`X 5ulڠCK;+S%ãAXdvpl *}܈e 䐤o5X=߿?Çӓ@ƍ:t^6̟*ψ9y]޽ΒA[+=0/QA҂^Ȱ4.v8IzpGΐ~HN~ɖn̽:-:~v֣ j@JD?HyvY=:zXo μ%AcJ@<|d{ ioR2Pto`E:\y10y~NIKR&-0=t+p,{w)‘p&`xNgtCFG p(w ,=zǏ`gg͛H5-  PtO5m,w3i\g)檲3ش+w=; n&=~aH$Q|"M:T~ !:Mqs{G6g*L`lI3oy³-[tg6y1ϖ Fx}%\:='c!$x,|G<uBaI1#ނ{xþka5L,aWhdy7G*e֭|w"JٶmZu(UgPR(%LΩKrcܰƕ9ҥiO?Hcяsxf[ 7ǮYV: DF Xcl[ɑÄ:ԒNPָ JW<21VVRtQ> Qmz4¢?BߔW¿*,--c]6mڴk~?jֹBUkYZZW"^A "AD0 `A(POH𯊎 *FA "AD0 `A( #n\'9Zi;l8{jrX<c8<k#b;1J]`-CN".*_^>}ȍsسasjmTzlMZyS0hW/To8 O3{g^ ,akC2gxB9Ȝ wi Kol`Mp` Yqc̹!B@-׉ԦPBCC'i^(Vs'мIBV8oLѲ&N2?ekdRy៷HϝQrwUP(P(,(t # wR`^y0k'h <M鑟9.@kO{ŕyX`-kTy}f3tV?("s<"u-R..q_y *DBp>cAXӼB5r;ߣqbjM`͌bEWM3Y(!!___Lqō[2nƣ᮶nN*K'mYy97״Ģ\W1eXtc=bo<+C ʞ; igq- !G8#}:4D;~|?թ>-Ʋvej1dX/jFe"PqܗwLuy2b-,- OV|.;-HC|h qNKF䇿y@P>sty^AlE ]2kxIU];0$_EIZ9|҅3z4mڔK. Kc [6ImR yv-^i<ڀYa!$?`T-;D͹E>K=MTHE;Cϳq;+҂|n%q{- Pцw0Q Ny0KH5Wk>ƢҚP{Trn&$j5j=,FSѡs[QA9::`ڵkG\\\Oz6^@qƬ>Wi/գ+\IENpgK^fRnڒt?ÆR$oD;{hnoZ Гe.TGY%mjQ@S9^< gW5( !azmS7= %,!k[f$1?יR^npyKv hǘ~ؐg_mQW̥o?F-p h /CE3ܹ3 6_~t@Zl SJnC~K99֒SտUg}5&1I FFqQ݂ Wa}˳3Xu9/%_cPt=ikH#C1j-ZB߾䅿!F~8T0޽ 7ˋmU;V2'ssUF165<Coj T-vkC,&ҡ5/Z)1"8E" !%Jn ,Yf,XI&݌%[߼GC VONl%f$o?!:"ێ#UOb!;1<9ÛpK;ꕇQ@yhb`ԤS|>VU.;QXqj8nT.^-fq*:+FbVIVIIh ?Q諮aQzRnǪH>M.EA? N;0iJzW4h֭lF xY i3G<SG3:^ yzIý===͛… mONU9{ RьpF8TWWW\q'%80u%R;]7bIvz3wO[w+E;odMݩ!#w M;-Œbdk]9~O@;S}[_Pc9t-e9?{fJ6E'^,g=HDkQlr(SbdlBOc##z/|xW܅|J TM%UܮE ^BFzj={{.z ~P#PxB1T/rtV|;2?BR4DiQ]kƸ.S;9jTt5C_Cg#9O[ЦG

|R }JC,mWGW4Dޚ;< @bAèj']'Cȼ1h ڍh0RD;g~ (0)(شߚɯ0u3`}$7°E0Ԧ3,Lᵱh ;ߐP/ڍQ'eWgOﵛePڴT"IgFʳ#م`cloĺ~Xp- VY@_C[4wٿB ٸ9jB~sͧޡjI%(--1֥>.Tl+YxT&7AF:ݯҿ~SWu䪯f*] դ=f|'3mTٖuY}814=ld7wdsL!lކlNZO۹h:؆vv!G&w  > 3O5|A~q#6Gy[Lo0FDRR"ޯZSh%>ȶ!t_G9 f"J4bcK HE0&ʵ ȱw`zbi|90s H̩>`їKpkƽ"DRH!3'=rrT7i%5D7) µύoe;u1<9rP}Z| \ʚY&3JJPؔ.YV-ڐiEAs NJb/A~m \<ʡs9/BR1ĊzwSXV7Wo!a5,I<ξ:lF&DΪ[f6JI.wBCCut tvСC"bBtD( QA FA "AD0 `A( QA FA "AD0⢈ǩ<9 Gdrj\NMg<sq1X Ш '$Or1lXƜl}=X&QٟNyS0xKr{0jx &+ BMmuJ>tH< Z(> 7!_>9(px{ˇqHC{OtZ2A~HDQU_V@ty^A۬E ]2kSD Jj+޸wL%h>"h T,L3V ׶0 U("O'κ h4~ȏ"-/[w{Qk2ƾjK$fO%m6VBOn qcY`ڵ͛ NhCͳf_y|xg(AG̏6T &t-ij5*ԬyMWdoRl*R+<LO|*jIœsߠwQ~;g `_{Xž%ы.G(a݊D}(؀D >WNSۍmRi71CVC6캖v4#osb>(ê[jҹsg<==ׯD"Ezdĥ'өa(! OdJ=(sFy+~Žvg$Qw_~NOT-Гڱ lÌǟ-r>N ;zio/qjI$.ݫ|g"֟ҚkeQـmtp2 83#\Z9 ^0fot'ߩ991PNy,SBy61iPqĂ gp-r4bbB8=W!&&kq䤾ai<.L-uCTo&$whoCF;HC`G St(['!`헡vnF)ZbR"sg(+ړ/;~qD"Em$æPsn5ͬRyuM)SNb>7p0amTֵЭy~R&[7,==͛Gz8p k$ִub`3ˊ-EbSi KzfHةj07#uñٖPEś'h]02{wƶǯhϺ=4J^@E+oȂKi=ň[x,'qB| Un8Kr%iw&P)ec՝EE1r!;0~OLq-;p39z~n:g낖Tȫ@BQn#G?1iSNV3|p/^Lׂ_9]7ge><ǔGHʝ3ͩڳڀ9G<\jm^!gm:`Z~wRro{[۝qKA]@.54\)hUGVE%klc[9'J mc^%v!G%/Lǂ)`Dٛ/׆)X-1)0SHǝ)u0`/ݚLzj={ƕ+Wr˜qs:; 1dX[wl%f=SkQHMPbd =)JcQIXo;/K>]z*&J䒌*UnWJTRHQ6Kq8Gw=M^g8L=A"I.Fo"00+Vp JetԬ=/UN691S&VϱMi7˲؋7c+مOIKf=A'mJ2I&VH@SS 簦^UA t.`kBc:eRKLߌdz,ofK³L76{ӵ(J (]0'WCXP u!Q$kěO(Pׯ_!Eqyُ꒹ Ӎ93W V9K C8_UQhHCAjľ.?a}ƖMxݬ(CЦ1؟|HyvYW1G"ӏ6Y4aM\0阻Qz鼴q/QinvGppastmƱŴ->@/_\_xg"CԖ|L_}:T~ !:Mqs{G6gxlO5g0o= FQ8M9PN.@ڰ+X+qxNi)òDw:(~2clPJ%[El_cí,y`HJah v,>7 AÓ# u%gqA̕yPe2cM题e}FvT3M((Bw:Mtt4 ߃HOVX `A( QA FA "AD0 `A( QA ƿO?n/T+8xݗo`m")ZBd`46“ռ= ׂ"T>}<<|3դے[156@P5)1Y$O $*[XJK ̄M<=΅X Fb4wҼ@C[[qtt֖y8::h+o'w3z(#ϹD`jpSΓdd<)'fq њZ T"FUS}(g Edې c&-"]w2拖гoUw9iMM6:qid%h\s{ݤz$J? \-G"1:/^kI)1zx.ȈV`Z5_vvlCc=Y?n=w :ov/4ނn O0rWaLOWSmeH۵֬voOIP6*lF=b+EFk+?vKQS=uŇC x5W5%szt Phj;I4tqWj({6fOjmzc7]ĮտKpp0M6ҥKp]HiiX:~;Z#iȘ6u0 %6؄i\yW?e4k֌ 0iҤ\ 9Ŝ:fHHܪ2eҽWSMfobmvD %%)XM &Xb$)M06jg+L| W'>XgTT/%Fy(T8ZU,S~ 2C M䠋<܆B.\˺sgVŢv[^'f_ 5,==͛Gz8p`.05mXż:v {]">;0v73i%suQe- h|6>w \ZS^6Ϛ'[T&en VAh߱F&1ƨ . o͹b:ӚkQ=ڀy>Ϩӡ[V>|8/΅âZ0 7GK̲ 5݇TCLj縬w߰Y }OEs]YA@") @Z7zQ{raYK Dcj$eS>%p]ppЕK)~k+W˴f!YcokBQ iVF4|p\]]߿.V6ǭ ^Oq>o㪓~|sOàsņ|t՝3۰Ć:w0qOEt0qihL 144؍~տZF(Fe}Gjw1Cڕa1튱J'Cg۞BE31(RjAUkիW3\6^ď<+tI]X&l]BnAE3ГXn1Z? F1b#Q/wVIyz"IeQf1-bZ rA& 6zH"UҚ._ц1y*c=HM=p1HUlxFdvNJJDoȊ+qJ2Wm{jjWUy)Ϯ!BMN̬f߁A=]7/pe¯cwGqw6icƴ=^̞ꆅ2=%&"9KϩӚG:PKρg?_c4oV0tf=^܅A FSA;(PׯŢ8͗]O]27a;g#J}~ajj?^#@:>X1=^=ZܕSwtɬ߫ dC7P1/}MxB^$ybz$r5J;H.'1~9ܷM MS+kS W2jPw: a-((_|r% ,M❉ =S[˗&=+Vf姙}"kn܆k/s~=zlnWFVzWco@+Z9B G@]dǩq?̏ED)W̴lOvgCeRL bԌ5Ҭi7eEm9 9PHZʰ,ѝ oDIGrZ.pBy]֔lR3_rgi?jøj 6--NWKDЁŧFE({I$Pn~(=( QA FA "AD0 `A( QA FA ">?c~ikyAY턬/kx+mV=D-g/?Ŝxƥ ܢ}̯ElD/֑J_o瘇7Qo~ZjIOy҈Ѱ,~W-)sD4=vv:l8D[G#:?`5rZYJDFؽNkϣ}19LDZ%pb: Ĩ?Oa<;_ :s¥`$Y yʉ-Y8s{V8HkyTt97v6d;,t38Ɇr˽2.2...TŲRW凣)O\r[K~ 87zH)<Ԋ~3<2claWtx77?B$%zi2Ze}ScgI-/zGfhyM"=]xx[vɚ9UqUmj2#wftt?'Fڮf{{JZF|(Glzht_v)[mkeOۏз=~K3/Sb)n}UEH׌53 EoLӦMt...J0̋kɼ!XQPo u(](?}XߨS0/%q(ǮDš0(N(#ͳI 104Y)?VPPk=lDIџ}G3vaDr܏oUm2:QGlw*rxXצUaZ## ,]vܼy33\h c)a~Fd5vueOWw4ei[+F뾅I?ڛfqbitۮﬧ{ ?=HgHġ\2gnݍ#G֣ס:8ƙ]ٷUF/JH6Ci =C śOܹ3׏cᆪ8>w^XP{5(jl޻wcwcjBDK]`7O'9vfgwuν}v\՟OvL;ɩ6^Lڐמ35Ջ]5̊Qab9Ƴ|;>,8M|ʛ\*uJcy`76:WiMx%Qt>q="J2`T] 6Ն,߆X:߰~J3x;g_aU^GФI5jTGGt !lѐӅ0!(ǞL(|^YmMyk܉lN(bӿS_k4OƠבK5VfoNn ԩ̞+GxϐgRR֮^ԵUEpќ9JL,ٿ ;xJ |9Z3H- ĄSRN;F4Dqnr;֣Pbͫ(7*NP`SucL) }rf)#%@O>Ʀ|| n VP-#c M85uf?|Sw s;QzU"j̢4gvlB!Qw;|iSҳ]}ų$ޙɭM9-A}ef.őV =OtXS/p 'uk+$#Z-̜93 {Ԕ)X;<=őP`3-Zm5gy=$1l{6N&;AX#B)/_fJYoK,G9[ϖH(,\۷ohѢ\iprRٕ-̮p}*ѭI1>q\Պ7Wg,#ZcfnQq(qk?=ع ٴU]2Ϫ0,s9J㓒HJJ")7Vay:u(%fn/ҚIsGP}r#8*Qi+wy|p6?LZŝTKßآ8$4qb1> 4w̛7gϢhrq` 9:2i9U8Vu8+ "~ *#G;QQ8Kzk9z~^jL@qۜxuIOй}W~K2GЧX,>2LudX#"UBg r[ $j&^eVł>V%2u_βd@+*xH(;yyyqsw6LIH@X)497WA@cJ{[DGjػGY=/ Km/8ɝ ӨGWCm9ʶjʭK :uYi\ /r1qjbLڳs1}WBqUmy-ΆS$."!>H}z Jt="""BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !BOh?Dz%)7`| ݋nE҈χpND'0!%`Lz'p5үTgL"88)[7>=Ĭe/iCZ`!1ĥ1~ӛ/aպ ީJf:"om᤮veBVWW0bH.ls9'Z sb*۾)N}d_WT;ڠ;= 5Q^'""B^!UhE}L SHSx:`5z0`яݞJ-u7?#![rAԄROy9=zۡ3ZXݲ5ggYv-4{<5Fwsrr"""TB1@OCv5:M?97RzT?g. ;񁌾{(<Tya!\fq÷l/7T2_plBvXgӼ s3? uЉ1Bƍ9~8>>> W҅3,{vXxz f`Yڗ1hfT}NYǟjDeJCZ*n/9)0\!נ<== u֜;w[[[ ƿCSvgzzh3m;L0y>Ty}^ JhF vV("+<1``Çs3݊8Q1ڷ}lc1Foʂ̞+v b+U {tPYkײgP_LM"ln? 8/PC^LsuzQHX2`X 6wm/3q -fdk/̔DH-85>VtgxAnMQsR^OO~/jbM* qIYf'roC blBd\'KG+y"!}8JyM f>O_yhҤ 5kdԨQj(b|S+;K5cn#8wA*3&1N Z,uFϾjӲ{ 6b=w*Fj+E^:Tb|Yo`]IWu(d y-MI* Qa0uTԩC߾}(_33F/#E{ MɯݯzJ؃~Ҁ>mQdczw:%FAF@Eb6vv3FcЇ)R~[Kai%$=>elTľxÇo@m?w,_V?3gΔP'pڝ`R|qx5<)h '\"ŵ/f*5"ǧb:*Lsx蓌+늫kƔkѱ_{^ۗD^;JRNTSݾ EZwToųg*Y%KRp___z-2!)-ӗKRst{J6˅g7Ŝ/a =݇0y蹼a5'" fOϢko>yfU3W% `܎b8y 'MݎoբjjCߣhZp!ofѢE ҕh1siYh)&:-P{N}˨|ӓf~jmƽd]8?XvJp\_ 9b9hL nho8L,?]q{̘J+̛7gϢhkL+hKVy|uAհ\ӢЛUx5[jidt*wR%A.y(n?ɭ8pGA֗|5G~Ķiؾ,E$K5fFF#F*^^^9swwwt 3h=#fиࡲh#+x;lP$eZ07Х5?ױz:;̢K9~ehR#LJQY|1pxXV_yo=r_tm!(ڎK!$Ru_h!&ky'%tGh7ϓ)]p46Z`f.A\\XާD 5ȪUs³3ͦe~y'p>Og7<==tޗgr`7Ξ/8CFiaBH0f /ќ);1g!<tg`=MSćcmwoC7.m b5{3N 5)z:zcy1FQE6^m`&:c5]^yp0ϮH{ i\BV(1!DFg< Rˏ%pr8=3 c<ח4+:YE}l+vh5>L>~aLԝZ#S>Yye|wiSmjsOq_bVv6s Wjz Hbsj1W!h}K%D e>T鸑7<؉/oI"4}"/^לUfܤz3W17~-~dKߞjc4`P'><ںGyX;2 7$"Jr*;Mcj8[`~8:0ps̲^*0q=;`oo}̂P~Ҷ` 1pq#J5GP~vXKr2Tʰ+\V=SSHVSv8cTꍢٵGQѴ/wW/~Ӽ5+oE=CMteG6=NBբM2 =NVVȝ1% 6_/W3-7'^s|ByjJ$)))sJ Flҹ7B ͘C OoзoLC9"Dd)oYqVy=.c!Kn/s:UH6 ƤXt4N}?'b`S0+9<[ ]VO||{"Gi&1$R%%ȵ>1ZҶG;#=XmcC7?4rFRbHHURf^DeH_=8\z sfΫPX:T$g{3w{sõ [/.B*Ə.HMM}; 4C#?et?f"ɨѶ1tǚèh7̞quxo*%4FbpV,{d}uu󼻨BD9&בnKB#{wP\{;z/mlKM߶Tx;:]JB,]?[OX)aLxsLFa C pJږU/ʞ{myjS빱f0g6ҷLSBxp~.c:w*ִv-;3f,a[wzomv{_{b Ie !.bUe/:.bF ^V#[zNĞ}4ړ5rCe>+F%W͹i9Xf%Sa sWJ"J[wJPbIII$%%hcG,T<63fXҘ@ċJϹFV6űN=!(#J1K&)\ jpa<]4ޭbuF=͓PBC_p%>]OEsFi_BH0~_Q ,,,鴉D](eQKRwu!<'c?ݏN| hoӗٗ8* ևVw:0 488X}x(Ti`BH0~f8h>s9tg 8b$VF؈q)d@K29VZ₋Vxv.xrjA]?X8?N7q7;ͥDYY&48gBH0]:cu|l7IY,9oo`ha4ׄ ?EQAnfzSm_Y4/8+oT>j6x@Օ_-oNĔmbDqMv,["XW 42!rEhhΏXxybm0ϟVC˷l(`%ٴ9zS0f8k0/o2{MCߔBY ٳU19/)[@R b ;! 5NٙEDDNH0 !(>5r!`B F!`B F!`B F!`B F!`B F!`B F!`B=&̖c ܸt.m~=CcO_;\,jУ7a(U*rQ+!DV8X(YdT;GŘ ESQƟK# x(טIOyEttZޝ)j0;[H6':3p?Zo/ӢMμjy+m$x*4_̋9 L.l9։hwܬZ/cKa퍸-|#62dB vyn2-j0S Q*MP+ MQU ,) v ] ;Lq!DnFŽ%6˵NoBQi GVl Rf\̘up7}SI ;G,T}v1dRﬡR[.lE7Ԑp\5rHS&a ?m(_<N 9}5Ԟ;)CzΥpyjYzhD NM2&=gSJE F!rKWZF |EEZ wI ̼NS(y331MRwZ˂;{נێ7bWAnntȯ$dNyѯD=#5\[Ai!D. Fl<˩me ʼug5]&n[SBIh=<6Ag-_mJ~4ZQ3..&RW +JwDWGSn/V^5|+ ϚO)VqvDB_ҴUK 5z#>{\MCG9)B`D𧩏0yj3nzФI]q -'NsCuB#7=:㟿0B)*I0 "g< !BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !<^ODDBñPIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/open.png000077500000000000000000000652041473342170300257700ustar00rootroot00000000000000PNG  IHDRK. pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F_IDATxg@d{bo{uuu-[tWw;v M @ $gP@UM&a~sn}d Q`akzgc*_…oTThHiMCw ݈#FBl$ FBl$ FBlV*PjBhI&|*>{z$Ov>^A4>*)yyOr-);fGh)AT?zYT?x?MF"+ZS9W.Li`MZ n7O{KKOǔ 5婷oiYX㪫M@nWRMUڭR dDzsI$eoU^{iݒ}Klj[f7ҫ=CL(7=| d/6t>Zsm[YpYL&aҼ[rL&deWkJs<6ȥ-CGȺKq[qh;_T) EmѓM=I+ EMʵmۮ%^ӆKEĞ{)=\;Hًo&@Suv5_s'a~{vl&⮛EpuX=V7n5~UGBG ZmOL~nح2"Hvb=C-\.פ/oKYP8#ccccc#>aQ\˶REkaΡyUnfeIs(=`m 18_s&nWYs}:. /7] \%<_܁"Es;`F2 ]XۆfV wmnR{ivy]ݭ-L*gE&WƄȝ m^˘ Lq@`R]Geus/Z=1Z]8N93V____<}CCCCs,z-'T EMoä͛%Tg&P<QDqlHHzjW mWWs+yd)IO޸ěGv<󬔐GݰzÁO j-vsK'nO˳/|ěJώItivW`ig]8(R}Yy1cΦlxj/qQeKOIxvvwfcGZĴZ- $%@+UoG8ɽ]]ͽr'297&eڽf]>g6+dKMg^ QnhOK}Xh_?s!.~/ӌHmތ/ұ3.Q3mum^J?v0x}F^#i2qEP(uAMRT,-6{6wx` =q_ROOtq p RV8FPPzZy"it@CBl$ FBl FBl$ F`;.Fg(͔0yyl;M?V&f{|pd)`ũɥyoFvًzҷ+FFU .PRn (dJT@nmBٟ%eW역 ++ى|ؚ)Iy2顧'8*aӱMF43ZMvJ[,xwfcdg@CLm]&cO\6:m{4o,\>)=rJ Huv؍p_{`o~y!LHI|d3㤷nYt I 7Fe©3w!W nu6w!?{zPVT*_[m_|H"JV4|͝܂أP|~dЍ{ƶ&^1i/2ݒޙсVZ,bNČ\ CA]Tc~;NZPE/vVL! rbB^cɶ2"kgJ>['4NҬmz;;g3_;o[u e 1PQh%b-լs3#.>r~Ύ z"}} D񵹝g X Pv=8vk4y܆\wL)^m ?{vYKw;I*R5FՐתsqZ؉3z.3u[EVL8 ;Sݩ0h5 z;Vvk\ۖ8ϚTѴ7ɏwM{iY)]t w:<*5Ҷ>p,jZ\^zD؂5f>[g5oRSƤPp=EPQA8O p|wΫg1qGqo?o[V#οѽ~ڂ Sӛ?[Y UJrq.bmQKx82[77FcT6Ή}4p.H DFНʘ_ 8?p܎Ms]y]{y00oadHIK}DgöAf屡!^ҽz~EOfe?H.'.v`;d)[;QYyRYvKm4>=gMzP17jmqgxv؂eϾ.:3nDኗAbC}WL+*rSV1̢al^+M MMwUOb#Og7a(dv6瓑?ulk"< eY76|;}|mx|۬ƴϘ44\.ι^Ol`Q}:g_w:e+Rn'LєF9y`_?#kl/Wfn0Ѧ)]`uj ߝ;kL+:X}fz ݜoũNxpÂ;8Ujߣ p=NM9cen3@{_$)}|`E`b\ӡ~c) :y ?@.N&ZY)\LY,4q 7)vqNYk1eW7C]44 |Lւ;-/mqb"o.O&&'&!zڵs{_4ؤk~)b0x=wjt{ʲwϖ7K<<UjA@f_sel_?89HrdTQgҹFZR@,{z۬+EIPu%k#Tr7{dkSSr˕ anZj&{#QQ+b[%rTGfrL&2jNt`3L&ӊWu8)x0c󿿖*#)zfN;qƪ*=kjɋˮ"?{=Ͽ'9PX*JE!u8OHRiuį޸˻38zW<׾k7iqѝr0]aLݘGG۰MztyT-v3㘠ϯY_51<'s*nkϟ{sS>[ jGt y.5#r+l6z̨Пw;mOS~սiUoRS+0L (XiTVsF[[S*Tn6{QƚNJ?kp _O/zOMO JKBv.ib0qquuh軕^\һg-/D_~ތq $oY;}?I~4g}}}}@zLY q*fWcZ *Ju~W8J)W B{`ٗ? 8)Iy[o+ZgVv\`7b>hGlZ<4Qogԕ/}#' xvس~f{血Md-mlu6C#ŽgeuǯꜤVTk  -% 4r;,'&6.mX3ڹp*&{n4mҁ>S Li6cI]A헣+ʧ1: .?8ֵyYg'shڽ ui/N]V&'dˁB@Ѯ@\btdžĥEEb5BihVUEmvar}VfKξ{x5d2ݶhP1Ds}EoobnPWZ S S71n*$5¤p]kzb@5lYqn(c.KV0H~[ o̡(z|Su]lvm&]foњ:jB%I^Ts8G_5 Ƒl$ FBl$ FBl$ FB>+ؤZ!(-Hz|?|,#Td8u_VDAmoǞLCqZ^jD?T‹gДs& a\Zp"J:dmvՔYX4qO}M^ . )O >{/R]\j2㵟X7ZԚSu!-Ŷ8cn~tsLG~Mh%VR-9Y>}]\M :߻tqұ%6miZYn fȰW̠mMeyݱ[x@-! ++Z-).SvjNT݂>8۵k׮u!&k.`Odrܓ,u_-j'*?|Ò 8 ޼F~d'wy>~5IA_KMUT)UZ ;6/m0qzqYv1'ˑGGlyM?i.2o;5:хAYZh cjfogV ӷgbIuwѩˤY]NCuSȲI|B.R2hۡ)[Or{&qZ6Mp/yf NaP>@7\}k+g6%'x%,xS݆+:_,7xg0gYRSfŸztK`iX=ňxR$Z_oDZ2Xқk.56s!%>ܰ$0=ףSV˾0ߓptf泓]palA2SC<_ÈU uH/3V:p{_t9~ ]d!T)S['VRp쮻:A׎Çvyr3Ue8aݾքFg;oR;~7.e=~Xl7gvh77Chz a"'en}!`hM:3{Y͖g40àJ%09z, aXՠ5G?rc5Z JfW W VJjzEdk7sS߉*&40m[.)jp,\.#sszZ0Rh`43[g6Kų{h cB;w5pg^W܃cOX6-!90oh7:o}]ˆ;}p Z=&&7k=෍#sD?g\X6X1Hr4jw_c* 06Jym6kq{zȚس=%Ԫl_xǩv’3W 9ɐۿ̟{i~B5ZX7m5NJKsJ ^l 0Uҝ;$ |顴f\Xo}^Y3M~ 7s|psܺqu;ҥrfW=Ry,Y?s>Upb{u}?1 /˛Gwɮn1ЉZcGnoǷc? gn)eqmY QyR㋌ݝo RQSooɔ~0e/ImfggeMe_7p߀6tƾOʼnoFZl FBlOLTxY!_^Vj@7EK-4 _~MP{K"Ƒl$ FBZlR#,/Wyt0$I)yʳ\3Nsg֙cCrԜq'c꒱Ќ}'.Ѹ.K L (KNF_z l#5_ ^;ۼI]z ,[?ȑn~ؘaxztTnēKC&o3cYӮGK8V)b]gH\VemM~Hj#m0qa%X8F+~|v4*H@7SJRhS{re]@ڵ|]`l$͌~W"z n/0={U;cá`8N:sԂĸQQ/_gVvlzTflRUz%%{&t wLc=v9 R)OO l3j05F3$v߉>ןȘ]&ۤVjcD~{/q(ѵDsMϻžÙ@-GJ@ebᕒ'w2=9qEuǐPu65W[l FBl$ FBl$ FBl$!ΎKϤv(J,B4TE<|_KrՇ 'OL֥M%Eiaai"HIVxHbz'Q(-'%)"}4B $I5$'sk v fDO )|$Sl`B%ΫkIB*̍ȭjk*cfk$R'jK+erQNѓ"u.V_Gь=&-lylZmݭu>%No{LuE}iDymgj?tU_{3\3MCGɗ7xR 4AW h0j7`Uc2}n,& ڲ#К-My*y`=չK=6pWgϦXjOrlaLAV jRLN]VKgī#Y}s9|ϼ@hUWzV_}QfZY,cY8oljSKH3MF%Yyvq*uuܚ>u0F[ ޫ,MMlb Bmxwݴ5tCMoWCuVfz8dEM4&F*TiէF,TKˊ- Ue򨐗֠IڴayUW7ۊ1(,T*ޫY$G LLieq&NB5?vƸҟEìIjao {∳AZTg&Tiϟ%cSF;Z{FTO}hE 9ѢF$P2GKzߎ- zMb`3{qLt+OOR\}8.+)r2bޥDbn/6F*mn6R:Ԧ\ؼ"cnD taadE!%6onn 33f< _nMI6 ԶcwR5ܹHbN+*%"G/(OcǼ|4Ԍv_)xV" iG/+ x7*n]+LϹ"rj$&D1f=q_',HZXTۙ(zewmKovEk|M3tPE Ť kVF_|G`kJ3CR^&4wc[M^/ XۡܗaN=64z&6Aέ63c7'I"l0`HV<MRRYV*Z:fH;qey/oOG?ʤ"mj_` h[` Z-{vw51M5MK dml>U=yo6dNuѣKψF#JVt@biaVkwbTzr:=cPEUyfgw={tlkbiGUE9*BT*zC81` ꒲Ji0:IMЗ%zLgG5*œ;RM2ZM^[XYZph/PҦHlI |zgIMhl6b0 :YgQ JuG2r6q-=GMr3f Dz㈹ɵf\ k?q>/*ˮ؁o?ۃl9g.)M?܁f9U =1G/_EyKo'pBC Y?O=?pX2h{,Ww7'rt0v%zz pdQL(αw^.Ѕru6 ;|Sӂ`Ł(HID F0fY}|onOq׉ߎ16pv`WFyX2_[},2k`(Y=(߇"5/GoJW%μw /Vُ섿;Z@pSظs;W^C؄Hg=kfY+Ǹ}:} rQYSP+5 -U#~84o@ [~#()56ڒ'ZM-cNƚJ#;J:im޾{F:58X?D6.ƻ4xGXudvqـiS*C|j֞V*,*P?JI FV76$I6 .p3 nm Qbo1m/`At^weo!Mmۮe<y^Sqf۩8 M1%Nx^L fӭ= uմw@ƇӨ6o,tF5X̜.Yݣ2e*D5%oj]yZ sfKjeD3}޽+WX?S"4G]A)xL-ndCW*a{vio!N&_֖J(0)4][ٙ0P]N:>}zΜ9}RuV󚷭(֥JJaQWy =KM6cE.0U9"5IU[Zխ(nw޽| 4R] vבS:g:wJ~xX^\HێX2ڍpEqyc {bY_(np>|Ν;w5r3>ٳƘ}4~sQDQf_6l$1m E\F Ll {>v\oW{+yu2}Q쾕Zpȑ# )VpwwDq$ϱ \N`0}t#ađ3j/WC* iTf1ҦfgYV]!Pݷ 233֭ۧdii &F(T:S)P$UT[ hIhULl=&;2AӦG;cV3 p)*=kw.e ) nֿ#:Qi..!+NHr >eTݿ8u(_KSg ٥-K6`#!H6`#!H6`#!6DJ U)蠠JRV[j8˛y|94ʵe0Pڌ߼oLyKyROWHfPo{3ԧ$Z:f(Yª vsh?pܧI/?i0G")oM+oXwԵ$2EAƁ w;ug&i=V^>,lзkNANS:C?O}R.NLy8,k7]qcs)I*+)uxAI*ٻ&3wK[OUqM_ۧNPO:P`fFc4:4B3t:"[SO꤇ڏEIu_0 &VFCӞS>HQ~t}e[Gi33$y82˴ѵJ*2^LޔNjII;BI%Y{WL$5͝I:qn裇}Wǜڛ ϜOjCҸRJ̞*O{sα,[%4.VJVׯ]z~xs׋o"sq!B]U){GvyXޘ,(gYYԕF)+*F8Τ}p_+"Ypio ccxZ2 r\-Hٲ`#H6`#!H6`#!H6`#!r]LMQD8aL{'\Pj*DɳMfҬGX Bԩ<ӻZruK>/h+0:W_!p.lװfebTWg>t&b ?L!iϞdVnF,/\>؉pçBԕA!/M|%oŒT bXI*meY9UZDMoe4xgo{DNoEcZkw𕻣M[]ҷ6>zOwh݆Fy0qwQ?uq64<_Opo$QDYL`@{ۮfcOtWg dCR5Zٟ S/_Kg$^ɎrgIkt;wGcv7;Za^Z%+}YjQ)( s4#rqRMdC3a8ti6XSuiӳQDUWV=,g>}An>nΎ hNkn:61zNٷ 1E"|p 43RVliG?'^nŢbUlp2PPV:zwpo st YnRU( L5=Gؘ0RĿlfVB(qe$K/ ='1cB42R'QTE IN~xOq]^&E5qvYTs;6szgv aѭk~ɠϢ2W^S@sʙ yD[n.ND͉0YrԺPG]{D>uYXy@#Zjg4jє/og؍[0n@ִ7|m 񂂂:uDE JŸ6O;oLر\ȕ|MEvMҕ1ʄ9m&NF\ ~8τ*}T+ QOY2d7E7\,m8)C()}}-:߼M5ZNt.ο(IUsslOߚa{*rtW ;~B@k#>vz1F 8ši0էgk~W|:ݺ0g6aI7]L""F8[l FBl$ FBl$ FBl$Tݽ'>չ3DI!j0 c5n;:uny\m@'gOˇ,kG2 *b]͔ 8=bDꂧ=X4P6PIJkY&=N3E >\4=#cVER9FF jm[њT7AIBlSfԋ;NH<]-3k ]JݖشV&b` BH0 z\vSlPNZ1胑O+ iAD.#s7m0*q*iE gcx?j5'S#Uڢ{3MҒ:t!S+Wiz!|yKis7n)J:4o9^d볿ӝxe{,şevΜ9C)S49w7 T"\ N^b!+YU8>1ʦN!!!˗/Ko_sN *O|x"-C$nZO=1q[?vq~J ziPp[~&PHmt<ЁK *>" 8IDXVF  |  MЖ{=nX(' 'J{3scVVXQXc=@ͧG."lYBl$ FBl$ FBl$ FX5IFؓ2]Ȑ\~Z%@Ow!ZT$4QFert TŇquw`@j"[  [Supg l*T!ɪ7Yn FJ^KQw@/m9Jg2xPg&ÐE܋vӊԤY8Mݺ]K7,IYf/Cu7;-f!pSAOLgϢ;Uyʆg`F>PF)Sj0nJ>1H`,~3CUoO^}l멸&a ~K qb|ni.pڎy( ENyl|{>26h µ9zRjsym2Ä4+4ToԺ6k B~vR&!8m',LG0c?H]w};՚ >ܸ|]t,^3Ը' P+IFm?`*'I]pP*pŇmOZsWqҕrja /OU=HBHZ[:Ȫ˗]gv6@EyLfH1%t@؆yy`kfz2?) O#\?9'Fqazzn5ZP1C#J%skz2k5[u`:6j=xu;J#ŏRk8`ُ]eZebf͖Y/XC!|u6Hef[>sn}j.NRqbea/`ʫLQB[\w)]4Kq;^.9m S|԰8=Prs5.&T3Js Η\8B ) y3mڂ auMYVе5 xԖb3+J·`LR6sPBQrY8**a0,6eeO1-0;ݟT.NR)i8 j |{}Ϊ.FᏥCSp\QFe$h%kon>D4av)a)يVwHHk֑C=P߷E}i3a.f/O*'Ʋ>vSF Bs+v;>pi\S2>#"~szi;D1gϩc;zqsq7c-r~&j3 y`(/TsqʚFSiw 4nǻ!/miJ2+!G 65z<[ɤ&CڷMAw*L3V%Z1bF>a'Ǵ˟aeSKYBVilI}}m1rgWkBiQjzQB4T& t:9qeN}Ƽ0P*F`$I$`sl&c4>_j!!H6`#ؤ L @jJT,,/)IO{pY3R]i 4RtƋ\Y#6(IN(6JKJRnv=IL"ni$pn;v_+fZX2oZ'`ں mYht;RYn;k|As;_R>/^r>hB`Z&f$ji1n-6ֽ̮=8wٿ5X̜.Yݣ2e t jtSIq݉mM(8UV(*T"26O^/La/#Sl[4*թ xu`^]ko-uW61啦qk?;S>]pPJNE4˓ueE}lp&/_A@^ykƶ*l5o[geQԭK1J{Hw3݋m™=W/NJ\`rJEj**2``1lg/=Ll՘wpbNS! v'):v?4R] vבS:g:wJ~xX^\HێX2ڍpEqyc {bY]o¶$g)ԕ3;ֿU:UW!"Ѣɞ5 ;g{"26/ 5);Xs3016R)1q!]f 8 &uЯ/%Iw6 ̟&w@[xaIa, PdqcI}»;8zm X.g'z~0>z0!Zqb4*`3i[3,5%qX@{fCƑݺ[eԱuQ޾ݳ`ܘ6:-dhJg0t*|vZ@HBbp]{ghF r_G*;a)Zό"ǟ2N)~t+Pl $]0$NL4jUZdrWgYӟ m3_+R;ϊNVʥ룎7l'Butk_ݓo ׎h3o`-qɎI󻘔=Hy~dXwORV }#MQ7igQg>C ΄IVD%⤢d-Gɚċbta~욟4׉I}סIDåeTE)W$^?Q~^٤8y8{;j8]"=Gmɦ@qE:i#HeQf 8tcYMJPC<*/hS4z}}Z_"gqB-ޞ&;2A0ې #6lGS.Eg]sWjFT[w*m=:uѳSnm>؄`x8<}lVKqoO<åpG0N' FBl$ FBl$ FBl$_V.cWy 悓50vʒWw^)gS[0%Z='NmAo 6ѬGX Bԩ<ӻZ覎*RBS\;ھ]+-J*1˒? o=U +gY@R 2+!W*tC2T45l|DY ՙO.I3⟤֪ϲڕZ-HYt|p*j0Wәʻj ö^6UD¶UWuxWMFj4 4^ 3z: ie~ekUqpP \&aEVŞݟ/śAQV!Zq&|h@VMަUV<Ƭ|=\v,@J7].`fy%ۻQ~x_N'T.uh9'u؂.& R ʑċ=xm0)l5D^l1NfM=ٱRN},iMwzKzyj -gbim'5)m3CtMj 7awom]|`̸6[7Ad#N#/]/vG]0,ML)/tsH3:@JD>+vvoe7m qRyikdu~Dڷq|DP"cN~xOq]^&E5qvYTs;6szgHUAHle}6 M\K=wd6p4',05c no512ϝW{ ߊ!'=}um'TEGKtsaM8?JNf:(,/ؾ>mW:ȠcG[@K&& 횤JZ%i \B~AYv[P%FBl$ FBl$ FBlUsͼ"eQa d$IEJa xuV/$OBК4lW<|q1@VĞ~1SَZ.f歟v!ܟ(lRt[/")$I[{B6/bZ{fwmYCM}°Iٛ[<Є`Z[[+3겢66Q߄mM^r.O6qэg?;6H F IIu[zȼ;`,_w IJE>:Ŝrna_$c6t 7u=iuVwUٴa{ ޵ԙ?e!V(umlRv?.ݓFjRlNRVYTQK8D+p-71+mY6mwiM2lܞgN[}T~;[.PR҄H4oS.1AqoSoʲ vϑҍi #ǩ4Z%18F `~]'cti3a.]vU:w2Dҹ~ Ys̝ڵ3n[JˋB>A`Mo[J0~n^m@}r+AvN /d@S[pG>QLaeX=;wh:L\f8WEmHYg[g8/%TPfTVckt%VRJwʗ'Ln} ^)o)ytr0/eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F/IDATxu\UIǿ^:PX[^nzNTTl$/qycEt~f{rΜ<̜WF j>} xIԾ/91xkw(Hw3AAOM!O9%@  @@ ahcd(dY$axfX=_(Ҭ"ʬֽF@7jc-Q .ʙAJ F@ (B@@ |¨!.FEttt"&^&NѨTq͌'ϥn}Be +Ni=9kFB dT\Z1?FSyF阿y©]y%,[˜n033K/vv"{Ͱ WuzJVS*-%fg=y&Gr_~x(c8¸AOC8>xtJ8|o{`?Ge? !˚TL'~!c4[,ndBjlMc6fTS(;݃{mOwn3903J rǟQ-z_XS&z9|1ec5Eqc*ZI {QǂSF`u\Y`ԐJR1o|>e@ږvŊ֛ Y؀l iRn{gB6c<ˡe0외]03\K^&0?HS-xp%~S mkKiu0~E_J:zYm,l]bq?#ԡ.&^5#,i]t%=b47-b;,A?=b2r?3[ % gtĻoefQ\_؎C: 6[jqa 'PQ/w?4;ֲd:i88zAz迒(6q#c;. }'daddU'{&aZZbiiIVsStQzC=ҷ'_,(B)T (6!o.25q#XY##Iuh@v=%O㖷7nXʁ=7sooo<]ades =mޗQJWd2Az72+m@mO*~Ph렭󦚷7LLyX]s%iB5*\? W8zץVE{B-e;nD>KYJtx ffe3-,ş_;RQji==L W̱3g}=E { 7yi6o' cF7BOO===*Uƅœ'goԹiY"װp.i)Oas#N/@X#:ymǵY4=oQ3|=`ʘtI%DoSF(MNtC0ފV)v\vaLtM9OJ iXTXOФ3i%~,Q z/ ~. `(~:qLmÃF@)IVW!@@ (B?!A#`mk9m!U2Ĩr:~!g)$o%!fZ~)If-&ٙr ƨ!.FEttt"&^&NѨTq}R/ϥn}Be +5>ىEW|!=encKN\7Ǽ?ٿƓ+5Bhgv 5n"L.oȇY^xᶳn]UTRl-ф7;7xwby>5G2${^̵$▹{_HYҎo[zs_! m#M}]("~ԁ'W}9=f ZΞs?ρ+%6S'.Wj)nl,c+Mً7p-/f`g\~ߙ2F~3Q}{P-v|Ͷọ$2tV38Fp#,"p/7}lA|# |C1kiow9[Gr k:ŴΧX[[ 6yRwQd4*7Jj$53x}̕32 +9hYVdLlPRUIR|E}&r- Uf_U๧Rr@1@ņ6adlGeo,[c#%kQf!%d57Ep=ԃ(}{ɂ"DBKPRBs#uֿ<Үńg27Vaˀ8bܨ<9ZƆ00،ܼ<UeuKed=*.128ܯ\bȽ@d Wڀ.۞0UH(ulySێ32,V1Fc?ܔw~?KzDK˾޿}‰ aKH沫¡ \me<7ftЧy(G䯹SV4Ǔp9gٚ-#q$aLrjhbKj :OGM %_4KCJE>jC x=$6r/(AM1ψ*k̥C h)H()?]zz!]Nc.ˮ$G0YS1L_c&5rnX[6O!2ZMDt4g7!,/YcfZ@@ 1):ymǵY4=oQ3|=`ʘty Amm¨#V&'\taWӨ {GRpP^?بukWVx} saylF86!KJ0&{d1C,ӧ?,3 jL?8}k׉lfG `-ZqģV hPG|pp DNlB*X<h`N=hX)>R%-ttRZ猩QٚvOqBF&.<\n.GY}<_ū`NҕpFc7R*15Q21LT%~%Ī(Uy@фQH-^zq4e|ЦKMyo 8{\QNz }hP,gO=".*ۏ_qֆI ۛR2GI ꞍH7ST+Mo*ɕ+'MeM+LT,IF`ʀ:@#+OB~ Xe7){ɩMyZF|nQ\N=5MGiYI{G=.B|}&OޭP4A64]s=LЎƖ5\u*R nBL[=KFYM{#zã#+2a;:}6Unt,iLޜ?7 "o!I $INS-Mo R3XA.xEy7O&\\x@ ԮWLaVȢϙڦ>VcA5o3Lś'gصb r6ᗫ [%re1{Ne~:%JĮ0o/Zr7Bq%J%.1Snb']ʕ~e\ %fkI>ɴIҒK!U$SRf,|B\z6JG/iEu%=ݞ=KiA@FʄoZޫW2[PB -H}K -P}6&+@6dUtR}q1RqttAFiL>x)jdia?sU eI,۪_q=Z,HOU9Jz_]}irB|}}esst484Jm5W%00=/&ImƲiQJCA,F va de\ 1@t1܌PH?Ԟ+Q Ԋbڢ_ 0 F@ O6F@I-XE meߐKa4eXN3iRiEddM^̚B̶E;FJ3J9*!!_q`i}kqF/zuLF৷D+b@ ddaT??ȴixڊHM*dA"N#U=:UV=:c/ƃC8Q=9N_J  Ч72/q{R y* MI.lY`'ذo73ĬCsG%z)t^Gs=#a#_pru^Ŋ%df2l}=vK`v5b::*!:3KO<ƐXj-Fېd֝v+J!`a9k㙵p}3FvLsEBf:1O=G1@<?AKNPBՙġWѨT9q>!z6LL1?骑lmzz~ˮ<ԋ2;qd;oɑs5A?xȒ IFN;Y~js)IژO1S$6ʢDq[lP*\Za-=5!+Sm\`sl~ Q~[pvz/TY0 9Ʈф^K'[.uD>UBmLKfMwEF._v;ҭ5u<$(((1s~FDQ}RZg/L?u64[v۟pyTqo??|N@IB.\;3] Pp~l?Hˆ] U%KRl. [Nd`M],Kז˸')ho Y`l`qs,,,(͂{Ju=!bgQ hgFBRՈ;w(ot脶Q4CE6dWZ&AmChڿ6VSi86mQw-W6hZ\ 56[_7W2a)7YϹO#^8Sf_‘RY5TMٱ&$JXzn|02t뭇ZGMm%&NF#4j j hVžGpY?cP>@Uzޛʢ ,Ϊã38 [7E8jN,,sqZ-09S7gO*JܳaYk=9YvZ!sH9bYP((#ibTxBݮsl&V E8YC3].r@S4)1- ?Qxǣʡ^yqi, kz~FX:˲khosƴ^yG1Q E@ 1.a _K/;g/Rl|vdLī嶣p{(Zч'n:B@_WdDv`}RG|I!F㞰 ƕW)o;r>vj:7 ag wv.7SJV>..x q߻A"bF@p ՇӲ׌%Pt(г&K{0*?nӨE=9䱊f91+\x˾ɟrҬ1-CCJkҘbݜީvnNB0=MLR;P\8j ©eQzPY~2Ex=[ }8fG 9RdXTr!W^Yu9ޤ+gDF2y.q=I.rz>Q+" ߘv u-IdDmy ,B!_mFN!!?+w5FF!?i>"F' F@ ( (|%IsJHOX:&}v(Q ' K RBѭGIBhFAfgDFJijd.Bh mtKWB໒qQiĩx?o=r#ݼ9&Fdf毺HP BX3 sk_1Y.lԳ+㈍}4R ˜jb +>*âvdUҫ]}Z;g8E6l 5[B0'KedrΕͧy0H}]BѼvP[~|\ z]ӷ}L}|LCgb &&w&Tg"-r˜  ܿE3}Auσ]ݮ lWxԄsMț6.OÕ(LAl/Ųhޛ["DŽ\; f DF@^@Y0_$VD˜V oYa;ofGy{%Q8/G"E(RθCy)Bps^hlk(Ve&<<>bui”ձ ܘɸhlftdD5:S#rwd߶d i"LFP#K r+ 7cGύSQVQkB->)#0:ڃ흮a6x'E+3Ȫtȯ|['XT YU$kBǨ05mWz,"WL W/&E鳮 $RN7ZRAip$$R@dJFl6'GVck#)~f%84!u='n3QW{vgl(%O>v :͇uU9h0r'=xT`=vּPΎ+K GNc_wvD|Q,Յ#Y#ڪ%w!6& ۍ=h!֓gLѳ!=Ѳ n`Bxh~OKNImX&?Vsag'OuaulL>y<.mЮb8/cܙ؋RR0~+H^=ɝ6Sm\0ǜtܒ4a|v7.7c߭(a]h9x4c. Y~,*uH\U¸LpS;ξ%Q[Kڑ梤k1ϹusS@A}tql6Sd(ƕG5f JcL#q,OE18Ax *L<2)WxsJXh!Ȇ}^GrGdAˢ5 \Vp̤}9Ѣ$-ImI.rJ 9 LbEZc@(~<_[F6(hA^Vh~lhewQ.6+BWN=F9EN$o+A+WrCVϬ6s+ke(:#⹶ 泹}.6gtK:&0 $(f+dJoMl1)=SES4yT5r4A'9c‰4ƴM|T[u>Z]'V@ #B}KGC##u(u 022B_W L7/\yQ$9%XNӶ'>ѕJ[^Kgθ^ᬟ$P4gB&T[|# OZ Ȅdށй 15785 f&f>D #49"X] 0֎˕\%`T]K/_marRQ~n#ָFq}eJzD6&CFrlY-r4_D ~a4uHn-O.D"Z*v{+ˏUu{4qxÔ{ܹ ̖z!+z316ȕ{O^U)!)(oX9)JR91c~;dW?^FVΪŬ_1@3k7?ձmiגyͷl{Ǵz/MA>?ӭ<mh睟m[J1ݩl<>q>n#+SKRsGA@yQfIҕJb8w]<@¡(+K(,ZBHyFBLpLLӼZ|jn[d9NH^_Ep@1J#,,x`Y<۱ }Y.["\R a/}TzTA^xG'JЃ bC蛚c$_@_}*}ٜ e~E"ե!A_r*^[ df7k@ Q +-i~{?,r(S,\i@ '}0;JeZ!eb+g#$Z LcqIi7Ȓ{%,%QXLnviM dH+a 9C19%i^(,(&Md՘yYo(IJ}{^0 }HH_}[M-H`bҵ3_ -B 3 C3>}6< Eq<.x%kdr~H vEߦtGtMT"B_89Ŋ{nȌ>kx 1|TQ8i˜6`^yr8jp_[0Yë}pCOOBpt,kֆfv쳗#%|%zK!{l" ;Ps.6be\hS,)mgȜl'Xېߚ48zO^>sQR%Vfs___/ΥC_vX f.>3\ ;tgW<ƽ5t.3%OlΟE V(}Q&KGd8iM^} (HDž[ҁVm_2o4Aۜ=K=}twg*r,L7 #Vt pX1&cw~˞~ģ JWVK!:_*(_\3½@f aTs|ƌJ|%BaZKmoqcܦw62n΋Т Z6zy.dϒ>4-f137t kTAJ- "^`3F WP39ٔ#Z!\ kb^&8u8#A|t1i$P㶽+MwTe8z+4'0HIxe|T\RYQN$Cu_IdW/ĈJ( -n)oZ-p]r3sG!OԪ=O3 D^ rTjB"J@Ʀz9ǥ5n쾖*db2wf"oiadɓzNQ!_ѿuD!@ Q 0 Aj/E*z)'(}yz-i/{KΌ5a*k@! V K_*&6/Imy;hrfWJթ5]kB&u_c@j)]+bi |@čr*< ϼF-~ﹿ 2\GͫYyu23Zxsnx&QGG[ùy>;#k8d GE>3ȡ\߅^%~AJVN ʆ%yU/ FM;{}wZ@ 152 W=4glG5 ҅W΍uiQTOx-Nee V|Sxpxqcn $`޻O_/:1zm28^*Y0 ]-daTd *熗E֒(~EeCz1xz1<=аwp>wmJ)?`ƘۋӁ:pgR* _1 þHvTjiCLܴ w7H4 KA8m 8]0Nh)Ql_ʝcTjӬZGǕ)YAIA}Ƭ:2SAN! jg 2{0jojFGKrF i`)F ygJyT2;^hj||8e/} ?…11U1saheUi]u W4վ=!Yek@ܳl8UYgRTXY(^׉3:W/NLDzx8 W'0,z;rjcS{GO1h2FIjoDS!߯J_A23•V[cEр1m)x{={恡C {Z$n^Z >OcS#?{<:CFl/&)_gy"(E>u|p4϶-fg'cːC; K3 O}U`4Ś [25Ĵcx+yd8zyBVm8>g1Wó7o[L]J ~*w ~^*lŠEڮ8zr4#Z쾬]uqYt BuΩ&)]Д-f$04^䪴tRZx? !'w\k[/*T`5A!%J# Tβ< (ެ) 9ZeKw3Qo 'Qfϲ~)5Ϝ#_ݲؿm(-TfpZ02jOlHGɬ*ĢT*TaWQZs9?v粩A:x"]3ARi^].lbQ,Ǘ1`&-YÜ\ړIkb"I!G'ѸT.EQfϲKԲP t٢-}cqUdя2jf{Q}L6)3 zT]H}n\$2"b*иRweMSIhG<#DB93yz Ʌ%3d0yB:DY|.{fЮ:݋ukGS}m{[jӢE5*.Aɛ=LY{"KRjJhviܫa0f4F_ TXB&-X5Q]F雕gaU,tvܣTD,9BqEv$*U('$܌Ïs3&VŶ2߹SqwƱIenn \v>o#+KMᔗ/nwa቏'v أxױ|C575kDء Af$CuDniK-~2G)COQ'mcFۑ@8Uh4aDhAre1E:JS81YM?6쳡jYhBa9Z@=5ic o:##*cN/͋8"H Ǔyi¨QcTm}$8Zm74Jx]ye) 乣L|lSG/T&+?GGc_54NᔔD:Ƙj QH/i qq%g aT4ae;l۷SbzQb(]^ɏh@ީ3gD,':d6Fp@E0PJh\Nr@}ξܺ柯KRY+Z;icōžfEyԜ4:66SI2ɘ~t$*_UB-tuu0#:hmzzZ:Ob ^ͫ([K5LWJW^z'3L|"BU30jۖFzX(j/bk.b܅]\ْ.sg7P<>$0Ud,a:ľ:ς 輖qLd_*YT&NU60~п~q5hPΕWS8Ј,Z5ܓF[w5Z@EGWL2XOU+:/O#k.6Jw`buȾG^~FoX_{΃w>3%j-rU=ƨEMGm1Ī?p dj1jL"ߥt~6i,~υ{yxwRgM c UqCϟPӔ7zsXw%R ȤdawYB#> p`YgڿAnз<^MkXbG)iY {>a<3ÛR";1m7R퐿>fs/w5E. Zlnnġ0$:zhG<@Y-x}n=Q+o-ruJ:Qάk7&}w)=0kim/nfCb}•#^-y=_K`` {ɠ &Ir-dx+sd a0 a@(&!@ Q b1,AKmawUwR[N4U^H0 20Xz'SmO_CL7 7 栔e]gxv ad0K2*'(X&LQY|.QyeQ`AFF???tGTDdD@ d1Z[[;"b k1 ? @Z+~,Q n('.,x[ |kK ad"[!*m=,omM4(#YNт++-Gpw4V]DhTDypn^IYw#$2G"A_ƛ3ƱfHu]xU4xY3 5\ٰ#*_]iGpμa}ɟ %xw'W|TsE5Ț< ;Wwh5qljOVdL.#ݹ4owDr#,9&^Ħ/ !W& y̾zs}i[L?J̀d`aLn  nW+Fsςj}y9&y ' CUovs{r:PgLCb5rcA|.ϛJ-mѠc׀VR}-/2iڽ/e5ߗLT wPo])Wl(=8G;{%8/G^.t☺h˩xsGUKBĽmL {C'1*=~!z6'U=ZVz L zO)R;wG>u|p4϶-fg'cːuG6Æ%ϧ>Dk^&(NNN4l'''F-$ZMXôQGM,އ SdmYFn5(soFAҲvԌƃw sy8n.WT$SPҿxDݗ"N:nDPRߵ߽۬lRҥ? MkFN]OCE91cf"88X$ sߌ`!,OE18Ax *L<Ɖ&e oN -ٰH,hYfѡ o>ǔ4ZT$nq A0JGljiQ2̧*f&4{:+3kb*l+«`4d-RT 49s`nn.J SʯWr!&1 Cߩ9噏&Ɯ xzsnf%5hI] ]  bRahfˆR[t kLR~CfThyt̪tK:|JBv3ߪLaegDac1}n<"V+ Dٳu0<5CUft30J"⣣ :|/޼pEЗc2G;qjmk{c_$uN A0mZWZ ʘ顧oqy”jY~顗o4gBt].nr(O ]d gҥD̩,RU ߮ljU% \O:6s~,uIG{r(AEa.9+J`z*jPHY}'! wfd¹e%_.D(b/p# |7Y)S*]6­9742… p$\DYb28>;uTd6ߒ;9Qn 3uHn-O.D"Zb[L,?RVN|Sberv,`0[ꑆ ׀].l޽>,Xq|s`Ғ5š=&f( ]\rtK"ZiV,{οD- 5@_ {{{Ο?hOoE k3CXr/|}A[NCgbVүKf1j^qf7:vc_- Z2|bV5SB?h<և7ҭ޻ǿ’L[Vmy![,>w3shWjź)龀=fs-RiѢJhiBfά=%r)*G^7L9Ddj$___9{ 50\ 7`4ͫߙEKf`]¡[\!Fi/,;1T/0ea\_1GVs%WM_SƕSer ȓ# :R*ϓf3vEv_NE0##(!App#UC0 F@ (B@@ aC @oH AS@X@ Q 0 F@ (B@c:Ш  e0ԁaڰ|"\->q#m%̡BG^UvWXS9•f(|~;[U"&`, Q7% y~UBZՅ9]<,./av ){?k_'CٙPm< l}0R{TZcvDJ^t!bz''*!vb- !߉)x_3{$S`fuW6aw}ޫ?eCz'ijP᷂]h%hÀ 02 ;[5}`5a,t2g( ? @"} Ra5E!B׽*6]mX}`a)GTDxvJPkU(Ae[(A9 x^ GP7RP{Ojzfx8^ m9KB5c(T7BU姣'T |Wp 2նp9lj+A7Ԟw9[JŬ dD5QGyEVL'4F6E]yƞ Bɮ(;$!E^8-֢4V@1fm=U*};]M_G6-r /+ίƹJc8R#+R'fMi,V Iэ}&v0Bt;7=tO v`,G3AT,h O`5VN4\y /a6x@望xq NC 4&SŠ%\y:P.+( Uu01k@_ ^ekb[GrgL7WӧdI6*]"92Ȉ{Ýo^Ҏ{l>WaDXH0lA03|Êl&{cIrrgϷ1Vt]IT? *B"P3f vh[n HeX A[dSko#?Lt`ޟп۝|HA\i| `xp7%lirx πW8< 17l#'sQq !2.`nu m@݄^${C 0zSQmkSXn" b(/ Q 0 F@ (B@@ ZQ1"%JpH@@ a!@ Q 0  H\hM˃̓oP{rh4>ÐpE(jzpIBuewH D<-wOe'3!x/WԩSԭ[1cƈdNѸTİcFLO{EsBu)VRe\Mȟ?B(^Bm-,!@h4lݺ<@WNl?cSu)՟?>9hUi?#D 8bcc߅x ĿQ':22>v: bgOGT'O=yl˼V~ˊUCbu4ۛ ٳt>}$I\k"qu_ZP~sݺsDc ㉴so |juL ag3A;.Ь%jqr=%sb[s~hQr&_^Sy*+|鸩t Okprry\xSStǂ 8rC A_qiŁuEjoܱ|OceDvnMY}vaܬ=1 bL-J :NS>[c{c7_BEMh]5'zxs,&y\ys)m{~\߻3٩A5̄h۶-uԡGw-o߾ͤI(U'ON4G7΢S,r]q{o"\W®2ubóbc%%fO4°qk9/Id)P cC|9OQbޞckk&ٳ' ٙeZ^= ׼FTTN \s]Hv'OA2PraT`Ⱥuq= RL;_b!IWø~̞QB3:z ?}eHX[C_s ֻ>h2>]s5{-1\Q1f8ѷ09nbݛn./3"_IhСϻkmͭ[Ț5HLA "[e^B_Si<[[S6}v5®Ska6P$ sԢL6_dmGѶnBL+ 6l DQsYSzu6m6_~YQ]dZ͹wHJDF@ (B@@ a!@ Q 0 F@ (B@@ aL;w_, SDyaӞ;oQK/"L;иd""&8sוRj'x[ahEkHhyqxJ(yfso?'e[ d>a{tU%}-/rT4> CV^lwJ-sj١'!2>p™2q=z{MO@O-C-c#fn; EwCmxxsͻ T֖/h_V  Uv/.Lh@)Xg7s/@O===?W%4hЀgϞeFY'qu;4ޛCA>d>Fֆ}22!b+!;:5k ~̤!_ɀVxW+a>/0mjF~d"CW" *\ܺÝcH~G-HmkQ%vvv899ѼysBCC3Y%L+dL-ctkT2fD |6kBs)j`[f}̊~_B ^]U<=5FZXv$h$= ֱ_ JҔ.KW9m۶N:Yڢc^"(ފzq!Giv]E = ޓ]QvI m9p )u%1\LQדaMk`ƗPKܢbgt&F'(hذ!NNN=xb5/nY {KvXO㼎j1XM,E6Ua6rɆ& b>3y9 V]`w<(,Tm~Ҏ>MZg̩GvW 4+9 涯/x_KMxX׋SK0t?n^F9}FZk\+'6fűO 8 Vޗ29hismK_z@ug%%3\ ;tgW<ƽ5W: xzΙz6wʇR4ۛ p)͛dgsƕ!tDGB)w2\TBzXrȏ9Lc\,y_:Qp+W+pZ8W`J-'''7oŋ155D08ոC_0yRe*ً~L!#oEcCjew@ m'gz%3Yۧ Rʜ"^`3FE۶mqvvGڵ I9-(9*WdD;zY-1U2ѮX=7ajM ]9Yqdfm,fh2Lq(Yh J6{ev3GOg?qrdIL+kXyW~bI30NNN>LLd{]{G{ʴaD3/ Xϭp ֱZ- )DQXACЭ4Z71]'{UdotXeg@"7ЌŌ3U{ W+ҒEjJ9px:tgD.s-3du9E+Ư%6Dי˽m8[[G1jrcFdLv=I3ԸmJUٸR @]iJbРA̙3]UiVM5nߝ%:ˇ2Kyzk=WeZAGd !_mȌmaMֽ<4˄5sKF}m)25 @yhcu @At  &P׶Rr~c`"XjQiqjQ'[Uczuv ϫTmgk ˅(,YYtOd2aD1xDPjG4|(X=8͍]I 1mh4cԵ<5+ &Ez9vzym'ӓ r3Y1~1jܼ"|#ggbp,ct7aOp h˙Zv8z*HHq5-Z5$E7u̦_1QXi] ~`jDPEdn9GƜFRy%l:hFB{{{Ο?m拼'5RtZBB:UD;y JHcL+2b^zpgr38#4ϴUѻ*y>k)[y >Kcq{ꇊx U'{aJ"xlhFRV/G#Gqe:ӧg*MKiFM+̺BRxm7&66GFv.H.D h,(kWa';i@ :+)`D>dD@!B@@ a!@ Q 0 F@ (B@@ a!@ Q ~2|\҃QL9-KЃ.7ˉU$G"K&d͢r`i,{y|rL^^AļQvGl?]ľ8ܕ7 ļ?ޏ8K_|YGZ{ ^'2Q$=slHi^?Z(V,)4d=gcmaBl9OK3*booOJ8赝^eO5A$; Xz$2hr Nx?C*ԴLlD0o=x&Mq5ja Fyuޟ;\?顧.[ 7V4͉MVdY5^C裃Є+gϩlV=}y#{&sp9縡]t#8bje71*dY҄<|}y KvRɳ2wF)oZusrr:Y0Kג'GRsuJzakjʋg޹8rIF:&w{:nc@0%yJ's1\F2O!514|yZ/*eGi۶-uԡGrq-%={ʖME-ShIGbnEfY $eWsśU+3A mꞏN(URkmwΜu&(eq)צu;B額uVWwe$~[skлΏ -0tIM]Z9S/K5&c2ɣ-Nn W2S<8m,%$4zF; {]1Rsȁ/IDÆ qrrbљHOUP  |00VthϘdzFu,V1jb) a:4]â#-ʎĭU¤\φ <AhA0ġFgʁ@^Z~x6t)e' sj."К5/_5GyqF EnC}A 6G IXZZ̘1ZjѻwL`vC )Vo=p[C  Y]a!,2$]Ws}zN3gЅw3ZM"6X,߭'Gsei( >~1<=9? d홝Χ^B04mz&s)J4xꌝ vvv`eV)^@̬[a8#b=\/d`(ژ{ve`b8k,&םϟnBޜp~o0T\Fa>5M?;[2n!! !f;fB;y5뻓G^x8Sĭt茧7@dﯚI˷ ұ!x&pܵn_rņrzS=zWzԛBgʳr mۯi0RcfD+y$զxmEv *-8ˉ Yӑ;81 1=hV7Ĥo9 $*~+oWAqz]2t3)Lc*ӔֵIȡg AGGejwʴ ս(Z!n/EV-c=ϙfkcO5P0YI;󸨪 Î KTJ.i䖖isy'4--GM+S5ŵ\R2,\SJԑE?dua.83}:es|gջષ~\$+3t>n_ F# ?Bc)ѹQUغ9ZXP5!bN|'oXMo0h0% {wW?_#aڷ4"chΠVb3OOB"z ߺ,(f|.XmcݽYte( %J~Ti6[طqShUꋼ"r:ͺ:W}̟j0=*cmDobx>D{K-r!c (޴Y֐iLMoq(eΕPQpq+T^O<qp6vfNqST2V/܎aϘ>~I/vi3ePzO7? FK_S R,N ƃX&]DoG&'~ zk l]]O3*M9w%⛽_p= ա峟cPyb{HSM|w٣SXZ>o?lq.#{;5>un>c4bEruADD6Ahm\KZѶK*ȧtkCi&~uR{H=A.{c9L&LY{x=:q[ϑk2a2e®˻%"BMvǿ. ;偷O#%zs'II|3^n˜v@~9:w|ysg'ț7}v2E# wXߤT:.&r]" 0j#nKy/oo)f$P9Me~<O4B ƝkX4D`\I |xp--Flzޛła#8'Һ'T>7؝AFFqH?,F=a?d8IQX o%X+Y着 {wh1YgHC4fQa03X}kEUqlqta4suw/yD$Xl9aآU9'q;$lJä# 1|,$Dx鳌fYҏƍGy,:C 8-{* 4H.eDžgJF%m \4t4}3ns.}ˉl7]oek8v" ۥ$ĵ8}P%x ~x!R!Έc\s>yyyš:e_,{ Zn/sJ`hz ]&D kLTTM"`pq0^ځ1-2!rAUhO2q6Z3P9uBkgtoW$ɡ^t$%2g"W(,u&4w|bUX Ñj.Wj~jZx;0i: ΍%Ǟc[o^lʿ[]}I1fꑴ*ҏ|tuo\KО g-kbW2yJ;|^S4 ѵ_\FlEKZKj TXR-!Qxl)0ٿx N>gdtUy&,I=xJEU5K&{Yz`A$2lT9m8Ey1i-#{}VazE~ iMEl¶Vju ESN*X5[8wa\i?Lu8S77̘;Whc# 砾z wmUo^!9:TU!''lK]y &uMM'a&εNpx:s~"dT2䦰}b`y'6&4 &8n4jԐP?>75QHƒ|XJgPJӑp"98;>I?INN. ^{'8vnt>J3%t1˨?F"!5wq_ XnӂXĐ[U/e1#q,L |$I 5[$>0 f.$>"kb?0|K{ ՂLXK]A*+ipVࡴ7Ht>JEwrӉ0z܍I!2=>O7ZL %99Yo,^dڛطc<'Ζt:ESB̃,_qT0y9O5HY(cqKɪA q^_lY蚫9F-ej 9)9fb]^1JHmWYF#WmJ>EMx-e nTtQbb*:0nU$0%JSqZv7T-&8+ ܃yxC9=ߖ g0˾)W c,9Qɧj~VeKG^ktFd /Z$n55DggUaJ cr {+RSuUFI'IuGVUٍDADAicmT qjEQE{+E*H-[Hƴ5*RBRS*"(8hTI^?qTLyF ֢Hy:Xk~2[b " TP5/B! Z,UFA"ZZgԩJ,VaPr\YjFٌh+?BZdIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/playmovie.png000077500000000000000000027504511473342170300270430ustar00rootroot00000000000000PNG  IHDR$W$ IDATxdWuPDe eX6"ý$. ~L" V@IA FiF҄Ρrp>UфiuMשSZ{;"B8p&,`( ldB98Cda+!vcq,o<0._rr9gr0Ӊ\xEbl^9wA#yCYPB! 1m]*D9By9 ўA#AYPB! SurַJuٯ|^rtOi{W:!N'Px%B6Ñ챺xы^ ?0Bݺq#-[&z2Otg`{Ӊ"x{ B#5|#٣pM?iΗ.G?Kx%d~pyoy^O$s=}to−e]yvt:~-!+!2d[G?r~n#du{7?v3v)@!WB!d?^?KJ>3g׾5k_Zl{{KN7\V%!2oΔ\~3gӫ_j}W ׹8,-#dߠx%B roiN'*qk='tiSuwDa0!2ĸ k׮գ^M_z|w3sr:sIv[־\B_淿FM;C!!BN=gBYWqv!.J23+vG>1'}%!Vov|K_†  >+=<9N'+k^ !3"g#v_/R?}dzZ*y}F=@ "^_שp$]~332[FȾAJ!̟[ 'rʼN鸮﹕}a9Ml}oDx%Bur>{^'ߣ{<{#dim{|:g;N'B Bo9ߜ{J7CYg=K__s5=_߼w3sr:x{ݺu|Аx:?Bෲ_󚽞]K.D!!׿umXgINſK7t`QSO}I[y?Y +t"d݆ !pǎ8055ۓ^~ejv311k˰?v/_.y;-oݞGD}].:so7 _"鉼ePGB! So[x+^83~z}-BwOo¿x9?%y!dI9ɋ/cӉ"BF1e/@Ӄy{HPhqn9g2_ VĊ 5{JNӉ"BƳ@/8=ç?=Jy{ޣq+<]lr:BpܰBُx]Y8Nt>Q׷|^#&•{IA'Y?\Oʙ"\yB!o'/v/u:._LHٙ_pADm^9΃!fo8~=Hp[&և8>'tz8=kôaB!dx1R%Q'n_~9aoߎf.q#5:7*jC#AYPB! ]WCUx m|Í|ɷo!v\Ok 7p|?+W}S+oWevv(Gߒ^p~BYh$VCMN;4I?K?*Y{۞k~ywS^Ӊrr!Ob6!=-!WB!БD`-B&췄"(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%Bnμz!~KHB!xuk{oFm1aB 췄8B!^B=췄B! YD;9~G]ira%x%Bq!3J;$zo !(^ !OZ:g/ƨ !-!=+!r`H $0y׍. ![BznD!8.֝CiӽOңPB!{{B>췄(Bȁ%2hHZo A(^ !\6x+\~KHCJ!8v6`~4~ 94ңPB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!< y/$!KE:&su=?#?\,_x˳OA^pG ߄îa~/?o~h4~-U֮]x8p؊׵k@I!}g/Wo& 9 `%;{a+^"B10pB 췄:(^ !CzŎr~KȡB9DD#UBo 9tp+!rEwbAqwaۆΟ#z}gk/Y/nƆc}*B!Eɉ+Q]0ݐ9V>C9[PB!~~ِqltSBȡ}ނB9/Hd7SBȡ}ނOW"=y8IgaXrc~oߊ[ q 2B!BBaG^E>/%l'=נ5=;W~s>Z3xw̍q?W?K!ʎٙto$# !]Bzy]H߾/\ 1qEI{!o7_y2B9Fo9#lciB1컄 6z‡\?埾cwnBE{c ހl .'BU?#4YH *s>nCc3C .!ł|g>ϟZ>'qÏ{"a2BydħB#5dgdI72_s0"w#9 N.Y_z-GC*yxܻ>E? `:!G.bƯ wDm6| 4~ 1w# ׃̾WgW!W ޅoםYO<33:$rhEw#p/NN zw}ieOH姘 w/WXB!{oi&ϩ^R{p_R')rI';*;!sALwx8^U)\ʂK0z-~xYc>◿%^u{|cx{ 333xUW]7xSΟ4^.%\o~L͖z,x+^iٺuO|*j%EV^w8S122~3{_$599¶mXf ^Wu?~'xtKݔe-1_x%"] X ]`ī?}vSw޸Ƈ_B#d-X"ބW ]tmo{%I ~U{Ӟ .U`-YDEO37x#/˖-2 |rnk9炋`^n Z'< v_'b<)|._*|cww7kFEY߻BKkK_~8 -DQo߮~Se+w{6lz-9y.!))_^@-I/"jE_}՚, J5|35{I9P&݂ûgm7ky>}6)[_Mq:/B;$ VRsEFJ\ޗ(JꩬXkW\q>2fw}ٕH7C(iʒ+kIeݬ7ISt%z(Q=]o_ UIH\g|͐$)"O|"9|pDICӟ5 վpQGfN"n7jPJD-ܢuB!dJR_ x ypGY\[Eu7K~N"C}rPT*FHb*q(]h@-3="j{yr+TX6YJ!'(iemZIVԇXY ,N#+ZYۻzV`RNB= Թ<va7o<Az<>9N#ycp%B!Ă ឋ߅hPx5$o5'Ͼ[?E%B!xj7]{/|3kU9oc};pާJ<ȄB!`Ypk^B:OEٯl Q8LSztm`[sпͨ~{(B!B9Q93&*Q'xc;c, FOzπ?릅^kB!rPxΛQ)!B!ey%B!r@J!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!3ǯ?.c(P&kan<я-w݅ zM˰rh3#ȻFbLJAY./ "6%TsA N\@*fKs94u#tÍz(6s~3:h1D&HӨTH򘝙EVC__ blVQY081b訶9yv( 6SZ6igA08Rn_1|ߵE6(Fky,\p=kʤ/;.|Q*i.VMxPފЊV+54! uhE@kۑu{q)Ԫ. 2f4ԛ1Ui٨#9ȥ3lHy@ jU А-N!)V>Ϣ^wBS.V'1jx}B,ҹպY .=wnB!!bPnXx56oRjn* V$lބJz؇}%h4Qz)rE8n6KiNPאNgy)-^0jari iLNΠ:]/CKazl+).293yKNmŊ%̠P*43W\'&2K[͕PoQ.|2LO4c_.k;t],"|FaBaF^ҨԚ]+jmf-Tj@!(ghER~\FHQ>1OE }NS\O3~Hۄc F3 °T:rR!'nOY!l}83y-]8NN̘hV`Z^/LMnM8Rţ 2c=@ncKZ0zUs3X(s|=OTx/&ƱŌhpî|FF84wBsU,cSJ=O!<߃+c]l.RLEki->.zZסfč z_cG2ؾv8HRd >:c0B.uơ7'LBM4JlQH #s(󋓔}X?oc'rX3g#-?"sj/ 92i]Ks{E]sj2Ħ\Tΐk[Ʊ6v'rt<#Eb[c=bȘ;}w,ts؊ #"Xv$3+p{cmOKkcMҙtrqU kL]#2瘿|x4cvLSJ!-oQ6lbڵWG su|)VFB.Sþ!R^C3 8..8|+ׯ֌9tN*c[rH-_+W_ua=ͭۑ/OarSlo$iK dpAB*l%a`Q?۶"#el:&MzR+iJ֑=Wrx:8b*FywԘ}B~tCzF2>r~CCKGE;JZa`8j0@lu u1b2ibX:OI 0NxfRL?GX`c!6 "3 j1S@I*3=A 4;)!W 'o~;1>R 6?NʥlQQkcu]}:2Xx1FFt2#QZ"ՉB)򹆊L- (TH?pf#AQG`{K?w'3;;~VL6Je2<02hZT yo5ܒ1A !ieךHČ_rrVS_Cdʐ#k T#[v3yPˊq (NQ7/ъ;fL,avBH{gjjI?\iQ%bDD_f3zf8FXrYW] "drTjKhZf/rgTds94Uw)Ht]i E,_zvlbcgR{Eé(CPϠ܌Po41BG6F9búp&u/WgfL͌ZB;(HS#,Y@S(rjU[(V "cEVDAtH45qT%} 5Yk0>6~dRͺT`Ųeێ\ U3h ,[ҏIQ*l5jRTeh j8Gm]Q%8 6\lic8q6-ɍpBR\R B#@<90Ao,XoVCVVnjY(M"Y,wk;@[āl@o s=1WD+qu}+Pag+-;:_bh1+bd ԡ+^:VH&O*RUx0@4@ugUC۞M~zh'+C,]GK];8"әf6?a'~cn:Buw>jѱƑV;IaL@Dů:b`Š}wXep-b`jM®[8ao56 $Hae@GS[M>}˜5;ךmp莬7b⨥+m&n#!`u$ ǸyHs_ldc%Fv!~F:H9o"?< ?M"<߈UX m0M#N7ӤPKěbpsHNbX'Z0K\4Xښԍ[-mmwĤ3f2jt-X*Ya9NVk6MD*~294U'M5 8!<3~JQr{h܏f}\j-1|O=ՁNMrNBA"$FU'nZVU(: ٨V7f#Iig6/@'v/Q灌U'D@'t1 9kcJU'F^$"'ZF0sE6_@r+e0Kv2Q8Vh5C>L"6ѨMIgQ)믢V+#lHI[mjI$ e ?_먮'B҉BY|iKܴ֬]BUuRF똙YJH2냟j91VXiiZM#rDjXKiF=DԾ2;3K~4^o:DLO)QT3y  #̼מ6Ҵd&AvbLFĦ<*'Za3F3vt~!LQd  l#D2,0zǁ% c_gԧV&ʶ }OƆت7U'ZbС1$F˜ H:t3vk:ױI2 S_kYۇqjmȖW١q<{6j%I}Fۘ^;)cnE4+HD+bGrUXǖ^fHl Ԟ0"ȳQVO2Ytm+#Ni8`TY>kEg貟OD V5&hM$'9]C]cD̕R"Fې4Qh_[]]6O<'yILFSlFmMۋlT60ND|Iې Lqw]?ĩS߳)i{m"- \?\mNR-kM"al+NG6 Jm95 Oq~d[Xa̬$qRfr4\f d:g??t$MqmD37=iG M PNL*<>ܺG$QI#N 'pFzeZj*q晸Kи曐/d.)xZCZFq$HJtJuRԘZڈ;`Z44}M:VX|^2z^9CF㵞Һ!-hr02mRVcT*.b%'eT> µض۴^`ӈ}߈Rnð:D8b0OYU VazJƤIJ#Cmۅ|^$,zBAeRSJ"y(26!F;ZE5:}Ij)'\4_Ii*YR1xS9gCIiLN#Z4[*6ZZ1Д6* Ϋ`3YPE>ߏf͈˖b5H!^("("Q(t0>9Ƶ8$*՚N˵ȘͨâhqxhdUdXLr,Z*c#דrlQ(w3&#| 8B-p@}~ʈ̡EE__i[qeil*BQۤ\6F=PQ-kf?\T r5vbm .#K6e7LF\s:LIQOnlBd22D`"(hTiuP:hhRl;>a1ČRuª-XpwEkvy~Ե)-Z;4Nu$&srՏx=xKk_4uKY!uuIL:RQWgi[s](ٵ!Y?:Lhc:qt\ZFt#GLhȚ07jQJu'i?c:P\;dl2i e<=r=6mM)3OaIϓ$uWRo]R JMӅ[Mi̵J݇R_FdDs5@TDj=Zl*&>" =kcwu'fG3Noߤd #TܰiR̐f0WBezxcn |̔&J7e۞XDJgI+smVڂJ]K*dKi`_>o&H3*X#^-H1e=|^ѵ9r&F+WQo5BM᧍wyi|8Ac֭(vb21>J!L( ϫ5=3iJe+cwf%A6WFKْW,UkB wϽbÍ7-+_]#9Z؉{`x*F=Ho~#:4!h^~Zp67æCD)Dȱ H:iPuɉ 5̪ժ z}]"+Jb`TJusFzۮpM T[դC;/Yb%][/rhr$}V6 zx!4(e ъ=7ZhZ?*]njrdGhz}Ӭ,ӨI:ęaЈV Q's\#ұe_Iwkp5qđf,aX.c {QӺnz`GҴ&t MmOcEsuFOyKy*|-B /(k]ULƙ؊ĿnŦD&cZC_‘F&>vYsȈ]oM8(m;]1ɭ I"6I8&SGX29W: b&vɺSǚZ46'"Tk3amFeNDDlg%9T.gBܱ[wCEɄA]@${"m[d26z@r}O\Pa Hfc%J-'{|~Fb3wi5nlNdl3v31{96v^uImQ,I6탚٠L@1&Ikm}lGx5qbtkQǷev}D;NHu$h`Ϯr49,GGSLD~++IBԵR"DMJdm ۨ߃ȢӉ&$dtTqf?B4no|`m7:NfպSZO<ۧfHȦ ;>1dtwo};ݻǭ^Ql%~p?RaxwXtWfN Њ}$=K A/p&ڦIv"1M1TtVb$w Xc3WW|Qam<.G: D!<v| 9mbSf /YScy$ga!ZD1̊c!2)1e5e7mb`\FƺUr5—Ie<-!4VheP3"T ^HQHyXQMrDf0>1ja~VFQbl/[uw?Řעas01>߄ŋa0b/Z\\ 5U.V 4✱54xY)vہ:BLL8}i=|riTj4dZ_}"JJt2HnZϳLjYv0B!Nadgff5$Xtn"}I6ud֗صx1Eo+Wj q캸Ոu)D؛]!k!9, d24$uɦ/,ڮAfMF5ϢZCXUQo, 4kܕrMU^3FG !%!.#L׼ʆ)!Jł-QzّI뾄VHvVYsz@MvRZjnIV-T*":$JnF֝'LNOh?ٲ^s&(reidJw7X62(u|촥 n:6i ciRbWsJ3vb9ok\%J.2fнW#(:"Ms"^8)F q4%&hM1٤߫4Y/kS1u(n 7My}0ttK611X8B?3u~6B4Yة<GyIU'hY?fQI-I͙Db07iջ-icyM JRq^fݰATtRa]8 $-[~` ZwNMdh`'ؤK' l+38>NUXƎ5õ rINy:G"2[:Nk"aՠ JPS/]3ӆLx'M.qaNˠ8sl~ٜʤ0u,Ux'}М\":&ҝA+7%5W>i,Myu&];u2# Ӕ04#6I ,:-tWJפzgi#24cfKk鳆goo:1 $ DWWd}5]Tjbdv B/rV͉uR6Ź eDMb`Ow2mM8bG-NoY׵w",d**q/gGrZhy۷`bnKH]cvf'UQMw#ʮ<3ctDtjȭ]Lg̮vWO:FmTQ!۷mW_SO?U׾}:^b> ax9xF<ݶ zPǮA@G9gg+j?G/aV=6#鍰;6:$lܔҩqصLqlFfQv$45LMM:YtFJ:5<S,YhM6%5\^7>KeS==uJ$鯑u0;3AЩiM!Z$Q5:d@[ l$Ƿu.M79U#2$ȴs~,q4U>f%| :V#)i j9P ٍԈɦ5lDv=k/CmS5kdRIuZAgx&EY@wDOYRYkCWq{S(;Lfok؜WM#"ȓaPYIsYs=슒XDvJik hGbHuxp@|ʾKE{d9$ޕAHh }W&ܳ{$dD\:uɵ6ncZ\-\mՈ,slצ '/v֚&>grLZ&ӳlz8:T|Be.w/iN'jGZP m1/mvN)V7| #aQ֖M{mj4TvtiڕDͥ9vc$NgKl'"m، -8 \zP/TvyKظȷX=L%Qj`mix’k k4\Vv1 bI fF~]xf"L"0TPmӍ:2yA.`"۴ Ij`cbm8Ɩ#شmFnhiT@(FQ##ƈumi>4#9cD4%V{N{MMB╕rI^Z~;ח t35[+)͙`+IEVfK[lCKkY c.;J$Εx.V] ف826%Y IϦ_]ԃo &%-,E[Ǯp|I$:#;UzY:Dj?޳Y,[ϖq==3FRB (EHèߠE4 @`<0Ӿtg{bϹYM~Ч u_(pMZY~9Ϟe^tl5Z<}Q{RN| %aI'0]1x^I< oZ5 ګ 35佤k`6`9Npp`05_f%=5|jTc=CƄ&0dnڱ TIs3hHrB5QsѰf =Ȑ&u^-^H^6D2lYiT$rmg5;XkjLnUGg@ܝI}WH\:6qN+MV7Ŋ[w03Q(#dxƦ s'JfeQɏ7m>hd2 iڛJӮm S(4:_%α1|gx`a⹰Z1FY~~ͩ{m`.԰,-?z."È>┏À# G#M!USO"݂/vz'/8~$-pVA(*qߘ㧿- EilAN.Nyx@Qt}z},KN9##tKBYṇ]P:( L}=t9>o8R ¼fG2 cn.<}G0~f*bǓ/iVh' K2 . a+6&ƕU縚D&*I^d{InNIgV cz?J$x SM7gMZ%@{;bQߢG67N^yIܦBM-oKoAzzu` {׏ny;(:㤇}ܾz} 6hszrjH>Fa[rx^O JiXBmtfGZC5=d6dbv>z |:({qJT0R%:'dwTf LfG4c QoIZn&f5Ӏf2`<5)xWGt89OhQ8fX]>UVr`b<%6_vf+7ܖτĉi4PZ78==qyE}0”,9|4۠$3&XmR~yޠ/4ܼ@|5׹!i}7u)nhЀ5F/ A[D(DJU4Z*F2{a$52>(pYwX K,!qH<P)|C SSsG/7eB&|Z)fn[s42XL/q}2ƘoƵ!}Q۷6uMϸ)(Sr\b:iz"(lBw.gs\,8_q3&$ik9s[Ϧ-ޓbzurF!A3Wnȩ-!=g=zuP))4DxX;~<dž7Ԗ u'WBK+];ް$mKR6U k@d"45¯_yo LpttLIZ8LC̆|Zj@IϞ=3QlΆb}47`z*6̑.soOE?ٽfFv<ZݘFGCF+fS)s&eY5lC7Х(iP qCZ9xyо_B%)U5gΆ|1ݼ7b:{|+5(l*-2C]^'eNs8zdMS֭l*Z2}5]/ ȥ48{oN9-: guk {۫qup:c|x L%dW`ڵ}Mpu9UӷZaTbԭPN1xgʐ 8x~Md!S ;3 IDAT:}\oʹbELx~}ymd65$w`GdllR\oy ڇ.Dq]vTHnkVc'kq`tq+Fu{n99G7DI3[oOTJpݶQTW8@lkgF+?$iY>ߝhp*>_/s53ǯ Lԩkǰ'QS6V 6pd;t׉"Lܐi%s*4mwC{-7oo)7|׉^y٠hs'6 )~_st_> = O/ΰ0<<5UukbōT>fXFZ)GGTê 4n4_┛ζr%މ!Fwmt^sgx+_çgʭy-#W79>/};cij|2* ~fE _:Y,bLG\u0iD+ \1W2j2W.+S,äŵkخ:#S!7Hi!="Fz./%f6?R|鍯b8" ݕkg8*_*E`dV=nNzx-p{O Feo} 4 wyxH7Z,68T&}5`vR@={|_?D,Ďy^HM#X1WQM݀fC,"0Ld \0Hah{n_Wj ULEehEL+Jg"Mei9W,Մ|,Q>,Tyh9U;&Qxߕ-1VN{6m^Q3lSƦiHヺ2LJV__Pv sz`s廖=,1b--6ͮq< 3ʡj/jY@mBXWi۸!vgOS)bRԿ>+dx{: kdʔFf>ΗpE79vO?,cnC#fҐT6_ qM(<9eFӑ>zdT΍kQcpm| <.6L+sߦ-!5gg>(a!U\M7x[m6^$4Xט2 Z`oꍜQ}$zbupMlh"2˝q5N`Ey5V+:v] KsKcXIGfV,յ9f^\_녖3T D f!nS̿5-_xuuk捅0==ޗ[nettr wp&c8:R$D+QEޯL+}./0brZ]hG2ދ(yсK2csr> DC= N{zr"d*ݰ%a [;nHE8myy%_ױx O>r&uΗP)ԤYW穹ylNkOqx*Gdr5#c?>[k=SBj@'A{u+8FF5b6]bpF3ޚ;e7eO3tcNޠ7Xצa&^z#SUשU~MuPolԮ/fH>P Bi5{FsO M-i2^K$/tG11OdZ\4lѳӐY쉦xB&츮f)3&o?˄M n(>5WY;IxT8H+Gmo jm)E&biqN4HNbdjWF(6,aƜR:7j09 s0ZHlꑚVښ5 ً5XHM~-z#D3sC1-ă5fbhȢdPM#v ;c\|<14ƎmQ9NuΙy $Q\,"s[ql[kmnk!LSĎUOj^oo܆q|椏vSpֱkWÚrvwnHUCjv0&V\D_C+.@nΤ&WULȧ ڢT־o%Bܴ"C`5c6=C*UBZ"-ߋ}i*w6+|w}q>} t9ɻݍ$-}9Ql\shmw'-WݯV 9?''63Ze4BX&-ϯ^Q4.nݼ'x01pcdDJoT"9um|mN0 ~ϑFYD9 F){m<_VmfΔ[37`)!`^pWRq~eu.ex\'qBrsƥFNm#2{]^جi@{7P,tPI99 Q)Ё MC9#/8 {u|'}׿B1gBvCQ  вc5~22)_ |7Ġ?`1_(hra.uX㼶tGCg1) ݧIgE-oU G፩Yl?-Nvtۅ 9^5\qpnyOQֱ"_Xl&SQ:R,42rI MQ#RnuCTk%Αf:C kB;U8'X3DAcb6*X!j4JÌ̐0ҖNg,]+5Yu'y.b"0EnY亮!Lp8?fc:xD^̗F}،:rtfď IU2I9483J֞ ˻?2+ 4^oS RPcjfBl۝&MwvHUmB)Eۡ]uk& !;C!wsyR, Mon|B\,͑:D^Vl\D r v3-Nc&IU}@t"44)W\ Ј\ش`\¶kR4fMʒxq:;IMhUAcSZ+Hu5mk$L-+%iDiC}];!n9AK(f $C&X_>-@2>H?vDjv}"2npӕGSm7rp"Aw4sl&@E.}ESk' esC7MMH.D#лL;òPÇPִD4YnԢq()ytMr? ^08< X5X^o| oã#+?{~`wݐ>on]Kv3WCgƲpN["RsΆ[lԨ66cSY|v2^z||$W譯e ^ifWN_k ".Ke ӖwbHQf:g.&n.[ 'CXrTg6l5iO43#Gp͉ <(KtW#gS$6vÊ㠺 x{$b,7=f2S\@kyB(rX:"H/4T+cGQS75dބi!^)UQQ"cMkQ-DE[xcW׊/!t-;VfqxPb(5[.Ѿ*CꗚS#xӞ5Zf˫,Eʤ_10Xqjbg*fNoןa*S0cqDav<+q omHZ^kKya'j(riMءFjc5jڅf;tx~bR\ D7[q|&_ixMmphiDʮ.,{ۼ~_M].q R$OfE_=6"zMDS~6O ˢE[#]x;"!>:]mb#GjGYmwbh%$wJk`pvX6??{{g_;oɳX=v*\0Q%J7sO/0>cL*xz#E{}f*bwSsHg׬<^Nq8 g3ŕF^?짟bH*tq$JnhRMvFTĂр#k6`Iqf]>@Âd3!tu)vF[9%w01ffwS|9#䃿3EUhA!"lTCՀƑʵLO?fNE>CVs]剢^X0Ħ#_%]^?1..Of2drnÇ%x.PO~,+Tw\я?7qj%ajaaQ-v|F1X>296Vi<8:y6!ΰh͜h[)5UXc@o1X2"Xđ tl j4u܌ݛa#+!9C;iC Z.6g4ZvմK7ZCPm^bu3_.]6\"A+kG^2pqNK/+6''zļ^ZSԹ㪔Ә驧>=;fh4pLÑ~ a!:nTx!59̥UZyxP=W͠n0s-)`&j,)h drHw9t2}vZ̨C9l پ*Q^NMerF7c7[YA1M7:ʷl w| ޙV16ZLLy`VȊZl Y*7|آ sjk5EƐ7IulܭVlv(=;M%{kQ,rhswY'XZ:(|2s+9eSupZnDiU!n`{CBy ٪z+\05b&jV9f<4AA!ڑ\Zi2!q4l^bAB?! }/7=QWjFUͶ ѣǸQ9RK/_o?t>ӵd{w1Hy7_]cz 6(֍!ter8VQ&cGZP^xBpJP91`p pGjۘrJiaku iK:1"6DGݼi- iiTq~eXLdrfA.|t|v!WUKxWMbJC.VtV*HV2^ݸ'Obqq&.bնbakXfM6:#.sCKGǩ'g]B3kC%⹘]IƅMk)LUt~0VBRBr^w_MmMQZZNnMslVe6tDi'#rem- c 9|MebKhܪ( EZNU='6D4XJƝ W*!+$ڭRÕ %ʤs-^ ZWr5"+rT5{B^LT?8Repۈ<)"d?}BlM1'l 2!enAʊBǭD`,up25A&h3f#Xx&jasf-箯!ơ&m񽦍pY?L+ʕTVVGZwu1M2cΓc8ڙk%c=s3~gY2iux t-7ڰ1b3k:8"Mܨ(k=$iWveagRDc A 'nr,:i,ыQ?C|nM6?Alp,"仱NL3zke*Gcʈg;r%Q%ω]LHyJqȌ U1#쾭w32]hДLEO+sww"FOFLumg"6 v;^o-~k؜NJuo~9z:nIz3ݠhDE SC,ߢƍW]`^]b+ W%ᅦ˿~Z{8<#M֗u>/;s|D*;p#SSCS&"tf&q"4m^)*7"tϑ!^.D܈"LrDN&嬊D\n_y |p&:238՞)wf2tF%K[Ϝ[mUb+rdMߝp`Y܇π1$97y{,& c7toNs=yw\r*Cor L F᜞]jFđlz%t.D0 !Y4F@:h;b>e*0V~OxqA"G!pΫՈ,fc?E6*Ĩԛ"Ftv&m+1k,/fSl*W9F㾎}dgtBNwoo;w #4H j >jFadPQ_\L(r3x"iםa?eE#]9ݎѮy9}l gTpv%Zl "4Sa8 P_Q;u llDЕ:*n1WT( 7J9*ܝ[Z1p6Ü ۪ƊP]Uuҭ uI RFLi4| 5AMvqSF6ACg>;iU%9JS\6[p̝clKl"#xQ+.?fh) <({ʬWƒ9i{Q-iG8lp*(*[7p>rMhG8V HRy]vnZjH"S<<.4[!Ar7pȯSuK)Bsk&3m )G k7jaCjPRy<_D*k ~tDz嵳5؊r-sܩ:& r*-Izd7dkX{+^& R>N,v~__`mMb)MkpL(m/ClװlgQ3@#*5csgꖹF7Rv̦64{bO6ڳ9[k?~#ܾyKHT_< ]wŽ7O>H7nGdjaˍ,1zcf!1¾N]ljLhQMhjj+Yh_iA>:tNqu$2Y+2OUKCD5tH!W'n'2:Jz X1_]j>/FN? ~+Z6*R2r䮱!Otp\`:)P,ht-8=Q,}Ƥ@o6!9 {/~|{8?;ɉ?>xOnֵU nN`TqmM!M)mښzDZZlʎEfMvc GIĵ٨SmU@.Pf3{J`\+<@ȣvs`|tԴ9e[c}<":>eXcqM#p"65Tz]nnYV ϟ>atۮ᧞ȈR\,b+=NCZFȒw{<;>sr2G!/Yj2"ɒf2&~!ҎW]lV+8 I .=7ybTjrCK%z7`zq!nL̼(.>#b2t3.0B؟[ :vf c'dEnFCfJ蔙ѽ7^mWsEͨuq6ndf{+_+-V>SFpZX39_]NE$;F=[+:85=s9)?Y͒[(SL9C G73E1:g;N͝x܏3_,VҾDT3j!tFˇƴ^:>Q>{mhxW[7qdDa!j-;Ir γapIMx>n"T`UU4b4 \~ ! "5Qۑ+Cc[+59EĆN:ח̍vdtmiNo7,R#ܢ!o : q N0cP_S#YJְNۀ dem7GȒ9]V>ed8t.Yn\Nb&]m|gnǜnP0|5T*cG'nO<&l/;65oQ ?xwp '52Ȧ &~( $wajDA舛* v2*0} /<\l7u^LӓZBtG\|ŧ*?Ɠ}d|cܺy_:w;ƝԠ~_Hxv~ssO(xX*^,5!;=hȹ4$,I#??uY1W!+\\Զ&B$ց|4oY t(V"rȆϡ΅i9YWc0Wѓ`hB Gz`3A4 FCN僛l¼\P$ׇaW{Zt{)d\ܣ 1Gd{.-hkܼ'Z 䔖]@ym\8{MH+pO< W<&45+x3W8=?{?d2,y5×x.TwjӮ?C|D۲->x]=N&/|hgyɳ\0cVcuE?/~s<;;~;~tM# -DRv,dSڴ0$TF:r@!)X@:J.ht2drdVNpu+7K..p e7k2);+E&B.jitK"g+{<|xBҙmj #LY{Af ]]Y/. <{^[w[lW+ܸvޝWqm\?<S}ԗ VM8N7RE;M,7ss{r6ffQ˸SE[&#emJp*lC#`җ{yoQ!ѲR̄tpUlfy},Ox,lmˆ{ۈM;)z4PwC䔹m9%7bڠ.ْqGAdvkNfiv-9B[o}'89JԹSF\E)j }nO~WXNQfX ߹}4jE永UZUs7R3p~>x/= ǢҽHI62>.΃ؑuz^yMe#=,KW2QWw46^_>᱑A \"0=r>J61'׆ȕEge(mp@C?Gñe}c,h8*Ԩ25ԙ yA|x]8 9ؑG1!HDU9)x$Fvq@IJi6luP@_w2iNB Vo- Bԅzͨ7M&r NiHoƘ5;RT" *NP A@۸Y޽gM}{)5ݶO%zbwಂ6Y:,th2ggR ȬmoKuNᦍ񹈚ڳU1d0]+i1%MҩydtFF-[̼3D5k{_}w06̈V#V`9/} ?}F?x<-2ͨX,>=7 M~c*0\ ЈU]a^ct *Ъ<BQ03q*+# rY Otu:.KyUɪwm ` QbdbB϶d"6ӤTؤވbl<:Su IDATEn/1Fͱ!W6֧:qYςʛ q69F3t66pbEXpbkS5BLM*g1vPbEXQ@u!W_^2J\Mx |[Խ]m0D\2p}+?6+2o&+|:G*wП=yJd?|!~{Y啈3tZ\/-)F4r$Fvg`azV8TG{]MuߒFf!cH7 Im,?Ѩ)O5YnЕ`!..)l-b4T`dERH7VtB#\>1踢QeB?!67o3!DrH,:}M3wlQf5BH(24  q2H7s!Ԑ: QyG( s1&c=RZ5D9(bca2*Lm6zkgUʒ܎./r^X_;:\΅ԛ }Uj` lUZ;fRq|x>-j,;~B2|mq1'~Y?ni4ix0 i Đ&(B>uXvFgaG>yE/37m!2۴}rs`z;.P_ifQ}FF \.r,V>,j!cWCdx { Ms|QǽplY!V,>~?*w Y6tS)j!+e9B3A⵻ouSe_vb)|F,{ϮNpr!\yOF#GCMhsG&"F۠ |׮!.)sԤb|VT'\^^(_5s홨w,:c#+fmSdt_#m9_7^l-Mc7)6BI.ٍV+p B^E5TxbSܵYDiVDm|9}G7tiWv&Wi"TZc3dx){Ȼ{(&7-F7qX3CwzsRk|ɇ+8]<~P?`ɤE&@n,D n@:2 LV5 ΢=yӊHSpmfhe,\B<*> 2vWc`R\S q[))21)W&8+zcfLtZ=}lXYxMF;..L|͐!IF#:_;uj(olm@brHO w<n<ކfއ4gA+u?tlj`L{%ITG3ctM3rO.ױѭ8'%pt09-+ƘMjW{MۮK BHٲQfx-T~|vYPF4jko\hGߍ/cZ&n1!SiE_nl|Ի[7eA*_n^4m; ABK Y6&[Ta1 pDY~"dR=FDG_+>{pSONaYF mLH%vb5|o}k8==׌l܋Ϙsx JHR_c0a`lc+:΁9fcdiZ -~PO.^9*{-4XXgQZv0ÀzD9,79S~6 UVg8=?Ǎ[7? !ǭ#7s3 GH/9QTyU.tC>r_Hc,rHiQU 9?{z9Cgϟ6n.+2b\.(tڈ }>jmacv,<9s/J׍='Dcq|Rk*΄.\"}erjqba]  AG&$r4cV {kpxW8\_2~擟iX;-Bƍ-+lzGjԚzncSw8y\de zCL_",گ_8+2r[:9̺88!b$+H'J?qvvaSaHp#&sPץ%$bժ*zGpv1Մ=^`v;ul˕^I-+oD2;n`?u0{Qm&t"6ȁ,ރ%41]GcKXq#Dw٭9|6;)dz]cqyKkv2B=tz%̥ūW+2pM@jy%Ik ܪl̳Dt jYL "2iHu #>N .[R^.b#b'IҸ}٩Px ^ulmddE&e͚,3 wsά U(T )(Qav_)#vÎԤ%RPsey{fǷܢ'D jʼsgMۥzGƯ68ϱ9CtddxTd.1\q]K i奄g}mꕠ~MFm r8n62Tx3}5D6 X#(&QZז LoKGK{5hq whPfDTv]aTU3LQ;,k7*r 0|N061*uE>\5FNu޻C+kݩ:Jo XU9]kYө։[&s_5=9Q@*7Wô ʰ^WPd~i64Y`^!xf]a{8j_o$iM[1qx6~WX+$e"זE&,k A2c>8v#R{33"a ^I%@'bή4;8iuL]&˰/РiO5:B Rĺ鱣FΥъgefS$ݏ7Ev=>rS| uQ 믥ؖ踃Ao,M9b&Q-Df4H wpOpz~"zh79`qu gs>5^7\IF1 # ['Jnf=1[p}3ǨBbnt _沎F&2aiI&e珚\Ap #adaw{BN?љ#E ]ӤlZHD H|nF!t m\]! AO4({>2EQYf"p0ծW4]ֺ}5Nw jɚhwF5T$Us5]_k1Y Lf )Zg]LukC,nl690Jh#qgpp"G.ܹqQ0cww?wedEUF&1̆C >/4j)|hN8HU6 c,2$+ Cr,3uwnazf:&/:LtP݊ u3qiޣ\q Y PczxUiE=jYb[ZZkTU[WFEilBǏ\mSyz9\gVY_*EU)FKq +n﫾֓Fʐ f#PG T jot䓓/ N/Y7u"'-.O [}i]Mu\] փvTKi( a60C&bw3erY`+BK]˩y@%0+\4.v89c;0T|7@;jzn#U(u3WuFd$Q?z;K* y*_jˆqO®t# &AUk3Mp4~HtdJ QNח: סDpqÇx9,f<7^#79o["q ┭ƿWvri@6`NI< uW,_:Rp+wR'zgv7 u  }&? (+9}G6Vl2-A??qq8V_H =}\'+LI#4nj.%2Dlnl Yh1P, QMK?nD'Պcv.ڰm)S8yhg9Va&뛛b|L0 d1-S*Z%Mw}tfr#KU8?9ŠՅ =0UQ@"\:L X#fd ̖+qe7{쫧X7V 6޿Z+їX?Kh#aT͋Q7sRdA]5#FVTNNM ɞ[%{![/Xfr.\I5e6R2M#)#-dŵ9 MM+fҌF"Ϙgaljኔ WY6#WCMSUTZ]AÄe}.YAT޽lzj9O0xs,^!*|S_(VhYn6ΕŵdNDu6f\Jh#lqDE13̧BK AByF+G)h<Q5sɃP=ۭXPNjmwC\\O\LdXR+qZ [X,1UZhtZj&hk璝J7sCԋ%P_a{+FH|( 0o%j8h(' &[9vdhnS23MF*ZZL>޽F2sJCQg: q8꣘NNQjXh+ız5^>ljDT y`ӝD)됗 ]-EbTڀҏ,+.3jJO5MAǪjCkǵQSyn}ܤ F0)Ŏ.lMJ e(B|Q6z*s$.uh{ȓnŝR>[;X-o\:~ؽs+tvvA }QEU?ɟ'|?x/Q4ORU&0>0ݖp 6Bw BݭVA,oPWr0(+4&FGwNVsEMjS1V>^5ajn 淟#a-JH])mbM($}O,ZF$ K]"Yclf1]i iaM u%6Cuf/M,r2irߕI" \âh :˭ U.~?>NN.p||dcDAs*]"p<7\6Mw^zr)*4? )5Ñʬ `Fk\,ـ~X.oG#B2ao٧mщ{})5d=#uP2];ӥҤHmU:P+4S2]t,ZF[s8UͦN՘Cu3,'X:OKr  }Xl.M(Scĝ.Ύ_H,"%-P"6GpPװ۷c>A5( m|Al4`5{4mliN90naHpd1G璛1P}u(pœa6bk>-T0w/?G7v{CrW,K-8@%Jl?YbM++}KAi,!DD;=i$)V8YS_7oC"U+YZCPhNGdžS1A)ijq뚤ȣ^Ɓn|+sۚ7Q7| Xa{aMy6ڲ5~>>q=R҈;.qEtVC,im#10lx7tcsS GvZ9X,8ςPCgALE*q GÚҤHr\SFa(F n^6wC(YNYn}s5]4{:P 3dl|\@5aC:n2Wh8}q *s'fHU V tCC`mmnYlhl696>wMwaT+t ~›R.5®kpàn7L6˲cWDZmD*O6Oyġ[[sʮF+xZh( E#oh0p&NBh[UɇD 3W5~(K^&nnqфPhM[T ]$[P~D@;R>eQ0yt~o^Ջg8=y+->֭2ږM1")֗I5],z)$)R)0?`Ue(u%]d"G"&f9DLЦ{g'+,ES4 Fph`1cT1aggB$ XX)54>A u0k8+|M_O4،4>a1)KT q3ՑBH7jz2T^Q$ќVLiZbdx5A xL%)2X) (/Es=t.,ww˵D ʹmD25~)0Oxt>G?f F[x-CyoϱK) Fl|Y4- |.йVC+kO6"\`oD 4Lc@Ġ?cH%!BN<4f:YaC_#H4RJLI6gQ>5; OHͽt~htJ_:4ӦhSə89Z$'  kjD(w\QX5 s LTT2:VsVGS3@!XcA 7l{TKkJ`-{=-޸2Z?8*Ɩ {YkG=烍+㳤5p)uvAΙ9# rGAOѐ% j)0^v[:k^Wx<ҭ8lNkT|k+UNN_y+QSiUaOXS7 s m3u:{[.sף&!# OtU_Cu׆n[FUtoN5+7nE@}u)pԞaKUsq55z\k}kz`b1Jpcc$Zn :Aj G&ouR0~ۼ~_Ҽ/LYԎNiᆠ8[U5ZVm;N+ܠI$66,z]+5ө3ߗ½]Qj}i6+ʍ7rǺy|x5a |v\Cg.KWUY ѩ*t5ڤn!NФė1~M&*3d26g$*P~`j~l?O%|\xyzY3qo%Wj{аcz Wb4Jal!uec%//iOejJ9d(B7+5OIĠ] Ry`|h"5Qd :t8"Mikh D]#>dž҆6[uQJs9b N B@Ti\Ho*C|S|RUdRG9 (b2(r^;4M>~FM$lFZҼ9Xf H %\zÃ$I9pGwnޭC)b./,Wޒm1U굚tSk+XX7-eeL&c\\;!-*\O&8%&62䛦:Ԕb7fƦNNNdßeЀ;'9S2TQ\T <|"])[7ium740ť 7h7;ҸDxgkġco~1)7FHVSnJn1!qƣO,3^T7WrHy_~ޛyû!=ssuWB;'$*L,řD!{ #cTU nA[ؐUIk//.U̒ 09[cLZ@ ^f=kJ3Y*f8;g_0!$6ͽ+'z2DU au`{_&] xPPE1r̵77ԃMڮnV8 M] +wθɯEwMh2 \VQP5H,[oKןE݄fjdnt`%!Mu )5/Rsm_g853Lt-VNsibrO7FMMSd2~ڣ!n3sj48]g_`}/ň8HE6MA5[- %\ 5mL mZt@I|q3t5]\Jpzy>>@nF6x^Bt8giZ`w]89{(e$ZAzl! 21Q)43k!^Mndzَ %ɦ э4*6*{KȲh2oRרDl& ȽFKco bS5*\ϮE[ZTJ3$0>{x a=cQ{kA"%W2ռYnZӃe).FuT(OGD5)9`a;EǢMl z!'D5-ũ2ďC#F[=E3ېGRG㱚 E-RH 9eq.-o,2#\B,/-)Uqjho:?s-S{pTA{<aBUĂ 1\ILNBmL};HQ*P'hV4R Ca㿦) Ҵ CN=tƳrLNvGGB-6ndDv[uiy(#ih̕ԪrHJdƋfdnp,2 L4:7NWJ 4;}7dr-|{?_#r{9|/I ڪ]"m 0h+ZKG]5xMWI.tvÐ؊5LxO=$ w 4:x/"(Rn\H#8tcc*B%9T3[$DV#EyUYM)dNgs *. S50ut BRnSpvv*}qHbU,hFTq[tE-:@}88ttJU gXSºXvjjOuh^..J YVUV5ĵ.1tq;NPSm\]=몦>m]XQz1jZC=G zʂeb\9t"2:4UczblF1Z1c!&w\`V)C|Fx1dž70ʹҘ#ӊ#ee>P06 5KܡGݺ7A)%yJX:}/ rfZFyF ޥ>o"s ͚ .kBG+8F#Xٓլ1N]DLA viG]77A:;]eDXՌMCO6#FDR`1SϦ9ԬgkQ>zh!|oiJ:55.lmXs5bCWrm7)AMfc#EGj{WaHk"ZS%%ljmdacl3Lر {*vȢu^7@ޢh61',F L:[j>=|чf2#쏔_KjC(o7V~z6yq,3z4 &jV*uZ21rܥ̏Ï|[-:R@o>s"Jto#1/ys a$᫐Lr1Xն2C.Ǫ5cE[qAW]B5 !N6DM%UX͹ARy^Ecz<RBG{\ȲQcvrS, W1ѢFuشH:C@t"pup8$dFADf9 6 c ('4.C z%5Oh62+durgGE8c8`8AD؈ј-MR8S+)Ig#p P);h5tXaY)3Nwis)+SZ萒Mo;@8C"W,jXR;:׆ya2˽`L2GXΑBIk[&x+yHI#\36UQ%tv Ȕ⍷/՘'c1i|yj9F,UdqMsdD \+rMܹ}WlFw I&+F:!HF%&|Z| IDAT2#rxs}..tmt{=Ngj٭N SRDzXV2|"]ZsGsH:h\N40e.ĶDZ5z" *.R$fTiU!N!AոP$榬B/䀃SS䠄߷tb8"uz=gs3AI1^f}5Tg<tuZA&P-EssRu:6ew4^k=9Wk>V͜&,h#+:+a8EX0@ ^^Bβt\- 5;lan\  a0>5i0TMӹ4(\\Yӣya*+X9&;*j4ÔmIdMfƵUh퉴f4Y/otMh\GHq|@Sm4t:gZZ"y' edV9iHeMbhUɊ;Wa95YSzaIXj c*O67eVU32 p7eȌrJk_ƿFӁ^G^k;"D֔;C01x@v$Gh^gV%0:^/9YT&}>yFؼ?vVL`2.:KVvhȺUa4QrG#7jg<hln1<5-8pd":zx$EK )dSѦV13"CPUɽk1Fb;qV,cn=y|)~5~SFx#looӟϾByL3qUƘYO *+*Okt}վcb?Ƴ/ (ש6T?V D` ;-4*GHpt-s+0=V@1!4D45pLE{f?wX7o_Mm *Sײ4o1hBm^9t+!..ֆDzK$_&X cj;\"(&! .[{8??p#j6铏?w13\j-&6&GCm`o;T8;x\g<.ҟI{nZY~8"C"LEd#ZGm#t]QJ 0\#v8K/0{-1‰%bArMt2E*e4Z יv.+10yz33Va+zGd0HvERU*h;)Y&mqS/TJPi -6h&[<'0TDi8h4[~~VPZI]ٴN\^>UvEF 4Q9RdRYu%C>jHV^>I6k a!2SU[#˦$[r2GA:8 ):24bU ek)f`q)- W֜ؾcv*\:`bQK]iJǥ@V~0FXK\Yj9J ,=E.GK*Ņ\xp),K_\ii>+C32/*g,ELl G =[3!0wT;%:g ,Hð"Іm msl޿F]FA ꪳ%"F+&2U-vueZUkNYT6͐5#u;_ ( F3꽏JC+Sɥ0\hU}5ຮ"c `ZNW{M,{ݚYw SU>;ot ]o|]Z|x3zAy;~(xf>Zj% fGy&ؼ7u3҂:Tj'Ē  u eA6 NUXV-$Th3~0PQȒLZ&1S N֖Y Z}*P'r}|}։s֖SB̋$@[-zB:dx]%Uӳs`No?+mtFcWgg% V+z4Ri&nO&.od3KZ B  _@?LnH"M#W&jx}̧s p궅*H1~-̓43[-M ̖3'~OtVKV1EMb4ڨ(2yDiO{aEei\dJ5P3I+Zh\Gtn^.kd멘'12IWQД%1:[Rl 6㰉\j#r>y>>y]<@sR#3 DZ_ꩋ\1G\8 0o!]gD ܭv{gxt–fa-1EWݥԱ,1d5aj>IVkdB-@AB/=9?;1Ϸ(,BF'w/knG6, i5<\{4WvQ Rp%PZoiat`(-ӝI>X b#*)^|xhjE\dVSDRIP>\DmeHu T>MGxm2,ivQ&kT"sH-.qy=Op~z`ib\#N-ލ6 ,dnaw:&ח˒48#sZ ɡdg=!Ub &ѻ ;ݠ~L nCe\&2YҳY |ύ'H,c2I{^Yyr M;],o"jrG Qu&-Q] %OB,ۖ{|s F-td_e"QMUz(!{!"7U+QD8JtU$v|E.7;xu7LNwsIQ;W~ƺRocݫCߒ>U^QE`9v5Z˘2 uY:yFy4w;5Y7QHS`ʗFYUeizPUڔA"R:m[cչ6"38ꌠ!*իX$|6i7-NѩCz k`WftjWŒL^l7]%\)(56^2$vQuínQ?l5 =K{NJ9bX߽裏˧ ?3O#+1Vay}v*]HnP"t/h9l%3\S`j{x<ȶz}CɲOLBu>әhOyܯ/u-B#&F8:QuN s eCi7fuU5a*Yd9cSСPŰ;Mbו!=x'>[fxSIsG#la>?'~;C[CG8>!vǻ8=D#hSDާv{w/p{))>9^\ti+AxIoC}1~\^^H R>#S/-,`oGGGB&ZEf Ra z]&Y>IpS/Pb<?OLbCj"1.d^'(kTK&Bgnga9鵫o4Ƒ8.dBzP%H]rP`-<L5zg5 (S!ncLkW*Աj0MbxB`xG88ׯ Z#uP,WxF~hjZ(s-_\KX*Yɿ] n7T dU(rZb ~p4mgg[̽0M,,Y!>4s&\s-3:O{k8yAkB+Ҹ̲9kh6{8yfE?,e@.Lfz \,nEYPD,fG#qjV'r!kI2l-9BuDg8[,0/qK-M$Ze%E41V4bJugqܐ# m\+ ń(CEƜ4̰M2rrɵ,Slxs%./N8 Ȁ#aBUu\51ip |s^ϞXS<>+Z㇟ s`g{{GXtZ]<[B{d_aX BWo^/ǟS\L>sZoI%E' |q}&?˥a1 cCiXp*\Nay6-t 9O nx{,$l>z`xlP40ZDӧ+Q!lJR,cY;=4i(~^fY 6ͬqOX!32L/_`4ޑ ;|åFg wrv%Dl2h::47ldӊ"JeJuf~c\^To6)z=[ѓO0>13i&_> d"HN%Sie0^ YiƎܻNNb[O%RIY,29TZFVk1ywǂ#Hp)Č}>m7M2q+9+AdJ "_$Bt"'Rk>@ōmGgJhwe7ra]nZE$SoP(FfjydeF &fN58pqM|7Ao8STlL*Thj^/6տsRn1En,TI_# ʍչ h5q|vjQVǔ[:f#bZlc9V fS)4fϩbjNXG 0SRXVq^Z#5܆*5RWEG_FxqdC\,a3CjifFo߼ěc|gO/4\z!Du6K.B-u]Il?7O//_7XȗSy%53ɱ=7j;Nz8nbN ,zgazKFOdQ7N6ꥢZb2h4ƳWq\ ) såy4A:| EJ&lCP@A8M8P9fNAZL2źLJX ZQGԌ_!.3p{Gq޼~qwl!mm|G(BhȊWRd;qG{G:oub%C_ne RsrvG>g}뛩"AgglH,>54k6T L iڍa3bt9 $6>klj48bN$H"|Ѧ6ۂfI'׼|?:CbU[bZµ}єŋxЎ8Ԑq)C+#mPK3y^_d3УtnqJ+tZʐb==! ~'냆Tr/hOfWs 1RY֦%j]x4X)?>ɼ>EY-t^t?+x 789~lylu4Zi$TaS D\AD(- ۤڮW]v ==0[$i~ȝ5@z43;cAVI XԔE2+@Bߏa /!J")4&5) Kєlg~V/FayfMk>Kq[y%œϬUhR $'\%fVͦ#{:C* g\R`wWS,+a0+  ]G=\V IDAT^]!# $BI,N=,IESfU c]ڰhp((=*WEU ن FTLQPOeqz0j";!QtEVݿj͙v)lePm/ 7bPgx]p;'3rhB rP/ff:\F'yKG}U3qCͼr9f~[ 'sHUasMZnwhSn6EfthޕJܜ!OMSP7S=eY&)_ 5i἟i1Qڵ@FkY^>1rR`QOjGs??SV5c!5:M2t>6T[h.v h(׺^+?PЍ;moLZ l^] {~A< 5º)\W#M*!vb埋ƌHCBꆂB4mkQ٧VGEX'A=RrVט[I swqD^:h8z^ MlvY!a.l\R](^\kLV٘P,b6ߧTKqYx4yo6E<//p7 *v r8(-ifK=p(YB Bu%zD^kR_Etŝ`LfzS|tP@GViã#z(M\Wb"+ J5ۘwX%+8$X#FiBd/Hunpw6XtL;Xqr!5[XZެe^%ŎLkHrOel.0Ǩz>üp-!` ɹw8.{W7>g" ͠ÝLrt:}t=?¿7ZP}UĸJ:VKl 6/-~!Mdà ;g78?y}>~/^LfA<_G~_۷xPٸnӉ"dQ$:AcJ'i*S\Ҷ<8^G}4QBj"޼y)j&Me#<17ıMV+)D>iE$c6,,+ŤtD!-K0xMbc=#?Շ ].%.jee!dShr1gWkiŔ2HDԡS(C! R.)ѝi%97өVWRau`p6- xq_=}*׉vD.6`@^[&)F!D q =W-67FmdHg(ƻVu|"j*% CAjs%۔ gDݐ, <-X?I1\OR[iQU'j}y<߻wo_ mff g-Ғ.1>GȬ̰R{@v1ڽ_FABjs(qToQlաE7{zZv/+ q}ռjqu֛X$.A=hCܹ ɻj!X1 GźR$ZcE(s(]Ί҆y娹S W44; $l=@@.ejRB5:!:h)T ⬂*Gc4'RYj*߻>nU)%]d ɊvܗIRQyEM]wrW\Zxk#!A :"]< &X ᘻ@!N4j>[FCk w` R$=:q=o]#u*kPyg:*-^&!5z6 5z8 :pPӤ]cd3?(׮l6n(,dь;C}k7ZrCA[iqF>ΩJ\^V? Zh~mM~y2Nt`4 yL챡[IXlpqTEAe_P(EQI&/:::B_RPH ;I'PoHdsib7uw_+ v0=zql5 jK<}_?{zuD"Dx{箬w"_gx4,::Q,GϯoK p0> BvJ1k,jlKi]\\HrqVC8,\.A"Y)*U). ;p37..&B bwCPܸ. ܹ{?xlh;vIWwR'Ҭ׃VHow\la Yu0+&\#8awZNjU"o)95 ِC, Uؖ|A7Љ*f=uh#qsĿH^l:HPD" lژg}ǭ `P{=ޖa юq9l؈䥰3CIY<4Rt[=UtQa-:6 9B.y(#\1eQ]LoޤǶJNsNj7$cD)%eTUeV.̞0<l v2TʥL)S E|}}s}k}# /"ZFWLrv#}:+ngH#:/' !B`b mnu jd)-(oG3^ f1> ӡM눆qC0}$a+4sY |nHZ>&)z:4itv0<ýwJ1N/BȽM#K2a(gMyWrm>!Q3em>ΣU>4tϢ+E*hZʃ6;?UN7DZk.@Xb֌Tf7wlX|s})CDs:z+Gd~$Q$F &14aKtF@`#zβXմ{L`kJ,g97#g5=76osR4=r&ܗ| bFkmFN4e{^8qWvoҚ'-F`C\o; MJfF:V憌`|VnUF`u4_痚ן]2ю-? @beMqU?jfRk!&uTNIR\+00”Oo@NDX ep;mhRS /` ;wna1`NiN3@LlSmuUj Owp9l )qtr755?}D]9erl)D(+6M6 bM.'zEϕ!P˹4<̙=6wݗhd& B68%m*L .L^cxn$:p+o&ݏn<9`' TkÊngGQe"mL ܺ.^Ke I2I-^fk0k 1ί.3o}v=mϞ=d1,@&=q0S{r]!qWCş>뛷n/ƃw_\=xo^Oj:͸{wE7^dX{~v.ӏ?B\b|4^BiȰsA "|JoSYqddn9vu(_ A1>Ci'τ9&EBPh-HF=lM56Ϟ=GWAz&M&^^#~"qm*<.P2M  cZ,'qaKјt<{CbFUpB&fN%UCꗿJi%:W <م򀙽:DSTT:m̖K`^r3Wr5u1_B7zM=gj5viFavt鮸E(n`@RӉz Lcln;BRNO,l*. slpvˋVX1"rja5(FKg|vm9@c Պ.R\GUCt3{wODArAmlc2"%#AI;2*߉\_~‹ ̵'ћa|-/^x<Ë1}|=;8>zB.٥#`|]o'-\oL|Xhs&~<fZ:5P %HU-~+1 ~*hc%͆Xk2m ʛ`ԃUL,ܑ͊HsW(+4qYR4u%kTeS3rI/fgs*,3OYpMs3K\2o-Z" D/WPףEMj:q٭7gRyz!quGB-C#^&ihۭ94"P ԐS#Zco]Ri ΚfXC"6cE""0G$"ݦAC||fQ]c-Djl^(؉7F>\#9Ќf~d8gQxvkjkM;,@G6ip.\SoׯKT3/KL*?=;Be(XԲ)]kLq#xqER7̒gd#jRY&A[%tA,R RdIbC,&ct[ Z3e̘ Gg'~+*]6 n^񵄮2{vo?sܹ?ŒV6->̣ ǯq1K;G,gwPe`d*6^O2|aCp4|rx?wS`||mZzy݄^A-̻F+G♎M+^olo#3݂CҔoxӇO2zWʭkF&|?韴$o4}Ҽ6nYo`!x vlna2b6:"3^=3,9J r5Œ[|,wfN}z}Ÿu/?{wk<[[xan/i*LnUw !o1Χg}ϴ2[?+4 ޹n3\ rD޷zJWq"}R?j ҈;{~ea̜P+4DyDJ77?K:|w;]$ %˗ ~pM<>~Ҵ/F{w"ll+ܾ}[[8:>qMԼ:/;{dDŦ ʹ äTt5iRӢ+B","UA;@+0ZhC=\1q!gnS4 !9}!;Y-rR{߹~`p9AD3[)FY/i1CMMR:^Z1Nո KMP7*ux0Ijmdl3jf4+EI^{0nGt*=ol15\3OzZ\_I՗9^!n[{|><2)xxͅs3BՒ^(;\75ZWD*Xb;sgC,&WwZOD4UAQaK4S  U1̳ug4Ii$ z>c8:џ xjH2?1 pQJF!f|N=^Bl+4L7}[8?7o/~?z( 9G*jiF͐20W++ҵ ̍Rںht)}'t sUʹlAKӖܓި ͌{L'j|e*hUn;6%LtP,Xb:`>SY?c|o0M1#ňzSBw8 P$F^uhrϠ"CD`4dC]ٳ߹s3Hz/,X4uMN#5*%N.19lx<S,^gÉy@ic2= 4RcI2VEBK,KG$xgWβ`Q,DdSƍ ]>!׍2 _3N [.H )NuӧO`< oDrF;8'"5 {ۻ899Ww<>z.NܻO-_/ihnגܾ{_~T,g'W{=3qm**Ú3[gJ, NT,4F?5,>MQIΩ\;nҿJH0p|c\SGjZIgCfjr<}"͘PޓSQAoǘT 7tBbu;s0,wqXYDbDTh0QfX'[LF:G#fv#7^,@(6r>׶%*Ti5,eiGEû~!^~Fkzi2*fHTjp!Z,=\RSIdS؜um#bgPs0,4|`Af~>DN+:m]kٮ 5ȴ7tSW!rgzg/XtBQuښ9pVZ3̖4f fUЍz$k 0HVGHeNۮbU i`1:Bfɕ#q9Zx˗E xvj  9 -hbK^péU,+orm??Y3&m0=t-=`f(Y\IhߊĝhP=6=5/Yhk$Ed!|:Ẑ$ AZX&wa24UVaGUeٯ*5~9:s:y ~y_F\P\,DL}ݔ!Zk\+ױkQ9| DzFr ͯ'.O" fh\34hXYH&j R7GfxE244O[,fsMXsj֛YG'sLMJz$NYDٙ"ݽmtncF9|= k%N. d/@5[(\,S3?.̍?f)棙rr+׼a"`(F91T+4枘l`kS!}l)j}kcC6ph:ï> =k^JM6m FΖ jvn5~Q{{VKHV"]p5$i&`rWlxĒ "Ѝӈ'R AXCcX(X-gm)B@ݧ!F bȠehNX5P}&=Ա.sL/" )VD`0'Z=ϙu2Hkn7R/85k(SH'+Ŷ9^*B4klo5by4 h\07DCpF 3ƦB\ (lƠ)K`,=Vj1eV!CbpE Q]G׌SK!&2uJ1Ć1Dkij)|$5_h"弪j2^MM46UQ0\#!u&514YcNP IuuuuV[:bDV4Z\j'f@ه|FJ_i:&*kb?ǘY LԨ rML5՝Hg- 'RCkXLCs)J }=hDHXʸGjͥ]&HQRh$7 ]Ѹ0ELh`nٵ_^%[| W]]tGY?J2<,. =Tw9|8+58,vvvp#^ O g'= lߺx) 33i\zSX#t%\'e7q_Xm44S'7oduħ~Qgo^?Ԑr;EŲMim9i ac*JaDQ T>ZU`o_n*nXل8f|P L@a3md-|o0l6BE6Ew7t/g luz 3݇Hp!Ydtl.Ffn3|V bFΉBqbJ0*_vkuM XA/=&^G?/Gl妡'!4L*ԴeLZ9|{1NԨ 57"zJGFôt=`Лc= OfmJIoDc -4~7-8PΤ!5ύiӸbrk4ϥt=)&eʰ5-rv^6i}rpuyoț 5jfF˥Zs YBwpxd =ϧ9`.& &Y,1 q5S\lIAe$ms.o`csg'gC2;l:@NaDk9S>Mt[6)pH=xy2҉ϼX}*JRJݱudp-/^)۩E0jԵ hXU4 ( M|@|׺ԠM"^_"~zDMBh!JšTkz|Xڀߟ7AO^Sy[:EnޓشkZiwqD6@~YWdMr\ukhH͢^׵% iQ+[O@DKg^n]yZؼO I|U`Q%WuY\֚Oj&\F݌s5so#7tVփ5;i2 ca(;~XdjI˷Z-.*P ,{d]ZZSo12k YX䒦H>dϿw^O~>H&?ë+o6B:ׯ}6Ut9[`5pmln_WR_~=t7pv_aNH dAI`UzWU;uFޑŰ4'ZobJGXFJ`Rr>V^6;Tf"y\Bax'+D,LZܞjݐv"b!3 ǘ tRUV184Crg跻W>Q'JL- g ͖fi@;~kp= T!ZMqlm)@C[OBD98 Ee2b9(ËS˩n.Wa:>j1AZ)ǟykҗ]\4PhJi^ĺY;ꙵzc(t&BMFFF-N$ z=cUx@BNk:oMԕ&~۰y^~Z=՚TvK|/w:F~y_:HWWlaE >Ьb74BXs܍ dY MR0 O=\CF R ibXFLQ;Qɴ%ЌclL[jPټS!,\YЦe͑M>hWE6nlwqO>{o~-`6 Ix!oqtrF!4UGߡXLm ? wt]7~D6hC,(w@! ׾4,Sd{z[?E)]$4j4L#X4.ʰ]jmSʺCg>p Ze;6q59R6܉X4򪈛'!UWgG8^h*mf9j9I &Gmg8N9\rC2k3k:u2O/>C zRge]'_`k3- hO`(΁jUak^`4o<ƴSCj0?yK\!i 6Ժl0P3Y܈4ԭTS9 ם9h4Jކ7nLP5VPPc@st{B+Y8ɒ_ O=õ}co[+j9l^K<xL>ɂpu1ft (e:/w `wc {׮c0!inX%|%BLͧim9>vx4TTkLFj҄gg(*%mP՜2'KJloH瘎/e%}giz6vWrVdMҍ#LWs_#C F*_DeRAM),ؘ.+Q&Toghw{m5|_4_Z !+@GMhp{\ fNLcؙ\LrĕyQ`o3 ghJR`d#PwMbm]\`wOQ FP]zdMeho⍐$3+DcdpWX.Nf_;P >z! Jzp,z#͞p|.mؖ);C/qrϿz-Oyi4ֳ-s)jt}N`*$:6cME<)邳e*cIN zP07ujMMK霙;4QtR׹ů>IAl$ujdFeY+k8ozBUhZXm/5}+7B\qtp!Zwˑ,sf5=Wh}cC ޸fb45|" ~?s@5PcXI `, *ԩѴ p~ԡ{x~/PSSUgdηbd:?pѨALJ*vU8ڝ U)_f?Kg(neٖcP,v-ei6bUQYY&G_xsLV'i`A~ 1 DF#MH _ MFe[ BR5&''8#(<W~ʠN:sAs8Y,MBcUj>*l[iBgOP6mfv-l4:&ӯ0-ƨr~ş <{LW#Fg>c~SH&%??@{[PEs ~w_>ۨ{~{ cHEl4YæH<ٸ09M|K/y4}@ͱ$??u.Pc35?rͤ%&${}}t~_CfC25r\S*Rz",jd v`Fg51 k8R󲘉e0\{q9T.iXv^+zx5щDM:dv,wggo;BzggW :9SB lBA ?sVA tz\MZl2YԳr8mX\ Xsd oXA-2\qgBfSTGXy^#KlfFeܫR" * ../XeuecLl:B>MS4 =HRZh6Lw\rw"޿hb14fj@':\^F;V {Ip,|hci[}P#ru0"P[}RYR.աɊFB2w_5 A7`_EMipy^Ʌ^ ҪnCheoN XIpFkb(>q7uzo Ȼdj I$k[oךCaClh\CqQڰvPozT\iw0Y?eS>, 5m?316IhذB`Rs!rxѥ.LйM~yR9inMk;lX7o> gk`!'ꄑNYHG(ejƔF5 זu5G`(&qDZ],oIw4d;SVZKT*A7n݇B Px*M&޿y _*zeN 74~2{]IMˮj=Bkso17svts  <àr13%imҶi'φXmD xXj^VȫU3^ ')Tsoֵ4fqY,lcO ,'zh➗h9]bghFթSM+A*EDW<– o`YV8v X3da)q{W,\Np$E5?›S]vk [wq{ x~_:oc}D^^zǭÛͯ>:qMjyoq@AjfLz)6D{Ǐкws$p-3V\ݮ+|O㠊<ʔtH\wcC7kpL g~rAy~Jeo^ii{?ü47?Gz3̗[w0MZZfjgqZNE˥6I lMuzM*UVҝ+!\ݎ>xO~煩9#RS^kZGglX$-Dn5XɍУDk NS:UE*.Og-h8ƒUlZH~3oɤR{9Bi Y>CL8 rP;Xx .nPax6CsuK/X9<2.mߥa#Jeؐ!OU1].Nr4.|񵹍1P6sFՅ9!hxyaoi;܇&3w03,fgK].>pmUX,lh 5dĐ;gҳ|L٬TC0L꘳XX-sc%iFS;3g> j -tZ #c/LK!oGSsjoX8?S&%1g?+6ḩPwU"N%ErMr%jLk+;fM)qԋM1\IjȝԐ'zC2Mk7\=^C=nؒ5@@ӬDyR7ᄩ#DMQ*gAf5[-fTt/LcT 8Eg}Vz#ofQ~L5 guQ@r.+׮=vU55>o̬!7ʶzz[#37G[ki>`Uv7)XZS5Qn`hko(ըe vMݍoN?}NWh4u=]/)R58d8U&PӉg}s˲ȇ榩Bf.#kdQȵC/ҙVQRBg^D˹4AKSLYx".MENab "wc57٦DSMlkBD[Ź8mƎ>sسJٕШYxhEtPpOg"{D]?nj..e3\Ƚor鹐鋳 Ӣc&_ <>;.W1Y3, c-|Ά(W+lmbscIp9,Q-Tǵ^hi@mF'@,lٌ6Q& [T_Gۈ|K{We4,cLHfK\S6? (*-C N3]TMi,c+" eeҕϨv :-7蹻[)4g@o4(K di];utWy.^[MZ;0;N$K5 f^tV(א, [*fAMu#$cMJAYFxlX:6#u3wׁh3y_T,5'6> 3U,+E3҉a6-{zHD8h p sOQ[[6@gAJUXxM(3K~w 4[(l,YokG 'Х%4jW@\ؙ94Ҏm(NCpaVGUf+ _5ɡL 1N6&fCFSd FB2\'{`08WGL iR/-^斾&jcbB<x%M<]WZdݔ)1zVYI]84E=:ÐɌ TE@Um94V@YsmK=N4r;2 (HnVw%~_j^.Dj#]k>έ jVn(X&5PӵIRHRliI (VyWgS&FST1`-ȌF !^zeQ ԌhC|ut>ڭ6#O M!{~~ />O8;z?;Zͳ8^o#5T^}{Ƶks^~{3NA>x!^B9!+]p Tד9&Z(ü/FobkcS;pW@6l| zϼT fQy}Yf+!VfĬJ{+4#G!>](/UU@T_PRϴ%q%Jzє" FHo!?dJERda u[B_IQ+ńN֬w;2 C6jɉvp5Tcl*htz8>9Ds~tڝɌ͐1XJaAׯw0Mǭ70] #;*xDǝ;䢴!nKϽtT+\_ l6rG].&]2bcNףMZK"D5^_#7oDˈ)>YS r,O{F9..&BZ&{pxik7|9D-zsK.F#kL.J3Dn>๨WX ua| wwrddKC7nHJFS}lX՚S4=7 /x(B`<\b; LЀ&NqPUVZIX!%<6g-ѦUahX1r0xkbm`Q莨+Lz˘"s\%&K. Y'Aܺ+#F?2x&ѝI=2FW_3(:e҇]k&|:b!m-(k)gߴrw 9gvku0h4}! ,ܾNWSӆiX9mեe;8h$ 8MlemOr&ԕ>ITg/^UzӋ;@gәAt C8*6x,ݱ.{x#nϮyaڨv~4w<HVa!esnIԥ&Lm!@vqGȳ^j_rBf81+ *KC$'l$U_}[bзPP-GD=uʍ./px@|o@Mݕ.5D1d*p\8\ ԴHsScr5Byب %^zs\IQ :{|%ӉΎS؈a56cAzR.fMEޔ)UAC#b %Dߖ*;&2FSzM5"D+ U.l̂gK]C΢NEu%L=Vk&{F-dLsB "OZ-*5;]^^ OL W?-&é\elLYhX(B^ȅ#HƁ|wڛ !<>KIX$^ʹD4:Y xta)'-I.,'Ua9flT~VST1%t_3r*Pg4 f-ULNߙ$wsI|cUl&ڭ닮ӹ l+K6[ QFGpfskpF#l1ksIpr-jS$VΆ!F.|L j}u~*&˩h4Eth *grIV+\h:WCHeiupE#X^_EEYsA}I!DB-EޮJwD ^:M)q* flbRF)#卦86w }v:k3e&nf+:SkW1HRA[B57]OQwOERI=9>Ζv|XCMx'6wht= ,UQIaHZr\wUjXD`&{A{ZˮiWr#Fv2]:N_g4chTR&i%fuYЗѭ *?Z~i:mp4uDW'(5lɵ{jufer4; Sc:@}aCc6d+pP~U~Q\|,38L-VeDsu5D0Jj$ˇi䬮Sm;4{ fIbjU[9cMt5s4ssRÞLߢ{U@/l~6AOŹ ̤Iߙ!36ܳ!] ^э=5A,ҷ@?f~O1r/VFj8EЛ!8$rU5}<7с8l,H]ډ @ Gɗ(c#Mn IDATS2 :z_ )r:6V#Xֹ~@51~H^/h~m t G505!N~<{N'/0|J;m(_ƴr8i[ 4薫(:jPs jkqoׯKH&|]kZCøuL7}k6`QUW@\RsIVSF7pbtո68i,lI"K\+l[BЈDCڌMP"*ae;b6. ܼqIQ9ċ7;+kd<ƼO~ɗj&9ůNkPϪYtqڮϸ֍[2cx54"sUY<LJ~g.Hm,%%vnl4F_?b0@IC"׳ʍ0S$y5}\ f+$:3N\Ã}xO(g6kԤՇ$݊dDSͦo]Q B|Ν IL&BU 0V/^zA̧rLgZyNa7v{ijXv*)P{5Tk,r)#"iJCz?|no:{NR]0]LxoCO1jCn`w{Y>=wwōkjBwťDl,1IS=Y0μco:󵓨P99HbDXčJ#u 2V-lqBie81!h X+z D# FB\uu3YzyJ: Nݫf!7+|_Z8}خiQJ ri+j<ܛ[6B k`uWr{ߚQk `>op~n#CMTVQ2[G+K,s!|\nla41ʊf]_cs/pwcXgǸ]a\<]Gp ~gB}4Tqb-}J\""[X K7ӳ( 7fg3oYxds}E-]DF\xFq/=iJ9B1'əSҺ,\# P &YA HO6[Wg+Y=): :+2@X\0NqU }P(0saqC7K9<HS sVF -hHM#R}+ ̈́tq`G5Og@%o՗ӓgt_Fs t2ьoQ7 M̐H͹P.k^7-)#+92OoAk7$sB+9ɔb(o"mH9GUנbrG'ܯ*l ]b.]4׮f&P.C/vUbw1I'=7 Bm`"u&#w6"F__6qh^I=*_W䄚24xkZf>š(D9c.(a f:νG0֗8>g(3=o{Jw䲍3'hʽS[mYD3Ú[cȻ5"RݰFVუb̨-BcMP'}`Re;_x)b}&[lC54F# az^^"+SV[Cۋ~?.?Ng ;*CTsLBgd]G!jƕsϙ*AFCVnǁRS;DS YI-d=f ?2BϑPuMj.Y?qBce2:6t#Lzl7~|W 3 sAǸZ? 4}2IuټֲF(fgXݧ?'swfsE9PFKݓڲ`kn,-m6߽-K5np PTjPPi?);(FN!:dZ3(9Ȼ/7#IC1ሻ6JCF\Ezfkl[BC3HvY(s@U eLل,5aV@Z^@f#RF6|CXWs:uJ/?wf'3͚M-:6L;5d8{63nÏ>_VkA0IB "iٹ !2T )Wdh^^\Scݎ85)7Ӊ\\6n@@#_]3ͦ2z)] 6D.^<ΦE}U@J?؛አsб b2$,a4]jMgs_m.uYZi8b15u&1PZn"YY' (5p]jA$zdlFCJ3m6r-LeK ،x/M^iȺ̕Qy^ $I!Dd|s-Jם{Z;bPYR[N0|hJY' nIumʁTCZz܇(R{߭P_|f{٪Jy8lom3vhel" ^eo[=Iӑ:Z;Rn%ik0WV y퉴f*bO"KӒx̦u%5 Nmxllmja5p4FĘjv_$_ ~32#uEcVpsHViS89e52 &YBWïˡda n):Y:&%5"gjaGe  k(j!dijFGb6UK9Hסt.'b6"+/Evޑ=LrP)`h=o\ٓ$*q{gZ-cMCJA`C3׽k41wlsq::3D9|So,>iL ͽ)vFhԦ(wΑ;w7ЅgJadsh\.9UPNҌ@!Ws\\R○r<Cԛy1kRhID $ӝ~]0ơԢ=rUA#"t>!B zK!vÐ8ZtHp~_MU~~?l^h&_"y+țk0*sCerM(åMls |hSنxPsh ԕ6!LB3La7|,#iU*:WzRli]xlFnG8sק_*RFExVtU eLL_~(2y<~]>5MqMryOd˕Dm-pnZMY6|8Z]/mnkiupSy-r)PQ'VQd&T͐y3As&@5*\|6kunTsjMGӌ*]GP#l:p6:RQ25sE0l,I9%.8Օ:QUc*}@Pvt/;bR4L4RlSġ6 #BY}@AWclޮl mҝt͆nn!9elT,InlnhBWih|0blhD)JI鞃ĜƉ_^kG#ҼNOOe\Ps'KqECb._DJ~8_x`' Ukh‘pH16FM@3C SQ4EP-VUdLd2_=0KG2HCMҕt:uYXh`o0hpm܌FElHےt9fcQߦm4*t%NW׀h.#|xNę`\muD-tM'݌|s;Ut:f nUcl1@Qkm5"E1 I#g֤Q|>5p ) +@ T\hW](1W^(A(7ܗ[Iw\\LWޗ\_\bg=i%6d|u Ȗ+9:< 5hhDbүmD2hbш!QӯhŠRUƞ cwK>1lR]C!ɹ'c?@eFP{s*Û\_]X+@-QBkZȅkC3ҘضK4S;(F3|.٦(p(vPfLY،e _ n"(bAX5z(ð6 A *YvH#Ѝ҅Gd@Bwj7q Ly,e⩎%ホ 6=͌TI$@0/8t@Wj[s|NgQ]Aĕok!ZE0xJ{mC5[fx~,;ۻ,ќ]\^:=Wڊ1uY+01 <́[ݑl5rwwO>|:k]{wC6Mj/坷17fN9ɳl Ш^]^2;Z6\@ Ύ/\Wt&Vkl@zDŽq-!舚v )F݀_jCg4lycAkFAiGj3@EUrZ$]%2>eWo Gg̲bZlݶ$钨#"*D6HMsiQuߨeRDXA/P]IWS8Nl[;_~0tihok"Q%^4ffKMj՘&{9c>=2hrCCf&),tctrC|1_HbHJMh`r4à sTu&|C2^P"QmvjPwc9=~0 sNDArڌ#ҘIwbHfc=f(CmX rXΗ:Q€{8!BIDIh%Q|>6 JtZKP=J[GoJ)&ǡ|܊q /B2ͳ{bvbN fLz:pna=+63u-6"i1Feim=Zy*Әm&XNz)Rb-B\:+7PDïX 7=%,[72s65\yy{.D 7~ IDATu" @׼ N^)Ж;A9ryYiqHP);M5.f 9P4$ij UoHtQdJFT~xlm/<~ #9hgrggGZ 9fSLfzs#sq./ϥPJu $w جI鍁]G2Lr=H406}:pj;נ(AXUp 2?qkV*t,,"@_JV@zXy@N^ DLhDf·cۜ@IƵW˜Y! NX X[4S)5@44`(p82G hP#]-Pai?@6NV$=H'e)ZχI+S|ʸ B{!f#>z,'<_u?r9͍t=NO:Yl2yyvA'fmě\2>wt$iyV tjPwlR3b-j4`@44JZ'txE>+Lx&!AAqMN)gO>Pj&kRIk4fqiwؠ-Zkρpa`p@ 3x5XCD#oa-1Pjhaf4n<DzIf,L uh":g,h]f.#՚{eHfs DŽH ĪZ fd.!Rߐj ڊ@39Rx&OL7C;h ϞC8gӴq nD5fNz)f29e\p9fTCW|Nfyh%ͮQf:؈lDh[{r~L,cY̮%'Y%ە#k6~Z 7DHOn~@ :*v?HǰH,i 'ŜHp-ǾGT4t;΄?\eLxWO7b05F7 ~L7hwwV9Ѧ]dNfM`7VQCs.NbzR1s29&ti2<B7oK E:4#pED!g fPrOl\CS:In{a4ZR3%m32TWokHCG};c͐Fd"ͼGJ[Vxu6 D5W59uRc)- 43Nmz[qC¶Tw"7$0g8}5}tٛN\|;0c~^geBRckԟ+70se ȧܔˆk-5U!;>K]ྜIXAU:z2oc74ȽndLïлϻ!i-Yynؼ~5R4~W+mtxeԕC\K/Mrcŭ*1APBrGsPiMrmh"g14zcl$fH$y4Tݾ-W4y 'IXBFҪC>Uȳkg̓Dͮ?h%A,?~Y6[r[Ȇ @5n~_& i0HR!"~0nJUåTZ۲Y.KÄ=%j4%_[0fkYʣw[yvr̦J,soԹyV+.xi18b# Sg"߾e\Vs~D]z. Ã"k Zvȸ^j}4:hتEBd2*t* Xi4Mkj[E[ gfmV1twD~cCT\޿rPq$Ǘgr5yY&GGr1篞Iej4wޓ>/蔊h6Ly}F@7Y!q@VAy9Q]LP YLXldXIӑwUnp(ωRG@c+փ}jdф v|(650AKH=4S:ׯݹ}/W߰Y><hV]\86πiaEZ}f:p(Z A{ƀfCcy%KL3GG l-5rboJHQ(J׊ Jt Vcm(84)nF  Cv5ڗ$92$:W̗3j],S 2g W9 7ԴDAį_@|cC8Y9`S ̗NG21] 90c@h5'Jj~%+ [u31"\잎ڃs9 C)}QPh־=#C,R{߇:wLmNz?ȩdYx 6s~}yۿ8(uh( zQLYϥ) M}s۪.&>R0@254rML:,v%Hޕ _DDR%]DYBcg:c B~ɩZ(P- ~'=:'qZ#Ө5ق&Pc 1#n㧟Ͼӫ +$ժ/8Y#`/%]vM.NO&|6,ˆN(9A-F w>>C~#MPƑZRGQv?3yrzF^Oؠ :W^]4A@$`|u==Ks#ǽ<9KF:<{\NNz4VKoW^w6r0`@ (00| / %9o֬& tM\6+Nb%S)`h4IACo/~ޑ,]JU^/@cfMT&ɔ >"XtM:o0qi7@#i7*lrT9ODz5ؕ%uj@d%jU*jH$9BtrkX˹R*C:e6)͔T 7F̐zVZUYzuCI4ɵqT kYoCp>\B3U15]ɇcܹ1.@L Zuf{.r3OnF^CorCt` B&+wޞh;ȟSْ=fV/݋7I+џP80uMX^BPF'y(TZ:ـ(nhšl>ƨf^ߘ2 \ ;is{۰hrt)tYJ1ZݠW}_u}Wꪘ.Ɍڜ[{?SJ0_$KlWtkr/IL7p%JP}Xot%P$#-2!tQTm俻5aqUֈX.d4HVK,IUHWH/u޿'ϯZNO_K`oXJ%G|XՖ|}y{ P?~G>2i_>7?'OҼL2Ph7,)M QXkJMNS 6t)in pFA1 'Ke"4-8faあA$d:= e j2۬ج8s,J Ń=rs%\iʒj# 2^Le"F)q0DJ@ 2@Oҭ٤E5Mf5g,&\>FpG(vt]찉\Ց d@uR']80.ÕZ.NK8ڂ R5}P\]\*$Pӽ(ȉ$l$<99l!3hӄ*Rv4(-f| o,}lo`F?ҩf4o\#o%lC/Ă#P 8Ax{k |bQM8w0X. .>ߧ/[[i4\(@2 ;­ĤRoŻzxAT%40ϿdZ0asa3 NIb(HMV4{RGZ03Kk*JՍlCÔ4U4`DLt9[nV^ ݀r©%hJV`'hD4.dLcЬcmCRq C:)ZA uEp&|fBJ:0BiqDIJZa(VZM&JwIK2d@D+[ vShCg[:j 9N]hS Ǽ[m+MXFa-e Xq 0_m=x߀#4;{>/'XC :p\248d"8*(|!op`X3'PZ2uԓ'ŌK+3!Rֹ:Rqȸt;y &UhhF P-4= lZRV*zIĿI.5@FZ&s5&}}L "c7Dg{ Yjr0G.}JyXC5|fwŮDʟ=nM2sQ8v[VjNf06tHnH,F)J AZrk9aZ/Pw12M:G&J}ܴ|S d8wj>>¯uTVJ1,wY+]M+2ՈeGd> e2T#0Mt8^d%-G))i] vNyo0JtVPZ=$10l< ^^_+sa<=CJs(0!`x33tώ*s<<1C ]Gur2\]Mu !* /mךkU`R< 5_7M\c[uCp?7H3ŽX:+ w;+[ >qG7~*j ZY1* 0|s"E֫eX@>ʺeD;$侢 !tyժý`& bZֽTԿ_p"Z~? D;CMe@\aq('WT;t&J v2V/k ։4Xb " bllꍦlt8@`KLv#;᝻fko~)ܖ>tLHbAoߥaPۑͯd#B) E>6h$N/YlFv+fCz5Šd` lnᜁ܌GYAwH@&Ixwv^_]֑l!+9={ʵ[D?}#zLsSRbN1ΧQXzcHj׹8公oHYC#A1 櫤(4rU9.L1A4[L}YRY"wZX͓Pԃ Weabỵ}IІW\ BH͒Nɨqhd<]Mٗ03"mE5U]Uis`IiJjl:#+B"1r t",Mb$6gLنdʽͺV̵̝\ UE)i*=R)I$ xsb[kfbŪx\k%M+#gbeNz KXO{_fpDy"&uWCm6ޓh !y0 Ilj+FsM&AYDaw 7)6ȪCUw?'%ZhWIܣifvqCk LI rd+%NZ|j*<S׊gY0,_L1 <-s!/!w==wǮj8z6@]|1r0g1%)I%RgE3UT2 \"جh?&Mk~V٠Xl"~gĦH)@''|]v}q`$ (°I*뼡ޢQ+Ff5uRʇr G峧_Cyyy%=.ֶwʠӖok[mҜ>\{!#|T<})8&|TDsſ}Ӊni¦nB#i|5ΥZ s[rfj"q]!vҐ_~)HF"&-LT[0 U_l+KSFʭBУ B[TZ?%Ueٖ*tmժG¡Z3äIJO"p6eCґI3(͐|eD%bJmDcg%}wn(G0EIPb(<1E F1>/d$bM\b}ꈹ-8F'ՠm˽}&gW;;<~X]˭[2Z,d jK%{2Kv65 Y@QvL:0îSy5*"˛+o˻Ff&a-^ef(j%/%V]I;v1/)x:{@C7F"ϙC J$׳5ȣ{aj93iH^xJd\h26dl=5ޏtl6l5p?5 0 @ji7 jCCLXj$d~ց\]\I=$K<` i}yNCx.F$B*d`\bK;oi̔Hő\?Oj@Ue8Co ne&5VEF}ճtf2 L{ׄE|dk:Q0(hΤUI=j(w:-aZnhXXgQrɼ:ڷK,LkÆ4K}$:,.F y2-XF㚻̚|}2Brfs+8`&H5VJjWِ'C4qV]w%P fZ< x` jzsRu *o;VMVwg[@Hܠц جt2 ZC,sy9Z1-uaŦn H#/ql{2 tZKPH(R4 \^_^HO\BNOdZ)^O$6AM7i"Yh>׌DM  CQ7,79'̔:b-:AFc4>aR ĶDED@5WȕV˯v/&#Y]h2\R-K Wyy$?ɟ锾KӐf#'Nfv#ϟ?WDziR-'-Τn1䘔·ݗnHӟѫS"&vKN^aTjcyuJ]PS3ʕ&xokXnZh`B<{B{D^ ZS]wwq:?g/3@I_˓2 >l{]NuAur3|-/_tQTru Xv%g,]oD 墆IaQeeP0(8(NoZւ3ɘޛJϖ3 ~Uo\x)Bk"wWl(Fs,u\d<_ؼwPjUkݢqvUz)hIZ4RkJo5WAѤ-L0Y5ƹ𩢯uH3g8ZJesR~=g(Ti''/ӧtHr-7&˝f[gPjN_\:[Vކ-ks3%~-+8FmVn)"1f#BwL<k\:\'/e~}(woɳi$0~fW@\s1i[Ft2F6z,dphq`n2hѨA:MWoa؂kzȮS`BGAn) D|6p~EP.,:Y i8?=bJ`hz'syid orcqҒkX~6Hzi:eӍ:ZD*h4/&JGpvLXDwk"NEu|Өo!i" Y@8+:?:9Hi6D VƉӲ u)H=BڡĖh&iyڼK7CRcbV L#mj M2.zbC3]&_O~{MDE6l{fIFQc缚Q'?ia]f qW9Fm33ȓhFJؤ $d At=׉t[RQ$( A]*Y*g왬#aZX T9ȯ~/S6F]vvvΝ2$=x߽upgΈ:O}~Ct-iVr#woݖ/e:{uFOPt t۳Wr(ɉ\_^+| H@v`io,xq,|(Iey}~Ƃ;wҭ`Gܹ';;;,.7c˯%C4&X e~TDXf48w-&,9 BFSI7#1j p*r=&:H,'`[YH.Kdu6f4hLnJrxD0>[Le8Y eW$k©R< )#60&}%(4``]ctàEaZ5xZuvDZEQ{LZ)@-fD&)4 CQ/V+e^j}82(!K<;-DAƿuN~DVSEh8jflHr7༂q0N^^9zϧDplжR`E14X|P7fZu.kP ="?(2J8aQ`Qq?j(jGșCCDS>2fAJ:5$Qlm2J>C87WRhAKt)P"#{Bojc(3\@ڮȲ\gT174pM5DMYƱ: ,qZ\պ\kyӦDa:u"Y0fjë ,+"PUJiU6#8fn[<Α}/Cn}7X.k$/ }\[mH! hwez]AC1tp]nΙTO93bkQY@$sh$83Q,Vq܆Jf{|0ytݙ8Y Dnp߻ ?jjd,M򵄍ZTӞ4)\'6T/Qzs%rQm=R΂5+{b$/$vd?'}wf#-&UjMp%m,"y*Svd6gZ$D^GTy :] 21ODGUc IDAT𡈈PSөnK"QK5J3+hMϏk[ d1{T+2&rs}5 ݑdʢH52ϕk nmh2u!Jw%:{y!  ,Y:Zx#nGf)0 3 K(PU5 Yԍd)1]}bmF c߆NWD4\x? 68x™YoiؓuӬu=NEiBpw &6v >/F m gޟOޭ;DEq-OOd@Ω̲=C 9:%/^1t4#%]uMT;V uCh2V{/>'m`@޹+6oNǍSY'+but_mޡ=VN /_k;F--"y Tjă({hHꖜD =tx"j*YJ^Tp ޒ) "{¥k^!٪7Mgu-p^#io#s-פ.XVl}Ī,j`s G]:=Y-FJYis"j-Y/'kt u$: ^&ﳱ=V=D ![>x@cm%D\.dU,9}P`ͤd`(mhE })i8КD.V؇ {Ѭhq OLNYkNz"֨L; !2+g-(I):7ΉW3j( QZoZ7df63#W8q( Lu~Hp{!yr%M|͎{[8\G7ekU 82 3j\b|%37XNCD5C.7V$w:9CJ!P@nQNAq_;sQn9)(:lϳ5ejSjDٯyGVqE19KL3sWNd%km;aO?Gkz\ZRfEW&S((7F58oP ཀྵ7_(ŧ0pLN|<\c5ZAS/8bdhLԎ3T<#RXR|d)+GKH=~/wTi@R\V[@>,Aj}=:}yT.4/g3ey\ ee 'nfهzF)kc'9J j&uaEgHbA]yC2?zψ֋sܒfIh ^72^3V$ZR:{IN1}o> -#޺&S=h4 j{qq!77Br: }:eS1 )%Pf4g/:y+!+i+KPkϗG8EWd4egPVL* 3:`~p@49) 84MM\}T 7,Wx dkc]Rr蜡8v>AmFNHÆ Q,xPDר &A8VI^(Aw )5O 'ϧ<"/"N0/B8F"s%yZi䡙{|@"h1.\ĵT 鮭x[4Z6ȃj(㚚bBUn lt M&)c-9R *[zWL+4NQuFiO8(pVrxx(g:؃N7=5z͛[ì9)XESC_3.i,1 DOhXNvO  r5؁~jG jhrsimTbLйIĮwsVݱXTGd&V79f]AൻeҬ XSAnGϩE|54͠kQٴ94jh`Jtf:wjaxk +'uc`컊NЄ4+7VHhH^`PYX9;;$Ӑ\|Nn~ӌZCMGa\4zdy*0moY/^j\gqv9tH@C7w:t; +xO aZfh}ZB BK o>v׹AP6GӪgnlX~gk"qf\~k^/߼B牂$tfEjͪKfQz+?c #)]u٨IJk rda hDgd40lZ|&&6ц+e> liTTϖ&"x~l̜6Zyb:?JX2jf  oרk c2Nj9ʐF.yn<#zSvv$~ ?(ڡÜLR_F&bZ !7ss Xl2OIC# WIb:C>Qd{Q9Li 5$E@7ʝ}N\nd<3*z+R,`*޻sG֛m+3EXVYPSCnk0>"r?~z Ϟ=b&э[Y[_':P4ݝ5Ak%\]_9ݽ6>/AݥM8:4h(siIgG2O?|?0AO>{ۻ\w!},h(/.Nv2cUjӏDFrp z//rY0ҩ7"?cN&c<@\.vWYȑ4 \x[r:#֚t]YlZW:KM2[.Mג-hK65CD$vv ޮC@{ѐBFc5jC+@^q>@u$p]B!!i޲" E dlbs_Y 26ߐ,Xؐ-5@k$ިR猵0U Koe< 1D#5pìV-4ú%f)zAuU>4#{hϛ4'ꍽ yѸtN}ocWIcT{dx;JܔK܄Jg YpvnM?CoFq1zE)aBƲȨPdR ϋ6\g^fuXq"ZtGPuj1S텂F%%ziPPgkᤷEednn:C&smȽ֕*^a G6O8j~ގՊ(Pف}nʁf#݊REZGֈ1&&avpćqGHbhV曥,{ln@8Xxeq*q7eWaģZhNώ얁kPB>{ZQR/fА;ΖJQ-9ECum͵ytrP0_>>7ʲE=FWע!,&WSb.xr^Pփm:X^"GYl)"x\Uj:u01>.ܣ5TE.5z#A%odڬ8B qoM,x| {ʀ90D2Hܠ eՔקor3ՠu8~JO@8Id616IC7W3M u EcGgoOݎLߠΫs1D'D!5(~#8Hulu3rBc r1JJM:ݮ B" e\kj}715KLcEX}6:6}a.)]R937*lPd$}PԊ^I&J*a]bLgԥ);w"]t reKy9)0hO>ޣnzht+ gD o4{5"R8Y((Aﻼb>*2Ds9e%+98jNDZ_f5͍MI%4$J4h!x4qT44a~ZS7ꆈ451[Jٕk.Vwp& <>5€՛%ٗ2B*tz]-r;JYc9L3ق0<ڀe8OlٜZZO~"WWM,0L4>3̗0L #6Հ"'XHC agYJIVC_9:dZ 9udK}4Z&#菸67B fǀ "> PD7-'9#R,ry3`|Ldg/?yہ i2F&ԕ"gn<Y.{3"O~ VSrKj8 y?+4|L~e0f1alSpM.wkh-O#h4>3o\NpR:1s#R_BjJ2]o\lDhf 2{;[a`[ݑla WM}$VRg__#Hc~턤J.DTt4@qݦuKFue sz!f(CW<7ATQڛxJ"r/ }Fd uOS4zP "eJij"i6p_@4QN$ȋ&Z2C#\2]D&K QkѴ HaXcFtcR2ub[ \IcsQ,It?MvT.YlZ !h٨́qT)G0p;ӧHYW <,ք::r{J|o.Xt~璆YѸq$l6ZdYBan7"U5%\RWvnsu^]ItnORޗG/'ox2hZ\3s}z[CIԨK(&cՈntčn4Y;!r{r#'ժl,Ch= <AQ6@:pLR54QAȊ:hsb2 IDATv8vhcY1h5Aq ciUlbJ'>ˎ:%QV k5Vg0r"#&B'4B/T9q;KFT5| g_Q `ZsQ t˴ 4u:mVչǟʫ/K&\7'oެK֐x&[[)2;G+yc0g^cLڭ;rCO^9=aAE ߔveFVb =܉{"XϞ~,f-'粹'gruu&WW嫧rvv,'ZTRRLĨ9_xs5@ qQ7&fݴX -; ZH}|)2C\"}6Tp=st>i TkHf+dEѫ@&k#34:A;29, =x$'o%f 5se rOj[A+9ܲ%5޺ln?4ݬQBaqq9` 'F(#dS@f[͎\\JY9k" -pЮB{W+`@sY0t[,i(aZ=՚p@n5IfR#(֏7T{r~ZIf]פOuR6Q{ WUMieabDG͠)"R􌅸sEaz BFA6k2 Uk:kfTF|_^~ 45sb)Z|E"O'bU9p-)-1, 6 G%3̨ӡH:2k3dP{\0hGc0?4TZ^LbsY#Ѹ]R72LiYUˁ!MkuPKY&禜P4VnyhwPy/aٞ 62ӫ#j8̌Q56,pqYQڲO10e&;Z];Mת8w2KPrACPjRLE苙Eђ;ӹ%dJgA ,60G'MFX: 3E3}ԬEi7T͸̤n.W9Q)Ah~$!w>V>z>:=BS,|4)ⳬ@@+xj{Wc[R/5F5LLSK+v x@vSrjbԌzh\G?dV|ȁ ,8DNOyLDWQ&t'˫/&ҟT7`"a6]5>@^>!]&KU;M$4H*0˗lʀHcB!RjXG Cdn %Ed86t*2 $Jڜ}_COcY֤ls=[2j!tە +?zPN..hzԥ(5.֨jk(@j.FS?\.06d Yt(A_S- 5Fb "CiS.WHk9xE&ޒ, YduH|nyΎ<{ԫž0Ȣ]?Xm@LίaF-*`P` $RW?xBNKŵtBBziSp9 TۻÁiXВj_k]S>셔nIJ%m}ɧlx5zQ k'`r^ qQLm( "Φ~8oXZaj:*X̹&xLj5P"gp-AGTaQˆ d}9{s$z#7M]H)y֐]>[)}%AOn ғ⣀_|N@827u=3.IHBr $XXmo+[kko0$"ɝ=]푟y͘wPl%Dx car_W]Zg3Fr:#AG;湲]\`G[QUj7fcdnrm1$!~nY͊,U$ ISQ²@}2ZkaE{ı U4dQ< F.{q% t% . 믻&6Z%5LVאcp(s-@\Ӟ;ɊoP‚( }s[r3]׳O{_QīcW4qŵ-!>eehw/X(U{< Ffm^aA5▕bw2~ɎͲ 圅vS^z8*`ϲ yVh[հP\/Ȏ0i)J0%Gd@xFo'<aw-rfw/6j?4(6U՗W%W+g?lەB\˿W[gkߗ/eӖVU5bYF fCGyQ&"m΃?_zx9}?AFDa QOԛlIlzjDt#m\#C(2axê?wL:7 j=t,f2[X]nN 6Ј@=6iHcf5~VC6HA]rQHBDAMYlv?kM'cnNUjU~\]zh\l"lpLV1uf#<{(s]x(~W6h<>LOoT<v-}؏M۷ov|Km6;/ܹ{$߼ý=ڕ"mL2rc?/d:x!A2X65 B.H{Fs&Stk@׋ψA hbx(   Wgh4}yvA4Z-`}gٗJ^ondQ㽵.V hj.@Ep_P.޿#KP@חl.?{fX56:IJ#-ދYAX!ƗxY,&4Il<`dו(9,CѺIWPfӥ`1هMOc-t$ɹLfKRj@ʠ hz;3;rٟh괤l#Zhzh$c؛-jo2Q& W+zKn |'v ('3M,4X ۷7#>k1 Zy$2ЬN!:ʱsu7Fo^Y8R .XdJ95DX`e <"s q:U8!rt IWURsennF1`A.#QRfZ4ˬQ̼t~Q΍v P2 XVt~8Jy4w5ˌjs}\Pp;{in _y6ȭ ( !|Ri^960SWQm tٍsfAa0a_&JKa6C7C keYh2::/-;;)6jU1ut_g@&"0)tda7PVQ3Й91z#r{P <:PSc(N&l&.,J45.=Ўq_ f2KΚL  {=j]]SfvMjpYv!:jA*ZI\ [[+YK:,p00S]f5âfF{pH&͘1Tj=pm& X/V˄r8Dу&%,UjI Hȸ}FLja3rt60&4UҭWQEKapfv{,DĊ\OdԷ<`L4W#t/C"=1֙ҟA˖\]d+0nFA[0fL4ΐz.GE>UH3NQ)oA2xh&9j!φ{H]|Ͷ  J%T,ljd~x߉U57:aݓCȽY`Do5֐dN[fXeCFf4mRS]C݊'pL|BZbG9Cޜa#ޙ54Vi$]3Qh$K|P:Fug9k\#vM2rE9c8[)u9vw=ڙiP\ФIEl?TvY4*-"{+^TPð5cP`z:&{E+6 *xn10vlBsr͢[/&A(֚[cnZnûl"6}C"zgѓ7--ܨL84as~Ga;}2Lܚΰ[b_rx+fvXAҲ@!!D'.CQc3gBQ1$\\\(7wYL\T"K&2AS2f%,Pfwr^Bk*JѲ)UiD ^Wh@^Sj6-:;=`(WWjX4ҵ0C+&51ouRt3 BW2w#<>נb?^k>x`giđisJeEfnFI0K+ohT +|gcI3DtXtBeL@PԬvG>SrfMн]g 2?" Fɘ^(T^>}!?x,;MY-?j.VKv[2Ll[4ڣf!1Q!ٔlEdps#,.Ȁ"94as S-2^_D+\@]- KꞕRGfh>^&ZPaޗR67_p׃;%ͧDӋ[9?;[N#L*6"!GOG,GR)(&ȓFCDpBm䂟bQE[TTFz)Pt.g%}V(%ȲD6y#_V7C"hpZmVlR)ݻd}z1޸WVt,,W-ж9r+9::f4fczxtONx]a1 ֐ 47 UeRj7;FWq 9"4'qDZ mn.YxO'T;hR- H{bx%<76ZLMcN)7OyRO[)5>X*ib J5F:`@`=)>x_.NJ%S l"vCĵ>b+n}Fzs~sMƦł~x0QTݞ7]̡e{dWQD9!R)pb߮׹ot:Re}f*7]0Wl_RVsI? rC,bPX/4m2sw} @k:q{z=>ɟϾb"mX[O'f*T$r8e#땒jg$"ѹFYk14~hQaq!}9ANp@g1[@v%##֔}5ts}QV;9MNjt]-3WzYyX1)I#( |d r$hg9ҥx(!CC23xqMGh[n56d)x.,3agZ#anjޓUK9j.gX(Bb?(85ihXn9*3C튜UG%J 64̻\φ΀Ĉr:ӪCJ$Xuw򑙟eʥ/rkb.XBوt(;`)\naq @ %80ڼc(*D@;#`鱋+\] ӌ ~.{At9c#y^\dс:S;3y  1VCL2kbӱ`bom1PIȠRXD>UJ(C=#sd)ifAMﴙC\â8y+[Go4ξ\\]lIRP:(*}>2嵺q$N]oA\gӧ,vE+xaҒaEKw37aE$ ˑ ogy!F&LD~ ?@96&#k}IS1*-CһP@c0P"_uxzu!ϏeZMlt,sL}C5- !ѽ}iH.d@+,b:gܹey tb@&XdQv%浊>#QVqEcIW!7Pl+Zؔ^W^yKt]M& ћѨcY蓦JDM[@z5%0oXHdgsGbǦ;s4!_ RSәR3BǙ/!uALSUs0B\ϱs+b.8G͹^'-q0jz"dy,Fst2XgPqmF`@IyPQ %99F*櫃hȴbiW\pH5cD=7AsgX,pSYg#PL,fS1ɔu3]_9j`]O CSZ%M+p(,-T?*Q^5k^DNnE0v DD>K v٥"N;ZV:h꽑3_ңsRFAho=8 (L\vmƼS#u 9%OщcsxH\qY[6?@maswK5nKʹfG_ahx◬ Ê{Wܛ2 -rE;:pt{{܆/6SڭC' @.Q [?`#lbwS+C>k[fL]fyZ]%*~ .?ej4I%$m>QȬH&?e}W_DqѬ^9 ֤#$ HzF[9H?7[{,!) ]PMzt>D_ ǂ\hd@ŨaMxzu3q?sO~*}ܕcĥt[7ݽ4΢8@!JC87Ǎt5böit[DwK$c̑>|` cs 6/ޥqs|41NG|a'_ ,g6y$5[oF%?MxLJG)xXtId>$OF&E&ѨNWmC 1HEHt%NXX~ѧIK;f V|X\{WOS~GkP95КDF˱8~!'ry}% ̤ 0F*pY.9z'ZC։ι4<(v@5Dl*ЅB $@=8`Ss Sxc>аa{.0Їx2VGHk±^nLz5yLt͆s \'5U߱tu$Bn_tT|"DÑl.p &<@FGuƐkК1 f6k6U -U-Ї!̈b"xίMp?;T}n*-c;,8V^_i>CsJ]dO5812]THʾhVYu .1TYsi*`[1EfIjd#oBg5݉C_ JY/ȨjnEm8JkY@Sy`̵!;ՆU91t;-2(HJ QК uFf9Glګ4NEcqЩX6ӕtGadDR\=2{fjPIKg8ͨm)PS*U4E`e;A15r8!5yfC:[#6tv2LFNof[l ݮskj7,3XtQtŽQnRnuvslcȯq5ectZ{MyaiP`7,z"0|&L$j}pg 3K \zmj^C^/6?8g5 65!,~b xT5q"J@kCjhlhͱkE"Yӹu!)"皋ۀ f2KrdҶ (%a([t]/n#(pb} sY/_0YJÁ<>uII"=~"|.dt5Prs{ dP{3:Ci6 fLs ¹MiUB+sU!WJMp>EJ>~%XM x93&EhE!`2&$Jt,VMt\^5VBSl7u!z^Ն|?r~y)iɯH6H?aZ˼ݳLӹLoe.%Cr{ | r>0j>Dn{V%J3=VP^e~r&ZC)ϦSEh $_)up(F 7ã<]S#dv69(ykyk\s}ȫOewSF7Cmu'?F/gW⹼<#W!PsHZ=ႮlY`KhںMtkN0Rˡd|T+Kj1]qHzRճ,cͤi *U.4C?hK~_\ǏM t%汅WB>NOθp Lļ*6:>5"ceL.I4J0MVW'2=Zl"\hr&=6h*T#ZFF%DFI (|f`XWн9nHpb+I蚇7ܧQl֊ zo%9TiCXw!{4W˴R ^ ܾ> X)E6g5S A~*]] 6DMACUG4T!tb.8^7xS3rf5R۴QVEWe'0O<47qgNmaLY4M ݘț1uGX~˃JintY PrRѝ7(W?s e>AiXLA9\h.-O֥/: M͹5,AAln:&ۀ96߃|W0 5o^%?eDL|n;KaP n0quFCc;gd<qHP C/W~@ Ӧ,+tZ4VKrwYjxYdb'+:9! 8N{#'#0G;kF#?~`W_t|+J(r/N%Oi]^H=T Ss"|ps^Gta"6Q"V@l>?͐0?|y0ɂz{ zgflJ֐E)7A κ9;ѭd@pØ'ERjyuMN93AtvlYk6HzmTBxd8?VA.P][ui"!@РL27!Ҩ"\]l.k":A Y馇Is?4Uj\w7dx=&Re)5VVIx@֗^'ޚ|,2Oe27I}[Kє".QZnY-jgL}w (kͮnI&G{^Шkml*3 VL!qBmF#z E'o|t8+FH)ڵ, j ᙼz\)j"QSkQsGw?/e1G1עp%wӳ9;;ms ?ׯdggKs<薧gDWԤ8yt=67V&[ah()c~BbpECptr3sl2C3ul -5V&ZsSfB@5:t[k,=c =G#-;>_/riSjo| VTiMTTV=d@DI]Y2[riTR̞MT %ap 5,٬qDDCJQ8Ŵ<T& 1l956pߎ5$Rwh]Gyj¯ő9~WQi~kD56dJ-dLd{cT(N.^m5AКq -I^_Ҽ :p쁸1=[Enuq6:bN5X-?Wޣ\+uM°jȤP3]AC5;̮p/JԐ{r3r ]TMhA~"ҲfSdأQhL\VёyiQ革x/5ӆ&\X΀J?BSYYh#MaǡCAe8op xV7g0}2w]tmmZ^*[2 7+JˍQ]C4^JѢ[>՟Oߑ9 0QA>Zݤ [EC$2"v"w \FcO N0"7 @`b]j1]BR58놁3G TY5_ dkw]cZKdvil&} үJA:eʾhI荳nUuL&3jo_';u剦C`:ٯ}+U*7h nTD-,P|ǃL{1[ EbnZe{"+`aa j)_?qѝA=}KR~GҎCy׸dۋ ;VҬIyQ_tsYo1>cCli&G?f3#Zir6xz [ۛ oA^,$_-ZUtUΕnIj44 QkLԃL圦6VJDc/nD1wZ0MDP]^^HRV$i&nGFО3AQ`G5#"59t')ݜRٌfJ,p@"HPm$6A63ӹn12#RYXq׃TнveXI޲(SRT5=^o]zk,lܻwFP/߼AnDʡ\&έ?z9X|) 2h@G:gPޖ~-{1.зAS"d%SR7aU4!oyxp@D7D>l`R3]ӧZvwvY-RYmSiLLȸ*QlMJ)߼%L٨Ɖ4^4mÏ IDAT=h]gu}vk]&8v$#6*VrsZV u{{f 3$3誤qSZM WSI&Wq[:dt2h { Qp nF԰d2ƼjƐD0h!fUh0lK09F!Ւ\q>J8yH\] @uUB9dB;hr&e']w7g."]gO, ;~>؃HC$U{C/W ŁvEa443s!.ΖܹP^?;):#i#LkNꑑ¤)jӚYN)MJBM딋3|jP#e9 RDp4stGCL }d< fE'Sy}u!ky Cf16J:Rrͦ297H";d1[ܔdNt3`]mir5W^\^]˗/_o}!Ǘ}On{J^A fܻܽlmɝ~|՗ n7aYłE]ِxׁΞA9EG_ȈP`dkkQ2`21׋c,Hu@pvyH&o(]LoVe ղGg>5*Kj$!BfiTJԐ 0X35K4dL&$Ǎlܹ'S%F,vgD-["4ъة%3,Ϝ{WJrl+I56 3'(YJ&|7LÁtQ_zxx$ݾYb22v(`ػ}׽ Ja Hfwnݖ=uF#ip&ᕬnx=|-L*.e"X҉%dÝ\H6[Xn(DiQbTGt5hiV  L#zrG*UG9['֔M8;C"W2dHWIG9&Ԁ$L~Hjtyn:ף+4OOy4 F~) g2[&FQ\]Iq> 8onlpA] w>UN⦴w8u9H)<3 {2 dcHx +{q-zgv:e̸>ѩ=WcCWjug-?wwwO('2ڸw_mb>dc;?mK6YT6רR@H,(»YM]x'Ԁare\ľU4!G8&Ran E9 1i^cLp` NkѼNtŚ4M^gW~~Mh poQ9Em p `ll^Ev(e6dޏw]ϐ%ׅKsRae9ŖuDU=Jjܳl.b>] ήuL20)^P6giKֽT,| ~;e0co3cyE:@&i K0mQr Z?.ͥIʅu3c%EgCפGIkK!Vaڥ\d%fTm]u?GWV2pD| ~L%׾oOÁd`֣Lb<-ڂ#~6%|^/ո3X;]߷r=9=ۘ Ra8.|f6"->۸A"aMH:Q$wUF޹GZ||23q9?ً2D yYpPc dyPwdUzjPsLB66YT@X\=q$I%~QhśayLk}U%0AQJ\1z}y&W-˛#I腹@xޗ}d>ZߤT 6m1 ss).4c&avȜX:0s1C,(`y9MZ*qb XXрGSYnwe1Kޑ;R\ldY=JXzDz)I_]OB蜳\>,0beLEյ55g4|!.\EQݻ"XCjK5HRt&J̙u_w攽e? ^ NN\ $HW?'Gdo6ryy{㯞IgyYxyL'7r)qn!뫞$:"X4`]OOd{{K?yLW^nlbVfk`tye,lK\m0/L;d62ږ6ek{"e1lx& % ,&RM46|y>[> f ]0B5@X0ӈSYG2ayxJŔe/^iltuuDNQ*nZF}ջ^\( $("kZdtgcXtRVÚ]Xp. o ryѵQAɽo}W>J>pqQ[7J%/1 "}C]Tًi)G81&/ œ8#Va^_8}f1nklN^IAf5l䭑1'`߼yW,i dH34!יz 䶦Ri+}8cs̤sFФR5>-"K Ae(daTZZ$ Ѓyf}Adܛ\p(0ұ7c3#=5Xo@2z@aTdE4qd]킑V4\0y>I\iq uӌqs.*L3g0`nV+2rؠp;ᡋbl1j-q4yb=d󝵤*.]) -<$*Y0YXf-}E5qչS2bβ06 .||/?Ӌ35I6ZA!g53MB^I5`@6˲!-Tyst(od1ﳈ~;w^ d2{weޡܥwWWuE0 VT^D}JjL=Rٗ#$BIrq~(GdKB\ͭMoK@{Bz,ڕ*&ڑ-6"F#q;wJҗgO>zL߾tB! θsĔ6X<#ȅ+d@VwMj8g1果GMq]{~_\kKgILF5dд,fR1_볫#FuAPpxI@,LRdԺ&xoPE;=2=r _r)l] |T̍VMf.[d41OP\KW~V^Q`t2Fq t蚹(o#*h {RՊ܌Mj5w8D qn+,ܱi`rM/ہ| ? 9( I6ґ(da:;9^dLN?0s* <]@;VCZy,=L0땪)F"Xn=Oywٹ5.mu4Bw>gS-4~ѱ8nc]tJO@߾e13eyDE86ric E!+4 rWBc(4A䅸@'>$%#r0&:Xj9XOy`6%+]*0騆xs܎J͛({1`¢hS>ru"v%yPE6EP dd>(Ld:c%rsAKb9M{ԃJqΤy&_sz[{̼~܈I*l.MSqciUA(gFm'q3 (Qp#Ǒ3>jǂ͋\0W+J{֕ }3z]X\Vm8'+r9E*eYZ_፴M,,2Gڡe,(.Q@T}6;zaF|99ԀZ]~ʗF0"O\K,l?a3K^{_1񕋊ybYjDDF?;wuJXZx6gY"KrtÅ~'Wrtq.C< X$:6l!-)Ӈpې=2`Iܤ_\eO$n*D'ra$7/(LZŊvJdF8?B~QDzŎ@>%=lɱ>x(_>y"yd8dtNL%F{w9Xn%U#ugޤ{?۲!we3 %Y][o^Z^y)g'ˋnox"^18^M IDATj-\#itD*UYZ;yԕ*Qg%N: 2UZmIA30?ͧCI ˊ(˝yMiBa v { |.6E̱(z-&{FwhC:SNVW}`v\/ךtmTbsh\ax:Fep~BmAEpĵl'˳N5FhН5K,Պƿ@W)l`~`nm䝞i^"3\k3AC ff>~ `,[HO$X Ǚag - 8Xz-?My54 2f3o5Ttl>|nՆ F|Neέ]mPOW7. έ-A43KeX o2%ZtfoHZůYXXUF6܋.F6KgV*GQ0̻ cc$:+3x R ie_А#R ({ , 6VYwysSg1IGD.E\dsԗe0{TrƽZZxiYrF"W9rWk瞜_^, `hFq.>}"ŔLnJ1G1c18p~gd$'g<zwY.Yc\K߻G.\\^>L{MiTZdpg [e"_>y*o?X! 43I4+:7m)[*h ̘0O {=~eD0}vqbL]d }aӹx}s]> >aKa>Шjuõ4@C6JÙSRktB03L (b#"(FkI5f3 錳`m޻ТsRDa1*'|! ؓTN͘Zur+TpٚG өs/xr4mt `zZx='g !^jd EmYT*uus6B:?9p(ݺ)'oJ d*CuέpUPWoG8b4 @tRdx3trE!G7\8?fs5Sӹ& N4j-Ѱ QU! PHP9g3( ksp?ZPF-ߝ][|.Ib=@tf m8[V7m+2w̝2WdC,_ɼĔ8l2 /$@#8 2\ K_T y'`~:NȒ27J!,X>S0)r׭EUd28tomM_v=|[vrحln\ygr`}ds7jժV$.5]x,1 R®. "$fs!s<,5(DQ\#1T V@D)3iݻ<ISqD*_Iﰦp~. Aٜ:e90|`rw]sJw?#rWE Jbml)zPpzMgcyܻWNOϙ<r͍ ~9XV@ :rUwo=Sset2T5!\"ʂQ6 0õ&x8 d6\eaġ%u`VQ[yX[i0ïuW$~eӐ8x'ӑu#2dx_014Xh$WstaS(p2d t2[H&8*iy>ʜr_--0?U)1 r?:邋 'i*0CxV@ 2+)aEv [#ͭ&9k7+5̨p1 %)fNIJ:׍85J8c2/Ea4e}k_DzOdtNPס)Ǩ訋X9pMQ?|X4{C6ME''hj^;?x5užD9}6K C p 2YUuh Ipz`6œ_0"`dFc%ccj8,gr?q(d d)ⴘL牔yJ0ҏ(T&vwZ qCurQR[(muvC/c?ԱyoAX_g4@ΰj5Q5:End 3 *%bҿ<~ Ӡ. 628s+^>Rb3?\b}"E]ӐZMu^_̦v eo,M b.8oK.lLA\`"-)qu҄R! zPkMyuqأ ]ռա R&\˝j,Z^05hΧA 8VgytټxV0}lks#*1W]8dsš%u FK10'Fٕ)ڝecT4r*]갿TN5@2V!/Y^ sNVw\*G\KΖ.vC*1"KYou`{GXjU~.Ȋe,T L t=Fwmǟ|"kK˔)X80!Z\˥]WȦ1Xm[JgFS$`X|6n|"k+]Xq6<\[<$1=F>Y,(Vuxs󫱌̘Gugrb8q',2hvYQ`,cµl Ŝ)^XWˏ:ϓs!'e.d4`{AdE*fR ?eut|܉ɑI*a3!3XY0HaT678`doݾ͙փ{!mDϔ+n5),2΁o}L)oەEk7_??#8@(r4:ܽϘdJI<(ms@9].ᕌG=JU{x_ʆ]C ҭ'"x`bfwwPz"| :^^2}9ťE *X[i+&xtt*{(kڮ,P]Vm٫uqy7p@XD JmݞU쐡| pqOfkiv[V6Մ ,qUf=&;'ڑZ%F#Օe`fJ5"0Ӿ,y:z}.*r|r%;6זOYu٫ȰeLuF>U̩ܿw@035y`F W49Ay͝2!:y13PD})ECiJMEYAb/&ډdcF8_7Ҭ'*gJc* gE_zc* t `g:9-U΋pԇŵT-Y^ݔJ.uMINt[H| |`A{&< |q4ƳLs!nIJR 7d2|pU߾YЪ'bܹi`wJEMm7QXUf&jGYf̘i]e>^ .H{5d~.sd:9w?H#3˝5y`JllN(mTbẍgWk7bQS p1wiŞ@O[iS_)&ӈ$~M[ujEA 9 jiQ^?%9Qؒ4#B.PɹJR|;8`n)rRu&5ϴμ.QvDXMHyưÉmDT ltMF]-$R\p3 c,sJDܽ-. `N\{# W.*\gTn~>;WN 8SEj_)܆0J\N|szx'2pݢtup?5Q"Wr6y*ۧd2ӗRoGH8bd,LrN'{?<\;ɀD]lT%qٓbW*_3``wtzi|GןZO֙1y{2Ldms2R|ͧr-s`]$_smjz*Ks=H35#[N oȦ@yS,u76 K⥖ z 8oɌA2WF%wWsuy䑜J$wtcd)Q*e0޻P6slGH!K*UJ'łv٩TY4YRU\&L#7l "Y2qTjIDO9a]^U+f]!_pYG-wF6L D6GlEN[J(-?<^DCb:<h]ߖS$)-gQŮ}DGg{4Ҝrm(>ńv4rn7K Yar^&&n`kh.VӘ/KgtHt ͑J"I33<\qUVgw%w0JQjR:G<ͅ\æ# A.%'dbk;JŎi`Y֫zzSfT4MʯɊ"@?t7hBF#O1O1JfDthQ_Z/%d"?}kWn7m%ejR./_!X)a ʓc{ȩSat2` -ٕ'o^TqQe#k̹JgYO/ݽ]r8d*S̿NKrpZӹ'duuFIcdMt f4OZFs;ui*nT;ߗ_űmSJ83PZ%[wQ!tp5-<⌬k5Va<2/N+ق2CalF<ёLxɏx9hlLCmd"nG~$Kɛ7oOEpbBxXk+rzzF'}xL?X\CW"R\x` 3RZMqՕN-^_WыsF@ @9`ͰP|Z~ 4)wBYw8+ Ry2*dT Dqߦ }"!61˩ƥ:hׁLo^lҗ& `J#ݮSȜR_:dR9%`lo,љx6pKY}s<UlmtoudʢV}'ry9f]w:kSE;Z:]g9s9$ƨ] IDATy{gfHcؔrHm9>l+n']Lp&8g /XMnFgt۪w})\49Ov1~V忹ŵll,@N}s :"sic#9һ \;lĚvl2| 7M^mP~=d4Ӎ4lrmŌx~b96f|MyK!C`Sh#c=w>Ox JEc (2XC1P}%Hg&5`)7I>`KPH XzQ V'Ga/ NN<a&FQ{QIfkX9+a`+83D^eHMl 2_;ԃ-*XF+V8vaC$֎5JFH>~S0*bs-l ߽Ktλgb [gErݔ2q_LWjFC~=z%*b̹{Ό QNA6^ux*rS;͖B\4s)Y"~6xhqC\x^]`P4Gr.+EfA^0&Yv,\kD|9ZԜ$eQbs}K8JLj "y s|mDrz{0WANQ0 (0 U&{gcBJTI>1$vf[R "bGW2`su ҨQ;ϱ7qKYn`b[( xA*9Ss XS-!`r5 FOr2,\\\՘ T!{N&YFtdJIcU"ǟ~ 3y򅜝啼:<:C,u嫗VM^<{:0+utr?R.έiDlllJ0sy˳#9|VPVq)ew\:KjfbLt,ͥ|1 >/>{t;lbaKeƵ:R 3p6Py5̗u6-N'd0\jeksG}֑#+zuq!V+$?ǟ0/wѣGx@i*U Q'Nnl39YK֖h1lx$%MŁR݁f+ Se.K&I+P&gH1<յvm *` 5|H4e0=Y>0;թ:&cΐY_Wj j,"LD%gdVT>\1ɮ|p9!bu2u܆+,e HGG̬DΥh:b̧*1\l&FU:*k 34[n |Jf_r͂%1`#g P虲h4"sVWfmKrmsks?cQaGC2d'ws ?ih9GE>aЅ!L"tYc`>ϊɠ` fPX;g!Afis5IT,:i_?2S) 3^*̅Ec $z'W~LWX^-! XL0we1JԘ;spש@lWȨ"!=dަTQDỳĻq6 |. H+e21 H]iH)RemB}zq 6 -#v06m|o|!6V/]J0Fy+FHF)e3\$˛tWdxcũfL31̥n7da 6wsg[ [fb6`@z4T*py<ػ-5RM^6<UiPYsO.{r}}y͍mLFrzzBd S`T`?T^nё:i|=@l6K{?m/r>LZj:d1Kk>`Tn0ψZ4to9՚'|L^huʝ*&y.>p… ϕ5PrtB8Vg[;BhBCխ;L/>1G]QȸL] wﮜ.;r/uD~1VFsjMRۯٯ3L"YX,eAJ׽);6 cEt.h`͢krI]O9vW.`G4xy9МqX) @5^#ܙm{)%P7$lbc!pj5:Wu8!'* "_@>:Gt}}"1?x`dѸ7u׵@Ç55TWVe8qM,rߢ3:@9aO4m0a3 M[8`s-+dݐ _WMY9R&% {2.f 6KY#W0.7eh%\r 2T j߬ ^b}5gϢJ+93 M̃Eȹcc}&9T}_bUi5dAB#@k˟Z3Gh)[VƩ77nZeFcԁV#7I[МXn& ̺΄z^!${=SymIݕO_p/^ݏ?Ϟʍdjads-UqV88cBIZ8ȋHVm|?#y,Zhw012@CugRL-f`ڼmb38G*r9!h]!HMPNg{Xmss̭(%DοƂ \/m΢(hqBNo"Wr8SWa6xY 5~5r4lfwwr.wޕǐuM*l@ Ӯ H} ߐ$\]Ql":"RwoҊ|xgt`:AmwZa<Չ\+c*,jvvj3usgG =~.u_ɷW,/-h_k鴚t s''_7or+~-6hXPqDx4;cW]جx5޻˽B")b꼻LN"2WHPȸN3N|msox<يJWf[ = j h$G&O}Yo /覼pm荥P!>:w`FҌֽ8㤘ƵČ2x{6gŘ-'BM m]lt2p+29;Y;WRXQf$[7dP@רey{\gĻjuibF"ܑ y-̀]lSl&M/-Օ V:UmD;k04pWUYD 5SPͪ+DwPA\g6eꟲni<6bf4Lj(9iTRKjB?ˌ|{,KSo D~G??򗲲N m}cCd V" 2Ke(E*/^o}1 ί$U?t9v%&׶ƱeՑ?7goL0դ? iH֖Qh.ea`5wQұr :Ng`&,ħԪ-:keL!j QݿC`:F.aDzSZAY2*η? jN%!o Li1o_b-=yX5YO?μVk}J#sE 00Y[䫯ج:_Y]% J$һX \_TIgy _Z6RywE쓨H"y udhXƳTy}RRD2VfQM>P*5M'&T`J]:D̹AH!,"yn ŠԘ Ft;m9=;{s<͔ŬT\0X]]ӈZB@ yOH5fN'i3<kA3*s.dDiRTc!|a%2SVcfbvU5ΚW('3Y*T51riB3uG؀Kz =3҃zIs@++Ϟ$iƈ,bY]ےZ+''ܡJ4ڈH+;[H7%;rr VYˢ,X_z{+Ľa٬`$GQsNdfT阖"yr)<#ЬPԊA\И xpai-(IfLcne:1*X 3ҁ_3\c7 6>j^ˬ9alV6{?E&^1S><ǬSC#*(oKN쾄;K =wA2ˈENUxf3^51k)D*yȅ<m36GTV+B6G}Il<J}Q8Lj'*0&g,HAZJ UÜkiUU=ii)YĤ`G1F 7^ne3  q_\`9XZiyY2c@w. Y?xpp IVsu(%#>V)GyǏ$gcnf>,q2@1:jwUnW)|,WRK]dF+d;pdg}Cj $sD@SLf>Yf09͛Biߟ9I*|@|h̕b$dI.Yq uPX{IW:UgEc 6.,!E<XE36gY}1V;H޻{8|& Fū`^G r2 X\nŝZ.{[r{W.Q&fx沵)?',#HUyxQҜh7i3˗Od4ZX!~$+-st5Fggsكo>c`mj\4@~ cm7\Ny,Ms#RVWfvq TH&Re4R2 ëVI9"bTk4#WebG*gGl ac4PU/M l5SP!͇$M8*B@ӻ<,`+gIR_뛹 3(B|>fv ޜJ9L\*lEz f.VLèDW3;|r1XT7`Yo$7r3l' )ke(1\(1eLJgq42h$FuƎ%>'2"vIƹnNخ\%i{rzux&Qx3JfklT,hTsC0Flx5ij@?iLMѰJ|o IDATo VXpf;'''/yrV$LhVo+a8߫g&ABŐ05,'ϸ 1&0PL|ܳ=6ŕ zV^?[l2R';UeUxl@INbH8"ޔIG|S䙼r -E|̞A(>BNorkV^Y5ΰt_AswF ơG6kJRmYC*fyIs9g;ǵ=a!ac.f~PRa,t VԬ~tA}KrCuX0*}Tjy#8_CoLl{N0l̕|CS`kWۊm)StyXW -)]܂%Զ > 5tl{:/ɒ=Y\`.J vs<\oyfߙUdN&zsHŽfnS0*cw_ӟjJQ>9FWꔲI,%PnpR+BޫIˀ7uMN85qKrWל:c _3sIB"Y[P7! \t .t0)7DBlqag9cE AT27@L2i.w<(&0PోPA6;<4p흌+0L|Xa- \ KISΎLm6L$2P>:-_kh⇜`㉌SgWG[8X c*]dr>Sl<% FKsȴQ1J5RILiʋ3J[#dQ!vl,g|,nI8\fv V`o_:e~0ڻekgsڐEd0N4WU8bNlK:e=-#1:uVeht`H#'qAnV4.Iq3fhtTf|Z]BwNpF%*;F8szwMsۻ;8l?ex=5$˥LsHp7ˠʳ728%nnNz0&Yդ>PwxN/ƺEZa/{_2yʁY_~)@`xVLN8fQDbgDqX~3qtE:+bj|pw'ZIag)V$ ?j2b $xvd\}|suf2RٴLS+ 7 cFc<Ô>(Cp}C@R(< Ow$f2OJI{3v MsmsS$Zs96{kӔ#@;V*.V\m;C>T˖j( x3a1 &x|zS7n-Sy~k%ќl:tKn `ê k~~6iGZnFg[T|Tf<Ћ@73B8*x Ȭzn)Kx٦Y\6#$QV5B5WVs]̎7d6 eK,HM4^GTuyiCcfY1NNl"eʧW7uonO/e%#Rqy|vk(\.|麳}F,wJ&ZAՓ9ܹNOf2oT^_\iv6:]l:uݿkES$wJκgT|)gEFVZkm4=\\2#s|UAu=u˧'xݏTY_ݻ.hDHn8xz{`W FZ+FX= 7%)ږ8,uW_U~%?z,湠|蔗ت`csKgOQo6XR`ps@s#`.d)cE6]>ǷNp{xiyMy]i~4U|zPӍr>O.Wk<|"[r72s9+0"Q.C&G{: XZ(j* z(s.ٲ/cF ͈B X&h l.ƹ(+¤ZZL]s?2}FU5700flÁ]pvIB<Y:j .F7'ǕdgnLs{ʮ;Zf|:Zfz9_/}9,q Gcwkݝ w%n63+!ȥ2ᓏ1gTqr"Dz$؊آ͂d;   _nWE{xËdk\^{z. #a@;d xx04I]j˛9Z/MYrn׃!I5K5fP Wf'&t Wה;w9J`]#SE^gb^ЌRBlibTJi E@sqչsyU~d[oE/rUS0ꪟb2&&r/["n<މ%ߒ) Vw͍&eYif30m7e NWLe>؍{)fEodQ=Nc g=r$1G2# mZϓ:ĊjAІI\3p9QPb%ϊOYDžK̼Z$?KC'!6ľzjJTz6~g+>*p {KQک UTiO0̱RΈgǚkVkh%Uٹ@ 6ǹmfW*0x>x'ggNvح7ɇ+Eb(l+" ]iuTM`6k=﫮¢ugLY0qfYlV6i޳$.aL,rEMicԿF7HKc,ֆj[؏,*,9L_?y''X&da !ȂNlΦ$ AA䮁rLm)qfsf5,4kٞzJYndjR'7'ӫc9OG*:%Chg:Y ȄGE/7ggX9>K\_Ϗ%wP,>2JɘI 71'7t矠 ʦ7Ru) Ζ3.̈́hR`0ϞWZgg%'{vH;iF9L\L_.7vİ;977oLJǁMdžonoc4լ4F>S,xbcεTFRUbͤ͜MZ̢(ui=d8FJ52ZgD19F)F)bO^|GH)3> e^c7spA<&b  \jMAK@6(MV.7.m7$ˮT%^z .ΎO$mm1O՜+2l-s!^}:%Vh< `l^aJȉ7ɝ<) `f<&knFVL&ZL( cy #L!5˽lٹn9 w`[~}lo0UV cP 9kWd&!o`$#U[zY8%Vz3^y.$T 9t;A #yy["L~[c+Qo݀S\XoͩUYq)Ygʻ,"35@V2V8ܫ7eX\z.,u9ڏ.R,g̝oh(kv/+1j* a,o}$$Q^-9YZ@ (An MItWiy Tֱ` b^b Z׺LgRqh3ɣ̶#X.HbꏑS2VЩ71ۗYp|!yvKF:"Csm];Yfdf)"]y-"n^! ?XaW.mRJ*マϞbks`mf+׳NV̝R ,mF2[jr2͎$K,xpi)FZAKM4;[4 XkYKW6 F5kE RJMŤPHɷ"gT(Xɭ3$|&3TaۼpQΫ 'HPT jiNeI18ժ)\Uܟn2N[sgllno)iP/c<[?-2ξDod6Ѽ+pizhvչ5!]}/?dIXVd8X#>HbM*F%mpFk 7jB͚b11's8Nv/!z뛸/5xgyᰏz 7sK$e( ʂ(t"`i=!qI) mZ]Vf[Ƕ 7|!kӐ'CUCUGЁL;8KsJ(sZs1ꕥp1Nq|~>Hc ikWs:jl "5EիUrкds7G7hĊ;GG8;3:d$*M* ڴGd ͺ]-*',( Mhg*wB=Z$%_g6[J&px}^C <xmFJZAўй{KŚ&`15{X,>>B_dU#McZ::&t'`WW`0uzSuz-^OSlDr6՜6#6׹+Y\Egcz JX,+3ΕFIW/e,%@{c@*FJ4-gxs,;K"% yRE3!6#޲( 2ZSH9'Sqr*x˽wyU89^bZ0LiolJ) Af-f{lVsfΐX#'2߫`hɒ+MKTD{fQ$g+>n/WrI5V^2Zi6s\n7Ь|<0q#jSK._~!C } "&A7CƷ,yO3z-r~F\bN!s_Er1D'w@/pZU _]Ӛ 7v ;tsjSM7NQ~Zucdk %l4*99תbtS gf:3c(V#@g/Q:_(jUVOF_kb̻ɉSboHFidMH I ݻT 8dFf2*K{U%qh*ϴ+jRgk cY&3ӀgKpa^6߯g)Y)cWp!|x6w\w%#ϱF6*V%A2HvcUD]W@``O-^Z^N~C_`R8p𥄏& VK,tK3m}l߲`n'eTfqy(~Z-!C8'rռ3k5kܮPr` \عy\gT~2Ous|yo^<3F9Rj <>^FnSk2&[y=ib{k[DmR^jEɵZ Gp]ÃsV[C|N)%+MH9 92Ld< LI88>~ '[t#a\{;8s_/_+_/^ىb^}S<|HYӳSlV h9CE<:n[* LkrዅMjSE*C$n#O1=LeN9&O`;OXdK:xc Fd3F8y(rRB03( @'JFcS9Пg,jS:rz]"i?Sq8Q{PYWK,{5WbN\\MrmCl@Hwmlt+o\v~:2V%쀅kxnk&](Jď;1NE^Ω"V{Lp+^㊳s+XM"w@px)o7#3n΍CWnEk$QU'6 jE_=f)>ZLkR&mkصkfoKM2+FMR Z@wYe~+',"HzJo%H yFP /Al,;6?#͢a\_?Vn\x8=~I?|5J*'W(f ,}{>;]^gj2$M>(l/3Dyϕ4:XمbQefdbV"Cqx>Fd|s/{Zk7Qhi6C9MT=l蒓$beqZA?t.trL)7 k l6C4*K{usE(5 C|[Y!ZEy^+!':nfc\ rmpVb4w=Ah۸l]jֻr&LGYJ-bg@cN ׷7Η*\t ɬ.>L?k4>$דwH;{R`F$4.%zbTFO.pqDk\˔*s]>~Hq87,e LxC ELѠ@skKt &h*gla4g ):[$ln٬s}0 'zl1bb2+BH˅Ct&rBy/\)%3fl_OĚɫl'#͂7qIH:fS,(>'&-Wg94fN t:X,b$|9:aN1 98Uo2?)gy"ܢ& 8KGO ʹejt$3BgmEۋ:/{ȗ ͐ɥZe]kQi'0FFS)U8՚KT/Z:rfǔwb,)ϔͥf9k56c ?[0v 㑮bx}9],1h֌fU2ѫ4p!N^=E DNC$Xb:qXQ OQrF-6Wz!H|c[W0#=IE caW&v{5m-N1e.6rb3{ߣ]3(l$z˦ |/800X0H4.HobTE09ڼ7h'a rҚ>9̯*H+ͲfTnqdQ硩bKKw:w[~xrD$yC.Sxg9@ .3BENx6rͣܙsiؙQu73/oRlk®vRNViUQ|h U0u(f l{Ҭ{=͞ߟ+n&mIT2ؖ.˔]Úc^2gW3JJGS|$1+R;+2diI`s,sIrQDc;,㇏U@ԘUX2ڵZRo[?ޜ LW*xp.%ETf|lyX\ v/'Q2ßMP5\qqsz3dIEHءޒ6+b9{2KM)TI ffќ (tM#Q~n'C#&smlXĢ5ּMuY0ҝz1D){ÃCܻ{O=t;[ƽ;b|<};bnœyD`w3gLXEiFVw8t>QQ\wѫӯ$=8F-uo}F;[ vvuoBp<5"y  ;D~ћ[z=j=z*7 2D,y6qyq>qׯ^FnGw7OexL ;;|hFnٳs&K0xS&w;^kx+*+6;\_o(S{GLsfA002oh}9GO,5,*q6py*żfFEle{+.z%{Sd z=ylɀ FqU6ƓkyTDU'fHd2,$xcc>MiVZ٧lnlBs婚4"uLW5;fX8x'+ݤ9йXT\GWE"Mͤi>uڒ -|CȢz\A`[:Cp&k_Q@:"UtC;?sZZmrASיLP2E~weJ@G;}"g؎b6ɢKmpj삷nU8:/k2YnoFҢd^/%_$fùDj o Ngt3X c:z_3tI f6x^0p/rYv X2$ǞM;JBcr[ꎕ͗iptTs'4ZNuoou/Ӆd/.ߜ+" F7}hr=}>}1GxtĪpv6;`בo\{CRQb™2`pv7Aݣ;^_hf`sM' s[,krL/"t-wAWbykY[tlĉ{K^FNo ꕆ*%,wt q~v.PMpwlD2rv dI˼q H_} nCI5)8N "Ofω&k(7p}uf" ņbw\C9Jb&֙luђ/g4'bg-bF &3I*,Ǵ"vsϜc::/Y,on;c53{1]4n缷ի$آR_>iE.GX汶<pgĜE^*%\FcQAgWhF2sxKE$9G*>:l吋mT]?pYk}&P5U}_aF<=|yoh|b=G 'kIs)i5}'!O7&(g |y|ȿF ,,nHX<ƽOUkjQʮd{;!c̱t:趏p~c)t sTO\' ̓'XKs| bǒiscd0(=™YM# 6d^9Pd>UHs05NBgdîxFh{` pf^}T92\#3.|φ[[oXĊ#гm-YΠefCj_N+gkf{]|..J]cnhԽ7805Vj3+ȡui3eMz8$/Br#grG8N|O`ˈ]#c3 RjxSΪYRSfKJgYb,w2.zbg_+X6WI>SjJ/U*|FD82q_? xu~W'G6Yg8Ƃ4 zʀR 'os޸(9?|eARvB}%s+X=QOF6_ʍzS.Сu< f!>xoO`GO4q_j9vvpCSw0Z1S~?kλ2[]?,ٜ˹,B@ j͖Ao^r+?|VKni&iF4wSP1Ypw֔,PB˅s. |{8Dj.}uׁEfn*3ȽM1\0'8TJ"+ijZ Z&b }𺟧NV枕JvW= ص"khx~&몢T7#SCD`2w2Ytdq2?o+f̦;qvַnraǯ1tg} ݹr3]d q9c8qv~=._MuV{h`<p7T00ג'jQdQa'h>3Wx<ik͐+kkHI/!ù_pyu!d.1O 8;?w9y6_=Fk z(Zp0Pi|Nۊa9N!VсѪb$CKKhp,%holiћN٬$b9:n^iq42PJ54N~9f- _(L3 v20-z+ j"mXxIXJ|߭c0ZRW ~l4˚pnYxa8z<Z-$<~Yk禚c|\Sf39Mpg"Vq…S,&ⵘϕa5f 5fy;%ɍZ"@y9 כULε`!Mjrd@Q*L7k 'w8C26Ssz88WAfܿyfpO,,?jRqtx){edR\u2޻3krz_pk ͍֔Gk7x(+Y(ȫ<ߜSTF3aAlGVK]+kecmMsOB IDATI['YzŕY@ nܐq`!{] eA=tq f~6sM:x 2`,ce0[1q3}r#LXoZIxzV5һ!a^>ɸ|PFɊH}tR7K*?_uͮ('fQ4ᬻOa^_rGlufF Iш#>6 X[{us|ϟsB3FpC9 Mͦ[4d)ms'v f{"kj;x;՚2DGsAw!Lt;r`Qn"x9P0MG*ͿDИgK̖s3M%7TdԲ l<tKBMɹ!h]XYe5SWAV6wzYv+7wS"NE }T#Dp0pkkjUWQ!XKbgG0"/40(xs~o`X,qr{)vM{9^1Ńû tS\\Kv9Nt Z* Ͷ|uKEfG#i&@Ƹ}1t :='e>Έp۽NOO߼{>y2\ kȯhS,Kt q?=Y6QNlU/S8J xuU)=|縸յu^^kTɭX)Yqtp\^+k3| ? 2! 6ڢD91ܪ \oIhƸ181O4Vky|&ʑY˱Vo40,<`eyc<<_P!8g{x؊zM~l.f֚s޻{g'o4:SY*FgΞ]ʼ ~+9 ۺΔAah9a.yx-.ӌSz] czKӑbΖz?xlE3=gsݶ&3W4|eW jQ:~nۗE\(3"-e\*}|%(.gCD͐V''(kY,9Ax>E>Qh^$ {l? ˯s*[n=В"`<͈S[yjnÒI}^˜( be(^Vdʍ1Si<Ҵ͘]U=``gm'\]z|akJJ ll`:E9;HӕeOWj~ ? -ӒMeN-íe.nnK* p&Ȩ9\]c2Wjڄ-<58VN'9)ћh(2Eb1XfBUR&vuQ}ZQcס%fv$^$jn.$^u%ed1mْ.S"X)ZUwSۑ"oE1ĹS:t,9P< q2>ƣA!U,i$TQoՑkf]_y78p|}QQ`Gh#J!YuH ⢊F=||YInڪװUb1G_rx$bb\9e?P,#BQJHg;͜+oVUi~-Ny ^oc6~'}Pݻ\FM,l9cwTxBy}e0]vxI{Gbx`!ޑ eb=??V՜(@lҿUm"Û-Ǝ83ySo^ѣw9G[AR'E{ƹEnDJ'`X8ܢݡuKloI\G搢Ct.6Fc$ 1_Ų@b$st5VezsQؓFhc2cξR3cRJ]M:D ~riã$Rr7QZ@۔M$]8݃ 9xO8>9ET{Řzp1\|^յu\9= 09CBwwjl$NN}14-Z]EDHB׫O7C\ ƊѠ?btaڟR6-'rF_POւs*'Mhv%Klp^[uYBAAvYkk#2x@wjL*Nɼ{-(G6c>??Ӟ8 pVAb͆'2Լ̒PJJfFzďYXT3ĸ_ʕc42_ܳhS92v%E(W]dAS.-3 +<)X% 2,kX.gj>x ㌴)LZd7ps^TrE1bQpvI|9/{+ C9,#d=ON;_8v,Y_b/\h^ٿ[J)"AfnU@M[ !N2V+#n`,*KvκDɚF+Ĉ~FX{]dkvzKN]ck{;;1Mvc`^k ԢDNX2PaF^>V!zFa-*>i&LLcN%&m4u}.^itT%Ga2>bx?5͉d1Hfgi&lgxhbn\vcI@2St,d91d!\Q,bKzwFvɵK.dl U$+.?5UGZ^ e"b'qr(Gi\ň,xMRBl %JbG97k,ҙ S(8t)޸bF n \g3*,fw?_op<*cR8VڨK h'wao{/^k~FY*o E(89'#TEuq`d;0("~X_Dڔ /_tu.YK3O t)I4'vjvXߣÇ<>޹`=,9>?opu}!yH믾 K.t# $ՊX=2N&gwwwG՚|ˀsW~f+glb&ʵ46c{sWl9KdT?348=}͙T")e~bk{o޼dך1\WN 79Ӻ DI΋hնdilpiU*;.,YkK,gCLZו|)C,W~ʾhclmg0iʤ̓Aպgtᴻga16ٷi/dC Vgqvn6Ai:cokӗO7:fF%a:Oereu9SlbFDFG7UP~.:lD{&se]0ݖ%vu,vN: "rQ=[s{)#+7nf¦J_:ŗPY)W䂅区>r$y;oX## {ǠMW[u-|6kY/B6K_|8x]wc? FeHy  ,35/L:"|~_;QfxN{m͚s5K1+*9̭MbQ9νF6"xO5/ 6ĝ)D[2ԊfJʢ&h[)gP=-VW/Wcg nҜ̘)gå967op ~o78&>sd~ .EQFGs'KG7דWعs~3q;8bPy2CQ8+ rrVkc.Θ@9/O0hb:imNKTѨhc$QrU#e"c9 f bESUl1u#wlB3Jr/{MJr洘5c^9ʦj>7cn~6'Cr8 ಐB#y7Ƭyک#bTC_ms7T r_FI0ERƋRbRUdgCzdW~aICKȏ|L V͕C̽$SYqS*$ogHBje>l.b!*Qe{EDZ{nV32B:Z\n&3qb_8SZq1RwNa~3&hKN3fB}R{g#}*s'%آН#x _12 J-/dRh7P⺬ؕ46Ȉlb Zb${],e c7f;onnq=tuZhϵQd^o`Y ݵY4U| Y;('Z'[[zniCuggWːSK.273 ?2~Gv[@k,PQ$ ;79^FV:٬+|3?5XsQE8YN!] Wjb@hTL"Y. \\ 9jtQ9YE-BKܝyXP`|Z&eEץnESAH ܳϙWO:o;̹K'QtEܹ2+~UȧQ3O\[Μn2F{E'(On9w+6C#\P3F-\ # -cWjLPABcŕ Opl~!_ŠN򸳷\iB9! N!K8ֶa0}#JbI桾9T3r'YH>,\RPMgs1LH{G+|G?O"?[A;-JIkf&:*B^TN3<?#cɚnp~rF1iٜ\ J O|)} !vN+1Nvm47+ܣ Eb|fTV?gޒ@;Btsdy;ZKIpw01¡]:{K:LX/ IDATD!^' ŐR  YQ`f,KWɖ5DמvFbQz1ӷh˛/_A -o(§D!BdY"̰pA> =qr|pR"fXxXX*SP>٣"LH+Թ-b붚DfDSTikncgg0XVM*hȂEC[@ ,,bTy$\d&plbPPj]{rY)u+YRZfn-k;'GDuu"pֲ\LI9\dr[9/"zNODF"ESVt$ЙA\CjdK;<_s_*H֫Q57%q4+h \L~L7r]?3IzهP}UL:ADnvZYC1gXbv%Kd.g:GHL=z|ڴV+4݂ƶ"֭[['?Wio7{jQDJ7@zh~AD@Rg} &8!yW+>L^z 7t4M{YkRN#~vs4x|DLb,r41x[l줉L%KTE.?ґFPiٚ8JDgbHv^IDC-G xdДwwiRgsnTjnp(Ѥ"%MbsbmJer9b d"i&LRoddpsMtoTl2#j'elH|SSx]/c-## EM=U@Mξ$X܇۞f/Xjt)lȮ샜#" ktu4粉Y{lPEQ"2֖6C+/ s™KСl`ag̭@Qlw\=˱c+8t; 0d2{'#>jjsz {LB6 +<^5V62h7sRso^;pŞ5J32z ݧgv\[6w˰B*#s16f^5QI.e#e= 5k}ؾx5Rh &6Ds\sQwpzرX o)jōhaJ*mPKfBXtC۰!P6$.7o֬iK YS6N(G1 տg*çLe ZMx)IK1՚ܽǂA02=v?g{oش\= (ЩUvfd/f$)7YTD]C!G|M]'Ǡmj ||#ܽ+^K{(WJh ]mkui`({.'=z}5W7 @Zcp4'qQ@EAS^ahxi 7bq9Ǭ=M4HI#d(hWK%\$~¦ڮB:CKJ _@'JXv4<8j M Ͽ~"YmrtEfm՝,wؘK/=.b+L8]<ɫ/}+h"2e:HՐ'F2zxD/qfB" 7_3w+BhQצ*=iMnߺͼJ:Wdh̸ 8w>h*^?._|)'})_|)<}487^O=e\ήH'7Qsr%l@k6@Gh糕V3B (TaV+,\M'C)x#lbiJ#{D kR-Q Q1W9(b~Wg.桷s E&1ܐASMz4h*7Lgki:tʍFǤV`J^$4vxA[,@ q^zT]7bu`*żj@}sLr+3:/XK-tE59uk~1u9:5yKjTykpwNhVVtZ\d:sdW1cҙLm&4pǠEoq.Iuy4$0PJh'>;VR󹗤[MYCy\p,|kdiR6Pd(51Pj"Y3#/*3藧Ḟi}(>Ux%ݯ}c($y<4i^Y@:3>_>emȧ"E"ڄx 1֕-OdD 37b ȪXs@^ԧ:Dﴚ,؝xPأƨsgZj5eq.atO%Dp6C{سG6)]V(mf,VzKh3ql i;9.+-3lvua48H@=bZ3IJzݢL q5IofG!˦ڙF<][DY(lVr^F`YIYs_`QJٷ{Jh)c3[5WV3lbꛁiޟr^_y.,iR 79N\&5tй SY̦R XIߗGAͱV M"v}c72|˼_;qA=Gh̄׏wM3ȯԻohf)2e oʑTFK~ݏ|w#_xz0Mx:y !tl/odXN_G?+k7uM(  vafLtP.Mm_]YRWZU*+  +)9E[JC& UWR<<>Hƙ%⵻/7¤SR3wp15&h*mSqR=R=yow9}d5s5ـt UIj869h2Wk;Т'i^|jq\^og1t.(iߦl^ЬfDf Luf@X벳{tu}Ip}i4ruuC$辸7Ȫ*"' ^ӱT$$薌'3e*6Cf {>+`ysv{t'%SX#wb㺵ӥvLۨ 2]sjk<[hk]\]IM#7 df4 cl~RN5:ݽfv0ׅ5hϠ1)!rVk88q4C# Ff6ZuqIyJߌCyu6/Ϟ~-q> +1&SC=dx;)k]g |L@1}OgM,CtU/OSTs  q.Uj4}a?л #HW(lbSK5M-+ջnj6|OěM&FMsHi}mz$ZODWC|6fCSεVo-<`.a|ΩAmhYVxܚ`R3I)"x2B I0R}?\zm㵺ZcHibQ<6 yyÈ(ĽxS]m߰yoU-_ &Z*³y-c IhK|GDΫ <"'?k/<ь=:67~Q򸣍YAi ݜ;.8k+"qvQ;97xIs h* t(l&pΜNV>{Ҋm1_ɿ x12T[אUq V{PPbq[^ Pѿ|-Gi*eZt~V_g\YLuvΣ-Ds^Jwow!'_v38~RkVcvrQld*,K'Qh1v&&x $кD-DU€%=>$[R6LxXB[]mJ{2YNQMg+-FPAaKrgfD%io4`ZR, & FplTͭH[iFV#H#P(XwLn"@S)tz]+j{ ;Xdrxt B4'Hbi44%]p\9ӜAǁgE)4B&ku(n29Ƞo<<#7|/U4M Q)t`!K'^_|}#XkܼXP.lp;kbF ~w\~g9'l*駟ʫoKߥep.E/2o<JoS.D>cj߾}KfRgҚklQl7ZMv/t żqDɭcIX^x 1i*36 _BԵ0ͤ:] 5¤QGvnOxu5$)H+~yZ#ݽ#YԒҖ\qS'RMjrfXFsM'(F%ٔכPV\tt.ݒ~W1\XVx `.No$LȜ-V=hp*V$y6ckbd4~"pGjFDќ.WU6E/477ѼePјLbk4ODEMrmPmqqQ:h5fZ\1gCL탽i"._}w􂯍WpB^:LQz0RRY=C7@iZ|uzfaࡃOˎ/zIFmhʿR(CY]u#وXίo`k)/mʳ)mB\ߜTTLd)h Fnhh 7al~Cl2:ͫ3qpc\g%R6n~f)̀5Jm$67h"@'?W7#9<5ӊ<Q&߫ɟkq@xٷ2.dבэ\\4q$zv'W(܂& T?^%yQМ%Ab舑 ~s 5{c0+^X´JNJYA03TtXqB#SDl`@ :'UYyENX KJkn~),8D_9MvL,[Pć 5:Me΢({%R=FVf!\F3#6tNqq3"4R_H Xp@'g@u[\um|NRfWiKACY/mc}%$TetuE0F]7,<uu8Mߑh ե);=\PDn7VwGdžw|-׃k =]I|EϞnεd6g&СP7Mьgw[f Hvɗ_DTޣƴ{͈CrE2X >\@* MHʆf8d k&:F|n+i6j?@#yQlMJx?e|\: Sc$[iJtoK7I?72ȇ''쭌IًBa<%ūүVGN'w& *EJ؉\Y?ӷod, 54u0J6Οp#w#N'R5MPb}FZa 0 *QdD AbwH|KfH[2L|EP.d1 @֮zt"F)jl)`MLBjbDp9̴jC\ c,5k׈n%2`a+4_})m r( ]xܴ*ádHr.EcuzN(HV:)U2^ͩg@. D><<=ښvN,3"r>b4M7G294@+܌}i\Y}\\l5|"tB<K6hp&o3&5#m^Ԫh*jux?97=<=;Sr,ݿwW%;::<'˭w<yD3kB<=9-V:W/_L øG0,2vJ: 4Bߊggl}Tޜld{0eN .L'#@3MknY3@~I]d1ozxo0:+X9@OQbpLc> X@3FИ$d ˈ[+\4ź`'*VP5iv/`#J jft=ʘM_!e!F=t&u!fzOh0k" }Xu/Kx,nWŞi|Oc'ĵ1l6a?p1JtvRqa%Ӂb>9<'T9H%3|\?Cs7e#ڃQRޚOg!՛=YC%EsMbز#crf]&,ٓJΨ[(BpN؀ ő8F6=D5[}b(*I͔W`n,UwfFCW4rτk}\3(,0U!W#^ل]ʰzI b^QDs=SBJFsͦP=mPQHBfÅw]>Yt>;J&X*lFqhͽ KiÑ^ )MJB\wE dL 7xR>m,GKtØ.7QqؘW^g&VQ>p(|\9iQ 3bmJ[i"TdlBZIBd@#~p'l$G{7K=)_}|bװw:j%3D oHl d'T KZxs1v*m sH6NlٮhbFDb4>' Q Tɉe 4c|>8Ɛ6ó~x=y,QnQxq5t!@ 6~ cZy(0h1u0kP1P28IUhQ+ml!ws( ەZ7>gbvh站,=pu:eo_L|2 HUrxp&D@ְ7Y9tÇw>z93j9JXx]_hdwgz=@LJH>IEbllhRϔ'-_|,0=W\Cwv=}yyy!  nooqTkʨkhƆTv-o$PDHk60w1pFgKI\j)RAjjJ,2~V'}.y(рCsLG{ hpa`{AoMgE.c7AsȤV iOvD__ozQ3^׫ L7Fq.~#W9yp_o@7oۋsɖsq(*qomP]y,@U6 "8$~͢j Ic飁a~@gI"۵eͅ(j:n_5X.K,}Zof9aLEgV/8R mΈTqyh(Q]lj'J[22;˸EޭfGX/x8~1&jdm+&sJLVh x)d0މτsDM\q*[2TY!H6%]~,J1t1YwuTRcl˅,sY Wv=R 䶮$zNvo_z]+6j=vcy{J.ixE!dߧi/\ tmi6+oXpp}x`aK*}vy!<}J&h..4@BMxf&KhϤh1 Q^ ]L.)H ܃и.ɲH.0"Ǎ"^!% D)ՕdjYF;*2/O ÓŜM!&+L@liÛD"}Q=j![hln9NqV}{&E-*2k*ֹxJcN74*\,%0*Qt s4|vlLJuiyCQ"5ၬh˭2n`Lbۨ^ۛAZˣ>w4x7f߸-eLT~*kHZf1+O],ԭX8x TuDb`f\yX ^Ӽw۵N Dq>:6}zhuK|C#B j*h͡!!" +6QdW)5ʄx'O49&mܶZ(6rv~3w?.?r`ʼCy/*,Hٛ)λu{C)?Tt3* .RlM[X&0#bCӉS4'{ A6b$"km$! ΘX Df5N Qx7TYadJDiQ >o0f)"IeZx47U>yB ͤѱ?/hƣ41j9 >x̨R;Q^!>L'{6z)F\HU6`_Ű? *FCc0`x ho d(Mƪqs]ݐEFFVOyH`bwxZX+*.F%t BQP6ǥ>ZMΎS1|cP&k ր >"&:yPJyJI~כF&%,x#+RilXCc8 rYގ]f#!eM(w0?FMC}$|VG3%ZwVIJi,3f5$gݚZqKT>JE (AO+G`=C?mڑ[ZBph[D;wsث#aB?k*I;E0t6IXjěZ&ȬC;́ӛ8)׸r䖿鸒R[(*chFǦ)[,yR50Iqʸِ9}+_~)-Q0SڢV~hەn=|_FW{t340| :[Fͱ7mu6ި=0@&rpK -vxIO[rrtɱ4.V>+NuUmn˫+GOK6x[-UObE䰮]f.F)5Y;'.P1R$V̔Q)8qpL"հY@^ zFKR Б4k FK5*X O.̬(N0K,х7ED/hP . EL+ҩ5#OZ cLvl;h6@Ath&[Ehِx,;[[D{`T5g/( ֋T 곯./2[(ErdeSt=yVoK=|DY'VC >e>[ᖤw}鶻/>-eTN̈x\g|6L7+"n'thPo5s`ʍ裏E4 ZPi92;4b?h /QZ\|{I붼~(+P"4}Pt]_dQO[+AgJVu|<%DEk )h+ЬΡRX6* dc&A-/гK e6Iz*y6j*rY>;E*\sTY7{$Jg :t@Tq}rNyl.5,JёF%㛑DC}9EJIIVX*!MJBiBtfy %6t*Yqe QMitJ7 BE0|>P~s!fz.ckr<-wݴ4* ^3(ImWJRӚuo|^EyyDI¿ѕl:vhŜȹX8 8 Mh c5wn^lnsV+.1"zb4QMty誏j=Jgd p/~Ybz3EJ8b6_mjkryEwh(1zFʬXܑo+ͨH__\FLO@צݹwSRӘlĀ,TL˹uV5պ<%E?P9#6 <1\w. JɢCgd@Wa@W ]zXڤ"\ `qyyߑkm.h>D16\7$9 G'gCk IDATZ= ,_WoHp~O 8OrY6|Ӥ}J-6"cW_ȥ8?-IxX߾4vJ3*$jN c@(ʣMYwMHX:.?[ 4v䵲֬l^lvxϵʃHqdw=132DuqM4*TJ*W,!2ޡ|3YN-¹Fs d۪@P5êȵfK:ԬdFhܴi36z$i^y¢.6=p~#JCuJ vZ+blyp@e^֙_ASF\oDz*5hs5(3YkhtXݢ-}o4ѕˉ"]~'?ٙ|Q+R#a8Km}4L3-Ԑ% \?8ghZP4ZߓF.gg49bA\sjArFTrp)D05+Gߑ~wz_g2](Y`<9|zBg2\`LtqWӪ<|G#vM]g՗_Q(|y-+HЃq}˿+:_~\vJrHAo1&[rtDs?x!54xDtQ`m3.q+ 4qA@AMF=uɞD0])4*C4?gB4 K9y^,+kDpI.U!%(s"G1Y ru B5m`0|Cs_OI!,xodbEFDDx+jdԚ'tɉ6[st:M܌8@T˽Qd[[rpC|Gh4@GTMFwvD_};prXR}q(Jzdf1 ț-/_{D-rlhk( /ⰦQx\]_p2$ Eʆ<42P|sX&S]W `]6-hmɳWϥߑ}7Ӣ!=={+''G4SA#1Ť~/lƤި 1I7ܖ8z%i9Dbii1 MuxlAc\zAW&i & d8P*մfTqVcRU6J EM"#v)لUhkW{ҍzpuIH^VC 8.\"B`d fV,c"Qht%Su?5[(b:u✃ ;.YB@c8{f6Ћ%& viUNB;]Dh,R uM9\=}4>z-ƅ*сdXU*2_e{k1GҴlhٹT/zk ${۷d2֬si?XꤩÁ8#`:ڔ=Ў]_'u[ ck ^=U11i. nk$50 >9PFi#fSQ--$ D5@ODCG6U2 ,5Zj2-teY MԼZ߯Em8ڠZcm}"Ʒ&1ja^l8}VszX˝O;.U~*&<՟OM(fܽ{ gv{,SCm؛~M*E@ {FJ7ӡtЇ݆uiJ9a쎱)v!I1dI./VXu!R W? ?x4--A^~$r;eH뺒c3t;τbDJ?4v\\Iw^!F:^'%Yu]]ܣfY!ERƼ&0(RH6D度&# _aq#7|iR )O8e0f2k:/?Qgº壁.!1*hwXN"3wc"4l貵61+[EŤwNn4, 9ّ7oߊCĄ!@)P(Ʃ(ss5CN'R"j)) "љ76pI#)GJR%c~b7b*-TG4_sVhb5[r-bNC\9G$W%_A h(uvG:({c~,h8@Ҥٹ(8PkuŚcc>|*K[q{CkZ*?f>^-h`qD߇YAa)JS?N^GMQTRsN8QaZ!^Oz!y' R@&Lbr砸̺UOzmʨ"}oGVrY͝5X^̯W-Ad $4`$/d46 ^ѻIE gdnor#bb%a ko#)Mtǂ\zI\h Bb+*tzrݒ,`B^j,{CA+gυi]D[g廏[1hCH2҃ jԩ)+ _n!\ ͊"I3mI?MX\U̼&2PFj(AVhT$ gErס1+d,(R g̊ZB-qMҸ*Z@59hd͒ (&t \>' &󹬭nu㇏dwwy//?ݓ=i)^Mp^bN*`$VC3B6l!*ߕ6[X07ӂxttK`w_:.)_}5K#Uj'nt;,׾*iZdA~C9:<=)Ez:1)@B//D޾}CGȦ(ќxR^~#/^=@;.bQvvd-.(L[`0\A3WD4B~@P5Y+5(R5f9x*\$S6{±Ć@\̬ '>¯YxF3nM}(;ka=?{HMCJSjzXC4{\ 9=vkU%newgWe5H+C"u+iM2_4á׮ 3Z6v\+EH֧D\y~d|#mzQ|oƊF13eAfAEj GwX3wALJ/`EfjCZ6KDS=ٽӄx*ia 68o$%Ez`HMw7ZF}Um.ČxbKY`0,|eg*{?sZ(}C6J` ڤwJ)K>hZ:KmP9FrAPaFkG/Kͻ'aExz|i{BأF/nV"/+Q\u%.G$"ƦAU)ݳ +{wUǗx_?)ɮ((6vQ6x*j>N{;o^{;LX>'ȩچ4 )4D%QӼbNT޷Z3%ANM,j^_s4p0WȠt]rnBlq;7Fxo̴Aw Ӧsx*d@ ˼T$/D.uj V"+Vw4bS}ْZ@~F=~yZj({y%Gsm`Mif#K @͖=f?װ&sSlk:m(N[[}"O@tM6jVC./?Z JaM `ƻ䎨"TмX8N(E񙹺6DSȏ'Ct-f*y,q-&6[ӯ_Dcoıq%OW/l$GW3(@ W\]3fggWo-Y-,B?d!  9={.9ݝ==n(Օ #/ٗ$-[]Ijn-憢x{LnFS4uyt}gF N(Q;c\IG9WGrzzE<h۳Su<y:=űFm , ;3Dm@77Dhd@hZLfeJ%%m|+r]g"m-#-:FD /sR?{jY.DGSjϗ3MǒDy`h=h XC4zYsOR+iիSZ˩jqUkh3/'idcq•{lԌTyjE/Լ=Td\NKӣDݛAMW%GCMkRގ~B>JF;tsƦ s`N4eps-74G{lPLn֖ob(Lydl!{r1$jF$1epq)v_>zX]yꉌ7fZb=7/IRTe<ɝoL7 X4Mho-F"|&:M0C{5I\ibRn41Cf$7$mhb`h ZNso|j#̐f5ʌׯ9S}-#Aи~W|)Gl,4/뿗-/`P=|&M hx<ѰQ15pMJEM~9t|ݨ/iʛ7r}>m篹Va>`K 6hРkNOC'ܯ)£z{8lS +0KGcխiE"JXU&@IX.gC5h.a- qhK58imYtoITJo 4[AE9hX2$J9:'݈2_94Ky}%X:M)JúNȠyF9@e L tb.ا21Bk$NJ]1qxU##VRFq/Nh0*iwy̮+,K4h9N{mP/R RүFvru32ʟC]wA GW|v,_]uk1?A3i֌؞\pėB7|(_}9<2mHD2QZʙ\9vHW Qt+?$(ޑ2f0B|3gz+V=I٢.믎(-ր҈XΚkm4^Fj)̂W`ߣ;ğ1h^|>Z㕺ԗc6E0$S R\웒mG^ʀ|FVZ|c:N ]pиƆh٫~Q+UrI8}!p.;FUF#OvA?S! v)P<՚_7EPK辰<ێ02;MBod%ʼ"΀ gD-6* RZ=(qT&,΋z:]yVfןa/A( ("J9㯠VOʘ\ لީ&"ҤFHW?0:ljVc8aQEZ[Fx<\ߴM9\H'MVU$ܻr~u!W[Fr11b&׺¼ԇ~Wj۞y2{bM9hL~_*|4rIQS-+QDý 6M׌5T6Qz4VNW(ġs%mFd@i?lрk65ðfA:gg9ȹF,w w]zc˱D yae1M?yun pO-.e^fbMƁ0E酶z^;4IJ. GTWS)H u0B{+&dvBI(6'UQwah-9h_=5`3F3:_z%'ɯ~/r]ldd(T"7 ig{weِj%?Z/.I_Ű鋧2ڬ k(Ag FZj! "#Yd@i">\Kx}4/^d2A8>{.Bo]#ytY/_?XrDEI(%ͪb^(pϟ M(택|տʓgd6h;,ꑵ J2ch/_낾ڇ5Vrf<s=O7_s9>=o?'''9st&H-`aS = Aj԰WCg(!ъBJXP=G`#4ؠl?ivA3F M[}4kV78~x`#94k fp5h+N{KR~:RA ͊ & vOHՇAMNj*axkN{:;7Sq-󿖧? W-s-USJ҇" wtF2(QM)[ he`Ph^;F.}FD) `rHqk9ݛR68C҆+6E|U.x|H̤B6ȓ]m|c4Ky",JcK">h7Q8$2 GYɣV'[^oS.PUoZSaRzV{ȭByat{xS+ߘ8C}Nj} n}%5lORU1͡7k0|nKhF RKȤ@L%G -MsxGuWFF[_9ӂVf2䂬*ٛ $DuC]zW|@قCQƊL4rݚ)|[YQ=U~?L)NY5֝/\.|V5$?4Q_3Ib )sus?o7tOFr YL;W*o`bHM1{ _/Tch6&#d!ߓ@AVgzB}J΃!Ơ)"Kꬡ`HlG?o?ɳ߃ @ p&Q6i#)F9vUzMyH(#QB'*@I[2T/UϾ<Rc*C6p9i6mJgFFs+2:sZHI{=mUԸxM@ZPR y_iJnbD{D6 QVwMy|-]q+I0WN/uL=::bkNt"+Y3׳5Uga @^i,"ЅqB`-6#vœȧ58b@iF0%uk֨4d|mWS3'6G#E"86O3H;h zlEXIfiӈiYUr~N q$sLs5m 2OGohgWTɺ(_?霚Pg˙|CdCFF- _04P*}0rJF*2޲EEa~s&'77r3~'Wd<KEβGGg-Yrq(z]5;BU&G_pvyJb%WU+.ו63 Bk*4{N}@@(= Wpuƾ$crhz& ]8_B 5(jHb _hsCspoJ^k64iƸHI=e\{4p3z(ꖼ"Tc0:⳸HYi6 hp-VruJ:ޣʘY,%[ &)j2CeSQ!:lHe4{QҐMՔ#/Kysџ<^rpЍ'&;YS˫&NXVl5~}Y =+J+[0͸{Mb`lJwa×gI}Z`$`%tMR:?{Jkg+z>=ƥT2@-3ҏ6Ce(Fsr!Eb%*͒fd3y5?E3Z$`b%ڜj;y f|*z!OULa6JȞF*+V?ɕO>>& 5/<3-3~6EpϖJߤi1/Chdٴ9C7f6'`nFY4h`a&v=+}U4OFa Pw.ysOIS{5w`T I|A6lbE_#ȣ_Ⱥ8N\C)\KfHZ}Iw||H+h("X [д>FmwN]-P]57^+fkWUS.njusH^{ i(ڷ.2yv.//fr=VwjfKr$wN#r;;R5:rx{|RxoP4kBA L?_nϪNը2ooF:p#iuM7kF 5)NC{4\@`|K2RzC@r0A5c2 @{5lꂹ[yve .JUӳSE7,""%i6pd`(/_Ǐ?溌(EC |l*T(?cS[ƕ9g,_LG#K8y҄%dyzm/Ŋ{j0 FT rgi^*˟ҀGkgXy4n Mp^w $V9Na.v2 (B&tr-iwE=FmQ(M 8j;qAO z3|Χl2T롁fqTη2K ~&Vnl~&x$Ȧ7!p!q75%=U݌Lu;$DLFV. >ղ@ [M@*7 I/?WE[mCɊ$!+ 9epaި.=Bu]f6h}/< Gpʸ E E %vJUY"Ę}__eYobR`EYh%BN,@n(1V0vB t[螯`J@ }.M| 5*/6*l!,#R#6 n ~@(@F$csn76s2}$8.'sѧ?t]ͦAQO@ _$'qt#sE|uh*r<ܕ[ªqolBqӰ<7ܖĦ['JHԾSc9,pV ÄxL)e1G|"`l45TP^FTrJͪb*"ǒ@gDLfeJihqbA1EIի߯Α08*z +s9TINH5h# P}Vt@'%o4[M6>?;\ЌJZa)VIk D ca8*l 3R9A ~G_Et<y7ȲZ(_HpPpߕ'nR[ Nk +l*>)0T \FDY\@#>oM, O%d^#;C6z0퉢,t{w$k$郎eH2Ě@ \xh"ʅ ;w͙ЉĒi.AſūgZωݻt;Riu{rvq(2`ӏ" tFkms0 l )p]ܔwOe)X XǑ h!yTgc.hNrš I@r7" 0LC^k ڝra( C(rRd/ÍKeQ53ܖT pVq Qtb0mBs$=> Z-wd5RbM9e&Kk )J5N+e7<3}bQ\چ}z'[ozKM`D|٠`g:Ď`fkQ@F5ptϚU=Ōᓡ&u؆h-NOe>_d6hVcfYH9-&%BG3]O'_-4e6h([h^5tPX6DL+0`(|$IUP|ΖN)==0< .9,7,8u"bSNSXi}Qb1H%);]JەX])k6:d)iK ޾>}KH4l{46γD& [!IjWcGlaݕwozs062]Jӕ<!NH{;ݷ߰f&nmnx?M(sggͷDA'w.31{RnR3 5-xgDa6"S(۠[IgÇ\HQ@;,Iwx Q;PbMZtw0A+߰1ɚ#`q.l@J|MF|/YuES3j֛[|HKnL/ޠVA[dOvd8d83ȡNl(Π{2 t>~#:QIW0^G khud*A)hMKATNz*_/ӧlD\ksWw؇63SAO'dñUl+EbaPcsQhB&YJ0jI{mdryK%0ͤU=l6⨑cCZXuD6kJH1֋s+k'6ЈnѥpЄ2^meY2dvֹ:ů`iHi^[hdP3 k¿גJ CsYC5V~"9K `弹YP|Pw:$X}ho~`#DyԦ_5њo3:BPݎ0Ac ϓZE_0R"ʪ~LfB/5WX. VJ)(X<@j) l[Ig FS&:oVUmZ굛[9~s-uH@u5q4ַP㟪ŠXUKIkY[wrquE'\?7teG[ t| Ooߨz]peDVp Hc![CSb Ne_sw8 e ͕fE3`/IY,zm ((aI45^48~s7hnӱ?>jh$5q T(x1ͩ E*"fkiJ:cnd;H}MS3#(AC㤴 SͬV ZDь(s+6HV+>_s-ED ӣcYLgbMWjC'aI?:ICQ4AYYhn]x>rxnoo|;ME ?cso~TvwKщyAUzDc9&1ؠJƓl|p/5sr4q4\Gl\K"{j䧟\!3a 3',fh|m2J`gR^]\{>+P-ݻ2V,SWnGktmftE ' @qߏdAkͷ~#-а}܌h!yƭyE<Бn7pВDJ;롿;fRQN]!r-kce+Xt[Oh|AƊFZ(@t} q40ݥLR>T>]]]krU]>om(r}Rw童L&#ijt1ý&:cwxS/W7Bp /s^h`rUr=3!Ch m'K ڌ::9#Gw_iioJk/pfL"96)(ʖA=jGY D]+.¢殬+ސJ պ<п#e.DH)sC "sCǞ wmgf͝>bFC4lfaVKNktO.oheŀ{2L Y5vwv6W4\D/mvz|>iJ,q}xp7dT\jh[QsF ?Dνv+uOr+Lbr:˫ >Y^i4fʣП$q]?|e\7*#{RʫUaF,7Wp1m^H9b!vwAg[]Ld-<ޟdK\mjrhZrVrѦ2x(`};٣^F9m@ vmM9EVn#AuiھW[`sލio6V M=59Z|?FX <S33:^A3גim5}sN{n.4z 3dJ94K^CiքF`4#I@'/x]-]n>v o}fO?W"sH>}x_(jm[ZxUIa4dۧ}"fHw |Dp /d@0RY.(8%5@B~a^F@Jjl~7ZxXh!Ƥ mzDqw6]KQhFZ\1B)Erl"[&f[Ύ04Afd4meҏ#yx/|7\/9u;j]NR bɅ6 Ft}6\cj{C"g@<_%K Y.F|zI\[4s0GE?iߓofcwgHZۛ H149]B={0[.WJgO1_/Wstߋ"C_dͣinY|ttHdZmO2*?5F#F1^4RN4Q0E84i)I3>B0J:#6kCBN.o ~Nkm)K6Р;S]P %ggl֤Zp]*/\ X^G'{G2=9={ FB6R yZz׺ɔZ?,QLV@ي~$n.rdMI4;ut8+6R {2Ï>D.n3OԢO{1aLA]ghȺݦ^H]pG{\M]m:rm*wVx4!{~ΨÐȸ g>X&zI Daw"|nų0N0>,V  ^z0Csro/K؋_|9:N QO)u66vz:蹣 6tŮ;nǑwNuuΪl!4:NӉZr[V5Shh*DDNlWio>nz"_vFi(@FF|$I)bȣoe9(9*7|AzW6p8:3 '17hX5Qsӿ+k!lZW.hA6*3s0ފagf&EYx}x$nԃRWp7x!e[G;2o&EAg3^agryo!Zaeo9qȞ-B[XSL|PD Wa]5e:63*]NYp S$u tpbZO-ϸH2p@W,]jhq "aM':JiN@Nlz@"ʹ6!"I(c3Qt:Eb60VOlry ݕNNSt;?t|)X7BXɗ_ANAC)@b3Uo2f!zMwz^_}KXۓXްjdABH):rv<{DO[y! r5%5PUՔuіp(T!ZNOd oWl\Az;l јܑ7oϙ=H E'~&o޾Ky\{'Q zDN}"&3gOa"Gw2NĀkt>RU35u#||Q^9nH%uvtXLA F ~RKWV'}"e4xuED܂Iz rsIӎAOYiEJ8 DYT-1k"F18-EbGӽѓ}?cSHk˛2fg_n/9v ab6aCT\Q,uٹzg9r4c u4'VQK3D0aRYGFtoz"b""~Ȗ w {CِNeVb@ق WRA#֘}F; YBX4nd­?p9QT:?4jAhU \WC\ kڠjK-siCEs!f8Ӥ5Ko*C?A%6rޠjKb\|'<9"vf9 fXk3Y9J-nqXu heGfTG!F|1@ݕhqcS^,3U QxY4d;aF_}cޝ6Ip3VQUԚpFeb9?~gqK& k#~ 8u1t}:tYH5Z_$q䝥 zDEMdwyAмw4ͨQr!ڑ TQ54ҴY`njmR{-뿣k]FSP5:cTzS_-G s#- ]dy'Y򑈢7Hayf9JI1MLȲP){R|,_146jCgS?A36ޢr`c}ZmNeD|{N:/8F* N 3iCŌTs'N9WFeLg [YG\~E wIZl^Іh#|ڤW5FC3X+IvGHrz*js5,f]5k[% RU HJ<ң ѐhp))Eb1 4uLP,"\}naH+9G'҇T"!3Z׋"c\^^޾z{!iM%z0WO {5U竩,Tqo!YbHTV[yNAK)˅R66(U7sN<(JOGt2μ\L[lJc3Dw6e&w|* F֓;lZŔz>xF7o{}Vq=!:9<| IDATKD\͹܎Fbt\\$Iz#âO>X={ν{rttB'x }AD>2xm^i]aK'57*tL;CiⒶ Zx+WU(ht۳26|be-muA 9ba5[,z& @4wOOF%t`sנ*sڌi6Z2ǏC iJ3gkMiʅ: &|/rJ {ig8OCGl3趼n{)-SX,ppwP٪l*E'ӣnd96nKjdžX:6k.6kdzQQ]G[7VPl VSEŜ}o̝_7Б;/˖Qj=2k v`MiÕ~aTHT*YS_<#h+eA']^?ֈ:_Z6!wFUޣ8C@6=ki ?Π8Q6WESE}# gO(ɕRj w.[4mgom[/B,*uAoCYJciOIRIxm]GDV8n,S'S&X̀Qp1'ygQ80-t}72yQzQZZ8\4dܼ_h^_LE!LJ@C=/ƦOS1䋅MI#̝5^͚-J%gjăCw{U7@dkAC#CBʝZH|l2>j.Ōۛ-w4 nFv2O ͭ">JjkP4&T\֬:ʍU$h:fUyE;Di`܄HS hbEcIRJ bI+e PkH, bY+:zv-Lݖ\f~'2Z$+EKiz%0XU*gBt7kX,&1BG*OЃJ$fnyY)\Ҋ Y6֍%#"i1JC~"'Y@^f %e;mZ'%ܔр8+F /C:a?8:jEzSĸb3_$]gkw^k4d^o~ҙON7~#F򛯿h]bn$m|!޿&sh*ta^C Krv|su2;j!H 9d4)5* b)U3~:rD|[Qޕ8-kuؐi4&+VT yԍPXWkyw h^bȺ(fLwU1P4*64h>k =-Lz;URAC2h`GܻVfJ'A3tEH cILX3@_ 4͂*̵˲=eI"F=b3ydK]"K̤ب^k8ngnϑyFfX7qh!Qy rdk PhtD##(2IS{h]ʖ6)nlXlqQΕ6{96\]m>M1͠dJJb`3Ħ0Cf)]oiL1Jx6Gx1)},hqYWoً_iw8 ۠5Z[|.Ima?M{)8VәR`I;.,56ǵsӊDfez"*JpjbWLO+5yBg4|*Eh:] ẊCfC3iLI NǶdk(F[CFC Q\Cϓ> hDiR1!B\ٔlV=6e$*&dpzނlL +Rpa(^@- ߇(m6ikyYXr<חWRW+J{+wR^]2/XnǷ4|']9ߓtYLy%pz>3Ҧ47 ~#kɚ@te08 BBoEeSTnC4tbt>h@Y;<dB.nd1V{G;rv|{'vv(bd &YF+rh38-9݆W+IրR^~=te*81ͿwvZb6 ih D4ц G<+"ʊ{ [@yQDJ+I6[{2$Tk+˄IY`Gc=G [Q䉧5X{$_qTdWNxKP|OCH6IMUX!/A*7eGURr_雿4wa>ƞlDvBwwXo &P(:>cdF̡-O?k-|Mngwe|{cTΖst"G|$_>^8;Dz͂qrѥS?8lCpx kbD<"?Z{)YJ㉴1vTTXz&{%mEm08=ũ5&?7d[ ~2W6#h=I|8ܓ…tc5OY7۬Ҡ-C7Y99W.nZB!3Rp(wZarJmHBuD+-^RxŦ45RIBhj)"ERa 78 >~:U:B ?ݷ:LQcbĩ99+LC ҸA*ik0efE MQ? plTȢO|NOۧOjFMA'xʇgh8av1 0|!DL$U$V ̂.ޮE ldJ]bv{:\d>[>Vh^UXŤMcZ9 0*e>E7gãS9?wR ـP3_H˥f@EgM]-- EhӦRFܿ@X`hZsٔ G%Ī1S<Cӿ٨nfd.⠌b(!֓SH[ZV wW jM;E#ƣE[N- d 4r>%=5{EMcUXB?ltu`: 3 cĒ"]6qn@ϲV2u%G29H >ە(~%Zs8)ExDF$IK!˽b⎟Pp_x_i"RY"3B9AڠiQ#ЁN=R6+-޺mZ9lLBYA`v0w-.ܙ3s$;2(:RO뀢l9 Y> H݂.aޛ&RÈNH'vf2\]5F "-z^V6Dg-5FB:.mW-r1mۮ|)bZӺYܐ6rW}hzU6W9>#e*sTFfn= ^b~5A=Eg3ؔ!50^*[H:KA鵥L-b>tg'\BYTeaIh5zFn}=3IoKҜދo}^*ɩxe0 o:dZ5!N{]j_VzxaZ&=J5Kb2%? pMZ׈Rs0&fQb1=®gcRK,OkX)u\[# .4j${ԛC"?y R1]㪬t5QAZ󘦄՗݆/&ԇً@8e8$@T\pdW^r\7[]#6K⺹"fF #0Bu6l7҂6|6-E 12R օtL3/쏈pw.V5so h&ѐKEI>R\bΙ, 9PN>x#? y]'cfܴkT׭I?<%kg&$FpЗbU3B p#cxG9q1 t&ֆ9O؛79[WN@~4BK[2|2hGr=mʼn<<>薇]Y iAK*"iT6G8tQƨ.-'S%3-J2G"jMӦf*Y].ajH7][W(ƛG nEilрaЋMU(PxhYd2C!,+],dY,q I9)r\촻70{2A, ih;]&lTɤHM%nO졬䵸)OYbM&Y1,HoXf/yK"hDaݩfr%j='-HZE Y/ZSWWk;;r|r̈ׯ_'i"_K7?l|ASW_)/^O>%;GKhKl)Cl?h⚡36EF) &򉧶9iug7 hlبB /< %7U{q!VZsqq&du@)ZUƣE gp-9:ڷ;Sfݘ(z}M}R./ZchƲ?L,-ނ ft-]?~,G?9SaIo@>|\Nr(WҖ6OF$.lk7N^?׹s QohD%S@7EoVRRZ#64F4يN랖ݳ:LW6s潂曒^ƴ655N<pFLfPd/4^UUEk!UDwPq>qe~E9Ifv+bϊ>`裔~DuQ\. CI++.͝.<5m^f۩!*WF/2q";zjc)41߃'_]qfW_.ܖ2Ϻ'nii[=(dF%YGj F8JT޳7RqԚW>O=`HeQn5qhY۵M8d#dqOT|#O6Ⱥ:}!C9]y7fu[Qcw~jFJFAy6#=+4pyÚ`!aVգ!R_1^#_?xjzh 'ZZZTu]UmVRVhλ(;c7h֭$UR72P2qH y]& 'S9\3s?="+NpFfW;cջn^/")d`o _Ѱ JxCDUކ>9_.PUkF41by`)x+&hzEؿ|+ՄTR5mz޺IwVkF۰8|0i*dJIͲS6{ck2Gݮ^[\=jtirw+7l0QݮDYD1n[*6r6<s'h{lµç i>(wJ)D5⦲2i c Έ==3r'#yf&$ IDAT-{yt3[]9:>|&{wJոksg躓e(WsHWZ@뜃7%ľ'[ksi?IpJ{3Oc79V({AEX Ȑ{j59|fSvAɵ/%d@͍G OPŸ&xx>[nMp8!BZ9q'뉯aPbns G# I@t.qLzXa-]ɓ'9F"zt@G ý,]bI.;SP&WtޟeM3yi{GeN w2.s#;tXH4e`18P'2]:AYjf^aS<00xcΣA,)b987FBЋWHƊY:JATNd[2PDӔh_8!ԏhvOdbrYw(ܗ_+%^M+zf3lP9 13S,7=?kzKݡRmd>Onv-=xvFL|yy]_ehnqz9*\\Dxs.@D5]U"d|[/<5g"{1HOҭ5դAó] @vi$H˞gcN5?Ӻm^/}࢔Y7&iPb7(-dMpꕡUQV%5)' T-̴Y +;rC*]Lv E!xRvtF3=lH}{]\L}sZiPâ }\H@+S-taTNNzS;F Sn MeFAUnDp0e3a5Vx7υ6'| ɋMW1])̻#SRGJfDE蟝c3EڹHWkF9ƛMnW6 hԓ$hatc3qfK~sslo7˙밙$xt&E*|h7#)ܼkqC$>mU=8O hrY[6m Ͱ io"O財sIDV-B$![-{8(5T{球_ODjb$Z)t\_] rAD =sIiBDlhEnDc6ݔg@C| hVЊNW-LGCQ$.y޼JXm5"EluTj*}iPM1=ofhia2zkmIU EYem$yEkXt\[ە  qM/'쳟62FdFkh+tqh:Èu>Mx:@Ƞ~b*ן"}}Z"Irzv& p kyE ^zfszr*k0:|d{us#3O IZ(l.HM`DAjl-b,28}nP9~_!MG*@e;Cb N#4Po\g 4r"ohܗ%/Fl")b'd}pR? aE3z18v 4"ոT$jhAr46E !}LVj..3 n)u1˔.(\|*ՂfdX^Az.//^O1E!05K4^|3 7PPjϗ QM *TqNVžG3isٮ.>&3b$n1HQQ"9vTtVXYb}W4 2W)g#ůQ<PdѻLAP W䔿toYf3=֋ Om/dP{bWR>3suYڎ:톌<FݙSExA˦se6k}њAʆѥ]}\]VSl@_m-]M:dv5nn0bx^~8 }\ZPw]t_C Ms擰G!vZp޽W@L^Ȱͳݔ&JQ>s۷t_Q #p`pɛ&s9'iym%4E䌋B-z/Io?>ߺo-E@D=S+F79]lϪDlWӒ%mMeFNsKtV/24,):7? ,~godm9)fVbaB'MiUUl-_,SCϴPwE9C9,;CoXqf6+컛qxWSkհ ͡~PRL*rQO Ed'"+oyln7r~~62x=w*X zJ,\rڦX5 $89o^bxx>.n]B7RE% 6av4_"Ȍ"jBUs#,kp5Zt@A'BW.hq4`'`\(L3Ar;KY4,wQDOZ v$FAt$5]Wbd{& + \Ŷ& R6Dz$7^^||S9D҄k ƣdty!"Qp0R)E0! >_F%8>H*=>#xRO48[l N_P-5*'G9oۢeN{=Ao'zϟL&8;/S63lPqtdzPzt@{o_^+6*(,t%cYxjQn床Syl"Rd;qkf&|oF'uILP(w>y.s[k:׮U*|,RC"6zEu|oLp/^_c0Id*p{xclndf7~l=}iNQloR;˛܍'Ϧ7󳧒m7q|x"mjHfq!_4lHpL̎hq>eW*xr22xޙ }0&3^f|w#FOjNϢdlIh4o4QV@FTTz] T^ubїgxíƛx'^iSʷ>F_ rF+ݔMCk9[C[l2g yoFDPLJs6_ YiYM;z&2DՆLuvPqm^lR K A=Z M \\I6B!P٬.d5=&Q, iVW7Ȇ!h ah(UkҺS@fm"2Jȏ}Jll*;M:2ꋚ8؏訐-E|(k;]G)(^`E4w Mq9r6 mjטߜm1KܑvZד)s1jvIg1jxhHK$_({R'(F[T*nl4xUz'@ c4Ft_x$,Qhѧ@D Sۍcmk l`x :OޮZC^^˯1^cKݽWh_/ eQk|Gh7;8 X[#BE˚}wu}l&  H6 Zi$ a=Yܓ= R:77M}nONfrgڝT5)ƕ $HkqD3fL=v>f5SVws߉)nn&UT[=\^|~{ܯ׽5p;5&[_Ю4W1/;X+yVLϧ#ō#NǤߑ%s|xx&#>/yzjjX˯{64q 76 T`5n*T joTE'l GAdqE,VkEUh^O'O½jmإ+ j1vgh2 !/urj5]^]^7/&ISә^NZ$+.BoxwyK%5ҕƺfVYT$f=Tγ]X;ed kRI3-g1i~pYY[,Mwz}ey] 3GbilxATxW2װ6zwC``E˘ ak~w(i<{0qbӢOr˝WTkϒ,q53("qmC ]p5X,b*r4CvlJfѕV . ZVkgejQ3ds Z9n`Bp# ̴ݠFFUqcoz`4PV3[smL PNh?ӆjhBw  D.Pբ l94q%5MJ5/rԮN3*ҽLBJ}hfcq_L9Oni 4'&ٷDELv͚2=-(/  R,E.pugxkkW&=d<뭘T[e͓YY]斆:r&y䖦DzdC)rZ#Y*KlKl8}F_nZyed 0'Mg}y sEʭ\b)F7/.bl3T(4{xiI2&RgF4Ό WЎH&@f&Q%5js7 }Q B܍bD@ޘtN@~HɵRV˽B⨪h? fǯd ꪼ>5Daz1D 嚶 nE4fF凘32 j*YCdkEݩs?w =~W<MqxtA%wDxopzz.5\]TFRDT aߕƃT^-hI+zl]C;ɩLg8?餃a)Wq-u%U?};ZOtքc.xC UEuӼӪV܇}9Gti]60g1WX2xdqgZp,t{Bͯ?A^vO?ƣZцԪ_фP>Cf}z3\_l|9 Fd8Oc #K]?tMS`!71vZUP+apq|#b105)=?6Kq{{)~3\\}_> ˵UwDG"h# a0L0pK\}z5F-wUhuv8 k Ӵw>!Ο|ޙ0 nN}7#N1\ [P$]-iʌ 4ON6&v4k4R)ARR/6kY e1J\ А٤?~d$F\~ p{=P 紴ڭ=Ԫ 69#+RLE0*BefĸoEe'Gg7hpA'OL:Wi =C4V;0B!j)X4/r7y]ɋcWujT+iu\>{EwN5Kwd k\.q;5e_yq?x^ierMṶyH"_-Zn}\W9ou22?^?cP[;teJe 6ppCL>B/?q8ŞwUp/G E]SFx9SJ3N*&კ~HVԙ#ٟ.NN+4I JZpu̾Fo5 k*UtnygY昄֭t;'ogd.KBK؁NޯoO jR8,rP<2Ifn*Sļ)+Vl\8CA9Y4$r8*(QT6w6x@lܷJ~Iûa?w?HlyX$)&kWϱwx`,w7IO%RdL݉۬D)q97t456J:UCO@tw,x)O2A46mx9(+Hpx5>Z+ͣ 'pyX_^_Vz%I'爪MA'Ǹ:4?OԨ}^SiIvnxҴ"Ѩr xUd.90JU>Vmi9[]TkmT6Ezx;:C޽SAY Ζs4:i?DՒu[9Fáy=:{fOtvnZ%:ݞҹ,R;GE<A`XK:յ8r]1s\*gQVI_:%J oFQlh i~o=t9&ӕ1Hh|SL+vWA2śl<ǧÃ' WK-ÚmHB[m %sfe,-mS+ ?7uR?F(_%V|yd+7Q!utḱEK7Jjha]Jn9yVCS6BCveSܾl0B/PLcd:@%e^e"̓d7ѷ(?(=U.gr"mӁnDBJCZbث3ʬgĩRKllhJ o4Fm+ÝI:tUPumpI-mV0d5nJmsn*f>4Q*]=o-o-4y|֨ѢI=Cwu/Ch k|,֍R*,4DU\G޼0z tǭMcEqjZR ,o[$a6c W";]*2lJc.?OXz5_hAXg7$ K )uּ. XR4 X/( iK-CmWk}-I&^`}M5P'~zW[iRX@dFd .^Wk!>{$TrGm3x ^$ո#&hWOoSNcB PhtjJjRbŅhI!H}| C(Z3`ȝ[^HB Fש<{ "{4 >pf -8N-V1]\ 1:6nozƳv>.gwxv,nm"[0>/";v ?>4KC ƨVMom %y xt;G.PSRTYUOh1ybz'$?*py#0#IpzG888??|}{r_a|"4]j_NdpPW)_+L4MYDZ%%UAטC5^u $9>Z9jTRiHشPTVXLvZ\`cSZ;D j㸃 ֛Fj6NĤ׮B褭z! +ܿ@/ 6A`t{0 Խn_ *N`\zHKKʃ*`||%Zޙ A|c^# |A%)!LٴCgD19> 'Bmb`H:Y &VUQ52Y| ㅨ#_R=ՠ|j-sMIS>E0u@4w6]ړs"=i \LQXщm&hl!1_l PΓ$Miy(ZldSy7&y?Cb/OlN-$>'Jq{Vu)}fV/q#+\Ȍ^ߴ0 Ɠ_jbog9'^ ⪥]Z>4ΞNdYS}famA1@ێn,P̐TlD n ( $3P-PEGu|X_9eWJUV"%.Hlr r4S\Iui}K)9LE f(xkR/o jBo25vޟk s:d,d^4yuC<&=:567Vx9ٽF=w?\X^ќ]t{A.ѻșLLJj]/xiź/uH箑"0OPgom6X4,l7jD#oԺGioV4XmyIvWG wa3OR騿(*f2qv1wׁ2J-ST9HXlQ#2&JZ1 oS| ^CwpGh.-^QG\xݍK/,O?K c>_VhThidv߄s ͎zx1L2)NH]gcY/5Tz8MШ6*VjB:uGlffz5 D+wE)<PQsXd5OD aP|: :c A@p(cOwPEwT@ <jJDc3L!<+PT"l#)pMkՓ8lⷉd si%J3Wڇh7ڸݍT ^+`tlfJ֕oHg2~ݛ@(ߤ==ϟc>G^ l! 'AUHf=%w:dJ+M l`Ѩ &Ci'pxKOI *ZXjꂞ+L$ qt>?"z=AJw<ˋ hVGO}\\(?ǛHv+r{5bCɡŧ|*rCrxw#LJRАvY7r8F[6)\m̔ee& _'''U>5f iYȔ7wCTl$0})y!?`~%odͬqGTd$ZҐ[.xU+(LЪq%Rc ]NSvCYgVEiQGO0{Ou1NC@{7j1kws}S܍8Ltj8>~"{C^Ec!_dhIy)5f6:ؐ`UWN.Yi BC,,ŋL{En() †JŜ.TRK0MVn["8ؔ{10o!n88ܗ Y#~0А {u.dpx$fpҰZTƒ{tz8{B2\\]Y85RIsF߅46V1}w $)0=,VCRs"Ҿ_(ZVEq^6}E]8I*BXs{EZdN4;59qh# h`ZiQ,%};$<'kp:N=Xd9煎ez65C%&^ sAe=\kVZj@Cw%* 9XSߛZ ,oxpu5[Ƽ;ozgۍ Qdl֦3Ÿ `E3)+LȠU T؀w t%*vr]Krn,ߙKQbYΜsq.c'\yf-LCZt |}kWG9MӑPrJ" Q%,-'ŴF0*@XE¶W.4:gt`F`Q:ԭV:tPLO q׽6_q ʱx *)ęn=tq臨s)4w?&;ŘoVxxxO i`1"kA9SoHdt YG6[\5Iacө؄gh!*Bppp˛+u$Dk!Z%%#\\\ɔ4ij/f&ϕ''O)Q,i¦օk-4GjrHu<|s# LޗqΈ+Cε<MT ( ,mܻNޑ TXf`=#m0Ԫg2c!RjLvI\͓Q1I "^ib)H %Ntg`9;ymi"=jqWJ`\tXkxi66 E˲}9e [*<>Q]h & ΕSَ6 /u:;t+O{EwM+k%3fr69Kp"&ę0V_߁'g06i3]8/ct0BXK.?3-s:+ i^6U14 æI*YJ5GAE]\zt蓾EgF9Q;ph}i[?!7L}ՕYic$5\>2pԭ()mݪѽߚ؊Hp-)~`"w}[?/ń0o\1O&i1 W$+aE" ",fW2DᑠˇѨa1_a/l2\ڣc>opy6G|GGy -q;8H`< +ƹ&bFĿDєžħO`2 ݔ4L&MaL%*$I2֊1}Dĥ#5̕ ,Әk.+ZmƩE,D ż|j@faq>p$&V Ց?a-^buD=ܻ/tFsɅ8:y a-&zulghThhljG ujmy^n/_cXsA3Vdө\*eVօ ݨ`1c-L$AXiF7Ҁg\X2qT FE[fG6hfZnzE.6ۅ:J\ArJ*O}&O"56S="Q*wRD՚ e(%I*M^Ri gPH c(A+M66sehQBu Z#4i抚@ ^M_ s.zԳs`)2X=/+d~Qg;MIklKӡ3D\Və^/~ Wdž=8r ,cL!kD3,W,~7v;iɳiuŦ}/\cdTSfb fc9{HCj="X iZGa~>/N _}◻߼2ٹK(ѱg|4 $rpm}I$oх˕l${ے2vŶ/Ӆo./E{:>R("M/CO0nx>7i'5ܘ2Edf3ՐFtJsZ#PDb[sT͓|?8 lS3rټBiT<AAd΋:YÜN ԥFaQT3"]CYWt b6|t*^\^ο]m5R8+ZfZ.jk裪&= #,nbJ4rx7DJ%& f!j{NtZ 념FIsFmU(UMJpsqj);N`4[=;9$P >G~ h*͏hFM)uUtf^ pf"ANN7zh:2G"r_gOB${H3gBs†K˗X]m64)4k yKL.tI|#N4!R9_ $j yb?B=<<z"Ӣ?אI=7[#hwC .z pN%/R,pC9'Xh6_l ^2E Coh7O EHNb7K:Fwjd({9ʀF-2m.zV38BElu92X!mH(PE= ˍ6 }n]1-n' tqs1MFz2ԦKǩu T=(>z(xTtM1jXF9J+4-zN[^)} xfG?F)7G({JO"P`HW@+Z&mt&Ɖ u}lkNojsV4;}l:s0k\=GqUgͷ, pَ!2P?{~s mZAk{UK$C?? DsHS)ܐbjik f8l*bDTHV¹2b!xw-5*JR>h@޹ 6kffk`M%4$*Ej µ%Vj  &V8ݣc7?1f~% c[xr~__^5&͛ 1jXF:lL+l>b6ѹT`/q%Q!←BhT#|*IJިe&rҔqZgQM2#sς\vwOLLӮH$8>=?>HKrh1pqD3E#*lzΦ.؍0GT1qMϩ<Łַ6De{h0C R:zY!p(lB=U L*_2Ngu!g&KJ2 b^rP6f"=Vû:MJM(͡126oeV+5n@MEX)21,Qhp %S Zb$MnOrJZKh?tfh-o)BIΧ,#PJNNag ;dzk,"{8?VGFVek]x^LJ'Oވw=kƔ7Ͽ|>`x-V78;;p8!i˥w>=9}^sl( J6l~>gëׯu=??CTx}nI5]pOCy ސ<@T_|}v:Z9^<&͋ݤ^tPf0VM)[ x:C6u4I>Dg_|W{ޞPjW~_:^`Yf0?!Ϟ:F1c:?x7p)TFp4EQot;GǏ{MݬLH%"կUaCsO w/ݬG{=d DXרP*:=*Cb-LP\{Ȟg,6)MhBBs$Sj٫÷IZg.pOSAyv~ȎFCAzlgR l)o~n"f [r]e[D9!E4&|Ի3E ()\km__O;+%S1,sU`GZδ9O4M\N"7=wP`yVxm4J(T5 nÙT"E |k8B+jN;5LCv4?PƁ0) hgij*Iu(p\Ӽ͕ۜ.ecPԗ3}U;EO#k*٬D!Lz"w,伈3rD pw Bzͅ˧"ӱ1<[%o}e;Mv;Ei6qطJw5wt^lB"s1,c֤S#2-Чze;Gl^i=rp}vWf9k*EP|( 7oYgIM _[~, {n^)ؼ?+5,s)йfٔ׬1bXu\)fi]qkKߙ99MzvXK4wN۝ Au9KNRVV]tcr#BA$?*ғ:m2? -(<]z2 Z> Ñаd3g).V C $W"R|).pS^^I ۦ>s67.ANpP)KOz%WZKA64YbA#4kh s.ݬ0c&|E0;t^E@V92jx3mc|q̳ZU݃\PZtÌhNN}h+5,@:F|1WqMp[UM9alMKR&#\A090]jt"+ &5^Iwf<\o|mnbВN4qH)Ԥ@7Բu'2_ ˭7tL ["kڦ`(ZWj.׫%N[斯Gʟљ 8l1AHhPIx--t} ٮES*2,4LŽމ\[FP Q?h yrnzWK{76艪-hl7#L6pp^>/x7_K/ Yݠf2i% 7h7s7Igfnϟ}|/H0ziu&N͞.Z(V Cc7܃VvvXLU(ϗf ܽsAI/T3* )ԦvZg?h8nG薞8GyS͟{hMU@7"u-ժ2mpVg9&,3l1c43+ dH,vUX=<=6/9_=; j<KEƲ6(%9 L 2ZQK Gk+)UauMYטqt$uv'f2&jc?o=8wsL^ʙR5 es|4RF"ԩQ{!%\IMBm>nN"{>)82}k5_smiHVxާe-;؇Kro Q(^k׌*^}t]߻N_Tkb 641N^o=se{2]kÀ=)XBL3 WYE9aaxT;Zb#oS'(H8")l>GҍK(9 D+f bauݤ:^#XӎP, ,<{w/V#di8d nQB'sE GvOn;;:w.O|IW_ow0T@d>LjZr>P3w7p1;Ylן-5kfdpLnB80)D~ݪ6 :;S{,ydA651ʥŴ0fHZ.fz>&cȜ'2Ἀ0Y$oBI۷fN&H4r-.*([w>:ŋ4J'r*Vve)b<|n"xz>W ikC}$3+҄Yt JG3~ IDAT`jZ7E/{3W_H:~} c!e {ήquu3S=?X(gPo~ ř˙ݿ-9ާsCKwpx/sCLΕǛt: ]PߜblH'ODSzqnr/mtwt=9Np/S$t%-t= c5|QVBa1-ZOh4%-ьfϘgޡ|c.Z蠟G{ã{OuX/q~v>[AV/zYϝ PWTM=.x^> D-b#dY ./nXdҾ\kv:=!Z KRCC1Q=lw*Nok;hQ0-tyKb9,gg>mÇl`YE"7F°3Mr>3 1ʝ|#Qo[aͳMi뼑pA>Cr>qLtϢ4#j^)INPTvތqnጨ&&֛R|kƘd]143: `yCfniK^Nb,qX,t5RzoBJY7cZ50.)rGφ1`q2yQEڨ~B|Pi(hZ oDXcb!4֢JШatʪx_>8)y+-< X@-P_ׯ:2)M:HՃW *Gai|5n>V%k j𢌱Pe]9/ aj+3}.R'aSz~I_CZɕ{6 VD+$/!UvM1 ܙE=2+\H}biܼDWcxVEVUj%pDYsk[ˬ`+Fm Ged&6>LRoZ /2IJ 秧Bh^|DĦ+alL M<Ã8 /89L/۷189XNvpy+  nji/ Uַ#+mg\P6n[[۸ _|mPVFzkJСt$ڙgEMIc$ÁFDcbFLY0"rd~LV:56qw^ q|Xӌ %HK-7bFF^, %c$bjZiΊ^;MxeJTXzJti|nZsf3?XAL9 0 d,ݡ082/f`<_ i6I<8 vH𹌍lgSa4X(q㳚X~.]6ܥ4GmF*ѨbCLtwu 6m-%K0ҥ ߳9RjO-ײ~6cF̫-܏hڴy&Vm|4kxt&c]~tppxE֐o"tg>|ftf?D(9ݹ#cxDh} '|_Et6QΦ{=9;;8C\Q9P;BDn:mxa{wOհ|Bз]~sdoI$5l92P_Gޜ^h_zh&+̦fHZnh^W#MV3\ dFiѧ%61ϖ1 1L}tl2W*x[ܾ{O=EPaHu,ph"f\G^&=5MgDK#UWui(/ '#!,N/-^av'^M,MRrs->#:1),8HJ+~.e_:$PsөYpUIoK1s31$24,QLg Z:zB$_Yai] HD [kƹ͗sLf ׈+t(5%34xeU$vII lR:ƨbpP 389-eBZ;h4 ).JMQ+_hengǕ>5~S{,Rʸ)9 wpl{@ۗIt 8rך\Wr04Jn*U+3|Pi7|Y9yԪL tk:6_3l{0՜".W+l؁OyDFLet\|m,smWF.Js=9R8ž +*Fm Oő %8eNm:sR"L)d3H{1$h[p?EuN,ִɶ:hcy$qzrha1$wft%JjAs3]x?H"dZ%CZM<95&DX!ۤ籹 O~YCz||IaU,, ;✹nِTs%5Q'Ҷ@ + \#&Vj it)6tHvd2P^ul{I=;{;BwY\N"e,[bwcK:ԁ+ gfVԥ#-ySྐྵݱa 6'%ƓfBkERy99<|V{ގ]cQb-= ozVg 4-\_a1Ff(ĜpFVEOqqb]%"iv;}9,C ON,fŲ0\)DE'?sd)Z1\/psy>6f"d򜮿#$gSi ˅1$hvon0eh)2FGg˫ Rec;;J43VuN~I'CU$9yNZ|s^tadR;p/&nrIvf8T%}(,K@d*Uu>j?>'ŽXeal,HeVepbxy~`!Z.Rn¼sd?fJh`OybME.M8%2m1,G2W1/Q㚻F՛DrǽM[nWuQ:,ܔ!]y<БÎ]|OnXHdafUriYWn0J.Zԃ!”! ONBNj}9_`<VZ5 $OTE):J׉XDM骺i->(M%=dMWl9V%SsβbtmMvƂTZcq67E{"b0Jd8cQ?t6Z=ѩ;T4΁BzFZM#EOh57}<LL )1q:>gcsgS qTx3ˉ]}>5Ćӳ3l_~6V}px??{$˗x1ƣn/~RE%跷O->ƦثqC7oe6W_ZQ5 L.n B\KwNCBfhp|瑆gBC2Žt^b6wE' f::-ܺ@h4@ [NԜվbkUi@d"!N2C<MQ0/ /@+޾뛑=\]_k?ܽ{[9ҍ~[mA?"`Z\KؼY cZ7MQ@dHM 23SI`\ѾLWcccC !i+ 4XŊ㐣Gm׺B }Fij`wD9n);UMI@V G0[s*fٿƐrt5߿:l kܳoyhA\S7{9ȵ:5] YF8 ڮ׌\/;5)פiudSpY_GU-83 zjvg29Tf0C5fb;րݷđZT=wtqIԺڲi? Nq6k(p f=$>v/4E>ZN0 _a= .sw5Na ( QWä[}A{ I'q c9ǡ7d#p +uWGZ(?uփ?cӨt\Զ+2g㣈2 Eߚ^dZs&|H; 3v-n'Iptj7gG?W@c 9)ۯחXK*/3\]-h]`P |>¯^e&ϜՔSI4NTq,'vRN3 vٴ2 1cdz䢕ߡΎFJR*8c']}S? dU$2I'?s /retc`bB'ӌUnx=T$&.qG6,BIqTMupFlfA}iB=4bj:]1Qܑqp k^=|R7`QWl^~9YSדpݏzA)MG.~s%9M-^;]ltzXܲLFs4;*d=mkFPdHi@a>I]܌Ҥ?|1}5p\ǟf<ǽOXqzq|0]h7jvw10VEU66CDg۬X!mX14HzñF߾Oc5/G׿ <~O"EEə2Vyݟ? u=4芖ͿuVu2FErm\(OhXήF=,f3LG(d21ж\9Nݍ-lmzn{EFܴۋr%m꣥WXNo$FFhlxy_ iј/y6]W~tn."'X $nՠe -DJQ9+z_A#bNԻp댟03djGx!޿;k75Fۛ*N#h{Bs5"j9>vSvˎ\~_NsD,PВGPB{I\?^U\?0 =?5nTm o?6_l^ǿFҜu lqcQ}\G`z k5,фhNġq cƕ_ڜPX. }hTReMn%Da**ge V,[\;)JQ+P=3S~(V]{/0\55. ӊc:ʐkx?12zX5Ĝl\6,|mE(42QU^"*xq[)Ͱa)hb.z!S^b(;W>cg2D;űTƸ|>V&3LpëX΁q3i6_N4[X^PF\"5X u+xm_JUb肆Me\Qӓ4@ ! "2 ٸl) ʀyN*Q^nϰh& /+m-c:@q/"vOCx`Y`GX@Al]\< IDAT."RիGDq-0kwO=wfⓓ><.D_X,f0MVS>B"k١ su{ZCH{%)>\S9 ?~=ӟȑ8nDZߝD^-2Gzyh#2GLq,}hLGk _X\Kkqӈ]denoKdPA13b|1H.9T[-FM`NJp- ^-gX-gXRvPƑd܌EPjp !f7nz/_Dtf3z=R07vpƃ3_b`idE 1eX|֏E7{..FK/jV5ǹy Vn4(Yl6֟FTBk%s!E kkzې>$%:;Ph?e\:p!5#%(6,ϓs(w0_FxcJgFg5j_Yz>zSGLfӑOj xkª*5r#5m+PAz*nI0e 23ht!(ѥt3քR&0T (DVڗf< fP潁I6Dk^KjЌ(Ǯ+ۮ:z9:EԕxȘ/"QG22 !vFQ1h^+.QʵFפϢ‹XOe-7DTYkʮc0*5'&@ *mz鴋[n<MGY:΃VMzf Q{0\tlx3-Eßc=cTX?;jKafl/6~acD,JZ:-6pT%S C@&59g0k\S7O*k%: DK_@{ bp_|Rb^ӁD#]ɹ!lѨ$T4g&l;ཛԽ;S: ly͆4߼{il >aC=,g3ӓLk;'r^-n6e\mW(^~tOs(_ѥPݝ- gʜ Oe([iF^!,0_ C$i)DO;@Px''8>:V`2@p.˅$jUNuuy-U"ya>aw_ 7KbXeu6nYϽ)3);Y⴩HA=}=G7,VlφxwR*>>vw8m./hrCht2pbSJ-Xq-_^\Z}zv&IĝL45I7c~BN6\4 *v6A{CĎ~[Haq)K`lQ`>pyv)9\vSp.jiNd~nP QP9dFzNNۈӎ ۺh{~k{ Frevt24l}46O8^Y ѩeIurF&bR#)Ҵh]9!fN{K[VNG6Z/`UzIp],4Ol”rݐ{{,םoB:56j7bN5&`Ghj8dž42nJ'q̮@]Chdlm>%vـ ߣƱgmpV[Fke%! [% 4fgkM\Y=31Ӱu2a`1xTe~}S=Nl@ibpV'?yu]YT6LPZ_kS4vDQ#~.eVV:hsΝ_Vao:ܹ[ Aw I݊ a}438+&%hH~P8&!16)G0l?"_l^kLŦUILښµxn$@μq] GdY2^S׭;I0::ye-j#[BW3Ұg<a9nR.䲬EB>mJ8L ql'¼W|MNGTJ[-fRN 2 uo%MvaID9S7 C\s4*3%0r399 Fv3Ė)lYT)7sWAo$mgB0KlmnKqB y _[O/oWK ;4x.n.)S~MLn4* |⚸N4Lj]l5iut IGnD) Oz ه8\Y stzbɓD`bȰe::i͟"&43şOxpohM_^iS#TCԷz[s|}w7qmˀ)|D1[ΐG܏Up=}:8>8`$|`U,-F 5L:Hۛ2ab|~!:K0#nE4g^M8ܿ%c<)TgDk:ٻcz;WX03gmHxIsؐ2BAlmg ƣ!S5WW2Qz ޼yP 7Ij_6Zm,޿x2Ùؠ='鷢޹{WEQ*QD=|fvFS@y9[M 5>FUu4 nmoVq!|noho`1ʆfK>!lTy  rod8ԳBB5qԧz֐#ql{.%GWs (ݐ?E7sY:goi myAyVF4uYa%Kcehk lc{w * UjTSzNta׆I5ߠMLhk3Ƶ&R{_FjG@EerWu![(vE,+ +vn\Doydk9sc8N7٨U*Clbԡ!jlU7N!b̀k?o"]KZ hU3[!VμM˺K 2Zn 8F {yvtnhl+ϛtx-uZZ4NhD T$Kfrrk(PRdMq}m#:  ?o~& FtF4Uad,diyэ2lKz]Z; )F4lK;1 U68"*ČBb5#71_/TkҡXHrZX\=IugNJnБ7VXF!F;=w٬t~HՑO!E.I/_RFЊf4dtYtg,*Bڰt4Y괨C\ aʝkejEXnFB\S_&-|F7wWfKf+ܹu EG\ 7: ! B>>B0|łk uRHRcv߾ƒߕ Xq=Je3G:=&C7`)ujO@Vg4Yf4j_bL/fãs4&DQ_n,)-ltLt^-m %OӖq8Vč9\ziH4:98q.m/ Gryw!Rc7x}=ЁsUDb"?e㡙;ogR&8^QmMx'~nOHfWyKpt 97Ԝ cb[0,HrcdUj ?:{ŬR hI HUHC h}JmQh KTcgu-Q9ބ6$@gZJήk TZhLJ+B.gW.!ϕ~Xwo ݇uEYS,\>I* v]CCE&)_mXl4i( )˂^I׮Ʒ2 9y4DDpz!%6ȢZhٞCҍM;}UMB?Ԃ2}yk5=Ӵ, z:5̘d.\˽v=BceMS5S1׾8Wۇ+Gee5~lAsb4ḤL (yj>2MYtZYOI,2_j Ms5TFok Me/ʐzH  g35Gϒ9Y$Zxdr 1-N^LXB'}Jf.`=y7QbF i6RR͈>OYP1WtPgJ-7犫hwV4C9YNnc>Tt6oaxsbNsmx,fKbEl J ltw&Ux2?]\g3R[jvGΐD};?ISGým<]QGjnZ"N5L).ט.8??|>D-1 ܵ kB3"إӫx>O>>?+-jsnahǢ'cDe"eClkM~{ᑇi2tY)Z̫7o#Wjzm,9VgLW2l#ÁNw i*mOWh62!\ӠɊ:(bnp(2N抰N";9T"сYl i !TriQu2Z:-#t _LKуiw9z gC?b+JĚnGkT椡+yn95I[;9kd* Qwl-I똤\En̤x"3#9K&9UՕ'BE•ѬUtjFDiPɌveװ[Vl:){S̟e4I 2F(S:5d̖DsO|?+)4rYZPGrQF1 5ÞQrndS9Q#μ{|ـ3pKwqCʚq8#* 6cEeн[Vd?3~ 5}pmWutŨXUe?{\>7!ݾӢF5[7}7Qp.fۚN3P0Y72v^R 3 ^{6z#F_s4uPY&ZnQ'p`yXKUZrlz£mvNӰ |-zI =XjR:XEL?}}g"*?l<5q໬DT40jjxl "ey[fkb9r;(:tNhVe=SH  KwVg#ݐ.) 3:cyedQM:J#lh"Y6`ihlj6ܑt6{ K#OPX`Tϒ.V4w;su:^$TSsGMŔ9L!i\{D x?,_/QZ$X*3bTQ 7" 9E4K^_e)8FV Ns{g/''BpݹWg3D7j8cwNh7(y6B+ZJ E}zwzl{../t`??6>{f/;E+loou@d'0ӨfKo'?ֺhB&[89;fV7HM_\mYJ iEi^4~;CltfjtC IDATy"7\ 3FwkllZ\ Eۻ{M(l V\״Yq}M*6zDM瞴aU̯{/&fK2c.N_Wb;+5UbUQf53'BIOYiN}\igWͨ~qZ]יUȯM)AĚiF\<+"㍦bOQ'MJs?ϵF U'.)Ō=G42rnˈN޾LQ۷jj1&rui!o.ݡLjACC@ez M.`%ݐyC0*k7!hݐ k`ʭc͔ M E^oׇ&aXP|s 2*='_'8kޘzm௧|aQaPp1r^2DŞ?7w)@mQz]SIgk³}Rg?!sks}6Y7?ϲ:+jUU!+*&j\zQП|4X~vz i. +#GrIex No^g5W ~NKFOY=ޣF{Whl1J$tqngk'Ɲ lh'm4sW tb$Rvn~]Dq%:]`wc_cAHo?nh5RN6 bLEL9N|gX[ 4-0Ud%އ)V~q|xKכӓ|7>ݻ+mՕr4z,2961g>tڊܐ#^^s6;2q}l$ ?ppt"cf͔.cDqd`FzZ˅D!ѱBr5I^d1? 4e0HnjÆL/|M-҄e'ʜZH\iٽMGdp{JHZDffTX=\]/tVȬKFQd1LZsg?Gן^ Ơ!S}\Y5VYyLnl3js&Yf^ _ވi#vr%Zga 8r!kz}ZoeV7}\;QeF5r,R-nBsYxs~;e,D#U Q"}e}Zstёt?+H23g@=FЖ*rnhZ p4  PaLJ'Rsg&v Ynx}'J*yp,h6tqzwC )֍n \7OSNN(wְ?[D6@ZY]Q>68 zBR9PXQ:y 'gJ)5=-C6nLu>IpF5(grO (Q;aZ$Gq1Yz&LiL¼s$WR6'"->"ҽFF?A[ %֠ +7yR`@wyla̓|YbaHs"Z]bF6Z"\BONC Kn)[B`飁O+im*oSE@Ld с!077`Zg)^DZ墠L-PkEkD-Usk/s-4 5_(Ee-mDʆT6DdQE?WBb ^\&nrȮGqJsj K!D>Wy^ђDV>N*ZTj4XTSfByW/ g+|G-1'i2vU,qtmtXS '27Z;6h=ܹ=\ʤ|q\ucnft{;zﰚ=Mb,͗vhUrUH9@yJj"b-ts?臈󈨾|:VVXWz&ҍ$vebD9#՗ cG܅SϨ[h4XOp3Q˕4񤸦e 0)w\Ty_dKOdtEz31w Fe1O:5%#.DiF|anN:S71yS, t<[ssBTg3fm1* mcb1fM>I| A3W?@Zp\Ǘ;xSlLr&^2rEZo(ʪ7CMeVLIUEkz uHO5wײՋYU=MT9U5~QQ@m(ͫ!1~ǹDXQ񆡬8Grlda(ro͌P}ڹ3gQw CBrZyh:k la8kv NCt \ 8 VYw'"Ś [S~o)1xb{ng hFk{iz~vSԦ@3f@S5u-󶴇BԤɔ&c\VG(;m47((h63#;B"ds' EɕcN~MXZ_RW-SXz~CsԲnt6&V0DS{Uw)K֢@nWdP`s&iuXqDۢ6˼4˒N@  ݭO'KQ[3h1_ruvi6Etttgh0g>uŧv̋b6J+"sS?PZ9ݛ-"ns 7d 1`D'd1Y-ק'~V ?gT9d&/ctu3i|;'DyÝc[:xuBF4tao9V \M6zƋ3A%svXk/LFW#audztRe2iK36n?g_kus>dx-3!QҕH|vz3g{/GR|޽;׳O/ղ23VLvC ; fUl̝R6y4'ЈV, w/0vv5~YsmH@&&~ejWi)HL*Js)obbU; f/ n`4%1di-%UH>ĶɀnM@>Iq5߆vp 掌@RWfQ:!z2Js+;q}i%k8d:>G,#bV|<ٙȥK_JSʼ*b-̭\XMu )2(҇Agk%h*M^iEw6.k$*5\Wp}$԰? %`IZkyLR b]иXV0t=k& Q+l>}bR0jW%Q-m).D~#@+k+bDRL64Ź5U^f[[K˹0y4RSq,0t.טtRR%s%6ƙ9aH%YqiOc6 4ƎUBV0z&~)2b}pô Etp3B~ـx&sxΆ,s`t5)W4QDY聶IeTmNZCWx tE%^o>]ay:6[(3|{xpO.m7j,/ zō7a9 O7[8.Ȅy3` ώqyuaoM9~>jnr򰅭kwYKt2t6JrM^%ka48joȦ8>lF1h3"u$6YKyd~_Jh2N4ܹ}.v;"e:==AWU(TV'|p5ӓcquڝ4 [konn`q\ESh}ʮ m:͖Pvܾ# |-lo]ms .\ɤО9xc\rE!|:Oul6Nћa2@#c@3v>NN-`4Bù`x,iltudn.i*;FZD />v;M[Bf':-%\1CN幢8^+1Z͓OSk4>j\p4=QSUF|ƣREԂRo8tAFˡꪠ4bf1+5A<^NqCclO\.uHO?.{Ϟ?+2.҄1^fMGԛl~K'ΛN35nu)E:q);ujX܋UU<1Լ.y#,KUӦj#E&a(rAR2E4(ŲҼb쵤~|vm+54ځ stg2Db#5FIUn͉4Jbf$ 8p!|u}t!."e94ܥ5P1)e+շҊ ODE 05hBֹ@‚\Y9o(-KD՜4Vú416d 榨~ NgoܭGWkk_,b:!6&H+i0:&`z:a2bX%2!36~n54kyB- 5(ճj۬t`+5زAVuT6'lIzӖ d|(r_?\݂7Q>7~_$V!/ʸHQӗgk}+͘慟Rv_WB[Z^I*$iBQG}Q@icaafa6Δ!ldқ)›Ë)j.4z|݈4E:aY',ê%$JI&dYRKDRhDPSS,.P+uDoToeB4ԕ!/MԩJo$UOȚpS/Bpqah,EtJg!`>h5phޥ%i|ظkud&N//1%Cľ^$IݹZ6 2[u J=۲x\]R ũοOpy;ư$(&Xa:@;ܽWh?,YXB9#e$F{71φB޹oѿʱPOF9qu tp7qM\^\PiBKe+ ht mlnl{8::&~,:oPo\zKq&D i6ldTX?K1zM\yۻ88&, IDAT[mȵEKK(?^ Tk޽{ҰQ鶗,$\lyh;76DXssVH 9iHbRX`  zz{q->&6vpqٗ06ԥy=&oఀRk]ҐsWX&1Q@խTia\y߇l˺5NK/h.F4|N&150Jͤlqwi7nU_lDȱacyuJ izk.sUsXhR(qjFbZRA&9X qN qEyĭ4IKSOBMْ4a$Oqvz9"z+&T:@SB><&& E,j.AoiI`fZdsB\j`~gO^ZfelW";2F4j.8܆Yl*_4q-; tЊ`&IU5Sm ,+m$xکDEւ,S,QK#qp .%Z[[VC\\;i!9-|o'AZ< Il)_-QY{pj0*5ډ1u *qU5T0p f+%q1{x1_ Q3ň'X*lNاC$HyvBFaی.uא6VWf/Ąū}`^c:.@Eё4D^ 4IqHlDit% ?)?{hSo޹7`4ծ^#"{EprraC14.hkX_>|۷nQOqr+k.qt^?Zctv$XAAZu 精&ICi2Ä{+ǿ^<f9.G\:s[wnRu{g'$ [% QT"8k3U؈H_^Zd|%ߗiD `RGFPM[ ;D}#FoQM8pfd_ m_ aPSܿmM|+4;> 1if~Q\jne6M ꞋnejT^ٖEڰ&a#$̖P9oB;rz%"je ''gϑ.texFB^"f|F y"Cf.( m WceZ]iY`ժȐ.OL^D@)vHr2FH-U>hD)4<Q3Dۆ2ؚj-)c)̠ܨH!3B)BӚTl#V85oHx; *WH$37fQc#RIΜ7͎?[ #! ]0/<62 d7@^h> <"uTirKLh甯c=e%'4Dj4 ͺ5yT*ң/dh!"/Fxl;B|KDͨ7mhja!eQF=Xc` 0u7jD4)t;j!G&T& 2 ]au[*EJ;Or=a+0c{&&A?b )Hmpd&Џ xXEu cCjNw5s).b{7Zg%?<tK;RT m?ƉYqcw8fRLI.qi4ѮE- 9ֆfKQJ+& yƢ4;n')IX"Z>{D-Z&_cOM`Djc̄%MmiиzҌ2x`̔Ń7[T2)0/3 1i}Py YTDu\yA'}A8MecŭUDF-(Bƛs'`j]pd`; '!ɋ,4Z$FJЌ06RPr!uBi"EF#S)XD]mh FH7#}=|:/@kkx;g1/g>w[wkS<泩d'C +JV^SIJh^{YXn6]͏Ĝ34\B9=B+e4ON=TLbHϞ浱n%3go~@XJ#\;hVzBc087QYlr.-w#R!/kEoQT>~(Md?7t"_kkr=}?kw{6 ̦ Io?/[aiiMxx=l/#Lݥ- przoE+YCgy:dbўQt.Sl'gjQ4}.Щ˝PQ?tpgcV3AFW``ƌjY凉QF-`k{We)%Hw ׊ N~@)56G/T/_V_{Tq4+S4uEPyi)HNa]y^ ( &~oߔr?w6DS gp8RV 9Ω|b)/e3̟-#]S_ɢ6OMPplL]ze[: <杯}ʜXWDh9l"QWLܵ{|)ƓyDcJD:s/0вGѭaS=Ȫ :&RqEKh~YE!ilur,4= QUÞ$BiTcԡ$M:ua-h/c$Hz2n)"Iv5/k7ІGݩA4Pr{}haj 1R9veN\ֻ!z.H nL$ʃD9㘟(vpF KU?j2HF.D=ʨq]+u ό $<]`p-&W40>6Mw[!ΆCUSqc:45XeZY a 7cP=CuD&>k\ѓ5d0}0eQA}pin52%ҡ/@]0?(+j5(LX,P=x11dWy#g WyDkt;bF~o.Б_ 2-./4< 1;t#RIl @5c'B%<'f>$52N/1-sE{Ʉ`:^IPc°݁˱@96o\HlELBR5E6YG"u|?ϱNp$U;C$i4D@{0[|,K$A݌fCI!Jdqkkh%&We%C4Q+Yt/џƤrO48r>XM4m.FBh 6Hcze*lZWfyF=LltzL! Tp^ҖvgZB2Ky\=Dt^Y]C+X 4ѫz@є&bmm8rCfЪSP rpu/NY5]@=M<5?~&A**JX:nm_w޻}L,Oجa4NφO=c4pn"Fchg{_|TJ51R"MXؔk=L󺼌?~llhC::<ɱ4 kr=7V4rPd`Vd|nݮ[,ZZ/ Νr&K~zs#}1I'}1"vi}{7ߖa҃'+ ?K:(" 3.7pw.U6lܛ,\\\ڊoJ p= $i. \b\rq\AuI˗$Y*<؜o,}!h3ch623pt%[?_ dmig|s;dmcumC |8 " @m}cNGb֮a)#&"[F@zsՕ6-<_lj!XF˨<3tvpFkV+Ѭ˵uI0x,bHE8[}6_̞H3)JpM 14M.&,g/5t?[n?ÇS޿/!-jLĕRfU H SYJ!htZ %&Tkjsˎt@Y%JS c|G3Q&}h92yx5IZ<8x&W0G=mjQyBKĎy4iŏ)|IQׂ\g\Fr4i`YEg)Le!!st 4siߢ`P#҇ uշ&/uImyL#4jibC3yY FfCn4QAQ`g ^)\Yf+xEX|SyEv1IX|1J)}Oz?Յ"&Muڒa uҖu9?-l!?gN++[Css\]L@>=1tPu~v)9<ӒFiBnwֱw-ԛ]c#Գ9:7Eflj<È".͋e;:xJhnzڰ *9DcK~(1%4S/7QtœϵY}O<Ž7K>ƣĢlma{knɓ'rߓ)o J:&ZڔoŰǏnݼ#G]ڊ ׯD.1H"޺sVG-sG_ q41$Bwy3]sGz> 1:$c2d<sW!q)f#:݆qٞLs'JRMTPѼ@w'HiLA DTo3RSvM&H= j%B/Р zIpT|f?C2%۲|L2iT\PՍ8=z"QβSdqCZxn(1u5bkBz)ȩ␋WWmC0]~m)Ӯ2x+DD+jN~;uau_u9:yo:6f'/U1kߛsӕ2@׺ܮ׹d2 ^ lV d!4 b#4jCqqOT!".k@kԅn H%^`55BۀfNT 4SOb4j@$&iqh^ͩn2chL`S5qAjRFC mt.MJFDU@Id/C"SIhgOM (j8ʰՂV-V7;u YBc}gaF\$ 1iOm7LbӜ*}ڥӆOU.O/5P&>7ʺ\y343+sO%aP`X*CJWǤЩ1-3lfҜK.}} y>=\\Ɋ4$bOG-ojTm,B͒l1 e)%Zi( c J5U.DoTE4#/ձΥi⤴uO* ݌45PD&ͳ m &[ ShD_IԃG1e3\bVo`pT)Le:ie:ۭC3ԁpGseM TsoM-ECXbVٹC0vCF@9ht>4?-tJ'hL0BOp3GwOT>jcgayk8:Hňù:o~;7 I37qy~NLu.G5/HW766q)ȉxB}oNKstFVZ ܻ{NWOwޑi?|PG A"vwoى ?y$jLrn>ebeJ9 ( -,u h;_潹wGWEn*ڍ8}=^|k5;ouAg9ML&|F@sc, >{;my%]2 x?~ҲM4{T IDATEftLdk`EJPcSAIitKaVdu\'x5Y+QRS3; h6 1>oX^]B^>;rh$nUSi3 Od?KgQlwqr:J/p3/Hu=M\Rw搅Elif~7ofSeBL=7RJAZA܉]izyߚMKĄk)͜Zy?wZ] E7^3s)=DcFd~H nQ/1IX{stiؐ^o50̜KRfhǣb>j[)1k܂׎&sD Bgt؀:s˹j:{WEͫ5dQI=@¥ikYS]q]goyJk($2\,, ue+ŷ4U|4EayO*(p񚇽;\/ ;iFMєʀbn^2=AwJ }ұ$:K~A M DCp޵?Ӫ܆iF[?QPEW6pj}6|vLGFRщg:(L;%'H@\U{OPVP5GXD7j^s\ ] na$8X_ӳ28pntVm7=BTE)h5W0IñٲdHoNR&f#HqRex'Gm\w'7M9yjGCa}^4Bnh_]1,LFϓ0&(1n4p3ƞ Z0縜Lqr~) S'̦2ǵ´.Ъ5^f y;z37E?ff$SW.;rfj LQR{jrDGQ4W53<6R^.Fkˉ_]c0'[!uUj^Ns- dLR\2qE:|.L] 0-{i@9&I":aƜ4"Me+Tk2~]4f-t`jL0aftfŌ \QFr|o=N9]+Riuhol\G?{[q}䅮m}G,љ,k,k2C.9 &ڍeiiچOzX^Z#QzZC5]+Ƈd+Ę0qLz |oЭO̤,IwkoZs  /5>y>@GThd%+胟?7[^%.d>/į/Hp(1hKi&d#Zk{{ąEionn9bUᅬ 5r%KjwQ,[$G"q8ly,/ICSt:M~^=10w;aΡGaS o}͍蟟C :-|=ɹ5(s4[]if Nqyv3֊Szk[ji!u>KN/j#Z,@G_QI2~4N邗1yQE2 `9z?Qw.PU #L>JUTwg9]) -- 6$f5?$Y9/ T?f: IYGT>Lb^YցXSFm)& B?df!ߋU\EO2: 6s^_;~h_?\5ߡQL&H@Jho$רk-+Ь.ܔe˜MV&/Ik﹑>,7W5qq/$qfI3krW.<֦Е TV$& OjRHzmt1+Kؤ:\w^Ϟ1Ը|qM38EEgZ:/,a8J%-+)dL&j8c^@(AA} -ՕreeQG` X\ _U##-͍S\ Q7-rrJ9쿔],KQ"iLy2M-6TfL1K'Q'6j2V9ԍ925N'D継8qzϨa#zMbgK&75ѩ{ L5Ү2:wzJᦆB_fLW Ν7$ǴEjpt|7޸hkMSCy^֝;x/eK.]Si>Byi)pE'M(++RD I8Rd}|ztGGҘslCoQ0]ۤR =|쪎ͽ[ OA#Izmʚ~}:j &cAwqy]5_T7FNL47j)ʹ(;Xݾpz\#Wuq-/a0khں"{$KJm1Y#&dX{$cxZtm/Kr9u(PmX#ieV@Y 8Z! k9Bә"=j ͠O݋K^jcjR5sUg#82+!1MŦeriVK&Jdʻ(_:8p( sYNiZ*zC، q*^V1UZхpz54`.WKTRV:`l͍]wZCgO2A$l^!5DQkH!Ea_0Dɩ!ȳ )y%@Y$D -izeieVUD4}+m&t2>.D+݁@86Tt#:4 !J X< y46V @ ~rajl%,M"rCj^߿˪!4jlh7 ->i@F4jM b>q ΪIbj66 Y[&:4X±.T:4;Y` %ʴ-!Ng^Wc4-4 oOG|Y;nS,u{8=4g' 0ϧ .擗HU%˨9KYf> 9 v%O] Ys-oEn79?}%TW 69 ln&SdհÓc\^`@prv~uܼqC4}q:嫗syUMquU]'lkCRzK7w~҈^^^5[.=N%ցZ-,/oDzKh_c`uGi0Nm7Wׅ;:E@ދLJXލ8<|yؾhB?' AGL-ó:VVmg^a>| eJ7Y1 e"FGTրޒ܌3_;e 3ǘt퓳St{KbsM[t4kpM_uO\ K՜[mA!' Q0bK^yN̤m3v%>/Կ42hB  V5%Yrͷm88e֚'@l.&44S5 R D G}Ÿ#F96 5Tof˪4609Ij#Jb˜j_0cMS3rmtx]aEr v3x'ȉQKmkp.\|B#4kol*lQ=ߢUD]Ԥ&`(Z(=2`{EzEu_yq<.4XFFrU{"߯ҭîL'+rR[wʲ;$A3̈4:[CƖ3&K0@$U!k3$5QdM2<¾z39uQ=roΒ8'cP;[?ܜ.mV`B{>7-:E4L7 aMk@T厳_D@FZol>{ ᲨpGE3w|hhAntںPidBhD)BAؑaJ[c`(=`D}-;ݺu[>Q9i_>z,\mgw_Q/a3PB3/0mm$ Oq_fv$Q:N%*A<2$%r;tJ'F`QVfHTq1"6Ĉ\ܒb=6)=k 4Zg-F-=MS.G[{\C(C'F;=Hq E6M#\\Ű)=eN]YvB qEŞUeg͡/ M5"1,F#s%$ͯ200ZQn&Q;hP+Mz!8<=;ԛ llnѝY2\=tJ\[wy՛Xy~}"S_Bc>@Zc>9C#KĄjVV]kau` \T5cyZh=y?mSn@KMԻ8==ǵ9c1c{~OXٸ#Ʋ뵌˝:2W0 +uG#̅]CfFRk"k.]zs ==\KHetUg! H)%Fk)zBrG=>O\CEI\_oDI~CK3),b}32`D55&1MgEKM9;1Wr x>YۦaTR[@fM=.l:f3zU]7CӃ"r9m*̉.riby!9!NH5(L?maΕ 1uk%*KrmRgbj2(tl\ nex&s OP"̪c[h\&AS@wy(0q7^X):]hx(4|8WPQד/͖6 j:: HTPsRB}66q|qm.FVVpuvMHhxVV|} 9smdpyV)1,XOFcJ*'<} qU̚$h{iFJ`|0.:yS I%e$3Y6DOmf›F#EPf[0!Ԙd1pb1T^3q4z+QVqxrA=F'âp#&Xó .JUK0J!=Q"\U񖍲f)]LtlJAjäݫn;@ zaNw߸;{Ⱦ:=`q1 )Z.E+K1'fK{NOd{4r@A ||& '­fWiJ[CZk=tz{XYy11+]K6&{t1m\hp㗢Tl_F 15vV&^=ƕ5zk]AGj}}\vCg<߿/ki ,=&T^Wx)zmMǏN{'8:>;j0$B!n߾%(p>!{muE[i\dM*qmoO̍Qst! a?/gvnia0fno :Gwe{~$q:LD@&HbƘzv31F3E$ \@Xr&(bJK5:4H~J+x-{JY`<f Cn9I_M5DŠK5ߦnЍf&pL9ѧpY?{5~ZJ1jB A9iIE^okqMFr/6[-gӱϟ IDAT播cSO=n5ie9v65MXRjdy\kTbؼJ e/0/RRj,*q5f8z)TyUϵ`!9<ߙKH %eJ!& f^hyrm m ,[$ DE&)CѦœAƝQ3lSkzMY.㘋M9N..CIn'Ͽp4{HcFlSij>66q~q,jOseNzorcRu;mc]I4$)-VSjj%Rhdw/(󙘨q.z JHaJR\ bglbQ_*L\i53S;/>x?&wVtBBL (EG`}CS\lREkYXƆuS"jSʞsa`;v< 9 sL͢ )E$.sEiR50w @(cC4~iD]~ @@@ GP/;/Q^4 I`E(4#C.y˖= oI`b\Js⃴iRMuz*/+8<|l┦0r/("GzhDClP^!Rq s]fX C}!"fɠXRX : =5p? ÀPӯ>GnP,b#yeAINde N>OeV/KC3i Y[TÅQl+ s. $!(fɢ͜V 4ǭV ) ,ӷT.uxѴ2ݘ!yqTWs':Q+D v>tc gUYN*邺 b Z0:7%g\ 7|a4qv2d z\gPegꙫ# i^6̞5%Q'>oيx(0#}zvϟ}SM+j͓TlXj.nٞ7Ej)ƞSLc)yn%1MZDe 5לIZ[Qċ:35Fu\]b60 -q`i N,Og# u<^>{ν1 Cj8,wxGb{cW __13hDlo?o~9./$g'ggy|*/M-jnomI޵ry~_ NԻqzk^vW>Y:̲)Oj4˱"l +<K+riĻU9./Ŝ h6mr9 :n\M|yյM)̻-966ZoKOFE#)K;+ht͚POZۘ P+0_e3ieArQ9g#%ωl"!(S+Ҽ<_aOm 2QHۆ)^sRd:f F1y6hp)@5S0`Լ(lAFM屓\0+~p բ )Ek+P̑-QK޲{3) HFIB#SfpFedKJ? i2R σ4:XAL:} /QlV}h!55ātFN8?TÝ?+)PӢz ,⒪L r_)%\M]*E [>֊+{sdv )\S1D)^dZjPW?/cŨN3xaI:h.DMUuy@D㗫P!VHs@aHj&ljt brJc/s>p@:ie)ZDFA(O#; j(5@2x%^|RrA8ס!^Ct$څ:,N].+2Hv,8\RY=Il> Z!Z=>nV5p'hsx+HGJ% PyCvKtsslv@Yt2Gy&~y/# v2*j͓ ^e g E4 w|Dt+A4^ ͭ =iy} 6-k".Г*Z͚PDX6M&M@Ǥ{d|!1r2jGÍ<>9¥Q_YB1?xW&Υxp%&KT҂DQQ}LGckNQS2ZhPn_Y5Km /ԩXBDh 2Tc;K=ml6?k)0Պ M-Uz1xޚ"]AeU Ri*M0e},$UӟN|H8E,15׋r_.FUry!y2WSH|LDfPF6$6>sciZ>W&Si:/r0]Zhz"טpٰ&ޙm8I-A0=M)k v[RTi¨$R6e8m)!0|:o7[|Oy+)mHlXUNfk4kƴ:jbc/y30Yskou[N^~%:z"k0/G_Rn|:O~ {Xr[bkG&OUfH I3ҋ^,=I~ ̝itm&&˛yxFXw`[hVUfs[`4>C_`O> 4wݕ[3-W/eO<V-)d?G྄0ˋq||OH7|:g05xll l4 j2(!Wѿ! LKseSv:r}Ë 4s k>tՑ4'6VE fjk$N7v3cwx3=YFq5ޓ;[J xo`PUa{D,P(I (sn&^m[L!lj gMt0\ֽg X$'OK (gY<}z{m|bfVxs][WLb&L*|f _ݶX8rIw-UJgCBC^_Td3 ,AWH3:&ͳ&,/$ӏ 2P]cʽHɠAF]Θ(e8`w`Z] XxXu3_T +O>mOL^q詏hUfxU0S"`Eo ?ϗ_]HxS%}~N X6j&s|MYr[[ `u4Mu{8y: ɾz Jb=DU0e`߁Z~첦FΟ#\_R]d7Cyn09s5|q`]=bŞ l$=>)S}"Uch1}TYoܓ'F LgN g[!\k߁oU9nƒX~>v@ NQQ!ʶV?#e{AoacMkN ?\[44yg^nB9<~Ԯt%> [ag j2Yds L $XF|XYa=qrjHSZoln"Ւ@Mgݖ>ߛs`}%|cwD6ċbrq,tRZ%Јr0e<Շ<=;c"eyOAiDA159R~.ǐu@\Cy?HΝڈ?$NDƋ9eZ2Usﷱ\0@^o^#;:*VAz8 B߯6DKbg+-LWrxnrlwښ_*taQ^Nk6/ii|Vp aZeT{ɐ0sg_^%I;D{#a(WEºDR(Psb/ueIw ]zzcJVԳ]s- a|:ȕU*A#C!:m[!Ϯ8|MlT05!2 f3Q @JE#T,PU: `lTh NE>ġL2) oYqTH{0*,arKU67U:=(¿Y2Dm W#_p% }4ʺCb xfy2 u dXUR7>1of2p= AtX3HY_7\@UùNnzy [z^_.H)R[XU? ָa?I+iWZ-Cif։4Gpq~Z.`~YKgJ)'&06^& ӒGDZym|#Ld9&#}Xq2̛f<\Kha`Z[b@fp\clma1;47!Qya? *:T30{J nm"A 7 Eet-D1]Ҋ SY&i%AZQʽb_%,<8o Vu10[RSQ8_n r\$Bqw_{L]櫕fYDɰ;US^R%,6ݹ#/ d|Mt56pN)'gwA."7 wٗXqÀDBeJnܼ$XE5Vw=M\,{}Ayp|8?;'?XC8}RlMRb\yg6 A#|ϥ<)d~[GvHE_rq\2CnS<\ Luv~]es#\\K2=~ŗr\o8 0x}{K/`"X+7/tu*6&童)_aȗxp6!\6*M ЯA|mʁ+@NNՄ\ 4Z-&{7_G5o^V'KA韝F}ss9\% d́ O lx3WfSae0L8/dX-N>~=\\a:Bv&f1ZHfvo@QЩ1:=THO+m|בP~NWz'-րW zy OclW<^EUTX |t\)maɳԡ̅پByV %Qx`k`3yس>xFmC%1}p IDAT\g0>kEؑg3=i) F y\C Tq` 2WyYsmݥǎS/~ {;펢rlL"NKA'Yk:/~foS@K $WX-JŠu6iubk ZMߏdhd^-ϭTlcb,oMzoUZ~9C¼IC/5rdyݽ^;JؚH,}hɛ{yq#1\-1gI CJsz@qy~l&fƖǹ)pMz5|flT\Yp6~q:!n0ZEj8??ETŧz6jœL G)X{ RAd=^yˋ0y,R5rf"pK~AOFe!$K*4_J-|<7)I }XeNj_M%)! ̐M2+ɤ׮XazmY`:c%U}SN=(WQfc֦\3gd{NX߂kcKe;k(WxfaB^ų/Y:bU78Y2C|~^xr |0IVTG-jm/m*Zޡo~F-r[v3j᫯o[I. jn| ӿo{9/nΖH(us}Tdko>|X2W1 kr=΍z -VuZRE0e:T Me~ﱳ%ҊG GZX-X>k:mj~-|p㎾~PB1lK/Ӈy+jy/e0-ŻE@9};jTNr1^Tq՚n@ Zzi+8Z@_,%,<ؔsS#i*O3ҹX8:Zpk`/0 l~,b$ BI U05眝±J] gz0 K . J/ZY29G?vߑiʜ3ŚWZ+)nX{]~A]d4u= 6qbC:ͯؐZ;lÍe?Q*UӳYS3V &Fq=șo*ak|>XX!fT_ZM/ |ɨg [5ܞiƈ::C(WDV)1pE`saPzZΥOUP` 9/(Q\3{3Q3hJȃjӪo{Q]!$= ~(sQa+5@vMbJFAn .g&RBCN0'UEWU$]w,p*ew.md] Jw}Pںqje`+Ms_s'62|L}b5J +Oɬj^a^҃!XQIX4ra7Wnz٩z?ݞ&aRP[\ &Δ[Iz]$Gye u]'ȕ=1{rioݻKN䳼IS+ F?<̂P)u6K+Mj&1*,ݒ {ָl[ѓ'8?>*eՔ[-[c*.MK aL惷48aB$6z{zrC '5K#]Zb: F;cT&xzwsFII Zn*TteS<}If7vŃP.^ާ<<+1FRfϑ(0E!Z$d Zd80L)]YwS08&*i*Am"ɤ @tr (1FxLX6rk*%B7P6OpXya]|I<2(LBCaVF+a%{O21RcFA58qxlv}J.M7O)?2"]cz.)cJsBV1YRs5oxlnow%޻^ `<>=A;'r~_ o`o_p ܸqCjV./._nO?^;T_|wB>#}dd* lm|]h{h7 &=V_:A*0,m< 5Ys@VyCp#IE$kOKeEno cy_H?1V]Za'3t=aƩZCjRk "9 @+ YY\ :lB?1#%*t(eFt2Q0Idl&2 K2wݔklq. ]6FpH[T:񌐮|-g&o~&'ZZTZr"M_jd*2fӋ9n=ghՀrl׊`RTR {oE^6޽()9WB<&L\R8j/QC=( dV^WPp}y2&ujȳžoPk2fW2~k'cKoRrZ`&c*X9Rr[jST>/}$@)BH̕CbE 4vQydXQ֋TH\9G٣)Ǵ"WW VB"4{62½|igVGup^CU[l`f|jUAaKzϬr%@N/p7 `O{O2Ÿ^ 1ʭV& 5$ZxIv_$t߼F2576_bcK_lemaް \tݝG[Op{k[tVCM%t-,2a LM`N(\1Cs$ >?JnId̮݃F0@ 2X++Xb^apk5qd8}1N),lncog.KuO>߳<-C@m2Ȁ:bԯPaXz3t7a:%~k^L<߫BǔRpXg(7\bߢ֪k_`'ʦ\@vDnItb0L@] #$ 2e=rv lŷTm`}C #7?",_cxcyW01gG Xm:2a~nfR˔{}$L&S<|H1?>;9/*F#ȑ%So եn;jBݔ f4"E>[3W/0 e(?A_ ڃoyu9 ޕTYOϵtA3{%ɼT=]bF7ϰX72 HDY/.?#XVx_ =y4WT:) ^뵷{CCo:PQOdFEAՒcUmb c5D@[ۑkTz? ,39y{=VK6oBP.%rm0^2ϥ4lKtcQJ$ 1PpxK^(PNuڳD/$M0ia8G8]R* bm?s$dĉr[pQ~ ۔6A=qoJZXR\aO9@Ob'W^E\+^ɮ<#pl\f\aM~Ɗon@]ߵnx'TAtGX?zzQڽ׆>l)+[g O Dߥ_ZDzlAL^4d#SLz4H#I!0U<}jĤд(TvP&jE§\[63&ޙdO/?pIG*VdN=\W>Ǖ]5]{F5 Ʈ^+ݭħ%+{KVFzy#Ã}\plV c,r /IcyۂܞJQ&^¬D0@s޼^< ÁObLɞ\@SjQ,N 4+'y&a%l"%XK:|vTLIH]+^괯xo߽d9W-"s"J>xk!G3DɚgaƦs8EkB%҄`T2:J4Q"vM#w"u(CEZ &K-.9~3C,9c0x|9ڧLdRP <ӷ§y=^WgJKQXz8:[j`k{GWaXov/EvaF7ir.|˚n%::>zX/#i$gޓw5I3/2.bhd3,Xdj6޾}bl$<9z=ɩx$wk`1#/9 <03yNZ#xC5]c ?}b%՛7nu}zJ|şg%=h|VM3v2zFnݺ-l`r1%=dRpzv* WJ2+@RtmyHG 1ndDG9Mck6:mLsӥ0 sU5] j{N%eh%0Q%RR6T^ДH" 'Tk]i,U&K  7:txҳEj)`z -rf 8;_V2IZ큸 Y+*b]^\lzҋ"GTPG ֵ0FX24Jiho9E<ʤ[Lk4x,,4AHEJO,|üT-U6>~c!H2C]g.٬%ŗxa7p5Mj`X|?l%;ᷟ}* ^J2<( '(A/z)ь#.l@n*^œXMtE"3,R\=Ց0wLfJ- >)z `::2 Wk4%ٺ`Lҏ?5^]pwK"gk1ß<tpx*&lW+cVX/?D~^#+/&x8 %xFCllƊ<s l-_Ï>d QBdyLËZv;8;=F/d@Zf4RX0,Jr"lq^S&ZhIÊzlK?-a6\?xv)u@ Mݸ#q̱'?Kw.l`!ؔCL{#duFg>2nbe: ٪38ᣇh4?LY:SZ-`AL䵮,m! Oe"1#t(#gzPiQV޿v Vk__Lr&f <``#ϊԯRc@Rέ֥̖g-) :en#ZQ`h S]zQ_Res̜>)ġ Q缜4E϶B@Z$x͢HJKM=<PU¦Vˣz#f1sQ|F,Uyr߽d,#T\> ލXf"ER? ]p~ՓίCD9,K$7(˂*8/\xүPKI? %6 DMd^c@ 2z:)w´ż-^/ړ2,Xn9_>F0E-Bٌ wZl3!^#kɅ& t5W_4Td72%df7nG%TeWL2%5ܒkf7nK+ xb 5?;xca٤gvb1`7r`lOh5}[`&oÇбV([[/;3̽{ALjXHA$z ϟc<|T SJ >F. 1ΐSI,G} CVQotq1]Dx+~w ؑ+Fp5 [avݦY l!Jh dw2AQtIHw SԘiȝN[{ 0֯,3yLf RĤPi~m\;o J&u; I J j61a,!N 62ifT {A YfIP&nx- YŅ%LWnHj)u5E[T6p`4/MK$˭M lx2pvCY~ )"3x)ʀ~W>?ԊegԚuo`typ*@' (,W`*>TqE }w(AqcXhot^fyo 9(|QV욌M>(ok #~$̞!I:kXuMV#(PS'.lGU&J '}{jVYpN\'$;S+泷=y*sry;R'&2f1 PYg+~Uׇ1f~HpVJiR.6 د`S gYY˓V5cvS[ko$3LB/|{~ q\>ylzJd;NK_`8!DƛouN߼~\V9Tfy c> bٹt6"[#Pp&̲iIM^9[.p{{r!ۛ[4Mإئ oƂ)CСK_.`JFKĚVW״IAJt %ړkݯ^>/!q!fLpyE졌JVt0vXJZR@R&YctMa3+zx ӥ`ug+^ȒLk[Isy"f>:Bkt)/*JWX."뾸wqtm9;[[rN// awd`榜7_c5D`3D)Tviy1M,g@%d=%L 5 ;yJzd ./1/.KϨG\[O=D+ Jt%Mi-4y-U|8ͧs7W|~y!ieg~r>tn\=>sI|?EiptrWd;qyf!VEQ *&Xu(㇎Ex;SiLVn %YZ^<> d]SV>=KUzf+@3 }P йkOZ#ȫS?(Vi[9-/Y(`]WkxG2dVO'.ek3b#؉, iæ//"ਔ ˿7kKUjau8),^C* ϾŠ7obXQgAUb.ŨL?Acwq{w5h,~Nxo4X/xONػk[nL=R$1:Z,A%8 F[%BIe!=$ ?_K= J]\\]Or(Gp3ϴZGMBlK#nj$&MoI]W4($V[dd`껯..Q 74;>>AX5(e,'vH3loeE**/fD݌LH$IP Ӻ?&` 7{;PK#ڵn|ީoʘؒ#+ܧ,tZٚTĵt%>-Ё-ܰqzHhdސl=vnp4o>;[ء X'?~ ^}f}ipn-WZbyݎlzurl%Yj*^LN$4FR{h9aQIp-/$5la*E ܺVNK͖7n 'L4ÿŹt^\I8}-Ã8<)쓧fØ\R|_ vK,bw/^=5nݼSjL$B:^Ẋh7hcڟ-Byo;Dl1pX!suOU@i&;K b@Vv>1 &X.%u\Pn^ko`0c۬c2By0;Lf)VP ~4FCSt-f\'י$?(NWn>-9zV&ZK^ksEcH xDݷ:Th:wі?sͯ7Zu+|8>9j M`XZV,ATd L{tiH7rR ݞ>}w2<&Š4uXra懔'X0k%I7\{4 9/8_asή2|3u^xEH[Ju|*<JK PSjSeQg'jku$ O}Y|*U~2( ܆:H̗/Ibv26& -QC--D#ʺ5vdy \ ?x$)*ǰ<|X(J '{م|U_<8Mf8Z3>xt\ ׉ Rr=QUxm5d*ͤa)LIyUlzM$tQv[k0<=hD*P%h6wzwl^,=k& 9-=8y <~D6B:zFȖK"م'[ \Sȉc{{ܰ[l"]̱Uk+CB:E/?V0lj[fҲ\6{⃉#inl ?YѼNLThĉ.ӓ cТB|\V50$ M\M$ێ1ǭS94,AľTBk?R2'dl=Ezd\ s‰"‘1f(g/Z-l@Ba-V+*"/!iP$ɸfA> *u֥Ɵ1Kvݡ'9zSr8s1u>֜ =TO%,[qP\oF8&\/}kDś7}1f-T &vG'~#G&6I\eJ1zg)޾~ӳtg'xݕLدWWܔfz)&}rrϟiݻupqq&ފPVkܿ@?Lv6O>Ûr?S)br9xƤ0α/֠m0g)եceYMJ_|!ν{){I]kg_aw{_=j6@c8~3#[JU!CH1ί2cy鸆ޔޏsXU?zca:VL&(C˚$ +RXM)JS [.!A90`cCݰJ5PeJ;qʀA'ab $66P]KZX(`i-yexY̒~ nCo7<0EP+*IAY2d qתyȵ!X1V4H>U,,(.A[|ƫfgPD*%Ly4JYguXyo^AjBXU?g9İTrN+_d^Q_TaP:7[NQxrcKG)튯ʀf'p&)?b]Q8>WzkBC\RXc-–~8*1g1ҙuv0IUڇR(*%:ɭlW(i!7Ri& X$.4Sdȹ2Un5^V8yDU2zT:z~x6l^))%@Ir!(A\ *]\g zU fMUFCJ[,[7]+D:L%g Jj]n&'"B<9L-pocoץ&$pzΙe}ܽ}WwZo„>g:CV`+y,蟻d͵t&@%c-0C;d#[TUƈ^ҍ43&Y֎.y^hn+u#IeӘhN +_#c s `Cmh(>ܕ&o]ջdO,:6[*dr>í]A֐>LK1ޜ ǫwhoO?E\g:D`0&^|v|mtMVs;`DZ( LVI`]Yl8yp<~ڢC\ ]cz[. N?rtp# Hͯ#h0ě7\7$;{;hw{Td"1X0 5a:k K^$z {; #p18Fcs 3"n2L>D0- VCu5 ¥G DukZ/ie_umcʅE5x_T s)Totć㧲ALWzD'Ze%sE(=@_4ϩկ~%Iy&`k|>LL.׈ oR I-Ep61r.ߟu w\)T;-,g#|_j3@lKKi<ݼ-Eؔ^OfIqˆ] MXdCSck< = f cW"\-'${b?\05<[ݜs-h!3Q% ([1i6(v˫\>Ht07|3##\B G۞f@[Յgn2^!lgojN*@-˿IR&rfˑ)(ٕϊi1)낷r3MGzQaTQI.hY[6n~$ WX+|HЖ۴|[Hrn=/( &N&muNU(lIbߣYs ׽?*0Y.d9/>SaBP2\7 kj>S™YSW*['e%3&ؿ{ ޽}S9?W+'k?ѷQpxl^4|*B)/A_7(/ ~9v3]Z,'zx5Z(Kb~(j52i9Rao AUyo0 MFzNag(w1˅MN'ج'آ"SOC\(AUY%`[:Ju,ZԟMlcal&.,\6&ޑ7*'o2`PyeAVt,iV(CL^Rj a{ IDATn!'2 Kx2ƣR>=s[|0%i~KVAEP"]]I$x&?}M棌RH yߑ TT(k.1ХP7}k8:?tGhl pvu0W‚`,&-]~ X^e37[,DM:Lc|fdv[nޕl&&\:xWb8} n Ͼ!n߼'? <}E) (R23}!AL;{ø٨$6Oe4ݘ\=`jv#d{3TIּvdiQi*OM^D4%s%YBxU+;@̜f&`9ZHy>Ⱦ9?q޽:]}SrLB)U7Z0K]ߘ~U#ޔZ`KC h/xgl)EN:nT۝p^#콥}ijdcRQHep(*l_֔iha9gWSk_$ Ʋ(Шq4³:PYhJz R\ >eOXgĜz( X(_ǁC5z>KVX=˾[XV(0$!1Zk+kՀJ yooHTa]Iq%5z<'$>ЃYrn]l# ߗYq/*{KZCҰlW ;JdȕI_vm"&7 ՃV4%C[+i . g׼K﫵h=31Fxi~,) .D;4W4A ,[Ghh~I&IUWX)ldWgI5UEG85\r}An}x6?dkLv5N;$brɪ̮r);Hȇ1c2ڽ\B^'ˬ|6.QH=8ɍᓇoTHEGfypm,wSITV郇{Ga7 R^9'?AZ3 9ܼ?9wx 1%q" k "P\OsI~>{vxzֶpp)=ggҿ/~KΗsydvsK9Y f# ^[$Mf6'V$ Kjvů-Nd^b)?N/dF7En>044$xe&ܠLzM6?{הued& ;`1l\@dz@u 5e7S;i5$\^ߔVgYt~/+V޾{ÑmdkbQw5:>_ g8#8aU*Q5!VBg5q+}~G&$5^V!qI&s&+˾ =AQe{:2esezTh}KjO{V G]?Q]vCʙ$bUAwxTFW$+k 4EYWv@9y m2t@RDH㑼͒x0IFϗUL!l@|xr}^N3W?\456uh_drd.E^5O0aH0u<7Β \2ikMvuۋ _k)1ڋzh'M@3wƼjǫ܂H" a%Ya$Ɣu` Jƻ"ܿuGI;(-=:cN9'onpqv>GӇڱ-7NJ {;;*b)>^:9ɱKIT γ[,&opE9$b3Lb6|n]6PV Wwv1ɇr/޺+AW/$9=9٩lC=|/^ٗ0g*Exg{G]M+Jax׽c]3:9_{dGk}{eR{-5v`I{[l{aXT- GP& ]`CX5tp{\gk1 &h/D=nt?IMbg9 ԇymL"_n\7^_/~+`Lb [ KCW ]X2nzw$*.ꭞW!ɸuZ[]bZnݽ1ÉkuVF+m kuk+& ݵQ,NM C<|c̆P童# [L1\,q~vk Xv?s*/M>@pJ\?ǜNA鸎}i@yJ<SpOk[ ,]sß8\+>S,vΊTzǟ/^F[L>O̹`)r=O,|icxMCUASЊya9{XqC y8Ӽ?ߘ\fZMJ6Ux4ז7 gmS&/+H[Q۰wJ^BHQxpԽ48D3 'H礝 ʥKQi$jod77M'(9So*޻hwj4^aOvf&Y^\\MyPok2GCd#W1LhZa7Ny 71:.>gx{a:=\^^[~\_a88Օ:L7m)L(b\\gA .PK"f;4y%|xJ>PoX;A)L!;d]Dt}W7oĺ?<Խ_/~A_m~/QWX᠂=ܾXQlJ|>]L{Kl9ho(7rq%P7eh5ڹ$i齼>OhtRj.TC1Zk))2 &^}q\к$^ ԫ`Bי*Iv2}S.ljWak`*o,]7\kI&6٬b2C6[ Mzb%*5J S)f3ʋ}]"@^]. &3q~zdꮞmf"J m8pڂB:l\]֊-gZ%j2؀XZ<z7v&r+)7ѦR.(A:}oCg!-mPGKG 5`AJoatTdw)(^VAJ;d% \*Kz8 Ab[cKϤƨ006ihB lA:܉ϫg"2z91 b<_CPͣy8{ ?':3``E>>s^(3% D;؋xyЫ+|RP_?Lr8PeT-]B<& G#ϽFBh*aR3~l{ AeK|Kٴ*X`.:)={H(0a61KÚ|eMP[e0x#?/ʯ\d H̯"bO1q ݱ6kɭP!Ŝ%/1IZbtv5@.2޹R%󶜼~ $Ab L_\kB"10%ȕIL73Aa1j^k)xRx!{(1^cddV, C*UomBG__LDցǷy5hKDpkؾ[*%(S .(_%f2S6)[Oy]$t }`ۃd8* I1}=87v0s/U /(/3Kܿ{{n&s% o:ȃ +tmss r쨐'EU /(l2bҒ%peAe/gC KK'ӝ[7sbywNC%3kQC9 <ЅTpb࿫_g/O~,?Z`$ HTq>^5q"BQz4PAyL`lm M0u=8} HknXYS&BFYޔ`!a~1Nt!.Or}z2׫PGވ,)ӂ1"N|:/,3mxa v~N\Nΰ&b{Ҝ0N;2U#͉*\Z$0!-L˂rƘYNo FoߣUqեR)UTH+TxRl@Bާ[S]L[|bT IDAT )̽lzq4 '91#Tsa 'RUbY0 ZR?˗E퉐 RLΒ.ܲF=gZc*6:u/1Ktϑh~OfR/0υľ[EL%Nk{ؘa`0mZ0M Fáj60]c3峀YW95'ejˋwH{I< .-v5uLVi$H !O̚ ˜ DWWxϲQ2"*!*`Ao%K..$1*A!>u)Ж$eqşτ& 3YIش2PHuD9hK΋g2l8ԭ_cfc9ˍ8qKrϒ'>2 g ɯQ!-P PBLrei|uu =lvFk_@@ Û ly3-jO-BH #HJ< kқ\=\*WXyW8m!*YcCo\x? )3ʽyZwcKx J"̯ݸ`s>Z81mk\ޛ8M=_ KV+;|:O>"fHjp`cr;I9C @p?|&VltL~gBٻ',B_Y<1`Z'z:M/* @s'-#;=Xʸv1дh6ۇ0]6HTpO0ݫc|Db.b Pr>\Rlg2My3W2)xw׺ogj`UB*(wa+U P)Nܚ7644+O}ZQ-Zs Ib![ PJ)$-+ػ[ۻbޞ*'+Fzka YVHQK: P佛i)xt̜Q~6V&s7g)3$`"O`լZk̙M"4V?Hr?,S?v tjlf^4g1DXɗR&Q=&OD_St.xkK8cPZhnΆW)WQt1:K.,tT/ 3V{Nna,fȒ`sUd> 3ZRW7W3 vnckkO,Lv_DM5M<|w>lvq}3foGx-NNO0_u?$B>1667_퍖o4Nsth lbw{_rI` t ~!Hd1鑆.xƪ;x$u;|KT+91 cuvSRQ9@hpU}'gn4`u>󕼦:C֭jFW-@nhqe2r 8_kbC0ϯ63Kl M֟1I9dV&%{5)g.ʦ}=ՖǖBU0L Ln?:wprr,5sϙw22ߕ$xTDihT{kX+.\fu2K{|6Е, ![_#lkdm$AIzVJZ7e#*ӁMZ례Q^ @[ ^^Tr";1 %2!@hTt9_*/Tn~qK[lKgLa9TlcQ"N# r)C(WƟUk'RxeP.0=K 5(Y~WY}c?*jx] (/ÏJ=˲t2qA*>/$tvG Lu~wꫯu>c}ܾp} /L̫RZM:փZR peUC˗G7?_fT?^J䆝$ @ pneN l+.W..}I\ġ[ׁ7F)NS_y} L/Wy%sʷsvnԪ.QbۛS\55I{?Wt]GNdk6uZeLgIƀY3ٓ|XTLs51s jZ I-Նݬ!ZαYKqUtPz*1J9'Ù;&\V5eF)# T/Ɂ+1}j D ޷M޷zb+/{| a AF@ 69DQNI~rI`5--|Yan2m0tXp؛2SSqzrwo7/AԆ+Vc:i-BPDhh6 tFJ>Bt^dY.̤a֪!~f%X`hj`''J>weYy2]`xWUg|g~\`ojj vwb8P QR޾y/BSdF5_ #& ԛ[T۸C76Sy$eM952g5>~߼Gh puyӡ8ק/&Hӥy9\7՚ Olt|#khwOs|Lǡzk51.oYG c;o1 " ״܇hI`kX۶ǜDmC*2GR[$mKѨǒ;i4TD$ɋoLK`&2?')Ky0r@c- S[fD~֕V 7\Y[#F6Ѩ5|)c9aޔTbޫh OO=Oq_5;:=QlV9:>ՅUP;tz n//p=j;hy|H!\Ie@v[~<[b6>C[Kދk* pFFE[-zyybR 2o?P:,:p^\7 ^|ϟcf`_s!8|ҏڻ߾eu=_={JMF.oW>r9ѣǺ'ǣAU <9{$6+VSaU -$OԽJX eqW ]uz,}`d8\CV#nt;s6޾~ra+dR"uk7hm6kiH ^<+US08r;sL2 "̞o#eJrƬ {HL&M+ᗆ$-/ `Wjj`;ڒT%5r_m@>xm~C‡0782yz 4)MHP hSyRseE!kWG>JuK6/%h2`a'oz_=iClocM0ءk4TTaTEMӕn+}i_UiDj㓪wUot0,R@?/CYIa>+t[ I=s$禄LjXHl;:<";MrjcG Go0VG8??/OͿ&+CZ^"8눲璞Rv %htl~:<#K'#%r6ǫT+NR*J̔dc %/ b=M&X~'0?kG^/y\g1D9:Yɡ&3yTt/A6]@=Jb&SWm $5NT8$b2dp@^I⃉= IwJ- <^[۪zr; -ݖU8/f˯Z'&2igo8?;!xH7<Rvߣ=#3sdvNwH-Z2(G0Ɲ;*j`_,(}<ޫ4~cyD 9>zGGGdG J~G?coPO4d(? O~=dñLϟ+ܽsW8:9R0r ?yp޾$Xbwwnap}eϰ`Z0oqrRp:~\ۗo|[Vcn"fs]^.p~~^oh6|K;|(.F1۝]TZۈmoT%< {oFOZ C5xla5DCVeaudJ{nTE)<f-hT%K+Dz~isy.z3͗ )([.S=yv{JS>N+37Ag`8v۫l>+7nO1W͐1㼮 ̈v{~ῳVIb[,]B7^c T?̽ƮJT9ĿW,0%}{Xk2BFVE{d<T`Cv|3O5%E\hR&ا& klY(//U&g5Z-Nl ܏*E>`:`Rf 'n3aDܱX@h̘EPB(j1>/]kk9+s,p;5YӭUAރl~*`ZcWC㐶AElb Wdzt~V9,HPH?Yy&TD~mQkA=PO/x}N f.-kXއ.Eb^g(5ϓ &SZu-Lum{PFc*ub^_ ߃Or##aIbҧ(+&U&6W(7[NWR2&e K%dݽȓĮYJSsJ(+%-c2=M䳥wIY" BBH4Z~{%~n5__)dB"7 Wkhll`Ɛ&qSZ.Qmw^+11]SX.TY&Vg(JI{*I_ _)L ȮҞ8<~.|W0ݖ`v8%bɪ1d]12"0[j$3Wy<+€ TБ_z+4ḢDdq!\~&6MR-_KvÔʦx6 #כD7sYMäxf~qE`M֬G~$vV! Yi5Q]njIwk 纳c'OXqC:wgXjO]ghoT IDAT^޾}ϱncw+F)6=y"f?ًn:e\5St OI4ːan,u8r\qξjUE%ny|/u|}I6*q>Gb!޼үjHl?s|`}Օu٩`ce A6<XSx?1‹_ [Юwb6_m|9k7/^BgcKW_a88Pd b&> ~. ;h:Hj Phcp}˳c'_o5qzj!?j(i#+h5ںoc:]uoImDض(Z[T>[/VRod%y~PqoyƄ{^7aCw677 $b9!6vREE aR.㦺f إx l: f:^$QIzsϰ9Qc V.2O(/) & p/dFUSZɆt6qsY&g籍³ϝjUimL&S>Ql5j604Q*]Ы9<!J?Zl^@H>\IPm5tDqT$ScZXi௲wy- - I}~%Ivg4ZUGؼʌR>^[j&it8çR+A F >^z%+)SxZ[_/%6Zz\ɚ|:#eRBW+ #!/yē> /!%?Q.YR+j&dLrI4[(pʛ*zJU\dUnTz}3VxAeVU @CpD@WM*{]fccpucz;{۽jϞ ;[Mh4kGuB❽ c,Ãh~򼜟WSEP 0}#Û;IƝ~ZD< woȗ/1Ofv m iUu-/MڦzX'VBGyЀp<6/BLjlrY$)2D>Zʇ9jzkܲx[蒚뽻aV?5Ijo i` jv<Ƨ޽}uH8إ4y0._k(UcgwObRb2Ӱz,B2vREK/PҾao2ؼ;["xϴG/sq #-4[΍V3,?x޽ykQgRG={ٿi,)tsDZ6|X} ts"jVb{_DRbSe.Ka9AWg$D*Fq;-sJRWTR}mS+*wIgD( c1T7oxZ Ĉ߯zFIB`liCiUC}z:ͶJ3>\_P&PncCV"_aBi]5VcbUW10[eE^Im42JWsM5cBX)R&C0WL:L.8A=+]qCu'#L2!|j~K0NUU n@We"qX2.d,URbFe9s[d/5_BzT$lVQ"n^VDF%9rN])& hmv68mmbkt?+85;#uWB &v~)!gMKȷclRlI .va&/PIR'`W\9`~\Ւ*R8L>;ճ_/y B7x2|" x˩? c%;'x)nz}UY?| >dz#6?xxvwfc~3uͲև2Go՟gW*uWң+*~=:C9& t ,gfQu3 aϦ!]bamdN9YyfzfdZid؂C泥|{{:_LշǂmlWV+a[pC]Ltquy(M%k2Y`<ŝL*o^k{S^jd?;yS=h{k[7 J,t,TX 'R\h ?=n<۝M xM3Jfϑ'v5󰵳jDƆWF9v%v69wԎ\FirߌBV)MEʧc5% QUdƤqo=$њ lMr"? ˂.VT 5@]m;2+(RʔR2nķyy! L=(jJ=/AW^dfC-{*K&Q*f}x ` $$[ZF 'dկ< ~-,$`;&5[S;{ؒ:5T܋vg[Z'PGn ܮ%پezW&.bj";zc^_gt乯Ҍm)[u1f S2i+9Q?nɴ!P}j־jo.ިJ{K˖SSgJu3volld&KU~l-IgS}F{ݥJ]+K5sOHʐ=M @;`k p{6f<[h]G% ަU,&$1@+gUZke&7Z(ѵ^LCʪxh;񀛅:3[mb~[lW"ih-NiP"<8K̲%q&`kSKf](iXU%gUR?:;U#?D$IC:wr,UHI,fg1=Vܽ7)Ӓ5Mo.p&s*ًaeiY6WRu.`>U#nI~#ddDjqгxY6Gm8kU"i5!7:Ws,3J5L:Ai`y;m zZL>'𝧟(B)柒R #xs*1TQm*&qj Pas%qN߾lpj>bG1ꭆjDZu5D l=]`o\ ppIpd}LV\ )J-l}>٬qs~t"9l-F6̤M?LV+r LY\пeoW_n=|ރǨ7[bk.9%,q\FUlu{ b{`L[#O)v'Zqcz2yfN'G>:Xtto߽̚xn+vO͛8?{J@L}mDݽ[?8;\^#eX.ñTxwn`=b>=ep~%V)7QovY{~n^kH 7d#7i͖&s n]`.m*P}y7nUЄCZE=$晿}Vd͘Clh4x/5EӹzkGj #Smft/xY` ϤjJ?~K=z[[ܔsnkE|T=2ϲ""t^,N*ep-1@_JU3Qd!Pچ߽YVfXDkfh`IA@T)= qXXV^ h1pOz9Ǝq(&vV{I?G p`Dq2 NWql ̔˧.(˔ےi3'0R\8 ~lk1Xa-y5.RG7fkp@ͽ~o͎Rb\̅\m2,_lzj˴ɡӳ6[Inh,uysn](N)?[s0Wy& +̈ ]u H6 !K$. Ϟ=C>Dhj W\֙LN\ϝu BJs0RߊMHD -. k^D`v}}]W73[n^#`H|.UpD-4d4*_V,WIz+b>µ eZq^zg_߿' oڷs XZOO)ùj5 7w)fjSw <\677ĤWIDr򴶪Xhf$<07Lh3޽7'ĜUi֥*}D9syIm_^K0PEX85Wʴ N5~(-S12FBr_SKΣ4ԁ>7죥S 8pε жgghn61[MKy`Ћܘ6jmI=:FV 'G$мqxͭ櫕~v\`5ck+$.}1UWWJ%oϖGBrh~^}̣ nq51Y\_T5h0؊lˍl woɇsurnŒ<[ <}o˔I€"D,U|rRmSS IDATpod0C'xt_=Zh5KE;. -v'go׭֦!0?78{[Ǔ!K2LCUa-+U̦-\wbwc~)cznip>n?@q}yCCc5Fk拟a8֦ifw0lmcҭ1_INwz e:P`$T!.ђl}1Q]UT k>ZW7rAFwbcsSEssnl mZ"9gd[Z$;~{n3k)AQt:ʳT+՛#Yclk~GkJh |,)0a)ָ~a}D^O(/]5,+M,du'8y!2}Xj:8φP.˦ 4[:v+b)B%2Io12VUPKᝉ[T i {"c״5j1.e^31Y\ɍ,=3pÊjC o^SnU<@6$W))nU;v6Bp"K-(:-.!{cXN>88I!7o9k[a{=pV6IJ JCNpFZg,l$aIR#!hœLoܼdCuGXmIbUϬe'3+#ޓGC7Ɏ@ʀ~ 1/,u:[Jg i`g%lJU$6)KРDEi24+9If%B Ú(u%Js |U=)R't!'g4J P LV5cl1&by<9Ŗ(^m:^< ,l(qIWAObimL̼hJG]:K?(ɿܮF'G]# a)BIQv\öuIg98>;K__JJ)mQ2yM%Y/n { <<N G#Z]11I {X26Z(Fnl},rcn2^_|W=߿c23կ Պal)8ӣyRC_W tL_xg_}cp|z?zws}Ionrr/R[mtqqqTV&?)w sUJB?~}qwiagwI}]'%#\CFVp$i3aL'W+ Cf60``*.88ᰆH*65?\79 ;RYEx1@z3Cg&YfK̦K[#I<:*K-j]{Az3-l"F52J ]:vrI`1@6zUI^'К,/ 6q=RA>dÿ/+IҸi"xAM!hmcG8-=v䉜L=0c>%K-[w՚Hg457xjhD?4xzh$~J;1$aJ}G͉gDN krc2 d齮.MBCpNG7Wݲ!Ngc[4 Y3'_jrs/64J^MS1=L.b){XeYbʵ)KfUV {H5f gĀA>ivuWwT"tVW 3;Z{c\@DTk9{ZcGlt}%.fTAqo 8֞ѹl*ȞFn Dc,z ]]VSWS ƸSJ~fxD(nP]RZ- &-k[E,B &-J nE^u8aUXL7?<(3_̼5iT6d/ۤ#J2gvIg[sҵx-tM2{a3eM03d:=ƃtmn|z3?ż&f1ۊ f olnBt/fT l$.s`.bdxbFCZ>nCZ./̘ٶو-¹H\ޑSFNg^>O[ѤGƌ\)#Y,.VK꘥ˊv77M&@ȳo`cK99:p7w>99;3s\l2A/{wX2ؽ-۷ ՓN͹jSsp@{>˝;YăOgCaF3IZ:ⲎԚ[SF@B5 &ZS3EViwF1@:%ɔZN1`a3]QU0`sa T&Xz&c{!#M#fу1ZΙ,v14'TSWgUlΖt7.e6s/*ވ8F(/h4sn k8K_['Z\}..b0bg)42Z<NS@~1r/'^ޒQzIL+M>sH[5zcJs~ r,rI]j!oYčsv|a+dg.+da|)2&0W_.iP5 c-g5: mTiQh]\ G֢d*wutÖU #nU*kpυʤrŞt$UK GEYImbηU!\YqkkI"\~7'dk}j8pC 6FT⛠"9Jlzj#L5 cM95dYo$8~ ? iJ/ ֝rmhG2cg0*d_khj $ FER'1͡YZ'U}=$Zoџ oiԣ,xw_ͦ\L&2W,._b)ә 1ZZNkyLǗ_|,_y)J׻4@vWk}άF|>@+L+r RM,6&T\`zÿXZ:kͶ&(Hlm $+pF,+@\#k|Ua^ 7i!Rbs8ZWoWkع>e:i"Ԕuo`HeLeyg7ؤ'NәKy}[|x-TR2{C\% E*4]";zM QX!Y )VfRCɌ[Tf Aٮ;F}\"Ņ+ug=RX  ǂAӐ]EPAys,Z\14BAA(zO|sݫ%I>\TW)牳b`,x}rn vqSS(uCJwI՗+)Z{+m9=?4;0|Syྜs&qZث\m]38Y\C-~]⽋59Ar''*Ĩ;tx&eIbbf4oWېJr,X2&Jg\]| 'ܥlm9|FWd9;~=E'RFyܽ';;W_*?MFwFGNPgߗu8t2^Rr9e:BGrrz%X\ZЃ 9חCyf//.ɹ\ db>rAyCVRe!s9?}.^~!'g*mIMy{xLtggx2d23fӳKڹ%t=vi?,hu;zzybP"Ҹ"54e3>kgkCk͘DCA ȷ]j4E^4_^^r}%.z\/b| $ё zJNWf1e9hjtF׋F Ͽ/ SKg 4YV(&t Gt|BP85єD`zh2]D 4$`&ƢYrCOOm7:CͻT c|Wm_N. ZiUH0^>e9FIr ZLL " 1%-S10]bASqNӹ h[lIAYv10ښB#Q!1+NZDK*3``~%pznBAˢY;c*q(ILSG {NZ„YfcL IM"$&Ȯ:cDbYϡnRH6g%p1ŕ0o1mgq5BDN¿J UR]!5VTv cVɻSFӼ='(~cm =M,T$B.μ n p~ڢaWڽ] ,p⬁Or8V\qwy~obL Z̤pĎ' b2mlHRo0O_p}7ޞܽ@NNͺhV5f|0vXXX^3䧮E@jl*J:,6?DqMe`R1!G%) 9~i:CT5@Ͼv Ȇg9=9M^&k*9^g 7[q,C@ &$ظk)\BFCvsy}\Нvge.*bBQ>Y㬱V͞d6 8NZ..LQ\Rm PP.@M 2ȅEδ(Ho1IXXcpET c$,* %e1Tz0H>J̾= [$Ҙp,T*W2k`(&JgZSIq :D;r^j/ dv_YK: }0@Y=~C~SM&td8r^,Lt4^ܾ-G,;Lb<>/$.+{9!ӎ}F~+ڤ@憜a4eNNOz݁Q,p5ۻ(LJ==3p{]ͧ׌. SYƲsvS?y3d4`k.*\y_JNjrkɴ3obnp<"rU4v]#W8g)+.%/0˭3Pn4Z]ZhėS/?3mu[^>_ٳ.ޟl*plzyf09lZh4#tKsL O&siu{l5;]Ax4HI .Aŋ*ԙuflubD 3Ǝ-3*8hZl\\1เ~gU嵞芌;jzVO`!' Yl:9T^&,ЗKI/r~+e j$Hr}V2->Y \5 cp EU;&Ky˩-$zɡ4p\=k0k-lIl]q1n4 {f*. lDRZ!:f,IYL\ gɇM\mv5A٭J($QIk*0"an/$S~'JE"] e7`U1.dP X #9Wʂ:`tw .@6UcQ)EO1ksYek[bcs9'Nkh:x68줕 p&6-! Vg3bl'*5Pf""̔@Iuō.N#tq,ӠŐWv.:AC#Wp9(`2sNԍ8d8p*sץ1U%2n7"zY:*%d"Z]; 3|{S@=?;{`rtr"ۛ8ۺosV16T̛ @:`7^oĥ'|&\kf4;h&iG.=ɚ}w\w$ $T˥d,?@1M|sU!AŬ+5jJ_{\7zXG?<{RZ획; IDATL&W/r|t+ [[|ӷظY3O9JЬɎ__XΝ;ryyAGm(&=~o|CS&(6}鶚rqqbui5z 1.qݥq⭴jr-%dlz(RUdx89ۿC(y8XSd.- $pDAQAϘZrYN[ 9Bb0k0k%''dCM i?3\&R*|@F qUMUF6wu!#*ԋM½J17DdwH9s' =}S¾$omf Bڻt:L>\dul]!ı\] Gސ,A1gz L b. >ɉ5g[yH%0u@6U&Qa"lL|^&d87⹬R38nG=m3ʂUMn KG?QUL&&y_k yy*Ü赤'u}M*ism'yϵj-rtJF+ҢIsK޼=r]I;O39KykGd{|5{Kٓ4FKgnݡ 9|Fݣ9"yO>d٥fC]6}J6ەFkCפRNX$ԁ]1g7p˜H &Gpź<`Еx̙{4yjJU"$Ja5JfcW;g U0ʙvA noQ_J5s_r#s ; Z-;,JdQ@1iZ+eiWJ^ qBF?3:zP}E[U] i`{X7`wEP hI%-f=-pbD7\8`2W"ڡ&5\ &335MY$v~cb9,%5z4̠ H2MI˹!5Qg61o~q U%ݍU9SV%ZgO%2]m 5SYC_inoM>X<*fWUJZid]9.>~1Lv ̤\9یഴTU@#-x%5Y`CgJ9mB_/tSùRvG7IRfת{NI-ާ.c&Rݗq1\hP$ hָK>`pxBX)UdZ'9b>nerx*{;;y8 凜 we섛6tksCMӞќ RAo mJӥ ȆbA [0]?3#*䥉g+%`{Vs|$E~-~5R3Y4dg[uߺGplx*|$R:L `'+۷ߠt @=j!s vbBY-$ooXݿG32(;3gӤN;wمiX äxu@ QF>ElV!bvegwW~tw@xN22?p2 I)ë}.rtx$-z8_c&-kDB62^0c$;[;rqFNN_t¬-& \\`Sk_=[t?<9-JdZq^nO p2eh2kœ_ _Ih Q<{ $]FGn9d6rh(?Kl oP_#zaSOڊk|ʂ`@ױ0B'dJEHft0 ׎ꕴӫiYcs_?DR?:+Cp(}p0Df?fT9҆S✟<d&r0m>*!;RaYSbX ^_8VeelC*W^?Y1U74X$ 8K$n@ ДH.~8̥;KpeC Iⷂ_{^d κ{E0T^x .É: N⽁Km92)e|ekRVJQ{./| .9R&&שǐ)F'_y;AV3O]9{V}wos3iev3tZ2$m$,/U,t&„(tHk f$ IΉzIMƛy,XȆ=+ 9ٚ:*#5,a2ܕvt$w=/_$/2V3'ղU/Yj5I5:*Ӽy@. 9?tKźi%#FՌFA/*֜xDo:5gcaTOIN9KHYFL;7Қn0b Lrm`*G=Ռa8'Aj6 |jJѢX+\\] G>sM,Ke2+lL5B)2e܇pcX:=n5h{F*aveQZ>皟k.)c1}oEJ9_ސ|)]Q0kiI d͌jc(;ImV ͇lsAɢ !ʼ:nR|Ilj&E(@0DM:FfrxtD DLCi߻lsh6Q2πGrk_e տ:/^0 S_>L6mO`1wYz]ڝf#bǓtMiTWVߐgr]| ,CIV'2d2(cwd{/i{q |ys{rt13b7wn>K>WxT@/o4ZO1xNa84+y8oADlLS˗O@㴬&֠Tt붵@ ^.كyƦT%Ƙ9ṿ${x̃\ٷ_P}$#}|{9_ىR- 曯ʣ |,o[>ow<зdxp6-!ΧUdZ/'=٫%_X89;ڋU5YsLnt[2hd<}+\ڛ5[Rf@^a m"/M~´l y2E8 =bpjM#q[miQH]/9!WϟjdyRD L)#|Iud!4,BcGm.e1 ӧ~)_?յY f 髚H4ɪHB3@&wP1SO~"d:LR(%ʹ8/\S$Y%Uׯ0U'935؆hP`HDGzά/XMөbj9_JPs1qrPoa$Wؒ~S2`J3lR}|f^ͼh匡]DYi3m.HiY+gWY4 d(:Hm5l-981LTe.dq KaXl(JI,FK洓l6:RBj.\}*]yr.y`{1^+AXrڧf\Qa"%dxKny2Ĩ;}ٮ/؈8΅`9sNYufUQ30~4 `܄ϋ /t(}4KuAWrWc Ɂr9A `j)~_yvdח} ^NЋyOn@fzt|"^ 0%5Ft,.0M*/daF-b">kD.ۗL)\LR./drFb(P..N荼=z#璗N-eY裙46 ]:vi.Z2Rwe8T0l5e>Hel'x ߕ;w- ʒQ;ۻ\^VK-DMcs>Jv_Hmy{$ܿ,g'RCJڥTd n+ dy-ɘ3O| oߗ]:#RE.._^f_:$]J1llݖ~rgrk4QbfS'&W?9iPf̣`kMfKf0[.QK}eVC)c4 `/8d>x~ -Ǟ5x-CNj1˜JoAMd<|'rtrFq¨\_]y|- &YAR+N3Bv=*fZ(8g<(Πc.]ӂ}|ҙΦ!n^SLj= ̓ܗX+ o@#F}8ckVVe4ļ1|2Ҙ_hS9ث`J{ꂜ8D]mc^ @~"円o``ZRg*K.fd&!fECXe*qcFȪ+'m S~{NJeO"3}d*CS3W(X9sd4aGJjnwMp#7>)&I9CVT❋XP=dUylv76[f`uK鴸Jβi͌2C{U`˜RwG; LRI8ʠ0m V2=kC(3u^tOS:r`pcLTEvbIA@"s1U鰯  &I&4~REy͒ 5 T5' Ѻ{LVw݃{G IT&P)Lތ%v~5EJrk߹Ċ`zerLk' d`R#|5yv r5>6`S[ {2'gn{ v$y$,o3B(Ʊn6da#?l|ű\JZrsNnY.l Y:HpZT\MeR!Te硰IQWt;\V5 !`SچHIJ*JPJ$:"x*yGöCdnB0O+KL lvX0Bh4YiGSͼ2]ѼYK5+plV4 Z8L݁lөΓ'#/n=$/(lOc9;=9[dե͎>lIF7£ceS!qHHmHcp ; #'o`݌[Mp!턹آ(E/|,Xmd Bz[wJ֭2_!k9;{5r7=>}sz*m؂=:I[]:|&VO~|è?l$W,WCͯ,#ՙ{9Y1;wկ^<|"֝ۜcٗw<:=$#m4es{}xuy)|%̎36X5!OF}^g9+YӚpd4510ln`+mUw "΅ZA0^ )49+ *YPnʊ}| :4$J 3Ds |GXnE0,Z eщk5¬=SC} =Zj4_рۘכ~4sTlkPVR3RS7u3Ω !"H~??-!r_rMV\Εݫ`|ZƪtapQ*QLj!U4$ }ֳYC,v`gO67d2K9_r4݃rxv*OlS -7_{/+Ōh<l90Qd@p 6AWlwV1xpaĬ-jOWZH7edbn-Hfa)솜eQ{/[YCK1Ypy:(Cob<2M5KFt2b1ꪘdϩ!fuD 0x_S;5N-y>s,dN-&s[#λHMҬi+ ZXTr YC#XsHfa-BIjN]hTT:(9Ź(1|%?+#`0"*#`6$'K4#yuz\/t y;̐\rx)r).Xg7dg{:F%>;$(ZygRK5 na 87TQ쀅[, }&N_.Le<)d:nK"1KBV5eےxk\juK+"iI3c3(8f*x_< ZG#yCyßȭ;dhe2G@o/_K);x?=|Y0`덮}ޓ r-y5ƣ+-J]"tmHwk<FA<^ڭ> Wi"WΔ]N]L ]_h ! 1B&9h{0d) }G/ffE[-kRAa0{0LX ׇwЇTc 3߸O0 I*֛*~4ZpPא:=ǿ%+X}y+ֆ\_]K(7-D sa>0/)|=2ߓzKu]7gԾrr`)tzklj6?yӫڳZ2IM6"`X7ōe֠IR;b2 󀓔ãqݯo4sBgQu]Od^3Dl6MRì)2aJOH2F4l5QjȆJVfq<63^4#M$ךVBI7AlpfᕾZ{^/x "ު &M>6%dopNJ_8#n9䰡 xh l[uG{fx*vjn_gw E8I>w6VhCEESqhۈB"h.fՠL߾: IP)R5$&c>xc~ƮY2`pc46y ŵ21 Κm zt-H RBn&G`\P!7ox:e+bN_ZӻlrTQrZM@\UZcRn0I-%q. URMzB[ˎQ̨ƕTili0Rf=,t.=믞ʝWO2N08˯~,z, ޾yRF#4= o$T,/>cMIEW_\R,`2Vk@ٹs6yNnB|>䲊>8fK*2ƞC!G|30Pf Ŋʰ\7L} JQQ̂OY2(5{2 U& óٌB"7x>z_WQ^(aƸlHctD#s8 qUHiB|2Nh+lB,M5]_mt!u&J^3fSkvjgqN )EyjC٬Ɇkj.!,j 5*]͜_a{/ki}(LFsj[k$pO$U,9WkvxA̱ЊU 3q(x'R,r)|s6,|z55^so3gg璦 yxܾμ 1:ݟq7}m f̋SftMi2Y7Rt\}3uUěB h? {˼?Hdt;!rV aXQۮU6Yx^@S`)+)moIf@^Į TWxekZRg4DM̮n2>CX кmi`kKk.j8) DՇVcם | up?a06 y5pAjɈDAlej̕ø 󣭬هS 5Nnq& hK9gQq5[HݑՐ)Q2oAQl¡h$>~":HoNp^:4Aq%dY<22Z(13d+R, B4/lyIJt)Ү#{Yb*k4y2j&Cm[D/ FEf3`$3OG ;]4"Hu4vV}j~;\FeVŲGc"0mml񾀤f E!~ e%sA',n?Os=;{֮V3)V32m]{j6ڐ w+vq2 98gh\lsA3< Hw]]_I$; 'jgbʫWϥ֪v掼~ݝ31[t9޹-wn?lBoTx{GNON( ve77 c1iJёnMЃk14`ηwDcn}: fj1^CiôcgG(;xS"6#.l .oŽHɽW*ӄ&h0 sdĒm m5iZᤜq cLҚΉ/wGIŒsW?YZm{1_,X@32F,55kcF޻2OG2ί nSEiXy/ _tnZa}]ka3ʅ5E/"$gA`&ĸ Yett ៼n.AZO 3k%KꂃrJKsXm-0^_f.sL*jo;eOYWqU|L`*դQZT%.G;mfܣ|I\+&Qv˺GNBLj@M"،͐Xܚ{ypI62h6k35kNᵛ,7A}#雬u`򥺮!&R+ cFYVX}XկUIx +lS IDATzb>*T+dc˫7fDm_yelN[E.B~*OHW@jʌ$[+}a?ؔS X'g)7ya0_J>ut9,2oTƤ W`X)rSZK+3܌ĥ~-&\\d21F2ɗh;طZ].NN}䶩ʆknTYW{Y33-"f0sdNaѯdPɻӗr4ejV(ҙ֐)GF@V3(u0;֐=^VXB䂑2aVt 'FhID8IR3sMTb$ o_]`pRRES6BiK QDJ 5 % (2:_RWO2tF=yuAsCf( De> E+΍*fk{s3#K޶H 68O[V$K 3/!P.zZ _|3󪄉Y( N{(,HyL-%e0mIɖoWhe)B&:m6i9b&,`ļ)׳oɝwY94ሱzmKJIa<3 {vv׽奌f ǽ|Et\ʭuk_vr|z"?Տ>%ʐ-gSi5ڲq 2(1Ow8'n-#6jhd:]?9×XLedc6yp: g̡j^k6lx&[[#fyKhn;D@ 9(dx]4?&ۛl0sJBA ./љ}#o8lJIg`ˢA RZ%w}O%wKi9 bzD^>\O^oJ1(gd߼t[ɚ*ΧiM23v$kz}N I/dZy(^t{]LeNVr~5z/r,v_㤶zlXE&B\y%-BZͺ\/%5gRϚr}2YY֔()ϋT=iq5OWM..^w`ee>{ekB!"*[ 59~ƆHd׿nbט .eqrޔ kkKLq [S/R2PmBvBÆz+s4iJ$UFlå볖GSLޏk|w0t)3QO,`X$HךJW4dR.W;HbY+P{ ^đ&B\-rLےAs'c=K-Ìk&]ɱ#f/f\q.滩ۮ_:e]+c| inmL/ µ0 c!3YyΦ&Ҍ$'+|zL~2`&`S<8Ύɥ9,MJɑ `^\5C,!^' l>"3ֺx\ VBL\MS2!c›0u#ܲπQ_̀Pը%YYʹl*{;;rU`0 I\7d42zZ'@+|LXFyh0uJ%;W,hYlEǫ+EGs05FGpbFǮ1Ub] JOjV,9!Gk `LReH:dž8-'!i)+X8&V`AcY,QVg={,3焹ޤ7e|C`I.IAM/ q B̴+oӻ]܈8kΉȦIP{os} *RL*!O)BVLM84s0WO? !7q~yoРbL%ǔu*0۽?Fkp,tnqr>`3v +6c RDM HXe.Kri40<<)=b|hT[DUv ѓ6uAʗ󑀑JT1[.7T-]5 fZ]f .Xk>=~t Bԫ1 FW3")ܛ[[lD5ЪϑynQkw0M޽B%}F"!*&#mBi-L0Ƴgi1NO 75:h5:x%nQm06y>;=a>Vfo^:Ǐ6[ |i+<ۺuA@-!0) 4fsj!Iq2hcfgW<G/ټ-l!3'YҺJ ɶ[X&S~6h]$s}Y2cqFO\ 6qN?[[U=t}"jr dxBaL QFZ l48'~tz!%gKtW"6\"z4;I@; (ۡ)wtaos5JlÓ3(@=ʜY^b,SirI@vY yQ3;&І{c {ڔw@M`Q'tͩEDq#|a.CIua`y?=9BÖ́Ͼl!2wV&6LM)tw /:S%\b> RI(uY(R Ź $ޢb2 QLőG_HlL1yxQSAkYt݆\t/X RM=ӥe2T;ƔF[NE}Owqeʵgj $ϑǦ6":,~|4 k'隮ސqLVFɳlE(>Q]s- >yY.d0jܺC.ChZyc!7t4eD!7D&S٨tC2RJ#)jiYm}ٿ/dJd6eFF6:,pxt3+:-0Npg.7++] rQaW>z7nj1j :?1pr|mGn@OFgG?./Ш5(A޿sf6] KRԪ tkKYr˫36z;?y+`{{8#JiB&Ew<6a\D:7n㣇XLR yFyyyδ̆Wu%)&ꂐVU#g*ww 箢E''J!xMhb&Dj /)6?bƓJM7uAV-fXL'3 eD9vԥFje$cPJ+!őε-ɇuCdϊGxF;;nPk鮀7 <5,fg+Or_kX6܅^ Vm}*:Z[ O>MOU\g.yN] Rq!=>d bRI&ʥvs"T/)H1TKu^mE^>HEUhd&BP;ijG7$OA*UjK(Y' :4!e.-&W0QIݚ,pN.kiMMk jh @JFj3cjˠͬG8;{Cr}%.Ϲ'J?@zwnrsC"9>sUgg&nH$G!qDκф*J(wFSnuIjr5f!}d&ۧx\ט}y?G_ bBأ kbhSf,j9k#766yk{~v&3feMi AB(n~z g lb& &4'mNSI\ j}reܾ S K8=@#~ edhvmC9>1.vFv}ܽavc3!*&j6L@{uclZ|.//)?sAZaH Z_G^%dLQ3Dt8(NPm"ĄGtqpRMF= {;Ox+_ruu5 J$Go0g0}fBϛzf05m)1_aVr(b;Nΐ"':ûwoqzv$*7"puu{8Fz* bZ6uy]kfy9t {)eFW@OuᮠצunU6 Eki9)mVX)x/L).y"וY_ϣnֺ/\k%g =#wG_1Pf}&gtkZ_7|q [.| ZHt[La|WVҁ5tݫA.*H.DA/ٮ F@Vݢ)\haZhA Ixr\ژkTiKu?5d7pf^Κ 65sBdS{)ڧdgT#ezMa55j ]]vA}}kD;:7[#(`Hh2cQA~-~(RcU! JKi,yMtMS(T8BӚsبV,j3F w"k*E(@qͳb7 Dg!GVdRŤihpt|$3GhZ#FZ;] xj)=V̈tytu_Sj~y mr{)l}?t˔&[Q̷ 4o<]8@5Tj"@η8Ϟaej[oxŅ[Pqb1$l,ԘVqdZKtlB 9a6C\a"Ȅ0RC[UWa= ~=3MwyFJ=|{/^>cj`4B +L @wB֔iFmb9ӧccc;{7x80ьP .7Sp лv&t4 ŚMRmR=@X8M$~g?V[-֤ŕ?-#ouyqzĽ;1c}gZWo^[|lcllsg'xz}>;mybԓSJs{69UJk7xFJtjbU҅:8shk8ZSjNoLh F]lsڹYT|5eu-RJH!5 tE{ =9 Қ,,c &5.(:JSI\z *u94<F#7_RmQ}/J .E~/0淄:avèС2&TT0TחP6HNʔ; 2RUT!{1s[jt07j!AJ=x_Lr$3Az=]5>ңԤ3z u~}{zW}o.ٓ4ќ UsHdbYb0r,Z` IDATϜJ4k^#d1i.&$Â֛]4<+'%ӌ+Os|_nTrf곟t%Bzf3&sz0 DXy߷;9dn"?gMѠ>V͖!VuQֳ}Fb=f$\r%O8$G\Ir(VG7ip/7wvgj˟fIC^@# qq|$gƢ7I|,5zTB̯2 kߞ+GF渕JN$FtYbz\db'Y=ܡ-GAPOt5:ku(uAz1rlRte9&dKSr$G2GVx^mK J͈2hZ/f7^Ű~r?BPC$Lߍx6Fę9:+m f6Y5#rC3p$Q7b!It9WdF56M )&[c,\B ;٘ [dHO8&VE|B#1XSS\hS~Vd ]4D%S-o6Y+`|6j'ͯ!1Zq^捛x gS&}d o Cf &*;U#ڰ,#ѥZ2!T O uyR<`Dl>_}/fXK";X{޼|_KL&#|^__3ՙUeD2\ qs۴&͗3|ǘM\ Q+D&4g?i@tt-ֶLKffbg#> |/߼d`M-..1 4=E#kؿQh%gѰ明x|?O_^w#9gޟG|Yשqժ.01?<))]—A$3Ź0Q=6a ) $5ݺ)e2+Su3i\JƖVhT5UrCqaUݧhȇNWh&GIY34n/Y΀iș.%;/[TC04K((uH(]4BEC MԜ.]u饥] 1JhA\_a@C˯!Ki}#F(:` $H~á0QZ傖db7Z@j}+ sg wOX?&ϥ,[L)V=kLA , >rS(\^j`!RXHƳ+\d$`m&C [j(WL &j0|?G/3#SiiǙETOʐ?#K=hrvgCp ֯!82f0ӸXDuυDtf)%{KYnտ0RJC>[!CfUF RVw/A2:S`U+Gc֚&8T{*!YkigV&9y3g|A󗗨_FrV( I^9Oe1Oyq$ ֡; ŁQtȢTAQL jDl'TWD& gՐk*ILn&<@5rOygatIC.)f TXpTG~>K&cu=efU8R /#ΡZW:m58H F0 "OV 61x:1$4X]Y)9p{lD/$Hqrz͵ L_|bf1!I-2s ܐakV#gˎB?bIH3tnl~4یԐ })UȽ7Ȳz)#1 yHݻw REUo6!ro߽gEgmQ2O,ZN0l@{!?_ gۘNGI*R#& sncHC6-t׶l CFcnmvVQ{9&iud9>y =ݹk޼~ͭ L6g'K4]F{wvwC4HL k!Q)$V?2zYn(2gj%6-f Y"vFL4 հ1?DicÓ$dDqD['Z, ?D#^&<ovln5eWC6E1:NGk5#!E"I9$; DӃݳ3Vk㜂0gdlX]rƛL.OV!)*匟i`fMbOlydGtZ'eLeB4hǣtQ&@NQR});VthӺ*sgHT2ET^q ^$ռ|~g6yVT𳓬H\CE8"y-yfOua|02ǒ@A \(ε5RtNڕq%YklaKjQȷ ;39D.F8RNѣ?^qedF׬)AL^rK9H ˅?EFKa:V-FVyl ] P eu٧kp)Ӄ¹,@9!cZ#X*5"|_@sXK#F`X,㦬C]eƬtfJĸL]e e}F[5l_ADAT!kD04Y\C[j6CCy< Hu6ֹX|9u&+ 8JhiPjhpAzOGXүA;)3͑$/MoCQM"MBzvFԅ3/*NYn )h(!A[sF l{EZ[nX6'> 6e w9Q͟x J\.!1wbwk(]' &D \[${#kҶR9Ydo"=eU׆O%CY8Lը+1di fl>tzd2%+ C`5qJ77b;Pt3 lJZ'-_6ۡvu^(B̡8U0yH1|CDθO_?*X4VdGrdn0:ϱwc=MT,f3\^^qAOCFpIj^$ScT ΀Fx@zဝQaOڕn#Hq|HA| 9ђְ}:p 7ǍTҹ~K~/^rD烌HLLT|S 0Kh2iUC#_*N3?߾fe^epcvOtUdA͕[XoA RBFLkh:ܜ* .J// ?oj^i:1бrNJ Sphs1#[zョD [hh0^`2l0֜dn%rVd;@ʺwzbTF $Ӛ`PC5@2s 0gG`.oa1[iAZj`oou3Ifx;{獍E tVpv~CF4moPլӲ6Lwuɬ1g X@uLi+u!R zۈh6"OP[d<aЛ7(Gn taq97YDP7ҡ6`p A{^,9DMI3(v9FEX$^oZFh`K"sѸ-֣C>7C,Kl63&{RM^Ak}W?a0.'JV?YA}m5m{cwMQh: q,N3Kg}X[C=%vPkPG}Nr=o塁?J:kEh*Jie8a\Xұz:uhPuuYSTr9vMlqYfZgzm8'삖Ήl˰uA32%|Tejzpy_jڄЎE 5zdg/ E_|Mn*dku R'+SWXS E_#nVjT}T491=p "wQw J"YGp|ԩBBAircnT4}Pry2fY#t=RH`J u4ЛgZ{.91Chq s-|ε]:(Lė̉s宙ӔW1S\'k DܟcyBTSQVrуsnGf[u es7 ~]/]J)E ԂRY!4E>?~9z;KW+ȩ VM)QG=R'E&1Ai~ȷ.0ȆT"6<$ثS*=%4Tb`%C3#6ˤa$T=|.wow@AvRBZOc6S6[jkY5Tr3srNmF%WkBRM'UuTu() fƇ=1B6bPC׸tANMgR7s.. eBߨ4ꌼ?<,IҺ~noǤl*Xi40ІF4 2ة9Bu&:I^YUitAt̃-lnI(hxzԦ?<{7 ^~S76VƬmc:ag&$ɍm~vcv6X[#x˛jI枬Ԉ_]]o{XLRZ.1e5jkhn#!00cg_OT`j8Ѡ7rx|FS;[h,gc稅ns }HH{:lÛ"S 4O7*ĕugSͶnݹP6Hc:p|zōeo 2K֤q4 7u\  ;Ȳ1/Sn iZ(n(VEِP.O/$  < [)brЦa)+}/"3!+//ː:0=\M5+[ BD6:4 ȑ)<>Zmr[Pt۞a!5e4Kj^ ν<'ﺜwjÆPtsMO,. ]Y_-}ߠy/,hFwjHZ a+G֘8,Paz].i8][gQw% dxUݦyWT]XN^gW./3 2JZ ʭuFbjn)=Sܠ>93&;s1c5qyp^YY>NW4J#aevXu5ŵ0u}_D[ab+l w̎e`9˹!evdJ{*#P QBRB&˺R%$i?y.'Ѫz(S_pҕ&),#= jZFpiCT4WsnL qϹM 4ԆniBKrQ.!>mk=Tgb*1TOs}sT& -MqiM1ܪB ,L~r^mn\Naܗ8QP~:dCV IDATƔhk$*jS(d El@]LCEUd2K F_&OۤǪTG \LSd9nuYgۚghgmuVi#$5#YhIJ H11Ck&ɘi[vԜr- ;\LQ7n `BaJ3T0|\x6dKdrEVID!W-9 /aS+a›q<8<[g"s rNEEU8 |tϘ~{e6Kn e1䖛C-n߹soq5 !P2B ds|ut 'e}+#ǯ޾ V76Oz*:Z]r2ŒtԂOGZ;h>#=/@\i<^WHcܦ9bglf$kQ%;tyg3noosMsnnXӝ,:M =bgtKDTo|?t`Cwm<;pm_?ALM:&,[  >zZxQNWDojz9[XLO{M BIS5Jfpş3 5,G $V5ˀ;!=bFs/~*:*sК&PYSӅyܼ!|hCg󢦰\s˕{!#0[4rfApuY觭3Ű wAHVܵ7Z߉U^ҁʽQf%Y] m]#/u\`dzIp #Y7A NEut:\.?W|\mĈ5`ĨMa\YEȼt(ùʢ"!ԝ;4o<%ZKy^lto$G.2AGǢHX<+E\_p*Y|8kLڰ4+4|ժBcg%4G'⵫8S| ݄ٓN{9S2dENQ@4h\jYl`>ɰ!Rf5h[P8*mȟdArJD&N{ mSU@6A6@aY`0]&`1,-6~boVTp}s0T,&%+7Lψz +V#`GF'+ V\V67obL >9u:HSDD3m/V➸ɀZ(nZ97'zsJV!6_zW gi."\d3qyIdk-}T6le Q=DEI9fD̙ʺek$K2#!g0bAҒx+N.P|ۇ}*Fk e6>QjF)ó7 1EIJJʖ;X|ݟPoskmFFs_~Οt7à e .++8?=C5l_gmh27Ą!zsFHx96 !s4رv]{+Lc6'nLе6w&Aꊛz~Q5> |)޼{s6`tɴ{qt|3tf- yj9nݺՕ޾{N~J5"D~1zC?8 y? /zcmv;D&YeKիWX__ǭ[wy<:9Ż^훷0G6ꗿD,.0Kfr::YTMϿNDAp Q>0P ;#mzN^b1}=?nS)?;!/Ӏ }Ib2IBqWi01J6!V,"ڷ6\xC !a./p[J,1_y5Z^4ܸ:"tMlܸygO^ړ㯵֤F#JWg9H0Ee% Zϗi+)c87s&#`i5ƸsQ}oi2SWPJ0Roxe&rhUIOz&Xu7Q߷ZRЂN}9*/EXmV-Yɧ W+#QhY.}@hVVM Bi-W6Z"MtT+U,%njQuzAh9E-&siʵ\[oO;$ jy|<ׯq_t=轗t]q t˿fc%~x 9Q|)Jg}~u`:;ؒA~^"Z O(.̜K뺓sV ,CTLɂ:o4_W{B]:Fkӵ$ms68wUS2-pn-L#6vG%7ln͉*Mܼs$c{^A/_=ۃnNfƍ&8<ONǟ0ᰏ|ǚ{9_ɋqٻr 7̮U}~zzdC:|/#KoqZauyQF!Fgk1{+8<`A2r>DoNQBOΙz _`p7"kF}] 6Vl1@b+!Nϰ mss:pwo ImL`2K `x`8"66!Wx@[P6WX}z|&W<'Ci"Yh5"sDuLrvmT)" hcg C4tjS6b}&p< j4`J"ehʃ0}AZqKsm pgq:k@+qDר0۪ђс'9))յ4"SGbОT`BxWUIZ*Wy c_Ӛ94: =@PCg@ ܶ+F[15Tl({41W]fF]퍧?˥ɐƮ0*, cdgꪶܠ7SQ/=\!^фӕj6:Z\`tF* d.G%T"uu(멧T׼9&(2q݉ؽ6'+ Uj!yv3T}41L,N lZygJULלu,rAaHXkY֔ˏG3%Ȱc+W52:τ#RC#-<9&^E4PNJ$?L\zgMf83T{j$q >y[pwcc!r)]ŗ,q ZMQ oNKtaMu<ṕ}ϥ@Mӷra)ӕVTN/ MU +76n6bV 2}_XL9=>pu!n\R("-..&2_af5A(8 ;OOa{PjPqmDp0r֫|Q(jղxEk is@zGhUIVE+c{,Yzbi6իq4/5sjrm>jɍBgZHB7I H^ &Sa+u%[|IKDE3Ep)yOs3j#rѹ\>3!D%͡T˫Kݓ=;|˫> Q-mjfs- ޾}Q|WSv'bōmFe 6Y#Ds&*Uv&d=hV O͙oqxqLM3 x-ެ! vwn)iD`eӧQ(>MiIیfRyrrx lJE᭭-6bdxϟ=wqsw=glα nTqrowu4#)jYsM*~sk_|SQSm(SA%~dyV+x5v7wyK<|x_hjx)nܸM6o֕l9gZ.9JqYfkNHf)Iq%HhWM_pz 5;疴`8g -| s#M'gt3iǏ!d$)6MȨj,ҩZ Q^"@Tׁ1fVFclo  B~wʃZ"@q1'gL $nvVbO'OQd6}dDR2a&Ƌ9v|=]b4Sf1e3et^SJUJEUx 6&NNX"tΌ׆b?Rw/t[RGXEs-5uQPCc,c(JO^ R_?TJ_瘭:SmTve:|rM 5tP:nœ8r*5~j mrĖtb%utPU3)P2WG"3Xke1K+HNi>k?pˣӻrA$*T12tL0w{wVTUJ M4&s袋ﱂu5%M-vƑXՍ!2m6 VH&D6߼gmR\@f|D8yo\lnqq%WHj^5Ԑp3Ҕt*UBd݇øh"r52FH#t>+KT4`jNҴIpo2Hr%:Fa+~=t}̈́i8ƝM,"..gc~͓̈́|oP:5Dsj[VlMpgNc%5g.Ph :,ܗ%JCݐ j96 LquFUT]Θv\P/9i; b*[n|Zu3b٬&k!GD~x "Qb<y5FcAXI>}8<\oa>2|WW|}AoJɚ":xʛ#K:`<n7dnN$>Ρ,:67y8>~ &.;u6ob07cu}fC%*|4#WxY@<h:cbxկ~t/j!~@6G-P0}M= p>f 0]Pv eoWX4p|L a_lp|1hxʧW_I.x>o71s GD|jjGDp.U[yCn ؽdrƎ+[hu|SO~vXI30_b8%3*4b!:0 I(4)[V#EMJ]ɹ$7{Mш2Zk8j@.4ܘ͙hpPcX-bYFFi% 4(`ܒ9y c jPl gbAYAmnP|pv71:wzC4`^QP\v{< |šE.Q@^(0pLO*q!?^nDkDr(j\ I^?<'SKCmIZ^ezУ(bvXϧU[4=Nme{D%!r;H\ծ1whPXXJ۵kw =k09&iP?m};N']ve M5AAy+/\w-Y d *~''%ˏC'Z}ň=Rq^ܽ`L@\)י D&L BDF}PZ gU-K̭Ux2CLtkhu hR]uX&g0R;P3pJCfUeO~?i^??KХ$d#*7E~Dp6L3C.#Q?xGpP:\8i-աLwePW.M MQ5V_N uuY]eRkQg9Ф SS0pa*x;Zfk8;?ʼnb6K=k,( ,CB a;䲪1Ќ]B ]ˋ\4(6\W뺍qn[IQQJ. z(OojL'&=Q.mEYCbX!jG-rF({|)-x6p6Zœw/i"ȴ4ق):ߙQlKvΌX7I i6Z+#FapGG5V(-@: }kXI̜H3%f s.R IDATF&mDFȢ}&PD τu&vˬUr*߰jV\MPRa?OM3e8[4J{ ?ƛgOiǨ5]lðhdjn{#RarBn9Je1bjc:/|g.fݻ禪3AX}R捵RF=tj; zNU4p6΍٨ ߁d qcNQ Z!B='(! B+Uֹ{p3 pUl\wÕ ,6[(34ŦXoqeuW0f"RnPEoULZ&RfQ$+W1Jf7.s EZiN(*ĽBi5V($ۢ㠅61R:Q3{蜉5y.RXb'h50!J!4W5.J2V|4F~P$ddRMhx)OCED3TQ Tj{Ope-FG)o:Q:f՘)ؤ#_VkN;GLYw6I M;x)UʜJg^f)k j7jr\ ^_z{6.֗^`=*=`#}*9ҀQ̣. 4j)\_[o/CD>Hݝ-+N&CM/ʟ۬I6c2zF ШMOyZ6W*Uf9C˵*LJqsL5r-4 =TNG4^$mn\ݽ-T[宆Cf\Ba^[2 F%l,9f+ۜ4-ދG /}UcuQg3e7jb^8  8[yVks_.B݄d Shjbc9j4.A'ΤkZLQ}tiRϋ1 u:95n@Iu$3%*(W\ ,7BEOTezi& #50䦔(T\)A/7[#zhٶos-5tVWQ $ g\ʫq:J_b=kb'iDWV08蜇' ΰ!gYRSʍȋ/S},AxXn7[/{?O+n`su͛\wttlF4h=>hyX\`7^*7n`}ytnzoE6:<>e]uZf /\Z3_}Uɨ`frh3seܻmިaymh`6`48 O'w0`qi6d`6!vQlX1c7gqe?Wկ~Q^|#6>ϲSnѨVcz㩇箿}[/}*mlm&tNgTe\ܸy ZSKP'?1,1v;;Axxŋ w Lu am*˫ 8QiT_GxlĈl FL:IJKX),m\ELi5MR'Os5T5[5~zʑNmn扚K2ߣh ptڣ3ng㜟'p 6N|6MjQ)eFzP #Fc0$*IK Ac2N:~̃5y3~UDz k4MJJ%^Z:'tNqˌ(E=9Y ~P qM{Rq-rU:ˡj+cU)NÊE7Icr4XS9U+m8UPTF~3iF+]#,M&Lʠ8ܡ-?XMϙ5Reae{[ElyXG3Wd_7&p5C+7a~׊NѦNKd<>.,6F́Y ݞ噂hv 䪸̕86L;S&XG)\ iSxmb}1#CSd5oDcgAmywK݊+"9] +,f8hu1X)9uc4՗hІ͵تW'JszsYP]EbGuaϋC=FpّS4ӴG'I7цkhP_ʗ޳^soO_O ߘ5|W4 64bՅj9oRkr M30ڼj&l٫QMdy&5XM'n|<7MB'd^9kwWxCLFM2=1&l&ְ|{[S lM AĂ"$J%Ny`Pqw[G҂-@ܺOhQes>-ӱ|v;B*ϒt ԕ RƓp .\"X7Yֹ`50ôCbp8>>fw=M0hМ[I{{xϴa4~=FW676PT%Qv{~vuEUx֖v;"ϐzSً_]4k%F16̸ͦuި?0JM4o?ƣ0f ao0Bc %Dmrse|?6y tOwxtTl g.B{~))kpS/bl`b2qcH MRCr5nҥ8$_Z>Qèz}n$f>? (a?1\BG=XJӳDh!kN)7A`UAI #rn/wv\bS1xǔUj2Òc)p.wh'g1bJܘ6!3>Gh[C4u{k(IBz*Li&r)"Qk6hefhH@ùh4f8!x ofA(40Y5)wf4Z2bGΕBφwV5bJ-`Ŵ8+j ft6TO!9b2B 5*3Әxj%Vb4N똣ڮb>845r+2]ClT5RM;4 ءݼdHA3 &u.xduag($[Ǚ;t|P({E2E\q~nNmv}]Pc%GyCu$!h3k4qbHRI½7TՊ^ e)UI\Ql@ >̯?yMt~T/"~W?9v7|ǿB(zW?U-tcWgpA<(qtxΊR=Fpg%i%6BsE%$4sKmЕA -r4ܦnV=BEOq2MZmOP"S1?ǧX_&kg[EL# Ƅqx_\k^v:qnӳ3F3Zst 2(s/1zM /irlѬpW1M00O,TZ͆J54 NHBo3,-Q-}Ϻg<#O ;:fd{0<}da"ƃ>J*I8:=,ja$њ:GSڜ2쨟biH&u4mK@h%<_]i0\X{lf"G69ê a(i[:LsIANy&gh>[zȝO xLVZ=[iІ+uqrUq92URiMnNhu6YQfSE3$cT^Kf<~-7&Vg]ghMnkX\q5:Pc)+%z_;ačhSA/MUfGc X(]1T┈!VB4%l,K]$VBjTp ;s|.ņMl~_qmcqbm7~o^ƒi<(1\u<%Z(c,6@b=Us2 b&^x IDAT'y#U4| tQH|,U Ot+ijFC]9羊ᣇQ0i 5*HAT!x+>Ei'S~ҽKFt4$4b4s"]ɄL䣡۞-0#n0B @aJ4 1X7 D͟"zkR(K|OdK1\zoM4H3$)Fi7YsPBÎ+A[-SeFI83~dλY(3_ pxd7^F\mr'{yIit%eeƷԖp$yK@EvML͙hE39qlEڳMBx5l4>-T%y5\Wg;+՘g5֡Fka$8бFPsͲB<.reXz47QjL MDP[:4zӇms٫>8j5FՉ]D*"w2[Q! #2m8jMFUÑL!saiU3LAJ2}1AE$?PXkyM*aߋ2 TfOe=2R5*&ӳb2xs>`d *f L3DyFi:FN@Ҙ`FwjO P\x Dz6!r ќu'47>sOQ]eQ?jt 4e˜Nʦ$BLu]F%WNzNb֫Hf7lc4|ޔ=Txs: Lyޛ[aݘsmFh! CA!4GqD;drB@s Oݍh .$ ʝ)ҩ:&޽Z&Jx?a*xzp[/!< PENttj$KrgwT34:)ߗrwĭ^> {ƅM?ى&V17Aj_괄3LhToXfԺ\?B=djqv"Hh3j@gy~#|*`=frl ziqϹF$MStޓSOtJm׉17jJ߻aDn):g'X^݀6s7xsiz/]V{"6/>Ӷ@+#"|k_0zm~Kvqu'ܽZ kkqdA #35wp=~>bN;co¯Lq< ywP`:odI4By4C9 iٵQyX,Vф b̢1%mVD!N+tX45DZx@@^M^B3)\^ZR>ygՃПDEWJ9NLMMuZp8z5o1u e eya}W*U^ELǎlБ,~Bc36{H /P&+U:f*H/oB\+ԙH'{C\mޜQ(\1Z+:#,?: ZRޜHnK6t9^FrUkZa(CRۦTӈ4K40JIui)+te*/w,FScP ꐶsef讎eMJTksJx]ӝlLj c^0ø8[hZTbpl(|Ggd]0/YmUT35\dOZ8ɏ Q4BfL42:w)8{t)h-D}k܏^}oGqFh.êtnx%V~vώ)յE݀Q]# h8g7F.j'U6N !! Ӹzq6yNZdu"4pШ?OG8;|G>ђ$kO8JE]Te~Uw6M(d?4Ng:-?qs r?d47c{+2;Mtc>tR#cp64 Ri}8bLqZ8}kWAԴi W??~66ABM$&B9NSvLM$إ~hS,Q⌢ i\৆JMRB.gx(ZE-X?^f\3X08N#k5 $ERBz@:Mb4~t _T($[6_[4&r6l&?3⳱١2p'{{L;]]Z濛N0vj9EK[ˍ:^xӟ<_S̵q˸݃=S}\}yzrST5Mכh6zXZx;vmsD %|4t ℣>!fZ8|܇IhJt'3\XYQe4&Tz J\Р~ :)DZij 6#h+5D4B40M\c>9+~yy&㥅*޻eL dWݢDXtx!r __CFXmyr ax:}1ѭhk}t|ȆsKWКk}a0Rbn~G`6Fs327MtVAm-W7n]+ceY8Σ7T"zz2@ECjL`L8/J 2J~sŒJ /#[5N->SWhFj@%Mf~sWF1 +Yyӣ#ԪUn&| k0GY< 5>4\ }Ze,&-EG}njY͚ ZkvSQG XXH 6kLNyXVj>2gtQzV ܜnX/nO vr]&ipWPg8BX =.W7vݢe*D@MzSQg}4i5쾟:(yyIuQ kN-ys_!ț,T)&U ^k/`7/d": ,P!yj2GF)ڡV2(an$#/GQhSd<)~rzJXi?A7;̈́4޽(|Nhdڬq .̦Y>\*/656sFD[OG0:ɸOvQo7P(7ўyspk)MAC^ЊAX/fmbRZ 1 c%FSy%8-86læTIQ@UjQf'Fz]=F_C<}= FB&fbLi?%NӜvēy֧r]bEi2%vLlV>E5)񌵎Q^Gt\L!vǓzUݪ Uٸ2+z/BzRp86[~+_zUxP^!wՕenace W7ѮPUM'88=p2x|nO]2r,bҧPj^Ak"<#;CZ-D#,[C~F@dD;o}ua QJ9`%x%vAW?5]BRgq1V01:̴ZBoLڇxpV nsqB.D9sx=ױmz >vGz9%=fkSI˃DZXb/hVB)yJ{5EW|:$0J:-}e*/sVDƪkf͏8/E+b qy;3*ukrK|DYKτD ;<n^@,jd'eUb\eXGiXY4?JU@+I (^J :﹆ޕ,[*$.n)' u;S;JM>p̍D HMu]O tihmMdvrN/jZ~޻] zߟ×~W"1;./*L(H31>L.yO*:PG^74Q. [}Ӣtj=329]iqz[b*'L܉sYnVs e:>ܙ~țgQX^gqDk1ș;eU)/,Ĕz*F$;0{\yj7,MhRO=n(et<Ļ;[x5r !!x hGcЛXO!7vqf31zz xvWeT5jUv7,Wڸs.bEHg)v 4X QD,i_Ʉf<`yaGǝUYm`OֻL,`3xtDc/c6TF;AEcwE2бA7 Q9K!gnc}/2Ɠ.N=>G'lfɔ~ocI3-D62NIr\6^f͎DۦP48$7aji/tA=Thx:Q6bYîՔM wi"0lǺ>R:$rq)9-u?5J76/߱VJk,Rc"c09R*ޛ*8.~BHF5o,#"b91A4&%WG8:W6,VT[Zt4Z8g.͜^3ܞJ#xUyxi^fFDnE~E侙+ǞȚ^]]*,^tq5QyBQ=^29bcΏ-.dd5ώ/|IPsP5 .U=NMNbBDi\C&ix*KM5popooKsXj*%~Uz m<Q*"~TGRNؙ8 4`SF4Sn2i.f1lb`G iVdz4HryMLh4^@-5#ʓG6A9H~di#fBa̸cꡠ5eLu6 |?H䁅dsRw8ܪ>B3sRGPxpQΖ1c:Kq)z q*AT)";El |mu 7ylEtz=qd$s9(i6xwAQbѪ71zU6KsvdDMӧ$r1i1\E>GQ՛sJ^uM(Z]2W~q:CᢔjSܽ>|_ޟ4ҖNF#u&M=a U1j&Z.V9闚fVxM !*%| κgܠmmmc3khXcx1 bDx=,,V[b{ Gvq8Q qrzr1vu[DIJx~:ƃC̵8>yTRj"jfɈ~)#@) 8Z ( D҂:He,-2}2x NɈ* 1$!67ױ,igϯ0*JoZCjpEewe9}DxvLfg]a]2E>DӦkc14PUH28#g`U r?=MD KP%6jkjhx_O1%<>D>}zp0ʹXT%L]\f9俗әQؾй6\in&PRJeK\k3n֬;m>qG K!y,f5lr͡R1SMW#hfc9L NkZ>+ٱrEr>slPa2o%Z]XD Nc:a}}P~7s\Ãkk?)???,m֖sZhX|!YlO7!љՓ( x8 CȎP$[لA}< Qϓ1q`2ud3A᫤vd~F3qVϐIc׉<*`>۸N/0|`ѿd}p UϠhu*6H@o:jP&Lqhƹ&MWABW枘捺[i]sZP/!(&? YP~΍ګ|Iz2Li_t|ox1 ǞLS %v{;z/ r~y ΢1a @jn>wdӪUcdU N'՚89BpfД'7ژup4"(Uq61V)cMݽmll^hQ%윜vsW)IZEMxݙDH0&NNO}o|Y`vuy7nyI^WY#0ahvhoo^b}W뗱6v>MM:l%3|k_Ƶ_[˚NpZbeSE29C! *5:toKzۘo==E}nfFEB_CxS.&/ SFlu)b[h9\ G],oriMxVm}wXG;Eyΰ~{;1R(UjƔ8?huBpҤ 29V(Q,֩:JT5Ų68^6]Gz3imACA k^d"r,C+k JrDeΛʬցT;M򊳰f3u8oAsvʈ5H2tB W%_!6%6W1 gz ġi`L='^!deͦBuJZL䊭 }ըߓCu@ jdI#kn/? 5}hBhL^$.uCӅ0( @'4Egt-T{=5EdJCutaqqcr7LnwV2w #Aؚђ+nV+YjQoDսuwiƪUq 7'̤V餢 b~h|~-(B`9y4i{6-.(!#IX9o:Ts'D ;>τi8 -50]JK0P K؜[ş7f#tn3B+2zƃƳIfJ'1 a2, L2!'z=u^*S:BK>kT)GpAFW ,zJ@W`=L./-U):3͙h8[2lC454 ]7IVQtB "WR,.%z0Ymc!Lx%!&XYE]̢>;d;$^z&_wqrvO|xsL{$3ԫԙJ9{+w8f }An6丑V677qttv5%֙nqL8Uo. 1*^S!{F(ک[PB45hE!zs_Dt2Fj2{G^ȕFμ΅9Dzߚ`4z6Rץ+)h7^:#o:f^`ʣ# z}Bf32 Õ79D"g_(𽱱~ W.>ų8^y5LFC%8:9b8!kxze*6inr#yBx1Uӄ  jEF)J&]X!/rt5zYAlxhX۸m\tw<@E=͛8>>hh1QhǓ\te?,3}:!cA%SbY;4mF|rcg\l2Sf2mLC%ijRu'edENgb:XNjIHj>i!=GӀHKl9ΠFbmJFDFh *&8nlldF5K"Us4O` sEN"`gt8JeѹKQ[ev.!͵YsAnzX@ՌQc>?^}R51NG ώ[@ak|e@ՇxғUeb2 ͻfQ3Yk?ul\Ckc0+W戫gYWЯr!~ҠIܰ3mMY#^2 (tȏ&I55s T4 hd{FDpxYQYnh DC38ͼ'|`Z9ݸG*,J|Ki$ۧyC~#P[?O@6#<4~XInAӛ*kW0PXq0BeXDjY,ϡ",(/u@6o@u?(\ʱAJ#kGvM~~U8Uхk][Rэ&A\9І#Q6& %\('&FhA\kbQ<>s%lq A4+1#\t?{Ny!3FIh%r 9gUD# K.NfJed`Gu4"˄j%Dd=3u>ƓCm s yX¾ "#H(#RRE U$%7@w'z!5%CYL1 -}LYbS*."gS%p4}.0zE;,w9Nq$E( * >LCrrpVvm)be˗8>DWƛolp( huj`bz5]S3ߚauFK˗''ܫo0e((%QE{V1!S{Lac2!h(SFgo ʬj~sx>`a?{oY367OGXYZwx  Jb4Db6 ʨbDZ㸠J}]?~Q/ܴ o0jGŜFM0֖̿qz zՕy z+ #ݓ0xxdcQKI9X/c41=Id>iH< ќNF|I x !99,w3RH{X Hndz%im&vI*yթ2ߜmऊ(Z0(Z1__YHSh6K봡=;5ZcM\&;RWl8lou\XrD'pՌfGsD*Z/jJb23974Ȣ2d5]9l<Ĩ^i ("TlO,EKh$S:d2Y#L@&Y%~ol5  F*$LVt,7GuepCD5Gֺ}fa=rἳf8F_i @ k \->ͮJ@%ΤsI<3FYtx3U+gUdy՛3P3ʜ7I:ؒasz\)3MY+nIp>y%XM C{>Bh"[!,Xnp@ $J1ro@7iDZOJ Dg6h2Q~)Q\/lgh-}M\3|5r?ܽGe[zPu+׫W/t`' jLxbDz`9€ID @)LÀliK2j_\^[{bj"it ;JlTS VŤ 'M]i a|:)fF%pM.D%s'}dF178Ãg?b a_=MVlSa,}!7c2 h7;Ll7aNNN|nemkx͑(~f6K Vߵ5L]X3C-Y`rLRs@A!\K9t^v0Mqe>>)_KD+F:%$Lf})!_%fB.9$utL$dн=1j.߯޸~;{hڭ;[WCRQpa2"qDaay O|/qTz /_kS%_nc:>lD9u:k`ER"qF@׸Pz%j Son xViOh*x྘'QTݢA!6 B)3r/vRD : Bj$)J2p'ab?q N:l4f\u&hp||BZz5js>fx&;6"#ċOy}8F*2"NZkڌ$ҼĢ K?K81RpMrTB<`:Uc ϵ1{JDMfèu0%7ْ6y bٳ9&7C){ڈA= '&ú´Geh)\ǯ#"yu:E;V=2xRuO&'(q::)Zh䙪7^+[In2U6C?@mðP6y|}AYuC̕6i^i>C)'Egfhq6kP.&|ChMZDž^_kz֚ \*/5[ ko3'M0]+oX(\g&2|, Дk64*!Hu1EP53<ל,zI(i/ XZ1m53;O& IDATFYr^n=Nko0|t_m_3]xܻwo *xsȁ@*xsє8EѻrNY5BTP[͜TL68x x Ԁ!N@'>Ք\q]y E]KCSjq *'Gc Ct4?03Iz=FXP-b8SzDP>Ikyg?S{nS̱;JͧFڴh]|P vNZE1 CtQJλ:gEsiBH@j hqiEy9=cT]2eCb۵Zzyh:·< jMtmU<'=FьQM&؉qDXLIEYIgz kX0Eh#)(黛LuM jhq9H=HlT Sj,iN?7=79Mga L-EєN ɒ]+!ªOLX (m8꼖 45Zc6ެ/wwPwqhX;pfgx W{|c\>Ul]Cj]\^;,/|<<~d,'B4Ͽ7skx[oa88 7.'X_^A܋15M$ٜ8=y Ojoͫ|W;kNͧHS7!8`8Ik᧟~[7yֽ8hg1B4k]Tkm>Dp:|xou&DhW1@y<=;HC$>SKYge*;w?_gm- evLeO;ziVcJ>L6g3)>φ\GB"G[_Of3D'hnʭbuy2Kk٬Nj`6'}^kUT[-$f1ls,T#'GX_L]b/FcF/߃n'gJdYVAL3tM+kf9D8DU1Nfp !cܼrGsz">gJCʙidn@(P أ8`s=#K\Z*J7|W3J'[u*nD˦٪# &dݑ!uEA vs%{|ε C"WV|q#U @U+]}IdJ>J⟻Ry0ӵm;pb*:gz&YӴ v:.HkELs9/N57(\02PbMPi, UZKxڭʷRYj #Vٔhe|YL:@I&}y3/= Z[VgEo[2j&f=ekL Zl%jϓ+ʙ~[MK|_b54@`S2W S]R's+RiP&u}j(tR:#PRɈ;Mq7I?icXVхQ,#"pna~HHӆլquuЩ,r4AF\aATC\? gxWw@e -?'$<"EjM}2HYiOq8S~#!o L*lF)ETk@&1"HL S\VP4gN}"rc1*m=jxn2%o937.jr/L\Zt̒DT>'h6g:gk(i_l8a0ϰ?cSd5> ġf+l(BYaJhbW +U{uT !ST,yyrd"Z2.ނ=1dk 30.fN#E#LeO=D*^2rFy X7 FDM)+(L*aإ|ߑp0x4_ay.^z o}FML!qz.4XHFT bZ?l,X8X² se(}'O>wѽpzvpp;t5l^Zj4 `677?ϞemddZ#ӧ&D:†1zs @XmRm`4q.mG;qu ;&ĽcہKt#tؼ cL8qnj8S$t)O=bn4c,.]L 9NN82iغ]2\} ͅ-AtʹGqd/_bk \`iiO1=?Oخw"2InܸNSg?fZc aD,,bm* p贗ZhݣK+Nb6Pi,`Fc`*Ub vnL f-8qho Nt5juԪ\.^VhRI3nu .vv EE gVMUr);Sb0 UonV&WuFi̍h@E 2/8@Yu܌*'dvEףL"I0^@7#~E X݅Ɏ!G bg[s9Rwl碄#osL,6ÝbkS t1zqV9R3QϬhЀY&SQ@mHT`n2h}võܙ!inTkgEC?+CLNĊf%Tkk, e='ޅ;J`!zT0) _|׫b3e 7df_.9SP72Jqb>q72MH J8 k;Dnmm\{Pk^m0hV51)ܜNysN +cgӊjJ2;$ㅖ-z/r-&-Zs&V2ȬKyMi!T\驩sK&Y_<~`#&s&#<{I24 BT1*] £g |=szO$KY(#ؤY;T`4_T(_b_c-)]ԄI[[c>K]*y%"_N!W88cdr}>&!vr]VѨ _^<3dS1KS<4>cld(f ,FO};譭 Zv&VW/qap~5Jz]q[*V7`dͤG~MTh/ >Ol-ӫaapN=AF9Q۬'JRgU8L0$gX]^jC yZN+]Firp4BNl8FZ4Vkd3ޫ*_A}4 8::;c}sų CllnVvlVlB3xtѢdBdd6 ~5 9REkS5e:|}"0W!G8|h S'SSnIG !.QI5E5xL<lRF}YzHHi6 $U߈yG__KF*}[rN% KJ8uw7 FK1ORG@EC^,o|^i9",]{kތx9P-WP=^ r7W#؈n DRM|$)Ufɡ\q8^U. tUT6Rui~2F8)ϢqYY^QGηNΩC>4AXa[$r=^㬔-3_dcI&c).?'264G;T,uZs}0߫ԼRzܟIJSzWWnLi چEg<y\0&NЬЬxܸy ѨTRf济(TIxԏsuWjfs>|hc Zf8ӓGdb&n.]BT/4wkJq8*͙*L+5t!󇿆Y:SBѬLsahp; qɻt*Ռ+JT}fYJ&׼zx&JLrhNjtr]Ri8Ԭ[",BхLwĕ\!Dkkr6-,r$FĈ>E^+CRaS2(5%{qE;YR@snbd+r!Sl.SS.Lr7!1=w8LI$4,ci1I:Ee06rW.e1 @lh·;Xn5ЄOfgHfY+VӹBŚ4y4Pb>5O6'''l 慛 cƘ܌a9Rk檃f;pՍ-xN.SJAjq5<x{غe yOyӾq_׏ټC0sN75]wxO_ܗyD{ᅢ/Po,ͷv 7ۅiTTdDIͦTLNes7ɜk ֱxFs׮^%fo;S$cfc%NFG~yˮԋ kp`ڈ!oQ!5,`!ϏNṗGx"JkXoR>eD4;((qLoo5iIY_Z1jAD &hbkay%Q5T1+3sׁ:!:(69H3v{n(ONG\|Һ@u2e9KhN]IYGS6W SgkTBk&٦LstR[ݴIʞ\-3mn >K{*Ny&fyA?ٮas.@0;_H[iG<He627-ʬ?uL0WN  w,MQEn2hŹjiIu&Ƃ3aӁHE,|*kjt#%DQ6FF.(~x`4b͠rd'J?w(sTM];hkC:B%lĖL+8kXyRyem(h2|6cZ)3-ln`o! ҄Yaee 0nn]{~S/N؃ !Kyq 17q]_^A]M#mvXf0,rHĄў2j ZP =l6BMBSIkc4beiQwzv,|ʟm0?_bn^:Bk25}i"qgJ\LDsۼ^޾}!.<J٤XLD)!o4ԏ2eT٩;uLU=$ Yy r3[e#U֢qbX]tJ_ό/9(UӨVVg%AugIfL,(@zQKN <*vW5E-Yr),a%3nE'3yaGj&Duv-+<꿟)կ0 .+#F< 4]=4VZk뵦)i^- Dy#~ b?/:2CaC,DV9Uqf?C IDATVИ[b)d5(Hc%f1A YFȪ*aUCAb{dq=Nÿ?3zPqFSzrW12Sub+*hVEN 8ɽM+'& jF5V EswGKU΍kXM2R@lպ J Ey*KVgy4޷oq$ͰLb}O" LQ<h5#1#TL|S7r͟5Ȋalq<fRͪת"+VSn1 o~! \[YsZi#lX!‚{3C62'Z[hcjY8MG ΢1eA4#Mt6G&xnWViQR^DFPBn[\RlO|6=lGVKL["Ѭco Hc\槤OЪ7 3V|fg3StUFc'IiZW#7Q6q~~;wbկ| |0j?N7s-\ݺý}o`Y;K.ˋ+ܺŔ( ~*7r6n6Z _$q5xoQ:j]B 7_Çnp#*IRw4&kΏ2 2V=f`4hA!4)Ĥd0E'ؼ(X^ygaK/wPVȌf A2!j vրd6Mz&xQk`4:\ 8=9rIJ5tzMDnȱE2PixkϥθDT+-n蚧k?E=r<3)[0aO֗!l0Lx3Lz~$zQN4>;`$ u U410φJ_00ֺ0}9 k1Qs1:>m@3ȝm}ĈGȬ:X`ݷw1N0y* sVP{9/?+c5tڜHѯ (=_3asTfObitfgSeD卜6EEYnҋtr3ei%/ӐK%fI-S/US4bS5Ӿ-AI7֞9'&I 3<%$(3v|)Eߘ|(}, *JmzXm ơF]\hY&Cz] J4Le'J2ӿ"F;$'<9L2P$[1"9`] ?WBak1cFY[ 02yu{8+M^ˏԼ ?GOٮQ;8M35[)c(dr2,@taΝ $L6Ug:Wb7E2q_ΠЁfWVJ*9髅Vg)i@m?{G /,:LPسT蘱/4]f}b 7lHU Pt|6! ~ZӆQ&PQE}?<.^AjS{)" ]8j~i'i(|B6hƔy 8X ̐KjIM_fO䤛FT)(#};}1荰KLf͆<`!5Œr5ԍ)FT .Z*bA4fj`t:nC5N #j2^xiRD06hWL!/,{Ue)TFҙ L>#[ĵ)5դ:Р)!98)TᑚX#)̉C! )-&լbZьsQ@"]-Q3=Rܺk=4p#m2Ґ܅*xcigA#?b7 +8V2Ӡ!|>yrMG>9;v0My&m>5xڡV''ܐ&c\v;k4kk0L 2uxkqEZKYe*vmOqcEt 3Fn E^>*.-d3TU6z[xx$*&<0{J%敛 n5dpa&f'S&.w~%SF; WTV.]s`5|t-ktIüdh! ]0RjۭtDB g 5Z\72i'4]牠4nf˩o³GT@%ݚoŃ!|}DžD Ek"ֹWdX,,/!1gӽ|*9ѴO0qj\($o2I)LԦQP6SGnmXy=*5a$Tm񩬇lNN(&4YJ}6f]a SA\&y>|9|LM/.S ! ͩ&?h%:jd8z+L?ܺ+xwgM\]^am67oA<k޾1QKU\ZttWoǘO%CDt: > NO;8|v ںF0K x5!Nn%K&B[2v0cqMi0h-!S,uZM#u3x(0a @`r@QSTQ9l{F롭 Ƞ'pFĈZ^$+#5x4Y4色?y'~}}G~}G?M}ʯ*666ٿGba?{twƝx7F.VNC|UF</n4ŠHS8 ; {4'MOJͫorijԶܦݛd4FvO?@4|;m52H,(=fO%N\NQsiPRENŚkb1:T4WBMͮ} J#=,b']jVk*f0X 5a=kN#v5hM$"1 4nY%4kdB0+Sp|{-.J{z?j̏1VCr|Wb;I3TFϔW2j0g}L~_koQ*Mtuckkۖ(^1vfb =$^F\]r|.z]ϥ5ğQEϤ 4z\>5FLkl s^0ض#ߪ/1ӒoĬ6jr|:f@e"!'*MJj0G>1op{|50ƥ?S?_k)i)7zKt4BRPOj6Od- MU&$(Pn?' m&Q0mifIM\ 談U7JeazZ3}}> 6Yv3 ׿GmTvȈ%)}y|,we wi Ί4Ը@_8-̬ʏ҄gǏ K:i^is%OMC5R]֗XV%.AlB2Qn+elVJǼ H'<~/l,br`g-y&cY_DX~͐\yjIFTt%#rBjԳ0wٓhg.#TtS~!kX~SKTx(68QS3r~25"lרʍ,2hNuKLS։2C@GXQ}EN+>N9h00Y{;z1sOÈ4t t/aՅX03aH$ɓoƍШG 7TG.渌gES>duek /$*#5V5@9S+b'68EtM+,a^#'&)UJ*S;e6u-C^ˈb[c6᧘@{&5v 7 v]45|c"(\޸̍d:ƃSfrjomueSos..oiUo~7d=򃇟ҥKk&u&ڽ5ܺch|)z!Qő7nl~uti?yO>"~8a2Ơo~'0Xp˨Tz-.sQ3|:7^5a-4+ƃ#0$M8cu `+lX)V9e2|Jȍ) ht=ӂnr%&S% s:ǜ8#s&r['䔣lK.6Vjpť~K=!yZNriKS0aîw9)^:Jt*5I~{rݥU9M9r d1lUcDɥECω lC}폥' wWZq'vQ[v IDATY $opeS.W>8s)_[ mn_//A1,0ס5'lKiVRB .$߉U+(9V4O8ٰ*7f!X BI BzP6MdB]&mѫ0/E( %jϋŅg"lYKժP!1ڃ(HS3ǺJy"E;ߐE(s>,%/brl^%PGES$[Dc%%3"`MMBn^Ml'c6:VoljFg.pŘ=Wҗ=:-̩Dc駱fsz4]/sQ)Z&EI2k2L,z/t24:,j5IΞמQs) ShGy5\q"c#èAJmeA8c%&zzpa_]*:z6^l;n μm>ïx,/o M;8s8?SU%a!_q _VM9QLhB4* 'OtW>Ua?gyGXXhaO1EE#6D}QXZ!k['}*'A]`8A%&t}vhm:BX4d|7ԖR8`~be./x`wy8+9Nժ\`=R6X>QbHϩ'SI[YAHcjfr TƜLXT d#״+%t7P-j1KK.1qz]y]ʲܱG”6IҦ$7aQޟGgxO9K0ZCLeD:cwOL],,Cؤ+:JA-v{sn5dJoթF9Λ\h?W&L)˒&Q&tXxZBV+nO{S-.|aO;jw\ԨȻ":4\*''R2Xђo4cp7Ci5|dHi5J?Ͱ:QO2 jѝ#ZbiME#*RWB| =S2MPIJ4j?rE㍘9K>W 7KǥI+ Yqߑ.)6 w diCj<jT{M95^_*O'flJo sqs *hT-涢&,s[~ dt:M*^?{4g]7ϝz~,Yj墀(KdL$IP dRj2 ZkȈjJ l>3B+52cJ(j4SfJӈcD dА)2:IlrHMJ{\MrR޸kcƘGǀcu5 T۫L[?9:֥˒M7}y`qq NOpmlp3.c{1߿:)AhEt8M'x: MD!f;FCMԳ-0?㦿`mC|gvXPhgS<||ZXK˗ jt"D~ <˯1EJ0{%F秨V8S%N^^AbQna<~.zК$@MG36SΙ Mqrfβ:fZ?;ti29C<U 0rW:}^㚵˒Zop!=yHk!_GH ~Ro0(~z÷NtzWI{~LdF`yݙ%S%EA|qH74k>Șr++bszihir7~Gx͑bm^1ߑnKJElb\™<YBHs Fnǔz񱮨;}"=j ,\FT0wI赕NMtͩ^s\ oLѻ"K(O/JɛWU񴅳-rgge.ymt LotRviɔҊ-{!JeΜ)"9wP_{XrdSwlZ>Kyèc~QZOW2K}? HGhz &0G3mG{굩 w;$Q D e[JhaJ<7N=aL)%~V#Sm)ȵ ̲/`ۿ?SG&/??'oWWg*|)t\I]rPvn(M J ͟5&׹X[v"k$U .<] Meiشf4gz)7UrÖג:4*]dX{|w9: yF8pa8<9|?ejhՕgxxp3 Ѭ?0Z[;LfJ ܸ~ۏOf-FUC^5W]ý?Prb ^ aRĈ o"a t^]BNg|n:34j\z @lTdD!dj^|7h:BCWP͈`Wso^gr#ySjh=Rլ~B(tYcx$TLzGfR 3(̽mnމ8BmA;#rJ 4i58.fvo S|K6E5ԣYѸ1S?|;DSZ<VQZ3vy/*vLyͩKUCΰxkOM3_5<&+ӏsk+d9 ^q9Uhz2tzaHv24 AIմ./42KEρdQ4/{$I}CVEWW`w⁠?/' \ .l#lUݥ2+ufhvu%iXVs>e B/;jU}*Ӂ^ XKt2 +z@D:+r M\e' aibUER9+C]Ylyy.D]A,BFnfnyePoA75?}hԌOG?3Ex%neoJlqDn~?.% *dI e5#nDL8Jɗ| E7)ifʫT0^i_UKh>Y䰘a&QפF ]9ƩeYj[L!I[?1!49% Mx tO&NnC {E3 Qi4@+VY%@I6:_B$6Ma^y'U/umd;Q{SX4vԌ[si_A;!9e=Q3Ŵ5QSB!"F7}ݓ[BQ8+42hC)#lM<[QK$M|MMhO}+ADBȂ2ة(%ġK4#TnQ:]αFI kŌ6#2L,zqVʬlB$~HLS psY2E[nL3BYcKxd:66釘Am[ 1J˔]*DhjHw92BR )PƊP3H( L$$(:$#ʼn:' ?Lp1B;i[G) cNGD0-=B}DQZ*-xzz*OS1ÀG?~""six( LgSD8[[1qr'dDEyt!./.ypB/(^g3F6V+x@YJZNw9ob>}ݡ !h4{=t:}O ?w9}1_|/OV2`1^8(9~p}pni9[7%c8ib|̍'O#o9ӱK"zwkn\b2:Dϱw/^|/8G6='x#_Q >*[ggKxJOrF6'D 5Slc2:b#e6g|.Tc-"O%+%5!_QO5`fg45S޺C Oΰv|mn5u .K =9VHh~/^gP0lbN-g6V܋Y]t{]|X56B";FJo#B5ts/W@cmd gdu& IaF2mK\h04,0+Y&FC)rJ!xO(] %AҒHȽEToŠ n8WpG*B<,#Ѳ@}- EaW-YBNba^ zBN5K5jj1?a|.?ҬZ*UuńL"c8! 55U#qV#U#6p{i _2- REu/i WV9}^Zkn,⛳D\㐔Q$5 e\Py$HDfVkXf];Jf⩙X p9gƍU;sڻտ?oMs- WrGpss+gd9Z'"TlKY%gUxcE.FTKqmmp|<ѣ$2e,5! {592J/\M]D2]}l ~l_&Ȑ7Ҫ5Cw>Hcb±i9*FXBni싸IALhPJ_;m, ] 4T›`0{j4_ M9 s, Y"3ļ*orрzt It"ll Ѥ-L.n&/Ϗ9Hpow_LO:&GXR>"EU[8CI}) -D^Ę, ^`gwlEHȄ)Z;!yS"͑M5ˋ\L}f:iS -1QlQ{^,K!%6pԻ)U:W^ol4!6kn;"-Yga٘#&7Vz`M+ɥ>+3P-_L7H$J|s[V@vf?8J)5`bkUVȉ6'NH3}ev4c`TSvkXLu? ϒK-؛3"=<Ԝ 1>>5F_U# ,hhVW"X5*Us,'o%ժ x}5ǫ#EpKF)! jhU1_Ӕ7!0Ȇ%GG|DThaJ(2dq0#"sbh좻xN,:G*ؙEu2J%S n=Y>=c6z/ܸscW)4uDKFt-'lvKyNYs_iHTr7_&xyp۷S eUK<"ÇOqCd ^ *Ҹ_Ⴧ ?w?ʅKZx3tsud_}_|!|>H>:"!*avem<5pqv_}_|2gh]wqz|D=ndWn`sc3fׯE2%'?-S")W_ֱ~'Eped$ ? bX_!Q +QL|c6B7!ϑ-򠙶n'ef|Fkɖ%FVWz_sZ$W)r <α!dT5MRxcAgtxF1p# TK;\O[Ge~]X)Imѿ~s3ԄMiC!=_mJȡηJuIFIҟDn ]P:F[I27c( - ;Q 4t_u)p;}d '$Ya3x۳i."[#u<2@&{l`kZ9:uՓWbL\F (BQtR]fdUB*mb$XiBRߨE{F'HEcs0_3*Z*se\c1-G@GN{'ǘg3, >$N9^{!7 .#\D\2'-ɏ~ğ)]n]h;~Oӟ(xs7ۻunܸ$83 ֝\Pl{ӿ n\cPUSL&mx[xloa? PVlյMƧ( ^{}0hW8| T ;;8怜Cad:r ܺ{eوrrnsBk5h^^/{xcyp]Ҁk]L'# ] +eS.t9nDVMH@(\a 8_ VW:HrMj3L^0pcwM2`hcB! Bv7qzzsܿw,OS<b1c8\L}dI xI#6}K:O123̿陒M)l5%eZse 5IxEW@L/>k({{\FR dgbG"nyñ~(4fbe'h#Ir(W4dhIc6m2-.8qsk?4zHǎIֳZћr}}k@5 Z[=OpzT,֜S E蹠,=G$@?O܍\DHyg IxqRoY Ш͏$mz 6қ#ЈOb4[Tⲑ)ۤi;DU8pp6P@=Dsah NQ_89m١M]zF m}^%@^=WŠϢy[3oTdfNASEA/[Vp# lWjxXiPC€TDY a2U)3_*ni"ӵi1Ĵ[)d҈%(=UаYg3ie.LETI2h.%mk׮-" -CEnyWp\Ĵ;L{D n\ XuiJ&>+xla HhLJ7wh75mgxsnqN[ˋ33V铧Ƹs>ϑ-:?>}<{n`{}6._(N) _ ,(b.JKѭݎw<:?E9>>[G_`>kò)esVnaN4ut|M?}瘎#_y<'D5NҶl#%h9u̘KJqT0ݶ?D ~ l4ḥ+.;"-Ok\?^kD1'*!y絵!K؍W_{[x3F8Ŝ-QiϞh$KRdѿ/9̥Y|Zy] j1͵a)E%ݮ:-i}ǒ$%q0i\].U(UaNQBXQ¹е:J>'[U=5b%PQGZ3wi>6t`)W >u=TjbVCLW#Y3reF{q GM iJ5SX7}uޛ?_l2"f94^KUINrRb11lHt.G*˚vn _0_7ZI׋N[13]fBI匿9iz+E#isf-VMM{ٶBTFiW 7=-/SHb657aMH5{ t]s45ܞ\1Z(p=ϱiA>\TS4 ՆƭËL# n"'zڨsJE DڤƾAF#ȫ;<I| xt$1礰k9)s4Q%.^Ot/M4Q׌5ZF[8=4V2*RO閌u :aYZu,k'2Zb_b ;s¡g_9b?b bOK,%+'%Xܳ:NY-(1iűJ.F3a:a{c]|N/H.õ=.a:`.;;ѥv.W;O$fk{6VWFg鹡v{gysٓ4w(VM&97j#&}D6 n /l4$L>S>#S@z-2 fqİ=Qb#װޠloic1MN5qPCiyUDBRUh0}l#^6t{U3&*42 c(хH9A*< (\Phkh4Xx\=׏=P\+up OY6 K~}BS#mvSiu5I2pڿpy.4ukeCz=P_i,6ESөdHYR_kkz x(S?eqi^hW,5 {fda2ihCTl;(y7M9Q>0 Q 7Fx'h4&g0l- IS|M[opt2 яY%X#,өsUͫoKsu'3 >ޕ1%k:NBi( ^Ao|eׯ.pLYl:/:J[4,I$O.B9l"Nա1 1 Q 뤕!ŒAIZW5 -kߗf(kd5 L)x_ɰO.4bi)I LF (e9%.\`D鰽Vt\b/r)45)6qT+ (˂-N@΄TivkY7NX̄ KXM;MRr4M^M<W}6LJb8,,Libf臈B* )T&w>D;SJ\x; 0#mLf7rame5q.nαQli69P͹q-ɇ0_TX]YOڨz@b4 xk`mz++Xwz.vV9B3(u8K>~I4-[,aWm,NqiT yˋ1# ӲvÙ'cֱb'б{t02 42|"W]LfK%i1=y‘H|J da,y#q(: qoK4[[:0s;2W%hYjV95Rc=YUL],qPy8F_"C̄Rg)R 5A۠6;uW5U:ҥIYGǰZJc2p,vzn-%:ĕri3E1BFzkV"ʹÕyk6@j_ Jtu{:LsxQUe)Or$F. ~lܯAT+5$%,3<2,XB! [A$LMb8bo<[vLO6oSBZLLf< In䞦b= ML-[Z, *դ|M$^E#4ĠG4hҖ2j@MD>;crC8-0guVV֑'Z3؎F( Vő4'L+c^YY q4)wy9/qzvh7|ǵ.򭷾wΒ ]rm 6n߾_0u-L9UB{UװO bW&moo_GAg̮o-<|[=nZ6w01-*ll^g/eVQV9_"C{"2鰳wloe{;µkM'MV/.x',гr)F'j.iprz$|63ҳ=5rƲ]hX˼:`-9d%/y⽰~$*ƒ dnL_;~>c1buom?GQO"Uey5QF< IҲa /&)7 1RI*FϦ>fDWQpTοAY޵N5ZV5(ȱO0o 4BsMT+ 3W2Y9T7^tJL4RL8'KdIa}mj~%M4stM̖9fy|9G;qmAvU&Ϫ#6&I7qJTĥT+oۍ:ݑjplh{KRތٽ"%$ PhJ.@-:МB9J7 T N]9^ِźa.#/lqbDBn"*2Zaz>z 6YjRf>j*.LKtCҔX,^똳s~/lrvzaQ܊S ? jcY%( RKSGeO>@pqqK:Ϟ}ʛwU<~N`mu [[`ágm*Rp:" zie?ט({& 562@kgެ`P,IT&+[ub5Rb6<0+_ , U0S8r+ꁄmӯdPD {&h3YyײGCYr:[CrN(yݬ٭xOܼ~uiôFi qƓ)fI,䣏P@Ws琵8+JO0'^NB6,rFtQƗZs̘ke@i:TWemЈuoC@"M_}E/*zе(2GAHc4V&RyT CU&MzcsApF'Ieq)>4FW\rfUȿf#F5FtQ!l8 5*;VC[CNЕ"F5>S$PlЫ/u4ɮ"brjϸbo^1R[q٬Y46p! lm=l"%#*lƼ|BD Hz:`P[2oq&OYj0dMՑcjI px|\kK/ٝę`9?-Nq:-B8U$Op F&iVKJill7㷰ӳS~>$c%c~ɇ%kfqh0a{g}~?GԄ\R|| ?s錑B%?{=v+xytVXYxx|o}緑v h$/K2t w tc;9cC 3N_ 8*F|6XZ)a`ÕU?%SL/0 & g%pq~X< |fsܺ}pVc&%R&Us,1-蚯St ..lݝMٌ46K^Ab~łLW1nyO {666oKv{) F׷_Nj/q]<{D5g'`J&~oٳH9]|O.!le?1-L{NFxb{:S}{` ^=n} {ﲖ3^O?Brf o͝kX.8}6r~G[`q31ixi1F(_"γ *.Ss?Jh'=6ַn򳖒)Szz-ȔJ]~o\y3ifn갇l:b0 vteeVVL'V2`"wkСe2C & 6.҉O\ŝ CɳwJ!lz#J8VlL4BjZ] KpCq'0s . R6sF?U6J0xiJOT;j,Ց(MDˣ=kbff0 ڌA(~M`uAE+ e&dmf4N5ܦR}5̑di45gmݜ6sMΗrG]`boG mddξ!wv ɚHvBcY@ Na^SUpl^α\J>zHGZ]*8[[@Hs$ Pb__okkrEyy`ݠ'X)uN[PX53hAKl5Qiݡ=Z2#T&ZxIU}ݠ'dRAnSN|#T85`S'ƾ")N~Qq?ц1y_@zmeZsWIpj\lFT72\VR#donےhH7~џB(K4֔HcL-ը1*r8Z~-A Z&706vRC" DkICC+FKVڲ&JĘ:gfᅩ\F 6 zuFl׃U/5rN.ֈ@)FM#&2 6sq8n+}M̑b6RgFկ%XBN9 EǸ{TX:NZiuoE%Z^<_`uk `S)bΗt! Di2N&bb1kyem:b6*M*w+43JFm8G1/D>TZ\uE?˭O%ly/c9Ģ#T^*x.Bp,k5!!bC)F2xRڒXmD_A;bB(~g? urbe5G^Qsݛ  c8|~Z JtR5Xl mԸRLg=׮u ~H!+Θ F0dZ"ps[+gԎpi:!M Vqxt [x-'#̧gXΎJ2ȱֲI;g8<<@eQ}tWŴҳc|I e;;Eƴt=]{j{`M>ڛxD{88NN9֭}Kx9O^uG'O L,*?gh JJ& 1E,P(v ?#9]Xz.I_ʃCZekae첃yxr|WA _:B0i,@DeiьDVC9˥>j<zvass ggGȳYb6SDfSܼy#<5 f1dZ4* 2cZW"4ëK.Hi (=1qaZZh@<2$Պo9IGsVı칆؋ɋ~vJL#Hm]CsgۼS#ѕ@n6k=;̉>bhtZF4n(S̱ 4V6rX3X8!H#;R3Q᥃ZCV;878(mM 5R="P:t߱ۑ~ s/XiV/K4F9e=3JPg"ml dKdNVEN^-cFNjkN3,b)pS]C׍t<Z)4a#d 0JJQOזjKZL?p6ı$biPx߸O?77R᷸Pn6NNNj* 2IJ|T|ѡi{y-BKo1J3yى۶0#Ky"PR.K $.(4gSȊ(IX[ibٌ4fWycmJX*FM+9ܖ64spIp=JFM1Als|daC}R>/sT^=aןfh*xik0K"g*\i_-SDpj|4a/pLaV1R:%}%p9&JjfFOTĔȮ;jD/إŔBi-3I\6n)Ȗ>FJ;[X.&rRR32]"J- +t4Žč7p 8><5|ͭ]y g3/\cݻ^֭{\x;;[.qt,8::˗ooŋOpr9~p,2 IDATO4eb9ƒ\z7~ =DSs`}!<.m~fG:iVNg|11.qtvL%޵}TFhv %0sQ4P)]|(|<`[~:13FG4W}&̱)hІ5j y}~l]i7\@eXYIE6$j>|भs}A=_+]hWQ5wx̿ʹ,beg8 U5҆k=t%.{,k9&EQ6CjCHو^هRgWKb1&nsc(@.EKVKAvwEW!hNt_l姙/~t(oe|U[w;>zn(hK-A5j9BG hRI]yWA&9Q:wg? A~N> CF[e%N}\u<DT)q[x[CAHQ:rj.QfKthrʨ\rqF2g)}<6ݩDj`4H?p<-" r1/ptݔ\i46&1zˌp Í :WgHPf*N6"&Amͦu4f5P_&`/P,hV3HgҤ4p364.~QdeTV_qϻT,Hc'R[]$Nf|c^J1@ZNЧJ?;-ޒ$zyw5JJ#s~nkp4J6[5􀾁.R"n6qC mL9U!5 `j|>X -wiSFSj%-FMnӎU*e` Yg*2j.bh9RFF[ M 0c=W0\J@IqݍQVzd 0X3}]ՙզS43T#$z=f4Pk_\k3 f/}!k z(c>j0DBAROW^jD ~ޯSuZdt7o_hI?ktj-jULjz=C6E?';f'gm**u37UCht-Q-7^C1V2@ߧj5se)`>mf%,JQH#$lô7M;m\.ЉSLi1eD"%޻yܜeSFBQ37,vHسVQW4el ѧ8[1H㥀km\-leC4;BA#j\[]n'G'Yųrh#͞^FK J#N~h3#Dv!i-jGeT/t|Jr+"bNōVd1\Ԓaп MLbB(eW* ڧ2ULzT`x6 m~0?:1RF6'Bc&ͳi" ̱c]Y7i).s6t:q m_zXpy~t6~)gRCIZʫ װIKKh-!}ԿױLxk_&.ΎȞ[7orɈ#5kۘL.b)7)ox sQ-ln`gk'Cz/U;pqz'K,Þc8t-?p1IGgX[]=<]'l5N1:?EBGa![pQA]Ym +xt#G ܠV 6i/Kr; 'Zb1g٥:mzFt0EI:-p>- oIs yK=D^3'f߇=}RTG H5SٖQJh:"<͹Y͠k_! ſ0JrQ̈Uΐ7;1|?QwHv b;QpWPe9&@@>#ZjfF"e4׆:gj'ݲFYȔ$KĞs"޸>+5]vzjw+`%&,$BK+ffH9i3=]6*ݽy sלQ`j:3 s 0~|éRzڧ6R' dfJ QHɯf)J'q@FzJ>΅K]Sp?_֨AY`vcEeQH yV/HT*b[EGU_Qp@TuT'oɕ\62tf<|i}>d d 4^뜖|8 *tAM'J Ka4]Bo IF>ZE/NX|!S#}b" Vf:.Nj|_UΪo ̕z#ըAJnLSU5vqButL~6~ eAkXo#'Ed ۈ.{([fD{fcXt=qXqu77:&qQoNfi4ُW;u8-~|\kGxLUlX;,2X3%[)Thq  )`9E83zz5X#êذy^.2BA9aJ>{;h ݭ-t+;=Z=4vW_}>] lzCocmč>7ҤLݻ+k\~n^#?b6 7x{b3g|V' SrO9TAb1 t-^f4{Y(ܜ3jcڡl`@ږwnWg<SrΖt;`MZtqf#4Z)& Ai"ZNyPD !i59Tg5TJݑYG:X!khN4# a5g$>ѓ7źL7웰}J!ڳQ Xs%M -dE6Pe7JqO)x0qwJSj!,FiFMxӭ'gz#i":>%{&h 6^'KI|F*)jh ,Qe"]VN E]#{uJ7KHM-DȊ ȺΗ GkޫHw.8dO+#PFM*~hG9h'(&ErRN1N賑7Ҽ92_b@d*5N~˗𒛳NflRqWLdlij,cZO i%:"pCK4eWCz#] (Rm",) iX-DC:5b4R;p\/TP$Mhji6юKnj$Ѳ5\N01e29M6d8$1\ %2rdņ܈ŕI֑zOĕ-9(EuRf\0s|ɗ4 .c%Ga͹p)fߺ!jjT;%/\fe 969'R d\#BϦ ]Bni [VLZX/J~,Tg}Fmc,rh"4bq$},q 19PF kˈJ9LEgHYkF&4d&nDy$Nb%XŞS4ZtϯK/pr|FHtS~kڝ9L"L63k!❭H\~K[ F'+4Oi'E_})Sݯy`H\(~`{?5h#*Fӛ[nŋ3j4/GMhI.SI~rx񭻘GY#Ih,RO_&8:V_gކ-3|FOF4x} y>Oϰ=_>^N޾t0m\̰`2b3˗r]Vyn/~St[Mt:}t; vG̘tRADE.8z-:pNxB"QvWC \ G2X-3^X=no ɐ4#,c^&, z-֒)d6^0є)3,mz<űIT՛t >o,]×B{DEEp NC 8GE :)iND']Et?(Sφ ThS>e$XibN1A M#{5BzhAP &A 5o![E.1D5#8[тc* i5oJeIcRD%֬Z#TLP\fU?/R}Uj E+uM3\r&uwDlګ=EꜚzyC" ZLW#u73 峧zNM >J WfN:^(cOr`[;*Qszmh,1,BB3 1NuE(Ҵ#72=yZ]SKOcS s#+ YzL !Jz%>23͈ jx4FMRVQh؅Ctl&\hRl=QN^ye&F@$ 4+}߿w篯ؾ+S_v>7%louX|6[|6..^cKPϰvg,osQ&ɤml6.^aw\1DJau+|˳D>/Ɍkō'I=5߾{ O^|/=lǸMWfK{ݯ(H Rlmoc<KNndHW8~j@&4b< C|l1v͋Sd ᆝ#L.MA]7?k޽/1z.αۮKsV̀ .|GcJ#ѰK4>>%,/CWNE ;Z}q {ɺlrwq#>ilVh5XVh7clzj@DMDjyT׃ή//pr`sGOl#Gj3}?d?/F{i)ls\O=h!Zu8X`='w~W}|5"0t;=t;lEhc=Ѣ|̈́s(@d /^Ѣx_#;[;|Ύo)_&j,!SCr撜7B+߰kVz:`wg\jk9_q]P@l#^d$UZf76Pa|tjJڬ3YǥIB6#A U"JWULًQTV݁]hb'ͯvE(9eJ0jx2ykl[Z]}6Qc-uNǩTWQV(14 D* uMz=-ʡ uh5ڨҥ+wY9MpCbZi*} 3U9suzrŷ6桅jt|UV(p(6sBc<_hTg&#!x}clp@ᝪ+Dsyvъrw?Sݱip̕qS:tQz!C> sUWtʜHqWV;@{jR7>d4G̔wf7U&g&Z\xJ/[qS*U䄂^p̉rNۦ&N~}g&YϗJ-CO&2W`0UYmN#EH4JSĴ MZͰ:d: S0 mvɅ)RF;mVa3-PMV2HY-~;.LYeQc~AIm!mlM $^"R(;eXYʘ5JGeEtkB}ƭfyTװVvgTZa*YCk0Cwzs&&:eYYSoB4NK:ƌ 9UHQb]'Bd[%Fm z8F+ic`sLj݆W6Sj3z5&2XSg46ui4Y3VF2lI:&GaӤ"n$&xzq[Gwq6<+I;FV<%i9G&x?P꼿KEx$f1%Bu-#Ft|4Ql\,^-!7^z)rHbF\FCT)# |ҌRYdֽ!")va.o&x  {ח|ov=;"CO}!Fb:e .z_} tf60qx1:_|D٫H t}Z,|V2j[}LpntVλm%2' $xx%Ή Н;ww|Δ+x}ygg_a3 ?E÷^8? rl]c5dCݝɔMN}Snk= z?Iu۟|+,k|g>|4 F+[GGH5~4nm[VwfkHF:b>xR .^6L_ǤgwS,9?ڠ9nڦőf zbB3Xֹ4XnՌײ>7lO?gVHk}^+"H{t/-giXC ϱɉ"IFO)4l'蓜Ŭ75~ W/xݣń+awj/2"FKSQ1鸐\\Kc!^IvN/%"EB-A7c*m=zo`ޚ[p9~t*Oo,Ãn]_”ƑXsy|NacBcrKM@ t25bUMbCysצ4"̤]_+6h*[CV'Ī :Mi=Qfuxb=Ҭ_FHlVcDSw r5ׁ0Ψ)l@x54#<~,=LY95%j0yJ;WĚc y˱04(MlXɘ.ikآ#܁Mi;[ Wʠ:5== ͎u6MAL I$Y/sNL.El"4+ D7c{ k v68hlc.& F7W}bf["@4!3KЏhtzx5'K<{ uLI7|se:e&O*# Fno jٳ`V$ˑh\iFh\1IGO ν=ӿ+w\74VמIө4eg cSʣӆsi-h5ɑPS0R].=KCoyr!grB:X>Yz Hٕ3!RXqM&Ogɐ$M]* RA Ӎ4n.} <7&#WatSRzPL.lJ)uF2j\]e-t[Whf7u E9P&iPc8>`*lVd*G9\ߗhaɉYlўᜋW):vXm6$1zHDl`r5_lz43FGXfJ4Fb3uuFY p­q~y,[aѰ<[rXwgĒU-4ǿ4(bXcm2D1o?_|M}l>^:NjwjH!6+ɧXmL޼v}o1]b| Kc2_?_"mw-1Fg8;t>E!#â] #uV[.S`{M#gzd70]%54t!:u+FZ\:{xkWŚ |ʆLF"h$D^ib.<@H}kJu뙊鉜 KVWrLKCc.?^%{LhFdn71ΌLhTlF{x}~hqܐ5t5λϐU.sF=a={3jvgYmְNL8V4i LZ4Ds;v1jk/p+|52 GDof8KGM'/c^CIV, ,VW5nݺ&E88:-FOsCpuWHcnnz|ɰ7q>CL9.o7pͧ\rqr%ڝsl(#v-P̴B;nW傣ĦW{;a&ǃp'\PǴMҘ.RIK׼M_2X"j<{,)6LR50qLڜL'j`}6y8딛0L5Mm_ꜘq- 4*ͪx1btLtoӺ^2KQ醄x IDAT0SOH4ΛQ"K/Qf y@SE+7 T@z*Y|{ޤ/Vֿ:I`j1"иzdnGآбw\}6Vj-H9VxL*8Pw ͤ?eNcW|]7~~vTj^CU)M&&r#)`h*e6_>[!jd CEk^7_*e+PCuOsJNB(gƂ*͘5 V(`ekmyRin=ޣŦ:'ҪJ0*甼Y6jF00@{f%~e9I,.[M$~(_w4dcU96bj"F!=jԈFE71$_uJ6gsCp1ՒT5jDrl VzOOW|)z;;Hm֕>#\E߭SC=jil,GQJ[ c(j\=^CML%,+QJ @a'@{gJ'j\ KtM vw=6b.|*d9gæT`*iBxuG#.p_G~0ipSGd*ՌD`_۽}tEqdװ: HMZ>a1YTӯ4UcBB5cfq!vxcVQ1>٠6eۣZV Em8ڒ00].jRF#ܴ#d9WcP&ID7 H0*u/$+EnLrsHqɦ(LӢ8ŷмGV\9V|)#jt6_rs\<<4-BԈ5dQQ!;di gci/|as(Q%ΩP"֜ȽF&Q@k4Od=Ұqk :PsI4I<@{988`J #n:(s\jXQ!%ϳd`gc푦arsϟagkGlWZ[H;h ^|t:Mٳ'X^b:pWqqyvQJt]NJ2}zXs"![ vpuy)h`x*p[' LFWȋ #yF IpGh* g'B=&hQRf.Ν)1.H._g5xZjT(鋑aЂ6jDܗRjR?4UR [㵲NQ96NʔoCj06>GRau_0Z&QQSCx9Esi=gݳ|~a.Zo]+b(VAP_UV,5ȷ,Qyh7K-7=z6oF#Oߕ_f#}bx*-5o]ikl@v}@}(Æ ׅσաo?~Ԏj]}S1S}3Ba5>*34ɵx$8ՏѪԌakn(a:Wc5]ev1qMxӺ˦IB(ʊԏ߃$&ƦvCtj]"s$ږz:Nj>irunS 7fdlSJUs 715 4¦ iKhvH\!d;gV?!_> 6i&p ^QWB6PkhȔj#t^{BNGD.%8iS=J1z F%7 !8;$(B)EfX oҒT$T[Ԥzc7z6E͕G̮oDzk(V@/aa\6rF#:q&=*pd DBV7ٍːl 69^ܬxy}TNͿdžC5p% ?>/8`2>s+5@$E^Jr?2B9!TT:DD4ObD:-Ʃf4kD[M vzXFŊG`r2%ш`fE0W\E)愎yΆENW:#=kΨ: Ls|ïS ѭFx:lHFnۅLhŃ%hag E׉l3'j$9T PF,HvpvZ2P7X`L" rF[oNT (tЃq|Oj ppp=^zpFw? |Gxu~Nhq-,WxyiPDaJ+%ڔMHsmtlVcv6 |H靎HTvX['ef irP^2@;FqkrqaEZrǝٯfuEd 6BiBcי^wIA}xȆk^79]L\+]aj#np**Oְ9NcR]‰^;޿6_ܼٟ+ Y>*5j29}-ZJD͝cL7r4HӒG /vpb7jadݵ(,TD GU oXKߐԻ2jɑL)iZQCǑ6ZeGM+)HRdżo*F9t!)khQp):6VȤ$lY'9q P~}p DjHqt``iC ZC6~<҅.9zg9ndb6Ʉş;FJ(tLNrćp2tN« BJe\+Ȇ9P%QOh2>bx%2W|i6+so 20MM;dmO6XCƄul4rogCBrM]L9E)a_/C5;R0^L) zl+]2k( iH1ŇŔ wDDs4"{Lsɢ„\{=|bqNF8;;:OONn%>{lrWWC6OܺuOlQHvjVHS)\z__Q| |2܌?‹J`c7fX]}/^ck)6w1ȹi4{( ֓ ;:xɝG:Gi-YޏBOX.7rӈ[;{8D+bi#>ۺ1/y{UҀCN_m[P(s@Q)Bo IIC"P|w5z@uxF_2k5{f|},-kHl-4`LE$Cu (^!'D< MY}JR2P+uu<1H)G*GFMMOD!VXUU9MPCA45o<W1,ZD4gD_kL^,M*Is|6_ܼ*G[ӄFQZh99s @- MWK1B6˥1+ _}S,p97kE#*MfQ|4eV>4u[lwqwhY>?|)rCjc n#{o/EC:sb1K= ëx%ڝ-ܿs/lfsk0?fJgoSþWNuYClV8e3W#ؤ{Gwh|1ca8͈J nSRa“,ii4_4;;X-CCm.tA6p17Kz]=veCȬ564rS ZԽf4ma\`C)ZZ5nFU}c)؈|bM RWJToV i}U+iqec=dPF m\DUlMa;uXOҸFa ![~c<{KoEEUCIzTGcezV! PL|èN+ٜҽ[fTEJ[C˚ʘK6Bq͹dHČX ӨOu4BF+PZT_@d)Ij+T2j6 ee|#)jHU!lbvx[]T׺UJ O3m¬6biSkoCB}L[w$kYN\,<#sĨl G2M iаOS68 s|T+U,Cu LVΌ FE8;ۼ~w݆)4Tw\)EdY SRʂ{u$!jFp?9H]4>(lHKC)u> GO@.<ϱ\YQeM^i;Qai*4gĪ_J>M ^(*DS4MDذ;͔*"a \LBQFM 9??#.!|4/ "17h81{"s 5X^OnT5~4`?@ Ě T 6ڏpw(!Z!d[e`<+UmTe|,E@>1K4HГq 5;[;F૗O%Kl1 |u}VBt9qv#P0"E ."FZay rX4)֥pUN٘~VrQQ-\[„\ZJL)bFlL#"PfRkt Z23:SWDE̘4a eW$ >ףAHF6hsn~\nXkjԀP#*eRu'4I%Sˤ\qá%FtN.coiwjLN|22}tϦLV;n٤/_uF!βs25t<׸|)u2[ox9g}O8g`wo[[=,#,V D 7ZX(mq0knF7C:I~]QDɅmТ[4ё>q\wcFWC~/V!sz=|h N³'O8If8{6?gn 8uFkxtGt1j5ES8[a4YwbBןslu \^]1RuˋߛqS01:36jXOH($(1@:efƒLC.boG{rM2\09M=/% [Q<Ɉ%¾\~ӰV4i>M+-dKYu­<2@V}h q%I!wDIλ" \V1. Q3pe6~S K[=/xi?YXA20ѧ. kVSxZJ`yXh2.85 E*}F uêpBn_ոS*&8VCM@tpڰE!)ܠj}]5y}QYUoble& IF vz34w6Rcs^*pPo~ĆMmp=@N$-(y G\}?ϱ9J5tlFmıY)N`:qݥvFhB1=UD5g&:K\ ц fdVEX{L5 wy?>e5- (kVGYS=k IDATg|Fic9J~)7u"ʹ\=zJ?N68$7@- Y\HoX=-^C)$*4X*  YczwFEYA:+:>GBzTdrf;E0dC;H8ꔊ4A $I69J^8H$=/ i .!0)HW։,JM%nFHn$9J8rVB@hD6(W9&ibc#-Z7zQF.L_Pm߿ u0xKQ$4HL+= q5z*LK/s6]JL <̊sj%Z`F0f\JvXW;4J\i{{GIh\Fs",fůKMBˌ59#W 899ܨcdcr!VobUe&Ǧ--7(Y "k6 #c0n['pq~M$bDCX5y(a])^|fLn9nm< ?|oyo~m`7 +7جZM[g}tr17KW2bfif{x? Xu}gHމyռCN\j:pݤ E卢o:E#Шgobq%ߥ&g0NFCփڛz]\U18L7uxp˾*J{&Yzz+mV3PrcJPϺ!Hul4[KL/eͥf&qDGk3o͖pa4Etvt̋l55`91"24d#$&XboNHby7^/opv-.LJ|nVS 6woNq'xi]|9Қ1DBW_z|ݛx!}D! L _yӍ;cv'3lacg[yV''0)PjѶG3]!_ƳMO7G(Vg8zՊM&1z;xd'#߼"MEtiB=c1$"p8P7g1v0v qUP[Nbr%ͨ 0Gv8??5j4i :QWC@R2 lnnb猎+mD Չ cr+8?}̓0Vuf/]Jm҉\CQX Kn[EWvmPgQgZ@0PW*'guMMfT6|a.j'W6LM9 ʮ}$QdmRjSG(!KBsC4J91StMu"ͨWơ '*6nZљϻjCMIbq>0tu?*J/UseC֎ _/ob"P$HY)LKtѦW0wX5$ >i wv|JHv Pc#ԙ8*}6 46xtͲoT{KzM4:3 B0, {u:~f4Rf,})%bQJ m40]8&Ϛܘ 52`ӮJ,ݯ=eً9K-3Y-=ּ~oq7uu$hif4ƙP*fd\O5Q]Kfb!~smyWF_ ^MCTCn6F6 f.XBHM<\Xeh\]*͞Ų\D#-<6ҍ0ڇ|q lޜEimb\ի Z.9 k*&6Mb6s*iTEp }ȡ[,@ޕHQCUnFUj1{Y!6L}MO6bNhh }0DGM E;qKBϐ4DIće[是 +ұ%Kt !TCoNMz`$:Cmv2 ؐWpm]]zimW2KYjc ܄57D{8nec*&jf<z#Md>#"tK=< t7-CF8vM;mlFrF7j4!&/k)IښjvM~zfVU2ڀL <[L&ԜKcs~>Zڢ;-<~wS\w:ӟ YKs_@'OPW(|ãc;^"Hv_a@&c͋XD%BH95t4ZHbBl6b%Q,FNB_.c{:o+Wq|r۷o-y D˜ qB j0)>a61{F;vي%VhGWv_3{w)-i6Sn[Fwь!k9 L&nݼSGA92Z1QQs/Tz6|VkW!$Sa22xאkֈkoQ 3"~ॖsj )]ݖE\4qc-j9'U U 3+"Cj!#p˩"czCfn{&]ҝ(%4VCQ{Z؀;>ʹzͪZpIp(O_6:ve“CK=]!ňɈ1᳄EoťNKEK;>=I%"UPU 5.u9}Kڇ{y)5깭+Eq1'Ȃ ee ^]oQ 6 =d S=FVu0hu8pG+2ʨ͖ Dġ\?9>a`vQuaY@hzuf5dAZ8EMvSlo 2ˋDR-r(? f& z\Ewk2E-C%;\~ Ї< Sjp\'R| G 5ò j7UAUG#m 1YLeIc'HZu+X-P֫NR0PމYD9H[g|NQ-ρTzME#JCi.H<::q}~,ػ`0ӧOܾؔ}M"W678N և?l$irdͭ8&ESh0-0OZ uֱOݷlFg/%!HH `?+b5[A,Lǯpr{ט;ԕk.NFz6Gh|+7wn#&믉b x{{dϞt[8=|3qeo#Cۋ 4Z}Rd}ɠI``cmp~7/h\ӳogPd85CG-A"#A ww6qp(&X]nKH0 %]T*/2 4џs!R!m?((,EHZn]cBAIFs\U#M16vdKk $M R65Їb1'4ӊXkXNQg*vMs SߣqeBft؄E3IC Ŵ\PTӧhHF>i*4!ZBcY5ZژTMiCR+JuHVJAV~ ׮sh9J1J\E IHd9򉩔] T +iE6y)c&ܚgTXJ+0DI0FG $&5cݡ>@x# t'9#亚S|ͫ>aFG- ijh+F3Eס^2SQM^]h֚ad2KVl*6Z>vw`,0Z;$ LagH&Qf *礜&N[(sB 4wv$q5y,ހ&:23yb~.4$VbAY zz|)wt3>}ͬtձ&E5Yr!Pn7͒L^-Vv̥9ٖ> QQ5&7)lʹfҤ= %DPH$1^'4jbI`HIO=HM[{-k\(Cf떚|ItZk1ٚi֊0q!L\'1tUd0ȅ/%d%5}YwnhpZ3e3xd*:ܼ'(4ޫq .͖E'1`p<_DGC-L> gNMREGfAR rj5tQAVłM'>7\b!K+B+hdG/DyvvNx5͞D σ6ˬH!ڤOQX3o IϠ9[;{hz;m9{5:eK.)+h߼%ownaqy˓ghg9b5"$cr~JW|+/9dd/ ;wn hgCb 31p1cP.'X߈zR 9IT4",ԥ=,N^:Y[ ֚ټڃ]O~#|oi*FQޓ>TH{bJ4Mr$a ܴp(DjZ u a#Pc)j&]ݙUT::Y+}*3 D_ K6j\r΂&~E(!6L<]!jHtAs<ſ# ~ȱwj5d!0CHm ^$B"9;91ŀBT˚elIj'gHὅxyk+kUQˀ@7ouTG}h k$TzxjlK_µ~+h"2+c0Hjihu$iE+5Z/!ai+dO) i:@!oR4B9kpZMf#o@WYYng,?^*e4yQ#IRG,ko4_ԼE4&17Z)*Ņv6,2\ߞl,Nzќ4!9k-Ah2H'&9aLa B:!? _QZS"b>XUŬ(yǑۖlIӊz)0pzm UN7(fuًrrŸuɥ=Y p$=JؔzCɍ<=F2˖AOS_;T٠_^9l徥 fYUMS*Ee܅j5.[7 u,T)g0 ym8\.]k0qQ*͛hRJSONL\[& ,QUM,,DJP̠N1_]bX*w'dۙṞHu9 9NsIQ:%Ia{*:M [D/.Q%i2!z4q(ɞ 7o IDATmIĂlnV$iE: H* 4Q|KfS^ؙv[tEDföpdҸK֤L?i?"M4(L"!^sq|rxrnE[YQ:66qq~F]$6~#\NT++Frs,?sm,J !MO^w {t~zN0hv ,T"6ҥ%ʣ7 quy #LFoe B Hw:ը.9Xngr b۝>; o%җٳ3 #G9j;6W4?). u 2/W2"E j< 13@^l"zfsf&#Xgt6S>b1 Av齦WAkKk G4JybIִAZ miSءfFݻ5AgbB#47L(ՆKS #\p0$!id^ fа}V" FEU,f~{t=އK eEb=Žө&FiJ>;wgֲVE'Ba yFf*}P@j:PUФӐ&M*g^1jю/!IU'7R/Ѣ*:Xsj~Bq{ë7bVh$"m2u5|4q5JNt3}@,2G%uY3 e *-{>6FZKWܛ8MzͮhCϙk%eALS*'"e h.tՀ:iqU(}R&'A4b"Mr0Suy9!}UPhgo1`6;cfX+ ",j.M[D[F=2W_N܅:UJZ)hq,#MHf..t!Y dQ!3윅NUI"9CT[-SIaˬ9уan-E\+BMdR`tSDiH&o2h.LcRmhH~ B㼔' -f(̬<\G'CM3Ih#RCM9h\"5WPp}_J TW1\0Iodܳ3ܽ#lnr*5ݝYk{7 {̒=;~|1&QihڴظnW ęAdQLiJO?YNo- ?-ln<~-ׯacckq x .ΏIzSGg}b&٘PFHvxd1{u6޾oo3dBݸMDg~yFzzosi{9\Nqzv= -euns!ŐdgbD-1irmJL%h_\eX k+rw*I5.&{`&ybTY*itnX%R:c.cre^?i8P55D'[2^P9 7DGV`,򭐬ZOC}W`td㋧6ZbS>̇ ̬tz3ٖ=\$j}! Tgql5eIá9c xذ]VHwO8:q5v& (f(BVQ\0jMP;24r~hv27ksr֦0y2P}$*4՗ c_׵5֨OjlD[Cz̛]$@ui|TA-ʘK#(-9dΛ D8] Q B :m^reTh$2Tm|1 ^'ct(r=gZ~&&@fқ0BЌ^9"jzf<˥a5T5j)I>S_)Fٰk^a`;ѹڿ+[ojT^3D1QJ(ߵ!l/!Q*Z8bÙfF٬: 'vpQPnQ?ΒVHHRa^5AhRR\s#4@53&  JhnNM.QR2O39[((ډR{c]5.8GEyZwiuV@եJj(R;&Eej6$o^K#@y"2LX*V-RSL4mDwҒCAabEg6۽Tti"bGG3N'#:px% T$,ĸnҙwLJ,dϢ̰{~W̊m8Ϟ>_.%׆ c?5_D^MT3[QT+8؄9z\35,(P  A))X[6 MA+}`&,>KNΪu0˜. \@_)ye۴ Poak\J\zIW( 9G%& -suZ3ڣĐHAٲ6g'ychJA mUS+^FIA.'d  ,w͘KmZ3m:V& 'u2S)jE!f)} JE. F﫰M]_چi^6I" t楏n6<\W hAФWȽc^( :/^yMOzPdX,fXH%2'p:(0]<4X*犔$^\4F/2) dNwBfzo%,"AbHK]'<BWVTOUãJs,#x5 ο) V9V|ǒA!_գ⻨K5a KnQ˔ ;[YUoٽNmm- b%kSmE"֘9͠0ʌQ=O p L†0sr<.b,XH# ɽ4fM}W6iXB4+v4PEץFBףZ|es'^a?!_ҼO׆H(9}uDxh3ɞ"XÜZ?TКNG4Y <,K̬s(-/%G]'qܣמRov=a;LmxvVZ!VYAA]+tSo0mP%=8.b0juAZfm~RJkqz|ut@f3gOe9 Cv9! @[?7NYlmM*qU]kj0Ӥj\>ae&!Vv64Qj-Q9o}RׯHy zC{ҮRKfgc2̆mhHDtvCFAJ͞k, 4rez\W9f-,[9ýWNV3Lf4;ܽ7nФxkW#VN|n}ԀJ%| ^)oxVDZ[&n\IPlkb5je2-tpxp=c=+R6z k]o?;|5^}tFwk_7Ci*sfe:.n~Wo\S\)^=\9'm (d~fPγm̦ {k> .Ϟ#)/D^ܛ޼||"=c(2Ҁ4f[8F9Mb6ZXA&݄[w{uOSǸ~&/45ug.fRPՊ(sFj"[) 0gn3.{ 7Қ$4+QӽZ,pMq!k!ZL2X)C39%05 eedA.6Qh*ΣB*q 1207 iҬIEcDCr^(ȫLF@uz& :^]l;%8Ԧy.Y8`mU aDhm-FY72yދ61[0Y4G*sײf^hRW5#ػ2'ѡ`)uf iT]Ʋ-Pƹ>g;m˘` 5A 4B2sW録3*/ 8 0Qhxř\ΙWNj3؍q<++Z6"r.eMyx&R1L,5hCYM${}jܠ=R[cf(L) Oɐ?lk_=U~喓DgW :TfDW! +Ņ *dZ~/q)CC)x-[B?ERbU|SqQ{;qF"oV4!񸼧a_QC?k8<8ࣽӳs,T l6M5 ^Ed$A^o6T~o>C20/_:U'Ih.! t@>^# Oy^Y;R:NZ @A1+ M ܡw>DI͇'b'F"tIJ$,nlbZIVT*Rk ]MwGr4.Op}{ ||m:kj \z*J(zΎPW+ڭKçF!p2 R{adդ AMM*C>P:)ls@:Y4Qqis˄3iD ȉ@IK+]z ʢXh%`jRHAZP NPša蛛҂{ܼv a_}))=:Ԯ-1 Α~^ .ϲSc2w;$iksC8ŏ?wLH|B{&:<:D;@{ 8>:\)f+TdcǛSsjEg=$vtqWMv-&wDg?9vYUzX_kѣX_Ľ{?Y( IDATb_dtU>fP|S|_"_^{[իoFD4uf!~h/ uo^ԩ'?)ݟ?G ɵ)4R4m_ ݹ{_)렙X 3K`61߇ %\rAL8=>AѢDGc4m5-I}k69 O,]oh2nmʐ3^db&r XB 3+`KW6m[4 Hx%~+!~GRwE=1jlAv@9]@0zCœV+K3 3hi ՟ҴSf'HaFa9ca+Z+2Lm0\7b rUi͈֜GXϲEU`וprRիAJD<ܻ) Chu1vD4uhb Yu=𕖗-wV:\FaEZ7YMcCpupX2Ҵ^X),K6QWT,E L e VQi!-RYLa:fel,) R l:Rj.9C^@:7-844YRCuLp Zt /$0dыTy^OF #L2E)}oRWiWSRuڟ h]I0.r)әɩ]kc8) %f2Y.鰻6ē#}HI׸ d5ye6FuU'W5Qz6 8DzTPMR''5-\6KV"͙.*닁&&7ЈD6> ~x{vDT F,a2l].ۨ6#9<ͭқ.9"ao4P;U r@~)Bc&(&^n#82ep,2^[/+7]nR`&PҨH(πPNj9nlܽv(lUW99TP#Az,!dHWYE)| rA`esPp "+Υ&J"֭0c4bE*D.pgg&}^Kt89>;?@ن/Ma;+O>frxttv`/b`NgB?amr 7vyϖ,۷nן~V$W܏AFHĸ_B-߰Z](nÏ ܽ  :͂Mg# =t+('gS$!|$Ӑ-5F:{_}DN{Do߹g_|:>Ov lm~D3D K_L|?8x!N/F̻txKTdWW𽼼4z-09?}}j DoѺLߩhkEk&¢▭ Gj99tϦ&tYQD͑\/P΀ zʹ, G F&,>3l8Ð*|br)kJ 1\q^wM:.q?V絪ql4YK詥=;ļ9yNb":PLS/5a'$-qYAjF?,iXCIgPʈ G00֙fWѾ(dRgry{0bJʪa]CÛD#lCQUk Wfj0zs/™YU]jςYǡM@ƇyTW=C l wf~:vufCiƒjpzG4Y[TKpiQc[̗j%KSdEe&Nò/:{fig5_ &f.?ݚ ˭Ju]yUJPL׉+$cD4yx:<>bjiɢYΆ7aYhA+1MTg3ٖst L>ڒ[hcCo#_Nհ&XGnk ɋHem8& `dsH1!FPD]l( eT :  J6hRHC4gV昱SLjh!'Z\&G2HXf5\"[$Mm` w)<,Jӻ@\ofִEd}!4+qZdjlv:8[Ph&)6-l߯ iD:9]k$mphTKl97o°FXW !n> jV.56b^i4 R眹*P\m0LC4~)7J&H%3rr 1C[Y /Ly:kO(ayJl]Z\&܅B 3fG\jZu3CD#?m:Щ47jy6pxi w嗈bI^I$f^۷ϰ_"mc\CBUj,sa1o8yKdFW5]N9}F1_ß/_<ï&R35b&1*^7_`PptzP!q[yO}wcQ40LWx\F[ȝĠME2F2q_5|s/8M#3]3˜h6.O ,t|2?0GPseM.ݧ)A9\ÃHV)}%H1?Icc_ڳ-.'縜(R̵ ϟ?ư7tD1αXc}m|]9-r O ˕̴`nl>)3c1&+S)2qXo6iUX,ct܊_)\-pU\_ۢ~+F)=~ *R+!V5e3əRԓi eh n4q4+bŸ~LT̕>BAn*Tĉ'A-̌s0\0qS&F:ʨ ED'raGUs}L)E0t*;39e]L"+ؔ  "64K^iD~H/fpYY LQJNc)K9{=mYAAQ),gq}2>hÍJB=fAFg&D"`4Y:YF vk2=C&]YqQ%>U7xy y&|D {gi$dx*jTQa4,kԌ t r]j"Cyq.BWyOKVH|B.`BIU(O썲 }3ceCQ=X d ]˨}u}62iI)FF^!Z/aiݢPTLHR Lr$Ti!'.Mx[XN&Ȋ#kG~2Ukb ӬϿc*zk@#: \tiD1-"/k>!rqpzLz'pn z4Ԭ5P]h_JWbZpPha$eh(UO~ub#,Xx,ihS*ZRv=Vy54k[۸8=Eu3?|5L4+(̱ݮqbXΜ Wь9-pEӈeI\>CH0üE6:ARe(TkِZ^ZhJ-l0P oN6&)>iR?l6h_Ƣa/mhMS(y>|LMVbִD+l"މϒpϩvA9 SaVKC,04j hR|_ID%"~|ibQ,ck|\Y:?(ި!&J[!Nf/ɇl]1XN▻{ NO_I˪SPV5͐AM/%=[eͣ|5't^Xn<+#]ܾs?>pzMi 58O>?9ΰ›oH\l[y?Pfܐ9 7X  .⪞_ > SzxtuܸƓ'1=۶,0_b~d[8=-^Eۯ+\~ Wiw!/船whȵ MJeKɹm'q|/bvBc{f?tE&c6<|z4o~ޝx0+͝Hڛ8zCWi_}63RsglHm5s6hhW}rKxbnx0 p:iٲ@9gC||xhz8ѷ_ag1v\/(_fTtE`TUm[@ޘ 睼CaɾR(̢HBCFy*6K6#n:<$VJhA,:Faf1$@)Ģ,n"]c{DZy,ynyQ\ԕ*Kiqb2U(\w恀>.ud.K.6U?חURÄWޜh#[ v hi^"b]Pf}m4>T4Ҡ Uvg|_Eccy)Xԛ3}9H/jYѳ#f`,E=i}8t q:L&̆!ba0>Y^[󙽁$:(j4E!Xcgy+[4]4 [*# *b  '̥vT.fQY/5EnԬ*L!{F{}H.-r,5lϩ%dv!"Sh{lD(K%P\t C'hHQ RzJ+P!qq֟wbSJљzak#2Da&Ues*Uqq|L-iM\Zla#Mk]P @P^7BQNs6-.YHhl%T)Sѓnm)BI"3Lӏ>!NI8.(t-ާM,O4!"hMZrQ{Ar@  8y=Ԩԏ2鴺2D̙@j}CWQΥ\ѕ Js/ ň褲dhtaA#'<\6LQ4Vȕ!.aC,4(U*O4>O(I_*}@)M{&F"8'C#5}%6r< <Tc)Q7/g -3,%nitrW[7os^NyݽKӝ-V/H4ݏİ{|{׿:Fuא%|8|9 6wgDze%ZߢUq:>| ^u]/4R >\qq0y t]jO^ѣ/H?.rn^No!_lb6c:b| _$usV` Acz[͌o-qM" `džN_׮p7NW9I%b,۷#Zܨ2-, %%_V(20z\#x!FX$Gh~^<.EhjTRi!4B7oFY IDATt;MƺBY0-/IB}8)R [7J yF3 -JӺ#*UIR"Je֭.8y7$TnVȜy?(>3qܛdqF] Rmʺn0Kg Zܲy]fȪ+&E Z_Sy/>DYDmBμ0J;N%XNEl4a@Qh`ihw;}(}URY]J FR.*54mø54.2)amN>n =*rgA/6RÚ@Ml/!}"HOv{EQ'%hͥ9{[CԞ#j^|I H 妉_3){ 5GC3*DBVl:S` !w_^6KaWYBӡwPI˾v5/*BHV@Q7ԦBgΒtͲY!G c.P5#A !%|.$Ĝmeڰ&a/R/,FTMmeb۠W;-)'9!ڌF%r4pi6ְDW>bt 9J0j#InUj4ϰ{1ss@ 2dzuz9mPF<8 3-mƮ5,jSWq .u0A:+ Z{tؕZV\>Y {w6ntm`g؊W~ zf6E8G,sLJlT XVuylv'5r"q̱E`s:N/!MyS/1c?޼zew:cjm%ψ]S+T1ܼ&~?m,+AO0]y<{}ãslllrXtqv,\\&g(#4֚}O=a3<{klRgzqvmYpX,h8;;}KcVkuNB\WR/{odu >d $AŖdv[{z=i~̗=xB-[KdIIKUKf3.dB&b;P @Usa8"k= لzhh[i-m0(GА%Us&.틋6'ͺ{.L:utpKYlƒQ(WG 5!mY+t|&Z#0x_RrB&DHΣ/49h"k)iJĨ{UżWٚ]Dw|^Z(p0kU}k5ǫYSDWǥ2m*9M`IEG^3Fmc7hʪ{n%;z蟏Ei@(+3skZ,xuG=nMȬe/eQuqh M ح6d[V^ Lf;}t66}*;܋YZN51'̧ƍ!QsSA! ɡyF \@),{h×,5W@U4?WY0r5h,'~#r9-3P"-\4$8T.ϥ:<iE`20_;II0 E8`F'ZLaVZs{3(zo󯷶y[&YoЧ9 c#f5tH7 ̜\ٌ aߩk8Zb'ƕy6X\*ED)ՆTBW܊Ck@^C S3aބEʯl1ǫs,|*$<8nT 93V6NJ*%S.666*F}'f &p߈$EO GT~t1:F$\(ǦBr6 #5_i%`lT3Y^EUFr*YE6(5l\us'pߋ|VbAשHΝ U2/(SgeP7?PK.nr+QIx4oǐ ZBH-NJzKYf)._I3p!}$/!CDP'o7}th80c1;&ք(Պ1`^'b5kl {7j'8%V!Rj[xv`c::iĩ~`FrID{HXT8+٤KޞnXKKKF-$N F F-\^G8è]fic}> :;ƒ~F0K|}xW{K6[k}<{;PɫW#ÇqxwÓCF٩zL&#yaiy= f dy>+o"12jv^\[K[w}ho5CK`5T\|}|r]^_ >}13!}p>_!3/$@Bfw!c/?;kwѽc{>?Ť-,m?BlܘӷL- 0xOg6.o9u <{^oZDEl1Ѡk_,xp416"pm2ayE:eO^!E>%A{U6g>_Wb:\z=M9†ֵQo14h$YB Fޘ>(Zmt ZЊˌ,,R'7/ *`LFJ,V_#(Std).F/Tj $:W(=$JZ"eQ^ˉ455 HK'ӄ,Pc +'d[0ȬnP)S碉Oas4kDc]µ3JIP|a =6 qtzW `s&J*6N݈II \41 u'hlD6 AZz_3Vh~|O MO(B{xi!)9&6|-l0lz5oaSEj-L'd@ d2- Qnr+;Lm] e=! umbDt8zP]@ENBC wwƌOkj؁&yagTGC}F) $jdytOi:BL0en-p`w!}2Uں1{$+"^534M7YCb$٪p1c*N-aX &Ԭ1`Opu 4wX W0bi|qSMtvLՑ8m\w[9 ͒}\ ڽu~Nc͝ 1ـ7X7{S:ONO0O8pkNVW03f1}}&}{+|Ứ {( +;>Efgrӓ=ft?|27~}>.Na\gOŧҜS&s /Nw~vn^ah4Da>cCܸz'gKk8<:@^j9|J|)z+OgX[1 >=S/Z-m";=C3HЬ;!_$/ԪwHk \v 5wp|Yt[<#ԲCDpR+! MסN^ǫ/nHK$ד6nMZNs6x'{*޸4zٔiے6'nXL뱖 }ճ.7sߪ=Nb1ĭa4]Ie?ðw%?hF{xt[J Mu'WhEUVbC+׆uj:$hĕ:ZS7EFAm9]Oں`L#,RiQ$b!҉f>WQX=E}B@hTlidGUf9],ǩ?^C;_(*xS!ZеZw /b&>$a.E ;A4A%kJX% tDh)%)-*{+%^Fi{ա\X{icD)2():h+$+lmWo xvuzWq1m0r9\y!8|yWhlRT.Җy^&[#Fh H|f-|}f ܅Nejo9PN"γ0|!n 9ǡRКb[?k]m ҵ=wxMf!,ੰ঒4LATOބR3m$ܼ..b%dCʩY j1=ڿ6׮\a% _ϲdo|k5>zn?˗/zk2NONć;(֝z7}cԆVp0EJhc]a|HT&'#vkxz ь]{= HqnKw~.?{]/sz+tiׇ89~|/G3k~ :}]ζ]XQΣ?/xєiƄo.'b(Ipx1Gs [ >p1'K?8Ƃܐ9qt6xE-&ZQ]$?8OgyNFjW24dt^Y`p~Bȋ1D(d<c0t&S#/:yΩᲵ:ka=j9WxT26G6yS&yV sn!518II_ޟFӅ5Ҁ҈=Ch 4ai^w7i:pyl@a(2(֔ ]@9g:K*N3:vhKy&xvčӕj\P9?QMbaȞtWQ+ViDLo"1T]9Pp5zl&{$${zŨŵF`} @dR Iniqv0e-Re.bĉ_Zq%Ղ CҾD&Zqe&!S%NC3[Q-J%Z4K4U$iY|z^}-Seq 6gx| qxzl LGfڦLB\UACTdBCөW#n 2˦DD%'ҁXr:î^e u&Gr5 SB\C'Z6j-ʺl2WyWj_פDÜ&L=ҧB%>(O%# 4+S 4[RaA=US{7WЮaN_GO1lbҰ%w%"r5SYN pLBl VXj&ih>h G@Tkp>x mpֵf:&TO)Ы^MiIYg*#O&#D5<'7Y cYa7̈́"TNYWV^Z.RAO4sr&g:0}^È'w k2Y266WFz=k[7pb &1_05>F>|_scM^< ,m&?{Sf/w%-nlu&ɓǼO,sGx$>Ԡ3M'{ \˗rMhXt:=7:Wyj>a8=~g)#lO&T࿃N!6'e,Zq|dyXY^L0`院Z3lv.c}2>&?s|ܽuGr,fߒä-xY`b](n_aAno-Fӳ9y Ԋ .-ʜi9Zf`0u#;V4$!Z#S)J=ό`l~L 4$tҷNϹ)ear?$۾"l&74|m !s|3=عm?tx:@fcF~ǣ!&!)llx}1Hp \ 3<}nvi~Yx/c]4WvPn١2m#ֲҐ ̊:tMglLf KK)ˆ8Ԑ̳)&4̴xk oYyV+ſn5y0N^U$դ}#r2հ(i61b^ӈhS]hE{u,t]@T&ô@t%LO1nN UB3Uw ?0dXP:RAj dU'G/B6{)942d\6WEA&D!Z^m-t&e8'aT:h3F)p?L1&d\x=FDK6v[^?LbNoJ\ CT-&^נ Teݓ4۴Ҭ#4eQe5Dƈ]uStxhU{ P43`%P+gh_?5Az#z)xJ)xh1w"VWD5d+R&uR@SUjPjM$&W3pc0% .N*.1q&G& Z'ٳ J N̻BSdETJ3m"F :ًz0%( K Ƶx7,cR-HH'Jx_\LP!e]L9(Jt4 |iUS6D犖NgHZM1p|jt#HlIg ͱBAm5mdc$5a4#Ɯ C1y]frԸv^ۜ F!EMhy}2W7HvcZqi8)tfMJԌv0OM/mDzt:ٔqJrh.}%v% HB/*o5}DJG} =i SUj9%l~E6lBX 9d̯!CDie=S~0qtkt:jsDgx >Zy1gJ#R:YF&BC8q8iLtN4/t!FT]$M,r`&HCtzSlY'G&ߞ`0D2&ON]ԵA[Ffrq'n(f#m)Ze8#5Nl/ŕ;L X4g(nKFUc=t8iPKln^R>}lᱻ[Ww%g ]{d%M3˫1k\7 n޸Q/^=c|LԣoMqDNϙzۦQ~,s6Z cp1#<_[Cz.]AC->Wϳ1`~^66m^3%~[x78S~U΋8;?K,WX|_?᳾lE 7!vhu 4@7nn^WI>ï.&86.]9SIn8N f j-i]4x<h6FሊMZF#nQH|'ҴF#cLMx'_-kyؙsG&5^isSu;wkScf")CJx칐p򂍹jUubzoy'@W6_Ȝʡի+*+cb%II`iJ}A' NFuGdܢsP?^j'Hl(ε Q_Ot`!OVӸ2fDhm!U6\0bޛ`J:P!5P I#F4?PjJ(JXE6iej6e sF'>nTE0kNDUC-TM# 9 r5YQ56F^F b5&D`2IU;],!<$Bi$M24~@ QFAP//JWK\'\_5h8 PX€(OB Tp-1kiEu~nR䞢hĒ|XX&IM׺0h= CέQaUP2J7 6()8+id PkP:I2Ir;q -B)8tyibg4nPq: 3( +b&4zg)S$ƣh48[iFaH"P-&CFv9#n\DY3NWk`R͝",˰(#;鮬Zi) (:ׅܞ'(ikL^s09~E,EʅΕkYYaR:ڍ.׷Wq|3|w%ktk,S1LzB:?y۷Gg~#T F˛Y9Ύ_׮^xd1:?rK]􏎐$f@:0i?.7'GG΁°#*fCf#a}]/}h6Qi[ɟ B~+d`=uW{OO'ɣoQ,fXYZbSHaYk׺x\]`4BA+:?ŗ?S1\>vǣċ k_S4=low׏H[}(xASCFbb x ۩3Jx|ldzK.h%jZ.)ƋC"K_G7NYmbyys^3 . S{"ݫ6ls2GIAM5⽓$%bg\9T2<==(zZӆ>{dmyދ3́>,~t,"6Nja^.:#h*c3&SE1 sDB\=)8܄EI5&6eN1fIt l8=ADMc tɯ 9V_Ӱc#Gm\T k僛#Na^Qr5:DD1zdH3ƧRW+ 0@@BiКw2442`V$DfWVEI:\.]f<&҄tQZE69T%mmJ_6QbcTڹ3}ds٧3,s##ʰJHX D~֙^+Qa ߐfh YMg/RBPPY"ld:M2"M?G[l]5`ʜD1SNG2hUF@wQRMHm6 GVzlܵtn#7p$a^.ε^!J2SQ;F#lsM}ETבSlm5ZF#CbZAF$/eʦ"/ɛB&3hL}"kڴHG>F&v 9Dۚq-5O qФƂ ro,T8#SfFjBѥXJ|0YB|0[CT?tm#9!}W/Jd4j5LYVUfSIr;9UGc*|0 &PlIWZBžCANjuYY5č?!h;X'nq:d|ĕ7Ic4 <کA 5F1=7Vsőc-,Qurp5r#5x3>9:fQIFk;M4BU.Aa@Uc#OY-#U }" 9Cx"K݄'i/NpvvEfsԢORE"D}0MowOZ)Olt΍|u NbIB.Ѝf)_NwCn|"Vk`0 97pxzKs2< !C|BL'O5K:{ع͈YVbN߾[Fc4!<ܸ^{ ;n²Ґ` =6:w jp|-#vȝLsl_fL1k(Y~iuc0~.n VV5}<}%z2 ?o^Oy.\O}ձ]zp~xfrO^YvAţkcO9ܸ”i@ޡvL "Z4iҾy~FNˀtÄк>?LMts>aLsv$qVyd!F5L!*~J΋j&vNk=> ߠ(H*aoTj#Z(>uJUUjf(%78B^PV c*Hesm@h$ C$ΣnS!]ϕM rpSq hZu+ n&8Gʥ蒠Ie(-In;R$y+Z3ƤbQr0:Q_u w Y_qcA5T23.馁ˍQ(r})rCXx5et”Jf VYq!(1s t; d@19lܘK⃼6N4 J0$)E^+ ͩ"P녘H4(~[aWWa56gsez/ŖyuQl5j#N C 4F#l|H~18kw5⤘@y`7swfp[yc4?ѹÙr9. 2gCA!۬k"C>N]Ҥ9:3d?tW5Wpq§N¡A54WN¬ : XH83[g#OmR'T6ӁL>w`Y=u2sj4#?P ڃ6NŜ7Sshe#4>ewy & 4-щt' fK4Vr*]VPWZ')A?˺ve)詢KZ =_dl{Fto'YĬ&  ^(2 W0Dg! 'c0],($cSh+:u-i3X/z*4QRRy'1M%d1l!L%]Y)"ىm湑bc6'tyn*-Dü`#/Щ̈́ 2j߉6V>ѩֹXh25Dih1==fNV]1/QX*:+f88e4l־ϑ`餏z*gM]x˗ovg06c1/ =|AvklD P3tkٔ}j>945n`0c82ZADC"gsfw>ѵk~s\y4;d,n3k(l^ [#G$tݿL&}} x2eM!z]:glfA >wgS EݏyR#3z<ႜ(ow}kkk={pEDƆ|bM".¢a1[Op%,,c{{?K7;x;nbm} p#:ˉ!^\|{XV.-BBl \rF+Wy͑:NF1S}z2 !MINYqԉR-yte-xłČ.jQo16[?q6W& 0]cMM{'ޚiL{ETIXϞō{%ܔKO*(. L  2lā9kk@™Q$4 >) tODР(I"(f/ 5 E"<B_ YS 10 ׅs&ϡ`"hc)]Q3,I@F1eZګ+needTЖM<=M~zS"gDCͣ >f!:J]p%Nk%#2lnU6SA`D" m׫ykd@tECTd$ByB(FܰjkK{.3ɬE;C _w!L'W,)t,u+ ^ ǖ  IDAT'cEyO <~yGSWg)0b㸀v'UAtb ^dhmC1*ͺ=Zk[z' Y71_t'T3aܷO_w5-7pڻ;Bn0@Foeɴϝw~uG2GPsSպÎ/${ee#_~ñ4y ^bw^zQZSF{Vt^(`p`+-H]?/QK<^~څK1=7û/HKظz%xx+L^oat1}w_NjS;k~/0.qE.q;_]N0 cW:&[ +|_ׂ?D a$b.NB=TK[zNՕ_hԐ[uz 3jq3-ujIAŻRAz':ĺڱ_is}at]ث6JsO(bØۂR).rR*rDO|(p甁ĆWS$6^3 [mhs=|ZHe$eԍ.ԅ/!"M3pG8R-~'>6B1;|YS@A a8a4]&Et[T p]C} _h~mU +KeWG֡ b K2#y!<\gNAw::˺SJW]>!qzjWn9BNz5-dsv*] U95!)1ц]3q#YP^ĒԐT-\+.UW5T SZlUo +ͨRhaPZh+=m66o.!"  YVj eJ%mb-r@6mšؔzO9NYө6aK55J Dej`C~M6Hʺ`O:2OsE!T5obM1g#4ܸ:E&!ac5XnV(F)jȡ.lJy=~HZ~$U>_pу)}yBw:ss"?j FKK}Fw?} gR,./cܾqF<?ԈS'xe)#K]l}/1Os w޻|MYNK{&H\n;Ӈǟ +^lxC|a3G'@ƭwE02;"#:hʹ]j.)ԛ)#Tq3j$ڊҽ=4Bkmr, EU*s^/prrƆ霟5OhT2A{(4CP -KzUzIWNx@phG|ΌF),iWyh]G\SAhH[XZh+jm//ϴGbE+G:e(:2p.,J\g=F {YcDk\Rdr!oJaoft m&axhHE۽kքB7CWs>҂+/NaŎB77ԸO^Ŭ퐗B"gxYah  W(jf?tEt5Ml+h`֓PBW yPqs. ! j6\\FFr!u!csf1isWgGTpc&Z( AHkkuV(LסT!\gFlFypy]W>Fnard]3 ['S' ]$tu!/5 ͺa) Z]C&/ C-$ͶdDra_omMZt#5H 9[&B9CEF(4,YݒV4OQ:iqk:-osq,Rf6PQOlQ_cd`28bȄˢat|RғbS#>Mӹ+)rLSuc5އGI8uRp6A 5ʦG^ԩ*NKX1$i#ZArW)5N} MB/5lLq:Rac[)U~eP",3mh4ɼgIX4qSah$pQ+8F9h[_~t =!'Q'Z+ Wr" /:#ÓD4yHf.@.-|dɔ?~f\'d D69-`;y.: SIK} BJ!*hX'Ie&mdDFjĨB'" % ekP†bÍO롔xiRiDeKWrTE ᭓tH:.6%2uQ,Q"jQPaL" tb3C2wYF^w7ozΑ>GgXYd*K\޸Ĩt2cJIFw3nLU]K_cJS}\iwaZ2^9nGw ?üXčd7b?{8;#|OFߡE:%qӤ}Qt6fZ58tq'G1avVpt VcҔn?~?`<`23ٲfpi5' 6?8;=>:5Nl׿& ֏Sas2֍+Z[Fm[;3̧>[w<>1K|pl^JcmyɄ]/&7av%L'TrGs^GJ?U'^j W3\0HRL٥ARCLRb64ӟM؛[s-G%9VM~?tvZlI4zĆLR#&/7KUYH8i ͉mǘY=9S tϲ8PPNL_/n,ݗs8["OjioMkr1M3Rg# q>Qat"r1uEYk[^cChzwm9S`7@پ()!o> (W6)I3~MZ_=q.U"Pbv֎3 uCLhtE8h+õ6)h \H57R*$QcT_1GP+_!J9V1|n.DhwhAE4l%U* M>> 9VhP:א&")'t ܄ƞ Ⱦ#u/Fb,UL>䦒4ʴ06>JYRy_0+ci@e;eqѯow__wW?:(ȱD]"I2,5< y+E%[-n5x77nTlrLߛ"Hm36G#SEXFMh&3M7hnԸT$2EATxڒ^BhI!cPu_uK7BR y_i\}h4oUZ)"sq3cs' 1 : QJGaAl.PF.DL_b4DŽ*pWd!! 41#MPԵ6s֔b ;ޗCL1Rh32HCy05559ؘ'\tqemK6&1Qot͊ g. SFx0yI0:NzX;a=)Ю'b¡p'$=&L)sլѰ|@F.2ɦC6YuPC ,78L yHJNUgpc:* 802@`ALQ2; `Cgf^dZJ{(LמрPQbP}u6[5ll`o|.qާX^^o{|=ܾ}ֻ#ڵX_/KmSlxM OM '1͑ewY%ɆHc6ff9\ fp>~w&+&_mZFL8g<ΰu&y>{}z6h\wp~v^CG>}9Ύws}v:KbDE:#Зא΀9Ώx(@늴7oFpiWvn6lhX{2\*rӢݡnpH\buF&@21KtV}ݾt|.Ä1$Z+9qfbD4at&?|.2Di(`ݼh,2'+U4c]4Ϋ5{:~|^<冒4w N(PONuo3d*(ξy# $48x (&ļhMhtbčPBUeZL>ORɖ23FAΧ&?QW:5h1Bwڌ׻x *w#hrQ斛1ÇfV vǑ!zؕ-,$o 9RfAjT[Q7P nQAV[ES$)=1g HJ/MbtF5]̏~l^ 51%zɵL TA*ubk)?\j&P+H?(-Bޭ'8dȬ+ݞmC#bt(y9**OCrfvI|%pڝה,e !C0rNu`od?uD~N'>Drtit. Qg?_ooZ :V=ilĤ^ќ\]gZA/vs5fl>š̝z+;~*3@%z6q} :uQ!ݫ;W0RVyc2a<:ޝPFJy%yCMLJ 0:h)xB#P1:s4 diEװ}:n|I]WoMAtEnGh25FȅjiXBˈ(o Qpَ^("'s IY_@i(Sk90ZKS7V$,=p2;+#C6m. n{^ E"5M)fy!,r5.ѐh͛ <") i˨~hl*ͪ׳Ut^PƓbXR y%}R+Mp0{sI r7tySx*Rjx>&ɪ?т %sJQw%+MeR/|٪Y͛BS\M_}QbM'D6dy%H(!zRZIfL`Є"jmMl%,8:3 ) =6kg'ЩC-~W3dMoJIȋe]+5QOTo ޅ!okmmvTٓFјҺ3UTA\a`CXW`>~~y~I颓NNXDlY|^=q|0Ť:YP+Rv$i }pd;o/n^obQ,&ZZ4/N(+k$&e )MvrW4n34٧,֜)\u)lRTGɔc i IDATPEmeȢ5 WV/M(4h:;s#=,*'D.M}x]hON2ꆴbbQz5TlΙrhq)uHmR;|e3ҟ;uvNu¥/^I|BH$ 0׮˻暣ksn6EBj{*5콗0;3 2JDUOH#7C[+x4]i(/mV$MkbEzoKȵ&?"_`_%6[ WWKzi/۷Gx.ϩɕ-פd^&f?1VE[>8=؛aLդ+g9xtYcF\`jy@f(I Op5 !8ZH]h|羻a{ϟdc,ҵM6S7CN'擷G\5sa 8Ixog۸s蓟v8#[8Yw(o0;BC}( "O뒔TQRv8>՛gV: K6@.E#ްHsGM )wĜ6 +BYyyFFipB >.VN\+r xĒLXy;" O)x21 =C2՛~ P8!Gġ٣{8yC5x;$-m邆dVGDgWHVB[m荓Y<-6ʦWq}&Z v~15'HZK+Ń5 ANyԍMdTQDI*GTZz0@+ ao`qKX=GEMMTFT-ꦬ׌R :JB$1—#qf{ٍ؃GUν! zؽGʔ8^j^]u! O}QC`c9RGu{Q!W]9;I'[v6ܯ <`D68*bX[ytڹTܿL 5rzRsYe&dSd*ljBbY=J&:f SRW2hyv19Wեsr|vqxEizJFfHhz)ei B~($um\YA I-Њ@Q.(yĽz8~?z [E|j,ЩmPCG tf z0R`.*yM$Ass,R',JFyrQ{]yt@Pk`d%ۍ ӄQ9^:iR=4x0$X::G{S CX%սӜ̟ ;pjE_ĸUh^w␫`30z.ϙ5@Vs2uA/8=zkq I:=C]^`skp$Z¦iH٬i^D4\αC j0(+H()Q AFSDH+TXp\SٲO&DzHF/'^H0̈Իյ 'Z6p5>ã_OivQEq,Mg62^H+b<&N^wXy=OtxnٞGY~#,l,X̣ճb`-ѨSJ,]8?$,wlzE?Q1,'bE͒F&r>Z sIʔ[ƥʘBp`Wl*?Km50( -E%ѽ4^z^Dǁ?nl|7q%wbKD.Idg73VҒzғ*5ٛ!iTogKl̷9u_xWCk&j y2id'RJ7*2[i]aQ8{D$40'VXt(H͋m&"שNj? 9tMtaT5KMhfyAzL\GSD)k0Lb)J.iW-q]HXYRNWIyrA7:x.qjDCTɥ˳z#l<,T$K.agjzt>T&h04YF>؛;et\3|wXLt5 -&#:Ǜa\|&՜ʭԐ&Unb9FDyDoe*霉4q- l9cRr(V%2/KfN3}nSbg$oY }km%2`FokCG)"cSJeH4.29f±S9ֶ77XJSc kaMڭ=~6HJK1* ֩knH}iNRKof5N7cfMb߫k,) e1OQ3oh%h'JxRɟBٕ,qY݅`hn,ahuRL+[^( N3QRs&A4NTP?%Q=bթ)QMQXA$:*wlR%Tιg$H汘EC WRQFcdj# qB u~h<\2)7YcS,eXPg vagZSS~{[ n/Юlv5Yh_8ynWu.zO%Qd.SѡINk'onv.pzrN8˰Wh" 7oq{u բNZnD3 w}\]\[[;Ȳ)b !&[<:lDLf/ذb>!j}AaooL(uk]ķ_#~g䓷Ҏk={0Zt6c1oO1^DX:'pw})fea\BRDIEk-9-kQoQJ"T]õk1SमeҪI bĸ).T`AX) .1)r~jnJ㙕hRDCjs6Rtz\,ؔמgd_ATp@EDzc=>^Ǹhv6UNØ [("+,4AJ!A])ql()ծC\Qv"IIrTB:..|`)@8П#,A0h<x_JDf`vi\x݈FZ-.>b}M>|a@=R$ԭQ2cA-B ҴD#W0%;y??\=Qm\9tbq:nё6^Ok9$r&|koNZ$f4GSEw1jkaT#ER+!DդM~GD;[4 ohP˂IREBsAsYtAd3gٟ=D+t@7PALnFXg6z 1,uK44ROgfc PV"rexQmS/u&.Cڈ6QtNԬ0}߬7Ӻ!K+cYlv^%1-ztJ 1b0DSQyX{XM%Rgр};26Q'0vfגR)9! 4DeCWg0^ީ LcerYCn:$qUL.xm9Pf56([ } /tG]38CsF3+UH]{BW&gg'XFp4S^a2a2a(. I1hǧ?Oqp[{h4[DA]05xnW|ח/0 3]q۟`8ΑW0·{;ữŸxM]^`2+ Ώ~lvd<| ڭ.Olnq1tz͐MzvESL憬Wo1xm!2#sq b~$ &񃘐AY&cQ$aHa&YeF~W]4]~V= ͌r,>R,˂C<ڂr4%\{"Qmm4W7IWVfA-Nc=vla.î[75t*U7o%0ІM hnvz,r,xFJ&᪍t]bIK':F ,ƻVT[ե*>S[[-TkThb15/ST(`mW_#&]`w`OZ$I8}V~\^ktހ#㔃 EhRP ϒ5[/2շ^^iv#U{\rup=Fe-֎"KV^fߗQ! E=R8uh-fP tY忲/ts&z 5Sq|Mŋ)/@]r#1FٴʢȔÉe=*ƃ>WhPe#kH4⪚'@Ǘwgj)YĊ9=WJYR3)j9 6xixwGaڟ9mE@rH:w BqݿOۋ+ hwNHkE]"TܼTh9ːS)h|YI߾:)YчҥAYlYi([@RF[ ۽V3LQkt.ٜv9y?[>uB<>zݽmz;=5-XtRyf{()r 9Lp:ym 79͵6w'zB_EqwtmVM$kU\^仗Xdܻ>?42_,贚<Ÿ!I[8~sws>ⴅ-\]]Uۋ9R[O}%$$¹薯/LGGeZkP ׌yz;Ei`[{y|v6>9H%\>fT:Z\s͔yv%!*![l:{s1XI/t iVK{87t䳏"{)9 Kf, d`TtJd 3!~6gls5Sjmn`3dર ϊkup.ͱK"Rl jdCsoDXwfj7C|M9Z9>qIl.ń&vi3.Y8.6@jYC6M.4&x2ln N=Zs46ڪw*vAXQP1Fq=ޤ(R)ӘY"<]Q=W_G-RV T$43s9L"W/^Q@,ɐ\WO_辟'EDeдDS1Qa u5n~QD usb2|5ކBcqDz'~cp!z%#?0"P9xٴ U9N7LZۨdž>`L HTM иhc<*Ulh 7BsKcx`L%tWy xZZ5ב:HF#Aʉ^Gx+; /VcQyf3R o E5މ}uu@/YYhb1TaN-*H6nfFuű פzLN-FwŏSdv>[guSvfC%nH)l] Gs2cr"/:ݶIuHRe=.70јyN'` cV;Jk*h\,_VSTd }qJ) IDAThӸ+(#pbw T٥,rΝB ^'s-6VͶ:/\&ŜTu E 'bLL W[p0 Q]xn͍=|J6#be!JLs+,yz4JB,B,CS_-n,nͩplѠ &\7$""- ?Z I*Pa*D&/ -Ĭ4ڗffUTt47R97k15&KL˩6}LVpEo,b/IP=p1rG:*~y> d]YX鮠tSҠ5ֶ^deBԕFP8=}|ɑf1>&V]޳5CA]suhTK4s8phm#SiV{]o0 i, lbn2F-c-> ' /Bii.Klz]̋خ+ ^_tE|9O>:b`t0?>AxGG=;ڌ7nSg{ϱ߽|f{ R(Ş}%C"|JnR1/׃KqhtVi"V+E'+n2\娡)d(:u TP!$8͢Ml%+n7-3b!W9Ya,oPXNjms3mZ?mX\*[#O:$M gA,7X6u-QtV9+ۤlD߸hiRiLz m$opw.G]YNiԜp[$@ͯPplq0%-S9@KYRiDcE4b]5f2ǍU'Z 5d*m}W I9LZՕEhm_'g"ĈgMRB+tc(CQ94KJxC:郎D"N lVQΦ\",BF]O& rYdm(a)G(M0CrEOptgr7- L$2N\-S%f:ePZKFZl$UF> 7$ibQn۪֊&k 6Κ~G=MzrD=U%CҚch9^"S)z}ASx!;̍M3^)sSBL2eij5Vy?Z?m^C386iT b $<:B`ee!-Tk%<^ JH.yF&ɚtGȒ,+H%iDj ʩ%= B9(.ƶ`:Q !Mv8 m乚?]Avs8Qo$g*̗Roi*2"HHdF@Ҽ.ᔉ@ݢD5#HMViPO1s%ibZ,,LI+6Eυ*^zLAUSZY९.RaҤp'mhd|'C8!"G_g񄅋sF HDAd("43WSArhL O l"3B3-gZMTPJhniBM]NA XHCk5Hy13^kͱ&h7p:Klؕ'ԺEMÍEq@&Awo&\zSK܇ e97Ng&>&bShkHӏ c}"%Vw?Iw,`^Q'_'?)݀V{t㕦 b$Mw{1cǿn-zKi2P+Zo[:ֵmzL "RdZܜep!J}LVo`2`),~~3<8|=t^~':A*:|NGX\1c%P>3wߑzg6 pyQQ|38cb_a2blb$L=~ NZkT2k o>$N]Ce/ad{K}'|i, WHSn/ XSt2,4 9u>I.|+}PpZ[\]|Zܶ\1oY6EZ` uZ R-тLGmB8Yn~AjFͻ[] R O4s"1y :s@giY&7tIOe\޴ƣ-1 ͜A!+};-Չ #R/"j sSc|Č5;둑kh\!|EN4\j*j/=8BrQǥ?rVoDے Tk#C׍V**_fQ6.xXzot5g@Rf Z-4t{mYC3(0+EC9njayw6mb&Ȱ[hA#QYEDc'OOniZri(H̋4OG=5czB6s0I,"sQO(th#Ԝ|Q6݂jS)tP-egEnkثkjR}g|60ɗ僒D#ٌ5ĵ1zC?6ѿ4W/˳VEB(zܒ.6 0$J$e@|:gϜP%yMxJVI%["0;`:E|]v2bQМN^Ihꘜ,Jiz(%G?޿O5Q;h;?,éhĽ7iТmM>rrEf?r$8D|@ma5Օ0Krbm@m5D3% p<5ƦaJ~^7ä&N5dݭ>n6"҄$l,'/_{\'Ib"i&Z$Hq[Xyb{yz:6 "ȱ,2XvdJyn*AڂFr#u.͑XOi2e/ ~Cǩ aLl)jQ4xt@uæҊ<)ouޑ15!=pR†()ߏא`ij^Ǧ/u_lNA"|e@n0*1OS)A =S]FJtM5Y3eWݡdʵ1jhJ"Vr{`x7G/+(h8d<9ݝ=҃}!{[S!njA¦X[}`{`G&Dwp^DZʌK\,D/)H Z$:u.6ʨ mhup׿CycG6wbWBU\_3}|/npzvag1v=G\V_>rm2 [ǟCj}|c}ctԣ9] lhE&_,WFmӑrJ@f,2b|"<3"_6 "GHA/ uRYilT'B Ne[֩ qBXC1+dݏ-S2?1h?U8bַmܜ?goēBW56u0&ElFnq@"r.+dP ga+ܹmH)R(2 g.J,.[\mI1 "_Ч `xdF]Qog 8<)2cNDZ2},OS(܂#@3o D5Mͥd.MQ6PHc`5#4b]`]beyW4NX3sꖽ{Ҝj>4CO[䶄=@\CM7 |jů6=ԨBp"EvX/&^rsDAn妠ZHq/oN׿kf7-sjd32JKm(]j^dX ud&S#a6)i]LWqFM'Bm6XA;6X 'F!H;-%aWwY|!'R.IuһCt Y!6Ol1[ gw(ʹm>Z RnIqΩm*Ԩ@̼IMWaqJMLcJE (0( ĕFA|65&b"6gIqW\{02VW+"̽&>zL6w5ƣ+6PfJ],ihZirѫ_5h`ee חW^s^oR 5Vv%`>ɉБYcsl> R-XGǼ{}rd(PWѽ5g&<7N~ FX_78:=Rb7|/Sc>(sLg?y_ |ɧ8;>kVpqQ7̆el9VVzhWHIoVi%!A~oD^ txћwdT5Eؤ0PߙoNzۻ;ƶvW2st+e(ғ7L4V 1}D~ؤic%CP;OyA04Xy_9dt54MCt:_-\]߲LL۞]XDU `!(ĕ#mɵxGk;FD.2rvcWߢ2h5yRMU`߼Vax'dafH*c#~=ֵى5GW:־i(揕q8@K'k .D|sDʍq) !}]q,-7SWN42?MJgwf%2f}lL枆Eq\վ2XRlaٳ k;'1\> ޙرGdH_X^ZpnRt鎪Z15xYk\5eLv7LZnuuK׿&#V\"Đ 74@ ܌|<~h(\bKJhޱz;5L HϡM掠Swc[fAD?[y[{h 0Aߜ gJs:OY9R ɿͬq%7(Cc@GVxJ[-_*<1 vWSu!t-Nq)X(frXdF4I^z0v+}U#gR:,D^3Wkuf3Ҽ<8=yӷav-j, :TצQjmޣD{/6έ85H| =nDrp 0E IDAT)jX("E8⌦;mu|(^0`|cw*ِ߰C|V_oKD]c|)Лk;-{8;;<Ǔ' | BtvЏI.1&+pE,A50x[L'C6~KAm9&[q f^e>ݻO9H p{}Ml>E&1A#^} e9tp&dӾ &׀]>Xm~l1&ye[zow<;{xs|TY%K: 5>^#z̀m7+7 }l*.Nbko~ϸxC3PxGpLCa霃Ѥ($aQTnb<zx"Tl MMς$:Gt&5b9<-f\id&]JAIVVˀTܨ.Q]:ur?+w{h|VMpċ.s%%r\疣жD |SceM'Eƶ(e?GƐIolQgQp-괌%#%xdmȯI &ĉ5^$MTmY֘VxT AfZN'3Szt58h#* oE1&jK\ wA3Ľj#cUM~EJ읪)u8Fd!չtNB@܌j@"qd+K莫-l6AvTS*k@2!Myt+*Y&DLͬ -fht(J 6H77C<#8}ZcLF Xc6iT Q7${)K)l FtFl6Jpe< pJ4ur(}^zǏ0Z4iz D[ZH#/fan}[(pWÅH#dIURECSx%CR "PܘP#=_նcE}$n8lFpAv2qJ!gA'T=KͦIݕ$DJ#WkMe2,b΋ !jtagd I-lP1U>-U{Áh uSuz뗠Fkwp>b';6l P^{B55Ԓ&5٬:j^q[jޤ Q&^`-pqu1vJCvw'W"n$]4/^W_}I}Ĵ]\v;h74;Xdt4I36I!su.Ul1z+Ȩ nr^q:L6|t5X3|6qyvٸ˷ts)Ǩdxbw2H֦zⴁ?1g-=9=/PK%ȬWY㮮nN[ f-)s3Lj-tW{6hJ)v( !xB‘A Ø'OGCq9{no?SbZ~3d]h*y)X0sϵȒݿ]ԑ]>/C[HJ[6Â-O{LЀWIQS~#Ŋp{3:n9L靏}?,T9Lo^EސF g3Dί1鑛ϟ5l@P?p`ѻIZ_įh(P[2{wEɦ6 C,Tn*IzGfbxʨ'鯛>21sTˆe1K|.-H>"E $4X^x<7.XoV~t]5vsq׿)zT`cU_4(wm,ng q!~(6ξ2VMg߯m! }%\j[R MZA:jd;z &y.PGvz6 jM܌,XK[P,PJt& p2?;B,dz$Yz&V(ͭƚY-bql?Qw89ycywr Wl.%~[Z3d-ָ╲IJLK6R%ۂы\ -zHQ,5Bfcsμץ=]d)',IErix؊! >YK1\g>ewVhD !!kڨsI/v!KR*-&3ǑFs1,jp*1$+g;ɾ,4'`:Jq# z)+ř*2ᏔAݗСLWׅj^:'X2KuEpųxԨPQbEQ`Q.b>'RO3vYο6wXNL?PeJA'vPX&p&ђqBlfsop[mJ3(#NZͥO82I[`:_%<1k3dX \ mB&;tGKF_7nk& R8M57Ő#YFhȸ|uwj`OSs;W>, 4rPG;Z!ORW0'S)Z*-m]lqx0y_ ~L$1dmښPǷ[a\O''oʐx!ס (Zz[ƒ캪ǨGV].QzF/FCs_+BkDRDr:T'^k_-& Oj\92珗|%-9L<_moYyQXf[^5ASV&8\QsW| "W0fss?%.K=$rM 4 *y k/2萒h"&t53ѭ:/%jnGx?7/6o@'-K EȚ q Ψ0.6*-I+pk4]Cd^d0;ke<ק Kb,5pR|bAYհFu+ Әf8XHRtV7l4ItTic{Rݐδ4zs:s0nir4>RoYX8=uJs+ͫOoM+ 2nyn7R5h $%pc^fvx{ز;~W6%ZX̃/ͯ7! TpWuɊ{iG0R=0O5a1(^Ȣ:,cLjB>xZԌ+?;GPυ{c~򕜾zt?2n^(IӫBS"FA)r_9MÆS ՘M6,OF1[؅52Tipm>Ұbu"$xBŤ$Ѫm`6aoOD j* b`<rI;;zF[ݰ{pnT{f?yF }g{=$Z&{xIx |kacc>O J,&RI\flZ/Ѱ٩"nb7`:#.,g,S<~C3wH `(c817UbT/&aDd-Ij 'bckY7宆͝C>xlDM4[]&sϰy:A0^O?'wPqpxmf6|:FCV{{ď'3_\"sln#My4!Cf9OK<}>no/1_]]Q_[ounGQ.9דlAd]28oM\3rabY9cg8!?Έ$Ail!E@0V@a=%&h2`4Ϟ?GCn(X[Yh<!.J6D6c$TB[5:CM炳G°[VkZZ֤EkQ$gPT^gs0Ѣ /=-enu}_pĽY1IǑ9zjmu( }l`Av5Ry>+ha GP}^hQE͆ӨL3 jLߥ/??}7ǫ.h= Uc;ݼlHqz$$ٮvLMdBGaIQO523Nl`P1bt$JT7J %X @F&ɊY~d ۉVz}m185V uE`fO>+ͤ!NLփ( qi|>jEZS" )ZW~$mM 4D:1q2u. j'EZ 4U5jM |#Sq,;Mӈ Ѯ&2Iav`%ي y&EӓHI"nq!p@5ƿkj;j btsMINCt(K7}-L?*Z'7ZyDu8Lc31Xi)\ ]YfMXj4H4]!ytml5Uz:l*)B5-< w--ua;/ @̸MΡ&']DFidB$k:1wJ,g3lck}Ã]#u2gദ&yYq3ZtT.G]L?RvK'S7{;zn1>NXiԵnN3ї/t]7hCzS'ۢ0ʕEstͷMH(PKx8!"KaL:G嶙Dkpys*`t_ d\!| !g}kA*k 5G$1F];;{8:zC4v2mlɓ/iXYx kދ:εA ]3mtZm~f=MWxKmlJ/Şbc_՛78~{V؛oѼjۢC[bk1})ǯZz٢VJaf41xq}jV]|[,c\^b&wpvqr3B͕qaDյ\Χ7xG3'sݣ\C.0#mXdOi7Z얪M^VR]fx,-O">ښ7.!ש]~qHg.|5 J&…jn_WT R|nI&,Xn\ɠwJyG kR9ȃ1bs ֛^oAJ{LsIt{&I:u=z $H'ϵvlA`1geUȬ2tX;50V߻ }J?;;SVlD+ i3ZdD3y6> Xx hKc>/)#ԑ7h˹Sq閻 `e}fLg8GɴzFprmV3&&QRS*t3F=: +88U7S `4~66͐h7RMR"Z-*4fɣYLf[wwޓ|>@OuԾEVp(c7lc65H]|8fR>ٹ'Tq8lHo; rbC,F=&}l2Dl23+Mpn%DGp*30eWHjP&Xh`_CAR:̜ҨLq}{ D34n,f+KOop38Vkvqqu#s"BgGB76MJ|@\xMظmnl.V[* IDAT#b_f:C^vH[,u_sh&ʺgLe6X7. +.>?L<i'ヌ-#K g_腚(C,m+5kk'b "zvD8[{X_[E%~ɯf+fNg0}nj1>vqv|FLu=6pr|`U#gBLnϟH2Ϧ3績SF|j KllR HVפn4,?|hd/ڞ:-sA["{QH/b:5ṙQ 32xEvȜ2}E&כ]Eͦ\Ɖ)D/yXw岄 @j#۠*C3n{A\W\v-2s"P"}LR2ZZa"HF>XRQiɈ~oh)]*3 Սʅ3 bQ/ꊫ vT `A*=NOZ.ihScF#Ԏu[U)`8Qoug0*{ 9"鹈 fBikWʻ2Cs^9@óJZ)ЎC&1tCo;N& N6# ِjV߃z=E0Y2Ğ kg44qEshƤD#ʜklfcK"ad$$C܆tY{o&|95s(mh EL1TSi&^s½Mť%.9zKKb{suKKt LJUa|=UZonH{†@`./&;208ev*HZDhv+A&h[:z1^ybOpn2c!fkMzy>*2CM^i"8 fZNw TC(y#,ͅREfc32|~kkY(N_dgu-f.wk Os.%&i!)b40kNu9I)'"AynTHv0+SC7۰f3WLNPI{0w3pX ],MtthE!:،:mQqzY;w1"r峳'8=;.n(Ziե,/hhyW"Z#ܹs'Z?l<6Q'ׯf!B|g:./o#Uvf S r!\=~s¿9mISBc9 3&'h')ξ要5eI#<}9Nϱ"&Sm'1qc~#Xf)8=|wezKX_l)у{6Χ˿s o0 1_1NLJ>ݮ"mbyiS+)5 ,֎u5?;YSnZnᷴFȭQos0]kZCE Q6 ^kf"բj9pJFnN-wРP4S|^Ǟ> 2` @zhš+JjLz59j3*#K'ԍUmL6I.&vU|[fpJEO]JhaNB,j6V|YY8kib]I\#?.]/Oegn0bi0Fh/5!E^R(t>[OTf2jŅƶ4FifzW| 5lwLN% *lFܲg(+1׸R<77#ƾt19Vz7opI?L,*qV\kirdUt6 ""t4!f7emh4U,8 /h%x49@wclllr]8@H!)%D|ZD:;V#XlocN#R3AG7Ա4w xsg9i)r4u  Ltj'1ڵhw n41t.GGl KI{tu=:D ,Z*&?Ҍ&]bSMDǣ)nMeq%8wZ)NZTt%}NoL74LhPkK:0ydtă>{*^hؓO'(kwL=>>vϞt8gT׵ 'qAy56r֙?z+ԋݽ}ћyh.$p6.ξxvᖎb:O=^ұ2w:%֖8Υތej5!H1.NS/1f^cLd`Q?hDs$'_"* ϱFwW|gV~z6{R_f3D|ٔ룇.>y)66v?_NRlD $GRqzJQF9X*c'm%4g:aZPFYݼsIӝ1Z' aX'ͳY;ϖz_#6Ÿe(rvt^)6豀'v:EPḠ%0[SoLo&ߚ'XWhU]nJgQ4%& <5r,ђ?oCX6olڗ}{q. t\犕iv2FȔZ!Dl㚖)7zhUӺU@=6RtN 5LEiFWzdxxy*EE#X'lpg3Pklljz;`myEq lA>G1UI^kf)bK%\_]8-RWz%=u<8ŤۡS6Ѣ||IgAz/PrHF b&\N_J|_u v _~lB׽@#-,u[ =]jL#ܢ%M! _z-|O>ƔS(~{(wݝu-TF6o} /^(ϟ?ǃ51_}/iccoW/ůlE1~tWtӣ/PVY W嘖G+ŰPJsbxQv'-iNO&H=w:{ln:xxehF e9D#Veh;#J[lS\DX\~ l3bn0U2&s0I,4GN1q6ibM ҘDqc&.dBQɮ̄2dpjl>P:j}MPG< ³KE.Nfh w /f+݈2qkh& پȄ{o22"^5UWgTɑ*J?lljɐTe3鬑=㏬tYHXfQ浹y.&&F*0$QXGTV{)>bkJT\_yE,ph2B AFQk"F YusWR5Nu 1܍K1ݨe=^xpZ5}(cgx`M6ٵT G ,jʥn2-n$,ۉz݅0bIq3yQT͞=KK}:XW>9G3M;5e^[U. Uoo7wtɭ7w`:Pp=*# oZdP۔f 9b-ɻD9JtTl֔l*m_Є¨VN/]v=F,ҋi3M=Q3D[yH(QGf+d@J9a*"*>5Ly0]62lcFj6z2ɞ"/ ܑt6t$X(](5-+mB^;WRHK Dj#tfδFӦizxbŻiN3e3]04sXY^Ggs܌{j⨋n,s| 5=7L.>8Kŧ5sjk6'%J-M&)c!uv}mj`O*9Q7 ^Z2Dkili‚48ҬvSz<&MjYtm-l*=p8(kEeHy$[hC<~Ϟ}*M| U!?;<[jP̰Kp;m NHNNMq{s ݶrS2u+4iw{W_=RiwD/uټ:?G{ V/>2|ϯ l[`tv;U+_7R7RXyi1: NՕMVj94o^GQhxvP')2;C2Jyyy{w{_r} wD|[8Y@3XAq "NΑF:ó/'\ߌ6_ۺB{?sGx"CEE% H:Ͷ&X[I=,VlҧX[ý=|9fn4Z!63s9O=H{+V}c^Z>3jD%MҤ1!qeν`!0GGdo(4?J4Y?K9( #l\NNτp~ހ6x"1jX,Oj\*ߦRSeΆyqB![MDs t3CHk,<;7s*fhJ)-OŢ9КJ`j Ĺ_TDY(a,Hb/s!_֠TxE(āZ\Hj4 ӊk[kQEYqݙELR- ]4k>q]Ej"qY]F ~Ӏˢn`\wdl= =zԵ(>Z[42^{H][=*QYWà]d=BFyUwJ0 וPPn~q}eH9|=E7ehT9Dg$MԺ\TcW$QaFђd ,ϑ+&pe yIE_/UV(;ݨݹ^>7=T0pwx? ^1pp83Q!h6h5d >5~ ;0/7pJӔBXhXZõD]_&{-.ty}bZQ^ ӬD ^63GfWjS3DM.?LMh%YU\f-F(bMTN]aZ,@v̾Mtg^חB\g㱕>|Yc*m Fuoh42n 9޽kq^(kΝS|;2KOO,NOOrmw2Y*)!.Slo~x}%dPD̈́SO]\]O?W\^{n8<a2IY<] L1F[ ʚv>gvӚ ;6g5p@Q[ <<WFG?tj0G1%Mxs5D XK'R71h zayu yViq`^EYl.Mݘn6WVpm*uV'P΄r)wfTYh(c҆`BO{?utϦcd6s55-PM=e>>](McÃGZv||ׯuy/^bye,//c{g7CE v1n_!htpnt|gy)&tNؿ>Z-q,寱wyÒ c<\5!7w6VV6l6S5ysEjmfTLPLn-ۣWhwr}m×WX&+,[9C/{88x-G X>GvOobymC<Ż_Rz\)h8濚.tN-oy@O-F#RhsҞMڝ: 7>:xJ޼Kp3t7#oŖ#U֘ULj.sC 3,տ[(hv*+2cQx0BEѨ)}eERkm끅 3[KCh7wu~}issȢz}!~f@xTLF,hƖ0iR}䈨;8۴>L }FYGE)Y?ԴNeL 3j2KqtbȌljeԑ1}43vv|OD,fHrZTn 2\iIXfk+*S_jr4c#P݇`q I-J"Qs@cfqOl2t L,Knae"]NY%FI1ECEk3 ecH5/P1&oaX9 66Uɳ M:56c W>Y4B5_Tݱ#rLѦhڒhэ-5.,PV,K s???ctμ /$.Dq2\oD%j19aYl"3j1s1B8$iu|AšE[$bF*ξy zWWLGFRoy}ܽ6k{z$ԕk47&~2㙎1}}xk,NCvcȓ1޽*WW_[Þ1< ^~up7 n.#˛}ord.K|ogd6Ai /p{uC=/W'L.6KG?N8:<ɩ>v*BwT7Pe,M̜Z>Dw;X!Z,g䭯/}P$Fԡ?)o(|hWE6LE;jXLLF0V`*;5ss 6??d5B6!Z[؄0 m:rCbUYDģoсV9'(7(~35 03z}~FhT~Q}N%4D@[nj-I}s w¥lQ+hwzxVV4FiIJ4zhؿ...CsC3ˉi 48X6n^i+nl|:Bmső),8c& eok Ty?ՠ6+8s'kh\on,\_POHsRf D ,<)'nR`# 8;ɡ1V0j:c`hٙ?sK>xaPB Di\5^&<;Ш82,k$NIsm`W "f 8P4[pzu&+$BjHOP#` 6İ8GD|%7PTƠu#KjY,*ZsTM,fuTm\52X7݁kPFMu&KfK9 \ƎNm5x!:;GPY I̟*fO~[Ӣ*e7թӮL޸Ȼ6CZ&:TQDr xMhx!&ݼҢ1]vQW֯k*Y'c.qg# W{INaKVC `%Mf6 QiCRp~n GlJ[A.B]P]5ZP3j(=R쇠a.2%)Fki8$G#S L"2>ѝ sVWp;cF'F:UE<PP9./Jmab 겈fmCKvp=pHJ{tVm/ 9%SVi+/ѬQ Gj \c21?2 atWaF[v4،TԖ70d7sTaLaG@k$x贻$&Ms*}=GL3l혹O^j8TF枿onעLF 7M|ttU9>Q͋/FkH}!~Ϟ?:́x&oV >z-p᭘*\l iSϿ9:f 3lloK\#4a6:C3(#Ͷ?Vx{$#vB.05޹{˫fs. q~~, \{o#+7}*ɀҤ'f1..5E1(FRQ.ccu6;G3r*DW!;K~!z>^|'o_O5<`#J$u͵#3 x./.5Z]]K8_+RCQ)4KX<dZz<~M|NO.yJhxj4՞aGP%I+ճ(}\B%ay* Ml;i0 B圆7q0wr]]pKeE'Fɋ= vd+ nQ8*[g5(E1hX ujC#z[#kF#7)CZyL}7I0W]40hAWwfZY5qU{or>Du>jT͹:7[\VD{,n~<#wUQE}_oUxƵaa7{k4v Nmp`V4j}pk;T5+.m (AxWz3|˽ͪK-SGhi*֘lPǝl:JL̇e57ob83 (y-;{O?懚Ǖ嵚Lep\7|J$ vR"Iih>x@\ʕc-m‡٤6rR=ֆS*xolCRNEYʿn_wᅵ/ W-dD 15{BgS,ma6c>o?|?1Lp>aycS<P&0q;ӔgYa{U9wCN6iD&F דOf57ֹ9$(:XX0t-aCFjL9MZFq&f§±_QRc2͢jF{zOqW7Z@+xؐkѯ 7i>,x7sd2dy דҺzC Ac"1~uߕjp!mBZV^v݄զQs$ S3fdNC\LJwLҤ?nYFVV!bPv4M Tb^izM@e^Ժ&A"@8\DДYr T^l&#՗<&q0ވ5%< Ӑ\{w1N0dҫP# /)׷縺:)%"m \ U&};yFrzw0ΰk]'#5xR!fj0꩐GayyI HEDOPFZ[};w fSQ5/XݕhٔYC"|dse|ཏ԰%\_ ^1a:JGlU)?|KxՕ w}Wptz./~ ;kxs|_bme tgO?C>ג{ ʨ(ޣlboRL1a: Q_][վ91Cd˛2ܻ8?~|:ꊜGWZuGBSs5*\TQ"h.?7Luqqqm alh2CT36 6Z#3:"w:Cjg_bCG44RȝEC炙5,ʃ: IDAT8 +6/ݏ!,JhU.KǛ8&XJN/ υ؋6\ +Л &$6Cw"IBih\-(pk2(tNV\sʚ㪡C:ޟ(kT[׆],6|acibTt2(BvQ9rSUˡ^T|7u%UHko/l]Gn*e^xs<7}Br5ji.u]]S,C1BmevrU5xO}6jеԆU(^@؛4 >T؝ӛ׀^-,/Ҕ,8CjoАRY&k)rcFЦa-͆e SanT]*~a@FXޜƮ&p):Ұoܼ~s݆Ш&{ {oniY 9 cFlRI"h).d*CS9n[ S.j_"kx$LFJHDiUTNhNҀą#,bͪHw2CԎ.Թ2nR(/_FS.ݍwjϟߊ̝ÂAT)yt ڛ1& yiYKl.V)QAԁO'd]?(c\{cBHu hӾʉ4”4?RKrCD.nr*U9H/ LfʒNn;ᯭJ&&Nc"͕) ZA$#Q焑3@ˣzͼeFK)I #Q4cm+Yl' FccEzP$ь49#e.Q8Pt"/|]y8{@ŹM@)oSޞCܹs/_?T#|'CD L'g)6eOͿy;wunAQX%壓3}-Y:bH쨙~[wf!s]f26,<~!Gۻ8}CL/_T\=9[âRv[8?=٫O466z.M//xꕆ'3+;o6>c\>G|=lol\L^O/Hp7_"sYf0 ݣT[8>>O>kG#Zi[Dtz>dpTNN1鵱E;i,lnPIíCHnʷ"9_[_5jQ޽'Wrg%޿W/_0[b{n4qYmQ[[ۺoGskyG?~*i> dq54x(J md< Ut-~*AR4TL\`z[6UExX'D-1q!aJm:1t͟5lTKE*s*3s) r/7Zr BS@? q\V7њ{y-=6r'eUA YqE|P75!?5 Xh0* 6({R(7&8 K3h5A GXsW e[xkp:(ڕ8ܕOqAB W1=|(x\P!8N3`t6U-rmܥե]CK$eZIYQŐP, HtXSVٚPeCXuF/I2vJdэ>wn>\ja .f@X쓾\ hX5KB32bb9#k6 $q.LY81Nj" eT:]X9J9^kV.T# Mśt@/,ejed-"l@e I/2YLi UrIAI{bE(&¾4 rE5;N`#7,S(` #"@54ԝܳ"w Ep6ͤ4RE7S5[_nYCZ3"El,$av#bcH ܿ&Ga&Izо#Boa:6v 1. A4_BtPc[v0][^joIj̓&NVH1)Q0BEw4_QQYV*Hj:`5@a8o2:K& T(lnx@ڢ2!)9=vu,ټkA yo^|YEq[ۦi,asl1nnh|Ί]cdp%ޛøGѰۘNsy}ugX/r< eݶ72?&<6T$"&1nGt]U|R{҂rͬi0w-~C\(i0[9-R.L>r;I5xӟ#ߢovXӑEP,qsuVo=F^x_s\^at{ϟ9+,Nɓ'x~ FA7qؿ=s݃~o ~=llnx(évxm<|}QS녚5] V}]Hbwv0"Z!X[˯'3Ce7Uzn0hnfEH h͆+mǤcgs5,9P8sRҭ;Mo8:(RUZ+Dkjgg"d Hj4:v|zrk|{ןJg [͟R, @5zf(ʜ"]}y^:* x5%D0 Q/,2yT.؛صkq}Pw06elei}块NV9%[ ÂP6p /Pն}_,qxx{w榺oSc!.5_5ZYE[^8P-^/lUk"7-#սPpxks?CY!c8 Nh4 [5EF3 r؉*)Qi R>zzs $,A)YtY}[f ~zYp0),d@ǽp[s n>ؑiQjpgKfuYy|\$s͋xٺes4&"tip{Cԋize=٬ҫ YHX\3Ͼ@ZXw4+8צ>ܤ.4>ЦMH;{ :(GX]7l^^Zr$Q B*Pw80;yV]\3k^IkN+MٱS$1*Ȓ'VIYpKG6A-u,5Q֌i/lZ, %bohYMgOɍ"ݿϞ9m6:s02/X97Ct@% 7(EdPE K}sRH-J>fY,d38F 3ˣ#GλQZ`H#.+-LJZN/3rki֊LTs gMז G૯B0f VaqKcFe,fY2 YTGw]=?wLN䖞4(rNu$hi~~_Zt22(c>cme ޫ+nBx <|tq\ ɟ1.y "̅^}z GGF; sQZ׷:4rlݽK8x%M8:xtzʄ}+E,rfqy~q>wy2/oP$Yxqu)t{7@4n1@<1K'41X,*ڭ5L#^]Fo /_=޽Kimfoѷzh.4%tKjM_F>x NObܹ#?>k!\]\fʓ408?>ϰf)z!Zr R&s-61fמ%]Ȑzv"VdjɢƋ6[kO"z&Ƒgr870E!6=)\hA|Ll,VMݹy["ƋNȢ #:wtdTi2B^fA}9? *+_A9M8 e}tI1R YE*x7 F}3Y ڀD+,> B#|=#(M/hg^; k@d6k[ O{sJXj@Q<뚨Or4+cK]54ccƺή>]2+lmGT}o;hy '߲ OQ]7j8P4 Fy.GAg:Z]Tl&txCˊ U,]HE LyIQ:ˊjzbv: Z]@Cj0\*"rNQѥmM>X]wfͯS|$n3f 2CzʹpiW8xe/* 0^|mqbjp!3msPx0>IqjWF!kE^ff\r쨚fa' *}͆4; '*rg5 ^ "BXqYMo E +\i.ʠ7(jjpp-;k-(Y0z-!Bl{&D6٨Y4{#],q+tncm c;lF#ds28C39)sMSBtIgd1Nu1,Xف^(]*FX]86 ~ʊ Z;4JC%&)rdٙD6  rEؑʬGTb7PgnmFXd,t#XuUiPJӠ0<& qkm6:*xR/NJڍ'р4x(G.yMwcd5Z]G\ܠeB7rS̬I03걋\x4JU/lt`76d2UqF1؄$O7},UvnvCR!`Ya;ipp5hnL -ooUݗ ꁢ RrwCiS+p`AfXDZحTC#jGc3e>|vo\^]J']aV~NCY0ė_~ fwa8=ܽ_Of>?1Ɠ[`k{=ėO_-|ck->o1:)4i?u@RHH'zwM]ZsKVbDU>R'2iJ痾w̍id.~㟠Ȩ'VQƕ 0hW/^|~G9g/fյM[//`D?YKC 1.?H7DqG7xsd-jN(^ޠvp}s&pl$]9([Q̧ lY >Vse!vIKvjjߌ`FvcH)kNY[]Ê~wI7as)&Eak!k6e~pP5"‚$LM8Mw19j?+fjj#Lt Y2Q[~% ҳP ݮ*,}by9ܩԦ)֙)6}pZ!!*? *㈤θ_کQ#˾+1LҺN_\5=eYQTv6 h[HfRŨM skk?$9f C+ie"dVhz}-+#i_޳YJ|20 t$g#鳾ܐؕI1M-\oJfA L쮦+2 J55԰L7wfTܩF ZV[?НLJJx-\c8a乘>+ݡxN塯°)HFj*n:qGsi9At.,jBaHc&,7̴bf;SY4I6;ltF)'i,jK l%gLE#7rh&v ^.xwn5OL h5t={\(0h?`2V/'F#m++Gkpw+ 7~xbxaa΢~__~[\zUTI1QrѬIj5LlNid}ᅙWƨ`qVĒe-I4ޛj]Uie-9p xh}%:&w5މh6;xo1k3JɅ7=}h/~z#sZt+8x!Vx+Z>7 6n~4;(: |ɨȼٜZ5Z ,uP#ܸ~ GG.]?uⅣն FǕS%u%.YV"n,<~Ψ?%Ɗ'XepX&C=c X5){0<ȱdGZ?o~^´ n%5,r b2HM2R5gf)UXa1+%~hhsT[ Hg5>Or bM i! #}^ic3\RC@r\NKi~joߦ(N$ZER9Wl/W _ɴy^(BS}@] c͸J rD7PP^,(̛̅Y X@F֢SD֪?owr0Mt&/Jp18:]jeq"ʴ#S;l;|1QBbÛsLlbǹ蹌0#'Dxi JDTKJe5b"ӉYG tɅ gN r>RN:!e!$maF/텅OB dѪ[qȢsma ؝ݝne22_j=f9 2:,0IGwhBMkbOYuwRMjf.5K읟1ih1o"GX>)Sձ[oF9D C-zj&f4JY~s!k@VySNl5x줷̩or,YPc V;ORRi2*r%f9X85T"זTnuQyҤ1@=ܾ6sE~6ׯ2xYOwxf`>z)_2SƋ~" MW]ؐ;EC^Np;bΎSNt'x)<+Fp"m#jTٺ2I!}WX\XăǏ{p`ZaMW(LJb,/n7){3 b:2+}qH7j..jKX^Z:Fm_G;2:L· v'Ruq|r*&d$dn-Y$R ?h&qNVj9Nl|lmqX@TȊ!T Qc+3Ea ʽӱalIcr w$>E>V:_|C:+JCbN Ϩ^pUb `Jˆ-h!̵Ƭ&nL(ɵ"td3Y!2O#i\*9 +LPq/dƚdZ`X&IS-=ҥDg̨RS쩡+8)~;L֖~ۗ^DQ}meM%,vn#Se|O/tJ0p{kAS):x:si/C<)Ó7oފ&ʘs6Up|u vwٽS%bn W mow=nE~\:qU\Qo.`4AZ^|/gǏckpv6O/pxt2֝ xoaS !c{nVxm2'n⢵3䧘ۿ˪iDVQ,!E:'Q1yϛ qڠCׅu9(]hqUyVxFv7 ~Q y p3ܩåc˫ 㨢Se*VV0 "SS g& ݉k+$"6=Ds͇3ˠ猂v5,U*THv#g+S6(0#ȫ(iCE 9"渌,T$^FһGspj:R !vcFtW}RZk% SMN{,axd!eUpO#vK k%>_*Rg11iqZh4j(r1I|Mc"7`JUaZL5`pdU=q;5l>_k{Nl0skO?藹 {Z9 nXp4u-*MaTq64㙸)D,9Dn& pȴTS(G)N$ka|p)O/hs<6uM+f4 ՚H(I[_ι_Y{6f Me6ŀ:rzMtnl o i@RЌ~=rLg‚EO*e0zoSgTa#,BMర*rѠ+ J;LO^S"E(YXNDiR]V-RJ`.6z m(L+n!4yX7P.v>N Yא]WF-D\Nٸ6cɓM@|Ѧ&n-  26褰$Ncܙ qnA0Fn\P[D8ϣ)iZ?BrL"#ssfD'Gsm,ϱfg7n>?߸!FhB4O/4<>=Ǎ7quYLQﰲwٷ)rR}0\VMX%'lۿ9?"V6`?w ƺώ䶾uuS'g,`0WTK Pc7ϠkA. 35B]\byiA|¢yk8:>t 4%$k+8M2zhMfaWTJ=[.6iN5<859ϑX:Ɠ\fY(Ks$(\b\e yNT?WQsgg82g:Rh*9 EBʂ{NݚMŃXV^/;k֪o7><-4u\ly`h|R.J7  B->U\m#;/(ȇ;Z-7fL]~"V3ʌ!_45sϡC *P?gͩ!r&hX͘i.)9-iH}22r !C椺C}y\^YdAdBMb[ 3iC[JbK5UXSNyFnF!]IaȅiB@'MdC>6DYj*%vvbk%5S:¦{|m6 )5'?ͫ7cD7Iso[x)^3|}4qr{l~}e-9K qKڪ˟9ѳֿTy/.r;QuWt= ncGʿcMt:)..dnw+k<9tp|m4mtǘN G,;8;;EmY$j0촱s "{Xhwn6NͮH^aƯ~+llEmYgYKzgvpwa(Y_,u'ӟp\[ [׻a@a@xWL3#"x}e 3,/.jx@-em9"0ɲHg\8>9Gj F>+3neGӜ)5.]GI H^^VsuLFCϔ-xaʉk JGmTLGJC _|S$q=+^Y`4pway Q-`HamPخBmQ&)0fBŹ9|{ntŌfkKdMQggFt"ϔfs~0͑8~џEEН,3h!lҒpi\3MGʠ`n4aD]ҺYV\ )=5-g0EV]v '؆jwtOg@gaߌd4JXfMT7@Z{qSkQˋW0e"eqv3,.uIDtwoO\ hO>D5?Crև ܺ}O >MQih^htdik(? # TPU#^uT\;q$Ye9>;ϱӡc_yXuLW|@pߋz; Âeu-"fi݅sΌs$6@5&U QdBk\KSV !Me<pO<1ל='iJ )Bu\/=>4p~9 6/ڳ$Zj_5a`:L֛zdUV/;hYAa:V2M\7R:y#`sqj 3N f'-KKfH9p]gNЄ8̎ h0HB+BE}/$f>9̏c!o Isl͙qBlPauGSŮhÁVuS_RIjjq`tbq851j=bNV-?aقx-ՓS87})ZU;YG%LtE98b[szNDGvkǾC%)郲GfVhW8%'ԍgQˆӞhӽ(as3w(%c|q$0˅ M* 's'DaF]Qx^rY* sJz$0uv+56r{- , @.f]Y2ءnJ.賬Ѡݻwʌ-'|?zXrH4 FL(|~yfy1<r"S)֯m'2UzpCܾs{?dw%vjHQF-r=ƺL%U:ÆwvngOB)cڟojwq}$.nl?݇BI񴇃W_FlQ@W/H ŕ+x9z'""wnm{|z"xeRzV.& ݻCMG2#Q!S ef,,sA&ۀԳ ~oщe\ɘ,DuxДpʤFLbJfyWW/qX ;=z*s..ʲ๨u܌:\I $ }5ŘF:B뢫CBˬΘd֏s(ϛZEUgxt]mR@Q xC EPSTVuߵ!׶:kDr,ݠ)P)*\it=sUCD\F5݃3c [(]'lpoh]UNg(lp~.+B,?{xu!ꚤ*pX!Va 5#Q(cNpNOFyaE41';_bW`UлNҺ\Y$E{wRǹƔq7-0:6A%?W;f9Y裔I%LD"eؚ:&NJ@F~d5s6p}N( 9^ޛYn,gH,. tSD$xݓdFζغ#̲@#mbTߢ6l~iFKXL`֖tH4q,C$LԣU6 ,//IllnyӧfU3wM{yqg8|Fׯ|]on,^ŋW]\RD$]ovߠnccu]1?v[v: '6>x|' gA`sc}/q}899ǵ[wm fɁN AŤ.ƣ3t Gj:KWp6zKS,.2.9}QiMzjN9t`0ퟙF,H>u0:>N b-JM&)ǼϷ66$G`1yask {{f vچLZuϼiry/plzj➈pE pdL6|E'w ;y}flң4zf!J%I<+-za YNě\ك^Aa)v3>t^We&bX)[\,/9 -o>Cbכz;gF͕9ޖQ~gLmexVZ' 35$V7xN-$1vLpd OYiTPqpѨ{.ąo/4eŔnJY6>gVDoD\)FNa+CXAQTCaEYA&cwrQm ud<@ Ɯ ]Rvif)r#\G=8>0<eK[qfheayڑ!TvbͿ2c\іƾeF5,s$5Or`Dbы>V=x[6~ %2K9-cn^x~|͵I ,z5}3d:_DBO桀,Np"FE3--1,UʢQNO5o,֯- J%զZ+gdžBbgΏٹew]DW6|0"){FVFq 66H./,{=T%澡v%–JT#(DQz_{p!FD1aTkEQ 0b"!ZZʠHM}6=#\bes4-N<{x822+l#NG-}5FPP$-Q@ճ+- 8f8q>qS9q9~_D#M-$fgRܼv+X]Z7((gekCd9LS7ᢝ福MVHJH[: #3̪ظ.*7bƦs!]u/&^lOQ1iWx9X"B\qX_&LcfX|\OU8mm՛ 6RכQ9XojHkWcsuU /%<;;og3r;׷J￵tųyrMkBq KXZZUǜj]z.򲇳 [;ɔʸ^$/;Br LJk>.2tpi06q|ag;:Rq?ϟn^1F4&ҟt4nckB` fZx zKŋg8=;dzWfg}f\zcZN +7Optz ]--!-\CpڛbX]>O3l} Q#Cdy\Ku( J홑%CǴR]\HaN̙NW1L=Cy:f{ԕjyg?K 0k¸ aU;f9g^\ ^e#`9z[M钤WHm3xp><{nӻzdb[ s2E hW4zDJdئeh q S>u恖z <_7۝W:`G8??U`8Q &*\45*uD2nYK5ݾ~ KEbmsK['mfoM0 4ĴVyٓ64޾p="~uN0& ǾASe>Et3*.t)='sxБhLUCmҲ#9+˽M}Jmvߓn9t?R䎚2"[{ wqz|d"C&JE qpi>Bop){gaA҅7_a`_:ȋ3|.-cw睚>T+ĸ+fK7*-KO>Cօ.,,hi-wᆭ/^@+Wo߾ Zi\`Dob(Mn51Qg3@4Me VE7zqq!$b u] 5P`EOj?^Vk6^xLFLyT\]HhO?!; \h?PAr]ܾ+K }S{qO]>yvwPoU߾u[qsTku3\3߽q[tkhՙzzkH. 8>E6LIĊxg޹>ku]&5lmm5:r/᠏~$:9|C c!!Sl|9Ͱ}D!s: g;Nh ;4t@3 2ס`8Ay i\@x &9IR{KuP҆&ZICntYsNb.U:uCK9ph̅׉!6(βvUfF]҄"8_Z+۰@(<zqh8e͌x\6IȱTrU7I3r 8}I9RMAX$5Dl4E IDAT3VG>L &!H삼{ Ay^,%YI]8:W,ᰁ,o=hF!XKC4lIkƨ\[#tiASMCT>Su/>uSh\]?sv]`~ܬG[r,SNQ6iM;m:׍b`Y6bԌ|UR*72fh,3&nTMϢ(-D"tntM'jkO}Eͥ?.P֨y-4ycKS ȜHM+7X3@hm{p2Wλ7竻"GTӉ9^GvhN#lBEHqaYpɒcO( bd<bsEf<Ԩ IV_Nxxml߸!'f@VKfq7U]p)Md!2 hCD\c#$vŌ/` 6#uO׿BFP׭EǟO?ށbFa/}.^{`yy]:Lv iK˘O>ᡐ= ]Ƶ''G*lm`V 1rSt8˼QLg!jai*FaO&JO-KZL>xnj*Ϣ-|nB^@WxkLGr@>oo1^W iZyTCٕPKc>gj@ώeC-4븸w_}e9^>?xxC7D>X9=T|CD") ^|w^!iPfOu4[ظz DX^ےWPpכHtZ\\z ʓ#Q';E@lllJC@y6Q8JwA2$߼6S$^0t)*Grgh)Q(C\b&ǐWԛW36C\Wx 3TS>ƭ4j X0k]E ؜ ײJlݱE3<>mx%iw4jޞǁ#\CGp7TU&GsL29ʩ ZFCJ9O3G*CV k'}"wN͌E 5G]VRJ^ΥFrJ{Xx6Fgڌ<#4׺ќ )|I_C`$U/ab Qc]:R 7/tB GD> cVϚiD3թQ:Fl%ךwj8cXOLacA͙ 'q^33Ql, fip LXU9!05\%֊mQ}ș|%\m0T!-uDkp 0 lVp>Qsfy]͝M:FT0\ipS DJ\ztO[oiՁ(_eQ67D9lKM=}цyafVnrf&t0QkC(v+]pGB1AԽbraqQ'لKe L|zrS&'R1`MƦ4O`@ zM \/~x-6—R9y9z捚GʭE36e4sP7VD=:9Gu}{c2 H㢵iqKlM౐Vn'OhxϞH#4`Ԝ_ F>)O5VU,>|PaF!ݿ˫5pG8=bk"#=uV7sQINH[/1_,I{rx/K ߼qgg(i c9(~6ׯ|!o&8`NͽkJ/udS][la'ݬPHkmy/Tl~Vid8״!Tɭe6PQ9 (kM9,@#%!ވRz![ԛ D| W}8; 0C$܈C_zF@jor?#C#@0x| `B_le ⚡I{kT7;e"3yCJtlR-!$QlJ6b! vMQeTbhpDj`:eebk,r+ ^4g(43\.ԢBt?#r\Нb"А1Ө#vjp$2bf&d+,?yeS(7 `L(*G{r4OɤGuT~*ڮ{$A_9988`;<"h6[,5Q9qhʙvj $.rUu氋Y.*,W3q6 S4L[iZcvԈP %6:bꓨ<0o=?vkXpz M:?2NFjE!*Z5=f:RҮZs&6.Kn5* OM_\Աb|~ƽUԄƍS_iru6|"©P&J#^Ȝ2] IgSolf!Ł%)ѻ9-rzhbQ BhK,uP|2A^sr4"nvp1;nUG$@+h"b=ui5Dž)}{3칌)X+ ՗Y0E-Mjּ%D eAK!߼<‡)A" \0(GGZPG $ :TR1Ka8TofƤX.DNHׯhkxk&&qf6e& 0e䗈>GaV ҴPGqi׆ 'ќՕ ܼy~5u( prrC\v r%je>)O<:3$enwZb!-`8 ;jb0b{릌|MHLfB'㑮/~RqUwZ;ч~2 K3Wp 7>{8%M9+ʌAbrݝ=\}#E&ŰwVTHexŭMGQo-vpNL}{qSlNwqv#AYiYBMl\.p8{o^sucicN4u$J-ʅt_q%i||>Za2IzD,=bB^ {iټ?9xڸёkRAT;b..1(;p' ot|Ib͒5G5Ѻ£NB7sq FEg7nrYui ̠I5zvleJqœSKIEa B\qqy.P8 Ѭ^H:g䟹UGQ5d`C>,6|iƸ i{.x,C!o40'B͸b8`fSQD,Rŧ3YGx;?7E$ 'ȽUbV ކL>`j;,Ctذ{C*8'R&p}7!j 2N,sHAB@}P5b9$Qڇea \U+C, 'e3mMQhʔ DoL] $UN&j_QsJWv tSCetEH1klPuJ~|* 09 ,9sT:=/8s?J9pwӗznv6\InZS<ȍ4pC=d~ac< H6Wq& ceiI4`>g/^>ųOU4H& Bn;;;* ec )DCl'*_}ms%|vv ,h66|Ldpb.ʤ7oa ']wa11m`7l? īO(.HYkXÿ /&p.RR0Nszx'{Z͎ nÏ>뷻z^y׿ok5}DU!kVo6qyqA@[gӊslC{1(쬣V_8<[Ewo_jhj:Z<~z"n7E&Bz;j~Vk i%dm G/'?λwZñ! )ՖY|8b~1z(aIC ՇE}YƲFN՘Gdc}E-ufv&/{$י >ץϬ,<4Mj_tWRlV%َMOP(ɪJ89ͤ~6aX׽9q) 5E'/p N(u١fr$#8/ُBEPUs~/~B×Nj9]􍕒:/kmieM= !~: ?{fc{f6j:"zg7VFwM|vSl,aI4GXsblQ\SC{3GuRA03ttԹ4vds4ļ>%;vSI1C]MΔcNKzR2fݮuzDx."'*b\'fHaf5zgvhiԮRõ;9H7"tQJa04"!u٨ǩzȽI|"h"6Hj^GGh ˀ2Z򩘃%ʺ(H3禝!K:q.y}lqC,+STwm_5E=0qN 9ʤroɢKd~z^,,vm:VtUt=,- y6CmZWY`"2vHm(r BXL+DgS1U $SJ Ul@$י y*qPЦU~ %Yx:" QћQzWv6 dÔB1/xljanqNh9ѕUyFO+ɟ!OiYVHmdT&ʩ_u{eSIBPBá9t3zoPR(fx<&HXHJV**mn$VhvUܑeA_B U BTJ Mf/{fD78s eqrWJ%jf8Q3BFۀܤх#=X Βns59;PT%?\(/}rܫ0'u0 =v_L_|f(ˀ~\>VpX2" |cUDRϝ>#pY=!KrK"4Bs  Qp")hWW2;}_\5( ;œGoh9ӝ>''tn.,5lGrst}!)KFH3{yyûd%.P6 ?VYj#6.7q^x["}wx֛h]pIR6H.Q"xե&FÞjDk?8;9"X$:N",.O~;q]6I=ldHC4Wn1O? [[(WkX\^b&y_1H/?#z|mܕ" JuMԛ+}oGĽOͷ_dzc9=,B6`c&,@7@XQdxaiqG\ҦCJAe/`Big1J@D~V#kz;A%6C0wu'ρPQLZԐ&;̀;ou½)9 ERoܼN(!,qB{uʽ^Š9Ә>ЈoE;rgrg>H{@3)]<5醫Ujqj0Lghا;f]fDǥXFH89%LG}mB]Y,n&i,Ա(AENߝ!}!52#,4:-f0qV9ϲr\^iN_ Oz+™}K\<ٽthg($@r @8lϘ~L|ܹ#a-IMԓ!#~!D,!k u6.az97PS sZgMt0*ӜΌlxN0\Wi,OCPP+l\/ lb`yiSY^Dje:XsN5n.Rg 5ql) L \\(8SyϡRbAިAXhCkqj67I/m^LN=gd"qGFg?9t͢H'o*S!+vlHj- w<3Qh,&7V5s$)$S IDATI5}WBFI[h"#..y|i0iJ[H]&lFsaLsEFbbmV)7 b/UJIskOVBVH*h8W4-"#p DST&Y:[7oJC!юfR{՟Q.$Gm1MDG(h3jbN@# @ETb& e!6e4~^!3QuNk-(ų]9--6sʊxw_j^N Y(mas8Śʷ-|7i\bW;DzQLYﲹ^`ϕeAfBM4I1b$kA܄JK;[D5vlN'eTA>CxT] 5_$Z} :khJ4fI{xz[?ȱugX 7R$&Us'w/z6%y3O7ol=z{lQTPts24+ IO1U'^V]x9AA+x"'ǯs&>4\c4}Mܹ}k̤w'Yk,bU |gX[8Ozvvywӯ?gɈ )$w_$v{cj o>a\3fI D2$o}#f5ˍTl7d3f򽼵2͐1'AqMpz3y\{SVgQ<.&%)FMY6;E,?2\+-#Қ*۳#'aYI4@Ãsk OqTjr˸ᨺ}#ܡwϤi7z^ϰfWذ%Ն*نMSYߞt'7 G ܄h*΀+b)o>-?ժNs#w ],qԠbkz1&^7S]?P:5 :7%&,zI,]e6ȱQF8zZiά}s1ռf|hF`e31B0*]VӚ |[nf3n:uʹ+pfv`B?U71NS7mj7^f ëK{TRtxBFmm+ErT+!^2WKl߹M'HĔZWT28KFdWH=qgPoZ%nFEa'ϧ6δq95W}5Ҡ [Yd&$Zб4##H P2`y>-Dl1 FmTd2e8S, ?=;x2b F<99S:GZ䇼TGdSjEm_/r+̠vv} ˫M\wh,.)_^?{{G_#d==c#+ {}|Whxr|$jOyptv>>VVqttBՏ'*_ZX^]1Q_h`TVVx:SRig7\BOf#jО8>iO>o߻{bAmloߖ{8_kWKNM̄cĊĆrMdrGmCJfHuX{5 R9#IQD(aapT?rC3MRd ŹZDyO}( `fW# _׼)Z(eXX @f9fWT,s \=ҐT]΁y"mShzs`6qGS9MÐA9oZ`5d+HfchIAdݨ[ m Cs9{pudycbZؔc$Nl AK<3TM+=_9Kq2^jqEv3eH]`<~_?^3"V.[,REfsq9RXdz'(!Uys#s A=4%-YP䊻(0)'u,!4%T5ɦ 7 ] Bꡞ3Ήԝ9˂l2";#,;oiq}M:Zi$G,4 6$A(>A;x;-RdzFFX^ZĠ'c5b8I:MنbpjHq:ssQnuپ2 un9҉a3å}EWy5uS{&$&IY|(DQ,dpqyll-vu!ƺdL;R%)JDmO[??NQ-P+V}U++,ĄFΛм6׳GbH,*:T753꾜^*p0(iJ;Խʆ):]qaM4Wb!7+ƚޭ/Ltt^PԌ8FT Xi[VV?Mqվ$P rvd*e($v@f/` =Nn7 | Ku\Nprᰃ3fJbaɛoc4a4⍇pk527Qmj:[-ٌ-y?k]p}ʾVWeKK jUlfƫ"߿eS|vvFd8bkrb0_vְًq-"ωx+ҫVh_c4P|ӟPC[|]?Gf^O1Opy~#ɳ[[X@R""5_p/՗. Ǐ# +Ax2ƭ;hw0Y$6wue_DNƽ CW$(ҮYBA /^ÇY_~9.Mz}VNJ1zubX$y2'R2^~0>b2Np}es"]{Z1[̚1ŭ# ku9uSK@KWHuUFKd=g1#g$kS;.M&Wq}u>Y8QUB3f^NjRD5沞&ԭZx`ZLYC=k:vnb{ -猵:V\o}T.Rw֓'6ȚRչ %ٸ9W&>蟈#ee _?P* Pй3M&,%Ői9g3]#*/! {E]Ye;7X]9a%U2Li8j:N稈qרgqYo@ݼOm) 'Mrs&o.0wc\-\Jv&׆.Zl"JQ^"V6'c6N=P"ܾu x0qrtzA^sq*ַ ,1UTj c$XF~ZC!ɩ|6Ғ ,YfKsکFR5K u=ju >#iiRGtۣz/i‹ h6'lzcE,NK2i+K t/L52B[7bT/` gK[@MZJch3Ӧƙn_p4יQkl"ߙ0YqgE }-,šsJm,b> !' 5!PY:sߟuG]b3ӬYN\9F9fM { Wd{zfٺEZk^ t[ϐ2<\6g^u: Ҡg6Trù^95yN|f@*a;DM$fVbQz9r:;4ɧzl\?^8~.&M]dxl`z -Úv~7Wkˤ[n<gUOe̲&i hh:~1HCFQ9I3RWL%'V2gGY=o@^ hFtn^db-i1ͭ.\|532 =}=T %\B]E,AtAj0(/vIL3"kt֌H[(į~+ȥqzvƦe|cs٭{y)\c]4A4V-}fY}9 iDa̚fÀhk>4PPrG35pI6cȹ4h:fa$3#qDօ_P^Sn@XEju!`ƌ؟j&1G,Xf=bCSlnP!Y'hV2d\cyn"ý2m4 %Y|aΥ)SMgE' t(I[dIqL^ҭX,@3iؽ,,/ÇjwI4ϿoQ???bskܷ[7opWl1hw%-_N$׌Y[]F?5~cRMA47ADVųp6DS4;&d)NO_]^R.`:*mdvZ^+K7%l~dF*f`ׄR NXq׿A!L=@MP9Avڝr_2XE˅[2( fz}lkFit \jpmIƽb/BR(Ti`Xy4:jqU]`w hLM\H^3.%df)Bovڶ̼&7dF*hsl|촚D\n]hA6P欙~xU1%2Q:G}̛G!3uJk4)HgSu՚&͔ޚY|838ρhq*k:\S:@ b"gM iCM}ϫ< Ƹ |?7p=:l͡ԔҒד!KáL.Ngeٸټ;٣E#]r4;*08yN@KS SL;FNlb6Ips\_Lbуg d˕Søhr8wMɿc㨣ذ:7YNչjX,yUXդY8x2ΐqKMhjI1`p׀5NBx~_?&Be03S'6ksq 9;〔 4Q8Ng0ӈ¤ea-DF<[03xm +7,`{_L &ԫj-[X"&IEY0{x9*=FR 78^HC9G IDATp^CEA[M*WK|Jllƃ upY^BH04 t'OK6 1 4DRl'7p}u] P%6E@)ѳn4iBB6$uBKI!F FX5:A#uٷI^h~f9 5sin~1M?( I4NB&h vMMϥP+L=KPn+Dvfp־·/j9B Yt}cv&'CF NSk& j ғf:cN l:EwYK(xjU-`4uǓ67$x!DͣP xs&)sYvOj}x2:Nlx~&5#rzg @jc ,K̀$_>/^LЗK+ԃ=Ukܵۼ?~K s1Bqz?t4jz秿SW|/0ʑ3n2H!ν{qzt!ʲ'>G1~0x(ydU^X炼gCːR;Ѝ6:<+B1fSB;ѐ lLWyPRqؼt5n:A}=(喝ow$ޠjmq 佝I^Ōׁh2S[Ia*Scnli1iN94,yL5S(Ρzm.ꩺ +\5g6tyYNl¢V^+YDUk!bGO,3*Q/ŢR ^i3*fz1sNUK͟!/ESKT -(͑o ol9 [MhsbMn;Js*, 4 uQr9G^]S-AS?&CL(0SP-ԛk̽\#* b)FHI4MrT!jXtUtg7Bg!{Fou.~N0i 㻬I!70Lc]2Wih H ?ҊϱO5!HwWr [}Η@ݺ)8DUKPIѕIS󢛕<@ʐr2,|e~^JzjF%+ْ(@- R5_v.wMʺfs?֯/mr[R\gwQ Uu-Y+tL=3dju#|s݊Mr^Ě.>"N"eW͚ddD 1ULҩ0k zv8Zǧ_AʭG ְ/Y_^{+fI]u01! ׮/[tisRL͗Ep>nWp!QIt, oS5r8EuSWm&bQȦ,~l.,, MYPT4!R*KXFXY[b^O5čQwHA=klťE}Ӭqē:g/s3Z ;|zBfl:}9@٫_9BA\'lbbL%w4b"D4n ,<`R Ԍ(ƨje0TލX(WP/P,{o/A1Lzp`B:8nm[wOn'⺵}[ۤ z\(;x  EV"Kؾ3g"GfPXĎ yYs y@B9NsQ-jBrLa/mX¶><sl)tq{y]ϛϬ\/ӯ⸆/ͽ*\NX9qh3rHbCAˎ~<5Ć&3z-ύo:n\>+rx+|{4s9'Kυ i?=Tݥk6E76Rs@A5R9Cx254ؐWjTS9-]Z:bV Ѓq#3RtɑWjv#(Z)YsI=1 'b$T_z{Լc#p*w@OMol D_D~pzf1:Ei-\N42)рȦ?s$gX߅DR8*͕U7Xn.4& Rp <>bhf<)':;2㱚%l)Ӆ."byi r"aA#\5KÈecRe[Wq1Gy=)BrČq64pQ`^qӁR~t8t$;;-lΞ Ӳ f?5'P-Wbv_9.Nu^+ z6i$&wnӼV3TkuR!·O7ܿE +i*.// "m҈J;aGps{Ik 2,4W>Ak7oS\] @tCg8=|m|t1{F^t#:k1hwqk>SomۧO}|?[[8:xC z{zs}j)3yxHY2@p]\wh/(Vx[*ԛIg-o#(+^yn-="2\,Xl )F_Q_T5[7pt~ZS,5#mjKk8yBZUnO3$a"+ڟ.[rDQ)]d26ڜru[bJIZRs[iN3+B^IP-yLm}kЅEdΠ"a2ٕH,gqhO:dHC32}h,5|Q]= 19P6ѭS_krRGՙɏӽ92eZsconZlQ`VɄ2ˉo2:` }J@=ct$Ah̘Fι3s\/y沛 |(K:V)lHce4kHAȌ!,J79IPhFN4bC}2fwhNYbz_9{]y.sb"~N?O{]܊C=I23TɆTDuSHɸ|ӭ[E 9tKucKd^96|p *;qMHHyƦ?`VX@#*bcy lv#C z(ŤLU.MMg"RP*_\[ɩ\c6 ؖ/HMش̯ we43*XөNKCEEW ݩP{mP2Ͳ;=T](Qhp >Snl=J$U%~_uz}Źf&"S"X'gnjy'0ol}r4ǵF?/t7yΥK,6,`(Ww۹qs3H ~%׶Q-`ai=˽=f޼#ߞRAQzcdOXlp(^_pySO''%|՗XXGcqxПחx'8>z4 LClx%_\"pyvם!w￉OAT&UB.ցt7g@̰ٳ|n3r rD:&:rVVpr|J Ϗg*^5F :&j2hqidKԫ Lxw?~a8r[8(5vEyвy.8j.ɬP0/XHfRcY8'^{(g{? X; !\Z)U 5Mg{O><<)fP9N͝VyϿά .CVM&fK}TA4dy7:q)鞡jZcntF/ЦDmHv=Je=O iu!̹Z{dADdv;ֹF9ZC'=ל3&unީñiU՜M0oy-2Kg0LqęҰN8@/jbL3872g3,W~'g6?\MŦFxbdݻ `@f 3~}l&q79[:P}u o6:Hʍ&t2f $,)!^EOӡf;A%ڨRuLFS\1 QAPt}~8lGCq+h6xlwȧ`$Xr#)}  &nmKN}&ME%oR@4D&f;aѺj$tB.)oęK&~{( :"m;8R'4% :ꝱ9/NV4n)z)3d*KLZb'Z^M16E+jDo<>ˬK &dɰj^J_\w.>!ڞM9#_B 1Н1 c-<߷$[xFaLn9[ߣThkXn.R(e"J 7gGأC &C^}͈JTħ}f x9~Ɠ!ŅE9Z T5~7oЀo;pra<1o>~) w`4my~6EX_E64VR} ~aI/ǸwͦQӧ 7 )U ~VA;b qzk;,FVtt>=9bŗ@>(MZWͅ:1Og|Z!C#@1U#ht֓Y "qm>~ KWXh6qyͭ;& J,0\\DәРN}zxԉ*%2GM6eLpF52l=::"5vxaaOE*b@X*{Dxa<`4`:Qf0.ƺɺQ(Wpx|hZ]ha4fibHs6FDUm>5S/g/9rɺ˵Rw.Cc0%5N[2ˌfw.SdTMO4mi5##LcmL[[ CLL(Qpذ֐܄,pSD6!K3$Aިdn+jq҉ciϳ8aN lM⥚JE GޕIb@j25jJ WmP]bfȻicOF$Y$Qf9JQ);3)|4 u*>ҜKG egf 8kآhqf(#Ι&KUILi(:9k$Msyܣ^Lyh\4.#` dT$EP.GLc*5sgM,.5>d7{w*,=J|2M2i^.&OH,K W$XYgc5硟:hS6BWI Ľ9KR/W1HV"OOܿw_pN`{ݞ!(M#Lß z_YBA76ꆚwɴt?Exl(4RhRN*P4gJwM$:t%|R4PT8PONJn/*a'dC" >i%DF9y'b86z*hl*VKi":CAV+C^^Vijh EEy2f KmaB@o|dHC()Fڢ:KATbPd/=/'ZQ'Co.on!¢i(8#8CPP[l Wv{: SPBH|?oXnbaie /^ݗxl6'DN:}6l%N7 ʕ(/6XYZ ͵ukUj%ǵ+r`Tp|,-6qqFph6}4ifLz (Zt-6,9`{kPz3R#LC%=Kk-xXlݗY'uoohE*i{S/7l~Fsr}x.^w_Ж=rvMz-W7zcC9qyrjC/Rr@#jƂÒy# |u}ITۃCuPŵo2S.́ZɰzG(3Utq\qS0iyݠ>%ᱥtNGMmhaiTTD\x&J9`?[ވBxLQ]3y8s&#iiQ^f<̶FX7`fkQX=By+1iB"rf [0@R /w&n~D)~h\rGD2\(K%M }Z†Vvs|+Q&я}x Ͽ2-8`?$.4pt C[=s)TRD>o8m=T%51S6FG[n6 X:axTfB}14hoޜvL+Zw dD*{J°} )G#uxs!_ ˸DRCQǨ{eub4+M9aIT4/ڔ# b4PZ# |h:eMT!fJ5!Y")e~Iq ݨ \տ˿'S3EI#mlC)JX3PV(\ʲ.LҸcqT:I mÜ[ie;6gb0zsՊI['edxn=*`TAPsY龸1ɂ)蟼b |w4Aw8氇*-HQ2% +E@([A^JҜt6mvCe3 :.(ʼnj%P FsV0\q㊇𒞮#ND|O(E$7`NPٗEHC6 }{T C6;Ľ4iqE[h8tp'GPIN[W|EQŧ~I6M&iZjwyܡ|b9? $T rƣB{xZJPҘ+j.X^Zd8V,M :B 55:2(8?~m: T•n|:G.1JWh_IK* Q Oe˕:@a2 )fPMќC6wvV>{Ǐa{{bAq7wޝxkGWdH>pj-ƭ[wQ,WxߟIxU\__ufXb? :=k%>8U\\A(kZ}928aUFSP"s Rx%hG4?(1!Ther%aa,=ސ$̄ zLU:S[7?pð{I}7|}6 3c t4-(.kUq,1ԆC[k\9 w'"ԹH?x4O#h5 U$I#^B+Jk&K!j9VfNZTEvLj+|rF{!^~f>s/{c/Bqy$g"E8+Y~GtδzOr[4_KhsMneUurkU@~-CFkf9q?JSjMgC^5U2.բUeLtn3WZ(HG~3¹D5$"jݛxw][%fgrMa}E~y6:0Xk42^|mV}4`qy.Vo`qe_ZCjh1qj ha]p4.EN,_|6R{UQC\_]#"/?] \ \=  )}2wc$K^+OPMlS.A) ǂe˝sS g T.SȽ0LR$G`gfFFi*|p3tP`|OBd:CͣWNSWJE,J(Q!jg@ +eƨHXP:vfB^[ mAv{.<ܨu&#PXB":!UjC~,hP}ˑXpxtz mӲH)N:M-)NHV1$_zuMRjiosθH(zݠ\a.h2nb *DQ=޹C2gNJ~1f0yOQG_>%isVA's}5_!]mcLiXk@?~ ޹Ņ%~wDR٤^\,4֫+`. 1>-L͗YНڶW^^@(D 6ԺDvZ<3FQxrACF"^_ǿ_hp bCR'B.(%nܸb"]S+WWן`f9kxvh]uP(/ν\a 8Eʕ_uq8`8:?T"Vq>R;tx#L) U+%kȹ Q|:V5 66gqDw+:!:Vq/q{NOnlr0 df˺+ ѽﲟHΘeR0^h{0#Q"r|>b`'sf ېuj"fhlnkY6@p~epxn"Payr2/Yt:*q]eB/r-t(㒁lxY,YJUGgHjy\cdƴ^= 2`WsʹS?rzf?ͽfC=?ެIJ[g9 c HQ%QnmcO}oKn$I jr9IFHUy>{\ 1 ڰ͊}挚)>9Z8S箝o8YGi6^9a뮵7Qs&[;qgu g 5-$;l~i5jtg(1֭MϐsѴ s©{,.\/5ߛH^]0,!s3^(d g0%>g e*tbH5}<67$7|H?AƙS)%o½Nsl5:4+}"8<}DLGoj͍<'UY$h:N37C40hi,/9EGήMSj`2ŵCCZb.W6! MŊ־"9(@S26J` RgyzWҚJ9M%&?&IVcu@ >/l:JbAZ|D)F &t`f𱬭aT9|^canSk K9:-?iq{[*~ZW52yP~xK ?Ϩ0H~&>w/^J\ׯ_ŵn_/XmonKTn'JU|st4Yx/on$,%D{wgԵ!'&X&U:DKE*]^_'bTJPnEE0MZ_eĘoEyHRiFgȓߗ>H.ώBVhպ9ax6=9K^T~K?{ψk$}G#bX_ߐ^+zC@_7dցlܒ_;9<:AZV_?ퟤݹ.3^,i_ZKLrxBӱ,5#@6v[vv8tiuz2ad瀱gq4ɋ_d48`) J"K4iO1,0M*IhgSu}v3IH/,ֹ+ҾѠ'+DmM,ν~w3&6 }3I2# j\]!NgEdj`n.@f,bDzu9sX-b:ˈttKi4s1$}DܳpΥd!u(1YF۹&C\ᬉR/+UccգMݒjS3̌$_s(k3>Jb Ii; =S`;ѝ$Ide'!1gaWz}ĽI Ncg AE&y3m-<, ߰1qMdob}d p~OY5֛Hn&YiJiOs47k.ɮYW]m)<3K/eN̒7 'Wcַ [RR>kZilE:!̤2Î$Ú87ysEkN@2Շ1xQl{FNs맬7 03o78lC_5v4LE7"b~`[uM!vԡ :HU"9?PL`L,,laOh:TPPoE(n8ql{n3fYSfMAh*UR Mnik#4'M$e@:Z\6Zʺ ӱt7sZ֏Ë'RFgS.%t@0BkqSWq;ƍE8UuXLƇ mMu1 tb;z|9  l)$KN3dZW1#:9c]$c?Ll]TuIFEC%4KEi :4\pF%,bC (Xcn.ܘA+PmC'WBVp(/ xY"S;p:8օɹ68>%ـz%d5V;%-ICW3P% z}4jzE(5F^d.^4UMt7J}\ߒve?3-.#RSG)C#6~RszB#^!z{p ]'g%v̮ðg:OFcI$J"98xC nI1,/KyƛҨ׹ 8Ҁ=|Pj5;>>͍M7 RvwH676L αnW S^3PpDeu\_sD}}sWĭSryqfq') h,1tSL+,&ZSd܅=L&ꋲwݒ-udÐ\{trr(o `TrppO+_s8fB8oލ -^]:))d{63.iOT?'FfDZY ~B*4P>>^P"@Io (2̠f4}lb:*ki@Viʅ% A|N<řF,`o6$a䄦'}33Q+Vj6N&ӬFX&[*ruӒUup?ύnt/U*Dek(}ߨ֘5CY2P K|hCYlL??dL\Luj_ ơ /CќّnbX eJd8M!֚g&B/"ةSCu|Yjt.4v1ĩI|#N4O SNijt`UYm JwvkH\Ycq9RS IDATȂR>Y~3 S2g7ڷasfbxr.HkכXRvS&Q!G uΉZ| x 9 o9g-p͠W8(笯;t'O<E&%JW)^w=u פBv-L,>Cg(hp5>d wF:g+p CPj޻ϴ?ﵠ7miKD1f5݃i* NO-̱ *=z@!QcQ%vWF@{-уG4ϭ[eowOd"ޓ+Oz  ΢`4\l.+yp!W_}7:A3} %2^Ѥ6 j_PkI4X"Mb)\TYAWڝL"M_4dqiCZ璬on1%L1Tj,6wrBsQʓAǢoQ1[[-0388VkU +uݻ-bI?LYmZTN  †B$1*.^D22wDOe1L:F^<3bRS Ek EdQ~&] B@ :ؼ&OY*woC04>s12|`<*0 ` t8U!k\78U'Ya&p;ʜ҅q6-,rwla4(8hdWaN&#jtz=ְ& =De<]E2NYfݞ^dTYIXc#CRNԀ`HF*@W1Qoi+MOܐN:o?. ՚%rwmZ- C#>cR6nU_ $ӳN9}64>Pq_A̙l`-U: WYcF{ř]dl`M 5H!q痩 8Yď#iTJl?PsuhgT)P^&6dciY%iBvVU }X<\L"-k7@UCCQ ulѡ<<rOo/2Z][c C&ƞ͢`[Qߕ>@NNNeogWF1?{u% Uuh!_Hu-U#i*}3x*{iG/\mp[]^9;l6trr.#8;$%.C8ƲwSzuj&JE++Rh\#/E4ݻlLh]yyM{@Z:QDp>  @#DHZ_~.%Oc)# {./KЖuYޓFMTkgeh4iy זw2`)iFHh t *J,\ץ FC6W VQ9ZdIcTpVPLbLYDLTuO40Mii@QY\Ͼf"F%h0 =.uԏŦ= d(km9͠$iP&Ǵ5e0ΐ4e6,Ħ%М*'A:ʱs14NT}5WTekn\<74 ebx:,%iS,Mu1|Ob <~I-&D\h";3}2zk|W`McFWggEv0js{Y3oͩ Uqɦq qVO4^Meu?'i`,5hA6|M24RXdrϚ7qQ]H֫g%,(LU "9ȍ˜$l g%<Τ4+S b 'YVHRO'h|/r`;Ӛ;hԌM1kSgdmB$8ȸ8!5K&256c.ku0:G jE"ըOgXpl٬Tj#c#Km$l"{tfY3A بy olQ,m;?C<|/cc *18yPfU'R_poS-,PF|eM"pEeא;# .WBNÙ3V -)879e{4=HJ,_{PT^166*!D1stH&]* 4St0xy0kQ (p T,*֨V72Q%j4Tj4gPȏB4 5, j%6;Ќk3[n6.3iѢӚ8s# rLqgs(ɑlTR31 ՅjH\E6Kʪn?A RYlmf.,VR/TKEi\@WJJj>] 693"G6P4= ن ɑ' nd0Y' X;(X3%+\Qk4D7j!trìҧژ )p >2MNM Z|̺0:P7O4CIKjg5\!|7P^_wT!WDZa铤zMwݻl,_|.r|rŸvMa[z&Q]_Yጉ~fh<$7WE9934hౢ@?!"!׺hܓ~E398 Amwzw."2g`7Cy\ss twdNr5y<"ƍU8E)ˌ U+rڑWRtj >2>}i hXKzu: Fٖlkh9+aaxo%`j}c2{5aPNHjIGvz\g@ Ot*+%NIj h6l3\=z3Qy]XGh}qsں53 lh!9mPO3V[ieSʳ沺WeZcf\w/$3bX#`&J@$G-ǵ/2/Ӱݣ42|]DS0|"8ҳ_렭Qh&KgE ӽMf'=NgĹ;֝>,G? sW"Rң_rp|IN-N8B$1=#4blL?ZUMRGM8*\ZFvߗW,S& b22۰cw(8)aߓq-u4t:p=IaNRP 7b0v1k]ўl,b,418)[d"\,HPOHEd^֍jEAf7a lC?67=Й97̏?{ЁG}oV.VAȢELOhYhpXP 4xpM\)ez)"sr(0 h`RE ƬjiCA3rI XQtRTJx>_6Xw5љ!BD*uҲ&~Фtb9% B&&iwR }YT.&:@3ϴYNC=:rvu"ѐEz%`BF&ð,kkj{τ,/aMy##f3!4)$ϊLBD"E= +S md2vFldP0!{W<ئV"W/ۿebu:}:z˧}"}!uy RGÞ|K98,j|}߻-_|%-ݥ|csCJ墬,ѫפAJ%R> 7}+xk5iԽ2nVU3 6!ez)޴/$+;g3AYNٶ~K+IO`5GÞ>}B($Չ$,TdqqY|{ҨU$/zl4Hדs_Hm!C0?[`m9}Mg('gp0X\4-!|ꅜ$HO$2|Y!w舁~ʋglԓe `'2vILX\\\b`3HU9\cPRՕM6GTR4zLn}.WR,q?qܝ䳧OyքAvJo," P2k/t[>pno}-abQCpyXzCq}.,d8p/Y\R~H4jCŷw+F'No:1)(q//͐̐Φ*Huq|Í.GIr]qf-/ ^GR(~݌{ffĎnkiwqS?c36s59TIk οF^ktR8ra1Gdg>NdN-7˝UT<-4սe[X;9!yΑ̇s &kE됭E:~ij CgAM^׀Ku:7}سe,g:DWeE85'?o7y%:HekB}A[jƸQ5`*fd(+& GX(0t^2ʹ~WTZfC-sn$9*ǯMkxX4 5 }ܘJ!#vy3ngfvӭ!7i2XxƨL۽Lp,4y-l*Zd1a @tx}K8I3 jxyjfMK1`;rzR.[GR n&&'}^6moiP. ,/# srQtbD"QGyO( jڣ8R)B^"GTŮeŒf:g߫@uzF z]Ai,ыNGj |ήd8a 菻;ӏeggGf?&U!#A$J(*JSԮmpK#{{l//.NX@o:~Ci]]Ygؔ^geЌ$dgcU:'QY鷽|_$j4A"QQ(+ȟ@ r}ӓ7pQMH=~OpTu?s 䣏-apeJݢߒ䋧_p^|!\_^/oJڗ%qR%Gzo|"{4[Jf#yMWPNR.,KR.$hm=֍ʼn$ј#JCnnbV7۹^kH+ޅzڠS 'k5v[GS]CCƊFZ2#pnw;9҆.g"]=CәiUR0YB$ƘF])\0gOBĠ3:TL!׽QhQ6_Oy^QwhAxX#quɲL%8T_Ѩ ˊmZFfk9bh} C(qbѠǙd#׬DHT8ߐI+\1J<c9'y#ᙑ<(URs/9DޜҪB=_zs͝yZc1I8۵̙:uJⴕ1=$f !6 j}CB=;u IDAT5mxi;ߺ̀,W]gSK-=< (Đ=VGA׺!v.VQNK` ׭tj'AƐfBkZA 4TK&>#6u-~}Tܛ♴gtH^H)r^_^t(Ƣ  2 /TZޓaPWD7MԨ _F:@9-?w5MhiQų띒nSKREVx<`ìhRWMC2hLB~_H:&Tt2r9^NkLMwtn[GvZ!%LPY>S 1n<Ղ'~(4rE&pPPchud*c<¡z=)KAjіX'S)]$,6+2v"eܿ?T"4+vGbYrŒ_˻3՘l$kkk5i./sպj gGA ,iXc~}__f+?+Ϥ\[ݐ+#;ߓ߽k Tty|SL,ф beAn߾-cF |qiNcKd! {ymSQ-O3xgHݒ-nR(kAQUD##eD}fFL#xtE 7d2ºahBVQ ~:KZʚa#ߑ^~e"cw<+ ӝV[4xLTJi`爪dbM0\etb0is7gf6Z{\;s@5TTJa]S#ni%}SQ#g S~ih9󫵘~|Q_*UtL*'5syG޹&IkD?_0D {sM; Tk+X fe59֙h3lJhh4s3N]"ٛCS [{q5L&ـ÷uTmƉ޼[+_Ĵоs& ou(}mhBsܼ)C i"4)wZPPRejʆγÙڠ!q\rXԽ'0z6$jDTi&7F^n@=NN Ϻ:;0HETQS(8t_ ~˓<5S2)56Ӫ7+#$$;4Lx8A5sRa$:¥(ՅC51=" \\_`),Hׂ!4 hԆV=7%^<0,03+s2yQTWln'cX[B(GG'i]C#{_H$$5N|$;g1u&oz4z ^XX!FӹB`aB+Rx]ьVޔx ޔz{W@K|60?l. r(.H7SPF&H/R.o{}﷿3:6n 4ί/?\ڥ%o3_67s}NJJE~e.kWd)iA֕Ruvr"Q("Z*ߕ absEnzD=|UL?Si..Io4˓i4u8,N#9}OSsp_\Bc#cI#O~&kkW 'vv@zthv OF ;7J[;r}~9I'<'z5I%\_婜5\!{*ޓ/>čZ{Y2KP˳#63~fMG|?qR>K=hbn1y 3| cMTFtٙq(xFI]!gP6=xx FcP]Q.W qM$d ĆYi0/RHXͷYLO&6lsX5qYsBknQK..H{r~z(7ק2t$'DQV6e6F,؀Cx"ؓv'+kW_r8=9'A=N='4jU/1ݑgϾr('Gs)ۻgrȃo0 ޽R^Ϗ^H (ˋuy)ͦf\9cW?~(령?9ƶoɛ-nߖ>&}ͥ{@<(t n\Iu%7ݾ,l>Xڎܿ'_dcsKunq#uʍk׽8_POTVMõ=9D݀gC U)( QX+h4 ZUeCFSf~pXdJDAJ28{aI,4jryuE`1/9c@aG Pۃ}k^2 !5:L9͢^8fMEhɮiLY~dMY,rhNL\Ag+c^&E8SYdKb(C]ngQWh=3&zt7s +Ӳb r9{P"T.ck2C(>Z ftcƭ`nQwڞCá%2;ï C"쳩Wcg+`A LɈ(뮙-ndxb8X͠$ÑЂQpBB3dŵD VU׋F5vʸLz`(~6Hc8ܠ:B?%Ekg^A A&Y"kkfl12*:޼j759)@Jid5`!"˃Ki0"ݾVM3f+N?J;[/q-8/|}"[p2 ? Ȩӥ(Jfl!ELcR!S7F1%EҪ쮮E!ws4 U - 2? &bAwGgR0Wh 2N|mg6}~ QIȵIxZ^iX1"8i,=sݴOj65x]l^H co@tfto!a['c#Xs񠬀!0CuaVxFaUYfyFpN8|]TZ9qX:Rnb: !~e0 3U~hZy3,-p4V%لQhPomU.٫ ՚z"TBU>MqB60Jbj7e 5'F ØFZ c}E uhel.;Hݽ}ywʢ?BH}Y[%NKFe{,.R4[81)҂ܻXvT2_K"@, _rz? C Y]Yt$++W/Iz|Vwvlfuu4.(C)dԑV.O?x6֥DR*40%lߺ/JS|h2&Dtm&c4:a=y豬ٗ9{Bʡ|5;[477m#eiyM67dqyW@0ώ}s!Qq Ҩ'3fN, ϞHu)Ͼ|JS2ٗ%5WJRo4)˛}G6R3N E#̋./_5q:ˋSsR{HҔj}t]S*z2i]J}$ WW\׈$O)o6> Y. ]=Kf?ã35JLKX 0" PN1C]qaE+hȃ0OIV5fd2iFD.@(sjuCԍ3#ġN)꙱XuIQ+g:1ܧj:[C+;eV/dm,{X,Y.&9}l&UEq49dQb XB\_QϜCfL Cп~ %emwNʛg}ks'p2,kP] 7d|QpnlTmsWxI(}Gwֳь7VAw@O\s-W&W{f5BG2Iǀ#`C{]53.qL>ݳ$UD4>jE qNא)ᾥ@)ΡFM됺}0$[_D"8{9cR lc*OS;%{nx"%mn,^W1CݠX) FL5~108ȐO4^R,"ʲ\TJlc7\d3Ét E:CQZt&p]5 s 12Iǥ4\DlkĦFshf yEz,Afc#zi R=}t>!UBk(Je^NhN1cQӛRM$B =eB9ORYY^F{M**jkr!M1Q)D3j+ȗ juYv c#C9=g@H;AF7%Pa4|(.# :D F}/s7N;Q Lf@d4=uR6J"Q2Ko t 鈍#^Dn~$ޒ]9;/_ʓ?ãCnqصlr/>jܻ兔+e6W\om>Rnߺ-vN( 5'PaPS:kti(5OiY2xp-XBE6~:y-ǯ޾\ ^(~!^>j$OzףW45MxRoy^dmmK** !Kc)72`YK <@9>~(Dߺ#~uDv#f!jĹ!ryGn?Ks"w)ʢ\2$CAdrѓnٹq5G8.Y>t{NAvW|+PM|" eYڝ2F\P?B*:[! í+1O^)Ju Q2 _kt?N^cqٖiִc)/YYLL捝g{E-Ф8*`DiFA.eN'XXU<5>t͊-=T Y\$''i.kT]ge$3q,+tN&T^+48B߮d>ue!3q\ ÚXf}ϢB˽sR^V/(ɌJd\ĭ˛ IΙR3 l\܈JhئV.rHNu;b?pCAgZZ=f<ء nu~yD2eeqY|b-Ben4 jPHX,eieW\n,-GŚOP:[w%1n#RkCt4D&L6|TI <;>$lo@/ *i/I&M`^ԑ9ѕx"v.xA*LS5֮PH"GGGV_JONϲ(ݓc~VPK<`+ep 8C'`_jR9yE_,UIDžDZ[] 0tҌ ѿ_=iZ&B j%>B)1uJcH?7Eҙk9|tm  ^4N_ޯmW/dskCnZ:; aKȆus!:),0\7|'.R]^z)}SӴNQܹܽN&Cf&ބWxh azRei]]P[=LZVז,M4 PX .4YǽvļXeҊv^EKixFp׺s4kpg?bOɻ?<=$M X!qmeÇFm[l (MxmihI-Pc&xK47ĚѰ|R׭5`% (nm 2G, hkMV8sjR0M<F~?da99Igd `hBӻjejywFK}˵My~b :/=OQu!6'J 9dZUiJ!V/I̴BL1:Mlߢ#3ӂQ$Nq-V/xNTN'81wGt9cN'M$u~TQ1<m^4̨y@NR-.0tnɎ$QcI ءwyCPeZM ѝ^*6Df6S) T`&ӣ:]De7QdbS6͟m_F8Ė\`XB7,6ʍ|5(EހY)8Ħ5I=9Vf߮vn1`c+]"k*So8}jЄW6HyGng%J#TsF9Ǩ0+~ҵ&J Eȿ?GLːٿ#.W2r޾淿泏"٫QkkrD;rvz"7!x4|iuwL"sa6/_n}m/Uew|Wr]B=AQFFNNZԝ../J%^&2(haRUd86߽n[IqJEVyM2ڭD Y"0I%Yw鴞ӥBY0o2˂ 8>:uy]F|ՅE s2a(eK8bkjIMG_ޫɲ+K7 *Ph\wI 9#I^$ =(B'*H=P 3Dx4P@yܼXZ܋rv+7"P̛Zs~\GCCVR$jC2YmnqW5aY( i_t+fzYbMPU31"\:{cm9ӄʟYMC "9R{@>ainaYFi6CZJpJmkP҆Kp#k.՚~5LHƦ ѳMh֊h?6qѤ]?}0 -vUVYH3u|B3GˆQ!ֹ:a|f4}ͦ]?Bƹ٨Ȋއf(0ɘ?jLT\u1v MJ,JS-@mlr-r66-V#Z}w" 1,/Y /b|1YDRGDu2*P<ؒUִah?7WrwF,Z^.jeckHV7ۆNW\{Op9֘zrYxpn┆'/x5 bTb`HICn\F!Qj"C#y[n4;*,l,Z:#vqr|aGJ )pNz9xKs.?srFcٽ~֗h{oݍoݾZsG?fdYQg|Pollcc xk<[€#dmzg%hQ FHG@Pe\V74`oo+k|-,,t}DiT-\}>4^{q-d k)u[DZl)qؠtt|3$ڒ/ZP9J(r24j_&x  + ٬oP\ j\ɨ qj,2ͨ'̜sZ\ΩE)YQ[1(r*aM4VRK~DܹNTTgB ǔ%3nxRJiao/MT 56X@7`F. ӭk#£oҙ`œɹwG0 %4ywcP2G'R=5h48* ޡ J"̱4 zxK@g!9SvV+2()ϞU^oZct04mhxz9>>QMf:}.ǟg_?4*9D^eijjßw@DbGHGZ!M԰L/CjӍAܣ-, H2̴0Gr8 ̂Tu <=fezW?Vy,٤ ff]$\Q>)Fn(nI2TB/jxplh8>TcWRGf6qmE7ќE_UeT@ X=xMX15-S1Et,qC#&HV yjorF#1vE>Rny$:1+i֒p%(Myq{CDCOͲ dXx#24BrLplpj[s_̃ހ3Ҡ˔p)8JRt|&!L[m[Z7NL=]JS]CEn9m.lE|Ph(Tilj.p:BJmXQY3T RdeZK3*A;MLG?153{ws_vw4j]YI6Oڵ O+Tde(Б)h-Nyue{V*4HD81&q y.CwD}luawo}K`~VO>@I_]g~aMю0y`Fg*w7x3\xC˧V /,,wg_m6"4ǝMwwFdѨH~na~a_𞝙qgnݹV*676+7pu*p*EDÐLRu`Q)zq>#%xTaeDG>OH elHu/eX;oi&8TAԆmUp k"Q)^i;fS(%^2UޢNX"Y'\_%0,4p:X)ީ4 ^Q4E`ͯXzD84:Wс+Z_"zㆅEŏ4ZNe8slrE|`":53n78LGil(eQP6Y(`6t5y^^Iġ۴8ړjaƄJΧ|bƍghM+2c(nEÒE9orfb*`X(ˆg3ÌT%t W@X%z}l,*]*C\-{jRujtD56 hd5; )O#ع+cS\41($np|uXΏ0ud$=Z:{]IUMb'2ǀ^iSͨz.,(F_ dc&1;f/> a$ ZiB5Q:iHT^ V%9r G;ѱ]Gjdh"sBOcۙQWΎh.FzSgeɇ*HI_n:Hz9,8d#4{m) ?Y篢d箽Fԟc% Hsu) 9I,!`Q#%F:kV˂)H ڈUkZasR uI#Z.E(HŘ'NIZRHHRʾtUmqmE^Q^kLc "RE$8u%J{o'W*;.׻aD^:ˮZF iYFqPp}/_3xd2?z5rEE3t'H$QQ`YtSm=^?F"QRJ+Ϡs<|x0CtOxg :lԨ7paHբ"痬CQrL9 ,% N 9<}|V&n2>xT#Z& ;z\M xzov\3Jve61&5Ά'S6{œ8i,̲,RBZ3 LEڧPlq6^h$Q|=F^v,\lq̹!VR y)0 TX>QQP[7x]ѻDLVp4ڳ󼦳( V 4ް>n!h%/oyK0)RdNӪEA4}yԔ(/:T1:gQQNҦϧCusjnñsKpC,sTjIZ$ cdj> r7]WF ! 9y֠8;AI#v4re3V3X%:Fjň!ύI q)jkN@0NhM~Uulp9i;R"RѨO>{-:y#,̔΋ pIسzvWL${H./U8@I. E%ukuɗiZCmbgb6*6+ HԦ8zvL`I&hdoj#^A}-WlP m!%+Yp"99T {cXMHH409Yc-c'9S-w >R%E?^y5w)Cs#!p^2Ku&%"ih-l7FіI^EaR8e[աR m Lh NuU%po ,Q2jDC 5W&f:@D?52Yq9$}j ݹR=8ixj7"yJdOҜ;3ήΪ PmMOgp34]GCEB@N!flJ)\~lm>f 'Gvsw>gQkIk#A[>#^6lts n߾KӬ?penhsEZbm"Ftͳ6M,$Yťez=Х=<ǐr)N^nf9,U Xi=37?^YGG)5"S-$XaT:r~$2>3gu5mͩitX9'_!t/gI0Um[K5ev7ˬ+ QVW渖TN=Ffd2qPR1s*L:qqMDB Դ̐T+U7Y82b6zD1_B՘I\#->7||mPj\emȽ;&=:%2(JDFD EeZ689sUN3 9Db6aP;'/J`o\̉e%wdcu x%G%Y2MeZo#B84s»ykA,ǩH;6R_/:LQ׋:U1B8ˬU3%#bFܹ`|Z7*#,3c:ceC!gK-ߟ5 E FL^'[jU+^d<:H(!ԛلw0PE/0LJ Gc?ѠL NΒFBɉ77 bUkrB0dY~ZYXǁ䎒:&ա*Sz483++)hi4ب*42K"Ҽ UWn/3"Eߜ0o|] c0;~hѢ#n;[hD9E(ٳkl~wH]=O>d|[aueܸADsaa 7?ŏc6goGMBZل&>#"Z(^k{xÝǨb4 X\I(J@URŕsxd9*D%ۯst>^`CݽC\ #N{VW0[hjS5*;:LJX^^@1;XXZW_|Zs va1@"FPeh65Q]c{wRpfRQ?Hq4S8g^aU2L3D(ѰfEtI~;9&twaL Yַ;OY%i9>M[tG1b&Ns ДfH $,GM #UQR[m/ E^Csw|q)3*l(W_BGM`*=s1AsѩF+5=Z`y6.!A6QD>\DYW(6 ^c* n5W>-iK;D\XQfywguAZfȚD3D ,t,1c2*>w %{@RgXxjc╊Zh.oL.4!*,42ͫ6{fe#^ړvs~pY`5 O];d{[]([G|trcMapErL0?D{]Qk U|Ԩꩴا#X^`jznlse{T5,}N܆?lR-C`%M"/J],TDUg#2x?ġPGaЁ+^+͹eQMb WoU(keefF62gZ%{S'4s.^׷{2yrrťE,- "K0=Ǽ[1$kO8$ &4qJdZe87LH8}<w^`7^}M)LܹtȽUUcte@.$AgBkՃZ@:lVXf+,x̢4GRU&rQ| xg۰-j'ɹY*>Or@tM4ҿ [g{ȼk̜T*AeLGR>?򬾞OوP\1m OJ鼱 {-`6M>>/3ml}8qJgH9N?se- vs+2fVBlT&žxsr5`dbi>m%X\;x lZM uU  a֔ӳl19di{ǘ[Eq/yŗ&HcŽtvшD ~h>ɮ8ƐXk/ ){'=5=m Wcyܻ+wњ^Fޠ>?FܬD㠎c3Xzk+w;V kQ)ݎ)GJeJq }YjF>D :gdZu #ETÜn}wjEB`lRh%Ea EkH3:69ZZTXH 3vVM,SdF4j&B=b:AYc&9ԀυtkHY)MQzBjYy(d`Q_ ]&Ƴoh8E_bYgLDeƆL^RTƶx'`MFT`D*}̄R]z{?V}#gU&S 6T^,o#0}5Bk1磩P:hGLTu@N(NՁ lC o =I<[ѫ21;hLD9p2t/e<ÐqCк!*T5мDӼ(,Yfс} 7Tc&w$06SQ}Y7FZӮ9򻪵~;ۯ3yzd9g 0s.1†<6*FwzWBdC2R}W*W`9Rd}hMCSwRl2si01i3ғaUg8E$h $ӇIJl\=l[rXݸi5vd#0M&Dv 1-~*ZW3J49LE^exAVsuMDYðbs7Pk)"qًbTÊ}B| L5>G8ԠVÓX)0KђFW(‚G6!&FOG \,ad'ı60]Bao9:E:q%.ES8F/˩]-JӥaI gtP)6XaIhf[ H)9D\-bdFMLÈhEpB7]1%4llRr~Fq 67iy>};;;s6btmjw.ѝV ^8l >orÖWYg=[{6gf4.c G9F^#p2z[4S>bqV^9?~=zE΢;cx?{m!=b.M4)d ~郞)MϾU'DQٽ'\>,- Ԣ }̈LLLI>wgO)٨!Ƙ^!nc{gCzfxk≐ Tk`Ӧ?035~-tD#smv;$QCM%&GΑ!O4R=9G5^ɣ{4Zmwz(r{Qck.7Mq*x8ms =f}03ʼn7fT1M 17zua90wn,(s6Yi3I:,Y' IDATF,,S q`Z"O:jda^:<N(eD k8AڀZ &̝trscXpIcNI "&yH&4I!ibi$WƨLMi(MTRj CR4/2*lfU+!y4fC)P^"jT.w6 r!1(Q8N,V16AAunqn=.I&J@G9YM[!fWAE.:qrh,̣it ߾rYl9Z0+TZjz*fR_ &' Դ|ehZd:}᫊olpɐͥ'k! ˫^ ArG#M#}nS]9F3*?$[ytT*#Q5W`VsVCֶ!@uJ7 ,%MB ZƬ[7X\m|A]\%ǵ4d(Q=Uo5A. ѣH 0N0tͽd7%Ch0HiQAvz#ul֫\AGwAEEP9qM.8:&\T\#$0,n2_?v _~)l?K׮y4nU?!:7_å]ܼ5.?</%_@dV_"eq/2;jdZD/yz!sa*ס@!g0p}Z{uSӨUZP_G=>3X;DOÙxc"."qvn c`GIlt,V={y8{fhJ(J+nq:;'No|wg[jUY6fZ:)4ƓZ)^*;M 7& ][9^z; p˘T OZ y9U 9G3q|Դ yKkZ\٤d(B1c{kEu6Qh"S`qDв\j.4TO=(3k͖\9M[#lo}F࣢|"f?0h1 MGkM"UiD$q-cz[gj4Efk Fb"(E]P{ҸNE ͊f:CNV9V[Գf?[  *,$^Y^5s7NWFU95Ht#EI$NIJLc]a~q4¨"ذC/Kt`ɵb@ {{޽Μ/_Gy'\\LEOy=ܸ .>aAB/)TZ]E.M{͊*ˀHdDbVSq <{o|Mmc5*Sg!xūq6VxW1ժӏGPz7pzmkxs6bjT l䘝%XQ9ןscfa7q25|_ObLsC\|D(礗_$ o/N2^;15:8U^ÃNC" s9D*EtN:DԣjV(KQV5gΚ"/{DH m CVXWȎ4S({i)=ʆ5hg͒5%gmI@r3q!hd;l'Fm0wd3w(e:gjl3H By`Hh(1rٳ~):kL)^͊²!i)Q/2XSBg2:C|IV8'e4tD6FN.̀(=B2)5_vݮ=1/eB;ꊱ7(vGY>*,Aiu2%;V2T+f Gʴt&7J4py= n~yH1`LX͐!j SIRF?8`^bF6]!vcJc0;7m=^C9}԰'4E_x'ʙ9?3lnmsth_^(Y~rh[c۴)IRhg]xbV>{hK v{˔ۯ>WMenHX jԵOeJ]æP鿑6##~S+I.'ԵjӓQFhCAº.U)Yne O4i4sNC`ܼJ ґSGYȌ(aDښSK!hv\,R'Ψ2n70g,@bY D/+SPH wOf@hՄK7P܅ qB:t;("V3Afzݼ<볳֚Lk ="/j4] HB:ĵumŐ+a0RZ3-7##J+}N딚 ׌1-"F*8ihH<*+ko)Գ3A6b`kk])bk{Ї9\qKw,"*#bGo?Z&߿}M<pY\v {{H&Up|mj 樻on}ϑ _78H=Nn|8ǫϭzDG:H4-:p&a) )ή-wX[>4U^+W^;0=`nmFWΣOpz4C,#K2jnE *+^ģGOh@SFCŅEtNT"8!rX̔"4y4Q6 Rec C̝~RA 9ƈkky -P ,s6kay,93ne~;y_ht seDJ #*s-Ԝ>CyfeW1WvZJ4`2&R{3u!Ӝ[(*ID# y~ߨ sn31NμD,gpĀC=z$ j߯H>Pxʫ%%{2@01Yswu ǜd0$DZdKNļPyf5L u311:1 3Q#B#a4o\Z˙J!8͗0:}s. xĹ{ IeC{A%Js/ʆ90ݳ25أ'[p,k]"Pi _rrp(qlKc23C&4-l|癶UNx A4 !_5rXku$ ~"3ǁ+ijU!CDcwb&_bXَ =?Η\,;EIu-9ոh4=]7ISw FU(jKp"M[$&8!zJcN@ gTk ipX# a7O kNl4iqmhN7#Ejsv,FZ_78Ӑ S ut;5gFQFɼ'!:b~\ls &;<\IT_>Ί(~Wqy팚wr3RQ04M 'Y9xF!i7Kѥ(h:q4g'$#Iu*r6:3ԓ<[)YXf i`R%+8{)ʒ9uNLShFc3fVDضȱL31ꌘ^Ɔ\n4wt5j^&UAx3$jSU@R +I&qN!W =92:( Tj ҃b_jnNFT'95I,X88#$OXɂ*Er[e:(3',EZܦ.ZZkHvhIQTQ%dePyIKw=nYGP㪸A#$> N.NOcufӕ*NF= Bn#+U.X]3󨋙`͡ݬ˸hf|nw3BDSX uH(NљAHFQwN{ˎ wqsh8:6LLENӷ39`hatDK_yx>43imMogY (uAFj@,q<Ŏ7D59 IDATe&3p@4xI!,1yQʜȚ#lxEQI]GM3gyTn"S^=[Z$w6~t[6=)F :[,s*z#R\6V&V/] WGj, tc<$T:iU>NgE#> B{|>.>LDͥ\\pyj0 /pr G8̥jUDJ:iB7)ͥI! i4*ᄭ}!ԿʿULzyNXA -td3tK3ߞ!:HO>AP~(WIQXhQg{8$7ޜҚrm"龩(ST̲dT'"3=J)MG~#GYr11U}OK8˗.ФHܿ3^e{_!&J]~TtϿwc,l`oF7O9c] ɵfqqs3<C=TI-P:jJS Jq!n֍ZOztCβ!OpE aF033s_wz b0u&s]EEMd!N-•Wװv^SNZ?}˗ v7yoɺ237ZF#S6pY! zi)/_d4O<Tr쿪&pWqPE |.`o1#"N1=BfiIQcS߬ȆFo?)6A9Bh|Ƃ.*( ]\Ɗ8Ckfnkſ,b('M6N_tѬ: QW@>DVH 9\,,lY4'݂6aWh3rܨ.MU5ÕF@],7b;WZў!М &fSP;]Mr*D"gXk"ˍs"tD29He:5r Q9 {c]Yl ‰H0726Qɢ !v 4 ?zJ>&/9˿gi&vQx櫚=o (1_~!Y,VE(éR%!o^^| U #ʁA81"nHR8h6%C|:95<ޓی͠PRsEY4Hrv)Nۥ)|eTDOpBrodJOQg2܏!V }Yjb5Tb~DAI 8i;FGĘ;Wb}cCЅ>+FEq)M&Ht1p)+@I(O1Sͭ~)|F&f, FNDh9 ,bQqoջN>r[بzyunŠwFCt%G:hKS-,B.x>JrR.&ѪU- Luqx8L!GH>bFsDuyH.=JPSe@;EMHPR41k6ǻ=_$'!: 3:$*9 KX^>Et=9wn~k|EDujf fw>@Qǵ ̐",.?#J-M61KK6B78Ȱv{0=J?Dx4D45|S3('RTcЈY4I/=O6&>3Ī;ApU;;x5oVobeu7 MNweWv'|˹ h4if0!)Eʒ߀rl-D@ ts5,.?KXYGnvzXX>]!va<`oGY x8@h'X]lUʋ'GE;w,i80)?z ^Pa?!8s<~_!BnÇyA*dѐWa!D"5 WetzIl*(}sS`&1ԜEbܒ.xH'm\Sd2$uzε֪)ř:LF:ɒ'T.b5Ue CXctc .Iޤ'Bx"O%7|Xf&ip:`nt۞DBYaZ++$u!v~&}iCɕ][yH2YCҤG4p.y>*A/JDT(R̢s]׎4МrmqjڞfCueǎ3*V#錨݇X]_4@i)=ڠHCG%Q43=!+epB_L $IFϐh2lꜘL1}7&YO6:wfLM(YtGYdoN6&8x6{nݗ@DmϡXjY'p.s@P7kGׁP=J 8 S8IR.(tQ}'0dF*qurrπ&G>qZ_ҺkNBz˯۰3=V(UiCSct,IےP.MvNise~/1-:n:B>Z~?IQϰfCf&; tz hΗ_aCV0ߑ|fh:q. _.)䎥{et)d5a˧OВBFg8$«=ġ6n/Icy/у=u$& Tɰ"&f!v@PBș'|ɵF)*ew_Vd* Ɵ2$Jйy^faS&>m) {'yKlCT2Yhft FHPO I>k -(ИbD  ͌* J%jހ6A`Dhܼ9Ab egbFpӐm(5~Kٵ";) # H2ïW8Qi4PIhm&>s#IF0aT/t?AMT'V1ͨsuZ&p24:6_{x5~W%GD[*8>֥h[lD;fLr0?LJr,EPDՍ7괙\${Çr |Jv5N`~.Bwo{P)GrFztN,&6}IoXXXb|<Q/pH"y% aJm a@ܔ q&*P(T.7lKrKp||/9hͭ ,a78><}:6q9{f ;g#Ԋ*.͞WA\dQWp|hc8U>WvC <.cw?7TqӃB~P.H:!?j`e{O949-(Tgbh(e9&ڨ(gTqˎW" CF^)o$9*4bz"L+}Nq<+ #*CթW7/AT\oJR\.kF)hE,DxY)T&ϽMɪtts D41"l4K͋ dMsVVeZg¥&RstW &}L5 $5O6|pMjrՊeJH5Ŵiƞz>tHlNm|_"9%S/9ٌ2n2{#?B?OUzoNɺ[m<5yA3♢eiinw $gEH*׈=(;m]32[3m)^ag̟CC2ߔ@k1eCbi=?w&ΙZh^x<@'Sc\{؁orߐ:cFcM/ag]I~5I7F0cqyRZ#m<1MޤWqZ9N!( uzH4P4 {@bѲHXs]n>|W(.l^`jD'aD\7}c[OBNc6tk8k5P'c):Lx1_gIno\ A!1t&4#WbSa, *YDSNBqp8&U(T(9q iH@A߮`mV`eّBDU-NR}T f<ٿ[~شfff,HZ;<K|_co!.nmWq%6B#W_}}6\ݾ{/̰s?ϝ;ϓ~Se,KHOk ZCD$"53b?FY' >ǘ]eh<Ξrmܻb*U*U֍sx `s#1nXbe9Ji5ccm#ŀ h$!Y\Y 6_a)*<g1ossU=n'X}sl3n^xݽxtyƔ눽J)lj!wNv8;Xaviq/3UUI\`ӽٹv&(ʸu+ >Ĉ>81e4)e PXδѣ.i,\şWv7(M7(Nܘό@pOwyH^vϽngf#Ff(Ǝjb~9L7gC^B 85VhGA;;żvOuOOzrlSU/~Sk峗VprxFrܔ;Wb#2fVÌCnwhvF=J&#q}..Érʃ=W+ACp/`V @ùLTO k q$ t}nݣc,puDo=t4؆'۔x|_%2{#&uc CAxr S]}FAH"M4kKmq6370:$jn!kH -Q,{ٙ7l/ UDsbRqHNQxÏp>?w;{]5NeT`܎#YYX@T1ݾPK.ԊAF k:QQgxs8 (.-,ǧ/0r)g2^zhEU}Av&Jxe b@rZ8:+ Bě~d}>m>yuR{asg9s++0 \^o%FhSIbV\I(y9U0Qal(uLzxjEFGd:..l]ŭK׿De Ł-cЧ<ႸVY B3)bɭ}bq9HK~tNw3 q<qaHFr #GfzL4m'bJet;m^[hY,e DegBC,H"|yv],*fFER<:iFR'Ba5Z/@4FsN@+ ٥FE$5I6Y_M 2Af҄*CSD* Y,3ZTyyQU^.yCaLVTC.)s]d@'rX}?Q3Ӕ/@Na]THd ;2yPW@ф:*+uO,KV*E8]GMZ~R*O]Yg  `@_Oh7mIv UF)WTL4Ι IDATe  Lh㡿{Ϡ+}Fxpz\Ň ADYOy6i$9 sFs"ӄ -,ĪaQ=QN4$qglr`e%"G`l^Oɳ gmrS6ȟZ \V2[qZfST7Y7!@6'6 g5q>̅z1BPOfdvAO[,r }SJ9T)V,HqvcFsaiX1t 1ШS h%plGT* 632ߢX>~Ëh[PC.fҬ;D衹6end^Dvۈ2.]'V65Ze\WW_\`aai7o~:=/62ϮZk6z 6& r{wBRETfw* !>A!,/T[BP,𴉹Y&3SYEywnia`r=bhcc? 4 Kg<9>>UFvv9@5G蟍3ClჵU.F7.xow:?wD2pQv+΢?gM`>$wW3+ؙ*o Ԁce- &Wf*h&ѐ #[Z\@TK[lܿwuۯ_շ71tѶ z >I۳gOШQ&3@KL~+gr gbfVO!t/a23 ~K8=gRS^Ј WǙk`aa[y65s4ڌj3j47Q9M{쨩20L4˰Go^娭k4]YU +VM,X7t`:T}C74t8xN<2T1x#"R>qhqjJwWy`qFNK?@0.2k+Sݐ:CL_=4Jeh0#C49<:S P.\ܧw;ͫCCkj"'αqlਿc.4d iȘN 5 qnP7- (%2OxvrM.6!nTI[Xbn stO7.Ν9poZU2Ao x#.50peGxU"s c)) Mqzo%<|ˋv{gwoczŪe^{̍{?b.ܺ9& GU;=^݁ gO)ꌞu>{89>6>PQn*p9g5lQ+[{&Mt ~ܸ+3(WxgaK 8RCaP &V96#BPH?,3̒7vI^ThOfST𝜴PC;!*<Cg\1eQwKVyjds6P]~Uj؋҄=UXͺXDcje-S#LmJT+CukC?O22L&WpCgvmj F.xDoaM] A>KL^DmH~_F|;0GL4JI ]-II7UHĉ˻pBQӀN5)SVrZIG9'8% ݇QV}v/?j4k;X;Naq(,qrh<.7N*1[i[a E(ՀdnGe柙٠9&}hL >#,/pJ4ACeގ'{44ɣ'|-X4aцA N,Ƅ1Inxq^>f과9W !ꄔO1[^,f3 -@[͑J'A.\$sʴ6 ZƩEo^>֞Z)䵀2xm] AYmze= C[89T'L IZ!qژ:YQ 9R,1aN'SjDAu=6_gP$qtk hh2$5BϨm,5P\QB.b^ E Nѕ'(ST\~ N2i>}Fe4ũejc3A.]PɣdDYkcuFոɃɚԦfl3k)L dSɔ;OџdJl̃Ӳ9R(9 Stʍχ&u T];0Jsڶ,,(3NbzR$ ˏcַ$ |7I:$ߋk9xly}wE^wg~uvg y-5O^ nhACiKԍstm"bQnP>ZjsG48 X_EF'caaݾ5œqkS4G}PFd FDžC>Ve)* !N} >Z+|_C:0LJtԙF Z*dcz$p6[[Ge,W`OO.\Qi%1 Z'Q=4R. );AIAgk.RA^'RF1N.J '|;^3%OԩvA| +8991J.]:WB{[0k8N1S1Zc|{h7O1wf;0󐌎jO?0jېTf2⭷.bgI<`vBasK,/ns*9Jtq}JB Iq)2l_߻˃!"%ExV;ɧX籿c=^iڼj"5Ė(X9jJQ9 T$һs53өqhl4eLRI2-7#9ӬZ;Zk4pAq*|D/:B%#L ӂ Ͻ#FR0Gu~)$Q 5 pPK+R .7U`*&Ǖ+sXsTmcC=3'$xδd5bJ{LԀGLn،r)SqUhHzi҃C/E.n$NoGtco56B,S+qnPljʪ=)=YB(CL(Or5F]޿|/+ +blCoUM]yT7Y, eŢc/YCAPcic|ی5J;'mj䛔(Nb 2*]Z\B瑮uɖѺҎ3 TX|^=OlI0Y}yd#/g%NӘ??$[+~l ?ucUY2c=j3@4Qp Թ9 D\;B?3XRCREx(:"Nde~$*}]vhkbS7RL._<~hlMJa ]`LdHI1B%q.Zd a^&JBqoB]R/ 54 e(:ˆ$E$GFc-x~ x^{On|ę'Ui_8*#n>.w) E.P"JpQpnB&*KHF4SNaE5 N,/dN~dB LF0R..aEZDhhZV~ڻGf&*ffx>>:<|@v^ {;oFkK{TdŤ r/nf3u@Q$VrcqkG &u32>f2t{o07/9&CQkYoooq1G4A\a"LZF{nj2­_ 07L^i?i@K>n&tNݛtG,..EJQj6YK Y>rΨ'mz^gΟEF:j 9on]ef;{~;/^beQR-p2bj8}zPVa']Fv.֫R4B}NypH_ęEC%*n`xxBjj`'5\UW4LSZHdzآXENi0iyc"퉮" BiREZ |;L%c56B6c2<(AέVX8%~!91p=ˑux*mi+;^6܂]gՕX 7~f$kY!oZ&tM j \8̍=\z$߬yNޣƄю])`*1?U'}5S@输sDd1I{4䔯(­CoW *QPY?&4%J;2#(/&Z6sWsv(4bő-Y)۞"G[8ϗ>dF`a| )2R5$Tt IDAT iFRʶe-l4aDQ%"'b$Z_ <FĚ,d0!.9G14"3f3j~BhI9ہFnaz>(cn󪴞]E?-J1I5mk6xqWBi=yNg"*9h.gKOZf&;NHP!Z2BM*wpc6+x&RÃ*F*NukG+gͰe$ShOiXPy2H[[+!8E)Hس#D!S՘&āaj'Gԋ>Jv#2R4rƨ]B{{%*+\pyT7eNa5=6M2}Mk*,C qTtY|*VC#EMpR-D}v}ͳs׿L ! I.!G[L'*G?`%28nѨzgFċOsO /^᭫paaE1?? ƣ ._w_h'8=9 Gf9gan .c1vp&|*2v_|a4Z4V$y!rՆא[vk)lagłT첣I>gc\غ?A4rBk7%Z3ss>s=2O`v Ϋ(gf0m$cAd$GZ<U7LBm _{XN԰Ӿ Fȫ/lT E?υ0ْO]mz Lת!OߥrM&+HFhVԡu&#/nBX`CV1܎-MOQ#n^ybHoQmҾrtF%Gt/qBQul8; RR*Hb]EY'8< B'؝!2Y, :?ӟ>C5 Zq5EAu/[5:xÈPnhg|ƽ6Ӏ6"YHz2Jx!ݿ5b7?g; 8\BL!; ˁ!~cqa++K~ ~O?[?Se*T9^gTvvv<Og'_tI٨8ffy{jx1I4.SWpawY;>X]]c 0pȆd=L|o$h?G2)`gV ?< E=~tŅ %,/a4Q,,T~3 (hH4bJa[RiÓw4$~c}Q3*¨I 8'ۈ$0v,56ŸE JF$58skFTȪlis$yγ~*h״W1H"US9zLj]=䚌l͛OҬ)L)4&j5YD 7(fI)c }zkȒTuwd:a 4r+\"[GJwf>ɚ3!bj#\ҥ=yˢ24!)|Yut5@ݦ9=hP3FL LY7B/MYkKYkKzr<Tf+(Ku{zI6`ISgm YM!~儢ͅ҈;}b5әLB0D:vG%.gF7z6>ǘm0}Ƞ5{Nf$vA׃X%@Rc,OsiuDot"BG23ǩs3󡘧q[D)Odp;SWk?ȋLf׆4 ʂfh#:+hbϳSCO?S+S"pxD5.*G]AQk2=q妕܉S ;s&7rc=؇^i&~P$S;N1h51 OZ)pH3EAKrԧPF5%/Q.)ytyX/mk% P%zTA´9 1:E`mM&%i5mH4E#*/-BG*f&{)J5Z-ҕqW{HMH?g("BS@hꘄ l4F1ZAa4FN ƫu,-̡78͵Ҥ JnKDCL= Wm6 bJ)#\[<+=d1h>q.GZlJo_Mj@ ~ʠ>B v)?)>CncnMX^^^.άΰ$3H%Vqms wn:gvMW\d-b<l#-9'%hp̐!YJ `e >ɏISS<>nbCr/KCh"ۊ"]X9BE-IoL|h":71p]) ԃBdE#RL=esD$1dZg͚;y]|c95:T#)8Qj3؊Ukf2gp=XDJv}Sitq",B͍[yjۮ u﹎뮏$Rhi͵cդN;UV0T+) añ%#؎, jn`!&+HG^ (FtHmr NM!t0,VߛJu<9`O~ofv%Q./o~JHPD˞zH|&LϮ)hjMhǡȬ~е1>&QRR1 r9Km<Tt5%qcq{jG 5]W 'B͌ ɓ.x(DYPwy[rZ||OwX'$U!-J 4g9gFGch *jɝbpxܘqӗQiWB׺FVRKgGN QX\pD~rgBNXR2`́XWqk"5?Bo)nz_GXqiN]kDhޫaE*S2%*K!.0R 'c8㨂e tCQF$zIbяRTMR(]rņ$^Blb5^/MP!E8d@@R4ݤsFz,ul#TqD,Ae"9J{'1^45ZngP(5P,H)<svNYGyrJ&DPR]4FvA3rH"C_-8imqFXbȮ+++SlW2a}6yCR>;Q\,jP=9|ӧOay5U*.\,{A-.6Ĩ$_3`Q„HBщ1R\ܼ3TYVŭ-^o޼~_ W/_,f|rbHMdN۷(Wwo|%vdUB -A޺.v^ }kpqcY<>+5ܻ V.C\owsv "@n6^gHk2}kE~f^(ӨuN֝¼r ~Gv\mDc{"a2;O]Y}Lj$1 98LP$/qjN_5i*垗x݁Mѡ6H>PT.P Ǩm rB9<0$516(@SmXiޑdMct)^)ڸX֑b522s.rD6+N4GowX+-v=qTZ P'hcTD5KV,Ԃ{GVq[ڧhwyaa⣱x om@Oh=qN5 ډN'Y7#tG8 p?GEƷL顁[&#x@\ڨY+Ek|llMb9v X T`t{=ܸqoO);~PqQvh5]w2쉓 fk5wkzZ (7 E_Fj4{W~gO{y Tnl?.]GqA>#l954o1?@%h/al !rh n?q:a/C{JELoC\1<&qjeW\P1`iq޾Օ3R St#.l=zwnb@4tdcQ:yx(-8yb ~)C3sY.н3lOaУ{#aJuo KRvvP-pLJhB?֮)LiU/LbqeֳJ3U=]{8oR'y+ҕj5"[c#nQΛdݰh]6۳*Wf qd Co|׳\'v@y1^15Qʲj?m>Mj&nB*^3OeH(p4eit*#eqC4t="9BkLF6 N8.7g2LȅXꮝ\t6ф _K1Pfdy=LT`is<)GFf\S5zgpYdhwmG[g[}\TSZ]kXpƈqߓ;7paE{0HLyMe~Mf0C,́lZ?&HNuTo%VNΘH<_GίWx´HO;F5܁c. CT8Z׵;ۼҔskW`EXA29kx _4`jF7t;^mf )AZ)gj#i5!0/iumxJK75=< 92k2&]YದU IDAT(XxٵD)6L_-=&G3ޤmhVL e2e%Õ4/_ȸqG>&~M 'UbcT(ǒg(:MQ'^kPF4`7dbbC"Z赙B}njwA=ZHJW mQ*.9TCEp'40CG qvhKxuDPs]dZ3n 5T6X((rlq|q E'I0H~=Oh.ePZF)eј +Ӹ0ظ,9ΊG9/׫UJ4m{8u0duYTA;;' :Kh4V07j}TSNA[ZDmnqd}81Ga&{ـcGf˦B訉yuvfa3r9H!84 Spcw5<?'dZ3|? Fp7pt!J*bVV8i}t:}6"]8ӳEi&=~ʺʐu#|?.ހWXnMnJo_x *::.o+\0= ŋP#*ok5 w^{{< XX>%$dW0GH}7rI݅zcn.l}n߾>ACŋ[/H*Jotm*lw<~*:Ξ9F NEt&Y?9vvQ*y8>dEXph*qZ+žgy7mnÙ9#Q%zBzsH Q 34-@S@ylXZM D(#@WUfenkUvR0a4Iu٨=c"!Oϰ5  wTD4]_#96K1(f4+t^YL}9C XdG4VaNP:dQ gMuw ɷ?LŘ4MbX_cԇgh9rQok⬮pF;|G,M_| .Nf;|5`Vi l>.}غiMc>U49Fc蚒3(>|3Mf@&e~}5%VH\lEr`A4]6X4+==GYql7/QyYL'9׎5rJݡÈFYE5/*2B_Y5c8,zѯEDe]DآA;vE_PF"clqVq|u v/qͲ֕#wicoqBU'HNJAtsCgI]Q[23"%;0~cP&7fHԆ6#XH3"JkOsf*jޔ`)i`S/Y%қZj-iI~ 1t(3Fwz17sWf\]#<.| %u4h4AgNhE4S 9t(lZkN8gYAQPJTI!7Wf[JXq򂦝'3 d@]DO$1͋bD:5jL}%hZ m! "rJb: ˝9#,$Zmݯ~E2Le#Ӿ*7)u'SsC3N瘑4>3hB,FQmytjӕ⚘{F) a3Mq8?qI84Fo*9i^,dzѨ+wmL'Ril rɀaV|Z@7D紋dy!n.GnVGkpV#|("K{L\%>H(;=TNS 9MS&(ڊ&:27q:95un>1 w 6KFDzG1XiL^&Oqzҡ K \rWO!t5b\O?CZck  3f{.~}Z?{xVWy> 0:|צ4 ~!}~)=} F ?qXX7:ZK 'ԩn^ۯ]y5ll\%\:W%ݪbarb&tc, D ׻N8=> , W&#Ȁo}"_z~ͥyɈC4~Npu5r~ڭu㈩4 kk-z-lln"&3Lqxx y=BS1 C} f&9բ[ [ⴤ#Z49f+gY36p}Y5^^=s jaE}fB驆3}"HNPg PO9wi&p6@MYQءkp ;4uQ) 5o/l~5h)Է!5jQ,w |&YQC3}ӊ8nlӃgX ȌSyΊE EґKl&&0V&ͣ&c_ L,-ܹ=t2vefקhhorѝѓCwu]v&X4I>"JqO,PyKE)y/6or蹙!du$s#w:-bY(2gmg#E'yff28ʜ!,D 4HJ_s9sHj}%kQSnh?8XVji:cB>.RӰz0¨r`DPhRR45r !k]05xFe!XP}ggwG{sF5yi$ +Qδln3jEȲ LlˋӬy3`.wMY` FQwEZZ8 "]4k^-GSv1*DHZ ׆m \VdfBH2HW,K ]j=>!x#!+QGB/ӄe)XBD-ݡ5\S&6Q,XBuפYg;ftg+eh>r0E7Ae) 4iJtՊIo5MB"3 jOI0f"i;sxm^Zΰ\K0eG* !ùcˉ7Eg8EWŭ+ .lzE\3?1 -AHhnڳtY`lX1&Viyߚ:Cޢi߿$u1BA賚̤d8@ջwe3[iF47"9" l/bc+xp 7?}<wţGO8:yjZY2!I,W њ__BQ]2]'}Bѕ?!=z8<أ^͋WXz<~zjs/b``niZ8t:O&CQ DJe9: i[sX^^E>$Ƨ'["sutC,,ɓG'#,,,q'#9jgzt6*'y^C;{#7p{?h<ΣÚi AXd:$%\zxfB "9P.Qd iu`}qh_U\r:h^r+^})+cFp$)]Ϩrڌ}f^EmhOsյܚĜO9b~WC EUw(M='ɋ9 .vij=343n/igV@_Ivruߟsof˘7*kD#9tfHFSvMJI-UzƱxE/}@Թ &-507t͇|`Ȩ\'/8;<;CCvZL?j+JX`v :Xf;k/h4KeN> Ý ՖSC gZQ9L*I׆P7'<ӂÐxY[e>SlM,Y'Qp]DUZSWtʽQ9 e v0!5_("mŴ|e e-%f#ː+p%N}OvvynFLcWE傎 ._U\z)nP.\;(}&e4r "Q<)TD0kHDe3.Vf3Ww R(y䥃Ҏө_HTgy-5GiG `#E>j^`:+ api翊?L&Z6K/ak롾Y^"NG#{{HMRh,}Y?@Ѥ^VRM".,(5R& 3BmApp y @ޞh?Q $Yh% gS oZ&ɂz@Ǿ~ J48̰\*GNjeVPČIƢ<62z&ܓQt@ vwoÅW+ N$/q'7AdjKlPw)ҫxH޸| d4;#G}Vh?_g#a>#bKss jp&aNwť%<7qE]e$.yO~4Siqs0)KT@""UNkTfZ(\^P͝oK^8_J9Ʀie'/3XhQs>!elSZC"374[(NGbxc=ۡڴug92}tT_G 6canQ>@5^g ak,Jc=B9MG]|Bs|΍1-A߃CC3QЯ ŴVF B/\6dMQO=h[ X EKNq ("!uH;^^ ٌQg3gr:[vn9`4gU^8I*NkZ^ QUYAQ;O4#6ڹpԆ@p]ݑ,ny$S-ʕ!;"^n3t}W4־4Avyvӽ<*(KN-?/pHnkJ^ z$x:PV 7Zk&ʸ8_T5Yf\56~IZpm}7zes'L.H[2h:>V67=DX3kð|݂k4fGVk9{nP°?c>1}9ٗP.]u 2m8Q]#.RĚ\[&PeXzòfQn|߂lFJ mOQ:*1 9;>CG &HU-! |!EzI-"j fjD'Va1WjfLdcޠ 0 OD*GQ[L<=`1V%RMc]c &(:k3A+hj詡02mwٽʽ*]ijEtk 3s%_Pfd,N;!;svO~:c毮n'?)NOOXiqi?cc2V1Vh2j7l:]2ք BaZ\s7p%\z w9f֨KT'ߢ==; <-XUټJ7^/_cYA:7x)&m?k^dݻp_|A!^^=\{uTksXX\52$$ #!U$&W??>7Z؋.RǓ Z .PO|tppBͷp8q2S}89>GN3:.η%#;'P1[n)Wlx/&j kf#1@jKWq^9tWV[{\#5mJ:;'^fG*02(!DEojaVfE3GJBi(U4r_s7)eINHL`)!4>$|RJ=YuV }(#׌8:pAm56MCaS8Ddp̈́} Q hY@z`JO&>4R@4.W]M>_/4ּhJ%(ҲϻP8NJ1,變f׉inM#k@pT.:LfVS0U5Z{cJ7wVW7ɊՒRXrM !ᎃXvnyݺ,^m; T C^RI7>y&H ^wE[f\iGbͽy6 k9c>|?EgFP(L:ǘ? 8@tv4N]1lAnX>3}/6mpO;t:_Q-F@q,](M/@/uW2gD_ϲEM5P!:Wh>9픨P\墚X^\bÁ:e6ͳtBvY}uBA)JKt΄i3^zi9ĩWYˣۊɴo^:bvp_hr*ܼ|vAsgg@=Qd8!Mba@5۞9j:0C" JЉp fGBhws)U)4Wܢsd(fM*juMqhj}dhИ=PD!Ir!LI -<&͈N:0rqU ojJp8R(\D&6Pw^lp IDATR"84<|x }f$Q}dJbCc:IJPa_** mڇ3 ufvSbН6kKk^Lqs} FLL9lfuAbv1ISZo9 ]#6B~]8c'):6̘v[_ǧ^P6i{ N3'gg6 6FԱyRxXHò8K"?/1ߪ҅ \Ma}}_~)iq%=Gԑn"'r)epzx2fTd Oaeqs&a2MِfՈ@KH)W0QRt (ɟ{E!)C=2vB+&CD. Bϥ[<UN]1M)x铧n«䪼¼ecI,m(m[ÕCZJ)/?I=tz{f3XWn)ĢJK49X̕tƒe!, 8{x"F6\~U<d(|Fe-tAbPF, #>J`Xggo->^X?.[Rه{OjӨ U8i.u ƌTu)WOmaee 9iZe:-M%d͹+5& gnRPTi-5ӳͮozVgp*3Y;rW4ö P륙5oZR~\FEP#2(:)SNMMV j5 ʡt4Q\oF(1>{bbQRc$0≯sAK$b.5VGVNe&V>qaPlhI450x)V6n2KTOX jq̤x01j*j9ENqV9˱v9etWT &چ#L`bnI3Wr0w9MM^C*Ϸpqa bBhDb{VU3x键\77nQ+6_8 :>z)EdŚs֟g<ƪ͖WcAtPjvX[ëoYیI?n>)D":C8<:$]s{nA]G!Y6 *7I!\Go3q]Zi\{:'~|%Tc|+p9'SCߧ#tΎ1G܎ꫂZ(q[C6a)N0gQo#āXl(h7!o^h2 %X9wEs{ќC<`oo2)V~jWA8HGqs9h\="] Ly/ɽ 9;J$Wֶ%wY>9 pk)&Ia^BS1nҦD! qJ¯TQ`QbEhN5SB>6ɜWG}F gR I,Ũ Vixd{uq6H4g܄K nZk,~'sk4) jVsfUȍ ڄjxe o鼎scwnv9Das;JQ<332Ccu\@p6ZDi1s3Ԥ", vVhؒ[5vbq(TӔM?،kgdx ʝg3L(417 3ꟇH*!m U}D^z8  FH<-B;:G]lX?'>B˱:B39EGO  q7<h0Kx1?B=c0J5Ɖ W˷? ݚQQM?$UucRE 1BsnY^"rpQ%KTQf/R#%sğjf<6qkΥ6vں '6HkhukURWtu+ihfZ%**ߴP9@WMeDu E/lƿECIg֥,Ѳ-{"M%qZҵwg-i̳B;:Ye(*4̧<u-5`N9V6cW8R33QU Ѧ=3p@v!(a MΕa R$eʢc] my_;DS¹ T"6iZ>Ӳ̖jψij!âLM,CKuMPޠ16IA#>yRٙj-pɚCcf(~Ҭ{eP"ץjpIh>=9Y  02BTjc))} ۼsDY%r=;Ѹw\$)bj4q` R3d%Xw+[du{=7TWU%0[*k>dtaBe#.:5C=}IyJ7dJ Oߢ+s(JniIfW8ѼƦJJͲ_"Gx*HI}p:1Wh:2̟:Jipx< ]\t2CRjAXWX_lyKR!Rf=kO,[+Oum܆9k<4lR=BD!Dx$֫!xPBJTmOpc'bvT̗ghK&ٔ4I 0JI[1G(n`slRg7/#ya _2eGPPY°/@;SL{S*.^;p؜`@7qs2ȓ1&s5K8d44_<@]hBNX (jH2Yu;xȽV"<{t ~* MӉL|GJx6SS{#ZML'c-,.ڵ[8=9b|OX*y$׹=l|oWwihKټb]`4}]f*˗.ac}Bo񳭭cgg/F޼'^ZZ5ǨV3xa8AX[_ɱq7v?h`!^ys4Zs珐{]!\GKs M\rpW,˿EHLOba&iFZWq}H=\p8wq9ԄLk7na4a8`֛ojQ`agxG?ï^(Dϝ[[j"A[#R cLFZsrsa<h-Y4x5N$9%Ҹ2ğR\Ujt4)4쌟ȃ.4m ()3^-I%m(w̸ +yȌ k;#$CG]0a2э6'N<Ɓ٥g|!23,Eh岙SgzY0rj)vQlA\;?o(7Bزl&5p ~Yn'9<7~/ *vVoIt"e@~b̸r&\|msP!D ]n){4Z˸Fftr~ $n_UԜhz:IjpJd~) מJ4'0.(rbcW8$zWZ˿"OIMV({ tn] ۼ%8'B,z8o纫GwEIqL'٩5vFb ߡԏ))/t.,(DS7kM"99&&:bxeos0mdCA8Tֽ?쨂(F} %ۯgN-d?gq< 0zڄg%>'&blQW%XnzEޫP&J RM1LԐJzCԣ E-PkTI]͆Sr"΅/0QVl>#bZ0-zY\&M p2N DI k&өOԊXmD8W5c)0p)S@Yq~qe5Yu`#(ohRC崄E Iʦ,SSyRεx|5-O(j4&xhmRŧ[8Qk B(2Q|"d:&E(rR4j$2 = ߟ*}`SRLo ?'dF%vt?̀s?sFtHO E3N'R:*WJd2kszkYmq_Y^ov ˫?[x4Ӌϣިx5WWÏ4|{r<VVYnkDE#.k8 k o_:+˱dwee?я#9njיWwk8::F͛7'_R?g8y뤴jBݸp >NκX]@W_+przy3zd&t}>_>xV:M BIGgXhw{ڕx{ uF[绻tq<@>͘{89>A5jnMOLbqXojm" ]ca7n'ٌOUfIb}FcMł C΍d5La"&qb#sH#]͘(2IB{ 뫁R3,OS:=ҭX5G(P<+%2iQ\:ڦ"Rͦ JHL XyZ޷LPNI)K학iUnȧkSmkCgI+Cċ:u3w:hv& d>+unPa$v}X;R_5vR*M+ĻMhi#wHe$lea;&zԽ$hv 8/ܴà4r[L8LXM*]<^@4/81An,Z+%ܹJ^|]<=|y.҆) IDATQ;;WpEܾuf_^p\r#^n1d1oaۻڔCY~@EXU4Ul\yBKLj6ϟc w(mhZXYY%l*d'4moױy [u#+~m[9ڹNZ5u^9|чxiū~X_:Opm6B?<0[O=˯W_[?Gxd|Dsyד1:'tuf{4?vecS61t"Li,ҽ{H&HituSCn)N)j_|8ji X#MDp-k$f;ϚPXeR̢Pt,&6,y$zؕwK,3K\ya g\\Wfe.5{^aw#$T]r^d17;,(Y\qf(%%J{uyyAr nLiZsj&}RpV̩^pN _5Qʉ"kI?(+Guy1`-;'AXYJFavEC~R(U9ϩӶFw}cɠS5h6,2H(Z:C/w}9$y2UJ: <qQ)kDFO?L fn>zF7WV;p 3 ͺg&Bcg=RUV> XeF2BtIᄭ]"H^PcPkOܺD_}D,y2[\h?EuB+ -745s$k"zesX)* Dn6>CCy)Ί^7+6\M&Rǎ>}{U44NJm4I`ec]̛.W< *7Z{]zd*q%pΐ=eAr#Os֞C"n霒;\`!ME8T=w {6u-D/ {WLLH 2^ȹJ~~VéD$9תB50ͮ,x9Pn2̬WY`ZǻHqT2$Oi @]iV+5Gtxe}cL1byu1]pYJ Y'_{%s!`$bN,E6)a>nn[b0dN]1Is Z9^Vv0Q;XS} Lf3'Ը ƅx61)uk03C\>Ev87jxQ}LS@U]|#AIKW<%5M 0pAm0' mceu''<})QkWϿ:i|>#_^z%p ssX_ }Mcoo޸'[[<)+g1!jA%̋DUb$}wqyyER=:l~mFH(Q?2'){GWkU\x҆}Y+h_zS=~F](~ը|qwL=zmf^|H=:9!B;2v~nhγm~a@H~~2y/yWIy[, pX[E={C60W#y]@| !hDgwQ>./qn.,ј=|[z4l> tHJU͍1a}m2b;,Fs'1mjkR\ QrhީJ dTa3'LͅJ c ڲDii/g(̼LϹ:ILm=Sfd΁+\kr`2z:@ѡ m tSJ*Ʈ30mbxKI'R A`"}hN ~H:h<+XLȕV f-&a)צ|Xy64a+>P!7tsj o珆nьd$n¨'?yq/8]r=_iv"s+8fp4!Z,5P8yGjQԢr͞7(L&EG%)XEH6,>ϧN)rT%b4RLt *~YqLDz!-t:F ZXMŴ)`ơMS5]%WҠL磒@ 5<K$MdSfA6she&Vâ4qݳ>vْ(;^~j PhF 8xd~سȧ"t uDbt)Jq#.1ufEXWk/fR[1~kkqGGcOcҿل{ UrvF{@{7_~G{{XZZ?@5ptv17פƶZgX\\Mxt7]vv)U G|G| Zsml^5$Ӊol^#V'8!*'';Ť-oXnWnCR|Ŝi0A:ݞtaa" %XrQE48xE,-.agoABO[ >ƣ>p||mىV!~ـbiFƓ1>+6gO1XYp9s<~]{p蠓9ӳYԭ˯^oq跲z~W1v?fß$!FU^@)L |SptPuNHƤ[}Y{OjDSmqxX1ecDskZ]s 5z^p{ƛޢ0ד _RAR,M @OHL2eV`l,ѹz3v+U/[QMH^4^*^QdŚgyjf~"}\+ 5eΟASc9ט u\i~1v"9P3TUKdnog-R/Q&RSd5 1\nmSPΪ5^1z5`p(46CPHɓ/`y|KH[4T Nlw) P?AQ:A4!bb%V9hHnc&P lh:TO7 :d@Pn:5V.- Ue+˫88>8OIoDFJ2>k뎐贚Mqݓɵ ^r`-h\#Hw9!=#/4ոXcF gF-yLp<5]UgmRedp9Wry*#ѹmSL+B1u"),R3Dgv88=ŋm&]9|O>B",ͣh`yyyp"-E1>G}7_MxKeb :߇ќoΣ?#&ym`yuJ!JS68:<KݺuKu)uo~}1'뛛|7_g x:B5 1׿5.^CLCRoO?>*a?`0Jq|rE<9=cᗿ%F>v{+/>sc%i6" |L qb%7w L͵yL zS7|י7 нl2&#TM94a)C%~_RBKJDcGo:UVEBaXce-PtlZRMM"dW8i+4+lO,3`ȰNVtZx~fșCM_MpPQIM88Sx^QZ A]Cd5N9yӌYF3u5eDr0rDZCCSCݢPmw>rd Bc Uɕh-QԨb֜PAprޑZi<%{G2i#ڱ^ B\#*rPϧ8Ỏe{;M @W 2%Fvf.&3D#q\hgHq%Cmj 1 s}<j QMģ1eQpȺo, [Jğ(2,|y͍4"J_K2Ӭ;!4N'1f=*7pgd& .I6e̜i,WcQXlrkL+ F6U䢹mqRDmmc3o.kj /cp|I\Xd=svμCr9IFRaȋJT}Ud7c<ڔ'j9S^^6֌rѤp\MĜ <'ը#8{ܑt&go3ɾٴ3MgVέ(͙O,y~& 'Z,3@n!V2݇RFFA>G@mgea\Psӗjq *cDu_hҁp8ĂdSN x"›js:ys&\2:KU :=^Y COOuateiu ј +xwM.@4..`:F8OcdҨ S5]i`+ 5P<)b&OhlLF#EZՖfC d\ YGG ^}%l=ffMucc6Γ[it~;?YҍkxK_vOmۿ%S4y]]?vb~p~*,hƫoX\mas2ۏI]ۚP| |,,n_h8fvã;?:`Bo+*)|wqnנ8wp`Rß{_dC^^*>J2܈r!UiGl `Lbj.a5Ҏ~'8Xv*BZ"[1Ne!6_cga$A`'{XYn70r݋G^65|Vcdqy~0#[]F^t%⨃.Ep} ' G.\qa.2-JDӌri⪔A)Je<D%3nn_0S8g n{C3ej(`p1Cf:Vwy\ Gը5 ~O%Oj[] \W֐:tڳ}V@řщciW=KZ6Q#Bn]|^skk^PͲ%rW¹DN/=QSU u5)ـH' ,7Z@ʺQX"ROו9=RO6ris*f9aU-JFy\IL5 G:W9/U즹mϝC^ӬI*]:4 G D#xr.5Z%-VmҸp3dL\rQиA da(K&tJ"5-P:Zjn$-W[Uiʍot&e}s,>[aMl>Cw(ѢrL ~dbw(S6ElΥVmZ2(X~G$ ih#DAabCC(LYHM2Y:͔H6dG)aLz iFMz@[l ɴ r)PI EA:{{hJiV4hE@h<ǹ }>D51B1 ]P |N2JKߨVWX`h+\V)D$AXiKqQUg^<̦֚ϻ$ rH)Dx57v!E;1O=ly+ㄧ\FVJ TQ,D',9~2*1rw<]S)MHQ6%kY–]HMOU'IY@w(%JAV=#2SȍzXZ^x4`ܕ],}u{<99t<\CwǣO(_GQǭoRϾ$~n~u: ;;zWM)Ӂi%H_LX$ɴ aYm4%6ٝ<9{_~pN gÐmnS/,aٕ{gc=Ο})Je\qo6.\BLطn~bc*׮۬KdZ3gP7Xq?y raׯ^׿uX'ꫯ># Nbܺq;=ox IDATKKV b_y$+8zqmg|=N-\q{lppo'2LL$r r&GaToV8y^z~^Jӓv`|6PMce#O69.Mn;\獻}^ n׭ŗWo]E ]B8PGn1܏1v.#>= i-y,R1ĉ̳u۪BiIB8x80tR ]W)dzN  NGd)C~D7z%UG >;Wr2L~EKX`+w{xe17e7RwN'N<…F75N #))/j@B"_H&j U3i1uQ+ۭ\|b꜔5aOc)? Hp7:ZTV)٣ c%bې|K0x$4 !qI 0)vh!ƠL/! ;,hZ!K|,Nն`aKVXufj+\C2#`}RlSyVG}IҬtaIp-[l@Ă$s@FzRWq8GkXZǏa>yýUC\8V;߹t {G򩧟2*" Ĺ%+?XtN:Elopsz.^x9jΞ=è$ۃٙ _Σn*o033>sh5p"H 趺]|{n1^xY_W|ޒ3tQXoqQd% Jq*iR¡cESϞny&^xE̢nŋ+1ܹ{.nS3S םp1\r5͛X[YŁhvpKK yđGq-NZ.ۇnNRc'ܥ(XdRmT‰tf汱7ԏ _{]i@\%9PRo-#J-i&`#k| C qMtUeh.39Z zѠ|-pwޑ N' Мݏt\PQ]+Q|`ءv\$vS,;Gc{ ݝz0ud|rYO֝0Vk\_gn )%BZT ff) d`g=, $sb IZ .Ci ;%J@GQ( i71Fy*N;VeSaU|)RǵBI_&Th*HgSxM> մ dO8ubo0(h-|pv[#6f#9c'O`meAXMk_%ҿ1h"}Oꪳo n7R!.NO&Wj w/\ !"&IX-&4FdCAi嫱2%L"vsw7RLؐ( Qz8EbX ȑEf=V9 &C݆R4E[$]JT8F}yoy^E{`ˢN,uI.qjN8ݺK e'$v^zԑZLVᩫ85;BhU4GȎ5I)]n|\U'<&Pdlj~)ʵbBGvvI`B0wcnK*ߕgЏ !$š#BQ&=ӓQJw7D~&߱^SkRB3TuN iBHxaQp׵Q jypw=DZ#u)AIjn>,-/2) nZAc%LU"'l_F;Hf0|9*jRN.{&2 Wז-d>f_S3 gYyVޤ#5ȠS.a73ڀ <5 s9$ƛ?+gOTS{)Wsw6ijazBy]d)L tw KE#ؠեnd2::&H6*yt3ɶ%ReDeBZrn62SH(7yLPb}9Uc񉜘TY sE 8Hs 4>66qi'Zv9> }L M "LS,(B"hްL{gT+yD%=/Ѯhs7]V7cv 5= [RP2Q-.ŋ<ȯ*pɧH>@ űܕ+(4",Y(!g0KF$L K5e]W8<=DA`)wZ=֖&ujjZ#kb@K^E~ ehp'$XưT&OPtpSD,DrP,ZlI1hU?`~&ٓ`]W-C M)`2:FtR=hP*#3ztM㘭3 >>v l۸re [=ޮck}1Q)!HzX_@@c۳ؘM:XZ~5@c-ō׀h AX[P,HFYRD PtE7a2mqŷhXL )&5k !/pRLx!^f;#^/HJ:ixϹkwcem'8ؾ)\S>s3OyP-W./RO .)Jvgل95&P.s/xCl̩Sxc6qyjb IK.uɆacc |{X^YfTC "qsmU4/`{?:{+˘/~w;KhEܾyap޼rAࠔ௯Tkwo߹3537 o>-X57czz66Ytgr'MT٤/Asg&ܐbiʜLL_ 2IT a:fJ JXZ =kx I̞"@"%.eG$a. I-1f s@+؏D>WR>w%ܸel'omx +?)4zO8__E?F0ݭ+.b'hxR<E J3Es!$T԰ƙj7ؿ-p`wpx-|cx IDAT7&ll`UBK 6K!VĆc#XYykԋba|O3U0zJ`Z*8;t8S4ʼ۪3|oEd'$3+%*B(2@l].eKz'<UuaR V˵ַu@=4+t\\ZtPC.bɪ S0 3 v7Si'"iҋ`$c(:1 'ƌr1"g re푼0?qaFฬ݌9Q"uć&AxP}~S٧ VkBk(gyl+DaݚK$e!@.`m M,Qcu0,)iyOdυ@Sv}M4aAK%_~Š9跳B _9%DsB[{'cWnIfvfEɜsRyP`2UTDR1EX}D9"!q"eB[ :v\; !N∊QxFA͔gnN "(, ӽn{L! \B w<`^,YB||%k '8)"ꁒ:iXr7m:0 0ϑL*A-7*p*&~eY5xUO%̀+*6vMrIo*ksWpRl9+#zNqXk䦹цD`RtD\ c'Wk[0h5n Y\cpWr(m:S &z"VƍEͻ@F 0V6Kb4[ͤC:@4Mb9!Hbro%p# FUm C"e+D^x&*M޲7V1[˗W4ъȳ P'u&~a"ԃXVU1x_GŹGuIXGYG`'a$X*KCZ6wv;yVڶK!q3"ZwnmjVѭ,mn.-bӠ2?#5} uB{w]ֽN+_ o{HUKppUZTHXdAQGPJ )Q %^ Q-T Y3OY}y~(JZAn'³Eb=o){wYt/gA&⯒2&%_4.nݼώLO!\^̫PGb-BGXdAVIvjzRLSJz:.^Rus1c-xwu6)-Rb3cjv|C\`勘$%lCባqU,,g^7S|?~dr[ D`wRS3^emb_|q?hvfgz[[2[KOM u?pW 'q llmg^D^{iX@kbrk,UX`^X6&â_fן;?~q,>i<49jwf &'fPT `gcsăTO;o EZZ+)vr †™(bk8|rK&2J^ y'\p %M|깶ʏ `$'bk{S oA$\A6u\+EUgpIV#m4v%]tylAPcVS97ny )AȢ:,ǓMYXYEN-X:{CW${ _@HUs 'LZI8*V|V ]7\U(DmFYK7iZRƆu4&@z/vo%K]g#CAt\ SPKǙ-]cV5u9n(|8znf%Dߊ7,ӂ1oyVDSqy |GXVpg? R2Sƕ΋#\Z5/KI?2'%n*DATTHPFf ,(o(qGaT,ppQR"CEwoa}cspb[JWָ agi666p,Z}c*X ]b¾9߷¿s]-,ܹp|:;raKCn[8w޸sO?N{ ;&`NJC4k*vli wf3Iԍ˅'}}k?vṹ}h[0UjuޔD6,:9z/_*on=)"ۘ|yܸy =wk@>ۥ0E}W w]w >zN_%daEꦐ[2F O=߂IL(yB hgrLsJֹJ(*&H0)8:h C:"b|+L*Vo5KSQ`bI.$)(+4cJ2[FLřѠVK}xZ;u61M24(dIZ"hPu6Sf*=) ҂b(OmbԘ'AkĂJUR &wwplS3:Z7S7x{)T}+Kڝmj%=d{9.#&t2gy+]q'U.()ESȚ(C3RNﱨɵ1_u $8oF׬[{&8XN.jOBeCp |S3YCXn* 5V/\Xz_/VuBŖ&pE<_Sx'm?|-V%ݻKܵ%ϋGr'ן1%.*ؿ;o]Z c_zE\|?Ncgbe'tlg+{ƍ&N9I/R@DW5~>r}1wWVVq-*| Vk΍ H;] af= ʨ`J |{obfvӳg?iSxED1"nXKwn {m$-ErwQ*N(Fw_NsmHe80^==qagown3ړkx Lbs~c'8']*Jkxܓ oZ6qt~Lj- UXI .HpI&l6SMzXHAգZ8;R(.)v%3'@<Zv]= 5KJ{Y- -\9JW?qu9͡b{Ϻ1wObP,C:-ymIET+D7>CDs eu򻏹x_$T;10bgęԤp&ҩW4w5!n,or2cTʪW(.q3! 5 az],!/x$l/;.mͣ>:Ub'+rBp*4S~"_| :՛u۰8nLnG&scS:p ^9 KxY6ȗ5I2Xo:h%DҜ(/.e% ~lկ_W! OF33X_Y/+&c#4f"B& L4I$&ťt@x9TGMᴶBRB#g_o;qhadHӏء#IHPuքw 3x] ӁCj_HN <_x%vx2sV*i(xJW iq*CeHjYXa /+#q Y(i"?aՀc%%A) bcQ﶑RrxR6xv`|ƍʞ|ˍ&_Mx>*?f$TBTe~GyR,Q)1S`%rJT<44up4zyo2ح{"Fk.ۭ79q=sREA |ߔ."Mz,&$ڨKAlmz݄aU,S(%4KJ>R˗/~.-/~MoXX8z.]/`jzo &&v9gR.`ayXX?/*fJ>CGq1\ymbjfǏN,)lב803Kl}xQ} 'љ۷'HVK7Di? Vֶ&7?ϐ}VB譯c8zm[qO\16|,7]AvGcȵqG8?݉QN`ien >YyUL#5?p[;(T8q19~>Z]^nݼP./ajjH{|#;ub. +4)|* Z L0Z } ¥FuI[61NT ViR2Pp\,Hk}sO8X䡵F4$1 L$K%]M_Q/e]PѢ5IUYն(I:9@PN=׌H"igGd2Otk|4:.c5v TWe ȓK/p;rRkR~%./tk%o.<巒@%?^̺,Ӡr,w(IV+f;*jrfbQwM/ \9buZċ-~P]ͺ35>4HĉT M*3\xqWDuQDYԒ9ICq['x$Kw>d%zFaIJ c,OX}&w6Zչg;-E;ȩ'bEV XL?bt[I`+f۾I <$O:8 byNi%L!)%Z=Gp{tafQ\eI(&oLig+&Y̢GClf12J$ 9e0&V'VVGmHL0):qhBmr~r*bM՝2v+Dkn2֗Z>B3uU#6+%a b)<ۛUNq>in~}&'l֟Flo &86MO.cgs" lnq o~ׯ^[[-޿[[|N…(:(Qш# SlR"Jpɩ)IEMURQF YӘ/•+wk̙%VJ4qK y]!Vɝ-[EWS_df"I ?\Kvɓw\̋HŁU"ÅY))CfMy?ֶP+ Tk $1+Z,{PbhAy%щ"h2o+:(_ks27. @b'9}{Sr JŔZmR*,Vy^b NTay)qoeϳ@\׎8uxJ(ڋ5̹adp1]\1& 6wYzw\sgœ-gW-۸Pg⅋,?΂|K5=˨jg~ ׮_n\eؿ#XsšX8T7D"Nb5^_]CfE4niG&g MX$E블&ɺpj8P\(Y)`ͬbtpb廻e$aqf v-9Y4.E4Fg uEY+1 ث.k2Qa<)99u^j|ǛNXw<\)|AJA@}%! mEJ3"u+[@tMCzqJ4>c-L%%rvIHGku_:)Wb`P).\tanV~"UtEeabuc%)HPHBx2+?"{8IC[Frݻ=㊢.Åsoj\@iw:KX۰(ER-y6'Gƍ7Y}ҕko/|K\ 97n!M:jOBD7ro| tL++K~2wIxzfׯ^V6HM<[XX;LMs»vCyITe<-6fZƽ:{A<;? ۺT5\yK*>YpɳX_[éS'?BoQ;K,aoщOۘ";HoI?2䮭a"pq\v1"fjE쬡ʓ3(Vjؿp.^a84VX[RV'Naj%z$12H0sIq )GM7}.$ q$Uj BBQN\xKv^Ra໔hek4_"׍L K)ҁqƃb"YI2/ l9^Q )N?9wwqBk emG!J¦@"Q.$ 'PQ/Ī*xqABw)o>9gJKPaB%,:)SGt#j{uOJ!EBkQZ0z67 J$RGPN2_jFcwIVCp3L O*Xw/j}T+UFkTގ6?I/ $`! i&Q.w98=֎A  ̵"; w}w*??*Uځ Dys}ԫ'xq˸k@ mҡVO,w|57Ell;V;$VNEcBrꗁ,S M@\^rP̂&? Kۿ=10cdɦ]sDiк:vv`]\?:4Ib~ YߏsD 2]5ÛwcL':>[/fИ0{w?tϘAۘ15~-wiG28 ,#2s9f/yk^tU~Lv R,H!c}Xuϸ88~>ithW9B$J3#fswWI"r2$&87;#d=E]XbB!}Օu uҐd=&O{_}rU/GDDj@df3 9|~$ f?xQa~  khٶת>8=[yv`hۋƎ9꽶0bܵ6,ycrg?qŘ6Mu7θf=0sh WdAV [% f~ G>oP;6o`ȎYrc3>8n.9;4NƯC0 S^$7cMGovcyT 3t{c<| dc=˹8$V; Ǐ #Ƀqyl;3vI ;isI1D[v*hbѸ*[ԉ1Ͻ&,l8.J61YWPqX~1/~\MBl|c]574Sv*qc\|f| pD}b=eL3xzifyќWpt\uCsq|fȾkݱ^cK.er__ſO< J߽s[m\kogO~-N`E-Ψ(z6w$vD0rJNj>WW ̘8^6X`N\rB0g3d Bӆ8@.!:pǙO S+F]6 c,G=ds]L8f/n~p7C \/)+ $|_or=;wyb?pC-xg?ٳkn|\3ghܘ1hm08^ə^; $FiFnP~#>q$|uB>2 \т𹎋hc¼q^|~FRp B/ag{~!یΊuSΡD/_@T;v)F#y'1E *J"VR\KO=- h`̠}~U,hȺr{ȯ& -lt͉??I-wtA} dx~6P _NyFcb䈲=O[$rCIgjjO<4+NNL2xdiyXB`ȩ _C7mx OGRӫ' &݁w?Qc$Wùu>m%-u[ cj7o4(2!F`?6h:gS@n>s>\zˍaHUFYut.1𚁿 o7rӿ~UepOu-L0pF6bjcyNҜ$x$ZĉyoQqq'>9x4IM\7[ف$ eU e{=guCmYՍ=*{wM#1ω_}ؘ :~`,1ޛ7v?I1+[T63J7t_Y?98GN"El7l`޼[r$:"Z$M41!͉ : =EGWb9 =ev^l#tm+F &8eX &g}d(ǎD ?Yi$*+>)G:BqIR"e+=k6 jxd &ԏ׿&f',+#`V,QΪ:"}.-dC s4H(ߍK'1,ټpw ޗ̝M6ur'7>jR*5^NxX}@'{ `ח&q|dL·Z;YzX<%uٞ"{`ݕ6(jR&ZcJ[w>:4@!I>r#7z_@~=[(;{ECC('0!RC[x?C_My!rɼWY~ l?ghhIvoF m`j`K>nvOOL5.k~[uc>7T{Or*s`rKP{܏;zyD~xfcG%?3K$c_aDK0@&,D񇿣C\}~j1z oK9Nҝm}h[ /HbR!6Rt{}nngo~֣ǎ'q7s3#ay+^;+?6?]W;05󛿉'Od^l_*oW&ff} L nR-'rFA/A1%o^aӵ"J,}dԻ q>Y5F~wqxI5, Ad*EM\ cfIx5l0?skC>ɅOUXOtБ`b;q,[FʽIg'_& ρLyZa@/G1-de!"5'I#ğ%Cs`Hjeu'*<6cvҜO`Ϋ wkE#1ٰcqx|9*?Of;xil0,Kn_PyyqK*ɋ;:r}"Oc1'ң[`!D1 FFN~}rr_#aI92OT ޅMirK?0C Hlasj,1 ֞섐qw79)aa`\ŕ0 H(AHL66L:}^@ϰ{o`2,A`lȀ 4g}ߩ4W7ԽUN:N2$Sz6ÝV% ^4p܈Y=]FlaYaDmhClxX IDAT~4# &Ϥrt/ (?4"bk8&-Ѥ]ą#z{_lTp|pYXV1EO*bDԂoI1彷@7ȋyRo5EWx\Y!u2b9HI-׭<2CG$L\}#z@4Ӛ% Y04i C3o4SudIk[31T+X w}صld:f&poIڜoީlBZD k#%zB ldiJO9Թmrqeu]41?4 1Z􃜮9Ies RQ*=>]EM_\ )>q&j Hv+dV#kamdr9MQK*9YG\Fere>+[{Qnڰ~l>+)w^֢Ţs 0~>rN%Lsbe35Pͭʚ(*V=/>|O]} G簦91505PiMeL,!,^IkKab׵IE9F8g\lۺ5F 7GqyhQjp*&Ăw>6P}-r/?Ob o:ְ*w|cYqz'"I199*n2 Ĥ߃\'>3&f,zh$O z[^pLY߄xJEMŴ !sI0 nX Q3ʃ_o :ofw7Lgˣx?Pʇ3&#<D߰ QMkYtKQEyF#F-̣WVWcv(^eEĭF S|1C).ɮM#..25 |̃H /Z^<Č<Dzx<'%s&dγ=J8VMTDH8}U;a4`ZZ PoH l,ApPux‰U<5_s7rS˖fNn[߭ỲK (s`5}Xޒ-FiK̍,˫iЕ(d++/s)dLQ|zkS3f+W 4Xm۝1eάuo8[^u*\>;5W{tdR oJrPt/8ڬ/_>~ɦv g<5rf{P؄F >z=S`{5+.Q6#V ^ڊ9Au Ī/L!)cHLmQ4G2FC[B!Ģ4閇lf"UKݚ2kw)WMR|E1oj<|CcQ C}hljR^5WXN*?\5<1DxDZdځ@}O(_r-~,Mb Լ͞)!;ۈ=;0`fH)7[D3=ގ{"DQ#Qh1mH(>,bE8UZ9jjzFdRn?ޑ6Xq⊳W:Y}+Hh>kzhаnjFn׈\cuXG5%=pG,#bU@fP Pk@"7-ðY{Ey6 J%.b$mLiÀS m]|ۺ@=#!Ht%cUf5QsL '3]'(ֶ6۷Sb޽/!A$cHD[{zT;id5B8:e*bѰ,+Y틚)k^:i=km3KoQc"{bg^ߦqp-#|#8nJw=v'Lv(.K:ew<=[{8H&.U& 쳻iO(k#\.%4:儹 E__vå *Yݫ^?K)Jv(EVkTv"x,%!Ek`:1IcRPVFq&RV=E")6d'O\^ KR$e0]&7m1˫^Ï~xoȰA2ВGC E~M}mEH Da7kRve}&>uh]xstE)# tSc%+U^c뮽ƫa b$hA$:M3ܞ8xN ڧhڈ(–ˀ*5,lxghXWP5!`}`#Ť<UѢYNhzLqt@"xڧyϬeo{i̋ ⁘^_k}*e4s< (ukԀ(X&|^ޘn7Ӗ1G9% ~< K(D]X,^Sa˕I[E JW"j)AGA/;?^A'gHiؓD((27c$dhw22He[<)\5^;;zy!:G9f"Tc fww[fu\e9*lgWa*=sX;9)EeɵB9~LTi58[%3̾y濺]@ _/k#3a38F;i\]= 7;}sZg!1x䖗\&ҜOí脧sjegV r kﬦeY~r6cqEh-:̊)&2 E\FRZK߈CSssFFgiԔZ{EKsHIE> #2Ny (`@Ѩ=~4757&Z 6f)@CrIFUj1X*'Ɔċhķ``(}wW~ɓ4qR< ~wJ[^mD]ȺHu1<Zp}8؂;qF|Ae'A簦J P6+ k9 D+W$9qFOgKyP,kd"C(GԵz[<|raȈ> yHb9s)cz>#dx!ܺ)K#iջ0m44$kk~KuM]8VQК2st%(d3"Ә.޴OQdۂ^}m  _X;Bd$:ضS jb½1ݦ(e4f"{|]<[NFc@O=$Y~IHRIQ]͏̹KERqe/3ę?ȥ'3hrH-iu=%SkXZ(ݥ(B9/M>mJ SY\xt5\T&Ow"pS]lɓO"3 Ϫ&T€RDqi`olniA2UJ_ISNݻ12843M*[O&L:UweŇ2I:۔ҪS L b,]hoJ{R'fŝd*:5nkE 5xW1!Wbb}qF[U5*4 uuGT,E<!"*R Lc$CWҚ{ j?4p,`$074! cZ769 >;%UWJ^eуٖ8GuPޘF+7*:Seknʹq忮N54 ^, chcP{ [Cnp~yw*Y"\\e,.B&f6w`}h]iӻG$¾D@9V)D2‹b8~2HΏ3M]Dd!Euv'GR~yR32X!SkRȊV3&O=rwe:R21^hnnmͿvig/&G[=Ɗ[,8%0kz)ZZ[+~"Kx#,N/cJJsTRJ˔LX6A)Vʳ+΍@*jf;Ub^8}E~I>u`4OYKOu6T.q& ¾nWkcFK. dx0Qɵ.ڧ٧Ks"vdCː#oKaϰeٮxF{zkd[Lh(cs`$2VLX83un*ljp܃~5h}/ⷭJF5w>|ygpLHL3aE)=`3nљP%$3Z)h Yq nqsNzEOFƄiS\Sa'kXfbkg/1ϳ| gp#۷)̤;XhuR,v準M>OykGk>&muoeJ򽀵_1N]4%AU4p(w%S^,jx \2ET-Z39fk,[D9*~%kM5Uwj+232 _)$׋H8XՖSɾY*Τ_YS8HEJ!R}Y_3}'Ѷ3U7Pi%BHad/d*vjG69-B! Wk l͸ g+hZAZH1g$4eY.#2@B 6&}ND!B!쩩MnWZ` !̦:aK; ;}i6xcqq,n B!%Mt BzFbnxmx"2/-;pZ BH>ر){Μ9mmm|~HM(\Bz3Ƃݮ_>XBɃx9\|Ůw2k֬!8HtM3gʴb1xя~χz ӦM;=\\qY`AIĚ7?`G8=HW&`k+o.i'+fٶ}9ڋ f㼳CG{K޿뼵i{عk?:㌓CkG"Q^y `yʑ8dq18\kK{#X.` bR,7^R*a|_ߞr 8}``*\A^f";V"{q)쮻GG}47\AZ W_}5|I5) DwpOaܙ1)eǞG,'e<:{2,Y8< vn{>;(ڳ7߹Cá~בN+ܳäVvv׋kǞǜpYǣزmGW1b!Qşw.BH) Gkw_/bX{vm鿝xg$y?M X<~Jx288L$w܁*]uU8WA87ݬK-C8!~??[<S<}L%/~r~DF{қ;{Gxsc6rj{!S#6ҾNVL(6oَ^×-HɛK/9/>Pէ=‘+bɢ٘2)pƷcܙ%}0`8 Q,Y{b 0JZ^}x7l2X?J c}j$oN=pFF"ѵ]c8¼93+ʅfQ޾A.ßށ'Y:[iR͘6Y -[P u IDATw=ǞO~ߧtn>kWC}ʏ<#V\t$:c"Rʺ\"\]庶xr, s!e]\k3*j{ r11SZ%8l^dx W"{UuoEljj 7ܠ|_W ~򓟔$/ChmN*| uj?1,lMIww*VR0B_>Y/}^5BH\"w0&OjMzzE0Nj+V"]6$ώBHePJY':"tYg+-lܰU{ 2~°ׯ|+ Ҳ!Q+P(}:S-cZ'*EfÆ ?涺Q%\^ Jy!$HD}pkI}(]uCܝ5ljكpHX!QoH^_JmiNJ_XAYV?tD@&9LGu>Nk.؀DmXyb Ќkש$He>t`݅pkxXvRϭٳSNU;xSJYFC<9r{w[Wk].DGiZeiAͥV"~p*e40`Sy@"/} wQG_|H#p-`ʕW{4J:e# f-ׯ\se8n kX{ C}F`1ul>Q-BbQ:-B@\;Wa˶x7q%9}Jbi7.|<!T u"܂.k>ڳsgOOX|K/K<)WݹsR\ŲZ-pgA.&r TԔY بJС.'xN2%kgYȚ7(wߍc9dϦuu~'HDJmKɈSԀ:^kh$ 8])M *!/[Fz:Cí׃#NiǙ''w9mjuW7KP_!ڢ.'.e6϶֦g_)c_ZVP8SNI7J9eu~ǔцRA8!A֭[H$ctOH;^X?s/TqZT lB)l}or$HһA(dwPkw`pX6,[յ_&A.HTID]7]Fϙ\$r>}}UsORV;(6j[ApBH8|ghulJ)DQ:#ez.k UBVI6V< B*1I$|*0gqlWj6:iOжm̹s3<ə &.)=m?)Bkƍ {k nÓ8bb}UY.?"'\ gYtsO5WuCXq"\xΉسaL܆s/F\OuXwAtNnAf׫_Y}jV_'X)זȎ_ԧ>8lMDܣRZHf*E[7\dq*N`dP^ns^?t`nO@t3CKp'Nsۡ=>7oj{饗pkI=sq]ǵ\, ϣwTVLW_i3E8;B+)kd^=;mڴg}G2>Voy[5>xKz{W1i2á0>u6/Nu;^K>u-t)-C{KHV;T"Oc\s Wkτ+ߞ~5xvzx ;7' e&Ⱦrk7x !ٸ`~OQO9.דǞ]q2؈l_zf`H¦G%.7v]sԓ)Wofa6|lsȺ! ~W5_3?v>B5cyC=R=T/Z9-tcK,܏wO5 Mi[hkG)'gm^JtS2] q;c:% 5VjG]Ȯ{7 Qw_EgO`}"\4m7 %VXݢ.ܬ=xv;; -3aK,,ۈVʺQgTd?PO+!Eĭa7G$د\s!Ⱦ:F -ѝyt YϿʰQ\&7Gnx>POJ]o+ȱl^C zbv}$3Z+nP 6:BH.jJy$D3g|hGuR,-)SI-Xг 1/C2>9aI_@}$,[)Ifqk[CP(4!d\q1c@ZGEIdE591lj[|WuMuX {ܒu'NCS0m+ce5gv"ꍽ4T cw~+ɳ__MƲ:dԪdsMK^6<][#<܎هX>+5c-vagL,F@mHY>nuR㬓P5qJf}  UX, T:8:&ӭdBol << #C@dlKyn-ѡ-%>J_]9fҤIy9Miշ+Q?|+:N/x.EŕRZ^ vLd444ইCWBlsS/jO=RL6nkϹ W<ٻHY`mEUԶ͘0ǗrzT/ʺeo9.b؈(aeAʹJQ؛*~$~A0z'&8ץ&Wnٲ-JlsU}]~QV(J:69/H$^_ wqM&|*eeM6a@ٝ S >\вt v>ߊFv$'uՒSu۠d).RVW[ٝhY'ޱcΝ\LE.W X)+ _6Uxw6\wH&eӦMk]+ UC]]݄v܄=*W 4![/bgp&HR]V9\A 2gGȿzDpdV| xv.?ms"1nNŖ`nNRE~Jy}^6ѲN98D]&3 |0J"J_6,?zf~\pRHE*&],2٩ dDUr,w&2RUۿ?R\' ˜>m/ɤ\o_}ڿX8׻!dppv>Q>F߰+CNo2:o5)|իd( $ٳGy޵Nq}2kEJUW,jSm65JW??V`lV*X)e#+y(5DZ4ɃѸL6ۍJj|^hsi(E+lk+!On[m]JiVVK}*)R7p@H1sI_z׮]8Ut}._fm/YsmlM>sxꩧpI'%9XbߥR/O>V\^F }%1Ѯnw>KSz'W}88ݨđ۰T^Ii`V{q% X9թNW7u8v6cXoR/Ҽ\Wg@2结*nޫV@MѕpW\qn|nQu&};\*_JklLi3!5!fʜ\L,@ nB4֎mB&lu&]lj@'{?[-4R"b YwGtk$֏6(G>X\Eqq0~Ẃ֩tkT=?WʍPkSjRy%eN>uF ;:UtmCYGH3Y^Jm(æ5U\kjS J_wu8cqe) n Xrmł<dsJ}X6T^>RnE&iR(:ȺSTz궿r8/j285Hbq9`…2) *1QJB%7Xk%oG.ߘ7],E&iR(:ˠWJU^ Fy<x衇^hPyJ!Cɓqcʕ{{{;QWWv\.wb*G]}Gr?gk*K>}5NjCW9RNNB)H9܆)TnJP(b޽Xf V^]Z "mB[a<*69cY3y}eYi}kY0UGbf*4)Y= |~LLe,]"Tj !B!T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !dɲ89!B*B!B*2NŕB!X޶m6I"mb:`X0v"FOw}Xepk>ε8P(`ǵ͒z)DWcŧ0iCKoζ2w܊x 3gHYb a#Klxu]7XGGϼ|%3fTLՌ/h䱷-C~|>nԋV& L axriϲK~0`կnͿ~_АNXIh0#0z |~p!#K6'"w}:;!BHPy%TD,w*B!yBBK )!BHJ!ciAusֿS%B)*RQJB!6L!eaP>B!*26le5emik+Q>{B!0!L:nB!d+!*T\ !B+! ӱ~y D!R T^ !dRZsFB!$OB)T0!BHPy%+トB!D+!N130!BHPy%+B%B!T^ l$k[|#B:BHIJH!6 w&V)[2YOݏJɗu !-u B%­bB%AYG) T^ ) 1Kx{˪W2dSXlPB 2~8-ȝB>c;!d"i.ȡ2k6# *!:>8!P !cMeⳮB nÄ[HۃFnx䄐rlnBPB */&y@BDn:}B2A86:PB+!!)ءY=5p#6uA啐)s B%b˅3%u@啐 VwrEm!*!$KBHFB!-(TB! *Pd ~k?B!\#*BB!lJ!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!JHy`\֒jm 71! d!oR.Iw|Rm!zC) i(dqd)`SzxDyb'y7xonn># ^uib蟻>}k4M3Vϕ%lh`!1GJHfh)?|*Gp~aQ%eL g2XoR i.+'==={Ob5Boo/Z[[1c Xz*>uhkkO4˽K ˘Td4RT(LLL'5Ni^hfvww\}`zI[u58 9υ.`*ab3USb}fcbT5zA21CU4"osy rgx 9W)'.XYk=01UGDn Lӌb1ꫮ w&ɖyMӼevij`%`b@7Msi}"y](Nr> 9b '13s'&H 6R<}|&W\/{r 'smؒSP{]wW1)!Y\G΁hÄsܻ{ndO?_xѢ=s(pooo[6`ڴiy^Z*c)O_r &M6<0{5gz3.h2scݺuJXhr;\ J :묳9nd))y5\mg|P-w,\z(:;;3dk~YƤfHݾUrY^\m]o"zCȸSWO䁐jlY=N@~i9sƌ:Ξjw2&%6檫VuX\?ȻތE΁*eJ{'J8+c*cX k1g =pܱ*k] s@YGPR{1OT6n̺vY~%cLe,+hV\8SP}/L tMjW΁₏)'پ}%APdts-]W2 *+-hjn+W*W|ڰ8SP}`> 7ԉaL9B T^ )rQnG?ʹvV_(9昔%"6mތ2&LYb/_W{b'Uèe]r76LHqP0*q ~c9kiiJFAe|%`ʕ*ITM,c2UeNb[jըs\5,F+zCq+!ae֬YyL:νk?@mPX2 .cYBYq7p.XdYeuR8SnX9B\JHqxKru2)A~_.hvX~%2v#%"2&O|饗6Jү+]&;<|bYsՐw;8V9B JHqCwꩧoyks-Ҟ _X~%2vC7 ˘39DÍei279jȻ !ù4M>'B g)===5sfe_Z?"ِ;.{$}LWIȫe~מݻ, yea͚52&% 6 +V|"h>Wy՛92FXJHqb{{_s+@ԩSU0:r~K?Oa^R*9^ u%jmCIl+XƤ4f"z3V9BHhy%x ]vK!#n\HZ'"\ӧO_$JJeя~T)6顇ƿg/˘Z^Yf,r7JRy%xn6|3)܂'++)^>lْj2&%m 7T!+SoyU(ZL 9ג'13s'&HU+$Z{4͋Lӌb1s9OkڵJXLՔXFXo#Qyebd YK~4ͨH[oŜ2iҨ'[S ˘3h SuinU5W_m654%e?_ܧ.tS ˘3eSJ)^Q\ Bsx ]]]]Ckk(O;4|fFV\5.g1&Xh`!:`aBj7Е> ZG^p,5 I5LF !WBH>,p`vX ˘Td4RTR9B!B!B!B!B!B!B!B!B!DXpkIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/settings.png000066400000000000000000002056361473342170300266710ustar00rootroot00000000000000PNG  IHDRjl pHYs+ IDATxu\[g{F@D]zk+*^[  Qv] [ly|?1sU7q B!T lll B$Te!B??B!r0B!BBH`#B*!R9!G!T?B!r0B!BBH`#B*!R9!G!T?B!r0B!BE]~ۆ~2~Rd{yy=E޽JOOvx<ȑ#ݻWmC?^G!%p iiio޼P@||<%VKK4?R@7jH>dɒ%KTZsСDTTTfG#BZGGG HII_9wDEE! ڱcR2`kdkR(333X`AKCBBj!JQ6o?uTwwO}vҤI[VZmF!TJ?JyJ P(1c(?͛7xC>z(33sԨQ؍!A5?H$Z~}}:>mڴ>}ܻwSN5JBHYu]vǏϙ3G~ߵk:Xx;B!_E"ѻwi ȁ>| /qqqaيf͚5k֬dXZںuEcSѯ%'' cd/ʄB!_ <|0^PAfaǯف,En??zRK!G.5;8gūXIIKN W'6BuA<|pݺuO>ݹsԩSUŋ-z… ǎ+MvM6}U|СCvٳ+W.Y D"ѷX?/_[CmѓmX9ssv m;q0@Ԍ[w|7=v',>X*Sn!B}UDgee/))ݻy@@۷o 7N__ƍʮ"ѣw C 4i\CV+**ӧ|=z09s <jP-aaq\'3+w޼R׎Yanf '/]$lj7} A`Cm!:--pU~Cijj꺹)gǏ?T*źx"CY͛70(߿N Pޢq' 9Ѣ$f|H~|`ֈzv`h'_/|U(s'2 BE5ʹ\.N!@---GGGrZٿW5ApKx W7_V&+ fW'EY&j<:N*q%Y9ENJ cj&Mϟ??cƌJUx,fϞy\[1T,,=vöC e1mV͔HR{k};KJy\'>qi\|RvN BHLO>}5) urr~U;**>z}} "9=w56sIsK , ۶D2M 5%0vxNjjl'{{^$%gtiDWW[{BuA]%zOCϴh~kw,NV3r۳9_d bLm)Qd?wB7:mџ2'pl Z5w4օ]g{ 7*)иO H`mZ5-K-M BuP]_##W ?.$ ݮ؄S}<;8j&h>,96._}=."죎B?@$&|tIBbᗚB=3= #BrS b xO&# #,`z=aLÚz0MVnB_2{ꃣ1D׃ Q/j\IXZv1"g~ / Bߣ4vΐs#:և nI%z5|$S3 >Þ{` ®H#FJ2 pIJP(T*FQ(,eƿuq!&$ɿ*s_O*Ov#mK (9A(( F?D"JnBTiT*htz (+a+2䕀&"Œ[/Rs( Yz`g,}bLz!JA0ev3 -Tx1 hC}: mag$| $f+q?PMH$!$$Im_g'HepgO+dOOj䃍ixyЩ> inְ2v4—[Buy(3 ɹPI{̀><}Q,D%s-b`3p=4.+q?PG!E̳NKA,2 $BXo|@A)'i\(ƾBjWNtkhOpJ,^&hLV 6{C0?0|!ޯb]&(+(+!My&`c߂@f!,n&`uZN!(쿭455&H>pbY4#P)pe]g@sa۟!/Fo[AA Ddsz ̿,>1$}PZ`}s. YNl'@!~5cccJ+NcP"-"7ZbX?UlRGN]y \Fz Pc?P/jVVVݺPM]w} sʽI뾻"UF|˚ {_N N)\ o̩Φ"o?>t|[wqK &^WPŦbV)+W -;gpc'//W$9~Qqï|=z}J#W U~[8d 8rj ߭3~SWGTy >!y{Vm^Buj 8iNv m^̬\.9xōlc‚;W,ߴKzF7 vP(jz.ݚ:q|$E[WNE%Yy$K>}zҬIC߯h/FO_>|s%w_)1e`if[Ըbeu4f [rNTN>US٘n^7W$,͏/wAagkad'/PW#BQҁy߯~'V:nAb~6NMKwFxWUǭP(\twН\t>y̬!+uu+lO^ܼ̓aOE]}FnE^aSCf+n]tu{܄Ĕ'<}k<=`C=s=pWg' 'Yd0*Rnvj6x M>xuxztdAƏ9yA={A5opjï[6Jx<&,r|ZfWBrbɶ3g3'BSarzSv ~"6{&9{7J2LJEe=s ztmXd>zo3,cgc)__P4oy09MPl-!R>DƕRӳEA:q(/ =t¾LHN:rh?rz:_I uol\R؉WKWJ =#[SS619;-<_|ܮ)F/ݼ_~}Y|-d)\Ƽsu'@VV_掍 gGdx6M#R ?EuP&.+|`Pv#!&fYǶ|Q̝G1bT]YV&ܮsl-r  eN`lofj$NtVf䄾Na!W> I)jlڤq f Z`llT~?66L#Smqq F=m29vf?_DHܒ_ܣHGWoة^c2lANݼ()-X{{kӟ`njIIB&377tsN[Xjc@9]ƴBjՊ7cvƠbJ p5Vv#~8n=ԮUDT&.)<6q•;6.P|iHT倵<>%8Y3K)(*UښAdf!/7sfٌO.]2nDozN  u=;PԴ't:]FA];rK`dDf'$d熍'`Îptn"1)%.1bY'$Ө\n\n黸wq)7EW-Pihwhח3oӫE3Wr>'|̃ۜl nO)J?q27r&K_RSV6lRS^9q]/ۺ(i쯱-IڴڷK>,>Kq3֐-6ܷuNH#=`/m-'n[ܭSo8ŔdFz6:zRl&̑@T*kӪiE?yV^k&RMx]5KH$.NV.[ٺJokm165[W(p@OՀ?WFkmQ-=bRѯ?iRTQY yp^mՌF>w}}ugXL3S+WbgM;1YLrG׶4 uS(T*e1WPSc˗h r}:=wjZ&yŞA]!6aΒ:j:Z6̻w-tLzm]hanB>%jkn\9Ź<45^!nP] @޼ywhZ%+ׇqo3WධMx` 'Vn)PA zshu-kgijMܜ+EUE0FõH-Ƨ ҁ`|SpSk=/,?s3%E{GEѼ|!,޹}}ըTiCGɈ#jބfwݗ2|PQtրƟZ{tkqI%V(t w Ǡ`F?Sg~y`rԑtHLJz::Zzz:0{Fn)tlU, ,Hyvc0%%<,-- tuh~O%?zb?&۴o/߷h\6[M]V&>~!e~ch(Mqu;{1rKkL2U3=诛1ҕa N)(,&no}C +g-Y+;h--LɚRp%RBظ^{ӁAYLfjjl>_p ff'$Y. ZoϛH։OR}[&%[3 |߳wg##}µȇ%#}jsYX>s̞:lzڣy&%g4vsضłGx4tvXn~lsK@KSKPtunYCۖ&ƆzW\:j_7R,Wsmڽ xЅ¢ WYq֤!GR) Դ̬<0ם8h}^µG% -2w IDAT,B0/ӣ}V&qPPQlK]CF(ANn K$,n͛6 +g|D{̳gDNZݾu-kfM !{۷iZ&'&8wGW[}ʙK]djb _Mݻf0;]uIhr^WS'_1Ly ];T&OfzL +|㧯t4]]S5'nވ{#`Ehת" uxBMt/G>k۪Gc9׷2Lˆ!}lei~s@a_>/~߬1Z50/+S1O}٫(@) ;iԥCKɑ}"2>Ė6/ilۚP}h. E>ؾޮ.!]y/*hl~>K~!]럼~ޝnݏ|޸QCw@RӍ uB.W/ 1wOέ5v`#~71oc;S"f:Y|MܾFݶ~^ą+̘չ;y ho܍܂^zz:d@I۱7ݗpp +g.^sڡuJCEZ0/iw[lmeVE5Njΰ=)!9hIxýzX٬,P B!'~|Xp̭cgnU1%靛W}{ ;zfl!ݺ@ 4{-J]xՠ=}t4MīMT\`,7VR§Y?!6ݶu3xuc{}RPnSCX޲8-EM;OlyE 4ij#A@lkp_C4ȡ7733hg9<vrKsr /QYYQ12Yc[-hmY7'܍WZlP5U녿UJ/=zj̻թw CrK=~uVvA^AT&clCd2c2S){閑>M5)c77r=}tQ17v<.4:Cv- \~o!TKSl}X#Cee={C XiGdž4lqxG;E~t:OȮi?}1[~ ֊.]>=#[_Ob3 ==5 '%$Գ斔.XmPN]:V\ /n729C~U@*Eƪ=x|'!m 1яSzDBW$R)'hT|8BUxP0RBBH`#B*!R9!Q~?yZ8/ر(9Fzu<ٴ?e2Y- !R.?t {nl[R=vQ BVEq]5y/-;Sa]6,ꃞ~P '/慟ϙ9e|4B跡ܼ跉ma]c!f5XȪ]IsӪ~m'7hl]{dϊy~}ͧe7wsnܶQv-߉ڽy~aaqZFԌN4!,dmi6j lpoul˷SҲgLZsɗtlŹ^EIԠ=/fUS"ؖ!/ʌ2 bbgmeԝGoacm>xߥ<䱞d儤4S*BRJRTrkz:wXY5tMMLM*j42ү}FUR֘!Tgy2㿑kq=$)ɠiL&Uݻ$Ǽ47y%WoK`v&_-H Je_PnI)?BߘӨ'gk"?~edWZoN٧smm,s"tMi{ix "h߆ ,`Њ%5!P' 031Lȶ壧2o; >@ԫ7~ Br*,WzaQqZVƕӛ5i(_ePWWuaI_$$;'! BBEeeeHtQ B8iѓj^ duAemex׶~KP(̼vo)!)!|YcC.IҢDFvSSc͛5śj7ru435~>>=3ApDvGZ_x6vsE!%SR_1 n]n_~B.gb]ikmAPK{SӲ$Rb{?qS_K߼8.1c`_ڕǿT*MF~`BO|!R%.횐M6"G-'.wҔdΎVzs $}lֳR_(dGO_կga+8DIKिx;pk/sذck@q _CC}!ϡ̋I4q¬L-)喔R*=|+;wtlbb7se9[KF>_wr9Q~`H֞G_O ,3ئqNv0ҧ z^>ܤ!RezFL&7qj=ͱ#459*V1/uul6=Z+Lnۘ|}wn]V&T73rofƊ :adO %ܴqO'9CW >ܹCb%.+FXn!G$`n$@ :dC\dBi41gܒnm `pť]ZΜ2DeeB#h4Z?hŒW}'{[[L&. ݗ<:~JL13Xd5nhhI`XG#nގ< (\խbb|m^9DNdf).R,0ة+>~G!Մ~I%"8w5"KL4bL_VMP$Zl|ؕ>Z[XY%p]t -W\<%3+L,  :̑@:_ gglc7/ӣ# :4~ E@ :ًjlVFf.X[Wh*F87!1ec o_Ew>nM28pD*7t.h}{u|"B* zFƮ;]}.eab:o{- 9M\0es7y'bpbma!am,v-&sS2sx<gdkjj89&&gg|s4 t+|Щ9["oSX,&Bw|rѕRӳE {z.89ѥ7> GK4XITVRFv_ !ѣC4:ŬxFVH,7c 4v2",brzDg@'rwmܜmE;D-)= ttf:A5f-,Ƚ]ة%+w/`oDV}=B|Z3R"xYHOӯw?L@Ha_ۧ~d  x|-3zk K|o=a]$!~aKm"K`gR170|L?}으V+a`MM4Jy{Ÿv zt{lzciH6Znpo)u! 8(DC'kx"H22]TF^{MۺPzH#=%Wϰ$L߾ʯp,1.ܕ|A٘`Y@(Atg7^R{[R>ٲPOW[7n=y?zJ]?{Q,ܼz9l_!{G6M[K;rg̖B[U@ztiS$;!1%5-K[Kf=xz~\}b17Go48jaIݜ:m`Q> =_g6cZEE\ p]ʸ]޷uaRr1ɀ={w62/c$F3P+B*_UMIfAvïrjz1NvW#}ɳ,Lnyl/J?%[[YnAQK!/8:;dkѨT6F}iSNn K$, m-po85AiYy`;{q=t-MB\$nBH`_>A)/3d]Ȭt*8hkjjUo=+жy~~L&+-HN͸qBPgjyE3Wt{#%kC hת" uxBMt/G>k۪I.dMT&!fzL ص]Z[ʀB*E1 谈؅wQ/~}d:,⻯*@#RiFVB5e'%395+=3gǞcsnp/M eӒSWT4wϕSAlL/rTٽb>ޢD"IIt ض~πN+ܺ!A]9D;Y^v]2w⠿!gC`Pai; +R$2?dJTMU .-tl&ȗ麺8{ΣGƮNIͲvdqrr tRcccf_R/TW R4.%K T& +mEN ;ݽK{=#[_Ob3 ==5P즗R[߾WF:3& %/ekvNniaZm_O՚2np};"9*Q0яSb DB ڏB t*ЪqBuV-?^G* t*_1BB!r0B!BBHԉNS!NO8L[[lcmaokiK@"WN.v0ƋZY85-S^@SSSR3B]7},B_㿨+Ks}9_Wb~PruKsiTjNnI˫T̝l+3+kF{@^~DujMvoQɰzQ1کu"B!T(9:rrzّ2}88¥)ʫ[00sr=q%<L,խ݇QT*U*[c&-5zʊ YК͇]ZW{B)©3rSTWWᔷGk/.^w!*:9+E~lC ڷ.,B#ڙ 5!P]•_^A=vУjl{[+Eg/! y]7S\4sꨙSG);x !TLB)+3dstӭ|s#3BNSf7ru>E& gvpbdfVԉu5 _(KB{z Sl_?mҕ|ʥ[44x6oc Zؖ!/ʌ56ɠ?|f@ߎ]ٝFZY'XTV x|3n0HA;whߣ"0/I?CNoYPZ$! qLv,"r긁_/|4e 3MXBq*YE'C ~ki"']_O[>k ׌&XSTVI"ofn,AN,_ܫ[3S# &aDX:\B3tu<{٫o ~%3ehQ1EԻ|nl_!/_ߢK_NEdIrrǯt'gT|S"II2wFv@NDSWW#~e?Sf fٹE9;hX,ш#%Du#z!?%ЛՈo/1 ltn2}5IH"//(SScJH/R];J{βWv`0d2>aE:{1rK>?@Sjj--u@8waM#Qhӵcһ9Eožz8~s7n[`t:s񯯯۽C+7}EP(fM\NVX\VlYLFOYX.519s$q J9K$Kx<<{J tuɧxY,|-M b1=sBN{"ƥ j0B*zہnNl*%Rݡ_&S~&A>jcҳ׳٬϶o?|Mow&@Zz&NR&]: RPGKD0c@%huuvvN'(@$&ik{iܺc?TʛwqɩL;ټC'w>' xĵA}L&[vWN J\`3.Uݻe>y~;ϸ(F’sQ$I1"Y9㡧bQ,9'TD`D$,aüO#CN' ]m54{vmF ?ǁ]\6*.Ҕ[T8_4g(7Yy+7&sfwv(ۘ@ݽ_Z)-;qqk#[g3H * ˦kiuvr3 (d2?$p˒wWo=&$%/+iawOLI,\'F"F>dodJ50`EIyUW1EܸW]۸p LI9SG76d放}_4^^CLy_Kia 9z p&OUE1$*.yjC'q/0.Osn/[h]Zrjg'O0YZFjs=gNYp|vq1ݶƕ DD ~MG_w7PqR"YWTXT֣VX.w|u]SeMcaqeai}X,Π Oddlwnmm qzvaT*{#Jk|NR)K|-vhɣ:2Ш>_`n +^{v=z;MGOpOtBJJ+\NL ,Ln݋>yL]C 1;QWSVWS65ѿޒ觽#=wqfiZ] QJF<{2v1Lt31w䚩~t;K-Ny{Ƿ57L[~/ƠN 6עYy9 kY%GNZsY^A CVn)={][D$(,*-dizy%d cK5ACАY$~`"cɗ+Q˻Zkw^2fZ8t@k*/+]\ſ>z&B޳uQ/3C0$tTSQsuo< $o|탸-Kp>sHbb *n`\G:؉hYR^a9۾|ai |H8L;|40lA Dń4>tNAk;/x"e$7z9 56F[<݆[吼tTsY/gcOʦ?}݆x[q,V9eyJ_(i@vn)ǫ13D?5>yؾD2`oS/%HcR3 =gŽH;{> ZZr2Lqybtc0ƎgJwDyP Q_]p'2HPW_Oܝ.n~aQ2yE,>etԉ yT*e`'{˹Ktt_y+g'sW߾7cx+BX{Q;cCn|ހe!q<,2.̚2o!aX+fW]Dήٹj!i)qMe.sNu4m}L'z R)\- + 3̌u6rO @7CT{0OGS-Wa[|RQ..WA;[ ;[ "v Gez^ye<INJ})YjJ8WV^ ?kDlj&Սo-eU݆0a01/_sauc>yb_11CD܇F,lhx8hDÙήʚƋ38$  {x^r'*F12c l^Wz-5k6ش4!ǏBRZ[@OGde }G%/7Es>N_\/ #g/ijn[9ѳ][}j}lzm?iڻuQp; ņxΓ^c`xiQA_VUQ4a@>yT#vR)ejF"]WRT$F% \Ô[ZN=im1aζ=* KODe^7/ 4G d29)5gAr?Gd0а5˹ޞLICǯHJi'$; J-VWS5b<hj6c3gݽL$!,@EO_QYZ?|d<q5UEN{SR T YGKM!H_zhIEN]%,_9/%%y* l߻զqݡ}:O=4tw\[נ`й<8 \͌uHQD R9L>|DRĸ4#)U=)z!D. ,9E:r?k09iI]]Mhd{yZףFtOdfN3XA^z:BGԘ̡]tjWڶ1h;}Ե o'ON}x%'8wggcqpw}ۜ#?R d$pe%jJV#ʔ|P|"mqg{@GG8w;((ъ8OAA"4w7Q~i ?ƾgk+|`p#VMͬnzy1 *jdzZw>@$,2 O1۳ZWGPOBBL KS7MIQn,ϲаn?cir~h8l+##lzefq8vc#!.@ᴟZ]njY :msL8kaYV # z={^c8>zJ5aن͟dJ9|UUUԸK?⧄ÅІT"S0Ж5pM){*Jrk8Q_T\vj$'?k3KHtuttܞ1y4Nx5}~%j8;@&@CC*J<ݤƸh*o3s ?P(J ݙmՔ,*W9DYJJΕnÃI EtKR60Rg'W\(Ŕ1<+3+uu4J'[O47֑I~ &.Sn,7x66t(+EdthTt_KK S¯B&{O׿.!kkD ~ίݢ=.spxij? H P0 g1,ğu FF +'AX5?B /@ ~9G @ ~9G OS111\.Gׯkkk؊`Ϟ=vǎhݻ-++ fX;@ ONNx=sss}}}[ZZv޽iii׳l??oݿիWvח|s@Z$]rӦMB7oޜ:uwÇ2^^^^^^$ TUUI$מ@ /ş0DMMEhOIIǏ5_l.++!,++9r#G'N~n:GG1cܼysǎ˗/wss:u={Fݻ]v/@ Oʟ?~IMMM]&--=zhQ /))X)));;;XXXx@ شiSvvӧ.]ᑓ$..>`999hnnMMͦ!׹-'TظqSCCCOkhh....lOOO|ٳgΚ5kŊ{]X^x ::zk֬߷o~PPOqq*Q H|>8?@ ѺOP%%%D=&&۾BƏ8JJJ8;wN__>|'N .muuuw;;G;Ĥ HHH8wAAA@Dᙁ#G|AT\\@ 466fggwtt?yK.͝;ىST* T*Bh4==}^zT]] ݼyP9m~a9!!!448ǔ/抉())]vէO033o@ 꿸5>~jkk_^UUPPP'. xbǵlvbbbbbb^^^mmmbb"_aaa8nǗE ۷oUUfOp)SSVV?~RQQf8NEE!YVVyyy&줪IxyΝ#G޻w:::\.1ill===?2@ ?;翊襵uDDrƍ˗/d2YX1qqq3o;wlccC "##zܹsm={ V< C@e&h7wWۢsc-#ƦGN\'8⧪H[[[9vYݫ(d2_?o5'^8|,LGS9(phV+;d :9Wo=mDJS7imBgf^|(׻Wl[(acc3&X&bb^h)s7=8t[IQR(dJD֪zG77$Ơ3m8YC^$et|מ@ {GO<ϯ_FF:q"_bbb{{akkk\\ر,#ZZZںۙLݦ+**Vr8RRRӉ;8;Ocuj0u z/E ~>#t+t55Zfܺ`Ħ|=JK]QZ:deeH$^YN)Ơ@zV>y=sXܳ$ׁ}lzQ'^^-/|e]H &6>&ހ}%O]Ď T0 ST+=gz| <ܿmjƻm{8XVQrcH{}ϐeq>P\\ jjm?GHUV92-ZkY Vv}}Nkܸ%S ul۾A;H3@NVcҜ *2-m UR,:=oQdžJ _{(O>ߨŅPߐ(,3EHro~Eq|+OWϮ#By0K.CV oG!p#IvK*}prp!ꤤ(Κk{T߀Mhk1#:M(eZkWĭOɐMDkK`sf36u=7SrF XN"ajrriy.D.'t{F=|QVQ3߻n%EyB{?a ))<_UEQB\Hd =]M!1`7Ŧs..uqb4 5eD&TJ{;mKJrͬV7.'"z;4ǁ]\6*.Ҕ[T8\qǞ- 4(dԉr/!пސKZJ^N]5|cN^jum4S\\8,\' g{u7os *--10b7+w; cW?vGNncc3V7(*@UM]uMQO,%8N2Jp燐30A;|Eu !6 @NV%B;It.`ӄόՃvC*2mWphGMq+FhޘD;nKHC3[\&)!:vlIE-D"Iѣ%ڻǟ@+ASoGV: T2x\H^<>$.p?T~tP+PzL qa$}uj6a yQ_U.}=u5tu4lNpfvoEr@sVl}u#V+D" '7Jj?{݇"zGĐ4rI'XG[we q/(NI]/x?f]wlt'Ԕg۲u , /[]`c,&mM`랳B߲D[{{Pw jP(NL&{hjn 2t ^Jz_4z˸Qc1Px\ā5pڻ__tj`P(8v'HHLZ IɏWZ/+#ĻJ1݇8i wgNk@)idl`D7H#~b"c}5kLJ:iMJwr|&F /B HJl,Ym~b^9 7HDbUE ֚k̝&Z:kwйJ1% GHQQnX8JCVZ^eby df]=qc~vS{c$xvCXu--\.[^NauǷ<}ymIo8ΎEe 6aެ }#uq/+y9e~A' 3r0|0w?~*KKMaϡ+D Id<x"ђ)o J-H(doU[ڏؑ1a@)̽UʻO]jV@KASb IǁÜH`~$%Z`` CeOd'45jj땕;Y޽ kAq0^GK0P;[~Ll|l=z&փG&}4la' G2rs_JCDPX\V~n[Eerr2'hhj tWEUen_B/ˀ؉C <`]$AJ{J"kRҲ˜:/c=v,(PA[KըL#T e'1Ԭ}~qb^P䂢R}m`\23;ar6Mrͻ6m?o`O{uiEeJC}I9qOdK7͞1^+mMGRhTju]і]Nܐ_P693< f4SbQ_{#8rmq$4Fu>^m-5K ] q #%[9]]<%y) 9 ÊKʵ4_?$*pDc|x\In sQ1W}qq9t,#H;68J!t#99%ɈM>Mk3wՅEeCZ[66*ɺ{-PzQܦ.y?M-8eզC,.xiY%kop9mmF I̟|sv\ie=XhOZYUw?g*:j= d /~ov6NWWҶDCR7..)om5C-^$V}׮Wuuݤq MJݼ79YƖ}!WΞ3s|}C1=pcy:P\\55adWT_N|n$FR?k.$c`>jܺn\.w麠6Y_?%d .6#j`-kJR8{{d \T_NVzS1;SK #S#= cE>DBɔK Kmiy9)b0vF9Y3777:L&v }q$_a>j+jΙлu|Bʝg MV ht:Ah sC+ c d\RVFL.fP(FZFi7.&LI MUcxO . To>x(/mBX?dL\QTRk9TqYGO_kljVVRa6FFFJxIӈ3;:Vo9 3shGG#ZG&}]mW{$$_|20Ul?I$H#ڑ?_ H$ 0(@ǥR١1L@h/V|9%O?@'+&F~W싹M>J"@@@ _@@ _@@ _@@ _!]׹-?@ ~uo~3:)9x<^KKkeUMN^Q|›k7MIJ)voٴwt9bˮ.nAan0J*7@@ ?}!Fry㦭hRSmtHot:|XH7yYhii4̵otzUu[fy»~wc0ed'8%@ ?_PK'g޵7n?CM[5 k;p**tEiktqnCƿijj0bY 6%+gl1_^lw_@=꿹jesj뛊uu4̌^yKz".݊yB8v QqW ;<׷_/j/}2Jf|ed&))/޺qџ@;G mذƺRe !)ڴIBB|yK|GM^~F-M5qX"`p?)FZ+6kmiad ѧ:H@Q1Kp(/~@-(7G{NLDN= K3T}=ܼ"2Ѩlvۘ+bvf/߅ZN\:Z( ; !!6kҰĤ=|qx~;' @ #qdzmi Pnln3b!;mDD2ߗxʚ^&4$$o^-סq9{hA1bY<[XGt4k=ւ41_@ S⊪W)O\71%{IooWd.&+# `1TIy/,M17Vmm髅RS(s誰D"n] qљ9ÍNh uTg/FD{FR&qҝ%kw/]3]VF]Vv=YVVz />M޿ݗp8h _7mhⲺ(KK3C@ e~ǻ(+#5]CcsֻE \3hcxѩ-V`2%[H$48[.\GOKĸ{je,]t71F^vo%/'#()RW$N^rרO@ WNڣB!KS*!.NQ;>8k0t.')N'z 7ɠuRL~Jăt58NTyB¢2=]Mظ{6£32!лnoA ?(1OS&,zn\#i@gk萐`@[q5e;ޤf (GBZ2;\;͝PE{<?$Oboཨ$|nԳ"95 .\Q1ϮED}6QnkXlߛ@ hnag?zvc./Bbbʫ>4\QQYSU]WQY<{y%CKʿɩG.T hW/ȲwB>kԥw[ W)9sgx%FzPGqlje> Nx<>'/^8N|>̅^j+w:Z[ND" 8FaZ@jzfw%' M@GGo:̍LtZ=N8qPL"Qnmmklnp=gbowQ&C IDATHKwXkyhw:m̰6 O͔vUX*q8mm/gm&C2s}>nO +-lllfLbXm#bz1j Rӳo{:p?s鶒L_@Rc_H3c8Y} .Ny-`nX3֭srYEČqs\.ףIf<|2l#1q\MUY4JH3ѣ҅'>d@ ~YNƩkdd2Q:*5Q&ǹnM?aҷRRLY< 0蒺2Yҭ<}(I9}GܹUxlZ kzp/:>Eyf"#3_[KG$5T3M@ hfq^!4)tͬkDLz| \\[(-tdL"<t݁;SJoŔWeWA0tU] J 8zZĽ?f(ܹĺǩjJ)*  !ǷN=~ٿmjƻK}I4d@ 2u° p+Zt?ңVW' s35OFw?[xXX到r}zQB!wqyjJ,xF8;Y[[vPsfM@Oiwܥp R3r$ r0&Rb1ylMm}[0tâU/G y$p;%Bg.G[ q:pd3#]]eUR<`LV!.?INt8>`+( aj`oka/_ƿ~ދmo?*r'C65V.̙1H"7zOhThna%~ 2 >~D"X/]K 5u-DSi vV/(9Yz#INώU[fs[<>,#3uz>K}7RX[1CVl r_FF?oT r /8uQC@OD~렾aIhEٲH)MH2yDwhljYpo%- %/a.>1'DGKAF).ƈOL.@ `0]E!z&Pt?gxgG+}9x+XjPݫBTz;߉NK u_Jp=fvvr AQAjkzb0.q5U%xO]Miga.vSv snVlwa*oM U?cpX1d+)p' -MUII"Ǻ}rPgVnP7ۑoD q0u_N&HwCldkcjۣyQiӷ+ o<g##<>a =e%J+)&SBD"!؇Bvd\L+9L "p_b 񫩭w|u]SeMcaqeai}X,Π Oddlw&y8 ;ȹi냅c#bxpڂ-DyǁKoz D74] G0g͹x-:4"vrbprp-U"Fm]f]}#acbLWW54yL:4 @[Cq<"`SLOOG%pWU>_0f0YBddnik G@ G Ywe q/(NI]/2q\~'&s[0(V+{TfZ8t@k*/+]\eklǍr|y<9ss-+UuĦ\K$wȹ8[]\Zү0K,w0ǟ)~x<@m_4ֽ8 rNm]͇@VZBIQܕȹ3{2Ғfsr:ٹeg/\0۫ X A~AIچ?!ŌϟD,gC:[{٘ 9ED!,"fo;JL4޶Jy[dކ&BBϙ;;yq/^i x\p}f VI`$ 0^'b']ORfOqrwøʚE= zzf=+8vfP /+ :zm\ܹ]N𲽽K)1eb7QC+kBxOici&qyNǻO"#@ZIlIeŭ$)>)̟9F hi7+3$j!ضn.Bna@| 5@)1Qofj펠Q̍4dff?֣;=(vttp㔕55Ttڣ'o ^zY*r1P\R^Ut>,&mM`랳 qe3%Ey !Bpb0sDSsPO7cUj#\ƍr>6*TWmqLFZܨNgaQ9SR^EYۏj3joY3p>;qO8Glji+G=(Z$X멫)yqǨA;jk=xm:ZQAp-"r9DJu?@ @t7Hw_E࣡B'N.Ҙڶwi)敓8]^TRq=@0dhwqQlm .NAP [ylEF6ٞpU3gΜً̜ #_e903;/r%'GS78jmUlbɤm<] sP(``W7Wﴧ q ɋW!dQ W"SmuVM69lͻO=6޲fVff&vFf-wiԺW/ݫbld}{Vk]£ޱ@;w1 ߕ#J?BE, \fͶkA]gHf(Ssjܕ-Cj@_ܼIaF~=t1O_SiQWgVF{:cP(WWT[8s8/ JsikbbDRSӲٱڭ'Y<{y#wvvԬ\V-B֭U-.!z2l@ܼr2;`itrL&Y9ybջo#c }ʹԌGO_]'FtȕC: bsU}]MyG573P`}$<95-#+G Wܺrr--L / 9Q_ۻ[?6g˺{kiqI"nJDR"WOYٹ榻ү}@UB Bz1LLNԦQuIAO|OV(U =-# %#37MРny|Nd54ԟxefd>k75gfjB \6kn^O_D<}Qj%rw_ عlN!lL2]Hg]]%O'2*FWBAo>_7 _7.l6kYwH5cҠg/CM>[4,(l}vԐniޞ.+7׫| s>_xː5&1&aM~^Nukܥ;~Z ͛37)U Ii}1xX"WgδajkD*7 BۭG{coWSMy6/Tdo?%W()ҹïyΠӚ4" ܸ+tټQE d=]ht;D[#=|W@.WJ2Gz0l?Y߭n:ߥ}csiTLbܠ }HNIS(2PR( =ܝ<o'C!iWn=qMNd@L_=eW+4i@$rcio7;kKc^zFNۖ(JZz] GwhEV D@Ǹ7:֭Hx f ڔ* K(Mz8X[@-`sd BTQX?ȩoߗN}3N qQĘ7o^~^zzܮ_h<-@N451$thb2ԑڑcR:kL[Hgtܯ^QĕJeFlb1SYtQVGO/ T*dl&ɤyPTcÐmhfCt||BJNn9NS_%zvI!A;5$R&{Ӽ>A-_/g$~+Hܻ͊r~Cwv#sظfP)̊ +KSa ?sYs_(N'G #8X[{cоm9g PEILLtppu7P$ɾb}mӏ5XqjvT**V_?I@\UT<ЏS(5##ъ ś _c?BbB!P!t0#BBBU:BJ?B!T`G!* !PYP9ù-B':B}=&3az\N@&Voۭcs'GiuDԣǎCՄf&Wy1g. .[??2?B?~u .rXN)6ԿwrSFFO.Gp˖M~ X JjȘ Kb0fX'gπ{T&+ɏ f0d w#B<ڴG.'$~x ddf/\ѦW6%w!0qzMҹ#j Ь׹#&1..!}tb5e2y{He3d26yUŎ5dRͲݥb!XtjBPJ n{f6j Ѕ@VVP$ *U\|Gm\.`"3|Pf9k%|8èɣ{mmFO]ubccԡc> ߹q>#%B t?~JO>[(s9,JE,LPVBxm@U3np3߽ wʱIq."݇>4x䵫7ąJ2-ve[JݭOvj B w퍱!N$$ %fwƕ3\L&w%?{Ӱ^_pXVnwCw9xִq}}1X."PS\3c#^BRok 1nu|݋HL Y|IS"+ E{?ejR)+h4`h34ЮHiJ~ )#2))TeV%F( Zzև7x{|YP|N&$ *74tsw8?{iw&=#{m=ǣTZXdM8{f5TQ0=#Gۏ"wL zuiE+w[G{y4hӮɣ{["swzh[aḷB0]3SE cfN۸A0VVfz\p955,ۺ8= յf&q¶u`-iռΠ ߫PWs~IC( ]ĂJK=GSpJ־E-7/R`h @cE; (KQ7zˉV&jo֯G/ t61%$6;c>{HBi g.ڮY޻iBeR)իk5>^n+M*~έg{MssF@_ I|2}i7uxKO(Y]& <ݜKQ:Qٔwz)oP(_]d ,BqRX(A IDATf{aBfM&Z]\tuMk䣊iVGV*U)^#T~Od3ܳ'_S5*$ne`I#UZ(:ǐ(@APi=.Ambծzuj])̅['<|suwg&qtHM`bhV@&krDj?oL'i/^Otڅck>DMIOl ,Mn<B">ޣ%r:iLb 2[=FD^^JTx J ? 5yG]D#^S'LL%^;ȳEuZ7<|ӵQv<ܝ]=yXNu7v1_A:Iw4o\#/),H$QTrZwnT.W=T[ZZ}m+BφU`uliT3jz-Jϳt7rng/J9U_:BL>7Mѵ)_Gt~%MDR9]f%$}bmA$ooܼ(g޼>h:ߕ[/ȅmhܸl&6I&w|$?T! oѭj =BM@s,I!o"#'$Bps{3 P 5a5BU_}Ǯ&$8ۗ},@4q{ RR32shҜ}6#7Xjۥm};i>#< J3ʍRsMG l!TI`G AC.3L8zv/Ӌ~:\Mk3-,LϜE]N_&U ǰXL_'z522@8÷f@aB*I+r6ճc=Gר;^z=gDR۶lԶe#H eg'!g* x,b,Jhwa&J^@W5E1?-=WPU7G.W<{\'';6Zv 'z,6)ITj5'-=ݎ\&ijmWܯsG־AM^ZSB0_>QU(P2(U=A-\& ۛ=|zwX:w8A69uѽj,JW@PDB2}ʑ|ܶdMI}ba5 iCBQbRP(S}IP2yCU6QD rt %I@QO!agH2;9h>+! k9lɤ oӷ1 Zˆnζ䲃}C; LL@_ϳ؎Vf^{&ܔWu;S/_$^I$BMLJTw,B$&&:88|"B%dmbX_c DԠTT ė(@K?AB`xPEc_P7jFF^@ l+.B&^ ʯB?BBU:BJ?B!T`G!* !P!t0#BNȗkzӗ8;ښtP*Ua0Ft@5\fiaWr䔴=Κ:s["Ot  2#3NBd29Hʩmm,'GRs_vSΜ2 ,VzFs9&.T[6odpuzIxH?r#Pet7l;|;ryUн}C&f1}AVt|-Byv 'BS@,Mk{*?ORU*\:a1Wcϒ=YmդƴY#B?hHK;bKMM`JpQc_Y,9idw ^G:j*9zcrv֦Fd0h_|(AIg.)B7 ^FZ]ml{\!8\ &7o~%WӇJɠR(r\xvԸ/3C!5]Gw->Vvn)AoR^=zX/ZMRyW(E+vҜOV(d"}署CԭM+&kX .XУ6+{K /hB ]d={ױmC#G/unߌFZE&YY?|ȠcۦdIO))Sb3==+58zNpUoOWrup.Z7R6aө/hKn`sv kο3@!t@<~yrC<3'2:inl{mrإVص~9k ksv-9rP7?'8;_S6nsO!SB!**JݪT|Rt @3/v?qLG;Kp9s'G+{^,Y33cA:>m>0OKHZqׁп'bPWJn*' t~g~r؞1v8zd r䔴gG[MoRF:+P*J j݇/ȧBT*cYR<[/g㦭;uH, EI!æP(j5AJT*>pt~6-8PtrlJ]61r`q76ݳ@9-|MOܻ o3 &Em[6pigk->wGb6߶O9?O),I5G_/JL;O#l7Ƙp2Q322t|:3nT_ [./_]۷ : As9lXR+sĠ_x#NزЁ]\?|qE LV̀߼~mhߴqm?;[krدg̬X"ȡT*c?B\.CRrT?mRSSY,@Z-lmmˮB c?PTfN s?i'N422vEJPT_DȰ2$)JZR5f ˫Xjj懞QםB|DRJb@- drP +HMˌ7a7y9CI 1){U}=4Zò4+՝N EbG* rW8FF_;Ǘ#Ozg{xB3IR ¬켸o=|b1,qSo|fJ%leabɇItqfMT) j)*?Ӭ$kVy{@BRZrjfrjzMl~U}=>|xGթ:c` ~/]X ֦>NnF<},H譖 ᵻ6*%UTvN\*W(n}iaf52D_Gw$>yv̧{2y?5T*GN^-+M 29πEp>Ce2gÞ4nPĘBT+[#5`4ԅ{jWrKNnaGL 5R?h\·=vps *c([KgwGɩG9We'F?zqݲic.oߪ!\ 3+P*`i_rYi`ooFFY\NM-+h'Ҡirbłq~j N_i,5"ȩ۶9yRi#>9Y̬<պb$#+\64ЋKHe0h%pADWi{I Q)!%#}vg#!]nyvӡobeħM5!9m]\WHez\!~NswuOLA6=_8~փ7dgQm?'1x'+揊KHy<|N[zmݽ B<{umzsRi6\צcB_ yyvU\FƐ[c,x6pG/~8;~jzZȩk4 ΙGV/p\m"8sB8vqC۞\SݳU:%F@P(Fy7t9iJ@(z$Wyy<#éZefO &\٨_Nͅ"E:u=]m=6l;B8|&ٙYw5u@jz;jB-{-=l==/@/ãQo<߰tSM <")@G :tؤU+捨bcA>oZZ$68 >/BVvޔy[vmB*2@,)bֱe~ٹy?~xbT*ƝcX>Qs=raƣ<'# *&b(@dݡw󷡡~ӳ==/ZC6=&mZ>)6.ψ@/X|X`bR|l|BrL|tvKQ} QT"Af7.D)K 3Kw 9ٔ1 Ԥa& kn~~M%\zȮ^⓳LMBb*J(62##K3fk>sFN.-s_a4+s&_ \턡i?Qy`af<{Revrtz/ZiW臘ęQŲlx+'$~3 ۴AР~jrĞ5{%$o:el̬\:>:e/nҪT:l'2fXw/W' | *&YTezi|J'>F}'+J'{K SMMLniaBX0sG'ߓ+S:730#_b愾7^ءw@~'nu8?H,ۮwaNplMVv.DOTZًJVqp-ګks&$0ijHM1&\CI|0orwRչ}S.V$u 6qɭW,(p_ q/Ѻn_zFJ>tơS7J ;N%$͘<,w)>13MkXx/'O ן ;IyBl ,73{G/fOS}_oW "*&E\(KIps"]zT.I؎&m90v^y[T*5uݩ`GJ7c8\(19mĠndaFf%ÊW ^|}~'#Nx5n^5=#7fMLֺSFzOHJsoX̅h:/&  ňg5MíhߍۏkVss'KRo郪{L|]R'G_7uz_լƥ•{L&e:W?=򗜾/R(UX򀭵?2 z{7+qߒ94 *6kєlذnPNn:`=sBMΌѾ\~*,sw0C@oSS'Um>Y9ylI 'zuX&׫]mϡMqsuTb2zfzYٹl6KTqY}\x{8jƥkb}8tsw4-{f92M2b<xd}y:tAr ]&Srr MY,Rⲋ ܝm5+4^ڿ#h4jV漡-]EHmSyB=i,@kj;xJp5AQhor(r ?0l/d?g~J-0q/|V[ҡ9bOFyc40۳rˣ(GZ}kOb篢dBX~%rM =7OHI ybTzϢS?Wn۴A-# >X3m`z.C`˖&n.Ep&܂,1621G-ؾtWo> p'"q^JJ efC<$&&:88|"B%dmbX_c @RJڳچ|vhGܝx{~NόM6X HR,?~y-GL`l_M+˥>nΟ2My,+;'`^GDyi q .NEw 9d+)꺵 }GP(qqǶM wc\KN rޱ37;׵S9z^^>m&#u2*2#3Eȿ""c eZ9F<[`ЍxQ>^ ^Gn/K _jP7D5/gAVvެ; &<:Z섐X,fS(5##?q9,99-ɏqZ?޾b~Qg Bj],Vug!Trj5x8!Tt Gҡ?R?GUzzzAT*]wCRQ_pIɟ˨6`\I\=qʮ}~KBfR;!JJm9 7͘ght* M䧮w7!\.FtTT*e2A:|c:B߉BP(:d2l6?ÿ &k@xab@p~ZXf\EBrT6`0X,y0 h4w~]b :Whc5ܧOrXūXş~ݚڎ߂JnMT*UWNÿ'lY3GS`.5{PiK ]EFBnok{:r޲]}Ǎ[%\Β5 eTnMTڛ[QC_!4B,#'. I Ύ R(zן4-}}ׯ_') LT*Me/z j_|߬yjRS5]~QRB9l6n=T'PrSTvL؁NP3ȯϰFq_|F0p%?^j5FU J{B~}JJݑN{;Mӷ&*K?BGyO=zY:)55}ߑ{,N}̜?BbK^mc!rry\| P 'onjT~(V~}Gêz9SB軔`0:9#ؠg_V=ӕ\)¬z5[h!׳T*~!P!t0#BBBU:BJ?B!T`G!* !P!t0#BBBU:BJ?B!T`G!* !P!t0rJRs"S<눨Kaw~`KWp pL;B?]@t1Nl=zbՌ Btڭ' -w\у;vآԃpzux#>de4_cS6NndZ@ ?*>%KڴlXNУ''YtJţgo (go?y!aʘJll $R[ f_;hƵy2 Ribl~ 7Mzۺ9l6BʣBiحuک+}ݨTЫ<ݝɳצ&`menmevaK@?DjhOg&&<(^|[6319أK, sSH|iҿF2x2A@Dd|.MIH?j!l,177 V-n I_ۅ}t"PWBoW)>Y./_{`+OqIO^Is6%s[WO|Z =>s`Nn^~_`gݔ5s$¶='[2Sm}:u L&k 3o{Z&:Bÿɨ[ջ&FrTMP2娟W ܝmb^y2aj}G̟lGUoIc( 6 m "JNIB4S"XT*O!)@VVn 4ӋE".UF/1A|O!~#]UX/IS_oƒ9&jbnf2{ʐcH =/g|s- l`KPȽ^GEW/ e/vb<|dREGy-Uhf&P`GU ?Z\~1~ l\>ҥ1h< C/%gFV6OJ I) Dgpz*ڲxr2n[ lwrzLfGcfba4w![2OR/`Nq;ħit01骇HWn'}MzkXjYĞ%^ K!6IQf$ճgd֥c/F8zKX4w*j\.Qiy!T\.gK ǏeѦj)Y+iпJH&@NnP$Ѩ9yn+MK9y-3md O?m ki_ By\~'K|k0ɬQ=2*cۦ߮B).YP ]٧G;غֽt+sR \%ժ[?RJ:կ4w} hTjfV7 R@_OPƝ6.Nv323@j]QT*U. }}!~3w ۳]m+0 u RaljZzV󏝽E SuΤ~!dkRm;1g+n_7cO2vS16W)~nDR&o7X)9/?yڍ+a!tH῀/xc:M^zPAY'C:b[p!<HJN[)l-TSuBRJLpwVզF2B$~U5 wwi Y9|J陹z!6uΤ~ W29wbIaFV&~ƇB?.Ovye_Ҷ=n}Fh{t%CS@NأRloeXh,3ok^؈BE⁽Ѯuo ~N\l{^pYd~~B!+ Fs:j/_z/*:MdTrX9ɎNzنÍԔ\1ZEW nU}=>~Ҕ^zpX`00Z_pɻ>=@ XL?O/7I`MƵTʚLԪ>M%,F=մY㿿B8l}ݦ`[ŊFK!G|h3"-]w7'79;_9eػ1Sm]nvrT6y:Ksh.y}6jaLrBU 33Hlwiܰiu\Ygnݍ"b*,(*kc-v+֊bXkkب JI77c+  sΜ9~`;g9c`a|Xl_ӆ)2PII1hÂ2Z1S}o㔝SsUUmii[rgoL@}gUVPPPZWeYCNbY$~X脄ᅱ}L٫cdY1q^~M~"bJ:wP}U?|yeS*@;r@  w?A;r@  w?A;rGe,J$Tʲn as!CU$%nH$|>_ rD"b?3D"*PbT[IRX\y#Cu|}VT ?UV]~}\\\-PvmbY666999jjjŲիGD+V2e,??ӧ} ?* ӧOw^Z1cJ&?~FIIٳgć9rdȑZZZDaD2aY1MMͯo3~a O?wM lm,ϭ񾰐'˲[POQ _!SX>v%=~ڨ~;wru.yࡣgH$8stfE,D o=<Y ;?3`Qnwe+^{$bҸA-cs&%({n̘1QQQkذ!)**d;w, ƥ|zIPZ엹ÛvIֵb cJzn^қw\k+s׾MN<>[VD$ bw֛͛a}:((ͭG!!nnΟ?~nݺ, #&a ?Z̝a<~D;W/`nm%>{Z8 lټfl׬Q"ZSGDc$"w An^= u>'6;˛XPDDJ\|׵wiھm "*ᄚPإS~xD4|>c8=*h촕̋BЫCoϟ/\ =xhY\.֯c[{];-*w~d[ e]̬qϟ?SN===8ƍP/<b}JBӢK|y +705MHN!*&qʩ~kv۶ӈ+wQnkY-_7oI7ڴn.}'Sǎ=o>&XΘ&y4w'/߭LDwݵxujq&6O^/TW2MM eۜkg./$.(Is].9+0ԦU W~ }:7h@YY 7ǏS4h2 v(ZejY,7~vnmIDYDT(*+vbRJv& ƚ^ʜc5Hu'e٬ߙljۺq[fDTdI1R2^}g'D4iNo݀xHDLVi|:ZOK42!BHYI}HL|1:#gr~rjk T2t'\kv\ڵlУk{e%ZJD3|5k٥CHlcm.nY9>O6Plܼ_.&XGe|%Ʃ3f.\ED...K,ٳ'Wrњ'Nܴi˗n ȕ5)F{3wQ(e+~G 2kC A.I$׋~Y5P@DV5^yotY>M(8rn6oT?/ :.yz;hR[߱f f.sv5 /מ8kvjZPRv{ŋjjj)))DdddTV-"RWW/KD...ȹ_K64y{ ѯ*^]]Z6.&*fmncc,#-l;&">0{D$ZB"޾|ѬQS&褤jok>zׄUEEYMMuP|>D6sgrg״ZPzF(܄:wQrn98?J "az%_[L\\jkk0B[/G}vDCI_S~`dMPRbXK,k<"z< np^ypWM5++s"/PRs>ganr⍝θ7zXPoʪ^i~v<@*]KCH*ض[<|@iٹSu5^+H i~DƏ*P|🔔Tn]n8p֭N2550`7i!0G0e/R_r'5nxdҜܼAkZ -=3p1 1qRb$*:VQQawߟ7*Z0%8Ce۶v&1 ջ[hQX"?r#ߩ)((fԹ?y羓4gmN^PW bդc$T}8ݻ7--MQQԔ[\:::ٲDjjj;wW-X`߶cPSh%A_aF6,o/VN/]esw_i}E~+>ٵ-gVN^N h۲sƯ#))*su5cbTT3 mpO ^͘Cm[T iqڝQNnlO6zv-&q5X3P]M5;[{/^n~߾Cr0lWCCcߴQcRZW񈆒~~oG+z셿F:'8iݬX?:6tGZZ'ǁ/Z4oZRR3 UϱO޼ps)i)Y<OEYAQQ X32*fņNjZꊊ9a^޺Jٷo~&-̌[o^3Qm[7T9+c6]\3-M֫MDj x*c--?ҲbzH$<~w92 qo~`x w?A;r@  w?#1oPmR kWc2# <^{&]ZWfjjdoO^iP̸XӗԶKr BmΒ&kM.1舯V#ʭ.Zb3~Ҫ)l;2ɻozFF7N📓Ԕq}u(ZP_s8{KئEݰGyEK6kdr[PqPYS}-Jf.9J:?y۶`^כNJTUHG[+v108>v.-#j?}%JGDSm`9{ ^??8zzvТY 7/5BWWKYI1,&&㦭Z`d7 TWC~1sm߸aee%ǯǏehGNDz:ӄ~z"}nc D4qto-  %H|ڽu%gjRRӳkQFFVdY[m⫣u',iD̐_eUT |@ llүGہ1 X,$%-µDz: ;m%*?Ȼw{ܢ7-wxb{PˮFg7gYk|ފ%Kgy\L""JYYI,}LI%"]O#RҲƽw-Mz{<}=@!CdgmzV^Gx5P>p%K ˲ܶ)iٲ66gYZ:wZhvYNn{32o/)٤IsA a{Ւ1W,*FeiڤXs ҨK6^=v%t55U?͙?Anyhnfl;7[B?77oC];XZ/m >_P0h܅FbE  ֆnܾ 6kR=NHLڹ}im{Gڟw;*` ]l :2fX2_VPWQV***KׯM+ɾ5,L8-l;]jۙwn1%5'7/7/觡6qlWeGEF< `klEd|BrvN ۪B_EEcJ3' /%K:yvy;_ј)ˉ]W+HJJQV\VMUe= ZF22{ޯw#^GO*[k_(eZ陝FHmy?$ff/^N][b6e3rvmkKD~/^Q1tj3 '%/]uO9{Ґ)7X[f;{$]/ 玬綏ҜcUƯڰoa6Oւܯ޿q)W^rw5_K- EbcUK&^:2NmŠ1b C{BgYv̹SU[JDVjJ9;ۭa +0)90zڲ #<]h޿us_|Bg RiM3]]#ѦbS*K e%H\4%V[Kܼ+to6_0~ź\y; grѩ wNhNWnN": ӥU?;FǮlҧjB%ʽC؄7D¨4j= 5klܸ#L'Բ hl:j$0]l|'VDd}]^;rYFyOЯ@( "-g)))6"w,^[W[mΔ+(miiNe Y ׽xW,i|~{PdAB~zv\ٿT6ý}Atr;>qҸAܮ2Tqy/8D_WPPPZbs] 7A q?w92 ~]{"ڰr,%&-** P'ՅRRӆ]h8,.&.9%հ-mi2WoM6Ͷ07y]=]2k|wuyKvr=hoj-;Wڴ8RicұdۺPDPy<&Ofeurc\͹yܬy R _$}hJH5+ ]ڿ(KaּYUՃ?98 ?pH._ KBienР{D=ik6:NEEr&"Td9FqŬ R*3T3gbsQ)%fOJg&c_EMw)(;ک(Y:E_Ol:)+=rKkݲE %~+e- Ռ|>%@=ÿw-nbt% %+3{Ն\Jv>-*[ Թ?wxCDyBR&Z<{b?ձs %7:GRF*fdFz{؅w]Wo-S}"rmעS. ^w虧/"uu>l[;WD"eg[UԇMAGlԠi*YXH }Ɂ}:9ֲ$"Mg6]玬wui3[Gg"j${ +0 I>DԶe_-%o"{ѣa~ jhҢ?È(#+WK*q_XXK }L*YvأMfN\~2rʼO+_MD=X%xu=|mԠ:y xyf h yy˶騻T^vV&FD4DŽ+BǔL3,?*Ba'jt+Y̸e ch٩'[1 ՞3yHu 1„1իeg=e/j]mcm1zH=wΫAU*[%W=7T%:H$6,͍Bm㣥vH$e &Qa^ q˦e^}]X\=:ZX(26vWRT04+YڟabDGӛO^QQVP/V,e/+/)yETosl671\lrAG|QrۅЋa[4,Y,? `ۑI}326zx u~ꜜݧ뫯v/G;7.t[6-=+,ZQ]%W 9K6tޡEɬ1z:{c3G]ɃGf/m_?`,~g/ aF ;Qۡ?}%JGDSm`9{ ^??8zzvТY 7/5BWWKYI1,&&㦭Z`d7 TWC~1sh؄MRR~JRtL<ڦJѱ Vfeܺfơ6G/߼7o`疍tut2l>@Dś6FkMCgNԴ6OD' ޼I/;(?&-#s$u59pF74IJDZDc'`JCқqFtr # Qm;^]M Rӳ$雨 hǞ㊊ 'Hx0[izSEWP Fzɉ)zد7@,{}"C ;m%*?ю85߯wg"-H$[eQ-ݜ}fy+LT*}).!>Eq/"bINnǔT"z4"%-{nm{pZ<ܤ7>>B/*ײq,,˲,RPP&*֭cke",{ҔlE'mmlϲt7j s# p":;%3iN1{!1 s|""Z47_eY¨ܒ&ND\ D/JHܹ4gPْzuk&u~rr Eb8?P$xNdُ+ZSR?;͌|m|+P- .M63go T/+vfe\CD[׫c©DWXe=}~]bGײIUl;O޹ǔԜܼܼ|nıO^0 9Z* 8z RiDqGᯃ!8w9c9`/7D1,˦g8@_^c\Q f&##;1#ŽOK_jcR6}MŦ8T?T{]Zwh&2<\[YZ͌445;ιҪD,iWm^թUCUEhʻN(*:vZw䲌 uՊ] ճh;M" IDATܭ6gYDGG[Zp JR,}Nz&TaADew]N+jBBo`6T!vEUUn(򮊸B*愈U0y! 8<YrB!@|r_P >/HR?6ax<^ C0Lv|3t w?A;r@  w?A;r@  w?A;P~X񏴴 Yʆ}>Y__Sg%ɩW=x-/ wʒ}^=~+%=~ye  Iso]۷TFMjײR8eY[iU+6nXa^*:ڽsAf+)%bɀ]SYGO/.4/ZV*hJ7,ᰁ݈̅bhŒ)榆!ndS4ݪ^?2 n^5^^™ uH_AQ(JL2e;w=pGִ3g2xn~AksJY)\vTۺ(9%q D16ly_x60X)CB*0cbYOM4 MMU%@IQX}ۖ(swX6ԫ],QG[ZѼ:(@ZzFA3(!C1%}eES-Vt;'ߑ0D0ׯ3EbX,UVR ;X,IJ %}hָoYUZVًי٥_WW,*c! }f,:kJjƇ_zrKoJs{D"Ezdh/"z$"ˑqYܪaiV ܹR۬a1[Y[s) >pM/DDMUVVZkKQ{,T CuꝈ*{/6iXG__WEYP_чSW.)ԳsO75̬kefr ؐo:,,KQFD4Y6n?~FC@cJ='Y;u۬5D4w=]w Ea3 cjbT._%\7;ESf-X[U3aZ@#5=~!>._#rmIIЫà_Gl ϻq>%&}<}f"x^9\GI,+=P$JRc#!LDD,ˮ v.]JdP)Z=r1pͬ/Y^~;Iɩ}{u&a>fҾ؁1vFС()Pu Cchgҍ\ ߃*n"D"QVR8u8QW>'(ӳskhoi ig5{vn]ӶFC2^#"DZ6{<%KIT)HAյ]s}'ej֩e<Ӎ6n?O bN*.N_QzzzBO <:yK5U,Fګ!?'nܾҪ©@5UW6fGvw/50bexMVMh=oޢk#oS2[7W(+((rbZ5s07ް-XG.=rѫS]]}}<lmĤWo6/Vb)[vlmf>{D78i>uχ=<6rN8y@[kȷqf23%Ĥ*J<x<U?T]vw]ׁ.-ZsԖ݂ v(?:?;yi륰&թmGD͛5s}gN_} <2wڵlh |WfuU;JF P0і߻P-a/6.^QA@W_Pp~R'&}|Nm[UU"ڲ`zNMQ'˲niJz:3feԶ-v˞UuJjzkxu|LI_ ^YW~ Z脄*5(;J?A;r@  w?AJ![{^RHUE*D"M_^R,_߅D"A?|7bcRT,[ *H$BF"DTvS@ΉbDy<0߻9? eRiEeұ,[(Ϡ@  w?A;rG@D޽XIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_HK/fig/sound.png000077500000000000000000001072621473342170300261600ustar00rootroot00000000000000PNG  IHDRF6D pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxutfn\H $V)^H"Ŋ/w-VxNp "m#!ޟsdvGf@<@ꪐ=!mvvv'Ŀ.**Jvd!BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !BH0=diIMM1iIԣТ}g~*Zm\k0RùY=QͲ ҿWHBm=.މDgH1=^ cgy-{ımy"B/v)m~ ~g-nWpOEdžT(K6|:QA$~Eм֧=>ȝt2糎kI>p-!';tw_$WDD"n}`DxDbIcw6Œ>ۯ#Fgl`z}r~2G)H Z-ZmwfΟU1~Ӏ-+F.b0*}e1= JuѝnpSa7]R#s98@>;kLrIѸS F*J-Gsc|uظL)DMH <¼I,o䌅;UwFSBȳs,ABHHA?1_nvpּs>T0F&Tbs;f#Do|4M,ӥ8&csn2#+NO Pp.=b6fG/^ *[2ϦP5_Ai% 4cDTw'b(囖sPJB*ƿccoh-6X[afe=h9j ocGOVKi  "({ vE1}zyN\Sn蛳 znJL*~ɺkU-GX[SSfCt6p6\OꕍLf2KwvHҾ؜n^Ln{ۧR?q}{TF音BBL:jT*՛Ty|̈epʑg9( ;(ȡyh#7>{[Ai.h7_ކ'E<2mmyyVmRS8omhv),AzN^RHy!ȐDͯRܺ=iv$cClq}vXt81țQ#߻Unq}JL?av>{ĭë@2$C> R0B7jU o:9 982G.&qz"#7TRp%׮*ĕؕlR k9#-Gf7À.#RH*** WWWiB*|FyB{䔩BH0 !BH0 !BH0 !BH0 !BH0 !BH0 !BH0UdiIMM1iIԣТ}g~*ZmF09t)D}xSf^&gd\-k j,>ǫ.ƽ0PkA_{ !agb昊`mAwxtY|p _tlHB.k7ċL"g_M;i/N+{hm gk7ncT='4SQzxuR bobWgژ+l\v\m a)xhWtiB1yޖ~-12ptd6f?c;ďc_1wE~ļm4`Ky.}eMfBwk3HJ fחoKhbIIID1sBBBfpSaw,S1=UTm MlL/hf 壻_a3UPD [W<$0rᄁ5` ;T竅м4U%E?0Ԙ,bM.|'Tm*'2xqBRh͕PB `eamĿy&va+\,-;A ppp 5hwڏh)VX%˖ G=DfMIϘ<^3@ՀNalcW)q68"gHz; O4^S T-!Eaa{ .oT rҕY1Eտ9rq:M~t\<]pxRmhտѐHq,[cK.6-=9\֝Γ=a̞T)AaHb rEM=.!V$HJM%z&xbz c3 G!$_oNO7sI&=LS=`*Y[ KICJz*.W9,ǽ#xXErFG‹)x!:Qpʍh+ӹv"vo7dANWP_OiF@E)|WB\)`m*LwJ{j הg{BF#_NZہ _>qPI( !kxP+!wо?#E/~Ωf/Ka°o8nYhLە~4ni*Gŕ sִW+iV5ƳIvlDW o+~˙<~3&_172||TH}I#ڭ)WȖG^Ւq2s3Fݯy>t7n0WDKܣl[6jPC]oǬ0RZQ2ӣR]_͡a蕸FBw5!K#ꌻ׷[XԯBh fƍ0J*i6` #: PM(:?cɢ>s (N۾u)h0_|FʬL+)ǚCOH=Oo-%es#7e$+!$"l8_pmn~tG/So[lmsLnXs%y;֖r3.xϕS4c(!QQg-?_B\, 92/ӥa !3Ϋ Eߺ#!Th >-QBeW6{smz.:tQEaۮiν̺-ew}B"q\y (JCB*Xf\0YhjvaT0~,{>>zgUwVuzlZ3ڜ*ï#mH2G5 ),̟΁q88/KW;~uL o+C!vISBCѭRyj6Y~;$bN0΁7cHHJ"))3*e!@_aJ:H>0ªL-J]7R:%ɜP >aU7`t}B6 gL;)CZT[ec,Ȯ7(Φo e?q~~' d>z,Д 5?O"9]?.|uc{m9GK{W% /R*QD`66Xaic=w[[54l-1:Cs$7tcldG:d ASHjֱtKE eط{/abvKmuZRZEXXz F*?۳50 t-QQQ@Hb_t4@@>BB F!`B F!`B F!`B F!`B F!`B F!`B ƿ![|z@%)!MDIYA4bL>}(feVV%w"^FB/dZA0tk۾ŭI/}Z=xa<}D+<]opܝa hqQ_o_x]=)Io_lwn­\:}lmHĂ$d + G G!$X³g 1"ghmR8.G6k^[S+M)U4g wJRhn~Zdk |< w'`.yuf90yp]r%#SiW3nOe*77fb[z6DP媜UBV&'$ꕪI hD馋9Pr\9s 2#rl/EyE|u>&5EZdZ-ZgK۷?N.}݊+߼uZK~6Geg; 6a".t(gSaJj_ڸ)Tn1l#]<<0.Wn&GGace?/{v8)<ލGn0{ט[OFBMb8=\ * |m V}YƠv`psM/qi>/ mjM%&UJcWļ]~<9f2`Z)'I71qvCuV^Xgb}6/cS:|H4=DŽ*=éz Yk+9u\y]&_T&\O(1*=pƖ>V|ӆo{~|;|ӑrY'8T=<} 1f<_bݲ@U`YKv_,q&oRFu@yntSoWv0uҞr=g5A>XfR(hFXP=U ?R!/iFiJ#1)|ιG<{*Xɪ)go!=T{p p(Uf1LܵCJZ.*”E%Bwy*)CF#*3.Cwš5̖x:tD_CסDܢT ֔g70])zY`,&ۄ"s[>No&;G4ʷnp4FU&hU;3xCgviv/'V M'H%#u"8c5U'FTçRV%lYW2S"3%ٛ| z'&Z Xbx) hLPaaaT oҊx^<5 XjP)֫rrԚ)l 9qM)zeNLiWl¬_[؊: OׯlmGoplp%ll~%(԰"OK!R 9 ),ko_fR7L= CJSiAIgQ .'d}'<#,%Ce !ud̮J$kNv@,+GǺ3҉ 5iwv2O`6#Y֧;;<u d LݛodedO!]!)ᡄQ)fuFx,~_rbZJ^Ez+х~afsLGJ*b~k8|.AL4EU.^LZfP|&j\Rf~}yPbTO[q^zM1א%gyqP !QՍпWsϻ9CL1'27B6B }i ЬB- K{{#Cq([͵Y/<B.DKUp>b@LpD@ijHK&!wT %k;,o\/$`y|5C!$BQ!$BQ!$BQ!1'ĿNo "VNNN'Ŀ.**JvQ!$BQ!$BQ!$BdH#: ?~3= G?_Q=f+(NWn1L'^Bǃu]i*ZiBH0q (S̛Jlc2﹫M !B)\_5SgDُ_3pM z^Zy=8u9a$Υ`XBH0+[N $`j3O.?Mqk6]ؑ?SMKjOx釘=/5Tt&7 #l{ `PnY[TyLإaT0k̢=ٜ2[/;W&_<*9Ok@xg#odg%FʞI^o͛Ƨ5( ;#u_0"5ZmJC"t#hwʚְG1[BH0hRx 6ێcNxj@ HƐnt9 жFI #X8c[p`_o"f~F,FԪ,xϩQ ;DKX]IԷ՘I+B_ήOc1{u5.v4s2sMLoc.-'՜1hb]0L>XmCI; *p`TU,߬:U_(Izi$BH0 bܥ|5ΟZ3޳~aQL\G+'6ƗKi-˯aW2,c7\K8giZ(mD >l?!zi )\]ЊIݧTֆ*4su¼2f*0+i]}zVd:l'9&6fXFdwG3<˥BH0+hcvQQ(bK慍c+g *j0 %8QC/ԋ] G٪ cbcL@rZڭ:J;t<܋[jnGJ~yIh,-0BRkc^ϺېBdLC$/^PFU%hҡ(WL24{X:v%pq׶ ֝FmPJ 踷-'޿iN~)GU*-}u<\ߚRERhQzPlyEKqc+:ƨ166HFJ*ccT*\oR<؂uèwyU`ؾ`".7e`(J(  3-3$svbya|4!eU'N0 <=0 SVq7ݜHipI?ևFn&bFQQQʕB*?OEQjYS-`聗$&FsoWTu/>64V-768ZW]cǠjIΟ~Վ%ZS[blY.}eMͮ1HvŦV%55xbZ`^\n1mQ xS A} k47l5Տ;}W:i\BH0) W$:v8}7J \ۄ6o#Qg0"ٽ,1J#S^^'0!CZ"Q<?\yNdl,1Ϲs9g$"#uu2./B5H BoFy0Wu+OX&ɹp6g:6MxWI&<|_aj/jzxMnNlLz{Ƽvp/Փm^*Uĭ9~XN[k(F!>u@Yv6;ng^48ޏիFS>`] *4OPb9J{ƲXdݗU\(qXV Uf\9u{7 @^Kss4T󩟽JLd3~>LzЯB_(*T(Pv=X٠ _QbW3;JSP ^X5g^-fhAL?L*q3',|E",,`gg/oF&ƨ_'<ϓPBH0 !BH0 !BH0 !BH0 !B F!`B F!`B F!]f&aT ّaZ`DL ,@d#90Uerһ:9mUڲq~T.j!/0ル-Kh9 ZIV6 n$szsR}an޼Ξ q麄7o12؟y䋁\>‘K &z9r#0g]OߗXf{` Z6{Js/jʲ+88ObSc$D6kR1Qm)+4 k=cwS ;?K8LʜUQf|Ӆ3CF)i$BH0T.׬)NCPLDXdz8ڛ67r/OGXE%MN'!ӄx!bz k e 2FM# {w_ %㟗Nԭ\BMs#_1~6Ӝ0ʏ7S`bΣ?r>"G\&paqx-uN`B&D"y~~Xb"scr>~ID+G>bd 1!\^܅&Xk&_ĴvoaD|}/ >/[^ {NJc :x)Vx̹;Y㢾&K4xSm(^Ǟ1]1Kd[Jc1qk΄SZ?J{'K|(!DGAbD TpJi^[S>uW!Ktvbe^<ུvYy'S]݃곗ep cJC:ëOhG~ٯ{*>i$$$͛s1<==&>Hy`0,=;QF"_r><>e )&3)LUNeS[cV`?(w ݋d߄@Zp>/q}R+ӽ'֩Egk~-3 ~g4#gvSYiO{+-^,ቃQm޼ӧsYd0,!c޼KUёuXُ]y7%l-i@c wcLm5f<9֓$P`SNORU*B)Cb#Rהm<4[E;U*0s.I9 ?M.P,'tӧ۶mCR)'I71qvCuV^Xgg c} ؔ5s+R<$$M:1fj uNǤdBHY84bcfACI2<-88KE2zh!⃒7J]2/_xNnD_0~Jo AYk6|T*GQ?r+:A^wsp3pqa(x3 ,RАʽs LQ U+SZ`ll̴iӘ1c111CTB_ҌF (bFlcFS]ϝsW}yrU>aUɃ7ƐFQ~=P8cN?8*z&ZM!%-x: LƱhZ + FI\\1*3x X+s6y82=WkZ|||5k1l!>Ȋј"s>&5Α"mRɓ`MDYg oށ&Y!NV H'H%# *4D1|o݅&539jm) |9ݧ?FբM:.1ճ%3rH W. ۷ !)p/Ia[㟇s 4F(M̰@cyIO j2IԠRdWNq3 5SK CNuqR蹻j5jU ?brj5b9H4p?0sx/Z;wxb ƿZ8[Q+\ [+[~}7_BGqVi)$[1U!U#rP9X9%FsR"SoԡwcFnÀΌkFCf2Oop ,JצKC,fueT bرF#0!Wud̮J$kNB 76ԯ뺣H'2$֤̂ɤ>e.V4gY~xBnp6~[mpH'fb5ge[bf#Q4'ҺB!j-H)XvN t-fX.btwwӸȧK|:pG|3a?c<ɉUkQ^O+zͮDp`N 1)mo[/|EӘh ;3i|>+뀲lvhpW|_拐`BQQrZ!`B F!`B F!`B F!`B F!`B F!`B F!`B ƿY}D㸷k;戀{h}iX_t%1h0&AhSܾʙCشb.S-dm>cD\>Ʊj,iWBH0e\0!7U`;ΡYcPccDI|IXXaaa y=xf^hR^˃H4{ؔOGLx};Wv LyGG"Cr' 6㼴1Sl?V6-Osi}M1٩??]Os5%[}NF8 <nyŇ}fR{d3+WU\VĥI~uᕏWq-;1~ -Ғ%jj<O_v&߾trǔ;V\jPnnnҾ}{&$xgS0+ē 38z-L\8m]o HJ9kP՟pnG7#<*K[e3 Y78(Ke6kϰXЩ1_|vq4cQ_'z26EQRKU9*V.p$.]иqc IEb-ۥ7HȊ_yzh=~s=jքy /b1st)ӠY 66Xc4+LTբi(noFZuDQ+V_|AbwmUE\+ IR%pKBB)$u陔`(Q:wreq7,A`!]*D|ސͣI职#)c+mV۵o~>5'Wo83۔>-}0zzUHYs{"/^o1p4g>ŒٹQf4gY7a3m4f̘ALL|ć~B6;yP8lS #21=aX|C{}0ΎB@21yƳ=MkLlPY]^>[S<s4ؘkv1 .tFS4RYI6wbTכ0qjB)i aiZ|||5k2؛aϝ'et_OhE4/`^\eY;gtmyVNV H'H%# *4D1|o݅&5}||o߾)O}WբM:d\ es|,K lٞg0x#aB#\|om׶b7?MnJ7_QSd֯nM |/u]<-KX+ےږ? 5HA%RHTcC?FBrr K.Ţ6 ϟώ;h4 z '.mh&LJ j^ 3}4.XKAQi]f3l&%x3|ڔ'lb%Rrt>#Ȑ2 Zvg'>y fOX9Ҝe}{ ttwwӸȧK|W2bv\35L0sy"2oegGkO;0ySs,?8VYtz7* co+UXn —KNZrzZЫHov%|so vHi[%_̏|×>t`FU`Ad",,̐'9`jwe B֌P]S܁>.$=OzғOL"99L#cT*UdJBC 4t`w)kq>j![;wV7JY Ԣ-1)-7"?ű~prA#wMpuu%$`yܨV!$BQ!$BQ!$BQ!$BQ!$BQ!$BQ!$B_M|f9]è{=KľiS$MB5u"kvhJo82Oae|ةatLwsssחsYeNEdLSKh唫5hy lfTV*34f.kEg[ |28iA#a#?fm6߶e!]axw)uNka}C0N1_LI`o*[g}~2]TB~ðeqW0=Aq4U3|}}IHHWvH&6!ހ!*Pu<>AcQ{F4wR5;K[؏/bܩ!)W-  y~#uz|T J_N ෴1E^714d\ES,!4|~|3δ!{;Ѫ%ϋu:Lۈw'R5 3c]%-nr I0Z->>>̚5 WH0 =paI+BGvT> Q !gI/[+]-cmHaE[Yu5cr%l~NWE߾}egN\'q]g aff96U~oʻ@O|=d ]>s4Fk OB6kJyvR)߁,Z;wxbB*?udP?oj}SF`1w:/h>-FYd-j#.С+i_Π9!W1|Μ9F"b2 >klIFv>gúYeZB7;\KxpЛF??ݝӧO";CHg1gz]T,:6Հ,]4Mځ.ǹY+9ݙN'De' ?]ŀ8kIډIؕ[KЧ'?ql@% u#sgtxvO0UϫbbbP*doN{|`v(򂨨(9I+?.B F!`B F!`B F!g=ſ+Ln#bB F!`B F!`B F!`Wp2XE+y&P7u+OĿ]2y׌<>k2k>kg~ڛeooay![Od$䆓y_2-Բ٦VC*04 Br&} l *TF#;zmޫp_ KYR^{2 CpTkh&l#vƒLxx~Fw GaogоiP hBp4'eݳ❌+aM~ܧq>4/ffٕe gg5$GZbkG ſoߞ+^3ArwЋ7oAkлSD u'pC8[`W4ۦ;P~hml0$γٟƻٮzNG$Pc!?$2s;~ۈT>*mBs (>'Z9y %v]tӇm۶PCy"Myd$upq/5@]FjuH#C1ϑn0#zfݬ>Ӊ'SH{g)*|Nt. \Wر/ufVg>qwEF=(cO`mh}@ҙ T,mK-eV0$$@]_ȴ؛(`Q{p0 5`W00'P4t+8& 埒lOXv ?J]]\iط}C~Շ`ςXkVK3m44h@ql&J- }^݄2+|?|p|؃W]4{pUNs!c ˚F(`R| ܠq_ٽ2ĝ`\xmLwOLA,?ftq翯"c^h0k֬ur8C2 _s2s=aA^8`P n .DK;,m_V2UT`bO&"$4>esp{ϩ(NJ 3fٿT1|^ PXB"qOATMQH)CBPk&,;c2֒/ EƘWR1-Ν;8qw\ŘWϺ?0c( [S&08P`'\x2aêC5ĵ(;g$f`^\ 2BMAAA̟?3gΠh>`{=s9X06fƗcp  Pi48^$|$=S.=eVAwctӕ(MP9y˸nCZ.AmB\swwӸk^Kp|Q06~ϳnYN|zB`w7m[si8yM^K"jzȪ6 N]l(Ȑly}ڼ vh*HO%%%dHJJ4MAQQQybLM!(phR Jā.{b4 bg sl>gp6kaI]8*SA\c%w蠟 I>YŌMnpa/K+s0(IH(ayB*Ƽ̀NGau242XN*F!JeJc ?#pB F!`B F!`B F!hGɍ ſ+&FQ!$BQ!$BQ!$B_dH|S,7- ƀ39:JۅWYQ5/4$1s9f:Czٗ<{$-&[u'gr@w^GԲa߷OBp8&XZ`"Uw.&&&ܨVO߰ǤU5m7(1{~Eտ/)vyFv \K~u)tRm}Ί/yJ@Kؚd=ڝ5Q i7oαc.{rl܏ ԅO]+c0P\m>3H ijDfHHO#3*0%Fj[4rp?<j "1`b_Bx7:3Fb=.VWeӵ:i-777|}}i߾=gϞ|F8BI_ӍO)Q5 ١@q}ɱ##+p48:YI*@OnrsG9^/b;]iC<лpeHzn_GFCk904J ZI=| Qݣ!89_R1CNPP۶mC)ҙgS8Q`[D)[)g+a6 anqX׻ .I0v k<ʗ`:oxTFE ŗFx8^}fܯUFQh___FAlҫ;{ᷟ?6BA+*:e.pv 349*iR;c艾> n0]#[SRibc΁ٙM`D&n1x4s'3m44h@?)\4?8^%9 fJ;`TgJflВ9jS)?v71=瑤:ۛf5;G!d c@rZڭ:J;t<܋[jnGJ?tb|K L%#vZf͚ AҥYj6_\Ǝ+ΰo z SU }YJ0~H0OY5=;?ԟ}G[ =O;O"lN7۷/^Jem}f ^ݕ֓`aH#6 Ԣ9='z.pp'[Ѓu./_  LDElErR Es/`CƉA3WV<6)ǒ:R횲S\O_>O12;Ҹ=D i'y~Ryz`n9oSoƜ?kf>,mldE&GyjF1ԳkM eϧV$UKY_T@Fzfjiy湊ѐųh$ 2)3&)=ɣh>6fPщ`  CVWz/̏z-ᇸ>. P[5eY`8η rύ1o1/SeoElۊrt:QQQ#8MNEo[y34 }97_-^J*X4By=\գћ^6ЁO 'ŒnD-P|N+WԘu謇qT?aM߁?ҭvo~z_ueY u??TH ߿zQQQJ-$zv4 ,ogSt8=! ]Ci_s>>,黛bPT/bq𪐳ͅ539͜}RNJ!K|6wt$~6n67oαcO`RO\i瘷cMa.ט\$"XUvfi_RuCcr:)/ī>YP}F:zcnwRx;(~53kPnnnҾ}{Ξ=|ʄg>'o$>OZ3' ֮(tsO~U (J6(^eUɑyf(ͨ#@}#,5('!j GU% ܝ2S@jb(Zl6צRײ8mc}n ź{'10L_`ǰK.\~>}m6 K +3?kΑZ-}65" jXً%Ye6zF)7|ҔXNRBJ<>k]7'u)DGőͨn &a=c[zmbx q*8233iѢueѿ5rQH='g_ ;K%{GFaUe6;͏QDI\=t[!+PQӇ3yOܫ6@9o7eWqNhGFe?ZY ݲoko̵+i܀&P܄$x{!el̴ihР{ycoE4cݦ2[xF |ք~Q ƬtZ&U @IVy$ݻ6u#19fycUH_s\k)O1m55|jBl VLJYfI(N@Rx0i^ẸmQ7 7CCF.TrX;RV޷bJ9ycg"bN0NNSXYt^rյ#F7wۗ(D6 M2e(S eg_/w|||o߾)Ytu݆i0Ly lu=(x s l~ Sp<zf A]0¶fOYʄUWxpp&㷗dp|'_pubΟwFVVE c_(jѢEܹsŋ'LHWOGۢ0Ԓ 5=F+FsZyxy:*F<:|KS!kN҅\N`c~$a-IQ:Mñ-hF}߃t,~eOͫ=`欝XBZQAAA̟?3gΠhd ? ~8:Wf-Ku]ձ,IH_Ľ" צ71y_* QDeƒ=Oc'@.hRxU]frhl՞]*PXS̱ԘT0 0Rb:ӧqqqO`KϤ7ɓJ A'Uك8ll"G~݆}efq匙,w5S;Sw{#thIPϩU6|6-g7ݛܗk>ceqo}` =В@<)?v_ƬX}%6ФO,9|чpp8\80h?3#8/:`uk+BvW*-z ߧ4(A:2lm)01O9#.8qFf?>-GgҪ Vbj̭3Ρm!7&q. nθ挣I^.GU׬n>3^>l_5=@C+]P+1QfO#)1KVk0[ %bћwiv39:+}#+Ʊt%-hLn* :VږB_ҌƳ Tӫ+uw-_uw•UWO'r1=T{ p=WLf1k5{v+iY ;W Kznߞ%&>{elzVEtv0T6+%iKW15vi4o{NslR%:CHX$40 pR@F:)Fjm-YPY'{.4)u=cw$hwҷ}v՗5yu凔lr&;Ѣ*n3#ڜRbBP`^¶?DS#&fXXXyOk =F!3K *EzUN7^6FrR1EG%:5+x?dn.}@,+GǺ3҉ 5iwv2O`6#Y֧tx*SLe cybL o'?MŨ`˅\}9G{B7y3#a%(T!)ᡄQ)fuFx,sTXRWJt@XӑҶJ还/}:>M;[3|qA I9wjL`H#."$PX;bk36QBVH !cef=V )_K0Kgx _|9=(Ƌ%W2WizPkQ9Qhm!S+K籵aC2)qEߤ+:0{Q>ĝ ɟXZO䁯d(U'mĿE(bS{AG!\P"B!(B!(B!(B!(B!(B!(h3s1{c+7_'&:3~>j!>[zOn0T8ziOBH0ut@rKŝIy)4ĭ`d'dg;w@f&5=޽12Sz~ 钒B|-;LaYG/L^哝 ٞ~ڰ,~Xҍ(Q FYiܬ,)M{z:})1zwe⿴ >"5]l6rBtAzz)Sq<)RfR)^ w{퍗{>TI#*6\Si%TSt"RB@|rs.L%i+P/Z;|N=h SyvW9;( P)S0ވS:HBQRa":>iy^)W$<:O7zvp(tM{|~6n9.v4D1r;Vtu>{wTq4m)P AvajAeFRp@`62&vPjX@5Y揶i={Nz{s7Ջ F1"_=gHϏ2n,MAnݦq4bǷ,[O7'qCŐ~\%7U6\i=Chw&_ OP`ߓkj+_b|@mKDxSbN ŷj3vsb&?mً؉'73'CO0kL˨e{yU u f,<6>l#SV;Z&(i:| !J&5ѣa0yGV⓪Zyqsws|z_ohĕw>Ł͛̋_&_|qqږHUzGnlA!!1l!v 搼C>?_TZ]zqϦ/(p:q^9e0\S^6 kEMd=3 C#[0UK󱟒jc'eS~enNϦcm^/[0M-X,,@bf[K4`Cי6e# ƮtMoԛߝܙL . [Qm%f^ND,v/ob@=`>NϩV&`:cfEeҌɒ:Tl'99680DVn; 66k 6pj vNgOmB|=9a\rl%-fh_̒ݗ3Aŏ;W""BJ7h ^|fzr^W}ooO|*rl ^Fkcb8}M,;q/C7lOa!O_-OCGfu4բcAK</(rC o62&yzLL^ϫk o4?zAQt>:>CwagjC Mv{`Hg+}Q< , V IL1vjn;S'.R? XIn$6NAX@oI֭DݱU"\$j?QQޜ[aӤ~4I9/=49}ޟf>E<fB$`ID]? j[7pN" FntQDD("`Q0(ED"" FQDD("`Q0Ԫ6[!yr0aKg-Ryr\)$6KP7n ;eh2aEDT 4&VR6ϓƖ1wѪU##6}_1 9k>q摕]zIVV.N;q:94*6sY2BR %f؋<Ͼ\'΂Ŭ-"5PKξt返es|"gîdfEdkz%;^KĒPvOiHFމ:}$Z1ka6z)ah=W,wh^=_{\DjB0t6.mT6#GpOi:qm q]ҞY͙(s>>ZQј*cF_9=-"5,aꖃLig7061+ZNcc+Ǣߙ^$ْ"RH`l9\Zhgwa.QUlѧtLў s2p8j[b"rsWb|v\eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FLIDATxutoJFKi-R(w]|qgqgaqwwRBRI[v»9Lɕ̣ #@Ւ+W.l o3-!uaaaA)@!$BQ!$BQ!$BQ!$BQ!$BQ!$BQ!$B#%ICbbbICR]GhRez6p\:5vn?/[]Oa,=G\}V#{6-^.2J5zƩy B/vw͏M)?㽽y>oK<ҦIlQq.ޘ7&4̏Q>9-&Y^4Gy @F_ϭT"vԀ3BB>LAw9z=#8$mh 1rVł;oJ}'Uas-6dZupy"eF/=Enrn#15@` wF{ׄ&Cj4VFI֑΍]+o9I$LQk1:guYreEdR11nZĉ9>MԨjlkL%uÖu\<8ٚcVǂxz5 aNڦ oWEӳΣC>bfb4_́94`!ա0ƽ<.Gjh4c%1 M f<;4._7M͛gOwc<^1^L3U;ΈwHǹJL=2> =2Se-6HN:S/?ht}pVh۠:Tu?5m4=A- Mֵʋ9.4Yb\g sq==Y.5'hxtף}I0q%>k*Vf{ȨL*H-`^8rɲ Z'Z]  ZQFUų6 ԟȄOT'P W~t1X144|n3tYInrEN{B=;<{gŖؼ]ւ,6LIE2@뷏@ߝn.xɎi69}ݨh8pMzGQk6.,BrV=zNthHx>ЀXͯH;`TQߪinccl]w[;͵ޜYːcܞTcX~7jqz헷_S0j88%]juMo:> 9:,C.v,°wPŽ0 Ri ,_ҼK~}8֯îRJ؅ʕZ?"cRUCN"X-i~]&&uoU%9e˕U4)'2 5>O4.2QAqz; 3ԗ>I$DmXai=y6g + N.~ōfNXS{6u܊⽏+T4 PnDr2kmOvS}'X E!$[xR4u>wӬ udzr¥xg6IQ}Oc(iL);|4DM$gFӶW$hy>XObMvNHYoum ߤPpyĚ5{CǖQ|w()(+kV N%Q!1" dRz \ӪxUÐf}E';90QP}ַʍڌ=WznXQҹGPiVr@̶휫DK6  $t=fӵ9 @NXk\|rҤ[Ur1m5ߢRvUz\IMk%T@nNۄT s?!ي4L5 t8Ȳi^EQvģ- FD4!{Z;&¶DG-Q~䈴_EPP_^ =ڔt*C $UaaaʕK1=Qfê9Gx2:V H<2#>To܍_m$6iWևse0;es3l@ B8>d Cej-mffƴz0+c2o)ū=w ,7qtl;5SL ~OxL!8YK=UT [CiBǃ1]XZnL+r~}e3lY'-0ù7. .)Y&L;sj?s)>]G|:#j)./m0_2oHՃ+d1 zo؊OG~\wNGe{Ŭv06ob∋go?@`lqqq1y߀𿳚ssAz '-e~T~&q{OJO4My=!(V&x OrFwbW_|ѐq=q;Mt 5ˀ٧ HР+(#@Zs ,~K†8[cnnCU^z]*J3kcooO6[+G`J|(# )T89̌(3)&mfv$:8=|Mz0x6N背!gZ8CJL 7~Z NL R^^eE-6H6%a! !]c-Ϙ[!=X( 0me WV見pӺ^-wrP-]{{|C:L% m/-C] ^\R1=&}Q1=Esz.~=.~yNE&֣~fл<Y.1lR4&rfX'%&rv#bܱ^ӛS G!$߭N6[yT,盝nsbPy}\D$c}0}e%qɉN9 ț4Zb^?ɓ,h^Gk3hsgVv}mrpaicm0-"Up]&ƐLS&p9nǮ]26!1ˆ76 һMFiBk=Z)$'jѣGա=:mbOG˱ӻ4,CԷZB(mRFe=d5wYPzq7BCJ@b#^qq6FrŪGɼ%[1wpuK}#FCrA匮mɞ,\}`IrַR1pؒ.;CX]jNBː~< 0&T6# ~"[KU-\dVonXQae$]n ; -I *YPYBE!$r!/6rfڶ `DrsN~_犪&M>&!-oчG.brR-2c2֍g6C*1!)o"k=f)b0$_`&^S;w.rX6,ӜQػ&XYk~&]4ps87`Z{C E!$]6xO7q.b}Mz6`}}6/|t 晴J GMV>Gr'W5y, KbZt:;YbK=nGhWיVjL2ff(rqZGfB.co6@햲V~~n(ヘKKCB*Xj?ϞisNEhhҦt7h4A> <Ҫ;*LylnSڌCn#Ok2^tNi' zgO(yv$\\1~x!RhB/@wk Ktۅ.]TW6Y~?8"0ڞcۍψ#..3J_!\O]_aL>7}PbYӻ\-ֽ`usL`.z}B5g୙Aٔc0Jiѳ=oYân4<:Z7'0TWώ $^wG< L N"?ҝ+߮fDXEcGE O*@iBnICB*ƿ,Yz;ȴ] 9R{cӧO-^1P1^\_LtlhĖGx2,˳kRy9 <;O% kBxzzbcpȴ v0FIJ(A:3!}l!$Ltb(:7_ϸJQzH;lm)ֶagWyU}xFf=ӷE~LnJ#JV!]^˲{.**t@ek6i2Ee{ ̙˛bzj?\˾q2}]\رQ?gK<;WTL,֒iKVpDUP&'F 9ƩJӥyӃ`h.fGMgLɾz- s !3*ڙE!l+0}&kS-[(&eهՇ0'*\>R1C {JJm*(tkH[Tsl U\ES]+-IG_S:ewSA5o O0.3s5V >ƕɀlERZO\ͱw+C%y?Yr%nYBq4}BH0MwǡZw g/R֊\7gNWC)R!'|MqH A=* sJ9̵sY{#!$F)X SHrS6?.ny)d6Q bU |v s.קC^^K"(Js چЈ$\yLLtp Ѥ)Q@m3:<ԘTVcٍ+h$86E};UZ_/҆4_z:+rwjo=F.fQJ4 珤]Zpn/}u]*2gZlH<96Cl7S44KOf|lX\2cPv{oP;V.*ieB|eAAAz[[ۯs:RR( Qٞ^P(o #W\\+14('RB!(B!(B!(B!(B!(B!(B!qodV\CR4E%8O~7.cqɇ Ѽ< xo]GfJZ/´L:zm  %㟖Lؽ\ @]Ts![r|סԣ圓%jIQfLLJb+02K_!.}4QJ,/'.;6!% |76{Du舋#'eJ3ro#%XZdh=P ƿqq" ~̇KkSxkbZb|x%>ÅKAot3 LKrdĒ!>cq-#^%&< ,Q()`cbdޯJ!6o46-zCw5Oopƥ.\UOҺ.\E3ەpZxGw _42[eLh 9ʹF:^XlLPL[IilHҍi^#؆NQ)]:6w{餕 !vf W&_ E wܸpRbCq 0xKt9U'?'16`գx4 )yq6p}/s5&E/ݮrw?Œ=dQY: ÇM&%.`r=Z=LTnMsY!ޛi&Ƿ|C(qn399 aU4-©4Pxx-ϥK9<݅ [F*߇~~Ř9&赅|&L*A)iߝ3v{ɒt(Jo}] „l1kً)@J.켱U)4wU&W$8de}~JMݻ I%;fS=`W-wzkkNΝ51[xx^cq`λ-Ko`vH1'4E4VR׫9ƒBH0]jMti'cՒ+@ifG5 @aU:qǘγk! Т-N3%_azթؘUGPmeb>zT5:UskR!k_']Ӎ(/#{Q. {fFU&,4˹7n̡-$Sh4$&Mw9.כLj@O_VϗʳuM?f8mw#9hG^$Gsyn'{>3Y~& ](W-˔X=W1||p`mjq !(P`. htaY<!Zrcn/KBӅ]dӌSDbߒDPN'oL*XByucn"42WٽGmS%":[iq5ziaBH0V熿eT+v[)pE]OLߧ^xN|WȈg8\TYvYV{IwP1ڔ4*Ta)o5͏kNPe`I:\3nr[ǡgH4 bƕV:a::Лl saJkb6ń|f`/G.E 2J &mĊë(}- lw({ u?Sn>̐j@ MHV|ȇd|E`8>2 cpadrcܘ*y^U:Vʼz3 HOV8b'NUdQT .\5` v*rԙΙ[޽;'}<_'a%-&Wd\e{.gS_ʘK{srZI( !?S`PNE'bQ)Ѣş'\ Eh"[C)ı~ɖ @~U2*1WYkc í UBJ^^;قǢvv'˦p"ܚlFؚs|B=9Po:S!IzC Rs19Կ^]Z=[ L'\룹umGgHНTk8%_ⱏ>>^lC*TͰ-WxυȺfԧnƼHe޿:GrkV[LV&JEcӃ^PwT2D0ݖLnLԵw:իR`$?TwBG'7Of`U1~-m0UfB{x= 'xM5 9+ѴYvV!> S#ieB|elf`NkAz?Б.jQ25f&j*[@7O\\IiT1ׇ`HRQAOxo*SjĄ)Y<}k.,ExЊ ӱ=b]l'uY=>hu&WS-Y~BR)Y\zؑe=ƱH_o&(ġ(t,az8wr'?_$ 33LM(߿zʫ0R  Pflyt{l( ]]m_;FYX;j¶H+*BcxdSaIy]Ѓ|91R2,ӓg2j_DY_EPP_^TRR 047,,,\r7}!< E!BH0 !BH0 !BH0 !BH0 !`B F!`B F!`BiѦVObu̾ "@G57w'{/"U~nɡ Kj\GLlwFWs$<&sU#E Y$hZBMqѠ"Yp'&c܆ Csms%{GƗƱRzA[*9SAysgOYv}Q  _C-/74sBح7ei!F_a7&Ϧ្f " u--Z op[} dtC^ 0*#L$YlV]u{赶 .vj Q*HqpZC2|4őĵuoh.!$LOZy a^04h,lҨԠ&]1ows86/^>.vyR7 F-j0tbZ*`3Uv6YMQmK fC%pD5JQ ?M+6gq2iNK%Ol~e1 ݮo[*/EEW4CG7*}߆;0= # l !R:5f%o_8 @5w;J㩙])U|~'b2Ϻ_v!=l(}QC_K}R <iՑ艽= N\Џyĉ8vNcх h4)뚡μa]x©ݧy@؝5o;}/bHHki_G!?cBa1nkMi XMe符y]#F"й1sjI>yNrq>g Zw FahⓉI5"y-^HhՌLH`incLCBPsDCBJʻ`ԑf9&ԟ ؍};\g%Zx$ D /b,ؐ?}}殴.SS&96fѕi ۢޟG~F[ߢYNOIy{w#]qWpthތ$ 룹<㎽I,gL@P[đ3>>86oe0,!$dmJ rަ-/QK2;Nf:ROY2 qÕR%$oL*XByucn"42WٽGmS%":[iq5ziaBH0Eo6iĔXc>\t_$?[k˗/=.\zP G\}V{IwP1ڔ4*Ta)o5͏kNPe`I:\3nr[ǡgעQ#d1J`rdE⋷!9\=)[tcr78R6*r{i]@gʱpx|ĝɧnI{*u=@<18lQLaw"~Ώ}!eՀRǑeɎԷ c@9u _/`0,SfBr¾yz(?>jhLULd2̖΅0J@},Ёmϛ~/[;Tfryf7W̧}yw} y9Yt&.b\|Y!IYV2-}6zܜݱ7o5[2m4.^gOR1f;7[әVe pT vЀM. ;q ͳ|Ĕ~6Xˏӳ1,N2q4Wy ȐDMҤseMDE./}VHI:S֯BkE+-F ֭[smvʎ;P($㟔BCst"މ <]ie jUzRӌnui^7$StX.>z|D"/,d{R#cJ_?S{Hn‘ׄI>}:#F "*_Fi}(X'c'u; ܰl̘U)}4½z:L?GR=am 7=ϝx{]b\ޕD]:o n9X(R ᄿB3ayR*yj¦ r* 000`ԩ̘1 B*BZRZ k`FsLѽb~\ò(ng>9Dev\'?:v]C1 x.18߉#1n0%ߚKĀ8 tŨδ4}>+Ӫct›tϟ9h߿?f݇-WY1r<ȄVX: t(Lyϩ 6AVS8-"R)$(՘X`4d$/*)b~>9R 3FaS>#~s4 +L-VƋFq%wqX9%Fsh]<P.Ŷ8B% r>>\JykF}jFspZs8uk%CxjqXC=NRЃ|91Rd<3Q .EPs9/_ %B F!`B F!`B F!`B F!`B F!`B F!`B F!` 5}Hx7VJS~ן_^hX>އ+O4E.((KZ9v*C2Ӿ6?;:؃=7S^M?R&Ny\'>}omq[3eqtcp~XԾ!|5u~ Q5 %p 7Ci@G\}P7t<~OOOt ?Jkj6œzؔCPeI?J6sy:vbO7eL:Y' ]z7Ꜧ4pXk #45) hNx|K/ʫg}7ƀ>KRw:Sŀl/th&L>u! 3 * s)&+Š\5JĆE0O.*P-;I\Vkb}~O9H7OJԥ1]&,DxJ@.xxӧS&$H0jS)4a+Aŕ5(XUv+T &pBZ,Hӑ@t8GGMQL]itکy0^ܼ{l\='2Wrft.cA?lw@Wynuu k3J<|17.Qcse*&8+пmyr+''̎{^Yc`גGQ6ܮk< Kпf͚ +b#~:^B(y*^NVepz [`fWhAE hˎXq'Z J'jLxxxЭ[7 ƿRN?h]bSR9#rz7h<3?nj[Jم8ݥ#PQ,9Ԧ6PbdbjGWxUȝ& $X`P`JS\+ Q-Zxb s~M깵3.9tFMٸ9F|z_[cmS0-6#!C!G]9UKJ B1^6+I,?ؠ?>vD>aB??MD|maϐ[I7~cKAo⠍"<4eu/,e6N'/ǡIx֦/f)NR !5Iv3c1M{r˺vgՕ,.Efid}47."uvv}5Im/㟘a΢p—D`P1nw3g4ipf:T6p?vao3{3&`QA?O59s'K|AAA/⨡.s ]i]ʘpl&b1yGw/98sC>d{,>H&:6$RO157!8j;E=?=br 7 r6#{A%д9sj!"4$9vvJ/VvGjzMngL%,,\rBH0/\V!$BQ!$BQ!$BQ!$BQ!$BQ!$BQ!$B_Ntj9<؟{Ѿx$k F-OVAN>dSa^A v'4B>yzk&ð B/jhXwqb7w&"Klbkpz.dx3l\ y11TMBrr)UQ<=:uq6QZX/m"#7P~e&j$Fᵬ .U{Ҳ- B*ƿB5L1!d0%l攇fK\S@y5G=#m쫦Ѥlʊk̨A\\\>}:͚5ŋXYYF_/n:-cV4ɺC(kMfV ]֐kZq04I)~Xwa屖r3dرc mxEHW:c>\J-fEzrw-Le0$xj:&kzX}~RosU"~fV+mRϼ#Ѕ+*T>nӧecx"c3BZ˝7WofR\C&`ijt|SU Z$ v2)_;Ʒ勒B%?ԨQ>I(_>FCR lgɱbf&ٸ!5sgZ{;i‚WmO݌gސ9((9{ۦ%eZ:J04 g֬YBO贍+K;uR\MqWS(^$Xlϯd_&"%%{ln5Ԯ?֫FfJ칶ݺu!:_:[SSSLMpoxf) t_ZO$.WҺMeQXaV3+q4)Z*h"ۂ~=sQNi/&8)*Ȅw3Σ<.̠R1|.\l! ͆U*)my>ѡ#&wej[kO]I7qvv!b3tAǘ3-sbD-XӰw,I옰 ndc'׳hZh3{]DΜ9e#JdDx&s\K2άB̵j,9aUq2|of9kP::?3g }0u! B//KcR1 !BH0 !BH0 !BH0 !BH0 !`B F!`B F!`B^0phO,!U?' v%F+2a:y2/9* !!)8b*fJ́LH ş×C-ttw5Zq" B/uJλ mݩ9n.`xitNA*LSٲ"F0!Zy11W 7Rs]qvnN!ulmVeIm f ->[S"2? Džz"|6nkϷ~˩Spww+W_ 嗶:Z{ĽVkdmQ2=TiG%92Aol*rf n_X /獣|N...L>f͚-DH0QgSFZľ=`rlY3hnZF`U K٪w}:}ӧOgĈAJaNLk,o?ְ :u*5jԠGHBwmRvv̇JaMAmcit1sWb1!g?z@E^?Fпf͚%(:_\Ұ"kh2M lqWr]0BrxS*QA6,(T9ꥃ{6ߕݺu!bRYOWHwTHq/@y>+P9* Mbh"i !{sy"r|ٵk&&&AT X2ݠ`n,}'GYU y.zE|>}LJqyJIɵ'9+ϟY6`ǻI%YgdS"ppAj2 b Գ=-|<6wo3gN$POcBUq|YͽyX?Cj91xcRR̙e[#|@)ٶFi"""d#/V~+-(P| !LQ!$BQ!$BQ!$c!? Q!$BQ!$BQ!$Bdj ¶|j̵0oHCx,WήXI_^/I &8(#qN{|z5wky-MD#`L$3h-İjBXЏfv YҗяfOKI&:*H?^5Hps.xqjNS;_r,}]Ԩ&jxx~#SOa7Nl[scaoKV4u1D-#.%ȈG EPPiUw- P#S`,XfLׇ[`c4*:[ ]ûCDSi#_<avno զro~L8ZeXߣ=g*l`rئzM0ϟ!ÃmXw7r 4ғcyr!Ǹ=*I1D'=/tlMclmRU5C˒66ɸ%,,MX˘E~oRHob&*54JUgeW~ %yV.VpTÿr1ܝN}=Hu~ -[M%FU6Fp%$&iɨP;RczJ&p!.4?JmY{,ˆTjKl ݏx!4M O 9+ZQI_k/GT<%!ΘðLu 3@?/jNz=BUoƙus2壥ΐ:^Ӛ̱}S[- FC;\:cFbV= k9L ԄEG\~Si4ʯ60Kkhl/P b!'^!$FɛO8d;_xFesqsbtz>gKqn}($\Ec89^OpD_"{v{_W_/QI+]{u402qɼc,h)91aXݳ M:T#M$N#=~\rg-fU@ȯ*FyQCN‰v0[|+YiD<~TJ$NH/m{ gўxp |$r_Wu )\o s3ZF~:&Cp#uyFV(MJg֠8,V!0l̏D(OUwXzFR ů+j][ F)h8V%jpڇŻt7f +@5*R]<bb%Rѝ b> ]a'X&aS<viCt\+Sh՘.'}* \Do?0nj&Wxw{d]N/Nw~ӟZy%Az ^'U~Zp':%n@|]OlkyNQZx'jv`G_ nڴGe Į땩6(q<4V};c]}>^wZѧ#iߜ?C .0dkorΡށ|<`qVDL؊ii>'@[ cj } B4m^'}_A'N[Y4 N[@Wa٘O '<3+c\cVxdM,RkYjUᵼ ;Cq5W.OҮ2?oF]tn؛_^|ܪ:7))dHoV֤1Q!ϑh*S*ӷ?G sdoRya\(f Q`s_~;O;`G*_E$ޗqTZ/訴B|QB!(B!(B!($_!@H(B!(B!(B!/Ѕ^d5\L>'B0!fgj!|~D6}sM_W'9ϟ^WM~up'A/dJ-Ogd~Frn\>N@NwH3YI ߚD_Oha1m%>:I3w&fW\}'dM4y`O8%!$$xʙ7>f#8},]vJ~*ԶGmd/y&!S(Ec~ ,I=7M"HObUn^Xi|q'pv%g966-}v|WY .l+ySH%6&;G/c%N41%|;ըj u`ѱ԰7i+Qne'p+/+x룸4 uVv2Rn4^]x +jGLawoP9xR i"'EPP}\d7TcӢчfMq/܅=Y&Xi %Fz?~W^\u(wOlL>UZC{{yGɏDX̀gI@x 6X):\f*b^&.t~<aS^MM08 1u]zKPS7 tD]ExD(33tȥ( E$[Mɧ i<\߁q]?M'\_ü-w7_0vQ[bk~d7< Iħ5lҿBJsV뵖 'Rԏ8f}1-&ʹGbY7~Zd~6cʍ|fdR'%-y[?y ( t) ;QOnX)j ӧOYf\x++f&vttD]Ř{qQ]cm2O?F%c+Di@)hRb#ws${0;  SӢl_>;ZS~f: A _D|flTuvfJ1z1Gʒ* ?k^g,H̪Wa6 'v*H[Y/sc3Mc/"MJϏFF(*ډ}94&z= 9ia{ :Jz" ;'^ i= a۠Ǟ(=JZ0 ]sdZ@3.$y|rxjl\܋#jݺ5oߦk׮ر+)ohGo7gI|f S\k`þ|Փ/|Y7MfS4c24cDOGN.ҴfⲇRxv%o89.s&-J*#Z^;ʓpAjZce0›[i]ɕ'&6W$:6fi`VFG;ƂKؚ{aYæ,Eƽi$7->9{|ߏ=&ιFpx+quˍKl,j {t?<.fѻW Շo2u fɦ3.EMv|+8OFbh-BU}ۥdzG:oaHE*pȉxӧw1}tF5%>tM bL&[*@eJޡ=h!GR>SP()7ېt~MaָՃQ()MkNaJj?3Frb~4~a=mj*&sR;s5jQ^xl`^[ WOnO[#!gW/^-}9cYv6dGE\/7=Ħ=~O[TNa>¨$=>J3іjupƒj[A2rϭI|Ӫ qELoXL:5jУG`@X)mPm3޾q~_yKLqry4~q!cs?a)z?9ьZ0{?oGU{$=@xJ2 ~/xn8-xp8-1SF6rA[]_Z Od }bX%F֦]݉b^)8,t[oiKn%ޛwϮpԻ݋[xi ,) zcOP%;%N􅞹bm~ΩR/J z yuӓS[]ݛ<n969q7F̚50g sAɔKP㏈4JwLݨZ I>Εw<2rKLF1F(x@?o*X)Ҫm ʰLі-zhU"ڙ{15A0pfjghp?'\7J wѢS~:!{剎82(rtZuוt.eD'g-=rtI{kgl]])d9J ?Յ 'ۗhob{lʏy(up"mY~rR{8.dQo> cfbSWk6}W5<p&S}sҾYl]-|@k-=˾.sT[n_ >bT%,pq!Ob3TSzA )yzQ9DLO65tIoI\>@h-KQ2g37c *lu0hcrH͇PPܜ ɝXRvyQٺ"A=x *;iPoN4Ԅg6^_Z ]&[OP=謷cv^K?+=XU]?>GP<.5fvnr¦?U)V@Mk9'xyX?̮h(؉KOdB Y r5w&yq 54 Máh""όNqG.rZU8Er&&ZKx@ z wZφaUe| UVoK"%(`N;\:YKqIwU wb>b3ӛ\oSmWr瞀 7m ֖JNS :P̡ =͛sL)]eyOGa.C ǘ.2ڈ\8qp<:'%$Sxv}ڜ+J0!;٭Ts&|?SP%֔ӏ";_feY)?i߲W)S:$΋+P{KY(@͕8iRupv5 @'9vnj[/ R\w4D66DM2RCadOB91sx~WDDĿZG}1N].MQhSHū gS>Th_AY%rtZ!}mZ[WsRZݒc;-ԞVo1̆ 6>C/Qp)"ЀH,sf'/]ܰ?G sӣD` roQUA*4/'C\V!2 BQ!$BQ!$BQ!6%ĿH6Q!QWEDDFR1 !BH0 !BH0 ׯyzhZΝ; NCf9t:_8B|˽{ȗ/wÇ(Jt:y}`жm[T*z???jlٲ,ʊMUT_q2 qQo /;˘5~knDfW殸Hx/u]Gf_>q/BO0(o" L[@tp *6mߣP| ƍcooO5(T F!/++{۹,BC/G9'KԒ̎.j ̒y.dxle6gZkﳗ^^n85#Il1vN^N`^to;;;YjoF$ k֬a۶m:;;{!2YYY 2z~7x"ٳEY0/E'sv:O"xit6~M` /&iF0Zőc@s5'yq0x:lļÎ9)K}wo^()јIP{M:caʊ!øV೾wb:.]ԩS4isss#;;[[[nܸȑ#133BsyRӧf̘1{֭ЪU+7)KKKڵkǾ}8p#?rZ/4+{fvj\iz;NWoF{+A#rioz@Up -AKo3w4QƝEJ>oTSx LNd@Ӷh(0M͔W Y|'v+XHa}6(|||exzzrz=)))ۛ[x{tޝr޽;nnnDDDT "##e˖o^\___z=G{ M_cpU"NI`9KO2ʤ4ߊ\,3ɱrܫv;~C[YpuOa7#}ϴBuFo0̃ii~W+{+/A2ԣTq(%rL*-V<`B"2$၍ fff?2j5~~~2h Je-ODeׯFYٵkV\U*1OѮ];vMtt4!!! I'XA{\ `^7], 潉ٳMʜ7GوQݓ{ϸc~զ3_^HԵPĜX*#m.9X;PƋF7~`M9J{e5qZf\xXëM쮚rJjq]gggQ('jZ\'N`ggGz e,C/J𵄶md!,^MxmU|$ (Rڢw ,LknhDk@aiiL E&K$C+!RhE-UWMNKQ|̪Z;GOcDd#dz)H|3pP:`QMJ`i6l;vbNC$&&Hll,:MFAeJKK)))qtt$??YQ(t҅.]<ƈ||| c16oI\ҍwu߱eWˈ o17j KwJION%=}֚`1HS2Y K}oo.ڍ}j[WMWĘ=~|cVcNJHc;uKfY Ql(ҴiSڷoO`` \v"JJJL§RP(( {.N(იFF9.IwomD,ªwAXA4jH\BvZ& NcセMΗg`QR莇5B.?=)8 D$ѧOqq0a;ͧCR@fvD;ҙ5%g=JPX6Vی%gXiq 0uDBeG 욘AjOFG{  |ӿ 6&U+²ڧû$BG$kùR).)55U}(S+mdff^/Ո @ BL(!@ Q 0 F@ (B@@ a!@ Q 0  YebrrrwIIIDGGsAOiiicػwo"ZIIIlܸTݻ?G^φ (*2-kϩS8r :zA}X]5k`0tّN+++\\\HOOݝVZqEkϏׯDB\a-[вeK牌niiIaaaS*5 333ahfV)ɠSe6`aƻX0̤Kkql~3'Xo2_o3p I<ܻw4u֭[ 4ٱch4ZhA&M%33.]`ffF֭INN&&&͛Fǎtcǎjeݝ޽{ӢE L?ÇӿZ-,sJJJܹXF#GɭECGg8'O܀-V¤}|WՅtbw]5j-i^Ɨ[8N7p\αuy`<*n`+USWuBFdF;;;^J&Ms:u^o޼ȡC:t(bhZkaaAYYQQQh4uiB0զ=bccJbӦMb0عs'$<_-[J50V`5|ߌhFս͐?W_qQ,;?秉U2Gg_y^N^ ʶoT}2]K˙rLg4/VlΛUo\Ƴķ v),,$##;bkkɓMt5l!\OΝ9y$FK.U;h$** Y$Ď9ʲ:JYaaa޽۔4`aPV-m(7By6Wv-`QNXO/t뿊 J#O|xǬ%`~"_nFI)U9JZИ <*,T*t:۶m#==$R,j*Ӿ?8ӧZ-cȾ} ڵ+F;w>tp&00-Z)rǎĉuW^^B0QVuY.9ið%Ĝ.3p8׍}R `FPv]dAUWV)is8!x jxzzL||<]vj5dgg#2$$$T+maaZܜSN* ooo&MT))):tWWWBCCZ&,CQQM֙KNNF]LVѦMtkkkRRRhҤiLrr2Ǐ7nܨZ[[3l0Μ9C|||c~:ϥP(2d\(Rv 51_q^ yG 12q}VDuʁJj{ xLǎ| uRwwr#m5XHMM%((t]@~~>Z5jKKK:u֭[iٲ%Hą t,鰱A$LӬY35kVݚF֯_OVhժU #44sqUBCCiܸ1ΡC0$)XM\ω%qx{cOq1 :$9]G) N[w-vϱT $~‹5{{y0y hju;5V>4mꉱ [.C$Ns_dY` C1rd4R mۚ޺u VKVVjuFbb"HNC$T*ZI[hɓ'Q*4jԈ r.\@LL ,c49}4O0ͷbǎҥK3QyBNCl8H !a$׼$IX[[Bh[[[|}}i׮nhL͢)Z]e `cif2dq/e]qVVz1kd6)|?5;ֵڟ黢=WP9Y11Q\;%6%f6?qC)T*ݻwڿjggg:9|}}M2dH3f#WVVMڮ];%I֋e \JÙtLz%v.[OWP΋%|=zL}纄Q."zk2ţfHWս99?9VrQ*WnP.b06w)7ʕ;nbQˎ PHXQ Q !" !5(B@@ a!@ Q 0 F@ (B@@ 4JA {Xߚ!;jȔdv:/p>\$׸XCAq!ciE~Kop8H>S k/і+7y]] SIMz!=5\f+ Idn_Y4,EjjnX`Æ #''!2ه? tnW|}.gݾddf)C}2=UgW]*^"x(-aKdN}++H(ݐiI*,d@TT(LPD>`ԨQDFF2e6nkLѹ]â^k YɾiM1r1c^/ZMWRYacPڠ v]ƺzӾu/u73kDmYueƁ܊ X~M2'vG0qIv^?@yy9k׮[SϓYO4Ǵ5 wbОΗwtm\psrxgv777܋^ ڻݜop@?B+^ʧ %RuV(e(M8ʶ\@a1>tr;t>Ei;0 ).B1T*} .$33!Ҁ_rpHo7ʇW_'W6AN9sȾKRV^\Ʉol諡4>צh(xx+s_g29A/& p0l3Ч)/Z{K^zm>an>}:|#E$ClމqU6XӶ{[wN}t ^'ˈ_;Q}w& {I+l#% QЬ$e_7O YX! un&dl22'jHIl^T0nEUM%If͚1uG4(!eqr$'°|>#t״+33Z!\F4 q(jG/gt2m2'MzfC0RE?q[m]y'5| -Gϫh-(hNWO#r,[y&9GA6PaY1KpsϮ`|Ys)mnj#ڧ-jq r} >xۖ@F!C_r/0U*CcaVC 3:7=\3Εй,|2v[!/>|wwt|=FvN8;cY9F$x=,q7YGx̫}jYXUa)? [H~ 8Ya[@ڵv̖Z\s^X9),F,/.M//:{ ![notes](../common/notes.svg)說明 :當鼠標置於進度條上時,默認顯示預覽窗口。若要關閉預覽窗口,請在設置中取消勾選 **鼠標懸停進度條時顯示預覽**。 ### 工具欄介紹 | 圖標 | 名稱 | 圖標 | 名稱 | | ---------------------------------------------------------- | ----------------- | --------------------------------------------------------- | -------------- | | | 播放上一個影片 | | 播放下一個影片 | | | 開始播放影片 | | 暫停播放影片 | | | 全螢幕播放 | | 退出全螢幕 | | | 調節音量 ||呼出/隱藏播放列表| ## 操作介绍 您可以在影院中進行影片添加、刪除、訊息查看等操作。 > ![notes](../common/notes.svg) 說明:採用不同的解碼技術,其所支持的功能也會不同,請以實際界面為準。 ### 添加影片 您可以通過以下方式來播放影片: - 當播放列表沒有文件時,單擊 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按鈕,打開文件管理器選擇影片文件。 - 單擊鼠標右鍵或從 ![menu](../common/icon_menu.svg) 選擇 **開啓檔案**, 選擇影片文件。 - 單擊鼠標右鍵或從 ![menu](../common/icon_menu.svg) 選擇 **開啓資料夾**,文件夾中的影音文件將全部顯示在播放列表中,並依次進行播放。 - 單擊鼠標右鍵,選擇 **打開網址**,輸入影片文件的網絡地址,播放影片。 > ![attention](../common/attention.svg) 注意 :使用電影播放網絡影片文件時,請確保您的電腦是連網狀態。 - 單擊鼠標右鍵,選擇 **播放光盤**,播放光盤中的影片。 - 直接拖拽文件或文件夾到影院界面上,來播放本地影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,一指按住影片文件拖拽到電影界面來播放影片。 ![0|open](fig/open.png) ### 快進/快退 - 在電影界面,鼠標拖動進度條來快進或快退影片。 - 在電影界面,按下鍵盤上的 ![Right](../common/Right.svg) 鍵快進影片或 ![Left](../common/Left.svg) 鍵快退影片。 >![notes](../common/notes.svg) 說明 :當使用觸控屏電腦時,在全螢幕狀態下,一指向左滑動影片畫面區域快退影片,一指向右滑動影片畫面區域快進影片。 ### 調整播放窗口 在播放影片時,您可以靈活的調整播放窗口大小。 在電影界面,單擊鼠標右鍵: - 選擇 **全螢幕**,將播放窗口調整成全螢幕。 - 選擇 **迷你模式**,將播放窗口調整成迷你模式。 - 選擇 **置頂窗口**,將播放窗口置頂到桌面上方。 - 您也可以使用鼠標拖拽窗口邊緣,自由調整窗口大小。 >![notes](../common/notes.svg)說明 :在電影窗口上雙擊鼠標,在全螢幕與正常窗口之間切換。 ![0|windows](fig/fullscreen.png) ### 調整播放模式 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **播放模式**,您可以: - 選擇 **順序播放**,將按照播放列表順序依次播放影片,播放列表中最後一個文件播放結束後停止。 - 選擇 **隨機播放**,將隨機播放列表裏的文件,播放列表中的文件全部隨機播放一遍之後繼續循環隨機播放。 - 選擇 **單個播放**,將當前影片播放完成後停止。 - 選擇 **單個循環**,將循環播放當前影片。 - 選擇 **列表循環**,將按照播放列表順序依次播放影片,播放列表中最後一個文件播放結束後重新播放第一個文件。 ![0|mode](fig/mode.png) ### 調整播放速度 1. 在影院界面,單擊鼠標右鍵。 2. 選擇 **倍速播放**,在下拉菜單中選擇播放速度。 >![tips](../common/tips.svg) 竅門:您也可以使用快捷鍵來進行倍速播放,加速/ 減速播放是相對於原播放速度而言的,每加速/減速一次,影片播放速度默認增加/減少0.1 倍;最高播放速度為2倍的原播放速度,最低播放速度為0.1倍的原播放速度。 > - 按下鍵盤上的 **Ctrl** + ![Right](../common/Right.svg) 鍵,影片加速播放。 > - 按下鍵盤上的 **Ctrl** + ![Left](../common/Left.svg) 鍵,影片減速播放。 > - 按下鍵盤上的 ![R](../common/R.svg) 鍵,恢復原速播放。 ![0|speed](fig/playback.png) ### 調整影格 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **影格**,您可以: - 選擇一種影格比例,將播放畫面調整成相應的比例。 - 選擇一種旋轉方式,將播放畫面相應旋轉。 - 跳轉到上一幀/下一幀。 ![0|frame](fig/frame.png) ### 調整音效 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **音效**,您可以: - 選擇 **聲道**,選擇影片的播放聲道。 - 選擇 **音軌**,選擇影片的播放音軌。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向上滑動影片畫面區域增加音量,一指向下滑動影片畫面區域減小音量。 ![0|sound](fig/sound.png) ### 調整字幕 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **字幕**,您可以: - 選擇 **載入字幕**,手動選擇字幕文件加入到影片中。 - 選擇 **查找在線字幕**,影院將在線匹配字幕,匹配成功後自動載入。 - 選擇 **選擇字幕**,在多個字幕間切換選擇。 - 選擇 **隱藏字幕**,取消當前的字幕顯示。 - 選擇 **編碼**,切換字幕的編碼方式,來解決某些情況下字幕顯示亂碼的問題。 ![0|subtitles](fig/subtitles.png) ### 截圖 1. 在電影界面,單擊鼠標右鍵。 2. 將鼠標移動到 **截圖設定**,您可以: - 選擇 **影片截圖**,對當前畫面進行截圖。 - 選擇 **連拍截圖**,分別截取影片不同時段的圖片,最後組成一張劇情連拍預覽圖。 - 選擇 **前往截圖文件夾**,查看截圖。 ![0|subtitles](fig/capture.png) ### 查看影片訊息 1. 在電影界面,單擊鼠標右鍵。 2. 選擇 **影片訊息**,可以查看影片的詳細訊息。 ## 列表管理 您可以進入播放列表來添加或刪除影片文件。 ### 刪除影片文件 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **從播放列表刪除**。 > ![tips](../common/tips.svg)竅門: 在播放列表界面,選擇一個影片文件,單擊按鈕 ![關閉圖標](../common/close.svg) 刪除該影片文件。 ![list](fig/list.png) ### 清空播放列表 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **清空播放列表**。 ### 在檔案管理員顯示 1. 在電影界面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表窗口,右鍵單擊影片文件。 3. 選擇 **在檔案管理員顯示**,打開影片所在的文件夾。 ## 主菜單 在主菜單中,您可以開啟檔案/開啟資料夾、切換窗口主題、查看幫助手冊,了解電影的更多訊息。 ### 設置 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **設置** ,您可以進行基礎設置、快捷鍵設置和字幕設置。 #### 基礎設置 **播放設置** - 勾選 **退出影院時清空播放列表**,退出影院後將播放列表全部清空。 - 勾選 **記錄播放時間**,在打開影院後自動接續上次關閉時的影片播放。 - 勾選 **自動查找相似文件連續播放**,將同一個文件夾下名稱相似的影片,自動添加到播放列表中依次進行播放。 - 勾選 **鼠標懸停進度條時顯示預覽**,當鼠標懸停在播放進度條上時顯示預覽窗口。 - 勾選 **進度條顯示為膠片樣式**,當鼠標滑動進度條時顯示膠片樣式。 >![notes](../common/notes.svg) 說明:僅x86平台支持膠片格式。 - 勾選 **最小化時暫停**,在影院最小化時自動暫停影片文件的播放。 - 設置默認播放模式,下次啟動影院時默認以該模式來播放。 **解碼方式** - **自動選擇**:根據設備配置自動選擇最合適的解碼方式。 - **硬件解碼**:通過硬件解碼影片。 - **軟件解碼**:通過軟件解碼影片。 **截圖** 設置保存影片截圖的存儲位置。 #### 快捷鍵設置 查看快捷鍵,支持自定義快捷鍵。 #### 字幕設置 設置字體樣式和字號大小。 ### 主題 窗口主題包含淺色主題、深色主題和系統主題。 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **主題**,選擇一種主題顏色。 ### 幫助 查看幫助手冊,進一步了解和使用電影。 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **幫助**。 3. 查看電影的幫助手冊。 ### 關於 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **關於**。 3. 查看電影的版本和介紹。 ### 退出 1. 在電影界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **退出**。deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/000077500000000000000000000000001473342170300235725ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/d_movie.md000066400000000000000000000300631473342170300255400ustar00rootroot00000000000000# 電影|deepin-movie| ## 概述 電影是一款介面簡潔,性能流暢的影片播放軟體,相容多種影片格式,支援播放本機影片或流媒體檔案、線上尋找字幕或手動載入字幕等功能。 ![1|主介面](fig/main.png) ## 使用入門 ### 執行電影 1. 單擊任務欄上的啟動器圖示 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器介面。 2. 上下滾動滑鼠滾輪瀏覽或透過搜尋,找到電影 ![movie_24](../common/movie_24.svg) 單擊執行。 3. 右鍵單擊 ![movie_24](../common/movie_24.svg),您可以: - 單擊 **建立桌面捷徑**,在桌面建立捷徑。 - 單擊 **釘選到Dock**,將應用程式固定到Dock。 - 單擊 **開機啟動**,將應用程式添加到開機啟動項,在電腦開機時自動執行該應用。 ### 關閉電影 - 在電影介面單擊 ![close_icon](../common/close.svg),關閉電影。 - 在任務欄右鍵單擊 ![movie_24](../common/movie_24.svg),選擇 **全部關閉** 關閉電影。 - 在電影介面單擊 ![icon_menu](../common/icon_menu.svg),選擇 **退出** 關閉電影。 ### 查看快捷鍵 在電影介面,使用快捷鍵 **Ctrl + Shift + ?** 打開快捷鍵預覽介面。打開快捷鍵預覽介面。 ![1|快捷鍵介面](fig/hotkey.png) ## 主介面 ![1|播放影片介面](fig/playmovie.png) | 標號 | 名稱 | 說明 | | ---- | -------- | ------------------------------------------------------------ | | 1 | 播放視窗 | 顯示影片內容,當滑鼠指標移入播放視窗後將顯示標題欄和工具列,當滑鼠移出播放視窗或無操作時將隱藏標題欄和工具列。播放視窗為無框模式,您可以任意拖曳播放視窗,手動調節播放視窗的大小。 | | 2 | 時間顯示 | 顯示目前播放影片的時間總長和已經播放的時間訊息。 | | 3 | 预览视窗 | 顯示影片內容,透過预览视窗查看某一時間點的影片內容。 | | 4 | 進度條 | 顯示影片播放進度,拖曳進度條可以改變影片播放進度。將滑鼠游標置於進度條上,顯示影片預覽視窗。 | | 5 | 標題欄 | 顯示正在播放的影片名稱。 | | 6 | 主選單 | 透過主選單可添加影片、設定影片、切換視窗主題、查看說明手冊和版本訊息等。 | > ![notes](../common/notes.svg)說明:當滑鼠置於進度條上時,預設顯示預覽視窗。若要關閉預覽視窗,請在設定中取消勾選 **滑鼠放到進度條時顯示預覽圖**。 ### 工具列介紹 | 圖示 | 名稱 | 圖示 | 名稱 | | ----------------------------------------------------- | ----------------- | ---------------------------------------------------- | -------------- | | | 播放上一部影片 | | 播放下一部影片 | | | 開始播放影片 | | 暫停播放影片 | | | 全螢幕播放 | | 退出全螢幕 | | | 調節音量 | | 呼出/隱藏播放列表 | ## 操作介紹 ### 添加影片 您可以透過以下方式播放影片: - 當播放列表沒有檔案時,單擊 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按鈕,打開檔案管理器選擇影片檔案。 - 單擊滑鼠右鍵或從![menu](../common/icon_menu.svg)選擇 **開啟檔案**,開啟檔案管理器選擇影片檔案。 - 單擊滑鼠右鍵或從![menu](../common/icon_menu.svg)選擇 **開啟資料夾**,資料夾中的影片檔案將全部顯示在播放列表中,並依次進行播放。 - 單擊滑鼠右鍵,選擇 **開啟網址**,輸入影片檔案的網路地址,播放影片。 > ![attention](../common/attention.svg) 注意:使用電影播放網路影片時,請確保您的電腦是連入網路的。 - 單擊滑鼠右鍵,選擇 **開啟CD/DVD**,播放光碟中的影片。 - 直接拖曳檔案或資料夾到電影介面上,來添加本機影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,一指按住影片檔案拖曳到電影介面來播放影片。 ![0|open](fig/open.png) ### 快進/快退 - 在電影介面,滑鼠拖動進度條快進或快退影片。 - 在電影介面,按下鍵盤上的 ![Right](../common/Right.svg) 快進影片或 ![Left](../common/Left.svg) 鍵快退影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向左滑動影片區域快退影片,一指向右滑動影片區域快進影片。 ### 調整播放視窗 在播放影片時,您可以靈活的調整播放視窗大小。 在電影介面上,單擊滑鼠右鍵: - 選擇 **全螢幕**,將電影視窗調整成全螢幕。 - 選擇 **迷你模式**,將電影視窗調整成迷你模式。 - 選擇 **永遠置頂**,將電影視窗置頂到桌面上方,操作其他視窗時也不會遮擋電影視窗。 - 您也可以使用滑鼠拖曳視窗邊緣,自由調整視窗大小。 >![notes](../common/notes.svg) 說明:在電影視窗上雙擊滑鼠,將在全螢幕與正常視窗之間切換。 ![0|windows](fig/fullscreen.png) ### 調整播放模式 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **播放模式**,在下拉選單中: - 選擇 **順序播放**,電影將按照播放列表順序依次播放影片,當列表中最後一個影片播放結束後停止。 - 選擇 **隨機播放**,電影將隨機播放列表裡的影片,當全部影片隨機播放一遍之後繼續循環隨機播放。 - 選擇 **單獨播放**,電影將目前影片播放完成後停止。 - 選擇 **單獨循環**,電影將循環播放目前影片。 - 選擇 **列表循環**,電影將按照播放列表順序依次播放影片,當列表中最後一個影片播放結束後重新播放第一個影片。 ![0|mode](fig/mode.png) ### 調整播放速度 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **倍速播放**,在下拉選單中選擇播放速度。 >![tips](../common/tips.svg) 竅門:您也可以使用快捷鍵進行倍速播放,加速/ 減速播放是相對於原播放速度而言的,每加速/減速一次,影片播放速度預設增加/減少0.1 倍;最高播放速度為2倍的原播放速度,最低播放速度為0.1倍的原播放速度。 > >- 按下鍵盤上的 **Ctrl** + ![Right](../common/Right.svg) 鍵,影片加速播放。 >- 按下鍵盤上的 **Ctrl** + ![Left](../common/Left.svg) 鍵,影片減速播放。 >- 按下鍵盤上的 ![R](../common/R.svg) 鍵,復原原速播放。 ![0|speed](fig/playback_speed.png) ### 調整畫面 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **畫格**,在下拉選單中: - 選擇畫面比例,將播放畫面調整成相應的比例。 - 選擇旋轉方式,將播放畫面順時針或逆時針旋轉。 - 選擇上一畫格/下一畫格。 ![0|frame](fig/frame.png) ### 調整聲音 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **聲音**,在下拉選單中: - 選擇 **聲道**,選擇影片的播放聲道。 - 選擇 **音軌**,選擇影片的播放音軌。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向上滑動影片畫面區域增加音量,一指向下滑動影片畫面區域減小音量。 ![0|sound](fig/sound.png) ### 調整字幕 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **字幕**,在下拉選單中: - 選擇 **載入**,手動選擇字幕檔案加入到影片中。 - 選擇 **線上搜尋**,電影將線上匹配字幕,匹配成功後自動載入。 - 選擇 **選擇字幕**,在多個字幕間切換選擇。 - 選擇 **隱藏字幕**,取消目前的字幕顯示。 - 選擇 **編碼**,切換字幕的編碼方式,以解決某些情況下字幕顯示亂碼的問題。 ![0|subtitles](fig/subtitles.png) ### 截圖 1. 在電影介面上,單擊滑鼠右鍵。 2. 將滑鼠移動到 **截圖**,在下拉選單中: - 選擇 **影片截圖**,可以對目前畫面進行截圖。 - 選擇 **連拍截圖**,可以分別截取影片不同時段的圖片,最後組成一張劇情連拍預覽圖。 - 選擇 **前往截圖資料夾**,查看截圖。 ![0|subtitles](fig/capture.png) ### 查看影片資訊 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **影片資訊**,可以查看影片的影片資訊、編碼訊息、音軌訊息。 ## 列表管理 在播放列表中管理已添加的影片檔案。 ### 刪除影片檔案 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,將滑鼠游標置於影片檔案上。 3. 右鍵單擊 **從播放列表刪除**。 > ![tips](../common/tips.svg) 竅門: 在播放列表介面,將滑鼠游標置於影片檔案上,單擊 ![關閉圖示](../common/close.svg) 刪除影片檔案。 ![list](fig/list.png) ### 清空播放列表 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,右鍵單擊影片檔案。 3. 選擇 **清空播放列表** 或 直接單擊左側 **清空**。 ### 在檔案管理器中顯示 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,右鍵單擊影片檔案。 3. 選擇 **在檔案管理器中顯示**,打開該影片檔案所在的資料夾。 ## 主選單 在主選單中,您可以開啟檔案/開啟資料夾添加影片、設定影片播放、切換視窗主題、查看說明手冊、了解電影的更多訊息。 ### 設定 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **設定** ,您可以進行基本設定、快捷鍵設定和字幕設定。 #### 基本設定 **播放設定** - 勾選 **退出後清除播放列表** 複選框,退出電影後將播放列表完全部清空。 - 勾選 **記住播放位置** 複選框,在開啟電影後自動接續上次關閉時的影片播放。 - 勾選 **自動播放相似檔案** 複選框,將同一個資料夾下名稱相似的影片檔案自動添加到播放列表中依次進行播放。 - 勾選 **滑鼠放到進度條時顯示預覽圖** 複選框,當滑鼠放到播放進度條上時顯示預覽圖。 - 勾選 **進度條顯示為膠片樣式**,當滑鼠滑動進度條時顯示膠片樣式。 > ![notes](../common/notes.svg) 說明:僅x86平台支援膠片格式。 - 勾選 **最小化時暫停** 複選框,在電影最小化時自動暫停影片檔案的播放。 - 設定預設播放模式,在「預設播放模式」下拉框中選擇一個模式,下次啟動電影時預設以該模式播放。 **解碼方式** - **自動選擇**:根據裝置配置自動選擇最合適的解碼方式。 - **硬體解碼**:透過硬體解碼影片。 - **軟體解碼**:透過軟體解碼影片。 **截圖** 設定影片截圖儲存路徑。 #### 快捷鍵設定 查看快捷鍵,支援自訂快捷鍵。 #### 字幕設定 設定字型樣式和圖示大小。 ### 主題 視窗主題包含亮色主題、暗色主題和系統主題。 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一種主題顏色。 ### 說明 查看說明手冊,進一步了解和使用電影。 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **說明**。 3. 查看電影的說明手冊。 ### 關於 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **關於**。 3. 查看電影的版本和介紹。 ### 退出 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **退出**。deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/000077500000000000000000000000001473342170300243375ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/capture.png000066400000000000000000004610001473342170300265110ustar00rootroot00000000000000PNG  IHDRJrGftEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp ]^tIDATx]|UB(RGDDT,Xr,XO bo*D@PE& Jl7لlD yov})iB)R_TH"޽[RK) Bt]G-$i5nGLdq)**ATH"E)RH"E RH"E)RH"E RH"R)R$PJ"EJ)RH@)E)(H"E)RH@)E)4 0"qF,p!1bAݾϙ]r@ɸ멥(6깥Y݁G?+b2.\/B71F1,\Me[^=1)(U܉FGFFFW_k@g^Çp텧{t;wM[¢UG9GR1!E_msq藰*ҍ Ώ1WmJ=5[a*̺ox|(SXI5t["w+פFZC%莾aɸy.6L4x/ơ-DXs^]< -f#Es/o*@n9f8s >2ڋ|;߇R#>h¨b^I= װh. RHFH% 9V+؎_cUd1 b/`~X4pnd==+=_߳ <2B3LaQ+0wLw9_!HRH2Jn"]a(Gu҇q?c,W!,? sX6"<+;fB}zmu7>r7z{Xg}u 1kxl-O 쒵d 潸3?C.g_(Jb=i?ro2GA CHbSFNgDzɚiġQh̶Fip#Ųmz[}tNt R8QZuiK^ٌm 0*<}Fs~-qy4d0V܉?cŸl5o㎓2XChtwK;߮*Cْ?Sߦij5ί{]`^OA3_e #_u4^Ʀ䗶 8y\RףvOs9~N6o-޵[6Cf؏@ߵʱ(:ݝ Ǘ_e㦮WND[ ml _~1 |M~؈pg,Ss@.n ۡM\t˿Ƅ ^ ^>n |:A gLI|r@a3pMbX3oo@C40uZg ^{CDnpg%M7'oz ^>ǦjvF@E(#ᵒQob)Wcw*UcaC}nys^f XyN zaYp6npvC_[U<\c{# N̾y8{;:X߭$( VS@\8w,R7݃eg/KDPj-q-P 7sˇO.sepE?2E=f&#:ቺ/+KG@ñQ6? 2H~mOJ FL߁w%cq\t8o,^.p[bv:bz Ⓟ jc1i UIßNE䛗c昒%\|"^GYoLomc;/D}Ⓖ})S' T{Og_}4oi|un{kVI״ qhwɞ&*3TaТE v*MKb=70'oo3֗3^@G>,D(\gnE0\ox&B1ke8?8/'myfȝz;4;2'Sdx^|N=s}?}|*j]a( )wz#CUDx3U!1g6G܁co=To]q2GƠfyp}!;F_%\ܻGK F9ZƗ1#w/-P',;e"\\&f}"UI]իkڪS~N/^51iHc&aKzU?y|zgE_ plA ӡ mtQac+ 4=2# N5=222H]kr<>k/<[ ۹kJmǮ8 7=:uxvˇぇؚ8"?36>Ə€)+dMw0ky1%a"Kƌ>p?~Mgci~hŚg'cɮD:@IaO\M^ůf6k׼J{vIŠMIzoowf!P|tG_̰d<&iqck]Xs^]< -f#6s/o*@n9Jw۰o ӵ?ƻ$/Bf Xa0ⶉzl+`ں(;~֪пy]B1pYbY'ނoai^wo@?`)|1/ͼP*4_hӻyxeǴ:*Dj4X/\N?O)(׬?q⬇ѿM\uy>nX7mMmVQEN3VqSݑ ._E`cЦ:*v Qr*d*+p*|QJ3|Qh3~ң V@HKE#fAfߙ7xdTcu_0;i R#. C4gM݀n\=5ث 2Pn͛uEv0( 5]Nlu_8\puύmŪڿ gxo *KPYKޛVN-s(^_p{|>3zn/ףhףZU-܍<9{?>!-U׉YWlO, }ģ(P$"Ee;0xNܲd,˛˜c%oZ,NЁ!X^̽V->Y`6u2/U㈣bO ' /V/| KNWܗFv8[@4_=|<&B﮶@Rmp{wT|CZeq8a-뿘8';%HJ"y+bC}*&*οYkuWcpZxLh~s{e޳ "|=9,qAzC#`JcŹuOʰawkp]2\x4\?/zac0prt8oT#. Fi }L pCXf \;;7S3]uYGO݄F;닩GcDŽVa7(c8\8ʗQк/u4FGА{myx;f=1COF{W}3ݓx>͘8'e!RHFYDzLĨ~H z t =-ZbUZ7b,:jzgE_ pl)qބPz:wo:yMIAv3p]Uӕ"'hޭS䜄.Y6 Q*Oʕs nxj׿JG,y.Eʑgܽ{ycB`hN8Ui_"TE@ʑG7oRL$"E#/R"E RH"R)R$PJ"EJ)RH@)E)(H"E)RH"E)(H"E)RH"E RH"b  # %maDXZCc[ԃػ}>3/妁œqSKQ y?p2+1{}%~(U.+I"ɝxkT{ddd$mq;8 xu;>|^x:ANsq״(,ڎ]eqn{txphƬMA8EsoFzc'aU\[N-}Ҭފ^XQ" yf!P|tG_̰d<&G"96MܶKr«Eld7SxJcgx.V /Cwɓx= lSeo?S`HAH% 8os y7:(^% xt֛WQRHח ^/&^z6r֜zFgġQƼS`?eR':uf)x)|a;zs6;?O/ /"E2N}p\9|C =SI8Y߭drqǂUx?P47/NpwdXnja}sAEN1Wͽ[Pbo7~ŽT=x<ň:leQy2[pƟ*/J(#`y|ZF0O}EsFGgܲK1tbho9B6V|On@,6פ=}?}:m2 aQX3u-Z6qM a+?9}tCSAJ"򷧕[vo8I5-Z@n+0Dd-fs`45^>X_WފsؼǏ.G3ZP5(, 4=޺P?|#v`g4v)W+inRHL1en\672Xd"Zk׬ s:xryjS ڳ 8 w~S'ƈ '˜oī?VcگFVz K"ho LӖ( WXKeSjtFaBnǪtR:_۞y-V&PL\6 R~@^51S*&1Ёj<6j4kWCk߈@W`˴gf:E8ot(=pB+ c nÜ^h⼼Exw/\QfGn!GG\Jmx>JpJ~ט*BEXE1Mܽ{yX S=B*irﵢHHIQQCa}o{@%n^ %D6Fi$&+{2??UUR4 4KTUG 8VH* ʲiUH(W@%PJR#NM+2SyŵDS$1Hƀ$LmE2>EѠ &?WI0Wo:0o >(FIᗃwtY~nw RD $5q0b\˥Q \ B *`s1]3ryz0 ͛16׷%&@We쳰6CVk3:WL3aJ2,.KKP6sVyz]hkL>vZڬ6X,ĺ$Gn8uYJ)R~Z#΀X $nD"Mu̴1R=N TLDoM :j3èNL6ưϲL'j̰!@ϴRqv\~Χ8l ']m OOЬvٟ=$3>`| >j RJ?F%F\QJ~.C1I7w" ՠ v=BMCX%/ \݊Jzkcq~/`gݓSM>H%RĂ2gϘ($mήh225]@LIDaJ]P3-d4X 6A׫ɠ)@KڟUMbf<J)R2 H9p:b*7OIIadFIšq6)VsGW9C3K%V!XL}x0dKt 1Jo0j2`g2ʮk8Л( wx#*~OI=&EI@n:YP =5[YE+Ħ!MCqT4ܩZ rfZ$Hb&,;g:ttcJ F- L0Břd5*Y R :449Ctqj( hAM7~rp fipp"-<6s%I !/݇Ȩ}D ̒2vM`JTvr{jRRsj`qQٽ=&/&b.1iv/]M& .|px>Iv]W@Hm;h"Tnϗ)1]3 xL#ɚը!@VЍ&.z0g|pbL,@T) l4)Z* '5UC0@iJvL'Ka$Ǎ+tfk< e3"%ZKE-J :*4 O1@):H}Wt)c¦6G7zbp#1nup0QQנfrkـX27xexs`r2:M b&)7u1[UqըeINگ i,6E9¾V;&7C@)A 560%@NP N.f6D`Yo&Lm6k8M BmH sjb/.iy ΄nԹ-vII64TD&T5 bdUt-[A@Ul u/:G,eeءÌa#Q?a4j*AEEώd88s3FdHB8\ '6ru:1Od2`.G粉[hdq%&Lg,O(56xœ񳎪o7i1j'Sǁ J Eds'a֨d4pieN;ԇ &YXeuu xZ"d}N-FMD51(S'n]ӡѩBI|m&l#8ch"UFc\  #SC%شX@j8{ӎFM([ElԬbs{R*F'2cb%cO,ecp$ X%݃GYY)18NUUA棌=>虩V +6svH9+,̳ 7M삨6jrر(FWM.djVsTd JmqmNvRơb j'RJH,fETvw$iy@x8mŶbdc Vٓv cE#nx@)E`!ϊpb؁Vf(qLmudT fso*(SY=3 3"7Xj0HÜ5XmDQ讘"2~LxTϮhņjpj"39fH͓c1V]'ۮӸЅw?39xx4Ce2-85-%eil ;u/cqr8 dfd|*+x;=*cx G8ϝ&b9GŅF6eܹUa(W9ϡ=q{XhTʊZ]kX8oj oGZ3;!\{:9]Vh;vQafa_O݈i֤lf 5WM\ $VI=G1քVx *}=-5Wg qϋs׉1w);"TNtܹcmceyBsݑbBmLD$S#U 6';YU)>56N dg3SC*A(P21 8cVо+=:c9y1TAm\8y4elx]LM&L!d.QʬTvW^x2uJέMਦ#fZF?[}X,A\!"@i@%Qv HĆ1đbٱEwqͰBX3 /-^{`tNĮM&CXV͚WN:>$n(*:/fT֛7 ^0Vaұٝw5k ܂eb;ls-14 ^V|fU_bgX.bk6 V*| 3z}\>XgbdfIΨ".u)X) érpST0ur/Z'p8Y?ŏiii<^֠WX)Tz7D~:&pCJos y's}^ĕCvCWѵ@8y?ʬ?^I.̉7N1|z?k/a},mo21+c1* `6s`'@SrTDr0u6n9,8nB+y˶u$G ԭqZxF XJot&VDd=(BRubTb$sFI7RDG`"C%{(FG/9aOII+ K G)@u(3jxG՜] ?:4G1!+r7zІC1<#<{ܙaNEez<RXߟ~}Avn(CJ+`I,+9y`dsy8+,`!{}bf<: ࣻNLQ~i\0'^w %h>_o8$ bٔ0T o6r\ 7C[Yt8j4i&RYGK^hv<`t;.u?O7y@3}p3qBK1ḷ8y??,Y[sgEXg Mp6AnZu@ : n=6zopI>`$@:aF4EQu..I]iit:B8c&SYUa ܌zTRõM@8"jꊰZDh15VQٵ>!ׅ V_FT6+؀o_a*,mvōLUMQHq(\ӱu?ʼnR~([eȩ{0 MPf k&861iP]dKxiz(釰>SrlZklh<{6⫝8Zx-8?~ FՄcjB <Ѝ1WcPW8DTN ^^}y5}k0VѲs^m{ ڷm{h,0i8(m+) XZ9"&f"XRQ#Ly Q_!?C鰽%&rDmMQx&7cĜ\8Vml!I!FI@6>q3jkC,RF=bL՟l0{P^^)n70;g7Tq%شI*=˝JjhR`nT1f#.)nSLP0ʃ1vs`ajz**ʬ !3JN?-w;i~@S38{Vxɋ<Eز};[ۖ6`„3qVoZ6=A iHM sD|oBvmpR'A g~U9?D9e8qM 8ЌrTҶll6+66Bs$# &ΙxLu>( D1"At. wxǛx<j5 尨[΋3zMpv0FvVbA68Sj?L FknnL|maQ0kC5䬐=KSm!G5=M0(1T b͞NdQZRb3T6fMYit<#M¾@|Q?Qcn@)nۋ^o_UFov`If ۼo\ھJf%Q|D۟8M.ǢM=o@G9*?EFuxీ`B|{)?A\LU |jcbʭlB܌z$D/~p [?UlExv9MM,ȁʄk1`=ԤɃK^$5鉎l;rEvx p#'vK%=N`HfHw8y$ r"R ^uU**QQZu/lsA|)S%&xȎb=&M)lr,s5-Y{.F=R,)8k2Aj~S " 'OBCu0z:/0BQYtNSx7cVbmihB@w{i~,s)N ;gSF*XDƖϗT% l].pRi<+[e шD̔aM6e(Yy7A޺O" F.'wAv=Vs㚔bwpfl\Y&ځUip2@-;Fb5ؾm5m5?T߮DmG7x "1^hK(b)T6lQÏ"m@L񚉑W,s8rjkQr 2Efmixm/`a| AOț܌PQ^X n+RxI1  Pa >aHa ;$ ~4>}&Zz|T(YMBfF̆.j7ۀ9ą` \<|'nY2MLjvaŨ{q5xe-jc,/FqQЬ,܀l61\p5j061]6-{ N]+x*YٚXTܑQ&ܱ+`anv#NN:ӡg?:Ѫ.NoV U݋]ǶS& NX4l^K{pǃ5F/6i۶s%q-EC^=icr&Jui\ X xi5RUE7*V+.S9iR8yʣ(Fbmꬍ%h&f.7;2ALE|<,b Z^^w(qEHaSyfSl&e&&:S Z10gM5s$iXPn:{&*f%(%e(ᬖ vG0#L*dAϔ|RL+Pyu!1lچR֯>9-@9SCzW Wd4j]z-h &!*Ilb@cwFpg:WŒF@9 fN*%V!prhDڣHS90%ʪV~!#_ǙmKγ~%,rl-)Hkwr2Ռ$%a<͸3QVVb94j L(Fjz#D…ST0F^i'Pq24TE!9Xc-<\$T\gPlЬN{ }[ Y\ k>(F, Di N$r4zǔɻqcAdˮ_-ތEUo.D)aZ@Ա7Ҟ`x?Pq2GƠfyp}!;F_%8*3n{0~lAצ.ŭEϽQz> }O. ]Ӫcm#wF{V6+;&wZ&:èf-nfm$`sZӰ=*mru7dklNA_ C~"c)Py`:}פV'4&eZzY; V9!&.{ǣ h=V)U3n""CO %ѫWyD!2]O@zx55 [ЫoXt G+0D5>6ӿ@9,yC鑇Z:+`A3pQ,S +[ A$iԚ =dK⬍{kHʻ&UP _ڀG,$;[rLfr9}bo=Jm|Csץq{Ta~XځhɃOLBjUIң&(5JA#«(O;YnϤR4fĢ:/RAP(ʝf|EJT~Lr[%Ż2HTZgףQ+l&QZ"nG .rUNH8VzfhkYdoR<4"|SKD|([Q z^B,g |œ QG>Wc#À2IQ|QP`fFj36*-&Gu6okbr{)︉@usM [ϼR9S#Qd;)d U3PVxnN<ͯMKR”47WpNHAX} 榤o3UrXR^jmR3LM MQN%-{ wv**4nUT #BTYX  .4.h+ VDʽȌ@1Q°M0Fp1E\neNyH*,s6D$^+փ^ǙYc+F|tlڪ2Kd@H::c2 8T P]tbiY b`IYoE &Lwc\5Uy(IgUc؄KVZ5M Hh2p1`l:Rʫ -WyfQ(Hu|>;"XhBd}f#'-e%(߻SK-qY+h2U5NB1k})^wJTu(ĝI)4n2:UW dyc\X;Ta@)AK/Ru+YT "UTn¸>Z`1KK7/F̌j=N+RiS7,0j7T?/آj}Yv$ ߢ̚Yk-p;uT"VcJŽ'0ϋB+ej )CsQ V{#lШQ6c`^ýMgEi: K6@&8NWy!I>Cj-{zO-両!Q0(> /5/WYvmA'U07:<NJqp#;cLjHlJEJjw:"-9 ^iڹ2L[Hy.J) [K"3= PӀR0hQ؊iڃUeK\ T9jջ䪝 ԚJqDcm gXPM<8I*$b7tFbv"L4P)ޑ Nck5\:1ԺDcSBsaηچv&QՔeFj5.͘jM<6a ]ր&]hPW' OnDCұm) 90v ")rkFeY N&?% hV50Z`x^I1ˆRؗStkB Jmn2V ;w/#冬.k-)ưK< XˈD)Gw49^D5ccӚJRLc2pzSOjSPʷ%~@r7NJ Rs-[a]ivQln}dn7$%k< Z6ܤD -½sss+t? %g .Y0qh2"*2>2J9՛LHn]i#uaCùv@ AN$mtP @n^{\kBk,9=YmtfX;r $lL|Q|]Y$5Y^Y潁29&\ezq)3GK k& ֖8ƷQnںUW$F)*)RVuubwi6Ş!ci0*iyi ZLӣ53%#2[k6i1J9s-݆Ilt)| }b ĺk+uqSunYAHtdB(G0FebEҬ+19h4ht:-6~D HQ6#*եn.}3m[E!=V:F:nlrhlj/mDS1׌L{}o}ԩ.אIK&]yvBYߏd3q4ּ19 <L4hԧ?/Bl5;~|INrL8X['NFJUU. A (ǐG5E2p ̎ & Cy>ϑVed6IwM!cA4Jh9b*VwV>̀}wDybp@1jd6stV2&tM/{ 5W#!6QNs`WNSqmL|&&mziN!RfdAQzigs-)Sw;ݘ^"gM"igϑrNUшH ԟu|Fxf܌(7 }۷9e9S$?=TO6gGGGM|O$53F̚2ps<Ru #ΑflU$F>xlu.x>t&bz5`&:o&_1MEVzL Z)u9|AMVg\RGn&9F~s(@%;c6eW+L(gͽ@V;IS*jOVVI!_1 B ޿hɑP))j -9Xf4Z zSjt +T^ lAQ_u82?)dm8CM7`7rGE =,hDE:vȝvGV]$qXNqr>X€5/;dRqďk>XHQ~+ HS!'vXvd](4utE#h QUMu[tD]%Œ=}|#~>2R3 ;,ZCzpRmI䓦h_V԰ J!2$D\*Je|UzR|3RY.sndHx jSWRYꭶ,,hrEm'f#P>866(5݁F!]ι("K 66Q#CU5~|x7rG!mDzhZ93LW$TR1ȋrcCyM;3ʊI,vSÑHpP PGm75IkUa1<2˴tq-X,e.|trTshC2QZgdRVm4PЇOެ;/WQ@#`譓MSoq\{c\xF(@լR[:U-5 #25KEFS[E:1pa0$}+Q:ګKv,\AJ&Kvq9J!BNƗCͨ9j͖f%}g( @ IޔFQ ?'&l%C87Tq4,6,fCN6M䐊'|GF]8hlRcpF_Řr`[4 DiYWώ9xn1阳t}A]-Fσ>>zC4~$NTdqLI\kTDS. 1Ob $lD hHJDyzK Fu찄`J-F )4Q#aK+A%FXQ YΊ#M1Q0$vaFو QBx#:,>wHB 0sQFG#:!e^h M|12nZB}EiFj653@}3@A :dP"pmmNV#)I{I!?0Ex T[aXQ0+#)GjZ/Y:T=3rtB1:IN2 v9/ɏ5-oU7kͲwGW%ב~Eo,H'}#Zox)J (Hʯz\Jw֌2 ssFR'ut|n>I eJ28#qOR]I7,&D n`rQB@7Bpϳi{նksLcS#eޞc^?3P7)OSI8je\q82^ Cs|6~(K+UӀ# 11I9O;Ɓg?e>>7պFl+)Hy")LLSCq2EV@&t&4FE˘ڥB*C^S#x/ l{R2RQqØ6!X P5Gth|_ǰۓc J5L};䫗< UJ-rkMx?˗=GCC~Sjk_pvAZMcU!FT6V# xGSslJq]$WĂZXX >A!x|㑺P:Q ŀq_lcs 2C]]_a}vh5y'qLH%2X.U{un F onvUBRl6vFDAe,`u6X!jPg=3TlJ("dֈO/lNZ'_ ڰMk/s`2:-7ΑFΨIMNlH,nvǨ%TpH q䌺h54zPOny|d?3-ir:wRW>,WlVF>#}r⿕}9VIAe7UyWr|Ge6 7|#rE>7}pHGmuߤFP-54 + n}$D5BL5eRЈtHܜzpt0&RՆVk./qnBn%kPX ji7m 52ؒQd?6#%xz$ X{u |,fDKIMvl:F1M4S@ W[K#9ܧڤ" x DhF]tJIAR?v~MHSV&y3v$|ڎ"N%fQO$Uסdmu}M;X" Q$y4i0N$8fs J6$CD|ЍnCkT2}NɶSo |Mxcȇ7ro yģ[4#5<||+8(K/wge+|aT^_*歹=OoMZtWAWRwNCsupҹ<#?LJX9tFAkF8~6#uGOOmaMj\ߌ*r40_ԔhM<sV)p^#UL@%^L0 "$}c95|I׎`F걆dh'ԅMqcr۴l3rjLă<4"*Mcl%R^oZhHO~D= ,Hoq/I #cyzL%F(D1:x<48/_C%Z/S,jğˢ0j5p=C 1BKTL3fi81Ae"o9sQUg*/yч%S/Kٳ莜)O3Mϕ>aK^*y=$τIv6Iݥ$Ue)ք<wCE /yϖ/O5NyQ{R ]m/?ErF:*-l#pҲwq%C#E[2D%Q]KYΘIMq`Q*g% @P~⡚+@ZQ,d,t &N$;`? _@=$Lp 쵥kŰ?`n|_7  +Y݈F&2R_Ҿ@W>c\i\2q9nTPD3vpD?WΫ1B F.1Y)y(l0EOHf5 zC Ԭ1o2Ko(elDM'XBhPh6{<!*yIv"DNdsGKg^S9J[:pyի,7R=grKr{xv7+;yĤURP#mll8VX\'ˎ{daaNq^oB[S>GaZqc6[r<}p݈ )3P䷦<ɧ;r`>][pLpn@ͨXe9DLz6mz|QWj'piLQ][ΤJ#EE#5-q)})yFoVD- g],DZcHX<0g^]p{ % ё=B=B\Ww{0wRiF.C1#o9ʩ42J,e9੖etG\3Jt"ٿz\[?[Y#,]}D [ObFAXk\d.5h s3Vac)P.AݑM>89jw ŢtSIƏh`7743dH3u6ذ9NYlxnѵȨm{cOXS[N凎}-Yt\z%Jz[U.TO >vOSO;yz(rR3N?uE,i*[L p3#ê($#ʡNfX+k*=Cvu05 ]"})@]=z%dpMM(wD t=$vuMv#6vn͸qY ,r5- "M#*GLk{90QgƁIu)HAƎT]㧣RB"z6`CJy61i?4d|:%ӨA^'S2^bz&)Y pl9 ၃֣.[$Y-1@W{mCwcYYnGB# ^#G0.[Dz|~?Q~?#AR^#-se]yߕke=*?W] ?ߥ~E?iZ.jHҾ044+Q̐k:bLLkӜc1u;]3c8!AOOju_8չ#QcڥZ6bcMl!]5@{鰶 ?SJQ nw-E9cj1zuF1B\s> Bx))+]k,5Bmg]u niTlpW J1ݐJԪ10$HONڵ2WYəS}2; yvH~O|r _墴k$HJ55=,%S]^^ݑYX.0DD0B39lb%à[n"5 M" =;t\3:ՠߵD?&룾0GA]6qf=d) ǔ (i]&׍5*Pwd#faN=t颌Ok ::F '$`r |IV(Ԑ 4q9HQ$"TO 㚠qsJA uAN n%߾,yf? 7Q+*([~E ~}t~몭Ȕ'"Ǘ=[+dEyǎ5EKϦ1@/zF. )7AFVC`#e iWYL oɿCfS7@ y,>6wlƮUYYqҒ̎0o~1" Lf<Ác;.=y=!1{(kf v.ied F*BxjCAb̔Zm2sxYcs%WhDثXI'Çu:@V*x_ GSq;L[㇄FhF($>/ )a]/4@~M3>Q#?/b~~"xygiˏ?SI/6 ]w@ڷ{[BJ+$ꋫR}VlݟɭW^%tz ~^/>p<7 {mǬQr6<"DtpIS62H^6cpS]aʎO҄j|44PIGOL)qd Hdvqk԰V IH n]ʑ =`혮xymF#<(ݒfiq}hֳr9}o?ѕ5*x0B8Hmw;"{BM^ ڐH:fO1n4W[e|d4452d(^}~DFDZK^{Z~<>2/]CSf͹һ}T/!:jB`p*E-C/ 8S΄qe!GN&GQ@{3j׿_~7gWe~Dʴi B֙))1.g_ttfs?.7>.Ŕ`#ǒ.yľ&Oۮ^B)z6DB Bd7rg}m Do2Ԧtl 1HXuqFhK’6v41KTSl#Ǥ YحiӨxL4jN8jT8hz4~jBM |N_5DġG&m){6:6,jsV{mQ%xSFUioWFrjj +f4^`c- ;s4ۜ"ʤ}Sp}[DD8 5 At[t}6`}Žs&K4PC'+M- 'XQP?H^'y숌'\sw1OZoc@i$MY^$)?!t9.6FxPC Ig($T?%%I͖;‰hX"U؉|:sķgM(5HAӮ™HqS3ޜ.5 LHBt0Jt-- Ǽ5<‹8nN"M1iKei=2.3Zc}Mo܌ܡ8䚡F4}r]CrcћR*9kPr{VOMT.)y.267# CCt)D5F;HZxA5*2/bk!cG"CŁ5m=zdZ9o;2*{l@^56lB[E68qht!\XRFT^ր2E& 백JN"&jI-bĔ b4dR@CXh 9)ă;mFF鈺45i0S]Ys2TdD1J'bF$}$W*R/j1,d]S a*ru\J$o^鶛rL@ HK+buQۀ)Zx(v#m/)Xza#1"Ɛ޸$";kN6Jm4k=r~4hd 96%7ԛL@E  v֋&i~r^ XzQ!y+#wb@f >&gu[!S#B#;Y?\BHF %{2wd m) 憈Cqƒ~Lqda@LAXd3`hn-ހ1)6(祥̌ꆁlOQJAu0 Sm19b,FQΦvqQNP*=yJѺQ^T+5qQ ?8ZN^CФ<1>1*8@8CD DpDzY$5MD5bɂqmմ`{ˌTu`H tH*:d|擩S ͝X:7)qi$A@`Х-?q9j*x=R QaU_K #m#01l_g 0O?0ip44D +rfd9BP&gZcc} 'Q4ia-+ǂ*- |~4 SyFMyx|&6RLm//kH30I¨EqW"ЛLcYk `Ue1࠷D _m͙muJCG=nOS0a.w$DA`61jlvljG'h P z;\c`|Gne,-4q{:)@1ٰ`y0ks'7Ε&PnhE` 0MBXB^ zzٚ&i9WVݺu*>cP'G]L50w&@\2 iEvif2&#z6"^K{XB^j& {f^:f>CZɶ8Jf1 mh|*j >p` WfJL\EE4-d#MÄL ృA7 ovm;SP(r᫦_nTjX$a >x <= S!ұ ܨ8#[dО5Qg*d {?1YjAAv2rF7|MRڔe#wVeDtm:o@TF2Q(Hl6}l0]hԀ 5b (j0 21er)jM vHOj9;HR=vLl6c\)ѝFS7t@<#)s$NS/dON7ٔr:hajFV OuC3SkvC)s2*JG#+Ά6w(atγouQ!) )s'T ׇ}n u# ?i)͹ s|2y"2hQA`-^jIvC2#Ƶ#׀ei+g(" jF*ۋ8oQL7hGA4c\ƄsL---Pڬ2Jwqm)Hj,qQ#ԜA˜MFei׭F.hYTg  am;w;bhKfM!#'D_06"b v:[5$2ƣח 'y " jZj NztdC͜ceA<Ȥ#Yk.*qdF̸"\=K^GApϟC ;wj:"i[ jóGiQ 9Jt `FF%i6OR?MAM&\*gu:ҩ$4&$UBb Q5&JrV]Ѩ?DC40wy 7b wSzh A36i9<膒|؄B6Z]FPc}J_&Jt0gac}b9:u6m+{ٓ\}B{4qǔc G=ă>6`e\RQlw U7r" Z 1IDiN tSxAچMȾqh)«Cۈ5xƯ0mB 4<::FG~8cw%Yeֵahl-!EU$趥ZDpMc/bl/bK3nWPARˊD ^LaQ' 3.!'"3`)iՓ |ͤX^s~V.REʥQ)펹F ".v I9CmS n>qllx";n̹%5ʌrZr6NMKU#dZVGd V)қoէ;d &kh(7}hu,D zbi9DMoǮ L`v&P6>*uVM 뤚@$ I>5sԺP#i iDv\e[.6'?8+bZg+InSPEElcMn$`22 @BӄA[WBӫICU1}=pkkCTIOT4V06'LxNO7ѕkʫE 麦uddVQ׍ݴQA-M% HxrQ\UtZ27*\mc#zAC*E(4i>^ʥ%Hp@yl.%hQDBַ^a [t4#]vH )X Xbi*k3~慒T*T7oeR\H3#7JQ/ v22:f3$y)[9ԷNՖC&5X ujK{}5XH%*rfnvNR'lÎNG!B #~3y%aoBk(7 } l䆺b2=hr< ХèQNiĈbM? "86I=ZX-[4ojf@mA<c92RF'YI;i)fJU;@AVGZ ?6l14#3Ii0OԱTLWs"l_t᎖lT,ژ_IrY۶L lPlvm!GgKMSjIՠ+ ]wd~H2= ^,AXFsrbF8Vk5t)QG/ѣ5~;;F5Q*#TAik }Jj4a42e+Ptyx1I䔥CIWLaj&JKؐpB%P@<닋FB -HF>=JNiYY^^$@eԸ>oyx(k$G%sEЀxeT~CA/A@/o9}@LjȠ,1Q+3fpc- !2&։I(ѧ}nvMCBHVD.o$MZ$\㴆܌=zPr8uڵKN9T@I~ZU}ΤsA(8ccApJ4ar!iVzX1LjxN_?r"@fj&J}=Asm=o4s}4x*~[RH⸾y^7o9]7~SDgQF@0=m2ɉ抾 `߾}xttBr>o^*kl~!r=~?QJid!|!__`@7rzyە_YW^">~_W]74>*l$P2 tp0 봦_UFAB1u(4 FZf(fXtfL_ӈKij`֪WȟtueE)iMR_m<1ABׂ?w"}r l eMl (7-ʥEs.=UKR[b֑c3Z㰵>n1K5FtoPteF?2qwn6yO{E9 ;'G˻v o{<^{ǗW}ދv/yn.xnj&T~ǯo]jp댇N7f)8!:TN7Z5ye-7jsUzA_9(/ KGg+r˭lQ`=NDR4-ETW\۶4?+f8 *to c"阺!mgI0DːM5p6C\=x$܇ P!dpHÈ{D55 ĽBtƌlB#,e8M jC]oiq㚦V#۶mg9~FPw@gǎm2ѻ!*?|y j~̼g`!S„%hMtbИ %^fCe'DIn4d$(J> uOFn[4ް1.BWOx֖~ _*1 ]#Ł$@S/TjQY^3izuYIH2v Y B )!^8Fiɂty2>R?  fhy֐yGOy7N,F4"1IOLa^ǴFN)n׊0G ٬p6"u@A%a"Ku %LDŽm~l ȹ,JaT=K\ˤ[<:GLYJIBcQ $pcA%WE>K}>NI Md\qCq=bĬx>W 9z}Q^Bc5 K/ֆhR֧<{"gf(c^|C)GNM  /yn)T\9b{@.z$ȗ2jty n|k7|gE˞$9rOJԋby~~8EWy]w˯.=MtQ}үH9Ncw/H^}~Ir^vQbtI/\g3cd$2>NB|7j^M۷(&ӝ vR6`FbŒ qM\)ǟd.UUo=6:N1Џ0Wu=F/'hOhGSc~͈#IUDE]M)&VT:gSh9:֮.'0Ot6>9ol6@_D4K[JIni_]zhXO,oJ^Ur#Mg-)(xeR[e{QHy>b3DA,1\JR9u(& 4qg` oB$* E40s=11kK7 P:2rȵ7].tV C.?z5%u}G.tJ+Ru\n~}"qI~9)䤓I펧ɮQV;\{M'??f ?>#)yA[Owerϙr6w_Z{3$=z^A@4V.RmQgR1Np5j׼>fOȩ8 ) 1Bjt( RR0tM3h]aVhMU-D ciKK𜌭EZ5جѮBBAŅ|xS+%I2dW[S^p!*[iz)Xܬ^I?GFʴ6F 8I1Ko0ވ:/"e&J wǶFhnl +WtB>(CLwGT:'%nTNވ^J hgW2d]s>iY ^gXo? e Ҵxi~JCpW}r=_] s7=#^(W}ZUO)Kc?^tY:(q&K;qtgt7 ϗ_? 晟|ڑ?"ggL6c]r۠&f5֢7".O6mςnH1B8|( ٵ]"8ZyHLF5I)450|{wNs| RC7jNhO :T ]{E4Oxӏ1 S'^.תC)DMM٩΄mPJȡ\$j(|`p ;Uν[Cy}`yrZ~]_@yW9e<Ĭqᅱ'(?\m卵; +9GǩIǯ?~m[^pﺏy2oK89PV%Ļ?(K"FG4Ն։wˮvɖ-NdfbHE>;޺9r5}޵}ntWr`H3+ ćҟՎj$Zu>q{V~fohkamdSFH^NA)g<[_}0!'rV|p߯b_Cr_{3^pyuߕמy5^ye-wZ)'xHxzMZ)'&rqiJ{hXi3)0rk=b<4L08;'U<.MQ!y}fdrˡR_TjaY-P[{!HŨ+겔G a(e:Ā4j>>.`|o=&O%=w5r2}^5# Wr.7z~̉+/W=!Tyy{-¦O{fV()IxJrd2&ٓi3D1 S'kł5FcƄ Q)+[Ny7_0MDA#%qg], g1g-BL%p;{=Y%SY7D2d!;RsspZ Է>wnDʕ-R"c3DFˬyxo"f6 Mbtq ?^%kJ`ۈOewfei mcil`(#y;IqAK.'fi>OgҐZ6p~m+_rYKt /syE{Rrc>%ڿ_|٧9N#ߕo@-~Lk֏Hs~}&WGoz\& *cwza!D#e|B7ڒ:zHZ.Heb YUƦ4آ"FLR|A_nj:Z՟594*/5^RPXi XTfTz:Ra.8TFzt']b^v hqN VC Ĩ6h#H" كz/hA VC>ONS4lL|1'#yRn03CO [&v29*ѭ r?0>@@g^@r zÍ! /Q{@^.5Nk1tlmL^ =9ȿ| GNg߽;nӸם>H!ON7)HgMXv˶ﲣ2Yˁk)or7=o|y'~/[~"?iYVt֡4ARS¤k7j _}DB,QB$rM2?@nF(axVj/+J)3&wzNȚ9Y 1e!Nh^e,Qb `h4QCc v ?jqjF.!0*)X_Kν˝厧&'H֍O~_!g/fϑݱɩ}D h$D2XDG:4C.D0[dcX\br֡#oS6KJ֥T]PCֈY7Z啪FnU,as:FAܡm4.rtkԠti!`1c$-emĔ7㬶FHlByN{.pmQoԾ9)楙]#VN` J:~uZZ#$(+M#C6Mhc6MMKJ܌yQ@זsj4";r7>vL. bD|jY,A*QZ[s̫Czp Y"ַ{.XG]]T3o|U;df%]D܈{ۋ͈xY&S'=[甔w/m%'(q??GN񆌾)/W O_ȳ/;O|کrQI;Ty%oij/s6's~eło=)"-]Cd!,rH`$fWmӴב41 \ˍ'NJm%#EuJKSNNٙQLFwWYSQ@~> W3# Ahkk88[ω4$M4dkDg$a$@Cl()\PpT?Gm!xC.fd"\pa_NVwZFJ>ۭU^+\vc3ni4VhOoӨN7kȬeҐ숤RlU6yO@I"O@JH.yD8N;oˆCehrsLc6z0Dt8f0$'&`:!ܳqN)7U2}@u|v~сr~Ѵs3 Jm Bj.cc\zVFcŊGTNK]Sw*6c$}IR[~" 42PA̅za.-:ѮZq*%s4\rI td]1 $9!tͬYeM$˫noU,0ð`TDB4~FbT[~I0F11AEAqA`{=w<'}vtWߺUyϑ-\Եtn:d|aLQč<(PLɄk3ڝݎQZo1"MK:-8뵮diP8yZ7{,e1Ee8z _Ch9Zʦdu) % %K1(B;F ]?j |- `dͦh 17~LͼtF+(ܸrY|1JHn=( |i)+[m6˾[ FhL Q,. {յ>2BqJfvL++4Pk+f9nL󲺼${lÀɶNI^zd0ۅ[Bt5e7MYwdʡc$B`q0"cf `xp'0>/ƣ7KgdB:lٌ+NgQ0K8AkF̒FȮaw-Xzl6>J*\ЏNG!4 F?2qs2-HQn.Ie"݁C\kYZ8(fV^ڈ!BM$ۼLXQC`  (j_)7X܀&$V.6!KoADC+ n/Nƙ.:H]ks=w1e e˫p#N:Txz,pCe՝:L@JzV UL0hf`Ҍc`JD5vZځhfFi|̪g"C_dff'Zv}/ڵ,ki\ݖ|6sܺK4& {hxz~"Pn=6b8'h%ARE Gגkxz+}<@[䀠kI~F6IWK$=x j"qz6fڜLLtf2j5KQjv2ݽ jwT  2;gR*Z c K+_kv2G&eS @ܢL<`tֵL;f1nz9 ԁMP{qhI>`e2FY9z : JtF~`8um2¾P&Le4Ln7R!%uqrBY7MNЕj&5sӯrAq Ig\Mm (,Ccv=C©YnB,TRU!+m1Hlu`PRVTew끛E/2>bIՑ1-1g9y,Y=I:ĕBc @P`&۝!q")xӄhA^FgJL0&: @BI$z`؁ 2oP)h݄1 >HlS!4,JۡeO1D CZ5J0;F7ǚJ8ziK֒)GO&fdOH 6+5}~#Lz cc9fḰA3`ݸ&dK%̚0dT6[x?ig4ںWrHlU} X(07a]OO48o (  OZ ~M! %,z] ajYtF|)A^+^Mp֒~9ָX%vH^LLCt:(@2.XWyf7bh|f@vwmіզ'nܬF{\%r^jJΖFwL9MJDBVcJ^{6J;|/ c5>VTR LvLo-z.Q>v;rmw#e@v=ΰ͸Z|&po$~mLh6zIē|.2%${i.+ypl;ѱt}z.+GLhXE8 b+CHMZ&χ 1wْb]A#`㵧3cW>W jJe2;zå_hh=qr)lo ]2%v.OCAhumU jh9D\RӋHKbAKue [\;iɖd QB񂥵+S1XE7 O X~Z~Cb)K֤|PezÖ>EHihCؤ 'm,l hO'qb-rny3â>]>!VmGInc{}E6ў>~Ros}cINٛ=)dZhf|}8ғɢV F㒱[=CJ 8ǣ*6V䏃w)Gk3A (SDhR^?"KP> ٻ%2 *8Yd.XiZv|))pMMnWqL}Y,攡̀lp݃rl= |uefTAe.R\1Zl*q퓘;|G+4sk%)>_b Ia"+ʐ^9[0um09lעH:$)v PD)v@Sk?z}Boxz^I&OKU`@SLfg+73==)k@-Dr2.+DeJQg sk9rm^9r뱹K 6 }=FPOaJnzw}Ytt?:2eff uyQnR\HKiPL%S7"̍9Ҵp X,nW62vK*S3ۤX`Y&Wjd`1bgTZt2.0蟙D,ZI`dc ~)YY !INjT,'ɮi1c1BFB F$3k@YԌMxD\FvɟG^^H=. )fnm*! Fޗ2oh M7ܼwS՟e90`dm*>A2_n]?i;㦿eƗtQn=6r*щd>!hɎ'Hu]DFq^Dil^VFZ] $%wImʔ,}TG.ζm6:eǜ O&0ȒEfeX1t~W&J IRW cIk)r8;r@Pn=6ݬRbY. I(#T̚ܘBp#Bd+W`[d6f(juBILu C3` z6@F4ޟ+ #򖸅S ˙|c畢; c\nt gU-C4Ƶ5>)*('=i%x[B8*<7,AVHR7a]^ItP'@ŭ!;'a v-9SX[Ljsժ縩7\>/l\+hBl <0 djC*@/+iuxV|c:X&R*Ȥ袡3- ܄ َy?*˷rL(KŃ"T(d3J7L,$;vd5Zo"Ui;1+z&{~^Z '(2-G?iP 5ZR YOB.0 D9+1Q\VJ-,pL!zT:q R{OFu&FvQY;Zk(+3x^ct5Q 3:u iy ϱ+ &% gڤ}ڶy=8xc*1-5=u) XZ{T$МȦ!{B9DK=^dzqǼ.f+ 8ȘG` (1}RqC|h-iqJ&#+ٽyb}x p0yg02sq<(詩YPsD:WVx$<NjbLk@ZC8 SQ~tR4[y.IXZ!ƪ-c2BV0hNXrZn$( 0Q@Pc2ehsq0AfF_H`$:MmJf1@ẃ ݾX"n}fϧZ7spEv{\(erYq$[2cO=FDF#>X`j|`߬wX}@n %9=n~,A? V;4Iq.7Ni|w21Y9G?mc{c.E~R/¤kV[YU.}+6 KҨ+%_8 tyFTt'lLTWW RqBcL&%-c%26;lm8#gff$p~J iq&zL:dh q<'4NroI;0 huMJ:?xM2`+2Aq|S hQih-IGӀ]nADݘPb7\!g&pNBNC7"B-ʳ􇜧Rɸ3ߊMVր7':g ҁuaR{9zoL\|'8گ$o\yir}/&(y5l|q!sIXQ*]C@?@p۹s'KQ Ѓn`A,+6Jv &)NS1}ۃ(f~]$+*qry4Vc[-WuAE/ʤdQBcЅ:Gx;:VC %I2;ŵV;cRaӇ=: $)ߛDq 1o9-IFv.dQ\A{(;ZC""XTl5]`IBTQuee&6'cSj.I}?rdͪgGq.zL3)X$ ҹDFOiֆ0mHq#FNj'7~%Qd{ql *t|s+dpN ~LȚ^O܊ :ze#)^3yt Nh C!bG)zolЌnHp>&x!+jfZPz4b7;-iXvޘ ݬ8ɼYωj@ 艝d)|mە=Af30ZfJquF{`ɘP YVm\6Q[%L'fiv-=њ{"lUK#Ueu،KϠ5F)C~]%&x_L~ї5P;p2J;W:bNGAK坧yR,ArOʁ/O^|7~(?RQľ|eHe~o*ֻe;8QnPQ!{?^ƱEG]+2u  [5yݻn 2QO"H1z"3a˩x~MA L%ehj ?˵J;N&wZ[YݻatNȘv+mۦ7e6fIi|l3 N$sl!>,p\\hÁC$-U̙!qdlv@ a!<2meMʐܜ%9L{ 5:,1Qgn| N'4x(9.\:G1v@Y7db];ÅvexV{oc.4`F8ڔ'9JoĹh M46OUN7"=53W(11{>y[ F Y`q?ݝUoJGa7QXۺmh tێ4\n#=KQ=RdNoG4~Ⱥ#;29y(аҶc E黸@fq{)VŔ,Nm+| x<,3mNCٝyqbJC1 b_ϣ.ϓMgW7$> /0#meLh4!E8T6,[6;2tQ8[]%6nF"7a_.#Tx\b7v%V 7&/Nyʰ\/6<W= V>>w0xdrnu{|05{  x-#NWkI9:Vd3!c 8۔@6j4 5v:?J{r➖oH^rYB^ȱ l)̉SxL_'o/Bv=d݃WU6m w70#KK, "b# ovɣN;[8hQbfd V&Nlw PwxwڽW+G^fNRЎjͣ,޶fZlqC@6"%~!(1掸ߖAw%|>6;rK1 hӮL2(  c9Bh~1޵=`0$rz.X,,ĥy0V Lhe3γhtp#cA  ~a47y:(ӽ(Z]~ِ Q|"9ҿ zlÁ}Ru7"g:,ӱO+?>1ӊ~,ȍWD4*DưԾ׀ྏ oz<g~vOrѷ0)/2BQ ·><9-{Li! l : v3Sie ,F?&DZetM|HUF,j}e B`;2YZ꺱e?p3GƯc 3)P7:Zե-,%p\イ2kSf`|(;HՀ9=~_\ p +0b'LL8daGј7;vFP"ChO3Af 7tȐfq6}ثʫ hqOP,f۬f2~&QuW}Fnz򞝎T1>'{/3{29 sϒd&;+/%w?g˳gפ~;ߖw&i<~nN9)XyY/*õqg/piSD/sn S) Y9X cYWy٥h#U0rbe0?|)is9fɧJ}黖&<+ٽ{8a(j{@þ !/v7$'^ܓc RC8&ٳ3C X&'`UkܽƧ dk!6Gb 1.r 1Ah&ՐX^Ac;0USYcU|sho3'g Ϟ"-VRl%Lv$CynXLWP,xH2ڈۥ'v85xmx!Y@әF!/ YZכ]fތ'}c7঒l/EѺEv anrpK%J䌗_"ןf_ɻ~g$UϮynNS*89b[:y?u幟R^{//w\[e$y9D7۔CBNfh&YC S8E_]b!XY!D|!/]6ǰ3@tЁHVbIRfAeL|H,WH*'Qd,Fzy};3]s' è蹁UCm;ɣp@*1Q~8sN43DIs.ˠɸg'XBJGc3|c( +X퐻V,. _gywKm_˟<}Q}|er+3y>V>~w嚵eWɧ?puW0+qBGp\!ڹ W!LA=LB1 Ws 9&F1b\g$)1\ԥaEKc'1 Ddžыw9eG"?蔎xY+HġwF&;ȧZJJ^mkܐ3q1 HA0Q6EɀY6Rflj9N}>aw9K` 1;mI݃SRysyқ\pyKϑӦj?.هyNj]V.jx3/;9iׇ-_,>'ܣF~Wl:_Sg.{4#y>,//oM!7ܴ7AFin NyUD&*vL`&lߴ9TU|ɮ,NYWhffcιTi۩޷|L?~\}ysΜg}Dd8,7~}3SݖCG~E $eWɳ}N.2 .'q  ;RP0u#*g7RY0Zh; QP-Rx$#{j5_A?09@Jۧ.JÁc{8/0fnRFShAZ65ew&~T@(h;\1r)C9.}PX@5Q64c"&\~0|<)Hb$Xz\-Fl.J0jA~ϏV}j@aKKK!\;S/@ͯosЕ˙D^ҽ8^cooӫ'\;V|IƤTL7/"O#egڍ@v?ؙ>45axZʹx1.3$?>)ue#؟ N<UoɁRkitA EW~9nw+,y[ʈ`ʁЭ;nfQ۱+?39S&A,i& )Vʢ*2耢 5EG>N#2WG4af镦R졢J %r"FM)"5Fvlҡ$10Pp MA ~,Rl (ZSe=[fԮ7WjpȢр΍hlǨ C( 64< y]}1Qb+Gd/~vm# NX鿵>p}&FiX\M,z$mSjZr2LRf 8p;Y,R{ΣTrm)rPxᛁL>Oh:&CG\Za].z]r@B/G&\ML2ı֔q!^ +ʆK;Ya8CfrdLC{2FnaOf#!*?%1*j!zfoW3 +UyD%b̭LSilUx{G8^ȱ ҭY!z#/t.@L5Wȸ"&胞Mh8=i+kY[YU0 b &@dsS`WFa<Sb+Z ";08GATnCfA@2|1ӵ'mpB@\k6"ݶ ż8 / L?<ѭfU:2] q 0qG4hCbMfyfY *Xv#f;fzw3 *{\$@8Zg>3#-zlzv8I8q3QfȝhP2-wXt2٩)-٧ E2T$SM[YLiM0& o#Í1 %]K(ʺRQV &;99E1Z8Z{Zk+`/4*z tlG 6Ap#nr4ؠ_Yê`&> rD!y9ELèZ0T*! tzmI%leCs8,[::PcjkUWhxLw##E`3y6a}hb$E#x#qӕ2B|F:ZY#o,e4LDa`^%1ػPmӉ5 VBk, 8w\Xy ,#d\(.xd<ɉιQsHP! dB 5[/z,SQނ^F[Ƌ%-6=able^-\v䯈 v K(Lo6/,()ƱbZ0akىˋM}=oa@#;WEk4,H֭1Or6 UpzŰ-_ n𳎍CضiU6ip$ Xsibp4h %J{Ox`#g!C2liîAC%iZPn=6cG 3XxJ`0@,L\0v޹GdRu]QƄ)7zB^0L|1aN4DAɤ`(1pI Ol^p@002 E0+2lѕm tdר 6 ^t"{}є>ut|< 3e6xגI59;AzCqJ8|=ޓLO )>ݵ焒㯉, pzos;N^5͢Ga3({WVV2;L{ЫĿC'cK"<5Qj: `ąk2[l{=>sRBr RrMbZ>rCݎ#5";@S I^YT0 8x'W=6?$Y޺Q}.!'\ )eY]ʂ^HG\ϧ vlF7w=+oqe~YSV3&R†&YZw*F:NK8&+إ7e|vg( &-h `eWƺu@!6KW0X*AC0˦=8?側\G :łs> hfKl{@dˍs߭ͭ|Z,}߫D7+Go)ÏFcy]!@]d(8Gݤ[豲bql'Lƒ25=aQ'CSJ&Pl5[ưemJ~e*H^p-γs ScДpFI^Dlm(/&!\CҒrp^ %MXSETH&Vh"$0rbJjm=l1o0 E,i+**PBOϓ U ܀VVk3r˅_d2a$scϻ z8V bI>[AWkse`i:0څȼ#a,U=>V$(`{`0` v:aJ:[[KnkaLɔڟ(;>"#Ri i&٤tNJ8<"a!c;kQb2afҞ %|_i8VC;lwc*eIy|}Lvʭ~N(W-=Pʁ&5ϥ}O*ma V憋 )*)_WVȸ /F'ϛSlOMM$VV6$9fGVXƍX|h1,NF<`h333\nX,F!q {+H֪ /沔& b}leh"/;~CUtA;nӗ`e141.=dĔfcrܐAa.;RWr!K6ITkQ3sGAm5 eo׶L2]}]дbЄB@yƼwH{AmL+mct (qm4YZ&"&s'ndv#˲`C{`-_ЖJsL;(оTt0d>#z,710HJZk&>DR%Fv~j~d.!@`ZG"54fC:8q(*Ǯ9 fUn%c2T'kVq# ׷&cZIi2,ddrWL'NL@Xg:1-ӕE[=_3{V͞liYvh)D鈢7Ľwe)큅aVBݰGߡ`izZof׈g")9QU)}zCnFLyf9[@ؔ~Ml3A*0D=Rȑ#e+SQa#j uB6b{ٴ 2eZq* "$Aw^%پ}$(v#˛%&u${211ЪvD/##Z̶MazQJ1öB8;ŤDP0|Qw=>%S8PxUq iۖ)c,#a?9SԤت-e߅I< 6/}quj${-N]fRSGIna3M+ࠪЛ e-qfr}G7)2R-Mh“Mb}M|nyZk(!}iY!&Җ@g̥p9x*$,le`ӥU 'x#Q:9,ђa@!{d10,q]=aqMY rS@^P&!+E?ː/ĘgNA.Bv1}XjG}nlRV%7h>hK!0{z[Y^iWB{r@oJc*|\<ؕy'pE19)Z4&.Kit:uEo؋Ċ<){ ;z~%nt;Io-zlGY'#3ðǾ4hIeM` ރ~s1YlzF9 >@6bZ ]1quY\Z$1>z'F) v" |J%\CoD4]F ip_kv̎l (Tp"aV_D~C,5OҔ*f9X?!9x)#_)"_⍲z뜾=`Tc)RgtN f4%WL]ӣLR3H:hLNC]&.6NZ 4l4;,4m@Y\^^TPVE|+^l8)1dѴyDL`-RT,o*la.19l6I%1!s:^RDFa(陿Cg{'VueemS¼oK*@3=?4F"#n,G#`;rx2#}V!et>̴7G۱#Q>0fFNҕɩqʊ̓0|ueCQ iI-lM(+zŽ8S𳬜tq,?K.zڱ2d6PXkzO\巧Ҭu@e7ktڮP! 9QyXFb݃r?* SϐR+I?+y|ï_ɲ#e`yVL!ȱHAѿ_]](C^/ѭYḿ9&hȓr"8Ls $:*k\^Z&;v0⾆稏)+,8h#nbDc-%5"^sX#9@tLk\Y$@lf1=CZbrZ-k9Fpc2aL++[F  ہ- Adv{-1@o)+GwiNKzC#V&%9}%k9c26}X4B+6Bc<:6`7;~⋟3,eg+ί;aY{KX<,mrw&ַ"';5)3??/`Ox⟟,~o^.f_(uȋ9Gm $,y'?N?<%#JP-"'tQ&S40ٽFYn(+ʬdiH$ *[;߻aϷ%1魰t[@YxLqWҤ14 A}d"njg} &ب|k(I`R\jVi1 9>f)/O* ׺4-^,:${! dsRKV`ܫ@d={ͩ3& (TJ6_ryE0~hV vsۤӬJEKZKcrl l5]^_Cն Ƞk KQA8 ,Jm`f.Eeˆ"zU wsJݐ}LﺩqLh}^_F(qL(^( -eӔ) SzB#mX&nH|Bakhxq UBȹqԻ)8"'~c#\],n[r|}wKrK^"_G[.9A${=ʿ@>rwt= _&/GfFlj;vw]rʵ^Ke"-V,tfSɊ" a>x^ф3گMKџ4dTnb@<ʚ1KE-L1¬V|ĸb4aX\{01941~SكDa'^imxmHLWcfZ옰ow R@&q$MN57R&Xψm;?~04+(i 6io'܈ [ Ml;o3\ɧy)_g>l\]ǿ_!.gG1o!M3nZƊζ8*H~2>U*%*ߔ6yʇ~ zQ`w~z_ң,ĮcO} /}sWh ",R(F ; i)$.!-`^rZpDVVfG <Ĵ^XYJepQ0{ρ|ǮwU /XAZn]A2Bؼ(P 3BXTzht|KG (e3M"]+Ĺˑ ibB;>Go r$.M&Дo~{Z{ eŚ,$=Wnfb[oe qtrύ#qKo|qY,hY!NA|L ^O$\0&/k$=,#vɟ^QPD_yK/38C^җ͎dq:7 7Vז$ìMz A/׎IXő#w 7j5C^" [:&?fzU?RLMg8g$@At#³T#nWف2Ll$~ 4e58{m6mCL\Y_?5[̢. Ĕ'ך}(5>,݌w5F9Ez̐+>aaa6-,G(m3F"T` yͣ,v {<8p+e3ȠU rӣ^i6=Tn@D4Sڃ W&mH<k ~ oFHZ]b6Pz<=9V+G~S'߾M^菎$$G#s ޭ:{,[|^%Dn|jY.U<> Wˬ<&j́|d_(o;ws_%׿m|$_T7iF_q;袋=yI<'f?LߧNsUwWw;0\ApJ4"FIE1WAi q&_1 8>D 3ܱo5uZS}11 />>uTo^RynW(SlP߷$`E}>q@Edp 4jJ k&a밎ilhm67CKQpqJzoj@? 6 0A6~Q4HYhPpD7!IoZ8Te0h(8#p&۝>(&ZRR7&4."AWtWEC; Yd|ƽߘ'n%nbu[:pυ&{4;쾾W^cT*H5"@a`4s>{ph1O2"ސA>J @;L/(4.ccWm c ڨbLb-ѮM@\n:FmJKҳ'IگȁMsA>'i1dre{RGo$ܡ75+'*>t3GM9x_E d qױx~^޻*.7c;&{\~,ygn.Sms~5Ƚ+zCȪ:3zfSh @G, #Z&Se3$Oz%G5mC-tRQHZ`.7;@ġ"^$J9Q}=Mx5El]i)M+ -,Ounf;O0X3xC0,@Mdz^]x gsl軧K!HwgY|f e;iv}=r|ig~Q삾yy֛?*'Lͭ8u7@є;z\OrB;&yegOITQj>ӣҀ#Cqy)({*w}ʥߕf $9"W]u~L1ﱼd\Pj-jE)/d pò6A&mfWsJ1&m;"ooϮ=$;|XbigB)}BaNd (M%k s^ 3vpCͥ٪KA.fE^Ntic0*M->VPCk.ؼAJ tu;>@ o>4ѭܩT5СeGfҬ[uH06iH9ⓎVĤXHjgʑHY?hw~ y'!GW??5Ҹ/7&z"=(9{\R_^J>u[o>*Mv1DODz ˮ|{~\ [d1=W[N|t?O^%76KO. MmFJrH07 }A:6ڙ`aZ=c13_e K6܁&$&KX{S$UUF ,DJ1]>Ggff4ACfsk_ƥf:6'PݔŅRY_ՠ)/W_KYe=?H:{/S#e;!T5^\d\GTActAVzq)J8ڬE?AsAN$<"8 \*uQ؄\iZ]j0 M!.Ŭ\\| T9QSWFG}PBnS7,{2,:636"zfK]KVk~±D~kY-/bͣbY2wJ(%?{$_insB>z MzR䭗[yyӾTr5Wkyt\~US'>#rө_rw"v?.Czϗg=49'; "O)k렶f7[hR 00j1CX1F8N9@rTË@ ."Rh4c$U,4齣Tā@)ԐY{RMҒ0 9mS4&@_8ϰa1+513; H5JAoXV GoqBD}Gh@X$P'bg顟+1.Ro@фQ5F4AJGY DPFWmTgl $荎1M}\׬ HAj!2qBk) H]e%s~~c*22?@Cɳ#NHS?nS#smO<]_4F|Y ~f]59=[};_ C2we7ͳR߸ݿ$O)'NW\z̙ϔ=]–)˕7"vEے H.#O'mk:g\?/%3s[Tstp9|8 IGdۊ\KeK#R@} = WN#tlY2R#G5!et(%4e]Lo7αg,ka|y BE+ _nt/w;uC*58! >FMջ4@S'c3?GΑ`>R5FZǔԭ&!:"k{%kAA' 86P I%yK HO@e4$E=(B!}DWiuRAωAx(ӋÎ7hBz´(H$ᎉB\m 8{ZZZ}c:ԑV5 $T19"IEFp+:1)wkrƓ;Okꛖ 1y>/s0Uú,9p4-| '"2G$A5AJ \_&[4dev-32Mя$CsƳmT*!K G4HCLef.Ei>riL ۷\ʪ$9NMm h?HSR9F>&8FWԕ$JߨɅ$@6@ÖVz}7uM;A=R!8O^,-X5{RivBcCs&@р}lwP!N2STĈ QCUoUk)8ݾˍ,Ld. &C>:HwWV aK\Q=NR ¦KۥYZKW,<ЀIʼn@$ȟܽgSCa^i hD E8nRIc{CǑE,Xk4>3MT@gcz@S1"hA!W )z䈠F4xh#>ګ_5IqMeяeM 2`x!$\>ѫ46BL0enʭcsΰDwܘ"; t7W(kZ&yE!QUL+(fӔLĠ*q.&J\1E >.q֫aI-2;hV#=rtiQ"8G]HDz9* MhJ7 aby8) N"/w|=#!AOg` (X@HA1;IOSuZ =Q|O*s=yl=imnRZEc3ː3@dsh`LE G蕯iDMw@!"f/PhܶO J#x}m͖+bVy[tq}zg#:33[s+Pn #uF 291)aC Ujq_HN ])quQvk nV22DSݖx*FÁ/Hܦ Pzh4Dtl>.zC잕THwM6 ^e&rl48"bDds1'+z.{(u? H7]8m3ŃE<҄:l DciZh۷#/PXZ @ŧSkrtCƙ}Hi@_&}w ٰ?EZ5v8' އi49=Ъ(a9s􍸈g|QR54f[rIRjANH, hH4LͥC̛esNb[j听|]v(LI8h|P$"e05qS ˉZ2]TŠD,@v 7F  r2 s뜫FG}hpx#+q;#srta΢Q]pffRXb,F*5'fc~=#Ul2&" \a˚2㏘ L.O(u5s딦ae! qqB5c*4-C1:*CX&a:i(U| H:ڭVNKN-6b6{P m-ɭc3GUuJ@j;hJ$SZ"zUdZQ\PhE,h c3|;t3En` DNЉ2:]vɞ=DZd <ŁPAuQ8V2p\n:=Y=2wJJƛ &< y)6 6(f3R` KES.zhba5pHgkB# 9 󵣾\@4:Kn$}Xacd0ߎI?ɑA a45Raӂa}sBÈb0WWk$>_CN%͠:6V2AS/w󸸴 8p!0uD}>+r/f`Z+,i$X&?Ǝk՚@pbDjuz{ ]fei8"F0fl:ѥku^S>ADz}]'\"aYB{I)Yfo:HηCl1Hac,[7p"9n2x=i96@7kCͣM-Gűު f< PuA4,ѠB{L$!ͽ! f7xwh054âS[cxE8`G:d;vCsrj'0дBmϙN)g1`C$f>>׌&Rzt؂/2 {R QAڒ)5hĔ&B(S`mʭcs $ =E{ J3%]Y68qZˁ4m8&g;JohAc 12|;:A=QT%cX&Eu,X^X4bjK`KVW%O$lb54f ϙX4MĈkkEpFm11?%YX8ʀ[ev^g0(x^HL50фzONh`G HQgsAb;š B;6+d:2=pVИGçOQ%lnj=HwZ䵢Ā&^DI3䞢THPωlY}?:AvCw4F[d˘~f"1pJֱ:2oy@%aN.*ꆥ4%@*80AS}-vi-LdgtA-dM8+)@ AlU'8~W24;8" 1i,i 5<RƐ e QgCAӠחLJL`@`F^2D'58#^'P+3h : diI˰%(\@f4ڞC}>\NghX?*G<#VDh{_oMK7h$-tAT>;A V/&:/LjQ@DtCLI&f05x1\Zv|5A[k),PÈ$$9Ӭn!}8,uck Z#@Pe{ Bzub(~SeVx%ҲfPߦ]C7( 1N#(}|g0dD{%!\4E8<`d8VT="1 R*k (PuEƅ/"Dy]Zxa Q+r4HOLKn,KP„&J\MEbGȲh(A 8]<*Sq)L=N<' rI/hVkc,!"Ux@MoRzE>=}z=f޻b =1!aKdx,5| keZJ=)q$Hgٸ7g%E[Gc-o鄿rn5nVH%G_K]RY:Uyo-=zgLv=%ڋ/ן+rW~qdֱM k([9vE~|J- 7B !*A9"u3lGT3Pc/P;[N]V*RiT5 I[Jӻɿh0AE ]у$KyYIYc:! T#d1qBF+idS1ai,VK+˲H?C#Q׎!-t R5_asEBEEmǘKofNhoM#17XG8 if6} 뜎D@z'G5p(^,dXYl8߰Cф3f)2 4{t S@ȡ%HSx TU?# X8vAt3W_~rv1 =u|'r9ogur`[_s~匿>ͶKw}P*d({kg3ם!w9r/ /Q1/ #Heww+'P$s䝻O@'3}HWHEbD3*&0t|2U[Pxʸ!hΉk,/+kk98s?U4Hz: H jC0WjrDj%`2_״7ɉ! !I~%$: (KHS 87dr:`064I^ |MFAqA !; ud:o:=lG EX{YW"ddXv}_40c0>y`dP;w 0JcEh,Dt&NPrW8edTr#cvԨb(g4$8CQ]ZMu&~Wu򣗿C>3Lʇq<#O*])Ir_%.4byw/Mտ(o_wO=@ЀZכ;ħ˳qi#B[{ٻD'_"/ܱSz\ߜW}oiO0m>l[hk>EP,,x@hV4q9(ԀGcaP{1"WlN[U6rqmFCZ6i*SAԥ88 Іa&tLoHjv"&R*Ș!,,,ysr5aBj(WH1`]: !x4%9zZoÁ4 AX(nhKH.c4M~)/|%9;+;'u.<] W죠={9/nj0./kT+o[-ɧ_ KOWSv9?=i|G9ƥ^j/&ׁqP7ccD/z-i> vkvXeMӮAe]X-(@d{E(6wUGaC#EL(ZӔwym4' I 𰞘1 430#rRKKD ,1GD,9-$ ijqdR{Gsl` D ']Fb{dqv@ jD|N\cs A8Do2 cM(|/I`|GxyƋ]o%^p'_my7s:M"/|oaYɟxQY>yN`*fW^6Q|Y'k>s_,8Qv<]r˚^-7Kӎ%N2,EN=J?*yk/~\x cm5kncy QD ":m(l6- a:Lw3,˕ hfez@V1v MȭlhkQFgh6F9F `Ŀ$,[Dv(m CED݂2wwGdltIP}P YfuDcYWpڮmYy8ֱ E1h>pQL440}~_GM* 3}\[sVmmۗwni6vKpv}P8ԁ~\XCM˶ҬL+عrS+^YB2AwSĥ|She$kH׮߽.zXBYyz7䢓Sr]zCrd{CrTh#Seg|^bذbH$1B5}Va2C3%p E!6&"2YVWy(ll1L0RF]Қ#4Ti|.яB hj> 41NCA gQMd cHiqxHa |7FאC7K_ Rwo'Ħi4;G;Ua^@xcDDEpuP *o8f.8K!%̢6([ -QX`T^^Mj@Yizݬ|f&궻|YCsh)4_s,EmwsJW.+y?<:[^7{zQι &G ~=2ߒ ®ύ:9 ꗚnyrxk-;W>rɁʧz-yóeJ}s#/+2r&=r릏Kw?(w=u~IW\qyrSԳF<](퇯Pak|1uL~ ZS(m#!'NXйt-/L^Qm]QE[Ύ,!ni%LJa#FK߁¹Α"FF#Gla:pk^)l`cPxW7pz]HRT`SC QOc:,Y5Yb&:GF 6$d0=M$hkjjH4Γ7ZT1D ee}Ьt._p}(rxiIHg20@"Fכ@ RzOZε[#âv3ʐL_X)y% _GG𯯗?qX9/jQ0%xf=(\, a&eWUzڗ\r|c܁cPjW} `,Po@{b|Vy>u.Ԫr`G AYp(A(X7'j 5(Rk5X$WԴBJQ*mjYu)3EDP/phPos IS3u~ckHe s/H}Zf$]# 0Xu\Sx4 [QuY~ eWX4^ȥ%둑LI^_XNT+d8 hX8PvGs@@`>KM paw%$3Y_cƮ?=gìO(F|_=`-J9t&t*v9ϖ'Od$Wg?(~袋GΊViۯhHSXT6q͝v *2Z\Io`0AR29SF4ںӴt D}ThR)w{¢3Dn Awi F / Ntny%'iݶ,aJ ¾#T Yt 닮ў/R1f\P+(z  U"`UyiۍGMatڡ,3Y_}Tg#93Pifv)3KՠqVP[FEB2 #- \&0ltMUIMrcYiwzuEx~s(1ΐ.Щo79.Oo >#7\ؒoUO\7Hӟ=+3Nߧ}!VTO+h-eڡIv Zp2 3A}Y9.{bO y5Ƚ+zϔa%cY";ۢG38>j]}Kai=5بiBF3@ #PӅlcPp߭sk U$C¸pL !9nԁ.Cl7ShBNCTje/Zzj2"XA-a6QViĺkR^ÂZt  4a NaqC쑴oJ F7I`' 'EАѬđLDx_ Hl 53{ۅl3pRŝz([Zeֹap4-a~5W=S2lVa&-qf' K1?"T;N=7V%td\ΕDYNIs}e9B3/(=RY\/wfW˯}o WO5tO>o^˂[/mko,_tl%ߑvfLbHuGݧI3OEy O8s#GUW]%~,n&ؤҊn*9A 6tB !  `g7k>hpL ";@eߞo@JhJ7.9E{K˴=$&\bgTfƑUHLˁt1?'ERZZ@Qȃ F.B@=Pog1.Fz >'jyp\}'b6y@V@Bfc`ن@[4 $ !7%%*"{dO%A~<~*"B1\67vpe~0.c .T^YC+[\~Rv$UPhN¾4S[b{c]VAw '銼H~'HK\)5)v%ݚY+ʞOIrꗵ^JYz/ɗ|S|R>yiro*у2ܾG$_bR/_ ._-~ /'PnݟI3I+r?-= mf ɞB8xNJ I4QC3w8N: pG ⨮s7כ 2ll@L#1IiRc^里\"+ HA7DXTz}5?qe"(43.pZ"!'O ֠iq(4=zG:3d(k+GZ^ L} D'* 띊K!Fyi>d@eW\}rOQݪFU9y$o|\11ξP2#eQ!w7>(;o\7i<knInžz9'5y7Wߜ{,rӻ^%_+_?^nMO(T}o)0!N` F;+5$`8m@TQ?,_Y @E, w6Ng$D餦jHyDeQD(NԿ[֔#,(:rg B6Gv 'M4ΆZuEm`)7A0Ae9|l؁#34SlP [  RD )mI!}]n_ҚڔO Qc!QKD{+]A\#YHVuƒ:gsc,)UQ He}"5l~VCz1)/FmMϑvE~K="܎qʩ^oDDDf1z9rRv\|Ut{o|Foͱ䗼Y(U]꺣ۺ[)Zn榦#ҽsr"7uB Εm3 Ц_FY˿&wζO>q cvZB2we%7B)y[?-<,O ́`1jѓgz=M \IF*JƋ}!(5xZLbwBh2(J-kzz')=pZpDJ(C6=5f#+eo#f0Мl,|<'>IƊ 3SήPVi96lOϺ#/D&$t؉NF7"("}GwAhc[S3G,lA1c)*E4ഭn?m 07Zb[)}tj˦MnQIGksvzRʏQڢT8jύj64ݴ,*s|E)$.mV&W"!+y2Yz(Nmdy-Ɛnݿ?ֱuW@w,:%8 պ4+b^@ ߲AAxG9<"?|6- *8Q&dfr.~%W"G?,keR]ХM@hPb,T s R`{JTIX?k+bwUPrp}Wr 3 ~$W B>xHN U F5h6X_#DӐo[+oZ,aA@[Z16 1. "SM5dP$hҀhUq)?(-=;9.O@]l%J^aOic) ۶푅ժLLMzE7 zU֡"ˍ4&zRs {V^zXndtPzj̆-R3g)@:G;-*'hQŢS(,ӘvV1AFOhK5Ni+:8 ~LiB54b4OM P smI0Ԥe|ǧ#n4>@[u|ac@ ٬F- zM"={Djh-߶]&t^ :Q4΋PA"V.v@2';FތO `V0BQS3H%ITfe5-7QF$[͐_6 6cC̾;]Y?TnN/XJI` Dzku!VX2+V$Ō!IHfbFZX1J%zSNl[DZ#".L`Va&J& .rC!3օfNH i&RCؑ©o4 VZ"ŋpqQ:&P>}"NMl/%W`Qkqݜf[Sn$x h!⛄"JHz!w4k0猢{,S1HE_v)4L̜ yj<jygPƽ'hZ\"z08O%w1ύ ŵSMJP& W2g}Mj7v :cr50MZKĠ[LzK I yGdQS paT"Խ,q@ulEP9hh` ԾK1$Zkp;lh);tkE@yhZc-L&-|"qH 'PSj)Lq_D( JeM x)J04u)Q۱mt-%SicF w-p$@1p䐎q0Ns]6&'8` {v49JAqEhj/:l8H ,fts̋$Cmhyx>aM)ըp hrya,/>tL_Ӥfd@w  1~]_߸\**zG hЯ*bmQw"*sP5~&&w!tK[rG-ޚ.d:#j La1RXm4U z )Ͷi> 22~OZ%H3"kQT"z4PPz΁ ﬦ+\+M(14hq5`E7T SXgASIeŘ"~܊%%]]Pxvh!U OFæyͮz4 T:Kć^[UC=_kՓT6M)WȒ>FʣvjEH z}@ulã_5чlfTfc؊IҐC$Ev@oh&N~.y(XtsIY#suSslmufftA!pbᮭ,N3&K/J>N5af WN]cɌC}/J\5\ qքxrrZ*k)˚G|i 6l88/CݔB'x6 3(JSBJϥkq>CG @䈆H#2>STR9CB,YlFB&.(}\lZ2]kB(H GlIhh5RٓN$}]Lq9f(IQͤD"Aaz®1E(@zӀ9A)׻sN)T9 .%?ԅкPxHTqiuIVWdJQ}ff}$y#fReNQfUՠn}f(vYӞc6v| 0}GN'd:5'pblhA{S׃p`йgY]]6kxN]Icܹ$KK -Yy 0V0^"iв^@麦}auT}M𜡾^(΍@T5t:5N!:;n̈́:#F19l*:0Ň7t@A0K"D;:=7 %i7BCU kJ>P~$~?NTvz~FQB-H9|舜S~XV˴9B- ED@}А* M"2NûeTbc#J=tp~t3z? q|@zB>>k뫜5"z0 :Ѓ\ *] rC%33}RF:AsRQ#) k( 4;9}n<>&3ĔgzZd~ I.2 e}}EXmwɸW?K,X%i#(M}t;M)ҒJYPD"w<'j#ǧHphJ:mE%)e4>}.YXcʋq?]:]i%/qM'db|F_#q Ur8ޠrFڒVdSkWxH$ E2kf/Ҽe]P8ߵ{q0jں: b/?)fA]RKhltm}McBqNNMJ%gN|v@m@V}";56I{# 4db<=%}dŎ%e j5=oYNphyA6 jɓ)eLqnBbv-xN.qgR}H=x;b>$5((ֱ~i`gf(c~-hY&<S]֬I6/9JW87PF,ۡ?#]¦V;(cǾvD;(! 55i&6`mJ:%bQemmYEy /Cey3M @뺙q> |-&(M}DA:#51vA.bUW uWzt s:7/X-a7f$ hh@r8eNR?ifW}Hb@tWm V :$ej>xΝOi(Oܨ7rfReިqM9^;oePG2kfrLLSehha`4T(iuy3DX92 ADaEoj(\)<сn78Exa?h49މ_,lc̶3xmXnRE!Lcq =_h1N7~C!UC_?(c Ɖy?Gʿ|wߓ?`0ܐTx^8|7;c[(Nn~Ddz:Um2 ))9HΐD2g>3bBEB0E&ey跆=әNUu4ЀxQqND 78DvDxMiEŀCp `4he2ȥi:9=ZU4">4穧ZkozG@k*x5dT@ )vb,,,ެhzG)aH”,CF a#kB0XUy@8CQ2Hgz1\QUp8A JfZiaa(-m_wvuC9ȳ17"H1M-7]{dqXa[Hf!.KߨA w"͟2KqzAO>BFFsQ:Qj0͜|xnDFȨ`ЂHq7[GXCaʐuƣƳOCXZi 8.X(tD2c8rDkTk)a7raʦllvaN, .4Y=3uc FehFꙞU8ڞ2# TLSQ]ӑwi}Wr'Y V?wQ|XKgd9ɾ|7U>{U#gGm#e, ŋ5 (E/82>#IN3~C,gl1#uc#⠬jrȃ9i*'cYVReox.w4=n H^>yL N\+ >s󋲱. ܘbyM͹oV(qir,;*BKT!Cl`B=ázM$`;+hXZhRwSpsBBn&BXd6#s"G<&QM@?l1! 2hIQ$3cB9eU?c$ԝCGTL>B7TC41Kp4q2ꅡ[׆^a(tt;w?(H6ݏ JڏlJoߗǑ _2]oe2hS\ J㯗|TOok]^cr`;=6v@*3tNpA6s$_Ht*jR(פ@izxS8>Shָ N&M΅W002aΦcL`ژpdĆ YoPt#g#Fe&Dh7)c#C0*`@xWP yEyÀJ0K&X?ЦTgzWvG rICUrN%Tv0j|.6L eYCtT) x4))-<`_*+ aer|XBn=SRPvA}A־^kWnAki䠛`,ckHPĽq.?W+FIb 7Q˟01oIH<էq_Y#z;Wē/Nd-]`/.EW_׀9>Y~_6Nտ';\+L^ʋ^"?xp0Ff0*s 3aDz#WcUY.nSBD8°|8hRTӰ}ф1[0X#Ji ZYhB~ y34O4wL d̨QrK,-,gZYƹ\nl˨ M3 UrQʒes1ֆt`MH%NЦ Q:`厕%>#ĔD(+,=>>DT}))/`Hf܄j5E? Ln(&+(H6.K߃M{4=mܹ 9cCvae#H7HȼdG4TCEPguticPpD? ׏hg3' CC gN4*y^ 2Wc7οQ-/Ǯs* ϿU?1|%r^2y;11trNJlS1ʲ@='˜~iCBA tɴ2C1eTҍG 5TO~X-J/  \ PpN0qiAʹ8q>Wĉrb$'_py1<05p &c}m˺9|ܢ3yt6rp}|*+[olD'ɕ%c۠LCx$ee"$R^Venaق/Ͷ (Ч3ҨrA`Ce.gG8mܕZ_<A^6v|`'Wح?$ߖ\w|=%c|BʻU^03PLܤ9u5: zaݫ.ou`T GA"NP1)@ _6eP6G] "ޮ e}e#)X?* D_sxK q5[Y:pG%pDlF;5t8|Gi1*+ w-]F5l?;$c͑/.qBr !6˳ FMH)vEJX,~ffOG.!cͥR=ͤXe4nxX}\uh't.pʜ+X{0,|L`NA}+Ipna>6g0uءd."Fmы<+$P7RC 9g>^rQ>X&_s1"$JỈ,yU9}jMl4PqDؿ`笹S7> ?ʪ{_Czt . FP9AhH"D(D&xXMkFdߗA Ǎm5jpR78Qbe[#W `pC]oqEfHPaU?E!N팇U$!aW*Վ&P3e||GNʓf7?!/m1<+«3VymL^RVyz|?%/͟7[c.w}'~J.~Aw!$]ը+sr{A6M Q6au`L46\oz*TǡC6!bads)BEtC,ߗ3\\XfR͙ aQ8 r „ҘdI 4ohn#kG>׶Avr#7=Ƒkm4Kn!  &YZ_deBY^^ySjP֜JɨCh2ԯ'=Lۣ1#]׉OS{[鍹5n(CmPڥMg17 h4>-Y"@{Sc>yaϖ/DȉZAǑGՔ#ců0^hYl8Fz(Y|<}-&=rlnnЇ> T"c!w ]+C2PSn2S'`ʂ,x}C[bYi4بPAXTT>Ɗ>4kY9}u$4 טl8PjTeYzt}9u,vSY8AvZ0|ʭOL2~GVэ4^in¶h {Z.5(`S,XPf КL*.vڍ@ xALsW7b쬞oVZx΄% KH'ƵxP.* s5M-'`F9lgg[>i"wU3AM:}uMX TS6ѠG`j2dpt=C%]J*Ee~QY`63!pu{*2J0K֑٥e2 2n~;w =ސ>3`nа(̲%3MYW`1W@L]AsGVD79t U-^ޣomC݄^GԳ ޝ Je8Js(u3gdC/ S%wZ?|я y;ʷ^r{cOȱZڍa)~Yt= ʧ0&שJ>H?b4BlVPu$K z2mXeDT2 *2iBV>PuvOS@Brۅ]XiEr&E pp:}eEVK,4 6O9'9 OW8E 0,YT5C2,0 JYpdF 5DI)f.yf [| l7~Pv?;/#viJlyF>YE{~W~u&禌+'oxUA anP(a铪~a_y/W#h[{xL8F*`*U"rxP:R1d8mӨ yuU9},/+\n)S檯ȾĨ3|7@J8fvJC;!%k '5@്rӜgu?C "A(KSz9`؀-ĉFaڑR<Ķr*h(Ȃգ׮A0[r&2USfcX V҃xX`I$Lto;+)C0{93 -6@ B$x/L)h'5oYԩ3Ԯۧ}N>4ADaVl5VњLJ0OKv$7Q2 |V9\k4ғ9}pHd|n{`B/،]/؏Dcj!Ca]*1PG@5+P8B w7V08lG$=G+ΔI)T*V`[2 fŒN=ʬ>1.s ׅ=R)NQ>}'9JIA2=`-9cƪŋd2Vq[XfMy8HrGFSYZ0B hp[uMC粲>@@!x+P3dvOC)Jܐ+rd 'iWTg\*QlTCNS1Q3@F+Jj{gG&62TRl. gcQHi ɀLyinB2Y|Oڰ?:6+t784oO)BQV;aR,ИD1?z(-Xz (6`ˌaKJ.;p3a ¦@I 13HaOe'w},Lj̙yi(?T^^ +˫Cm)ӭL2?U=d{ ׭O,H!q\zxvqƚ(Ӭ{WF>(dΎsFF.\d H,${؀18@a2;|qz׆N$19[=ʰD! RrU( UMą8/pL-8-ld5!"'=M*k[.?eZYw/ľP$p#9hC<,*"W*f|QT4Rռj̱! a.!^)YXCeHU̅A A+tI턒l: 62DmD7`>A;H@ِ<'itQnolh(ءk`Љʢ.cRPVST:-i GmBP4OSTչsGc&']|*ME~"}eVw) )UZ&ul6^Kj mtQ),H2G s+j2L} Oy6$z#2C%Q}-]Vk}vPzOM&f#Y}"5D'&-1E 8bRYCE馈6MI=0Hx8ala9T:o0G(D(#TFkhIU:mu邈} a\FErP܂F@sx=HЦ՟Xd7V]߫:(v;9w򢆑gT۬7ZRs4c%-lxBX#xș3zc+:3ȵEf[> ZÑGHt3c3qکq bHW7]N3>6*;ݺ 4E32VP>Du{,rm?̱"\Tݶ@5-Sl؟6 1]F y [=/4v )!AXCٳ# c 2dl}!b >kc8*bΰ E 4 ,\gduA8ƈꪫ,1~F" % mA7̥zt֨ "M፡V}N&dAi79PDʥGJڢ@4TSq:R*K</frLr!evPU^w-|Z GU>`A 6Gl+UhK j=E/қ̟z̐Uy0MNtsV%uRuXҌdu'`lFV++k|a|>2p>V] ce9eTj mI[&ht_9ݹg(lq x}炊gϬ vTohQ(Yb# R-ɾf 9ßlJ+n&$bq17?/7oe*0@B~^fr3nI=Oo6o_.!}o(c4\;rga4 KٲX_Pa4095&L;& eGY`P$'Gdߒ2LހF%zm)1/ig!h$<nl}q,%̋߉\eo!|k&,l(؈GغbNc9kIDt#+PrIJ%*|oࢨtI]TgR)uXFtx "N+؟:yVr呫EWdLRIY1qqAae9^sp9 z/8hT>{4S{T: k{wb&ɕeyc*Ӌ%3gj#Y;sANwQif3,x"$7DATo(F VvfVƥ"=<<9^ƒYly{ ?Wl/Fiԍ\, Ƴ'MocFc<>6+j1j#DD# B۷c,NSZK` v0Div4tEiA8f$PBʨd~e!Ia F)] V@Vc07̮j\yUXi+뛛A;CJЃIC}& \.Ov"F\=%S-S WfggZX=岒J'ڦi,.. EpmNPr:6-dnaI672-UgUP3_aH֠z23# \n7t갘L52?;o޳Ww҂f{w$H9=C7%:D:<+YOk\"4?hh9&A3nʲ ShJ1(^:Nݤ̭܂kH![$`V܏6=+J~Z<pGPՠx~KB8u^u"*3ʭ fL6)"A r%r~~h <>K!pU#ѯf5)X ˶(M0硐]κ78]I'JQbP^ԟqffƈfrR췚l+kv0>Wx^?Q3Ƙ4 Q>vgLZ(¦jvZ9Rг3Eh=K2(+Zzwĉ;Uj9:GyI*tS~Т}1ߜBӶTq}| 3_O.,hZFeڒ>w=r&S0S4_x_C,eQdLa2${EC/VU" + cYXZ+Bܥ5] +LAP(C6z%s\]X3g(1TpL6ʑ!癔EY^^ t.]1kxS+xv][!CN.1xV)9פS|+;>9Ņqdр `ЌA=nsHJ39+ (pپIqNY q,,IqlfNp-~h+_(u!CNci5PO#c>۝2e^ՓAS,2 Mɜix=`.9L =Q;h2`<1 Oh e"9Tv }'p UO.,#eFNE&2A5EK@(F~XB&uSYhؗX,+1e`ssGhª2ڍզll\bϢ/K jjV-{ЭU  O% c=tQ YZQ Y.iȨ3)C4m1R"0@X7f=hhU*ah*dOPɖ0lztض 0>{XHlb1lyEB5leUVjv *J#?#]J37"lNvP}}!k* ~s-]Vv P]cRս2ɜ[>KK2( 6K0t+`w  ~ba;U-kqȘE32p2qF t n2Sfco Xh 'XՎ9p5\wF>v:a8GX6ZH4=K Z7S;Pw(J2_bCc<>fջ? $",,L fafr ,V_3u'M`!(i OPn~cD< ,.A7fpl*#G y`X*Y9Y\\&{r ub] QXߠ@Ұ4!̔26^w@0k5!m̯V)S Z) Q0skkK~YG ywv6dgw@x ܁bQ&l~VCU6j! ,P?(_Zz Tg-r7-14$nuQI2᭲R@@TZB>}xZ3)}2(a-^{oK94pPg?R1#|<9>P=T,F&0Jf۵  >>C!X8uX.+g޳GF2{t~o/|Ϣw:_GU983۲. 7MQWuc Xуd~-E1w7` P+ #[]7rf"(qiyŧˉ'eow;P1C V08?X1RE5z!y(s9C #Gz l]FsiVKQCntW^O!'Ǫ_NFŋ#wx̊LY\;YB̀fVp9IڦIY3.ۈY2 ڦ'@; ȆbSS EJV,lIԧyN H#Sᔑ7$fwP17EAX p A*[NKL@rgYJ;rxmb@򙜂[[, :__kiCUH{ o `7ބ8ASit9%3N'y=?@sYoXn̜q:5/kn r 0s֌|4pKS$+|{npM;@>0N`@}~|4p5CAeOǍFeWO `L,)0(UGb4 eC QD +Ń:<`8N{ /]j ޓ̹MOp:sdQ} )l%Gi=CiFdĨC'!Cp6dWԌ#xdb 4ot~frGj݀ ҡ4 ^VUHY<dw 7JF7+9? )uƤR+dE*k=ЇYw ̟C_rɬ(e^]~NE8l=У V@"Y{|KoOW~3ϒK_Jw$?~er1س/z8/C||KbXߕwkA:/׾V^ɇ?a&Wta1o}k3RLHf_G91st`L C-hb !, XhjA2C,f[(?lXF &XΞ;/'Or,xX+;=xBhu@4|gPCqDF̝ꍟ#Yq;fB|O< jx:K!T;mlm9=T:e*bsoHt)+ !Ǣ1DcaS1zC{ zL\~?ӝa8Q~9Mawg"  &5܆^YlYBd4Xf:/-eAecۉTk`69e=7d~#1ϧ[&DTP,su(QQsw>by{<7ٓ?k}T%^9o\??"~;"1H>X]wſ_W}k)C@d9leX~o¸i1̣ nZb,H[J {0򙛳}@fE6ętt'0;d0[X  yd7""L10#GD}ٛ'|xʌ1:5#ggmI@\c ,_=r; PP\(X|h")`i iCl:\%RoОw-zMQ% ө 0A~/IrMZCA@6QÑqQ(S/(f-vh 8Z@|84pZ^3Ky28lGfe79 ]$kbDH4fg7,|ܽF7qbP"k(Ia  u;P*e tp1yHãi&PkClIy\b&HkX c0 jQ` j(7`F;V86 .Fe i虖LD#LcdvWVbnD!&fo9w>2#؎Ll ݌vM?_;k16G`2e=MKH7,~ai z}iy"G k)hrhMS걱36FNbN_z>LJv~ %R= vmieV $$Ie"(zIQYQT*0:;sfVudo=WBz4>2VZ?We}nD7$3K%o$ņxh0\wu(~ 5~~]οׂtЛ6C,/]7ovgE {I~2-A$`asnbm :`8`޸cYxpsFSf0PHVN !-; I[C;gGQwp G .ؔu b UkdWi'L2sX_P{<'N)5"̅b"Mi?,:*u=c ]TBz_euu )hDc<-BDzD&Pշ,R*K7ASoOYhj<&Ң9[H7 _ov=6(eՏFV.P~yGrʀ1q\$ΘW0=}vC7W-v2M>'Utfk_>Gw~Xb%^ASB.܇S?L g3O1r=@sIᰠ_tZ@jk&a a'&'9V*++1`%# y;7Ҹ+,%=i" &ɯ/:I?( ;7˃>(w~Dn<AU`v&4="و٘ g8P|Em2$LXc%A5 #IANMJ*3#vޢ9])%ʈo4<k8vzh>wBB!e]/nY4{ \6_R0@^kH5)p8Z-ӎt"NBE:Mih1 E4ȑ )*ddFh,iT!"7@ :Z: ֩C 6ۦ/sV#4*|je`oS#a&sl#X oUtíI+.zA3(pEuQ.}CX',` Wo'?ie~y9EFh_S,L1OkBxݡO(5R1{wqn#r3CnA-Ln&xx ʌl?(g#tI9 f/bZs '1#,xXv$Òk(*ng1*aÂu scL]s|&W._'Os2vMqlN-d`U;s&=I(;6pp&hMFLGsŦ6r5Ϟ|*;lp̎t7!o{r{{˫י'< 'H?/v_cuuU>2,2T@ *6 oYiM5PC4f,_3@:\8/eD)Θ7Y)VhMs˫63M~ F#CtG{ZeN.4* !VA:PA#T*x*i(<ƃڴ cX=y'5t?''V{?06pn MF#:ϝ9,X$Bͼہn.!H1?'ϐb@~U Z d IrXTBK]>& /]$㩅0gm%ڷ88,'j̻N~3C/ q},/֛,BPoy`,,GGaEpSfsZ4P'Hemj7áHmo@ nP\Xx74l1ŅEq +)IU$ܨIY'FL493brhkk夸_׋zDS<NE4h l`虄t,prh?\7vʼ22X7O0: [ŕ.)EQk~vh}Gt8NʚM|<8wv$u&iKCFPV )tn2lz S0{ǾF=ekIg2l tkR|hG?e'0Z*ր`Rug5*K;K'(&MJE4Ç>Yc=1&POa?Z{l1GwwW:-W_?n J8PE BDX:4,RA՟w5Up.2m6@߃1D, .([m4c X+$9a3WpRp̜t5lEP_0,hi[237kTQII2yhq*sl(Ak60AY_` ޫ'6QpERCoܣd{ZVdssKAsi `K4aa;M #6#F"-Q %K+_'O.*ssz?k-nk!&HF"an8!#SM`gw DRpEa<&dy4']='[29 ǣ2㛁 sӰ՚S85{:{/3=B #ԅ5vwثb<G,aSX2k4bE , y;2l]Oк#X-?f80~W/Xb|I,ޕvni:~ `7FՎִ0D!G"c*8Gz)v|V; Bl]G\H"H?„ؐ1#Ud&Nٕ&i_ٶ|Ui8 Micj"[hB*SY^e,h'Ӟ˽-΄ӂ6UP ܨcT<wsu8⚪ F }bei4"PN8ϑNG?g,*Djs`(Fī\ikH"iezC?+rkgd&bIhOv;GPbQL31t2"qT6}[%y~Ga`$69:)\#a*K~TeW2PC1<_`!ǰ4B  XY>?=Tz H]wGN.$`Lrk ]7`P:5znFvlb,v6J8T@ 3TSD0J#Cn ӈ4F&6*: Ő')3+O%ѕFX5T˧a8=.6*|=Im f .J!fo#,Q[2Y 8wȥ2Mӧo22^JLv`Kmp@lC˂.`T%XÌPA K,/-DM(H[RJRke;!n a4 , g*8,.!r(@.Ha=ucE`oKjA5)$LE9|+L%'*VY$L ?$q yhKL?t-L~e˷#,*ҍf(| ԆKU%P>ѐǂF ʖfh.0=F P9IK!h$DO&p]]2.g n(`nna9B@hl\x,JAvW`œT|+dš.GJPȈP;4jhS١y:'#q(NteH{ŋl1Bw_9^_!{OD|̲d14< B>pWv{`pO7rkܠ顉Y+V@6+hh_5Mo gzHoHL!ltt2E& *+jґD;[ dSdy'D9dPgGX;HEhDtɨQA\f,@86>WN*Cd~8{Nu;] .4<l#ūc<>6Pnj*u g9TJ$ȂRM mH!gպ옹HdsUV&r@`qW;V`0!85hAo) B`r0۩*8S02`h B;cbpƥ.z !χjBU11u1'> \ |X@䢸OϞѠ/D.6_O&pr#:f:jN2j2 QC* Aa=f>Zv;l3d(HaV^C*4Ȃ wY8BBz0!%Մ.&po6t+ᄸ:vLfOK#Ýc<>²nԾ":jaQVE Հ FFZU4QpX+$Ccy)qC Ȱrh:p mѿ=A5܁E9rl) oݕUIg\oa|k7{e}}eZ&'KADT, T (T,AAQPz ^'Lo.d&3)݂؄$|~XZVM,.\>>pAja~E02755 cQ 著/J@ \"9$Ѹab H5;+XB?;ml.*^+h%hbͺ"Îr}WT|DX.pŹ1w{X{pMf'6BC{+C5-Q h*jBovD|r O S 4 >D}OvrA?{̰r{)q%xTBNNZɋ 1!,*Pvvk&{D ,XirrO+Jg?A=[-(,ISH gEd:7K9VeP:PDM[]pLT!Ȝo%<*2i2 +K*zytӖ"2:2lOGddAȱAfQĬ$iC"c ? f pY k$feQVpbeF)&r(nOJ"ШQca>H.iw0;tTIQ" Zϕ`,\종ˢ6JMlx5R]ଭNmҘX`㑲AoPb<\fI@d g,hN؄8 M}cr8DHă%ؤ F'bVR۸jeu dɂ0#%%))M=:5:0HmLkfRS.]x-F3tY$ע봊 ,`e0~t ՘1šrѦEè H.b,:NW5NJ]n;1 <"B8n٤2nI^RJ9"VoPT9.$3Q!w\t~Ko.b˰.~/+rSgt<ic\Z ѰaKq5и٘M;ɵe! )uv%NJʼn#`ⓛ&)aM DEROiOms('軣%)[r}VSzp&;̖2XPҼ c;IbWR H='E~itb}D~> fd 0oiad@."!0FG.oM!֖ qʌ^R?/H.䩁~ zE&y@yGb{f %ΒTvMV7.FftܚhlAb|[SZäPFB`cQVV.q$[ÉX*.ANf黹grsO|`r"XǙelHbtmqqpQc$֨GP&PJnА·G>܏ԦHC<>Wԋ9`?s'|i R A^4zBw$OXC,3&];\d,E#3*>% >V-8W,"0KdG$Z^s츉ܴr09muaf ](grG@7gl'!ܭݨ,/xh8BG"f <~73'A.+8"tS ]{gWj.eA9B7+gcx[]:T~8.(cXAgy2bWެe,mc唢p_N1bV4fiz0bޟP2@M/Ir5-""Y絠ItGuz:a\$S Wʻ 2J\z~.:2 Y((;,9RRgij :a`Ľ+XkM!#-x:Je ;RJncP$ȱ9fdfiw{9}%'W=<\L#YlEܗa7-jYgADA\bD`= 3)O+,Jߠ!Zrsrqtx鹢 qQ<:#uJc?h745yX\k'6D sl-.)lcHl1_$2#MzzK8ڤq[jC4.4ReS&PII/s{,"E"*KM4~J;*6Q8tNA5\穔Xw84:^Jndɸjb>~C%20p$qpW 11Q(&wR ܘ'l"."MZBNc* HV黃p N-[?WwJkx@&@ɓX'=rWb bBvKf1LBv- (aR>tH&#Tye0]nnD>KEWe6ڀ)$j)>jqTIGĂu'df}t93yr)B[eeUMu P_Em]`h2XM~GF(n8A)"țaƼ \U fgꕌ"셉c*='x߹Wu崸DY?[CxL*PvvˁNJH$nrԄ6Vn$f,b2+Y[ɥ #WY,H7>9pԂJAZj즅7J_'ãonYd7f_5J\NQFr M1avQ # \e?c9|<8ׇĪ< Wxpa%D,&&K6'X*-5/vaᒩk# }f|/e#75UYTLK qWV cUq>( /|\9a@NCbKImd|-/&n$.Xl`Cω2N:{;@F"h {|JD@(:9f\2,g>Ec/>uMeU]ZCl1+'kɮJ0s V2 &ew "vAiideVΒаhP-9=Dgq9𖒇]Ar(t@GGd_DAë1#7?_XVMfczNa:yp1'?22č!LAI21B5, ='f&g3_iMV'JL#0-.qhx$s6Adf3!_!&vgm5s-KXj1C%) slFlfB;2YyF(ZzfIXUDM{س`7g#O55e"kGS"i 5 .@ZEI2W VEhYkj*b\t;>F,Jvi2wO$N;s)ѸK^0Eaa?cO9}߽ ê7c/x UOwAg0;psL.ज़,s9bfE;n()aߠSFȚ9_#E֯Tc)n3 J9g5 8Y$I E96Qq;Eج\H.VK\2ȔT"X3:g9B ]/* Ů%G.#)kpr}F񱆥ίh}-5ԊBAffɥ?<0&\Ș2x|b,: ̲ |j9U#eUyp%WF(+Cs^Q T!N0NEp;<,أQj\ c 9$|}HC )"KC@[ q1(v9dN8/\ހ߯Č/g(7S mn׷qtg) Q;p([Ndu%Q0Psҿ]E޽n:4k~?3p[`tr3+ʤć!'zz:D)Z\j(NfD!`2 lV Ugpi(zN Z C)>'AF7 J ܬ :{~-A :)6ӆr%b!fO:G sjQzE.:2l-ܙa:.(ߡ3M82n2%M쨚e)'G-'Z6i, m_U9GF Gf)"1. eR:%bZI" Xl1ZϥS#EZ #&MZPZtD[N!Ipfڠ Aq-Qm-c[3H+fCIŇ'ɬGT^n\.FًT^U8HW2oi ]Ep*|?}8kFF Q-F+9 *\<I\v k/CQ-6Z,l0XȹT!dܲX\Tf&/G3P2e:-@'QRwO7|eў}8 +4^`۶m6l.]zR_2Ң<ʼn;LKʈ pbÕs E̜Qe(u&Dxf+L_dX16C|pI4 + a0L25B9InlN(q#ˆr9!<+\'ֈ++%HVs 5tNn/}Az݉[t1MFE͈e. ]Bn̙hh^gά'$D(>\C E=u1>Fq阺4Lؑ^Ъ$4%؁ b!fɧE!%)>s,Z]&-IbRSb9N$D4@xṫ8Gۤ[>@׈g)yO>2rz mgb&ZDX}Y>ĦEpZFX֔)SУG9Q,g:b6$fƵNK湪 [H@RJ;]UTn$i9SUjsRS?”rt^gJQ¶ЍW]^HL[cNJ`ID|Jx s7 (E"&>\瀔X \9!py5*ca !22%]}b5hԵ "xfa,.,wѰ &FR\\#1+k+t Ԉsy͛CAqʫaAvYYVTbŠjTp_*)OEl|"egHMeLt"#PYQQQys!S5Na'Q (=,{MxEǠLb,E "K.8kbti1sHy(2Wˣ*<;`%u zqғعEL?o?F 7DEK'GwW`' 9jPU_t=MARN- DU%ɗr]g7~6lћde`&bwԠDу,tSq&xٝeqEiƨex/gyZ%"Kg"#YI7",Z#fuEB hҐ{D P,}' t!fr{4Pry Wdl(sCG]mҿl3s8T8Ǯjaf=t/$%%s]ҳⶬJHM%(.CeX(f g1QSYJۘ'tE >hM]͛6%v|$JHHL.͉Erf+Xш؋8KkyƤ/VIxIq*)1UhŅ٢!EbDwqRF(ۄ)݁EgzQ\)O%g?OGOnUI/AOč *RAe˖>|>Q*cU?9%P0`+" qP+,R .tͳ!Q?` QeC@` (LcD2υ{}]ұA2h+nVdnuu3X\7D3VFѺu҇G7 0vQI 㕴-ঁYb^r++ГS-2_IT)?bqnR.I^ii*Ѣp""|ɲ-zl, âZeftT7H"dm**΃}x6q;IF:vcdJBT#׾&<#*!&6Zy:9b&QyzqFicj"LĒe-zI8'B ؙҬ6fraIϺӔ 1~3oP48?|>gbT2|p]- <\Ħ o`׮]X~i b(%R$m~,n&j8 pufYh%v "($ 166$Qt(4ce1;w "ˆUe8FN$oJn)iט>Rb1jDT|  wyp!ؤFpf>b`WW'n}66q Nq711:Q ncXV)H /G"k %Z9VrڻEOOhظ1ޅȸxS@.`z|\efq<\ d˲gTZF81P[xq'Kď-0_ndfdPBFNN""Ј%N&yvS`D-4 ST!΄s)F/,ġn9% oLc4E f&]7Oxפh_lظqJc[F³4nbiQ1ro߹SQDgXDC7S$،6 g^%PxN4M܁Y;zrD`%* @<}^9;Q[0,KUe;?-y9unL<1Qͮ1$f)$!)txX vXH{Ci %{uf`2*Bl2;Whu! wӭQ4EM*ڗ!00# ыb9qiT(*ͣnmKjB8]v)6F&y JbyU~|hkaaaJ3;Er􍘴= ) }d9ࢋNO@6/.ѽ!_z)&V춊 vVW>b9R@^ @Ǩj SR5TSMJTSM5(USM5TTM5TSR5TSMJTSMsN1hTjS+TFjj j*Pjj j> x% 5., s|/,Rn26TW?4ou9?v'Q})h;耨@zLq:=9 WĜb f)#$1}tڗ|uU$|>+j maVEMXu Pn t'\\YC%ArsAPLǾٽN ۿ ƅ<r7~s^`AY7hq'%#Lyop`@yL,2؃T A|L|t/vT!hF,a|:]n>cvmWs+VO\ܦ^Pf`&&y Н[\ڍ\Pѕ@F&nH=kKz~+N>m'^tƛ]g$`-Ka8GLV#Vdd77DS Kĝ 1g\9zNƲ=K"-~}+q86C/cpKB`!V{.AhCKR|Wm5<(ʇ.]y$#.5 e5-K@a`@H,&:U\=PƦ&&/U5AyNP^VcV\'/&o:G<ݳнhtB&gUڜqg?(X7>gǽKFcq5EvDQcD۰J_;31N%w(kt6$$x |#.<Y{q, u魰 9z7@Nudۙ\H|10ƹ7YM@p"tV+7{R}̮ӒOݯ"A㜧rpz:Zfҍ @x:EyϽ;,~nnwkL!~ ,fsxk;XPI0|揾zc]#/xw ݣBӀY vxr޻Z0 =Z!9:-_AW秎yH(;])oԻl30NrFf \l3[ |_dV[2|G-Uu:2;pMs`t;&5#=Xb] ciw z\sYZ6WnLmZ7 ^m>mxF"8@H { V[h(4ֆA-k ^XXLz7Q="O`x!ܸg>%%ES䪦j^zTSM5TTM5TSR5TSMJTSM5(USM5TTM5T;gQl!!PMej4LHHPjSPj*TM5TSR5TSMJTSM5(USM5TSR5ܿ]om?P8[%8c)jd2&Alg^[އO'OY.y(/)Fq{T9PO_2zTStv76J իyFШhXnrؖ<CqH`ϣ.SU{.TV 2c MG40}}vT&s}+eS꘯+aӨʠ-z?𮱀ׅZ58QQldf!(}Id=-uhf}c#ŪGqwHk$aff g@6~y*z>@e!H=vU6CneKv+ fcf#zNi9uE7L:Tcww\`j'{$*j`)ʐ_eq]\::@)C=AoK9.xT4݋w"W$kyX=8"P|fboP=݃4 3AxaP76!X3f[JE{Y ;]oc;p,X^%;nc~.8y.aџaMwmWs+V=lnSy\S+8 3 HlK>~*\b}jOP'ݶY=KxXz|g 1Mlʁ.}qEHa~oZ,.C[10>gM.cͶNx+H9-;qXsit]G/Aඔl,*::X<:l-fݜ`zX21FqSb'۷ i<2=XcK5|YB AX,@NkKp ƭ\cEE;dTO,+e>F֍?p/bl]t'# նh\9 cc|gzğȇb6WnĔ;?*-&X[5?3VqN S 2 O ~}hD?BiK@ѿ ('_ĵ1/-?]GݿN 0#ކŠЎhU*٘tBΈ4"kt6$$x |#~:7{`KougxѻRu~CNߗnXq%޽p O:nh<1َIW^ADH- 0#\?4X+{ݴ3c =/٘r^;!J7̽,݊סÚ Q^8'4_A'2JL~3[;+́[{𮟀;L8@rxrF\/uGZ5hK0ǡP?Kiפ|t&,d@[᛻VWƝMEޟj|5hu=v\<=L1 7c»qΧ0p"V^0\waת)1g͈چܐlÒD 5zŝ߇])uº<33ɏû;*y\!,UZn] kTVy-XW╣ҋЪ@,ʲn kﮔ}zM$4+z.4]Q{9Ǿ:b?X9~vyЉJDB{Юa#\6z5~{'_W a+`t3zC v_d%:(1y͍&I_v\lUg>_pk-ag̊ q~ +]; -ݲ %ǦVys0ݎ cpc/ ,1OF;mzkwҹ=< >=\zm }h,hq4̲=ߞ(:liSG1-XKs\fբP=P䦷zFš5`Bvlm3+uD{}ehpg\fT"dqkՕiMF`qQ~<0ژZ$vo'%st;t5.<\o{տAw v[3cuHa5^D^wuS%x^<v W皹bӗ\?2p3< t\*nLcsHfKLjF4z)gi&9 퇎-R O7u6h[yO@lO@Ah V/a ٨.ĂPYgATك##ŬAG@i3àQ>א-,f8Gc tnF s8;q[^_稧0.5H-z?WWZcʗ6$=D9׋B۶Ob D$%9(‘=2Ёog@'#Pգlxkl}|XD薭8Ч52WnA' ]]ݯ")\q}~7^>ň|X)hn[ZFW:ڢa0{=͍29c;GhFuES &`X& > HBۆlxe=uK.7 wwp5PtXua2>6dz=zO jK%E~[kQ먕w\'\<,;%-m'罋УE7oW;?gcRO b3]pxfwtze}薃qwYi1aBI`-v.~bB]kNoG2k-hhin024gBbЦK"_i6> Zx`P!녅Z.JQ>68z~蟸Oq&a ~}!&K>DA&.o68Ņ!ͽX.&OxY^݌&')(:JBLᾫptyz\{Y[$*b/VϛY1n ܘ^xf:3Oڸg>%%Esep9v"ƨ&fzY?.ic+}5L6BC %pBEΎ|^'yA #Q2LU[҈74n304hO¨nv|z߈KgO+9\0Z^s(US,~t*SR5~(ϓ$USMe7jj j*Pj@jj j*Pj@j j*Pj@j272sk1y~*9}Rr+͘-C_P>ϼGi:˅"8O|ρbGI@>?6mȃ>ƿ=nY4/|%ߗoz8p.̈TR5~4& |ː;+رeͅP)_͈:*hGlR82g/?c ݋"U*3ݿ/ Wduk V⑋a?l][&?">9 bU 0}M^OõnC]0ʝ؋;J؊oW2BYO> 1l9+M.G5+]Xx)4'1(\/&Ⱥu<9wkb+?騻!Ts~1dʍh69ZSQ-xV6,8}.Vx/v IL-k_2qG'kzw`0)ST<, SsK0zHLœ=Gr\eů۲8tq2 9cGsGBzLԍyW`53`z= k`=`n܂vݕ}h#ޘ.`sbq)xͧ1Pg!dLy(އ={N4V$6KCAec~}N\_ÎU_f a9 Z&SV͓S]s me?XDT׿8/K# ۝tۇsN-»?@VЊmz=xw~4eeaވ.h-]8d   - 7ck&,imaBꟋ. ON,MnݵA<=ϯ-}^9ͧtVŖRQ,--ep.<aU>e~c-9?{PGK[.y4b`>ٵ1=.B=n+~C_'k:t@EXP\|k7!?+sx붖9 b  6aX*>+52Cw8y86sţ0{*<,DZK < !x |}s2+0j DNz=]N`h>F]0(CR~|PQ #Nm8:K xs渶㫹?ln;mootO,{\KmACOݣb(ر#)Y"#+v}?6 M^VIMԷa5h<37SE¾-Lv!ga@t^x<ǩGK WMC7x&>;RCQV+(See=@+5픕unzt{?lFaȍ6 <ӓQÏz5|9ߨZ8:Ox6ظ.V+=r y;h/gņn`MH$XBh؊] Z {Vb!Xq<:m;_t r|s &mM ז`[9<(ʇ.]y$#׹k{ѯooLj lV\/Ը,r5u=Q1 Q W\k4M0C[thN̟c#&7Y 5Ǥ퀽 s| ^;c!&17]&o>vT!hFӌVVNB@ 4 :(Q?O:?o)dŮyXs=tyclN1"m] V❍zI'Hk ,o#ƈD'K(ݳ2_z+{>{ ;]0dyfW fFlހ.cN'x2f/fӯ+j/?!/k>FF-0N^}ش" 7 !QMV#Vdsq? 3'+.Bƒ'qtY:htSX6O=Z+O$Ĩ}NQ-U-~`v4run#G@";Q/AN'bGo׺NКߍ_ljKڝ93.= sqo~d&^+OƦv$68/H8gr."/ q)BOeMߎf ߀ >:/@BRF||z| 4|z/c.¿{cu~Ļn8Q8ЏƓ%{G{uo_<_~7GxcT- ~x٧} =gX)tm>?xhY'i<|>FzZ*>,O6q( w=v-+K|quxˋyᚍxtYڬYėOF0o. >Lt_8ػ(ÇC Gݍ0I8A|Vϧoє`$_ѭ|W=;`z0pBR&xg ^){s:~_9;km+E&?(aPF9|9~wǫpǓ<7cێ{ÏxzWCjs ?Zc k~D?O0~ҽ?wJデ/k^1.:wv?7}ǫqҦ8v=æMðJ,Yevq N^ŧdws/x :~JWB~iuH2wud5p=>T81>>h p!:0 ikyw!NKSkOo>=k$,Pf鯆wcqW=3rވs?AiS:Y y vX}p qBoXYj^Z X/F{;z6= za4X\..etkpŝ؞||(pޏӏ}>[h|Ο~*}}͟bRb7c<ב8v4z|n@sZ> '^\$#ٯ~;o>~<p\|<=6vq+q!9b{<([y{~u5~r .[x)[ѵo;/up'=Oݚo xc$3э×y,zU ߈uMvf_5<ҏE+TBbV)b&F { .!w8vF}n> 47‡Cm} ҽ'|'y%F98 ct@cģ^)Wܽsz@ )qǶ3_]_ .PK?p.=| zÏm/9<o9>?o"^,zKqxӀ8(DH+7 bO-Ѹqo÷Xrmv&sssD"w%1/犯-c>|Zw>]x5|颗ba"^oEߺ  y`Ӭ9C X|.k|_T>4n%qa˸Wk_ M8Z4o?J[-\rcА{$F~w|/x>1,m_O7VB73.=/?24fx?ueEނ.< CG;18}䳪9 5(洵(]49iuiNstӜ4(49J9iNsiNstӜ4(49J9iNsiNsӜӜ49@49iP:iNs RcHVmq|Mnt!N?Sב[zN ܷ!\A >O_ Zϖݭ@а[i2 Ҧ,.&$XeOn ٯn0NS:0uu_[+~kmXieYXBI~9LM # a|F{ mی=-m>y0?"1rnrEUã[0-זfF,GZ1u#rr|}dxpT`(K[ssH0MzzX\afpF:j#݅Bio:uFht^&p;_>s8μe'gƓB+qïsN[)7ddTMU[ݣF}MB'Kg{ڴ;<$ݮx|ϥ IZLm\ /@ Jay~.mY-kUTnnDw'# ՔKᖀy-ضr=59bj&**tS:C`Ł۶I?dg.a/x<1KѲ\ -^o *gզ\@BnW@, "r/gj/rn"!Y ml4e<ܦb!`ZВAgӋqaN,..\YXZ,VVȤ3أ;r G~,.Oa9܏W)%> 3֖Eh [q!sQCkQZo~V&{ aħ7t_q֧a\FǏB!kYm1ѭ }0?Kޗg]X풉*(pw a*DQ@@ Bj~MnRrg%,Y^K--)0]  ’NVv&ddUa^knuT"WLQP@Yf /+ ńTTsr R.17֣*sl)(dqI F"!aD*4BdU@dm &e,,/,*B> "#E%x(#D^Xٝh5 E%GJصkZ[@VfUR,^74+@A+K+h.dEEXܬ֭rA称"lX,/VQqA"*&J`=xa>ٶVJd2P+djEl#' 3WǏ?~V҃S6p?DxQ|y:add!@S|^0a6K4ݕmi ~iO#)$o>NrrZz.FC4@c!SmM1ߠ %Anqq~x,jenfv%촬nrvQ$4 `G02:$#)dJ+'%T)Ȝ3#P+uTwc9=XJ_awDA> ʊ.fKmw[";.sWVf4"f/7"`TL&dazCaeۺq Lg(".ƌ,bw:X^E);/7TM#,`mb1 ٨0ܪ]+GaK2 2I`tˁm<#P6@h^tڧk6`g*l)ҼlvPfh*3)|H9 zlϲlӷ-(l #(ZbF%$ TEf)؄[5Had8' A6#]RpI : U@,0NN O^9N\BRD`LxW ЇZp( Q(elV+d1%T (ͯ,gvqIq)[x[mo둕$Lbn ˬ@ dl٢ܵgB}Qjt}HgLΊ]qwqY$*մNdZKL^-⑇,l=*ǩ=SĶm[aá(h0ǚ-o{1NyՆugӷa{ns|$ҧ>mŧq7.ی׾/o?Mo {Kpb_&Fkns^H l"EpR(`$f-M^zL2t[Uⴞ#yd2Ga Ck`%󴔍\%;:LB_%эlFد,4dfM*$8L1#cX U/ iC݂„e,&,P4,SkbʮhPsq1#;#7k\w^hl> _”,M^>=m!!/L FH\9enoDoO07MLtfQX={&5FUx,!ly%Y0ٴjb*e9O V;(FYEgBA Zm_W-gȌ7Vlշӛ|f~]ZXnZ۶mCV eԕ⒅+ ´l,`?p ,>7d9W?Ŕ&$])d2ba4,eL:kQG(㞇.˞ g➻kxћYC^Gʠ'`(;:oS&ꗤ"G>"Ʉ\ִAHՉ)\5][Y PJ wb xO׀GI]F}ٟEdlHJ2@qՔgS2q nӣ!K+%` Jii(TdUm1t9_k^=tM`+zLB1Pf4̶IvAay+sbU}!o cZ(- ,/Qb4*a_-ea-e!!?xJ@_s/LS7R W*ݪ GBp/uba i5ۛ:GqB  bvvI/( A]h4YGs!@PM!Pa7 Y’/- cjY(nd w9/;>?"~~1_fy/_ӎ[bF5.>φTGIHf4}F=N _-[[°hWme&Dn 2fo 'f3XCt ]:t[XDZQ'Mz2]G$eP-ف?*8Q&ۨQ)Qk57.&q\G]%,t!]*UmLi]>K9d  Zx0A yE~Rug>/J@8߯!`  CQ ȵK%Cĺ|.̈-@U2L|.\sh1i-2%,.MZ5QoV"bte|R3S;M+rqݺ8LOxaa/Yyav TTkږ BehdApȍ| ~zJN"? gݲ(xǼVL[ML}Jܑ:82Y}ߌk58^M}ln55voC9.;N̈IS3Am?P*#PIԠF٧%3Lj> |_&Y]&i( %lV :)6 zH[JŲL>@C.qYmN}{9ACL⺰7L{nln {e+v!+@QSZ-2 `0נtvETiaaNL0ޖ2nʏ|^/brRwűS3đn¤eILS=S7] #K+y.,gPtٴaRvoO@TQbrb˱M*D91Y2X +z.NxRɋEai읨Pȕw'* ڽsF,B\j.mݮR*&dZ %P P-^n~b?~l61`ILŐb>ƶ'YPb@( .@QzzP),//@?NkB pJ0r.ӔrMka׎! oR&"ؼu,}HqKM]1??//8 ] J+8y<>W ${gUkhXn=B|@}==غ e<(P'`_V+XxEc Xo; 3)}UT"KTQ_{eJyϗ섵 eY 6v) bO?oo :FzW3_#'wn|ᄷ<[[g+tT>.\NK GS /9bFUc3-;=~+#}U kXR&` n˥uK"[\X:I =KgQh-v:|sKTZf`j a{3{db@y-TF 5iD a9Yb{ 4GX;wmWzhpL} fx@XQQ`%b;eZ AF4Ffݍ-H/M" rK{tԥ^jUH,y/OiyaqG1陞YšT\@9/Lװ ?V2 F ACV u9A5 Ȇ94hיN'MPg4F!~2ei 0bw chfW\4(P9q uA0s+mKD#a(s ~;~/\[\w6_U~Oė܈׾8鿝.ąw7 \?ӷ'up̭٨wEj#5ozHJw(09nۀJ7$}f'JRiٌh -.vul\N)ee 4m-i5j*ZX ($e2ЫQiNj"E iofl {f]* Vf bV2B$GXئKr'lt"vFze0Fļ(o[T5ͱyO$G5{54?>őuH&LS.R%„\GFیw4 %c/Teb65C'Oha,VV#51ᾀxFYcRA lڸQǴ,,6nQ|<ާK x{4^tyT_oTЪq"Z F_^rɅ8iG;9Wu؜9/<oNgaJnʼn|^cνǼcP\Z&5Ɔ~$rWN?d1A6۹Tk+s>K9+k5xC?*-eoNVھF_dvw#4|[#4d*ȼ "ҳ2,Mw ]I/|}=jq@D:բ<R& dqÅ CۣlE?jԀd" sT*LVĄ& ]Zʨ$il޸EY0>Nʀ؞A%Cb> ۤm}i \x᮸-2b Yl"iJ6I75C^T-ȹ R Rh8ɾtdjdUϗ _PgHdvȣl)3ӳXZ{06A%_m p&W/16)"HiCN  (Gw_51C#ޫbw6,y0v1WWƋ ٓJJVNsש)/CI7y]ǭf\UӬȮJYZlD(ؒgZDjwvZe GK鹵 hX4 Z-;7]C̺6`}UDMݑ(6oڊaAu7зhxFR#U;UGZ(#W]} j6cd҈cb.yݩ, J%/ T:s̕Y<U/Ǒ:\{zx"QZwCX@9ҲN3J].MBXr2o( k h2#ƴsd1'SLl}a\*vQ٥a(c`Qo-x E!'4--;"`+XJkLmħjlC(-֢VBA:R}6lА-=b*\[REYLű$U]oU0 iy3 cj ݰec0K|pF {Ċ2pK@ j)8 <9.5<Ʌ)Y,B* * u/F]pM-Sqa?x}t L!YXQD52m!Ӧliy .]8&KyQ:mm7(PzQԶB11 8[ԩ3{.8'0% Ĵ&͎T,<x,C1RXT5XѾbET[HaNES]cuk [U&sYG-[<:5SZ-OZ87;SǕ¶=a>ܢ(dk;N)Z ߶R>uJ;<)҄Cj0'є-Kւ-'eePT+XJ}e3gI7s vsUa{uS/-Ȃb !̒("wEsϵtښn4X7RiipՑ) 6s6$U_°Zaٶ7GZs%aم4C%AҲ8JpHOFIMx @wY2Τ•ii[dXHi6 MtiͼiV$HgMj/Fr̋ɪ5zv 9UˀČFS]20ZQ(wEYXg2+jNrQ7kM[ l\d.]3(UjYUU1 K.H4=U1[fX"!D0A~Y` ^Qnݻv. 42æP.Z@?Yn/pre˽jceq RF6™JP/vSlK͖v6cVQc(=tgUCIQzQ#4Ws{пi놴OT$:NY7S3hi^922wbFG0~Vw3 -8;M4ʭ~q%sb;š(7"Ԯnl&#;9,4i L~=TcE貖ac-J-wgUM_sx\Oˣ;3v& nGm2t;LP75|C&={n|=BS.MKLy\z`/7լs3D>|J`e*3ajаG>d=}qu |GTlUG䵨A`(IateXRDxXQŔD9ʶ h&k4˙M45hgx2,O3Ȓ8*bo :2fOUEb5FU0sM-51-CuiXX-ۥI?>Pc( Խ2EVMǔajrdwus#1O=,迚:x#74~M } *9@鴵n>Ú-d]Rmo4:÷ajEZZ+HH7n;lK܋~5s<'Q^[RGhzXn= ^LO}arTϘ˦;cJ7%5wO٦ kvR`^,"’+BiKF)lj:4tCA~XU.Uؔ`N{wgWxDc݈%^9@B K=c1.AA8P:mޮ虝 -\ݝ P&8-̞U? dW3Y$us@@ 9rMy+i;/}ETfU]1dx]¢vS`5Ps7%R ŪYSwG(zZ".s)f}NM6^ ,M*^PY"grM%aY^ v42 fi`Bŀj4&~drNayZNЧ`[e4Lτ0JˇrZа,=N%+O/@N(f6=J8 ި/󋋺b1*;`nj/\Vga(94jOtQ!qw\\ɤ*r`6k,ⳕVE}rS˓;R;82)YFS%;x 3R벷m%k/f)2uVa!QRLM8V2iMn15cZ^Y֬CUl_eͱjTnd^1qs( ̧q іnvGJ gg5ˈ/$Ay||~Ye 65>OMmWi@0`0zzػV;u9uo9p.14]f%nYhNcYѱu*Q"dxmf:K¹6nڌ];ttqC%V'4v3Q͎5m[(}qrjg" ⽦-ȪB'SRxrnŬәA a6h| Lnݍb(ćF[fO&qO"*~Βc6TTJY-^0Ռeax|I|ŧ&&0/Ƚp'%;\>1 {*uHY["~Tem7B^#}V(5}~Ĭ} hʮT # Z'f0:Dި=(Y44^({c2G'kMFI٪tD kMd\Ybk"5 c7,nݻ5sj / :@5j͖W8}4o5%Ǘ׬\LXCS 8>55ϙ@}Ksnl m$'dt PShJc}!pn~~y f"xX`[TV0,r/P/^aerzC#I4H3|brRޫޒ@?:4ø< nj 4_Y6ݚK˷1xA5]kzZb1 ŅѕG^?qٙLz''mvcY:$) =Ƿ3CtQ}nVYQl0qRƂD"a1JPPmG#K= }DIbfv KNU FGy~Y~| K+K*G}2PҜ!;ik1CdZQTA?cMPf ̸q@jٝt*{5Cv ǵ(-V:- #7j,RM_+ljT(*MuS A+{Cw* X J4A&ĒIlejuV2aF+-hƲV LvMhߊ&xV^5^Kav09{Ą a ==)VȼrfqYk5(PVDMĊ, YJ)IDATxwtٚM!$zt`W˫" JEHP)k-$J%֙H{>sޙ3;wfفǥ":] R`lPu( JA((PQ @D)"RE JA(z\OX\;ȉޡ^&0""; %&>bUJGҹ?HE,>x\KjAXQC# DD0zeD*jTGf.as%+7;o(ZNSTXu(A6T)S3^:;!>dߒ$Q4sm1* PL;.ܚXHV"R |cMO<(J"JmIHolrYgiEQ'j*/y:tRl{(0&hł3TXup+4.Db6IΐLw7U׶}]]jժnjY֫0ʂ"w9U{v[`DIRNΝ^:ifoצ 'Wѹ9(qRHH8#\l_HHʌ#"bt4ڡ`<Ԫ&z~r[ 8sz!zZZxEwÎ[,4M(=Jf؎]Q,%0 ioq?*fd=Ȥ+rFt,iY\6֙2G5/Go\@eɿfd ˿%l=7z9ݭy|?ƷT2Ǿ7|kkjQ_1ݺf |w{F<\Ԫ?W%I Kr%پ@i]Z;ݨݳûWί 1Hա#UT9+r۩_pۙ~ɱ_>ׯgկ7Ys "}t xhDs=wvBxHw.ܹ?-lҭ]$Y˨Ӈ]V>G)#$d9˖?QN JGBT* 5s(IR\$DDrR|Q`N۱aqZ萎u_Ng_tdO55jDDD4LVHD.K:}3@rOŰkQ_[_hx5MUAH!23`vU+X:MeUHU%Q[o:k5(6nKy9Jp])DHpPڧ뒭d"u#r%{2tx_"d. ܇ui;^ ~Ę\֪~<BV@DdLpœ;j[/ a9̧ioћڷٱaMoݽWQM^}@tϙZf9LJȖ_K+cto)U2òd,ክU4QC*ql{f#RYHl$d%WY\jeǘޫ}ߠsz]+o+&5:ތ8&\E˯[߿zacK.ʬūOG̙JĽIBR>[ ӴQjx˶dBeH6I""X槙VGDo5><. :&dRJ>*"".LJb{?vzkDDRƍ+Y窶bh6:4f՛Yk~YJd4i "\;uyN뼮H~9 ((>weJ"+el#_s"lDm6u"JgvaDg_9to?Xk'8c7C=im t2RqK=9[e sݯVv'%Z?Tw`wJgvβvϦ jew_rd  >m,M;f\rS |1O$M׌[.d~_?|7ֲMu)TaRݒqZXq V4 ֯!I ;Xd^X0믿\5~n篙k{G}V?{z%V*{c߶58hglZ%㱝K66mysq>laf-Thڻs_ݶ[hC)aGx)Ry11u""ZLFJ,6yh W8oz&9h!ki~m~e'Ǯ7@ 3޼}e"wr9#W")*+YmDD@BFYtF&و6$EFY&&\J$|JTD&[~fr (jTjH"#oU7PXmaz3ZmkJl땟v^n7~{hboL|Fg/fzrj//Ükk~Yɩ3sK9TbrS, <5ۛlWͱȟ&&gZ7nBi+e3Zvyf96tcnwF|u׆Y9T|6eSRM _Lٜ,y]ޫL[i_{ts_*z: לٝ;ncּG}es|5_~z܄1 wGy\Q(]sqwE>9~C>WgNF _3=I^aڦ%3JĎFsaf>ti*}r޹þOhף+#"b<ô-Y't{shq$w5oz1jMBί$[OTE K&>&Юsw͛3 "}9#(b¹ۉ4u~/'̾w%>U/<%s&E\7:a\S3Ǿg9щ!/=> + a'2ArPA>zzQ uYn5ifr~zй=CL)WdXJ'g674SxM+|+ި֪iYk婾378ԽEn_{3@NK3n0Qg aoL'"♧tDJ_e@DL&dX#~>Pl <7TrکDYmrȈ-MJ039y*V?aMZ|үiSΎG+&n0aź/b!)_ɢkyO'97 Y9h2㭉jo|6+SdOD# XKvb-zy>}u%"ks)j8xX%#3ż Bq`N5z4~шM2Cq gbΝbʞu+[5|]Yi|jL[EDD~7.v-|Nۋ*zËQU8m9;4D</K9|r%f'o!?Әt2jmf׷NS#"kUw<=[D/ 1/6v&.5$S^LDDqNvڈ8|N'H {Ok nqvMVK }~'m- wUJۺkN=cPt?_'عxP NjV?'/˞PJX'x=+a|$cDN ^ݚ"ZͽP 鯊s5>(mW{wMVխƩ[rx1Ft=hz=3eS;vy{qCMzIKNM{Wsƶ5k/X osԊQ+flF]}cY)G_uksTU}o$|p} ԴԌ{`9f}j8Zcaߞ6OSoG8f&[9W]nܡ].sݶwMݍ7ҭ~rT{XӐM {^Ɵڛ au;4l{jKO1Dnġt}Ѡ|ڼ8'|P_v_'oִ9$8P2Rt=pBæu٥pno;O?MOD/ԾDjr҂Q_lժ=5Bh#jx"6c)ǐw#8Vj1bR&Z$$5:.9Zo>Ɨwt{_74Ż:FN;Ku cWUn:k6u i*7e+niE9a\p'mD|mW8;oyl.]7Ng퓏D⯡8""z#MR]SkԶۏDtf϶9uz}7:yTH?+vrm;X>gObܤ 版HN9/gşO ,Dn}ńgV"bo]vqT^Kxv\yдz7[`~dzoխPh]8rX]aJ_?_`_Ú(PkKQ~'V>ۺ_U{%SZ^Ja/pL_燳$;3=7»};jBx%ۅlw3հ(zU 7Pp[s._IKI99`U%G^F܈gCN=8E<7kE?$kl1;Gn[o.YZ_s/,*Ё[ޠj""shɊ 7pDBAF=4yzÎ+T'pkF] N5(/JIp󼚐̓w:@I!طqM[y=st*􋯂UD|~ߺv=iy\w'ܞ4yͣE۩~KDDO+U&2_ ^-&"-eKNsK s*Th-S][ ӻJ͖י}6#"YW7?e¿csi\Vm}!7~Mc.-`b옔rՂ_kR6'=3?0NcM"""f_uv "?^EC%8Fþϔp#v4zW$ũq-Wolط͛Sb) >{4wBw»i_<)O;vy}j?AZ7䪿.cZg@`Ts%5Ԋ?ʘ-ni>x[Jna-=xFʯ\"J-/ voC4Ƥ W/1wx3&:jG-:t蓙uiͷNmXAEw3F/а]:U)+'b@5kЪ~.1#UxҰsp;3|ˍ:bu}75zrAKpNS,)*zU[t/ڽx*'^nUk^ѧv-ٷ1lVu*d܊>DM ՅTL:ڻThrK/v &NDDqWd5KV#CɕVܵ(HY%:܇}OWy[_%Ɩl0Q]G#HQp^OBRE JA(toJJ@qQ8JibsPQ @D)"OsIdYP c ĢfIr''I(*Փ 'kZPHdZȬ@l6YYef)(k)+'I=J9 SRMy=^s(FʃI^WzFzj[hO=T4: PZ=((F&R߿/ijf,9kղӍ"a?#mu"5ob5<<O7J)mr=F|E ?ڤ] \P2q2'22M38=)&Ow4YԶG#ֶ~&FRwף[3Vݤi5 Lq`/1}VII`e(xFoGJ_g|O9Ӡ?7 {MpQ-|iB 1]D?i^?%Sr$s^zJ{{10BPazϾrOӍRKrҨJTjRJC5S!% Zb6 ٬f%[Wuhk$sfҹMg8sMD*]Z/#^;eɦC[k5zo*"⦫[d_&$߫깫x)f}\']ulb/i6{,6psOFcdM:x祊 ۾'OKsvOK~a>.ؚ@<7nkO'9tۭk@D|%z2š{g]?]Nl۽qG̶3V gFDdK?q]'h.55!9zA? TA *w*ybEQ'gd˶/=W.Wz߱nx퇚/<=/3'jԥg{ƨ;Ne}ABQN?/HGנV,/}s.prRpgZ&<6'd!"N*P$ʜ$FĉHHI*qqn9mQ0U*DTSkwڨ7Gxd1+ WNY{:<Ϙך2KEkϜI3׼2=X@ʍ[0C5{NsFO~3ܑrȯ]a-]46cǭz9zRPʾfOe:~ܯ q;'XwsέϤXK{,h@控& ')֥H>Bk^ 9 /@9GL}~/ƜnTٽ6ܘ2Urڪg,)lo)=b<,{WDn-1BMGԴ+5+hE'q \b(/MI$I$qnzڹ9ٜgL:/;3"[ƅ6nIHoԺmJ*McޠFU;5~^m kӭO|q^]u<}X!Ī7o:$ީs-W Ɖm8*4iպs@2ّ1ڝƏykQ>q˨k|ԇWt&!*"|om*GD [IMDt:jMOmqVœYUפ=xItDlP~kuvQ1;czv6eeoժ2r|Uҕk.v{;w{B*&9}-azA^szWcNZ[OU.nFT=Ȼ+w"ɲ,o"U_=6*{R1A:ְgP:YS3̓ʒu>{F38Pjz֑Uc+3~=- 瑘Yɉ5Ϲܜn"{}^!٫m3Mh޷V]oveʩ& zG$']ӲxvV2jYbvũBN٧c5^eCћ}r}#; DɠbUj[~In-淦B Sߐ.;zLGW j_r;EA?>Kvb选ݛ-|}f_A5K!<2%~sn㤒݌Rijd#"Id,mwMz3G8[ʎ@߰|HsnymT!")N.,}["so;>s[kvܲCdv-zʌ&(<79a}^Ʌ\=e?ױHO2"\Q|;5cMv]}Ey<&1ME-#ιߪT}b n[}*!kѾS7Ҟ˜FJMd95s0nq-M"BVZc;$lrmй_dd/G^}eҲ^Z|kuv:a|[)2DT5;x D$g_=.o|ٹf^n 矹}|\FxDD*J֋ :$`_W˙IA "npUl$e:vZ""ٷ16>U!q).U=xrw1DD**8=,J-3[sɫ߶}^OeAPWj%9qϤ)g|GߚJ(|մ>J+rxVt%gvvG~ |PMYvdܣao-Rvyy 90qC$")=-QJg*%##=q"f\#Ef$ ˿%j%z2 Ե?>tyƫu#G^sNC[H]yyEeQeVX* mG+U2Ok;IC:7e:}EWAW>垜u~?fW?pI"+BN7N^>ʦk66\Ϥzd|41?ģj!_űe+S\W j4G-5"_{uVlkuCwO<[nX}w Yx*V,<׽oZejaܲu7;[I`͸~9b- Χ݄K;&_FvIq М#3(摥DNZQ^ 99gnMUت1Ck 5KL{g-aR}}rx@ɽ^^ܘ-0qK T:o_缣AJnw v2)*oT[rNh-RwPᱧ/CZ""f#Rs"򚚢L$$$GE"IQ"ϲȆ~ﭗ0VԢ=櫻V#7 zȆb BZnW9TT'۽bwBGhPJw6䞌"<Ďw`z!KG֯ݱD*0aOKޝ+AF9'_\i9Q룢[Q-aߢ%{jzCMGvzǿ拇tX^.#+cV7:;29qu._bj:ɻ6/Xwˆ=TkhxxpϞ%<:"ήZOQ:>0ܪ6mNt8_=cﰰ]x녜 :V]sj69=kvZjwp?li ;[>@ZņgcΤl^YuԌ룒B5 9wk*MaDP c?Kc*^߻9ٷe\:جkuȚ~z?͛5=m_ FW_|eϫ}}=ުBpĴW:}3M{0ʑ-T`<foU"jVu+ЪT߰ԉxYD?s-9D"HzH b:WJ7xR~$ʲ3<rʆq}VG3_2xϛzeMQnMYT}LTu3vm]oچ2S,]6k$zOcKZ;/!$Zw)O(IY9D2'#=frT"xCrZ+U;< 4C'<#1k`zύ-ot!/ d೙kr ^81")#zNW)+9JD{>_1_Ep1Wi*z+DK2WsC~ DHyi%IYYC(S[<ضyp잿2CP( b%<ȔFYJʃL+>SdOi (KD* ݼP |DV6RDEܹ] RDQ$Ie? ,0Ax"QWqKc|ޖFPd} ijZvۯnJD)?E:W겁jxSmiR|MKyv<{S'?*p[i~4>DSĻDĉbNP$%Оt=|en.Ns:H#/ҿ)/s-K]fw4.Mw?mFѰBWwТ–' < =V<6Sc^GhZ~|BBՑ}imO^hl25&(`ZDdg9 Cnr!5ZrՐVfz<*9EoLfu7 d^IsR$""Nkл;n2 DhjE)y+`ۨdj1'۝@&6c6Cm71wTtޚDߞ"KasR(wDۮPNG4= T)N8]U^y3F8FDAEJ=) WDo#$ЬKT׃ȝ^:DU3QU/j-@thjZN5!;j(PID#RrjٝF.E7vX=-lJjS< HDDUө=4UMw"-4va9ӼFS%Go *JVtR#"bj p]b^QFB~UdI'mlrs ,z5_Jd9E~az0'@wySR(8d~> ZNn;լGR9!֝BC'Qi(4JGK[Ht5~|Ѐg(2_ÉIɋYJ8>|/#fI9KMΑMIQC&Zpܼ(ԋ\HV/רZ0}ߙ*d` Q3^@w06Q '+'=I"YA<ʁ򇑺VQMewqxA((PQ @D)"RE JA((PQ @D)"RE JA((PQ @D)"RE JQwl6[FFdX,,s΋Fc h4NRaW\+8(24 ;teYL'''XqW '''gddz$(@!B-IRrrjuwwGR5t9 P&h0 <&K4͖닻"tt4Vǁ---Mmy[zZZGqZ%dB.@9!d*ZnDZRrBZܵǁt&2A<K4"(WɗRRg߽ Kqxx=;68z4bo5vyZo.P@2hLΔc .>ԙopU Q L̳{ZS̋DRQz)=7]Uљ?_ת'"A}݌JnLKIc>ΚɴQb(xw;wk,O!^ӫ-U(Z64s  OK{;P,@!ώ뒲-놿潛l=*Y9ג] Vɥ#OOj0'fLTI> \5zL{c8 @(xfC6?;զשD^}»5ڹ M!%?H9$R򎹟UpтWà8Y P%י-L(maDDg#DTs5_Slo9\;8ةdIIr~'NDd;nbOU [s1BIJg)(x8KyhDIWNd6kFM>O7:lfzKޤVS<|47qlߡJD)3%*TZ3Nߒv\OpW}9J`DQ7̀am5ϺPD)MFc{H]-2wKnrZEdݰ2UoNMz{&T+X1|nRgӨހA,ި?'vܱKclߙI'![_&^fM e[_"3d1%Qu*RUyǞI;xyJ̙L:QlܦJ A<)1[1@1FϞ/V)%NMKuPᗲ'*}쬓wcoxuІx!Jnۆao蟱M{ )ɜFyT{g^MxD@LL...ήk\ԪUhcc] x4cc*-c, ,J+:@e1IJGhjZ< ,ոTBDh4 (l6NRhhsI"tI9wtt,@hzd2=(f&Q/l@7x-ApttlYYY:=e$I&c K)DiI霝U*Uff$IM]/PDeYu]\\u:.(Z6''bf)@cj^o0t:V{A(-ZZtyǰQ./MEQTg* 8n(p(@D)"RE JA((PQ @D)"RE JA((PQ @D)"*":[(ц])IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/frame.png000066400000000000000000001436011473342170300261440ustar00rootroot00000000000000PNG  IHDRHW|tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp IDATx\Sg_AD(*VQZZu ZgqoT2=d Kxy>׷sN;9ɭt!xa%%A⢐wBnţa [[[yGk-oxc[ B!)B!)B!)B!)B!)B!$ BR!=%3]MZZZ&=K6Siՙ{HI%6gnc[$DZĤUѾ)uI\~K~?uoE%s}@j~Oqlj !P~X  !`WJVkk ނ8WĤ-W,r R+5s+:#VVFnJrwp5BMV $Idv=F="" KA#o%7; s0l[c3 yͰ]YԚ $)>΃\15$'uyAwTk!Y)pBGje+ڴX.]CH/kNeЏ l<Wk~|ۡ VxZLƍ4#QZ*kJZx_&)涯FwHPg/KMFW7 M3%V3[_UP{ڋ,>7UF]8FarkdTXCz}G{T..ң?+eyksg6_Pϸ?l۞:ƞXs̋!_0.11d|KegB*ȿ%==47*ȥl__k pu, ̬)jojN{q1!T)eA UR̐ʟ!+9{{AGY+-r`Þu)nĮpe(;h ׃˂}bBC[*͐egFRhBHTca;cPi73qyd]ov}´{ zo04"DW㼹:1EJte/ƑVFz)W _ÛN !޶Ԅr`tպ[:Zz͖rxB|L դck|9D{1ّ ijX>,AƮti#v%}@*Kв G}8?=UnAa=i:,{ (̡}OwBH!6o޿Z=rg*S5)~ӡD5Q^)*Po䜲mT&MtlB;YxL˵1OTXQDqE7흰0lUKs+;De_Mc=z #<憏i{.?^ #){BH@e$OÿIMJ%2ٟ>..npqqj$Ȋɶ#XHVNwg/无IC\[wEV=E:So#R)^ӎ癬#-2{fw1eV)0բ9"T-BEŋۣ6M__nD2鼕k>F?ĎчH4}mx1Kkxq]> ,h뀉 ;gSOwLxwW^ǻب +ڱvRW~M4(EQk9|h4f;>ׂ$HF VzOv !XL";x (U/BKN !BH@ !BH@ !BH@ !BH@ !BH@ !B H!xRKfMMzm P3sO(@I%6gnc[$DZĤU.< }Xr):/g3ļrt~΃\15Fp],GFP3ƅH\wK(#V:4{]mFbvf䄬.6~1jNs~{ݕsY?KgZCc aV }돟5/tQaFnتd'B2G뺹mzl)~q;-~e/3zU?*y80٠&w"@y^es0*_s6&NѲ`SM3-SZ>},:Gsq(;Ў'K2E'G&rqz#_Z@;rm!dÔ;HLN&9)GX=[c3r?O뢎Nŧ"(4P} ^ N5d nn|0{)=hZ-Fي]CJ۟mQU',IƅҦxw9wB Ό%4u'2jqBSըJ8 !YP*{z`in++_u~i00=V֊";ń RMJP5**TJq3#jM:{ L?tS0v[?mGM}99R;[D"LIy4:֧uB2gs[dxq'Ҍk !*~ﱰC^(0Pn桧 h4Y<MmB7+w(MK3a7g/ZL,xv.>oB-WT,.w8):1K^]|,Գzӥ{tyR!Aw4$K҅/E yMGhY` U.8 }X}q*l}|ZlsӠ*͜ gF4^$]gF̞RVI);Z vqd>; G, ^{~.[1ՙ-ӝHIӐ=X-|ݭ4BH@Rv$+ź'h -ݷg!C̊N8a:kciJ~(%L=_} 80юCՂVD&&WLu_?3>Lf $$x]dg͚':V3 ԤQBSB''[yCZAԨ/W C#^ Ck,hڬ*<AZ53)GCWcuG*h~Ĝ=Y8|7]nOpjq¶PIrRAXЅr`tʹg^eP Ss5I+^!ڋ͎nPd+=;?f1ʽPYAxsxCjB 1ibHˏۜsC65f}Ӊ39v?* G!$ ɕc7E".GeG^fhr,_8q7ٶ|鷘1 JorC ϵԻy^71iїʊ)RvQhRa?bP?wZ˵p~e=k5hfw/QrL4tIJ[#zAjQgpudpחQd s:oچϺ3cH˾;҇%M2g[&iE#9x&^c\OၚN{,P6ޘ&rCIi[Z]MM5}=H*q8Ow*]AW2γ];Y6zmc~kv GieB*Ȃ ~Ր aD bhc:.$x <5]iiɔ>  eU!k,vR.{Ny[QxB]wcc ɸ̨]b&~W(qؒᰛ4_}F|J [̹!+OcZ~!g7e#Vy9Ћ]q+ƅx:pkMf&Z o7TT\!^/ !BH@ !BH@ !BH@ !BH@ !BH@ !B H!xRKfMMzm P3)u:M*8sp"A%"&:G| K9Di#ΰ 3n !c(?,MV?%_Xnk5ir5lvoAuwgvbҖDEiQ9U0KҮ9yBGh<1~EkYK%k!G^ H]#~] ٹx۽a(n=WX]Nh̶56 +E]&?$N<NmSora:cF+1G3.?~ikIpѮxb͜egB**u\1ͮL,ٚ(f[6Kt{FG %q5$aTjЦgTW`jo`،Oa`Hb{ ycb@e !$ sL3dByճ56#$I\.$ OQ|!BC շke Y78֐^7{(c@,^SeaڕIJrC=wws~=*)(7> s,ٳa !N*{zmzɫ ~[Z֞fa`fMQ{X+>5~D )xTY:WW;c\4+ErM^3VOqk'̹FܤV~aO}cj`B1w7ldgBoVca;iUPi7SHy4,h2nVn=@S%@Ҹ7Ξ*Cy0>!#G5HnBLΘ0_OOKkk9*Vt@{Mͨy8=QBC#CmDXbjivv|&'ҒVS}q k٣7G< {Mr}FfYî{LzCC pޘSy'dbC)4R$5ꠕBHuG;kvYGg͒2_#JRIJ,Tn:v9χ#[-9\^(ޮyȹ3;U,fUǩ8^W8SRA$#=K?ld:VFZt2 ^|{JThޣS~>p(UvV+3 U!>ʃZrM3~L b@m>#M/}HʮaH?/,}sYkV_LA. B*,AƮy pn6o\dH^b!ԯ5Pb"++ 6uާvHY}8G28{:۟I7 !҃[CHNfpPVs(W7orN6*Rb&:6McdݘO>˷/p"vM7g%E+Ņ7ޭV\,[G2=V FvcBɕc7I?B;GœRXޭ...Vϖ$Yq76u>T|T_8+(Rʓo&>̏'4b+̩9~Y67R$'-,^NyA:2b(2U9rmg]1դECfl;Yh$=d^k)?k\0.F6XlBsPܕL8˯@{U-]ֳuJ5stE'uSQ>,Yc9X{3:?9_ VYߕlw:1,OY*eO-tlmm_sWth23*U ^U9Pu>L"7TTZk-}0ʿL!B H!B H!B H!B H!B H!B H!BA%3=,me{ab,#c Ӥ8[˪B׎8u7>Eׁ⭬ 8 69a2 )]}(r\[O!g3{ ;\\%*:O?ȁH &=fB{m=!fOƁϬEdZ4jOyHR)|aO{uFP\۳Ƀ;Ѱa'XBD_$NM+7+UZ}r2W~x:7hM}m*Ҹ&[9196=cilӵ__L&lPܲZ3jKv'4U& X0qògkqN6Kt{FG %q5$T3cp/Kˎ;~% vgTN?3|Z䧣{X>;L|Yԣ}_$pFe> } qZ=62yOfGJ6.FO4he=Xx(; M%KH /HS 19~Q'IuQG'QxSJ\[G/S Ms|ߍf/GK՞IL-}Iyl]&m}J] RZd}eX59{%1#5+(0H]w3e_]A~xs}vvţfB+PAh2a[76lBBZy?v\řu$e`ajJz֌3~pz1_zxl HLwW&%1C{ L;1n|wMԹ6X0ͩ\niSG>B#4l^?[ҡNN@c`B2,YC:VZt2 =%*4 pqr)UGxj8K;xJ*Wl\x'a^MXB*cgv4(%Ӷ~| hUti<}R(i+W HM(FĭJ=ʀnl< ,]w @K $OL8C~C,6(Ra؆n]_&Ui?W֮;4Yd}uz2AjV!G6ѷ}Vɹ]Ӥϱo[G|P6o[#Jo?xǔ?ak$ zJvh!FAϭ!rz2g25lgnj<:Fzv 9e Qm5×LْHܸA,ƶzo>?t/-#yrMzQP\?.C82Ccy:ɶ#XHVNŌ_Pz۷hRH*,0`O17ДMŁP.)g3쳄ߣa9&X(rs j4 {\ߛk]ذ1k`δ,o1U4x [{EEq(_Fx/,P, Eŋ黬ŕ6o8dQdr+A+6|VVmC|9$\fٖ'}~Hѽ )(*8ѠϔJ ̹zum~;Z8z<0O{hHNղ ]j|0960.F6XlBsPܕL8˯@{,ϪC֮cY:v]vNy[QxB]wHw|8Z%9! :pkMf&Z 8\pVȒPʾ/]v6A)xRƂB;$ BR!$ BR!$ 5xvxDDS* R!B=˾P\ BR!$ BR!$ BR!ětbpg4z4|Ldᩨ):FszM&p7 02sUi_Y6;bҕ&aDw~jĖèmW4%1lcpO4ue*vDF"m売&9{)-UcSOXs'ivM|^QwԌ)+J >ed!$ _Ԡc,;lΩmdM`<[_-ɡ8yg6-+8ΠDǚ֌_՛uSYԂPxYy;I.S|4qy!S&n#eCZ*|g}7mrfTFl@뛘Kk]' kXL(C ųTl(&mΡuGf2}}4Ev!$ _cJ>KiM1kVULք{3F^ccOelۮ maէG'BH@> do*jnڑ 'u\^_/fws;0#f=ilsi9@]ЅԒbQvt )YzKPd0{4(\T ך88ny\ Z:bgML)E4!tA9'Xeu>=0'fVZ")W:3`G"hqg )\iЉn*sIM4s(\k*B*UkpwKG-UR٭tez|B_V]oUE!fOO*JeX*88q8U3qmOUu7!23n&DAXuXxó+H]-`u0#?߻-uփHZ^...rExIIĻܖres(Xv}Jh#H+Lpɸ8Nr;%~_ۃ)r'j8eXigj#(7K[3T0MZ4+Ǥ!*d-[o1H!)k H9-+7P@!$ BR!$ BR!$ BR!$ BR!$ BR!$ BH@ ![oa OytɻZ='sh.+[z:mG-A?zJ]gcwx7ZBOf(m?̿qW1qؿ*1G(P^bf)_vHm -_̥HMN^ZؚN˯Z >lf|ٷ‡8? %fKO"6:G6#㉋|ĵWs?Ȩ$'5wdq \\!:BZ'{+E5.h0(ZUαduR NtoSg8RW0" NlI W WVזōV3s}f+ꎙ3X:Ļ%P#vؼ76r^ Bިy Zou6N9мKwrwʗO8Κ|-.HO؉UT33`ё5^4ec TF8t#3ۣ бjo5'aZyrAb1@vV&4ʪP`'&0b2O}sޱpBLUVefaѰ8g&xqٓ7kg`E8CGsя4e<--?+VKR#h-O+.i$TƳ{r6m]a[o 5ҳ'!y4u@ߙPcKIs{T\ ?Diሳ&_vLL on"Afn>Y?Y`hM6ԈT.)1U3"갧=Pcs+]:2wYKS*YMرy?f=%_*! 0WZᨯuc+eX!zoP ބ.mJΥ)Ϊ8kMQ#&n)瓊St)UE|5E0+Gk0CNxL~y0#o˘`i9HP nX02UZrXb[EP=?r՝jPF0\%{ ~y탩NinjsM9KbŢx=5JgOʛ *(kyYrBnh-ZS{Xb8a0{V͘w_Zʖx"2-]5)Aʾ%?Ƹ #G}dw_tK<*e~im}jjɟj1pģ !0;9USgpθ6/t>q|&.%|.Yz=^FeiG"QD8zhBE!6g7LǬֹ[ɜH+Pr|No]onR^Αqݘ[1a9f/m2yĐ6_ eЊٴyIxMYF2|Hk\^ze Lݫӵ:]q2|{ `r\=ߍg f'Sp{I}9vNC:7<ӏԤ$baj${o7B4mLAy ]Җv2gKXcfb{ť)$LC]:6py" iR致ia܏|BPengґ/zg=esl'wzb|~yc`֯LE|8[db[%]6nTX.hI_V 2]unwH!$ uB<ç2ﻨ:ҩ_9)Dx166VXZcafuG6{JA ǙapS*bޔ\qDymJZQb['_DC8UbaЂ2|9JcJղPNK~eԖOVRt:u+Ydf2fѸoǵl|~B7B H!B H!B H!B H!B H!B H!B.;7uO3dBmNdUҪzh~iBӠye|#1!-e`Th!S^\+L5>l8-7іU)vp&ru)<gO>P8Jshӄg(0r9n]<Ȳ<uwa ^IckCT1Z/n|<= 8{;t~a-WN%`{oJv45)VӦ N'Q\eqüq l7ׯ_k>9~={fM|@`2*-G2xa_Q#=Qih)bj@c9-a ׎p9"7xp!Nd⋏ڰ7ws2ur2/_Wlxm8-{y?2!/PmKVKǹR\9lu3jIX[[ &E 2淹鵍KGoϙ$̱4"s ,>3? CG JeL *IgR\7O勥v"(oƆ%Mqa E%#!suCۜ̅+v!aYEc g|Ha۹6݁qIJWӠ[~Gxp(rB.j&I@Z `υtp|A;>K !C쿛p5>whr{-ҲsNʺt)ż0"?)ĞABԭ*mY2KJB\w*@eD"E^T/ iL \cJ?}L vwp~+~uLQ,`9JSSzawXo$pbMX,)JiƵ14qq)h΃Y1ʖg1kN&?$3x?K&oC;4kOO~hB;_bdix42G16ΚHjzobB⅂P]_17ӗ;}uE:kh23|>BH@Scm61+-ff]+}ZvLwn3[)JafPh[FvBSΑ_6b y@X1l_rGx5uYĥƵs}x.+kOy˄xK1 Oou ?py)o9-K*qz`{zYܲ30U-]-|N<罖Mhw\Q#geRS3U`Խt ӠXs&nG=Xv1֛y)@ Ruv$|>G_AI}LV.ʜ&Xf.˻Y0%f;z?]ߝª@zv"J ﶭR-%T?.:gߥo){c(g:-/J߳וAf0}y R w_, ,󤊝J ::"^VoH@ WvFFG]ޅ?qzdD/eeUf*'keT-Ss' $GOHRYbcmffWwsy1UĨOx҆vĜOUЪ%,^<s6\4*n${, 1RBiֿ E!D=\B!)B!)B!)ogWDDDȻ!^;R)o R!ޚ Q eF BR!$ BR!$ BR!ědnlÚdOoT4 r?nYw3gR|6ywDЋk|-PϝƆp]gcwxci ='Bsok8q^3J;s}WI , /UDPn%vcX~{F=XcG{X{`AD)tv"(1>υݻw2sΜtDzN=K̪BegCiWm'KubCS(]gzɩ 2 !U=Wp _u~<{ 9~)^Tfa/^>VtY$)tm 7dW"D}涘* &O;q-O0^78.OA!,*dsK\Y}_ 8&y^!ڴn,2QP}o_(eѭM쿲I ׮]˄ 8~8666KSb/R?6yi^?UΨ1ԞsUms?>+Z$F5©Ŝ? r>WQ;} Z… tܙ 6`` 5r}˗/ %$$ZĄ9sX#A9^12͛7Sw-,,/WB^xAddb'7Y^]]2w4 am8 Zs;RВ.CmUxY ?{GjIXT w/p4 {g]Iɞ^ߒW"d1Ax}+"oed#V>tĉWyҥʹk׎'O͖-[Rq[ZZoQVu֭M+Z)EJׯӧ׊Çsҥ/T U<}K^rxKMPvM8u̎Sf;fh{ c~kN)hԨMj1q4wл͟\!g$.Sdi ƉxÒ?v/ f}˂\ٺ5t_ Fu0 2}!yh_3~xWNnHs[))%K$W\̙RJ.qmıg̘1~V{8aZ[[2Z,+PsV$ہډ;t-0nҤk֕!M$03(-[0sw_Jg uO1.<;QV S9׻4 l1nPqgi#˩ հϐ 845Y,%1eʔT#KPB?ງ9a@넕$ݻwҙ2e"_|ƭ[R=Xw>6bff6 ,R:tJҘ\ OLܟPU/_\lZ %Mg1mrWK7{t9Ou~V.V`afXڥPC:-7%qy\>GV^1pCvf8A8"ӿgR,aH"L(E ;r(S]tI5$\^zilK'N8%,^ϝ;SNɎIV"ٳgiB ?%sf̘1X3m@ʦO\41ݿȱ*\W 0m9? sυU]40̜9M6i(su(Q:}KO&~6oɒ%׉N2#k|(FX"=~l~ݏx(g+FrivX^U'1YmQ[3ެܲE,Yй+w#D.38`lk>> 4|y 5&Fu多d`#a=>Вe^A)WG8Sg{5]OIlҜvim.knqܵ"196g(QB^3صk[pE>2L,)^ Vn;tuuǪ]uuECҚ5kBV,Rw^rwrGp`ךfr~*JvDfRr'7o[I! W`uR Dr կ_m۾! EP՘\o@J̚^j(hۊkoi A_c,Ijܹs)Lŋ׊[.nf͚myurrVy(FBΟ?O=0#P]/h"0wSGPP>䕉E("9+Ź^T蓟wXHu$h)$@~V)&XѲ*b}imш zֈ^FMP$߾}[)Abn sF{{I57r|JD,Vد8gj31KVl#D׆""zȑD{"&:BLu2:Z G_ D>,AWB+Xv͛7g=VnQ QڷoE\|'+~:rH ,Y?\ KSRLy~wlܸHb;} XX,Q$~W;,qK~Xrpaߓ)$@Fe"椺p"MH7䗈'NhuCM6ZN:؈:4D!97b}!m6m3aQ6h@~wž*TuVgI6}]gMbĈxC=B,Xb;뢋ɊXESI8aE AUz~Cnb1w 2Ee$AZ/!)H{Z P<4B"ehL #DZ:vtbH!FpuhF H0:vv`8W#RyEQ DOa} ա['URYBNmY.N7)!,,RpZXZt !VV'7y\J}?z WOzH"l {ZnBŵZ*7oro ,+kѨ#Zu{$bB?%R %8Dp$, atx;uX/p:! K +b)=hM%,ńB-E^/1IB$ĺ.D"s$T!Rգ ,R|t%ߎ(ZԽ{o>BEnaU%ѪzG)QbIS~H,OL:D/?׈ŠPaPX3 pEuu",c.\AG vsik$QU5jv{DVXxoD RUyГ0FfM/7K$ lFˣ;́s9ą˶H]UD(/>؞c:cᰯc?㯿k#vsh}4²vH֬}("&@XFQE1WJZ>^'t),=2("5G?MpHqbqjXvA{]1% /=e7U 3wFsi1{ϫw9y#"ng͜1vM !CިYn6"2vֵhZT93ĚhEfE42;spa8qɩ~8rE>DQ턃[Bz*Æ ~w˖-o ?L@?$zNVkbK+ $!LLy# s]28Wa]ksMS+UeTYLv,L~x8$9@^u;kf̉T-jes ۉ{|Wu,^z]Tg>}?̨c5;3.QtJQmOߥX9Û]2"-U%|!_@1W5*/ֶޫߩ0Ɓz3I|F_),1h3[kpkԨF ub&,MP[ȣ1ͤZuD1nvJb@_v^5u.FFR( Kc﷮+%cG 5\<-qc\?ULPF4C{ҧTAL"oqj9g$֠4P=lp-fXՇ16+ېvz79F퓩 [䪶D"FaBdXAMhJow31ñ#Ih&#x0OMѾHREIX}5Š2hHKKQXBDcpE"ڵkD 1U!Hkq"ZGuS a :T *,iQi|*SؗR UQ1VLJqOĩui@U2s_o}lo,96\ڿF14qɣe]Vq7'9/r72{Bt9˞&LX#^Q;av}7ˑETۤNzyyM^9E mq1jQK8~xm ӨB5- ^!"(2NB,ޗ\qԷDvq3%it#%aBP榊AI?&0N0{JjØOΌ /$&BC,\y]nx5lPOb|0Ǟ,y>g mؒ'Wa3Qyno`²r~f[k_lp 6eT~3*pdϓl1؂R:\ȭdgdʔ)iJuq Nbk`Ġ!b5!~K."䡛3H O>λD1@LIj40䍣Q`SG*aLo}cxc'[9_R}6tͫ TCyP5NTA,)? Ss>ǙX#M:RzF䷌x>00C3,cnDD8P·(Eb(DR}ӗ&gX Scar Amڴ~5z{MuiW"<(/.N0)F9U%BzoƜ9&f(v`r& O$&idffƆ[aei}zpUX1@7D{? 0qN> sW(Nt| ;wn=f$*tAIJ?:7_dž9ܿ<OvOg̞hw̺ocKFG1#GѬ0LIژcy<,׽ݞq˞mtsNr'GdUv #4}FM ʩŰX4y0W]tG9svl՗:I:kCRXX"=COSkJ2:).>%(Z4ZsawV3kd `@tJyPGM]7 0WAx?@N||[yCf emx: ?ec{W1߽-Ɏ:Z0y5'63j֘fݖ6L]QMO:yHR_-J,;Pj>.ㅫ\@iQӪ{-H<׍'L̘C1hԟ>"M dN"1HmxəsmwP7 aL<[u5݆^xB@1F-%\X{͊a: xZrh2z#[C=Ӛħ$6iNa;e沆6]ߌ Ѡ%yP U-*KVbPDe"uGSS IO>դVF/Gf£`:ў,iȈf߼n VgM4r}{E)߷ZMԫ yGkkE6ʜcSVq?R23q6_:{m]jy>;Ҥg!jyC@~ /-78z}M@Vk)깂t@9#yӿ6Ĉbƻ!Cw[?`?X2-Na7׽^\v>v X`⚫iAW/B"KFțFH5S.(Q1U@HxrY AOEU S+(qXQMEk5P$)hS"nԩ \jǏŐKOU#(O6m%¤S+q5~͵gkjW2@z~ld61RBeӟRK7,"R ?CI^O}z -II1e)*KEI*eb%2StQĖyaTijbmށm).\ǔE);1Z~yvޒ _ә೭?_Cѕn5aMXD  S:6b~ c,Ԝ_ʣcd51%sC TPFPT/#TQYTXTkc=0k1`h琙" NQq+"ݤ8/ar2K*93f}ݧO֭ ׊-Qih_ϊ놙ThH4,eO/79xe&"+Z9Eͯ6Hy 3bM1IU1H =z^+ q]y' 0NDUNb ; FToQRe"a\z *ga5sj\x#Gj_(QQF%;@` mc[VOZ™FFXX${4O2ttkSr.U(8!YPR{H7i,d k(m vJ|kA^usMF)b]Rv2{\Hqŕm ?)y[(Oq)d4"tyI&S+W{aeeӧɓ'O2_ͨ͝7W4wR\\?|.,FQ #&rkDvdͰ0mbM VH 2U+ոyxFAxOcׁ.ފ\Hk)*ݦ&yScPt18_e41 tw?n^(3gN21֡p.T&:ޛkrdhX-9 2!b̡RX 2('}ej͢\_ E5CJJ>HJ{NӉg)N$⁳&9W<le"|Bl8b-k>д$|WVq|@~̔ҵ.iq޼yZYX -k׮վn۶-ZtN؊NL"|͙P1e,H7m+3/CU-ˁW'6yc9]<&#xl vv]ojB@ X)vY0S?+`AE)Sc;T uEG%w}W§}4h6669ryA߾}sʥmw /q5ZIyjqZp1_gAa t+BsU p}5Ouى--*Rb]2jAzH+d(neb\br7d^X=Sf;?~c]ڀ4hsԭС!!!|rҧO/͈L%к\ESU6X~ oϣL`-v:|~_r['3bcuG)Kbu ە"A{'J\~DTـ#oqU\p=|}׫W3gj_{yyѸqcBCCdΝ;]/K*+9d$c%saHC l29sF֙!XϬOq:yd!.GbeY_*Vfwby; tRτR_ S(ۥKm#ٳp5jj׮/Ӵ.V ]M i{li+hu8yHzW 缈O6sY@~ "M5ۿ$}f*˛!%gQ 7M8Ǐe.]]Ȓ%Kf> ?#9eh Vئ{`kfD i{c6%v_F"bcH 2/_D2KǶƚjV?4,,R Ϸt;[܉qIVPoc9̈s2fuY_DlАK^mxl22evlĉ?2ǙB?$K.Ǖc5 v-ޞ[I,<\PrwmAjB8h 7sPf3ũJJ?p~\Taa#GNIDq$ƚ*Uhc-(ψFJ >3I%%K$ԫWe{*H$HD")H$R %D D"HH$TC|OįjHS5H R"H@J$HD")H$R %D Df2[k1b4zh30M`!W"|MJt¿B+zKlZօʓ1}.xhco# @Xxq30軅ߘé7?6#+/utVe)6lR_؟?ϋ,fZO//kW6x`3=\k2 /D&g'{RK:,)BUk""psscʔ)iCs$&^ǵ\%*^7qEi1̀ޓc?~sD5iA~b6Ig)aP8 [ʳ73\FQǹk7bFZ((#Jw3#1t%m䡗nVQZ,;$bU(֊ Y Sgڭl=1/2V '}Kfz;L_+Kk>Gߓм l̙3k׮qС4OeٲzUkƣSI|-`w.ɫ6Bτ73gرcQ\O#.`mfً.J&[Ԧ5Kj֣OF:};<03Y 0Bb2,=oFV$1ߣGŝ-CHvLmXuSWp3̙ok`պTuEoSD2JUr1<_Ĭ#V@.L+Iw \Cg[XTJ@@@ȋ|<Y0.ڋS޹.Y`f:ѯ Zsҿ^]; 2B"E 2yhPa(NZbA&S12DyD"R"H@J$HD")H$R %D D"HH$)D"R"H@J$HD"HH$/C 5!:a,[=s?7*n-oC爐Z"|Ii`iz&.?I`^y;ff)ev,=4iIKwAaYQ;/HޯAfܘL/U!779xEcyk/zt3J#!~Nerݔ2uM ,AK-F?ݻصi5/~c(|Of 5nl[*ʗӫf3w^8WOСrVIft*lέ".-Ffd0Sn? dz?ؙ~wg49bC8yuɓ';a $'$'Ci:VxY̢(ѵ0§ ⮴UqçZ9uw iT&f8ȅ/D ia`"Ro NKdBMGeBJπ 'NiӦ?~TaSʩ5&,JgY>f%gc|,mZS%V&8բl4cnQm&T"dY\rd*./ߧ:6%X2vlڥF||ΒeX@hժ.\slذ/çyMu\'bh ixyq'ܤָI4z~G| VZ_GxAѷy"@JMalԐD 1`srlY .|Ø OoؘSzuuX!U '0t1fY6L]nOH2H]?0pJU>"fycThD drR7Vru$]E>Tos+^-Ȝ3;1Ffɒ4Aڟh7u@"m=!/_aފtR+S͍)S|1ӹĸpfOw6B ѫ;5:6)hdMBCjf0zK5zT_g-Yا%*nl97SIpղ K;w q̟??]tBȐLι0 :[{g XgH5e(B˔%ʿ4tO-ԈE^Z#\qzy͢1>o=jGQ:Oa\ Wx3,lW&sBKq ̙3k׮1w/ *P:pb,b{xU!K⥄/R~ ժIL J 2CB5,z%<Ҩtwa$:Gp7jʻBx{{3sL;y+S^ߎ(KՖL8Lj -i;ad*1%ɞ=;G9)G֧΀WhWi&ѫ)cjA Yc3SݘoX&Vҵi0wK1ʘN-)c[n,58Ϩ-]\@J<9w}POhdd2RJ N,kBݡ3\t7s5kִyFiɇvRph1-۟Y/XRY$@~2X%u1Y17{_l 5Zľ)ѵ?Y[v=cb$lDZj|*$`2T,H$I R"H@J$HD")H$R %D D"HH$)D"R"H@J$HD")H$)DlRxj,;R4/rg];!_4!vp  Pb4۷A:k2ٚ˚A"%T( Ƿ84VMeZ /PLlWce9, ѫ}[+.paLs%Iq5A_N;I nl\&(c+M'.eYtshY8w9PQySVj4ܸq#[1 Ti.T 2Ftm@Ŋ :b)ǟD?ۭ]ZK.xɵ c^5⓾D"$m75xht :+LyȕP2J(c)zL2. 8Ǽ.9\;"~6{#֭˽{Ңv@b<'C"vcKD!5ٽ8w} x[ԟ֓R1 ev]1,F'hUCu\&ت;}ѹlq]ި9qqqaĉ4mڔǏcccrXTNō6e= @r-)q"a,R7? 晇);=:c)A:Jt8Aʥ@0/ <;>{ i M2a6]e0W\8#l0x[=CS_mUܖNkP@[yp^\jՊ .йsg6lؠܯ/#q(0c8jU8A"OIqhRy_OZqu L5Tr'2P.]l]mGHn@b)MN=_slm35F&X;f"` F!y&9 P"Y2HWXlwc^Tq="gp!W2+Nr5Z6cLTYd)`Μ9\vs~AgeU oy/1= $hB^&+({19]U_ّPn=QR䳐)]c" G cm= ΆS3tAAnn42#ÝG(P0c׼:3PRφ73gرcWDɍFxܺp(;rͩXUo-yhcZFj|}s4߶! }Qw| \OCdK_Vı,J߆{W6zmD&R Ŧ;Cѻh4ێy Ĉ&3k!Oqγ66q>s厯`*DzX{Kl egB:z(iO98>]wҺЮLp1P煬n7,Aq+Z^q4;DreL|WŃm]56wĬ#VJ3s~cuyZXOŭJ|-ӧDW{mlIЯ1Y2l(e-dԂȆ/A@@Ә#IۈxYf5H]Evwdl95gԡC^8Mt& 7̏=;}'|/be_D"I+DZJR)x%$ @J$HD")H$R %D D"HH$C|SSSy$҂H$4eA:::ʫ!O=i$iAJ$HD")H$R %D D"HH$IH+.'kgySGG*w gy?E"3OH~Xz.[C3 AID͞#Ys5 9v' LEq4kwۘs#ʗJ~sW4E^33-,(_^ϩ'yYU]Ȕ Luh1m?* 3d&&{ZFqgN>ӓPON8HEIW8\G+^R yi6]yv~wydzg^/\۹}\̏PY?ĦC7x"P%!O03,X  Fse8ߖ<Ʃ׶u4IpZW_^We./vTo)&O;q,1p N35a62T=ߘ}c(?'["w tږHRsB,|cmWfQSgH3`Sʩ5׾z|qqЦ"bVgZ,n) p-E*PSȨGbk31_Ee-*]jFQP}`M מ _r.cxMt3؎QXeU%;}sgP"""ǸvWsUK 窌ٸJ&g_,޼xw$Qx3\r˒9Ŵ:'pe!"c+\{S_(.RfCJyə#'a㭐e?ϞoBdZZiKxd2UfU)wG.vE. wQc?Gh=lsa})U ]ϹՌbSt ߻ֱ6{3^WUwXѲ3O[%v*1`X<œ SqMdX}H Jz:ӿ=97Uq~~vvʹ@&hY^]]2w4 amCC,.-"^;ԦYŚy]*AsdNҵ&`?<x%v\}7JoO$XWݓ=T<962}tG]fk2)V(wiܱKj-ȝ,iEl兔.Z(Oo҃\ovgĘ4o,aT}Wl 6b|{um]ev>I-&Ƶsws2d:~8!x\9E qy!Xp'j;,H+.KFITqOx\cԖg, 8,hqkCpRkKk[\ ) Idw$@r[ȞLfμ}g̡cmKt%w!W9iVuDOʑҁ0wD둳Wv\I_1%a֫V0᫾|yc q*hMSe]gEN4^Sg#_NWFjSK& "hDf_@Ez ~>-,>aBܕ|Ǜ>}1MWл?(M/i&iYغ q@4 ^n[DWA(.el%f&j ͱYIS_BZW3LEVf9Q #'HK\Ɨjɤ&w *+.3[b^0e LsvF#z_#>S{ӷ]CqMi?@֚ _sH*Y8SBe]0Bj-K׌d\+yrZWD):jzz4i*`ָBE,`UdDU&~f#g>T/BGqz> } }ӡI VJ,υad"˪vkWP+R|miX-dD'=5]NΔrlL=݌~;g^^:RF.^tNW@FoPӕ)aӌA)eytZM ?Dtj2fVoA i\vN[kYxH2]mxre+ud_fv|e^&f+I7lτ5(+{0yi&IgHAAHBC bd|}`XZ;89)W`pGkz; Z.Ky;[||~ Aiwlz5˚87tDG$)u.YjOcOcm9SS(Sn8vF웹/"*NGDDng~cӈAӲ!Gg3NmFv(i.qE^'үaTC,Y1byb`b{a/ .h `w齿Eu,ϳnٴ|7Fn0^0 !M* 嗨?|yc|<׮S3Li5)ӑKRu`G6T_>䌞/ {| N0L²dSFiNnDc'ʌ2ݗs#55ms^7JSZ:>~k h Hf|Bf7Ok||8flųLRBg_z,*.s@?~=iYQ?k: Lg(Ex*6P#F)ԃJrBِؐyFt*Kgr_ScI3v#~vhp$9XRsg7]f$JuMH<!a*f1H >_9=4Tތ0Ϧ[\LЅ;Ŗ~ 5}ZG4wX ]bTuQyeG_T*12AIw]JCg^yMN&zn`̽T:G^&>$py$(\>#iSBfDsINoNew _%zQo}Z6M|9]6ZVlFecճ$vOZ. 4\W0v iDi>nՈ{'S\AL3.10m8 FcPV,|*>le.YԨ D6=mXPR33eR'k eYb9P$pZu/,ogJ/OAT]W骶s8ATy. Ԏ^)jv8TN-f$iƹ',iт81-k8Z>d{>*C̬~ИAJ;M=̙~ʃQ'ک x̤ǡ8AGž4u1ҫ>-rf4eϮ|﷜c7P1js{leW 0~ƎhubƌL5\\1G_kk?:4ihse.Pyf3l6_tt19_;JZ05b֜EՅ^JzS ,4cf7&[%0kZ,ˁ- IJTj\CEo?r|WNcw7cu q$D%j.kfx0V֐ md<_짣rx9Tcc81 {}2Y^SۥrLʪ/{1;/k' :X`J'mLK/B2RIy*iLC]QSN[]f7m"KkEo#o]U$j{tCDGmꒈ ${J5+1yO/GNN9S6,BbEp3ª`a碸BE[h. DnPԩSwLEXȆ!h,>ƩtDtGHM[gJv=0lF<r]faTd#غdEp%.'w2ĕSxKd&W-F!mr-VTRsPӟ2}A\\ ͸k"Z솲@k3޼.3KHCKz$\bZWMYzb#,)Y2VZbІZ3W[ ?jڍ\x?e^gV-[ϷCVC3Uѽt*:`kJ=19+ k5/Xjl}1 >SНx@1-snH Ȩ2f'm[҃Nt+i't9bC+2Ix_TK WYe[;\߷ s۔BBna:?:(SىO3V<FJ0ʌܚ0F#gxEE%ރb#00+."HAx'/oKrܧCʘg=q2)J~9b֮ClգR ' \όtV7k<߬{"Pm8f1³r%n,k:t.T3i^ UZېCi _0u[RGm*f}/0o+30GׯKQ Wj,=cjJ!Ѷ+Y.Lqӡe~A^V+g `x{:S\k-g=*s*_&;.tDDDeo(111H=puuUɓp le AD "HA'UDFFNq $ARxgп!Ii %Ax "HA RA) AxkV|+] Bn3"akJ˸")$> '&5h #>,S˽=߂s$Jq}XO _}u~%u^Õu-CČn/MFO=f%fz쏔Q>A,7e>PN2ert ڃo`M٬99(nrE:|Nbq75wS1DvU^|:矙NGz5~#V-b'R.rN2IzF/ڧg'.{vS }JemY=8gvDz|{\HK$&& K %~t4ƅJ"--S|{wJk!Y *tO,GhB{ `DVs8}6oeIgM?EEȫ esUXjX>w곏ํ(`S߲\ψ8ά:Sh}諒&KҐdU°(뮅;v]|[v%UE;ft.W;e1ܼ>/xohcyяYkx9-qoɓ4:⎏R|g8ueáDǸlʚ/OL2WԲ݁ƚΌS_SLmp@C##|Szgk/ä`6Mil6޷e5UY'0קla)K/e5 u)\\7ntav;8>gC\6sˋi:ώKQАȃ_aCMGLEí"$j|E^+{eMBIё-h47z~g{eFT6dIԵ;jq_ =2>:Ȩ.4ß14*%,+6]=+Ɋ ģ~'V~')ܽ7Q~( gYosɞy)NlL\WC3+Aw=*E`R$>>E(haG g쩄Qxthu꼇6ĺ)eMgA&sRIggPqqwκk6/J 7\^YV)$_eIOzv#[-MO%k4;ϲB0zk X8 ǂ*/ѾigY^Oyu9 p; E6laNDʿFvx7C<)`יd b}:|ה'6٫=T ΎɭWHM5?^t%Ē^bE<PcnbD]%=ҊD)ES{RGAR/Yg-b .N$JE+|{5Cio/ rΌbQbqtYdžN2ז`>,!}z/ 1fsMK"׋G/sʑmz-v`f{'%*Ddd2Sbdzb[ =dO;XHhNsh9W_ E| Ӷ~e؀bVqaOπL bd,*=)p9,՘0%|Ͼo X9R!FbSYRDiG3z!鷎Tq}p3Rj\ 9υ?@&=Am|RF^bk#fҦg* t1GdoohUs-£$k3HnebS99H+"Z zA%HX1Gi?e,+,A}Ӫ!!GP|{zx-,hI{LTc⒞^ӉpnJ.X>?\w3}{)Տ/,(q kIL )Z86xiZ(+{l_w'> >O8t0U|%hT$g:>@\d$SHMK'3'lTǫMȻ]̵:} =h8:_iv7^_=-+wVf)S yЦ=I_߄; qhCn"R  %P๮1\W{hsv_)z+ƖEc\jEN)XbZ~]*sgjZck*4. FZǺCT;""Bgoo/D.R쉿* ]D?A) AA AD "HA RA) AA A R:D]ԥd|N=ʭ$>kY4aoL-~ Zˤq}XO _}u~%!!bc0S b׾\SptIl8#z^h&$R/CI#a=>)nSkƱh Gߺ^!MYN^*g8^WHKGڭ[ƥhYo˜7}.[ѼV$d=:Qyncz]/{mKÞqNUr 9/N]nnnnu'<<--HOuj䗻(eWk}a{ѻ",_}3G]p(O:vk\}u-OdDguJSh=f+=АBd~~u- ndK״_b]GQX=j;l|K64k n@4KQehi)/vH׉`b~hl؍Υ;_X p-E|ݽ)qwzJհ[O"'0קla)K/e5 _ 6gE?6%{i:0;^6 q6e3W[h:ώKQАȃ_aCMsCUJlRe(-a[{SZ+7~??}`!MC ӛlgJwGn1Gr{΅ Q(G|ES)Q=O\L9wgUb>!”ZQgRWѦe(C|MM - ZVˋQNUz3ҶΗ\ !Ga]o6s#3:*lXT])7i!X?voZS˯ rq{S#p(@AL"4ʌу=#CʣC)QԂR}<F4ų."**dS\ :fEln4rIqe._ WTc*k5c}t,b.p:Y-: MگKi%LNN_Awɐ$5B"HAȅ3ܹZ]<~3b-O99vs`,Z2y+W!˫X+m JڝW lAa?۳̸.3q N$ܑVˏ_虐AFu9qU)s'ue.^잕dEJBQ}+?fߨm }/ NFI<΁p3"ɛ7RM4Π"[kG<d%D&wϜJ G^]f wB扁-@n cK$4'oCr,)#* קmAnct-, N/HŇDETf~ώ wx*L bd,*=)p9,՘0%|8i߹'ӻ۪Ywip}>IR%(j*4JeYN_6콟|Ex dm& -Ql*mFsJ8e TD!]/Hd?hc~:^^^o5[S_߮=i7a7cr'w|'!Qz(  Z2RHH:?vidM4͔_QFC]8]!5/'!*gr^"OMK?C2JK%9Vqyu88f*GS2C-JЩhN%D \NVUYɓ?4 )ߤKZ``f Fom[r)e4) it4wnSq>boL2%'%LZ:4-ֈKzqrB8CnIB"?~[qsOgp:vI8Bq)WG٥\-8a.]=dٺ*S~Ǡfy ^eAcoǓRM d "-6 kq9a!ٲ+"MK K-lFw mZГMw6t,u3) n@~K u(lc\lB=9f{P~j=cˢ1.AXZӢD&ػ<ܙھvʪ,/CDVn}) _VaoooEa }E6 R^cV.r_ AA AD "HA ۃt*"##e'8OGؔRA"H]IvF"HA AA AD "HA hn/\Jӹz ÷yݻ<]~/ !v'c xXC} ݧrӒ:Kwbt*w%r(WG#$~,I )@e# /oеH7<㯌jgHJd0b n< vJ3_n*eNpo\{6>#Ks2jgY$QO-5@jC CC WQRL.j͇o挵 )H4'!cDT_F7ZFO ˪67-8~ظ%{PiԶxW$|]JVRu>'M,+ $v/LؿgqSMG Ҷ6>n'ѣR^2NϣUm|<_ X gw=2xxg~{}󅩌p.So{oeJ\4Zt Gp5؅F^dLf_Hh*aA#Z8kT&>'c>DGLQsR^li:k/=271aL;ihc.-pڽ7_Yyf;-s·Rip )SŻ1!Т)m3q|;)߿'G2^!)9 fe)E:ܤ.5?( +lqT}Aq3`# st^UN +#}w pY;+Bm'ŧ@OmFłJZʹ9u'_"cr EwbR}ہϖ3ؖ {*KԢ~L*ךqЗ'v^)dO5ą!a. _Ž-mwoUJg#,ï(:,j"tA :/.сRRI!?&Z#<_qh~Lp)T`cB]x2?B3[{g=Տ! ͉ UQK&T ӸtssA Ps4*u"HA1v%mٿK>-l,eΫ--Ocw9MhR4E.ӡ5ߦ]{u*+=fЪ [B%PQmw5\_sstŶO[pOρ,\jHK˞Rcr8aS^\T*I*󄇇eG8Q ]]]UA H- AA AD "HA RA) AA "HA Rftپdgj7+d}^,3su@o K5w=yn=_@(.$@AaG}*9-_t-VOc;eu<mG8oYIڍ,Yv~ܽWXJ8$wHDs/ ϣ]rm$~>~ra~[q΅<7+ š|(_ײA^-wF7lrA$+{tW=W9 BK 9ڵ'zjI*%V`h?ER~wbgraVk>}S-w>R,M cX=%՗Mѓ鲪 Mdo "0Z0Bn;ÜFRtQ] nsܘ$T*mJ=iPdYah ~azm?H=krhJ>'MؤDyu;E7bPCBhO]3xxg~{V\::i͵2j3:ې|#`hR A1FaŎ"HA{i[rz1.-pڽ7_Yyf;-s·S GϐR<^o-R6Ƿs){~$5r`1o^&bAZӛMR2YȱA 56?x+?Ɲ VF7ϳ+fjLg Y> *7VVml|%&A ;bVKԢ~L*ךqЗ'v^)dO5ą!a. _Ž-mwoUJg#,ï(:,j"tA ;j5"DC~LRFy# B_Y\;kS6Td~>;9gz:7> ؜RQ l(^!jB޼Ju_Z2K7=5LBQ ]'\bm]byp2.Mv-_9+i_riΐgd):*l`X"nf¢IqA 'VѪd]Uԝ3kӡ5ߦ]{u*+ץ}0V%gXԇrhEW1>xkS{'bNy)]Yk}*ZfǕ.d5맵io$mQλ?J\T*I*󄇇eG8QQQƖ +A AD "HA RA) AA AD "HAA) A sF>Ax[za  )  jF=,D%IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/full.png000066400000000000000000000563031473342170300260160ustar00rootroot00000000000000PNG  IHDRu pHYs+iTXtXML:com.adobe.xmp qWSIDATxe\ـ]XAJ@@DP BPQlQQPD01nQEDAQ\v٘y^}{+0™v=:" |>&&Iu 8GbBlA#q!6 8GbBlA##6mba7PE;|7V%E=vaR 2#n:|T0QeIe|>W%(ZYIU6b&-T;}\gvad>.6rMe̼oռ'A|:qϒosW[T]yYieEqV=I+)'E"- tb< |q5Zm#@=au*oD*KP*B3Kо>'і<}?єrY1wO>Ds-4W/tR{=}L]pRht5ͻ9(i4M֋١(}{+K34Mk]HI^jtQ⾢4FI6deUskKr_7të㍜Ne=^n9rk# CP*cmf7Fx k f~}pĴ'۬"FS a/6)Il$h|iҖ0fqECSiplV}sGb@c"{9 hc[|omIs۷@cے v#XnڲOLPc0 ym,HrrrrrN~&G[TEkd$J2:rYϏή?cChd |i.+(((Kq[QnK=ײ_OqGU^͜6ωi.ܭsJF%):J-c7[ʇšUmD!|xMVlq6$,\Xi>kےQ5!~omG,_#MQr&KIIIIJ0DDĥeddd4'B?9azk!oQI9E$cyZSJzʧ: u`FΰVzbnmqNZZÛ9I;Ybٴ݈ĂZ~ %Y7m^jiSwwW 'k+9b4*,?Uc܆Ud>>Ҡ4|VsFE? /c{3iRt:ad ?:;>:Zjz3*~'>i%=kA'/;vgȯf=A4!|> |P峚8mo8겂ckZ(.q"$Ԑ -;Չ#󩹇!>ϡ +陏33sM UN Ak}uۜx֐5@m ^c o8@ﵢF{fo|)f\amwdMߝҫ?h Z3^du5!xݝkeԖ"w䑓GSk˙LfE /Rq( FQ;ޚcrSg3$p^Ʋ+k/=6TkcKsGWTf/xA~ K>>nɣTUUՌak[WS;4o~-ڨI&bXXo4uh0V=*i5ca򞑶NDq\bǎϛn.")JLHUƥRHjWM1"Im|^bYǭ3uĉn3\wysF燃#OIK2CS&oI0c^]4lʩJsO,0l`sϞ9k-9ISQ'ËLBS0Md.VRJY0x %i8u @;1))TYC'S%y9kP%QnVP>aOSQmљ`jCk쓥;`pP>ϻ81>T~Ѯ LFT!)(A8GbBlA#q!6 8GbBlѝ]Ph_ `/n* ~~`4i=&8ўz-/ ^SxX+iHimİ9_ʘk_3?s zW .Zphb+)l#s5 TP^^yƵk{)jڇV#c2ߜyl1'ީ.zMPCU]AZ^v _,~fDTIGC ]wI%+?yeᶢnPY0jNZtQɾna.oi׏ pYoLL O3~re 42&y0Iz'k&Mtżehaݒ]bClȎ22F`4jh%QJ[]-.ω /И>g ˞u{Y7ܶh@jQBJQRI']86R@3_yNC=~ͪ|{|ΠFv;/}XlV+Շ_4Y>Ti.N!STv3Y.8$j髀K֟ XiUf:Kٽ)C-+me$e)J73N$!n[,!nҍ]=XbCRuXԭc-`ׁݩ7GTd^{r?tJMuK|_M1y`d)Ar)< jv{ى#ny4a] 7]'T}K$tZ Cgð+Vuxg y/fJt_Gvv%[ū+Pn`YWku$/.ߢI~ν1Vz8k >%1?ܚ%$Ck&U'jYdqQ~Fy]}imM}bmS||fz rrx\c@bC$N:/zb8PSEG(㖹9qb6 ]&䟻Јƭ̉|tilE}'s]:mzy~w~n̶8;+l/Y"J**ҝ[6=OJNOUlݼzvdtrHXj4--P;%IXSič󟾏F#<G٬AbfO}m􂵑pq`!h|2=kuq~m)/g]6]}wR߬{oH@նY]^Xݸl[eQ.!Xc֣=+Ox<!OYse.^d*GJ.\2R'=杊*58v߮s 'K1O|H9onj 8)l`o'+"c2k-nZS~`uJ=;n -zlZo!箅So0kd|{m];,`arDs<bfRgYq1$%M\?Y c<>y؈mzol}߂{O{3|31NFd4IcTP**$ܯ4S޲Mee4DHH0W 5ih2|YC&/ ^RC[!\xpq#bBlA#q!6 8GbBlA#qDvqS.dk V%rPrhIԹC7t+ l 3x{K6ff: 5伸x4͝&,Ts]iZ2Ԙuq݄nXcή.- #)(pWq҂TX]].NRccgG>bTc$hw1}E!rgƴDGl΍T!(zɫrgm-^?;_'Jt\|{GofTIȻtI14L|tmg3QO7VWt\X}qNIo5^Y C/Қ֞|qBY(F+@V<}rBx7uSgCvbq2ReMVNGԔpH$@h2-.[o=c,OkIܳtF2<Ow.N 2™$e?,%'Jr,|yEy0׋S=CE΃ ?$z81 "az7bBlA#q!6 8GbBlA#q`r8<-!Qw!!߲RxFS'p^?2},qsН]El6U&fٕ/ȵkvq.\Ty $e .3.g뤡C'-y*8.b[FR3|aWYuG4}>>r >/gF7dŐJ`Uazj3t"?d?=\ќtD"kWۺ8;5\7qg xz6LR"ܧNwCUG9Bkݯ>9}p.3,#FV_.iS-+3v>Ϟ:bB_-e0wSgǰ< {tsɓf.}N(2 M`ۅ'WxS!!Z!153ˑf?0Ѝ| `c/#[o捘ð~FQ!#L]ړn5M4gbRc:"KSgi[Ug?Khus>4ѿI5b_qr8ҖK2XMRT "5q\R\˞=sjZӮfVPĽe8i4&t)=O*Y59%ι8_@jH?JCQĨ%CF[~Vc %) yktwOBS70Iέ芎lk)I3$"LgPyF\}5ƐzHJC>s><i3OMDԳg(|nhϺb˟"}e%ߙanvqШ4m8| Űȗߧ蜋B1vC-"'F@Kbþ ̚($Dd sYBKښዱk$t5Tt)T}[$7?5^XGǽd;?WZY꩒{䈄5+K,G۰tW|#: 0rb{#uͻ,;8Yl61huq*1'B7bŐ֌ c.zrB_1FtWFXK\knٛ/fMܜSHbO^~?LQXCKsFi{.Nq.K._AP(mڲ)+IAt~4F-X:otBD3`_<42p]|պ>°_.Ҥ33[tO"V쯑ftiԟ8'=O>VL`&0L|c8GbBlA#qJJJv58d2h8Wv58.߈#q!6 8GPlƫn*;[   |Ë CY%MY >-|#`X \&$-ַarV"2rܻ [ (eaeRYR1(5 h3YVB%} ;Ǐ]_G`/٠WH4_MEj sC8T3`Aoxxz;* iXC oa\<jp]`(XNGnu}J,/ f1<ḢuF+5[pM(l*1ou hAĽȂb./ aL@8j (uy'N#'Xl0`YTXRcٟž`?!X 4aH}&: 0 &M"6؂) `} lD+N:t'0_B8iB{2a%(XE~3aXb n@Tl8!XՂ 96D~ﻏQIe}XYӁi`ne0ºe#D¯Zn  #A\p& , X*(\sJZjb5(E;hiO/#s``Q D>|5u+ҍcp^. (@^[HCh,LGBȖ%(@]U8 0h+m@+y+#: MmGPS BkXg"ޅ KcDo!0SaWMc:L-Z; A=y$$94@d t|$0B(B- > \BF$lL]Aʀ `@@͂oHQQ_3cΰ7;t++aH! DP*p{囀ٿŖbՠ}Ġ/_1KSX0 !i<)ҐH4Dl:ĭ?aKg`aD-#* $ȶi)50T~NF28U8G b7 v] p EͅFxȅz4pP҇C}|jH)i@د ʄq2c6߀.8GbBlA#qM&hxGbBlA#q`G m+3aD\<>`}_}}3X?Owռ3@ Ϝ /@-{w782`ѧ=<+?-#6B9vU6PfnGg(8c1|b|FMoX2#UQD'#+B{7򰦺 fYNի19eUU9qDBq~UW5fc`&LdX;~=(OmК^)=R}*_3Q.XSqKU ]쇬Xg>=,c~dْ)ThBv^=3'i xP[@$QߌV$HY8/tR1_- %/Ϟ({f*R$qQUDkM_m&/ӊ5a-O]w:nH8e&fSYs+b?@Ħ,en55Fy=lQYkv%hy\xDQIN֎ Ā_?xqˆzlv;/#l6mcR9좻 p) Gn_uSc\y$9<|%Ӹ/ ֛4T}Z!k9VyTR-Zrt+E2_N h4MbKBڞ[>k~,ܻ%+!j?A[Pb7F>Aƍϐ{`v\$e+uk;j><5l}T˸L䐅Gfd(s~Nf o6bRl"}x eqo>}c7K|ӡ~Yڻ )$B^TH8Lѽ:<Y<~˗R>YDsTei*Ghr NnÏv?V+r]wR8R"$f>'UT=5qn?eR{ uo|P#"&߳#*k;Kx tI1 MC&ZT8t K XE)饅UL$Չu><_/O[_g?6HltQ/]/^< EN1@_GUFl;d/6K٬^=[*[WG8&&E riRR 1QQ7 YHFFA 1_X$:P5( jrٚhˑ gk84RO,Fvta}=^.=e|pM0Wy\}8B`W ="hGbBlA#q!6 8GbBlA#+6V9_D|%}<$;kc?⏩>0'("}z1,%IBye2K5h4&1l˛'+h4MN> 5Dg"1* ڿ"?ԗ؈`><%iŔOs; N7'_VVO* ٤1;*c{XTB1UAE,vCҙ:;_ײ džRHRvW}u쌐]NEgegggg'ܙG4`M̜f[%fކUv2, Xa0~xіW ?7r#{)|"6PuOa*t1.AƊ2C}MI *B $]kke*kzlu<8iO.8eO],,l}Qg7ڕ}$at%e?r "Ln~CVbfQӊ_LeB$h5D[Dw.R.$D.rr*NFmRU̟{nhl>#gzhX}QƷ܉²>ǥvCuh ֢!d*2cB7U?^5iAq}չI9U(p\wZQ,GWZwyzw,s3m6'8.G@۫w(  ];L halXRuU,L"Zxܴ\1#ʂ<O}w{se/s |7^ʽ9wl̟. qʀUl6x!vTT].B]Ѭ4?'u[ufW'-xUH{N]wICKDo=?10c} g|H\ 9jav6Mtj1wIcg(Κ,{\\zjK`bOo&boD|nL?֮=>qf%u2TIvŮwvx=?Y}/H~b,GYV6zyǸ9׃7*uy{7"T6UAQ>t<~Ҍ\ݾH < G6ysZ亗|jxmQiSZx)&v9}xyFXC;ZU\:FX[6 swܡWe{ĀMwL9sjdEJ^_BrQ c=o/ 1ЭC҃:Xy&Vglc[:=l=.yOِ|DH/qd p@H Д7[ިV7'E/g2Zm*R24U\F~A~NaU\JRJL\TTTDw!oABB2 <*b><ƥOs Smy<U0.$SXz=zmbBlA#q!6@II߮L&-GP@QQoW#u8GbBlA#%6VٷLK r3R>D?}h΋1UNs6- -xǪpYvk ZMVsXeL?"E[('w/I"?YvƅW=pjZjVΣr늲333uTD%efffղsQ _7.aɿ_^Q@jn]inV6UIڧ;5&\m,u2`uF>~*k5D-:aSYv ttt~{ml5zܰ0y6^OI j·XfO?p^G,4TucsHrJe$mpy?i-*JI/m,:r0͛ޑ\R0$)8iyjwm|{8/s3n*kHjQL}UL5gGȲ 0sEݹs=ίOk}`.9!_Iw'ќ A Dh'˜gŤ4~Fj->@"n ;v7o%r_~ϩyNh鎽. :tax I{J6 TIIϼlx_{owCu\f]V;KCKdmBxyy8p_2h܄c7i1`І;"'E31wAuSe(ERP]/I~Z3YSzf٭]?N>_m&y[Zvs]o]䘾\7)DA{l6СC:R&y1hz(=ЛoKQUdJ2p9$8f:oy 榧x-)zR==BtQ.L" 0 p IӋ`[}` ^~ZҼN}vb$<g@’ ӿ5-9re+Q)Y}ȀUDV蜐_ɨŒC[ 6= 9\G.}7 Bl,Ninn:ZuT`ybeq2)Vaq-;Kjrt5& `]Y0-W &k9`\`\Kp6J!!S(`2IHw쒍5I#SFnMc8{aVXzYM]867O*K)Yw+8тj[\U6x.6CY/sX Xg&.ʪDK(vC{8]}u+.&^d6R%:b <@+g @KHRow 7"hvqNaAMR4U"/)`[-2`U&) [qDG T48߼y.NM8yS[Nnx򙞦3TŠFܬF;tE'a7/e~~;PucS_۽""v Q fsfy,/.N|A#q!6 8GbBlA#q!6 8BbRnۖsf_YAD]\+uyԘ" d,x %[[uEVu9M1Oיж8., 3})7<Ȩ)C0 Mx%r#c0:Rvդӝs} жI3S0ݸRW]U#nbPuUU:&hM=H";hU|k&% U䦣6:@(J3##7 DlνJ^SRJ {%L\wYd17ӣ3"9d[Q̓9?CJ2wYSS;]Ֆd}-0m`Il 0p=ZKɾxs0M=bҺBg u'l9C}$0L4uw8)DJkztZGgݑ=L;;L ݌)V"6DxVc &t?YHuq]vpigq #Wdfǟ^wK8Q9C~ekq\=G`s b#RB%_y[}h8ZpFD:_~V8QMt{6h4/|Lm$ ˏx5<gݘ775dpI mr~/7R !"?8 ʽ?_f2M\ve³_SKYSK 478FHh/܇vh+"Ԕp̪g;Gbuۇx$!t\d-KPklur7/{7X慥#|7@닫݉.)ܲkEV-5+?̨i{ce v'.lu;o{Ɖ}ľIB"cU:xDtV/Bxyy.Yۭ`,9e587FDzjP us[o]YB1 [} F._xD(okp.+j8ʘhRrX@ ]/ok_;r l_to`__7n2ٹh~Jb Q٩ ]<7oBj&oƽ<2Iyܹ/ lvfZ[^V솤3]|JG^]af]ٟ< ) 6ݼˎ[$ВW,v O;NZפQaE t]Rr;ՙB%/.Nl? !6 8GbBlA#q!6 8Gb=-d2̲ۗ>&<}_sq e7clߺyGREW6GmO{:|Ž{zJ.C ݌\&{aQFJ~+ci ,@mX_d(bk.t?8!6BVfk=Gޗg LR$ReK-8)w"_+ZaC&Ln˿gcǎݿ?8A`W&3Ô<ݮ@*~ "&G֋sч6vС l/oӓ.=:Y[!k-5ԌE7)6nxw؅ I}ҦPëUxqߔ(KD$,9~JbbꏝZ6pʿ4祅s DXV(@?_HWYuti ]KrKn߬CY8r;eۤvW'7-4@'Dput\H,bQI'NvR*S1R"'哴'vmF*KWn@vqqOVuzV.8aQjq樃iwQswHu])n:pyO [u:2f[~9UYMS]1@GJ"4+/o.N@8!6 8GbBlA^V'@&#(A!ޠ BlA#q!6 |[& r%) ">kŘ@;3ldE[Zkۥ?i'.|;h^]7U`-|]!u֘G^\(k)rn-mQk~$!ڸ=oGg\bԲ&s0WQFLfQҲ\Mx[O,(߲] VͪgW>gJQ@uTD%5%+U$G4:A-݃b7}<Ǜ>G}`^\S5f;Ӿ!?z)*=~H؜jn]inV6UIڧ;5&\m,u2`uF> _OT9ٲnm(TZª ~8=Ism3l Qfn~Kr7*A4͌c|,rJc͵5M +tViZl6'#뱉 X ;G UƼ'dgfffffЋ~P5Y{d=ݗa_5E$(*3@d|j~Z(>)ϫNXT&xe˺,ET 1˒w_:>䄼ދ&V%Mߵv Zl G;YĀ8+& 3Rc4kEyP|"}*`/6;"~wF:lɸ4fcBxtsj^m7Zcˤq]=^C`(~hR3/^Ɨ[yYNP } &%4e'DGqQYIgˏXm@}I{ՙ:8hh܄c7i1`І;"'E77-31wAuSe(ERP]/I~Z3YSzT8~ZoWĿg\cFݺ#IDFI0va]+Lzò?vzD1"i7<7gM 4nĦhM<~luiy-b =L.8񟭙uub( aJQTqI4Q)1: 8f:g&G Ifesٷp\j;@ǚʒn9rmwke*(oqlie.q_6X3st^Coo)J_S.`ЅId!An~䜾:4ѩ TEu]ޭYvZ=] PY0ij;\pv41aimG]Ye@=3RvPzuo#Mzmjl #&\ظ1{}wOI$h^ɀս#. +̔[4ED8XG5x[bKx`5l*bv*x:dzI4%=oQXpQת)׌inT9Amv k__\2ڸUG d~y=_rA՗dgUƚv2tQ3ϗDZ~2yZڋ^%6J{۽SKJIXwcht6u!>x dگk,HII*2Ԫ:Z 3kY3Oym'Kq34j[5=/#ŏVH6pXwdJIO3Z>JF.f24ʲ&2CFP(g+Ѧ%.ʩTUGt;X'gҪ ͊kF(||!%~z6!ҳLf7g|2{GJWBlA#q!6 8GbBlA#q!6bsk*jxm[XUm ВCk)u|Zh蟸6kzRl}Og#6?(ΎK) <>EY-Z`9/g7tS,Ӿr ^SxX+Oa,٘$Ϟx<5Q4s9==Mيϸ&0vQuK4PJCO6nxmz!׮Vx=fi:q9$}Q…eA>.:Q UEIx$h7rN}yԪN&k~Hz[fbhxrY05ɃğPVV3Z*ctP%zR).1yײ".R]Aʭ5U=䓉Ti„t[%o9WNWtvl~^GOh^>~xGkL6/ϪcGE 7z $S66>Զl>Ӹ *K? QeZpx<.I^-zJ:ֱ[Z>aׁݩ7GTdK(j0Ʃt;3 WVwP7p #{uFk+yQbכt1[zJJLXͷg)Dc&J7兀ty1B7>F+2%Iō-#{ c A Y`*cO-l4êx!ЏP:e7)`)էULw>:j b(-_JqT$@+֭Ixi1`lJFNK6ttホR5X!Irær5 o,ö$omYyMe#'maG2M8.ZﻫՖrLx~*B$ԫsS/e̳W~Ri$ Iˉ9Xkmʚ|l]:2_jB76IyA*Py̘z Pd2Ѫ$i>5Nj-1- 9]0sHM ΄ecߟ8{I%ooV ֘p㐿y6^huZ{O0sZ9@ d1 3S3΃f_جnZ:G\c1*MYu'pq$ȋ-xvݪi7&e{"{i~vC~I u{+(Ҷ)IrLOzk 4y;=3%z[:UE@DL_=QX7ǍL7vq'B#q!6 8GbBlA#q!6 8B`8?7ʲ3[*yfLNN8<#Jl!-saNs4羫eftew8/'uy_] $,]WYY+b`ߘUPQYYc(_ez6>7fu0Gz%d*aggd'Ue:ds5'|ŜJeҜ4/6]K W#QGG:#= ;FH*BPUZ]O#x\ET*P2f zg)km i  )6!33ӝF"jKrch4~[*Qz~lA0|v]=cOuJ֗b’2"d~u^Za=;K\wD$gٻ&)`i(r24rP۽Z{;{oE=4ia-JB8DlI%G[*YW7 D>%Ջ֢'֘uF朑.LOoi"T^riv3f{ܰH?'eͧ~FWʶ*NHxq/nD>-(xR򲂷Iij=7=wot6koq᱕o㊛=֒+ZEA.=܏'$*%@)f4Re/ػ;[ܔƪՃ[=!)K_Pm.g2)|L8ű/ޤjkzB e5!naȩ퐻`jjEd0 C1 e[֍LVUS3>qھÈq{}*+$MVMߜk(-!Jht:]DFkbb_s6ʌ_>m+s0ر#ue[)tkC ˶߃(P !9Dt\ ʼn/q!6 8GbBlA#q!6 8Gb g2z IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/fullscreen.png000066400000000000000000000562441473342170300272220ustar00rootroot00000000000000PNG  IHDR(h:ל pHYs+ IDATxy eZlr-EҦJ\҂ܛ"b*MGJR!%ɾ%98?o{H2ds̼<̜@'O8ͬ 8GbBlA#q!6 8GbBlA#ƺ_|\t)''g`M rȑ>:::޾} sttlooqqq~KwwwxxxQQH胑.\7L~WWݒ%K.]qO> ˗/wuu>~hhhXWWӓfccCRa>(7UUU؜l`,,,ಪ*\\ \~~~rDCѐ Ha?`ڴi222`رʕ+KKu֭^J&''ٳ'$$;11c.;;;..n.{npaӦMSLzLh<44tWmtW===ʯ{zzzMHH\|БH$ SmmPuusc LFLC'f2dvƍׯ_O޽ 733>|0O]]]ח1sL>>>^^NmmmII={xbѢEҰ`z$LNNh?deeh4^^^tM()))b ???(*Rӧ+Wxzz:uy&88lllW\9sL\\\[[:d``S۷oϜ93((3`zeS(޲284fggg5I&`FFF^sHJJ diiOю;QRR//77~KK`WW< bgeee`ll F500x왔t'M0~ãKӅaIBBɓ-Z`cc366~-,,jkkJKKyyy >|@W2#s:K=<<zFGG[ٳg ȯaKKKTz{{)3??ݻ,Ybbb" 0S}_v 9--Ç˖-hjj*)))))3ٳ'N=@XXXKK鋮]FhF]x߿߾}׭[PSRR,X~`*v{{mll455B|rӧOSTT^XyyÆ [l9x… {rpp)S888<|W\pˆӧ75kV``իW믑9K}}=wuuuikkN:^MMM]]]ӧOGt:Uell,???rwuuݾ}ښ0mڴK.ېbkk Rׯ_液BJ888޹477c$6C!6 8GbBlA#q!6 8GbBlA#ƺ73{ t &88ѣGn~̙!?DFF~cqbDvv999AΝ; % JԴ566qD/_181GEE1 cժU7o,--I$999 @JJ ƙZZZpv///w֭[FFF<㳷WRR UXYY[vޝ4lƌ?Tƃp7oHKKo>1c++'''sŁ7o_EGGի]]]666,--x񢼼}USSƃӧOJJJ~~~yyyЂ hjj;wnVVVZZ4r;wϟ?,*V^^.((xᨨ(nnn-:: 2P`222圜{*F`Ɨ-,,tss믿dddvڵm6@xx8N733χtѣG\"Ggwquuw… nnnNnu0 NNN鼼{͛7RRRZ>wx0KJJƪJJJ~رcp y0>w|YYYpM04Ќ3)))dƧh3͛7wر~4oooYgH={ ;?tPrrБ+ vЌʕ0uh-4/^P]]]YYYYYdOII%t:ŋ c޽y{{744766nݺN4ՕݸqFZZ:5㣡d2^CC622ɚhggXf͂U8\VVVee徾>䷸h"pd^988ːniii''ŞqbGnkkiӦkkkh믿 |||'Ovڒ%K޾}˴W^#΄kג]vqppXYYm޼젩 khh@ }k[nږ-[Ο?{v옟_vv68%%NJ-YZc;44tW///2bƯ bƇ'O >.aGiiifffLR40i+~Br#LMME,mCo1 VVVuuu;&&f˖-Cl"((W^\\ƍ0 wŘ``0z]]Ç}||4^pafffp|CUUhkk ;tGq̙}͚5 nܸϏF\rw>LņJrn,%%%uh׭[ٳjɌ4Lmyymf̘QYYn:F쬨 {n|kkkAA1ʅbx03}ɓ"##_|yu 777ѱn:iiEnܸy}hjj: d2y޼yAAAHOQVVVTT,..OV?-f3 }ƍY˗/_|yh'""]Ɔy vvI-f3>Oi۷o---srrFQƭ#**eݐG477*?BlA#q!6 8 0 qH$qe6г2]at[B0N~h`ghWb,Or8>bJg'8 Ғ"77L>~hoo6ho" G29tviQQ˗jjjk /]˛7o{.=uTkkkdd烂wEP %|||aaa j9bkiihSSӍ7vuuݻ7::z`9sSNR-))9y$L͍A322sss988H$ҡC"""'amXd{zzrrr,--CBBTϙ3ѣ7o>>. H#!u Fb߿`9:,@II Fu떋KSSS}tK{{{vv;v T*UCC9dЮ8a!]]]ȝ~޽tttyxxRRR&L9B {hLA#q!6 8GbBlA#q!6 8GbĮ Xi0 h!B8::"]===2Juss8ɉ 흗ܜ7H۷WUUrss]]]ݻ0#F311y zL.:~ĉ(zyyQT*ZYY[YYǢSN 4~"0cǎUWWƮ\2%%#_z2e\FΖC޼yZNN,77wsClllꔔ_ X| :u20N:|W IDAT{|фC&)) h;s ŋ...h[^III`` LO:BD`̘1=''fq͕P(weee~i]]]t: ''gҤIg^lYKK B"kbgee!)***7oxwYYYa|zZOOOpp0`ҥw*.. WڒOb"//C!2ן>}Y&yyyFl,qYYTkkkSSS!!SN77L0,,WPPѣGYYY06FF̚5kΝ'NܱcGA3uT7Xz'Kŕǧk*D>Az*\QQҲo>JPN>20N]]̮ 333G*++`4@{@+ @Ѻ^Z\\lmm͛Xx%?~xɒ%ξv͛7~}ΰi ޽ߠ1 .L:u``qFbddd eǎ555p)988 Khhhjj,χt:7,[,>>>>>h֭ȲXNN'Fboܸ۷gniiqrr:uE__رc028Sro***Μ9)Y~=ڰa@WWȑ#$Oߠw(//+...##%%%kVRRbggonnٵku>\YY8汱fffHsԳg >>>:::^^^uuu##޷oAKKK]]]YYYMM :eƍg͚)J>xҥKǎSQQQUUF^hӧO+**TWWQDǏST[,233=znffQQQ' dĞ2e@'~OOϙ3g|}}I$ҹs֯_l``p`II痗KJJ^z߾}rrr'N;?8`oo:`b!wΝ}}}&L3 Hvvv{J...WWWdWLH$KKK>>>EEEooo]]]t >~L&KJJ k׮mll/]4f a/8GbBlA#q!6 8GbBlA#q!6:!ǏfΜBߘ,X00gspp ŮIJJݺuڵkuZ_~!O"Ù,c==&ӧNte˖!]544X[[[ͬY899qL&#;v 譊i4Z@@ 8lii@ѨT*R-++KpssgeeeeeAw糾>g#{zzЁ $$$<<7Bz~hթy捞^wwÇ`l ~~~%%W^tvv"~O4;wD2,3HҘ+:KaŊL%k֬`!CnYYY@&UUU8t333/^l^pU\\HJZ숈E!o߆Q= X=yd<~8<<\BB =zxIwwĥKj`\,CCv&#`||<+XtWWm۶Aƍ\WWW\\F&}||2%%%Yyyy\?p I T4;//9//;̱ vb -,,VXQXXή4uӧOhիW^dBERTjeeevvoeeǏN:UPPPVV8vXuuullʕ+SRR~я F1cFvvVZZڅ DDD?.,,@[[<%%i(JJJ666uuuJJJׯ_,_\EE8N[YY>|*bҖϯ 3RRR1G:>|hkk|*!!1iҤ377WJJB{{{߽{ӦMtuuedd l'Brrr&M4{e˖)bco͎捏h U333К}}}''0ϟuvvx",,p+ʪɴ0MMM$(**ggÇL~~eytv07KlRSS?wq ^999 0Q+www@UUh~~>L4 f͚vZoo;v'xYN:`jjcggOH ))abb8FmaaA׬Y7gϟ?h4&JEBT}ƍܺBYYF233XMVVv1?Si4ZLLLrrrCCݻI$Rhhɓdr~~uKK ~~~W,--EDDV^  /_\]]0ݻ z>>>pԩS+++1:? Bl㎎SSSCCÅ  BXPP5O__Ff͚ui++0???&vrr  ߠlٲx##["bbb999ùJlllgϞ {;wm6gΜɓ'ݿ?00000V@zzz뮫kҤI)S>};//}}}+=zaÆ\]]]99*?????o5I^^j"""$$$tuuayGGGUUUCC:bFٝ;wmR*VVVnݺСCK.y捏Opp0`Æ PUUL8eʔ)?uH >>>^^^uuu###@ll۷޽4g„oNSRR,--Ķ1cTBlIIISlسgϞ={.1`0^x(HZ@aaqM(+eeemYn!BBB?prʕ܄T?Bkkk544jkkkkk͛|CPS(NNN4$$㖖{ͅR qgeeJVWWyxxP(==/_yGjooAdfaa!H,,,$ VF={v׮]Hx##Ǐo߾L&_~t:yR<077tұcTTTTUU4 222;;ӊ666}}}FFFT*511G,O!%% $0/_VRR%G14-$$DRR宮/_{ɓ'ѰF.~͟)***!! ?MJJZ`y),@RRr߾}AAAHa̪>?P[[Ҿ˗ 8v)``` [͞=]FF&==]EE5uVVܹsa~aGGǬ,VVV]]]P(d2yӦM쩩BBB222qFHHͮ]~ `,@8GbBlA#q!6 8GbBlA#q!6Tl:~E4#Y|100`0FDD 60;%%=gP ޽{ڣ󋋋H؉p^uHdɵ(!!aooڵ~ԩStbeH]Kyʕ3g@=豲G[スv܉vf|/_,,,Z[[ lTUUU@ff&$zzzmmmpà OxO5c1oF?```XZZ^p./] 666zyy 755>~XXXF q999~XXм'Ë|$O͛ ߭Y[[=;##p˗/\/..^\\ 544UUUKKKw܉`O8a702M~Ȍ=D"/^ݻmmmq&''>}rׯ"Bphx>x 4ۓ}Y[[_zᲦF^^,j*Ǐ]+[UU… yFDDdfʕukjj§m999999K.| ce kHYYYWWj***póxb}ssӧO#j cژ2… 7oXgENNŋΝP(gg羾>kkk>>'COH87ڻ/{CXNN~-..N__K@@ﯿrppׇo$%%eddgϞUTTJOOWTTTTTF>ff 4 #رc::: Ç ʺuָ!??fQ3td Yh߿ټy/_&N|ޖ6uӧ?fK.]xL&=zؘiÏGM7-IKK+((x L ܴiӷ N:DVaz\~/^m6%K_| O677^lxG`NJJz#wڴi) cǎM0`}VCC~HPT* fʔ)u3> GbBlA#q!6 8GbBlA#q!6 &ٳgy݃{ xfnaLptFvvvWnذY{9tt~e;wDŽ!ltʆ PXZZ:tY@G@HBBBVV֞={ׯ1k8+I]rrrDEEz{{,Yrʕ9s戉[NTTDDD䔔&c!3>Uooo!!! {nGGG333LvΜ9\\\wҪZx'!?jǮollG܌H@eeeSOSSuBB–-[LMMMLL0kDRRĤ}812 GGGK::: RVV&--ĸIMMDDDpqq\RWWɓc֨%fff۷opn`|F4@A)))^^^VVVZ\\9iҤ;wP(__ӧO^:&&a?r׷jժŋm]RR2{aVNOO={vAAƍKKKd֭[###tuu ]\\>|hiiikk;gΜm'33sɒ%CH:++k 3g΄ˇSw"HxX.....;g62 [MMٳgCGu6?dB첲}XZZ8*&LvrrBм߂0Œ/q!6 8GbBlA#q!6 8GbBlحh{_'!,4mIIIXrŴ###@OOO~~~bb"L؂RRR&JEfC:::<==Ў& tBlAA[n=x𠈈HgggiiiMM0JZ]]=lb$K dk`ԍJrssSUV ,,, TTT`'ؐ>IDAT]<@.++h8Ws`4011|ڴiٳfjmmݻwo}}իW'O$+++IJ qss+))}6Rcs]5c4J{{{=y$""Bxzzrqq_* $$$N:a-88ҥKGPQQ k f/_CѕLYXXXZZYZZzyyM>ZQQq{.,,V>|f|\gώA{k ǎ[`7o`䖖nnm8clgϞ?[Çp` ?WTT0%-cΌ;tS7 W\f_XXyfBlX{N8qĉ喖֗CF͘1ch!XjooTxA3e%`b...ߺoOgll1t:FevrrڷoSׯ&MzBBB-#_5c1@G 2l1`4@zH흟4fb*`gg  3>'O9£נ2c1- GbBlA#q!6 8GbBlA#q!6 #ON8qP޾}khh$ioo744OFg 8q@B2e SbXXSyuuu#dϞ=7on5KKKQ[[ K222sssaV55db81m8`:-i׮]C6 b0VVV))L---ӜC)44) Y;edd`0IIIUUUL577jTUU-娭]r03WX! dɒFGGkjj***iDKf|^f ӧO򨨨˗/*++*jii)qeYffۿk{r[[[@@ݻgddǪU<<<6Q4 =zFKH?3++ jD`aao' ӌѕ DRR*--]TTTVVT[_fggwܹ^sk׮݋.iӦwttx{{FEE͜9]HHhΝEEEC,--999EEE91֍9r9𣦦{]v|=())YZZ":r?]Xz1ʚN<9e䨨(OOϻw9X4(BBBׯ_kI$҇J3 K1XM"v%###** _q޽{:::<<<)))&LfEfL 0#q!6 8GbBlA#q!6 8GbBlر.]BV⼼tpO0ݻw/^?~ljjJNNJNNF9rc g4Fs>|k.d566(//ӣ~;w 6#GXXX ;w|aD=H-[lٲ[nt҈l8aaauuutٳg \h/))={6)4 zQQQduP7>fiӦeeeٳٳ۶mlllRSS~BBB...>]hѵk/f|NNN%%>>>==7o޼yfҥhʝ2eCoߎ!t&Lc2c4oY__UQQь3RRR899͛W^^,G̤P(L[򪪪޽{ݻw፾UV-^xh3>Fƾkii?[ZZ2ٖ&Mˋ'vwwwn666ww%Kڵk &LLJΛ|;;;OOϕ+W~:$$[Ҍccc+**fZjUDDU*222s΍:qDGG@KKk/***8cǎ k1|3>FpNs)xe>L"]fjj:0u`+V`_+W&$$ 2.h==ϟ?;88455yyy૕3쌎܌~ǂgƴ\r~~~s---E755ܹi?lll%%%Dܻ1m Ԅ4MUU֭[&L׮]===='cԌ AAA􋞤ӧa111 >o<2|!vS p x0 BlA#q!6 8GF#D"l u) 8GbBlA#}޽ӧOzzz:;;Tϟ>|P__tƤn\񼼼4 o{C i`` ͛~[[[|||bbb+V(,,dggWSS#HM>}AӑW^]zuĉj [q8JJJj555^%&55͛7L---#xF0g͘1#;;{޽d29++kΝǏAO,hkk>1DFF,^)))h3JJJ^z𡭭mff&򩄄.˖-}}}FOOFK93|pYKKE]]ɓ'o߾wݻ+++f̘ŋ0@"JJJϝ;w9daaa&t遁#˖غ4-11q˖-555!!!Y a x5|؂<<<~UUUG,իV֬Y<==lmm8`,,,h4Zcc5k899̙gNIRÇ7n` eeeܹsgWՑ;=%%% _Lh4-&&޳}}}VTT5kӧ"""`ͮcǎ 222 ;נ6> Qr0p\*%:2EiUE rQ) -,Sf B&B- 2JVRP N,3$־v[}b7gO6ٓ<3g0JGGNj/`nnn( 9y<^tt3H$\.6@GHуP(Ɏ377[鹹xzz={X,vMRijjj{{u4ooo==ZuGqL xk׮ለ:~Y__ߨ ?(0`dd,--( ٰal駟R( [[۰0sssl&<ZKJJL&#`ii( !6̱Άڪm HSS b—W͗ oZZZ{챵Gaaa6m6...z}}}tt4zxꩧ .^h``'CHJJT*tuuJR_F_~+hA… IIIj}NNNFFFzxx`n݋!b^^^T*\YY122xW\9}ڨ:౉MP)6R{=SSӕ^&911Ϟ=opAH`0N< ,666ZZZsss===m===BҥK8G b+vD}033۷o_kkYGG|f׆,qϞ=ׯ_v횿Ή'}ݰF@~~~@@˅|,K-S$MMM}嗷nJMMs{MMMd wgBBBt钡;vpppXZZsrrR7ot:IggK/DPǷo߾Hҙ 6XXX`/!|>?88[sElLFlr8 &@bRlAM H )6 &@bRlAM H Nb#6j[]zV[}@OQQZ35#O{{I춶 k e(UUU---j] hswwG \.̄SPh4, ya9XH$4Y^r/B!w裏v~; #''khh(===$$dhh k p򨽽P(zgBP(?F&R昘;w^J744XRRBGD"JGFFBCCmDШT*=<<]]]]]]3O2-Ъ """11رckf 577chV\WqWQQQgΜaَ]]]ֶiՅ1 \,U]]ΪUr\.Wm7x䄺7ssstuuZZZ***,,,*++4'SԇΚ]qqq]vV?55U__ojj kjJ߼yKMM333(ҌO H3> &@bRlAM H )6 &@bRlAM H ~bKҪV.'$$H)=;;.H5~~~X;4 ߈𯃟Ǐ&) gDoFP]]]TT7~ h7n$%%YN)22[M}W7xmggyV*Zn/P(DK<xm``PSSC._ +{zzB}__߽ 歿B8T⩩)B.~׮]r Z?unnn||JZYYQԱ1mmBXWz/@ {7>33֭[jsWWWn%L'A]$L{5ըBAmm-{Hpz ŐrLJRTΰ2Joop]|>_7tf?bsssppS^0==MPQTuuuh)XZ t_BffѣGVVV:~ԩX@e5͛7GGGGGG> ufX5fC (7D"lzjYYmll ~[.ɟ~ i 9ljj*//onnvtt177߶mL&0AA_#qcggggg755%_}U???X|ĉOOO322"H8B˳TjIIFht:_캺:@`` \,++S(>>>hx\.oiiiii9v옞^EEExx86tuuullL&) lݻ3A 4 RlAM H )6 &@bRlAM H )6 &@謬i$Y2[{KҺ#IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/hotkey.png000066400000000000000000002177101473342170300263600ustar00rootroot00000000000000PNG  IHDR pHYs+ IDATxy@L8:մJDBeDD IkM\\Kv-%DH)*KўT#4qw~)^Kx<9<8<`|6.B} wP p ~O @8?'@ p ~O @8?'@ p ~O @8?'@ p ~O @8?'@ p ~O @8?'@ p ~O @8?,''%JMM"ɯ_h11jkkWTT2dڴiyyyl6hcc3wܒgR<`=zTKKɓ'D D钒 ۵kWiii{Oy?f #R444)JAAW.)200000ޅCCwޭY0 ??m۶:u*''b8^UU5d=<>>;wL2[w~9o<:[nogРA&&&hoR(s8^ZZ##6 ޿AwxWUU9RJJDÇ>0B@xM@JG H$ݻwkjj&N}S... QQQD|chhzrdrDDĔ)S:::^^^<ɓ'Æ |'Ox<^RR|Ν3ftOr.\辈D"EGG  za`}z^^gϞqƦ3f?/{G-\F[[]>rȊJo>;߿g>Zf͚'Ohjj޾};00POOl֬YJKK+455g͚E)~~~UUUϞ=7or4nܸ/*)**jhhdggݻwOIIISSSQQ]ss3˅' zOLNNnkkcٷowwwLp8;ŋIIIl6رð766Λ7Op.񓺺7 '&&v[YY >BDDd˖-m+$ܸqcĉ?HTTիݟ\.KӧOO r)>}F2ӧ<ӥKvDDD.^A@uuuxxxLLLyyykkӧO[ZZLf\\qN>Ӎ) :'D"ϟC--OgΜ LjN:e˖[XX<<''g…555ӦM8qbYYٱcLj=__߆@//Lp{d)) 6TUUAa+WljjWb-Zԓ'OlBfff/O?" Ceff޹sGMM"A4ijjxٳ&444''رc,뗙 !4~x&9cƌ.ƍXhz{{;˝BHJJpyeeOJbXl6_nooUSS9r$!4xϟ'&&jjjXDDDڵk=ჽ{LظyI&Y[[w\-0+++}Kݴidee!~YMM466JUUU111mmmgΜEIJJ]ᤧ=O!QQׯfQ uTc&L`ddO+_|~ٲen%Hd2‚dd0l<<(==5O0 ;x` ȸrG LLLv w |zQYAA2 hڴiӧOappՁڎ?>zhKKˁ u'իW^244d2y<^}}=2vyyySSBhMMMl6ĝSRRBq|Ν۶m>|+++y<ޕ+Wlٲ 6L81==]Cq̛ ;mgg7tд4btüxbΜ9~/-DBMO1T#l-..O61c?~El &޽[OOMBBbϞ=E-Zh7Ǜ={̙3_b k~Jܿ?D5jTUUaNNNu0ELL֭[8h4:^__㸡attUl#Gz3 @oaؘ1c~= @CCO>W&R9''nG111]&쉸Tyyi7{0LMMMOO𨸸8|nݲ<~xyy6qu1͛7kkk9s?~7[D|+JKK驩Q(===ǰa|||JLL… l6bq8Ǐt3;w,++#f$F'삂,g2~~~JJJ/_|%B3###,,,44Tmtl6{ݺuiiit:}ʔ)4͛7555w޽vgprJvvfnn'a޽߷o(B!!!ɓ''44͛7---V|84jkk g2D,r'O,q æLuϬy|EEE ];;;SRR\cǎO6mz9T܂۷mcUPP} vD# ~O @8?'@ p ~O @8?'@ p~D  YNN!T[[KN(((oڴi#Fr!qeGP䔐@,JJJ:::gϞ}}II N022>}ŋ={8BbѢE?p8!++۷777~9T*GUU͛7! B3gδz왘a\LL,00Bnڴ)770--MVVƍyyy v^ qq]vVTT|G&&&999mmmD ?lvII BB12ʕ+LLL?zw&Lpuu}e{{٩S>|X__5vz"pU5o߾-((6mZTTTUUUBB½{***N81tN111"Q,--ϝ;xgg7q~z_G0BhhhHJJzyyUWWgee]p}mmm%Z ezzzǁׯr3g###F1vX ~ .HHH1 :t1c>z)b"''zꪪѣG;w&Mjjjڹs'uYo߾FFF#F8W?rzf̘ÿPmmm]\\666nnnD+JXX- a ,Ȩ'SEEEԨTG&eee`:::4FDDDVV㧇l0bիW[[[B$i֬YeeeO>y>G?|ٲe#FXnÇmƿ p:;;[n|C H$RLLL6q𤤤}br \;w<==Gehhhbb흝````0\ÇMMM ۳gϪΝ%2|奢۷ O>}Ǜu}Oxaaa?zX5H;vܸqرc*=ЅmllTjdd3g=z%G9X\\}ӱcǬfnn>iҤdOOO[[v+sʕ cы/VUU]jΎYmm/_={v111uqqa2ގl'H$iذayyyyyy/_:u7:A[>i,,,=z; BhgϞ{> IDAT/uɓ'6l„ 111.\ڳgO{Zq֬Yt>ii餤$SS{N?DC[%00PBB"..vذa999CFF&%%ǧ](++߸qcժUo˗߼yeB깹}5fʕC sٳgt!)):|#DE֯_rlBtҤItҨQƌCd~zCCØ1c/_kmm=ɓ'=ŋgϖ9r˗/=̺y󦸸++w9BYY{i4񷹹ǏG~iRRRWh!\.:ytzRRbŅ:::I& BCCOĈNNN<<++K]]=((hǏ%..~u򩪪ѝvpkooL$ݻws窩8>s:t&&&r\.XNNNVV6//˟Y~-[233333EĨ lݺgϞmooݾ}ܱc***v!//aAӷoNӗ.]Z[[{{D0aBVVֽ{lmm,,,eeesrr>}ZSSsAן;w^^^!==ѣG9r~;;;HFDrRRR߾}x͛7 (O!x@@@JJ _~]DBN ǏOOO077_hѷaaa,LPZ[[l6[QQQpϞ=~RPPF@8^\\|x]]<#гgN:q\i߾}_i$<ٳg#x<ލ7g ]]]]v)(($%%,,,ܹ3ebHJJoAYY_KK+??HhӦMhծg||>BHDD$$$4G|Im۶d4f̘.EEEMMM</++ .f'OqF"[gg BD"qqpp_ 2tиT2*))Iԇl__ߺ:QQQ##gϞygee}-88<44H_z5Bŋ""X &gBh45AAAرcO>ݱcG eݶ!oooccoذXJLSSSC Y,F{ŬY ʕ+f]vm޼y޷o0qq%KXZZ1 qqqd2TÇ)YYYSUUmPPD3331c[GGGHHȥK-Z;HJJ>DEQqqqNNݻwF|nݺ|aO!==1IKKڵ P(GFUU5--8p{Ld2?feddtCCCw1}L611!`flltʕ+ݻWXXHTxbŊ^^^yyyo3Kd2O>塄xrr,Y_==]pfϞ=c  寢bժUVB-[lڴi&MWM!=ի۷4eee`@117o!ĿDDDO$fXOss;v<}T*%5;;[SSðs犊Λ7/..ZAA੩D|i888\p`n۶-""yd?:UUՔ.-qqq3f#*GB4m֬YEEE999C A8 ~;::h'O % 9q`d1{9ѵsΜ9Wѫ"//o> ={ð]_a cܹCxk׮}4RzztKK˭[xիWy%K~\DDD>zڵk?|0#+++::rSNИ2eʷ>j;T*uiiiՇ={vҤI˗/D"͜9333ŋ{)rvvvYYY~^]tIqqq:uJхv˖-_9ޥzDEE'LV__/!!AT?899nٲEIIIEttt̟?ãxҥDKMMMϿr_rwER!!W^%6RUUCL`1{ϟZ*$$SJΞ=[^^ӧ...]BZx~\߾}DΝ;bX&M0۷^sqq!' tttǮ7,,,TUUE̝;P\\|Æ ۻw w~-jjjIIIݿ!͛Ǐ vfR%L&_~2,8rYYܹsCCCkX,éonn~vZx޽{wůe7n `%%%{ēV(>$K???b7mSi{{{hh!CckkC;v̙3W\Ę>}<|0 0mmmSS[nݻðӧ޼yٳ .433322277?~] F|U>}zҥo߾|5=?1yy۷o5DiC#^~xvvϏ;Ưp0ÃB| jСΝraaa7CBB\?!C^~ё啑A,655q:**6==D"9r޼yW^r...˗/.8;RWWܷo`X':ytttxv9k֬xb(OkΝby tuu>}zȑ쌌 VpE4[߿WǏ&㸳ML&1LCCرc;v9rի{kTp-B˗/_>}4gBH\\\BBBOO۷4 !jO[5#H.$1~i+^hȑ)))n?P"'ZS? A p ~O @8?'@ p ~NLLL~ 8p-B=h``=rH:J W!++}dtttDGGKJJٔ"""8p={BǏr劶7<aÆ>}ZKK !$))a{{{ XXX!d*K%))i&233{mzof̘ÿ=lmm]\\l6q777rppQQQ sttn_ޥuuu$%%'M70LEE%44:r?BHTTܜ` ݥWZUYYYYY=u aW;v옘(OFEEeϞ= UUU!!!ƍ#D6N|)d̘1_<-X ##:""B__DEEԾFdYY,FePQQ|Riii##cǎ=$!!!>>JOOOOO?t萶uuuUTTEѣgN6 0}#G]PԄ??o\D"EEEx< !:\YYUVV&''b^z5f̘'vvv얖.֖S=UU+W,,,>+##ɉ2k֬>_`` w J\wܹs玒ɓ'srrhccSRRruEEE"ȑ#_~ݯ_?ׯ_Stuu߼yCTM !333<eÆ C q<++ݻwo!99>(**u˗/×/_o>///@[ZZ***BUUUɓ'F">o@uvvΜ9377_|Dڸqc/^2vm۶-XUUU!77Yfuvv~ RCCcҤIoll| jkkmmm]|\]]ݓ'OBcǎvZXXؿۚ/ܹs֭SWW/++SRR8qbtt4?xb0ZZZjjjFFFVUUeff镗O>x' ByyyeffRUV)**|C&W^[P\\\GGD멊  0`ٲewȑ 2.v/h +V ~eqqq ,klltwwwrrڻwԎ;NԴf͚UVx7޸qq̙?Fu٬ڵkKJJ:dll3~ׯwo!>Ι3ӧ---L&!TRRrs޼yMqq#G#.^Hӹ\nO߿}auuu8w 1 ̌TDfQQQ]]Bnzc'%ocǎt钒/^aXPPs~~~sssaaW݋xbb",腨Tj{{;gXXя2&&&==h鋏'*̥ܹs)===0|-[|,Xpp?uꔑQii)UUUܹs'\.!::zc>fSL9rh IDAT^nnmۚ]fmmmhh AOO̙3DjnnRoVWW̜;ѣGIII;vhjjjK,w^||رcW\|~͚5 իW|͛8KKK'''X,!**&D233+))!޼yx#&yqeeeօ ۗfgg744 \nBBB~tttI?,ݻwcǎ%zxFbLJJڹs'ѸoD޾}EzzzPPG/H$-666!!aFFFP(r7}͓uwh ⥁N>Md-ZD4c߾};,,b|#`0,**:b##(!!!ڵk s''˗/8p`޼y+VXt֮]K"W[[kxbjj'UD8U__m۶~Y|KGaB9|paa>BT0߽{7LAAB]ŋ<IR>222bbbZZZ8bY[[?~ٳgݛnܸbŊVbJ%HZZZǟBEEEutt,X`֭6oܷoߨ/3޽b-]%%%ƍ{}qqVSSogggcccYYٔ)SVXAT V6GExYddוh47[8^\\}ܽ{wSL҄WYYYQQrl-[&L@,ںu+Bd̙Kaq|ΝkkkϘ1J9x`LLɓ555͛;Pɓ'9hڵ<\r{ HJJ(++kii)4mڴi4?':G <<<fΜyС(W۶mKNN&z UTT񲲲p 'OqF"[ggK]KKKϝ;7"""==!te??}x7oh4K' bbb.\(!!A<ݺu+ikkԩS?A$$$[nŊNNNiii]eϟ?x...ƍ{UGGQoOu:; v0lӦM`>*:|p}}}YYY KKˆ:.""ek8p@0,5k֥Kr޽Cikk#{8YPiiB '<==TҥKZYY]zoڴiӦM4-11qҥOt:D"Y>jkkj<^ի<OSSOIIIRR83W^%nnn'O~-Bmٲe۷oߺup8555T*fKHHPOey T8י CeMY,mT"ImIK+E*)5BܔR-"KBȖ%r/޹[T_3g^y<|4qqq[xܹs*++SRRZZZIEEeѢEhGݻgoo|9F}*F$444//ϬlO,RRRd2Ņ5bFY1 @"t珼nII\&aSFPe0D">gON...Z9oU|?| EѺ:ٌMGE@ fOcǎ!O;D&edd***m&w֮[5La?;ѽ{455555tQ[WVV㝌YfqssUAA;< cF %$$) 77KrrrV"EEE2xʕ/_gĢ('''͜9"~Duuuޏ J__+޽{744wEyf׮][l)++c]}K$iѢE(yo?;;:: _O61*DDPP{>YR^^^LLŋ eԩ4x4\pCKK PTT<|pgg'̘a &&&FFF_;>v)))߿733jjjǏ C"&? III111m۶n݊oHW0srrZXXtuuرY[[rlF0LVV6''?>}3._EQ4++k֭###ʖ644ppp755S555Z^O>ݶmI$ƍ+++Y ّd!!!{{Q\V\MMM*M__^@DDD__bbbIIIηo`NMMuvv>rHBB[99ϟ߻wOZZz֭ϟg5:FGGٳ}LիMfaa1! ^zNJ+닊O>=  "aXYYY\\ D~ * l¯Qߣ?Q()))WWא>>><… - o߾޽{Ν;(WVVGm(^~=$$6r5eeeooOq@LLj:u VO+** (zр{ aÇ'jSAAPnn.|̙>|8<<|T^__gmm}-pdd pœ 68p ++ 777yͣB羾>GGǝ;w1sαf$0oD"ݻ?^^`}}]|||0 ;p%H۷oWPP6maϟ?g2샐޿oggw{xx 3>|͛77ntss;uٳgϝ;:i4ڡCد9fff~~~xSַhgguVA^|2{@b5@_cgϞ 6{n$O(Mo4;wnEE… L2cƌݻwOisνٳgYvm]]]jjjWW׍7o߮/X[[;;;Ydtkc7K> }Gp@fff``oaaǏ^_\\ﯦzڔX9s(++/X`ٲe6lpqqYjտsD ._|;v;wLJKK~嗰l ڊ%6mڟo``yfQQQ `0FFFFFF>M*"""rrr:::Ϟ=cgSUUސ`mm- ?ƣz5`»wGR1 <}70A==wTUUf͚emm̅ X7 BY7cǎr'%%%wܹz9IH &h{MMM̌i h\~/o зN<AA8M  &-?AA  OAA' AA  h|`AA4>0~  ?AA  OAA' ӂ ^*##=x𠙙 eLMMD"QDDD(:̔G-\dw1uԱL6- @UU[_###~])Ѽ:A?%%%%%ދ$$$?~9NNN2|ܹr---eeKD[[[16xh}d''DOKKX~=c7o=z$**:j9s~ȟ:uM{{M"!! _zzۨddd"""ǻ5 &cdTTѣG-ZdeeǗ*,,|왔=== 4F#111ǎJJJ7o<|WޯIwÆ ...jjj2თĂ pk!00_EEE/_Zr0 o_Z`ǎKIIIHHpwwP(/ͭ_-[믬%"""jjj—^=<}aaᎎ[[ΩS < .<|i4D7jcccll3EQ-d/EQ[[[ݻw3LA|||VXlٲ6usrr222ؗjN6jjjT*1**D"YZZ 矙W\g%&&&0lT/<λ>,((ps΅DEE] 1۟׬YpBEEE_͛'O,//߾}eAz{{d2L5kl~!"""'$$≋kjjhΖD"֭[+""B$T*A'O'' ޽hpp066LZZ &&rʘV$((ޮjiiIKKSPP`DG}}Í7]fggA Yնmۂ|?s޼ycW{srr>}t޼y i4˗/ ))9BaRRRO>MIIYdcǒTUU1 PWW/))IMM0ɓ'eeeӦM#]进>}3g>H$hmm}Ǐ ?ݻ庺ֱْ+V~葓ӗw&BOn2ލ>}:$$` رK.mkksrr齽߿صkW^^^kkDW[BBBaaaWQQt钴4AAA}}}###+Vصk.؅ ʎ;&**:22nݺJ555l)))EEHEYcv[ZXXݺu+;;3 Lx8Ç'O=zC?^RR;YL6 PWWǾphhh޽O~aJJEEEI$Ҿ}nݺ;/g pss`1<FDDl޼ylbii9<< 500}ChhhCC7dhqq1lnnc QQQA"""i&nܸj=uСC3fxٳ,,,?8Y|9/vBBB7nrJtt4Ν;Vz `޼yOѵ>G^^~ԩ %p!NNN??~E6meaa!,,`0(Unn&_jռynnn AF%ppp(** Q(}}>>>.._ [>00:ٳ]]]z;v`pĿ۸''gZZڎ;KXSN%xtYSS/>}zGGGee (JuuǏw)...//Y(Ni&cWwyyyzz:aappPBB"==Bpss_t)''EEE2xʕ/_;Z__Qe0 yFγ[jd R300V^^Xlcbb>8WXXabbi4ZWWW'Qk!C _*Ow֮[5.AC`ddt=.**266իWV:.++/ollDQ4''gܹx6a~~>//5kh4ڛ7oA] bO,RRR+W[T*666}}}x}}ӧO'%%qrr:;;߾}gDDDXɳ111w s΍;X888͛rssٳ|~lFFF}}}xMdd$|||SLg5/`0VVVcRRRX߿offGjjjǏ 0L`0CBB߿iaaյcǎfmmߏZFa&++78vttN>}ƌ/_ߢ(uVAAAdeeKKKx5+9|!!ŋST<)&&ֶں޽{-[]vb999cfz3 IDATeRO&&&v0$i ӦM0,>>><kU򬭭oݺ?Ʋ>544a].\ҲaÆ=t`WHH($$ÇUUU/_ė_^@@ŋ?~wuuH2VsTnn. -?~zjqqիkkkSRR:;;cccmll̙`e˖mذeժU?g333wrr[NST]]///᭪jllm۶Dŋx(x 糖xBAI;A޽SUU5k&222.\700ؼyB######ǎYիW{mnnNNN~@NN@ o{AAA٣ZGXCBBO kkkE O[;EQ 7>& GAA$m(<AM?d   OAA' AA  h|`AA4>0~  ?AA ;`ƌ+''XttM ,ذaÔ)Sn#O5kַo A$!!!t:}ܹ .>cܹb9s888(++ST&ZaXmmmmm7AIMM-((XjUII A%%-[tuu͛7v˗/_} >>>G6;$ AALNNNNNNd2)((v*fpqqa-9sJssU9s̙3d2 ҥK OPP,))ILLe222YYYFFFߨ2}v̙afff=s玴kddЄ-}%ׯ]`A{{o3Q ^t)110߉'rrr7oތ>w\VVL'uuVad={d_3228P^^ҒFKPmiiAQ`lܸq DDDOL.+Vd###/^(--=s͛8 ((:uM{{M"!! D'ZZZ455?۵ zzzjT+iOcǎ&Qw?}sLOOH)SؔϜ9O]]Ғʔ)"3yq||<wʹzzz_cc㼼|6_m'@000x DKJJڰaMVV@v(>P(]@cSƍV^=;deekkkd/͛Q|ԴTDD$33}wóe˖W^hsIHHܻwoc cewQ煶u%%%%%%!!!F}ZA߹?c(9H$ޑ744сaXoo/JUSS+++۹sFdd]QQٳgi4 JeU1*)EݻwSo\͟  %!!!W>!!!!!AмK.˕1 OTpqq* //?uԄVocc X:::MfiiI h4>x& >>͍UA>Y}Ǐlbee3ѻ[jΖ-[\]]O>>|#G$%%>}zESk/mvVTTZ Mұ|||7oެy󦌌LRR6..nĘ(2 |.Z&`0oN겷766Դmii9p ---իWkjjjjjHHHpnRa i%44_aCCC4`lݺbݺuh]]]l`Oj*)) f_ Ç1 kjj1cƉ'0 kkkcu^|D"!oPT55___11+WݻW@@/ 'MoѢE1hѢj ǏY%qtt999JJJ/_@<ڵk]\\._>cƌk׮o߾N񵙘466o_~wF2LSSSVǾ)A444X(((|{4sss==ׯ>|XWWWOOɉ+D"xxx֮]{Ea/%%)!!ann~"XYY ehhhǎpx?^|9RQ=kQTEEE}}EE TUU#jiia=]cq";;;֌tð[㳴+**444dee_xArss7o޼gϞ\!!!}}ٳg{={&55C} xY`^^ŋ򬭭988:::BBBLLL<<<yyyݺu}k_֭[JMMuvvvqqუ#77߾}&d2N/ZOokkjkk{;kLL HDB 'awΝ;˖-cD"\\\'@!Kzzŋ={faaQ]]Z?ӫz@ߧI89s?3~OO`bbb]]]ccckk @QEѴ4mۖ-((W^^|Ҷ6849L6ȑ#QQQ\\\rrr7n5Eŋ?99>SEL&>y@QTS@@ **ܜ`IЀO}A?3L&L&|||l"""Gi]v===͗.]*((LLLt:222|||xǨ*aa(~ɣG{yyO0LVR244MReu7>UVVN@CH$i5 &

0~  ?AA  OAA' AALIOO@$EDD؈rpp]ESS3%%E]]9s̙3d2 ҥK OPP,))ILLe222YYYFFFW'''sss- ;::NNNVannn___SSSsȌ D:wΝ;BBBWlݺ511qԮPT;; B'@CC#))iƌc?B{y慆+ AØ񓱱޽{TTTJJJZŦNvZ// @XXfڴi *))={۷'Nu+OLL411QTTzYBBB``//o)//oiiI0 KII100hnnniiOOO0`lܸY557rqqܹܺK,!Hy&BWQQQEDSSАN}hiiYxqlllmm VZwI7jYf)++}&&A.]J$Fddd޽kjjcmff&dADQQQNNvZMMM)))~~J?{x ^^)SbӧO'5@׷ A?I?={LJJj}}}AQPPhjjbSTT<~8~g'--}1UUU֒7oHJJ577]vFkkkRRgvڥ~z"heeuĉ 6TTT̚5KIIiΜ9޽[fЍ7X566PSSa5&&& _zell\RR*<<\[[nnnRVV>z(a (`0tq}[[[..q]!&&&ÇΝkeeu޽;wDDDddd(++;;;khhZKYYZKKݻwUUUQQQRoIRRرc))) gͭ(dϞ=r劥% y{{9sfT`D pyʕoۘ??ˎ;+ B|۷oܸD/D' wttvvvN:U@@O8c mkk;vHTTg\+++"xŶ|[[[VVVVTT`0$jjjD"1##EQ $$tʕE_k``[YY400ܜ!o|uuիW{{{O2e…xǪjllįׯlnnnmmmkkljjضmnٲex 4`|oi~( taaa .. HHH899?~…W^xkSSSRQQQ$rhh(,,?̼r?ئӧ322O?S}0a555]]]H[>xٳ4mǎvt+**_'>>~jOxzzٳEC%''_>'' '' 5''CCC JRvvv'O񱰰swwGƦ̙3qqqV`vLo7oڵkٗˋ:;;0LGGK.={vڴi˖-y󦳳0e???!!sssfll,//!77d##޽{WAAaɒ%u떥ebb۷oٿ?''#GP/1GYYYKR@TTK@@`ӦMxpuu˗<==;7_ԩS;wD1''ѣG[H$zxx;::FFFn۶mnnnxchh#Gm^z//k$,,\WW &6''ÇwUXX8ʊhz6}t2< 0 pUxʔ)&&&%%%> yYH$ʨTN ¶njjj`07عs͛e&]aǕ+WSSS1  {7DRUU%ff̘ߺu}uOOO###OOgϞ8;;;;;ʞ-''7A\NNnG__ϯԭ4[E IDATS---x9og2۷o733wppyӧO1 .//AQM@@388X__8hooooogATTT^z5888$!!9w;wܺu EQ GG3fԄ|rws-_ua vAA4^tGðٳg744_~=--mppƦ]DD$88o|RPPPRRǏ)Jbb)S|}}+**""":i& rQ!r555\\\6l#A/_8{lzz: @HHܮ!///%% —Du d``ƍqqqk׮upp H&&&.\`0ׯ_~ē'OfΜmiiٽ{wPPkdCccŋkjjn%%%d2>~())] "" LJhSS/BQSSۼyΝ;QUQQIKKc\Y/_ŋ\oAFFСCT*͛7/ߍI?.]VSS###D{{{߿oaak׮V??dd$kEs+>XrXpp- ӪJJJ666x󃂂'N` ٳٷ~w211IOO&˗//,,|ԩS _z?o޼>ƾ~z˖-ŋTUUEDD~7"xK.K$fbR[[[jj L ˗/0LCCܹsߏQWW@4 ax1OOdcv?AF<~d0mmm---x:388?m4p%+++ssN"tҞ'}ÔߋH}ݺuݻw  -##aXGGǃdeeo߾~w^rallo߾?1 oo䑑{*%""BP888 Nǯ'NرӧJJJfff{.))ٳgO```ee%~TL6 c͚5o^`~ZbE^^xnmmݶm[iiPWWG=quTTH`wwG:88 FFF޿?,,Bhii ꏗܹstzFFFXXS_$H$nڴTLL"22'Ӕ)S ۇ(Bݽ{o!˗/ǻ /_lee? ,XH$1LAddu ؿ?,,1::ՌxA" I$Rhhq,0 iiiYYY???ӗ.] ))immrVkkkݽ{)S\zÇ>>>~~~AAANNNss;wŋsrrVD"~lSWWB$x߁OwwW3~Zaak@&?siiѣGQeozuwwgff/L KvY(={ʕ+k׮0,11QQQ1..˗7nwΝ;}}}Gum0>K(Z\\d2놨( MWYY/)%%u V[JMM=7l`ffd3̖iӦ}_ð7o0̦bABAAa>>>xP[[kcc3vutt455w{@vvʕ+ҚFÃhee?6H$RLL tuu233{[Çrrr^`v…ӧO5k^xzjˋ_N WX1mڴ~%%'NN|v_#H$hhh655RǏ'&&dnn EGG8qN]v555srrQ{H$ޑ744сaXoo/JUSS+++۹sFdd]QQ?UZZ6}^QQQbbO֬Y3cƌ/^=ztk֬C!!!cB~$y!++[YY=tttgvuue4]t),,ǟPxLKK۱c|%RVV%9 ƦM㵵>|077۟T*dBBi4^qqJmoo/** OKK+((شiSYY$|uuug϶f-ge@&0:R[nn. 11qnnnIM |?y󦼼<==]EEEQQQMM-33kݻw֭cN q̡"!!nmmG82޵Z[[t_o>_g&sPE"_><~*?00PSS322gGM܎# # 000$$]]];vhnn֮{mH999J#nnnuuuZZZm0ȨL8֝~?۷G9sjkkWimme2 \ 0kצG@cJs/vf%YDfф҂!5m*#Km$jLe)e)Z)ThD%kɾv/>sw;\?>bbbs*((<{ljK|>p`0`?H7*++STYYY/_{=&cǎsD=5}tCCCߡ(*.. 6l؀ Abbʕ+t2[nͬY P(y+V`5kVLL +A6`ccCR/^O?tܹgϞL& ΃A{{ؾ}]m6)))ϙtsrrlݽgϞ;wnذٳgqqqIRR5L7/,,lll q]YoE$444-,,yyyYLhURRh\\\ѣknٲmllĉ #<<|݁ vaioo/++svv4֫y{{]ѱСCW^%%%555t)kqppTVV6yʼn'֭[gjj{ 8E1=UZZZHIIWzsss]]y-[L[[;33q HqOOO>ի]]]`~113gzyy߾}{ƍ? |w?SUUs4/_r+Wjkk.Zc׮] 4jkk?=^|9|!!ޡ!166`00 0} kqqмykkkO(=z4<|SYYYVVBR}||bbbT*rДɞ<<a co>0z`ݾ}tV Rv֭ CCbAPutt|1'O;{wDA hrrrKLLTSS+,,ܶm h !p=aaիWS(e˖͟??=== @VV <dtڟxyyN8qڵ5k<{lѳf͒L߆|r'''OHMhpW\ ~嗀"H֭~ZZY( aܹsfffBBB)AA,ͭJQQ///ɓ'999۷oݹs'Bٻw/〽O:::=÷rssYShAiڴi&&&hiiy B9y$QQQ4m||<##:<<|dd$,,N)1 {!H9uTMM xUU͛7wuu-Z 42=y<A]]ӧyFIƧ9.AMnnnff'AMuOg`*CAMe0~  80~  80~  80~  80~  80~  80~  80~  8S4~277G_YY1000--͍@ϛ7/88,&&&JII}͚5+11qƌ֫>}ZEE M!s̹z{APݳg}+WXZZ޺u ,ʂb((**MU_N^^ZZZ!,6m4999MW򁕁 Ͽqv[7 L[nykυ7 222uuu`~wΜ9yyyWBLLѣGλ=yDOOAuuL9 .mmmWVV IDAT.\`%~DϜ9 sppH˗/_[̛7رc?֖-[ Yd%>|8>>=sk֬b pppߺ`q@8}4{M]YdIaa!WE |s Yppp||?=\ӓL&Nxxx=|7_8M:*3GGGiiǏ3L èTedd@a ##3sL%!((H&yxxJKK;::111]hByL&xBGGGBBBBBƦ ,***M7w`t7''ɮ%,,/-- gdddddܹsBŻwΞ=APEEŦjMMy߿QQQ}㓲jJJ hFdddL&߼ySFFݽNMMݻfffgϞMOOgc+zss3'' @x EM6eeeF 277۷-ZdddTVVΎL&8)((?~޽{奥.lܸq׮]<<<řoLRRN''^֚6%%%A6l688x KKKyyy)))wG(,\R?|{{;ߥ)B$Wiiiǝ233=<>sN900 **K& >>ob8NPRRRn޼ ]DbzzGUUsyzzLIBBbÆ ZZZ6668UUU?~xxxD"BXXXƖfggYf444 bee?HǏرÇof޸qAhyyiӦS(+V O8p1 [tiXXڵka[ش{'''$888ڵ=zT`PspRQQxV^m``uDEE|)o=UUU1n0ALL EӧO_xA555PRZZ:55Hҽݛ}Mggg+++__gϞ!d2{zz;&++[WW6qL& EaX]8 HKKʕ+100000@իWnb?999))G,[ qtuu1"H.\0 EсAp'y[dEEE06SN}f0?x֭[>Lsss[[[쪫} ť`0&| 7'tQ A6mڤaÆ={WBi8}oeeeww7 > :~ÇO&mmm㏑+Vpqq]t޻woXXDݻV655555ݿ?33.&&fRԴ|]vUTT8^[[[[[?:p[eoo?cƌҾ]vۃA N8Otvv"ɓqfjdd ȦMfϞ~nnn IHHټy z Y9RӾ}H977w׮]%KJJJ& }}} .|5>2Xf˗Ν "@Sdd$dffFsvv7o^UU/}: 4BVVʕ+ ioo?rHJJ³g& lllsss/_cCDAL&*M}^ڱc۷?j+...33W^tvv777 XXXD++vA?~PPPYTT400ukJhjjjiiqttdONVWWgW>v? 9sJzxxL؄J޽{̙3۷o99H*ZXX($$  FNNH@QEQ2,,,,""/&&fbb"$$сxkk[gYb`Qddxwwŋ{zz[SScU8`0<<vĉ7nppp,[l``˫{ܹOx+Q@ x{{\|UCC 44cp谰033ﯮ+X^|yԩ۷.))L{:::d]WWWIId>2 V(@`?~$H9 +))ijj666up N) §O=zy⹹ ![NNӧ_4|(cjj:66rСu։c󇄄{yy (PVV(>>^LLull`'T& vvvvvvpqqY[[ o77%KP(jֽBDDĝ;whF偛???-[ܺu+44499 }QQQ### ,PPPhmmݾ}{MMdWE$444-,,yyyY#;;ǧ7}}Ѧ۷";766DܹsT*UXXx޽]]]^^^VF;N{5 vvvgϞe0'IXX~0S~~>ŋ;::TTTN<+Ϟ=@ ,_9??YSKKkMMMSQaaa(ׯ_|G(@[yxxTUU:p'NĠ 領Lf@@׮&`jjz}w$))YSSF< 幺"biiبD$SSS1 c}hKJJwd2[ZZP=qիWA6' ɗ.]bButtWWWϛ7OWWVGG3{L{<<<۶mrJddA?̙3\\\TTTbcc ʕ+_N"HIIIfp8;;1Xxxx}3L̙UWW7>>^TTdllL%T,))i``A]622rŊK.>}:]t)Μᡡonn+_xb *6oެ ME 455}q 2n tہi3;;;A/FDD'''\\\aaa 5 W5kٳ:::}'y#G,XpԩcccP@@@@AAð~ EQGGGppƍ/^|0fRSS[~={x__`eMEY`]''xAۇaXoo/N_b?6n`0={6c ֨===)EQTYY{g6b]^^kq޺u #oa2"""?sѲ+**,,,՛`v֭{kZZZ> ӥ|QQQ rqV#Sll,km>quAAAqq{oe޿?77wHHH\\\vvvRR ,P痒J3 6668.''I$̙3%$$xxx&=EQ111``` ''dpM3gJ```?ݻwꂃϜ9322Ғnii/%%믿fgg>9$ۻh5)ð kX  a4aR:NPTTTRSSAPOOkd%K{zzyEpppii߁DEEA*ƬV؏R@@L*..Jھ}\jj*x$0ȑ#w ׏:0 KIIqwwਬO555v<|bb"[pqq|2888//o2ۚOAܪ||| zΝ;srr~O4lBA?VAAi*_AA4         L$99YAAAPP0))A+V;wN@@277G_YY1000--͍@7o^pp0777X455MLL̚5+11qƌ֫>}ZEEezE%$$_ӧO*(( dyyy*xxx?tҏ:]A}3S4~?v؋/_z8(F"dee֯_󊊊SN͘1BD"WXA؟aXDDȴi 6m?YkP>sLرcRRRk֬TSS+--mjjzŋÃ~㏟D@ADɮ[%&&vww8pF&&&oߦhqOHHIIIٷo_XXXLLN!8[ZZb688+N LLLW\=44hBBիWݻqqq]pښKKK-Z4>>aخ],--/_lffSyy;w;wUoAAAwޥP(߻woBB’%Kzzz=d2YBRR*a]]]111*Y>}-+ AAbʵ?(ٳ]vmܸE@@ԩSk׮533CQ?JII~̙3Q555REEE(ܾ}{̙aaa?޷oA;S||˗/˅+++KKKX촲C655믿jjj%%%bbbm/qjgdd644X!ޅ@ [\" `ff$,,?=ztoW}khL A&aƟ~ѣݻ~zKKKDDDpppaaAOOO]]J}왣ǙL&aT*u222qqq`AFFf̙ d2A^^EP(7[d/ttt$$$$$$lllbYYG- R__WWW>{ĉqqqyZ :~EEEAo߾h``0ɕ h*cɩMII A 6 ޸qR^^^JJĄ.Օ`d2=<<>T*ŅAyyv!/{B`?(~p3gΜ9xӦM$Blܸ0PH$8;99%''effzxx888z.]a_ɞ466hѢE4)333֫89s}[ bccOՅPLLLyy]CCCWZŋɮ ASt钡!2)++dddz{{]]]kkk) BQW-[fkkǺaq+6s۷oKJJE*d2;22zj>>>wX8S(7oNE~`DYΜ93gAFFFmVQQ*' 6jii8VUUsݻwwttdffD baa!..Zf͚  Ѐ Տ?H"?cR( ջq%'#s IDAT#-//___?m4{{{ b A_cMMr[nJIIuwwٖZTTԄ㸈''̙3qg|8 Hll,NoiiYp RRR&jM$… ( p'ϟ?gg'''+**>|AO:*EPwZZZ~nݺt:=77ٹή㕗'$$pqq2[n}ݞ;wNZZzɾ埿)`0 ;NNNAAkkkqohh=z' 6me2{IOO={vccchh(D#@ 6h_}sNN///H-FÇ֭[hիWn޼jbG&-[/))bŊ`%%+&&FUUD"x}}}######opommuqqohhwZDDDCCC}}}.++xOO333_~U%%%>>ɮASӾXZZ|A~nttU233Eѕ+W"2o޼*;wVVVFFF#%%ehhiߴ4-77WFFf``@RR255AaaaSS챱O?O288ˆ'O|Bbv XY\  .(((###--]YY 'Om۶qpp\|7;;~ؽ{7 vvvvvv 4Wkjjhe˖@ȑ#⪫666555˗/S(4I=BBBD"ݽbt钑kkkIr888.]ٳv''')y>DbI ",,|}t$((LbbbRRRL&ܩcNXX8==… {ؾ6AAAqqn455n߾H$!$$bbb"!!QVVv!_ibbeeee =Ύ‚B^xq>Ak@@³g FNNN||ה455Chdd`rppw?YZZ={VQQQCCAÇ߿௿r͛kjj.]zȑm۶999UUUUUU `Uwwŋϝ;e˖9rDVVСCbllUXXãN$I$իWەAsWcccNNfVVg 0 oOXǚA###___##M6]x1--Ӗ@>} XSZZjmm=::^QQ755-_|׮]8~HLNMMes͚50̋/.Ydƌ~/77w׮]kxxxlbbb&$$C 1 [bEii… kkkdrtt4kۊ7HVloo[[[Q~!ɜ3gxyyGFFLfUU(  -naSSٳgΝ;Ϗ㸟jn||heee`s333̒JKK BQQ׮]d2WXtϟ{xxYV5899󛛛/^gee"A6o [7n]tĉrrrYYY}}}L&quV2V___]]d2@o{!h111A1,X (((`uVoܸuւ5]^zcǎG1A 7&@Q4 ޞ`xxxuZZZZZZ6m}aKӝ@0=UFFH$ȀIgXq˗/ ŵg RSS/{)?~_~}aɱ~߼y3Kn5Pe2"""?Sֲ+**,,,0 qʊ`Lxa0uֽ---;;; @ ˺166f޽do 迩V[[{!!!qqqIIIzzzIVVVZZzµEQ---~~~)))QF/D9sϤ (99%K˜9sTTT ޽{.88̙3### zkkqqqeeӧd[AAACCasss!HQQQGq砡3waN0 ?j xA' EEEk|||hh5nwɒ%O>qŋ$"88TWW+ guum߾=11]5Y0 ;rL ;w.HE~ddqqq ׯ_tO]]ߡCXDEE]sժU=B`i}}}򂂂寤H$VUUԠ(:_HZ@AIJJ888UUU)**zyy=yDYY?''g;wP({QUUd2ҥK0777oޗ8ԩS L&߹sA)AAMfbbr'OP(('O(E322Z[[GFFt:}MMMׁaǏssscccXjPt(Fooѝ;w`BAӓ'O&&Av43: v|||?#_wwkRSS1 N0~  P pAAS  >  >  >  > h?uԪUXk,Xpuuu iӦMb `AS//… Y&,[LKK믿a=B@@@0 u _ ?ASիϜ9z򔿿?x{^^^FF6mpBzz+@ɢCꁁ_ [0~)֭[(JJJgΜAƌ(Ě7^xqҥG抈dee͜9}޽;&&fddd?\ hʚӆ LMM===_~D"qՃGI#ꪬo>xmzzzzzzQRRR͹]8H$AJKK:::&<Ջ@ *ii;wgBAc?M>]NNnƒa#$$4}tiiiiii 9sHKKKII|:C_ӧD0L{" Aҳgdee1 k._, *7N BBBF //?)AOBBB3f̐3gׯ###,X tvvfdd8;;۷OQQfALGLL6RRR:::t:0&&B<77&?? (ÇO<1{쐐#GܹsΘ1ٳ>>>ş{T_ӧOWZ˻nݺj++AATUUs…7n4}/e*?߽{mܹo.))D$&&ߟ` ",,a;wTUU999:tiӦqqqqqq Ɣ(--}tSS5kӧOYwa؁<<<"""¸^zӁ۴i ttt>>_˗/oܸѡ{KJJJ^^>;;;333++kdd'33sxx޾Vpss_~5ήCAA!::FOBMK.qrr[.%%B8YZZ*##yzz۷Eѓ'O>< @pիWܹsg###v$"}v77qA233 k:{loooV?CCC᪪>>>PO|ںucAWWׯ_KJJD;;~!((زeا<`_@}_b ((+Eų~mm'Oddd0̫Wrss8p ++{֭ }cʪ))) xBdddL&߼ySFFݽNMMݻfffgϞMOO3"@M J zW"㸊ʉ' O~~s^pL&:uDAA+|r;;G㏖'O777ࠄMMM>|ξ-ᶶ?qww >LH$ HwO,]lA"xxx FVVAVccc;wrʦM޽ D/..fd2YNNN^^^PP[^^^^^@QTCCC__˫]֯_I__Aš5k>|gddaÇ70mR())ݻgttJ>ŋRRR?˗YQ),###### + >Tڻ(aWhH^i"ED,DDłA5D,PTl(Vb UA%)Jrr}$(}>.ݳ3"$$$`lI^^^FFCcc#a0 9"G|~mmm~~>BH^^ðg"ɚ***O&g#B6l GCCCBAܽ{w֭}V(--vǏxꕌ AwܡP(mmm%%%8q@a2/^`2VVV dƍ322Ms ??[no?RRRծ3gtss{:h\yy9Jd>S---ӦM[fMCCCPPN_vmOOAׯ_WWW'K#sVTTXZZ8p ''ի!>p*++lC3Ç>ۆLf2D?LrΝtyyyUUGmܸQLL͛7cƌ9qDmmv5f̘-[Obbbd&o[[uz{{ 8ҥK 󥥥/^[އVsss,bTTTBA|O{}}]\\7 W(XvmdddVVÇ?StB ˗d˽}ӧO9Ç9믿#}={vРA***#a555Ճ05 ,,,"##oܸQSSyqeex><od#G֯_xmmzEMMMA@*˗/`Ҳm۶W2O4JRR#ߑ&--PPPO?a2P6MR1 qtt9rdmmll8=TG#ONNN.\| {a!rNeIJJ$%%D3gδi+Q?o޼~׷+'''&&ڵk7nܿaa&UUU===3gμo]]]۶mNT{wTT͛LXhhh?ׯ_ߧ=߄ &&&᝝555JJJgϞuppd!CL<޽{ӦM{>G9|p]{X?/|޽{ o> 5k֔Θ1 3f̰pqq?ʕ+=<?aVTT044щ}{F!"22RLLP10ƍ+W^pAMMڵk,+;;~۾})>|  0󩴴t[o J۴LLL0 +++;y;wD?~ ??|fd$DO@@??O@@??O@@??O} 'Nnݺ@J7o޴iӄ,\p۶mt:OFǷijjZhBdĜ9sFBBbȧDFFR>9sfxx8D}w?BH[[x:t _ &&&{{;v())[_-Qddd3221 >'!!A^^q--+ IDATWl#F=ZUUUEEEYYY444 ȨS(aڷo,*..f2T*399geeE f+**7NYYY^^^]]6""dM.3fhkk'AtCP3fKJJ%!~nnv2d___WWd%uϮ3&&ɓ'lIIɖ;vlٲˉӧO 졼!ccc0(++ w9r*nݺu׭[G#""|F̟?|,##dɒǏl6;55Ԕ|Z^^xxxxdddLL FA444EGG pRXK.q83gx<7>`Kn޼ҥK_؈_vMP~xܹs !Cw"''?A9n*--?!gϞmkk{999ᗬpёq<((zzz Bzzzvww|#GFEE|2>>Ftuu8p ##رci4Ojjݻy<^\\gxӏAį~z  teӧO #B)((W2e aǏ_`Aggi  쓐vpphhhPPPHIIp%177000(,,󪌌LRRʕ+ > bmmrRRRM >J677_p7444hG߿0KK#FbXAAAcǎ}{rrr;w.χ }?)))566YYYigg+W:::655!BCCCBB0 ۻwׯCCC2Sr8< @RW^]UUݍJNNP(rrrog… -[$***Z[[i4Z#sҥAAANw{uW^o޼)s /^xΝᾺǏ#pq\IWWÇk)Wڦ+**ھ3~N-0,::Gjhh.Zf777͓d_{eee?mJJ̙32eʙ3g(fL:͛ǎ`2III<:tHRRRWW799yȑaaaƥ|>dW˿ ==SN 8NOMMUUU{333mll=zܹC/2>>Ν;wVVV.\HOOqGTTT]ϟZ*000///11J޽O0TAP222ddd0!nnn|>rk׮͝;0kkO6Օ0߿o޼y7X,֘1c222&L U277?y$N?x`NN&YNP#*u]]]rr2?~gkƍ3fLvv6y5E~1 >``'NNN4F}!SSS%%ׯ_#f̘QSSCJ`04b3 ә+** ֬Yuŋgff"h4ڵk'tƠA5444447?`ёu:::"""0 p²e˂QSSsqqquu%tʔ){577_h˗/ G- ðyYZZܹs< !7ydTs޽O;v޽{_ Xnnݻw7|iTT۷o_ti[[Q4h:FP(666wp8vvv}+_AAA|>_'/O9990&&&eeegΜIIIٶmUԤ]\\|?֪R(v!KKK>|8} 6/Ξ=Ņd޼yȨ >RBBBFFAVV622u͚59F{ʒojjr{A7VII/??ŋV\.ʕ+a"?1-[8d2cccy<^KK˴ifϞz갰0:~ƍ VWWq, M =+ŋ嶶}jRT 6=aqAٶmA{IJJڹs3g:::+++KJJ(+W"##ȑ#WZ%9ɓ'ӧO7oޒ%K߿/dSggح[>5vA%b0 c8S]]ɓ'lѣG-\ɓ'\.WPr޽w={#񓖖ԩS;;;ɔW^q8[n!z{{ 8ҥK Tŋݟ={6Ї_xvΝ^b A|>١ Cɓ"JIIIA9::ŭZDJJJMMʕ+`^ɧp8 .tqqٳgϓ'O"""(7m ܎jL333\UUܽ{dFGr.%%%,,|~[[[1~AVSsssuuDLΝgCD'.Kjy󦔔Tvvȑ#o߾m```aa=k֬ 6(**9rε}4!x;k֬a[t͛7uuu1/]yy#CsX__'M$!!CrشA0{Q)㙙>>>01vرcw^33!D.AP1 LVE.X@𴩩ի@?.%%斕[QQ$!!Q[[;|Cɳ⾾l60IIIzΜ9 m%R͛QPPfk.yy7#tªrss=<<sΜ9&|OPw0---88x̘1;w\hsp8qyː!C455=rWZARgϞѣ"""LLLx<VUU6lY 䂂ƶ$''Z,vvvN0V9lhh[z6B ݂`!`0`#UUUYf8pE!okk\`6iҤ8!!!!]7ЭUUU~~~%%%7™3gܹTUUu愄3fXZZFDD̟?ʕcccŋSz{{ݻwO<)((=~ ;fff'qݻNJII\]]fgg^__oll`0)SL4ŋ}"CVVV3 jkkw!@d(Y~#G%(ʌ39s$%%8poo.///!!񺻻\I@UV?ٳg˖-[pa^^޺uLUUU qqq}k:;;KKK;;;%[l矻0 3f̪U###1 KOO'"--ȑ#O>}Izzz-'SWWWfffmm 544LHHq"((ϚcǎUTTR˖-/?M EVGTdG]]1BHJJj䄉'N o%++ٳබcBH7wVtttjjjǍ3gΜ;w\ll,qppHLLLJJJKK^pQlٲk.І lZFf_T*̒$' Anp˗/{zz]faaA155MNNjiip8Ƀ "+_z} w? 02xNYZZZ****T*ٳg=c4tPWjhh^+4"ה"~' ' Dq'Q@@??O@@??O@'*:o޼iӦ .\p۶mt:}ZJN<\dsSb;vlҥ%%g ͜93<>>bbb򊊊JJJVVVJJJuBQQQlcii&76hdd4n8eeeyyyuuu[[ۈ+++59̘1Cx_ 8CCÁn@TUTTG~_O6-00pҥϞ=CQSSCDbbCBBۖ#|ll@FPN8Av:11pwxo:uj\\%???Pgg˵klkk랞fllrʤSSSMMMɚ卍8GFF̟?!DDCCZttY߿w źtÙ9s&C9RJJW[[ҥKIII_+!SWWWii)áP(C {7o'eeeq zBP(!!!|>f0&&&?cOOϥKQf޽;##cƌFRsijjKKK[~M(ݢElll0 Cݸq!TRRbcc͛)S`?~ tvvN6ޞ P[[[**xw n ;AaaaWeddV\YPP=1bǎd|D7~BM>}߾} |Z__^^^N  0l޽_ Po8!6uT3Poknn>B(;;dĉ)))^oocZ[[ߺuKLLLRRRYYWQQIOO?vؽ{mۖС+V>|xѢE)ذaBh;wǏ#pqܹsdaWWÇkOMOOWTT}g$&&F$ âGrJyyw ðyYZZܹs< !7ydz {=}رceeeuuusss11ܻw***oӨ(Ƿo߾tҶ6 11AihhhԣG.Z(%%OI111.{}+++YYQF͙3ѣūW0a¬YȚmmmg_~M;wFa~  (ɓ'~:N744ܲeKZZO?4mBXOOϯVPPpvv611ppphll$_jjjB H!Z[[#"" ~z55I& :TSSۛYbaQQQ!GG9s=dJKK-XGYPPPNN]###'M4jԨQF|r*[[[uu|ܜf>|klmmkkkUUU)J{{^[[[II 㥥>>}:9B244={vooKmm}RSS=<<<==탂0  {zzz233O8۾}{@@;wB|>+O~Ϗ'x<]]]iii^RD ðyjhhqTQQ!}mii6mښ5ktڵk{zz~5$?ׯ&$$P(8q'***.\H&%%رd B贷oݺu՗.]233355555]~=yMLLz{{-,,;5vX߿_VVںdSSS33ܽ{3||˖--Ysė e˖1L111111c~ضmmII mllӋ/gff;wnͺ/tuu/\@N裣ɓ'_U渙rvv&P!C#O?C !WTT䒈)IDAT} cȰa*++ɫ[Ο?jǏի<>sLjj`UTcc#Gz{{q/(?KKKkkkݻwܹ䕄\DDĖ-[MYYYQQQ7nܨ<~`U@ R޼ysA[[[r,Ν;UUU555\v>ƎŋYfxԴnnn)**޺u͛***E]yy`2Waa!9GvlkjjbV__'Mdee%))IlhhP(e˖8qqfff.]-XII d&&&wq8_|YRRRVV&}[~~ɓ'ӧO@<cٲ^ߵ%$$?NNN΂qUVVCCC\G8? ))yI&^s9q>k׮% O:Efˍ[={6brȰX,KjRTmmmYYYd2LMeO݊/aRRRcǎ>>EEEd>?9;;oذ쎝;wgϾ`lݺ헨Ts`OB! >>z`ҤIcǎ}㋊utt -,,ȭȄqƑOJJJ 033ݻw71I& > x B 4\`xxxdggWTTa ]v-N|%yN߳gB 2dڷo@?k <~WQQq\MMMIIɔ;::\]]7qwwohh s.-Z3}}:ϏڵKUU!vر#G/h4mmm555ᩦbbbڳgB˗,9?FN< n QT `| d ( ~'  ~' D1~h-B-Zb2111gΜ +;99FaIR߹sׯ}n0Q0 cX퓕eZZZL&J{zz&''wtth#555S++7oiggWXXHBP{{.\`0Ξ=Krtt 444E'auuuO>555RK, MHHHLLTPP0߲e˓'OF}ڵZ&`0]rBCCgΜŋ;::롬u+W$'' G\\|ȑRRR`kkox/0A 4h˗]\\LLLN>#\YJJ̬!apիWoݺBqٳgO8ɓ'.\ꕺ9s6mDPBׯߴiSbb"?꺻!~x#Gze||_gϞ?1 iii#FMMM _v!DәL&ɤ!b UU?cuB T*5>>ȑ#L&,b04-))iJ__?''gر ٳ0)?5P(T!4mRPP{4hѣG .>|8uTAɓ af͚ӧ fff1߇ D8ʵk^UV%&&Rݻw!BBddd`B|>Y&FOIIyuBB\.}ppqs/ީSCSSSUUU2Ngْ#FMMM^T#"&&ȑ#چ͜9L`0AAA 666]]]>>>89s&66vٟļIooozzzll`;e)BW[[ҥKIII8.ZHBl޼YNN~֭>j(Paa9N)++kӧO~ͮ?&1 8q"$+(0lժUiiiCE='OxMa8?z#1 ;{,BH__riDKpÆ ,JÆ R ݻwuԩX}ׯ_/''g}}}ooo999% vڵjժ۷XðK.ݺukd57ƍNNNNNNK,_xqOOOGG۷AqFv)2MGcǎduuuwV&h>>>w ^bΆJUUՆ <bp8۶m#B^^~Ϟ=III;wYիWۗiooTVVz)9?nϞ=jjj%-K.:z(BHVV֭[j=q ?TQQvvZ^^)Dx۷۹D-[>|866vɒ%WF C )$$$$$`ܺu+00L{BQ(Ç߿A"wEEE;v~ٲe0 sttUUU qqq};;;KKK;;;ɧ---v>|-[qcc?}#?~oݽ{ZFFI=ztxxxxx8IRRro޼9}t=;wɓ}2\}}}߿y+VܹsJ\YYyd𤥥Ek=4iR{{{{{Tll,\p"ɓ>+|RdΝ;cbb]`0LRr G ݻ gR(e˖ :4))bĈfff!Ʀ Fx%uر 6(?/_TWWfX&M:|˖-[333,YbmmO?ΝSRR8qp9N677߽{7=|pggg@@0 Ν+!!QVVaICC-))R|>___<͛7͟y4mmm(((Xf i*//qƷs^3g΄˖-;wիmvҥж'NԄd#z{{݅|>eDwݻw.]zͫW&&&>{e@@@yy +++,z)&&߳l|~~~pp09!xYfUWW?~РA Xϟu22RTT4hO{{{mmcW={oխ3g$,"oFFF\.wԨQ'N(++SUUP(?#a?w}d2eqlmm>|(!!qԩ[&$$̚5K__?++`m޼Y{S@?ad_&_!  ߹UɄ;J} "oFE<}U ~'  ~'  ~'  ~'  ~'  ~'  ~'  ~'  ~'  ~'  ~'  ~6@@?)2yIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/list.png000066400000000000000000007642001473342170300260310ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATx{Uuc>kH GKEEG-y?"D/r@=hE֖4Q$QIH% k=s1g]ڷd̯]Y_qn:$D"H$ 2wqG7{`D"H$3W_]_ 3ۿ`T"H$Dbv05\S~K$D"xFrꩧ:s0GDo|Q%D"H$f7DRI$D"H.QlD"H$}u>D"H$#D"H$}$D"H$!K$D"؇H/H$Db"Dtˎ{śE'C>CxGߴ77֫~`/f@D"H$Ӈ֭[wGLeMW_z'9S}d/vlټs_zЂ%K_?7?ϫTu>H$D"1 ֭[7E߳ow g.|{.vQ3O_沿|uNhD"H$e*ӿܼǗ|pE;U?gށK.;{~r4H$D"1=R߯y?ϳ߿{<_mU'ƙ$D"H$arG_O&'+/}sDe=xﶍx6Ik"=,˿_&_k֬yPDN:C=ΛN+o>7| _x߾q[`mT_Il-H&Z7oUVu~͚5-[c+Tu;s3`[nmŏ}cW^yeOG-3yozӛvqw7vw+W{X3_n?Uoxɽ袋LN??u/Ynm˖-[t)SN9;/^bŊYj_l]z^*;?=yw~{놼+W\b_o~ZW^Qfkuvi^x~/xɒ%}{};i?+W~>s{W^yeMwbD ٳGU30-֞1||#/Yl*c[/'{l^uUW}/"7^׼._WK__~ꩧ~ގ|g?ٕW^ַO<O;}ӟe:~x]vَ;>G?袋\{x+.\/xGquu/y!F֯_#usΝ|+W,qw1|[ߺ _;S_~_};ˌK.|3}{;\}[l| ' ^.lwy ~;?]s5x`dd䵯}!8DbS꿙R~!>1}f>%GU£>_O~xc=3,?3ԧ>o~ܝ}mժU?N?M6Z|׿[oUW]bŊK.fY򗿜>7SN˗oذo{ӽ??+W._;\d7|9oo1˲;~^m9ƍ/vao۷oE{Yvm YrW=W|>BV;s,X0>>V]p/_ӟ_p!8W3ؕ{'pΝ;,X0SVm߼x oչ?d7H$v?!nC;va!~~]nzCM6裏~|}XbŊL<ꨣ:,olr뭷_r^뮻{s 7wmo{իzuY~zŋϟ?;lZI`^s衇g>o}[,ۺukV "^{駟`˗Wڰa21<)ftg͚5 ,6%nosOnђ[K$i:X}K^މ'O+VdYnݺ#<'XjU #8;,W˗꫉/}׿]vz;voGY?g?Yq"Zt)3x≇~F`ܦMB˗/_`ڵk}~s;蠃w |;~_|%?馛nݺz||7I%YC͔6[~em9nx)Zzu/l6#h၏^5CO$>kמs9gy~O}S"bI D~0˲/=W;կ~.zK_z_{.o|o?ϿMoӟnܸo{HaÆ38c޼y\p%[q|||ʕ/ͬoɒo|I g?ks/ˇDN-[\z'|{QGUOuرc'UЮmvuם{-RkfѢE7tgČSuN Zn]G8ʯ\o.w?=2K^{oqs-#o_GSgF"MnݺpxGGڦ=yg6}ow<1@#Gt̉D"H$)29,{Wl‡Мכz}ޙ1O?HUD"H$v/֭lǛ8m7/hW6)D"H$=d0]F{G#LD"H$3kg.8bD"H${/I%D"HC$H$D"_"H$>DD"H$I%D"HC$H$D"_"H$>DD"H$I%D"HC$H$D"_"H$>DD"H$I%D"HC$H$D"_"H$>DD"H$I%D"HC$H$D"_"H$>DD"H$?Z-sk,s̎0+9P)3: pDPb""*CsdDHA1;v "֌a V`vɎS vξ<pF/ T[ +w|iߋ@Uz˶_UTDOH!I^po0 QmЫMIP8C-I:W?o͐/i$|Q$!7ǠJ$tz7sp_ۗodL;NYV2 mG"=lPdyo iz5 {:Ȳ8۷o E$Hѫ;+z9G&~sDItG#Q{*)1Q!! mlu$D z T w̚e7ܮju\ *e#PRvȜk8ʃ0\ XUuU"3f2j*DLD g&@VfrKep2DD{T,,NIȱ1 ' 4T5H`2U5L"JC>B-EUp\2>=x$GUhdddh7 Qu̪DS'sb}v29粌ZGD bVG 8cRabv" R%b(o5;"UP` e[4 (HyjٙDITMV,b8p"9b@NA$ZXd.'@ Y%ApDNA#@ 8(e{)Tjxj`h? g3sȱLU%d*"edZVc"YD-vcv ;lv奸}rXp4IL>V9LT+WUS7g/z<*7xe`L^i4V on>Z9n{=JeU2e e"r)P#JR&NBCƗryU8QZ`UA\V)y{PF @!STO ̔( D5ָu&"(eE( I(kp}T&f_UyN%b* 2YYb&̰*2 U`ՐeJpCI<1g.C=#'Ǭ޳B, ( RJ /K;DIM|p tB&[p!|ۡr"}vWxKۨj2fW3ϞK}! *Sm3jzNLզs<:::22rǏͷ>o61 &I J/z"*g2g~G.2GĤpLEEIxJz DP{*f;SUPV@%L2#e#Zt b^IX'Fq]1 LGJ VQe]KHbG`0 <@)s "`A!rUu!0BH=2n)3O$#3lRF-(Dk'"ǭRbwYL"dfNj!0b  mg ha_L,?u'rq;ڎZצJ,]==V2pXv{('VO1dp(;Å L^rbgDF~K%KSONmSB8묳^~}3L I=A‚=$˝}mrGl: @t:2gWt`G bTTCP2ygPq謊T)>H2@ D۠H JOTsR##"( \ԂHYa5cɉSaUmEE3(`^ P$J "mvW 4PqmI c&6 qrwĂZ',"{ L44jx`L43 ۃT*U%֞DUA3[26<Za'Z`~!qt/(_[銧PGFFvy^@.l1nl*\l]}fS#_tzwy-?aǓu&"}{Ƿ>uj>E: PJ&fZ !4={`F|:* gڊ\C^SvF %ReYl,.1NZRTT5 &⬼HV/Skk*HB*DCȤ4X-٢S@f$U-.&5&؍/b;U\tS *JbRfР$cot5pLDPTI ˟BD%F"" sGkk3*D̔e5Ґ&.zXU)u!%> yʥDmra`CPu]$D"} .3mc?)s94=6Eg&ljN>uO?իwl6ć/ =lDuF XH:۠|K{2 ߁Su?AuRݭ7oz2v9~ETIv}鋗;O 0v=:)ÿ{:?[zv-͛7:ote˖ޱeY-ˈ%n^Lcfra&gf棏>3|S֮];>>}o]%{(gaI2jcʄ#B#XTA|-$Т`<} ?ے GqvgN̷I@p 38|RL&*ݦeEbpE PL1BJ1A7ZmDAEZ>kKcrJ1N=D*De dbrg:kTJ@9ΜE<3W)q} @ !J ݯ;+SJ'6Kh$LlFC S5 "4P6𖛯z**91\wX/!Էq\aUhn 6 NTz;YIh^abk]]Km PWM4Z0vhKvu #s-8C>Q\T¤uѴhZV:C?]۷^0,va7n't9Yt鳷l⨈\*5Vd9!g/mk0qD ʯX%q'|@l©4F7ZQzF1̍PXoF#(aUDJ`#0%-wH5ku-\D:Vc |[`!$ "Ќ*"N)s泌eGziR$;] :bveP(B6oDi/JPvv+-1ye0X5Vj{!&57#<y*cX <]އHZ͏J,cΙ!T_ q]%qM\s](y  V2XLttgrZV5| âFgM̵/ԫOV5lv[w50V(90>7ͮ]=ֈ@kʻ4;vțym#{bv@61@ GdH|bUZT,T6hh?AB鸫Q#Q,UvşUr Qȱ›E(t^th푈HidJR`#A(QM(<ʊ(/N_lv*C @@hḍMf6YqQOQeLx/"yBl8jYl6"؟U%uRq׸btt] Y/~臈K>3^=#p/C^O-o/~[nuWn[i|6ᥛΘ@s PøYqTDz EļcJk XE4 ゚1e~B%K*Y;XTŷ,ckaaPRe2gy-'Pq|tT*9bp]Cı2TXTH[AoU)!b=-܇dLbT-MXݒBq'*""0+K.Cʼma0))$aҠ@ +&, ӧL kYF#8g4 YȋYܣ@q8G9H( Ԓ09@L옹}vNz k8#&Ǟ8x.B޵ğݴL{RHyDmN]ő,AX \mltXZLd: [ѹkmL9kƣX֯_e˖މJS\N6WvVue=ET^u:z5V{"PۏaRDn{%ǔLD3sUgxWǸwVgI]zVObCyբHHhBrt}d]njV~PJB6֠JMXIjtV DARC8lIĦ5-d173(XRgXP(a\Z^ 2.-y Dj8&+/|D Y G!x_ ! $Z&Uԇ "AHne_.*YOLvǐe9>)fw&uuW7֐_|خ%M]W{V'D OAO}>\4{(O2sfOe*er6ҪSL9LkztR [D]WEϩ1}/άvQ1\QCEA >Nj>@LJFJYD\CXR )(xy A D$l8 B&h'c VUH2Msr mT,qf5YO[L,*.t3oP"jŗV9,s>]p\2"RvcNuRy悊!<9FVk/+1E$Jü \q+pŰsHW0y7Wi6B)R&N/lh> *nex I0؇0essZJy۬)Kt<=W=D Ҿ{0c39{_k(PQByU5F"svUTMzhZ}PU}TIJPgB`V% *DJMvJq6I @ڒ`Bqſtj VQ<Ҡ >me}aYڀdVTM 88<),ňs>:ٔdB:ZCPQN#vbh"6=RPH}zP&%ň3WZx2*Mc;iyddhHbQ(n=\g{ݳw+mEg3fr΍rΝy}αN\bѹLUT*'blܾi !D fb3j&X^Aٌ(1ReiSR iLDD*̭ !#%v!*VXUCC1QPef+oz\2եW*MDZ:\ؕ3l}V1U(L";T-S& ! n#@6(1jVEjpDHr1j?$䂊9HB55(> q %" aX(2?zV,)'jj>߳5 L2~l1[`g= vuC] Exc9[~'NW`Ob$g,sZm?c^W>i 7ްq "fp~PyO9M6WUChU0bGs>32G&"X9փH|Ms1V+ (R4".Cg[32M[k2k"cЁJl@d  b7usE)5v&^lPֳ} ZQ|HJLr9@[ܦ@9lZzɧtu1"@ O#V-; {:X{8G(&|zr}s8,pEf,-DL6@9ARDk&!LjM}fp)L<1[PyFU<6~SS"%Bjqfі1UPR9#zY5 ӚVSٴ b$ԘTyB9b$&h*H\SΉIG,EEǀe#قRh F*{$ ,^mkŢ`RW 6@U D䄄eUؗXs8JRS &"OFY0ly4UQ|÷5|LupMy(YJWޔM4nh^[O8shXz3a}ώwƌImv_ n"`u)P51M^wnƕz;g4'NwrqWYԐEs]wݻ}FVl7(k)ժ]c6ݞM'lךB+sZ#4\T@$H쮓@pPU!cU VYVPU3>afGIR DRc3Q4j1;eL<8<_e#NE9V)jqk+*,[Ϣ*yX2W,i1IѬ&*ד)֭hcvLE`:m>7x Pv.(ie!89Qxd<*Rwl;ӫTe<`k-s{Eɞdwհ|۶ʟ4ϰ:i <68 wf.FK>sXB BDd͌IE4T$l<Ay%SW V3 kwCiM=A.@9KQsT+V5?eZLj@ETQȒ$(&-PUGC f 4.1^TgvZ6::*A,9o6 B(OA*ֈxx晚9pz`]cFc…R(>PL!՟&}D\˲Zk||{.*^D c7O76H% pBY6!VU8F 1MzEg}"#X@A`"ȘUT Tcy6ڌj<,DɈ: Ԧ'3f8bDv3[! B#Q1Rb꺶uŌ #th. ﷭n"Q"!ֈ,]P Njjw|,.Z5p) nJL"(cvRp($0AʼnӠj¡ OqVF&{:;_qCWU]T:+1Jt!W=1L5ؠ2)d…K.ݺuSO=惙pZLAaEO;I$1x8Nb^RW%Q'\־@^@G?=Ou(,#sLL|}}wR8tg(LK>y$%\骅ULBH<;;j:vGFjQh9GlTkW4ru$"0Е`ao{ZfޜsIGq]h7{]K+8ȚBgYNꨊwCA1;Θ岯|yDYqSdV`z:f*wjT|^f1krTuLUž6G^ef齟hbP*`"*eYQyRUR*%Z(c) H`G J+5h#>Uǰ|@H$* 8QCcIjb ZioD<"e^!aьTBNDD !b65&- fEqk!CCn@E8݊*yvI*J`\뢛Td*?{dKr\wUsn4[ 9x1P0z/C4/fC^)q26  A}Npw=xDܗSuΥ!vΌX}x]P<顈@@ r sx1غX~d7`] Z8+O0t_ 5~@(iiwdUFv?o 9{Oe "'\gVW27v@ 3m.bn3ϦF˅|{lZO3'/W`rO"\+zT M!ԌAG9h΄, 5q0`WGDH]gEß2М€푄mkj `(nJ!fUt`w,{k'GyĔ @)#"x@ HwI+,}s8/btG:C-H4\@m'*CE8Nwp1 00XFSKʷA.}}{9 EUWHގtd vtvn`w3ZѩolGgQ}KG^G7BMt3͚?{/BVTQZ G}_Hꋱ<ua=&nef)| D-#?&TWsC/@8[hgDeH L&UDSv"f)ӈ5i^h^ Zj[JՌdqM"j2olho ?fޢDSC"!C %3Cn"FWkYΤWt˹Ir#Azu `uK/ʖJU/%')3s73:m"|8>D &eP;滇| XVOuLkE$-s"}__NΆRmdq<~x'V/csmIE'ڛ Sjq+ xmEpd3L]UߚV/N/d+ĸaOE,nmCJrSTC#0<4yv \3~G/lV>$]8z٣M3W6QPd%-fi0 ۍ~*lUFb]9!m-!PG [ -U'8'UZ[+;fMgDB GD:-\E:R,%yC! Cr=x \o;nNC6* Ӝ]zb2a 7JB: N/*f]C{]0Ew`* nldqq tsw!)-6`Qe#bAjaaKs\ՖS2Y1o{q=~-Im3]U/p&m-)r>ZKQRDR"aqrv~vƷ7|w?3FnC8~+3"PDUxRrglgS 9rqOlVb1|<=={B7{}tt4 Cuc}ٸ.w\.jZׯ½ -HפMu^i۷eF)Sen&""\`y7Fz"o tęZCL^;wO(;F-ū,+y**|]lv$3M|ah҂~Z[{S5t -E$XB0Eā`#~\[`a(^Ž"q..q4|;hly/-r\0";LHрiSO4>,5Jj|rX{UZ[JxCE(zf`#C~)v&էZtʇܷSdG! Zr5IH$g@M,f 'z*$XK_MXVگڛo훳7 wE o 6)&UoupQN,7dYRkr_[Uv;]ֿDHjrWs%X,0 e(5n晷,Ok;7tܖm/9,VKѱAcwFLIU6 ^57s!ohF/^lҸ?ӗׁg s$Hrڵ"e̝' 2ج ׾$"ʐ0Me@ ijє&rNNծ0! j!JP<=q2voLmۏ4:xa3d*.1=u)ot6(_3| s/72 O>XG|U/RTTRJH BreKݺ-J𕊉rݤݣ'ȹ C)\.WhfM*;ϐL1Q_w}[ie8H𢡄{_oA'ŏ̯f>dNuG/ѽ){ $"()I'=P&(3̾g[jSa)A=nKd#+05h82SF'ʔi0~*jn]9է/]T""D#n_!) ǽ-dG7QE$['fFȜ(Jd!ͳpqY.)Qc,㓓zZCnapFDܴ/m>^6fwp>]_QfV(V_,f7n$'!D jL(ZP>,r$itsqk4iZl-z~"D0(Vb(ð\.~a(n]^^/>.w*\d믓g^صOOOWUM _(XWl ݪM(P49y S,<"eDDhu*P#r'v=z*ƭ+ٙ۽.#\ '+"M N,fthvB)m]>y0BwD6*%w$)PHd<c  Gh.""L+̝S瞮ޤ1칤SSVn,vArj @ym'h7l7{鐴9%6nQXd&naN(K)G YhY$\tSԘ[U(KGD!G}4+'e^x?xgN{ۓF"J$Ws;yBl~v _O|=m}*BȃCSEDAd.`tርI/YC XtyLjEOih")O=DNU|oM_|]gn2̼3161ԷSIp#vG0$zJ}0$l#%i-WX#m/#,łNO@T CSZduC0S~QyED"bJ 9J*s!*:& FX(A-`aQG=ZV8'?ѐ} $op@tlaCaFدCl!Ablsv%v^HƫטИW֮Vw"ǯ)WO4y뱶W6f )-9#B4D:PPD0J! uheXeFTD!4* Fzq/ޗp?~././//5K=*6?f;_ѫ5vv{z#Z77oEf.//>)Z\PFHQQPr,3jcʮyhs=$4tS${FҔc<׬(jNFMF=30/n޲j^kP" T#T5"Y8-| i0-2zryrtTOÇժc={ =u~@­ιm(QY W!_nBj)YMکp2klm ð8>\j!e)h\.b!R0, ~zi?$YJq,%Eiy!xB;HqWO~ iEg%җɓ'sG3SWĤ;!?O~Zx)e,2(G,B,, #Uٔ=t===<(9Q'hYlb;CLa-w'4< ȶ,"l=vJ\ _HCF^NP<4`fAwpQpp  c0\i"-5oZs Y8V[ f0\W#٣&:RU1z>_u!}O>ߓ5I[;CglyEh]!$DC('K"0-rr,E<8^,RX "ZGHR}MN$At"fWtVWwLv+4Mn'-$q#."sa'~Q"4B1ĠRMVƲe=:aqT|R>G _:A+=N3}4|զG{&^ =׵lE_{onu§v@~O_ϣUs^.ʌ#E07C-eZ/}K'''_җD%g9PTŽVKaJVHrNo]V^i˗y_{n6!Z:94&v㧟S$ჇGGshb{㸓M ̩(TFrBs |aN-$B(zC.~A-:`&!8 1rp%@qs4DK SjY5sfitla1WEJ):@ B" RʌNB1aAe !hr̒'vY}@.IJU"_TFgt)RP"3Dɴ=;Sk;-V5Gh}APNDQX՞'1g獵v%]%~T I#Oj %ݣc;;ɓ{<3MoND {P[ C-rE/曯ֺ?~|z~qtШB} FyRX;η`Uj=kNAM3̻m)2uhoSF ,oo~~;N87&e fp-$m6JN~~*~Oisl|G"m+X]\sbr6Y# l2Fֵx= jCdi Ѱ̳z-SH:2 J6,v#rݵytJhu$"""**ZJ2EˠłRH zl"'Kgr#DgOTo ʝ$ KF[""!咼ى j;nF#]ٞ.LwEJR5MFP@.p" WzQWkcz3UvƙwLE+G}kOcž<9 ˖b7W`$7Exw*sA~fOORGjnNμJ9 z\g rѣkѣG_R)>xi2 jQP ^R("'Xv=s&"0j7q^]8^8>:z7?-+/MVjy{SحOdJ(>|/w9;=*7OOO[c؋k ZMpnHC0PZ uP!*AA/D)ۓp밝iO ZkxtᄃKId"":B\ q%Pb Q0HgRlDF%ѨoZLHn0dr"gcD[x،mL\Gh*w&7봙*]th fIf \r&-H!,rkGGGX]G: S|x!30n_(̭Zy֩+|86-U@7B{/LyJiaQRT˥= Cr|7xѣb(j=zqq^G!HmX W;''r|+ou)nmN?ioij0#8?+_yя~Z"SE%|jڧT=aO"_{~wLzf$GGG_>'?z3w╾3>l0rhXxa2fb9Qز8Y pPGBG8)‘[j \!H2Ada@"BI&c.6)o.PD 'Ȍ"PfBD)|㄁"Len}X!Q=b&Zߊ@WLt;&cC&} Mh9G31 n u, ^"R=H"|[>eY:Bf( Xײb2H-eZVY=삽V'.MTv_ࡩekEw9rHa0CvNL}]fһm/^ ,.*<9Z,T\.ǥ׿r_ɃC)o}7}Ǐ^\]\Wa^z^ WD'7]I>Z<-Ӡoۗ.΢f ^Psc FVY)aX)OǶJӊӳ??;;?+銞i &&3{ DUY#\. _.ADDD!A xɋ[v/ ؔ|Bh"D#@ʴm Y$Om`g"}64,EnK%Ƞ,"A!JWC/pꇍ+RvStJ m Qn^8ѭ{ w8'1H[LXgf>J5 No31{^@B*  8HWEeZBb>;B ;zpCeJw7wʕy=C:|~'w_;oyʓĿ`/dR/~AYMb<:>K-=ZC): GGG'Gᣓar9dPBƣGeqקźjuzz\>lZ-"2(0CqS%<[?|ͿuU8ܟ Nc"VUS02ze ~J4?&.eWM7[P=O:"/BGlw& ?py"Dg&zp dDX& .;q3#-5) Bltڜs46;%kYE,0)'`/ S(D3zjuTj(31;Oó't(_ʆ;EZ32+#*zm܈Cgn@m30n.MPNȉ~7=oz)T.*\.I℈+Job[m"_vnEC3)Y6ΊAwoZf =^?qf;aC7߯A~$iv;w\|,q6"D>b1o}[;?|=1dޖV,+ن>Eb2 /ˢ|у ~W~NO>?O>N.?~LGq/Wkj^m^M<$ b]kǞ;x7oKZw$qKZj+I+qi\.?3պo EJxHs iS#{M@ Ż_8 k)fijQɣzI8v˩\~Bi3wC'"%&Qx* f@wP A@#"ࠫE"8J Zjy=ủ 'wlPLHIֺ[DBd[d-T(1B2!!#4HsoG 2S@G"T$7ZLM &kY qUiNگb&,@Hߍ7܇l&د1Jdg:%YR1FN!;ߧmlKoVs)ŷƁwX5@m,AcU5ɿitik_ܼ=7۔['%`>Z,?Ǵx??9+"ZYdX3)VCPe1,|JUaa(;#ˏ,'gq}z~vz~z]Wuu\j=V s6ڬ[|Wr"͘.Tvi<)qd@2Iަx׿rNG+q!sUgRw_Й jh 9gZu_y7N,~{X|hnq T̯mٙSZQ uPoΏGuﭡpcơ֝wdfz.s&iՑZEt¨&-$(N LY:;<Oܧr]%zp pZk5NJ9Li;C4VY&6Q~P` BcMUry3>yrv~>Gom r32R3we>D+gq݃3s7|-e(_ůGfm'{\6 "...8;;CsVԘ'f^.aPk:gdeG轓_svc/Lך~%Ppz2W.@mAFD*K)f7ې=7o H5aWGM ^D(":q~4@;A =4ZIx QceAu)ގL6]ac@C8[sw VD8'>]\8h }󸔧vE:[EDd{{yK^$.8ZCڬiS*񙈒4a(rxɿ;Xo"DD/K;nP3M'?t*Bӯ J:g)Y-CE8E37OOѿTHXZHD"scQs.`aL}1$Gsvfx`fVH("PD l֋ۜ4$Bl_ҬFɔz]{2{)=ݾU1#C"U=DX icE=M)BkuwJ7bog*~}:>RT mǧohS Wx72cĵ|7f&fgdoӟ6gS$5 HYjfP)- ɿk9y)bV;-yUN|$? d-DED $-|\nMs6g'Wwog6JHm/V3\@_ sdZ[513Ԑ ifPGMf@`[G]{܎,}A IҁlbY&5(Ch""jѣ?q0OCԻ}Oo5LS_mZ3)Jg=PX+I ͂  TtF śtH+8+͵Ҕ0n5xW}uPmg!)ޔ,n3Owb?Swr7qj!ipV(hC I{ݮ{6ƝYV~pnΗꅯ5m*NoMN86.J4%2k!&bqtttqq~q~Vc0QzNI!8c5^- ICnnCƯ{G6j@;³r{0( ecd3yzp8#!@Ld*{0ʼn3WO }cڍx\{ 6=r `kp{;ĹC## BȸdI7%<8?|ZyDYhDzˋsQ]zp37\9wbaۙ)s"ˋ'O|{qqq~~^n MDx)eM_=E^Kr=: <<شw: K hڙkMDM:YU5R%f,M#Ω9YVe0}PY2ڠXF1"SC2҉'G%\kEit'o61L&e Z#2)P{Qۂ$;2H֣M@$MqPEhbY9[t&s %,!BJny)~P#b!|,ѕ%^׋ab]+(|Ҍۉ%twnT@K=MG?t{S~nd]ػe]sm#^izKX,/../oWgYoEX5Z" YQZEB2DpwQ)j5^^qU͊Rk$Gj<"Hg~u5›9=jތnSD'oחf޴P9::׿g{t/.{Y׉dV}A"DTKzqv d]n Nyfr߼Kђ"ܫI.2k؛21d--TN"(dR4]=ڏLv׷9a-mu.xt@RU2׬L)a'0߆™.7=fqZ; HNGw?{Y1DД 9v0Sz2E^bۥ& CJK q5H2@fi9HU>ؾv٘EH8GE2Q*qt@Tݹ]qk`)&m`i 4I;f㫚qSGjs"hesRbW'RoW7ŮbtTkCoaӁ]M*3@PlOSE_BTxTM`d-ԉæ3^/umxWoU28AK0BAx0jjA2 1bՋ0gɈP[VD=-zg"p󒾇yM{qyCU鄸&/"Fa"7W__/SmX 1+i $@sP&܌U?7|;(zSp(/*rYq-Ec"5^5o|vЭ`EdPn2 ɆN8mVã8 Z:H CH80`ʍP‘AJsuw2sKɰrf Evƍ -ς))HDXɹ]CkK0e[ou02;""S2=y/bPԔt5 $IDB gZ8@ G2"vn @DDuP`Fx XŁ0UʨAxHTio~ 8?cww&zSj׭98C*) *լaFmUC)z5JWMZB^-8/yϹ$g!$>/aBBqxh~&W I &sF`e+ DDGVMLÄxtNobpuY׉1-ne#EzgbJ62 @ˡFظސƿob'' '{5.IdbvE(*%xj5.-;q(^Wk]ںBW1Re 8ptHb Z~Y[!h{l[|Ai۞~Vm?z;{R8ʹ] V*F4iWNEZnv#lrFءP"YI"ktDA JdZ Rѣ ٮdq%>~#"ɡHJ.RT؍F饅/TW~PӃ/EB" RDBI29DFĽgY?ۏw9I2^ϰ^f*aD^yMUA@FIG3#rΌti r!ϴ2#p` +IqN/>)Vc(p,$ p`BoJW`H"}C2l(3Ͼh"d4sJ (LZVyjEK)\+V՘m@=.?rNsB/q'bp\$t:g9˅Gkw=b'G|$USf7- d'G@m,xb5wV1]]]5luT;ZN-},~oz/dǵTw9;NGstYbosOm*睭 R69ld[ _IE\]w[jna{΀Hǜ*e*ŚJr6SHEK U@1{b:[V!9 ґ%IR-ohEAHitjuSUQqu9w혼ŋ#)ɑ-lJ/՝"7"I&h˽с]R`t0YÕTJJ5+`WFVEDD-k{m1"qm:dݷ9xs-P?wYΛSk֪_wT2p-ܿ]lYW`dSVZmxTKI )"]mxO):vu*YȔwJ$PSE|yN_U۽XezhPӨ>GkOܗ?WSV ɠx :r-rٶQ{d'hjpq㘔۬{2|҃S:"" 7r"i,;DL"0Y@Ge`H>XK^aR]YpfnmStAP$u3@$%ݖ[hۓCg)61:q)dCebHXp3Qm)(7Ʌn1:2iyъ ˴tcqMdC,;3v?=zqEBb 9N=A,z}:sFƭ'zP)u'-8"l.jZ7xUP6oRAʴWWnGa5kOL8z)uz'rker̞kOcl=Yz8@|b @yObSZE/=ly0."~lP' !C`$EPL4RTWĸF9&׉@^[ٔK?K1C,.ֆ=;Jr~o|K_O~v+gyE4(mcT^Oמ`==UuKfo9(EzGVQw;`(᜸ogf̋-'ɹ^;tO{Y;W3n/E$;gfոP >F1~^? 3T$̣\VCo`8P3_ }uH##uӑ 80J@"D}ٖJ!,>pJ` kwU cKn$S&jH-ECŋM4sDZII]㻏dU%2"?\Æuh8 U4VI!Hu-hʒ'B97IkWRTTM UY5U uu?)(LN|~RGD``Npru|'v4⛾gm\;+gU 9g$o v֕l"#W9 _N,EiʌA\Y)hZ7ۘ:n*+a!`U377V-s|1.}a/ӺlJ>| qmɑg~,{ =<3q[eO]EVīsK}gs>k$,Ȑ1q)P!(Buy rN+0$wΙ4 dC@TX,6UXvk{9p'WR4:f @=~ oȑhAuIJww+U7d D$< 1<˦]=cd>KrЯI] ! f鹋6IqfsG#Za<&Z$K \YI%UTIgP!kȫAvڠީYQaP/]o~>IX JV\DYCH@g<m:^%63=Y tm^/>n #,bSa8D~ͥ~&f5%2#H9WHtr 7y65^5@ʵ?}nj*R#y=>o- te^q&5zv ūE<Q}2T{TUK l9C GȌ\@$d`OЂdas#?!Hys"%;6eĴ@BIx(p:Khz6)m/@CD!E46=u@!˅Dq$ Rjjscȣ}y PssB3!w ,CFR(1KQE85C"֥)N6.*N^E\_\\n\y-E:=[T;qxnRkߛ._D:پoڞG-޻_;]v`p3?:C'Q›E."|:W6ysxJE{v4v"3:7_ͨ|/޳ʄbM/{r$7\8Ʋ_N}27S䞰q(#Bsg==ir0 wxU^a(М pLu@8ngNhn=P뷀>!l􉤩Ns#C ss@(BZ@HZ( (]) =Z!#I="1g)]sQhwˉ3{Zɢ1,#BS@\EQ "LQpV-/*G>1یJ@1wsXЂIN3Jy;!=raBBŢ& 1t *-c7p KwDυ1-ab_(odA[~G`pg ƺ ],4F}" $#HjZ-5#ݼ *V76ōyy}"*vyyű϶CBgjw͓<{h(ߩfRѣ,h?:^ $[|uuyt SR7|zov|p6I*GYC5hE>ڻ崯{0D1 .0xf!EԚ#Y4!<y$[,xLh\ŠKB-edԭy-qs@KasFt%[mLO1^dd#.'bf&р{>bfUf[%B}<걨X[`##T"z*H$ ~neHJ{SH,}<߸?p-6/@&m0E@2ҕNȵ0{.3vjaRԫQe9o6='t۠^^DjX˝YM]~h-ܶEa8uWE=b֚AU .lQ}Q~rj`ۍ7_r)v_1{MSEr;0i̙o]`h2:!*V7UI Y,4 䡅tB-Ȼ>-Aw8|Ce G^lOřu"Új2ޟΨPhHAShгFNR&AezP *ݑS2.PSZDJA#D_FK"sb?f-):D^htنaЯ<\0^'zr˂P%6^Km{xP =, R>xշ~*;ob-+cPÇ/=tűhۧ.>n)!|ttAa\ GxT'sB . cHp2s6OI2xdyɆꖺY2߰,%.^($b_^4EQvgZ4kg@ELnULRK{5G4e~"B 3h)0;'>bh^E1=F5ZCz@`fC u;= IDAT$rz3`qV-cɓZqhx;18͘e^UhYtwl_qFY;{Og/n{ p*S^\[WWVżgx2JTl*9L̪Xm]\ܻWǏYLMTHH>G9ܔ8 ʎ[{mr ?RHϲ-?\a|jZQ|;CIfڋB~*wt(Id\GϹMnOrԻF7$QK|-[cYVӣG3w7#ed=`8SD倗=!E5WHzm٪PxUuSUn>v-IhhW_-axodU^y{BbPbviV- !Rsgp"TЛ7gKpJ;rk5$ej:LTU) 95L~~"ۿEh[Rߓ&M)DDtR>ڂutW@ʦvٲDy⿄}Y47;b`!R-:s8ɷ9&H Kuہo<Fz iJHQyzKx%YThbj1"XQB 4fKz#T$,M^?f+{'9фAtPn ÚP(A-= :5 XpW͛#hRS(EE"D^^^k%vGWK"1{v:[?K"ZtiBX@Έ"!Zr et;;#[w^#ĭaq\@'KbTp"'}vsKrG!#omv2.@rKCj鬫f<@vLg>Lfؐ\m6UY]\o{կ}ko]ܿ߳{Ko|G=qyڧjݒEMR*7Sr5SAg'MQ/ǡ\\)"V_W+ 80C,?GG s?snN}&gyix[Z.I철l3UQɹy),uVZsjO.1uWюcFwUӅt7zdzr/y+HvXg+S 8\D9as-씘2ޙmu>CJE-8G֘eSwzyD B3ëw]ev"|IA H.c*̣#tj8`KLV"O q2:Rp > #co@8q狽5x8y?(4ButIjrXv~=]-Z4j b>e0d/l5ݼ & .x͐%hb姝Uڪ,1Hj+Eb7_QBU^ξpմ^p`WmW>~O>FD+|1`Hx7Owyw'-YAxK z4izBR=zݻe&e@z#Wk$񯻧φľ~<H|>-qquʙ!d)*nn#)@Tz-9ɢ_f7snWg?i.& lͲ&֛~̓}7[{6"vLo){[G~ѣK5\gXˬn<_T54,i~,%򋅆Khbn{f$f^ݱ)Gxt$MiZVi]^>I#qp?/q_'n;-[rǰ@7ҘoAw9#)) ޲ HjݵD6?,Ž Ӈ .B4d.1S~Bb`9"j0w;@ܐ1q8̸}.UӯKf4@1= $H2 F$,f(=$Uo7 ~ ˸~Ț3ai8gc? 8Մ: ,{~p}E'-ZX }?1#QsDtѥ-H#pEgdy3GycZMk eO>6?}pYjZD,Sqn???@Umuȝ=(|γ-?o9u1@?T~~c5/=[CxH 3#CIdP45wWBJC DHdZP-0 Jj"`*Iy.P"A ! o僯]z%7H9u=]&@ S$$+15\ )uhhfۘn#oF_oMwJ޽ygqUZ6Hm*C W^_MMiK ƠgyۊXk93b?9zOd(""T[L\S;" gY"IEl\gdXNK mѵ\A;My&VeԝŒMIvb4xH|xE4բGp?>~I*d]N])W˿3xlnjZ~0^b"b3yg_8|14ݻw=zDX_JQ.ˎf<|rG_o;ꆷYknI?Ϯ;:l1vid))CY<V\'O*Hv !F]4m}~G/aճRHrOj,qx_o?]M磷Rx?կ~FupŦnEq8osylygV'?~%>vKByvwL)P +ãד;XK 0fuܲG eTdYJD͖` =bbPe(mPu~5k"""&lWR&&BPͼaꞜ#jͨcKiꁃX#=W1 ; dyehN@ޓXlGE)rRd+<߲,"UÝV3`v;9&ؙuFBmgyr"XITT2y=FDRS@{g?{O>XNTdm\&K6N6mʿGOtv}[CsT l?JE% ߅85XBn@yr󈫫+}/t(# [Z~yg{ {\^^~G=u?m_ O>1"庉`)&ݼzZSzoao9}xl ҭP KDt/ʠQʜgCHDdHH=>IQ?G/Cr@\CFڊk3""O<d{/}a= 7EEDpͱpM>mdIg<"5vsp^2 | &W%I#YIDxq5|\ q.6+*WR&UaHp2BnZ[?֓G[իZ-"& ֫:VAheaH ܣPs$n>(_"qy6z̼w9e?bK$=\.FxQ0o}z4ޙDm7A=ndYq_Dʓ'VMU3{?CxZ݈^u^ n󼜎<_m]+. GX!jcُ,y6eA6#83UR"Jiz,E9yGYBAD|ZjR2rH-Ȅ@A2!ˆ5hlSpgЬ" =:9Sҙ#$wF³p/Xd 4JotR:I}ZIUPt%b@Ie3@4#AsL:Zʃ;q wHpUTVn"e**duCZHd9\\oDr**E9Z}]l6nU@%tx%Z69-n״%8~Kw<گDp!H4lxA5*~|of,Dܜuk3Q{{X's{"WL-aJMgZca|v+}~{^kyų7z#uŜܟnp],-LLApIәZ_7l |7~[~_zSfQUЀsע#?sWu zUDD*$h4zOAwhwPE22*ш]MH6xLdiC(:OG?7"J:#mwx2Н}۞PGV Ϗ^e""Ss e,Tr%(z Xu'ȨQhdI'O=p)"ӤUYe0mz*:kDJ*J2bs|GL1 RMyyN%ꌟV\sr RD%R w-uehc=[@j ۸B#]n43anLuv#M/KS%3kϾ?im=7Wc̓!:V=TYuݣL`/%Сù<].nuw4_W1Pl6o}w< .}=B_Kp=UYJ ?HwKrfr~4: / DW9@U[$+@BpV%^NㆣK=/,U DG,;<裏k+ESoI+µZ(>΢̝S&bP`H!{hK*$IUMޢ֚2{*RiٸTw; Ut%"BC{\^ qZo.Vf=bZ"Ze*qjDD(L"/oUe;(ЕBݐ/ңG$l5<ª=LNӔ}sk6-J?.h*_b+?ZG~& ݻ¹,#0"ZB8/''^JmMD%2v.(Ⓠ7LK I+A٬٬6]z5m6b^D ̇/6޸潺m\Lٟ\"ʱnZݫUsNtY)^*ujRTt{D\zuunU]+mS.2γ(Ӟ"7^BTչVkv@,{t*Leע{֕:V!B{NS;V<&{I[8iwwo?a4sY>|<PYs4 -XT[_~eEG&=׽=w/=٨ycKKziZk%FD+ xzd%,24Q M, jؼPC47af],IlA_cwԄؼc VVh=B!D{$PZCV+_2>Ll˯czU!Q!Z3%H \RȯH&TҊ:EUE%lӤN1mWXfx(.4 lUh{]['i۔bZ.j.Vjl EFݭ'}pou2β^,k -][{QZﻷݭocwvO./]>yrxf;ZVyD,EѿC(=v#?Q9|4G]k tpf$.ЂYnglYZ4gȋlmncv:wOPYw:}\"lS-w;^j^w?~w>\R+mo.Ԡ, /WS.0"?yܾ%q|Ƶo־@;=I3a1fz׎aʰy3Hdd `wd#BT=$uijBdVc4G$!7$xRլ65g>g$A[8\Dz'#[z Pn Jch@XK&d[2YK­L S$~,tHR T$kp^sWEV|2knmnĩK-)rbXD)?flV2id, {F6E ~6tE IDATH ݚӝ Cg77yvx/DOVQ-1٤Vlfn/{>2m9>ܟpqLNq sr2؎/kAgr=%7lvssDHDڲ"_~د>blg{!"./O>w|~,+ïEݣ2>4=UïCr ;G^!'_?ZމN[ַ D)pPBM1b']إ:#Qy-^wDR9w?-ԏ$w iу{Z7 z& wcv3@`\D4'=W#27sA8FBB@rKBݞ4"fb&)j 3R"E$=<((FW"uָ?كUlV^l,)IYiQձs4m6 'R!( ۻ#Rju3󋺈2CFEMsەjմ4IYѣO-.ڣʖOe%gC-Ly{*{nwʏT;gG}5WO{1Ƚ=.Ex m;K®õB.\!՝YH$ˍipDO5l 9[7,!G]W&!q{%d#c; 'mcI,#/ߩh]FsVM|.uj,%pdPLj~QHKrbQ+YV$b"X01j˟Xz|.\bze'l*R DDDuPv+\v(* `2#x06ꔛwG]J* 5=Y/+4[[]j*S)EWuyy=_i#&pv%;>Sa6^Gj;Rzϱ _k/ɽCTҽZ3f/e^cgNɜn.S;ť~/G$[ $e >ITM\;7_=0}GDHT!뛒XTbH ԰O $JΦ)&MPF:u#EsfS`";_?${ OF E½' 1"$<",3wwKCm,@$B/BRfM@) dPPgT $(EJ])Ҋ͔̲R*ԢU*Ta՛W4mVrB˃{N**S֓VZ*PuZKQP[`S4Xn@*pl8S.pVpwV=:_YR&^ݠF!RB>""n%!kwG7vKq:dOW#gM z}n/=,091_j;r/Hz<)\zTi׿Z{Ě\j:;J= 㡏`yc($(B&Q-*Afȅܟ3Fh2_*zP PW4fzILT15Fmdi_Hʝz@-R@'<vEYSpomGJ(m@2 YE8ؒFfly[|M%d6O$"0eAE+Qː"(IoIPb_]#_24P1g*/+KwPQ+1C($$uz#6eUp{o޿Ws3QJYM\l!"R6ns3eL YUMp5Dul6(:.Q; DČJFDS Uu,˽%hJsj5Ve*-Pu:fwIH*: G}$5W(hG׳;6ޝ:7*V= cm''_,<,$<6vpy22E\K/_~׿|wUW̡l"E/Ib[8jsUE0ܭ3pn8r9wtJHvͪn-S...Vw{/{d-wgg΀> hi"c_ם*ERd{ǔ#`q'VTerzSZy ɔ=ʴh1rIvʄhBR>E86V6d K hkO)kLw i@a#5)v*GH50=UPv*4bF%"ATWZTTLZJaH*PD`ʬME2Ýв&0[>PܫVM0&E8ӣVFҭ# Y&F<(BKc,3-,I `9ݸ`{/WI=tN }R٪S$F@51_{"Feh(PxPQBpWqO`fVe4'*L[WW޼/>|Zm&BYZ:'dN1 D5'PgGM,XQoU-fFw0\8-E"Zc*d!AstC,\m4yE=%E! I "p-Z\k >7nr(՚7 ȳ'_|==kD~/ۆnKiŗ@yf.=wXnO[rI)չz;e+ŽtyQ+zƖ4m~|ay<7O8BG^w;;RQ <[?owWGkykvKKR;1Z^lk2zLEx%'{ȶԚ'2syv/U;Lg!22 Z YģcR{:Hr$"Ql )-Z @h&#"uP~y;!1czHփ z׌^40Q!/EEP&$ҔkŨĈqY5%%'!Y8Yis<{*s@pDiUq`LIo~|+W4>{̛UQRg]-I밵Ϊs1̀#J 1diK')TX?Np Y!٦-gP)13hL?̽ag֩ A{ϭS{y&"3 `X XB62e$P-2$69`M5uCkbUDC/ZDr;UdYؠR|!A.kG{ FEd΍?c.EI4oex\dC }Ȍ|5!9L`3 #-k y=ub0 vޯ}ciUZ|yo/?ygO*`}4~1Prۯ1Tqɓ'rEw}_~JםG ]ﯯxG}TuEk7d_r?T]aM:}weryKRjR CE UF~'FXn-8P!0L,fPrP P$KDO wUjs#z$"aSpp SحSzzß-G(= ;uwwbTl6eBbIlI h]6`c%ǘt^:ltg籖EMb^h" Z⥴=z?5̋&UV& Ph0S6P& jZTUS;Pޤdwv 7M0'O<}4ډuBK]P xRq_p)mӭ#86ѽd(\dirP?ZC0&FRZ.HFpɓ\℻c=0*7Ԕ&N\$;gԦЉ AdV=,6gƑiB$nuP䣶wte- Lqqu9ua܊{JNMb(fgaIJ|"EA*dSueF =¦SsS`rMv2jWR&pV@aPGe8^Ws)",h@j u DMn4ҟ-C BR8H9Ykõ0ʼy1Z+V~r֢6X,黵IӼ"ڏ~Fܴi7p`SOIUy+dӛ=' α]W?mx9m8p2|͠Vs;yf;xFnǟ?Og>ǚ2K]ommؿxn`>[|+s)-VM.ȝuhm{l_R7i4[CIDɿn9J>&& ծghi(bI1i*WWWmٛ^HCy1=y~/bh9VT\EFa\jA9 rF @xN *5j~C$`M̬D-=Zb2f$!ux<<<2%ֶo=ò췛T܎Ai\gB?~ܺ47y$Gk?}"8h:m#ur=[` VWH_hg~ZrS >oiץ |ضý5V :ׁ(olT`KoW&/f/{|Gr<+IY]=p HP")+CdB BEHzWQ~&(9cF!E4bC),b̜nK(R1:0AE,şOSF eNIl]Icx2YOd۔֬ExS%$~_Zmjd(x˹S@vx6%'rYrjܳ'k{O|Gf_f~77q㵉gje*h7pi$$Amv_mMͼnlH 3owҥ 9,ˢ/wP}HK4ɿ˿Ɵ{K ΍weYlrK+]r0Cѭ[?lN|rh*ޅ`=w#!ߟkH{$:AdZWeStascIqm?(,+"0rnA%,kl=vت+ޱ&td͐k>t$ؙFV8 M޽b͝n(żp|.>s5*dL-&5hl]:X7NH/ϭVdFt>#y?uì>jVԳYO.rup퐦IlSH-w;ʜ)+ t7Np#PE#KP%Y2 ^-̔Yk L1˰DmmATJ1f!Rn0K.[͊Ofmvsx8v%e;"ZmRZP2̸Fkގ&_!l4?<]9/"p{xT]C'ŋLǞ` r44IhBںz? |ٷ!ed}RRN2q~!饘3a_¬6ߘd@HKX?ny0'!ONh@ata?χ %18N݂? /|m G<㦳\ݾ}?pv1ŬЋv'\c>h5N )`1 5e\`(K&'S3Ff$Je0 kg\1 J׊ MX)/~ɏ}Վ"Zt R1M@)8SCM$Hҁɺk `ls6H'Z{fYĂlu,%ӝ{yYm-ʤiR44n>Ȑ$%vnwQ[hm*SJ{ج6'yD~leiQ3wؽ"U#|%8sᄹR_]7M ;#qErXzPK3&p0>P։^>K_[?ko~dƛj9bxY|J[mM\j>}g{)EH7{qGep턦-ûf|Alhzs=`1tnݱhXbk_tI bQ^M#:bu*ꎛ6r +D rGM+)e b[J1O w/S[nfG,uI {*V$K R|Ow'` N&Ѳp;%ENS)76 Vn!ϥNl2_{͞6Ij)511Y7?tRLؤLeڇwڽhͮitMSyj/}L7&#KeL{1Kt 6T&s[$RUk>pR ue3jv/B@m rČM7ڰ}~8^ј=IG/K.?gc?Rj+V>Nיa[:xm 7햶5[O|] RkZ"8&7׭n+(cƜD"9CG2fn<n1}r ) [ $z=^S1I7wdMM֑ Pw3ƴxx гfh!*5I8:@nu-TnX:(8@գÇF$2u]8;gݿ^pk7RDtѢM1nAܖtQ/l (2"꒻Y(',Dr0QHNNew5]X|ʧf4^ZݼLJe2C2~/ I~:jc%GDxGZvP|>&Eijbu{{T/x0.P$=M@b(o؏*l.y_/rMC96?WjYnWXćK˿??{|]!C;͜Z's?m6ɝ}W+j1$7c!O MñBX0i| ,f}KdIE =펊SJܕ)f5 ͓IڨK0f+ vBR]Y^}(1]?@k!j?ΡfLT+,!x =K^&G1̞ IpV}_YNI"MZ`Ŧqis4Ͱ ?GGK " t(d[O8d 40M ZBIhɰVw}3wWI8P e-fOVDuYBZM ⓕyiLӮR2 hնb^- y]:奨eY\4(1^[kOaJ[qe%ֆFv_,CDXFkl!|iFk`Et7!~~JTE^er}q=B>S͇n/`zs:o+\ _#NIaGͷ__M)1dq~fcʃ㜑Z 2]<#Z0|Ve,Yc b;Ӆ0l %JJ̓m#38R̴TAn'jCjH =9:5)RodVLl^NH= )LtKKFv+I0"Rm,x, =wɧM*`PG?PC&)$54kKSbVI-S:0 1G)s\/va=L! uTd֋" uUŋbZDmb;4ͩ2ZŌeFO[R"%`*DXbv,s4$d|O=K~.sLSV:^woܗr4_Ӭۣ_oo|vųUV=5r͑;J827wt-["ڿ7'vId-yOg#M':MoK}[q !v0+!9yH-HFX N$Pe[LuJt`.v!!C@Wb/#(mF_Jjr{/ %MYDGՉK"ZBa#r{XmOp >fTbi/9\UI{&@h`2Z-p'e!9ؘpVR)YlD⤀p$XI-em"֟ 5t_.[3" 䋐@!1aҕ61\)] Z}d`,`;-u!./n^bk qgRJ|ѓ(6S=ZR͜dJ'̭IB&bOS5 s:QsKN rї6!22\8az~/oɓ'.:OAwm8<#c`wtE u4yxSIKNK% I\v*#FV=)vi+vuuߦ׈"-h\E^2o~~;BҸh'H;Ji nxh.t5hpTPEk0RL̮HV3x)^NHQ-$Kq)ZkVJ5m1)zŬrNν]w@q3x]B[DjY騎NRH;feO4U-uRHߖD?7$f2 |6zS߮YY[rvh =9_bF8EYG,-F 5IFcZThba F84SgˢA QqJflYPx0`@xrf2'׋pjΣD+puh[BBZDS'HŞ\NhQBkd RlVSj6`Ml.؃ѢFE<]`Pbk{j`3p"Nz,, 0I6#O!lAJ MKjhkZC5TifYx&FXllpru~RLQ-޳Hixu'u2+5&ɈvȜp^ 8 MrG,K:sp%Jk6K|KoAMf>I97zgGn R:-co{< .vwp/@λ<} DV|v7ɐJwww~V}:绖n r8,[cV8ÀgRǑM=C ]"ʷVdeڡW|ya3e$zҍ )΀E L!i/mJr&\۴սa[=<)HRܤt`0˦Az*!ڱzL&swڐD@;pa|{$fߐBPtaрJd}a6")`ԠA"Soդ-DG mhꉺIN0!PDkL臉9&YsFYi04s9ڼO6ns=Is j e X\dZR ;[;̏~改h Eq~}}M#B&ϖd'[#q5v0J9Kcg!/u{z;9X]??Ƈ 4v2R3eRtڥK>垿2(<, _=-緣!^{c'X/w&FbF<{\YS"GlF5cs='דB—SkPAŊ!Y̥*#q?GI g8ٰ͉o@i0sҦxqkIMOIySn{ڶ:I<׿|Zr?EIOpϝ{;=gNq _ =͝eY"0OT-bN;'+åyi^ڥ'*۰鈼 I=J. >h/~?铏?OZyk>}؁]j}߶uR"N]!סCX]Ou9cgbzTHQ8 5+i-3YvQK$P)=C: wn311\GUr$1;<h}9/J҂CJ\O^z%W4%KiBRd()cWVjǓdh$C4K2k$1%f#xy nakս3%(UEmUb&mIbkX:c;dR{5 )Bkzp~y6VRb&Utu)}H9y-*E̤zqrFOFQ֓ԓ[tшi(J7,&>^$xM Qpm/QiY61Z>ۺz[!Bq0V~܌/^XDPxnVWs\Sb)ܒb|a*II4"^ \qM]Yz`3?Mw&*ee!LCZ3s6>)}G*Ɇ!;lM֤G+ 0L ƻvcp7]Eʋm˦Xg/~a[^7o}KBn>f{1@)cb$.&I Wx5 -A.˃Ѫ,zmv/ IDATv^1#Г]H9HM~S8i(L,۶b6w}N230sevg)3"5SHHϿfToԃ& q]y!jffa0VFDZkQ/$1 Q&5CPKk, h-VZci UZPDMpe`B|Ml. q I=dE=m87)CJ>9RDC#逤=oLU vrtrTn3 x6P20۩k ܰtm[07x/F]ܴ2[rvGGq=~j]*p}};;j έi>hf3Qen%2,׷Ea׃}ڨYngԫ:+WI<;ް6@7"ey>v/6v`^dĘLSRSAuTyb~.>=4`-sধpiqſG968G]zx*,g N^މջd! y(sܜp /knۺԋ[&WVЍ6D`۞I*:XX)  t䚏<6BBf@7,pK@U`˃ƌEdqOEwOg&E4CSNyjn=1mY:TJ$yԈ2rV!֒"JhK̑BL&f{' `m`u"6}Yӗ=Ftroo=Ċ@1Yk^@"䟳ȖGFe߼Ĉ&IS C|-&x ) ivZxMTjvj#»v1b&@lVíU?̻h,KM:s!%˝" 妍Ejm>n]k mUeqmܠW(lVC&;gǞ~[Yg[đ2s(:̊K/bR$Ҥ(hDO3)2 6`q 34o1WqQ ZZ&a&XVԕzN-hGޓ(9ֈkh4ʄPL@0ZF-HQ <0(ƈ-7TZ3Lm ZDB X 1i/y [0uh$W;aÞlu>⾉HRztV)niweA ch3sw;vq ꦞ=ՙNJQKhf\qcBжu'x675a&@ l!Ee 21Fm@|%N&qaT|gw,{=CmpW''h#amwe& #k `̹#o/}>'현1t.0OH鲓HuujT;"I/є7K7Cti%[@єl.qqf=A ޱ1'_im]2w$UWҺ౎tDPv ^|xX%57ԌAe+삮2d{ұ h "tncDrt6VՀ&kunVUK/n^"" &μ- Ͻ -kk'槑z-ÑydžgJڝv =!)#2W]O?ySMNZQ=I+}{oҫ7xQh#W+q>=?#>9=8J0CI%{ZF~_3윭'ogc_-w~)0z uRʡ"{嫓3k[فP+V b],sFHfșјh' k)av̱7hj8Sy `(ffN n̟hKLh&dBDcF5Ց۽M&סI""q$0%MzԔ𽵚Ex\VNH'/쑥dm@[Yц hjDjDH!nZ I|Xc|[]Hg ,fW^xfI%v.n7]$0re.dҌH̠?<;_O>\1󷅞@7OꦚOSD >{FjzLBOɷ?WFnL -hQWo+E K']Vh Z/^:?A&܊T[kNE; 1@*H>ۇk`{H\Zji?={|?K_ҿ׿_’u5evH|g2'yk(j#XkTK`OiJO.F2;Ֆd/g&钑RW{!ٌB'~^R`$%m*;F!InH'$7WkH^ꍛmØAT8s ӈ%FCIt%M&"OqvX݂ED5멍h)]g*(sPEP֊E)#:ED[5&%to:)5)h"PYERQl]!Ӟ ܲۇ/Kd"44~@j(XE_2Sً}y;x#~o{?WYxm[_\@}_7O~QטQ7[_S+86xE< IatW'& J$?vHA`.jܬ?lK+ܱoHA:D Y<MԶ&dW#xli$&i }RD4G {˲My4&IK pNFY0YedL)+I}*<,W;gp5JW3E@8 (c0Lm!㩛?bPaGJ*8dH]NDNWcKFfdJp >(u4㣏˗.ݸ~^M<88bFNԅ+nۿu_q.[\5aN}W-Rڿ$7GK׮}kOq'wr,kM\f"*@"KO.}](+fa@!!Y]j+ dT+] "L!~I` +aw$ ^R Zf^i8"V8elVr|K Ӆ37I"aIEF1DHPEj6@-@ 5f$B"h(e8&IIIh2Q@ ߃2lU R.nᅜ{"OR$IhLꖄ"w$C_ (0"MdG20ZDZb=@fD5$o-e'XTz* )&vN7K$@_}I@b82MOPhE>`""%twau.uwh}@ݳbQk_Л8G=G6́<!VիWz۷o$DP^r-Y J$`k6k1 ERab>}'w͢ tW^҅\{> b:|oݺuprܸySB0RU˹T\B iLhIV8<o MPdBJj~~+V " # aVK "CdY! tz{"L >HR\ BHIQ\A; jf~FXN*ˆA,[Y 5_3y!4iDIejZɯE,F nKUm ht@G : t$AOW+E<6;plXsG!`a*1TZ)sz˗5d#<^{^ATP%{h [a6cbZ(Pu֗I45MPwU-+NB+.[=W7n\G Ne6Ō Rܽ&F T,!""'Lx(.27MCfy*  1~ѥg}M7) 8nx~~YԀzR>W1 qdNggP,Վ?5?qCؤЎ?"Pb/qvz/~ {G02'q}|H{!C0Ԡ+B AP?/ "n#e,FQ._~oݸ~}W/ M2K {w/.JLC{g/_B"!j`VzQR2$=HkcnbA5MMoRtq!?ی_9פbWBJ%b:|T̼ 2k (j/^K.@aRdz ;iz|Iy: L9- G)oN뻏,=YG-䤌+(BGSG6 Aʟ&BP]\!) Gy"cdGQ 2}:"z)2,L;rpP, MD^dQ#(k'1Uv$hag"M;b HD@m,daJ9M `'R{*N Q2^k/X<@@dEp#G&iH?8\uNw {~بE;?n@|al IDAT@+M)_wq|R]My3ѥKBn>A,(N$E ]$;#QB`昘ONN?}mcͺH§~~~?ԧ(P Úa:eDUbZ!7o7_<,ld6FBx^}UQTLbViHtKGauV D|8f^EzL0tt+O<_Wo߾}ѺR ?vRs 80 i5 z_LE8ƔGVhep(KS!r2zu@ Ds<& =P ' kMpjHߝ]a̗˗att?Sn7YIN@4ն׎sπ!r#^x?\ĮSu7{~W~׮3߉@!Ha7 lKEDpJ 1W^}͛]'f dC*Y"캠n)KT] 1f @dnGaHj+*UHQHSk3t#@}|G~#q Gf#P/!b@YiNO@.2 K@H !O7n\oPߋ:V" a~;#ȭ[ ^Kx8y7oR{p.~WBF lTh1e&ǴzZ8)>Z8 ^: vm]mu*F ꚉ4-u}ׅ.X,+E$@b@?\7O6U$> 6l>jĕ|-0&R̓UDDd|~@&Rx)c@u@6׊6D{80Qpd#$T GԗU%.*2l`BI %ĒcȐ#CdF0$)1 J44uÞ0`5OK 3fDD&@w?*WBj* bũ\,Jav_CR7v2fΛJYGgL #'fDx05.)+#:DB X ϻkPX%Ƒ99n΢xSRG(>qԻ. z#rq)BU}?3DBB;(@!NWf\|`;AXʡ) @zS}klR!j~꺮һwn_##)@n1QaKʥ!kDhu0GDBw3կ|W_H F`)8G? eL'fB+W跾Z@pFb0Q} B@wz8cZk* 0V;̦M3XD]UJjAHGoK,(t+fQ#nzZ0Sқ6"')5KHv1Ey@fdŻbaA/ܯ: h=AFpU̪է"")i(v4Q%f?eǢ!.50  T0`Q֛l2)n6>Eg:DlWv3Zk%q]KS`X0!d՘c)QouM&ł9f, ȍP%IR~2%;s&협iY8@ E53͛rGE ,ha- s"Ѓ+vq0~GD V/?=ʕ6g` ".j= ٝ;y9maH(@&zp9zd&3DBojz9[׷8?Ș^S$%o'e|^xڭ[ի/\vrzַ[C_|.l +ʜ^va9m?aTS:է7.;t'q+;}Cgu*›W{&8yvt*q1Ԋ= W6"EDw< &*mZQ5&t]ulDuH"H&PF{Fā,8r IQo #?V B*cS2?VE5AL"`$,D]@8{YCls H. ifץc$yg0zu@xͰqN_/}o}[籷as$2 K0K)E$rb^Ԋ|֨:&퍤dY=g^}UL}Iptx;хމ K#0R8N)E.ܷNO|&Ǭ9s "4#쮬(D9s !.dv`A AṔ{)kN]~4kQ13[ٖDѨ`9$rsy"jqUenbvZL@$#H@C w8h3Ș/ڗ* (&N_zYO 1A$BJ%VTe' ((ђ*Y7rr>DLQ׃rD{ Kf'jI[d)D1  ~^8a<ޛt@@xzz{BG >OoNRﻔ0 ]߭HLdpm H .իW =qɐer\ldHf";S6ᇮ633,1j\+ꫯt鋈ަW)c3&LgE4M..=@rEa~Jo'>q#?M.C t|toXwW@QMaQ{XM9@y9(n2Wx%9_u@4/&  D7V m.43֠Z# YDr.d9Q^Vٕr=^!' `0)$$1sQ$0FBP(f%LQL4\DB@I@D"KGYr Pi"p6ha ,Xlf R.WSk"2$H= uùuHg"+1BW@;B6ˆȂ:Z j. 4x[da PQd"J_U*6hg#Xׁ[NDIG[$!&$r%;:XofI\˨uA-v0o5q;wnfNHj!D:;ήGgv8<<AO7wҗaA>Q2_-w *2 Zh0y!a$cpS$Fdw`)v&Zx\@XN>uGxk׮ʙ*q8aC1&a轮q}g$ ]0]n݈{xǯ?G#`*ޢG5 D6E M-| qhnsExS\w/6_ f-';ׁ]|/3r}3PoN*Q @M8QF&xqNΏՓL2HB.VtPRQqD P?-{J fK9q|F"2$I)p"YdJ%/E_-O;ǻqd],|w1^"'N#ۥ=e%.ڃk7Eѵ D> aHu*&"bB{G6hȜ 2,"hRSmVR,nM0C I Ce٠QCbJ"R,IBSDBO]@4٨o-]SSM7ȠQ!bLqFxAZop! )"Zz4s-$υZk mIppcSJD ( Ml۱Q՜ 1n_yeZ!R_(Qovo1w% dAq D Pn@"b&nI+ $ĵICNNnk0ȏ}Hi f" .T\=1 #ȁ{c"ǭ tW^_fn6#dG !ˎ:8$vv EE KcC#VZҷ&g%'Kyھt|f!ݰb믽͛ݲٞ|TKqA!v=q"SM]=(!D"{ê(>>YiJ`Ȕ\^ƻmX;Zˮ=,o)Id%Y-fp$ 1jAfWޭ'B1e5v%__0 >}Kvb9k=2?qL Ywm&t1kⴶ}פ6)%ͫCcǼ}@Jv=&@G9P;y7!Ð 'e|URp^5#'ǵInšh5KmV"V=s!KKX]n7(#c D͓v@ A$Ėwȉ G<'Ks£.UKz._q ՚ʘ)I+)aa! le;LO"DG!0<Sh3%`٬JSWw.)p,^(v~wKstf5A1;Onݺ}ٿ?o\Umϝd'-Ms& }鷽"~7A d)Ar._I\65PpXcoob 5/@/[_7i#k:fіpO+xޠ jAMŸ +`}*?TIjfK PY{䚌7N9rn&T|:dJ  ̚ ͐E``c5G,(tD,L#Yf}*RHy-Yמ]) &iRgtF@Ϭ~ ] EfP"lRb u_W _}ܹS523ÊLW4gu%ۜڋ PY~DqP6ߋ6h{ɂꚷ,Aj8¾ﻮn6"Aq!W5*=*p#0N&b(;C=~=mEdZY=CO>yx׿ݏ~?rs]N}ᅭ~V܌I%RLO}ϕ#Wl,leiإa-꒪7s̥ʞטXI A-Y 6\e8Y "x8ȾsNJJfDp(l2@1ajPˡ^]Zqh0qfj/Ol߯Bap2]>>}~M}߆tA7\yTEy]??' 5Og>;v׍txrH\>}ﻟa0(#("RN/9\uMPrnZXKESKeg1(#Ög@0faC~ (!8Z=l3"wOQBf^^yZX1<2M*ci<IiٜARi^TKUj Lڪj)'?/ BfrdH0Xp isue3P\-(5(4Gci]33B&4I΍baUC:,:d} tt^cǑSU`c>Z*,8:N4j| O[$S◦ZT\ D=뺘艩Ч&]U&0 "=]Nx~^hx)PP6˗.#۷S"܅`\;/JlW P (RME̺m4g͘YN}yks( IDAT hkUȓO=}7~IQ}28*+2ig'#43nyhkOEޚE\Ӛ96䧦`xs%nsnS~2ͪ8}[tAɟZ_*YR@~g>?q&-{"PpE?}Kv.6y/"xt@e _ vQzJrS z#H& in.5oBpMf֩4%M&=$`]nPiެ䥇 `1F) Zǜ+BPpkw@nbrjv'W(~gggFD6P1&9Yx9 ao,SaLJs`_t:6Ylw㫾Ty-ܶR19L1epKsUY 74ߑ.YO6h @KPqKޅ$SnQL 8q! (XtZT-n:4t`f3`}${CJSyy4 A0&3p &CfNV( ۼx( *e}98nxtKk-"]%n0bADRJ}+xDtnjQDA"xO_/uJcWlrUЁf Wǯ໮:6YBlk-e(n˫珖"dC*>{UmWf>Dd".% 4p8zWצ A"^ fDn*F0 265`"ij=6nγ|oG>_uiK_͖긥(U;)zy~dLD^6Weq&D]j(|(v7BJ!pYZ{caaQDS?vrM 4Q)VQf4H9TG2@}ߥXcBQ 2c@r5#"8jչR= ߼O 8I3ƹn!Ki]1iOiV?}ac fHU`b ]01fdF&$;<7?QZR1f:~bf{i c6ݓ g}l[m^KyDǟ09盥@FaI)?H!_~rrrSwM@eX $;ٔSܗUImeڿa+QjMi)suB-[w~j07hsJ4 iPg`(Ԑe}uSj3kcHcչemi8mMKnȯR~'((6bũvilG-lm1" l˺_jPWf0CG \0 x*?(1pÈ Vo|#}f`ĥQFUv0guoO {5Ǩ]VfI˟_Mw `WU% 9a}co{C:.Zx^fAV#js9!'L0 E)M[\1F cYvt"QI7Yȍ˚^u_+_?jpT8gXW̞zN\͉Z - 07Z xO&9f#6e*ҔxO 欀Z\ba$슍ʊRݰPҌ(%Դd͌1ԈFMU4͞&SPJchZm6y^gH{$c$d$iK,u!l6D ; }u(Nzpބ"[aA D1/M2 8jN%1̱c`G8ꪧ[jmb٧|' =ҾBR͸E*|/ڬ29'?t 2 O=/W_Y""⏽i5U t[B5l;X|rU_iҢ$v1],UR5-93CK˖pMm4[<*Q|TZܵ[-\@Qv_5 sQ $E|/Yr^~r/TsZ+/t8`Moxny^N޴F<3RXTFWqEHdÖ8C_'R'$A_V"%Y;8,e+z'N)V+15y]NS 6m@W՘v+Z*ĕⲪJ;7!t}L9iȒ6l6/FS]"#@GGG08>][}? 2WnBgtpF^ 1p!"Ǐ^ۍa AEz]?8c%&DB1 Kn}}N(@7.BM4MoỔS{veόOW?vޖ?IEBA[V_oެ;y|+2m8yoW"jG4 !Φ3D|%D*|Q,1amKC:"fyDAlLq#I(P=A]޾ݿnM3b%f]JD O{zʍ^,w NzK"?えzsi^.EDXF&l{GhPd9#:h}98ݘ۶O}<0+w0Ig }0L|vly\g079&-t,m^$umKozd)PwZ?LU;ov$\x7]zWT1 fk҅YRO O2"jZ`urT_YZakg*jL6nN@`wꤌ.Abif Rk`a\[sᥤ$u|~hzj[)%ɣ=/*P4u]WS|~]^YV'âv'^Sb"[j}W0rݻ{(; ) [e`'j 6/sdgzifbw10`ՅiͼU*KxhA4S WW^$ޞJȃ+i\ucL~˛7jTm){=u 84L-R#4ɤ-tXBԆY@jR3+8U՗j-RB7a]98nŅdZފ,+g#g4N|sJ 1td[ʒ<C$@$GDo`*Q7aq2'!(ny=*C\b\1̤J%;~ѹlܶPk_e5g) @z͜qsv^줶4nbKOvX 1ySŕs30shzaGm}:99#_"::>[5ˀ6!tĎbUcL ct2.E9oNT~IcѥAߡ48j[G=EA~o~->\tȼ7j ցF<~^'fe 'wv-5 Ps6:mPc PY~)eS\kFwYЄ`fzs<@5&.TD.5ggg"|RLq֋8mK gLX&VYڇ܎ηϢwj%N>gcy+{M_,/yb;LJ6dĩcᄿtZ 7u)X'A{}M ţn4LA/ԌsZQ}Y0)~zط%|')ˀ(i*rǝN #ji2Ud-3]G0B7%[H:s mOHiۥع_u-el —*O>U~_-"#!HXAf/W&՜dfݻNfCRkQD8;QDRJ&n܃K6v", L rfn롘.N2QtQf|}Z&5 Q>ZכV" 8Y^P'GaA}ǔf0'}f gmRNs fIn>`V#^yj\{uÃUQ-{?Ô6 ]vgnU @]l_~X~|=Yt*tw ge7l[ ~XK}vg-],BK{URhϦbڕAE_N/FK9?"Mt2IW/"m? `Z 0U%cEUmn6LD$ {mb}IP]ZY~gSjXpN.]:Huu?'G vxivnXlqu%D~v8 Re4E`]࿆Ҳj:dvߜeȗh;iv!ݮn2њH2/⤥NU92P]%+N:VF ,3a{q6&[8ǎ;a9˹"@${_tPVu@iz:"ړdL-ޠu kRaeml=}RC%$fJ &_+L,,YT3"u]J,Ia#u}_,]ccayY']\\lDqbɠNNNf }J"4E. or*\$k{<8pwYfg`e Y'''*MNOO2kZqE`f3˜OB]׳߁Wܰ{3faE{NYp]-qz=X.rLml)Bj_Ee(xojqanWgRp5|9ohԔqg嫥YRXh`Wb>w5ΖC q*9}WӼ8W]ۿW{ }lsM֪K&\8PB@x 1ed )eGQ(?~G[N?Y4KADDQ"[t)J[@;kUE?<88"91 IDATlqԓqQ)7KǧqSk(tN.ĬBE ɴM?J2j'͝QX]$آ$ d˗/m6[l=ExUHLT"LZax2"4֢HD躞9 5HCP'tJFs_篳M'M)l |J ޾t  :NWbK7\V 뾡7z}{^%lB`o|o~w]eQ?̧?\1?z}?R yh[e5_yDoկv{µ?O:&hިiS~Daa|,g2UrR~{Ы'{v*prϴy &' K~ǯcZA:̍+Pk-8WZaHrcq'%ֵ-[K~W;9GwH.{^M)gXf T1BiO)RFp8Y1 C'! #DZ)%90ȥ"8qz(_}:rK;8 @ ;/߁x{`c?ZF4yp G:t[x㭷SO [ח_,_xQ}[o=J^hkk;#^}?<=J D|*l4a$%2o`AKklPRW ! 3 H2ΈZ P05g~ QRZ@j^@m]*g)SjR/{dJ2HѸt6_ US^*_YBOTIH~)%aĖu@k$ 9+5/#!ZheFdEr!yJ|yw!6RJ%Z}j*6\P7*{RI% @*zZ.1F"\9"J{%6UlԖtCcr\ j (n IR&[z5է{R^/ut3AH9Z6ذ%:#Fڵk`ʔmo˗}N=W\^sC=|?&lI'vm_|a---'n֯_,|M' @yGkɦJ_:V??c39c?ӟW_.1%%\v{Qqt[;qvem YB^}>[Q5 uVm+Z+teME P' _6sdȉhib4i"H1ɴ/I$0IZB}JF2!|.uS~MvC=_pF7Đ1x*iـouQګWܛK/+h]vmnn_}oq#ۃy~ԓ_g]wۃsˈ'n|]729 'y׻e [.\ KDdH 0KRZNA,Ť'+DScc/?7U"P8a{XmMAB$R J= I ^Ih&lLKB xK qJj wY -.a*_AbʍJ|sX"Di_SB#M/5i6"Ѐ'=OhMJhkqgz0 m1P)+K#웾aŜ$"4f@sN103."]L.lDT0 Kv&3`ǶtGD9CFtnS}7lۺ0k ;!!MJIT uTX1e$y 1P""hE)e9? "]qHKM&c%WGR˃L] 4&E_\^mՎ?rϾnN=[z$RjSOz8;lﻧVւJey7h''w _'?ySSc3g6aM{IyC>#GntObNRIܲml'ZZYɹdrRVge?YƸ}xb  ͵!rDQޯW-!G@Pp!HJ%1(Rӌ ".$ @Ax)0z9IETV_xaÆoƐ>es$ eI&xEb,Ohv3UgJ0u;oSrOXb~K P KRV Бˡ)M~UN_k ܗ!LbN_R cL)M!Ĝ99*}ߏH8i=O+ Q.jtl!K {0󥓅,[`ɆFI}b'_!qΛu5SNJD&-8炇AXQ0)qȘwcT=y5cX.jl=8c" Oxwߦ)qvSYL({sYɱ vls\?EK!GyxEZЃ0Fm4z]wb˭6;^7Ӥ<6dfvy i7qvƟ2ddf~O?!wfxg\ƍ!XYiEclm&%AwfHc3Cz޼Or! 0vqq+)H)c$7zzI ;<9TXR" !A1'&V=:jYޙ;gCo~]β']p tU+ U2VTG iG B!1H+"&4cBD<A!GZkJh"MR,l!+V8wzcƌ PӶhl,w2鱊GDW9?=;~ܸe̾|ĭ[)9WdbּiUrt"&-*2}O0fSێMqd2>R}~3$~d0Lu 1QHƁl &ռzt 1}C@A:72d5xMY[9T"|vޫLI vUBew_\$7|QnY{G+{ɃV͙;7 pFmVBXfٳ>ԩ564g/]jں묻^{ c_=5Xq_6ZSXܧCa.$Ywoy~zA;ݫ?x@~GD' .\wzn+ >|}|9I[}fʕ[nMay-:d~Auow矽[wSOej;8.!D>]S8ϝ{Er{;ւ.g! s=y/!GqL!"ҜqX(I A|IRܛ#Cs>G,/kZcc#9c݅b@XA^|mFeҺR{rM"@RJ1<=PDy 4J*0J2.Tru9Ӷ].ُz|g'; o;i8%e-ٳcaFVJ[P̖C.߭*U!A@)AUD y Wd&P EFB)ٮuQ.2Jl(̯Df(`9 i""/vB6Hn:M"a$V#V0CZk ;`d96Į.묹iW쿙3J)! .0DD*#܍h/+8 kn-^{>`„ F 90 ?TKk[lh|}g]ɧ<ܳFjll5Ԕ"ҥK_E!J ݫɓ /X;bD=^r#4gTნ_\|#V/\KC n.b$w1ż瞝ܳ`ʶ^ⳃ`Տ>Rj%---=`ek֬}M{ 330RR_SDNT hcǎ-Yf݋em)l-v|]Qn׽y BHDc*@*1ykC$H& 1)08R1[docX8e W,Ӕ 3b>IN݆(Q5hΜvÄ ϟiN#cq.Xw< 2ha:y׍>^p 4 O:3Z纓1 pPV*0.D}cw`ߔd%dF9#dz_>d:(<6B]RINLƪ~Whh[ϵ0{ow;f؍veǜ;n}ם&syg/^3 {+3ӟ>}73yZ'${'Nxra~_&M`efѪ$f1a4m:C*nkea 8WSx5ZYQ5ֵZh'gySJAQ}/[Eǟ||_0cʕ 1"AEQbŗG|b]w9c "tͷw $(j]$3&(TYΟ婻QM`869.$yd{>?;v=Չ]rѻfsE b^{y;|aP xLLDVjM'ܞ=Sߝ[lIac6vmR3l's9]tys:uGHr1l1 'E\=a@ U;#C#@gWt*G,'~Oi t1dA!%.uj ږYbUA}ݯWCԤ=APGđb(u1 0Ԋ#Pl' <.@ BM<Ԑ:2gP֗nS5j=zjyz;'~|gа{Ћ/ټy8uΜ9^{:v#::3oΞz=C'm;W>ɃDK.97z믷m/8p9M6ddɒ/Ïiow}ϠAg}._2U)넒OJ t'||'VCI c%U &6 gqAny#L,yBjfn=yɥ3?)9c(Z7#B a "mh{ hB4T H8&A9+AuDi]aE;BUYqݦ}0jFj0W.Wz@_ IDATiZi"RD8iUdiRT4iAF(T wvD^BKX.撕JEJR}O`546\JJzիWJ( >cmmmUTvZjժZ <Rϝۿ_AuVZ  !j})#s"G동4hĥQH%ͱ9YpE܏ow)~%񶷵z_~O:y¦ꊫ|]r?1bS#z׍FX(#G0aSߛok[۰aӟΟ|cwgU*6-/]Ey~/|aFoZD+>أ]gŸzuGHu 6=0sce>,@)$nA,/א&=Uz~ہ5)'n-PnOr#\LGzMVQR>B1O02[$ah566#DZq"(⌇Z2@@#WZSVKiL #EӶs|xǝs< {}{@W_uŐ!C.ͽR ̿N0pi7dji&imNL02dz6=zLccҥKƘÿϧÆ}R1YkKk뒥K'N֚60(0gj"Ii2IݩZ%eOӺh϶-m]r0szIKVǞ{hq ?w򫶙4ٶ (w/om?xe˗}C pÑF+g3Ck}uoҥSۮz(<ܜ{֛;rem~}K0xb)Suy2d9@DzN SF#|`zT#K)7'utt 2tI9c~ZZHX&Oy/q'45N*T*AoyGf቉m~=wk&p^{ciwF.ٳׯ;O?%m,aʕbSӚ5k.[o_^~պxw;=dӉ杖5k8m:ܡCSj|gdzI*APHqMĺo;W'"3SciCDN̬%RϤMˏa L1xZڳP˻OK/2cEiW(T'䬦$"I*MI%ԈȅҘcLI:ނ Qf0.lyi`sss\rCſh?1"rC+2jm'A`v_|qŊoN9~uBສ R>tk(hA媑aΘv8LhmSKA!cF >8~02j ȥϴ? IzV}ۼب5A !)0(Bl]Ea^)o c>74TQ"Ϲ=O'6F0dMܑnT,,XF CdjDX2l׵H_D5r&K)Vy"bJ)9qRY{m?(B46657\xI$e@kbJ5 ]%D+V55RSFW+ءxΐI!T%?={u==(z{\x{XlL|ޅ'3GDfR^_UT*3x`Ͻynr{!cUxޙ{>IO?1GvGMaÆn_m=?Ν;g` h^~%7?x˖-I'<6ikk%ŘN jnG Cpd3CJp/ZRyF.̬D=fED"X@d'Z.Nqn#d!.Zw민vՊVvԞΘBF  ִJգCƙBgD@ i58'#2`R++FM9 klu͞N@ԔVгg &<={1b33:d!̜vVZ72xȐCV+Vׯ8s0Z&L$|Z:y=/z?s= *?($Hž!mbFP̎;>b@kbq}A6&x㭣vÐiJq'Y`pX}(83FDPZsƈs^*AAhfk4xGk 9R:+ɂfQ*h wd89|̝$?fnd/\n,g) 0 RhQ9DR2Wh2Q@֪h>dI<R0\cRy}FQ3΢Ry?zҥKZhQ};3W\ѣZ]ryUkJзO%M|ҥۯj "ZzU}O00њ@kbÚ)J Orױxl:q/yh'좿\zaGh nuz?o:븝]d1"8{Af L:[7^)nf۶iaF+sϾ2D<tz^țw}K/SQ]ya!Gmw |o=o޼};g쉒:GzWs,4&23+1AD#2f1ci0xv4XWW& ͕tT!ZhaV[juZOYgιχa"tI~`?ZNyyk_>aXQT^nk!Ф|bo'8H+EK8Li a D(dt&|dMÎ]wM-;n_lc?8hgO?cL.;z`'υԧoߟW=ēNvW.>}\s]t_xaG$9b%N.moo~GvtL;v5NE5ݓ?p%Y} 1R*5n4q^.ZP>Je"0@#=0b/ @/y;#c̰rh G}@ScR8LZ뎎jS?n\sdJOa<4G>Z`؜3s0ι0N|ϏpW]H: JPܛTS* 31Bk\MT Ҽ`A* $FQXByAM#r!8c0)#)r *N0)MjcԨQfbWK.qǝ0bqݔ{qGyđvjPN)s>X c=&CE t|B#&,υiYhT0AJ e+\IGG`.*ɛ( c\.wt[ym.g\I4'Vx7+.b,J@Vڬ 4:D RQ byb?&fHժAcQi RJI ׭ˮRIr. bIc لZ2kOc[`@1{ KU-sQ&& Tho}_n$QQĵyBa$!HRNfxM9zmjƆ]봳F5r(D2zQ6rorÏ";û.|ߟ:7U8;23)%SǦDw+ʥW5 1 9[񨣏3ӏǍ3g}ӍܬD+/\rvӷ/(0BTL5Z[n[o\DQx_x؍ǎkZ?|wG9Om2XwAk=fX@92N:w_~=pOz=:/k` R $Od sYOGo<C4t܆̯m8f@L]i"?˳I΋_&&jR-VjUo`O?S$@3QJjRUh("gZwutC1"viF2%0#e1iXnejE r KMdL%&-,rRJi{ƀbO[b!Ir=x b!WT<ϫvTFa8MH@$dar2Yn[ĐQZ8!r[ZM9% vI円(b3gwOVA YJ0(&"T5D y_"X!%}^~7b./c@+BdBD+17]vn)qk9crVHI(u{+ۈbhΙi01I9DΙҚ ߢo&W_d7_.vuaE ~SΞ>[lyA0QOԃz![mQ0H-k=ޜ eXP)u;J|ٕWO=ŋ_~ټ–\'dӉ?팆0]63fآe˖vM}(<‹;/?睽bŗλw>rɗX?^=Bi}8%6F&-C)( :ׅY"͹!w(CIA5 >l=lQtCӠH*Ty!C)I)ZBk UHD&""qdZI%|_HG݈9.~f);`_~Y3*zL[#uz1'4WSpa˔"94214 mRMDm \rˠY"KWF.xl^Y h K?`8aR03L#%"%k*XkP*c!="8"&t`mc9+-?"܈|$!D[UT`PM.c-Qu Mߦo Q^鿱r*گ $2&; "g߬, ]C%Y¡9cƦ'NZZ/[ԣO߾+W'urs/{Ni[o3~أz\ioN}G'n0dzD IDATVI)[[[osҖ_X>3>\.]}ߙVV$on}E7gf/O߲f~_k!^׿]z_>}Keѣ/?IS<7`Z/O8W^!m&M>Cwm={6t>3}v ?ӼD2ͮDd`HIg=VfqRBL0% }I3NZ#n`Z4Jܒs6xӏly2 ʍ %z>Q+V$DEGFl>q@٩ 024g$ uo& [D)ԽMhNM,ۼLuZ2k4Bzoֿf-6t?hmn!%!|b7~KFgK&2v=!cAgB+}㌅QHZah}ݰ]ѵZc"M8R > DΙ\J"7(Md"f&R(t:6Ӊ3KNd 0ժ VJTE trRɇg"s@DQ%U\H+yZ+0BlCM*0 e"0@Za`bE$Z QFQ{d(# +8&}MOgscd@Fŧ℉jo٤H?YycRU=̴ltϞnAڣٔ>sY3gL݆#GijժO>ۯ#3̟߿rVm*]f%7hL,X8%d.^Gs渙٠oٗ`9j ?|*,#(LWbB Bl1q%[f|aJgqt5rŜ}$o9絠F ͩ OMreCs!Ӗ@|~϶ qZgcX 7r r2}]qsCdHE7ϲeyI,wyg?IY7"@# RBp!Dx ՚!-S2 ^lc "g0Ȧ}ߌFEDNRV"3EB0D$(Yv1UVR{Z<72hsAO'(~:I_qb"]%>XP yzR׀TQS.* K%{͕eq$q"^Yud@M@'s5A,!!sz#[Y3 FI51cc:R{ r۲ź |,v6|sȶ.GR\$vk^Jľu*d5qw٦14*y1"{ FH[,&@ 1@Ddސ &aAm ̎9 PڕR1 1=# ! 1S B i83N9PT(SoQ ]̞ 1mmmV #&D(ޙSn7B-!$@U:"HPTDQ'X@TH/A@JH BHrCzi;={- z-lݝŷ&mv:/Df#L9Ι_gR>+AOfF#2锡[Ҳ&H&{,))# _D"h$"0/ r]EB VD !͵&+eJΤPPܙ@d̜`dWD"Zks-&`a⃼’Mڒ u]Hûy8 *aB-B%mRkNRq,8N&QZ/9xM5YĶJ@ի%RJϠWyf캎Bؖ=1O0u+<ooecykdpޜkKh/褀D8SʛAE W6hb{sp{=y9Kp ȮQ[P u  5$z6P3LoFR( Pucr-DqKTpɅ~cIPx@ɍ{%/Fɋj6֊DD5euH¤pHJ13''SJ 0D~!@$H;bg%= %$v yV{χQKD(V/YOֆ.dȈ("r2sEl[{#6{mNg2dp ˲Q5XҚN)Ruqp]7xGl;"u\ײ,qJs$ hLNe2sZĶM!i#u]SgsGo, Y;ẮRn<^aY2L$hE I$7?(f`kfq`Yi"Ibse6,fSo.67QFXM+ByBbni}АRW J;j !73XMKd!,2<22=3CwrRa@v2>\?N__a%vxh(2(z@ٯ_c:vw>a+Pᣛ趁Q)A+Qf+A7Y<z&*1{F[ ̖l|lS#{7Zk'3mK+EҾ(c_PfeQFeQKڣKڣFlfrKDl.Ίl)\'ߊz-ubۅREubot~оNt#Bʪ!۝99˷`s @Ӣ{-ķ ߤ+S\~*u0𕧫ZXFeQFm`%}GrmT:kvlEuƱ%RPRNVro UbWn8|a\v>tE9+ eKbYDf-MH>ϵ3I1[JJ+яHH8 bXQFe?뫮]Z2_"Z[ZBj_2 [SFeQFxdI<z u6Lu; `|)]HYh:!}%=HBb\bIKrHO` ffvL('kc=Qh(2Ж_eEDی[EOoomƹ-OgO@6_jNs$Δm)rdg gh!XI$i)(T; A>}hF}>pJhɲH;tMO⊣P#*ػQ; }?,2(n62;2:w*)몀ͽH?!QK4s?)&y Pdgу+ Lrz~- 7u!*uW !&R+so1 K|M,DUh]JXv5ɎkdWX5leXojYO3A7KZ Z'hQe`~,heU֪𕿕_eQVǍr5-z:~Za{&•tsxȟSsBn~֑z$6mzw&MRSS-hoo4K{sލcw-8/^Îz"ݎ,v-RÛ Pm0rsjnV 30PZz-Դe߽χsץ\MdƮQɖt,w"̭$'"HpY'=EWUjiLp,b0)¿RZK|5`{^|eQF!3ڶ \1d~l[,+oLj*s EDl쬀X!`XtɊ;::-ZXxA'}TO 6EIPoQ,X7gذa}}}}5ja֮65-jl °8`qpȑ 0LF9xPӲEF_]qAu+7BoV+;lDVp њ5Y(I] B#je;ډ$׊8p`͘ P3{NjEkgms).eR,Ί>LiHv,iYZ.WFeQg+*DlGVO^<# 6-vPOlÇ K,yibCܼn}='L\tI,ׯ_"hn^7n.}qZ s"x/nZפ(lhIEvi:k*yE߱9 ;&λk҄eVk7GĜ>vt7^/|ɪ]1l sfy HN&gEUO $E$*5 P P \OeQ="a~B/qÛq@ng$&Vс33k6~lKCY9s"=BIÏ>GȝF=χ|<СJ>5յ֙t&h3Ng\7GRb˗W 6!C[6onkkm&gX][?1"es εL)(d$XkڌfɃ9Ax . cDw6~YyF}5 ZZNSNR2R];cz+cL)gXk׮ؿVMLujƽ7{ՁFOשX?U!"uqt[,\ᒴ,ڶ$"bNw8m!px̛Y N1q:ֿp܁x~t ;dh|!pذNʫvC=`= 7)ELv{m!x86(PzW+֮j8KoEBcF_>=Æ1x-;Nl5{2( v>E:GĶ90}ʣ. hÛYYI O -{m%iJ4"6bd21WYןy9Du6wf/\_{{@yoDN8|Iv$Z544=htĝBPb26.Nv )lfP/a]폳6{(l GAbtk'>&<8u;!:pRTq;ޜq_d"ӚLmnoXyJR$<ީ:u5l;jAU+-;NJ[klXFUfDCe4kP$E{ DxUz[-“kp|i&V &@-mm4-C4]v)'#,j\ubʑ r۱!Xuֶ!5W`⨓9t8N_E9k7qiw>2XNjnJ[QFE`d,+#Dv9޷O]yæjnj ,OXz+YQ >̣GFFy1Y3fLgGpcÆ]{O{ra1RO?/sl~rҭK>]׌>}V ( }}.r\(`C{nMMe#Y55- 9j֖T:uq6<خJS˗/mʍCD~{NC͒d%Y{d<)2 @Bj69>9M99}'|D$ʅb#C$~<1h [PP :$g,j*=lx ;>#iODc®x)̇vx,/vgއ|v13y91a^PJ9sʕ+vi'SR|gYw~z!#?e 4kKHBJ&,Zi׳ՓR³e ȋ1IIK2{@T6Ȗ&{rʨ>:16佅ŕʶuJWY\퓒w>j bd-vױ]ʪHzcVu$u% u3JX^Dmߨ4^Zz79##$ 7?+Z`;ƕ ݭnfu%Vp>8m2+2[@g! ^O3 *5lB z;OUHKnx7oz6m8qI֭]vrذxEٴפky|R?> :l{9c`Hz5u-]Fl\m9Gn9d]H)Dr+Yk 8BH"?rA@b&_C-^h{-)w"¿խу|oS*#tZ gMZH OQ",f\2E= MT/Z=(7 瘳,5LY)Uز,ko]͞`Ձ?`R2ٲݧ`f|w>RAiM +m PCG e}|ةACUԊF+bX{`v)Xp]ۿ>I5-K6TU:yIS&4kfi9 ].A)2E:mn:qX.kbo|2Q{@u<)6׎/k.n<^Fe=`:G4o[ F{USS ۗ]Ȑ0ƛ|9O|bʩ8upA6m8q⤎f?`zsF4[l}4ya9?7J2~ל;ŸV1vUBD/qawv'p]OZㅠ/(+N @Mݖi~ֺjk3m])5:a'M ȆzRe+-q[v]N҂-ܴ"斶D4#ʖXME*#` G2H !3"!܌`mٶR|1 q#pD^jGVH0ZӈDa\Cë@@ːQܷ7nQFe|`"+׍9һ0ӰfmmU^ >R 7GemKH)+**(9a&m |rJ!N#GׯXb{sV]U.Y2c;~ȝo#++]Kx<0 ="e}/.R`8fQaJk# ]g HΗ x{}ƪƠJѷة=< YP#cǸS߻:G͛V6; AM\%2U#%bnHk"]VEҮrQafq*,"- ג"H1ln%v]Kn+[^o?@_usqj'8%J@d7 Opo3fnc{r2( X._Z>f|-+OW ُ+PxH0i3QΦJ=B\&챁hll<+gD c27TUW :|]htwm|+!C*X,~Itњ--֑~VI,0ޠ \}͐ˬoq[dw>8~zcL]HP[pܑ UtD3]Q#g ʩF*,G@jM*+AͤP4 vF㙌peUhn`"ёlkVDZG؃`'0 \.EL¡1j'&0zo\7M-xnz0H|y"BeQFc0Aq{#?f{ޭw`} @L׏{ꗲdž?A v0l=OBr~턒Ct)Z*[Rs-(wuy;‹WVv4z['/hIlg!$ "9 FnȔ#%f6FmL[$yӻrp}+ctD&?n&WʊX#:;nE4֖JUX]ˊE.TGmUFbHfYkX$JDcE=H+9ˈFW:lƥdG\+q?g˂581h6l‰ߐE{m&pSXߕ2Cs߽q!Lv1C5kL&*p9B*xA=ج@I\}xlBw*(xSC[Oօ#<|̬ ١֞._3yYɔ IA0,Kf ,f$Nnim#kzlQ{iN`SwH%8k_?&*w-TReRV8&a׉HDj][[8I3*fKB*; VT V4ݗ2(2+Р _!1H۷&b3)enj/% b{2^l$zhVϐ+#wR-jo'y̶g% [5Y jPyp>,BoBkU9gskbEϊu,0(nkpݪ7o]ԑ$xJ'D2ߔNvDHwtXG"RDVE$`#KPQFe`3!j$ȺYgTչ7׿erhlX iUk .Ԍ&Oor{CkAr[S-!A+͙;E /2nx_5[K/]7I.TI 6_ jqԚR` k3NPФ0: G6EkH֚vTWk*M-pVF:8լDN=4te<@hi!妢d2*# dZB(ӿ2( "0\ P,lȱ1۲® OR|UNLSW|<d> R6!#r*Ҹ´n(GK^E~kiH[ФK遉BkWH6L!F>SG&$RA3>@⤻c-!6=CvVE*tTT EVJOg4]G\e-ٶٶ #(+ZRhip"R$ i9罾2( 3i H^#;1O6fl֪gaU fb++F rif\]"Vy {v؆|wV񿂺6d]p1\!"0N+Y>Aie=/iA!mE0)-H6Y8 HwPu;@ Ö&WnH҂Ħ LZ*rnuEU m۲"ɴkͨLRD"1ND3&h'!,G+}-#2(  f͚sAe˓11'.߀=dRKt /\eh"A5$sض'7|$uyTvӦe7s\iaσC~e81%[|nb'+dm[J9Ћ2xG*uBs6BfswkBAɯs1aKZƽ} [?|elۃ z-mDӓ? fΫqN|28P%G'6|;g9'6 O$FPmMh1C}m'T6̛^1"*So?0^~Nu;7djKsqng?w:X+˺aWOqr7ϼw&ph{=[ϸ{~Po췸ՍTe|>pڈ&]L@L{[nݚgٴha͎8;&ȶ#uuF8y>RZeF'5-0tOӗL>ꝣ'GvW ɇƿѲ'Oo{|u/ѻKoS f-#Ǫj_8uuݡ5E^!ilW:"1xHe%V۲ţ]kd74kz/ͬzo]?ʃ'\|y?N3&#ekzJ6b6YhK~DY- _9V&P?S)g x'$Y J7o^Sz'ʭ WZJ# IDAT ^H"QI\5 !?8fM !eY !i"s[u] ׼>旱'q?v:x[N[;KzsT=r޲N:gg.{驥S/۶~3r݂/_5O9$%}_g>۟o9{g YoV?e -^8օ6&cwY#{lǭNK~r/ U{[7y\Felgpڈ LnU{󽣏7K)4Y qp{ A޽i뵒?'Jyk֝s]N5%xt)4#|(4߮Rg}gcX0k֬@$d&SbQ_:g|G___a%PF>oV/{3o~TKoOolJ&]~]๣๝7ky )Ň8=vYmO8w؁U7367+Mx^zy'q˞rjoeUoF^]RcO¼ߝ<./緯!ԧ2K= ?QԻ,%Io9y֥|0^N{cOb7*;\ǹw ?Zl8BeY`V@uҽ2 sBJcHu*!/*J+!D.*4Zf(47`Ib?ɉjm$ xѰ !~>?2"& @h&kB &C mr+AʭGZVDZ+/b7ƱFkw2t],DA ȸޚPkH)ffQJg_NwcSq1žǜ5ež^Jŏmiw N}/6y_7 vuƆ-;wy?)u+A!`f!HJ-Ki-~H4 p}ak@Bx"TkGcQUu R )*W,۲(1J)L㨌c: "TZs$QZ9#R:JgD II%aٶRZ)*!3J-J9nSyޱvYoQv )[3ߘ4ymaaG܉Iݫ#@^UDBQ^1Zq $3- ! PC&Qk$ )g@uVMs-9XR%l3@Zk)u۔cH Bx1 auXIHAJUJRF%MIr]O~$'VIw)9{oȖWfs??lKT:_oҴww=|€!ֽ:w]k'qÔ3Q;y=gNk:+.xOW};^}͹ }ԍn:N?ݳpث]zw%b>=̨|y/TjH/;fӇH,k'Leܱ_^GcW&WH4^T~c7skp=9f+?೿z%;ku꠹O]}?W/R ,I:9HJI2/; AeY`)2D"LiouJMJ)%H q\!H.?B@kY tf2)w334CJKP:N p*%6! y?Y/HfV֋7'E~k&JkaYol/iB?E喀"R+kR"nx4l۲-?,fB%%NM,8䆕QF+eF:!b.DWRsmٖm[ުd8_n$Jd5# GVL&bRHghۑhu]JyL~dsURʳ[qz#k h?x69{^Q!F[̲YYRj|R!Y֟ɋ+r&o}}N@s'~}g^p6sv'|P?昫]tR >fN>}_glcw?5G~voן{~Ë>b+ jZsi+`'7޺>9yˬw/Ë{@vkT;Ѧ?<$nϜvӎ2,ʮ FJ)hg#8q]ZH!%2e !,)-۶Ako/ZZ.F33|G9^+/{#輵=>3>Z(λs];jz=$4b=/?Zk1 BFR)y@a|yXRtZkm;q;KP@zC! v]Dz\oZҚ@2B yj""UD$ fYQ㺮\Rh$e4y ]SSjme~;>Dv79;Q:y͛b<Qٯޟ^)a` !ύrY %gV6hfcEY3#ӞLJf)eYieI!oi ex vMT}i={1sZ+H@iZ)Z !$eY^ild2au!ir;G2ڣk ĸ.6ĉHJQQQ!47JSqZ{'`fq8+ZXjWn_@Ҙ`8K?4𾹋/^kq;˕XEeUExUUee Hotާ Du&dsE|wˡډGӿj]'7?Oޫȅsߞrk='?ru4@4{Owy'k{ꀮ<t?jw{w?qjw=lxϕk|Q/ VZyYʬ:V0s-m۲Z;C)K>#&d%RZ/ :,m_ հg l4潵%b?T`w6AfBĢQOq[ .G3OB^$sL)Ews!|w Y˲g_@17L7dfM:fuNDFd9Y`ȍ<Ź06yu!flIYْR Z+ AmgT>w(>VoghfSQ2VZd|G :h=K?M.D4}!J#zY <'tFk̏g NΟ?Š *8_u1^+c?;~tgyĤ!:討E :#'k<5@e]crϯ#jfxOE'V8s^?ͅ#޸'t}[9O0r˖vE*<{u&=g=̫mYL9/)BV"BڶhJ)^^JA$;2L8 rXiyF#A Ce'̲CT) e"ED-]u]׌ r]7LM@JM6zt27p/]tn ޣI֋V _!b=fDP7^Ҳ-DVu]q)#:_7Ff˒fuk<5xEA5Z)qZqw4/O+jTu۲|B n4@Z.;6;tva5ABؖ1d-0V)kDX33n(XMkp:),+I,ٖ@,a/mvK P^]wxի?O䨌;iF,K$}׽ўJ,+wg'|ɬ[Rџ{?߸m>[s͸?v;p>;OQ-f2zG/庋0o?Ts/ˑ ~x_̥[h,{7ZyǏjϳ/>843+"Hee'AU{L\ۖE(ڶm##mYCUe GjEL{!X床VJ#R+&tʶHgBIRHr]OdfP&\WJaBxnf=7}yE9{f̈́@UdSPdѧFTQ=E( EQ\**(* "{Bٔ5$03v9?Ωw$|&;ESP^t~;QF'J05;Dy}Z{ĸ,xG i=z@N51,l;C~g~~?O~ lNoϻ>hϙ !'qc|E+OshF/w\y+25O{:sQ?\T$tAT®蜏!$T. !uQȑ0Cy 5)T0K5J%[Jh`Rm3 sb@梎,!j5 H9rK`H2C "Z,>(1"bD$JAc0) pTgY(=b* v2yc/|j8ᯟx1l;EŴm^=bixhA'ͧl^r4cc8GHpO偏Nۼ_^3|mvBcx;ez pǃC|[ӄc~vx߷~p$d7=E9xrG}u7{ޱM#}zV?瀂Λ?sFsMEr۷~gFV}mv} Ǩ.f&"" !!03e!Ft{OZߴ$\ӈ̳5Iй&-bk⼿OD j h .kq&:uc",1 ULW(kbl[A1n?^9w}Y9?ilsƽ#IcLMthXS@C 5>?Cǭ@-͜9s7={o>sLuϟ?[nG<9b̫zR<ﰏuO>~2>S߾ǻ艿-TU}if_:7&K:pv!`CĜA@"pH e-۩*#Y9[sL M2"u@lX$k] k=;_Ư$FkGξ EDŽAA b4GVS(uGKٻ; OCPO#Ɇ*Lc#a"N"!_LXHK)p9v6Q:e23 !Yy3r~>}zn-E*˵O~afV7@Hye 2uQ_׮1Dɺ!9BD gq="pdDMw"sRT\CIPr.(|#WU*8Ȣ,Xҙ3v]:$IpmM*3`pEU+poNQʦoXu26yXW0}w}]ve׷&lfn^{}ѽčg8Ny&|o}~7 #|Y޲s=/-;^ٿ<9a>Z0td H&7L>zCDؔ o NL$,1yekpd]Ô1!*A 16Dqa`y4b]$'|uL(/M+䪪4nSh=[sC;SGlO1pժ >t /{1a?'뫢3zu::%=˥K3M:< 9;Dԁ 4,hb-ވePA IDAT|eKM\%#sdp@HYF!o&ԯ$FmE nwa_"\+A$'iƍu'AE47HKf4~ZyH$kI,8"hn}'L0\'Xiqo<.ER;!LfZ;@25ɍeY@UUBe\#+oVF(>t9"M?͋nbgKFtI1etZؾ( 5-n,dҵmlte-jrguʵpl6/~ hо{緿/^zouS_{n Xd៿Y{͛^ν@w7V-qtch+Z&$k MY)莝n1+ h [ɋz=;T0SUY CD `1,1"8B Ҙ H mJ!f nƪ. Mnrtul(VMyuǜ3Ҝ,E0_;ԓL6]&;C"mo%?iIR1@6,b2.&eYVU "j:: ,ESEԩ.h8H]Sc`l Εewu I !RQ6}EPAK#3!z#@=$=XBVL6S3O|Y%+ 'O""g?r-wm~rʂ ~߼]" '?֣~({'['oɔn>?ZOwywo:+UF{#\ԫFrvDlGaA"Pā  n4YL=Pc1.k SeN6]N]!w )e{~,|}\;yᴮ{OPha߬rəO @O_6[' EH@uVDMC!3&RIR@JJžs.@HѲ9rd<* 5<,-Xt;1#!NѲT{"rJ*@tH5v%nznũNam"@P϶+sAI5㹰{cD"3Dh?VƸmojӭ\[n8 @ľ\DӔ #+TZCr3;DZE)#qZQD7ͧOf,ސ,B4;Gk><#,PKkfg64%Z KlÎr12yA)R1r(uU`b{${8!PR=̕Hi "!jyHhZ5}i"|gkT;H(PBl$%0&e\$Ic*TjHOj%ʖ2!B(|ū1H}QW(GvejRQUrn## ys٣.j]@.=cH,N;_%3딌rرN|U,bPPW|&V⩳v .QD70  3ى}EzYO;3dwކCǓ|'u_t 7\6xo8eGnv(=YiTOkn^p(舔RdQ"T':Z I"]A@#`HX bLYJaΦl͓Ss9oPj`oZ P țG-Y&:@P.OZ9Uy\DD-^x{mS S!{--*(9"!8J343wxFf^WYuFEH O\p˸Qln 1 ='MIzEQ> A hpZ]W$,dI)Bhjyi`ȴ&G^X )1'P~xR5X\+w^#CdybI#RUZ"dXWTU%7 1e\K (tCʌ]C tro^;Lc뼏}xkt %Z(KRUU3?U"T !ȹ(4Foahsv'HD!X*ӵ!u0lYԒ PKDb)n7Q2X]LŦ{TU=H,(Hg8Y%"0W3K<tSy7-ڮS2Y|>o5߿~6Iywul٤3w4O T\'MmIdaC !iA!DT<>f3M}e@XZuN dƤ,ߌ(s :DV1ޏ Ѿv:ǜg›9hW-SDK9"2ӓ)F6Hڰn43K<YttxbwSd|\ƥSDDS$ sLenF,j'?j~u’rE""ddӒcgrrRZy: UC)q`59'm-SnɜVruj3#Se2%-d-S244d Vv?.'YHx_ Ȳno@Vn3`}iӦ.0<Gt~?Y+c^jTlߖm@!a"pdQ2Bb9RWA<2k6W !FfAΡjrꅇ Z-XS+H i[n7oގ;tA0cƌ={;"m~sO=4eORi{勏v,Fǟ5=~ŗ>Od*#ƩaW 1?UO5iҤED"kx\ƍէ>Y?(j0KK 'N9 "= jT,C=|~ِ 0 0L~q`d^5>TQ09%mۉfÐ9!f#_}:j1GY%(V_ K lS(C T{32,2sTrԫnG@$B"ͬ~RSQ/<^zj(#ӥji¬I\vv1!7-e5)bZeVU|"RS8DPPQ7Z9/_5|@(NURZ#Dy(yHTnSZ2Gɝ>.=)mGYqނ˕ "/I1v%ED@֗rQD4I*ho(i!,c Y60"N[ !Jb3BD[famTgH^Pk6:,3'5թQ#Lj͚ y9D p}:ƑV9#4&4Îl 5sIȯ$72 @l3iȚdKW?jY*L;r~5-6z/K^{WgL/Z b_KѼC37vtѺ7j1P;:ٵѪ0[<5ѽ?jޢ9UŲe\*(tn̍IUUG.|`48cyEIWT^71%'4JlQk>C"tC!R#Fa96]f]|}, cjb@7Wl4+}T% F/FcIRN /2g FmB ryJusO56}/Q[keI ڥ ;Wώ(IHC!Ng,a,6<8O踊>k/': syxb O>G9O q'wϿƫtS>uW|u2JlG"e{?58/| ('t@WV1n:ef<9Db*MZn(pEk'Q{,4 ЖQK$ ibƏĸ,,D ̚5~OYf& J-go~z.@=Jϗz4-l2 VK4툾CDHΩ}PeQ:I1KZ^si.[`K>K V8I6Pk$ԊIqu0qx u8l҆ĺ 5h4HK|pbAzK1-Zj"Kȿݘ4V=2Z6,CEyo3s~۽ۿK7?$ޤ~3/}xvzE Kw-flo:~ W2})Pe_Nl]D4EJmͤb~+vsFϏ9u+FEVt=z](*WfM[sCZY{Ιvѧ<>~ gaS{wǗ>}9:MNk5_}it>{?_|{t~ OjoDsJ53p Ujta'{7pʜ-Sw/<:\^Z[}*Ŋdؘ3se6=wN7F5{uu;/ Mcu?9\UUjcUU)Nzmکw9N4j2c}!F%Cő6jG, YƜHrTY.遑`ƻ"0sF<\Wfmg_^3gnt^F9Q-Y}bj`G㣝WXD)9kqqJ*PPNFN(հIAm p4OI,ɉcEMBj15UJh~egnq*0%Fn l4:ڎ*eOZhBHz~LYhOÊޭU_?f_~a#z~w̮ {s ‘iiCxiޏ^uS v!ƖQc5 4N@ 魫!@yj,윣 9B\D8G QC{ggN9` Y$e_]1Gg^TU„Qa1 P=*Ty|rSJt~s4Hn%2. 8&O<48&|kwTE@߮_/lʔ/\6vDNl IDATg?-go&  !j 47ĢvZʢ$B0&`~ى.-L 4QQΑ%gM :grFB~@ : |6׌U\];4@BVѽMךLCfm\Ab撐=|^:3RrKazA nM Yxg{-Zh~y}?.ZhѢߙNb-={Ƿefo1kz7cٳgrk;9;ɋ m o;GͺY8ē_rC|o~jxxxxxOo=L{Cfs=lo/wO,?yd}?=bd뱗hZ{("0" d"ڃ"ӧWk*R-D;s ""r Wtfn[D:w9H<=ΈV]@dv=<<\UmƊ& d *68k~3]Î>.cŋ[$MV/A<|e䛍Pzu2m%>HT˄ y[~sх^D̬*s y#G~j„ 1k?$> ѱ\d1M4(gTv  Ǩ!D}RDNcfh<(V%;"E1~טeH&#@e/ ָXC("qgyǮ٬cNK{QXMj?6p];a$fG峟X;?דv/|kuUM#?W~dh?qj5ê:!FMD@Ds CU Hd&*Uyb0(jNc*f}@$pUlWO9_8BU(ʂ#! Ps9jd۩.v]nF׊ſ@:^Ye4ne$@.ӌ5VI5Nƨ4i+]뮹zO,\f RԩS>sFe \_w{ЮHL36bIY0yԑF!GHSԕY|AZ[0EiC3K$dj+-=X;r\˴f)vC1̤8P?? AQts/96᷈@7NiѤ> Oۦ?X486u}1i@I{_n|GeMF*=]П{g_?pҧ޼q|.9|xW:u'k}aG~u|oķ}]Wnq;n2Iǁ'm~cլ xwWWe%/vL/w>w)~>HaaPQB[ 茪K "̕0THD$ޤb"$*w^@n hTGfiȥ(F{""dԸ0r!r*hjD]euG䅸A smt㿱=˺hg\W9C#`φzaكNncGQF]m&l,K/4_Kho٩ǥ vZr={7T$U2W)fĬy_X#Ւ6=9`R}3"03pBB"g5T1aɚYz^%@ٍ1he0N6 `H_kΣ-d$R8-+{ Mo׊)]ɻ򕤻5Ҳc{Rr{^es/+zMwlqG 6Qk>Bj ZpS8d#ww]N냗/x<5>mC?9v0x<ϭj(PU{ xJWQ*ETUyRF DLz-"[nWm!GUUiĵ p"l^5hWS"-.v9BQ`;rc@ȱV֌nbSu"fMƁ6)r3v<Prܷp sL|Iò %ʲ|m$!Bn_fԓt7<`IdaBH Jn^'DX #¢(Bw3$Ua 49h{M: $GGDAм->yC6ѭV@i  $/:ڳEƪՠ.!vں$l25E%)w5Aes(l޵%GK0u lZ-'wG+Qjֿ?&x/;|pYr =gf\"Z̑CJ8ʲ/* L/Da&s!AꑙcrCUHh> DTGyrNXuTNcl{_r:4QQxj Gv|Q_3( hCd E"%29DWc]$;uZs@f 8rH vo㴤Ւqe:WAÝ&4"Ö2k"¶EGE6Ņ68Hp CUbNdf"ee@X 0/ &/t8?[ְ ՒS\e=  k :Dy5 "j&eu$E$f̑Vg"Dr֏|!;IV uzI^- 0 #f'd'd c1){TG_jNI\ fx%?x۪x/ Y&?_UKob)27n5uڎGO=}ʴAen[OMCE7y[_'h=#7w}e3ڌSx4ǃt#|so슳}O^vDCSRn _(!'"1ܟ")2W'CdѲ;GNmEYBSZml*BYD6cft{_xT{S}Q؉@DS+Q_$eMāvM3/'7WD0Ivu-g#K~6&4t75H>ٵ52;h׸m$Rν4_+¨s^ Yd%’g *mh1@a972V!DpyRK]E5V.&7V kK\M&w>mPygz & wja"3K_]"Z0kw\bGEFBA֥,LOt~mټaMͯ:%3/u_?`i G[xsOyf\E_)W]6Z7 ~NƑ8'V=[_{/T79 hƜ6Lm^xosQ݋9)|}+yr"Rրm%F]7yAk^TUbPr\\L>Z(z539FrH 38%S(&LXg}}})nċHpUUΐ!KIS!MD,90tME! c=F gpi2˒L.%~v:c=VJ)ƽh|*ЊjRq}e__YhợdW9DOD FNj$HeD"$wG {+ lh(ǑS5ϋ":G# IuTmRHJ*8%rccDf晗 0rb15nI ψ^Lʭ=E?9.tڮm_.Ӧ|WyιcxN9o8^4^en;|\~.||wn/+Nw]t%~}'ޅPe^zVL,z9o9_ ff 18զjc5| +9O5BP.Pι,/D8){|^D5Q洊!*7jji}D,˒q:ǽY0j}W,S4\_p[K"0Zo 6MzmGk^:._P6DgH#=j4h\hD${hdi82Gf 软*+nF FF5H4Q1 p:KYX.eZ,j[I8ɡAGhZ;\9&/vBHs8ڂ+y 2p6*t3FĐ1LlTge% ;  g i)\DǔL&" [?'Z$~+WwP- >:m~Yxθf+xsAwKRpǃC|[Ӥ.^oIkc?l5h%KuJLB "ʢU# Ԛő ""Db‚B/B$EQT((jra\UBQ'kҔ(isH;clk#;G*dlP |l4  Qi췮nZnܺղF)k6tm;+r6yww8nN?8X$t|>R5?1yg"#ɦeU/9aGx(yĸԿ:!&"5[Q@MNdfBŹ.Xm ](1i؈z= 3%%9jr@-)<v<rDHcãs)Ԋ/(#˚RƐcjДI OjũY AHE-CtnD "|*JnRFO(;HynsYDc5X$F-Q]F iyuD`xxxꤪXS!b냍KOyᇑ%2@ݶbRz{*JݝZV Є S]VwHUU<#"ͷbtDλY30KklERmU9޾, "$VDDe4hU領gG^k, @l۝c!rɒX5CVfGRzN-q3`#͈x8-,.k_ ,:zM%јmTZ_sl)z1[3EtD ,bQ"t.nI Pcr*/zz4>"b̡Qn""%G$FSickP*"4͔J?}i(Di9aps#ue&Za++z۰h4f0*"C$b~h*  Z /ؚ`E9 WZ;4:uL+yO BHEQ` C@K hȑQDPRUmd"s3![#$A)rxxX:4ݴғ` UB(B NbO[p=q IDAT0jgE4qXUko-d&פ}a,[M,;Bt;ף;y_1}Ez,oQ7ʲeva?畚aFhR>Q:T<~:OjjE$2ERB +ˢi@tk}i5U/ Pw:m)*|#%X9 !i"E!$F R j"-;> H1`ι$gȎw Z@C5b:TNfm0VDbpLt<*9D^X3.zqga%%`#c Hs1_a!G"l!h%4UyOH"/sN(nnZZN1bP/oPŋ"244y##sJD檪Bjx4#C%łӜƯZӺ4IIeu&y!\edZCw.Aj$c 6`iKftt$rb_[(RQ߽Pr(v-- J>Q aG!GN(@L`\Y*j_E0w"2u;Bn[twU9Bp\rC|7yf5{SUvmuK}}}'Bmvi2fGN%Ad#)ǎ5ΥgS/ϔRFϮNu+ydgR$e=ȉ@tAn1 La!ш˰HeH9HDEQBPAI_$GEQˣ 'Mҫ—l M848$,s``;_x(fw"j72`1)mHeM%}Z!5X.?Wq|3DGMFn;yFmdjSϟNNw_$uR487BoSrVDfC@ۜr ˗@N]3͖ gRtqQ$Ɛ Նmab#UDu,5N&Q44JĢ(b#QsK)D4W1X'cdUՎ̄=i}9XiUUT} 2\ w1:%T!h@#\pui8n"O[:7SI9.^kX!Ar̞F#oYT_%6PTCzq_ZwVȶj %s.yG~'&c] MflS=Htט_HsyJO@D^И#4H&[JT_wfUu>yz`w M4CAQA*6D-%KT!  {㛈("={cy˽sgA4w}.zVӮZIVsThak$7ETpxݲ*7j(5&{cJ6 ;B@ι|ᢰ8L( ^ΩT*@KwIUYCSbBdb sskA!HpԈ(4Qv붋1!-YbX&?_q&Q2TE_R՜@ `[@NUֹ.$mTu-8T2Es`QYX\P6viW2F*2he6̀/2mYʊ}GI:3-#CKolM6 1v^K^Jg5Wm og\GSA íJF<7 g;!oF|$Bz-D$:ןiFqSaZsZη&R[0wT`'*9) bO%% VJ~ %aޑm%A˙5ysRg#X Ev[qq,Yt:xfu, Xv-Ժ-t@Dժ[͞wK_ҧ[UjʍI'm:VgD^yŭuMko@nwòw;Z+.lfDQ@%t-* #"%;J/jý~t:DD(YÉHrP(T]03-УT!)1J{! e_Y* kc*0Y!RpϤ.2iu)e3bX\rcs9K3 %7L-Dj.soƎK M̜ڑi =j|#m (ZTt0o5%fn vnWȮKy טbu 螚00~}il+E"۽$_R CsswmvTBVbIH-jlIeǘ9xZ}4eHTtL<ܦيNxe0HD'ΊR1kEWU؋tvaL!3X* (` k\h8I`33&YޣEh҃.N`UQ[ @;*ˊh$Y2~z~j,HY/^O=u2oFe A #"!`41$]<]GLp=q=* 8*Nzz 5hU L,9<9v50Tz%"\V#CT4jrrѐSNփjlW*1:i-AEh.G lL\7fylڸ6V Dfv:k 3m;Srf(Ł8sfA31skPT‘m=ʗPssVÊZijT OϏFR}Zg_O|qu׶mk; ;߈dsX>hw]fˍMqzI+AYk |+պ9pċiQUE.^h(@ StUcnA5|Ȋ#PX HJIE*x=ˏ/Me8œǙu[xW:Q)\/Uk_ո*2+0tnHKϢٵ>7[*vԶ4 4gGtK]pBq5ǧ[Wk.^_\xyk}ɯe"?W8U<K~UKu)O{9?WB`;_O^3????1o|[^ ;6oa/"=/~rS>;s]v>}Wsܪ;n>z٬Յ_~?f_mMxsNo>_+ҋ.Rrzq[EE@a4QD<0`e`l%-U BFMPT<+gl˭v۶ YmK5)h7!H6V7jLmf6]cq=̋ !4_c0S$U-^@(<gu2Wj{jm&W *W<S)fZ=u_g>h~ 5ns 1PDIjG}rncf)yӂ 6LEڶ%bWӪ[j͉\SS1W<=岷r(biV1#y!Xq#$?A _:أaxj́sJLݾ2cVxj픮;Ai >('3 9 huomSlUх+6D6Z|eX{<9l C2vኯ[/y p$kg{?quv?>\1=ݧs+>_'~ /~S#ֶ{v<75k}GS-mxs=|a)މ5{v0{Ɲy޻e=:q= ;{ em?oG}'kLObwGqkn^m}ǝs[>b( Cu1b)r9'b|\Y-@Q ŕ9l'yQ,-@h8r *afc$ Ṭvl/+iadj :܅6%P8Ո[\Xp I9ݪ8!R5jFaUMޓ_oXl_.mI6`Oۑ.kxʓ2j IDATCN#=S?>RrNxOuƿwߝswv}Oy³cO:ßz܎w}yki#.L[]Opu'{:sS˷+Oݰ~qdxc<1co {OxS=/?TocCv-8#N»q߷sPl4Yra"q )`ClBry"JCr46QDrBێQE9񔈀c`ж-,0jej6Kib^5 e{]bE*ڶUf4MF"ٜSj4m[) /,~] fc\M1}Cz:m!Z|Ve[&jn[ rީ.-aOht3yeRrUi1cJb\5̡9|{)IaO!PO 5$@j0a8Xy7Y9 k`f"g~ z7Q(u+_9N+W49jcfvcZA*Mڲ/* KUH)(_;DBE$XzBQODCNXcx " !бx  ^`% m,zw|yz7lGpxt=ةdOU~U:[O;휷g>Mî?{~_r)ٍ!W~O:cw|g;@s;-n?8{<\_9wNŶ#9{<斗|q̛z1￵\𴣎{~9g/^xvu;^1ܞiÆ?v@Nv"v{}灴w[; }5&#{>s6y˒#̉jj[\-4 Rrj~x1$({*;)KLfS6lciFMZChԼQ! (;hDbkH^U!gǵTb`BLƒRRD3PZDerU/Ke0wu6-e[?TŞe%߶r[D)4n%p,mo-sbKl*-JjSؑ)WlS*np}l:aBw3UTHA!ͽCqtC~&rVӥboBDPKGVQUܺ#Ly[܆$0 /kTBq Us+9a?8OjW95ZE wȓ㷝E| ǽ5a8?@zN~v[C/{ۧu)O_o8#psrUw'~MߎH?=}pyO7;Wm7hλ۵p]Wl,~~ok^=䔓t[^v_?G=᠍g?m#N#Nh{>< 'O?qÚrs 9*)PPقA,S֢.AeÊjD9GCݐKmc9r6הhDNߣm[qAU-ϋl:$y=!mۖCj4 Eۄ7I":hs"ġYMx|ꥉWt'AB'S70hpػ{'lX F14sϊKH̢.f֝ykxKlm~hݤ8u¦06Ȓ-||K7)ChfXip_f9PR7[&UH ✳BX˶%4Sxo*@DD`b)n.%Ynsfn[(YC`5Icm;&W(/y*1z5cwu'&;'H ( h+TjiZ,BDl>6 ɲp\7>;唻 ~]z/j'?~{nϐKu׮\]#>򻯻Q}AW,ey xGOyn3֯ ;?9?O?38=?z7con=ᕿv]9O5kÝ6lGpFdmjԎZa49_L!J́2YX/+0jGE=M*6Sj۔f5C1msJ69Sp'zB9}.`,;ZXԶ}WfФm=mU@UpsΉ5kN11V"*KOL-St۶"WM%M)DM).UPgY!8e?TAfLR39گ2薊%RfU!czEkr_y Sw7=o飳ݷm^Zچ>8p&E!0S3=EIgT&)A)9AkČgF4jQTtwrv œ{SNpXjMk9XxeUq|F([c-O&`J22/:Wg f)ߌ; 3z'fT_4ͳ_g>eo~r~>dË`c9v9k7߾.6izc̷~s<wgaٚK{Ϗa'\}Sx͑ x?Ͽ/[8|gz;cݍ;3Hw?ﲎNU'Ƌ{3N|v'~{BS=]?^{HхkG}{?|;w&8~{~z-?Ό84O{kIWߡY! ja0DAP)-j^ʥδjfuYR ㎄\&,˱4{Z`*N?t.ẏIap]6=/uֳ.?w^ν8Oc{??9kҷm>͗2wy9}qoz9yowܭ헞uݞ5q5^DB۶ $9Y>9m~[_ʷk뵿ܮ͏W]'?~9{wa _c~cO_u _ӿ\Sk7t.>`7usyDžo~ތy/>8wmgE.<橷˗;?;[A\!nv4J9e9vNkCkVEaqPp8jC *,h--H)Y E zĪH)d_+@g)EQiof"F njCJܗc3fh4j^ݪd^u7ftZ&[Vwٍo@1[(z'2T1t4Sf߸d>5T($97RcO||u:җ~_CO/> ?p#?/~^})hSe yyw:Swab?'C|mmizI2 Uv (VAm;90 y 4gys !{@) UH!2mRrJ ]@UM-KZyF!\] J]w4M9~dN`g4$ne9Ɛj-Qt ` $B6XnKXVU7?ߝh6("f2jRLaInN1 LrZhŎ1-ld!ΪV@ŕi[{{H#l5AFq:\U\,\2Αj2ge-=rqy߰9%w/t\km(fq+g'ػ{8sOz/y_]_M|~מ=[{?ya7M_ O[=y\ lx'[gzK wx'z!|[/\y! g?7o쓯x=zt'n'</m6ARj!ʥPAKNdU@\5/|DF[Ŗnjt!Dꙕ7W>16H)bB"dqfP e̵9e3ޙyC`!84g C@ R֚i@s-b`7{tPM+h+]9>r&/+* Jlb ōӻla:^SZZk-q8젱:>挟l\A¥_?%>UǑ8`;_x{-¸7=_9}~?|K>o?Iwy$>v~^qYϼm繋pE9&(Oc4#RJ>YrN1 T*ȳ;vLs+@Hr)g)r1Z1>̽9dcऔZC|"D4kCTZfw%M `!yZRG x̺LU7"fSb٧,;{Lo}:蠃se-謽Q-x5c]kx[O +᭩ǿȾ(m_8f"t"mwa20ԟjZA 1pV) pчe8rܑ''JȖ3$`ޜjyPT^muYǖ9VMD`t1SGປ!0 )l<9؂ o>Q9pM{qIO_'Xfn]n:Oo~S]MU,}zZs#skuq6YvSn nc#a=eg~=;ɻ'o7_pvf=vqF|S\|r8;2ɂwp/nTԅVO;7Yb;]֮y_}Gw-cЗ{u˛G=ܵ#i~^x93SS.1 Ք*Qsld1ƶM)'`>p.} )'@̼f~^T{B-zWU1دL,)L b"b W3iEIJg0M1’ {^$f!&Sь7w$Z6)h4*eJ XW*u'Q8Z-R,ޮ$.̡Zա;/>oMVq:$gKu!=``C[(?hhӲF]Ǚ4Pz3̽}k (7&M?XSZZDӟRNLMPX3ǎ})j[@X/mTRsR?{U"E󙹁/1 d#S]zM"QJ>ҵD`sc@ l{%O٧Ԧm=^?J-_TҮzt/K.f4D$Fcav]vYʪTI9s;078'zJ# 3BR<.$9yF677;+,eRʔáfi_h0!..OJO!꭪RFJxn̅nWvR)Y'lPr0v2zk ,Ӷ{;8dK wYF}Txֵk,..jgefF{!!fo= mU *E$wL IDAT+{q⮎êMw54amFfb-inBҳ?ɘoXh)m#P5&OOLZ˺qm>u)ccr\lkYzdo{/s j n=ڢmojT]v{A:z\Qb%$1FbΩjʂHT)ggVa011ª- YJ9 D*d fyAO?OEk!$.=k|>*5;2 Ę[D2P$ UY _y0?oP*D*>6 R._Vx31m+ vTU7vXh<Ѧ%V&cFzsߐ%5[֮V|?6)N@]V}kGBf'6[LZ 0-{4-i(uԎڜ3 2TxPޔ6xA#tLU(F1bX ̪BTM4NDْ(KHjl{VՔZSs1ݪHΪ^,GݫOD1f>1Fm;RUL< QsBZtE'.ys1QQ%FOhtbsv4CQ P/M-r(yػPղchGmQz3R抱(t0 3_qjc~҇;CIsoweA+=B+.Kq3k#Xj',u'Ֆ=Q^QL}4^ _EۍL(+ -fޙ `2AMb؍UWr[Bb?lF:;BSN4@ف: UbSQ%}J*Ҳ*G ܏d)dwNgBIle|^@@1*CD[EDA34K[YUYc"kbb6-ᜁ$#c4*!@aYW]A3hiQ`,!6%&FP hY!y45!bck{U,T`jQLG/uDeq8eҔzcbN)yJ^̲YX$kwm'`Fm[ɹ[O$1F&nSKnPo_JkĆ|Ș_ oԭl^y}&6?3v׮:R׈'~k%d'_`O+3<mjnj9*8We攒yԊ,į*3UIh>$,bVD~GB ͑ě).Zp-/fM$Ku N3cLa**)$gX(~-RUh۶!p4*b!9e*^URt-1#RJsss!G9CR@&nf8jlbmJn1#ƘSjGY lZ0&daXLkrC۹RGS"6Yf2@QLZ[|jGU̙uBp`Jt-%V#k|<0R37%h,JEcji Nm[2Uxrk'K>$'p@YbО5}_?}166%{1=р;v?$Kg55vF׏6ϿbdlofycQU@VOK|Rk=P*َ.1!aq5 1]$#T+7 &]lE/NܽxrV-0xZᷔFvV, 0Q4)gǖKgVW] Tq<6sʽiUVeb>6PeUsԦ^! y(94 Mpd:"bs`3 ]sɃf DԎFsss4F#M+6b!b5:[52ж Ek3T qn̒"KFގ#+KCPWcjSi8oSpǸ0S Z+Pc+'Uu !̟xln?$O3`6{uon9Wy8|^r6- Vc4-8/SHhl V7"SWKNW vX?q+f-f\znjC@*o+ڍ8-fT7꣔&!ȶ&J31%rC;esAHt#W[ݖD4YX;z>h*`+(G.\Br/ 6Y "ed*Lea|]/gq޳X#]bts/1I脨R^}i&EΙ&ڪ 1A)g@N v簬m5a\pKDD̔1\ b(Z1F܁Sעq`"&g(,KU&r#$U-frNhefÔiئ$9S۹e-d?KB?|bϜ &61.. OyLo5?3HUsNF U~ ˊev"=Qwztr!N͉y0LVeЇ:Ul{cy_cmK:Up̀ijQ.._D@Qn!x,^Io[5î)%9aԶgcHGU Kno68rʢ- fe"S::mМJ& Qٶ w\1xfaFa8[iSʹUY1w,Q3UbI9*YcYrJ`0X\\l1Daib3jG,o%De4 0Yj64MN0RF{ٚ# `h2ȱ LqXsͼ+$A.)R* V숂3 Sv=KK1Fsy(d5'1FnKD *ڦR-Kuo,m8݂'K[[$nAy=D}nh{ϮC}4 Pxw8f}_o\MRUr4ԘJNymYkM/l"p3ߟu%D0[dwK)—XrR_K`awV3g1n/ѤɆgDN}ӫ F3BC${:H}:ݧrk5t}-ʁs΢qm&'V%iLQէB ;XuU*[&}ɠ㱁euC =ܶ1\)䥭_VP&jԶi_(|& m(1* h|%FAӐyVݳךcc9Zq9UPu'{\s5/'Hott27*R-"0AAj٘Y}.õ6/y*qjl3lizS/*l6V+rFVKbLdqw3GZKEyqfdqvIh@6x(ۘ.&Щ$"W 0CjwUU]WZg-TmweA\WۼO$=\ղ;biG hvc}c!;.)FϽ,U\Ǜt]v=|"U 4`f! ]L[IG5-"єվH| U/Ⱦ4[#̎]# [#09ؼ3;jAnTkxë9̉XMIy<Ӛאiن䆿d7;yae'-)gGUfYX'gLA4)&$"f6Qtn:jnauիW# |߬" iل/k:jxtۖ{ZLw#*\Y.;ph[YFp(nҷl'b2QB 54egoyޱfIiA-s,aB !I娋潻ۤ7Dk~+#GA8^8Pni߷0M:|i\_4p4glo']wxѨs72MGs;4wEo] ]q; Pxj @gHE4M^d3M#8Id^R]Uf&v!uxXњOy)e=L `٪S5Ăz: Bi Ǩ^a&GL^wͰio/*qh#s7=LlLP2WUfnz3a "ʅU> wljYKܸ<1VsUcm(]:Eth"f&n*4ŤAyFP sB=rG&XʈV:0lmi q&&ricl?鉶!"e(ݱ5g3q4"ՌðQcY=;F5۹%ߥu݅$JPTwH^f\͢yUa>.`&9 ̲ȱXoGvf׭Ztemhu`f)"=UA uO)EMU:3Kps5ЯĬ޻M5aM*"vZ'S-"DTtT]mKh< .)sf{M0cj%I)`0dNƮIZbZߠyK)˙VJIw\7o}wwr6{/?Wxgm1Hpy^jM-w8hߴZU-L]#xL&3Ui=2/2OXTU՛n טhٔR8{ lf,Rhl!ШsEofe"\z_GfY]&onu< %hAahjƊ1qif!-nr^RL2#3=Iۋxw82(I] j?.n;)ы ?-%euG@t(oU!7iuu s*k0uڑX"|a58a7ۚxdnn7fC;MMMM`{z4@piNtdu{(CbV&:qW䬊R Q8$MR8AGO߹绿%mُ?<~OW75L(fb[,8`jf,",ͼ54ZkNHs0D~[fR:`׈ܧihĚp7)f#Ah~e(e(s0+WNEĚ@MfDT[{LEZ'uݭ \4G/ \ᵿQ!1C3/qCM.nk/xSoocy||Ǜ1>cN^ƿxӻɇg=_17ٿ*7b]_Db*-6- %!<Qȥ" ZUD,ۓ>ێD aGH&Zp @l6w51%$.w6w" œ@+ =$ŪbN=XQ IDATCcƵ <:μ)FkfdEHَvmr7a+"kQtKsk3{#g 8e QHk j@iݨ+6/vxV(|C4#WneA=JCDҚkdfE]9z|AnqO/څ;vş㍹fs9Sׇ([ǝ60Dw3UfϿVtoyALn Cdִ*Jv3rFyJH$ܵ$n/K𞎵l9?ח-#@0m-55m yhj((#6غV@`s5`U(tY<7Rƍn8/|1[g"y~?UVDZ˝?/y4_'=7~a^+_g}n}-<䍯y1"j̕ADR$W'VHX*~) &LӓNggWP 1Ww' EDX8R;gyoa2P $0wl:(ZDP wp<,R+0o **fTD:f3LL%*#5_'ɋ?_aY!׿UG~s9'"" r]%a#l/gTJ햊BKDn>S^ĶPUG ? @fl.U+1SZEJ:9~ؐV1I| h@>fbUp_XL5f͘ʝ>7HBLu܆b)8R#~%Mkmݳx^.;F&b(3 b=?ə)zqp?/ yA`1J[)vWp/^;fg&>^'ԇͷE*ZCK@_vr҇ZLb}U-Tk%ӪZ}t쌳16d7ÑEjg뼫iBLnS '0TA7D㹃6s2RC'vx QXQ$ؠޘJn;9eqWkBXYk$-(=փlw];?[~/<ǿq|ӏy9#?<{6%zǷ|'?^:c~%^~?_^왏{A~۟Vwݣ3 WsA08y캻Tؑ'P ࢹGեtif* P:ظ@3 "tdYr ԗbTkP73+1"*{[#aw5iXG>)t2l Y(E`FmEG =/ p܆w[Ƌ"vI=99†'ѽZklDVEcYUprr^,9igO;;{tdyw}{!._}nv 6{;$,q]UfnjC)1B)| 9{{tܳG쒆brS`-;52pN۸M ";G/z&  תDP0l",w{#yf"dt~PP1bSxF8^$u(_O|o-<Wܧ?/Ǿ[6։яy^Sg]kyW_WӇ d|<(W'}p,I˅<h1bNUj-e]5N6',nqZV0ncA;'VKmnah(R" 2dhpj`Yj>l+$R"r@8dWU#I2yR*ttȐV<˄R8)C CH֫%c'7fDTk*ԯ=*&UQFO$ZuaQ/;*X:,y(!yZ9ޗ/erOx6GZzZN& @y#+p擉XA,OCuoaW߯1C|yс7v^ep )?YYH<[ްi"vc;f,S9HEʹT*13K&u;nwDk iLͭ.bb{?o:SBtq  F]$mïE$Kd+f8^Kو쑧$xwyUv|T_^y6\3{۟8޷<]l//X("~+fS>  xg>䳿I:|1Boq-uP6r}#(l96'p%#NNNc0O$D\8IfXdPz"NBÏ 8fUCZVWLɴj2;0[9P'&ZY EZiK7Pn6iƒ\^R } <84qulNzszz:E`Ŵ ᐺ,P5{;Y07w ䷯]sNˮEiޣ4[BcN\Mk p}ME:|yd.+T}Df|Dk]]DfE:rqWEHt S6PzN"*V%ۻ3BJL׭'NTo(XTD%թV-B d&%CqG ,v*PÙ7*+x>ް8~<'W~C{ۛ?Z<wK~ի} ڷ:z%|_⛞q Cދ-fi)fJ#6uTE0ggFfS%PqLB,G։3b}`D0(fn#|'W_:ǭ{o;[ogZfϰAA_{>xݍn/7}FLI3Hfyd`J|&;8qc3l"T3yzwq<\9R~isӪ-<*41bV.ħ'0f/)Xi3 DL4Mc&[KH)r XGx3)ENOOHD{n~׻XvCM d'|<C?Ëǀn2)r8Y4{5%!1cV6~9]h+4 A1/HyZγp QF;`sá_W'8V˝+l,G'Z045+d5QûnNC)f+ 8FtȮe(!m7 _?`Fu \chE5, O.<&r(2x͜-AprŴ3ק냞 7`o~3_>ģ :az,#%?/_ /ݹ2%yk3sHֽSsڌ =W)79|U"Hqv3XK w-<ʝZib7]3i-;ܞswqx { elVdNH08?Ǭ"Z@=q QfԠ!n9<")D$ wfc}} AVySddC]-%3)22vMw[:u9|XêD0VlTFbS(isn/k/{o&k`෿E_O}e7]lhY6|O_]nwC7[^|ӟ`F9\8UCR~@NM* Kƞ ,4D N5 <:M4Nj֦Td 0x ^ÉW"Lj2ԩlJ\Tj2d>O7J 4Mm9 lj,ƖM;;NK* @#Y(_UeUzϘN05P؃c$˒}@@R˥!{;̌aj|] |gS (i4j`eK|wlm!.wWu/FxOaV).C9W|CWhu8)ϢC|^W[v>!@Gq>#b3x1so111̘yjqųU:t.XnTAJ$6\Z~L%f.tkcl}DL33s:(dl1 >M2߫8/rEP10fE]Q;짽]_z~__'?G]!n}|}s OW}_|?7#'ʓ?p2?[o|q{?/{+=*`Rw/ӖI 81G&O4N560ũ6r&zwT"2U%Cq!2W(Z)-%b7srw+%Hy64HR@HjԠ{ [&.-,Qc!04.PsAKȦܘZD iv%1ifX!B%5~unRf)kOqDp&y:&{玪c%5n;goG|{Sox'?o,Wط泞ć^[{ >{ƿx7prycg~Uoy?{}^M#1/|-}wz/l ""`,fD ۊ&x%pIn#srW7亪:e3{UU\koaMO4P5U#:ZqqۭJZWRɦfL՚=JDӓ"r2 LmlܩVsזp''''DGdfayO鹥R4 iш(VPu߈#͘ĵjn&"p(h"yh97;/Pۇ~>_o}ߋ>y/'?~U^y'~W/O5彟RMoz'|~>+ *oy3>߽^w>_C|K>?O>"0a9"2N`D4Bf2U53 dSS5Vj/:KH:+d=_VRADXذoD@0)d_bl Jw׼5O|sw~uw"NA /q'+-7N;=r<;v`|t:?/O|S>܎C5{fЁpcwJI3w59,P(Cᡰ½։ lΤj,Lch>y"02!m{FHH=Q:dLa5&e:Z33;h2ND.L'B0˵#xDDxVU}TC- L!Mr"0`NNIUE3~zl"Rd( ;ntM7ʽz$Wf?s%9o=~R(!0K? S"|zz: *D(c) PQa^hf,R'5U$Aun0@''EeaT0d<)euOOOk4DYrJXtDu)i 93"7/Cɸ S$4qF"=}[Xx8,Rj]flmvGu8hx}'u+/3i65ÊrVXNͮ=\B6;T߯[C#pWzf4z.Neo'e]Rq@L4 IDATi?AϰS}Ȣ&&eE dBj۬f]̱Q#$i?Ъ9Jbswn=y8z8\FRVg,6sw+k -1n!b"1m [JΞAD =;"\Jɽ*PAN&VB84nmȈז>Bйe`M+&ySq{u.`7YuH-GҪ,E D14¦5TCfu3^VR̼NuO0$@^hGo6H|MR LSޅ m8/:ȧ3J&RZf#1MSmgz)2eJ73R *ªns<39)- C999zn{O928xE&t7\oyާ,g'Am-]ghzscާt.[zE͞XeW,?_k@Ӻ 4mf;葮;[]wfVDD=vm P8"%#۬f|2hFUUa%F fތ`xgfuja39yXa>Z>`,_*:FT w4bYƽ[\MIT^uG. 3UHks 행΄ L eV2(QHdia0h|^A)Pwgb Jn҇.BP}KvRt!􊪍-1 wĶ~zCSPćv 7xİAa!PD d4ǝRxvZBR^!tl;+m V{bi?_d삿0 &7߅EĊ7Z>xϝ۰}#5e)!ǽ\v^r-֘ xw֘y;|ZsXM׋c\N غIq(3/"gS!IAJ3WV(S`Nf=0vwo`iJۗlG5o|ILﰌڐ$RhvǓ-ћ*S/=5R!F3]r&d[qj/poT*m5 6ь H3%CJLU$b!1< `(VqJ_I(sƣNnv+H:ŠT#"pNiT5msZ'UZ0whl6%%|sZmz 6#ZXm-9(tm6fvxn"e3 U--P/zdGw6cwUYx_=p⿻@d,1+´Ig4E~i||x-^.x`sX0aX:28Gv.lEo-Fng@;3^rO'.z݊-xr1( "XXZ3gj3-#IU)!UK)f3Zd{\Z,W- l29_%WBh@Z4σUvʋogXĢ<ݷ03c@9(wMǨc^fH Dh@”A}S &BR"*^FnL\֊LPi L!Z"3V#M]5#>EXM&zL;L3PjUPeDgҘ,#\A`R6 x#"u̍8 K)32LT JmR'M.XDFXY,RAFPa0;˰Vq, }f6vF8j8EFe" ")N(g:um"m9 ;=!"c%Pߚ@?Z43Qjd6#FFg@&?p;z;^xxd00;ҼIfO>BХs^`Ɂ!ZYMiJ/b8-HjM5'{ X'HE&wW#p/+M xݴdDLixr;!žb怰̒M"Kc%(ƍ/2bQf9FoR%1IAD˘\! EYwKݬkKw1Ǚy4e4M3?!?'a(V""cdJJ"A{X3ҍj*LQxrCCd*H2 )~jxc8FM7IUe3ޑz>=95iK) j>U3#4U+jAفuĊa(E4G4#g Z3$%ds@nvD]<|$,\#Cm1r ˶6przu+ QbJekIP;G+*5!O> $ fG8[|{n!sŋoCڻF]=wZ9T_]sɨ?:/<>`wJ +S a _Z3F9j[=H>GL37h hnPNfY)4%p/.{8)kTvn}Ӌbܺ9, }Q\g &xqF%V99=7PL 4b3sv1fӤjMZg"4ĥHQl6tZp,s2Z2ŞKqG Q"";h y$c>v@&,+H[VnmfgX`VL""gggj&헹j뎀 ]t_(H7 ,q;:9: 7ViއMd8Xn;nh/JGo4;^ ;ݲ7w;w>Wo~݄C?}8^ɡ5+[5@k\QCH-nfj*fCό41IHLK)p4@%W:UbE6a$Eq4k/' _;3w]&9#eJ;oFo.6toeYڻlJc~L3E\_Sbf(՞=[&l{&Qn˕&`B-Z.S8 j6~5,fp(T[b"o1l?mnz3N7a`I,:shHͬ CN6MSt4QY45"[uY̭f.)RATZ熥jDl !Aax8a N4P5Z# Zy mib117'2 W3jx89QmAapqǑ ]w`/vd ~\rL\Z-!TiuWe@8ȼ~Uj%Drr9#?Sa^KnbVN͞!(+0AX6=Lp-Ab{(U.fP̲ A{K\JQ {; rrD(ԪnPA惴˔MFa 1#PHh!ŽAk=9l@.6}",,lp9!="Gsk~ipG)Nnæc.XDazy\ܢ{!҂ &݇aub#ٔ"C$'"x fjP} ~vU%Es7viה9s)0 (2AYhyح#zj:z9e~|~0峣=#ٯV^;mTF[ xIB;$9`%Dϳ~̣ٱׄhJuBvfq]_HĹMS+GH{ATkrC?2 Ԓ E$1vaùzѹgo8Zˌh͘HLdt6SH,ݭ+nX:0';,X%QI^ $:Lo=۫)yw1J)f."S6H5LXbqiK'9p|)\1( OAk)SO:Ӆ IK[uzýiE2^Ty[W\LΓtKur:{(-MI}ċ"2Rs/XY ]LLޠ\p|.90Z}7p[#ExȟASR,sC 'jMer. B4JX0InΛ Detzz:SwhpŽ P6Z Wi᧒VFDZ'i -G)CO J#S1Q8Ox)kA)"Y) {HX#yP"R#r*UNxcfUQRUjEqįK%%>"3 #'H죮l3ӲGKX_ÇN[a5pʃ0c6pfvʚ4oߡ+R|qx4ʗ-ɟhiKz5_E-y;غ_t IDATZ׼WF4Esu2aNNO J4'ajZi`9\2N"#E$%r^{SOl.M ؚ"2(wlf"0m(CY xaC['):jI^'EsjM ̝T3x3ԄLkM2xތ7E[Fn0&T5oG#Y4}VRB^ΆVW˳@"slO/yxg\0^{zsœx,h5C-{oL2llc-F3mc[0Ti_LD$gwpD:|j14&nn,nn@"PF5ELrl6gװځؐwQG~tWX>&C9/p۫,WcvecA?R~10@jcg7Ueu|{'Ap,$y1GEypK? y,cjfژJ}6#ul>Mpīհ WY@j-+"bԻj@TVϊ䂭( }/2FĚxd9꺶2}/{ϑGM2fsb M޵D ?_,*E{3@(:Q%zRu-6섹g4{ h' M~|zzM5qYk! .7U57nJ*I%)FПwUE1hMDXv}~~R?FT.9uKwQ(&yz): ]Ea;}1ΐ@aMY\!)m0H6QfQͭ6̰ݸ6aw 5弫jURZ09iG=պ?:ٖ:$ ]znyuAh%D`3ЊofaW?0ȎJ-'"Ⱥ ҂+*:.3ƅѣP*q0#.u&H'RR9S 7dh|L\G6)%"Br9ư- 5.Q!ݎͥ"e5^q9Dy1Uqr՚Y vۮ|#m јf?Qf!Wm ~yE<. 8nf>v/#ſ_|0ڷ=݆Mc?^~ׇKT-_!6>wv⮿ٱW]?,rc7wAIa|p3,J@u38XfMTZqU%E^D*ŌUZ&7eH,1Mϱv6;#rc'?JJgeH;iP{@II"D=8J0uO }|RA+mxJFښh8|Nq/rCk5NXɸHT&cD 2Ы,po+=GD-H= Dĝ| hc*5z^kOs)RP{ʐxi#CUnjbwrߦy9]@֢3޿\o瓯>m|B'Ɉ(_P:D QR jktc72#_cTr7TwƋx!"q^y(Uo+9FQXfJmU vյbm),X,+D<5" 1[H/Z~7?^/<]t'_Θz Zk^#A?>&aU\ 9YFע#r pzcP2ӿѶ@i{J1hky[0-Vv e T8o[#ՑAD~cMt۵Q@<t+߹3b#궅#R%dqo3FZ*$74m9DOlxj|A@Dz?@sJf=ܙj^+C"8zɛ-kٴqiV$5x ch\awg.if q7V5[;n1͹<q?4҂$x5s!#XFr>N?n{a4U~,"㴃Di<,L{щQ0`n(T$/}yL'ߏ(B\_3W<6νz̓@hkeD{ LeŶI,O#"i1|gՐ2֦!AW<&A`iiڦQ؟ɣ~JZϗmi FiYFp7$RhE$k7[8"SDT3EGb!Z.[]A ZՁ$ ţg"a-lovcq/.{kWUi΄R༿H]KCt ֠L?L~,$HLFƴ (UP1#t* vpu#]ϖatܜan'kΥ U:g2 W\jJA1Fӣ6ARx޶{6,ػH+\r'2&1*ɓ(WCVfx֨ fhcwZfanG?p~=; _B LR+hZ3l(E8#pqT7&&SPp1婏L,WnQh4k3k; #a[DzonZJ+Ȅr[01!UfvC{~h˹}X:!" wD 4lϚh((/ ^d<ĢP}.>y0IBEcA{`zw <=OnOpwS FyldȖqja\Ce2#SX ?p/3N!7'PfGb5x,e&洈hʩlfϚB8B?"NT'h{jJffVPkRT"lĥ\_^\-0ge̚N >bm&ʧp|ؙ I6sj57Rk"Y=;dQH[jڕhCbn~J*7m8]*E2\5Y*G":lPZgp՞ XX$ Z54M!˅ֻ{h92.ђ pYEexI^?"7ߥTWʕWaN.hE~.~ě-vJoK=5\y_?k}y- 6.⸾ĥ;|di*HIVK$a%_^hgy-AВ1?@7 } 15X8U|(5e/J DZ/EW K+C&2kaE0ʋ06Ļ W()Ly:֛+gϱ DU M Wm‹2W}0Om=[df.3_+p)2[̖fȠc9"0WIOBK>ߑD"{ lSCqƽbzMK:?h[dj!qϊQ \KFpP3sv鉈0dRiԥ+jg}|x{fa)^N:` CqQjkE Uv3߿8zojcqc"[|fSUq]Zrz]ujai=;ҵrhG NUa4Ǜ޻譙qcʙm4u/ԹĤCݎ#0 #I9+ D(H۶k6t3&-qi,zb=|||ؗr*^|١=s_wЫ'ˋdYHwD&mDRkt_Þa}Loa܏2S SmlgpU"ihvK} BqF.L)Pk'@Y3$A/Ǔ®s9&x'n .&vmNPD:Q*c'C""-!w?̀fQ3{;^Iˮ6ʏ4 u>cH >άSk[(8x*_` M,} ."yHdR r~5-VrOyJ,_q+s&ޯe=prZxRy7lTan]:\1`1FH/*cʫNԓ~)P"B}aJk%f׽* oMq8כjMS[:Cǯ_l ُc[k>F.mťcocZRrys8EzAnMƿy邈X-tS?;yĄ/)>Ad?∇)=ɟէ'u~|b?[BTzфlHA5[ԸҤ5<= hnn4$EO2"PTP!GO%8Z&@4uqJRd)婨 T;y=T6,\k:WIiӦM+ n8e3*ibYP֍4d/hy)NLQ4̳'0xYsViGʞā|0w6T-|Jc.j"z7P4wKP'Y te! jƸәT(btDIoZ znf$2"A{яyd nvEIkkYcĕZ6cXVq"v!"2C@8c܍-j-iIays+;oN9@Au^%C9avo#9s/3Mu,^5x/aeS|˦/ݛyG=ףY IDATx~u7ѓ?'+zd]x/c+:ը)ReUe%&,Z\)΢^%X} 8"YTzQ4,pnۥ/MVmVmU~\ wT%pJ@%TW!ÆT7|>G\~<|.06 [>ʛ/)0U>s/S5`ޥұzD6XBD|KjCB3IuFva0xzC +Y:U G?n X0cNs&)^Zk~~fv =0aZk7Uskn¢6T,XY yu4ޏpssuP@@Fm6\s;0jM:ČO)>zy?Eąo_)Gp(|8,Bgύ%t[1AjtiqW*iqÓ^=K+SΞe[Tv|qA|gv5/fmz"ܧ/gYOzOk;)0`lhfUdʟwȪ,~@jGxc jM2X4QM{p*>>4כƒnƪM0e[Yj[\_Q4myaYaYT }z^AT'aVI0_Bۺ-dUDe=~*OM$$H,5oR%UNԨ$ZQ Ւzd/ET>ԳԁJ,sV[ T=Vܝ\t5OQ *{/7ӌW|1+v̭yjiOÕ#Y39; ҷ qPe:نa8dCD[k(6Zsl mhf$Mqmzx1Dܩ`eB,*WDF {kG-{ g]&)mz'MFׯ9iT+!3 "YLD~}|܎tU"U۪[b8n+̉H29/B+{nF>İADXLICgf<^*ؤW Iɸэ =J[0珏?]|6fe]|yO>l>1$'p&ׯ*l نvى 4Β{R\Έr &*aNpH ]4"mхi94|UhkŊ0"*yJxydBښLS@#&ǒ PH)7h!K9k0~9`nϩ&?'U^Jf2.'U 5?xJ@/hdzI7vdt1 gKlX^=oad1.:E֐ :aԑI7Ȍ9EH@u#mg׈Q:"j.4ªB]T\KhlJ@܈Te]W_Eեbn^ro ,1@U+/D#-ooLJg:w֎F1Ld.}?# 5o807;ʘ zvRV&i.gL3}'UECۍ`̀sFnM;h7Dp"U&tdC9+?G1&ÇExrAGJ}-W^S7_It^/-.vO"ĕY.> >'Sp/>ly)/.z w/(ս/+cšLAB뀘9FƾaL꼔U`1`VU|Qi}&kf^T4:nf8,;Ml*ۯdBP%,4RPpą y^g2>yK}'kG/<ꄇEo,Qn lO*i- +*ncɶ5#*N,C UϏpfJ!@IK0_@ LJQo,:# S&i~eώq W͍~d DT:&X;(S85J+QTshS73f<JlKU·;N"9#jIQE8:$c!_"3~G'+߭^ 6A_%BfìzG2$G0aZDsHo#qذzIu23;aL7C. k "YY_XU???)0Y?%rԃCmf*q3kz w3dehԯ_y)z߄c*?~Gp `46ʐJ+(me$#1" ,f{~>f.>Ae7=}|W(Ǝ 6 =ξDv=>U~2oW>qbVZ J  BdX:*-mbN+Tu/^A8[;"\ _ Q"]A{lf^{:]m׋U=7 k,5\j$_`j$(@\ "̃d#"h]07SqZ5"Tg.Q p.T#̄/qZ{2{=cM啸TvQKP, A;jby1? dۣ0:3@ N_EsYoʅcckLBZQ)Q\Vx 5dEo 1 l 'mY_\ӫwelxLr~-vh+ LE^<cf{?{#wk/[Xǵ܆T"mOreD> (MKSz@6'"!PBP[&B17J dRŚ3INF!*cSpJDΚ`z!T~y$[,œ?Jo Qv53sL%vrtQ>Qi"VD*#6R}PֈsŒn}1\Hh*yBY<ݝo5-~=Ub4qjnpzZ!`U`Sqs8nyAtNϮM[k,ClfR+C[AܸYAl*=~sѰf1z딷##+gc@\ *9e"󔎦Ŕj ͦl޻ Wh&s+] 0.T]8-{WwW\%Z{s]!?7.#+ L]>saZX$XҎbEVw$ RlK/i,D$XoBLg ē$HDG rq2FJjxٮfn 5n0!QpM$ q?!}zL-m6KqL~.Prq`1]'?Q9v-PLS\s W)G6/>sC6iA,!hN3X״\G#w1S,+"@%~!¾o:Q)ߋڗtDNKNt)D”T}ݨ[K>dJHzC#E[Gi6LPUh~[i+Q3))Qm6Ơagrv*""MYѣa#}YlZY"PсT 僫oJt0NeD}yޏq;=FN|#XĭsUw_Rٷ~TQ%k!czY20q|$I} \~$;֭Emtd?"/?xk;/A~o}IKp>3Njbr]dg"`+b Uf8eo"h1'%Rm:e`ѸeP3'HGdד,6/Wl+sl~ `Phe]ykpþX8%S+2ss'1fVn7~EusI@Pf-pj|ҶJ(Lh@7iWޤoSƨ}`ک ,\'O:Otw&ʙU:fk?X 3@{c2(;mTMu4ߣ&jPQNj7]੭tbk^*i%Pਘyk*Df95><ϓ~tQ!Tg6Dztk΅Y=% 084m5d1_ yqn3Jpv\ z;wU#$4T8ihP{eUFƸϓ@McF(wPLR>t#GΝY3w7A5 W  Ժǟ;a_}޿ط &IOú7`.e`&^OtZ?vj(_rhjE T i N}S~95y^n5HЫFb_捅'vڙE YT-Ȑr50}$r,.`@ULD O5o5 M- 3ĸ/wS*.2DTdZc__FqI+9d4, a("0zDkmI]Td[t=NVcOkkT '8ȞKبYi&ՖʑT z>jpUL_OΛ^;!~{2߿Jbb*=u $SnJQM!TuOhqߙqie9݈hgP3cJ[OQ~Ju@S Gns<d"Jq{eCR^yzCopk_KIfuOm)Qc= J-Uyk0lJY7HHir[sq ",ڄ` # 7m1{4k&y;jZ_.ߣmv.b^nÆ cwij-%w.=|I <[^3GE;(axAͨm#Je}#5ik&t//SQf}% ](-߿T2BV2©>@q轃sxq1[BVcbZMR7DDTYg;%9"M65'drwČM%>0N%Go}J/{]f}GhTȬ61x?c!"4\Bl1y4U}N*zg 6gk,>"q{C׺3oD"+a"9/H_$R|@QnMCOYPLqi\#">"kw;uO7CbKD+_ٟ7 !pc^ڋX7귿"h(?]"O6Î0ޚK+6IrM n~sG?U Q|lƛ6՚P:@bj2[٤K%Hg5'\2&8OE۲>q&]_%tb(eDj7ݴ|wȔh$2Hkncf"M1*ޔگ,kё@Ъ BL51O ˆr1l%SC܏`v1i[2 #1j14ijFJUKYNJ̤-s08zs;<[iTY&9<׍G0ڗh3#j'JeI- ki7m_ V1!M>QTwӄT]z6剭6ƫ~y^-^{l34$i63̏d`LRy.;6._s$NY%GO// zjq%ui,^q&hLtUy r7D6nYtDz9wʪ\ 8ڀphfm*yϒLxYfm:آ@0*D3wKSCd{!ecgqEYgK  (G=D/,D{gJg6WYc~h}4wcߨe歵aG6F=Fm KLq7{9KDjs$᳐FjC%˓",0S>"Ga")vEߣ5i UCJ k] "䮩8#cƜy/nQD4v~0\WYp/?R4|lm2!~ֳs9b7zG.'ΩxD-m,"SYWkS~H$SHPYjfU?uY@2.]MUIJ/N_^{5d=H(܀K7tw{j鵒$,} Y#'u:i9a)69WD~myW`x@ړ7/<:M]4-2z^/mJN_8>#krسJME٘i_DGSD1k"UR_7wH.wCj7clsoYT`\#`h6zL:R7 eGپWz ⁗BlCiSZ`K6_~yxj6M[m6s;acS1si%d[?~~J dsn0Cw4koԞDeE-}?ƪico/2=d5]u1>6ZAC׏?GwÏ״k][&%L+ͼ[-v6<(W]xoo eR/wQ3ٞY[A<WĬ:slzyi=ӏ  DlkRp/6,Uq)aOo}"~:tm|\Ց==ԗ={Z6!ڌ"AU6fث)+m_2X Bdz`a¼PDxԋT8^$7GDWUD*[ |FLa^%kH|$A7,÷tفy  ͲQDo)\Ѿ2VhVф |rM-X IDAT_T4ߦُGTXyL~>)dY&M,V ~%>iW8M[W\,_ko)ѫZ5ӗhr:7y{e'c"<^WYTH&/ Kg1۩a% sL.C#UqL*4CLz0嘔1Kz  KNԕ&\ftՠf$]HZ lg7a_!*Tl4SlQ^,k⪈J iKBpA1."_sƄ˳A3d#R0P)Xo-wo=~Eћ nc:!H-5A κpy84ZDXv29ϳKDq-Eh0882r܎q2`SEk:UKN%ZNA`d(M~l '^}}܂WFjsQ~>!E-50 q]* ޖJ\ew{mR2(D&6ú08f,WqXb?X1ƙ+\ugu/E H;21xoDǍ_ו;\DžpgNctW>*` AL!aRLޗ[([$!:&DNfc kF6c8 P{w1LUm~G* Yjk*i0R(R9Ǭ:±yx^`Mno| }x_8Į/mu /pr,Zq/}gtx#J!sjR]u^jI"s/w|"pWiRo˳bLӻx.zyk5i4FPœhb)24v ;@ k8K++2bue+ETTfiOD$ )*,@zU΂$Nuzz-&|Jb^~%J^mcN6Q=5*{Kџ꟥'5f;3,?Fj~+fjY#:;ț&C)QS)/R!X߈ǫlHHeHe8NUgBbg##lvW/Lgt9JwASqE*Q5xZ5YvI.ƚa5JZX: YI0')m | wF`@耈l~~F$M8" 3E5CaL*:Ƙũ."75p{4ý0*U y)F fx@ 2WV# j39E)P.0)!y~*42S>dٷqkUox^"E%S=Ө(Q4wUXj 8!8kDHcEx^煗$\m(sP+/|};~ylrǛ y0-7lzd Jm.%^'[k[=Z*&Gɜ4e~^\I>Tʋ#bT}}L}>6:.Psg=JTZed{*kG$ J;pFBZ@FV{Y~ 9T7vqp eHo!Fִjl!\]a ͐;;tG$5Dׂr<\2tC&x^GGbv&=**èTRYOտUzSa3S +v`N&\d u>Uj%[k,eEcQS%@uroD48b>f VDedD4ʎ+/k&rjo!0_e2aM8Fc47g$dh3J Q <#6UlcˑqѺ.84i= G d/9V-rLueQuAffYy^rBJܒB5@K}@@B0Qm$,!8u .kե&n8ܝCd)kSfaPR$""<=xLxÆdՆPmTTU" 3+JW2I`i9h`u1#i&:e]ӦM[k@|=],f) uq3オU@T$: Xk_pO8<}<* ҽ [R\/|t ^5xt{5Lz*o;eo\t?9/LCu'7?{@ϻmxATE[&fs q6~2;ŊvI.= ?=m,lS"[dk5ԅfYv&,"TPHJ }2- h\+u9ɢ0%M0qzahGU`Asժ@ABX1͙/_t̹erFE$B+r JrbS$K(0 >ypdi30+TD &θ2!_j7j|wy0O9"Yٙo`."Vv')ɟ8ϓi%_mnFSH׻L?HX T(v3O ۬\dCgEkԛ*l땧ɉ\?JhI/jȪM1M{oј ]nc4 K"(GXD#lHI %W@L*> _^{| W S6d7򠯌籵BXy<PtkQ-y88F h`}x.Q_;}|@0r'%dBBMh׿n}z5WאR~Ώ/'|{t5O8IJ*H"[D">DgֲP&bX٪և+-ܩʰ Ae1 &8\gfMT@hi˒E<Ͻ@@j^qJLz4UeVekA@&eb%,j%U@02u3]Za[[V!PՀ#\ Y_^ ,]@ME~ZT%k7)*p ư *'42m0;R42kf6 {t4Ah8 Dwo}ُ`q1~F5eiD'f $eLVɝ.p&.Y/R-ag=iwٙlhm6-x ~~r!x1/9~~z5f̸l yf 1 ̈́BwY*ƻG}-NWM7ʿO%RsH8 .S*gjV dc:0w&)'8|PzPMU|H撋U@btgQ;#iLl;viD?` 8H}6X3MLdQbu|}U!)"(UlkUqnQT*j?L@Ni{iJDmfL6>NU2.m)ͿF^GOҳQG/icSPǡk<6=\hR ]sb#s @ ~Q,&uG:uo˜6,}k`*7cxg1QQA)H ,V/Q ΄D#{t)L.,Bgf8F0#Z;C<i40~ DŧR,]5FjnyVU\* U!Qd녡n___RBeDi΅>S}}~qa"O]x;J8(AQTԪ"pXqFOS4:7 LJH:O(\Ju*mLJIySC,P[ߟ`޿OI <)ݒ*ے|wJ~fzBb)~2FN ĭJ?NGų˯-:حPmU%G`k-r¾q|| !?PxtoКiٿH5(Hc~=$j"@>]"o=T͉!M7ak0u 4Z$sQѩC!=f?m!M!VFŏ͏$1J;5kVA~pT^nFI-7ȅiŒzNFSS/E^ XM `EBQ#tD 5QgS~lL` $1MFRjvimJ:4vt'?vNl~|C*Bg77bn?zMEn"y*wW 2ȗ4q r1ģAjb2\òhDTY(Jutk5qԳ@Ū%篿>?v!|~}*Tig1@TiCUl]V­jQ7fj_o8ztGn$qE%0]flOwUZn3U?G?Nb#)o8i; 4@ΛTm8[(ؿXms7@ٔRhr_Mvzc(1u*q]nH"]k5ΐ}D','Oe{#agmؠORTv5jUT"::ԓFL#wUKٌJ5T Ic I " gvA9#!;=/$k=YIVVݱγ* D w IMyD]KDL$`0{0tAFAZWۀŶpfRJ9jJ|tФQӂ3Q2armh~ %фL&"zS$54WZtׄ<>Ϫ渵}~fHx 5Q)n"R?G)Nfg 94"Rdݎ8Y@+>M{Ck(y 5!-{[ϋζ70p0*턃4}~2CC~=Uvuqq zV!:JizroХ=|rN/̋$ݷheIB.y2I9aTTp(l<1\૰U`t)vJ`$q9 wCHZkߪOCz0R#Lk4&v>J)NY#"}:)F>b饉{*|*kH&c8>H,R'b?LGᢵNR0|]&*i}4\֘Yp Xk& }yViPiiz$(Sf L &]8"\ta 1=PQ 3o<=Ib4qp"]Oi0TklMiGy^I8ٵ+DҤJe.R[S/n4?egO&7aYToY졘ȏ^ִߪS!FQC\7XXQ#BSϏ蕱`zG.)ݾ>6`'bf~b2ަxDDQi"̤0(juz=FP!F~o[-ePdM.nPC,dI8nIO8LZÄ*jTTuk35)a) 9wGvn:. RʡPz@~F>`:<Z|3f']8H o2rѠ%.[:_ꇓ;_~o=Ϗ~0\;TehvtC*J !j BRmQCa7n[vt(1ycnLyxEjV`H=ϦNFq2D,D@`Y*00?¼x}&X@Hj39 IDAT~;Mgǹ"D6eCL jB.{[:ڬ 0ݲDh86 {簼NI*ҍDA5V"v_)"bdM;zR`PIطQ 4ȶ?P{[A ’)#ZQɓbr&";~>ϐ. O"bA4Dn2ȬkDzX]gGpaBC"YkNtYЏF3nexYP KbLpsyjI׮CDI q_̭ !ze"l7y鹸0$a06F.q P%BE10"|J Ĕv6i*?+WZ)TZOcXUC :5OPiT(cLz ]@ciPd̹ʝ(dTB`nPC}b|'Co8˳PKp8$R[  L"NvNfn5R0Z#?}}ie|,5B-shV3,M&1}q6;W ==ljKa[Aa" ߧD̅!:9q_q4R;g=G[vJ=fmkzm~~Z,~ߤoJS![; 3kˠ]5q7FY{P`>͓0]!V"w(}Om<.Nݒ&3zHYyr1KBF{$ H)AY7ݹb; W_V=],iWif4|yW5}.DwŜ-աYU}d9jl ZSO_= 5ꢸqkÚtS|9wW ,.%r헊0+9-T z۾_ _3O35Is^XTc4{ +dvr!&m"x e{[ߩ$ ֓A6Bljw?-@bAfEDDNS7M$&jI)ևjk.`Y-tTKk A$Lؐ |} %m38R"lP0|v-H)ŎsUX'sfG"V{הmhBU\s?OY7a8&%iEesS@ސu^ ٦ʼn{(.} rI J:yз ·7᥍ e%_@نMEp8qZ/K"mB9;=}+vW]a.[=)zw`.곔G6 ˔_LZ.s,(:qf XHK<Έ"N͗I" ;R(T潳ofU#V3}}5״4kщWF goĿaADz)z M5^-8h$w-HJIkg @ŗJT g5 gtɖ$Y~GD qyViM$%=8n7*Ds^n'sYb01¬Y "S#DMQ0Z* %" [___IT\ӄ*,V 4 Q o~>1˦t]W&B .(x:zo!7ruWL[Kk?wn,=왨s K{%M.]_*~{H\ 5;^tQ_c!;@-DOL /cpP٠g\S" k*&.. GA;xJVҴiঅUv&bi=Ng nTZ+̪&BVϓvFL2n Ea!VIՅ&9ȋ ;ւ:uoE1V& K7h" ͈{T5YAvt[hQN;ŚI%&EW5Gřnb\[k欤hٶ@~`8=6=3:ց1} + klvѪ*rp_(RPcf+Zۨ+Eqwevu\M(*W=EE E+&)T:0`.UО Odb. ,.:gK9:[YNyb :JcMY, Mw *6u# nwҬ[zOWo{rgMfxA\όB)]Pxy~Ow7vc\H_1}#g/=`ΦjwQ[:l"匘YAPZU R.OXtɹ _7 %,LE@t"#Uc1NLvindVf4W˩\-"=2\) -q)rր~XP  l> hu 0%Tke&%}NQbb6LgZik͚6hsDuu{TkϤePB&lz|\czJ yWh^2]SJ) MD=z2E_$Aa48S]ŏ L#/5lZb'F6Z۶22 o찹GUE%߮γ}   ^vq[@Y`;i\l_몾79 \WK8*F3 "0F8+s61=K@|d)&Hƴԙ`xttѐoCy5r[5!&R74&"MV !z$ L6#vQBg~R`2͵ Zr D0jk__g)9 GMb@odrd)#`?LBOOC0ԱT ψ&-558č]hF9ϧ֊BO|>EkQ8?h仄s ըG*󫭕jtK"ԠN-Z0K=Y;5DTv Dvpv宁M) k!Gt1To"!0!h8& w.eRst7_HpJ*Jm^_Bi ̨<7?%"8Lh_s03uk >Yzuv_ޚLoBdT$z:&㴐jw|*倅# (gRdO@7:Ŭh2DHfo X swDy4[;}DR,g8bmm4ݵq3oLz?+iVNO W1mY2%:4e+pS'hE7Я>gR$|V"HfL`8yB\DO__\ZfqC籹LZm3ޝAW➀[pDLa:z``}mNO-N:5V (ip!"S+J.a }(rmnWQuof*Cub&3VŤ}]+RBGCh!qZ'@~q6*r/NLj_ >-"/>FDÏU VU oQ;[2yppoՁc ;CODǡP&NR QoB74sE}V`b2&z6]g%CASsίOX!rIM= ()5 7 '>_Mt6'q7|1 _ |^|Orƭ%@7ElbT7Ό.^>Kv7o’2s4AiŲYyо(T nXU@v[̽@Ո ma> u)-}d%jaw"%)tGSy ̎% 0 +#P?qnX3G>8n~yxi/=[ FZ$=nuNR\d@1C׌\oF&\ EK04#|tmqZp%Dj smnaHz/\EX^nMC侤IC5y/(mڱ>tj^\g[kӤ>f!}q)-@B|;I\_i=}Ѵ4ĝ *]8hjz[>tIl4yZNKT2m~"jcӑn I'5,-Mo$gч}Ϋ~";r0/o%w_5Lީ˞le^&3G_ Ul 2yLi/ ϰ;FYj o&8CHgZk~U*1t*-Ŏ!7ôI94|tg`i YHjuUroUo5"0ΫWj=t\ WsLbH-8 i.^m,ydr`#fhٛ/ΤcSS1^kO6c Ȼn:,b2=z~MIJjM+&}u<#,IO};,Lz|KiڢVNfl"u:Q2J J}d4)ҽ<[&rە9ߙ{["ewaԒcz>ty#d)xS~X}sflxs{R([y.`.}? $'2%ҥh!/)"Rke">,:*QQN1L~0S$d1\8#dDުl6aYllwu.}|YkqvMi->'@z>QLq p͆lK^Cw* FE@ěQTǖVx$cT<3-Z?1DzY\ oPR^E|Փ޹yN s78>z'W Au 63"ǵ匃F BSDi]׫#xo뽁oXn;G 7CFV ;H7S"jMMA!GqcGSB uP6\>ä`{%UQP0DS42()/wӄX t@M"O1Q  "1j#5w[HBTk6ۢ`g=sE*pQZzZ.ܪZIl["bU֪5lY灙ê "Ďh eH [!V/nZ󴺅pˬM*f/w} KoS^>C X613鑄ZTC 8- C%>"e cwͽ!]>NJI/?z~7v'}K%; )Y_7>IvVdޚidE z25O֨Z1["'(. ͗QD8[zd(Q«ᝡۈ[ &&oTK8NKOQDc1_!Hdtha (*򀐋y#5R%"z]$I$4x !ѓp$wk$tHk-XMIrh+ҼaÜM[,3 g9HZ&Q9f(z&2 y_~)ӵ ГF-< ij6ey 5 Zz{'3{$.L(M.t8EҗC66^i!P $_gqy7f5克f7 t҃$ۚvܟ_ގFzAN7/jB/d;eŊՏ&ޫkn]xU)lo:-sf %.p2άGԫer ['>E|P $M@E.Ԉؤ~˦31 ׭& mC.+;G4{ wfI#CKZRH g: X R⚳g :kym'SRa:1f2[pt0}C{7 2&J,'{fv 53cl)UKw^8[DaZE6@j^`i1kAI+`@>&lf:r!apՅzx<碁, ¦젶 @SXfn lk"Wm+AD/9B13kYcrDVϯ,Zs@@`HPt ( /lŸgr&$"n {JoQ'wIϰ.9H/:˸-՗JVgшniӁH"mML6^E.HH~W3iķ/W1Oak2?rQ۾d*3BR99wZ Y9"r0VU=F:b )"Rs]o#afxA\|)qbzD~8PՌVF/ot372 =)EOh9"KS%%lY&z`4X-Xbτ]QӧY. ,d+.ޠO3Lmq!6R&w2Ef @s ? ժž$:QK <p)3jh8H@WѧhLoU3c>w6IlzpDNG5HUU35uagi$Kd>ǞaN{Ɔ8xMk{kQFq{jߡ74mvzsT;̷| /VӍ"9gY{vdsrV/2jL^_a -X3O ^!͓f~oq?G !f*v0[Sp`""1)tfc?H\ahzVs;Rͭ ْH!fB2P6]g  nܨePoHh;> )b .X5HwQ`I.Rk#.!;D2%nbxiҧ:,bf3%;h" Z w!pL臠\fNčչ;\7lCDxYJ)dQ{4]>ur[{.KpܳA5W_J9Jbaf"hhH0nkґ .yv闾&>Muፚf=cf(KlڇMi./³ǯ@Voq:ӻfZ/7熬5|͏{mWC> \p?/9y#]6w/&|<[iIhX,Q)0vr|cRJkR^`)`Si84fV깠xHnX }~zm;5z9D$aM_z{7k 4y^meTϚn!$ n򾨍@8qמ Biv53ѝ'nN쉌 u"iis }ԏ=׉oC+Du&Z*pRKPlf3ĭI(L(׆$M>$ܪ|>zo/pBhOvhgJs(7*\L4H#_lc"@_iɜ|uǧ8Ӎ>(>)"tҾh|#!< _MmIo򎻉S3%ZK JIy\ῗټA'vǓJJ\2fu5{&$LBKIŗ9]ڲ"*4q4Bg&-b0DXh07+6ҧOH z(BzMH4obkAf9C NԈ1=nnxEL1m6??w Nњ{aZyݲCOWYM ¦06Y`m ǬOp-]{'S'5=Zgl4fH RS$!Ak#t}/a (zs )]#y م!>F}qڂkx_cAB 15'u҉Is=]{\@ǃy;:W7^>B_ ܋1gNetwMcG>Lˡo}3mހo~t /R Ja]/ t&<`F3(諞εJlB6̐ɀŘIxe iDa7̨0㳉47%@R\dMʥa3|iZۘ׫[Ys*|:aXg4a-!wz$R@n&3]?@8>Z+Z3g}aTsV ͥ4@ME$HZUg siBi}QF'z22ԑIS% P]`pr z7VJձ~GMxĩt9C_&ZGVnY '9qx3uoy'dUҀR/s&b?sʈsq ".#,CfĆ_ ܦt9滇Caί?41Ǖ| 0efMm(g>/_R8J)A#P?aNWP" 6&h/e;0< ˁs8z-h1!r\ES?jjIrVyQSwޛZdjgi1*8p3ӭ êuI#}e _(.5ӓZy֝I\nBXO x =Z@cp#x=gMHX§n2x11 e#ӮSYPU UZŕ 4MOdraBzfr/ZJݙMyzmR! ٴۑYKs{t!Gz [\>oU3#kRf>+:RuqOA?y~۩s|y*[/G7ϻg(awf[M1/SǽWЦ*Wz[.0Py @|׳gRLGҚŁU XD=j,EHt2"a?cIc: 0'ߑ[ڟ-p Z`;/{N<]"o"A@y2/n*Ъ Kf$oS\OLɁZ/3L(!B=!iveːAQ%f@-" "ڳ'@%1'=̇'{P@̍c24P!!4Iؑ kZײo)ݲ$ c[7/b\jIpeWJW,#FD_CNPSgXrZ̕p]v>b1LS  fM1}_R7}?1+F։޾53SJkW#菣d.vj4h5;iRP~9pq$\rk:]F?QZg6z &b&[QH @}4&)0X!َyƮ$?Y!BBn5Jr_IFy;2oJ;TВ*IKkH-d. 63PkHd Vν6ɔ %t\q%F`AjIg䝊E=su!it:Ҍ;biH**{"@#&t/s]J>c1Jn}=4|Q~^e/p3z5ݦv̋AkQlygzs݈G3}oq䐖5x38ՍK(*Flk_$߈:z=h,6۱3T،-zEޛ::V>r|(DD1.j'|ywf?upir@ ^~ c|_?OO#Y2St G_?]Y~%o{Uɾx֌ܥ74wҰ1ǥRy}ietQvFΛb* !j0Ol[76uKw>_pV['+8mM/ ?v˿{)+i1EzFKF EBx5H6] ,m3qkAF  :ԕ4*w`4v."5zz$FXqEgb&mqDj7,RYwRFȏ6iY_R{gR[yZ/sኆ*=_ bb IDATj,P"T'a7 7ї Le 2TO "^yKɀ[VWNF}Gf}tL8/JkVX} :zŚ>rcÅwtD&.š&x(i%2'{2ݴDB2HLHUdMLs&:`ݯ*>3D r7&RݴZL8 |A`q%?_Q‘x2mf7%m756P65xz#D6"mf>$A=W%?9ߢJP(HY 9ӰZ3$ KE?zm`7(8 EHP3 |kUyM >K@xՀBKQuFºaQR q#ƪ? /^~0EfOi;Sߨ0*}{n7W&(…)jA"RSfS"btmy: <d"睉fH>~k`ͯHXU~EG`4JȊ&:'uU&\aUz zp%Ƒzh@q`!-v&,Wm]fLM`bi)ҔU5FUZ#|>F`L[Q`muQD.nbH&41%`/w*_> 'E}#X(@a@M3fX\6X X1m)6|+ۈ: 8XF&W|Pg-OP鎇B~nZWi WY]ߗu7}֩p~Bh>lo^v??LhARGFk b `~Nd<@ llmHC%"k7J+ A$4:u?%3xGEHP'E:-~oĜmq6 оAd3]u̸Jiy.b%+n^)G3 ;]Ev,ԫg92K#an&IJ)Dj#]ag vhB QPT(*3uvݤonJ.yuR- #eaQ@'a?$_UoMM (Fc2 A-{d93ȧ\`Hss2H0ߙ<ҝ҆];y-80!DAzt@w|vھo+*Ā7V /+3Wn_3% A\k]<"BP/Cm.l<{ v.3'9ҔQrBf2di:9 Q =u,0;r-DGboptLv&1'&`n|=_ޯ}B\9ɵ[b6gʠsl5f[Xjj̶4N19Y_?ac2!˄Ϭ oYx)'׬0Yتq72nEZWOҼFu8~+9hKv¼>SHi,ceI[B7P<3'cF?.i k9+F%QApO#k1]oS347?399L׈z.h\ Y̵4U נDaǯ, YWeiO91WujDc̲M7F$Tx _nPy97|M]1=GĮfR yY] feai,xX4$:V &Zk p?HRV@Dg,nn^8SL!Kxy|oyޫ ^L6[L%+ą&G:J iwд俅\)J~>Ы,O|~Zͣ -&ǐl,Fvҷel4[١~-]'(gτng%-qB&M*p/kZ+l$7nW7o|E`aNzguq?NɄK;3w=1EJ>XʗshsNRAffl[:\WuWL{&<;4 Im57FBr(_:vW $UWICf -L\|}v} 44/=`# 4MoF ~!@,䏪#N21".qsLȆMO)/iM]a}ݯE.kg4HݥEwtǔK6/iӏM#?gP3"@2y[z&ۀ2e%R>kvޫ.X-4D%r`IrwQljP^.gLfeoAwIԛ~앟L~^!7dK#ҾHefUOʼnLu@tl%`eǓ||QefÄ;fݥk妋6WW u!ϱ!LJsx\p zkq]N,&ڢUsa;^f޾r:K+\7Έ{rШN2߁NndDl57$#iv-GDzH|wڵlKTDݦi_1|[QXDoA,`%jwz#nfMFFKT͏Fv "?m/HoI46  IX!Fcrw)Fpjݭ V97=pvCg}pWI,?G}txŮð%;/?VRqǾ5ʇ~Bye y 11fff0QHO,W3YCp 뒣T5Rpy% ekUrCROzĿr.x7Tc_{<%7lլzq{IG~|;h21] ~_SW8H(1V֘Kj\L/:^Vnސv(A̅y[#+nZ^|K0bl̆l!o<_:pJSs+zdŽM뻈xُ(u,ՁU<;n8%yMRȱ^QE߰-o劭ތգW΀]ݝǂAw "믏0L[mQ)L|"ϗ(pD3-+yL[k<'髻S:R77nTq .y[;zcG7BƁB>Wh0skV߆_ܵ:Äg wK^U$$O9 7@|a5im&QKbܢ -N@CD  ZE ٫w)6mGnugy֎/ ɍuGZ){꽁.O<3N7 +u} 0“CZOu+%K}_ܲqِ` --s}(@I =G?ҙxMmKC4 2{?"(0Sap%r?mX/;5P= JRa mw_Hua͎ܮΌW/҂T#*m9z|/2̹s?? acd"}3䌨"ҤI)jEMeCV\Tg o7wj&]3YZh@{qa0a7/c|*i&DWp+)E8TzJ:]ҿk1xHUo4F|J Omd-c4]E_yΐ˷bl>Bt_\ b c&?\*P)7EҀ6o?T͐繒zX}m._X|4 }b(ouc cymhFFMGebP:a©4g25շ޾pU5u\aGyUVMO{BwtHH? :_?:+9H'=`B>q!2_PPf_`}PhHSEa8%ɲ04ьS|~Jyc+$I$i(aP32|0 vkݎV@nWp+3dET!㹔j `/I%>Wr5t `}8ښyZETuKbe Via][9pYB8*0b_ASb1ISDdȒ>hʨ P*OSg W]9*_` J})Ƞ f U_̔JiJ1 -ecH ҺLC!TūnS-$ߣ휹X-[t=OReZڕ5 Y&1ʁDNPju"+er(ڊ:ۆ57LnuFIuK$ Y@匎Qcƒ_fV?Xa~zC,֦LKFaU`SRy:{`A\' r< ^g,ae[أͿcpg/J>?%&TS#^*"9\5qXLc D0,&_u-KɣH74"HM`z&lΑJHiƢSb $rV֭$kJ #AdžjRjjo:X#kauTl'څl/t:RgT|eM82ӵ_b|yU,NK)3"F`ك2[ W*J*^nQ÷E1H3nXXIJz&{[c5K1ÐVç!EG96 {u1c G0 >tZ6>*j8Ӆ^Lڲd+yZk.)61 ݊$j$l!6ˑ\!pQG2%-k,5:"FPl'cE\W{Rk0?I6]weYgS(lOH<ڤ "B(TbիNOxneQ8V@f ?;"ۆk2噯2Nd#ЖkrPWI`FPŋhkB.ijnrxAJr )pY W)I(]l8r,\Lf+^o}8 ̣48`_z.K3bjc!757).U\MhDœD G;؎}ɡ m@Hʌ19""f bXgݾ&[_e2*~4S)3kcRkTyw@PO/NRnzYSTl[/8ET@nWޏczdk1: LZ;QB~h-RF _ű\I i$E8G@d!g}7E(NWLnpm̀t}g}vU5їiъz`twA*(q7Jǵ_ʏI/#HZ􈜆q:fVĠ!"B`蝚w*HwVqOZI^h63 2Vx9KP=ٔHN&a14&8tZ|'Jwidw(YSG[ PY a f a Wf,+n='7rEa,' /&S \J5x+U?šKs\kźzN * 6Z9TC=hR+iPؽlh>7UcwN ?H %-&TױjS|C2WnUL>jчF 6"Aڶ]Զ[r*a Gm@g7 cCE% *DY5&0CS */j^ = HQH?J+9qQ<4 KŒ Յtc io52Q:K">}#ˌDE<4fb1?%1Maw: I,\_3KL(jw?d8ARzΩSxAM+SEj ixV&M$HNeH39OtY-4'/l9 HWA=gG϶̟o\\Ӎr9 w3Db]F8d׀VUElೲP}ttrbWEf΄t鐴d/o (~< /a{X$@'XFJ(i W\.+l VMMlժݒ3a[V]ZZą][[[gq,].'1F sJ]eAA)U/J'QlIGO@0GXѷFr놫-@U/oGDuG3/G bIVͱ֚:bGUCrOp`0{\0xjSw'T.1l.uLnwSÖy^s%̙ mܰ&$)E+ @AXa";߰گrܯ } TDBp` k5Pa RZ+ 6"Z Kӷ3*ؙ?@C}Gɐg1hEuNr-.!+L*|: 2 E%ӱuwgHF@u^do;$Ȑ5lOɳϠ͓PZS"6=? ]f`M\tUKosUJ͓qkÜ^Uz0j)gB 9)Nw Xo%B:u:dLkY Ä% bΠ$EQ/b{a@v73)9WE'}+CzZ9+u-د41*) 9 w4gH9+Nd1Ae6v1tS6-ι1˒ABLy& rW.:wb,i +UT<(Z Emvr316HB|N╂u%tC'm?IXЈ?4>B(Beqant6b[ 7HrY`qs4f'Pڹ &o}:L>^|O|`%I&&%g3qWf?ǺPjsU5Uc4琛n -ՐY'Vܠl2vuFPW)$x+*'fhv1mP$FGu Z.[.Ǵ fM1JLm2jdHM3zE_pw5Sr!0 ߢ't4Uؾ4T䍮@KPsѻn>;o9+KkopȓրOhqUw YA_ۂMg~Vd|(`6iΚA6C&ĉvՏea4iz> &I1M "}ZsM#!'ܯJ{4nUծ:HFYQ{6LYPܡ(ʡ#X˯ZQ4^*,G$.{?3?Uת/-ZUyT%K&8WdU&?[fU*&>UBJMB-ĖGhW0M,9ɨMv[xNU!`_v&U@w=̭Lt#{A<o, ߴh" m7B`;%(i7B\MyDA CB ,+ʠk7Y0{ AJm75F0/F2eF? >zP1AA2XЬIg LTCѴkϺp ɘ  %o:Ŕ jhjdOmr4pRt^t4P/HRZ(6{-B*RFH+{u:)FωQ7RYC(`VLW9赿Yy{'V,@ > cgzb׾@Akg(3Ii&} ?D&ȑp?:kTOH2ƕR,]Bb  J~}>Ĭ aQdRtbr+1u1њR+f`s.ڳ>]*Qu CT,lO ZV H{Pɤy#T0+ l1T4Kj^.Ojjrij,Cno-[8pQFVdOKu(xZI4^b9!#œdm_+U`<MC]Qԁ$DL%o٠JycB(2Kk3_Siu[J*fװM6`S{2:_UE%6#[r(wDeϸJ 6@u-okT{{cL$s(&YbYPb%嫐ΞE3X ' PclpY> V`r҆CM=Ҵ޺&0LiKrͭ]kS7q8&;19Z},H{5Һ,gy.<`?O놏DC$1ae~U$PV Z?4jӧG8^PDVdmxEuHlK!qqp0xg*1^R: B(.;!UsL / %R:&&ac.,:'(j+.nc m 0?PG\&P@DT4czg ^$%jN6 _H>>qlŠ!pnXA&ůu=uhWzu<-7Ȝ#qkշUQF 39 &0`~RHX1 %S!c92s4LZ˳fa\TY1wl KXl#KSwŭV:(-2=]BuCgm#2k00ۂjh6Ҿ&5Rs@DjeSl;FH5gDfDDΦ[yʡ,*$L\m~7e6:?͙jUay "6u=i-G%%+˔+d&7 _4ep|-B4.g&Z(yێ E a`y@4K<ϳ,k4}y+;phª,PEC)9Myp ]4>aO,i $)V ??{~ ƛ!6 rS#_,Q i)QK u骊W;ƢI2`&*fq}Ah NPPf`w /gЦ] ńJ -Y*Q+ada'- 2 FEx,tD PGbpUT4ϕ^KADUhБ% ObmRe{lbB,]4Ϟ.w` b*߿w`Öi[8C2&&0ɉ ~]}%+L #-̯@ąCCscpυvykN+~yȨʸ0?Ž3r #(X g@WȰ,R6y#T<8bJsRq1cʛ7ZPC ϬP>5$=h!O1%1n_Vy?W䈎?~睅j+XנQa! 4|Q"9_V&Mm3-DW_|WC3$ T¯C- #J ʭkCh#(L#d3Qw )-4ˣNo11UO:T@[HȄ[$}2Gf:wdn2B>R:WL&ҀXu(Ym0-䏩9 yzF#,IN1ptB*,h*QF{MSRf Vd?ţ"2[w =׶KWd? }45[!Clѯ0=Z!FSa3J"h(^dx1tk(<]$j@oX2$?'ɱ՚n2Y+*Yp0j9:;R@a' R^fTTՖE%{:}p1않T8dŧNn= 2CnUιs5crD>҆f}$Im--M?Xy $GAp1=Y,OA&wg+0n@ ǐl[s{I_̘fiUdOtt҅sa)%LTO*fMxHV'99\=U7s&I jo!-S]BTws^C$IȒ(.DlZ+"M ٜm)""""" mUhhn<gU=bkGD8p_W_}%x≳(Yu]W^y%}yb瞛%t.o GL'xb```ڵ3;6mDǴC>6o| 'Jԯ<{`uۦEWn\駟iӦF,>pmioժU% `߭zqɟ }Wo4ׯ_| K;z_.nOf1xg`gtlt_5vYzb-/6lݾ׭z;߼xѐ5ooycC+{~6ܹy:#TW,-G}ԓOx^8`z|b[ݶcZy93?/?tky{{H4˲ٕAć?nMٸqg =~\?Op I|[Cl 5|W[n>w4~7^i/\VwG6o:9'˲}G77tye'a]o]x1G/7/zNY#"ݻxӭu':ҋ6ko#""^腶g/Y3?߾cϚ+=fjjzw의<h;;moon˗ K߲>{{賟]ONMgy>o^Gw=@ t][5),|rj:ϥVxtpAox@iF^>N>iuag]wu)[bŬ+@'`]Gf AC Sau~xwqI8s4n|iӦ~ݍktlP9?^&kV+۱kߎ]ON\,Mh6}{o;صol|b1kfje]?b,OܳNz/'kKj?o,˅\dӿ~Ͻ_266!oߵw^__o;46qiyɹ LV#_NͿ#{g l`Mٙo7s޿F|7?V+c%&f#AnB&bHOZOleټfiʲ%>߰to=g]ਣ!>A]]ז9(}ܽO?w_x(Iڙ*M.) ǵ^ss9?y`}_?묳7)"NMӭf_̲p 4IH'Zf#M>l .W]|i޹g~k-S]OuDDDD]t][&XV6YP,g*eܻtՊe}ŗjZ^غ{fxxqg7v'/j[n?m۶뮻믟϶>7BC s={W^yE}]l٬HkБ{vu]wwy]khѱ,˗ k|?=4\8$F\8`|pF:jM\xy}4Qf#?o||4:""".- G>ӛxEǮPԳ_:46q/˦.Xt0p`rrzjǬdYo}[{Q۸ۿ/o۶ nzOfs{ ///O=|3l΢H]Gў_>믿G҇|摭ӭf‹5W&6ovfy\~b򡱉׮/~s`tlw=4vx}}jeS X//=4sG-;""""f]ז?6^ti!wNm?{}m\jQ/1G/[۽@kUVna``wޫ?xs6sxÇOt5p _v}/ zcYwf-w%gq%ÈOϞj6ѱ6U5}[nY}o=u>; ??{֝ [v~أ{{h}gvCxCwg@,!>AB׵e?,;jO<-Y<+nԖs]SsON=K獃M+K,wseśK/xF>覒wfviG73<^~}88g ?ty7S]uG~w9iH1+讶ܻo>1=yiKۋ(N=k^.v$~c.> `U`/}K'|QGFFV^wi@ĂZSN9ż q|?Wk6'O3<37{63Zމ}i?uy""""fV 4yOAGRW\ٕ:/W:+s] 8p q̯*0uF#˲,.B###stoFOs+ZW .LDDD9~;IE]4Ru[nm *Gm5W~`X{nju]K.K.m)zxu{f\ ©Y'oc)\~+興WWz:/^rqbUMZo}ePDDDDDD'A({~_l8[>31&.̶: є-\8q/a_쫜E[^K\Khm b b̯"jan?f]/,ڰcpXҟ+Z,?dn#6 5!H" Ox-HDDDDDDai_ϼrd3V_n_3\Dn8eY88er| Q@݃;p@H`Ao޽mqjjj߾}qGۿUjFGG'&&fW#:+X8ӳ,3&\;_d{ ,託{쬳*N+l$K3[li6qkBPP_~/눈 Dܶmի:ߟ eDe۶mk6!vjȼ}f/N߱GF?$3-3LO27l-8&7n$^hҥwqGH$M$I WXSSSW^xqQ055555588눬Q:Vo߾^zi޼y+""""ʕ+.\XF4b޶9=x֭[#R|v0$ZbeؕkR@%|y3Ɗtyj gϞ^xaڵ`L@I0FFFo~QG 4؀?;ƒ/oMڅ e͞nNwggTFąo~[Ve$lm1fj4F#p=""""ՌfΝ;o߮^@LubfQN.<|({\R<[i_5b1|'0P}/??*"WJܔ*"""""$If`=Rw12ϵFvO|](c}_馛-f{O gBџxg}GDDDDDD0[“VcZ~_\L?:+.;+1w(ܬ X\ĀO<_nc]n= H( ܡ\sFDDDDDDtsoPRO7mTL̆#K~ _8ꨣ^Pxtܤ_sSOtw!߮]MFFFj?Xt7߼vZqȟY_P4Gi=s'j1?h@'?yӑ?Li_DDDDDDDEV06|n6k8;?i""""""""^a><߲e-RkE]z{N8!MW7eJ """"""kBsCYm޼{w cXt%\rg/YdѢEdum1G #""""""\gwjjСC߳gc=uY122###1122̶ 3H""""""""^E/"""""""UH""""""""^E/"""""""Uv/EDDDDDDDP8 {*""""""""JxZDDDDDDD+snH4Ke(IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/main.png000066400000000000000000024416221473342170300260040ustar00rootroot00000000000000PNG  IHDRTZ~ pHYs+ IDATxygWU/s9m5JJR cB\Aax>O^& 6`C"p<(A 5W4D*TN~{9w*!4$`ZԨgovs}k7 !3N7>I$I$y<(+u+.kou7m/~ o]?.16I$I$yM=pioz8멯wveK$I$I'_ׯ~z79kꜧ>I$I$I*;/o}cЫszG$I$Iyd?"z;x}#M~b7-~^$I$I_#^S\xj<|p.K:pxu?pޏ_HI$I$ɷrᏈnyCu蒷'h;0}O~i׼Q5IVQw+$Ih}%3{ϼ<|3Y?8_v+I+/| ?gYx7aћn{ے$ɿa7x:џwX?rݷd{ꟻ劯|k|ͻo߼Ⱦgښ$I=xƳ3*8p_%ɣpono5ĝh;'‰w]u]//u}צnmX<$}GN|̟>\[cͫW/{/zKF˫naco}$߯Mozw's7[g5z_wy9]着굯}-3xK_ Ї7ڵ;Ck;x^ַ?S?S|3y'?=y>%/y .''7U$ɠ%?x 1F}tqz_7%"U薖$/WU,,,/"'?x+^q!gO}S/mo{<)w_WW;gg)Ї>tW^{~ߪ^z|3}w=yϻ >O5yM<=y7~oƋ/NO%}*է 9pp8ƛGD_oiIfNp߃}rfu;n} gzI$y}]w=۷{wnUU5Sʲ&X%r 7җxg~bI-eGx6>R'ҍ֛_>ꄴңo'$INB׼5}{fg>[no|K/D᾽??`tW=z[XXxw׿-o99^W~ӟK򔧼_YYYYYikfzm$I<$}߉>qs;ݞ}7i?wόF8kUUU죹clz$Fѫ^׽u}s8WUի_[n5yoowy"?E~`08&EQ o7L$־i;cA<< zs=k {n:|bfK^g~e{MN$y\}/~l8>mIo'=qG"~ c={ݟ͇Fe?~;ߐ_$I$呅?-}u~-u fY7g\p_%I$I.{:e鿾G|lM$I$I> :⊗)g2El,ccx~fw0] 6=I$I$y[;n% g^Bs<n,W;ik$I$I=m_,'I$I$.{|$I$I$v$I$IrI/I$I$_$I$I$$I$IH I$I$'$I$IN")%I$IDRK$I$9$I$IrI/I$I$_$I$I$$I$IH I$I$'$I$IN")%I$IDRK$I$9$I$IrI/I$I$_$I$I$$I$Iz GL#!+ Tj d@T" 5"L!"* !@P;s*䳬DUnA@@s a?x?Xߖwf}~]_;x]?tI7rTFcaqtl`6ʒk3jqik:sCGXC# @&WuED4*b"1kZqsb=9gq0qD}*M `D""j;Q={hR"w1BI79 OPvۻKcYE˵el5DPzݨZN\o۾oesA~=jC ѹ]t;/b ωuqʮmwqWRg}33[o3g F]d:]Y{lfHF3WUeNcԍüylgv&Z!2 J 97772YYDzD$ "6#"RDb];mǨU]E3>sfnTTHP՛w}:JJP F:ZhXK`ReDЌe9$"WVVg0.˲ld#&Y/2;8L 'x4??)G{rRk>6*C`n3s 1[kv{s?,ˊC$۷mIJu:Lgmy.Gɸڶm~_괼cͲHHNܾ0:3:q>4.:}QuYNSvmeE+33fx/u]evcęg΢I]ՓU]homkfDz E曣 Bfff ĨP!c1Is(f" 1jI]caęYB R`f9jU@Ğ 5ssD1*23Ma E3h&)49ɢrq<=j"m]*flfLͻO7Ue6/'2l#Va=<ϫP쉄s"QUfS26(Zh H ʪi h[Y8Z$cXQ4299Z󅪙šCź6RB$LZ2FXsc J$b,BDq:ȘHԚH PMus,i3*@̌T8%Nf3 lF#hze1S 4p|}2 Q(21ŨM,"2Zܚ4WƮ@0Au Bd5\O|$5OwɈɬY "0 AaL%fUsM33c2QDT@ĀO]Lxþ3θщr0hZʞzYGZzdVuTmg97 QaP" 8efougo9 !@@DHͧAYkyw=bG=|h󖛽UUE3Gu]@$/ع3]_`ݾmfIʺ.jDk˽ݧuur)۶o[^Z BDs,TG1q؂h*0f|rNf%$heYZPZE# #([$0;f&L\ a2Ơ7*'A8˝ˤ(2".ٹx4 x{17Ӯ&c gպXMfB +3U_Ip2OʪYY[W`yyѥnwoݵE.nQ>3Eśnlw:D'L_WC~רQUUsA&΋HUfj[nj 9rx<E; d &Cv9*LūjXD:304QMLIXb Dfx'$18abcMdNX-rƍ*s`B=.,V5=#  /V*DLdC3U=3G!V޻v!Ve D'\ʲ:ugfuuUum1tE5!sպ,,Cyڰyfr4;B]Ua\NƣA mq&ո, ڮ{ʲfX=\xY5'a5U0ZQqߞ=K,,dmav2Y5hVs r/2WU3V2%'r:ecLmqi`qRWr|m z u,F#L8,?)=deuȑn;5۷D%JF8,b'&V7;>hey.Bm۶m9fVF&""L,uɸ7RM y\ՊvoG֗/9}gm@Cu鄅=އZZY܎=V'sUփ "ŸBc v+˳n!jM:V&fkk;v$v}螃_/ &I9.qU[۝˲'لAdԉkZ^oϞ=,2 2L8??0?y105huue}}L̔yG=^o\N0z"cd{'"UUFBU4WMn-p@D$·̓eZU$3B4h)QY:BBf1P6,+"QCՙlp8/Ǖ} UhE9*5jeKUQ1ڭ,1 ɤZ،y,M*J}ў*b Oe2굵^]*NhTh\HX{ s U9:D!Ff/y^ \&P-.h zd8ޱ߻wt;޺n[0uȬ֢N)uqe])d<7?&`"O,4PeMu ̌r򪪪28a@m櫲ڽgWsݿۈ U8&Ũn۝JA}VյHHMYD LPXH 1)TbD @dL1BCL9Y5u"B0SqN9MQY@5ٙ )jfBM!AA0j3؉@13؃X '@Xa̬0#246S094>1#F%&9f!fU8f@p"Mm8FR331p]@X18119a ,cb#qL:0E@ĭilZۺ=2 lt|쇦 #"iT3") M "4[=DhBk4Hc M `T L X`Fi- զ c6"#3@D04༘p "J`t XuD,f1@4)L&%5i-@fYuD͙b1+A, YL$f0,':wr5@Ď=⴦ nZNM]`bAOh[)u3f pbB$ykWPV2TA2x󖗗Ͻ䢃_cumygλަ'1wYvUL]z80!*)ИW IDATf?ώG.egy1 LU33bfe۶o{\Kfˆhsد&DuUN'Rtۤ΄Z>*^eL8B Ly|X(')s eTBq00qi0Ci^1A, F[,˝ϝwZ= cUmj c"Ey?u 3x4Ű>M&#G\:p"y1ȼ:_|ꓞ\~9*>]U@"М hL{O;mu]V&NVVUG"Pe/'^r睟{( >ӆ[O}NGa7KN3VVVEY 3)'9fYXϫk+ݧt]|˲l:ى0,jBss3EQ.;bGsy>oڄhey?5]E$L@3Hè)KkGK1'ތ*lnRǣZ|Ad0 Y !DfZEjƾꖓ,dAf֙v;|)N&P5Pјى,+@c,H@͉EC 0 -,*'L,̀b!F|7n VOƣVk"sؽk\]mn.]̎MKsAc66mB6@&9idSn ì&5V֚O͔DlM&em${/o*E&&vFJR4onM$n>Vڟ8*̚i#jg 0 fRmyS 3j03gidwy9 r4sP#]|cGi˹.sPvj-_̀ZMPMƓ GyٙpU5T0q:وԬh &vu0ݻm8L540#΁L0CT8EV.-?1@BЦ s33L'!*'%8l%bb54 '},sYNUMlzA2;|ch!` 6ʤ? Xg''nס K'tY箬.olKP~ېVoZ,fvNtN3yeݬ>|k',,VW` :|~K{5;?>{v}=wsy޹7=vo#@`n,˲:4wdufPass4}YUYVuƣ-1yrRסenu,',kEyb4Y0CӋ]۷ ;fqUMbln Ifl ,u5`8\w`a,d; Boc݌LQ޻hX0Lc;w+2 ո)2Gc2P"8,Add!yFYsԼ2.ITeZoVeyg֠ED3_Wx$d(Kmwu[cp8Q' )E(9#˲,ԱUI3/.sY5X:gO9 %҉/x4m3Β>m,! $eUU%eYVVӞ ESN4Z0A*E f!V$*o߹c87cpDHVf&M9 .`yyjUUI06CTF3ĊH4hQܴ4FnI3&uYUN;025 LRZ|!xabb ""%Iz DAAa 0x ccƴ\\[Ц !؊ANdG Blid!"f$XK0@MwbFLF¬ 7ii P]|&D0@1I3?4-lDHdDB0f.)=P+"vMZbjb> tzhPkr5xؖbT F"IsSYSo 06 HM LEỉdV(`M8iOFޛF͸R3##3vl[ D$1 t#IkYMW0P݃siFM4xYHrM5V5A;@y愉͚~z8kT?ǃftg9aJ tQA#a$}u` 71 fμ nZE![ 4&q YsdsBt-p2^[[׺$UC/wܽ=+++Oy}?ó1#ƼO>p#Gv5H!@[#4e 3H]Ո;ӛGet̚{f@^ݧ$sn[^6H X}snƎY ^; eYfYVkdԥ{n)4A3qYԋ25M  `x, UrAڰ:cqnϳb~nF@ct,EfPٹÉ'&oE.C=7,EBU ΕeY㢝yaϞS7z.'uB$ڹbeϽhu},K;vLud2޾}rsc-VVmn&Ӛ_[] 14tyљ!$|ʜ+f`y[!sQ8r^BveYXGA!Ecј*Px\ZuXnmAovfȑEǨNW80̖*Lf \IFMB D33vC19b Q9kVuȝ9gͻHhfAJP 06b4%Df #1!N|3Pn>Db3;^AA]XbnMPkJ[f[_6y%oyt[k.Qmڀfc2kXEfL䅈XVQ0OSE}"&5x@9(ΉXcd~ c56"}'4DLherbBͣ$Gy4QD8ϒ|A ɺ4P6ߺ44b >bz}46M8Z+Gs {5bquC!)LXN4_ Me418jŰ7FOD |j:SXW=i-9$Ɣy~r)ԉ8tW}'B~ܻO~tl*˗7 2brs7P/ܡ"ADQX~ƙypr7lx+)$)wC2" Q{5w> f6RJ)eG13yK8hl¡A!,>!k*]Tm-w"7hHՖ%M85-{7YnzZ&n\i"uYhwS2xT5nw0_pj尟üRݚjuX ~=mlva%n{ |L2$ۻ}K3qz}s_9WɊw*VWa}8NXkUXUmԲٜˠ[9g3]jtuq9j j^_Z^hqZxZU5Gw>㘨aSe”Hjq36Rl cst$;)@LengpSW"h`L|&A͛ C0w3cgĉTzQwDf:/8͈HQDG\b | Ē8UHuGlQ40  eE"f5ų'o-B^b#BN-؋#B18ao?/ E#'6p`.HhQvH.ֲpGˑ_X 9dqttK*}.n k뵕f7,eZ nwXpvf6cUV4f8m:Oɉx[n^jrR'7nw]PM8kcs(e״$V0_ݿ2L[2 Cgy gNEg@戦Z֫sSݳ޽_HMf.'¬jlٔ2G`S0=|d{wCDʹjC"5rArB$U%!rc¾~fI~m!;ƚZ+Ԧ]ֲgBq7sL [Nz.7_-@B_Sl2 8""Z }f h`tz)Dq/ !:xHLM^Cıd" D E͂/ Mxp#"EDW\̳ah9 G[ޑq )j[$40@klq+BZhE#nKoBxk)@-Bv8w u_Z Ǐ9# gp.nAoLp$jrGtGs A3ӻ u*yqS&k␧=<KhB?^P{ ,OO ;l; uٌS 썘M>7{x]2('sm LK5bQF`B"0p,0E߀ Z[b~Yks&AD(%֥N~w틯|u|{7]޻MZWWjMaiY )'>xw쫯0 IBV6x,9hXc7u@mӈ$! Z"GٳorZ͚8ϓ&H;l}v jC7!H̔PXV9!/m) s/9@Ȉi;nf[_̱vpEfypv*mxE"bfXrݱ1p3-q}4mn2PiUMj(IZlM Q!2uGniv@uRg?z{g?u}h~i/7$}vy_uWM5wzVKp9[n}z^ZK).[7Z)f"7m|攷$> !sܴ /I"-%B!"!t-Z}VoAkð,*zew#Wオ5wV6mCET5]]Uk ^cC^N}]DZW7<]'BCiqL-nu*]_=y7.ϵeI]ǥ}')=iF_|Y;pJY\kF*Žvyq`zsȹ/eE-S5qCNŒN'=Rd.dڬ8}fqz6͹kMEԚj>ƔppnpZZmu9Jn`u[RjZf3'f˽tꡥ /z{H?GXkN4th֖n33͜!VuĠFK9M0SWtj5Et"&rbUBAbpT1B$IcaR niN>:(T#wZZ٘0aJ,¦="سD4H x)om܈ 8 'oTm"9:O? #}u "i(pFsW'WeG,`YL-f9p$o,:5|,9B%T&KnqyCa( X8iJǮ[g/oƴ8,PK?W0v ,K VoADQ()k<-A@Ց( fv!2ϜN)/0Bk"VpX>j9] X:5ˌLs p@b5u0̀ ={~{w7_|f|;:@(:M[!`B&$no&?ie,h Ipbt&`mtE=m\~ νnJ!Ǐ|LL!,}םom]ḿU@,L 3B`. q: |pfG $:IH|r..vw?9`4Fx-KkU'cDηS Y]I0ju%bY+M$v"&hsz;޷?HnﶈwǏybZ~Nί믾r?fwɔRKaZy5 BTybfgִV{:ILHEAUi$!=Бୈ,Lb+Ăy8nNL|8C/@&D$K6Dĭ7iV'E:;URbW5mjU9;;1#F3493iV[-Zm6Bdtow໔] j( 9Y .vPrZ! ?yů>_'u<ӳnmٷ{w]>'?*ZK\ZYhkĂ^f05,Դכׯ^+"'ILߗ%毮?w;wH8o{1Ԑ%l{@= B4,.]bZN7q hkhje. \[S[kMPĤs`Β~?~M?<{\rfd0c$sqLYuM;^aNj^ܾVP(XA/ˠV4\=KI2{p~o~",Ĉ0HJS)1с!ڎ\2AA(t);wufXebs_Z5guгze cG:d~ݼ7S$l#Y X1tFJ=e7a<۬ydfrww,\ :}޼BЭ3Za-LDWա j]vS$!>,(⚸3˫}'W/_l6}sYo6ruF^74 @4ͥ5IDiRbw.&3Y,qusJIGDզu"$Twg&so-"BQ ԕ|̦Vku\z2P2CaZynIX!"ǩQNY jɴ෨CcJH"R$e6IPe(j2q꺾0bU|EARn "R$<&0Ņu]bT7,*k"ܳ ,F?Ĩj|=GG,y- X[f@, DbV!&ODƔ_i@ף,1by̔rNU`f?,DWѬHt$RP DD'.͍I*ol'+\8R@5Ƙo",.m!Ĕ:s t$i1 rʪ̖^fdB$/bavv Ԕ*h͚&͵ W70#FbB_hMۃ{+}{cm0O0RxRJZ["H;37_ (@o}cs, "cd\A!^j+]Bq~7_K9vT_݅/^0fw_'{O]Rbyz=j[tnC""{ʢjSoX15\MSJ:o&pfZI)5d$f&|8 ~#<@nD@ |̈/not~%uWセ+e6n)LE]/m>ڧ zuW.] Y`Z8MJqΩ]jMŀH@fC$>/?VTŋW^$Zkp)"Rz"LD||gi{n^S7y)c߼iXffMfj9;ZMҕiޏPmѣzͅWRʊ+0yͷ/) XD)hV@{P8K2$7ggL[NRk!{S@=GԒA4F'5e^f̸pFY: nHKQd$3@r*(`A##F [5hZ9 DZܴtA~[k$u2qk)=8[S9D1 ?>9! R37B2#MĩypH!d7# $FK6`i0 .ǃpԅٴɲXᲷ[^-AQEFb&ve:Eڂ5"0{cN iea]psUwUE 匫6"7dkGb×hq 0<Ծ>SZP ŠNJn';]1?__I۩cyAw,lK  6?K?ӗ_~\܍Uݿv ͂V} 0Lʴg7RƑԾ8ͪN(V ѽԒ%Q !PU̐Yc~u}%UN.LL̄L|}/irY[ƒE? $>o}~)n׽;2Vj#sM ֫H7c%gd1ۛۻm߽z~?M7w㮴2ӧ_w{Mwݯ~z^ͫZ'W~jl֏<=x8|8R.n)ŎQ}qL91 Z w)R4{Ջ@iSs$hv;Y,܌)R*2!$C?pu,^h_jS$0qwa_\^xM$Sm?;4TBR2pG9 a8xzDx8@}؎ʫP5\lD֖83GXFrx ``0Q)Ec#`=Y5HR(C9ٶbSx*'B@`h Lzc`ـ/e ,8ŶNA/]!f Uq IDAT6Xc/J|Z3=pSY?2 2ܙ*I8v~b6!oRps-G5X juuq/#+0mF" NCR܍Y07V6ŋ_egsm)0\$:3B4fm*"T7>2w2oA49K4z-6MsGa,Meb{nIv7Uw]i6mYJDDOF:[} =qvwVlon;/a@m-%aD26Um77^ a~}:) Z4!j29Tx08ݿwC-= i3F!agUaݚKRwQ+.iV$ Ir@0cPf 1&Fc03.C}9 S`inuAH# 1TU ?#GiF5@pȚ5t& # )+m֐itBp4(r3`DЅscFPa]vD>#cxZ!Dw3c}8񅧉yԛG982)ϐ%4~Տ;̲ShEfm "9,aBoLi Toc΄}/ 7of#N;H)R ▪e ^quDd%q>"VDֲ 0.:t0sڞ>M׿ͯ_vًgCWW/V{3O|2_,I, |b& 3KJ]%Kѱ -@Lۻ՛.[r]gbk9{X3@"ERr%Ge?;eC%pH" B3ek-X ߨ@n᜜ Mvi00HV[J c뚈LdAPZd"MսjsYgDd";&Du_?WsO;?;%㲙٘m}Ȝ26W_yvu\[ތņs\ݻH^1es#d ''1Wwy@ZOT;$FRvmuR%f2Ms.E%a\Mu ~ %rȫR s\ܹ7fL]?!)B3 $J%5KjAZ{R 9n׋POK :a71SSXPEJ",p) xpE )n!CU g&碹 l6֧^|DVsdbY,w)^D#'X8\ H,w0_ܶ0dQp:qkDM ";9-PW~9~p&SZtA\H>e΀$zӗ<DÃa7S/ `R JQs"Fbx@-).#w50 (0D##9G:^bX< C;*Gľ9vg$ :ZDgİ@L$blbE)K"}k"Cw8zpɦJ@(]g€ ='L/vDIFjG77SP݉JΑ5zb PJ:f{!sEzoGS+ɽ{]e-̙v&gnO~ur"%b+&sF$uf3!Wi^6sU:MyܭwܻZ" rJBfX]__+Ng8$&$TjNI̖M$XڪNIi.sB>.+EU)qq7yU:~Cޮ>{v_=kT"HfcM*Z7v9* y?~٥$j Vw_]oӏ]\JV3 ů?xՋ槿͋+dGnk$D(Ca0;$]oǮ9$uUz^,gϟ.0 ܈YUkU1*T5kK&P$IUwU-Z4z) ]UI͘ܭ 8?+yF@)^Rr!䵆4G}?^_PӾT}:~D*bC,}Mggg}?U3d>Jm1˹4m#M[7Ջ QݐX w}o%()u Ly[mے`2>x&hjnEs*f`zrrq\^_UT&Ţ[.ۛk=.T$77->"iƣPø?%Nuvrzv.EdzDmkLUB !5u9lBc .c.epЮk!cab-<{Xcu` E CiD@ׂjKפ:!8N3tsiW q$!s1} Bf5r } Y&̢jaD @E5P Xd` xS\3"1q)Jr&cŅ 9P# _TQ$1r$t:k&wN#5QZhNjB<( Ƚ0 B%&} Pբ1- G" AĹb?2>ŕZ4 =&5 '4(8`D@*YC{`f$nU/gw+ld̐'@qLLLfN@U6 8MpQ(h\h<`8dv u'Ama. V 0'D , < ,3PBdrruR"XPBFCP1{fCЂĀEhrBdzWV(17Ue6u l;No  }STfy璉 I||X2 e9 x .a"V@snqQ /~͓*v30gS T 1nv)G$B> ) W",uU;JT`R!X%8W]]UҘ7'bPg_=5.6[a!}P[whdF}?S#77Im 7q{I,}|+.ÿ#@htw/gԎW=zw~7{W_y}4}~_VҴM׶(@ѬeV>3P"&aRM#2{S|ƞD ewUUˣe۴%DTns "Z-0bQPƈuJ0 gKWmEܝD LZQ6um-iߥ$UU.Nʘ_ʬx]sT Ua(m; tV@EI{tDR5}ߟvNuI˳?9>>{~*IT꣣vUPtm{vv/5uιk8_|նǏ-=to}ɵd"X7cѱdzmGM[g"]\]W7aȫϟ?*>ZM+"(E#= CV- TN:4MmnS^EJ]CVDT'XS"OOO۶5a9̣/øRyw F.97?Kn d L 1QZ4O_w £u=UYqsJ1BbABIںZUUTuԑMGd%^j,5Щ4ww>j]6UhquWEs5}ٽnsVoKUO?˨ZJV-~8>?9qY%i\\0#~߿|Edjiyto׿;wO.Vn{G"h)7 qݨbe臮[] Sy,4$%8YODAT)<(8b~Ӽl` L,IJ CQWCώ X Yî$No{$ 3[] r㘷M*5]= =8@ %U߾Y׷*)m[1D"$E[,F'g/?nsa_yAJhpzr i\Ͷ5m]J߬ǝTIzX5uB}[ۮfJ~OD -EUK"<m[md!їO?ɻ1("d0HJvG+qǦmubS7m%d3*BTΝz斤VCUOxWϿ`,“jML YMy00 " JDT%Q󾸰-j&tp2,x@~&Œs#lDi" 4;e R)$n@6O^@M,@^L{AD̤lq !H!B>  r^00rL^y K?צ#|bJ>X>S$RAs·ٸZYn1DGQP+-xT]m-$HSl'g8QTEDLrɗ 6Ÿ*1`DT48<І//zd}@HV7M.& (N&Dn~w<H<)iU7G& #T&A2J3bԸBa%%uc&pGb=-h o|J? Pw&0xTR̂ݮo/?mv+_\_fpẊ~Z w~GW̺u-}7GnVmv}$UEi]@.XbοЏmjv˓}K_yuӋ=mOɓϚT}䳺>g?^te=;;_/G|RkBМ}heu~<1GoÐ8l64lknꦩk98cq47f&"A`BBBfSsC$S˥){21'Q+|Fr9ai"~s*BfGqŲH?xts"=J sڷ\gU 4maln)5qY',%eCq,.Ivomj+q-ݐJ J$jdIr,vkuߔ3Ý;\4nZDsI7۾ڱ^mOK?互p5M]rr[\TYƾi+ʠZXZ 77n,sl(m{@`U=U  nSQ6GU'nvu1Ut/=xw~%~)%ÜB0Hʹj#"Gg/K6JIMt*l2 )͔ $bf%s@̤>Qz7,{y r&hsR$:(Gf"r\P vp'G<o IDAT9-JՁnIQĶ ko܍I&H$B!PHh@Q́ "O#R &݄Mnʏ5 Әǜwx˜9nS-L1`mVb "8pE]`bɝAS!s[740+8xI'ZJޯ?Ĉgth3΋+f,f`~57t&I7IzS$ɝo4^0G&70&z c10$dB5D0"QԪ.u *)GX C g "4 TA}v7L*)@Fϱ! UUvuP dEqX]ۺ_~p-Kon]#Tݻp}y LBTp{3ZÃ),hn!hƛ Y9Dvtv>azޮ7O7nL|e&Ugs?=yySœ *BD'+"4d&!J,S@41qJD\X:JIוn3Wp3K}ofSa>]U-b}?øPYOr) ~|Ww/.~\]o< 0uGm9?CRUFu}\嫯5BJ9?9ɏ~_x\qȒlq'nQI j>ǔ0ZU3qr 0D}zF4&BL󦐉,BKs)_Jc"ѴϝN4m C@'Yeaѝ*Vz9aN,Bn TS۪w~$ك_F^pQʤfLRQ&0թ9rqy:aT6ؚNk+"ǥ8}^}f ' j!iv'Fscdt̫Dʹ b@!M@PCH&tB7ˆNwi6D+I8 Bif2cPK$%a6sL``8(3!9"#Y,K̳ŹcwPi6VxIl s5DŻјk ʛP Dd@3ugmG܁PF1;}@3g9\48_936WMx) 6yp(i8m%f;?xXbL$D|( L?nN8E? w#"V*{)qR x\G^BcՋKh S1CL{myի;~e~o$UONNV_] ĕљU`0#DLKB㦍Pש-ٲ^&C2ރ`Qi()VEhZ9j!bD!}؀=1P:iZU蓧{@ٮ@Zi)9כD+ʛ_~v4~y]~gn.vWZѧlnk?"G]?{~}p~Wϑ˿o~wwc38>vӭ2:"jr6=zxu}ik) y!\]z{{Z2i;aHr2W)Qv~SHè1%fC,ZDf3l랇0dfx`L'/{q a.'v@B]g P]WX,'_\hatϖ30$"rtrڗY_}GGO]nv޻oOB$}/lTq~?ӑYDԋV/IiuHm[a(c_'t+vq~1IT<~tGbNꦮ6>|Z 3AKXDB7.k6-c۵vsnڣӻ.TnOo6ݮ??;gߍuݹKr3"/yINm^WnPLG/n=a)xPsSrZ/LDT}ݤ$M[4 IѢK"ZL C7!sݤfU'Wϟ93juRX!_81z`+ M|$ͬIkEUovKXVfxY7TAV(:>w-7Ô08C}E5w.UlAo?nxq[H~Hfʞ *@YB$'ǀ3 ;$ q(. @` wHD"ݝ.~zzo o~:3GCs)P@ 3U L"H`8aRJH uDڵ 1㯮_ f2%}?|b{=Ϟ$(⸩nʮ`˛!~h7oחa~Pgmuצg/G7Mew>z/>pn`Va2][6n<|S"EuUUUђ*yqص])bʪկ?n-I HUUhNIUE!!\R" BDR`0!7 Rʄ㙊jA 03yDzQb{9,<@q%7y/)!כA}c$1R&YL'@KQD&U㌴)xqj8B"wwzUdUHwJR 8tgb|݉8hFe o쵟xZC9ԝ2n Qt҅ Ղ # /}7)I$dN-3HDZ{!&VD (7RƋ%Mwo/^|EđUQWb ABnɛ @W^cY{bd9uX$fA~av^?J?b`fBiD$TiK )V! ":pjeueC%wxmަ)[/AӾ^Kl^yp0wiv/pE1,F#~\* ;1֜3#&lEP<9IbZЍHт[DM_O>gxnW-٫e|wONy'˓jw,DݢyDgJ(`*>\{q7^<?٢o#nxyrѓߵP+ŋUinQ p|G!NI"kUem4MLVr.zJ>"V3dy0ެ]4kyr8XUKᩍB%y1ŒDf,( L$9%IhcX88n3z}TF5I CIgAuSo|ϰՋOi\nM:YƢDe<=]u]fެ֋ YDګ8& |T˘)-A$\ð<9Z,jtݭ׻~;cQMvݮruIJ{!@NNOo+JUSøhkHV)h,ݾ7G]qDzrrxonNOMSm7$S-%QzS7HjaԣՋ'6h3K7f:JxEdǜ"JLe,̬9kLBRnѭn^zG s6c%< JB'O֊,OȡH1JICX`Ǯ!Cs0L;Xo0tʱ 40fʱM̈́1IԅDUE ;jHEshL!t"daB is|b|+!1On`lA$|9ZA&$RbQ#ZGgd?&Z@b TnKW"uASm$BC&TqHG`3V?80>WHfAc. (f 78vZ̝SbzpM?)/0>딹1(~Ne& pf\*|s٧/,ڬF0gCa4Ӈ{xapq#Lq&)T=晝 D"jbB&NPw>"|؋pzpp{`;vEDL!]܏Zn؂Q]\uѶɲq"<'0NT|~vm :MJA勳 1}ރL#՟?{7~qrgZLDxJL9TBzvʋe$ci'೉s-rtdpu荜ߙY%R-fӠwU"I}}싺vU%ПGo$ ghFN0œ&\dzvӶ&`jDwͻo<~5v;` */YSs|g?7/0 ŏϟ>b+w߬WU8UU?GfE Rs_NG}[wO22wz'/eHI˔jTRNNny웙f#a 0T*1-Sλ~ߐZvyvvܶ0 \vmN-qC_0")Z|5E@ H@@"SADCJ$Zg|f"T/7_ kN5q5c~,ExWd_*B5n8q#rUwSqdBIfT&ZWG~w4;qXՔ@.y;(RwRB\#"::ڐa6`賛ơgכۺƜKX őyU7gP%D3sJR WuUrt,=@YMVqׯTǶiZHsΧSBa" з sy4wOR}F$fGU5ĵ;!KE9s^yחGꨪa}* ovmGˊqmY u L9GD&?s# bCeSmJ0LS"r xA))DE>;G05Ȣ EHޯ#QMg$Ij$Q"esl29Da(O2˂`AۢMnEJ"b8?|ǚ SYTaľjFrFtSĩ$/qCwTqWvd~?Ff!g nD>`hㇱ/ENo#v7se␟4ď) fM|g>$,lj:; ވ0(Oe_ :tL>M~߃<ԉf!ϳ%1D?`sF SЏQV _BW94aHJ4{uGUU%7]WnVWUӶz |=ݼ#:˝ɠI) `*9]٬o;ӆ޻mڦu3B总鉙o~pzxzޮ7m9!?N,D.LšH95o˓ӇG< '.%wBlZG)oHئtTC(ˆc!NMa L LD)1֍0BB&dqjkL z<wLtɉzLwOn|o1C7Hh8/9z./SE[K. e܌?}ǗWok?=:W?ɯ?"UգW_~#MEJݿ]-K̛"]ܘ8tH*u]$ZsY.~v{wW?Svens^E"՛Jdgbg13w3+*k^Mr@M1A# @W$M?" @ "ݵe-5_3E>$2}oYVfڵ͝:溪˖.gM1eɄEyLO-4:09h"exK=7}<91W;!Wu}#I%"?|7WyD|m8$dZVHI9F]fG> $u85MslvsG(Cpޥ4Jjy=|ׯw'AU5hȻryc$®pg=%:%Qv<8 Фl}g{7_J4cS1"@,MR ۧ_`22[VB@sHwm bCl`1$όM]W!b`y_Hl}~zut^޻Х 6D$g|j-r#&@9q(Uņ/}|-V ff_@DRz(/\iN7be.$ó7/ Ґ&Zns>xgO_}/OI~oUs]9FF g%'/WhI)b}̈ H͗_~C\+.OyUUy2fO~>#YAn7lZ5u׶]UU5lڤr6>.@U˫W?vL4>4}=_Wa6`b}{Q.5s}IRV1X1Y]uvĘA 58? h9lDurcS7]TG-3U[)"R>>qoM0ˣE1e"r.bN?ׯ䴍)DEoVNf)L$lIDu"ӈp\]1||Ih F @ƥZ53b2F"LZ6ƹ(i)1YBSEṿKD ᡀVe̬ADJ?;2:,pV;v{ =8MEVћNL2đ±3ĢZi2^R4#Og&90O录]I.xk#jU\eYZLUDX"B4U-L@cM\`&b\QVTi@\Ph¹h`v3ˍ8ov y 7$@Uh BP`||&rh+VY`YD ] 71ThLƀAPJ sĄEJ<pz^sf rSkN{(1bVxt||qymYTMKO""4_oD+˹50Q"AY3 }+*kC";6YL]? v,D*۾Yo=:3Y"Db"نAgBm{?Z(#9,WRyƛTL7עY%%&FSf1XTl}ރXC \pTޗ\x4(#` cu:_, Q$N`{D0 V#~1?j]6@1ˇ_|w|۷mjb"W݅~g.p\XM΅)ńמ\6ej6_Mr//.~'퐒lwWnwW*HӇaR(sHD)庩^_=g3U[4 ; \W B;8 ݷ<9ZEWUU1ӾoHLD396.@D"t,<&bg?9JdUJep!`.?zxsw{4o(9L@.N/38s ~N3Ǥ1&`C_da6uۻww1-W,lw7s07i ,jbJrttbw^NGng& p?H@tY/Ͼkm4諗Wq8!t~Xnw"1fs&WlM1ϛPc1̆`KKw9'ScIADвbz!N\Uj6puuJ@q̧ &f@LNDIT)+vwh !bFUQ ]R =MqlY 2&~+>acPUc\ȴq@`rŗ#B̼͂6!8hQB2 ;8 CoHA)*T''* Ll(cή TΑZFa^!  zBf"Df(MfvDƢ04ΫFU1As*t[#tP>"83 & * ;P1͚ Ji(mJ^ \ƪOO{Š0F[/[7((pb6&J1' F [8q0C& C(QvPxǾ`<,hĠ%-'ok*uV-\'M&>DTR>0{򢀿?{-uj9 JR(3,`Jd;@B`ǐup fXW E~v[93u7C$}ve06P1lu>^͔h"RdH=Ck-!T*DjydbfڶwfD3!w DYnI})m[8ѓ'?wRfjLF 4vB}]Uc䃯@\a5C ĚYVjxѮRכ)i,nW?{/2%1~{rtO1/˔ijgvޅєjI//3v@U2ˋ6|]77;~8gu}\ͼo\)yLQ?$)8~z`T**:IsnvLc@> <-;ZG\y=7z}^|XJ97k="N)_ t6eRSlFQb_y 1JK1Xwffݸ'~+jBͼnn4u.| хmǧ{^B4fj@7o })312aDn}.f! = #RZ>xps{󾿫+zw{1 Qۮ8YTny{;GS"xvj1)y3G3P眛-iOAr 9vŔBϱ7|q{wc f]f"xе]tq+&:Zoy|}//9i#a"YBPtÇ}z캮dYftgBQU-YyܬLSvL/RJ!-;?ywSL9y5 TU@$H+ yv]Ů+K$y]W ?kZvVsUbG~nӽ﮿O PX3ZlvuuZ,=" !n~;}41Ϟx\UUw V*ۮ,0CJ̜s%_MD%ȱC@/Dq2Qyޓ画2b. {]U/%?zgs{}L5 `*\r AV*1 7C8'6DvFS}k& !93xAi6!;Mhvv#r$ ;rfH1B0,އԑESz(0S)<>Y.J>9>e`o7[D!l{{8u{ -u?NJqJ` DD :XH^METuLk\{ Bo)So ha84ͨuE)KI^4 x gfn ۃ6r4 ATXJ":W1%wA&BB њD{\|];.mDL<(?454D QU*YIef68 4KfQe*@4M h(y"d(q0E5 $d6EfVʺƵ#6yGc-r>;0xcxMa 2 [P27Y0*ÆVT\L<@oG"sc""1Qȱ1??O"tΑhPfI%(O5DS J!J.-F @L Pbb@E*%>tX6. ''.3'ծh@K!RVPTX.7]'Y,{cCzӟ}Ͽ~A>^_>׋W׿o"HιNf,?_vWG~9K O/fUX۾j ӇOuA΋r"*DU1"4?⻧, Zl>X|X;d#ħ2R :kQ`vccHz3!G^YѰ8(:A-Cx˯¢)b)Cf1q~?9~Y7_֫mw:fY]VATDILйjd3"~6FTBR! rwn߯K^o67}UU-BX S 1Yvjho"^BX.D8 1NTsL.&5h}<~vun~rzcCDRJn`*LI3):Gi}#DZ/CGD`jf)CLjgPfTcUWLLyOlV3j[3"se-.;<9U\Uw!J6Ict yĨ.w YGUcCJ'2S"c,bMO%QȉYaׯ^ysuOYu^/_}W n03 .9>nnsdﶕog?lDͫs|b>l^m=_n gݮ: qZ^BpXEUwq!6]ڴ㳋w))b PU쎚0!Ĕ ujvJBT_.%څגr]נine, i\!:B3~`f9brw)JRΓwĈ>gw?wW Ty fA s9;Zf:bЧvGǫ?铏oqh>lw\rms^3Uիg]׋j@UQ+/^\]m9 Y, 2uCW1E&nlf3B;ODλ2~-q!|r'?VjoY3,D۝HlVW9mN{"p-f5/A1@r63P)8sggmq*g11vl&ֶ;SQcv`jonڮvsX IDATBTg^>-O>}\s]UUX9wM\JjD~Y7h!1wy@LHʹ79g7C]7I$+d{4Ung~p &,71w!-KVUT!FU3M}?xW1 }pxN c351ű󪦚cLED&Z%`IM/=׀vyy>Lw||zӯrsJ`4*"RJIU /KuS@"XrdVJ(NJ;@ѭGD8_Kl11L3))&>xTt" Tuʽ-Z4216xj%YTaLch*-jf]TKXIwg0ˀH!杙\%z!NSDDf¾Do(t#o7GppLqz9PN g2'ӳe9>GSŃP77gʇ(ݫ\LwhXaLΑs,bM:8̕c!)0hA% k-Cf6ns]7~۷Gw|V_>'?|O>ч?^df5ᇏl`ױճ;ٌ_᯼1!r߿|o~ɩz/g_G٬L6u]!GLg%?OS""0zi77<|RN1  _٬9==phulC~NrFK( .Kd oyr}ޅE4\JsL: *q08M=X+KQ}v}фL]?. }9sŬmӄn}y!Q P'DeC2#BwQuZЬ9V,s'=担fmr%lZ YFusDSU12ryHCnPa6$l S3SWZ,t~vfy׵1zSs)Hf/c2CJC!}?ե;ʨxbc!0P_?4fT|&Ռs+_:v) D<Y]ULzkds&컽bu$9j?Z-(S$tNXf0 gqLèCpI?ad ōB"e"H%hDo"3awKԈJDAUDLcs o a4/邮4PV5f%Dd4&/"V scgQȟTQJ$ .>75&s@0o"JNk'ED6PAg0q'rqD~{"%_R,`>h5X,d <;n7F (ʀ +P&FS`]+!D{h!wgt~0ONNonjJH;ɑkx2;oE~}s$.1₝V\7U [%f݋?|fFi&G1h~}uSb}U =3WlG %)1:y5C?Pas2߶,prt}*AóӋgs, |1_}wWWnvx(wWNחENpyMJw?z~wݷ~7ٳ/_m}gϮ7=;C|yzCSyX:!h1p&dvόv/zѣɱu}wRnU\DsNw;n7O>ӓnCUHn{nTRIYhX۰~q|:s~&W7]IS)8ʪ9-G9'D|@]u ~|sCI O? ?딇o~ckUųz < TS Cfv%_ߌS^H f๪>~իWYW~vrL"|%]]76աif1|w'a(Nu][k 9,dmuKDCY¼Yv{hUN7yG|է!vv><{vd )%&&*3A߶Lγ_v]Z"n,>.MoE \*6w)&("TW}N?\@PvP)>-?@FPn D10.^ 4-}+vn;HDP!},n!rt9q8_P6Wj-0b rw_j+nY$3GL";O8r:t`[T2  YkI-wc*uWeI#4D4_QC4$H htME6ٶLfVV{{lZ숛[5H9'NDgEcEfq굱Kmo@#UƜ7?MoiaϸuL\ʩ$]P1Lx ;8 iL_!qTNjPuLHf673GD#1*iM35ˊ(bN1OTOd Z(%>H@B F0/4 MjhfQ!x4Y LT5Ocy$X jh{nl=3q4UMXɁء@lyf1Fq%P mP=$s>6냽MSOf gmԝ#J:*qVLܹhի޾xY9g'_xjS]ZHuU6U=^^^zO!bcj[oczcf;yZMe.&}d:M^5`Q3F(sH!F2(1gΆz"eh]̂Ęc~v~ť}g^ `g=2CwZEj??& l6id>w?ye:?sWw~կY?{Z,?7 7]:=x?[6}?_<|T!F+|tMO&8NDڶf,P$$m֫6l3Lˈ_$F狦vwvt:s}0}a*,/ʒ>6M[ovv]YV>"/9zry}#rރj zsM HC|=4QQ4(iS3g*}uMKfcc3ʂbv2u]k}pǮfjZZbX;6s}/4ytXIQd:b%FQ's 1N'^ͱO}וey|vvsh~w>7˝]@vvvT5ϳ٨ىsVd ,};(3x1RˢPQ96ͦ^"wW *!HӶEQyIA${W/S0Y{N~VUj9g1vmwt|l@YQ(Mzr"fb3Hjd,(?x`q}*_*<*1 0X4:S`NKoj#J;'3#"(D3jb֛ bC3h}L6]kbgU5QbJrfPdr%; {2Ӱjٷj*s|WEv*#)V"ً;>z?^8z@ ĺa5PݓA}׶v,|n1mK HDvHcD^hfi:&jC >T$v{D 2˙1{2=31 X:G""=!"hpj;_~ENg|2o7&9s 9,+/?x,|gg_}-rcl/׏=ї?7?_b,6Ѓsy6]\\{1_>?=sfNfmZ ^-n}ѻ7˛"cQQyH]eөnXIEϯnK+'Ӄc0(@jB>kp2=}]/ɤn(˪!VlX\]m7,e{po`ow7/JUl>i˩fbٴM"b<2wιĎ,,bbteQ%vvIGUр-U0gY1m;*UB.so7Ǿm'O_NнvTQC@|40;D:>BvyQGNj幋Qeׇ40!K0ȳi[&0#EӪ2ν7U5&g}n6%A3ޱCWesFjmbYʪdB1v,hf EQ!dvkk jDrh@.w1;}L8H,;o۾c^6 z `]SԽQL&YSMV愈 *ffjpȌDL/[ D "־Cmm򖰑shh :Q,˒}w߁F̳`o4scJFIg3ŷRj;QYd>3ʎSQ2@DdӬp/U H.-CL1S!p1_C!G5[虄ch0%eIh(rPoA%u6KcڐEQfh#nI,aJʉا[߶& ђt|tFR*'F!A@FeC$O5IG@̪JD韧6{ 8$5H zmmX%d`é{`^tQ x4).Ȑ XTcri茦i@d?yf_DPnΌ% 1h85\Rz*G #% N1,&&#j3UQ>y6,L)̎`%cbw>tM j#s=P@L ćwp}xmͦnJLQ>X\׫6ζ!#2ätԡeIG|jxb\-Ͽ|ɗ_?d9 IDAT"Ǣw,Y%2sB#8,< ):Q$uHYQߚbx|tls_nBTjs0}92GY>˝+ 1bD\i=" 1h7חTd;w|lݮn ˨11$S5gG[o6^_\!(&\~qN =v]BW;'ُ WO~w>xŧ|ZU峿k۰hv~~t!tmY.WVCS12SY` H:d<ϺU.#޾F]֋*\~Lmo~DBn2-& "gy5{Ǵl<}:N.7]] \129fGL"}@5UM=A 1:Ǝ"A42c΄Q% AeYssZP=8 19nEѹo..omt<}>-ٶ^m׵wf=>%:b c91^]lk㓣( ȜC_k1 ۍwHQb pmT'մiUJ&0$sLY^8<39XUY!@U{QE噝WĖ{WEδ'E^;G.'B|,yq%MS(j`){((䄀VB e>SKr$Mň0T>Xmnnnw]\\H`6ڬ(H/i9 fe&o$UK#u@qcr[+9p^bEKb8qNh:Dex˾Ŧ+@l1KF=0_ǫiÈx \m0Mynx]!`*A$1\u-O_L֡C@@M)j*4%DUHBdE!*@K$HLWF؇005#fH#!b_:+yQ4əAtPQm5]{uyg>S_0j\D_|kC3/IQ/bT jBEht|uzf/.q^mHl:j[e[Iuw~{_ &.yLM%R v2SJD@XfÃI|gO(:b-2ʲnٳ693#"D<{ʋi{sȐMP@11TyMDQW%'u^7uaO^< EE1FPe u_cdR]<ų-;sz~Ãwڬ6*|{]]}ۊFGf5M*+Cm\Xd,|PcUϫ U˲8;> !s_=Hjsƾ#{/zu81DeY|too6jۮ*'m jRUՄ9GD&i*fꘙR0=CV|/þiS>1Co*lyR+3 gw%6Q{5h;Y,VyN3AUT$q eum˄!uM$9j̳ 2WΟk6}v'e^8Os"s]tmkcI9-y%j캾9;{-˦mvvB[.4W1JdLJ{;ZyZWY?xcJuDr@1 iU ^KtD`i &`SDbj!8q$rQ-zb" "" HO&Ħ F` i8' 13`FPHYp JOl0@U1$e0;4''DR*OӠ¿8=>C,˲jqo݊5Jb!OCq?",HBL!52Ք{hjj|vRPPnܛO=k8S ȈĩlGކJ{oT4&ؖ1A7=6:yt)36pNc Qħ-'aKˆHH8䚞0)/Adw9VS` @DZPAs#io@)@ULrRغ%Z1]MEE !Trna6GGEzg1cD3sHj6*S*I>!{6?ן|{hM ~Bl6ի}qmD`>?<ɏ]\/J5F8)V}??{-J0ΪQ 4M3ٹ^10cpy"T̻w|zt@D`y@DĢ1Ģ:oW=z}$1$v}(DU}>+j\\]ݹ{g2)_\sBl3]\]=yd:޽{=ԫg^۶;ǽmU}WݶS H;sY;C&]Q2%Db&SHD{v.ZtoZLw&;LDnU{dvb3eTlR}ɬnw}gz>=;9>>eD1JVd_>~WŴĮO7/^f1 RDvXRd@TRLD !WOh̚$BpDYhVd"BDy6U[]hW7̈́b[杈j6BFm۶]ԭzQBgvM#Cu,J(vF"1Dvn ul(ථ!2yڦ:ƻfctꦉjB@!*^ܝؗY٪2'(]b"I,A~3WQDcϝsj`]5ty~;WMf;nQ_EUo q?ð~\ETyqCD1^ݙ.f7b7QoC^LjbV>`LccKZ(() Ls0$"ʐ0Ąh224`kIA@ȿ7(%"YZ Tđs-v呦Jˉ$L[ 8S1UFށ%5U2svv(Vjo^a3 Jy1"[R8Vn)рRYI1!o>#qS2 /on^/c vº@7WWv򣽢/wG?Z-v7//WW`PNnxu[Ŵjc;8bo=x/>Z-L|Ez5y fb Hd :zo|}g3S٠*sBrnZy" ؐa^M D feD4cF4143IFD,/ #PD]D@}^LcE%2>{~m>|w^!R3O~v__-vG||}}_՛|eۨ]]or?~T.Wo_~"+qLEYjmmϼ]׭׫,B QmSEiQR5s5qgoe圛VeXsɴ*YUm;wuެ cjAB^ogUYX6\*B0cGot(88@C5C yk5u!F A(.ĢTc]oE#3}+ҋ>C0e0o4q:͒<*J&糌IngL lG?ӧ_}tv@W,Cu͆3}!h1@;5y Q48OeY]ת 2M|g>d2YγdL^2]ԛt3IUh٦=˪j2(-k"=`*r`syMg{K\uI>)E2/Y5BY1DP ew,Hn=;{Nׄ~iD5 nvvFfgWH-Wz_]<5I㽱 ѐMp`LM0&ŕace {o0RGCZڊ҈rX;DL-7DL!r`` hjB)X 0*T[=XJ`. AD#20I~LCb11!%s4hprR[CEݒ -m-@* of:5C ңzn_ނ2#D-4y(LE1q A[im M QH4N6Bℋi<FH:8bԤpIJ&wPxiUiP,6ƴW(!?^sdu %/*iYg"+ƾ'S2Q$2 p#1fM%n ]`! /@J 9-JJmL@ٳ19< xf5%BGS*yHf.Jf[<[ƤG7m}<<-N.믞ƺͦ~u/7]^c'~zn7λTT)"2O>>C-yGTd^͊xuyQl\_gg p~t♳13!9o<<*!@2RDS`^"Aߵj& j"YD#Q3!PA(*/ I(Gw}l9Y9bLӯ> 35'|~t^.{, G,mv14'lm~۶墮{3 ώdܽ{~xtg`VW7YV QC_l2L4zrwggS:3#NUN'CYVwׯVE5)n $h15M=N6IlVUeɄҤDˋWPdw̶ɉtt6!UUj }߁JyDAԐo#U&@N^+['!H0ӈUۘQ(16mb{r^^^-W v ]icL]w/;1W/7ٔ>|zެ>֛QkzFWm]NJ+"Ӿ($B@ȦjG9~w~_~4|C$Z.nv{y";w_>m>09s2/ݿ/uZ.6/_&7]k @TU&"E}O}w8ސ"(2s9{onjb޳y㣣zQl>ɋ/y;l`VecD!s1ˈ<9&ց7!Z|4ofl[meՆ.Jh43C`&H43}pz|v}}h*b>>}Uǟ?z뛫6_#v{|8ݟl2ϦW/ ώ]߽ѣ|,9"7g?{'Nj#_l4g}?T2_/̜'ZX7c*3T!vX]W7ʹ_xqzrԵv=+eY&"12)Z4//E53u<s.kضmQλdNt̪/a4ʊL ^x)*ETŹL &2DTۦ~w/^(u?A[-7~WN"s8h’ -cѓ B c!3t4&|؁-9DND0 !Lj ""#8Di mX[3C"1٧%( IDATG3B"#1!q0Y(3fI{v!d(C#0JUI6rKI8Mq<)COTE9,3X i IR][!0Mqs*k#6z187}K30$k H26`tG1 hG~s@L.&^zؑrfxA d"<mmox;OP9e<)a(U!{tt@6酈X2 Q.O͟|ɿ_.QQ E O44V2_@M!@GA\L?ڀSs!y'c}eP*#AD̫H8!EJr3#$/> ưnj312 2(tgO<~r7m}|usrqwm{~BY C1<?ODڶw>~_w]AbTv|v^,bm BD"se8GCnVes+9qe9j.ϻ'I:bD̤''3:3C@wĈ9]1TEq^#RCh>/zb@*XB%Dh(1:{BrogWථ6] Φ}h>QfLNھTԨ2.7|ogWOi0\|R9:ßϞ>\\^\u=)*6+,{019f&(|VHwblRH,sfzl2)"B6Z,>BץGBY<&e}ɣ㓓(ws9<ϼh8? qz3SDG⳶ޮ @Cl.ރohc!"42$2iZUc#2//fBI{&,oa>+Adu^=Jdw! ڼe%nֻS[7]C`4Yt+30Z3~]oPiq:+DN޺7M{)rޙOTd^/cnm݂AQ!C9mSEӋ[FCue/l2)oWEQjM(``*{cJvU91ӺٴMԛЮWo^l7W_mE9>9=99{]0MyV"J&EmDt,on& EؙWB>O: Qb@FJF,w@N !2,D t)orgE`7EC 9Ln+tL&Ym,cʉ 4'@&d2f$h#1Q`!Il4f1 $OD 829`{@@!7 KVJa0` C;pU1ux`t3yJhY=b S4ft0RJHD_PВFy`i* @1! X$U%.vpȉQj(q:i *U@Cbv6$8T{oۊߜEni?rKxyL2 PfõS52}8+nCoGȏL@E"7U!*$%(J5U!pPADKYgY2sHQ=LY9&R\\\2|Nxvzv|pٓ׫ӗ/Ύei5٪ Ǐbݕ;z}|vEL''xtx܄ -#A@?yycV_]5DP]V!8i; Q2O'fD(flcܚ{˫4OlTvC6! 1Ky "G{Oyv4P4A>t_/.ob @azhѢ(` H,"{Ywё "eaQ 7kwȭ*3 kc'F!E(lfLOGI?D4oz$d2lf/$P@mU]|(+7Ͽ-ݣ};+@M]סiCSzz|W)G~yl_0 cph8qMON?xݬDՑޟ_~|L~7kBׄXRmUfe% AE$٬_*?,-"z'bwh,M\\qqnhxquL::>vVUaRל'::9VqdsK,~)R;p$\*Udjs>70ccJ@$z=23ޟ_o6bLiw]v w?_xB=su}o_z*E f0kR"9r<rٴu%PJ$VVqL'vPqS4w\)C缉IVSKD)7;FaLm&Bq-L@Sjp{sc1۾0$gǪ{XɛGG4nA@TMlD쫺n뺩$jc`q;;D///Rv|ιjv]6덦trl7DTށi`BOR>N.\,1Vy5R Ɋw+۾>TU,9nu؁+bWSRF< ؊AxI\e"4!*0Rl0E_tk57U&W;pvP bӴq\keC`pfɠc0"Gv%J/l?#A0$RA PfƎcX8ߒmbqΒ, dX@!HXfZ~4SRfٗPPOA {q L:^7cwأ[gn 0BP"Vl{+kY[Vf Ta۷ Hr2YȲT73Xʈ'Jhq}$"lFn3 3#1" `K%TL!2 !:25Q(&* HE+v(̂8Z&0dK{G1҈U#Ɯ|e$+Gڃ]SϮ}v׿8~깷ԄP%&dz\~?{?;oa]5nv"0.F|Wij. _0Ag@S@̬ C43O,**iiGaAZcNFD'}cGJ :v8|<9fdgJV IA|Tv8Pp,IU!^NcT馘LrBB%K)  JʅJNYT 2>xp8@p [\)#ߩSBL}ORg'w..?>j3|՗{_RS^_]9|=NJ=~7ߘ]*4榮wBUUU.48_sWUMħggu՜m1gO}O(lj6]"dTeyfd6}"2!)ӧ\8=%PV&UC$IDQԲۗ_?q] $urڍ9߾ l!ԅ)]iJCkNjNG|7~n#A_1u=1֡25%1՜$M͚}T(٬O_))NmqȪL$삫*w'w+Dh6&9kb uEhLJ;nV'=qiJB!c5#A)&YbѲs,\Wust?\ߠv"/~ca٢rb1MsJ)iǔv|zWxf! 8f=(~šmWf}0$n]?nŬ&N$` l:!ʦ1Ƃ x[Ubd,71`w !SY_`yD-0B@V{߮!R“4=Vƅ2DSgϮVw~63)4ZK*d .,a6"Hh9Lmq޽|z}߹x_%vww 4h\@&h iшbG7r-@rn{?MSUWÓLճS8;TUv4Z|=3 a aR7=.%;Z.ёq %ü>}O~`.)8Ue(fљ g,]ĆH?"Url{[,/(rC}PqwC5tTPUdc?)Gdo.W3"2Ә$gPc$ٜQBS?~yvQz2\^|!n?>.?^=O~_~^k ^_4?$|oVj?|7{wnvdz7 /^|q>==zw'Yvs60&ΚyC{i$vG'2NP2CU4bZ3.J%))0cv/;ZбLGUS3pL8 =!a m]׌jHE QUn<}˃bcP\I :sA9Nqo5!gr;1=:>Y{L{A>/3㣋f]-O#n^]h_+O']uouTs1EsιYjcw7Wϟ):5\UUUUhjݶm[D4fszzBaK!0Sfg]Ω)G_^߮7]! Q d@BX̀(5EYߛDžU;]`)XV9NҶ0ȔEڪ[Ԁ"L8nȫ@cqݾG/^ qD亮~F<ӓۻuUĆ痯ܮfU0""CGRBվֻWo#cl"8pwwiD1d"UpއRf%`Hs)rbf"qJ}ǸETMvxw&rc5aqۮ+sG%Cڇ} 4P,WxA}u($ۮ[1!Qӷ^^80`q㔲'꺙)33sE&a8== @$#C*f6ŀȁ7Qݙ6+ ,Lt1\pʺb%ѕ!S߲RDdS`PhYZ^=%.kfh*2~1P2+!ZLЌ4M9Gh(0Q7ocCypHK9`zw9x/+[KPde’Be>d{35=)  (&9 #Hj~KuM%{nfsƒ #W{8Ӟ:~Ȱ$b{5} LH9>\PmX {n339q-{'fR@WQB2͔9*JIO$t.T_|?g˴'1LAQ|Or\IF9h{3S pԨHc/ *!mvKH @ID YDh!1:q |?}cES_z7tz|?9_=hnn?ͩ ^F؎Ϟ>K[_8 LEC1"CjmUľ2$ZoR4Ţq.Nkv;q|ǩ}͒8W8Ur35MCD)0$8ML89Ti$db&G zrv` hٜPu{w 2s}ۯv>&I9u4Z4U*hKJb1dl@wB_<춆DK4ݮW9GJ9'U)IUqDb BLS˥s.:j'PF E?C"ܞ(tuQf_YQВ{~J|_EފoFeJA*0cKw4L#i-Lfꜣ™8d".>u-3WC8VKlO퇶 gTߠ ʞ- `n4.g?1$ޡ'VRǭYVŋ<{v,4>ꮛ)E=LQ0@(fBq>(<41qyX2ƽ`"10C"!u(jÄd8~98@)~^d=(7S5Bɰb&F&b_sa-AI?b(^Kio, 4LUEL! fM[+_,фՆUܔrJDd`~`.)bzڹ߄z[o#/ֻ!pwO8,[ZLmN=s~5~y(0wG9Ƭ"o+bڭ8kԜܛ+hM1p.zfO !qYMkb Jj 21G ?H{r u+fkB8?>vvuܭ_uձs:v8>UB*_UB4 5{iɃ?xOK/nVGks)9HUڮci"9t\"`LE(TEۭ'nm[UuBN_UcbJߝ(!f3ӳ*\j:;99Ј>|xvnטobn5M.eusFQKYSYƶfUCUv;F]?7߼~>C#bjحTD;ɶr]vm?Wm~ij׶ZdRL=V-]SKM-+&H9qsᣏoPdu]u6Kdc}eFΗfq*J'{[#Q1/Kaƶ˓iP  5w0QϾ{()BsLVSYج u }^ƨqۣ"7ޑd$4жRLHcGd wv}mlӾôgx}dƙ,2չ`>*yp,223GմDyV1X K ۩h!1טsC(#by=.KQ鵟V qJh1SS)b+J/Stt% p6FnN69C_`_OMn\F%uΠ1ly{oPKH M3;MB1-? 8׏̆ñ! `R博JCA\=k&2쫠s< 0 F1>W22h> [z~ruhߒWsf#O4CH):! 3W*ePL[;=90  f 1:.@ĥPRrHN 9P U=G"f%#X8dCt!1'GHV<$q{y9Kꐦ)S`o0~l6j}i\?ww7/n/v8?wq_<3)Ę&4NP)q0o}Q竛 ¾߂J2!ij;߄<~QnٺjdgϞmWg'gu]w?Ny:ws_B&4 `DˮKYooM7\__8uf~7Vմ>xfB`v ( )fS"u v .̎˒z^V)J>N˦EWYDD9vѾA?].)eB6S tDtvvnr!<1 N("9#deVL,6;bvĢHp%vG;99mi{D8o4F)P;fIsa#0Snq1 [o/.Oс(lƛNU֧ԯ7w˥niXvj4YEa`Jpvzɣv!GnEgEL{fY,ńH&g8 Thra !.U.`P;` 9Ϝ]"@DJڟ{_pw4S1ixi! !V:`38A7tyvNcbydwgC wuZ S;w]w8qïLCK`I~L뻤?IPL{ $kLb__evj;8z]O{c,4=ˢD?zsZsSL+E;`hhj䘘ں!0Fh;/^{^ wcCS%M3 LiL MsvˣbBs4l9I,jcCMY ԏY4ND SJql`9=(3ѱW#WUs>;=9yRdYߞ_<9_'?Sy[STDyvD5hvZeS !y/bj. Lˮ]omN8Mmsc**9mJZbB"1]o6/N/^}zEØ$߭[,^|郏ӴYofX,ڶ1Ϟk!qoEW"Q ;*ndE-Ü%Tu#q18ׄ^R 5AZ54!{Fαs8U!^#$4N*)+ƛSOON:33bjj=XU EX4j;"%I$<v9G7 z'9[\Ӵ9Dj΀SScrSA:M2#NU)íZB$޲@hbb- #eWrѤ*Ig0P9@9AI*̌$gǼ4NZo=u9via{Xt*NL&flxMF"Crb!)d0K"UWnD5ݳW/_܆ziL)~Vl;DĦh9_18.iW4FdRFb `Ӕ2nv4 14H֫4rqun d)*Twɔ}hd "qnonʫIsp{ͺGR$0xrF'u73;O`&2cvb'B?4NÎو8vmN vU8hB>ĘCi6N1 O{nIdaW)KwU;XC8HbA΂+0;;{KfeVfHWf^0E,wϾbLMWeUU (z/ǀ b>;ylyuwŢ-wWtxfa}Љ0;w۶{)z9mۚ]*F)BȪZR4G=U ]|qyd7=(2L\}L"з}6`|>q,YGQY̴(8qՔ̶܊ c)?'`H"@4e?-!%Ü!;Z)Wpf,+4%TuID$:AY:jٛ [0-Z`<si"{g톈9 .˔="1r~ǘchv8S9&LEjpyl4͞N14Ɓxg+MSfe*8l9?XpL` {PE3q< vkeeb;LGUe6um lN.t 4F3@CB2`B2hIFLV0V>`̡?LǞ=8獘lBTfcO&zVH#0QRC4 1w!MiA):xgwWW1EkO?zK_ˏ(\|Q?\6?__N¤A~1*"jهϦ_8 ,vH>|4U@@\R%2*4CYp=C 90GӪp98*O|kJx28ǞI`r.(3h^>' IDAT~>~95.]2%4SCK*\8lYUdy _"DD$*fw|pJP)IEX.T|(yebT8Yճɫ/ONUu߹xuQrj$!9q,eQYާ?'ٟ{^=x`:뛡NW/g?vn޾ݬWeYUUT% wv===mۦmr, ]YV7BPzߣ1oۦfc~AQU;!&}UV/ާ(f*<ګ}mz aLPc$e Eag&!jL)WūH(BJ2$QloKM]QL6i6; -BɄuUHZx Cyߦ;gwDd:Iqi]6mSH`KWA4N9E#\91,!L_ 80MtH FE|Tb9?B.51, Uqj!py?8!3T!TKEZp4GK?E4!%Ŭ-A9S˷WWoCfi5 (2TWU״TT.˂1RJ1EE`w~Ct>nVޅt!j\%Ia5Fǜԟlw#̝1e8=wPջw66$MQOpD H옛>U#qQfCXW~9DRb(_ U;9=͖EX_#\_$aY]Vm"H? &M).81!cr8^UDe>؅2&! IdctUYJHo.J"VbۦY-ʪTUU]B00眚 CUHDC߳) |: >ŴovU]}$ )(vYӴf}"&Q('1cWk4<`t\rdR!Ǧ{{W*](2BݴRJESḦ?|~7jd%^*K5PG|X v5BP1v\RRPbMaaox\+ű룠bPs=:0$j TS2ӱ!x_%(E"'VE5Lp!|/>у{%ެ6/Wغ嬚TVi뛷?/_f7!I]wu|:}|0_oV_s#n6>!UU3dZ6+$ Ο]ZLu>yUUfG}YެVn]]ySÇ7uQ_} *"/_<;sûu zR2IFL*ЀONgӻ"6DT~s@0 zZ_ RTR41P>iě.b1nwM3ۮ}mYt66CogbXuɞwMtƄeqPϊSn7+ Ȫ84]5>PEfWX'1(\^h`@`7Mf0 C̶ۍj$4 pȮ,}J]&oQ Nfsllߦ]}q0+J/b,"8[S9爳*ؼwj̱gP`@R*|DEVd2Hꘙ,9D옙HTHco= e5=<̠ LP[V50q@A%&ڛU`2[VDpn%`ñ#+5OUt$ƈ\,s(:L68ζCA(4 @r1 Oey$3TD4=g"Ƈt`wr{e7QYcgܓYҌ"r392lc+{[wDDdbb0(J%gFL GeR2=vw<4Ӭ,;P5 >G7c+*&'l1݇[` c6sE-W9g_LcmFx=!kBgݡ٘&T 5;U;Gftwd,7Y&RE<֌hltdoHR0h 3d)>`1۷\6 h"@Q&E5ݾ`Wb>j[4h`'e9ѝo\ n/?׻!}Z}G'i5q_t`z2nA0 js~\oV۔If^dw* oNNˡ~'EQzO(.Y=kKE]&)%092ߐTP MB% hKM5 T&IYB5qU}4"BHC(D̎A ly``cWrUUu4|b _웋+a2G,?|;h#<̧Ŭ({N,oCjDIY^|Ipd?N 6Oܻs'%3z=JB߼|>Ĩ)\,ΝsUf/_lwrٵ{'IVۛ~;_!`M Ϟ=~o{f~I٧yslz/EQ$}יѲ߷?DiM5 Cm]JG Q ε$bg@`&d#f!9.b ,j|HCJTEs\nwi=I m콋;i6m.m'CIզ߮__1H„|x -ƤŲk#Ĩ%1! Abb0s.@"yvf|1Kꊀ F@4yMc{DMgƘϔE]Qzŋ,FiuO֛|usmqQkn.X ݦ/:ƴm(̮&69\(|v!X(I]ÀEFtqvy>nf0|oӒ^ญ\ 1vwN͹`(JQtTe~ ͎N"3)q qnyW0>鐼Lt r*: 0!i^]!%Q{lMA6wAR4LIJp1#RF0zH?ۙ{r;(8gU  (z`݆ÈToN4$132UewY80rU_.0'%hyFx?"0'4` >{z{(7Cn`$ghar=>Q;Ma F)hǽS~ Mr E;9o"J1")@0Q} ̎YS̜t}5YdQq`4U/!&&f9B"hIƱ5#!8FE$bQ[7̯j" ׉BUwmnٯ "6}n^]]?}D-j1wصO>]O|rw(g|/O׿o}5!:~ ^VXbEhn+}AHfyv"fDM MLƭD%FILj)IaҴ]mqH@LPI=hjUQBìΧ3MַrztpaZN v )9BUֳi(vw e ~ˋעI&|-:\{||o1vݐbg<}v;;>IӏOĮo4Q9/\!ew=aoi^m\nˡ<ԧ''ˣc?ۗz5r62*G^_A,f^Аhd}6vo FH{$Ǿѓ+FAoӳs?5_x`ܷeQk$j=n_)Wd}Ly[ADB!'2!"#'Ƽ E4^Q<H1WuLNU(|92h";:TQmvk伨 |͛dp6[ubƨͦyEtؚ>ޝL߾}ROÛgO?>5طj իENdI&z^m9`3ăٛc65dnIшُ?hx{>$M1%P)u9"}wqy*`Zzբ(Ȼ{w/(.}$v FӦmEggjhf;M*f>njS'4Y&@t&&$"WBh@D1 "-)1om$)).r~|rȐ%#mμ^^(v:. RYo=~{yFv{1&쪢 > CW(g>5g>mw﮶Ozby4[L__<{wOL4Itn!4 3Ue1r $y)*].u[]J[N` uL-aI9ͦ MbO}YNjQThj/®6H&d3;WoW\^.8II6zR7>@f|Vgv&% }_a$U!gV)M !x5eP9.奯t:.{9oj٢m qyٚ{Q1SFH12ɤ$tfk&}TDJ]۫b^͊f\y=P@:=;nvev/:튲TiZUEFI dHi @_!!IRl0eb"1fYĎ EsՍxXneJyhc*ߔVRp~Ϩ _ 8c,75Kx`5YU 8#Sbl'F3exl9g6Z7DGDGYn0) Y^1 XJ&;,!057/{훋';>{w?`~?{_|j hcDtãǏSL$eKA߻b*6q(} ?`^]3QU< ,BQ":"Cǹt@x_ok>{ˋ _h"L<7mKHDc41yOOCkC$#HD,\h&fUU1IJJ̆nIbO@X;Fd2!Kmn5i~yt'P'gtf$!q`CC*h~Tt2svzrt\b0l5wϟvYu=d>>L?|ND 1nTQḞV}Ds} \4]v)b^`1l6ΦzRbu}Àgg777!6fsy}UYm|.)U |ݳ;w9w<շׯ^_| /^]|Go!_y/I0i~[{9 $) r(s4IQm;mw]Dtj!DU]糶=;7$[myҥD1Z2fYFƬŠ1%KQOs01wr ogP4$y!> Z2r:4㣣="i=;,ʢm|[7ӉTUL1I*`fEQ\P `f9{!F)Cw}}#aB$2/OFUBL$hBnGHλw] R(%vfTSY}hnSˍVfc,h23怺̊9[M(}y4.}iDS#!WCIb 1-9`^aI XTI<o'`ȈyNeqi$@2bv `tTS1 4gfbqvłd? BU(i]jlh2xPRگthR@eYy`4t0 b|qG_|{ۻwΎq[?d9\_}7__4mj|~yaf*v^]ǡ7{Z5Mӣo&L5UTxo) ![\v;HQUwrRTt6I:ٴ7BH{7C'^ @޼V$r9M&E:|pE9U"SJQcST0wȥScg}䨈kOh.: :dbTQNNw~9fǁ 0uhf#?=_t~~ԓd6ݻE+>#3NCdyT/BDv{jVSso~vMU\Ve25rYwm >;'ˣӓcGTU!W}UQ-'9xr|nOONpޫ/.M(ʻw<-c"vUY㤮1'Ae[7;B"d3Z .0n軼2;^0SZ']uidGwvסgzc|Rm@ !pHуy&-BEnwYcem\,v]H{F3(P臈>CY1ż2}רnׅj{giMmfe('&kTTs8T TtݪbN3D"ܶMQzz*jj2EYMvoxuށB#)iӪ 2MEKYm&mw +j{&U<#B8E!Il# f|駯_|kIE2@FPgH3)@̲J$:h4O eJ|\j2Ta4ފL25 @ T3F4r^5e֒ƀVȤa HN /2cOnr &2"8dہqNDٕ|:iB4@JHGp-ׇ-'y=!a8komH5""0 Ap0Pl;c>- Ԉ2hqKI;wr (cȼ# $1,J:Px懗aVO գFMќ M817ƌ@JlI"XM2fA# KJj8{#O \}!9*AXDHT4c0$9D$eSpc(0CSʵcAȕu۝@3#e0VHB{|bO߼d o/rV,OO{GGۿɗOO=wX|{{:bj(LTTΡ;M 1&nl7LjDӏ׿Of>#d5I%S80q yr>&!8{\X2~}G9k߾xrӵ9I'g( (5c'衷hwDpi? b)%dU%!bdsȪJ(Q<, O$VUJKt̓~Wb~ b=&dDCTz|ujݼx嫗CJtTիe>z{?ٷ_Gu=y 1YPW0$DG|rًZ+٣7|;dos@|}gSt?W_lWϾ1g\6I}sw_W<|VǏ/[ !b1-˲(CΗ"$0CC&P;^5~g"C-Ǜzvk7jPCSi;"E9ܬ۳bדz׮W+>8ܠF"?ɤLQP*٣C+=NW뇾g;V;sIBMW f&!$a(" I D04mWP~Xj0;ttLH%rv!!2!@uo0&e$Ta4bΑ# ȌυGH5a:; ',gt|Nv _Aǎoxx8|@MPy_;O߫C˜oЖ}#QG 1iXcM~̓u@TE]"JV{fMv$ٙY=f&@&k؋f8/WOFzҿГ&33$%gHٵ( ~ps}|W'Oi3 O{}Uw"iuuݥaY2l!T9dJL)i=t]קX$+~99C4o/ϔ_I3I9VU*< xRJ9Kf˜m],#dB8QmCRItZjt}bjf"8MO&UJiT0 <#s0O'f2Qϧ9ǢR׭j+EdbFΑ`|\.)B佯 rv]=/{c+"Rr0* P!p԰#eU*L8 MdĊdPj#(tci}.AAGhxXUr9a Q䊄esNTE23!>KBaGG/LeLjn=O1 Ќp,*Tqʴ=aHfFDG^"0ZA\eq76;pfˠLIJf "bf4&eVZњ/Ѹ>fde.dž83)廪BUq]l4?Z}!c&D-?཯c_|syn)Q(B <*!<jniMxK@ DT3BiQ0+^}]zDh25pD_>y˛msNE$i"A7s5fAl3V܄ uUll^\>ŷ*TrxY%,Ȇ ~wg+`fYrVAb'eYFM Y&f r PM]5'A$ Ӷ*!۪:D r?aV,`"<.\]^__yn#\8ያs!"R2KUҳ9:P޳+ (F}LQrJ DTJ\Tj=@ɰvthV]i%,dȈT`Yp" ee*2} )ÀU6,zvqs]7lV53!Bᝯ;v<W_u{޽gO_\͚bVRն fr0,*Vʅ?9=}n~pp/T1PЎ;lyiΑٻwWWWxHݭ//l2/EWKyC;G'o>Xh8xٽ{xs7߾r۝#q=}0rabbdwW2f1& BMcF]E@I&RrLf7ohn̮FHMsҡLZF.]ӄ'$]v|W7[N)稚w憘DJU "e1!#bLQRBcRI.zbH9i]eHuUqh*XǺdsvۮaݚVn6]s{D p8 ;""DL!x,*TGv-ԕ?X.//}'mtv{*BC7sDvUדj]rmU2+nS톙g]?l[bU5s!Hf Er*1m6-?BRCZ=)h]bU<#7c ̀M P]fe2<2PX",Y<B%xhzE쀦ZP"3QS朼0BR!cǮHr(2CFq|P:ݎnY)Tu1E}ȟQǤP:~$ǎT`7IzWB J\1T}p"e6G]q #'w?mEk;3Sy?_ ={K;"7ďVxpGGw}~GG&&\!X '(Q/ ӜI7e 3g#kjwdܿXFnp /0"d0d Fτb_U o`6T4{ݕ*Ē㈝@˻z8n#3R|ӭ_WcSz3Azͻ2h+ʕGDDTL5r>[ul*r%$L\CCU%tfg"Hb YJx -x"ȚED 9fOγkZLyFޙ|ܬ9&6:dM]Uq47LP Jd?~v+ËׯO{懗/̄̈(ÓG&֫?qιA)vm۷ۛwm~PzbbA)d6sDWWiz}ÛWɴ ٳmSǏ u65@nۉ4_̾ynnj4tN<L'STY0 {OypH&a;>v}8<)uv`rΪ 9g*"crׇzMQC:$)!h!"ID2Q"d l([F#g1r.{ѽv'K@#sNqc'n.8榮VoNCsJ<8"_m>vuy~ypp8m&Łܞm"Sn'?M9fb_уfu[P/qt}{SY۶9ypj1hΉ*vUզn1;!YvC}]ahyl+%1$8*2+}[UVC]<ʲ C4: '=BU3HIAmbyr$F^4ooy;6Y% '$)TPʹ MIq@dXTR 砒RD9JUK!7PWnڶfȪ鴝Ldvt3Vևz:[vu7D;CFs އv >s٧0#q1uUtZ~\aHNgcb&\Je ''޽sop_oݲ-pFl7Eo8bhfƌ@ `@T6a`]"*9J;ٛ ٸɚ  *Fn}@UАhS0eFb  #i0 `GނQupĂ;3A5?YY22ƶ䕨?"*k8$bǣ@Zcߣ#WL{?-yO.R eRD(:tݡm!s%ň@ѱa >}BaZN;SGBEE7%#5Ad1D"+{H@` Y&? ׮Ul 1J_*XMP$#ii3I_ al,z7P^6!$Bww`w23}<]^lW0 `YKMԶ]W~߼yՃIU_t?uX.7GnRGC-׈$)MRr8@ThITDl[F%Ny"ptA10vCNH7m {=9c\]RJf3SMh踮BqN^]CBOynmv[.8sVӽͲ0cw A|Us6$*h Z.#DAe,g2ԜšKf5flvH0 gӹC'v*)48bљ!@L*84k'm=ni;/f]mm,cu뉈n./.+?=<<1/W]^rvn>z}v.Qa~{ fC9>8r}f=yn?/lj1wgwu]Omۿqqs);_g~6m٬.U?=}횦$1}p{HY)źWFE3BF_-ns] C62)0 N$9RjgnN[ٻ۶Vf!8Ьf֮KeIr3gH wܬ"!;POMۀjP&JTU;ODn3D9vm;)W,$0S,"`sI۾Yw~; O~t}򮹸|# ^DCr9,<E&4@>_O 3Ctt 轰bR0 b&]X)TM͘Y?諽ۡ J2~HfhRƢ战\ &l-bffl`AmHtN9C%R숀^XVFH TDQ.g7ǿ^8DfJh?_{z}"{VKb( ))(;GO{AT/tͫ^bIfi; ]b*4$рza_~٫ `Y"LjI,݄ߨ030AhWgoހlf-s4w]{H4*L"Fjh3$FNg׊j77k·rLDCFs6QrρwOj3tՆ@LE%;:0c3QrF1-e)`NM*j]G=9@`\^weӯ>}gO>8V:wLI3MdfLfdu}u~}%2s^*Wm0ժ }ޝ'g=ɖϯ5ӣr;lErǃ#Y۶LZ(&yzrA"fOoϫ|$)ȴ?\5[44ӷ.La>~t>zq>ËWAoEMҭU./^_\9;ץ6 !M&Ӻi)XCLb:i'4&/UU#."s b &%1!H?N-jR5&BPF4mڐr4,Ӕ)vm@-f6$4Z{ȩ6اGű M9v릪SRlYɐ4^ bs 4hVQi>L>s9+ fBhIPb0d53sHP,[1 atYcJ2t}ֆޗi7uC. (*&7λ~[!i]7] [b6v: }PM`Irz23QE9'BUE$3 D\ID4*HM"Y]}T 1ʴh0ST$ F&EDC3"yd6vn#:шh r.6k"x! 1Smwk,Z>YLd)x6<ˣɸ2;(JS$PWQ8:#Ơ7$fxVW=E*j #ߞ긻a)p30CWu ^~ZFYa]?^'`C}xH (_!쳩?|l**RP@*U%, OŁe@hjS QP9EطT1Rht >iD3Oo;lP$_ZU-̐#={M]#첨wAMn%S *.#tKAG90M}o)w׫}02vD"9EdZ}˾KI|Uml't6ݮWO={Ë'7]gN/y?o޼X<1{ZH-8B/N5 a @"iNLKW<֌Ө@nwP5?xus T| *ONޞRF ذ\p P@ C*Lr4'&X hTn' E<9z艘xuušh 9N{sLEQlucbыDDPyPBM[:S)F28X,]TtDؘUUvҥ8Xf~rf* Dr ͐#վQ4||L>⋟|jU/v`twU?v6ry{y3i'˃Ǐ~gik*W|{sѩ_f!'mƱ1_> gә!Zk\.]Vv!`͙j2t0 ]w&?>nꪮ[5Ern릮20@ĺ+`C#" C[ͻ,(*ެ֡rʌ]+P3 FCĄjpPyj**7^dVEјj$ItnkLɳ!H;i-i*{zLﺊIL{˫vWU0ɤe!>0&WC5 1ΧM*m[AzuӴGlșhVU;ymE21M'UT4DS5x3h.瓛ϻ~CX>wus妝t1C UYS,mL1aȴd$%!#JB9kvQY'm]U}}n罪Iu}"\ܞ/7f1-g /bjBweլ2zxJԍ^2!DGdJTu8U* ;>#Q23"snpyvf@䫪24Dve:,+0d$G!DJ5B[Hd&eLQD4@P3{g<&cǺ2(!?:yv0nV]o7Ó4v `7Dxpeq6;:Ng̬ι,ÛoTd1/LMۜ=77ׯ..|W9 ţ{7~RI(T\^$Lv8t:mErN ڦQQbrw*Yku9lg3G'\;F1 `,`ZDqHmp gP[}ǟ|y̱tݐ4&t~۳wm]7) ﻺv}H}``\iyv讯oʥ+non_~ll򢮫P4At}}U`*Yf:|sH\/b!0T8tT,dTBP3][wRrF{q |g$rŦADjQłʦFwmZDHy1Tc@%4 + 2L K1eå!A w{8H@ =D(/Gi$~bJģHqcT0՟ݔR\y2-_ rEpUҘi̼7LqySqXcJ3jpa¤mȨ*T R׶{jVو{q'gpGpB, <1G }#Uh"sD\\Ux`baD,o30\L&]OG_|;m7Uϩn'`̠6M9^\^}O?+2Bɖ `0ϫ^|`9ԪZ!(8{ˋ DMppmӭ\|UIJ"a)gsl3$O#6gu~yٜ4X9%1 |p ŀ IL<+z4j*ȣ.Z͊< R,J) q'-m˜b;KH IDAT4o_~wݓӓgoLr&Dzϧi)ۋͪՋϑl6߼0n]GY|>~_oφ'ܧA42qUjn}Wy%,C!H&"UM)9І!!by;^z0P@wz H U2cPv{_uQϯ((̞b|`ݤÐ/.ꊃ!Od )-aiڦetzCU1IحV+1BJ?T$EBC9zRexzcah}pnR4}5kw̠RLHo8b֢oZU9'Y&iL9kMoN?x5XP:z~p=w1*Tx2H)%9n~̾{4pXUu0bdv9k?MS9׈`9b Z,f|9'xNh֛] %"5D7wب~.VP31{|t{͒+bV ;DR1F* Ԕ Ȋ Ư0Z@ » UUKwTͅK,C^ql ZTՇJE?#ٗ=a1a3$r5Y" d{`D罖]+6[,xIEs~dtF\]J eݱw0: khLVmbV.hcleߦ#*SQ~޲HdfY21\Wl(Ue^600[÷.:MEN!g-\,P^;^G~7]tԜMu*VH8B> E&Jc/@g%z487UCQzQa7zB$`-I3;>=4hΡ?ۢ?P>œ"_LJ7?W7׷nѽ750-!gd<$ H%Лq:[HC꫟;$[('\;t<!rp2an=_|ZZ-di:юSfnG"V]КبhPr (3#$ DCDUMŌ?WN࿲Kr%ٙYnTYnIif1CD#<4ilġa/j/D `Ȍzweooo]^n>w:L𐈖˛b Ee׿, {_|=w |uy}xpA~|_m}:~z粽f@$9g BV8D.܀[ > Z(1{"~P̙0 5i)୞|%7޽aB~o5G~pT&"Ĥ D4<~Ԓ wLYD Tc4SzE=kV$6 S]%xw| <,* *@̀JP(&%TޙN@ĨI~bq@"(S[c\ Ͽ{~n4C Yd֠1, 3X "тD%Y7N?:) _ln¹GxZ%Fg,0(`CEsh]o#("&.$ژB>z(>1b$& KZ0gds0PiA] T6vZ^Q)D0B 6`ԩWԨL.w{7mC 02+q1L0)jw7*X2~_ٟ[ம{{ڣîm̭뵗r%v8ܻYoHW-ʲ岘L5//7ɼȲ2+~Q%f77w!~v66u/f !W9,b,>çU>T˫e^U*zdޣ\].4W - ~fh:)T@D1yWBQVetR1ڴM*\@"&c_/~A}Mʪkkђɳ/(3U>h]7*v;Um߷vX@TBJ-TzuUVAVmZ,Et~ 1.ۮ|Pe^jHA ! tEUM&] jM T|a@c{kM^X~>m L|M%23d"ʳLTscdR@}2!dyW0d" SQp(hTU4UY-wwE^ce1& CKqHdctYd CQkcT F2 HH$12c!z¦M a"b`-an7HnIIbJcȽft""X!!! .)$TI|Ȇ ]Tc"vl^ŇuvCJ61:e$HvNP@# 4 T_Ujk"7LTD$[MANc!1 &;@9].i,*D.5g o2+>{#|'Tyt$k$B܂0"REJXq߼j#h:Rx r(zJpo RMYK6*he*: e}wvE&oN55y e=8~s }wϺ" jL@H bAto,/@AcT q5DI9Q@@ ;310-QdMq;1L!D D1DLD "dD4D@CA6e#~ۮ i/Ʀ7:t-8&O>AGl6O _|5?@š!4[/~ t;icAx21Hd:c|>-=իӃoû~Wl7:KSi눈q'dJ6S޼>=r|2d.sç.]tڷL;P| 3puc (!HQa@ $M@ud(5Cc ( Ju  ޝ?vEJm5M"0ܻs[UΖ韮뺮ٲBT<}5vyub>VU;ޛ/.WT?zjk"כ^Zd9? wYk|~UQͦdJ""sqq9D!^˲̬[-}?dy7D Yf:?ꫯ{~k˜уGk﷔˫W|?N m7yNyVXGO݋}62wH&ωLl^Eռ,}Y!xk H J9 B* kD@ QC5ÃE l0fsg&щ10?8g YU4zö<:碏!0 IIwֲm6W} 05m}v(]ͳbc 2D|óiWU RP4 }UPgcƤ`k(+ۡZ 6]Im(#jYGJs[cWP* ywz[slR c m]5H5 S߷!F(yffEڶ',dUu!g0x0)c,uιi1$5C21r yG дuN}/&U!H rKcd"b(M$11djQ¤G@$ma$ވ8j =9yȘ1RvB]Hz &MvӀnKF3Q{C"® S,i#|1H D,`.m&ûuAܬ0 "H$6>22#WpooChc Ӣ9/I{Tѧ2{eQH?cg ٽ;wmG/^>|7[l<Ϣ|:;\4M703j\~ RYڼ( M1@<3k!@bo!1l2klYy.c(l,?8<,'M߷o'r[p~Ga~?o;w.}p}<}zZ7 CY`'Gw6MդRi !bkLI?dyLlDUQ]Fd,_.bωu[i i vL,G6Ddi{c{h& zk`lƌyfF m̦> 6,\,/l^: ݠwV301fsx}=1ZGY}gN'M ̆"q6+A> Q7eUokg]IU`3gs0"@AbȊ-\\\MX[c\Rzr6۬ٴmch,dmBvMŠ }臖82IcHU1QD4Vuyn/!̆}g"oJ;v@qԹ'~BToeI+BQb# QYU1;5QR"2*4G$wa(ȈlnUk;`a|R˜h! ! 8DY%.%IYrSc2KK7x@8o[C7$Vq =.Q%\ xkj}= h^Hw7y8BDr AQjG#wN ݂74[Kv/l꥝-4 :GNxw-=IR/H%"cF vE#6 y}uU-1I a& Ѳ!D5ۓ2A9!YIIS DB4HTţPXY3"g0C!Z ͒dӮWMZdQfH3/1U䜛φ+'զ&0[b_7rP#W/͏>ho8/*~$~Lo{r`%"20]{}%BQ" vMe*BB*jaSEbEûZAvq}u8_7eԓr'=z|s~鷯^^ܼV2f[Ll60 ~>$ [B֫xߐQcp۴7-ċu۴lh1Μ.|p4,ѽWXȱ*PVaQ Y3% 6]u9'J ,ٰ1{qkٶMrТFbryH!za0l="YLz(fyIrrrgi6B2gE#Yrr|TefZ00jPQ%YboYET i!(0$xo-Il\7yMؘbb/^"hH#ceoHQ0JtY~;,8ݧfƝʧtBH::R H"*2AߎKP $&F=KĻ@ Aj]3Ʊ !$FJC1/Z)eXBd&"@F2!D2xvA"T%ܕ'q;;L#]73JF^tgѱ -0K1+%Ld{D?91$ȔI/p٨O^6KM56LL"Fc[]$0  G|A bCO #}f2ߦ%T|G IDATtwn:vS"`Zw`eLcMܝX:jT߄2bD(qH:4D$30"ʘj?줠|ExJvSD36Ȉ8־ѧxC 16@&!<0X h30&/ ?xEg,e~;Jf"/>'/ r 2/ū*n?kyin2LڰD##I AO>}s$<+VUFC{gLCHR4˯?}|񫳗Ym񇓪Znnn%-0Ns6bgp2)/o>z jE>9YmV!cQ$RնkT<<>!4CHiؗ2D"#{,NNaPQP(AIT3074uyAl!y}MCJ|0X DD 8[Hp*h{(YuS_.~mOhvfcsB__N)[z{ж{rtu7_zuz񢖌!<+ʉ.'y&3ͫE9ۛ/=" d3fZNleUZkYo4m$kb:l`jse(ʽD&Dެ^ZL/6C, lbqW_<~$(K~U9(T~Wס,}}cuEC4CQ!Ö lo^FEtYQuQd!h=(|#+Qqa*EȦdt?VGwu^n6m9]Y^e5;#l|\ CA6w?yǏ绫iYLDAaQ2}T}mQ (5ZFzW8E ÖQŻuc836"Jc(B@Db|Ib3˥eۅ0"3mwu:;~>_n,aXok6V˘v[b1Ąm;TsnZ'(s뺽bf7@D%F ~E^]\< d"EYLqɤC,Il%*(1)ZJU"qKLv7ARnӯުRnx DL3Dv7xBF'ssQؘ[UPC Kc(}ÄČLoXG(vKͮAc3OGG+"/I^@/PƐBTE[)RPѮb'v(iԙy[GJHbtxϽyRvv6(" i0g"$Iڦޡ䧉#lU9ŻTn/$y~M!2tdbM (``W#~?-޼dPEDDhLQU ª942gl>G LYEq3Z#S!'IQ% ]۝>c7oCԂ@J<[4}`o}Õpu7W rg/_N&z"1QW9~>mfLJHCi1QȐJ;<<>/ru=իv%"Ba`k}Uҽxzۅ.#hwY!DçOCۿwz^M/Ey2um&uۑ/D B-2t#y %AhX%4:?x7!@(]u/ LƈJش]e)wYf2`B?ߗEƤ4&"<8}32?_?M,1j/Vۡt>UdFe>mLC| `lՋϦs( ~oAB"cmz}AnjgvEԟN_W1|iY>g[޽WLMtb73ș{=}lyLCalzxp\^k#hl*~"8g6~M CᲜ }ȳ,sNQ4 u5߾knTB,dwԭ"(Q4.rƾ{s nQ:Cvyyqp87DYc̠a^z]//60mYo3{b}!UaRBDi@LuS[c]f.д!gvoo9lfy*J YQcaD`c?\/mr&3[ ( kv} @u݈QFEsޏ)}" R1&!1,ˈYlڪf9"}g.D? ~`l,!r: "[m*^}qӱ 3IG(; &Lʷ`Z\Fx 2N`#xS˸ƨ)fehbG QɤAgaEYSn-f&f&cl~Mo?} )2Rp[,t#LQA4-|c{PnWc0co~t;TUkmwz;ySoo_| -;TT@"#*ݐbLGv 1mLD%;Dr+ @QB*02~V 1QxU$ow?[ni`Fpʦ"ˆdF?(R!q~k J`AŒ#:TM4 dJ"@HMJd JOHƘ,"/S|R`$ܪONb5F@gfcxvcX$8Gⷛtf^VًWffY DQ h{oqӵ@A5Ǩ#x O~򓳋ӿo ?~;p~!kVMNm׫p:jXW͞n{"<{^;*&A~Y:TC ~ZLVMQRYjTgDHd!X E`Tr0-JP F3cj!E>s9#"Qt4IkX?xY{??ݻt^!mBИcdaXoڼ(,)jv>WfZdg9i&wf_~ݷf5k"5ȋǛmژɤyUʢ<y}YF&';WWgUj1;xɇl:Ɍyއۦ&ry)c$3YD2IiV%Ft*Xu͆Ls벤gy2k,p[oM&nyiKul EZ*ppp0t϶l뢁PTi6 0y>Qy8Yu糙}la@( @{(2F:k0.̰>ڼ(۶fbYu>*c"BmcPq`UwW4|.]VI7tuU.x콟g7˫m]W=! j}a1TLuk[Dd֚m56%=mQVFl8~26l:2 {nVzUEBO =ln}ŽJ91C!1$* Ѹ޳qwL-^ "BJd(:`HP"XG*Jh$)(BM:E%cF.~ 7&x2L f(2[B P'm|&S$t.ۀ6%F -uݾEĵ!0D 1X[8NRNSݹc0a09bzb)-TH&M`J/-ۭYFEt *1j"H4nxпenAƷ# JdAbU0' eD2{#tDA"@ $-hgcvl " Z:G `R^91T!!(F10|U@IcH Vfݹwˋӌquspb? asui uR8:8:n~?:IYml[a*W_Ջ˗J: 築V|"wU^`r6Q ] Q¬(?}o2u]݃!Mc`K7˥sERSݟTV"A">ՐD99ѣh#pd yL,(A Z5P% y6I11H"('OzyYTY1MN&?x1[fj5ݓE篿GC gӾu\?~b@b2(]"l{XybpYG_Qwp1kl6KaCOkkÃ#kr}_9{||>?}y\ol>_o]:88OfgU7U4lR}޽Euч? dGGw|ql|BE41P&E>L'WϗmFyf7"w6LbjrC}9gyn?ΚiЇxs2Gv.:_yqTY߀ H d-AnB;Ov]Z5nn7wew=:;?8kˌf} 2TZe1Dଳ.3&Xf$@LCB18U "Bto.s6sE]o2KV)f{o,77&!>_ј~,ck{"t.QbJA>m{6隇59_^]YBIo@`I5;>4m3 H(,>/ڶSB P2;7=鋯kFVRrL"B%nw8TPv@gE3zASŝKP[J@Ȍ68U1j[)18@X@@S@lKVBNT,)"Uc4^Um( bj!L ȓ0h  LO]kň7#CP6zrwpE`ݣ$ډo$c ), & wnclXP)Mitz I .yc8-Ǽ{ kD{ ~9›rPbIhD4x!ky{컳W|DK7ބ*Q"f2iPDL&$&rgIrO$EBބ$KE%̪c6 M<޽sO?=mB04T?L!zSR431U)Hz| ob"aclFѝςx5&2`N޲ H,7 Bȭ*/xrRܻwyv6KBֈH1J UuH ߿|^T:^ըqY_ūӁkdWشIT$Rv-rBŎ;%8k?xٗ|l=E_7s`ز5lb?ymhCDQ$E!&J`"QۙQ0cTQMTA!&-J1v$EB$*%CD 8&NN!UmWۡY78{6ӿeoy}fٴ/F$D1txB{gͲ,/m(W/[n6˫/{uu?h>C?+D101Z/M+I!l6{aW'O>x ϳak<}=^߭ͤ,^E~y޶]^u}nyw7M7]_];˓jj٩5ūχ1f0E`6`u{CDeDKm<ˍ7iZc!sYQ̹,%e4 {izp !Bn7!!ҝ;z{>yuWД99Y:g k̛ۢBA{>EԵfnvM|޶{aӶ]iD u] R1srPtKEYqyVeS ~po>cB?~,dNo״a^TY5ɭkApĨ{{},QGLj՗_m;ȃ%?[odɑ=^ hfH GA1i^d&K_"L#38#P6Kٍ.]"9z[+Tf7"2|K$"t΍$ 򤙶mwxtB, _Ue ZB}5.b mۙYJ6MEUՓŻ;w=$a?Q C+"Y e4VƋffB ۡ-kXd-Deh&9bv@~f@wd=ɘH#Q!8T$JbXtɽFfDAD@8=lY( $ y >݈B]&9O&#{v|EM%?A/4 "CDAJځԁ2/u65X6o fp>&?1D4C;9Fi(A wIK#,`ND;+R>T [ sːS]L DTu!,!"12e!s&(imиRD߄gT`@r9!VEl[(=Օ!@xy} (xl)a)$4pDCL,Ve^ȻmͶwfD gӉX#>~o?͒NRLĔ 65v!ٴw٭'j]8V`Rr'30}a`rbdDME sYDA045_8I).)PTEwqۋ|V[/mTMWޭwznGCSîos!b AmΨB`@fG,r8MiSό䍞%`v7go};8::}rG?z#ڟ󧯟w///Ce+f>'oo@]Qx@<<<1{y1c>(@3ܽd>g77/ѣ_o=`W5e̳ūݻBZ9%Ɨ~Rώ޻8,]mkQ=:<}-GJmr$n\=O9)L ٣#ĸ|5Ȏej9W* BD$Qd"` ICf)zO;&dbH IDAT9?LЋ&`7-mM }59:>9??`78Bb4ͦ[,bu]’"#Y7dެn&&1IY뺪_}(Η|u}yy0|&򎻮73fYJps1˧~vM~Yu t2CiśMUfbryݻ ԄP!DM)9Rދ/B rfuB{۶-= !Umj#BOǗO?ХdGw+AꆃrT\ ay%03dT`c`4ˁy6qBus09q:' !hIFLQȱCws";8d&CJԃ ,wÙ1B y|sZuEp n'mf7@N% {Ov2Ӫ`:@KD!Ew$s#j}f5_#:_童DHh"n߾M5g{fIG30`ׇ~)zCqHUդ*_]&"nO_ª,M}Ĥ2כMqG˥FIUUIJ@XROoȌ CL"!x!p<)C%JLArܨfD%ǘTqϚy⣻9W}oK}"RDYbUŲՄ1gMݼxf% p^&brqpp]v>%C5ºtfvxu3?xm,n_AZ!!lN4k4 ꝟH]۶mm"H2juTqĸ7,}1V7S"( .7`V5Bֵۺw1$b,W0"cH6RVA/QMRR dbfwm ;CGSvzۆMd2nzυwܷb/\ho鬮|a i.__JXֳlw/KC!z M79L%*h;!ꤩERJBYRM#zZjKIY!P5zIsyybB?urӯ*Q !ҡ !`l0!e8a#Q!d%!pDǎ~ |YN0K5T8"fa8[&JJO910&F%9ȥ+DRQ$yEU$'wc$tLA΀vcG${=G)r!epc#kF8И?޿_vr%qc6490Fow8fgHQ Hn׏od&@rM7؎T"SaN H:D!s~!A:p_xwg6 ۚ!5]p4s߈D-i2Sd&6PP%r\#!_;P%D4dXC&728D @ڧ_b7s|- SPB`vw"eCU!&%:0|1hϚ&juUM$KRfDbv_~x<6kT5GqI*(A R:T3ռn^z- $j}|rQr1.FZb-BOO.ޜg F؅T& b__ϔyps:4I8j T$|b(Y$DTM )dSK&cd$EI^TM nVW9$K ђD4)2>xddWUX7w6eSի7o7/SO=I߾zL?ջ!ƾ{rOutgqx}vnūwo+TH ׿'_y}yuyrx _}m9ۯf/uy~6/󳳲j>G/Bū''w߹_Rn6oʭj{{u $/^LTL r%3`RNj踙hmM懓h}r=\~IS.n(bjBueک!tΡHBdŽ._Mg%m6]>a,l1 O>?{*yӄ=KYͪM*IHDOo^:_Y]BJ ͛J(J%11.e-rʲljnɋΑ"],U4P2gʲS"f/&n]"$qe%Xoѹ^vcDfgmYmkBRUI!JB\DQvxb&MsIrlSREt& "ZNZ25zvA#*17ᆬJ@{.& $OP!Y*jÜ#:?Јl|Ww)8ޣf>8"CʙJodǷ4BDf0fXS wD`v`# Ey?&9K)|}800Ĺ7nbnh83Dulj4#S1BA9'8w{2dl8;Oui6mSVI5MIG rRMq`"ޗ%YC]%W#"8W}6h JXwDd٘ rN M;%*?O>Zxy~6ޙFADv gwoߢ+:{wn6go|u#1滆@m}O*ڶmU{z2"iQUSM)E IPshJweO1BWc])HcfP )(hRSdhJ=wb|'OFMB{{_uQNaHd@GO=;Cz{wwOmFCޟ͗7˫x6?::|wvٛwo7Ǐ>ޮW޹ruL)ͦͭ#~/_t:- ΖKt||Y-=ŋ>Oޛ/)fFj]UUԟ}GG'=u| )Aׯ_999>koV+#^\\n6Cv0i`LhL#~3>s-ĵ#;O[Ϗ$L9O6ti]W}hR6#UE#ĹU6%0J_UnҔ$)2T%ެ \m3b.5le@1i$z)ҋFfB/LIZ>'}2<@U뺶,\YD<XԀLu%  ٞ~ *Pxe=qcާ޼p٬ݶG>8# bU3@6OE-DSg}υ/c. 6Im-|@3NyG1&5lm1|jMι|umTo=>9g) Ìl g6$#DY[^3}g8J>@42>DdphUq( zG߆{hq҇dH UThę pnըIF+8S9rANB0p8~~0!{wCDJrIJ`ِ>B1^$33?OBp̪bcP`>_L GsǛE \쾁v$es9ݚhO9g#g>xb+vlxQ{<u±J8SHMt]t!!SUӈ@g_p+A,! 2G0(Ussj>95&T@A"44 IS a0F*er34<|;?__~Y)m=}t,15өbk`<+"RziݻuW1ր1⨥}\!2svxlu˕:znqX Wߝ{uuъ( I?KR0ҹi3}}uL5Z[}DI$DM1ӶY>;0!ÜudUCpKO9v WmՁY! ”XPNtK*J_kc$iX@ί !2(O1 1{jy`An,9h~\ƶwUcL6VTr}ɧ'Ӄwt̟:KI {n{K&U =GwQ;555U1#U({YM'dZZ%.+!eQ b>3ޝt}XTG{ͤ۞!!X*ˢ;I{6ŮD!$Z%ܬbD ʢTDP>}L㨮UU۾)^_/nQi$ !H2q✫)yXYinoݹ'{+j:T|࣫˫\Rc/q/ӋbVy4fHs|w|I*!@'chYD6UBelZN0 3 A0$!j"b@EIL9G_ dtL`(AUzR0$D bBf8c!n>4P?̚͟|U Fb$ ;B)rnMǩ-|l"8 ~7 AsJb6I7\S_ˋ ul&d#T,F޹\}L$)$3Q@%PT+楯\dn7g9#c -yǦ]P"~I{td(I S"1UTۧg]ף&ڮ}QmK@L8D;g7&1H2EzGL7r>mk<\LYC ߼zէ7NNM#1VUyqyާ檩iw].o޼9ͯo:Oogm;(b%+*)G/6^]-Q44joO~tL]o6eUKҿ˃P}c' fEY)Fzq˪d\^B UbRdtͤrUQ{ur(+4뺶m7PұsSS֫q97]>I4FڰZ]9{q]~ BR ֭f}f:bJo꺋s TEėյeBH}D"@|@ȱ)f^n7%G|>evۂ$*ʛUl6MsU۵EYv}<4wLeU‹h ") vmP`0-J?-RRB\$αmŠ" ,j&^ݬTŘ6Mpf]g2YCJlV̪h7٬3jfyu@ҐZ&9,\Dr@!DCꦎS2! EJ;.wr`c.h`f6QE0KMڌP2 j$a R2Uxr|^- {.#CH6 pFȈa1?,w+J{M? ~̐i3(R#!G8n̳3dYe2˗3cx0"'}@Ωe~B{);v 1.̅B!tTG%!6%Bbhwζn\_7dyJOO1 TIDsh!ۆߒa\I.dgb+V$teB.,܅sfSk^vr0`B&Wx$$t4"`gIM6*uY2q)GOVKSH0e"DMj&wRJTP"9Dg2miQTrwrcII1F( (ICT$@6s<*d萀ý<%ﮯW{ IDAT٬Z^cW9pf^]o:ǡm?d"'ϦG>?ɉ}_~/IuQN}j x|p]7UWg|U%&ٛ?t!""C*AJ'GHn7eU(P>.=/m[''>}}իl͛l ݮNeY&{EY}W_/^p;l>oV+NggU]-zi$%) |YlVk$"W7STy.۫g_Mjvyy%$n R鏎$Ff4],ffZUǦfnvDRv\;{pDC7Zj/_ޗe͹M{{{W秧G1b:l۲, .<-%B@+Qf:nmHޑk8"O#6uu̐R!Ŕ\Qm}/IYYTs@+݃?~nkU1nSq6um'ǷnVL$9.m`&R X$WA@YLhbf*ۦ"!H]իu4Xn]~I}z}Sx)J_ZYUW!j 8OC%!!@>ʜ2.w34d@6LdRRBbMVK#{̎"d P3+cwѸ@XŘa@. C$VM]7f\^!wɻP<7DR(g/jÑTTd"a?E,JTIhH#Hb'&q:fI)SYs_Swc"ZH {&&o(c!A̟r 7N9M)"=9B! {7| ]%I >|~?gGnnt{Wu=!!fe*|I|S51F4MUI3!tt)YM;if^cH!IO);I1Dk/{&*G,P%ê ! M3n7I0h"u3#G.]|ߞOqӥGwcD_#Qt"h&LևmxxݬCۭ/<'D@H]q8Fض]U`S5f g cdn˲hj-UQhU"q?njM)󈅟n7ƈdf)TcIS{g" mM^f"E"!'s4:"/ <5S ew̄Ȼ,GL#anйsЋʈв?"s6&bw&xrlucλcftLj@BҡVxiײf@^kzRܭtLF]1uB%w-p,h0>zv Cϴ&D$r v8"a C6:|вT5BREwJatAUDy_Y.! 23C(- 0H Ն́\ff(PR.j.kwet#rvS- oUd&)XKbJ}ǟ[z&۷$ܾ勼 f] fzz۷o@$&I"n[uo1 ya&;c\O?޹;{VElt}O@%$zh 9ff=wo]3X]qH;R5m*5oA)8v%ҹ15 BI(2 }PȤ)ʂ F(W,ܪh"f:Ywr6:3T#CC@=Ď)ɵ-2|1˿ECJGO~W޽{G%{xs~.)=yo!F601F`,ެCRIm?]̝¬M˫ã=|]UQ b v/o>EѣYS#A׵{{d4P95Ƿonn^z=B*//.鷿_ΦӺ?~"*~WUIb19::n;O=zXu竛fRuŋŠo߾CeYu]ՊgYMU{oiRv^{"xD}9˦&3Q_.܄_Dzf>]Ŵ, b.fЇn6Rl CCHo޼uԺIC%|Ęr{DD,P1R Eb&fwyf(BbRU2&If9L+6MSUUv]eUyO$ 3)/&nus3dcZ-y Hh !q\އ^k){*J\g9krk+#4CÀFw*"3GF', P~'DcM0ϜcIr3Rv8M<}8F9ggAAD4S'c| d?4;D8\]k3Xf TbY2QmRLIe|Zv}36 %w?f&"m<ɜLw%bv#e*zwHXGkS>~*XEcA|q}ED㓽Su04XLeD&~2[6`F(28hPrƴ?_0`}UU?[o,Ǒ=\Zzf~'Lу$~شlfF=zźY$H@w="`) @"wű*+9$/{ (waQf(.L%10#298vj{vqLl4)F?'/^Wիί/o߿9;<9j`:yˮJW(OC:"r4)?d<-k@Xo6/&TU5MoEkZ"+J@d]Q Q14l;Ʈf;Ec `t4;(Ӫn`40Lf&j90uY)ZfCauaPsAͤ&"A*f3/*Sv݈|vX,<2v;Ϧ]mbP13l6m__%;vp44cIЄ%%N 룚$ 1:E D{쪲 )vuUr%pT O./^vC FW úAi<ā?q:yjɮO)Uei P5m6몪vV^<k_Q`4jzt|Ȅ]!rn:N7Wyr{T 1cΦQiͳXؓ]=oH jzjk.C&jz0dF33 !sB#>Agc{!#XLdA$Y&;z\a ]LEU1Jt̔+9O }Nc\D#a"ElM A{S߿¾T{@o~< {x~f Ĉt0eGTfYin+:׿*@B1CQ/<#0j`Hڇ<8rbUh(IYL@l,Cw͗<PDDQ\Mzоo!"U494 Btxvlka4t\'QFVvO*HlI1nS49Aju1ڔE8pgBDPCd#"B3]ln..xV G|5?xVG_,T֫v6bRBM9_uy$!$@0127,I\6"9e6t1%dH() "dfh} dq2Wk&:<9)_*Bۅo^}(R$h0^m6b6\^+irQUH7M=zhv|rm 鋏\7Q=~r{}= ʢrΕɽ|8M&z$ͧXUK)[nzys||v`4uY۶=Ro;}ӓdzuu5 \\}ŗs~ݭWkB_˲rEdQK"m۱seY3ӻ.vMOfgo~ӟ^\]9_fcJ!tTG(TdZVUZwfƭ*JӾ⍐@vlov*Z؉F@L16 ӃS&!"R&ڮ*(?xwqyrtn [\{KU-C!Pw {9398JreQ89]}M!h== MsbNU凨b߼_S S3P Lm;!Sl-=wu[ d}B3d9Y 3X {&Ya-M{!%{< `LS } e:"OU52!d|(} >B7b֏|Q4Z=_U5\ '}0"!%md "`3$ĒmD$"M6yoY!+A2)CLUUUpqY?~tW_EGjh{@̟<ޜ__W_} hZ Ϳ~At%A5Py֯]RCctlCbΛ"! 7W)__~tZXȑQd|?-B۶vd¹Q5vmx OxƂ =mhhZ?߿VN2Ffn6Wי Gjk@EԀ, r$ {D($"D"u!92B&EfP!dQS( ~~s}{M5/We(.ԩT(?fy~}wUEUV+ *}Y  ?zɻ?|_ j]/J etXu]fh\|^bq{uuD߿~bb w~sd<).VwgZTȽ˧>{LEe];?MgLTUEEBws}n|QqupJ \ޏfl 1I_Ibުmf#)5Ar4nq`&Maljصvq M <'")&) B1g fL']ۥpptHR@D3*O)z7u.UpMRKUW׋lmUeX9EB I9Ɣ7Ɏ LcUp܅Oo|Y5lV{_n&Ӄt҆yUUY%e!4!]6M#""Tu݅ }/Kt"!ٽ{͠%HF \FmCHi]ZJYm-jPB`~n>bԌ3g뱘;@D$d/{Fr}%Duclkн ˝[i? abaNpLnL"J}~ޝU<홿9|J|O{}r$! !cGD'}Ȟ ^jŴ( {,Y TLL!EUA% {r;1@t `*/rFF@#B3cRAKj=:lL몌mk[_N^_R*phN?u;.U=3U̳xPL4eYyWjQREÇG߼{źUc1s\z?om۩BKU,8NfDa2H`D(jJ)D5B@Q$Sqpp^o(!lI ޼ޗٟ˓ztp<?7W! LbWO7\8BvN"IQW=vV ~3_Tmr]n!@b(U]/'վBlؑXZ\ĸVmmvM]{rI z:?ztfybJ77|0;]޽{N}Uo"&i?y-UY({$dQ5:M,V(SAd6-|\d2MIxjRAmETDyȌQɣN}ߏFuP;"tjGz|~q>O 痋%9'lDTQ1yᓳߤ53"ΓB^G7+7fAT*%435oBڇ俢f'+ܵxگꪘ (?rgxSi1CoPvlo7{ ri;YzPf)H MӘ'̹6r|t&t 9wft`d*l`؏Be?Ż^vD>HbՌFJ& :ho'8 ;"=ϰ8gc"fHBWݩ&Uͨ >DV ΈyY3CbV"gG]EE2hCŧ WZΰ2vCH9W Ο)?;qbH3xSY/~Cz{\^L "0j 8"@Gb3%bP-KiQZ%`Y.JVD@3mj5LUBwjTe8;8! tdPfߵev4ѳ vUucw|t|w]k^.}vnOףr}{@֛`m?~\eQHc_o6iseUdDzn m,E&WmJ_{^]]Wquw] rUU`]UUe=Z! mׁ[Z\Ǔbu v`~6HvTt}UWR 4V't0%H<)vxRU5JnooD 5xbf\uim, jmNҳwA;Q$UAuMA11i,.t1h43v.±sriή; ];UIvn//}%RFlr7l5ybŔ+u>?.r,lPoL{O0hoW>_}^z4oAUX2&"ۻ0r;2Sژ"9E*NU%͈!U4U ?ETpH08Vi L=zzN1'T3#<3"U~* w4W/FbdfL$܃;h{sث Oy2$b 3;]xhjTl?BBɵ`7s .X$~Ž\rCAfm%Ϲ$ rF"U=oCB`5\2] I4߳$%Q S $ވi="I}#fS܍k)U#({ :L . $85Pp(6ǝ$@,gfnaY;ɟ}{m%Qz{G党TO޽K EbWgvH.M4.t**gBă^Yp8?=5 $jw?~|>#tZ2hX~&.u%;mb&(@9O,))XR4Ш"/;lQ[ )PB2;ONPܫs (*$!fnDIҒ+&. əi {>~E 3{pPG󣈶خΗUnW #RL4]23vxz:mۮbJwzrzh\~fV5#L1&*t4$ݦ٭7p@`WGb>$!OVu]۳ׯ^Z,n>~a`P|d<].W.t?i߼~B\}կn]a=Yo=x)A<um?d{̔kd`f.x4LWgϟ?nt~s{]95&\.77)`0 EQԃڱ#A\VxuEQ5.cGčY 6ݮمk[X{sNDBI|Q͏㩑oۀ9f#0vDl"fmB !ІPkB4;LI &0sJQMS2D ]lۭj̆CI{NGu髂L !mhyBR-+fMUYnvmZՃz ˢtLI$Ĉ}:zŌD嶨t6|u{2$`O&~o߼Rs"KXTTsB%xXeѯ"jkhYuV bprrBg9hw+䘑RBYzJг+ߟxyǜWfINzC:O0nO)o0UGfLoP0ȷg,jcSK*6`:h%=]+b63QuT.8*PRer>Q$&WW;Ii>(ATT3.jݵڃ3ӐĔylGfUj`9DžwBjņDw f"rABMșdD@ 0DTmӴ!w` " U}s*t~A5~m+il$ 5{pxC#^@7 /A 6W˷o֛.6>O׋prX峧O#:xW4M{p8F5N'G n0̮!ёAO_PFÉLFF߷M񇟴m$ǏuZ`8mR-v},֋}6?~wvvxxuÇu$Im/_=}1n|.*^AL ./E4Tl6îkSJ_8EQ{_ rӱ-^zoyeU$v$M %.ݶ !ç/>n#!v]$QuC 4馦 Rx!d4um0SlbjZU5BHu;GuQ88r)_hu]MS tv m8 M&vfn6 b4/]3KD$# DHrgl]wmw|rTe۪$&tEu9ʪLaȮ,mیg<=8=RcO'wQU5&gUK_t >[}q pH83Jy@DAh~7wGRLh@ 6nJwf(w>E̔r/=Iڇp ̒cgf_ $8ZF, pb`Gt[{ ߟ\gB&jIR9({B#Ft*RA b`#cdpKlw4jDv90~Lo@ww}QNg˧psf"ĸ7R^GD_)?K1:t~JwW)?'D]_Rgwmwy_1@lo+Ij[blV&$CDe Ϟ??Uf3IbNTRYe.8ղ(CY.Pɗ@>|,W~hO3+Cx.NON?7֓*.v&H"؆O/ج@K'(LGϞWι,9)DJ0 QcmʢjRBb;/ۓ fI}YWfjn۸, r$4;i@{pe=$@"g0t,i5$)sfU}\5% 32` 2IRFK,Dy%#3R4:G옑i2QSCCC2DGN@): jC`$bL`Z8%$-zնu響z6Z^\](??y:e]y`\b\bptX(rr|mn=+BJLJê6d>ν~ru;?/7Nbk&3gz׋x2-]ݜ]\aˢ 6ɔV`PՀFaJ|:8bB{MYɑ#rH}xjWCX핼3KJ 6$5]1`Y]K./=w8\YAܮ򖻮K_TUdy4KĎ+m5CMi,S1!1eU9@PIMk,<sjI%2r׵f L4t  hYRz|8#$BkXlξbj0?:ڮW)%$锜;9>]D$T3?vq~S0]71jnbhw]@ʗfgf|j_x~vmCUѸ,˶m{Y{Q+Oyu.OWg Rs}K!JfF_{kaP%/ý͵QѲv$ed\"^1'w?=!dJ=R4 WAL"fI9^ )z`s(hQ_;R'{c?)GǢaWI5HuY{& q`.Lw@ )DCL0ީ u=J<l4ٍjFwv sD eZT yj b{T4"iOeM퇍p|-?a?.1Êg 7I޽ƞ D#CC/BIwM;Io؟t41A,lC 1LTOڞ޸ck4@$b gƢm hoK3(!> @u?9;!{-,D`>N;e^&2=wG~Q!ݻʽXdc$2D VDT~ɲ&SzuC$SL49$*b"O~ΟwOF!9TIј 8S2-F~o}cd{@ylJsUO.mm6xu""7.1Q]J=|䳙n(Նſ{:t{ysҗOx^b. 5Jo^IOۮI_.J!g9r3#Aݟ&/^]!,S0^p7HkdK`@mS٬s9 iTò8SNMErEߎ]ޓ~HmWJ3 c ULIC5(bnS oٳc15iDUsHQV3L#w8cbFM\UUInjkhcvMo"ڪi G_|XVb|yr WrV!3H<~r<=X-1z޾r۴%nmwhx(u6EQjwÇcLnیF\DDWWj0vMge^zurx`^b 䣏>f ! 17 !ۮ7jڅ5D4umm#Eh0 0&*PM]sq`PiUQȱ`BhEz@*벬!#b0Hۛkw1c=$I4GTiHEtO,+@Y@vX0úHVVfFfpfLEdlHIHTgvmo2:wo^l:Gu[jSw@^dvcdjgP"hTFQu.q2C]1jTiQ7snGb:<~vz!mu t2]TUu]hDuvsi];%(9?޼9YVv6=?*D^8~p\-׫d<8ͦfVUuUW単j^^d{]F\N30S10jAޘ`= Cb<̆MQeM!ߖC;H3gŹHL fhF̆xh[vj}_>UeB"R?lw5 1cNa`x c2F zqP[ &0 2t5UmC^&`""!p:]%`w]yPh{ﰭ GJ=gD`@whf[wp af$$@:izsY80 Pv誽j=k;aX0-x  0;.p/ց#*A3JNղ6gȑa3U#MрvGlr 4Li05Qf-tkf'>%@P4-+?LaDR7B'Ņ31\߲USw~giw_ cWEu;I(nϖˋ!w/_Ͽw}W/U8ػ^.7oN@{!@#s/F_{`^GsH"PQM<1;99B6p!H"<1<ټ,?|Q&130rնFGMI;m]g~ۿUՃ=#87/ߜ$E( 2svqF\/$v#-"MoWb :ȹ^1(C9*QY̧W^=~HUn;{=.XWE[@^dRm*ᓧl7'o_|}txd&'''>|[U)ţcY g?{}`.NGUQ;;;)%:Lgq]UEmh<%Fs{]' .v34AD}YLf>B]Vqif Q<̟`okѴݬ7v4<Χ`e.P-j]ULt21HN")[4ڶySfnWIx<&j[whVn"C&MS6eQhQ)!Es( Y̱Lv̿ꦩt~]/7o|iTc'L*x<]\ RQ2Ld:QEji^_+J@uwgЮ/ϫj5MՌյ"J㣛kD+Ke]mw> ߮֏8`hhheȑ_ld0OWA!0i$mf( iyHn2kD!@w.spɭY`FHġ(UL4%jb*,"h* nq`6Xna !|=~Ekۆ4̖(¾t݂B9Ttu,Bɶ>$DtoAD~Gq;@."nw/*hC{C<l67'HĐRRUIĢ"94\ 2( 9`.W/N50`brlTI_湭 F ;9C,T$;9@˛NU<2gfߒ9Yk^/,W3~՛ ]w|"Gtr~~ՒRrcWΊ >m]۝_]2{cJR+"{M?{xpe"JO77/k|cGd`H輘;G"Id4Vh<ҹ:}訓.!{777h* ,jD J_&5$I"i9uԤ*,bL8f#@LυQ߂hd̜}eQ!HP1 ) pqީiR0bC388׶sbehO?]-۪ۿY83UtJ.&E/޽Ngv"rW!xOGzsqs4-7ůU>x啤DLջlwjS1'Te(ˋ'o~m}eF(QU@ˎ:lS'rW%;21O9d˰).nXzg?>޿zG_|yZVݿ>< !@Qq권1*P%Zd6s^5zB(r4sֶ5XJM"Qy3c;gD&IJHRsE߬)dm$F.ƣeVźw~wwQu.>'etDm۶+B)2ȼ:BJJŮ!j3l붫am>ZUz%@yo)2U:Ѧ}P{V1ͩ~8:`@?=$ ]Xyjseek;} %R_9fҰ5Tz*/~Dcʎj,wS (LE(DLJkG>?}tx`Z~&M%"^c4fO>r6zKGf%$ |5Uݵ-.ޞ~//D//-_LZRDݶM8"`WQT1ډ,WdujU9#FE!10ԅ#ms"%V4U(0 w2gCvNPH/*9C`x+j]*zXNa ^,*p u)6ˋ볪cl. u5tu|~i._>f߼|}ܬn^ӧ}jy-Ǐ//]O0qa篿ql:[Z'5vv?~xV"ps}U2e15Ů'_ZQ.b#`^קggoNNѣ'njKo?;tX8?N~Ɠ ZGgg{C%ƜQ|>B`٢oX;)"c7 fszsvT, >/QR[Y;/n^,v]d⦩M1S!K;;jF@vii,BXNvw 1yqE%&+"TUT9(>E!_hfRBD$WGiuĎ;v b1*/T1v ͺQ2t]1($1YBѨ̙b昳E` cI]>t]YRD..eA?SEWnDLD& V0NVҴbеm'{Ϣ;\=sU٬kQ;{.mE$%5UlaTrwwWj'?s~ b 9NTrrxPJ (D$0{~wQ$w @I%y êy[&/sTyAլeT.~EQV fWHd @*c. a3C$"ߢ(GC5eƦJ;|,g4ܜ)ΑZ2s tՓ*,/ qޞs\7Zoʘd~`$b;ux+"{2F9G&E->p3Fd#*q(ɩ[:krX3\ GE^_:ۭC!#``ФGf8"JRג y32h fDBL)z2wL4DcIΊY"fbyLP{QSLR|!)0*$#rDb$Ѣ:D&=:non.?w?/m3,F<Q8OO00A܃t\y3ޛzs6MDYׯʢ r)}x߽9eYx,QY볳Ϟ1sn9_ylm^-Mxwww<.vNs&q<m6//.wvvv]\,wwvm^>LfG?VUzooQe,K0 &0+Ba*euW|z5uSe44S^bYiL5q~b6PppjQdkY ])⚝c94IDf2N!4m@`g?eoY8dvqB6#˂H@Gu *;@ xǞـ/L#V짇@5P8%Cb4|^h}`fnz* ̐ !e hW/͗93c[x@Ī;ՉS

kH DMeBGcSK*,,NcRzUm_}rooSU٧i.BGKNDl6@)W4.liw=bرIλl]4:v9¾!f7ܝNjMjlm wɬ$Hb H9se]#VL z"1Ӿʛ,O:̲4KTΊ)qPCytp4jrݝi'ރiULl7U]5MUmã)*=l7M{v}󷯒m[mכ jgզZ?ZTԞ]u65#F.|~4.Fd4 v}RYY" Wח4uj]+0:N/N޼?҇>ި6Mmflnk3/nyFr"CoVuptt/OϚN9"r2U ޾8xta.np`6bw/mes<.CQDiHd2,a Abe$m ; E&ft<ɐ{bvMm:[]rU-hDmŬ/.ޖ&06& 'g"0S1 Im#`⽃3kv6)bPQS1ei;{x4Ι/mۚsh. q2q$ȶgYȓ~ům+ݺ?{\[58 PGzgVzS!h`w`bO"Qt:f_91##,Fepa6"WsEQN' DkZU.ۘRS{Wo7| 3(92fHao@vwD g̖YbŜ w mYEr#4,>,&#t`@"f"o`2i}a_s^3YJ=D3MiȱsoÃ7+r mVCF25D@zr>$}.bqHKr@ۄ?~=Ōc3L>kєz:"5.-]Giڧ12Cf[TUCdPwE OI ]ݔj3)Ď&D[zf2_Z! z,+jYhS֋;bf D=#盪Ҙ4cyаh) 3@C$j{"U ,Rsk4fb2Pr2C~vtl8 Ed1ɃgvdUɇ:=}tH]즓Y4u. ß~Y( rH<vwv-ŶV gYc<fs D@E4d_nx<ؿ...jo`3eY0c6Ms.N$6P\O&ԵhEURr<9"jyF)&dXDMd8.J"gYYL,F1$ڎlm&JeY ;p\8|պZnJWU-hy}Hı"JbŬVLfq8yMbj&lڦnm !P6M;-uOGj5l'ƛ5[Hɜ/wxژ*#A(FM5Qx~vLpO7,ۥi:wַo] }'pyngg1,S̃>3kG}Dڷ(C*ĒPm$׳A+HI4׼f.`@~~ a@ɭzzGo@{2b6fb0_2u3bF:cm3!#"jG1@R*CjJO-ND*$ cr-G!@{sϘ.;|w{}K'k{Gn%CzLAT@<#N5uӟg MӘ0xb3@!1(BC3A]EAS`3cv.oFr pޟ)9Q4ß|zqQ{MjZH:6v iP(8O~Eڮ`{?K*R"NMGipď&$uAD݃&"]]\xaT̮iĸ3I1"FɛK?{pw߽x)E_t>릪lw;ۃÃEY1ZEUuE9,d֥<1-BYmILe9QB%Ç7o4D岪mgw8~eTۺ>v\TKPؙ%35s#Hi6%:ikiF@ uUIL]ӪteQG!vf:s`4#.G~F&uƛ͍s.ǣq]7M]z)FEIyChcffjG#FѶXEvIsf÷/RQľbRi'i]7\ԑױTM F#b|(b>CDb\vq3m6v EPa"")u ]'U #um׈D=InO[n6brD԰7ۯ~ 3`XAn"o!@ LEjPiԏL᷑ ۺk3%>!wY~XNS䌈10( 1dDDL"F}D031轇`JL`Dլ( 5a<0iLKL_n ΃$U!}DP#I{`͈94b#0#vfrw~)Ml ! z%)§@-(3"=8P=,8_xg* 7}n/ǾK @am lpPC6{+R^[ |ݠ!1n1:w0b.!l"${]8IP,ΓsЋ@ E?`pf2 ev".,jF{ j_]~?o^BOtM ?ߴI ڶS0@U@{//?|!riwt$1fo2Gb9U3f j [\͔G"*;ж-zb|m@Wە#F E(Х&kNhQZQ͹("W&Dr4b(FOvOk*՘s )v}ttpZ_]IŞ7:bǀyєRzs~zJIb/6UUO٩z?F(Ͽ/7U&7 ](h7uSev?\]_b֎޽ây&(?Dd4YQ)ɃGߞv1cRJ",۶888O&٬OkU-SJ!31!k3kctP5QIT;I Α۶i2;za^&Mݮ=fb,Es7@ QSl8-B:-Dֺm#md%9;she؇,k "]68Nbvsv06כMn(vibRb]McZeE!)q4 xVU-1cU >L r籩w {tEv˛x2ݮ`LTIڇ2Eb<8ܿivT P$9k6Ř.";gL(1RQz"N$e۶f !(I^oϞ=Z"0"M;٩u>>Z>cAi3n()%>1xm׼5DP&,2E Q *0.49qpPgvZȏz&=gڮvyj'I--J{a8d;B0ʸNM~2)3C*6{y_ڐ&`C*bH! }=dovcc!$4=HQu"0;DM}e <Ǵ9஢qp$I|`Vw";8=A0a+A= ݟ&()r^@р0h6ҙUgeгgSgj/^]ʪSs1*yG?j,!Y3bT4&j3qRA7dbf[K-wi5!hF @~EH/ zѐ}uʬ"73;<̗DeedD{}o!XjfuG Bzu 'c2nUF2mʋseGH&Bo 'wo/̱1q% E -м >:_;t{{ ~saȠtFfs&(؄' 'G(9 Øs&ylk};r^Ṳ mEvu?|ӯ\;&pg_P&MZ{B#$TUJNJYAJGxߧqoD@) I/8JD9%&bf5Y`!/hw˻z_(i(X*M~f;TrQiT`fbE87Bu{wC IDATtDպ):$TNDy1ZDK΢$n^B#SIjfnQ N蘙YDgD5=+<-vPURѫ~upg[Iߖz-Ѯ< v\_z\Di6@٥yD9O\إއF+|7$B-H\0I;.96]̆@Z U誽~ɿwz$0_78"22'ɘ5f=;% _}󍘩*;*\=%*{AQ2(1'bAآ,9^]/y*__>ӳ87lvcSWIמ]]&4U&G릪SN&F(z6 Gxvy',RD'' p!8ek)wF3@M}y"ѺyYVhS0\0b{UR`h?絓fwV{W]n'9\.aD$r1 ,@". S+.+D@!P6$!SS1pfIDU Re*sR`B1j )ϛ:IPs=8o[Bp5$#HMƞ T&Ã}0RDsS!M̨WqXT?z'>`Ib+Yk`knT!xxv~oTpHM`onuI%jZx9208kpV;}pٓك7|LlY]~^/WӃb~||trr޷LUDe|^__/ÃÃށ}W輿]ߙ!Ջ!yP-K|Q1E ÐU|vSr TJv{c~911kNf5"&M#˱clV{KvH>a*Ͳ\5b*VU\9YQrB{狉toE}om7oo7l-W1Jj2 lVbs ph{$9? :Ws΅)mہ"YhJ8,X.cbVŔMH>xY `=sS2"r9˩O)!:ǮZopjj\(foc읈vNCU9i'W)BQ󁘐#YM21R)-S?,Mk:["k$YRJ(TyѿQ9;ߓMЁxo)QZAf{!3 qJ+0hZSmvB{9vU:6Aq(_=_eKM IEtdJ$`9;`ZB .r%+H¤0(Wb7uBπH%+9Mɿ3|_s,93)8B5O6%|PB<_.bsgI2t4[.ƾr^d#!NGFPvf Њ˫]W++9ɴ!^/|RI[oH9G]<7|s6k?{VhKC0&3G؇P #rWk` D@ kM@2!hr7`;r옕(#X]UZCs="5e,7W?OyjMHy+mL 7 1,1'&PSfSŽ] 9&FE`62B K`I @a˜th!YmQH@7Պ L{Vc0&@ , !zW9 OҖFEHw3B~'JK:fćG@G NwR|xtzXx #"}ʅr!12w9"@jV!źf~ UUڲyrnNg}wswwr|s'']4Lλnfggv>_iy6o4뛫Mȿ.~?O=Fzg]K<矧NNQD]i^u]>C1q`ﺦi,Dfg Uճ~siMJ}=:Orf~|HDq-D!"R2P$!,cvtxm7 V1۴]׳E*I4aLY hƃ82 d2*!b̪BXoof{[-v- QEDӬ eY%%SPS?;[IY 8Q#1¦xG`!jhƔT%%[u]컮jƜm&,h׶)eRN 9'Uc欶Z \g9'&3㨈c44BPĘ ͚8%vțmcA`XӺf(c $e61߀H;候'Ĝ 3!3 ރ 7QtG̿rNMR\b30#f~軾e.X{3)ۖ6sITAS@v'~PT~z "hoFeIL@ u1%jeNgw_1\\?~AQ]!EE$|t|m6βoϞ>{筷vZ$tsH D 6-މ+u&0y&W˹&Ǐon3#2 8Rͷߍ)6y0pURϟ?Ѧm>c? b^̗ޅ7xޔ(/juqqyppp}wSz}؍xrz*"%9/׫ JEum{3=>>F"Q%sփ|1#dU]UUh9W1﹌c0wSLQ bUaL9?m݄$2lQW{B4lɃM' 9rq콷b唎fוr@ Yoݶl~t|tm;s,{>k1.s$nqs%w<#Ƙ>:I]ۖd]Ef]E$4T5+R dIIyS%KV!ruˮaý ../><qӛ$Y$s)]TQ4uC΅ 9窪KR(yRj1? T3q*,crL쪪Ǹ[@:$TӇ]DrUJ}N=e`Xb/2`"72~!ONC@(2S@4܅#,gD E4$S' dqnu7e],׎ir4T3"H+;IU\̦戲H/)#);B Tkxo ff;LdU&`DP} 2kfJ@T\;q`Nzݳ>z\9V'f`UUдm qx}{ǭl{߷mIw[]__8믽ffw7{˽ݣӋϟ\ |-O?*? :kҿT:AOԨUtQ)hIs.7I'xB;_3" )"L̬fAaHd̀hȌe]ďH;B|Օ:v^Dr*qe&S)HYGy{ҴL8Ěy^61j%$ ]\\ݍYd,eۧ% <{ 26<@ͨ8@S/ᣪ9GSD՚9QI%vTAAmǻnڻnp59! }s CMX4bj}Ӊx猰bpu=M6mK,~o|xGãӫF1fu{bX0\$lڛboo~z᜚Inq\ݷxzrRWO>uoOcQ>Yjϟv]@_>|FD BCs]_e rssEP2$0伓20;tqY]]TM1*xɹv09*鲋*а #%@W&` )r3Glk?~_T~Q1#"Y IDAT*j_OΛM3߶C1XJ1Hͼ,BnB!&c9 D9呑Y\[}i{USH%h.F6.&RHPYxbb@¾fݶ7So{~UU!}߾|~ڛ{qvtHG;+켩f0Gwyŕ2T+Lk󹪭|Tlfb|ô;;<2O~7_ BbJ]`"T:#?88裏꺮Jœnn6Iu1}*㈈c{RMi U۫OӸtcYUd,QDn(8)ƔG*!䴿2Ws&&ZZwq1_%g5˽T6mqNu 덂K%e4:)}!swY3cf̾zݭV3; !쭖9q%%Ȓ4x'j 6 ՋK3ƈÐrf|m]p ;&k7t9 _wG1%g:\J6DͫgUp1Fgh}NZWMc sNFL*:Qr1mAgojmWЈ9#j~OafR$heI(R v]+6ܒ$`RiQzppxa6^*FE% yyg/ےF=Fr/+Y5%r_/|1_h9{iAD̾ wѺ3= @4%D4gS-!DĹ:Rߤ5`%#ӵcv ZLTxMyv`*4#MٵWFƻ+ԧ|ϙrvzcFM&ޣTB~Q'3*vI)s$ʎ^1_kvepj>D'Q`2UQQDϿ cYLUΫԪ*T! Ua}{LEƉ؁;mRs@dK$WD!P L*'3益AGL ?EԲ PCiҵɬL4Xf}'Op))rYKq+>edW&TQہD'sߎDD}b蘝G&@K !TU01®ul uUr2L"cQEr& y2bL~iZS_|e811Ys`D>8BnO| ֍oc?CY}y^`o=Y4 AAd5QUS4UFf3(*B6S-B]d/!!qYi@&`XR @NI (gќt!`m.Pznhguy4>~m+bRٻ>8<:9:ܴ/ﺻ٢^ضs*1d?[$Yr WHYu7 $3Of1cfñ1#A,Ah.:2"psYΦUYeFq|HA7SfM݌}o "@bjw;8:`7뫤Df|OMstzoCCe;fݯrNW佨qݴ㘖{::>)g}P;;;9==mۖ8mVY89$:>>4Im|W"W?tvgt;Ss.dޛjq OJι{rsuДAc~a8a 998dT՜4 qxݦWx;ly&y4UuWW/fB9x}s*If*9v 8nDiBhBUݐo7q@3CBPh68_*ztt2G@Dc}2WĴvCubոB=::{3E5I#c0T!8˪o1e0޻O6ݦ?վ (NҜ3"Ę>y[.Z7MUq6wڹ6$X}S3c*4fsDfcQ5+O~N!x,ģY\Q+f(vfID0*69Kb agzg/\J)24- .-af |0Lwi@"ԄPӚGHE5(""0cSpPA\e*,@9Hť&bDU"%;doP=wowD;pTx)nҎN`D<ň㎵ũ!cɆJD jb4Y m 8,Ξ"Rnނ~' h RF>@{&\c0dJہFĪMz6 )M,J9lRsB.tX8"fR53ɪ+9USӒ$FLn?fQ犐nkvD$b$GryR lv` ,eP3SR:^X 3D#"3'v%}zrO;xd#0?mHd@9V~xt:_]?)&Qވ47#t8qY>x[fVD"] B^"-2(W73 jPaSYaFo)Xu^7 6K"|>rv6]2iGwǧ':ĥ?|H-wtyBC"2P1I,BRhVʳVllHĄ$?^EyjDsx@ ~>ke8PEٚ)73TR,J{uI&R3Dj ($5Q*WKgn>·uU-wZl,xODfƽh84>ⷿϾELqP*<8}ۮ0b8:::dm4!fUU3Qeph&CY_ s+vTJ(g^ūͶ?f{Sܚ>D-KvFDS<3amó=DHM3S+2v]h|YS1:-g3f"fB}^8zvj\ňTqD,籤I@Ëu7Ir"ںngs R!nD뚈$WUejj6[F^,0J۶7uum69gb7ww+S-1fHLjN)wB䝛mm bj&N9Օg ۆŽ|N;laXA#"$ef3-`j̾ L wEg\ W{(Z;K=QYOf4%G!DJʇޣ0%7{Q! b  ؠ6f*UyH9 Bʻ2",m=J b+tMmQϑV{?_^/{pvfִ -殻 uݴ5 lld㶝\ PUU~[ _I篟X?(WvUSɣ{rW߮VoW|vZ1z>ۛbn`_::>B/Ӷmq*OONk4W=xRtY _>2UW 0-3@Ĉ]U|>gf;0}%圈Lw<.BU{W@j;&IDb(fv=_. a1gI!ެjrz@fU=#ǘǟ#C@yRm4 !)<ZqeQ&M(d>~wB*TMn6f;yv u><ϞPr, UiG@BJN9L1Gގi֛qyXܵȄa`nƘ;zSZtnGj$GvY$il7dZ-aT: 0>7e$)؛"4_;&iZw6I̔v=ej`( 0S7Z W7IJp.ةvMHUwPLWP|cD*p"19} 4X~;dIOC:ʥdo' %.[`cr5Mp{8 p:uEKKtelw'wL{̸@i P,H`oߢvd*0-Qш\sn}*`f@1%cb&3346#4g!4$&DOGd>@3"B=kT`fFMD !EUJJr!XaXr.1Aԕwf:!0ډ)& óE!vJJ8:,1+hȅD+&h_;M3_!Fp5v܊fIXdm!@Uʯ@B7e tƳl9=<:3?zM=;yaLח 얾>fg.bn{%i0g@*$"* ԢXdr&N.ʄh̞+uƎ 4p8˔~tw"MH T(cƜH NR(cYs,K?/ z IDATb$0 7gQ6qY*WW@}EPywY?|u_/Buztq1k[/vVy1ۋ;=;/W?_굪!1*XA-rPD8 в&?iсs4 cʵ1i?;;y ""? Çy۶7+59'XimMrff W3oj{39;nn:v3i8cVA5ϠYB06ɪJHu=9U;j$Z,ͬb_yfFՐ(11g8<sw= 1!֑g "Lg>Hܧ8}]aH@DDMHԶ j$&}fN99'a7(+>- !35+"ӒwP\5"[Sr.Scv44)ie pj =+KGMHh2E%cGݛmPSތI<[$QpQ,Yv;"0qY+9:A/41{*H/@L-˕?2|>`T$",&Vؽ irPNj9H)S E7͗lij+,xA,SG""ͅ$d)RvvrܱRk\FT1);Ϯ#2{-` ~_)jALcRծʘ2&fꀁi YTR` `1LBiur_KIn“"D*H昘U (-Lgɫ-RƸ6HMb D̻pK @ 3Zl%DP)T޼t~C``0Flf 1$Ar 7@jڹYSjyx}Vu 4IYK9SlgePJ`pbHd)x J5f޻ @MzV HQr. sۈ@D APxFS=w%6l@XL! dј%ƨ9g䔒~M=0ԨhCo69qNu{wƁ"@RdIػl`6?lNtx<黯rN8ӃKQPխ\uDfPWl޾,qm7˛ç{{WUWvpyuEEOOnF,C~_H rZ,ꪶuդ1?u/yx|X7?pv󛛛Ӯ+ds8F/b$7E,gC[^?z޻|ttx;aÓã+Dz/NNg0\\]\\z绾#""u=!j9rΙ(aܞtXިdq 'g'FD萒w*Ϫ]lwuNx_ž>\̰iU4>,Me{UETnnV+uk`war{tΫ.c6ǘq6j&j,I晙Mع rz웗/MSվs6`480dnEL86F-"Q7MSIއ$4w~TR U0qqc(%PuC)L R%rH6595*;S!:T\]ߜ}?aqBf#m5WpyEvTY aCsQ$o*MЪע,Sp;c9D> YxlB+KRU%ZSI:B^"R .%ŝQEh7Є|!NRlffRee70@gfrPSO2iSZ^ J;cNH)&#[s.4FѦ: i`2PnUxE|?063Ҩ;ij oJl:|bww.%b"R 2猈R? `jVHe'vD{{{!T8$91KB9ĩ4d}.oH}0覙7BA F3c0`xN\dp9xf{˽E`1!*ҮOd")U۬"}e9;31#2NU~rHY$N 8!uP>ŹjaӓSGTyWO>|d͠S)4KejL$KE𣓓Qҫ?oU{%n=1\D%mpA, 4kvsog=<=:Y+Sݟ-2ln^9Ia]^دko6r,/>zr~궩?x{_}G'_/?gXJ?g?{Z!жmMttFavH4k5/mۆBlମ ƈqJYUl>Lf"E-6mJш ~+@!ԕcݮZҸKeq* &,"3šO12aUWu|9m,T,D.?E˒hrCY>89;=9u18W7m'}r9MYLeэy`o8PK>*Ԧ b"zss8I e`;@& CyS)*8v9ƘpҾ""B1<`%3w.x[=xpS͋|Ym *ONN.Eg󙈉HޙAIn/ aWulkQqYQLrǐOޮe x 4(qp/ n *V~ Up0څB+nY|w!m 1+'ǫ>WmSvM!!N bY?Ӝj::,V߄vDMeO +XKDߞxޟ(I5QUfDUc&0շADAEH%"o|7/>y,SJjV_VbȰBL#R;: "NSבC)C &wq3UK_y{y:9%OfTԨLHΡH:siQμ,;?H @U]UawO &2!(QKp/-⟂4-3652Z;^bsQ*2@,QRl/EZǓ^&8"bt۽i.FR.`]RHf%@ɼL*!T󋋪nڶ==9}uy~^Ur~Vo Pr`ۭ͠,G۴Q@_U*yQUT#0+I(d*]@抐Pc.WQ 22OjBb+PQASe4! 1n.q8>8UL@:0S< 89D63Ss$.lncR/\ ϗO~]\޼6??__֌w>دJ(W/zQ@5EBV1 ٢_wgOjOr/~yÓSOQV7ۺnk潙_}*UU8;>;>:psm^UiYr>_㦪۶|SWU3kONb*ZAּ)EBjg-=|4`ӳG1Zb>_89;wqqR16uLc?Y 8Tu!T|j ;"f0S4>o/aSU?#BN\=yt#rT&Yѽ-nWAJTP1sN1o3pZo6c_:81T `uc{0i+ m />uw z߃<ٺUDrd^w!L_b&)qF,B])G@*5;W'FP+d%`ژ :)ٕ+%߷?C*.wJ&!d<9-h <cT21-QɓHn.EdfJDD"2 Zhpf qNG@grNr?dѴn;#v]_B)RN ,L.L5È (jy|+0hZUuE#⤴RO9"ϰLnFiHd833!㰍"9(9Ua\xt]`HM&nMLL$Cs."EIJs*0d BAFl4`"1!sĎ U&JˆUh@4l2fspTwfԴ-1$YU휜s$ J4Gޓg "m2;բj狇G8>}}/}l1?wwsϐ]Sן|2˜.ﮁr}U0try蹲uW/&!8qHcjm߮o^ yxj>88,Tcfdi$J1.%Dcjg1lj @Um[U[81C.@XlI=UۊjI 9F]pT!dܴpc8% uS\>T84sD"933SUM9""z&qZXEF!1mL*YBSǜ~k**s]W!5Lf~c %惏?~vm{&۔""z. 1kn*'O޻1L` HXgR~lO5[+dߵ:T`w`Tꄋ|Lv9r \_c95+bxvsYE\1Cq{U%r7W$/+ {3'DE,tNK}u=0-UIH4Nzjpv ƥ g!Z\L|hBhp h7ݶJ)Yޖ!4s ͦrߧ 8bU!rz V~ qf5bE&t?4M~Û"((:Q(1e63 1T1)ɁĹX[k`๮ 0xvD v*(=rDރiE|4GE_]]_^V竛e.v3U8i;66޺!OH7M jqH&;SA=#))X4=1g0`g]zjLi3e*%?UweWla842x(Q64Q̱o!g%Xv4D#8@K%+rG*ա,t&kJbcc)*81>]@ D3@rB凜W/?y}9 +Q!ūK}u2[|"T~W̜ỻͪT}/f/_zGGuݴ⋫[|1DMۦ qC$1d Zp]t%昲w 0D^ze RL|%`\(us!'#c89&s}׋ s1u׍*:0cǪ }"I9>0A]$򒒙ڶ3fN>|;Ro_~ٜ#=3"PΪ:5uq5*}ZhsJȩwS'%{サ^<Әs.Mb Y>~gWWYK@u Cơ_V1}ͷQ(Yc*Ւ%Ï> X-=T@i JY"$ ?DT-`!]JrK!Śț]NE1`ͮx*S(rX`.gK`pyb眃Zh7S::.3k2%BTqG!MsD( ^W-(0:?j{?xdz@65 ٕ`ʰ ަ֩{MO#V3'25W_`m4YN|ߧM~j(N8; ) h#ba `EYN>"3U3G6@S4C"B79'hc`B]/?[)(bTS%zovs1pT M}dQD`NŠzT`^xٙzf+sdfjb6"_yI h!{WT8k*UD*@&. IDATQnD~HQ8A4~0ՉᕌHė:10 1wp8TrPL]i+9#Q vwb-TMEsg3%@A PY1ͫ^}.o(+HcJ)Ãq b $f̆RK@Դ!:fy 7`cF55W #cd /dL1Ŝ5lST%;4sX,y() ila>^&WIB%k|DXtO/ح9>nnU/_8L)ڬmλyVw7f xapbjcC,NyWݹ:;;9U,|O?|?|,y٬%B&PUubSBG&qPKn甆c/4K*s Ua>\UϪ(fEp|U1EBigM1Vuֳa]߭b?ṉ),buLyCY m7ALD Jr6bNi]y$a|U|`;%rb&j98t/qL?gϟ?N݅`){w"UY$K3YԪe*y^ëNF-}cv[-VU ) sY{;mYכ*0{Q@rqx٬)< 8tfh6m#!}Q'1 m;;[o#IeED7[==<̪ ɇ1hzʬ\"22wu{/D"AG 9,mb<Q r"bȢ` _ɩH踐{ټéG^lve3cuM]γzsCH̎R(d:mv=/00[ܷIz-3]?󳋪O>{7::{tsXտtgbvëMU沪UeUHҺ(a"_}ճg޼{ųeQLջ߾xxʪtD{v>o|땪6uCߗ e3sEyv?42 .gLf1Tx!Uu~Bn~f:{ttR!ϲ:;?﻾B=2*MSu &Q'vZJ""r6uo1y爓h]B1! *hT[Q,]rڂEp̓W/C˄1n?LgI"Ll{uSj}O)-j=[b "RUUY*q"C UUIK_]^$ }IL1:UQ*B`A$nWEYxb6O)?|xwCUi&!IJiDv\~xw $&L "eqjD*\205u%B)4\ jYnrCg1E >"q]%h*VGERsnKHcjGgDlj̅s.""9V2,*&NryHeBS Zgpw"Dtቁ_3ɧG!E|L~44NQ1{< $-|Y. Dy\dh85z !G N|$,5e8|<[!sGUpĴ '̚w2yBbʎ-8ụ閿jD@Hq_ܝ-H#)H@eI2ΉL Ӯ(K@ l Щ/ Pg! d9]!1Zʕ ZB$xtxXK ~~]HFzނd ll2vX#:e6$9-ǎj`6\ ndfQq"ͼ#6``,Ll*l:x$ a T;R =#SJLIC5EAgԨuCHryq>5۷o^C.][KEUٳE3$}מ-=bvY"PA&nz#P&I? />~됰(7tgWvϮOɥ?wq/jLҗLig3_^'_|:kӺ}Qdoc;'޾yxs.+gMY:fstv~LNn~/UOcHBurqZ.C0!ľb0! VU޼[=}wA8ݿ Y;$*E4YI]|4}?lZC'b"xA fc7ޗ,%^71aֵss㦪q1;C 9'4[Q%l&wzf3@E.3RH9J<Q5{֑#,\?"JUaGr"m`({6 rx!5)S*h$U4$5Yni,',Ar@5;BBCʴ~d6C "2SGj&՚$#FHe=Ku3qBHDⱡHeFjk\3j b&9CXf_~G&;?  բc~LFDz0v|q hЀ?f'؏`HN';"10{$qQAUAų˝`*(v goJ@0&3cDf?K/TUA !zbFdJDL)E] G#0q r&1aHGn,3u9&Mo"ȾhUEVBU6rHjH@ug"Dr\דzMHg>uЉh_]^M%A 軷o[buSJ˲㊹)24WOvl$Շ˧(pv(wPwfȃKXuf_ԓfPs/~quq!j,f򻯿90K@b◿|pG~ nn./S~b!v9&=tve6a? Rg~ċ󋺞-ΈiZnkzXgl6:LR l2y{K)Ř3cJ`е$I.M7_iܓ. S4 mwkDro72lg ΦL}׷UQ2nJYqV+,.n>~qf1 !fáLAM*<-Wk0T{G1ٴRUS;of1^_]w;0nWeY$90./Dӧu"7xA<:G1/fA*c 0_<{*;?GQ`Cܬ^JWT3ڴ;Kl6Ӣ*ipE$ DWoZ%v݆_߿AD$B7&) .$D%"A]pšG0|\Avkh4e]VUL)꼫3ບX<ӲEݐHyGH}HC/*^ b.i. 33I]T7M a%!441>a@$1Db!/{3n6UUÀH"q1nۇ08cY()i{SDPDѣmUmz"1XRhF@Zޯ QTLh<<3TvCPA2NSf=΋'SB3$8"E) xf8h(4mPUE&q #ETC ,=ZF#RLa!@ʞ繹w%EdfU":~eF_ r` jJL] YDۧׯ߿75 gUu]/n4(Wl3:*5sUcrAvswU)9b ĂL .*ĉ+8ƎAUc4RJ UU:AbO7_e짟ͬ7?0N4uNټz]Bb~kfݮ!MU=zxSջw/<@nWu./ﶛ߽ͦKs=& &,릙vbC?\^>0'OnvbG/?|~_U.~۵$UYĘXr>i{йգnWׄ&" b]wwB/UUAIR>EUc귻yͮxDdֶb1N'"psfTVu\.1YB$1 rg3LE(&ue^Kw؆)(]7m7|?x{@ b2 |.̒jR`$$o` f&/̒  IsU=I g]"b667U5-˒ّ0ĔSaV㧛N$!QT]w8[Μs͔u}WU,0̀)ŋO뻮m+ hWͲUv頍}pha&gev IDAT@^htЈ(OT0CuhӀ8dHKDž,=*g䳪/K #vd@&}\2Qͬa,* -Tبw̸EA؎N N;bCd%sjP 2Z# fhL E1َ3\#oOt||*|' ee$ Ҩ:VPds<叏j Tf_~  ro#8(dI֫ Ihj1bîo&ŘAI jY11dǨȖg)|L1%r!"2߇!'1}zx폯۾O]B~7gB΋d96!03s!z!\YW*"?|6}%/l6Fpy 1ucɳ#$"FE`蘋ƒyP{MϗKhn8XoW0d,!'QĤd4& -w4#i%r jJ W6Fp!z&th$ ļBShb"ULDliH6e+@vw#Y|C<ƴ8$s_<|4i.nBJTeqOon0ll:8v;ccd*'֒t`6]F~]p躭![Ib6ajxMYU~L4M}wwC`?nabLl:u]/TS}mۺ`݄8TnUeq~~ϞoYb6BPr UU3S4?a]hcDž/bxj*b9#snߚ*Ԫai,.B3=!lf\hJUy24}7t$Ci&{+ 3GOcH @^U4Ӯ !@Ŕvm*ͺ{Dlyuv=t?zt:JHmʒ0iQ:_UƠ@ EH b]1yfesuu\Xx-)dtvvŋVdH>CU )T* 6HD!337*|6?wu]ACɱꚀFw$muS@ ŘLUB E}DSD̔I ͠=pvv2x8>0!d!<gУv#t!2cw#暓KZBcheȨ!~ƍ="2֑ݚfj}-a6"?a8DG O'"1ˤfbDDD|eY63vDl\($ٌu<:z2F\HD %3Hcq<H#f1r%$f=WrVOWv I3#dDQ,*NwaWٲX|# ?`1F\:ٴި.\K8F@Fdy>sM! LQ3312Sy;#l2bO`TՀ< )Jd1!F0M1BQC}fEH1o(@ 2'"((i;teOupzck @(&eO>[׎sף( B0"o>fM׫b&Dev]7~aG cQU􎼛VUA LXN_9$ B8$ڐuV 1w "9"GT8#0) W.ϖ_oytuulǘ rU9uQ9o(|N$K4FA))Q._g3)e*%( ) eIs2*:yTTE<yf0r{sL!CM];_'MSy.g2ꓳ?{ן<4ꪙ&Mg))4u\C_COx i;HW1 =gISM!Lfzu(j6DI䑜Q9O~w|gϟɾ{B^(b:??DWI~w_^_]___"nwmͣ7o^/˫a4^싟}o~uŋvٮIL'|d\= [ "c1W}>-˺ڜx{{C_%R:İ Isl&Dʲff$rX߾NCn6_:˜z+1'gjeROUlSkȍS r:;\fNpDs4Qa8i0W0N85∳O9d㇆N7m|2Jf"A<2yN8Ocu]$C?T]YHbxOUj;N"ok!(Evc]WZ@l&AQ cJ*1F_EUs8 }Fi"bLC8Iʢ!T͘WCG)YLGrT斎@0gܡjQf`a_Qdd<!J4cLU:BI?Rx C=uM(#YoHd`d$ψ *86<] aGtS(Ɇ4̕?HhXxw{M |hj<-MĠW\tANG&llBp$}0 q`(oN%p}%r0w B#H[h[1,2s qR96ێ#`}?޿|^rF,E0gUCtZA e{O)%3H&@A^keQb]@4 z_͖ $W_٭7v..7j4D ccl!4ӧ* u=c.;_jj/VZ !X9?u9 ۷﫦~x9LWsH\]^^AT_|նfLU7̮Lsv<ځً~cgggM˗/bȽ?U] +b%cQÌurɗSUC tǮL! AҾ.š=dBYVYp?tɄ]qs󓘂wP:49OEnǘ/ ?{x0h0HLΗ GVt|?Md:i)ra w_*C)DHLb23 };DL- (xv1AL| ݺmEQHbmu7CۇЂ|675pޛXRJ)zLv]Ç ̘0(IdfQ)˒RQyAdRJQo$ˁeY3p!rYfq-'Ŕ R('lo;CY,Q( =1CCeR2\uM}NIL]~nfLrۛWWG|>y\=9;ݬ7yCuPT慠+*ь* L东MwkiUVgwW7n.$l`Z}7A$4MY pMסw?Y,=zշ)Ô?٫"ljj$udu3|]m v])yw?`]?xW0/Nψ񃳳ӳG l6N۶5|4ML" *fH9&I!t\.77'uSŪMl:͛DR!WT,㤙jAŻ`@}wྲྀmH sfUvARMdnBIC9\O];hUNN|y3H C[UMSLǫG̔l:#xΖ IEhL0$,JD)8$3̌ u)Gv$6MpRnr4MC/n@BB&|!%xda+:r"7C#XT(Crc}8fnޟ sN/߇OxQ͔FF"")wa,~H)gڨ+8H  H0eKrFD`Θs 0:KZ Ҭ `V5Ya035?+Il4eٰ\^W2H1n`*>0b@UTA*\ap8Lxy!&2-mbfdBrOo7r`/N?Z[\" ;s{R HL< Wg.5N$I wC+yS=}pUUbTT$c4$$S)٣DX񧘩e㒼`RNMUVP2,DD2@9%Jl1I3BDfrEurn8ђ\Hs ILjUݥ:ئc|vOYTd#E^v]k`uYrhf0 i=k?NT f͜InV~| vzlRK^11u Sʓynurv1'$|vpu|zyVev]۟=ۼR/wWwwC ;_nu<RhNPWC&"\R\qf8M%eI |T Ly0pLYDbB,UUUYS9&`vDu]>B8Z6UwM0DDhhD &5ucb}"sUW)cEL5hhB!0:?}NދݤY-'w7 fcTAZ_nc1$hp_=EȇA 3NDH̎9U ~\q5x@㐒8l&)Lp*r(-.Y=z40DK#6s9.˜'P p2(Kᰊ l܇+` pR71888ⶽ7JD9 ;*OdV,p'RPb`r K1 svo~޼lfrRxw흤XF=7N1!"2^^{O?~m?/j|8c:'Z<&YuUUr+Ѻnw}7t998t>1 vslj`!XWb17Py"r' xW4Ct:b.[oq2 Ĕ6vWW!Lc*U'GM EAL2g]]N *Y\~ɳ'o@$f: 0}GHHgyqLrJM3b%LLM c'$KA7 @>~rgS2ZWc`5;MIٓa55d'f߽ );^T%7f,Ns?\@M $5& |I)/ѐPCdB&<[9n5eAPbc瘘{8;_3314$p.PoGYl @ϱi?tIԓA֛-"08Ϟ}|ծ}95M]sd5Uu4[Zj|}إmmuGվiQRjS2`h1?{o9H.1y^rgک SO&wW۔i͎4ih X-Ga%CI3v]۵fiCpGEw}::y/L1$'4߼}=/NNx>[,G"vn;DʚvN&1|^*9')7!@֌9KjG1wwrw{S5zS5]?VM =-gamlab`jNR"@f6'g\O]&|6[jk 4T'sn\_T_x٧77w__6gmN'.ǧCA@SCz#xß,`i&*D*" j"9BSͪ9I9v$m߶*1ozolO}J1IŀعPU;8 %}H]5Cje'*ZfvcW07k< jϟݾW1jC['?QPULK"C_fe(vV@4`i +,GF$2ef*eEc Z^>7&+Axa {2(c@4ab'sY  ȀМӘ:Zv>N14ʹv1YeQ5,yB,NǠ;<~Ũ8JϮxiL5gą7U-kC?1$Q, JfXJ'ÇgGܡQ9Gak#ȈNm]‹~LHGBV Xj?bGOO%X!ZU$*HvC F`JL$=ϟfwSŰb"|q8M !bۍ9ciE\f/ +s"RFbTwjTxplɤؐԌ$ D`t]9;*8$W!KĨVǯ{Ӓ;g 2)F0LJa82!!m\ -`UVw"6??0uуh10Ri&y`,MC"+9켯|03D14SÀGm22IVDbb 0?8q^\&DqآkgDl0Vo8p_C OʫbfVO]B Ձ+PGiJL%% FGX}A)Qp 1&&PV,{iM# - ZTr|YXT ) |;7B3C>TE0e8W3)#)01 }8@6,2 TeBbY*x\ LD- 𓧟(ҏmm]o޾}cy.T!xf4 \2'{">̰~xBz᛫!IjWY%2D)1)2 !2QY$?XY#LN¡Dg Ɩ^b+Rϡȫ]LW)ffLjC!E0-ZcJ Y8q lw_|+&>bp~ۡcu]_'$e(T@@$;fbf"n͎㉇(/Gn'?eaKJ*@ 1ɻv"cRj{޾իn菏כ0!,˶m1vcf٬Qpg3I7,JOGg<'Qϟq!!Iw" O/djv\͏Oм?7?^|vv=WO?bX.|z7}yao=|]|4)_^mֻ/6w0\\|7y \WM^$*1JVD9cQ%EeDcԱC쫐bVG.TT<k08Kh}0n3Lۮ%Ds׶eDLˢ)Ę <gg?]781*SBRn(H(@SUS{XU*@d]IYRAGј;% f,FdL;nmW[Z>2Y()z7GيĈ]9@}}`wԊ%͐wp(":5U ;B#3 ȪuU%I#8~o*py4&3%"T& q^y;>?G ŐQ^@X>Ø@񩲣(#^)("{,=rX y}1pk?Ū11kCx>ML0V]a]CU!B5\lGadvnd"b8sTUo hT)!Br!BNr:9o6Ÿ``{$!{_] TbST]iD% \U3oDI3/535j*o 6]ooeXLv7//(5g]DNTx2 D`#A` H%FfO)k۶ @DrL $BwEQ rz6Md绶Q6CcsĞ*)+RUEQ9Hٔxv3j/"D`D-qk8߽sdZk3YQ3 25`&(*JԲ(1n.Uۮ\f3%,w}""yoRW/oviٮn7w*Al:RM .Nɐ3V\rBbṈ>l1y no[3sbK\Dݠnݭ "aNq GjǏP~nmo~wM7ݟ}9̧/b1/f3JUǫfCջƤ]_NrMf̬UU;WW%syQ޽y[UNi1_ qCo۶dR2F*@"HTpZUvoo.o.v!tIݐA2/>{^Ei&ߟ.6 \߾~ai&8Mޒ Ww7[3]pi5g~: ;0n2Y4۳f).T~A!Mj~2׹l\Ew@wU]WM ){_"_/V1(jf ޅao޳!@MhI̴Ck6! >@ ULwoߘ13!RJQUs)"o% `Cв* g/_eS>*}a>Z@AMveϖa&~Hٜݓ:|nX$fh0/ZcM$.AwƮ0"+HHL9ōqp"SLBj/WhT2@X`8Mݿ.Xxz4Ўe{T+p#>+#c̟5ˏ~:FFx&(,Z=:5<0H~xIE?^R&$JAMGXp<c5)+(s5kꫯ׿RL)g& q2/yf"+ $f!bRےES,p*F$ɦ&"PzUd`fґ!2E"3eqM-fTWpǨuv])oʥғ_?VG?_|x|`Ww{#Gp}w ;PX,gv*N@k1(Mд&򦁉ȹTGntrt| D+UUdC3SO#nI)sUU$DVx$;!FG}; mN 8HS"EBD)iE:df%TK4!Te2xF*7(\;*8dgSE6a$Nbi+1rGC51sC=~G@b IDAT"ΦQrNH(0x'"X%;`Abngn&)':j W'NNѠudy:]{ջ UaYaNOʰݾ.l+7;[Y3Ud1wPK&k<$ix􋶃wݻdVݭTfӇ~/RLu=)D(?|?_^|QO>rYM3Rjv1ھ_oD4z}vv&)-Kϖ @>`fUSq/j*Du}h Uw9W#}, mnRh/5Opmjzf!kN᧏}:PL?yx)7~!k˛ ur6Rq:7/@y1[:_=ytLTR7ͣ箪cf+QoSISOoM3"uLlB*D~Mꛛ+J)C~f 9CgI@vfQ1dj&18 1FHI0y|PUT2  cRn!` H`:"D>p(u XYЊ,1B~.k$.A0@)#(buBp3F~F\a@kV#T #1@6:q12Ә |TRt?H ;_J&VY$BC缩IJ|Q9},z^01Jch4#i2.؅JG})HY*{ gDint#BIV+,avGp>kGy#mI1XE@n-!Bc9aO)&qxnP[Bb!2D`fbP)$bK%р:!Vi$gCtao7rF9†\@FԜgt92 @Ӕ^ 䔋1O7Dt e8RKX CwN hsJf .SM3vG.(Jɗo޽] UTS!,!9ʔZvO1%3[*DƘE!]߿N&fi_\\}^ SJM]_L̄ιmw֛rMMUBCdXo^j<;BͫR6mr~yswwuֹ|mOfYC8F}zOoq׵͎F}Vdl0LgbwvrNNݥRWU]$B7Ljp}wfhΗF53>%SU&R ^TnH9Avh$1~jވE2BzSJi:mBp j9l,`"Q@("K3cv옉^%#$P1S mI)@J)Q/d"2XյȨ!SEU`vfE+C<C|<{Ш(#atQb>@})R++]V5~f#%fxԍ=")Q?AcvzBCX rLR|D/O@T#p,J13+:M[%ޢ>^qHp10wUU,͈Edr1Łg;VCv f?A~c77o߼zO>ӛkO_ `DrL0xf6)ȜJ+;e.pHons],T]9fb6ѳnߚ1t)1+(%$28Yt|tcLƅUl4#r%i{h$P=S]]I9+%CJR ( ;"f,f͒>,\jBα#tC7%XC?"@JN O1&,Ϟ m7lu|d21fd2=Ǻi)dْlu%w?ĔwjDAE5@ӫ~H2dbSMC  @j9tw{Od]Pp2"^ {wMmԷ RAc|zpu6J*!朻$1EP$!{h8䔼S&A٤kkryqrяǯ_|ݳfROooButt\z}'|wz_~O>xyX;tp8NDD;w90׿&t}oIUQfAP4 a膡!9:;|mݻa{Pd~`v&},^|2l>噥.ϿLg*/yWW`HbT} a|psuѷ7qJ҅IOgdX>QɤnהbTz:}spN|LMv}-EGwB]Ϙdѽߐ |@@*elNMR1m(KP015ȘgcUM!23Nv}jA9'f/PE1;Ēs`0# L)䡏\z"J)8 RUUӘ%nܛ b*=eLD|mCҧ<}+cƂX@(keY/S@DQE!KVdWV1Fo]ZΕ2Sf #=RHTG M鰕 Z1AIT3`R+2S~GŌ %(;+Mh^uH6&+ubVԊsQV2JtOXxȹb*NВu;q,fTR2iWk@`X%eOKt"H?ecad .݊ladncJxJe/039~q~Ih.U!g)-b~A_ e\rT,Ld*Zf9GjD_y<Q0Gv{1 ZVSP5A T@DǡbqrMP9(j (dn4>"RֆfELhS!&F`x6HަջW/;syYx{vLժ%%r4)J`y)**"pmB4sax&-wU=%]4zSy/9clT 08"&sDQ+,d&dE&N!mQ{|uU#$AN*Zsԥ(1g5,O%0c$G!Adq1bBO р &>ɲ9v}j}ԬdYH QRJ 4aB9b4 1%+,6jع``*&uvf5L}΃oס_~Dqh}wm.Kt+tbjbSUw ivW@t~v$1 $esJճIJ֊!B@:lHQ! d!1t4?,TӜ?^>?/N^~׿CgF=.n5f޾x>2_^^zz?t:2{@\*2Lټ*hwt2^BU!0'd戃suuDo߾=9>%tX 9iY#s7M̒qs} U7]UAW߻m71b //돞>}w_}LTa6;'ú=b$ * FfrϚ J*WIM ),N7w>J]\>Id}Ssuqc$QÜ z ^Y0 t0?l^EU$fDf7J1r`j1fz Up,x'~4JUعtc18Ld;D8Q͹ l:{/9Q9g@D 1kNUS+ۤ)+"7B8-J/aDCńh~-3Iv 0Sb@Ǝd0-͌4ϕdRbY,_baYƞY#A<"N[](?HU %<=T?JSsZ$VP@sʪYAE%%Zh aMh,C_@d`Jɭ㈬ rRh[nҌ 0SW*5c0&ʐ̘~029U05wΎnޱQOJ`S<Gce1ko,@U˩a 0rQL2wUf"n/?])yr9Wa11s.d)/dhWIG:WsdghW&S~T>f6Bt<8~jM5Zf@SuL)v[;w|ۯiʪѱOz|yxg/>ڬ65rҿw~Kݮߩ$r${lZ "s0a7gs8 ZPk&HC7!lv;#D*8PuHyˉ:Bt6 U彙c:Z,H=42|x˗v Q!'b!&3PQQYlۺeRdH,jpGd$,s5I@ HD$@AQ(m# a|CĪ\ @gaǀcrj>x*hNp\$]IB2T{'wmvv>[L\nG/^齻M\.XrJUC(EĦ*Gcy\v1;rJm$r "Uf.EuĖ"["$KS{'ї@RCQ?X>GO>{ߴm}]w޻>o|15w.%Iѣ'C?Ĥ=' {I4ɔ, Lm]ܨٓǏ߻5UB zM'f$sGGrumu B33#:"PյIu:]DY\<;hvoA~RU|q~nWw<|[6\N<ݭ_nws|p}}ev}t~Cv[8'nd3ܤ[ ]CUZܽwͫoҰE3"H.3rHAUsRLJ˃fwBB]]yBLą%R,Y @90B۶dXvV *]awݻwaIRu]!9Qq,3޻TEDs-}:*M!eǔ>}{\{ooT+SQ0ӨhFţP gG#& ^ ?t:(KaOI\d]FQ7q/q%81SOD2NQaPY%΋@Q!#FbADS1l/hSQ@+]d?(nuh }To 0o- }ȿ叩i,+;>qPm8. v?o~5+oO "2sA` R!JAhf"""@CDDTLLSNDc6xKY&Da9*({9J9vz S`ʓwV nDd()>Ag_O>ZѾnvpwV7_՛oOys:wn,&CfPvq30(U@&s)A\#y2)#;v/ s%ꩰXUS%QFDY]7Uw=3@ H est߽|s-JgY1)N)f4 @554M v^!13{PT`$2f=Q45FdR@f U/g Dڞ"7#dbQ\$T-Z縮j@ %I07N@UfeRT&O-ُ>_>{Y(w;PE꣣i;}\W.AnλwI];̻~%JY){pn<.A5SAr`R;"$"H(<|TdDovӻ]7<}oH'W9;{%j2t99!n٘'~zνd2LX4**v3"90!4 ÛwoaQWVƀE5!4DC3}[X`z;-Z4`*x&̎=\ ͔xk"oQb_og)*AT& (Žl&2b}~?+(BU$G `:Z=K֌=J7f*lP8^b͈h Zk'Q6`)̸nwJ_<}'&_|h8 cT$5@j=Ow]93@ʒs@4c lؔ8p`y<*QB$bRy03ٻs} njಷf(]#S#870)xv9D`Yju6$l4LD a0Yd9NY p hY3"tfd ;I&WBJ8'R"$’LD !JB9Iq0t2߹{wJmCjl 1A< n@GgmKd]˫BΙ=z諯O./L?_ggo=**{*dڮ9hzbڬu^yѣ#)E%gEҴi:nT;qml ɠzrru;r8WN^DT6eIMMiAnf:_w7飿X7iyz>Y*^_aw`R9}zZCr՜dsbt2ώǛ 0WY3䨼g6bhq(C#cE,%iJD|N-$6ǠQ`%WhƂ L?*, +X[ emjƈ,қl6kn_DWW1QG{9,{Py7 zei@D1{TXkƃ- -  Ks SWE $?63,~Z}+Wp\joƃEtD%|ϒj9F"H1:z6^ŸPX_|[R YrF46b)A8`l  M f϶nȨE4fސ9"DB &kxÎ<힫.$9!rWY߻ޮcdihS1263_ĮM/߿xqa<;?\oѻW_c۵۶( ,O ilA?88cI&5D:LhZU& bu=b?_}[@Z֩Tt2sFyfY!A^ `:O Wo.Ua=ܜ ` ONNnDlu4qi$.;z}'K&]$BY{x1)*jݻ?lyd>t?Û뺮'|6z\US^W777sS57_dYnV '''}ߩZ,v2qDLf̩'Y>e vӐT $ʮnq6ΧfqzﵞNOOgGOurt|hwݼby<  h#yնLߜ5alV1mޝ==9!mcJ%,}=˖.LOOo0<*,B!RY֐q~cv9nv9JN TRS{&.1F 3dDHDɤ\: '4Oq>;ͤBncJHjT 1Qsi^_POg$},RRŕLU۝Hɪ%S$$1-2;TK?c.¾2ESۺ^noc^-z(8RMǾ ׄ40"(SN,px;2;`)0C(8E">I3(-H ~ j„;&b::G$ ht.ڎJHyzy!*_!*H0 O"YAb ,3F92V_,]{o/f{eOrw)./].)~5U5*F |R񙹀|-I)ALKp B__H90K9*!65%=`VQerERNx.5͎ @T`8 f@D`ɦvAN@evpҫ,1ǥ߿zajT_~Jw{ggbY *0AaG|nWs)9brd  zoepEjug%3\* Y935M-+QV؍8Dˆ*UfYuӺ*0ޤmcj;XAvaQ9#z#Ձ=3 LD*@%y)GHY؋f9& @h{1Ǖ *Ǩ̢FBRLFyاnȃPVndiG@Ӻi&j7$%M*:W7 x'w/7m2(\׳Q۸7mΏN{̆bs)Xm&0//^ʹˆ˶INjQOz#eW ɤwꝈ<:v29Up!d1>X{qvZT泃w?=>]'?l߯vt6o!TW0ͼżb嗿u޵]gm_U{~p2^\]8||v}i7wgnV7h`v<=:0Є/_|j1_<{l٬DI9 D@Q7Wo~NS m/ʹiꦩOO}u7kB]0aPC7[x@MlBCSK ˜'GYICCǧy'V1L;0J=* .֐G=X%%-4!aSBKo.h?$P@Uc4P"2mh=tB 2D4TBQD4ىPEYEyѿ_N9M" TA5!"$AxDM ]{L TР(#6SSq̗ nPUZ"rJ)0w*K) S\ߩ߾Ió7/ܹҘ?}w/_v[20 I9ǜrbSj(j#lλ  UTC L*Wc"b60|U>]9DdLM,yLfߟ|wӇ-a;* y`"LjԸy`@`&XCZՎ%)dǾjرd81. Fl%  Ĕ #DS3W0;fR1P|u `!T첍QrQTKUae HɬYxq-ϯϧvIiH]"A]8eg¨Րa QS?8i)6gbcڶ0٦:;<3GΟ>luq8|ūw]o={۫˷uqpo}Z 6r*p#`6OE׭2y\΃j5޾`H8Lڶ=<<": F,8|m0g2flBYc0 ! q\M3*5-ef &:TO_\\ CODGWL4jb,s}2qY8l-}wxx(UEDЬ2e"fPض[D{t,P@wgw\_ J#5, K>*!Əlqq =9S1@iaF׍{s ԀxtMh! e @FTRbB3.4c#ܷ@f{ʘy&@- լĞ b@R߫"P9^R|FTKHX * l8FT\EK {IUe,9`/=qx7V6fRGcj=匕(DKm7H9^ ߨ,=2+h eH{'93U2ͪn qIS2&{'& DO?L-x ؐ,HsFiJl )xvP#M 7Bjwݤ 0 d5MM*80Uěxȁ\aW2_r)j6&u11#BȣTy /}( !n#WN)j`%%X֬9*P B$QrNϪjɝ`琸bVIY!*T]{}swj,DԎw]ȑ#?<~ɓ]&A4'ih :0lk~;"9Dzz|Ԩ ԱsbNbU,ᦽg]m^>QUO~ٿ|Ӈ~Ms_sN&qC?幯|~jc: jud/Ř7Ӈ窺m1Elj1[lw!FP\||rn7l}@>pl&(l/ߩtffյc" ]S{>uyw8nx!w'lv0M)Al %W'>~/ξٵׯ_{%]:6o!ܶs{^ͷ/MVWs^#P ]}-);\.hfcbfDj@T $z\a0!ڶMhὋ 5ISJeO7I>=+blOZ}ˈ9ۈƅ ڏ$ K찕Q18>ibbA͢*DXf2DDV)SN@"XIcD {3"4<)P3-4L b{V 8%rd2\H1"#D8ut;jG2-*q䌆n^ dSnpyF݃a?FX2,*oFaO@_yU ic1<-K[Dʶ GJ_0Pj]PNUϖO/{IHYUrS@u2: !1Zq7v+D`2^?ne&v@edP>ш8h `=":UvA]JO=|mfUx49s|rvs]HEɢmw60*){7tnw㗊(`$窦 MTUM]0  p ORc*GQU+bOL:k|X8~({wQuL88vEuUS{9lav9n,ӀkP{s5/Q]U(M]LjD5$2qf$aUb{4w*N{+b..fۧ$!T#$dA!>j jH\"NfiiH5]MBU-{w5WO<>+GmI٣s40Aj61`۝fT))wDirZ\ܛbܹqZ]ϝ`~UM׭S(~RGW7f6i&{T>>\_^UU%%c/x)}} v2_ͧtrZ__]ٛ|w:gMmlEy7 7$-?~ww]&%ɓ'Vbݮmt֘b$z"Sd>;qa4Yr~U?~ZV fsqC߀'f߀{plɞi`Y w?pF&f̪EZ7; ߾c(|/ IDAT>šuV~QY=ﯻnum D%ʳ;$ћ?lҼ.KY '>ɏj~zrzs\Blo=Kw$^#Aph[ ?_z> Wj.hSv t^hRD[,=t!h+3u}|9H,sXUqQxIOgD.4}E:JQ)"P T«su6!RQ윛C,_JhfkeYj{Q]|<:>ywQy;r i@|k8F'̣$+0vpiPh(#14#:qcc)O~F(TJO޳w=ܽ$MB,u$U_\nv*1j&&1&Y,8f6U許)ehh"2귏A7#-7'byqDuG>@b6& N4G'd(⠧vC?  Ft bJDb"4_ߤ;D-@jbKdb$j_acmNq h.ƀD̚_3n&s@&2bB`P ̒BLBuw4{@5"Q#) ՀUM AR@Őv=\_]I4 /}J42uDhCo ]\_)QVQsfD0L,%,I g\a`" 0D#.fs蘘2gFĢ(c=:2sMQMt(&4+n2rX*gZaV2#M@AcԠCm+C2@ L$Q@ y6\| œ7m%;_ hLL}Q@k$ΕUY$$Ddr2'g9"pHEiN!%5dUB,?~dsvါB?ϜG¦r١ 益Z'Zb~|QM^! v? a*|5!֧-b\=E}uBA%(͞>lޝe]5!޹ç߿~_eYK͛Gz_ =tbJ/_gUY]1Wn e0ƫMU-f''.Λɪu3 T?woߪ*#/gOHP PeS7I%fK!BHgܵv} ;wZlBn!dRU]w./%m^_P쪤XrữՋz=,`̬SDq]?yTUfI\YƘCnƶk,Ơf}?̚;C"|C m۾$ĂȾBJ6 HNk2XJIDu[>@Q:BRՇeL)[Q6(KS%bLLHLūׯDG}n%rD;snGJn 9`d=h #q,8`R 941[c asri?!cp>DcCGX= W뀘_m![|bG(Qht<y,Yw!Bb 1Ci„ HĒgIOx'h} t|5Q>L4ݎq؈Ve>A- L"GӍ!} >^Lq0<7E'Irz9@r.[_47 &D/( O׏ο/W@ҕfTIS25bS6~S0Et`@Ď$Y0I Ȇs6$H Ě*,T*`lQ!2̱!c4h0 hR ά0+% 0~fh$g@`'7m+1$2HTO֧۶!.KG `fgBB@fhD 4gMnnn(*3ƝD5-|!I;B@3\:/~JIEIMU;9M)D(p֧p\$q~G3 B01rI]{>ژ1E54#ѐCB͒:ѾDy>ÎR s",S$!!2hв,b$®Kr" f\.^dN)y"Kb1yMGr'ۛ?0}i8Tty(x8sduٛ 2zfPWŻ/󪾨eƪZO۝b/+H=$H]v޽ϘJaފ\~u>yj}Md_7~.W0;0mwC?$_w )XTw?|C۶L\zݜ,}ջ Z(*eQ˚2GOJ_ }$b1᰿E'Ϟ= C.j:&`Fru o;4!ɣ;}crrb|1K'E9kn}\d}޶s٣UY X9z7כWop7tݶ}~fR$vmAi5?2Cۮ#,Qv*Zn6!<4( y$>QJ{*s{"H q. T"ZV 9̱<|! cD*}cR!3;$Dﺮ)_,CEUŘ2bf3cvꈝ_f&v3sӘ2O_ŦO8&!XN sD̝yi=M2B˽@@%1C#̈Ӧpq<=1;fY`13#t89!FHZ'JFucQצ0&s:3e5RQˡfT8c1y:f[>VitfBYp}8'f AL<ʌ88)9ytg9 N )Lr$2R#8іoa>A"`1T1 T:]x5ǿ2Tr̻k]O_o^D 粝LA8(2Ѥ)YJ|UΗ 2xQI23xrq2/pd]hL+ c2POPx罀I҇ooD4wr\{"`HE4' ?y?0kY>y|BnHّ:yɧoQ IE$P4*t0m?Ť!$"s 1 z}(ԳsH'eߏyV5<9瑘,NVu45Cd=B[hˢxN'/{|Ŝ{y臯çϟz~5eըX~,ˢ(ӗ_ÿy⇋ om7à@wvlL;}]UM&^ DUQݹ=mO֫OvM߾}a]5s,?yFaWxi4ImZcpcf~V0/_X,9۵EI5%x jld(Fd8{x(Rℐrv~~uۢE^}%)`"m{`$`ﷻGz`Y7y*B̪JːFE@!.M% SbHٳg[{:;"_y!o]N̄*@p{n!ybǜչ RL DFL|zvk%K`ADmPA #8n* LT8<(i@D ,GĤ;o?ͭPV4v]胶}{(R PT!AdrGcrd ֞ 7 Ur*w}ӿPTWwȐSbv1 .`4T"`0*]mRJEU8WHJREMIE @ٽO~_ͫ@Zh d^'USeiK\m]Tu@N UcŘ׻ݍhx^uӟ{ɧa0CW=_o6o _Wuɺ/k2hVϞ}vzrIں0 7)|uͮ{?ɼg}|W_})ݶ(pSlcL|wND_9\^{Bȋ~O٧zuR%)~R |ɳo֗]ϛS4+K)4bU]2"m[eXU  }ߦ;Bjw\8_r^߾}o)nj1c .MSyz6 v)]5&.UU-Wv;l6[OTz6_ɉs.WeYΚ%+5wٻ7I`S5M].+{[/bg30TV4_4`b1C b٬;fC)=~mh<۶QnY3~fJ6\$ɡLٓޱd5RgX>IRafYe0/4_ދs#R ~?6ɬdhJ@̃`ęC eCӑvBZGهy%Dͬ¸*[^ ? 3HAە9'Zne/4aX1`V~[λb@#Z]ȮpmS\~ӑѣCs=GˆhsymEQrMDj4;UE17ϋYɟgM!H͛ۗoCݻfy۾z7!=<~ju>?o7߼ W-fjИ4rw/wm?pgU]!\PTo޽)( ]7}S7Rb֬~/6P!pH}j(iǔv}ыu%\\l^X0$"tniܷv{gqMI,*0B\ 1(q8kO,J+~ RC?8rfv}z{{{^7U7ޓUCR+*8W*fxwۘ,F1*PL$ahڇCGgga AS  K)w/lۢ(hoXYEE8HPMĨQ"0)`-|a>/C(*I+\bf~ s5\uΫdbȬ']G?mjむR6Ҭj 0Upѓ |<$„PT$e*Ur*9((#iqZ!pN23\* tb&l!WA$r&lSӠؐ@Ǥ)#G#8 bR3_Y̪N0|;( Ǎypc/rd r:( cG<:1jjdf)%dd@@A%DfF?lHB!!h*~MF )y" ,T1Hޑy78YRBqU3I佉4.McRPz HD ٙwD!TWod=Qһ׷7H 7T cq2@hBOov[\RD5ɲ G ~Y϶ ":j萙9L&9d'[W$ID1TeQ@=3d3{v)d`h0$0DX|iIT RΑ):bDL9tйƛb fF524Ѻ0_8UATEBg #fsĤ!a(E$H9J29?'Pfph9Y IDATևv33U2D"AtMG5$T32,˪_^.SHj5Po:l߾y1_.avu}}30^ռ/v۫Wfid Ԑq^jun3+?\ j? &Ij q'lPf Ki×PѮ53,fv{s{eK{"{w]^^P Lyw;W_~c:Y68[ԇn d-4뫫MU7]۫WC(Ll6zne= !8v!!bl6E%V 5gw6XvĞ/f)@ !Q=+݃&z}彋wm:T]v* UU'E3IcHiFM{dW4ͬM7DŬ99Yξo <9fLC= 1jY1Q ySs!Z`")y,9N$hYzsIrDH$%MEs;FuqY1Cj%c3"$R.g'/ Q{}, Ɲa^iTa}+p^0`"t0x8yn:2 u8g@crlCg``2f%&"GXQ`"c 2PcNr)TQ@c3r|) G2\)s@tT,; SEXr-k!/M`CDZ&ЖPNɟ&ԕlr2^9r.#J)RED 01?ĵedNc !XL|1"=; f94eyYI>X.M*xOSD XYLI7Gf$B#Qa Y7>* @D uL!%K4;?s 01 @' (Jd!`NC. r>wjkd}+&rK_xyw8%XU9(DDr!ts}iXE'K|QyIReN_wrAw @Dfv9rƎs"2ejTAL<[YJȈ|K}dIYjdf!󋷻Alc{s !2R#sʉ9U1`djWI (@J1"Y^fwrۙa{{*̮*U$)F%Ѧ)}{PM]Cn0M \8Cġ?.cL!jL.kd\,$B)h3kU bUO{.W˓aP5$8=="(I)ϱC'c`jT"qQx]!sfBIU͌ 9f\=դ*uP)3sCEY9!e/a71*b̴= p59 !jDPGR"]C2g~`J6at8G:&̛Xay-:/,61iY8 !<Yv JJ(@-̦J5 Ph lc)qwOMA1<sǖ T1;>h>hd;N3< @>*ÿ$ & $|J̹N9}ӾKdgi,*鎙0e" gV@̈ PEcʢ 2KEhII U-E0lFTI?,g獳V"k(<:`u]k.>C5 Y 2u}h;NĐ1!HSruY$53!GBDE@Ƅ'MT ՄэokT$_vchA#TU43/|RG)T ͎(OYYYD$>GpGq3Ue1of6; B2_:$H6CG J%ZPIDA9}; -&afSD#@ F y ([Xb U~H#+((MI C #8{g _J4 j6}0&f]SC<}KH 4%P />VZ9],>|fooy avmЅCY)+gnnR듓2 Ʈ.|5!";$ ]J>~tHi" 1ݡmbUC{!23Ueu~~Z-W˅+۷o˲J"UU3fw.z;/f</n/nQkݛWM6r2PǾ,| lf7˺^,g{HHUQCw}w(zbwpˌLb~87EDf?ݝ77]E1/ W˅*I 9rNRLWׯҧ dDVW~SQv.%sPIhcrRL,>Y0%Dr嬙/ok5ӱl#o VTA?1#|8ŒCgk~MPo%b桨j#[GVU̙͘ͿFPY$1Ř_oDRJ*R>XRPQH Lt|(TQN@&:F儔LCU$O*9gĮI:ϓIܶ{54%(Ҳ0UcEUSzsFҔkS4I/{cUDqˈx4d/h?xuam; 9ǓDT#i>9tYbNdp r1FAߛ=*BL*UQߘ' L<*[L%j&SL@IDTI}+9.$)@T0$ $0Bf.H0w%&dU@ 3$#PrEaȪiPQ!@a6d4w 4~o|YTpCՔR]}$%4bAĪPՅ>{l=[V\/]~׵538YW˘bSՄȤnNԻzf^c[v*"a/xoQ_=ϚnNG~,Xu/1 I T7۷}$i (A-YM> D5j>m/{w~o~bv뇡1wChcuլ'|Ng$}4U%š} !!ES=' =;R`dĆxf 4=VegC;BH}sQ?ȡбQYEj;2av޻.˒gMCY,ːr*1pm{ B`_V'>J|o!@f }"Jb;6b`$miákꙘ @r㐢窬JSu̢)I3D$  {g@M Tu $04%3 M8E9ofIQo9%OcL#I11 ?hdL1iLLHDi6˫TE:".)kE58~`t4@q՟f3Sa>EDYW1P> F#\}T쀐ՄIRDED#0H1"+* JQUԅקkI|\#5qXqtduL;ƚE?Df1`ÙRƭ#z)=;qĊG/6jE##e5sA #|mK@e L "% :`D=yp2& D?ެّ#;<ysOY,YJ]XϘ092S9crTK) R͵kǩ[\\uo{œ˸;9yULO.N8d @\>#W9^8˹p:=<;8>^/ЖӺSwжBU_s$ڝ//2rv\vleN:g10`Ȣ l;>gՋi>񧋋*oٳ/~I;Cѓct*&[7nΓs֭V}>ܝ,?O.eB;+%+XLl2ӝj^"9[_1XpY;9 x{dwO%āMf{vmNOG01!d:MyVj W>8 9'}WWݽnxáTt{Cݴ|qWLt6,1ƽ[ns~䜧v6]~c>?{7o_;_6|wf;{"\.<}7\,VS$)gt]1{Báa~b}-y? FnNv<*Kș9<;^,Wr!r5mgf6]F2Uu>xĮ'Vs簪|N9<8$ w(CWvoIHYU1m7#$Wvswι}LULfRSp{ N1&、R25Rf mgg6 g7 C UIE@I>ggW#3rΙ6x7F4_S8eѶi,v9ouR.QMƜ&2"QoqQdc"I'pxcx ! MU>_8s+1#W-3~,%阸HvP I=$!9bt$dQ3+~BTq9B|cFJUg%*:-xz Y^&ޮSF`}{ۿW8,6hFy㣙طo{ctҽ9#m`'ގ-9y+fKaT$]ի'#-p5BĜs7 .\!zނf`&-g]d,ICPF0MeϦ=_Rgl$LU5ADGU#1.=Vރ%/ T|` +@@jXPh9 BIM)g2UUŅ! ׯWCG:]^;&]}#`l$%CLN%#̶c_2CPCb`Fbjig YSUϖQ5 < IDATe11hl:*+ՍipVH`5s4+ڦ5pok%1oMJb)GTQhfZY; &GĎGʮP@@Y =HbIZ6Ì$ i{ J"@FT9kM{XM );OnڴN(+ .v]7 *2R1gm=&W|]WDR׃bqv|7ѵݝ/>׿;??;gq ] *|<`k[_3@LǷMo|r]WzY >Mw/gCL`&Iz@)M/@hj&~|4mj k(ȹsֵ#T8}}bٙO>$|΍}\o޺3jC1YϟO>d!qͯ(___̽)>z|?̓|%"Oo߸ `O_<<;{^Lg/Wg;="./E],/B8 0 -ǔbn":l9gr*Cp㺮=A]vs=,<2EsHPp"9xWVs<rAUU339vĮ9 MSs s])EcEl!$*c]Fs&gj$DD)%@TSTN#+NMuD 4M/~=;=,@D۪T1cx`|+A*ol{],ZǙU*2lF[2+qDDZhi0ňJpғ&"vD8@e]b~PW"Xrm` pV\6fDɑUq*nF`d;/"TgWы@5*bxݾޠ.{c^92fd} DnXTHo○FqdbG8OKMտӖ((|(-!+)IV-d"sd84hj[|q9G{\\VQ*Zl@%WF@ D3AF ECZ{H Y, &efs6f #<˝Cr"3cz\ŋ')cWi\ơ|NS{{9I!rKY-jEA ɀ6rqD߽YN^CW_ig'`@'K ب*9gcDJ\J7l>f-foawW_?_=z (*t*-STPc]: Hp2%>ڽ>q!.6UUEf}qqvrYp>Oo}7sɗ$9@&}i#$[au6oRRDe1D"trx_}OMO?~GvfI֝?svyVst9DjMe;P?|lo2?y۳ק!>.o]/fݟ@?gOO^7^OOhbq=PWuRBj\U=}{^m.ww1Uwnzc|b2%Ts1UpED@kׁOb|YדxT4bVJb@ @'cN$KA xq Pք8 ̌ QUHTZ"DƒMZfrc*C.$%3Sp8Zz"Ƃ[F,V+0tO;[aV  r%ʦHlۄ۔U`&2Edfb#2Q( "-:/ WHj@Z +"Fy'69fDI_x<#\Qe=bF4Ϗ}"rcK|V \2hb{]_\,_x,Q'D |="?rqν?yrZ"cNR۷{þݯb7stjU]_?}ڱ=~(|餾y{wO^?kzrbڤ 3770vx<̦NVyѵkͤ|~pd>bqfg篫L﻽ɫՍ뷗C\*b,;ٟ,.Ng6A4U';MׯT3] } oKɒbC? bB)gb}_xrÐ Wͺ 鴝L@؅RmP5>}pȆH^˼ٹz.HCb ! +:G9g&t T$ʹHb8Dd{.ds.'Y6EcME U CO dfݿ8/9j) sbēiֵ!l#lVUx!&&Y0V'FͺZxfc"-vW (@ ) p%Shc[72fQhCvKm!WCd";̓J`veF[ T~ E'M#@@5l%qh&?xu[ ba.tPPv r @5=f51؞|!1 m93훣|8  Ru)5jD%h@#&5~@̬{J;B飆+"C*f ,YeXprS1jǀj)@I&thc?/_(&"zTe5Qr,2[&\$lei1TƘ@$F2UH$S〓L!jbom+bbL<~dw6$~m,`؃bTSqZo3gDq^ՐxSJ9 eDhچc3{ɂXSR] B2vqt+2)zF&5KjF\RQr`F'/kA- !{Di1(x]UuR_5O1x2.~GCK. Q;T@ʃŘITȲ8&e!S*fQI}E9xJ>t"s) Ql ,Tp\3@i̋,*b@L,c];7F"|g6Xgep 88އ!Nj;w}嗾Ƴ*s ē2&UcY[7agUV/_}wz0!l6󝃘3s<:Rsx?fvH%΀D. 2_|c쎎n={ ># z mΝݹwqMuY.NNoݼ];|Ï?իWɿ޾޽wn޸qpxp?xw6n?M& ys/^>ܾso? &T|$sܴ;/s$?i{/ДW/_ܾuxOO].ϯߨ|ҽ|eYd!u%!Ұjesc' pptsq,Wu쨪*Ql"Y.-]1ge␓(uYDlup#@od^6f-qhjGmIFE5sw_,Y1jL_^\6Ð%U *E^#`tM&m"Mk\YrQe ep41T(Y! $XUa,xvzBd*BsΩg)媮rNĔcf4M& Pq0a:?m" "_-Wq5q) c ֶMÕj;qeh F GطXh+W[7”R:+"V˰-Ķ -|lX\%)@.50C}W%E%RI Qk\6\7Q.~}A_5}!ޓbV+c,kٌDHcU]*bT1.شPjJa  l|,. "R)ʐ5 "d+"D"&5(~ sJfʄ;MEլ MCThr!RiQށ*3BRzwp3v-{M5v&Prz6Bdy9W s5 qPOto7^>*J6DpblLF9#x0٬V"i,d摐9"3*YyQmo[.w'3E\p] q@Ms"vLR?LNڦYm6r"h]ilA1_AA]bS3b 9Q\B027MT#s[mcC[.O3.7+5,VfZǤ*ewl9Ge(s)Ŝd up;7b2l@@ O9IR"";0#L՛ .Dz]J@yIh,rNt;?=?#wwoz]{Ww}Z@y¡͚.u9Ǫ<V_wgjАCvqxrvv=PJV ׮1ۮe.Kǰ̪jُW",gQ 9S5~uͿ?@>:k_<| 3\UgП/mۚ&{O<}Ǘfu;;n~Sdg:ݤ=:?[IƦ޸u{qqٳwys=]{}rvά=_\L&SMWݭΆaZnMg_3fܝFΞ 5}ׇąf}ã/^9ǚ:%MT 9f"ӜƚgEU{g*U*^UR"``8{.JY\ՕdE:0Y^/l1lN)6F*wP^?D*0jns6:~\PM="D(99ffWX]L3cpλq_|wu(Mۂ,F9ktGaTsǞyLG!vŦ(RPM1`Qٶ<{ #%3 @ /Ȍ 0xAtߨBp[ch§xEd¨0S-SМcp4@Dscq WReti\xe24 j䇵t-9?欒a;U|e09`"(If"*dūx%%S2)Wt$ xJ+ٽqժu[jK*Uy {Р4N6Sc5ɌL`4DhP""fZJU) fh;c.nt0*ٍCb<~( '"#SsB:HiEIj8}KbvSB#bryy+{Ҝ 8!!Vȹ:ߜ7YRDjz=:M# T)Kp #fPݓŹjهT;,>n4Į)lDko#Uj6 qpY?2D4QIR*e|uaDvMs`C[A!ϟ,^gT`QPCH kH^%_^u#f?o|c4$ݠ`HH`YL\в3ce6E0̪gFI@a];GXU(*zVHjƘr_-S<~8AVS1Ǯ43(PI)9ʪP1Pp W5~}]{yzzybN?{|EoJ>rj)C,g:L0TlRژ@L s7P0 n._gI}74c8 @YC{s0]L~0 #`$C8&}GO~_gI2$ͦ8ٽsN{Y7mӶͷ}sΝrL4 ɏmڶo^wuX,Iчggg;?={l'V߯bh~NΏ_;zL n23+oIU 2+\r7D2C"0.6Ӯ 1Tb̒K.[,va'[UmFǁoCY$bF/cB;F!82%'ī41u^}U5yKVY[ ,jq׉}7P Ǽ?зe/ECx&Z IDAT>2#JczqL[s-.-95Y~SU|[Gpj|v>c{ ;b@.'c s!"HA ƁrIX'913gS#-xը(dvF/ 1g"vR%y,@df ظCík(SM{6f0AդmlЂǧ&TQE_>/)g0Q$3C 21` ^8aGڇIbAJRܙN1~eDrItc97K*U,g"\ =#滳O>z$25d$3)"#vD`{T&Mu\Zl&Bh5kΝdy#Cƀ'j*:DYTL@hK}OflfhV+j;ѶVPb.0ggF dD d&%4H9!笥hN̨3sJs;TB dt4WKH4'1qlN= Gpu`pmg7(*dfrPzu *LOt~8cd8}͎n8})3@ETl{װ];?y'|%;u(nCaWE^,6}ǿ/'_{<ۙw]Ļ;{G~S.|~ݷ)|PՒPU8׿wf'_>=4dg6I:v'ϗQ]9(gWˋ?vggW_jG?1^_.~=$-6C菎L'v_<830ikwwxQl洺\A6͚8?g}plb!"~V.X"sΕ9%&v)ٳTTp60LYD٬mӨYΣerݝ6UG|~zZ/OϖڎRŎ}]71 "Dmw`Y;3+/WC?iN})4̒Kwps۸2[,.$ec/rNVj21f"ݽfcDԌB1%&>|Ui&! #"P}֪޵'_z߼~}Z g<: :b扶T8-R$,PN>F$M-mLPofVXP'I+m- *S\Pj@p虼2R-"D&Б-ĭ,u)DB@UpL`ųi&Vy;NtuB`\ |\[V`JȌ Z8U@z-zr ߆mo Wxз_b.[2~Kc7WsA$#LDTΑ "JJ;D d7djXPr"G)WTB 6 _VzW+†`RWuƙtjA*PCJ#Wa$̀H&rTY@ʩa E\rf1FP#2-ʐA'uU#dh4u@bB.NMRf~embZ N"RX5c*"{y29kϯ76iu K#a .M"ɹ;2 GIaFc٫թXU"f-ǂHP Mԡi4g1FzERSfL J!pK{(-dF UYm9Wڈ fU@̢9g01HN)ZaE1V:zШh- cr "T붋)~~?˧ߝTH"XL Fvg40\;<ܬH{n%:ȰQb4 H:L\$IXwܹ?6˗'Uۼx>z6o7ͳgbM]ݸyڻw]8[|׏?Av25D"\lk$Gv%vʪ~?A``ƕ>OdrwhCQ z;"Y`]{NuK΅l_vܹÇ4f#b~tbqhPנYg(˯3Be?ܵ<ͧ'I(PGIgΤݥxn]g*@(GJ^V"$}%a$$uL:20PU\^v%v7{. "vW?BqURh;8fu66DT-^Dnj(m{00bӻ3mm١kQEdFcJI9HE f.$&$p8@B*ZA $ٷQs R*Zm.C fĠj"J.ݧmsDJf{_8ƹzA2",`d)@Ve3DRȵ5rq׾ӧe^+Gd/dQviB,jSHD*&fʼ"!>w%r @T!& ^DhD3G85Fx:xtrGr$/Nȹ~JsRv-6*̡ ( (V&%j49Ipu&Z B A.'Oj sy 1 R%ΰs Pș~(3 W TU\yd6 ry_@DRT45VS r^*$IQUr?Z ՜z.b`އ}QrpޑS|8m~/x.NR޹.0#TJvajԶaU1adQ!CӪӶl5nA"W/Rx8nZۦ6.;>ޓwo^6~{nNi[Nٶۤg_q=?;{Jh0;`5;?0I|]͗[w1կ;G?{ttz콇4|شtK);އMWO_=[}GIK={B7o^߻s@nictd2=>'Wͫ|6Yޝ}^x7E9CACI~/3HrZ8O*>r!t]Dj٥)& J|ۦl`xxf]djrtXױj5ɻKRL#DԕyY{t#b *bLi٠Ee0,W6ϺCkL򢕒hʮ(rOU`NnګwKHX%0V,+=Q%54E+Ku[DAACO !0J rJ0`.3C01#$3dj̃eͱy Sbܽdx'rLc&%OC!JMDD3a֊׃VRerF=~OVVЃw(;Ώ5)-g)m$Jd2sOX;Ԭ3ԼFi:*'SՒyc`d*`kF 1 hm=G`,J>D2@j0QRMQ Y4D&R-; j@Rfsc@jRN fb("hFq) 9`fHn):op3d3B v|f8)(y/b#VUܮKB-'&QTՔ3jz"2Fd",*b7U$]ϘC`ش6檈!vmRY%Fp.y*$!#zbږ"I$@1&d1w)3p31oaMfџffU4&Tn-N5O| EäFI PTU1'v:ш@с##Rt 2POD8PޓV*ID$3$]v)9SAPII K3 ĐUd(LbU9vr4v-t2LWqQ 03ɽat4PW)Oڅ*x&5Uuzz9 (8UCm_HWۋ~漪*d֐Y.|gh6[lU/ߥvľkr>O֭󋳔4|OM?~iۤ2]-/W뵈7Gw1䮋 t:ev''utZ֣UȞ~l(yh4yïElf&l}zK2$zG߿@n={[`2&w2/ΞKI1؄j(KHMPOۍ(Dͮպ T!v]۵;0~PWU=>.GC3S1hҶ$%TaE`ж UHbލޞ9Rȱm'"24LLv炏b&9.Hd4 1d:@Wp0=sbqmܮm#@]9v^2Fu@!nۙ4 sH4dvxØfҔhŶ٭$&-źR`_£}11aTDd.ҋۯ""A+9=1DjF7P]P<}C+B ВbvxRAfʌD!g1Xn})6  jvLy2fXf7 P q mj+uWqU :zNPźy0qH1T5kLCjF~$""1/9=:c)}XLq,'vȌs9oQ]5/%7 `fۮ1 ̕Z?R2P(VO!:ev]RPL=cv 1 l5|+t|f)rn{vGi9v9T l@ 19vfEgfn|ެXQ,wj4]jh"ٔw2W+ԤވHI`2j-Znvk HA'90c`\*I|ttnsЌPIQ!AX* iThDdW]JO~ېj1.#kjȄ)<;$*y @H\.h%2hfb9 +[T>r@1j23)baΉSI&bHSaG0p8Tyf|I*;'P/o^?R;, 4vvj͎ÑZbSW{GL)%7d<@dqw>_uM(W| ꍨV''U}]8OMӰsj|ȱ[[x~tq2vۋ!ӻ~o @Xݺ}w*\^z_|a逈SxjiPp6ueNTDk[D>C_E%D1f@fMlZCz͎./08aҠlUĎ9?'fWc+$>܋KJ' 1#!bcFT+׹^K*Q QE/u@r*T&5EySsrǏ>'~Je^TA\t7*nKXZaCrNx0W30)0p C*s.W~pĘА >v2c!1*$&dD4 (F3 PԬD ZCĘ:I(jV1PMdאh $"kك" @G<Ξ=cUy ,SJ1iTI&$Q'}DfjP$:~% Y*Yt&PbDb*Yk?w/vM233l r6^\OfhpUuG'|p﫶=1Hu;!tX r7M͎ITn5l~r|2~_~z4Żdqֽa=:&W,vl~ץ68G>~nM{w^z1Mcמmp0Tf&tLoWWwkp,(Ƙzp|JIDd6H1*7(nƓr:,Oh8+Z숼{4W38"3SK]ujWov>~եĽ"1*xn^*]bfYl+qwCbSe1sL`mbnj.޿̲Lu-!QJ)#\ܝ\ppXAk[b&Bus;·L#x8dI"<].w?O׫f P,KzTY1RJZX IDAT3CkɣHϊ~@- 9 *K=] 1r 9 L`8Av=FWueht/'| tQC.S\tN|̝/'XxF(V:'nLu (#ױЃ,̲80fjh>k? <[X%1LM9;_hY?bT)4PWml/pٴhjԏ=id@I:GƈHA1?u֥LB1 k=W ^/@$yf*Q?A=0[ K%L(#q.* wM;@B`R;>=X^i*T)%C;#"{ѻ#cD7_R۶$>{o\ Hw!cbJjM۹Lw*sn?寗y_![LLsʝQـCVc.M&@< 7bDPIm#_'DIJ,'  v1$C@GD!8Buf8J)1!()*rhdJN\C]J&jT&Ur>7"Ds*2;a傩fʛYJ1'L"D&_|z8m4nH I`:{Ƀ~ GPz0B%kq2|~Ճp<[Ƀ7χSEG5[0LnPNRmxgj O>ymskzzooۦqҘ6om~硪DGNj_魋%ώ{U.>l~T~Ww9;{O⋪̏VhXǘFt:!x2uT'Ƿ'$ԣ}j;/ױ'w'pWrj=ybB]zٝ;w% j@ĕҨrb0{4[~5߭RxXթKXݻwSA=K)N'Gj (ԃz4AjMF5@R ͠Z̪VߥvPh7};UIkROչm9?w~'"U9\WU uI2UA\(b\03Մ8:ijD`uq47M22De8 hص]CĪ9G1*%bUU)C!bmp<$LWK<Vˋ+-\?LTp{șj).Q9} Vfm`M9 5bR@2YhkȂZ amDP,,ސ pDPv0f*{e͍KJ0/򡗬?<̢AVi׎g*.QvAU{3@ Y;v)*#*=wa+oٲ:WZ9GDV('%3\._4ck "bL)rE-0/7T1$<"b~^ٌwnfbxӶD@= 庶r!sv<@ˁ2fr CV٘ t7ke/&嬌+co"5Vt1 2TSC,E q) gSq<.䙪GѮg=56U2UQԤNc|ŝKCm7rn"{l30)tH+al,F]oVԃUhS${-x݊:GYt@4#+R+ڀ}+ {cCq]3֦P cb%w] z4%d&`9s #vL%3Y4@0ʷ4C41Tt$f%M mFbTA#1:PX?".V;7fN(dHO}vۤ5p AMa80bq=su-&m[kt)"RZPٰ>>:~cӘnC]\%=zDf NU*W}=ҮikG'|yu5@<W~=x_ͳg}#toz*F,D˓|>◿|G}tmUih4;{m׶O?`8\o^~Pw{8::6U!w<{k=~4;"جߚx-D=`]NQ+"c9:#0Tf')Ji&z%%򡪈Hbꈈ|J @1;T4$#b3S< Rj&Z^c`f)!p|ynsiw‰cbM0yP6bAD 3nUbbyAU"T9Vr9E,ĔTYb:.|jcmzmkM>I48:?"g|Օ",\1sf L%0 똏cPr H)=8:6j* Qx&OPPJH*90e;i߷t@d\^eM$(X$QBv>F& fsNP?Ι4 T;p{&dByK񬊨ؙ *#F1,A@T5$"b(.{fب0Cq3nrUP4c b=xnyiHw=9}hb'do.y݈uBIQ c|^HhPZ qvѐȏcjUp}<,֋[n2hpju)hGi$߰|冟'Mkn~8>=/]/?Y_UGϾ}[׿_ u۷ jUik A2ɓw-"t]o#>~۴붻m5t<&fڮIѺ6k|&l65 0jc`"Vg䶍]l fbm=IԻ[lϏ=1?l`y҂L;_UUL2grq۶>xǾmy@ Bǜ4bꍃɱWUDf⽫jݤ9r+"VU!ie l޻m;0c$HGӹRۯ~u(Ҩ }1C5P7V LMv7Vtt XP˫2Y =Ld x'ѻܱF˦1Sg-C؊rQI fd&83&ٻNDe!7*+7LU23@znjE~(P婅b30RDqe8%2@_C6? M4Y !W_{Y/p6^eJ[wPeXzd\nV22|0"2SB|H6:缧g ёl&(;lϵ.vcL $t}~?*$9rj``6n@`Ġ8@ V](b)g0x9Ӕ)L%BSFvj 1*Ltx{ѓ'?~/~$v?=^l_Wmbݬݾ}O?fsΝa]yw?C1M)z:Էo<׫|6k Cu|<}d0bjcFa6hu27mVl^>l:vms4?q"-azC5 fgN$, Gۄa[ >z`Z 3+ n;~GNRJxפX+)>)1M&v#@B RL^T-F9/p0w 3Yٮ $ tU Vfؠ8ߛsvyV>Tmܾ{MzЯ(ڵ]U $5f5D3jP"kNP% |J󔕘ՃiAm bJ)("c$tݱwCU~7&@B UfZ l֛f+Tw!{1q6&"b\g̘X$|,CKy)0&_!C,Y7 pހsDhlHDg"fj{bn뺽\\2>}ZͦfDWZ>j?ӫyqjSB2ULQD_Z7D5۬#0yU} 82MGjUR0&٫`DDdj_W̬ ˑ>vck1a 8Ȑǃ =9vH [ իDIVa}| ӡ;{e }c}%hxާpşſ<4W1ɏΝ;wܣ%v魓coOOVW?p0o߾>z#ɂ!l:'ï~>M{OTu41>x~Sv7LW˷]fm>CݵۧOsd<W/ _9?)Wci| @.7/bbq\D.0-;>:COOO)CƆ]|>4<Ԩ#W!umL15#ɨMINcPUj ]4)m.1Yߋཚz)49io{²dd5bT3$D%6z.罢Bv)XD pL}y@׵YSfv.F眨&v? \;J1v>{um5#2"0# x3C$fOC3[jT0 L5\`*b/@ bCD^3BҜ&CvoSh΀ۑR0c6lrɰ2IJL܍Xֺ80Gfɡ =/izbtglN'[QnNaY,G?ًg_^z#&-Ɩ"X7`P;P1E"$F,@ {Idd Tu:樿pԭsn0 !"NIV׵qQU=!J!{#DvcB|/&R~p:D}".^vr8y_BA֜n9ߠ{вhp3 N` @m0bT_bE#FF$,W >`ur~#Tn}zqu'"Jpn06VLJG7ƈscGV$9VٌڼԜŷZmD1I4[Ӥ4sEroo9)[m]+fMl|5HN fl?lܬלN2E9s^ XY-*FހZU .6V"3 h57'&ƨ!J``j&b.1# &#b;tL#fvLr>uF ud܁?C]QĺJUK)j`\D wDQyjM.W9cDri:2"G~$`e=qڕvF`ߏ:,#aڲS:(}qw> <<<OULfn;Ի Ýخ`o;-nFB3=<=gԡJ_NxwS͉(WRQR0 LH:$5uw RJLUh}0^C"ja>Iy 9&Әfv'hM2@F&5 |` Ą();%a2]n6mxE#@`jL)2eЂAդئhLj{{bg1׳ :6prrfd8mmf龈6C@D$"=哣/oa:7͓'WW 1Z/f]ŤfH3q:5]Wi-q^'vϹ;tAW {H,N;!e !$$ Z28g8;"\«ID͌$%jLD:!!ZNC$4@!@,eMDUn|K`6yxfFIpw)&6OS$ߋ)1;{g✉X.Tu<(3;|Q~ d0C6I 0HQ>?"QԠ(JM)y˲;oc$ió`4~i Oc@,n줙Nm*]\t@w$AeϡvS-gN+YsdL>8HD9'ȏi'"6@MdϾh ^o>ٲS{;<ߋ{rDy4b{,ԍ{//@;(g#%r]g20}- g] e#;4vZCgjVI1j R-}r:oB/<wcDdd;NTs' bU 9;{,TsUb>qWFy0-q&"r.cF$kt>jiYό-f?jJ,R(Gڴk5eu-TTP5 gm3kdY;H YY5 ƶ:zӨDi w*1T@f4yӾiV/ogK2G"&K1%pg4>9w~}))FMJD%!Fd]$0"x;C)z@R$bK&bj M!嚥 4(b>=2"ʉfD,hY&48FCSKRIlDg' I@A)/trkќU*R*0Q2&KlfOj]D(0sHIy}1A(fSk'ֶhLU1# ;5$a˜ØZ3_Gb ӟtg?|ݷ<q~U v|GO 7U(xrxx_~h4/1|@kώO?ҍtgo6nȓ>y M3gN)ů]ll6KINNNU5iVe[σ$.b\7lS/TBW{hgA(GF|ggR+JxknWiڐLжIEҦySKHbLvڦs|](C)U4Ų,Px}4~4Dʢ D50ԛ5ZV8|OJWuhDvy|Z,5iWULV;٫&"jW1L)psTŴm[I W1;&v zcd"0cGmlSl8ǃAe o6?d1v//ud"C?V?q,r~xYμRI,^RSi1MiFuX}JxG);k0 yO ?<7Kh%RTe$9]M5Bi^1;!ވqd^&S\a~\kam¦vbL(eMHl7vuWcUW1v6^I-@RGD&0k['XҪwoF,)!Q4s75k$D)iovAD4pe rLIQil&Vpj#֛އ 2L0C"5 BIyo` r{tf';gg fFe>#vYSp\VH &:߸8],IU9x鯾BȀ)%1˫+"61WGkF f ";p`ΐՒL<'Pp b~χ'y{0ݟ]nr'O~ mfWLh:"*r"K7 $leb)BP4P'Jb &"F `BdYM)e2!8`^4=e.԰p?ӈMIAd`:D̢e]A5btdgW7ͦNu3 6Q`ÇRpxϞ~_?c$OI8/{!CpM2k7o6$\,mn2F߯Wp/+Xo77^5}D.ۦݟ_=}Qjj<勗>pW_}9Lɣ֫|u1;dR&bi4Mǣfcfz3_כ/.xĸXOU4ϼwϾi۸3 :z(mBwh87͢˺QKU ϊj(uZ7opz89hJͭθ̥P5IVgWb>@#p0 !0[Umc9$)Ū1JE6h2IQT0cB36!t۵s~\M)6D~^XUIVyCK\?Ýzædİm{xt8vvong#%ZLU{u7Α1X')úiڶ$ LT‘@ڶ-2DTҴ5L&&B|1#”b SY-6iUP0Y2GYXш1=2!BD]& !211:B@2R~63ms«f[PQcry ܏3.IGc׌ͮ})3L3"^>(Rr 7!HD ~6mߖ]=11Ebd5!U#ޠSyFt;!u1@ z脽I=w\;1c8".8;ݻ]2fg93#`2Cdɭydr_q@ +11QvZdlR"lɉzh3;Ur $s:pńdϿ`p].TB̂Y2'2i̔w:]bdQ1 A3=nH =`5Ֆ"=_ ~O>y{yA`D8 QEYD$ 5^nz6<j۫*mkj Uj/.Ow/oo6M \8'`d/S73wBEq9KAM s-G̙QTȏEM'⬷U3Lu!B|?~dfQt\nٽ=@Bbv]/&sY*+,I˹#.C@D3@?Ijns{|>{7m{hf;p id21ho޾mzX{opTk4W_p0[b86~1[E{NA7p9FϮ/SuM-!PyrxWw9 bRtmD4hUcJ</]N>dW';`vJi7YLmuSƣ T^- +Cڦ!$h^3C p^hP,''oȦnU&_&Uۋ)Vm f))3CfXUPcZ.W=jPI)V h"þ*+0-;"uM89²*֛5"88iZh8dM7 `:j'BcNsX1Lif>P 8E;l@L")PTH>`bukلJY`2iHUl-$ꀷ \w9r(z\윧>鏁YMt_r's=hIѷp"Heku3辏sDa(!q[dfy]S-nO! qض&پ t+c|Y6;3~n1ڝo;}g;jpLWfggܛ,u,L枸S2 0&E%̛G1A-Oyc63ID]&k 54< "+8(13y]FOuj$4N }"iNG{`  WTTs|b@K \cZAdz8yv~>okSEP q;2Npt4hSz]r<|v0>9}xXܾ~w4f?\_*lZI'YͫVYD@Ѣ(L{Ţ*t-Jg%%-BlȱA֞QU@ɦγl`Оd$&5GP:bFX.>|r2j02JmrBIQnJY\j 3@(ϗ Ȉ(Vk*yddLSH"E CCR@ B.07rCιh. ]P*Mid߬\ F~?7?ȹrl7_?# j\Mj Aё U9FѨi"z4V:SzYϿF0_6m6ɒ0auxr@ۚdf9@M}S?8>;='m"r}㪪P/pǟL&㓓~wu=_1gը\-Ló{gg=h4zkcX.}lYg`oѣ)ض 2 twoy7|j>:<Y{?x`?9X/ޥYoFgSl>+Kz098}s9m)kJ{b&]ު=9D\rS#hlV9FM gݰbm6|~Qoo.2b"&jQdlĬbvZ>\y#ضDd*ݺcُM[7m^{xSodRtm-A)*eãmt: EE!,+C+t5;\ oT3'&h4)w:8<%0c"dHpZѣ.#u蹫7g而*] iMVV%f}~?MFL0Z0xj7 "Y|i|_levIܖmǖݑwy˟{ {gcvU"Fb!,3PPXξo=lsE|57w=C5#~@N F @]gkha0AEze9"I6E3 . 2z[Krt"@Va&@1%Q0EƘ( 3jD}(=lT3?_8@"2"!4SIHL"U@ff g B |`G;u$-4f"`@hlL7;.}+f*jθ0*LZXD:YJj`dFeby7TD+Jdr? Ɲ@=#8`1E;')]͊H3Yi!{#xeb3!Av$ 6Eg^ߛ;n޼9?;:Y6fY?K o.on9eY, Fr8zbf?L1zDRL-;kHLcĬDW~|)Ff5,M6u秧`h{xu}ivwv>zpvp}`)IՒD52cfwpxT HL9nR_Wρ =^^] 1ƴw//^ϗLVbd7yM$xr[۝xU q>_,?ztw>|,^|ypt4 ٗe5;EPpw8/+tgBD(M]cM"Ozu,˃+3F߼}] nS71AY f]QeDA@0 3KmH$Z>zCi*U"` &P2TǟiuڬfDUn @ 㶍9k{^ؔ4mT`Xoꦩ P7R4EL&"S)jSoD*tyȎIT! iAc*ÀD;Pt^.郄e:g,ɜ&ٜ,FD ꣢ 9I<7mIty{k(+y !how`95V^9y7u$Go/]5P\LJ?x\L1fÊC5GPcxBpi")|@M#0W1TWW՘Տ ~suaDpp;ALbY*I*3K_$œ1Ц$Zd,=9P1U6EDG)IJ@̈PzC? u!6 #mC$\RFc¬iK@)0!ZPWL䉙A&0)\=H@^2$I4Cm"Rb#VfTS!v`Fm 6Q5yy>[Q#7bCL-#}t8Ëow;(ޝWa?p_~-bXjf<yxg`hXV"„VHUT`ߚ&D!dEM OZ9MTm 浐jPMQV:޿AUVU1W۫˫kDm;Ud'N>ɽ㓳?N ֫~^ljn6EQLƣǣ1*eU^oVx<c eGG:pB(ۛ70 {1*;Fjж~6_eU ;Ż!8 vVV9$*&Gn^+X3:%ղ_,m)on m˛BrbޱĖw!|fuG65j*sΘfNƳZ6zLvƛ L e(iRJ^zٶ-@4M"Csw BPMD(t;r1ٙ;mmB&N1fy^5;kdFI{6/X{CL5&+D{/Jws{cic+ԙ:L ]75B,$uǸ@ wl#l7Lmyӽv`<Ili-HD 9RGd!xs31:ϝLcΖZQE1wTKD/e( ]_wz+W tKɘA|˿"NF=>)\nZm_{Gg=wf .;NG!Z9,$UU؜vAl D-EN Q-FymbC硦n]؎ cIZ&$3! &UY|#_DGLISiryJrе2_PFL<r@:޳`*._;|j@bSUǂ3m\/A5z&K,={]<ȈH Y@ nt C3z̊.i6;i#dwuIHisfq#6K d{;{t4\[JYG#*fDeX|7m͞7˼XvU3]ȱ/?xI9 * vt 9 DgYF  Q|7"wdy94,jP ">bZw)'A'qg`xf̖xvYUAATqpZĹkۀEZ j"Ԝ *QUQt)2b3v)cU T[IMeHTbVk `ʎ|+ !0"2WU=KϺES`B$dj\u b{p7<8ʲ| #/z~4LMܮ~Ïrrܸsish\hܻ"+ "2ݞ=_agUt8M0N7f<Ŷܗ;{GW7?x0'7nܙLF"/k w뽟Mg!T}٫G~{p,VUbO @!Hړׯ?v8߽{/˳|1 y]m_x.1AlU\^^u5ٙT'|rtxHͦ }Zn˛ n&49;5~㟾xT9H,3:̹TK*BSߏ uÙ`P7Mhc"%31sh44~E`؆ЖY~q~.1$jPG&Be-o\6ft*U9UKI1 vݝϥ{3]5<HI z$~D6b{4c;#@Ꜣrίg׿Z #9B"_7{5ek I ׹Y*}H7gY_܅ iD톏5uo 4b'kz?Mo,]}();Y=UU0"NW(ewß?4eǪ&*|y'ƲQN ea DbΠ,mKOyAnk yjZs QUϛ-L i[FU?9@-Ht911`#aEDS\ƮU뫫~'g'/^%H@BDc7s@N&n//?&[:)j]m!"`VR7`*mQ(za[5@t`Vcm.2`bAY!a$(ƎkXmͫv5#\ Bhs:M 9teժJIbBۦdEMtm IDATYS勁qlB4\ *%r&@MSkK 82+yT[1e"df&*1 184 #1yƌTIMkRP5}U6Cp@A4 TEhƀdIT Ԍ@̀9Z rjv0*rlSTSWӳU>Ë|^2ƍŦBq<wOu|6,k%VmXBf ~ w@wl[6J#U 4Ƈw4~uq5wTf]jۜ_.nݾ ;uu*l^|~҄(>{v~v総.nvw2ODIzj~Os}c =}GEAyOz[ot^o&:wvdg4YgخWeu0Gn;;_ţm?~Z.LJ_| p0\.WW^|;>Y;.^F2 A4պ̋2'/ϟn;/Ԁb@)<iڢpUj J4&{{{rPmwU00 p;O!F4fDzCkza Op'BMس"zIC<; P@H'ŽM1$p:@0zf{Lލz\uKDFbE^цqY R."˛ }iPۧ7 j 4Nds׀v4Ҁ@خpO$_)MDB~o}Tv[`(!Y4YP ~ac`U%M0C!%6DefQI&E$L;F ,l`ΓX(BԜs~V^(;bܠM mRQ!!{5m bH$% @D FCpej\l]0eu'X=If@|u UӘ)!~xw{p8oUrs fݶa쳶i 1牴J4uݶ'gjL䊺: ^wA"gd1-b652дúMBrэiV9{zv2,Wh- ÏMн639U%rW#3}W/ONNƅFnvׯ^jΦ쩪YۛyϿ=;}U;_*x u>h_y>N/ w?wZ*Py۴զVUgu `X̔.D˼ P7S>(_] h @`1,eUUmS.ˁ]ͷӝo=UdQTceV2(nٌ w[.1lw72&/)i0òm(Fx>_:ò(bLٙ)n˲,h2| ,bT"Yy2" UML(Epfim4,g??b$"tpr7Htu`2O0 $N37JB]@ilJPS#=(bȽ61}Ѕ"aGL\fulXdf"d,˘{瘓M K\vL!ɹdyHucHw ]m?0!) "1p9#!%]\|k81o ;Q7)~]ǩ t #D`&K@r}RDg% ) {%aD׍wgTU(qQI$.ZLnc7 r.9Hԓk| H!*!:@1J&A 뜈bO?8>чP4b 5(5 O,G{A"3Dۘ(f;qFԆdV ǣشoE--lQm^/.%˫@Jl?h?<ʜ7_/ @54[27"qlhbrڲ i, lk$"+"f&yVa<f k;"?@&#&%h $f ]+"qz;5DШ"d`(RT6A w@&ybT$Y:)" bW*JU$MaTCɜܥbcI䨪FFTlyM݄vFUU`fsD†9񽛷 MUMN_E mhtrqqqqzrxT |;;㱉@vf^,Vp8^,Ink$,|Yެ_X*'R5f~qx{Znanum1t6[-W|$s'=;yXG?d:ٽ8Qk Qc\ͯ%e9׻}iCUm_|5 b6ȋD~:y)MN۶s_/7?nx{qp0۶±_<4˳o=,L|y9?ƹA9{ֻ|]חV˵bO_=2 Y<=yg{wX J j,˽µ14̌ȗuXeey& 10gM mCUU#Brh晏"Y;JI:dj!jشJ՚(۶ q2JlAc *DbhMԪm lwb f9MOmB(!DCmIccL)Z J1@0/eH FiR@#rnzG駟tA1'rMcU{7$FDOZ9:\͓'h0:F!brywcx6ZV2޺}4m AЀl;[mW0b>m-1–aV0T:C&%JF>1@lZ0@M/N^ݭj7~k j0XA՚TҴ728sdY` dH!&ɘT=fP7.[Iھ%vZW,AƄ )D#g.HTTD0hQADɈ,)!2CN. mK :M `O ]C;ji/IH 1 @#t44r*EU{ eԦ6蘓Ty$Brƍ|~n i6zMww {wn/hrp<|\uuWf޳+tsuu/ǣw# !umVꙄhL1FX$>cB`\4۰B6xş>{יn߹S㳋ãtX'mI,'Ewv>裲zQlf9? r97m? V뫫%;996F'?-jY[i29~[b{w4j~zqjWj?0IØsvU5?/o߻ۛw'ٓ/c И/e>;8dx9 diU])s.4/\]6MD1F jbb*"*eYTuf۪j76rR2r*% h˞e1侨رE%7U6l&4Q f Xf>SzKS4"u]-t$)8dk KH@. S\31$ M/^sc53LbҾE=J7|tHĔŵXϺ>:̰uiݡNLdf`~4Mi˫bJ)O "9v%ASid_]aSTA(h)BB u椮-H4M3 IJDX %8c={tȢ DNyնT E_%@/g;Lwbl_<;S528| M5o7j'ٓo V{NO_fl93@!BQ@[ʻ2#r]7m[gYVE42TMT9`Tm US堩iQD%lGE{T Mm14*bMKE>( W Wx0,Wwݓ&[ ;Fh*)7,;cd碘hyLSHᨪf̎d2iC(rߴ $!4MC1D 2y"wũDA?z-b ,MN֡InXinKTdHRvEp̮vaM22i#DԀ@G;Yh$ 2YQi)CXII:~ @Gsi?f=D$""IgҁYRNnKԱXG\#$ADC"r<փE|o*ތxVV;qibȮeKo~z4~oۛ]<%\HӮTIj4$$_%LjRD5A|-'1@cJw)ii%U}3(he _^^Db&Ab P QTt<)aP#g9&ΦiBRvtx6[*nf d1k,UQe4MjXUUuXt۷o]|[2UF͋m@1[o7CZ 56Ɛ,^EmZ&Jp0Mb 2wtޝ|QI᳔9|EcyN {U,?ɫW".}ZPR^Lo:c$BҴ Ѡm2P(h9%j35A !V}Ă('цLH%CLlXf1J*)=7mu[1#H[xd;]09KsUGKw6jr)hj Ȉѐ*^ؔgl=,}VV2C&&6HvY"ϋjL3刞63cf"]v0;X.r^EQlɫW///Wf]oZ&%Kl fxAnɼ0dtWvsTsTE$]0PCTeM 9ѻ>?8ucg.UΝw_6ayyu2:+`4me|y6jZޚß7_|?/_1( f ˧Qb1;ã;8O/^|Gxvzcutx=evrɷfmDhPNnL痯O,ܻnj5ݝYFg_<Byִ6 ..^»}?<:z;??wEO_?jpv3Wl^ B$Q9J`lF%ĺi5Z<Ϸ p410 a2۝XM۪Nw(n!R˵4UeQKZdxGNs nlV'RZo7/:rd1Ũ1pX"j4f&Qwḍ1Fn,/K"i0͛7OOOHYM`0@D5AC aQ驑gYlUͻ[u痄AOj-1i bUYA;b_>zHۮ|=3ិ2䎺>EShq")V͜fh5b^}0`="6M 19g(;k?o"v]oovmLQ#쪹.?W[Zm-;,Cv IDATgTbpS! `bGzQ )YϫAL"i* k+jaJo:aZػsT% m4Fcvi@{#v$HǏwх:W (0C[?{zv&Q TcԨ1f,#{4 rȤ`xCOVj%bAh8Wը֢Jvwyy,O9^/F . pwQqPM؈ &S0Nfru6W˫\!2n b,V#2bn66jdh(ҡU@TbjVB̀3vlJ ;!{ "1FcE3GDftֵ#,9滋3KIQ130r Q #X%ٶ[6-YHQ,*ւ QK*,Db hAJPEJ!XS7iu"`Hr(B {Dd&BATLeHŀ](tA& lH!! :dfGSF1wA3GdTK#wG#`ΙsGHC4cf G!ae 7o/=}lO<ï˨q `ZoFEq3]WMS,ٝVMZ-U\]]"jFC l<;l *0Ш 3n-Q Rcv|t6E݃ >6ۯW.+v\^mw>kuxzqNwNN={ի!>h:5M=>x Um4˗/?~2>>yV|M;U1bо~hx }^~X}><<ۆ+Y/W˫hvEr3Ү>f7CtEq{~~X lgggoXEQ5M=밻0gAcc\o֦؀W-+j@m3(3shUϐJ0 Itlf7̽`nզ bS]{>8y uX,`YR Ѩ"]>=TUUH]f9WNUUf"% QiCM]H26Ɔfm/D9 tbN}Nၺ^dDuq0]h -$D 5YܭlY=HmY1g^jY4D4xό#h;2@fH-CS]80c0n=^sڟIطs)K-՝t+FK"#yu@-mĖo;\o|?)$?huHbB;IWEu~[e}JPa.N`G0;3JSfJP,R)*=MgbS;0KRn~_ŬniB,%81 zyOh`裟1ׯ^<ѷ(;;놐vI^ UUbql^˳o߼5'1zFh|g v_>ͦn"bQMG"^?䧢_^o Vd2X.O/nܘUMTNgO= U3>~m[Y>:~^l:EZ-۶ݬ7ݙlI$u&v{朧IQ6Zhu)i#i!/6Ң$l&&*r|oч{9Z\W`嫊|}򓶣z:mT^?ԙF0R,\uܹ8kSG̒L 87W"ij0 (\Eyo 7E*X쒈3Cv*(( u)=ie4ը ՠ"(iSV~XU׋5@W0qzyT4vťsD!fX۵+DI|~ӆ@!0zٳly5 ;3TM\ew~oH$!e0G{cjI,I'3`3F" v"Lfy=KHG "#?ND+<͗#PE!e_V(#lCf'kdLT9=f dI=Şda<1̋oSnqEy zЏ[$lg~`>%+T]iKgprPJ|q3zq`F>3ˣ?31KK 32!탭 _9v$l@* %"b2Dhopfb8%P)xB_!h/Ȧ("Jh@b]FE4ɸZ// v<}l~v~xa4Fސ̀܃Ou- jh֯^VM˺f]ugg@LM!Us (Hbydm;s,J6 \3UU"bSĘ9.(R5ܟ̞|֦Pr8KȡI=b~SUr0NAq~6iZ^;GM$x}j3ϿͷwWU GLJ~k1$BuǮ;>>L&8׮<{I_򯚺9;B\__]WmO/on L _=z<'1ED꫿pA(ޛc{pϿW݋Wo߆aŗ_|?pKʲJ Kj`ypGJK+u]'IEAMFd;-3DH#2؆{D1jŘbJ)]ZV9jӶ]YAvm";LTD5? y`G丅*zђٯSvlYOȁ;l[oQ[f^ lwV1Fv 9#ۿqɿorNR_@ۣϏ Hu -g;#rV\ccBdĒ cכrk3B۶eZ_@Ys__ݿ!4M$Ir %uɄgGJ$!jy)ֶI]&Wg`{O./.KIwm|Y(z"@8ۛm9<^k+ 0 *Z8vDBP}ǟK*l3PERg[SIsh4^l fj/ %1eNSdep0rp.!O)ꋋIɣ.iH@ʋBDp@""$\r͍K[HveL#*-Vu6u%iB%%hvID5 1YBU 1"93VSv`yufyMj" UlUTQHL) {*F\cf~8u)xǦfy@=z3.Bp~8xvt"{MǓtrp`,L#$M-"t2m6Oa5LBӯ~՛MBJkq gB2AU9#o%Th4_1z] jnÇ}{wn߽}X.B(?̧^tq]trgPfDw> ˛EӟNGE(')({?j_/>{н|h#ҩͦD=;?MNN Cӷ/bX\T3B2|QfZE*dSR@Md:8_\nk(B(FLQۺ˯Tx~=$128v4*mR(UUDu'"l#"G]NjϠ*1xsA$"Q@FKUY؉Y+( ccX>T-FDsnq[=@@(Fȶ%ѻ%29Bmr<4w(q/7,̜X2@ٙzSjΜBp9r! sa9@B>0y9}Q9C[B[dHV@hfB66T-ʻ0bB`!nS@,QEt˷_j~֥[_w?nqO{ضO[ЖŲ\vfo WcC992kn@IMDqJ֛L 3JT yrLj@E-6] M${3 A+ 3uTC0I] .3Mx\]@P!';eLI:6)ZLlL4Wv1ڍ;8'u6&mJ*ԦO?[-̏ۛzDFd2>S }l8,W>>;G^TSwѐ8:_M]Ve׌ё  2;OG3B%Ǫfq HEpƅr:;b.=ѣG|U߼yiVa?̦O?ՠ~gݣgClV% ?;Ͽ hԥtzz~|tm޼}_z>~?MH*ٓO>ɝ/]-9wd8~9=}c /o᳟ٟ`Z޽w>_1ST"NӢr1v. |1AW"Ѡ eYݹtg}.Dž2f]9V9vT*3hp4L)f]! 3pTѠ,clf֍;g 0$"4(h L**6"jY\'i;rmr= @L<-f E)\r lتЇSޒ Ur|t Y#sXR9dIѹ $ 36!/RPß_ ܙmxB E$%&M;t_Px_]ӊhJ2TM+~4KH5@ ]jUuwCEDM%di˺Qu~Ф֘!GHid^KM9u["%y|f$9*]+uzZ~ϿV(bwqi]1?\/V#Ϟ<(T.ï~u36h4)˲K,dB''޽O&{Ε'w;o^~6޿zץdov !^ׯϾ\zD3z &lpgkCz^^zo; IDAT7һ( rڔ2z!FSErc*Lޡ؋Gò 1*";4'01պ=8rN˖ɩŦ0\Ò&}'ݙf9,kDnis㓃}&'6KEh8Hi"faz<s"[Tr8(Mm݈Z.䖫!Fhi yJriLsܱ)0B$D3S"R6Z۶y> j مY1Ybۙ.#f7 '2zGoFr~$lem;<Ȩm?:noգOJɺEɺ8&%·1So6T Բ>:osy9ڶ[wC)ͩ=e/h wv+$ * AӴ|K14Y2g'GG&bGVʲ7bX7ZUY@Bjëض)VV.?whӔ-<D6Pm̐K@(/؏HE]ŠE^rU>zfUEþ^mAT!OԴ*JE5e9=$"@r0h$GŠm/*lרf@X"́x8=JWl0څeeKk#j#AF2 X U,3@\-I;'A9SjnFl" !Yd؀ DټjH܉]vH1(hI,&Thh8qY|RSUB,0tSP˪*,={T=?[Im,?U\^qo2V^/ѱZ-pXI']{ss`wD6덚/^ DQ&W# 'diU0r6"8|?ͿWקrq>i )f7jM~= QZt3_*kCOu۽Fد7l6?~r`0bZ0F*vtt|yuc>;wMgu'|Q7'E9(aY˪7f Wkl\_/g ͫ\1;>9)[VÝ;_}?Jm]okHQg fS;b1JQ$(|׵;8<*sgu{TH=ey~۴0ƶi[0e&D 7u-*ChXeG3ppD:յ G?0æ]r/٦ޘAYz8Z!o۶Lmۖeaf"%Ӕ"ӛ3L$I|pEQ jNҪMg3"vy FΜs3h):sDPDs V!@$T1> >7x Y&>0ž#c_OM )/' sN#+2J;#<aCVŽP>&-JYU=_ _2ESo>qm;yEfh{C~X|WG?6lsf~L~1)9 a4sjzIAۈ@%h^ ޷n_r֙XD@DY_pj}4$ae0ӄY͘ILRQT{D0 \ys$@w߮Kʗ,Kܙ9K05&Аum"dz~mZj[rLawp:=} b2Cڵb*J&fG{t6on7j5l4ͦbkb{x7].F?~f>oURItZwMj ./:UJbDfN"b#"(Jyψ1J'jf&:_/0SB G0£WW9fXP:5\8U]2j@H^Ѓ3d3S?9f0e*[9Wkr!#I Ld"9kKMьRҔ}THDtHT(J4SOW169\VH>Rj$DT ] 2Ƴ٬b!))Z%A OU(:_oh0L嫗no6|'}QGtj(> uӪئERU&0R%Ēô$fefd4u(ILDuD56)zSσ6n*tŴke6_mVuWף?{o~^!]+je5_:=;?{aҥ;WU{{tIYbbBrpvR,ht'!L&JYr2/Qglbu`!xDm3]^/ 67Gt]c7~|foz4U%}U &aooqnױmRA`T9K;I 9ef;;m[cI)&UŪ(UӰ*qs̴i/|qHRM6VeYZ,mvÎn˪v}yL 56y׵(|bl4"p1mf]9cwԌ䉊to2_]]ʲ`r*hSogN.{iL1O  $OO20K۶07[.РoS%C c/­7OYlYj`H9 yljdL{br[=zȤ},be`ljj3 (DsGB&P{VGV[C6췑en~/mYcƭ㨔Ia;n-Vnm~ll)G6WF`b\n+'fo g';%h`&iyL$";FԴnT+(bB,SUQHF!fDUe5mK V3B cl g&2d˹<(Oe)PbIRT@i켡] -)޻2& ǛռI&D AҶm͇R]ul.׀VZlji:~{yc"\n9M`**ܭesN@ Pn"D)R]M]xyqiHb4~D̍@ L9w`H:bAUj'91#X+ 5Na\גIJJe 북ZKÐ;9!H9D #EUh9e3D#3l1G #YM12c`s8Bb%$udހ,*@S5EHfhBJhDΓ/rN̨CtH;wg!'},݌g^H D@ W0B`*}ht`2r;w;3{-#NFM]ubif2#BQɒPĞVu`(Yŝٝz66KKY#,Qa-!9"DG̾Իу>CY>: z8D޿sO>r8>pz||w<ګb~X.UuXVj~iWÛ?]7,f՟|͡:~b]{umwxt,b7E]3!)9S03bRm9X5ANA&fcbHK|6 pAv܊YYxh&nM _A3Bd}$B|WSP<=-Bˈ2 řze{Sʢ ( lvĈ[m.mrPA^6 NQS+e m#G\  fk#3x˛#[fhM·3yR7aYۏ#Vn|[ۗFeǎTAB@lзmA**2f "24 H> jLHZK .z@.ƨ@5#M<;g5k\ #A2o;"Dm{]\T&, Iѷg_:55b邪.+E$fmIb۟d^A ]9Ƽ0uӘ(TZl`4ڴ- lH*h1̶DDC*ʢ 0Q\n?b3D;.k쫯޿7|i}Y519Yכ<OvA1>z,DF+B1*ˊ{H9I5"*r|tt3 DWz@mӁQ]K4EKɣݿs  &`&J %Z #FD16 U40PD%#<ʁZJ!8Sh,ѡzF̼s%!1 ƤIlb"Lq"8O  1 9f wwlG"9('N߈$Dc]ױkh}F]یf/^nϾdd|3?{V08j߬b\ Gcq2.<&sPȍbrmon#]c*•'O}UI)EA5?0_ݻt܈H'V׿VUu)I`oW7zX6 M&#Ox|tX,7MJĘf:s<{|;r6{w{w jPonW])6WOOWѓOEIEt6{7|ĺ?Ϟ~~b=xWWW䂙nz i7|4=LZnߩhE(@IwM-2uq^SoPn.2u:XI] )ʀ`jxy3MMݙAbԫ{fyB( J˫X%˟/߼yY8Q& 5aʕVGޓެ"VfD{GmRh]Ve!뛘`8VeQVp?c'M͐фȸ?nԲv9sa!v-zkܦ$[}~Kn'f{y| 9Jz$3s3[G#<QpVoyH^[42r:$*7@d0qXu&%Ќrv:l?FVj#o(GlF.?wv ®r'U["pmgHCX>"@@{#>?:)3!VeKTmƠ==PV8k^s5'"RXѓ]?UQ",<{_1D>G9@F)!cv<)˯Joyc)Ι1bS,Rrug/~!K]\Dt; uQcˌ\rCAPF&]ڟzHfS3I-PiRRdK$]g~n06ڦ5RʲrTqSo,%uĜw& 9?@Jj6g!ݫWMJRN5\p4'jZQցֱ 7%a,V QT0X;PDRs;k6eFLrX1")xw=hpI,3*b QOW1"gdf@d@Uj9bl6{YNqU(U$0uL9 TGC5*^N"UY֋M۵yS}Bʲ N=sO<9}v-uS1Y]]>zdZoeY2röBQ=)xXy{-ׯ|pr_J:"Bw|?%HS&*]^^u⋟u޽^ L{EQ5xw&X־,W/Οܻ{zO?}曋lGs<L{a4ۿ;8Y>PLgG]].pttrhHxpxl޼UUIwsqA>iŀɕeɡO6ymVЕCP [_4)BSweYkQC .aSױU rÑĮh^->{<_w9X.U5}MbE5^: mʢkjPU`4uB FW!Fcdoh\W-݋:BJT̊&cJU6F̆1"Zm[0;:>V;)w٬U$ǓӦzߞ^^_\\ߗ {Y{E,HL9o+{r3Q'ex Ĕxk}I`"0اtۙ9[ 3o6>>8՜O3Φ-hI!p2舘oK¶eH~Ą'I*Y#H[.v7OL@9v.tSD{XKE !E5S-DH!xDIfW_oz&ɎL,w5[n{HQ64KfzO2?@fLfzғf$5938bd ڲr.~уȪnN, dF޸qjm9T%GN1Vono=Szp0]1a@¼8P[Lˣs`C&㪚mz6mwkvIW0 _y41nƕCJܸ;V-"9o@Ir1;vllJ&*}p\H6|fMA3(b)DC߷XE]N[e2< G9ryTk[Q^ aXo6tk;l'Y2!!IbB3u;;P{*Z h%+Db !rT|,FL " 5Y3@IM =*9GI;19aGhjV"H0'jl DP@]; IDAT1ycbὈ9b"$1i"#\I%vդɬ)'MلW3WIݷ=~Hum$ˢÃ;ꗿ;W75 tZMٳgu]w(sN%+)I]5YD՚no^nd}Kf\<~Q$y'/_=/<:ng77н|:Xz./aGnޤzo*4|WLJGq0,˷Rm~'?qUUUYOgi|hћo[f}Tvss/ zRg<} ][81:h,BM3m՜%U݄Cd$b罫zRUەͧCD}Q]RU8RVnM˾v}j}Tn0K]==9v3ֻv7[,,qubtD!(TEՖEJIzG,fRo.!y<[懟諯f-Y FT5jH4P$Ī){Yq;8~t`Z57$ah&UY@Uz&r수@v KG# PCn!xJӂ:3|xdWov+D=ZVV RrӃ)'z/jsrz_<}xx(߿vB4&]ob )IgA:2Y|l_ @4.޸{Du{,.fg}7W7 *j_L^_\5usxrv}|z:L6U]vI]?X̎KpfZBlLcMf}[6?<-4$p|tBwp0B?ͻ~ãSCYIRjnamqQǮ (|QS]^fCU%.>ڭ*va0PWݮ_Φ0|oQ!!ԥJcnwʮ펎 smt:۵]SVІC]z@SMZK ˪:}{Qռ( _FEAkvBS՜&UmLĖǯu~uNcT^9Z@SCӼH=ß̳l[34qղ8Wf XDB2x) ޓw:fރ~&m` 4g?B1Y1~lэ%"Vﳔ92FkHs?:D] 1\|? ZiG?+<~TGmdXscGdٜ􈌐"S6/*c g@y,;in˷j9#PQƠ1e+9"S1=X`L,Թ`ٻ˔\E2,"*tA ΐ8rw;r "I 㧟%SZrw+Bj]d.]Lԯ~18?:~+T5$C{w3Y,~-` rL{mf3 @0d|`U̎\q2D@=]}bnv7>)_l@E2Z0OnFiuY6wv;Hq*13a (!w>3FIRUqj DӐҶvugL|! B `@h']Ds'#{yYC:3c Q{2cr)*":)e<(+9pJ4[c L9(Tfjg]=9lcq2\_oF"# $!E1i=1qPM *FP,p\̦jTumڰc"My'O܅0m|nߥsnśx&pxpm rEU50IJ''UY!pY$a Fy8|EF7Չବ?G9aÄA`P:<~hdn1ȟٟotRVի4 X{G5߭׫Ͷ''^鋗/ONjV ./_O'l2?>>CAc >UDMGtQHhChVn>f2fbYD׻7?g0 M=]ovtxx)=knwG~RfQX.znB싮A;4 \:_ }?fVU:5 QTd!ġEGu}mW73'uι՝)6u-ILm]Ϛf6?[f*@BLD\5ӪWʁgƔUzwsRDBQTEQ\V 8E>)i(6v:_68_ll2 aNaLmѣeׇ>2fݶH־Ǧ#3Ur2cs>+G+? qcSP#;*2G:MU&#oY/4jC)Dz b` `ShSUAiuuYeC|/|G#6xP?r\xwsyղ^}[,f{vvmt2iz:ͦn1Ɛ.KۮU RNċ&9]Q7ٲk[@޴Y=7ڋ[C{ޜ t@.j6_mmLmlZWu? v[n޾|ͣLU̯_xg\|Z.(gr/fo?o\,..Pѹ//=b 7, q6Kf_UޮA_}8?=k:狲l'GGǞ7 MiS77"\MCj&c`QC4'@b I*v3!Hն00L&U CEa2!1׷*n6v[W5b6wo/LgVf.vvmLjUv7tIB nÏ~o~(ˢ%ɤiw;WTFVuLE74 yڲ+|J2ؙcZka?'g7v1|$'~ 갬#D✴ @j93J#0Jޡ@ 33ה!9b}H" #CV) Pt,]Koccrt*]Q8{c3@VQ1eĦocރ=P,?z8Hs=# $ |>Hy%A&(* qDKe21NT({;Ra eA[rZH$+r>a(+HbPL!8&4oE=BPF&4P&Yߡ#"vǧۮbD>UgGgo։@-92Ds5A9IPe01!i4e3@r/恀"s ɐ3 B4)Zqw%,a31>d  "qP,/si&d5&0h߿۹ij7BZuf"Cl"&f!~wê^^]\Y&GϞ=8{xvrڶC[擪Z(RIDD)I;B_WAܬނHU^nw_zuC3rOac:.Wo^V8lVO&]{}}LGݦ=y|sssrxBNJ27ĜʲtuwV6)tU]g/EMvlrHvo% pb-f'O}vtx>76vC.dwiw9<{Ǐ O{&'|zM5n^7f7ieMW黕$ۡK~ϟo6ۃ偦"}!~'bLӛ'_X,jܵɇ}Tgo`C׋l\~{qvG݋۷!|L'KR˪Χiw~1$J:;tqquxp"n1?~Ðt2[(jEQnwu=!Hu}^RUSet1(#xf_`6&!:3#!0:vIR Ln134%ơYZS5mT yޑ+|Qݭ`6h]Y69TmwQ2Q#(V !}E% Ch܄P"皈cdQBe|Α< AYԑaFY4%YVwd f :AeEUW>so8!a%cbT҃HɔpxH]"}L# 8=7f:Q]H%^nW_;<;Gv61ЈZ{-(",oYh0S5hz Fc*c}#@1:;s5UIsF J'ESFh$r h))ۛ,7ZQpf 'D$b*S*mb>88 vEʪ8uTuہ$f H !W@V!$I9t0%03cu^f7lA/`IH85Wf7=YlÁЀL%-;d$^ IDATBѓfW`@d-S2f?Y9jqNEU8"2w| 1&!s VqD4b抙/?~j}K7Bا$Q$&$tq]?h5̬J8s%C214Wһ"D0AMkϕ,^Qs "APpLJ*HF 1sUS<"ZTA S$_xd\/de) ySрyvG\} 4+l2of\& ӤGyB"'71Arn.>x{1C3^^r^iBb1e5mG",͋ڹ뷏SoGzukzuS}{իo"7M}v]us$L4vwum C趻mJ9hR//oy׶mەU".8NU2$)/<.n oHvp0{0.`*RU{sqLj縪w]_ʹt]WU8|31)lr2;I4;1gim  R(`/K)T%m;2KF̥/TB=^ݼKw)H((.X9 :N>;|s&f? do Pf ݘTFa̴}#GSd Q c\hDY2F!c*<{҇Nj$=Mw0 iQ62ώ lB3E&Ywt%8v{]>]Y헟fO b^%2jNi}hx8!}xGo|H< ԔЩima?$A9"aFfQDf QC傹{ fs%ȲZCft -ΉbӔL$mmk @SLӧOWjR13Ii@ H9VM/4>SgGYKjj%JS_CB0(f TFE"(hJ) =c5Q2C6fGΌ˄󊃬&Q z=#~lt3J*Ir?#/Tuwrm齘11ϖef !]0,$5ԆZ*JpN|yͪdv'% f e@"٣j3nBUr# !pZ*TtG0d`bTcS1T`1 <wcNYq$0I|Q0BS2&s\0F0S):"ɗۛryequs9ϛzZMQmNz:\y㇏*^]O:tYd) zfX}{ч )LB缈4ej1Q싪n+Wg?hfIvjz!bwss7o.kG!q99X.&N͝>Ku7$Wuɳf: t:+j:'(":NON?~y~$`b_7O_\$U3~lv٧a߼,jRNnZ_\\:+*|n ='Gǧ˃'O/v}miy{}y||Rt\ n}tO_UUbBTbY‑6]?;8>=>~}ׯ/n)sY(BC6Mݶ;pXyg,!s)]Z& Sxe$L!l !uc4C yaJ"h jC輇v|٫WB۳a*Du9"3BĦix:f0gL0 6.L!be"ލ[ovD1[Ǝ,E՚#@Tˍx}ѡ fWoqaƉg1s3]# 4SlaD~d5y} XןMDVxD޹.cJM < MO މ={rg@cbȨeM~;h r Wp+Y=ęGWcDLYgI:"mhEĽ ruxO3)a.{눿}HHgeBBk8&gMX"/l`u?#B!dPKBb' P;JA J D4༸рT ѐqwDVK1ƔiD8vܧ{A,fB-nBSe˫('!!1mwc?gGd9oۀI0w][VwE]lk uSy_894b:ۮRTinܡkb$ gs(RPL18n@*. }">D@j|nw)sOU$\ɒ$Iv-vU53bȹ*3kioFWuUהc>۠zB<6sϠ?"ক$N*"j[GM,BN&|~?,bsض޹t]~iUt-oX+Dd\_/G_!(wQȾ\:o 0 ]nE߉1SC )Dw0(^D"o)b6%f*0<<8nj}! !VٞdC@wgjۀ0vDȐ {o׆:0zV S/ Ye^یh';y0؉SGp;8[3Bsn'?Je"Y9>ʵ% ~rа J@5ڕ~YhADҌX${&8&꣼ n0bS,BDLs5)`'9T1F cr` ?yh`bx.߯5s ZD]Ӵhby{fx. Ѥk|\B"FU~N6<#K^pD&Z# LzFUΑc$Q ؑlmKk[S!uʹͪ,bPK)5Mt]_]/7b.'z~]S= W/b\>i6g?O>WX|g7>Ҷi 9v>GbQ{%~tكu}vpxα ,ܶgѶf{mR޼mG7'bB)Ed'O޽UnYl6@U.$UU(BzE٬$3%S-Yn7fTKma,Q1W`zxpY{o Q}pzmIcnSbu.9O|L.Wxt]_:%A?Uw Bͪ\6fb]+:2fǗ/CPM  JXN0Dva)3 \ΑQfi<3<"L1r+ȱ9phL)c[Ķm?~f+G3ȼȻN۬a 3zy0_F; fk%d-[Z͟4"DjU3 }>^rwnt 0Tzx钪9ES̒Kz?/<;d!KI$OI2Qy[Ff tufZbNHWC*S3%4ک$&$O'!)Zf:i29dIQ.!p2}ߋ< 1`vo(p&& &0UQFFTE5{rqFb{m@P5K4s$ȬmFer.tmĬdfMḄ#ggP[F#@< W2|a0ױVi$3b$昒s/ILppN%zz3L Qa[Bz?&Z@GFEAU25,W|@JRgbjH.jvBk1ORP̲EUQ#SCgiRpdpG һdKN"j$Cjb&F&dUSQ $6D@"$̞rp"";Oz9OG c")1@JIB@X'65 olM# ~z=;Zu7ͼ(IU^OP,V_Ql7Myߗ`|u6ɚ@bW&Y.7/?3wg﫪&RLQSw|Fb<8?ݗ}HfZ7M!umM(k/تUQNQ_?7o{pуov`...^_}=y6Lx2E]Jp[ofJ ܽjRo_z2޽lի\,f,iS7oߝWjIݬm^8.M|/1E"ލdz隶5ӲD4*eP7n.1vCb1\Vr?fD3lk$m,GS|W?~IƾbjR,!}'iQ.u,65X+WnI J9ЁfZr&;> #fj!0G;&}`G$01 1SuĻ'f * 檵QݎCSUD3US3Q$U_Yޫ1sT1g'qg:a>ofy:aa?Uw)x!Tf@ =% IDATU;lt-9C` wwt[3in 0d#z2>QC'b"SDyݑsF,&n0{rD!@R@3dyj<#*2P2>x<%0Ŀ/Dsn "4"Թ 5U^%YU9|5GgT9^Ka@9 Bzrڶ~52U,Qi`q[QLqYF925OfJ9L@# `gEQ`Դµ`뵱HNŀ.[ b52PE̎<$N=@BU0u .0c?<& UEV[>D{5ȥ/s8x{j׫gFF2drpMݦO!si,AML@5 uQ1-ݶt$[mcj[0* ;,&#Ys0 hn;"X=iR3n:)Gyr" TE).WH\s.&etNMkS]p[DuS3{0\\\.׫ggUQ~LJG|u}W6Ev`_Ox2,7ɽӽQQQd28cϓI6mA!d:;Ͼ/_Y9.7Y,\]ix&(W=hrᣛG{8M(~mMjxp&eh<2`"W|QN=뛳n$i}N45·E͗7EpFIltrJd>G=yj]Ɠ2xmcw}1.r67U(J_9Gh3MfS&'Ba2͗ۦ‡QS.7$3!B]GGJ|i2QqΩl<D iJi\N8FA5fvF& yehY9E<5b[7 Fɨ+7mHJނMVf}/?B`9Oc$BS྘1We1yl01g*1O6 0C ePfmP,1,2= b#4;{HMa+yYSўl/x[؃0a;Tw iɐBZ@wF3LD`LߢU Yheon0=S@y98}.A4D`vKWesA0pYɢ0S{&2 r!#ZN c@f1,_!#mCQYX1@6)B7%*<"LrFfL*CxnPuj&6 e)N˙,yR4(d{f="$##B͋B#Bp|~]+ 50^48qiw|> =[g C&%ǐw<3z>#\'E!"3 `p.P8GJifKIM`ZpSnFWM΄жG<\,LU0!ch XԣFmM+MJbTG]Gm$v* IQc1d Y `"CBCQډd]ޗ*AQP L1&L@%h}:ɗ6@13m^bZvu1mtͶdvڦ?|#AY"V+B?tvztއ^wz~l.痣Q/Wlϱ;>:~{q&eYDi[oREp1%jEYxTz޾z7-vQbl>?yoжt6M>zîݦ%2A#OX8J<+iۊs)"iƣq5*ˢڬh~}uQpܶmϦL&zUw(e(_7W߾|x\2߽,|@2{@<>~{?`[78j~zr^^^FIUtͫno(`eQ'I]"G5eٞ܋it2l,4%*G~˳jTձKO?p53r3dt)(9r{0iZ_b+Gr4Gǘzu)@FѨ(&IQuNvlM2tM7*WWۿoF'"f6M+"Uu4e5x4Ncǖm)R=6reu"D6f#H,jI$+s3$"̼ [5YE3džeF3ܩ9"C: R$FȖܝ BDzPnÀA`^E0I`@B gDp{AHpKl;Y0ϩ!❙rqCSTNa]{-\2y4}ܒ}n | egXmgX""gbxP${=ASCf;;j_47Qf+Y%&DJ1ft@̎9H~#"$r/5q(öjF{2$ќ둭B>:pDǟ׫i6zN*.o] ѱH_~ǎ Lg/Ox2;͙\p]5>SDz^}%R(5BJG{f2-BuT(/?-֫t\R_lqTƾzC^߼\cQ>БdZ'f==98>><{/wX]to<;$N'Ӗ}S mVcS__->q9_z%bӺ٨H"%PQfL|vغ`i،HZm3۬xRM?#4Dl 3- /etp^SjMI5rE,mqQJn͏GVn ى61жmm P$UΉBJT8M-?z׿m"FOzS,\oxG՗2In%` aqd`ø̈YW{ghyXϐy(=i8^ jT ={b(8ݱ_*JL $39DfOapdgpOw( <4mǔ_A$S8 r fOE[l#eo7/F'' Ul zc=ߋ^n׆}"Df23# Yv LMLR9&}Hbv?9uwEHԯgPaɘ c'w/W_Y8"1d+923Tq Lq4!a(0g00`*{Et`''&Bbg]/׋{yD:\,ZbWrY0aĒCMFj6k|Q ZU&Ü1yfOL[m7)Ur?)?A#4B}ح<)kjBL Q+0g jЁ6Q/ɳ @{T=y1fI(~7/]!$~ul~wDn7eQ&99/^x\4I*gqu;VѨSUV1F @v1eYԛzcYQB;,js^"IUNb4L sh2ONO=:>~x'~1Gmۇ0oG]G?25"L1뛹wSrj2)ʀ`؝Y?xxCKm7& _|͎/Ϸu,1Ͷ*YLSAc) #vݶ2Iywo>ylXx4?||EW_ԲsUU.o9?'ĶZmxuy~Z5ۦ2,6_<kTT[I]|YE93Z5 سŢ>t:lۈK4c*b򞽧٨YQQJ VMf;2mjk&7NUcQ-m6m3ii=, $E$̖)@$L."u|־Md|Tb!AD X#b#5~|p ,BVށN?#;BgJ wrv^;NGcf ',yRИ1Fs|^7`!~gn DÀAnbϘaTsWh_7AruN5D"*%iYEf3oְg N`~C?ӝip}1/;E&c`G拳~fܯ+Ds΋&C}e6*`sM`CRF'9f1st"9 {I=(tso,Zf=s "WQ-&C+˪]oҴzf yxق;f5Ox r r.HQ@ sͺ,Ky >(/G ghMfUJRm4Fi'zqrxXΫ~2~r޽1xth_=Mm3ψs9 aOHDz;'&;")wf:B$E,!,ɲi73!@,5xh`΄ a(OgrD$Qq䧓:vygiXn `Sȋ2G3Dпo_oeDdIrB B`v ) J vh30{GW>ZU2$(y4ƮLE&U,6:r ż&tj)_38�LbYH 4ILhHj`Dd`20&&i*0JabC4K1I.1dbUJ@%,S|!~P%E(@ydsE髪4Ke `ߴCiDԻb6MƳ7Uf&~WÃi׫է^|3&~vo<Ǔ@ѣݛwMBQee{1D(!lTGdz6I8j5˪jFD(Tm[\77>|hfrtxr|xnfmヺ"cWv{d41U?~YÇ&LLo_޼ÏfH]\\ׯ/G'1jTyc]o?t:; "B(}EݴUY؉m !紧خWwM4iݴxMEUXhS IDATQHU=31KJd}8 6);-rvIE%8\֩'A9/ffOSXv!)X8WŬG~ݼRm~<&w0\ۭ# @~oXJR8o!g ("x(X67hjep)F3C ܨdbzG>(׻9M]+$!L*d TML@YMRQARLH+Y󂁉f0G(1F4bΊg3G@@e+*` D0f 2D@IՐQi82;ͬ>{fwlTV?{qlZ68uu( e7Y~Lk3q>} y69 ۸L@})̃ "a"c_e9N!0KhX̦ӽ(iltԤJrHN<6̮`T5 ;Ⲩаm;SsbL#(8ɒF#1#Ȭά`Jܻ-d)4# l y Gh$w$s9UԒ F(HEB@#bfLbʞrX $jD9{|ώBմZ@E|pCɃy0mYˋ.ƣm7G7y۶<2ҧ/^xM|%:WG󛛪e\.!&rFIDxة&f1z^xTy<({.բn viUUs^Ӕt28"85уCT?&rtxwuOOUq.ovEٛ|v)7Yˆf܋=zg^w^~=_\_=۷߿{ug 7o?Q5bU>?zdo|sս{֢qW _ij&nԈ8@[mBbs~ql铫˳ޔ!l6+O䝟&U9 `:{{p$z]{6-(mm6QULRUʢL1כ N٤hۭrx$`x ʲlƶ,dMm.E{#Bcu F(7]^_c[&A 6_zh~ ,ޜ F70 Qߺay;kh~jBʦ.2ОA]O1ߕ0;Bd6iǟy-;X~Eoͻw o777ɓ&,{m{X9B|XWחWW$xuSu28]gJ"\д_}'RHh Ywzlz,yߟ_7doVzx|Z?|OW_~l$ĮpH*]-V v8\㟡pHѸ6ƙA/ZTүV"u˴"3#<?s<. o*I4"31}6~]dn3Pt_G0^_]\h,иc-o{Ax(`ot}mg˓ú^Ϯ$Uуg'/Ol1U9˓?}'~\[ft~qrks'EvsuBը_xn0l7͢YtXO x"SpWbϡiu&JheJjjE(h8.:J4k]`\Y5U]16"ŨX7!E Ir|0߿XԈbm0s ZIj%: cWD ho闪)W2*u'rYnJ:zyv}caM|W+ /)9[EvBY%h|=䲳"QDy ̗5"$fS&b9F&Cε "E!vK+U|e5^߰]G^e]!!]n&T-Bj9JrTionc-E\lx0'bI"fM* B5 Mh\F1D+9#Sb`ZYrZA(?;S$$X4"]*eNRIq*&Q%Af"ƲΣw$ϲ79W={?__M/91sW/*-&` .iEa>;jbM{vwb+Fh4fx 666]RUQ}{xsc뗿ۋS5]sD _VY$Dl&\-|8YnئӛkbX_'ݝǏ=tksm>igPu3 ME68ޞ7ok;'W_qSw}b9E1,<_n!Wiͱ5ӷ/7.=!2xM@5Զ55M`S)/7W*8L dcmxvv|IY "".L&kH)nQHHTDM56nbE1b6mhe9\G÷/=;=IQwtz[КELnqvp+=_WM5dQ"`/EOBיA谾6Yiͬ,}ɴnQf z)j-mjʜvr9챿^f&z閊S^ɏmГS6uLH˜qU7v .o7wޭ }gJN;D!*û^+#]<#~s.zO^.V[XQ{(1tQ͜оa>Ʈa|y]]ޟ;Ր#D G-$3Hђ(y"MWmtM5uiTD4inS|gq4,m2P-Lb]+,&4n]k;)Nvoۻ!ܖD9;y}$ݎA߉O*gE4k[TdJ⌨ 1 !'`RdnO?{|كekyAHH ]bg=_RCQFd?Ak՞ [}Dd( ODK~Ad$@ݸر-4tnc8|szf>jH4%BN1#t /5EM 1:Ejꘒ&6Bx44#dVxw dI0CsB}k˞f3kBBFU$*<%9"(D,'g sey#IzGEY6i~T7 q7k2~|ooogk+8˃{D4OZ$a5j|zMlp8$=<<*t>WMH*2(b, 9b1OF0и(7v¿Rضȥ(;;׿~H-!bU Y]7{>p oh8.3Ӳm˥}7`ѧſ OGo_HF޽wBM]! jsss28W ͭWYvm5|Zomly玎Dڢb"3833o{Ѧ|vq3'k>CO&cX%dPUeX̯v91ж]SSt`bM1%a$k68bQevS0aa8,UQ@Je{\xG5u3 /ۿ,q6QL"!Q~,!#jQAż FJX kk/6)wr8^_XVe]7y#Dvٶ{0wiRֱ`j Px9tzE\k_SׁXAb,1-א3};3Е9kxU:m>yAǝO_h*:zGC[AIV(f~pubǜ({9طiEV싅aW+/;QgLD<4PXW%üX3c?jrhyQU#@oU]{s f$c龑2B>KɘbgXڬǂ9I%032ZV)j6C20Sm#"bF 1:Cl,ʬfp m oln֋iJyGYwV Pgd\طru6CD!:3A@5PU`4{.?%cthT)33g$˔'I~;CJ19>+z}[ uv~aVtqW٥13B|#wD4P+{!B1)|1HbMu<Hjci Iu~ Djhf-j#%5 E#3,Ue0"eS@5c$CҾG#8 (!CAfX:d3|5*v ]*QٜP4Ebc$G;)FDC$$.̞8EQdʩ*FHm4}G}xtvq$Րzh;>?=/jP]\^&__]t:OF]|h2i:?_ê*G,Pd_3Ƙ|$M+E(wX'QIq2*fcEpic}m\H l i4,`4.bx2YAbt "J1EIlfwgw>z/U~ʼn!1;@JIȵm̭9z1c,;Vx_(d?d3&6fJq3DBVew H.1vNhS53 f sH_dBNKj:2N\TR0ՔI8L$ ]"c*9V53A=*p vD.!#"ʺelYPI;z[EwJ[2_=C"0[)X(٢/'U9hW1X#Jutvt'$ ɺbRf}~,IY!b@w`G5QYGIT'?RQw{H7%@~:#{"9#gL`JQQ=3&U@fvD("X/"dgS=5mb$dG>*DE5u/2|:hd=YfL~Zϻ;/V@5 ##C"džoPJ35dYnU rW1q(=2#u@8׳9*0gy(r Y3-J$2HXN!*Yp3jc~ō:e s5#bTVSBbR0ӡ/! CQ9_Uh\.Sw6mm{Fsvs*Bqj6jb $Pld&FFI4CoP =3c$̔sc dL(wF̫BF \ bR`D&^](*wI&vW huˡڎuKgP',t  \p__ޘ~׋r9h9?qQU54݃,&^J}Tg/Rf6ǃj>[nopbm4~wSmʲ (V JbV2λ 8kW <:>>i$Y_{ݟլY<{orL&pϚ.c$t\Y$"EQ<}tkc^xGB{~{|t!>9;~ˎt6Jiq*`sv{(Baf>Stv}uU/u\.h0vӴ_|>\6K1G=_0pgog*t0??=>ۓ`bV_d~/i9pP!j1{GUIQLzƶMMDExxoo#Q!3qؙJN?fQ$u\h\$c#Kx孑]mGD»`Fڕ){5̪ iWnZEƩ?Lu%֗u@DY[֙I(u[8G; w{`u$3mU0 wq{@&vWWQ&GM9sRYO{]`` y콪(Q0# 8ȁ 0 ClEUT>Te t.2P4focŒMIIw 5m' @#o{fd hdTCnALHb 0 ɱc"x4+_Ul?m2n Ɠ=Bhz(DLTP4GFy]ȀS [E8#@xgZR#Sx2mE?{o CvBM5 UUcl&I\Y'l9?ً#&W_}WًgK]L-=voml W 9{{o2d̅6Gۻ1,i0uaለڶ盛;?*/zO[4g>?|lq}x}S_W{sxh{{pgs*8L&ƶYDx4)y9G)5lscBPM:(M}5ko1p@ Q\ل I@R+*_\NGiZnB~>_`SX(|$`a"L2x&Sa_Ijk2Z;}\D5ۧ2B{3cĪ*){?8=;ZsO5gG&$u:n#puPUy;Yˉ9stuH%ZD3HI:7YK2]+d s>l/TfD,}=9+{rZ-JiZuh/.4 #"z tʪ3-]l?? &ČD+0SiD]Gw2M+ig| ϠVf@ݏ L8s֏ ]7g>_k1.wieHvN0dHwyuD_ 3AT(fLsnX{<5&jDS!a0h4]loE4۔$E,D"dt<@/\@#0Ӝpeyv|suL9 VE0Se(.JFGf)džc۶䜈ԱզeFڶS:aFb$c2H,9&W\CHJsq-%@]hBЛ-;??6@2ɷC+#;*%@(ˇS`Ũ {k익⣏O^²J *1 fVFKj&gzk!%tJ>8luEQDL{ҭ*fp-[Zjψ\UUEd 5"3#{rZǤ V1)uKv\cDLj} fV$ȥaTCFDC(R.j'Sm{;/?==WWsA ) p2n&~I2^h%:<<,xwuscfESx|zrn?{_~;]_˛|1/˪B1{o\=ЛvgOիvQTE?9:>:iYUoln~藟m%e\.O?[X/~/?{l6>y6?'瀞ˇ}HR::|ͭGC}sfٝ]_?U\~yꍭE]nήΐ~ۣw><8:~&&=|7),-:qQTTgL?o"beaso÷!|9Zwrp=]cz8|65SQ%oOOYKԇK/ʹ)!Pnm_z4*14]f!tnole(B-25̖h `nf$%unS\8Z`O/DUD0`HI82Axw39:=~~@dGf)s݈,sP얶CUU5u"`gf+3+HH4iGXWaej2id& Lh34u bOU! '1R`4";bɬ T p3ͮWf]{!k( W&?@P!Y17~dudDjCCĔs7m4Gvwcjgu=֑]XGßڝagtD [Z]S) ؼQR4bAR!f@]a(I-]!dLTU3iIR!duϝ`* $OLՠMJ- v !d"Yu]nh@GrDN)WM]WGjҍ!A. AU!FfvCA, :̄"Ǟ! 9z$# ḿ>yqnrD kM Ss sN3EifjB&t} =:Gh%sELH@ pT%b]zG$,Ng3gkۛluf͂]8*MlA6g}ѳ \4bئ4vy^7HjJLXź3 D}W7ZU+d-E0%SỒ3:'ͳ"pfaub܅3BCŔZS!h2-wpttc^o(`UuT$p?<}ضLDT~|Qуk^DfZO_4p8?'˟g[;͢]ڶVã@b\"X#VMIdT+Y&]4'kDW?xx1ʔd:dr8LkuӬo\]O+67v=]\N7U5ҳ/r1_>x(iRE1-f~==}E;],uy}xqq]!6տ}/ƃϟ>y}x|xqu~ˣ/?x޽*b:AYOSItggᅯ8GH[S_lhVKE֐9HD!v̐!B̎˻- ,ڝ8phE|~~d_Ҳ^ݬcP~b[%{nF{y \Zn'rgbIp[&ꅵWtw2okF%Ts5Qwgs}ª& a[[T#W&9h!gEJ)sG ]1[Ӻ`HW/E Teݴ-3;@MCǟ"1I@nO׿_~KJˢD %"0}}UA7t-!O`FΔg 7#HB@vyGL2JM#mt`Fռc'&is6u!2sQ030c@UA@ДK _|XjhׯVa^@2sg;=;G3GH\eU3c&iGf:5ʗPpTVW6 צhJD$$`uld&34D PB}"@9ZQ"u5,6`š 6b"Do4 B~XfLI@fAWءI9)8w4\(K2@53L3ĒjP&Lvwx7/,ŜCYa ~7usA5=NÇALS:;9iգcJmJb]U5X_0p8bċh4_=HC_u= bGka4_OOV5& jvP!lnmH({{&nө#mmmܟMaQI뗯_}_hڈ(|e۶k[{8ƶgO/kAM"5 x6RlRjlqW/_wyqRlBչ#X|cm;ŋ߾λo_;x?nlmo-*l_^\Kly_/*dTHͬJޓ.^_ ΅lRTHE%x<jI*X~ݢmT_Ggj G?<>=]F 0SBrâ)$sWŲUqz6fXuY OΉibl=cΓJBڤ 0qYٍgUP &Fi}hS&n !'v#ƴB蹫Iv^Eigw4i.Ȁ:;W9w.Q$O$0@v+vNaMtuTMnqS+LrH本y> р`;ү*dF[3 ɍ~5v W4FNgnMa۪wW\h0\w0ԭ/*:?/K/D2\c0rq:gΣO`?~o#eF39/3=Ⱥr`̩jSJ"acv؈Hgn'P2 bz+ :Z]ژhlfbjЗ>F1(jߟaeWd& {2^%skBr]JE5!8(90yHniWm6g̢`?(VpwkBvWBTQ\o[Z;*U!VR$!-AW%ݨjAļv0 @4EpLbF~+XM#1eb*$tTn'bvxuncEQ`wggtL Ɏ&6t3mDfUP5 pST@`$HP0 Sl%?M18$ӂIP3aQ#= hْc`$2jT,@TTr̢&0d @$*@BC+,(bj?`hf) "/CYtP >/~$e9!w}~ᇳy$5?|?Oїw7;Bi3=PT-N.p20mf1yO4A +??Z&!kfyp˫|wzz|pwqqֶ{{u8WQ?GG*/s667WP3v0 ͟ yobG{/^_^]čpj@ũ]O/=~4u@[[LJڴu=^=?gt@_~Gb8Եq1(CqR 7o^<~|t+psbљDƸU6˨mx|vuuqLNLs,lTWO7Ѩ/k X6I2 htr~2 6 SunY׋ΏeBL $pU2EwC" If7VEU OjXU6ŷov6F͑@Ǣ6?I!i&  1c!"ߩ"]?[CY<);Ý\s߄᭎b"B2-IwFfƝT~7C_^9e$d֩-U֎%CUusQҏ?S~U@"OpWD1 !w mM-3ݷnùn-d8UYE3x DRMe4\45rN/_ M )q0U b"$I؈tj؟.g5Miʾ=GпLڳ׉)%nܙtkiPSrc-R\ډI99L&5UYn @)Y;?r9}{~t9=Og>Z yԴqrv:LRg|(-M-)3(r{/%ډMsWǧM2{? tggW;{Da4yq+-i˛7;ܲͭm"Xˤ dM6>6}..EX,)hjk]lϟ~Pehh![{^?gwzv٤8,e/*NNnGx×h輝~oH݃9r(=\=?}ɠVO̢ IDATI~,fW7sEE `Ty6Ƕl[۳lP *."N5moln4 7wT۶iL4Ev "3zǣ:-ƣ|{dmE󈨪 jjQ^ 5*~=,I##꛺*d;.3IH I3.AX5;ӪtVWF9?fvڪw>ahB``)Q76+fOb:~FQ̱ IV Q2ݥ7[yͣ"&yNѰbiscfKZ0@UД-D)£[4C ڬhFsLٙFNu5MuR FfVh] "v(Uq1ڋ5RXv"Wpoicn}ߛ ;6g?i7I!"&όuk9w#S@Uy"CJ>nw(ؙdR<"g7"AaԲ@US5 P()H Q@:3J3D(GK=LrO/^7d02$,Fx|x%ESh DbIƌJn(}iATfIM18L  CeY4HIؓ:w!hL-dٶ}L)@U}3Đ+h@Im+Q҇ ߌ,Eg~>o-^r*! lP'cHK&3tKvh6>fjFfFS5|=i^__ogGO<ӫ _8DD0**pprqV&2I5p^AHuXUȘ"%&G`b.si*s/f.a W2fʩR; J 2QQDB6UHـHid rH8ЈSz=6<=:rz'vvv%;9ncr\DEɀ|ͨW_g.KWe Dt] pl|1f?.땨\]]=8;;Dd=8=;~껺]ĸZv?z6Ox28/W3z3[}l.1B^-nzXU\4,ˋǏ`? c gtk:^ngg?c\]>ۿ?<տ-bX8P A}uN<8u۞^PV}xOwYxu kޑnn &40땎wx.&pP 0p9WeMִiX `mߝ.g7AM+612,u۶UXղY.,z21'u] zM.2m vVZjW;CA|YYnʌ(*@D&B̩B+b2֫tHY.rEjV !Jć0:D-JDQ Rв4YA%VFɼMd˘u=tHF9RD(H+6p,wL xGE vf0Ŵ=İ!J>NgLbhgf63$P{p& ӥh`3܍G°G t%NɭbL 1j%!)1(0H(( `r.@$tiD`Ӷ!mooJZr+^#d>k|<_݄ˋg~X>ӳ BWroO߼z3<{ ޾y7>pvqXWm3Qe-x5&|W=f~Z/w[UF[[z=g־0JǞ C=n]߼_̯yvԆkS:-׫)VʪF9Ha\14;{WeY2yyiG~K7W&.ClT5uSW%ezETB$)l_TX5)#X#S}YۮϿ8ƝGoLWt9F$m~25KPv.R,a͐<|6r]W3#(`Cq0+ `d&-MM{ΙD4,G,-bVzp;b@02V3CFfK}>ԝӉHS DA,"fBAJ^[*@ĐwK 2)LYcLg gDN5OTC13TIPAEբYcڪ%dFъjŧ))ـblq#uO9*M h0i05A& 6eMwn&WVuzu8}԰ #> ,DAME-HPRSy3_2;R\4N4nnfY-iCpTxvS.=14! ,MR4%ShEfjBIIӴdr>u(cKb,R*gv+4[GfeU^\"(w$/1MKןeFGG㓓wL`w7-Wۻu=`s9w v; Ǘ爴suyE(-eULD!XYca8!B EUMrr{g77WW~cۮQ{@;[.gcmEzof^7o^M'ۋ1OUty*!P?t~s;UV.YӪ7]m0/jko<?y_~vWp<*J">7_Wӏ >8f{{a{FkKh`ćO^fN~kwh<-{u ;bn1 GMS` 7P3ԈH!U팜.*Ե badU/zYj4^^;fE ZĶ3(Kg1( yv%EILբ+SDsHI|Ll2>~߅YFD}A4mBU;~Β$""Ǐ~׈H(b IY 4-Yz`*UU&mszlCH-cjJg 6e@+0-J]6Ph]䪮)M1{gRͲʰ=9;)M@_ȭi{L/)¬˯ Qy ?2p13brnJ p =XgOBv-函}[-+3b'&Ͻ `=#g="bJSeP 7 {tOiw#\%*MX' !P[EP((6X#T_xjF :yB3N|SM(5=(kP-}g Wf.GDt*C]מ1qIxSZW!$ҏ(YbrIH zm HF&#!@KtG7Ug|t j.u:PtI4Yʝ68``1@Y~bsfg0y});ti͔Ttj艒38[L,F3uRhh'69z9UƲ hzU/ޟ}@@V1PW.Nϗe^pB@ mhݦfQE%ќb.5j" %2_L$QLRTy( !0""*fb FeDw/KL`j$jQM pbSՈ()*@%^4}15BPE&( $mC#p414YW^>I銭Ʉi~?Wo~җO~MFob=8?^7?~Ycl}cZR;zp/l&m$I {-z&&Fj GO^ϮN޷|oлY5#F&ѣ-/z=(+$Q*7|E 'm˃r4f(+y]/WN>˓-"oWt~="fWЮY5+'?ׯGnߟ=jUwM ^/Ftgyvg_NF[ǯN?$onLC{POnnEUZEFUa[󫋶sa]Dw./a QEd2Y@u(}"|Zb`NAU}c%JYLګJ& SH.$F̜8D*}!h4D3ŃuCϞ?=9~4MU6yitjLytEf`` ٞ;^D.dDVCCMdbc0ERiWIDXZj\Hd4 _%&:ѧX7^ ^tCi&FI!R-ܕeUM: t31e`S}Fi ?[#2L hiy0%m)A:M|f 1f~Y /vs*Zi:`pPAI @Q7M<P"BT#bJHT8$cUmJqޡs!H䉠Ę 睓ӡD` Eoz)x/ ȬdVEJn LW-$v$j74K9"k!QDp4d,1) ET+Eiɶc$ۙ ՈFbEξ|Hj 7t>m9iTB1K\4[DQ&ָi!%!KR|c\ڑSfIrE%"ހTs)5IKtHٶ*S4mUv6Cl|twRPZm()Dm[i&JΆ4tL5n9ؘ%TM;n  $ kmDQi IyrTQL="E1ZzuZP (DI*b`T2QL 0Ej2쫊0; c+ ;0?؍GÃ}E^5~ǯë7_^\YT=9?=nnn۶ 痗bwv\gDeErٯ.(JO E+47qϯ.{dgmx2Z+F[Lu^O.۪VTA*WlOVbySXbSmRWFfw=:8O9l[60(~4 AB} ŠpZ7Hlۖbz?xuzao,V۷ovu;?={(?|UVY巵dp<__,񃃇r1*2_PYJPd7 %vv\/&*2W51PUV*Yƻ{`@RQT:4M,4hC;WWkfB;hZS*! =D^U6cfLƋ<'p1dw|Ӓ=vvv9N4-oCDDj^.*Iho-bL+qE&,3KV!$-`nNLyȔ AjI+i.`+)T:Ӥ;T7dId,$CK4Fq]^~2YDiᐙ!JaGMAvXI0h(JϾPrv `h@ҕ<#:M̱SoADQMIDOx@)Z2=+@kIP:(\_ɯ%?Boo̬b@0%3!wr6'C )*BNK^D(}}0iR}V̎o=_x?HA ̪t2jLV2,z< #uQ]Ͷ#T ȞJfL*"} tphj8]D84J޴!c@((1mØUv1&F!}Iy䤃pSN4!";N]Tz' .40TA7CoM;Ғ_HFdLy0=sރ1( )m4)x :fdQ@0ɡ9rU;u#m fki,1 *` BP0A`&nN Ϣ`5DL`QQ1rƩ+ӄA!:B{& I5 3&b`uuҾWTU)g8tfLRj2{ {A-u=<|O@]rvv*҈f6ڵhoo?EY\MMt[[{Ε:Clkæ=M<8?>lq!Ht IDATիgǷ7W zGq{_^pha^]=]lֽnY?Z(bկ~zְߟ]? jug7gu&?Eoc# GGŀ 3S_9W8Wn_޻,EƓ( Mu:2ժiA7ߚgs3{&$`+ ٽ*v緞sTr.T%߶<i]1PQ]'C3e.j0=]:>b2pI%}"XD5bsĪ9zB ̰kX!횓6)w?l:K-8~ 7La8D66/ꆿfy|9FDЖ;v0Ƴ bkxGݡ{cRr 4cf莵s< fnU )/y wV?B^ßHjzĴa2fQ|iU<۽HHXJy ;oOl36N9HEԒQC&) ݂"q2RМg,Rf1F1Df\x9MrGDƴ$x(JoaG/?MB2@ؚXY+Q1\Й .*s9We/U)7%AGO.4ؗe/xH#YS'lrE1Zg eSGZA+hT)KR2qJD,6Ô,")<9QQamF34P@C4( )U3 uNtz%5]b$`@*pW^t$%$38&`"IS#hIYB#hã+u2r%# *aBirj@! ; CInfs$1 L'sS{tD1(!0 !)t!$r$Ru1wz;[M-J DZ.W[ۻp{O_q="kyCbW{_j+nY L({_ :`ivWU9軲r^chnfWeYmZ-q2!!"(<},Kr0Dݽmۘ\U,=jdvM`)$]mTc4cl `4;/kl]15^.&GQӬ)3g^1)DD"AŎRGQ+\LPDA4 72X0F<-]1fK&lLMD XU3ʒ$R6Sю˩ΘXxb6&S3q*x6"&@Pä/7u=rd`ẗ@yίw|@K0tXҲЭ{]o+`9.Wٚky 1$diLѓݝodo~gUQ<~x}w|^. s}Ex4ؘ Q3LoΜMڲƈ|Y"Y^oOK_|~ݺ^ iGG=yɠ?:=y>zEׯMۋ*60AEfVM|/UԀah/t`_^Ezۄ5t/ן:__V{{;] @ٻIݏt}m~T֣x^.ڠCbmtf/om.u:ODxpvsQ׳ m۶m U5PŨrFrxu=777g77:>]^cێ'rDZ+MdCIW"D0c4OޑGE'xUT)JZqHBpW1UFL(Bӛk30@BǮ1%]Bq`9{ J$4U@aru&x/ %I^M~%aJȋa&6Cnu(+LjFQYY{ x .6QkDxHE @ݙ&&'$'8Sv]sFL1ݍzS"ܨ:#e.fSWH?7Emsw1ίyUI47C}J L?lt6o12i`98)-QB` 7idnI@51U+ (B;1IHMKef0 3sLDs]b㮯raw"0ZSp Q "juogl5_hH TdѢ#JY-AYcb(rԘ,M̱z+ppzn5Z><:W-gهЌbZmp3e5wA6y}rvuɳgWWW7;10s 'A{o h @FkL "_mEgO>:zpr6GgWj૞JBM`4~vv`E߼y7W\.'V[}O?%"o/ΎCħO?59=LT^17{|m޽r8㦾5&x3l܂_7_~神ݼmIX^>[t<ں]cї 9OƣmY &˿]\eM 'E5}ޑ V#iC/WD͗׷˛f>n]pD 0y]7n#[VŢ^l\V9g%Єz7cP3t7Q86 C`6M&`Պ̎ЩĂ Ĥ.;h0! @FCHw4$OKgPosD8Bd.C80Dv\b1=g(wVz洉s<19FBЬaZn'lGgyslR:Lj4zƾ{{'mQ$F1D@^yWt]oYWjQT뗭ɼY3WE_~q|b,*$.Z۶sh8  ?WAok<΁G[5C"PnV"9=0Ԩ#@ "!W 5_6Jl߿} N~x\.>;^/1hl=b.>pq'smdna²w/nֵrɓ`ǐϾWzlu[oOwn.Őr, lX-fU5om-+'ΗfbUT}@.XoW,7i‚ ^g痂\}WmEXwvvnvvn>sh 6"9SQW T Gt|4E\a<hӴi3p隶(FpdUŢĶ狫Ecӊ"ih3# E]]6Υ~50fj)ĬIkDH(`Vwk 4 pP2cBxHG @#FٰS`: )YUR`)* 02&  @TE0!$Ds˒p;bĥ!]d4J8gt:pLQ?)ɸþv;b_8nRݲ!E#@'4PbNNYo35sCJa vxKscF^2{a 9躟O:KlHxpN1(Q5xbe1c_xǮ*x~yUMjG'ruX9{>_^‘ c'oǶEdrP7?}MVbbq6;g` ˗߮e4~?y\-7/ONnrs݅ZVͽJIo.'wmhWW_]pp|ڬ]׉!ݻE֋g?S$D1:U墚SK+EvSRZƻfʫyJHĔ$26r%䒛2-^&HINĄϙ<5BVwαWKܟː %.E$ -X׃% ngzcJۡ窧zrKE%_q#4=NIsP!>WxR;SmM8G~h'w ~LmR!ؤc ^1<og<"T]9xBb$J|3:1t8פ(dBPU$eF;2 k}3JɈE,pIN%]fH?ǏO=)xP;D&I{3@ efy ĠvG.&*y62%ׅ guL#'vN r2#(T!(S͚j̘IAMHL QFKRo"e=[Җ"*[CIw*C% w;_~ɧ?;;y{\Ÿi0(fz~ɳզm$rq\ &pxX .R̕^]I-Tt//2uQj|fyДj v% IDAT4+(pq{덉ڣQ_:%F1I^W5-whjC(}~jڸݴwܩ9wyy9 裇qQ:dsrq*>: ].L,}Ұe(s/PvU +֖'?ߠ,Eb !ԛzXV(tm|I_dzI;wHԻw]]_M],Wն(tuQ(]QGCĶdTe3mAURg!tm m]qΦ*'(J& QBw;VF~ß}_p'EhcrHU]bf7mn;wY4FpAU_-+t4p 8 ΐFȻXӍDj$ (b% ESMpe 9AKG*!sX^=W1R\1W gDY3L_Knb5셉f' -?4AxiZBb9lr =v iˊԼ]Fz W[ hI#H[`V84eLL;hʥC2s\"B1o~09bL*@ʊ$M\n놈KVz_RY:?`VI.w^/"Jꀘc$!CA4wdTK悙)'Υ' ##,] 0@6WGg@fKQ/H)8\4QfʨdI<1k^R x *j*"i;3ѭ~u?=(C/?S/~Nt\\!gsz*]1ti$B&j63 84 ܹugX$θ3iC0 p_DB$AU"Dh@s kg3AsJXt<{o~w\G;mW]4t0N|ݟ6'OLӶIޱᾨ|.^ Ce5ݻ};m&ݘlu搴]Wg/@#`yf|݋`շ9#e2:T7Wm.<1쫽{e5*tvTOFյAlհPQ4ok;.ǣQ]ҝ_o5_]}"hMY kJoNү+`ý1HlC6^hѤK9&UUMRt:`2VM.GQ.L'# a:8b0/'?Fj@ 9'e9" db<^DWc:)1!rA&glNw? E)sLRt 4&LA5FM{#b AB cG$)cPAyjtHV}L( Q)br $JjpqιNgG&y,J֣b@3ha:NeUlmn7zvhH5ۓ)i PHh")1T#+K"6)1Jd>}"DFEQaV3f%0('Lijf}IheYhtD8(sBbjIbw{!pPݽ=~x,r0ܛM7bu?դ_o×_}.f#tĎӽ?^\6{j1 {M5t(QQjZ'q۵eQz]hs1t@ΥsLfbS)ff,^~qW`"nݺ͋.Q b'"ɑXjPxFGǷPMgw(Q3rqz|Z,gopGK[?Sg倾={{Gtӗ;|\]/^z닋UxyYMӋ7vuZ~ ]5`Q7\_d x喇eeT _tQ]Q6g^xfRoZ-l[ BW҉w t)ZTdLBKPx_!+ E]] 1 Gm]Ge]E!1+{h?!A( 0kmBUUBhĔ",AoJ) - Z09F!lr]$5b!J>E嵽}!_RКfhFT+f' <[Oƈjy/oA 5ED`K%rYޗlH w_ô_4\QoK bh'Lm*ž׎Ԍ8# e 4g&aBK*#wKl/c_@<R." 2_hBէB81%0!txSpQBMfG03fQ`IHt'f@QMYdLfm&&(*Ոu E!ǩ̤j Eàt. &"oDQHf%s%1J2L8,狲n@$&pX.08In朗mdP*p`~=o5B'7$BGL $#f5&Su@ cU'ИDdB`Y95E5iT ļ <9_Q $cv ʚjJNt D5ĜXc1cUI`((8j _pvr AOxbMz[`Є*2Z+b(d P"AD0EB&jhdMUSUb*.V , qR- #U ŴuFu@4!)d1  bQHEpd`!QQm(*CPr6 Wp.EQIW?̪}_'Wv|xquɳ/}n)/^]%~2ғ\ok5{EQO;_cbPu!ĶNG0=~g>j)Qj|PocΡy!2]/Mh\B/nݽھzB~g_}ЗŰ,Kf{!~TCG ąc|uY׬c;W@\&$Gnߺň`ZW]m?ykfunk.mMjQ_}Of݅f<f?9 b}vş=ihΣYIlh'? ޹W_=ɝ;bjc99.ºndZ\NÃIlT ^:U wf[bB żbf8䶫ǃ M=e9"'إy<ݛ/u1 _-Wݿ8#xX\{uM[כhmۂ)8"4ҏūWԶSSb-קfh ʲ]Q㍻`S+) "@=ST2eCBgF!Ӻng,x_8:(C5UQ]9%DÜN2fANu∦DY DFj.?מӞ |A?:̣W])" znbdnۗ鎵ݎ)R"J{ozJiL/IOͤڣG T2 ~ ?(J$$03giLM4Iniӑ^AbF""'<+Dq4MSq2f@F4ZbǏ'Q#f$ "FyVSBTQlJ޷9%hZ@``d"*Z20I <Č8Yf 0鴒7bX)0]+sADT%j X;GhB)DEUL3$UQP l kH"TD}v;fQbW>&(nD~;%DFĎˢ BNT)1Dǣzy-u㽃ѴsοY\.9g`v fdL<'jfL-vfM$E1!*8Gn\`#b!񨚑A\!uj@+I4z$/aۨE"b&btPc +bm3gJpr< UZ/כu׵mWkެmt]/Nqⓧ/{xnLpX ?|s`6tUUHh,EsͺLO%lYVX!FͶ"JhTm]o͟璘_7m]&FýۡЅGb˗^`:e¾NmMK$@g<1*J룇w<:HM_wGmLE֪VFGS ; Vu4Ȯt|x0;!zT #&Pܦx34n'jYoݻ߆x|t[z3?'2G' o NYhTh8`؆L}YNGǎ{Q` mˮ88<\םNgG] ׫隮|HYyQE|8pPI2QhG?~sLU5P3$*:$TMm)K4}Z6(@,pP.*p@i;"-/CG wҘ,l=ݐSLMKw"363ԜEgvTi |;vrf9N"!co9\Dv֍=Qf;hɓ˻3ʳ̂B?S5 nl+)LI:$0|N)&,I)FY"NIp9话1@b*g,yp܄H[U+=1*:3ʝ1)ȜcL dbQ "TzG!T%w2(""qd3PGB5F]HG%E4!Wau*5t3%lT0K~n-H)!PЬ7~<2vx݆p9 gh:2%7 iZPK[3)IrbTѴ`23`TICSE`@QAd`٢!4 J%m"s*bRv*㔟JT٥]zCIA1.3@TL!jeYۮ҉`T U뺓峵 vQ"v#":"`;Zi#DfEF$}e@۠♷];$AAM@ww uєhcP8g$N`?Hh`jB@#BZ TAe:/KrEB[p. T+u1;}pXFò4f^ѤD6ݨ@3O?WznCx-f2DEĪ CυG{~6Nf/˲i49ߓZA5+rqn믾-^__#Z_._Viƙ]\.>'jޜܺv 9;Toxf}~qvMQ@F L~V[5+'1\>~^.#AV:~lXm/FixG<n7q4"wHhov٫ovQ _{p|2\f?/ah7߽:jض˫i-$lѦ fb,Wk[ã M78Uqd_W5ME\ʒ{\]9m˲<_,Ș,m..;êxk~:9hTחn۽D4|RU%@O:QOB(FK)'McTEQ_Iٛ ;S% 1Bi4eES)HMY7ةZ#`7~}' !c^e-工iyIe"Őe!zS-} "h֫2^Lo_"jb/Ǘ\Zө|YȆ 4D F(恪Ѩ5cw=`eYH%삀#45#%`ڏTL)o,GQʌ>B5]M@n"Pb'²r2$)E& a Abh#DD ĎRʆt0cDj`"L+xu}TFamsv!XW@EsP@MEDE 0"j2$ك1*#Oʮ@ " ꈫ fDIP&;rDb<3J(4pUw><78=ʻ"9!QKBDMhCCh\l Eu0.t&bK_fv^.ffԂ EPlz ع?5 ,K WNh2j]-U5:o/mx|r|<T]i Xq"d/vٮ:`Jb$/jr6;{QׅmӠ}'ol-ʂ./N_zC7=j8M&ph6o~j'W(lO:/_-.JtޑJ,w?=eٳƃ'as,ziDXzK{ "UY4IyLG0 fCzED2Λ6z05~eЉࠦ1 ]wu5CC&(?geQ ypOxvѻ˫~CwއRg?6f29 ?bmۍGf />[ݞmg7~Hbp]ݺO>ś7/^~'QUvЅ.Э(ON۬^0L ZmB{}}].W@C7l־ݺ^'zu=TѰ7M!m4᱘*bqu%Q휜_ ](baW]Fj0l۠FL܅.HN7rvk]aA$jTqX1*Fs;Lͪ,x<۶(d:z?l1{}vI'#p4@Q%ŖKzG(ujDy+OdxDȨUYj Гl(q#"( 1d2K/4BB` t B0cQdZ;0Jv$63$OD̥,ts"P5`lqMЁr\4Re˨[y)2g *0%(ބe5싆\.[E]=#o1L~>s8Sم$4IRD@,ۡ S eR~]؝ɇ jFCiMshy::?Di29 I&e;6)tc¢p?JdjHh)ȍ] !bUcr foS*f=DŽBOO$w(9:2R7]ƚKefv7M3#Ifz"<ΘldQf")l;P(ԖKs*TBfD [˗O i&?ٯ {ȊӴՋgHv;tfMuGG>ﳖ&I#8nǦprzrXt}GΛu %N9gC %={b~4n&"JI:tv:-&fY0d$qDiǓӳ/DU4 8nFe>m/ۓ/^Pm;23uv;Sx23FQ841sdj hn )R(ef$sQ`vPrcLBUcD2> Ɓ TNfeiC:4qvЏ{Y&@9zR"!dA1"vX0·W{mda?0تOҘ#.~YdxbSyw5z+D3}!@$:ת.w@Cg~;?+67ƽF[0A𪈈VH V4GDa{@ 1Zk#s}\Yae"7˹xblMB>&`,$Dj$1A}A!:`X n/b!ԒA0QKL<Ij2f,] +KKɄyVձp8ޒ@xD,7S oA˥"<ڥV7 j$8#F !'0G3YdRAd~:$B(!s5+Xّ̫n vXH̩N!W& 0$.3QC63z3bJl;25 9J @dnn ܋zq'p`@b>C*HttS0f#EVPЛZ!Bo$!ѵ![8QanX(C[Ygslٛ) QRS76u"`朻d:\0shXbI6bܽvWw~6|ujuĬ9R`6=s$:-j(IRـ ]E˪ ;%G"n1uszy}Ed4L4L:07cai\wTV+.tW'w?oޞ_x1MκG?曯'|dR{GG'M;uэW/_FRzyxzttZTիsBg{|yy=+4(xr a:8=u|rƝi{-X}棏>?:͊_/G~\ixuѤ%Lmg[.WWIF,c47idԴWO~׭_j5L vmێ5f DR{ttj^7, M#r|4nwL"q,GFBt]Aɘ{-ovy:&0-W$n\n`>RY현vW>ٟ~nܘմ\rӌUDT5ijxvu{w^~1c}`,\- 1S%`! ŜqNAi% P8\1ne3  ؁,*=vq/A KI8>P1I%%{ .ߊ^S"`=u: CR 6kUPw`CEO1xf+ :=[!Se `5,^ag}1cJBh 9s)d?""GU˾SdO+˩ ZoTa4y2 A赘Hq}!"zUQ8#a4=0γx<6dټUs$G"G) b:!sBFD,E#Aqjl #F8Eb7 7`3G} |?߄j ՅkDR-,r~K(&{'QuZ\hh)D!#d/^bj5sYslr]#wB?w+npyd)FuDp=i#pv KzÈEB\[=Dr,1pb"%ba9_\ɷϞnrvs&M3(iAs>A0gs7gC#E>w"gDd2cbFah#+?|㢫맯_$:]wλj['4'p3í[7/^*jb j%5"]o /۲KWoQd2fZrnRjƽl7'G.^ɍbhrtx&L'gGgw}q~X^Gm{_Ӊn߽ك\ ]~w]X\vGg7..zIv7nq/tWFŒzݛi$*c?9״z4:<=}Ztw?<<^?^?k~ILFVU9n;:<|z798=j<'}w}?w蘈$5z\-3gĂMRzdbjڷ 2M'&qYf/ۨ ̙EDԝ)M&Ss?MW.B (HFF^q^MFF&"U7I"@Myn_ᄉyTGcwVjd2Q}QolnhDfFBwg}!h{ &$y*БHM5(rl}RDBȃYiM$l[N"„}<:ix i?w {^ g܍B.-Zup kCduz>8Rp$fC}$77"@oN=d)AbǪ+ -.!Ӂ2|;mgͬFj#[ E?,)@(ªr oM4""%\UUsqVIH}a3I\+5zDL"PJr+ I AX~̟}Iݹi(L:Oٶm/$ќ%Y!"=$89pJĵ"-Rrt1O1"d<3=bIa !Dݻ[͗!4u nL Iey1U hH Vhj1 7,+3^UXD{fN$<cM0U '`$H,,,тG;bMf.SUnfhVL\N HS- قG&&Fc0b5< ! 4m85I"Hb\” f@‘ecū 5T{ߟ$6:fpn̛꼳H[?h>|7v_|zq~~qmuf'____\~w^|/_>^^k\9:~yu}駯x}䖋?pզ3 g?8;䇋_?ߌdz\ׯ^@YΎNO<;ILZ R;iY35..vWx4ʪJ̜4,˾wR(hFFؽlw((CdTrDsp5MH4g&a)fiib^ڶZLUssߦdV]Ԕ %In޺'д}pPTf591l~$[à+0w)@V;gT&F- @1G*ˆupp]F(W6Sm݈*So4 `%{ ] L"ĘDmSӄ4v8FV}BH1ʍ @`, $G3[mw "0i)nvz1?(0@8g7|#^w$z73܈=:lp$ Rc+5 -HC`JlTm?y- >S1 "RU8Rvh!+C0bU<#CQ.,"d/⦥eSiRdVa>B泃56>gsn 5")rߏ1h;ģnו`ҲXȨYM{|xhViLF"$l[eo4&N#-rg/?㣃jƓgO..{x2Ag?~n>o~s|^-WnwqqǿO^|u~o޼WGO>oV '"ih'yp0\~rݗ/|{}Ywhg_zY?{_xE4waJ)ﶌ[_nVם2&tn7*7g($Kߴbx4oi6k&'gnۋ iiu}6ne0L~zAI$%75&]d23ϓȼGr4I2+]YvMg7~<.nQZvf>!63/4 t}Nf}H)SǏ|<Œ+}geHl\BVSwgb_-ѭw1"8rQƨQCk5A%]s6|*|&;S8Ά݌j R70|S|@O(Jfb"&IBTZɴ*i? H1[odEfiJիUѐR1 "Tzр#] \!fĀ PE{DtG$'OH `2qQ͋jA3PKnpu4N̎^L/h@u &tFmg3 Ş6yFMC`|x4?~RӠm'3s4aQwNkuW;Ԭ՜ =+F5!1rF.@c:Pu)f@@8dS l PJ:W3 U%!5MKqVٍb#,Kf$#l]ѽ/8j)1n4%bHM#ݼWkB4Mnf/^`NL)%A$^oIR4D쳶ܲp JXM١ai]3h<]NN~\]v+FXRR(v?x~yجbq}}yypW_̸^}6Jv9">~HG;7?jSM<b29$t78^л|ta;ww<|~^.|M/K?=//?ozҵlFz=;9ݭߢ-}vٝ?#;߹1j5$Mm6[:ٮjk۶O]ח<籐uYE-m*`n¬Z^J1Ur6k/#{{K~MqwFGDST˜pPV ;V% kuUs&aŨ5chP˜RL*Ry "Ba)DlfFTwF|}|2 تjs# `(?=IrzVv)qa{b5ɪ1ɇ &.Ţ9( ?ix{x7B=a{BP]&C*>ئ!" 82"cCChƍ(gBVIM-N?/2CJX; yET̫#Zq@FKtBw(T8yΒ" ܐ87^c6լTz\ A+srs3paSb%!8r\݈Hh~DɚSbG,w.yKnmCbaUݮGMۚZEQ"RJ鶋Vihslv}HձaS qzAV+HTظiKuw{w\ku=}~gv6?Z}}/Nj?>{1l6ޮ.?wyK4߿>6SϞ??9;fͦiۜ6}Ks$Tu+H#tzΨmWX/ɋg>.;qy9̎Oή˦⣶u'7k0%fV͋RR:blHh^)z][.lG$N){1 LS\ ĵLWt(n}ѶM&ŵ}u`HMɤIi)M&zQ*ܴ?hG7'ӛG'?l^\n~xLaN͵(fsG3_&-LF`^8E bt`IDhd&tQE"C0\9!% 6Fh2F~+Lbwz8y!9W7LKv(d%G i#h:vp-=05b4̏'Q.C&bp899],6ݶIIԬ"0IbbdBDu9giYgBaF]]=.ݕ^-3b)y}ɜ{q|mfntNNN./_zqzrmrIݦo{5,w __~O/V?ܬW~\,'}|W/_>_,/o|苢A?տZ-.nyn6hvܵ yEӶ7w~קo?Z-h֎Gwngk|_ٛuެmc2O'igW-1ZJ"yX?}tL`b Pl~2ί_eͷ_,j/LYګrӑsmt}!N˳|$:Ln 95EQӦ>y6vč"&y~~=9*չ KR2ϟ=ZyXQ'e5OȍFpAD=v"z@{@ 숌5d L5x1>8ND1͉`DD0X$ a# `LěǸ$4$FÚD"a١Ď,D `ՎmV܁).k)aB>i`rpW/M.wwVlf@UjE$ uSF:h;JKbG~!׆8l 8!hVDoTkxb 7tL0 D)  u6FͨR(Vz7ג]YkzI93S]ԋg7+BvBdBwsI4жBœx4-Z4I:><-1cJipfmץwEZٮLn~_(v]ۛ$ǓgϞf3fsZ]n˾3P>_RU 1iίϏOHo>)fqyyֻuvbǏ?ՋvB]!R6 IDATɽ}}?nvf_߾Zݢ񍣃_0 OߵM3O._}W~_}ߗKܴͫ?/hg7>/.Wm6 -2͎n޹3f/}ͣ׶mc\\wn}~"&$f^_[]y!dS/S.ȓTGɮ/Db^R^aX]s֔ϹGA$vrC_|N=sjn"RytnSj˫++ӲW=^ Z F gS7%a'0*8+Dވ1i"X$0JXP58<ɭMiR $D0T Q +o ZpUALSQE~8VS :u_1X)ɧ?&/ݤ;;o^<%_*{>z믿<<8~WrX\?Ovwv>?}}?||?&o?|oR-oWl2q#&y{eg`>]^#///{0ch o3_^I\88AtήEzN)k!<{gG&^jeEjE$nLLtjlBhIyUл~|>su6L1v]:[n|2鬎$tũF=9@aDQ%q(ҧ㽝=ju,5}n5 nf"$B\!-F@ӰY59h\P ZFH(pk]^m/E `la7M2@!=VlE&9M%u%qMUzb[wfzlYn<%9P{n5`m[GuEL*@Ihd،1'1Цo(sm_іI[dp#a dɹ= Vͫk'/d{񼑩m~{ND9,vS6zyL72-)jl#wBHYTz3(FL@ ZJ4MLOwZbj$j!aR݈Pң'??7NB,@H( 1fD>_mX -2|D Z(7AdLÙۄ{3֪uZ,%ĿjTD-BaJvFdVD;U5& ̘["7 ",ѥjyU prbڶ;"@h9f R0@7rZa4E+@DnFֶ>M&Fse&A08:DT{zG$X HP|XVzttz/G )xZ!dh\]^AɅJj"U+2@jXyQ1٬@- yy@R2f̌$eN 8X ـRsrCl6ԧlY)T->) #"b=q¤KU-պV]sz@g&C$dFbjz,5+0Z6C8!<ߝ޹3bNIvwv9':L>֒RfaΣ 0Pe-ew>N)3o~9Om\{_̽/e/~S|ӳ.a6_=}ŗzlvۇ>jY꼟qyvaּi)A$u\/<==;{}r{<7]?{_R /(T٭>_^}dX-D[fI'uɺx?۟Ηg/.OQGٛoa=gղh]u[]V/ΪΦy:jRPwf;e,c /.]޻8;v) 6:>rpxX,RJ\\8XUa:\}ϾltRj ZQfᝳqȝC45H3DCD،t }TW,\7"x$kVQ)lV>C6W ~3tw>f@{Ԡd((o ȈAb%.2KJ̌0{Тvq kxw'M6JL{c+wbps@J> TA}|5`aG"UVW@$a'Wm@;E6ToFqn7"HkKܔ5*0|~CˆPeDha1⿖ݱc 4&{jk=LTU!Ip xWE3"bSPN)>aDnKI2 Vd5@"?m8Uɵ" URU$ \H$Aa`Dckj407EK63rD"^,`jW%u9#id:# &%3%N{{ՊEV<&$i[@dIjlL'bX7Z D mMdID;o_)ps#2 "!31Klq?~zZ] A=Ru@Nh济EI(HhnH (3 r"bBwPc2D'8$bp2s-M52 @XۛN94րdUC"`pJðN&6d"$ljebUM}N΂LӾfn, r2w-Z̀ B뱠 :aQZ,K5 )owݛ7@ea4LQq6&I$(YZ^_A7۹t=)1w$LԔ>ZAf&G/,tttw;w䯾[U{G~zuir?w{UuZx/p.LZp`N}8X'  r]t~*98^:]ч) =}{o_K E{49rzV|:Y,]9`I q&ݾ{p0K7qX08bqTUyFnXbMsSfHD1.%\/~.S)Zd:(7a$6p9%&Ҫ4jPR.i2,KfUchi3|@Hc1St!XUCLlݣn#7 RNQQM*AUp:madSR( (BDWl(J#ޝ6piS(_x+,FQ 68+xSb;+s]^o  60HKq@[C#ƏԮ-ű@-tܐnāx}"M/A Sf n``$BĦRZwcU/|Pm%pTRUDUh[ރȌ@UQ$1`fjհ$Woݐxp{+gLLd13:+lG:ҼJZruGbcDơH3 !!HI!s2Ͷ !4j5n>F#`ȓn=jō ԈC"BI7ZsJմj!'SQKf=@6O_֌M&AqGp0`Dnu.yըlz]d ;BoP`ۇQ#ܠcZv沁$w(ܔȉH\DБIfLf=K "8J^Fҥz;Rww4Y]/jQ'2Re5Tb@ VIٛ#Q䎶x*Iؙ"XTq,nH $PcB.v$fYjjfPf:"g5<ܳ9vy2̘əZHRu9K Ԫ,I<4X Z XU "L:G]5{Z|:MIz>8)唒Z:z}e|=+o>zxg#wjdgN]-O%gQŒTD?uC^./<|dfWg^g?|b\.{ÃL4:X]aZ8q9􋢄) w.Uk;$u-uo˯WIJzrJW߾ukq}z~Xjhg'%]7\u=T"f&Ȓ@4ro٭+0\,(TՍǡl:aRU݇R`}כQUMZkUD*aΩT?1g/sWwg˺맦 ̥61<]?g0I*)m$s!E@;swl]Ao_ }3>3Ll[o;sί#ބ1_P|c-J*nj!荳psE_@4[+k߈i~q,(t h{`]NF( y~;}:qD6s. Y}!ɀ4@sg V;6"2i lhLDdp4V0 Rj)%!D2c&UfbP3$a1w. "V77MjN\RG "UPhs>\X&$yQ"uz ohSP_Owl 7wkE@ܡ UhqbsvrtBynjH&E=R5F(TDXrf2B$ըm€g jmA.t!nWE" r#' KE=Is0 b'j욐ܝ 7M Rꍵ5xLx"Gs/fhPxg{;)!L͢) PdfƱ)!`&h7 UF~B. cȌ, \EZ9LLSN"nN"$!hd}4^ r$GPmTveE-[&j"U5uNJiZUL٘K9wwL6(I&#@T8-\jՋZ*zq䭣lr~q#I7YgH~Wg/_?3U(៯/OO>|RJ)ױnꊸ{/΅&|vc=?)M;WBÜාlF)O,Of~&Djtb,^-6?wѸ\e,"d2RZ Kjlٜ$Oߞ]|,#!ӱjN7fRdb1Gٮi5RAͳP);zz-"zի׿Oⷳɴ|7Ojb[577pbyxEA̬f)kvfV5')T@d(pkf9um-n/mF:7"Sk->q@ 4CuB1c0+&%ܸNddll\1G?4krn4:$mg8lnԐ)Bc-InpkF[RqRZMЛղeW8;N;@/҆J$Cr-P@ioh +n|3̪.4㳆<[ p "> 9"RHռ2ƢHIdFH9"Y[VjlM:0 >|1 t e$q9wԱ ,w>xr~vn$@禦ӳ33wWlMQ7V35 <"7 ^8+0 GYa4Kr5Ejk)Tʹ BQLa)NV3H"Y2@"ZXML6}^ݍH7 u-S: Hբ8-rHA84Y J\uQKO|C{h5(f6,̔ZGm\AGEMaXH"NݬCds b&;GzܹTF&'m1jo1( 1S43ež=uLL('rp&WF@E(j" 6o4LEB0l\;0rA U!aJD]h,ZtpකzMZWa^Kߓ8)wW%;q޹wzvv}}]ȍ%@;ꪓ̌;U5'I4L͸/$>yO~$tyy%<ؿ5O}$u?ߜϦ;{{{nM&i=,2YX j-"% Ĩ݃(Wa] qtbUpu4uw3XZϊV$'~6׫a,4ӳLdD#V#t9NOG3jIZI^PA#3X>QlSMC.O>8y2WÃ}-uHhrd&t7xb4&`8Sl ;,1D^"~ݑɘͥ߄YKj9P"R,aCA֮AJ 9jt"#1:p (X"fEH ZT]ȀB%Uĉy")qvt^y&ޟT^V NP:"F(JLB>'w!CvTGCs''B(1;vC}$PIbfhn憨 9&47UWm9 UW4 ;X4ҹX 2L'R0)dhyPF7IwɟH7@egwZp3Ts"ZIM YԝQ熈1޹{0%RkCLB<88B5UY?ej),,tqy\l dnODۧ˫ L{{{wqgzU0ۏ?x_<{0z_%#JaY?zzJ귋d9o_=?}Jo?O^={_TwnKDn?\a>g0]}9z4^i8Wk8ܝq]Tt^S?%gZ@އV$Iӽ/_<~G甧׫RQ&D#ue0HIr6W(°Ya ٓ a\TZ\Lk%pOLX...T$FϪ LD.>':tz!3[r6M>H28rWDXX[*/$@&23apܨ/؂AErn]Qm LAPBHLL}kآ0F8!2G\4zYUg􏼺4EM;[tN#-SGwTtwDowCrsq ݶ80&1<5@ r`WlOlAra_[̷p @XkeFUu`[>v@BADV0v_Hf{h JqH,4 c9pDDFn,"TUC @H_lª֑T¨iDJ")a7 D-*̝s"<ǜHr.+01w3vċK1/fլ Y&{Nq:L)j)qO.P#j !WkN)5 5Es$m@4Hcx(@e&XDV͒IE&b(Gw L :¨UO~ e,k7O{oڝ'雫kFTL- ^*fͪ:khXrAq8C(91tYA%cSߡ pLyc@!w03w55 7HZ"HDݫyͲ@^2Rz.Ov55ZjQJ:r-B;f$I~i*"Q^#QRUdbO=]:3IjSU*u"9ukZRER,HitԍCsWWN|Z/ 5RǏ?vWow2I]Zޟ|Ϟ|{Ӌ.|~ً/d5IW:Iw>Ro˫z~;w'>L>|g{>;vyjųj>xzG߻zyWde}ů `%e3, LWP@*OW|v{^>b6.!t~'dTͫoVk;~s|'>=/vw{@Ggt6-ڸށ5Z'.u١N=Ξ682ACrr]M<RГ0Ip0ϾUKX#bDw^#Wa]2w ގ5EFqd6dGXM\ܛ 6 RHح! c,vm[ 'BQ Ǯ # S.0q fL $D0K@Glfb]l؂7:n}0lWs66wO_o6 7؎Âj oH |wa)"o6@3\(>uEQh$ln,72h(1¶vIл\n9L[g.#&;= mڻiLfIMìVREVd 30I6 HBU%FBQ5U7EXLUy"R+nDHfфZ |, ͠(ZUѷ]3mZdRJq󃃃հVh[ aL)Yƙa18z4z9:fW$H#AB`hbb1s"U(G8 abI,TI2@XYCeL]VSckkFUA`fEn|105{Mqk0w_A[[US&7" qwD5ǀ[J]0$$FeSD,#c l#e]T0'Lq`㕮 ٌ ACBH^ebB@IZ;NtלH`ʜ{R0Td}udiD+("a"+ժ @5EB!ʄSSKQ-^ lK~8:WE*68l$3CBwrrmd]F:C)IǜX޽X\/ʉ#w0Xýa=XZe/rPjMӋc~|yDHR]2x:87o?gCON_T똤e,z=a^,R&@{{{;O?Y)||y8<88??G?'$au<ѳoW|jX4Y]_]<[^JqwZ^vvO_-#v%'pT/f=$ON^M>|{oz+U'0Vuwi`z0Z$Z-Wtvqzn̑_8&'ǯ"|\fӾ#DޞTUI]j?#\US!0]ߣ;MrRHfLsbuWV*BDxl9af]/W=R1Ƈ"RհV'Hو(iLZ5[iogLd-4bۆ7b(^HBoyhhZLC_FCt7F!DU"Ū<17#p<#⻘-VBg9:8S,7cp|DM'+[ܬIZNF"ZĮ$j5X"Cﴕ*m^C2hͫQ!cR1L ߼#η2JD`, "k77BP];ي6Ў_@DBGjf` –H~sJ)H-| 3K[qm:!%jܬVWaн$*8ע)KKaf@Em͉yPRT$W3I.lf?ONNjX$4sa65и WúR뽍c0$0aI7q]#&D2"2 7:w3E@_:dr{p^-d$F)%6m^Ho;ĺw YEZ3TmCfoAH,a"fwVvCn#~8!{4$r8)6LZ2[?&hOaN1tK!,hW+Ltqy*^! uY8'Dhm n ّO4#3s$IH&$ɝ8{Uj\s23CT2fP-nD, L툰:Q01&6E" 9Hj:q=cZu]^,D) 녮.VeDPFuC!bj@ ]iJ)O$)7g3R8":V5N's$IfAwn:z? ۷-NY`i!jw o.l:_AU SG]_.0={dOO[d7OY Y.gebbI]~?Qϟst͋o/}O^x~zro={ӷO9d~1 BzE1Wɭ?NOOG>}ɿ{e $M;A껹?>x^o_^Mvǁ0`wGV?Q\ժ~J(}].K"J"zM$)D WU0*"$YAXvwwa}7ND1!t𰳸kڴ3mG,S/"qeD $Q4YB #܎InbYl2/F9-,۳Dᮍ[qy4Қ63!0m8#8+=x-Q`903"hNHJ-, 9@UWsf2 ,)b9hwTON`ܚq,ՀF䄎aDOnlVܑﺢ B2jr5IbYd 9z^c 7Xl1!t5OQ'"'ISr "uHn :81gI) t,sRbH@ *m ^*T5(԰y<h)A'f]1 rl +`AIMk6 BxRP`l LёcjP+2/a:ag{:`(\MG5yFޓ=:NLdŜ#р$c&tcJ HjnЁ)!=:wzrQ=fT0KGUp7UUj ""R VkU3D`tnqEp!O):huu 2w gJe\cSƱ|גY%9. L%]6M9|Ќ| f0CښKteL$D@B]~{a_ i  ~Y{ vhޘhSUSe-]XaLU]"u(DmͰ뺎yk~ҷ<@\E)1ZDO,3 l>ߤ퐴+BUmz@zn~c LR)4LKtѭ_z~z8?X?go7OM;$㣳P:c٦TQHnbhyu"-vNϿuIJ/Bȡ_]^M&OYzzAf(Yn"> D1S깪T88qe Da2ԷM]Ŋrfq_d˻?{"ġd&<!d7 a:#q;5yLDE9ZaqVP$0"yۃ9ƻgN7c83+oh>D%!00 >TB !kƇgtPv2Q_+XvLl2E,1 *$e'"+N!s"oǗ:le@T*VBLwl)`#ؽNCdt% !`y!47 Ieᢈ 8fI C0!|LT&!)`bK#j'c]  9?**HV LgJd&E@8j RQSЇ!8P@B,jX!1KŊZRDb}xYefSF(XO?L5[2񥲙l>BCAT+^kx~j!@ 1$ W/ApQG0(ZȈ8VEd\ B?aC}zw"]t@!Mkh J D$3,f 4)H+ I:֭uik|zpDd$F@UUJ/ZԈ( dD̃ 6M9*3U)G&0ANDud2@'(Y]QTv}NEkPF₈c$8Z*UBaq2iɧULm1/D id2̶۵mI)ΦU31)ffl*rYOL9j+vp|E*>q.2Tggw/ΫQhMWW"~R:>oϿWVH,Dw]\^^>j?'E>}||x'Ã˺nhc$)k3dzqLB3kꊡ IDATj//o{'''PM NO32;xDW˻ggUrbzR^>/V0٬Amoÿ!UMnIrPPi6ӧիbV?:8O0oWDvN}Fc4ӪB$Uaf3̖eI D.RY=9(P{Y:H62Qm31QpB8>>>x nq&_dcV>u"g.V#GQHȺVr RTQwqw0WV!uwA2ACĀC,oEUpx2m$̔W:a{H>zf{SQCp<,(o:j%&{^ef&֐z'ÎG@ xG]~vx;fY+ M_!s(9ggMq ^H >B9{(/ǟsǡzԆ?n&"<٬'wli!"l@,,% 0/"h"m!0Vy8/˿wDR >=8Y. ̤ 4qm1~u DMHS&ɻaG P')T@ ڦVW@z uf"2$\ *#rd0l'g$AiZ{vwo!L4w 05 aHOAAdzDOfAF {X#Qwç`64o<) WAD(`0k"s0DsG"](MSP UYo1@1ҬԠwG;ٶ܇HВH 5JCVV` dd*Sv52EՠdQѼ: 1)}'ODKو hVFd^zs1)〈{b"a@m5+3Ǻib MIE(L#ku1Hsi$HcQ6d.Q**EԴibW{Ez1* 9ȋ|\Nz>B{'|'"Dbd$B ^2m/,h8xwWW/C{}y]GRJ9>s{yoy{ٮ}mf~;)w=xWs*ms_?~ۗeiSr9ۿKWW77?@8g<-NQW?Ջ: ?2ウ^]_mB;gGⓏfYQ}@q2_Ed"l'ͪlo^g/JZml5vrLjgG{fB(wm֫庩'EzRX6]w|rY)nwNݜ9JiHjإml8x86mS@u:ROGúMUM&mz<4u)YwwW3P)-0L)oB`i4 !ƻdL i`F0!W`4LĔPf0  lrQ"ffEρZ1S &Ua,K$0iv,1ӎQcIз e$䷰v߁, Tfn46xS6:3v(SaL$ACp'u=Nzĸ^$I5w/wX_)`D;T0G_WJcà{Xy# [_P7! @y(0uX7H:xD<rĤɎ>~OHE@%PĤ"buDDr.1Fדq Eb`D곇_~$R !KkD[ӛDH|$00>0GK23f\x5dG0 "a (uJyD52)"Yƙl`v1#Dv_F1:xgDb\<ג# y O5P3Ȫ  )ذ Ixv!>$f4dzLKt( o7\ Y=>; +b6%d !#y13u= `T)͸j06@!^h&Tb"P&h^Gnެ߭6}/.@ڏ|H:EoA'H AI͂6 cIie "BdPǶR8;}}k(@@U@!jNO< LAg6*PR$DL+B JIMåiUtn֝#"uE1.iLdEr.`iL>B[oT, UG ۮgjSCJNjH*KEl\IP`ڛ/ڪO?d\W1ںn:8D4ɴ߮U<29?Ml1~ϻn jw⳧o~֡iΏ{ח?xp*kw|M(Ⓩ?YŽO>^oݝ.fi*xsjq2}}{ӟNjͷtdzzrWOwr|ٛ,U'\_? lUߥϷ˫y#}=]gU䭱15 B݅~k'ĺiGU>]^_iΩͦ77bqu}Yo.Y]ն*e6i6FDJ){ bf۬gө4u XX:t=b R  lv  1 5R!֛R A1+FqfhdJ0R_6xp@VvjKf7|bgD@6Ft>a'f#pn2 1`qlDhm9n&B;822.8j]戽GsOί{p (O6JY3OJ[w𽧀n=e16?&DcNm >OO0g 6<8}g2/ZX#tԔT5F+Fm<bpt AED3 퀵 L!K.1XLSQb?"VW\J1jR>-w//DUM @7cҷ"GH=G~teб[p !5-'D$ V6y*T&EQHU mẂ;18+Ksl8 H9#lL{`N6 xW i,}몤1}\LK D8^-ysߘo, GbUW2 sM_@UL#,6>xО OO;~;/NޝDMb^dFyE稍 B)V <6fb, CڒԘ+)9aBQ)vٟ\^#I(K$z Mg篈DٻZor&v6|Dbo!*Uں=9<&l*W/__"GрI("S5;L} ܕRLy;Xm7˒[/_yZn6λJ._b@ڪ^\ԕoo??دb>゙Lw~Y3$TI!t:벼G ^x-Uzp]Ioo\lݔϟ(m/sdv\h*UTRZAZ.sVCNVyWȔ"iUX﷋Ӵ̗l׷9wj%%E 8Z)Lrۗ#"4"-R661br_O}cTS7ue}J~b 1ȠC[B*RKNm6slulڀnbJbna9q/D,dBQqc0/{@Ky8P3BDofðBFv8|CU w4U{"q)3w[>A0ہ0#X HAGD?27L61].[B@w8,\+C"ڽÂӡ e " ؐM?|o3o%OM |0}@>u+[]#jLM<z=G<Ǹ:]L+kSN@Ty?@EUMьeU1󰶮 1D0S*@9kќVʌT$Aд=6Uo6) >؝!̫@10 ; `ћ/a2^20qmuAS."BDՒ#Y w-*ߩ 7Pn*KǬ0" fLȁct F߰YPA:sðr\vd䈄i0кHBh: &LA)R6_Vz=nܬؿSfGl“ZKe\616!69Ӗ@DU) 1dmg-Y4BҠ4Lɕ7D!uG=KdPY2-j$%* ЊiL9ݪLAԲzǹBYAZ:'635qLRJ$pPmUUYĤbpN%u9r`J%u\TJEᤝLn۴UCΦ77WLضQ!N&SߡNB]xtr\R0|eLpQl:|`+r\Ϩb1ֱ\ כ ?oKيtv݇*ܯ&^ְw|wxq"L:JSyp|B,ٚ&/WOܬtE2jyRRzW_6]^rz=iꦪ淗Wϟ<9L?P=ã;`ѯg&%" zzvW=}E;^<Q"-`O)'L, I54Gn}112nUTԓý{YϞ"[U5UD{Rr>YzQM= Es+0m*Pӓ5!n1r1^&6%"Cc6]N!XM#%g&c]W v}y Hwa*zݶb&=V.[vzEQ1 1Qh!0`!yY, rCVBȃ~3"B3BtCl",sѺ "2C`2qN0f ޽yβ`i.渥Gp"L/8 /Pq+&| ]oDE0:ݡ0 p{D]g1V3}̃>:3@ؿA?1&v;vqV ;Xfm\ CapFؐ;t1H\^sEG.1ɐ?*8 xL0YA307wP.%@ L1 ,c)A RJHg Bd>5T19V/nMdGV 0@- q TtG5S0 cH$ LvvwE@& bF0?6v IA#[UʠfWϾѷ_6uiFȄ{(7sG zdQSQQ$0@M Y1? y>pًS*D.\3!Rh_b͸ VzJ[d,SpE͊"x-&͂A3iyV<ͪ)74vVm]9;>;?p{j:0ኋi`D(`HDl 0Q)F]bA@ C`0DM)7N)Nn.qќ& D@Lsv?=ADfB>#yi2Q b. #38́ЊzU.cDBݖ E hBjݽwgz}Ĉ!P-K D%VULUb4el"2/~ͤ6_}@Zob3m_U3#R0oR8<0b._O[36h'ӣW/MwZv)աWvnv}s<8;|?N*͔y3ӣdvtpay})unO!yG0N/h;n7wib>O]f"}1:eS3 S)IH &0 Lc| FQpayfsbc2OII#d+$:5(_ œZLxw&FPH#760 8̙G;`Pdf(O<(Ы|29N""_}dll00b`@N ^764d}1s{3UtG~Gq8 rp_ b  猁>/M*2bk"CSP PCئLO#_kX5*ђb I@I ݏ/mV́K " =&RFjT @LAaL~Ap\ ] Q}`@m7`n 3hҒ=8C\p 6MMI̴1Z+U ?xg2nSnb Ą̆h(`&JZ/uflDIT* Ys[O!Dq`:=/ȑ=;a.Ow}2 C+mg#i@;B (bTU1_@"# , z2=ܬ @r>7uH|ԭmnR}8V ɤ 8X lwb.c0"$Xl@k2XGO0 JNXŋ?Ὴa~~]$ s(U* j<)c$0&rU%0i(Pͬh>U )PE92=bFdl-Ǐ>^mf{gG'~×^lr6uΏ㣓dzz;m'o~T_\}y+k*VlR!HP33РAc5G6ͻnCwHT} k.!#wV=4P0  sT~0p5Uq0@Z#8$H<22CCs Dq;ĩ3L?b #$9;m| 3W3'36.8vap?'p)}wBCo U! O+y"eT`"~*1oC= LC@)C:hb3P˰꫹ JD jx ~#Fęd'4gD`@3qv #8D+5 gSA*r 0b@օxPB˿kblbo789! qlw(* ^K )bb%BSATJV301CSdΈTUjИoU8'&-z 9ݛhs"` X ^b41B325@)T Rce*A!5T͒"Z,+Аu# C!H"$ܴJT֓u)bNv}I[ X׷\ƀn8`@h((V",UMDUE`dA>G?w=\![/lH$b%u5 )hPQʔsQ+L" B%R}T5i$TrQe C[†FR}Ve[R$61m:E$6ErqQaltmKѶ۴U}H`P@2hR nO |ɝ˫뫟|zs_+ RښȫYݛ_~yYJ" bx^u4pu=|GOm^n֟}Gf6ߋ!֡O<͓gO[)X㪚.^z_T鶛-GxĮW> ¤?۶_._W]ϊ ?z:?8:: O>~_uSv}qzt׿κzmK)7?._/KR8_~Nڦ9si|r}-ͫʂ\//Y^ܗU?Oڣׯ_ͦ$_?^6Lp]m}>!usTQ2ΓGy0Ŕ1T3"]?s'eA 6]9F(YUK]ץsPy1>+*RV"#|(CDL{zdLM̘|o"2xz(*KERń fV4CD2.R{dPT0P.R崐𘌪08kaCh &Cd ́ i,c&047_TTPlכ͗3nFEuf'RT(Ib}u @ld>SQ>V5?*wbz (x#Wޞӿݻ΀h6q@$L T$ڨͰ wؤl:d2vt!!e(Z|P0h@b( (^[%D*B $W ؈$ZL JLG(XĠ^8[O~?(UQda;i"\ ML[Ugwx(eڼ{U 79{ot˧!t~t]*o&iI;=;{瓛ŋn'MysdئlzYoKGIS'mB9j?nDMnygujәRN.ͬz]u r۶L4&T6g0>H@{ sMYM:QB-̠m}Yuh( uՈƚ}@u ӏ>x+bH<9ѓ.^-ܥXYvkx7N RjHN8*@mxlGMD$vnPedlA6TD@ G7(*(MfA[1+]+ Hw s+b o _ WC e㠄@e ("w2!!qH0 .mu1DW=|J{C|[bUňR102JnD:V))(!$)"*~ňAɥ"b "PZUEEBmؙw_rD朋K۽P3Ea["&B!1X^i"b4OT bS !:00;`>8:]ހ)pu j所 R ٴgή/_~ӏ?RC!N{㇏QuuuN#CWIU%т o-a!9q}:VW}1]yF*UG?rYެѨf˫l&bja\fS$ldFM'&Ӄ݃7%w*۳CF@\vv>_}2b~R|\uϞvs{}u'şKX^lQsgCI;m%C\x |/c| *ۂ>f"b4m7֢-ZR jDR(gID\D#TA& #fqU@JR\׸QP"UJ Y|:?5M.xb\'A-W0#mPACIU9{":.Gnonv`7D1KT`a1\6pyY LDaC.JmSJE lCx0דjϽD0E`]z]H 9@B4P)Y]<@APs;r*3,x{ \[B)3M(:"#3Q"r-*q P"!rBci>@@7tw./zdu] 4MNtNfxHB(%@DF6&!A`&9!0#cakFDR:S j]WB aW*t2P4.KIe-EJ030&(̂ Jg1@_WЛ}ŁcRS]OOumەjLFWo3[i`2-#U.se6ݶU5;hrs}O?o~xpr"b7צ6GR˫ӳGf"EQJ]E~,o^-Y#4)QzrRyg(}+@lXo)MrFU޾}LeZ4=|{)]mɪHQW Hl餪bo򷿞Nу篿y& ?.//Mnׯ߼N'Os \ϻѮa BWJVP#)`=zhyx]9u|~gj몪!zݴmR2\JvFdm5H7¦-5M;bz\ߙ"s)mHՐ#YW$H՚_8IE0SH!Czxhqv\"S@Q5A  tݤq23늆Uݏ7L0O s!jYr[g$y)#3$؂!lK"mA?CD10dd'Sp nZGo}{q^a cP$$/x!i|m 2QcuHhDLA|HI+C$H5k}- z=J{/{upc;hʜlp,г=6{k_DDD%Ný-3@HR-Y)>`H7x['V+5TDK2Üŏ"=x 0 7 yck@“E)裳b2Xh@@Ur׵kUM QUi1v9d3R)us 9<^CwSA AEJaDT%`hh("@ ;w;\rJL}ї>ԇa&H.,QB"k"6Cq"M}q6C` >X]#Lϗq_pᔁj$L<At)("(z4e x#l>{|y᪽n+`Y *N'}y$!9K)-_er)Bcl i!Ƅa" (#X9jfFE6"E0!/;sXT#5U#`6pTT; ˀ)HNUb& 61pӭ:bO,Cl21!3E6z)UUoyHH,TU _\@V%DVjz XAϿo1<8{\nnfCu mt'&ȚMsm*Bǵmlf(7Mt٧?=;{,b1拽ݝr=_.^yurx8MDӟOvSg//n6/1wM3Njߵ|Ӭ޾AQ;1߽ i1O>ӏrqyiE%-@ɸ\.M*pwgTJ`lV󽽽r9kOըw_6a]elPb?X8$ø{u{7N18_,MuZ&%w]K1PJV|l6nQU\rN 1tmHO>_#j2?:9|U 7_:!I@=PՠrѲ;q$Q5 Of876Ʃ1 D}M}8Г;fW`x<9?m/3dhφ7{T"Gړu!p_4*QSɳ+@uk6gGe=,?s>:۴}D]gj`C7jVD Jb`SSGS%3"PM!&F`Dzp0;SdΒHJl " H_9h4HuKz*7"6(M麔RvQݦIޫkw1J15RrHQ9fEDfl!$qdR)h"@ČP9iuL1F{J kU H1djNLk[ORmjL"q0o+ޕ/$ܬ00bJ*e6咁ͤA@b Rig#V!TLXLj(1 yWX(  aq TT D?9{i}*ki/ogqHPsH~0.Rn*[[lcבs׌`k$ I` ȈTTM6ͪHי``)֕nvʝtHL@@9{&LKQL1AUEDb,ƠQ[ 2"h.b@r!'8P8Sa4LƁ"\TѣgM(qDKI LM^(1wW?gF o.ί.7MK!d}G!JwN.Ι IDATέR䘂Xx/_~Q31hE==~tsy}pp߮u-Ӈvvf*{yum~Q=MfU7xgTUv^?_6Cr{4?|tI=|rogw~38?=}^_7G_}[ɋ>94f:GNA7ߙzqgtGu+ YtewK8tg1SX5Mx"2N3W-V1u]S#QQbE`3i6-Sk36 3Ng)F5Gj"1Z!L|^i۴dEBWa@FLmgGhhfS`BO7`N2R˘؁o@~ppG؏ ^GC 1F0S 1ee4hIBfdDBZC ;7nɗ-vێe2_,U9nA|O?#]cR{[*'-}_0/v~<m:3t$}MizQ'!J<3H"BUOjtjT DRBඳ q.7U1j)hZZJ|_YDX%.PxCۭ&T/a; S`H֛5 NgJ)`V1ƪOKQ 1qJ h`mDKYn[UUca}B z|HØlf KFU (2xã0A3(RQL&1e66]۬֫?S)%0V2bUMG!& .S64UݛWAK>&"!Nwh/%őH.!"$D8&%:01Gҧ80zalhLA!scsUq2s)TdLigbRr[Q~\)MrWr8ڍ q'8@4#I}QP4 ѴCf1-ބ7vSutxxyyC/<==;_,w)'ON vus7MUb ߬tt{{1WwwLJf#DM&j~w;}bqYo&ُ?gGB@E̹_W h7%LfM&ybRx_S?}ӝCS>9}>jgUu\.foM&%\WDǏ^z٬J^/^~r,}wwK~v}qAqtey'EO~ȌhM{}sRjwwͺMuݶ]8pEE"^`4k8lQ]i1ӶrΧ'4.Dh;C53&%ZJiuۖYv׋Rpd@!)+pZ)xX{3@~拽#`RзAmй8jE=@C\~'qJDM NUdJ#1:Ap>d{[5?)C$@@s{w>nڂftm\&[y"8{M)jp(8W'395"!ʌWA}e2&j4p8.dl+Pt_`L\rÞMI]XPm(Y6(y7"(P!!W}d (`*, 12rv}h DX$`^f"h"*]P}#+;}3[]*!{Mm-tw>Sӟ|Օj.r@MQt*eݦSSSދEeaYj<(0s A-Y1O83K))d`' ꚦt`wogwլ]u z~y{}`P <I Zb÷y4lNzp ~N4Uҏ!_k'h&_+Us~|d\+x Ww]BB3ȹ31U~G^8is)hV4KR]I]׷w)Y6M]֫Qb 1^]]_\\,W٬l]w|x\,uѴzbt-fãwWD8fՊTLR☪H o޽oixҶy<81U)r_O&W07u6)Fo曦݌ͯ/]noiIܼ~ݦ)>_\M/wvgLJ?yspp8a0,ѳ˫ÇN}px r HuH1fs^TonnhqlrbuMBbi6sw(h xTk7V*n=W˛۪bfc5Dawwg6^]^AΛ\:v-8%TU0NƓ]ۮs+*O?/.6MbpKd C, PD >O gW9jUǡ!FGGuH`:C`0+ʩp:>ԓ}`)r = Ȭ;/n8W(ZZPT[=~16XpP',ЃQ23C2%ADTqX|Sj פ'ġ0H?5D50Hk~S`J)z*2&3سU5絧%0+Lȝ:̟! ͜`h< wSf-pZH1rέ*Sb,E$-"%kurb5!o Bj 2 &DƦ*h@@B4 Óc;8?0 ;k <{|X E$ij#c(0Ҵo`.F4cE)ŲJ ׁK)Z;8l10kI&wxwgX1-M)$lm"A>o[qKpZX `k- 5Ӡh61ߜhv})Fi{|`>쟽weT"l2ڵ a.EDa3]7:b;1Gf5]-!|4ktCMр<Ť*hlbVdf;;;ѭG7ٖrrzzy:$02 ;'ZF,u$߸b_ fÃԉa i&ZT=!b20>Ϲ28i9_l(>m>Z {9~(A Ci�'jq4pϲ  ŭg `){n6`_=s isfC@""?ywb^yƆ[(}KH!jz.al04~zgz[/HkȌ.iQޝ m8D{7t9?C}I0"K[ԝyjHbŅDx'?^"LH*Rs3&h1pd1rEA,d)UȜ:aV,UdBL)r@OD0\ bd@ԣfW/e9NR0z $mۻr}ɣwg DD6/~[@54CQ2bL./{"6HX.D>, p\S,ҍVL0pkn"R(oJQѶmE՘)Ky4c";\fjLtRJ~+H(*Yn["v \QEs}ATrq3@3"yd~=\35LoX@0+'h֫rn۲YX[]VBvq Eul9K®̉FDw狋wuj ,2m$#ITBNKKYTM4XyaX11X @2b!D$-] @HD]B1@!,C!0ѦiԧD@ @EN몪qUOs`42E5Ѹ^.vf&bQRLJ59j[g+=crwض)j٬W()~ŋU5N)~g?G/y|cl6www8xtx_0oW5tsw;Eh۶m[攅_O&uS˿ߛEy4ce)€HQ@mD̀)wڋw_3*O>~ެ7D,-O>x(fGO<_.׋ۯ^~}qv٬}{>?}Yⰸn/}eˆzuRvS`BVVͻ~.ޝh"a8}OOTOg@E]*T"VYCdA͞?{>ǔV @8'|^VKgBOLaԫ@ҋ?yC@EL*@}ޅ7f_㓌u8-df `O~!o;O`{ g޿NnbBìx؆~PaxFh ՆW e|=c!Ml^Vuxk5q=rg|) RTexP̳}qp!W)1Qp%M]@ "Z& +W8\!hČDJ8FPbΗWYooUMMUU($554md{~KKXk!&PTR)]1g/"J&6%&5&2SHMӊ(SIS"E-Ĕ8*5mL*_8"$ ϗ#-RY~f*:p1#,~ѽ叿~ҞˈI%5"v_E 0`EA H1 h\"XԠ(')d#)8IڮѢL] ЋT4함*D(P1102cD l UibA2)h3PhWfE힌 ȄIn,43-gH5Ua$% 7$g^ j@Uہ\"vY&b8$˹ctf&EXm5"cHk=b"*F/Uq:tm8kd#Fjbf7UU_^^ܞ|G?xf'=ξ~1um z4^GӝЮjyX5{7~TiԴr98~x}}!N'~U|3})\ޔ.wWWursxiv}6k1QG?_}ZNNړG_|7v*?]OOOSJ/U{_^1"bq%wMzSד\$ GJt,>TawكmӮ̠ǣaqtX,$VN6 #R-f7\oص%]UUmb u=*\d/1"_ Šp}Q7% bU=ѓ.@N*dDlT]8!WT5SWvY0 #q j >LIg HQ,H|AQ=R.?F@c}=8~=_c0 V׻wt ?>פ{ W?^8n8D'Azg~Mhp+gS`]fJnْw'enb}Q*Xߤ /'63 @ u|JV&RrHpr|YAF&Tf&fbQkڎ0E1L NC^ B,/@!TU GT %$UL2A!/P 111& JSBD"C4Bb Ff53}rHfE 8dl3-~w2OOQirA&u=kؽT^ZFw2i15ZcE'J!vMӬ6q)YE E?,RiX#y;D:QAm|E$D ̞1eDFmCxXc"dSQ,5vD}#SHUPTJa$Q$0(bHǩUj2,'UoIrk&3z+3z htH ό$6a]]{z Oy ×۔)&C8],/6d3KzV0"Vј$gb&JjH"x#wޝu߮7`}= "B%j@jWz,XR@3e"#(.3T |z&'tA'ME]YT"0305)kܷ!𨊨i!č",D]UUueoow=22,f]aݭzdb\.]fo/g/_rY"X~suޣ'x4䬛M4*\]t}ۧsU"=(wf^ģɎaNwN~f9͐ C Fj!Wk32C hvDFbw';}'Y_NGg/^jyl6|vwvofW/^thlg|ӷ $r39Gx8\?82Wt~u}닜:g4~꣏>{sq95)ak~~s$wRouG5ԔS}B0<;=6L7:"fӅ~bR49f%T3FdC$1ki (eQ LgBeYU*KALdeeC1%,;<<I޿YTn+Iig:'7o_kZFSU5UŽdڴuߥ@@կ?|/v^ň\g>ν{'G?|Ǿ[O훶oO/Vu٬>!$;W73p؍Lج7jG?o% xCU]/.q:;u}^7W!RN2;X,ՀC) rk~o<4duTs@MWU$ǢP1bԵt]R.6QMcl7$9OƓ3ض=SQY;LJŋ8Pʙ # 516dTpÄ1DpKHYې'?h%G*\1w\f6r$"" VIN [@l@ ̌4XUA4RC ,2z56dxUòax 5"SQvq03#%"1M+Ƌx|V~'BRUŘ|xVLqfNܖP!._LlEǼX)*e/S:u($Z pKmߗ \ шaF2K6T!ҵ=",!!x B̦!c!ah۷9 UUmV ĀLu3VшХm"1buU]0T?28mDMJ*wENj<23ԹiiTdXTP$#RJ$̡b% vg!^ pߵ-V3A] 4UI\D`mN9:^M$'\5W?}ū)r )f{}xr::>V LpۮOsfMצ$ϝnŕ1ب-V}צ˵Uuhmvg)%bdU1􈘳ﱑ q%Ku7~wDBo!(`#E0 1XWy/{"l v10g,w j@9pyx.?Olu@xR P9ZTл~ €K~r P o[9| p4EݾP,#-4 8H@N m<\ xLev5E(r~5ddAWk֏b$7nC=>s8trҼ ٍtˣ! rReFVU``\[W @aq=*EJE4kR/HHUU%"BQU5Y0F')^(0{ۿkFlB1APt.fbHؘ@Q*QrNzJU!FcXrQEʉVN+PC"-nn<"%3ƚG#P21,G 2Q"=/tvxlH E)@Y.Wq]ADXCR ] Ȉ\fۄܹCtwuPU`(YD !Kfp0N4wj fI% TnG0g2d#QQV3FڔhYh2@&fUU4CXgmsUW&mNJfgIYPJ$2`%%4b\7Ռޙq?&&MU%j*! bʑɔʧv!TRd*`∀dfd@ &H9S"uMP~ƣ㨩VŦ]@m1S{b:h'7AH&+5`0MΣIm$@ó/_=z4l\Ha>9xvpo?oMg)j~Uwf|4՝㝽ã{4w͓iZ}jq9;<MM1uC7o!~џ;[lVUMWo/SR;9ݿN娪H GǏ?tbMOv5nW*jBd_z ME(I7=wv̨[\j10X}P5>z WM=9lU6H$ (͈̑ 9WMӋ%gg/cJ-8W‚0 e5E8-1@}RKWh1:LTs}ptR"52;r"b5q;8oh C*B#3uȁݿ.= _i'ȗcJu0@q:@,/ 3P<dDpS l@CAzXDh@܁L-IeyAzM zt& UCƒo!0Pvu pa8~Z _ |Vcf3sg:H`P a"֨:Ԁ$'JR< F`m'j(ufB#7@U1"")ePUIA#Rǀ.##"&Q&DȮ#$&r,mT8,(:][e]tXh^B]\> v>A6T!f%}m[deMLE 6y H 7uˋ7vf R22aVq kaTJJdٴCIt2/@,>QL󯀶_1=>hr$BFL<|J'2)h+Ij 4\8QSxN1/e"" ! @2Hc^W&֓ApUE5EV $^,%l(  Rm$uz!`ā[Ѡ wDe|z~}6A .)yga}( *DoKE{0JIdjEnH"qH}Љ "DJ"$=ZHbO&$VbD9Y$[N)9w{pٸn1i&Լ^-6>a\ T *M f:9Iv40__]~ч9dYCÏ>ğ}w?|߶&wу?MƗx2!0*)/r[/@{ݺD^,W}ɛW/̬8Zt2[w">'DM1NN޿wr")fIgwrrpӟ>~o_>g/^<>>~۷o/>1|W|cb%UCX?~~~_|o9ͯU$U;'guSxnٌ<~6|½{77}`Ou#svxNu]&fޔ:RW Lq̒ڮk*g!x|yt~=M}uْhH*zzz"S`U*hDD"56Yœ8)VmGQjKYЀ,V ~5ĠRAT AlF@l`Bjh`(+=jjLe!D **:BP lͅsƏ0sW/ҟڀl]N 2r .|jx|s7p]F@rnqFRC& Ayt?;%a pXD<ԍlm̻T^)w~ sVj^13e!)YS3fdBQ9ǪS>fT0sd3s F޴@DuE5-u}f@j+|bL9uɲ*"@rDF;g?_/sHPRRD́ QRM)5&H5Wqw:Ryp0F# [\s{A,F!KꨊX1m6G"f]Aã,0!X/XFpF*:rvZGժmW/Z ?(0N9`B ] ff:iSRɪVɐKPXF4#.LD T} uBA`IODRQH&ٯDcJD @?mZ.wed/3+.̕ŀ#蝽IS#PlXs7ꇬ.k2Da/ FAb y("bcj{\~b7fT +BE$6#RMf@&R@CD\ZFfVf %mY6RN fIAUUT@r6k1[N(9d' *NAݳO5a3ݝL ojyvv,479Iuŋ77;Ozp"=W+մ3wx\Hdʩ?Lb w IDAT;;׋?Lŋ&?x4I{G|\ӳof{fGݳG}_>uLDU]zWU=5Ϟ!n4 }t٦'gf;~FOO7~/'O^c`T٨-1f?|ݶ'}L7dP};ݝ/xqTώv@ ZlF q2O?:ؿ{Λ TQ5w]nl:3(I2c`UkFfVU!]wrzR&QQwL8Lf TוjfX5}B}DhWWWل%gDC"`0T%@$YAm\2%tVG\S pC͐YKP O&(D|(C_IWĈFWowaQFB]ӭIvm[`^ .SDdT cw*l^<0;%-#C<`k|B3@)7dӲPjTYonJzU@ ,i8 Z7DDC|5,i3$M!Fл<V}g[,;s%3K%wu~<%JJ,RugrA`C5&Cb1) ۮ&W"$>T5U U]u]oH_2!я!q 0 ĀXkebU=~魖ˊ(03#u1fIU5jTl6[-ǠxwUKp^-4tAD3q-JT׀ڮڄPQX/R۫Hj{XGS%OIG@fRˋj uuu}f~Jrq`CR@ SPl6>!BU6YDb۰@4#0I jC^P)Q@!  t^pfuzN2qUe0!`CJ9RUŘ$l7KͨHN9ƈXճEK$TQ/`IFFf$j #CX0b&&jc ]1JT#}@ "@ 9ĽbJFUU &XDK`@lH.t^\b49T| f{B f1p`d: `T_޼oߜ#UV LfvYO$KzzQtzs3|><܏ˣãO?۫㣷W{3PۋMS@}JN?~uXN~0}/w><>lo?Y,rJYbf/ (&ӛպMӿ7 gz!?>೓G7͸AU$Ų8{ɝoO9W~򧯪&|f6Ճëf7۝|fG<{zn4YL78I60UɢyӮ_,9uD8|;BBU٬7ХAu2nڮO93oB 16Mӥ^?xJiwtsl1I)**``hf D^T*@Y91C? Og9uGVwJœ[J;w[y^#dF"Ԋ8C.`۟^xu;AN奷xE]O(,2tPٹ6ퟯJa'F0f?-83Q#m tZ iyH 7g )xj1ev7ɈPkT;zMGe iо `SOE` 6jx(3w'Qn7gA zoY| |=UjϢf޿8faQWBCF1,@̄& M2U!dQ aP "Q@b&F '7T< ƪErP#35gh +g4U7+ UXaտ @8\ ^`(1y4@F ig2sjT ft$#8̊Af'fd/WCAm#BލyCnFS i,14JJ&R$V: ]*f Rp*P/f`_PEC0@$ATDn@V5]FBMB4TSTJhͬĊ4fP uOUCDYx0đfu˪לZQ1UzY9)a΂Ra`&!2W(`E))NGWϻ-d1 ) ЫIQE#Ȋ%A D D<0f@P@-r`BHU CM'1cw^n!0yhEr"XB̈́ F%eZ-jXh(ǯ^K'NBݦ_j].n"{U }ꑰ1+r+ȣӝ'9uo^lx<7Gwo~Cuuu!46Ǫ;ڛL'pwyi;?OB?}w_G=jA Lwmᇟ&F ŏD t/oq;Lw&h}uZ][$F POvEG{/ZUɑe&ݦ7zLr4oWt><k], Ta0&H zv08o"0LDYz58XErX]bRR"N}s||}3gl77p33.u[yJU 4f FRV"v~ZʱDc%RS000/DCۋc&"$-B1(nhv󷽡2T@DPUP!hσ<(9ESs7Qq4n9b34*֢6}"lfXYC5L@eE40(bP -.tNŸtH+˿B25Uq%  )֯0rG#S50 *5*CpU<˷Y~]Hjnmێ.Lh2+1Qp+!J]b^ NǠXos0Vլ"@\*]c bb !k*0虙 h%TRc(!TD18D\T\E5#U]*$UB%`mA Eqvj48^UdYW=DDQ. MѴhy_fD*xi (Vef1s̈́aDR,NilBg.35#LCHwٴ@Da5yk~V3两f_CF1Q04#8OӼY Il1) BC% 2qrezLw ƈu}')_^?_畨(DQII:QT-[]*0"#1Gx9q9Djt|^ϯ/IJgzErw3" =u)UP eHQ\,0ULTĨX>"0-hBE!2a0d# ͦ=::h5BFĀc"0Vwy$]^,?ϾQ]O&fm"(r?w_}g_!|LU 5~GU=?8$@0_OFجQ7MFpovw,TXO~?-/.nxx@ڟ=/W|1^=Y^ܼ_/|zuÏ~ o{{w.~wrJo~/.ޜ>ylvnV)&5t~}qy7|駟ylxN?}k<nBP5P\Ju@d(*B.媪4u`Цź^L#|+f \�snonnBB UAU @hHЋ*2 D,5|X/% P!Tq).lf,O(ìhVWH!FL L^gHalCDUf>nޥS,v7 +< h%6R (O@WfVGHKw2BIAt!XhVpWEyHV/ʗ)+`R?] nADD(xco.ھ&t"X6tW~?`Q#qɈ(91 9[0Q0}Y/N󨂩?4텐+bTMD]B&9YΒEv&al9 `1ƔzCĮ/Ѭ!O6iD!2z'1fQ#bDMؐSO"b(ZJO~bcJD3Aa4bl`@Cf Ѐx%Ĭ4uSi^D*^9'>x& 1JNuh K4u(!q30"qU>zb B,YB qٵ, +X7X"ط /5D<<0S$,݃ VgG 4pD nn0G1V*ą Hz=kTT0a"+P1>ww#S"@TʖB|#Ymخ!0+P4 X )DB*qGU{ɳuRD += iN92aRCjUj+D!"*!zp \Bqϐ1v$.6dh6Aj1Ɯ;hc4OQ{; q=v=:I׋ڥRz/9yS}ǷWj~2VU<6զ]G<$2fwˤ?+'wyi7Z5T{?|sw||r]d<Uh7 ET=}ujj'OpwZ_"t@L_Ndz?ܽ{b9.BlFԾY?/RR06*p!uY*b@@Q7Mߵ}?ԧ 'i:BB6uHTG}ġ BϪ`f*:߻_">Irֺ ړɤ4n/_ UI쑘`~5v r*&XМ|sAEH4h^lB"crjJ3wdv/5HlؒIij_E""2+/lh!2P hԆ2경SA*DU7DҒ.[#1zbϰ4,'8 \@}2~ʰubɪ!3254`TEB*Ig ܈M䋽| +i~j)Tx[K l;0>`8#%Q %zd9h`a Us֧1z.`g㐏!f!]'cYl@f4䜪X11u)lL޾^(?;cbqSէiPeF 4&o}dc" ?Tbd4C35&- ̞,0 $"8F"r┭#T?U0Pl*``ZS* zdNi///77C=|x'l6^Eyo33qDD}Ʊ!v9'ɈH>}"~Ym[%is +bũRUa!h@2,dXfOISN bDSz%KL,q73*+kJn9$FLcGσwfL!Ԍ$Q&HnFhP{Uws~4?P7p?Jv1ri/&oDc`6$@51Mw&xKN"]wX4)"1Sh$$Q@ ĀR4l2o7 m^8ۀ"4( 35QDy.Q7CV Q #1bb H' vsCb3tФW)fĨfm_l|-YՊmM'mRIn;hۦ;ՒBr8zࡊ7RÏ><::ߓRL#sL|1y^Mɟ|2|AP^oԈӳ7XhfOvW%C$ C.d5Edvx/~77O h^) P,o۬w/΃GIˇ=Zl6yo>rqvvɧg{w&t:D:?>t/7e7A߻ݶiXl~1_n^>M3o^*aX,,ovW{z.wvSJ)!4/E=hm) Y |0gUv@CNQэ ԶWkD6)4dhI)l6l^)n['A{@D E"4>`Mcɵ3#R}^L ÎC@m>pPhFDص!F`Sw逿`'")bT n(Eb6[Fί|o˸oj&6KMV=`kFb`chJ)y~$5 *TMj+@D mȆ#V1xL@2/f`#@=rBXԤ9y13Fb.j`  (Cibd0RXwx/0eSXsЂlbCFhhM6NYh 9xhDL|}ﲬPRLDRj(fbF~B A7*P"rDBuD"R ""dP2r,bL'1tM IDATlZP@iĄ{˙4M4+]J Ę݇?8ؿ8?j۸\V5*526ņ8"`Eu'G';;)7oi20a:My7 %j'|6GkwTrf%Pxsr<>~H@˛v~%@ڽmᐋY{xo?-c7G'*0~Y^9Jѧ}،{?9=jod2vrb7M޹}{ MWG? @;<ӫID1RjBp>VSiȧ"d* 6p"Υ 烄br(C(HE=P,;E 4K2J"?⯾OBH f HA By@XHQ-Ux`ʴis Ȏv 3gUW|Sf OU1!@T$%YwbDz˥ C&fH-261vmD[\jG.ڊ":K13)ZZg EJΕ\!xl*JQ1QtZr&RpwCW<9Z nb'/^ѮU 5R.X@ "0B>4#03#EbBrM ju-"?-%0 ў6뺨BQvQw &1ba'b@BbRDM %%;$ż#ʨ7UE-5&rq/!G*WyB̹ qmL@fMZrxpvo*1(x"x/dD4 $&dtj`!6;?I-[峋˦.~2tZ];;պIQ$_\^7Cwڶg|guI/^ngϞ7Ϟ=y鐻4ΧӶmͬmųa} g:rqyp +M>zYptt4y/sO>UWoU@="WBQwkWj|4A;fV7FX2H*({qjZ.뜀 TK`fEe 1+ RD;!ЫbTE9TI KR0x^-Q4rF/0d1d"FMR 9\avR 22S  š 1L1"01ubz"qׅjEUԊ!t"O$ B8F1QFhpw EBF yC7 {zݠZ 9wqz6bN1m@PA6Um>G:s|%qفb jLl"f=( C.0ZTs;WC5,0NߵU Ed W)b!=AXCLFa#ta}{囟|W' EqP>v!Y45D FcPOc)0j BV,E$nHHTTU!`^Ee%BcZg,F)Mn׭`H3U !M'IJ)%']l~6P0Ȑ͜Ul69 3< ݽ|ggk0㫫Зw>xn|知&b3pIՋ϶qwCBz{xWg!L>_޸wrrvu:=;߿5sO>w_æ[æ?|~ ԴK6Ϟ84gHӓ'P団%u_GOm?{NڣUyIXRݿy_0Qh;ټɒ>/ϧG/n8ys4[܂8=}p\1a% \\^ݰݬ8w@ZL!ILB|6]oa觳!EKU x\6R"q %pPZBlm~ "R0f}[Ș06_Dbu(G*POm <Ҭ8suBj%/xTGȄ!GcX꼅X'??4Dhf2NfVAk 3Z~`{׌JǢcui^4R#.DՙFS0߱NZZJkI)N8"gAM\JT*s41R9棡z[kyg׷-Wۑ#(8G'#ƚ>Q?H=FTމ?U!ĔZ)ޠ!ĔHn+y } !Ll)D0H1EL$mc~ZD1p&QD*e&?p_@Բx,8HQL93&(q@Q,=@!tmj@J@f:=e0CdA՟1' (^y~J`f+Tk &R21X8G\MLHTh7|gû9wl4I$&"XQY痫tÛyiyK< XԠcnh,vv1#PPLmVyR/A*nI y9!ֶoD *-4pūRc DD*P`fD`0f^}zOH`+UE C(p)'듭Hk/gTE/uq'aLQ&n"HX0BERzP4ah0 zA)x@]͹5$i`Ÿ~j1LX٘23t:8MQ5,AHMNPRȗ/b*C?\\0N{'OlMC`%+h֗VϟY>uvrݽw~j-WWû0|''gÃд\\Dnb1t [;WWvTw]m *a(e쳟v'ǻ;lmR gg{B/{U/';o~%rO}yӓ7_Ķmۇwo~owz2xr6>dvxiۦݟm$oNXh͘{{iOO';wfC8z峯yz}΍|1gv:n}uxg?WȦ:9}urwW%wHpq^Vݻ}r9%||O<{Z`6mRo͛gGO}~n&bC{{e(!gO_Zlq{xpxӟO/??sA74Fو8-o<@9yDn1WgؘIJ7yJ] 6==C jHEȳ<,0Km] Ԉ=po,Rb0X?oXUc&Ŋ*TE]%̉V﵏n5~8~kZNyGZErDT1r}Pqթ/]V}{1Hl f;0@?+`cqrU[G@{NP CjVwd"C$K_z%{Yu]cxM#] n!M2BUW_z- 0RN1m9 R)0Ir ͠! 41ART 1v0 jm9hO#T}>WkS-. Pb$*X fHV1d3T!gQ03%I05Q4FPE4сxXLJR%N1 Mqeh8^D!&͗{NK?I s^_ jA,rW6T ׎"bq.wr[S-*v$`A!ϞOf&bE ~ iUz^WWcKMGL=Z]P 5ju 31/`&*!AtbAQ !͖4)07v|{8fA! &"EEyM#$pÒ4 Min޼urvEz1VGٴ *FH6v;P7e1dSUo'ӑLqLF(F ҄cR!@K|y@3"J1)\芥66Dh%@j*E 9 U)y`,N)fc"&-5M3)&ٳgOJ.Ysso;>>jBhf:߸quyҶL8pbnf;{uytS8Nn//tkTJI$eXbǫE?~WJOӛ{D[7߼zjvnW)N{ OW_~w?ӳg>|ӭMrwq>|b:kTI1I֗"ۤpyzmVgO4lBRfMg;NsQ$S"Jqz#H y(Y3< ": .7"uNEDUڶ]m`5<`Ĥ6lڢ+)%0QP,E]f)l?LUT%и Qp!(Ͻ W]tzsKTAkDA!9"bFL"6P&.Y8hM1&va>0g:F p=$;ΰ us@'S 32i=@F=2_Z8>Ll8D>HUՓVT(YulTkUeG/bU[L"" cT:`VfPkۢFHEDd|!_ Mp㮝41CU r@k7~F b"f/Bdx=AyJ1RR٣ CL"Yr.Bhf̀hAԲg J[ 9:O`PBnv)(v;{N D=1 e&_ϞMyNJpOӒf9pߓ7VST='RB U"0[`b@LWš0bCBp؆ c6c-3Jci ݻDLIAJArUlˇ TRlu)"I9PسP5@EWy85ќp-8΂Ρ[ 8' n"bE9RtJ<#`$U0p JT$14}^b\*UZR ,ٺA\ y$kȚhmf)$bB$Cjs,j}, HA DeP!SO*G<,fRDDR3O$p_ I}\edGPRJ^ZjȄ;nݾ:Y]^ڦj H IDAT-"8p4@`d4si/&̤EPU~#beX7i~pv'f]Wo^&m[ M ) ð\?xG{~? m}Y,|WDx֭SigE_C 8]v<{ͫۇwE "?7G7۫!1}㗢xt}2mrѭ^u/gwo=?L/ѫnu 7nez[o/?W\6}EDlhrzvCb9ۯ_<}޳gZ]>;;ּ;9,$O@clvBL.6MQ|6CvYֺqzIMBPQ@\r1KirVh0LZ.ېT e:=z3E- Ml!<0 Gh,$iyquh=>nh]<l!iMKB\˹?Tc"en}cnUݷUE[(OeX?"z;լuf?TJh:&*TL|Y~KV Cne>4^Ӭfb)&F@|#q[_1q65 ow40~63+U3YZJDǼT2)f!`>xVf r.-#^J^k='UEBR\TA%$\ Ք"!vyD Ȑb;Y`)b @F&QQ4e L0!q1M{{W_R AHLmLDC\r۶eخ/( ! x!1agOI(3v6it2 D=u<~qTSH@k49 F0  I[JŔRPiKBCM, ]X."*R񑓙jDfF 1i a4+U3=U\@D\TTd\THȄg "(;?cc&B1Jl\gPTT3_bnZZ2䐇00DBHC "2sdj܊Āh0 V}p0K5Uwv9.:^͐* ]}qQ Y2d@P&DHmIf$ ̫Jq2VR42/ݒH}fוUMJQ1+oXf &4)$AЯ} KkIb˘{R\kr]f[w7Ҵ9Ā!$B컁x~X!ZHj1UDl鴙ܾuG_||xxgofE7}L'?:xfp3'ɬ\zb;:u>CD(\͹DHԲz|6N_}2IHb3Eם`H;[<7/p|$NO7_~H?Hggg~l>n; ew9t Ͽwn޺qBqg'\LfMmf4;7n"7 48%^0L#^ zhD Q&1C"#ق%}HLQEF]\3<wP :zsȒcl~7ldn/ߴO|u<u1"l6ۇw3m_$޼ ~ݽjRhf7Ue>`}0l&ƢZ|7;kjػjdТ!w@ry2r~//N׿Nݛ7oxj)F%6_l:LCC%'`7ygT c3AXMz3/vOR'fw1d}u0ܽ0[31S !w}7A@D1=;d$mb6U8=kB4rCgfd'٦J1%"jLq6n;Un;D9[ CrULƍ0C %$lBA6W"ٛN_!1EUE~ 3#3$bU#d[3se!֝3Gќ>s>WYD5IR}ǦgJ7C(]=_i %Sբ@d#FF..Uf@RԃeչE>7FZ]θ0VѾ)^$S<*!oA&\'' ^ {m[@MA%$j05j^^ll1#7]_(pU5/D9ς ffټaѐxOߐ5[@%]*A40 mO!U6Ԝ3q%q$((:̝`CI s.`82AP 0(qA*#׃W_}6Q)2X7Vt͋ɹpȹ8yDfH0Pbج+TQ3ҪV  g3HfƷK S3J` ?ŶL" \!8  S$0UìQoDx$1V5'ql[xU*7L"N"fP3mL".MVoV>C2Lzd@&US: ɴfU `cEfjVFD'M+9yP;db/jl,{&p/cŌhiInlMXdsD5#yfy %b' ZC@gH(Œ̈ ȒDWT1vcNLD^JEU+!Al@FOT Չ8%dsOLf (fnr}#݊;#/j})EhAS],1&fB'ܝR%Hő9/vvFT!Rq#;+7 "vw>wmi (I}GGXgRKSvuhmԳlqmwWEjݶYwt:ӳ_tkZ-Wb1{;N4Z]Ov_~t4՗o?D_o{;wvkk;g&ԓI)ٍ ޝ;<wn>yOOǟ|?lSw.>/); ҤNԳ^fk{VAAUUথ$u!137%UM~2Vu]JI)b)wӔd{{ﳪ[$iZno侘tvuE9$|ܛ[l2%$!bYOw_?8\Ll"Aμ~HJ-9p,,[#@27a@fH-MjKc:JLCmh C1'Hs%t€II(IC 2 #j`:`G O6 a6Nk@Eo>7c W4(fco, 8nFL@mv=$aW#С<;aWc㼅y}.LDJ.`)tBF8̽F0F.'1bjvlؖ i :aڦD02^p!%Ѣ$bݣݝ̘̌X*0;l IUլjbR% 'Kt&=3%3EF$9}Oi۵0jșBAZ.eZӢf1YDG@$7C/[9[0c*"8o}? <ߚ///E&I!ui8@aC4s UuUn&72MUUթJUrs@" ы)pǻNuڸp ׫+A*WBp(n%}KXU#݇[~Dï[D;0 iI<})Ā[u3om @!'YHUÎTp$K"$d2'J8qD\UU3IULЙ`YTӦrRtӝn  pd t/zRbGJbqvew&E7M&mXRe)" #j"ѡ&Č1  |wD4ј3zJ޵k}nSM*%sJDD)l"fEMՌⰼlڋҵuI DTMծΧ{w|L^yZUMfםھKBAˋ uRwvjI2k]`|ttWuU7Iuzzӟ/yt<;#2^vvAfADogZ׫Z֛Ͳlo{p΍kGJ?)7y>2+K$Q[޾}7P5ܾykӞ>{l*'|2ꋿ~݉K->zwxٓ'˷}~pS3ׯ^Κׯ^VI&ѣoݽ=/ꢙ^~ծ7uY>෉'M3튠lڃV"m.^yv:Jul:}Ϟ>3l6w$%纪ss_vvv׫UҠwL)].ZL}^izl۶]???[}_!s.a'A07>?|#$S0A|te:@%YM5Z")2FA ġ* 0#Xڸ!lc<9 q Y0Qb5Nk5C%i}X)Ap5 MGxW>QwFƜ)pd|R4z{Cl(/0W_ĈQ ~08q;8t,WQA sьQf6Q8G}`Tb y 0 ]:bR0^`<.fB e))@(@Q>Jmh188$̐ q΂(,@À^RPSR K`1b.NEA=*%Nfj۬_?t][ œzVյIL]!$@W|~іޣ6Ja(|0$is]הd:+XCӽiUU%R!"@]%7 9DlLS]%WBn1`"榞L;#Ҡ M}h^7}=q1 *md"l3fB2f(.r-yA Xx.eIqNL+&wu%$`FHM" }NS ul",4U(diȭ!&et`J()!1S]#ni];SNώnת4T$,ƥh\B" a`trV11(x8UIH :P/,-5 $ NL$B 8 uW  ($)0HH9碙H3X%bČ$L¦JL" 5!aGrtŲ+w̛룣?|'\~;f:UKN4gbw?w޾ӓݻl=IEnO\nʽݙm6ӳK$϶۳}ypmw"rggϟ}H\o޺7{89>9y=-!>:8GG^ھ[n<꩞}_'&[Gu=g4}gX(RfVJ]$d24U3on:mnPuBD^!NZɤ{u0rj%kT݆ )Hg?}idAEX>KhAL<1|$mI6hp:2 M(2yfQXfa`#geHDI8(0H߮#pr4FXIn0.3 l% x~x * 2^ůF}2ÇFQrwƑoo#wt#8i}kătȻf9[쮯@!jD.P dN>(W9 3aIup!U L.%ZQ QiaWP92CPp0S)%GSs׺ER)% s8 ̽*Euo3$Z%̠(3 !'g5wQ"QQF7#K4+pJ}͊3b%VJi)ȜA 0̬y>_,֠*AG#i%"qжc.̧vuٷ-Ҭ@o f`fv=' ܢB x$& 眱>|̭"|Wm0V/TJ6bd6sgB&NҖT ˨$h<.Ep{_f"1 0Q^ FCπT-q(G{$H Dl$Z);(Q IDATn7oߍ%A tE2n6k+%L`j'?ɉY;dWsrHL8aaZ n{?O8-z#weK` {qlB J[T !8ZZb'mf鄉b詪*fxX_EERJ,R5I"R</b@\\E]ĉՀH뚅N)IJ)%!S"fF5C`rZJ B RJIjd"SE\<~o鋿8߹sg{{{:/.vwwbuݦ6[wpJRO'˕m϶vvn޺W/v5v7^{)~;&}gu=ċ_e޼^ODIճN/Nw=y=~hww4'/}ټ%b>t]\][}xx/w+Fj:nmm-fl&߼|>?Zg5?wQ>}z||sm<7o^۽}t`V?~~ͫ'ˋ&wv볧??Unj)]Vj$f8NM*uyy}um۶*w'd^&ǵ1眚Zv]\H1RJhfs^,v *It0J fE$dypb(yB%WKNxց(] 4]>h5#ӡIi[D!(I@KaJcPUiL'rN݀Z)8q@}f#~E;*]|%2yF DŽ7;c}&tmx*[ ?WoX DRR_sg` ]z1o0(G190GSu^Aӹ\}(W1ef>7s9g7+0Vm9ܣ0t P(1hvQ ahf #ML9] 駟GnbrZr߳T a1wSrW4 ݘNUʾ}ޜ-n<쓜T ;{qUpb檺^]ZɡB3>mkjDH,"C1!H.["#/̐ruŬ7k%R\1LC)!3{A6d4&&"jC3>$4Ҵ9FiD>;E0>r?:!23qAPa`SQء!fDp5CB .VETWT+ oat6; P̵0$vqJ0"0#!ab#0԰uYr5.vj. xWWUPR'AT3k-!d67w{33^3{KvDŽn,p3b,DgiڣY2NHЕbfVCOH&H!Q׭޵E3 Apfn@bǙoxwgoN4'=9f{mju|?bk?\?|oݿv7D_?y{rv~$F$ǐ|mj\/7e|i g>sk{"r~ꛯa~CD}.nDW{UUkf| b!_;ۿo^z^uvslRã7IMHo/vej_+޵WE΍뷘S3fnG{g/svHx=ewl# ׯR իg%pCrA#i]æm ԋDN';I̫sL'!(뺪}# -Rwwjܵt2y-]߫bM&Lh`DTT9iQn)y'|!KtS #:M_&'Ȧ@W` j>Dx-`n-i<ͺ_o =R׉8w%:ŊPkP1Q!8f1G3/`(746~LA^HG $Wژ8xCiQ15Y MhYp]C ;|1q$ D.9o XK1&B6& b,!aGFs~>$4DG'w#0wp9wc,C?2-MݠqǃA$sGb.I,<=%o D$̞E `LNQB(g)W!G6Xo#DaAw~qFXO&>i"b@tOɰw@l$,,wVRz}~ڶFy"&S͙V]$@n 'uSJ̑PU%Qtf8 eŵ ƽz6ld$H}֛TW}ߩ1s4A1 w‰o(y0JT 2x+Ee}ín3rv 64u 2JH@"Id@>Y`5 ݺḑvw!, "I !$ѤnSZd"$IDY$IBfRtsga"d р5CFƦfv%5&!vh-O_ta@\`d/@ fj#iI#M{ubNvd2/7+%I5+V% ,ƶE;u~.qBt$dࢁm1-^4*8%`-}ۮGIB`3`.RDɊy0Gdعur͛W$EݔeM3}{v|~vp Wz{,0N|^޵__,ϗMY^.?8<<={vzf2s pL&uS'-=ƍ~/G'',/W?7߽{pd~^n].vvv[GU]_^nܹtpg:z|Zm{ux?om]*v)'o^8?}9W Sݣ{fuY(w勊=;V5buxt.W+jqG~YloP]׫o^>[%n67oج6应Œ̉I]U8J+ͦѤis򱜳C@ J8KιK(4UuוQCFDpD탛G^=AY%lP̐-^JT`Q!C89@'kuTYИhL"0FLC՛#zA膥D)։)Ij b|HM0!qN{q!y@WZ$N6޻  <w`c,@Иx4҈\xHws|#ʪ|(P!FtY[qc)},'E 4-F 3+ "O0@fA"~`F43&ҁŨ1uӘRbL&n: pHFD;Q!ѺPx(K4uBHԔ^)IU'X,"{AJ&wO??!zH}IJeNAW (LXvv:tO7 ͻS1Bb nqu9s70_7kv,kT 72&r Ec>:{{X;%hpv $2L= H2\F(,[Y--tuSu@4hޛ77u |@ , \  3'~9yjL E@T`ý,<@OA %^1 qJ (%NB ?1\T&d3'Id2gΪ[v*{[/ fH>f"'Z0AꫀNɜSSKߺ$v+ 'Nh$b`NKUD`^a̱317T"T sEU'*UhfEеN̉ޕ;,w]}OgSC j#TI]bHv@-ŕO.n߼$R*y7_{=UW{LvH/.~˿{;Db4կ>l޾==;=]]?G/Wkvv?=;ۿ>lMf^|Wˤkb}$fzztս|:>>~kG?9\MguE^FM` ~K9ͯ!YL|s!o="T13 ahU-zpܤv7ђզiJ)uJ!-;Ng>&ԘSJu۶*f,M%ضS2+Ay WUVUM^L߽nj"xI`4.6bv ؑ^ppEu]'!"A1`iM DD7DɴXĀ@:73a%$IL)%"q?sD=2#Rs@vWt | ]QwW?{~WUH@ısxHyRRB.30gAHBc"#K\sBCNN5B,i^rRQnܽ˟~o߃ܺY*f@[[}.Yuwg@2fׯ:jFw%ZNZA3p0 GQBA"UHDD2<}D" A0%oJ?|7J513ZWzv!-fCe0 @#!ķ{njE$iEr)@njf莀^q)b0 wN-#R yZ\,!#3Uw7AJZ*+ i#ҁR UN4uf8D ]#TLZXaĵG$t+L@fT8sm7m u]^^b=fBJUbhBb1 &X|7Zv$JM#FyqnaW*cY@:"3צ\u5Xtmى$Hn$/c<͌C=K]q{+;:I}\{~xA{G'oJ:UyP}6w' NfUT}#3|szfڗ[G޻\\w]^77o޻wKi[T-ݭwwu}+g[!Ps&$E|K"oO_z㯿|/vf˧3Υ;8}{O|b1m\Y۾|֝{;sNsbo{w|JnNIx8mUOoڶiBRT9+BN#S1fڶwGs#; mڞR5o-X*\5t;5SCah=ZI/J&! GdACVwPdF~"Fs&X eTqd0#˪*M#_ 163}X3чJ<1|/pղ{?S M~І! ,yb 8 <{ WOvL#+2,>v@4tu(hA$#u},4Gt:c BY`4}pOȨ9x"c@ P!8D`L$KWDnK_3qx*nDL"jZ$RǢE*&A3osVs" 4+`@R%iW, )Uu'8RBss"`. \bb&-GGHT5ୁ0^ȊJ;C@0zPOݿo AU5!##WZQQCى 21Qi(EKMSZ- 0&͖ /֫NzEĔ$ zAOMCv 25br&ޚ"*>gS 5 Y60'-jZ)@,*DDc0XkALH]!4D VJY$ֵk:6v5'I<D$P%0kXAס(tBB3b#!q%rLIםj*[fFҗtw5{obmb}xKP1KNœљQ9Ѝ]?8p B0IUi!aH}*E1B"y QA{5G2ǬFI @)j^ѯrvܻQZOfZf>>~S\l:7|N׵@__϶ZsaIwrN/Wu=}O޼}۷эf/Z./ѽ7NQM%9Eu)t<{\ysoChw;opsu-ӶDܶ}U7vwW天.N@r7~oN ]'߀m6]?wo3jު洽VWK{7nӔ^>Ɲݽ։l{W_zӗ D,8N$NaG1(RծRJr>H)u]7nm6IjR5RUUi35sOgML8!Jp]$D!Mkk/ٲC$5P5 +b.HDzFٛ ^Aw>+Hq|͈+{@08J :0^gY},302xFDC0{F; /!HT#k6i &шܙ$J_1a|.}Xt;w a P̑GSHdpfTuc=3U3@ۖPo@L8XJ(%[-̄>Pwp5ZpEtDEtpM)A5'aRUtjauT;O?韤-R1", M8 tZY^^XiUݾswuz^04 t}φBHj22+Yt’3UP+Dn31rՀ8. @b.Ojgag߶^q]!ڦS&R\۷O~_~mw͛/?ӢO]]/>o̊C˿gœsi s}?;n.ӳv"ͦ-W_~o[Y,gg}~߽yE:eJ7WmkzӶM3Oiݰ t:%XI:~;55c3AW]Y$RfKJ88mRJUURKwTk/Ypxpd0} 'Ső!SQ/ SSϯ;gԜir@ %%pA0 @A AQ,Ã](0 oP+D"agb#H"F& (@0Ft #D!"$RqDpǞ 3mn=6(oŤV”cꚓ+Iw#&$D]G$P"2 !/D)"#Qz0ZM$ɮ3]wܗZzB$AЌzcQf^e4#Ә$̏ $DэZr_bu=ʝӧAYuL/0l34,Ūol17V\fF8WzM`\Q9X!6]50Uue>ɣ'oZ-@V+G6{q@i DV!ZK @ $xv!F112)d.x(8:0ʽ9ߺұ9ZBX<2m9- ̘rn9B8@F-f!eVqXjAࢁpc{VsbAUŝ&yi척)+4f~[2+.Ȭkt,'73G̈hÊAԁtHt~]F"/mT5rWUuGa" HîLd *"4rNLW}K}pBl$i. P TÿUUr1&Fd E%"f3Bf u&"H,jF"N|"'\R܊jےR5Ҁ(9PA7`lf]b@)pfmYwfz}::|˔D5ŽnOϟ_\-woHX1RFh49ؿN;wgg˫T/_{ ")KSn=գ۷on ԩ]i6vvݝ{_2?^DB3ϗvWMjö5qqsRUriw߽w)S5ܾjN][xnyFZ}3ILTuEuH.J)ͨZ'캮'jU5#v]R xI'VU0L9j k)$@E5b:EDu59{"P*5RR n7wgןY-B+B&Ӈq "#"o"땵׿BD'43XWr3s?+D䐪 Qc phRL;__:9_Ñ!vd[cDs0خqNHM]w ;o0zLCYH=YC`^.-bQQP2wa0Y+nspwp _\q(pDn(͝Q#FGN00Uc5u رĨOKؐa}9Ų("Tl*0-Z1 Q*UEDVJBt!aע1>&8|0",jgN "(D!DbꦨvD?Oޝ.W SC|;sGfhpgwUAhvؗ23HKg˶bVI0U4"݁0%~lMu2fsҚo.r.-x4vҨ0UUTVSQ"{:С뺈?M1= T!i!'PNH"U}N3d(X'!@5E!"9O/tqtX3 PZGN/ vsSefv,@ "!c6kձs7d5S0f6 ՂLm1фP8J6AFΎ"{^#5IEL3QBBU]{PdP9 3293VWdsD|Xv:"OfaJkBB7y3{-R%`aadGo(:;Hq0CI)uR\bƍ] "$D'bcŘk0$f"lf(Hu pԣ$7@@3U57b'q]UQhsscc9d<7wf2Mgeݜ%]\^~pxxttDD}0?xpvm裏sWm4ѤUeys{q1_wo77$I׶Ua7>xj[˷Qf+f W5 K>V{{Ͽ?pzs9yw e:?Tݒ/^A1!GzE#-ש7}t=i.ymllة&;-!ͦtnn^V,&?Ovwovv tCN߼V 'fضN sC]W^]]uf >3@ Kfb5K)IrnK)d"&bF-ځth4iv܌KQd0SU5}j&z.ӚB'q pC X B h  M'zK bN ihj{7-%f(K}Ǎ(1! '_ #= xKA,k Ӱqm;<8F]|_! 8 Xص#{?+꟒}qpMLaO(#  N z5p1Rz0 } (= Q]8um$BjXeDH)+1oK Sb8l$@]9VnwaJª",j?l4wC1 uPTyv7łfsX+b0jς+jPqMgJZ8kIc`4- g9(:'L )sb;Rr:YA7$ͭ韾_oNw嫯Ȭdj"MSgխ ܵkrP-"LIr"nPڶFw)9vbKpQU"+2_#O?;BrXԞ?C %2 ΘsL=BW^aUf]UA#y#<|D: !bG4TCJu ޟ{Ģ@J IP-F=Fz*B %nAκU}w=]ǒx4j)y!FDtBA"4gb-39ċʈU}B,XމۼJ48[\~R%%$,jF ̂P(k|J$)D"\){RT֬_B'mLS 7n-TW[M-X]w93*•]x>}{MM"dxv~ӟonO/ί @nggӧ/_~׶ygstٳg=zyvGG_hgwj{:5X>ۿjT%w^.vnm-m4&'p)q¨!L㝓,5jܻr[oꗏ?x~tt)1lwKqDjiwz>{vvuq1O~Wn8~y|1V׿\hOyyy>[,fWw?bnsUO|V2bV.dc>[yLi0eWrxӯRb>#6Uu\2e䒚uiƺ\`ˡMfUV6F#9Y[WIr.RU uUUoLh+d!iaK61A0J}ʟ}!3GĤC]0PPFjb\DCc4"n\`dBvn62kb?<~D'( L{ch)iXfU.7swDן|oz[lkpC?Fz0ڝuc/ObF$kR|@r W!a h`8I,%ܾD̒fUH5QBO!_=n[JlAbfT8\ DZʚ=%DUS2B,f` hj&̄nD,Dlf3 !]Y ZcH3TQ$fW)r>^_#C]Wrk%G-{Sgp`|9_DPnLzzz5-x ÇZ K5lj{kl1xlwgEo{{>];N<"GrY#ƒGmR]&}TSҝInH,)ggf-)tL((88ގ{)]UKɆ萀#Z T T S]\̰P*咻b[[̧gwgW?_~՟=Ij1C#ֈ>2)&HNDBㄡm" ~p wfHi̊,U/A@p_Яπe[G5LO#nŒ_ D&7g1{[ #s4` 0t(%8 `aCv`r`  )!~{ٟDe>&μםK4.{G>tQDFg/cDPzB"DF *jAc8V-!u];+fwpRL HJS%Yr1gF",,l֛;@U IDATY%;1eծY$%Nm!2#G3)g{L}B.V7NuR}xUVUW ??3S1P[ 9!!zp!RM85`,hH0(%"D{)F^йHDHpa!eM) lg^Yrւ}`4G$NKvs)sL&" 1O(Y*0Vb@2ǜ__̮+X ᔄ$i,3WjK# &NIDZi΅Щ'ZH/δ ;'JMa-TpF4%0sp&LDjyU*nPvC"E UsW(dsKUBO 7u<<n2_\e0V*(/(y U{4;rXX1l`sׂAJu.m)۴80Yp+{1k"ܙ@U=N#csq~vN4?؞/ZZ.>qjeJ{/^|v`'͸;⟿?c^YgC_TH܆a>rE:F?!2"w)@2q@55;#eBK@q Ny#;2Ujw(˖)amIs.EXzf4^jq+;6N]G&dfsoZKap@U7U>{=]EPŒ*lU$VUjm5@!1x9$IҺ<:a!qH\cF- H @fF `>=7s {#Z(1FL`(;;5{pRg`kG Յsk;RF#bjB\JA"-zLE+8lVC$>aul.̀XU|:FMSov\BrIj\WJ@ŒLqQ&dpoRG=ٹ5jL (Bk"E!m_R3pżvD819x/W_0FR #nޢDDJ{8ޞ4ٝjYVEWI\7/pJNBuJdt0 !'vb/nQpbj A)HXni6GmѢYUѪ툹\3qJytӸ3"IT r1Kͨ7E05 9D$w@ď?>;;{7o˽o^M v7;0Gtnr՞]^^͹ۃw???(yٶQ]oL&[[{ juwS֌sm4_J >LnW#U!7w7~tv֋.Ӫnucߞ{Ww-yRNn7>ώ>ӷm&mwtx8U9?ɻ;:~WU[l2צByeKLTme22Iuv`g߯޽*5h^!*9vWs1M3ZZb<o,+T׵7Q Z,Hcu%UUj$\4WʚYdccrw7ϧZ}Do }]!~;;@zBw4~X'O_XQ G^D=!?ο5┾E 2FkR' NYp)>RH.qGݳ:D ``xe$R7M=Dn1L=UW8uL`9ZW`;V4BRRFM*5$Iđ,M%L)IRpvad $\]ꚙm;yIlWտO!>7-ͽ[p^8X8dtOɈy2"L5hPbN$ `?x884Ɵ~Bܕr<GXtx/Lo>;<~}w<^.n hXۊR꽰3030usp_Tj:&NKUZ֨r5:N)0eD?zJNN* f U ЁSFocFԫ^#|oogm(; R浌Ukց; ԩڕ[3Lދ9 BTLvV :B'Ip֢pgUD!vL*ۃݽF[jvs H SgIaŽ#q^D!NPڼyuuusjvY1A2DZUm[Bjq7vEzTqQr!BWCB @xDGgE"E1:%'{WW]V&0*Qa 8P$nU!_Bɦruuz=q}y}֕7WuVbݻwr|t'[]I7TɫW~ߊGP\]]Ƥk+6Չd]y|>3RJ׵`mSfY"wm¶]a#LE"& "a׭j4];xes'Ba7D* C:zfl Wch `Z ւ]-Wά]nmov)'fêJh 4X%PK~ ʀ^Jiۜ;30 ^W!n5ͪHH"1B!:U-ڶ[MÀsX3xL!vtDSUļi׵$!ԕ+YqHͷf\jB) Jk$AL>0: Cg0ݷB$$ $I"nU;xF$N;{Wg,iUr9eoNO6b./noy|&x~~#Dw_\__ IJ/,u`S5|ju7_N[56Ԡ+L.<#D^^ݕvڵS˫tf?zG&`TS qvxdluɣg݃ݻwgh|rbvыWiÃlv96>ˋ767edkg?h:[eKHKBrk?}jevs"/vWgoGIVjm7mL*ytx\GĹtIѢ]u]UUmvwf9THqDuU"l6-%/kfvGRTU-%Y,r"i$͔YQ=]fk1f41ѭ*3]Há# \!=iy1|OG9nB"E#CfՋ~ G 01"0ҮþU"6=%Tl4P*9A `X+F"k;HV߽)K7c`CmY=܃39"FUw ^BP8ԌW"1B+l˥11@:򺟨CBajHf#KHRQC*IQm+3H)R (WWJˆv WnZ%"眫6ZӞ~Shzf +&" D!1`͂,)F{N=hf,KPED0@#~+!@f'$/X أn< HLYCè]W~//wS0w<tԍpTa#`$SKh?bꦚA}2ѣF4H577s"2W$$[bR E= `-B 2zA%Df,,^Jʢ:y p(`5Q*لchLxL܊0WI#e'N74/W˒+R*Lne @BBln@NB 3UDS7ο˾PbT.D)qw7P뫍FluHT'DL Si<s%"D䞘cy$2eUjO[%w-=n|56%8;{%Wi9w{7V@?5~W]1-zr:9u}}_~O_~jwO?5]JJUUթޘLr^h;8O O,ڎvy$Ij:KϞ}l=f^<J2[b~LjIPN{G.oryym..m14X]z6]>?6&/ly%Yvv{#ޒ/ګYz3#G }&a")M0)ZLr8KuUe%"=/P.d|/fڬ.כ5''\-/.Wݪ2O@&i3'~juYI|} CC_a>B3껍Og9qNjJ"}Xn6Pkl" NOfDASzV__] gݺHJn9'Fʔj-jG/_qzchq%5!3^ c( ā|l19R);;LG6h#.`YM,sMkNE趾!&Gt$319ce߷ޘ@͌`| [/[{=̉LA!88$JpkF05 m͝m_̝Gd,+"N!81 f*ݷY@cWPBLG򈤷σ%&oTW:j6" đԪm+IRʂ̭J"g&1Ԑj$Pk%&J@EKZ+mH4 Uy}nu} @F-rcVJE>#37QU$2s1Ʒ4;$,#N4p`4hа@Yrj[dDȈB^*w&KG06mR:^w9djQQt"fǾ"`œb'4pGשCTpkqR5$L`b4'h$t}|͛Whe& B84F  m]$MBb;`1E3BVbg.FɡpZ޽;jEHm۔Y ɭfyġG`Xs3s~e(,YhtW32:`F7izCGH̉MN8xs~5?__߾Z]93gpW6HUUs&Ѥ(1`nX!֭7o2SNI͍9Hn)Qt)1SSRb঳Cxܒ S(sʄTKq3CdnfۋբuZ<p-rWm:O9(]^^wO/<{ztY}'G|>]):~";;6lfMwٞ=o~㗯5~of}l铧/OyًN./ww9bɤ9;|xpk'x|w>|ӽӶM[WPSs?~|G޹{ȼ~ͯ˰~i6޿[O:u2’L;[_<Ww/g=&,_u{~f㓪N ?p>?#3O _ԨUGdv.;;~wC 6&&M&"Hs1#zki&WfݙC-eXVw6݆EhOt~6鮥Iep@u,b_AD ʄnƓ.>z7_2.FfJ2Cg4BPU#1Fm[&qgGD2n76%x L(@mP ?\p?}mA0CU#)d IDATۋ6fD> 8rhctK nB|۠i@dG8x޸UF{w0n !1l8ƶԠ\MH2mV-r ,"'-}D+f#E)xzs;ཫ`s0DTs"hW)CJwQ<)TsaPqss"pMMQ&'" ' 4U9!3BRܶIbZMsӨjUus"y߿n֪ j %#ny =1'N17 EFT=3#BnCĞ[Gt/Taiu&}a B}spw"w0aie: "32>FULf 1(d;Fh]fE?  n✛f2C/,{Y?l͓5vYYh1DЗL&-LijLAEБ* `oekID d t`ZmMEMF{2Qb""&22shxgY"F,"9q" fP=U?;0tὓ[=?]V]XHL#5cȐ (KFLT*9%sAf3^ 'VČ,DNf^Y)jFjV+[J",NrggްdwE` kU󱕄BED.j`v7jRs_^AӫW;~-}Yjf_-/_0ó~E-gg4㣜t2IvZXgwow=|6mra)Z*Cof9IҺr___u[~z\%Nt]-fo5)`śUw~^$YꀛNa;>>84ծYx!֪뫥$iAjU˘#O-#& FwjwI}bFR+i[+O0MQ6'ܷq[ѕabl.0[%s@71g.w&`-pU#",̄u$iL M 6'c6Q0X(/nAEݼ#g%;Ӷ- vSq~(`m[PU.<wD>w B ;Ru{-8 ! 18lyG0hsQN!/ /{;_hu`3j i;vQ{ Ң 1E Vp UK3 I4m`3ڜ1/%Q=cEuǭx3 6ms.M* FԴMVPj@@Dz&( X}'RtfmOH)j"1Ʊ#fXh,4&*NZ^ՌWWxx^'@2GF<`owN.Eڔ''Ǘr:xr_~t_|.9g_~S5s3|C;7]s`o}(!t QN.0NNZkEW)4bP0C(!p{HQ)1cr4pC?(z2uRRﺔrnVus뫫iX䰷ެݍ=I:-=֊mʑBHnJ iRlG^首ւPt6SA5g "3edV:ڬMՉ|0໅z@hpL_-a,,n,D DDMm 逄@Y0! +V<ٻjo.K-vؤ,;RP%cD RQ'Db@ěN͒p۶nu-)T|6Q2Rl {-HD(Hs)FZjU0jjZ&1sED&bGAw40B)j@RAܽ8_u|g(NA>|Ν_~[jstpw8컟ӦZビG>?o޼-?xq3n֛=z:!}wv_|סӏ>ZM7/wړ㓇˳e}N$:4rWb\MgՂ7oJw!N͛}LJYݳo^_°~X(73OOOmw]wWg6ݕ )z?of5K*48o'ݪΦ;]POzxr h17e$L)2t}6*cwQӾ=DDsnM$u])jWm3Qi,LN)j-MRtY[$ƫf:9bbQfE?W/_#P5c6n搦?fbUIo7*[Rtlۍ+~#TN[i F4 /M\r&'!F阠ވ/M!lfN9'ҨCzk%oHđ۶h c2׽i(Oaa;b>#&pl+ Df.Lk ƍ;r],$YN6>*UږEo?*ԝ)"&vd+Aӛ.`Ƴ#B$]ońV,jՖ{jz=*TE"N;P?ײHdaB+Rs)ID{b!bR5& @U/ECr"lCJK( 8"I I.ƨuVpd$'`H"@9lOЕjx;RΙTZ4-(k`GDTѷTN7~X`|܉H" I4Rb (ƌM}(& Dk=4Wn瓔Z*$H) ep6u)ӧWf>/ŏ~?Sf۶ݳ9 I9'j&X/97_Yy rYds6ɦvt>9U?gT_Ed:m&s)zmb:MS1X\joղW_sGn?;vwwVreܦ=x\nVÃ՝ۏ̆Zu;7y" 妙0߾;N3puue_|iUZA͙ir,JA8[^|H9arZ 3 ";"|>b aƜn7vUELn^S/nhM uSK?n~%^RPn2G jTx}#sRpL39'@ `[<@SFM826ёbo|"L&>,R(E "5EG3%s-[iNBMDvBGupc 8s pj6kx )m| a!Vw/D[[kľ%J?FyM aD2pjw@TJMQU7,]cR[4 R$l41$Em[2 hk7aRu{3sD|q.DDHfvU!Fs}4Z%?%F*=h1 hFD Ԁ(6+L4::.v/.zSIXDD7WhDwU08lψ*:[Σkhk3W"7\#*k$7^H5Y{}8ZS˥7,2ËL:^]-ygg6S9}_}7)Mڶ{"ݙfJRbI+;?yYkkfaibRq+4iڝw"񽜛W_<ANmW! LA+ծoUDRpwoTۙXZz!>99uxyq6OWˎe2ļ^=˫Woޤ$t3ߟm7Vxgoܘy9{H$!` ]?L&;˕ YGHT7##R.DD~H)4Cw]_]3oi=\Zm}ӽý/7!fjª63sS#H|ZP-E$b60b1h=\dAZ1B'8Y8$v%oI8-TBBL79@b!VDH:%<6PDě%\L10B xNwN#W%}Ԅ[tEK oQLoTc{GF8r7mKHƏ!9\8~Qَ<5ct 6v bQt¨)&2#mz'c9B:)11qAD/7^@¬Rdp(C5[MiUU(՘XEaD7U7TwuG0fMҪ(HT4ZQi<0>ŷMMիj&'|჻W3t>" Sޝ{r~Z?c7LI!17)4\gϾ<ξ0^]Q4drN옪B~?k?|zy,''Wf7o^__|Ӈfn28uG芩qo^={zZ뫋_'Ofч7Rrq/~72|'j:lyX_KIBCmvg߄Z$XjeIz^]gIܴf$Mۚ9#lk 3$.jJ9E{{m'1M0 {{em IDATRK6m3]։v]7i}$3@X6uwh`ڤVέϞs(*0qci87bl;_y)nhQWq!f[?r2#oSJIZbֈH8z)*Z-FS-Ƙo w5)Q0d@[Iܖ("ͷr1/h~*0}\"1o|KÑ7 2 bj ƶ~sxqFi}/D̝<|[1L@̍Y%xz`n[yiq>8zŋW/>~T:[|;ݹsRa;Gn}Y^,&o^~}|z=HyrhOkq6Z*y{>4MZ/.N&ӽ>Iͭݗ/^ԪBRBޙNܘo_-vϟ>9\w?};?|[\uF"[G_jD4ڴMJM}vj'`..suCʢAZZ͇aP3f򶙔:HZkJVАh9l,, IT);wJg}/L#n7:U kߑX<{qD8H1c!1Te3hC"A P4KN숣d7 }t>Es0ћbA& =,vGps]1wXhl B2?ێY߁n}TB_Fi/"=f f^Vw+wE@DSo~{nyYJqjh|Px{ A_dQPnH[18m[p`lI$Zq[BѤPշlqZ" @ɧm"wjE!{D UcOڜa ^Y@4̓ǿ#3"1g'ѣt!S . ӦK\ƙRN`Ƅ(R{pqvIH 6؆Z~r5PUSՋBpk"Y{>b>v!K3)eЈt7I9q_z-ޠ[Ƀ/͊fuu-.$DhU 11;^M#h쟿RӘ#cyx&ZL'^DD$ }ﮉh^06mknję+ T 8vy ;>=YKNZI$߾Xw]pNÃ#FJ—ǔ}m}vU-"4(ŋo:҃vyb"+oی*{NK(!{woǻۧϾ?lqptX珿5ˋsfrt'lrS!h3AjĉDaH)/W˦ijU`r:i/751i՜HMl6m65j5u)jM7nZӖ~6[e?,pzJY>-"$fJeP$qN=GA:|T}4$-I!>F( # s"Yhd0*_rF0 f&b'0|īstO۸qLD[W0kf#Km|/kGci'ùBnp\d6!l;U5;I{c(M[;cmm1m?t3ܞRθHho-iKGzժcPG&6򾛏 CXǷ7H0l_iћG %dۑ;V71cgU(E#u$:D*"m۔R~&-ufd®i!”9 UU}1g6%7K`L7M|?qHjm-!UBjXNs%2DD  ƶ};ѻ+vDm- TG%nH MMh@dΥ ԶmYRZ0PZWLs_|uL}j֭7蔶(6|i =3j9[^աơ!PJbZUU]LjEс*0:Gg "x |f 4qm&v⍖Ѹ<݆1 A7]-?ޫI+K;*#Rg.n 5-oOІh=ki*C>,L QOn^ ])͌ZSd53Ќ"2v H`60'&!HJ&X>O&Ո)T.Vb*q5QbxPXRf*Ҵ-Md"a8] js4g'$E PMw]+z~q܍!SŌB H eQWH@yB`1buVuFt0 )Vi0&ib ^wܺ)ݺ}x4ٞLVjw^tg'8GG7S`:;;Sa4/3߿{`qb}'vխwٝ;w_:<8\-Rh^Ƿ5ˈqBf`krxt.ĝËd[KqJ~Jd(T15MO>,t]QȔsU5(t]KD1ƶmw...E%LH̒3;#5fhKޚvfe5$\DVU X${F ! xP~203x!Zy2 y=( ǵ7y HO#M "Ȑŀ1lJ"!fd5(`u?)k z˦͇^珛? ÙǭXM1)wZ6%hxnР"ldhqz6?X6|}O80s=0]]͎B"7kSP$mq_V>̄Ġڗm~^7)qsaYu3zW3!R1 bQG4LT ,`8!t%MZHDY9ge$#2@֊7?C XU :h]q/Y 7o_|" T嚫,V#VkȔ aY;uhrN0K)"^La61)X M dhEPL- 9ㆦn+"[vۿ`jKґ ӃaGzجR,Sx? 1ͺ[.gE#)]Wҙ+]]׍-v]fb*E\bߌdb\B e('R,ŊWIFb-xV#{MS"ݳL"aӬt!u&T "MFZrGÝ!*F`FFDRAb1El f'@V1)ߣ7`I.@}vYxFH8Q=ɰ2yp(&6QE2@hR:vj Řq mLDmJQbY:13o-OjPaє eXDcw"AIK2vӮͻ;{{&2AUWJ"8V#qӬIE0MWnJͫ7GG7>{z~zvpwrz࣏=ѳg?jqn,ѣG)1G=xݺ}kX̯hg{GEUET~a:_--{_?>;}KZ3$R 2 T^Ib}PּY) F$D0X@@ z}&D@n"ڴ7΁z8=}n碊:^D`!֠P U)R *xd&\E*kyx@%X U>GTU rM)G20bSM){B'EClggbj0HlX]];8%zM/⍛?vݚܿQrttnMFc=|[\-ܩw/7oNFbQ4M1 D;;?y 8/źiJ<8ld=>Rf\# Ui Cٟn, 6>c!zxk 93ruq fpӿ룉fG 3+i70*tV_Tܨ jSUM)P+v H`&BS%&⠢1EDll~ms(E)2A Um35m1׀!VR cJ@EMw/fp=#2y{fbELH!AY@FlU<)aɹ)FFST1%CS |34@o-a 6$!Whҕs_,߼z]J);UqXCŜXA LU21 QL 6m/KA6 Jmu] 8ԫժH!ﯖ "RD̬i6;Q54 ln`EO|PE04M*G L`CmrBz8D&ő8R1Dh2@ U]ǘD 2 N1qD(" YT3BA:[7FSg;BLOnU4wT mHF8T!P F.%7MhQqUp%PukC^U e B J)HȦX$= DьHTUAb5?>wpT[JFWO.^@]]n͠dwCD99}MӞ],?gch4Uu~/OvO> !dO&G<ӟDDggO"( IDAT:8<~u^aӵkC !1c Z̀)"E@D!b bif<͚afK m("J7yL"[Hfs7քЬ32]n1z<.?uz~|||^W("1dEx*PC:`!jC== wkr̠,0b8^E4GJ,cBݘ2xP\Iاpb6IM{m]O;z67 @(l$ju䷩tCc!"(LR/P i .MVdf]@!*/,x!x ,]g պ)/@U9uf&b"3[w_| `&/h(pBC D@75uk"6KR*`P1j<(Nt0BUP54"3:xR_HY%?a7 M d@UҮe"-#)XBƤ XU8u>1A޹DY "*,kC렪jH1311Q)]VFdm@z:+eb"Hf/jD"D, M`R5*cD)QQؘcT!C?YCLq#`Xq!F">sTgqK q\ ]9TLȄ!GcSZMDlC0h=#  ?9`LY HEF-ƁSU10l13()f Z-TE 8FYE  #9IJ !Q"" cc^Ռ9Pʥc"40(YԍL^]oM&5i.8baC4BSbd?CQLinox4 !4|1/.Vհ;tqu DX7SxJLo *0̶g*K)^z})ỹݫ( F[0Tu׉;޿q޽o[vt<ظXg?yj9NoߺϯΞ<_땙Vw|s/u >yΝmM4mǟЧ|{PUt:6m;>Oq<8MWW|4]\AL"MRUUN/Ƕmhn;Br(\# ZURi,Rױk"4mιmr.)dsA@_jb֗Au`j40֨.jty vnrnbLMBUՄtrrr?4pPQZe: ?Uκݰ@!&b.ؓ@a%֛3RMd=š]0:;B o"} mk\71@ ?1Dx͍7rÐOwEffD,b`~bUP\AL"00o:0?-o CDo{L#x61L9x 7g;GGż'u݋v흼-L=x=]+ +JP*XUTO52&GF4$LU5i(T8k&JEN =TU!Q]1a.E*Y)R_{/!f<̌TEro=`1^khA-՗f*耙0CXTzY Bhp K Gn{ٳ7"~@JG7oO- Yc&R 鲅RZ^ܺ{ҬPL̔0fs<3 !ĠE*XUuUs`0hWRz5+3PzZ bfPEB>İ'31j)&F~c0[vM33@VŐb`"FC`Z 0?f)0"`@9E1rMYG̝v!341RED0`ШDMdU7^YAH[B q9ǀ8zPkJ,> T14cƴ;d:Dm'~\-#B]; U;JfĘT**8+*%QW`j&IrbjD,r5϶p<ϯVɬHFT.2Cl`2ܞf7f;M~уOAJᭇ`?{p?wvwOϧӭz./ONީ`J GϞ=+YY/./BwnY\^t;Ϟ~6 #D\/ӭ_4/DL *!|^0Է=ZmۮQaSrbTWR5ݙ~>䓛s^|//Nݻ7/EF2V^<ݫw/ bd98wTףU^G?}?_|5^:߈qu(ʻwOٓC [C@oʥRv/.\9'1&D9h%]ښ,X'TiZHJ b՚sq4m f]vԑLC%ĴY*ڴx4nU /13Fsm*0=^ aLhF`~3vME7)U"Rra.# ^  jfi !D??t/mMD})\J|ƺ剼3뿹~[<"n8v]W5bI 4%e N泡g`*J[X{t=؇)6xlV_rbዽTEyf6x` י"szHa?ν$O{:sC1qmQ %lEAUTgiIB&cH18m* ̲LUcLEE w\b-b$BQ:b 9P!HD&1AA$G5U3oA )Ž}*1uUpґ[zoS)b"Z>:U0-UPҾ<:<0ް9DHY@3 j0g[f]%_OKˆEw[웪ʦe% A31뺮̥b{zrbf"F٬R)0 p cfE:)>R@),P%*QBH UH*ֻ=Lf,yծU| 80XMTj2A Տ -l/;EXMLH1`S+&E6GBX,l`!s4*V5w|y՜")B&Lb5JȄ&3qhv+q gm f$%,2 Mcf)&3tJnݕA8/EDJ)>KTДXLVjwwwܹ_?zH.Bz-?xݴ?y>̚usttcX߹uOݯ_vO=yo~1g׿%\.ONNܭ+_EAJm϶mVp8 ?xqzеFY*P ) G7n_\wg4ivOWU]sL=ul5 v_|ڴ?/w&hw6}g?Wl{{:"xxx`x8[{6F͞<}bfӝϟz}w['&b|ӆ%0(~a"r M>l>=8l]o9VG?kal.[]-"D*3qF FȾG7v!;,ey4.pa/#L]u,A%+PմC *bΰSӵ3ㅊAr.ˁj)"#!Tb7;IUsoTĄXJ!FP9;]׹"(w?xS>{0yO^6"ՒLi@r93$\ϴW@TQQ;Q#5+\ˎm54,{\@`E`ZV 0qv<Z )]RUq8?ǯCƘRRрW޴E&Jjҕ=윜@H)Y6%rAD>R7 2>!+C31QЗZbԢv]VhT hL$.#񛐩qb7#͘HjJ ג"`DPrJТj@b=/EE{ǷR] ]b2a5Z.Vzs~uU2CRcj8jfT*UA|qw:?ĠH YbfYrX\1y" AŊM<|'T%f  3\DTG"s.^]]~wO=~gddTUۥT=y g?wB-M7mLfh׵/_nM?pMv~ӟ?_\=y;N޺?SM{1>xYpq~j]RFLJ70+*):WidT@7p13 _G 7D-=] A7\@zj~6Ρ0g0#;Y)UwUjؐxG?W}DKnɣ<uDشJ1hR.T8vhr7|a>n& :ɀ` T b吢GRא_f<"u.ˆّg4kS4Z-v Iq>=o#ž FF/)*p^cbب[zU%"yw AA3RWkvMy*Avo"5H#(٘bڴ])E!g-kS@fbS4)HJ)#jT`H"( &aj i]'LdF(EB`m*A ~ IDATD ($<81T lL⨄}4`6 GzC+wUq=1'fj0YsZaDdL1"#s4Ӝ5FRڶ]5u]եuk:-J}{$`'B$5ROS yr T C\NPΝWW8ȹg5Ĕ806~ݴT{O?HD4N'd2 Ç!&˿~.םbvݼyub"c)Yjk2?{l6lxru=BjoTUn1R l.^-/mJx<;|n9(UVM5ؚLwn_˦ `f:y֝zo^KJO`0srG>=<ӿbqvqq''VBn߹C*?o_vwwDG|'/_>OqËW/_|Ӷp0 Pr~~*Zڶ{Cb/<Wnn[]ߜkj!Y=2aN7uݪj2IQZ229]vR01Rӣo;{wc3߿=L3j->|stTDzΝ8L{gOw|ՀT޽ӴO;>lzp~49$z;GGn2"?};/_4϶z՗3ɹ??{Wհ>^w>ݹ8Y, woW8;_.]w )0t2ٞUtul@yRY^nn[[j2rtyqќƣmӘ[(tݚbB膮dҜ_^!G>V!*G>;>>d+`f,#(G:^~ovg1OmHb@ ՠKa4MXՍpRHU0T 1wmc"BIzoQ#ff\[krͳMˇ5"]Y{04(cZ#!:*yHE^#`CDq:j5ǧu*`~g`jfKʿR{"ƻN0X泈ʌeN@"hǃ޺ro EMTh #.D7 s"Db r'"Q2i!!!:0 ! 9O4 sjcT*O D!2U亮$'QVaPt!D"0'WE݀?@ -)@B0֪!4kM$!oK~TT<TTiy9 5Bcuٚ0@Xuvˌ[ N8J>8;9M uݴ2B5S H#@K8G[{8&B1D!0"bn*":dʫ`qU7S`vؼP,!4P,=Cj:]IsdGuZۣ흽[]fr~q~p6ۚN9:~wqyvtm0m7޻mOb:>~f899K)>gpzz}~qaiݽG\Bd ʹ뺶"nX|fgt:$gLJu}n1T"1%m69\^]U5U$8Z{Iڶmۖg&v] 9Cc$꺴=:QMBMSXWWX!s`v9?st\cq~/gƁCryA!&.\GwZBÛOC h ԁ8fAja٬$ )2rP$֛nZ0,u`# YmCwK } \* i"+ b3J6'qZDZy(4|@#u6>ЊZ$_ afcxgp"Wy(}/NDc@PEi."Qۈ6C z1%>Ĭ?qAtI8@# SND8TTCHia(p0!Ī YDE!;S*CHDP4RVEaB`"?daT1 ԍ*c~5ffȸ9fT#E 0͒SJ`ʀ DE[yo6;yˈT7g1z~)=xw~j:<<޾s۷@9f8;;wggoׯ>]uկ꯯/ΘC^ |4 0iۗ_db_:O/_<o_}}zƬO2dų"D8===u0ٙLZ^jQl'O^ z֝lvyPn{Zؚܿ6]>9>nyOXUuZ7[uݮuY c?HNMIŚBb>~|qYLY`2i;뚪NERuU]]8ݺf Ym{6Y, Wڃl)fwwg I L` Y닷 HT ec꜕~dt<-h6B3>`y^kiNa৊C@]ºk(i; QV ɩ͘+/EDB>)a!Cx3$•+6s R"y~y0.TXq\V}#ΜmT:]DBjP "BJOdNmX7ؼF V IX(miy@9H0Jׄ`{SS G7IyE$(*A'@bb5q"C s6I.R4"bP%R]W5"xOK0Ug0; ꪎ1䜝nJ)#*b HTiL- ) [%Q1V ˅1^HD5@+k̻ɠ(|_D.%ԼRP~3K±,C4n}^:'$۷˥i0!ED׻:\j5*DM}`Y #QE!Ns@ob$UʝjFf!NIɐĵ"b*I q%'F4P%=@Y HͲZMY7=YA( U`Ue=uk޶M i\zە+$|*ff$[.n$[^jƦ!PH'm^^*%a~DH"\س(Hߧ, YԲHJYT P;Tq2.W uk_H|M;i몚϶}F0a^*BRܬzus]/tu}L~/~>~[Yۇ?lvXd:a&{B&[3 p$ PT3v]crCΒŦiygwXwvG Ys~0ĔKr4 i{{Dr6nѓNSURz\/ .׋߾*,h2~O`Ϋ+рL J%Tg%)X{aB!@Uy!P#u-4b %"-p 1A-}5"&1d5,(gr6& vN`^&T)|r@d޼X7V}X `rXP ,DsW*8h+:3C i ۄ8XeèK8Mˤ.S68:"8YUD-(#U M9XrNZ 1H]ՀPr.jԋ56%I#V" # Qb!# [;$* :FOq=λe I` rqAp!EƊkK{{ R j 9 ߻hu.Sd^,2@n-d&j8ĺY-UI01QØ&c!##&0М=NAQ XaUL(P20f軮T0}d .KsB膔Ռ4 6Rtm"LZ$8HuJ/@4$L49θU4)hMw$gw?ڽS7;;DȁvkQ*mBD(Y `,&Ls @H`RA2el94 8dIDpd2azC O9 nV1"3)jfHc"F@" ujMRJIm;[|ˡ_"6)gjѯuά~X(1wlwwnV-"?].UUɟѻrrq]UVZt[fݻw;;_ߦa q gӭ)anկ!]]d{WGGor6 O>b}[isz;?sVO>'Et^O'j},@cXM'ŻּHW7o߾mfռzJ-?i^TփO_|cf_}%?*Կ_}o"q{_ΝuZ=yd:m./ϲ;UtUR@^k"ჶ!< =!! vj!BۺɐrЧD+@bDjuo,vpkEl\#f>i)!'/N"xةo,e<>6Z#42q1Dx"u[Y3"W LnHmǬM?\9}#r# j蘳LH%\>H ,>qڰh>4#wW󒩩 tVv5Cc@ 1(?Kq"!Q 63i5+YUwIGVB1|WqEɷ)'6z^`ǂZ<͇ aR!Q6Q&)P"3mqTD0 ȋssF&Fj!Bڶ3e L3 S-yyPU׶ ID D IDAT2yEB (lO=ټ΋k0FP}p$&MV_ PBV>`^(f6!E⤒̈́ Tz<$  UiqQF4fwu7 6H: Xl.WkU!b&u/†M̘ J⨀uf1A")~!()X, D*٘Trq0D9*Ԫ eĦir(@"`Hq@ 士kdKU YM ,%Sl0`I(= "p葄sVK*dwsFC\]*bh6~&1 MT^h,nA-MU䱜!6u5"Y: 2JYs qHBƓf{ZI.QYK]C ļ\$z/DS2@VdSS$"f50RB+Ь&") ]iG՘l̈́tugGoSB$eB5Uݽu}}}pptrw|| <,x͛OOgE4(6G*I~˧?x_/ "*Doˮ>i? uS%'SPf2NPU~DY2$ja /:c7I`6a{v~ttnGnnn>xHlv̿{z]7ͣOv_vwwm&V[msz~W-"+ڶIY_Vӏ.˫UVg ڞ4}w0z wo^ߙN/NZ;bU؝Ms^t2~H0tvi[T۶`FfwNL6x_!~#㺞 }D1r]%Rٌ}2\G!dXw]p jȁd2n`12[gB yKsB:ό8_w2l@+b 9rTǼ~MzL b@ ȡ oōF|*`8`@Еl@>V5$PBYFTbvs_"&OJ2!R)ģЊfXUQ%l;0ldN ">EļaF n$ A{948 7 og"ц H&NȘ֏pS7VnLٓ4T*r)&>݃%uXוHHsTU*YzD`[Oa\Ԇ!smQ>Xy1` `@.(8bl˜8@à !T̈Y GQ y{ KBc@H4 9 DF=Ab"Zz3 d5wNCȞjj `Ψ0כ(_S<>"V`:/RC$0.Wd;j}cV S 4Vu=ATD܀f%AsΚ_,ULb5su4! ɀIҜu[F;ۯ:&0@"F:ߐ #zMYT0XÐ 0cT^MALFM@0夈Ij%bK@40'q6wܾOF FwP|5FrMEv:vH zTSCיH9̈Q,U]jg;Jтy# (TVI*\A7Wɒ˶?y'n*QWqg>^~yssCRzk{vνloo}דwrEϟ='G Ux{SX蓟Wׯ'ɪ[g;fӽf|޽{trӝ.HN"y6ߞ-j}}:{):)ĪeG>cY,ilo_ŊEt5[/WdP /2흝^~淿ovw<|O_lgOJڲL-@$CGOvgLm<~\/o=fJiX-@'ekU?[;`Ir~szŇ:9(zko*P] EDRꆜfYuR&TDE*#}? dƊRajxO//.7m[`Lh:,Y#)IbP!P4Uy˞U\)Ƞjnv b(1Yl]ffjDX4jXb|vT53C`wz.P$}2bSLu+F\WGF!BCd*cRA|\= ׁ2:H<FɝPj 2lAUcI9C?ti3,*cjvFyleG'z sw(KdLss<%0IV2#1T5QSdd#")yɲxȥ7̱ FV:YLj  b `D S{˂:2")ds !>)!攘)6f0U$ x_) M$2\ě^hf^pX1 9v6\]_6@JTBӴ@kPݷ,~%i>/o.ZUbݘYTL1Pc4dr~uq`z2IyU`Dum&G@H`L !#PlÀ Ye⽷SBW1Z#$nSJ2(Uo>*twwƃ YAAT,$BnMjC0 \&;'^-wfEUvcVc3Msk^rL`HjuFaLr[2cM!.˪iClb궍u[s$ r& MvE9,\F -"!Nf3;>=:??sg[9B4f_ٛ!7j0ݚvO>dwgﷷo޾DgBl~vvw5Ms;wmf«Wv>}n""}v !tudkkmXU9>|[! 0TU#i  ׽\Cu}w wonnb<۶i_ N}}'|Cw#TT Yȳ*>?~w5m|zv@O>} _\/o^:n=uwsxS~4tsf:7@|R=y~ \^.աmwbώt!LXA˥ܿ\.WWRB4jb><<|Եj>Druqyc$&zt:?~Z/ eQ")j&&!RUcE%YhHlVnH\t/2W81"ͣ  У.^@2˱Bf~_K%."*}(=G ,vcO0D驂[LM Dpo,NJI9E+`ƍHHU<1;n \  1zd~]`l^W\w1"ie&ߓΌ8U,0;j7}ќ&ųG@˻2Jme!XPTseTVbkhrQ0 h&uUe5_)Ur1*dqo *Ts̼#A*8bB`p,%yg[p}RbT"I*6b@b`L&~P'>@TR *U%y0PAԹc n 2ZՃ?@XU9 }!2'zL6Ndcβ# dsZC&\px~z}qD@TRLP՘(Xܟ%rSF͹Ð>VInj(pt[An닳73ۚ }:>?'>G׿O~7yBSҦnϞݽ{o]LU]zxl>;:>/M{훛>xpi[4LftnyV},d[ða@Li\_s׋!u]ߧL}G+^[LD&UTij ⒈ꊐ$ +D$:g?zr3y 7jbf+;,WPs^f< ٻƬũ0E4AXU ͬ*"1ڶM9γB\VX+KL,nIP`{ h xN BA@:ETL/F4U7=K "(x֝# ]ÑDb)ӜMUIt03+Ku@ cf c2-gJ &4E@D c\ J^ #n/6)!ݫƁuY$o^D , !8q#sie,uvf RΈ*,yUPRo*0hdRRTԆ50Fd{TR5Qt;"bUY22g6̟>' + =bW M2Qb)5b4+ % i~O0$W?"h% !BSs0b m=̗ERPU*@10#G~tZ-UMeh[Dd6ێE%10a%*}cS`,#*uNA` Ĉ(*9ys"4QzxQc RW:qPi+blgˊL^ë#FCB=KT,R5dV !bÀRn9@k5@"^!<Hpx0N?{v!e!r} j9KSX{,)(]\wev4ՔR#QX.M]2 Qbgu0.9E `y @DD&}@$5ܙbV%$a\1tk Qa]Q2Ku[U"۳ќv'2gGd?!ݝ7kw= ܊US5]~гdRD#=zd3I&Y$b -"9z8q`4,7cq;RJ l+f;;>~u37oh|ՋjX6G=ͿM>2A"JU(u <,tzC"_QlLNx+a[.D@C@-K{r4H) b$B]]e$DץS >nr7 s)=|׺B60ojB^}n XbtGH)lEt_MS>7>m7f}bv߹' ߽j "#x}Nx7+лȉ< 6C( ^ YgeP5-!0Q ND0RlӮH̜EDdaf?u=9mƾ("j>F7H1Z*o|RR`Pm<c2\ |h>T)܈7)h(&&B-B@c".(sSyd坏f>ҠlwuS3 j`<&c `5s4 YP-s (0R3ӾW$P[SjZ F@R20 l@h}4kob&D[*7_12@V*5Bah]Zw Er 1 #XLEBC+*qb."Ҭ$)@!ByU!2TLh0 1DuD5VuBP3 !"@d q%J!$eҢ)b ( 0 w1`&LDta4fA 8 V+H}ӻnLv[vwCALgoϻ\(sa RL 7DS@Rmi08? wgwW"0N:Շ;|ݮmwӳ].].MWڶ"! q,bi>V Dx3*!B۵Z" ={mvJYW{7߻ju^]jiEJ)݇?;x[fd5:>{SdC _|Wu*v}ƝWb-/׫.tC/ɑ<8 F_%2ǃ?.sry< C ,bNeSl˫v=Wyki0T)J!dUӁ/[wpo_?iCR:Blc~ճ/7O,d1/qE|?O_:99j9?!ǹ^Oܪ?;?ot2'G 0U!t6)ԃl pfkm, 9I^CX:@<63c(޾`c)M*JcyO{h^܀k1=@QB32@@D@ {@D6U# "9\N֯!"}]!m읞5C GpL*״n1cWP @WJ.C@cGbR Pĺ"5!@R|IڢMbJ1 5mE!GBv"P&e+J"f(dt=\}<O{>Idޮʽ#( T> #P1UZ1kJYuZ6uj~^O[})j4 Dm Fa3 SP@ R6AC @4o(Aa5܅hdVjE8`DqՅFT,DEcf%$T{,* QCP-Y%a)Vsyᬘ DjT :2D!# 21bTH#DTDB=FU՜`@ L~LP$0VM# j.R *AP#&hPD jl6?;&ڮVW{WG["B "M$BLkAzB BU 8P21uu5^o߼_ ޞMH)NY7U=D#?tٚ.TH#ڑEEn~on//ΗiO۷QMi{_6%XH`q8"@p|rd9fœkX]\,߿`g{ƍ} 'ywl{{'Uz0y曣7Mlo4u4)t*E6>^y||'~\׃`D}R'B(;/^>i;qh80?߬ POf8VoW''ͺO\_j {o^?+7o{sܹ{?bgo뗹[ŪR=GuZ//r΁l=wVJ Lfomo_\^|rk{vz|_i|1 vv<{HU?{z~v#q<ᗚN߼*7n~ɺmyhuGߞHZp HJٳݽ-W snmo `5۾㿺{:5[}v|r/[oh4>==/yd0E_V'~choyyտh9~7D?C[n|.VU% %3ǝW Tۮk`?cHmQ-49;SQJJιޗ"L!DU3@wvȉ۷oཱི3hR%nUu[n߹;/dATq ak{䌀w]bH} xNzl@C cp}<&oH (k 5 YX11!|VĠ;mVyE| C+Q|ds]Q&ft=@U%z'"H>$˴i9Mچ"k^ʷ۴\) y&6"oJ`r7n˂XL"&3}k}!yz)M=vhc-,ޮo^`;ٛdž~߹z@Y]f%J>3 c,<!N4c-:yQWDJ10i QP\r@ͬr!PD)S a4+!%JE2R<:A_BgޝfNFAg߈ >@ Dhc1#!W43}4McJ1ĪN_Ó*nUOrq^-//7n~oÇ6PUx4T;Pf[c쮞~i^w;8'2j޽7o^woOCѪ-t?i Fm G~wp᣶NNΘ]ӬWE /ۓV^G?lkGT֫hJۡF}ޠiµ_^U0곃EX~IOu1/?3j8;~7|T_2bG8?k ؉x2"W@2gŔջIk+qFr"}NQ_YՐP";(>Mܴ@}':eI\HѩAYĿݦŠ{}*}֦ޫk#ĒZ?QL!+ǨFgOU1'#SΝXoe$bJ=qC r۵7QEK (b͠+ۖ"!rh f1m].BN B3o1HA"XDSLOoo]s!TT1pPX%JcISQ0q`0COu,P%* z۬QdƄ[}>J.MlcŻo|q4y~IF(Xi!yA4`I0cusl8hP=J]C #0"3pYZ7])howWVM%D[7nxBý/^Nƣ7+znv..?zp{k͓'O?kKÏ_^_\^23.Wx< GϞR>ӝ]E`$0O|M0HB,e-Du'G|~rvVWi:p֫v?9zrwgzuVA "#V><:9ӯWȡћWO|6ٚMfkwC ׿ϾK)ݺyg8_ur~X\~'/Uz'7oMӳr~˓˫7/-8nvt**yB|XnMnSX5ZX/uEA@-8)֣5zB.`NC3:FzTl[B0,%Ƹn:CZ/עEՇ}e)EbH4ڶ LLe2%K3U0+T!@K,fA Pˉ<ߏ MaFfjx=~~Q( # PӞ%qD}jQ$@1Av  j/f ܄^R3)U5fE=M\C {Em,<K< w:]D :Q7=db>"3PϻE[ͅDWOK3F Ćx9NDܵ!kT_̐pSB^Sʌ`&^0#7m?æ%Hnr@R<:!run9Ph쇢T:TAEP i;Z7kb&BuJ !j]G+=sNV0'Q5DUMPHJ-5'"cEb *fc}}/~= *inv"{/0YIda0́ T*<:NP @<~ "T-V!ՆYyN}AX")]_7vl@UU[H&b&*UT@)hvߚc/{;.wrYiܺj }z0\Rl}c))|ٞM1u51o @ؿqSё Fr)];/O]8h4 ^-拫"~*1BnE Fqiq)7{7_zz6}߾zlk{j~mx+f#Iw^-V,gOѼ_b~ҭ+9H*8_,bLۧw2ygxmq #)p10q`$cƔLgj -MQt]gܛ}skg"k9Rـ]𽨏FV ׸?I_3^?^wġaH!KUwDž btCyQKɥҎӲQ4^Sþb)>P5C7gmg1x| u)@a cJ0%&]ARBbLuW-#U0Ӕ*GsJ*Um@SE1H)JS!6]&!SRɈ(BRR0S0 UK)nLBu{_ < "45T#=kׅ`@ 1336&A4Cz@ 2UNp6V"@TJOS/`n{w\^\!X=Z)d6YG>_KP lݵh}xC$"r`H!"S)t& }Z=\IMsuyL[O#bZ4uӐj$^<_-h[''WYq@핐r`fE!лFͼͣɃN\I%B`sQ q_‡h}' 004dHA)!Հj 1ɠ60p"ALQiuV`roLN!zbz^ NȬEͤ!}X Ηo! GFbK)JFF5PTUuUWUȌ ]WTETPr΢ :ȁRA?X HM۶,]fxrtW)=KYz~ԩrDh IDAT,_|j']˯IUO>../aMMfrͫG_]><ӟSd)럥::>"-TD&aXסڅ0Qbht{`k{g4n<_3:e/^N/0bh:Ӫne Y"\^d`8x{>NƓx#hv;#uWW$JV.G>C*&/XѺYwɗ00] hR BVMĹBS=xd~~QeS!ypMyɶ+@7N6t |$ZMH#DbsJi1;F>9;8 PM2 3}_Bkj#5DpHs $uЉZcL21״r`6[6"ԲOKrM_`Ϊz\C$$cB@Bbޡp_}n願]Z^#ZUw>8]Kf>kv˻9~ #7Ȉ8M**sn8yX VUDQ)E3Νz`8 mm׬ 1xga}@/N>?q՗xsl`[I(?'3TDTP3w:c)E Y݁.P ME];+Hgh>cBÍ{ғHE&$L{!z@f^cW1$u;;B=DV 0_ՙ\_4w3x&"w9kbsr] n*WO5@Խ" gi}F9#3 @ g ΏM? <EхxHf1IBJB)}T" ]Ɣ7X)bd)jfD <#Tp+p`D)@hbdfE!3'u db.hوF=5)v"ҭ{?Dty{=fjڜzE&421T.3"p|d@2qVTB!F2WBH!$332S `XצŬ*EB"d0^q͆PLt2qi2 yrTSJ^U`9gz뇹&z}Q*aG5nWririr+%wE +h"(^-#DG*5SQ5f?j {6,h)R`C' oݸsqv B󟟝]]]Pui??Oo^}o޼)hu7o^_]]7>ztrˋb4fN;UU?ywϞPG?9>d4lk2u1m2QD`2\~c OmSE|Qetc9631E 5q  .s)@/4oOF_Gaf!06fH" im2~C]U+!f&i_a"`em{6ޞj ?Wjze Ѫ̈u AO LM z%KL,%ʥ2k$#?2.xDCrlWr4C 8讪-G9G?Nlڲ*oތ?1,ZBo$j`eBr@)g&DdKa5baY"!Y:$j8 `CZB9e̝&U͔;W{6z>( ioy9)@bJ"9h&fd@Es Ys&>oՏFԊX3)0I/j rp;̀w)Do}-V%e|pt|5g3 #ݫbv1Tmt㻏t\-q9_AΥA@4bB.B("D16 !̚pcZ.۶[,E, 9/ lZ"6ѺSxssk\VEC34LERJ}SB`4u !Q&Ja^G&dVBf.13ABl.sʦV.w$ܱ%FY`EZ2PЀ} ݺ=nE])VR ˦͒sJH8 ]\;T<DdժM)=x]րE1LH7nQ ԵFҁ{V*cG2^BD#WK%31PP5ɂH,ك kQ YªI)x`zrU=yxz9OqcwgpeQ"W꣏~4έ;?p0:=?/|w{G}BڹuB$/ F2L&G7olxp`g{k`PWEAN5ͲmCdS!:Rh0dfu>g/>zw0ڸy|;{7|6N.e?^Qqq9~9l:Ϳ>^rcG7ųr8><<Fe 0&bX&W +}4gFk^|>_6Nb<F_֝ӳGףQ<ϟ?6CC1ؽ)Y09{i"٢́b* *!F&΢1)alj09gXWx3!nl6MA]Mί6w)cRV50_墪>z7Lb >ش-pny"R\١OcWZ]=cgWjl?Z_f= џL}1Uٽ]`^ScӐ6Q~ փ,_s1"P?dZF>N!"2z7Sk@z<f&g;St|Y־X6X?+{?Cƌ^I LTzSdj/뻳IBBp "fI9Jlڧ2ea.dwA@ S< Fk/T쓀\Kڏs !lm׹B22ٴ>k;Fd"Fgۮ+b jN„E,q`1-RՒhNruYLb`"@")e@j]sE YE1d 80zD$=?Y J 0[+Gk!s]UTC.@6@Q0l 5$w*Ed FE, 0=2 tm+9sA P GwOr̀/[*%A54DOD}?9{ٴkr\~n>r5p8:m x 2vv拹_i<TĠ풗ú4OD"rߟC0 \5]`\W0c AʭPs څl8"7Ω:QŠoȡMrxE:RתH&3T"`.A(b` 9`AR9iN E{@,ڪ,]:LH~)T5z,OB(C(kr7zK RI](9, FDEDGjO1oA@rM"g3QD `O>ݺu_-bU1փoNb0˽W_-ׯ_nny۶eUqjЋO>qYWr?"o޾;y~~ŋ/_mUU]w~u9"~N`~zP(h=}/e$$bG?<j'6]ꌹ|uѭ߿|?}!f˺b٤YLookbt0|ouiά[RQT߿?]fEsvq7fa a[rQs(旿UA$juO8TCNwb'O9;;.ʢ򫯪r8:iVodyYv7oOfxZb*˴\L/9ajն9u]1ڏ>,fL!2d!07MUQ"E "C۪Wۮ08ƂrrnhAsjZ~13 sE4GUTb`>O\b= k ϧrz/Cr.ކDT BsbxלϘx& ̛轮Tȟo=kM &*@ÁLk5^|-1&sp~Wj1 Qlhk0 B?;T>!:'}@"*Ǟ&>2wjhUDDrp35PDt[Z9G^ saoh@>hx [k HEU-v1s@Tʢ fH)]s*1PJɇj5+wK"2BM8"PT.+L#yY,hE /11ٝ{Ѽ՝}I2J~] D*Ģjje D@.3dŸ.k074Ib 1fӮ.ș<|WmFZ.xi巠i{QUwN..O.2~'gLF&WcMr1-rXKXLz֬_C]'u(,QVb0]8 qD3AQ6]1Η., 9n$Q$cCX,*B@MGA LWu}3%Cb"Uef1 X!El3*QKF&"!Zu.Z,9+ 3E A-D,T’8A1?AyC9 /GG?y3l!A]WoOϽ@%u\e(Ѥ?ϸZ@.$$^Ll2P`heFUVX&k%4M x(#w E ibp^ BHHGͪAbScpJͪIwUwq~Sw "Ǻ߿S񫯾:9=ɹ;<x2f7G{b\g?{}o ڔήN/_?Nf4K˛7߾}zq3@Ղƣ!mKdOe)E9lEEpgTν_Gòlzyy{{ӧa5"ܽu+><8[/_!9GJ C<WMs9}n߿u{~{O~ӓ3PO/?͗4oFrr ׷oWꏟdj` ;oS┚͚t8,Oߞ޽{_~QŘSu=(chFTSʻl6圇qe6}uJU"vl: +lR΢)kY) jgksC; G.dsO~+ќMWcIN 7c 9֣_뉎 ɴHߏ?kq,] cL)Z;~ѯ>Tu-IHףY숀 S^} MSU y(+ rnTX|uכ=|P~C$H oz^E~D3-( /z1cWi)[_kF4t1 ;} t!ZLz)9˜YVƈ}@?& ղg1`²DEB(ig IDATwH1EY @dUSR$* PHCH(&N PVhZƄ!V=@.(8C"R"F!$bzX#ۅX=3`_ CbߘDK M!;n`('PCDަએU۸U|1u;uOK[ήwe0\rl_^=Rwv_xR5tz1p3Ҕ .Gos~q$]mACHFA;;9%D58L5甤WU, CLMk"YrR!L?"@QHWp) p ~dXĔE/a6kM3%4/dĔ]$=/r9f37I X""1Ec"D a f0@LPa}c{rk8Bbq4Y rTգp>lGi;zq)0Q //3uBQ,˧5I尮FW)Q BEYUeն a"PT TPc$\VP)b pQ~3l&"y4J5ۻ޽}'|rx/ǻ;;;;7ÇGAX>˫ZEf@)<<fu/r:Rf糜bpY{?o_\]bX5?p>J"Yaͷjhkc]M CU>u풪u%-7_Y.7v.Ítqtލ7nlG_}r6:?{9W7o1GO Q~|_OfU [>><5f9 όC"b\gx2&^Q&.q| ԇA^Gg=ۣ\:~rB:zݍd'ĻWW> 7 "E;PeUCPCeF?gd9yeG_ڻ~5ڿ[F'3 zc׿GD#Dfbo<ņg?6^(f`@ HݽD:H@f)KBL 8Qł;-ⓩ+.V/ R@$A @MC`bdS]6dfYsĄYDz!J  ޶SJYD 1Dcѥ.l@BVrH[`ǹ EUB!۴}Skø>!zYWW&ɒSPe2A E,JߛcUSvnO_Pd{kռXM˪ -6qP(^u*(`B L(c!k-9;EHqMLh秢Eh<5M\.eJ)4 ևBcf׵ZDl6@]WCH_ 2@dc#2Qcʉ0h d麶]6`+Ki"&?!KKΒ!"ԬE05P!2 fD E!YUL# jHĽHF=De>/ Rc5.s":H:y܏J=7c*]"BT ,(c5,FEbdSAI9aʐ$lR> 0"jN* s$bZ5'd1S+Pymmo믮Û7n0dr\-? ^yA M c IN.Rj_bb{{򒙎oWE5U !a6]w]ț.,N^Ûz8 0B.<]-]O(U[8n7xss嫗oNޜx,??~ӓfr/o38G^<{7o_TArs5ϗB_~4mUHۉNϷ6w?xC85"XMc=RP3?<߹(ףr{{cv9Q yUY`ɷb&ӫA=EBֶm59f̦.'1Ꚙ66G)97n|> u1hUUļX(aƀ!_M@՛r.- $CPYnVAdhF~@0Eguϩk߁&ikDB`LL0d*a|9(Eh=>l6X+u ɟu]5CDTOr[ݾ=xeط #0~Y<z!t=ƺZ+qy- P8m(H/ !{Ԉy,hsogUVVGZsP(g;s])h}AoQ^5 }',E9E,DTŜ5fV0'nK1`PypJY )I `E "R&jV9KbRN)!!1b$ ղv)2pP|„XĜe Q`&`F z# / `]!JD~'qaPD"ys0lU m[͹Ref q|&RP`hld nLc*U9!*3d`M]?ɏ?7OM۬ͳɠ6F0(12E7>}l ~N<I3a L K,]$*bV!orꊋ˛WuӶ~pY @>,+Z/퓐Tc 0#\  H CLKļ2yAeR&ϾZ̈H"*X T [9Zea]TQ] N qmR>~h{XEmD`P#!JĦZ׃,? y>`]I$EQ! L9ױ.C9nW-`F0bLV]$4"&O7u\@"*ٕL*RuӶ8U֗] JuXW^x Z&KxE|ݝ}[U]!"rYҷ|?ӧO}[8>?Lm8p6}j6gωhr5U5mnl1S6l!FB\_^]^^^L泫ɹ2bU7vvvw7gUd]@!`XUoS39yܥrf]z,fHUE{Vɓ@1 1j<[vw{<@ ޭϟ߿r>IZݙN//vols9'+d\T gUQƳAU>D 0Gâ͈.NbYhۤ.%)*%1uU˲TӮ(eYsy1R\,LK7C,b5]׹kc:ā$k:Ă>m]/g.PF"Pö6(yÇj{Si0m%蹳``/D7^s5Ϭ ?$hqU314s<7ׅFv$"&uF@zck)ʲKL{S=#`>֟GU0,;1:>G3׉~M\fH, T*[uz[A"@Yp=3s` n1aּ^?E9 2Ǣ$FjnUqJEfED1٧ڜ8 3(e1d0Ea=P5[5M9,)%@1EPfqZNDPH9gRR(#C]] `T(DQL`H~] 8 !^.5"eGpPw@U;NTх  `J(HmJZg=˛&R^& Yrf.@$A1c U3^m *lb0O|:vnOͽ/ 0`(K5@F(:))ߘge`uY3@LȴIb% w߿HedW/?~l&&ELHXU]U]={(bsVGB`"fD+"DSYRc탞-LיOQp%l IQs@1UP#F$3@ZM8b -/̣PlZ=IJK{$ %Ѥ(6olq&]5p8 8s! *(yG!_D$ƾ@M!KV015MbFB@rez;6;5~*⤢9"I@,.uEYwIbr"!bdB$@f&b{%!jNjnlFz8~M.f D7R@cG^L'Ϟ~'媨i"V;7ݹ~_looLf,f>~yxZ̋XlGhCo ,lrJ+*@ʲR΢jf{ wmV2DL/Z~ŋ''񐠱ܩt666E'GGj0mM\W_U?z6ϦpsWϿ} X}Po]Mw]^]_woݾ\j sQU(bs{HOOޘl6IUo/RYrEʠ E=e]Ƿj5G.wUYtDa0rtl6!"`3%r"\Qov-N(pt3֭YwCdccr,!f ޡദku:uInXDb2e B[S@Dh!{t,>\8DdX?W++"gv@ro/µEaU֭{tQxOBr;مk#9i&VCPo ⎜tRɃx\ݧ_Ocf.n">^bh֧4B_)DAWs4gf1xxDrF؏# CkӉ*TQ4Mbd4b]D^QT 9iFt; .,n BL k, "Dئ] h>9`Aiw$)Ԛ\FYk3}`a\f@ e냗W}0400EA"h5W@u`nW 6Tԉ)3P7.%O7@rߑ{2,%`DrfALE "=qe -f`2LIB!O?hkֵɒ9oB ` LI!F !k "ͫjS1˥fQSbzMʭ?L bQ5XQͺ98*Z 5Ab@?,fm39ZLQjB=OD**LW) bè(oTEMY R5P:4Mui39+11oll"[Wd6+jXH0 W9ϛvX.͖ݭq@>Y'G( !QVS^x>}X]b\l BA!rvunեͨjb$5gGt1Y- UUErR0DGÍM5CDږ={Vicvwx~vew><>:U1NO~鳭ݿ!'_>X,N޼ݻw}W[by֝O?qJ璵JɲNFp8$/igg)ۢ@xW-tz%)ͦO>hPsTĢEݽ`=>9<Цͣ|ы_VeQ7_|quu{wno:RsWۛMxу!Q λ}p~qnfC"|ZeNѭ[?OǷ1|_z%7]oƴ?.'9sC5nVd:LY]g)!I7sjeB iںȀV76T$u% tBt*g)@M8Ų)߹s7u*>uD)u!DW3ɰ}`¡(6,]YUtӫTT ҬV{~vnވ#P)lt,H,T "ǎ)#rTĒ5KʠMJBL]]f"Fv=Hs,.{ 1@ P[O1D+\1G h@Lc!-ḙj, b_ ?3GDD S 6r bD9"t!P[ U#:PLuU!ج~ߏ77]25`&3 $r#$13zXO.S+BL(x3` "s,r-sZY#&$CvI=~ R`J؃@C5Yi5 Ѹ*mmmV,Fb;GޙN?ON]cxjG7ϟ<&KBPhܻw>{?h8/^|xx8}[ǒݽ߿?ꪊ./޼ysPE=.mll&I VsZ6]<]%w>y5tIRɢv~v:h:VϾz2>'nd_3`̞y zwڵxMfrCjk9F=iu5QA@DFFw.sv%, *MR5J XjD^ IlմFrGDIgpet@ jYH E$D,#Etj {'G𩗈DK% V E$U%' qBMLj>?:CfF;Ll/fXkH1 no1jd`IDƈ@ UB֨Tl>+bytxuu;W Ee&JHlo]U o7M#f3bcgw9_@A5:>(EDS]+I|rvEf J%(Z)2UѠ2SȢ*3v) a4#Ġ;RQKB"DD93+ / ^rJ,cL]<"%L@?5L\P̰,ZUodɑ=YY;P4 vHJ?co"Ӌh44R?P&5̻G9G?N,0`q&?eL2_,YjEʢ&R]ZR`5ɦIr[r0jZ4 q\V͚F%&& M�Dȝ~Ne]u_}2+p\䔳d!X%u,wFrNm \V PAS$ln֢4m=uY4Z=Զ'Ǐ޽{OOO}h(mvZM>(8^\\޿="E1N{ѝx*ɏR9uhwow69moMvwC B Lǃ]-URƁ']79zPPW7[[jռ`X,c$Br:?q4_|M{wvۣ&U]?_7~y CgM WK"3N/ ""Ţeuzrr}շ-o'?ld<ɚ GEQݹs'bМ.N^xSĀ{ͷIbaWU="]UVr8p[<1_,EQP3p0*48pt;M Kb<"Nr!gKUղ((5R${!.x^M\H{{ D$#m+@gxBX0ߤ }X*ʄȤ1P`t,;j]M^֎ԏ 64^jVVGxYqlp^M~dY}H ܮ ⯊!75O^0"Q97̇;5W W##5ƑOi$=H6zDs}_( Ё&!3`bbP6/xݻ}JL2cV/L^5`2>Ǿ4 - 9gϴijrYT{Rb!u"bPD@8|DPDUQPĜE CRBCIc("aE!gy3?/o@,a*f#2BdPfw" Yc $ 01x^{'i, ڴsN20兹;90RT fnVR}7/߀`Y*.U]rk<<Z@YAV'$![$G PYV?x+ 0f  @scs۾d3d<"h0pbSW;ᰪ%{rqu [6+B&91З3[ łDf"*lISks6Nhg;lh`[;ouA =ͨ51떒Ȭ`jRDC b@ ڔrlsh9 "p^bziͺmujf50x0/ӫm rUգ/$惽㣣c08G\n(u^;{{޽{W!.ݹsLMm7?ߟ_>~p0ّ!xCT;g77g?{>R9m_\~?zCx{Z(}DÇ,R|'ۓ|`/^{q/p_ G'uY̋wWE D_"E@Sl]bzp[M#Z+vxx0ݟ^ j7׳mպes^y⓵mX·u\?qdkmZ q0Vp4K'K%uJҶ]Y9(fbEH)wm6l@>$$e.VCUmHYhxx͋ħ92ĬyӬ \Ǹ~v2ȤH@ djl@D&"Ft<6`əE2"qD/(<SqLl z }ω~)s_fJH M35bDM/Co53lI4 B6@,1FS!WZ!"n$z=1 QDݸ Yq!$ɠc@8n\׫vvU*9??lf5Tfz%z5TrQ9($ԜtrZs//߼}FeY_]^>|H?^b4ŋgۯ^'p~qˋ靻jnWL?|.bɁ~o1E"n`rvq*څXPV+ED,=Ã7eԄ"p!TvYms".8Tgf~+BQOt]r:<:f&FU5YM<~0%͢@'[[!Zw'yjZ@hN:u̹C"@nHD8U5K( 5ͪw]-ĜR"! 릋$ !z]<|0ˋsN.fYC{Φ0xKBP? w qE97;HE OTGD?Dp\zLhǽ!#a}Zۗy6si "q;=lΒ<3tcU 4kb*}jRfք&P !_#[ z(z@f5aЀ}n/.m6농}Y2P wl8e &gvhIL1}\AG01}UJ$Lc N_ QrPDOUBb fZB׶EQXk9TT=Ao񳍈(Ef"1Ժ.PXJP&& B)]ʈW\'@h>ս>L4D4a`2 ̚sQȄf TP}8y HnAF?@@@jG #1uR5R]Y0B@u7ח"CJ)- b3Հ)Hgb*Thk$rSw(A ,cev#Y.*b:m3rim9o-9_("Q@"f~~aDDr5@^moHdF̷Q %O @̢Fئ@9&( v{P3d<q,lvƶ5n rDUYHv!0 a*BdP;͋*gT,jX2Ԭۣ#ʭ`8xM\ 1fajQ3c` f|K&,c}N C eQ:o LD&U]Nvh:!bU٧ۿr6My:umnf{WP;GGDd|4wVGިAJĪ$ &ӗޜ.WMGG&?yd<攻w7gf]׭b(h<os^7M 4x_`=x].Wg=V~o{k:U+?Y=Gqo^vr$ 9CDﭛ*b'?Y3><f!\]\ͮ_5jV*Ɠd\ G#]bwwpkp0"/i(7,,VG_ .2I &b*3((Zf.x֍ՇAN; )  *biu#^lHB u!j߹wE*+]3& TAL&5ފUYdG)%tŇAVevzrv~yq馾;VP?{GGɤ딺W^f7GGIRʲ`mN1ƫˋs+bpTmLƓrnd{+ >Mi0C.lZ\_\]\^jqٲ@gJ7Ca?eG`5>۳߻xݴw_l5mvj?ûeU?}v> >YUo{޽㣋3\5\?y;`>Mw>/>ϮnEigh{go=;AYWs:]̧WȚS>8ԮrPs,XT|&dkإfj- Qߤ'[[9Rʲ풙M&|^1̡ZySJ.CfnHe)R,׃sVĒBYMܿ UUf́NG}FMF}/w%=ݠ27h"L9g?3CP35SA0& ~zɾo0#Ǹעz)mvAa& }IBC&F_a47?<{CZ9i@ {z$ My%`iٷY1@|8u \~`= I7\C%*s| 7 n"y:@Ms4C@f5!xɞR L"ڶC@+ o͈B^ѺmT50ei@`&b)g"fE 0-m[ʚb,D@M p=K6C,L,123DDv]!HV@q2EQYʂ!RV`d2bTp0B U VZ@fL}VU[LdJOٔtG=ƂB08k{{FIsb r.rz5_̳ 1cvfDu۶wg;cUQȹkã|IRevk4!j !0ZaH9"1ad 5 d9u?ɁfQ}aE["F^v ܩ%f-Fd SSVTU:SEW)?$_ˎԫe*4[;5g\DF1 c,<6?0b1_Ηr\_ IDAT,V|X7"AYu !.ZD1Hi@<#n}qzq:] ڲ^]\p^ϓp01tfqx*dJY@u,IPQE G '|%x]/sU&IQ]ӠY䂌c(v׫'?$z619pU>{%m/=>1Hu͋rT9_w|nnLꪪbpHHKj몮u۶հRpE2JP,V(׋඙rqI(\{[[eQL8í'O)Ɠ'gg`Xܭppqv}pxg{k'F ~(,˻wܻ@ /NO;G~of:/?|2 [;g6|>_gG<7*dwgOr{}u]ndܻ<X (].UYĂx^j4~lQh[cLv0H (w߽x{xxtq9'Mx7!b .ʢ]w`شsL IčBl;UZ 1,`;6[,wnլ*l> c.W_;ݢS3}+#lE@bo^h8Te*M;[ǀ \h]UEq8DH*M&pć=bUXU]%"hZ,ffRa2BP3QChhv]<|`ͫ^f]dkZI53&97nۆ45k᳽>y?z GӷHPW};_?Y/./{pEU/_ޙ^NNsjCmE I`oYN Ýi4l1_m~ۯպI+P׃{w}gEAgg'~uQwoon>~=Eyy6tkkۓ>Ofus}}}uხџxtt4(6 '_{>g(D^\OgW7>`!=}仗/i۽|:tMmSeU+`8I)ݜ|Znx4B 3,5ۦ˙6H@URs"]9')u9gǺ3Ѣ*bEU)UYRӴ X7y0(...m=%x -b>@sk}3Cd._ķ@,bzc5c V8 L٥fjUw-DVL(z*FRUJ= Dw?zhh= >zZ;cD]%=˶IAD@K r_ w~"ffPT }RZJj !d6qbӶwwww.S70s$ Ь ԯh(, UOLUYZ@3š V+!pRw&g8B Bۈ;0[)8]".UH9.̮/8"O=B e1yكf:{eצu[[[}|9snovgggZ}^Ye] ߿[U=m\{Y3vno~O|)*)+X. mú&hjr1on. K-v)`?yͫӓ1#,ftwp4Ouwu}L4=ؿwYGfhZ:>:[bk{tz,+t}}CYUUTUq?|pp0,L/^%+o9\Z`BH9i;6*7Z-W=9EdM9Q.'xn:5aAU0e BN.lXFAyqy f^kvkVRU%[O{ 3;@f/,z#Y8FDL)p,I%'fFdHA%VAGDGHøߔZ~sof:(BTME9x+Y`|qsn/ ˞{agZ0|3M歳S! GDB7ph0VHstM'lHͥJ(Hm9NЇzm"LoE o׈%BE4gb1r^ B D@n?hQ0 dF%xRub . BPCj/RtMLzG$1^__xC,ӏ>8g+FԈcD{gnUvC̾&s$րv^'Գ9k HL vhhF} %D@X:Ѷk2dC1F EKR!DH)%QQX GAQ>b¶kr1Ĥ\*o}&SaJ{GB՚d0AAʢRɤ~Irn:*Aw᳃{2wm I2ݽr G.e$*bX4l#r$&T,BL9MLe1[9}y== U3dwi۴;Sď'{oޞ}{||d2)W_"d*=}EU)?d4~w}2ow_?}d:iƓfְKM,ruH@QTaJ7ӥjgH3q] u#[.dzۗ_]|ѣ˳WA)\̯^z/)_g'߽|9Ѡw_gWY=UY, Iuu653-Ae8朆uy9y=ys7o7߼:Ngf}yju" Fb1gՠn?U5Fr0Nh8\7g߾} 1iV0fZ;n @K`PH5`8RnVGGG"gM$1 s)'Q,!ofjt=rbO lm~'TUZ׻"nh/*b]MIW6&5@@n7pLbXHг;fB/߁?*"|N3n~^v `sm5L5B_pyZӍ6-Ϗ5tdIwPȑjTd'1/;Pq'(01lZ Ov4"daz&K$M9qEjU"KBWiݥw嬍#aggșF7JWV+#9Uz. W=矠D~= )wWF};eUFg TD8()Q_}=v{ +VVbSwzw2RJqU&RTUEB9p+"TMqփ9Gz̈!Q1~k]JX7QUbi_Xŀbfє3" 7悆8>L"u)9ڥR=x5n11"q *}|kX3vV "e@Sf9 וBf^i bྫPXrk8bq' kTaU8 PX c ȌN#-!X)}]!v!f .o|DS5MX.s;{vnmNTD3_ )07#6 1*X18bNZO~tP9Mt]rp^'2@C/?=VA!Ր3FLT`<j("\VP5F"DMKUnRy+VEՒKTUUKcC;MXQ10e \:"ʊWEETd5&ʥTXx8"יbG̼LM?T6uǣڍwhhJR .h-V!0 P*6 8Ί߸q]tmi.776w.gnWb6V2dgwo =z|f.˥nm]v}. gF?W_rJۛ}eNL{o3aT`B͈ӶPV&fPR4gGicdzavΎ_s`wp9ׇw:?/JI u5X,'AP(MUMMC+/I:4ճlggԋ fO~s{/wIFi}}~dr~tyzG0_ͭ_~Ǘ^lon?}t:OBܿ|4uiet:5VM}!"ۻۓl/xgg[NNN& LCJ])H겁lnnrzД\@%L8͉8ȁ"ŪL.66Ut6E@+TǏRV+]|n༒6C#04uCg/3A>gn2rkNF 3zqBDUC?==,cjO.3b''9 zBȫ ;ooՇpTWq93ZMc:] @~[w%7"Z8JwC{¯q13$Kϸ" J5FVUBw a IDAT<1BUXiWzALĮwHjJ̈=cp# |f*WJUF#M"ԕ+bcUo1-(aAS3+RcdUusJV!FPkJJ`K !Vݡ2a dfPJ#L+br]H>&ʰnDK9gaǿo?{lL;#1{6@KBCEf5 RD~ @4Q&r<̿+}'t<&F.,'H@* `*H.jJ対;llj@$)3mpsEזǠ\ؕrv.J@"9BT>DTErߣx t? H3#g EJq)C",s)ۻM &ɥt C1k"ɷ "}(*f*bjPL"}yj8ZŲEMPJ4 */ͳF3,ܫr.瓜r@Emmn5U[Pr!՛./ˠaٵw}{GGolvbrumSE,&PCD?>]jRJ6"5lv٦ˋI\^vc:]<:ysryq9 fUkn+16]jON޼|ճnm2Yغ} |f˥Vug]&^]צ ?.A3sx<*9M5͞>~ccsryI!0 v!VS޿IT۳d4޵}t~vb6[|6RKjSbK=y7Vd}c*Zvq"i>W@ K{8,~ѫL%A!6x4hBhF2m\_ǵu-;>}3ǣ|2onz>]|wgwmqx˓|6b PECTU0UMU8Tk"N&S #kd4\BTUJ!F-4wAZ~ PGUDB"X^iå/L۳ϙ~ du *2P(X:xup8(K#c$E2!L+XvU +ݼmbZ]g*+":QrywVgAuc!ۇ]W~k- W%|/N+ J RDC` H=E0T_A^tf TwLY1fQt(:qQ3sg`dd FTm ѥSuE !0Ez[zSךD(R03j.T۶U-!P]B"b֥90%\"hVB bb0Q'[=k)"*}I]"UU?x}ϕ\zo@_:r]b߿,&DQ# ݿ)"*4@2+oP51 @&,b8UH{V? q@4/ rŤcb@FTTK$Su!%S*ErĽlH{*vzzrg$$s r>#h,*H}l%Z[iB( Jq| |ڴm096Ujal0mF@WAYBιGL]3)"])-٤5+o=bl@^VS"3ђ, "r4gV][&UʁѮk%/V<ƳrĈ:>G#`U`1QwWpl5PBM m[[{{]6u6Im7)zMc/]vEn1TU ;[czt"yjcEHb5SeDcY׵[kK1Cl΀׷oݺ;m>Tsż_Gq]VSWE }]妪MP.~oZ.u ߦ\Ɲ;_>qqyulֶ /^k7y=֯_?dz9Ii)9Nv"%u a2hLчb;;;ɛ۷9˝dkng~I]`r{\NNJ"ͻwﵝpzzds}>iAt>w\Z~g_$-g"٠ti޵Kb@룓b1 ˳WϾ<;$lSnnFbu1ܚf)IHmJ*ʁrI!ƘsNR Tq{lj!0IB"{o7./ T-pUr%31H:x. 9f*& ɐBvO y\ t;POXj&f@O A fؤL')5Eئ? ׏OONv1_,677?x`wwks߿xo_=yt:g?{䉊lnnV1AUǽÛ7J]Ngiz0lr.W_=v7ooCirk<J"@ĀcԍM./߽Ǘg*9 M'g|].X͗7?zg"eX]Z[_^^빤.ޜ_}W'GG ,/w=xs t|gW2% lnmҚviq"ݢ"lUU%@0@<Uztf6 H)m;D$tb@aoo?FRS׹OUsz\L'SbM泶kX3Xvo"U6>yeR8A3";b?B6xxkI۪o+R X3 L|>u _H1Co LE^V9=2Qߎ]i}YE^`s)odz\WGJV}YU*K+\i^zHkZ#Ġ9RNGwDD-N@"ʞldnj}kzZQ w>︂+ 6 g7w\tsՂ @]JܩM7iRŊE5tJ!`_T"Wȥ>Kkq)Lr_K!T+w]"@=eEzH],jHDzKwp'/-![ PS.mZ{W3B"F0WZ%ƪ+l*d 2NB0() K9S05HUdTU2QTblP7wF奉3 ;PTE,EAšqB1Cd j{;];?]bŬraE@ʕCUM_|Cvv1AFal%k`f $گܩOAw1L;qC A8P6bQ>^j.v]Ut=eNs-SHF+z!)bKI^H8cXP"0BCH&]vRt)>7O)'#$XUm)'[69r땃PDړaG+G;;XWaogw{ky.Ԇa zE*2/x;͗cmlH9jD5$fS, xU׮QT(T͛׿~=M۶9޻{_kwL[E!qI{G>|/X.&t>LB_<bz8xWׯ];??'ׯ`0^{h،ںHXӋKwھxհmi.gU#j>xt18?3e8!B ]{YLKx}4/}xp<<}DDNO.'h>b1m7읟(uɫ׋K{gǧlll6w/'ůV`\S*w߻}g/OMKBR7b0FSӮKE8I׊Fu.uݲm%x"ݿKs|pzʉL~|45pqysIضiz9"gM}])9 "0.j,cvT<U˪^vڊЛ mDŽ+q5DDPeWJH̹ #BPX?aIy@zzCLIVJ;p0ڃrPMt hAh0/QE7zghg{ŤoZ\5/VoyM4EъE025$Bd&t+$"qEՇH}!O}HvOnQB~; {w1s˗/? _>hﶷ6Ƕ["U5X_߽y'6Fک;u_/󪪫I]O?i:㯾嫃7ѣG7o˒; bdrmɥ0ѫ}r9KT3% Cx榩YTSlQӌ&t~!o_^ X5zM5G?7b6BUMY,ooȔ_zhkks<\qݝ)W_U]g}pks,Ltƭ[w>DSM=vD~)imɛc%r=N4C@FB<+(M-utB!v7;Hd Fc $"з󪟏1P`bV24`g`?vȳw(7Њz3xl[) =D{!^p:eBsch*I q*:fELDECd&*߰w)ڦBbT܏jP,H}_;S\zRB)a-L;Bo "1 L&B==W#Ao#t-%* dCVrQQP4lpoow>yy3 MWL%\εd;765w(9FgG' t!db 3CD#dfUL\sRؿwmĘ1fmd:A2͒QTCU$M AV b2ML HŐDJ/6CE !P mٴSH(&}%"Z"fawD,!3@s ѠI!J8 Qm6 d!VK0] b3 G0/W*sLhp9ʷn^?8=;;Y_[ooh=cUhI9*vz~!B/wX9<)-: Ivxͷ߼99~|v\Վ Mu8jw___.^xy/~Ï77o o޼1Ɣouӣ0hbHh܈!tGiӒswo=,ŀPC$)-.|!A]lTF͠91;Ks |>1mƃ?˳lH ` iU<@dr#"ʮ2w5JN}9 Ta70C`+}HӰ( `=<\m _d{4T=Wz?O[wq2jX8@PS1@/!}J«=ygP#X5X3 f2eM="D&7I)~Sꑙ BP3q̌*QBTI AR>KCWfW .+9^Y}SsdoID`&"4] UMXUEbQ-bD]@a .$d:a#TTB ԊbP.8ݜa))yde`1u)C/ LD7_B5kFL@}[Z֐r`|R$^E">@7{J{3ĂP:Qj&" /'G_JTEAUU2SUf b,EJR)9+GY?8.r" bQ)˟쏟7],f*-;ڶT2SW% &SrɢEL01IJU~*JA!AUEroe ۏ("C:{CU#P?"UD S@U$"%d2$]__"1y9TfuU VμAUWds-l2^CrDYJ7#sn7 d5"[ ˮ-fϏ_'ժo_*/r.p0E^|IWKVLUAŐBm0zool}ׯ!J*)P71Z k[Pm~}6nؤlv_\N}M"4_~s|rŋ~ݼyw*ZQyVNk?ٯ|d>J._ vwv>çD|h46>G֓7`p7OLg/ufR;O@*cXe!R1b=hS_7۷H˪em4~Gx6_,oHl\ܾh8oe@~row=_//Ώ_HjǣQiY4bֵc߼~R(dLax΃[wܿޓgN&Govwy_~~p~<F㵍b1_L(Q~y>v ,A ktژC?r)2$]nmmxk)j1Vh9%RbuEEQ-v!A.I6?9)Yݻ1.-V>m:hf},Y_! υwtW*g$" 4G׽)[ܧ*6)HX#*r A δzʈj ._z t?Po (zKϣNO:~Jm{"VwK{#EZi( ~vWHIL' zgrLlKoiiIoL4UmfDQWlQ*rL }͹IҜE7wUĘC" 8 r)!v 8p`SbD%1ACdo&u2g ue4LHTu,j֥46JmV{56" =fK&q2S- bfKh_z5 ¹@6,j U]eңx4ρS|.;Ui_B``@m6 z+ zK W:͗ UPd&D3\0kL9u<O^/H1޸w&gb"P A8\rLEݞ-dV2BF E$b+UXrF3"*9Wy]"~25"TMf&9ň#2jnWblmDB-5`SR JKJ.EgӘ#31,E$}zF+z>?fsm ;\<; dp|vz~:Yο{ 6FR9z''o|]DD5߾{?7|zr~pM$əfqGYUuutwtρ B?!!~p,vsg;nw7SU~P!YZS2#"=Tya:={ Pj>W)}֭wNOϚ}`4^l5G<X'XE^U rTn(P(v2(??|yJ  ,N}a,c{eQ ̓Nwpp|>ͯtoOrEM]$Xej˲Νwf1O[{u"~4M|z90E,E=g;,I;[[[NjIlgkkc3=ysͳ7O"Q(1;{osN  XpvwwGX!& s^,BJѿes[ܣxfsv4p Uͪϙ}T|o&R."`"6vn(%mצ:0Eub*&jDPem]p`*U[U Bxdd_s~LP ד^mnߎ}H>FU=-5m!wH(]#^_q[Tѝr3Z/+%ֲpV2k3,hG =쵴HdH*h9jw YD2?vJϣBPŲeMuD$Qy j"ҜbdD3 bً`"l3 bf։ 4u\jL1j9:P ҲJ^&Q)n)&LTENٛx/QBH^m7ޤ%l  ,8R?x1x T@r'zWׅ}VF4ʤޖ&g%L VQ& 16 \=,9h6k^yduFho24QfI,uV^cx I!\)eV ^뼺N޼NONπsj\Qt;[o޼DPDB$ !rbh^jEj &1!1+XrcPr2_̝ jHN̆9Gv{w8ä dr엘88HL`hd#XBp'ıYi1M34ՠJ\TUunH;11Uќ"5b';!`nȫ,g~ byc?Fv}* 5.L*ji./x_IOޞh,USU,xvݢ,CB1OXjtϾE(,*"ju]7)i6ShꦮTZ4M-`X/> L<q*G^g<Mg{7Ogw|Ç_y]Wj8LG{~/ݔ%<o޼V/^<{6*f޾qpblCú|o>)(U,:N h66_~9qw0Q -\Uռ*7oۓU&W'EnoXWWWe͍骮FS]/W?~gO~$ڻ~ ٘h@,{Yp><<],EYw8tnb^voZ&En34 7+\U G\RǜS,:wnsL͆Ár3 %Iιg5I<>(rHD{E$HEQ8ccHќ޻^<&1:V~l Zp&.=n%V~vہwJ.Yic` 0"@թap,OTLʂ!e3j z 7ub tz];ai DOEF&#͊0G!8}I`ܭMq^4NjU##0#6) b-JAh*-YAU\ N!031L 34EȮ/\'ĭפvUa{֪jł{4ouj&9"p&If&1sED1x]o)̜sN)1"Ϡ#月8Q%P(b9E*2sYb,DFUMY00#a]U1Mlj E"b[<0+̭Z^'7-VLP>;X÷p0$@B׎WUDL̪Q5"f31Uzkb,YԠv귚1b;w..49'DYojh [d(yr 9elk&t^&"ljGQE%n1fn)5۳R{yunz4g$ȍ(hB$Qr $ACMNR$(B֦FT*ʬFD  vL&ȪJ#4B y@5_54fs[(z ɘ{{ Q62v1p jPD2Ynld&,"$IĈXeGh8JUŌۻ;{[[sWj?t=dA0Ԭtw>>{5-#`7vo3,mNt;Ԧ#f7~4y#fNVl~_}sP@"zSDED@#?|4ONǃIir]xppx޹sߟNNϗ[n_?߹s盯iNNnE?vgO޸qpyy_)5?~_2ݺUuټyxxv~{yqɿfcss659RD;;[_?~UʈYU\NtjWj>QՔgiN8<=^'Ϟ}~uyV FnSۗ.6b͒;[}_s߹sV$JIt2a^VElln=~6zINLfP7~D/k.:Nwnܸ\nCf8APu{pdr#omnx#ew8o\|\h`*r\-W"MZ-SY2S1b5d$" Yյ쫪6BYDj0n9"jZ%G[_Y2DUdV(r YZ?/}[ܴ9`kض|1.* LdhL Ffn#1g<߲"5UCw;XkT\o^ܴbo0o]`@LmͽV+%``"@ wGt 9i $"e~k]F!+&l]Nml߀@"CukOMKID?Z]2NNpϪچ-ǃuMځ#0b15@փ]"64fFf76A Vf2oj%"y謄!FŬE) 99,b i$pP˲7)yɡE FtY7u<,+FR״ZYB)Kj700!,#x-1KDn0 1RՀ<T(#M$F 7u6f`XTy}`lxy\f0D?d0`g< E0& hookLLHud&52P :Ѽas`0hM&%$E(-,c9')"!Pxo``b׀-3eBZ胏 IDATw @MZ!N !V9 E`*"f 0@)]@5˒L<;LH0+ QQv{>Q]`ȠYACHI@ .b1 Y"b(9!49Qb L)SSZ.&5^J&hФGa]@`ǿ;|;/r6QqjrxZĸ5ŘsIRX^~q|iJOuu{ARj.Fd l`1F!t2i*5f, xC{xͯ~cs|_7_M&ӫ~o<R^?CNREYZvv?9y'Tsκk_yp8zӧONn_MSFQk]W`ډEYwt4qA?s:]ZMuUgSn4hhW|1^攧l6 ;7ee崪NSŃZ",CO<\>>IYsB ȩݽ{͗Z4^O'γjuvvz\\N}{Uܿ?oWj{k֝[ϾUc}trR6f is~v6K&e yMU.&"EQ4),BJB@d w,Y2UJ *Ţ<'e@f-O8hOF)*Y-W6h fVbYBRU5"w6r09M &Z-v=m=*JzHjtZ[p^ҕz >i"yd5V`Cg'hOL@k0@DĜ4#\DLFdi>NuI^mQJh Sv" !B2ۓ)%[:n-s43PGD 1@DE,8S՜tDt cB4TZ漶a, f1 kED4eX,tb=NC,b MS@E)f2.s >$5$tYU-pd"D!K)c,O\뾠\"KDP-`. "&6 H HڲYfNfHZa,iFu|ZȠEQܘ/`bPg_~j̚ AwGb67UL@4?O!UGbMV3D`e(~* Y裓w!#'} ab6U#DafL”T!DnBL uSSBdFHH.ꔜ QMjARIY2@ BȎc A13j3'R{R!4%PVr"F] Q̽rȾ9בH ,EA(;EYs"Yt{{l1A(梢P!LWǗo&˩*C[[;b&yoonpwwa4n٬~/SJU3 :t1=xCdp486 =q^bm췿Y/R 2vi.Ƹk@~_T9p%e*blrN7o|͍ghkbquy1C:oKWuWDXu(13"V<TIZa/gϗb9w΂UN{Wj, jn\01pDt@(ߒkp_J/.]Xچl&3%DBVvuM2a`b&pCi5-Zlg-tRBr.'k4fX"yfozB-b_~ !N5P#"CWVҷi,H#3aj7u"[˚d>XSw!dSbv/Fj~APE<m=j+|0PVDC`bk_ 6|5C;QTHD?C<[8d% >EiGx1xb Gno%Q,B$D\12u;}qpEE,A F"Qm4T^ןmrEvv`b)Qc&7>0sbfUBQy_Ƣᔴ4 HL Aoru9\QlD dff ob@QOoΦS3dn~fLMim.f.p4ȁ)Ƭ0Uε@Q4Eup0H'PZk7H97*TdS3  @d8L$ `nΖ+LĤ͒hv9s׭Sb P f~. 2k@ ?03cdP^1UBE_\^lo^\.á3)q}d{wՒ^~QM;Q6IYzjs(t/ߜ>bͫ$UY!eiRjP3hn` ϶!F%Vi'7<}'On P,ްe5??Z̥ilqm$f{}xMjb&4bJ6U*eA˺bUg!ujHR#7VU8B, qZNU-LLrS-%!)\j9y$ke5ffUUQu@j'f#v-xNu{ϗw$#`>jFlk-gcBO4Z(db,2eE vmY۝ &Br'` [:|A􀈒"Fa+~4C爹B$Usk-ֶ 4lm]0!@Jں(7`+s ZZ zG ޵ r6wXKi!;A {'c> OlUh@d=@ akGN}B,C ZVHSTZdwONBkS|+KYέ‚ںSď3% Z->{"ZvuYiN`t%%B?+ FR3HB 05Fl+pL^,Z+Pn\_A1P( E`_,2A$3xc<3 \vK\ʹn;E ,D{y" SFT%44hv'Tuj*C{tscwsf#7|NGDeQ`{rZWWٲZ&b knI(AC D -K[+K3 !&&!Qԯ^lR !NRJGGG{gjY7 DÃ7 ::NY^^]^N Gf~uE}j2st$2>;ܽw{ɟSy0y3_߃p{8ҋg_ϗN^ܘΫբBSZY{{{'ǧG(ZMoy{ilUDŞ<{1=8tdzj$'RU:o}vo~Y2Q쬖(q)76[eU}~9{;DZ._|b9rQ~rtNy jؿq#*UY&+P[,nYEUuݔeYhBDvvvYJ rRvR.#&%Dp64p4 7>勧_Nu<8I ƐRZN[@!Z } 40gJ^>Vj}O0Y"$ZDڡLJ(ilSQx}_LJ םFխ3*mdF5÷-17|Ji֢au߶|.k ߵ]c]J-%C;$^H:; L\n-txgi;[*u$/-7xBRɪh>v *d t(] xm"r-[s1Fk\WG@$Kz:!UU*sj!hHYD0%f0Q5D?L)sE$"h E 16:NT("'?ӿm%vSlW"`.B b:l{Ѫꍗqg!}oݺTT+ E)j:S'ahL)we]-Y,޻khj@4IZ_"0?/}(~"֩ibD!~zդb't7ٳe;:\\AC2YV%$`B4) ?n\M&Ebҙfof F@h>Vi&RBTQ1KjD$I2f] 0GGD&(WO0qYr-;֝n3gM) "tgeG~lmn}UUͽ,{c{\-[T2/Vt2HDT׮o~NU*bYU9mmm&͛IQD&:SUS !iz;_)!ƢlR" a.8FJM]l#pTlfmf*c朓Hqt;W֒HHʁS:e酄\CEY) FR UUV%9Ü=.0xĀdM :hЊ"f'LD$F2P@lӿ~ $S@ AiRu{6xRhAL5h|M GMU?&n{qqJ(3jj?;6"j,2 !VfSnsFR-,J5z쨪SxQ  :TM&K {Eˍ)+IkL D&vJ_(24ej O4tLTd ޸DqR, 1et=:-n6EQ7ylGEiEN]h Mp0NO|ow;1:=yf {=DPnox~"%XԚ2,Wl9o"3HA5AJVעB˔U̡@!v˫˃bIL@{17dz~qv\b6M`4ooln;w~l`0n޽]Iw4)zŋ97W/_ fvisSS#`;\#[ޫhPsTWID{7'g<4[_~;:;;_''ERݤrU72_b>%lf3Vo@erXsΦ\"" @w5m66ݿO~}59 {ϯݣ=(g 'oONj~ $ ȣaStRݘ[GMtn{ݰ:Sv,efoիjow>BjB\]pUújRvX&UU唋0CU[,f|1SU R4SXG(˺*T9+Z$RɰD[J3e LD!2 IDATZ4fv~+ln{/!m_RM2)`(A3׽K)R @ǑyeCLl'h*5{fȇ 4LtHkUU'9Wfm]+p̂Oe9j׾u(dao8ɕ{|?lah6Հ1綵C4+E @IE/8e>Ui8 OQC`bWy Ma 1=zW ItH!1_7Ed$0ͯskGZγ SDAU["І"hJNJƾ))jǓ !ɩeEHn5HɓA"bl^ц6L9#RNn(|pF?]g5!涓tMZA40 I@`HIh þwpUUaFN6#Li>Y&]j p:2͒?W6!7[!H]'̭B)K%D@ |68C%@$C ͛#PkVjDC,癰NWsc0A#bTHPɛO@N,;Y|%5EìRj˜ Ҙ)`0x٧ Le,T,Kj J1 II!tctC>dɍRDLlP$* *5DL;A@ n ѐ(.3)" хdheE l\.ժ;qXN1tD !!Nj9$IłaQ&`j9@eXe,;d^ hq4^NŲ8夦LJlzHfɩbjjT\]hRef2;N.Y\Ջ Qbr`E$RjR/_899ι999M95u9~_:~WMkŴ)˜G~pZ=|+)EKo&o[ĜB  fG*SǔKAur\_ Vu4U.t,  bZ,d຾7'G P _6,C Qu00L4t +'tc[eLX`c# ]*m;D88M &@ղ,Uը^VhXdb8R}! Ҵr)*C^>dFf0"F LHY>$ (!ǀ'ӪN1ȲYmLjz=Ǵ;mM:&U+B՟ }ߡAص}ѷf0MMڶRBil6[gS`xytf,RL C[@ +"cƪ}UzyEEM 9RB#gl!InKۮC+j&QJ"LhscÏ>Bԋy ѣFczų~jeXᇻ;[=|BJU<<_d;wo݈ΦBEo|6mn[1g nɹ{m̶Ul{{o{nE:Ovvr>hvߌU:{Tn/./6~?uyY _֕v׮̀(66F/7/MFiV"ZJY6)#1Y.yZɪY\>cM6vb~&hg{,N[]Z:ͶbC'}E9(t]"i m_\ˋ]um#&x,7NlccZYѸﻶ@8t\J]%#`OQ$HOE  "6(6LrB;W!Ń#A W@ӾDȢIPZC BfXvp5w>_+=aCW+,sx{J)W"ˁpVLsf̞1.6"gjx5$2QQ dH[ZQ !Ez L44@`%rpXx5b)(*L$ľN13?A9pt(Ɛ̆M5#`RRb Zt6R1ulJ)]L̘RQ&#R`"dS1+ٴXm^ԘW&DX|hS}Cf|r<0>JYg#AƦ1yźG%*E}+\g*ppx`TuV/w߳G] ,P}m4MJQ)j˦y@%]~-w*/.@ 5 [$C4J1":=Dx{uhZCbϋb(t;=?/" ѻΦzTfӳ/i۶F;[[U]H'O=>=KFڵH]Ut:9<|CNw/zBxǓDo|o_>\4;^;===;;yv`s?lkkkwkg':K鏎.w uի͝ޏG{nw=|яVvvsɦ4{7>V]ǓIךhBUC S-UobH[[ݽZ-o./&[wNMR2$trt.ollZ!zQQ$\.Զd6˯s3OrB9V$3Q&Y/x4Cbt@CBԡ+wLdc.<0k|20,!t ]6,@pRZ Lt:R]!0t{ȅyTEFM3 }%ˮTN8$H rjDB$8$znP5v2KfWCO'ETS(G Щyǐmm=ǥsE}%hyUV3f"ֶh Wq!%"0@z$!cLHC*!*Z9m![7icLpeqZޯ_T:D5\5jd"E*ÄΔ!6`rv`&fD2 P0cS3D7w/R9S"zcbHQdz,%2sQUKw9YTi]8\\Ue'V[5&SBk[t_.4!8ȔRPsxzvZ X9Z n'vHdVoSLCj_ }Wk)#i)" GTHͺNU}b0ܘ:׶g{ (iӠ*"mK)RJ=y)hc6RvTWU]Uh4RS]ץ"-.B`ڬb0miFr1Q"EL}13Z5 ҅@}1=L ā& Lc&ҹX@)Q/uEĶ]ڃ޼w[7nahVӻwۧ1tW_bU߽{ã_|ymoljgϟ}ş?/Ǔz4nd2'd^ڥY.76wv Ommm)GӶg^\_^.W͓ysx>jhL^</h2~۷_xYt"X-xq1H)sF]jWo0Cٛ˛ճׯ?8|1|ͭId/{8lU@7}URFU=jQ3l̶**O|-˕"{1qR)}πbYpVÇU>n>QV3!CE)ST)1z\ 5H#L+@VV ;o?̌stU:>gִi>s2Z$&&0W>ذ(1gQc]߇`j~^dmX{F lfD1dfommvpS|C,4"^Cb0"ͮ y8Lô~#K`}= b5H.#†bu0^vfioP\B.ыA0b%?w Ns(E)PJA:U}h\GJ@H%`Cs 3<@BL|Cf")J!&D0*EKQ;?t#]+%޽ykq9Q=ПY f0" !Dcd i<w]u#F^tH'wH׌E,յȣ}C&ԛnVlX ޸swٌ28 S- "EH23 b^`Plւ6q:iUι(U!@HԔ 4$Y j&kA(gQcd"ebvqS:o" qQH޳bf 5jڗ~4-f@M7X2RmdKL9,b≫*%L!`s%:BFlu/Ώ8!keΝl_*8K#RT UL83b"K1ET ƈUUy+xDHL=t*B(9Xͦm.}O==ox{͛~뽽>7]s|qqRfbZ.D|\<<=կ~}N4: *!"c饮eS _k( h7+Pi*vUdJ0\EU 9m?)}/K*gA$ǟxioJd.Wgg'X%U1>;=d+hs_\.P#Rr8={ms:>>9dBF90Qf U$0怌5}eǭͧ_Y"aD1h͝4/_wϿW0!Vk$@5Ѥ)x$D`L)Fo6C WP0 t fp0x "hjEPΦӭU׭t~_5Td2gҥ}NvʹQ}-+BbjUJ!"JY IDATOgk^LY%wf)@A,z OA#y2pzDL5 S8p@3ʬG2R׵b!4F-%R&Yq4?ZW_g'|},?<~\coO?xsywO7;{{xׯL&ӳӏ M:I󗯾[-e{>?K^{P43U'ǝqPEDIkޚ77&%FQ轻ߩj:h|?ϟvȆd@{{ ?׻۳7' ~3@~t1&Rl>?;=o6G7*AA!Đ[Gv1ܾs{{kQjE?gtKxs8?>yJ2jٽeF@!e✥U~ӟ]gb 9ICy]-Ƶ[}>Z4I@T< lyp";C]3E$Rdq xXyv JWĐefbtY 5x4a }3 ݵA]zo``VVfNG(txW8WD!+ <5R7+"a=4+RtPL|֓*2-)L/.( Aa"hSs!Do-! I)CAkrV}p5/JIc&f=23s@UP-d|*`%󂈢Cj "DDE\B f)D1.Ei('B(T]g`TՉ)S`LyHh`ekJa])F@q]9Jf"(D 1zYsJq DUR4R\ L0`Od $""d:JJ7~j'd| WpiD!ECT!M!A6msoˀ$ƵA4\T`xNONR;{M l}iO5SC2+dC] z:oڴ`)%0OSSm̦v5}vy 7nݾd;;MlcCBU1i\JYVLC!yd+&Mg{[o^jEOgV$RF# yS2iK)mTw*YET{f8HM%1!{ƫe^534j )8`jEĐ;)j"J"339k}8@jol]?TDh՟/Lܶb:MLBXOg3"J1EP1$ ݳ&*lεā4u͓/kOv% VҫH=H)jXrv&dA0*|ÊhL22E+f; L:8ERAu5*%lss3>99^ӓoP~MHݿN7BU}q*rƵhӟw޻vMV_|Yדkhy1ttqqrpxu~z5?F/V޾q'b}PC5X> qGuJʹb4kݝ]\OOOn޼ş~\^G?hyR4~هr_R2cY0i6U\d1߾y\ۮX/faftnܺq~vBRf<_b~Pz=)}U0 UYc6q01WݴT̋*PDѣZXJLt6믊:ѻ Hu`Hn6Ԇ4T8U 4CAF"  :2L&ACIVx\Jfz&aˁsr!YdF@5eD =:ր1 kԥD(+UU_dWr.ki` 9QxB"i}}^ا7bx'_^_v6O_TWK R3Qmu9Nŀŕ\Od:BjۖXC}2lZ6wieA9ajTrFe {~#DF,8ŊxJ"' )X(ŋIL{3!!j*&C v'TUVUlV?4Mf"@47&SCX4ݞMuJ1Е"4͸ޞ3Gj\-Wf]WVJ 8[^>m35JT[R=)%7\my.` {S\8fb#ɾcJ]ncHfD2E UlutrscJYkyhU)EEj=h۞o߾}|t8O?g1+L&)ӽo\r2OM{5.bF:xl-[mRFhogc.W֭Ӎ]akwỏwh<6]~w~-{w7Ofz~vrǿoͯ2EdF&ޣ4fOx~f\QdSMZ7O8??=;;S[.2m_WilgdZuY)TnOŋukM{q.9%Q./h4UMU4Ƙ2BHTt~~1ۦ!BF⅏OSJ)(, 䑱(:6tZ55䀄P Қ@5T'\J^]9<}|b/6J`} *"ۢ'4 ޮDhDkcLDR PLJƓv]so*e4B`UU Ͱ"c 8ROHg-Xk#Y)Ȱ U1}F *TDk֬:R]Ic>R[Y~/ZOKXHP@Hh2<=Po_v!HM C+Du ;pfK pO?FoDia5_ُ?W߻ًg75DBHdBbQ00 $uOް!":a$C!~'wNQ߫Iuk6V SE, 0u}DT9h\eE-=DVl6y4lׇ޼ƍCx|}/p18>>!|믟|чbϧjssvzRYܺ~Wmufr_B7n l\o4&=}?ݏ?b^~stcu/w3wyFӴR6?䳓ܾ6}}z@KLjSdC#wM&lfU$n>_^qWU@h4ӳS@8>:\ӳ?Ã9Lfk7)r;cqNt4ؕ9|}PDkAd6jVM1sDAr]޾`r`)!h~(.=` DY +@c 0F~KIU$bU;Cf JR$Rɇ\4U@0#rFu|I״`q1h܂y10!S? !PP+`fST=@DC "%Wx7e׬p+*C뻾>9ΝgϿS7{ϭgZaj^Z)h*Ӫ`0wH3s#x!P$7M8<|3_^<Ƭ/ !%L)JɌIOͲU)_Y1#l޺}p|ݻ/_zſwC\..؇}4a?!+B >,\N˗/s776%ڵãc4k*gMǺҷ󋳮]=|pc:]V_>~'-ׯDK)%Ur~71jq#f[Mxsk_^ F)eTW6f[Ν;]TQ3ݘ3)"~qfSZ-Tt6qLsJ!1B)֠h`ϕ_'dL½mȰ}d#!ߺND8Yq`om3a""S W\ O'dW]v5p@13 !wk=^_] ȓt pz(o%S:٢s3X z10 @|Y|R0oB`c}cQu5vXJ]xݟc MЁC||3DLT|gdsGڋNs.1aU%R D 1,hiKR @abYz&B^8pKI!U>RJbkɜ#M)(4l)s^TE8G;оCB I B=־5!x]P@рם@0CApHT]b@-`V+D6Q`w)yPL0˳s:5Q'bfuٴ1߽X@n).2Ă]6"2]m"zETf@d |,%Yu<]R>0R:qTUP:]4̈́yѬ (`tB$N! ?lW0P0 RL~H-f)."V̄X`1psbf@1j9+ 5"t5'v`AbةЊxBiaOX\"s`0)&"h(e *+Q`p\U.9r`3!5"eZD@Y5 UU; \>7ǏOZA/*W@AĩMR5bC6vJR!0 S0i/7k:|9.^YjP$H6fK@__fl.9c3=do"PKVw97Ъ,-+3|M۴`FEZ<`P6R_}vWU57Uf D`&Y˕է~+kۛG''(<;;oWn>FwQU޵َ $FIK} }/{].C1BѨݮӴMb~w.//www'wE7gt:&K)`IM_}EJ-m+<'EY]Ebar"Ѹb߶Mh|;/^זŲ{NfՋW_nu}r|Q&ʪv7$G÷^|?ۘX۵}ȱ(ˋywM"jVˍ4gXBSB\~O TDiȜ3u=Jԁ3h{UO}8<] 87dwt`g? LT@LeY ݨ "kj=;. raG/kQM."Ao2Cڜ[gykLX;p%gA(fMT#J"E HV5qj把[J05YơqukѮ^boP5(Һlxps 4 A צz_],ġ-kJ1qW`21 *rEġ(Bd+ DR'_9BeVa&P-L!Z2Sk5O IDAT&g50SL1&E@,9S$}XbKq` r(ELx_$_*2#o5 ' `DO eح1?},ג*3B>Y10:H1bLV nw yX{`Xp5sx,b S4XV洽5mZ.'LFu]c hj4" 51ڶ, NI|1Zs Dh%1qb5BaQpHv" @sٌaklU%U)9JA!F;oZ..I!,2qGeɪ4( WE5"Po4CY$6$MID, AMD 4L#Bz3(3A $L ͛Q]I׎ꇛv]}9#gC88<,+ꈁ)bӞ<˩a>Y$ fk`S䲎~N^EڶMI̠zUL5g2TN,~ELlc~jD]fҬdYLQDPDRW69K<uw;1DIPW_~wE1{7gs8:=:99裏}իg`}UMB1ζɇԶ6-c1ݸq痋<߿&|~ٵ޵}L)!ѯ듓׿q9|rѵ]Gػ~m\G?8=>8NՓժ!h$],Fε/gbyyA7oRw_tcwww_W/7OEir{Ni,l43XR{^VE۾zzskSM$wioN}Z,o߼7qD,ROD^f=*Z\^ajY#- sv]Fк@¡H+ 603c1EGG[Ӣ#ۛ/ T VB`vS+=?\Y?iC׀AUi~3` C~-^!7Ϛ_}iWq8W;X0U[t˻,J䵶ιUAT5Ґ b`ɪ2'* ~lMDL|;땮ɺI49l/OX+wF͗0v龢<"af!Ff41>LEAC{D$ 8*ˢ,UO BcDh,"fBP45K9!uB3M}lǰfE HPE"UQ0+5QSڡCT CAu}vj)@t1"fsN]\?Wu`J.8k J z,lF&PD)80%1W jY\X⒈6U;'BpY! ĈeAEafQS1 up .wr7R@ 92b@ET#v1 B4!V@Ira;!"k>82exڦ7lQm˖'e R DF, !0IddUu#: i&`*&ǧ(L2h b#lPY ),ANr&UY"jQ޲A\f>i4{*㟫ef@ ݶ`4j΄TzV@ (j9g20>~zԪ)q4"@Q t<]-{YUe4p5ذj۶(BX.IQ5ZXd8<]ӬR$)deׯ@@"nlLEzh$){ǂUt "d\϶666櫶[2OB QAY6U2AIY^G'}'ٵk`Ջr>ãW]llnnmnmllds~q7Nc]E}UuGUQGiw.'/_k/$-Cקz<\uB ^yi哦Yx|>?ٷqwoݾUףk7?~R޿Rsjng{ۙV H9ud\|/_vvNN2~髾?DbK(Gʣ9a(zlyrjT7oǣ~{wTt>m|oGoݾ'E5O64-^}*l:6FEZ.Gg흋Y/Ӎk_1 NOUxvW/b>ml~u\r,2되(Y-FE)Xbc6>|}1Fh!M9ø,QÛ1θg: 4rs 0hWk!eXRĂE82u!oIq(  @QD"zfkf<&n  K!C6l&RCEdb6*w2 fBp0]txE Hc {C 1zO^CT" wof "Һ0Ht[#ky`DYؽ C,!%A(Ã`0aJ} ՜S e!fN)Xʙ"@U \XE̻QLwkvYi&DɊEL#C)ICAL˂Esu2jf2b,"4 0 88*bJ)fQ"$I}@CAjBD Osnl8xԪQo^&`C1S`y&@T JyM"DLM uEHH}3 Q5` UGNuxi+"׹0SF\F(D2lt(O_bRO`#aXN^'I ,4ETf֤$%"" !$ 6|031f`**f"B?~lȪCgqͦ ,)h@U9Y2Ng%$ @FEtb@g e#"a.KSЛ9g5{3 CS3F 1EC)#Lrw28]ݜs6d2Y./1X*vrssr` C LLcC(˪P*B,ƫ{$0,KYԔCD ypxtj:v[`<810uSa(l9IߩOSj*yyeJ WF~u]>ꋾjܵd2ol]ZjTVl:~F#l*:Ox9?Y\'0)Ţ$*>>ܿ~s;vʲӓ??{i~~qTe UUd2Aׯ66g;bmURػֻvՈ^=klլQ(bYm0u=ٽ9Vw>_\,e694{o7|ޫWjht2,W˪. `>#@U[`pyӮƓIۥ}g_~e]Ŷ9oE,Gu5\D5EӥYFeq\jՈ1_,[,H (t!XU=LD^D" !D@nfT,dPY$E,*F`{c/>@!#6BS$inZ' !DTS3X?'P ("[r XMzF4]ql2 1T%"whcFʢ E@ifu-Ѽ3 m>F{bYohMӤDN&oms"38O dSI]uYf(3ȅ!{ry{D(#gaB -f ̱Pƒgfo4bTU3@HD(ժG$RZ5~j͍_޿w[fr?;0LYs>WMwtrCbN7vww679?;S'Y,bCa)a8^OERV[9=k4o?|tc~qW_m6\.www_>^hc6mٳgUU˗9OFgB~p|hI,?Lg m_+͍ɸb}W qt<O&gg'GkѸbЃs->9@nۋkTx4}Y߮㣓xϟ}2|2)C8|}r_UFE yk^Z4G/K)iF?Ɂ,Y͊")omm>ff{mmɀzrя_WO-{,׶S5cu)F}f*XkȿdCUE zI٠#[O06x#yiX @Y*CjAEtPt(54c3#lQ-b`1W+̷51O6 ua"wǯ m uMľ5x _C8LCAr}۰EDBt`7B4HdĨ@X?$fd&'B" yŵ ٿ2ec:sS| !0xM_풧jd23L%hf10D2j`B>%_uH"^a\%%EDL}B /ƊL$ @ ,0Ha&3C`Xsjp5m2fZ,+)("8t#(N$'^`7DNHjAYu_1{L5 "'_D *<)I"ZJ2Dy9S蘆y |bT3!uOCHK UW@|~@1V@l DYŘ&`'u$s3 j/4F:ƭٴ*/A?2ʲ cbz"BWB0 e̱( ]*E5)9cz;˾o$ ReAd &H7"dh"s$̠Er Hdl bVKh(f Rbi2}Lx߰DWWѷ!@!51" 91qw&M,  B.םu}SeSߕe19t @d5}/N)Y6ס,)0;!9微*PXՓdkcs>?=99ɒUa˺$d!P@:\^D<ݘt}RV$3[=]2P|~gQ}M\rqyzv5>eykWM~,9?zOƣjX$b,\Wbqqwc=ژ7w~_~w~s1?;?}?]9?o:V'Ox C(?z|zzY,:./^7{[_g rswLs4L/.zb~""}( )]ܧEr(nt듳q=ml~]EHl=x)itrv9dYY-zTWe(h<}r5!M>#l^Y=**ii49,sNR99P"$ݿ~훯6,ڵ 1y91'I Ld0f:{,aΙ ]#kH_A}33UsdA;VUGvZ8AXh8|H !Jb(=畝4z<^BVwxH guu{rשWdQ:IիJHZ( +i+7M<M2-/KȊd}eqV'$9sHJ[71C7.0;;oj`D!3 1L9) %Lc,8}>'>g-ˈzF"Bf$R3òbtj1:js`DW ڔ̄ YPS3c8L9JEJ}Ϊ4hR9#K%#Ơ*L0'|o8{w 0 n# lzl>(-l1R0'(1pxbPt<2 Bj EB/Be/p(!B -~2QS%bDDiQ!LTeDO+#"H^ u#fɆE9u)  ~Σ#B$5LH&2Mhغ9]4d$F- T"- x2)t (e@44򸨮ﻮ-biFLG}׋Z&PY jQ1Kʀ XH@dchEVVa T T2Ԍ 8KiHw7`I=U3 fL`DCo7q` V͚F {203Ivrc"yo{; ĘQU6wrZbusjTPVMJ+$./(ECRCULje=r?WY[*"1P=~*93?7[Ņbks#)U~ޏ} yR:i%"I[Wh=}g?7|u}xtvvzqya@?x`ggGd6|~֍]1uSY!ċεP֣[w_|uƍxӶ]-sY]&Y]7ޣG޻ r {͍tooo0-]-4prt8Gxq#᰹x4^./ˈdZwMYY9em>~G/ݽ?k50MȠ Fu2i;B !84Ԝ1Ec0,>YR6W!Q唐ꔲk uIh.I)!e@d1QJD y8B`@HIDY]c`" )j}9U IRڶ) !jRC vJڶZ8`nr}% `05U"tOhC5[D!FW08kׂR!z3(!>KeADGAtĈ@!YϰB7 z" Y̆el: 荌wmZ!qNu6wc5U@hL`*@HȬ@ PZ~M}VvŲ,8x’匈"F!EG$?3F"Ĭ9" ]Rʽf͹XĔRRa$L19LbQAJ%^4fOD Ġ*"A 냀.thZ+րQ 9X-$1FU!bXH7@)Hd*(޾]s^]"Ɣ:BRSUETSŢ[߻=n\\\bJT9Ʃ)VݨF}NJCzc[m%ĂcwYD3d$&B3 1z3țȡ@Q={pǏ~somWmۑA,d4mf6l2!?'%io"Pղ(cMՐR#"ӧ!ƓfTeYΣ7o]ɓho/n޺X.ӯ~O~ݟgmnoo(FggDzx|<Ǜ;95bz3E7bc\,۷oy޵tO/dC,Br"XNӴeYEQyqq9;w/E?z>?1'_^㓓m฻7mzΫ͍SVUQEYr~7__.mff=MڔiQVӍj4<$_h,g#8QMvLT Dg_?}gT5 Y,"ԧ>UUEd)uu]mY@شMzdN)ollHNiڪqZ 쬛eӜ3x\K6 }1 sj23s::󍎓|k :^RpmV]3o@@Q"{Z[jY bHejMq%"ѰHcgic$ },g 8S$;!X{5Lb"LuEtTSd1 ^ i(pYD!~|_mrv׭)rEq(fF&5DD\FS@1;gCwt REUA`@af, }AWxP64PO3|*IL]اE ]7lq!GMmmo:0f&,J B 1B\w%ZJg2+U]<W9,5)FT Acu,x Tl?&B*TX/ŬZD K"VӪ C^ddnLD9,fJ֥tEg#f V+ΔJ@R#3URH`J(LU*AR59h0 P&Gβ2R'eBPaqYjU#y="`*" c,X UUTU*8l\6o%Mg{\"b\5FATb9g/*8D@(XNjdato޺}t|Ęszj L:־亸\no>ӗ/>?;13b࢈ yF;RovEQ$ќ- _IJ5ޙ//)%>k~lTuZfIk2t:1Eֿ>|U&}fMΑxpvv';u]KJ;@~z "t뻷ߪPE99=\-?/w7>iX}wZ._xI׿#;>>pXTۻ{qɍL$,0: 嬈dfƈC,:@ۚq2BI D4b9g%]g 3T?0Cp "C:V=5H!+h)op矃!NM4 4 @rdB~æ@paǓӚXy_`#;VB«rDR,B `ARK5 i)DsuPo8Ud(wј Ϡzd,#` BUKW{O"T`,IB60fRrF bU%g9!sUUzIDH@LՄXD"@`&SpEQUA4fS E 9e[+B$H)mC"A`&"߾ϟ|wɋx nCġP}.òQ RP HIJ5[]TC;o/sT *{]R5 )$C*BJzKb3rNRd2_w]gٽִ)g{ѣ'/^z^,.L÷:vqyjN,hs}4˦Y&@i4d< pr5EFf MTUzv*$zh6S! =ԧ!hh]ʚ2dՋӳ9mu]g)%5V㺪UE*uM^wR+^nKbChDfjX,ڔzLgoϺԬ֫I]1`|C`RU1 ˷Om4+:+2bI$pI@!8n{{jдpPňۛn&'9-$ղ)vIVt{ͺ9/??}y*Ǐ׍<~dooL&doW $53 M{ͮ:wIB-j{ɤm;tXG7_<^.>嫓 M6T495y`09<ٷOBVѰqGl^- $(.糜x{痯z0fWmL7Mmco_6&i PI:<:楟ʰz]AEu;8Q3 ׿rB IWy @$ jna@},Iȹk9 aX 1U PMޑ2CD~Aρ# } p?3#(bxWy ٞRܿe!ڻ|Sdu]-ޑH<=ފέ0wnt,z;3S ; jLq{#(VUѓ%ʘXac=OәY'_|M3"YD<%s&z0(?#2gܲ\ԢY\ Tr!U "8'ȘfAB E :&$W)%t"#UZb9gQUDr$Uv))D*BVUWhUW>>/kyOh WJP~Ԑ9*oF$U gP 3`1t7*hJ>:b0$HC zu=z1֒d\ur L!t1hDsLT "99b..$B= yZ%MC9Uj֋(T֊)@V#A!\;r"9aB젮1AZYbj&ВcFHP<3Uդ|;QԵM^`U;FK!]1pb8={boŲAXUDADj\4Ū]4EdhK "9 3k{h8\ήĬOϿk[S[;ۋղN$B!vNu]Wn0LS)gUlHU=8>>:{v2j6񫯿Z7Gb>/+ ԇG7o8<}777ڮ.ChHp8WO=-fsjFp0ZVWM۵vv>[z:qN1 ۷o}]?W^s&bf7ld9=9}u2ԫ&_\Ǔ >}4kCU}_ꇟ g]j~gO*HgU5u~i\ez5WmkL|ٴ묰}o:ѭ53C|5ߎ@MRJ Ιm_fe n{}= 07zH("Zg=LN7O=f@ *ش@E[KY.]+  P4VBHL̢%z9/Q=YPd 0"04(M2)"Tet&O55u!Y$z;({ hopC31*u]u>U7Mo&/I}$a3gsdT @F0} EDպq:kq hU"u94j;RݼCUChV}&f՛6<ȸ#!Ͼ]ҔDDCLPGF*]DT5yE꺬RUusH) ! | 1 CTm?xȟ}OZvm&F"Ñ^ 9! FAU!3dX`bB#0&8\y(HDПW As}cU.YTg3kT\j= p{?Ї RWIbd ˟+ )!"Ł] )Ҡ")2eLa2UZM*g5uM lAEAHrQʢ̪sV$6]ՔrVU+:7C@XE`&V3cIO^`9jbuHR@ ϠSrр H9t)`ԅ>3 @ā@aZǻ;;[ Zh_U!JvՐFL~J@is~Gv$U,3e1uiJm#:5*0u&KΙ{@CU߼}<_ΛveqttE۶hn>O7a<ih4M]ubyYU\B.4Ӕ)jVA V50%捍 ?Wu'񷏷o٭}XMK9`}~$'OlllfI|ˡB'OMΓ`1nmoۊpYO_AӮo9;o;Y,j8|oBYfozbqxtrKk3L2 mm:9yUȼ9VQ!iի$j 3gox$Pud21æYUegg4x {sz_wPb_^>(u'YK8b1@`*4w"PwsAa?3.e9ua*kRL@D^`P?J?m+g/sw/uhjǭ\#InMZ#s03Cö˪sXDGZՃ%#u4qT@Rw4lVD89' !I~甭| SU1D1xm3%Ѧ(pu"q}]c tYg}=1p F 7"NN c`慹23bG ءl0e5%"%q9'#\< (;u"`?QUU糫͝unO']J[u]QvzI{?4~˳קkR>x0*ѣ`ŋ,жmNO?F bvq]>y7g3z&z1ܿ1&xÏwoܬ_`4^̗,/g]of>hzrrrtXzu:ޞɓ>d4\^(ein<vi^^6x4niVlsc{8/6w0>~mH=#_gKUQDߩcb 1H ?lb/%%z.z3@0H"f>`%֙4;[G.~[翮G}< #33'2B3Lτ>Hy-z'"T@ n@b^܇h& ߊ\2\~\!{ο1Qyek߫:4Lwd/P"ַYoqXҹeGJ,yveA&b߆ÆPQόSj|?CD"uL&G\[*c~R>̀1 11aPՔ:>$"z#ŕ,Ɓlj ,KV_dā3D%kxl5be@ZbC(0 HYD6 &YD\*`RjlzRۦUXH&YX{偨RU1>P21* }|QAшāX(i @] Es@LyƼ j0X<̋#""#"gFj[t-vmj^YgLh:MIRr&bQ0%J۶ͺ(B1iM+)32B.{9FbD 54]KH)KiѴE(2K͔őj %TR jU*:<~gKHLIFpA]diMА@4DHeA.bi&H HD] g13`2lN3bE&BE40ɠUdbVQ3+!*hC#k`ԥ EWr:1@6 !N2S)Oƅ0E fNJY֣z^jܥdH"Y`XᨪúkWU`0&ÉHV,;_,(6:$R @D&$ûw߼1 ;[o̗oNONׁw/^ G? Lw9>:ubiэӔںDo_=:{i5 ۻ{|Uۮ.Kju^[;p0/]ݻ7YhZ=5t_oߞ^.f>XWC5oV+Dz͍ÃϞjRZ-Nxopk{G$?oжu"h{0ry踮hqu)M]-`0$F>{&߾O[]m+Hgq`$R1j q5{/0ȡlj zoD1Lh "![ P^_\pVKaAʿHD߱=1{ԃF}0r@ MՈ]+&dHodfD3~nra9Bir(]6USGzH ׋Ӣ4B¿: @f65Qprِ0:e!5HL25yS/Σ6EPS)j%WW$IMbRɈΉ ;&}P׮L̀̄ā s5LK"۴X̫VMGaWKiPdRViUkC n11[SM.郐B & $ udsݬ$hۤx70"10 S,m c$Fi3vM d@b@M"6t@2)xX\RQ5JĮ@QC0 Ԭ Rv(5SUTUUArʑ3&B`ӫ Acp^Q23x4joA$3fd'35`n;?ۂjdFrNDI$4m #?l8T m7PjN@fqQ0_1SP2|nmʋe:G Ń㽅L@LɄ)(X`N9}//Rá̬i[/ޚNM- KB)w2Vp0뚈xyNވZn|Q՜:7q 諄փɯz:LE0\ #ԟKoĔQ*9ㇳ} $Pz B< B0F6`V n*zKrlΥIy TRNI:hWMb93FFdFQw1& R$֤T 10%,80v9"GC.W+Bbx-C`g} 9#Q 2eGq B67w"QmfKAwINu? FǀjE!!TL.#Q-:U72 Duj@@ \넿X,hBdhgo^QR(Ơ]e" YG!"!; bh02)rZ#TQL*ՠ"$C ]4\ f0ܜJΑCY֔*). b/`}!:X,QU'9`53!eF`+5 cLMm|Hم"@;jUCDT`@\qZ,hVTє$Mӊd55@"c~"qŇVh`c2+cL|B5#W̑ĬPˋo<.6IUC֦켁J&UqBnVU766u9nݬm]^^\7#ֱ#U]DN&u{mp4]\em볋r\,*Is<%g0TMޛ_r=Z0ɛ`Vu5o>yrQˣbn'/OU3gvwvX)hw`8޹1ok@KId{z/[}h4Ro.667릹w^]vv7iV/ 񫯿Y-ףGU۴բY_ίV?v]#~vqv>_̮./˺!D nlnӋ`nwۮ:l8fE )lLAE;q+m 6omlB5ɄCMV7^<6%!6Zfcx8 (d }TWXIw)%h.`VAB`7fk8̔rm4;I2@hLP՞eg$;Jp=ۧ+zF_OmzJ|@(#]\^<%PTHOoC&T@fFD+ry\T@Lef&sJHb1Vf-~W.Q oJt)^-o^N2UB&},k#!m0[F#PĤ ä".*S\E@"*Y22ѮD!2q:IЌ ƈɮe,^S꺔iݶ!T!8IU .9 .Y("N&cuZ Coj5"fbBg}?o(0[ GGLP#͝mֳ7.qIA|۬E^Ǹ) LFD dFYSv@٥+FD`H""dX4%֢Ľ]Q+J9(Batu"&O. `" Wj0SCnlM"i&)5kb"2m *!|ʒH{PwVM 5gMj"-&%6S)r *f3x0,^`9U!//a<b;;jƃQ:Rh`Ti$ Ha8Ʉ4'R5 dMMLEOIB_Nd*!xxc2;q0q 4$sv1/MjR25쏂!0s87**Xg*D`"SG"sJLnVcSjERvVU1urU-]K*v#j'IQ$H]ڶchXt]ܘgHL$<#(gB4=4 ʦ1ڳ30hf<߻w˓A]lmh<}7|]jӧ?{wo1W~zDfKP.x0 !&.孝˫ͻ?s!0W_|(jvyX.wn߹awg{sci׳{bn ; 0dt 9Hefb!7hgϊIyjaJ@xqek \RabfC)gmDD\SUQbî9gt5@K kCԉv)qxX t&wh"HqXfKbuPu"M#cD2q(GR˄!pTF 1jKEMHDsw?"iv$'Zl<BT Hivc2@ ܛBpUIwjM+JET7Y(!@ZIxQDFU (0#H+ &-`.$]DDSQF4*&h"v 0?L}drNmv<~0V.lr`L,.AB$`b^ 0U@02YE̲Ar`$͈bR`XlkAT< a8dE0nVAlw{kWEIi4Gi2lSWTQ Beu?i3Fd)uj  s7Vl 睵Q,DbM?֜r7 ;(C!ܥ3Y&dݺ˩@M׉(re!t`CG IDAT 1r1 x767lݵMeUIKISG@9";hc4 ݺuų`lu=tW #PU4B՜C!pqŋh6|9[GLJ7G7~./z;ovݜ/?~SFt<O^8YGRVM3Ϟ={w|{xqqE=ţkW^կ~ٓ7nݺw||{ks]/.//UΙ@ ߌFf̒KIz~qy{txxxyv(.V 0hTuIN ޿fWGoݽyf4 r R{*2٘^^.'>\VUbѮi1l-1ݽ YWx5m9ǣr 9bUArQbU%B)%_#W"z|t<_.,= s ,Dd xrq5/ކ Xp2 zI6z`kkkZ7&zry鲇VA^ԝx[0[V{Wwܾ{h4Gîk^~=rpݴL..λt:nmmlnnpۗ_~z/ǧ/Oۦx; GGǷ<}ݶI ?_7qU1gOJX-TH@߾}e=pgk}zƝ ޞe{||ͺ}nleiCn߹I h\6w;wͮ.C888w]z4/1\YK$z84(M{-K~6PUUUBus?+o8%T8~V R3@h}"329 ZU + uYK  W JA"T,Ɍqݥo׃y@Ӿ7OT-``YͻW JL8C߮{CSP|ͻ$;DYYKU$."YJ&^Α񇰇#y43 {m]kVnEĽ><`ՙ2_čߪDNS'0g?]Fv\34*2->U"xr\swgp+3XV0Rg&|;)ScBR2~-(S&0ɹ*fS.EB4 ̴`418p}߫!Õ)ђU KB!i}k@(Z!HH%I`Ɩ`fhb`R^4.\fkkFF9IXTc-FFhя!juJj_@ `&K0<$Ѭ̒dSC,YTo 0}RȜ~ssSZ &$%Yʷ0>E&r|pK%"Xac}{?in{@xضp0[̽9[M4F0tBKHM69&2fG10iqQP5[dbd Y)<ƀb ڶ\Lcr0&RQ6V IOub40` A&*"؝;3CƵ\")!64<0,(R\#`۱?eQ l0jb\_xzh}uPm4Z &ŕ@ MΏsy4ha ?jR)H.ɓMd(j8]b<ۓȮ-fy*9EK $ v f Tr6-* ^ )8hCb$Z!US"bj6 8Npec}#r|̀2az3X_SW~ե/l{gW'G`ccm8:zu?ٛ/Oߟ]|ߝ|_ˋ"9yY *O8?ã|v}3f_~9_\]]W^}N>ɵt*|wfr㇏OǓgϟNnƋá4'Ysw3y죳ӳs`1ֶvv(}7 (*C+]Jd: <4àO?yow"uGD~ D[X 7LUT9$IȰҲ- 䂠(m9U dAuzk@rjȈ,~O#C#\] >nnu;4\8H1Pׅ#krұ;D򹲨֢o !"4Z']0*ˢU$ LhLIi%eqNAb0P}  y7s밼P~cZrKo0DYi{c 12JqJD@)R y.(!r 2ӔD霚"&H  B`0("iMݏΈ}EfTP o- Jf\]Rʾc=#Q(5s@>0߹ "< Ǖg2!/xalU\TPBTE܍YPszImP=k+]~["*{JdLUnz".dx:##r2J^5S``V!jU.B|R@tMP:Z M#Rtþ"\k"$dD jE b"$0qmeHxwuJAĈ8AsZLfvR_\]^ 0b1G"%S@,9uJ\1w;\r;9QDUlOQnm4\ I^9 ;k 3A=-2֍M~>=2-9SQ2si: J6ES4M161R>,[,R"` *@䢛@fTPZ_ꫯÇΝMpa0lo!yIH9X-L Y] +9-ta\}VXmëo^UEBYj,a)H"B݈g^rx 3%J2'}gc`HDc1,î~H@e$EFg)ut)3&@;S[cǾ:t.pUrz06{9V6\Ы,nSEWTpDP_Bn߶yW·UU8Jf@`97 )s)<èX\,i,uDe߉^F[@uu7򏖼Rc1]PFlcP3q\-4M R_y΅  r5p9 R&B]Fj` yx1Ût9R ?z< abs 1 !\Y&DM#{V_oH`)S1" ZjܫJ. *$2".~W;B8 Z##qNP%L.r;!!Q[a0+jbfﱸ+Ld1[X *NI-Ȱ K} 5ɪ\ \lzwlmmH# W~em5 VGb=I]P ݽ~>#6_F62w}'_:F#Q3$YsTnO~DBPH1Y̬hAS&@_8Tib@^ 2XgXKmBJ #(^\'Djh>b1z?qH!AԀ( "% # sib5L)h`!bc8\L'kV dţ{;{b&&&0q@UHf ȵ06D,5QM)ESt~%DQUE+sCuh@rxQU"kmA$R\)J.f$K)D5֬AU3$$T0G41yWwvLE?~ GG't6)~Ѷm趷6?ziQ3=;;cf>?;swo^q-vvCh6776vvQl`{slc}}7!AKOf]׷m3NOg !ל/F1ɓ' ˫h哏>В <BEmYG+AwW^_O훽ӳݵk+___1~hd且ٝ;x'? Blmmg'tyY_ WWVGLa0F+v~zVV%^]Y̦Ӊ-\1ʹ}e-!{f"Fc MXSw[!eEkĀy0hŲeU2Q)%'CDfV%"CZGbv0D4H h~)[_ =>.AXWhe-K9VKDzUbxK#֮d'ILКGWK < _a)D|"u#jHbkc*Ya/Ovڽ3jr'ˢ3#;IU[܃raaĦ麅s8:sy1$,j_<_o~Cj5e/Ж@JL\п.RDDY5|I-C<[ wAq7zê.j~9Jb_Њfb]jYUL޹E ]=Gƚhm5uGrdFj#9V7vإ~1~6Ob @Jj 2\rHC{{;0D~]Ib"6M̹GђRUʘ)$U=pbڌVf}`5$044 "]gRD;Gդx>5ݣ&C T"S1@˗ =5PT| !uH¾D:xYP=k!&PV61 w77VGMQD `MV#tO,G_u}sa,R2" qV Zl$T)Tzq\ZDYrGhE$I'?ŌĴOMT}MujJL \ me-*R; }C|ׯ^VC5+wip0F'<} (42Z!岾>x9"/66zG?</{뫫xC"ދgto޼|ỷttpe>X_MYfx꺛g16>p|Xr7YJ[tg"x՟gj_ݽ%3V'߾N)gG>Ev2Z}vdq0%uZ46OuE&܌/~xwwmw*iZ3mbCdxppUf)#*"7v ԜCm# 7AO0h5VfVn^> QU[s/~LRƘn\Ef$s1"} V`ė#mUuZ ;D<̈CՕBavUm-K>_Q1žG.3Y}?vs.TREE8s&IDDJ y,ɷOxPW~z PUR*T ;\K4ie)jK:<3 .S8\Џ 6 Mĩ$4&"HYD@JV7/$malC(D3U钊B>z"10 OKBD"s5 $ETdЄvДRRCBehc n \s{!i4 #a˙A84KdPmfL%+RzD̂Y~Y0d`_oTsrНF 8Zd՞շI4f#տAA YQ2eP Mc=!:#&$bࠪp6A،!MuiRW%@`RH ׷s,[V qt;.2f IDAT}(6mӄ[P͓ !D?pƆJ -p1l_'lP(2's.Z!2E4fDD%Kv],*€|`<@z XB*bH̞B fZ FRD!CǦSmD#tz>L53p0jÀi}}sbH]/*ā`.ErΈ/35P5'oJ)E@v㔒iQE456ݢihT901I)"$A0`3M5NfQK@ ɬ뺞?.uس&!^lomϦӔzbW@{(O^}F^|O˳B^\_]?~,oN)_'.OO__[[ܜ}H%唧!nmm}i._}3o +޹{όnn&:F%p8~wgum}<6&7tv}q,_/wyq'g}wwU0rssXgK S0vskig/6ONN7Ͼw~q駟 vv}ד5ӟOG+squbM&7aޗK4'Y(05s.E*ډf D;( ڮ>ܧبw3o̰@Dl udP4 ޹0͵͵ 6 ;?P[>1kX >\RUu (TY T=o2`5Xn!f\Њ'H~}氵X,.Ā>cj=t0h.fF`jD}BP5P dc36 RX%(:gaD,fJ?^_GUnhYˡm,X241hlÖ4e-"FZrYrVD%bn% DT"i˼ώA1dfD fƹUE#sY);Mf߈ڲM?\_~q HSvv_f̽ƈö\te`0XIL$S(V` MdM eSż'Ю[OFkoq"J]1ϧ7fk#kہ䫳/ߟz{$bA;|_~7}DGB kpuy>lp0Etvf))yqˢ%E- 0pm}}szw}_ٟ]]\>{Uׯ^V?S|09=zz6\Wַ^|h:7l:%?)BG{wK! G?I3\9z&w)aDm]]ˋxs1bUSX:*d `ڜ槷vHnΈog 1)Sk6m܂SX<Wn\}z\M~Qe{? *hG_Ԗ);:`fZ5?\+s.T;& +nOe v1C J=d{+}h00S@2s".%UAH& )"I63&4.8Ug?2qR)At|X.Ir%RrqpM_m Kq"ۿ`; H)H} !ISiQ`9&,He3X`BĜ,J!A2S@QRGinB̤5AVM ~ ׿&фL!bS)ir@R&өͧc!ZFͧ#Q zOÁMXa1yc"&*)K)KTEqjVky RwG%-fk<'ϰ**qRЏ{1 ̙HAсz`_aAݟHn$D6b?OKOEpDŞ={ŇmPzdLD&$fdR(ff4Q qضRJ.c\ΒKA4l<͌㧤O'!J1T5A`.M}I ӐLTE "($h -2GBEث-TUE,yy6(fj L3+-@H*J !7W#8 02b`v˭$E3K)!ǯPQsOMn><ũ2)]F,Dsr,F!ޖK}ꓹ@DYbvǟ 77N޽#4F4N!<z{5"t!,^= bMSqK "jxTu`E%:uwyW_?>{tow{{s+?|ňpi~1988Ϧ+hf!6x}uDVOC6/ft:ŶUյU)f|}quonn=}ӧfJ z"zq9>EJa8lvvmmϿλg^?p?8/N8nѫ|>{f7s pfܴm£G>xxx,9xe4z|gxpc݂dUmp0ϟ=;:u 3C?%]}`m~t~~}!w.) cIUs%Vı fBhY #b)',bkT%@Z߄YK.p[bBf HpZ`Q6 ǮK(8^TL1@ZUݾ UB!Dcf44=m4ɮ\bH9w]gf>Jnn&"&/($.E_LrS Bl -zRJE9 0R `T7Wg_|`g{s>^җcgkkեH1 Pg'?y杘+WRB朊%g)u Q!6DDLU,IfBX̧m^]]!/寞>}zs3 w޽{㫫ݝݻwElkkf:l#3ݻ&/~/G+{w'he[SoEh2Rwwvl޹Ү\^]+޽7ߜ?~؄v:EY>퓬o';{޽!9u??%-NOWwLӟJ$yf'o^>[]жK ֈn&D=<<̹?|8擴WWWW v>~ի׋E4@a{gz4n{}ylQJ>y+&r.r@iQI_s3+ Yn^ZnH['B-AĮ뚶U1L*DA}1f9'xVnG(3UQ$v # GCGQQ-V[@]UߩjUSJQEQ"RLUU+u*Ub*Zcr*EjxK]>y?M1UP-W,^VTJQ5"ID61䟥?@jc-jGϼ 5ɥ)S\֒eT3SU-> ̼Q>16S(LH檸wiUM-( 1cNYܺ*"!(u]S1"hԥ\DУ3>@%2/R95Mhpɯ E"r.BX`hU=)>[>h2 ہw^@1}_ A @ifJ@D&hXYţt;u-R @%{49ݬ@+p 9 hf΍[(Ѡfă,#GEA20XcPl]R*R-"8=;w]7rKJ.ePV;o߼Jί/! Q%)pdQhקv;S'"Iri(BHLJ᪠VM'МN\w/dׯ_Mo&t"fzSTfi;}{ؼ43MSJ!iqaiytws)Ml//ޝӓSDT)n~ttxyyٴqضf:>Gl^xJo&㫣zq~Ivg0mwܴ+/y_7fwﭭm +?яUe6܌oNNV|pãw5@˲ñ if4hqI]ߥy{xJyxP޹7Y__';)gO|6Oڵ ^?|8G]/Mhrsu3NT%zۛu3ⓇBXKaDE|CcX8NRK[|WW] DU L.oK\O}i3ܪ17@mBźi.i_bJrp7խUU\u,s"}P`Eaeb2cuUݡ"`ZrIUt&"(bnP>V?UsNTUuUq@ij/ԏXzCOTM|pRn o1KĴ(wR)2MjADCb}U@ٻ,%h8E>fUE&F)HR4FKN}Er.h` 4&Z;`ESM%#sR Emq"R,` b@5S~ɀ;5*ƕ8jALx'37vqZ8K"34@M "*G0s͟iԓ) TwOsG=[~UbT c D~%yil)0ӺMc*Tɕe8oyd6մd43,p~",Jˀ+_1 "ܹ/8u.0lM-N㷚q&4RRV㛳c1! /_*#g=dRRz,榨"{K)D0SbׯS߽~:LSʞS @զ}1ono@\dN1RlP3& b1*}E YS( L Eȥ^F$Qİ5z\7W4BPMÁ#tjfաmD8`И DCXMYqu E~J.2$[#R`@i1Gf8<|]hLԷ lrz>մyŽED⫗rw}?qt"9W%"Z>&RU%G)S*k;WR/|KSdzzrt1'󳋯>">n_,@u|E1[}ވݽp{{߼L޽}BHEɻ?WƓ)Bhpm{U-%^\\tՕ''<(bRd4_Xh.㋛)NAch7v470GϞ~hm15a8Ϟ=މAkͣ-9;̻^UI%UZRQZX²amc9i?t4f jaYXH$h- BIUz*j}-ẅoȼyT^XX2_D|1uWGGǘS8rh}FȎ;eٹ m;g߾WB?p]KW*ՙٹ#Ori`lƗ6S;nLa1;;{Bݹ8HmR0T?9N@ q~ Zs uBu 5dErDAreLM?8::$h O! yd 9H Q¢>JFkfh#""0 ]G'@Y/}@/ 2&0tcf "&":KoL? IDAT/"@LD@ uWKS.x&VP2aj͗H&գ Iι2qEH ! R#"u^X p]P8:s(k:pyn D)d|Tod!mhj-CBa諵Gx>Oe ڬ S곡v$*1uTPO*Tw<B hvl9i*h*rVԕ`3䜫ۙpqj:QbeR1 C5cq}SLIPR+/>woڰ3f/-U""FTRh^e+d"Lz&:wTF:qo_xp>_*BE|[Y'L.~%\/2k:1!HS;xIɠLED?`Gw},&?ўt6N\"H&ߩ?1Q Ҷ2$df=Gb}Q$I…0bdz&}=8NL$'a d%AfXH&hOYS]ZɉU^&Rp b l|T 1q< f<&RQ1&e@&KdDUkOu13%[jWiO$Q)3j^v.8ecIY.ϮC$$BI+H[ON <r~u UeQgĬ}CQ~pri%;GgpQzK5Zd<xӝV.@`(#qm( ;̔88,5 AK/p9a8Db0 >ps3Dڃ8.gY~?"[7g]%DG1d cVqj6 \yd¨#Ne]NbYguVZye>} 6D! QH62p"cƁ|`\lAT-? "0e\[$[tVRd.9i"K5Tw/#fdp51) \2(  ă8Td:Kk4HAt1 K7~ 3ND NO/L~吴6)($4)TCdqAa&)|'TW1rd6ۭPLW_GGlEgAn #1L<7 +Dj"N|9WZ)*&hF'@s[P31f{IPI0vu"SsWwI+-]&IQ^jQ [fgcozeJڱCzO_2#2ד6/~t M$Ӑw=$UMO#uj還:5ǽfbdyD4=.le1_ZzT^טG0#ڭvLdzGrOqD+J,)&AP$s0r޴l@0}qV.:hd.Q}T*\CJv/N[`\sOŎ w} RJGJ8qO @w ro/z$H6O~'A SD  0QN%xd&YH\cgFf|'0%pb!G"eb׍kz &dw<>@ 1z:](ZتX"B4炠|dhHvL *e|M@CU;h$R'OaL%FPT k@P*OD2J/p~ 8 d^Q $7oE!' B\) Jb"FToFCS(MfIa@d0:7N˿IAIG-:}S&GwE\xXT=ptkrMl ܮCBtθc?ֺa :5q2yYI]2qnJD4vKf l+.Ϧ5s\O~)/)!?vBπ_]S1 H7d^T,nw>޲yˤWƄ٨!EfWn%3(BǔZVT2\1ueĊ XO.7B`⇾21q""?0|^ZvS?DR QWիu~tƖf[4Z0@@CVEVp2s/1R _,pf~trYCuu_ P<ژ Y$b! B@<誏#05͏$Qӵ)1 F9̵9s!"'!DTfp9 ej90UFȀ3` a+LPHK0&db՚WtaZ u:κѸyI(ro|tSaj;{U FKaA"cz^X d 0eE*1j(8"/4.]snB٦"Ddcc}E$$&J%Ynz zL (KeR\alhjq#IO xO#)itk*qkfF1gR C>g$8"jۙXT:Hwe] rGM㽠ڠdIS !qUQy46O&im+WZy"uw!/A!aD' ޓ$:ADVq]9r˕J]iѝ|爨nδ}d8@Rt=D2xϟ*>I1s(DP|a4[omz@]lcÈ1bţ&D\)h<^ F (hJe $Bm"NKNJn"DmB݅H8)͕4"tNaw/%)Xq 0djssJUHF'ƽ,D[WuYQ 6fOD#@C@33a2(QrʹE-IcqAt\+baETmPB)8a@DK@X bݿFE#%fhuhJcTչ#wdDΨBMΎ__ 73'+wOlѩ젟%I*jJũN7n&Fwf*UIjd]TtF?hBjz缞v6YHt#,YVH*ye|!:39n$725K4)7c G'+}:3yj7Yqϒ$r"00؃I$N/9+@fA@ 3|:~M.$u 9G`ˇS0OgdqvEڏ|?ӉeF?q^T R4gc,տ:HZuJ!w]*DYW(P;Bبו-339WH7[64椐+ $L tIhVyDP<A8+m-3>׮ T\`p٥-}> 1"xIB$?:؈{{HMb>G!w/=9ɗ8ِYrW+.’ `j/Ca|:uJYHopP=Vʥܰp+yVse.vj(gAhHfA6ʾS)Va@+U r.WrCJjՀ1*z&"LNN<8>5_ ܙ|immIq GJV{H6;d4V?:pFbN[nbWSnL xadU\zYUzJTMtz;٤rQȒ 4v7_G̺g.;F'[_rM2q~a2|0X3 )ymIKR89_!XJ)nd=}1uwev]\.~0;7K3"LX2!yAWRfqVhy (:ԌU7}? mXlnn )UW$M }{̭?zx:ېAT%6^,m]McEb5 cݣWdYLq(LJeްYDmg'9_%h ;"tnt q_>w?AI'Su]1o itjC+a!…J% UYyZjjunn$_kA'@Wst2#ɒёQre>3:!АMUG;\KN[B\*@_u!$z';/` 8 gPHy\j캖-9Y)2$J .]')B; :)j-zwt질K ')뺡l!BDR8i&AūRbc&]Ȭ)c"ȧRؚZL:Fkwj2K]Bg)65IZC'9sGYv 9|Ɗxe˹%Uv2b[hSOopɿlevqEsvd w WpԧXXtw9€at*)z# 0c=%]D!;6; ?cȴq @g jF$1N'g+D |ɐ۫ DYB2~ru&y#ƀSk%Ķ  KLYn%}4xжК SNUP58)nq O tj c\i.moP(GMpqLm?_^}wBTOZ ́ٙ52󰰰X زf6\1ƈhrjj^[[֖̓ܲem|ȑ(Pv-!//z311W~mabу}N̮]X&__F`aaaaaaaa]˳ѯO[?j eBF7?s'UJ ;H$,_gaaqaL{~r4EPrS%zsw o-,,޺%~;_lWF>vw&-,,N:thffFܼy*c¯U?? |?c_ Jyuxްt=裏Ꟈ}s(cǎ{o,[װߗ;﮻Z+ _ynW~a䱰X]q6poV[!fW^YPl'|#$d>bfV7W8ѣGꫦNW+zcbLW}#{g !Z]^}$ !'>n-~gˬb~:zCf3ַ0:2p]?ڻ [?kJ݇~ho~~?;ȀkK[ZNNH!sSyC??[v_z_<̹A^2_BwyWկ~y饗P5LXiUSɉq󶞳 Dt]'Ŷ6j79:/ Tv[.qcҋ~敻/8-F`7ܾurdbA8\_1EXkX򲋷W+;ݿ9xx?&zbz.7CG&O|[.q֎s7_zmRɁ>\r·??ΰ kK"W;|t򡇟l7s3pڮ n_wW V+?7#Zѩsnv]5#SGhބݶ3CG&A8ƑcC4>VO.Ͽԉjt[ :bj:@C 8a`|0L@ %-R&eK"NI$%U, 8p|d~6mZuk/WWSXVg*l /GGF8_}˙zs6z* sjZ.ErsFO=~n589ᥢwbzsP9zرFslt0֘DBȉ78xgOzѝXvR32~;οM- 3+v]b@1??G?jq+$Awom U,z;!Z}tdpdx0Suv+/'?f_ "NA s:\+矻OKF-)$΄\ѽkɍ|Yza(nfצѥʩCU*S׍jKxC޲/>gvܑCOk_-y̎Ma纞!@hw~@HPugȘjDc+vy:R>ۦgjO>=?x }%ϵB%î"\Qe_{{7l;kӏ~Ǟ~ax[^r׿/yo;[8%-r}`uWP-~ TfVYT ݂əg6m#kT*???O8.{Z=_}oʴZJAغukoO>(眥Ν;H^4<=3ܯ"B\~fZ?o}[OW C?8<62tE1,ػwo?/v rݫ{艟?՚O~9g) .\?643[/ OyLj聇(ﳟ'oٳzk|>|XZXXX,K[ʁ|R֕s;UoY.17mGy/T׽5/[rXhWb7qWEX>VZTxhk,,v,b_g?w屰Xzꩧo _ynzKboe4bhhhffOkDaE5xo:|K_^YXT .ͦiu W]u՟y]gUjiqQMUrZ;%6lذaB_YXz8w caaoՖbQ+Vʵzmaa'>z"4mxj˘E^iaŽ]0 ZPwWe}y'o]|#g' P®ZXX"VbrAmׯ='睺!ǷƵoxv vGkmOϏVKMGMﰫkWK[ڋE'v (bXe_곰X;X(7oJut2n NwAbX -2sCjU_VAhIB~XHX;Pwy |*Baꦥ͋Le~6~Xͦ[iaaaaa^Հ^ +@177~FWE&''sرckhN?H)O8RXXXXX-I)W])% ~<)gggcvvvMɬ~f穩~b>{Wf3=Z600`TK ­Y +juh6z=~Ʃ5%sVWOܳgO?E)|AE9CS.wf#bq fkYgaaaacBZ*z)#Gֈa>|X@Ca2%Ә͒X,._09XE?Rah[>q1v㔕 ihfʲzR*IkO}&&&7/J4} E5)ݒkKFvάXE?Po+S%)'q~ӂ[S_{GnӤJSfu|^BߒC5 RAV[ϔ'rvO??Ï?x,~_>3vء&3@ꑽyWHhaaaaaaE֕G<:^y0?166}mÆ ;NI_ 2XXXXXXX,7V'C&:H4رcwqG|&&&L`ll+_ҍeTڗԱv4 4*+|_\E?potPK,,,,,,XOkLI ^}ᇿ/aдO~[ne~[kbX]Fq #/ /脇S%?m߾]<\o竵 В? :}TL)!=w}OiƆjP0=t[;$bqݮj333 q3IDATx|ET 1!@ޤW]A ((UP?7*((H JB\}7%[ۛμ3cA\A?2PB@e&WBxޘoˬϝH " " "         b) b) b) bБ!)))Ӣ!9M.UIh4O<^ȝ8yl8G^G\p(]6_-p,=@e7 . ]zW߽Įwp1Q\+Cw1\]]3- Nֻk"{c$wjHBxk'ͻiDlfSlMmL1K A8q/8!-d? Nx%)֎/e[tZ2gˑkO0;h~^U[\o%`j} D*o>|o^qĨ;FrZ`G~l9Қ)tcFOL]?ۣ9Fr,ɲ*۫9u[;Y;ll=h9'gkXo` Yӎ\UK[yߏvoOIm?kZSIF`5nM%.,˻FZ ϗ-q~ ԤS-%JeG3+614 1Eyz@FiL[KR!>Axq=2Etg9kLrF},M؇?Y`ξW e(#w0)҂ΰv-l-<9:-6Mbf\]6u I}xe6}Fkhd!CsXf s|NKb8C 5s,5Fn:AgHdi_ppLrv+< N(XKޅ+8}ް Fk8{#}]AT%7 |.1{zVXsjΐS=Tզ<&cθ;Ж #(( ` XӶ1ve/QiTȆSZV l Y+Iބ }.k,fdK嵐LYSX`imɵm(hlv;'Wr&wBZq H Svt:3CsiۍSp5޾YrҢ=N"`,;!V!~Ӱ8Khƅr% tdҴQt,¹9c%t$[đngCH{MYSE+jebX;mJXeN++"jӂa *8;9R\ _S&!7 gH"q4ho^?-V_o%?Nu%t) .=Mh;.fab'3a %d3Ch58=ZZn jIɜKDH &5}L赉ܹ~W͆suD=Mn:|'׫'7{lwLLVw 2> X>VSb 7- Nֻk"{c$wjHBxk'ͻiDlfS,#$jOx65F-,]##ִ͸݇3Osv=kG}M~hj\$r BSC,;-)rG B%H's}4ê-0q'Ry}~ jg>ҹ;Q'6Y2W!0V:a95ϪUtwa_QpwX5]bۤ7S6^՝?=}"~;r%_[r=k8)-IO]a%Vޠ'jÆ2'6ӑbpfe"kombGیqMΚGVfMݡV;ഏ8.fׂ~2g2|;T)`lgkٜ]|\K ɊO=HHr/I+XWo0: >X;LA|Rъ{v5N~:s;?3~}l/V>-., &tr3Ve!_Փi߲/oioOb Nnf0 dRINk nFf]^|Ucbg:wzVwF"b$Bk Nkuhu:c3MJ&%s.!l\/ke [N)YS:-nvaio( 2n3oE, hC43F.E©l Ϥ ׹p2ʛ;O1u;wUzt xgs+[6Җv` ~11fͪjr>1 '7VOl9uA--pv27'9|߯Ȼ3Ej2zX^g^7L\ X> _A 9ҭtiwGQ:=) :!mz("߉%$oqٻ+$N]{L )KF\x*:u0kҶ*]ފ"\ky3_ 򢀳#0ճ*˚Qm B.0؍>XG[L^+JA|:{ɭەw#}??Nřkږ/-ϲj@f2cܐO(KrNLs. lzۆ=\9Vi[jмquɕ:͜ -T,͕ m],1u j/gfX0rdƿ۞G2u[.tOԡ \zR9R,'ݔ3w5Q$̪wI]1BfDZCۿW4ܽLd@T鵜Bu[=],R׋ ^.]?os=$wgh{⟬aN Ͱ-ܚIVީRfpNTAg8}VѻQlQ%.=iۧ.,2g Z[se-Zݺs@Ĭ-%wPwwR|f6jD xݸ7Qaj1| 9=BaYҹMԆypo1Q%OY{i{+?q'd Lwss{EңMMEgaTWKnc,Ͱʜl.NARARARARARARARAAAAAAgБ!)))Ӣ!9M.UIh4dWMsܼo6#V#r F.8DclW38i)1]A{Nlc bhe?.k}A)zW6]dolDN Prm$׹y7l bX0W4u066dΩ4 :AI>~se H's}4ê-0>fUu_>|o^qL\W(YlR?/M?~|uv泡Q8t]tH&.7 1ij7vzrN-1365BdOF.x% 怭l÷ԧ$&Zӌ\ޗJ׿q HcRr.ypik ^n~k̥e~ ßXZ[rme []pvܹɝV\6f:R4*LM\Xͥo7Nms׸{*gQ#ԭ5?ac/#[ZbinO:;MU&ú?5S?~QM4E(A?S"oƿ^&A>f쌅_Ec}Qi}`wp.VoY\G|. 4/²/r( !jvfUXqDvu A}lʪGML8TR VIzNg&_mR2)wgxyxaZ*L%Dy܋T˪1 Z|*XTk+ wt[%CpmF"mb1bnan/_ѿi)Zɝ$" ̜JqGzR9R,'ݔ3w5Q$i4$`VLҌ0{ Z}@c{0]\N`ݡtl,)ĆVD,3&w~\L6(SPu'SR}5l3z f4%'s MwEcM>*6Es9T mԥv]FQ\5=AKsL[ߕuVmh7u%foQǂ2f檮7ݭ5sM7=>;ke ?I+ݓKr ^644TG +Vm33 *EsǤ9Yaaes`_ dž         b) b) b) b) b)GґB._SHI?4)%6V^H@q),Z"e, ~5#A^xg p5nZНwŻkEƶIԐ <,׆+Nywӈ̦p-2 /OH7HTS&fJxVC}',[8 FiA)xn^ '6O#Z;Q}PVրI[,co6~cbo َ̙Y ڴSL/j{)tȩ߰= v(w︖X+Ki]Ϗqŧr 8Y?&$Q&XƳ7vJl=h9'gkcSPda<Ua׹x }Jboc!tq9q YqkZL>yN ڙ2ɻi<([ s-sv3:7̣dի+nK>[Qa*vl^'oNjЅICњPnSL[r2.e>0{goɚiiU2<`D0?$v\Hܽ{܋堍܊77l9`B ˍSKjiAgwS!դt.f n$#Ue/K<-ڶ18ǩ+ٱq=\ SbUj7nKϱKؼӆĽT]הj,q.E*5iت+Cm` ;|}gcGoؼ6gXc|-Wjuѡg<0K}-Ldi_ppLrv+< NtfWKޅN(^Ɂ;gr?օp|GMkIE)K7љ{Pa !@~^ =)u˺<~n 3 5XZ`imɵm(hlv;'Wr&wBZq Hh0e7Aׯs=c :4vݘ: ]5/GGO]KX3N!,VݹGDkpcj /TßīrSoc۸װ>埘d#XiXEZS;K4/vg' VVV [0+v9ͦY֑|%5$ĥb ;^5?h%w팎§ M\ckhS9#Z *-={h]p[CbJJr!֢ZZ( :ÿڤdR25ôTJhFsytyҵK͙{J|1̟KœW(FӪ4x /s:ԑŽڬ|W+ӸǓX$?IJv{A6M+S;KWE h[ XM`&O΅W E!$O ~;*Avqߔu=q3rUa{Hhk 9v`Ǝe,+Ife=T土<yj\oѪ[ƾqnΔiBOt ە֐bVrc ³us*tYyVѵsE[+&C5$>EC6@blQIޯ?ǝgR8u1 -ez|ɤSס/l>=Ol`t]*Yڝ ΝJӳAǾU*ӈćsf<+ާv}mפFadp9n^UӖ4TJA/e։]J\O2V8cqvqw,\Ӷ}i}Us2A|BU_ҭ#iT^ 7Qek S(Slz09vfQԪZ֌m]_sv*6V/֍&)U5*bv4*pM jmͫg#?qBU3fXodPz̩2]3%*FjA8/t5gqLҌ[nY N}7}Cl ryPhFGNf;<,Nw?,Ɩt ?9Psib>ZsRB5 KE2O4zWt0bSK\4{:A ҶO] Y8`eU4HsLE];[w|n nJ*ޢZ! YoyJC ,-BCCnnnϹHz,2CTV `^\ xyyI1idKArXJ(X X X X X `<&WExXXH Rw痫"-_ 1RӴ!1${RIYK$g) X p1Y7zՊ 3Bْ+?#[f;b̟Yܲ=3&RKt{ͱv)i·C&ӎJZ Xt=<pv tɃB =\h[;r]Ki-!_f΍ǝL*!o샵A=ӒHH.@% {v,[כV/>˜kCKO 78ˈx-in޼QhMWc4s.AE8*SKXj/SW?ͧ;A!>;WjkF鿬->'f_z${?Ak5)B-C-M늼F.ΜZXbeia17(񽕕e{ ®Y)^*0d ¯faR} 6G<_RzrLﴚC*>rc9Ue= PR-_1nΧs# } wC]I_F~2Frҽ$_x򓡑/Eh4% sіPT-X]LlؖO6xXL$[HS|s7ߎʯP Wg9r9Ø,<W4;NYLJjQ䒒%rm2&-]RGO/KK|)\}{~ {M#3Zdݲ"o޼DEEp=‚ø{m퉳E4^"klE2$2f^duXb-qrJwCo'F743H%VJr`ffƈ#pttd֭x%J|򤦦vxxx_'m\~=( y܁QZӦR_&V66壛{P[L +z`d-ofglz@uvٸ˧ݝJ*)rʿ"uf|sN{s7[%_}}QΝklَ})XW1X 3ɉS>R%J0 f qo}bP>3*qVB0e&OǏ7:v _9H." ]B9r="z0ӿ'UE5Z0sڴiư?;T?lLzA3T=ݻwu[_Z׮]Yr14;8pߙ.]Z <)7/;ASU^_7SaE*oR jbٲeJTB?9hTb.Ufj8q℈ ޓO9P%w$*2f}V?3[gBBjӦMY`CUCTCWDuKAFSCMp5̙3SuJ8X{ǮkԈ@f-۷}ԢT˽FPN*bRL(>~8_7fr~ɓ''KiEW -ݎa/@kx hml4>:Xߡs{:ҚYQ[LYr*!{7[ s]i^l}x!_.H8 -+Be$FʑdrvJ *VOj9PyOj W"կ_?(oSzuc~ګW-"X*CCe(V+3ʡ\][;ǘp/AsEaBl ש7;cZ(ބ6sO matbI's'2kǖ5"bbƩrr(QA6"ѹog;ыBi,s@."Gi`rPjgLsVZd}]t^N`Qc[ԨQ#'9yףb<bwI"?AO%syӷo&nDEo `0,jzxiNoLFq: Ȍv(;E KLaݜqRR6_J@BձFɮ}ԏִF̋i(#[_PrQHmc5S뿪7몮O| ;vwZg}P]Rrp*o5-9Wjt@sҪ$z.;aBiv0^ /p6o= (Aoַ5_oYL]{#s0[pcJ7&ր- bctW~[3>=U>xs*>g<̔EL"f E*4A=֭kl7ASu]9e+ڵ3WYsIU+JNWsX1ʭq h>oc_͜3ØQΦ{L{_~²R|iGꕵ,U/[$~ҋ2A^tA?h9{Nt燾}̇]Ɨ ݉㇙ 1N0#&'ٺEݕ5St;˄omB}eR- {IŲ|ؔo8TWu+U$Q[LL#U(g|)QTdF-sX\cO`Nlj8*ᾴs3I,=iwm2#XʠVY4+mdqWɭw )Z,?HwK[¼Eb“-C۞si$9nWYѥ 72iQrQGaC-KyY1^L) U.ꫭ2d1IG28eTUjJ/ }j]];UݠS*E(;9X,1?0̛3'}sOaWIf]NH+RwKs]ϲV Fu'%^9>X $?ssQh5<қI|I\n6?tHYA%d6/r-sup&߉3ls_ZT8EV\i>)OcVByƍǺe2QM2"(YQ~#4:o5{vD ҠAc?sUJ'R[S#OLܨxlK7Q9jgEdo[sܼeIϧ1m^ϼI4}%Km64Я ^v*С6)zl a`K~:c6g#_|ԇ?䊝y&q <ߥ;lO x&WjѮ^V!!G;kQLyjd"F'WU;{l@O5u+V06 ڴicϊӺ̟QU / +W6z;wo+l9.)=)`#ƅnj'Bf5҈ ^.Y$hqp h]Xdzi?np91Z-2j̈́ϲ̹os0y.waŠ(Z~ԓ͒Qp`*nѡCU,GR%(再`AqW|hzEz^z=CԐ_ UeR+T &'V /*~Wupj~q߿mHuvv~ϨB5B՟_%+@LUUV]jVuYMl aװj݌c~el E`Bm j:SmPنtMTuAaͧlºxwV+mSzMiyw5BagSb[.|4GS< 4J+.|R*g/3g C£kȬ~HJ(M!jV9yQ_iRYL?F__?'0RX껛7obPV br)/^mҹL*.Z ȑ#BP6Uʬ[*cdyr.]4}o.U>OW@oٲu~[J nOr-pʁb)9W,MFҞ.P%Lh?>9oR>c1x#c)}'0K g|`Y04#"f.Unf[y9>#jg̖`LJTo{DQ:sŌ;öħTFvMcE~$h E?$ Ҵ8i$df]>tOquOq +l_s80(}ߏt-*Chӓy$ң^7*}y\KةSk <>G73EU뀲0m\ǜnwʛVU kuho/>$M :]w"W\Q_afam.VBD,XF6]Wi-.&I'.'4o3wgxpfV34ZP#0ӷ&^U2Ry2&ɛɩ>^닳;3J64aS{ekT~"TPulLVL[ik(r,R{ܻHΔIq1(MHh-BtӔZ/N=RT):~4Y)`s1 D޿֧SzPq]xwu^МtVѡ1FFFYɄ/z Y'H0X+Y ?k ;㿍5jy-]v9 tQ +CG<ǚ-8k:xe%xȋQV=e=֩憾J44l?oБ# {kh1r:O2,EDrĉ臹ezÚxJZ%P¼jb/ؿ!Cpq<<<>e:qwwYf}d[a0>QDp{)-mӨ =K0mW&\2Nh0[դƐ})r::9ZccDlB-ɓ'; ?V(ײ!#oTNNN4j(+z#l%VMЯ_? ? zfhhHڵ|2uz&&P";*!Z:ۇ6[+3-,(Yn@&6G]ށ2 ՘.6|Se|g>_ {ڥ܊&/_ru?Woxf.- dClA_I0Q*)(3}(: }.7+ބ]!ŋtR ͣG4?XL 1| D O|qL^wo3¸sjZc8dX:Ig-%y7()fpx6z2)/KvJEFZiiن"]=44%;v ggg a.Xa6kwڵXժU㫯B IPryJG*'>>ƍku??{{{\\\W2z(*UVݻkիW5J!믿%KUM֏ø wloIjCFX;o ]=ZpxFiC1X*'Q39é+֝fM\[ .^yZ)OOK[OrPo o KihO+uGkZ wâH]pWt޽oߞ#F0xѲӦMӌ)ck vڥ5WY6Y*ӧOkf{sέ^ƭ>BVU E5)֣G )Pԩ˗/߭L<)$M\ +DTnέu5loFDDDNu c̘1Ν;5uSdV?fvҤIU,֭[9pk]6&avxhO&MnݺCSqt3) )f*ĵ\yDq Y}Mt}7)a16V(MtY 5qoO!sN βthNokI# t6}KcJA/xr|5K8 AҦL^ҌvpedO0e*UzdGnTҔs_qQQ߅>+MQxϧb͛7"J+WZr?~111uBʱITB7'ǔtD]}i߽FrV: +27Y*MPV5y"˕"d eҘfwZyڅ_v~J'ۗ 6zݪ؇3shaCØ71qzfXZXbjf&^E;%]͟A?.-؝Yڀ'cz6Vih_bl\yTʢOʄzw\!lzS(I*↾wʹ+p5c8+ʕ+_F!ve8 }%4JQ!EE.Pػwj3-Z5~Ҧ8MQH~V<|P}}צlٲbe|~У\ٸhji*Pҟ9z8߇US7o%$Y2n:Znio6fwQ38%WgdƏNE>BxW۷5dx21ێ;^BH.|>2DqT롫U&~2w]: J2sLTƠO6%/$K I,%$$$$YJHHH|Hxk6ӧHOm ,%$$$>Ve鰦*Sz"/T,%$$$$YJHHHHd)!!!!RBBB3%K-صփZС0 t5aKK W<&e83ǚ|us^ ?*jU]!/`ČsH#y8IY{U411'2:a+h5e6G5Ad$'rNɆ%tm՚JCmU3A\q*6rYNuB #Z+sp~nV/EVtdi+N+!,?QAnea'K E,?Pi7F"mD(_`:B\FRFM !XnG%"aEKӳgOM8Ч ➏s(v>%vă=؜Vf0"#E矏qٛ⾭]=)}VQ(!X.mFFz$kKKQ.F94d8~*ie@|*bÃyȴD2B(@aԸ 9XD|5鯹>as Ckۅ9:2C+ɱ,U$W= B* +8SAй07A>֋r +7 W: grriH ([@;mʲ5XrsST$α!앗Ѩ--pGҰ㌪R{~K,zfS׋Xznh2Ff)d.t$} dH-Mz. 72:e'Eߩ~$-\GO:xn8qHJTzJ{B %ps]_{ u{qfz &x)?m`u":5m L0A]bE&N/4OG/6SIfYDo:Ls?2읱1"EF3Խ4F6']bZXmG{Q;?g|Љ96=zы6m|9 ͵(Q'xWnUĶ$MؾD8 Thm­n. >'&Ztj¥~"Ԣ]KfYDz܉9Gi(,lN_0 Rg]Ηy>wr]9G!~aw/2440<":u`ʙtMĄ5k3KDGr eB(Qfu20'Px;eV\s~å8<:S= /#Æ^$tx]%9=кM#h_!/EpNK/cz)ҮV1#}„*5qrKR7.+F"=.} SXb[}ۻü]0QV~N4έb{BAX>(TlWn|pŅjB}*M(MU%."t?KYzM뙵H!fQm}CXfMpoq6Iy f{8::NTjw"ĆBYe)ۋ154όae\>OSu2fNZ55DVx~=)sZӪ~KoJo˴]ڎCqţ2XuAAإ ^cEs^<;_IFmC>Xꌽ?.HNe0{B?dhUAN\rͳ"4SQQp,u3I -Bfl%pۂ̡Yauai%SB=Q21\~fXrV1u&$_*sY -v?K .Ը5jx3e{ӦMΝ;ӱcǿXzy}W I@^ ,թ0|+}*wig5Yضݕ!K-k{wV4Ȟeic`,)SH.@@׺sj^!.E2a ҡ<ը_t%a1l$*Mm$H31|Hȇ-.2g~W_mput3{H%% :7ՠ87.%l_kpSA;`HmH]љϕy;~~~}5ŋLeKN0]Vߍ&66V"/BIEiS\g^$00+\9M?wb'B4t|mmU"35 e ]` M68g^uSU6i$j`li u k;Ҥ\o))s!";=/NZ]ZqsseMO"Kyr֌KA^b[G \IE(/ e;7fU7!łE.z"LkyS}ؾ \K٣DgTNYȿ-7--QHZjӧɟ?&#..===V^8C"/X86ƌ4qL3q!"Lt6k1J+#m -NT́_~ï$f6AGKyIKoJalsm M01l.CP  .P3$XMAƆ$ժ@<>)e^V0Fؔ ,/i 㑆Du3UP+ o,]rN~vʙ .iPBƊvy"^@~eܻ%ڽ(OnHD#7ne\[o͛3w\vpp0_} s\ɟ:u*UT[_(چh")[+kkkM*Pg$TDžTWqIdƌ(DŽ#YafY[r6.?@цeRI05@xco|ht2 /FeP'XG=p"9ײ}'fQ*5I`$TPG3] Wl )WC P+PƋBL5{=kscwoeQ?AEYk,ꔐyWP5E(S~^8pfLJ oڴ)?.[4(lfmϤ>mLp_f3ǐq۸;L2->WheD?5?#^ldfjz8˗|d+rh{'~Aʢjrxje>=r'D)<+2_ YRTn;A9eE XW4Rb{<$ʨ'`_dᎳ@XIv' 9BDA뢥㮑6+Wɓ'\pAj*(U]-,VNolL-z_æNv6qJ/7JE)<{S/͞oݪzB+"|=[VoߑU ӝKoxcפ/5tvgAfҫ}BMh[bn*Й]c6Fl7IJ$ʿ-lSZVP^)VVV;DfyJAk'%>~DDD`ggA*K \o޼!I#/$K I,%$$$$YJHHHHҡRU"2R^ ,%$$$$YJHHHHd)!!!!!RBBBBgMj^^Xϊc$fE.> d;lțT=?a^|O4?vM0 ļ|ܻyӇval&Y1f/9 }s0N+Q}P'wnfc%px* z.Z*s;[䂰O/?uv(oAp0,W^X`qCKDLZqU*ϟIO*_?yIbv!(m>D`0P+fC|ۧ][fĨP[ƌ\q*6rYN _{hm#McE%9``$Kf>XTdV8e{gezW#2婓g?&Or({NQA2^'1i,2BOջ m BYi@lZ#<OD(fc@V=~dlDb4x >Պ+V{bouJtfTk-gPukvGMCNCR DA\x >mca_NKr.jy1;w|? O[杺͙ 6p%<@70jPg'p1gXq$y~e;;&  b?<|/]˹r(\߈_Rw*f{n:kN{g_`c&e!K#`mWc9EIeGD%  Т*SbW:. 㨚INgQSSj(las Ckۅ9:2C+}>[ ooo?B)aB;KbwK\]gĕEOzF>+~敡`M֖Q^ 2|=\)NɋI8J iRY]U~ߠy -s)e{ǾH#>*kP١)\ꌁB5֜r SpRF%:!`%\ :!OߠΉ sR8I..ԁAT1Źnί腭m_Vbt Nq%2tϒn^R %Y]UɹeCt:Y7Uߑ* 8z5Mڔ{?hW.d M}J{յ-{\8)KQvfp_aQMZԟ@r);~ ]#i LIم]K,-'I0Q*TfH@#/: yAl&hݙ_+S ,Ll[a}6Æ^$tx]%9=кM#h_!/zY^zKߔvI&ԀAK36PE]6o\wȑװeV[mh~Z=#E#v1,X 䑬6[i/@ w[RPPڡT,3R)5qsh_|Q۹ՙjtˉ\7dȁǨ+s.R|uBfᇘХ?+%aTւ49:=vN<✩)$icq[k݁S5/4d<>Cyί 9s_qqэJI]1Q :|eU^t+pf2;'8:5ҫ̨I}ot;dmr$.ᎴC,mփNN8ʻn\|M}%;`_b`˔<ўZm͊-=Y⛈څh0(>sEg|4狖Yx1 gh\!!!̝;m۶ahh}J@af#q2T.Al8XkɒڞaӬT/XBW-*/~wV}i,IE?!T4贜5ƌ} qF3$FaF%pJh^>B۩%Mm Hy3Fxl %1+ڸ0\<ɉh|Yt<]@Iݾe۱ÍYћ,H":u [[ۏ+ϣEx_6mAe;3cSY9l0(oVttG3p<~mYj,I7Wmc9 2Pfr(&w:GhR=smg]"L%NN=˳ww0FaKo ǗBs-vӽxv}>@vG(Acٿ}AaACy-%0 CrN !!_R WD` f=ARn9K7,ެ=Hv(o!6[QJW3bl_>29y6,D7eAoV}=-\;?͍!&.^r ںe%e#=N5Kg[EhaCY2g@\z܊wS(,l mו|0z6^bYTG-SZ_K<4]qTl]3%7osq*f֘Z`zAq ϝE\Զ"=djI2%j/ 'QPS?xTœ'OO ZB-iw;N$O ,%$$$$YJHHHHd)!!!!RBBBB$K I,%$$$$YJHHHHd)!!!!RBBBBu>K<x`*9ewȻ-_GJɝ |I\\SRZ5e6GÔWHN 3?+> Kf3yN<$?<%gx0N+Q WaW!}Y|7u*b}һ˃&9/= {Ixt}^| KWIo#,, 777qtt8 ږ^ gIQ1Pa&gzx fW#]Ski'@*$zHIT\^XAzcHFh(Tws6RqG|,NJX[u">М Fas Ckۅ#S14Џ,u1dXN,݊o+Fߩ9}wp2㓵40{NfitZ)tY52L>wwwΜ9GUR7GrEnQpՌq}|ɨ"j:c 3MCjҋF}Y,n 'V\G / qB^y{)~$ ;Ψ)w2"8ڳ QvJ/Kg'iYjz4=L7#ݿ+8jptg,ڟGTެ_|FX2']bZXmG{Q5Nsqw:1Ǧ[/zil>ZX(<+O*bDZ'CsM=w28DOSUTñ$DzάR0DzvRXN\gl޼ȑ#?[/)6Rk8Y>s\ˊeI멢C‰Bd=&< o%V͊OzDM`m7lEHwOgU`[4;D:հ^zKߔvI&AK^C't NMaeiz[;hOCGɵX3*ƑLhH%ly\gg96ܢutIFԩSiР} ¶,|-&,s|w]tcz+^h?y8.Ŝ56q9-EG_ UR]pçU9ޖi<0Gue`VK*L?<檽xvZm>!3}籮{iYjZcg4x76w=[mhޔlCq0[Q2{ČՕ9}OFҕtd_Grr2d̙||-w -R'pfB~0ۄϏ29Tk]:[3sѠW3T,%{9xSc ԁl[Խ;inrY.+j6 պNYjNM!IES,]=8yY$v!Zs~]J|d[,Аj=[*bP߅ƙ =nɝ=(Fƥ-@K>s QĦ;.FS9#o@!Jgggz>y-lr-cSP Pdh-iTmT~.X/Rww(FL9yt `QFXfpAgQ'w<(?}pS3]juSULGm)j*6@jQ,4 2rS"\ *ǭf=YDץYdzɝ /ݗVh]l*/ b/UosKx翀 p-?U^ǁߦE# acj<*4̳Nfø^Mv8P{͗qCS$͊'pxH5,~Yٗ;<Ȏ 09Ylоi\xF?5vb>a5aaI$7QGqnkz ʋ޽GJiO3 YqY3WguŒnmij]sS|.eUg#eE\n{φ\pac 붎ٕMQ`3i[tnAJb}=j?ƭKi(/ Q&o8K ;oz &s%%o&'^':vɐVT_+̪ȉB׾$&dNR\'65-;钗sHͩM`4=?U4 /ptcj}+IpssGGǏΠm(I1Pa&gzx fW#]Sk!QIK UINKUY'Iʒl,8u=my&CRj\ʸuԐg<{AiabiYA Yk;XgC:ܐYdFYɐ0L1Fzgi$ϾH\}֯%wx<- wFYf4.zѵr=%Q[g鸻s?`w7d9η-r۬>fF>$jF8C ~dTtzi5 gEVEqÿQEQ 6&}GwmIr:-vW6]o)CZZ z{&tHS/v?T<)v/AتDZ4,ҁ{c>.~t GogCSYks9%72 ɑ<}Cz.?h)bWWlEKɖ=Y&b,=< W|km+e[{l[Ջ`/̗g g.߀.7o;rȏzJDDM`5,9sc%e%5 ' 𐃬[I4+>D;#RGLbc+k 'RMI!Z&#.I3MQqmkꍸRB8ijU4O, ֤|{1XWp肃>E(WMJL10|.SNA#¶,|-&,s|w]tcz+^h?y8.Ŝ5+32/e%pgh.AU,(O7TW7Eq9n(? u~ʴlܕ:DT%~@қ?Ŭ! 즧\wiqtʡ7["z-EmC#_yAAT|E^"E(Ԍw37d̙3?x{J I/9=N?#^)4\r"u"Lg$A>ZXke=Fv)h' ~BBE ]K^׉KL$QIwX?6s|HȪ"O',}t1 oR*gj`۽dgSWǝb\!Pٙ^z}b^ 潖W Pdh-iTmT~.X/RwwS0'v>[Ca~xfQIqkV?ʲYJ~SYg\)e.~oO¨SZ:χ.YH ,֭[?~㫼_/M \рK8ֿ\ƣfEF214#d{V`xV|KY돓w_BHHs~TuW&ntoһ>mo90M~\M~;w3Q8u|E_s[:3e:@Wխ+ps,;K-xZo,x|NHRe}h,Yo\}WI9 ̕欝圥5nuxD~1IwԁՅy:2 )@6hSuF, b}Qf*2B`uqs8:2̢,t47S 5~KssZl.a치?h~LlhpFn'KpE7n,K؆L}Oi nR~`#pDŽwTR_k.F40jRE^/ L{w xAl9 {S((Nvި5$jb1\[QB8[PW+|:2ظD1GT d$![_4,,,L" %~ͅ)FQQQHeoQ)@ ?@ , Ȓ@ , Ȓ@ , Ȓ@ , @dI D@dI D@dI D b-l<C2j{Ci1 g s{wit ]?z#ap5忼> vc#>>y JEz}K'|8d9*|3|/v􆟵5]ɎXo hcra߰˶.#NЃCx =ٳu=HOB u(I10-pm>V٢+T .SǃTb4*b*[},rSao/COPW*wRjsp·(O@|B6W!4>k^x˛{822WgYV4y?g7o"00/&Sp'$ /~Ǽ7gW0hzh ŴcC}sX =aW: CF8 *pKN \[?2˥H{rQ~_?DzPl8XN+QlS]lpjѣ u"\0 y|re T>by?w膥7p;"~{JmDq'k:Mɓ'hܸ1> ܥ"l x8'U q4{5?_cBM>L% ZɨPW:c l(0 ky!qb<%Q~-TõHdT1Q\c?z.? y#9틭W"w3eBQ`MP["GK1[UB(T5Hz&Kn\l(&U19@w=SLAVp)899+H!>e ~6O~xiУz{C#74™ QC~Go&`8~S2B.As̞z,^a,l!>v?A˕ D52;Ežq3I(] {llnBvp%t[l"dzc[иh+7(~nGCL; ܋54eYio|;6ZZ8~< Te6t`*b#<"4 D< C̮h:^W84 d9\9cᵏZ^3쎥7X334?pE%'0Mʒ{.4i"9rd)wƽX_V"< qfk gRXeGsp@o"fÆX.N_&#NaHLIqq`a<ni:#A׭;GD!%"Ӱ}X3skm_Wö<v:Q[^>d4i֭^z77 18f)N竇ʅ¨02kH88Vӡ!1OiahسNl-QN1!ñb5sIz, FK ƻF³HiUPwC N_ƮxQ5gd7lEuz\YWBbᩝ@,Ӎ$ B~*}um`xz4~{a_8Z80 dc1~;Jf'>l쑇xGZZӧWļ(Wt%#P1)V2MkLp|(`k亴g8d,ΉGի0F\ji#[0CFj(㙊wbܟzdX!gO]Y@Rx >7GٗpOSNc\)0~Hd)D¤_`MxvF_`z 3K t& >MQ/^=z= 0byc!{[Q/#qf,5Ϥ p KxQ3e&߉Ċi Tq}uƬG1wBbj"b;Apk~fK UY~Z㘂led5bZqbFŋ,=ƮspxnGu;#,8&]t DvSF."|?>] 䲖ᆪ"o4k#fV.VA&%Ls3Z.Pw4q@k+Hxx6JI~ Uwײ9,lm*R;R㢐|:EY& EZn`ElOq!tFŀV?{TCncw8bz.? 3@L=3nǑ!n^ SߛR6l둅o#z>VCx̙'O&K (7?(-]].ΜsD?`{Op| R^Jn^FVwY5'|RNu< ? RLD詃ؿ"ޗP`}n5v=)Wg8_m-wd{E \Y-p6C6^ƑelT0r|w$VVזg'I, Qʼn'{'88?&Ôfy"b d4`lXz y+'Bào3Bbڕww7IQR'D'^QZ9^HK,n,n].cK<ɘx|N>ūTGY=C$K1= _7!>.@ v~E=jbI q@@KO? Ғ{};wh/EQ.K oxilJYvus.3Q/?k߆0p5>#1#QJ X,-ʡ.6 _M? 5~&~+qۥ%&o Qon*uᜅWtŏ]U9u*z ɲp%!(Vu3nwoC4.[Ñn.p뻎9W?|BR  ﮀ'#Q  >qi&PMis@ Dǁ@ , Ȓ@ , Ȓ@ , Ȓ@ , @dI D@dI D@dI r|B),YttEi~1yDgo [jqD6[JR_D#!]o8VM NqT_y~rDmxXH3SŠ:bK۝g~\_4 j`$,1'UCϴUUhbQIfp~h5e%"tE?aY+m4{MB'r!L[ ϋխV"n޼Lԕrs,!Y M_0rw 銭S_ xH52ݨ)SUV8uRD 6dh7<; 5p_j&6Ψ o쌞b*1c:=hYS"9B~p; <Ům:T^ Hw۽/k.]Bݱe"˚@dnpxXK((O;¿(<<| A :loQ7hob9n zё1>!&MGIB |7yl9}mY`8+/߻C!.E(ZQ:qҪDh(h8y doHcD\ /]%b6ZAFqu Aىң0b՜!*:s^e"987///H(_DŋG=2, 88녹\xUY"*J]1Hu}]˃\+Eҋ#;at;ϟk׮ѣT"/$e4$¨,Gµf>p-qkd*mwQti*k@ =œ9spIP,8CQ24猅[R0wW$}Bh 8ݿF:~6 kd wvt)'Nˋ*@d!~MӾV=6(G׽%^qŇbGp>}[gH J Yc'b܀(J(ǯcgA/lFh1-=ᓏ[MW|@7\DeXADJ D;@ @Y%@ Y%@ Y%@ |xx%)=<M@ $ÓC $+(}@dI $YIs =jiHINBRb O?Bhh8\D,R%">,:N=k":u,EXRoFYaGbahu V%J *6velA3Y>1g+Qngi+[ UA}Fh;N^ۏ]:,؀3{CqvY H;z,_GHjRa0qs%8HDDDi k7GD"6@O_q/ ~;6!n:/ߗqX{;􂕑?BD G{_P2 9:Yemp1Wd~#JX_xT;e,)v~SvľZ/KaIn\HӔ/Q=@bCZo *=D.yi/}uF阈KǦ?^qoh?&!Gb-q2(1'~s7_g% ZɨPǑp2 dSuG)U>ޡPPrΟ' HÿAW(c'Ej^ *o$#--M^B&ýyz\z'W :h;7C}iy4ͥ} |Lw x!f6rMs@@rWxr ubyكhY7]S4G1>v2~>#f;"܄Cޢq,Щ񳽢ĸ+8' 7FtUy`莋Mhiaʩ;XEw<#j8hʒ3$R"Huk_#:#zuxT;v,}VNj4KB@;>5DpH=O^ ~rJ*[t\]W0R{ق{]xϯ,Ǐ؁ApA㥈r`&0O~6IN߀>|5:G/a/Cqڱ*4n-Yrp> C(-&8- {mVe *I? }8VJ !YAI/lzs_Ѫ8t 9);YMk0)~xJ&K1%RywA᤼s BF'<ۯCӹaTeX[ E×# irzR;T~]vv(2d9+VA7`8>܉.EQcfA8]t4-yQlcֻi}qo,toveCk"_Z~nFHX`,oFSر; 7źowLF<}bX{glx8!Z:hjaaa˿Z !l'1pho0a-lW f$~n-v}gkxG>#=~ײdix ΅`wz·|ݸ8fzqK|͏Fne w84n^k{[^XHv8_G%r&Y0 4,%F$@ wY%@ ;x9gI $>`܍σ_BL’-jlӣ{2>/bN/҈,  MMy&X˺{hFE<\"K({i?7U"e?! )ʿJrō*Ȓ@p!(%M!D ).g %$>LHQwvTD‡ )=('@dI (dͣ)"Y_AF| kD 6^Bl~p ϰsXG=Fǽ|'ĥ$ʍ'PbKqoN!MO9s%Kn-k7kkXgYE0#GCP W@h"˔`(Wz4?9c/ou[0ls.!qE޸d@-M=۬Eȏ@ȱd㱸MqXzonU1),'΁̷`\bo?iC"e ]Ѣt\W^(41xE(U,T0(&r9rk%$31jG !"6H@D!eQaD'W@ްx+).4<گ34T+Fj Zr=jJ*Mj,Q ]]okacXզ bDmV(HvIIIBk6A(^xN5u("{Jr|!>4bm/bՖ!l+ '`ǘpx;xD᷑6\۷ej Zl1{&vPX?G#a0zCLe, DJ-4\%^4Ο7x:)K!#Ǒ"|ɷ#n* ;)3>}6B%'݊LP9x-C ϱWut)[9iDޢ85[~E/'p s6 !y[W~А|WұDo+:aǭ60+i;J67>^9qCz's*_!)//+2 Ck{71g ŸRUs2)VhW 6nc+csG/t=e8|)ձDoKdʭW Te!ovᘢ^XfI!3@x3'?A*6>i-ź5Ѿ؀5Ձ) ;}9-Ϫr/T ݔ~+tXW#E%3Ь7[bvkNa ` ?t|8W(옞m*NMFVڇ2#1ٝFNP5~Uz.݄{}8x 7D^pώ,T\Y5?[Ŭ/CwXO)jU.w>[RM c}ϖҤ.aڿ)s;Vw;|QQqqYG|KH#x)CD9, "KB$KG o"K@ $"K@xo,!ǂ , %@ʒ@dI Y ')K)KȒ@dI Y, "KȒ@dI m@d_$E-Fp*N\LAgkS m_ {1cImi/"KC#K.0s|S{-מu0tge5XsPRT.`J YVM%".%yy-ak/B0xa\4p:|FfsXeC2&HpY,EĝJ[3#6ꀘX/x/j~w֘}h>vyEp!%36U=53mkbD,9tJK/@Wda QfM¿/XVFs O 0zZ(bGW}*g84 Nbھ,ŧn>\,'o+r HKLBA- 1|UZ^V*g ): b[1=gIn^z WN)^D9 ˼.ryp9v6GT"όGY'oLϥesAy,bץ%vO.(Q쟜f' ,*2%_&bl2(#/cP@ nAţG!;K)hOѫg&ۈk[1ay͝F|b05G//iiH5൉;pvnpw@9{u^G^]=\[-ƾ&ޙ. r8Wiӷt ‡LRe$DG vNNEB%[%#26>,< fSqx+6wiʣS|^ >6yD9% uqI rY- '<@hz5vKqbԏƵasE??^cց{ (7/ 6~'H6E"_0\C˳p5M4DDiW IOQ- d-q]xwh\%@HC\x8S\/g劢% žeYr T́IBȒWKr,l$抏Y%W6x?*Hnl^ dm8'Z4$޸ǃsql1$*9)/B4ȟ$(M8yrNنS"ߔQ9$EZa񜼿Aڊc"+/Kf,R^%ӕdecVQ>.3()j+hd5 +!BNN-(ȿHUW JDW+uqjU1$MkOW]kYq~gM0n/A= WUFIA<mXQ*8^Xx^zf8xrUԸ.cNWN Lk`Xc^PjXH ^ۤ4L lhJ?Q&i_ALA';HNp f' ,rcVOSR67f12T&QZ<^{AdXC9Z |Ad E: Pt ) *W+I&}֑tlQ/%I/kPx8IȋJG ψQT Lr':65J+UIoPP&vQĤʭVdz"#Tձ(D+b+-XVƅԞS '??asëf-Ea: B`cQiU)}1LMz͔%yAm HJc>ְHS"FBJG"B]dśݫ+ǸL*+:uQ6fS˨(*TNW.(+Q!UQWA!*NPFnu*r8vD:Wf &.[e,=?+YgNDMdB"A4 <L})ȒHU*)DUFтeER25+l$*5$͂g&l+8l˜5m&RdBHEj" c&L|%xL CP/37eHAS"SFy(23]YC>(s iFDڛkө*)qUlkfS93S0ϩݧq&W\$rSg ԈB m M%!g2G49XwQGY6F.D8"SkBz`Dé&5}3"UxG*rJ(R*\D O@MjU"0Sk:U)™tQHK:beV# +=*Wu#<3}!1#N֙)UV2/QDьURs SP}ZA0`0>6Hֽӓu2ƣ:JiONU&9x#dSM&D3-F (fQE8S(&*^H^ p&;U'iM hǩD c+mkT35^ǁ)4fX3r0~I:C1EU6*3I6ɏ 2sS}j% (덕e]&cD1E+D)r}Y([V e 3+ʺ#R WkfE)wtZ){(Nl))(f YD؈04hj0HꗓZڰpEQ#s\g9uVHTg-<"鲛@!q7"*%9E +6i5wRY0Jtڙ\r`H4(ίD:\ <~%%2˶cJ_dsGG*8CGTe/50×%!BS4 Vz}NKyd4ƪRKOAluN<~D%7SXc>a5$|4"lU7NѓryUϒp&$2g&4G"bzXՑ+2C5)YPjX 1mթ>QF̿,vfqbNQ,SU:F: ZIѥBJZqB<3 23WQ4Ri)R<[rZDxjE3uiPƵ&T8J ahڑMJdzJt]PjrڨED ,4Nc汄ag%-8H5]F2 =j+fU‹Th jfUSQB4| +&yʍ}jZsj *DeQ)QP9Lq*{TgjLEP|<mkmFh.q"S{@UfS Q!* mٺᎄ\Y`+iCޠ &KPۈhTrQ'^D6Q9Nk&gRh,.`eeFgkQ%\G8Gke^(3s A&e$q*ڤzSާ4SHS,券 Yx4vL iC"-7ԦWyAAjfiP:UktS(I=8yylDʱr{10JxJ`5IAG@!!xex((^X 6Lou1Vh:m 2űHyf5cA:6tRς%,$E%3Z39ش=:N5qM0ʻLȭ G$Q~Vx3Y[JUSj$XɓTҔTVF*XԘL~ZԱќIeB )U?ne&xQ*-0cWMde NŠݢ u)SJ\(:>qMTgf=0Ϻ$B 3@ 'EC7jRIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/open-1.png000066400000000000000000000575731473342170300261650ustar00rootroot00000000000000PNG  IHDRu pHYs+iTXtXML:com.adobe.xmp HZ IDATxu@bN)AlQD;L @@EQPDYv٘yXx|}_;3gg5眙:7RXX8S@VV _d:BlA#q!6 8"u5:yD8GbBlA#(9EJP^k(l(m^ VM)fxME0!T`<K2 ˭2|+;DN 5sEl2, 2+ ckc6-0e !A}5$傕 *C q rU n)y9 X<fo% ɀHF0 \9(>C_: Bj,  `2b"m)ʁj %2PU ?-L40De k' j5o:!c -[e0,@{#`DP{;,{y8l '(u'"2 `pГm`[6+Hj-90PzDxbk[Cu禖O77iiR#'Ȑ@2 I4O:D8e;~ r!" TX 9 @A6@AΉ)HT 5_!{Guz) Š@E zPAR-x ҞÐoZfoi,Ω^ ɧpFy`^íRm"k]dP.7]% `T@𢦒 I< +`gtzR`p3F s>nA;N!pS:F%ɇa_Ɓ!HUB`d%h= TV X6B : H=AA:UC, `%,)/ w-/T $P2 li$P9uxlҼag s?((qOA\ (K8͂}2+PKYKuvW o2z@b`t'`<[^MED@W % ".6ȂA&J5Wpn $hX=&0;e& /cX6(ܻS[!/tT| AT;%lMMƠhb0R8 ` PATǃK  e/`#a >E da6< ]IA8Tm6j!ı.SAi> #rI@Fs `MA@s[X `Oj|I7(͇mXWń4 TaTh@Co eqsADBlA#q!6 `{%A$Z6 8GbBl!Qn# \vUln[o(Ix  ?LdoXhsGU_i-'ߕuܘxswPw愞98-Ѽ {ʴanƝ9=ڬt84%SQS3?_+MzPgdGyt:.ckL~~]a z32b0{8슘g^eҢ>q,lhyYEH,XEVj :0N {,|@Xmvxڢʊ2bc35zE,}dJ+ ^aÛFҾ~}RN1 oG֘[UY)/NukBb629D##b*ڲԿm&vE͋MTtiᖢ34/-{nVJTa)cE0€75Hn'}]י!3%0t_inh"4% ].-8Co]T[8cGp@h7hog>Z.6uuuu/7^e켼ܸ3E%pWk{bjO􋯕r3isw9,;㖊ֺ0G-O*#2 i<$Gamt)+N\9L@֛fU?dg@F.HmBUgм6;ç* B4]Iqqq ͉*OSWtҞ0GWPPPPv zҤJ#-.p%Qw<}muӭq+u%l)#T[Õҫeԍu7/.v 7pM?w#g"4*z5}"*|NVmřI:*c7Zh~Y0n˖ )־KW}4-ߪCůcJ^_їl~}.0M^l}Ӯy_/%Eo.5Tp$T*U 6U{̆3>jRGQ EQ>UPmwQ_ENYފLF(6+.\bDq7`qk+j+"~[ֈ HS|)Ju;ywؗzq:_(KnsTĹXAEc}"Ė X=^)\4&XR݉`9ck47=DD9LrUQSm߲9Pܲw6>η7`ڹ1̈R7Ѯ[ͱOQ`xnA$`%7kzW>& +8>AfM֝v-w3歉ܿ47[Ѡ}7k$yD eeLV^-pc5^$qXqeU۶mΧ˻=poVFݿL͸@ճ[]QDݰtif5Tp!ɞ'D=V,9`ur~Z(P dcSHLf}_3i쒏K\ O V*zc~zGue"EI >wnjv!Bz@Cy)}Mid35UIgE[rؔ4|a`} @c6~zhܩb1NYo\* r@Ɨe,6Uq|XiN߇8>mVLcW=g8kK׫:CmM@жI>;>6d&PAb'-pm_~[F{_C3i驨Ү:90[vcOŇ#]ܑ"'SEk"[͆'?%X|r'#8{_C )Ҷo4Tb4_]dK~_gc F,1PGEt9yI1> )ݱ Mm3Aމ֖V¿s(J%ud2Ӳ2Fb#bBlA#q!6 8GbBlA#qDvqj1p9 ]AC7?WwOWuq`1w<7PZ>qXCfOp&X}֫Kp5nWuqZ %~,PuɎUĊk2= Bk/htXfױQJ :Nb)<3ʸ8N *I* Xd,`͏~L9~Kw>JjHJ矫8)?jɉYU.NRCcDF}KA`;%$ X{׀O !`yBq"_l$UtRhe^jRR$,MX?DuqM|Ɓ bVm卹9n._diMciT6CF$YDٺ纻(ދ>9V? \Z2222R⢢2rrrr:茎.̜&2#O:UUdJXY;F+d( o(7s>)?8J.~b^i.N;BTF]9Y.%tb{9eE `fu] YiFci*߰fxYf펨eg[;zccv#~ktQ'InMUFf {h}=ek $>!(^`Ug|zp fw o^\Yw&زɺӮ87U c va5{]Ԇ2&řΔ7GoeLqPd*$qx-qmyn zSc͔lB>so]G*՟t14_*^*pqYzb5 X]QVqMu ^JiDDo⁧mEy#KMhx7uQg}^=eJ+l׻XS]\PPZͥH唛\ކtq qäb&9k0t:]=8ɜ> P_JFA\zUq0K>Ch֣q?'Iiv3ZwqqbеEt#'[SB#q!6 8GbBlA#q!6  6rxhKBҨZW!ra&7Ǐ$Y_l-O\te'Dh-Eb6* XZXb- M.΅W R"ݼhtm~znGg;̸{>& 4aӁI(`zte[ΨW82t:]FdMޗ*xUxjN5+|D[b̜U;ߍE@uqOvٔui 0eWPI8wr Fѩs}l+7-21J @zgQȾj?moh6uFRܢ6Zu& xyq7;ƏYv&a.ζa/I76yDZ|rsٌ/tSmn5am]RtxOj2PDq3םz|ϝ|a B#6_$(3[Q{ T%}:M^?nv'sDh.6:+٥%nctDL]Ggi[DF̙o"Td"?pC@p{~oi:w!QDTw$s/"=FJEΚS7l}snvqt:]T/ogĬb~c\/HΓK珒P4 IoѼ6%)뛩5D$UֵAIlGqmM9-+13:ʺ'%)gϐC+MЂTk]\jX\ iX8Z}L4|xQ7ܮϟc"TJћq+ۍEs.͉q]$#6#)J6C̲C"BmB1v} @cCW5QVM9HIRږ}^fKٛዱ$i:]zj*?|Q[dJ@B?#+ S?IjI/1<>'shC_hC3bykιv\/3L5VFsl,c٬%ũc.Na6Ƶ3b켘0vnsL`_G5ҷ.*g%HIӷ>/}FZj4 O}wf2_W 0=7udeƘ*aZ55g&Txpm7E8lL[y+j<;uJ m(޴jw|v,%i_>IS^?|1{S:]:g3;W\c;l{챽%*^t8o +5wMՕ@oW*pqgva]j}f,hX"kɅo욼Aسk=Ow]q?WC͵>`hQW.f< MiΚb}B5Zn}^λnpC{O"mЗqoIJ/0vPQi)fZG˭l %¼vKo'|;%7dw_53 Yv@|ͻz~)sWO.k#) ]__>nOUR @KRSZp{Qr +sR 49\Jo 1&6֐rr[2ۮ@f]=k#ǷL4$Z+'s!rosLJ_>>LzÙY̋[OWI.VDgwaxyK["6"7m6ґL>R:zw۶f#ʶGMJ1@䔼?V~}XVl˪MW=h⒡E; Fh]QjrXUm[]]1K9ORgmzRޜ_Yӄf³oeC@b#RQ1qŏ=^؋C^CYlR.]T$\4g7'_;){C0,&D}lVyv OASI"^!tD(8"K):::g`Sv1}[%0#V]AUSߨ|33n͟x{ȕ j"]QTހb5yXi~~>!ɩDhLK7OSW^c$GRҋ O2qؚ5i1OKOOOOOO' zMa LR( LR(T*M]&KC+B1U[QQ~rKr11~Y")GBV:u,܏zޙ-V>aazc??soܤ ֏%#6mwtHG2[@_;5ϋjkאּA+1i>q#TǜVf-ÍuD8b#cg_gevxQʌ;y,Xm '?.Qfĵ!14 2X[,͊z5&$+وԢҲ_(ίL~::=;"I}$I}F񹾍wNq4iv5[mLs`qm4v}a8S׼?od Q樝WrYJ=R8Iu#e2sɏ=|!.[w5ECϝ(}I)y0L_m`?Bw3-|Z5w&o}zSM#,*X|%~y>)i<6J3 Ub`l|eӖ:b| GU4e~䜚(72_mw}7.{4ulE9aqs{gl ﻌF-x)T9LBug` Ml@WE~0^RB}]H RyQwoAơ&a<7]NdIZv7m  0D)Jl&ZHSĐaɕ%jF,ݦ?mZ."jlC)_<-RA״/RuKэ%Q[Lu.ei7ޟdZOPBz-Pos0VUYٚ&ªF%ASʔ&J>5M+Ɖ;sM1he=h8?yU9Rʐ_^s]sӣr-dkj=g,QeNDժv|tby2 b3ON{x؎2PoWzaJY6Rx܋,.xLisdž73ZHҵv"6ro _q2L X{t"jՁ%,6VK˄]T\5"6=\qQߥMOZdfzUwG{hNrsVz<~K 2Covf5^;Tl6;u߰r׷@RÈI5R/9b[;;#) [yp+1g9 40Hf`3Z廄6[Ŵd@$# KzK|ʞM3c{nH>6"Nmaݘ 3\͋ARdAmUM X[g .91U044.'=`IYgfffv7Q:a̷Htl4=|C,F/Cthɏ?1v3#vc΋^4~H8L^G6|k'lJ`tMզ]ZYA|S]эXh$`jW_%>Ůt z/Ԡ>yoZTB=RtcgNu6>z~BLT}}]}]]]6M(Z{VaRjIAv%_1~]qncsMȦ^3>}3N_x0*+oC61א0s,Vd9C?p 9]]l몹b_?=4 /'.##%)%.!&&ʐnG Ӥd3t~?Afy=rd=(P,A~ta#C=u KNl;Cyw_KAQBN8 ;"hGbBlA#q!6 8GbBlA#+6VYU_D|o|<ķ˥a?0|ae Ux|bC?Aӷ^ IcIG&5ۦ-o-'Ft9wsQn#a+CKԦ#CO]H[ߊLwG/֓>n/8h2BQmaq\r6X3E ngO;|lEebk6m Zƈ+4 e1.AњRF:RTLct$]qecH ~anm O\ Z'$ }(w)A!D6{6wFмrmUȏFK p+, SG..ڤMy^f}M/8eLF*ka{7aK˞h$j#+f0tMm0S{; M%9V!W󛚩Eg͏ણ.!5It6k'7jѢ+G>/*;!ηsHy:ʒ*= <ۮP[:oxgCbLۜP}LhAlHB,qD"5u?$xܔ3\fY(@mxH y%?w{e/Ėh;5{t8N0qJ5l6]X#U'\y?89[:?+{ˬ}4\/(%?ӿ"7{Aɓ4PIO^-%j8Ż B X߂nY9En r0f?XOu-&Q# U7+FOS-=c»Rl54ZnL;m+.Vw5w3%Ϲ:!\;'ĉy~P$%"'zbv-?/1ĸl b $mX{5wmvR˳cF^۴hG֤;j*#vfY;o}(`aߡ٨\cBDX~K!% CF}Qm,9a<.Jf;* Ѻ؈qiyYTIi I111Q1qF+s8ak!DhR,aX -qW{UEx$ =a2]It u+z-bBlA#q!6@qq] L&Z6] A#bBlA#q!6Xݗ3Qˮ*+NK̡];/T6;u0vzϹ046?$$;ֲ9/w" 0MyspzU%)9'%McU$X,w"f+{{O/9>'e ik 33k%5޾KHOO,ag'F&ڿ o] 08yy奅UڒLe5?.vrL -2`6}-$wÿ>vi=C3sl"n^^ިQBBBтn[ٚvWݰ q6^OI1XLBN`a[?=[gߚ3S)ofy`&4s]#}.\z-oo))ߗN!Im\烯6nxs_͐0v4C_"ܴ;KG#z=_QZTG@Ȳ 0}؅ ޽{r툐9,E%ص^69>UISwg(%܀E&b@&+$Y1y(=/fȲG͛7Pk~}_oadd^ {Ʉ<6rT /xiR{lypCM\zmF|MoMA%6CP8PQ!ln)ušt'Kqx,%Hέd&G8,n:ic/XCSŮG c 4lβ[_T}RqU6lA]oMpN]m'Y7Lo*PP8vww?t?{ L)F %!;b9?ۼ¼poQ.#E,DU$rHt1 IT--:ȲۊEFĵ{ȴb &*..iq^aUYY q$T(C˦o #6뛐p?)aՇGJl Y_FRjۦ7](3ypsu2 tF+Q@,999ǎ>RY1N׳?Jj⮟4br9y8'{齚Š4_ꤋdh1dq99Rn|T0\FG`5l{m1}򼶯ck]~UⳠ +_^~fk$.V |%ޖ;:?AD BlA#q!6 8GbBlA#q!6 +•S|wxѴ4Qx$>ZwA6ZE/=39VIf` E99SW' %.>ri+Q=ɀiHO/ p]AګA0L6= 9D[)} Cl4ӄ6Ninv*JMd`u9",40a [m椦b|\-jsq`\?T+B&SbuG{qM( dLPHQ$gxG& ߚp gyKs[= g_lԹ8ESSs&M'/лEMKq ]2XXQ`4\Ps_NJP5N^07GJY38Ѽn4.x*w-z.@YM^[k){Q|ǩ6)RNaYm iOI,Z?Lm5YcoگMesw ,ݶj}7mf6x@ VRHH 9uM~۴+(%'FOO)"7zfu~W#`pJW=7?wq +n+ ZkN/%:Z)fOM 8I?rIf\45vVrw|0jKb[G)ēv nnn|>ҥK/&^dվv }Rl @ʦ @bHIRkQ웳Fb6\aaaRXbMlUHK<^^ X%y$ R]۷$1աzpjCt6C "mh" ymǩ,!` O.N äl?A?l|uYy}0)^DoShW"f?-!;kq{w!\xpq BlA#q!6 8GbBlA#q!6 ts펀얜 ~1?Zgb %ˆT^Gkscs1Ѿ@Xi8aba[3%fu9u1gN?e6pCNUQ#_׫KQ%ܜOEGNahҥtƦ/V^1m'i{}ІUb&!]i4Zb,ZUeexUZu(GMw2=NDhUt7LVS@ ]hM`!qP3-- El~RSZJ̴I޳^{OO4wΈIWn+ WW$KܖguuJt)VSW3n~=jw0%m5V{a'*ZU.yy°eZν8f/$-{sQ_8pN7'kIpyr2`ܿ8wŊ aPTrN =z]I4nsX7ݷ)5V3?{CѦ;.NF' qBh3bUaۆ5wk>MN#b7Ͽw؇5}F6moo?o޼ghD4J"%5^tYuwvBmsq HL; |1ԏ wZ߬]WӺ8j/{ng}J#Vkg{n߭^WS8Q9|uuݳS΅*t|ʼn(B"2BS d2 "Up!6 8GbBlA#q!6 8GbcI=epSywăk!IWfN<-u_1ZWWv G/Ѧt/v+049k]t:N|?E( 8 -I?oaq)sggm"M!._X3t%&.#N#S ˮ >M$ iS$:]G5^w6f#hm̋K>p?UnBuSQgV/<,?\ij#Ӗy?͈.$-tq\6)z$ѤE,U]STj _EB򲷷_xۭp,Y98_;o(Y{}BK#%*В7?ܾи]BaH7.Na>^b=Ϳ?xDak~wʮOU&nsq'cv/ӹ|ځ6E^ۻn_SFϫvcGٷu.`__ߛ7oҟٹ7XnR#6mwIVm;/999vvvo߾o_'04'zd-uVs/E=BPs8[8̌b62K BI_jr:\v5N逮rUTk\- ~Eqj65E)ߚR$\?u,zwPd@Ht1/C#q!6 8GbBlA#q!6 8BggOrApVFCQ{«+ֶHK3@8bʲ'ߌ4ZCBDxe_o񬤯VhaAsn_bv 6'ĭM6Z`w\D{~ҥ+N^:n) RkQ>f׵idEҙW]i2OʼnȎ8fRn`+'Y,91@m.EL&,Mz}ɓLׁS-3{Ż~m6|\6[qϯTJE9!Դ]~+f.( 6C=ښ}5O5ϭ`ųV C2]Z)4+֕/9Ϙ Yiylb΅v+0F̰ױzcvHt^&"$-mr6URYS2|*L|-6`X{jh#=zݍp<0;A0XCJ:^Ǡo2  =l=O턥[|djcJ[+|uy~+7fꐀxFaqJ䋌nfRH5'v/ά*ƒ^>'lwwCcHƱFCْ4{8F[t_Tr.fs/ѥM~RTŝy[JQ~AʼnH]|DU۵l~5V'Z{ DDހ@Ab_ѮHgYyt ] DoPէ+/gBM}Bnܻ@]`.v :e.NRKZmz~ Sg\䲐Jk"?fH%l(Yk)n!nJxtbg>[PW'8vᆻ$z꣣~LۊzwTk)]ZvY5V^8Mp-j!WO6^%7'^ \GbBlA#q!6@q%de (++ o!6 8Gba}y=@캪촤ڵRLesv s.% {yZZvtU?~ :W*J"41NɛK3#CHm[Euڍ V]u 0~|n]yiI 9 nƤ))DžHIDV>]+`UlOZL~maNI Fw fb$QE(zvۼ e.&2Lj (05xhn뉡O,x\Ѯ3zm]Pu#$n? ClNe^^yia$;#ebg 8C XmiG0j1tک }ϐz+9I`BDTDcDݵXԫ=ljc$rsISTFbStǟ%mCVQwĚeq1=,r.:񟩓qu"Hm*3QɒTrHt1  43z#!InYUw_ 4ŷ8?k,Msȍ &RAiGΤ^̿J wBq-2v&!&.!i J2Wg  "P DZ6}{4gCRםyf@ ~6Vuy5+<^c[9g>1 ]?h6V rJ2yR vϝqV]{F3 ?OmV[#iC͚`пHrf$q8h~͌!߈ԍDuɅ!6VWUXRcYr].Ea/Wy>+0@!Ȥ5=8t'o.^*ڴ =qr5%%%gDjV-xx '¾!Ok9ra 5aXvѢ'+v$ZwD}JqO{ћcQ/uEJ2 uF)7@@EK]U.F:˟c(C\O>VP5 ^=T3%FCmcEl>O&w wtRBKB#q!6 8GbBlA#q!6 Blnuy5e sVlE`8Кo~_<8xO\[~p'q)3x<|3kBDVXC֫/3J)KxTi]Ŏ4lڑo<1w=)3Zp,V`E UN<wwfN4sH=3P`=X}0van&Ǯ3ah^uJןj&jš_S̢'8uuHr)r;ޑJo#H,nCWb+??um&woאId_׉fHj{ҤM׉%|>asAUCt zjQ LLL J>kٵvAM $IT˛ɫttnA͒7ܚkv+qn]~3[]w=u.{7,O1i%}UO @<l\+~~jrc:-i;z>aԶw%ɶ,S-<+xv&GxekBMYmRap>'UyÏFɷAH$L)\N٭PӴB2-y}tTa{kYll$E>f}U/Zh "㖎>q<'2L XCCys^hUJ3{tZ3D d mK sq)sa@u5481Uzd[&ZBO IJW Y2rYU&mB}&iݜF 'k9ŐEiJy;- ͗BW4~ү٘BWvֽ)/FWQC D|ٍ7Epta'k8 -8GbBlA#q!6 8GbBlA#*^ifZji%?ό Ǵaˊfy%Hf=tӄ{?ٝ*' .Į5АW^QQc(_m:6>֒7g12{g!asgD='Ue1 3OPsլ 5UqDt6UK6k_n7Fb##dYUEx|D'(TFUV˰O#x\e:T*wS2fy23lvJ~ b0b[q9+/\D`j;w[zN ZFc 8k|AV}M*&_!hE8cveF]W}b{Z~ \E_jM^ˆ6=u%gTjԜmj@Rح{ϭ{b6αl؊aqE'&naA7cMfp"(*)QT]4ž0̋-अo8j@Cz2VpFʘLJUNQ쫷ɬ!D><@;'9Ng׬n` 0 ŀoZ7^3QOCC3k'tN?#qs>[+íw$mZ؅ z Y&ʲRb :`0Dt=-"?=| U_L՘Ɓg4JDUe ,6bʼn/ڹ8 _bBlA#q!6 8GbBlA#q!6 >d2j&, IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/open.png000066400000000000000000000611161473342170300260130ustar00rootroot00000000000000PNG  IHDRK.tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp $A+*^IDATx\&tw bP؀݊&`+((HHww nz增Gavfvv<'fE70) BX4fƁg""܌@N$8aFwEE<8gza#dQ)8$7`x4P3h@@(SX3D`L!}d}` @'s) A?KQ ԣU`*k XP6ѦEt8AD;`Eu!TJ0^ >ThXo JA@+g!A!x`V_w*ǃݑ ",xw7{I Yt bҠB.:lF|@q e4#f]ۨ\(xHgi! L|nSa%@OTQ4:2`Ŏr`4اF/˃W#0*K6\ v Nҁ$0=?@q'v 6ځ ]sCxAp`Pk{A!9 #8̋]ݭ:4 TRwX4}eOq EЗzR@ᕜ=՘.إ BX%@BH7{`#@'`\02~wKA!sN灴'7<<foYAY3Upc& MSex hn* Ȃc3Է<Hkd&8$yA<a䭮d0>v$=%]~I5eMԚ̗4bQW KB^άWw2$%hu.AӞ'u5| L%7߹ܑ֕ޜ]mԫg#~ogm hN;UB[2Pi- Y}/ONR\5ɫҕ!e=v3kW8_l~) w,uc0q >eED:".GH/~}tn6}TWP-V_!()5Ea=^+,>ߏTsU{vR QKc*/hf!jmT8I)lw'OKM_Ca" oiX!7u$2Tiwt]_LΟuZx}|rMa.Y?V8O@(ѦNcgmU}@"ЋζL'ixETuΝe+ SCHIĭ9ϜEз S< lW*ax`ڼg1L<k^UQd֜Q"V6J|[_/h|PC}ˢږG,K{"8m@1lɍUEȌ!."= #^fKAcE~g+Ld9'BP+x³N 1Iu6 aCAP6 aCP6 aCAP6orq3}s[v 970ߎ4#e],]:(6h aFy$~ A!`·7tU'󾨎xlr \ .c$W8,:fQzWT Z­ϮL0/sʶ⬘Zwkv믍7ez4#NJ7Ńb֑.܊|swuKeZ1tqr2]9z=.Nƙi.N}2L|q-eres T E<Ǒ9nE* iNc1h ~[4df֡((RdT'FgmpcΥ[gZϜ~i{ߵ@gޘF ]8_+K^C[[m6[Kzϐ;q\ ̦/77CJ3 ā.΂b TOJ/lKC몲\x>+5wm7>bh %pn|h FeEjkg[/qOn]~][J؇Zad۵6Mk3]>k5r.NY[;ř̴˱/BU9Ztص bb+.23h#N.|/G%]p+Is俜]dvrrr+ZjCڝ}ld4VV)k*W[mv'@qڞxZHnxӔYxGoxZkm1n>E]iÕEj:LG~=I˶+]k#9L:芝ЈITt\PYJPtK#!1]yŷ=%ˍ9B~a5x4r^c, oΡj|%d2T%5D!tXwH\73*ʳ#ݳz`kY^@g?Qj=8ڌobPf3uXuw}~*<'͹K&{b+m2wn ̑JH] y#-Vx\[EZEvW6x>)@ #=Y]Ѻ;nǼC8Vvg@L=;jƾ8(F8=;!/X:QbJJPSUmzy$iYe|o0So$̿ﰗ̻wEy?u]fz!/XJp4} V+_ys^{iPccTC|&\B暳z 2 Fu$Ԉ8 5cLYsKϱ ?a\} tR:kg(v(Y%omᒱ\R7uj+V>Xk&Vtb{/ꀸ$ Zi:w:ʬKˢّnvC#[9WUʫpO3d܊s}r}\l 53]sqqgŖ CIyry?qdziBH8 7/LGLv-?ɸ586e;hL6FV"(h 32쭰;}wݭ{ف3Fፋ]F[5UC1?+C&~7%WǛbg)܋9n"1_x,knB\p#guvӋduMX.62)qqj,g9 /4U=oKwQ\e_]u_u|x1iUfVo[JyOi߯\D<Esq'"|`HI[k|?!i7@P6 tr:0g+^/RE]]]B`0lIIIx!~{Ȇ]/( † l?6Y_ӭf_IJ^vU tk?y-k:ۓ9 ti7۞O C5쪷-Fv?s. nk}&&;.osp~j]vHH- ۶'WreZZ lQd_F+0”NQ4wy仰dߎ q=Q(AQw.hxs֟f{crtO7B[L`4Y||*ywxր|֦G:^~}#PEԚ7[P{Zdw*W,=L_sϢ/ݯ)}="u&@ _}sɪ+_*IcX;ji;T- HG; sjsw([[Xvs&?J߿yvӻx\.\]]&K^wO]e{t)\8rF<5w2 /`ҟyu*F:*gl2'j qԜ1X}>\#Dz)yn}K.#>1j5y=2U6JpHSōSpx=rD7!GG,;wn^&"poF6d_F ;GDfv"=sasÙ"I_G!pQh>{ƴk3fq5cr@˼:uNIo/d'jOosmb/.ΊaE%V䵗 bJJJOblӚwXzFՋa/m:"N)o-Jo>vkmn#rA@#7Tw&C:jZiT(4cМdğN<7o.J'sKR{Kms4{+|*(8&5nd)'T%!/mUEUmߟ M4e7bᘿg?s\gʎX:/̃WD &/1W@QĿQu6~ aCAP6 aCP6 aCAP6 Vw9@Xu73H<5AJB/yK;i%E94R2&+(;bK\ _$ )>T@ ;lu5}.@1;pI}]#I ـPZGeRQ l)u+0Ȝꚺֿ Nkz4{c!%di":l\FH| y7ڇYkw:s}B WL7}PԗoL'hu(%՘5q~n ,tS]n]ev@{ƍ',,&dl W3ײHuN*gd *ȡ_4wS#*6:jx lyU"p>p}U׿r6$0wn⚠o!3g)YB1T1l0B9 j;GiދJ<2m 9qY1Zn6j_w>Sڷ|Y NHM>졣ۑ(}99r9o6w샑]-]b \zuno4eߌ(?0l5x*{7D{X]n 6W]ʵ9ym—!RV&I7ДFAVc58vG,Q< X"WLih1QPd0q *=uJpjjUnby;)GRU5ıh>[Avz\tn&W4uJ >'NbLH{N҇RME@~;Im*)͋e-}Mɋ .1no%Ȩ StM('L 9u>UJMMUJdĔ=g'(W_1;ZE|)}E:L.BʈzYD"*JU\򺐂\_wn凴'_/Br\ŵT +J:VyǗ2ZG izӼ.fcg]㰍q9:"$ 7*elI z.=JprhfHčt"9LHEK-A$r~SmZQe"8V׆P7WDz=ntv[\qmNK 6٠;)KNJʅaܥ,h7XޡcfBK$gtAFI^-1 y`}ŃֽbfL=}3,gp * i"o[7evB칰f1̌E'\#ǑRߐOBG{`wfEDM7+0ġp˵h}&ܿ5aU8Qf6SÄ/5L>[Io4 !+IsvG%xB.~qک*[Wz/ĞZ 8Sjv}Cԇ[{!;nh{CR].UvJ=L}~ 0g;-=>S|̬qrJv~H9E4v&VܬZ~atN?wߺ"= .t8Oֳ3dmM59a1_/Ds"Y43͍m^>7kJ|ې_UvxxxcYg XdQ(@׆X' ,ˮZ* r ?1>ACÇtviM UYߨ ֞rSQ'/? 8*P IY]/( † l( † l( † l6RVPBa/F|ѫ>x캙/fg՜_2m!t{aj6ҜpJOk}7e7|D p"}B3Ƞ7ۦ/7^/{TG4E!W +qiJ~tzKEb ns?p55uttϬFw+vcȹf;, gy1ܑwڦ +ˇ2=xH7X琔.e_)5#98 7hɹcYR-VÒ~^TwװmָA\(ê䐄z㐂gΒˇ=FLuxֳޑl?-uC+ . !PH.:Fbp^|̖WI'WB'R=RM΅>{VfpBnl"Q&yoU47Z5b2<:uq֢;A+2pAJ˫`;hu,4[w7dI\(Befk\CXuZ0 ]$^r;{UK|i+Nt!m*J/ld{_4Qj_%nw̺e-B=Dž|p'rt '6<]HF/k41fS8d[dhiymI9dY9:FaSSiDhi|K㇘S[(sb.N]tӜRzƮi'ņVhl3#gi2C݅<9%.1꽟o"!ҙV{]DKS\SBOtLU_wQq7nW\m{K3N6szՑf*#YT$=DWSHgU£3G_)8-w=Z xteb)hrG!8jBܪ yZ'C?!؜w@˓[|RWq0]SQyԁ3GܝmuDp1AKHxZ5+疎Q Wɲەg+eRjK߿) =g!˙mwN;At؍ǜR\Ә?||x"7Sr=|_> %:L2}%Nw0I^YvZpaRRãGP(_eGzE[C0:SCWjmՌq ?)>N()#,?~|ڴi{ 4Z{嗄{,5uճ:͜9Gy?$F!^e'^X77'N444MI0ҳSJqlDZٍ$>V#bIl],IBK(( bE{P$Mi8Fy0fawFzuDt+oD6;ˮ;elv7gfզE0JϕdөS5)Ve؄V|*[,.$f"J+JIL;YiF R"(@@xh^)^X8y{ eW W lPOKBcܼ̅TQ&KD!Ԯ>"5NRA0n2ۄ,yyy{{{ɇ*,5*- wǏDЅ-m==s&8vE|b΍Ђh/JֽMNr{g|; ^ _ ze7(/3-!"+G{9;C!#zumץ4 -48_N=:rC-ҜyUw߃4f> .hEh~sEYlt ",z273w9Bh% lf|#="g4ϰGdyk2uX~HnMgF8K2N',z1aTz^?[u3:9^t -ft3TK-.UtPS mm!!\O|Id FD|<_<]?ѷ&BB<''ڄc9-5e ZI~_.E鳶R s1>㇝)9H8"Bs }Q l|AX[a"%qnW vJ=w{rl EG-*Jti~$$3.+<&^)4XCD3u!UmUq-5ذܐXwR?xϗ1;x:旋lyyǏϞ=yF>^;`1 W3DyX4ZufF&ښjeKZٖ||,H:WqoZEUEřQ(.j=[>ZTZx9=[m{yN]nwJq60|J> j…VVV HCԅY)͕Et~er~旂¼7/( $Df[d%yieI#-3d_i- 蚠)Iʛ#y+99R܄O'mF=̞+ T]VjLe'~-f'ьWlټ5G\VBj(QԊCK7dj].)-YnXFk?/g}S, jtɠ2B3Րrq2yޛ^~zN%fU_tb|H#Uc獓ٲ\+-Mzwn K}SKc< *(Kd'mFǜ8ܭ#}?>0uy'9[*{Z+~NAZC]!prh9zJ+ts} Q5X#U%϶m\TZwVs!eBk/Yȶ,.f -@Edyay4da#9ekxrV.=+c0 @Ï-Fɪ KH v!蟺86Fe#_Oءc1`Xl,Wfb%45IYc F3xWXϵb9\2G=.9xu6Bmit>#FRgq;逈ߞڸ!ᤉ חfbeMuiZ5sVMH)t|i 8o}MHyH!eڀZH*ٽ}mҨzuJ*u27D~<`.*z OV;iVc&̛|qŶb'u\yT>r͖k7u\2l˜r|Gධ(((I ЌpK\Yaw]5n f6JiQ&dxq_Yl_3aJl yB {3ғ\4${Hnܸ){ jQSG1iZύ<&S%/bv^SpDvy @@ݢN^toɴ8@=b8†4>IqRh@M/(`dnh#lh N@?$3""]Mz{-*?#MCu(A mAYگuXUR\̪DܫDDpfoteN!>G.:>U[mbQ<8ƒ*Te䎢 Z"8tq).?K6 aCAP6 aCAP6 aCA6Dͼ``Q0SAlU"z{moO`TeoSI$c`aU0f VW4vu_?Qml]&HqC6f,絔jJܓg`t/U& <%$B$b?7T;z^l~t| tbG656lXojllmm.qjma{94>O&U{C-3 T褦5D?IwJQ8rBok%q73x?ٯ)xL竴 gK07Dձ+sZ[ C}OsqR*cKJY!6WH@i' P\{OeEo2b2XCN6.ҕucfT<yh&B E1=P?tJgWWვ6KB[yf5/Us5~ Ev: uLf^b34"`xlc穑<}-7Hu>iA_;6kx.Ʒ_z |.ߊlȶVeOGnjG=A}>3?Րtqҩ]T:oٍw'&wL.S`5'((د .Nj%SɬWҕo/g5ZX##`ln-:[+ Wvr/T0{WBxaDh4: ACyNom rG@P6 aCAP6 aCAP6 aCA?OHk3wgC+xV#$b d뗃W=<~cʀx>h!F[`'3j;'6@ jLwv!j&lӡ4w0sB-_ M|mCKCָ:</v. U#=1<93 _}sɪ+_*Ic5Yմv| 8Y"+HVw(XJmv9#f,a@U~`;& ՐʼnQC{b̀[ա}0ʽ[{}+ z[e^\p{P˓MȖ ~-vq'9.8la|G4^OHET1y>0nW3faaf͚Xv kHsu]Q^s EsK(+S[;Z탉;h hաD>^.y.MXk;IypFd[8I{X6G??;t|gtF>X [|h8sd(ˎ7S v{u޽ 1)?wdˌ/,ǫ6q'Ky<$]\\lnn#޾! E׷uzFzdr{iC j=7BL \ݡUSEԂ F/= -;پvS% N9"., )jȹ8iY' \{gt=$)°1aq@wa.?D0%† l( † l( † lՠ~M|1G IVSZcOm P\DxYtRc]KB/ ;{bEKF5nSI,WmQ%tԔc(386_~$PPԬ}㪓 c֠t73\iJRQ[Ljk,5wV.}]b.N|2ܑ7O޿LnLuˍ]4F`9}u! V_e&37@4`Dv#n%/)٨˳Sgsacd<`<iӦ1~~9xϚ4e$@yzy7B2'O".{E9tRBZ2S4)Aw(JiS.|NV 8;핃y3xbQxO*_ #7 >(Ng>O{5{>ll<>e!6CbcKدzQ`=(q"9`@6 `@+qq466 Bg--- O/ 8h@6 `@6&>L. F `Bni./)|v=&sفشig[gwwfß3G \4seIo*JL4fJe!5=, GB8s鳻+<$#pxKvy|E`4]+ls2(Mj)s9cОqU4It$_i[|4[VlqvGj0VW(xS/Q `nmmn 3+*2JDީϛVhR `w:ecst 7$!u;qROEǨeW" ה"L֛*MxM\ua`ѱvw~\zf0w{luv)6'sFO^v2gFP÷t͂zҼUϾqU_3QWEEO.tY;^ 'UM˿ 8rCl0*x\F9FZcNaY38I8iGqǃ/Nfg$>jMPӐ.}b!VQ*]+nO~@&e^M`}Y+mi,N `{1zn4oKF֨_H~\@KĹUoD'NMɴ*!ܓ_Z ֖OQ YW5.^aw:.3v^}6BxG7cRYݟ߿x]+m {9l+08`,BtlA7\ hC0g-Su/qǮ§SyMx׫w`EQ,>I~4.HdGN%W.זaGb1oK+ԑ5FZۯV:Smϴ|eQWMAUU(ėm$xe\=}786Y5wʝs~R4PH o^}c.]5y,rI3#T~,E-SD/ޏ Y5z) pJXfIN"qB${2]gC2`8R|iYz_tB:8#1*4$>J^+"=GOvӺ_aAܩ4ݥfJ0\[ɔ-2 {f\zC]tOOx8#3kλCqM]e!$IN%Bf_y6j(0 Ħ4VVT5aƎVtp8= ו}}UUXmCMG56L~F\ǟIe4U~/tTGm%>tljcyIIig DPŅU(86RPfOB٥责W:~E.{5fVcd a$']@W]\;N|]DS`R-^(&W;$V4صDߙ+`ɓ DP?[v*B9.nA۽8C ĦS)t[UƋcvCW $`)s;w/pm,N!΍!8L&)6UWO?Cnc]L+rpߺVd(-[/l vfdDzMLXFi$,elD .xmnvt:lw~(.j)DTb~3Gd~wo('kC47:Fn&3fa<5rҵI^ј1>rÝ5۶_\?6ߘYWVR22'ch,l$=mW=`+_{kn*WqpH1աwY Ʌi)/#m6T߮ zZ}%j@|7l1`ttvjhʉdT44 B8f*Y_9'zZrz]sX b2r<7ecjn1 ~ ! ^Bc߮tqΩVuv~Zveqr~8.Dy/Ęl,U %ruI }kYߋ]6K1[H1I2S-Ku\bQ|*M486.`HEQ%3a,]LR~l;ZC&H${T&RLIVX_>nrvj#lGG  /83q1~]5Zy#1k]?d^ܷiѺK8.JHPU{{@m?PUAA}q&>'H?ԥp^4^'.BȁT|V3EGH ,Nkm`Hj>ݾWVG1'k⑴գ?/M6 ܫAXM mew_l l l Rlra7݃{͕e*hzfLzUsT6Cbت*^ꆛ~$}hqafVhQ`ôN5ob,_y+b,VD.R؛ Li %ɏ FҨ^&'0SXb_Xw RA ?;(;+D( CCH6LybJZ_dH "φk\VDXig0RFsf^$e.KCk .q # ,Z' Ο{/͠t&aYPXW=j\}L\HE-y!@D"di!tuB3 l`iЕ8yD2d?BOQ&n/n yg\=*V^>c]Ϗ9 BcN$8[ZrDz2^&Ws]i@ sJ:OU5mm |m# )>W14cq7HK4?N6[྄ |kb U[nfg^ͷz#wRi?w3έU8Q)3Jʂ)yw?e7$ڀЏ20*IiOg'ZH{K#hbvK 6G0/+xG"5e׷·.t ^qAzuSݜ_E{#ds <렆c%&J8kb0۟AݎaRŘYh"dB_ϟo9CSc rˬe kjK AFnllLr$y eFIDATxyewU-:^>9uSIQD+QD}At }׆\DA@K*զSow߷wJ|ݬ[oƜs9=^;ζl;ۿyw.ζl;ۿٮ`|u~Ul kržIVWv18߷Zqtx^n?]݁,zf 0X4vvů߭UkhwAT8c (Wy Vq122jqӮ$Μ=/I(A(@R" VQ(lը+*:AKc;QD2G(SESyQ4qGP,W04:]Y5w},xk3 j{&=/ `׮.Ecceq.d^k ٮԙ9exd[^?CXgZ"$lB^20<C36*..^0)V(*ܗ˼:@~ӵWYÃgK'$@r<baik@p (Kd2C`nUJŢ&DGpNh^WXon"Ү-#H \žՆ}e}ީq {\pA_P6 ^t?UB1MZ ^[ ѓLY=YZEX" /8m U@h6o!B) 5*nL5KC WAOL6 hE|Vq45 \k=ζ])[hi#og <aLoLX m3 $8;=.ч&wkep\ lӴm" Isoϝ#tRHg'XQ22e7kJ[],szzLel~ɂCx٥*ahh\?wu1׌U%|Z 3˼ׄ_U2nKBñp?]GkY6!Ef-;/"+pocY1np4QGGן NaZ h50Vj-cc={50w*ak,1I1m\VXlI2v`2̅,B_^y(>˝mggqEq'TSd1~2"8'j|{ jIbT㲷`CpB0'ӬQ1c*\a J86ֲ굺̥5ׇ(0H I1!sɬf Z}+,,,{M*A8j Ԙ.;]@l;AX絒+@淯/3 @sH|MaC"⊹ⱄĨϟ;G`% 5^ߥE-{&O_-]׊j箙8ynSt=`s'i]x 2-͟A1i B#Hvofυ|yuRip,ZX\Y5<${ z޴هgvoHM-]->RtFO֙!h lTJ2ye"q;x& e펟d~"Ȉ#DyOє{N&.d`lHdl~\2ym"{{}sY䟟bU23&֐1P`1gTVQ&W z, 9R}۴k炰shi{ W,lZ(hJ\v?׺^kڂTm4\< :rXCKűry3 /Ѽn?xqyxOlT ,x7ɔuF|e1"cT#fWR(Zhɵuf%>Cob,w+S` :ʙ61>1&894;!6ɐbhQX @zp| 2P@Y142ŚI7'pqϒDfm4Z(0;acv2={1UƣVF0>6s/]cnGٶvǍ:nGH?A^^WfW:jrgk9- _^qZO,Sxh R,$$Q($Z`Da49;MI2.8\bd[!ׇz۴- ZDJ`˅Ʈ[O.6bhte2BXlWx2|+9LelBw` G,#(G ~R)pɤ9'=W6WTBQ ~L2$_clC87?gkLt&c*b?O'$ ̟~o4SR3#g0FGQ7v_P0qeB{VA`(UM\f{棌B~Mݶ3ؙL!lep6#x:7[̞];@846'Pb5 5v/P!k;5}}ޏ}y05>9س$O~[ ~uZm=! <]e>b2 -|f +;󰹙~K}˝ߒ$Fp Y&:iOz">7!?EF5Se)G*DD UEX&򹢱&?M:'d4QTzPn8 VQyK` ^ &x^'ze,3/_l |qM1Y ?ϴ$Ua^.QX*"1LIe^{ Z_]{5{<&d5=/=[r0m{өԙ4dZ_-7% d*d .|dĘzVt cʂ =ȇDn^c>j-8[[%^"僃G+XVZtǻ3%w+u%8'FB .m N"t2;&x֪f>|8k >+M31` lt ǓoQ I}AƎV}s5{}eߥk;/I38Gff%JhPX+AH(VC:7ǏCܧC78T"DSek=YB!~cZY#dǪ!зQol̨Wlݠ5Ш^sșOT/nkI `br7vEhtc#I$$">(Bv., $dx vn-N$rbO@E`T.$;3Vӿ \)nRkSvܟ ȌYjA0>0 7& d2e꯭>1r}_E{Onq,ġCXV&_}݌ 赲S4Jv3}/..1-bRvMz5 bQO{\˄}v4=xך6{Rhj|E5[Q5 ^ǀIpQ(cuyq;- X_: D%WցjSL,?#5WH@Xx)smG !90o mҥjM8iLnJlj K&C|Uevo+k+m1_JdNk"2G DX\Z`pLxD+3GN,*lrsZ͚G1H`訁枙@NH̙6.+\2M(\`\%W"SM n+I0nvvN @Is)NntL>딤J=_ɫzz6:u[ydR \|vRxa{*0( |2Jiݖ\ŒfZTlQ( d"n=DB>ϙno>̞1 vEoM@"> ?|qa 81o؎d?~OV#!r ܖ9l)d. o?ES>HNqeZM,dzڴ1b!gIi΍OOV#ɱ1;Rf@#ȱxVТܨJd ʴu\v*/a- ;36VEO];ƌfJo2~V02fhHCF(M>WEc#XɮB#0uvÑtx^,ݤ+)4G0ɌZP-Pwaye26-=R:GHFY:r Pvcq(`u8A<$;Eh5tպ etIG,hEr VFURmvo xN oga{7;/΢A$X2Q1+Hͪp}B&Q )RX@ءk*[([;2qŔ+ "pmf]A|s_Œ1mOnk U2"bP2IP$v)i  D󽎊^רQ:^5ɷpe Yai,K+J-5~ Ui_:knc"Znt2n K0(XtO$RH M =,.BRJp%2d\^.MTǺXΛJh v9{=<' h4 - r,@ h*>ITՀ5Anvo6) MY◾񏨖ڳMa1¶!hYW9uPWpDDN?E<.IKʥIsdB*PiYoM5l]& s2+52Oıcxkvn7 f&4Iv$p v dV 4iR|zPrZ#"Gȃ^*fs,st̛6Q>X4CֻeY:fdZ8|u.^\4H ⢝K["S0ꪕwW.DVCOi 2{% 9IR.c^=}\ˎIu/:%|WM+2kd>O.l!-Vl'.#QY<Ғ) :Xb%Ko}?[ÖE:CB5⹵W"N7eϴh#sz* p_WOxJ߸ob^7w'8JOUMsR[ոaߋrf2O܋ =;`c玣}82_.3$&'vSWftC\ '9`4 xe2]"DS9yЪph O!i\.dϺNOXllYFlܛǮ@\$jH2p8Fa+k%-[BLﻂ?v'`-w _YP| Ow{~ _~/_{>wkY~_[M *=Oϒ:2hzMۦG"bo>"sz,gY^]0Xt4ʪI n Z»7vc=Kj^1+!=۷脕[\vVq(1)Cbr3M" krwqS/gF%5C8u ZtUneH򣺞ɕzK[#L@HZ%kS,EXeXLNO)>1{OnW͟~0/v_}Sp[k|:*moo4P:9ro08{[UvI*ixn?rնO9_;xB,3)/e>^z->]o?wG8ӱ 2Eh}^2H^s.[|;uOQb>g׶|h[gE]%Xs@Uqz6 Y5# J=ҏU?"X4 ̄~I}Wy:bXs@Urҗ2elf3ɣٜ,gLMv\1wd' o'h~Ni@K谲c仕*'fl{n~y<*>Oxe i3_-?|/72G1*|?=;v'^1bs8s񊗼wogl?}z~罯ua>^[wx-7 /< ؎DjL҆i|aR|VԂ紶Ubu~k5Ց@4<0O-l]@La,A5-~,r.f5 XQLp(#HQŸC$Պ[sfΜ9-M|Ļ7vMaphNIq_]92i߻s~:r-Ƣ>|7Gn73w9|9g_|2O^b <g-5/o| ޓ|>aPs {7Wn>ւN3'YAI([x:i%ϮJĕ5'$IQ" j$$1OO71ഖ4hEV\ʆ-yn"v環]Qm T`X(5mGXR/7X㷕iH *I`!v۾WU0Slwhpe&67|ˁV?+b5E-ֵ";#ֶH` ܐGjˍam.Z Ω )0#-ءÎSf˃ߋ{ˍo{p WvMC*nGSIAYR G2Qчm)H&*DC(}uDjYre9t2t3˗}4'QnU@ ~g׽TwGvgԤ߾ݽV9'av,t)Y< 8wq,M}N<ᮯ׎}׆+oz)!([wڏG8—ރO8'rvP+Xd&(ViZơeɱ\CL"0.#AIXq "%R_&0[cnw9`rDCf"oNҺJnY*%iq)V]+} d.#Ubm>@c{t/ ͳwvY(1_yIpZ\H ekO:jb~n>Jx"'s8*h3G*YG/@tX%JH領# [zȿȑI{& 妹$M5ʈdiFf{"pc.|w XR WY[/Xd&'~vxR:g|Ա /Q{)}_w5ć)~놘 b7+Wpidn&}]7Wir|6 oß}8PDk-p؞LLfVBLYF1>%N*e+PfiU)4Av^Qwa:ݎ xT0VͺAzݠ"[bFF\ T fyr95(cTh/UVZZ].^;دv.pJ*\SyXͺ%Є/'b5ʆQLQp_?f&m<ϯYZSe.<:vޏJƣ!CoKϝhJu;\h}mEjAD͊[k061iQ"suZ P7,jo;1:=EVn_z;f-vs{dQ 4@;>OGy_Ɠ><)e:ϕy:,q oq_y7qk8gcvXokXG]һ?UU7Ag>왙O;X>$rlj=Ev]~/ "z_>˖u7LTg֖'ǢDیR2ױ  kٍM!T"j`n.0(WPhT0?q)ᵾ߮SzZ\y4M~>]A$5Rn@Y7N|͓z XR׏i65H?stUdM(eERGV6٬[ª ;0yO6Hehpeu&y~8VrHI&ZsɊV [V`|4Wj+VU{o 5yXW)~E:,[Ge %|1Gjv^<6'Kog>: eԗ7)=pSkW\/޷?>3%u9x'׳pb'$}ht$ok3bOwfo8"46Vka,cG-9mD NA32A(/Ђc77.ѹLC=j#P gTsWqǐ3Bi9;U@/'l̢?Gj2UtqX75Ni& V+?vMMY-wZm"{:\B)kKMBxX6W*Mܗ 8Ww 1b9υfNLi7(ߡ*+R锌)TdBRK )Chlx F9X%n )bTߥ/Rؤ=?eSw#\HI7g\nޓRaê\\,; k^^K}e!w㋯{VV.Ľj<}>ޓco]c8;22/3g$_I5{o~Ǔq=?=?Exk5Ÿ~{?}xtS]¼Jm(4p`fL:ʉ⹇߂os_c [3Z&ͤj`Z|'Ѫ}6]'?zǧnq$n}H^/}~XZ/yͭ^{//_޷7;@%dʕml氲aVV'+iV||Зv LML`~a$X*䬚y+@Qq=3|g%i΍ڇWkʁexI-bae6WP bV(ç³[q<.dO#tʪi #p۬] _ ~汎um&#B&z.U!y}ϦAkҜFlRc#9`.)A ^mq|2 ],M-oru~gbwU4r#h ln*\,drߐU 5x>'8aʄD"{me;]vR:6jc2s?~2Ƹ5Tdzjm0j]^ǔngYȭ[]+,{'xd72P|c#禃ԵhFd܂W~wێ,iǞHL7N3"Ux'.X? \gNɷ"xҋGa)^bBd=@`f4I#Ys"T"b~w|vYY@>{4o{Ve>(%mF' ^14QfjmR<!y#mm. #nL7-Vz𴬇%8}ɂ]0`~g#tn+nQ @x}k'O4b?s8QF:ZaCԏ׮z"K 5 wy gc)R|/_[B * d_{?z0߳%]</L,]^{_?W~)|MO21st{k nOmI *IE]̭]#k;$J7m~:bmG˿ghʷeLڥ(wN,iV9V@M2! Z_PXT;00RUacҧaV/Ȝב+8At*is>wG*ymRExQܟn ~i92[*|1 '$CټLKLL$Pl"%-2, ¹ o說EPyT*I.뼆!^8WĹF럊c~#! ͟ٲTƞ1`ژVB,Is4*YkQ!znJ]'z/d>aA{w&?vGoXXF*4=)'~QSEs>*LOL)8Hbj|܀ݎ52RW!Bap* vT&% JXѡa33b+Y&S=;4VݰH{DZn*Rc2UZ^^fgk4ǐI"&`QȄd!|jϞ33̘@. 8,[N%q){]/.r nfl$/܁k9.:A22j>>TBXs_~/,JfuͭԮZ fCAR@q!=5?y^=c05u- ^,W(W֭1|qL((7(&~cFTާQJeGTf1mN&E0PƆ~ 7kha޾V k kyC=vOA/:Z? nn+WY. e\&&ӳ.&l?f_}SI2E1FE*&Ic8t蠱EK *ÿ"@MX`XZ $C)f eL_g/7\Zӎ2MX^OI8;A# i{C%8~'[Bv G1>RY9 R)7\dá9B/Go> bV+uonN;۵GݖVek-|y.iN<[=YCZa|rۢ#Ht>^z$\Aр+%V3__ 1ObJom6\H'= th̲Pĺu{ I<fSp؝W|J[*xɗ6|s\tZ( 5{kAy\v4-{vk!2N2PBi],СCWc(!&[{"Oh&ܾԑ!-q:~fwM98`^4ѳ"MMk[[[٥p]VV8.ՓlX<%QnX9&vOA,><@֨Y1#>*++Ѻȟd3B"+ܒI};.uTZ rXpخ;NqlshTAǭ041uϛ7h5&bzDV1R)KG!*!qeQ8 du>2fLrJĥbAKW~`2ifL`e(A*lv\Fipa侤e50)ӵ^KA'`~ٍ-Y.[QHa-'˝؋ߝd;L*AllYCd|g9qhqIۨ@GlT)6SQ{O1Iq12N20oE|eMȄ&أ no9JS[^lxr#C_-"3!xMF֔-ɘ`(/iî&VW{xp #dR6R\:3n~=W[:mvL_ +$j< \v}ˮ[BHGVͯZv7`m7$*z @ Kf uܼld6+Tc*ahقNj=!+𜋈eNfgfҴhX|.>f"@i SLwR3heu@R@ٮCmz58ă(4V@ګ0>jʿHFly=uoElMdVNQKsłZ0L6Fij Qv,7h*!{b&IyԌ\[[7_K͵*JyM452S|0@je&q.w.Z`F3?rXގ[ٽJJm MK ӟ4-<cAa2?wOb)Vc8N[i3N\/=9mr'Flqmrh5S d % bl|R\]fZǾLfS(dHS,M\i$6͖[C]$5yUBSqpʖB0j,q+G /--[-I\OGӔvP[GXOnXcf1xQSIѬ{qҢ0&ٳ jmM%A@RI'g.$QnnXh(4SVaWˁnnX2lA;hs (Gy]߼Cv@MQÞ'7HXq¨}jS6Y pz;`]5e,P~6'Om!cdlM:⃾kl֖ ӯEٮ, X6If\ Y!]զRPFʩFgl\ٳDOX `I#572xh>bFk(N4VW =4͛&5P ԂAeX'KuNtӆf2nE=1grU%RtOۂC]O[ y9,vF'kjmViE6G} ٸ*Y\Ֆ[)VhKN4E= 2BV(h5*!vY5Z]][l4:z,Әj]ӚbsV:OE{;rg0cp,,[Gfg`b`+K |XESꓳ3VAezĭ! Ԣ3]C J(DL7B`xɾVWFw}'^:vBԉ>11%_fѢ]EX-&2gJﺥ4Ns`h8P7;蟙m(׀eZ^. &ЀF)Rm_sye^}4-OGv)Onwi55R|C w0VOZ`| HUL!wq {}*[ex* 9r(cfo]zr[G>-l ْPvogcvbTwRnE.,p;X넑Qpd*$qG5SKTˏUOrV*+`^6A,aV5F1U&2/& y,,044a-nAfv}-8j ]'bQFfd4+VJakz EJi^KBֲWqE•jHL~L5$:ߐ蘯2[B,VGR Q:Gx0w2FxJsP!Y!d3a҄b)jՉ&Yo,X򹜝 sbCsIu.1A[MӞYo\zwlWV3azU,,5"R`yc]4,qv"N?oҏH&Y/6'=fQ[ nwM-$&$V'$>@ $D{V`cUDcvӓS=vA,Z#W_}31NAF1ʕS$?|sjV;V)mRƐk[_qwwzjfV3}#eFZ V zMlF:Nӯ)N ܚҍT̕(%L_#)JD"q[P$9H؈/U-_O;W"2 qhЊ+~INF6˶Pzs\2mlZLoIE$Ts3Dcmh4,TVP+vnf왙6d e(cGA]U}{~y,eS/INI$[ -zL#GXtiuȌFL9&JVD&c,l6oFhq1fKl@iv6M9XYZ5Mr-f0VX&j8{48z/Fpem >)p@TDcks_2YٟZF㔎T03%9":<>MndRE/A^ӼwX/rBj|RI%Q[R%HI/",(eݬ:FP?Y{2[ϜrlQyC:Ϻ1uh5YZ^#8M  ^8g.^8_|V#`bߊKi%  {%LϮoZJz^nk\T c CV\M`59}47#)T4i~^1fW<'/l}zF0L}k(}*fA% bV2 :F By'f NCu6Ƣ掐)._>Wbbfr0;EUu 26YJ1k渲~dQuizT^GtK Y9^gW NsI{醀z9^Ϫ0˱bKرrUX}תeXYīӲkY+$㏄nŒtX_0<pD"qI7]̲y_K7sR~iL=qߎ_~3 L\\{q6O~] ]HT;pRJ? `SLJni]|Ϻ^TyCrG{ | Գm*.={tT8Y|kDw ]bs%kby2 'L?t{|˘sBdqz_)*T!隚nk_thwۖިJ_i <IoUuTZ={ sϺl7_w#EPgX]9oCjciVxcDVgMpݨmba,FF ݍ,$I.52]5<>ȼ> Zk?o٭5Ku*,-NQ.-?D2mpW8uFr|<ٗjF3cŪh[v/3._Њ K7 %(JB=[OW#4vUA!(鏍YC@LhheREϊdY|uOmOүNVuooJs_7'^l>—Ϯе}X ܽӀo}/6ȝx߂ p{Ow8Ox?I/9/g= &Z[=[Xmvu$O=Yz7Xwr/|j 4D@)X.OI'Q" aQ\2P$f21{JSD2KzJG,PA-L>>LVXmvl Jɏ'2u{fiYe sp*t ؠ1a"bat-[IP_K(߉^c dB 焹dj$a_ m*>gXjnr풲ЖUue voGL7Jj!3'!cn3uXB.+Huh n@L PV š& %n:'G2mqlD, o?0xƌ-[gtSNnCݧNUp8U@-+{9,[ϚD8XWvk'݄Ko6~4-gt8禓~v7߻6ẻ;kGyqŻt8z!<-#^w;ßő^p/Ȃy'آ:BA*`G/acچ>-Pʲ[3. 4N&^PZYYkZiQnRoqth3P1Z nG&'en{<Pʭhio(;{16yTXV@DS!! cGa+@0I 5nϬ-'ƢjGQy]cClH%3H}ð7UC"5 =Y"a\S$+d3f[`fsMJ9HTRzMh$V MMza1 -+YثR:ւ涟,u=gg:26*2zq"z.,q"Km@+>!Z#=N$|OoLz?*p/]x'^&q{>qw?n79[zvE{oŋ^\!<6lZ}8>.wq^>]xǍ` Bp-aP@>{[?Fr!І~:{_7P) 4[iBa՚28;g<7l뷡#Ŷ pB [||Eg9A0Lr5,,.֎jM  ٛ!EY%,jzU붡c#mw fźtCWVl&@ asmPܸc!Ќw`-r˭%׎X|^R\:a u8ؾXWKu8XkSj. k 2N_MyXTvݺ*!cGTn^*99&baBLx5-;גnU@g(E8c,|/y}13 9hE j^^a 'FvbMy|'ߢч{vZŐuXP 0RIə9-7pڬ9efu"iV2yZͤE 2FҼA۲(4&'GCmRI?p@5mev?cq *WCEkEEҌ`0JXMy>WrqJK]Cbe~O#./r:1'[gd ȳ\~_6dKw%V}2rqK/޴Zq,GY 7*&VFHQ6ԝ'|B}lRǼ"#j:L]SŢ]6Ve\SN!)_H6ځǪC7{\׏qdIaS,-R<"Gݍl=yYMBv|75'~_ 8Jn>0oކZLgD1wq^0XG?C]~ ~s.k+.-.osG2}*v܂>Ԇ?*ߌoWK=#QKfދ@GjxvɔSZ_Yv*V%g&*a#%$sJVa(5-iE{UNFrӦ͚S[M`m;, Kzчq1#w%s@9SOsV@oTUn#f a2穔vhanVvDWZ̚9^֍\b !.("LFۃ[p Zx3Ǔqm؆H)G7X =.Pjy~%u1kk۟8 o:e^a|a҂S.kHb+E4J(osl\dž#8=lr𞌴XN ^QnQf}qj]tNOgq]3X![KdGv>~kxM;yw]ٴ#'NMПIL'OK6ӂ}h3{[;Mxt )-~xO~ {_Y~+> M'㙟p?cկp3{& o+ tA9ieU_ЫAÔEn;]`8NXhNa4]ZZ@h5pRSBɼ04%*QoKmk,p`~zš &)aK} XA я9y&aC¤@kmk1 L aZq~e@PG>,IؒfT]?wS69̭XVݢT[$k:yߚ0Zqeلdm.-,8-<~v R/"2%,'!iT POε BE ӆ€YV–i<ϧ$F|hdvke.4fjzɖum =LJlNH, 9,$/Ӫ =k/*$?RѤ7TQ5(5l"J' ,Nq '>#7`߂]˾^4͚vML1XRgc̋l=Ϟ ~ﹸz 'cÇq%qn6/p'.BSЌ7;z1z}} {q+/b(|*eA4v JV^K]WȤ03ft {tfR>9#ZՑ\ZhRvIMIo1lqӚ0 %TK)T"lRL}^j, &Є-[iшy8e + Mn[!hHJSXزъ8DMd dSrf$ TL}m\o[\/B][ʪta"T[΅II˫?ZTV=/$eԄ\8Ye-FWP}]2̈́(%$ՏCFVe[C٬ET y-nG= 0܎1哣2n1ٱk\s+Fr[ S)^zX̕,&FLoU :y)k;o9> E7= ϲ8'-?uw=n;/sUP|v :denA[[O n`bv/s3fsmz<aa <z;V4>_ebD).܋o㏣KɥjtOG<S@qr*QDن})otfSӚETOsǕaPGH&n:ؑC1 {:LJl.T:-^a;ŴXzb 7n4EClma_iͭg/.~j߄z۪Qht-+ lǏM 4/xǎ`M?qb$+6NMM ,`*6ȖVGCF"s b._rQsvԅ}b6<1}p6lD y0ӨՒyRY^zZ6TL&yP yCJ`c٬Y>e-\b*̡uSU5/+SW=OHM܌5񼮖l%-U$Rz%w X Cڭcɮɘ-}I\[K3ಗMG>s( }~oy6.0re,/ID~ RqϯPؑeIY£(?uI*H-K,~0flqQ.oCEo59$>هxg㺶s댵<*F~kq#)^-,窏i >sYh=ur^(nƑqwMBW/yX[ f{TD 3 ~Ft~1t$-Q $vMsgԴwjXu(KGCI?| s0`,FC1zaa Vfh1~rx:%pV/5R|Hoмi\BcmMCPJ5׭nV*DĆދdjE6AL. +|K5:ŒZs9ԚIa]eU\ן ]ي'UՔ-Cng5.| H-˅GWNo cq _|[0܊K2]n׳_Kjo*v; 45oڹ 'w^VC ~;UIӑ >Ɨ{ߏjT!tvb.+.[ i(l*|0EV˭X hVq5Y647 e!̝a8(LUl"FGFY&L_1) p V8r" Kmnldz 129 ~KcjJ>fevyDlG*[3͍ctmLȦϖʖNuQ. 7|nt#<~YD)v^z0|YG O/{>wqٛ?y;$ލt-sq|pSPC:% wEN>/y7.){y拸g݃]|;N} >~x{x,֞`Ig*uh#]~ȴ=U 86=;~K#,!k %(,L`wRe$mGkm] BCZ\Z7833@Ilaaϼ[:s%k9V(92>؍ nnVw:zBkSk%ڦaЖ~s xӞd<9WVNY]AAJ gy9 lʵi!ziYXf-e~/PdS3#L^RmiA%rz4N?$h\q޶YwI>vo|w. cKdҙƏ^^L m㪛%Wގ=Dw䩩NgXN֎n9O$j1 UG'u1oB{E]fJ uQ3910B6XEec آ AY2;wa.d7,x8c%ZԵPa0f%'CDnUavB6a#GSܴuʆ(AA+:S b,rtNX:7 `Eo_Z,0{ɋtYS7Ll^]H̺p`3'7Hjl-[r՜|k [.a/g=vWROJ *4Lf# Zܤ8;*gPIpf)Y]TGG~jpGfHÕڌ֌YAOv[ON377WKhS >)?1ک55>ń,4;뒍-'c\ /rS -սrb'[00q7MR)Y2%[) \WgQ[)l,j!R3 >زqu%U6o4DE e!9"m zW+̓1ei 'x5ǙIE&6H{ jUϓ,_H+pkF%&,-Xu$yr6Ul+ ,@CBC2lV# 6C1P~r9W2H&M3&fKMng! bflLvklȦbΙs|8sȟo$;bSXX*b\~9z ]Y}œ>>b%6mEw (;:0J{ [ S,C5iVWC`.{~_P Ɏ=)Z8\'h%l!gIA9|ɂՑ:>/# 2=C͂;g[XUlL̡!))Y&ч\py<)q `99>ޯMMƸ\P.[j/|-ڻ-!/_IF ,dSwP_~ lTZ,f3TDP͢Y6*cs] )p{=VYy|-?.#w$j`T/qZf‚2tfyD:]37<=g<}<DnpUBIj֑(uK&ɣʂNpڻP :׏.Y0sWX!;&(Z2VR\˘vo:=.t"[uVt`ݣ@Ia^{k*h8+'пn[m1=;# DJL]ȏ;&_9f֦:\]V_βVi^y1uRCRqt$ظVc$JuG¾Ԯ܆yAh'W@ɘjlbthoJՒ2К*5qmTEo8K6v Յ;6nk em`U:U3HdZVȲ6lr*?ayl~8n\v9t33>$W@! w{{Na+ aPn Q HKi;bqZL#'afW!b7_o% @xu.qrfnbkm>RxPo^tiN e++ڱ"#pS+%$^Ԅ}_8]Xa9ZXl6{≄1Kͅ5R˨:g&ݧ)N34.XN^l, dus2 J8ٌ3J Qdo8F\̩˼nr^K!VA63Lfce@d j}YX:{l#ה OchA3==H( 'd;圲y|N6A>?sY踁D~WT ekC"bx,O%@_B6$rrÍHJԪ ')!k^B X89#*uXǡlp̖Y$Yt(X}| TT rQOQ9YYMbOKEsLO0Խgqy@:J"A;Nihqy|i CsmY  63d^>' ׮1IPh}FVY'b7jf)G#pV \ggAx]S#j9u2dW9R^;:ZQ?5a4Lh*)΢KL/ҼZV5NX+s YF^w*l.5G|rn2 }ˆ ]QCrs#4 I7)oDN?BZ!᲻x߫lsI5OVi_]XXG{s(iqi`0&$7iYƚ%#Y@ 8]2"eu:"`~@J$ݹK[븐w.eICm_ )YY=?NV؄Vmcw(cSgfQbl_^n@F PP: xCgݲ!œ/VWvarZx<.SI eTkk0nu{mT3^/n `m3a^$Jfgf4$gC}n.c 4X>N0\@lz;]3&m[31I gS[*5c':\.MCąI6 5u,n U-p.C27ٙ) 82]5<.aCŪ aN)td86nܨ"KUC:I,:bd $d%yrr\{{vib feR 'ɢ8\[d1CN9rx?~߸++gm,6j;; 4 Ȇs#Mu}3.۫ Gp/{61,hzYceeY2z3g&,f ~K6è|^ ybuGeVήMZgFG1.ʾ(:C3b6[̧q%L yܪ$k yDZc"-%K ’:cհƪNرBJ0wѯF|Rdz(? <~sn6GJ l^.5 )!}BFFD dsl,H3/'5ʃ)3ڐaM R̷шn``PYZ*g ]eM7W yn P |5<N#+"*bso7t򑰗mx@a =& ٴ`hhH',HX0QNB3L oԢ 86Ah FȞuD;[-uwPi>YQGGozLN̪SMsSuj/xH5#TLJu55Gg *3i5_TPŗ061HcԠj.f0<I m9צjeVG_\% l %b2=%9QhKF#Ef*0DgY FAvg]D>S'Yj~L˦T0TE; = Sp*!uj:م;yYYՎ٤~߂ᰄPtT@JXE&hA# Q}2lIp&S@ ,°GF;di9f<0ؖ: 9#’ر\CY\PYڄ#GԆR/eKĵե!⊎l,,ɆQYTk*a]"TB%F 53rVw<_*X@$.,>y>ʉV)ɠlt<)Ww{yN,¬9$j%:F!Vu>UESԥj1%QQr֢McG`0mEY3ciHWK)m't\&^YSm}<4=vBpKs= b$jF؇1[8.aKCx}>cfק !-Y L8w;3MV Tp.ffMj[m 4L%8)\<8  h?Kj=Sԣu+ⵚY{\1!mʶ%2lyr(v auT:-G2`6EMM:{)+ PV$&3I!5x]RD~ZRP6sZ!spgf[3;ǽ>j4X>N^=ЀťA'UBR>l"8,SC>̷U`WtYYT7UoG F)hv| r–uXX2: 1Ѫy>WEkju,Ӑ9?|Al?sN&4\߻RQ͈uapͩ1 'T bƸ^Ɍu7i @?N.jE '`9WA!2|%:2;?X)@_^3.A5p**(i2\C<6/4X&!5G0gҩOŴ8fu~,,sju\ےSL **]0ϕD ^,&ଛ,Zrp0#׼NT.tNatT[Rs'~_QC2bSG}¯зހm;;my|x"pg)PM?8}My3ZKceYlFHP7;PGbEi@4Ԡ(h+6N2 paѮ$Vgfu%:sYva<u^&Ƶ&3ZZZUt:4fp z]FVoK,H^ qfaI o|Y0*?A) buݒLʾnK|yEsRV≸J{ޞ0(h̬v457all\sX!g,ntQ/ļ-%הX8T5@v[_liC۶7,-TSUO}?*߉>S? O msz9GïJ￾mZ0KczeIsa,|LLJav3'@gjw_H+>_$)8t*g34|,vH:G\@) C@%<;mW7u!euXGFFTTNƧޑlLQ͐. S\U6;i &4n$('&15>|>sqd/ d~yml [^8FGGE۳ ԩ5f_> ͧ[Zەx-+(`4+v#olGMu^Z̼充t+7Rఙrvjb a!tƅ3%mþ_TbkBXN%GkK ت/ҜGTF2ޞtvvd0w`!)գQCFi:D:fMVtvqMXTtnrie{EȎήNtvt*b. 9& 0<8f-CC䕕%%ZQs 31=> b59͓~6\s(QZS7ٝu3Jfl\B;*));9j=O-<7[ I$j@v^}NXlnn4fwj!9_3g5 _0ݫ}ݪz` ѡF\%)g^٩/| /@`yg} KOM㜍h  ug y`id,1[Qv7ތ3'oȏ1@s ؛@cc Go87-5}{G#U*!}HݱnzÚ.T:v俳8K;zԭd8b sUEp;  kt-EdVeĆ: ~y#Z޴y6lXBۇydUkGuy :ۨӸ:+s95Ih"s}gQavjIiDZgC86rD(AWg2YB ;pY {<Y1/6[#!Ҡc|P5 !2-#iu#Pg]md_sf;4(\pؽ .GEm 9//tm[0\8ZїUwaf[ZVF% EY7VaY,,121#5i6Z?$xK7] _$,Ȥ''gIg4dXxz0|kxD2q}oƋ?~#.4#w쇸w6zLk16vdNw7^7]~GN- &a˜XQ7ͧ) ۱i`X@gGs`109TLF^JB;ShEmN=d?6??dv-0{|Aؑ#:~9GWìiadžt6atlT᜶., 8G.~FV 5󅄀WA nyҝPhhk+6mڤ. )-SФ|щX젥 ;MwtvENաgú1gVmwJN /a>?3}aсgdzx 5\"]gS;6Q8t!֞\k-:* .fM>3BѰ[GŲlMyj/X*hy s evާp7.7N ,o|1n|? Q_XC%DZՅ9<a)џ݄__O΋a[þpr>3E'E7g| qL2aZ.쑑8\y߇<3Ier K@w2Œ -Z =%`6ldA;;g̫Q|V=h.cF/xjE k&H苹%͈=פ9tna^~W#|J~. n 71>Ps{u4F˰qk6+|xZa8mntvzd dFzk14jbFaıTPf{!7vXc f>cY^9eGزt*Hm~#MpĕWG 2~XV W~/=&r YE Auio5-ۺzaR04;64B4EU#by5¦YB>Aek\|eIRlVXY1&CA?VGt5I(U  CQx!o<&љ,Ы!j@j cϼH8sw'[Olfv|75'~_ 8Jn>0oކZW>e|oW{; gy;.@bM tr)E, QFKIta~0{y7  -ڢ?d2#8Xu84iRW"v#c#*H'ٮr8_qN zl:5a8QzW3ʊ(iۼyj;:r KAEjI+f"5E !Ԅtsزu~aa! i9+*f _\ktڬ\C&Rdgn1s~ 1ڻ,n6_7f5tiŞ#+)9)ƛiRaWMѽ#܁BYg rN #|gkB˦O=XS`,IxNe$=%c {}DHd ?U6yz2Ey]mƌ0噅Ʃ;8t=;q>?ě.Uw5ΔeՕR|݆R ,m/{nځ#ͦ|9Y ˏ| ~맇q}8zVTlw3.ŭ~|ԟJ;ˮϝJhe7OMb[z8% Eՠ^lsX\>= us[R^PcZUSӏ<]݆A/Jb az 7 ,ܦH&({$+d̉J:y>gf:A`uww/g!x=AG9%\-ܧ+92ڱQDFܽ |>R}2M Dc%':tIy^P&D 3-Z5k^S4Dtu vРC6ί4+z~|2W+5x:z8y6fO$\N)+%E}m"e.Y tñǰWS/PT!ܨ?JU[K禛QBeN[>Qxxu$RN&[kUhrdqc=ũ4xyhmE׎0a;-hZ}幱=8ٌy׳<8 UZln |tE Sˋ/=#~(&R"!nhb Mzs?==PLWξ"iEVEV61}jƶHzUƒšRd4` i6 3g"q.0JlyQ4bزu%<~28te{0;?P_mfՅt )@eE"jo<"!gulي 7+@b+H ghnFZs$%E'~bC䫭ECfj3d7?+jNLyE )fT +mɋ3!$t`jˤvB{O 9JU4dEZPnQv:47+{hґs~Mc7}z<6m!ej@9ژaJ)[8zVaȾVCi<ȣ6l悲ŬABtڸ 5%r(g1:֚qV,%VuOy=jWeGgT3KK.e~V)kp-eӸ!J?CG~˳qŇK.cyIvΕ$TRA!=vd/im2s/½]wcA҆|+$a8/;t^~F4%$ٷ47;f;kIåfDRt9()KPKzNmb(GBŢ\6gEKH#ch6#ɂaIQ@ΫE`2+Xw{'s);5k,m8;47F)lyRl^5>Gv݃Il=ch)_-v )"3¬*a7;^rݜ/K,n*e0FvɗoZ":XI$& h 1B='mᔝ֍8Z  wuc@Ph?6%WW C0Mh1*]("+PIS l X\sY]>sP2pVLU,// HuH pNX"7e ӀjfD%XbQ7?0\%f5.<, {KpU?,z&u݌?ŁTTBH.jjz[ n:%u%;QU$4E^NUc6~ZZj 0+L5HECG}:3G rǶ |CR%E1>6 :̟mݺuuURI+f+oX\ Fӹ,* /?tСC rl$r>L5_? 0iձutuwhILs`'J~d5xMy-lLfE$f彣=}[S1`OPR rm@[")ZlVMiLj%> hXT4R̤$ k~Z}d4{آC <5>7~B&uG)"6!:/_m؅B4#;?_|̄_xA G_0v66_PcEt=r\s)!9be6yậc?ĉ{>뽸fi#ÈxӹT-h0E1ɥ{/" ΩX-B]]QK!"jk~~Jnœ6|M#\~s:P7I{IS8:}O CdR8>rDyq34-@HfH\`dZ aɴ 5o:߯fYf gK -QFL!ѳmtReIxMr81,sm%o=rܗ}Y£xyՅ(p򕯠#W`{W^v-0Ӻ-(m}#Wo ϑpcf~/dZ᯿W$s_atZL6?ރp4oShinD@6M=}T0!5uB !8. @[YŨe/ۧHYx*UֈN}t?͍JI@*iȅ ϩV~7lXR6ُ~L{ j } 6o*ԖVatT):V{fD[֎mT=jwBEld8LkXޛ[zVU|9wo֜JUB1 AZFmD[QĶF@Tn[ &B!T*I;՝3ﵿ[ CsI;z{w%,$bNiUu$K32g?ʨpV]ȺG9< +cU^xk1{6O[.%N' =]БZզzϭ-ܩ 9ϋQ ;lkh}sS[| T0K:;f_ 7hG=;]T#i CrσZKN\:Rn26EJ# Dc+ﯴf~V4EB:Ϗ{^V[or0Q벼/z(HZO<ž!pRNH'jr_{^9u[aVըYt` y_xG01'!K11_@u\V=95/Hɰsl P.#װBmjl "jϜ-q¨IE*sRk,N?#mO{fFU0T\,rX߸ e4&o5]PfQBJϧc&f.]Ĕ&{Q!1Qc[IG+󳯸u9=Vy]r2 dxcx H3MZMaAC A8ao5ÔɐuV {VW UBReUZâL>Cu i[ȗ8 m道vU.3gpx 67%J"nX,ԑ 6 oYѾ3>ݲ`Nd 'sQAODONB,7>ђ'+n8~@5^0;,в ØYGP7mbBmv~Y6(S…Z osLרRo4뢦TCBîIV)Z^Y@R@߬H% 6!M!{\56r殆lKpze9=MTz][]z_|~h|D6^3xUL`W<r0K8t6ŘZlaS(NnkYDGΛ amU .]p^>D:2a/6B|6t6 ){DZN`muNkW,SFjƛͮBjo4.}xЩb5 EO< 6 \tZ6Zk8' 51n s(]B>ۅEs&IRyE L&4HPz.,x_vwwuiWf&v?QS0i64HA6&ϐar2I)9kft85rMu׶X4%T|^K!x7ܿ,0%]Kj w r҅r{mu̅E>0lj.},,^\?AQ@[]9+@M**.Ҳ0.TΩ `0scuUL#Iln](0\rifBE^,|Ǯ ../bcFj16S0$p~/USN"-#Ã*]. ׇGpk~OITk*?bдEm H D|Yط66\2Aqgw&֌ɓ6aMKi~uO OI_;CN  caSrlix78n&J&\f -)#NdUe>rlytBnO`? ?z[nxw:Kz/@TSpYiȷI|~-{@m{dSXXjt0Ss[jj9m#0XTʴ'jUyqU*>03} M=_U;B8Ƶ= jEnVvn#ӆ>sVVUvxT"֥ :'Wi.̱^ 3Bgv>D*JJ]A5_52/-3%ל:r Bf.]~y<;X(bk}Azk+y>+=1Y'pԴՑBum6{{lw,D%6k#UCX`CXu0 E_.|ypY K\ y *>r JnmUa<~ %baNya7$ J4H"ƒnQ¼٨YMSvT2Vm(]XruFYT wfhדOݖ#x1){0@ 2cV g34 c^{ h L@`Pg bM?C`th58ƶ"1dK ߇{=Ǖ%ɱE{jk ΪuOODчi ݔtĴc{qɛTI$$0j[b0JhN)ռ/*-͵2fOfW_عkޫ`ry Wv!1h\ XjmM\F'!8b=^9[pH͉sh1GQz<ާBހ5X,r:}}დ*8QKV6[hSG`0zG;CA}>ڀr^UP(&$&])?I\\M XW&G͝ 9x pD8R鼰[$ /N =,J.RH,(.`5rgtK*ehjGV&~ﭭm ]W2H pqw༄Ldr%uejBvv\p6:]Vvqåb^Cxv Khlm/ʱ{Txd0WXi!_H6&Y.bs%J8 H&%lnyn1fF#[0 ;t " lRڀo/]U8>Ҿ%[\jm*(I84YsZ_ ;OF[W$<[[Vs\PӖ x|@qӺBT\] j~0#3zPWCTzNQ^!vW[![mcD ζSon#N!dC](MC&Fuυ&zNY & vN8j&kUo"./.& ,`@P9UKp"cE]xi,l cD)kN3%GC]-2UfyoLsaO'|6X9JCAwY+|MJtjgc-$e*GS2 slXU V(ZX^B>v$lخ-RagMD}ʲY AiUO;M^{>XW7X^K} ˜,…%1 <{,?` r5i8:@0 .0X"Ii|'EץEw& $ *HÇ4Zq}pM8z:Ufp5LIZڕk֐2Ikg%5N>2_((Xx$w9\ (8FP`a=~EorN.n(}f ov P^lꪰŅ2 M{ZEd܌4 Q^{<[ͺ)L=Pgvx}ጝ -`h٬ [J  ÜNLNC3/* LBsSso@0ZKC{ӐEbgB%I0 [Vsss[֖l(4dM'ɮ:k@L0Wnohcp Af̂#1H$VVWtsF_A~I3&v3l:Qe})6A. *jFQ`0 ~+ z]w#葐-^IIn4ĶP,3ڣs84} f/^RBbgӇTļ'$CwzmjgOt۞e]ORFGzͤL[zG@㠷^sq{t# Md MIR<A")V]sʬڳTҮ 2GJrjxgmG o#x=x>7ÇW~G-}7O>ӏL1Sw 6r3//{hn"ֆ"ʑe:Y&MWmPiQ(ʐ F!E1Ǽؐl mq3M-!'#,e]6pYURRNF ah@Tm<^6ʾx!dj$uV҅뼛ˋ礙vP s:2'NW"%7Ki6O 8nȞL \2߸Mq9xw2M@y`ꀎe*ω)ccc h,) xds\@8PVus [ƴH^Vk='Y2SFb*9GnrM>Pդ- Ls#}ɪ㑠:1dhWZ;_ˇ՚jj-|go9 [iu0/y>W^~>qy&e3#xOԯLk-?!34w+/}"/^3Ԃ0!}l(v|#|i&cdFY<1?/-%ԓ?NϮ,ceg evSxّcڇ^e,L,uߩ{7]9m {{znrp/&˒<#~ i>LܖM&w`blaG>͓^cP%yu {O!{D¿~e"qc l3Oֹ8SSSI(_.I(=ۦri Y5(&TKk"]{dV8rXfʊ0y3uAwTCJ\K/(W&O&BIpECɃ^d:qhZyPOڳERmƼ轵{=[KOIjς!doBA.J JXܱM01ϗWӮ*"z~|M"CH~#pqJŝ—>&[,]}|k?7XA*<p~ wG?zoū%=Cc{g~ͯ@';ވ_h[v vl?gv:ߔ|+8>zI!|sCM<SXzn4xq\\ŅU(|'Y~*'-2fZN?APzlUM%k( u-1T=lea$[Q­hwp)%-,l`qcy8xfy \hn$aRsR(,<>/ܹ&QFT@F,[#FfGo օx0U@(\:&Rm`e\.*8XRG 5ftZc>hLcm5߯UP'W&n #pyt}1 vxWh[K"Ԙ p??| o܎ F GS7e O u > Tp?/8pm,pOߋ!?LˈWf^ѓ7bH~t~{{zsN= s7|'o8(x3{7n}7qq7މG5y:I{qQ̍cl^y(&ſ%(fVV*WԆ $` e Ѕha1k1^l 8]ڸYq !2;jV1=̺LN=ڴ\K$ܷ۬jHO Q >: Cw $+pZJ1'@ E- 65OQu?8idv[]Bx EYH!FĚ|~ 3Ç ,n2dddYdk{#`wd$mӨl7aUBCo&%MV}:C*Z&dzQr5ouU+[ [VuTv?:mV#Air [0˚V`^l1Td݌$iqKfStTbv3 > U{}øY~0AgMˮ|0͞ZW1y  T\#809káע-1yI|TX x  ϡkcPޗc;5Vܝ>:%:yG_?zЎ{o; LpO?!샘m4eDLj?`Ȣ< qP-UU*}HZW!] \Y:tMeҙ8U cj׷^Ar$ݴ,p虩"]Nf*{1u$5+`֦<&`%^B**'M;*X[BaK{zeė`PHJ=AxGѰvm Y.inԚyҜ'N9k׍ͦ {f~F0}=0}a $ Jn1s`Z[7 ^+xeŕK5h=W#-fџunsIWT:Wӥ\W2DmvNg#ȶ^|nW W4& _t7X{Ο~9KVV~fx[׌"`if c}oޜ!wzC>E܌IQ:ycs_0NZa:νqΗ1č.ʗ×Cǃy6ɉ'aXIwp_򿼴=XzY@qg!Yt arUyi ;IRܚcWVW 41  dy6]kGm C7oBN>.eWX傡DMOhhiTXTTki1 [x|:Mi=,Jl57X5/t!Z'$G&*$Lsef'\y fa805s!s7cJ##dB9 &Pv$vx&M-:5?/1 +' )|Mj.פֿ9a$#+lBy)۲4S7˾#7r,x K^,OBQEbԮ>~qLenkq{IN+㲘fxC.z6VOr~ǚ"'c{p'qfxsҝWt ˱@j/ fIdvyPPOgU\VG4ڊJ$#gln7[8y .Ql'a=@]oЮvfc\R^Q@Bc, kJj[}(Fibiʹ WL) {3~dߧv'!)(Z& V9;xW>t zBda3WJS>`l-NW299{⣨ HV*cBecbBۏ;s{˩fQp'qŸ'ނO>G?'ލ]|o٭Q,)/}xݧx1{ L@Y!nJ^njB\{sA\8;UP`QpϱeUS"sM5K̨0ʚiQ5^$#v*~;zu$gаFn]wr 4̦H eZfwsLLNF>[TAsMG%{ESvrM{O|JsHXYfa-;wE'Wfph(&LMYeC*d U\#.Ĺ2Cv 9Q&ʵW _K nnok9F;k-|(`_WzydTu2QMsCύm;8biWJ [>i )=!mKmv̪-F\Сgr !_RhԍMBZݐ9lIF!^ė>z3 ?};Gqo9O584o_ śk=[B)(iCO3ܚ><=dlqͯ mYԆN-6iQ ya>)چ,ĮVxª2T9RAe&`$S[fêHeSuqx'UvIz `DXNg3:7dv.`8z iFԨԱcGkR"OiynnK%9ȗnAS#a6 N5f0 뚬@tḧ́ӽl)żWYQ7l8ݒOP4"YOa5{+r5lZX$ G-txT[ׅ\/\{hQwI/ x8O~_=0{QKga灧Wxx_ޫī^{#x+_xLkq[>G}C#G(qy¨Yڗ?O;|8\2O+_%wALaٍ὿ca#]ƈ廲_?{'^̲fiɵE-,LGBD:cl"زGGB/;?vea񞈄Y#@vU;榎|Ҳ(f!!|WZS2SMmM#ERBjn]K^&)Q%:Ly=yJKAk!3qqiB0"6xVWe; ܁Nj0b%Fް21[)c#$XRpv&R s52<*6a={yıENrTsEYVWIdlmtѸ%A2Q2A^<7ޫ|}!f޲Yąv)߱Y== |.VMpY"6i*:TK% >WOxB6*^\[ȧv1~{Tˍe#vE 3kx>7a|}8xFj׾kcҳN%T)  ʃ3hVxj6WǾ0M._x~?x'W;OpJ/'iL׹*wM{B -. ;+x~~?[o7p~ߊ],<$46g?XyŇg?4VXe\[JXh+a]S(! )~]i'TZCo)Iƹ0Weۏ-3 fέI+uh,@%x' 2i\uװVY~(ސ4[;IvYZʌfV9>T0VkDTYAS}63 FFe-dqZ fAƭ"usc&p@h zZz蠔Kp %1ޝdٰة gLg0O|*$1䦂L޻+#&Iֲzi2uϙBO<@I'$i!V \RfJ:r_CiTJYĐT=#ecF2S;x_ IfI>#ç^ a!|A&L9*/7~xυ?2⳿oQ˿?__g#~p?0_?Вn{~ o.eяaWO❟U|&|}qE O}G=[^z+˯]ߜu7 b {?p7[|_!Ks-40f 3՛*!x ^WP[ k${ Z10Yr UOŮ̎L8a l&%&RS^FdV3 ꬡluAwunQ G! :z9 ;f5ɦ bJiI6Q11]2j~ei[ ^u]@ʂV7u߯!Q = nF9v9nrmdWnSer!<;j\ss7$CT$g d(<00şKL^ρ#mJ0^@K0!eOVkD"1m pykJ6R[39rH 6ds{ V>6~wnIWg/llbMgބ$ `3;~f-?9۷ ?oE_pQw<4׽ 𮧳x?VyqFߖYEk~+KXY^W/2:'+wHo@{}9ԋ}ҏ/\ҜՔfSB,Ē2ˀҕFIBa:4vK|M!+^XheY-V hٙ4)|3$/ ^IYZq$-9HҫY%.dZtU;E1 hq >P^֎jFȊ}DNYbC:7JG쬎TVHHF$ gc_ۚDfCQ-XOs]a\vU<ݡ49::|5dөd9:4͆3 y U8n5i%} Ud'G?_pJ->_+3:s8ZU_MͩEײ_ `YOm'3X=yG76ɮ~0͏>g?)"p=O`3_CկÉ17?MlLKңx`.!/ 5ШZi%Kgt ’+DBR-D( gkI.FSZV^9/@2MK'zHu7 8ȷ3+eWv-,  N箭E&>\쉦s#qΔa5ӾhZKV${ϭj68<6nk6ytngnC/_F"pVphwYDGfXHƌlϥ[o s ߲տ5!֌av.1$o164 u{ZǕ3Z4GO[7ZSEr'I1KBd([@.ACP8W#p=ΠD*l^衂xl@OW/X?~?( f 7U{~3{A-= |M?62cߵ&mxt,];PƧ{y{5{W]  v.tവE/]@ :bׅlg^ %4ٔj(բNkl S b=Q*%t`!&]ym iu'awec~amaYcj76}POhBC_?-ڏQp^1qqЛ_do$ +d:ZWh:J?7*IW2Tv 3gX=i7{&šHUOo\Xnzc޳ ʕZ{dg؊\r r/z=dqakHЬ#CjTUGԔyDԑ  .UM8bfIA/^[}us9b"Vo_\Hl.*uc!)֗\WtEX8~Lf񘻜(`P 8[aZ45ۘ@TK `##/Nu9\K۬e*NM#?͚\MllWQ6G.W :J%5l-a_N[XߑhHsșUSVB^^/5MU+= k-$g{{K&׷RjWI0'ayR}.(!JIu4bItR@ް4ڭ2EwvKj1?lוf6am" ~ W9lm,jBv.ap gkE_< E!sd|IGftva io-(/~a<+y-١3>>Ʉl\|&@{} +Z#>$dnK p>%_^]DA$6eS`)0@.%h M7[KfaTz>8(r g@`7 }In#$׭T"ak< C=8k<TWAXjj-Z VXjR*TFNͦF|Jui^a%Qm؇XT.dpHU JjNըQ-1'0!/lխbu`d[54蟐T6% r [.  ay~ըlB<2k#4@|Q iCܬZRYaV/%TL7t-H͖MV~y=Tev.щ1nr+ е3O>r|iA[08|9h/u&KAy078*y.;`\VɭZ%YV i^w n 8EcBCB@&eSd!>gP^çL\s\BVe#X`D]u,sNv\YUgm:ZeVP% Ji c=SWduZvjNl p/+Wrww12+b6a<ΆS7 fiqaؒכNmolV~b[  )H]C]ʊʵ?yRX3tR%rWl!F`,ǟzBrShc s2Ǭbz`ww{Ϯͮe,lF}-;X]j^O}'`dxDGst<>{Uq1yqec߄⓺2_6T*=k]Jvq\n*!Y[&&qVHVYͬ {`a]]Fe#]\[h y4%_d  T,t $,V [ .2b$V'GM^dwGZNx94+*%%4w9ꄓNTGMȤBI,~Ɵ]AإcՏ\JGc(R. 4w *'=Ȉ0uAg0L*yH9Nc\ͬҾens 꾓c+L "C[Rglb+׺#{8sZ1'd398h[#֪3eq1j BSaC%Y ϗpC`\3hhll[MVm \;3 }BPsL>>/|+ksۢ2٭jTٷ@ad~CQYISؓYQjU5d2;&%1_agtE 4JpR&SM:.R!ih9Z2(=E|E9pL74>askRܡ.r+]0ԃpJ_;R*QQ> Z>ͧK;TR&h|'[m:?'pG:pl|wZ vS JA_pQ,\^QLV)XgޒE:2i73mj%pEX}*g^|n (lWZHDQ( 4D,9Ph?ŁzYxRJl¼1u̦.0Ur%$lE <yP6F b37ɣݩNj蠄]all/)a2} 6Ca )mX[CC?^$FvW} BHx63 3ȴAYGd!;eumcq j%v-X؝ ހvxv S!/h kZ.׵8pB!YtJ- 1>6?j=ii*2GJ!vYUsp;;:xk˚q~2h TF S,. ͫfU*&Fb"MKKm|#?&'56FqLxh0j<p뭷\VWVV4:;{I~wX[ SdBĎ|n`sakr*d:+ѐ&h Wvj{.$&.<}SzG9 沜Or\T?[h3[ױ,4jHXGeD{J$WlKt``,* YZ3z slXe}DAٔJ`\Gd.ņ\SJxVuk,_\1:8 ! j1,SF4Pn5 .ki8R9a@:G ׷%|T!Qþz]64HVԄհ)eQʼȮ5a}cQZ-a6Q/e 06'PiaieNοcj*i҄\[lž} ۫FLLi'N |(  ak#RwpAcLV!;JqAH@hIn:tPBwJ:<dS l*!0JӧE 0Uln8kQF永'CvnB6 R998W[][T˰%T[sEfgI 4憄, r @w(f|^:Jvwl5o8dWLlVZeO)cQH[ӌ)5a(cZʇΎc>`&ʗ_G@BbFBJUe'':l md36.? CL ;nNzȰ5/Қ:7 ìZGMato]4bJ@/'dFGThFp ll zeZ紨ЛFmt邚Ujl 6"WyT4Gf[uZ! yr{KS BE 0:ү*}3SIALJ{i!BT#/-충OׯR̭ia渍~f:2rawĒ,r}ގ\畅'$cy<' gMMT>[-}?ʝzCykղq֍ HTEma)qk[; 6LŎW3kZ)oE:C4a}oH/ZA ڳU[<<<ڲG_׃JrSY. Io<64?VZ(iG_iV+BV)avٰ&fGV%& ͕wUT opݻMU#͌;Zc|yk{=7d6h7b'px ,A I8%a72^Wʂr".8Al;UǬڃ>Y1 k_U1uYkO[`cdqianvobaL*kb $u3>~Rt!B-NK9Fڽʑt1#% }n&Ma=7v8s\C-"Q4at;UʩVO{ޛ6U XR>3;LRiP^rŪcOaX2U /O$^\7= 6 Gke{%3\[mV[0vX&?g vd6xjW?w cwpa"b[$Jĵ$%{.SMW831ia#yGCC޼!/@ f%2i#FKHa7[Kۨ7 Y^6vz֣GhG*IK:I&s͙PsHZHg4!x;zHv\CXo\V>LfVn '6tGz'g4p1 q_8t\_P*7 RU^c t/*W_\K:V=aX}J>ๆM~%Lih&8 v,`z漚/ٽdd jcj-aAS,#b ?&[E'i#5bsఓ{~[)!ұQ+XlUst K5ȹvbKfkkVU7"ϼހ=Vحp#o}{?7W?yû/60v:އog |υ7}h&ˣU%- hYcx7J?gNux_/ 煸@xPaCK3.]~gqe@z^<| ((bN X՚s+,,`h~nM[Ʋ \ B-rK)y2:x!u-*,'Q1$HمjfQXjE\J:)Ydq 0V 8a@\V*H bC3+! !¨;u:\H1ޏ ѻ~/kW=#.k0ݱ",!v 5zR|P]GbjT/ϋJL-ڵ-ClIX9w`:/)M]e:Ů |ZW"绤%T$V{K'* .OQ%DrH&Кu.΢7chx:}9 ôh &9QPgC"Íbf+_1UHp>}Ȥ8CG@]ѠyV9 g%|[u, hBtm83rR}!zs"sr2(DY]|Țwޣx23xV:폆L{dȱ#xֳ,p3ɝlޑ<zq㈴ .|*$%Z$@lţU%MW]ueOzLy҈YDuvJH-B4:-m@wJϿYMPJ M+Q S!<.)8%brK}n8 =֋,qg?&*/BSFvs?D» ??Є|-xٶI }'k?ϓo/* /$uJj9tɖP5܌ss3Z 5(h0.!u7k1b.rF`erŪm|B+_iR&q%unWv }َXvHߤr&[Vy^&v-/ :C5TnY{1:vD#l+OiN aVUMARM&P~"uWLd X. Д[x:\ }zRJ42rT쿶 hu8鐞T^XB:hAWgJ?;ƮཿU:L_ Oksь7so1uxXf^f0+sʄ)MNg&+(asOk;" b8>= deZ{8F7:?=FKUi v-V'BilpX *HMXH;L鼝:;.9 deM!ۅ XV,xXR9>f=?KҧG8ZךHmKVڏ?sh2l4O|9԰NM|ŕe ;NlTeL5t..CRW}&.a*FOLʆDouba0dK(dwn̊i\p䜋8q(f'稱5;dMjES:} %$jiY#=k.Y fo Mx|z쟛~{ׂO?)ۅw =H-_/4?˾s%n򫇗Nfж02a @ q"Ȕsj&a[njéqYA(~ n }Zj^#hrю ؀Er!mV~" mF.$mLYˬaj,ʤ,rýFVu-Ѡ#+eCNpBAt8|i ;܆(zJM\gGMXhX|(ur T*Y]]5:;ܪv iam޽{ݞ??.ʌ_XP{@ZfDdyO =Y=}I-'ijlt G07#ulۅ[6cdt>-heWrLa[uv:)]c2]݂T q,hQ/E6 3 Qy_) VS/e4]E՛g^cFWB1|q88nޏ?~&+ d\Qt\R\Ť,/50ROΛ~E>7%.wT 3]v|#@RqQRQ1jW(fLͨ\-h۬9t!Ora9i[:JIL˹yl.bQت#S7qSZՂKRv;530D4&c3 `1>0G3[rdqJ/!a9Η6:1e0U t'&&w(>=7|ۭ[ufP¸YAsˡ\F0܈ #Ao;"Mj<ۆsuo[ɿy߫) >8Z}MǂW=zqW~@g 3zIG1ZRJQX$4d HZg)׾^7+(1cn_ <=2lē?s~E];]YC z/_?G׸#Sxޗ>w[W^ܸm?|ހk=ҡTRAҠY-k!,WYBj<謬ȥb?}$ ƪڮ8mzۅ@ ]M: *QEM Ũ. -6/: 1*eɥ9Ea9,hz 0q8҈+lA͉-phYSnbk(GV"eĘ3-hRHoHlRrDz*"vihgG/ۧ`:NC,V-..h7N#9m|>#BiNv˦M r ܄Xv[u!MA?D`vZ447X*Cr8@rˌG`4afn0V,2J͉ 69:leU3Tr-{p8Ly8e- }>D-EKp=3{U`v_H O޼o~Opɿse<~h).ݓa>|I|_ɒ 1{|_qc7/'xNufUc+ ԊxlUQ`ц/"`JC 9D,],=}CfM:GawɣRZ)/Ht(y t@;53o:-B4̠Hg{5ܴu+6h 2?IQ`V@@0`Sl$AygT{JiGF ^Sť }m]IS^ػka]nYmjJBM$sᰜ): _C87 lSأ6Jٮ̸ꆦP\ԱVW { ==1۱5V"Q%/û}~h{їp2ħ}'n^{:ց7aYaRECv_]k/dA%\Rή揕YzÉ(@1'8H$p(e/'X-bUV+H d5Lm$xp,+(9(_NMw,@\GEdf  œ)]x.G.JE8үJnGu5;ל +H(]<'Y; ٩E5}꫟7fgfvV~>-hme>pyy{6Db9Y)-~iLNO,xUʌ k?/CZŢ1)"QM+*ϝ9Q=޳ VtOhORA8|xrK6ϵ2;[`a(ȪۍlV e7|YM~Xv$=XbeNOM\ق\-fE6F_%.U 4@Si\U 0:,p j 7E6&5}.ɩ)\qe8 C1 QB*'6v @!?^&$9 H@MVau%\2>+ ${=Au#D:T+Y0_G"Gݬc6,,D}.<z&&&tF0GM( \ְj9]q!1|AlN]hn\)BXnN.>|(@l$Qʤ1;IMhyv &SJՌ\wW79!%*pògԤCH'1XZMwījhэ_@/ G]p㖇g/ XZ"v3LHBoc̲ v؀Qkn tvTGǏLFg1_#zFXh:M5LVnh,|nb\a"sοaK^KJb)!f6Ob2@| Xg07"ʅqQ{ BԊnί ma":{Gcmd02r,+TΐΦP %8Jy^W\Y: [!B.tgk*ۻ{7uכR"/sd,!vL>,Dhmoǹ1M-,--k%8|^[F[+#*y!?y_B: $v܃r5$* =bW[?6-;]a늰 7k]A佒 ǴK /z}ݿvB _6\7<%_l_9,eri=]]zܰ/۴̒}2gBUw49Y, ZȰY0mT#8$ᯕH*a{vj>WEa|C)zv7 &xs%7t.OE}"Ͳ*g5D:6#B~9V( :Ǩ&vLGN$ڠ5Ckҙ6۷lөϸ9*/lÍ*tЗnva^~1;7#WFDʹsgq5d5N>dW_}JBT"}5`{(/.*X޻c ={,9ߥi''JM(+FMjz޹"żʊٜ&Boٕm7 3GaI m٫ 9ja͡wx4<tG!1 adrtfǔ}9Yq1%ed %TM3n` [%LN8"*+ud; ¨*fj FEy-~Ls502Y3cu6R f\Ks* }YR͑VfVJD(̦W\Ny=oDofN&Q$d3Ζjz=ۨANka5ԕ=nSvȠ߫f¶o٪WT\5Lq,.QƦ[$DcTI> >v[71uY$,gu XF ??zٹYaz$nWw&3T^{-󹢰v o*Y=\jX7VSZ!g$-HdbW ն8:/j&6S,[Hd~\B~Z,-]-QֱUce=Wb5`=.& jI 2USZ""6 :ˇUkW8cps1?u@au1PSKH#|\-hA=#[_>97 - 107"L*3gFۿQ*;t swϺd:;k"t7 42,ӉktIoClFN75d "oYF&r)=ҪvxSXE14I}:Z;uy8Җ_T+?;B?-(ޔa)s6whJ Ӄ>vxY}gʀt8tHӥUNQS .'k18 yMF/8o rYD5W徒g|##ӇƏpc`v~dnټi}Vqa_TtPZ?.xߪ,+/jYСP|"n2jmVVG }pXB ;V}nGD6 LXM|l%}x {v0.r9CY)8[:5K(UW25 K jb@n˿WdX f[]%lr5-C7ѳZ|2Y;m.|iDBvs~ N5[(beSUyYFD\QeqwSz⠎5 D޻u887z<26jSibi8M`.ABA7;7(yi191$%P1옚4P/X!,NTMKdY[L%-Z@)U@K._65al_-`-(Y  m! O{aU+jE$7&@ ՆFl"L0%fWVM:Y"5KAPG*UvZ/%T&jcGPooWXaj1nf = Et';69f,>X~->yL;[bM$B͆K]. xL@qIY\MMmTSPעOyYs}X.)0-w ֆ}F0\}{.٩uSn8,`,]CV|u\srx"mAq+QV'ѷb)&pV՛:PUx-vu(cr>.Oc!ٺi'چ;{LrF':]Vq8̊0|q?Ȁ`1JvW/0765ZVcX#:5Q@fR.P6o R>tDZ񊅕$1j,j)r9]h\dt,-)A@2C5#jxU0 J6)G+o_(7bɼLmalި]Ma㏩ ٶ-۔Ss 9(G+K7hbh1:-原:&Σa8mֆ;`R|# ށNd9; ]s5BN</ LM==rHqpx`:ZL撗` Rjsy7n4 9nNAKG/!6,gH蜧.jr G9:r[,D+P3JT%&6nyF;O1(a8T¶53 dTIJ0,4~5TmI!/9eqyeKh6!,Fouל,air#uɪ2*x-0ɸ_WXI{NruA,޸Uy {n gz{\:v֮A|JبCOTV]Jv# MkDM'AX(LjޛD2q Z7l@ߐ=r.bIo*jEDPA7(2nA20999X魛, Q3*=,gB/7]C4`C9}?Ws /@Vj6u<ήN6,VQcjȦpZ11b)WZM]$Ϟv͈l7ͳuРBZCA Ѯ"\sl_GNqYj/UIAo(* ->Xѱl[mnnLdJ לw/.,j:"kߌHufn; &@Upӳ*7ٺa#z:^G5Sz,Aʈk.DPpֆ ;pC7@\P vnb ^Vy N'}09.UEL6'P&=nDžFju] VkU0h5*W* HT]`=]c'RRSFJQXM?u % *sT' ;axLY0QSjvEq''Ԍ80` BO,OSvtAݨ9L6V8˩yQ"S3ڦhzOo__fGZ0ZU2T汝UQEX<5[ۺ$raEY S6xKTX0Fzkx$#6_*:n4٭Ui4BTaW@1{iin3 hQ Xmht )l.L&+ظnMmN5yG=qYssX¢>|Ajdt\{ۃ Vht+9 \LUp*dIg2nGSJNHMea4EviZcjz\h*BB.șSz=4lz\<|ttQ|a^hgw/LuSmR-M(: hKH$`{^oC5w8\e ՂMddi@S`JAjp90կ&+1ė"+㡻~Tm& SLKLrꠍhtqlt4Uq6Ƞ34eh u #Y81d _`E̜ 6T`|QOBt) sދ`,|ssjEؕY")/$LɌV+R"z'skhBz.*˜-Vޓ`sc^ )7)WS:^ׁ/wJxs:vܨzbrjvJXLSn{P2Q>3ںhwwKm 6Z6cU:-ף9ڍ˞S7Hk+bUam _C{^yE:},a8}8gd] $M3'GR<䆍a4oWqYYdm:~7܆Vrwoơ#PY]#Cd4Y]5DV 9-Q][Yɶ*uORIE4{dpP0/``ܪբ:~js4o('ai/R |^7Nae:? & <Q \OA)qDWCdk;wUͦ"@O:_ОJJ(6ǩSg}p\Vwwwɦu@LZhǂfАY gÏ1tw'NdwtJ;iCxnR*dͮLә[>CN _iL,ѥIܬg9[pDQ됄 }/8l)(D )Dӫdyּ&v%l&[.ճAM':ڡ_(Xr̵LJ4y_rmU 5av,و %xT'ˢL(K.yHt\t&PȯEd<|6.sXK6X" $cywڡ]OyL-ȟb-'`(,CT?J8;bN_X!83=LFL8I2)jgG*p9va &S\yql޸A!VIut HFױדMcV龳*`ZԔA4Vq?$<~>SL& F0,R%Dd6BXBl r54#+b K>5XvU[F Ԭ-Eޜa]dK^=mZ~*2ZS%C{`wj\v{#ZDԐ `8]xcz4*ŤϔlXv<ņ Ø_T~P<l&XnAHJWWU\yE߯{7l"~}ys.ӯ#Uxoq5Ƥ\\zu;=Cl|^oIH;oƺQR#M u2M ɫ :DA$TtnfC,)y]!VXّSKnkE|[ptR+,(e6-lNp.4$;{-iuey6aKmlAm qn%y\˓kEuqD9yVէE ضm|C3^ <֥dX SN`tŬ\cO-!Iv !޽7\KJy,KLPvLmhMMj^^dnae+*.gȹNLjzdۖ-z_ɼ1&1Ua0&J<3Ȁ P#p ɨ^ H˦⎠$992MtjT9uiGY"tƍEwv-kKe{^|+~򒷬aZǾ}+\>|pê|t0_?~qś !|]b -}އo K/pso ޽׮L^+_p8 ?=04ralScKÜ N#Ɏ_.d NJAYL%|}C<# gMZ( jА,qOb\¬P{LNRVpRTnZ|ޖdtwgB Q 0YBPVh(Yp;06 oΜt:K.)E`ÐQH_c!eª\[|I͑1͑r 9`qu Gk- 򦊄ZW'g~MN*5`8"`ǐI<9ю[Tu9ђ,FF$-K"k< Rɘ2z|/0l*߷{Q(/ sBg^u-N:a Mr;Z;4)LXHclv rVޝ un@;{|{ 1>#W^ O'6N}_r|ge7kՌ?-7vzCwfܽx^y#^x'G;rxنĿ‡9.p oFo(3bd,PHMIJXgK`KRl>at*a6QTn*ی_,,-,07onyW096bF+3d&T%*2Vf=^  % *NЬ|ħQJp)QVsCi`?:* *7 y@s3*#4lʫ|\.Gf5&`r^`1k' ¸kEP`s5KH]EP PT8>.6;-`(L1  "r M*˥TUm8]Tj3q &@w9&R;nS?ςy55Jy_"_UU&l 1~~N4 '^ZZBWWʶz(wndPS@9ia24f-ȵhOJl^,%=eV EPXauFt9px0H,tlJ|7_ӏ'y|Uq:6aǿ2>>#hߎm땝#%BY&QM !2 Z'ǬcbZ-Oۮ7Zs\N:I}nlV1zb"gyl!:=L.E6Bo Jب֗ Url2X5u`׆0R8ްc(^WwFQh 3[8ת>ݽK瞟MB{ZfXBR49ZM{L2vq8RXό+eӰ&> ⁥HpaunL[U_*~nnFQBڡ479i_vW%̮204"VW`49ם,6~&$:]Lt뤝lT ] s{-,=+s۵lv}lzil}nF|-mnD^]1 N MS_y#^a@e`ZdkordvOx3 (IFqb%y}?ˮw_w ~;v闣wt.ОUL!S՜CD8p,%\_YahK0*I N.lF/Ѵ d353N$m$0o^@ *L؏Bt!xwXPkB6ƽB$n\0t $"aD")۬C`\ ܨ`Bˬ f|F$a[`hVw;dX0 5+$K"^U='Ԯi+^y] =n#kH5, 95H7+v&.pq-E" |n}Exys݋u. 4F$Ң՞ rkp:Yv~!]X*7PG%(`aQ ޮu˦a۽ba(Ei ¦[0330ϩ$5l*2riǗu5gY̦aoP q͎EoOkԆ-x)\~okmܸڛ'mrb6=Gm;<Q`.ݟKz Z|gg`8dqW;F6om⁅\u;biGԝa,>]*@"7Y`vYtG~isF'6 E,ήlgj;e8CmJ$l&c,_X' x0>3JOf+hbw(Q2Xlס# tRIQ6E:;{{m#$t_Yn.nxX#I VeuuSeX9zSBhumCφ^-޹[]yر | pXQ~,"+%( V2yB̵G"s3٤Cya.<6/r%nFGg/Wpf =E[G/&+]Qc,ɱOh:a߾t,'.aK_~~W`)w/>E * w?݃n/rM'eb殯K_ `\?ڏ)G?_m\Gc8pvu&=cj8hg|kqr0@@jE+1\-ܾQ墰.I2!:łmؿD!}?|]0X\XĔO2(>Y=:v^%G솹Q#Q/d&8)nnRf5uvU>F9Y ZMʐ Ĉ" (D4xzl7gCCwްW@+`ȭTaӦ HkX(7}%cVv{KT}Ϯ=*!SVx C|Te@{p$,o,~ll 4HFx}M0hgldh"vK(nAwGjz]{츼S͂ yaώ&,l6*ȉV0:z10M6"%>az) QGiƒyO;Xc5lRZ܏ݱ/:_]@8^WCUJeYd!;`;I,X bu`YꔅŜ`&’v$4/T i*˿/~}raF[BbkPJi7t9Ǩ. 3sE*ιab/ULLiA Ԏ={?C2HRqeX3JSWºN8:x#?$r&!9w0ie]i!]qe\ݺv(8ߺxixV)'s#"Js9&l$b+ګ4 n\ 87zLSX]>ҬN̍fdfE0hu^o>wOyWp~:K .k{^~ӻ{WP̺ G(m))N ->Ga]I~SXE; 5`β|=%,l0B!yh0b.eGOyOڳj b-4՝⩌?mZmkyV M$9,uvw_7n4mF67U#[.418^+ f&}[؁2wmucnnZ=|;#C5 i;5 m>y^ޟ^~uշdPN?񑏡ؼSTcBjzO 7xf(n֞r?W>o}=o;L^;(^wcO|{8?>y+~nȡgoz'>>Kg}{۠Ҭ YnJœq8ᢞ;&˓:Wv VmzwpP#ȳ%K- J'9eaD  Q@#:L1ϧ}rEQ0c>hLf[r7NB( Km^afTۃ_k;H(n!3+EZ,U6{[T[w{ v|TT7kžY)bPZ?0<,6 `9$0""lbW[XX8[_UށA]أ\\\PκO:l/V4m& !j Q[N?"- ^[}CBtԔ0r ȸ iN2{У.h \̲"*v/g X]^fteQo~X`8wULjeOFH psGs`$p2dAȫMw?j\#7c/D&e|>E͟  ,UJ>&ͪl+*y)֤me*Pnۇ\!-f[WP8f]nH0$feiߊKx8_LBQ3f4J7¼&AEޣ%7m1n\9l%⪪^vS;h٫AF.A:r#} 0v6`4`v;Romef*5̤:KNa+ w3m8q9L ؅j axt5_Gѱ79߬VuTpvaTJ8,867w" Xx[;B- GtqTY0C 0Nh4F6z"n?Rٔ=xB Kgo`L|"Ϋ1YlL``qxt :m#eoҟEn뿆/kqTdW8pxȦ CQ 5Q4!˪_⍼ K(=BQ1fęWcFL@ ̛mnm|k̰_+YȤ:63d62BZ!Tr ɔF`)u kS gLX\j9S@d i,m9rfdߡ .aVۨjA [PY^[_ţHgN[t˲0LiL;),̋QrT33S6etg[_C\+δ?~\̜VVkTo +kdQ'l{'0_#lٍ` *F9NQGGdZ9fޗķNָDcD 5oIUlz\ZYZaۓ$4l58EaF69 c216<^^ֹq6en /kat25Cc|؄N``xY1anq&kw<Ҝ$ĀO!#*@|N 5!~Ň-J*h (݁$'uТ;;ÇMTb"Y&g;i纺 Q̒ I5iDGD?l(*0C}MN؝F?T2ih5缲C<F^BXdLN UMj`3U"l_9d1 {6vb>B‰dJя##dGY@AsY*ETWVGiKBp BSm cP5o +ŽG7v K!m.6lU䠀椩8n[Y=|ZByaPBkڨ ce @*Ph58&:jLzMmVVãRyc{5,xv0Ѓ~7-VߦZ"TuͣT%Y'}ހ.NnyjEp9 zqq"ܬULL+82?Uӑ#dޒG-Di/XW˨gTaY#@#&Io 5b@!Xi x\'S@Ek|rBgmxky`*9Y43 (y,#C]pi!3u#ؐ" JƯLj%U'!/(ێu`cmCBc2iP٬1w6x|S*itU,ÎPC#MaoDؽbZNA6$ʂldtX3\BS($'KH^\c˽$#caUaʀHP5i  k0c7tvu&ZI@b=zSxN )]!CsgKC@Haa BVgayI 2ˤYgss&#j,9v0aI@phs=ʕJ,4Rٔ}`9u 0._P{y%<Fz XX$!*!kKYwuvfejj ڳXt9}#Ov{y,0T_1H^t&vl.2"zsZɦ$8nѦ!o@[S>!aSy_hBBh|\&ь&_L&)sue }]:[{lQt/#h/8Fu Кw[jAJ/{.We? (Q% +k&գ Ec:@ F)KK3*3(vB!zFy>t(3z(k˽/Vk55w0+f2ʛ3 CdyGGX] ӉĮI-7ʨkI*,Fڢ"`‘?3Y,Wkڗɹh$X}SAJjoA1<j;SyvC`B)~EA)꒛(7F^,K?6ܾ.a`C’i+K%0`tP@=}\\ĽfUٲU!1 ̵pBw<r^5/T6a¬V9Ke2؆}(#7 {9 Mgľ}ʔe֮7c L iEԴ4_Wk0&9žP3) a2-j52cc'>PI ?CS ɍ_ цw/hM/afc8waD t(N4$D#1z33Os@>'nI@/-'C%;p[^^sw/gwX^Z(m6tfpm}WfsR4U.]J:%rt6ihn["Me6 Ybˑ: z\YdeA:Z dEqI&-N8##E _PޘuݽcszlKxYlHl} y|2:Nc_jC0~& {цatCTs6MaJA^?"֡vxU'0R$7MYX[KxHlbgg Na*4q<ސ 籬-$`& P._6VsXV+Pd6R(q WPhfؘ9\>kB˪NE}jղ@\ F&zOװMyO.]}1ca~FH!*¦g+[mP^O;؛ӳ,k{{ VKc1 d]ZB6]{#&[9oy]\4'h"boj5 q1Ol<%j]4l2*Y-.-ʕy$2 !)><49f߫=Ԅ6,fe&ޔ2(}ɳ[Ƽ\^YV+n(N /@#x<^aA:rR/^}x$W x|Aۿ½s'~zPT0^>_řVI䘴̼'KWlRG:;Q ̐[E3Nhrgqi[P]6 hkЪ0qz5wN'uZ-?:Yiz")a_ * !+`h`@o Mdpx"ha+ilYB~a0,ԘvRu9ޠߣ֦=;#AwZʒC7-d~Gw\AMMd2[2ΡA M9&z0V ߡܥ2x!ad\XɧyWu11Y詳07 <:@~ݩZlc> ;>9Ydr9s*%ǖ1L͸"p~T;:<0/jdUm /7g#2NW$^/^ lgЗ>m7[0_W; +l}SNz~%ӸOٹ<[߿4hqM%+b,>o{>Owm% OcݭJHZ(0*K:B=J/}w7VFUH';c%d)<+䫑ү;ͪ5f$7 (lw4&tڻ9T1feD9^A{{ N_0xdhUaѠ!2gg[TgV  JǢ!)υ3\9+̘I 9–Cπ1X*կo IO#%WTs訥YZ]0͸_Y0k|/m~ /vp†RfI#1H&4<ּ4xP@5,W(texkfQa*rv`9w6Z6p:ZƢ1}KS,f7Jߌ;>qEC^t /F+;H}p%>~\|_!b\㻻lKވ?*[+~g-л'~WgwMFzN#ݰ&‚0_E,(5elM:p9EPT¥FP?%4P=jHYLC͗ۈڼ*ϐ{*2R&FaiqIY0 ozqcۓ*ۛiollX<.T+% Zg(V7afKyae>v{<֦7/}כ_މ{/*wIϢO=nO1]p N ,k{ gjG-0V+RrG`8PP7YA=oҦ*vdLb0W A1l1kHw[IC0܎2faCCwʮ- +.%Mt2i - Z +|HCHv#6‘[z%6 E!  <>1mN7|2LvXL?uvA6Np̳]| ݣ: -amGɣ6 5QJ/<(@|_Ԧ0ضaDc>i_*{D٣n ft|G䰩fRxXS# -Kڪ2Ef֎zlMiÈ|&Ѭf-س낍ڡ'Qy]rS].oٚBӉ=ڋXe薰>ˏ ?%g obc}?W1Go+pI[ѯ_\f'4Rzxw}z~m_-^;a3Ͱ܍߼}/?=|aCM#[Ox#ɚ7&tl&A,"aodYY j^9QEY9\SB]vѧŦ#=>aUi2H j>3{/PDBV$Ą%.av /]BĖNh)eU`eϣ<]Xʼ0dy^@*"vAhGiq `?p*(2fb-2fϜ9`J6988")"t `Bf/ 3#' b)CÚl5P&q{Pll&M,L p4 ;4I Uta~I-|4toR9Ȝ-dZU㣁yUگ Bo|{ڼM$~_bE.dE x}GP0U2?3x֯5f*v~ݸƑԘ!H;\Lj{7Nuh{՟މƟ-ݏ}f<ΟU[Ʈ~[0g>r8?X* N0ɲP?1wJ(UQYXHa FuIhʕ˘_\va 66PvuuYzMT5y[OLHB> GYYkIi km-z=DFV&W!w -R0ԦUśݪ.|r0>.]T{[uZIߧpqa5H&8~bk؃]ZV&cs :ܯݍo"˷፟t>|:)Kj *&L$ g ^c~| ؾXL(X)x'^/5=>.׿C «F>kGhe۠Nգ-CL5@l5fsQTH. <~cNC5#l6rEUlaeqE޾ڋ$l݊oG 'I@)ʢ2=;# IC.쪣ae'E0*hgVt.傄C=\sWBDUagVDH/YUٶi? -VͣVX60&r܏>_I }r*Ɋ.>U[&L[JWKOf 䬦 폿?]y-~׾Y+gxXAww;t=K= K6xhLak(;l-ZՕ$\a.9#[D![q-I%̑Qi*P ~I2BPؘ:nu׶Hf$k\Q$3 &imga6%#۞ؤ ۩vٟzcWpn1E.UJ,j!⭆]&)poe}Ie.Wd;/>U2MprB[GG3әL,։mJͱc-hI0j5P*hwa}uny-19OKDo㲩 zQߏ߁@0&l&w C#zM943FTbtv`r GW0oY8g+"wa5oc9w^}Wp^X, D?2?| ǽ ]o/Fgs>]<ϐb='_B~1?7Ѯm>,_~?f35PK5:Vj6Ol2&`K%b]h ŗzhԍD.e * {p J&z{f6-a1*7ġ;dpHe؁159FQթײA^`> xn.ZRh[ڀn csTnvFr\q:=#]Q;vT{3VtJ`BÏ99O~L5?oF+E[Q7sr#bBX!8uQ-Jw}5Rl,Xڲʱ[P=CO(ߔיz~+D@ `'ΞE^W&.peYdqM{rIB9f V5~ Ze\oZaM>Ǽt7^G?L}=x]'ޏϛ_W$;Ɏ8IrMx G ߾_Qd~seߏni͖0u: 3Y5Ya^5kj6bdXlI4ɞ"3>s3әխɸ HItg9'͑NR!?mas&}Xci2*|\Vִg#ecqkNlCezqLB^B\?j|Cp 8ߛjO`f.=/kžui.ZBEw^S 3M&v ^whfc͍=|Cm(6$6 c6d_>X֗<_ !X` s'/{xO}o᤹7a]g-G&?_/s-rTKVM_z0l!`H 2B&4t,l#"E8E]e˫zLMMM+   |\6+)zHeTf9Pz;r\f浘;8(OĘWbsb+j%Qa jT=y lRg9_%,]S@Ч!=ϓlnEϋִr%ycSj4YEbaa&ϡZԌN]Րc^Djzw?ɜYu, ԟa u"JN45Ac]c1*nr8yكuĒ,0fŖ{;T !.~@XZ0>QE6F֩/ ~KuUGbU}kkQ-p4e?~v>_߉G>v_-^}x߈w[ 1xLWC/>y#.\f|jA|#1o_xv~~8z;~?ğ}|.]J~7IF6'7w}]Vc&u 󆬘b5oJЉvcǏQY__7rWik*tx3 ª0nl%`(G8B~.?r}}C`V2<&\$Yae#XO26MTh!,AcN1Povs VeF:{PrQ%UBFg19u^Ώ [hɘŢR+'gǥ:ĎM&TGN\z|,uN=&aՆjV#1"ոS;wN!e\Hܮ'Ru Ѯ>"G<PyQ਀.]G4o\% 9]fm_=emP%^RK^8!<3&X2?xޱ | /Aݷw}׿N^3Y] h9{D~xm-G^CCw~;xF?F+6?OUi I;{Qsۻ~.8_vO42o2Zɚ̆6N0.ڌb\]VЍDNa(:㥩sf& Z2>#O(oa6e QM>Wu3 4>0O(UB*&1m[ZYeގvljK5c;19;ek \VuNfכ_Enˬ#XRPcE_tw pj+A)p0~Mn S$A2eddhϝSv 5 A9*Ӏ윋 /'>b'IҥsH&wpi *S7n)u!Kpn:%1 !mSoxc_0 anfIiT>lFE TE6-( M&!Ve{g?v<7V<6*0" #/{>{z?;_.< <zsU/ b抬>xI n(Ɋ*C_eoū_z5/bՋ}ȏo| ' NOv4~ OXĶO; 95TQ,ae t^:nguCnؖ< "1Yз3N<ø喛06ߘo%?һ6 MYM\=[t2&H : >*=^U BaϣںdlgoS 8X1zQU/՚G=1 >q˳X_`![|$,,eZL~'˩Z,3Ԟ?i|0E):,ve2H(}a33ToqIpԋr%KXײt v2ͭ0M]80>nJUHqe]4L2?L Q 瑃G[gL5(@&EˏE{^9Z%r k,M6|TLty >W CNos{ }`ve:6xox%_u^Fiѷg~B4D~q^Al?| '7|Z{C-/;ʵQiT pjV*iѻ~͡iaUiPdvMZŢcq^Qyf#;mpټ><;^a]$:::5mݩcԔBwS{ \r0MN?$L蔄х@O3 %c NH%/?QُG sװ}8T`{ LJ]1Cf1wIbFTMȉ)]\7PJmU % {m---& z[f~ Z~d)gl-v\X[r‹dl2:Z4"6&1OGOWj\vz$l(#,_HT%bEBD'Rr0et~q Mlmh+l/iO8ݭR%,Tɩ VVIAP@j,mMf/a7ٔA{mn_4mJK,PUfl<)oJC?,<"i5h%myWkݾӧ5-AI:Cu;la=;d%Ժ|-aqr+i #r *jA.Es*caa33EG K¼p9d:>nwHen?;~ah (R0 업s]s]]OA̞v-nn~$Xt9Cɶ샽}P+6 aF6&(2pJXM7675t O%;W.#HA[^ q946c; ήmmΰ;50ޅjh^#7%9G lqqX! tYmdŞbnꕔ@RWq#DZD2B>'TOS JI9JK=&9h'w64J({[op }C*~")$(9B”ӓ(7\W4?EddNTȠV)eT0E W"Xyu?stզ2@k 򹊦A\eKYퟍu I$r 0iݳ{۵ x W|͖0NI2M&R@%G0H/zJACtq"0׶%Fy4ң@'eV'> y ʎd8* ~z[~2h c9p+ {Rp a0h(&lS,=X\=MH\8UNeZmf\G:9#ԱO 6W%9ؤjo Gt|445js =Om3炌WLn:R/ XD_~ rDna{Y>Ej{'U8N"Q ʚsXwxM6KIJbBu¼% :TaںUP2,Vcsxk7GI0%ómFCK_^Zv1"@V0!dŸ3l%b?h5;Ldi 23!,P '#`*} LK=¾h3rˋpxȖ [%ڲLΎ2VNdzWGمi[jjL"G&mXTas5^wV3vvc8{͒|j3^Ntzڊ0ޢ&?w(RG˖C]LHAbW}X \h.(fVQӍuY$ŪF\/,Sľ} 0\ies{QfP&3fg.裖FBr8V'0Gۇ1?y8iܜ,t jPVgf15u;"LjЊ,@:>Aym` ݽ}X];|~X.,>wVBtp\k=+" lP~80i1,4Zm Z*a'[Or:܆:e/)iB#djUJj޲'&7OVI_|cs]:;"ZLrZ5a*aV-Kف}L?wם4rL=B~ֹr*˾8yAU툰И DLuP d&fm5^=&*/ő~\6ZjtƩ7ЇH86W/og~B74\vtNȭDr v[Յ.a{U͔Colf9׼$O'ғUa5a䩝ma}>}F'tum GwK(LFf@Ѓ|!E^lQ _ZZ]&R'L:*!>OVWP$Pبq]FhD{5ɝz1[6ľEIݡsvmAlLUN!Z&vV^SٸQBm6! *Cـק?T'JgP(s8`&1?EAqvmH' |!xE">*ywk;fmVrcZV[Y KΗ*avʩ<7/Ϲ+H ̤J.+bYQM'zNǑ̦ 3+&g'uRp_/6 _ ^Rm'.h}8)&*'znv{18v+˳h|aoJ_fUΣ mY8I9By9Mm| ^ k#ZcG.Gv@ttm}IO8Cy_Nm<¡u@ޫ]Ņ W2;P)3?P)7;wLV }Cdaq`n~pD$r {'t؉'4?~ꤲM9ŅG;,ljNkS|vmoWUQmtY o|,L16z2\f/"7 jeHy܎p+'Z@m:қM5vu5X 9:)mic{Uޥjֱ8]BȖ_aZ ͫƢV+ۑx\ҘY)7J9Gzh9P!^{Hei6F -rTES]SkZO\^1e/ Ic^ E-%[ڂ8gӦ>cJ>oUa}]8+`h׍GO#. DN".( k+ kܤN~k-)b,˲`Da:<aluF&9 }"n2 r *28ǡc9puJd$$Le5LN3sfF3r#vdteDzzIC^^2:2 U *类%C\ЗMڳIrz #[{TŁY%?h}07Z&vK{0i'$GwQU[wMLIOH# BH )Hl(,`y (VT, UTP z{L{I}~gGfΝ;g7IN"<6׉H#…x&KQ>ǚ;Vg۷"ֻ5d&DI1TQhC[_=]tF>I Q1B'lАlrp VXkZSS%|=9ݔ3iK|yRMn|RAMbI@Q)}~,%O&0;IuH!\qFFKq!΂UN nƎ5>Q-$2ˊ<:V׉iiqB>yլOV ܨ9;02[4vA,{D/T:t*: QS,oxSQl"3 S(.×x\g s,%Uax$kqbH2PQZ‚lJݏ=;`/p»:D5ԗxeu:»+_>;u`iuwka%rS3P%e8b脖AvMz:-#᭔gzL\X S(l@.#55 UYVBl0y=[QY]/̴,R4>7CI'rj $rҊc6Dߞ *On^.Z>W]](Dx6.AJc`!Uٮ}L'J /§?gqbp /3~"Ə7"vMNK! SY8^t:/ P:t:\K漙܄d^L~Lj fO\LznGlu4E#z<յtTDnH%uivr+ыS=y1$$HGۊl*> 衽b]53;ԽYt0#&+~Pt CuCi|EDd^^҆҃{͝d=3R HC8} 3veDxVTZ^o3=L~VIgu)ȊjDy ;Bk9kD~Йn~ͷ{^}K/ FNv,3dF b"Dv\q)5NO*)J*jx]M)<]k.Kɕ8=lrV'Bf:5AP^-V/j:Vr@X1x^&&2}|D &32@6źeeEbT>Ci҉" ",[~[=u*Sj>tӓYM$Ȧ08C &+8H8WԘ?$iiq$AuE*J=HuV>ݼh,I5mS'DfM~~pxS\ΰj$&&AKkyjJX;udQYY.bdOѾ|}5zyiYȘ2ٌ!HS'&;KGt4k *qvz9NWTb;~jV8[?CWEdM^BĹ.+kLҽ:OWbz>"W}o³_EHo?l;vAR(Q\W8U/s%FcXY[5xmLh 6f(߿_}q%%Fyy\34n.&$OĞ`"KT4.z"!r.Ȝ/R69pfv~>tYɥXjs JOK ^jљ2Tf\/H_0R ąc}hߦ ldT_dBٸQ"¦ƧNEnwOOWQ[>Vsa~xf^>[;땟3 +>7B]so[6o-Vö}c]wvplVk {3>5 sx+ۡ}s`O+J ~pֿEes!yaĈعsȒI2<:c%DkK8=uzk't(ѐz7+@'Ȭ>}R%7cڥEbd7WSY :` OyX  QIL)) sj(qѓ#oCh2ik%}8;$4Qpwn`~jO^=}|CD,Tm!MԤk蜻\ Ydabt {YUz$Sܜ4Q*:*AB:Z\ԃ"Fk`FD5{XM b͚|}5F-L&; RhDKp :n?gIjR1HV[s 4ѓcgy2),$5_JUD1\R g~&k -5'Ylw՛͟#_쾾ݣ|m LhߢPwv}6G+@evi\_~CÇqv[oENڨwd:Dƚ!4~ye{vFL8V:cG S_`C垐"Vn7HQ^߷"IIZѲNR#41IZIE*ELORR?~>JR#T 5;F!q(ԡt=9N Qu3TG5ݤ 67j"+8;1J*KlB|\sA9"[OMD?"F^=8x_)mW_XG18ΞU8"&9{mTΩ 楎hdym7YʆG瘔Iw4'kY87m#WqfҔf|23Ӡ|+Q|ԺM*qz3R:jX]6L?cƌ?9pjJtsT Ks{Lh%(.=m"\HGd~`A7R&T1tFDs^ "%TfSotp o.nLbaxvB\X]Tgi͜:X)VIBy GU&nq˦;;؉e2[d1 +=*"}69d0ѫ.9S:\ŒS"IeEDr%h lFUktt@@)r2Oy\V-)DnR'֢.;/GË+ssTcok'qvKU'kqA)Cl$%"t0*>9nU'א p! CEV0 sK N Ah~ zfQ(/DDĠ(JqȐ_(PV}}5vYwHĘ~Q.Ib9fP@$B#9/zDhF;Utn23ӉvUTQ*\ӑi_%Taå,8ڵdUwyxy/.Ǒ]i }'~]cd|7+ e<@| }9 Bk+0kRoVẗ@{}ش! ~CT֎膰~[Y*t #EF O,:QXApK6N  ((P7&^,VE)6i. 'o(&';Rd騸`UjX9'*FaO8Z{ y\B݊Y8jpQDǴNK&-:tZQ#Mi{*B纏ʉ+cԂHBr熉3NA۬9/8NR -)OT)?Y:ZAlkїZSҒT]xo_VFpf:^Vi6>zk Ed opj d~ܳKNyMơyw9l&hNM6BEid_]#YX;ܢ{\f4!UZhu7GsQPMÓe\lz+g_+&o?¶wWw<Ǯx8X^كub5xDlD+,(1iҤ?9G4ةf)LDWTT·8'wyԙ0rk^9a`dV*?<)8ǞtKrPCqa r#2O"(4?"RђBKC։":fB"f;p?tCj+\'BIE\O)4"ߝ'Y4AaR|&,VB<o7'#'~?4 G*AݼV|=&EnnRR/ -p%"Zm<:xrߗZ,M._/BKDOX=?\&py°CWA8Azym۷0[DT:rPy "& XڸZIA2Pq,5CB/UT76 d5KPX0HV@=z(ZgЋ9ޯ&<HI{uDs>Z[o5 )w}gwψiBv`(hF Do+,.}8r m>ʊ !"yOS$e; V+bxMTVS)~Nz*+ڝԍʩ3] .S";,ȝUmi?x0L$TAħQЋ[d@ v3^ANm`L }6ۈIS¹ 赞w^3\R<+UO﫯/|\eǍVSP!I4t Z\R&4@ٱԊxJO`M9ge;8@4K;AJx!&Ja1(PSY%Zc1)H8?uHK+ ;8K\CaI"L-0؁-E8Ԏ_qÿ/"<q"fdWbъ{*J|CQZF |Y֛qO5,Y⇍욉b : ˆyq|߬<~{M"!k<586F]t9 {CKj5p~s;L(NÉti±[,܎lţW QfggcѢEرcJ-[͜Ȝ Άv/ͱ8++S"y]5.؂pqc1Rא|") k,"PIJF8QX݊v*QMtE2u^ OkѳLGaC*&d j8r\R.ȓ (&,`jDRdq$>n(ġ룢4ʳD1-Wz 9& $R8DdACC@"brHPfDb)5fb=WDM<u"!cfJHo? iSuf_?$ x_ڣ5?:_cIqP G?Gb%<֭ǒG|Ļ0oIb!R}VkCW1kX0-;M¬Ua#ސ-1 YS3j3w<[ٞ'n-ѣ{R©A9bMr'A`"=,"B8{lY'aYpu!"ӧ@?Q?3 JES~a0!e6Ut1Wy{|v^][E(rp3r ox>,]λP=k6`\x7FaݡX8 3tL~1;Io|YQta⹘x%݊PkۯsaֻFM|?diF;mrklp&܉7&ݝpn\="j<Ҳ􈌜 P4뙢Gg~ē\hAԺTx1izTk:K _v:`E rnFhZQL>UxL]58OC:\dHca"YXwTB\\СNG'M2p:ur"8N՝"Y^ CU RhS6; 5d (Gvx<<2G+(zQRВmPH s]O }2c9nW ȎU_6mDA LsESM"b"T d6Y[n/@=0D2WwjIlY[R_%NɄ[QV&֝9H;q>8zvgC$1٪ ѧW_|/:OF F&nk= hH~gU ~ C3qSK5aƨ68K(|nw_Eq&}!VoAEI%*_+s([|Ԃlk'mG1ʵ1d`74y*_l@ >`ALD7yi/DȄxaLZ&HBB'$YJH0Yq(q)RVYd)!!!!RBBBB$K I,%$$$.?*G7KWL@B*K I,%$$$$YJHHHHHd)!!!qu]z]j@jO'ӣy6m|ĭ~&E`1:``pG6φGέS l1&!qYC4~ e%R*$PrbnHPAdQ_W ¬&uNiF1M}"QD?>Ki/Rfd\W|z-25Kz)ǘ$ hRyWՓD^*0[.%X"?lx]J p(~׉,Q;/i#U*i 4M&R;C}#IU=D[h%[q%V_ك/Y2]%qdb8xn ?sglăF`Iѹv|-W$Y^@)wkОg&M<~*xs=JHN8L$usl4}v }0_՟H )RnبK"̬D1ms:\SEsosvDJwϗj'Cs6+gpߌ5I/olGoG暇p|%&? n،LB1bE%:ep]lIAL#""" Cpn`)jR㈼bI ߂>DLD|e?|g*QLjqJCO~@$a"DW2Ix^GΡ/'^M.}_b'~CsOkN";lه8re\Y+7g\]Gk#:xA]-z܁{FA̾N0ans U-^+V*U%"1T7Z@Ӛ ?P%cݔ!tǀl>G]5Ȧ? dM&ۇ߂H(f~=`)Ƥz $ _>ί":# ?41 2s[o+ttdcՄt}$ Iڍ+ՕH*QMH#϶zLI&{$r*J`&Kܪt/Ӿ*Iж@> 4 S$WO `|b0a'biAҏ}!QSІPPXVS Lk0GbcV<4nIc`|0w]ص/83P)BWHD1a<}ٿo~dz ,%EXK|fxD4h;DJHHKHA w\!m|VZX37 V߳Hwﮤd[W sЄ:/c7KV3*oq?jae܌߽-tC GV<1Sf cĔ c%?Ú$IذTX@Ec,&f\)gd#E*}vRz2}n_pЌHMyPMjJi$A$=%}a/BftÍOgM!s)"ķɬi @(ѯ+x|1W(Z*gi=1zFZjB&d\{c3=:>^upGBT1QX;r"Y#[#!ĺxɒ=̟$+_ |lGYM1< tC]{`fR~OGCfD|^RAF'2!Ef!R7?)IVFU~YSAf?))`?$"N˼:2͔rĤC]Pӻ"[k@ 2B(8R u0%464{&4 \`6F K`O80^;; YhsIx#D*GA\J&Y83xky$Rss`v4׷iqü9Xb1M_W:3W`ܐP=}֌2Fa[۩wm'xb9Ll: {667EAg+po_HL,^ȋLc" Q%xd[hb\D*2u-gՐ̣aW6gدp2? {9l׿p]((퟈J;~-v |E+U\EDW^ Q81< 7-_)=DRnhmڿ'^3v(6zZ\("l'EBSĨ"<8Z'e *,,tGq @CDB;I7eOdNj_m#goYE&z%}>$I`D`ot2޸ B/R4!",%s+L":uY^K*՞uGB!RDGG+.]3Ig@=D_ aBV~6";;G"DOuvdlߴBzNJB%D;I1N?~7hѤ1=c= `"^Ckf@i9$$R2V2@BBB@$K I,%$$$$YJHHHHtˣVyV$_QQ!ρT,%$$$$YJHHHHd)!!!!RBBBBn3RޚW;ptT<.vl|>w>;)C$;wʓ piu`)xXC]RpZs i||xśs0mžgKή#8: RW_Qزe z<;w*)nK"R,Y)O"a[~ OޫϾOc?}e y-n;v RRR &r?Cdi/Mŷ_n5au$|}h&;XDŽc1+G$ %*KagGvdQvJ"0sn|XSnG='"f_;7}6tDyC EײeWҞ2e P(oO6ٖҲJ8˝/]=̧}qqL%>}z4Uɱ @?no~RVYUJh[ GnG3) GH2s ⮧}3Xk)T|G"K^ ̛7#Fk#/6m$f CcIO'RA+~wG֥xv Vϸ] O^Cp_; ,/kڶ :Ϛ^G.]Ezt톫B!T7o%/߸3ݿI%9g]p@*/FL8Vbb5kSN={58[hF17XvZ ґUaAk ʵsIݍ>ڂ3(:VJWr.iqLj3Rv`z7[r+89[2EaÆg̘qѾwy'l6|}}C*UL;{@0~r!5 ѷc q2!HY~Hda+wTUj¯pܐL2NGaKpMKNl_5~tx}<נ*~q#ō^>=ڡA.(]AV 1yֹɓ'ߋ/6Xj9J-Vz>)Fṷ#{J4t#LI `D81->4p\/N1)yHe*ͻ]"t4[a{]uX9KNISNł V|ׄiݳg_+< GZ"F 9&J-1";&?1 kGN> yd ȕLI5iae<;j6Mtl>&Sg./?㑠#%MxE8OLXCs,6a$k@,֑J,[G(%e)!eş1_]^,+^YL'BY1HHHHHd)!!!!RBBBB$K I,%$$$$$YJHHHHd)!!!!RBBBB$ <O}uNG7n(*/N_䕖pɕhs-?DcN 5{bo@M7ނw<=  .N Pa9mV}G33(Dl+!!HRp=Ŏ:y#z7WEKH95_=k(HavWWb_t@l~)wMlpv;FyT|Fl\VWMWއ5Z ևpĕ#qנa `B0~]d-] _VDu2L:sFd[qP`K#sv϶0-[cڦ-/#77CM!գ6ٖJ8~oSG.>l$&|E `}q7*eFI ,Yme Mi-{^j n}u-hw"صo&$3+ch[]e #ՉoӖA$/bbb0o<1Սy? sh&: &,wFka#jP&RkP[=y8Sz v&s_/']gX[hj='Җ]H:zwMMNı^tlr _h5 ĉv/(MO$(!( :{%u.SȘx|[Yƪ 7(FKnҒ)Kzj@ˑ1{VX${'^*]*vJ=BƼ`u9l03_DC0Cl1s8wnZ,K?*$YU]AQO`Ho˘F3qQZձqZ]jW($ʋ6j̝;ɓqwuWv]O73_t$lގ@+эTFcH_MJq?FoAA?'6w6_cvv<>8G¦.0g{+ <8cWg#=ǿnNJe*4D,;Sa )/¨Q'bժUP(.O3!Qo.$^J1Sk{̀`(X5yM BFK2)ױ#rX,3cηx~x .TZ~ D) ǧc#7 8/kXk.GV1M鍖zQZsb yd hАd?iȲ[|>~Rdi!b܄F>q/ ?%[^h0Q&&&bҤIWΏHBt[Qq=PW ]ƆK)7bIgkK5?Ƿ^P5ފG?=l8[ǯ7e\B,6v;1{o#w=jB+zz|cШ#!!4}vH4TTT@CKl %,%$$$$YJHHHHd)!!!!RBBBB$K I,%$$$$YJHHHHd)!!!!RBBB%]UoG@F7n"ƶa (0 O+Dc%K̕e;>#!Φ$s lstGAb,{?W 6aZ1XUǾ%ߛLd-` FI*-?g]W{1zf5'%iWaļe({<{u)L658_LUX2z& qIy/tq1$''7£wxeX݆b=S0c(4 [wx己n Cb}7 WƗ .=+TA 2DWxΪ8?>jٖlz 5Ti b㉊ذ]+gEޟ7,Ak!>ﻳ$ЧAdwvg;s=_w,qՌIպxZt\]]W|\0~xl޼L*W7 =7܍2yIem}>~?)~'9'a\D`|p؈3qxr޽L 7+8, K>t,("*惮O%0xq?bsI JJ6F7>ӶpHUX6S/͸G*8QƍäI.O>GBV#%ˀ]V&_=LG GA8 ZU\ çGW#,&5'!#́ /G!8ow2teD\F >-hFl.0W.`?tD@̯~¦fi`u$PX#{fNbg 0Ul/D~C2L˚e}p饗wr<7e ~ӛb{[2zQ_Ӏ?[zPC:PYF3`% I \Y\#LJ[cO`Xy!N.@_08\r($tƦD yVBVdʿO>$V^zj#ʦ5xIO*BvgSFJ8 a/x)[[ qAcV·,yy9#OA}ʲEH;Xd7\ؖ:W_X~ Z+QZZ3gރlޯm /\{6,\0 MpB,e9J-*<%oa05dpu%r |(ojWp{s6g/Gy}4|v @?<0''G2*G].Jl֣0+QcB^Օ=>EQDr cLܐدT>jR%$$$:I,%$$$$YJHHHHd)!!!!RBBB⟇6I镕U$VLr2 ,%$$$2##C #!!$K I,%$$$$$YJHHH!dHt5x<$=A7fׂqTejقfK#vcRT"i\4"'Uط|gA2|8F\4<$ /*KFKFTIo)|U{ Ċ}Cjj ˱wR TE=RpЁhh(:^"W Ѩ9"B{hWUai^p8Pz wѽVU([Z[ nJG‎t:^\_J60(Fq^\[6](Qټt^22d 8p >pGED@4GF"+7 FgMmb͍Ոvqnn<167Sͅ(OGeZ]T=}۝tS;tzQ~ zVOxaG'..F"P}q (++ClbⓒhѯذN:7?.#3Q--jt^l+V,Tpa_Э  !9)kV/FC}Plu6 !!U5GDiFahnj5`puONNE>E(=4d]EE8̜l;QNwoudR_9g>>-tȊOˉOk-/E.?tE:uӅhlj7LExoe ⾧E7]Z_XXeg]Uz$ I 6 .u(uDvD*^LVLFQp{i)ΝI=Py"g"M28D.t [D$rѝh"⋄)Z׉syU"$yzo2t,nHg-hp:`2g"d&$* D D:v:β4a};WuvMbP[W+ډoHMDCMD~7ob˯hP4].QD9 8bxniiծ2lH3i܉* 6446Q;1#1|0[+6! YؾY9h!2wJmޅ=UHDy 4 hhò_aUPiQ^"2,4B ۷o̍(+-6kUW۰qGo0݇X\p9 xPs4Z{мlt{3w~y5 .* k; 7OS4&|*8ּsF߷0|?F=~xAhcywG㒏I>? ِs__N˖N2Hux,#ca#ުoF1A(,&8Y_Q|7f(nR9[-oAFl!ԓ $sbܮzdx-$,B!r!5a WG$GƐKΫӈZu;bbEff2Q:(qo%оzRc⸎FY1j+db\"f D&X.N h *BP@23R>b4hD|L,y<}%kNmDX;R҈ ~g߰sX̱8n$?S>~[7Ĵo~MC 1 ՋSqؐ 0 놉ogZ{'b{\JpU vq@*Ѥg$Uq^/MzAX¦ul$^l*G!)M1b_;0B@K}^s1pY-yax܂D-"H>hǙqs$.E,(ڪj"GhZ\tN8t[k0d6S)M3z]t$R&yhk]8!>7nBtl"*e@(%5׃eJJmUHNMb a&\$&'Ssi^M k9n/Gc."OI1y =ѳ o׽ 'L?}~&Z K#:mK*6x{\tXDtrN"*zH?uQAnlʨ'GeMO:N$u|LlJ#OO"l/]Fۚ)h>: [؏zP$D%l?̿p>/7Mۘ ~wǡ]yv $BƆQa m$U~Wc _y揖ݕ6X<l&|<::6,C4%Q :Ct*x#OpLfͮIFvRtS S֯4#]Q8fs,LdLn".2 Lvx@@EJHv 5ӸV[0ǽnt >G}YLo' "UȄ"`u4  MG$am gtT=Qd2YPG&in65H fED)k!Մ4235_|_pI20 meSu e$e45AՈVVW w^ؾ}DFtLHdf 5#[6Dɖ-]#cvRو=a2t?=( 3RRQ^QIf]g4 $d$=F ="xRo/k7!!6 (xdžJrPqͺ KH{* YقhY'>KZH}BXV{n|+Q}NjXݙ ^7yOqiQ4.c1aV,AZl@ËȲM(?y1P9v>(~[=I+պee[4|s+,u%_]"_}7\FMݘ`ʝ>&PaL MC'>sPBaET^W}XiU|xԻlh?c$!D!Bq‰$%g^#Eh[A|I(dn4H:E$-2gVC3r80I?An41 P nVlN$wMdi,= nFF״pW20lkjfezHd?FOjK c{Pqzۥ 37LpGge a'чFzZ**b˯IaH X<(޺6Bzz2S;E?;jI"5-NwU֢_~Hf7GE#M(((:o&G~&= )ౢbRv4w1Nq==E'/NðUwܩoZ?| qj5V1G7cͦ05GҌ╿ y-xKD/(YFMAܨ[sI JU_=vW+YoR] L2N#~"I1549&өTG^A. ŕb)M/GoW&?aF@Ytnl:*e )/.xEhP| ?OH%",Vu\6*+[Ș$$v$vdD/C I!Ns*kEji;HEйMiFD%2NOBLT,SS8Jgܖ"mȥXr{d Rׯ_Gm>@ZmV"fEbcc.l/+}\4$Dzj!AZ~,XH׿z!*>t슊]p֯o1W=]RS?i5#wHH%U"΀9* DyԖ,]Xq8z=.n~͘?oeSl 4 N6Ԁ]:{@wK gbcD :(Rfџ:͋x?z,l?۸{ћ̲~tQ$˱{pFګ: 6߄7ۊqڻ``$M2AS43r`ξt+Xܹ8 Ld@C4$)M0100t&"Y rH7wyXqq#J$1pTc`S\CEPt<9+~4 ˒n4RgUVW+Ku"lbq١VbR0=nXdic0q<"T>CVLPQ&)z:ѲsX ~_o-Uilݶ ё"n"0Fdj8R%y)1RJnC2%%9N=vY5y"UzZX'roY={tG^NJ6osXѫ{7"8Qfl"" p9L:A2JԥZ Dfw< ʁX76"Ylyp,^OJCǿkV`ɀ7u8J_:DPYe)i*Qq ꝰ" 3w&ߎ>o}D2ш~HB{80؆ O[udGV6^8^_hCу_#3p܅0*5WSqF LvR%0Xٝ^ة3ݰ )T>B+7\2W*M(2z+*+VwAՓc?(u07bI=xTLn2љb2 $Ⱦ:#_XU'ݢ>+=>WKA:lNA lB,|*QkMs 7fRR\*d;4LpL|M"f_۱:Xk.+&AuGY ޭ`_TU:D󑐘,TJUd"N+bs2S˿aүojD*ȳrN[93,m*(Ć!,'MWm(r_w(}BbBWUdCZLf0G1E Ft~CcMŚaT3;ʌC="CpH~w ͥ j} Ш0e=v*N±S1?kLߊǥO^c%QЩ7"b󵮾;wpӵ1w*vzsziKIfn(&jQj*Wb GKjedS$9h)4x4Ujޣc@&AVZĜL@ϓ=?Y>v29N8~Z[0} Rge ^/@Q~YFҋYacڄ-ȃxd'A`ɤljjjEwuezp!H[8==%^]ng Mena,쎤ʡ2Ѥ9@cdDvv,Y S!hAnشydZ ӍM[5yQ1ވF/V4>6Y? CuڻS5}>5 j:l&#sÚV[/#7p!m:8XWKHDoF8!+^00ߋn{ ŰU`ݲ4Q\~f1L;ro\g +HP緐rb;avz⒎$,)6<ǫ%{|`4U_"Ni)JZ>$hRFCVVK$y;9Hl{D]K6W,׋Rd&"lrIu8D !nVlh.L^&mNʶP<6"46t:t$~7X,Xous:ZtC淪[ Yٵ \&n&J .{QrIj[5U,1aѨUnyQ[KPCDCA%y9b b/sCi̋k^'kHUl|0kDğӍx{9D[K\6[qB%!X &2NZgvYOBGΨŅxQʦs̼8|u)+;;ǽޅ7"[L$22xkX~Sbi/ÓJИR!tJ]ro NS׊axew|)!7Lb;v>r&?14;h)wf·~f7"=9=mD4Ԝ蝞+fb[Kuj&FX1@sc!)LXM]i`ݜDPH\U)z_ҸAOT:ҭ7rΒQ'ƒESKʘT6]b"rb՜j8hRL:&O:IZry(" FXF }1m2"RMz38ԉD-!D̃sRr9+FK3ȃajTWBEegZ)& ,&l\,''рSS Z?+-T~:A.YJl,G#aA*HYz+KBlh6gcx9yx30 O ܊'ra/bڿgbc MUnAi;*,ljj'O…:L)7f€CGYJ.SCׅfk'/7vC|l"膎FH}R^̦_Y':C9-r'fVE$9rZE1GeC%RMJzap3j?.!IJo%i3㰆N9ɜHF.fӐX9t/ UE91߉j &"g3T@]g#umwB9?JG}4s+֣ͱbdQ_NҞ{Mժ:UKRZ9TGN"H̤oîrm6`bڧǩѬt]"z#iC郉TV+.AݑJDj؏PAm=$ 6SPSAyhi!"N's=N* }E{*pY'vQlr)SY>g=3A$Vh>u c s< Xo:w  9|>"EB//C﻾Ƭ}oGUv|)~ cno\vAH "K] 8ILcxOG^jGdL;pB$[(!ˁC$ϏLh)\IVj^ ڜh=bחM."|x̮ʝhU0;c`4Kߙ H,"^ãt8H#^HI>6R/;>P-yU)iF*^cF^^KVpQikyt9!53X"vUZtRtfRQ"/^( qصR8a@י}n12j>H2|/5c`Io#s@"Z!-[TBc|޹SDYɟ&R"#IhLT $`Hwذi#֐ fsgom>:GP 0?QQQ&4)pzId] lnA֒٧IdboAeaŒlT{s5rЉ|I97h昽ȡI֒q٩DC SvM]q:1ŒԈ Ҵ9Dytt&Hjl'|܌fxΝ;HZQ-qg-+XorPʷCGE̗b¢W#θ^d.C łO6D/1-T^LCKˮ577xբ("XN'҉t&C`'4Φ'OdAX W E$.{ ~l"5ȴ;ˑ(g }]MiPT$;=_!qN~<8JGT,_+}g? $HNKS88ؐ4dŚI٩?}|k |NS>. 'F9SttIS_] &|whfCLWDpHAǹM`1 @OFp)E"K9EK!ٙXG$!ߩ[2Y&L~N_;3aER|4+1Zm!/h D<Aac?:.WϹ"-(ڊlڋ6$ZHWNyM(&VNL%kvn$-]D*+ŋWqVdeepD>457̹ݷm+% J; qDJAeiȼӁ6ࠃA宭[~!2eFfSCldh'jmjqF"Nx ˓(^dEN-bMIcyz:6lf@e` f -4֭ۢ ^S3!.Z\C;):~q{uD Z-ؾufzPII\\"$2^Z|9?pw)1)N] nddqab3a)|Aw_1.wnN wV;:+EmSv&6Hfz}GKA`VvN ]Pƭ!0}+[kU_']p=Z믭G9X闪7,o3A[D.O˥O[tY-e灙j(g`nXkT[z-՚롥zJה#nt5/7AuUUM-sꓸ߳+ArHf=6:C"cT "!?y AJ\ (AdM}H]NuJ{ow]$k###&|fr~%}`-)'ٺKk;XF>(}{)꿾fkiSkt$YJtY(yB;RέhsPC H2ހW "8E設DB:O4*/#P\AGVU)_[{GWvJu zT%t.6nS\L<(Hf:PGw%xV=JEQZl:쯆SitLJ({ݲֳɞt6%hJ{߆p(P@ 2$4cxUmTv{ RNݝG '=f`"5UT=ZtA`ԈPi3Tᬒ,% DA@)A9[ Si} ~ubs~ūM:e1>( WmjgEn7^ohlE(P}kzt ,%>Yfp[AxڋwOBJTMy5f>:dW6 xX}9WZݯ~JGV%D} 8U0BA]_]Ib5vjUkPb.ۮEmͿl? SEHPa԰#wL'bvpDWݕg&j'O ({.#@ROW[sڴ$K., Va%RWh&TH(Lw@>e0Ve _.ZN*vTwk&{NIRe/ī(%w 㚴p+JzH`<o=\\Q+;"+ە6!Үڶ5hG-&HM۩aѵ6PCnkvݡN(Z*K,RsB •JHQºDP;8PUvrΪ,;{?~}T8%쪵A ]~m%lfaU&< ejE;ԯxOua;f-jZi`E&pa [RZ;iPi!m:F!.wAVlWp{E tC{z {5xg^Z JкM %G%tl{)߇'+m,Jy(ҵpֿp "#\W!Gꅘq!Zym[㩯K` /g Vu/싦$s:L=22$`}XT$4<|.xQkYgAG>Yjkp%~滰?W;q;Z>jxfxZ{UtRCh-nz>s\ASvGkԠv[;m^נK 2zO}`S1] a^L̹?1F,.0MMOvqf=i̝qw#zx/: }85~T|Rb3t &yDgٲu.?s%xVnqt[N=z3۱;΅[3Xafک_عh/]8 JZ&KŞWj^k{\bt7`caOc!NKRM [ɏ!P6-U껵Z]Scm?^?م8FFQQ䧈d$A?R$!ɵT;7s π 73v,f{Tٳ]z;4ۖL0h%~!+{ڼ6J<BV. *]_Y62]4j9=FWS#%;N{34&rՆ!=D7COzA85ߟ1wo lɻ~.^g߾'Zw57`0lhv\ľ0 ^ x $} !tra2 WXهG{IAΨ@eFmIPWPteU4o'R:&vftAԣe_26O4NՎo߁swnSk#E#;ic0bT"~YOn.i]O3>| >9u~dVÔJ?_pD'*r_0&bAj|Mظ?0>M 05o6z訶ǹmf+'JPҳu ueC&\Zf]Z!2w'>|. 36㭙?ӫ'fg~‚scXX<ṉ@+ u$v$'wM?Cr/in@Ws#AyS#DYG/ě6<oIW'6 n4T*þʘ.dճ_M {NMQ{7`C۩M;6avȲ;Cspeyn <yӏ˂M,Ph;+-·PbVlVl;Ѻ$n'PrާXZ[P]^3j'^-?5uw,ix`Q{/CrU_A݊EիN{"/=^/dںT4,to<`L/"k~ 7LY >M`Q4 D%e";;eiFi(]$ވLAex=bAbvɖ,l: \{Yu }3bf<u_Fm[ȾcL({:7-¼~ISqb٫k7vpEARz:ҽI逝t7lyxw]'ѹy,YJ8#^c ]R*6M3ߎǧy\:V:^[Əs^#nǨܽԕ,zG|:ogO]%s^ĂQ?I%a |ko=^+݈9OߎMx$ wEj@'^dF1:݊ӻ7WC6һK<`>oBˆ<<ξOSۏDާ4WGgpG!ӵawxpՉ0PpQ(1ÎĻ^ƗOy*hƞuFz3Er'NVd䯺aD4%w-Je;P\BOE+NzM#Ľ$o> cDl:+0M!&YG$&q{Dn%iEG+WOĦ_eawqP܊j$r ΣDaUǓ"3IpQ^S.~ګA/Vu+kUTTIIIΒQ]] "G? Q:ڮO>] s>ʷ Q2*N:P!RB3 l;J~>`Q?%RBBKp,I,%$:}O|.~(%YJHHHHe)!!!!RBBB/(%!;yp@(!!!!p ?x}ʮx,I] oW<$? 9bTJ6cӦMfvy>eH,a=`۱kx|Gmn}-؝Q`Lc HGC2>$YvxͨkBgۊZQdぅ,| tmoHDFix\DE~J)qsV'zԣ<.Fo˓M2ǛEm]6b#;r KƆ9ه<$J12͊wפcG$`= 0*:^'I1 }(U-Y2"zف$s.V|(s#G",¶L.oRm(߂M|ʒ7& ,SBB|tddd^}q:l IBLB|r&Dz^Tw6mx0(y8&]]JHHd)?؄b̻3[+hpe x7rv|v>Ѯn9~\N^^{ qxtb 1jQǺzڳܐ 87GG{+,!!O&K/l 56' -hj2Ɋ:'}qW9|f60+o_t= A^S=mш5G@"VzB&KH3|hČS [cmEoc {zq?p}/5;Kbp5G"=a(^<$<I6sfs{\O*RBBszyj,lԌzY_xpHd-j@0MȽz3.We}1~dJൣ56؝p{*TAT]g(ߎ.J>lhhd)] Z0&誐 I,%$YJHHd)!!RBDW+`%$YJHHd)!gFd)!!RB4%$YJH53fl 9QBBBd)!!!!RBBBB_j:P[ iKHHH)*;IENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/playmovie.png000066400000000000000000027504511473342170300270700ustar00rootroot00000000000000PNG  IHDR$W$ IDATxdWuPDe eX6"ý$. ~L" V@IA FiF҄Ρrp>UфiuMשSZ{;"B8p&,`( ldB98Cda+!vcq,o<0._rr9gr0Ӊ\xEbl^9wA#yCYPB! 1m]*D9By9 ўA#AYPB! SurַJuٯ|^rtOi{W:!N'Px%B6Ñ챺xы^ ?0Bݺq#-[&z2Otg`{Ӊ"x{ B#5|#٣pM?iΗ.G?Kx%d~pyoy^O$s=}to−e]yvt:~-!+!2d[G?r~n#du{7?v3v)@!WB!d?^?KJ>3g׾5k_Zl{{KN7\V%!2oΔ\~3gӫ_j}W ׹8,-#dߠx%B roiN'*qk='tiSuwDa0!2ĸ k׮գ^M_z|w3sr:sIv[־\B_淿FM;C!!BN=gBYWqv!.J23+vG>1'}%!Vov|K_†  >+=<9N'+k^ !3"g#v_/R?}dzZ*y}F=@ "^_שp$]~332[FȾAJ!̟[ 'rʼN鸮﹕}a9Ml}oDx%Bur>{^'ߣ{<{#dim{|:g;N'B Bo9ߜ{J7CYg=K__s5=_߼w3sr:x{ݺu|Аx:?Bෲ_󚽞]K.D!!׿umXgINſK7t`QSO}I[y?Y +t"d݆ !pǎ8055ۓ^~ejv311k˰?v/_.y;-oݞGD}].:so7 _"鉼ePGB! So[x+^83~z}-BwOo¿x9?%y!dI9ɋ/cӉ"BF1e/@Ӄy{HPhqn9g2_ VĊ 5{JNӉ"BƳ@/8=ç?=Jy{ޣq+<]lr:BpܰBُx]Y8Nt>Q׷|^#&•{IA'Y?\Oʙ"\yB!o'/v/u:._LHٙ_pADm^9΃!fo8~=Hp[&և8>'tz8=kôaB!dx1R%Q'n_~9aoߎf.q#5:7*jC#AYPB! ]WCUx m|Í|ɷo!v\Ok 7p|?+W}S+oWevv(Gߒ^p~BYh$VCMN;4I?K?*Y{۞k~ywS^Ӊrr!Ob6!=-!WB!БD`-B&췄"(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%Bnμz!~KHB!xuk{oFm1aB 췄8B!^B=췄B! YD;9~G]ira%x%Bq!3J;$zo !(^ !OZ:g/ƨ !-!=+!r`H $0y׍. ![BznD!8.֝CiӽOңPB!{{B>췄(Bȁ%2hHZo A(^ !\6x+\~KHCJ!8v6`~4~ 94ңPB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!< y/$!KE:&su=?#?\,_x˳OA^pG ߄îa~/?o~h4~-U֮]x8p؊׵k@I!}g/Wo& 9 `%;{a+^"B10pB 췄:(^ !CzŎr~KȡB9DD#UBo 9tp+!rEwbAqwaۆΟ#z}gk/Y/nƆc}*B!Eɉ+Q]0ݐ9V>C9[PB!~~ِqltSBȡ}ނB9/Hd7SBȡ}ނOW"=y8IgaXrc~oߊ[ q 2B!BBaG^E>/%l'=נ5=;W~s>Z3xw̍q?W?K!ʎٙto$# !]Bzy]H߾/\ 1qEI{!o7_y2B9Fo9#lciB1컄 6z‡\?埾cwnBE{c ހl .'BU?#4YH *s>nCc3C .!ł|g>ϟZ>'qÏ{"a2BydħB#5dgdI72_s0"w#9 N.Y_z-GC*yxܻ>E? `:!G.bƯ wDm6| 4~ 1w# ׃̾WgW!W ޅoםYO<33:$rhEw#p/NN zw}ieOH姘 w/WXB!{oi&ϩ^R{p_R')rI';*;!sALwx8^U)\ʂK0z-~xYc>◿%^u{|cx{ 333xUW]7xSΟ4^.%\o~L͖z,x+^iٺuO|*j%EV^w8S122~3{_$599¶mXf ^Wu?~'xtKݔe-1_x%"] X ]`ī?}vSw޸Ƈ_B#d-X"ބW ]tmo{%I ~U{Ӟ .U`-YDEO37x#/˖-2 |rnk9炋`^n Z'< v_'b<)|._*|cww7kFEY߻BKkK_~8 -DQo߮~Se+w{6lz-9y.!))_^@-I/"jE_}՚, J5|35{I9P&݂ûgm7ky>}6)[_Mq:/B;$ VRsEFJ\ޗ(JꩬXkW\q>2fw}ٕH7C(iʒ+kIeݬ7ISt%z(Q=]o_ UIH\g|͐$)"O|"9|pDICӟ5 վpQGfN"n7jPJD-ܢuB!dJR_ x ypGY\[Eu7K~N"C}rPT*FHb*q(]h@-3="j{yr+TX6YJ!'(iemZIVԇXY ,N#+ZYۻzV`RNB= Թ<va7o<Az<>9N#ycp%B!Ă ឋ߅hPx5$o5'Ͼ[?E%B!xj7]{/|3kU9oc};pާJ<ȄB!`Ypk^B:OEٯl Q8LSztm`[sпͨ~{(B!B9Q93&*Q'xc;c, FOzπ?릅^kB!rPxΛQ)!B!ey%B!r@J!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!<B!BzWB!B!=+!B!B!BHCJ!B!x%B!PB!By(^ !B!3ǯ?.c(P&kan<я-w݅ zM˰rh3#ȻFbLJAY./ "6%TsA N\@*fKs94u#tÍz(6s~3:h1D&HӨTH򘝙EVC__ blVQY081b訶9yv( 6SZ6igA08Rn_1|ߵE6(Fky,\p=kʤ/;.|Q*i.VMxPފЊV+54! uhE@kۑu{q)Ԫ. 2f4ԛ1Ui٨#9ȥ3lHy@ jU А-N!)V>Ϣ^wBS.V'1jx}B,ҹպY .=wnB!!bPnXx56oRjn* V$lބJz؇}%h4Qz)rE8n6KiNPאNgy)-^0jari iLNΠ:]/CKazl+).293yKNmŊ%̠P*43W\'&2K[͕PoQ.|2LO4c_.k;t],"|FaBaF^ҨԚ]+jmf-Tj@!(ghER~\FHQ>1OE }NS\O3~Hۄc F3 °T:rR!'nOY!l}83y-]8NN̘hV`Z^/LMnM8Rţ 2c=@ncKZ0zUs3X(s|=OTx/&ƱŌhpî|FF84wBsU,cSJ=O!<߃+c]l.RLEki->.zZסfč z_cG2ؾv8HRd >:c0B.uơ7'LBM4JlQH #s(󋓔}X?oc'rX3g#-?"sj/ 92i]Ks{E]sj2Ħ\Tΐk[Ʊ6v'rt<#Eb[c=bȘ;}w,ts؊ #"Xv$3+p{cmOKkcMҙtrqU kL]#2瘿|x4cvLSJ!-oQ6lbڵWG su|)VFB.Sþ!R^C3 8..8|+ׯ֌9tN*c[rH-_+W_ua=ͭۑ/OarSlo$iK dpAB*l%a`Q?۶"#el:&MzR+iJ֑=Wrx:8b*FywԘ}B~tCzF2>r~CCKGE;JZa`8j0@lu u1b2ibX:OI 0NxfRL?GX`c!6 "3 j1S@I*3=A 4;)!W 'o~;1>R 6?NʥlQQkcu]}:2Xx1FFt2#QZ"ՉB)򹆊L- (TH?pf#AQG`{K?w'3;;~VL6Je2<02hZT yo5ܒ1A !ieךHČ_rrVS_Cdʐ#k T#[v3yPˊq (NQ7/ъ;fL,avBH{gjjI?\iQ%bDD_f3zf8FXrYW] "drTjKhZf/rgTds94Uw)Ht]i E,_zvlbcgR{Eé(CPϠ܌Po41BG6F9búp&u/WgfL͌ZB;(HS#,Y@S(rjU[(V "cEVDAtH45qT%} 5Yk0>6~dRͺT`Ųeێ\ U3h ,[ҏIQ*l5jRTeh j8Gm]Q%8 6\lic8q6-ɍpBR\R B#@<90Ao,XoVCVVnjY(M"Y,wk;@[āl@o s=1WD+qu}+Pag+-;:_bh1+bd ԡ+^:VH&O*RUx0@4@ugUC۞M~zh'+C,]GK];8"әf6?a'~cn:Buw>jѱƑV;IaL@Dů:b`Š}wXep-b`jM®[8ao56 $Hae@GS[M>}˜5;ךmp莬7b⨥+m&n#!`u$ ǸyHs_ldc%Fv!~F:H9o"?< ?M"<߈UX m0M#N7ӤPKěbpsHNbX'Z0K\4Xښԍ[-mmwĤ3f2jt-X*Ya9NVk6MD*~294U'M5 8!<3~JQr{h܏f}\j-1|O=ՁNMrNBA"$FU'nZVU(: ٨V7f#Iig6/@'v/Q灌U'D@'t1 9kcJU'F^$"'ZF0sE6_@r+e0Kv2Q8Vh5C>L"6ѨMIgQ)믢V+#lHI[mjI$ e ?_먮'B҉BY|iKܴ֬]BUuRF똙YJH2냟j91VXiiZM#rDjXKiF=DԾ2;3K~4^o:DLO)QT3y  #̼מ6Ҵd&AvbLFĦ<*'Za3F3vt~!LQd  l#D2,0zǁ% c_gԧV&ʶ }OƆت7U'ZbС1$F˜ H:t3vk:ױI2 S_kYۇqjmȖW١q<{6j%I}Fۘ^;)cnE4+HD+bGrUXǖ^fHl Ԟ0"ȳQVO2Ytm+#Ni8`TY>kEg貟OD V5&hM$'9]C]cD̕R"Fې4Qh_[]]6O<'yILFSlFmMۋlT60ND|Iې Lqw]?ĩS߳)i{m"- \?\mNR-kM"al+NG6 Jm95 Oq~d[Xa̬$qRfr4\f d:g??t$MqmD37=iG M PNL*<>ܺG$QI#N 'pFzeZj*q晸Kи曐/d.)xZCZFq$HJtJuRԘZڈ;`Z44}M:VX|^2z^9CF㵞Һ!-hr02mRVcT*.b%'eT> µض۴^`ӈ}߈Rnð:D8b0OYU VazJƤIJ#Cmۅ|^$,zBAeRSJ"y(26!F;ZE5:}Ij)'\4_Ii*YR1xS9gCIiLN#Z4[*6ZZ1Д6* Ϋ`3YPE>ߏf͈˖b5H!^("("Q(t0>9Ƶ8$*՚N˵ȘͨâhqxhdUdXLr,Z*c#דrlQ(w3&#| 8B-p@}~ʈ̡EE__i[qeil*BQۤ\6F=PQ-kf?\T r5vbm .#K6e7LF\s:LIQOnlBd22D`"(hTiuP:hhRl;>a1ČRuª-XpwEkvy~Ե)-Z;4Nu$&srՏx=xKk_4uKY!uuIL:RQWgi[s](ٵ!Y?:Lhc:qt\ZFt#GLhȚ07jQJu'i?c:P\;dl2i e<=r=6mM)3OaIϓ$uWRo]R JMӅ[Mi̵J݇R_FdDs5@TDj=Zl*&>" =kcwu'fG3Noߤd #TܰiR̐f0WBezxcn |̔&J7e۞XDJgI+smVڂJ]K*dKi`_>o&H3*X#^-H1e=|^ѵ9r&F+WQo5BM᧍wyi|8Ac֭(vb21>J!L( ϫ5=3iJe+cwf%A6WFKْW,UkB wϽbÍ7-+_]#9Z؉{`x*F=Ho~#:4!h^~Zp67æCD)Dȱ H:iPuɉ 5̪ժ z}]"+Jb`TJusFzۮpM T[դC;/Yb%][/rhr$}V6 zx!4(e ъ=7ZhZ?*]njrdGhz}Ӭ,ӨI:ęaЈV Q's\#ұe_Iwkp5qđf,aX.c {QӺnz`GҴ&t MmOcEsuFOyKy*|-B /(k]ULƙ؊ĿnŦD&cZC_‘F&>vYsȈ]oM8(m;]1ɭ I"6I8&SGX29W: b&vɺSǚZ46'"Tk3amFeNDDlg%9T.gBܱ[wCEɄA]@${"m[d26z@r}O\Pa Hfc%J-'{|~Fb3wi5nlNdl3v31{96v^uImQ,I6탚٠L@1&Ikm}lGx5qbtkQǷev}D;NHu$h`Ϯr49,GGSLD~++IBԵR"DMJdm ۨ߃ȢӉ&$dtTqf?B4no|`m7:NfպSZO<ۧfHȦ ;>1dtwo};ݻǭ^Ql%~p?RaxwXtWfN Њ}$=K A/p&ڦIv"1M1TtVb$w Xc3WW|Qam<.G: D!<v| 9mbSf /YScy$ga!ZD1̊c!2)1e5e7mb`\FƺUr5—Ie<-!4VheP3"T ^HQHyXQMrDf0>1ja~VFQbl/[uw?Řעas01>߄ŋa0b/Z\\ 5U.V 4✱54xY)vہ:BLL8}i=|riTj4dZ_}"JJt2HnZϳLjYv0B!Nadgff5$Xtn"}I6ud֗صx1Eo+Wj q캸Ոu)D؛]!k!9, d24$uɦ/,ڮAfMF5ϢZCXUQo, 4kܕrMU^3FG !%!.#L׼ʆ)!Jł-QzّI뾄VHvVYsz@MvRZjnIV-T*":$JnF֝'LNOh?ٲ^s&(reidJw7X62(u|촥 n:6i ciRbWsJ3vb9ok\%J.2fнW#(:"Ms"^8)F q4%&hM1٤߫4Y/kS1u(n 7My}0ttK611X8B?3u~6B4Yة<GyIU'hY?fQI-I͙Db07iջ-icyM JRq^fݰATtRa]8 $-[~` ZwNMdh`'ؤK' l+38>NUXƎ5õ rINy:G"2[:Nk"aՠ JPS/]3ӆLx'M.qaNˠ8sl~ٜʤ0u,Ux'}М\":&ҝA+7%5W>i,Myu&];u2# Ӕ04#6I ,:-tWJפzgi#24cfKk鳆goo:1 $ DWWd}5]Tjbdv B/rV͉uR6Ź eDMb`Ow2mM8bG-NoY׵w",d**q/gGrZhy۷`bnKH]cvf'UQMw#ʮ<3ctDtjȭ]Lg̮vWO:FmTQ!۷mW_SO?U׾}:^b> ax9xF<ݶ zPǮA@G9gg+j?G/aV=6#鍰;6:$lܔҩqصLqlFfQv$45LMM:YtFJ:5<S,YhM6%5\^7>KeS==uJ$鯑u0;3AЩiM!Z$Q5:d@[ l$Ƿu.M79U#2$ȴs~,q4U>f%| :V#)i j9P ٍԈɦ5lDv=k/CmS5kdRIuZAgx&EY@wDOYRYkCWq{S(;Lfok؜WM#"ȓaPYIsYs=슒XDvJik hGbHuxp@|ʾKE{d9$ޕAHh }W&ܳ{$dD\:uɵ6ncZ\-\mՈ,slצ '/v֚&>grLZ&ӳlz8:T|Be.w/iN'jGZP m1/mvN)V7| #aQ֖M{mj4TvtiڕDͥ9vc$NgKl'"m، -8 \zP/TvyKظȷX=L%Qj`mix’k k4\Vv1 bI fF~]xf"L"0TPmӍ:2yA.`"۴ Ij`cbm8Ɩ#شmFnhiT@(FQ##ƈumi>4#9cD4%V{N{MMB╕rI^Z~;ח t35[+)͙`+IEVfK[lCKkY c.;J$Εx.V] ف826%Y IϦ_]ԃo &%-,E[Ǯp|I$:#;UzY:Dj?޳Y,[ϖq==3FRB (EHèߠE4 @`<0Ӿtg{bϹYM~Ч u_(pMZY~9Ϟe^tl5Z<}Q{RN| %aI'0]1x^I< oZ5 ګ 35佤k`6`9Npp`05_f%=5|jTc=CƄ&0dnڱ TIs3hHrB5QsѰf =Ȑ&u^-^H^6D2lYiT$rmg5;XkjLnUGg@ܝI}WH\:6qN+MV7Ŋ[w03Q(#dxƦ s'JfeQɏ7m>hd2 iڛJӮm S(4:_%α1|gx`a⹰Z1FY~~ͩ{m`.԰,-?z."È>┏À# G#M!USO"݂/vz'/8~$-pVA(*qߘ㧿- EilAN.Nyx@Qt}z},KN9##tKBYṇ]P:( L}=t9>o8R ¼fG2 cn.<}G0~f*bǓ/iVh' K2 . a+6&ƕU縚D&*I^d{InNIgV cz?J$x SM7gMZ%@{;bQߢG67N^yIܦBM-oKoAzzu` {׏ny;(:㤇}ܾz} 6hszrjH>Fa[rx^O JiXBmtfGZC5=d6dbv>z |:({qJT0R%:'dwTf LfG4c QoIZn&f5Ӏf2`<5)xWGt89OhQ8fX]>UVr`b<%6_vf+7ܖτĉi4PZ78==qyE}0”,9|4۠$3&XmR~yޠ/4ܼ@|5׹!i}7u)nhЀ5F/ A[D(DJU4Z*F2{a$52>(pYwX K,!qH<P)|C SSsG/7eB&|Z)fn[s42XL/q}2ƘoƵ!}Q۷6uMϸ)(Sr\b:iz"(lBw.gs\,8_q3&$ik9s[Ϧ-ޓbzurF!A3Wnȩ-!=g=zuP))4DxX;~<dž7Ԗ u'WBK+];ް$mKR6U k@d"45¯_yo LpttLIZ8LC̆|Zj@IϞ=3QlΆb}47`z*6̑.soOE?ٽfFv<ZݘFGCF+fS)s&eY5lC7Х(iP qCZ9xyо_B%)U5gΆ|1ݼ7b:{|+5(l*-2C]^'eNs8zdMS֭l*Z2}5]/ ȥ48{oN9-: guk {۫qup:c|x L%dW`ڵ}Mpu9UӷZaTbԭPN1xgʐ 8x~Md!S ;3 IDAT:}\oʹbELx~}ymd65$w`GdllR\oy ڇ.Dq]vTHnkVc'kq`tq+Fu{n99G7DI3[oOTJpݶQTW8@lkgF+?$iY>ߝhp*>_/s53ǯ Lԩkǰ'QS6V 6pd;t׉"Lܐi%s*4mwC{-7oo)7|׉^y٠hs'6 )~_st_> = O/ΰ0<<5UukbōT>fXFZ)GGTê 4n4_┛ζr%މ!Fwmt^sgx+_çgʭy-#W79>/};cij|2* ~fE _:Y,bLG\u0iD+ \1W2j2W.+S,äŵkخ:#S!7Hi!="Fz./%f6?R|鍯b8" ݕkg8*_*E`dV=nNzx-p{O Feo} 4 wyxH7Z,68T&}5`vR@={|_?D,Ďy^HM#X1WQM݀fC,"0Ld \0Hah{n_Wj ULEehEL+Jg"Mei9W,Մ|,Q>,Tyh9U;&Qxߕ-1VN{6m^Q3lSƦiHヺ2LJV__Pv sz`s廖=,1b--6ͮq< 3ʡj/jY@mBXWi۸!vgOS)bRԿ>+dx{: kdʔFf>ΗpE79vO?,cnC#fҐT6_ qM(<9eFӑ>zdT΍kQcpm| <.6L+sߦ-!5gg>(a!U\M7x[m6^$4Xט2 Z`oꍜQ}$zbupMlh"2˝q5N`Ey5V+:v] KsKcXIGfV,յ9f^\_녖3T D f!nS̿5-_xuuk捅0==ޗ[nettr wp&c8:R$D+QEޯL+}./0brZ]hG2ދ(yсK2csr> DC= N{zr"d*ݰ%a [;nHE8myy%_ױx O>r&uΗP)ԤYW穹ylNkOqx*Gdr5#c?>[k=SBj@'A{u+8FF5b6]bpF3ޚ;e7eO3tcNޠ7Xצa&^z#SUשU~MuPolԮ/fH>P Bi5{FsO M-i2^K$/tG11OdZ\4lѳӐY쉦xB&츮f)3&o?˄M n(>5WY;IxT8H+Gmo jm)E&biqN4HNbdjWF(6,aƜR:7j09 s0ZHlꑚVښ5 ً5XHM~-z#D3sC1-ă5fbhȢdPM#v ;c\|<14ƎmQ9NuΙy $Q\,"s[ql[kmnk!LSĎUOj^oo܆q|椏vSpֱkWÚrvwnHUCjv0&V\D_C+.@nΤ&WULȧ ڢT־o%Bܴ"C`5c6=C*UBZ"-ߋ}i*w6+|w}q>} t9ɻݍ$-}9Ql\shmw'-WݯV 9?''63Ze4BX&-ϯ^Q4.nݼ'x01pcdDJoT"9um|mN0 ~ϑFYD9 F){m<_VmfΔ[37`)!`^pWRq~eu.ex\'qBrsƥFNm#2{]^جi@{7P,tPI99 Q)Ё MC9#/8 {u|'}׿B1gBvCQ  вc5~22)_ |7Ġ?`1_(hra.uX㼶tGCg1) ݧIgE-oU G፩Yl?-Nvtۅ 9^5\qpnyOQֱ"_Xl&SQ:R,42rI MQ#RnuCTk%Αf:C kB;U8'X3DAcb6*X!j4JÌ̐0ҖNg,]+5Yu'y.b"0EnY亮!Lp8?fc:xD^̗F}،:rtfď IU2I9483J֞ ˻?2+ 4^oS RPcjfBl۝&MwvHUmB)Eۡ]uk& !;C!wsyR, Mon|B\,͑:D^Vl\D r v3-Nc&IU}@t"44)W\ Ј\ش`\¶kR4fMʒxq:;IMhUAcSZ+Hu5mk$L-+%iDiC}];!n9AK(f $C&X_>-@2>H?vDjv}"2npӕGSm7rp"Aw4sl&@E.}ESk' esC7MMH.D#лL;òPÇPִD4YnԢq()ytMr? ^08< X5X^o| oã#+?{~`wݐ>on]Kv3WCgƲpN["RsΆ[lԨ66cSY|v2^z||$W譯e ^ifWN_k ".Ke ӖwbHQf:g.&n.[ 'CXrTg6l5iO43#Gp͉ <(KtW#gS$6vÊ㠺 x{$b,7=f2S\@kyB(rX:"H/4T+cGQS75dބi!^)UQQ"cMkQ-DE[xcW׊/!t-;VfqxPb(5[.Ѿ*CꗚS#xӞ5Zf˫,Eʤ_10Xqjbg*fNoןa*S0cqDav<+q omHZ^kKya'j(riMءFjc5jڅf;tx~bR\ D7[q|&_ixMmphiDʮ.,{ۼ~_M].q R$OfE_=6"zMDS~6O ˢE[#]x;"!>:]mb#GjGYmwbh%$wJk`pvX6??{{g_;oɳX=v*\0Q%J7sO/0>cL*xz#E{}f*bwSsHg׬<^Nq8 g3ŕF^?짟bH*tq$JnhRMvFTĂр#k6`Iqf]>@Âd3!tu)vF[9%w01ffwS|9#䃿3EUhA!"lTCՀƑʵLO?fNE>CVs]剢^X0Ħ#_%]^?1..Of2drnÇ%x.PO~,+Tw\я?7qj%ajaaQ-v|F1X>296Vi<8:y6!ΰh͜h[)5UXc@o1X2"Xđ tl j4u܌ݛa#+!9C;iC Z.6g4ZvմK7ZCPm^bu3_.]6\"A+kG^2pqNK/+6''zļ^ZSԹ㪔Ә驧>=;fh4pLÑ~ a!:nTx!59̥UZyxP=W͠n0s-)`&j,)h drHw9t2}vZ̨C9l پ*Q^NMerF7c7[YA1M7:ʷl w| ޙV16ZLLy`VȊZl Y*7|آ sjk5EƐ7IulܭVlv(=;M%{kQ,rhswY'XZ:(|2s+9eSupZnDiU!n`{CBy ٪z+\05b&jV9f<4AA!ڑ\Zi2!q4l^bAB?! }/7=QWjFUͶ ѣǸQ9RK/_o?t>ӵd{w1Hy7_]cz 6(֍!ter8VQ&cGZP^xBpJP91`p pGjۘrJiaku iK:1"6DGݼi- iiTq~eXLdrfA.|t|v!WUKxWMbJC.VtV*HV2^ݸ'Obqq&.bնbakXfM6:#.sCKGǩ'g]B3kC%⹘]IƅMk)LUt~0VBRBr^w_MmMQZZNnMslVe6tDi'#rem- c 9|MebKhܪ( EZNU='6D4XJƝ W*!+$ڭRÕ %ʤs-^ ZWr5"+rT5{B^LT?8Repۈ<)"d?}BlM1'l 2!enAʊBǭD`,up25A&h3f#Xx&jasf-箯!ơ&m񽦍pY?L+ʕTVVGZwu1M2cΓc8ڙk%c=s3~gY2iux t-7ڰ1b3k:8"Mܨ(k=$iWveagRDc A 'nr,:i,ыQ?C|nM6?Alp,"仱NL3zke*Gcʈg;r%Q%ω]LHyJqȌ U1#쾭w32]hДLEO+sww"FOFLumg"6 v;^o-~k؜NJuo~9z:nIz3ݠhDE SC,ߢƍW]`^]b+ W%ᅦ˿~Z{8<#M֗u>/;s|D*;p#SSCS&"tf&q"4m^)*7"tϑ!^.D܈"LrDN&嬊D\n_y |p&:238՞)wf2tF%K[Ϝ[mUb+rdMߝp`Y܇π1$97y{,& c7toNs=yw\r*Cor L F᜞]jFđlz%t.D0 !Y4F@:h;b>e*0V~OxqA"G!pΫՈ,fc?E6*Ĩԛ"Ftv&m+1k,/fSl*W9F㾎}dgtBNwoo;w #4H j >jFadPQ_\L(r3x"iםa?eE#]9ݎѮy9}l gTpv%Zl "4Sa8 P_Q;u llDЕ:*n1WT( 7J9*ܝ[Z1p6Ü ۪ƊP]Uuҭ uI RFLi4| 5AMvqSF6ACg>;iU%9JS\6[p̝clKl"#xQ+.?fh) <({ʬWƒ9i{Q-iG8lp*(*[7p>rMhG8V HRy]vnZjH"S<<.4[!Ar7pȯSuK)Bsk&3m )G k7jaCjPRy<_D*k ~tDz嵳5؊r-sܩ:& r*-Izd7dkX{+^& R>N,v~__`mMb)MkpL(m/ClװlgQ3@#*5csgꖹF7Rv̦64{bO6ڳ9[k?~#ܾyKHT_< ]wŽ7O>H7nGdjaˍ,1zcf!1¾N]ljLhQMhjj+Yh_iA>:tNqu$2Y+2OUKCD5tH!W'n'2:Jz X1_]j>/FN? ~+Z6*R2r䮱!Otp\`:)P,ht-8=Q,}Ƥ@o6!9 {/~|{8?;ɉ?>xOnֵU nN`TqmM!M)mښzDZZlʎEfMvc GIĵ٨SmU@.Pf3{J`\+<@ȣvs`|tԴ9e[c}<":>eXcqM#p"65Tz]nnYV ϟ>atۮ᧞ȈR\,b+=NCZFȒw{<;>sr2G!/Yj2"ɒf2&~!ҎW]lV+8 I .=7ybTjrCK%z7`zq!nL̼(.>#b2t3.0B؟[ :vf c'dEnFCfJ蔙ѽ7^mWsEͨuq6ndf{+_+-V>SFpZX39_]NE$;F=[+:85=s9)?Y͒[(SL9C G73E1:g;N͝x܏3_,VҾDT3j!tFˇƴ^:>Q>{mhxW[7qdDa!j-;Ir γapIMx>n"T`UU4b4 \~ ! "5Qۑ+Cc[+59EĆN:ח̍vdtmiNo7,R#ܢ!o : q N0cP_S#YJְNۀ dem7GȒ9]V>ed8t.Yn\Nb&]m|gnǜnP0|5T*cG'nO<&l/;65oQ ?xwp '52Ȧ &~( $wajDA舛* v2*0} /<\l7u^LӓZBtG\|ŧ*?Ɠ}d|cܺy_:w;ƝԠ~_Hxv~ssO(xX*^,5!;=hȹ4$,I#??uY1W!+\\Զ&B$ց|4oY t(V"rȆϡ΅i9YWc0Wѓ`hB Gz`3A4 FCN僛l¼\P$ׇaW{Zt{)d\ܣ 1Gd{.-hkܼ'Z 䔖]@ym\8{MH+pO< W<&45+x3W8=?{?d2,y5×x.TwjӮ?C|D۲->x]=N&/|hgyɳ\0cVcuE?/~s<;;~;~tM# -DRv,dSڴ0$TF:r@!)X@:J.ht2drdVNpu+7K..p e7k2);+E&B.jitK"g+{<|xBҙmj #LY{Af ]]Y/. <{^[w[lW+ܸvޝWqm\?<S}ԗ VM8N7RE;M,7ss{r6ffQ˸SE[&#emJp*lC#`җ{yoQ!ѲR̄tpUlfy},Ox,lmˆ{ۈM;)z4PwC䔹m9%7bڠ.ْqGAdvkNfiv-9B[o}'89JԹSF\E)j }nO~WXNQfX ߹}4jE永UZUs7R3p~>x/= ǢҽHI62>.΃ؑuz^yMe#=,KW2QWw46^_>᱑A \"0=r>J61'׆ȕEge(mp@C?Gñe}c,h8*Ԩ25ԙ yA|x]8 9ؑG1!HDU9)x$Fvq@IJi6luP@_w2iNB Vo- Bԅzͨ7M&r NiHoƘ5;RT" *NP A@۸Y޽gM}{)5ݶO%zbwಂ6Y:,th2ggR ȬmoKuNᦍ񹈚ڳU1d0]+i1%MҩydtFF-[̼3D5k{_}w06̈V#V`9/} ?}F?x<-2ͨX,>=7 M~c*0\ ЈU]a^ct *Ъ<BQ03q*+# rY Otu:.KyUɪwm ` QbdbB϶d"6ӤTؤވbl<:Su IDATEn/1Fͱ!W6֧:qYςʛ q69F3t66pbEXpbkS5BLM*g1vPbEXQ@u!W_^2J\Mx |[Խ]m0D\2p}+?6+2o&+|:G*wП=yJd?|!~{Y啈3tZ\/-)F4r$Fvg`azV8TG{]MuߒFf!cH7 Im,?Ѩ)O5YnЕ`!..)l-b4T`dERH7VtB#\>1踢QeB?!67o3!DrH,:}M3wlQf5BH(24  q2H7s!Ԑ: QyG( s1&c=RZ5D9(bca2*Lm6zkgUʒ܎./r^X_;:\΅ԛ }Uj` lUZ;fRq|x>-j,;~B2|mq1'~Y?ni4ix0 i Đ&(B>uXvFgaG>yE/37m!2۴}rs`z;.P_ifQ}FF \.r,V>,j!cWCdx { Ms|QǽplY!V,>~?*w Y6tS)j!+e9B3A⵻ouSe_vb)|F,{ϮNpr!\yOF#GCMhsG&"F۠ |׮!.)sԤb|VT'\^^(_5s홨w,:c#+fmSdt_#m9_7^l-Mc7)6BI.ٍV+p B^E5TxbSܵYDiVDm|9}G7tiWv&Wi"TZc3dx){Ȼ{(&7-F7qX3CwzsRk|ɇ+8]<~P?`ɤE&@n,D n@:2 LV5 ΢=yӊHSpmfhe,\B<*> 2vWc`R\S q[))21)W&8+zcfLtZ=}lXYxMF;..L|͐!IF#:_;uj(olm@brHO w<n<ކfއ4gA+u?tlj`L{%ITG3ctM3rO.ױѭ8'%pt09-+ƘMjW{MۮK BHٲQfx-T~|vYPF4jko\hGߍ/cZ&n1!SiE_nl|Ի[7eA*_n^4m; ABK Y6&[Ta1 pDY~"dR=FDG_+>{pSONaYF mLH%vb5|o}k8==׌l܋Ϙsx JHR_c0a`lc+:΁9fcdiZ -~PO.^9*{-4XXgQZv0ÀzD9,79S~6 UVg8=?Ǎ[7? !ǭ#7s3 GH/9QTyU.tC>r_Hc,rHiQU 9?{z9Cgϟ6n.+2b\.(tڈ }>jmacv,<9s/J׍='Dcq|Rk*΄.\"}erjqba]  AG&$r4cV {kpxW8\_2~擟iX;-Bƍ-+lzGjԚzncSw8y\de zCL_",گ_8+2r[:9̺88!b$+H'J?qvvaSaHp#&sPץ%$bժ*zGpv1Մ=^`v;ul˕^I-+oD2;n`?u0{Qm&t"6ȁ,ރ%41]GcKXq#Dw٭9|6;)dz]cqyKkv2B=tz%̥ūW+2pM@jy%Ik ܪl̳Dt jYL "2iHu #>N .[R^.b#b'IҸ}٩Px ^ulmddE&e͚,3 wsά U(T )(Qav_)#vÎԤ%RPsey{fǷܢ'D jʼsgMۥzGƯ68ϱ9CtddxTd.1\q]K i奄g}mꕠ~MFm r8n62Tx3}5D6 X#(&QZז LoKGK{5hq whPfDTv]aTU3LQ;,k7*r 0|N061*uE>\5FNu޻C+kݩ:Jo XU9]kYө։[&s_5=9Q@*7Wô ʰ^WPd~i64Y`^!xf]a{8j_o$iM[1qx6~WX+$e"זE&,k A2c>8v#R{33"a ^I%@'bή4;8iuL]&˰/РiO5:B Rĺ鱣FΥъgefS$ݏ7Ev=>rS| uQ 믥ؖ踃Ao,M9b&Q-Df4H wpOpz~"zh79`qu gs>5^7\IF1 # ['Jnf=1[p}3ǨBbnt _沎F&2aiI&e珚\Ap #adaw{BN?љ#E ]ӤlZHD H|nF!t m\]! AO4({>2EQYf"p0ծW4]ֺ}5Nw jɚhwF5T$Us5]_k1Y Lf )Zg]LukC,nl690Jh#qgpp"G.ܹqQ0cww?wedEUF&1̆C >/4j)|hN8HU6 c,2$+ Cr,3uwnazf:&/:LtP݊ u3qiޣ\q Y PczxUiE=jYb[ZZkTU[WFEilBǏ\mSyz9\gVY_*EU)FKq +n﫾֓Fʐ f#PG T jot䓓/ N/Y7u"'-.O [}i]Mu\] փvTKi( a60C&bw3erY`+BK]˩y@%0+\4.v89c;0T|7@;jzn#U(u3WuFd$Q?z;K* y*_jˆqO®t# &AUk3Mp4~HtdJ QNח: סDpqÇx9,f<7^#79o["q ┭ƿWvri@6`NI< uW,_:Rp+wR'zgv7 u  }&? (+9}G6Vl2-A??qq8V_H =}\'+LI#4nj.%2Dlnl Yh1P, QMK?nD'Պcv.ڰm)S8yhg9Va&뛛b|L0 d1-S*Z%Mw}tfr#KU8?9ŠՅ =0UQ@"\:L X#fd ̖+qe7{쫧X7V 6޿Z+їX?Kh#aT͋Q7sRdA]5#FVTNNM ɞ[%{![/Xfr.\I5e6R2M#)#-dŵ9 MM+fҌF"Ϙgaljኔ WY6#WCMSUTZ]AÄe}.YAT޽lzj9O0xs,^!*|S_(VhYn6ΕŵdNDu6f\Jh#lqDE13̧BK AByF+G)h<Q5sɃP=ۭXPNjmwC\\O\LdXR+qZ [X,1UZhtZj&hk璝J7sCԋ%P_a{+FH|( 0o%j8h(' &[9vdhnS23MF*ZZL>޽F2sJCQg: q8꣘NNQjXh+ız5^>ljDT y`ӝD)됗 ]-EbTڀҏ,+.3jJO5MAǪjCkǵQSyn}ܤ F0)Ŏ.lMJ e(B|Q6z*s$.uh{ȓnŝR>[;X-o\:~ؽs+tvvA }QEU?ɟ'|?x/Q4ORU&0>0ݖp 6Bw BݭVA,oPWr0(+4&FGwNVsEMjS1V>^5ajn 淟#a-JH])mbM($}O,ZF$ K]"Yclf1]i iaM u%6Cuf/M,r2irߕI" \âh :˭ U.~?>NN.p||dcDAs*]"p<7\6Mw^zr)*4? )5Ñʬ `Fk\,ـ~X.oG#B2ao٧mщ{})5d=#uP2];ӥҤHmU:P+4S2]t,ZF[s8UͦN՘Cu3,'X:OKr  }Xl.M(Scĝ.Ύ_H,"%-P"6GpPװ۷c>A5( m|Al4`5{4mliN90naHpd1G璛1P}u(pœa6bk>-T0w/?G7v{CrW,K-8@%Jl?YbM++}KAi,!DD;=i$)V8YS_7oC"U+YZCPhNGdžS1A)ijq뚤ȣ^Ɓn|+sۚ7Q7| Xa{aMy6ڲ5~>>q=R҈;.qEtVC,im#10lx7tcsS GvZ9X,8ςPCgALE*q GÚҤHr\SFa(F n^6wC(YNYn}s5]4{:P 3dl|\@5aC:n2Wh8}q *s'fHU V tCC`mmnYlhl696>wMwaT+t ~›R.5®kpàn7L6˲cWDZmD*O6Oyġ[[sʮF+xZh( E#oh0p&NBh[UɇD 3W5~(K^&nnqфPhM[T ]$[P~D@;R>eQ0yt~o^Ջg8=y+->֭2ږM1")֗I5],z)$)R)0?`Ue(u%]d"G"&f9DLЦ{g'+,ES4 Fph`1cT1aggB$ XX)54>A u0k8+|M_O4،4>a1)KT q3ՑBH7jz2T^Q$ќVLiZbdx5A xL%)2X) (/Es=t.,ww˵D ʹmD25~)0Oxt>G?f F[x-CyoϱK) Fl|Y4- |.йVC+kO6"\`oD 4Lc@Ġ?cH%!BN<4f:YaC_#H4RJLI6gQ>5; OHͽt~htJ_:4ӦhSə89Z$'  kjD(w\QX5 s LTT2:VsVGS3@!XcA 7l{TKkJ`-{=-޸2Z?8*Ɩ {YkG=烍+㳤5p)uvAΙ9# rGAOѐ% j)0^v[:k^Wx<ҭ8lNkT|k+UNN_y+QSiUaOXS7 s m3u:{[.sף&!# OtU_Cu׆n[FUtoN5+7nE@}u)pԞaKUsq55z\k}kz`b1Jpcc$Zn :Aj G&ouR0~ۼ~_Ҽ/LYԎNiᆠ8[U5ZVm;N+ܠI$66,z]+5ө3ߗ½]Qj}i6+ʍ7rǺy|x5a |v\Cg.KWUY ѩ*t5ڤn!NФė1~M&*3d26g$*P~`j~l?O%|\xyzY3qo%Wj{аcz Wb4Jal!uec%//iOejJ9d(B7+5OIĠ] Ry`|h"5Qd :t8"Mikh D]#>dž҆6[uQJs9b N B@Ti\Ho*C|S|RUdRG9 (b2(r^;4M>~FM$lFZҼ9Xf H %\zÃ$I9pGwnޭC)b./,Wޒm1U굚tSk+XX7-eeL&c\\;!-*\O&8%&62䛦:Ԕb7fƦNNNdßeЀ;'9S2TQ\T <|"])[7ium740ť 7h7;ҸDxgkġco~1)7FHVSnJn1!qƣO,3^T7WrHy_~ޛyû!=ssuWB;'$*L,řD!{ #cTU nA[ؐUIk//.U̒ 09[cLZ@ ^f=kJ3Y*f8;g_0!$6ͽ+'z2DU au`{_&] xPPE1r̵77ԃMڮnV8 M] +wθɯEwMh2 \VQP5H,[oKןE݄fjdnt`%!Mu )5/Rsm_g853Lt-VNsibrO7FMMSd2~ڣ!n3sj48]g_`}/ň8HE6MA5[- %\ 5mL mZt@I|q3t5]\Jpzy>>@nF6x^Bt8giZ`w]89{(e$ZAzl! 21Q)43k!^Mndzَ %ɦ э4*6*{KȲh2oRרDl& ȽFKco bS5*\ϮE[ZTJ3$0>{x a=cQ{kA"%W2ռYnZӃe).FuT(OGD5)9`a;EǢMl z!'D5-ũ2ďC#F[=E3ېGRG㱚 E-RH 9eq.-o,2#\B,/-)Uqjho:?s-S{pTA{<aBUĂ 1\ILNBmL};HQ*P'hV4R Ca㿦) Ҵ CN=tƳrLNvGGB-6ndDv[uiy(#ih̕ԪrHJdƋfdnp,2 L4:7NWJ 4;}7dr-|{?_#r{9|/I ڪ]"m 0h+ZKG]5xMWI.tvÐ؊5LxO=$ w 4:x/"(Rn\H#8tcc*B%9T3[$DV#EyUYM)dNgs *. S50ut BRnSpvv*}qHbU,hFTq[tE-:@}88ttJU gXSºXvjjOuh^..J YVUV5ĵ.1tq;NPSm\]=몦>m]XQz1jZC=G zʂeb\9t"2:4UczblF1Z1c!&w\`V)C|Fx1dž70ʹҘ#ӊ#ee>P06 5KܡGݺ7A)%yJX:}/ rfZFyF ޥ>o"s ͚ .kBG+8F#Xٓլ1N]DLA viG]77A:;]eDXՌMCO6#FDR`1SϦ9ԬgkQ>zh!|oiJ:55.lmXs5bCWrm7)AMfc#EGj{WaHk"ZS%%ljmdacl3Lر {*vȢu^7@ޢh61',F L:[j>=|чf2#쏔_KjC(o7V~z6yq,3z4 &jV*uZ21rܥ̏Ï|[-:R@o>s"Jto#1/ys a$᫐Lr1Xն2C.Ǫ5cE[qAW]B5 !N6DM%UX͹ARy^Ecz<RBG{\ȲQcvrS, W1ѢFuشH:C@t"pup8$dFADf9 6 c ('4.C z%5Oh62+durgGE8c8`8AD؈ј-MR8S+)Ig#p P);h5tXaY)3Nwis)+SZ萒Mo;@8C"W,jXR;:׆ya2˽`L2GXΑBIk[&x+yHI#\36UQ%tv Ȕ⍷/՘'c1i|yj9F,UdqMsdD \+rMܹ}WlFw I&+F:!HF%&|Z| IDAT2#rxs}..tmt{=Ngj٭N SRDzXV2|"]ZsGsH:h\N40e.ĶDZ5z" *.R$fTiU!N!AոP$榬B/䀃SS䠄߷tb8"uz=gs3AI1^f}5Tg<tuZA&P-EssRu:6ew4^k=9Wk>V͜&,h#+:+a8EX0@ ^^Bβt\- 5;lan\  a0>5i0TMӹ4(\\Yӣya*+X9&;*j4ÔmIdMfƵUh퉴f4Y/otMh\GHq|@Sm4t:gZZ"y' edV9iHeMbhUɊ;Wa95YSzaIXj c*O67eVU32 p7eȌrJk_ƿFӁ^G^k;"D֔;C01x@v$Gh^gV%0:^/9YT&}>yFؼ?vVL`2.:KVvhȺUa4QrG#7jg<hln1<5-8pd":zx$EK )dSѦV13"CPUɽk1Fb;qV,cn=y|)~5~SFx#looӟϾByL3qUƘYO *+*Okt}վcb?Ƴ/ (ש6T?V D` ;-4*GHpt-s+0=V@1!4D45pLE{f?wX7o_Mm *Sײ4o1hBm^9t+!..ֆDzK$_&X cj;\"(&! .[{8??p#j6铏?w13\j-&6&GCm`o;T8;x\g<.ҟI{nZY~8"C"LEd#ZGm#t]QJ 0\#v8K/0{-1‰%bArMt2E*e4Z יv.+10yz33Va+zGd0HvERU*h;)Y&mqS/TJPi -6h&[<'0TDi8h4[~~VPZI]ٴN\^>UvEF 4Q9RdRYu%C>jHV^>I6k a!2SU[#˦$[r2GA:8 ):24bU ek)f`q)- W֜ؾcv*\:`bQK]iJǥ@V~0FXK\Yj9J ,=E.GK*Ņ\xp),K_\ii>+C32/*g,ELl G =[3!0wT;%:g ,Hð"Іm msl޿F]FA ꪳ%"F+&2U-vueZUkNYT6͐5#u;_ ( F3꽏JC+Sɥ0\hU}5ຮ"c `ZNW{M,{ݚYw SU>;ot ]o|]Z|x3zAy;~(xf>Zj% fGy&ؼ7u3҂:Tj'Ē  u eA6 NUXV-$Th3~0PQȒLZ&1S N֖Y Z}*P'r}|}։s֖SB̋$@[-zB:dx]%Uӳs`No?+mtFcWgg% V+z4Ri&nO&.od3KZ B  _@?LnH"M#W&jx}̧s p궅*H1~-̓43[-M ̖3'~OtVKV1EMb4ڨ(2yDiO{aEei\dJ5P3I+Zh\Gtn^.kd멘'12IWQД%1:[Rl 6㰉\j#r>y>>y]<@sR#3 DZ_ꩋ\1G\8 0o!]gD ܭv{gxt–fa-1EWݥԱ,1d5aj>IVkdB-@AB/=9?;1Ϸ(,BF'w/knG6, i5<\{4WvQ Rp%PZoiat`(-ӝI>X b#*)^|xhjE\dVSDRIP>\DmeHu T>MGxm2,ivQ&kT"sH-.qy=Op~z`ib\#N-ލ6 ,dnaw:&ח˒48#sZ ɡdg=!Ub &ѻ ;ݠ~L nCe\&2YҳY |ύ'H,c2I{^Yyr M;],o"jrG Qu&-Q] %OB,ۖ{|s F-td_e"QMUz(!{!"7U+QD8JtU$v|E.7;xu7LNwsIQ;W~ƺRocݫCߒ>U^QE`9v5Z˘2 uY:yFy4w;5Y7QHS`ʗFYUeizPUڔA"R:m[cչ6"38ꌠ!*իX$|6i7-NѩCz k`WftjWŒL^l7]%\)(56^2$vQuínQ?l5 =K{NJ9bX߽裏˧ ?3O#+1Vay}v*]HnP"t/h9l%3\S`j{x<ȶz}CɲOLBu>әhOyܯ/u-B#&F8:QuN s eCi7fuU5a*Yd9cSСPŰ;Mbו!=x'>[fxSIsG#la>?'~;C[CG8>!vǻ8=D#hSDާv{w/p{))>9^\ti+AxIoC}1~\^^H R>#S/-,`oGGGB&ZEf Ra z]&Y>IpS/Pb<?OLbCj"1.d^'(kTK&Bgnga9鵫o4Ƒ8.dBzP%H]rP`-<L5zg5 (S!ncLkW*Աj0MbxB`xG88ׯ Z#uP,WxF~hjZ(s-_\KX*Yɿ] n7T dU(rZb ~p4mgg[̽0M,,Y!>4s&\s-3:O{k8yAkB+Ҹ̲9kh6{8yfE?,e@.Lfz \,nEYPD,fG#qjV'r!kI2l-9BuDg8[,0/qK-M$Ze%E41V4bJugqܐ# m\+ ń(CEƜ4̰M2rrɵ,Slxs%./N8 Ȁ#aBUu\51ip |s^ϞXS<>+Z㇟ s`g{{GXtZ]<[B{d_aX BWo^/ǟS\L>sZoI%E' |q}&?˥a1 cCiXp*\Nay6-t 9O nx{,$l>z`xlP40ZDӧ+Q!lJR,cY;=4i(~^fY 6ͬqOX!32L/_`4ޑ ;|åFg wrv%Dl2h::47ldӊ"JeJuf~c\^To6)z=[ѓO0>13i&_> d"HN%Sie0^ YiƎܻNNb[O%RIY,29TZFVk1ywǂ#Hp)Č}>m7M2q+9+AdJ "_$Bt"'Rk>@ōmGgJhwe7ra]nZE$SoP(FfjydeF &fN58pqM|7Ao8STlL*Thj^/6տsRn1En,TI_# ʍչ h5q|vjQVǔ[:f#bZlc9V fS)4fϩbjNXG 0SRXVq^Z#5܆*5RWEG_FxqdC\,a3CjifFo߼ěc|gO/4\z!Du6K.B-u]Il?7O//_7XȗSy%53ɱ=7j;Nz8nbN ,zgazKFOdQ7N6ꥢZb2h4ƳWq\ ) såy4A:| EJ&lCP@A8M8P9fNAZL2źLJX ZQGԌ_!.3p{Gq޼~qwl!mm|G(BhȊWRd;qG{G:oub%C_ne RsrvG>g}뛩"AgglH,>54k6T L iڍa3bt9 $6>klj48bN$H"|Ѧ6ۂfI'׼|?:CbU[bZµ}єŋxЎ8Ԑq)C+#mPK3y^_d3УtnqJ+tZʐb==! ~'냆Tr/hOfWs 1RY֦%j]x4X)?>ɼ>EY-t^t?+x 789~lylu4Zi$TaS D\AD(- ۤڮW]v ==0[$i~ȝ5@z43;cAVI XԔE2+@Bߏa /!J")4&5) Kєlg~V/FayfMk>Kq[y%œϬUhR $'\%fVͦ#{:C* g\R`wWS,+a0+  ]G=\V IDAT^]!# $BI,N=,IESfU c]ڰhp((=*WEU ن FTLQPOeqz0j";!QtEVݿj͙v)lePm/ 7bPgx]p;'3rhB rP/ff:\F'yKG}U3qCͼr9f~[ 'sHUasMZnwhSn6EfthޕJܜ!OMSP7S=eY&)_ 5i἟i1Qڵ@FkY^>1rR`QOjGs??SV5c!5:M2t>6T[h.v h(׺^+?PЍ;moLZ l^] {~A< 5º)\W#M*!vb埋ƌHCBꆂB4mkQ٧VGEX'A=RrVט[I swqD^:h8z^ MlvY!a.l\R](^\kLV٘P,b6ߧTKqYx4yo6E<//p7 *v r8(-ifK=p(YB Bu%zD^kR_Etŝ`LfzS|tP@GViã#z(M\Wb"+ J5ۘwX%+8$X#FiBd/Hunpw6XtL;Xqr!5[XZެe^%ŎLkHrOel.0Ǩz>üp-!` ɹw8.{W7>g" ͠ÝLrt:}t=?¿7ZP}UĸJ:VKl 6/-~!Mdà ;g78?y}>~/^LfA<_G~_۷xPٸnӉ"dQ$:AcJ'i*S\Ҷ<8^G}4QBj"޼y)j&Me#<17ıMV+)D>iE$c6,,+ŤtD!-K0xMbc=#?Շ ].%.jee!dShr1gWkiŔ2HDԡS(C! R.)ѝi%97өVWRau`p6- xq_=}*׉vD.6`@^[&)F!D q =W-67FmdHg(ƻVu|"j*% CAjs%۔ gDݐ, <-X?I1\OR[iQU'j}y<߻wo_ mff g-Ғ.1>GȬ̰R{@v1ڽ_FABjs(qToQlաE7{zZv/+ q}ռjqu֛X$.A=hCܹ ɻj!X1 GźR$ZcE(s(]Ί҆y娹S W44; $l=@@.ejRB5:!:h)T ⬂*Gc4'RYj*߻>nU)%]d ɊvܗIRQyEM]wrW\Zxk#!A :"]< &X ᘻ@!N4j>[FCk w` R$=:q=o]#u*kPyg:*-^&!5z6 5z8 :pPӤ]cd3?(׮l6n(,dь;C}k7ZrCA[iqF>ΩJ\^V? Zh~mM~y2Nt`4 yL챡[IXlpqTEAe_P(EQI&/:::B_RPH ;I'PoHdsib7uw_+ v0=zql5 jK<}_?{zuD"Dx{箬w"_gx4,::Q,GϯoK p0> BvJ1k,jlKi]\\HrqVC8,\.A"Y)*U). ;p37..&B bwCPܸ. ܹ{?xlh;vIWwR'Ҭ׃VHow\la Yu0+&\#8awZNjU"o)95 ِC, Uؖ|A7Љ*f=uh#qsĿH^l:HPD" lژg}ǭ `P{=ޖa юq9l؈䥰3CIY<4Rt[=UtQa-:6 9B.y(#\1eQ]LoޤǶJNsNj7$cD)%eTUeV.̞0<l v2TʥL)S E|}}s}k}# /"ZFWLrv#}:+ngH#:/' !B`b mnu jd)-(oG3^ f1> ӡM눆qC0}$a+4sY |nHZ>&)z:4itv0<ýwJ1N/BȽM#K2a(gMyWrm>!Q3em>ΣU>4tϢ+E*hZʃ6;?UN7DZk.@Xb֌Tf7wlX|s})CDs:z+Gd~$Q$F &14aKtF@`#zβXմ{L`kJ,g97#g5=76osR4=r&ܗ| bFkmFN4e{^8qWvoҚ'-F`C\o; MJfF:V憌`|VnUF`u4_痚ן]2ю-? @beMqU?jfRk!&uTNIR\+00”Oo@NDX ep;mhRS /` ;wna1`NiN3@LlSmuUj Owp9l )qtr755?}D]9erl)D(+6M6 bM.'zEϕ!P˹4<̙=6wݗhd& B68%m*L .L^cxn$:p+o&ݏn<9`' TkÊngGQe"mL ܺ.^Ke I2I-^fk0k 1ί.3o}v=mϞ=d1,@&=q0S{r]!qWCş>뛷n/ƃw_\=xo^Oj:͸{wE7^dX{~v.ӏ?B\b|4^BiȰsA "|JoSYqddn9vu(_ A1>Ci'τ9&EBPh-HF=lM56Ϟ=GWAz&M&^^#~"qm*<.P2M  cZ,'qaKјt<{CbFUpB&fN%UCꗿJi%:W <م򀙽:DSTT:m̖K`^r3Wr5u1_B7zM=gj5viFavt鮸E(n`@RӉz Lcln;BRNO,l*. slpvˋVX1"rja5(FKg|vm9@c Պ.R\GUCt3{wODArAmlc2"%#AI;2*߉\_~‹ ̵'ћa|-/^x<Ë1}|=;8>zB.٥#`|]o'-\oL|Xhs&~<fZ:5P %HU-~+1 ~*hc%͆Xk2m ʛ`ԃUL,ܑ͊HsW(+4qYR4u%kTeS3rI/fgs*,3OYpMs3K\2o-Z" D/WPףEMj:q٭7gRyz!quGB-C#^&ihۭ94"P ԐS#Zco]Ri ΚfXC"6cE""0G$"ݦAC||fQ]c-Djl^(؉7F>\#9Ќf~d8gQxvkjkM;,@G6ip.\SoׯKT3/KL*?=;Be(XԲ)]kLq#xqER7̒gd#jRY&A[%tA,R RdIbC,&ct[ Z3e̘ Gg'~+*]6 n^񵄮2{vo?sܹ?ŒV6->̣ ǯq1K;G,gwPe`d*6^O2|aCp4|rx?wS`||mZzy݄^A-̻F+G♎M+^olo#3݂CҔoxӇO2zWʭkF&|?韴$o4}Ҽ6nYo`!x vlna2b6:"3^=3,9J r5Œ[|,wfN}z}Ÿu/?{wk<[[xan/i*LnUw !o1Χg}ϴ2[?+4 ޹n3\ rD޷zJWq"}R?j ҈;{~ea̜P+4DyDJ77?K:|w;]$ %˗ ~pM<>~Ҵ/F{w"ll+ܾ}[[8:>qMԼ:/;{dDŦ ʹ äTt5iRӢ+B","UA;@+0ZhC=\1q!gnS4 !9}!;Y-rR{߹~`p9AD3[)FY/i1CMMR:^Z1Nո KMP7*ux0Ijmdl3jf4+EI^{0nGt*=ol15\3OzZ\_I՗9^!n[{|><2)xxͅs3BՒ^(;\75ZWD*Xb;sgC,&WwZOD4UAQaK4S  U1̳ug4Ii$ z>c8:џ xjH2?1 pQJF!f|N=^Bl+4L7}[8?7o/~?z( 9G*jiF͐20W++ҵ ̍Rںht)}'t sUʹlAKӖܓި ͌{L'j|e*hUn;6%LtP,Xb:`>SY?c|o0M1#ňzSBw8 P$F^uhrϠ"CD`4dC]ٳ߹s3Hz/,X4uMN#5*%N.19lx<S,^gÉy@ic2= 4RcI2VEBK,KG$xgWβ`Q,DdSƍ ]>!׍2 _3N [.H )NuӧO`< oDrF;8'"5 {ۻ899Ww<>z.NܻO-_/ihnגܾ{_~T,g'W{=3qm**Ú3[gJ, NT,4F?5,>MQIΩ\;nҿJH0p|c\SGjZIgCfjr<}"͘PޓSQAoǘT 7tBbu;s0,wqXYDbDTh0QfX'[LF:G#fv#7^,@(6r>׶%*Ti5,eiGEû~!^~Fkzi2*fHTjp!Z,=\RSIdS؜um#bgPs0,4|`Af~>DN+:m]kٮ 5ȴ7tSW!rgzg/XtBQuښ9pVZ3̖4f fUЍz$k 0HVGHeNۮbU i`1:Bfɕ#q9Zx˗E xvj  9 -hbK^péU,+orm??Y3&m0=t-=`f(Y\IhߊĝhP=6=5/Yhk$Ed!|:Ẑ$ AZX&wa24UVaGUeٯ*5~9:s:y ~y_F\P\,DL}ݔ!Zk\+ױkQ9| DzFr ͯ'.O" fh\34hXYH&j R7GfxE244O[,fsMXsj֛YG'sLMJz$NYDٙ"ݽmtncF9|= k%N. d/@5[(\,S3?.̍?f)棙rr+׼a"`(F91T+4枘l`kS!}l)j}kcC6ph:ï> =k^JM6m FΖ jvn5~Q{{VKHV"]p5$i&`rWlxĒ "Ѝӈ'R AXCcX(X-gm)B@ݧ!F bȠehNX5P}&=Ա.sL/" )VD`0'Z=ϙu2Hkn7R/85k(SH'+Ŷ9^*B4klo5by4 h\07DCpF 3ƦB\ (lƠ)K`,=Vj1eV!CbpE Q]G׌SK!&2uJ1Ć1Dkij)|$5_h"弪j2^MM46UQ0\#!u&514YcNP IuuuuV[:bDV4Z\j'f@ه|FJ_i:&*kb?ǘY LԨ rML5՝Hg- 'RCkXLCs)J }=hDHXʸGjͥ]&HQRh$7 ]Ѹ0ELh`nٵ_^%[| W]]tGY?J2<,. =Tw9|8+58,vvvp#^ O g'= lߺx) 33i\zSX#t%\'e7q_Xm44S'7oduħ~Qgo^?Ԑr;EŲMim9i ac*JaDQ T>ZU`o_n*nXل8f|P L@a3md-|o0l6BE6Ew7t/g luz 3݇Hp!Ydtl.Ffn3|V bFΉBqbJ0*_vkuM XA/=&^G?/Gl妡'!4L*ԴeLZ9|{1NԨ 57"zJGFôt=`Лc= OfmJIoDc -4~7-8PΤ!5ύiӸbrk4ϥt=)&eʰ5-rv^6i}rpuyoț 5jfF˥Zs YBwpxd =ϧ9`.& &Y,1 q5S\lIAe$ms.o`csg'gC2;l:@NaDk9S>Mt[6)pH=xy2҉ϼX}*JRJݱudp-/^)۩E0jԵ hXU4 ( M|@|׺ԠM"^_"~zDMBh!JšTkz|Xڀߟ7AO^Sy[:EnޓشkZiwqD6@~YWdMr\ukhH͢^׵% iQ+[O@DKg^n]yZؼO I|U`Q%WuY\֚Oj&\F݌s5so#7tVփ5;i2 ca(;~XdjI˷Z-.*P ,{d]ZZSo12k YX䒦H>dϿw^O~>H&?ë+o6B:ׯ}6Ut9[`5pmln_WR_~=t7pv_aNH dAI`UzWU;uFޑŰ4'ZobJGXFJ`Rr>V^6;Tf"y\Bax'+D,LZܞjݐv"b!3 ǘ tRUV184Crg跻W>Q'JL- g ͖fi@;~kp= T!ZMqlm)@C[OBD98 Ee2b9(ËS˩n.Wa:>j1AZ)ǟykҗ]\4PhJi^ĺY;ꙵzc(t&BMFFF-N$ z=cUx@BNk:oMԕ&~۰y^~Z=՚TvK|/w:F~y_:HWWlaE >Ьb74BXs܍ dY MR0 O=\CF R ibXFLQ;Qɴ%ЌclL[jPټS!,\YЦe͑M>hWE6nlwqO>{o~-`6 Ix!oqtrF!4UGߡXLm ? wt]7~D6hC,(w@! ׾4,Sd{z[?E)]$4j4L#X4.ʰ]jmSʺCg>p Ze;6q59R6܉X4򪈛'!UWgG8^h*mf9j9I &Gmg8N9\rC2k3k:u2O/>C zRge]'_`k3- hO`(΁jUak^`4o<ƴSCj0?yK\!i 6Ժl0P3Y܈4ԭTS9 ם9h4Jކ7nLP5VPPc@st{B+Y8ɒ_ O=õ}co[+j9l^K<xL>ɂpu1ft (e:/w `wc {׮c0!inX%|%BLͧim9>vx4TTkLFj҄gg(*%mP՜2'KJloH瘎/e%}giz6vWrVdMҍ#LWs_#C F*_DeRAM),ؘ.+Q&Toghw{m5|_4_Z !+@GMhp{\ fNLcؙ\LrĕyQ`o3 ghJR`d#PwMbm]\`wOQ FP]zdMeho⍐$3+DcdpWX.Nf_;P >z! Jzp,z#͞p|.mؖ);C/qrϿz-Oyi4ֳ-s)jt}N`*$:6cME<)邳e*cIN zP07ujMMK霙;4QtR׹ů>IAl$ujdFeY+k8ozBUhZXm/5}+7B\qtp!Zwˑ,sf5=Wh}cC ޸fb45|" ~?s@5PcXI `, *ԩѴ p~ԡ{x~/PSSUgdηbd:?pѨALJ*vU8ڝ U)_f?Kg(neٖcP,v-ei6bUQYY&G_xsLV'i`A~ 1 DF#MH _ MFe[ BR5&''8#(<W~ʠN:sAs8Y,MBcUj>*l[iBgOP6mfv-l4:&ӯ0-ƨr~ş <{LW#Fg>c~SH&%??@{[PEs ~w_>ۨ{~{ cHEl4YæH<ٸ09M|K/y4}@ͱ$??u.Pc35?rͤ%&${}}t~_CfC25r\S*Rz",jd v`Fg51 k8R󲘉e0\{q9T.iXv^+zx5щDM:dv,wggo;BzggW :9SB lBA ?sVA tz\MZl2YԳr8mX\ Xsd oXA-2\qgBfSTGXy^#KlfFeܫR" * ../XeuecLl:B>MS4 =HRZh6Lw\rw"޿hb14fj@':\^F;V {Ip,|hci[}P#ru0"P[}RYR.աɊFB2w_5 A7`_EMipy^Ʌ^ ҪnCheoN XIpFkb(>q7uzo Ȼdj I$k[oךCaClh\CqQڰvPozT\iw0Y?eS>, 5m?316IhذB`Rs!rxѥ.LйM~yR9inMk;lX7o> gk`!'ꄑNYHG(ejƔF5 זu5G`(&qDZ],oIw4d;SVZKT*A7n݇B Px*M&޿y _*zeN 74~2{]IMˮj=Bkso17svts  <àr13%imҶi'φXmD xXj^VȫU3^ ')Tsoֵ4fqY,lcO ,'zh➗h9]bghFթSM+A*EDW<– o`YV8v X3da)q{W,\Np$E5?›S]vk [wq{ x~_:oc}D^^zǭÛͯ>:qMjyoq@AjfLz)6D{Ǐкws$p-3V\ݮ+|O㠊<ʔtH\wcC7kpL g~rAy~Jeo^ii{?ü47?Gz3̗[w0MZZfjgqZNE˥6I lMuzM*UVҝ+!\ݎ>xO~煩9#RS^kZGglX$-Dn5XɍУDk NS:UE*.Og-h8ƒUlZH~3oɤR{9Bi Y>CL8 rP;Xx .nPax6CsuK/X9<2.mߥa#Jeؐ!OU1].Nr4.|񵹍1P6sFՅ9!hxyaoi;܇&3w03,fgK].>pmUX,lh 5dĐ;gҳ|L٬TC0L꘳XX-sc%iFS;3g> j -tZ #c/LK!oGSsjoX8?S&%1g?+6ḩPwU"N%ErMr%jLk+;fM)qԋM1\IjȝԐ'zC2Mk7\=^C=nؒ5@@ӬDyR7ᄩ#DMQ*gAf5[-fTt/LcT 8Eg}Vz#ofQ~L5 guQ@r.+׮=vU55>o̬!7ʶzz[#37G[ki>`Uv7)XZS5Qn`hko(ըe vMݍoN?}NWh4u=]/)R58d8U&PӉg}s˲ȇ榩Bf.#kdQȵC/ҙVQRBg^D˹4AKSLYx".MENab "wc57٦DSMlkBD[Ź8mƎ>sسJٕШYxhEtPpOg"{D]?nj..e3\Ƚor鹐鋳 Ӣc&_ <>;.W1Y3, c-|Ά(W+lmbscIp9,Q-Tǵ^hi@mF'@,lٌ6Q& [T_Gۈ|K{We4,cLHfK\S6? (*-C N3]TMi,c+" eeҕϨv :-7蹻[)4g@o4(K di];utWy.^[MZ;0;N$K5 f^tV(א, [*fAMu#$cMJAYFxlX:6#u3wׁh3y_T,5'6> 3U,+E3҉a6-{zHD8h p sOQ[[6@gAJUXxM(3K~w 4[(l,YokG 'Х%4jW@\ؙ94Ҏm(NCpaVGUf+ _5ɡL 1N6&fCFSd FB2\'{`08WGL iR/-^斾&jcbB<x%M<]WZdݔ)1zVYI]84E=:ÐɌ TE@Um94V@YsmK=N4r;2 (HnVw%~_j^.Dj#]k>έ jVn(X&5PӵIRHRliI (VyWgS&FST1`-ȌF !^zeQ ԌhC|ut>ڭ6#O M!{~~ />O8;z?;Zͳ8^o#5T^}{Ƶks^~{3NA>x!^B9!+]p Tד9&Z(ü/FobkcS;pW@6l| zϼT fQy}Yf+!VfĬJ{+4#G!>](/UU@T_PRϴ%q%Jzє" FHo!?dJERda u[B_IQ+ńN֬w;2 C6jɉvp5Tcl*htz8>9Ds~tڝɌ͐1XJaAׯw0Mǭ70] #;*xDǝ;䢴!nKϽtT+\_ l6rG].&]2bcNףMZK"D5^_#7oDˈ)>YS r,O{F9..&BZ&{pxik7|9D-zsK.F#kL.J3Dn>๨WX ua| wwrddKC7nHJFS}lX՚S4=7 /x(B`<\b; LЀ&NqPUVZIX!%<6g-ѦUahX1r0xkbm`Q莨+Lz˘"s\%&K. Y'Aܺ+#F?2x&ѝI=2FW_3(:e҇]k&|:b!m-(k)gߴrw 9gvku0h4}! ,ܾNWSӆiX9mեe;8h$ 8MlemOr&ԕ>ITg/^UzӋ;@gәAt C8*6x,ݱ.{x#nϮyaڨv~4w<HVa!esnIԥ&Lm!@vqGȳ^j_rBf81+ *KC$'l$U_}[bзPP-GD=uʍ./px@|o@Mݕ.5D1d*p\8\ ԴHsScr5Byب %^zs\IQ :{|%ӉΎS؈a56cAzR.fMEޔ)UAC#b %Dߖ*;&2FSzM5"D+ U.l̂gK]C΢NEu%L=Vk&{F-dLsB "OZ-*5;]^^ OL W?-&é\elLYhX(B^ȅ#HƁ|wڛ !<>KIX$^ʹD4:Y xta)'-I.,'Ua9flT~VST1%t_3r*Pg4 f-ULNߙ$wsI|cUl&ڭ닮ӹ l+K6[ QFGpfskpF#l1ksIpr-jS$VΆ!F.|L j}u~*&˩h4Eth *grIV+\h:WCHeiupE#X^_EEYsA}I!DB-EޮJwD ^:M)q* flbRF)#卦86w }v:k3e&nf+:SkW1HRA[B57]OQwOERI=9>Ζv|XCMx'6wht= ,UQIaHZr\wUjXD`&{A{ZˮiWr#Fv2]:N_g4chTR&i%fuYЗѭ *?Z~i:mp4uDW'(5lɵ{jufer4; Sc:@}aCc6d+pP~U~Q\|,38L-VeDsu5D0Jj$ˇi䬮Sm;4{ fIbjU[9cMt5s4ssRÞLߢ{U@/l~6AOŹ ̤Iߙ!36ܳ!] ^э=5A,ҷ@?f~O1r/VFj8EЛ!8$rU5}<7с8l,H]ډ @ Gɗ(c#Mn IDATS2 :z_ )r:6V#Xֹ~@51~H^/h~m t G505!N~<{N'/0|J;m(_ƴr8i[ 4薫(:jPs jkqoׯKH&|]kZCøuL7}k6`QUW@\RsIVSF7pbtո68i,lI"K\+l[BЈDCڌMP"*ae;b6. ܼqIQ9ċ7;+kd<ƼO~ɗj&9ůNkPϪYtqڮϸ֍[2cx54"sUY<LJ~g.Hm,%%vnl4F_?b0@IC"׳ʍ0S$y5}\ f+$:3N\Ã}xO(g6kԤՇ$݊dDSͦo]Q B|Ν IL&BU 0V/^zA̧rLgZyNa7v{ijXv*)P{5Tk,r)#"iJCz?|no:{NR]0]LxoCO1jCn`w{Y>=wwōkjBwťDl,1IS=Y0μco:󵓨P99HbDXčJ#u 2V-lqBie81!h X+z D# FB\uu3YzyJ: Nݫf!7+|_Z8}خiQJ ri+j<ܛ[6B k`uWr{ߚQk `>op~n#CMTVQ2[G+K,s!|\nla41ʊf]_cs/pwcXgǸ]a\<]Gp ~gB}4Tqb-}J\""[X K7ӳ( 7fg3oYxds}E-]DF\xFq/=iJ9B1'əSҺ,\# P &YA HO6[Wg+Y=): :+2@X\0NqU }P(0saqC7K9<HS sVF -hHM#R}+ ̈́tq`G5Og@%o՗ӓgt_Fs t2ьoQ7 M̐H͹P.k^7-)#+92OoAk7$sB+9ɔb(o"mH9GUנbrG'ܯ*l ]b.]4׮f&P.C/vUbw1I'=7 Bm`"u&#w6"F__6qh^I=*_W䄚24xkZf>š(D9c.(a f:νG0֗8>g(3=o{Jw䲍3'hʽS[mYD3Ú[cȻ5"RݰFVუb̨-BcMP'}`Re;_x)b}&[lC54F# az^^"+SV[Cۋ~?.?Ng ;*CTsLBgd]G!jƕsϙ*AFCVnǁRS;DS YI-d=f ?2BϑPuMj.Y?qBce2:6t#Lzl7~|W 3 sAǸZ? 4}2IuټֲF(fgXݧ?'swfsE9PFKݓڲ`kn,-m6߽-K5np PTjPPi?);(FN!:dZ3(9Ȼ/7#IC1ሻ6JCF\Ezfkl[BC3HvY(s@U eLل,5aV@Z^@f#RF6|CXWs:uJ/?wf'3͚M-:6L;5d8{63nÏ>_VkA0IB "iٹ !2T )Wdh^^\Scݎ85)7Ӊ\\6n@@#_]3ͦ2z)] 6D.^<ΦE}U@J?؛አsб b2$,a4]jMgs_m.uYZi8b15u&1PZn"YY' (5p]jA$zdlFCJ3m6r-LeK ،x/M^iȺ̕Qy^ $I!Dd|s-Jם{Z;bPYR[N0|hJY' nIumʁTCZz܇(R{߭P_|f{٪Jy8lom3vhel" ^eo[=Iӑ:Z;Rn%ik0WV y퉴f*bO"KӒx̦u%5 Nmxllmja5p4FĘjv_$_ ~32#uEcVpsHViS89e52 &YBWïˡda n):Y:&%5"gjaGe  k(j!dijFGb6UK9Hסt.'b6"+/Evޑ=LrP)`h=o\ٓ$*q{gZ-cMCJA`C3׽k41wlsq::3D9|So,>iL ͽ)vFhԦ(wΑ;w7ЅgJadsh\.9UPNҌ@!Ws\\R○r<Cԛy1kRhID $ӝ~]0ơԢ=rUA#"t>!B zK!vÐ8ZtHp~_MU~~?l^h&_"y+țk0*sCerM(åMls |hSنxPsh ԕ6!LB3La7|,#iU*:WzRli]xlFnG8sק_*RFExVtU eLL_~(2y<~]>5MqMryOd˕Dm-pnZMY6|8Z]/mnkiupSy-r)PQ'VQd&T͐y3As&@5*\|6kunTsjMGӌ*]GP#l:p6:RQ25sE0l,I9%.8Օ:QUc*}@Pvt/;bR4L4RlSġ6 #BY}@AWclޮl mҝt͆nn!9elT,InlnhBWih|0blhD)JI鞃ĜƉ_^kG#ҼNOOe\Ps'KqECb._DJ~8_x`' Ukh‘pH16FM@3C SQ4EP-VUdLd2_=0KG2HCMҕt:uYXh`o0hpm܌FElHےt9fcQߦm4*t%NW׀h.#|xNę`\muD-tM'݌|s;Ut:f nUcl1@Qkm5"E1 I#g֤Q|>5p ) +@ T\hW](1W^(A(7ܗ[Iw\\LWޗ\_\bg=i%6d|u Ȗ+9:< 5hhDbүmD2hbш!QӯhŠRUƞ cwK>1lR]C!ɹ'c?@eFP{s*Û\_]X+@-QBkZȅkC3ҘضK4S;(F3|.٦(p(vPfLY،e _ n"(bAX5z(ð6 A *YvH#Ѝ҅Gd@Bwj7q Ly,e⩎%ホ 6=͌TI$@0/8t@Wj[s|NgQ]Aĕok!ZE0xJ{mC5[fx~,;ۻ,ќ]\^:=Wڊ1uY+01 <́[ݑl5rwwO>|:k]{wC6Mj/坷17fN9ɳl Ш^]^2;Z6\@ Ύ/\Wt&Vkl@zDŽq-!舚v )F݀_jCg4lycAkFAiGj3@EUrZ$]%2>eWo Gg̲bZlݶ$钨#"*D6HMsiQuߨeRDXA/P]IWS8Nl[;_~0tihok"Q%^4ffKMj՘&{9c>=2hrCCf&),tctrC|1_HbHJMh`r4à sTu&|C2^P"QmvjPwc9=~0 sNDArڌ#ҘIwbHfc=f(CmX rXΗ:Q€{8!BIDIh%Q|>6 JtZKP=J[GoJ)&ǡ|܊q /B2ͳ{bvbN fLz:pna=+63u-6"i1Feim=Zy*Әm&XNz)Rb-B\:+7PDïX 7=%,[72s65\yy{.D 7~ IDATu" @׼ N^)Ж;A9ryYiqHP);M5.f 9P4$ij UoHtQdJFT~xlm/<~ #9hgrggGZ 9fSLfzs#sq./ϥPJu $w جI鍁]G2Lr=H406}:pj;נ(AXUp 2?qkV*t,,"@_JV@zXy@N^ DLhDf·cۜ@IƵW˜Y! NX X[4S)5@44`(p82G hP#]-Pai?@6NV$=H'e)ZχI+S|ʸ B{!f#>z,'<_u?r9͍t=NO:Yl2yyvA'fmě\2>wt$iyV tjPwlR3b-j4`@44JZ'txE>+Lx&!AAqMN)gO>Pj&kRIk4fqiwؠ-Zkρpa`p@ 3x5XCD#oa-1Pjhaf4n<DzIf,L uh":g,h]f.#՚{eHfs DŽH ĪZ fd.!Rߐj ڊ@39Rx&OL7C;h ϞC8gӴq nD5fNz)f29e\p9fTCW|Nfyh%ͮQf:؈lDh[{r~L,cY̮%'Y%ە#k6~Z 7DHOn~@ :*v?HǰH,i 'ŜHp-ǾGT4t;΄?\eLxWO7b05F7 ~L7hwwV9Ѧ]dNfM`7VQCs.NbzR1s29&ti2<B7oK E:4#pED!g fPrOl\CS:In{a4ZR3%m32TWokHCG};c͐Fd"ͼGJ[Vxu6 D5W59uRc)- 43Nmz[qC¶Tw"7$0g8}5}tٛN\|;0c~^geBRckԟ+70se ȧܔˆk-5U!;>K]ྜIXAU:z2oc74ȽndLïлϻ!i-Yynؼ~5R4~W+mtxeԕC\K/Mrcŭ*1APBrGsPiMrmh"g14zcl$fH$y4Tݾ-W4y 'IXBFҪC>Uȳkg̓Dͮ?h%A,?~Y6[r[Ȇ @5n~_& i0HR!"~0nJUåTZ۲Y.KÄ=%j4%_[0fkYʣw[yvr̦J,soԹyV+.xi18b# Sg"߾e\Vs~D]z. Ã"k Zvȸ^j}4:hتEBd2*t* Xi4Mkj[E[ gfmV1twD~cCT\޿rPq$Ǘgr5yY&GGr1篞Iej4wޓ>/蔊h6Ly}F@7Y!q@VAy9Q]LP YLXldXIӑwUnp(ωRG@c+փ}jdф v|(650AKH=4S:ׯݹ}/W߰Y><hV]\86πiaEZ}f:p(Z A{ƀfCcy%KL3GG l-5rboJHQ(J׊ Jt Vcm(84)nF  Cv5ڗ$92$:W̗3j],S 2g W9 7ԴDAį_@|cC8Y9`S ̗NG21] 90c@h5'Jj~%+ [u31"\잎ڃs9 C)}QPh־=#C,R{߇:wLmNz?ȩdYx 6s~}yۿ8(uh( zQLYϥ) M}s۪.&>R0@254rML:,v%Hޕ _DDR%]DYBcg:c B~ɩZ(P- ~'=:'qZ#Ө5ق&Pc 1#n㧟Ͼӫ +$ժ/8Y#`/%]vM.NO&|6,ˆN(9A-F w>>C~#MPƑZRGQv?3yrzF^Oؠ :W^]4A@$`|u==Ks#ǽ<9KF:<{\NNz4VKoW^w6r0`@ (00| / %9o֬& tM\6+Nb%S)`h4IACo/~ޑ,]JU^/@cfMT&ɔ >"XtM:o0qi7@#i7*lrT9ODz5ؕ%uj@d%jU*jH$9BtrkX˹R*C:e6)͔T 7F̐zVZUYzuCI4ɵqT kYoCp>\B3U15]ɇcܹ1.@L Zuf{.r3OnF^CorCt` B&+wޞh;ȟSْ=fV/݋7I+џP80uMX^BPF'y(TZ:ـ(nhšl>ƨf^ߘ2 \ ;is{۰hrt)tYJ1ZݠW}_u}Wꪘ.Ɍڜ[{?SJ0_$KlWtkr/IL7p%JP}Xot%P$#-2!tQTm俻5aqUֈX.d4HVK,IUHWH/u޿'ϯZNO_K`oXJ%G|XՖ|}y{ P?~G>2i_>7?'OҼL2Ph7,)M QXkJMNS 6t)in pFA1 'Ke"4-8faあA$d:= e j2۬ج8s,J Ń=rs%\iʒj# 2^Le"F)q0DJ@ 2@Oҭ٤E5Mf5g,&\>FpG(vt]찉\Ց d@uR']80.ÕZ.NK8ڂ R5}P\]\*$Pӽ(ȉ$l$<99l!3hӄ*Rv4(-f| o,}lo`F?ҩf4o\#o%lC/Ă#P 8Ax{k |bQM8w0X. .>ߧ/[[i4\(@2 ;­ĤRoŻzxAT%40ϿdZ0asa3 NIb(HMV4{RGZ03Kk*JՍlCÔ4U4`DLt9[nV^ ݀r©%hJV`'hD4.dLcЬcmCRq C:)ZA uEp&|fBJ:0BiqDIJZa(VZM&JwIK2d@D+[ vShCg[:j 9N]hS Ǽ[m+MXFa-e Xq 0_m=x߀#4;{>/'XC :p\248d"8*(|!op`X3'PZ2uԓ'ŌK+3!Rֹ:Rqȸt;y &UhhF P-4= lZRV*zIĿI.5@FZ&s5&}}L "c7Dg{ Yjr0G.}JyXC5|fwŮDʟ=nM2sQ8v[VjNf06tHnH,F)J AZrk9aZ/Pw12M:G&J}ܴ|S d8wj>>¯uTVJ1,wY+]M+2ՈeGd> e2T#0Mt8^d%-G))i] vNyo0JtVPZ=$10l< ^^_+sa<=CJs(0!`x33tώ*s<<1C ]Gur2\]Mu !* /mךkU`R< 5_7M\c[uCp?7H3ŽX:+ w;+[ >qG7~*j ZY1* 0|s"E֫eX@>ʺeD;$侢 !tyժý`& bZֽTԿ_p"Z~? D;CMe@\aq('WT;t&J v2V/k ։4Xb " bllꍦlt8@`KLv#;᝻fko~)ܖ>tLHbAoߥaPۑͯd#B) E>6h$N/YlFv+fCz5Šd` lnᜁ܌GYAwH@&Ixwv^_]֑l!+9={ʵ[D?}#zLsSRbN1ΧQXzcHj׹8公oHYC#A1 櫤(4rU9.L1A4[L}YRY"wZX͓Pԃ Weabỵ}IІW\ BH͒Nɨqhd<]Mٗ03"mE5U]Uis`IiJjl:#+B"1r t",Mb$6gLنdʽͺV̵̝\ UE)i*=R)I$ xsb[kfbŪx\k%M+#gbeNz KXO{_fpDy"&uWCm6ޓh !y0 Ilj+FsM&AYDaw 7)6ȪCUw?'%ZhWIܣifvqCk LI rd+%NZ|j*<S׊gY0,_L1 <-s!/!w==wǮj8z6@]|1r0g1%)I%RgE3UT2 \"جh?&Mk~V٠Xl"~gĦH)@''|]v}q`$ (°I*뼡ޢQ+Ff5uRʇr G峧_Cyyy%=.ֶwʠӖok[mҜ>\{!#|T<})8&|TDsſ}Ӊni¦nB#i|5ΥZ s[rfj"q]!vҐ_~)HF"&-LT[0 U_l+KSFʭBУ B[TZ?%Ueٖ*tmժG¡Z3äIJO"p6eCґI3(͐|eD%bJmDcg%}wn(G0EIPb(<1E F1>/d$bM\b}ꈹ-8F'ՠm˽}&gW;;<~X]˭[2Z,d jK%{2Kv65 Y@QvL:0îSy5*"˛+o˻Ff&a-^ef(j%/%V]I;v1/)x:{@C7F"ϙC J$׳5ȣ{aj93iH^xJd\h26dl=5ޏtl6l5p?5 0 @ji7 jCCLXj$d~ց\]\I=$K<` i}yNCx.F$B*d`\bK;oi̔Hő\?Oj@Ue8Co ne&5VEF}ճtf2 L{ׄE|dk:Q0(hΤUI=j(w:-aZnhXXgQrɼ:ڷK,LkÆ4K}$:,.F y2-XF㚻̚|}2Brfs+8`&H5VJjWِ'C4qV]w%P fZ< x` jzsRu *o;VMVwg[@Hܠц جt2 ZC,sy9Z1-uaŦn H#/ql{2 tZKPH(R4 \^_^HO\BNOdZ)^O$6AM7i"Yh>׌DM  CQ7,79'̔:b-:AFc4>aR ĶDED@5WȕV˯v/&#Y]h2\R-K Wyy$?ɟ锾KӐf#'Nfv#ϟ?WDziR-'-Τn1䘔·ݗnHӟѫS"&vKN^aTjcyuJ]PS3ʕ&xokXnZh`B<{B{D^ ZS]wwq:?g/3@I_˓2 >l{]NuAur3|-/_tQTru Xv%g,]oD 墆IaQeeP0(8(NoZւ3ɘޛJϖ3 ~Uo\x)Bk"wWl(Fs,u\d<_ؼwPjUkݢqvUz)hIZ4RkJo5WAѤ-L0Y5ƹ𩢯uH3g8ZJesR~=g(Ti''/ӧtHr-7&˝f[gPjN_\:[Vކ-ks3%~-+8FmVn)"1f#BwL<k\:\'/e~}(woɳi$0~fW@\s1i[Ft2F6z,dphq`n2hѨA:MWoa؂kzȮS`BGAn) D|6p~EP.,:Y i8?=bJ`hz'syid orcqҒkX~6Hzi:eӍ:ZD*h4/&JGpvLXDwk"NEu|Өo!i" Y@8+:?:9Hi6D VƉӲ u)H=BڡĖh&iyڼK7CRcbV L#mj M2.zbC3]&_O~{MDE6l{fIFQc缚Q'?ia]f qW9Fm33ȓhFJؤ $d At=׉t[RQ$( A]*Y*g왬#aZX T9ȯ~/S6F]vvvΝ2$=x߽upgΈ:O}~Ct-iVr#woݖ/e:{uFOPt t۳Wr(ɉ\_^+| H@v`io,xq,|(Iey}~Ƃ;wҭ`Gܹ';;;,.7c˯%C4&X e~TDXf48w-&,9 BFSI7#1j p*r=&:H,'`[YH.Kdu6f4hLnJrxD0>[Le8Y eW$k©R< )#60&}%(4``]ctàEaZ5xZuvDZEQ{LZ)@-fD&)4 CQ/V+e^j}82(!K<;-DAƿuN~DVSEh8jflHr7༂q0N^^9zϧDplжR`E14X|P7fZu.kP ="?(2J8aQ`Qq?j(jGșCCDS>2fAJ:5$Qlm2J>C87WRhAKt)P"#{Bojc(3\@ڮȲ\gT174pM5DMYƱ: ,qZ\պ\kyӦDa:u"Y0fjë ,+"PUJiU6#8fn[<Α}/Cn}7X.k$/ }\[mH! hwez]AC1tp]nΙTO93bkQY@$sh$83Q,Vq܆Jf{|0ytݙ8Y Dnp߻ ?jjd,M򵄍ZTӞ4)\'6T/Qzs%rQm=R΂5+{b$/$vd?'}wf#-&UjMp%m,"y*Svd6gZ$D^GTy :] 21ODGUc IDAT𡈈PSөnK"QK5J3+hMϏk[ d1{T+2&rs}5 ݑdʢH52ϕk nmh2u!Jw%:{y!  ,Y:Zx#nGf)0 3 K(PU5 Yԍd)1]}bmF c߆NWD4\x? 68x™YoiؓuӬu=NEiBpw &6v >/F m gޟOޭ;DEq-OOd@Ω̲=C 9:%/^1t4#%]uMT;V uCh2V{/>'m`@޹+6oNǍSY'+but_mޡ=VN /_k;F--"y Tjă({hHꖜD =tx"j*YJ^Tp ޒ) "{¥k^!٪7Mgu-p^#io#s-פ.XVl}Ī,j`s G]:=Y-FJYis"j-Y/'kt u$: ^&ﳱ=V=D ![>x@cm%D\.dU,9}P`ͤd`(mhE })i8КD.V؇ {Ѭhq OLNYkNz"֨L; !2+g-(I):7ΉW3j( QZoZ7df63#W8q( Lu~Hp{!yr%M|͎{[8\G7ekU 82 3j\b|%37XNCD5C.7V$w:9CJ!P@nQNAq_;sQn9)(:lϳ5ejSjDٯyGVqE19KL3sWNd%km;aO?Gkz\ZRfEW&S((7F58oP ཀྵ7_(ŧ0pLN|<\c5ZAS/8bdhLԎ3T<#RXR|d)+GKH=~/wTi@R\V[@>,Aj}=:}yT.4/g3ey\ ee 'nfهzF)kc'9J j&uaEgHbA]yC2?zψ֋sܒfIh ^72^3V$ZR:{IN1}o> -#޺&S=h4 j{qq!77Br: }:eS1 )%Pf4g/:y+!+i+KPkϗG8EWd4egPVL* 3:`~p@49) 84MM\}T 7,Wx dkc]Rr蜡8v>AmFNHÆ Q,xPDר &A8VI^(Aw )5O 'ϧ<"/"N0/B8F"s%yZi䡙{|@"h1.\ĵT 鮭x[4Z6ȃj(㚚bBUn lt M&)c-9R *[zWL+4NQuFiO8(pVrxx(g:؃N7=5z͛[ì9)XESC_3.i,1 DOhXNvO  r5؁~jG jhrsimTbLйIĮwsVݱXTGd&V79f]AൻeҬ XSAnGϩE|54͠kQٴ94jh`Jtf:wjaxk +'uc`컊NЄ4+7VHhH^`PYX9;;$Ӑ\|Nn~ӌZCMGa\4zdy*0moY/^j\gqv9tH@C7w:t; +xO aZfh}ZB BK o>v׹AP6GӪgnlX~gk"qf\~k^/߼B牂$tfEjͪKfQz+?c #)]u٨IJk rda hDgd40lZ|&&6ц+e> liTTϖ&"x~l̜6Zyb:?JX2jf  oרk c2Nj9ʐF.yn<#zSvv$~ ?(ڡÜLR_F&bZ !7ss Xl2OIC# WIb:C>Qd{Q9Li 5$E@7ʝ}N\nd<3*z+R,`*޻sG֛m+3EXVYPSCnk0>"r?~z Ϟ=b&э[Y[_':P4ݝ5Ak%\]_9ݽ6>/AݥM8:4h(siIgG2O?|?0AO>{ۻ\w!},h(/.Nv2cUjӏDFrp z//rY0ҩ7"?cN&c<@\.vWYȑ4 \x[r:#֚t]YlZW:KM2[.Mג-hK65CD$vv ޮC@{ѐBFc5jC+@^q>@u$p]B!!i޲" E dlbs_Y 26ߐ,Xؐ-5@k$ިR猵0U Koe< 1D#5pìV-4ú%f)zAuU>4#{hϛ4'ꍽ yѸtN}ocWIcT{dx;JܔK܄Jg YpvnM?CoFq1zE)aBƲȨPdR ϋ6\g^fuXq"ZtGPuj1S텂F%%ziPPgkᤷEednn:C&smȽ֕*^a G6O8j~ގՊ(Pف}nʁf#݊REZGֈ1&&avpćqGHbhV曥,{ln@8Xxeq*q7eWaģZhNώ얁kPB>{ZQR/fА;ΖJQ-9ECum͵ytrP0_>>7ʲE=FWע!,&WSb.xr^Pփm:X^"GYl)"x\Uj:u01>.ܣ5TE.5z#A%odڬ8B qoM,x| {ʀ90D2Hܠ eՔקor3ՠu8~JO@8Id616IC7W3M u EcGgoOݎLߠΫs1D'D!5(~#8Hulu3rBc r1JJM:ݮ B" e\kj}715KLcEX}6:6}a.)]R937*lPd$}PԊ^I&J*a]bLgԥ);w"]t reKy9)0hO>ޣnzht+ gD o4{5"R8Y((Aﻼb>*2Ds9e%+98jNDZ_f5͍MI%4$J4h!x4qT44a~ZS7ꆈ451[Jٕk.Vwp& <>5€՛%ٗ2B*tz]-r;JYc9L3ق0<ڀe8OlٜZZO~"WWM,0L4>3̗0L #6Հ"'XHC agYJIVC_9:dZ 9udK}4Z&#菸67B fǀ "> PD7-'9#R,ry3`|Ldg/?yہ i2F&ԕ"gn<Y.{3"O~ VSrKj8 y?+4|L~e0f1alSpM.wkh-O#h4>3o\NpR:1s#R_BjJ2]o\lDhf 2{;[a`[ݑla WM}$VRg__#Hc~턤J.DTt4@qݦuKFue sz!f(CW<7ATQڛxJ"r/ }Fd uOS4zP "eJij"i6p_@4QN$ȋ&Z2C#\2]D&K QkѴ HaXcFtcR2ub[ \IcsQ,It?MvT.YlZ !h٨́qT)G0p;ӧHYW <,ք::r{J|o.Xt~璆YѸq$l6ZdYBan7"U5%\RWvnsu^]ItnORޗG/'ox2hZ\3s}z[CIԨK(&cՈntčn4Y;!r{r#'ժl,Ch= <AQ6@:pLR54QAȊ:hsb2 IDATv8vhcY1h5Aq ciUlbJ'>ˎ:%QV k5Vg0r"#&B'4B/T9q;KFT5| g_Q `ZsQ t˴ 4u:mVչǟʫ/K&\7'oެK֐x&[[)2;G+yc0g^cLڭ;rCO^9=aAE ߔveFVb =܉{"XϞ~,f-'粹'gruu&WW嫧rvv,'ZTRRLĨ9_xs5@ qQ7&fݴX -; ZH}|)2C\"}6Tp=st>i TkHf+dEѫ@&k#34:A;29, =x$'o%f 5se rOj[A+9ܲ%5޺ln?4ݬQBaqq9` 'F(#dS@f[͎\\JY9k" -pЮB{W+`@sY0t[,i(aZ=՚p@n5IfR#(֏7T{r~ZIf]פOuR6Q{ WUMieabDG͠)"R􌅸sEaz BFA6k2 Uk:kfTF|_^~ 45sb)Z|E"O'bU9p-)-1, 6 G%3̨ӡH:2k3dP{\0hGc0?4TZ^LbsY#Ѹ]R72LiYUˁ!MkuPKY&禜P4VnyhwPy/aٞ 62ӫ#j8̌Q56,pqYQڲO10e&;Z];Mת8w2KPrACPjRLE苙Eђ;ӹ%dJgA ,60G'MFX: 3E3}ԬEi7T͸̤n.W9Q)Ah~$!w>V>z>:=BS,|4)ⳬ@@+xj{Wc[R/5F5LLSK+v x@vSrjbԌzh\G?dV|ȁ ,8DNOyLDWQ&t'˫/&ҟT7`"a6]5>@^>!]&KU;M$4H*0˗lʀHcB!RjXG Cdn %Ed86t*2 $Jڜ}_COcY֤ls=[2j!tە +?zPN..hzԥ(5.֨jk(@j.FS?\.06d Yt(A_S- 5Fb "CiS.WHk9xE&ޒ, YduH|nyΎ<{ԫž0Ȣ]?Xm@LίaF-*`P` $RW?xBNKŵtBBziSp9 TۻÁiXВj_k]S>셔nIJ%m}ɧlx5zQ k'`r^ qQLm( "Φ~8oXZaj:*X̹&xLj5P"gp-AGTaQˆ d}9{s$z#7M]H)y֐]>[)}%AOn ғ⣀_|N@827u=3.IHBr $XXmo+[kko0$"ɝ=]푟y͘wPl%Dx car_W]Zg3Fr:#AG;湲]\`G[QUj7fcdnrm1$!~nY͊,U$ ISQ²@}2ZkaE{ı U4dQ< F.{q% t% . 믻&6Z%5LVאcp(s-@\Ӟ;ɊoP‚( }s[r3]׳O{_QīcW4qŵ-!>eehw/X(U{< Ffm^aA5▕bw2~ɎͲ 圅vS^z8*`ϲ yVh[հP\/Ȏ0i)J0%Gd@xFo'<aw-rfw/6j?4(6U՗W%W+g?lەB\˿W[gkߗ/eӖVU5bYF fCGyQ&"m΃?_zx9}?AFDa QOԛlIlzjDt#m\#C(2axê?wL:7 j=t,f2[X]nN 6Ј@=6iHcf5~VC6HA]rQHBDAMYlv?kM'cnNUjU~\]zh\l"lpLV1uf#<{(s]x(~W6h<>LOoT<v-}؏M۷ov|Km6;/ܹ{$߼ý=ڕ"mL2rc?/d:x!A2X65 B.H{Fs&Stk@׋ψA hbx(   Wgh4}yvA4Z-`}gٗJ^ondQ㽵.V hj.@Ep_P.޿#KP@חl.?{fX56:IJ#-ދYAX!ƗxY,&4Il<`dו(9,CѺIWPfӥ`1هMOc-t$ɹLfKRj@ʠ hz;3;rٟh괤l#Zhzh$c؛-jo2Q& W+zKn |'v ('3M,4X ۷7#>k1 Zy$2ЬN!:ʱsu7Fo^Y8R .XdJ95DX`e <"s q:U8!rt IWURsennF1`A.#QRfZ4ˬQ̼t~Q΍v P2 XVt~8Jy4w5ˌjs}\Pp;{in _y6ȭ ( !|Ri^960SWQm tٍsfAa0a_&JKa6C7C keYh2::/-;;)6jU1ut_g@&"0)tda7PVQ3Й91z#r{P <:PSc(N&l&.,J45.=Ўq_ f2KΚL  {=j]]SfvMjpYv!:jA*ZI\ [[+YK:,p00S]f5âfF{pH&͘1Tj=pm& X/V˄r8Dу&%,UjI Hȸ}FLja3rt60&4UҭWQEKapfv{,DĊ\OdԷ<`L4W#t/C"=1֙ҟA˖\]d+0nFA[0fL4ΐz.GE>UH3NQ)oA2xh&9j!φ{H]|Ͷ  J%T,ljd~x߉U57:aݓCȽY`Do5֐dN[fXeCFf4mRS]C݊'pL|BZbG9Cޜa#ޙ54Vi$]3Qh$K|P:Fug9k\#vM2rE9c8[)u9vw=ڙiP\ФIEl?TvY4*-"{+^TPð5cP`z:&{E+6 *xn10vlBsr͢[/&A(֚[cnZnûl"6}C"zgѓ7--ܨL84as~Ga;}2Lܚΰ[b_rx+fvXAҲ@!!D'.CQc3gBQ1$\\\(7wYL\T"K&2AS2f%,Pfwr^Bk*JѲ)UiD ^Wh@^Sj6-:;=`(WWjX4ҵ0C+&51ouRt3 BW2w#<>נb?^k>x`giđisJeEfnFI0K+ohT +|gcI3DtXtBeL@PԬvG>SrfMн]g 2?" Fɘ^(T^>}!?x,;MY-?j.VKv[2Ll[4ڣf!1Q!ٔlEdps#,.Ȁ"94as S-2^_D+\@]- KꞕRGfh>^&ZPaޗR67_p׃;%ͧDӋ[9?;[N#L*6"!GOG,GR)(&ȓFCDpBm䂟bQE[TTFz)Pt.g%}V(%ȲD6y#_V7C"hpZmVlR)ݻd}z1޸WVt,,W-ж9r+9::f4fczxtONx]a1 ֐ 47 UeRj7;FWq 9"4'qDZ mn.YxO'T;hR- H{bx%<76ZLMcN)7OyRO[)5>X*ib J5F:`@`=)>x_.NJ%S l"vCĵ>b+n}Fzs~sMƦł~x0QTݞ7]̡e{dWQD9!R)pb߮׹ot:Re}f*7]0Wl_RVsI? rC,bPX/4m2sw} @k:q{z=>ɟϾb"mX[O'f*T$r8e#땒jg$"ѹFYk14~hQaq!}9ANp@g1[@v%##֔}5ts}QV;9MNjt]-3WzYyX1)I#( |d r$hg9ҥx(!CC23xqMGh[n56d)x.,3agZ#anjޓUK9j.gX(Bb?(85ihXn9*3C튜UG%J 64̻\φ΀Ĉr:ӪCJ$Xuw򑙟eʥ/rkb.XBوt(;`)\naq @ %80ڼc(*D@;#`鱋+\] ӌ ~.{At9c#y^\dс:S;3y  1VCL2kbӱ`bom1PIȠRXD>UJ(C=#sd)ifAMﴙC\â8y+[Go4ξ\\]lIRP:(*}>2嵺q$N]oA\gӧ,vE+xaҒaEKw37aE$ ˑ ogy!F&LD~ ?@96&#k}IS1*-CһP@c0P"_uxzu!ϏeZMlt,sL}C5- !ѽ}iH.d@+,b:gܹey tb@&XdQv%浊>#QVqEcIW!7Pl+Zؔ^W^yKt]M& ћѨcY蓦JDM[@z5%0oXHdgsGbǦ;s4!_ RSәR3BǙ/!uALSUs0B\ϱs+b.8G͹^'-q0jz"dy,Fst2XgPqmF`@IyPQ %99F*櫃hȴbiW\pH5cD=7AsgX,pSYg#PL,fS1ɔu3]_9j`]O CSZ%M+p(,-T?*Q^5k^DNnE0v DD>K v٥"N;ZV:h꽑3_ңsRFAho=8 (L\vmƼS#u 9%OщcsxH\qY[6?@maswK5nKʹfG_ahx◬ Ê{Wܛ2 -rE;:pt{{܆/6SڭC' @.Q [?`#lbwS+C>k[fL]fyZ]%*~ .?ej4I%$m>QȬH&?e}W_DqѬ^9 ֤#$ HzF[9H?7[{,!) ]PMzt>D_ ǂ\hd@ŨaMxzu3q?sO~*}ܕcĥt[7ݽ4΢8@!JC87Ǎt5böit[DwK$c̑>|` cs 6/ޥqs|41NG|a'_ ,g6y$5[oF%?MxLJG)xXtId>$OF&E&ѨNWmC 1HEHt%NXX~ѧIK;f V|X\{WOS~GkP95КDF˱8~!'ry}% ̤ 0F*pY.9z'ZC։ι4<(v@5Dl*ЅB $@=8`Ss Sxc>аa{.0Їx2VGHk±^nLz5yLt͆s \'5U߱tu$Bn_tT|"DÑl.p &<@FGuƐkК1 f6k6U -U-Ї!̈b"xίMp?;T}n*-c;,8V^_i>CsJ]dO5812]THʾhVYu .1TYsi*`[1EfIjd#oBg5݉C_ JY/ȨjnEm8JkY@Sy`̵!;ՆU91t;-2(HJ QК uFf9Glګ4NEcqЩX6ӕtGadDR\=2{fjPIKg8ͨm)PS*U4E`e;A15r8!5yfC:[#6tv2LFNof[l ݮskj7,3XtQtŽQnRnuvslcȯq5ectZ{MyaiP`7,z"0|&L$j}pg 3K \zmj^C^/6?8g5 65!,~b xT5q"J@kCjhlhͱkE"Yӹu!)"皋ۀ f2KrdҶ (%a([t]/n#(pb} sY/_0YJÁ<>uII"=~"|.dt5Prs{ dP{3:Ci6 fLs ¹MiUB+sU!WJMp>EJ>~%XM x93&EhE!`2&$Jt,VMt\^5VBSl7u!z^Ն|?r~y)iɯH6H?aZ˼ݳLӹLoe.%Cr{ | r>0j>Dn{V%J3=VP^e~r&ZC)ϦSEh $_)up(F 7ã<]S#dv69(ykyk\s}ȫOewSF7Cmu'?F/gW⹼<#W!PsHZ=ႮlY`KhںMtkN0Rˡd|T+Kj1]qHzRճ,cͤi *U.4C?hK~_\ǏM t%汅WB>NOθp Lļ*6:>5"ceL.I4J0MVW'2=Zl"\hr&=6h*T#ZFF%DFI (|f`XWн9nHpb+I蚇7ܧQl֊ zo%9TiCXw!{4W˴R ^ ܾ> X)E6g5S A~*]] 6DMACUG4T!tb.8^7xS3rf5R۴QVEWe'0O<47qgNmaLY4M ݘț1uGX~˃JintY PrRѝ7(W?s e>AiXLA9\h.-O֥/: M͹5,AAln:&ۀ96߃|W0 5o^%?eDL|n;KaP n0quFCc;gd<qHP C/W~@ Ӧ,+tZ4VKrwYjxYdb'+:9! 8N{#'#0G;kF#?~`W_t|+J(r/N%Oi]^H=T Ss"|ps^Gta"6Q"V@l>?͐0?|y0ɂz{ zgflJ֐E)7A κ9;ѭd@pØ'ERjyuMN93AtvlYk6HzmTBxd8?VA.P][ui"!@РL27!Ҩ"\]l.k":A Y馇Is?4Uj\w7dx=&Re)5VVIx@֗^'ޚ|,2Oe27I}[Kє".QZnY-jgL}w (kͮnI&G{^Шkml*3 VL!qBmF#z E'o|t8+FH)ڵ, j ᙼz\)j"QSkQsGw?/e1G1עp%wӳ9;;ms ?ׯdggKs<薧gDWԤ8yt=67V&[ah()c~BbpECptr3sl2C3ul -5V&ZsSfB@5:t[k,=c =G#-;>_/riSjo| VTiMTTV=d@DI]Y2[riTR̞MT %ap 5,٬qDDCJQ8Ŵ<T& 1l956pߎ5$Rwh]Gyj¯ő9~WQi~kD56dJ-dLd{cT(N.^m5AКq -I^_Ҽ :p쁸1=[Enuq6:bN5X-?Wޣ\+uM°jȤP3]AC5;̮p/JԐ{r3r ]TMhA~"ҲfSdأQhL\VёyiQ革x/5ӆ&\X΀J?BSYYh#MaǡCAe8op xV7g0}2w]tmmZ^*[2 7+JˍQ]C4^JѢ[>՟Oߑ9 0QA>Zݤ [EC$2"v"w \FcO N0"7 @`b]j1]BR58놁3G TY5_ dkw]cZKdvil&} үJA:eʾhI荳nUuL&3jo_';u剦C`:ٯ}+U*7h nTD-,P|ǃL{1[ EbnZe{"+`aa j)_?qѝA=}KR~GҎCy׸dۋ ;VҬIyQ_tsYo1>cCli&G?f3#Zir6xz [ۛ oA^,$_-ZUtUΕnIj44 QkLԃL圦6VJDc/nD1wZ0MDP]^^HRV$i&nGFО3AQ`G5#"59t')ݜRٌfJ,p@"HPm$6A63ӹn12#RYXq׃TнveXI޲(SRT5=^o]zk,lܻwFP/߼AnDʡ\&έ?z9X|) 2h@G:gPޖ~-{1.зAS"d%SR7aU4!oyxp@D7D>l`R3]ӧZvwvY-RYmSiLLȸ*QlMJ)߼%L٨Ɖ4^4mÏ IDAT=h]gu}vk]&8v$#6*VrsZV u{{f 3$3誤qSZM WSI&Wq[:dt2h { Qp nF԰d2ƼjƐD0h!fUh0lK09F!Ւ\q>J8yH\] @uUB9dB;hr&e']w7g."]gO, ;~>؃HC$U{C/W ŁvEa443s!.ΖܹP^?;):#i#LkNꑑ¤)jӚYN)MJBM딋3|jP#e9 RDp4stGCL }d< fE'Sy}u!ky Cf16J:Rrͦ297H";d1[ܔdNt3`]mir5W^\^]˗/_o}!Ǘ}On{J^A fܻܽlmɝ~|՗ n7aYłE]ِxׁΞA9EG_ȈP`dkkQ2`21׋c,Hu@pvyH&o(]LoVe ղGg>5*Kj$!BfiTJԐ 0X35K4dL&$Ǎlܹ'S%F,vgD-["4ъة%3,Ϝ{WJrl+I56 3'(YJ&|7LÁtQ_zxx$ݾYb22v(`ػ}׽ Ja Hfwnݖ=uF#ip&ᕬnx=|-L*.e"X҉%dÝ\H6[Xn(DiQbTGt5hiV  L#zrG*UG9['֔M8;C"W2dHWIG9&Ԁ$L~Hjtyn:ף+4OOy4 F~) g2[&FQ\]Iq> 8onlpA] w>UN⦴w8u9H)<3 {2 dcHx +{q-zgv:e̸>ѩ=WcCWjug-?wwwO('2ڸw_mb>dc;?mK6YT6רR@H,(»YM]x'Ԁare\ľU4!G8&Ran E9 1i^cLp` NkѼNtŚ4M^gW~~Mh poQ9Em p `ll^Ev(e6dޏw]ϐ%ׅKsRae9ŖuDU=Jjܳl.b>] ήuL20)^P6giKֽT,| ~;e0co3cyE:@&i K0mQr Z?.ͥIʅu3c%EgCפGIkK!Vaڥ\d%fTm]u?GWV2pD| ~L%׾oOÁd`֣Lb<-ڂ#~6%|^/ո3X;]߷r=9=ۘ Ra8.|f6"->۸A"aMH:Q$wUF޹GZ||23q9?ً2D yYpPc dyPwdUzjPsLB66YT@X\=q$I%~QhśayLk}U%0AQJ\1z}y&W-˛#I腹@xޗ}d>ZߤT 6m1 ss).4c&avȜX:0s1C,(`y9MZ*qb XXрGSYnwe1Kޑ;R\ldY=JXzDz)I_]OB蜳\>,0beLEյ55g4|!.\EQݻ"XCjK5HRt&J̙u_w攽e? ^ NN\ $HW?'Gdo6ryy{㯞IgyYxyL'7r)qn!뫞$:"X4`]OOd{{K?yLW^nlbVfk`tye,lK\m0/L;d62ږ6ek{"e1lx& % ,&RM46|y>[> f ]0B5@X0ӈSYG2ayxJŔe/^iltuuDNQ*nZF}ջ^\( $("kZdtgcXtRVÚ]Xp. o ryѵQAɽo}W>J>pqQ[7J%/1 "}C]Tًi)G81&/ œ8#Va^_8}f1nklN^IAf5l䭑1'`߼yW,i dH34!יz 䶦Ri+}8cs̤sFФR5>-"K Ae(daTZZ$ Ѓyf}Adܛ\p(0ұ7c3#=5Xo@2z@aTdE4qd]킑V4\0y>I\iq uӌqs.*L3g0`nV+2rؠp;ᡋbl1j-q4yb=d󝵤*.]) -<$*Y0YXf-}E5qչS2bβ06 .||/?Ӌ35I6ZA!g53MB^I5`@6˲!-Tyst(od1ﳈ~;w^ d2{weޡܥwWWuE0 VT^D}JjL=Rٗ#$BIrq~(GdKB\ͭMoK@{Bz,ڕ*&ڑ-6"F#q;wJҗgO>zL߾tB! θsĔ6X<#ȅ+d@VwMj8g1果GMq]{~_\kKgILF5dд,fR1_볫#FuAPpxI@,LRdԺ&xoPE;=2=r _r)l] |T̍VMf.[d41OP\KW~V^Q`t2Fq t蚹(o#*h {RՊ܌Mj5w8D qn+,ܱi`rM/ہ| ? 9( I6ґ(da:;9^dLN?0s* <]@;VCZy,=L0땪)F"Xn=Oywٹ5.mu4Bw>gS-4~ѱ8nc]tJO@߾e13eyDE86ric E!+4 rWBc(4A䅸@'>$%#r0&:Xj9XOy`6%+]*0騆xs܎J͛({1`¢hS>ru"v%yPE6EP dd>(Ld:c%rsAKb9M{ԃJqΤy&_sz[{̼~܈I*l.MSqciUA(gFm'q3 (Qp#Ǒ3>jǂ͋\0W+J{֕ }3z]X\Vm8'+r9E*eYZ_፴M,,2Gڡe,(.Q@T}6;zaF|99ԀZ]~ʗF0"O\K,l?a3K^{_1񕋊ybYjDDF?;wuJXZx6gY"KrtÅ~'Wrtq.C< X$:6l!-)Ӈpې=2`Iܤ_\eO$n*D'ra$7/(LZŊvJdF8?B~QDzŎ@>%=lɱ>x(_>y"yd8dtNL%F{w9Xn%U#ugޤ{?۲!we3 %Y][o^Z^y)g'ˋnox"^18^M IDATj-\#itD*UYZ;yԕ*Qg%N: 2UZmIA30?ͧCI ˊ(˝yMiBa v { |.6E̱(z-&{FwhC:SNVW}`v\/ךtmTbsh\ax:Fep~BmAEpĵl'˳N5FhН5K,Պƿ@W)l`~`nm䝞i^"3\k3AC ff>~ `,[HO$X Ǚag - 8Xz-?My54 2f3o5Ttl>|nՆ F|Neέ]mPOW7. έ-A43KeX o2%ZtfoHZůYXXUF6܋.F6KgV*GQ0̻ cc$:+3x R ie_А#R ({ , 6VYwysSg1IGD.E\dsԗe0{TrƽZZxiYrF"W9rWk瞜_^, `hFq.>}"ŔLnJ1G1c18p~gd$'g<zwY.Yc\K߻G.\\^>L{MiTZdpg [e"_>y*o?X! 43I4+:7m)[*h ̘0O {=~eD0}vqbL]d }aӹx}s]> >aKa>Шjuõ4@C6JÙSRktB03L (b#"(FkI5f3 錳`m޻ТsRDa1*'|! ؓTN͘Zur+TpٚG өs/xr4mt `zZx='g !^jd EmYT*uus6B:?9p(ݺ)'oJ d*CuέpUPWoG8b4 @tRdx3trE!G7\8?fs5Sӹ& N4j-Ѱ QU! PHP9g3( ksp?ZPF-ߝ][|.Ib=@tf m8[V7m+2w̝2WdC,_ɼĔ8l2 /$@#8 2\ K_T y'`~:NȒ27J!,X>S0)r׭EUd28tomM_v=|[vrحln\ygr`}ds7jժV$.5]x,1 R®. "$fs!s<,5(DQ\#1T V@D)3iݻ<ISqD*_Iﰦp~. Aٜ:e90|`rw]sJw?#rWE Jbml)zPpzMgcyܻWNOϙ<r͍ ~9XV@ :rUwo=Sset2T5!\"ʂQ6 0õ&x8 d6\eaġ%u`VQ[yX[i0ïuW$~eӐ8x'ӑu#2dx_014Xh$WstaS(p2d t2[H&8*iy>ʜr_--0?U)1 r?:邋 'i*0CxV@ 2+)aEv [#ͭ&9k7+5̨p1 %)fNIJ:׍85J8c2/Ea4e}k_DzOdtNPס)Ǩ訋X9pMQ?|X4{C6ME''hj^;?x5užD9}6K C p 2YUuh Ipz`6œ_0"`dFc%ccj8,gr?q(d d)ⴘL牔yJ0ҏ(T&vwZ qCurQR[(muvC/c?ԱyoAX_g4@ΰj5Q5:End 3 *%bҿ<~ Ӡ. 628s+^>Rb3?\b}"E]ӐZMu^_̦v eo,M b.8oK.lLA\`"-)qu҄R! zPkMyuqأ ]ռա R&\˝j,Z^05hΧA 8VgytټxV0}lks#*1W]8dsš%u FK10'Fٕ)ڝecT4r*]갿TN5@2V!/Y^ sNVw\*G\KΖ.vC*1"KYou`{GXjU~.Ȋe,T L t=Fwmǟ|"kK˔)X80!Z\˥]WȦ1Xm[JgFS$`X|6n|"k+]Xq6<\[<$1=F>Y,(Vuxs󫱌̘Gugrb8q',2hvYQ`,cµl Ŝ)^XWˏ:ϓs!'e.d4`{AdE*fR ?eut|܉ɑI*a3!3XY0HaT678`doݾ͙փ{!mDϔ+n5),2΁o}L)oەEk7_??#8@(r4:ܽϘdJI<(ms@9].ᕌG=JU{x_ʆ]C ҭ'"x`bfwwPz"| :^^2}9ťE *X[i+&xtt*{(kڮ,P]Vm٫uqy7p@XD JmݞU쐡| pqOfkiv[V6Մ ,qUf=&;'ڑZ%F#Օe`fJ5"0Ӿ,y:z}.*r|r%;6זOYu٫ȰeLuF>U̩ܿw@035y`F W49Ay͝2!:y13PD})ECiJMEYAb/&ډdcF8_7Ҭ'*gJc* gE_zc* t `g:9-U΋pԇŵT-Y^ݔJ.uMINt[H| |`A{&< |q4ƳLs!nIJR 7d2|pU߾YЪ'bܹi`wJEMm7QXUf&jGYf̘i]e>^ .H{5d~.sd:9w?H#3˝5y`JllN(mTbẍgWk7bQS p1wiŞ@O[iS_)&ӈ$~M[ujEA 9 jiQ^?%9Qؒ4#B.PɹJR|;8`n)rRu&5ϴμ.QvDXMHyưÉmDT ltMF]-$R\p3 c,sJDܽ-. `N\{# W.*\gTn~>;WN 8SEj_)܆0J\N|szx'2pݢtup?5Q"Wr6y*ۧd2ӗRoGH8bd,LrN'{?<\;ɀD]lT%qٓbW*_3``wtzi|GןZO֙1y{2Ldms2R|ͧr-s`]$_smjz*Ks=H35#[N oȦ@yS,u76 K⥖ z 8oɌA2WF%wWsuy䑜J$wtcd)Q*e0޻P6slGH!K*UJ'łv٩TY4YRU\&L#7l "Y2qTjIDO9a]^U+f]!_pYG-wF6L D6GlEN[J(-?<^DCb:<h]ߖS$)-gQŮ}DGg{4Ҝrm(>ńv4rn7K Yar^&&n`kh.VӘ/KgtHt ͑J"I33<\qUVgw%w0JQjR:G<ͅ\æ# A.%'dbk;JŎi`Y֫zzSfT4MʯɊ"@?t7hBF#O1O1JfDthQ_Z/%d"?}kWn7m%ejR./_!X)a ʓc{ȩSat2` -ٕ'o^TqQe#k̹JgYO/ݽ]r8d*S̿NKrpZӹ'duuFIcdMt f4OZFs;ui*nT;ߗ_űmSJ83PZ%[wQ!tp5-<⌬k5Va<2/N+ق2CalF<ёLxɏx9hlLCmd"nG~$Kɛ7oOEpbBxXk+rzzF'}xL?X\CW"R\x` 3RZMqՕN-^_WыsF@ @9`ͰP|Z~ 4)wBYw8+ Ry2*dT Dqߦ }"!61˩ƥ:hׁLo^lҗ& `J#ݮSȜR_:dR9%`lo,љx6pKY}s<UlmtoudʢV}'ry9f]w:kSE;Z:]g9s9$ƨ] IDATy{gfHcؔrHm9>l+n']Lp&8g /XMnFgt۪w})\49Ov1~V忹ŵll,@N}s :"sic#9һ \;lĚvl2| 7M^mP~=d4Ӎ4lrmŌx~b96f|MyK!C`Sh#c=w>Ox JEc (2XC1P}%Hg&5`)7I>`KPH XzQ V'Ga/ NN<a&FQ{QIfkX9+a`+83D^eHMl 2_;ԃ-*XF+V8vaC$֎5JFH>~S0*bs-l ߽Ktλgb [gErݔ2q_LWjFC~=z%*b̹{Ό QNA6^ux*rS;͖B\4s)Y"~6xhqC\x^]`P4Gr.+EfA^0&Yv,\kD|9ZԜ$eQbs}K8JLj "y s|mDrz{0WANQ0 (0 U&{gcBJTI>1$vf[R "bGW2`su ҨQ;ϱ7qKYn`b[( xA*9Ss XS-!`r5 FOr2,\\\՘ T!{N&YFtdJIcU"ǟ~ 3y򅜝啼:<:C,u嫗VM^<{:0+utr?R.έiDlllJ0sy˳#9|VPVq)ew\:KjfbLt,ͥ|1 >/>{t;lbaKeƵ:R 3p6Py5̗u6-N'd0\jeksG}֑#+zuq!V+$?ǟ0/wѣGx@i*U Q'Nnl39YK֖h1lx$%MŁR݁f+ Se.K&I+P&gH1<յvm *` 5|H4e0=Y>0;թ:&cΐY_Wj j,"LD%gdVT>\1ɮ|p9!bu2u܆+,e HGG̬DΥh:b̧*1\l&FU:*k 34[n |Jf_r͂%1`#g P虲h4"sVWfmKrmsks?cQaGC2d'ws ?ih9GE>aЅ!L"tYc`>ϊɠ` fPX;g!Afis5IT,:i_?2S) 3^*̅Ec $z'W~LWX^-! XL0we1JԘ;spש@lWȨ"!=dަTQDỳĻq6 |. H+e21 H]iH)RemB}zq 6 -#v06m|o|!6V/]J0Fy+FHF)e3\$˛tWdxcũfL31̥n7da 6wsg[ [fb6`@z4T*py<ػ-5RM^6<UiPYsO.{r}}y͍mLFrzzBd S`T`?T^nё:i|=@l6K{?m/r>LZj:d1Kk>`Tn0ψZ4to9՚'|L^huʝ*&y.>p… ϕ5PrtB8Vg[;BhBCխ;L/>1G]QȸL] wﮜ.;r/uD~1VFsjMRۯٯ3L"YX,eAJ׽);6 cEt.h`͢krI]O9vW.`G4xy9МqX) @5^#ܙm{)%P7$lbc!pj5:Wu8!'* "_@>:Gt}}"1?x`dѸ7u׵@Ç55TWVe8qM,rߢ3:@9aO4m0a3 M[8`s-+dݐ _WMY9R&% {2.f 6KY#W0.7eh%\r 2T j߬ ^b}5gϢJ+93 M̃Eȹcc}&9T}_bUi5dAB#@k˟Z3Gh)[VƩ77nZeFcԁV#7I[МXn& ̺΄z^!${=SymIݕO_p/^ݏ?Ϟʍdjads-UqV88cBIZ8ȋHVm|?#y,Zhw012@CugRL-f`ڼmb38G*r9!h]!HMPNg{Xmss̭(%DοƂ \/m΢(hqBNo"Wr8SWa6xY 5~5r4lfwwr.wޕǐuM*l@ Ӯ H} ߐ$\]Ql":"RwoҊ|xgt`:AmwZa<Չ\+c*,jvvj3usgG =~.u_ɷW,/-h_k鴚t s''_7or+~-6hXPqDx4;cW]جx5޻˽B")b꼻LN"2WHPȸN3N|msox<يJWf[ = j h$G&O}Yo /覼pm荥P!>:w`FҌֽ8㤘ƵČ2x{6gŘ-'BM m]lt2p+29;Y;WRXQf$[7dP@רey{\gĻjuibF"ܑ y-̀]lSl&M/-Օ V:UmD;k04pWUYD 5SPͪ+DwPA\g6eꟲni<6bf4Lj(9iTRKjB?ˌ|{,KSo D~G??򗲲N m}cCd V" 2Ke(E*/^o}1 ί$U?t9v%&׶ƱeՑ?7goL0դ? iH֖Qh.ea`5wQұr :Ng`&,ħԪ-:keL!j QݿC`:F.aDzSZAY2*η? jN%!o Li1o_b-=yX5YO?μVk}J#sE 00Y[䫯ج:_Y]% J$һX \_TIgy _Z6RywE쓨H"y udhXƳTy}RRD2VfQM>P*5M'&T`J]:D̹AH!,"yn ŠԘ Ft;m9=;{s<͔ŬT\0X]]ӈZB@ yOH5fN'i3<kA3*s.dDiRTc!|a%2SVcfbvU5ΚW('3Y*T51riB3uG؀Kz =3҃zIs@++Ϟ$iƈ,bY]ےZ+''ܡJ4ڈH+;[H7%;rr VYˢ,X_z{+Ľa٬`$GQsNdfT阖"yr)<#ЬPԊA\И xpai-(IfLcne:1*X 3ҁ_3\c7 6>j^ˬ9alV6{?E&^1S><ǬSC#*(oKN쾄;K =wA2ˈENUxf3^51k)D*yȅ<m36GTV+B6G}Il<J}Q8Lj'*0&g,HAZJ UÜkiUU=ii)YĤ`G1F 7^ne3  q_\`9XZiyY2c@w. Y?xpp IVsu(%#>V)GyǏ$gcnf>,q2@1:jwUnW)|,WRK]dF+d;pdg}Cj $sD@SLf>Yf09͛Biߟ9I*|@|h̕b$dI.Yq uPX{IW:UgEc 6.,!E<XE36gY}1V;H޻{8|& Fū`^G r2 X\nŝZ.{[r{W.Q&fx沵)?',#HUyxQҜh7i3˗Od4ZX!~$+-st5Fggsكo>c`mj\4@~ cm7\Ny,Ms#RVWfvq TH&Re4R2 ëVI9"bTk4#WebG*gGl ac4PU/M l5SP!͇$M8*B@ӻ<,`+gIR_뛹 3(B|>fv ޜJ9L\*lEz f.VLèDW3;|r1XT7`Yo$7r3l' )ke(1\(1eLJgq42h$FuƎ%>'2"vIƹnNخ\%i{rzux&Qx3JfklT,hTsC0Flx5ij@?iLMѰJ|o IDATo VXpf;'''/yrV$LhVo+a8߫g&ABŐ05,'ϸ 1&0PL|ܳ=6ŕ zV^?[l2R';UeUxl@INbH8"ޔIG|S䙼r -E|̞A(>BNorkV^Y5ΰt_AswF ơG6kJRmYC*fyIs9g;ǵ=a!ac.f~PRa,t VԬ~tA}KrCuX0*}Tjy#8_CoLl{N0l̕|CS`kWۊm)StyXW -)]܂%Զ > 5tl{:/ɒ=Y\`.J vs<\oyfߙUdN&zsHŽfnS0*cw_ӟjJQ>9FWꔲI,%PnpR+BޫIˀ7uMN85qKrWל:c _3sIB"Y[P7! \t .t0)7DBlqag9cE AT27@L2i.w<(&0PోPA6;<4p흌+0L|Xa- \ KISΎLm6L$2P>:-_kh⇜`㉌SgWG[8X c*]dr>Sl<% FKsȴQ1J5RILiʋ3J[#dQ!vl,g|,nI8\fv V`o_:e~0ڻekgsڐEd0N4WU8bNlK:e=-#1:uVeht`H#'qAnV4.Iq3fhtTf|Z]BwNpF%*;F8szwMsۻ;8l?ex=5$˥LsHp7ˠʳ728%nnNz0&Yդ>PwxN/ƺEZa/{_2yʁY_~)@`xVLN8fQDbgDqX~3qtE:+bj|pw'ZIag)V$ ?j2b $xvd\}|suf2RٴLS+ 7 cFc<Ô>(Cp}C@R(< Ow$f2OJI{3v MsmsS$Zs96{kӔ#@;V*.V\m;C>T˖j( x3a1 &x|zS7n-Sy~k%ќl:tKn `ê k~~6iGZnFg[T|Tf<Ћ@73B8*x Ȭzn)Kx٦Y\6#$QV5B5WVs]̎7d6 eK,HM4^GTuyiCcfY1NNl"eʧW7uonO/e%#Rqy|vk(\.|麳}F,wJ&ZAՓ9ܹNOf2oT^_\iv6:]l:uݿkES$wJκgT|)gEFVZkm4=\\2#s|UAu=u˧'xݏTY_ݻ.hDHn8xz{`W FZ+FX= 7%)ږ8,uW_U~%?z,湠|蔗ت`csKgOQo6XR`ps@s#`.d)cE6]>ǷNp{xiyMy]i~4U|zPӍr>O.Wk<|"[r72s9+0"Q.C&G{: XZ(j* z(s.ٲ/cF ͈B X&h l.ƹ(+¤ZZL]s?2}FU5700flÁ]pvIB<Y:j .F7'ǕdgnLs{ʮ;Zf|:Zfz9_/}9,q Gcwkݝ w%n63+!ȥ2ᓏ1gTqr"Dz$؊آ͂d;   _nWE{xËdk\^{z. #a@;d xx04I]j˛9Z/MYrn׃!I5K5fP Wf'&t Wה;w9J`]#SE^gb^ЌRBlibTJi E@sqչsyU~d[oE/rUS0ꪟb2&&r/["n<މ%ߒ) Vw͍&eYif30m7e NWLe>؍{)fEodQ=Nc g=r$1G2# mZϓ:ĊjAІI\3p9QPb%ϊOYDžK̼Z$?KC'!6ľzjJTz6~g+>*p {KQک UTiO0̱RΈgǚkVkh%Uٹ@ 6ǹmfW*0x>x'ggNvح7ɇ+Eb(l+" ]iuTM`6k=﫮¢ugLY0qfYlV6i޳$.aL,rEMicԿF7HKc,ֆj[؏,*,9L_?y''X&da !ȂNlΦ$ AA䮁rLm)qfsf5,4kٞzJYndjR'7'ӫc9OG*:%Chg:Y ȄGE/7ggX9>K\_Ϗ%wP,>2JɘI 71'7t矠 ʦ7Ru) Ζ3.̈́hR`0ϞWZgg%'{vH;iF9L\L_.7vİ;977oLJǁMdžonoc4լ4F>S,xbcεTFRUbͤ͜MZ̢(ui=d8FJ52ZgD19F)F)bO^|GH)3> e^c7spA<&b  \jMAK@6(MV.7.m7$ˮT%^z .ΎO$mm1O՜+2l-s!^}:%Vh< `l^aJȉ7ɝ<) `f<&knFVL&ZL( cy #L!5˽lٹn9 w`[~}lo0UV cP 9kWd&!o`$#U[zY8%Vz3^y.$T 9t;A #yy["L~[c+Qo݀S\XoͩUYq)Ygʻ,"35@V2V8ܫ7eX\z.,u9ڏ.R,g̝oh(kv/+1j* a,o}$$Q^-9YZ@ (An MItWiy Tֱ` b^b Z׺LgRqh3ɣ̶#X.HbꏑS2VЩ71ۗYp|!yvKF:"Csm];Yfdf)"]y-"n^! ?XaW.mRJ*マϞbks`mf+׳NV̝R ,mF2[jr2͎$K,xpi)FZAKM4;[4 XkYKW6 F5kE RJMŤPHɷ"gT(Xɭ3$|&3TaۼpQΫ 'HPT jiNeI18ժ)\Uܟn2N[sgllno)iP/c<[?-2ξDod6Ѽ+pizhvչ5!]}/?dIXVd8X#>HbM*F%mpFk 7jB͚b11's8Nv/!z뛸/5xgyᰏz 7sK$e( ʂ(t"`i=!qI) mZ]Vf[Ƕ 7|!kӐ'CUCUGЁL;8KsJ(sZs1ꕥp1Nq|~>Hc ikWs:jl "5EիUrкds7G7hĊ;GG8;3:d$*M* ڴGd ͺ]-*',( Mhg*wB=Z$%_g6[J&px}^C <xmFJZAўй{KŚ&`15{X,>>B_dU#McZ::&t'`WW`0uzSuz-^OSlDr6՜6#6׹+Y\Egcz JX,+3ΕFIW/e,%@{c@*FJ4-gxs,;K"% yRE3!6#޲( 2ZSH9'Sqr*x˽wyU89^bZ0LiolJ) Af-f{lVsfΐX#'2߫`hɒ+MKTD{fQ$g+>n/WrI5V^2Zi6s\n7Ь|<0q#jSK._~!C } "&A7CƷ,yO3z-r~F\bN!s_Er1D'w@/pZU _]Ӛ 7v ;tsjSM7NQ~Zucdk %l4*99תbtS gf:3c(V#@g/Q:_(jUVOF_kb̻ɉSboHFidMH I ݻT 8dFf2*K{U%qh*ϴ+jRgk cY&3ӀgKpa^6߯g)Y)cWp!|x6w\w%#ϱF6*V%A2HvcUD]W@``O-^Z^N~C_`R8p𥄏& VK,tK3m}l߲`n'eTfqy(~Z-!C8'rռ3k5kܮPr` \عy\gT~2Ous|yo^<3F9Rj <>^FnSk2&[y=ib{k[DmR^jEɵZ Gp]ÃsV[C|N)%+MH9 92Ld< LI88>~ '[t#a\{;8s_/_+_/^ىb^}S<|HYӳSlV h9CE<:n[* LkrዅMjSE*C$n#O1=LeN9&O`;OXdK:xc Fd3F8y(rRB03( @'JFcS9Пg,jS:rz]"i?Sq8Q{PYWK,{5WbN\\MrmCl@Hwmlt+o\v~:2V%쀅kxnk&](Jď;1NE^Ω"V{Lp+^㊳s+XM"w@px)o7#3n΍CWnEk$QU'6 jE_=f)>ZLkR&mkصkfoKM2+FMR Z@wYe~+',"HzJo%H yFP /Al,;6?#͢a\_?Vn\x8=~I?|5J*'W(f ,}{>;]^gj2$M>(l/3Dyϕ4:XمbQefdbV"Cqx>Fd|s/{Zk7Qhi6C9MT=l蒓$beqZA?t.trL)7 k l6C4*K{usE(5 C|[Y!ZEy^+!':nfc\ rmpVb4w=Ah۸l]jֻr&LGYJ-bg@cN ׷7Η*\t ɬ.>L?k4>$דwH;{R`F$4.%zbTFO.pqDk\˔*s]>~Hq87,e LxC ELѠ@skKt &h*gla4g ):[$ln٬s}0 'zl1bb2+BH˅Ct&rBy/\)%3fl_OĚɫl'#͂7qIH:fS,(>'&-Wg94fN t:X,b$|9:aN1 98Uo2?)gy"ܢ& 8KGO ʹejt$3BgmEۋ:/{ȗ ͐ɥZe]kQi'0FFS)U8՚KT/Z:rfǔwb,)ϔͥf9k56c ?[0v 㑮bx}9],1h֌fU2ѫ4p!N^=E DNC$Xb:qXQ OQrF-6Wz!H|c[W0#=IE caW&v{5m-N1e.6rb3{ߣ]3(l$z˦ |/800X0H4.HobTE09ڼ7h'a rҚ>9̯*H+ͲfTnqdQ硩bKKw:w[~xrD$yC.Sxg9@ .3BENx6rͣܙsiؙQu73/oRlk®vRNViUQ|h U0u(f l{Ҭ{=͞ߟ+n&mIT2ؖ.˔]Úc^2gW3JJGS|$1+R;+2diI`s,sIrQDc;,㇏U@ԘUX2ڵZRo[?ޜ LW*xp.%ETf|lyX\ v/'Q2ßMP5\qqsz3dIEHءޒ6+b9{2KM)TI ffќ (tM#Q~n'C#&smlXĢ5ּMuY0ҝz1D){ÃCܻ{O=t;[ƽ;b|<};bnœyD`w3gLXEiFVw8t>QQ\wѫӯ$=8F-uo}F;[ vvuoBp<5"y  ;D~ћ[z=j=z*7 2D,y6qyq>qׯ^FnGw7OexL ;;|hFnٳs&K0xS&w;^kx+*+6;\_o(S{GLsfA002oh}9GO,5,*q6py*żfFEle{+.z%{Sd z=ylɀ FqU6ƓkyTDU'fHd2,$xcc>MiVZ٧lnlBs婚4"uLW5;fX8x'+ݤ9йXT\GWE"Mͤi>uڒ -|CȢz\A`[:Cp&k_Q@:"UtC;?sZZmrASיLP2E~weJ@G;}"g؎b6ɢKmpj삷nU8:/k2YnoFҢd^/%_$fùDj o Ngt3X c:z_3tI f6x^0p/rYv X2$ǞM;JBcr[ꎕ͗iptTs'4ZNuoou/Ӆd/.ߜ+" F7}hr=}>}1GxtĪpv6;`בo\{CRQb™2`pv7Aݣ;^_hf`sM' s[,krL/"t-wAWbykY[tlĉ{K^FNo ꕆ*%,wt q~v.PMpwlD2rv dI˼q H_} nCI5)8N "Ofω&k(7p}uf" ņbw\C9Jb&֙luђ/g4'bg-bF &3I*,Ǵ"vsϜc::/Y,on;c53{1]4n缷ի$آR_>iE.GX汶<pgĜE^*%\FcQAgWhF2sxKE$9G*>:l吋mT]?pYk}&P5U}_aF<=|yoh|b=G 'kIs)i5}'!O7&(g |y|ȿF ,,nHX<ƽOUkjQʮd{;!c̱t:趏p~c)t sTO\' ̓'XKs| bǒiscd0(=™YM# 6d^9Pd>UHs05NBgdîxFh{` pf^}T92\#3.|φ[[oXĊ#гm-YΠefCj_N+gkf{]|..J]cnhԽ7805Vj3+ȡui3eMz8$/Br#grG8N|O`ˈ]#c3 RjxSΪYRSfKJgYb,w2.zbg_+X6WI>SjJ/U*|FD82q_? xu~W'G6Yg8Ƃ4 zʀR 'os޸(9?|eARvB}%s+X=QOF6_ʍzS.Сu< f!>xoO`GO4q_j9vvpCSw0Z1S~?kλ2[]?,ٜ˹,B@ j͖Ao^r+?|VKni&iF4wSP1Ypw֔,PB˅s. |{8Dj.}uׁEfn*3ȽM1\0'8TJ"+ijZ Z&b }𺟧NV枕JvW= ص"khx~&몢T7#SCD`2w2Ytdq2?o+f̦;qvַnraǯ1tg} ݹr3]d q9c8qv~=._MuV{h`<p7T00ג'jQdQa'h>3Wx<ik͐+kkHI/!ù_pyu!d.1O 8;?w9y6_=Fk z(Zp0Pi|Nۊa9N!VсѪb$CKKhp,%holiћN٬$b9:n^iq42PJ54N~9f- _(L3 v20-z+ j"mXxIXJ|߭c0ZRW ~l4˚pnYxa8z<Z-$<~Yk禚c|\Sf39Mpg"Vq…S,&ⵘϕa5f 5fy;%ɍZ"@y9 כULε`!Mjrd@Q*L7k 'w8C26Ssz88WAfܿyfpO,,?jRqtx){edR\u2޻3krz_pk ͍֔Gk7x(+Y(ȫ<ߜSTF3aAlGVK]+kecmMsOB IDATI['YzŕY@ nܐq`!{] eA=tq f~6sM:x 2`,ce0[1q3}r#LXoZIxzV5һ!a^>ɸ|PFɊH}tR7K*?_uͮ('fQ4ᬻOa^_rGlufF Iш#>6 X[{us|ϟsB3FpC9 Mͦ[4d)ms'v f{"kj;x;՚2DGsAw!Lt;r`Qn"x9P0MG*ͿDИgK̖s3M%7TdԲ l<tKBMɹ!h]XYe5SWAV6wzYv+7wS"NE }T#Dp0pkkjUWQ!XKbgG0"/40(xs~o`X,qr{)vM{9^1Ńû tS\\Kv9Nt Z* Ͷ|uKEfG#i&@Ƹ}1t :='e>Έp۽NOO߼{>y2\ kȯhS,Kt q?=Y6QNlU/S8J xuU)=|縸յu^^kTɭX)Yqtp\^+k3| ? 2! 6ڢD91ܪ \oIhƸ181O4Vky|&ʑY˱Vo40,<`eyc<<_P!8g{x؊zM~l.f֚s޻{g'o4:SY*FgΞ]ʼ ~+9 ۺΔAah9a.yx-.ӌSz] czKӑbΖz?xlE3=gsݶ&3W4|eW jQ:~nۗE\(3"-e\*}|%(.gCD͐V''(kY,9Ax>E>Qh^$ {l? ˯s*[n=В"`<͈S[yjnÒI}^˜( be(^Vdʍ1Si<Ҵ͘]U=``gm'\]z|akJJ ll`:E9;HӕeOWj~ ? -ӒMeN-íe.nnK* p&Ȩ9\]c2Wjڄ-<58VN'9)ћh(2Eb1XfBUR&vuQ}ZQcס%fv$^$jn.$^u%ed1mْ.S"X)ZUwSۑ"oE1ĹS:t,9P< q2>ƣA!U,i$TQoՑkf]_y78p|}QQ`Gh#J!YuH ⢊F=||YInڪװUb1G_rx$bb\9e?P,#BQJHg;͜+oVUi~-Ny ^oc6~'}Pݻ\FM,l9cwTxBy}e0]vxI{Gbx`!ޑ eb=??V՜(@lҿUm"Û-Ǝ83ySo^ѣw9G[AR'E{ƹEnDJ'`X8ܢݡuKloI\G搢Ct.6Fc$ 1_Ų@b$st5VezsQؓFhc2cξR3cRJ]M:D ~riã$Rr7QZ@۔M$]8݃ 9xO8>9ET{Řzp1\|^յu\9= 09CBwwjl$NN}14-Z]EDHB׫O7C\ ƊѠ?btaڟR6-'rF_POւs*'Mhv%Klp^[uYBAAvYkk#2x@wjL*Nɼ{-(G6c>??Ӟ8 pVAb͆'2Լ̒PJJfFzďYXT3ĸ_ʕc42_ܳhS92v%E(W]dAS.-3 +<)X% 2,kX.gj>x ㌴)LZd7ps^TrE1bQpvI|9/{+ C9,#d=ON;_8v,Y_b/\h^ٿ[J)"AfnU@M[ !N2V+#n`,*KvκDɚF+Ĉ~FX{]dkvzKN]ck{;;1Mvc`^k ԢDNX2PaF^>V!zFa-*>i&LLcN%&m4u}.^itT%Ga2>bx?5͉d1Hfgi&lgxhbn\vcI@2St,d91d!\Q,bKzwFvɵK.dl U$+.?5UGZ^ e"b'qr(Gi\ň,xMRBl %JbG97k,ҙ S(8t)޸bF n \g3*,fw?_op<*cR8VڨK h'wao{/^k~FY*o E(89'#TEuq`d;0("~X_Dڔ /_tu.YK3O t)I4'vjvXߣÇ<>޹`=,9>?opu}!yH믾 K.t# $ՊX=2N&gwwwG՚|ˀsW~f+glb&ʵ46c{sWl9KdT?348=}͙T")e~bk{o޼dך1\WN 79Ӻ DI΋hնdilpiU*;.,YkK,gCLZו|)C,W~ʾhclmg0iʤ̓Aպgtᴻga16ٷi/dC Vgqvn6Ai:cokӗO7:fF%a:Oereu9SlbFDFG7UP~.:lD{&se]0ݖ%vu,vN: "rQ=[s{)#+7nf¦J_:ŗPY)W䂅区>r$y;oX## {ǠMW[u-|6kY/B6K_|8x]wc? FeHy  ,35/L:"|~_;QfxN{m͚s5K1+*9̭MbQ9νF6"xO5/ 6ĝ)D[2ԊfJʢ&h[)gP=-VW/Wcg nҜ̘)gå967op ~o78&>sd~ .EQFGs'KG7דWعs~3q;8bPy2CQ8+ rrVkc.Θ@9/O0hb:imNKTѨhc$QrU#e"c9 f bESUl1u#wlB3Jr/{MJr洘5c^9ʦj>7cn~6'Cr8 ಐB#y7Ƭyک#bTC_ms7T r_FI0ERƋRbRUdgCzdW~aICKȏ|L V͕C̽$SYqS*$ogHBje>l.b!*Qe{EDZ{nV32B:Z\n&3qb_8SZq1RwNa~3&hKN3fB}R{g#}*s'%آН#x _12 J-/dRh7P⺬ؕ46Ȉlb Zb${],e c7f;onnq=tuZhϵQd^o`Y ݵY4U| Y;('Z'[[zniCuggWːSK.273 ?2~Gv[@k,PQ$ ;79^FV:٬+|3?5XsQE8YN!] Wjb@hTL"Y. \\ 9jtQ9YE-BKܝyXP`|Z&eEץnESAH ܳϙWO:o;̹K'QtEܹ2+~UȧQ3O\[Μn2F{E'(On9w+6C#\P3F-\ # -cWjLPABcŕ Opl~!_ŠN򸳷\iB9! N!K8ֶa0}#JbI桾9T3r'YH>,\RPMgs1LH{G+|G?O"?[A;-JIkf&:*B^TN3<?#cɚnp~rF1iٜ\ J O|)} !vN+1Nvm47+ܣ Eb|fTV?gޒ@;Btsdy;ZKIpw01¡]:{K:LX/ IDATD!^' ŐR  YQ`f,KWɖ5DמvFbQz1ӷh˛/_A -o(§D!BdY"̰pA> =qr|pR"fXxXX*SP>٣"LH+Թ-b붚DfDSTikncgg0XVM*hȂEC[@ ,,bTy$\d&plbPPj]{rY)u+YRZfn-k;'GDuu"pֲ\LI9\dr[9/"zNODF"ESVt$ЙA\CjdK;<_s_*H֫Q57%q4+h \L~L7r]?3IzهP}UL:ADnvZYC1gXbv%Kd.g:GHL=z|ڴV+4݂ƶ"֭[['?Wio7{jQDJ7@zh~AD@Rg} &8!yW+>L^z 7t4M{YkRN#~vs4x|DLb,r41x[l줉L%KTE.?ґFPiٚ8JDgbHv^IDC-G xdДwwiRgsnTjnp(Ѥ"%MbsbmJer9b d"i&LRoddpsMtoTl2#j'elH|SSx]/c-## EM=U@Mξ$X܇۞f/Xjt)lȮ샜#" ktu4粉Y{lPEQ"2֖6C+/ s™KСl`ag̭@Qlw\=˱c+8t; 0d2{'#>jjsz {LB6 +<^5V62h7sRso^;pŞ5J32z ݧgv\[6w˰B*#s16f^5QI.e#e= 5k}ؾx5Rh &6Ds\sQwpzرX o)jōhaJ*mPKfBXtC۰!P6$.7o֬iK YS6N(G1 տg*çLe ZMx)IK1՚ܽǂA02=v?g{oش\= (ЩUvfd/f$)7YTD]C!G|M]'Ǡmj ||#ܽ+^K{(WJh ]mkui`({.'=z}5W7 @Zcp4'qQ@EAS^ahxi 7bq9Ǭ=M4HI#d(hWK%\$~¦ڮB:CKJ _@'JXv4<8j M Ͽ~"YmrtEfm՝,wؘK/=.b+L8]<ɫ/}+h"2e:HՐ'F2zxD/qfB" 7_3w+BhQצ*=iMnߺͼJ:Wdh̸ 8w>h*^?._|)'})_|)<}487^O=e\ήH'7Qsr%l@k6@Gh糕V3B (TaV+,\M'C)x#lbiJ#{D kR-Q Q1W9(b~Wg.桷s E&1ܐASMz4h*7Lgki:tʍFǤV`J^$4vxA[,@ q^zT]7bu`*żj@}sLr+3:/XK-tE59uk~1u9:5yKjTykpwNhVVtZ\d:sdW1cҙLm&4pǠEoq.Iuy4$0PJh'>;VR󹗤[MYCy\p,|kdiR6Pd(51Pj"Y3#/*3藧Ḟi}(>Ux%ݯ}c($y<4i^Y@:3>_>emȧ"E"ڄx 1֕-OdD 37b ȪXs@^ԧ:Dﴚ,؝xPأƨsgZj5eq.atO%Dp6C{سG6)]V(mf,VzKh3ql i;9.+-3lvua48H@=bZ3IJzݢL q5IofG!˦ڙF<][DY(lVr^F`YIYs_`QJٷ{Jh)c3[5WV3lbꛁiޟr^_y.,iR 79N\&5tй SY̦R XIߗGAͱV M"v}c72|˼_;qA=Gh̄׏wM3ȯԻohf)2e oʑTFK~ݏ|w#_xz0Mx:y !tl/odXN_G?+k7uM(  vafLtP.Mm_]YRWZU*+  +)9E[JC& UWR<<>Hƙ%⵻/7¤SR3wp15&h*mSqR=R=yow9}d5s5ـt UIj869h2Wk;Т'i^|jq\^og1t.(iߦl^ЬfDf Luf@X벳{tu}Ip}i4ruuC$辸7Ȫ*"' ^ӱT$$薌'3e*6Cf {>+`ysv{t'%SX#wb㺵ӥvLۨ 2]sjk<[hk]\]IM#7 df4 cl~RN5:ݽfv0ׅ5hϠ1)!rVk88q4C# Ff6ZuqIyJߌCyu6/Ϟ~-q> +1&SC=dx;)k]g |L@1}OgM,CtU/OSTs  q.Uj4}a?л #HW(lbSK5M-+ջnj6|OěM&FMsHi}mz$ZODWC|6fCSεVo-<`.a|ΩAmhYVxܚ`R3I)"x2B I0R}?\zm㵺ZcHibQ<6 yyÈ(ĽxS]m߰yoU-_ &Z*³y-c IhK|GDΫ <"'?k/<ь=:67~Q򸣍YAi ݜ;.8k+"qvQ;97xIs h* t(l&pΜNV>{Ҋm1_ɿ x12T[אUq V{PPbq[^ Pѿ|-Gi*eZt~V_g\YLuvΣ-Ds^Jwow!'_v38~RkVcvrQld*,K'Qh1v&&x $кD-DU€%=>$[R6LxXB[]mJ{2YNQMg+-FPAaKrgfD%io4`ZR, & FplTͭH[iFV#H#P(XwLn"@S)tz]+j{ ;Xdrxt B4'Hbi44%]p\9ӜAǁgE)4B&ku(n29Ƞo<<#7|/U4M Q)t`!K'^_|}#XkܼXP.lp;kbF ~w\~g9'l*駟ʫoKߥep.E/2o<JoS.D>cj߾}KfRgҚklQl7ZMv/t żqDɭcIX^x 1i*36 _BԵ0ͤ:] 5¤QGvnOxu5$)H+~yZ#ݽ#YԒҖ\qS'RMjrfXFsM'(F%ٔכPV\tt.ݒ~W1\XVx `.No$LȜ-V=hp*V$y6ckbd4~"pGjFDќ.WU6E/477ѼePјLbk4ODEMrmPmqqQ:h5fZ\1gCL탽i"._}w􂯍WpB^:LQz0RRY=C7@iZ|uzfaࡃOˎ/zIFmhʿR(CY]u#وXίo`k)/mʳ)mB\ߜTTLd)h Fnhh 7al~Cl2:ͫ3qpc\g%R6n~f)̀5Jm$67h"@'?W7#9<5ӊ<Q&߫ɟkq@xٷ2.dבэ\\4q$zv'W(܂& T?^%yQМ%Ab舑 ~s 5{c0+^X´JNJYA03TtXqB#SDl`@ :'UYyENX KJkn~),8D_9MvL,[Pć 5:Me΢({%R=FVf!\F3#6tNqq3"4R_H Xp@'g@u[\um|NRfWiKACY/mc}%$TetuE0F]7,<uu8Mߑh ե);=\PDn7VwGdžw|-׃k =]I|EϞnεd6g&СP7Mьgw[f Hvɗ_DTޣƴ{͈CrE2X >\@* MHʆf8d k&:F|n+i6j?@#yQlMJx?e|\: Sc$[iJtoK7I?72ȇ''쭌IًBa<%ūүVGN'w& *EJ؉\Y?ӷod, 54u0J6Οp#w#N'R5MPb}FZa 0 *QdD AbwH|KfH[2L|EP.d1 @֮zt"F)jl)`MLBjbDp9̴jC\ c,5k׈n%2`a+4_})m r( ]xܴ*ádHr.EcuzN(HV:)U2^ͩg@. D><<=ښvN,3"r>b4M7G294@+܌}i\Y}\\l5|"tB<K6hp&o3&5#m^Ԫh*jux?97=<=;Sr,ݿwW%;::<'˭w<yD3kB<=9-V:W/_L øG0,2vJ: 4Bߊggl}Tޜld{0eN .L'#@3MknY3@~I]d1ozxo0:+X9@OQbpLc> X@3FИ$d ˈ[+\4ź`'*VP5iv/`#J jft=ʘM_!e!F=t&u!fzOh0k" }Xu/Kx,nWŞi|Oc'ĵ1l6a?p1JtvRqa%Ӂb>9<'T9H%3|\?Cs7e#ڃQRޚOg!՛=YC%EsMbز#crf]&,ٓJΨ[(BpN؀ ő8F6=D5[}b(*I͔W`n,UwfFCW4rτk}\3(,0U!W#^ل]ʰzI b^QDs=SBJFsͦP=mPQHBfÅw]>Yt>;J&X*lFqhͽ KiÑ^ )MJB\wE dL 7xR>m,GKtØ.7QqؘW^g&VQ>p(|\9iQ 3bmJ[i"TdlBZIBd@#~p'l$G{7K=)_}|bװw:j%3D oHl d'T KZxs1v*m sH6NlٮhbFDb4>' Q Tɉe 4c|>8Ɛ6ó~x=y,QnQxq5t!@ 6~ cZy(0h1u0kP1P28IUhQ+ml!ws( ەZ7>gbvh站,=pu:eo_L|2 HUrxp&D@ְ7Y9tÇw>z93j9JXx]_hdwgz=@LJH>IEbllhRϔ'-_|,0=W\Cwv=}yyy!  nooqTkʨkhƆTv-o$PDHk60w1pFgKI\j)RAjjJ,2~V'}.y(рCsLG{ hpa`{AoMgE.c7AsȤV iOvD__ozQ3^׫ L7Fq.~#W9yp_o@7oۋsɖsq(*qomP]y,@U6 "8$~͢j Ic飁a~@gI"۵eͅ(j:n_5X.K,}Zof9aLEgV/8R mΈTqyh(Q]lj'J[22;˸EޭfGX/x8~1&jdm+&sJLVh x)d0މτsDM\q*[2TY!H6%]~,J1t1YwuTRcl˅,sY Wv=R 䶮$zNvo_z]+6j=vcy{J.ixE!dߧi/\ tmi6+oXpp}x`aK*}vy!<}J&h..4@BMxf&KhϤh1 Q^ ]L.)H ܃и.ɲH.0"Ǎ"^!% D)ՕdjYF;*2/O ÓŜM!&+L@liÛD"}Q=j![hln9NqV}{&E-*2k*ֹxJcN74*\,%0*Qt s4|vlLJuiyCQ"5ၬh˭2n`Lbۨ^ۛAZˣ>w4x7f߸-eLT~*kHZf1+O],ԭX8x TuDb`f\yX ^Ӽw۵N Dq>:6}zhuK|C#B j*h͡!!" +6QdW)5ʄx'O49&mܶZ(6rv~3w?.?r`ʼCy/*,Hٛ)λu{C)?Tt3* .RlM[X&0#bCӉS4'{ A6b$"km$! ΘX Df5N Qx7TYadJDiQ >o0f)"IeZx47U>yB ͤѱ?/hƣ41j9 >x̨R;Q^!>L'{6z)F\HU6`_Ű? *FCc0`x ho d(Mƪqs]ݐEFFVOyH`bwxZX+*.F%t BQP6ǥ>ZMΎS1|cP&k ր >"&:yPJyJI~כF&%,x#+RilXCc8 rYގ]f#!eM(w0?FMC}$|VG3%ZwVIJi,3f5$gݚZqKT>JE (AO+G`=C?mڑ[ZBph[D;wsث#aB?k*I;E0t6IXjěZ&ȬC;́ӛ8)׸r䖿鸒R[(*chFǦ)[,yR50Iqʸِ9}+_~)-Q0SڢV~hەn=|_FW{t340| :[Fͱ7mu6ި=0@&rpK -vxIO[rrtɱ4.V>+NuUmn˫+GOK6x[-UObE䰮]f.F)5Y;'.P1R$V̔Q)8qpL"հY@^ zFKR Б4k FK5*X O.̬(N0K,х7ED/hP . EL+ҩ5#OZ cLvl;h6@Ath&[Ehِx,;[[D{`T5g/( ֋T 곯./2[(ErdeSt=yVoK=|DY'VC >e>[ᖤw}鶻/>-eTN̈x\g|6L7+"n'thPo5s`ʍ裏E4 ZPi92;4b?h /QZ\|{I붼~(+P"4}Pt]_dQO[+AgJVu|<%DEk )h+ЬΡRX6* dc&A-/гK e6Iz*y6j*rY>;E*\sTY7{$Jg :t@Tq}rNyl.5,JёF%㛑DC}9EJIIVX*!MJBiBtfy %6t*Yqe QMitJ7 BE0|>P~s!fz.ckr<-wݴ4* ^3(ImWJRӚuo|^EyyDI¿ѕl:vhŜȹX8 8 Mh c5wn^lnsV+.1"zb4QMty誏j=Jgd p/~Ybz3EJ8b6_mjkryEwh(1zFʬXܑo+ͨH__\FLO@צݹwSRӘlĀ,TL˹uV5պ<%E?P9#6 <1\w. JɢCgd@Wa@W ]zXڤ"\ `qyyߑkm.h>D16\7$9 G'gCk IDATZ= ,_WoHp~O 8OrY6|Ӥ}J-6"cW_ȥ8?-IxX߾4vJ3*$jN c@(ʣMYwMHX:.?[ 4v䵲֬l^lvxϵʃHqdw=132DuqM4*TJ*W,!2ޡ|3YN-¹Fs d۪@P5êȵfK:ԬdFhܴi36z$i^y¢.6=p~#JCuJ vZ+blyp@e^֙_ASF\oDz*5hs5(3YkhtXݢ-}o4ѕˉ"]~'?ٙ|Q+R#a8Km}4L3-Ԑ% \?8ghZP4ZߓF.gg49bA\sjArFTrp)D05+Gߑ~wz_g2](Y`<9|zBg2\`LtqWӪ<|G#vM]g՗_Q(|y-+HЃq}˿+:_~\vJrHAo1&[rtDs?x!54xDtQ`m3.q+ 4qA@AMF=uɞD0])4*C4?gB4 K9y^,+kDpI.U!%(s"G1Y ru B5m`0|Cs_OI!,xodbEFDDx+jdԚ'tɉ6[st:M܌8@T˽Qd[[rpC|Gh4@GTMFwvD_};prXR}q(Jzdf1 ț-/_{D-rlhk( /ⰦQx\]_p2$ Eʆ<42P|sX&S]W `]6-hmɳWϥߑ}7Ӣ!=={+''G4SA#1Ť~/lƤި 1I7ܖ8z%i9Dbii1 MuxlAc\zAW&i & d8P*մfTqVcRU6J EM"#v)لUhkW{ҍzpuIH^VC 8.\"B`d fV,c"Qht%Su?5[(b:u✃ ;.YB@c8{f6Ћ%& viUNB;]Dh,R uM9\=}4>z-ƅ*сdXU*2_e{k1GҴlhٹT/zk ${۷d2֬si?XꤩÁ8#`:ڔ=Ў]_'u[ ck ^=U11i. nk$50 >9PFi#fSQ--$ D5@ODCG6U2 ,5Zj2-teY MԼZ߯Em8ڠZcm}"Ʒ&1ja^l8}VszX˝O;.U~*&<՟OM(fܽ{ gv{,SCm؛~M*E@ {FJ7ӡtЇ݆uiJ9a쎱)v!I1dI./VXu!R W? ?x4--A^~$r;eH뺒c3t;τbDJ?4v\\Iw^!F:^'%Yu]]ܣfY!ERƼ&0(RH6D度&# _aq#7|iR )O8e0f2k:/?Qgº壁.!1*hwXN"3wc"4l貵61+[EŤwNn4, 9ّ7oߊCĄ!@)P(Ʃ(ss5CN'R"j)) "љ76pI#)GJR%c~b7b*-TG4_sVhb5[r-bNC\9G$W%_A h(uvG:({c~,h8@Ҥٹ(8PkuŚcc>|*K[q{CkZ*?f>^-h`qD߇YAa)JS?N^GMQTRsN8QaZ!^Oz!y' R@&Lbr砸̺UOzmʨ"}oGVrY͝5X^̯W-Ad $4`$/d46 ^ѻIE gdnor#bb%a ko#)Mtǂ\zI\h Bb+*tzrݒ,`B^j,{CA+gυi]D[g廏[1hCH2҃ jԩ)+ _n!\ ͊"I3mI?MX\U̼&2PFj(AVhT$ gErס1+d,(R g̊ZB-qMҸ*Z@59hd͒ (&t \>' &󹬭nu㇏dwwy//?ݓ=i)^Mp^bN*`$VC3B6l!*ߕ6[X07ӂxttK`w_:.)_}5K#Uj'nt;,׾*iZdA~C9:<=)Ez:1)@B//D޾}CGȦ(ќxR^~#/^=@;.bQvvd-.(L[`0\A3WD4B~@P5Y+5(R5f9x*\$S6{±Ć@\̬ '>¯YxF3nM}(;ka=?{HMCJSjzXC4{\ 9=vkU%newgWe5H+C"u+iM2_4á׮ 3Z6v\+EH֧D\y~d|#mzQ|oƊF13eAfAEj GwX3wALJ/`EfjCZ6KDS=ٽӄx*ia 68o$%Ez`HMw7ZF}Um.ČxbKY`0,|eg*{?sZ(}C6J` ڤwJ)K>hZ:KmP9FrAPaFkG/Kͻ'aExz|i{BأF/nV"/+Q\u%.G$"ƦAU)ݳ +{wUǗx_?)ɮ((6vQ6x*j>N{;o^{;LX>'ȩچ4 )4D%QӼbNT޷Z3%ANM,j^_s4p0WȠt]rnBlq;7Fxo̴Aw Ӧsx*d@ ˼T$/D.uj V"+Vw4bS}ْZ@~F=~yZj({y%Gsm`Mif#K @͖=f?װ&sSlk:m(N[[}"O@tM6jVC./?Z JaM `ƻ䎨"TмX8N(E񙹺6DSȏ'Ct-f*y,q-&6[ӯ_Dcoıq%OW/l$GW3(@ W\]3fggWo-Y-,B?d!  9={.9ݝ==n(Օ #/ٗ$-[]Ijn-憢x{LnFS4uyt}gF N(Q;c\IG9WGrzzE<h۳Su<y:=űFm , ;3Dm@77Dhd@hZLfeJ%%m|+r]g"m-#-:FD /sR?{jY.DGSjϗ3MǒDy`h=h XC4zYsOR+iիSZ˩jqUkh3/'idcq•{lԌTyjE/Լ=Td\NKӣDݛAMW%GCMkRގ~B>JF;tsƦ s`N4eps-74G{lPLn֖ob(Lydl!{r1$jF$1epq)v_>zX]yꉌ7fZb=7/IRTe<ɝoL7 X4Mho-F"|&:M0C{5I\ibRn41Cf$7$mhb`h ZNso|j#̐f5ʌׯ9S}-#Aи~W|)Gl,4/뿗-/`P=|&M hx<ѰQ15pMJEM~9t|ݨ/iʛ7r}>m篹Va>`K 6hРkNOC'ܯ)£z{8lS +0KGcխiE"JXU&@IX.gC5h.a- qhK58imYtoITJo 4[AE9hX2$J9:'݈2_94Ky}%X:M)JúNȠyF9@e L tb.ا21Bk$NJ]1qxU##VRFq/Nh0*iwy̮+,K4h9N{mP/R RүFvru32ʟC]wA GW|v,_]uk1?A3i֌؞\pėB7|(_}9<2mHD2QZʙ\9vHW Qt+?$(ޑ2f0B|3gz+V=I٢.믎(-ր҈XΚkm4^Fj)̂W`ߣ;ğ1h^|>Z㕺ԗc6E0$S R\웒mG^ʀ|FVZ|c:N ]pиƆh٫~Q+UrI8}!p.;FUF#OvA?S! v)P<՚_7EPK辰<ێ02;MBod%ʼ"΀ gD-6* RZ=(qT&,΋z:]yVfןa/A( ("J9㯠VOʘ\ لީ&"ҤFHW?0:ljVc8aQEZ[Fx<\ߴM9\H'MVU$ܻr~u!W[Fr11b&׺¼ԇ~Wj۞y2{bM9hL~_*|4rIQS-+QDý 6M׌5T6Qz4VNW(ġs%mFd@i?lрk65ðfA:gg9ȹF,w w]zc˱D yae1M?yun pO-.e^fbMƁ0E酶z^;4IJ. GTWS)H u0B{+&dvBI(6'UQwah-9h_=5`3F3:_z%'ɯ~/r]ldd(T"7 ig{weِj%?Z/.I_Ű鋧2ڬ k(Ag FZj! "#Yd@i">\Kx}4/^d2A8>{.Bo]#ytY/_?XrDEI(%ͪb^(pϟ M(택|տʓgd6h;,ꑵ J2ch/_낾ڇ5Vrf<s=O7_s9>=o?'''9st&H-`aS = Aj԰WCg(!ъBJXP=G`#4ؠl?ivA3F M[}4kV78~x`#94k fp5h+N{KR~:RA ͊ & vOHՇAMNj*axkN{:;7Sq-󿖧? W-s-USJ҇" wtF2(QM)[ he`Ph^;F.}FD) `rHqk9ݛR68C҆+6E|U.x|H̤B6ȓ]m|c4Ky",JcK">h7Q8$2 GYɣV'[^oS.PUoZSaRzV{ȭByat{xS+ߘ8C}Nj} n}%5lORU1͡7k0|nKhF RKȤ@L%G -MsxGuWFF[_9ӂVf2䂬*ٛ $DuC]zW|@قCQƊL4rݚ)|[YQ=U~?L)NY5֝/\.|V5$?4Q_3Ib )sus?o7tOFr YL;W*o`bHM1{ _/Tch6&#d!ߓ@AVgzB}J΃!Ơ)"Kꬡ`HlG?o?ɳ߃ @ p&Q6i#)F9vUzMyH(#QB'*@I[2T/UϾ<Rc*C6p9i6mJgFFs+2:sZHI{=mUԸxM@ZPR y_iJnbD{D6 QVwMy|-]q+I0WN/uL=::bkNt"+Y3׳5Uga @^i,"ЅqB`-6#vœȧ58b@iF0%uk֨4d|mWS3'6G#E"86O3H;h zlEXIfiӈiYUr~N q$sLs5m 2OGohgWTɺ(_?霚Pg˙|CdCFF- _04P*}0rJF*2޲EEa~s&'77r3~'Wd<KEβGGg-Yrq(z]5;BU&G_pvyJb%WU+.ו63 Bk*4{N}@@(= Wpuƾ$crhz& ]8_B 5(jHb _hsCspoJ^k64iƸHI=e\{4p3z(ꖼ"Tc0:⳸HYi6 hp-VruJ:ޣʘY,%[ &)j2CeSQ!:lHe4{QҐMՔ#/Kysџ<^rpЍ'&;YS˫&NXVl5~}Y =+J+[0͸{Mb`lJwa×gI}Z`$`%tMR:?{Jkg+z>=ƥT2@-3ҏ6Ce(Fsr!Eb%*͒fd3y5?E3Z$`b%ڜj;y f|*z!OULa6JȞF*+V?ɕO>>& 5/<3-3~6EpϖJߤi1/Chdٴ9C7f6'`nFY4h`a&v=+}U4OFa Pw.ysOIS{5w`T I|A6lbE_#ȣ_Ⱥ8N\C)\KfHZ}Iw||H+h("X [д>FmwN]-P]57^+fkWUS.njusH^{ i(ڷ.2yv.//fr=VwjfKr$wN#r;;R5:rx{|RxoP4kBA L?_nϪNը2ooF:p#iuM7kF 5)NC{4\@`|K2RzC@r0A5c2 @{5lꂹ[yve .JUӳSE7,""%i6pd`(/_Ǐ?溌(EC |l*T(?cS[ƕ9g,_LG#K8y҄%dyzm/Ŋ{j0 FT rgi^*˟ҀGkgXy4n Mp^w $V9Na.v2 (B&tr-iwE=FmQ(M 8j;qAO z3|Χl2T롁fqTη2K ~&Vnl~&x$Ȧ7!p!q75%=U݌Lu;$DLFV. >ղ@ [M@*7 I/?WE[mCɊ$!+ 9epaި.=Bu]f6h}/< Gpʸ E E %vJUY"Ę}__eYobR`EYh%BN,@n(1V0vB t[螯`J@ }.M| 5*/6*l!,#R#6 n ~@(@F$csn76s2}$8.'sѧ?t]ͦAQO@ _$'qt#sE|uh*r<ܕ[ªqolBqӰ<7ܖĦ['JHԾSc9,pV ÄxL)e1G|"`l45TP^FTrJͪb*"ǒ@gDLfeJihqbA1EIի߯Α08*z +s9TINH5h# P}Vt@'%o4[M6>?;\ЌJZa)VIk D ca8*l 3R9A ~G_Et<y7ȲZ(_HpPpߕ'nR[ Nk +l*>)0T \FDY\@#>oM, O%d^#;C6z0퉢,t{w$k$郎eH2Ě@ \xh"ʅ ;w͙ЉĒi.AſūgZωݻt;Riu{rvq(2`ӏ" tFkms0 l )p]ܔwOe)X XǑ h!yTgc.hNrš I@r7" 0LC^k ڝra( C(rRd/ÍKeQ53ܖT pVq Qtb0mBs$=> Z-wd5RbM9e&Kk )J5N+e7<3}bQ\چ}z'[ozKM`D|٠`g:Ď`fkQ@F5ptϚU=Ōᓡ&u؆h-NOe>_d6hVcfYH9-&%BG3]O'_-4e6h([h^5tPX6DL+0`(|$IUP|ΖN)==0< .9,7,8u"bSNSXi}Qb1H%);]JەX])k6:d)iK ޾>}KH4l{46γD& [!IjWcGlaݕwozs062]Jӕ<!NH{;ݷ߰f&nmnx?M(sggͷDA'w.31{RnR3 5-xgDa6"S(۠[IgÇ\HQ@;,Iwx Q;PbMZtw0A+߰1ɚ#`q.l@J|MF|/YuES3j֛[|HKnL/ޠVA[dOvd8d83ȡNl(Π{2 t>~#:QIW0^G khud*A)hMKATNz*_/ӧlD\ksWw؇63SAO'dñUl+EbaPcsQhB&YJ0jI{mdryK%0ͤU=l6⨑cCZXuD6kJH1֋s+k'6ЈnѥpЄ2^meY2dvֹ:ů`iHi^[hdP3 k¿גJ CsYC5V~"9K `弹YP|Pw:$X}ho~`#DyԦ_5њo3:BPݎ0Ac ϓZE_0R"ʪ~LfB/5WX. VJ)(X<@j) l[Ig FS&:oVUmZ굛[9~s-uH@u5q4ַP㟪ŠXUKIkY[wrquE'\?7teG[ t| Ooߨz]peDVp Hc![CSb Ne_sw8 e ͕fE3`/IY,zm ((aI45^48~s7hnӱ?>jh$5q T(x1ͩ E*"fkiJ:cnd;H}MS3#(AC㤴 SͬV ZDь(s+6HV+>_s-ED ӣcYLgbMWjC'aI?:ICQ4AYYhn]x>rxnoo|;ME ?cso~TvwKщyAUzDc9&1ؠJƓl|p/5sr4q4\Gl\K"{j䧟\!3a 3',fh|m2J`gR^]\{>+P-ݻ2V,SWnGktmftE ' @qߏdAkͷ~#-а}܌h!yƭyE<Бn7pВDJ;롿;fRQN]!r-kce+Xt[Oh|AƊFZ(@t} q40ݥLR>T>]]]krU]>om(r}Rw童L&#ijt1ý&:cwxS/W7Bp /s^h`rUr=3!Ch m'K ڌ::9#Gw_iioJk/pfL"96)(ʖA=jGY D]+.¢殬+ސJ պ<п#e.DH)sC "sCǞ wmgf͝>bFC4lfaVKNktO.oheŀ{2L Y5vwv6W4\D/mvz|>iJ,q}xp7dT\jh[QsF ?Dνv+uOr+Lbr:˫ >Y^i4fʣП$q]?|e\7*#{RʫUaF,7Wp1m^H9b!vwAg[]Ld-<ޟdK\mjrhZrVrѦ2x(`};٣^F9m@ vmM9EVn#AuiھW[`sލio6V M=59Z|?FX <S33:^A3גim5}sN{n.4z 3dJ94K^CiքF`4#I@'/x]-]n>v o}fO?W"sH>}x_(jm[ZxUIa4dۧ}"fHw |Dp /d@0RY.(8%5@B~a^F@Jjl~7ZxXh!Ƥ mzDqw6]KQhFZ\1B)Erl"[&f[Ύ04Afd4meҏ#yx/|7\/9u;j]NR bɅ6 Ft}6\cj{C"g@<_%K Y.F|zI\[4s0GE?iߓofcwgHZۛ H149]B={0[.WJgO1_/Wstߋ"C_dͣinY|ttHdZmO2*?5F#F1^4RN4Q0E84i)I3>B0J:#6kCBN.o ~Nkm)K6Р;S]P %ggl֤Zp]*/\ X^G'{G2=9={ FB6R yZz׺ɔZ?,QLV@ي~$n.rdMI4;ut8+6R {2Ï>D.n3OԢO{1aLA]ghȺݦ^H]pG{\M]m:rm*wVx4!{~ΨÐȸ g>X&zI Daw"|nų0N0>,V  ^z0Csro/K؋_|9:N QO)u66vz:蹣 6tŮ;nǑwNuuΪl!4:NӉZr[V5Shh*DDNlWio>nz"_vFi(@FF|$I)bȣoe9(9*7|AzW6p8:3 '17hX5Qsӿ+k!lZW.hA6*3s0ފagf&EYx}x$nԃRWp7x!e[G;2o&EAg3^agryo!Zaeo9qȞ-B[XSL|PD Wa]5e:63*]NYp S$u tpbZO-ϸH2p@W,]jhq "aM':JiN@Nlz@"ʹ6!"I(c3Qt:Eb60VOlry ݕNNSt;?t|)X7BXɗ_ANAC)@b3Uo2f!zMwz^_}KXۓXްjdABH):rv<{DO[y! r5%5PUՔuіp(T!ZNOd oWl\Az;l јܑ7oϙ=H E'~&o޾Ky\{'Q zDN}"&3gOa"Gw2NĀkt>RU35u#||Q^9nH%uvtXLA F ~RKWV'}"e4xuED܂Iz rsIӎAOYiEJ8 DYT-1k"F18-EbGӽѓ}?cSHk˛2fg_n/9v ab6aCT\Q,uٹzg9r4c u4'VQK3D0aRYGFtoz"b""~Ȗ w {CِNeVb@ق WRA#֘}F; YBX4nd­?p9QT:?4jAhU \WC\ kڠjK-siCEs!f8Ӥ5Ko*C?A%6rޠjKb\|'<9"vf9 fXk3Y9J-nqXu heGfTG!F|1@ݕhqcS^,3U QxY4d;aF_}cޝ6Ip3VQUԚpFeb9?~gqK& k#~ 8u1t}:tYH5Z_$q䝥 zDEMdwyAмw4ͨQr!ڑ TQ54ҴY`njmR{-뿣k]FSP5:cTzS_-G s#- ]dy'Y򑈢7Hayf9JI1MLȲP){R|,_146jCgS?A36ޢr`c}ZmNeD|{N:/8F* N 3iCŌTs'N9WFeLg [YG\~E wIZl^Іh#|ڤW5FC3X+IvGHrz*js5,f]5k[% RU HJ<ң ѐhp))Eb1 4uLP,"\}naH+9G'҇T"!3Z׋"c\^^޾z{!iM%z0WO {5U竩,Tqo!YbHTV[yNAK)˅R66(U7sN<(JOGt2μ\L[lJc3Dw6e&w|* F֓;lZŔz>xF7o{}Vq=!:9<| IDATKD\͹܎Fbt\\$Iz#âO>X={ν{rttB'x }AD>2xm^i]aK'57*tL;CiⒶ Zx+WU(ht۳26|be-muA 9ba5[,z& @4wOOF%t`sנ*sڌi6Z2ǏC iJ3gkMiʅ: &|/rJ {ig8OCGl3趼n{)-SX,ppwP٪l*E'ӣnd96nKjdžX:6k.6kdzQQ]G[7VPl VSEŜ}o̝_7Б;/˖Qj=2k v`MiÕ~aTHT*YS_<#h+eA']^?ֈ:_Z6!wFUޣ8C@6=ki ?Π8Q6WESE}# gO(ɕRj w.[4mgom[/B,*uAoCYJciOIRIxm]GDV8n,S'S&X̀Qp1'ygQ80-t}72yQzQZZ8\4dܼ_h^_LE!LJ@C=/ƦOS1䋅MI#̝5^͚-J%gjăCw{U7@dkAC#CBʝZH|l2>j.Ōۛ-w4 nFv2O ͭ">JjkP4&T\֬:ʍU$h:fUyE;Di`܄HS hbEcIRJ bI+e PkH, bY+:zv-Lݖ\f~'2Z$+EKiz%0XU*gBt7kX,&1BG*OЃJ$fnyY)\Ҋ Y6֍%#"i1JC~"'Y@^f %e;mZ'%ܔр8+F /C:a?8:jEzSĸb3_$]gkw^k4d^o~ҙON7~#F򛯿h]bn$m|!޿&sh*ta^C Krv|su2;j!H 9d4)5* b)U3~:rD|[Qޕ8-kuؐi4&+VT yԍPXWkyw h^bȺ(fLwU1P4*64h>k =-Lz;URAC2h`GܻVfJ'A3tEH cILX3@_ 4͂*̵˲=eI"F=b3ydK]"K̤ب^k8ngnϑyFfX7qh!Qy rdk PhtD##(2IS{h]ʖ6)nlXlqQΕ6{96\]m>M1͠dJJb`3Ħ0Cf)]oiL1Jx6Gx1)},hqYWoً_iw8 ۠5Z[|.Ima?M{)8VәR`I;.,56ǵsӊDfez"*JpjbWLO+5yBg4|*Eh:] ẊCfC3iLI NǶdk(F[CFC Q\Cϓ> hDiR1!B\ٔlV=6e$*&dpzނlL +Rpa(^@- ߇(m6ikyYXr<חWRW+J{+wR^]2/XnǷ4|']9ߓtYLy%pz>3Ҧ47 ~#kɚ@te08 BBoEeSTnC4tbt>h@Y;<dB.nd1V{G;rv|{'vv(bd &YF+rh38-9݆W+IրR^~=te*81ͿwvZb6 ih D4ц G<+"ʊ{ [@yQDJ+I6[{2$Tk+˄IY`Gc=G [Q䉧5X{$_qTdWNxKP|OCH6IMUX!/A*7eGURr_雿4wa>ƞlDvBwwXo &P(:>cdF̡-O?k-|Mngwe|{cTΖst"G|$_>^8;Dz͂qrѥS?8lCpx kbD<"?Z{)YJ㉴1vTTXz&{%mEm08=ũ5&?7d[ ~2W6#h=I|8ܓ…tc5OY7۬Ҡ-C7Y99W.nZB!3Rp(wZarJmHBuD+-^RxŦ45RIBhj)"ERa 78 >~:U:B ?ݷ:LQcbĩ99+LC ҸA*ik0efE MQ? plTȢO|NOۧOjFMA'xʇgh8av1 0|!DL$U$V ̂.ޮE ldJ]bv{:\d>[>Vh^UXŤMcZ9 0*e>E7gãS9?wR ـP3_H˥f@EgM]-- EhӦRFܿ@X`hZsٔ G%Ī1S<Cӿ٨nfd.⠌b(!֓SH[ZV wW jM;E#ƣE[N- d 4r>%=5{EMcUXB?ltu`: 3 cĒ"]6qn@ϲV2u%G29H >ە(~%Zs8)ExDF$IK!˽b⎟Pp_x_i"RY"3B9AڠiQ#ЁN=R6+-޺mZ9lLBYA`v0w-.ܙ3s$;2(:RO뀢l9 Y> H݂.aޛ&RÈNH'vf2\]5F "-z^V6Dg-5FB:.mW-r1mۮ|)bZӺYܐ6rW}hzU6W9>#e*sTFfn= ^b~5A=Eg3ؔ!50^*[H:KA鵥L-b>tg'\BYTeaIh5zFn}=3IoKҜދo}^*ɩxe0 o:dZ5!N{]j_VzxaZ&=J5Kb2%? pMZ׈Rs0&fQb1=®gcRK,OkX)u\[# .4j${ԛC"?y R1]㪬t5QAZ󘦄՗݆/&ԇً@8e8$@T\pdW^r\7[]#6K⺹"fF #0Bu6l7҂6|6-E 12R օtL3/쏈pw.V5so h&ѐKEI>R\bΙ, 9PN>x#? y]'cfܴkT׭I?<%kg&$FpЗbU3B p#cxG9q1 t&ֆ9O؛79[WN@~4BK[2|2hGr=mʼn<<>薇]Y iAK*"iT6G8tQƨ.-'S%3-J2G"jMӦf*Y].ajH7][W(ƛG nEilрaЋMU(PxhYd2C!,+],dY,q I9)r\촻70{2A, ih;]&lTɤHM%nO졬䵸)OYbM&Y1,HoXf/yK"hDaݩfr%j='-HZE Y/ZSWWk;;r|r̈ׯ_'i"_K7?l|ASW_)/^O>%;GKhKl)Cl?h⚡36EF) &򉧶9iug7 hlبB /< %7U{q!VZsqq&du@)ZUƣE gp-9:ڷ;Sfݘ(z}M}R./ZchƲ?L,-ނ ft-]?~,G?9SaIo@>|\Nr(WҖ6OF$.lk7N^?׹s QohD%S@7EoVRRZ#64F4يN랖ݳ:LW6s潂曒^ƴ655N<pFLfPd/4^UUEk!UDwPq>qe~E9Ifv+bϊ>`裔~DuQ\. CI++.͝.<5m^f۩!*WF/2q";zjc)41߃'_]qfW_.ܖ2Ϻ'nii[=(dF%YGj F8JT޳7RqԚW>O=`HeQn5qhY۵M8d#dqOT|#O6Ⱥ:}!C9]y7fu[Qcw~jFJFAy6#=+4pyÚ`!aVգ!R_1^#_?xjzh 'ZZZTu]UmVRVhλ(;c7h֭$UR72P2qH y]& 'S9\3s?="+NpFfW;cջn^/")d`o _Ѱ JxCDUކ>9_.PUkF41by`)x+&hzEؿ|+ՄTR5mz޺IwVkF۰8|0i*dJIͲS6{ck2Gݮ^[\=jtirw+7l0QݮDYD1n[*6r6<s'h{lµç i>(wJ)D5⦲2i c Έ==3r'#yf&$ IDAT-{yt3[]9:>|&{wJոksg躓e(WsHWZ@뜃7%ľ'[ksi?IpJ{3Oc79V({AEX Ȑ{j59|fSvAɵ/%d@͍G OPŸ&xx>[nMp8!BZ9q'뉯aPbns G# I@t.qLzXa-]ɓ'9F"zt@G ý,]bI.;SP&WtޟeM3yi{GeN w2.s#;tXH4e`18P'2]:AYjf^aS<00xcΣA,)b987FBЋWHƊY:JATNd[2PDӔh_8!ԏhvOdbrYw(ܗ_+%^M+zf3lP9 13S,7=?kzKݡRmd>Onv-=xvFL|yy]_ehnqz9*\\Dxs.@D5]U"d|[/<5g"{1HOҭ5դAó] @vi$H˞gcN5?Ӻm^/}࢔Y7&iPb7(-dMpꕡUQV%5)' T-̴Y +;rC*]Lv E!xRvtF3=lH}{]\L}sZiPâ }\H@+S-taTNNzS;F Sn MeFAUnDp0e3a5Vx7υ6'| ɋMW1])̻#SRGJfDE蟝c3EڹHWkF9ƛMnW6 hԓ$hatc3qfK~sslo7˙밙$xt&E*|h7#)ܼkqC$>mU=8O hrY[6m Ͱ io"O財sIDV-B$![-{8(5T{球_ODjb$Z)t\_] rAD =sIiBDlhEnDc6ݔg@C| hVЊNW-LGCQ$.y޼JXm5"EluTj*}iPM1=ofhia2zkmIU EYem$yEkXt\[ە  qM/'쳟62FdFkh+tqh:Èu>Mx:@Ƞ~b*ן"}}Z"Irzv& p kyE ^zfszr*k0:|d{us#3O IZ(l.HM`DAjl-b,28}nP9~_!MG*@e;Cb N#4Po\g 4r"ohܗ%/Fl")b'd}pR? aE3z18v 4"ոT$jhAr46E !}LVj..3 n)u1˔.(\|*ՂfdX^Az.//^O1E!05K4^|3 7PPjϗ QM *TqNVžG3isٮ.>&3b$n1HQQ"9vTtVXYb}W4 2W)g#ůQ<PdѻLAP W䔿toYf3=֋ Om/dP{bWR>3suYڎ:톌<FݙSExA˦se6k}њAʆѥ]}\]VSl@_m-]M:dv5nn0bx^~8 }\ZPw]t_C Ms擰G!vZp޽W@L^Ȱͳݔ&JQ>s۷t_Q #p`pɛ&s9'iym%4E䌋B-z/Io?>ߺo-E@D=S+F79]lϪDlWӒ%mMeFNsKtV/24,):7? ,~godm9)fVbaB'MiUUl-_,SCϴPwE9C9,;CoXqf6+컛qxWSkհ ͡~PRL*rQO Ed'"+oyln7r~~62x=w*X zJ,\rڦX5 $89o^bxx>.n]B7RE% 6av4_"Ȍ"jBUs#,kp5Zt@A'BW.hq4`'`\(L3Ar;KY4,wQDOZ v$FAt$5]Wbd{& + \Ŷ& R6Dz$7^^||S9D҄k ƣdty!"Qp0R)E0! >_F%8>H*=>#xRO48[l N_P-5*'G9oۢeN{=Ao'zϟL&8;/S63lPqtdzPzt@{o_^+6*(,t%cYxjQn床Syl"Rd;qkf&|oF'uILP(w>y.s[k:׮U*|,RC"6zEu|oLp/^_c0Id*p{xclndf7~l=}iNQloR;˛܍'Ϧ7󳧒m7q|x"mjHfq!_4lHpL̎hq>eW*xr22xޙ }0&3^f|w#FOjNϢdlIh4o4QV@FTTz] T^ubїgxíƛx'^iSʷ>F_ rF+ݔMCk9[C[l2g yoFDPLJs6_ YiYM;z&2DՆLuvPqm^lR K A=Z M \\I6B!P٬.d5=&Q, iVW7Ȇ!h ah(UkҺS@fm"2Jȏ}Jll*;M:2ꋚ8؏訐-E|(k;]G)(^`E4w Mq9r6 mjטߜm1KܑvZד)s1jvIg1jxhHK$_({R'(F[T*nl4xUz'@ c4Ft_x$,Qhѧ@D Sۍcmk l`x :OޮZC^^˯1^cKݽWh_/ eQk|Gh7;8 X[#BE˚}wu}l&  H6 Zi$ a=Yܓ= R:77M}nONfrgڝT5)ƕ $HkqD3fL=v>f5SVws߉)nn&UT[=\^|~{ܯ׽5p;5&[_Ю4W1/;X+yVLϧ#ō#NǤߑ%s|xx&#>/yzjjX˯{64q 76 T`5n*T joTE'l GAdqE,VkEUh^O'O½jmإ+ j1vgh2 !/urj5]^]^7/&ISә^NZ$+.BoxwyK%5ҕƺfVYT$f=Tγ]X;ed kRI3-g1i~pYY[,Mwz}ey] 3GbilxATxW2װ6zwC``E˘ ak~w(i<{0qbӢOr˝WTkϒ,q53("qmC ]p5X,b*r4CvlJfѕV . ZVkgejQ3ds Z9n`Bp# ̴ݠFFUqcoz`4PV3[smL PNh?ӆjhBw  D.Pբ l94q%5MJ5/rԮN3*ҽLBJ}hfcq_L9Oni 4'&ٷDELv͚2=-(/  R,E.pugxkkW&=d<뭘T[e͓YY]斆:r&y䖦DzdC)rZ#Y*KlKl8}F_nZyed 0'Mg}y sEʭ\b)F7/.bl3T(4{xiI2&RgF4Ό WЎH&@f&Q%5js7 }Q B܍bD@ޘtN@~HɵRV˽B⨪h? fǯd ꪼ>5Daz1D 嚶 nE4fF凘32 j*YCdkEݩs?w =~W<MqxtA%wDxopzz.5\]TFRDT aߕƃT^-hI+zl]C;ɩLg8?餃a)Wq-u%U?};ZOtքc.xC UEuӼӪV܇}9Gti]60g1WX2xdqgZp,t{Bͯ?A^vO?ƣZцԪ_фP>Cf}z3\_l|9 Fd8Oc #K]?tMS`!71vZUP+apq|#b105)=?6Kq{{)~3\\}_> ˵UwDG"h# a0L0pK\}z5F-wUhuv8 k Ӵw>!Ο|ޙ0 nN}7#N1\ [P$]-iʌ 4ON6&v4k4R)ARR/6kY e1J\ А٤?~d$F\~ p{=P 紴ڭ=Ԫ 69#+RLE0*BefĸoEe'Gg7hpA'OL:Wi =C4V;0B!j)X4/r7y]ɋcWujT+iu\>{EwN5Kwd k\.q;5e_yq?x^ierMṶyH"_-Zn}\W9ou22?^?cP[;teJe 6ppCL>B/?q8ŞwUp/G E]SFx9SJ3N*&კ~HVԙ#ٟ.NN+4I JZpu̾Fo5 k*UtnygY昄֭t;'ogd.KBK؁NޯoO jR8,rP<2Ifn*Sļ)+Vl\8CA9Y4$r8*(QT6w6x@lܷJ~Iûa?w?HlyX$)&kWϱwx`,w7IO%RdL݉۬D)q97t456J:UCO@tw,x)O2A46mx9(+Hpx5>Z+ͣ 'pyX_^_Vz%I'爪MA'Ǹ:4?OԨ}^SiIvnxҴ"Ѩr xUd.90JU>Vmi9[]TkmT6Ezx;:C޽SAY Ζs4:i?DՒu[9Fáy=:{fOtvnZ%:ݞҹ,R;GE<A`XK:յ8r]1s\*gQVI_:%J oFQlh i~o=t9&ӕ1Hh|SL+vWA2śl<ǧÃ' WK-ÚmHB[m %sfe,-mS+ ?7uR?F(_%V|yd+7Q!utḱEK7Jjha]Jn9yVCS6BCveSܾl0B/PLcd:@%e^e"̓d7ѷ(?(=U.gr"mӁnDBJCZbث3ʬgĩRKllhJ o4Fm+ÝI:tUPumpI-mV0d5nJmsn*f>4Q*]=o-o-4y|֨ѢI=Cwu/Ch k|,֍R*,4DU\G޼0z tǭMcEqjZR ,o[$a6c W";]*2lJc.?OXz5_hAXg7$ K )uּ. XR4 X/( iK-CmWk}-I&^`}M5P'~zW[iRX@dFd .^Wk!>{$TrGm3x ^$ո#&hWOoSNcB PhtjJjRbŅhI!H}| C(Z3`ȝ[^HB Fש<{ "{4 >pf -8N-V1]\ 1:6nozƳv>.gwxv,nm"[0>/";v ?>4KC ƨVMom %y xt;G.PSRTYUOh1ybz'$?*py#0#IpzG888??|}{r_a|"4]j_NdpPW)_+L4MYDZ%%UAטC5^u $9>Z9jTRiHشPTVXLvZ\`cSZ;D j㸃 ֛Fj6NĤ׮B褭z! +ܿ@/ 6A`t{0 Խn_ *N`\zHKKʃ*`||%Zޙ A|c^# |A%)!LٴCgD19> 'Bmb`H:Y &VUQ52Y| ㅨ#_R=ՠ|j-sMIS>E0u@4w6]ړs"=i \LQXщm&hl!1_l PΓ$Miy(ZldSy7&y?Cb/OlN-$>'Jq{Vu)}fV/q#+\Ȍ^ߴ0 Ɠ_jbog9'^ ⪥]Z>4ΞNdYS}famA1@ێn,P̐TlD n ( $3P-PEGu|X_9eWJUV"%.Hlr r4S\Iui}K)9LE f(xkR/o jBo25vޟk s:d,d^4yuC<&=:567Vx9ٽF=w?\X^ќ]t{A.ѻșLLJj]/xiź/uH箑"0OPgom6X4,l7jD#oԺGioV4XmyIvWG wa3OR騿(*f2qv1wׁ2J-ST9HXlQ#2&JZ1 oS| ^CwpGh.-^QG\xݍK/,O?K c>_VhThidv߄s ͎zx1L2)NH]gcY/5Tz8MШ6*VjB:uGlffz5 D+wE)<PQsXd5OD aP|: :c A@p(cOwPEwT@ <jJDc3L!<+PT"l#)pMkՓ8lⷉd si%J3Wڇh7ڸݍT ^+`tlfJ֕oHg2~ݛ@(ߤ==ϟc>G^ l! 'AUHf=%w:dJ+M l`Ѩ &Ci'pxKOI *ZXjꂞ+L$ qt>?"z=AJw<ˋ hVGO}\\(?ǛHv+r{5bCɡŧ|*rCrxw#LJRАvY7r8F[6)\m̔ee& _'''U>5f iYȔ7wCTl$0})y!?`~%odͬqGTd$ZҐ[.xU+(LЪq%Rc ]NSvCYgVEiQGO0{Ou1NC@{7j1kws}S܍8Ltj8>~"{C^Ec!_dhIy)5f6:ؐ`UWN.Yi BC,,ŋL{En() †JŜ.TRK0MVn["8ؔ{10o!n88ܗ Y#~0А {u.dpx$fpҰZTƒ{tz8{B2\\]Y85RIsF߅46V1}w $)0=,VCRs"Ҿ_(ZVEq^6}E]8I*BXs{EZdN4;59qh# h`ZiQ,%};$<'kp:N=Xd9煎ez65C%&^ sAe=\kVZj@Cw%* 9XSߛZ ,oxpu5[Ƽ;ozgۍ Qdl֦3Ÿ `E3)+LȠU T؀w t%*vr]Krn,ߙKQbYΜsq.c'\yf-LCZt |}kWG9MӑPrJ" Q%,-'ŴF0*@XE¶W.4:gt`F`Q:ԭV:tPLO q׽6_q ʱx *)ęn=tq臨s)4w?&;ŘoVxxxO i`1"kA9SoHdt YG6[\5Iacө؄gh!*Bppp˛+u$Dk!Z%%#\\\ɔ4ij/f&ϕ''O)Q,i¦օk-4GjrHu<|s# LޗqΈ+Cε<MT ( ,mܻNޑ TXf`=#m0Ԫg2c!RjLvI\͓Q1I "^ib)H %Ntg`9;ymi"=jqWJ`\tXkxi66 E˲}9e [*<>Q]h & ΕSَ6 /u:;t+O{EwM+k%3fr69Kp"&ę0V_߁'g06i3]8/ct0BXK.?3-s:+ i^6U14 æI*YJ5GAE]\zt蓾EgF9Q;ph}i[?!7L}ՕYic$5\>2pԭ()mݪѽߚ؊Hp-)~`"w}[?/ń0o\1O&i1 W$+aE" ",fW2DᑠˇѨa1_a/l2\ڣc>opy6G|GGy -q;8H`< +ƹ&bFĿDєžħO`2 ݔ4L&MaL%*$I2֊1}Dĥ#5̕ ,Әk.+ZmƩE,D ż|j@faq>p$&V Ց?a-^buD=ܻ/tFsɅ8:y a-&zulghThhljG ujmy^n/_cXsA3Vdө\*eVօ ݨ`1c-L$AXiF7Ҁg\X2qT FE[fG6hfZnzE.6ۅ:J\ArJ*O}&O"56S="Q*wRD՚ e(%I*M^Ri gPH c(A+M66sehQBu Z#4i抚@ ^M_ s.zԳs`)2X=/+d~Qg;MIklKӡ3D\Və^/~ Wdž=8r ,cL!kD3,W,~7v;iɳiuŦ}/\cdTSfb fc9{HCj="X iZGa~>/N _}◻߼2ٹK(ѱg|4 $rpm}I$oх˕l${ے2vŶ/Ӆo./E{:>R("M/CO0nx>7i'5ܘ2Edf3ՐFtJsZ#PDb[sT͓|?8 lS3rټBiT<AAd΋:YÜN ԥFaQT3"]CYWt b6|t*^\^ο]m5R8+ZfZ.jk裪&= #,nbJ4rx7DJ%& f!j{NtZ 념FIsFmU(UMJpsqj);N`4[=;9$P >G~ h*͏hFM)uUtf^ pf"ANN7zh:2G"r_gOB${H3gBs†K˗X]m64)4k yKL.tI|#N4!R9_ $j yb?B=<<z"Ӣ?אI=7[#hwC .z pN%/R,pC9'Xh6_l ^2E Coh7O EHNb7K:Fwjd({9ʀF-2m.zV38BElu92X!mH(PE= ˍ6 }n]1-n' tqs1MFz2ԦKǩu T=(>z(xTtM1jXF9J+4-zN[^)} xfG?F)7G({JO"P`HW@+Z&mt&Ɖ u}lkNojsV4;}l:s0k\=GqUgͷ, pَ!2P?{~s mZAk{UK$C?? DsHS)ܐbjik f8l*bDTHV¹2b!xw-5*JR>h@޹ 6kffk`M%4$*Ej µ%Vj  &V8ݣc7?1f~% c[xr~__^5&͛ 1jXF:lL+l>b6ѹT`/q%Q!←BhT#|*IJިe&rҔqZgQM2#sς\vwOLLӮH$8>=?>HKrh1pqD3E#*lzΦ.؍0GT1qMϩ<Łַ6De{h0C R:zY!p(lB=U L*_2Ngu!g&KJ2 b^rP6f"=Vû:MJM(͡126oeV+5n@MEX)21,Qhp %S Zb$MnOrJZKh?tfh-o)BIΧ,#PJNNag ;dzk,"{8?VGFVek]x^LJ'Oވw=kƔ7Ͽ|>`x-V78;;p8!i˥w>=9}^sl( J6l~>gëׯu=??CTx}nI5]pOCy ސ<@T_|}v:Z9^<&͋ݤ^tPf0VM)[ x:C6u4I>Dg_|W{ޞPjW~_:^`Yf0?!Ϟ:F1c:?x7p)TFp4EQot;GǏ{MݬLH%"կUaCsO w/ݬG{=d DXרP*:=*Cb-LP\{Ȟg,6)MhBBs$Sj٫÷IZg.pOSAyv~ȎFCAzlgR l)o~n"f [r]e[D9!E4&|Ի3E ()\km__O;+%S1,sU`GZδ9O4M\N"7=wP`yVxm4J(T5 nÙT"E |k8B+jN;5LCv4?PƁ0) hgij*Iu(p\Ӽ͕ۜ.ecPԗ3}U;EO#k*٬D!Lz"w,伈3rD pw Bzͅ˧"ӱ1<[%o}e;Mv;Ei6qطJw5wt^lB"s1,c֤S#2-Чze;Gl^i=rp}vWf9k*EP|( 7oYgIM _[~, {n^)ؼ?+5,s)йfٔ׬1bXu\)fi]qkKߙ99MzvXK4wN۝ Au9KNRVV]tcr#BA$?*ғ:m2? -(<]z2 Z> Ñаd3g).V C $W"R|).pS^^I ۦ>s67.ANpP)KOz%WZKA64YbA#4kh s.ݬ0c&|E0;t^E@V92jx3mc|q̳ZU݃\PZtÌhNN}h+5,@:F|1WqMp[UM9alMKR&#\A090]jt"+ &5^Iwf<\o|mnbВN4qH)Ԥ@7Բu'2_ ˭7tL ["kڦ`(ZWj.׫%N[斯Gʟљ 8l1AHhPIx--t} ٮES*2,4LŽމ\[FP Q?h yrnzWK{76艪-hl7#L6pp^>/x7_K/ Yݠf2i% 7h7s7Igfnϟ}|/H0ziu&N͞.Z(V Cc7܃VvvXLU(ϗf ܽsAI/T3* )ԦvZg?h8nG薞8GyS͟{hMU@7"u-ժ2mpVg9&,3l1c43+ dH,vUX=<=6/9_=; j<KEƲ6(%9 L 2ZQK Gk+)UauMYטqt$uv'f2&jc?o=8wsL^ʙR5 es|4RF"ԩQ{!%\IMBm>nN"{>)82}k5_smiHVxާe-;؇Kro Q(^k׌*^}t]߻N_Tkb 641N^o=se{2]kÀ=)XBL3 WYE9aaxT;Zb#oS'(H8")l>GҍK(9 D+f bauݤ:^#XӎP, ,<{w/V#di8d nQB'sE GvOn;;:w.O|IW_ow0T@d>LjZr>P3w7p1;Ylן-5kfdpLnB80)D~ݪ6 :;S{,ydA651ʥŴ0fHZ.fz>&cȜ'2Ἀ0Y$oBI۷fN&H4r-.*([w>:ŋ4J'r*Vve)b<|n"xz>W ikC}$3+҄Yt JG3~ IDAT`jZ7E/{3W_H:~} c!e {ήquu3S=?X(gPo~ ř˙ݿ-9ާsCKwpx/sCLΕǛt: ]PߜblH'ODSzqnr/mtwt=9Np/S$t%-t= c5|QVBa1-ZOh4%-ьfϘgޡ|c.Z蠟G{ã{OuX/q~v>[AV/zYϝ PWTM=.x^> D-b#dY ./nXdҾ\kv:=!Z KRCC1Q=lw*Nok;hQ0-tyKb9,gg>mÇl`YE"7F°3Mr>3 1ʝ|#Qo[aͳMi뼑pA>Cr>qLtϢ4#j^)INPTvތqnጨ&&֛R|kƘd]143: `yCfniK^Nb,qX,t5RzoBJY7cZ50.)rGφ1`q2yQEڨ~B|Pi(hZ oDXcb!4֢JШatʪx_>8)y+-< X@-P_ׯ:2)M:HՃW *Gai|5n>V%k j𢌱Pe]9/ aj+3}.R'aSz~I_CZɕ{6 VD+$/!UvM1 ܙE=2+\H}biܼDWcxVEVUj%pDYsk[ˬ`+Fm Ged&6>LRoZ /2IJ 秧Bh^|DĦ+alL M<Ã8 /89L/۷189XNvpy+  nji/ Uַ#+mg\P6n[[۸ _|mPVFzkJСt$ڙgEMIc$ÁFDcbFLY0"rd~LV:56qw^ q|Xӌ %HK-7bFF^, %c$bjZiΊ^;MxeJTXzJti|nZsf3?XAL9 0 d,ݡ082/f`<_ i6I<8 vH𹌍lgSa4X(q㳚X~.]6ܥ4GmF*ѨbCLtwu 6m-%K0ҥ ߳9RjO-ײ~6cF̫-܏hڴy&Vm|4kxt&c]~tppxE֐o"tg>|ftf?D(9ݹ#cxDh} '|_Et6QΦ{=9;;8C\Q9P;BDn:mxa{wOհ|Bз]~sdoI$5l92P_Gޜ^h_zh&+̦fHZnh^W#MV3\ dFiѧ%61ϖ1 1L}tl2W*x[ܾ{O=EPaHu,ph"f\G^&=5MgDK#UWui(/ '#!,N/-^av'^M,MRrs->#:1),8HJ+~.e_:$PsөYpUIoK1s31$24,QLg Z:zB$_Yai] HD [kƹ͗sLf ׈+t(5%34xeU$vII lR:ƨbpP 389-eBZ;h4 ).JMQ+_hengǕ>5~S{,Rʸ)9 wpl{@ۗIt 8rך\Wr04Jn*U+3|Pi7|Y9yԪL tk:6_3l{0՜".W+l؁OyDFLet\|m,smWF.Js=9R8ž +*Fm Oő %8eNm:sR"L)d3H{1$h[p?EuN,ִɶ:hcy$qzrha1$wft%JjAs3]x?H"dZ%CZM<95&DX!ۤ籹 O~YCz||IaU,, ;✹nِTs%5Q'Ҷ@ + \#&Vj it)6tHvd2P^ul{I=;{;BwY\N"e,[bwcK:ԁ+ gfVԥ#-ySྐྵݱa 6'%ƓfBkERy99<|V{ގ]cQb-= ozVg 4-\_a1Ff(ĜpFVEOqqb]%"iv;}9,C ON,fŲ0\)DE'?sd)Z1\/psy>6f"d򜮿#$gSi ˅1$hvon0eh)2FGg˫ Rec;;J43VuN~I'CU$9yNZ|s^tadR;p/&nrIvf8T%}(,K@d*Uu>j?>'ŽXeal,HeVepbxy~`!Z.Rn¼sd?fJh`OybME.M8%2m1,G2W1/Q㚻F՛DrǽM[nWuQ:,ܔ!]y<БÎ]|OnXHdafUriYWn0J.Zԃ!”! ONBNj}9_`<VZ5 $OTE):J׉XDM骺i->(M%=dMWl9V%SsβbtmMvƂTZcq67E{"b0Jd8cQ?t6Z=ѩ;T4΁BzFZM#EOh57}<LL )1q:>gcsgS qTx3ˉ]}>5Ćӳ3l_~6V}px??{$˗x1ƣn/~RE%跷O->ƦثqC7oe6W_ZQ5 L.n B\KwNCBfhp|瑆gBC2Žt^b6wE' f::-ܺ@h4@ [NԜվbkUi@d"!N2C<MQ0/ /@+޾뛑=\]_k?ܽ{[9ҍ~[mA?"`Z\KؼY cZ7MQ@dHM 23SI`\ѾLWcccC !i+ 4XŊ㐣Gm׺B }Fij`wD9n);UMI@V G0[s*fٿƐrt5߿:l kܳoyhA\S7{9ȵ:5] YF8 ڮ׌\/;5)פiudSpY_GU-83 zjvg29Tf0C5fb;րݷđZT=wtqIԺڲi? Nq6k(p f=$>v/4E>ZN0 _a= .sw5Na ( QWä[}A{ I'q c9ǡ7d#p +uWGZ(?uփ?cӨt\Զ+2g㣈2 Eߚ^dZs&|H; 3v-n'Iptj7gG?W@c 9)ۯחXK*/3\]-h]`P |>¯^e&ϜՔSI4NTq,'vRN3 vٴ2 1cdz䢕ߡΎFJR*8c']}S? dU$2I'?s /retc`bB'ӌUnx=T$&.qG6,BIqTMupFlfA}iB=4bj:]1Qܑqp k^=|R7`QWl^~9YSדpݏzA)MG.~s%9M-^;]ltzXܲLFs4;*d=mkFPdHi@a>I]܌Ҥ?|1}5p\ǟf<ǽOXqzq|0]h7jvw10VEU66CDg۬X!mX14HzñF߾Oc5/G׿ <~O"EEə2Vyݟ? u=4芖ͿuVu2FErm\(OhXήF=,f3LG(d21ж\9Nݍ-lmzn{EFܴۋr%m꣥WXNo$FFhlxy_ iј/y6]W~tn."'X $nՠe -DJQ9+z_A#bNԻp댟03djGx!޿;k75Fۛ*N#h{Bs5"j9>vSvˎ\~_NsD,PВGPB{I\?^U\?0 =?5nTm o?6_l^ǿFҜu lqcQ}\G`z k5,фhNġq cƕ_ڜPX. }hTReMn%Da**ge V,[\;)JQ+P=3S~(V]{/0\55. ӊc:ʐkx?12zX5Ĝl\6,|mE(42QU^"*xq[)Ͱa)hb.z!S^b(;W>cg2D;űTƸ|>V&3LpëX΁q3i6_N4[X^PF\"5X u+xm_JUb肆Me\Qӓ4@ ! "2 ٸl) ʀyN*Q^nϰh& /+m-c:@q/"vOCx`Y`GX@Al]\< IDAT."RիGDq-0kwO=wfⓓ><.D_X,f0MVS>B"k١ su{ZCH{%)>\S9 ?~=ӟȑ8nDZߝD^-2Gzyh#2GLq,}hLGk _X\Kkqӈ]denoKdPA13b|1H.9T[-FM`NJp- ^-gX-gXRvPƑd܌EPjp !f7nz/_Dtf3z=R07vpƃ3_b`idE 1eX|֏E7{..FK/jV5ǹy Vn4(Yl6֟FTBk%s!E kkzې>$%:;Ph?e\:p!5#%(6,ϓs(w0_FxcJgFg5j_Yz>zSGLfӑOj xkª*5r#5m+PAz*nI0e 23ht!(ѥt3քR&0T (DVڗf< fP潁I6Dk^KjЌ(Ǯ+ۮ:z9:EԕxȘ/"QG22 !vFQ1h^+.QʵFפϢ‹XOe-7DTYkʮc0*5'&@ *mz鴋[n<MGY:΃VMzf Q{0\tlx3-Eßc=cTX?;jKafl/6~acD,JZ:-6pT%S C@&59g0k\S7O*k%: DK_@{ bp_|Rb^ӁD#]ɹ!lѨ$T4g&l;ཛԽ;S: ly͆4߼{il >aC=,g3ӓLk;'r^-n6e\mW(^~tOs(_ѥPݝ- gʜ Oe([iF^!,0_ C$i)DO;@Px''8>:V`2@p.˅$jUNuuy-U"ya>aw_ 7KbXeu6nYϽ)3);Y⴩HA=}=G7,VlφxwR*>>vw8m./hrCht2pbSJ-Xq-_^\Z}zv&IĝL45I7c~BN6\4 *v6A{CĎ~[Haq)K`lQ`>pyv)9\vSp.jiNd~nP QP9dFzNNۈӎ ۺh{~k{ Frevt24l}46O8^Y ѩeIurF&bR#)Ҵh]9!fN{K[VNG6Z/`UzIp],4Ol”rݐ{{,םoB:56j7bN5&`Ghj8dž42nJ'q̮@]Chdlm>%vـ ߣƱgmpV[Fke%! [% 4fgkM\Y=31Ӱu2a`1xTe~}S=Nl@ibpV'?yu]YT6LPZ_kS4vDQ#~.eVV:hsΝ_Vao:ܹ[ Aw I݊ a}438+&%hH~P8&!16)G0l?"_l^kLŦUILښµxn$@μq] GdY2^S׭;I0::ye-j#[BW3Ұg<a9nR.䲬EB>mJ8L ql'¼W|MNGTJ[-fRN 2 uo%MvaID9S7 C\s4*3%0r399 Fv3Ė)lYT)7sWAo$mgB0KlmnKqB y _[O/oWK ;4x.n.)S~MLn4* |⚸N4Lj]l5iut IGnD) Oz ه8\Y stzbɓD`bȰe::i͟"&43şOxpohM_^iS#TCԷz[s|}w7qmˀ)|D1[ΐG܏Up=}:8>8`$|`U,-F 5L:Hۛ2ab|~!:K0#nE4g^M8ܿ%c<)TgDk:ٻcz;WX03gmHxIsؐ2BAlmg ƣ!S5WW2Qz ޼yP 7Ij_6Zm,޿x2Ùؠ='鷢޹{WEQ*QD=|fvFS@y9[M 5>FUu4 nmoVq!|noho`1ʆfK>!lTy  rod8ԳBB5qԧz֐#ql{.%GWs (ݐ?E7sY:goi myAyVF4uYa%Kcehk lc{w * UjTSzNta׆I5ߠMLhk3Ƶ&R{_FjG@EerWu![(vE,+ +vn\Doydk9sc8N7٨U*Clbԡ!jlU7N!b̀k?o"]KZ hU3[!VμM˺K 2Zn 8F {yvtnhl+ϛtx-uZZ4NhD T$Kfrrk(PRdMq}m#:  ?o~& FtF4Uad,diyэ2lKz]Z; )F4lK;1 U68"*ČBb5#71_/TkҡXHrZX\=IugNJnБ7VXF!F;=w٬t~HՑO!E.I/_RFЊf4dtYtg,*Bڰt4Y괨C\ aʝkejEXnFB\S_&-|F7wWfKf+ܹu EG\ 7: ! B>>B0|łk uRHRcv߾ƒߕ Xq=Je3G:=&C7`)ujO@Vg4Yf4j_bL/fãs4&DQ_n,)-ltLt^-m %OӖq8Vč9\ziH4:98q.m/ Gryw!Rc7x}=ЁsUDb"?e㡙;ogR&8^QmMx'~nOHfWyKpt 97Ԝ cb[0,HrcdUj ?:{ŬR hI HUHC h}JmQh KTcgu-Q9ބ6$@gZJήk TZhLJ+B.gW.!ϕ~Xwo ݇uEYS,\>I* v]CCE&)_mXl4i( )˂^I׮Ʒ2 9y4DDpz!%6ȢZhٞCҍM;}UMB?Ԃ2}yk5=Ӵ, z:5̘d.\˽v=BceMS5S1׾8Wۇ+Gee5~lAsb4ḤL (yj>2MYtZYOI,2_j Ms5TFok Me/ʐzH  g35Gϒ9Y$Zxdr 1-N^LXB'}Jf.`=y7QbF i6RR͈>OYP1WtPgJ-7犫hwV4C9YNnc>Tt6oaxsbNsmx,fKbEl J ltw&Ux2?]\g3R[jvGΐD};?ISGým<]QGjnZ"N5L).ט.8??|>D-1 ܵ kB3"إӫx>O>>?+-jsnahǢ'cDe"eClkM~{ᑇi2tY)Z̫7o#Wjzm,9VgLW2l#ÁNw i*mOWh62!\ӠɊ:(bnp(2N抰N";9T"сYl i !TriQu2Z:-#t _LKуiw9z gC?b+JĚnGkT椡+yn95I[;9kd* Qwl-I똤\En̤x"3#9K&9UՕ'BE•ѬUtjFDiPɌveװ[Vl:){S̟e4I 2F(S:5d̖DsO|?+)4rYZPGrQF1 5ÞQrndS9Q#μ{|ـ3pKwqCʚq8#* 6cEeн[Vd?3~ 5}pmWutŨXUe?{\>7!ݾӢF5[7}7Qp.fۚN3P0Y72v^R 3 ^{6z#F_s4uPY&ZnQ'p`yXKUZrlz£mvNӰ |-zI =XjR:XEL?}}g"*?l<5q໬DT40jjxl "ey[fkb9r;(:tNhVe=SH  KwVg#ݐ.) 3:cyedQM:J#lh"Y6`ihlj6ܑt6{ K#OPX`Tϒ.V4w;su:^$TSsGMŔ9L!i\{D x?,_/QZ$X*3bTQ 7" 9E4K^_e)8FV Ns{g/''BpݹWg3D7j8cwNh7(y6B+ZJ E}zwzl{../t`??6>{f/;E+loou@d'0ӨfKo'?ֺhB&[89;fV7HM_\mYJ iEi^4~;CltfjtC IDATy"7\ 3FwkllZ\ Eۻ{M(l V\״Yq}M*6zDM瞴aU̯{/&fK2c.N_Wb;+5UbUQf53'BIOYiN}\igWͨ~qZ]יUȯM)AĚiF\<+"㍦bOQ'MJs?ϵF U'.)Ō=G42rnˈN޾LQ۷jj1&rui!o.ݡLjACC@ez M.`%ݐyC0*k7!hݐ k`ʭc͔ M E^oׇ&aXP|s 2*='_'8kޘzm௧|aQaPp1r^2DŞ?7w)@mQz]SIgk³}Rg?!sks}6Y7?ϲ:+jUU!+*&j\zQП|4X~vz i. +#GrIex No^g5W ~NKFOY=ޣF{Whl1J$tqngk'Ɲ lh'm4sW tb$Rvn~]Dq%:]`wc_cAHo?nh5RN6 bLEL9N|gX[ 4-0Ud%އ)V~q|xKכӓ|7>ݻ+mՕr4z,2961g>tڊܐ#^^s6;2q}l$ ?ppt"cf͔.cDqd`FzZ˅D!ѱBr5I^d1? 4e0HnjÆL/|M-҄e'ʜZH\iٽMGdp{JHZDffTX=\]/tVȬKFQd1LZsg?Gן^ Ơ!S}\Y5VYyLnl3js&Yf^ _ވi#vr%Zga 8r!kz}ZoeV7}\;QeF5r,R-nBsYxs~;e,D#U Q"}e}Zstёt?+H23g@=FЖ*rnhZ p4  PaLJ'Rsg&v Ynx}'J*yp,h6tqzwC )֍n \7OSNN(wְ?[D6@ZY]Q>68 zBR9PXQ:y 'gJ)5=-C6nLu>IpF5(grO (Q;aZ$Gq1Yz&LiL¼s$WR6'"->"ҽFF?A[ %֠ +7yR`@wyla̓|YbaHs"Z]bF6Z"\BONC Kn)[B`飁O+im*oSE@Ld с!077`Zg)^DZ墠L-PkEkD-Usk/s-4 5_(Ee-mDʆT6DdQE?WBb ^\&nrȮGqJsj K!D>Wy^ђDV>N*ZTj4XTSfByW/ g+|G-1'i2vU,qtmtXS '27Z;6h=ܹ=\ʤ|q\ucnft{;zﰚ=Mb,͗vhUrUH9@yJj"b-ts?臈󈨾|:VVXWz&ҍ$vebD9#՗ cG܅SϨ[h4XOp3Q˕4񤸦e 0)w\Ty_dKOdtEz31w Fe1O:5%#.DiF|anN:S71yS, t<[ssBTg3fm1* mcb1fM>I| A3W?@Zp\Ǘ;xSlLr&^2rEZo(ʪ7CMeVLIUEkz uHO5wײՋYU=MT9U5~QQ@m(ͫ!1~ǹDXQ񆡬8Grlda(ro͌P}ڹ3gQw CBrZyh:k la8kv NCt \ 8 VYw'"Ś [S~o)1xb{ng hFk{iz~vSԦ@3f@S5u-󶴇BԤɔ&c\VG(;m47((h63#;B"ds' EɕcN~MXZ_RW-SXz~CsԲnt6&V0DS{Uw)K֢@nWdP`s&iuXqDۢ6˼4˒N@  ݭO'KQ[3h1_ruvi6Etttgh0g>uŧv̋b6J+"sS?PZ9ݛ-"ns 7d 1`D'd1Y-ק'~V ?gT9d&/ctu3i|;'DyÝc[:xuBF4tao9V \M6zƋ3A%svXk/LFW#audztRe2iK36n?g_kus>dx-3!QҕH|vz3g{/GR|޽;׳O/ղ23VLvC ; fUl̝R6y4'ЈV, w/0vv5~YsmH@&&~ejWi)HL*Js)obbU; f/ n`4%1di-%UH>ĶɀnM@>Iq5߆vp 掌@RWfQ:!z2Js+;q}i%k8d:>G,#bV|<ٙȥK_JSʼ*b-̭\XMu )2(҇Agk%h*M^iEw6.k$*5\Wp}$԰? %`IZkyLR b]иXV0t=k& Q+l>}bR0jW%Q-m).D~#@+k+bDRL64Ź5U^f[[K˹0y4RSq,0t.טtRR%s%6ƙ9aH%YqiOc6 4ƎUBV0z&~)2b}pô Etp3B~ـx&sxΆ,s`t5)W4QDY聶IeTmNZCWx tE%^o>]ay:6[(3|{xpO.m7j,/ zō7a9 O7[8.Ȅy3` ώqyuaoM9~>jnr򰅭kwYKt2t6JrM^%ka48joȦ8>lF1h3"u$6YKyd~_Jh2N4ܹ}.v;"e:==AWU(TV'|p5ӓcquڝ4 [konn`q\ESh}ʮ m:͖Pvܾ# |-lo]ms .\ɤО9xc\rE!|:Oul6Nћa2@#c@3v>NN-`4Bù`x,iltudn.i*;FZD />v;M[Bf':-%\1CN幢8^+1Z͓OSk4>j\p4=QSUF|ƣREԂRo8tAFˡꪠ4bf1+5A<^NqCclO\.uHO?.{Ϟ?+2.҄1^fMGԛl~K'ΛN35nu)E:q);ujX܋UU<1Լ.y#,KUӦj#E&a(rAR2E4(ŲҼb쵤~|vm+54ځ stg2Db#5FIUn͉4Jbf$ 8p!|u}t!."e94ܥ5P1)e+շҊ ODE 05hBֹ@‚\Y9o(-KD՜4Vú416d 榨~ NgoܭGWkk_,b:!6&H+i0:&`z:a2bX%2!36~n54kyB- 5(ճj۬t`+5زAVuT6'lIzӖ d|(r_?\݂7Q>7~_$V!/ʸHQӗgk}+͘慟Rv_WB[Z^I*$iBQG}Q@icaafa6Δ!ldқ)›Ë)j.4z|݈4E:aY',ê%$JI&dYRKDRhDPSS,.P+uDoToeB4ԕ!/MԩJo$UOȚpS/Bpqah,EtJg!`>h5phޥ%i|ظkud&N//1%Cľ^$IݹZ6 2[u J=۲x\]R ũοOpy;ư$(&Xa:@;ܽWh?,YXB9#e$F{71φB޹oѿʱPOF9qu tp7qM\^\PiBKe+ ht mlnl{8::&~,:oPo\zKq&D i6ldTX?K1zM\yۻ88&, IDAT[mȵEKK(?^ Tk޽{ҰQ鶗,$\lyh;76DXssVH 9iHbRX`  zz{q->&6vpqٗ06ԥy=&oఀRk]ҐsWX&1Q@խTia\y߇l˺5NK/h.F4|N&150Jͤlqwi7nU_lDȱacyuJ izk.sUsXhR(qjFbZRA&9X qN qEyĭ4IKSOBMْ4a$Oqvz9"z+&T:@SB><&& E,j.AoiI`fZdsB\j`~gO^ZfelW";2F4j.8܆Yl*_4q-; tЊ`&IU5Sm ,+m$xکDEւ,S,QK#qp .%Z[[VC\\;i!9-|o'AZ< Il)_-QY{pj0*5ډ1u *qU5T0p f+%q1{x1_ Q3ň'X*lNاC$HyvBFaی.uא6VWf/Ąū}`^c:.@Eё4D^ 4IqHlDit% ?)?{hSo޹7`4ծ^#"{EprraC14.hkX_>|۷nQOqr+k.qt^?Zctv$XAAZu 精&ICi2Ä{+ǿ^<f9.G\:s[wnRu{g'$ [% QT"8k3U؈H_^Zd|%ߗiD `RGFPM[ ;D}#FoQM8pfd_ m_ aPSܿmM|+4;> 1if~Q\jne6M ꞋnejT^ٖEڰ&a#$̖P9oB;rz%"je ''gϑ.texFB^"f|F y"Cf.( m WceZ]iY`ժȐ.OL^D@)vHr2FH-U>hD)4<Q3Dۆ2ؚj-)c)̠ܨH!3B)BӚTl#V85oHx; *WH$37fQc#RIΜ7͎?[ #! ]0/<62 d7@^h> <"uTirKLh甯c=e%'4Dj4 ͺ5yT*ң/dh!"/Fxl;B|KDͨ7mhja!eQF=Xc` 0u7jD4)t;j!G&T& 2 ]au[*EJ;Or=a+0c{&&A?b )Hmpd&Џ xXEu cCjNw5s).b{7Zg%?<tK;RT m?ƉYqcw8fRLI.qi4ѮE- 9ֆfKQJ+& yƢ4;n')IX"Z>{D-Z&_cOM`Djc̄%MmiиzҌ2x`̔Ń7[T2)0/3 1i}Py YTDu\yA'}A8MecŭUDF-(Bƛs'`j]pd`; '!ɋ,4Z$FJЌ06RPr!uBi"EF#S)XD]mh FH7#}=|:/@kkx;g1/g>w[wkS<泩d'C +JV^SIJh^{YXn6]͏Ĝ34\B9=B+e4ON=TLbHϞ浱n%3go~@XJ#\;hVzBc087QYlr.-w#R!/kEoQT>~(Md?7t"_kkr=}?kw{6 ̦ Io?/[aiiMxx=l/#Lݥ- przoE+YCgy:dbўQt.Sl'gjQ4}.Щ˝PQ?tpgcV3AFW``ƌjY凉QF-`k{We)%Hw ׊ N~@)56G/T/_V_{Tq4+S4uEPyi)HNa]y^ ( &~oߔr?w6DS gp8RV 9Ω|b)/e3̟-#]S_ɢ6OMPplL]ze[: <杯}ʜXWDh9l"QWLܵ{|)ƓyDcJD:s/0вGѭaS=Ȫ :&RqEKh~YE!ilur,4= QUÞ$BiTcԡ$M:ua-h/c$Hz2n)"Iv5/k7ІGݩA4Pr{}haj 1R9veN\ֻ!z.H nL$ʃD9㘟(vpF KU?j2HF.D=ʨq]+u ό $<]`p-&W40>6Mw[!ΆCUSqc:45XeZY a 7cP=CuD&>k\ѓ5d0}0eQA}pin52%ҡ/@]0?(+j5(LX,P=x11dWy#g WyDkt;bF~o.Б_ 2-./4< 1;t#RIl @5c'B%<'f>$52N/1-sE{Ʉ`:^IPc°݁˱@96o\HlELBR5E6YG"u|?ϱNp$U;C$i4D@{0[|,K$A݌fCI!Jdqkkh%&We%C4Q+Yt/џƤrO48r>XM4m.FBh 6Hcze*lZWfyF=LltzL! Tp^ҖvgZB2Ky\=Dt^Y]C+X 4ѫz@є&bmm8rCfЪSP rpu/NY5]@=M<5?~&A**JX:nm_w޻}L,Oجa4NφO=c4pn"Fchg{_|TJ51R"MXؔk=L󺼌?~llhC::<ɱ4 kr=7V4rPd`Vd|nݮ[,ZZ/ Νr&K~zs#}1I'}1"vi}{7ߖa҃'+ ?K:(" 3.7pw.U6lܛ,\\\ڊoJ p= $i. \b\rq\AuI˗$Y*<؜o,}!h3ch623pt%[?_ dmig|s;dmcumC |8 " @m}cNGb֮a)#&"[F@zsՕ6-<_lj!XF˨<3tvpFkV+Ѭ˵uI0x,bHE8[}6_̞H3)JpM 14M.&,g/5t?[n?ÇS޿/!-jLĕRfU H SYJ!htZ %&Tkjsˎt@Y%JS c|G3Q&}h92yx5IZ<8x&W0G=mjQyBKĎy4iŏ)|IQׂ\g\Fr4i`YEg)Le!!st 4siߢ`P#҇ uշ&/uImyL#4jibC3yY FfCn4QAQ`g ^)\Yf+xEX|SyEv1IX|1J)}Oz?Յ"&Muڒa uҖu9?-l!?gN++[Css\]L@>=1tPu~v)9<ӒFiBnwֱw-ԛ]c#Գ9:7Eflj<È".͋e;:xJhnzڰ *9DcK~(1%4S/7QtœϵY}O<Ž7K>ƣĢlma{knɓ'rߓ)o J:&ZڔoŰǏnݼ#G]ڊ ׯD.1H"޺sVG-sG_ q41$Bwy3]sGz> 1:$c2d<sW!q)f#:݆qٞLs'JRMTPѼ@w'HiLA DTo3RSvM&H= j%B/Р zIpT|f?C2%۲|L2iT\PՍ8=z"QβSdqCZxn(1u5bkBz)ȩ␋WWmC0]~m)Ӯ2x+DD+jN~;uau_u9:yo:6f'/U1kߛsӕ2@׺ܮ׹d2 ^ lV d!4 b#4jCqqOT!".k@kԅn H%^`55BۀfNT 4SOb4j@$&iqh^ͩn2chL`S5qAjRFC mt.MJFDU@Id/C"SIhgOM (j8ʰՂV-V7;u YBc}gaF\$ 1iOm7LbӜ*}ڥӆOU.O/5P&>7ʺ\y343+sO%aP`X*CJWǤЩ1-3lfҜK.}} y>=\\Ɋ4$bOG-ojTm,B͒l1 e)%Zi( c J5U.DoTE4#/ձΥi⤴uO* ݌45PD&ͳ m &[ ShD_IԃG1e3\bVo`pT)Le:ie:ۭC3ԁpGseM TsoM-ECXbVٹC0vCF@9ht>4?-tJ'hL0BOp3GwOT>jcgayk8:Hňù:o~;7 I37qy~NLu.G5/HW766q)ȉxB}oNKstFVZ ܻ{NWOwޑi?|PG A"vwoى ?y$jLrn>ebeJ9 ( -,u h;_潹wGWEn*ڍ8}=^|k5;ouAg9ML&|F@sc, >{;my%]2 x?~ҲM4{T IDATEftLdk`EJPcSAIitKaVdu\'x5Y+QRS3; h6 1>oX^]B^>;rh$nUSi3 Od?KgQlwqr:J/p3/Hu=M\Rw搅Elif~7ofSeBL=7RJAZA܉]izyߚMKĄk)͜Zy?wZ] E7^3s)=DcFd~H nQ/1IX{stiؐ^o50̜KRfhǣb>j[)1k܂׎&sD Bgt؀:s˹j:{WEͫ5dQI=@¥ikYS]q]goyJk($2\,, ue+ŷ4U|4EayO*(p񚇽;\/ ;iFMєʀbn^2=AwJ }ұ$:K~A M DCp޵?Ӫ܆iF[?QPEW6pj}6|vLGFRщg:(L;%'H@\U{OPVP5GXD7j^s\ ] na$8X_ӳ28pntVm7=BTE)h5W0IñٲdHoNR&f#HqRex'Gm\w'7M9yjGCa}^4Bnh_]1,LFϓ0&(1n4p3ƞ Z0縜Lqr~) S'̦2ǵ´.Ъ5^f y;z37E?ff$SW.;rfj LQR{jrDGQ4W53<6R^.Fkˉ_]c0'[!uUj^Ns- dLR\2qE:|.L] 0-{i@9&I":aƜ4"Me+Tk2~]4f-t`jL0aftfŌ \QFr|o=N9]+Riuhol\G?{[q}䅮m}G,љ,k,k2C.9 &ڍeiiچOzX^Z#QzZC5]+Ƈd+Ę0qLz |oЭO̤,IwkoZs  /5>y>@GThd%+胟?7[^%.d>/į/Hp(1hKi&d#Zk{{ąEionn9bUᅬ 5r%KjwQ,[$G"q8ly,/ICSt:M~^=10w;aΡGaS o}͍蟟C :-|=ɹ5(s4[]if Nqyv3֊Szk[ji!u>KN/j#Z,@G_QI2~4N邗1yQE2 `9z?Qw.PU #L>JUTwg9]) -- 6$f5?$Y9/ T?f: IYGT>Lb^YցXSFm)& B?df!ߋU\EO2: 6s^_;~h_?\5ߡQL&H@Jho$רk-+Ь.ܔe˜MV&/Ik﹑>,7W5qq/$qfI3krW.<֦Е TV$& OjRHzmt1+Kؤ:\w^Ϟ1Ը|qM38EEgZ:/,a8J%-+)dL&j8c^@(AA} -ՕreeQG` X\ _U##-͍S\ Q7-rrJ9쿔],KQ"iLy2M-6TfL1K'Q'6j2V9ԍ925N'D継8qzϨa#zMbgK&75ѩ{ L5Ү2:wzJᦆB_fLW Ν7$ǴEjpt|7޸hkMSCy^֝;x/eK.]Si>Byi)pE'M(++RD I8Rd}|ztGGҘslCoQ0]ۤR =|쪎ͽ[ OA#Izmʚ~}:j &cAwqy]5_T7FNL47j)ʹ(;Xݾpz\#Wuq-/a0khں"{$KJm1Y#&dX{$cxZtm/Kr9u(PmX#ieV@Y 8Z! k9Bә"=j ͠O݋K^jcjR5sUg#82+!1MŦeriVK&Jdʻ(_:8p( sYNiZ*zC، q*^V1UZхpz54`.WKTRV:`l͍]wZCgO2A$l^!5DQkH!Ea_0Dɩ!ȳ )y%@Y$D -izeieVUD4}+m&t2>.D+݁@86Tt#:4 !J X< y46V @ ~rajl%,M"rCj^߿˪!4jlh7 ->i@F4jM b>q ΪIbj66 Y[&:4X±.T:4;Y` %ʴ-!Ng^Wc4-4 oOG|Y;nS,u{8=4g' 0ϧ .擗HU%˨9KYf> 9 v%O] Ys-oEn79?}%TW 69 ln&SdհÓc\^`@prv~uܼqC4}q:嫗syUMquU]'lkCRzK7w~҈^^^5[.=N%ցZ-,/oDzKh_c`uGi0Nm7Wׅ;:E@ދLJXލ8<|yؾhB?' AGL-ó:VVmg^a>| eJ7Y1 e"FGTրޒ܌3_;e 3ǘt퓳St{KbsM[t4kpM_uO\ K՜[mA!' Q0bK^yN̤m3v%>/Կ42hB  V5%Yrͷm88e֚'@l.&44S5 R D G}Ÿ#F96 5Tof˪4609Ij#Jb˜j_0cMS3rmtx]aEr v3x'ȉQKmkp.\|B#4kol*lQ=ߢUD]Ԥ&`(Z(=2`{EzEu_yq<.4XFFrU{"߯ҭîL'+rR[wʲ;$A3̈4:[CƖ3&K0@$U!k3$5QdM2<¾z39uQ=roΒ8'cP;[?ܜ.mV`B{>7-:E4L7 aMk@T厳_D@FZol>{ ᲨpGE3w|hhAntںPidBhD)BAؑaJ[c`(=`D}-;ݺu[>Q9i_>z,\mgw_Q/a3PB3/0mm$ Oq_fv$Q:N%*A<2$%r;tJ'F`QVfHTq1"6Ĉ\ܒb=6)=k 4Zg-F-=MS.G[{\C(C'F;=Hq E6M#\\Ű)=eN]YvB qEŞUeg͡/ M5"1,F#s%$ͯ200ZQn&Q;hP+Mz!8<=;ԛ llnѝY2\=tJ\[wy՛Xy~}"S_Bc>@Zc>9C#KĄjVV]kau` \T5cyZh=y?mSn@KMԻ8==ǵ9c1c{~OXٸ#Ʋ뵌˝:2W0 +uG#̅]CfFRk"k.]zs ==\KHetUg! H)%Fk)zBrG=>O\CEI\_oDI~CK3),b}32`D55&1MgEKM9;1Wr x>YۦaTR[@fM=.l:f3zU]7CӃ"r9m*̉.riby!9!NH5(L?maΕ 1uk%*KrmRgbj2(tl\ nex&s OP"̪c[h\&AS@wy(0q7^X):]hx(4|8WPQד/͖6 j:: HTPsRB}66q|qm.FVVpuvMHhxVV|} 9smdpyV)1,XOFcJ*'<} qU̚$h{iFJ`|0.:yS I%e$3Y6DOmf›F#EPf[0!Ԙd1pb1T^3q4z+QVqxrA=F'âp#&Xó .JUK0J!=Q"\U񖍲f)]LtlJAjäݫn;@ zaNw߸;{Ⱦ:=`q1 )Z.E+K1'fK{NOd{4r@A ||& '­fWiJ[CZk=tz{XYy11+]K6&{t1m\hp㗢Tl_F 15vV&^=ƕ5zk]AGj}}\vCg<߿/ki ,=&T^Wx)zmMǏN{'8:>;j0$B!n߾%(p>!{muE[i\dM*qmoO̍Qst! a?/gvnia0fno :Gwe{~$q:LD@&HbƘzv31F3E$ \@Xr&(bJK5:4H~J+x-{JY`<f Cn9I_M5DŠK5ߦnЍf&pL9ѧpY?{5~ZJ1jB A9iIE^okqMFr/6[-gӱϟ IDAT播cSO=n5ie9v65MXRjdy\kTbؼJ e/0/RRj,*q5f8z)TyUϵ`!9<ߙKH %eJ!& f^hyrm m ,[$ DE&)CѦœAƝQ3lSkzMY.㘋M9N..CIn'Ͽp4{HcFlSij>66q~q,jOseNzorcRu;mc]I4$)-VSjj%Rhdw/(󙘨q.z JHaJR\ bglbQ_*L\i53S;/>x?&wVtBBL (EG`}CS\lREkYXƆuS"jSʞsa`;v< 9 sL͢ )E$.sEiR50w @(cC4~iD]~ @@@ GP/;/Q^4 I`E(4#C.y˖= oI`b\Js⃴iRMuz*/+8<|l┦0r/("GzhDClP^!Rq s]fX C}!"fɠXRX : =5p? ÀPӯ>GnP,b#yeAINde N>OeV/KC3i Y[TÅQl+ s. $!(fɢ͜V 4ǭV ) ,ӷT.uxѴ2ݘ!yqTWs':Q+D v>tc gUYN*邺 b Z0:7%g\ 7|a4qv2d z\gPegꙫ# i^6̞5%Q'>oيx(0#}zvϟ}SM+j͓TlXj.nٞ7Ej)ƞSLc)yn%1MZDe 5לIZ[Qċ:35Fu\]b60 -q`i N,Og# u<^>{ν1 Cj8,wxGb{cW __13hDlo?o~9./$g'ggy|*/M-jnomI޵ry~_ NԻqzk^vW>Y:̲)Oj4˱"l +<K+riĻU9./Ŝ h6mr9 :n\M|yյM)̻-966ZoKOFE#)K;+ht͚POZۘ P+0_e3ieArQ9g#%ωl"!(S+Ҽ<_aOm 2QHۆ)^sRd:f F1y6hp)@5S0`Լ(lAFM屓\0+~p բ )Ek+P̑-QK޲{3) HFIB#SfpFedKJ? i2R σ4:XAL:} /QlV}h!55ātFN8?TÝ?+)PӢz ,⒪L r_)%\M]*E [>֊+{sdv )\S1D)^dZjPW?/cŨN3xaI:h.DMUuy@D㗫P!VHs@aHj&ljt brJc/s>p@:ie)ZDFA(O#; j(5@2x%^|RrA8ס!^Ct$څ:,N].+2Hv,8\RY=Il> Z!Z=>nV5p'hsx+HGJ% PyCvKtsslv@Yt2Gy&~y/# v2*j͓ ^e g E4 w|Dt+A4^ ͭ =iy} 6-k".Г*Z͚PDX6M&M@Ǥ{d|!1r2jGÍ<>9¥Q_YB1?xW&Υxp%&KT҂DQQ}LGckNQS2ZhPn_Y5Km /ԩXBDh 2Tc;K=ml6?k)0Պ M-Uz1xޚ"]AeU Ri*M0e},$UӟN|H8E,15׋r_.FUry!y2WSH|LDfPF6$6>sciZ>W&Si:/r0]Zhz"טpٰ&ޙm8I-A0=M)k v[RTi¨$R6e8m)!0|:o7[|Oy+)mHlXUNfk4kƴ:jbc/y30Yskou[N^~%:z"k0/G_Rn|:O~ {Xr[bkG&OUfH I3ҋ^,=I~ ̝itm&&˛yxFXw`[hVUfs[`4>C_`O> 4wݕ[3-W/eO<V-)d?G྄0ˋq||OH7|:g05xll l4 j2(!Wѿ! LKseSv:r}Ë 4s k>tՑ4'6VE fjk$N7v3cwx3=YFq5ޓ;[J xo`PUa{D,P(I (sn&^m[L!lj gMt0\ֽg X$'OK (gY<}z{m|bfVxs][WLb&L*|f _ݶX8rIw-UJgCBC^_Td3 ,AWH3:&ͳ&,/$ӏ 2P]cʽHɠAF]Θ(e8`w`Z] XxXu3_T +O>mOL^q詏hUfxU0S"`Eo ?ϗ_]HxS%}~N X6j&s|MYr[[ `u4Mu{8y: ɾz Jb=DU0e`߁Z~첦FΟ#\_R]d7Cyn09s5|q`]=bŞ l$=>)S}"Uch1}TYoܓ'F LgN g[!\k߁oU9nƒX~>v@ NQQ!ʶV?#e{AoacMkN ?\[44yg^nB9<~Ԯt%> [ag j2Yds L $XF|XYa=qrjHSZoln"Ւ@Mgݖ>ߛs`}%|cwD6ċbrq,tRZ%Јr0e<Շ<=;c"eyOAiDA159R~.ǐu@\Cy?HΝڈ?$NDƋ9eZ2Usﷱ\0@^o^#;:*VAz8 B߯6DKbg+-LWrxnrlwښ_*taQ^Nk6/ii|Vp aZeT{ɐ0sg_^%I;D{#a(WEºDR(Psb/ueIw ]zzcJVԳ]s- a|:ȕU*A#C!:m[!Ϯ8|MlT05!2 f3Q @JE#T,PU: `lTh NE>ġL2) oYqTH{0*,arKU67U:=(¿Y2Dm W#_p% }4ʺCb xfy2 u dXUR7>1of2p= AtX3HY_7\@UùNnzy [z^_.H)R[XU? ָa?I+iWZ-Cif։4Gpq~Z.`~YKgJ)'&06^& ӒGDZym|#Ld9&#}Xq2̛f<\Kha`Z[b@fp\clma1;47!Qya? *:T30{J nm"A 7 Eet-D1]Ҋ SY&i%AZQʽb_%,<8o Vu10[RSQ8_n r\$Bqw_{L]櫕fYDɰ;US^R%,6ݹ#/ d|Mt56pN)'gwA."7 wٗXqÀDBeJnܼ$XE5Vw=M\,{}Ayp|8?;'?XC8}RlMRb\yg6 A#|ϥ<)d~[GvHE_rq\2CnS<\ Luv~]es#\\K2=~ŗr\o8 0x}{K/`"X+7/tu*6&童)_aȗxp6!\6*M ЯA|mʁ+@NNՄ\ 4Z-&{7_G5o^V'KA韝F}ss9\% d́ O lx3WfSae0L8/dX-N>~=\\a:Bv&f1ZHfvo@QЩ1:=THO+m|בP~NWz'-րW zy OclW<^EUTX |t\)maɳԡ̅پByV %Qx`k`3yس>xFmC%1}p IDAT\g0>kEؑg3=i) F y\C Tq` 2WyYsmݥǎS/~ {;펢rlL"NKA'Yk:/~foS@K $WX-JŠu6iubk ZMߏdhd^-ϭTlcb,oMzoUZ~9C¼IC/5rdyݽ^;JؚH,}hɛ{yq#1\-1gI CJsz@qy~l&fƖǹ)pMz5|flT\Yp6~q:!n0ZEj8??ETŧz6jœL G)X{ RAd=^yˋ0y,R5rf"pK~AOFe!$K*4_J-|<7)I }XeNj_M%)! ̐M2+ɤ׮XazmY`:c%U}SN=(WQfc֦\3gd{NX߂kcKe;k(WxfaB^ų/Y:bU78Y2C|~^xr |0IVTG-jm/m*Zޡo~F-r[v3j᫯o[I. jn| ӿo{9/nΖH(us}Tdko>|X2W1 kr=΍z -VuZRE0e:T Me~ﱳ%ҊG GZX-X>k:mj~-|p㎾~PB1lK/Ӈy+jy/e0-ŻE@9};jTNr1^Tq՚n@ Zzi+8Z@_,%,<ؔsS#i*O3ҹX8:Zpk`/0 l~,b$ BI U05眝±J] gz0 K . J/ZY29G?vߑiʜ3ŚWZ+)nX{]~A]d4u= 6qbC:ͯؐZ;lÍe?Q*UӳYS3V &Fq=șo*ak|>XX!fT_ZM/ |ɨg [5ܞiƈ::C(WDV)1pE`saPzZΥOUP` 9/(Q\3{3Q3hJȃjӪo{Q]!$= ~(sQa+5@vMbJFAn .g&RBCN0'UEWU$]w,p*ew.md] Jw}Pںqje`+Ms_s'62|L}b5J +Oɬj^a^҃!XQIX4ra7Wnz٩z?ݞ&aRP[\ &Δ[Iz]$Gye u]'ȕ=1{rioݻKN䳼IS+ F?<̂P)u6K+Mj&1*,ݒ {ָl[ѓ'8?>*eՔ[-[c*.MK aL惷48aB$6z{zrC '5K#]Zb: F;cT&xzwsFII Zn*TteS<}If7vŃP.^ާ<<+1FRfϑ(0E!Z$d Zd80L)]YwS08&*i*Am"ɤ @tr (1FxLX6rk*%B7P6OpXya]|I<2(LBCaVF+a%{O21RcFA58qxlv}J.M7O)?2"]cz.)cJsBV1YRs5oxlnow%޻^ `<>=A;'r~_ o`o_p ܸqCjV./._nO?^;T_|wB>#}dd* lm|]h{h7 &=V_:A*0,m< 5Ys@VyCp#IE$kOKeEno cy_H?1V]Za'3t=aƩZCjRk "9 @+ YY\ :lB?1#%*t(eFt2Q0Idl&2 K2wݔklq. ]6FpH[T:񌐮|-g&o~&'ZZTZr"M_jd*2fӋ9n=ghՀrl׊`RTR {oE^6޽()9WB<&L\R8j/QC=( dV^WPp}y2&ujȳžoPk2fW2~k'cKoRrZ`&c*X9Rr[jST>/}$@)BH̕CbE 4vQydXQ֋TH\9G٣)Ǵ"WW VB"4{62½|igVGup^CU[l`f|jUAaKzϬr%@N/p7 `O{O2Ÿ^ 1ʭV& 5$ZxIv_$t߼F2576_bcK_lemaް \tݝG[Op{k[tVCM%t-,2a LM`N(\1Cs$ >?JnId̮݃F0@ 2X++Xb^apk5qd8}1N),lncog.KuO>߳<-C@m2Ȁ:bԯPaXz3t7a:%~k^L<߫BǔRpXg(7\bߢ֪k_`'ʦ\@vDnItb0L@] #$ 2e=rv lŷTm`}C #7?",_cxcyW01gG Xm:2a~nfR˔{}$L&S<|H1?>;9/*F#ȑ%So եn;jBݔ f4"E>[3W/0 e(?A_ ڃoyu9 ޕTYOϵtA3{%ɼT=]bF7ϰX72 HDY/.?#XVx_ =y4WT:) ^뵷{CCo:PQOdFEAՒcUmb c5D@[ۑkTz? ,39y{=VK6oBP.%rm0^2ϥ4lKtcQJ$ 1PpxK^(PNuڳD/$M0ia8G8]R* bm?s$dĉr[pQ~ ۔6A=qoJZXR\aO9@Ob'W^E\+^ɮ<#pl\f\aM~Ɗon@]ߵnx'TAtGX?zzQڽ׆>l)+[g O Dߥ_ZDzlAL^4d#SLz4H#I!0U<}jĤд(TvP&jE§\[63&ޙdO/?pIG*VdN=\W>Ǖ]5]{F5 Ʈ^+ݭħ%+{KVFzy#Ã}\plV c,r /IcyۂܞJQ&^¬D0@s޼^< ÁObLɞ\@SjQ,N 4+'y&a%l"%XK:|vTLIH]+^괯xo߽d9W-"s"J>xk!G3DɚgaƦs8EkB%҄`T2:J4Q"vM#w"u(CEZ &K-.9~3C,9c0x|9ڧLdRP <ӷ§y=^WgJKQXz8:[j`k{GWaXov/EvaF7ir.|˚n%::>zX/#i$gޓw5I3/2.bhd3,Xdj6޾}bl$<9z=ɩx$wk`1#/9 <03yNZ#xC5]c ?}b%՛7nu}zJ|şg%=h|VM3v2zFnݺ-l`r1%=dRpzv* WJ2+@RtmyHG 1ndDG9Mck6:mLsӥ0 sU5] j{N%eh%0Q%RR6T^ДH" 'Tk]i,U&K  7:txҳEj)`z -rf 8;_V2IZ큸 Y+*b]^\lzҋ"GTPG ֵ0FX24Jiho9E<ʤ[Lk4x,,4AHEJO,|üT-U6>~c!H2C]g.٬%ŗxa7p5Mj`X|?l%;ᷟ}* ^J2<( '(A/z)ь#.l@n*^œXMtE"3,R\=Ց0wLfJ- >)z `::2 Wk4%ٺ`Lҏ?5^]pwK"gk1ß<tpx*&lW+cVX/?D~^#+/&x8 %xFCllƊ<s l-_Ï>d QBdyLËZv;8;=F/d@Zf4RX0,Jr"lq^S&ZhIÊzlK?-a6\?xv)u@ Mݸ#q̱'?Kw.l`!ؔCL{#duFg>2nbe: ٪38ᣇh4?LY:SZ-`AL䵮,m! Oe"1#t(#gzPiQV޿v Vk__Lr&f <``#ϊԯRc@Rέ֥̖g-) :en#ZQ`h S]zQ_Res̜>)ġ Q缜4E϶B@Z$x͢HJKM=<PU¦Vˣz#f1sQ|F,Uyr߽d,#T\> ލXf"ER? ]p~ՓίCD9,K$7(˂*8/\xүPKI? %6 DMd^c@ 2z:)w´ż-^/ړ2,Xn9_>F0E-Bٌ wZl3!^#kɅ& t5W_4Td72%df7nG%TeWL2%5ܒkf7nK+ xb 5?;xca٤gvb1`7r`lOh5}[`&oÇбV([[/;3̽{ALjXHA$z ϟc<|T SJ >F. 1ΐSI,G} CVQotq1]Dx+~w ؑ+Fp5 [avݦY l!Jh dw2AQtIHw SԘiȝN[{ 0֯,3yLf RĤPi~m\;o J&u; I J j61a,!N 62ifT {A YfIP&nx- YŅ%LWnHj)u5E[T6p`4/MK$˭M lx2pvCY~ )"3x)ʀ~W>?ԊegԚuo`typ*@' (,W`*>TqE }w(AqcXhot^fyo 9(|QV욌M>(ok #~$̞!I:kXuMV#(PS'.lGU&J '}{jVYpN\'$;S+泷=y*sry;R'&2f1 PYg+~Uׇ1f~HpVJiR.6 د`S gYY˓V5cvS[ko$3LB/|{~ q\>ylzJd;NK_`8!DƛouN߼~\V9Tfy c> bٹt6"[#Pp&̲iIM^9[.p{{r!ۛ[4Mإئ oƂ)CСK_.`JFKĚVW״IAJt %ړkݯ^>/!q!fLpyE졌JVt0vXJZR@R&YctMa3+zx ӥ`ug+^ȒLk[Isy"f>:Bkt)/*JWX."뾸wqtm9;[[rN// awd`榜7_c5D`3D)Tviy1M,g@%d=%L 5 ;yJzd ./1/.KϨG\[O=D+ Jt%Mi-4y-U|8ͧs7W|~y!ieg~r>tn\=>sI|?EiptrWd;qyf!VEQ *&Xu(㇎Ex;SiLVn %YZ^<> d]SV>=KUzf+@3 }P йkOZ#ȫS?(Vi[9-/Y(`]WkxG2dVO'.ek3b#؉, iæ//"ਔ ˿7kKUjau8),^C* ϾŠ7obXQgAUb.ŨL?Acwq{w5h,~Nxo4X/xONػk[nL=R$1:Z,A%8 F[%BIe!=$ ?_K= J]\\]Or(Gp3ϴZGMBlK#nj$&MoI]W4($V[dd`껯..Q 74;>>AX5(e,'vH3loeE**/fD݌LH$IP Ӻ?&` 7{;PK#ڵn|ީoʘؒ#+ܧ,tZٚTĵt%>-Ё-ܰqzHhdސl=vnp4o>;[ء X'?~ ^}f}ipn-WZbyݎlzurl%Yj*^LN$4FR{h9aQIp-/$5la*E ܺVNK͖7n 'L4ÿŹt^\I8}-Ã8<)쓧fØ\R|_ vK,bw/^=5nݼSjL$B:^Ẋh7hcڟ-Byo;Dl1pX!suOU@i&;K b@Vv>1 &X.%u\Pn^ko`0c۬c2By0;Lf)VP ~4FCSt-f\'י$?(NWn>-9zV&ZK^ksEcH xDݷ:Th:wі?sͯ7Zu+|8>9j M`XZV,ATd L{tiH7rR ݞ>}w2<&Š4uXra懔'X0k%I7\{4 9/8_asή2|3u^xEH[Ju|*<JK PSjSeQg'jku$ O}Y|*U~2( ܆:H̗/Ibv26& -QC--D#ʺ5vdy \ ?x$)*ǰ<|X(J '{م|U_<8Mf8Z3>xt\ ׉ Rr=QUxm5d*ͤa)LIyUlzM$tQv[k0<=hD*P%h6wzwl^,=k& 9-=8y <~D6B:zFȖK"م'[ \Sȉc{{ܰ[l"]̱Uk+CB:E/?V0lj[fҲ\6{⃉#inl ?YѼNLThĉ.ӓ cТB|\V50$ M\M$ێ1ǭS94,AľTBk?R2'dl=Ezd\ s‰"‘1f(g/Z-l@Ba-V+*"/!iP$ɸfA> *u֥Ɵ1Kvݡ'9zSr8s1u>֜ =TO%,[qP\oF8&\/}kDś7}1f-T &vG'~#G&6I\eJ1zg)޾~ӳtg'xݕLدWWܔfz)&}rrϟiݻupqq&ފPVkܿ@?Lv6O>Ûr?S)br9xƤ0α/֠m0g)եceYMJ_|!ν{){I]kg_aw{_=j6@c8~3#[JU!CH1ί2cy鸆ޔޏsXU?zca:VL&(C˚$ +RXM)JS [.!A90`cCݰJ5PeJ;qʀA'ab $66P]KZX(`i-yexY̒~ nCo7<0EP+*IAY2d qתyȵ!X1V4H>U,,(.A[|ƫfgPD*%Ly4JYguXyo^AjBXU?g9İTrN+_d^Q_TaP:7[NQxrcKG)튯ʀf'p&)?b]Q8>WzkBC\RXc-–~8*1g1ҙuv0IUڇR(*%:ɭlW(i!7Ri& X$.4Sdȹ2Un5^V8yDU2zT:z~x6l^))%@Ir!(A\ *]\g zU fMUFCJ[,[7]+D:L%g Jj]n&'"B<9L-pocoץ&$pzΙe}ܽ}WwZo„>g:CV`+y,蟻d͵t&@%c-0C;d#[TUƈ^ҍ43&Y֎.y^hn+u#IeӘhN +_#c s `Cmh(>ܕ&o]ջdO,:6[*dr>í]A֐>LK1ޜ ǫwhoO?E\g:D`0&^|v|mtMVs;`DZ( LVI`]Yl8yp<~ڢC\ ]cz[. N?rtp# Hͯ#h0ě7\7$;{;hw{Td"1X0 5a:k K^$z {; #p18Fcs 3"n2L>D0- VCu5 ¥G DukZ/ie_umcʅE5x_T s)Totć㧲ALWzD'Ze%sE(=@_4ϩկ~%Iy&`k|>LL.׈ oR I-Ep61r.ߟu w\)T;-,g#|_j3@lKKi<ݼ-Eؔ^OfIqˆ] MXdCSck< = f cW"\-'${b?\05<[ݜs-h!3Q% ([1i6(v˫\>Ht07|3##\B G۞f@[Յgn2^!lgojN*@-˿IR&rfˑ)(ٕϊi1)낷r3MGzQaTQI.hY[6n~$ WX+|HЖ۴|[Hrn=/( &N&muNU(lIbߣYs ׽?*0Y.d9/>SaBP2\7 kj>S™YSW*['e%3&ؿ{ ޽}S9?W+'k?ѷQpxl^4|*B)/A_7(/ ~9v3]Z,'zx5Z(Kb~(j52i9Rao AUyo0 MFzNag(w1˅MN'ج'آ"SOC\(AUY%`[:Ju,ZԟMlcal&.,\6&ޑ7*'o2`PyeAVt,iV(CL^Rj a{ IDATn!'2 Kx2ƣR>=s[|0%i~KVAEP"]]I$x&?}M棌RH yߑ TT(k.1ХP7}k8:?tGhl pvu0W‚`,&-]~ X^e37[,DM:Lc|fdv[nޕl&&\:xWb8} n Ͼ!n߼'? <}E) (R23}!AL;{ø٨$6Oe4ݘ\=`jv#d{3TIּvdiQi*OM^D4%s%YBxU+;@̜f&`9ZHy>Ⱦ9?q޽:]}SrLB)U7Z0K]ߘ~U#ޔZ`KC h/xgl)EN:nT۝p^#콥}ijdcRQHep(*l_֔iha9gWSk_$ Ʋ(Шq4³:PYhJz R\ >eOXgĜz( X(_ǁC5z>KVX=˾[XV(0$!1Zk+kՀJ yooHTa]Iq%5z<'$>ЃYrn]l# ߗYq/*{KZCҰlW ;JdȕI_vm"&7 ՃV4%C[+i . g׼K﫵h=31Fxi~,) .D;4W4A ,[Ghh~I&IUWX)ldWgI5UEG85\r}An}x6?dkLv5N;$brɪ̮r);Hȇ1c2ڽ\B^'ˬ|6.QH=8ɍᓇoTHEGfypm,wSITV郇{Ga7 R^9'?AZ3 9ܼ?9wx 1%q" k "P\OsI~>{vxzֶpp)=ggҿ/~KΗsydvsK9Y f# ^[$Mf6'V$ Kjvů-Nd^b)?N/dF7En>044$xe&ܠLzM6?{הued& ;`1l\@dz@u 5e7S;i5$\^ߔVgYt~/+V޾{ÑmdkbQw5:>_ g8#8aU*Q5!VBg5q+}~G&$5^V!qI&s&+˾ =AQe{:2esezTh}KjO{V G]?Q]vCʙ$bUAwxTFW$+k 4EYWv@9y m2t@RDH㑼͒x0IFϗUL!l@|xr}^N3W?\456uh_drd.E^5O0aH0u<7Β \2ikMvuۋ _k)1ڋzh'M@3wƼjǫ܂H" a%Ya$Ɣu` Jƻ"ܿuGI;(-=:cN9'onpqv>GӇڱ-7NJ {;;*b)>^:9ɱKIT γ[,&opE9$b3Lb6|n]6PV Wwv1ɇr/޺+AW/$9=9٩lC=|/^ٗ0g*Exg{G]M+Jax׽c]3:9_{dGk}{eR{-5v`I{[l{aXT- GP& ]`CX5tp{\gk1 &h/D=nt?IMbg9 ԇymL"_n\7^_/~+`Lb [ KCW ]X2nzw$*.ꭞW!ɸuZ[]bZnݽ1ÉkuVF+m kuk+& ݵQ,NM C<|c̆P童# [L1\,q~vk Xv?s*/M>@pJ\?ǜNA鸎}i@yJ<SpOk[ ,]sß8\+>S,vΊTzǟ/^F[L>O̹`)r=O,|icxMCUASЊya9{XqC y8Ӽ?ߘ\fZMJ6Ux4ז7 gmS&/+H[Q۰wJ^BHQxpԽ48D3 'H礝 ʥKQi$jod77M'(9So*޻hwj4^aOvf&Y^\\MyPok2GCd#W1LhZa7Ny 71:.>gx{a:=\^^[~\_a88Օ:L7m)L(b\\gA .PK"f;4y%|xJ>PoX;A)L!;d]Dt}W7oĺ?<Խ_/~A_m~/QWX᠂=ܾXQlJ|>]L{Kl9ho(7rq%P7eh5ڹ$i齼>OhtRj.TC1Zk))2 &^}q\к$^ ԫ`Bי*Iv2}S.ljWak`*o,]7\kI&6٬b2C6[ Mzb%*5J S)f3ʋ}]"@^]. &3q~zdꮞmf"J m8pڂB:l\]֊-gZ%j2؀XZ<z7v&r+)7ѦR.(A:}oCg!-mPGKG 5`AJoatTdw)(^VAJ;d% \*Kz8 Ab[cKϤƨ006ihB lA:܉ϫg"2z91 b<_CPͣy8{ ?':3``E>>s^(3% D;؋xyЫ+|RP_?Lr8PeT-]B<& G#ϽFBh*aR3~l{ AeK|Kٴ*X`.:)={H(0a61KÚ|eMP[e0x#?/ʯ\d H̯"bO1q ݱ6kɭP!Ŝ%/1IZbtv5@.2޹R%󶜼~ $Ab L_\kB"10%ȕIL73Aa1j^k)xRx!{(1^cddV, C*UomBG__LDցǷy5hKDpkؾ[*%(S .(_%f2S6)[Oy]$t }`ۃd8* I1}=87v0s/U /(/3Kܿ{{n&s% o:ȃ +tmss r쨐'EU /(l2bҒ%peAe/gC KK'ӝ[7sbywNC%3kQC9 <ЅTpb࿫_g/O~,?Z`$ HTq>^5q"BQz4PAyL`lm M0u=8} HknXYS&BFYޔ`!a~1Nt!.Or}z2׫PGވ,)ӂ1"N|:/,3mxa v~N\Nΰ&b{Ҝ0N;2U#͉*\Z$0!-L˂rƘYNo FoߣUqեR)UTH+TxRl@Bާ[S]L[|bT IDAT )̽lzq4 '91#Tsa 'RUbY0 ZR?˗E퉐 RLΒ.ܲF=gZc*6:u/1Ktϑh~OfR/0υľ[EL%Nk{ؘa`0mZ0M Fáj60]c3峀YW95'ejˋwH{I< .-v5uLVi$H !O̚ ˜ DWWxϲQ2"*!*`Ao%K..$1*A!>u)Ж$eqşτ& 3YIش2PHuD9hK΋g2l8ԭ_cfc9ˍ8qKrϒ'>2 g ɯQ!-P PBLrei|uu =lvFk_@@ Û ly3-jO-BH #HJ< kқ\=\*WXyW8m!*YcCo\x? )3ʽyZwcKx J"̯ݸ`s>Z81mk\ޛ8M=_ KV+;|:O>"fHjp`cr;I9C @p?|&VltL~gBٻ',B_Y<1`Z'z:M/* @s'-#;=Xʸv1дh6ۇ0]6HTpO0ݫc|Db.b Pr>\Rlg2My3W2)xw׺ogj`UB*(wa+U P)Nܚ7644+O}ZQ-Zs Ib![ PJ)$-+ػ[ۻbޞ*'+Fzka YVHQK: P佛i)xt̜Q~6V&s7g)3$`"O`լZk̙M"4V?Hr?,S?v tjlf^4g1DXɗR&Q=&OD_St.xkK8cPZhnΆW)WQt1:K.,tT/ 3V{Nna,fȒ`sUd> 3ZRW7W3 vnckkO,Lv_DM5M<|w>lvq}3foGx-NNO0_u?$B>1667_퍖o4Nsth lbw{_rI` t ~!Hd1鑆.xƪ;x$u;|KT+91 cuvSRQ9@hpU}'gn4`u>󕼦:C֭jFW-@nhqe2r 8_kbC0ϯ63Kl M֟1I9dV&%{5)g.ʦ}=ՖǖBU0L Ln?:wprr,5sϙw22ߕ$xTDihT{kX+.\fu2K{|6Е, ![_#lkdm$AIzVJZ7e#*ӁMZ례Q^ @[ ^^Tr";1 %2!@hTt9_*/Tn~qK[lKgLa9TlcQ"N# r)C(WƟUk'RxeP.0=K 5(Y~WY}c?*jx] (/ÏJ=˲t2qA*>/$tvG Lu~wꫯu>c}ܾp} /L̫RZM:փZR peUC˗G7?_fT?^J䆝$ @ pneN l+.W..}I\ġ[ׁ7F)NS_y} L/Wy%sʷsvnԪ.QbۛS\55I{?Wt]GNdk6uZeLgIƀY3ٓ|XTLs51s jZ I-Նݬ!ZαYKqUtPz*1J9'Ù;&\V5eF)# T/Ɂ+1}j D ޷M޷zb+/{| a AF@ 69DQNI~rI`5--|Yan2m0tXp؛2SSqzrwo7/AԆ+Vc:i-BPDhh6 tFJ>Bt^dY.̤a֪!~f%X`hj`''J>weYy2]`xWUg|g~\`ojj vwb8P QR޾y/BSdF5_ #& ԛ[T۸C76Sy$eM952g5>~߼Gh puyӡ8ק/&Hӥy9\7՚ Olt|#khwOs|Lǡzk51.oYG c;o1 " ״܇hI`kX۶ǜDmC*2GR[$mKѨǒ;i4TD$ɋoLK`&2?')Ky0r@c- S[fD~֕V 7\Y[#F6Ѩ5|)c9aޔTbޫh OO=Oq_5;:=QlV9:>ՅUP;tz n//p=j;hy|H!\Ie@v[~<[b6>C[Kދk* pFFE[-zyybR 2o?P:,:p^\7 ^|ϟcf`_s!8|ҏڻ߾eu=_={JMF.oW>r9ѣǺ'ǣAU <9{$6+VSaU -$OԽJX eqW ]uz,}`d8\CV#nt;s6޾~ra+dR"uk7hm6kiH ^<+US08r;sL2 "̞o#eJrƬ {HL&M+ᗆ$-/ `Wjj`;ڒT%5r_m@>xm~C‡0782yz 4)MHP hSyRseE!kWG>JuK6/%h2`a'oz_=iClocM0ءk4TTaTEMӕn+}i_UiDj㓪wUot0,R@?/CYIa>+t[ I=s$禄LjXHl;:<";MrjcG Go0VG8??/OͿ&+CZ^"8눲璞Rv %htl~:<#K'#%r6ǫT+NR*J̔dc %/ b=M&X~'0?kG^/y\g1D9:Yɡ&3yTt/A6]@=Jb&SWm $5NT8$b2dp@^I⃉= IwJ- <^[۪zr; -ݖU8/f˯Z'&2igo8?;!xH7<Rvߣ=#3sdvNwH-Z2(G0Ɲ;*j`_,(}<ޫ4~cyD 9>zGGGdG J~G?coPO4d(? O~=dñLϟ+ܽsW8:9R0r ?yp޾$Xbwwnap}eϰ`Z0oqrRp:~\ۗo|[Vcn"fs]^.p~~^oh6|K;|(.F1۝]TZۈmoT%< {oFOZ C5xla5DCVeaudJ{nTE)<f-hT%K+Dz~isy.z3͗ )([.S=yv{JS>N+37Ag`8v۫l>+7nO1W͐1㼮 ̈v{~ῳVIb[,]B7^c T?̽ƮJT9ĿW,0%}{Xk2BFVE{d<T`Cv|3O5%E\hR&ا& klY(//U&g5Z-Nl ܏*E>`:`Rf 'n3aDܱX@h̘EPB(j1>/]kk9+s,p;5YӭUAރl~*`ZcWC㐶AElb Wdzt~V9,HPH?Yy&TD~mQkA=PO/x}N f.-kXއ.Eb^g(5ϓ &SZu-Lum{PFc*ub^_ ߃Or##aIbҧ(+&U&6W(7[NWR2&e K%dݽȓĮYJSsJ(+%-c2=M䳥wIY" BBH4Z~{%~n5__)dB"7 Wkhll`Ɛ&qSZ.Qmw^+11]SX.TY&Vg(JI{*I_ _)L ȮҞ8<~.|W0ݖ`v8%bɪ1d]12"0[j$3Wy<+€ TБ_z+4ḢDdq!\~&6MR-_KvÔʦx6 #כD7sYMäxf~qE`M֬G~$vV! Yi5Q]njIwk 纳c'OXqC:wgXjO]ghoT IDAT^޾}ϱncw+F)6=y"f?ًn:e\5St OI4ːan,u8r\qξjUE%ny|/u|}I6*q>Gb!޼үjHl?s|`}Օu٩`ce A6<XSx?1‹_ [Юwb6_m|9k7/^BgcKW_a88Pd b&> ~. ;h:Hj Phcp}˳c'_o5qzj!?j(i#+h5ںoc:]uoImDض(Z[T>[/VRod%y~PqoyƄ{^7aCw677 $b9!6vREE aR.㦺f إx l: f:^$QIzsϰ9Qc V.2O(/) & p/dFUSZɆt6qsY&g籍³ϝjUimL&S>Ql5j604Q*]Ы9<!J?Zl^@H>\IPm5tDqT$ScZXi௲wy- - I}~%Ivg4ZUGؼʌR>^[j&it8çR+A F >^z%+)SxZ[_/%6Zz\ɚ|:#eRBW+ #!/yē> /!%?Q.YR+j&dLrI4[(pʛ*zJU\dUnTz}3VxAeVU @CpD@WM*{]fccpucz;{۽jϞ ;[Mh4kGuB❽ c,Ãh~򼜟WSEP 0}#Û;IƝ~ZD< woȗ/1Ofv m iUu-/MڦzX'VBGyЀp<6/BLjlrY$)2D>Zʇ9jzkܲx[蒚뽻aV?5Ijo i` jv<Ƨ޽}uH8إ4y0._k(UcgwObRb2Ӱz,B2vREK/PҾao2ؼ;["xϴG/sq #-4[΍V3,?x޽ykQgRG={ٿi,)tsDZ6|X} ts"jVb{_DRbSe.Ka9AWg$D*Fq;-sJRWTR}mS+*wIgD( c1T7oxZ Ĉ߯zFIB`liCiUC}z:ͶJ3>\_P&PncCV"_aBi]5VcbUW10[eE^Im42JWsM5cBX)R&C0WL:L.8A=+]qCu'#L2!|j~K0NUU n@We"qX2.d,URbFe9s[d/5_BzT$lVQ"n^VDF%9rN])& hmv68mmbkt?+85;#uWB &v~)!gMKȷclRlI .va&/PIR'`W\9`~\Ւ*R8L>;ճ_/y B7x2|" x˩? c%;'x)nz}UY?| >dz#6?xxvwfc~3uͲև2Go՟gW*uWң+*~=:C9& t ,gfQu3 aϦ!]bamdN9YyfzfdZid؂C泥|{{:_LշǂmlWV+a[pC]Ltquy(M%k2Y`<ŝL*o^k{S^jd?;yS=h{k[7 J,t,TX 'R\h ?=n<۝M xM3Jfϑ'v5󰵳jDƆWF9v%v69wԎ\FirߌBV)MEʧc5% QUdƤqo=$њ lMr"? ˂.VT 5@]m;2+(RʔR2nķyy! L=(jJ=/AW^dfC-{*K&Q*f}x ` $$[ZF 'dկ< ~-,$`;&5[S;{ؒ:5T܋vg[Z'PGn ܮ%پezW&.bj";zc^_gt乯Ҍm)[u1f S2i+9Q?nɴ!P}j־jo.ިJ{K˖SSgJu3volld&KU~l-IgS}F{ݥJ]+K5sOHʐ=M @;`k p{6f<[h]G% ަU,&$1@+gUZke&7Z(ѵ^LCʪxh;񀛅:3[mb~[lW"ih-NiP"<8K̲%q&`kSKf](iXU%gUR?:;U#?D$IC:wr,UHI,fg1=Vܽ7)Ӓ5Mo.p&s*ًaeiY6WRu.`>U#nI~#ddDjqгxY6Gm8kU"i5!7:Ws,3J5L:Ai`y;m zZL>'𝧟(B)柒R #xs*1TQm*&qj Pas%qN߾lpj>bG1ꭆjDZu5D l=]`o\ ppIpd}LV\ )J-l}>٬qs~t"9l-F6̤M?LV+r LY\пeoW_n=|ރǨ7[bk.9%,q\FUlu{ b{`L[#O)v'Zqcz2yfN'G>:Xtto߽̚xn+vO͛8?{J@L}mDݽ[?8;\^#eX.ñTxwn`=b>=ep~%V)7QovY{~n^kH 7d#7i͖&s n]`.m*P}y7nUЄCZE=$晿}Vd͘Clh4x/5EӹzkGj #Smft/xY` ϤjJ?~K=z[[ܔsnkE|T=2ϲ""t^,N*ep-1@_JU3Qd!Pچ߽YVfXDkfh`IA@T)= qXXV^ h1pOz9Ǝq(&vV{I?G p`Dq2 NWql ̔˧.(˔ےi3'0R\8 ~lk1Xa-y5.RG7fkp@ͽ~o͎Rb\̅\m2,_lzj˴ɡӳ6[Inh,uysn](N)?[s0Wy& +̈ ]u H6 !K$. Ϟ=C>Dhj W\֙LN\ϝu BJs0RߊMHD -. k^D`v}}]W73[n^#`H|.UpD-4d4*_V,WIz+b>µ eZq^zg_߿' oڷs XZOO)ùj5 7w)fjSw <\677ĤWIDr򴶪Xhf$<07Lh3޽7'ĜUi֥*}D9syIm_^K0PEX85Wʴ N5~(-S12FBr_SKΣ4ԁ>7죥S 8pε жgghn61[MKy`Ћܘ6jmI=:FV 'G$мqxͭ櫕~v\`5ck+$.}1UWWJ%oϖGBrh~^}̣ nq51Y\_T5h0؊lˍl woɇsurnŒ<[ <}o˔I€"D,U|rRmSS IDATpod0C'xt_=Zh5KE;. -v'go׭֦!0?78{[Ǔ!K2LCUa-+U̦-\wbwc~)cznip>n?@q}yCCc5Fk拟a8֦ifw0lmcҭ1_INwz e:P`$T!.ђl}1Q]UT k>ZW7rAFwbcsSEssnl mZ"9gd[Z$;~{n3k)AQt:ʳT+՛#Yclk~GkJh |,)0a)ָ~a}D^O(/]5,+M,du'8y!2}Xj:8φP.˦ 4[:v+b)B%2Io12VUPKᝉ[T i {"c״5j1.e^31Y\ɍ,=3pÊjC o^SnU<@6$W))nU;v6Bp"K-(:-.!{cXN>88I!7o9k[a{=pV6IJ JCNpFZg,l$aIR#!hœLoܼdCuGXmIbUϬe'3+#ޓGC7Ɏ@ʀ~ 1/,u:[Jg i`g%lJU$6)KРDEi24+9If%B Ú(u%Js |U=)R't!'g4J P LV5cl1&by<9Ŗ(^m:^< ,l(qIWAObimL̼hJG]:K?(ɿܮF'G]# a)BIQv\öuIg98>;K__JJ)mQ2yM%Y/n { <<N G#Z]11I {X26Z(Fnl},rcn2^_|W=߿c23կ Պal)8ӣyRC_W tL_xg_}cp|z?zws}Ionrr/R[mtqqqTV&?)w sUJB?~}qwiagwI}]'%#\CFVp$i3aL'W+ Cf60``*.88ᰆH*65?\79 ;RYEx1@z3Cg&YfK̦K[#I<:*K-j]{Az3-l"F52J ]:vrI`1@6zUI^'К,/ 6q=RA>dÿ/+IҸi"xAM!hmcG8-=v䉜L=0c>%K-[w՚Hg457xjhD?4xzh$~J;1$aJ}G͉gDN krc2 d齮.MBCpNG7Wݲ!Ngc[4 Y3'_jrs/64J^MS1=L.b){XeYbʵ)KfUV {H5f gĀA>ivuWwT"tVW 3;Z{c\@DTk9{ZcGlt}%.fTAqo 8֞ѹl*ȞFn Dc,z ]]VSWS ƸSJ~fxD(nP]RZ- &-k[E,B &-J nE^u8aUXL7?<(3_̼5iT6d/ۤ#J2gvIg[sҵx-tM2{a3eM03d:=ƃtmn|z3?ż&f1ۊ f olnBt/fT l$.s`.bdxbFCZ>nCZ./̘ٶو-¹H\ޑSFNg^>O[ѤGƌ\)#Y,.VK꘥ˊv77M&@ȳo`cK99:p7w>99;3s\l2A/{wX2ؽ-۷ ՓN͹jSsp@{>˝;YăOgCaF3IZ:ⲎԚ[SF@B5 &ZS3EViwF1@:%ɔZN1`a3]QU0`sa T&Xz&c{!#M#fу1ZΙ,v14'TSWgUlΖt7.e6s/*ވ8F(/h4sn k8K_['Z\}..b0bg)42Z<NS@~1r/'^ޒQzIL+M>sH[5zcJs~ r,rI]j!oYčsv|a+dg.+da|)2&0W_.iP5 c-g5: mTiQh]\ G֢d*wutÖU #nU*kpυʤrŞt$UK GEYImbηU!\YqkkI"\~7'dk}j8pC 6FT⛠"9Jlzj#L5 cM95dYo$8~ ? iJ/ ֝rmhG2cg0*d_khj $ FER'1͡YZ'U}=$Zoџ oiԣ,xw_ͦ\L&2W,._b)ә 1ZZNkyLǗ_|,_y)J׻4@vWk}άF|>@+L+r RM,6&T\`zÿXZ:kͶ&(Hlm $+pF,+@\#k|Ua^ 7i!Rbs8ZWoWkع>e:i"Ԕuo`HeLeyg7ؤ'NәKy}[|x-TR2{C\% E*4]";zM QX!Y )VfRCɌ[Tf Aٮ;F}\"Ņ+ug=RX  ǂAӐ]EPAys,Z\14BAA(zO|sݫ%I>\TW)牳b`,x}rn vqSS(uCJwI՗+)Z{+m9=?4;0|Syྜs&qZث\m]38Y\C-~]⽋59Ar''*Ĩ;tx&eIbbf4oWېJr,X2&Jg\]| 'ܥlm9|FWd9;~=E'RFyܽ';;W_*?MFwFGNPgߗu8t2^Rr9e:BGrrz%X\ZЃ 9חCyf//.ɹ\ db>rAyCVRe!s9?}.^~!'g*mIMy{xLtggx2d23fӳKڹ%t=vi?,hu;zzybP"Ҹ"54e3>kgkCk͘DCA ȷ]j4E^4_^^r}%.z\/b| $ё zJNWf1e9hjtF׋F Ͽ/ SKg 4YV(&t Gt|BP85єD`zh2]D 4$`&ƢYrCOOm7:CͻT c|Wm_N. ZiUH0^>e9FIr ZLL " 1%-S10]bASqNӹ h[lIAYv10ښB#Q!1+NZDK*3``~%pznBAˢY;c*q(ILSG {NZ„YfcL IM"$&Ȯ:cDbYϡnRH6g%p1ŕ0o1mgq5BDN¿J UR]!5VTv cVɻSFӼ='(~cm =M,T$B.μ n p~ڢaWڽ] ,p⬁Or8V\qwy~obL Z̤pĎ' b2mlHRo0O_p}7ޞܽ@NNͺhV5f|0vXXX^3䧮E@jl*J:,6?DqMe`R1!G%) 9~i:CT5@Ͼv Ȇg9=9M^&k*9^g 7[q,C@ &$ظk)\BFCvsy}\Нvge.*bBQ>Y㬱V͞d6 8NZ..LQ\Rm PP.@M 2ȅEδ(Ho1IXXcpET c$,* %e1Tz0H>J̾= [$Ҙp,T*W2k`(&JgZSIq :D;r^j/ dv_YK: }0@Y=~C~SM&td8r^,Lt4^ܾ-G,;Lb<>/$.+{9!ӎ}F~+ڤ@憜a4eNNOz݁Q,p5ۻ(LJ==3p{]ͧ׌. SYƲsvS?y3d4`k.*\y_JNjrkɴ3obnp<"rU4v]#W8g)+.%/0˭3Pn4Z]ZhėS/?3mu[^>_ٳ.ޟl*plzyf09lZh4#tKsL O&siu{l5;]Ax4HI .Aŋ*ԙuflubD 3Ǝ-3*8hZl\\1เ~gU嵞芌;jzVO`!' Yl:9T^&,ЗKI/r~+e j$Hr}V2->Y \5 cp EU;&Ky˩-$zɡ4p\=k0k-lIl]q1n4 {f*. lDRZ!:f,IYL\ gɇM\mv5A٭J($QIk*0"an/$S~'JE"] e7`U1.dP X #9Wʂ:`tw .@6UcQ)EO1ksYek[bcs9'Nkh:x68줕 p&6-! Vg3bl'*5Pf""̔@Iuō.N#tq,ӠŐWv.:AC#Wp9(`2sNԍ8d8p*sץ1U%2n7"zY:*%d"Z]; 3|{S@=?;{`rtr"ۛ8ۺosV16T̛ @:`7^oĥ'|&\kf4;h&iG.=ɚ}w\w$ $T˥d,?@1M|sU!AŬ+5jJ_{\7zXG?<{RZ획; IDATL&W/r|t+ [[|ӷظY3O9JЬɎ__XΝ;ryyAGm(&=~o|CS&(6}鶚rqqbui5z 1.qݥq⭴jr-%dlz(RUdx89ۿC(y8XSd.- $pDAQAϘZrYN[ 9Bb0k0k%''dCM i?3\&R*|@F qUMUF6wu!#*ԋM½J17DdwH9s' =}S¾$omf Bڻt:L>\dul]!ı\] Gސ,A1gz L b. >ɉ5g[yH%0u@6U&Qa"lL|^&d87⹬R38nG=m3ʂUMn KG?QUL&&y_k yy*Ü赤'u}M*ism'yϵj-rtJF+ҢIsK޼=r]I;O39KykGd{|5{Kٓ4FKgnݡ 9|Fݣ9"yO>d٥fC]6}J6ەFkCפRNX$ԁ]1g7p˜H &Gpź<`Еx̙{4yjJU"$Ja5JfcW;g U0ʙvA noQ_J5s_r#s ; Z-;,JdQ@1iZ+eiWJ^ qBF?3:zP}E[U] i`{X7`wEP hI%-f=-pbD7\8`2W"ڡ&5\ &335MY$v~cb9,%5z4̠ H2MI˹!5Qg61o~q U%ݍU9SV%ZgO%2]m 5SYC_inoM>X<*fWUJZid]9.>~1Lv ̤\9یഴTU@#-x%5Y`CgJ9mB_/tSùRvG7IRfת{NI-ާ.c&Rݗq1\hP$ hָK>`pxBX)UdZ'9b>nerx*{;;y8 凜 we섛6tksCMӞќ RAo mJӥ ȆbA [0]?3#*䥉g+%`{Vs|$E~-~5R3Y4dg[uߺGplx*|$R:L `'+۷ߠt @=j!s vbBY-$ooXݿG32(;3gӤN;wمiX äxu@ QF>ElV!bvegwW~tw@xN22?p2 I)ë}.rtx$-z8_c&-kDB62^0c$;[;rqFNN_t¬-& \\`Sk_=[t?<9-JdZq^nO p2eh2kœ_ _Ih Q<{ $]FGn9d6rh(?Kl oP_#zaSOڊk|ʂ`@ױ0B'dJEHft0 ׎ꕴӫiYcs_?DR?:+Cp(}p0Df?fT9҆S✟<d&r0m>*!;RaYSbX ^_8VeelC*W^?Y1U74X$ 8K$n@ ДH.~8̥;KpeC Iⷂ_{^d κ{E0T^x .É: N⽁Km92)e|ekRVJQ{./| .9R&&שǐ)F'_y;AV3O]9{V}wos3iev3tZ2$m$,/U,t&„(tHk f$ IΉzIMƛy,XȆ=+ 9ٚ:*#5,a2ܕvt$w=/_$/2V3'ղU/Yj5I5:*Ӽy@. 9?tKźi%#FՌFA/*֜xDo:5gcaTOIN9KHYFL;7Қn0b Lrm`*G=Ռa8'Aj6 |jJѢX+\\] G>sM,Ke2+lL5B)2e܇pcX:=n5h{F*aveQZ>皟k.)c1}oEJ9_ސ|)]Q0kiI d͌jc(;ImV ͇lsAɢ !ʼ:nR|Ilj&E(@0DM:FfrxtD DLCi߻lsh6Q2πGrk_e տ:/^0 S_>L6mO`1wYz]ڝf#bǓtMiTWVߐgr]| ,CIV'2d2(cwd{/i{q |ys{rt13b7wn>K>WxT@/o4ZO1xNa84+y8oADlLS˗O@㴬&֠Tt붵@ ^.كyƦT%Ƙ9ṿ${x̃\ٷ_P}$#}|{9_ىR- 曯ʣ |,o[>ow<зdxp6-!ΧUdZ/'=٫%_X89;ڋU5YsLnt[2hd<}+\ڛ5[Rf@^a m"/M~´l y2E8 =bpjM#q[miQH]/9!WϟjdyRD L)#|Iud!4,BcGm.e1 ӧ~)_?յY f 髚H4ɪHB3@&wP1SO~"d:LR(%ʹ8/\S$Y%Uׯ0U'935؆hP`HDGzά/XMөbj9_JPs1qrPoa$Wؒ~S2`J3lR}|f^ͼh匡]DYi3m.HiY+gWY4 d(:Hm5l-981LTe.dq KaXl(JI,FK洓l6:RBj.\}*]yr.y`{1^+AXrڧf\Qa"%dxKny2Ĩ;}ٮ/؈8΅`9sNYufUQ30~4 `܄ϋ /t(}4KuAWrWc Ɂr9A `j)~_yvdח} ^NЋyOn@fzt|"^ 0%5Ft,.0M*/daF-b">kD.ۗL)\LR./drFb(P..N荼=z#璗N-eY裙46 ]:vi.Z2Rwe8T0l5e>Hel'x ߕ;w- ʒQ;ۻ\^VK-DMcs>Jv_Hmy{$ܿ,g'RCJڥTd n+ dy-ɘ3O| oߗ]:#RE.._^f_:$]J1llݖ~rgrk4QbfS'&W?9iPf̣`kMfKf0[.QK}eVC)c4 `/8d>x~ -Ǟ5x-CNj1˜JoAMd<|'rtrFq¨\_]y|- &YAR+N3Bv=*fZ(8g<(Πc.]ӂ}|ҙΦ!n^SLj= ̓ܗX+ o@#F}8ckVVe4ļ1|2Ҙ_hS9ث`J{ꂜ8D]mc^ @~"円o``ZRg*K.fd&!fECXe*qcFȪ+'m S~{NJeO"3}d*CS3W(X9sd4aGJjnwMp#7>)&I9CVT❋XP=dUylv76[f`uK鴸Jβi͌2C{U`˜RwG; LRI8ʠ0m V2=kC(3u^tOS:r`pcLTEvbIA@"s1U鰯  &I&4~REy͒ 5 T5' Ѻ{LVw݃{G IT&P)Lތ%v~5EJrk߹Ċ`zerLk' d`R#|5yv r5>6`S[ {2'gn{ v$y$,o3B(Ʊn6da#?l|ű\JZrsNnY.l Y:HpZT\MeR!Te硰IQWt;\V5 !`SچHIJ*JPJ$:"x*yGöCdnB0O+KL lvX0Bh4YiGSͼ2]ѼYK5+plV4 Z8L݁lөΓ'#/n=$/(lOc9;=9[dե͎>lIF7£ceS!qHHmHcp ; #'o`݌[Mp!턹آ(E/|,Xmd Bz[wJ֭2_!k9;{5r7=>}sz*m؂=:I[]:|&VO~|è?l$W,WCͯ,#ՙ{9Y1;wկ^<|"֝ۜcٗw<:=$#m4es{}xuy)|%̎36X5!OF}^g9+YӚpd4510ln`+mUw "΅ZA0^ )49+ *YPnʊ}| :4$J 3Ds |GXnE0,Z eщk5¬=SC} =Zj4_рۘכ~4sTlkPVR3RS7u3Ω !"H~??-!r_rMV\Εݫ`|ZƪtapQ*QLj!U4$ }ֳYC,v`gO67d2K9_r4݃rxv*OlS -7_{/+Ōh<l90Qd@p 6AWlwV1xpaĬ-jOWZH7edbn-Hfa)솜eQ{/[YCK1Ypy:(Cob<2M5KFt2b1ꪘdϩ!fuD 0x_S;5N-y>s,dN-&s[#λHMҬi+ ZXTr YC#XsHfa-BIjN]hTT:(9Ź(1|%?+#`0"*#`6$'K4#yuz\/t y;̐\rx)r).Xg7dg{:F%>;$(ZygRK5 na 87TQ쀅[, }&N_.Le<)d:nK"1KBV5eےxk\juK+"iI3c3(8f*x_< ZG#yCyßȭ;dhe2G@o/_K);x?=|Y0`덮}ޓ r-y5ƣ+-J]"tmHwk<FA<^ڭ> Wi"WΔ]N]L ]_h ! 1B&9h{0d) }G/ffE[-kRAa0{0LX ׇwЇTc 3߸O0 I*֛*~4ZpPא:=ǿ%+X}y+ֆ\_]K(7-D sa>0/)|=2ߓzKu]7gԾrr`)tzklj6?yӫڳZ2IM6"`X7ōe֠IR;b2 󀓔ãqݯo4sBgQu]Od^3Dl6MRì)2aJOH2F4l5QjȆJVfq<63^4#M$ךVBI7AlpfᕾZ{^/x "ު &M>6%dopNJ_8#n9䰡 xh l[uG{fx*vjn_gw E8I>w6VhCEESqhۈB"h.fՠL߾: IP)R5$&c>xc~ƮY2`pc46y ŵ21 Κm zt-H RBn&G`\P!7ox:e+bN_ZӻlrTQrZM@\UZcRn0I-%q. URMzB[ˎQ̨ƕTili0Rf=,t.=믞ʝWO2N08˯~,z, ޾yRF#4= o$T,/>cMIEW_\R,`2Vk@ٹs6yNnB|>䲊>8fK*2ƞC!G|30Pf Ŋʰ\7L} JQQ̂OY2(5{2 U& óٌB"7x>z_WQ^(aƸlHctD#s8 qUHiB|2Nh+lB,M5]_mt!u&J^3fSkvjgqN )EyjC٬Ɇkj.!,j 5*]͜_a{/ki}(LFsj[k$pO$U,9WkvxA̱ЊU 3q(x'R,r)|s6,|z55^so3gg璦 yxܾμ 1:ݟq7}m f̋SftMi2Y7Rt\}3uUěB h? {˼?Hdt;!rV aXQۮU6Yx^@S`)+)moIf@^Į TWxekZRg4DM̮n2>CX кmi`kKk.j8) DՇVcם | up?a06 y5pAjɈDAlej̕ø 󣭬هS 5Nnq& hK9gQq5[HݑՐ)Q2oAQl¡h$>~":HoNp^:4Aq%dY<22Z(13d+R, B4/lyIJt)Ү#{Yb*k4y2j&Cm[D/ FEf3`$3OG ;]4"Hu4vV}j~;\FeVŲGc"0mml񾀤f E!~ e%sA',n?Os=;{֮V3)V32m]{j6ڐ w+vq2 98gh\lsA3< Hw]]_I$; 'jgbʫWϥ֪v掼~ݝ31[t9޹-wn?lBoTx{GNON( ve77 c1iJёnMЃk14`ηwDcn}: fj1^CiôcgG(;xS"6#.l .oŽHɽW*ӄ&h0 sdĒm m5iZᤜq cLҚΉ/wGIŒsW?YZm{1_,X@32F,55kcF޻2OG2ί nSEiXy/ _tnZa}]ka3ʅ5E/"$gA`&ĸ Yett ៼n.AZO 3k%KꂃrJKsXm-0^_f.sL*jo;eOYWqU|L`*դQZT%.G;mfܣ|I\+&Qv˺GNBLj@M"،͐Xܚ{ypI62h6k35kNᵛ,7A}#雬u`򥺮!&R+ cFYVX}XկUIx +lS IDATzb>*T+dc˫7fDm_yelN[E.B~*OHW@jʌ$[+}a?ؔS X'g)7ya0_J>ut9,2oTƤ W`X)rSZK+3܌ĥ~-&\\d21F2ɗh;طZ].NN}䶩ʆknTYW{Y33-"f0sdNaѯdPɻӗr4ejV(ҙ֐)GF@V3(u0;֐=^VXB䂑2aVt 'FhID8IR3sMTb$ o_]`pRRES6BiK QDJ 5 % (2:_RWO2tF=yuAsCf( De> E+΍*fk{s3#K޶H 68O[V$K 3/!P.zZ _|3󪄉Y( N{(,HyL-%e0mIɖoWhe)B&:m6i9b&,`ļ)׳oɝwY94ሱzmKJIa<3 {vv׽奌f ǽ|Et\ʭuk_vr|z"?Տ>%ʐ-gSi5ڲq 2(1Ow8'n-#6jhd:]?9×XLedc6yp: g̡j^k6lx&[[#fyKhn;D@ 9(dx]4?&ۛl0sJBA ./љ}#o8lJIg`ˢA RZ%w}O%wKi9 bzD^>\O^oJ1(gd߼t[ɚ*ΧiM23v$kz}N I/dZy(^t{]LeNVr~5z/r,v_㤶zlXE&B\y%-BZͺ\/%5gRϚr}2YY֔()ϋT=iq5OWM..^w`ee>{ekB!"*[ 59~ƆHd׿nbט .eqrޔ kkKLq [S/R2PmBvBÆz+s4iJ$UFlå볖GSLޏk|w0t)3QO,`X$HךJW4dR.W;HbY+P{ ^đ&B\-rLےAs'c=K-Ìk&]ɱ#f/f\q.滩ۮ_:e]+c| inmL/ µ0 c!3YyΦ&Ҍ$'+|zL~2`&`S<8Ύɥ9,MJɑ `^\5C,!^' l>"3ֺx\ VBL\MS2!c›0u#ܲπQ_̀Pը%YYʹl*{;;rU`0 I\7d42zZ'@+|LXFyh0uJ%;W,hYlEǫ+EGs05FGpbFǮ1Ub] JOjV,9!Gk `LReH:dž8-'!i)+X8&V`AcY,QVg={,3焹ޤ7e|C`I.IAM/ q B̴+oӻ]܈8kΉȦIP{os} *RL*!O)BVLM84s0WO? !7q~yoРbL%ǔu*0۽?Fkp,tnqr>`3v +6c RDM HXe.Kri40<<)=b|hT[DUv ѓ6uAʗ󑀑JT1[.7T-]5 fZ]f .Xk>=~t Bԫ1 FW3")ܛ[[lD5ЪϑynQkw0M޽B%}F"!*&#mBi-L0Ƴgi1NO 75:h5:x%nQm06y>;=a>Vfo^:Ǐ6[ |i+<ۺuA@-!0) 4fsj!Iq2hcfgW<G/ټ-l!3'YҺJ ɶ[X&S~6h]$s}Y2cqFO\ 6qN?[[U=t}"jr dxBaL QFZ l48'~tz!%gKtW"6\"z4;I@; (ۡ)wtaos5JlÓ3(@=ʜY^b,SirI@vY yQ3;&І{c {ڔw@M`Q'tͩEDq#|a.CIua`y?=9BÖ́Ͼl!2wV&6LM)tw /:S%\b> RI(uY(R Ź $ޢb2 QLőG_HlL1yxQSAkYt݆\t/X RM=ӥe2T;ƔF[NE}Owqeʵgj $ϑǦ6":,~|4 k'隮ސqLVFɳlE(>Q]s- >yY.d0jܺC.ChZyc!7t4eD!7D&S٨tC2RJ#)jiYm}ٿ/dJd6eFF6:,pxt3+:-0Npg.7++] rQaW>z7nj1j :?1pr|mGn@OFgG?./Ш5(A޿sf6] KRԪ tkKYr˫36z;?y+`{{8#JiB&Ew<6a\D:7n㣇XLR yFyyyδ̆Wu%)&ꂐVU#g*ww 箢E''J!xMhb&Dj /)6?bƓJM7uAV-fXL'3 eD9vԥFje$cPJ+!őε-ɇuCdϊGxF;;nPk鮀7 <5,fg+Or_kX6܅^ Vm}*:Z[ O>MOU\g.yN] Rq!=>d bRI&ʥvs"T/)H1TKu^mE^>HEUhd&BP;ijG7$OA*UjK(Y' :4!e.-&W0QIݚ,pN.kiMMk jh @JFj3cjˠͬG8;{Cr}%.Ϲ'J?@zwnrsC"9>sUgg&nH$G!qDκф*J(wFSnuIjr5f!}d&ۧx\ט}y?G_ bBأ kbhSf,j9k#766yk{~v&3feMi AB(n~z g lb& &4'mNSI\ j}reܾ S K8=@#~ edhvmC9>1.vFv}ܽavc3!*&j6L@{uclZ|.//)?sAZaH Z_G^%dLQ3Dt8(NPm"ĄGtqpRMF= {;Ox+_ruu5 J$Go0g0}fBϛzf05m)1_aVr(b;Nΐ"':ûwoqzv$*7"puu{8Fz* bZ6uy]kfy9t {)eFW@OuᮠצunU6 Eki9)mVX)x/L).y"וY_ϣnֺ/\k%g =#wG_1Pf}&gtkZ_7|q [.| ZHt[La|WVҁ5tݫA.*H.DA/ٮ F@Vݢ)\haZhA Ixr\ژkTiKu?5d7pf^Κ 65sBdS{)ڧdgT#ezMa55j ]]vA}}kD;:7[#(`Hh2cQA~-~(RcU! JKi,yMtMS(T8BӚsبV,j3F w"k*E(@qͳb7 Dg!GVdRŤihpt|$3GhZ#FZ;] xj)=V̈tytu_Sj~y mr{)l}?t˔&[Q̷ 4o<]8@5Tj"@η8Ϟaej[oxŅ[Pqb1$l,ԘVqdZKtlB 9a6C\a"Ȅ0RC[UWa= ~=3MwyFJ=|{/^>cj`4B +L @wB֔iFmb9ӧccc;{7x80ьP .7Sp лv&t4 ŚMRmR=@X8M$~g?V[-֤ŕ?-#ouyqzĽ;1c}gZWo^[|lcllsg'xz}>;mybԓSJs{69UJk7xFJtjbU҅:8shk8ZSjNoLh F]lsڹYT|5eu-RJH!5 tE{ =9 Қ,,c &5.(:JSI\z *u94<F#7_RmQ}/J .E~/0淄:avèС2&TT0TחP6HNʔ; 2RUT!{1s[jt07j!AJ=x_Lr$3Az=]5>ңԤ3z u~}{zW}o.ٓ4ќ UsHdbYb0r,Z` IDATϜJ4k^#d1i.&$Â֛]4<+'%ӌ+Os|_nTrf곟t%Bzf3&sz0 DXy߷;9dn"?gMѠ>V͖!VuQֳ}Fb=f$\r%O8$G\Ir(VG7ip/7wvgj˟fIC^@# qq|$gƢ7I|,5zTB̯2 kߞ+GF渕JN$FtYbz\db'Y=ܡ-GAPOt5:ku(uAz1rlRte9&dKSr$G2GVx^mK J͈2hZ/f7^Ű~r?BPC$Lߍx6Fę9:+m f6Y5#rC3p$Q7b!It9WdF56M )&[c,\B ;٘ [dHO8&VE|B#1XSS\hS~Vd ]4D%S-o6Y+`|6j'ͯ!1Zq^捛x gS&}d o Cf &*;U#ڰ,#ѥZ2!T O uyR<`Dl>_}/fXK";X{޼|_KL&#|^__3ՙUeD2\ qs۴&͗3|ǘM\ Q+D&4g?i@tt-ֶLKffbg#> |/߼d`M-..1 4=E#kؿQh%gѰ明x|?O_^w#9gޟG|Yשqժ.01?<))]—A$3Ź0Q=6a ) $5ݺ)e2+Su3i\JƖVhT5UrCqaUݧhȇNWh&GIY34n/Y΀iș.%;/[TC04K((uH(]4BEC MԜ.]u饥] 1JhA\_a@C˯!Ki}#F(:` $H~á0QZ傖db7Z@j}+ sg wOX?&ϥ,[L)V=kLA , >rS(\^j`!RXHƳ+\d$`m&C [j(WL &j0|?G/3#SiiǙETOʐ?#K=hrvgCp ֯!82f0ӸXDuυDtf)%{KYnտ0RJC>[!CfUF RVw/A2:S`U+Gc֚&8T{*!YkigV&9y3g|A󗗨_FrV( I^9Oe1Oyq$ ֡; ŁQtȢTAQL jDl'TWD& gՐk*ILn&<@5rOygatIC.)f TXpTG~>K&cu=efU8R /#ΡZW:m58H F0 "OV 61x:1$4X]Y)9p{lD/$Hqrz͵ L_|bf1!I-2s ܐakV#gˎB?bIH3tnl~4یԐ })UȽ7Ȳz)#1 yHݻw REUo6!ro߽gEgmQ2O,ZN0l@{!?_ gۘNGI*R#& sncHC6-t׶l CFcnmvVQ{9&iud9>y =ݹk޼~ͭ L6g'K4]F{wvwC4HL k!Q)$V?2zYn(2gj%6-f Y"vFL4 հ1?DicÓ$dDqD['Z, ?D#^&<ovln5eWC6E1:NGk5#!E"I9$; DӃݳ3Vk㜂0gdlX]rƛL.OV!)*匟i`fMbOlydGtZ'eLeB4hǣtQ&@NQR});VthӺ*sgHT2ET^q ^$ռ|~g6yVT𳓬H\CE8"y-yfOua|02ǒ@A \(ε5RtNڕq%YklaKjQȷ ;39D.F8RNѣ?^qedF׬)AL^rK9H ˅?EFKa:V-FVyl ] P eu٧kp)Ӄ¹,@9!cZ#X*5"|_@sXK#F`X,㦬C]eƬtfJĸL]e e}F[5l_ADAT!kD04Y\C[j6CCy< Hu6ֹX|9u&+ 8JhiPjhpAzOGXүA;)3͑$/MoCQM"MBzvFԅ3/*NYn )h(!A[sF l{EZ[nX6'> 6e w9Q͟x J\.!1wbwk(]' &D \[${#kҶR9Ydo"=eU׆O%CY8Lը+1di fl>tzd2%+ C`5qJ77b;Pt3 lJZ'-_6ۡvu^(B̡8U0yH1|CDθO_?*X4VdGrdn0:ϱwc=MT,f3\^^qAOCFpIj^$ScT ΀Fx@zဝQaOڕn#Hq|HA| 9ђְ}:p 7ǍTҹ~K~/^rD烌HLLT|S 0Kh2iUC#_*N3?߾fe^epcvOtUdA͕[XoA RBFLkh:ܜ* .J// ?oj^i:1бrNJ Sphs1#[zョD [hh0^`2l0֜dn%rVd;@ʺwzbTF $Ӛ`PC5@2s 0gG`.oa1[iAZj`oou3Ifx;{獍E tVpv~CF4moPլӲ6Lwuɬ1g X@uLi+u!R zۈh6"OP[d<aЛ7(Gn taq97YDP7ҡ6`p A{^,9DMI3(v9FEX$^oZFh`K"sѸ-֣C>7C,Kl63&{RM^Ak}W?a0.'JV?YA}m5m{cwMQh: q,N3Kg}X[C=%vPkPG}Nr=o塁?J:kEh*Jie8a\Xұz:uhPuuYSTr9vMlqYfZgzm8'삖Ήl˰uA32%|Tejzpy_jڄЎE 5zdg/ E_|Mn*dku R'+SWXS E_#nVjT}T491=p "wQw J"YGp|ԩBBAircnT4}Pry2fY#t=RH`J u4ЛgZ{.91Chq s-|ε]:(Lė̉s宙ӔW1S\'k DܟcyBTSQVrуsnGf[u es7 ~]/]J)E ԂRY!4E>?~9z;KW+ȩ VM)QG=R'E&1Ai~ȷ.0ȆT"6<$ثS*=%4Tb`%C3#6ˤa$T=|.wow@AvRBZOc6S6[jkY5Tr3srNmF%WkBRM'UuTu() fƇ=1B6bPC׸tANMgR7s.. eBߨ4ꌼ?<,IҺ~noǤl*Xi40ІF4 2ة9Bu&:I^YUitAt̃-lnI(hxzԦ?<{7 ^~S76VƬmc:ag&$ɍm~vcv6X[#x˛jI枬Ԉ_]]o{XLRZ.1e5jkhn#!00cg_OT`j8Ѡ7rx|FS;[h,gc稅ns }HH{:lÛ"S 4O7*ĕugSͶnݹP6Hc:p|zōeo 2K֤q4 7u\  ;Ȳ1/Sn iZ(n(VEِP.O/$  < [)brЦa)+}/"3!+//ː:0=\M5+[ BD6:4 ȑ)<>Zmr[Pt۞a!5e4Kj^ ν<'ﺜwjÆPtsMO,. ]Y_-}ߠy/,hFwjHZ a+G֘8,Paz].i8][gQw% dxUݦyWT]XN^gW./3 2JZ ʭuFbjn)=Sܠ>93&;s1c5qyp^YY>NW4J#aevXu5ŵ0u}_D[ab+l w̎e`9˹!evdJ{*#P QBRB&˺R%$i?y.'Ѫz(S_pҕ&),#= jZFpiCT4WsnL qϹM 4ԆniBKrQ.!>mk=Tgb*1TOs}sT& -MqiM1ܪB ,L~r^mn\Naܗ8QP~:dCV IDATƔhk$*jS(d El@]LCEUd2K F_&OۤǪTG \LSd9nuYgۚghgmuVi#$5#YhIJ H11Ck&ɘi[vԜr- ;\LQ7n `BaJ3T0|\x6dKdrEVID!W-9 /aS+a›q<8<[g"s rNEEU8 |tϘ~{e6Kn e1䖛C-n߹soq5 !P2B ds|ut 'e}+#ǯ޾ V76Oz*:Z]r2ŒtԂOGZ;h>#=/@\i<^WHcܦ9bglf$kQ%;tyg3noosMsnnXӝ,:M =bgtKDTo|?t`Cwm<;pm_?ALM:&,[  >zZxQNWDojz9[XLO{M BIS5Jfpş3 5,G $V5ˀ;!=bFs/~*:*sК&PYSӅyܼ!|hCg󢦰\s˕{!#0[4rfApuY觭3Ű wAHVܵ7Z߉U^ҁʽQf%Y] m]#/u\`dzIp #Y7A NEut:\.?W|\mĈ5`ĨMa\YEȼt(ùʢ"!ԝ;4o<%ZKy^lto$G.2AGǢHX<+E\_p*Y|8kLڰ4+4|ժBcg%4G'⵫8S| ݄ٓN{9S2dENQ@4h\jYl`>ɰ!Rf5h[P8*mȟdArJD&N{ mSU@6A6@aY`0]&`1,-6~boVTp}s0T,&%+7Lψz +V#`GF'+ V\V67obL >9u:HSDD3m/V➸ɀZ(nZ97'zsJV!6_zW gi."\d3qyIdk-}T6le Q=DEI9fD̙ʺek$K2#!g0bAҒx+N.P|ۇ}*Fk e6>QjF)ó7 1EIJJʖ;X|ݟPoskmFFs_~Οt7à e .++8?=C5l_gmh27Ą!zsFHx96 !s4رv]{+Lc6'nLе6w&Aꊛz~Q5> |)޼{s6`tɴ{qt|3tf- yj9nݺՕ޾{N~J5"D~1zC?8 y? /zcmv;D&YeKիWX__ǭ[wy<:9Ż^훷0G6ꗿD,.0Kfr::YTMϿNDAp Q>0P ;#mzN^b1}=?nS)?;!/Ӏ }Ib2IBqWi01J6!V,"ڷ6\xC !a./p[J,1_y5Z^4ܸ:"tMlܸygO^ړ㯵֤F#JWg9H0Ee% Zϗi+)c87s&#`i5ƸsQ}oi2SWPJ0Roxe&rhUIOz&Xu7Q߷ZRЂN}9*/EXmV-Yɧ W+#QhY.}@hVVM Bi-W6Z"MtT+U,%njQuzAh9E-&siʵ\[oO;$ jy|<ׯq_t=轗t]q t˿fc%~x 9Q|)Jg}~u`:;ؒA~^"Z O(.̜K뺓sV ,CTLɂ:o4_W{B]:Fkӵ$ms68wUS2-pn-L#6vG%7ln͉*Mܼs$c{^A/_=ۃnNfƍ&8<ONǟ0ᰏ|ǚ{9_ɋqٻr 7̮U}~zzdC:|/#KoqZauyQF!Fgk1{+8<`A2r>DoNQBOΙz _`p7"kF}] 6Vl1@b+!Nϰ mss:pwo ImL`2K `x`8"66!Wx@[P6WX}z|&W<'Ci"Yh5"sDuLrvmT)" hcg C4tjS6b}&p< j4`J"ehʃ0}AZqKsm pgq:k@+qDר0۪ђс'9))յ4"SGbОT`BxWUIZ*Wy c_Ӛ94: =@PCg@ ܶ+F[15Tl({41W]fF]퍧?˥ɐƮ0*, cdgꪶܠ7SQ/=\!^фӕj6:Z\`tF* d.G%T"uu(멧T׼9&(2q݉ؽ6'+ Uj!yv3T}41L,N lZygJULלu,rAaHXkY֔ˏG3%Ȱc+W52:τ#RC#-<9&^E4PNJ$?L\zgMf83T{j$q >y[pwcc!r)]ŗ,q ZMQ oNKtaMu<ṕ}ϥ@Mӷra)ӕVTN/ MU +76n6bV 2}_XL9=>pu!n\R("-..&2_af5A(8 ;OOa{PjPqmDp0r֫|Q(jղxEk is@zGhUIVE+c{,Yzbi6իq4/5sjrm>jɍBgZHB7I H^ &Sa+u%[|IKDE3Ep)yOs3j#rѹ\>3!D%͡T˫Kݓ=;|˫> Q-mjfs- ޾}Q|WSv'bōmFe 6Y#Ds&*Uv&d=hV O͙oqxqLM3 x-ެ! vwn)iD`eӧQ(>MiIیfRyrrx lJE᭭-6bdxϟ=wqsw=glα nTqrowu4#)jYsM*~sk_|SQSm(SA%~dyV+x5v7wyK<|x_hjx)nܸM6o֕l9gZ.9JqYfkNHf)Iq%HhWM_pz 5;疴`8g -| s#M'gt3iǏ!d$)6MȨj,ҩZ Q^"@Tׁ1fVFclo  B~wʃZ"@q1'gL $nvVbO'OQd6}dDR2a&Ƌ9v|=]b4Sf1e3et^SJUJEUx 6&NNX"tΌ׆b?Rw/t[RGXEs-5uQPCc,c(JO^ R_?TJ_瘭:SmTve:|rM 5tP:nœ8r*5~j mrĖtb%utPU3)P2WG"3Xke1K+HNi>k?pˣӻrA$*T12tL0w{wVTUJ M4&s袋ﱂu5%M-vƑXՍ!2m6 VH&D6߼gmR\@f|D8yo\lnqq%WHj^5Ԑp3Ҕt*UBd݇øh"r52FH#t>+KT4`jNҴIpo2Hr%:Fa+~=t}̈́i8ƝM,"..gc~͓̈́|oP:5Dsj[VlMpgNc%5g.Ph :,ܗ%JCݐ j96 LquFUT]Θv\P/9i; b*[n|Zu3b٬&k!GD~x "Qb<y5FcAXI>}8<\oa>2|WW|}AoJɚ":xʛ#K:`<n7dnN$>Ρ,:67y8>~ &.;u6ob07cu}fC%*|4#WxY@<h:cbxկ~t/j!~@6G-P0}M= p>f 0]Pv eoWX4p|L a_lp|1hxʧW_I.x>o71s GD|jjGDp.U[yCn ؽdrƎ+[hu|SO~vXI30_b8%3*4b!:0 I(4)[V#EMJ]ɹ$7{Mш2Zk8j@.4ܘ͙hpPcX-bYFFi% 4(`ܒ9y c jPl gbAYAmnP|pv71:wzC4`^QP\v{< |šE.Q@^(0pLO*q!?^nDkDr(j\ I^?<'SKCmIZ^ezУ(bvXϧU[4=Nme{D%!r;H\ծ1whPXXJ۵kw =k09&iP?m};N']ve M5AAy+/\w-Y d *~''%ˏC'Z}ň=Rq^ܽ`L@\)י D&L BDF}PZ gU-K̭Ux2CLtkhu hR]uX&g0R;P3pJCfUeO~?i^??KХ$d#*7E~Dp6L3C.#Q?xGpP:\8i-աLwePW.M MQ5V_N uuY]eRkQg9Ф SS0pa*x;Zfk8;?ʼnb6K=k,( ,CB a;䲪1Ќ]B ]ˋ\4(6\W뺍qn[IQQJ. z(OojL'&=Q.mEYCbX!jG-rF({|)-x6p6Zœw/i"ȴ4ق):ߙQlKvΌX7I i6Z+#FapGG5V(-@: }kXI̜H3%f s.R IDATF&mDFȢ}&PD τu&vˬUr*߰jV\MPRa?OM3e8[4J{ ?ƛgOiǨ5]lðhdjn{#RarBn9Je1bjc:/|g.fݻ禪3AX}R捵RF=tj; zNU4p6΍٨ ߁d qcNQ Z!B='(! B+Uֹ{p3 pUl\wÕ ,6[(34ŦXoqeuW0f"RnPEoULZ&RfQ$+W1Jf7.s EZiN(*ĽBi5V($ۢ㠅61R:Q3{蜉5y.RXb'h50!J!4W5.J2V|4F~P$ddRMhx)OCED3TQ Tj{Ope-FG)o:Q:f՘)ؤ#_VkN;GLYw6I M;x)UʜJg^f)k j7jr\ ^_z{6.֗^`=*=`#}*9ҀQ̣. 4j)\_[o/CD>Hݝ-+N&CM/ʟ۬I6c2zF ШMOyZ6W*Uf9C˵*LJqsL5r-4 =TNG4^$mn\ݽ-T[宆Cf\Ba^[2 F%l,9f+ۜ4-ދG /}UcuQg3e7jb^8  8[yVks_.B݄d Shjbc9j4.A'ΤkZLQ}tiRϋ1 u:95n@Iu$3%*(W\ ,7BEOTezi& #50䦔(T\)A/7[#zhٶos-5tVWQ $ g\ʫq:J_b=kb'iDWV08蜇' ΰ!gYRSʍȋ/S},AxXn7[/{?O+n`su͛\wttlF4h=>hyX\`7^*7n`}ytnzoE6:<>e]uZf /\Z3_}Uɨ`frh3seܻmިaymh`6`48 O'w0`qi6d`6!vQlX1c7gqe?Wկ~Q^|#6>ϲSnѨVcz㩇箿}[/}*mlm&tNgTe\ܸy ZSKP'?1,1v;;Axxŋ w Lu am*˫ 8QiT_GxlĈl FL:IJKX),m\ELi5MR'Os5T5[5~zʑNmn扚K2ߣh ptڣ3ng㜟'p 6N|6MjQ)eFzP #Fc0$*IK Ac2N:~̃5y3~UDz k4MJJ%^Z:'tNqˌ(E=9Y ~P qM{Rq-rU:ˡj+cU)NÊE7Icr4XS9U+m8UPTF~3iF+]#,M&Lʠ8ܡ-?XMϙ5Reae{[ElyXG3Wd_7&p5C+7a~׊NѦNKd<>.,6F́Y ݞ噂hv 䪸̕86L;S&XG)\ iSxmb}1#CSd5oDcgAmywK݊+"9] +,f8hu1X)9uc4՗hІ͵تW'JszsYP]EbGuaϋC=FpّS4ӴG'I7цkhP_ʗ޳^soO_O ߘ5|W4 64bՅj9oRkr M30ڼj&l٫QMdy&5XM'n|<7MB'd^9kwWxCLFM2=1&l&ְ|{[S lM AĂ"$J%Ny`Pqw[G҂-@ܺOhQes>-ӱ|v;B*ϒt ԕ RƓp .\"X7Yֹ`50ôCbp8>>fw=M0hМ[I{{xϴa4~=FW676PT%Qv{~vuEUx֖v;"ϐzSً_]4k%F16̸ͦuި?0JM4o?ƣ0f ao0Bc %Dmrse|?6y tOwxtTl g.B{~))kpS/bl`b2qcH MRCr5nҥ8$_Z>Qèz}n$f>? (a?1\BG=XJӳDh!kN)7A`UAI #rn/wv\bS1xǔUj2Òc)p.wh'g1bJܘ6!3>Gh[C4u{k(IBz*Li&r)"Qk6hefhH@ùh4f8!x ofA(40Y5)wf4Z2bGΕBφwV5bJ-`Ŵ8+j ft6TO!9b2B 5*3Әxj%Vb4N똣ڮb>845r+2]ClT5RM;4 ءݼdHA3 &u.xduag($[Ǚ;t|P({E2E\q~nNmv}]Pc%GyCu$!h3k4qbHRI½7TՊ^ e)UI\Ql@ >̯?yMt~T/"~W?9v7|ǿB(zW?U-tcWgpA<(qtxΊR=Fpg%i%6BsE%$4sKmЕA -r4ܦnV=BEOq2MZmOP"S1?ǧX_&kg[EL# Ƅqx_\k^v:qnӳ3F3Zst 2(s/1zM /irlѬpW1M00O,TZ͆J54 NHBo3,-Q-}Ϻg<#O ;:fd{0<}da"ƃ>J*I8:=,ja$њ:GSڜ2쨟biH&u4mK@h%<_]i0\X{lf"G69ê a(i[:LsIANy&gh>[zȝO xLVZ=[iІ+uqrUq92URiMnNhu6YQfSE3$cT^Kf<~-7&Vg]ghMnkX\q5:Pc)+%z_;ačhSA/MUfGc X(]1T┈!VB4%l,K]$VBjTp ;s|.ņMl~_qmcqbm7~o^ƒi<(1\u<%Z(c,6@b=Us2 b&^x IDAT'y#U4| tQH|,U Ot+ijFC]9羊ᣇQ0i 5*HAT!x+>Ei'S~ҽKFt4$4b4s"]ɄL䣡۞-0#n0B @aJ4 1X7 D͟"zkR(K|OdK1\zoM4H3$)Fi7YsPBÎ+A[-SeFI83~dλY(3_ pxd7^F\mr'{yIit%eeƷԖp$yK@EvML͙hE39qlEڳMBx5l4>-T%y5\Wg;+՘g5֡Fka$8бFPsͲB<.reXz47QjL MDP[:4zӇms٫>8j5FՉ]D*"w2[Q! #2m8jMFUÑL!saiU3LAJ2}1AE$?PXkyM*aߋ2 TfOe=2R5*&ӳb2xs>`d *f L3DyFi:FN@Ҙ`FwjO P\x Dz6!r ќu'47>sOQ]eQ?jt 4e˜Nʦ$BLu]F%WNzNb֫Hf7lc4|ޔ=Txs: Lyޛ[aݘsmFh! CA!4GqD;drB@s Oݍh .$ ʝ)ҩ:&޽Z&Jx?a*xzp[/!< PENttj$KrgwT34:)ߗrwĭ^> {ƅM?ى&V17Aj_괄3LhToXfԺ\?B=djqv"Hh3j@gy~#|*`=frl ziqϹF$MStޓSOtJm׉17jJ߻aDn):g'X^݀6s7xsiz/]V{"6/>Ӷ@+#"|k_0zm~Kvqu'ܽZ kkqdA #35wp=~>bN;co¯Lq< ywP`:odI4By4C9 iٵQyX,Vф b̢1%mVD!N+tX45DZx@@^M^B3)\^ZR>ygՃПDEWJ9NLMMuZp8z5o1u e eya}W*U^ELǎlБ,~Bc36{H /P&+U:f*H/oB\+ԙH'{C\mޜQ(\1Z+:#,?: ZRޜHnK6t9^FrUkZa(CRۦTӈ4K40JIui)+te*/w,FScP ꐶsef讎eMJTksJx]ӝlLj c^0ø8[hZTbpl(|Ggd]0/YmUT35\dOZ8ɏ Q4BfL42:w)8{t)h-D}k܏^}oGqFh.êtnx%V~vώ)յE݀Q]# h8g7F.j'U6N !! Ӹzq6yNZdu"4pШ?OG8;|G>ђ$kO8JE]Te~Uw6M(d?4Ng:-?qs r?d47c{+2;Mtc>tR#cp64 Ri}8bLqZ8}kWAԴi W??~66ABM$&B9NSvLM$إ~hS,Q⌢ i\৆JMRB.gx(ZE-X?^f\3X08N#k5 $ERBz@:Mb4~t _T($[6_[4&r6l&?3⳱١2p'{{L;]]Z濛N0vj9EK[ˍ:^xӟ<_S̵q˸݃=S}\}yzrST5Mכh6zXZx;vmsD %|4t ℣>!fZ8|܇IhJt'3\XYQe4&Tz J\Р~ :)DZij 6#h+5D4B40M\c>9+~yy&㥅*޻eL dWݢDXtx!r __CFXmyr ax:}1ѭhk}t|ȆsKWКk}a0Rbn~G`6Fs327MtVAm-W7n]+ceY8Σ7T"zz2@ECjL`L8/J 2J~sŒJ /#[5N->SWhFj@%Mf~sWF1 +Yyӣ#ԪUn&| k0GY< 5>4\ }Ze,&-EG}njY͚ ZkvSQG XXH 6kLNyXVj>2gtQzV ܜnX/nO vr]&ipWPg8BX =.W7vݢe*D@MzSQg}4i5쾟:(yyIuQ kN-ys_!ț,T)&U ^k/`7/d": ,P!yj2GF)ڡV2(an$#/GQhSd<)~rzJXi?A7;̈́4޽(|Nhdڬq .̦Y>\*/656sFD[OG0:ɸOvQo7P(7ўyspk)MAC^ЊAX/fmbRZ 1 c%FSy%8-86læTIQ@UjQf'Fz]=F_C<}= FB&fbLi?%NӜvēy֧r]bEi2%vLlV>E5)񌵎Q^Gt\L!vǓzUݪ Uٸ2+z/BzRp86[~+_zUxP^!wՕenace W7ѮPUM'88=p2x|nO]2r,bҧPj^Ak"<#;CZ-D#,[C~F@dD;o}ua QJ9`%x%vAW?5]BRgq1V01:̴ZBoLڇxpV nsqB.D9sx=ױmz >vGz9%=fkSI˃DZXb/hVB)yJ{5EW|:$0J:-}e*/sVDƪkf͏8/E+b qy;3*ukrK|DYKτD ;<n^@,jd'eUb\eXGiXY4?JU@+I (^J :﹆ޕ,[*$.n)' u;S;JM>p̍D HMu]O tihmMdvrN/jZ~޻] zߟ×~W"1;./*L(H31>L.yO*:PG^74Q. [}Ӣtj=329]iqz[b*'L܉sYnVs e:>ܙ~țgQX^gqDk1ș;eU)/,Ĕz*F$;0{\yj7,MhRO=n(et<Ļ;[x5r !!x hGcЛXO!7vqf31zz xvWeT5jUv7,Wڸs.bEHg)v 4X QD,i_Ʉf<`yaGǝUYm`OֻL,`3xtDc/c6TF;AEcwE2бA7 Q9K!gnc}/2Ɠ.N=>G'lfɔ~ocI3-D62NIr\6^f͎DۦP48$7aji/tA=Thx:Q6bYîՔM wi"0lǺ>R:$rq)9-u?5J76/߱VJk,Rc"c09R*ޛ*8.~BHF5o,#"b91A4&%WG8:W6,VT[Zt4Z8g.͜^3ܞJ#xUyxi^fFDnE~E侙+ǞȚ^]]*,^tq5QyBQ=^29bcΏ-.dd5ώ/|IPsP5 .U=NMNbBDi\C&ix*KM5popooKsXj*%~Uz m<Q*"~TGRNؙ8 4`SF4Sn2i.f1lb`G iVdz4HryMLh4^@-5#ʓG6A9H~di#fBa̸cꡠ5eLu6 |?H䁅dsRw8ܪ>B3sRGPxpQΖ1c:Kq)z q*AT)";El |mu 7ylEtz=qd$s9(i6xwAQbѪ71zU6KsvdDMӧ$r1i1\E>GQ՛sJ^uM(Z]2W~q:CᢔjSܽ>|_ޟ4ҖNF#u&M=a U1j&Z.V9闚fVxM !*%| κgܠmmmc3khXcx1 bDx=,,V[b{ Gvq8Q qrzr1vu[DIJx~:ƃC̵8>yTRj"jfɈ~)#@) 8Z ( D҂:He,-2}2x NɈ* 1$!67ױ,igϯ0*JoZCjpEewe9}DxvLfg]a]2E>DӦkc14PUH28#g`U r?=MD KP%6jkjhx_O1%<>D>}zp0ʹXT%L]\f9俗әQؾй6\in&PRJeK\k3n֬;m>qG K!y,f5lr͡R1SMW#hfc9L NkZ>+ٱrEr>slPa2o%Z]XD Nc:a}}P~7s\Ãkk?)???,m֖sZhX|!YlO7!љՓ( x8 CȎP$[لA}< Qϓ1q`2ud3A᫤vd~F3qVϐIc׉<*`>۸N/0|`ѿd}p UϠhu*6H@o:jP&Lqhƹ&MWABW枘捺[i]sZP/!(&? YP~΍ګ|Iz2Li_t|ox1 ǞLS %v{;z/ r~y ΢1a @jn>wdӪUcdU N'՚89BpfД'7ژup4"(Uq61V)cMݽmll^hQ%윜vsW)IZEMxݙDH0&NNO}o|Y`vuy7nyI^WY#0ahvhoo^b}W뗱6v>MM:l%3|k_Ƶ_[˚NpZbeSE29C! *5:toKzۘo==E}nfFEB_CxS.&/ SFlu)b[h9\ G],oriMxVm}wXG;Eyΰ~{;1R(UjƔ8?huBpҤ 29V(Q,֩:JT5Ų68^6]Gz3imACA k^d"r,C+k JrDeΛʬցT;M򊳰f3u8oAsvʈ5H2tB W%_!6%6W1 gz ġi`L='^!deͦBuJZL䊭 }ըߓCu@ jdI#kn/? 5}hBhL^$.uCӅ0( @'4Egt-T{=5EdJCutaqqcr7LnwV2w #Aؚђ+nV+YjQoDսuwiƪUq 7'̤V餢 b~h|~-(B`9y4i{6-.(!#IX9o:Ts'D ;>τi8 -50]JK0P K؜[ş7f#tn3B+2zƃƳIfJ'1 a2, L2!'z=u^*S:BK>kT)GpAFW ,zJ@W`=L./-U):3͙h8[2lC454 ]7IVQtB "WR,.%z0Ymc!Lx%!&XYE]̢>;d;$^z&_wqrvO|xsL{$3ԫԙJ9{+w8f }An6丑V677qttv5%֙nqL8Uo. 1*^S!{F(ک[PB45hE!zs_Dt2Fj2{G^ȕFμ΅9Dzߚ`4z6Rץ+)h7^:#o:f^`ʣ# z}Bf32 Õ79D"g_(𽱱~ W.>ų8^y5LFC%8:9b8!kxze*6inr#yBx1Uӄ  jEF)J&]X!/rt5zYAlxhX۸m\tw<@E=͛8>>hh1QhǓ\te?,3}:!cA%SbY;4mF|rcg\l2Sf2mLC%ijRu'edENgb:XNjIHj>i!=GӀHKl9ΠFbmJFDFh *&8nlldF5K"Us4O` sEN"`gt8JeѹKQ[ev.!͵YsAnzX@ՌQc>?^}R51NG ώ[@ak|e@ՇxғUeb2 ͻfQ3Yk?ul\Ckc0+W戫gYWЯr!~ҠIܰ3mMY#^2 (tȏ&I55s T4 hd{FDpxYQYnh DC38ͼ'|`Z9ݸG*,J|Ki$ۧyC~#P[?O@6#<4~XInAӛ*kW0PXq0BeXDjY,ϡ",(/u@6o@u?(\ʱAJ#kGvM~~U8Uхk][Rэ&A\9І#Q6& %\('&FhA\kbQ<>s%lq A4+1#\t?{Ny!3FIh%r 9gUD# K.NfJed`Gu4"˄j%Dd=3u>ƓCm s yX¾ "#H(#RRE U$%7@w'z!5%CYL1 -}LYbS*."gS%p4}.0zE;,w9Nq$E( * >LCrrpVvm)be˗8>DWƛolp( huj`bz5]S3ߚauFK˗''ܫo0e((%QE{V1!S{Lac2!h(SFgo ʬj~sx>`a?{oY367OGXYZwx  Jb4Db6 ʨbDZ㸠J}]?~Q/ܴ o0jGŜFM0֖̿qz zՕy z+ #ݓ0xxdcQKI9X/c41=Id>iH< ќNF|I x !99,w3RH{X Hndz%im&vI*yթ2ߜmऊ(Z0(Z1__YHSh6K봡=;5ZcM\&;RWl8lou\XrD'pՌfGsD*Z/jJb23974Ȣ2d5]9l<Ĩ^i ("TlO,EKh$S:d2Y#L@&Y%~ol5  F*$LVt,7GuepCD5Gֺ}fa=rἳf8F_i @ k \->ͮJ@%ΤsI<3FYtx3U+gUdy՛3P3ʜ7I:ؒasz\)3MY+nIp>y%XM C{>Bh"[!,Xnp@ $J1ro@7iDZOJ Dg6h2Q~)Q\/lgh-}M\3|5r?ܽGe[zPu+׫W/t`' jLxbDz`9€ID @)LÀliK2j_\^[{bj"it ;JlTS VŤ 'M]i a|:)fF%pM.D%s'}dF178Ãg?b a_=MVlSa,}!7c2 h7;Ll7aNNN|nemkx͑(~f6K Vߵ5L]X3C-Y`rLRs@A!\K9t^v0Mqe>>)_KD+F:%$Lf})!_%fB.9$utL$dн=1j.߯޸~;{hڭ;[WCRQpa2"qDaay O|/qTz /_kS%_nc:>lD9u:k`ER"qF@׸Pz%j Son xViOh*x྘'QTݢA!6 B)3r/vRD : Bj$)J2p'ab?q N:l4f\u&hp||BZz5js>fx&;6"#ċOy}8F*2"NZkڌ$ҼĢ K?K81RpMrTB<`:Uc ϵ1{JDMfèu0%7ْ6y bٳ9&7C){ڈA= '&ú´Geh)\ǯ#"yu:E;V=2xRuO&'(q::)Zh䙪7^+[In2U6C?@mðP6y|}AYuC̕6i^i>C)'Egfhq6kP.&|ChMZDž^_kz֚ \*/5[ ko3'M0]+oX(\g&2|, Дk64*!Hu1EP53<ל,zI(i/ XZ1m53;O& IDATFYr^n=Nko0|t_m_3]xܻwo *xsȁ@*xsє8EѻrNY5BTP[͜TL68x x Ԁ!N@'>Ք\q]y E]KCSjq *'Gc Ct4?03Iz=FXP-b8SzDP>Ikyg?S{nS̱;JͧFڴh]|P vNZE1 CtQJλ:gEsiBH@j hqiEy9=cT]2eCb۵Zzyh:·< jMtmU<'=FьQM&؉qDXLIEYIgz kX0Eh#)(黛LuM jhq9H=HlT Sj,iN?7=79Mga L-EєN ɒ]+!ªOLX (m8꼖 45Zc6ެ/wwPwqhX;pfgx W{|c\>Ul]Cj]\^;,/|<<~d,'B4Ͽ7skx[oa88 7.'X_^A܋15M$ٜ8=y Ojoͫ|W;kNͧHS7!8`8Ik᧟~[7yֽ8hg1B4k]Tkm>Dp:|xou&DhW1@y<=;HC$>SKYge*;w?_gm- evLeO;ziVcJ>L6g3)>φ\GB"G[_Of3D'hnʭbuy2Kk٬Nj`6'}^kUT[-$f1ls,T#'GX_L]b/FcF/߃n'gJdYVAL3tM+kf9D8DU1Nfp !cܼrGsz">gJCʙidn@(P أ8`s=#K\Z*J7|W3J'[u*nD˦٪# &dݑ!uEA vs%{|ε C"WV|q#U @U+]}IdJ>J⟻Ry0ӵm;pb*:gz&YӴ v:.HkELs9/N57(\02PbMPi, UZKxڭʷRYj #Vٔhe|YL:@I&}y3/= Z[VgEo[2j&f=ekL Zl%jϓ+ʙ~[MK|_b54@`S2W S]R's+RiP&u}j(tR:#PRɈ;Mq7I?icXVхQ,#"pna~HHӆլquuЩ,r4AF\aATC\? gxWw@e -?'$<"EjM}2HYiOq8S~#!o L*lF)ETk@&1"HL S\VP4gN}"rc1*m=jxn2%o937.jr/L\Zt̒DT>'h6g:gk(i_l8a0ϰ?cSd5> ġf+l(BYaJhbW +U{uT !ST,yyrd"Z2.ނ=1dk 30.fN#E#LeO=D*^2rFy X7 FDM)+(L*aإ|ߑp0x4_ay.^z o}FML!qz.4XHFT bZ?l,X8X² se(}'O>wѽpzvpp;t5l^Zj4 `677?ϞemddZ#ӧ&D:†1zs @XmRm`4q.mG;qu ;&ĽcہKt#tؼ cL8qnj8S$t)O=bn4c,.]L 9NN82iغ]2\} ͅ-AtʹGqd/_bk \`iiO1=?Oخw"2InܸNSg?fZc aD,,bm* p贗ZhݣK+Nb6Pi,`Fc`*Ub vnL f-8qho Nt5juԪ\.^VhRI3nu .vv EE gVMUr);Sb0 UonV&WuFi̍h@E 2/8@Yu܌*'dvEףL"I0^@7#~E X݅Ɏ!G bg[s9Rwl碄#osL,6ÝbkS t1zqV9R3QϬhЀY&SQ@mHT`n2h}võܙ!inTkgEC?+CLNĊf%Tkk, e='ޅ;J`!zT0) _|׫b3e 7df_.9SP72Jqb>q72MH J8 k;Dnmm\{Pk^m0hV51)ܜNysN +cgӊjJ2;$ㅖ-z/r-&-Zs&V2ȬKyMi!T\驩sK&Y_<~`#&s&#<{I24 BT1*] £g |=szO$KY(#ؤY;T`4_T(_b_c-)]ԄI[[c>K]*y%"_N!W88cdr}>&!vr]VѨ _^<3dS1KS<4>cld(f ,FO};譭 Zv&VW/qap~5Jz]q[*V7`dͤG~MTh/ >Ol-ӫaapN=AF9Q۬'JRgU8L0$gX]^jC yZN+]Firp4BNl8FZ4Vkd3ޫ*_A}4 8::;c}sų CllnVvlVlB3xtѢdBdd6 ~5 9REkS5e:|}"0W!G8|h S'SSnIG !.QI5E5xL<lRF}YzHHi6 $U߈yG__KF*}[rN% KJ8uw7 FK1ORG@EC^,o|^i9",]{kތx9P-WP=^ r7W#؈n DRM|$)Ufɡ\q8^U. tUT6Rui~2F8)ϢqYY^QGηNΩC>4AXa[$r=^㬔-3_dcI&c).?'264G;T,uZs}0߫ԼRzܟIJSzWWnLi چEg<y\0&NЬЬxܸy ѨTRf济(TIxԏsuWjfs>|hc Zf8ӓGdb&n.]BT/4wkJq8*͙*L+5t!󇿆Y:SBѬLsahp; qɻt*Ռ+JT}fYJ&׼zx&JLrhNjtr]Ri8Ԭ[",BхLwĕ\!Dkkr6-,r$FĈ>E^+CRaS2(5%{qE;YR@snbd+r!Sl.SS.Lr7!1=w8LI$4,ci1I:Ee06rW.e1 @lh·;Xn5ЄOfgHfY+VӹBŚ4y4Pb>5O6'''l 慛 cƘ܌a9Rk檃f;pՍ-xN.SJAjq5<x{غe yOyӾq_׏ټC0sN75]wxO_ܗyD{ᅢ/Po,ͷv 7ۅiTTdDIͦTLNes7ɜk ֱxFs׮^%fo;S$cfc%NFG~yˮԋ kp`ڈ!oQ!5,`!ϏNṗGx"JkXoR>eD4;((qLoo5iIY_Z1jAD &hbkay%Q5T1+3sׁ:!:(69H3v{n(ONG\|Һ@u2e9KhN]IYGS6W SgkTBk&٦LstR[ݴIʞ\-3mn >K{*Ny&fyA?ٮas.@0;_H[iG<He627-ʬ?uL0WN  w,MQEn2hŹjiIu&Ƃ3aӁHE,|*kjt#%DQ6FF.(~x`4b͠rd'J?w(sTM];hkC:B%lĖL+8kXyRyem(h2|6cZ)3-ln`o! ҄Yaee 0nn]{~S/N؃ !Kyq 17q]_^A]M#mvXf0,rHĄў2j ZP =l6BMBSIkc4beiQwzv,|ʟm0?_bn^:Bk25}i"qgJ\LDsۼ^޾}!.<J٤XLD)!o4ԏ2eT٩;uLU=$ Yy r3[e#U֢qbX]tJ_ό/9(UӨVVg%AugIfL,(@zQKN <*vW5E-Yr),a%3nE'3yaGj&Duv-+<꿟)կ0 .+#F< 4]=4VZk뵦)i^- Dy#~ b?/:2CaC,DV9Uqf?C IDATVИ[b)d5(Hc%f1A YFȪ*aUCAb{dq=Nÿ?3zPqFSzrW12Sub+*hVEN 8ɽM+'& jF5V EswGKU΍kXM2R@lպ J Ey*KVgy4޷oq$ͰLb}O" LQ<h5#1#TL|S7r͟5Ȋalq<fRͪת"+VSn1 o~! \[YsZi#lX!‚{3C62'Z[hcjY8MG ΢1eA4#Mt6G&xnWViQR^DFPBn[\RlO|6=lGVKL["Ѭco Hc\槤OЪ7 3V|fg3StUFc'IiZW#7Q6q~~;wbկ| |0j?N7s-\ݺý}o`Y;K.ˋ+ܺŔ( ~*7r6n6Z _$q5xoQ:j]B 7_Çnp#*IRw4&kΏ2 2V=f`4hA!4)Ĥd0E'ؼ(X^ygaK/wPVȌf A2!j vրd6Mz&xQk`4:\ 8=9rIJ5tzMDnȱE2PixkϥθDT+-n蚧k?E=r<3)[0aO֗!l0Lx3Lz~$zQN4>;`$ u U410φJ_00ֺ0}9 k1Qs1:>m@3ȝm}ĈGȬ:X`ݷw1N0y* sVP{9/?+c5tڜHѯ (=_3asTfObitfgSeD卜6EEYnҋtr3ei%/ӐK%fI-S/US4bS5Ӿ-AI7֞9'&I 3<%$(3v|)Eߘ|(}, *JmzXm ơF]\hY&Cz] J4Le'J2ӿ"F;$'<9L2P$[1"9`] ?WBak1cFY[ 02yu{8+M^ˏԼ ?GOٮQ;8M35[)c(dr2,@taΝ $L6Ug:Wb7E2q_ΠЁfWVJ*9髅Vg)i@m?{G /,:LPسT蘱/4]f}b 7lHU Pt|6! ~ZӆQ&PQE}?<.^AjS{)" ]8j~i'i(|B6hƔy 8X ̐KjIM_fO䤛FT)(#};}1荰KLf͆<`!5Œr5ԍ)FT .Z*bA4fj`t:nC5N #j2^xiRD06hWL!/,{Ue)TFҙ L>#[ĵ)5դ:Р)!98)TᑚX#)̉C! )-&լbZьsQ@"]-Q3=Rܺk=4p#m2Ґ܅*xcigA#?b7 +8V2Ӡ!|>yrMG>9;v0My&m>5xڡV''ܐ&c\v;k4kk0L 2uxkqEZKYe*vmOqcEt 3Fn E^>*.-d3TU6z[xx$*&<0{J%敛 n5dpa&f'S&.w~%SF; WTV.]s`5|t-ktIüdh! ]0RjۭtDB g 5Z\72i'4]牠4nf˩o³GT@%ݚoŃ!|}DžD Ek"ֹWdX,,/!1gӽ|*9ѴO0qj\($o2I)LԦQP6SGnmXy=*5a$Tm񩬇lNN(&4YJ}6f]a SA\&y>|9|LM/.S ! ͩ&?h%:jd8z+L?ܺ+xwgM\]^am67oA<k޾1QKU\ZttWoǘO%CDt: > NO;8|v ںF0K x5!Nn%K&B[2v0cqMi0h-!S,uZM#u3x(0a @`r@QSTQ9l{F롭 Ƞ'pFĈZ^$+#5x4Y4色?y'~}}G~}G?M}ʯ*666ٿGba?{twƝx7F.VNC|UF</n4ŠHS8 ; {4'MOJͫorijԶܦݛd4FvO?@4|;m52H,(=fO%N\NQsiPRENŚkb1:T4WBMͮ} J#=,b']jVk*f0X 5a=kN#v5hM$"1 4nY%4kdB0+Sp|{-.J{z?j̏1VCr|Wb;I3TFϔW2j0g}L~_koQ*Mtuckkۖ(^1vfb =$^F\]r|.z]ϥ5ğQEϤ 4z\>5FLkl s^0ض#ߪ/1ӒoĬ6jr|:f@e"!'*MJj0G>1op{|50ƥ?S?_k)i)7zKt4BRPOj6Od- MU&$(Pn?' m&Q0mifIM\ 談U7JeazZ3}}> 6Yv3 ׿GmTvȈ%)}y|,we wi Ί4Ը@_8-̬ʏ҄gǏ K:i^is%OMC5R]֗XV%.AlB2Qn+elVJǼ H'<~/l,br`g-y&cY_DX~͐\yjIFTt%#rBjԳ0wٓhg.#TtS~!kX~SKTx(68QS3r~25"lרʍ,2hNuKLS։2C@GXQ}EN+>N9h00Y{;z1sOÈ4t t/aՅX03aH$ɓoƍШG 7TG.渌gES>duek /$*#5V5@9S+b'68EtM+,a^#'&)UJ*S;e6u-C^ˈb[c6᧘@{&5v 7 v]45|c"(\޸̍d:ƃSfrjomueSos..oiUo~7d=򃇟ҥKk&u&ڽ5ܺch|)z!Qő7nl~uti?yO>"~8a2Ơo~'0Xp˨Tz-.sQ3|:7^5a-4+ƃ#0$M8cu `+lX)V9e2|Jȍ) ht=ӂnr%&S% s:ǜ8#s&r['䔣lK.6Vjpť~K=!yZNriKS0aîw9)^:Jt*5I~{rݥU9M9r d1lUcDɥECω lC}폥' wWZq'vQ[v IDATY $opeS.W>8s)_[ mn_//A1,0ס5'lKiVRB .$߉U+(9V4O8ٰ*7f!X BI BzP6MdB]&mѫ0/E( %jϋŅg"lYKժP!1ڃ(HS3ǺJy"E;ߐE(s>,%/brl^%PGES$[Dc%%3"`MMBn^Ml'c6:VoljFg.pŘ=Wҗ=:-̩Dc駱fsz4]/sQ)Z&EI2k2L,z/t24:,j5IΞמQs) ShGy5\q"c#èAJmeA8c%&zzpa_]*:z6^l;n μm>ïx,/o M;8s8?SU%a!_q _VM9QLhB4* 'OtW>Ua?gyGXXhaO1EE#6D}QXZ!k['}*'A]`8A%&t}vhm:BX4d|7ԖR8`~be./x`wy8+9Nժ\`=R6X>QbHϩ'SI[YAHcjfr TƜLXT d#״+%t7P-j1KK.1qz]y]ʲܱG”6IҦ$7aQޟGgxO9K0ZCLeD:cwOL],,Cؤ+:JA-v{sn5dJoթF9Λ\h?W&L)˒&Q&tXxZBV+nO{S-.|aO;jw\ԨȻ":4\*''R2Xђo4cp7Ci5|dHi5J?Ͱ:QO2 jѝ#ZbiME#*RWB| =S2MPIJ4j?rE㍘9K>W 7KǥI+ Yqߑ.)6 w diCj<jT{M95^_*O'flJo sqs *hT-涢&,s[~ dt:M*^?{4g]7ϝz~,Yj墀(KdL$IP dRj2 ZkȈjJ l>3B+52cJ(j4SfJӈcD dА)2:IlrHMJ{\MrR޸kcƘGǀcu5 T۫L[?9:֥˒M7}y`qq NOpmlp3.c{1߿:)AhEt8M'x: MD!f;FCMԳ-0?㦿`mC|gvXPhgS<||ZXK˗ jt"D~ <˯1EJ0{%F秨V8S%N^^AbQna<~.zК$@MG36SΙ Mqrfβ:fZ?;ti29C<U 0rW:}^㚵˒Zop!=yHk!_GH ~Ro0(~z÷NtzWI{~LdF`yݙ%S%EA|qH74k>Șr++bszihir7~Gx͑bm^1ߑnKJElb\™<YBHs Fnǔz񱮨;}"=j ,\FT0wI赕NMtͩ^s\ oLѻ"K(O/JɛWU񴅳-rgge.ymt LotRviɔҊ-{!JeΜ)"9wP_{XrdSwlZ>Kyèc~QZOW2K}? HGhz &0G3mG{굩 w;$Q D e[JhaJ<7N=aL)%~V#Sm)ȵ ̲/`ۿ?SG&/??'oWWg*|)t\I]rPvn(M J ͟5&׹X[v"k$U .<] Meiشf4gz)7UrÖג:4*]dX{|w9: yF8pa8<9|?ejhՕgxxp3 Ѭ?0Z[;LfJ ܸ~ۏOf-FUC^5W]ý?Prb ^ aRĈ o"a t^]BNg|n:34j\z @lTdD!dj^|7h:BCWP͈`Wso^gr#ySjh=Rլ~B(tYcx$TLzGfR 3(̽mnމ8BmA;#rJ 4i58.fvo S|K6E5ԣYѸ1S?|;DSZ<VQZ3vy/*vLyͩKUCΰxkOM3_5<&+ӏsk+d9 ^q9Uhz2tzaHv24 AIմ./42KEρdQ4/{$I}CVEWW`w⁠?/' \ .l#lUݥ2+ufhvu%iXVs>e B/;jU}*Ӂ^ XKt2 +z@D:+r M\e' aibUER9+C]Ylyy.D]A,BFnfnyePoA75?}hԌOG?3Ex%neoJlqDn~?.% *dI e5#nDL8Jɗ| E7)ifʫT0^i_UKh>Y䰘a&QפF ]9ƩeYj[L!I[?1!49% Mx tO&NnC {E3 Qi4@+VY%@I6:_B$6Ma^y'U/umd;Q{SX4vԌ[si_A;!9e=Q3Ŵ5QSB!"F7}ݓ[BQ8+42hC)#lM<[QK$M|MMhO}+ADBȂ2ة(%ġK4#TnQ:]αFI kŌ6#2L,zqVʬlB$~HLS psY2E[nL3BYcKxd:66釘Am[ 1J˔]*DhjHw92BR )PƊP3H( L$$(:$#ʼn:' ?Lp1B;i[G) cNGD0-=B}DQZ*-xzz*OS1ÀG?~""six( LgSD8[[1qr'dDEyt!./.ypB/(^g3F6V+x@YJZNw9ob>}ݡ !h4{=t:}O ?w9}1_|/OV2`1^8(9~p}pni9[7%c8ib|̍'O#o9ӱK"zwkn\b2:Dϱw/^|/8G6='x#_Q >*[ggKxJOrF6'D 5Slc2:b#e6g|.Tc-"O%+%5!_QO5`fg45S޺C Oΰv|mn5u .K =9VHh~/^gP0lbN-g6V܋Y]t{]|X56B";FJo#B5ts/W@cmd gdu& IaF2mK\h04,0+Y&FC)rJ!xO(] %AҒHȽEToŠ n8WpG*B<,#Ѳ@}- EaW-YBNba^ zBN5K5jj1?a|.?ҬZ*UuńL"c8! 55U#qV#U#6p{i _2- REu/i WV9}^Zkn,⛳D\㐔Q$5 e\Py$HDfVkXf];Jf⩙X p9gƍU;sڻտ?oMs- WrGpss+gd9Z'"TlKY%gUxcE.FTKqmmp|<ѣ$2e,5! {592J/\M]D2]}l ~l_&Ȑ7Ҫ5Cw>Hcb±i9*FXBni싸IALhPJ_;m, ] 4T›`0{j4_ M9 s, Y"3ļ*orрzt It"ll Ѥ-L.n&/Ϗ9Hpow_LO:&GXR>"EU[8CI}) -D^Ę, ^`gwlEHȄ)Z;!yS"͑M5ˋ\L}f:iS -1QlQ{^,K!%6pԻ)U:W^ol4!6kn;"-Yga٘#&7Vz`M+ɥ>+3P-_L7H$J|s[V@vf?8J)5`bkUVȉ6'NH3}ev4c`TSvkXLu? ϒK-؛3"=<Ԝ 1>>5F_U# ,hhVW"X5*Us,'o%ժ x}5ǫ#EpKF)! jhU1_Ӕ7!0Ȇ%GG|DThaJ(2dq0#"sbh좻xN,:G*ؙEu2J%S n=Y>=c6z/ܸscW)4uDKFt-'lvKyNYs_iHTr7_&xyp۷S eUK<"ÇOqCd ^ *Ҹ_Ⴧ ?w?ʅKZx3tsud_}_|!|>H>:"!*avem<5pqv_}_|2gh]wqz|D=ndWn`sc3fׯE2%'?-S")W_ֱ~'Eped$ ? bX_!Q +QL|c6B7!ϑ-򠙶n'ef|Fkɖ%FVWz_sZ$W)r <α!dT5MRxcAgtxF1p# TK;\O[Ge~]X)Imѿ~s3ԄMiC!=_mJȡηJuIFIҟDn ]P:F[I27c( - ;Q 4t_u)p;}d '$Ya3x۳i."[#u<2@&{l`kZ9:uՓWbL\F (BQtR]fdUB*mb$XiBRߨE{F'HEcs0_3*Z*se\c1-G@GN{'ǘg3, >$N9^{!7 .#\D\2'-ɏ~ğ)]n]h;~Oӟ(xs7ۻunܸ$83 ֝\Pl{ӿ n\cPUSL&mx[xloa? PVlյMƧ( ^{}0hW8| T ;;8怜Cad:r ܺ{eوrrnsBk5h^^/{xcyp]Ҁk]L'# ] +eS.t9nDVMH@(\a 8_ VW:HrMj3L^0pcwM2`hcB! Bv7qzzsܿw,OS<b1c8\L}dI xI#6}K:O123̿陒M)l5%eZse 5IxEW@L/>k({{\FR dgbG"nyñ~(4fbe'h#Ir(W4dhIc6m2-.8qsk?4zHǎIֳZћr}}k@5 Z[=OpzT,֜S E蹠,=G$@?O܍\DHyg IxqRoY Ш͏$mz 6қ#ЈOb4[Tⲑ)ۤi;DU8pp6P@=Dsah NQ_89m١M]zF m}^%@^=WŠϢy[3oTdfNASEA/[Vp# lWjxXiPC€TDY a2U)3_*ni"ӵi1Ĵ[)d҈%(=UаYg3ie.LETI2h.%mk׮-" -CEnyWp\Ĵ;L{D n\ XuiJ&>+xla HhLJ7wh75mgxsnqN[ˋ33V铧Ƹs>ϑ-:?>}<{n`{}6._(N) _ ,(b.JKѭݎw<:?E9>>[G_`>kò)esVnaN4ut|M?}瘎#_y<'D5NҶl#%h9u̘KJqT0ݶ?D ~ l4ḥ+.;"-Ok\?^kD1'*!y絵!K؍W_{[x3F8Ŝ-QiϞh$KRdѿ/9̥Y|Zy] j1͵a)E%ݮ:-i}ǒ$%q0i\].U(UaNQBXQ¹е:J>'[U=5b%PQGZ3wi>6t`)W >u=TjbVCLW#Y3reF{q GM iJ5SX7}uޛ?_l2"f94^KUINrRb11lHt.G*˚vn _0_7ZI׋N[13]fBI匿9iz+E#isf-VMM{ٶBTFiW 7=-/SHb657aMH5{ t]s45ܞ\1Z(p=ϱiA>\TS4 ՆƭËL# n"'zڨsJE DڤƾAF#ȫ;<I| xt$1礰k9)s4Q%.^Ot/M4Q׌5ZF[8=4V2*RO閌u :aYZu,k'2Zb_b ;s¡g_9b?b bOK,%+'%Xܳ:NY-(1iűJ.F3a:a{c]|N/H.õ=.a:`.;;ѥv.W;O$fk{6VWFg鹡v{gysٓ4w(VM&97j#&}D6 n /l4$L>S>#S@z-2 fqİ=Qb#װޠloic1MN5qPCiyUDBRUh0}l#^6t{U3&*42 c(хH9A*< (\Phkh4Xx\=׏=P\+up OY6 K~}BS#mvSiu5I2pڿpy.4ukeCz=P_i,6ESөdHYR_kkz x(S?eqi^hW,5 {fda2ihCTl;(y7M9Q>0 Q 7Fx'h4&g0l- IS|M[opt2 яY%X#,өsUͫoKsu'3 >ޕ1%k:NBi( ^Ao|eׯ.pLYl:/:J[4,I$O.B9l"Nա1 1 Q 뤕!ŒAIZW5 -kߗf(kd5 L)x_ɰO.4bi)I LF (e9%.\`D鰽Vt\b/r)45)6qT+ (˂-N@΄TivkY7NX̄ KXM;MRr4M^M<W}6LJb8,,Libf臈B* )T&w>D;SJ\x; 0#mLf7rame5q.nαQli69P͹q-ɇ0_TX]YOڨz@b4 xk`mz++Xwz.vV9B3(u8K>~I4-[,aWm,NqiT yˋ1# ӲvÙ'cֱb'б{t02 42|"W]LfK%i1=y‘H|J da,y#q(: qoK4[[:0s;2W%hYjV95Rc=YUL],qPy8F_"C̄Rg)R 5A۠6;uW5U:ҥIYGǰZJc2p,vzn-%:ĕri3E1BFzkV"ʹÕyk6@j_ Jtu{:LsxQUe)Or$F. ~lܯAT+5$%,3<2,XB! [A$LMb8bo<[vLO6oSBZLLf< In䞦b= ML-[Z, *դ|M$^E#4ĠG4hҖ2j@MD>;crC8-0guVV֑'Z3؎F( Vő4'L+c^YY q4)wy9/qzvh7|ǵ.򭷾wΒ ]rm 6n߾_0u-L9UB{UװO bW&moo_GAg̮o-<|[=nZ6w01-*ll^g/eVQV9_"C{"2鰳wloe{;µkM'MV/.x',гr)F'j.iprz$|63ҳ=5rƲ]hX˼:`-9d%/y⽰~$*ƒ dnL_;~>c1buom?GQO"Uey5QF< IҲa /&)7 1RI*FϦ>fDWQpTοAY޵N5ZV5(ȱO0o 4BsMT+ 3W2Y9T7^tJL4RL8'KdIa}mj~%M4stM̖9fy|9G;qmAvU&Ϫ#6&I7qJTĥT+oۍ:ݑjplh{KRތٽ"%$ PhJ.@-:МB9J7 T N]9^ِźa.#/lqbDBn"*2Zaz>z 6YjRf>j*.LKtCҔX,^똳s~/lrvzaQ܊S ? jcY%( RKSGeO>@pqqK:Ϟ}ʛwU<~N`mu [[`ágm*Rp:" zie?ט({& 562@kgެ`P,IT&+[ub5Rb6<0+_ , U0S8r+ꁄmӯdPD {&h3YyײGCYr:[CrN(yݬ٭xOܼ~uiôFi qƓ)fI,䣏P@Ws琵8+JO0'^NB6,rFtQƗZs̘ke@i:TWemЈuoC@"M_}E/*zе(2GAHc4V&RyT CU&MzcsApF'Ieq)>4FW\rfUȿf#F5FtQ!l8 5*;VC[CNЕ"F5>S$PlЫ/u4ɮ"brjϸbo^1R[q٬Y46p! lm=l"%#*lƼ|BD Hz:`P[2oq&OYj0dMՑcjI px|\kK/ٝę`9?-Nq:-B8U$Op F&iVKJill7㷰ӳS~>$c%c~ɇ%kfqh0a{g}~?GԄ\R|| ?s錑B%?{=v+xytVXYxx|o}緑v h$/K2t w tc;9cC 3N_ 8*F|6XZ)a`ÕU?%SL/0 & g%pq~X< |fsܺ}pVc&%R&Us,1-蚯St ..lݝMٌ46K^Ab~łLW1nyO {666oKv{) F׷_Nj/q]<{D5g'`J&~oٳH9]|O.!le?1-L{NFxb{:S}{` ^=n} {ﲖ3^O?Brf o͝kX.8}6r~G[`q31ixi1F(_"γ *.Ss?Jh'=6ַn򳖒)Szz-ȔJ]~o\y3ifn갇l:b0 vteeVVL'V2`"wkСe2C & 6.҉O\ŝ CɳwJ!lz#J8VlL4BjZ] KpCq'0s . R6sF?U6J0xiJOT;j,Ց(MDˣ=kbff0 ڌA(~M`uAE+ e&dmf4N5ܦR}5̑di45gmݜ6sMΗrG]`boG mddξ!wv ɚHvBcY@ Na^SUpl^α\J>zHGZ]*8[[@Hs$ Pb__okkrEyy`ݠ'X)uN[PX53hAKl5Qiݡ=Z2#T&ZxIU}ݠ'dRAnSN|#T85`S'ƾ")N~Qq?ц1y_@zmeZsWIpj\lFT72\VR#donےhH7~џB(K4֔HcL-ը1*r8Z~-A Z&706vRC" DkICC+FKVڲ&JĘ:gfᅩ\F 6 zuFl׃U/5rN.ֈ@)FM#&2 6sq8n+}M̑b6RgFկ%XBN9 EǸ{TX:NZiuoE%Z^<_`uk `S)bΗt! Di2N&bb1kyem:b6*M*w+43JFm8G1/D>TZ\uE?˭O%ly/c9Ģ#T^*x.Bp,k5!!bC)F2xRڒXmD_A;bB(~g? urbe5G^Qsݛ  c8|~Z JtR5Xl mԸRLg=׮u ~H!+Θ F0dZ"ps[+gԎpi:!M Vqxt [x-'#̧gXΎJ2ȱֲI;g8<<@eQ}tWŴҳc|I e;;Eƴt=]{j{`M>ڛxD{88NN9֭}Kx9O^uG'O L,*?gh JJ& 1E,P(v ?#9]Xz.I_ʃCZekae첃yxr|WA _:B0i,@DeiьDVC9˥>j<zvass ggGȳYb6SDfSܼy#<5 f1dZ4* 2cZW"4ëK.Hi (=1qaZZh@<2$Պo9IGsVı칆؋ɋ~vJL#Hm]CsgۼS#ѕ@n6k=;̉>bhtZF4n(S̱ 4V6rX3X8!H#;R3Q᥃ZCV;878(mM 5R="P:t߱ۑ~ s/XiV/K4F9e=3JPg"ml dKdNVEN^-cFNjkN3,b)pS]C׍t<Z)4a#d 0JJQOזjKZL?p6ı$biPx߸O?77R᷸Pn6NNNj* 2IJ|T|ѡi{y-BKo1J3yى۶0#Ky"PR.K $.(4gSȊ(IX[ibٌ4fWycmJX*FM+9ܖ64spIp=JFM1Als|daC}R>/sT^=aןfh*xik0K"g*\i_-SDpj|4a/pLaV1R:%}%p9&JjfFOTĔȮ;jD/إŔBi-3I\6n)Ȗ>FJ;[X.&rRR32]"J- +t4Žč7p 8><5|ͭ]y g3/\cݻ^֭{\x;;[.qt,8::˗ooŋOpr9~p,2 IDATO4eb9ƒ\z7~ =DSs`}!<.m~fG:iVNg|11.qtvL%޵}TFhv %0sQ4P)]|(|<`[~:13FG4W}&̱)hІ5j y}~l]i7\@eXYIE6$j>|भs}A=_+]hWQ5wx̿ʹ,beg8 U5҆k=t%.{,k9&EQ6CjCHو^هRgWKb1&nsc(@.EKVKAvwEW!hNt_l姙/~t(oe|U[w;>zn(hK-A5j9BG hRI]yWA&9Q:wg? A~N> CF[e%N}\u<DT)q[x[CAHQ:rj.QfKthrʨ\rqF2g)}<6ݩDj`4H?p<-" r1/ptݔ\i46&1zˌp Í :WgHPf*N6"&Amͦu4f5P_&`/P,hV3HgҤ4p364.~QdeTV_qϻT,Hc'R[]$Nf|c^J1@ZNЧJ?;-ޒ$zyw5JJ#s~nkp4J6[5􀾁.R"n6qC mL9U!5 `j|>X -wiSFSj%-FMnӎU*e` Yg*2j.bh9RFF[ M 0c=W0\J@IqݍQVzd 0X3}]ՙզS43T#$z=f4Pk_\k3 f/}!k z(c>j0DBAROW^jD ~ޯSuZdt7o_hI?ktj-jULjz=C6E?';f'gm**u37UCht-Q-7^C1V2@ߧj5se)`>mf%,JQH#$lô7M;m\.ЉSLi1eD"%޻yܜeSFBQ37,vHسVQW4el ѧ8[1H㥀km\-leC4;BA#j\[]n'G'Yųrh#͞^FK J#N~h3#Dv!i-jGeT/t|Jr+"bNōVd1\Ԓaп MLbB(eW* ڧ2ULzT`x6 m~0?:1RF6'Bc&ͳi" ̱c]Y7i).s6t:q m_zXpy~t6~)gRCIZʫ װIKKh-!}ԿױLxk_&.ΎȞ[7orɈ#5kۘL.b)7)ox sQ-ln`gk'Cz/U;pqz'K,Þc8t-?p1IGgX[]=<]'l5N1:?EBGa![pQA]Ym +xt#G ܠV 6i/Kr; 'Zb1g٥:mzFt0EI:-p>- oIs yK=D^3'f߇=}RTG H5SٖQJh:"<͹Y͠k_! ſ0JrQ̈Uΐ7;1|?QwHv b;QpWPe9&@@>#ZjfF"e4׆:gj'ݲFYȔ$KĞs"޸>+5]vzjw+`%&,$BK+ffH9i3=]6*ݽy sלQ`j:3 s 0~|éRzڧ6R' dfJ QHɯf)J'q@FzJ>΅K]Sp?_֨AY`vcEeQH yV/HT*b[EGU_Qp@TuT'oɕ\62tf<|i}>d d 4^뜖|8 *tAM'J Ka4]Bo IF>ZE/NX|!S#}b" Vf:.Nj|_UΪo ̕z#ըAJnLSU5vqButL~6~ eAkXo#'Ed ۈ.{([fD{fcXt=qXqu77:&qQoNfi4ُW;u8-~|\kGxLUlX;,2X3%[)Thq  )`9E83zz5X#êذy^.2BA9aJ>{;h ݭ-t+;=Z=4vW_}>] lzCocmč>7ҤLݻ+k\~n^#?b6 7x{b3g|V' SrO9TAb1 t-^f4{Y(ܜ3jcڡl`@ږwnWg<SrΖt;`MZtqf#4Z)& Ai"ZNyPD !i59Tg5TJݑYG:X!khN4# a5g$>ѓ7źL7웰}J!ڳQ Xs%M -dE6Pe7JqO)x0qwJSj!,FiFMxӭ'gz#i":>%{&h 6^'KI|F*)jh ,Qe"]VN E]#{uJ7KHM-DȊ ȺΗ GkޫHw.8dO+#PFM*~hG9h'(&ErRN1N賑7Ҽ92_b@d*5N~˗𒛳NflRqWLdlij,cZO i%:"pCK4eWCz#] (Rm",) iX-DC:5b4R;p\/TP$Mhji6юKnj$Ѳ5\N01e29M6d8$1\ %2rdņ܈ŕI֑zOĕ-9(EuRf\0s|ɗ4 .c%Ga͹p)fߺ!jjT;%/\fe 969'R d\#BϦ ]Bni [VLZX/J~,Tg}Fmc,rh"4bq$},q 19PF kˈJ9LEgHYkF&4d&nDy$Nb%XŞS4ZtϯK/pr|FHtS~kڝ9L"L63k!❭H\~K[ F'+4Oi'E_})Sݯy`H\(~`{?5h#*Fӛ[nŋ3j4/GMhI.SI~rx񭻘GY#Ih,RO_&8:V_gކ-3|FOF4x} y>Oϰ=_>^N޾t0m\̰`2b3˗r]Vyn/~St[Mt:}t; vG̘tRADE.8z-:pNxB"QvWC \ G2X-3^X=no ɐ4#,c^&, z-֒)d6^0є)3,mz<űIT՛t >o,]×B{DEEp NC 8GE :)iND']Et?(Sφ ThS>e$XibN1A M#{5BzhAP &A 5o![E.1D5#8[тc* i5oJeIcRD%֬Z#TLP\fU?/R}Uj E+uM3\r&uwDlګ=EꜚzyC" ZLW#u73 峧zNM >J WfN:^(cOr`[;*Qszmh,1,BB3 1NuE(Ҵ#72=yZ]SKOcS s#+ YzL !Jz%>23͈ jx4FMRVQh؅Ctl&\hRl=QN^ye&F@$ 4+}߿w篯ؾ+S_v>7%louX|6[|6..^cKPϰvg,osQ&ɤml6.^aw\1DJau+|˳D>/Ɍkō'I=5߾{ O^|/=lǸMWfK{ݯ(H Rlmoc<KNndHW8~j@&4b< C|l1v͋Sd ᆝ#L.MA]7?k޽/1z.αۮKsV̀ .|GcJ#ѰK4>>%,/CWNE ;Z}q {ɺlrwq#>ilVh5XVh7clzj@DMDjyT׃ή//pr`sGOl#Gj3}?d?/F{i)ls\O=h!Zu8X`='w~W}|5"0t;=t;lEhc=Ѣ|̈́s(@d /^Ѣx_#;[;|Ύo)_&j,!SCr撜7B+߰kVz:`wg\jk9_q]P@l#^d$UZf76Pa|tjJڬ3YǥIB6#A U"JWULًQTV݁]hb'ͯvE(9eJ0jx2ykl[Z]}6Qc-uNǩTWQV(14 D* uMz=-ʡ uh5ڨҥ+wY9MpCbZi*} 3U9suzrŷ6桅jt|UV(p(6sBc<_hTg&#!x}clp@ᝪ+Dsyvъrw?Sݱip̕qS:tQz!C> sUWtʜHqWV;@{jR7>d4G̔wf7U&g&Z\xJ/[qS*U䄂^p̉rNۦ&N~}g&YϗJ-CO&2W`0UYmN#EH4JSĴ MZͰ:d: S0 mvɅ)RF;mVa3-PMV2HY-~;.LYeQc~AIm!mlM $^"R(;eXYʘ5JGeEtkB}ƭfyTװVvgTZa*YCk0Cwzs&&:eYYSoB4NK:ƌ 9UHQb]'Bd[%Fm z8F+ic`sLj݆W6Sj3z5&2XSg46ui4Y3VF2lI:&GaӤ"n$&xzq[Gwq6<+I;FV<%i9G&x?P꼿KEx$f1%Bu-#Ft|4Ql\,^-!7^z)rHbF\FCT)# |ҌRYdֽ!")va.o&x  {ח|ov=;"CO}!Fb:e .z_} tf60qx1:_|D٫H t}Z,|V2j[}LpntVλm%2' $xx%Ή Н;ww|Δ+x}ygg_a3 ?E÷^8? rl]c5dCݝɔMN}Snk= z?Iu۟|+,k|g>|4 F+[GGH5~4nm[VwfkHF:b>xR .^6L_ǤgwS,9?ڠ9nڦőf zbB3Xֹ4XnՌײ>7lO?gVHk}^+"H{t/-giXC ϱɉ"IFO)4l'蓜Ŭ75~ W/xݣń+awj/2"FKSQ1鸐\\Kc!^IvN/%"EB-A7c*m=zo`ޚ[p9~t*Oo,Ãn]_”ƑXsy|NacBcrKM@ t25bUMbCysצ4"̤]_+6h*[CV'Ī :Mi=Qfuxb=Ҭ_FHlVcDSw r5ׁ0Ψ)l@x54#<~,=LY95%j0yJ;WĚc y˱04(MlXɘ.ikآ#܁Mi;[ Wʠ:5== ͎u6MAL I$Y/sNL.El"4+ D7c{ k v68hlc.& F7W}bf["@4!3KЏhtzx5'K<{ uLI7|se:e&O*# Fno jٳ`V$ˑh\iFh\1IGO ν=ӿ+w\74VמIө4eg cSʣӆsi-h5ɑPS0R].=KCoyr!grB:X>Yz Hٕ3!RXqM&Ogɐ$M]* RA Ӎ4n.} <7&#WatSRzPL.lJ)uF2j\]e-t[Whf7u E9P&iPc8>`*lVd*G9\ߗhaɉYlўᜋW):vXm6$1zHDl`r5_lz43FGXfJ4Fb3uuFY p­q~y,[aѰ<[rXwgĒU-4ǿ4(bXcm2D1o?_|M}l>^:NjwjH!6+ɧXmL޼v}o1]b| Kc2_?_"mw-1Fg8;t>E!#â] #uV[.S`{M#gzd70]%54t!:u+FZ\:{xkWŚ |ʆLF"h$D^ib.<@H}kJu뙊鉜 KVWrLKCc.?^%{LhFdn71ΌLhTlF{x}~hqܐ5t5λϐU.sF=a={3jvgYmְNL8V4i LZ4Ds;v1jk/p+|52 GDof8KGM'/c^CIV, ,VW5nݺ&E88:-FOsCpuWHcnnz|ɰ7q>CL9.o7pͧ\rqr%ڝsl(#v-P̴B;nW傣ĦW{;a&ǃp'\PǴMҘ.RIK׼M_2X"j<{,)6LR50qLڜL'j`}6y8딛0L5Mm_ꜘq- 4*ͪx1btLtoӺ^2KQ醄x IDAT0SOH4ΛQ"K/Qf y@SE+7 T@z*Y|{ޤ/Vֿ:I`j1"иzdnGآбw\}6Vj-H9VxL*8Pw ͤ?eNcW|]7~~vTj^CU)M&&r#)`h*e6_>[!jd CEk^7_*e+PCuOsJNB(gƂ*͘5 V(`ekmyRin=ޣŦ:'ҪJ0*甼Y6jF00@{f%~e9I,.[M$~(_w4dcU96bj"F!=jԈFE71$_uJ6gsCp1ՒT5jDrl VzOOW|)z;;Hm֕>#\E߭SC=jil,GQJ[ c(j\=^CML%,+QJ @a'@{gJ'j\ KtM vw=6b.|*d9gæT`*iBxuG#.p_G~0ipSGd*ՌD`_۽}tEqdװ: HMZ>a1YTӯ4UcBB5cfq!vxcVQ1>٠6eۣZV Em8ڒ00].jRF#ܴ#d9WcP&ID7 H0*u/$+EnLrsHqɦ(LӢ8ŷмGV\9V|)#jt6_rs\<<4-BԈ5dQQ!;di gci/|as(Q%ΩP"֜ȽF&Q@k4Od=Ұqk :PsI4I<@{988`J #n:(s\jXQ!%ϳd`gc푦arsϟagkGlWZ[H;h ^|t:Mٳ'X^b:pWqqyvQJt]NJ2}zXs"![ vpuy)h`x*p[' LFWȋ #yF IpGh* g'B=&hQRf.Ν)1.H._g5xZjT(鋑aЂ6jDܗRjR?4UR [㵲NQ96NʔoCj06>GRau_0Z&QQSCx9Esi=gݳ|~a.Zo]+b(VAP_UV,5ȷ,Qyh7K-7=z6oF#Oߕ_f#}bx*-5o]ikl@v}@}(Æ ׅσաo?~Ԏj]}S1S}3Ba5>*34ɵx$8ՏѪԌakn(a:Wc5]ev1qMxӺ˦IB(ʊԏ߃$&ƦvCtj]"s$ږz:Nj>irunS 7fdlSJUs 715 4¦ iKhvH\!d;gV?!_> 6i&p ^QWB6PkhȔj#t^{BNGD.%8iS=J1z F%7 !8;$(B)EfX oҒT$T[Ԥzc7z6E͕G̮oDzk(V@/aa\6rF#:q&=*pd DBV7ٍːl 69^ܬxy}TNͿdžC5p% ?>/8`2>s+5@$E^Jr?2B9!TT:DD4ObD:-Ʃf4kD[M vzXFŊG`r2%ш`fE0W\E)愎yΆENW:#=kΨ: Ls|ïS ѭFx:lHFnۅLhŃ%hag E׉l3'j$9T PF,HvpvZ2P7X`L" rF[oNT (tЃq|Oj ppp=^zpFw? |Gxu~Nhq-,WxyiPDaJ+%ڔMHsmtlVcv6 |H靎HTvX['ef irP^2@;FqkrqaEZrǝٯfuEd 6BiBcי^wIA}xȆk^79]L\+]aj#np**Oְ9NcR]‰^;޿6_ܼٟ+ Y>*5j29}-ZJD͝cL7r4HӒG /vpb7jadݵ(,TD GU oXKߐԻ2jɑL)iZQCǑ6ZeGM+)HRdżo*F9t!)khQp):6VȤ$lY'9q P~}p DjHqt``iC ZC6~<҅.9zg9ndb6Ʉş;FJ(tLNrćp2tN« BJe\+Ȇ9P%QOh2>bx%2W|i6+so 20MM;dmO6XCƄul4rogCBrM]L9E)a_/C5;R0^L) zl+]2k( iH1ŇŔ wDDs4"{Lsɢ„\{=|bqNF8;;:OONn%>{lrWWC6OܺuOlQHvjVHS)\z__Q| |2܌?‹J`c7fX]}/^ck)6w1ȹi4{( ֓ ;:xɝG:Gi-YޏBOX.7rӈ[;{8D+bi#>ۺ1/y{UҀCN_m[P(s@Q)Bo IIC"P|w5z@uxF_2k5{f|},-kHl-4`LE$Cu (^!'D< MY}JR2P+uu<1H)G*GFMMOD!VXUU9MPCA45o<W1,ZD4gD_kL^,M*Is|6_ܼ*G[ӄFQZh99s @- MWK1B6˥1+ _}S,p97kE#*MfQ|4eV>4u[lwqwhY>?|)rCjc n#{o/EC:sb1K= ëx%ڝ-ܿs/lfsk0?fJgoSþWNuYClV8e3W#ؤ{Gwh|1ca8͈J nSRa“,ii4_4;;X-CCm.tA6p17Kz]=veCȬ564rS ZԽf4ma\`C)ZZ5nFU}c)؈|bM RWJToV i}U+iqec=dPF m\DUlMa;uXOҸFa ![~c<{KoEEUCIzTGcezV! PL|èN+ٜҽ[fTEJ[C˚ʘK6Bq͹dHČX ӨOu4BF+PZT_@d)Ij+T2j6 ee|#)jHU!lbvx[]T׺UJ O3m¬6biSkoCB}L[w$kYN\,<#sĨl G2M iаOS68 s|T+U,Cu LVΌ FE8;ۼ~w݆)4Tw\)EdY SRʂ{u$!jFp?9H]4>(lHKC)u> GO@.<ϱ\YQeM^i;Qai*4gĪ_J>M ^(*DS4MDذ;͔*"a \LBQFM 9??#.!|4/ "17h81{"s 5X^OnT5~4`?@ Ě T 6ڏpw(!Z!d[e`<+UmTe|,E@>1K4HГq 5;[;F૗O%Kl1 |u}VBt9qv#P0"E ."FZay rX4)֥pUN٘~VrQQ-\[„\ZJL)bFlL#"PfRkt Z23:SWDE̘4a eW$ >ףAHF6hsn~\nXkjԀP#*eRu'4I%Sˤ\qá%FtN.coiwjLN|22}tϦLV;n٤/_uF!βs25t<׸|)u2[ox9g}O8g`wo[[=,#,V D 7ZX(mq0knF7C:I~]QDɅmТ[4ё>q\wcFWC~/V!sz=|h N³'O8If8{6?gn 8uFkxtGt1j5ES8[a4YwbBןslu \^]1RuˋߛqS01:36jXOH($(1@:efƒLC.boG{rM2\09M=/% [Q<Ɉ%¾\~ӰV4i>M+-dKYu­<2@V}h q%I!wDIλ" \V1. Q3pe6~S K[=/xi?YXA20ѧ. kVSxZJ`yXh2.85 E*}F uêpBn_ոS*&8VCM@tpڰE!)ܠj}]5y}QYUoble& IF vz34w6Rcs^*pPo~ĆMmp=@N$-(y G\}?ϱ9J5tlFmıY)N`:qݥvFhB1=UD5g&:K\ ц fdVEX{L5 wy?>e5- (kVGYS=k IDATg|Fic9J~)7u"ʹ\=zJ?N68$7@- Y\HoX=-^C)$*4X*  YczwFEYA:+:>GBzTdrf;E0dC;H8ꔊ4A $I69J^8H$=/ i .!0)HW։,JM%nFHn$9J8rVB@hD6(W9&ibc#-Z7zQF.L_Pm߿ u0xKQ$4HL+= q5z*LK/s6]JL <̊sj%Z`F0f\JvXW;4J\i{{GIh\Fs",fůKMBˌ59#W 899ܨcdcr!VobUe&Ǧ--7(Y "k6 #c0n['pq~M$bDCX5y(a])^|fLn9nm< ?|oyo~m`7 +7جZM[g}tr17KW2bfif{x? Xu}gHމyռCN\j:pݤ E卢o:E#Шgobq%ߥ&g0NFCփڛz]\U18L7uxp˾*J{&Yzz+mV3PrcJPϺ!Hul4[KL/eͥf&qDGk3o͖pa4Etvt̋l55`91"24d#$&XboNHby7^/opv-.LJ|nVS 6woNq'xi]|9Қ1DBW_z|ݛx!}D! L _yӍ;cv'3lacg[yV''0)PjѶG3]!_ƳMO7G(Vg8zՊM&1z;xd'#߼"MEtiB=c1$"p8P7g1v0v qUP[Nbr%ͨ 0Gv8??5j4i :QWC@R2 lnnb猎+mD Չ cr+8?}̓0Vuf/]Jm҉\CQX Kn[EWvmPgQgZ@0PW*'guMMfT6|a.j'W6LM9 ʮ}$QdmRjSG(!KBsC4J91StMu"ͨWơ '*6nZљϻjCMIbq>0tu?*J/UseC֎ _/ob"P$HY)LKtѦW0wX5$ >i wv|JHv Pc#ԙ8*}6 46xtͲoT{KzM4:3 B0, {u:~f4Rf,})%bQJ m40]8&Ϛܘ 52`ӮJ,ݯ=eً9K-3Y-=ּ~oq7uu$hif4ƙP*fd\O5Q]Kfb!~smyWF_ ^MCTCn6F6 f.XBHM<\Xeh\]*͞Ų\D#-<6ҍ0ڇ|q lޜEimb\ի Z.9 k*&6Mb6s*iTEp }ȡ[,@ޕHQCUnFUj1{Y!6L}MO6bNhh }0DGM E;qKBϐ4DIće[是 +ұ%Kt !TCoNMz`$:Cmv2 ؐWpm]]zimW2KYjc ܄57D{8nec*&jf<z#Md>#"tK=< t7-CF8vM;mlFrF7j4!&/k)IښjvM~zfVU2ڀL <[L&ԜKcs~>Zڢ;-<~wS\w:ӟ YKs_@'OPW(|ãc;^"Hv_a@&c͋XD%BH95t4ZHbBl6b%Q,FNB_.c{:o+Wq|r۷o-y D˜ qB j0)>a61{F;vي%VhGWv_3{w)-i6Sn[Fwь!k9 L&nݼSGA92Z1QQs/Tz6|VkW!$Sa22xאkֈkoQ 3"~ॖsj )]ݖE\4qc-j9'U U 3+"Cj!#p˩"czCfn{&]ҝ(%4VCQ{Z؀;>ʹzͪZpIp(O_6:ve“CK=]!ňɈ1᳄EoťNKEK;>=I%"UPU 5.u9}Kڇ{y)5깭+Eq1'Ȃ ee ^]oQ 6 =d S=FVu0hu8pG+2ʨ͖ Dġ\?9>a`vQuaY@hzuf5dAZ8EMvSlo 2ˋDR-r(? f& z\Ewk2E-C%;\~ Ї< Sjp\'R| G 5ò j7UAUG#m 1YLeIc'HZu+X-P֫NR0PމYD9H[g|NQ-ρTzME#JCi.H<::q}~,ػ`0ӧOܾؔ}M"W678N և?l$irdͭ8&ESh0-0OZ uֱOݷlFg/%!HH `?+b5[A,Lǯpr{ט;ԕk.NFz6Gh|+7wn#&믉b x{{dϞt[8=|3qeo#Cۋ 4Z}Rd}ɠI``cmp~7/h\ӳogPd85CG-A"#A ww6qp(&X]nKH0 %]T*/2 4џs!R!m?((,EHZn]cBAIFs\U#M16vdKk $M R65Їb1'4ӊXkXNQg*vMs SߣqeBft؄E3IC Ŵ\PTӧhHF>i*4!ZBcY5ZژTMiCR+JuHVJAV~ ׮sh9J1J\E IHd9򉩔] T +iE6y)c&ܚgTXJ+0DI0FG $&5cݡ>@x# t'9#亚S|ͫ>aFG- ijh+F3Eס^2SQM^]h֚ad2KVl*6Z>vw`,0Z;$ LagH&Qf *礜&N[(sB 4wv$q5y,ހ&:23yb~.4$VbAY zz|)wt3>}ͬtձ&E5Yr!Pn7͒L^-Vv̥9ٖ> QQ5&7)lʹfҤ= %DPH$1^'4jbI`HIO=HM[{-k\(Cf떚|ItZk1ٚi֊0q!L\'1tUd0ȅ/%d%5}YwnhpZ3e3xd*:ܼ'(4ޫq .͖E'1`p<_DGC-L> gNMREGfAR rj5tQAVłM'>7\b!K+B+hdG/DyvvNx5͞D σ6ˬH!ڤOQX3o IϠ9[;{hz;m9{5:eK.)+h߼%ownaqy˓ghg9b5"$cr~JW|+/9dd/ ;wn hgCb 31p1cP.'X߈zR 9IT4",ԥ=,N^:Y[ ֚ټڃ]O~#|oi*FQޓ>TH{bJ4Mr$a ܴp(DjZ u a#Pc)j&]ݙUT::Y+}*3 D_ K6j\r΂&~E(!6L<]!jHtAs<ſ# ~ȱwj5d!0CHm ^$B"9;91ŀBT˚elIj'gHὅxyk+kUQˀ@7ouTG}h k$TzxjlK_µ~+h"2+c0Hjihu$iE+5Z/!ai+dO) i:@!oR4B9kpZMf#o@WYYng,?^*e4yQ#IRG,ko4_ԼE4&17Z)*Ņv6,2\ߞl,Nzќ4!9k-Ah2H'&9aLa B:!? _QZS"b>XUŬ(yǑۖlIӊz)0pzm UN7(fuًrrŸuɥ=Y p$=JؔzCɍ<=F2˖AOS_;T٠_^9l徥 fYUMS*Ee܅j5.[7 u,T)g0 ym8\.]k0qQ*͛hRJSONL\[& ,QUM,,DJP̠N1_]bX*w'dۙṞHu9 9NsIQ:%Ia{*:M [D/.Q%i2!z4q(ɞ 7o IDATmIĂlnV$iE: H* 4Q|KfS^ؙv[tEDföpdҸK֤L?i?"M4(L"!^sq|rxrnE[YQ:66qq~F]$6~#\NT++Frs,?sm,J !MO^w {t~zN0hv ,T"6ҥ%ʣ7 quy #LFoe B Hw:ը.9Xngr b۝>; o%җٳ3 #G9j;6W4?). u 2/W2"E j< 13@^l"zfsf&#Xgt6S>b1 Av齦WAkKk G4JybIִAZ miSءfFݻ5AgbB#47L(ՆKS #\p0$!id^ fа}V" FEU,f~{t=އK eEb=Žө&FiJ>;wgֲVE'Ba yFf*}P@j:PUФӐ&M*g^1jю/!IU'7R/Ѣ*:Xsj~Bq{ë7bVh$"m2u5|4q5JNt3}@,2G%uY3 e *-{>6FZKWܛ8MzͮhCϙk%eALS*'"e h.tՀ:iqU(}R&'A4b"Mr0Suy9!}UPhgo1`6;cfX+ ",j.M[D[F=2W_N܅:UJZ)hq,#MHf..t!Y dQ!3윅NUI"9CT[-SIaˬ9уan-E\+BMdR`tSDiH&o2h.LcRmhH~ B㼔' -f(̬<\G'CM3Ih#RCM9h\"5WPp}_J TW1\0Iodܳ3ܽ#lnr*5ݝYk{7 {̒=;~|1&QihڴظnW ęAdQLiJO?YNo- ?-ln<~-ׯacckq x .ΏIzSGg}b&٘PFHvxd1{u6޾oo3dBݸMDg~yFzzosi{9\Nqzv= -euns!ŐdgbD-1irmJL%h_\eX k+rw*I5.&{`&ybTY*itnX%R:c.cre^?i8P55D'[2^P9 7DGV`,򭐬ZOC}W`td㋧6ZbS>̇ ̬tz3ٖ=\$j}! Tgql5eIá9c xذ]VHwO8:q5v& (f(BVQ\0jMP;24r~hv27ksr֦0y2P}$*4՗ c_׵5֨OjlD[Cz̛]$@ui|TA-ʘK#(-9dΛ D8] Q B :m^reTh$2Tm|1 ^'ct(r=gZ~&&@fқ0BЌ^9"jzf<˥a5T5j)I>S_)Fٰk^a`;ѹڿ+[ojT^3D1QJ(ߵ!l/!Q*Z8bÙfF٬: 'vpQPnQ?ΒVHHRa^5AhRR\s#4@53&  JhnNM.QR2O39[((ډR{c]5.8GEyZwiuV@եJj(R;&Eej6$o^K#@y"2LX*V-RSL4mDwҒCAabEg6۽Tti"bGG3N'#:px% T$,ĸnҙwLJ,dϢ̰{~W̊m8Ϟ>_.%׆ c?5_D^MT3[QT+8؄9z\35,(P  A))X[6 MA+}`&,>KNΪu0˜. \@_)ye۴ Poak\J\zIW( 9G%& -suZ3ڣĐHAٲ6g'ychJA mUS+^FIA.'d  ,w͘KmZ3m:V& 'u2S)jE!f)} JE. F﫰M]_چi^6I" t楏n6<\W hAФWȽc^( :/^yMOzPdX,fXH%2'p:(0]<4X*犔$^\4F/2) dNwBfzo%,"AbHK]'<BWVTOUãJs,#x5 ο) V9V|ǒA!_գ⻨K5a KnQ˔ ;[YUoٽNmm- b%kSmE"֘9͠0ʌQ=O p L†0sr<.b,XH# ɽ4fM}W6iXB4+v4PEץFBףZ|es'^a?!_ҼO׆H(9}uDxh3ɞ"XÜZ?TКNG4Y <,K̬s(-/%G]'qܣמRov=a;LmxvVZ!VYAA]+tSo0mP%=8.b0juAZfm~RJkqz|ut@f3gOe9 Cv9! @[?7NYlmM*qU]kj0Ӥj\>ae&!Vv64Qj-Q9o}RׯHy zC{ҮRKfgc2̆mhHDtvCFAJ͞k, 4rez\W9f-,[9ýWNV3Lf4;ܽ7nФxkW#VN|n}ԀJ%| ^)oxVDZ[&n\IPlkb5je2-tpxp=c=+R6z k]o?;|5^}tFwk_7Ci*sfe:.n~Wo\S\)^=\9'm (d~fPγm̦ {k> .Ϟ#)/D^ܛ޼||"=c(2Ҁ4f[8F9Mb6ZXA&݄[w{uOSǸ~&/45ug.fRPՊ(sFj"[) 0gn3.{ 7Қ$4+QӽZ,pMq!k!ZL2X)C39%05 eedA.6Qh*ΣB*q 1207 iҬIEcDCr^(ȫLF@uz& :^]l;%8Ԧy.Y8`mU aDhm-FY72yދ61[0Y4G*sײf^hRW5#ػ2'ѡ`)uf iT]Ʋ-Pƹ>g;m˘` 5A 4B2sW録3*/ 8 0Qhxř\ΙWNj3؍q<++Z6"r.eMyx&R1L,5hCYM${}jܠ=R[cf(L) Oɐ?lk_=U~喓DgW :TfDW! +Ņ *dZ~/q)CC)x-[B?ERbU|SqQ{;qF"oV4!񸼧a_QC?k8<8ࣽӳs,T l6M5 ^Ed$A^o6T~o>C20/_:U'Ih.! t@>^# Oy^Y;R:NZ @A1+ M ܡw>DI͇'b'F"tIJ$,nlbZIVT*Rk ]MwGr4.Op}{ ||m:kj \z*J(zΎPW+ڭKçF!p2 R{adդ AMM*C>P:)ls@:Y4Qqis˄3iD ȉ@IK+]z ʢXh%`jRHAZP NPša蛛҂{ܼv a_}))=:Ԯ-1 Α~^ .ϲSc2w;$iksC8ŏ?wLH|B{&:<:D;@{ 8>:\)f+TdcǛSsjEg=$vtqWMv-&wDg?9vYUzX_kѣX_Ľ{?Y( IDATb_dtU>fP|S|_"_^{[իoFD4uf!~h/ uo^ԩ'?)ݟ?G ɵ)4R4m_ ݹ{_)렙X 3K`61߇ %\rAL8=>AѢDGc4m5-I}k69 O,]oh2nmʐ3^db&r XB 3+`KW6m[4 Hx%~+!~GRwE=1jlAv@9]@0zCœV+K3 3hi ՟ҴSf'HaFa9ca+Z+2Lm0\7b rUi͈֜GXϲEU`וprRիAJD<ܻ) Chu1vD4uhb Yu=𕖗-wV:\FaEZ7YMcCpupX2Ҵ^X),K6QWT,E L e VQi!-RYLa:fel,) R l:Rj.9C^@:7-844YRCuLp Zt /$0dыTy^OF #L2E)}oRWiWSRuڟ h]I0.r)әɩ]kc8) %f2Y.鰻6ē#}HI׸ d5ye6FuU'W5Qz6 8DzTPMR''5-\6KV"͙.*닁&&7ЈD6> ~x{vDT F,a2l].ۨ6#9<ͭқ.9"ao4P;U r@~)Bc&(&^n#82ep,2^[/+7]nR`&PҨH(πPNj9nlܽv(lUW99TP#Az,!dHWYE)| rA`esPp "+Υ&J"֭0c4bE*D.pgg&}^Kt89>;?@ن/Ma;+O>frxttv`/b`NgB?amr 7vyϖ,۷nן~V$W܏AFHĸ_B-߰Z](nÏ ܽ  :͂Mg# =t+('gS$!|$Ӑ-5F:{_}DN{Do߹g_|:>Ov lm~D3D K_L|?8x!N/F̻txKTdWW𽼼4z-09?}}j DoѺLߩhkEk&¢▭ Gj99tϦ&tYQD͑\/P΀ zʹ, G F&,>3l8Ð*|br)kJ 1\q^wM:.q?V絪ql4YK詥=;ļ9yNb":PLS/5a'$-qYAjF?,iXCIgPʈ G00֙fWѾ(dRgry{0bJʪa]CÛD#lCQUk Wfj0zs/™YU]jςYǡM@ƇyTW=C l wf~:vufCiƒjpzG4Y[TKpiQc[̗j%KSdEe&Nò/:{fig5_ &f.?ݚ ˭Ju]yUJPL׉+$cD4yx:<>bjiɢYΆ7aYhA+1MTg3ٖst L>ڒ[hcCo#_Nհ&XGnk ɋHem8& `dsH1!FPD]l( eT :  J6hRHC4gV昱SLjh!'Z\&G2HXf5\"[$Mm` w)<,Jӻ@\ofִEd}!4+qZdjlv:8[Ph&)6-l߯ iD:9]k$mphTKl97o°FXW !n> jV.56b^i4 R眹*P\m0LC4~)7J&H%3rr 1C[Y /Ly:kO(ayJl]Z\&܅B 3fG\jZu3CD#?m:Щ47jy6pxi w嗈bI^I$f^۷ϰ_"mc\CBUj,sa1o8yKdFW5]N9}F1_ß/_<ï&R35b&1*^7_`PptzP!q[yO}wcQ40LWx\F[ȝĠME2F2q_5|s/8M#3]3˜h6.O ,t|2?0GPseM.ݧ)A9\ÃHV)}%H1?Icc_ڳ-.'縜(R̵ ϟ?ư7tD1αXc}m|]9-r O ˕̴`nl>)3c1&+S)2qXo6iUX,ct܊_)\-pU\_ۢ~+F)=~ *R+!V5e3əRԓi eh n4q4+bŸ~LT̕>BAn*Tĉ'A-̌s0\0qS&F:ʨ ED'raGUs}L)E0t*;39e]L"+ؔ  "64K^iD~H/fpYY LQJNc)K9{=mYAAQ),gq}2>hÍJB=fAFg&D"`4Y:YF vk2=C&]YqQ%>U7xy y&|D {gi$dx*jTQa4,kԌ t r]j"Cyq.BWyOKVH|B.`BIU(O썲 }3ceCQ=X d ]˨}u}62iI)FF^!Z/aiݢPTLHR Lr$Ti!'.Mx[XN&Ȋ#kG~2Ukb ӬϿc*zk@#: \tiD1-"/k>!rqpzLz'pn z4Ԭ5P]h_JWbZpPha$eh(UO~ub#,Xx,ihS*ZRv=Vy54k[۸8=Eu3?|5L4+(̱ݮqbXΜ Wь9-pEӈeI\>CH0üE6:ARe(TkِZ^ZhJ-l0P oN6&)>iR?l6h_Ƣa/mhMS(y>|LMVbִD+l"މϒpϩvA9 SaVKC,04j hR|_ID%"~|ibQ,ck|\Y:?(ި!&J[!Nf/ɇl]1XN▻{ NO_I˪SPV5͐AM/%=[eͣ|5't^Xn<+#]ܾs?>pzMi 58O>?9ΰ›oH\l[y?Pfܐ9 7X  .⪞_ > SzxtuܸƓ'1=۶,0_b~d[8=-^Eۯ+\~ Wiw!/船whȵ MJeKɹm'q|/bvBc{f?tE&c6<|z4o~ޝx0+͝Hڛ8zCWi_}63RsglHm5s6hhW}rKxbnx0 p:iٲ@9gC||xhz8ѷ_ag1v\/(_fTtE`TUm[@ޘ 睼CaɾR(̢HBCFy*6K6#n:<$VJhA,:Faf1$@)Ģ,n"]c{DZy,ynyQ\ԕ*Kiqb2U(\w恀>.ud.K.6U?חURÄWޜh#[ v hi^"b]Pf}m4>T4Ҡ Uvg|_Eccy)Xԛ3}9H/jYѳ#f`,E=i}8t q:L&̆!ba0>Y^[󙽁$:(j4E!Xcgy+[4]4 [*# *b  '̥vT.fQY/5EnԬ*L!{F{}H.-r,5lϩ%dv!"Sh{lD(K%P\t C'hHQ RzJ+P!qq֟wbSJљzak#2Da&Ues*Uqq|L-iM\Zla#Mk]P @P^7BQNs6-.YHhl%T)Sѓnm)BI"3Lӏ>!NI8.(t-ާM,O4!"hMZrQ{Ar@  8y=Ԩԏ2鴺2D̙@j}CWQΥ\ѕ Js/ ň褲dhtaA#'<\6LQ4Vȕ!.aC,4(U*O4>O(I_*}@)M{&F"8'C#5}%6r< <Tc)Q7/g -3,%nitrW[7os^NyݽKӝ-V/H4ݏİ{|{׿:Fuא%|8|9 6wgDze%ZߢUq:>| ^u]/4R >\qq0y t]jO^ѣ/H?.rn^No!_lb6c:b| _$usV` Acz[͌o-qM" `džN_׮p7NW9I%b,۷#Zܨ2-, %%_V(20z\#x!FX$Gh~^<.EhjTRi!4B7oFY IDATt;MƺBY0-/IB}8)R [7J yF3 -JӺ#*UIR"Je֭.8y7$TnVȜy?(>3qܛdqF] Rmʺn0Kg Zܲy]fȪ+&E Z_Sy/>DYDmBμ0J;N%XNEl4a@Qh`ihw;}(}URY]J FR.*54mø54.2)amN>n =*rgA/6RÚ@Ml/!}"HOv{EQ'%hͥ9{[CԞ#j^|I H 妉_3){ 5GC3*DBVl:S` !w_^6KaWYBӡwPI˾v5/*BHV@Q7ԦBgΒtͲY!G c.P5#A !%|.$Ĝmeڰ&a/R/,FTMmeb۠W;-)'9!ڌF%r4pi6ְDW>bt 9J0j#InUj4ϰ{1ss@ 2dzuz9mPF<8 3-mƮ5,jSWq .u0A:+ Z{tؕZV\>Y {w6ntm`g؊W~ zf6E8G,sLJlT XVuylv'5r"q̱E`s:N/!MyS/1c?޼zew:cjm%ψ]S+T1ܼ&~?m,+AO0]y<{}ãslllrXtqv,\\&g(#4֚}O=a3<{klRgzqvmYpX,h8;;}KcVkuNB\WR/{odu >d $AŖdv[{z=i~̗=xB-[KdIIKUKf3.dB&b;P @Usa8"k= لzhh[i-m0(GА%Us&.틋6'ͺ{.L:utpKYlƒQ(WG 5!mY+t|&Z#0x_RrB&DHΣ/49h"k)iJĨ{UżWٚ]Dw|^Z(p0kU}k5ǫYSDWǥ2m*9M`IEG^3Fmc7hʪ{n%;z蟏Ei@(+3skZ,xuG=nMȬe/eQuqh M ح6d[V^ Lf;}t66}*;܋YZN51'̧ƍ!QsSA! ɡyF \@),{h×,5W@U4?WY0r5h,'~#r9-3P"-\4$8T.ϥ:<iE`20_;II0 E8`F'ZLaVZs{3(zo󯷶y[&YoЧ9 c#f5tH7 ̜\ٌ aߩk8Zb'ƕy6X\*ED)ՆTBW܊Ck@^C S3aބEʯl1ǫs,|*$<8nT 93V6NJ*%S.666*F}'f &p߈$EO GT~t1:F$\(ǦBr6 #5_i%`lT3Y^EUFr*YE6(5l\us'pߋ|VbAשHΝ U2/(SgeP7?PK.nr+QIx4oǐ ZBH-NJzKYf)._I3p!}$/!CDP'o7}th80c1;&ք(Պ1`^'b5kl {7j'8%V!Rj[xv`c::iĩ~`FrID{HXT8+٤KޞnXKKKF-$N F F-\^G8è]fic}> :;ƒ~F0K|}xW{K6[k}<{;PɫW#ÇqxwÓCF٩zL&#yaiy= f dy>+o"12jv^\[K[w}ho5CK`5T\|}|r]^_ >}13!}p>_!3/$@Bfw!c/?;kwѽc{>?Ť-,m?BlܘӷL- 0xOg6.o9u <{^oZDEl1Ѡk_,xp416"pm2ayE:eO^!E>%A{U6g>_Wb:\z=M9†ֵQo14h$YB Fޘ>(Zmt ZЊˌ,,R'7/ *`LFJ,V_#(Std).F/Tj $:W(=$JZ"eQ^ˉ455 HK'ӄ,Pc +'d[0ȬnP)S碉Oas4kDc]µ3JIP|a =6 qtzW `s&J*6N݈II \41 u'hlD6 AZz_3Vh~|O MO(B{xi!)9&6|-l0lz5oaSEj-L'd@ d2- Qnr+;Lm] e=! umbDt8zP]@ENBC wwƌOkj؁&yagTGC}F) $jdytOi:BL0en-p`w!}2Uں1{$+"^534M7YCb$٪p1c*N-aX &Ԭ1`Opu 4wX W0bi|qSMtvLՑ8m\w[9 ͒}\ ڽu~Nc͝ 1ـ7X7{S:ONO0O8pkNVW03f1}}&}{+|Ứ {( +;>Efgrӓ=ft?|27~}>.Na\gOŧҜS&s /Nw~vn^ah4Da>cCܸz'gKk8<:@^j9|J|)z+OgX[1 >=S/Z-m";=C3HЬ;!_$/ԪwHk \v 5wp|Yt[<#ԲCDpR+! MסN^ǫ/nHK$ד6nMZNs6x'{*޸4zٔiے6'nXL뱖 }ճ.7sߪ=Nb1ĭa4]Ie?ðw%?hF{xt[J Mu'WhEUVbC+׆uj:$hĕ:ZS7EFAm9]Oں`L#,RiQ$b!҉f>WQX=E}B@hTlidGUf9],ǩ?^C;_(*xS!ZеZw /b&>$a.E ;A4A%kJX% tDh)%)-*{+%^Fi{ա\X{icD)2():h+$+lmWo xvuzWq1m0r9\y!8|yWhlRT.Җy^&[#Fh H|f-|}f ܅Nejo9PN"γ0|!n 9ǡRКb[?k]m ҵ=wxMf!,ੰ঒4LATOބR3m$ܼ..b%dCʩY j1=ڿ6׮\a% _ϲdo|k5>zn?˗/zk2NONć;(֝z7}cԆVp0EJhc]a|HT&'#vkxz ь]{= HqnKw~.?{]/sz+tiׇ89~|/G3k~ :}]ζ]XQΣ?/xєiƄo.'b(Ipx1Gs [ >p1'K?8Ƃܐ9qt6xE-&ZQ]$?8OgyNFjW24dt^Y`p~Bȋ1D(d<c0t&S#/:yΩᲵ:ka=j9WxT26G6yS&yV sn!518II_ޟFӅ5Ҁ҈=Ch 4ai^w7i:pyl@a(2(֔ ]@9g:K*N3:vhKy&xvčӕj\P9?QMbaȞtWQ+ViDLo"1T]9Pp5zl&{$${zŨŵF`} @dR Iniqv0e-Re.bĉ_Zq%Ղ CҾD&Zqe&!S%NC3[Q-J%Z4K4U$iY|z^}-Seq 6gx| qxzl LGfڦLB\UACTdBCөW#n 2˦DD%'ҁXr:î^e u&Gr5 SB\C'Z6j-ʺl2WyWj_פDÜ&L=ҧB%>(O%# 4+S 4[RaA=US{7WЮaN_GO1lbҰ%w%"r5SYN pLBl VXj&ih>h G@Tkp>x mpֵf:&TO)Ы^MiIYg*#O&#D5<'7Y cYa7̈́"TNYWV^Z.RAO4sr&g:0}^È'w k2Y266WFz=k[7pb &1_05>F>|_scM^< ,m&?{Sf/w%-nlu&ɓǼO,sGx$>Ԡ3M'{ \˗rMhXt:=7:Wyj>a8=~g)#lO&T࿃N!6'e,Zq|dyXY^L0`院Z3lv.c}2>&?s|ܽuGr,fߒä-xY`b](n_aAno-Fӳ9y Ԋ .-ʜi9Zf`0u#;V4$!Z#S)J=ό`l~L 4$tҷNϹ)ear?$۾"l&74|m !s|3=عm?tx:@fcF~ǣ!&!)llx}1Hp \ 3<}nvi~Yx/c]4WvPn١2m#ֲҐ ̊:tMglLf KK)ˆ8Ԑ̳)&4̴xk oYyV+ſn5y0N^U$դ}#r2հ(i61b^ӈhS]hE{u,t]@T&ô@t%LO1nN UB3Uw ?0dXP:RAj dU'G/B6{)942d\6WEA&D!Z^m-t&e8'aT:h3F)p?L1&d\x=FDK6v[^?LbNoJ\ CT-&^נ Teݓ4۴Ҭ#4eQe5Dƈ]uStxhU{ P43`%P+gh_?5Az#z)xJ)xh1w"VWD5d+R&uR@SUjPjM$&W3pc0% .N*.1q&G& Z'ٳ J N̻BSdETJ3m"F :ًz0%( K Ƶx7,cR-HH'Jx_\LP!e]L9(Jt4 |iUS6D犖NgHZM1p|jt#HlIg ͱBAm5mdc$5a4#Ɯ C1y]frԸv^ۜ F!EMhy}2W7HvcZqi8)tfMJԌv0OM/mDzt:ٔqJrh.}%v% HB/*o5}DJG} =i SUj9%l~E6lBX 9d̯!CDie=S~0qtkt:jsDgx >Zy1gJ#R:YF&BC8q8iLtN4/t!FT]$M,r`&HCtzSlY'G&ߞ`0D2&ON]ԵA[Ffrq'n(f#m)Ze8#5Nl/ŕ;L X4g(nKFUc=t8iPKln^R>}lᱻ[Ww%g ]{d%M3˫1k\7 n޸Q/^=c|LԣoMqDNϙzۦQ~,s6Z cp1#<_[Cz.]AC->Wϳ1`~^66m^3%~[x78S~U΋8;?K,WX|_?᳾lE 7!vhu 4@7nn^WI>ï.&86.]9SIn8N f j-i]4x<h6FሊMZF#nQH|'ҴF#cLMx'_-kyؙsG&5^isSu;wkScf")CJx칐p򂍹jUubzoy'@W6_Ȝʡի+*+cb%II`iJ}A' NFuGdܢsP?^j'Hl(ε Q_Ot`!OVӸ2fDhm!U6\0bޛ`J:P!5P I#F4?PjJ(JXE6iej6e sF'>nTE0kNDUC-TM# 9 r5YQ56F^F b5&D`2IU;],!<$Bi$M24~@ QFAP//JWK\'\_5h8 PX€(OB Tp-1kiEu~nR䞢hĒ|XX&IM׺0h= CέQaUP2J7 6()8+id PkP:I2Ir;q -B)8tyibg4nPq: 3( +b&4zg)S$ƣh48[iFaH"P-&CFv9#n\DY3NWk`R͝",˰(#;鮬Zi) (:ׅܞ'(ikL^s09~E,EʅΕkYYaR:ڍ.׷Wq|3|w%ktk,S1LzB:?y۷Gg~#T F˛Y9Ύ_׮^xd1:?rK]􏎐$f@:0i?.7'GG΁°#*fCf#a}]/}h6Qi[ɟ B~+d`=uW{OO'ɣoQ,fXYZbSHaYk׺x\]`4BA+:?ŗ?S1\>vǣċ k_S4=low׏H[}(xASCFbb x ۩3Jx|ldzK.h%jZ.)ƋC"K_G7NYmbyys^3 . S{"ݫ6ls2GIAM5⽓$%bg\9T2<==(zZӆ>{dmyދ3́>,~t,"6Nja^.:#h*c3&SE1 sDB\=)8܄EI5&6eN1fIt l8=ADMc tɯ 9V_Ӱc#Gm\T k僛#Na^Qr5:DD1zdH3ƧRW+ 0@@BiКw2442`V$DfWVEI:\.]f<&҄tQZE69T%mmJ_6QbcTڹ3}ds٧3,s##ʰJHX D~֙^+Qa ߐfh YMg/RBPPY"ld:M2"M?G[l]5`ʜD1SNG2hUF@wQRMHm6 GVzlܵtn#7p$a^.ε^!J2SQ;F#lsM}ETבSlm5ZF#CbZAF$/eʦ"/ɛB&3hL}"kڴHG>F&v 9Dۚq-5O qФƂ ro,T8#SfFjBѥXJ|0YB|0[CT?tm#9!}W/Jd4j5LYVUfSIr;9UGc*|0 &PlIWZBžCANjuYY5č?!h;X'nq:d|ĕ7Ic4 <کA 5F1=7Vsőc-,Qurp5r#5x3>9:fQIFk;M4BU.Aa@Uc#OY-#U }" 9Cx"K݄'i/NpvvEfsԢORE"D}0MowOZ)Olt΍|u NbIB.Ѝf)_NwCn|"Vk`0 97pxzKs2< !C|BL'O5K:{ع͈YVbN߾[Fc4!<ܸ^{ ;n²Ґ` =6:w jp|-#vȝLsl_fL1k(Y~iuc0~.n VV5}<}%z2 ?o^Oy.\O}ձ]zp~xfrO^YvAţkcO9ܸ”i@ޡvL "Z4iҾy~FNˀtÄк>?LMts>aLsv$qVyd!F5L!*~J΋j&vNk=> ߠ(H*aoTj#Z(>uJUUjf(%78B^PV c*Hesm@h$ C$ΣnS!]ϕM rpSq hZu+ n&8Gʥ蒠Ie(-In;R$y+Z3ƤbQr0:Q_u w Y_qcA5T23.馁ˍQ(r})rCXx5et”Jf VYq!(1s t; d@19lܘK⃼6N4 J0$)E^+ ͩ"P녘H4(~[aWWa56gsez/ŖyuQl5j#N C 4F#l|H~18kw5⤘@y`7swfp[yc4?ѹÙr9. 2gCA!۬k"C>N]Ҥ9:3d?tW5Wpq§N¡A54WN¬ : XH83[g#OmR'T6ӁL>w`Y=u2sj4#?P ڃ6NŜ7Sshe#4>ewy & 4-щt' fK4Vr*]VPWZ')A?˺ve)詢KZ =_dl{Fto'YĬ&  ^(2 W0Dg! 'c0],($cSh+:u-i3X/z*4QRRy'1M%d1l!L%]Y)"ىm湑bc6'tyn*-Dü`#/Щ̈́ 2j߉6V>ѩֹXh25Dih1==fNV]1/QX*:+f88e4l־ϑ`餏z*gM]x˗ovg06c1/ =|AvklD P3tkٔ}j>945n`0c82ZADC"gsfw>ѵk~s\y4;d,n3k(l^ [#G$tݿL&}} x2eM!z]:glfA >wgS EݏyR#3z<ႜ(ow}kkk={pEDƆ|bM".¢a1[Op%,,c{{?K7;x;nbm} p#:ˉ!^\|{XV.-BBl \rF+Wy͑:NF1S}z2 !MINYqԉR-yte-xłČ.jQo16[?q6W& 0]cMM{'ޚiL{ETIXϞō{%ܔKO*(. L  2lā9kk@™Q$4 >) tODР(I"(f/ 5 E"<B_ YS 10 ׅs&ϡ`"hc)]Q3,I@F1eZګ+needTЖM<=M~zS"gDCͣ >f!:J]p%Nk%#2lnU6SA`D" m׫ykd@tECTd$ByB(FܰjkK{.3ɬE;C _w!L'W,)t,u+ ^ ǖ  IDAT'cEyO <~yGSWg)0b㸀v'UAtb ^dhmC1*ͺ=Zk[z' Y71_t'T3aܷO_w5-7pڻ;Bn0@Foeɴϝw~uG2GPsSպÎ/${ee#_~ñ4y ^bw^zQZSF{Vt^(`p`+-H]?/QK<^~څK1=7û/HKظz%xx+L^oat1}w_NjS;k~/0.qE.q;_]N0 cW:&[ +|_ׂ?D a$b.NB=TK[zNՕ_hԐ[uz 3jq3-ujIAŻRAz':ĺڱ_is}at]ث6JsO(bØۂR).rR*rDO|(p甁ĆWS$6^3 [mhs=|ZHe$eԍ.ԅ/!"M3pG8R-~'>6B1;|YS@A a8a4]&Et[T p]C} _h~mU +KeWG֡ b K2#y!<\gNAw::˺SJW]>!qzjWn9BNz5-dsv*] U95!)1ц]3q#YP^ĒԐT-\+.UW5T SZlUo +ͨRhaPZh+=m66o.!"  YVj eJ%mb-r@6mšؔzO9NYө6aK55J Dej`C~M6Hʺ`O:2OsE!T5obM1g#4ܸ:E&!ac5XnV(F)jȡ.lJy=~HZ~$U>_pу)}yBw:ss"?j FKK}Fw?} gR,./cܾqF<?ԈS'xe)#K]l}/1Os w޻|MYNK{&H\n;Ӈǟ +^lxC|a3G'@ƭwE02;"#:hʹ]j.)ԛ)#Tq3j$ڊҽ=4Bkmr, EU*s^/prrƆ霟5OhT2A{(4CP -KzUzIWNx@phG|ΌF),iWyh]G\SAhH[XZh+jm//ϴGbE+G:e(:2p.,J\g=F {YcDk\Rdr!oJaoft m&axhHE۽kքB7CWs>҂+/NaŎB77ԸO^Ŭ퐗B"gxYah  W(jf?tEt5Ml+h`֓PBW yPqs. ! j6\\FFr!u!csf1isWgGTpc&Z( AHkkuV(LסT!\gFlFypy]W>Fnard]3 ['S' ]$tu!/5 ͺa) Z]C&/ C-$ͶdDra_omMZt#5H 9[&B9CEF(4,YݒV4OQ:iqk:-osq,Rf6PQOlQ_cd`28bȄˢat|RғbS#>Mӹ+)rLSuc5އGI8uRp6A 5ʦG^ԩ*NKX1$i#ZArW)5N} MB/5lLq:Rac[)U~eP",3mh4ɼgIX4qSah$pQ+8F9h[_~t =!'Q'Z+ Wr" /:#ÓD4yHf.@.-|dɔ?~f\'d D69-`;y.: SIK} BJ!*hX'Ie&mdDFjĨB'" % ekP†bÍO롔xiRiDeKWrTE ᭓tH:.6%2uQ,Q"jQPaL" tb3C2wYF^w7ozΑ>GgXYd*K\޸Ĩt2cJIFw3nLU]K_cJS}\iwaZ2^9nGw ?üXčd7b?{8;#|OFߡE:%qӤ}Qt6fZ58tq'G1avVpt VcҔn?~?`<`23ٲfpi5' 6?8;=>:5Nl׿& ֏Sas2֍+Z[Fm[;3̧>[w<>1K|pl^JcmyɄ]/&7av%L'TrGs^GJ?U'^j W3\0HRL٥ARCLRb64ӟM؛[s-G%9VM~?tvZlI4zĆLR#&/7KUYH8i ͉mǘY=9S tϲ8PPNL_/n,ݗs8["OjioMkr1M3Rg# q>Qat"r1uEYk[^cChzwm9S`7@پ()!o> (W6)I3~MZ_=q.U"Pbv֎3 uCLhtE8h+õ6)h \H57R*$QcT_1GP+_!J9V1|n.DhwhAE4l%U* M>> 9VhP:א&")'t ܄ƞ Ⱦ#u/Fb,UL>䦒4ʴ06>JYRy_0+ci@e;eqѯow__wW?:(ȱD]"I2,5< y+E%[-n5x77nTlrLߛ"Hm36G#SEXFMh&3M7hnԸT$2EATxڒ^BhI!cPu_uK7BR y_i\}h4oUZ)"sq3cs' 1 : QJGaAl.PF.DL_b4DŽ*pWd!! 41#MPԵ6s֔b ;ޗCL1Rh32HCy05559ؘ'\tqemK6&1Qot͊ g. SFx0yI0:NzX;a=)Ю'b¡p'$=&L)sլѰ|@F.2ɦC6YuPC ,78L yHJNUgpc:* 802@`ALQ2; `Cgf^dZJ{(LמрPQbP}u6[5ll`o|.qާX^^o{|=ܾ}ֻ#ڵX_/KmSlxM OM '1͑ewY%ɆHc6ff9\ fp>~w&+&_mZFL8g<ΰu&y>{}z6h\wp~v^CG>}9Ύws}v:KbDE:#Зא΀9Ώx(@늴7oFpiWvn6lhX{2\*rӢݡnpH\buF&@21KtV}ݾt|.Ä1$Z+9qfbD4at&?|.2Di(`ݼh,2'+U4c]4Ϋ5{:~|^<冒4w N(PONuo3d*(ξy# $48x (&ļhMhtbčPBUeZL>ORɖ23FAΧ&?QW:5h1Bwڌ׻x *w#hrQ斛1ÇfV vǑ!zؕ-,$o 9RfAjT[Q7P nQAV[ES$)=1g HJ/MbtF5]̏~l^ 51%zɵL TA*ubk)?\j&P+H?(-Bޭ'8dȬ+ݞmC#bt(y9**OCrfvI|%pڝה,e !C0rNu`od?uD~N'>Drtit. Qg?_ooZ :V=ilĤ^ќ\]gZA/vs5fl>š̝z+;~*3@%z6q} :uQ!ݫ;W0RVyc2a<:ޝPFJy%yCMLJ 0:h)xB#P1:s4 diEװ}:n|I]WoMAtEnGh25FȅjiXBˈ(o Qpَ^("'s IY_@i(Sk90ZKS7V$,=p2;+#C6m. n{^ E"5M)fy!,r5.ѐh͛ <") i˨~hl*ͪ׳Ut^PƓbXR y%}R+Mp0{sI r7tySx*Rjx>&ɪ?т %sJQw%+MeR/|٪Y͛BS\M_}QbM'D6dy%H(!zRZIfL`Є"jmMl%,8:3 ) =6kg'ЩC-~W3dMoJIȋe]+5QOTo ޅ!okmmvTٓFјҺ3UTA\a`CXW`>~~y~I颓NNXDlY|^=q|0Ť:YP+Rv$i }pd;o/n^obQ,&ZZ4/N(+k$&e )MvrW4n34٧,֜)\u)lRTGɔc i IDATPEmeȢ5 WV/M(4h:;s#=,*'D.M}x]hON2ꆴbbQz5TlΙrhq)uHmR;|e3ҟ;uvNu¥/^I|BH$ 0׮˻暣ksn6EBj{*5콗0;3 2JDUOH#7C[+x4]i(/mV$MkbEzoKȵ&?"_`_%6[ WWKzi/۷Gx.ϩɕ-פd^&f?1VE[>8=؛aLդ+g9xtYcF\`jy@f(I Op5 !8ZH]h|羻a{ϟdc,ҵM6S7CN'擷G\5sa 8Ixog۸s蓟v8#[8Yw(o0;BC}( "O뒔TQRv8>՛gV: K6@.E#ްHsGM )wĜ6 +BYyyFFipB >.VN\+r xĒLXy;" O)x21 =C2՛~ P8!Gġ٣{8yC5x;$-m邆dVGDgWHVB[m荓Y<-6ʦWq}&Z v~15'HZK+Ń5 ANyԍMdTQDI*GTZz0@+ ao`qKX=GEMMTFT-ꦬ׌R :JB$1—#qf{ٍ؃GUν! zؽGʔ8^j^]u! O}QC`c9RGu{Q!W]9;I'[v6ܯ <`D68*bX[ytڹTܿL 5rzRsYe&dSd*ljBbY=J&:f SRW2hyv19Wեsr|vqxEizJFfHhz)ei B~($um\YA I-Њ@Q.(yĽz8~?z [E|j,ЩmPCG tf z0R`.*yM$Ass,R',JFyrQ{]yt@Pk`d%ۍ ӄQ9^:iR=4x0$X::G{S CX%սӜ̟ ;pjE_ĸUh^w␫`30z.ϙ5@Vs2uA/8=zkq I:=C]^`skp$Z¦iH٬i^D4\αC j0(+H()Q AFSDH+TXp\SٲO&DzHF/'^H0̈Իյ 'Z6p5>ã_OivQEq,Mg62^H+b<&N^wXy=OtxnٞGY~#,l,X̣ճb`-ѨSJ,]8?$,wlzE?Q1,'bE͒F&r>Z sIʔ[ƥʘBp`Wl*?Km50( -E%ѽ4^z^Dǁ?nl|7q%wbKD.Idg73VҒzғ*5ٛ!iTogKl̷9u_xWCk&j y2id'RJ7*2[i]aQ8{D$40'VXt(H͋m&"שNj? 9tMtaT5KMhfyAzL\GSD)k0Lb)J.iW-q]HXYRNWIyrA7:x.qjDCTɥ˳z#l<,T$K.agjzt>T&h04YF>؛;et\3|wXLt5 -&#:Ǜa\|&՜ʭԐ&Unb9FDyDoe*霉4q- l9cRr(V%2/KfN3}nSbg$oY }km%2`FokCG)"cSJeH4.29f±S9ֶ77XJSc kaMڭ=~6HJK1* ֩knH}iNRKof5N7cfMb߫k,) e1OQ3oh%h'JxRɟBٕ,qY݅`hn,ahuRL+[^( N3QRs&A4NTP?%Q=bթ)QMQXA$:*wlR%Tιg$H汘EC WRQFcdj# qB u~h<\2)7YcS,eXPg vagZSS~{[ n/Юlv5Yh_8ynWu.zO%Qd.SѡINk'onv.pzrN8˰Wh" 7oq{u բNZnD3 w}\]\[[;Ȳ)b !&[<:lDLf/ذb>!j}AaooL(uk]ķ_#~g䓷Ҏk={0Zt6c1oO1^DX:'pw})fea\BRDIEk-9-kQoQJ"T]õk1SमeҪI bĸ).T`AX) .1)r~jnJ㙕hRDCjs6Rtz\,ؔמgd_ATp@EDzc=>^Ǹhv6UNØ [("+,4AJ!A])ql()ծC\Qv"IIrTB:..|`)@8П#,A0h<x_JDf`vi\x݈FZ-.>b}M>|a@=R$ԭQ2cA-B ҴD#W0%;y??\=Qm\9tbq:nё6^Ok9$r&|koNZ$f4GSEw1jkaT#ER+!DդM~GD;[4 ohP˂IREBsAsYtAd3gٟ=D+t@7PALnFXg6z 1,uK44ROgfc PV"rexQmS/u&.Cڈ6QtNԬ0}߬7Ӻ!K+cYlv^%1-ztJ 1b0DSQyX{XM%Rgр};26Q'0vfגR)9! 4DeCWg0^ީ LcerYCn:$qUL.xm9Pf56([ } /tG]38CsF3+UH]{BW&gg'XFp4S^a2a2a(. I1hǧ?Oqp[{h4[DA]05xnW|ח/0 3]q۟`8ΑW0·{;ữŸxM]^`2+ Ώ~lvd<| ڭ.Olnq1tz͐MzvESL憬Wo1xm!2#sq b~$ &񃘐AY&cQ$aHa&YeF~W]4]~V= ͌r,>R,˂C<ڂr4%\{"Qmm4W7IWVfA-Nc=vla.î[75t*U7o%0ІM hnvz,r,xFJ&᪍t]bIK':F ,ƻVT[ե*>S[[-TkThb15/ST(`mW_#&]`w`OZ$I8}V~\^ktހ#㔃 EhRP ϒ5[/2շ^^iv#U{\rup=Fe-֎"KV^fߗQ! E=R8uh-fP tY忲/ts&z 5Sq|Mŋ)/@]r#1FٴʢȔÉe=*ƃ>WhPe#kH4⪚'@Ǘwgj)YĊ9=WJYR3)j9 6xixwGaڟ9mE@rH:w BqݿOۋ+ hwNHkE]"TܼTh9ːS)h|YI߾:)YчҥAYlYi([@RF[ ۽V3LQkt.ٜv9y?[>uB<>zݽmz;=5-XtRyf{()r 9Lp:ym 79͵6w'zB_EqwtmVM$kU\^仗Xdܻ>?42_,贚<Ÿ!I[8~sws>ⴅ-\]]Uۋ9R[O}%$$¹薯/LGGeZkP ׌yz;Ei`[{y|v6>9H%\>fT:Z\s͔yv%!*![l:{s1XI/t iVK{87t䳏"{)9 Kf, d`TtJd 3!~6gls5Sjmn`3dર ϊkup.ͱK"Rl jdCsoDXwfj7C|M9Z9>qIl.ń&vi3.Y8.6@jYC6M.4&x2ln N=Zs46ڪw*vAXQP1Fq=ޤ(R)ӘY"<]Q=W_G-RV T$43s9L"W/^Q@,ɐ\WO_辟'EDeдDS1Qa u5n~QD usb2|5ކBcqDz'~cp!z%#?0"P9xٴ U9N7LZۨdž>`L HTM иhc<*Ulh 7BsKcx`L%tWy xZZ5ב:HF#Aʉ^Gx+; /VcQyf3R o E5މ}uu@/YYhb1TaN-*H6nfFuű פzLN-FwŏSdv>[guSvfC%nH)l] Gs2cr"/:ݶIuHRe=.70јyN'` cV;Jk*h\,_VSTd }qJ) IDAThӸ+(#pbw T٥,rΝB ^'s-6VͶ:/\&ŜTu E 'bLL W[p0 Q]xn͍=|J6#be!JLs+,yz4JB,B,CS_-n,nͩplѠ &\7$""- ?Z I*Pa*D&/ -Ĭ4ڗffUTt47R97k15&KL˩6}LVpEo,b/IP=p1rG:*~y> d]YX鮠tSҠ5ֶ^deBԕFP8=}|ɑf1>&V]޳5CA]suhTK4s8phm#SiV{]o0 i, lbn2F-c-> ' /Bii.Klz]̋خ+ ^_tE|9O>:b`t0?>AxGG=;ڌ7nSg{ϱ߽|f{ R(Ş}%C"|JnR1/׃KqhtVi"V+E'+n2\娡)d(:u TP!$8͢Ml%+n7-3b!W9Ya,oPXNjms3mZ?mX\*[#O:$M gA,7X6u-QtV9+ۤlD߸hiRiLz m$opw.G]YNiԜp[$@ͯPplq0%-S9@KYRiDcE4b]5f2ǍU'Z 5d*m}W I9LZՕEhm_'g"ĈgMRB+tc(CQ94KJxC:郎D"N lVQΦ\",BF]O& rYdm(a)G(M0CrEOptgr7- L$2N\-S%f:ePZKFZl$UF> 7$ibQn۪֊&k 6Κ~G=MzrD=U%CҚch9^"S)z}ASx!;̍M3^)sSBL2eij5Vy?Z?m^C386iT b $<:B`ee!-Tk%<^ JH.yF&ɚtGȒ,+H%iDj ʩ%= B9(.ƶ`:Q !Mv8 m乚?]Avs8Qo$g*̗Roi*2"HHdF@Ҽ.ᔉ@ݢD5#HMViPO1s%ibZ,,LI+6Eυ*^zLAUSZY९.RaҤp'mhd|'C8!"G_g񄅋sF HDAd("43WSArhL O l"3B3-gZMTPJhniBM]NA XHCk5Hy13^kͱ&h7p:Klؕ'ԺEMÍEq@&Awo&\zSK܇ e97Ng&>&bShkHӏ c}"%Vw?Iw,`^Q'_'?)݀V{t㕦 b$Mw{1cǿn-zKi2P+Zo[:ֵmzL "RdZܜep!J}LVo`2`),~~3<8|=t^~':A*:|NGX\1c%P>3wߑzg6 pyQQ|38cb_a2blb$L=~ NZkT2k o>$N]Ce/ad{K}'|i, WHSn/ XSt2,4 9u>I.|+}PpZ[\]|Zܶ\1oY6EZ` uZ R-тLGmB8Yn~AjFͻ[] R O4s"1y :s@giY&7tIOe\޴ƣ-1 ͜A!+};-Չ #R/"j sSc|Č5;둑kh\!|EN4\j*j/=8BrQǥ?rVoDے Tk#C׍V**_fQ6.xXzot5g@Rf Z-4t{mYC3(0+EC9njayw6mb&Ȱ[hA#QYEDc'OOniZri(H̋4OG=5czB6s0I,"sQO(th#Ԝ|Q6݂jS)tP-egEnkثkjR}g|60ɗ僒D#ٌ5ĵ1zC?6ѿ4W/˳VEB(zܒ.6 0$J$e@|:gϜP%yMxJVI%["0;`:E|]v2bQМN^Ihꘜ,Jiz(%G?޿O5Q;h;?,éhĽ7iТmM>rrEf?r$8D|@ma5Օ0Krbm@m5D3% p<5ƦaJ~^7ä&N5dݭ>n6"҄$l,'/_{\'Ib"i&Z$Hq[Xyb{yz:6 "ȱ,2XvdJyn*AڂFr#u.͑XOi2e/ ~Cǩ aLl)jQ4xt@uæҊ<)ouޑ15!=pR†()ߏא`ij^Ǧ/u_lNA"|e@n0*1OS)A =S]FJtM5Y3eWݡdʵ1jhJ"Vr{`x7G/+(h8d<9ݝ=҃}!{[S!njA¦X[}`{`G&Dwp^DZʌK\,D/)H Z$:u.6ʨ mhup׿CycG6wbWBU\_3}|/npzvag1v=G\V_>rm2 [ǟCj}|c}ctԣ9] lhE&_,WFmӑrJ@f,2b|"<3"_6 "GHA/ uRYilT'B Ne[֩ qBXC1+dݏ-S2?1h?U8bַmܜ?goēBW56u0&ElFnq@"r.+dP ga+ܹmH)R(2 g.J,.[\mI1 "_Ч `xdF]Qog 8<)2cNDZ2},OS(܂#@3o D5Mͥd.MQ6PHc`5#4b]`]beyW4NX3sꖽ{Ҝj>4CO[䶄=@\CM7 |jů6=ԨBp"EvX/&^rsDAn妠ZHq/oN׿kf7-sjd32JKm(]j^dX ud&S#a6)i]LWqFM'Bm6XA;6X 'F!H;-%aWwY|!'R.IuһCt Y!6Ol1[ gw(ʹm>Z RnIqΩm*Ԩ@̼IMWaqJMLcJE (0( ĕFA|65&b"6gIqW\{02VW+"̽&>zL6w5ƣ+6PfJ],ihZirѫ_5h`ee חW^s^oR 5Vv%`>ɉБYcsl> R-XGǼ{}rd(PWѽ5g&<7N~ FX_78:=Rb7|/Sc>(sLg?y_ |ɧ8;>kVpqQ7̆el9VVzhWHIoVi%!A~oD^ txћwdT5Eؤ0PߙoNzۻ;ƶvW2st+e(ғ7L4V 1}D~ؤic%CP;OyA04Xy_9dt54MCt:_-\]߲LL۞]XDU `!(ĕ#mɵxGk;FD.2rvcWߢ2h5yRMU`߼Vax'dafH*c#~=ֵى5GW:־i(揕q8@K'k .D|sDʍq) !}]q,-7SWN42?MJgwf%2f}lL枆Eq\վ2XRlaٳ k;'1\> ޙرGdH_X^ZpnRt鎪Z15xYk\5eLv7LZnuuK׿&#V\"Đ 74@ ܌|<~h(\bKJhޱz;5L HϡM掠Swc[fAD?[y[{h 0Aߜ gJs:OY9R ɿͬq%7(Cc@GVxJ[-_*<1 vWSu!t-Nq)X(frXdF4I^z0v+}U#gR:,D^3Wkuf3Ҽ<8=yӷav-j, :TצQjmޣD{/6έ85H| =nDrp 0E IDAT)jX("E8⌦;mu|(^0`|cw*ِ߰C|V_oKD]c|)Лk;-{8;;<Ǔ' | BtvЏI.1&+pE,A50x[L'C6~KAm9&[q f^e>ݻO9H p{}Ml>E&1A#^} e9tp&dӾ &׀]>Xm~l1&ye[zow<;{xs|TY%K: 5>^#z̀m7+7 }l*.Nbko~ϸxC3PxGpLCa霃Ѥ($aQTnb<zx"Tl MMς$:Gt&5b9<-f\id&]JAIVVˀTܨ.Q]:ur?+w{h|VMpċ.s%%r\疣жD |SceM'Eƶ(e?GƐIolQgQp-괌%#%xdmȯI &ĉ5^$MTmY֘VxT AfZN'3Szt58h#* oE1&jK\ wA3Ľj#cUM~EJ읪)u8Fd!չtNB@܌j@"qd+K莫-l6AvTS*k@2!Myt+*Y&DLͬ -fht(J 6H77C<#8}ZcLF Xc6iT Q7${)K)l FtFl6Jpe< pJ4ur(}^zǏ0Z4iz D[ZH#/fan}[(pWÅH#dIURECSx%CR "PܘP#=_նcE}$n8lFpAv2qJ!gA'T=KͦIݕ$DJ#WkMe2,b΋ !jtagd I-lP1U>-U{Áh uSuz뗠Fkwp>b';6l P^{B55Ԓ&5٬:j^q[jޤ Q&^`-pqu1vJCvw'W"n$]4/^W_}I}Ĵ]\v;h74;Xdt4I36I!su.Ul1z+Ȩ nr^q:L6|t5X3|6qyvٸ˷ts)Ǩdxbw2H֦zⴁ?1g-=9=/PK%ȬWY㮮nN[ f-)s3Lj-tW{6hJ)v( !xB‘A Ø'OGCq9{no?SbZ~3d]h*y)X0sϵȒݿ]ԑ]>/C[HJ[6Â-O{LЀWIQS~#Ŋp{3:n9L靏}?,T9Lo^EސF g3Dί1鑛ϟ5l@P?p`ѻIZ_įh(P[2{wEɦ6 C,Tn*IzGfbxʨ'鯛>21sTˆe1K|.-H>"E $4X^x<7.XoV~t]5vsq׿)zT`cU_4(wm,ng q!~(6ξ2VMg߯m! }%\j[R MZA:jd;z &y.PGvz6 jM܌,XK[P,PJt& p2?;B,dz$Yz&V(ͭƚY-bql?Qw89ycywr Wl.%~[Z3d-ָ╲IJLK6R%ۂы\ -zHQ,5Bfcsμץ=]d)',IErix؊! >YK1\g>ewVhD !!kڨsI/v!KR*-&3ǑFs1,jp*1$+g;ɾ,4'`:Jq# z)+ř*2ᏔAݗСLWׅj^:'X2KuEpųxԨPQbEQ`Q.b>'RO3vYο6wXNL?PeJA'vPX&p&ђqBlfsop[mJ3(#NZͥO82I[`:_%<1k3dX \ mB&;tGKF_7nk& R8M57Ő#YFhȸ|uwj`OSs;W>, 4rPG;Z!ORW0'S)Z*-m]lqx0y_ ~L$1dmښPǷ[a\O''oʐx!ס (Zz[ƒ캪ǨGV].QzF/FCs_+BkDRDr:T'^k_-& Oj\92珗|%-9L<_moYyQXf[^5ASV&8\QsW| "W0fss?%.K=$rM 4 *y k/2萒h"&t53ѭ:/%jnGx?7/6o@'-K EȚ q Ψ0.6*-I+pk4]Cd^d0;ke<ק Kb,5pR|bAYհFu+ Әf8XHRtV7l4ItTic{Rݐδ4zs:s0nir4>RoYX8=uJs+ͫOoM+ 2nyn7R5h $%pc^fvx{ز;~W6%ZX̃/ͯ7! TpWuɊ{iG0R=0O5a1(^Ȣ:,cLjB>xZԌ+?;GPυ{c~򕜾zt?2n^(IӫBS"FA)r_9MÆS ՘M6,OF1[؅52Tipm>Ұbu"$xBŤ$Ѫm`6aoOD j* b`<rI;;zF[ݰ{pnT{f?yF }g{=$Z&{xIx |kacc>O J,&RI\flZ/Ѱ٩"nb7`:#.,g,S<~C3wH `(c817UbT/&aDd-Ij 'bckY7宆͝C>xlDM4[]&sϰy:A0^O?'wPqpxmf6|:FCV{{ď'3_\"sln#My4!Cf9OK<}>no/1_]]Q_[ounGQ.9דlAd]28oM\3rabY9cg8!?Έ$Ail!E@0V@a=%&h2`4Ϟ?GCn(X[Yh<!.J6D6c$TB[5:CM炳G°[VkZZ֤EkQ$gPT^gs0Ѣ /=-enu}_pĽY1IǑ9zjmu( }l`Av5Ry>+ha GP}^hQE͆ӨL3 jLߥ/??}7ǫ.h= Uc;ݼlHqz$$ٮvLMdBGaIQO523Nl`P1bt$JT7J %X @F&ɊY~d ۉVz}m185V uE`fO>+ͤ!NLփ( qi|>jEZS" )ZW~$mM 4D:1q2u. j'EZ 4U5jM |#Sq,;Mӈ Ѯ&2Iav`%ي y&EӓHI"nq!p@5ƿkj;j btsMINCt(K7}-L?*Z'7ZyDu8Lc31Xi)\ ]YfMXj4H4]!ytml5Uz:l*)B5-< w--ua;/ @̸MΡ&']DFidB$k:1wJ,g3lck}Ã]#u2gദ&yYq3ZtT.G]L?RvK'S7{;zn1>NXiԵnN3ї/t]7hCzS'ۢ0ʕEstͷMH(PKx8!"KaL:G嶙Dkpys*`t_ d\!| !g}kA*k 5G$1F];;{8:zC4v2mlɓ/iXYx kދ:εA ]3mtZm~f=MWxKmlJ/Şbc_՛78~{V؛oѼjۢC[bk1})ǯZz٢VJaf41xq}jV]|[,c\^b&wpvqr3B͕qaDյ\Χ7xG3'sݣ\C.0#mXdOi7Z얪M^VR]fx,-O">ښ7.!ש]~qHg.|5 J&…jn_WT R|nI&,Xn\ɠwJyG kR9ȃ1bs ֛^oAJ{LsIt{&I:u=z $H'ϵvlA`1geUȬ2tX;50V߻ }J?;;SVlD+ i3ZdD3y6> Xx hKc>/)#ԑ7h˹Sq閻 `e}fLg8GɴzFprmV3&&QRS*t3F=: +88U7S `4~66͐h7RMR"Z-*4fɣYLf[wwޓ|>@OuԾEVp(c7lc65H]|8fR>ٹ'Tq8lHo; rbC,F=&}l2Dl23+Mpn%DGp*30eWHjP&Xh`_CAR:̜ҨLq}{ D34n,f+KOop38Vkvqqu#s"BgGB76MJ|@\xMظmnl.V[* IDAT#b_f:C^vH[,u_sh&ʺgLe6X7. +.>?L<i'ヌ-#K g_腚(C,m+5kk'b "zvD8[{X_[E%~ɯf+fNg0}nj1>vqv|FLu=6pr|`U#gBLnϟH2Ϧ3績SF|j KllR HVפn4,?|hd/ڞ:-sA["{QH/b:5ṙQ 32xEvȜ2}E&כ]Eͦ\Ɖ)D/yXw岄 @j#۠*C3n{A\W\v-2s"P"}LR2ZZa"HF>XRQiɈ~oh)]*3 Սʅ3 bQ/ꊫ vT `A*=NOZ.ihScF#Ԏu[U)`8Qoug0*{ 9"鹈 fBikWʻ2Cs^9@óJZ)ЎC&1tCo;N& N6# ِjV߃z=E0Y2Ğ kg44qEshƤD#ʜklfcK"ad$$C܆tY{o&|95s(mh EL1TSi&^s½Mť%.9zKKb{suKKt LJUa|=UZonH{†@`./&;208ev*HZDhv+A&h[:z1^ybOpn2c!fkMzy>*2CM^i"8 fZNw TC(y#,ͅREfc32|~kkY(N_dgu-f.wk Os.%&i!)b40kNu9I)'"AynTHv0+SC7۰f3WLNPI{0w3pX ],MtthE!:،:mQqzY;w1"r峳'8=;.n(Ziե,/hhyW"Z#ܹs'Z?l<6Q'ׯf!B|g:./o#Uvf S r!\=~s¿9mISBc9 3&'h')ξ要5eI#<}9Nϱ"&Sm'1qc~#Xf)8=|wezKX_l)у{6Χ˿s o0 1_1NLJ>ݮ"mbyiS+)5 ,֎u5?;YSnZnᷴFȭQos0]kZCE Q6 ^kf"բj9pJFnN-wРP4S|^Ǟ> 2` @zhš+JjLz59j3*#K'ԍUmL6I.&vU|[fpJEO]JhaNB,j6V|YY8kib]I\#?.]/Oegn0bi0Fh/5!E^R(t>[OTf2jŅƶ4FifzW| 5lwLN% *lFܲg(+1׸R<77#ƾt19Vz7opI?L,*qV\kirdUt6 ""t4!f7emh4U,8 /h%x49@wclllr]8@H!)%D|ZD:;V#XlocN#R3AG7Ա4w xsg9i)r4u  Ltj'1ڵhw n41t.GGl KI{tu=:D ,Z*&?Ҍ&]bSMDǣ)nMeq%8wZ)NZTt%}NoL74LhPkK:0ydtă>{*^hؓO'(kwL=>>vϞt8gT׵ 'qAy56r֙?z+ԋݽ}ћyh.$p6.ξxvᖎb:O=^ұ2w:%֖8Υތej5!H1.NS/1f^cLd`Q?hDs$'_"* ϱFwW|gV~z6{R_f3D|ٔ룇.>y)66v?_NRlD $GRqzJQF9X*c'm%4g:aZPFYݼsIӝ1Z' aX'ͳY;ϖz_#6Ÿe(rvt^)6豀'v:EPḠ%0[SoLo&ߚ'XWhU]nJgQ4%& <5r,ђ?oCX6olڗ}{q. t\犕iv2FȔZ!Dl㚖)7zhUӺU@=6RtN 5LEiFWzdxxy*EE#X'lpg3Pklljz;`myEq lA>G1UI^kf)bK%\_]8-RWz%=u<8ŤۡS6Ѣ||IgAz/PrHF b&\N_J|_u v _~lB׽@#-,u[ =]jL#ܢ%M! _z-|O>ƔS(~{(wݝu-TF6o} /^(ϟ?ǃ51_}/iccoW/ůlE1~tWtӣ/PVY W嘖G+ŰPJsbxQv'-iNO&H=w:{ln:xxehF e9D#Veh;#J[lS\DX\~ l3bn0U2&s0I,4GN1q6ibM ҘDqc&.dBQɮ̄2dpjl>P:j}MPG< ³KE.Nfh w /f+݈2qkh& پȄ{o22"^5UWgTɑ*J?lljɐTe3鬑=㏬tYHXfQ浹y.&&F*0$QXGTV{)>bkJT\_yE,ph2B AFQk"F YusWR5Nu 1܍K1ݨe=^xpZ5}(cgx`M6ٵT G ,jʥn2-n$,ۉz݅0bIq3yQT͞=KK}:XW>9G3M;5e^[U. Uoo7wtɭ7w`:Pp=*# oZdP۔f 9b-ɻD9JtTl֔l*m_Є¨VN/]v=F,ҋi3M=Q3D[yH(QGf+d@J9a*"*>5Ly0]62lcFj6z2ɞ"/ ܑt6t$X(](5-+mB^;WRHK Dj#tfδFӦizxbŻiN3e3]04sXY^Ggs܌{j⨋n,s| 5=7L.>8Kŧ5sjk6'%J-M&)c!uv}mj`O*9Q7 ^Z2Dkili‚48ҬvSz<&MjYtm-l*=p8(kEeHy$[hC<~Ϟ}*M| U!?;<[jP̰Kp;m NHNNMq{s ݶrS2u+4iw{W_=RiwD/uټ:?G{ V/>2|ϯ l[`tv;U+_7R7RXyi1: NՕMVj94o^GQhxvP')2;C2Jyyy{w{_r} wD|[8Y@3XAq "NΑF:ó/'\ߌ6_ۺB{?sGx"CEE% H:Ͷ&X[I=,VlҧX[ý=|9fn4Z!63s9O=H{+V}c^Z>3jD%MҤ1!qeν`!0GGdo(4?J4Y?K9( #l\NNτp~ހ6x"1jX,Oj\*ߦRSeΆyqB![MDs t3CHk,<;7s*fhJ)-OŢ9КJ`j Ĺ_TDY(a,Hb/s!_֠TxE(āZ\Hj4 ӊk[kQEYqݙELR- ]4k>q]Ej"qY]F ~Ӏˢn`\wdl= =zԵ(>Z[42^{H][=*QYWà]d=BFyUwJ0 וPPn~q}eH9|=E7ehT9Dg$MԺ\TcW$QaFђd ,ϑ+&pe yIE_/UV(;ݨݹ^>7=T0pwx? ^1pp83Q!h6h5d >5~ ;0/7pJӔBXhXZõD]_&{-.ty}bZQ^ ӬD ^63GfWjS3DM.?LMh%YU\f-F(bMTN]aZ,@v̾Mtg^חB\g㱕>|Yc*m Fuoh42n 9޽kq^(kΝS|;2KOO,NOOrmw2Y*)!.Slo~x}%dPD̈́SO]\]O?W\^{n8<a2IY<] L1F[ ʚv>gvӚ ;6g5p@Q[ <<WFG?tj0G1%Mxs5D XK'R71h zayu yViq`^EYl.Mݘn6WVpm*uV'P΄r)wfTYh(c҆`BO{?utϦcd6s55-PM=e>>](McÃGZv||ׯuy/^bye,//c{g7CE v1n_!htpnt|gy)&tNؿ>Z-q,寱wyÒ c<\5!7w6VV6l6S5ysEjmfTLPLn-ۣWhwr}m×WX&+,[9C/{88x-G X>GvOobymC<Ż_Rz\)h8濚.tN-oy@O-F#RhsҞMڝ: 7>:xJ޼Kp3t7#oŖ#U֘ULj.sC 3,տ[(hv*+2cQx0BEѨ)}eERkm끅 3[KCh7wu~}issȢz}!~f@xTLF,hƖ0iR}䈨;8۴>L }FYGE)Y?ԴNeL 3j2KqtbȌljeԑ1}43vv|OD,fHrZTn 2\iIXfk+*S_jr4c#P݇`q I-J"Qs@cfqOl2t L,Knae"]NY%FI1ECEk3 ecH5/P1&oaX9 66Uɳ M:56c W>Y4B5_Tݱ#rLѦhڒhэ-5.,PV,K s???ctμ /$.Dq2\oD%j19aYl"3j1s1B8$iu|AšE[$bF*ξy zWWLGFRoy}ܽ6k{z$ԕk47&~2㙎1}}xk,NCvcȓ1޽*WW_[Þ1< ^~up7 n.#˛}ord.K|ogd6Ai /p{uC=/W'L.6KG?N8:<ɩ>v*BwT7Pe,M̜Z>Dw;X!Z,g䭯/}P$Fԡ?)o(|hWE6LE;jXLLF0V`*;5ss 6??d5B6!Z[؄0 m:rCbUYDģoсV9'(7(~35 03z}~FhT~Q}N%4D@[nj-I}s w¥lQ+hwzxVV4FiIJ4zhؿ...CsC3ˉi 48X6n^i+nl|:Bmső),8c& eok Ty?ՠ6+8s'kh\on,\_POHsRf D ,<)'nR`# 8;ɡ1V0j:c`hٙ?sK>xaPB Di\5^&<;Ш82,k$NIsm`W "f 8P4[pzu&+$BjHOP#` 6İ8GD|%7PTƠu#KjY,*ZsTM,fuTm\52X7݁kPFMu&KfK9 \ƎNm5x!:;GPY I̟*fO~[Ӣ*e7թӮL޸Ȼ6CZ&:TQDr xMhx!&ݼҢ1]vQW֯k*Y'c.qg# W{INaKVC `%Mf6 QiCRp~n GlJ[A.B]P]5ZP3j(=R쇠a.2%)Fki8$G#S L"2>ѝ sVWp;cF'F:UE<PP9./Jmab 겈fmCKvp=pHJ{tVm/ 9%SVi+/ѬQ Gj \c21?2 atWaF[v4،TԖ70d7sTaLaG@k$x贻$&Ms*}=GL3l혹O^j8TF枿onעLF 7M|ttU9>Q͋/FkH}!~Ϟ?:́x&oV >z-p᭘*\l iSϿ9:f 3lloK\#4a6:C3(#Ͷ?Vx{$#vB.05޹{˫fs. q~~, \{o#+7}*ɀҤ'f1..5E1(FRQ.ccu6;G3r*DW!;K~!z>^|'o_O5<`#J$u͵#3 x./.5Z]]K8_+RCQ)4KX<dZz<~M|NO.yJhxj4՞aGP%I+ճ(}\B%ay* Ml;i0 B圆7q0wr]]pKeE'Fɋ= vd+ nQ8*[g5(E1hX ujC#z[#kF#7)CZyL}7I0W]40hAWwfZY5qU{or>Du>jT͹:7[\VD{,n~<#wUQE}_oUxƵaa7{k4v Nmp`V4j}pk;T5+.m (AxWz3|˽ͪK-SGhi*֘lPǝl:JL̇e57ob83 (y-;{O?懚Ǖ嵚Lep\7|J$ vR"Iih>x@\ʕc-m‡٤6rR=ֆS*xolCRNEYʿn_wᅵ/ W-dD 15{BgS,ma6c>o?|?1Lp>aycS<P&0q;ӔgYa{U9wCN6iD&F דOf57ֹ9$(:XX0t-aCFjL9MZFq&f§±_QRc2͢jF{zOqW7Z@+xؐkѯ 7i>,x7sd2dy דҺzC Ac"1~uߕjp!mBZV^v݄զQs$ S3fdNC\LJwLҤ?nYFVV!bPv4M Tb^izM@e^Ժ&A"@8\DДYr T^l&#՗<&q0ވ5%< Ӑ\{w1N0dҫP# /)׷縺:)%"m \ U&};yFrzw0ΰk]'#5xR!fj0꩐GayyI HEDOPFZ[};w fSQ5/XݕhٔYC"|dse|ཏ԰%\_ ^1a:JGlU)?|KxՕ w}Wptz./~ ;kxs|_bme tgO?C>ג{ ʨ(ޣlboRL1a: Q_][վ91Cd˛2ܻ8?~|:ꊜGWZuGBSs5*\TQ"h.?7Luqqqm alh2CT36 6Z#3:"w:Cjg_bCG44RȝEC炙5,ʃ: IDAT8 +6/ݏ!,JhU.KǛ8&XJN/ υ؋6\ +Л &$6Cw"IBih\-(pk2(tNV\sʚ㪡C:ޟ(kT[׆],6|acibTt2(BvQ9rSUˡ^T|7u%UHko/l]Gn*e^xs<7}Br5ji.u]]S,C1BmevrU5xO}6jеԆU(^@؛4 >T؝ӛ׀^-,/Ҕ,8CjoАRY&k)rcFЦa-͆e SanT]*~a@FXޜƮ&p):Ұoܼ~s݆Ш&{ {oniY 9 cFlRI"h).d*CS9n[ S.j_"kx$LFJHDiUTNhNҀą#,bͪHw2CԎ.Թ2nR(/_FS.ݍwjϟߊ̝ÂAT)yt ڛ1& yiYKl.V)QAԁO'd]?(c\{cBHu hӾʉ4”4?RKrCD.nr*U9H/ LfʒNn;ᯭJ&&Nc"͕) ZA$#Q焑3@ˣzͼeFK)I #Q4cm+Yl' FccEzP$ь49#e.Q8Pt"/|]y8{@ŹM@)oSޞCܹs/_?T#|'CD L'g)6eOͿy;wunAQX%壓3}-Y:bH쨙~[wf!s]f26,<~!Gۻ8}CL/_T\=9[âRv[8?=٫O466z.M//xꕆ'3+;o6>c\>G|=lol\L^O/Hp7_"sYf0 ݣT[8>>O>kG#Zi[Dtz>dpTNN1鵱E;i,lnPIíCHnʷ"9_[_5jQ޽'Wrg%޿W/_0[b{n4qYmQ[[ۺoGskyG?~*i> dq54x(J md< Ut-~*AR4TL\`z[6UExX'D-1q!aJm:1t͟5lTKE*s*3s) r/7Zr BS@? q\V7њ{y-=6r'eUA YqE|P75!?5 Xh0* 6({R(7&8 K3h5A GXsW e[xkp:(ڕ8ܕOqAB W1=|(x\P!8N3`t6U-rmܥե]CK$eZIYQŐP, HtXSVٚPeCXuF/I2vJdэ>wn>\ja .f@X쓾\ hX5KB32bb9#k6 $q.LY81Nj" eT:]X9J9^kV.T# Mśt@/,ejed-"l@e I/2YLi UrIAI{bE(&¾4 rE5;N`#7,S(` #"@54ԝܳ"w Ep6ͤ4RE7S5[_nYCZ3"El,$av#bcH ܿ&Ga&Izо#Boa:6v 1. A4_BtPc[v0][^joIj̓&NVH1)Q0BEw4_QQYV*Hj:`5@a8o2:K& T(lnx@ڢ2!)9=vu,ټkA yo^|YEq[ۦi,asl1nnh|Ί]cdp%ޛøGѰۘNsy}ugX/r< eݶ72?&<6T$"&1nGt]U|R{҂rͬi0w-~C\(i0[9-R.L>r;I5xӟ#ߢovXӑEP,qsuVo=F^x_s\^at{ϟ9+,Nɓ'x~ FA7qؿ=s݃~o ~=llnx(évxm<|}QS녚5] V}]Hbwv0"Z!X[˯'3Ce7Uzn0hnfEH h͆+mǤcgs5,9P8sRҭ;Mo8:(RUZ+Dkjgg"d Hj4:v|zrk|{ןJg [͟R, @5zf(ʜ"]}y^:* x5%D0 Q/,2yT.؛صkq}Pw06elei}块NV9%[ ÂP6p /Pն}_,qxx{w榺oSc!.5_5ZYE[^8P-^/lUk"7-#սPpxks?CY!c8 Nh4 [5EF3 r؉*)Qi R>zzs $,A)YtY}[f ~zYp0),d@ǽp[s n>ؑiQjpgKfuYy|\$s͋xٺes4&"tip{Cԋize=٬ҫ YHX\3Ͼ@ZXw4+8צ>ܤ.4>ЦMH;{ :(GX]7l^^Zr$Q B*Pw80;yV]\3k^IkN+MٱS$1*Ȓ'VIYpKG6A-u,5Q֌i/lZ, %bohYMgOɍ"ݿϞ9m6:s02/X97Ct@% 7(EdPE K}sRH-J>fY,d38F 3ˣ#GλQZ`H#.+-LJZN/3rki֊LTs gMז G૯B0f VaqKcFe,fY2 YTGw]=?wLN䖞4(rNu$hi~~_Zt22(c>cme ޫ+nBx <|tq\ ɟ1.y "̅^}z GGF; sQZ׷:4rlݽK8x%M8:xtzʄ}+E,rfqy~q>wy2/oP$Yxqu)t{7@4n1@<1K'41X,*ڭ5L#^]Fo /_=޽Kimfoѷzh.4%tKjM_F>x NObܹ#?>k!\]\fʓ408?>ϰf)z!Zr R&s-61fמ%]Ȑzv"VdjɢƋ6[kO"z&Ƒgr870E!6=)\hA|Ll,VMݹy["ƋNȢ #:wtdTi2B^fA}9? *+_A9M8 e}tI1R YE*x7 F}3Y ڀD+,> B#|=#(M/hg^; k@d6k[ O{sJXj@Q<뚨Or4+cK]54ccƺή>]2+lmGT}o;hy '߲ OQ]7j8P4 Fy.GAg:Z]Tl&txCˊ U,]HE LyIQ:ˊjzbv: Z]@Cj0\*"rNQѥmM>X]wfͯS|$n3f 2CzʹpiW8xe/* 0^|mqbjp!3msPx0>IqjWF!kE^ff\r쨚fa' *}͆4; '*rg5 ^ "BXqYMo E +\i.ʠ7(jjpp-;k-(Y0z-!Bl{&D6٨Y4{#],q+tncm c;lF#ds28C39)sMSBtIgd1Nu1,Xف^(]*FX]86 ~ʊ Z;4JC%&)rdٙD6  rEؑʬGTb7PgnmFXd,t#XuUiPJӠ0<& qkm6:*xR/NJڍ'р4x(G.yMwcd5Z]G\ܠeB7rS̬I03걋\x4JU/lt`76d2UqF1؄$O7},UvnvCR!`Ya;ipp5hnL -ooUݗ ꁢ RrwCiS+p`AfXDZحTC#jGc3e>|vo\^]J']aV~NCY0ė_~ fwa8=ܽ_Of>?1Ɠ[`k{=ėO_-|ck->o1:)4i?u@RHH'zwM]ZsKVbDU>R'2iJ痾w̍id.~㟠Ȩ'VQƕ 0hW/^|~G9g/fյM[//`D?YKC 1.?H7DqG7xsd-jN(^ޠvp}s&pl$]9([Q̧ lY >Vse!vIKvjjߌ`FvcH)kNY[]Ê~wI7as)&Eak!k6e~pP5"‚$LM8Mw19j?+fjj#Lt Y2Q[~% ҳP ݮ*,}by9ܩԦ)֙)6}pZ!!*? *㈤θ_کQ#˾+1LҺN_\5=eYQTv6 h[HfRŨM skk?$9f C+ie"dVhz}-+#i_޳YJ|20 t$g#鳾ܐؕI1M-\oJfA L쮦+2 J55԰L7wfTܩF ZV[?НLJJx-\c8a乘>+ݡxN塯°)HFj*n:qGsi9At.,jBaHc&,7̴bf;SY4I6;ltF)'i,jK l%gLE#7rh&v ^.xwn5OL h5t={\(0h?`2V/'F#m++Gkpw+ 7~xbxaa΢~__~[\zUTI1QrѬIj5LlNid}ᅙWƨ`qVĒe-I4ޛj]Uie-9p xh}%:&w5މh6;xo1k3JɅ7=}h/~z#sZt+8x!Vx+Z>7 6n~4;(: |ɨȼٜZ5Z ,uP#ܸ~ GG.]?uⅣն FǕS%u%.YV"n,<~Ψ?%Ɗ'XepX&C=c X5){0<ȱdGZ?o~^´ n%5,r b2HM2R5gf)UXa1+%~hhsT[ Hg5>Or bM i! #}^ic3\RC@r\NKi~joߦ(N$ZER9Wl/W _ɴy^(BS}@] c͸J rD7PP^,(̛̅Y X@F֢SD֪?owr0Mt&/Jp18:]jeq"ʴ#S;l;|1QBbÛsLlbǹ蹌0#'Dxi JDTKJe5b"ӉYG tɅ gN r>RN:!e!$maF/텅OB dѪ[qȢsma ؝ݝne22_j=f9 2:,0IGwhBMkbOYuwRMjf.5K읟1ih1o"GX>)Sձ[oF9D C-zj&f4JY~s!k@VySNl5x줷̩or,YPc V;ORRi2*r%f9X85T"זTnuQyҤ1@=ܾ6sE~6ׯ2xYOwxf`>z)_2SƋ~" MW]ؐ;EC^Np;bΎSNt'x)<+Fp"m#jTٺ2I!}WX\XăǏ{p`ZaMW(LJb,/n7){3 b:2+}qH7j..jKX^Z:Fm_G;2:L· v'Ruq|r*&d$dn-Y$R ?h&qNVj9Nl|lmqX@TȊ!T Qc+3Ea ʽӱalIcr w$>E>V:_|C:+JCbN Ϩ^pUb `Jˆ-h!̵Ƭ&nL(ɵ"td3Y!2O#i\*9 +LPq/dƚdZ`X&IS-=ҥDg̨RS쩡+8)~;L֖~ۗ^DQ}meM%,vn#Se|O/tJ0p{kAS):x:si/C<)Ó7oފ&ʘs6Up|u vwٽS%bn W mow=nE~\:qU\Qo.`4AZ^|/gǏckpv6O/pxt2֝ xoaS !c{nVxm2'n⢵3䧘ۿ˪iDVQ,!E:'Q1yϛ qڠCׅu9(]hqUyVxFv7 ~Q y p3ܩåc˫ 㨢Se*VV0 "SS g& ݉k+$"6=Ds͇3ˠ猂v5,U*THv#g+S6(0#ȫ(iCE 9"渌,T$^FһGspj:R !vcFtW}RZk% SMN{,axd!eUpO#vK k%>_*Rg11iqZh4j(r1I|Mc"7`JUaZL5`pdU=q;5l>_k{Nl0skO?藹 {Z9 nXp4u-*MaTq64㙸)D,9Dn& pȴTS(G)N$ka|p)O/hs<6uM+f4 ՚H(I[_ι_Y{6f Me6ŀ:rzMtnl o i@RЌ~=rLg‚EO*e0zoSgTa#,BMర*rѠ+ J;LO^S"E(YXNDiR]V-RJ`.6z m(L+n!4yX7P.v>N Yא]WF-D\Nٸ6cɓM@|Ѧ&n-  26褰$Ncܙ qnA0Fn\P[D8ϣ)iZ?BrL"#ssfD'Gsm,ϱfg7n>?߸!FhB4O/4<>=Ǎ7quYLQﰲwٷ)rR}0\VMX%'lۿ9?"V6`?w ƺώ䶾uuS'g,`0WTK Pc7ϠkA. 35B]\byiA|¢yk8:>t 4%$k+8M2zhMfaWTJ=[.6iN5<859ϑX:Ɠ\fY(Ks$(\b\e yNT?WQsgg82g:Rh*9 EBʂ{NݚMŃXV^/;k֪o7><-4u\ly`h|R.J7  B->U\m#;/(ȇ;Z-7fL]~"V3ʌ!_45sϡC *P?gͩ!r&hX͘i.)9-iH}22r !C椺C}y\^YdAdBMb[ 3iC[JbK5UXSNyFnF!]IaȅiB@'MdC>6DYj*%vvbk%5S:¦{|m6 )5'?ͫ7cD7Iso[x)^3|}4qr{l~}e-9K qKڪ˟9ѳֿTy/.r;QuWt= ncGʿcMt:)..dnw+k<9tp|m4mtǘN G,;8;;EmY$j0촱s "{Xhwn6NͮH^aƯ~+llEmYgYKzgvpwa(Y_,u'ӟp\[ [׻a@a@xWL3#"x}e 3,/.jx@-em9"0ɲHg\8>9Gj F>+3neGӜ)5.]GI H^^VsuLFCϔ-xaʉk JGmTLGJC _|S$q=+^Y`4pway Q-`HamPخBmQ&)0fBŹ9|{ntŌfkKdMQggFt"ϔfs~0͑8~џEEН,3h!lҒpi\3MGʠ`n4aD]ҺYV\ )=5-g0EV]v '؆jwtOg@gaߌd4JXfMT7@Z{qSkQˋW0e"eqv3,.uIDtwoO\ hO>D5?Crև ܺ}O >MQih^htdik(? # TPU#^uT\;q$Ye9>;ϱӡc_yXuLW|@pߋz; Âeu-"fi݅sΌs$6@5&U QdBk\KSV !Me<pO<1ל='iJ )Bu\/=>4p~9 6/ڳ$Zj_5a`:L֛zdUV/;hYAa:V2M\7R:y#`sqj 3N f'-KKfH9p]gNЄ8̎ h0HB+BE}/$f>9̏c!o Isl͙qBlPauGSŮhÁVuS_RIjjq`tbq851j=bNV-?aقx-ՓS87})ZU;YG%LtE98b[szNDGvkǾC%)郲GfVhW8%'ԍgQˆӞhӽ(as3w(%c|q$0˅ M* 's'DaF]Qx^rY* sJz$0uv+56r{- , @.f]Y2ءnJ.賬Ѡݻwʌ-'|?zXrH4 FL(|~yfy1<r"S)֯m'2UzpCܾs{?dw%vjHQF-r=ƺL%U:ÆwvngOB)cڟojwq}$.nl?݇BI񴇃W_FlQ@W/H ŕ+x9z'""wnm{|z"xeRzV.& ݻCMG2#Q!S ef,,sA&ۀԳ ~oщe\ɘ,DuxДpʤFLbJfyWW/qX ;=z*s..ʲ๨u܌:\I $ }5ŘF:B뢫CBˬΘd֏s(ϛZEUgxt]mR@Q xC EPSTVuߵ!׶:kDr,ݠ)P)*\it=sUCD\F5݃3c [(]'lpoh]UNg(lp~.+B,?{xu!ꚤ*pX!Va 5#Q(cNpNOFyaE41';_bW`UлNҺ\Y$E{wRǹƔq7-0:6A%?W;f9Y裔I%LD"eؚ:&NJ@F~d5s6p}N( 9^ޛYn,gH,. tSD$xݓdFζغ#̲@#mbTߢ6l~iFKXL`֖tH4q,C$LԣU6 ,//IllnyӧfU3wM{yqg8|Fׯ|]on,^ŋW]\RD$]ovߠnccu]1?v[v: '6>x|' gA`sc}/q}899ǵ[wm fɁN AŤ.ƣ3t Gj:KWp6zKS,.2.9}QiMzjN9t`0ퟙF,H>u0:>N b-JM&)ǼϷ66$G`1yask {{f vچLZuϼiry/plzj➈pE pdL6|E'w ;y}flң4zf!J%I<+-za YNě\ك^Aa)v3>t^We&bX)[\,/9 -o>Cbכz;gF͕9ޖQ~gLmexVZ' 35$V7xN-$1vLpd OYiTPqpѨ{.ąo/4eŔnJY6>gVDoD\)FNa+CXAQTCaEYA&cwrQm ud<@ Ɯ ]Rvif)r#\G=8>0<eK[qfheayڑ!TvbͿ2c\іƾeF5,s$5Or`Dbы>V=x[6~ %2K9-cn^x~|͵I ,z5}3d:_DBO桀,Np"FE3--1,UʢQNO5o,֯- J%զZ+gdžBbgΏٹew]DW6|0"){FVFq 66H./,{=T%澡v%–JT#(DQz_{p!FD1aTkEQ 0b"!ZZʠHM}6=#\bes4-N<{x822+l#NG-}5FPP$-Q@ճ+- 8f8q>qS9q9~_D#M-$fgRܼv+X]Z7((gekCd9LS7ᢝ福MVHJH[: #3̪ظ.*7bƦs!]u/&^lOQ1iWx9X"B\qX_&LcfX|\OU8mm՛ 6RכQ9XojHkWcsuU /%<;;og3r;׷J￵tųyrMkBq KXZZUǜj]z.򲇳 [;ɔʸ^$/;Br LJk>.2tpi06q|ag;:Rq?ϟn^1F4&ҟt4nckB` fZx zKŋg8=;dzWfg}f\zcZN +7Optz ]--!-\CpڛbX]>O3l} Q#Cdy\Ku( J홑%CǴR]\HaN̙NW1L=Cy:f{ԕjyg?K 0k¸ aU;f9g^\ ^e#`9z[M钤WHm3xp><{nӻzdb[ s2E hW4zDJdئeh q S>u恖z <_7۝W:`G8??U`8Q &*\45*uD2nYK5ݾ~ KEbmsK['mfoM0 4ĴVyٓ64޾p="~uN0& ǾASe>Et3*.t)='sxБhLUCmҲ#9+˽M}Jmvߓn9t?R䎚2"[{ wqz|d"C&JE qpi>Bop){gaA҅7_a`_:ȋ3|.-cw睚>T+ĸ+fK7*-KO>Cօ.,,hi-wᆭ/^@+Wo߾ Zi\`Dob(Mn51Qg3@4Me VE7zqq!$b u] 5P`EOj?^Vk6^xLFLyT\]HhO?!; \h?PAr]ܾ+K }S{qO]>yvwPoU߾u[qsTku3\3߽q[tkhՙzzkH. 8>E6LIĊxg޹>ku]&5lmm5:r/᠏~$:9|C c!!Sl|9Ͱ}D!s: g;Nh ;4t@3 2ס`8Ay i\@x &9IR{KuP҆&ZICntYsNb.U:uCK9ph̅׉!6(βvUfF]҄"8_Z+۰@(<zqh8e͌x\6IȱTrU7I3r 8}I9RMAX$5Dl4E IDAT3VG>L &!H삼{ Ay^,%YI]8:W,ᰁ,o=hF!XKC4lIkƨ\[#tiASMCT>Su/>uSh\]?sv]`~ܬG[r,SNQ6iM;m:׍b`Y6bԌ|UR*72fh,3&nTMϢ(-D"tntM'jkO}Eͥ?.P֨y-4ycKS ȜHM+7X3@hm{p2Wλ7竻"GTӉ9^GvhN#lBEHqaYpɒcO( bd<bsEf<Ԩ IV_Nxxml߸!'f@VKfq7U]p)Md!2 hCD\c#$vŌ/` 6#uO׿BFP׭EǟO?ށbFa/}.^{`yy]:Lv iK˘O>ᡐ= ]Ƶ''G*lm`V 1rSt8˼QLg!jai*FaO&JO-KZL>xnj*Ϣ-|nB^@WxkLGr@>oo1^W iZyTCٕPKc>gj@ώeC-4븸w_}e9^>?xxC7D>X9=T|CD") ^|w^!iPfOu4[ظz DX^ےWPpכHtZ\\z ʓ#Q';E@lllJC@y6Q8JwA2$߼6S$^0t)*Grgh)Q(C\b&ǐWԛW36C\Wx 3TS>ƭ4j X0k]E ؜ ײJlݱE3<>mx%iw4jޞǁ#\CGp7TU&GsL29ʩ ZFCJ9O3G*CV k'}"wN͌E 5G]VRJ^ΥFrJ{Xx6Fgڌ<#4׺ќ )|I_C`$U/ab Qc]:R 7/tB GD> cVϚiD3թQ:Fl%ךwj8cXOLacA͙ 'q^33Ql, fip LXU9!05\%֊mQ}ș|%\m0T!-uDkp 0 lVp>Qsfy]͝M:FT0\ipS DJ\ztO[oiՁ(_eQ67D9lKM=}цyafVnrf&t0QkC(v+]pGB1AԽbraqQ'لKe L|zrS&'R1`MƦ4O`@ zM \/~x-6—R9y9z捚GʭE36e4sP7VD=:9Gu}{c2 H㢵iqKlM౐Vn'OhxϞH#4`Ԝ_ F>)O5VU,>|PaF!ݿ˫5pG8=bk"#=uV7sQINH[/1_,I{rx/K ߼qgg(i c9(~6ׯ|!o&8`NͽkJ/udS][la'ݬPHkmy/Tl~Vid8״!Tɭe6PQ9 (kM9,@#%!ވRz![ԛ D| W}8; 0C$܈C_zF@jor?#C#@0x| `B_le ⚡I{kT7;e"3yCJtlR-!$QlJ6b! vMQeTbhpDj`:eebk,r+ ^4g(43\.ԢBt?#r\Нb"А1Ө#vjp$2bf&d+,?yeS(7 `L(*G{r4OɤGuT~*ڮ{$A_9988`;<"h6[,5Q9qhʙvj $.rUu氋Y.*,W3q6 S4L[iZcvԈP %6:bꓨ<0o=?vkXpz M:?2NFjE!*Z5=f:RҮZs&6.Kn5* OM_\Աb|~ƽUԄƍS_iru6|"©P&J#^Ȝ2] IgSolf!Ł%)ѻ9-rzhbQ BhK,uP|2A^sr4"nvp1;nUG$@+h"b=ui5Dž)}{3칌)X+ ՗Y0E-Mjּ%D eAK!߼<‡)A" \0(GGZPG $ :TR1Ka8TofƤX.DNHׯhkxk&&qf6e& 0e䗈>GaV ҴPGqi׆ 'ќՕ ܼy~5u( prrC\v r%je>)O<:3$enwZb!-`8 ;jb0b{릌|MHLfB'㑮/~RqUwZ;ч~2 K3Wp 7>{8%M9+ʌAbrݝ=\}#E&ŰwVTHexŭMGQo-vpNL}{qSlNwqv#AYiYBMl\.p8{o^sucicN4u$J-ʅt_q%i||>Za2IzD,=bB^ {iټ?9xڸёkRAT;b..1(;p' ot|Ib͒5G5Ѻ£NB7sq FEg7nrYui ̠I5zvleJqœSKIEa B\qqy.P8 Ѭ^H:g䟹UGQ5d`C>,6|iƸ i{.x,C!o40'B͸b8`fSQD,Rŧ3YGx;?7E$ 'ȽUbV ކL>`j;,Ctذ{C*8'R&p}7!j 2N,sHAB@}P5b9$Qڇea \U+C, 'e3mMQhʔ DoL] $UN&j_QsJWv tSCetEH1klPuJ~|* 09 ,9sT:=/8s?J9pwӗznv6\InZS<ȍ4pC=d~ac< H6Wq& ceiI4`>g/^>ųOU4H& Bn;;;* ec )DCl'*_}ms%|vv ,h66|Ldpb.ʤ7oa ']wa11m`7l? īO(.HYkXÿ /&p.RR0Nszx'{Z͎ nÏ>뷻z^y׿ok5}DU!kVo6qyqA@[gӊslC{1(쬣V_8<[Ewo_jhj:Z<~z"n7E&Bz;j~Vk i%dm G/'?λwZñ! )ՖY|8b~1z(aIC ՇE}YƲFN՘Gdc}E-ufv&/{$י >ץϬ,<4Mj_tWRlV%َMOP(ɪJ89ͤ~6aX׽9q) 5E'/p N(u١fr$#8/ُBEPUs~/~B×Nj9]􍕒:/kmieM= !~: ?{fc{f6j:"zg7VFwM|vSl,aI4GXsblQ\SC{3GuRA03ttԹ4vds4ļ>%;vSI1C]MΔcNKzR2fݮuzDx."'*b\'fHaf5zgvhiԮRõ;9H7"tQJa04"!u٨ǩzȽI|"h"6Hj^GGh ˀ2Z򩘃%ʺ(H3禝!K:q.y}lqC,+STwm_5E=0qN 9ʤroɢKd~z^,,vm:VtUt=,- y6CmZWY`"2vHm(r BXL+DgS1U $SJ Ul@$י y*qPЦU~ %Yx:" QћQzWv6 dÔB1/xljanqNh9ѕUyFO+ɟ!OiYVHmdT&ʩ_u{eSIBPBá9t3zoPR(fx<&HXHJV**mn$VhvUܑeA_B U BTJ Mf/{fD78s eqrWJ%jf8Q3BFۀܤх#=X Βns59;PT%?\(/}rܫ0'u0 =v_L_|f(ˀ~\>VpX2" |cUDRϝ>#pY=!KrK"4Bs  Qp")hWW2;}_\5( ;œGoh9ӝ>''tn.,5lGrst}!)KFH3{yyûd%.P6 ?VYj#6.7q^x["}wx֛h]pIR6H.Q"xե&FÞjDk?8;9"X$:N",.O~;q]6I=ldHC4Wn1O? [[(WkX\^b&y_1H/?#z|mܕ" JuMԛ+}oGĽOͷ_dzc9=,B6`c&,@7@XQdxaiqG\ҦCJAe/`Big1J@D~V#kz;A%6C0wu'ρPQLZԐ&;̀;ou½)9 ERoܼN(!,qB{uʽ^Š9Ә>ЈoE;rgrg>H{@3)]<5醫Ujqj0Lghا;f]fDǥXFH89%LG}mB]Y,n&i,Ա(AENߝ!}!52#,4:-f0qV9ϲr\^iN_ Oz+™}K\<ٽthg($@r @8lϘ~L|ܹ#a-IMԓ!#~!D,!k u6.az97PS sZgMt0*ӜΌlxN0\Wi,OCPP+l\/ lb`yiSY^Dje:XsN5n.Rg 5ql) L \\(8SyϡRbAިAXhCkqj67I/m^LN=gd"qGFg?9t͢H'o*S!+vlHj- w<3Qh,&7V5s$)$S IDATI5}WBFI[h"#..y|i0iJ[H]&lFsaLsEFbbmV)7 b/UJIskOVBVH*h8W4-"#p DST&Y:[7oJC!юfR{՟Q.$Gm1MDG(h3jbN@# @ETb& e!6e4~^!3QuNk-(ų]9--6sʊxw_j^N Y(mas8Śʷ-|7i\bW;DzQLYﲹ^`ϕeAfBM4I1b$kA܄JK;[D5vlN'eTA>CxT] 5_$Z} :khJ4fI{xz[?ȱugX 7R$&Us'w/z6%y3O7ol=z{lQTPts24+ IO1U'^V]x9AA+x"'ǯs&>4\c4}Mܹ}k̤w'Yk,bU |gX[8Ozvvywӯ?gɈ )$w_$v{cj o>a\3fI D2$o}#f5ˍTl7d3f򽼵2͐1'AqMpz3y\{SVgQ<.&%)FMY6;E,?2\+-#Қ*۳#'aYI4@Ãsk OqTjr˸ᨺ}#ܡwϤi7z^ϰfWذ%Ն*نMSYߞt'7 G ܄h*΀+b)o>-?ժNs#w ],qԠbkz1&^7S]?P:5 :7%&,zI,]e6ȱQF8zZiά}s1ռf|hF`e31B0*]VӚ |[nf3n:uʹ+pfv`B?U71NS7mj7^f ëK{TRtxBFmm+ErT+!^2WKl߹M'HĔZWT28KFdWH=qgPoZ%nFEa'ϧ6δq95W}5Ҡ [Yd&$Zб4##H P2`y>-Dl1 FmTd2e8S, ?=;x2b F<99S:GZ䇼TGdSjEm_/r+̠vv} ˫M\wh,.)_^?{{G_#d==c#+ {}|Whxr|$jOyptv>>VVqttBՏ'*_ZX^]1Q_h`TVVx:SRig7\BOf#jО8>iO>o߻{bAmloߖ{8_kWKNM̄cĊĆrMdrGmCJfHuX{5 R9#IQD(aapT?rC3MRd ŹZDyO}( `fW# _׼)Z(eXX @f9fWT,s \=ҐT]΁y"mShzs`6qGS9MÐA9oZ`5d+HfchIAdݨ[ m Cs9{pudycbZؔc$Nl AK<3TM+=_9Kq2^jqEv3eH]`<~_?^3"V.[,REfsq9RXdz'(!Uys#s A=4%-YP䊻(0)'u,!4%T5ɦ 7 ] Bꡞ3Ήԝ9˂l2";#,;oiq}M:Zi$G,4 6$A(>A;x;-RdzFFX^ZĠ'c5b8I:MنbpjHq:ssQnuپ2 un9҉a3å}EWy5uS{&$&IY|(DQ,dpqyll-vu!ƺdL;R%)JDmO[??NQ-P+V}U++,ĄFΛм6׳GbH,*:T753꾜^*p0(iJ;Խʆ):]qaM4Wb!7+ƚޭ/Ltt^PԌ8FT Xi[VV?Mqվ$P rvd*e($v@f/` =Nn7 | Ku\Nprᰃ3fJbaɛoc4a4⍇pk527Qmj:[-ٌ-y?k]p}ʾVWeKK jUlfƫ"߿eS|vvFd8bkrb0_vְًq-"ωx+ҫVh_c4P|ӟPC[|]?Gf^O1Opy~#ɳ[[X@R""5_p/՗. Ǐ# +Ax2ƭ;hw0Y$6wue_DNƽ CW$(ҮYBA /^ÇY_~9.Mz}VNJ1zubX$y2'R2^~0>b2Np}es"]{Z1[̚1ŭ# ku9uSK@KWHuUFKd=g1#g$kS;.M&Wq}u>Y8QUB3f^NjRD5沞&ԭZx`ZLYC=k:vnb{ -猵:V\o}T.Rw֓'6ȚRչ %ٸ9W&>蟈#ee _?P* Pй3M&,%Ői9g3]#*/! {E]Ye;7X]9a%U2Li8j:N稈qרgqYo@ݼOm) 'Mrs&o.0wc\-\Jv&׆.Zl"JQ^"V6'c6N=P"ܾu x0qrtzA^sq*ַ ,1UTj c$XF~ZC!ɩ|6Ғ ,YfKsکFR5K u=ju >#iiRGtۣz/i‹ h6'lzcE,NK2i+K t/L52B[7bT/` gK[@MZJch3Ӧƙn_p4יQkl"ߙ0YqgE }-,šsJm,b> !' 5!PY:sߟuG]b3ӬYN\9F9fM { Wd{zfٺEZk^ t[ϐ2<\6g^u: Ҡg6Trù^95yN|f@*a;DM$fVbQz9r:;4ɧzl\?^8~.&M]dxl`z -Úv~7Wkˤ[n<gUOe̲&i hh:~1HCFQ9I3RWL%'V2gGY=o@^ hFtn^db-i1ͭ.\|532 =}=T %\B]E,AtAj0(/vIL3"kt֌H[(į~+ȥqzvƦe|cs٭{y)\c]4A4V-}fY}9 iDa̚fÀhk>4PPrG35pI6cȹ4h:fa$3#qDօ_P^Sn@XEju!`ƌ؟j&1G,Xf=bCSlnP!Y'hV2d\cyn"ý2m4 %Y|aΥ)SMgE' t(I[dIqL^ҭX,@3iؽ,,/ÇjwI4ϿoQ???bskܷ[7opWl1hw%-_N$׌Y[]F?5~cRMA47ADVųp6DS4;&d)NO_]^R.`:*mdvZ^+K7%l~dF*f`ׄR NXq׿A!L=@MP9Avڝr_2XE˅[2( fz}lkFit \jpmIƽb/BR(Ti`Xy4:jqU]`w hLM\H^3.%df)Bovڶ̼&7dF*hsl|촚D\n]hA6P欙~xU1%2Q:G}̛G!3uJk4)HgSu՚&͔ޚY|838ρhq*k:\S:@ b"gM iCM}ϫ< Ƹ |?7p=:l͡ԔҒד!KáL.Ngeٸټ;٣E#]r4;*08yN@KS SL;FNlb6Ips\_Lbуg d˕Søhr8wMɿc㨣ذ:7YNչjX,yUXդY8x2ΐqKMhjI1`p׀5NBx~_?&Be03S'6ksq 9;〔 4Q8Ng0ӈ¤ea-DF<[03xm +7,`{_L &ԫj-[X"&IEY0{x9*=FR 78^HC9G IDATp^CEA[M*WK|Jllƃ upY^BH04 t'OK6 1 4DRl'7p}u] P%6E@)ѳn4iBB6$uBKI!F FX5:A#uٷI^h~f9 5sin~1M?( I4NB&h vMMϥP+L=KPn+Dvfp־·/j9B Yt}cv&'CF NSk& j ғf:cN l:EwYK(xjU-`4uǓ67$x!DͣP xs&)sYvOj}x2:Nlx~&5#rzg @jc ,K̀$_>/^LЗK+ԃ=Ukܵۼ?~K s1Bqz?t4jz秿SW|/0ʑ3n2H!ν{qzt!ʲ'>G1~0x(ydU^X炼gCːR;Ѝ6:<+B1fSB;ѐ lLWyPRqؼt5n:A}=(喝ow$ޠjmq 佝I^Ōׁh2S[Ia*Scnli1iN94,yL5S(Ρzm.ꩺ +\5g6tyYNl¢V^+YDUk!bGO,3*Q/ŢR ^i3*fz1sNUK͟!/ESKT -(͑o ol9 [MhsbMn;Js*, 4 uQr9G^]S-AS?&CL(0SP-ԛk̽\#* b)FHI4MrT!jXtUtg7Bg!{Fou.~N0i 㻬I!70Lc]2Wih H ?ҊϱO5!HwWr [}Η@ݺ)8DUKPIѕIS󢛕<@ʐr2,|e~^JzjF%+ْ(@- R5_v.wMʺfs?֯/mr[R\gwQ Uu-Y+tL=3dju#|s݊Mr^Ě.>"N"eW͚ddD 1ULҩ0k zv8Zǧ_AʭG ְ/Y_^{+fI]u01! ׮/[tisRL͗Ep>nWp!QIt, oS5r8EuSWm&bQȦ,~l.,, MYPT4!R*KXFXY[b^O5čQwHA=klťE}Ӭqē:g/s3Z ;|zBfl:}9@٫_9BA\'lbbL%w4b"D4n ,<`R Ԍ(ƨje0TލX(WP/P,{o/A1Lzp`B:8nm[wOn'⺵}[ۤ z\(;x  EV"Kؾ3g"GfPXĎ yYs y@B9NsQ-jBrLa/mX¶><sl)tq{y]ϛϬ\/ӯ⸆/ͽ*\NX9qh3rHbCAˎ~<5Ć&3z-ύo:n\>+rx+|{4s9'Kυ i?=Tݥk6E76Rs@A5R9Cx254ؐWjTS9-]Z:bV Ѓq#3RtɑWjv#(Z)YsI=1 'b$T_z{Լc#p*w@OMol D_D~pzf1:Ei-\N42)рȦ?s$gX߅DR8*͕U7Xn.4& Rp <>bhf<)':;2㱚%l)Ӆ."byi r"aA#\5KÈecRe[Wq1Gy=)BrČq64pQ`^qӁR~t8t$;;-lΞ Ӳ f?5'P-Wbv_9.Nu^+ z6i$&wnӼV3TkuR!·O7ܿE +i*.// "m҈J;aGps{Ik 2,4W>Ak7oS\] @tCg8=|m|t1{F^t#:k1hwqk>SomۧO}|?[[8:xC z{zs}j)3yxHY2@p]\wh/(Vx[*ԛIg-o#(+^yn-="2\,Xl )F_Q_T5[7pt~ZS,5#mjKk8yBZUnO3$a"+ڟ.[rDQ)]d26ڜru[bJIZRs[iN3+B^IP-yLm}kЅEdΠ"a2ٕH,gqhO:dHC32}h,5|Q]= 19P6ѭS_krRGՙɏӽ92eZsconZlQ`VɄ2ˉo2:` }J@=ct$Ah̘Fι3s\/y沛 |(K:V)lHce4kHAȌ!,J79IPhFN4bC}2fwhNYbz_9{]y.sb"~N?O{]܊C=I23TɆTDuSHɸ|ӭ[E 9tKucKd^96|p *;qMHHyƦ?`VX@#*bcy lv#C z(ŤLU.MMg"RP*_\[ɩ\c6 ؖ/HMش̯ we43*XөNKCEEW ݩP{mP2Ͳ;=T](Qhp >Snl=J$U%~_uz}Źf&"S"X'gnjy'0ol}r4ǵF?/t7yΥK,6,`(Ww۹qs3H ~%׶Q-`ai=˽=f޼#ߞRAQzcdOXlp(^_pySO''%|՗XXGcqxПחx'8>z4 LClx%_\"pyvם!w￉OAT&UB.ցt7g@̰ٳ|n3r rD:&:rVVpr|J Ϗg*^5F :&j2hqidKԫ Lxw?~a8r[8(5vEyвy.8j.ɬP0/XHfRcY8'^{(g{? X; !\Z)U 5Mg{O><<)fP9N͝VyϿά .CVM&fK}TA4dy7:q)鞡jZcntF/ЦDmHv=Je=O iu!̹Z{dADdv;ֹF9ZC'=ל3&unީñiU՜M0oy-2Kg0LqęҰN8@/jbL3872g3,W~'g6?\MŦFxbdݻ `@f 3~}l&q79[:P}u o6:Hʍ&t2f $,)!^EOӡf;A%ڨRuLFS\1 QAPt}~8lGCq+h6xlwȧ`$Xr#)}  &nmKN}&ME%oR@4D&f;aѺj$tB.)oęK&~{( :"m;8R'4% :ꝱ9/NV4n)z)3d*KLZb'Z^M16E+jDo<>ˬK &dɰj^J_\w.>!ڞM9#_B 1Н1 c-<߷$[xFaLn9[ߣThkXn.R(e"J 7gGأC &C^}͈JTħ}f x9~Ɠ!ŅE9Z T5~7oЀo;pra<1o>~) w`4my~6EX_E64VR} ~aI/ǸwͦQӧ 7 )U ~VA;b qzk;,FVtt>=9bŗ@>(MZWͅ:1Og|Z!C#@1U#ht֓Y "qm>~ KWXh6qyͭ;& J,0\\DәРN}zxԉ*%2GM6eLpF52l=::"5vxaaOE*b@X*{Dxa<`4`:Qf0.ƺɺQ(Wpx|hZ]ha4fibHs6FDUm>5S/g/9rɺ˵Rw.Cc0%5N[2ˌfw.SdTMO4mi5##LcmL[[ CLL(Qpذ֐܄,pSD6!K3$Aިdn+jq҉ciϳ8aN lM⥚JE GޕIb@j25jJ WmP]bfȻicOF$Y$Qf9JQ);3)|4 u*>ҜKG egf 8kآhqf(#Ι&KUILi(:9k$Msyܣ^Lyh\4.#` dT$EP.GLc*5sgM,.5>d7{w*,=J|2M2i^.&OH,K W$XYgc5硟:hS6BWI Ľ9KR/W1HV"OOܿw_pN`{ݞ!(M#Lß z_YBA76ꆚwɴt?Exl(4RhRN*P4gJwM$:t%|R4PT8PONJn/*a'dC" >i%DF9y'b86z*hl*VKi":CAV+C^^Vijh EEy2f KmaB@o|dHC()Fڢ:KATbPd/=/'ZQ'Co.on!¢i(8#8CPP[l Wv{: SPBH|?oXnbaie /^ݗxl6'DN:}6l%N7 ʕ(/6XYZ ͵ukUj%ǵ+r`Tp|,-6qqFph6}4ifLz (Zt-6,9`{kPz3R#LC%=Kk-xXlݗY'uoohE*i{S/7l~Fsr}x.^w_Ж=rvMz-W7zcC9qyrjC/Rr@#jƂÒy# |u}ITۃCuPŵo2S.́ZɰzG(3Utq\qS0iyݠ>%ᱥtNGMmhaiTTD\x&J9`?[ވBxLQ]3y8s&#iiQ^f<̶FX7`fkQX=By+1iB"rf [0@R /w&n~D)~h\rGD2\(K%M }Z†Vvs|+Q&я}x Ͽ2-8`?$.4pt C[=s)TRD>o8m=T%51S6FG[n6 X:axTfB}14hoޜvL+Zw dD*{J°} )G#uxs!_ ˸DRCQǨ{eub4+M9aIT4/ڔ# b4PZ# |h:eMT!fJ5!Y")e~Iq ݨ \տ˿'S3EI#mlC)JX3PV(\ʲ.LҸcqT:I mÜ[ie;6gb0zsՊI['edxn=*`TAPsY龸1ɂ)蟼b |w4Aw8氇*-HQ2% +E@([A^JҜt6mvCe3 :.(ʼnj%P FsV0\q㊇𒞮#ND|O(E$7`NPٗEHC6 }{T C6;Ľ4iqE[h8tp'GPIN[W|EQŧ~I6M&iZjwyܡ|b9? $T rƣB{xZJPҘ+j.X^Zd8V,M :B 55:2(8?~m: T•n|:G.1JWh_IK* Q Oe˕:@a2 )fPMќC6wvV>{Ǐa{{bAq7wޝxkGWdH>pj-ƭ[wQ,WxߟIxU\__ufXb? :=k%>8U\\A(kZ}928aUFSP"s Rx%hG4?(1!Ther%aa,=ސ$̄ zLU:S[7?pð{I}7|}6 3c t4-(.kUq,1ԆC[k\9 w'"ԹH?x4O#h5 U$I#^B+Jk&K!j9VfNZTEvLj+|rF{!^~f>s/{c/Bqy$g"E8+Y~GtδzOr[4_KhsMneUurkU@~-CFkf9q?JSjMgC^5U2.բUeLtn3WZ(HG~3¹D5$"jݛxw][%fgrMa}E~y6:0Xk42^|mV}4`qy.Vo`qe_ZCjh1qj ha]p4.EN,_|6R{UQC\_]#"/?] \ \=  )}2wc$K^+OPMlS.A) ǂe˝sS g T.SȽ0LR$G`gfFFi*|p3tP`|OBd:CͣWNSWJE,J(Q!jg@ +eƨHXP:vfB^[ mAv{.<ܨu&#PXB":!UjC~,hP}ˑXpxtz mӲH)N:M-)NHV1$_zuMRjiosθH(zݠ\a.h2nb *DQ=޹C2gNJ~1f0yOQG_>%isVA's}5_!]mcLiXk@?~ ޹Ņ%~wDR٤^\,4֫+`. 1>-L͗YНڶW^^@(D 6ԺDvZ<3FQxrACF"^_ǿ_hp bCR'B.(%nܸb"]S+WWן`f9kxvh]uP(/ν\a 8Eʕ_uq8`8:?T"Vq>R;tx#L) U+%kȹ Q|:V5 66gqDw+:!:Vq/q{NOnlr0 df˺+ ѽﲟHΘeR0^h{0#Q"r|>b`'sf ېuj"fhlnkY6@p~epxn"Payr2/Yt:*q]eB/r-t(㒁lxY,YJUGgHjy\cdƴ^= 2`WsʹS?rzf?ͽfC=?ެIJ[g9 c HQ%QnmcO}oKn$I jr9IFHUy>{\ 1 ڰ͊}挚)>9Z8S箝o8YGi6^9a뮵7Qs&[;qgu g 5-$;l~i5jtg(1֭MϐsѴ s©{,.\/5ߛH^]0,!s3^(d g0%>g e*tbH5}<67$7|H?AƙS)%o½Nsl5:4+}"8<}DLGoj͍<'UY$h:N37C40hi,/9EGήMSj`2ŵCCZb.W6! MŊ־"9(@S26J` RgyzWҚJ9M%&?&IVcu@ >/l:JbAZ|D)F &t`f𱬭aT9|^canSk K9:-?iq{[*~ZW52yP~xK ?Ϩ0H~&>w/^J\ׯ_ŵn_/XmonKTn'JU|st4Yx/on$,%D{wgԵ!'&X&U:DKE*]^_'bTJPnEE0MZ_eĘoEyHRiFgȓߗ>H.ώBVhպ9ax6=9K^T~K?{ψk$}G#bX_ߐ^+zC@_7dցlܒ_;9<:AZV_?ퟤݹ.3^,i_ZKLrxBӱ,5#@6v[vv8tiuz2ad瀱gq4ɋ_d48`) J"K4iO1,0M*IhgSu}v3IH/,ֹ+ҾѠ'+DmM,ν~w3&6 }3I2# j\]!NgEdj`n.@f,bDzu9sX-b:ˈttKi4s1$}DܳpΥd!u(1YF۹&C\ᬉR/+UccգMݒjS3̌$_s(k3>Jb Ii; =S`;ѝ$Ide'!1gaWz}ĽI Ncg AE&y3m-<, ߰1qMdob}d p~OY5֛Hn&YiJiOs47k.ɮYW]m)<3K/eN̒7 'Wcַ [RR>kZilE:!̤2Î$Ú87ysEkN@2Շ1xQl{FNs맬7 03o78lC_5v4LE7"b~`[uM!vԡ :HU"9?PL`L,,laOh:TPPoE(n8ql{n3fYSfMAh*UR Mnik#4'M$e@:Z\6Zʺ ӱt7sZ֏Ë'RFgS.%t@0BkqSWq;ƍE8UuXLƇ mMu1 tb;z|9  l)$KN3dZW1#:9c]$c?Ll]TuIFEC%4KEi :4\pF%,bC (Xcn.ܘA+PmC'WBVp(/ xY"S;p:8օɹ68>%ـz%d5V;%-ICW3P% z}4jzE(5F^d.^4UMt7J}\ߒve?3-.#RSG)C#6~RszB#^!z{p ]'g%v̮ðg:OFcI$J"98xC nI1,/KyƛҨ׹ 8Ҁ=|Pj5;>>͍M7 RvwH676L αnW S^3PpDeu\_sD}}sWĭSryqfq') h,1tSL+,&ZSd܅=L&ꋲwݒ-udÐ\{trr(o `TrppO+_s8fB8oލ -^]:))d{63.iOT?'FfDZY ~B*4P>>^P"@Io (2̠f4}lb:*ki@Viʅ% A|N<řF,`o6$a䄦'}33Q+Vj6N&ӬFX&[*ruӒUup?ύnt/U*Dek(}ߨ֘5CY2P K|hCYlL??dL\Luj_ ơ /CќّnbX eJd8M!֚g&B/"ةSCu|Yjt.4v1ĩI|#N4O SNijt`UYm JwvkH\Ycq9RS IDATȂR>Y~3 S2g7ڷasfbxr.HkכXRvS&Q!G uΉZ| x 9 o9g-p͠W8(笯;t'O<E&%JW)^w=u פBv-L,>Cg(hp5>d wF:g+p CPj޻ϴ?ﵠ7miKD1f5݃i* NO-̱ *=z@!QcQ%vWF@{-уG4ϭ[eowOd"ޓ+Oz  ΢`4\l.+yp!W_}7:A3} %2^Ѥ6 j_PkI4X"Mb)\TYAWڝL"M_4dqiCZ璬on1%L1Tj,6wrBsQʓAǢoQ1[[-0388VkU +uݻ-bI?LYmZTN  †B$1*.^D22wDOe1L:F^<3bRS Ek EdQ~&] B@ :ؼ&OY*woC04>s12|`<*0 ` t8U!k\78U'Ya&p;ʜ҅q6-,rwla4(8hdWaN&#jtz=ְ& =De<]E2NYfݞ^dTYIXc#CRNԀ`HF*@W1Qoi+MOܐN:o?. ՚%rwmZ- C#>cR6nU_ $ӳN9}64>Pq_A̙l`-U: WYcF{ř]dl`M 5H!q痩 8Yď#iTJl?PsuhgT)P^&6dciY%iBvVU }X<\L"-k7@UCCQ ulѡ<<rOo/2Z][c C&ƞ͢`[Qߕ>@NNNeogWF1?{u% Uuh!_Hu-U#i*}3x*{iG/\mp[]^9;l6trr.#8;$%.C8ƲwSzuj&JE++Rh\#/E4ݻlLh]yyM{@Z:QDp>  @#DHZ_~.%Oc)# {./KЖuYޓFMTkgeh4iy זw2`)iFHh t *J,\ץ FC6W VQ9ZdIcTpVPLbLYDLTuO40Mii@QY\Ͼf"F%h0 =.uԏŦ= d(km9͠$iP&Ǵ5e0ΐ4e6,Ħ%М*'A:ʱs14NT}5WTekn\<74 ebx:,%iS,Mu1|Ob <~I-&D\h";3}2zk|W`McFWggEv0js{Y3oͩ Uqɦq qVO4^Meu?'i`,5hA6|M24RXdrϚ7qQ]H֫g%,(LU "9ȍ˜$l g%<Τ4+S b 'YVHRO'h|/r`;Ӛ;hԌM1kSgdmB$8ȸ8!5K&256c.ku0:G jE"ըOgXpl٬Tj#c#Km$l"{tfY3A بy olQ,m;?C<|/cc *18yPfU'R_poS-,PF|eM"pEeא;# .WBNÙ3V -)879e{4=HJ,_{PT^166*!D1stH&]* 4St0xy0kQ (p T,*֨V72Q%j4Tj4gPȏB4 5, j%6;Ќk3[n6.3iѢӚ8s# rLqgs(ɑlTR31 ՅjH\E6Kʪn?A RYlmf.,VR/TKEi\@WJJj>] 693"G6P4= ن ɑ' nd0Y' X;(X3%+\Qk4D7j!trìҧژ )p >2MNM Z|̺0:P7O4CIKjg5\!|7P^_wT!WDZa铤zMwݻl,_|.r|rŸvMa[z&Q]_Yጉ~fh<$7WE9934hౢ@?!"!׺hܓ~E398 Amwzw."2g`7Cy\ss twdNr5y<"ƍU8E)ˌ U+rڑWRtj >2>}i hXKzu: Fٖlkh9+aaxo%`j}c2{5aPNHjIGvz\g@ Ot*+%NIj h6l3\=z3Qy]XGh}qsں53 lh!9mPO3V[ieSʳ沺WeZcf\w/$3bX#`&J@$G-ǵ/2/Ӱݣ42|]DS0|"8ҳ_렭Qh&KgE ӽMf'=NgĹ;֝>,G? sW"Rң_rp|IN-N8B$1=#4blL?ZUMRGM8*\ZFvߗW,S& b22۰cw(8)aߓq-u4t:p=IaNRP 7b0v1k]ўl,b,418)[d"\,HPOHEd^֍jEAf7a lC?67=Й97̏?{ЁG}oV.VAȢELOhYhpXP 4xpM\)ez)"sr(0 h`RE ƬjiCA3rI XQtRTJx>_6Xw5љ!BD*uҲ&~Фtb9% B&&iwR }YT.&:@3ϴYNC=:rvu"ѐEz%`BF&ð,kkj{τ,/aMy##f3!4)$ϊLBD"E= +S md2vFldP0!{W<ئV"W/ۿebu:}:z˧}"}!uy RGÞ|K98,j|}߻-_|%-ݥ|csCJ墬,ѫפAJ%R> 7}+xk5iԽ2nVU3 6!ez)޴/$+;g3AYNٶ~K+IO`5GÞ>}B($Չ$,TdqqY|{ҨU$/zl4Hדs_Hm!C0?[`m9}Mg('gp0X\4-!|ꅜ$HO$2|Y!w舁~ʋglԓe `'2vILX\\\b`3HU9\cPRՕM6GTR4zLn}.WR,q?qܝ䳧OyքAvJo," P2k/t[>pno}-abQCpyXzCq}.,d8p/Y\R~H4jCŷw+F'No:1)(q//͐̐Φ*Huq|Í.GIr]qf-/ ^GR(~݌{ffĎnkiwqS?c36s59TIk οF^ktR8ra1Gdg>NdN-7˝UT<-4սe[X;9!yΑ̇s &kE됭E:~ij CgAM^׀Ku:7}سe,g:DWeE85'?o7y%:HekB}A[jƸQ5`*fd(+& GX(0t^2ʹ~WTZfC-sn$9*ǯMkxX4 5 }ܘJ!#vy3ngfvӭ!7i2XxƨL۽Lp,4y-l*Zd1a @tx}K8I3 jxyjfMK1`;rzR.[GR n&&'}^6moiP. ,/# srQtbD"QGyO( jڣ8R)B^"GTŮeŒf:g߫@uzF z]Ai,ыNGj |ήd8a 菻;ӏeggGf?&U!#A$J(*JSԮmpK#{{l//.NX@o:~Ci]]Ygؔ^geЌ$dgcU:'QY鷽|_$j4A"QQ(+ȟ@ r}ӓ7pQMH=~OpTu?s 䣏-apeJݢߒ䋧_p^|!\_^/oJڗ%qR%Gzo|"{4[Jf#yMWPNR.,KR.$hm=֍ʼn$ј#JCnnbV7۹^kH+ޅzڠS 'k5v[GS]CCƊFZ2#pnw;9҆.g"]=CәiUR0YB$ƘF])\0gOBĠ3:TL!׽QhQ6_Oy^QwhAxX#quɲL%8T_Ѩ ˊmZFfk9bh} C(qbѠǙd#׬DHT8ߐI+\1J<c9'y#ᙑ<(URs/9DޜҪB=_zs͝yZc1I8۵̙:uJⴕ1=$f !6 j}CB=;u IDAT5mxi;ߺ̀,W]gSK-=< (Đ=VGA׺!v.VQNK` ׭tj'AƐfBkZA 4TK&>#6u-~}Tܛ♴gtH^H)r^_^t(Ƣ  2 /TZޓaPWD7MԨ _F:@9-?w5MhiQų띒nSKREVx<`ìhRWMC2hLB~_H:&Tt2r9^NkLMwtn[GvZ!%LPY>S 1n<Ղ'~(4rE&pPPchud*c<¡z=)KAjіX'S)]$,6+2v"eܿ?T"4+vGbYrŒ_˻3՘l$kkk5i./sպj gGA ,iXc~}__f+?+Ϥ\[ݐ+#;ߓ߽k Tty|SL,ф beAn߾-cF |qiNcKd! {ymSQ-O3xgHݒ-nR(kAQUD##eD}fFL#xtE 7d2ºahBVQ ~:KZʚa#ߑ^~e"cw<+ ӝV[4xLTJi`爪dbM0\etb0is7gf6Z{\;s@5TTJa]S#ni%}SQ#g S~ih9󫵘~|Q_*UtL*'5syG޹&IkD?_0D {sM; Tk+X fe59֙h3lJhh4s3N]"ٛCS [{q5L&ـ÷uTmƉ޼[+_Ĵоs& ou(}mhBsܼ)C i"4)wZPPRejʆγÙڠ!q\rXԽ'0z6$jDTi&7F^n@=NN Ϻ:;0HETQS(8t_ ~˓<5S2)56Ӫ7+#$$;4Lx8A5sRa$:¥(ՅC51=" \\_`),Hׂ!4 hԆV=7%^<0,03+s2yQTWln'cX[B(GG'i]C#{_H$$5N|$;g1u&oz4z ^XX!FӹB`aB+Rx]ьVޔx ޔz{W@K|60?l. r(.H7SPF&H/R.o{}﷿3:6n 4ί/?\ڥ%o3_67s}NJJE~e.kWd)iA֕Ruvr"Q("Z*ߕ absEnzD=|UL?Si..Io4˓i4u8,N#9}OSsp_\Bc#cI#O~&kkW 'vv@zthv OF ;7J[;r}~9I'<'z5I%\_婜5\!{*ޓ/>čZ{Y2KP˳#63~fMG|?qR>K=hbn1y 3| cMTFtٙq(xFI]!gP6=xx FcP]Q.W qM$d ĆYi0/RHXͷYLO&6lsX5qYsBknQK..H{r~z(7ק2t$'DQV6e6F,؀Cx"ؓv'+kW_r8=9'A=N='4jU/1ݑgϾr('Gs)ۻgrȃo0 ޽R^Ϗ^H (ˋuy)ͦf\9cW?~(령?9ƶoɛ-nߖ>&}ͥ{@<(t n\Iu%7ݾ,l>Xڎܿ'_dcsKunq#uʍk׽8_POTVMõ=9D݀gC U)( QX+h4 ZUeCFSf~pXdJDAJ28{aI,4jryuE`1/9c@aG Pۃ}k^2 !5:L9͢^8fMEhɮiLY~dMY,rhNL\Ag+c^&E8SYdKb(C]ngQWh=3&zt7s +Ӳb r9{P"T.ck2C(>Z ftcƭ`nQwڞCá%2;ï C"쳩Wcg+`A LɈ(뮙-ndxb8X͠$ÑЂQpBB3dŵD VU׋F5vʸLz`(~6Hc8ܠ:B?%Ekg^A A&Y"kkfl12*:޼j759)@Jid5`!"˃Ki0"ݾVM3f+N?J;[/q-8/|}"[p2 ? Ȩӥ(Jfl!ELcR!S7F1%EҪ쮮E!ws4 U - 2? &bAwGgR0Wh 2N|mg6}~ QIȵIxZ^iX1"8i,=sݴOj65x]l^H co@tfto!a['c#Xs񠬀!0CuaVxFaUYfyFpN8|]TZ9qX:Rnb: !~e0 3U~hZy3,-p4V%لQhPomU.٫ ՚z"TBU>MqB60Jbj7e 5'F ØFZ c}E uhel.;Hݽ}ywʢ?BH}Y[%NKFe{,.R4[81)҂ܻXvT2_K"@, _rz? C Y]Yt$++W/Iz|Vwvlfuu4.(C)dԑV.O?x6֥DR*40%lߺ/JS|h2&Dtm&c4:a=y豬ٗ9{Bʡ|5;[477m#eiyM67dqyW@0ώ}s!Qq Ҩ'3fN, ϞHu)Ͼ|JS2ٗ%5WJRo4)˛}G6R3N E#̋./_5q:ˋSsR{HҔj}t]S*z2i]J}$ WW\׈$O)o6> Y. ]=Kf?ã35JLKX 0" PN1C]qaE+hȃ0OIV5fd2iFD.@(sjuCԍ3#ġN)꙱XuIQ+g:1ܧj:[C+;eV/dm,{X,Y.&9}l&UEq49dQb XB\_QϜCfL Cп~ %emwNʛg}ks'p2,kP] 7d|QpnlTmsWxI(}Gwֳь7VAw@O\s-W&W{f5BG2Iǀ#`C{]53.qL>ݳ$UD4>jE qNא)ᾥ@)ΡFM됺}0$[_D"8{9cR lc*OS;%{nx"%mn,^W1CݠX) FL5~108ȐO4^R,"ʲ\TJlc7\d3Ét E:CQZt&p]5 s 12Iǥ4\DlkĦFshf yEz,Afc#zi R=}t>!UBk(Je^NhN1cQӛRM$B =eB9ORYY^F{M**jkr!M1Q)D3j+ȗ juYv c#C9=g@H;AF7%Pa4|(.# :D F}/s7N;Q Lf@d4=uR6J"Q2Ko t 鈍#^Dn~$ޒ]9;/_ʓ?ãCnqصlr/>jܻ兔+e6W\om>Rnߺ-vN( 5'PaPS:kti(5OiY2xp-XBE6~:y-ǯ޾\ ^(~!^>j$OzףW45MxRoy^dmmK** !Kc)72`YK <@9>~(Dߺ#~uDv#f!jĹ!ryGn?Ks"w)ʢ\2$CAdrѓnٹq5G8.Y>t{NAvW|+PM|" eYڝ2F\P?B*:[! í+1O^)Ju Q2 _kt?N^cqٖiִc)/YYLL捝g{E-Ф8*`DiFA.eN'XXU<5>t͊-=T Y\$''i.kT]ge$3q,+tN&T^+48B߮d>ue!3q\ ÚXf}ϢB˽sR^V/(ɌJd\ĭ˛ IΙR3 l\܈JhئV.rHNu;b?pCAgZZ=f<ء nu~yD2eeqY|b-Ben4 jPHX,eieW\n,-GŚOP:[w%1n#RkCt4D&L6|TI <;>$lo@/ *i/I&M`^ԑ9ѕx"v.xA*LS5֮PH"GGGV_JONϲ(ݓc~VPK<`+ep 8C'`_jR9yE_,UIDžDZ[] 0tҌ ѿ_=iZ&B j%>B)1uJcH?7Eҙk9|tm  ^4N_ޯmW/dskCnZ:; aKȆus!:),0\7|'.R]^z)}SӴNQܹܽN&Cf&ބWxh azRei]]P[=LZVז,M4 PX .4YǽvļXeҊv^EKixFp׺s4kpg?bOɻ?<=$M X!qmeÇFm[l (MxmihI-Pc&xK47ĚѰ|R׭5`% (nm 2G, hkMV8sjR0M<F~?da99Igd `hBӻjejywFK}˵My~b :/=OQu!6'J 9dZUiJ!V/I̴BL1:Mlߢ#3ӂQ$Nq-V/xNTN'81wGt9cN'M$u~TQ1<m^4̨y@NR-.0tnɎ$QcI ءwyCPeZM ѝ^*6Df6S) T`&ӣ:]De7QdbS6͟m_F8Ė\`XB7,6ʍ|5(EހY)8Ħ5I=9Vf߮vn1`c+]"k*So8}jЄW6HyGng%J#TsF9Ǩ0+~ҵ&J Eȿ?GLːٿ#.W2r޾淿泏"٫QkkrD;rvz"7!x4|iuwL"sa6/_n}m/Uew|Wr]B=AQFFNNZԝ../J%^&2(haRUd86߽n[IqJEVyM2ڭD Y"0I%Yw鴞ӥBY0o2˂ 8>:uy]F|ՅE s2a(eK8bkjIMG_ޫɲ+K7 *Ph\wI 9#I^$ =(B'*H=P 3Dx4P@yܼXZ܋rv+7"P̛Zs~\GCCVR$jC2YmnqW5aY( i_t+fzYbMPU31"\:{cm9ӄʟYMC "9R{@>ainaYFi6CZJpJmkP҆Kp#k.՚~5LHƦ ѳMh֊h?6qѤ]?}0 -vUVYH3u|B3GˆQ!ֹ:a|f4}ͦ]?Bƹ٨Ȋއf(0ɘ?jLT\u1v MJ,JS-@mlr-r66-V#Z}w" 1,/Y /b|1YDRGDu2*P<ؒUִah?7WrwF,Z^.jeckHV7ۆNW\{Op9֘zrYxpn┆'/x5 bTb`HICn\F!Qj"C#y[n4;*,l,Z:#vqr|aGJ )pNz9xKs.?srFcٽ~֗h{oݍoݾZsG?fdYQg|Pollcc xk<[€#dmzg%hQ FHG@Pe\V74`oo+k|-,,t}DiT-\}>4^{q-d k)u[DZl)qؠtt|3$ڒ/ZP9J(r24j_&x  + ٬oP\ j\ɨ qj,2ͨ'̜sZ\ΩE)YQ[1(r*aM4VRK~DܹNTTgB ǔ%3nxRJiao/MT 56X@7`F. ӭk#£oҙ`œɹwG0 %4ywcP2G'R=5h48* ޡ J"̱4 zxK@g!9SvV+2()ϞU^oZct04mhxz9>>QMf:}.ǟg_?4*9D^eijjßw@DbGHGZ!M԰L/CjӍAܣ-, H2̴0Gr8 ̂Tu <=fezW?Vy,٤ ff]$\Q>)Fn(nI2TB/jxplh8>TcWRGf6qmE7ќE_UeT@ X=xMX15-S1Et,qC#&HV yjorF#1vE>Rny$:1+i֒p%(Myq{CDCOͲ dXx#24BrLplpj[s_̃ހ3Ҡ˔p)8JRt|&!L[m[Z7NL=]JS]CEn9m.lE|Ph(Tilj.p:BJmXQY3T RdeZK3*A;MLG?153{ws_vw4j]YI6Oڵ O+Tde(Б)h-Nyue{V*4HD81&q y.CwD}luawo}K`~VO>@I_]g~aMю0y`Fg*w7x3\xC˧V /,,wg_m6"4ǝMwwFdѨH~na~a_𞝙qgnݹV*676+7pu*p*EDÐLRu`Q)zq>#%xTaeDG>OH elHu/eX;oi&8TAԆmUp k"Q)^i;fS(%^2UޢNX"Y'\_%0,4p:X)ީ4 ^Q4E`ͯXzD84:Wс+Z_"zㆅEŏ4ZNe8slrE|`":53n78LGil(eQP6Y(`6t5y^^Iġ۴8ړjaƄJΧ|bƍghM+2c(nEÒE9orfb*`X(ˆg3ÌT%t W@X%z}l,*]*C\-{jRujtD56 hd5; )O#ع+cS\41($np|uXΏ0ud$=Z:{]IUMb'2ǀ^iSͨz.,(F_ dc&1;f/> a$ ZiB5Q:iHT^ V%9r G;ѱ]Gjdh"sBOcۙQWΎh.FzSgeɇ*HI_n:Hz9,8d#4{m) ?Y篢d箽Fԟc% Hsu) 9I,!`Q#%F:kV˂)H ڈUkZasR uI#Z.E(HŘ'NIZRHHRʾtUmqmE^Q^kLc "RE$8u%J{o'W*;.׻aD^:ˮZF iYFqPp}/_3xd2?z5rEE3t'H$QQ`YtSm=^?F"QRJ+Ϡs<|x0CtOxg :lԨ7paHբ"痬CQrL9 ,% N 9<}|V&n2>xT#Z& ;z\M xzov\3Jve61&5Ά'S6{œ8i,̲,RBZ3 LEڧPlq6^h$Q|=F^v,\lq̹!VR y)0 TX>QQP[7x]ѻDLVp4ڳ󼦳( V 4ް>n!h%/oyK0)RdNӪEA4}yԔ(/:T1:gQQNҦϧCusjnñsKpC,sTjIZ$ cdj> r7]WF ! 9y֠8;AI#v4re3V3X%:Fjň!ύI q)jkN@0NhM~Uulp9i;R"RѨO>{-:y#,̔΋ pIسzvWL${H./U8@I. E%ukuɗiZCmbgb6*6+ HԦ8zvL`I&hdoj#^A}-WlP m!%+Yp"99T {cXMHH409Yc-c'9S-w >R%E?^y5w)Cs#!p^2Ku&%"ih-l7FіI^EaR8e[աR m Lh NuU%po ,Q2jDC 5W&f:@D?52Yq9$}j ݹR=8ixj7"yJdOҜ;3ήΪ PmMOgp34]GCEB@N!flJ)\~lm>f 'Gvsw>gQkIk#A[>#^6lts n߾KӬ?penhsEZbm"Ftͳ6M,$Yťez=Х=<ǐr)N^nf9,U Xi=37?^YGG)5"S-$XaT:r~$2>3gu5mͩitX9'_!t/gI0Um[K5ev7ˬ+ QVW渖TN=Ffd2qPR1s*L:qqMDB Դ̐T+U7Y82b6zD1_B՘I\#->7||mPj\emȽ;&=:%2(JDFD EeZ689sUN3 9Db6aP;'/J`o\̉e%wdcu x%G%Y2MeZo#B84s»ykA,ǩH;6R_/:LQ׋:U1B8ˬU3%#bFܹ`|Z7*#,3c:ceC!gK-ߟ5 E FL^'[jU+^d<:H(!ԛلw0PE/0LJ Gc?ѠL NΒFBɉ77 bUkrB0dY~ZYXǁ䎒:&ա*Sz483++)hi4ب*42K"Ҽ UWn/3"Eߜ0o|] c0;~hѢ#n;[hD9E(ٳkl~wH]=O>d|[aueܸADsaa 7?ŏc6goGMBZل&>#"Z(^k{xÝǨb4 X\I(J@URŕsxd9*D%ۯst>^`CݽC\ #N{VW0[hjS5*;:LJX^^@1;XXZW_|Zs va1@"FPeh65Q]c{wRpfRQ?Hq4S8g^aU2L3D(ѰfEtI~;9&twaL Yַ;OY%i9>M[tG1b&Ns ДfH $,GM #UQR[m/ E^Csw|q)3*l(W_BGM`*=s1AsѩF+5=Z`y6.!A6QD>\DYW(6 ^c* n5W>-iK;D\XQfywguAZfȚD3D ,t,1c2*>w %{@RgXxjc╊Zh.oL.4!*,42ͫ6{fe#^ړvs~pY`5 O];d{[]([G|trcMapErL0?D{]Qk U|Ԩꩴا#X^`jznlse{T5,}N܆?lR-C`%M"/J],TDUg#2x?ġPGaЁ+^+͹eQMb WoU(keefF62gZ%{S'4s.^׷{2yrrťE,- "K0=Ǽ[1$kO8$ &4qJdZe87LH8}<w^`7^}M)LܹtȽUUcte@.$AgBkՃZ@:lVXf+,x̢4GRU&rQ| xg۰-j'ɹY*>Or@tM4ҿ [g{ȼk̜T*AeLGR>?򬾞OوP\1m OJ鼱 {-`6M>>/3ml}8qJgH9N?se- vs+2fVBlT&žxsr5`dbi>m%X\;x lZM uU  a֔ӳl19di{ǘ[Eq/yŗ&HcŽtvшD ~h>ɮ8ƐXk/ ){'=5=m Wcyܻ+wњ^Fޠ>?FܬD㠎c3Xzk+w;V kQ)ݎ)GJeJq }YjF>D :gdZu #ETÜn}wjEB`lRh%Ea EkH3:69ZZTXH 3vVM,SdF4j&B=b:AYc&9ԀυtkHY)MQzBjYy(d`Q_ ]&Ƴoh8E_bYgLDeƆL^RTƶx'`MFT`D*}̄R]z{?V}#gU&S 6T^,o#0}5Bk1磩P:hGLTu@N(NՁ lC o =I<[ѫ21;hLD9p2t/e<ÐqCк!*T5мDӼ(,Yfс} 7Tc&w$06SQ}Y7FZӮ9򻪵~;ۯ3yzd9g 0s.1†<6*FwzWBdC2R}W*W`9Rd}hMCSwRl2si01i3ғaUg8E$h $ӇIJl\=l[rXݸi5vd#0M&Dv 1-~*ZW3J49LE^exAVsuMDYðbs7Pk)"qًbTÊ}B| L5>G8ԠVÓX)0KђFW(‚G6!&FOG \,ad'ı60]Bao9:E:q%.ES8F/˩]-JӥaI gtP)6XaIhf[ H)9D\-bdFMLÈhEpB7]1%4llRr~Fq 67iy>};;;s6btmjw.ѝV ^8l >orÖWYg=[{6gf4.c G9F^#p2z[4S>bqV^9?~=zE΢;cx?{m!=b.M4)d ~郞)MϾU'DQٽ'\>,- Ԣ }̈LLLI>wgO)٨!Ƙ^!nc{gCzfxk≐ Tk`Ӧ?035~-tD#smv;$QCM%&GΑ!O4R=9G5^ɣ{4Zmwz(r{Qck.7Mq*x8ms =f}03ʼn7fT1M 17zua90wn,(s6Yi3I:,Y' IDATF,,S q`Z"O:jda^:<N(eD k8AڀZ &̝trscXpIcNI "&yH&4I!ibi$WƨLMi(MTRj CR4/2*lfU+!y4fC)P^"jT.w6 r!1(Q8N,V16AAunqn=.I&J@G9YM[!fWAE.:qrh,̣it ߾rYl9Z0+TZjz*fR_ &' Դ|ehZd:}᫊olpɐͥ'k! ˫^ ArG#M#}nS]9F3*?$[ytT*#Q5W`VsVCֶ!@uJ7 ,%MB ZƬ[7X\m|A]\%ǵ4d(Q=Uo5A. ѣH 0N0tͽd7%Ch0HiQAvz#ul֫\AGwAEEP9qM.8:&\T\#$0,n2_?v _~)l?K׮y4nU?!:7_å]ܼ5.?</%_@dV_"eq/2;jdZD/yz!sa*ס@!g0p}Z{uSӨUZP_G=>3X;DOÙxc"."qvn c`GIlt,V={y8{fhJ(J+nq:;'No|wg[jUY6fZ:)4ƓZ)^*;M 7& ][9^z; p˘T OZ y9U 9G3q|Դ yKkZ\٤d(B1c{kEu6Qh"S`qDв\j.4TO=(3k͖\9M[#lo}F࣢|"f?0h1 MGkM"UiD$q-cz[gj4Efk Fb"(E]P{ҸNE ͊f:CNV9V[Գf?[  *,$^Y^5s7NWFU95Ht#EI$NIJLc]a~q4¨"ذC/Kt`ɵb@ {{޽Μ/_Gy'\\LEOy=ܸ .>aAB/)TZ]E.M{͊*ˀHdDbVSq <{o|Mmc5*Sg!xūq6VxW1ժӏGPz7pzmkxs6bjT l䘝%XQ9ןscfa7q25|_ObLsC\|D(礗_$ o/N2^;15:8U^ÃNC" s9D*EtN:DԣjV(KQV5gΚ"/{DH m CVXWȎ4S({i)=ʆ5hg͒5%gmI@r3q!hd;l'Fm0wd3w(e:gjl3H By`Hh(1rٳ~):kL)^͊²!i)Q/2XSBg2:C|IV8'e4tD6FN.̀(=B2)5_vݮ=1/eB;ꊱ7(vGY>*,Aiu2%;V2T+f Gʴt&7J4py= n~yH1`LX͐!j SIRF?8`^bF6]!vcJc0;7m=^C9}԰'4E_x'ʙ9?3lnmsth_^(Y~rh[c۴)IRhg]xbV>{hK v{˔ۯ>WMenHX jԵOeJ]æP鿑6##~S+I.'ԵjӓQFhCAº.U)Yne O4i4sNC`ܼJ ґSGYȌ(aDښSK!hv\,R'Ψ2n70g,@bY D/+SPH wOf@hՄK7P܅ qB:t;("V3Afzݼ<볳֚Lk ="/j4] HB:ĵumŐ+a0RZ3-7##J+}N딚 ׌1-"F*8ihH<*+ko)Գ3A6b`kk])bk{Ї9\qKw,"*#bGo?Z&߿}M<pY\v {{H&Up|mj 樻on}ϑ _78H=Nn|8ǫϭzDG:H4-:p&a) )ή-wX[>4U^+W^;0=`nmFWΣOpz4C,#K2jnE *+^ģGOh@SFCŅEtNT"8!rX̔"4y4Q6 Rec C̝~RA 9ƈkky -P ,s6kay,93ne~;y_ht seDJ #*s-Ԝ>CyfeW1WvZJ4`2&R{3u!Ӝ[(*ID# y~ߨ sn31NμD,gpĀC=z$ j߯H>Pxʫ%%{2@01Yswu ǜd0$DZdKNļPyf5L u311:1 3Q#B#a4o\Z˙J!8͗0:}s. xĹ{ IeC{A%Js/ʆ90ݳ25أ'[p,k]"Pi _rrp(qlKc23C&4-l|癶UNx A4 !_5rXku$ ~"3ǁ+ijU!CDcwb&_bXَ =?Η\,;EIu-9ոh4=]7ISw FU(jKp"M[$&8!zJcN@ gTk ipX# a7O kNl4iqmhN7#Ejsv,FZ_78Ӑ S ut;5gFQFɼ'!:b~\ls &;<\IT_>Ί(~Wqy팚wr3RQ04M 'Y9xF!i7Kѥ(h:q4g'$#Iu*r6:3ԓ<[)YXf i`R%+8{)ʒ9uNLShFc3fVDضȱL31ꌘ^Ɔ\n4wt5j^&UAx3$jSU@R +I&qN!W =92:( Tj ҃b_jnNFT'95I,X88#$OXɂ*Er[e:(3',EZܦ.ZZkHvhIQTQ%dePyIKw=nYGP㪸A#$> N.NOcufӕ*NF= Bn#+U.X]3󨋙`͡ݬ˸hf|nw3BDSX uH(NљAHFQwN{ˎ wqsh8:6LLENӷ39`hatDK_yx>43imMogY (uAFj@,q<Ŏ7D59 IDATe&3p@4xI!,1yQʜȚ#lxEQI]GM3gyTn"S^=[Z$w6~t[6=)F :[,s*z#R\6V&V/] WGj, tc<$T:iU>NgE#> B{|>.>LDͥ\\pyj0 /pr G8̥jUDJ:iB7)ͥI! i4*ᄭ}!ԿʿULzyNXA -td3tK3ߞ!:HO>AP~(WIQXhQg{8$7ޜҚrm"龩(ST̲dT'"3=J)MG~#GYr11U}OK8˗.ФHܿ3^e{_!&J]~TtϿwc,l`oF7O9c] ɵfqqs3<C=TI-P:jJS Jq!n֍ZOztCβ!OpE aF033s_wz b0u&s]EEMd!N-•Wװv^SNZ?}˗ v7yoɺ237ZF#S6pY! zi)/_d4O<Tr쿪&pWqPE |.`o1#"N1=BfiIQcS߬ȆFo?)6A9Bh|Ƃ.*( ]\Ɗ8Ckfnkſ,b('M6N_tѬ: QW@>DVH 9\,,lY4'݂6aWh3rܨ.MU5ÕF@],7b;WZў!М &fSP;]Mr*D"gXk"ˍs"tD29He:5r Q9 {c]Yl ‰H0726Qɢ !v 4 ?zJ>&/9˿gi&vQx櫚=o (1_~!Y,VE(éR%!o^^| U #ʁA81"nHR8h6%C|:95<ޓی͠PRsEY4Hrv)Nۥ)|eTDOpBrodJOQg2܏!V }Yjb5Tb~DAI 8i;FGĘ;Wb}cCЅ>+FEq)M&Ht1p)+@I(O1Sͭ~)|F&f, FNDh9 ,bQqoջN>r[بzyunŠwFCt%G:hKS-,B.x>JrR.&ѪU- Luqx8L!GH>bFsDuyH.=JPSe@;EMHPR41k6ǻ=_$'!: 3:$*9 KX^>Et=9wn~k|EDujf fw>@Qǵ ̐",.?#J-M61KK6B78Ȱv{0=J?Dx4D45|S3('RTcЈY4I/=O6&>3Ī;ApU;;x5oVobeu7 MNweWv'|˹ h4if0!)Eʒ߀rl-D@ ts5,.?KXYGnvzXX>]!va<`oGY x8@h'X]lUʋ'GE;w,i80)?z ^Pa?!8s<~_!BnÇyA*dѐWa!D"5 WetzIl*(}sS`&1ԜEbܒ.xH'm\Sd2$uzε֪)ř:LF:ɒ'T.b5Ue CXctc .Iޤ'Bx"O%7|Xf&ip:`nt۞DBYaZ++$u!v~&}iCɕ][yH2YCҤG4p.y>*A/JDT(R̢s]׎4МrmqjڞfCueǎ3*V#錨݇X]_4@i)=ڠHCG%Q43=!+epB_L $IFϐh2lꜘL1}7&YO6:wfLM(YtGYdoN6&8x6{nݗ@DmϡXjY'p.s@P7kGׁP=J 8 S8IR.(tQ}'0dF*qurrπ&G>qZ_ҺkNBz˯۰3=V(UiCSct,IےP.MvNise~/1-:n:B>Z~?IQϰfCf&; tz hΗ_aCV0ߑ|fh:q. _.)䎥{et)d5a˧OВBFg8$«=ġ6n/Icy/у=u$& Tɰ"&f!v@PBș'|ɵF)*ew_Vd* Ɵ2$Jйy^faS&>m) {'yKlCT2Yhft FHPO I>k -(ИbD  ͌* J%jހ6A`Dhܼ9Ab egbFpӐm(5~Kٵ";) # H2ïW8Qi4PIhm&>s#IF0aT/t?AMT'V1ͨsuZ&p24:6_{x5~W%GD[*8>֥h[lD;fLr0?LJr,EPDՍ7괙\${Çr |Jv5N`~.Bwo{P)GrFztN,&6}IoXXXb|<Q/pH"y% aJm a@ܔ q&*P(T.7lKrKp||/9hͭ ,a78><}:6q9{f ;g#Ԋ*.͞WA\dQWp|hc8U>WvC <.cw?7TqӃB~P.H:!?j`e{O949-(Tgbh(e9&ڨ(gTqˎW" CF^)o$9*4bz"L+}Nq<+ #*CթW7/AT\oJR\.kF)hE,DxY)T&ϽMɪtts D41"l4K͋ dMsVVeZg¥&RstW &}L5 $5O6|pMjrՊeJH5Ŵiƞz>tHlNm|_"9%S/9ٌ2n2{#?B?OUzoNɺ[m<5yA3♢eiinw $gEH*׈=(;m]32[3m)^ag̟CC2ߔ@k1eCbi=?w&ΙZh^x<@'Sc\{؁orߐ:cFcM/ag]I~5I7F0cqyRZ#m<1MޤWqZ9N!( uzH4P4 {@bѲHXs]n>|W(.l^`jD'aD\7}c[OBNc6tk8k5P'c):Lx1_gIno\ A!1t&4#WbSa, *YDSNBqp8&U(T(9q iH@A߮`mV`eّBDU-NR}T f<ٿ[~شfff,HZ;<K|_co!.nmWq%6B#W_}}6\ݾ{/̰s?ϝ;ϓ~Se,KHOk ZCD$"53b?FY' >ǘ]eh<Ξrmܻb*U*U֍sx `s#1nXbe9Ji5ccm#ŀ h$!Y\Y 6_a)*<g1ossU=n'X}sl3n^xݽxtyƔ눽J)lj!wNv8;Xaviq/3UUI\`ӽٹv&(ʸu+ >Ĉ>81e4)e PXδѣ.i,\şWv7(M7(Nܘό@pOwyH^vϽngf#Ff(Ǝjb~9L7gC^B 85VhGA;;żvOuOOzrlSU/~Sk峗VprxFrܔ;Wb#2fVÌCnwhvF=J&#q}..Érʃ=W+ACp/`V @ùLTO k q$ t}nݣc,puDo=t4؆'۔x|_%2{#&uc CAxr S]}FAH"M4kKmq6370:$jn!kH -Q,{ٙ7l/ UDsbRqHNQxÏp>?w;{]5NeT`܎#YYX@T1ݾPK.ԊAF k:QQgxs8 (.-,ǧ/0r)g2^zhEU}Av&Jxe b@rZ8:+ Bě~d}>m>yuR{asg9s++0 \^o%FhSIbV\I(y9U0Qal(uLzxjEFGd:..l]ŭK׿De Ł-cЧ<ႸVY B3)bɭ}bq9HK~tNw3 q<qaHFr #GfzL4m'bJet;m^[hY,e DegBC,H"|yv],*fFER<:iFR'Ba5Z/@4FsN@+ ٥FE$5I6Y_M 2Af҄*CSD* Y,3ZTyyQU^.yCaLVTC.)s]d@'rX}?Q3Ӕ/@Na]THd ;2yPW@ф:*+uO,KV*E8]GMZ~R*O]Yg  `@_Oh7mIv UF)WTL4Ι IDATe  Lh㡿{Ϡ+}Fxpz\Ň ADYOy6i$9 sFs"ӄ -,ĪaQ=QN4$qglr`e%"G`l^Oɳ gmrS6ȟZ \V2[qZfST7Y7!@6'6 g5q>̅z1BPOfdvAO[,r }SJ9T)V,HqvcFsaiX1t 1ШS h%plGT* 632ߢX>~Ëh[PC.fҬ;D衹6end^Dvۈ2.]'V65Ze\WW_\`aai7o~:=/62ϮZk6z 6& r{wBRETfw* !>A!,/T[BP,𴉹Y&3SYEywnia`r=bhcc? 4 Kg<9>>UFvv9@5G蟍3ClჵU.F7.xow:?wD2pQv+΢?gM`>$wW3+ؙ*o Ԁce- &Wf*h&ѐ #[Z\@TK[lܿwuۯ_շ71tѶ z >I۳gOШQ&3@KL~+gr gbfVO!t/a23 ~K8=gRS^Ј WǙk`aa[y65s4ڌj3j47Q9M{쨩20L4˰Go^娭k4]YU +VM,X7t`:T}C74t8xN<2T1x#"R>qhqjJwWy`qFNK?@0.2k+Sݐ:CL_=4Jeh0#C49<:S P.\ܧw;ͫCCkj"'αqlਿc.4d iȘN 5 qnP7- (%2OxvrM.6!nTI[Xbn stO7.Ν9poZU2Ao x#.50peGxU"s c)) Mqzo%<|ˋv{gwoczŪe^{̍{?b.ܺ9& GU;=^݁ gO)ꌞu>{89>6>PQn*p9g5lQ+[{&Mt ~ܸ+3(WxgaK 8RCaP &V96#BPH?,3̒7vI^ThOfST𝜴PC;!*<Cg\1eQwKVyjds6P]~Uj؋҄=UXͺXDcje-S#LmJT+CukC?O22L&WpCgvmj F.xDoaM] A>KL^DmH~_F|;0GL4JI ]-II7UHĉ˻pBQӀN5)SVrZIG9'8% ݇QV}v/?j4k;X;Naq(,qrh<.7N*1[i[a E(ՀdnGe柙٠9&}hL >#,/pJ4ACeގ'{44ɣ'|-X4aцA N,Ƅ1Inxq^>f과9W !ꄔO1[^,f3 -@[͑J'A.\$sʴ6 ZƩEo^>֞Z)䵀2xm] AYmze= C[89T'L IZ!qژ:YQ 9R,1aN'SjDAu=6_gP$qtk hh2$5BϨm,5P\QB.b^ E Nѕ'(ST\~ N2i>}Fe4ũejc3A.]PɣdDYkcuFոɃɚԦfl3k)L dSɔ;OџdJl̃Ӳ9R(9 Stʍχ&u T];0Jsڶ,,(3NbzR$ ˏcַ$ |7I:$ߋk9xly}wE^wg~uvg y-5O^ nhACiKԍstm"bQnP>ZjsG48 X_EF'caaݾ5œqkS4G}PFd FDžC>Ve)* !N} >Z+|_C:0LJtԙF Z*dcz$p6[[Ge,W`OO.\Qi%1 Z'Q=4R. );AIAgk.RA^'RF1N.J '|;^3%OԩvA| +8991J.]:WB{[0k8N1S1Zc|{h7O1wf;0󐌎jO?0jېTf2⭷.bgI<`vBasK,/ns*9Jtq}JB Iq)2l_߻˃!"%ExV;ɧX籿c=^iڼj"5Ė(X9jJQ9 T$һs53өqhl4eLRI2-7#9ӬZ;Zk4pAq*|D/:B%#L ӂ Ͻ#FR0Gu~)$Q 5 pPK+R .7U`*&Ǖ+sXsTmcC=3'$xδd5bJ{LԀGLn،r)SqUhHzi҃C/E.n$NoGtco56B,S+qnPljʪ=)=YB(CL(Or5F]޿|/+ +blCoUM]yT7Y, eŢc/YCAPcic|ی5J;'mj䛔(Nb 2*]Z\B瑮uɖѺҎ3 TX|^=OlI0Y}yd#/g%NӘ??$[+~l ?ucUY2c=j3@4Qp Թ9 D\;B?3XRCREx(:"Nde~$*}]vhkbS7RL._<~hlMJa ]`LdHI1B%q.Zd a^&JBqoB]R/ 54 e(:ˆ$E$GFc-x~ x^{On|ę'Ui_8*#n>.w) E.P"JpQpnB&*KHF4SNaE5 N,/dN~dB LF0R..aEZDhhZV~ڻGf&*ffx>>:<|@v^ {;oFkK{TdŤ r/nf3u@Q$VrcqkG &u32>f2t{o07/9&CQkYoooq1G4A\a"LZF{nj2­_ 07L^i?i@K>n&tNݛtG,..EJQj6YK Y>rΨ'mz^gΟEF:j 9on]ef;{~;/^beQR-p2bj8}zPVa']Fv.֫R4B}NypH_ęEC%*n`xxBjj`'5\UW4LSZHdzآXENi0iyc"퉮" BiREZ |;L%c56B6c2<(AέVX8%~!91p=ˑux*mi+;^6܂]gՕX 7~f$kY!oZ&tM j \8̍=\z$߬yNޣƄю])`*1?U'}5S@输sDd1I{4䔯(­CoW *QPY?&4%J;2#(/&Z6sWsv(4bő-Y)۞"G[8ϗ>dF`a| )2R5$Tt IDAT iFRʶe-l4aDQ%"'b$Z_ <FĚ,d0!.9G14"3f3j~BhI9ہFnaz>(cn󪴞]E?-J1I5mk6xqWBi=yNg"*9h.gKOZf&;NHP!Z2BM*wpc6+x&RÃ*F*NukG+gͰe$ShOiXPy2H[[+!8E)Hس#D!S՘&āaj'Gԋ>Jv#2R4rƨ]B{{%*+\pyT7eNa5=6M2}Mk*,C qTtY|*VC#EMpR-D}v}ͳs׿L ! I.!G[L'*G?`%28nѨzgFċOsO /^᭫paaE1?? ƣ ._w_h'8=9 Gf9gan .c1vp&|*2v_|a4Z4V$y!rՆא[vk)lagłT첣I>gc\غ?A4rBk7%Z3ss>s=2O`v Ϋ(gf0m$cAd$GZ<U7LBm _{XN԰Ӿ Fȫ/lT E?υ0ْO]mz Lת!OߥrM&+HFhVԡu&#/nBX`CV1܎-MOQ#n^ybHoQmҾrtF%Gt/qBQul8; RR*Hb]EY'8< B'؝!2Y, :?ӟ>C5 Zq5EAu/[5:xÈPnhg|ƽ6Ӏ6"YHz2Jx!ݿ5b7?g; 8\BL!; ˁ!~cqa++K~ ~O?[?Se*T9^gTvvv<Og'_tI٨8ffy{jx1I4.SWpawY;>X]]c 0pȆd=L|o$h?G2)`gV ?< E=~tŅ %,/a4Q,,T~3 (hH4bJa[RiÓw4$~c}Q3*¨I 8'ۈ$0v,56ŸE JF$58skFTȪlis$yγ~*h״W1H"US9zLj]=䚌l͛OҬ)L)4&j5YD 7(fI)c }zkȒTuwd:a 4r+\"[GJwf>ɚ3!bj#\ҥ=yˢ24!)|Yut5@ݦ9=hP3FL LY7B/MYkKYkKzr<Tf+(Ku{zI6`ISgm YM!~儢ͅ҈;}b5әLB0D:vG%.gF7z6>ǘm0}Ƞ5{Nf$vA׃X%@Rc,OsiuDot"BG23ǩs3󡘧q[D)Odp;SWk?ȋLf׆4 ʂfh#:+hbϳSCO?S+S"pxD5.*G]AQk2=q妕܉S ;s&7rc=؇^i&~P$S;N1h51 OZ)pH3EAKrԧPF5%/Q.)ytyX/mk% P%zTA´9 1:E`mM&%i5mH4E#*/-BG*f&{)J5Z-ҕqW{HMH?g("BS@hꘄ l4F1ZAa4FN ƫu,-̡78͵Ҥ JnKDCL= Wm6 bJ)#\[<+=d1h>q.GZlJo_Mj@ ~ʠ>B v)?)>CncnMX^^^.άΰ$3H%Vqms wn:gvMW\d-b<l#-9'%hp̐!YJ `e >ɏISS<>nbCr/KCh"ۊ"]X9BE-IoL|h":71p]) ԃBdE#RL=esD$1dZg͚;y]|c95:T#)8Qj3؊Ukf2gp=XDJv}Sitq",B͍[yjۮ u﹎뮏$Rhi͵cդN;UV0T+) añ%#؎, jn`!&+HG^ (FtHmr NM!t0,VߛJu<9`O~ofv%Q./o~JHPD˞zH|&LϮ)hjMhǡȬ~е1>&QRR1 r9Km<Tt5%qcq{jG 5]W 'B͌ ɓ.x(DYPwy[rZ||OwX'$U!-J 4g9gFGch *jɝbpxܘqӗQiWB׺FVRKgGN QX\pD~rgBNXR2`́XWqk"5?Bo)nz_GXqiN]kDhޫaE*S2%*K!.0R 'c8㨂e tCQF$zIbяRTMR(]rņ$^Blb5^/MP!E8d@@R4ݤsFz,ul#TqD,Ae"9J{'1^45ZngP(5P,H)<svNYGyrJ&DPR]4FvA3rH"C_-8imqFXbȮ+++SlW2a}6yCR>;Q\,jP=9|ӧOay5U*.\,{A-.6Ĩ$_3`Q„HBщ1R\ܼ3TYVŭ-^o޼~_ W/_,f|rbHMdN۷(Wwo|%vdUB -A޺.v^ }kpqcY<>+5ܻ V.C\owsv "@n6^gHk2}kE~f^(ӨuN֝¼r ~Gv\mDc{"a2;O]Y}Lj$1 98LP$/qjN_5i*垗x݁Mѡ6H>PT.P Ǩm rB9<0$516(@SmXiޑdMct)^)ڸX֑b522s.rD6+N4GowX+-v=qTZ P'hcTD5KV,Ԃ{GVq[ڧhwyaa⣱x om@Oh=qN5 ډN'Y7#tG8 p?GEƷL顁[&#x@\ڨY+Ek|llMb9v X T`t{=ܸqoO);~PqQvh5]w2쉓 fk5wkzZ (7 E_Fj4{W~gO{y Tnl?.]GqA>#l954o1?@%h/al !rh n?q:a/C{JELoC\1<&qjeW\P1`iq޾Օ3R St#.l=zwnb@4tdcQ:yx(-8yb ~)C3sY.н3lOaУ{#aJuo KRvvP-pLJhB?֮)LiU/LbqeֳJ3U=]{8oR'y+ҕj5"[c#nQΛdݰh]6۳*Wf qd Co|׳\'v@y1^15Qʲj?m>Mj&nB*^3OeH(p4eit*#eqC4t="9BkLF6 N8.7g2LȅXꮝ\t6ф _K1Pfdy=LT`is<)GFf\S5zgpYdhwmG[g[}\TSZ]kXpƈqߓ;7paE{0HLyMe~Mf0C,́lZ?&HNuTo%VNΘH<_GίWx´HO;F5܁c. CT8Z׵;ۼҔskW`EXA29kx _4`jF7t;^mf )AZ)gj#i5!0/iumxJK75=< 92k2&]YದU IDAT(XxٵD)6L_-=&G3ޤmhVL e2e%Õ4/_ȸqG>&~M 'UbcT(ǒg(:MQ'^kPF4`7dbbC"Z赙B}njwA=ZHJW mQ*.9TCEp'40CG qvhKxuDPs]dZ3n 5T6X((rlq|q E'I0H~=Oh.ePZF)eј +Ӹ0ظ,9ΊG9/׫UJ4m{8u0duYTA;;' :Kh4V07j}TSNA[ZDmnqd}81Ga&{ـcGf˦B訉yuvfa3r9H!84 Spcw5<?'dZ3|? Fp7pt!J*bVV8i}t:}6"]8ӳEi&=~ʺʐu#|?.ހWXnMnJo_x *::.o+\0= ŋP#*ok5 w^{{< XX>%$dW0GH}7rI݅zcn.l}n߾>ACŋ[/H*Jotm*lw<~*:Ξ9F NEt&Y?9vvQ*y8>dEXph*qZ+žgy7mnÙ9#Q%zBzsH Q 34-@S@ylXZM D(#@WUfenkUvR0a4Iu٨=c"!Oϰ5  wTD4]_#96K1(f4+t^YL}9C XdG4VaNP:dQ gMuw ɷ?LŘ4MbX_cԇgh9rQok⬮pF;|G,M_| .Nf;|5`Vi l>.}غiMc>U49Fc蚒3(>|3Mf@&e~}5%VH\lEr`A4]6X4+==GYql7/QyYL'9׎5rJݡÈFYE5/*2B_Y5c8,zѯEDe]DآA;vE_PF"clqVq|u v/qͲ֕#wicoqBU'HNJAtsCgI]Q[23"%;0~cP&7fHԆ6#XH3"JkOsf*jޔ`)i`S/Y%қZj-iI~ 1t(3Fwz17sWf\]#<.| %u4h4AgNhE4S 9t(lZkN8gYAQPJTI!7Wf[JXq򂦝'3 d@]DO$1͋bD:5jL}%hZ m! "rJb: ˝9#,$Zmݯ~E2Le#Ӿ*7)u'SsC3N瘑4>3hB,FQmytjӕ⚘{F) a3Mq8?qI84Fo*9i^,dzѨ+wmL'Ril rɀaV|Z@7D紋dy!n.GnVGkpV#|("K{L\%>H(;=TNS 9MS&(ڊ&:27q:95un>1 w 6KFDzG1XiL^&Oqzҡ K \rWO!t5b\O?CZck  3f{.~}Z?{xVWy> 0:|צ4 ~!}~)=} F ?qXX7:ZK 'ԩn^ۯ]y5ll\%\:W%ݪbarb&tc, D ׻N8=> , W&#Ȁo}"_z~ͥyɈC4~Npu5r~ڭu㈩4 kk-z-lln"&3Lqxx y=BS1 C} f&9բ[ [ⴤ#Z49f+gY36p}Y5^^=s jaE}fB驆3}"HNPg PO9wi&p6@MYQءkp ;4uQ) 5o/l~5h)Է!5jQ,w |&YQC3}ӊ8nlӃgX ȌSyΊE EґKl&&0V&ͣ&c_ L,-ܹ=t2vefקhhorѝѓCwu]v&X4I>"JqO,PyKE)y/6or蹙!du$s#w:-bY(2gmg#E'yff28ʜ!,D 4HJ_s9sHj}%kQSnh?8XVji:cB>.RӰz0¨r`DPhRR45r !k]05xFe!XP}ggwG{sF5yi$ +Qδln3jEȲ LlˋӬy3`.wMY` FQwEZZ8 "]4k^-GSv1*DHZ ׆m \VdfBH2HW,K ]j=>!x#!+QGB/ӄe)XBD-ݡ5\S&6Q,XBuפYg;ftg+eh>r0E7Ae) 4iJtՊIo5MB"3 jOI0f"i;sxm^Zΰ\K0eG* !ùcˉ7Eg8EWŭ+ .lzE\3?1 -AHhnڳtY`lX1&Viyߚ:Cޢi߿$u1BA賚̤d8@ջwe3[iF47"9" l/bc+xp 7?}<wţGO8:yjZY2!I,W њ__BQ]2]'}Bѕ?!=z8<أ^͋WXz<~zjs/b``niZ8t:O&CQ DJe9: i[sX^^E>$Ƨ'["sutC,,ɓG'#,,,q'#9jgzt6*'y^C;{#7p{?h<ΣÚi AXd:$%\zxfB "9P.Qd iu`}qh_U\r:h^r+^})+cFp$)]Ϩrڌ}f^EmhOsյܚĜO9b~WC EUw(M='ɋ9 .vij=343n/igV@_Ivruߟsof˘7*kD#9tfHFSvMJI-UzƱxE/}@Թ &-507t͇|`Ȩ\'/8;<;CCvZL?j+JX`v :Xf;k/h4KeN> Ý ՖSC gZQ9L*I׆P7'<ӂÐxY[e>SlM,Y'Qp]DUZSWtʽQ9 e v0!5_("mŴ|e e-%f#ː+p%N}OvvynFLcWE傎 ._U\z)nP.\;(}&e4r "Q<)TD0kHDe3.Vf3Ww R(y䥃Ҏө_HTgy-5GiG `#E>j^`:+ api翊?L&Z6K/ak롾Y^"NG#{{HMRh,}Y?@Ѥ^VRM".,(5R& 3BmApp y @ޞh?Q $Yh% gS oZ&ɂz@Ǿ~ J48̰\*GNjeVPČIƢ<62z&ܓQt@ vwoÅW+ N$/q'7AdjKlPw)ҫxH޸| d4;#G}Vh?_g#a>#bKss jp&aNwť%<7qE]e$.yO~4Siqs0)KT@""UNkTfZ(\^P͝oK^8_J9Ʀie'/3XhQs>!elSZC"374[(NGbxc=ۡڴug92}tT_G 6canQ>@5^g ak,Jc=B9MG]|Bs|΍1-A߃CC3QЯ ŴVF B/\6dMQO=h[ X EKNq ("!uH;^^ ٌQg3gr:[vn9`4gU^8I*NkZ^ QUYAQ;O4#6ڹpԆ@p]ݑ,ny$S-ʕ!;"^n3t}W4־4Avyvӽ<*(KN-?/pHnkJ^ z$x:PV 7Zk&ʸ8_T5Yf\56~IZpm}7zes'L.H[2h:>V67=DX3kð|݂k4fGVk9{nP°?c>1}9ٗP.]u 2m8Q]#.RĚ\[&PeXzòfQn|߂lFJ mOQ:*1 9;>CG &HU-! |!EzI-"j fjD'Va1WjfLdcޠ 0 OD*GQ[L<=`1V%RMc]c &(:k3A+hj詡02mwٽʽ*]ijEtk 3s%_Pfd,N;!;svO~:c毮n'?)NOOXiqi?cc2V1Vh2j7l:]2ք BaZ\s7p%\z w9f֨KT'ߢ==; <-XUټJ7^/_cYA:7x)&m?k^dݻp_|A!^^=\{uTksXX\52$$ #!U$&W??>7Z؋.RǓ Z .PO|tppBͷp8q2S}89>GN3:.η%#;'P1[n)Wlx/&j kf#1@jKWq^9tWV[{\#5mJ:;'^fG*02(!DEojaVfE3GJBi(U4r_s7)eINHL`)!4>$|RJ=YuV }(#׌8:pAm56MCaS8Ddp̈́} Q hY@z`JO&>4R@4.W]M>_/4ּhJ%(ҲϻP8NJ1,變f׉inM#k@pT.:LfVS0U5Z{cJ7wVW7ɊՒRXrM !ᎃXvnyݺ,^m; T C^RI7>y&H ^wE[f\iGbͽy6 k9c>|?EgFP(L:ǘ? 8@tv4N]1lAnX>3}/6mpO;t:_Q-F@q,](M/@/uW2gD_ϲEM5P!:Wh>9픨P\墚X^\bÁ:e6ͳtBvY}uBA)JKt΄i3^zi9ĩWYˣۊɴo^:bvp_hr*ܼ|vAsgg@=Qd8!Mba@5۞9j:0C" JЉp fGBhws)U)4Wܢsd(fM*juMqhj}dhИ=PD!Ir!LI -<&͈N:0rqU ojJp8R(\D&6Pw^lp IDATR"84<|x }f$Q}dJbCc:IJPa_** mڇ3 ufvSbН6kKk^Lqs} FLL9lfuAbv1ISZo9 ]#6B~]8c'):6̘v[_ǧ^P6i{ N3'gg6 6FԱyRxXHò8K"?/1ߪ҅ \Ma}}_~)iq%=Gԑn"'r)epzx2fTd Oaeqs&a2MِfՈ@KH)W0QRt (ɟ{E!)C=2vB+&CD. Bϥ[<UN]1M)x铧n«䪼¼ecI,m(m[ÕCZJ)/?I=tz{f3XWn)ĢJK49X̕tƒe!, 8{x"F6\~U<d(|Fe-tAbPF, #>J`Xggo->^X?.[Rه{OjӨ U8i.u ƌTu)WOmaee 9iZe:-M%d͹+5& gnRPTi-5ӳͮozVgp*3Y;rW4ö P륙5oZR~\FEP#2(:)SNMMV j5 ʡt4Q\oF(1>{bbQRc$0≯sAK$b.5VGVNe&V>qaPlhI450x)V6n2KTOX jq̤x01j*j9ENqV9˱v9etWT &چ#L`bnI3Wr0w9MM^C*Ϸpqa bBhDb{VU3x键\77nQ+6_8 :>z)EdŚs֟g<ƪ͖WcAtPjvX[ëoYیI?n>)D":C8<:$]s{nA]G!Y6 *7I!\Go3q]Zi\{:'~|%Tc|+p9'SCߧ#tΎ1G܎ꫂZ(q[C6a)N0gQo#āXl(h7!o^h2 %X9wEs{ќC<`oo2)V~jWA8HGqs9h\="] Ly/ɽ 9;J$Wֶ%wY>9 pk)&Ia^BS1nҦD! qJ¯TQ`QbEhN5SB>6ɜWG}F gR I,Ũ Vixd{uq6H4g܄K nZk,~'sk4) jVsfUȍ ڄjxe o鼎scwnv9Das;JQ<332Ccu\@p6ZDi1s3Ԥ", vVhؒ[5vbq(TӔM?،kgdx ʝg3L(417 3ꟇH*!m U}D^z8  FH<-B;:G]lX?'>B˱:B39EGO  q7<h0Kx1?B=c0J5Ɖ W˷? ݚQQM?$UucRE 1BsnY^"rpQ%KTQf/R#%sğjf<6qkΥ6vں '6HkhukURWtu+ihfZ%**ߴP9@WMeDu E/lƿECIg֥,Ѳ-{"M%qZҵwg-i̳B;:Ye(*4̧<u-5`N9V6cW8R33QU Ѧ=3p@v!(a MΕa R$eʢc] my_;DS¹ T"6iZ>Ӳ̖jψij!âLM,CKuMPޠ16IA#>yRٙj-pɚCcf(~Ҭ{eP"ץjpIh>=9Y  02BTjc))} ۼsDY%r=;Ѹw\$)bj4q` R3d%Xw+[du{=7TWU%0[*k>dtaBe#.:5C=}IyJ7dJ Oߢ+s(JniIfW8ѼƦJJͲ_"Gx*HI}p:1Wh:2̟:Jipx< ]\t2CRjAXWX_lyKR!Rf=kO,[+Oum܆9k<4lR=BD!Dx$֫!xPBJTmOpc'bvT̗ghK&ٔ4I 0JI[1G(n`slRg7/#ya _2eGPPY°/@;SL{S*.^;p؜`@7qs2ȓ1&s5K8d44_<@]hBNX (jH2Yu;xȽV"<{t ~* MӉL|GJx6SS{#ZML'c-,.ڵ[8=9b|OX*y$׹=l|oWwihKټb]`4}]f*˗.ac}Bo񳭭cgg/F޼'^ZZ5ǨV3xa8AX[_ɱq7v?h`!^ys4Zs珐{]!\GKs M\rpW,˿EHLOba&iFZWq}H=\p8wq9ԄLk7na4a8`֛ojQ`agxG?ï^(Dϝ[[j"A[#R cLFZsrsa<h-Y4x5N$9%Ҹ2ğR\Ujt4)4쌟ȃ.4m ()3^-I%m(w̸ +yȌ k;#$CG]0a2э6'N<Ɓ٥g|!23,Eh岙SgzY0rj)vQlA\;?o(7Bزl&5p ~Yn'9<7~/ *vVoIt"e@~b̸r&\|msP!D ]n){4Z˸Fftr~ $n_UԜhz:IjpJd~) מJ4'0.(rbcW8$zWZ˿"OIMV({ tn] ۼ%8'B,z8o纫GwEIqL'٩5vFb ߡԏ))/t.,(DS7kM"99&&:bxeos0mdCA8Tֽ?쨂(F} %ۯgN-d?gq< 0zڄg%>'&blQW%XnzEޫP&J RM1LԐJzCԣ E-PkTI]͆Sr"΅/0QVl>#bZ0-zY\&M p2N DI k&өOԊXmD8W5c)0p)S@Yq~qe5Yu`#(ohRC崄E Iʦ,SSyRεx|5-O(j4&xhmRŧ[8Qk B(2Q|"d:&E(rR4j$2 = ߟ*}`SRLo ?'dF%vt?̀s?sFtHO E3N'R:*WJd2kszkYmq_Y^ov ˫?[x4Ӌϣިx5WWÏ4|{r<VVYnkDE#.k8 k o_:+˱dwee?я#9njיWwk8::F͛7'_R?g8y뤴jBݸp >NκX]@W_+przy3zd&t}>_>xV:M BIGgXhw{ڕx{ uF[绻tq<@>͘{89>A5jnMOLbqXojm" ]ca7n'ٌOUfIb}FcMł C΍d5La"&qb#sH#]͘(2IB{ 뫁R3,OS:=ҭX5G(P<+%2iQ\:ڦ"Rͦ JHL XyZ޷LPNI)K학iUnȧkSmkCgI+Cċ:u3w:hv& d>+unPa$v}X;R_5vR*M+ĻMhi#wHe$lea;&zԽ$hv 8/ܴà4r[L8LXM*]<^@4/81An,Z+%ܹJ^|]<=|y.҆) IDATQ;;WpEܾuf_^p\r#^n1d1oaۻڔCY~@EXU4Ul\yBKLj6ϟc w(mhZXYY%l*d'4moױy [u#+~m[9ڹNZ5u^9|чxiū~X_:Opm6B?<0[O=˯W_[?Gxd|Dsyד1:'tuf{4?vecS61t"Li,ҽ{H&HituSCn)N)j_|8ji X#MDp-k$f;ϚPXeR̢Pt,&6,y$zؕwK,3K\ya g\\Wfe.5{^aw#$T]r^d17;,(Y\qf(%%J{uyyAr nLiZsj&}RpV̩^pN _5Qʉ"kI?(+Guy1`-;'AXYJFavEC~R(U9ϩӶFw}cɠS5h6,2H(Z:C/w}9$y2UJ: <qQ)kDFO?L fn>zF7WV;p 3 ͺg&Bcg=RUV> XeF2BtIᄭ]"H^PcPkOܺD_}D,y2[\h?EuB+ -745s$k"zesX)* Dn6>CCy)Ί^7+6\M&Rǎ>}{U44NJm4I`ec]̛.W< *7Z{]zd*q%pΐ=eAr#Os֞C"n霒;\`!ME8T=w {6u-D/ {WLLH 2^ȹJ~~VéD$9תB50ͮ,x9Pn2̬WY`ZǻHqT2$Oi @]iV+5Gtxe}cL1byu1]pYJ Y'_{%s!`$bN,E6)a>nn[b0dN]1Is Z9^Vv0Q;XS} Lf3'Ը ƅx61)uk03C\>Ev87jxQ}LS@U]|#AIKW<%5M 0pAm0' mceu''<})QkWϿ:i|>#_^z%p ssX_ }Mcoo޸'[[<)+g1!jA%̋DUb$}wqyyER=:l~mFH(Q?2'){GWkU\x҆}Y+h_zS=~F](~ը|qwL=zmf^|H=:9!B;2v~nhγm~a@H~~2y/yWIy[, pX[E={C60W#y]@| !hDgwQ>./qn.,ј=|[z4l> tHJU͍1a}m2b;,Fs'1mjkR\ QrhީJ dTa3'LͅJ c ڲDii/g(̼LϹ:ILm=Sfd΁+\kr`2z:@ѡ m tSJ*Ʈ30mbxKI'R A`"}hN ~H:h<+XLȕV f-&a)צ|Xy64a+>P!7tsj o珆nьd$n¨'?yq/8]r=_iv"s+8fp4!Z,5P8yGjQԢr͞7(L&EG%)XEH6,>ϧN)rT%b4RLt *~YqLDz!-t:F ZXMŴ)`ơMS5]%WҠL磒@ 5<K$MdSfA6she&Vâ4qݳ>vْ(;^~j PhF 8xd~سȧ"t uDbt)Jq#.1ufEXWk/fR[1~kkqGGcOcҿل{ UrvF{@{7_~G{{XZZ?@5ptv17פƶZgX\\Mxt7]vv)U G|G| Zsml^5$Ӊol^#V'8!*'';Ť-oXnWnCR|Ŝi0A:ݞtaa" %XrQE48xE,-.agoABO[ >ƣ>p||mىV!~ـbiFƓ1>+6gO1XYp9s<~]{p蠓9ӳYԭ˯^oq跲z~W1v?fß$!FU^@)L |SptPuNHƤ[}Y{OjDSmqxX1ecDskZ]s 5z^p{ƛޢ0ד _RAR,M @OHL2eV`l,ѹz3v+U/[QMH^4^*^QdŚgyjf~"}\+ 5eΟASc9ט u\i~1v"9P3TUKdnog-R/Q&RSd5 1\nmSPΪ5^1z5`p(46CPHɓ/`y|KH[4T Nlw) P?AQ:A4!bb%V9hHnc&P lh:TO7 :d@Pn:5V.- Ue+˫88>8OIoDFJ2>k뎐贚Mqݓɵ ^r`-h\#Hw9!=#/4ոXcF gF-yLp<5]UgmRedp9Wry*#ѹmSL+B1u"),R3Dgv88=ŋm&]9|O>B",ͣh`yyyp"-E1>G}7_MxKeb :߇ќoΣ?#&ym`yuJ!JS68:<KݺuKu)uo~}1'뛛|7_g x:B5 1׿5.^CLCRoO?>*a?`0Jq|rE<9=cᗿ%F>v{+/>sc%i6" |L qb%7w L͵yL zS7|י7 нl2&#TM94a)C%~_RBKJDcGo:UVEBaXce-PtlZRMM"dW8i+4+lO,3`ȰNVtZx~fșCM_MpPQIM88Sx^QZ A]Cd5N9yӌYF3u5eDr0rDZCCSCݢPmw>rd Bc Uɕh-QԨb֜PAprޑZi<%{G2i#ڱ^ B\#*rPϧ8Ỏe{;M @W 2%Fvf.&3D#q\hgHq%Cmj 1 s}<j QMģ1eQpȺo, [Jğ(2,|y͍4"J_K2Ӭ;!4N'1f=*7pgd& .I6e̜i,WcQXlrkL+ F6U䢹mqRDmmc3o.kj /cp|I\Xd=svμCr9IFRaȋJT}Ud7c<ڔ'j9S^^6֌rѤp\MĜ <'ը#8{ܑt&go3ɾٴ3MgVέ(͙O,y~& 'Z,3@n!V2݇RFFA>G@mgea\Psӗjq *cDu_hҁp8ĂdSN x"›js:ys&\2:KU :=^Y COOuateiu ј +xwM.@4..`:F8OcdҨ S5]i`+ 5P<)b&OhlLF#EZՖfC d\ YGG ^}%l=ffMucc6Γ[it~;?YҍkxK_vOmۿ%S4y]]?vb~p~*,hƫoX\mas2ۏI]ۚP| |,,n_h8fvã;?:`Bo+*)|wqnנ8wp`Rß{_dC^^*>J2܈r!UiGl `Lbj.a5Ҏ~'8Xv*BZ"[1Ne!6_cga$A`'{XYn70r݋G^65|Vcdqy~0#[]F^t%⨃.Ep} ' G.\qa.2-JDӌri⪔A)Je<D%3nn_0S8g n{C3ej(`p1Cf:Vwy\ Gը5 ~O%Oj[] \W֐:tڳ}V@řщciW=KZ6Q#Bn]|^skk^PͲ%rW¹DN/=QSU u5)ـH' ,7Z@ʺQX"ROו9=RO6ris*f9aU-JFy\IL5 G:W9/U즹mϝC^ӬI*]:4 G D#xr.5Z%-VmҸp3dL\rQиA da(K&tJ"5-P:Zjn$-W[Uiʍot&e}s,>[aMl>Cw(ѢrL ~dbw(S6ElΥVmZ2(X~G$ ih#DAabCC(LYHM2Y:͔H6dG)aLz iFMz@[l ɴ r)PI EA:{{hJiV4hE@h<ǹ }>D51B1 ]P |N2JKߨVWX`h+\V)D$AXiKqQUg^<̦֚ϻ$ rH)Dx57v!E;1O=ly+ㄧ\FVJ TQ,D',9~2*1rw<]S)MHQ6%kY–]HMOU'IY@w(%JAV=#2SȍzXZ^x4`ܕ],}u{<99t<\CwǣO(_GQǭoRϾ$~n~u: ;;zWM)Ӂi%H_LX$ɴ aYm4%6ٝ<9{_~pN gÐmnS/,aٕ{gc=Ο})Je\qo6.\BLطn~bc*׮۬KdZ3gP7Xq?y raׯ^׿uX'ꫯ># Nbܺq;=ox IDATKKV b_y$+8zqmg|=N-\q{lppo'2LL$r r&GaToV8y^z~^Jӓv`|6PMce#O69.Mn;\獻}^ n׭ŗWo]E ]B8PGn1܏1v.#>= i-y,R1ĉ̳u۪BiIB8x80tR ]W)dzN  NGd)C~D7z%UG >;Wr2L~EKX`+w{xe17e7RwN'N<…F75N #))/j@B"_H&j U3i1uQ+ۭ\|b꜔5aOc)? Hp7:ZTV)٣ c%bې|K0x$4 !qI 0)vh!ƠL/! ;,hZ!K|,Nն`aKVXufj+\C2#`}RlSyVG}IҬtaIp-[l@Ă$s@FzRWq8GkXZǏa>yýUC\8V;߹t {G򩧟2*" Ĺ%+?XtN:Elopsz.^x9jΞ=è$ۃٙ _Σn*o033>sh5p"H 趺]|{n1^xY_W|ޒ3tQXoqQd% Jq*iR¡cESϞny&^xE̢nŋ+1ܹ{.nS3S םp1\r5͛X[YŁhvpKK yđGq-NZ.ۇnNRc'ܥ(XdRmT‰tf汱7ԏ _{]i@\%9PRo-#J-i&`#k| C qMtUeh.39Z zѠ|-pwޑ N' Мݏt\PQ]+Q|`ءv\$vS,;Gc{ ݝz0ud|rYO֝0Vk\_gn )%BZT ff) d`g=, $sb IZ .Ci ;%J@GQ( i71Fy*N;VeSaU|)RǵBI_&Th*HgSxM> մ dO8ubo0(h-|pv[#6f#9c'O`meAXMk_%ҿ1h"}Oꪳo n7R!.NO&Wj w/\ !"&IX-&4FdCAi嫱2%L"vsw7RLؐ( Qz8EbX ȑEf=V9 &C݆R4E[$]JT8F}yoy^E{`ˢN,uI.qjN8ݺK e'$v^zԑZLVᩫ85;BhU4GȎ5I)]n|\U'<&Pdlj~)ʵbBGvvI`B0wcnK*ߕgЏ !$š#BQ&=ӓQJw7D~&߱^SkRB3TuN iBHxaQp׵Q jypw=DZ#u)AIjn>,-/2) nZAc%LU"'l_F;Hf0|9*jRN.{&2 Wז-d>f_S3 gYyVޤ#5ȠS.a73ڀ <5 s9$ƛ?+gOTS{)Wsw6ijazBy]d)L tw KE#ؠեnd2::&H6*yt3ɶ%ReDeBZrn62SH(7yLPb}9Uc񉜘TY sE 8Hs 4>66qi'Zv9> }L M "LS,(B"hްL{gT+yD%=/Ѯhs7]V7cv 5= [RP2Q-.ŋ<ȯ*pɧH>@ űܕ+(4",Y(!g0KF$L K5e]W8<=DA`)wZ=֖&ujjZ#kb@K^E~ ehp'$XưT&OPtpSD,DrP,ZlI1hU?`~&ٓ`]W-C M)`2:FtR=hP*#3ztM㘭3 >>v l۸re [=ޮck}1Q)!HzX_@@c۳ؘM:XZ~5@c-ō׀h AX[P,HFYRD PtE7a2mqŷhXL )&5k !/pRLx!^f;#^/HJ:ixϹkwcem'8ؾ)\S>s3OyP-W./RO .)Jvgل95&P.s/xCl̩Sxc6qyjb IK.uɆacc |{X^YfTC "qsmU4/`{?:{+˘/~w;KhEܾyap޼rAࠔ௯Tkwo߹3537 o>-X57czz66Ytgr'MT٤/Asg&ܐbiʜLL_ 2IT a:fJ JXZ =kx I̞"@"%.eG$a. I-1f s@+؏D>WR>w%ܸel'omx +?)4zO8__E?F0ݭ+.b'hxR<E J3Es!$T԰ƙj7ؿ-p`wpx-|cx IDAT7&ll`UBK 6K!VĆc#XYykԋba|O3U0zJ`Z*8;t8S4ʼ۪3|oEd'$3+%*B(2@l].eKz'<UuaR V˵ַu@=4+t\\ZtPC.bɪ S0 3 v7Si'"iҋ`$c(:1 'ƌr1"g re푼0?qaFฬ݌9Q"uć&AxP}~S٧ VkBk(gyl+DaݚK$e!@.`m M,Qcu0,)iyOdυ@Sv}M4aAK%_~Š9跳B _9%DsB[{'cWnIfvfEɜsRyP`2UTDR1EX}D9"!q"eB[ :v\; !N∊QxFA͔gnN "(, ӽn{L! \B w<`^,YB||%k '8)"ꁒ:iXr7m:0 0ϑL*A-7*p*&~eY5xUO%̀+*6vMrIo*ksWpRl9+#zNqXk䦹цD`RtD\ c'Wk[0h5n Y\cpWr(m:S &z"VƍEͻ@F 0V6Kb4[ͤC:@4Mb9!Hbro%p# FUm C"e+D^x&*M޲7V1[˗W4ъȳ P'u&~a"ԃXVU1x_GŹGuIXGYG`'a$X*KCZ6wv;yVڶK!q3"ZwnmjVѭ,mn.-bӠ2?#5} uB{w]ֽN+_ o{HUKppUZTHXdAQGPJ )Q %^ Q-T Y3OY}y~(JZAn'³Eb=o){wYt/gA&⯒2&%_4.nݼώLO!\^̫PGb-BGXdAVIvjzRLSJz:.^Rus1c-xwu6)-Rb3cjv|C\`勘$%lCባqU,,g^7S|?~dr[ D`wRS3^emb_|q?hvfgz[[2[KOM u?pW 'q llmg^D^{iX@kbrk,UX`^X6&â_fן;?~q,>i<49jwf &'fPT `gcsăTO;o EZZ+)vr †™(bk8|rK&2J^ y'\p %M|깶ʏ `$'bk{S oA$\A6u\+EUgpIV#m4v%]tylAPcVS97ny )AȢ:,ǓMYXYEN-X:{CW${ _@HUs 'LZI8*V|V ]7\U(DmFYK7iZRƆu4&@z/vo%K]g#CAt\ SPKǙ-]cV5u9n(|8znf%Dߊ7,ӂ1oyVDSqy |GXVpg? R2Sƕ΋#\Z5/KI?2'%n*DATTHPFf ,(o(qGaT,ppQR"CEwoa}cspb[JWָ agi666p,Z}c*X ]b¾9߷¿s]-,ܹp|:;raKCn[8w޸sO?N{ ;&`NJC4k*vli wf3Iԍ˅'}}k?vṹ}h[0UjuޔD6,:9z/_*on=)"ۘ|yܸy =wk@>ۥ0E}W w]w >zN_%daEꦐ[2F O=߂IL(yB hgrLsJֹJ(*&H0)8:h C:"b|+L*Vo5KSQ`bI.$)(+4cJ2[FLřѠVK}xZ;u61M24(dIZ"hPu6Sf*=) ҂b(OmbԘ'AkĂJUR &wwplS3:Z7S7x{)T}+Kڝmj%=d{9.#&t2gy+]q'U.()ESȚ(C3RNﱨɵ1_u $8oF׬[{&8XN.jOBeCp |S3YCXn* 5V/\Xz_/VuBŖ&pE<_Sx'm?|-V%ݻKܵ%ϋGr'ן1%.*ؿ;o]Z c_zE\|?Ncgbe'tlg+{ƍ&N9I/R@DW5~>r}1wWVVq-*| Vk΍ H;] af= ʨ`J |{obfvӳg?iSxED1"nXKwn {m$-ErwQ*N(Fw_NsmHe80^==qagown3ړkx Lbs~c'8']*Jkxܓ oZ6qt~Lj- UXI .HpI&l6SMzXHAգZ8;R(.)v%3'@<Zv]= 5KJ{Y- -\9JW?qu9͡b{Ϻ1wObP,C:-ymIET+D7>CDs eu򻏹x_$T;10bgęԤp&ҩW4w5!n,or2cTʪW(.q3! 5 az],!/x$l/;.mͣ>:Ub'+rBp*4S~"_| :՛u۰8nLnG&scS:p ^9 KxY6ȗ5I2Xo:h%DҜ(/.e% ~lկ_W! OF33X_Y/+&c#4f"B& L4I$&ťt@x9TGMᴶBRB#g_o;qhadHӏء#IHPuքw 3x] ӁCj_HN <_x%vx2sV*i(xJW iq*CeHjYXa /+#q Y(i"?aՀc%%A) bcQ﶑RrxR6xv`|ƍʞ|ˍ&_Mx>*?f$TBTe~GyR,Q)1S`%rJT<44up4zyo2ح{"Fk.ۭ79q=sREA |ߔ."Mz,&$ڨKAlmz݄aU,S(%4KJ>R˗/~.-/~MoXX8z.]/`jzo &&v9gR.`ayXX?/*fJ>CGq1\ymbjfǏN,)lב803Kl}xQ} 'љ۷'HVK7Di? Vֶ&7?ϐ}VB譯c8zm[qO\16|,7]AvGcȵqG8?݉QN`ien >YyUL#5?p[;(T8q19~>Z]^nݼP./ajjH{|#;ub. +4)|* Z L0Z } ¥FuI[61NT ViR2Pp\,Hk}sO8X䡵F4$1 L$K%]M_Q/e]PѢ5IUYն(I:9@PN=׌H"igGd2Otk|4:.c5v TWe ȓK/p;rRkR~%./tk%o.<巒@%?^̺,Ӡr,w(IV+f;*jrfbQwM/ \9buZċ-~P]ͺ35>4HĉT M*3\xqWDuQDYԒ9ICq['x$Kw>d%zFaIJ c,OX}&w6Zչg;-E;ȩ'bEV XL?bt[I`+f۾I <$O:8 byNi%L!)%Z=Gp{tafQ\eI(&oLig+&Y̢GClf12J$ 9e0&V'VVGmHL0):qhBmr~r*bM՝2v+Dkn2֗Z>B3uU#6+%a b)<ۛUNq>in~}&'l֟Flo &86MO.cgs" lnq o~ׯ^[[-޿[[|N…(:(Qш# SlR"Jpɩ)IEMURQF YӘ/•+wk̙%VJ4qK y]!Vɝ-[EWS_df"I ?\Kvɓw\̋HŁU"ÅY))CfMy?ֶP+ Tk $1+Z,{PbhAy%щ"h2o+:(_ks27. @b'9}{Sr JŔZmR*,Vy^b NTay)qoeϳ@\׎8uxJ(ڋ5̹adp1]\1& 6wYzw\sgœ-gW-۸Pg⅋,?΂|K5=˨jg~ ׮_n\eؿ#XsšX8T7D"Nb5^_]CfE4niG&g MX$E블&ɺpj8P\(Y)`ͬbtpb廻e$aqf v-9Y4.E4Fg uEY+1 ث.k2Qa<)99u^j|ǛNXw<\)|AJA@}%! mEJ3"u+[@tMCzqJ4>c-L%%rvIHGku_:)Wb`P).\tanV~"UtEeabuc%)HPHBx2+?"{8IC[Frݻ=㊢.Åsoj\@iw:KX۰(ER-y6'Gƍ7Y}ҕko/|K\ 97n!M:jOBD7ro| tL++K~2wIxzfׯ^V6HM<[XX;LMs»vCyITe<-6fZƽ:{A<;? ۺT5\yK*>YpɳX_[éS'?BoQ;K,aoщOۘ";HoI?2䮭a"pq\v1"fjE쬡ʓ3(Vjؿp.^a84VX[RV'Naj%z$12H0sIq )GM7}.$ q$Uj BBQN\xKv^Ra໔hek4_"׍L K)ҁqƃb"YI2/ l9^Q )N?9wwqBk emG!J¦@"Q.$ 'PQ/Ī*xqABw)o>9gJKPaB%,:)SGt#j{uOJ!EBkQZ0z67 J$RGPN2_jFcwIVCp3L O*Xw/j}T+UFkTގ6?I/ $`! i&Q.w98=֎A  ̵"; w}w*??*Uځ Dys}ԫ'xq˸k@ mҡVO,w|57Ell;V;$VNEcBrꗁ,S M@\^rP̂&? Kۿ=10cdɦ]sDiк:vv`]\?:4Ib~ YߏsD 2]5ÛwcL':>[/fИ0{w?tϘAۘ15~-wiG28 ,#2s9f/yk^tU~Lv R,H!c}Xuϸ88~>ithW9B$J3#fswWI"r2$&87;#d=E]XbB!}Օu uҐd=&O{_}rU/GDDj@df3 9|~$ f?xQa~  khٶת>8=[yv`hۋƎ9꽶0bܵ6,ycrg?qŘ6Mu7θf=0sh WdAV [% f~ G>oP;6o`ȎYrc3>8n.9;4NƯC0 S^$7cMGovcyT 3t{c<| dc=˹8$V; Ǐ #Ƀqyl;3vI ;isI1D[v*hbѸ*[ԉ1Ͻ&,l8.J61YWPqX~1/~\MBl|c]574Sv*qc\|f| pD}b=eL3xzifyќWpt\uCsq|fȾkݱ^cK.er__ſO< J߽s[m\kogO~-N`E-Ψ(z6w$vD0rJNj>WW ̘8^6X`N\rB0g3d Bӆ8@.!:pǙO S+F]6 c,G=ds]L8f/n~p7C \/)+ $|_or=;wyb?pC-xg?ٳkn|\3ghܘ1hm08^ə^; $FiFnP~#>q$|uB>2 \т𹎋hc¼q^|~FRp B/ag{~!یΊuSΡD/_@T;v)F#y'1E *J"VR\KO=- h`̠}~U,hȺr{ȯ& -lt͉??I-wtA} dx~6P _NyFcb䈲=O[$rCIgjjO<4+NNL2xdiyXB`ȩ _C7mx OGRӫ' &݁w?Qc$Wùu>m%-u[ cj7o4(2!F`?6h:gS@n>s>\zˍaHUFYut.1𚁿 o7rӿ~UepOu-L0pF6bjcyNҜ$x$ZĉyoQqq'>9x4IM\7[ف$ eU e{=guCmYՍ=*{wM#1ω_}ؘ :~`,1ޛ7v?I1+[T63J7t_Y?98GN"El7l`޼[r$:"Z$M41!͉ : =EGWb9 =ev^l#tm+F &8eX &g}d(ǎD ?Yi$*+>)G:BqIR"e+=k6 jxd &ԏ׿&f',+#`V,QΪ:"}.-dC s4H(ߍK'1,ټpw ޗ̝M6ur'7>jR*5^NxX}@'{ `ח&q|dL·Z;YzX<%uٞ"{`ݕ6(jR&ZcJ[w>:4@!I>r#7z_@~=[(;{ECC('0!RC[x?C_My!rɼWY~ l?ghhIvoF m`j`K>nvOOL5.k~[uc>7T{Or*s`rKP{܏;zyD~xfcG%?3K$c_aDK0@&,D񇿣C\}~j1z oK9Nҝm}h[ /HbR!6Rt{}nngo~֣ǎ'q7s3#ay+^;+?6?]W;05󛿉'Od^l_*oW&ff} L nR-'rFA/A1%o^aӵ"J,}dԻ q>Y5F~wqxI5, Ad*EM\ cfIx5l0?skC>ɅOUXOtБ`b;q,[FʽIg'_& ρLyZa@/G1-de!"5'I#ğ%Cs`Hjeu'*<6cvҜO`Ϋ wkE#1ٰcqx|9*?Of;xil0,Kn_PyyqK*ɋ;:r}"Oc1'ң[`!D1 FFN~}rr_#aI92OT ޅMirK?0C Hlasj,1 ֞섐qw79)aa`\ŕ0 H(AHL66L:}^@ϰ{o`2,A`lȀ 4g}ߩ4W7ԽUN:N2$Sz6ÝV% ^4p܈Y=]FlaYaDmhClxX IDAT~4# &Ϥrt/ (?4"bk8&-Ѥ]ą#z{_lTp|pYXV1EO*bDԂoI1彷@7ȋyRo5EWx\Y!u2b9HI-׭<2CG$L\}#z@4Ӛ% Y04i C3o4SudIk[31T+X w}صld:f&poIڜoީlBZD k#%zB ldiJO9Թmrqeu]41?4 1Z􃜮9Ies RQ*=>]EM_\ )>q&j Hv+dV#kamdr9MQK*9YG\Fere>+[{Qnڰ~l>+)w^֢Ţs 0~>rN%Lsbe35Pͭʚ(*V=/>|O]} G簦91505PiMeL,!,^IkKab׵IE9F8g\lۺ5F 7GqyhQjp*&Ăw>6P}-r/?Ob o:ְ*w|cYqz'"I199*n2 Ĥ߃\'>3&f,zh$O z[^pLY߄xJEMŴ !sI0 nX Q3ʃ_o :ofw7Lgˣx?Pʇ3&#<D߰ QMkYtKQEyF#F-̣WVWcv(^eEĭF S|1C).ɮM#..25 |̃H /Z^<Č<Dzx<'%s&dγ=J8VMTDH8}U;a4`ZZ PoH l,ApPux‰U<5_s7rS˖fNn[߭ỲK (s`5}Xޒ-FiK̍,˫iЕ(d++/s)dLQ|zkS3f+W 4Xm۝1eάuo8[^u*\>;5W{tdR oJrPt/8ڬ/_>~ɦv g<5rf{P؄F >z=S`{5+.Q6#V ^ڊ9Au Ī/L!)cHLmQ4G2FC[B!Ģ4閇lf"UKݚ2kw)WMR|E1oj<|CcQ C}hljR^5WXN*?\5<1DxDZdځ@}O(_r-~,Mb Լ͞)!;ۈ=;0`fH)7[D3=ގ{"DQ#Qh1mH(>,bE8UZ9jjzFdRn?ޑ6Xq⊳W:Y}+Hh>kzhаnjFn׈\cuXG5%=pG,#bU@fP Pk@"7-ðY{Ey6 J%.b$mLiÀS m]|ۺ@=#!Ht%cUf5QsL '3]'(ֶ6۷Sb޽/!A$cHD[{zT;id5B8:e*bѰ,+Y틚)k^:i=km3KoQc"{bg^ߦqp-#|#8nJw=v'Lv(.K:ew<=[{8H&.U& 쳻iO(k#\.%4:儹 E__vå *Yݫ^?K)Jv(EVkTv"x,%!Ek`:1IcRPVFq&RV=E")6d'O\^ KR$e0]&7m1˫^Ï~xoȰA2ВGC E~M}mEH Da7kRve}&>uh]xstE)# tSc%+U^c뮽ƫa b$hA$:M3ܞ8xN ڧhڈ(–ˀ*5,lxghXWP5!`}`#Ť<UѢYNhzLqt@"xڧyϬeo{i̋ ⁘^_k}*e4s< (ukԀ(X&|^ޘn7Ӗ1G9% ~< K(D]X,^Sa˕I[E JW"j)AGA/;?^A'gHiؓD((27c$dhw22He[<)\5^;;zy!:G9f"Tc fww[fu\e9*lgWa*=sX;9)EeɵB9~LTi58[%3̾y濺]@ _/k#3a38F;i\]= 7;}sZg!1x䖗\&ҜOí脧sjegV r kﬦeY~r6cqEh-:̊)&2 E\FRZK߈CSssFFgiԔZ{EKsHIE> #2Ny (`@Ѩ=~4757&Z 6f)@CrIFUj1X*'Ɔċhķ``(}wW~ɓ4qR< ~wJ[^mD]ȺHu1<Zp}8؂;qF|Ae'A簦J P6+ k9 D+W$9qFOgKyP,kd"C(GԵz[<|raȈ> yHb9s)cz>#dx!ܺ)K#iջ0m44$kk~KuM]8VQК2st%(d3"Ә.޴OQdۂ^}m  _X;Bd$:ضS jb½1ݦ(e4f"{|]<[NFc@O=$Y~IHRIQ]͏̹KERqe/3ę?ȥ'3hrH-iu=%SkXZ(ݥ(B9/M>mJ SY\xt5\T&Ow"pS]lɓO"3 Ϫ&T€RDqi`olniA2UJ_ISNݻ12843M*[O&L:UweŇ2I:۔ҪS L b,]hoJ{R'fŝd*:5nkE 5xW1!Wbb}qF[U5*4 uuGT,E<!"*R Lc$CWҚ{ j?4p,`$074! cZ769 >;%UWJ^eуٖ8GuPޘF+7*:Seknʹq忮N54 ^, chcP{ [Cnp~yw*Y"\\e,.B&f6w`}h]iӻG$¾D@9V)D2‹b8~2HΏ3M]Dd!Euv'GR~yR32X!SkRȊV3&O=rwe:R21^hnnmͿvig/&G[=Ɗ[,8%0kz)ZZ[+~"Kx#,N/cJJsTRJ˔LX6A)Vʳ+΍@*jf;Ub^8}E~I>u`4OYKOu6T.q& ¾nWkcFK. dx0Qɵ.ڧ٧Ks"vdCː#oKaϰeٮxF{zkd[Lh(cs`$2VLX83un*ljp܃~5h}/ⷭJF5w>|ygpLHL3aE)=`3nљP%$3Z)h Yq nqsNzEOFƄiS\Sa'kXfbkg/1ϳ| gp#۷)̤;XhuR,v準M>OykGk>&muoeJ򽀵_1N]4%AU4p(w%S^,jx \2ET-Z39fk,[D9*~%kM5Uwj+232 _)$׋H8XՖSɾY*Τ_YS8HEJ!R}Y_3}'Ѷ3U7Pi%BHad/d*vjG69-B! Wk l͸ g+hZAZH1g$4eY.#2@B 6&}ND!B!쩩MnWZ` !̦:aK; ;}i6xcqq,n B!%Mt BzFbnxmx"2/-;pZ BH>ر){Μ9mmm|~HM(\Bz3Ƃݮ_>XBɃx9\|Ůw2k֬!8HtM3gʴb1xя~χz ӦM;=\\qY`AIĚ7?`G8=HW&`k+o.i'+fٶ}9ڋ f㼳CG{K޿뼵i{عk?:㌓CkG"Q^y `yʑ8dq18\kK{#X.` bR,7^R*a|_ߞr 8}``*\A^f";V"{q)쮻GG}47\AZ W_}5|I5) DwpOaܙ1)eǞG,'e<:{2,Y8< vn{>;(ڳ7߹Cá~בN+ܳäVvv׋kǞǜpYǣزmGW1b!Qşw.BH) Gkw_/bX{vm鿝xg$y?M X<~Jx288L$w܁*]uU8WA87ݬK-C8!~??[<S<}L%/~r~DF{қ;{Gxsc6rj{!S#6ҾNVL(6oَ^×-HɛK/9/>Pէ=‘+bɢ٘2)pƷcܙ%}0`8 Q,Y{b 0JZ^}x7l2X?J c}j$oN=pFF"ѵ]c8¼93+ʅfQ޾A.ßށ'Y:[iR͘6Y -[P u IDATw=ǞO~ߧtn>kWC}ʏ<#V\t$:c"Rʺ\"\]庶xr, s!e]\k3*j{ r11SZ%8l^dx W"{UuoEljj 7ܠ|_W ~򓟔$/ChmN*| uj?1,lMIww*VR0B_>Y/}^5BH\"w0&OjMzzE0Nj+V"]6$ώBHePJY':"tYg+-lܰU{ 2~°ׯ|+ Ҳ!Q+P(}:S-cZ'*EfÆ ?涺Q%\^ Jy!$HD}pkI}(]uCܝ5ljكpHX!QoH^_JmiNJ_XAYV?tD@&9LGu>Nk.؀DmXyb Ќkש$He>t`݅pkxXvRϭٳSNU;xSJYFC<9r{w[Wk].DGiZeiAͥV"~p*e40`Sy@"/} wQG_|H#p-`ʕW{4J:e# f-ׯ\se8n kX{ C}F`1ul>Q-BbQ:-B@\;Wa˶x7q%9}Jbi7.|<!T u"܂.k>ڳsgOOX|K/K<)WݹsR\ŲZ-pgA.&r TԔY بJС.'xN2%kgYȚ7(wߍc9dϦuu~'HDJmKɈSԀ:^kh$ 8])M *!/[Fz:Cí׃#NiǙ''w9mjuW7KP_!ڢ.'.e6϶֦g_)c_ZVP8SNI7J9eu~ǔцRA8!A֭[H$ctOH;^X?s/TqZT lB)l}or$HһA(dwPkw`pX6,[յ_&A.HTID]7]Fϙ\$r>}}UsORV;(6j[ApBH8|ghulJ)DQ:#ez.k UBVI6V< B*1I$|*0gqlWj6:iOжm̹s3<ə &.)=m?)Bkƍ {k nÓ8bb}UY.?"'\ gYtsO5WuCXq"\xΉسaL܆s/F\OuXwAtNnAf׫_Y}jV_'X)זȎ_ԧ>8lMDܣRZHf*E[7\dq*N`dP^ns^?t`nO@t3CKp'Nsۡ=>7oj{饗pkI=sq]ǵ\, ϣwTVLW_i3E8;B+)kd^=;mڴg}G2>Voy[5>xKz{W1i2á0>u6/Nu;^K>u-t)-C{KHV;T"Oc\s Wkτ+ߞ~5xvzx ;7' e&Ⱦrk7x !ٸ`~OQO9.דǞ]q2؈l_zf`H¦G%.7v]sԓ)Wofa6|lsȺ! ~W5_3?v>B5cyC=R=T/Z9-tcK,܏wO5 Mi[hkG)'gm^JtS2] q;c:% 5VjG]Ȯ{7 Qw_EgO`}"\4m7 %VXݢ.ܬ=xv;; -3aK,,ۈVʺQgTd?PO+!Eĭa7G$د\s!Ⱦ:F -ѝyt YϿʰQ\&7Gnx>POJ]o+ȱl^C zbv}$3Z+nP 6:BH.jJy$D3g|hGuR,-)SI-Xг 1/C2>9aI_@}$,[)Ifqk[CP(4!d\q1c@ZGEIdE591lj[|WuMuX {ܒu'NCS0m+ce5gv"ꍽ4T cw~+ɳ__MƲ:dԪdsMK^6<][#<܎هX>+5c-vagL,F@mHY>nuR㬓P5qJf}  UX, T:8:&ӭdBol << #C@dlKyn-ѡ-%>J_]9fҤIy9Miշ+Q?|+:N/x.EŕRZ^ vLd444ইCWBlsS/jO=RL6nkϹ W<ٻHY`mEUԶ͘0ǗrzT/ʺeo9.b؈(aeAʹJQ؛*~$~A0z'&8ץ&Wnٲ-JlsU}]~QV(J:69/H$^_ wqM&|*eeM6a@ٝ S >\вt v>ߊFv$'uՒSu۠d).RVW[ٝhY'ޱcΝ\LE.W X)+ _6Uxw6\wH&eӦMk]+ UC]]݄v܄=*W 4![/bgp&HR]V9\A 2gGȿzDpdV| xv.?ms"1nNŖ`nNRE~Jy}^6ѲN98D]&3 |0J"J_6,?zf~\pRHE*&],2٩ dDUr,w&2RUۿ?R\' ˜>m/ɤ\o_}ڿX8׻!dppv>Q>F߰+CNo2:o5)|իd( $ٳGy޵Nq}2kEJUW,jSm65JW??V`lV*X)e#+y(5DZ4ɃѸL6ۍJj|^hsi(E+lk+!On[m]JiVVK}*)R7p@H1sI_z׮]8Ut}._fm/YsmlM>sxꩧpI'%9XbߥR/O>V\^F }%1Ѯnw>KSz'W}88ݨđ۰T^Ii`V{q% X9թNW7u8v6cXoR/Ҽ\Wg@2结*nޫV@MѕpW\qn|nQu&};\*_JklLi3!5!fʜ\L,@ nB4֎mB&lu&]lj@'{?[-4R"b YwGtk$֏6(G>X\Eqq0~Ẃ֩tkT=?WʍPkSjRy%eN>uF ;:UtmCYGH3Y^Jm(æ5U\kjS J_wu8cqe) n Xrmł<dsJ}X6T^>RnE&iR(:ȺSTz궿r8/j285Hbq9`…2) *1QJB%7Xk%oG.ߘ7],E&iR(:ˠWJU^ Fy<x衇^hPyJ!Cɓqcʕ{{{;QWWv\.wb*G]}Gr?gk*K>}5NjCW9RNNB)H9܆)TnJP(b޽Xf V^]Z "mB[a<*69cY3y}eYi}kY0UGbf*4)Y= |~LLe,]"Tj !B!T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !B!=T^ !dɲ89!B*B!B*2NŕB!X޶m6I"mb:`X0v"FOw}Xepk>ε8P(`ǵ͒z)DWcŧ0iCKoζ2w܊x 3gHYb a#Klxu]7XGGϼ|%3fTLՌ/h䱷-C~|>nԋV& L axriϲK~0`կnͿ~_АNXIh0#0z |~p!#K6'"w}:;!BHPy%TD,w*B!yBBK )!BHJ!ciAusֿS%B)*RQJB!6L!eaP>B!*26le5emik+Q>{B!0!L:nB!d+!*T\ !B+! ӱ~y D!R T^ !dRZsFB!$OB)T0!BHPy%+トB!D+!N130!BHPy%+B%B!T^ l$k[|#B:BHIJH!6 w&V)[2YOݏJɗu !-u B%­bB%AYG) T^ ) 1Kx{˪W2dSXlPB 2~8-ȝB>c;!d"i.ȡ2k6# *!:>8!P !cMeⳮB nÄ[HۃFnx䄐rlnBPB */&y@BDn:}B2A86:PB+!!)ءY=5p#6uA啐)s B%b˅3%u@啐 VwrEm!*!$KBHFB!-(TB! *Pd ~k?B!\#*BB!lJ!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!J!B!JHy`\֒jm 71! d!oR.Iw|Rm!zC) i(dqd)`SzxDyb'y7xonn># ^uib蟻>}k4M3Vϕ%lh`!1GJHfh)?|*Gp~aQ%eL g2XoR i.+'==={Ob5Boo/Z[[1c Xz*>uhkkO4˽K ˘Td4RT(LLL'5Ni^hfvww\}`zI[u58 9υ.`*ab3USb}fcbT5zA21CU4"osy rgx 9W)'.XYk=01UGDn Lӌb1ꫮ w&ɖyMӼevij`%`b@7Msi}"y](Nr> 9b '13s'&H 6R<}|&W\/{r 'smؒSP{]wW1)!Y\G΁hÄsܻ{ndO?_xѢ=s(pooo[6`ڴiy^Z*c)O_r &M6<0{5gz3.h2scݺuJXhr;\ J :묳9nd))y5\mg|P-w,\z(:;;3dk~YƤfHݾUrY^\m]o"zCȸSWO䁐jlY=N@~i9sƌ:Ξjw2&%6檫VuX\?ȻތE΁*eJ{'J8+c*cX k1g =pܱ*k] s@YGPR{1OT6n̺vY~%cLe,+hV\8SP}/L tMjW΁₏)'پ}%APdts-]W2 *+-hjn+W*W|ڰ8SP}`> 7ԉaL9B T^ )rQnG?ʹvV_(9昔%"6mތ2&LYb/_W{b'Uèe]r76LHqP0*q ~c9kiiJFAe|%`ʕ*ITM,c2UeNb[jըs\5,F+zCq+!ae֬YyL:νk?@mPX2 .cYBYq7p.XdYeuR8SnX9B\JHqxKru2)A~_.hvX~%2v#%"2&O|饗6Jү+]&;<|bYsՐw;8V9B JHqCwꩧoyks-Ҟ _X~%2vC7 ˘39DÍei279jȻ !ù4M>'B g)===5sfe_Z?"ِ;.{$}LWIȫe~מݻ, yea͚52&% 6 +V|"h>Wy՛92FXJHqb{{_s+@ԩSU0:r~K?Oa^R*9^ u%jmCIl+XƤ4f"z3V9BHhy%x ]vK!#n\HZ'"\ӧO_$JJeя~T)6顇ƿg/˘Z^Yf,r7JRy%xn6|3)܂'++)^>lْj2&%m 7T!+SoyU(ZL 9ג'13s'&HU+$Z{4͋Lӌb1s9OkڵJXLՔXFXo#Qyebd YK~4ͨH[oŜ2iҨ'[S ˘3h SuinU5W_m654%e?_ܧ.tS ˘3eSJ)^Q\ Bsx ]]]]Ckk(O;4|fFV\5.g1&Xh`!:`aBj7Е> ZG^p,5 I5LF !WBH>,p`vX ˘Td4RTR9B!B!B!B!B!B!B!B!B!DXpkIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/right-click.png000066400000000000000000000565051473342170300272600ustar00rootroot00000000000000PNG  IHDRu pHYs+iTXtXML:com.adobe.xmp 2WIDATxu@bAlAB1L 0QE PDD;wؘyXR}||̞9ל΍ 45!㔔PvHD)6 &@bRlAM H )6 &@bшPN hxh](k\P_*+yudwXۣ5Q7{S'D +[^bXi\HXZ'ULT nDl,-tw~˱[]6g<ݳtȾjj&6Dd'>(˫Ly_~V󕏵Bڗ:afcVx\XjgyONMT'\xE ^|0?]i)@fWajQWV!0Qc~/v.莘\D3.E93m.&NͺhҠ_q4jKy΍wgT;&뫹!d2Y㽫*Qb1LGI%MUb2: "`2L&SH,83==3W]X^&op*r[c>3\!t=#o+PE^y3khm[dw_Dd(>fqJ& (~4ZlyyYo*^yZ ?ӫǩ8:3H9\>rhmye XComqsZ\@mkV_e_#f%5N6$l6[f_s/c|L.rb&PU+C06Q^^QkYώ̪=cnԀTTsssýj/͎qъsrssssÝ{eϻ5F@(tf Cv 7k{kńBqaFJ-!*}BͲ->2?Z- Ӆ~~.(㶤h@ͪ7on]*_#M1h4eeeeeRr|2,FOqQNjF2ޝי9*)>2?3DqDŽFsHП-nM'Ud&'89#a'oݧ[կw弄;Fv-k,~Ը"x}u9WRIӅӵm8WM>ټFEIG6-Ih1ȍ5mS%Mns:*ǩ4Au n hi8pSEԤ?eM4,Rl8`am~ÁWP_ӴGyɽ}c1/oT4$(_NP'Az*#WΧg3[ ?_3r0P`xg+t1">Ani p3Rǟnl,e,fP6 3aG*Ma7W.97NUzz35?Npщ>&gzmo'[o*κ䮝A[GՙS¤^;^Wu x]:2>WUq2$WT"oVV*Vٗ3KO-m<@5ZE+kg->:Xgcϗ q7&Eќ^i?ByCs^|z(&}jp~g+ڷoK€1jd1VzbZpz1Mɏ=wA3l0uƻ{բrQB*葂6ʄsK?}I/ii URd7>+((؈=G~vtc\&UG+{LgJ\9IW ||̹4_0ERfOHܘ9pD圤!?#}ɡEla*dXE^*vkS78BE@lɹs:o'N#OжELh3ޥ LKz6OK7*i feTShԙdfINr}?]O.N\aT:B_RRR"P jt)(I3@bRlAM H )6 &@bRlё]mΐp㱈A.n9^ ׷xX'$vD# _ IO.vb6!es4+>* +A#N?DS#>pJx],ܑo?FtT:Sl}Tj@茢`^V~,wHug!|9P7gިtϔ:=&!)L(k%-?+(NLHi93"%GĮU tqm%e~hyO7m->;9"?d2 R+46H^,Xo{[994}Ƃ+$fa q~f.V˯V]x˖ v^m-U8Zj=˷(slDP-%1moW}j7Jɇ3%TޜFa~ʹBJ|N5*%!H߻+vW;K=lST]so{ܔ/|<;ޢxo8X6׳1'=5b*SGhy1$GX(-sN\=8<3'e&д>-}w^-e8=YSWhKϸ٪]zD<þd.V˩ɵm٬lq(l>du6|?aT޲us#Ya gjUt]Č*-E^]i{KP 8PD*6Ugoδ]~ /w7PqzZ_UZZwqrbJ'n܏wUx Yq 2٧kp"Zl4S@c%-x}+>H[c-2Sw`Ass/]KE-u08!ܩ4 3~mz~fISjw.qY#N3SK"}χ c3РŦFTjWYOgvoXzn ΅n0sL|{a]herӻOdjFtJj&q7|AUcz;m7H┋ݐannz;mz߂MH5tſL82ZYpk; XM,T4^jƲ/|0`NT-"j{ |)q^SGt CmAvoђVH'Q ]ĢH$@bRlAM H )6 &@bRlѱ]hbԚī\HhS+ ?wz,n8[i4/ \>^1|a@ Nka?tQ]}ע QyJO=.2VhF>Q]\^wtSKvO)zJ' IuG5VgfTt0/:RrYQF/<r8@=ؔA{H x]؎LqS/8h+;gID꽛Y7^yƿ87jg78ii[lsuC^7`K%$8v3@2k)/:rap%銠͕*rSK1I5^rzڲ kgA+uxqJheŒ4 g-G6'+wю!)Q|ʩY/cKFah{ 4C(fJCuqbQgoQ{eڻW *a? qNyE=!fq]ѩj( aOg AQex7$>c9̇:FiKuqR,]k2J)@m./BR|>`:_!3OK2uyWx|论=1sq@gǿ>r#d ޥp(]zێ|TSe6{pN5$ <P :]7z[zb|\2xD#c,ԅ9?.NZ"zE9^k8(/(48]yvdj^IfIOZT`bx+L&)al3cC>/kTitl+~WY&)h4a&ϋA|+B\ 4_lEAe;>?X%j6qc#r!k{ú8[%X7q{$dziB6LT(ͮ{OL5cf3臊rRFע?>mP yQ @d߿Tج62Z~#Ӽ>yhń'[~&a.a/ 6e3&XhR2?nۅWxcAaH"MRbYO>ww9 XM7 V!=FQIFOYQ[n%Oh٪C=iiVӘHtVY15k&>O\!Auߤu8kMGJAH+A/e:ƘR+s?$"=Zrys:S5إe78L&)p)Ҏݏ9U 8@>Wv@OJCS7.%cQŶ̟(뙨G$(#ODijn05L YeQQ]U|i){DXl:Vh4g S(L,rx@Q75/ J4$xZ;Ҳϟ$Eg)|nμb=˟rült\'ܞj8ř&Z6^>˦rH؋iBqGSd`!_̚ %T-sޙϢ3ELዣU퍎l5~Jf(IU2S`1/>Z 'Sb $- ԩ@n«if6TAkNhnnr$ XOBSn\9FzSl,('Ihrq*a[㹋AMQq472* Gs\8ژ^ݰ&?ךW  }2S{OGk4 Kwɷb2_G z='f)N3V?>8wr͵eGGfW}{]#Wƽz5pFZkrk >=>*C 0 ,)ڴnylV,E>JQʾ%;t!kSuۥ:g3 !{msB(>^ߡn$~~jjJ͍Ë94{9 [p5PEVX-Vܘm,n#EC!Csx|^Wb78"48Kjb]i8Pg_v eCUԹ5;L'x¶ppk2Lz] LzZ{F9:KY~R4mD4b}JJJՏRlAM H )6 &4(,, PTe(++jqȗ*Ă@bRlAM H ʲSSHͫcIN׫bpJ^x>Gǜ 2o ̲;.C>U&m\/R:7*(>+KK~}K8VeJptK~Dwn"#{vގ GbS4冺ֲq򌜭N~hBd|(T숿ĠI^DtHY Ih{ &?????7쐥ֲIy.)'dW߯7oceϻ^ՊsW2|N,3o ( [߉2/Z?BMṗN(*}d4L}@eJѓ^xkAR'c{Y@}qR`+ie|'wx}VȉnȺB 㭙=uƷǶJQ͍y#mvjF}, [OUJ,".%c$D lk^m㔀DlAy}-~w6i2QzW:f)n[WOv_0)Tiȕ좷'tYԮ<زzվO\K6aOĿڂ ն!$ V v[S+:m|n% 2{˴)MkqZ}kk@lDfBdč8^ul.zauQW!MٍIO>Bʁ ܘ)9G0d.xSUWPhizW#nRTPPiR-g=d6`zH H]gN-|Nu] H1+wh맫eIHћ -/(pk|۷o4"!"DiQQb枯.A\:+kCݾ]-&9؍X,ݾ?'1R>"!I>{u*/pSk)-APitFQPtN+hًԐcƊ\|)(x3F3?N(#F o𺰝}VJ݈^oאY?DWhT9iOs W"'1cI$[oӦm.AT&B>y[j}RPSSpkeMm@Xv.7b^:ܗ::dE9uglU^|J{-dF#MFg}ׂՖm?~E׀(SW]RU>VHS2\c+bOl?fk:TuPDҍcY^RP|H2N3 ʑݝ X IIбw׃8f[j"|ѩ+!-}$ RlAM H )6 &@bRlAM H )6 &[Ps&8ѣ8`.65}nƖX3oTyx[y; 0,7̙\ w~!/8QAt)a#E=2XI.{קE`%1'F 5Dl+ RA +2!AP_UjJ3#^,(/ʌ{&,T$U^Čy{s~ؔ.}FX$G(]0~wZl]+ioVjk jH l>olFyln֦my7PײfZus팟7[* Cc̎g|8j(n:jߛQrTA˻?dR>ƉXt#//sf:R8Q~>UbL<|Y=*~Km͓j[S޻NئQ -b]$*9ۥ%c:y0(^.fOh[-%Go9-!G@QʀZۮTU_rpJ˸t=(OU/-'W1pm2/ ’%.yƕ7VX JImQݐ77[zmŠZ/]_SY^ut6mu^Ĥe,<ǶkG|(ŵNTerqjcq)f<`ku.y;+%+\ZK.xsb_mVn&wl?8ZW%.)xIsQh951.nW]FzX >2AqD є;n'?1(/B JQkopUq.sƇ{o}2Xt "'zʔaLMz1)¹~)0ٵ?p9P\uܞ#_=~tQF^nvVA=SVVZJ-)!!ΒlI2TJɋN}MJ{B/}̻I rT^58ܠ U2C]eG2[zc8{ h\|Fq^vI*.I3@bRlAM H )6 &@bRl!Z7FeV! +|z%M.͆(/)`1W0'D*6^E6}{ bHrK ҋZmJL&pu ٿpgX-?YW"|]3< IV[)bqǒ***** 6i /H9oF>W֧_* şE뢏PdF?1TmױR22222RvSv8w{^D$3Xh1|Bېr. cʌX/Uv]67{XbpwAR@c#]NS_H6\C@qP.Uח+2Ԗ TK%N7ɳׄu\ʍֹV)bb?~+Z?Rpkve>xvrMӘ^iB#]KA=}HS]q1Nߡq)A&lj3jSOeo MJ~j+K̟|eߪT:p>\C.:K̅WmuN-OZg}NLltbVz"<"5bo 2+>sOK{xk RX*)yvi.ޡO\x{Cb RoͰܜP^XƗw16{TMBR(|'/1g)P@mDH y &=82UĖl˺1gl䟸v(qZ(u_΍W`O @W<`Qݳ+ 2_y|us1zYzRMRRz|s]<:Ik.9h7=u̿xA!8KЍA52oA­貛 Uvo7TTu"et^3mI)<72zNkqRGaG) otAb}":yُwi&*dbI=j" rqnAaTΈ Wzy;kTZI+Hw6gj(KA&*&xn/SHlm;>ܷs4Y8B:f;EN{ו|$w*}(5r|׎ڋyxufco@U^2FhW?5Wçe /"1iɇvWoswQUzѸ;n|—>ñ,L@!>,[!E Cs),|^-(nxu%ϩӼ?<03 3A$^/^E%E2Cݸɪ77ѱ毚ٛU)K)=7iiihVB6HĈe񄄄//( nEnnYq~%(+=id{ M հI&Ư?ѭBRYv :`p7<==¤]R4r<8,3>!p`Xn56>5ݗy!^׍Edt+',5FMf1cFttEn߾|rs8~s5.ۢ_)v` -F@"38I 37%F̲Ⱦ}Ǝo߾͛7HkA]ר̪ n߳`~/%m4iy~f^T1n/8>%?KJ-woII{'oKCx,Mh4CF-wr6p{Ϋ}^>N T?&4(itO;ty]ż cB VƮ[ʢ6W\-[eɗ&٧}i)`׌o 1P8׹3]6Ғr:k9|75/'dWP0JK LE^ ”dQ}GOr^zƨ^¥3,-8;;,^_K@l٣l[O%f(T8f5;̄z]YK teM}qEnB>Nfm;>>ĉSaUƨJYl YOVJ7o'#MRkd!W]ظ s}e ;;ѣwaXS-Syͩ:.0:^w*dpM-wnk#s%N/r$2.hjj~ZMM7ˋfi¼JXZ~% `.SWL?~ژe 'ej/Y*,9q6pަ9ek׮_X]J FceG+ yF&߀F EylmMZ^\@eSr2Ym5W8RuIMۖ,ʄA(zj$.^|ca]zr`oKϟM K)6 &@bRlAM H )6 &@b!6Ή>h͔pOr8KoT(At뼈$_Wa6VI|A쌗]SۋKhs'dg#K"'DT`c;8'ȺzN޹iɉHW]u /Ο K}>ؿqhC;uPׯ_~(ƊkբoטM2#iI.NQMnCc1FQQ) K6ҦO5`ig9ssN1I\o߾ɓ'D׋GWϬqx#ӣG)0`LU:0'pާwn"Qr6zhJ6`e 3 Uǻ~rV]SXbS,,T(8V sB)JCV7Փ a:2B7o~)2).=<nJ ?3Ж 2F2А{܊œl*WVOq\f;COo{lV^_rqbG__@$ZSb"f'R1G{g!]Dtq RlAM H )6 &@bRlAM H )6 &x}望8 a,:g?&"RE`_ɉΦGwI.hm 6 )/G6F>?ToBj"#_׫D"^G&Vq,:GӖ(Y,Z}'n{UІ Տ!!] Jll#FeEE2*[M2GO"tSx%ƀ$N^|T 3557ˋDlf{Y!}DFp%AvnҦNv/ҚB0y6R`.~@or̭ivqVUUNyDŹo<}ˤ=g82k-[<89]ͨ13.Oys޹pӭo"@mö)C4<̥7uh)Q,fsωsA'JW%&-$>?vÇ)!ܤ-WV#/^6⌁9z 1&>lڴB[XF!uP7oޯ34G1L˘0֓BbytVլytHj\m%ӏ[]`!;~2눴['@e>wmv5AG~(90lu6Fڷ{-u4ڥs$/%ҏc![s\.Jc4;LI68.!i.N~7phI SٕRCzGMvrqBlw~p< :rcu䀳/:w?_wqPR?T)JRD*@bRlAM H )6 &@bRlAM xM}O_d^fwmM#$,Qhy b#[>4+xTd2=/?nҰn!gݧ0L&}WxH~H1^fV[ E:c~uU=Iw r*C` _O\Ts-f)W.3SPRr+ZTɘ^P_T$`JZw%d:²z`!.%c$D lM׼6%.sqRu/aX/nKg';gݸD`K.,DV[PEH;OG^,RSV ΌZ'-[N!ٍ]%+xa7N.HaȈ]>.,&|1=4jɒ%neesZ<~>ghKFJW)ůkpAv7޼w:ƒd7.NQ?X:hO/ )/uXΨkVp ߟL+cv㹂KMa}gls'/4v^7{߶4qۂ:d_޾v&6I{rxǞ _9?3)JF9mlUm/ٖo޼o_;녰4L\nļ8SugգhE@qprSZˣN.>QXRRRRRR`҇;k.NQMLҎן7&z[퓻rm6 =Md"4 xCY"uRYu8UԋyOkdPuvv>x࿆`64(6z砵Z{#Խ|B~߻i>jo 5?Юrq"};%Y61{uT =mb̏s D%%(∝iစf%oVWc*-`DOyRG^& Sյc.sq ^zs˞0g#/ ;['EA8$@bRlAM H  (IgJ-@@YYoWCA#@bRlAM D%6^ٷ%Ck+K sR> s#+hZٰ4,ۥ ۅ?~:g"nY|.c#4hiigs<o,0$'-jTx"*ڸ%okT_KVUss#ĕrqՖ5SzdZ~˞:BDMdՃ-޴Z Wͬ;D% gcIǼ a"AWT)Kmjp \lO+tDLgs[. pm1癖 "MVC(VWj3*F>PФP ۙTkOj?ѭ)Ir09, >i m| dnh\IvD>f8~s5.ۢ_)v` M9y$Ef$Hq"r0fnJ^Oc P#,/2^|㐳zjHwg+C6;6c6H >2xQgG--+Yr{LZ]㵤&m;l8m?~IMW1i5q-zi[gc@CF\Ԁ] 1<######=>tCakݖ5t/ϯ#@Aŝm}A 6ޯjO|x@a2t꧕S3Ds8%M=n24iG5ѣw޿D̀?YSwRoK_ ~|˫慝ٹhմ]-}Ju?Z<{a#i:ϼ%ꚜm1<]Ͳ/򙥝~ub(-1+ 30)RTp)L YI;zwCz3j5`z>l~8=Prko<7Py;|:%>Kaf. ak&Kkk2Xl6KBelXsWf&dBp>^EG+kꋳ4-tkHֱs0$I}^q~|j+7שbL :fnGjY5H;#g:4FUZbSd~R׽ ?J"j4JN)^waw&pn=%Q\wZ#&  |YԀE\`ڨ)V_%Zo}?L"ƃ[y.PSquh]at:T[*wܙG`6J^IjM:wk\'[3L^ج '@7ђ*>֤ǐUҥlw^Nhc;VDvm\b㵅)jίy^L]:p q' u{ji_Y>KN\_&?&5k?a|uI@PT<.I;旮>x藷](LM7BOgD]J FceG+ yFOfxao@eu<& -/h)9qy Zh~f2–q12m8& [صfRWJ?#4V_2᫤߃ѱKI+Xl )6 &@bRlAM H )6 &@ yUeU-"։孂 Ѓk),Fc?qm^kD# (ŶKف^.i|~YF]kiO˹-w 7$=wu2Z6G\ SyL`jT_#DaB+ S3bh^1Q%3]NoxmZAZ~~{!a֝ڊZ.p(2ij?קQ.xjrj(מ©"1W&=8jUT;Fk0sFI|[9848}~pcRUU>:js{hӥhvhb0e׼+8,%):InO>8DˋPGOIsni}eG 'Cvd 74]i~kcj[|Y{?SDY$[V/m ADYQ4bS @ze_[[g]b8v+ֽ+EBMyn暄?Ѻ1Mp&ʨ=rsgJI3Y܋::KQB!̢"唥ՍO.{ٷlO[K̚,8|>ۤE/!Ƃ>G?Akԛt*oA ƀ ?AT_#\^jk ~K4 (V.YM#K` w0DN斕~jntmr7m~sﮂ_]0rJJJ;QҬJ n:FD#6?K5S)@SJYsՑ5~mJvm> J^:| hUs?9w_{>Ll]ZnIqq|ɮs:آÞ3昋WUqMX6~>n&]2B x}>ys-Kۧw/0|BaÍ@27M:obVgDžzF%HSQ\!Eisz!K'^?m:Mp goZ|FOQZk鸣`p [f8Siޔ w@tk LE#f,QPʷZ c@97&].U@7]~D17:2I.N )6 &@bRlAM H )6 &@b⬌Tl+HMi$51c6 *xa”X='ލOty)+/ץw $ZtM}fznYyy5*1޷(ZvVKɬ3[jY#=O۩rvVG6 %ᕯwM<)Lo<]VFIt8|Pޅ$[pu;1"u8=j^~X|a B q8t9MF ?PIɘoefusʡ/ .wǖHOZc)L&@Je-Th?6 CZS =6Vu@䀭ԄnlW[ZZˉSy8o/qΞBAןe"wJJJD,8[̹Q RFyGgO,5=wh [2@EQihdD@?HĦ?_xH*"wNyu`:]zi!go ʼOvRO 1ۃ彚54}\]Spd|5zqj-jD>9 |RR2rSq;#m6:7ط1B̊Fn~NDUTRT&,y1ڊ0ӱা`̀i(W*kp ITW u\ %//ԱC+ܚ?vF_oꊪz Iq1(DYuU^vZ2*6m6i/>]Xj#dLW˒ܘc,'-b2,K\^gr_s6Vqŧtx=:^@lױcGԗg2R筵5ӿK=5p@ =ɖع8IXbRlAM H )6 &@bRlAM H )6 &4@PRRA" GfDIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/sound.png000066400000000000000000005563721473342170300262170ustar00rootroot00000000000000PNG  IHDRH*FtEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp `nIDATxwiU5OxOݧoM3s$assUTZjXR1(1P*€(A n};>9 sNs'`uA?S=7?Y{Nqlxq<<1J#10\Ȓɤq ?sJ$m6Zl |>gI="l!t:mDlQZz93l2rhsdvm}$MExϬh2Tڳ 7-ͦp!5eRF61 z=+Hmowߪ%Oby۹fżg\1>[v3+28ϹEyŸ3jO#9u*sgfʺVl{of1C&ƺ>.z͂u;X]Hē)&Mc[k;2VqIO|Ɵ RjXeXmנ\y9KO]9媖p  }HI>k%HJ$D[`[fkrɱr<;l6G?T ` 2`x``F &P(8m+ˆs\2rEKV-t1ȸmcHe8o.Z*@9W& ) &"Sz7<;ckO>ik!a.WJ NO!Tΰqk1s/Y>ڄk SvzNkݴl`ޛV*g,ZJUKwX=i7c1Xy8eL޺2Q + ]w ܗϖuO~'9$3,:@M>{8.a3}<%QA 8H{>XF@&}e4y@R@vC&y6fA0J = 2I|`K&6RVZ9cc,o4&p41䣮'dNqn_jY&[ZD<+U&&&(:H^d3s;mB P`T:eәP2̱Zv,>v[UjU9yWq\nVi [>5}] zVߛܟxާ\r3X`1F]>pnb%cHq1-Wbqڳ8"8Oۨ'X 'S9kbeM׹b3_`bk遭'p dZL*c<Go3wʭ ML&@)eC4$&2K;D3 V9 枸M[bc!Ye1$&P҃ar|2|0"L'#[<Na `dmbm&B0Ŝ F4dVVe[ڿE,kyC L9 ɎݱͧI;V(|-*6 S7c̙vMZJrz\J srKK=|lbAZеpZ݆ñ$k7L Ŵ4#{&0aKcA L,vNjφz#' to38`CN)|OD㤞J!k>{6l[gK%yU*5~͚8G8̤b[ܟJxRtνC7=?!`Cfu&#rlyRb$$HIr[ddL `G0HrPw@LT0"a?0FVX32L H8s0323jl| V DZUv*ӑi p- CȼɌ% 3x=5Ç)Ibk3L`ޚ20[[ԝ[ u,|"ӟ{J:o4Jca*O0qO&qõ1!rWOeHD9"Xҩ7'0͊NطؔFS1[XDFfX۝)kn⤲Oi얠MsxjS0=Sɸ&>!ƖO-saN?ۋl26\\Zb >UyӭuV0P*;T+Vq:ZxLwI0(`-fjud9`t4)X5~2} ȍ+ӎ-L-!'(ʼnKRPP#|_HL¿saJ X#&Av]ob9f4XfW7`d\L!>o̦=kw}TjH9iv3Fǔ%AAd&MdSX&8pփhZ -ES O' |k5a2G|ok'gek;45:'bD"IzE>P(UR~4{s"Id81,oAq~hg&q~BQd!A'^tpo&33L|SėYM/*]3Y,Bs#Rߏx(kTokk+ #~0Ddd[۴o pzDPNrTB‰.["qhb$5O&Hb*3ULx7&0NI%p%3섦(A$*9k`;pY!uϓ6c\ @6*0K`1f.is"nܸbu#? 4Xk%n4Ze nz=OЍɼ#d㛍 t?p-y=b PVZYvl=tTW7`D t^\6wD[RbXX993%rxO^*(#}㈎d%ќ@d.4 b %#~ؿg\X`OR@)ݣG\J8JP\?IY0ݗϑ#~fH(^St?z652Cx3~ei·GF}0۩LgGBb=f4|$s4ig1#,Jh7?M]:3LZNwV;\h5VdٷvX23V9nJ: >MPc.a?=/Ue\/6$hFI>yْ4YGVL32Lu?F?n^cN?;u]Eh%%AN;^ɏxy91d(h҄22Пv3>NQ,9kYŜ0ml Utwt3Pq%hK50UiϰJ,%bMYcRڵ;dJu,5k\VK΄~ɐ,߱ˍP55f }M $v(3a;tNO ԣ4<8+"dĜSs\`̑6On]d6itDe,6m;re u/lǨfa38i{ml}5"bF QPIP M} ]K7+bc5RBE &ܞ WO;TbhSGP,FJ9ɾcOA5\&~c<Gr/X-dd|XוWK62XJHZDGB|CA%U ׶(t!>uQ$Ü)'y /l< 0XTѦɊjy۽+#1Iu\Ӥc$t#0-2`ڊ`3QF8lzՂ4gy ZLR#lfMlk7L zQ8Mb,&}^˪'OEB}:W*k3WD=iZ x4|-<Os:+uye`yT (k9)#*s8#]@}6`Ŕ馠9HfNdN`>@+T2˦%+b\6v{㨎LN~303O|Tn0Aƒx?C)IdնT;%}Y8Ǖ@fL'=u.YʻaŽA*{ )Nhm?VKɂyEDO>2upfm뵶AJ}Xl0hY1 RIs2LQ;ls0KNfdU,PX%I0;z$`ftŠcScٔK%ӓF2Zp=,L9I-BddsX 2,Ld2Y\ҭ HE~#,B4ũ%9,#<2` $xcڅWXT6 gW A rZ ?AҐ[3t&:G y 1- - Z11`,@>Ϭ#e]v];s:lYfUL._]Y[q^\[=fXOڭW.;騫S;}6,a"͉SX *a ( `a&r[rO`v2Ij`. y3H.rbun Ѝ:+%+#` T _SkL*R)B|j%F".> `0Qu$%3b#28Lo~WVc(/ST~<#j$վ|o"˿l>1}_l7o~wmz2ipj<1/GƆ|EF*dZ1J{]wPsrk fOR#RҦp,М%k$z 9dɏjsp1J~=K^;88կ~X~jRD_e߬Uk9/^|ύ7WW~^zOgd+9pС>):;#ϛ[.¨&&UE N),XeQX].UDX,( qA#FiJ.*(g ny<Iǘ}Z,?fceluuKb9\ 'l[6WN1A2">W̓a_vF05oHs} 8"1XWךΞ5eS3Sn`vpPD\[]S:_<9N}ij>#u\8vՑpjQjb,u%+R WFJ{$'8Fb\HTa;Bet_x%R:fG&,>!lIW{+@P> }^ÿ~w??WJLq9^ٟٟRŝߎ{WD%.OOXrw~)wI?1*6jU`QWȇ E2Rv \N˿F碏|<Ԫ+ph"۞ }wlEKyƮn 0e vF /,Jdil&`Hk lFL\eĨ"0)&x 9<睝0˚#;\l=f Y|5( Ô2kʭ QVa^_rU2%#_Ls^J\8˰NUd]ͭZ΂ٮ0VU(Jx}P`n\b)e 6*Η`CE$+Kc29ɗ b,F벤ʰgQ` ňMLtcxH/9|ޠ.\5>׾;I'ַ Z&͹'k׮ 8N>~Ͼ[&=ܣ>۾dW0~yƏˣP*kW .a$ȢX:A4<9LJl (Ed,dN|#IǶZrAahzEs  _Pp>'05ΣDf<^T(7 ۅI$&s8F<5@dFL ӶlY~6, JB(,Y,T)z쬞EuŅL/Xg`J,\YÜěoY@BSK,C_qIvC ), .kk+bS(YTi˲*y6̉ }GEqNT?Dw7vF%X wZZ< o/g.Ǜ}!r/|7zֳ_w=qZ-{s9i>?QA'~'쵯}L X shvvjaR5;u&kv{}k5z*t M& ]-Dž#6 C}-Τ Y'>E/"2t,ӟ+ EǤx)!D6@132&mIPiw TRQζ$v]OSg+ިxn(*L?\mmS0:OcYu|רiY6P&? zV(\WWNCE髥6R&r^׏1f?[f Z'rEs˳_tc ﶕ^ͥ3+fdlQd(e92` Mr&1pGx:mK[25U-76*J6`! &@,ngwOddxdh!1뿶oo____o__."ۿ=Cbd, O5dfSYoo-WWx}6/m#ljMeoܼ!6PIg 9d8vUcb ͭM*."#G)s-B!W(`2 eF]Ɯi`Vd`ԪyRI@ں\{ qZK,Vyyb4iB:G8S4>SVmD3t4ƒJYfܒxavoR7vL|Q̐ ̢*VA9O N'Y7%0g]"pȎI̩ LUU5(vC@hpqv_np0GfrɌSfoG2II?%$-0}r„r/y{=V~ܹsxC3lL~/oo Jח.]OOp5 p18>~0(aH`2=={wܡñV;d's dDRϒLc0,8!8.5K 㽴ڑ2zzl%@(>h*XYsM'sU̡YI lutxWvLTP1]n(gZ>sfό溾5I&wm3tL3'ѸN ~>EỉGdt2 -KMWnq.bFgS8FL Mp+ƲllM-)~?Sg'RPi9Օ<>H|YG}q~ٟ{KK]F?>KgF0 vg׿^ۃ{,Sz(IVVmop v`tq$];ܤ L]:*;I*@ Ք}B?G?q!q~c;8`a>a;*w$r tO}S}o=RD!cQÆ懾/!'ߩOdC?Cybvs9AiO{KY+V3gd}g|"۫Wԅ9YU^ۙ` ہ3(*Mu0st' V\p|֙<{Lg5Z \Od{\ sYfdV^ 7MZ Ȼݮ}7|}E =3 E9):4EY$?(Q)/b"ZV) MFe' z HWIV ¥L?yr?jdxdL,ߎOe:p|}:Sfñd2OI@#/8 ly|??y&@ٟ>\s 7xb2`:32M0촻`Z+[m4=xih8YJB=,\ʅ(Ƕ8iF+:N ,&'c$?%NXϪ08(m-ò.$& (Q"%@EFMm`C+20/{[ffU, i_6˪lO3Uҙ jn5p?XE*$ǨoN(cNW":NfW2=4wٯ&L ˫>{DXh gYDbdZm)xkK9@NskxWX)__buUr%HaHgS6ƾZ(a'ү*738jIB*ͪ9\XέړH]ӎp5DAƵ_e_/I?(`zIJnN`01yKF}1 l qo=R|`vl{Ӂ5֨ڴ3łv{(7Cw`XxHUC}8h)Q,|ACϠsSE٫V*cg& 'w9F+M)A.~ <ŪkҷnVL-NvƇFg:SUTM\~=u$LV30= I8$oǂIUGJzq>,$K@ݑH#[s֍I&Ʊd2p  4S=A;e?__8oxAҬ_\ LrDfP'(reΤj̵e\QD'D:W`6 .t~=jEGj[V_h1G7H/)GI,"l]`ݽjEd־ %U XklZ!I*%׃[)^]kaG)zLSq6N :=u̎fy^ݤ *M_RT>y D,ՈhShNSZ‘uNfXhX 2Qp&p&S,F:Ea!XmX9el<תܴU?_`п'NS[2&(=2ΟQCLy XiP~vA2T~>.B|3.i]2MQ XIƒtEf]̄< 2fw U1Ccd1R$ztQY|Y,sC20Ȓ*? |fFaҳ!mV Y"OM`7z8VfDvDXM}`rEسka ˺eb:9k`*W]AqW,*E+njY~,Ux#9ۀ^UkgGφ#1n֧đ\IS<#XLua R R?4r!Q@Y[ ;++cmڤ5#g%"lMD @mG7{ܘLXn7 &]6OZ}e[*d֦>zI"dZ .a4f3%9|ߖf/E1>.uHv,A&;$+wwulO[.؜xR^7z蛹]CIH}QǓ͸_:Ξ9kILZ^jr;H ~]qƚUɒS0*f)ᬧZV]Ϧ4}&36L:`D>0l KetlTMH"=#SϖTbХx`(K)&Z(4^#p'vYΓ)d.K4 f/D+O[:, fP=W%KL&Nkk+xjŀG/s|ԍQA5lsT >͊@ `qbH`N+D%z&vλm7)]tٓ8yWUϞ Ǹg8Qn\JYpLI&VbrjXuP[ UyE Შȣ.i{0|1@ܟYt~O 5kбyF]T (b (&C2IP?O˜k1w6¼zr֌`c F` g-Ky950TQ& g7n]x1'H䰟`.)f]Y3= B^S/z1o:iWV}VsOA+6R엝Qэ~S|阹{8c, 9cu5cofu%LOV(od CI PEj-~@Ѷ;ΜQVẊQrea3υ{mpLr#jXi/cgs pt0StRE-ɢd/,v ɻR[s܏bEg)Gy0w`:A>aQfIW&<'28ô;W+5J{2ѕSͨ-󣩃t)buVɱjMej`o qFd$W%5>o5d8dMG˚,50zFG=\{٠:42\AҠcx`:{b^*ZTe֏}C=Ug 6SҲ8c<GsP@%B߷݃}kz],b%'66d2XjڭZ̡lI]B8 i N4]/9JrӬquzĄJM!3T ̇ByE>) 3+3~|&,U5Wԉw` L8}%X0MauJ j͂HQn Tu9@$hZTKxX8g!I'k^3dBLtBߣE.[*X5wͰ,)q[`2 0ԴY'q5Wb3;kEr"#٫!Vw ^=ܺgAgJfTL=q뱜ݙ'sw[ScЇKWH̦[lEpvӶ!2Ztϻm=:@rUdP&, +_45I `o0Vd7 Xdfv01-:5e3̽ȕOS F f& OaMF#a|1+URmX;s<N)ˢ%ZlҨ΍C`ITou kƧ`ZfϓF0k^*0^6 ւQ)99|5Qiz)`x]忝*F! w4j3~XD=+i;XH&tY8ITg0ʦ#ef].(KnʫV*ȅ,%#02#@s>q$E25]w։6VvjkSYL>KfY\]`dsZ&~Zvrs LLGy]d{pV5nhCLGӮK^&ϰRPD!ahLMKU9ve(,[n:a۰WK>_*g{w(sbl{`Ck8^p*&٩gQB`=2ǀU\g#\SpR̻P ?2ļhsKy,BeL NRKY/+#<ɡ!S.3J}{)gYw?Ӟf0"2/qW"?j,xjOu# ]eعR''Tky<ߺÁ&Aˮ_h*d]xtNNGvik0v;u=϶z\=0IF\YqgW/_Rf4 =f6 ]8U ]*#3`Mi޲T϶&΄,n<0E1&~Z+> ח˂<{}穤1<0zM&&7;Rv.^U- }Cf Vei(e$%A@kȯ*GJ(P{Ζ 3\q IR~;~ol#0("e`^!ώc=rt~5X/Wydd4VA[f )e`a'nݼv] ߥE(͢L(VzQqSfh^gӥ8ewy4VVSU+1{lV$7O̧?Ǯ\d;7oڹ(3brmm4qR4"J8NHƌ|'XkkW5ժCi%ģN [ rse0`4ڱ&%Ki5.+'ZpX8L)_Zn{W.>uhR0b*ʌ8S(9 EiNd""`2\*qY 1!ۿef>N$۞Hcs&_.Q-¦uG2CW.5%W)bq|f 2AgtnF *mz<rI /HqҶwn)n形:ynn_5c[ɭ]}mW0ag~RbraY,Z4X &gc}Eu[\lYlTd6͞7n[Kf7 lE-cD3wrб2y3qަk`~O &r0<`̀?WŭSmg{Vi02n֮lR5MƑM?)6`NV ?U^xZQ֢ڛCZ9yX8ɼigGzۀlR /&vV8Ȟ4vК0oY2KYoFY(F`#/fXp)*0Y=i+}uj"Hp! /21^61rڕH LE2l6oblbxfBG?\ԯ&j#V'M{fM=Bc<(ɤ8#(Bzr|h&|_R8uZ ׃]۹ Xze㜴zCyH=S+d !ЁV.q.3wʼr,gԁbWՕN"?"i{8$M)79fy/;z~,T2A\} œP&\0[^3f)]q S W0e'qaNʔ|6zXjlT#UA)WP96YQ[ZS3(sN΄EEMV(JƉ>3쇾ݶ6jrn4]Tʩdp/(iǑĞ'2L?U"iROXwJvbwYb}/C}vCtQ={MձEॹGb4lDfʿi WgWn7&ӖftbQeS<VkuW^rv?kb&N7ʽL.,r*\(`9,lb^WŁfy:}l }U鶔bE3K+"4jGA$u2s6fH_r@m\wlxɱy b=̢xc7o*(Zm6'm֎Mx'6 `XvN2@禵-VU׿%CGТ1U 9Y Is>X.`1T 8JK 91sk@Fu:jȐ ᳏]nYJM o kϊzt8*@zR"` D:|U!+JLF̮Ƒ!BF`M!^SȨ5 |)\l&-+`6,GȜz283P7wH'd*d{SgVˀd76,c,,BƂ%Ф~ʩwYfRr.f|{Aָ 43bm4'p5kݼfar"k[>s%ZX\K6Cvc2&bDQYطb6c58a4v-U7_ d0afr.g2nJ2eI` ^$uDV(oZ 0*51`kR~Xw`RX]MdN[W- *C-΍IaFɎX_ Tqsڣڏ,02U"JN*dd8w]"'VNdfն<+b";l@u3})(S>S$Ϭ^;F-fj%Uto{+兼 E{O'.+"c{7zs,HS.:~W/ӔL}iM0"OXV: ky<Uֱd6#Lj>j˗UI×F67m^>_ۿqִ7c o$a`Nf:-^+knv"n :{`nu;}ny>~R0OZ**Jl&I!eh]}Iy&3nD)b*L6lkʨmDc(3}q0p +n3l}ZXRj ޖVgf\+貊2 Hv4no`W\P0/p˿%cn7Vj#|fART͖)Y#,sq0I\` 1 hɢh3 Cxc z. ܯ eA.x(?հV[}9@&űttM0$ ox~j\pUmmp9so}@d A$kyb Vd@?ƲW^g`~~<;u=$x'(>q]OTȋ.bN0ъZX)Iܩ;æXyX0h~-t,d a 4Mbz|`)LlulQ˃M%zڽ!ꒄDEE@]PK m[CU 9ɒ2[!Ī 1< o;{}UV:mB_A-X;N`^3ܳbf־ 6E}QwbpӚ 4ʄ;$QPX糮& ~0e+e|d9\h;JA$lD@$dsLc$< MI ~#IӷAw%Wi=^^J(f &2pk3ŪA$k2$@%+^ÿ1ȷd87?{/|>7I* j*+2+әfWW5Oi{+ww}{SZ< ӈ1XdmDs]{ u$go0 l~:W;XPXtC7ɌmU|mHqBPqbi^p/*u O!(d*T1P(&fȞL*.Qg6hs7O#ͪrjǁgtZfkkg8;"YJ, t:톕wl _ȴ& [:6ڵ7l&Oh1 e T~oUumxZFT lbrFo5Y?DZ<̩N &Ӟqg.vxoV֖-ğ{hKt YP_`;515j8 r c~r6(=Zҳ<YRY8KJU"(T`#' 74ӰM^(US11<)@VZ 58+2&|Bq' D*CdHy5U7@\.JxT`G?QMo6}n3(Ghޒ@MSyFfU?s?s ֽ;7-/Y=E|pҹ/I.3!Ώ۷o:쥛/ؔ9`гƔwᆭ] ~4˫֬Y;>j欝WW=F_uVû6jؤZہ7W!hFmXoۿe# & yAG2 lEg{Й4~ցKc9DAQqEBu3i5aF9tUuT!쎻2H{$tJ9!<r!k΅ GnYt*cVZ2]Q9àdsLhcc' &yLr`̿zȌ*MQ i'r`;CZW;DOޓ27 G,9xm+>$1X LIr<yt"};=#RaFH Ooy/SWT!>a'ҕ7Z|#5$'-@ooPF?6־^=5gôV{U68*1;Shح_'oTP97{!7@bQR5Oy;A|X< Wu;z_y0OSMM=!CcggTCXO>o;|O.݉*IѰ,@Gy/ oX}QXX?Ծkan?%9/}#(h>Tի_q9ȷv .SMҕKvϊaxIf/9kyBζ+y-+r)o}[@@,6&om9glV| KM-Y,dM Jjg ѬM[|~ҹ̾12NʊXcS#$pƂjtܰNjT;"SaǕju.JY4e@CZ5!NeAbD&kE΁ˊ:NBP@sV#,g9mnfX3ւ#0a; F"Zy 2"8w@c&=8_:Эy?Y1}q0#](.ob?~ˠw,'6 P""--]$9G >$ǓI) fH>s~X 4i~| bsp| [.*HYpAvǙ+G=$tv^Wsh"GSKNehRy[C} ga6 ciM}C/ljFSlw1F8{-]dzZø"6b4TqR^6OTM8;,--[#ߦGRtser@44= n9pOef( iʏq*ƈx:F4!2U?X_3?}1ߥuLFJ= rQ 8P8tׂメ?nY4m0rrFS#-ȓNBn//JYBn|%8g*Ԇ%rR2 .8/~Q /m]|#&+a|E9WۭWnޮg:>rE[?!s.9S c9ZX]rW nxVzi+{kȓ$E!  Ŭob€&z0b3y_*5LĠH]ͱer!8v 涘9`tssWR1e%Uc}[A g\8jG$T"#v& vd2\"81䆾ԢP:{4@ Taw:u:nLa_}!(8tk1{S5% r:~ٖNV|SuY.,(ݑzz5搄?ɀDl^x?W ʹbX$Zzɿw#Ř'3[s=l0fs0 pQ:|c߼<`ԪgmW>!zw\+q *8Py묅R%i*ڸ v.8\XP+ƽYR6T`9( tCԏSy3A`Q+gms^sp(P@d6"V[mNZ Yg0U _>Gַz"Zެ훿ӭh ٢&ժga![4q÷{0+ߙI7%l Xc'J Ui_L֨,(?>gm3!W12 'qyn!'OY7L.V\ŜH8seS*pPj?D ܯDMJSg7+@s!FAg#  )Yݴ;Y4=s^ZAY⎮Ƕ}^)-bHD-ɒ/bsF,!7}AS6B19 rFRU&gJ|~cC6BpPlpi6vd|9@=wC,8kxRd9ў GAl4Z4jĒr g[bǵ%Rw-?u- uM6v~[X\{nooL&~R1GUi!HdmK8\\04d.1ڙ>!Xj3O%<*6 yo|db^ipxcLo2q0VTAw @ΙqbhPL"Đ؟s( V8LL0if0r`3!vT9hOⰡ*fe\Lmd,,i:ˑ?t䯵ܪFD a OΞ{q=g"I&ɜ 5O|ǝIF=ϙPGy&31Oe0 636`b;[[cmBʪ'sxȟrXEـ+p>)Pa;]dYHwKa|I {N,V_&bdVwNȥQPqe c ~(HQEr'`Lٽ̢-ÁT"mo**ʕ r$q_g&HX"Y@y񳾡IH!d!Tx R9Nޒܨjۣ߱@`X cqwSqƉTo# P> Ve:jv0 H3Bbvh3{uUP"3np&$[ q> ߍ&gƜ\k`S 4 zA_s< ld+)3 0-+ܨ?v"=/(0sHc-G:&Xil%CޓC4zOxGTl+BNCmc6??7;>x OY>w`+wi׫wW@|[18>CWpq!eNl-7.;;;l7SLzaPh *DPfSǝеY6TL@/8L;>rjc2qpgft#G/,S Ӗ8ȍ`8l sj}:߈n;ӈ6=e91O:8TLL򑚷5!9W>sZGm蟥oҟs0<4m:zh7 st|hSD$5d*^ӢkQٕE *v.y`kG[@#IUĔXPWGF}1bEgGtV:`3n>(L4tcgL:.r4j8ۍk7W(%ý"jx_myR!;dVA'tVsqtd70@ !`6ԥP/0#eww~qͮ^jrYR OcpwFjc0&&1i6ԇ{oўo\e}BcQ7I=Ԫ7?'x'%+j3 ^pb4ㆩz[%~FxZ_]f3l7]ar` 3:u@ٸ?cA 5~kY1=|&mPv~*}[/`hO-.:x!td`\A2N$KFM@#Po{6QNTO;M$yϙ)KGN,Res fiHgBTQtFj]45U #Uk#q +oR ɎCZgCphɩFѠ =Amg䓙}Y;\$~mgIg;~Vw*u]M$E#?`t1Ձ4],`8>xjM3еosJATq0=ڝ6fˆ);e)q@Gfuer*ÃMDԡLôyqi,^c.aUc`01cu&f+qبkC 硇 Z咙UK/ jYv(W($3NUDY6gwk%FQY@=dlF990<6:J@;KI^-bkL% Z'IٻQgrk_\ͭm&Ӂ)D A_Aruhdk3L`v¹.-tp#&nT&A@<"ÀSkYZVleuÙiE"X~E#yNcŬiv]|Ŗ$=8:PBڊ]xQ9 /kO9F~`L\WEaHJ'(|߷zumRל D=HO&y(1̪3W'.-9 |S3 TdanE-i]߀T=;GݷBbB"EƟVdT@C)|E36Gc}|Fdž它ȹ kȕM`D36wmiqC(* 2Q`D(t \tF 4ʘ2jcc7V\̦D~JsEiwv5ˮ׮iCϕlYNٷbɶvvދ~J$28x DX'L7#rTU4K^nM&x J2/lUZ>g۷6j3s)P<T۽;m8up ;`ԉ^Ge:`"ޟ3g\̆}__3Ɂ@!9KP/ΩgtdP|PTaN/I_ JMɌ U6:ֵ!Ww+m6Zt3ׅ Ut.x ]Y` f gԩDHj]yKܚ]ϳd"UύG#[^Z9E(sci#)@s svv㜇9 uX#=Mg?c干}SOY&drOLͺ%`^z3%\So9ӫׯo+5Nt㙷V8Hz F" -Z:͆n;#.dExIH4>xx;8/Xz~ێn; |"5 *ZF//JlLJj!s{΂rkU&I-B:'[RiH+fNw"`x'FbWmowG]0( B.ծmCZBkRh"SR 'QhThqtFeVTNr& Gt7hEAᩳJFL$& sلX>d$ЬzLXkR-ltHȐhXmyV_بgn ۸tS9)}p0/ڮ0W7Z lt hŋ DPy`{sarZ[Y+.+x,.+T;sgZ g~.,$a=wсg! [r@;. &I.s^ؠLeoo?6OB^_W՗D ">֧G/9('7$vBngW^NFFPbX8`Q[ I:3:cG8tTcX^S57Y#gvNJ@I&(R$U ù0C@)`ncɟ9`Ț 㯛8as2t"h]@q١ }LT܊Xh_ sh"[PpCeͣ7ˋcKNŏd1./$ɱFR?& 'nW"52~ǼG7}iŠ.٦oZ{fW>n=FaY/)~w:ZQ_rM+C ՎΖ1Pm7oՌO\S\,4ťu MbUgbO[Vf]2ci{@8kDssEM>C|PfLny47:|HG\q2`=T.i8XAmؿg7)' d3 umQUC@]BݦWtp͢t)#gG5w*,"ȁn^\V.:$T4K |iۄNoy"SH/ /kyS.*IР{M;Dm?\< ﷥K i@@,~"=:w/_$lNT1H!<1ϑ&OJ3qXd LW@7qD4p3(6CX?\SE_ Əv?t Ҳe3ya0^/׶^;_F~%ve 69t`Ǥ9^bgyd &3MJ3 {{*.󶾺&Ud%z]̃V9.;zc=8MF )H?U!. /FW aɊŶ{mV>2!j9X"I!63@kx%Q͏`F:nꢁ~qG: g"g"+2NdA Rmr(,' y]0ʹZZ?_MPN8x3KB]Y=U)5oa1zmy\s=ߣ֭[ PFx>~`}7-kBO~k邐h'b@͛7U Bfw}~Oч0*{^}ٯ|N+y}m5ҧ쉧eT@*S~&ɫoO=m }IABξJc? U~qFϕR r~`ˎg zU~- z9+eڀ9R(HRIX6:$=tW*/r_kdoCq&6N];&= ŧVmP<VgX1%=t&r͚_ˆȐmn l>:8Kc)p@7UD6e)dL~B` cV4& "8&+D<!N(ˤbXKI܅&cYks_S`רB/㢃koLJLXٓtq3{{ Zn2c͡F`" {gs"FwHuw 4~B(xeTB#]Da 'nRѰ&@c (V3\Cl HNտ!aXGy4uRf' *#9Y'> aT~,P4g};ƈ<r$Oח cAyuGAv[WKxU*-ؠS[ ͩ "r]M7lY#INӗ kU_%1\^sh6D/^׮=iׯ?ּF+WP)/ G Z vvw`hmKWo캕ə'25$4^,~W2'lY_cvpJ[1?gxa^#gH+[Kc*Y&7;4|-B9ɰ=j$SGZCeE "!E 1~*$e\ju xs-k+wm6|y:k,543%s*ퟳQB __0f&'e??h__E/XOOio8ũ(J>|N "&Tr8D+}N :J dL{58;rlk!;M|3w}!5]؜~{wXRΏn㣊36SN<ۡ$9-;!3Bd*kxPs 4Lg+DPԂ>3Z.hc\$`tGG΀FaZ 6MZTʽOۤ_ O<Ĥ &m$yρ7FLhg͉\dQ%?YK0upLށ honԎަj/"^jAL1ci63-lqljʋK v+Gv{ ͮ=3;4 Xjs 88#ZAƹ3>Gĸ=l+9[`GV=z䟥 O:rɡK%6[4i YM=xk 1t~xdbQO|.?瀸|~h*ƱBYG~^Pz:l s !AԳc]֫+eU: YM]3YH- # NSs}p-UK;ä\e6/\j+U'6xsҍÓyH>W*nK*YiXLg.YB4h0D']* Úf=X ]-k__?B@jى퓐E ><]7&SM_|`4 JJ8TNjjtўx:8'-6 g*Ĝ 08 ]O\~3O4ƀ#)n]>ގ1R&9#E+{vx9{2Ĩ:pw TWtDHSdI\|2<µ%g}6h,)f"2>F&: ˂4pp9E~!{Gop+qV N F=b)gdv8Hv5%< z톭^,ʹ3R*/=x?NNz 9Q| 9=<é;lSk:lqyݖ|s"lb^T8}w,l2MX6v7qXlqsVuS`TxN`9(u8LC8,: lĨGU r155~82 q:荔 EM`"V3y|=fK7`CiX4CrǠţx9`Ih(E@Hg-?s+ה1ɑʸ8?C;uC iuk@,$q3UAma'ME%lIwܱ|mZ1-6عe܊y;<⠅0{,/)ֈ+newo9up;TiE;nqa#@kfUV6s` wqF\UUuÌI ǃv̎l\@6`jô_$8 VFOY*\s(qNiHN؝Uj5|z_rt01*k"T1㙴mpvjj9futagX!rS-3.~Cgbw5MZk`ڷ~fjG`Q}ߙAUmlL.Q0;K=lr|;[+ݝ=& +-xCH:` KO.&|fR;0 WVrIeZ݈yf>ldfQ k¾qeÉ+-5w6Zy^~#[=hP>gC~}L~6\0}ЃVP^uFs&9mY'ð jq8bvߙwZٸE)U/nZvΟC~70l]i;^ObVڜ&prG0.b HFcbN]ah2>$;Q1D<5s٤EG5 'U'M'qzVy}AdU&Rfwz +5$8KDg^f!`TYCfP"̯a݌x;ўwo{ӎy͛2td eZۑˋʫ}s46w 2h >$DP˛óơ"` cgk>W^R c[;횘RXT݃ZĸXJEh*aZx-9hzh_o:Qʹ鹓d%U{96mB~ϯ)p*U"=<ؕpDrf`$Bk!f/ׇ0N KhU9jLDbfT?q GcJ5\:JHfJ% As%R9gA#Ci]|}sMp6ca$mҫwWͣoK1؜]>T^9;/}4`-vp+Z#NF+/(~^ߢ&?U`-}𐖐1M8Igrq 1@X!7radRňQ?0폂0d~}zA`@T^ǑG|cB͵c'H?Z9R2-z+*]с_3zq5Dž|݁qe= 3Az-KM=}0N;/: l[|>թu3n:u! @;&lkNMggu˄&JyPgLC.XY).AYk4EQr`*AnQ4Nӟt.ѱx,$G |c/ \WFv4`w0NVH/٥O[ZHixB6[lViys?؞M'e@Ew0!A=Ft4~dWi܉39̮UE_gwtS;L 0Nqo{GvDU>SNsnLљuYeJp1<wXtoRyg Π/[*⯏CH ֱjPMYaW=l^fv̆@@wޕ*KwA}C]F܂G:6#B V\<~κém*;vϿj" 4f$CzٳߪMꬍ"W,LZЖpm[,e>+)K7_k G8Ic]aK=W-x<='k(H$%B>C91K |(D3x(9ŲhѤ̗g)9#2Vꁦ q?^0-PL8 OcӘoE? gi.O%r_l%6cF`g֢eS+bczp}}d. miqm+xX˜ʱ|wv%sD;H >ܶriNqlFlwEU~lr;0M=6Má31WkuҴ/Ӕ'{PDzhzY U;to,`QS%~nrFy}zߦg׌fF-KeBR$Pd?GBQPP[JB(HJ8ĉmIdk$ڳ}9o0%kfoyo;LJO)IuCھk+a,X er!ZR,Y] Yc#AY\Q#&eq[}c_~@N)Fۆ\C1-0($ {r8<=->9k1[}ZyvCkسBiJ7lc lj ◬U~$jEk1la*b 5\+g$ץhSy Ra?~E) ogA7*)sqʃ{4R1J2q4T{#8MfH̰kPO3:H 䔌#2v9}؇'.[w3Ztӵ^zG4PDaYLj6~o2%8mqzqVQ,rvvZo߿c}9)˜;^ˇ ;w~E~͜T P؊m2eN| s2y&֨HB-@D`Qm5-9: @BC)NT*`U:ZgՃMͪݿU.ۖ|TlXE>N V_Mwf'%qn^⁘5 kF{s,E(cz20*>܈ع[P>"`B7|oxEuEm?ں,D4)PYkKg;HQAǸ Oֱ\~Ӕ*@xYZbRU-(h7[8UX y k40Bhmk֖/(@"ӗ3ZJLMHVzӚ4<3S =R k뛚*'Z|ގn<^X1]ɣ?+gyOߓ>/[r6ؾm{k Te^lݺ}ۖUYŀBwa]qL ֍hأpu5|{Z`rM+ʬ "S#QNֵ~HFgHE0pN=p|v| 2al4vfqU!3I+cs9iygp$lfC8 i{'XTjLOYmx ]5~wR*@dŒ` TNV#9 8}3 O`Ҟ}7ݸy>ǚګWbMw=e(R.riz)MgZGnFlYj 8.nJK#ʦt}H 43i:8dR7)g,v0@@d'z1=C":wk KA OD#`Mĸէ.̌X^FO~^'[] 댭>|.\*)И,NV;673 j(t1ʰ:-;ʹ@YMla윕Jy^/ͫM8B־hXRQL6K'h!e 3s/[e+6ܽ'evkƲS8-X"WP$`Y_DZ( Q@R;+|u"V'IZ E#9W\MDȘ jw!c3V9XMu+`Ubd̜fbÁ%Æwt#9KQ*\GkFZH=4V>?=_J͈":.*&m";ӷz}VL7L B ,Ȳt`ĪAm޿lf͖bSTaqnYakw ;0 G d'2D9.$\I*Srm lk{'_mmm$g:á&[6³ʊ@>v[߳>cWL Dpl Yauێ=' 0hbk_xU56 0k#ų6h s4ITn "qe-Łk_ 0C6r//?eC!_to’muoHռ;@9= 9V86g{y\nM:<>O6>ܭ9lGrpqdaG3`yx|a]2tސ:ȓu, @LU6FԷE| ŧ5UmXB  ;h"kIԳ=/,}Q\Jym?_W_;ۿC,paat 9}x≈H|Y{vv, *73?odP:]-9 A@lop솤V*Yp[{N՟MMwO<` ;D[hZC1t2$5V>/ u"`M'!`\/2*nzl0Zj^ʼf3k +` 3NGΆ&~ҫF>l ( =PrKWKu9`@! % DP97"1:]Qd]dz V)-^]Zh%U i |ᱥm% Y?q= ,bnCаh,eɬݸu[(|.3olaށ\`2os][=s Vv6:̓:S ܶ-:U&Ja45{ؔ]@x:]pI͉(xQjDe2 )IU uVum0jnC333`-w8{9;5wa+l$Su5~ 9^+64 j{fcQzՊ`j`,ݝ+ @Xu#4q'YnIbi\1/>e.;lEީFӪu 7XTclb]{GVHHVx!Nݬ~1 TdM{~ ]}LVVũbh" gXiKpC?CsY!<'HtLW2yƢylcs2y %զMfjO]h/z6-V`ܽu>5~U:Aplos92J&~YUfsqwM>4iwZ;E) RT,OMY ao3as&3sR%bJCD<6 5la~Vm,5W^N-( 4ys7E/ZZMjL2]4di^0FkO `yC fE{K/Je-F"D! z ]ͩeԴ ZG30n!u߿X:N< hv/UԯHFJ7S0+ss`y1pKn*pʩ|9fn|^ xxXUmY&huX%/ڧ>)]|32"ݦQ/' ٳgx޽ {h>)AX^NgrSYݲ|dٙS>oifɦfղ#e&S(kW AɐaN5 67mkk[m$,sJ2wp%K9s!K%R.*wTc˦V-ri%rv3}x|j*Սo+o;wmn[x@Mar`L,9  %^=  mfrZFh>G2w-=fR"e~^ɈW L3.0"m?z`;_[wڻVh٧]op~8tG8ERCds3b vGc~ysd@ -w[g\#C N\q +`fzV] `DG63k^ڦy/%8#ǒAwڵk~y^-ڰ)-S_K?//ɴI5pI.z|ǤU,iݏp|ޣsS>ʂ>ڤh4g?}sכ_~}+p~~:q]d_TT [Ek6Vo5RnDxncOY Y405R%b:;ef޹©6ͤh&fP^}}#/Xf4N+uOv/mgyq9V<姮bS5>3z.zv͑.{RIIlѻi"A=Z<8! ,dE@۹K<~[j`"gBM ȗW mSOB,oB3蕲#)D2m{,'f/hYаZ"ñv9p7soi[k^Pbm(Ovld 7yLY~|_iA2/vu~~_7Z{J 32*3ݮ5S̃)i .=RTyɂt$//)G޽{?'}aeH}4 n4bMK֣/[tW}܋zc9pO_nӧeWK&믿ﱿ/ ̞?ȏO?m?? F.zms ߻MkS>7zc\8o@h^{B6hSMR@8 C5wOӏ۾__?/|18{] @>Z?ot >'-h\˲=Zf{OS>W~Wt'1}yCxgWNK4[Pe0=5._X4m(xRkF>>k \::m*8V@goE;YݵW$2`!>N}ʍ:n >0CF+׿V)RO S7Y&+gZ}4s5nD%:rwbq!E`qݸ={|}]WNpa9[x<ޱZ^X@?ؘ̌:7RMJ,WyfqBk"ሑbsCs~>_+}(_d. C~]W*?h^xAf~K2ȿ7}RyqJp¿GobnsɜTl-V(0^>|) ÃX0zk(AN[Pr5 WMںtA]{.madNj=ԋ$yeVS}7Fc&Sɞu^+be `7u*D LN?riӹY(?Z GkF| udc8[t-⶷yˆmU>9xqWm2@㖼DNve[MUֻp$z3Cldf =de'r'dnKɉiˎf#(&fW̗Q yCTkMX{k} iPHcPl:>l;4R;9}{U9gU(_{(2|P]]_dsl!8n˪6=oA1bX{+d ӿNQ*qXiJ̡< E[hlse6 `>6_WwoZY8onlF0a[2@$ChDtі)zI0h9,E !'ŬokRďܜ6wGU_~ pӮwR|ډ8Ne 1d᧤4z$i$ -" @ ] =kQV7pKHbGSӶ@V,rޛ]ݕȑ=s_S䑛!"QÁH4#2rIcɆ--̿'+ ALY_(IoV1?Ed~M ㇀E(*oo~3`~tJ`;Yq ,7bE`kZ=k #쩂476tf҆㦤f.Z n C&r1]D4b_¯c';d&R}^~;S)c>gW]{v IoYlNJ\h޲b"66?`ݰ.XaH5qaf8"Oh7j`~`L GTb萾5js=j%p܉}O5P4B &Z=l7Kxr;vxV02<\dcG*򓽒,^,,,tYa_%PuL]8Z Gb7x-5_.V;|޺:,mnertiQM9v lh"m#eѡ*k~-^o~7sĆ!:GbV`rH;?(P.XSH"Ow3L*kk ה=5>ش^klmٝ;/[X0f/>}/%{7,,7 6ߧ&㧊0`""K`ekJ T>pE~CٵjI MUY:EsIyJ`yXF[U }RDb1498ũ8ͫE1E K0 `I" q;ڸ:Bm_uW lwG5!ƯF)Wɡ 8~X*Wޣyv2\>/+.qA2Hiz0|2£.ǖΞ2i < Ixlbޒō0 ||w7'稲sϩU(?B7sc,S)F/T]5JM70fZ67 4w*C{l*5=~Y.vYyM{8PaslyUDpXNmQ#i٣M @Pa+7:N.{8MF%b9s6n\47|S*\1`s!+RJ%yQM&'+P$0۸ÏWH =V'\xl6+m !}{·Or<4*4[}|b+ʼn~*|T Z%JA3&yC޴aN[)_P1=MZamnzC[f746, ̊ݺuۖ:4c`yiY֢wnVdB7'|]|޼q] W{*|aKsvl4` ;n?q uɘڅRQ,NZmoܓm{ ϑnF8!a֯gfξƽWI> 'QCZ]iЖ.#Fd 9W {؆P1f!9'h]\u-K796Ua#D V]nd(IGCv},@ u2XoCecxm;->GA ` gUB 6 K Kv+I(5K[;oٹOi}CKN4Q<9^ִ vTVjceV@sռ\pW[(Z ,}wMSD!ljGJ B9YMT 䂠g-k#̎@ʳV[a㦥I}pJ6Єf%p 2jjS5)Ԕ ԒBgK.,30Hbʅzk2a޶s+2dxZ34 6ǒQK_ķ[Ԕ|}[ /s` p޵S҅6]ƶ}Q]`kkʗKŋ̞?$ԱP8`[^'nӧ.[~o]Nfݦ.Y"5 &Y@Z2 5 YR,n3U3UhRjxAIN&#V9+Jjwd|Ţ dt5$s! Nb{>WwVܶ=SOx{zHA:6B}NkM53\ժJVn?ZUp,U^ygQj ?FJZѱӖMckMvrӲMNtQ!ZRm;|/cWc<{ RT[@ z#ůI7;sl7ba2XL\ӋXbᴬb6, vwx ^+Zaat'?~pW>kf^l0CbF`TXZɠ+B5.:m冺1Mlr{Z`NE3׈ ~2>¹3g.٭X:+T癄 CG S?q*#"ѐ;*4Pڭ-۱_qr6 P<Co)7d9PNd^U(@qd5K3gȯ*iw {n_ņ6bt#˪{&ul.eyN-p4e++q̑@![׭4! NY,0 g͗ZS 44@Oi;eq_[.)،뉽cE"IY(FiMZfh9jl!2DkEs!mݳ3π%,[ܒ`ȣqho|Pމ s1+IsEdbI.95DBLzZ,;\r2EhzcoB6Su붱#=KwIjN\&C!X ?6ҙ q>'&rbD>? 5(=TVwPϨELQ(^0R( Wn OK&^a 9Ȃ%yݻ^$iQ,ϙ\:aW_eͦ3@CmS> D&<19n|,;eX+20W-x0nܗp!st!Dܯ3N*1dw ,x:Rk CY;&fq߳?{+_DSvFvf0䈉P@|!+r3re`0!IV9)CPK[Q"4`\?^XXzDȠ.6hR^PL"2,٠Ӗx;>-z`%{rZ%&&oWnurjVhZ2~?%ۿtR { D. c;,`niv`6h,U7v,3Ѹ wVׯ_fi˜*0F_XX̼Mg9l2k;;4IX</X:7khp!YMюIFll~(=el"YS!KlN0n_X7L7r 3ȣ%|WHK܃gC\kVYtq˂5Pq X(;{N~M)G1= zh"k1VGWFM)+E@mtPPTxw<Oգ*Ϡ/+N6T "9Ė+dpUq܏Pf,4Vq 046FF {#vӖKv5Mmno$̵kb|QFŵM{ʉT!rTFzŢшa"޲oP}O)$ʬMēstMlF_2ܳR^{ gi[ԴMr&Lek Ԫ$˛HMةS͍׸,ip*RĎstl XبcP8a+Xîr|~|; Ӹ$$RRݶ攣3Z4<#I"~PXvc}lF+u ;86qTi rR"OJ C{] #ˊw4쩫ϫ*?#=&JC,e<>grmFdlX988TUgZ:-C#{W-JB:v+LPj A:_`47Bce6n[jھXCl'oO]]|CDKK!]X<?]w~S,s׮>k?6M'V.SKњţqrl] gT,ށ>uұECmP[w !wKU^gKODV>M,z2ElU6o.]kZ7EvK"n}C۵i71S/IlvWO3/l޳ g`NLʁ3Oi4J%Y|`dW._6׿"%V]k`; mmc *dhLׂl+>b 5l?^֤K6G[-u8v+ S*+|ZG*ZX``ȔegZq]^8C%qN dèb`!_RnK_,7i5j5'gC 0.T`#", r%{ǯ! k{Du9V\33Q N#9Uq;VT6 T0jp|kB>6hs'X.cq'Ny';owf~B:EHL\;;V{l[5i1Z r /_lwz_}mu{O8+saZذXB޾ƫV( q;w&9xΞ= 6yhൺ~VuG Y6P@VF֪nYizr9ծ=Qf ٩%B E|KE^lbz ׽+EqY9ZiENj|bqayS9dTi(xd{@9bt(94XԺ=2bRq42ZGw_k>gܤԃIwi$KezifA8Zʙq2 [ 'm>'X-V37v?@ $-(Gug]^bݽ-M 95CA@_SH#sۛR T'بP+کE5K!{"]SS3l@b}jah3SDɜc_oHْz9-Lw֕|@ vklpmCyPm+R6x@>Q{4M$p_#:Yk}a&Ï,rfs[þjAH~)qd}ª%j.dN 4s_[(!_Pn@kzw:7SWT^{WU`=fX 3$5WvzRI&*G7pS=dR\v.3ksʭը@45+s| `@8-͸]m[RTfB8\$#kX-X,2^ih|V}x|cC3J(,|= 4U)f]#g#Kc|#Bb;`#n =a+WW׍-Yh@k5۞Ѭ:03TQgLq崐KV yRśM&J?":ErjkE2\d8oZ'}^̀=M3Av蚰Y} ɞuzz^t*J7avW~_Шs[ !7c07+~=#nCYXw8DrfEMܬߗ9X[kw,M9AŶɬ/]6wdW_-Čz ''zh߸@|f,]>Aoc {h s0_7kOeq|UY3xdjŪg GR(@.a[d՞W ilP c\#״{}٪4dWE8ܫz>e*[O'!0nL#УZw*ݱ[앩h8yz3\U>Y'rJp0(,;(̓C=ʰ 6bȲy"d 15&cӅnG;S,.KbSB"@p_Y_k܇_k\ZwߖmyM2R*W*N5HՒB;:BTjRPT&iYmkkÊ$2pkj^}wf'MT"j@жŅ%6ط;f`?+WO``K  VpڃSSK6?;^nؼ-^C>CpR8M[xlKʬؤbІcFޡ4v7)@)7\:̮Y!ۺ2> 6 - 07gU[:s:lz=1+΃G~O dJl0r4T[7.ocsp/Py$ rT[866,!NNlvQ t{<\-YuXg.O.@ހ*.n*Y%hax Ÿ=}._5Mk rX~nd Ԋ!Tʭxr|ؿv iSS@'y:xJ쎔dwC8% i=fm&k̩6v-Vh̫IѮw 7vR~O@-*G[M̫JumnXv[?MD]%DQS˒e,6{9gg#0IꕪC8Y9o 5Ňilmǿqv!g^gϟJ[ťef'- ۝[oZ,pz1 3egch U;ۯżg|CȾ`x/F%ԛ?芍Wj %V#%XϏK2h& ΫN\j)igu#7WC,:] =֮x*:o*j=b[rY pq?͊)#k*:vUb0B,6,{؈*>UH S3V:~Bˢv"|[6VbLmk{ÞGe@#i6B< `o\TUb!/Ś|^S#/>=tzxq2ݾ&̤6$e:lvnrZ]=eb9+Wj`QMP-ϓƔn`QB^5a34/cN]F8&f*iW*7HsvK8z2'bzQn8y<&F(Sq8+mn1 }~6 _3=ah-F-GNXC| +<+rL8bH(p A%줍H<ߍ)=捖:l%%{ވM-'b'jeb!h`YM8-Ehz4 )ilm=zV=kŃ7TD2eXƞK`WSrjkj,U zI9lή,Y `g6Sc8lf ,x߮~-)l}sVTnV_n/*# YvKE7q<^g̭{o5J;ጝeҏz-vܻ G -X_߰{߱T7(m >`5W6s HXp3(15GxL:4!d6쳜&͋'p 7kx)7; -@MDxxݎ?u(ic0 j8߼*a % B Y"~I5C[yl}i4붻Cj?=r>Q2tYxKBv/Q^lZNKidf2_v~y˗6#͎Uduq?>168YQ ٱXH|_.@/(po_D>ޝNvv7-L`wN!j{wͮxCڄpB^ի 5Kx^',HtB *! b2mjţk{vM;9}E3TF‡D*RL:$Paϧ6O`s1W̧A@f𡝟0?f}W?0_qnc bJSZqc $wVͷTGѥ maEsز!$mz]xiu{՗ms+$B$б]ftZ KڐW3%aS:շ͝V޵d"d\j@$=ResG"C:dvVflp"E>a`Om4z #+ 1gmbrACl!I5ĩ6wv=87JXsďcbn DBdSLA 7Ukv)[GTimiaڭu;=DmG׃&l> j ǻL{_%<8XR9Yqq{ndjB:Nn`})04'&`Y;)[nUѰr[dEnP'( #y-7d%Us6!B=`sMUXZtDboI+c$Sqds"C0e b޻{^ 0P/u?zrwa}tJDXL)lw`eFY;{úlca!~VK=B69sҷPj<B eZoeںƉ" XP㘟rV}yV[M㜆6Z&# PhG[X`ϻWhSJsXxÉG9y.A P<9 5\هivLgŢk7;!W_ד4>,dYlDɥsgƛr4#0]Z^G,~Am;wS. ɫ-'&2fʍ]`1bw &O>@ [!m8+c3rL+Pڌ J-H6мrEM#pɱtSq(eru k,{D)R[]rMn 㻎FCǎFqsTkC$kȿfS> O}S_}Z~Cߣ)_g> ̿_i[Mqi=܏ȏ~1`׮]*h䢙ؑ_/2u;-ʹ0'i-sO#etMTl{G+V)c8stӜXFZځ, k-n),:#ߛ*[vmffNĹ@m(ATٷ\zB̎4ϛ4KiRv -c軳bIײT<м?ɰ*Ov#lW /^ ,X2bsKW_`(mϟRIXW=oltggݦb˸),HKQF~N\ɴ-Ҵ\eޕ+W/ 7D[>//g?Y_5.{1}h?b??!u˗?I_;{-쁙"`S ^G/E i;htpi^V-68⯍6 Z,Vnq`clkŢYyd7~[B>sKB0;+4{h6^Ww n5734ns`:{xMqf6ǚBO益rlT>;ZA0bjz&b`8};yPhV)`Oɫ'ipi̔y; vmn7-e8ͦX޳h<6`!Tu|oV-R[<ԨzJQL}Sik5 ph5Uoq]M S!3faGX>;wƮ}Sҵ,{|t@oh%c0<[Է9I{Y⟓sN}:wOOOم% %0a(ZesA) JZ%eYfv't'|2;̂׋uwNuM|RLbres/.3 O퍬rшПl*:jtB3,P*C-jGE06;\7l383Ž.D90\a:\Y:r59êR> @xʕVyi_얡^ס}pF.)^-Ue@`{ 9F`+m}X| t\vML6*:"ʖ8-ul8-mV٣rk@"xE/}16TU>zBJG`Bv)[HN|q-&TGϙ>-d0NG 5j`A"n_\=dd HtT6 ٮqKrO,ddY * G? Tx`]v= jj9:ؽA<Ɔn ^aMN6twlE g-BZz{td}X*9.%e[Eb!B 0kv첵Ws@f#3s*ˬ>E-*Hg nS2$>c*q};ޡ9J ?KsǽCu~ܹUZYY9d Ѝ+yZ`d$BETd6# 9*f=qaVN&=bo/zI،,NYQٯh|HB É񨘭6 +3tYeEU kƢL'c86 "} JSqJ% "c2 [Fv.Iа9u+_RVs  ⒱)<~8uN *fC ێM>Bg 1ZS+R EFTmLu">!u-pRa3iI{l.:ھdN L7}^Rf׍=¤!x7~5g8}lʷ7JPmw<#r3Ci3Iu"գFfl) 53Pd},\xQ'[~|x2Cps}ӟ0xJV%c$Jm0DN׈vU9=iWOf]RĀ qkKuRhS5!vR١AQ:?fS#NP\@NPĖawri]<}2W!z%98C!e yM'E8j<|,KE_JTqۋq{s Lq[}tОG)& U{2 VYo CژNj4Ib9xqքlee`Ր9Ҽd>O$}Oa)6wzÜa֩&JO3ОQ: f̙3(xYC[ #ip(Ce}Psj>qX6 5;?/[*AYȲz8p-{N }<SysG޽=kygw}w=">enw/oܕQW]{Ub!5 ӳ21:.*kLnì LH3'~SB~dE!q3VƤi7"*Kz Q0Mçi>: ? }'lnR&`v2Q-i"y%oJ(dm% VYee9ɤ ,rkqågq*%Ҋy1PW.^ Τ@듅#GeqTC;"$mXuTkEުMhK$} E{`uM=a,޵/by5#{x bU gן fSgDN:9UMnpN}N0C=[*J4R>Ϧ܋_.kg=ohdQF)bs" d-'Z썼s}򓟔׽uꪜn,AMNC9qs6p4`.-5Y\q=(CD8}Qšر)͢-ڭ`Zߩȹ'deuM=3j81yZM FXM΅$WkUy?@j 9sؠe|iچU-ǥP.#j!2p29S6M){`;{ø~32P

{\4W:haX<%?X_dA\Zxa@я~Tc?cSů/]{!@>\ui隚+8̊c4GgswOR`%Tp$,-lMTeTi%зFK`yT (0+N Qɵ5ww?wXUsVٗ8D뛳eF0?-JJ~iܑr2%>Ďte-*,tC < 0,.ܺجa)?-NOX}^َ}o\p:s( Rl4љA]q9lU\ЧΉd@$YhyO[UqBxEUz95b8dwoU 6ѥgz:Z: v&:l-XQ;@fUmKj'9%3[`c.!ܮ$+Ų {Ńסmb&c$-)5UOoUf::Qj,0@H95ovZT9:t%kq&Z,7gCɳ<- pEAFi+w( DZF[*fçhݟ\ӧ=q"pn`d o|/~& ] ETv}L%ez3]Dq%[ȃ!K:/|)U]\HPʲB2?5 v34{*4'T^jlq{>I7ڼYV 2Y=ɂGe44-HAäѸ*{1kkP;V/I|tT\]Ҽ]9xZ0VGhdB=!C `Tu޺>JuDX<;. >pJ?~J:`Uoֺ,.dkO[a8¶,nUj3u#'[wɍkO'֝H(i^C[GEhplXz ˋǂl=b^ʥ]#&\z~Re(%>Df0ώK;qU+]*9hIBzϴA{-9l|#/{#IV==w.%A~ӭH`<\J㧱Q:uxg~ H'[,۠/%-99?=8ȡ5A}- ` N&dvJPl, [صCtyL NWJ#)!,eldJnܺm?s Tf6 $HFښ?=b #sh_0]ШẬ *8Rrl@nh С ZHHQSq mJp&QzU9ʵxcJ[bs4.@sPL/$A EF +jnNPҊ6#'OUOUQ#2>1 6Tz_'Q"_8[JJ"׊MpÒY`sgoyp⒆N̾s=X@(?)qvv?-vW gD-#jVZfYXwmޠL ?e8~D&ty= RWQO>3R퉤qАr9|@h~ .<#~+~We{{ݫ'5 Iߑ9DSMJ8pӬW44Bn)._TZ_, iebj^}Y}{%gӥ1+{{u~#\i%,5MO 2~w(dfB>U*RK\ӭyg Er-R`-N-8mmKzVu?dY*zw*x"?yH~ܽXb][`ZR^Rt9}J򅲔WQ2<ȣb^YYE+5QAV}2 ;v+mhbrV֖.≗Iw`QѱiYXު]SD2[*~+ u[!I%S*k8qmU*R-P|$50fXԉcq{\:1C 1Yh@Vnmt%$62 H900͕[~i]1D?MmRxME~W/ސf5yR!33RV6V*A\-OI8Ȋ@(p=xٌj\1j\@S ^ kZLy}8thŃ`(0aG(9c҆aczI#PrA0n+ rUGz_w:M1€ޜԧb7\^6%ĞYKTS'‚8MFEB<`> ɷ-+dvI.;bw#4*pvZ PC(V rJ6-lZٱٽц/:Ҩd:>ݰHPꑇA|Drټ pVT h J\[s3,WuFsLa: f$ I-ļSߛJtebrAgG*K6S@\Vs{e @F0ܞNp lP.'C!yTXUNmKyyY΀\mكqG" F> pU+K*ve edqQs7K>+wϼ@h1tC8h֓D5+;=ٖyyXCXzXlघ,″knVtA!_RFʞ+ U-jJuma!s9ٕj*|SCpծfxjTr1Аìɰ ^klwg [)Pϧo6M{N^ SC<\bֆTz*̐/絏{rbFnnlf(a#!҅`>m*6&jiF#3DInbaKHdbj,˯&yY]CC]DelyeS"Z(0-*#vqhϦ屸VqiK@K ǭkb7֥ZNeH콌#j KG)I 1ΪnD[{xD<&M._ H,>̲Ti,XzO,ȵ_bzS,d}q$ 0MGl@;/IH*MN%J69g㇜|aj#1`5Wo<*HB@ߡPms2YdXQ 26 jݺ! )-/yKCد΍yhzł` ^&jX`v{lmli}xc7L y ݡd8 CO00 3iހ_QTEebzQ#H<9t:pU$ch##ijnmmk.333rd2M}Β3㥏O_>d-NmW\0'lj(=qֆ]NSgP,+^W7VVtB0{|̹+vl,|DL6V5 fߏnV _5Wj4:q lx_ʴ0267mjXΜsҺ-&ÄxO@eL w}wS5Ɵ3k1s"A"#8\3lob(k~AoM˭e qtڄ:.Ck8,9HeB] caav9Pom۫Sv_i^ NE6.io#gz579Wj96[I/* 4d`'ܠԖ6@sL xtE8@轾}Sv[<&@[c(/ac@:[}__/@~ HAVUݔ$m2ZJϣ %jw:vtZZ/;6T ӂU2F~ (C_4$[B}APrhau$ ڰ5Tmm0=0nJ^׿Ri*+5896#2x4ka}uEemR;0[W*|3Yr(_ hdi#NC]]X% i6:U肬=lݹp-bI8yBUt FUrvzR [`tMOH ʢT#"M\X8ڇr.D9*4)<; IRS~.\BdblӢ6 baXHq;ggƭkd7ႅ]% gg m%|AΠhf.Qk:-em:PDm`m0lό~GYYN~_5(L㌺ bfvRgNiL.3ѣ-Yem軜H&%@třU\4q`'8·؄f08arŲ ;84Gvq[_#T{Z-\^}~ PЍ Ξ͜Jc|cCWzKoc8X#uN5/1K.z rVٔ.~?hx}#j~!- /1561/;[*(u+1 6WcXe p ]R FϢ@XSpm㱱FR*{hhYbbu[]e$;زc=}em6DFsȈ 8UO_4MQd %j:m *x&Lͪu?´Me6-'ZUnH̴ߣO5{z ΉVf*^fS6net 9K׮jcStsE)+Lo-4[]ܒ hq0`ZR[7[%$nk8P221{ # 0%ɤ/|{ڑplZzmbUX:e'NlLLҔܖSś`8s,؝A R$c @tYd ?+~RqAZ2Xlfa,dụ`=ґB>.pk8@-2ŊCSbKw 9>V}̭O>euhynfL;%6td.Ghtv\=pV ټu{ rce  IMs !<9k72Į!ΖR@x-/G+*'ظvWD UV7כ`Xdbbz:ac  -e/~ѣ/ Y%iKcnwl>~Vak5nsj^hjj ؘ['p>q;}23Lli;!MYh(v@mx\*>3f+ -g]IRi/Л٦lA'^Xnk@ Um-jP&H+5ydxQ!+e= jlGtl\g%eAg٘Ψw^rWFA)2=Bo=7Ǧu=y˕HÊsRT f'ea'R:b1o,UkX0Ԧu + |*z;:zj`f+(@rXL ߷OMǞLL.ʳ"~*'ֱ)՗xlJ.P&Zm(bUT,jK ĸ:Y4AyNi.>]0M[kmq9v&3:lNWv<#ʪL211X8XbBX9gop\)?i- YTpGe7iǯJ:pOPѫZi-vdQhZ-R*ppLo!7:­v_|r 2EoGZCx{\Y\e[m&hL T aMO F nKuE+,W+ڻq{̳YH5-– 6rdta/}^`/}E0+S6Ϧ@} PzL.)* TWYHnNVy|rF78'=qy—u ru6_baߕZ(s'%/u;\3OhvfP6yY^ (srQefR*kKkȲA%{0H;\ u5Tfr-bT%d$6^6@-l̐/aJ4^32A|TX؂<&Ӫָ-0]:+%od/밪nP'Equyl f}dfF] @H/ Jr }CG! _S yIFi3$A.\dsmI )xQNrlM7j7K>)cct㊆R 2er FS`XZ,} [+yS2ٌ^+U^\\6"î>,7 cKΰS;kZv$5H0XUSJdԊ9Cz/$_]8^p^:g6aBn0?Jr^sN&0ӍT[eBIo"42+stE[aI͎ױ6ZOJ8̾ p.aI>72uԴ-=lfKa~.#|NZٞ00&cX[;ٻ-6: `J=_^,ؤC(X<#K'e{RiVLGOvDGf2R2k?Ev{)img(YlZuw}ߎTeȥ"sW3C@*جݰ]LfOYX|Tv2NUٮ LP)>mn2V;#{{s=ݨNgHN,RpZ%ɨc&0b5(6Ku)@#K[6!5!ҒLLcRF(C+f +:Gop 3J• ,M/_O6ɳE8FJa఩nj-sS1b'{Gg&-uBʬ)S!?W @ިVWvN'?-BEKYaA$ZùaʨjS(-.O.J(W[CNSd:&U #`.m!pn)$ϊ30nML25|h^0]C![MRuŅrʒ9lFM!m).-`o9}ñJ0ќ1vrf)e,3o}g}_1Ƚ=>9ygܱwwz{\'T=?8Oes,qР`z_^v`dHp{Q~;잜ʓt8CF%l:qTUN . Ж_+uRF(L!*pт_w@ FC&;Ga)1E0ξ$`2%m6éCSZXai`@²e5by $6兀Ց;*[uqP_k"/G^GG23W${WWM N&?޼qMr @IXA?x|ȗ对gyF~'~B+ʿ*/_O=2 zO?g^͛ruY]]UPF~tv{Ծp}zX}Vֶslksw[njXLrQf''5TpU>i1% 6NK la ,ص!tI?P[&V[Eų*F=p"-ZŦ4 2c:0jӶ8U/dxAfn1I4ӱBd<= 'prِn*5\ߒB5'h Sƚھ(.,3*ˤcG_$h4y,n/.!Vie6X0zZjhNkuVQ\^:4Rx c'/r635nB= <$6mz&VZZ4F|ykޮV7\XXPۅ'|R{羾s}T_g0}OS0~N×oo'O>gKo~/|w|?Z*ޙumcsSOֶ:+%`0N)p uܼx^||Z^v! EkJ<4P|^BuvT:;-lTbw(4N]~5O茳X$ #Ӌ0w[jEv  Z˷kq1l-ȹG֣\ }KgVBr` 1O֥2":f&5dm:/u%Y¨Jet M<⨸lV,N] qFWGPTUT8c3~[ٻ״rF^YI]Gۋ"56z dJQ{d0j3}/C_zʯE/z?#u0ԝkyyY?DGfy/fGWW\Q{^ǿ B8d[sTy1ł78z_<&O|I}hFqm y߄sss T O[)} 5&A|$k\`9_vA*1 ~;שS5Mlwq׿^=w^i?/#,~l.ѡoTpSB쥯&7J>|_ޒnHa k$ IlJZJj$DJFof!`I Yn{e(kvlq /]/I'jK[jQB;0|`VbS,R*j)r:2=5 ٣:8{HiIluF3reA#yEZ7ᚍvGnsc htvj) zXI 4!'_"g~Ģp|~D;{9it `{ӻ?"4ݳtaAK:V}N@)` wqaF 5t55~4=ʥŒM^<: GOĻ mwF>3m$?>S:_w\@o{۞W&[mk1 ?ڵ|@?p}\A{ >y{ys"VSWRnޔVTrGg( (a0\e`6frWRŌ8AuVty53K{" fDFFe`w {iI,}lvXhP'иA~X(ĩc$n[:K"/ Kllag44ūZd1 ַj"ҝ%_x2Xz󙙘z%'!Sv 91Z;{̢'G36XKRZkrb?(%8,ZSj`TMlV;V +6Y*ZL^m7v*,IIX5Q0cDFqn ҊsMgYxr' DqسgΩ@0XpZ*Bi 2;9pJA3RARuGd$:.nJ+wd`UM@\b1u^fYNgJwMҪ /S1 32or-+w;۫Oܞu6u5Vܧ};w^&GH>\.MmhYbc8y EcЙQ TnΉZm/t:[ԝdztpW8dٯx2~.gw~w;;=#^젠ârqH$HlooUՙ ~G,мVmoXtaOO5MFiІ۾^Ed3x7dq\Z]*6֒\q^(G|a:d?9Py. >9֪FbB?BH?^y[d&\N[g08zx-YfND5Nxcxy˅Џ fniLo_6nP,T+(K^P`ǵ7&NX{:k#g{wCLwͱ|q[sy3'C"4բՐ .@h+@i)y}m_zPL9'n'ɴ*IĶF3L$.p@Zp^On؛}qXٵM;f}NTesC0;͎FLx}V{\9Qqn'>QZ>4>Gqij-~7) Tdow5C`~C7 dddw7Q~~N9WdAd׏oX??Jx{TJFGG*xS?'\+ KkWM7UJ7t _۱0l;±moIbqhȱyqBAg{Vnb"Lz)+;$w,rw *GxU!6m`2Tٓ:oUmϼLu [ M~r519sJrk& vρ,$ lZ V{g`@qnHl/=)7)>W 9q7/e%8Qsqxt2w$@ #$ز p:)~UI[cR˃uc7PWJ!59$[Dԫ,m&<\g*uisUoNKkP>[o7:P+eՙj//v{&x +lR-wƁF#.wP?ggH" Y(^ eYf G6O}SðׯYUW̏,0Oz5?j1t_YY9D<~V<ހt0#>+BbKW\4C HgN? 'PIK*@؜CpW5/BĤdp8vk@tYΊ; f7Ȁ%6~\lN:gkqc O᱁ e ]T *Nq{S b da3;ë+•'y|k!-42dna92sL]ՍMK!w PGYQJm-\XبInqE&&n1Вgdeς8>[^NkϪKO* ݲ Ҧ|8XԖhPV tX 4OXiV֭F2RA\^*pR*t ol,UoÎ,bŴiSudl2OO=A[NWU};5$ ^, %w/%^d X0@.6+;љ_FJ0 oxs,pllm*@EƅkfD($D0?M`qPT[w(BKgC I1#kc3fWVT) J32 ܖٲjr drB9T4U5Z*`U,gtLL$XfϨ5fT&\l6sd3tfΕ J|}HYg(YX:":`} Yy&Hk\lg>sOp  ,+k=|DC_NǼx^nA+Χ?i h ~Bȼ%U>>?hZ:WCX\.W(Ybtd7ŸӲ&{ `" `BG][T!Jl{'4UtTςf>_Bhb@D'U\-#쒝ް~KYda)uɆc1F\qYUv;C N$-Q!gP$wH42L'YiVDbAB>%yQԬ6A%[8Zhs=9q7{Nf+D:]0Qc؍ТD_7x-qh9욏Ui+MԨ[iPtѲu cAv(V0'iRA,Sx Zod>DjEV,.C涽m>w/o9ZNd r߽n//jODdlFt͝sKg?)͈O*(|gd,Rq Z".6:6opT,`Χ_RR6d]`Y2΁-RL?r%kyys7!F]C5*v(Z`ҪI%"@0uS}F=I8ݖoM1\ol+ԒU4#q $[(̑O 7׮#ܾu04}S3GW/r, "[RJI׼;078uUugϩɐu䝞}RiY;$sz Uȭ`6M8lӡT]̒z ߡ&bI_SE4-h֪5g0Cb?6RaLfð-PHFq\a1a\Z+rđ!>\~Ceu@<(#Y/?gS89K{x,NQ6DWZ}j;sjI^ƁF2<ڋF0Hؘ'FanKW`:":iI)0Qn֥RQum5 d}o,";I|+T CV]sbMf#m&SS9xJv);ڰ^4$`mR-VtSWm?b{\cGUU'erjQ+;Yb6v̬m6rcvucߋ0vq_ic'jԑӏJ.Sؼx1%en>.rK +}5 2}ch0ZMt`NOA[TԖlw|)I{ٞcT zQdܾIڬN`;*冦٢6ӤK.sǁ`6 &7269'[Uv@8"Ɂ7X~*sz L[!4G`y#ůcdjwǽGGE|![]G _Kd؟/rp}u6G-9m Z /44 .q3w_kW^ʚR__ZZDP)H.Z9}^Agw=>ܼ5\67*;7ձ8{δ$Ɏizy5ԫܓ#$3I; jcu)ERp߆_&M1d sCm$(1*B "Rg PprˈDžjW(>89k)ɲAhر濣GFsŃ4rD^2 t?''Uy/y$)TRL_N'8 +C/u&-5Pܡl0HF2p^LrKsKVcdk*7Rex(!'If6AXϘ`&':z&; yr{dK]|/14Nbb"Z_1 ;7[RݼWKxt++s{[dc i23 ݼ %~+ol!vw $b$lNHӋ#O*ȠxɔUw%wF"\ I>3 4e5~UIA ݕJt HRS>J[["+dby|Cs5]p=D ˡuaI$^@0Ek|5g?aKsu]ܿ> ߥ=kci*2 ֟5VUzgwϥ"]ogr"GD0Ť3ܑV`#Zڐt)[YghD@VdD@lh %UT.#̛mc9BJI-a5ͦB9ǎ&F8nz|No6GYy#m mJK|`_&[5R%5P:4QI5[LvF>WCH6&adUQ~ |* +"i%2"6ou$`xW3M="jZU{ci;lo=Ap?{t(;nh[DbZ;BZw6U=ܹ--GAffO#;>B^?n#F0LڥB\u& RGv +-%RjMVAkwCig'MLr!Px +G٪%H!O1YݡzR}R^kvv(=𳺏,zyƧy^%Ux`2]'tY7[c~dqC-0\I*+EiN[@ZYx\ FhbPFBY|dpæsyU P V7fS6#f#?qj';im7.^07tǏw`4O2S/ETJu2)䎎?.Za ά񽏑JMg{MLNƱ:A*ArXVZ8e2tǼ>-  x I,,̠/XۏDh~5NE5j*Fঢfer[-=rUqWFBor''ǯ\UԶ5e:Ms4.aw)Ɵz%:px>=mjAUYSI{*'%&^GkY䆔=W+HGq7HXB7|`l+7)'AD9D@T5+^Úͻ5+鶰zǩpڵ7#{7^Fw9vUCdux]Zm!|Gj9+`ܼ!Ξl΄3SMFH{pT"x'HׄSp&y zu4yd;CvyZ;ϩq>][H,D\ G:]MWuX&8)ٓ1AT^bA2 T_xs5K~V]ύU]je(rA`$O1yЗ׸oRd* /+MT]ܒGɋ^~k8SIPUSx(3+3h!SX͠ꧬ$V;SV#NJj,̀Xk-rW*($I.E*%w˗EM( 'x4b%LflEcg^[[kY3ŋp!W7woN%qktclj3Ƽd2 85[,@7aX)ED k cԫ1]y '7\6"].Ac)fd^AE2kCiި^ Sb`nGc+ÇV9դ 4iZLtsReO_ش#-hLSut" ȡqVΚqA6M2R;e$2U'!A9Id`"XFg[\4t-?)hZ |v4o(#Y)⋵U+ kU  ϿA,J'13*CysܘCϕFRB"-Td a; *AP.caVʣ\*2lo- 6^=2'˃vYNi@ J-8e\4 قid'W ߪ'SS.dC6* )=6lsh0:QZ 2ҤnqKq3- DžŤԬ, $?\3eC@^0!2 UQh.Vh<7_\:y3pDk`X=e'&qpxd n< P,nt1D`%pܾs3x_v4c="$fH:*Mavn o|>W Ry [m5nV-V SV[bnX-̩9h2|`>&e,>H<"^7y)|nd lY`r.Fg[1C[)Psý31hu)0[ n|kg$bŹ3א?Dr&Xiؤ $,RC*N$E]qc$Rdm:^9ky:<.TIULM']~w;͒"Y&non~W:&]%l5~֛<~~Y:nQ%aÔ,.z=ˊ@Z3% $xTynN2ԏ1:}d05lH`1,`4ld5?Jw \.Ɇ4R%7n.YZ,ʰ&`BdB. &08#i>]2؋)vio 2l lg9ٕf<,u}Sr$8r.yL/aX̴ywmUQWu]vܸWΐ oQ(1)\tqgV.ZLPXwV0ϞiGG;XY^LXQM[dfQI|uYLW _\AēG{"ovk_Fb1[M)7ιg̻]&ux:|ٴ!~9NN1G+}8C b*e61Y72djM']Bmn&L >EٌtC$Yb.Lf6a iڔOgMpoT$;G|b~5cwy|xݫH'&\ ldՋgۘ5Ľ{3,~;_2=G']͊'M,"W[*vJ$6)$8,7Ñ*B|c }(@xP2ۡ{)6yc,rj^߮*dNf]^NFc\sn"RP0UsɦU –|R^-R?o/۶~ڒ}OwYF۟t!,tKBwI|BIN{ưox1 و_œQ!Ã~7*M T^ ˰YJ$/iGyaf k2*2w/G:ʐYNRXnKy 004>iϝg!w8 1cl J.H`pF͐NyGɮ4@P+W0&hxˎwcKP@8n,24vrzmosڠzgY ^KZ&:/ƃ…'Oͷ7|nl<6Cv^R2m bpjuyͬ}~zsبh<6akE0?&؍L- [*AQA$1G zI*"(wc)*6@ʌ_?nVw~KY?S?eYLЄ^__0OTKkww킜 s7~Sc??xXa}Q(eCF?{jMWXݺ}ۦkسMן#t@r< ;{9C 0^BkoQ>٩JpA6+9BC*3g;$Gœͽٙ^_{ 3.+b==Єmmh|*_Iqaq ,>\r ϸo*}*j*ύ"?9:.齯;"#5ISko!)y]x"V[_dOJ62O4 UV  U Q|l"uь$&ka&Ryp\Yv,W ~m3Ē{o7ğS k|yɥP2dQO|ϼlҥY`\po5w}w۸ѓ^)-=]{^^oV| ;?c?9y Z pͺMff ;&ÒFi!ä|43锅hSdAhkt}tD0 [6ż2 22@ KY~^ZMٻ|--sLA1<}DQq'E#W-U$I\( k_;I[] VMN:ږgΜE\?1T!Dž3޷"q<߸˛&pbF45Eo"u5O:wZ73tx/͐j;槣 A>;_J'zod5Qv ;_# u;M=~u0tb 6/"U$! _bbtp8Cq2_`G}]ߛ *@QKf!lddbbb/֟|̗Y_,9 _^z]֮R-tiԺvwL^?i:v,j 2g5u\&cJ["*`"KD$HvJQ1AlZܴ  Xq\,* >_ёDW[M]z 2[nꀏ qشi _-J4'ר¨f^/0=H8{f;[xy(tdy[cbLz[x3 `v}C"S`erL(ïӳ"T0,"5Qg_V9KG>p$7M۬tpjR' u|U9 UFR6J|m_0K w/I Y1… y?XA 'Nɟb|hkkxj&ӜO )2vQ[[c꛳_T P(f!e(v(O O淛525&I&ߖ>(D4502S cb7ԶT ȏ+}]뉄'j2dIhFxk App7Nn'61rKeٓI.zU38{,*c^z]$dû_s(V>@XuyqBv)^%~]ja> ~GW.Op/ M#CX^m !dmWcRԑYѲGFJ%m5co84Ŧ:Rm d6n|y]}&X97QSvl>GL'V+0;oEv\)|2"߿w-/^7 ݿwgB}?d>%6l$~H?mA^.77Ša&6ICf0n[(d-#~̗l%lM?P'NXJX@M&H[{(2!"4WfBuYVl t- ]canٙI>f+4. jv.eLJcEy5L:$ygOF"Lh}9$ KھoҡXj߳&ΣרQoy4\x]<{ԍcZxw~ooݼX h >w cO%Cȗt4kaw?UĢACDR zHb"@B[djK#Ꝝ9=3'#m JH*\$\&TgC)8E[̯ad DCGeubᬩW B*/.1F>/q/}/_ >TQ>D> ˿lO. "*Ix[]17hƱy,-DsvǑ1sVyAG45&]ԦeB~'b Jeϐ+Ix;YіNO*qnΉ;&*qbܔc*P˘^=tG%&ЯB^͈Ox`r_flmKv0}2AmcdA0`@$ +#1G?.Dަ4+xr7g1;=a)~7߹çk*xxAx4[G pn"%x2Q-"">rxΑO*R՜5LevPIi>pU֡51jp-6`@Q-_"Qbj$W*'"ʪr+?i9erZ^Moo~K Q ^h^9~b=Ŕ|+vCw/oa_uk˩Vz~.}}6j'NקTeB3~0 fȘ}XI;`lGֆ87P>">TksF5+ܨM8K'&4bCΛorӒ񨷎,'Đ AܴsT78a=\#1lFMHznz(Z&(G hθd"f@hZkCvẂJ+`֗vr?2CLL-N&*wRFS,νXGXfdJtfh ,Ԗm*xvn7;}v[E@ɟGdE?lqcTLEFߴVǝ|FcA~Fnkr 1^sݘRWt `{j p{<_-\3Dy?'(҈ʯ ~~Np{̛ TyGgś?ʬܠ 0/?+$K4V$71g,ld!DH -+lMaZ AU~ִ9~r\nP~5DI塃hٛH~ĊBsΖuPapLVeuu-Of0`c~0l⻡H |DO;]F|@pF[k$`-k|]1T[6!O%kI|yƖ+F  }yJd"?:F8Oά!VvY:g1?D,X!F!6ៜDGJ,Z0f&lQmW &Ew&Rk Cĉ5UgأkHP$WT֤aB[9 J U`yן\V$QQC}4xXA>xB_js?{Y_@Ӗ@/C"n~.Ȕku$O5c˾T=CWٹ+N.t2YLNsWSsK]ad1Z'Ϟ`sssϒΐf J'H+Ep癙cFbV-+PMàZ/3cznZ^ES8wᚱ5EnOmt'h`m8\t=ԓj0ՅPnm&< >2D毕bP<11J&U C#R${cMOr ?W@Ӗb]Q+WGKX@jT&p//ZF=^}OR9ŗ[|T'?R\VBRvX!E{%8=Rb!2Z2_Uǁ{ -D&ifK{= jјFFe7I l4&+pfa z$Q$ʰs[ϟk%D4uҐplb f~j aW}?'rֶjv A\yM^|#Cij 5o{> ѩYb̹f_ϗvu/^8{7*4vf]aH+mh4n 34U4y#ǼTW>:q& mY/1138E؃_78ɉ3O Ƀq+&*xLhW (fRkd#2kW=Ji*XAHuwUWWW/>mQ۷SByU_~r&zTpٗX]W:þ>(p%5Jjxde6$1Z866ى;V~+I Oΰ{Hl>,ee0k&Qmɇ_n2M,-öB׏APM^1[F1cf6E͘Qƽ;klͥJ6_K4 s& >ԤM̛dvƃY**|oFS]mk-Tgurqoy7mSjO ϗ.]P׭Rr䳗*va5wŝG0!.WEM\.8;mc`;<]ILRɑfͷEE6=?D༶6\SI3PYhF| U d=- x~ %>OݷM;H[@P0?2el)pxԬ)׉P}/&_kZ@fr`[20S_ 4zC,_DG@n7,ntUr$kRW;.Y̎]NN n}v06ЖylrJz?{U{f$ {=rYW,` S5qYMH|δ>9-ML{S7#ʇ})Ym#bfѭЄܷC?4͊UUVn}ON:JwGFdYg0hF,DPO[doS!@Vh}؝,}]={ 83Y>fZF2&Hͳ7 cc> VVx(>OxǷk?9%a>F&BД0 6YiM8yGx!oֆwˉ)// K܄ALf3gbK|w;<@P<#@ B~>q'7ak>]G(T#U\]>y,Lf]l 3Ӫ Ʀdgrr|)dnN׀rq񬱭T:4XCǃg? ԿI /Y KG"P玞h,JN)_3Y31{Ƒ؄x<.H^2A`,X d9G5G=Y'R65hl4t 4+j!둱Zl< )#_t/7*|k7[EP{t^k]K8෢Dԏ=t[QnLP'M B<1}@_؞t 8:>6]͆7[-M'ܴ/n a[qN]GLJb3j _ ׬tOR!Sy^ԹUhVJVq:CS pT* ܎6oBܦ1 b~aO6XYs1n~U{Îp/Ƅ䀨)c*j p~= bD 'I !ӭ 7Cn3xյ(='C1B-LVqͰy7>AQi`~Zh}ܚ;03}޼'LJ-K ϣ|nǹ#LdP .]O[),.͢DFpJ & 2U?y4^>Na4=AL\Èl<Q~AL #/C9_{Kplgv:$)^83M@1FS{Vw@X+J!QxwIByKYF3VQ O+fLF(cfˌ ̄K:y֨$w[lf4))(4VHfcw5Fzct%3Ȥg, rfcٗeb td[[1;?MVgO/~ CyDFzXE'lbc?V&!ruDAnm5 qG\>.Ih`k{P XNXEٕU XWoP!cumc*} a5>{E89N4Z[vp &0`ȹ{c?{/ʨU̦Pᇏ!ḍMd3DB(ڨֶDT,wyFyPOX#wQy!*G,cvݪ7Ǩ@<>w0<σZ)d:N<^'V׉]&Ó6䀟$2h={sV˒m\nivȴpԕz@W#:WM+v O׫\y:YHq46cz$l׭mIɱǴam4Έ$D'IiZـLԈO豪Vk荝Vn_5R+JLF&C"cٚ!әG&13=k(,u1&xݬͻ\΄>|žd#.鴽v{kMݩkch}ֵ`JNQߣz6OT>MJHGbs3 ;][ě_3W˵eέp^ `щ _|-,,/Oq:Z]I %@gQ+vP1  dAx{O?{"Whlxv2+WznJ]8/^3LNcnvoްCKYyptGA ~6N1I+2T:Hd ypbff=xVz~!Z}[$cJH!c=w!oӇ--]3%.u5hT 6AS#/.[{MT1?A1G ߞD<ƠCxٹ%9mbr&c^ز>5[S,U:f_+MɇFB*":&R\*vd\Θn U&jhܔU*9x'nG~jBwz儨1F'`a=E%UX$1AUjVLw<4Mdt)z$*_s9^ A St8ؘ,fg5a!ť;P.1<%R̀5/ˏ&wmΞ3M>%6u-9G`82Z2$&V0v}17ng{歏aG >"O%!H.]vPryooh ӓi5G>-\{wy}:kƇ#ˋb 79%sb ׃?@l/ Cx5-#'&T_㰆4R(lT|\]1B0}nGSV G-'Gw&f˹^vTG'v(gJ:-89HiV&]B3p5k-UZ+iJ&$>qz\&'`9jdzԹ囒 <t&yX.>~5q8CFGq$6?OsH '>Q]p O׫$K\4*o׷\nt)nmphV*4fq;7z9m<- esc4':\xJ.]!L֭o51]Å3|s^pW#27荏>B">ڒ,'Kg1KߏBLfY&+׾~ODv!Y(#@CH}:zrW,,[`lUc?6* Kh\] `wdi%6 ;yzg:97#Vk 0ުE̻5{t-nxztv;+odppV".ӾU<s)lhHnz$_I1qxߌxXI <.'+? eO (\JrX]ѼsH2Q%Ў٬=΃ynULđ15d^ :2y:;,Fۏ  T37٬m0hq5f5y*6{YyMVՅ侵cUK;KAy`ʩciuLp 쟤ƶj8u*Q_.5 )Ԋ*=&~k qSiK&'~\uEz*50I3/Ƒ88A` =c8n)QO嶈PI۰,r/z}c[ʵ:yP خmlhTH+XnjO\$"a0 S$bmv$D?X%#kZ2RH rI'_y17{'5([s+RJi[T# ڭy )I֖[ WѰ,\s !0ah:/N&H!ĮЪ1lDib8/VCh*|7 6Ɔ]ѳH/𘗥/9U^7̆ /(UBK`=c49Z;ȃuRH`sVjeHQ2DPbRPa\Vz[lY`|E ,zU 9:yXVז\F'%j &kKٰjek+3ۉ:tXH%+;6?BKX_m_U`N@q<)͸=5Z v0=0:^9p@K 6 \6.&҆Bv9-ίqN@Q >l KâMT MGdsc UYդ΋ ;Fim5Z.yCKXߐdeiAAJ;eShT.)#S$ѝy/ @XOJx.^" 53tB=rsd/%Ќ('tLf z̡R!n(|–"N-AyUk4rVlaM\' #H&s1q.ac@RjJl!<mGؚ:iZnSu"BI ўVkS0# O!V*DZ3<$rKXMvyE N0ٰV޵a&W0 S,g!|t8>IEM& fWȧ4̀9 xTZ7$ܾ,<ZUϥnPH6Vu+!S$ Ү{&.Zލ򄚨28qDvC6/59Iw-JHɩn-̼En 2{+GPY#+%Vn[.Ui  oG}iJ:{yJ" ZdVLsUH7qDAiىy&:* *Q(a'-h@J.m+`y.,4(CIdfvVCD]*LN&ޮYe6N|MF"au-2V{"@0 j(Xᳵrh]ʶڝ&ClcvI$ևsfl֭];/S3r  Y[]50$\Aslt ,0'>0tŴe`\|N+mmH HRq}'^ؖx+kR\am"7-zLu!+[l-cK;*(Ƥel }m2 M 9nHm>^Vf!i)K%SZܱy͆]7jx%u5_5d22S UZ~5Eol޹M_mnܢ vZo _SYf\//^?^zrmpc̮agG'L3q_*3 X6bT @"49 \[{,m0\tQ%^8dx|=r#<*Ã=&6Mn(;a__P&q. K2~#[ v;`Jw4!"nlSAL1P(Ik& PKHM|qpqTV? wgjbLba06dpٺ%\J2F\h8e`b9{އG%u9rTo\R&!ۛrkR-oSd׀Yjr%9wY;.s.$<mb=d~2R 4,^ "&9~~V!ulm̢[&BJ%c2N__ׯ_at*)zfnvG=v{L&~m=S}cZ4"??Ϸ͛X[\\TP{~~NVsy`}2Gm䗬N /8awj>- p:k c>`dCYg5 G_)f tlw;d )j'2$[@kk+m]8&e5SU;Jv-yedhJf?6$]XOn [v $d1HpCh(wk8of˥3V h=qZ,~wMW%J|cN q#/$zYl Ԋ)0+< w]V}NVVUf(\mҜszy f7 KZ#8թT^C'.p\f]m"+&cEgM FYoꍺ*9qcjxE{bM 5n(.PKҪ6 -MmP%ڙFU;Ƽ9O n@mFKP̌-Q?aϫ4fkկyCz0's-kO$,U U`Qb=e&̦PN hFi!m†A5(Z+H=,A]ʣ1BĴ rSОueeEE;wNUjs{+pD ~ `ld,}{o_ ˒{W\~63ghxLm>OO)%XKp ,gϞ}׷f|.7| LDR/heS mfP\@gMZ`Dbm;nTs!{(tvS0MP]IB;a 834 e7ΧUD3!oQr&JItCAuK&糪BJ=]4w'֫7v\))-Fޤ.% -'*q" uA-m]3.RƬ0%luޡTT2,VN+ʚ-8W^~c&)n6Dj!&  h~Y}6Wu&ۆ뚪3..1DM5MU/omd]Vfa"kny߯vgGUKO}Jwk`OO~7S?n_zH^׼=Y03Q599KVJz_}|*$$sg s.! r*f/q fj"v!7`&&@*NA$q,h[ X^}Rn+4>,fv{|!DgO#$|xU\l ͐90>4 \"d!h$s0T#G`Z֭̔|EvwrU=;Uȶ(op,uK2Q#'^'|R66b`iNH_?sq]{e=M".[ 9t^l'y @?6>E6H b hH|sIj Jȴl]bŹ Fed|R_H+1>G,YU)QaY\\|#CR( z^ ) AeŊt N* Nd_җo?qek?7WZg4u#OJaS֭[ )YѣGۿە9]RsG%^;;~" io}|+_Hk=V:?m59U AڝeHk5m5?[ssh7>X`"dJ"̃%e!Im8^3Beb(Qf13mt/~?["հʹbV0ld);A\+BѼB,k[2<4!]Ѧa 22Qz\vYJP,'GӖ5zsܩ2ўX[% "si3#E&W{KS7 "CRv+Z9gdI'[KH+N+6dN8%bU¡>2|^P;V:uOA`k9fBnsn u7w} ^H #_Mp,J5lp1pL AJ,\ cooeޑmBw+}{Ltŝw.]XL+yL'_h8Lm٥}p5c6M՘aᦥŢ!Tb҉p^1l :k?+,6]vƷkYl.\ñq6s҅{K0W h$sXK<ZBM8.upfқ'`l! x+^5Vhwl_"~6Сw KdP_-S٣ * KFkt/̀1°u@ ԝ.!ZFˆnI(И \VIƗaTewkMzG0//]] ̉R9K?ł~Q@>'`J_ܤoeQv-6mc M5`;ve(mmg6lsпmaJ$Ѿx)VdeEi+{=0<*~ _KRDHgE | ,G{0{BRi%1}|7cLZJLʻJ@lme^W5~x my qBZOeY1_Jȳ=+ǏR-di6{;]&mi2r7er!pG?{FN >Ұ13Uo6$ TpdӤ@׮^_*[^lBAl(Q!|ޒHX ٪=MM0΍K/,ߵ1ǺhwnSwTP&Mz4wy$lgJŪOO+?csi}L`?/~fKn$H6yo6/C\|~zHvǾ4w N ݙGv0J77Շ},޴tyG6[3oY cl!!<'mM6-8R3;cv>y0eMu] b.k+զ*Sk/91<$pMU1+`{qCYf,nl7  T[9";/&mplqH24|˗hdԃ늅1<_v) \p`=7%ҩ+ Qӧ¶ HwWΗWf #,M%״UbSoS̢Bdu Ņ˸BfUdGĆFT jWӆlF86m 3զ̐ceB_녽LD^ qb0V΃i݄edO侭]|ܝ!?ˆlٿ!vگ2x"8p{[ʟ+޹/Nx/"x[CbmmJZ_diT(Y\cF 9,by&6uKG̀qs 7{_P6.B+'9?7Zr]I7GȲz=*[lq#qO rG/No*,+kbF輈.%U"J%)fTJ>#%?- kkҋпRJ=%ʻ}aeX-)r QT's|j앫gĆW>;V)n!<s\i9V{B(]PmnD^a KLZFX]'>KWOl6:ToJR9FtecmYk *,5*`ΖYam%)'oMmjI!;V0V|O : 8u,@ïTp.}wqu,<9?+lk6`mS8,ȏ1d<md8ď/| =6\?{9p|3Z0%ifPxD(^?Zy '!^zCL'WݾQkb dWڬCS^CL$*CPYEQN?E9s+F1!@zwFG^ɽ Xo,/ReBa4.r0w@&&5o=zC-Xtx#ѐn ׮H'co>'Լtr'$@T,HC_w_huGJLq\l1rWWI}^.Hvw]n-\5f]]22u+ O kXzޗm?$>ޞ97L'4 <9 P !f*"Sb~΂*1rff}*:FK]qMXSWEyc[9Ī 9Ic{XtaʤdS۰| 6,b͋1E%l9aMd:8qrZI<5ɓ'n1:0c, 2=@ 1n+i<~\®r*pyG:B3XdhI6]@i3=pnx> |;rY!Ւ]=‰銆qEIl7M?GՇR gJ(ܣ·!C01100M'eo@-& o;4YcGOeyaNZFi͐ 缽~N"??UVz`J79:G=H8=v`WdTdLKCÇ@(P+ZIlވm{`r`*Z$%u+:4sJ# "A8]/$[[?z5.a@qsMH:A 4x\eO,XzM_Z6Tslu ?s?f(8X#6d+ +69)W\0eَMʍ:&V #ӲزmwVKR6Y0M0vO@vpa;7*:RGȌWi=}(pQ9WH{\Rn蔓[˪FyE~iZBY`eI-W*l&#VfͥR5&RRy `_1q޺Rd¸ f#2SEرj*j(de7̓0\.."d6wTÿycߪjrI|YYYq^ZY v :Y,~j͡J[ےd an4whU "1+PlyyK# )Uk`u 0,ܺ,PXy'$.f9.WSӇ5ؑ1YI]xk7)?ܸ2ѱә3@p53_<ɎsYKOK0-^|6-Y|D]ڏZ*dlHwď.*V<^oȗRc";SZڛ(Qwl ~K`ʟZ#s4X=7}V5i \(pi(.\բ;,,S4:U``f Qܚ_wJ&V{)&i1/" Wj!stǩa{kH&#/(32zSܐ7O@wta"o -UaVxtv7r`V_KǬÃby|R _n5d#mZGf3#4%\ְhW>!tUq) nI.טQKwU}}aOޫ,*UyO88:4*7o8+n@ߘX;w(C㹙t:xf\7i1~a\+'W)OuO9\i&O4e"m1 5\9Cl~3)lMZF<8UߧHsgV5H`RMǚԝ`sr9Y_G#^?iҖ2R/#`#evČ2-nrW{UWNp&m\rA暚 FiN<%xl!t 3KrkGx@;85WXH)D(? )( =pϠKu<}Wl|8[4 [2:ua9"׮^)Uס-#Ge rnqQ|(@^=hJmea_ftzGw`H"]NǨzA-FVs˜C'h]Ah`xj׶j0ٳ0k-$sf\}x+Bq]^9~cV!rt9Mz Q.|,糃a3r`li_y3.f̆7IaT/IJ58bȉl6%F+ڃ._jNRr32=>lHC2JmѣdsɍJ3z-;<{zy#qMG+gZC`w{;_M KJ B4AiI8DߚM2Y)Ar;e̤jOmG&MPgQj7.=<.^j/WEUu%BIKNSmu\ ]츨O:joJ`1aa 5۩5[Ks~9+uz u7Vv6>0 !^lx;yPR8pc'ȊEÇee:y|+S[kUW`mxRI+ulz`߆GӒސU'2` 3+kD2QL92x)i+jVXqYo!cecoxLʙs`sz:Xpy/NAXUʥ$Wq4RV@ȇ=244znZ1gJb^R= 7%.x8NqڿFJ4b]Y,; `֜3d Rr&J|5sl'%c,8g}X㦧mMF@]GP_!96@nqwo0 3f`VPX8/p7n6S(ec]! meLCr)d:.V64[\~uMg$39jPzcCV*rSg̳ԋ稩˛`Ѩ|^:[x=^#DS.is"TMy έy[<6&},1[WJrI鉄F%;? 5^[TfJ̱=ʍ9OFO> Vn_(ঘ@ @o]^u^LW߳N=-k2+[֡˚EilxFbmVЙO7Qu.c n7 2sM]6[l6m eq+F),1UrP9Xw dl4 Sw(dX;f~ R&'$,mc2:{^bâz"2=vTC|vg-w,ΤSR8RBZipM]U&׎F%Y'D7}y;olfM2\/2dk!dۭ7 hEjݤ[_]Eö,*; x`66׵J[SF 1J圶8^ISǾIj4l6҇UpgRIU2Ve䞓p#̙gp&U]bk'5 [N2<,J0ஔ3mq2& Q3`q D4$g>,=쀱QSs}3&#ZqKmS^Tmj%O\)zuNm8WfSf,2wĭTVXH(YYGdXvqbc+E0c֩kQΎliBhS#6#ZħUm?4p H_u<JJzP9XwRASɪ9$ UPՅy"בT6FKfͧ5\b-p>GWvlC0E:%_~ mĽIT|eXs~k+rI~aXb}_I*ر.U%wf;:7  N)"PF|\T7_ ) {aT̳YeJ x㬮ܔZ0- Mve 6*x<?[^G 6b3Z_]԰sd䰌OLIbkoGS*,.ޔGvnvXz0 z`@jŸ+˗.Qp.4ŦQ? R5meG60MȽ]];> Bfca>w V 7]&&Tt6.C``>˭*ˑC*?듅Eyt6؃sx,3nRMO㱷7ՄJF8gjߡ-ȸٲҤXCQR0z=PgAIR #lea41'uYy) _:,N%IUL'e`pD܃roO``bax466z#b0<ҪJ)7je}[]+vK8rv 斝6X^-yBH&Ju89BHm9|9'HIHKk8BHS;X0LnNKZm&R¥Bm*tT`u7%C"fgb3j, {fN-b5Φ2V \3*Pc`9BJ6 6P[ڸZ*n.!Wb#qm_UTapF[˗Zjs~YhOoW¶&@ uʭRiq BAe7B@k,+ROI)ϙ5˼EkiJEs.7/?`Jyu-(իM~㒌i'EAPw M1F7$T1>Hnl Yȫ*wooĴԛF$gsmMre W@bn , ]eXϙHŰ{mum!bA"n<*{ˀg@r)B\ֽ3(F5͆z%תӰD`mmkrfz%D%y0^+8*U9tm~8KaӃu^lys^{^u a ٷP%c%8;1>FUgCGe67`#c#jZ8U1:4,`z(o{EokC0bJi26(3U6$PR-h. X cP iwڟ|[%7Vh).]lD{RڽIWb'n;T>!5 G0! mZZXLO?gkyav,RC96 G̲2F|k;ⲙuʅR@[ػʞTꂮJWq-e""EzzK"S霽L9v6J4#j+ -X}m$4e`JŲncΞͶq s޸Nʹ)m'5)ANo:`. ysXH26&\ow6  z`lHv;:m UR^=NprPswz2yx&axp~kiIۂhe6xN_(,-m+VJ`b kK:~h(BƶܼqCN 2ڭ%ǎ6jwK63COUgRmk#d,# ʡ۲гY ]H4-v(z9B<һɦ%IlpTAISef㸚`s AӡK^J*ݒ90OLgeY^͠`TjGL eUՏ Ӕ'fM+TUCpũT&9_: 5Uz%Xu5Axdg3iqD;f@|[0Z &avT*"Ť>v{EZof.m Ig" 7,F!G2fثyEY$ W58uqrN-Ym|,oXhYѓ&p,2 H;g&DGFj1`C怄zˆ]2Vݥaw$ ;̕| x Fx܎ĥv;i5,(3C[ݦ}?sj?FĂsEUj.!m| ,->3 &65"]xL_("i֛ss8ʹqCs8G C4*7pfM'X~qzBcY)Uďs\;a[.<0G ~d:ut*gԮ2mOIu-z|SRK.Z/W14 Z'к/Yx7W^g}V{E˅ 9-S-@aUmCZ 6U+e0t!Iž²Ģ}`u Tuip'G'6y^+9GPR,u^Vc\76dfzJ]<8Ŭ՛B#s<Ψx=NG<ހcRfXqp.9Yf*`J[.D|N=JƱd<6<%>H$QX7H`â[fas,y7.nI|ΖfLM Ϫ, Y[8Q15w>eRCx] gXkRvZYow겹Yo^=' !-8}QMOJR 8ٸϥQA6Wp^Z9iSUl'PTYbR8.[SD D U|^?o۵L73!d,6&[/[[??V]hERf HN;øh OC䷯zJ>ȟ`}11RTki:s͙h,11buIv`u  L7uD,Up.n8fk/U!dvʇmlqU9}i◾]I[`HbE]8>Y'@;wE?Cz zLo4x<}Nw㢝1x'r*{"J2'eq*,d+tvϘ:v˞B Stt vA@rͅ}n\Fn/R*+,*i MʓZV4Z[_YԪN=ffqw}18)66<pVʺQQUv+G++umG'Mm-ng} "x ~ Ɯd/>=_)o~<299_Hm:8df[\U~"VB4`͎la4m*ۉ-V_NG4/|CmٱZ)U%hw5Ѓ)۸p<~"D!S-BN''T4sq9}{&F@C1 OPņf* xsB!lo-2 Vfok+Oa( l^[aC2v1q~#G#4-_([on]jHG4ٌ/[ayIn% 2HpvJa~64Ok؄JVl/}I{19~ ǓKi~0G׳gϾngw]oemmM>+_I>6>c$%䱲p\)A|@'K%[d>tG h ^d_S)댲f~6rTخ+١9IQcyIZ&l}EFgGe|lL7L'FCM&ߐrٝvCMCDz:!IFaFN-C6r3\.獂^_7,1yAwC ~^ifFHG%62e+UGoߊ6>\dS*9dyZ~$Òͥ2 F{Emvn.PT{': TRx ܐٙ UIy96xɇ2SI!h-Iߜfc5< \2% zp/䕫? 't26,t%nOnf;rg٭*xktZ@fh&hfHh@TV+-fKY4.b~g~ElaW__W}La8ՙKM ڽ\<9KKK7Y;NM|-yW zyUgh<6+ba aS6+lUiQB۝;qWV $+_ pf,՝8~LF!6U/''ՕM0?z7[U]"0Œ^Gg ,tV PKUTfl^/b_w&v}R "g;,ᖥIg;MeU!; Qh;:Ӭ m|mƹc^-礊c*yb7`V@ΌsR!S&aLXkK+ @.&%_?ە"]}RqJRtT/iFb0yM#'ېamb՟y`'*'4b36E,-P/,䱕ERd_*E?Du M dw@2 }&_u_';|0Ȑ썡-Ydgtg?$* z? _]E*A`c@ y{xVﬖ~yN CJ.ؐE~7~:ܮ}p[k3d` jKwٛ好얊jArF]B]U*I4pjZbY}ptk꒯ze f<52!_Q鲍% >Imu{~YvvZx:©T)-yk`e2:MU#UI6*b W2u9:|RG,3ټh*"l:2ޒ \U'r*+:JghB,H8=.9r̈h(A~9G,H,-.KOPI+_hf0;96/vzTW fsx^Wڢ-um Pl Z0N|>SB޶WV͌j=JzmlZGh;w~mm%Kt9<4Or6 KV9,5` +ؕ # -. ,O7;d 7) $٬ KycZ&rrcVTຯ,6+%038HYW| 3KΏ:J/,ou! &DYϊaBu >8) ;3H(]6܈-|scr$2%1h Բ,_^\U0WLdz͈lVr3AWGݺ6L:N!ժPNsEHǥ.}xaN$;JeKv='22>Ll;pkjkhoS`hJe>JCA<gKYH\RYAA2̻_*-k%X&=r/5]= Нʌz6XOW9JY*ڥ}tvmǏ=) s[2Ru՛_\ٸ0&)"Ur"d>ӳKA5P#ٜS꛺u=4ԴtlUT]*eqI-P%2WGG$TR617NN!o׸ ~:qRZI/, RmҲ*9CÍ j$a{%=9С~ gLlƍ3([ (??y`,݊qַqMcE3}q+[sm߿FXHf3I)\gX8 J6uLːMLf:,!Ra/"RVj"Spb[ i6(Sgo%r }Np]dw2VH*3RBt>K8g7ך@Hk/3?@@,qbr\AO[)Kw=4u)JD>ʚf헩JȲ R"Mz],d{`‚L5ZԽX\ʰrn;/U5)c,ajfrԱ$3;QM-- )WT&bƾMܞ*ur#2>hى1)fSLfe sq$ReEHsD72|&iA:hD\=6[x( =q9%3^$ !`mc.c&;O !VFAev zuomYn2s S-+q@B$dVKE"@zeNYit@?ov$PO1Pk^y}# ]q@}/k1tfwX>H#,0)vdg}!g2=5)HY8 PX${@rǩ7.dvQZIP[QEndCGFزC'wn k̂ſՆ>;3#W_y 3>7憉V:'\SF6KzexdCK PP~Ww;˱ sI bLA1C <^% W\y K-T$esbML;ڤQkW&V {l!fX^rgw'ǏɁG`ln[>-*(D4&&cZiO5-T:ڷa *U9^Rj| Ņq~qDyDOb#=>ƃ%J0?(\RWQH&ɀB =d*!\|]ط~81 ϗ뮻}k{H A"ȼܹ_+Mr^+ gV2XLˆU,Plj)2C Y4BBi.pd%ne|D0KrDl3"n95x\nuG17\tkq9v.:!uU ,Z׵F֭_iuuʌmzeӋxRQԎM]G[ۭl<# Uŷ(XûB296X@FOO%XoYl$nZ qmr4eT/1,|>lVwdE ~T>?I E7(jE׶mz2(_a`땸*ʆ([BK$wЙ 3_ĄS,Pn5'6M%f3Q02eʎPJF"#m P# 2??E ˄"nc~㈃F֍E}򠺫H;ѳP,P 0$0u{Mjݸ!6Q__á_mu]@2t(غ-$'x2F ٹI9qncdJpOw\K}%lsjnEe6K^&efrT:cwsmn&s2ϏcJ_5^,[o%bw~7F>!_~jpk}'y ٪eeg 1 `l#%PIL9%$;4rEr좹I`)%ãc,:^)3U,;]lڮ6RŅ6KG DdkjP\`ԳzB':']k)cXÔ`Uue H8>%cj1BHC},)J#NŨN?ξc{9'xښj=T=Kťu߽?U@*ޠ_Y\X GX=;=NWc{߻t36ev^Wvĭ P^rzgv?">e,!,g 9ܣħ^wM͍bQd ssHMU,(0m$_06VDF -<͘2z-^8a Нs$uz:C4Jg0d"$V^GJ63 f;_"* 愄 ((khz%s$0я~$_ã+:HC]16vF:eV2hUM1z!_q 6h>bc 1{Ne@ںol! ]S\JFOkmx՗9Nx*_Q)Z1Yj+5͊C* 2٤kR]La1&J]d\ғ^- ~(ކ; ֛R0@wWzR@Rf㯕*IA$^GIfƆ\="a6 (k%")RAe= 0*CԦ1kFwK3ci +q:I1$O#A~$nIY_MM= %>p ca\jaøZ|SWA6_ ~"|GeM++2bqcd) Ubvj:1b ͹,ZWSU6`_n0ᢿ151~B<բ') Rt ;a,+T(&]YFG]qy*y>6̏ V+/X㐌P./5ZAufI(H++xI_狣mz'e+S.n N[&Q.:0MXŸ~N)ڌv͌.[9bvzJ=G)tkZ7ZLDJ=~NMMMiPSf }nˡd$bp%%aWN b7&$Kue\] ٳA]9w ]^c_v_ W\Kf'rDt-)iotCϯMvXسkhjjPW1xǎzN;;2SMMwiGorLYdV"ᰲ%p 9]it(P@եnWA619ɮՁYNblkٙY^+a8 OYU#{ʪޫ2^h!/~ы%9:%6Ӻy@Dn]+_>1/tTR^B~eRW]AG`S6*SbwJH]뤲3Nd! Cbc#>^4[#  cq'K6 b(xURS {[LEqVY!J>CN.>i((;TNN`PpA\2I.*8|ra1uj[}]"LEe=/*}/] }Gd257ìz8c/cr Ap8˯S6Nx`*-ˮ|HTr XB8q{/SzQf|.8J/.ɱA_e%%P FqѡSR&YP0O5)-l8 &0;"EW]bEA8Bo$AIIU xX$C5&@:múwdSU7TqaR4 Їk QG ]4ԤD(R`+ `)]`5:8B8*:);9;U`(趵47ʡ ydǔ,BUUՌC7)PR2^%/V}mTD`q),uXTZ`-.lT)15V"sUUHr]qxlBfVP&Գi{#lq^^N ">g%vMtI*6'eiSԠ_CqGƳ$T<5>c>NHV=įt(:)rumľb6C䋐]ڔ%y̎řEXYlLA,.KGH)9`Z6l,Ǐc̼׮GuS][vʃR:{IeU(İl^YUwm~~]PA#*nuуk2@:22A\bبp2]=f76[Tf ZI\Q[A1lcM+Jc2r+YL,;]-و-Ƥ-تCd9K" աv=cCڡnR&/q2`Tʘd62ojZÑAuO{E"u,R*sa1s(b.L6/MT"u5l;x ==dq]|ǎK/Z]I;GBϸ˵pJ\e A m#T)WrEg͚N861J躁؄(& O,!VPWթ,_c߱ 5ŦkIܙ iok\V%@8(.I2SkreרEƺQԌS<_)ebz>e 8ePF9gw Λ--2#9 U6 ˂tszV#itzIC8SQEP%영 MMl3_TV1n$pղUfp:F5Qsk-Q͡4rKEJ#ʄFi梺d5g+nXQ%@ q֤BfewG{S] H ̬)ʤk?,3kU*` #\ZE:>@NV_ʦ),:~F}kަ "uU>n!GJTƅ("ʵ>KN:ɱ:%;_='1.ʨthD=c*j +#uHrED%X`.$ ͔)l,쮬F %%CUP.0E  O.ʚud\N \!; *eqپRu%9߫LNYIN 3K+ke1g]jueӦ=p`?Z[9~&+Q28Wy=7B=a1OFBR ]@7$X9"sS zͪ\ZqA(cbfQ0Xk:=5ҧ<Ԏ?*DL7&9w.oPڻ8G0:;=@baxvT) TVĆo TAGe[+3hFG(F ʘ [`YX4'ņ6 !e}y8.=7Ҵ"f]OI*s;'Q m1 Ā/ 3d1xO]!Eds&*<ʠ, ȑ{9#P2ry ezt{ֲ ˷W}]lݶQ&~Al۴Q: L훷(ΨK_+19<LfT`[]a)08<_TK)#N;,Ψ :exa ;8=1 .wLGIևIJuw(ۡO.òd %zO?# :+J"RO1mc>DD? s (mk+8{1y >[ƣ ,\#z+w8|;Bl 覡\2K~bA㘐B1@.nhpXuf Ҵi.R0 Eq#mnZĐ^m[vJ.S1%%Zt(Bu Fw.֮N]ADmtp퇇F#J 3KFpE4Ҟ!e:^`2hyCqjbn[X+4 qVk\#MM5XS!!e j`;.GHRWT26 $'NBSZZ;7ڞKˤ^B O-y^Gey}IAjQ9CZ5&%G0[ԃl ÄE{=x"e9ٶr*%K+*Fs蹢0IcCɰKeuvfիk$_6,g)_WKJ]m/SЎ1Yu2?5"GdV*y 2s?66v]k$RiY!<cfb)`L+Ĝ[\Kiڝ<~R:;zrSF1ƓS MCl(e@Y(9NFBYd~1Z*sydeI٬O_ri ucSljEԺbW shJpp⋸P,f[9XP% M[I2vn158 [cíI`DƸ~" 1,>pf.̼ d-Tv0~n˓Q#>vx_/"ȪJ&.lBWu͔Ja.b""nܼEN?IyhK\\ħ" Unf#TK\OL;DUT,,)$0:>̍頲,ǣ+v{N n"#X׈gcأJH)Nge߁#RP I# KRYTWWj2sˤRRz](*Ogu3խo& Jt}Z]딭0>:7 5ؕiCL&S9UɷXF데G<0 B'HY5je֦-䱇a])3 NC f2VHeq̟Q\ޘbX(rTڅ*|*Pa9eDi!4"5=Ojl bavŸ;%ˮc%al1)rWz6nbKz\(mAE %nb2ȣ\7jN#)*BzFSR .ڴIQu 02}I kd`dL֭[〮39q&Pə蒺Zqɕ협mcVz"29:/JvF)}N̎끼u1@ bꕅOfTU]+sDtCIR X+ZN(s|R+ 'DgdWoLZ;e2hyCԄзf|7"|ƀA# CL%[if9KsA$i0̹Og8~g?in xL+cvQUQMHClUݧZߐBA\GS_bK٣qO.$mL$I&O6n"#‘TTڵ=]ti12xn.,[6nQ7+CHФdQLd0b{tdlݮlO{- M7*n@lKܢKW\ySC][?c5uMr!\ʦ1ct {XE/R&=0LFR\b/5byKU]͡G GudA=I*Pcb~Q7uK̊U ^_@z2k@5 9>v,Oژn>V<93)Lyq̹T:={jU2HL?~cWg`6YCO_Y#0 }Z,V!h&t|RhH EAv dƄÒ $ P/S+m ~?qY{A*sM|>e E\rl*vٯy,UrW1W65@ڬR+^26"2>oh"$ra4׊Wt< ; X]A*}υcUSj̮ })dgVGZA:kpx .#.ݝr,12֛/N<}t+*C ^BY"]xd٪W2Tsǐ2L'oCg1#ȨYlҠ@LWyu=r9EUupHxDcC :br JC͛<g;h#N,&"Γ&'Y&453P]k'㉤PK/je:^e烚 gzy@]rKY_VDŤQCmg8>_ꗶ 9Qw=+ + BrDVAHN#FGR0 =XO(Ckd>N9=Im%?ax%ߤa^Ų M1 Ț76V38gvfJf$*]k:]W*.qī߆j܂`E`w6xq8W0N"(3N]fg "HTTԌz.$<с\MqUBXZe d0Og}o~Jx 0L8S@+_bA LDzNoN\KzgZ@G`bdb5 XR(( :=d)XҐF"K0`퓅ȔYHoHT.XVishh+/\owPN5Deqtvv( KM>tt$ׯj.9*];&Q([F7Tܸ~_$A^9e{nټyh8ٹ{%pAiN> `rQ2Y[xч_C`Mߝe b" % lKz]ô3d9⿝]r,",F#$vC1?c )Gc9ppRkIy! deW =JR` 6F92EƊ`fn7[JOQ{k1H倒2gRiBӏoAL/!Ɇ+w߷lp.r~tكhϳq Kg `bciur)"V?ћf Z4:QJcJKk a%Zu'9ve^8Q.N d״9h\:S"nh&?x .̓e7Uu YHO 1]d,js>N[mH19 ^]NKYU %=tLRVI(GPjev!șmr8Iezjr%nI3,7]ɉ) ;66vu*M*VWƱ٬!*$AeMmRnᅄlXA•z"I:RSd[#&47V;ǁ,{M[;!R@{"rx3< ')K [S]{t|XLyoUs,Hɺb`+X̞[X$l_|򓟔WWD0 ,/>,gc] vE%֬FXacі!2\;$ | 1 sm$腲n.o5mӭhjiH,1"O|EuN_c| sM7V ,;wꄲi]#F 6I *S0ڰ^xY撈/`K{k2;k)Ù).wHZֶ2[@])pP <9 k,ӮWeASEJ8x )Ieu5guW*P1*ٍR,KЈTEv7B Kܦf?}~cB ],YbWRZs젂ﶳ̒b9H8^Sed)W`dӊ3V1-SG7K,q$@G?ѓ*EMW ?Ao{]zQÕF5ko$H670{$nf&ޞM2,sE{9 9,'FIM:B֋mf--,'/4 .u3>M S7+*cVV}`Vk[UW]M ,P/Fiؾ] 1_Rm}d+Xu@yP*JR NsLemC9 S"U8cF%NMGLŴ"o~G>ab[#7>,ۙD< mrw΢٢Jw)Y#DT?%ݝk+W!VɪK*plj:)_ X`6s*`ݬ]\'''dw^i B%3cre[8\nΚL2p] S2=1!CcVW]|nToʉ&m\9@hdpuG B MLIlC6999et#)@ Ud#'LڎC2}{G,Dej:@6g$ukJTM;V~# @|HٽG*F1G}]8\v ɖxl^yuk8n!E`e-w#X5,ևޣQ?+,Gk'm9/)C)SHɄvFtI 5UI6y}׾>n73ISdFK~+^!{ߥ[nǏ3qө;m"Vdkh ?-^{z\4ϨGw2Wv/q+p YdZ"M!:* WLdM#U4P]RTI P pPO.rMJj0!dKF#1Te6q`~>)"RV78)&-nݾCP3u[eRl㖭, -bmH:d~jB,eA&0nǜت*8ϥJYUW\P9rD֮]+8W~$T!ْ44{%KSCLLMJy\,+GC(7<:L?39 K2=~G b5en.#CG3(ɼmSs'瘗tY z ,17uɕȽZN{u|$bKq2L$z7i$b0FFFXL,4o#8$[VE1dWav\s5r)fM{ 'J/uסH,HG{+cV +-ϩBíEª6Ln{L Co6B(d#ԃ22>fMFGxmz=eu唒 trRJ$u6*;!CCL>14RJ*s(p9r)9]P0mAId2>9)\X8eOdY=2nl!pC:Y1yZ vbz 5I3 #LZ X(wsbN? V@zTneHj*+ H\"0L}qHX*[iqe+x{fxkJ]ldGY+֜^$ؤ_UլUrOYrhxۉ2ey8Ԃ>(+jefvZGFYc&a>Ё蔗6*յ8+%wIeE8{gy}NF/ean>{fRI"$PqH*Y r}qvݰ b bÁUV'@$e(P788x12i'O~l:[I@ 33˂L{~+_ 8?xtɈIRd]FFe8n%C3#5t";b]V'_e$d"..(wKtDPRY'C-&?,эGL3' \MILO *0P]~*]'OFV2}d/LV;$0_8\ےc#)7oY ٻt %AoϬ\A"2.W?[)6ndRѲ)wŗ\.nK8, ,YRes Mqzd!Q7~Jɜ8#= p,MA`ekJ]R;nRI}4anƈ\L\} H0G`jH83+vW7]w\|&2C>'Gcc[7 (o*gSJdNqeC&I+b L\ v8]rhdZYUãRUaF:8MtˏI(3;jb# aH\ԱU `},# }}?gԔ;cHघ%uRȴƠ< \C\Ăi+Q奠7>~FgZƺx&+ּ sH,fF`K0QP9H&a$t"EV$Tg\НX)˖E_R$4 6 )]׋6_$_H*={"ۥ myܮQV˱P[J2ƖI="Uru;1h3kMMMpvxPl옾1J9*-\ffG$ 'k !AzmF&uc9"HF ʢiEWReѐyYb9Qcc؝nQ,N)ќ4&إbBQtJIJW&;%f[zKʺ8sC:N G'ůUe)GʄJY%|iLgj7o|:{ի^e"A:L0lUpc) élB)I qCBѺjUSɉ1us.*FKJ?tϋg CEgzC4GM[}L3e@r"SlHEiokeIٴi<Ce6PKY˱b1fQ?q@\I,Nd{}CL Vt ꀎdOCAZ)mF [ZZ36<9=#[a.Cي^]VJЧ^ka\<@RJg(4tuu0+4iUż 4L3HL34 M34L44L34L3HfiiivEug?wW3PM{v_9q8P({S{Z?z #07muڪ̽J{o]Fm d/ΛEd'M]q"ϗE~ɯzå"|Md޼L5x?;vL>=u]+#O<44$7tY3ףѨHY?OSp 7 IjJ+v{TA-&2 R1U7?h]Co>gfç~9u`ao}Y1Moz9 E2~`FCeL\Jz&_8s_??X,Ư@l3iY[?OlY_l"/*oPYk7av[䯟>}qo^)O"2n/M_=5"GgM2*F.8@ӟ4A 7o~S>Juu5G`d׮]&ѣfz F.45>eD9\f sEb[cB?nx.E>gS ̗`9yXZQ ~-r!`E |E/"cĈNy% ɾ}/`,L&CX\tEo)YO=//})Hwuu].6ܭ@8lQ"Okؘ[E{c}mꂿw6.COd(knQO&_#׉X:~$O/{)//[N?yxg7. z덯d׊-$J]=|wL7 vcE>xCo^?f~3n_ߑ?H򖷜wwqyڵ^+zڄW}5Hkݫ.ݽeԼq^hs8؇>!~!>wqfϴ׼5\^W3bu>i gH=l=j=]]O~CqHX'O#U^=}cz*C,\[n ̑ٲeM1#>95\'[U"Ma#x5Ɨi{.-"W|>9]x!y>~,1sܴξȑ#GWssW]Fd;;wWw⦽0y"H:a ^l$j eee|2]adM 6˵90$r]ODyi "ϙ]|b y!m8*rx;vs`tZ>яʟٟ_ɓ,"5(A}ɟ|򓟔/}Ktl6G| r0oZ[[_cՔA#rr1žpm54繂rmѥC -ƿsPcioV|VU/3_+Ry,6ny)Պ\QwhּL|n ɘ3b;w<빨D' Qp8X~{ 5+i&@qE]Aua6~G~!TM f\04L34L3HL34 M34L44L34L3HL3ʹUo 3ʚWôߪE"50dfi&@fiiifif fi&@4L3HL3ʹ-SN=۳g\wugMìs4¹!CUVV>W*ԧtaf[Vbx|O=H__nb&&a܊ݻs1-rQ?gy睲iӦ@4/) я~1[lg\dxi&@>z׼=!IXI_~ +W߿+_J.x sz{{<~7\jg0S 92@MMM'{vay,<7i 2ºW@p3">Cw*vؘ/{W.b#= G~l~ꪫ8~?>YH pG^{O:4^zSps0Vlv֜BYKK =C=$@9t:-'N83bKEQ%9pY[nk~__.FSV}e/{#s}}=|_w]Ƨ@dM۳׿t5ofJ6Ɖ\;_(Y3 Ykx@0I6 O 6vy">ϗX4m܇2]UUůÎ??o7E 7G.cFE\^6oV}xA3~niq۶mJ.Xcg~y?i>' Lqn0g599~$ _Oqr¸Wb Z[[cFq]MMӾ.nnNz 5* |+_+⼿K7ἿC$v[Z}'i1g^L 9%1$W:|Q~?w|)+oZLpD9Ir/|9=;LuY]Nk MYW?Lɼy=g.,Ÿ[OW߆×%BEy?#B7\/c[hbE-@hѢE-Zh٢E [hѢd-Z4lѢE-ZhE-@hѢE-Zh٢E-@hѢE-Zh٢ERL8;^s5{?|ꪫglrkw )9}^Zhm&~1_yk{L`Lv(c׾"wϦH/}SZd0Γ w}whGEYC3;8$c|衇x_Ԝr)l$wqLJxl֢ES;|q/oVA0Ya+ 7ܐZkqq;߶9VH3jr1sqꩧ'=I_zsx1Llmxt׿}[_+EXy?1yw>e]ۖ;%\2|džr]}R)o.^qGm=zSJ$اO>Ж[nI?i+8+{Moe3=C_}]ws<extMozd~ˬw.I_r.M7;$+]g,=xg??b|yҗT=s~3zsK^ҵ^+<셇4|r}sg/x NIyb?:1[?sc@G_,GHuoiXڛƚ ~z{+xI' 'wqr_^#St rIpv4XG(OF#:#X3;a.q-HǐxJk :~_7|lr-RsyLG}d6o|Bsm_W|GnVUxvG?8rp渨8 #B{@.Xmd(zg-O|}Cr;,믿n(x3]wݕn>#Տ4Nvy kX#//%kx5XC>Pu2^z___.WU#ŧ?i+YMs@fq|_n!xTbsSN8AV x!gF $8蠃iO{Lg[,Dx-"i⊋oY}@>:08#8M.yÔ Q&)/z4m[,XuU /s6Ti '{/~{n3-y9 m9:(z?%fZ48,}~Wٶdo޵.yYg[oE-1UD-Gz=GoY}&*HHmⱎi{1=e{F+KG'Fd`/mzɷ9~GJ- y ore=׫5-Z \n%s+[hѢE-Zh٢E [hb i3Π~=u{t} ύ7H7tVXa>ؿ'? '=??~ӟ{۱ ?߶OÈ-Z9w~t'ʿ*zSBx3xu͛76`9WnV:#)4/>ВK.9}b bap rwyf%\B?m>-Z rу+9|׻%n?z}kt1ͱ&a&|3/  .+_<߈?./k>~/~7Ob [4\pp&uKV>ؗ^zXK/-Ncgy&ct{^6rZ{w[{lpfԧ蕯|?xx->;w_ZfeCi-@.zp/h̊Ae 7o|җfff??Onu]'%8E]D^x!z~p^K~av[~;ҿ8a: 7r;Wq߿oSآEȅgk}};ߡvI{'|d֛tM忖1^qi>iO gk sg-2 tJiebH`[n97t8: )H9K'>!@:23p ˠ=s^t0__/x&cz2 Ϳo1ylѢ؃ಗ6Joe]V6TV[ }<餓o~{z{Cq v~8}c s'v<9;瓟z x(@k6sgp#TW^y)l٢cUVqG˂kA'|x3%Xo}M??JZ0h-d7 r6<:q=X2ml?fo@h \"3/W>Kc O0)\4L-2Wq5֐R{N9^~$>`y><9L3Lw2iCc'dN<.|8lg <6PҖ oۥȽE)&sNH@ג5r<W \'8yb%56_m}ߖ*@_E8ZLV}=_~tMo/G]Zk-h3?>-~z'nsח#8J+x̏|׿nS|eg{,9K?b%JYF07N*7#~f뭷d_-,xJHp/sv6*gLIZX0݇__ }]ykE-@fl-Zhh٢E [hѢd-Z4lѢE-ZhE-@hѢGSjm1u1S [cA! 5J %d \ I}te^?NoLx߅w7:Fo^5WcGYH!s9\wS<~u|?]AOPda?}y|LQX%FI$&D90C'fy\>t|_rZ~mv a{o?pP'}|Xu˄:G9 /c.Sv~$ǔR6Ey,Յ+-|ߐ|cÏ߮K[QXYtQ?K:SU?􅝄 rA(8Y(xʿEFF COM>S $7gw`΀%@%"'>@E#`O5BRVn`1r11r AKHo޶0'y.:bQi4)Q_3cV)eHA* 2bPz9 tr30\/bzqDr ?(`SrL`vﱼ2R a.zQ *.-SH{Gr3nz- Iܟf`$*E9fbsVQDtfhqRNNxΚ40d @>fr汼P~%gB@@ڄ@J$5stZ!i,pf@318?Ѭ 7|hw1_ì`/?w<&Ad9@9g,R e0y\Y3>91#ԒV"'SI)@%'fQX;mD s ^3YkwZB DMO Jجi߷8S* τd?sx9eL 3ʱ&[N2P*Hrۑ(,nepF ˈfŠby9W1}p"}m ]yF/׍e>A#{d)Ú'-7M8C'x@%t@ =:da^֢,0%wcAK[>3//dǂ >)_Ç`pRaX H<+/'lٛx: 1 ('؃Y372ڸP4|Pu:A 2 >e~ZX_]>!oT%["hF# eqiQdC(\,dvI:}Rg=tȢ3F&E SɖBI3k`Fؒ]뷿-vm}_ȿӞ45\#߳ 쿳/vNl1&ŲþؕNNe;qOD}+?E֒$@B31 8=J9gdsipD{L1ϚLg¡DZ(q9,eKF.gf@""8X+TKaanr֞Rl/;EiFQ85e@|e'ӈ>~e\ 0}:6s@ҡC2G-%*HQ#٠DTvFl6EI\H|R)Nbd8^;'2[E?JHl3TPt<QB4drJzТT P@ AW4_4M%el̥J jZL1<DŽeǜ$ga .H[7dw}'lWIm, 3N8A W_-]7_}-qjpr!tK^-_-*lMk}21VTWӆ$ibj_1D3DBaЯ+~1S7lXqEnDC݄)EYR%Oߵ%};[= m><ȊmN[* ISV2=2 1p}aE_giC"yI3Ce"0gS)`uўw0 kՀOW\A;Sm3`^guh6{ֳEysć{v,Rs>K,G dq,J !J1H$VPKx8 $ ( o꣮`xPD%ό Bl;1D}>ٞ5s+=RbVX/E9> B=˨#8GDނ}%Ӂ)xrHw!8uQ37oxCK#V/qdl1E':T(cDEjls%:e^+]E:M+@?R_*կv;3Zkn{\׽n],g333w+,CӟɒK.Iykx8d`h4s{.կ~%0.9o{gcv͂< [uYK%/G.>P_(nk9d0؇;1j'XKIձΥ﨨Wwu}ч, `TJ-HJ摀dm&RAY@sLu%Nb\K_ ~ѣ})t6 R FyE-`̘l_W٠.'ͣS4w;~d Mm0HAf(mX 9BqE-o]Jٱky`wnVu]iW?|9Ǚ# 繞e'f|nAN\sz饗z rA=<R2AGJ9$;*5kI3.4. 67ozHOKp+!Do{ɇàӟzJJ/cLVQy< B&h( ȠCY/:'w]QrbD MqIaǜM%`I ÓP~m ȟN" Mscq.d,ZFLr'Lڱ8F>LM @rYk9R~O$>'z|?^{Pl%2.(^.k~vCeZؐci[;V.z!v8R,F/owi SVΤx,VRٵ;z'5;J [ 2kS b}_f4$s dm$ Ps` `h97ȧ6\9\Y:(*:MJWc DݍF*m:ԋF'md( ;; b xѶXe3q <]Zlf2SpL/N?|Ź瞻P̂2Hv3/svs~'~* LQSA.3@O'DݠQ' 8[_DZ\,O3K0!<͹1&5fmWC0 ɉA߱`Kp&`C* a//zR4r5}WTPS/ؕA,Aʭ) +&W%Ad>%Wd;aU4:&v 6BQ׃[AՐ@ WRUKi~3 SNig;5<4Yag?[ /) uρ{?[n\A-HրimXk&#}4҅% z@@4b؁n\VawUdƶDjŀNՌU`g.DEAs AwѸCVL0 9)b[_\V\ _IT%r/3PUy86r cʝfqIz3Օ$O3TͱZ$6޷NOϙAd1V!J ]^N˳ )?ChJ{g_yqd_{ o,~ӟz HxHV~u] ;L2ps6ZWl%vvn#ˇz3]Y6(YH[㤴M\&}"X1q-Dbul[B- *+Z֊3$ SRPن] dYFMTtC8F3+Rב$_5TLXXFm'k@&z4e/u]ԒF2wv= ӏ֦*褥z #qe*uQZ6l#l {8,y;\*?Oq)7Wֶ( % [5>ڏJ!Q 5шEwOq#uaÓlfz_QuR6 t(O` 4{ Dp-1=gz rH ]<)-}q=;%VK;4pEɦj!AUȮ @Y=twB Z*frRm n|.d`|s֩bוo`'Ms8-J@ރLThJk+M`"ץ+@.% L@:A;"h]~M E)H3,3LTm6b)]3mkI31޵6 dkud\dAD[M$i9)7Ǜ+4\ 9x@s',zs+ y}OZhDś6 y.Bgpjv^\Xih}y'\@UKvɎ्Ȳ]aLNŔЍd_qdᅺap=9U`y\Xaa&`vZꗀ-<P" %C3J"G)r4F\)SvҾ w- Wdax)*($R>wF M] ql (Ttq׺KyMΕ }(T_Q h>Jr1& 3*jM:9<ȨL):1Ye`]Qܜ+rMݜ`A Ȍʹ7<فğ )XUKlo!K͘#/E \/CE:&1Yf0%D/ݗ%Dx$dcX>D1fB=m;4rOz;%ѯnVxGI>j֭vFU!dj3*z:?!TG7I7*JK!Q+,9}Tas2*i$"U: dRn6p3Sq FqQE'wq|$ޮ>.vm-0Q< ofx!n}Ok'$00 NfF/HKh?QG;v Xؓp,va<:Shڗi95OSIġ,2IO  h)dⲱ?95'X8*t<T T$wzd>-2G2&2.6OpiH.c2Đo ^|sE7lh͆`VVfZ\KT k9 Ųb Ėya.jE1%#zmfeчH: gq@}f Ҍt G.&u\|}SI+CkS6{b+L)K%݂y k[4;LQYfRybʏ;%# d)N"m]g%6R@LLuVPЯl#+n<,шNf>qO^Z]kxtحR *4pa߄"Ю^1 /.Uk|AP\xQLO}Ba[EK Z|j6V4!'å"LimGGM5F;;SάB3bz+ly }':rUZ D ]H |@< I UMǔ6I"3>~k+Z(7EV LԈsݭ&݊ɑ+Ug>UMh{͕N_kejcUA>\9;6l1p 4Jq˄`igmtFlV,?QAX}CQ'` VfqF݈LHYR faT9 C\҄~ AA&?+c?N)u^=5mQJ)c:VV}j+1a^Sl;i=8l[q(D +`cJ"J4*p2I<[bء*tFK mNogбh,(2:h[0_fh&lDsrR;0.w4ülc-WAP.k2HjY \JvDNT@wGlTL]"vTvwǖA ;D%X ~~ǜkvTMW T |RRz8Mq}k98^MmeS+Z2:4gOln5 G^;U܁' %W*GօNIe{u[uF/Z4@g( Ӭh#)zTB}J{9A8Xy;8ʜ.-7 8pwCgy^{lMikBm9FfO IZi-jΈLeU,7:FZ>Bq@Τs2gEl[tZ)$*i9d^Sb䰌U=& 6LNUW %x1@!x/D0_Y^B9( &z+ ep%(ßmh$m)`G:SR{9cB=$#OmȬ5QLzWNMK/abpž% m;>hJQd$#a9&皥w!}]`BztqT DOG2̰,uClc筊Hަ`2z;:qƪ;Pq i(7a`55V ^qb g?[_|vUJSg>6z vSr*0,%?bNg .(Vp0&ׅ \a`.KF[_Um 4I"YtL!_L4Ptx׭[!QZ7]PVsܝ1-uE Ӱ"X P!/VK0\* / Typ%U-@9OI J6WwJTy: N6m`GWGeSgESK-}ٴ~M#N;vm7ZyglK9>+ rŔf9@D]@P: 3)~QȘ+0~WB*`1$'ڀƜjA"YhAAmя윸.$ | Sh|JĢi^`Q@:ecm#e G : m;yt/qK吞NlE=f]tbx 2WUSi= O9 冫躙גGF.bz]F~ׯ'~vG=#ھ 2馛h޼y +{o.=X:ꨣXo|0-*i4, M!K~$A% d F;nҙNU"0ߙItp_U$ rta ӊ +Лt @43Au&u%5Dm_L oj;N/wAwϮ*)7d9K^Yf?CV4l[Lwp_[UŦaޔVDNDr[l@؅*j zwIwlä bքX#Aʧi2NM е;)ˡhQ'ruD#y#Y`6[*"2UpC(վ9z 'A#lzrpl+&SH*r[xI[|rx]zROs#u%YrZ&B5=4}dtFG̺#?YT(5;b^yte_җ+sI'-o?|b-s9t6ydϚ]^r*.@TlANbq ;t3:kF&\!gvRYD.\hu# Y6$+4pR=R6cD?o6>>g:„ ,0M6}J`E/2Ԝʹ1 5fw[+k~G3"}r;&H+`G6v&8Ǧ@nqNvA5ï>?xfm{x@L]w]zK^2m?'>1笳jh4C Ο JP`f8T%W<.fLHċYPTgWe`RBŹ&lSW9!#SDH`DEzQRψ@71ð>)-BmχpZ!HզBSta SØ(8&6P 2/d+ֹmSd8s!6=:dJKFymZIit0!ep)rBzy5 *y;8ziw 6@ּQ[26ih5פC=T&-g%6r^OwH33@y i8J&fR˙;i:h9VlҥbV [ DkȐxVlaŀl'ڶ+mD83lOju^ 8 MTfKaD덎QڃIىN2I[ ?ː4i#%`)wWwؤcMT6R R$DҔbu]'!/K$+^Ņ^(I.Yg/}nח )gK.$2:6$xKMt;qMmd?$ӌҜJqQn̫!%n8˱܌bU 2L J'RPͯ(C"βIBJ2u'". )a+%Kz݁L2+4♧< _5?qPA`i_e]J @k)y3t3 ԅ+*kUl9֟l{ wy[5uK._r+ tAB_"nY1@[yW8`Sδ -#+^@A<׬xkrH/iL'l A5vГW.*>%K`S%u3&_ j]|Z] 1TuG.d?ޏLѩR+W4ЭZR]`|JIV%)L}wS.`fGu' X*#^+yWx @\O;LU"`B"<>$Տ&B&LJU )[_R3lk :D;JQvQJ幫9Fؙ1 NdHٸ-`eȷJ^a~WUPުc c C]69p@B)%t٧Fi)(y!1~OewnԏCG*$thPYetŅ/jjJ [L@tNʺQ'!Տzf>Ó<}JRl/y.kJ^#:Lʒ l(Qf6m׷֨YZfЦy)Prq 'A 253,{X&l^h[/cG՜$b}76K'ߣ1j_k2e3LX'E'9Hb`/ XcT5] ZʹŴi3ߑ^%UgvI7wQ2kF?6*QdچC`WW SS^@'A,RU!b2]2gٞG2K %k!xjkk#PZ%;1׶E޴Sxt[D WYZ#iQqiy4e.bݸ aUa'ٮX*%8U|@U~2ճT3.ݖ$nELd͸鶅+`63/i#wU5uMm1Gx "wy6:?t.#k&kk՟v1f*RQ> MMрMthʖAZ4$8`l;=S@"iX^T~Fdh}g/(xmtHq>{YS߶ryT+EVr`"{a(KH5FM O~jFriTiU:TJZ"12(/3Z#P%^׼ p;fT- ⺻>R@ $JkBPSS [L_}'$\J]8 pF5I> uZrq2axi/$$L^I  M_Fͨt8$`ltC]Em!pf{ae -#&h+sƐ.IbM W]iJWR7@Wyci TՎ;0 Vɤ5!Z6gq[fHEP5%{eY{!T5#: $j^MN--0Ե00<Wf5y,H^*AK c7(:HimY3^v 30(R )8mEC#+Y0ndbߺ%c"+2_\碤jRqm7>7(>n+7smȏ!XZfrp!0aP>خ"u}a +(@ ԛLRVb Ҝh+E4QDJt6 1LCyf]k.K]4(? dA3ɮJY.UWL\zD7 tZ"M*\yC^Ie4\QL_kG )N(SmYe09:Bă CxLF3/^w.JhG*>g[!D]" ;M*_s+A/e-2Пs<dq ['F,%edbceܗ04B "2e$#ldbj)P&.׊..X+Vne28zld ʝ X*(_;4ˆ*XEuA$3rJQ\F+=\ :</qޱc}73`tPOhޤBq5UrpeZ@Bp$_-.F }9 SJOI&r2hDZUt 4II$MfR52*1]l%ًZ$S`'P5!OA 8wKԂ5K+%@`"z)\ܟ &8Ǩ?m!i$c7JܐR:Ƹ-C0ri8k z6FՆ=l^5AƍSpL2̶Y$,CA`B-ZLE#9E# Hhy&&$x=&x/sId`Sldl:`[;_Y h@%qhA2D|U" Ɋ*˔W0xhDm?thC/Xu:\ sn5`8 x r5n@Ynp8 bbP8;q[a8P*X$qf-{EM 7 v :T eRE-Z 'cGIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/fig/subtitles.png000066400000000000000000003477711473342170300271060ustar00rootroot00000000000000PNG  IHDRJ*B5tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp 2BmIDATx}U4ҨRDDATfAE+/**OA`AQl ^D'HK^/f{v_{&IL3;-(PB %b\fMԅEZ1,RU=d-76XRe(L3k5vx9BVlPB;ǡNFڒSwCmzK9B ebuճl)٪iUTFk%2PB:Q-Vhd5&?;] Fy_J57V v:sB _x~ۼ5UxlWɎCFJyX<`XS&>P_VW͆9ǭϭy>~ޡ26Xx{[5TrήxqoKhC %P '1$QJ(@J(eMf~3#?O+WUVї%7x|?฿驧 DӵT?nTDzU+[cϫm;K+lorFՎ6β P /:k7pߝvi~W^z鮻sGAx+'ji&3g;L˖-Wc^/㏧|Pև\.}#Eg=xH,X}7RW6ɸչ!yVgms05Mh6jLr'w};h,?)` au;ødz.Ș׿a=\$!e]Vu??]}#>?CGu6ɄZT)8)42qS0]}V@yWRM~iqG0Jy>[nEQbpΜ9s6+Vy_trE)o~֯_O\pٶv.\PJ(!u T.(nw/e~>B<ȲYjFgƍt* , yg+_ ]z饢ַ>h* J(!PKAW)A ֭F،DQ뮻N>d(}' tRo~cVN[oVO~JĆZBN=ԪyM3fPBCKW^)i;#!@,Ɖc$s=/|z!=8rXnŋ6 11+緿m9rڵ_B /)(>#G?ld(rB4FU ?Or}F l`DN:~a:3ġXLc=9aF2ՠ_sDJ0f5&'53gݺu~þh8(8g`4r=Pss>ꨣFxİG3;& /y8ݫm&n$`w,Yxql8B %P5B-6f㎓^{}Q8#db18m2Ö,#Mb}Ć!Xps7w8|/'g5\sÑB %(<چZ" f1 D6GCB \cp`AP5RiG<(oX/3FR$8BAP<JΝ/fXڂ<7ck_|d<fսot*-(g%\Bsٰ!B.>c8%{1.Hh`CG,+cAC&Z*?ƷVE?F9mj{w<`x;C^PxozӛI}WYg͚%Ͱ4S w] ?L q<㉇}ﱏ฾/3 0*e= 5cBN(LqUr֌:JЛz@(  V@4Ӱ`|#փ2%0 k>}?(Axsj,Y)k!U捃‰/xP|qGTl}yW` K[@J(!P2!%L#hZu 0ͨ%4#P֠4`)xB'80GPB eDVb% 6m`L2P%sY+X҈Mymw$[ɮОZM!PQ7I`x4-q+@jg\?jU}u3IN I*Ι*&畧3e7M*&N+PB̭&L h_y7/ѯSNܦ\*'FJ(2A(J(U$TC esշOR [z_@J(D3}o3ڪ3QJ(u/ECB(C %mׅ2PB %ʭ!lV*9ߨX#Lh_?OK/90ؠQh;ꪫOKxvL5% ^xF\nVjߡv@Ct9Dۇ#8BUÙgIU<}cz8ӟc'Io&F{N0?/mڴ?֍7(qc edR\](?ۀd}_M,Z/z?p8zJO5,MŒ`/׾VZ梿c=Fwew}ql=y~ 8b|/qlCJAJ[ hg Z:;n6iYg?<]O|[B}'}` &<ɓO>e(d/ikwZ[)_ʶ;}ye_s5x+>Gk[cD\tWDv},Y"@?l fzE].v$B1Z|ֺgyFX'> JRҋ'1cE{^B %VgJ1T2@cW@م K4O?ŮxGKqlPf{kVX!}!ykp=nF|^L0a,G`Jrty8PBy 2+n ;#!@ 1udT7t /F!wygձ^{bpUG?Q9lXrߕzqU'Ђ sTg\VSN9E4V FWڈ :cFl o7޽+E V8+rSGG;S+_JwV]N 6L`'!_.sv|gyI8>qzPvb^Pm/hCSGsڶ-ƪ_>1777cvEUޡ6lX,VsP:,E vtRȈ|{+sܹ/֫}nZ= Wٝ$xz0tZ0>=P V;Ο?_ lN98p`Ux́WU 1Ww)vO51x>  To}[bAXT(lϦ2]m  P!0TR8gf̘1b;& ,rQG3mXKܙ8B}&zȨʏq?`#‚{[y!8{Fзmg `+WPB i`zacQ-~xwpr=l۞ Bz]>`#N.U@~+aPOBG6ooP)Ag{~ꩧҿo1!e]w}<0HBR@ , bՈ%d >0O8:I8Ƅo8߱;%6I 4 ZJ8W"d1b81Qa޹Z&ӡ7zWsќc9F& [f]γ=8quիWKZn| 5)g}Plz\rs}׃-@vRPP7"5bg 2f 5)a|LؤZuS1YL'LB[z<-&)nVDh @Mo'׾5y4@k`|xB f 0X%"jfLdGy8A 'a %zk[ef vj%p 'c"c=x-ZTzW,Tg@x l^x#f٣Tmekoo5^s`ŹBe~CAP;A\V#_T@J( Pmt+oo@eQ'묩f_@Xi糂p9IȯeNȵ(!Pb&:Wބ}#>(UOXiMq}ۚ h 2P&$Sm$W3{cZMp)`閰X(LQhܖ1d43 / 2iSݟ걎eBō漩t8,:xC %#fJTxH&pIjs{kO!PRנ6w$1 P%qX`9ㇰJ'pk= zcز쩁Q [ێO[]9Y&R"㎲͉B2Z_&8|]ox#i;=biF dcQ&"Yc)5NMUz.?GNz=Jv96yT/P(]R:;ݲt,!8X~cd0i1 >9VVN̾)?Q>&*m>/iEy}xC %PF0ro|d%PBVP(CٶT M(cw(Y-ҝw$x ~(C|,o)aˉ=Pc?Vf^M uQl6+Q-Laq4A141twwK7VU,|ezl uI/䶛2s x{*~ 6^xd\nVjߡv'?)#bh>h3{gRggg1>9]e``w0j-m!O=q!M践<72 /xZxclkU,[fG] l=KҺTOچu]Ұ j*i=kM)?`'p|7oJt\袋t1TC&\[tr؜ϭQ۬1lޤJE)}󟯺tSDB4 Bg8B-Bep jŶ6g?K)N81}\RWqQ,Fy;r3z_66w~*(a7[n8i@"GW])"NcO ʲeo|ea8&c-ݯ{ >LB/^,j:I_W>я҇?a!8`Wկ~5=~M7x̞=;D*Ķ h0,F]+ת𨩪2-(]veu`g)l&S=K/[lFu‘sϥt5׈=a̙3nt$o G[x&f޹V!WY{3Zadk_'Ssn{C qҥ5FL&P¡s{p 6ءkYg%džsZy{/b,{@N ehX1&gZ^F_ܫ!,;=|i͜b#m׌N@!+V̌3Flۤx᥆uQx =@f@v/| 9YjlC9D5 eˈk&kRaUY6DGۍxfm@?͊I}%X#b#/#wkGl裏.A鈳4EX_A@ Ǝ/2 [&l/N=Te>Vv38CX>!:餓D71L&*l:}ƪ=]|нY~PCt}Hݪ20H ?OWU7m |k_3{N `BF~/{˄s o'Ttx`+Ŷ eB; E1z~~3u-OYjƓWqhyhy}c,(˘k֥vzCF,l%mQ=頃 x%'H 2X"#C-SQFJ8t#gdXˇ~Xda01̙3'HMY -/]yU%k8OoR$wsL[WM52X&8Qӏ6>+x'xۄkPaޛ&a'Q/wM~_'xBT| `,W1@[R6OB1G@8fd^u#W_}oRdg3pD)5|WzȷqҶy[ޙs׬YS@E (‘`o dQ> 3hѢ2z ۃ QQ(} U#RSܘ+6h eMsbζɸ}kN8J66GgStp=x4)nvx1PWX.Eba&%OR4"+g$txu*NfbV!P_@V8hK*2cw)ۿrd1X:o` mH,A6+TqmK'=Rb;A*9Ji {:>Kjxٱ&s1cҘϐ79[WQxҪEXV$ab|C .S0AA"$/gQhXD Di}&x&PFd~:%H *1)j0ck*4jOh(CK0Pz^I(, ch5 &3bgF;6cЏ^y&[ZORlhGŭIo{L!PRVIi`ˠhF00*0GV]U8y E-s=VOQUdU3LgmHB(fէM2NV$&(CS.5U<[vj*E̱`3+M+!*BliEW+)?TXO͘=XM=[@ -p"}sK4bfc|=W^BODj"05Hz:k(CSF阧4 0=qؘ`n3U2^)c.}XmgdM 3[3ߵ{.pY(o ;gh=E;L L3gӬs6P,`pƏ7ϧg='l6]6ccps4q@J}2J6*h A|,K3`}F`oM?0HK7n)`+ZôG)_,*)ᆬv#-Z.\̯PǬ9K$`cbĢ"'`Ķ{ӆeC6DmRNQyޤ@J=3J'RRLp]06UMX\Z趥wһMݽDo3uefoDO>{e̶H4F3i%;λN&J":diV};m&XZgԥDH@.1D!yUrs:Ao-2(->1K2xrt˭Rnr1Ye{тV1.[bܲ2~ xB-1[EX 1GsRq8571Dg@{|_{hf,jjieUYHUFxN{M[$ 4N :ێrJKԧmF`ѬǰG$LRϊF(N1Ssލ7nNʳ 16)C Q*q>Sj=[}J).@@CUo;<鶪@q:yJ'2k)@w~jmƦJ75.NLfϥjhlxöSr*-XgfI'81's톿]G] 6`+oQԊhtaip -@d@ܼ*pH*|Jxc`D?$3l6Ϫ*)[0`CCrQ{_&r]JdR<|.3Σy lq!h 5fZ$rL֐ ny!P]c  Ucum#EfT,xjN/]Jݽ}~<#X\l`w |`hGkΥh4 : n@-76LInVFcL78\y4E,o?L 3&)jjкh8uV0a6R EKX54x_efYe^Iiq[Hz-sC >U F4*rڠMzx4& w 6QV귲YZ:(=J<s^`!IF d dL^cm/ݥT:MٜdӬYxr>S Je{C{-i4AO$߶VOlˮ~nFjմ%r .tUlAl6UO5Pfy6EZT-O44HQy<54[5x:P1i̙6iӦN?g^~zeaaΛ;>RKKd%EcIoE"&fiUGVh鼪; 鬳 7 N~ le 8z+^! P3ϔ[[z!:o`dLqLyr*GT(Xmnn+Wn'ѩ AKZos+8S̎ɾrwR jzZ&3=4*Z 6Ss;uHF/r?L`Q젌+`G"/880yfl-Ŷ c {3Њ&uҭ_Og.ѢvYY쟈GU%l<=wTܭ=Vf2N>F;w[.w N;In#hnޟ?~ 0C.!3^>щѴEn=c}'?I9#z]Z-6ZbjpDZt%y糧7nn&_QF Im>,,rb3ʪ"lNuunl>'n4Q=t.aWsD(wTn!VARd 0W[b.u+F# 9P_OTjU(뽽}64{:< %KssF@ǃ<`9#'acScO,4? f95<}Rwphf͝GL -9;̧9sR w,fԔ|MpJzUY=Zڶ7>6z_qT~ZZV2Jy>[nE'82FPK*35e]FG ͞z_mll/\fctgD]'Tyj6^"wo?(WAt#͘EsH /KBR ,xME|JXMEJ<\p~]v)c #w-l/)rG5G=b?kn6+<FJ S~qL … wv7Ŷ S?Yd5lg] =*B3$L7n})=ēEPR'W(J3% ` 2@P6}ԟۥ+l5E$*QctZ2e8SA!v$dW A|Ԥd dkPw&3#L$RKK+3Ҥ0ֶJpf{Ďc6fg.#` 5U}bL 8&"l ³O=k!-mv]w>1VcC%Z8q]%UUJmaby Hp }'C}{=$Zs9o} $!Pqǒ3f=ql 3^|I`[8g}DuFpV5me',/kj0 2L@IUe{nIb=IcѲp,MbԄ PGQ/F{~6ZҞtK{ޔ"Wf~-zEٯgt@qh(X]t+;/gOD+jx+zeJ#2Zy)V qr` /K<|Xc :Jؾ- [0YH8S ks-|nݻ&5cBv4{!{27H<%lvMSou W^y%|ͥA `-7Qk7zzPǽ馛s\q{fP?#e{t 'ZWJ>3lt|hQ~Q"&|򍔪ŷ!5I} e)@B]);]yb1נiB >W`{. GcvRO DQ V#pPE+Gvk'd'ҔxZСc8N B߈!UCi  TQ<R!@Qy}q5*@ g28Ćì*G**#*R% <-M- :ʜj6sb`V*Mfq!(~sS3cV{9 Hl#m4Js =+|w,ʒL-$I'nr䈶oPK8nl E'3rC%'2X!(>GCCYd-AR }3hPvX,L^1#ױ2 gs~@3sZz{9Kv +6Vd:8L*1va7=q6yFL:ڎP ^ Hý2 a KLoU4Vm]vYfk8>${H$wyኧEOWA8&Et(tR/nt [()x&c_*0 Âl^G?|.18 q;rn 餀?46I-07WNdR 38(z5(hUR0kjD0V( u>.^D{H@?CRDcpH!]%Wv:oP,XA$ mK52p U6iC% 7M73?SG׾pڬ(Hw%'fx(}]mdu`p*6Q qXBnj l-nnn1B"ػvM8AԎ vxoc" 127[i";@eRvntBfDxp*-Xf>{ '0hg - v*&̈́J߮Q`*hfɴxھ olh`VILo8Rycr|.-M8Tc#8{-""0Øy͈%gAW҆dDm)@%U |.?p?OG?v=3rJkwгO?- a+7Va&m)j_?GQf۪W7Y&'uKwV@JRYKy* ?P?gzfh<O(SŀX5"$g]w` e2`0^F". @V_wd,^ @Ol?&T_JK.3Y+L?9O;CK8TF}N̚zle #f?& E<1~mC#l*<j1E|Q, #W-!㉡≴R""XeaeT DV*(uFfREw%$¯aSN*~1ț6v6x|X9joL3'(82K s,R6 u[Fփi37\Q( *FhDE *GPL]7W ľ1K*;ut 7Ћ+WS˖3 9_2-z9/cy0yx;)&)0D8Wq/)ݿoe˗3wvG%BB>[nq- "p-P jlo]ރA@u5 ߁"9uW͍̄TbMp?b]<. Uf+ԪiNR N YCl U྾~Zrx޾ PV0%c0V<Vflgs\][dTg X {¥*ȻUZ< 6B# ?sfJ\-3 .a|q !\2!ì@bp&Xy插iaReY*%/bP%O9Wqyjkm'/DIe₃Vкk%c7c!O?84Al(-c&# 7σ~ =Л|3}L~Q* +SNA5 8ゑ1QtV3JP.%hw: DC Ƭ3U0$0~=~ tSdC/%uZ4 jTQlJŀ&^ ! 2׽iMq\,OQl`~|q+!/:,+ S*P)MGmE=4 TbB9KsklnT@6鍙fJFU #V6B>) ]`p.* oYr]L2&$^|fdEͬ}S+LfzQD {Kz#A[)>Ic=*mo}|!Y?>^svk;_w ~vC<`Q>s"X4鐫ÈLM"S* P =Tf`&LZR*_.pxT ̞Ȝw>eTPxI3nAy&oI*"Vkz- UT*DtEqmXdQA{|7l] c&Gb -jjl``l"0Āp$Jw 4"Xsmj60JJðM]= QZ,3d$ +o3&z$Bņnp@UkoL2А1q( Dcdp(OU-ޥƦf~~[Lf]%%TUjkS.]DF`/t$n}3^≆ }/y`? qC(>C.cf&.Kl:#(MiϜ9Cy7n;LګG8"T~'&lۛE(c:2ۚT*V`R%IF#kLqTz )]$C*Q((hMYo2JJӕG,RZ֛h ``  R"Y- 0MTu Q''^) %4JM|nXAV- L`mM>1cu !EMQ,GܙԹC>~vL ;"$$ƉLtQ@!m?Nj/۠T0*"ή2P^P,K~oR- ,bŋ>#3 !]9S\]S*ťG2[ qA4W 檔>KZ>xR HeXeN1)xxߐpĩ3;Hy?Z67$&yF6:0$@:/䨣/'A)jQԾ.&>hi$xwdk1$L31f8L:F;ﴀ֬\Ei[ܳTQ ڸD^1f-( 5Gݏܑj6 0Ga(-Y0Y ͛*{1ȋ9KҎ пǕFffj}Vm1e4" T}_/-q&ňU\/;YqQ6Ђ1Nsf`&Λ=S1FC9*0"158oz:,Zqpg:pTuZ EK&,2ˮjvow质Yygg+Q-JKJY4nH ^d'PxTB>g$1A++nP,zȀcDRu'@`9Z}dugQAH).Qr;xKʢr`=dz g.undO< ,aM3[$QŸ 3̗t` .:0Fj3 u (L3@m%6u 00X”Ҍⱸ8d T`w;h vMTnUP s}c)+M:48Ke( ^ó:U]/Ѫ1DD=M>ZI`Dnp۬pE'QKf?QS8Fx$j.߷6R ]X'"doX!: ZKMF]I)($Yݨ-$Qf|twP,tuVQWB*kx33U P{&%[V?4kbU i\&p8! qHmLֹ\f(3HV{zz񘇺)`662HM <Ҷ )J <]yfqfk31ĤkL::HLt{DOdbdIRf\3Z0#@ Li,js2aK9/'akHxGCè] dN!HdA0D#v S/`C@3iQ_sK=̓EF3M&\u%5̵♘V?]B6 ETijA,O8K'*I{^+v=KC>(9 la9V(M1e-ry2@kY@ @LHQ|mB+ZO:)Ҏ S (IF߱Aa'&#'Z rບ K:HÌ%R ΤtoORLQP(lfVdRޘ _ G]KZ =~;8jObYVZ%bpdKj¹慙9ԻXјPLi(=:/LC&%){ET':x$&!6;td}Hp閳 Z$l)#y W$!ՄF-nu 3,O[%BK)'!lٿsy08. D:ت=B&?;bE%:B7 {XA- 7*˔n1QY/F)EAc@V5$,]#^A83[Z#׻1Po_JZ $T6mLS 55528nuD%(bQcs y׷5KeqXʷtځVUn0`=/Y] Y!. V  T;fD@'i\V(M;x롗P7PR cyUu$Ճ&Kfʇe@6&mG-SB-"P=mP 355QKYY2N*nQ];U!Y%IMzT-m*j:EfK)( I%1byZb5:kIc>)CG:NsrE7b̋R  }s M0K,2#F(O\N К.T61L_oƍ D5Sh=@i``)@VMZ!PRw uWX*, [JzX-G8L`5ai묋a~w ՛[H: ֘$xrt43ۨ@fa[EƖjetqzt9O"Vvxt,"W}~Ӷ)V c](t,j07%tlʱ`[@"'.&c( ΏQ/!K< 4Gt({z6Ҍi GR ~JJkXemPP e:Aғ10)5ܒ:<H]Z^B\Qn:*:@ 6z YK-zƎsXU[1i{Ro:D<*THҳل(/oD7F%蔇:"6V@F܌Soּ:D"caY21)O4LRT8Tpx?T&JV=#H,*樁uv~.{o KkIDUv&&3.E8sz{{hCg'e'@'7hpN;Z&{7}@8{l5\#HrWJ_l F}RFp8 js=uC.=XsRaplN+*؜f)Q]e; PnVJIl1[BkbV$ҥ0cǶun b&e*1F5z>c VvžSH)U˩H ?Y X;*:H)UyzGW\qN~ gy&]veM a@//X~tu/ތWlwzCJzشcۥUbШŋiՋ+!RTŢ%3N ƈJC^Js.uijX=08fs٬iEjaSۤ6,푞PK=E#0IIkR<ɒgED4]GPO^6+TeU@j =8rĶjQ1[U?qWq0\G;w҃G%yjO8ly{8g΄dٓO qC@$0(S*2XHZee$q^-X6իWI'$mi/TK.+A'=~a[']~ **!W 3ϡ. & O;~ӻnZt8l~U ZkPm1JM4H?H?G}}МFTB9#.$@?l'GU}4* /6?QQE$Nx~?<]4(bԤcI%uTu:S<\zjSGWWE<[y8DEp!D~SW/B>b#1}̈xۑфhh$vxq%4"KJ>ޛG[vբ~7էJK$ ^(  ">E@d0 2DTy>SPrHBBJUO9U\oةsk9YƸԤ翧!]7ޠ)Ę>u0h0K3.z\ϵ4@!ĩgLz3[U7(G$/yK-oyٳ猷}[&g<9I\δ2Tzy{h3Q: 퇾oz+C `|-+ ` , ^H >4( It@c r̂%6d$i頹w0v uB=K &U]2M\C2gvh1p)¬BOtS4se;2RHU8'qR'$ @ȩT`V++3MXXsH {o:D۷m~uYnv*=. BWͱ kt\Rm{t6wɼ"@ >y;!G@vx}_x3"[8{ 0U=kE~#(v;uQ P\\&w!̓qFui[c^䑂.M<5lߙ WO#Qx SOD`= cc1%N~ؓy:{,]{RxxT27g6n wsVq`g' %Rc77;##dQ2T14ya;z7'&H'DY}Rk&c EuAY:ˆJM77|ӛ޴AB=ʍ#Ⱥz{ Fx^zn#P^}dXrN/.#,/f42#z]%*soF7] !P.}2Tq'ӥLX_uv)n\$ d4ua; M,6tg">@B*r2M&uثؙ2g P(bs>Lwqv##iB7DV-Nj괄ML./.*TGb;QL8m2*5er Dia74祵 YM=ժega!mߺMmͥCd2ٺ۝uU ?B;^irx|??CrW~}j_<CL4 rbwm!lm8v 3WH]E^z4B 2qmVRv9 A^\%2J4PdĀ7ަe\;ͩ6(X\f sƀ'KUC"1 rmUJ<([  $bK_fyS JuB\T,5ȨiWB&J0iԷzlj#vh_Yi%@c4eU}-FSsxKHՔoz7 3%Ay&ϑTQ ~{s^{vcImR] 4(p>O׿gdbwTqݣhAZT!A[R%28Ըك$2BPA!21n)6;L;<B.49& siX0ZExZR2N۬QU\3sC& ,#Ri i?תEf݆7), v0:N*8fUUm07 8M.BJ$=V2%hNGt/)Y: e=Q4cv\C9$vĉ*z߯M%t/L¼wG_}{ٕ1p֙&{}wu??6::QMG1ice6^lRLptgf*3[vArz*!o-رj6&u`JxDl5B`Xb&@vX' it0DKSW6݃pT N Ck)r3 \&M8TYz:ͥ|h^(J*K"`Fp B^g׵Xaɵ('??S<#XAeL = ˿ˏ rkspf9<(PK!s]n%68e5mM( P5/wj)v>9cSָU ~3ڤxF&(m \8$sAύ:*.]}^rUC7f[Z[ M.LV9cVp4͠m[Y'2盎F~F]ObgJ3+21>)TPP|H;Dj "D^ϳ3ԔCr^R6H(~JlN԰N_6/#? 7ï}y Z`S1i -3M qTJ#x8 !bS"aC CkIP:gl%sj,.H? `L>OfB>hFbWlw6z 'knJ`ĮɄ0YYH{V6w#tkKM8z6!ckrqٹk6W'8Ib(Π8IMVDTV#+F Z۸OORv ]z ebL2tRznֈ54s6(Q,=Xl\=·:(*6R1eɍ zγ-wǷԞD<` )}\'?L(q2X\mk89Y;7 ~ 6p3ۖ]5]'y]I1 e7ЉT FZ|Lr5˞폐,]cP0p LEBXF$P}\ʙN11el'&XA4K2U%:N'6D'5:: 3aª KKĔl$l^lU\_ۡwS;,4f_)hṖِ䶻.cX6bt$͢DbB ݼ>s20;(E_";NR /bxO-,;M69Ɉ<${||ǨT,7|qaE?ϯ^kP y%'znV+("dkquvM`w;/PᱲL(j lz01hm/2׷$u^`(<89Y8q]}}aT;A3VY, 6~D'9Ff$y <pƠ0SY o0g! mFʐKq8gew"J~Phx@ǻ4vChD_CBV'\ R%;vlc_--z) k]gc;oh  \;̖-[ 1&(V '10`Ŕ}}!8&v4+ >@P0k \-N#^mt[A%ɵy~HVp3|T(x]I/l@Vl Mͬ~󪻈 uyM*hz?VdL ɟp$N@=vzc,#FKi cPwFŴS^ gzC Ҕ#sn^6̂>εqucy%kJ:\Xu~$zID%삓Ep=b\ Ő h_R؃t6谊QΥ9n4'&'鉃_U^~I( 5) Vc@W*Ke-{D^/$?KTrq`uNt3wl8Z68t4-h#s' FBx}>öl>e~:Aڼ|!8ڬu[7&6aw A5.-/myΑ>bZc9)*p+j@7 \t!CGp)04'A<.~1"v` ѿ6 13u F#=g8q2PO{}WoFV^<5m9u.w-p+b@'A!&ZZ9ӹYSW8yӢW ib{o=E7 Kl;/n`&kp^0uK76P lL*安{bjR*բ- Ren&1 K:6Vb9b!hM17= ;94''K,˅oCi CVz #5>>bnT1q',n:s4{[ψ]e~} eMF_%^?@]n'2ə)Yۻ`ӳ),., ,"r OjΎ{uvDf-։a$0FrZJF0yz` Bg[̾4f:NٜrfCH1ff :ljEC:+ϣ Zhpk-5UC(CfwXgy1%pZ9T^0ɓC=}zkrUxgv XkU}U^9_6'ie@7IW= VxPB^ӵAyJ&+\/׎FLu Z:ZͰ"ssz|eE/gV)`BL~S“WY֠ SST׈QֹLBBRP2*`x;քM 6oRF Ū>87BzJm~l4u1Q…o} F-CkM2WDn^̋)%ឆr!N]QSo.a^I8Qc&d_ `8-:#ukCޔd&]`L&Л %Յe%=xQٟZXɞSF$q\*t$ӆ&֗r(G&CS[ ۉi8SaVh"SIlP5+RD;?Qf2s܆wܐrfh6Gg&읒Y-uLCZJ`~64QpUj[x/<9emn̆|M U}oVpimra>?Qj3ڜL6 I+ 4z!R1ȏen0G\`u#&Ug+9~4?wH@EU7$Ņz}WY}5XkUYcF akϬO>?/D{ 0Nk̃lxL(Gɵ1;Rj*&i <%Na'ͫȡ<{7s`K!𸛇ӼxFCCϝ&ik1O1/l{ԏj q! _-;,*azy ON>~ "+ȞM b4 wiBdni 3'2SMզklyZ]ZTcxhR?59D{SA-[{'NiSDTs~?e0d`7 G\4M^r#P% _82xl1rLul;O`v$fE 1 >^U'u99k7pqc9La1?E&̋$ă-<.ui.EվS{D9h&F M8e  %?߿w1fg>a}scYs"H/ο~Tˉ3-TEfhy#C_Nd-[H2h(T9Q%a#ON\qe4334CU<+s\4˅\YTm׿ -kڼͨ#猵S6[W4kȚ:+MN! Wz=$@3-ag,gcY6EΦb̓I=F"xu 2ȕ%iyJ`Ɣ|-rҽ5#,1uӟ NUsKSCa0LY<7Mw^|G~w7?p<׾+_J[O{o]~~>wo1px qٳg|?>|Xɽ+=-ߦC$ln_Vb~KyQ!u-p,,zLLZ7aE)LbfFY羊PQMbؼ231!`VNJ9,V%zOcT2v`"kS<;.;܆UzB`?X`(ЁЁخ!̋3C }.\࿅&~Lɘbf'qqmЛ_*@y&Z$w}7Yg߷-`}-ApX`/x>oh9 f<%@E\~f" S3Z^5NR%e%ɮ[dVDoUh$XyhE5Ssx@CT>N;7eY0*{~"K7}Y8!+Zc]k W]Y6< _%"y1ErphB2X"BU{utsIw- =E?w^Ӂ9ɶ90\ƱЩó(ʆ |k^~޽3?3އ?aꪫkoo>7\O^Cyw]nة뢋.~?ӟ4#O@w᣶[_c< Ā]:`EEIfh^BSBz@ki9"\ezbֈY1PDDhzYxQ "!+ܪiY?2OmsyЙy&+R}';[ s_pLtE&Eęm}bAB!z·i j€3=:}';Df(*6[M6ÀlF'gdj};XZ{HgiΝ; XoF!DN?( 0m{27t&\ !=xy/=|/k۶m%/aQhgJ Vؙ|~|VԛaQ+t2,ݼp45&7Ͱ|V2]C$ :cDЄ4d!Ҫn|hP⋖,.75|Pd E%22ɂ$D"œ­@ Gqa6kTDul.g%$Eeo\LOB MzBv>nBp,c-*<.D2:2u9ﺞX:'O[kMN1@k2utXt: {q Aӡ{P|V1ʱ1'o00^g-X"_uk7<>xa Z}_D>89GǷռr O@ Vg60g[➛ պI=Vɬ&ץB( hK;=Pn-2!(hvr >}X { ȫb~Oד2Y%-$#N pMVx .#Qbc%V3=3=.(8 Ga?MeZPyDFNQQ!sY90 f*V/dR$zZZl2 8]kwE`? %I=Vs1%C/s?ns0e\]>J0_:&m!a ``}{YF32ۿsDs7Bw/-6]"R*;zc-o! xٸPxB.:Sc(j.͵(V[ Yl:Sd`?4;CyZ*xBY^A1U}<9; vb2+ʴt+pqZ'NƧSc׎]O6g̦+ؑ]sX%c=o ‹B2N)*+]8C*kcIF#ͧבs9%s0e MSSQ,v&m:Lzw9LS2J l6m+.K)TeYhAU鈢z\3CKl8dxSd{hqV-;Pޗey{޳.?pb~(PYzV~=%rc`eBq;.h oX; Pyr`MD׾,ٸTm ta7:S)VHUJ!r!dmQ~T \b!+,4Pb^U]k`r(JWAnٕUe!  ]| ~3ωpBnWͧvъDq`M暆1'Be\Bsb,ӟJr&nYΜX/ 9ئ2^khp5iwɔVȪM&/rP\F o_S2+2b@E(%ō U! vd,9\I)sEXR>Y?s?G_t" =h }]׭V ƶq.]BٟYooHя~qႿx G- c ƗiӼSJ76o%]c7{(Tqid8.nW/M:5HWr}ei$\˫Q7UIO"Ԥ趢a^Z *K8\bUD3"2 9B=V:CD BB }JNQ_\Mx-@2|bȱ C˵*דByT'e}^d==iI89U.:JϾ^.yWdű$V&݇Us34geÍɧgq%2#ʯ xiE"X}:0Ȧb_DJȸ,~D[塇(RfjKL)LeQ+/)zڵR+(q1)[>\2~섭 y0zB(cB_#ڃԍ15TzիB:ƅ&ᅦ3ٍ }hV$/YMrM&~ ӵZyIj4P9ǘ[W0qfo;TVc0FǎZj %,EO;& r}}- : }q!iV,q{ ''2?7.3*(xùᾕC!qA׶mrL/ӲҬ*:޸`vyaSМ4 5*8qlMx {kNmG*\u-NU?N2={JUw:{!3oSwC't-'d&auz SUe\ aL10EJDBDi2Iqs{Ы,pYIC:N>[nh GN~ԧ>uP@"Bkp7򍻶P=?B@C}{ @8cyRF`j0O!r;rh(6d3Z!9Cp Bwk\1od2HX<-(gQoP&jZ/+[nvd*EXrA3ׁSQ8Kr Mc)kuRғ'3 'eAY|W ^KomsnNIMO`DS"Hó)~eB dP;(/(\=v$rL AP>J[`t=O*Ix]aU^[ņl޶C J 6+X>(>oY}2SrJ'3&&?0/+XJDj@V(r^~W,~.K.zNe`v$rE);[W>ESPB? i02||r_s~88#܆L ___`8 C&s8G&Fx^kD!ʃ;=*IA i3Y`b +dD] pnnv`GN#$qF6k$횕#$ jqDTCZT;TeĄ>)&E.\kevgն S:զDfgIx"Q9%&kػo4W$HzRȣZX(ļtyL ~A@&l"W\8(S}`ȲWediqIzLʥ^,w aZQvlOuc wIiIW!)nr$=H_pN8"p< #qؠ*Sc&Ia!b^%In8|?F ߱6۶m;(]*wݑ* 6@S~#'i``!JzY o+;,FRAaG75,WV`/Qf3wɥvsCmhqtM^A}\#$񽕕eLܲM􄺬!%9U6BeǗN*+HomEC1ϵS&7%os S219-Jp e+pl PIXڦzbiZc8iʁ}eUocr|Ί&iE_Bۈe٬'Du==ʪ%<&_H!sZOI]8ID(+X@a)ʤ'.]Ͳo+hR9kݱ<.3wHKA;;6gN"˶UG)pʬ 0 S/iE9=vD ,5yiKE \62S.,z $fD;8My/v(-v(Hb*(Q1xG>Ԅl>}˾C`$ KrSj[UpkӲanQ&iSq9eih~0qX5-Hf1Qɘ"_LȚuuI HdU~yeA&ƤT)ɃNCD<F]~."z?"W]})W' k:=lr|b]~Ha1>=&=~VЪ\ML6 )Ozqp)eMOH\S= l &M·B#+:W6枨fT @hM򽻾!RDڐ>S/,_*g]8e[l=)2l Yl9E\@,NS!T67^̲㤆zUʍ }^(g /4F5e{>,Q`B{ڐ2;1(Vp>t4v̸,PCe *,p*n~Wa"}e+K Xuߎ2S2=>ɢM-(aVZ-ečƸ__yλ Klcn}ynC3Z^P戱E.ܱE)=!K;v*E9_o|v4X'kRrokDLFыZM) ?ޣ5Z?+S.(] e;+Ǐʗ&_2 geݒo}[Yqylάg W豿()S!TӦ+Gh:m#^W8Lol&z25p㑅Ii Q04k"2^~A敥Nʑ#hI8fNCf'NM-km̭FzC Cq?MprlPGZjRe)ԏ42#9}E 7NIEY ~>fQI}qe"Ukjee|mU\8֓HE-dQÇ r19z`S_I7oHW_[AcQYX1J=sI_.墩JIN^T=B=<[\MQ 9#sj!V(ǔ~[Vu׾,[̍MslyQNn㘘Y^=*'J͛kqdk-pC`œ qQ@31m)@ɶM3rfES2`9g!fCSq銲CJu 5 ɼD](Y6y}aijY{~!A! PMZ _-y#o +fqpil0g&A NȾGأ wIUC`:FMb vhjPczJ a:&N,}9KV; “MMO;XwDz'_~\iB5luA^KoVH3:Ҕ01d=9q|of& QuzB 0ʓ=7H ѦMI C:xadRYDđR/23Q83o^Y LbX rqļ)rpz,(r$s"(cƺ .MUPZ!lOA'(XlaљYδ3k8ϜxTҔv{Slv~vӜ$0t Ř F;LhFAPZlYr<1QS$㜜T$8fKOZ`VWO V@9T22 mzA$JtR3;9bd{zt](G 90%rLwXQNuc5n~nY /ʜ++snOCڒ01-1YܛFm% + rՒ̡s& 􋆷pFr~U7q}l찢\/|@ ED4s)vf75UF H&+hZP("wS%֚eurwIn۲ͩ)[v459fIJ*Í &6V( l ۜCh Q^y"F2;k=>ސ }*)"KK.R:OC>rB 魲IAtd)=k-ZM̓#!pܨq̆bPֹ(%з Eݸ++2}􏟔vi#/RUPQ65llhQ&&(L7eO9O3BoG_,Y3Rvɍb`@wLrp2aU6#pヱ8M#nAQP!:š& 5^]sH! ui= u[QQ=`4$fif֓zYւA"/J31=ᡍ*|TKEE{d#JɩY <۷[d*HpS(R==Sz,|x.2Zz I!]eNu *) ZXXd(j iˍlNoNzE+9ܘ0KC۶K0,+" JuuW z(ٜDX$zj44+X'TKG#*;2>oJFU,Q 9<%tYRKEnBqXހ9땢a#ՀMmeb' p]o"jS:G^'ڐ"4?1D \z=q)HQ}"_lJ!N9-P<ˊ~ =O~dz|\ S({.DW5QN$ِpo6p>rM$sR@U7MCYԸnU2j[Z[SB"J\.2VF_iK:ȅ_RI]*7lr\ߕQq9 n(|Ý#P4ןU '465-eӬJdzS2Ğ>W5p\Du)1ゑ Vɜ ºoEk޽˯I6,~YAš*"ݡEyBCfL]p[0z,HIhS,/RCy;dZ6obbkXCN-t|auI*uJ9uZ<l*(0uv-2m^Nc<7D|,='C-ڌsP˱XyDG@9Z$ty+V/fkkET^ih RڑP tSvLb$fj3LC@6 #DPN-ʺ yFTPfUa; Pl,}x|TAyRZǏQ @ ; ˭9OxG"67-#s(mۗh`%Bј#F]*)HU)eb#A.b 8, (cA %Ѿ_6}sujӛQMI}^}}*woj3뮓=QeeK.BzJ U9(vߓ/T7j5(Y)2:2 EY$č3z~2%P ߳orq9tI̩-zfe^/oUg}e֧$w?(?Ker ˅vJov> Ca0oQ@jʨYό'\+.DK}b^?뚡Z"ՉPSW(ԟCw24zuN~ W,cU4z F`ecZ!R3eci3-0.ѠMKڴl(Q|@k @*U|eJl'W/}]}$7g/l*ݘQ_Y^IS/ ũ-۲mr]R[" }w;blqv{d>E"sgC߇]̳*ǎYZX̲fzrZ6M֙2~Z>qdAK][АQrTs)55.kbR!fKN]sŰ/Sh YX#s<գT[ 6uiDS@bMъŢn: !0^R?2!)F*2]7%/km婥\ԧUL.<'ەZ-c;yǿ-eorS$)/r˿_Pk]ۧ9:."n|T~IQ Pvګdh )+AUop}dDK^ˮK<$dCm>yoˮi)D|Qo3S;7ɷWN.e: Ǽ B|iաX iLpBmO펌oK:'U:m yTrri=+%.'=hbY7$`oQ9Tk20U$͹ae׊<3YBHG@6#N--ҨOq,$1< kzE[M9~rEff|eC$A=269c_wٹm<'ߓIeg{p\OS"i hIkLiy~7̈́1 7L S3;G@a,VٿulrNgM+(n2Y3~vJ80NftCOC+JC4g&'t -ۂRoq@>m7k1Xl~/+``#xǎx ʎ LKseQо7i6l- uXPaak`gcǎ޽{O+38>Fi_TCsDN ,%UgWbaz[VSX*UeE+,`$a~a4Q(tjpOJA e]^*{P^t6ٳ~ٱyZm?_8HA"KkRVW)믑},+=LE/y\zs(KIk餜8O,;)cq?sy[,3eY3eqf4MPʠ>o0ɄYxaKM?&[f7푕V[)}!RMIEPП(k5Y,$s߾CNQ5jlBb,Y{iԡz75vKsV:(DqUJHHqqUS+O1b -Mѝu;wC0,̳(㮃* w6pA kQ8Lxw3 /l4k"€uӑ8D~_u'q}.|^y衇e6ٶ9ݼ-M]2?:y >'6ÃG!}`۶*17+Ùm?qS'aN^Y)f:Uk2zw"i*-)`6$@&USS Jk(2hFkjk v[O^$eۙ;Ӱ:VfUl/jz}T|13^ǜhNϷnf8A W?QLtz ˹F0zr pss?OR+T V1 =Kѐ*DHG&{M̧|LZ~N [p#Ed'Dn8"}21ŹRmBROdIW?#<3((FPonNg 8Λ:>j(01mO/|!N5}nqp"ցP' +! c|, I_Sg-=B%L;( hb9*%!grD.jPA .}!BvOP .^4hc[Ҩ5Ȧ$@a MݦlC7$`e:EO(XBC [EOb+z"Emkr\T?wfbR*՗ )zk(ab H0HϠ%Yss4O!ٹyq[o%=#z׻e]&_~70}vvQo~3ʍ y-Fh=e~JECpLv,){,膇*8^JXII]Yx$M?@BnL1 ojh`5_ǔR7Xuej1" RqL&'dUSu( Ot{h۴uPe& ^F1'9k}/W-U-'<#4؂pM7V-?O|Cʋ)Ozғ{diigo>#8b}_>c6Z?rAF AD6 cT!0e}qahHZPY,4*L] 28F>Cg7 Y\YK$¿v϶NKٖ$8P`"7bw`|*kU=:A$<{ڭ'[`ӹyT[h4fPQ軦k-p ƘgH9T̃vC̉Eᢔ̍æ"ГpVN~JLcmVK̓WYfcx]A9\K9䂞Kujxtu*"-ƨ-$;$2a,1FA .Y  Fb߿˿??^W+_J+cqT=,5a B׽G+8 iz'9r㋟ZW,æ-2 dyU=|n\b瞞3 2IQ@XITDD߅"%D]KQ$C&bz^ =~{w}goOPlJ>XwerH]΂jmkg¢iٺ(ϲaR6܉K_&7rWɍ!=S.)݂8&14HDt'.̀~FinJ/y>מ3(]bzҽR+ }߽wQs(t` :H$ѿϔǙT5P:gn癙+t),r'!PFy]. 6)?@fJO%:kń{8 ER\2 7x}R_߃~n;>/,;y -9'N0ǿ70_WWDVq//{ʃ0'?ɉeSߗ%ksCϘWy gjM|~az0XaFfkl,ʄ@DWAdZ#X\[&L~&Xr%j3 l~%h+eg}K[^b2sM뉾* ><f|>2I(f~a$`j05V--P>#qxqAn%m @@~/ÞFdȭ a= p.B8,|'ND<`$'ۗ~L|"eH0PgPb@@nr׮]>R//(ȭ=Bl<)O+u{|#0u075y |tIlM?(HK=-zV{hVoWeLceI*./G!z eUhr-W#Ԯ鉏G/Ě$~w1p=bK6 VP{3(ҬD>:_f{1㡷Zq&W$|͸_LBx.@bɧ ֋(UzAuQݐ<ǔ,ճvj^162Jf3ЏUAu}}u2H9z9#,\J^!C#!{M]ˮd9в\tkG5rs /A  _wCh"41* hrfX7t[ݱc``0hzNiAK*#9&K[jM[%/פ7 B덐/bH?cai%6Ue+A)1oֹ]aO(O({b :%o %H5eFܨ٧. lȗ'p[5Lqgx& +"s51u׮`ӄ.h Xe8 (IbD 5b)6Z9]}kYVb{E"ebnw\ЇEqЋ6M$? ?j)?Uxf+Ku_[fSdV~=h"!,'eB8ވR/~^B2t5 7&=a/|"H@q kз,7g&7N'}=@wql%>&ޏcY2lvk`z|,,/;ySܔ3YJ6"0L]ie(D8|R+:9)#;a]}(l茎 kҡ%Ȉ|lvg ƅipdV5zr2`8Q;Ա>4UґܝgeEh,)Nz9FRЬ"vqGƪU{f]} oDbԈ6fD.[?P>GHV{Iצq9z.ȮJ z1y+^qto}+{p yAq0Jw~⩎qqN&L '< W/p0!e` j27YОKSLŲcJh aB aBaql+=D?2WI0:akuf\{;N`!24zSͦ#z> +a *)g_27m#exn$I|=R(/}Ta3cZHld2018RI2}G'1GG 7)/JJ>,'VaF@mhmԙG|ĝGNF 8da ^a) iMPKx"aN%awE_e\Al^!(C+)ebgyi.voGB. x%4@HqA2[}=9O|~$#@P }oCU4Yf0ަ֎%g a`^gL4{H-b| Fts6k٬~} Qc]cBT_Od0_ YU'Ijq%<+ym蓙Z?1w &QBL\Ș!'`hZlV (‡30^e@6CX_W KM%04DkB8AK) R{LNbZ(e,={جa Q^{.c=^ |\x:M,?6(w2g4`Ӗi?.{1R:o ߸}3}m|;V'/[\)-E pw90O-VǒOEb<7|ckIء_cbo42rPʢ-NCU$G nJ|&ȂI]0XJ!|M)))G hSF)a8Bv` $KU<Ƞ!k6A3:.Pz. 1&[c8R%2?Y;ee0FcW)E1o!H?v쨬/Ҭg GZ~Wq^>W/f7^Xbmi8seI DI[79-"c[WCIgɊ 5D,j^^^oY.yF\ \>N˛V1Y`f`J|iHXdt Gs[9e=:fcn q<ڢK}c%|+}ggbAd z1.ܭ~c @ s6r}P6xrM>S s-L)?'L[5m[Ay3f osqqNb=Zs3,#fC‚(OZ58[CwO4'|r9*9]j>qEw887$%^QZJ} 3}(HD&\anY0  :SF ܁PYQz tzSJr U]&66bSj<}MUK=fvQV$qNKٮ6p10E(\8!X4(Nzo{3BOsێO8lFҼ%d&o.L6suYzil+z yh)N 7e⸍ pipf=)PN3*!} smSPWWS6r=ޠFzRlKYe "waXLO` f햧fY`#,B2=Qz=1K@ 9 @, $`< Co67Z gn]GD,@_ 3DE zkVJK~(Eg6";J&V'ŤI+gsSkq{V}my=?J37UGcQ\1 2 s8ȤOݡ4dAs}cIeF꼾7"xJ粹i? Üq'm: LmeW[\$ Y^^On KzWWJ]!  jϐa_;wQUmavIJ_zKwG,#']p25˽]zqӆ,ʣ$%Ez͖md6PwةE|o PxnqtӁ C^c+ȕBf8^v́pܨ? D/tB K j-@A6HcN*E2 s'FwclEbOOlM8NW}'p R#e-25i+l&'de{ )u-} 0=](fc"ѵpOt%hB6/- qavP&bJL?LLj'B `7X^=,33HF1݅ /t%LLXW倁=wld>D^nFH\g!p\KRq rJ)$GNd3sNRfYZЛ`L9Q`@3Hm}TP{[cqyM,̜SjM?}J8z'nn3Pk*X6i˜FoȨ;AFVMx2lV.ղw)6z۳#Q7.sF)(Ɗ_M*{[g릾+An Vҍ=q .NHqGs+# tUjYjpH~hFtQ`E-9v=yOtȓPd)ɞ^zeC%p&PhCroھ@lxgNm3cڳڱzN,vۣEKz;@Q߆E:¨Js$ZXT9*@Q66i(Uz9P&8sRow$_?!YHCYWM͙y=9,n >dr[F)u=zIfMfMSp?< t.;˸ZCJmq;ؾ[ LNTNG2*Y3dIxV+!,=]䙼Pc*c,=d= yBl/腤mrMO9x!M: (*Lqހd% l&z)\8l9i:2֕n*qXY/2өnLAmN㇏ISAsX Pb-%q  ϙ&C; Dy8r7xo2'^4nOP_0zv#Fgev"k+yxAe|'s7շ})d 3^+=߇}h5ʜbheĞa^gRw29ʸ3l*t88QCot4/+ 3e+! {xiI\H +Jy9 åɨ|K .͜q&Ы|,NΑ'[Гz[775p \=$ɰ8[v%sjQ27DMr`va CLCnZ̄ pi>Y`[Ad p 3{ڍm EDoҭ.zBsҮ.?؋QrsHqS:R`o,Ц)_ܟ]% j .6%Mбg4R#^je܈J4\֋rESIoQ./zNmݛ* fM 6G͊hHWOLZǙΜC`qiL3Гy r-dg0^ +aFTK[$&m/ŬFb2>$|eXh?ð.H_5wl}(=aG9=yfS,9tH<-ץ׵hä6YKRZOP$wəJrBQT0;$.ݸSF31xNδE)&6Iw9Hzr잻eC z1`Qv:& ɥ,r6, 큑xUf`gLna!jPS2Z.CKU"KT[LJ`VmnŒ"92v:U{3< (ѽe ZjTTd-wfvF2Ι L_046!D3Nߟ8s9&6Xb |>ҋ7'emmYڍtӂѮaʹghIoMw%+r|&r1<7 6si6/Imgx;' x̺9ވM-dYйG+˕䖏w1lEUmԸuQ;܊2>c`2̷3ur3M{ESk!yY#4(a]/P w@p 2NmXsn C~nS0ϓ,Fu]^~>=YYM} }=yevac r((Ǚ {k,]TmUYGcny~;e %aRhLzP*[&;o䶒n-%Cl[ك.gi(ܔ)L;6J`CF:0M1S".ŕHrZb ܐB-sW$ (hzdI?ߥ)N=[]H_w5+qAtd0eH/4#{ S4=`5(flJxir\/zt>wx兂ZV+S*tԚ-Y[$j.P=rU]0rXzNjVPcŴG9= l.XZ۷]GnJs2| 4ȑVrr"٩Ȁ1Wz˄ȂoEΩ&$8EfЋ/}h&1LJ3cr!w*{vb83@|z&r=(2gM~ܣB-e,M܁e@M`}0k}qa;w?D~L' ''JhX;7 i^XW,~u:mx1Q{5ioW`{l:qQfuMB_!@}1gn-2NXwˮ .%-q50`DC Xu ܰ*we2bbՅ\o*]S0vYt7F8 7H)Yb8dg&|nNRT䌰03 "(>i3þA;7`!W MC #wG7WFF d`t CB@AɎŰi$.1Ra!71}P\Mmv+`[iIј/YUj{d^Rt^,ܠnxrY@D׿W+" 77r@w8y 3Ǻ:D:Dhة<9@+?Ƿ&˛%Map9 Wٗ].I_Lo`/UӶ^}'z_*&MuY0"&B\8iE0umZi *F`+O0ځ4`0V+rĒOJu|m6C K=dɪMhar v$nnh};a{ב"iM;iG;" 貘n<=b,nd#}/[q)Ԑ[|_t)丂JMs;mxϤE%ZLI7@$7ÿ_e ?#?>L=/7OvqMWԧ ox8T&l)v7o x~r (~7~C8 :d-%ٗMA=xGh~ bfIwKWYѕecy}m%\Ci7Yz7O \{ѳ%=|*Y&LI"Nw<•Щr>&htɼ8m|`d8B_TߗPo>%̆kkN(J%rGY+0͵I}>6U2ձ;z_=JϹ{kʆH>7eF磮m¥l}2{EI'[ KcLz1*$ǫһ(C:iˆX;Cn&effF.Bp}CڔR|#yM?<}O{acnU~K_s?ϲlFN8WWnguW뮻^__nx,?я"~N_@oBȓ;SdBʨ⫮'V SG1EfuemN0a6-p<HF!z;PkYDr`E/܄X!^Z2J9KZ FB :zљy1`ѓIsPЋVȯ!I %fXUҒtсK v%&¥C4QkvsͲ1#ļN 0˸ QG_iU"8юiW q]Iq3Xf"L9϶?R| HYޘIzԟV@> y+^~G<1X{^ysr9@&0-}k^䁯k~Cy~ooc%<./X*ww7V+O@ &G>G߱YRqT`ګ$;|@r4uZ 24 L|P\Y^nIG z5#baVQ&39q7z!CPh&Y2Ù?ڧmFGI:PҰ!Wl9An@qfwYw`7~&z y߾}?OO~ Gܖ{R 2x x՚PQ.I,h ~eHegq"| pLѬйsHa _G&GPnr4Ȝ`QU8@ XZ)A6xz!}ɕ.*s*/ }t@:zXuT=HbeF,5mPIJ%뱮wyzA*HvXѵ jQ 5;m~Qn(MnG=tX>$|n2 oAi܆_OvSgd +0eq>@/xو( (,6]Kd7ü߿`t^?0dȿ|nݻOP[o;Z~oo}ed+`4$S`39c#+*kw*_=D+u:3lx$\]K׬%Q y*dva F迻[i:2QYf@o}6KPu>mYk Q3q"'x`0+/۵:v|7*kHԨYv]y}Z[Y'؁qyp2g?u̳rC۹쳢@w%KClw(das{ `Nύ@Mr;!eb8Ѭ"c#Zh-H2 sr$ruQLzOa3%9:S'(0}{ Qb|~;),Wgw2ty{S!,=4 c&O`d;ÿqCҳp S0D\2~'P+(ǜm) ֕qIe7ԠrM%$9QOhVvxIҠN4z3ZZb{QY_rLwyX.FKdL9C T-1]j/IS2&W6cz$FX?x]`-*0b{Cz>{AtPo(97=Y[EJAcK˲,s ul$QIJ0y&#.^`ml{)g?#~~/Qn ObGoSOmf:Eh1Cn'$;Ǿ 'uN]z-~0kF)_n}ΣsLS|3W'',Kc>n w;K:L9ї%NA,:N6?ofYZYO_9fswN \dM9`@3T|dFx/Z{tA:bƋ胖R:m\}Zoc5PE#h0!JbZݴ3"}b 'NI)Nd ,c~䖭;S(1䀐)/~ٟ|ԣE)g>o=c`,5%Xsp^"bx!;@:IA_5eBot`0}HBCȸRphQ[lS4ϻ2Fpm{4xO݌2+Gb g['jC:؝+m38(KElKC,)OA0 YpRG'nU=M1ޠOC '1=3SkFeڑ>$(5 NFQ(M$-VP|.72G) ^4*.Aʘ~(c:j펴=>ti({nTuG:7KX2"q0w`ZoӜPZMd苉DEmBf-N+ĤJ7㢋.,r ,@I969y`;g@ Ox˜@y?x׿|WF .%̴̼g`VKs8bR&*Ji&nm@`nM%+F*7qWnHVAΉ8 {gkÞ.9`F4۶-PnYؖ mZM^G |(3e9gq$oBȌcZ"CdnM>" RFnpeg(cgz-(B?dI ;7& 6yLs392ьzyb<ƛ UoZc,ֽ3`@ m+W]uW\0kKW,Bn w~~'ry` hrO~6h @ &*NJ: <}o1Bӿ cUr?۲ f4۬U]hAdr=1ġwa̐dX$n34 #R )`01R340A>3;C:SYSFp͹hMn_sum]WViaŗ]*)qֹ}Ϲc~ݾGj3.۾zא` Uex?7 %, DX h=3 9+\ !6+|Xyq5U;|QFKs”M|9\[7d08\+',:~n4Q6ü &=$&ΩFO$OySOO F?`0i:w?b <'8;{:>ٗ-h*c[ 7Xb&" dZM I 6ULmw^3dE # &Z 9;QB6@ 4gd f#bnt{s+%`LWL/ɇv0#krleM£3h0]߶c4}Vk7[Ms<{ovv~_U*(f +ԖgI!Qny1FZZȜ!p܁,Č9&z<DzXf>Q܅w*$D?Jo a0ud U2_d0OI7@ zk~8m(c ?k0\l`_,=SJ;)R1EF\O[׋,cV7d ]YJ][Fp=kW'EĖ 12V2ZZqRu8/e-S 0IO]9 0ub* ̼d +հ_>dplJ=zfL hDun6ޝc?Q)zƉ΁E0*I(O+D: O~'~$m8sbR(Kq:E`k( _җR=hc?(O:l R&0T<<xxI?;~[J: K߁%0-|V^΁(pbu b2$a(!A 9E~۠L0¯86cym3 wQc(Xߛkv_";pQrYԙew?މ6OJ\k]lpg;/EyL4. IS9#"iwZnn;0Zjҝ0p3p1=6ZՀzBfdna.@Oh#7Ƿ(1ZJԴ%X?=<2U֣EV0Q#'!7; XcBs'@HZ2^еD?vdauN dBH^! ]}}Ԫ~^{$P`!w+KBɰ=rNp`*؋M]_9I1QCO1D^Wi&YX^̠d9u-ɹשLrz|w=ic8gpXאNg^;MZDQU[K *!\R谉ag}FkZM`j8Sl`R)4++KTMfM3!m.5'CA.E₴o) 59JY̡\y2̘ F7Jd]S dJ&Wu+3pSk0% .Jf촠KNݐIdXɆd)&?Ո=*][\?]c)W')zMfdd\etQrcJ Lm1w 0 WdI_@Vl@ħ凜0࣯L`Uʐ`j 09Lbo2bn z L5:#Tǜac0=) U"`KX\amyr %{*UlC-@6pOaAs,V21PR%Sㅳ)ۆXmr3N,W>'ڦȊ̥kόwCi==l*8ZZw)Ո`oOb΄֧=+ #mbg # zsR!cA, l88J4f>JdH`@|:osdRT[.u- 6I$үP"VGX(B }`R ,>r =Y>*S U}ݳB`(@~}o;W n`< ?:g\p(sAh&ɓYj66rǾrMGI 3ᏋSi q1g c 5juj81%ݚ82 b{m #B̼:݃*Ġ V0uqXs@} ѨY@iwZfWm?$իV3)Rd zڅ!iaޫgI? Gcq9xb9x_Yʣ( U}MZ} `ȑM eZVal9Azqjq|EB} 'VqZ-M*8)}'w ,˄o> vmb,,` =4DxA~Xًl > m*JW"%A89RM! /0F #|0@L,4O+1Ph:+l wjC>F+خˠe2eetDPwMV[n.翦Iї\j5}o2 J ݤӜ $v1,gɑrC#OÖtw.qA1)[Kmx K/d84M7Kczw pT\WD E@% Pe:[7.;6ZQ#:f#V*u\+NswvkVk2dݶ2RYX N9# \b-WN,+RF>,;.nO w~ ]euM#|$w:+_A"{k/q9 OamEĨ`H^@FGk izlf7G]IuH^&Z&`dBf!ա[;6@JuOȶَ W$+ NʉjhT a+70)gLh֛4xb~vzgFY!w)?y]~ Oˤȶo)#V 8 C*H% >(S! fȒM[ɶ@u ~G\`*s*2 ϛ,V:Tq9(7l6ϰ'4VPFcJ[Rl>ߕxE=SvW ܩv'2&^,k+ٶS'7x|Ox޾7ȅg-3Ja{}-2@~@֙S =p1Tҏ5o>E*kkR`h/~eVZ_ Wd(WVVSӡ,QƎ7ܓT0 aSK|3`\G{6qZFX{.ϵK'&|c1&$B|(;Ks2/Mq9?)PNqmҔMվl,pIQ5TK\d#eC%,T#7}7=[ Feّ[o3׹g#{>%<{ʊ4Ҫd n uaȣw=+d2L@@Km)'ѼlR>'2`Mf,Yzu]xW_@Pݸ/1#s2St1`ҳ{KX:6Pp R~fڭ#bE{2d^~YN7C_GfUoZzO Rk)ff%^;oeUԕpHALTgen_Yo0aWqtEC<(0Zd vs'w}P/.ȭnSz`wd.[v,)QC:3m(\U l)ʑ2IU~-[  :--kr\xeI:*ޱ%h?6lkQf:m̢)ziB RfYQj}ߜ>ST+L(2G-ǃ{;Q& }o1ڢ-$qv@ٮq&:=8Qvd׮"> {t<яt%h(ݻdn9ܹ[ sYP6Wefv-CYkt2Ὡ_WQCh *KaiToVl)űc*(ܱgdet>'k tr0̡~yLL2GD:Luaq}^ceyN2/wOS>p;̵s~2 r&ΓWYrgPÝ<-x€{(|H FE<$Ns=Crˮm_[E\zve޽δrwD \Cbf$(^d[isn\ΕV<4S-i( "xT[4QQf#ݥ׈Ȗ>ǘ (sk!?A kٌ>ޕI}nĹG#aOQ-O,vOSqO1f dNsoJB"ak"#"fqsogz>Vo9w2&d D$p0!RS~乯cii)8Hdp#2gg屏},CPr!'8EgL]Oԧ oxæq^s/7D%%cY9D"=:ZbI^Ն# w0-{q96UX#(\1 +$~|T|UPK.ՃG~kوB ҙ>o0P#a%m R@j$eK$ČISHzk-x,">-y6g~Q4i]6r~ws:BA,Q}FZ;e=.&D1ya;ۧ9w룞;/>>V!V982|lt?OW~WZ%! CNy /]g:^1lǑx }}d}kilU͝}"Rwd~ppqN{;&ktsZ]D z`Ǧ7NZewx Y[]c<+<Dƶ/Vh9ۄ8z.ԛ2wr$w|)vӂ.HG2RA q2Ue#\Oj9EpMco]e1 đ%}|ϲ 3 J, @ `f[D到HO;ufYI̞.VW2;SxQSG%m=LyrG- hѐ:4 $;<`ӢG F9в{4ȉcUW@#DE[6(K 4ʷ]pꜦ@E<-q#>'] Qz\~Cv62qC]w&d[A `?rw;({o% s=x {Uzk{D?Y`gSF#/P>vdŒBc FP b mqQ'k X# ]0IЕ0~nPte+{KFk=i*[=|ܻU|+rqdR ꤪ\A'd;aI۲t$%e 'GR~yٽs>N }: yې a!}2$8nh]hNo gASP `$1 ۰Jw\p:y4ɉi__.Qؽ{70޽{Y?&S,rʌ)5ʠ5\s VWW9y|gq[N8s{ȿ|n)^V՗Ŕ/W%p} I3B,ٯUC#֓mQPD a\O(sӄL,lʓ5r3(0өS 6l`ȋ*]ZE(ilK?rIJ]V&o_@Da[s잃2T={~A__AE;ϫ3> |3I&-ҨVZ%UD<j/eor ?]2 R0Qr()l[jemO(NvzwAFD<1XO Δja~ 4@.x(7}zۥ@tY*k\xAbeV hZ CV5C4쀺K,}D1WYYn"tMW\]]&^ȓD@xnvAp8judnv9eJA`./ %rvp!EǤU3k[.gCk7;7"}G 3붻eT)BMČe nѩC$z8' ^MaM9-K{<~(Erbhz<P{&faUf{^cz[hCeߎeWA ǫ*PYN~oKWli2ä.2n}$2)2yѓN!vSf_Zd`Q!YM]K kC%6bh *~ؓ5ѨKL6גۼ8bHs!JGLQ:CFV&wt9)/)QN1?о ˙vxN͌tz~#DxC{SRANn~/"#:7k]+UNS e0Sh2& 0݇ࡖp7Wf`X]HQ0r|p{0 Gf0G82941ےl[RW`oVem`{FVUB0L`lcl`l?p I?? !DB9!mNg:ǪyzzV+@س]zZ;ӡ|MfPۣtЦixNîeQIesp{][NN6ث9ndRF.C [SAO&|aE`6Ǖ sJ`ދ:6ƿG7A!l& HH e.md dE]qtFmqc U2X3 U<5wyj>B߮_rgOb_NNdu wتcǎy0?Dzdyk|`(?_E$2cVͷoAی &KFԘ y\瞏މ4VW$4 ct4rqD*Fɛy!jJtmw0Tmq 'sIxU7hnGB]c8&զV6eD8$\d9ͺߪpd0c`g.FYs)E/d2$_$eyTL?p.I.Z})iStIl)zm#ILmU1LcܨUd9VaN5#[[~ŐaXdgP28͖^7Yrb:_>l_ mr{ ^=dQW^yas:Sγ@n I*قcl(mڗЕb.,cWqǯ3\FVġUP,0TGA3gǰа%a8Cp>1'z-|:n9=?kyԢ\>!.ZQDBk.э'2UȑK?IGV*SNDV>Imr>z ;WKun*rLZU󓛄%ƸHD]s2$1N%y+$k\zԟxA1h{Nm[rۄ}zUoaD-WjQɓԾ1~|q~pokr |<ļJsgF c@]hh<)2crD2F ;kf `b`l?*gZXPG+v ;֤5\:?_FEؑ9 ͌)MO!stiMǑ>ld4"/a~H00~JIf[P<kYA7+ʫ/MMpb./-/I_~YN%SFăVŮ@oL3g؜+ʜBi?…ZpD=?trcCE\t>y7ngGF9j} kM Q,ե^ }`.6~̀7Ew+LMorZ#&m2 / /|GL@H֓CB\lfFc(mdL!b- $L%ۆ(hQr,?S7@\u+;A2BiU[rc%s9-ʰwPv&O I.++->'c,yi#i΍ЦS3Icn"W\.*o}+eu̦ 59N9w:Wp{e_TgҶAk|? +d>c_7:U|xÎA-X`³ŀzQ m @jyk sQ |ޝHH ˋǤbx&E[ -uhQb]k+ m J cOToky<“ w%^wͲ^m侤iC!S"YXU9bz0J '4I$3M#)1e(lׇ*!- SP?[Jlyv /-- Li:< NIagnѪ'~3ۧ119M#,--Bk-i ͤV\W){mLnB30z2RVhkSKfBOj-&jְ uyLSHrfC"+7đaiQ̗k5yBQ7ʼ00 -,. < 0[ #} <$W C \S$La|{9[װ\/v'NJbZP(3m % Rrb|N#饃hB"!tԨr72&F{`m]6 ӊ~%VA<k6*'0`n`z&9_\`BRZ%M!jLbIZ`tl ??]1۳U 5y5l̔1cc 5 1ЭsVȑE:?U#yYF,uPڋiReOIh]`BAղ?N, 1z,1=wČF}ߴF5;qMQ.'edXPvjkeH%ghXoO~Z'>ؼe ({Gѐn! ˽4ZPͨGywlmCnYY3!>MliaF촙0φݦ@I6ǒQu@z: 5Y=u*XFSr7Uܢ\M=I sHufs:@#{q1Q]HM~Ԅ,pKܖlQ+=)vE%d$ʗQԗ') 6HVIgekR"} ;ڰ4'b0S%isڐ +! 7;m x$eMcJ>gs3>1OtqiWGP? &AtF6􊉴osF>=K3A^oVM`%[uwRZ 8_+ (I8:2PFJ%u\'hʴPCϒq$s4FuB~GjʁvV[ByeYs]&4ʺ^  `3<ϘqQesee`F2ݺNQ1=l\9O~eSK l =}<8iNWcft=f$@96C+諷.8Fə&jNr8rk F D2jmNT,װP>-b#J3Isn?\IhA..1͸fn_`G}Y<O0:|qX dt:*ySz<l\#tߓ`Fusm,q+<FeZŮ;L\- TNיwٸ Og=ݺtZ]d):Z瞻qտ}Xu0pyo: OS:0}oR  `@&N_\?#3:CT &?<6dBPP S`qmBLj;Zi&9O.VUҐu,,"&tAXe.%\E&JYRnێj az1:6( x`*~HfSJy$\PIND‘!1GiEߴeZtaeA"JF&rѮ#ij sTIb͙dK s^Z1λɱ4l P8$L;lJWȣK7u,r<)O1MvE2G̒ߍY@# SDN|rmbNNZA}u6'0>.F=@{CF:0*#CLV^wƬ y_TXʊ.J\#Xm 8ҩZEp6Wh)+'c ✀78̝؆cىxꚨyC=.Fsye7rvu@p:9JTP5Kur mSӢ QټiCd|EB ٫*K׹ @e<ÓǬ9ё6WY_0(H9wi|ysmz*ӫ[\KQ6F44or3lNa=mr8u¼^Ju)E q_{^Qtdc2LY z#E4ZԩU|y7мj4FtTHx]@&-|X3F#\o'jI"55EVP_'o3IO6B;Ī5bFp%-\; aֳ=KZ+F3-j\CaIٓꥇ)NkK`KP=;v;މDՁ*Q-xwq'o` o߆+dܾC@sFX4t{W{smCoNSs{?%vn)HZNO03N~Jc}@SLVaZTM~7}:|~{D8jHf"n,!/?vJbv*r.Q-W5H lZ nd73a9AX*Mo-9vjt6mH[Z&ƷBYl d_jlDJX*OČ围 +ɘTX&p]rrGBrهFC8pwo##c!K.e?Iw r#V("lnMF1jChyx`NB萆:F5}iaesڤ5)u3)|_u~TSaunD7oT똏Krj_%$9JO{ncs*T=kCX l;Hκ(qfYI(N?ݪXJ)W\;Iu&gX^˵$4d^J="dk 5 !D['\P1j5\x?m A6wQC1G2iW>p6 M:U<= Gc,P^OetpQTvOZ>iaqt|Sf̀͐9Ǡܜ,& a, "*ֱޞ4I)bs(u 3W+ jϪA Y:zVL[LN_s讶99Zvmݸ$t0tHV gK}I ]uz; iRNH4i:, 呻twl">QDV|ϵ]ԷllmU T`uIGSNjhT=ig+I{@{ h]]z{0l͢iNnFߩ׽Nh1nt[dKƣn&MuiB36FpP3}jgģI[-ټtaNrCw??[VtQCFGF)e?S?2H~@TNo6XGqUMX~'N! 026 7؄MR2jPDTi뀎.1-%)I #.aLl:g!&yq)7:II6EhM L6z([`GGD7p8`@OZf@[ VCż pȞdT:vKE슜#v0i}k+VXf֓} L1ǵ9N9 UY9X  "a(Vȼ jox;xEPD-r+#}')OCpUWi(_,8oGU}sؽ{qv^)l´z-n<.'_6l׆q"f X]p6j:E:p ckt[HDS02ǩ(a_c`I]ZE! ;ck "%`zy1 m[zu6$mhޟ4lwr<{6a)H( X{']1fuCErixmm kHK$+أB{0TaةɭHl2b=Ǟ8z{/;wp >z+TiPkMExs󱺲c' 3߁t4p`Mtemu3#&H7@s'J6^&{u-CxZ2gI&|އ?? ;?oy[(h7qec]#~M.T* sx[% SK cڹ{C#YlМ?Nq$frT{*-8 r( 2"Pxj#- 뻦)_%O4i2NE׊9 2567?'!|Y9e+ʲYbDـc, Z͌6yń'@tB N( d2)鈰 \t?=3cEb *%,/9 6_}~uknu_G]G\g辛 lrsk5>pk݈@v\Am044Իk_ۿ^߻v|e:d|=ފWUZ;#faUn$&R?l.E 仙+ ab_ i睿w} h[g)֋?*@VJ/*cD)9fi\dLSS8mڻʠjH=F &MjC3 j8fh8 y6mPL duDRmg'%`>F_DaP~M at9?vs'p;:U4oۏŅl41 Gt'"_ȣT)+xl%ޡ,@^i;iB/!|M!57#;ۗ(bz Fsn|N$>T, Ӌwl#8Zх5u8)`c46[pسsxA<υ%cU*pIjx_??DNVw)0~M*yOO{ :'[mlKa_WCNcZƱR:e &&S6søIOWoN 4j͒z3AB>lQV7LU?,;KI3oqQWe;%a2{.Jñ?j+If#t1&ajZXҲѽm-eL˕0F sEv>v9 x~s[\EY*]3eFU-b96ݻpY0>>N|G`xZaf QL09ZX$ua<8A5;ebN@Es>W}Cs\l Ї>Ի^#~( ˪Ͽq{+_g?Zy}~TDA7.^gp \` |kp_ iD|~f%lal Z&\v9.=_Qc$Q*w aַE%= dK*m)Ј]jW;dB-MѭV :WBL)JJ!. 3dLYg?}7Suyֳ'>'}[tIk'*#ʾ89pN5$|Ȩ-47m܍Kx9n3:#4Յb]ܸ+!%ohF ;^ݨsQ@1aj@2L7rt]zp UazK5oچ]瞏]gmV T] {c~a'\jlEI9lgo{w`4F6!덶rh= ' V3hԨ"%BƑu1Zb9uǃ8P3W=v qΛk+!<݌׆J@VY>uN9pc o SNÆ`l333_QS_Wr-{ tt!l)!\:{/ C'ܷLiaDd-#NiN,O3q{8{IAٜ gy2dL-dQoVV[3 |"[u"$.i1)d:f2 mf;Psq%lތѝ9"/|h "Xc}O5%Zןہ^KGq̄|'&02>\X:/3Nyh;}3u9yz)UM(!r.<ړmgk 6h1;qK/T':azT|ȗ/ܶl#kCjjk@)45,p6n<>v$Sڍ F8Ud:m. C]VpɓO:UB`,qc@.Ҍ*%]nn)d̹^$|nڤ^j#i!Q@nhc6axt i<*S&Lo NOo6=BFҹtYaE]q܄T6Y 5F^M츥g$8+NPz]]0JՆ.nc0Xz~ϰllFhڃi ۃBΖ- ̉//^vxl봄(Mǡjj@:=J,w~aPDRC5!yW9f"/#$]d:rygOBܸ\Lr%SEZamW)HʶT c 3;¶] |8V]WBmJ3F1{V2=ѝkgm.:vzGd쭔w)`Y1yZخg 4b1M',~'fDy,{<.)lNjj ޳xƢ"-a<7$PA?Ƣ?yK p]~P^=C 8n|ό;ow{G&e[t) S /Q>Z0ŨF/JdactVae9odS7V Uu7S+kTе=bN>&SgQ])g6M]]4%O8gًL>#L2Rs1mJ6A8=է^P;'ξW{P3' v0H>c+MzL0[6H_tTjyXh ֒NƆᝁ]\Uq&؃xye|_-|7|,zA <3 G鋨7uLg'}mJŰYeO6V[@B!+VZ5fp._0a[Y eYZvk9qir>$K咄.EH dUg={SR g'~LRiЦ-@|oDz(AmB,l‘S7mI0cz%S)]žJ2MN4(H^U߃09XY\ƍ7~{GF&2A9LhcN[`=JTZɐx:,_k klD0\yVuxYT*O3prvix]xb375F[ kڧyd}lUW"3.?%a"<6s53-J Nl !`uZ2?Aؼ!c/ϸ嘄߹g-]LpqU% r6-1jǢlg*ֵW_:Ybi CIB G>Ąb.װZ'[m ժnDchdžIEz.J ,͡4=~G>E}RܧhR_׿Uܬ}a 0eDB5ɰ&֘a؀3~y Qf9#hIqD" aR=I:4uԣwІB%#жHL8ݎ%eqYLv%SX5?8q(lØ%MOlgp&XK j [uUA-}U/~|K 16 #sV4*ō+9NvhV4wG4EǕ9,L<0$2Eؖ(cq,,~ ~ᦛ>T똥e8'Me_V`bcXx? yI5:[ACVJEUHi]PQU&z۾u9&BGU WPSE^Wۇ,T3mJ\fxҽcz_ܧq3%7ry'a^ryi,9haeu8anb`l";7Cl0s}E4ᛣ!C?n ZN PR*T [(q$d+ Gn RbY@RZשkl\'A+CI244"5@~aXs.0_MYP/ A"ש0eyt82!&;mACêz =5"leކց&1QZq78v*T Iwí*RVϩM8dєߗTxﳙ`;Rk" {F0tBqaa"T`yO^I|_>|SJe|ò%[(<.ҪzMµCwjصd%e΋hXpi+P:li"tLx^،}#ya_kvе0s|@8iϭ8qC9L!/aj>ycnS`=ˬZs ~Q2(9ww1{F 8@ %`.PX\]^FܜWT*;qR>NwSpf XXѦj!g\{(O@+pxafmt9b1!هjfeU4D̔C3 7O;:Q ]Ym:H;V]_Mr1+Yԧ>'̎ EXM^*{S]2HeF*Fm9ZCi_2j|(QHNJ{xw=fQz|8#D\6㥔VPPizaj]L0Lx>Y,ױ#Fq47.T~v! 1Ddkȶؽ}WKa˦1|}†8|6134Eq=ҩ lhBmf]jmGaNa(Q2eh̽އ9x2oteae^:A*r GVr9G ӠA5&lcki:l3r yL>\.p} lڌ-R")̮Ft#dʹxr,}Ӣ!VX}}Hu@j۷bz _[- 'j IktN\&`9{vr e?>n[GXת×X{#V8bThtEzⶻ -0^c|[&mʸk,:Fg'|9Fh)!疋+}~vVپ2MatP3t^6-̨- 1O0\X0uy<"|뛱^6s33)OSǯ ȤӚ@'0rgͭ{RΖ"2M6=Gu^>nS. ~ՔΥssG1zKK- "E@[G" ;v3BԐE8p(VUI씅$EkUɦsHB,N.lށbAYcSִT>voe,BR)+P`xS`Ǖ: BVq;h̵ `Jd;׿MHv퐺k iVL9S0:~?'Am EO>u.`Pс$Qk`4mٌm60,=P[o@: S *Zl~)GQ+YRTTld('TMmbڛuz/vO.Dk^faZZZB20xLƜAraCP".IaL㼳bOg V Eώ 'Us_=p>9`lpW):&P;:2$TVw WY& 9ʨafD0,0ڌ^vmxӟϋӌ1;acF*{#+N {Š%#"Uȧ(-`u8ٔ{d^?p=r,20yhsZ&YvRB*'2q&-}WVV"#& [g0y2]_p sdL&{B6YU5gnv@96vC8$H?wnT}ڱ};@ˆ&~!,1*F; ׆<> aΊy|>6F3 9bQr3ceRF.cq3["Z5..c'n\ϸ.R4hp('cGdp\c4k??9=,m% s2|9xTqf0 rU&`%R+#OKڠ-f:`dxű1d(}\яΆFoc8]1<1VxiڽM {)*L6(.,Oum}˷9mo'-+A*1a*VՄÑ~!6ZCϸ/bcNS.h>+D_m*ΰgSb#j=>K/D$IPS wySYT3.NKXwŽoO\-xzQ@ꎀȉ' K]_G7Ul]ːc͝GN_?z˱ƳQv֖L14.ZқAELg󾺲,#U Qg+ ;zD3y<}-0IF=OE9 K}Q\#{ѐ\Y)رc&}`S?6w6r©>G)xms*lAUSM|F`zA L*nZ(oK/lhBY\nQlcqzmiǓ9g!T@85$n+ 3=I@rbrRjOJnD(,"mxdnVsssg~yb;oy@g NaOtԤ[O!XLq=c,8\s./j:^$*Trq͛_3E X2/i|Lg?&s|gյdg؜ߪkdYAEB ]w> oW[m:ўcչ}T2h)D(hS}KgҗeJFIq2nK9r+<4ضkVfbk!\q,.]$vG5oɢVG9n{x-xOH~}'efKEJ"pDڴF&bQAEX, 6odIy!%FmRee]:<ӆu`8}ޢaƪZ!'de E¼JFr2g#{f_sUqu[md(dO1:Tԉ szC>V<ܺM Y$0\vSE1 e:0f3 Vǧ8TŃs<>uq=@N &6߼Ͻ|ɑ)rC />F\݇/1`jyرX^-}* fXDu[:b3U3aJ CR|bgGtV:Zo*y+/1ҹnjaxī^\\qL%.yeɹ4- ]EV2)"!W{L ,R!zٕxp]NE}@GHƳ&'R`۽bŜ *+r.; - R$.QeEK{.y<1v4<ĩG`G@S 鈄IaPظ@Ix;Wn>1Չc1mCztC[$Qֿ?x^&T{S?|'nc٣=m֭x[ނ%җQ)F?޴ 4Mo&`X/$ 5N8*u l$.sSxD{yrnQ(HQ3R|L6nF[** I٢cǎEދpZecnJ Ɠ m-,+犖A,@ҩlʱ0=hfgԖz)D⩜bR6wΒtVuOVʸeRYMu0D'bRIQu!Yf6OMg>s0= 8nX7,G63l((8o_92'=I{M^not۾}~p뭷UzǒSl|=[.;u0dM]*}uW]Ž苳t!;~\␀`4 k6wLm$NmEYgRXv8͐MiN6}|("!0dQ2ζU>b$b^GX4#EV YBI{}j˱5fq~d#@qqvF]] Vԩlw%2̖p]3'#߻ݖjNDzM)$瑅0NQ(Ӕhca>z&cŜi]*쨪'ccG2wV6P2/Id.]|ϢuV0,l\2 px3׼} s]'큡N9=9 {=6E[.bLkѐb8Y6##1!FÒ:춅Tp> i֛pG]lըHK6>κ48#j9rqYA"vLY6"؅Ȥ+(NԤ'T_cU<5,STWE(rݖ/8JK12쫽{0ڧj=e$Q4$tF ̛ .8Tr-"DŽlꗐ^}{';RS.Maanޘqa2\~wW\qi/ ُx#^m$O[\W Ljs fHK kIEu"չdubArn%m('}ff s=dn~l'VVj|umh}aӓ~ {QoTB&l~ Yda5[u6jCFI#sgRkf=%L>#:-Y*P3)/"ըtծLyM@`dicLɨ\R*~uTx1!Lhj"*&~zBTP ic`oɳ>~t h90xj ,.̡V)kCXq&x&/cTuL(I#*!6:6t6FS&TTtaqf!_]_T*W:길 B94qEmP}:2rU+q) l{MA?/X@rma t-v,cv)$m!QS,)#|+3:(j&aa)tdٛ4#FcjƩTx|̾p  F.Bou~숮n gnqh`ngy-zͭ^\lXNQ)ڕX&-Z( I o {be&mDZY-mZ )vg=rֆn=x|#3=>C?=dϛ$}0+6n"*I.VXן]۶oWբx5kd7Pzh܆xGֻwC}AdqS@atѺ+^ǫaD< EbDښ@faryzw头',V8-p6Ȗkt,)]I*[IXBL7o"ll#+M&,w-9$+YFۏ(VL?tu zN@l(_[7z` ŷ"bn$Tݼyue[ צM+bVVȫcR'=|ޞmf)tHP8G'잹]*wZBٵeڮeHAlw yu&&oyDmKwdp2\Kq"W;4kWi>ૼb'|TA$PRI:%7M9B-`a !qo$7qwyIT5y gMCԾѡd_Ag.[^z_٥t"BW eJIO#+TԣVX";NKCRrzGNJx̎PL]żD#dkf|Lzϖ￙%~[%'Rha@P=ʳ#-Vd nE!3$vO f$o;[[3c݄͞i'7@nޕä.4#X^] ef1BkOLwfQfwd\enSCaʦ,#xy_iGD* er?P9F5)]Yen͒3Q¦tٸy\\oR9ݱA+贙!yVYf-HKRA9Fjժo$CtSJ1d/* $dN"L ^Ri6^ 0 #L( 0L( 0L( 0L( 0L( 0L( 0R:CO8>>Sl&߾WAä㵞'j{g{7^Rd3Udonmj\nt5h@l#2+GWO3ɘ"gV+EpJ*+Çxe~EJ*i޲SNr=9sty%\bF"Ĭ7\XJa<}!~Ĺs~=lOo,/\-ҩȠֱO 'Ƌ C< r~:"`RO>l2 ^au֕ɓ'CڵkK:utu2d9ͫ4 د_svfYVW8PD:9+|}{ֿzkeƍï]}ݺt ~ggȱeD&DD~cME6{_Co#Dzϛ!nCARӒؕzOqP!$PKIN0モz~Năs{"3K}Cm&b+}{.y_ll/ZZ aD¯1C|7|S,X dPNN'dqQG+"~BQ5MJ Y _pnw;a a a a a a a aAKĝ9ݓiq@ٰ>5dɒoٲEJ6?q ёB 4Itk'ޒ7jkTW_}I".sƳ! 4yd өF`ifɕ$K Dg#,9DtY"]vՔJ4bTW$ yꩧ4\fp^kfЃF  y'RB$P Z6tR93Tpi8l0M jJ>s-Wfl|ҰaC=> K6rLdzq=&DZ,ԪUKS\3p:L$Ṣ/V "!t0t2;o"o$H}M8[Byر^9Aoow~!͛Gtt4X(Q;h(0 ҷ/VXt>}Lt'z{7}iDD,RS5"дMq#aO9o6,=nhyWqHc=uS4N)ll :B$<̈Nŋ/?Ucz#yS*UM?,ݻwWE#Q!0BKwG~{ 0WV-_`_ cO'|gĉ~﫯ҍ:;(>LIzc(x|wtdgϞ=ߖw<ÚQ .Pdڶv~Ůj|M7:*E>|:5hF@`12PzꩺUD8p\tE~;4h 0<`J1Λ7Ogo>؏4ڼVT)9Om۶:0> xmsd'DL8-ۋ/O?4<sxL:;묳-uӦMzѕJBe#8аaC1N$fV﨣RQĨ=dȐ`O}D<'yK/:%HN;MJ*ai2ed6`{%ަ$9JULwshgժU*kyN )/xoxcӦM6mhoj@_jݺu_A!&xHKZfK,Hh_}Չ`D ެ..# œd"c0F/r1'ar,03{l1Q:EH.fsɡ:AM ΠLrmt9Jf zBcX0ޫ!J,t/>&A(9䓥B KHOut-"/_ı-:"˯j<Oy֬YQ2@2{ܸq*~B &D:nx;3twf !Bb %?K ȷri{*;vmQKFKkm**,yw(ipMlqWNF>sM3u|zp2;fIrQH2ʍEj" Oj9ТEqK/xxxԇRNQAsnl - \|[ z&-J=Ǘ"6EX]yDx`hUtB/+_ȗ׉ 8q"ň y9Rq=hқ09Hz!OX=݅\h@ɏjs $)![dqs;wl xl 6g$!!9LjWC$AD㯙Axl5jBOH33>j)&LD3dsD>#>"xnGyDhɬ1#>4AD x+ysy_<8Eq`5{^w:8.xڮ.+і]]-f;Ϛ[H*e=Jv6@$'D\GO}h3b"NX4 >퇖$ѫEY:Z?]ǂ6,Y0;zU+(Σ\/x_Vɓ ghhKs:h;=s^_H>DMZv-7U/RHZ^Z!p =Ђ %PUnGx{;`XQ!GpezG?BOrΉ>:C 9].a4Y^{,=mb d1*[+'z+ x/nc\ȉ 'y !t<>Mk)z@<=sEfN9!v!b AOhJ :s8CӮ]FGx@ׯ/}#Fhg'xB]sєhP  3 =Du lth:N["?|0v@"?]p :X\wu ["9ҾTxy j׮&w7W9[8p`_D7xn%#8'G8턓Ac"l'!,^&fa|TD2V{(By757RQz\:TX4m4kūtpG)^N8L Q1j( |%pu#yt 'ޚ5kˌ?ryM͘3덗Hf̙+o76frNPR=A"'Y͝;W  I&a»D1NvyσQ3`vvGJuٍPG r ڄ rD.@d/#aҩS'm[5\yG#DF)tqަFE5|PX)r e Ra&"K^P؅ ]/>2%bח_~99?>k8rn _f$JBD.ΰD,E5Brj%)͉^cLޔKGLt P&1x+Vȅ/m"DC ?HɸAJDՋ>L A<'u\TZ0aD[9s+;vvP|#IM{$妛n;>Cx0&J&py̎2*Ωe˖QǬ7<01e!OBG}3r+u'B|\ޛ"WV"%eb(^MD&*}.\cr)^o$ڟ!d`J60BLP sS^S^z%M\bs1 6r->!ab4~\qrBn"&C"u#L!1+9f/iujǁIHuAI+5a$Pr)1=Jȉ$9>Bo=_|qx?|Z {Q5%Zp }bi$-#B"3*"D#bL/^yCqP)KᥒīKw(^+;8OyI.W5BS(]̆ Bg q}o<=ќv * |"!* )J F8]ޑ* ="$\!!Z? )!:DHlܸqJ#ń| Iɕ /PC{L=Ij*'8gd^?+7f)۴!B(BDDb!geB< .2Dbr>Vrw",6F]CXNzбo֭ӶsoNV t`}p؞~i}2dh֬6D!ԙ jy;tsȑ#e˖0^{:YڵV>))$}]ѣG:tc9F_%,]hdm-^h^g`cCnݺ 4HW M,=}4O8D"9G6 4KTB h-"^ӧ֩u-aʕ+5!^\9}Vo kp)`sDDϛ7O3!lٲ3)a8d_8+}v1/7l,||5qeEҕF'^ån FrZCu?xTU0%Tpp_kwJ(Ybҥe逗 H/]`sp(`& H"?AlL؍uEc]<@Bpr\o;B@d _`\ =Z+1fFrtA k~<RxHr{#=GVcanܸ,?֒ўxp{q`IՃbxԋg J&a'4%>c葑Bi#T\# {AZ0$H\9H 0;M/҂!FaAʑϐ o΅#!"0~7]Šʬ⦫D+tй(dF-s޿cy`HCCFZ=!>6OFBS0[t\#>D` yzwTzMwL#K=!S#P9 }f) d O'$1 ύ?.ܴ@x h4fp,;$t@ 4()C9@/g g!A9^aUCIENDB`deepin-movie-reborn-5.15.10/assets/deepin-movie/movie/zh_TW/movie.md000066400000000000000000000304101473342170300252310ustar00rootroot00000000000000# 電影|deepin-movie| ## 概述 電影是一款介面簡潔,性能流暢的影片播放軟體,相容多種影片格式,支援播放本機影片或流媒體檔案、線上尋找字幕或手動載入字幕等功能。 ![1|主介面](fig/main.png) ## 使用入門 ### 執行電影 1. 單擊任務欄上的啟動器圖示 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器介面。 2. 上下滾動滑鼠滾輪瀏覽或透過搜尋,找到電影 ![movie_24](../common/movie_24.svg) 單擊執行。 3. 右鍵單擊 ![movie_24](../common/movie_24.svg),您可以: - 單擊 **建立桌面捷徑**,在桌面建立捷徑。 - 單擊 **釘選到Dock**,將應用程式固定到Dock。 - 單擊 **開機啟動**,將應用程式添加到開機啟動項,在電腦開機時自動執行該應用。 ### 關閉電影 - 在電影介面單擊 ![close_icon](../common/close.svg),關閉電影。 - 在任務欄右鍵單擊 ![movie_24](../common/movie_24.svg),選擇 **全部關閉** 關閉電影。 - 在電影介面單擊 ![icon_menu](../common/icon_menu.svg),選擇 **退出** 關閉電影。 ### 查看快捷鍵 在電影介面,使用快捷鍵 **Ctrl + Shift + ?** 打開快捷鍵預覽介面。打開快捷鍵預覽介面。 ![1|快捷鍵介面](fig/hotkey.png) ## 主介面 ![1|播放影片介面](fig/playmovie.png) | 標號 | 名稱 | 說明 | | ---- | -------- | ------------------------------------------------------------ | | 1 | 播放視窗 | 顯示影片內容,當滑鼠指標移入播放視窗後將顯示標題欄和工具列,當滑鼠移出播放視窗或無操作時將隱藏標題欄和工具列。播放視窗為無框模式,您可以任意拖曳播放視窗,手動調節播放視窗的大小。 | | 2 | 時間顯示 | 顯示目前播放影片的時間總長和已經播放的時間訊息。 | | 3 | 预览视窗 | 顯示影片內容,透過预览视窗查看某一時間點的影片內容。 | | 4 | 進度條 | 顯示影片播放進度,拖曳進度條可以改變影片播放進度。將滑鼠游標置於進度條上,顯示影片預覽視窗。 | | 5 | 標題欄 | 顯示正在播放的影片名稱。 | | 6 | 主選單 | 透過主選單可添加影片、設定影片、切換視窗主題、查看說明手冊和版本訊息等。 | > ![notes](../common/notes.svg)說明:當滑鼠置於進度條上時,預設顯示預覽視窗。若要關閉預覽視窗,請在設定中取消勾選 **滑鼠放到進度條時顯示預覽圖**。 ### 工具列介紹 | 圖示 | 名稱 | 圖示 | 名稱 | | ----------------------------------------------------- | ----------------- | ---------------------------------------------------- | -------------- | | | 播放上一部影片 | | 播放下一部影片 | | | 開始播放影片 | | 暫停播放影片 | | | 全螢幕播放 | | 退出全螢幕 | | | 調節音量 | | 呼出/隱藏播放列表 | ## 操作介紹 您可以在影院中進行影片添加、刪除、訊息查看等操作。 > ![notes](../common/notes.svg) 說明:採用不同的解碼技術,其所支援的功能也會不同,請以實際介面為準。 ### 添加影片 您可以透過以下方式播放影片: - 當播放列表沒有檔案時,單擊 ![play](../common/play_normal.svg) 或 ![movie_24](../common/movie_24.svg) 按鈕,打開檔案管理器選擇影片檔案。 - 單擊滑鼠右鍵或從![menu](../common/icon_menu.svg)選擇 **開啟檔案**,開啟檔案管理器選擇影片檔案。 - 單擊滑鼠右鍵或從![menu](../common/icon_menu.svg)選擇 **開啟資料夾**,資料夾中的影片檔案將全部顯示在播放列表中,並依次進行播放。 - 單擊滑鼠右鍵,選擇 **開啟網址**,輸入影片檔案的網路地址,播放影片。 > ![attention](../common/attention.svg) 注意:使用電影播放網路影片時,請確保您的電腦是連入網路的。 - 單擊滑鼠右鍵,選擇 **開啟CD/DVD**,播放光碟中的影片。 - 直接拖曳檔案或資料夾到電影介面上,來添加本機影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,一指按住影片檔案拖曳到電影介面來播放影片。 ![0|open](fig/open.png) ### 快進/快退 - 在電影介面,滑鼠拖動進度條快進或快退影片。 - 在電影介面,按下鍵盤上的 ![Right](../common/Right.svg) 快進影片或 ![Left](../common/Left.svg) 鍵快退影片。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向左滑動影片區域快退影片,一指向右滑動影片區域快進影片。 ### 調整播放視窗 在播放影片時,您可以靈活的調整播放視窗大小。 在電影介面上,單擊滑鼠右鍵: - 選擇 **全螢幕**,將電影視窗調整成全螢幕。 - 選擇 **迷你模式**,將電影視窗調整成迷你模式。 - 選擇 **永遠置頂**,將電影視窗置頂到桌面上方,操作其他視窗時也不會遮擋電影視窗。 - 您也可以使用滑鼠拖曳視窗邊緣,自由調整視窗大小。 >![notes](../common/notes.svg) 說明:在電影視窗上雙擊滑鼠,將在全螢幕與正常視窗之間切換。 ![0|windows](fig/fullscreen.png) ### 調整播放模式 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **播放模式**,在下拉選單中: - 選擇 **順序播放**,電影將按照播放列表順序依次播放影片,當列表中最後一個影片播放結束後停止。 - 選擇 **隨機播放**,電影將隨機播放列表裡的影片,當全部影片隨機播放一遍之後繼續循環隨機播放。 - 選擇 **單獨播放**,電影將目前影片播放完成後停止。 - 選擇 **單獨循環**,電影將循環播放目前影片。 - 選擇 **列表循環**,電影將按照播放列表順序依次播放影片,當列表中最後一個影片播放結束後重新播放第一個影片。 ![0|mode](fig/mode.png) ### 調整播放速度 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **倍速播放**,在下拉選單中選擇播放速度。 >![tips](../common/tips.svg) 竅門:您也可以使用快捷鍵進行倍速播放,加速/ 減速播放是相對於原播放速度而言的,每加速/減速一次,影片播放速度預設增加/減少0.1 倍;最高播放速度為2倍的原播放速度,最低播放速度為0.1倍的原播放速度。 > >- 按下鍵盤上的 **Ctrl** + ![Right](../common/Right.svg) 鍵,影片加速播放。 >- 按下鍵盤上的 **Ctrl** + ![Left](../common/Left.svg) 鍵,影片減速播放。 >- 按下鍵盤上的 ![R](../common/R.svg) 鍵,復原原速播放。 ![0|speed](fig/playback_speed.png) ### 調整畫面 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **畫格**,在下拉選單中: - 選擇畫面比例,將播放畫面調整成相應的比例。 - 選擇旋轉方式,將播放畫面順時針或逆時針旋轉。 - 選擇上一畫格/下一畫格。 ![0|frame](fig/frame.png) ### 調整聲音 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **聲音**,在下拉選單中: - 選擇 **聲道**,選擇影片的播放聲道。 - 選擇 **音軌**,選擇影片的播放音軌。 > ![notes](../common/notes.svg) 說明:當使用觸控屏電腦時,在全螢幕狀態下,一指向上滑動影片畫面區域增加音量,一指向下滑動影片畫面區域減小音量。 ![0|sound](fig/sound.png) ### 調整字幕 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **字幕**,在下拉選單中: - 選擇 **載入**,手動選擇字幕檔案加入到影片中。 - 選擇 **線上搜尋**,電影將線上匹配字幕,匹配成功後自動載入。 - 選擇 **選擇字幕**,在多個字幕間切換選擇。 - 選擇 **隱藏字幕**,取消目前的字幕顯示。 - 選擇 **編碼**,切換字幕的編碼方式,以解決某些情況下字幕顯示亂碼的問題。 ![0|subtitles](fig/subtitles.png) ### 截圖 1. 在電影介面上,單擊滑鼠右鍵。 2. 將滑鼠移動到 **截圖**,在下拉選單中: - 選擇 **影片截圖**,可以對目前畫面進行截圖。 - 選擇 **連拍截圖**,可以分別截取影片不同時段的圖片,最後組成一張劇情連拍預覽圖。 - 選擇 **前往截圖資料夾**,查看截圖。 ![0|subtitles](fig/capture.png) ### 查看影片資訊 1. 在電影介面上,單擊滑鼠右鍵。 2. 選擇 **影片資訊**,可以查看影片的影片資訊、編碼訊息、音軌訊息。 ## 列表管理 在播放列表中管理已添加的影片檔案。 ### 刪除影片檔案 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,將滑鼠游標置於影片檔案上。 3. 右鍵單擊 **從播放列表刪除**。 > ![tips](../common/tips.svg) 竅門: 在播放列表介面,將滑鼠游標置於影片檔案上,單擊 ![關閉圖示](../common/close.svg) 刪除影片檔案。 ![list](fig/list.png) ### 清空播放列表 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,右鍵單擊影片檔案。 3. 選擇 **清空播放列表** 或 直接單擊左側 **清空**。 ### 在檔案管理器中顯示 1. 在電影介面,單擊 ![movie](../common/episodes_normal.svg )。 2. 進入播放列表視窗,右鍵單擊影片檔案。 3. 選擇 **在檔案管理器中顯示**,打開該影片檔案所在的資料夾。 ## 主選單 在主選單中,您可以開啟檔案/開啟資料夾添加影片、設定影片播放、切換視窗主題、查看說明手冊、了解電影的更多訊息。 ### 設定 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **設定** ,您可以進行基本設定、快捷鍵設定和字幕設定。 #### 基本設定 **播放設定** - 勾選 **退出後清除播放列表** 複選框,退出電影後將播放列表完全部清空。 - 勾選 **記住播放位置** 複選框,在開啟電影後自動接續上次關閉時的影片播放。 - 勾選 **自動播放相似檔案** 複選框,將同一個資料夾下名稱相似的影片檔案自動添加到播放列表中依次進行播放。 - 勾選 **滑鼠放到進度條時顯示預覽圖** 複選框,當滑鼠放到播放進度條上時顯示預覽圖。 - 勾選 **進度條顯示為膠片樣式**,當滑鼠滑動進度條時顯示膠片樣式。 > ![notes](../common/notes.svg) 說明:僅x86平台支援膠片格式。 - 勾選 **最小化時暫停** 複選框,在電影最小化時自動暫停影片檔案的播放。 - 設定預設播放模式,在「預設播放模式」下拉框中選擇一個模式,下次啟動電影時預設以該模式播放。 **解碼方式** - **自動選擇**:根據裝置配置自動選擇最合適的解碼方式。 - **硬體解碼**:透過硬體解碼影片。 - **軟體解碼**:透過軟體解碼影片。 **截圖** 設定影片截圖儲存路徑。 #### 快捷鍵設定 查看快捷鍵,支援自訂快捷鍵。 #### 字幕設定 設定字型樣式和圖示大小。 ### 主題 視窗主題包含亮色主題、暗色主題和系統主題。 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一種主題顏色。 ### 說明 查看說明手冊,進一步了解和使用電影。 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **說明**。 3. 查看電影的說明手冊。 ### 關於 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **關於**。 3. 查看電影的版本和介紹。 ### 退出 1. 在電影介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 選擇 **退出**。deepin-movie-reborn-5.15.10/assets/icons/000077500000000000000000000000001473342170300201525ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/dark/000077500000000000000000000000001473342170300210735ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/dark/normal/000077500000000000000000000000001473342170300223635ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/dark/normal/last_normal.svg000066400000000000000000000033261473342170300254230ustar00rootroot00000000000000 last_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/normal/next_normal.svg000066400000000000000000000032101473342170300254260ustar00rootroot00000000000000 next_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/normal/play_normal.svg000066400000000000000000000022011473342170300254140ustar00rootroot00000000000000 play_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/normal/suspend_normal.svg000066400000000000000000000016571473342170300261460ustar00rootroot00000000000000 suspend_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/press/000077500000000000000000000000001473342170300222275ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/dark/press/last_press.svg000066400000000000000000000033351473342170300251330ustar00rootroot00000000000000 last_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/press/next_press.svg000066400000000000000000000032171473342170300251450ustar00rootroot00000000000000 next_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/press/play_press.svg000066400000000000000000000022101473342170300251240ustar00rootroot00000000000000 play_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/press/suspend_press.svg000066400000000000000000000016661473342170300256560ustar00rootroot00000000000000 suspend_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/000077500000000000000000000000001473342170300222425ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_clearlist_18px.svg000077500000000000000000000027261473342170300264500ustar00rootroot00000000000000 clear list_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_episodes_36px.svg000077500000000000000000000025501473342170300262740ustar00rootroot00000000000000 episodes_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_last_36px.svg000077500000000000000000000031241473342170300254220ustar00rootroot00000000000000 last_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_mircast_36px.svg000066400000000000000000000024641473342170300261240ustar00rootroot00000000000000 编组 4 deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_mute_36px.svg000077500000000000000000000045761473342170300254450ustar00rootroot00000000000000 mute_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_next_36px.svg000077500000000000000000000032431473342170300254370ustar00rootroot00000000000000 next_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_play_36px.svg000077500000000000000000000023011473342170300254200ustar00rootroot00000000000000 play_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_suspend_36px.svg000077500000000000000000000017111473342170300261400ustar00rootroot00000000000000 suspend_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_update_36px.svg000066400000000000000000000025521473342170300257420ustar00rootroot00000000000000 icon-update deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volume_36px.svg000077500000000000000000000035501473342170300257710ustar00rootroot00000000000000 volume_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volumeadd_12px.svg000077500000000000000000000022601473342170300264310ustar00rootroot00000000000000 volume add_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volumedisable_36px.svg000066400000000000000000000032351473342170300273120ustar00rootroot00000000000000 volume- disable-dark deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volumelessen_12px.svg000077500000000000000000000040541473342170300271750ustar00rootroot00000000000000 volume lessen_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volumelow_36px.svg000077500000000000000000000025221473342170300265110ustar00rootroot00000000000000 volume_normal 1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_volumemid_36px.svg000077500000000000000000000030471473342170300264640ustar00rootroot00000000000000 volume_normal 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_zoomin_36px.svg000077500000000000000000000023361473342170300257760ustar00rootroot00000000000000 zoom in_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/dark/texts/dcc_zoomout_36px.svg000077500000000000000000000024131473342170300261730ustar00rootroot00000000000000 zoom out_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/icons/000077500000000000000000000000001473342170300212655ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/icons/dcc_clearlist_18px.svg000077500000000000000000000027261473342170300254730ustar00rootroot00000000000000 clear list_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/icons/dcc_delete_36px.svg000077500000000000000000000022761473342170300247530ustar00rootroot00000000000000 delete Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/icons/dcc_slider_10px.svg000077500000000000000000000031751473342170300247620ustar00rootroot00000000000000 slider Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/icons/ddc_warning_30px.svg000066400000000000000000000042241473342170300251410ustar00rootroot00000000000000 warning 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/000077500000000000000000000000001473342170300212615ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/light/actions/000077500000000000000000000000001473342170300227215ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_clearlist_18px.svg000077500000000000000000000027261473342170300271270ustar00rootroot00000000000000 clear list_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_episodes_36px.svg000077500000000000000000000025501473342170300267530ustar00rootroot00000000000000 episodes_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_last_36px.svg000077500000000000000000000031241473342170300261010ustar00rootroot00000000000000 last_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_mircast_36px.svg000066400000000000000000000024641473342170300266030ustar00rootroot00000000000000 编组 4 deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_mute_36px.svg000077500000000000000000000045761473342170300261240ustar00rootroot00000000000000 mute_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_next_36px.svg000077500000000000000000000032431473342170300261160ustar00rootroot00000000000000 next_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_play_36px.svg000077500000000000000000000023011473342170300260770ustar00rootroot00000000000000 play_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_suspend_36px.svg000077500000000000000000000017111473342170300266170ustar00rootroot00000000000000 suspend_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_update_36px.svg000066400000000000000000000025521473342170300264210ustar00rootroot00000000000000 icon-update deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volume_36px.svg000077500000000000000000000035501473342170300264500ustar00rootroot00000000000000 volume_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volumeadd_12px.svg000077500000000000000000000022601473342170300271100ustar00rootroot00000000000000 volume add_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volumedisable_36px.svg000066400000000000000000000032441473342170300277710ustar00rootroot00000000000000 volume-disable deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volumelessen_12px.svg000077500000000000000000000040541473342170300276540ustar00rootroot00000000000000 volume lessen_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volumelow_36px.svg000077500000000000000000000025221473342170300271700ustar00rootroot00000000000000 volume_normal 1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_volumemid_36px.svg000077500000000000000000000030471473342170300271430ustar00rootroot00000000000000 volume_normal 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_zoomin_36px.svg000077500000000000000000000023361473342170300264550ustar00rootroot00000000000000 zoom in_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/dcc_zoomout_36px.svg000077500000000000000000000024131473342170300266520ustar00rootroot00000000000000 zoom out_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/mute_checked.svg000077500000000000000000000045631473342170300260750ustar00rootroot00000000000000 mute_checked Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/volume_checked.svg000077500000000000000000000035351473342170300264300ustar00rootroot00000000000000 volume_checked Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/volume_low_checked.svg000077500000000000000000000025211473342170300273030ustar00rootroot00000000000000 volume_checked 1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/actions/volume_mid_checked.svg000077500000000000000000000030221473342170300272500ustar00rootroot00000000000000 volume_hover 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/checked/000077500000000000000000000000001473342170300226475ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/light/checked/episodes_checked.svg000077500000000000000000000025611473342170300266600ustar00rootroot00000000000000 episodes_checked Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/checked/mircast_chenked.svg000066400000000000000000000024641473342170300265210ustar00rootroot00000000000000 编组 4 deepin-movie-reborn-5.15.10/assets/icons/light/normal/000077500000000000000000000000001473342170300225515ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/light/normal/last_normal.svg000066400000000000000000000033521473342170300256100ustar00rootroot00000000000000 last_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/normal/next_normal.svg000066400000000000000000000032341473342170300256220ustar00rootroot00000000000000 next_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/normal/play_normal.svg000066400000000000000000000022251473342170300256100ustar00rootroot00000000000000 play_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/normal/suspend_normal.svg000066400000000000000000000017031473342170300263240ustar00rootroot00000000000000 suspend_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/press/000077500000000000000000000000001473342170300224155ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/icons/light/press/last_press.svg000066400000000000000000000033351473342170300253210ustar00rootroot00000000000000 last_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/press/next_press.svg000066400000000000000000000032171473342170300253330ustar00rootroot00000000000000 next_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/press/play_press.svg000066400000000000000000000022101473342170300253120ustar00rootroot00000000000000 play_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/light/press/suspend_press.svg000066400000000000000000000016661473342170300260440ustar00rootroot00000000000000 suspend_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/icons/theme-icons.qrc000066400000000000000000000064121473342170300230770ustar00rootroot00000000000000 icons/dcc_delete_36px.svg icons/dcc_slider_10px.svg icons/ddc_warning_30px.svg dark/texts/dcc_clearlist_18px.svg dark/texts/dcc_episodes_36px.svg dark/texts/dcc_last_36px.svg dark/texts/dcc_mute_36px.svg dark/texts/dcc_next_36px.svg dark/texts/dcc_play_36px.svg dark/texts/dcc_suspend_36px.svg dark/texts/dcc_volume_36px.svg dark/texts/dcc_volumeadd_12px.svg dark/texts/dcc_volumelessen_12px.svg dark/texts/dcc_volumelow_36px.svg dark/texts/dcc_volumemid_36px.svg dark/texts/dcc_zoomin_36px.svg dark/texts/dcc_zoomout_36px.svg light/actions/dcc_clearlist_18px.svg light/actions/dcc_episodes_36px.svg light/actions/dcc_last_36px.svg light/actions/dcc_mute_36px.svg light/actions/dcc_next_36px.svg light/actions/dcc_suspend_36px.svg light/actions/dcc_volume_36px.svg light/actions/dcc_volumeadd_12px.svg light/actions/dcc_volumelessen_12px.svg light/actions/dcc_volumelow_36px.svg light/actions/dcc_volumemid_36px.svg light/actions/dcc_zoomin_36px.svg light/actions/dcc_zoomout_36px.svg light/actions/dcc_play_36px.svg light/press/play_press.svg light/press/suspend_press.svg light/press/next_press.svg light/press/last_press.svg dark/press/play_press.svg dark/press/suspend_press.svg dark/press/next_press.svg dark/press/last_press.svg dark/normal/last_normal.svg dark/normal/next_normal.svg dark/normal/play_normal.svg dark/normal/suspend_normal.svg light/normal/play_normal.svg light/normal/suspend_normal.svg light/normal/next_normal.svg light/normal/last_normal.svg light/checked/episodes_checked.svg light/actions/mute_checked.svg light/actions/volume_checked.svg light/actions/volume_low_checked.svg light/actions/volume_mid_checked.svg light/actions/dcc_volumedisable_36px.svg dark/texts/dcc_volumedisable_36px.svg dark/texts/dcc_mircast_36px.svg light/actions/dcc_mircast_36px.svg light/checked/mircast_chenked.svg dark/texts/dcc_update_36px.svg light/actions/dcc_update_36px.svg deepin-movie-reborn-5.15.10/assets/org.deepin.movie.minimode.json000077500000000000000000000006631473342170300247120ustar00rootroot00000000000000{ "magic": "dsg.config.meta", "version": "1.0", "contents": { "miniModeSpecialHandling": { "value": -1, "serial": 0, "flags": ["global"], "name": "Mini Mode Special Handling", "name[zh_CN]": "迷你模式特殊处理", "description": "Mini mode special handling, like Huawei", "permissions": "readwrite", "visibility": "private" } } } deepin-movie-reborn-5.15.10/assets/resources.qrc000066400000000000000000000377711473342170300215770ustar00rootroot00000000000000 resources/icons/fail.svg resources/data/lowEffectSettings.json resources/data/settings.json resources/profiles/composited.profile resources/profiles/default.profile resources/profiles/failsafe.profile resources/icons/input_clear_hover.svg resources/icons/input_clear_normal.svg resources/icons/input_clear_press.svg resources/icons/logo-big.svg resources/icons/logo.svg resources/icons/music-dark.svg resources/icons/music-light.svg resources/icons/mute_hover.svg resources/icons/select-hover.png resources/icons/select-hover.svg resources/icons/select-normal.png resources/icons/select-normal.svg resources/icons/select-press.png resources/icons/select-press.svg resources/icons/slider.svg resources/icons/success.svg resources/icons/titlebar.png resources/icons/volume_hover.svg resources/icons/volume_low_hover.svg resources/icons/volume_mid_hover.svg resources/icons/warning.svg resources/icons/dark/info_close_dark.svg resources/icons/dark/init-splash-bac.svg resources/icons/dark/subtitle-selected.svg resources/icons/dark/mini-init-splash.svg resources/icons/dark/init-splash.svg resources/icons/dark/mini/close-hover.svg resources/icons/dark/mini/close-normal.svg resources/icons/dark/mini/close-press.svg resources/icons/dark/mini/pause-hover-mini.svg resources/icons/dark/mini/pause-normal-mini.svg resources/icons/dark/mini/pause-press-mini.svg resources/icons/dark/mini/play-hover-mini.svg resources/icons/dark/mini/play-normal-mini.svg resources/icons/dark/mini/play-press-mini.svg resources/icons/dark/mini/restore-hover-mini.svg resources/icons/dark/mini/restore-normal-mini.svg resources/icons/dark/mini/restore-press-mini.svg resources/icons/dark/normal/audio-volume-high-hover.svg resources/icons/dark/normal/audio-volume-high-normal.svg resources/icons/dark/normal/audio-volume-high-press.svg resources/icons/dark/normal/audio-volume-low-hover.svg resources/icons/dark/normal/audio-volume-low-normal.svg resources/icons/dark/normal/audio-volume-low-press.svg resources/icons/dark/normal/audio-volume-medium-hover.svg resources/icons/dark/normal/audio-volume-medium-normal.svg resources/icons/dark/normal/audio-volume-medium-press.svg resources/icons/dark/normal/audio-volume-muted-blocked-panel-hover.svg resources/icons/dark/normal/audio-volume-muted-blocked-panel-normal.svg resources/icons/dark/normal/audio-volume-muted-blocked-panel-press.svg resources/icons/dark/normal/audio-volume-off-hover.svg resources/icons/dark/normal/audio-volume-off-normal.svg resources/icons/dark/normal/audio-volume-off-press.svg resources/icons/dark/normal/close-hover.svg resources/icons/dark/normal/close-normal.svg resources/icons/dark/normal/close-press.svg resources/icons/dark/normal/dvd.svg resources/icons/dark/normal/exit-fullscreen-hover.svg resources/icons/dark/normal/exit-fullscreen-normal.svg resources/icons/dark/normal/exit-fullscreen-press.svg resources/icons/dark/normal/film-bg.svg resources/icons/dark/normal/film-top.svg resources/icons/dark/normal/fullscreen-hover.svg resources/icons/dark/normal/fullscreen-normal.svg resources/icons/dark/normal/fullscreen-press.svg resources/icons/dark/normal/list-hover.svg resources/icons/dark/normal/list-normal.svg resources/icons/dark/normal/list-press.svg resources/icons/dark/normal/mute_normal.svg resources/icons/dark/normal/next-hover.svg resources/icons/dark/normal/next-normal.svg resources/icons/dark/normal/next-press.svg resources/icons/dark/normal/pause-big_hover.svg resources/icons/dark/normal/pause-big_normal.svg resources/icons/dark/normal/pause-big_press.svg resources/icons/dark/normal/pause-big.svg resources/icons/dark/normal/pause-hover.svg resources/icons/dark/normal/pause-normal.svg resources/icons/dark/normal/pause-press.svg resources/icons/dark/normal/play-big_hover.svg resources/icons/dark/normal/play-big_normal.svg resources/icons/dark/normal/play-big_press.svg resources/icons/dark/normal/play-big.svg resources/icons/dark/normal/play-hover.svg resources/icons/dark/normal/play-normal.svg resources/icons/dark/normal/play-press.svg resources/icons/dark/normal/previous-hover.svg resources/icons/dark/normal/previous-normal.svg resources/icons/dark/normal/previous-press.svg resources/icons/dark/normal/Subtitle-hover.svg resources/icons/dark/normal/Subtitle-normal.svg resources/icons/dark/normal/Subtitle-press.svg resources/icons/dark/normal/url.svg resources/icons/dark/normal/volume_low_normal.svg resources/icons/dark/normal/volume_mid_normal.svg resources/icons/dark/normal/volume_normal.svg resources/icons/light/info_close_light.svg resources/icons/light/init-splash.svg resources/icons/light/subtitle-selected.svg resources/icons/light/mini-init-splash.svg resources/icons/light/mini/close-hover.svg resources/icons/light/mini/close-normal.svg resources/icons/light/mini/close-press.svg resources/icons/light/mini/pause-hover-mini.svg resources/icons/light/mini/pause-normal-mini.svg resources/icons/light/mini/pause-press-mini.svg resources/icons/light/mini/play-hover-mini.svg resources/icons/light/mini/play-normal-mini.svg resources/icons/light/mini/play-press-mini.svg resources/icons/light/mini/restore-hover-mini.svg resources/icons/light/mini/restore-normal-mini.svg resources/icons/light/mini/restore-press-mini.svg resources/icons/light/normal/audio-volume-high-hover.svg resources/icons/light/normal/audio-volume-high-normal.svg resources/icons/light/normal/audio-volume-high-press.svg resources/icons/light/normal/audio-volume-low-hover.svg resources/icons/light/normal/audio-volume-low-normal.svg resources/icons/light/normal/audio-volume-low-press.svg resources/icons/light/normal/audio-volume-medium-hover.svg resources/icons/light/normal/audio-volume-medium-normal.svg resources/icons/light/normal/audio-volume-medium-press.svg resources/icons/light/normal/audio-volume-muted-blocked-panel-hover.svg resources/icons/light/normal/audio-volume-muted-blocked-panel-normal.svg resources/icons/light/normal/audio-volume-muted-blocked-panel-press.svg resources/icons/light/normal/audio-volume-off-hover.svg resources/icons/light/normal/audio-volume-off-normal.svg resources/icons/light/normal/audio-volume-off-press.svg resources/icons/light/normal/close-hover.svg resources/icons/light/normal/close-normal.svg resources/icons/light/normal/close-press.svg resources/icons/light/normal/dvd.svg resources/icons/light/normal/exit-fullscreen-hover.svg resources/icons/light/normal/exit-fullscreen-normal.svg resources/icons/light/normal/exit-fullscreen-press.svg resources/icons/light/normal/film-bg.svg resources/icons/light/normal/film-top.svg resources/icons/light/normal/film.svg resources/icons/light/normal/fullscreen-hover.svg resources/icons/light/normal/fullscreen-normal.svg resources/icons/light/normal/fullscreen-press.svg resources/icons/light/normal/list-hover.svg resources/icons/light/normal/list-normal.svg resources/icons/light/normal/list-press.svg resources/icons/light/normal/mute_normal.svg resources/icons/light/normal/next-hover.svg resources/icons/light/normal/next-normal.svg resources/icons/light/normal/next-press.svg resources/icons/light/normal/pause-big_hover.svg resources/icons/light/normal/pause-big_normal.svg resources/icons/light/normal/pause-big_press.svg resources/icons/light/normal/pause-big.svg resources/icons/light/normal/pause-hover.svg resources/icons/light/normal/pause-normal.svg resources/icons/light/normal/pause-press.svg resources/icons/light/normal/play-big_hover.svg resources/icons/light/normal/play-big_normal.svg resources/icons/light/normal/play-big_press.svg resources/icons/light/normal/play-big.svg resources/icons/light/normal/play-hover.svg resources/icons/light/normal/play-normal.svg resources/icons/light/normal/play-press.svg resources/icons/light/normal/previous-hover.svg resources/icons/light/normal/previous-normal.svg resources/icons/light/normal/previous-press.svg resources/icons/light/normal/Subtitle-hover.svg resources/icons/light/normal/Subtitle-normal.svg resources/icons/light/normal/Subtitle-press.svg resources/icons/light/normal/url.svg resources/icons/light/normal/volume_low_normal.svg resources/icons/light/normal/volume_mid_normal.svg resources/icons/light/normal/volume_normal.svg resources/icons/start/1.png resources/icons/start/2.png resources/icons/start/3.png resources/icons/start/4.png resources/icons/start/5.png resources/icons/start/6.png resources/icons/start/7.png resources/icons/start/8.png resources/icons/start/9.png resources/icons/start/10.png resources/icons/start/11.png resources/icons/start/12.png resources/icons/start/13.png resources/icons/start/14.png resources/icons/start/15.png resources/icons/start/16.png resources/icons/start/17.png resources/icons/start/18.png resources/icons/stop/1.png resources/icons/stop/2.png resources/icons/stop/3.png resources/icons/stop/4.png resources/icons/stop/5.png resources/icons/stop/6.png resources/icons/stop/7.png resources/icons/stop/8.png resources/icons/stop/9.png resources/icons/stop/10.png resources/icons/stop/11.png resources/icons/stop/12.png resources/icons/stop/13.png resources/icons/stop/14.png resources/icons/stop/15.png resources/icons/stop/16.png resources/icons/stop/17.png resources/icons/stop/18.png resources/icons/music_bg.svg resources/icons/music_note.svg resources/icons/start_new/1.png resources/icons/start_new/2.png resources/icons/start_new/3.png resources/icons/start_new/4.png resources/icons/start_new/5.png resources/icons/start_new/6.png resources/icons/start_new/7.png resources/icons/start_new/8.png resources/icons/start_new/9.png resources/icons/start_new/10.png resources/icons/start_new/11.png resources/icons/start_new/12.png resources/icons/start_new/13.png resources/icons/start_new/14.png resources/icons/start_new/15.png resources/icons/start_new/16.png resources/icons/start_new/17.png resources/icons/start_new/18.png resources/icons/stop_new/1.png resources/icons/stop_new/2.png resources/icons/stop_new/3.png resources/icons/stop_new/4.png resources/icons/stop_new/5.png resources/icons/stop_new/6.png resources/icons/stop_new/7.png resources/icons/stop_new/8.png resources/icons/stop_new/9.png resources/icons/stop_new/10.png resources/icons/stop_new/11.png resources/icons/stop_new/12.png resources/icons/stop_new/13.png resources/icons/stop_new/14.png resources/icons/stop_new/15.png resources/icons/stop_new/16.png resources/icons/stop_new/17.png resources/icons/stop_new/18.png resources/icons/short_fail.svg resources/icons/short_ok.svg resources/data/GstSettings.json resources/icons/mircast/icon-exit normal.svg resources/icons/mircast/icon-exit pressed.svg resources/icons/mircast/icon-update.svg resources/icons/mircast/mircast.svg resources/icons/mircast/spinner.svg resources/icons/mircast/spinner_White.svg resources/icons/mircast/default_Back.svg resources/icons/mircast/prospect.png deepin-movie-reborn-5.15.10/assets/resources/000077500000000000000000000000001473342170300210515ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/data/000077500000000000000000000000001473342170300217625ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/data/GstSettings.json000066400000000000000000000332351473342170300251410ustar00rootroot00000000000000{ "groups": [ { "key": "set", "name": "set", "hide": true, "groups": [ { "key": "start", "name": "start", "hide": true, "options": [ { "key": "crash", "type": "checkbox", "hide": true, "default": false } ] } ] }, { "key": "base", "name": "Basic", "groups": [ { "key": "play", "name": "Play", "options": [ { "key": "light_theme", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "global_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "last_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "mute", "name": "", "type": "checkbox", "hide": true, "default": false }, { "key": "playlist_pos", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 0 }, { "key": "forced_interop", "name": "", "hide": true, "reset": false, "type": "lineedit", "default": "" }, { "key": "disable_interop", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "emptylist", "name": "", "type": "checkbox", "text": "Clear playlist when exit", "default": "" }, { "key": "resumelast", "name": "", "type": "checkbox", "text": "Remember playback position", "default": true }, { "key": "addsimilar", "name": "", "type": "checkbox", "text": "Auto add similar files to play", "default": true }, { "key": "mousepreview", "name": "", "text": "Show video preview on mouseover", "type": "checkbox", "hide": true, "default": true }, { "key": "multiinstance", "hide": true, "text": "Open a new player for each file played", "type": "checkbox", "default": "" }, { "key": "showInthumbnailmode", "text": "Show thumbnails in progress bar", "type": "checkbox", "hide": true, "default": "" }, { "key": "pauseonmin", "text": "Pause when minimized", "type": "checkbox", "default": true }, { "key": "playmode", "name": "Default play mode", "type": "combobox", "default": 0 }, { "key": "hwaccel", "name": "Hardware acceleration settings", "type": "combobox", "hide": true, "default": 0 } ] }, { "key": "decode", "name": "Decoding", "options": [ { "key": "select", "text": "", "type": "radiogroup", "items": [ "Auto select (Recommended)", "Hardware decoding", "Software decoding" ], "default": 0 } ], "hide": true }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "location", "name": "Path", "type": "selectableEdit", "default": "~/Pictures/DMovie" } ] }, { "key": "general", "name": "", "hide": true, "options": [ { "key": "pad_load_path", "name": "", "type": "selectableEdit", "default": "~/Videos" }, { "key": "last_open_path", "name": "", "type": "selectableEdit", "default": "" } ] } ] }, { "key": "shortcuts", "name": "Shortcuts", "groups": [ { "key": "play", "name": "Playback", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "pause_play", "name": "Pause/Play", "type": "shortcut", "default": "Space" }, { "key": "seek_forward", "name": "Forward", "type": "shortcut", "default": "Right" }, { "key": "seek_backward", "name": "Rewind", "type": "shortcut", "default": "Left" }, { "key": "fullscreen", "name": "Fullscreen", "type": "shortcut", "default": "Alt+Return" }, { "key": "exitfullscreen", "name": "Exit fullscreen/mini mode", "type": "shortcut", "default": "Esc" }, { "key": "playlist", "name": "Playlist", "type": "shortcut", "default": "F3" }, { "key": "delete_from_playlist", "name": "Delete from playlist", "type": "shortcut", "default": "Del" }, { "key": "accel", "name": "Speed up", "type": "shortcut", "default": "Ctrl+Right" }, { "key": "decel", "name": "Speed down", "type": "shortcut", "default": "Ctrl+Left" }, { "key": "reset", "name": "Reset speed", "type": "shortcut", "default": "R" }, { "key": "movie_info", "name": "Film info", "type": "shortcut", "default": "Ctrl+I" } ] }, { "key": "frame_sound", "name": "Frame/Sound", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "mini", "name": "Mini mode", "type": "shortcut", "default": "F2" }, { "key": "vol_up", "name": "Volume up", "type": "shortcut", "default": "Ctrl+Alt+Up" }, { "key": "vol_down", "name": "Volume down", "type": "shortcut", "default": "Ctrl+Alt+Down" }, { "key": "mute", "name": "Mute", "type": "shortcut", "default": "M" } ] }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "screenshot", "name": "Film screenshot", "type": "shortcut", "default": "Alt+A" } ] }, { "key": "file", "name": "File", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "open_file", "name": "Open file", "type": "shortcut", "default": "Ctrl+O" }, { "key": "playlist_prev", "name": "Open previous", "type": "shortcut", "default": "PgUp" }, { "key": "playlist_next", "name": "Open next", "type": "shortcut", "default": "PgDown" } ] } ] } ] }deepin-movie-reborn-5.15.10/assets/resources/data/lowEffectSettings.json000066400000000000000000000406071473342170300263230ustar00rootroot00000000000000{ "groups": [ { "key": "set", "name": "set", "hide": true, "groups": [ { "key": "start", "name": "start", "hide": true, "options": [ { "key": "crash", "type": "combobox", "hide": true, "default": 0 } ] } ] }, { "key": "base", "name": "Basic", "groups": [ { "key": "play", "name": "Play", "options": [ { "key": "light_theme", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "global_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "last_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "mute", "name": "", "type": "checkbox", "hide": true, "default": false }, { "key": "playlist_pos", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 0 }, { "key": "forced_interop", "name": "", "hide": true, "reset": false, "type": "lineedit", "default": "" }, { "key": "disable_interop", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "emptylist", "name": "", "type": "checkbox", "text": "Clear playlist when exit", "default": "" }, { "key": "resumelast", "name": "", "type": "checkbox", "text": "Remember playback position", "default": true }, { "key": "addsimilar", "name": "", "type": "checkbox", "text": "Auto add similar files to play", "default": true }, { "key": "mousepreview", "name": "", "text": "Show video preview on mouseover", "type": "checkbox", "default": true }, { "key": "multiinstance", "hide": true, "text": "Open a new player for each file played", "type": "checkbox", "default": "" }, { "key": "pauseonmin", "text": "Pause when minimized", "type": "checkbox", "default": true }, { "key": "playmode", "name": "Default play mode", "type": "combobox", "default": 0 }, { "key": "hwaccel", "type": "checkbox", "hide": true, "default": true } ] }, { "key": "decode", "name": "Decoding", "options": [ { "key": "select", "text": "", "type": "radiogroup", "items": [ "Auto select (Recommended)", "Hardware decoding", "Software decoding", "Customize" ], "default": 0 }, { "key": "Effect", "name": "Rendering engine", "type": "effectCombobox", "items": [ "", "OpenGL", "MPV" ], "default": 0 }, { "key": "Videoout", "name": "Video out", "hide": false, "type": "videoOutCombobox", "default": 0 }, { "key": "Decodemode", "name": "Decode mode", "hide": false, "type": "decoderCombobox", "default": 0 } ] }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "location", "name": "Path", "type": "selectableEdit", "default": "~/Pictures/DMovie" } ] }, { "key": "general", "name": "", "hide": true, "options": [ { "key": "last_open_path", "name": "", "type": "selectableEdit", "default": "" } ] } ] }, { "key": "shortcuts", "name": "Shortcuts", "groups": [ { "key": "play", "name": "Playback", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "pause_play", "name": "Pause/Play", "type": "shortcut", "default": "Space" }, { "key": "seek_forward", "name": "Forward", "type": "shortcut", "default": "Right" }, { "key": "seek_backward", "name": "Rewind", "type": "shortcut", "default": "Left" }, { "key": "fullscreen", "name": "Fullscreen", "type": "shortcut", "default": "Alt+Return" }, { "key": "exitfullscreen", "name": "Exit fullscreen/mini mode", "type": "shortcut", "default": "Esc" }, { "key": "playlist", "name": "Playlist", "type": "shortcut", "default": "F3" }, { "key": "delete_from_playlist", "name": "Delete from playlist", "type": "shortcut", "default": "Del" }, { "key": "accel", "name": "Speed up", "type": "shortcut", "default": "Ctrl+Right" }, { "key": "decel", "name": "Speed down", "type": "shortcut", "default": "Ctrl+Left" }, { "key": "reset", "name": "Reset speed", "type": "shortcut", "default": "R" }, { "key": "movie_info", "name": "Film info", "type": "shortcut", "default": "Ctrl+I" } ] }, { "key": "frame_sound", "name": "Frame/Sound", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "mini", "name": "Mini mode", "type": "shortcut", "default": "F2" }, { "key": "vol_up", "name": "Volume up", "type": "shortcut", "default": "Ctrl+Alt+Up" }, { "key": "vol_down", "name": "Volume down", "type": "shortcut", "default": "Ctrl+Alt+Down" }, { "key": "mute", "name": "Mute", "type": "shortcut", "default": "M" }, { "key": "previous_frame", "name": "Previous frame", "type": "shortcut", "default": "Ctrl+shift+Left" }, { "key": "next_frame", "name": "Next frame", "type": "shortcut", "default": "Ctrl+shift+Right" } ] }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "screenshot", "name": "Film screenshot", "type": "shortcut", "default": "Alt+A" }, { "key": "burst_screenshot", "name": "Burst shooting", "type": "shortcut", "default": "Alt+S" } ] }, { "key": "sub", "name": "Subtitle", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "sub_forward", "name": "0.5s forward", "type": "shortcut", "default": "Shift+Right" }, { "key": "sub_backward", "name": "0.5s backward", "type": "shortcut", "default": "Shift+Left" } ] }, { "key": "file", "name": "File", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "open_file", "name": "Open file", "type": "shortcut", "default": "Ctrl+O" }, { "key": "playlist_prev", "name": "Open previous", "type": "shortcut", "default": "PgUp" }, { "key": "playlist_next", "name": "Open next", "type": "shortcut", "default": "PgDown" } ] } ] }, { "key": "subtitle", "name": "Subtitle", "groups": [ { "key": "font", "name": "Font Style", "options": [ { "key": "family", "name": "Font", "type": "combobox", "default": 0 }, { "key": "size", "name": "Size", "type": "spinbutton", "default": 19 } ] } ] } ] } deepin-movie-reborn-5.15.10/assets/resources/data/settings.json000066400000000000000000000417261473342170300245270ustar00rootroot00000000000000{ "groups": [ { "key": "set", "name": "set", "hide": true, "groups": [ { "key": "start", "name": "start", "hide": true, "options": [ { "key": "crash", "type": "combobox", "hide": true, "default": 0 } ] } ] }, { "key": "base", "name": "Basic", "groups": [ { "key": "play", "name": "Play", "options": [ { "key": "light_theme", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "global_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "last_volume", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 100 }, { "key": "mute", "name": "", "type": "checkbox", "hide": true, "default": false }, { "key": "playlist_pos", "name": "", "hide": true, "reset": false, "type": "spinbutton", "default": 0 }, { "key": "forced_interop", "name": "", "hide": true, "reset": false, "type": "lineedit", "default": "" }, { "key": "disable_interop", "name": "", "hide": true, "reset": false, "type": "checkbox", "default": false }, { "key": "emptylist", "name": "", "type": "checkbox", "text": "Clear playlist when exit", "default": "" }, { "key": "resumelast", "name": "", "type": "checkbox", "text": "Remember playback position", "default": true }, { "key": "addsimilar", "name": "", "type": "checkbox", "text": "Auto add similar files to play", "default": true }, { "key": "mousepreview", "name": "", "text": "Show video preview on mouseover", "type": "checkbox", "default": true }, { "key": "multiinstance", "hide": true, "text": "Open a new player for each file played", "type": "checkbox", "default": "" }, { "key": "showInthumbnailmode", "text": "Show thumbnails in progress bar", "type": "checkbox", "default": "" }, { "key": "pauseonmin", "text": "Pause when minimized", "type": "checkbox", "default": true }, { "key": "playmode", "name": "Default play mode", "type": "combobox", "default": 0 }, { "key": "hwaccel", "name": "Hardware acceleration settings", "type": "combobox", "hide": true, "default": 0 } ] }, { "key": "decode", "name": "Decoding", "options": [ { "key": "select", "text": "", "type": "radiogroup", "items": [ "Auto select (Recommended)", "Hardware decoding", "Software decoding", "Customize" ], "default": 0 }, { "key": "Effect", "name": "Rendering engine", "type": "effectCombobox", "items": [ " ", "OpenGL", "MPV" ], "default": 0 }, { "key": "Videoout", "name": "Video out", "hide": false, "type": "videoOutCombobox", "default": 0 }, { "key": "Decodemode", "name": "Decode mode", "hide": false, "type": "decoderCombobox", "default": 0 } ] }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "location", "name": "Path", "type": "selectableEdit", "default": "~/Pictures/DMovie" } ] }, { "key": "general", "name": "", "hide": true, "options": [ { "key": "pad_load_path", "name": "", "type": "selectableEdit", "default": "~/Videos" }, { "key": "last_open_path", "name": "", "type": "selectableEdit", "default": "" } ] } ] }, { "key": "shortcuts", "name": "Shortcuts", "groups": [ { "key": "play", "name": "Playback", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "pause_play", "name": "Pause/Play", "type": "shortcut", "default": "Space" }, { "key": "seek_forward", "name": "Forward", "type": "shortcut", "default": "Right" }, { "key": "seek_backward", "name": "Rewind", "type": "shortcut", "default": "Left" }, { "key": "fullscreen", "name": "Fullscreen", "type": "shortcut", "default": "Alt+Return" }, { "key": "exitfullscreen", "name": "Exit fullscreen/mini mode", "type": "shortcut", "default": "Esc" }, { "key": "playlist", "name": "Playlist", "type": "shortcut", "default": "F3" }, { "key": "delete_from_playlist", "name": "Delete from playlist", "type": "shortcut", "default": "Del" }, { "key": "accel", "name": "Speed up", "type": "shortcut", "default": "Ctrl+Right" }, { "key": "decel", "name": "Speed down", "type": "shortcut", "default": "Ctrl+Left" }, { "key": "reset", "name": "Reset speed", "type": "shortcut", "default": "R" }, { "key": "movie_info", "name": "Film info", "type": "shortcut", "default": "Ctrl+I" } ] }, { "key": "frame_sound", "name": "Frame/Sound", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "mini", "name": "Mini mode", "type": "shortcut", "default": "F2" }, { "key": "vol_up", "name": "Volume up", "type": "shortcut", "default": "Ctrl+Alt+Up" }, { "key": "vol_down", "name": "Volume down", "type": "shortcut", "default": "Ctrl+Alt+Down" }, { "key": "mute", "name": "Mute", "type": "shortcut", "default": "M" }, { "key": "previous_frame", "name": "Previous frame", "type": "shortcut", "default": "Ctrl+shift+Left" }, { "key": "next_frame", "name": "Next frame", "type": "shortcut", "default": "Ctrl+shift+Right" } ] }, { "key": "screenshot", "name": "Screenshot", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "screenshot", "name": "Film screenshot", "type": "shortcut", "default": "Alt+A" }, { "key": "burst_screenshot", "name": "Burst shooting", "type": "shortcut", "default": "Alt+S" } ] }, { "key": "sub", "name": "Subtitle", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "sub_forward", "name": "0.5s forward", "type": "shortcut", "default": "Shift+Right" }, { "key": "sub_backward", "name": "0.5s backward", "type": "shortcut", "default": "Shift+Left" } ] }, { "key": "file", "name": "File", "options": [ { "key": "enable", "type": "checkbox", "hide": true, "default": "true" }, { "key": "open_file", "name": "Open file", "type": "shortcut", "default": "Ctrl+O" }, { "key": "playlist_prev", "name": "Open previous", "type": "shortcut", "default": "PgUp" }, { "key": "playlist_next", "name": "Open next", "type": "shortcut", "default": "PgDown" } ] } ] }, { "key": "subtitle", "name": "Subtitle", "groups": [ { "key": "font", "name": "Font Style", "options": [ { "key": "family", "name": "Font", "type": "combobox", "default": 0 }, { "key": "size", "name": "Size", "type": "spinbutton", "default": 19 } ] } ] } ] } deepin-movie-reborn-5.15.10/assets/resources/icons/000077500000000000000000000000001473342170300221645ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/000077500000000000000000000000001473342170300231055ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/info_close_dark.svg000066400000000000000000000026771473342170300267630ustar00rootroot00000000000000 close_dark Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/init-splash-bac.svg000066400000000000000000011164301473342170300266120ustar00rootroot00000000000000 bg_dark Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/init-splash.svg000066400000000000000000000070611473342170300260650ustar00rootroot00000000000000 deepin-movie-128px 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini-init-splash.svg000066400000000000000000000064121473342170300270160ustar00rootroot00000000000000 deepin-movie-player Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/000077500000000000000000000000001473342170300240415ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/close-hover.svg000066400000000000000000000024761473342170300270210ustar00rootroot00000000000000 close-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/close-normal.svg000066400000000000000000000025231473342170300271570ustar00rootroot00000000000000 close-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/close-press.svg000066400000000000000000000024761473342170300270320ustar00rootroot00000000000000 close-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/pause-hover-mini.svg000066400000000000000000000022431473342170300277530ustar00rootroot00000000000000 pause-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/pause-normal-mini.svg000066400000000000000000000024451473342170300301240ustar00rootroot00000000000000 pause-normal-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/pause-press-mini.svg000066400000000000000000000022431473342170300277640ustar00rootroot00000000000000 pause-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/play-hover-mini.svg000066400000000000000000000021171473342170300276030ustar00rootroot00000000000000 play-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/play-normal-mini.svg000066400000000000000000000021461473342170300277520ustar00rootroot00000000000000 play-normal-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/play-press-mini.svg000066400000000000000000000021171473342170300276140ustar00rootroot00000000000000 play-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/restore-hover-mini.svg000066400000000000000000000017351473342170300303260ustar00rootroot00000000000000 restore-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/restore-normal-mini.svg000066400000000000000000000021111473342170300304600ustar00rootroot00000000000000 restore-normal-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/mini/restore-press-mini.svg000066400000000000000000000017351473342170300303370ustar00rootroot00000000000000 restore-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/000077500000000000000000000000001473342170300243755ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/Subtitle-hover.svg000066400000000000000000000016001473342170300300270ustar00rootroot00000000000000 Subtitle-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/Subtitle-normal.svg000066400000000000000000000017701473342170300302040ustar00rootroot00000000000000 Subtitle-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/Subtitle-press.svg000066400000000000000000000027431473342170300300510ustar00rootroot00000000000000 Subtitle-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-high-hover.svg000066400000000000000000000015671473342170300315730ustar00rootroot00000000000000 audio-volume-high-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-high-normal.svg000066400000000000000000000016161473342170300317330ustar00rootroot00000000000000 audio-volume-high-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-high-press.svg000066400000000000000000000016061473342170300315760ustar00rootroot00000000000000 audio-volume-high-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-low-hover.svg000066400000000000000000000013671473342170300314530ustar00rootroot00000000000000 audio-volume-low-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-low-normal.svg000066400000000000000000000014161473342170300316130ustar00rootroot00000000000000 audio-volume-low-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-low-press.svg000066400000000000000000000014061473342170300314560ustar00rootroot00000000000000 audio-volume-low-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-medium-hover.svg000066400000000000000000000014741473342170300321310ustar00rootroot00000000000000 audio-volume-medium-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-medium-normal.svg000066400000000000000000000016651473342170300323000ustar00rootroot00000000000000 audio-volume-medium-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-medium-press.svg000066400000000000000000000015131473342170300321340ustar00rootroot00000000000000 audio-volume-medium-press Created with Sketch. audio-volume-muted-blocked-panel-hover.svg000066400000000000000000000016701473342170300344040ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal audio-volume-muted-blocked-panel-hover Created with Sketch. audio-volume-muted-blocked-panel-normal.svg000066400000000000000000000030261473342170300345460ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal audio-volume-muted-blocked-panel-normal Created with Sketch. audio-volume-muted-blocked-panel-press.svg000066400000000000000000000017071473342170300344160ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal audio-volume-muted-blocked-panel-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-off-hover.svg000066400000000000000000000012701473342170300314150ustar00rootroot00000000000000 audio-volume-off-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-off-normal.svg000066400000000000000000000013171473342170300315640ustar00rootroot00000000000000 audio-volume-off-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/audio-volume-off-press.svg000066400000000000000000000013071473342170300314270ustar00rootroot00000000000000 audio-volume-off-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/close-hover.svg000066400000000000000000000024761473342170300273550ustar00rootroot00000000000000 close-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/close-normal.svg000066400000000000000000000030531473342170300275120ustar00rootroot00000000000000 close-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/close-press.svg000066400000000000000000000026701473342170300273620ustar00rootroot00000000000000 close-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/dvd.svg000066400000000000000000000115621473342170300257000ustar00rootroot00000000000000 dvd Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/exit-fullscreen-hover.svg000066400000000000000000000020261473342170300313500ustar00rootroot00000000000000 exit-fullscreen-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/exit-fullscreen-normal.svg000066400000000000000000000026341473342170300315220ustar00rootroot00000000000000 exit-fullscreen-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/exit-fullscreen-press.svg000066400000000000000000000020261473342170300313610ustar00rootroot00000000000000 exit-fullscreen-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/film-bg.svg000066400000000000000000000025221473342170300264340ustar00rootroot00000000000000 film Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/film-top.svg000066400000000000000000000014621473342170300266500ustar00rootroot00000000000000 polygon1151-1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/fullscreen-hover.svg000066400000000000000000000014241473342170300304020ustar00rootroot00000000000000 fullscreen-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/fullscreen-normal.svg000066400000000000000000000020571473342170300305520ustar00rootroot00000000000000 fullscreen-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/fullscreen-press.svg000066400000000000000000000014241473342170300304130ustar00rootroot00000000000000 fullscreen-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/list-hover.svg000066400000000000000000000016311473342170300272130ustar00rootroot00000000000000 list-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/list-normal.svg000066400000000000000000000021541473342170300273610ustar00rootroot00000000000000 list-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/list-press.svg000066400000000000000000000016311473342170300272240ustar00rootroot00000000000000 list-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/mute_normal.svg000066400000000000000000000044671473342170300274530ustar00rootroot00000000000000 mute_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/next-hover.svg000066400000000000000000000021241473342170300272140ustar00rootroot00000000000000 next-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/next-normal.svg000066400000000000000000000021511473342170300273610ustar00rootroot00000000000000 next-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/next-press.svg000066400000000000000000000021241473342170300272250ustar00rootroot00000000000000 next-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-big.svg000066400000000000000000000033161473342170300267750ustar00rootroot00000000000000 pause-big Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-big_hover.svg000066400000000000000000000033321473342170300301760ustar00rootroot00000000000000 pause-big_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-big_normal.svg000066400000000000000000000037151473342170300303500ustar00rootroot00000000000000 pause-big_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-big_press.svg000066400000000000000000000037361473342170300302170ustar00rootroot00000000000000 pause-big_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-hover.svg000066400000000000000000000026111473342170300273540ustar00rootroot00000000000000 pause-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-normal.svg000066400000000000000000000022221473342170300275170ustar00rootroot00000000000000 pause-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/pause-press.svg000066400000000000000000000020731473342170300273670ustar00rootroot00000000000000 pause-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-big.svg000066400000000000000000000036751473342170300266350ustar00rootroot00000000000000 play-big Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-big_hover.svg000066400000000000000000000037111473342170300300270ustar00rootroot00000000000000 play-big_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-big_normal.svg000066400000000000000000000037131473342170300301760ustar00rootroot00000000000000 play-big_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-big_press.svg000066400000000000000000000037341473342170300300450ustar00rootroot00000000000000 play-big_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-hover.svg000066400000000000000000000030021473342170300271770ustar00rootroot00000000000000 play-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-normal.svg000066400000000000000000000024121473342170300273500ustar00rootroot00000000000000 play-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/play-press.svg000066400000000000000000000022641473342170300272210ustar00rootroot00000000000000 play-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/previous-hover.svg000066400000000000000000000021621473342170300301140ustar00rootroot00000000000000 previous-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/previous-normal.svg000066400000000000000000000022071473342170300302610ustar00rootroot00000000000000 previous-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/previous-press.svg000066400000000000000000000021621473342170300301250ustar00rootroot00000000000000 previous-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/url.svg000066400000000000000000000217471473342170300257330ustar00rootroot00000000000000 url Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/volume_low_normal.svg000077500000000000000000000024761473342170300306720ustar00rootroot00000000000000 volume_normal 1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/volume_mid_normal.svg000077500000000000000000000030231473342170300306270ustar00rootroot00000000000000 volume_normal 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/normal/volume_normal.svg000066400000000000000000000035121473342170300277760ustar00rootroot00000000000000 volume_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/dark/subtitle-selected.svg000066400000000000000000000014311473342170300272460ustar00rootroot00000000000000 subtitle-selected Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/fail.svg000066400000000000000000000021061473342170300236170ustar00rootroot00000000000000 fail Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/input_clear_hover.svg000066400000000000000000000026411473342170300264200ustar00rootroot00000000000000 input_clear_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/input_clear_normal.svg000066400000000000000000000026051473342170300265650ustar00rootroot00000000000000 input_clear_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/input_clear_press.svg000066400000000000000000000026161473342170300264330ustar00rootroot00000000000000 input_clear_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/000077500000000000000000000000001473342170300232735ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/info_close_light.svg000066400000000000000000000026471473342170300273340ustar00rootroot00000000000000 close_normal 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/init-splash.svg000066400000000000000000000070611473342170300262530ustar00rootroot00000000000000 deepin-movie-128px 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini-init-splash.svg000066400000000000000000000064121473342170300272040ustar00rootroot00000000000000 deepin-movie-player Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/000077500000000000000000000000001473342170300242275ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/close-hover.svg000066400000000000000000000024761473342170300272070ustar00rootroot00000000000000 close-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/close-normal.svg000066400000000000000000000025621473342170300273500ustar00rootroot00000000000000 close_round Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/close-press.svg000066400000000000000000000026701473342170300272140ustar00rootroot00000000000000 close-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/pause-hover-mini.svg000066400000000000000000000022431473342170300301410ustar00rootroot00000000000000 pause-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/pause-normal-mini.svg000066400000000000000000000017741473342170300303160ustar00rootroot00000000000000 suspend Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/pause-press-mini.svg000066400000000000000000000022431473342170300301520ustar00rootroot00000000000000 pause-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/play-hover-mini.svg000066400000000000000000000021171473342170300277710ustar00rootroot00000000000000 play-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/play-normal-mini.svg000066400000000000000000000020721473342170300301360ustar00rootroot00000000000000 polygon Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/play-press-mini.svg000066400000000000000000000021171473342170300300020ustar00rootroot00000000000000 play-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/restore-hover-mini.svg000066400000000000000000000017351473342170300305140ustar00rootroot00000000000000 restore-hover-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/restore-normal-mini.svg000066400000000000000000000054221473342170300306560ustar00rootroot00000000000000 Popup Play Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/mini/restore-press-mini.svg000066400000000000000000000017351473342170300305250ustar00rootroot00000000000000 restore-press-mini Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/000077500000000000000000000000001473342170300245635ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/Subtitle-hover.svg000066400000000000000000000016001473342170300302150ustar00rootroot00000000000000 Subtitle-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/Subtitle-normal.svg000066400000000000000000000016271473342170300303730ustar00rootroot00000000000000 Subtitle-noraml Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/Subtitle-press.svg000066400000000000000000000027431473342170300302370ustar00rootroot00000000000000 Subtitle-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-high-hover.svg000066400000000000000000000015671473342170300317610ustar00rootroot00000000000000 audio-volume-high-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-high-normal.svg000066400000000000000000000016161473342170300321210ustar00rootroot00000000000000 audio-volume-high-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-high-press.svg000066400000000000000000000016061473342170300317640ustar00rootroot00000000000000 audio-volume-high-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-low-hover.svg000066400000000000000000000013671473342170300316410ustar00rootroot00000000000000 audio-volume-low-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-low-normal.svg000066400000000000000000000014161473342170300320010ustar00rootroot00000000000000 audio-volume-low-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-low-press.svg000066400000000000000000000014061473342170300316440ustar00rootroot00000000000000 audio-volume-low-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-medium-hover.svg000066400000000000000000000014741473342170300323170ustar00rootroot00000000000000 audio-volume-medium-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-medium-normal.svg000066400000000000000000000016651473342170300324660ustar00rootroot00000000000000 audio-volume-medium-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-medium-press.svg000066400000000000000000000015131473342170300323220ustar00rootroot00000000000000 audio-volume-medium-press Created with Sketch. audio-volume-muted-blocked-panel-hover.svg000066400000000000000000000016701473342170300345720ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal audio-volume-muted-blocked-panel-hover Created with Sketch. audio-volume-muted-blocked-panel-normal.svg000066400000000000000000000030261473342170300347340ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal audio-volume-muted-blocked-panel-normal Created with Sketch. audio-volume-muted-blocked-panel-press.svg000066400000000000000000000017071473342170300346040ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal audio-volume-muted-blocked-panel-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-off-hover.svg000066400000000000000000000012701473342170300316030ustar00rootroot00000000000000 audio-volume-off-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-off-normal.svg000066400000000000000000000013171473342170300317520ustar00rootroot00000000000000 audio-volume-off-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/audio-volume-off-press.svg000066400000000000000000000013071473342170300316150ustar00rootroot00000000000000 audio-volume-off-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/close-hover.svg000066400000000000000000000024761473342170300275430ustar00rootroot00000000000000 close-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/close-normal.svg000066400000000000000000000025231473342170300277010ustar00rootroot00000000000000 close-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/close-press.svg000066400000000000000000000024761473342170300275540ustar00rootroot00000000000000 close-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/dvd.svg000066400000000000000000000115751473342170300260720ustar00rootroot00000000000000 dvd Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/exit-fullscreen-hover.svg000066400000000000000000000020261473342170300315360ustar00rootroot00000000000000 exit-fullscreen-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/exit-fullscreen-normal.svg000066400000000000000000000026341473342170300317100ustar00rootroot00000000000000 exit-fullscreen-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/exit-fullscreen-press.svg000066400000000000000000000020261473342170300315470ustar00rootroot00000000000000 exit-fullscreen-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/film-bg.svg000066400000000000000000000025221473342170300266220ustar00rootroot00000000000000 film Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/film-top.svg000066400000000000000000000014621473342170300270360ustar00rootroot00000000000000 polygon1151-1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/film.svg000066400000000000000000000025221473342170300262340ustar00rootroot00000000000000 film Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/fullscreen-hover.svg000066400000000000000000000014241473342170300305700ustar00rootroot00000000000000 fullscreen-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/fullscreen-normal.svg000066400000000000000000000020761473342170300307410ustar00rootroot00000000000000 fullscreen-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/fullscreen-press.svg000066400000000000000000000014241473342170300306010ustar00rootroot00000000000000 fullscreen-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/list-hover.svg000066400000000000000000000016311473342170300274010ustar00rootroot00000000000000 list-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/list-normal.svg000066400000000000000000000020361473342170300275460ustar00rootroot00000000000000 list-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/list-press.svg000066400000000000000000000016311473342170300274120ustar00rootroot00000000000000 list-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/mute_normal.svg000066400000000000000000000041571473342170300276350ustar00rootroot00000000000000 mute_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/next-hover.svg000066400000000000000000000021241473342170300274020ustar00rootroot00000000000000 next-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/next-normal.svg000066400000000000000000000021511473342170300275470ustar00rootroot00000000000000 next-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/next-press.svg000066400000000000000000000021241473342170300274130ustar00rootroot00000000000000 next-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-big.svg000066400000000000000000000037611473342170300271670ustar00rootroot00000000000000 pause-big Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-big_hover.svg000066400000000000000000000045001473342170300303620ustar00rootroot00000000000000 pause-big_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-big_normal.svg000066400000000000000000000037771473342170300305460ustar00rootroot00000000000000 pause-big_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-big_press.svg000066400000000000000000000045231473342170300304000ustar00rootroot00000000000000 pause-big_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-hover.svg000066400000000000000000000020711473342170300275420ustar00rootroot00000000000000 pause-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-normal.svg000066400000000000000000000021201473342170300277020ustar00rootroot00000000000000 pause-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/pause-press.svg000066400000000000000000000020731473342170300275550ustar00rootroot00000000000000 pause-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-big.svg000066400000000000000000000043251473342170300270140ustar00rootroot00000000000000 play-big Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-big_hover.svg000066400000000000000000000043161473342170300302170ustar00rootroot00000000000000 play-big_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-big_normal.svg000066400000000000000000000043431473342170300303640ustar00rootroot00000000000000 play-big_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-big_press.svg000066400000000000000000000043411473342170300302260ustar00rootroot00000000000000 play-big_press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-hover.svg000066400000000000000000000022621473342170300273740ustar00rootroot00000000000000 play-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-normal.svg000066400000000000000000000023111473342170300275340ustar00rootroot00000000000000 play-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/play-press.svg000066400000000000000000000022641473342170300274070ustar00rootroot00000000000000 play-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/previous-hover.svg000066400000000000000000000021621473342170300303020ustar00rootroot00000000000000 previous-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/previous-normal.svg000066400000000000000000000022071473342170300304470ustar00rootroot00000000000000 previous-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/previous-press.svg000066400000000000000000000021621473342170300303130ustar00rootroot00000000000000 previous-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/url.svg000066400000000000000000000217471473342170300261210ustar00rootroot00000000000000 url Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/volume_low_normal.svg000066400000000000000000000023711473342170300310470ustar00rootroot00000000000000 volume_low_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/volume_mid_normal.svg000066400000000000000000000027161473342170300310220ustar00rootroot00000000000000 volume_mid_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/normal/volume_normal.svg000066400000000000000000000032071473342170300301650ustar00rootroot00000000000000 volume_normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/light/subtitle-selected.svg000066400000000000000000000014311473342170300274340ustar00rootroot00000000000000 subtitle-selected Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/logo-big.svg000066400000000000000000000070611473342170300244100ustar00rootroot00000000000000 deepin-movie-128px 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/logo.svg000066400000000000000000000064121473342170300236500ustar00rootroot00000000000000 deepin-movie-player Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/000077500000000000000000000000001473342170300236265ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/default_Back.svg000066400000000000000000000045351473342170300267220ustar00rootroot00000000000000 编组 7 deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/icon-exit normal.svg000066400000000000000000000034751473342170300275300ustar00rootroot00000000000000 -mockplus- deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/icon-exit pressed.svg000066400000000000000000000034511473342170300276770ustar00rootroot00000000000000 -mockplus- deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/icon-update.svg000066400000000000000000000025521473342170300265630ustar00rootroot00000000000000 icon-update deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/mircast.svg000066400000000000000000000024641473342170300260170ustar00rootroot00000000000000 编组 4 deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/prospect.png000066400000000000000000000511701473342170300261770ustar00rootroot00000000000000PNG  IHDR-sRGBDeXIfMM*iu,;@IDATxˮ,GvnM/"ݒh8= %zmDj?a0A @BG0 yOݎ# @#)ͩl7n |9 @6N @  lItn+̽FX:o B ٹ|z5 @ @Ћ @ _8 la @@f[c2YorfՐ}j i}385>A p r_=F/2{1.@ $g_yh~l_C Vk+KǕy13fa25ttk`s/^C$]eteS5ͷ,1_ӄ=!40 @ uXRNu a13!@%Y4pfS :kָsMebIKWBxU9 @bNFfSӶCkiy2^ @ p&rLÇexL1D*C #`]= Y#fXgWFBeZn}=^nb J`&fMMk E"䐚i |9 @ TVs#/nB  !69?,@cp<иڭұL=s맵?obRЄ* @`u< ~zޗ )?5&~k(h1BC @`Cn#P ep (2z#HoHMZ:Ce65lfJ)aǾ[B: @@-gn(ι6 tMKhpH NCM9 @6N`[!41Te6=@ p'ԡ5BkChbCeǔ1OeƟGR@]xw`ǘ[nfvhMRרZCB @\/2!@&КflbPsR𧚡C 0J`ؑ6`51&B @7@!40@ AQsʻt!4SfZI~qxj{Cqb_Hs@ KP0КBiNsh @@m#YGPv/NҞJ_ӏR6U{^r~N 13 @m$uLjk hxZvx2~\/yQyňy˭9}9h@ (kBkZ/| <Ӵ,_>nic[L=fQr--m@ >:yp/Ю𭖥o.]_ C\7# @X': t~,lfUka3P_e݀osf!A GG`m5=YӦ1&?ߚN50Zz'CeL\twv,Pת@ H:D6V=M߆K4k yH/KXq, R6'B: @`YLk5/TSמ =Bk@ l@BtЈk(bK*zy!-52?U|&+ϸkLȬ?} ljN ͩ־КOB4DyKhZ/I~P=TmcZ AGJC @ ljDj9sCn^;9qWc=NCM|A9 @  }PJ[CV7 @n@J7py?QĊi4.:]_7!1nyCi-fhM,<ĺ'aRq @ p/~w-eКm"xw#hvBh@ Bhr̤/lf[nSLI}@ E`H׼NX}vO>46oT}'-69T=n' q@ 0D`v!75mCZj}iaxFkjC+48fG] @ *k268.xyi6pwX +n3.Jn5 [c> @ 7ÝY]R歅ռݞN K0҅e|VMMR@ ,AEWDǨgӴ8LL @ !@v#yq UW||P-a3j__̏6C$ @wxM5i(ރV)ebG#C @at+dv̚C<&R@ X:Sl,ޕj%irhx9%Գ6w>[ZO5u@ ;"oi NS BcOq @ ,G ˪iyx_΅l}b @KhѳKټ˞t4gdLkP8L g{-[r_!@..F j sobxM n]sbwɻ6\ { @-( |S@ F j3_|c윰t![6e[}WVn#yZZ|vGg|&?fc[:'=R㼱~^՝s  @ XCR7 N!@ V N'aCiYqqTptx 79h U.w{ ]2ZUPdR#0>e_'-\Kv1bC @`j5B3R@ l1tU[fZo-:y7̵LM>pb&/]fy}[o'n[Gx뼭HüW_0-{6 .쾌Ki>ku)X}P§^ z @|6,R@ \O~R|7Bt?fϹ.G'jZn3D;KO9a.sK@ث@9 @%B| Xjyָb7e<9}>?i^] sj)]P?:aS sgb*9+?;P㥿wOv..TNC6ZtblWDieur D#czu]MZiMrH\ڷk{q ־zMU !1 ʏwX=w-!1C}%IܗҾILCyO9&#g9s G!2O[j=)V~Jfn!7+ӡzmf,FuMjiv.`-|-[ߔsKߥ;\r 1PXJ1Zk='ТH/ǜQ6^qmq I_ @soL%Ww%5W᭧ -ۗ:(?p2 9~=ͭ ԾpXgsͰ-EN1@HhZ~<',GSl2TӕV5FNgC֊N-tW}beQq5>n.4)ӡwP5Rv݆ug+eץnNnaomo%?M?J[ru @sQ_H]ı񶌵OKt_gm鼏|23=G[z\]{u>Xv΋<ݨ?넺>92ex?NGg{dS>Ces8ZӟV@#cD~Mt߼&kc~S>u Euv'Ke㼫f;u_bG&[*o[͹eGN-x^1/8tLA 5Ж&WV^ZCqRf^Ea6NvQN_(u't>; ӲImţ}9$>zcs?@sG"{&]\zCzUB+ [!079w^P1OЄcNnKW }zYZO:!cԮ!]wgNkzP̤V|@ [Yye5tx0N*.\tuyE]LCbZXq݌kj`ŭ |K@87fTA[^J܇`>w;9zww,[nd4x+[sxvk_.>|a:q8|7tݏ*x+S d }wI _ (?}=/Oc?dVƶSǶ%^M˦K>"Q$3uh@IS^~1o?8Mە>XBFpX>~~,ʇ/a]89_(~J}\/רўܦ'G21lâi> @־J#mZY:sNy%_T>VrӔ=dpb'+\uJmc,f{\8ttjxj~k-buZ8qM'P:w~㭬E wrUXHїo}٢G|VBVX8@;*w4;|+r#G4-Rl/~[Ů4_3&RrِͲl꛱lWS}ǒ[X|<}o®l{,5 ["W2*oq=Υ_3iqFRZc(P8b{VF-me85ļ|-빽ڵHi8 1\9d19iMZ @#`t(ƚiA-&6 @~pZ|=;VmOXzk( 9-ϹnGec!?ߖu\[foBro~[?/^JmsZЃM϶kSS~ոb~ðK:ˡ:Z/o?[T`ii_[|t׿9ԭX?9bm&sI횲]ex:˭±%C/#{zeGγ@+@XX.՘Z@>/kmKJ[?p.}ԵCuxj>K}&wڪnMiYE5SiGÔNJ;LtUvS+Պ{VfBc{bjr@ CګO6ke-^;zŚ:wgP1 žxȰVc!@[&".H%?kQo׾}[Z%*CWe~2rN9n}S۔61&jx쒯b]LZK})x^/{^-쭑oJ㛬0=@@?O:,=I&c<H䀍W^w:6YD-T31 ~k1!1cc鐸V}T܎ hqHVFFtiM; >?<1p}kb vs*ǽXOurM:x>>JF)\3i@]T_|Է=۞։|aPv;Қ8BC\ZsSWޝzޢi߂a@ex} An^HOc ⤨G,>7g;:x-?9T(cq <^;) IxみqȅZ1&lspqz3*UYfP1%.b~m _g5ccNeCt@(w:c4;TX VMQ-D'j1{.W[_[mh,1ߡ-ʓe5c;U/5ag6ۦfґ{Ugt꒿=C|ooJg@e8.uT}NZc/0uּV@w{-U@.Ra.xo-J(tGG>od_ޗV}1]ÆbY#xA׽B[Zk-r&.߉l0`x9Ɯۛr?dސsʦsmZ{l9 @G^jל8X9Y训Zv]G>^j!6һ$i8?]]#C<||5ͫ3ǘ+^F>M?!X=TƎT1n牂݇mGVny\=>ƙXBֈKkT^qNͧ>kNϡs@wūVkB6NFQF-IWj:Mns|QV/ұ9;,jC/\ה5.WbG8Et3r*Fv$> RT+\e+Po%EK hs@GbR vx09q#s Qk%ޓ4 5ԑoHh@%=;jy\&1l[* y;n1* Źvs6?y:R0|ubIFKo~MZYү( K@bs߬%^} Al]tϨ[Yo9E5jz{Qlwj_]ua6ڽF[T1oߜJSGR'J~Rߥʯhp8Ms5 o|xSɿTH|QpsE_z1Ǣwߵ7ߜ1_V [qgtU4;^@|CguTg3,KygboKym[>/5^oѡm=[v @׾5͵6ΟRWm< pگϤtk'=)T﫴9:Ӻ2u?w__5,2vEtZTUG'] |)h+| AtCe*sۼRi|[Et'cZ|kCj75`^CW\oyMo4}"*:S}mn'V+~6.Ce^[O]jL6Ne\m%Nu(DWz-~y]JkNzMb>2sQA>Km5_Z;Lf٨_uk䛞QՑv̡@-%-w}ڧ^ľxo⽴5 @2&_QoyJ(lh^=ЪC$/S?^Wqygt2jzȼm}j2p8"0ܕZs[: Cj߿Ʌܪl[u[IC) @O@cW]:iu:Ʋ w?}iFgˡ5YG[W[?OD'i+ɇ$l#wXנ< ʻuj b9&aqJw6w<щq2=ևZonEcf;puxwÛ2whC^E|UF%yzVHu`{zm܇:Q;?pHOYϿSgg--|.u 09h{o<㎆5ӮdV5f̯wr=_!c}I}qȍ:RmE\ٮTm:5`<ʺؕov=},}<ۇhG-f|#﹢LfA܅\-mRGq6s7Q,yߋ{J>w5D{|}Z-n׭CVu~>{T>z_u'\zX?:F}EƥyQZ?[S\Gx>{oUvUVܩ4nPi09,O:;CjϦImK4jMW{%013.yc>-oew(QSZ)\izw]gQZl=33A?~pӯ_$:|Ced_Z)_ gJf1%0 eH?S-;VojWk{VT9-mڡG}em@Oj~`?܂?P'pσ}tk'ľҗ $bg1%BnEw_}_cεV{ ~˖iC|<e}y~y$b[Gfձ6'}?KIx8e\wNNcqIUo1$ޕr{cvwk}AhykkNږegq֠!YẊi*eas*w{کxZ|@NJ+?Bl5s-NY^?l@ l@]㹣u*qq-*/oؒ,b/Tfȏd!{mVLCsȉ<*xm"]4ʽouh["y9յzTtħW j m8r[fWz3h==vϣfl3QgC*~zmSZ5)KOIUR9n#mKHUWusBv}Zqm"MSnWc}*a9|FuUhuz_$--y:a{Nsno`Οv WQo ҫ55,hJԅ @jк4]U[\c_:v=q,etwQ[ilM J[S嶫?k Qk6k tRv9ĪB EALdT'J_$k-Enbp|' <ĶVٵḮ$εt|Ce?LU3 :fzo;3-QlʵݷϯX>$,VO97!slqӞ6 h-!$-]'j>Joyg[q׫ m:>(h< sxEqo^ϫ9 WztfCw6Tk WNg?Ũԇ4\K˴+'1X  @F i-׭=UMՌa]ŶG'qf![SurNs̾Zi"!pqxt^>׾Lgh^ @)i-Ln5VGΔԾt[K+]w[4AP|ԑt^,?Jnp/+k%>vt+fG%*ӹw~".$tTks8~ OdSmD 8mY)]umMy]XZ9DZ[LBq!|Nu1_\חx.]x-z`'-w+JTчW圌갨w(]6cl[@;u2=Q.s=X/Sgc( @D`-Ƿ֥Խ;M7ix_i3YN}]v6:-x=P5lG @hDK5G:WyƻxV> !wI^]j"ZY5Pͨz]eq^v&Aj*3j洕NA @n@zdOopm=jXNgv:SQf!.5=W| 6cH.?Q 25ĻД vIDATVݳh{۰]G\v%Ku9|\8e>heN;ຼ5=Soe5( @0V&uNct_/+}juoY֨7%e Ѷ IC调9*5\m5T֝bdA/ФA8{G @@4,[W3-R՗6liWڴ-+d=/k;M 2tA}+U}q93`g2Aء4Oˏutn;1NNUv Ԅ @O@2:)ZMYaZw\T4.5G҆Yg[c"\^udS}j^v!?T*9U،-ՙEHQvu!_{mRuj_OⷲNlJu@  X[.hєN>U;ZD?J' ux;{&1p#(C8M,:;3J弯9E_:}Y wq}Ƀ @-é!;.Jw^LΚIg!V5͈4#p،WU&g4С:~h5t ;zC[>ڱl@I]94}*\n3B D<<6{_gyavqwy>^6Κ7?j"[jԷH(դj2[ɂdC2e 12-iX_SY+ZB] Oeߕr@ l5Zlkv,Sc *ۉy->wc^WKc˞lKZ\#T#-1xuڳ];/qwTb޷(t(-u6jȇ @X@i>]ۗ5ϣ/.VY˺Y^ZEZG#tMɫZQ:tՉe}^uAϳ>1m&GKކ!3?2a EB lVĿݯEoxpӖ+gX=xjTu6:Qz9&ӺYL=BLUy9JG8y5vXus2 R)6eL r=ϸ!eϖ6u1ފ @v D(ۜ8X3N/U^9KR]NNf#NZiEs{}(Tb\B3]PQsI^iWY!{XΌ幼 @8@ԗ\,Ke5oԿex]g Z)=?Z0 vq=.cuN}~ tt?ӡuqpp= \4W/{֢*o֑N[֗G9Np?ֿ#u#d]K[{ImC0qB}{}C thdD/TU}׏D~U6޶i]Uyk۪Q @f.ed2y|ۡb=ڭK+Cuûi?u4E{ y-:>ۅFNb *ud*xCrDi^`@ pZfr.*-,k=+Qsf 6>RT[m^!VTP utR2;М:?2-/t홉"(iPq @ pB]NG-3{N#=ڭw֕N=bTʻm)wʼihu?ɕ{voaKpR 4VĴz8O'"um_;N!|3Rb@ $ %-[Т'L"'XzCk㺲:ĺ-ng-4C*3<}[Tm2Znך}k@ !"!r"?Gh^ʿ½(Lv5 xs&5e/޵qd8ȁn9Jv?[P2еq19 @#`봅@Kv^PsINZW Ywz9Vo\-z9Q*S/W]_:k6FļiYδAo };H:.c{9XiSkK> @h-cD}zI/D:YnN5tvҲ+ϒbW@}__j {Lle^)\~.pw}uτCk"}~wIu|ZWUKي}>ӪSyӸtQ{_>~g_KIl-OJ8éTi53 ?fg- 3qzS6Nz:LN+%ͨ:Ja^A{hAZWcVJs^ݎOُG?=2;BuQ5~N'n_w܊+@ 'RZm\&Rx5{J|d\0PJ!h[(-k9_f$6J{ 2ҰG9 @DҕҥҘc5m V8#;bxlՏ6`jhr? RRI@.f}/X멢tKN+9"aoAtUO 屐Dt= cYc k?kx?ϦX<kvֹ9:mlKyphҹca65} U83_R_~f?d+>L?$9%yW*GP+TE+^.9rxzE{SCUj|.x)ʼhV_&yz7vk}ͱשT.s*em30*wZ{_F.6"yWZ^w_|;c} Ӵ*v{D=Juz'v{k`dwV_-Zuk} [m|_G!`ZڅW5 u6x%гNa4FyڮkEH_V:7/K+H(ܧx*yO' }G_ @!`<գRGb3 طګ\;Xjâo$~~/?:/_>˴ ,{g/1n/7W-զ!~*]lG6te\s @ -;z] XbuiR`- _Zan E'<=_gYx*mj h#X][(M,x_e&UVcA:1s@ mΔa-g0U_6|LсmSY_C_jCeZ.d}oR[2?R S(7?Iq7i<8|9 D?WjȲk>WپcN @N+Q9CfTwJ[wq]ZWu^ gAH);L6jeV|vmw}]^:wtj)ta3Q{F!ǔoa(]T3P~aKдM@ mn&MKʸW-yQ{X5 o~+gݤLKdWU| xrdA^zW/~NF}zA l@'|l5nWqXwT6Ҋ篞^M_K|Jc^5Wm]GmŲxz!}b},s @ =CY(ձeٗ:HPGF",Vul?|raWILjy[M h/^]WvO/}m?@V8 @XgI!+ -mockplus- deepin-movie-reborn-5.15.10/assets/resources/icons/mircast/spinner_White.svg000066400000000000000000000152661473342170300271770ustar00rootroot00000000000000 -mockplus- deepin-movie-reborn-5.15.10/assets/resources/icons/music-dark.svg000066400000000000000000000031121473342170300247410ustar00rootroot00000000000000 music-dark deepin-movie-reborn-5.15.10/assets/resources/icons/music-light.svg000066400000000000000000000033301473342170300251310ustar00rootroot00000000000000 music-light deepin-movie-reborn-5.15.10/assets/resources/icons/music_bg.svg000066400000000000000000000522261473342170300245040ustar00rootroot00000000000000 黑胶背景 deepin-movie-reborn-5.15.10/assets/resources/icons/music_note.svg000066400000000000000000000055751473342170300250660ustar00rootroot00000000000000 中间音符 deepin-movie-reborn-5.15.10/assets/resources/icons/mute_hover.svg000066400000000000000000000044741473342170300250730ustar00rootroot00000000000000 mute_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/select-hover.png000066400000000000000000000002211473342170300252650ustar00rootroot00000000000000PNG  IHDR sRGBKIDAT8c TLT4 lԨhBۛaD CFFFdu 0ŌYd8#\G $7G nCIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/select-hover.svg000066400000000000000000000024331473342170300253070ustar00rootroot00000000000000 select-hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/select-normal.png000066400000000000000000000002061473342170300254350ustar00rootroot00000000000000PNG  IHDR sRGB@IDAT8c TLT4 lԨhB0//aDS= GrŦzHV select-normal Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/select-press.png000066400000000000000000000002201473342170300252750ustar00rootroot00000000000000PNG  IHDR sRGBJIDAT8c TLT4 lԨhB0B|:3 Uل0匣Yd8#\G $7zIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/select-press.svg000066400000000000000000000024361473342170300253230ustar00rootroot00000000000000 select-press Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/short_fail.svg000066400000000000000000000024551473342170300250450ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/resources/icons/short_ok.svg000066400000000000000000000021341473342170300245350ustar00rootroot00000000000000 deepin-movie-reborn-5.15.10/assets/resources/icons/slider.svg000077500000000000000000000031751473342170300242000ustar00rootroot00000000000000 slider Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/start/000077500000000000000000000000001473342170300233215ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/start/1.png000066400000000000000000000003701473342170300241670ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzzIDATx1 Om x0eIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/10.png000066400000000000000000000026151473342170300242530ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxoUUGUn!Hn#f:Đ4:rlC#ah4"af@CF@Bm-mj[Z{O ~]9 H$I$I$I$I$I$I$I$I$I$I$I$ k!x l6.Z&ps޳M^ AF`Cഇ1ܥ sO%w8=bş] PϮ VgWCZ P P P P P P P P P PѣO;vltSSSǏ8}} +)ϢS^MLLrYK9緢Rz莵f"Bz׫u 3@2@2@2@2@2@2@2@2@2@2@2@2@2@2@2ELOO.j]3 p [73!###8exxxhvvoONNά5kτELNN,7\3| V(T(T(T(T(T(T(T(T(T=bş] ގPϮDXgWCTbRC?FXgWCwGTFзtgW9'BA'gW8="gάxUsNS[*0Y]Z B/zRm;4%1 E))Ӝt&@m4Ms S/s7,GUm;40Gw'mZ>>9_\жi~.ۂ'E>䜋w?Uжt4tFGcWonoYoRv{Wt/͛"w ߁9W~ۀ^`x$pøCw \njo 1nHo5总tw$I$I$I$I$I$I$I$I$I$I$I$I2WdIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/11.png000066400000000000000000000034311473342170300242510ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxOo[ionԓ0m0ȴT=M*T̊,`7X m tU,f5R(H# jg T hRfqjgq]ԙq$sGʢQ,{ """""""""""""""""""""""""""""""""""""""""bezBH,pvC00 oS0n8 @1>u e!"DXu#b 3Qqt π2PD6ltxCo~D}] cx=B%cGsƀ[i32d*%!6 Bʲ#C'_gp>3 Si~eYzݸSCS|AGx2MӿdYֲw2#|]BeAv !%?3 ݩ;.~Ne9;u]!Aoww늻!FP| 0P S ƅp t7H;v[l4Fc7xzcՎ=W;ՎW { PO@Վ(njS PL)@1ŔS PL)@1ŔS PLMXUTxbP($۷o?ϟ??[T>}ڪV[Zmh7H 7VWWߙIfZ[[{+W,//o۝,ꫫWTJrۋ啕o {8}l$_MX{-b8$I\ DϽ|ɞvq-EL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)Ni4~m4N󍟫zW\ 7nl4SV[[jk46{Qe]zOKKK$IjZ͛V#`\vo.]zT*Nݻw׳}ظ`u73055Jɱ1vvvZ?~Bt:jڳfԬc /pf8tη:S PL)@1ŔS PL)@1ŔS PL)@1-/wjUՎ_W;8\[Xp ڱ$yĴw솷3`O%r|n 0>c}ݱ |j=| 0Ƹ |`=[WUX1B{,#` xSw\p >V~,:i~<pr)o& !_?"2ZghO_q?FB~HwHY>NEQ]$TCOH7(f$e}MפݒA'=h6I %s.dIqM]HG&VYw!P(O䙺 Ψk"gm/%/\V1.n{)i۟뤻{ u*^/g5 >^##'BCj2oX5qCY0N e/dP*Bs~^(Xmz o:Y/!B 9Ф@rM4)Ф@rM4)Ф@rM4߼y|Z߿hccH+J#nZ{6773x45۷o_rʇy/^4/]_2Ν;w]z\Pr8gv2'TV](kڅJ^ƩT*ZvT*bZW^'ٟ$vT*ur\.=NR8] ¡#Wn>]@rM4)Ф@rM4)Ф@rM4)Ф@rM4)Ф@rM4)lzUsԺ?Oz*h$_A"[QP}fj4+r핕w~3??yq&''^YYY팳qḒ$b^1$ߌlnn.,,7=Πsmͽ*t>4)Ф@rM4)Ф@rM4)Ф@rM4)eDz Y/\mz s~^( Bh'E e 0]j~{a UQg"𕸆aid|d=l@FB!ψߦ6eφH(0gH| |DZI]$IҌ|g,c_Gv {u!m /w@P4hģ[f$I+5{헽Ys閩>;aI3o#K+_GN]&/r5Gq?SsL '?+ay# 8_}|;Bi0^Α^7,(ʀE` iLJ>?K&!`ƀ3ˤaq4t*Io,Pr}n!i ϻIĝ,\{a} $޵IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/13.png000066400000000000000000000037321473342170300242570ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz\IDATxnS&$&`C:QӋGG}q wSif45aXs݋ G⵬>; """"""""""""""""""""""""""""".g=N9A0촀u`-)u/t '*p(W } }:vA;{4IC\^>HO/s|#ꕳGOP4U` x<Ϙ=zr!sǀc0itҹU`xfKe_XL$@gIC`Qڟ1_*I< !cl8HG 0L0s\ l<|Q5&Zι5uVQBoCkED[~#n8Jι2p}zh||V*J\zC|>T*CϟE2BPT*7nHf܂u}Q PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)v?.mo`fjjVh4zǷ昞n4~NonK|ϟ7FFF6oի7o޽{o:}Vnjr\jZׯ_`aa緂!7Lffffի?j\fqqq}jjja}Ǐ/V*"@l,?}tc z}^o܉Fќx빟PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1T##ebi(k+HHDYX4tO5HHDYX'8=Q,1`4|^:޷c, ٮFЌ8LtQdgU6h+˚d/,x)~"]ho 1Ǖ|Q4߆vŽI&?2rwHd4b/[CBh%IA{W,7  $K pjp{h5BY\y-'a gUp:>BkI&}j8d<)-/}nE1z"@Fvv XF3Ht/=sNz[q 9PQߚu`L}z2MιA](p48q;Ϥ=!Rg,DO9W }L[-I俆sQZD\ >j61!>Irb'bQ~S|yt-[;WWu<@2ǟ5lg4)Kdt5'9TgI -&a6>Q84=z_hV}qizP+ 9^}4@\DدjÕk㋩ŏ|OЍu*6ZIι9P|uva'i0 `5K;"" "]7>5\ņq_xkL5%6~ sn vb--ios "Hι3h7I.kZP{ h7IkZP~h\dMK97W&r ̓_RP{Uچ`L6Dcr! ݡ*}mC&Wk"@=v5J_["RbJ)(RbJ)(RbJ)(RbJ)|vgVVVڭVeQ*NҞma{)@͛˷nݺ6???Chpݻˍ7۷onaaa.(2$;NkuunEQt竫3uouݓcyǞSxڵDQuݥ+WSīWOwrׯOo>ϝXEGsͼo쥥C=S`0ۮPl)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1ŔS PL)@1j}?uI1>`mmP,x`Ա_|yp?{lԱ'Կ+˲Ν;ۗ.]j7ÇfY6!;/^l7(|sssw}}}p'E&q1l6VEyNsjv:~ONS¶$_odža^QO˲,nŖS PL)@1ŔS PL)@1ŔS PL)@1ŔS PLp,Rچp`L6D#Gj ?c+}mC`L6D[Ɣz(}mC*Rms@N ZzI_=XR&@㊝/C *muzkZ &I2z!bMKaK52`&Ir|Ng9YA~46$ 9xy/3!%{ #I  MA{*'O$ ~x2ZUj%{P?x57i4=x~~R7/||Ns4ME@ T}QgUŞpz/Lst"w@j}Ia~1x50k:7n}CpE|{8\ڦ<7g5wIMZ!{e ,!ی-;:wVkǟy^ >F3~Wnc6ӜsM|xMfɋVu#YDDDDDDDDDDDDDDDDDDDDDDDLԱ* H IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/15.png000066400000000000000000000042131473342170300242540ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxnYv/I A9  $jo`;%@ I{R8 a&T+IVeϗSUv """""""""""""""""gE%34q ݢCq|x{Hhim` WWaĶwc A;vw1Ilt߾3"ņƸ $Fǽle"Pfkds|>1U`6{4I8]kqOs1 ,`n |xVz*c*ohaO*d }`;y0clg`N,FW{,>ԣ(L$s 0;ý=s]mfE[Iv\[ƘrU{fEI^3a.f]\kr*@ku2*ar!{ea?͐ LDQ$׏hiNrԀ(6$Z]\9&+1Oc9.gc텗O:-e0,dc x>{H9xo_Ρ\ʤsgfgmbwcf2aމ )&w 0eu#NuF2a815SN8^ϩ[sj5@}Rp P' ԀWAq%((A)@ JJP PR%((A)@ JJP PR%offܽ{.^pKKK^[nZF˗>ow[Dp~~ѣv=Yժixɓ>+o߾ZU* `0ܼysX]][wߟtRjLѨ;w\w+W޽{mzzzh4jfggg8~ז`gnonn~G)1%((A)@ JJP PR%((A)@ JJP PR`/'gN 8p|S:kL ϩ_/Ԁk_ܖsj5nm!Ԁksj1VR0! )I?=,Cy}Άh;Nx|r]Χl3:)v̝y 0C࣏eI!|ܙ˱{*"~Che)_XL1&?J$h>-%8^5@$IYKR;!^,8e.W>y$!.m&q~I|$+ RKrlǮU!\P:%8/ /V) >e& U/ |ph2ldWMV`lof9+䗯ZdF<ЏxX =MhMqU5PeY{gxFU5V2#)V_4KЇL('ItHJx->]KpRՁ 0DŽS^8uJnLf$Ig?tV4w4؏nF J ՇݰmLjp沛JV CS=y8O JgTTV UmTT%'!*܊M< ¨H$Q D1@I$Q D1@I$Q D1@I$Q D1@I$Q D1@U? {Eǫfhzӷoӯ( {N0z޽;p=ޢm^ess3Z^^F<(Z_˗{IjX͛](j ;F˞y ly$"3(}`<g^#$I(.,hM>Z'r;1u$Ik:>'$@H$h`Z/͕#{q;;Y^@Y , C74@^B8fjGq;81lbaN6|˥f'sv<|rRۯ]0П,{JJ,`ݼ9>8f[TJ-hB7 gEYc20jw="efFBl3ybr]x3޿ͬA.AG4YķsAw*gБkjl/V)Ut˯-Y'DDDDDDDDDDDs/-&ʽIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/17.png000066400000000000000000000041631473342170300242620ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxoY[ߵ&$݌'/'z?@M311فoGBw&SJz$ɾw}-DDDD4eY-Cl G m;ڲ6CëSzöm s'#IF`^W[-"ivW?|7mϷd[ 0tQ22zbGaY hex_k_^ieuŗH]۶oDF9@4UNY Duq6%^ Zi8EQeiSn(i$µLŧ;SHV<6ta|B4{e~Te)GPMӜ;SʮZC-DY:)pSk\2 nJ!ރOp7S蛋0E!jfƧzn5N/n'W(}Di-sÊ .4e0VFn!ZoȓD`|ziSLy# xPU fZRfʅoVF@ _~>==u,i}͛ׯNQGU fwhzyu]W{^{8vE/..j%8sxrr7 #sWUUW^U~qΗ/_j?6v0Iu 0O*ѨBN ]q:NMV>i{=?\8ua$(H b$(H b$(H b$(H b$(H b$(H b$(H b$f@za6:э uݕǕ_&,mq~}'˗Yӧ뺹u }׸_^^Zպs%x<߾} ] n{Ax~~>9==L&.Ry)P˲ӧOۃ@5 Cx\^^gggl6J+ϟ?oC+0quu~Smۗ~& P4-}GuEף / LӰB좬yt: i;٬{q- D1@I$Q D1@I$Q D1@I$Q D1@I$Q D1@IԲ$&)Hua$T{ }Բ+:5^fS.F@oB͔TWˡ(3ڶ UNjKޙ^@\LKm;GA,n)Ӫ7#F7 GI+Nj\*]My? Ry382kpELŅW~q4M@g-Fpm.4kyK<;By(qㄦi.Xrjm~7U۩8@43BJ Ll.unO-JҮђR# 8x*E EYtNM;ߛg">a&XfUΛB3F'(6 ' Q[6 M*6-RM`9η#`ZjJ#} g;*,(@=~T;mqE%>:Bl#b]77n-Dm!X Z%Ũr"|DM>)7bQ QI4|{:AE/r${{vbPW"8""""@ }kIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/18.png000066400000000000000000000003701473342170300242570ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzzIDATx1 Om x0eIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/2.png000066400000000000000000000055621473342170300242000ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxogO>I~k@(\ Op%fPVPUh T,MIv|wggދmԇ#Y/3;>DDDDuM9sH%7 @z' >bhum7 oM7ĪdeOx] J;8鈨DBb\n @HNtv&x,Px8ҽґ1C= u-k[KC <ϋ\p]8ΏyI^wK$6J gqtfEGn8 ǒn7L J^ p]uW\۱zHs83}[‚#\gtX ™LY80tfřt]s>a^gYWV (%čd9Kk\8JJ&LZ֟'jI3~8*L552ڢGDYKڙ(XsDLd'i(%:m6U2 8&&$(LZ/-NZi+-M !=midʅ/XVF@K10Jڸ9QF65.@~)o#H2)o3mdS VeVR R R R R R R R R R R R R6qrllllAF1 p}}׷ʦiiJ)(TӉ>aˡe_|E飏>Zm{9eYeYVRj%ƸZxҥҸN3MӨT*qI 4[3i G1s{zmJB_nuamrZ__{ҧ~ZޮlmmJ)n}{dߏj><29Ny{{;j6ɓ'';;;'Qޏ2@!jAZ]q[e$1_ݹsgh9'|bommM41+i˗/0ϟ?bz5k{-ӧAQm۶Y՜>`z?ѣGRJy e.\(g~7h4d׋j$ qqT*Yƪ6@)%ZVDZq岕gPBEQ`={LBmŋkyWT2K,۶m00 " zRH)RFQ(RE I?|3MӰmۮT*/G6˲L)e zB)%RJj/u?R0ߍgYY*Zf۶mi !R* PR%I)ej 3xBv]M4ˑͶmKxdEAߗRepNJ)߸q##)%ͦx7ҕ)(dQAVattSJI!2hN{\u[ϟ?v4,2j6i/ŶH|J)u޽{k;жm @0צEb;M)~6{E+!NFQ$t|yJvZ}GGGK&,TG-mѭ[^ܸq1_4:n7olσ~>4(qg_|A&sOh4r{W\yq޽M<իR/ ?\hLY}훇h0r0K/#"ƭ~SY^42lM 0) );;m|Jizn(-zdyfY^t!f=-z(080:$c2jObx*f4Lx7Ӷ< ^ bݒF@}TE źNzO9@A c][t'N2WP? @S^l0E(?iA[B/ %q|bMu-q 7YYx64%,m'Eގ\߬8\5XNnNK!/i(Dٕ#}!K,u īdqN'(#@|$O2Fb8jhwax]-G7nx*|EQ*jģg<"쪪jO(EWz;:lj=zzmgt85NeDR_+M5THf[iZf(W|5pqjV+4r(yRB!4Me<.. GI\ƗEp(J nG‘i][(Ɓ pPHfZiZiSaPQjɯQ 0/Q@;j"#%^!l"Fρ^z`.(fl"m$>@F"h5[g(?HNS#)5;[rKOE$'$ (sWV MT(LBx $rLqnQP b$$ I(HB1@P b$$ I(HB1@P b$$ I(HB1@P b$$kF߯홅,eq|q(=_ \. r\rʥ~{Vv 橏>Zh4JYTr9>|xBPeyvvvV$亮eYN(zDxO>9tFr\eYjrmۆ=q\u]FQ p4O>3ZwUh40Mr]<ϋt]\KKK|[Jeovن$IE4`ٶ8+$zKKKyݮ{o]G\.ɲܨ볾ﻶmmzG ӾE޽{bh+Ju]k8M ;=iݻwe$4UUnn_,uYbhY5';/^lm~g}vbRIeQf p-i9zi;鋋{RYy)j:fgl۶a϶mqTض~;;;n6[>`௬t?n`۶Ѥ"n GxAv[R|y Zfư}8m;ϟ?o44s?8,# |) ]ѽ{ǞKksss4j>Lޞ~֭Ncpt:Z ;wt_r; Oraگjd΋F>}jY˲,giiiC8x 1M3X^^ޝt=zmی !ٶm w=0x#xޞj2AɓEMu<K3y;w<ח f5e -_N% 58cBEDž ϗdAһ\͎]g~3`"<ǷJ{#SEuG:{F'#MS-*"(#<6X.h18GqY4"NJ ]ixG eGb0rXyNTFD^9bE)Ut -4'DDDDDDDDDDDg aIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/4.png000066400000000000000000000056121473342170300241760ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxOvO<8O%nLu4`Ӧ2؟R׎u61Lh1ql~Q 6_^RTU%+11@DDDDDDDDDDDDDDDD4.RUTUd.pxli9օ PU"K*JǗ[ l<. mML+TU,$2|cb?>tۚE.l^D-O¸7=4Em=@UU/~|$N`iy\TUYyyΛNdhX4}^3=UUM. p c 6x`qqWEu=c 08s^ `EQZǶ_[J @Ei[(z\#a,]t\sPSe':e|O.gxTUj4(^Ƌ4@UUe?lxEu݉jQog_ϥTFěTU_ە`]G"+$ yhQE*\DC `pD,4Z`݇8~I$_DA)`pK%BȪ -8n~LяB56R @!O/TaG*)TajRXB$ P b$$ I(HB1@P b$$ I(HB1@P b$$ I(HB1@UիW׮]+uR B&gRTqn[kkka=t13e9}\izzT˥RIfI/y[oܸq?|%qQ0k|yff455UVŬOI2YYQ.K7n>||. ?!z=0533SVs\.d2ܰNgv \|9{]y7B6d2L*T,jff磏>עK|JE3r r> J&&&|>oF{oozZ|NTUWf'&&*B!Srj:{VkǶmA>`}]\. NRTlFy!/^*ʲ~w^T*6jIqQo0 `0833#K.]e`f7 cossӎz(v:#V&TIuVk۞ y][Ik;;;VT*j5Ų,tz^UG8Hd n߾ԶްӐ$IRfsv{4MQ 0߿=|M"_xF}뺮8Jl F,t:j|>/V0:vi4-xJl'<,:geYkZݶ3zyW_iϟ?w@oS:NUZP(gheex$>@u_|meYjz߷zgTݛ7oF#4MbX n C4Nu]Ν;G,ԃEGT "b^W\u-˲v??8؞xua0޽{/mCz? ˲9c$RqLtӜP>m۽ߚ&GCv't'?S;xHٴ߆9ٳ;wz/* j3thP $I6`X=]G"߈-ZliT ;xtqG&7@Q@@!ip:'Ez ^n\'!V5M|o\ X{e,w>E>P`$1 ?]Mb9%@;*q͋bс_+:(f(?8 N@*ΉjY䢲xiڹ:뺣( 4^i` k;{.@o& {{j~eNYO,o?byXG \+7hxOut{  UU% 3+rWmuĹ ^NGq#iT.TO;+z#""""""""""""""""J!%+oIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/5.png000066400000000000000000000054141473342170300241770ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxokK;Y OhBwJLL BHHDB"H<)[̜JEl{g;$֙'<_a """""""""""""""""""""".DT`;I?bJ{ZlkVz6@!D!7"nn4LӬ+IBh^^x:zl; /B|`4MG6Imo HX<P^QyB]ijGzkD iQ" wmG<p4M[ Lz^ǣ^4xOrra-j=Bwz1YÆaXe=r(p z hGԎ P{0dS˲A4 e xbY_<x, &2C7gAH!D ^΢x=>*wO;SJ#-@! 8tBuxYhgKK)(HG0hϩdG0IS p:Rqxz)\Fs+G@\F1xs+^ϭsI |s+#@I)VF\x^ϭ*|[BJ1@RR b$ )I)HJ1@RR b$ )I)HJ1@RR b?GN8kjjjd|||0J%lv+B񫯾uuuU7S"f>h߱c3D"cE]um۶<8_|=E tZ;sޓ'OLRIMt9D"iSSS0W`u=y޽{W:Nk7?i;wN,,,_q7 p4M{#΁ѡL&FۺT*T*8uÇ}wey`[8}|pp|||x`` Ffrz,H$"H$J%?z<h4xS|ܙ3g&L,Ϫ\.bX4L&"d2d209{l6zǟUWu]&7'0::,5F1 r\ܹsG'''R> Ru]+C>O}gxѣO?_ccc#XP^/N6q<}o֮O>d0LZi*>XZZZ)JF>}gϞ=n;NTժd2<;;qx^׫a>AWVׯ_;ªG|}8///?faTjr:X,_]7\P.;_+tZƍ BQ[_8??_?v#\/d:y\7Hëm۽yv"jV4>v\X䣗Wlnߩjϟ7ڋ:oqqqƍOm}[UFю^zuZqx荚ͦ{֭8R!h9];zѓ[noX0 lvo߾]j? '&&}ݩnsǹ|\^e5,Klv ٳ'ʘ333p333N@P(?kkk|<9!=+pOݫ[Xtm3a{gj|!#L&6fٺt~l,뎟c[pg[:\v?/_-̧^'''w˿s_.^PTB̏*!J>ϥ$Z?p… a1LͦwJҏGNRVܹSZZZ:.05 gvv|Z\nZ-.Rد瀤$ )I)HJ1@RR b$ )I)reHx>2 _ @ 3 ?>|[v#>2,J&VFIu 2h7K֞[_z i΂ Oͩh `NƶINb$nQ7RH 4&;ℝp=R^ }< ϶eYaec2E+4MKe5 èx-/niQP+'J j G=h,SeYaU״‹/o ̲,ao!"߭;>2>@MAHX ` 1П/%4FWrWڎp^krm /(Xo xN|1-e<@BDtJ>Uj5iOb@ Qq]CNf-(({ 7BRIx1Z[wW c;z6 !‹{@ A2)?~"@JIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/6.png000066400000000000000000000055611473342170300242030ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxOTfn 3 caKE4Z16i|i'K/I&m'7}ć/pUd6psy؃X֚=~? umDDDDDDDDDDDDDDDDDDDDDDDDDDDDDliEJpp(Z]g$y@Mӊ@i] @?\#y@MӪPsqA`5]gei@;))ByFUa.Hz5Mkp@hD.` ] 02@MӚaTfϩb/5 #$i4-_`dr a2 @M>TU0 #*qL_Jx̗/|ٰkM`OD7,4kEKY8#aD nW@MӜSo>SH"Gz+!Dp8YӰj[D[}DMVg;NTkC#DP厐>@^!}&*z")Uต 3bI*bI*bI*bI*bI*bI*bI*bI*[?~|W +ڬ|J('Nuɽ~t:(x<~ر/؊:l6G5JKKEEEe\^sر]ccc#ҊpNg'|.sX,Q\\\tq9Z n>kkii \M[t̻rGGGsQQrчv?%B>*8Klmmݓ)|x<]>xJ***O8(f+`PQQ8zә-_===CgϞ}y6]CCC+jBUUU_|qtfܽ3 wuu u@7s:_j窵fPWWjݞqOx<nz^{gg~߭t<F履~zxϞ=[0ޞ3gδ|>f[^^~J#:>Ãuuu;Dކ2}vttTʞl#cEQ>ڬ·>:΢c+++7nXm>wީokk{feYzϝ;ZVVq{Ν{p8J |V˕ C5tԩ{ݭ(BJo|>Ǚ3g^+--tQ"H9ԩS-cS4T[8_mmm_>tʕٳg[˷vttT۷~Rww7o}X*tZzxӯf3d$_o]x7,?3}}}˗^sEEEY67~gˀׂFFFV&FFFx ovjl^~bnc󳳳kG O?4 ϟߟUp8t…xL޼ysݻ+^׾G>O`$@$@$@$@$@$DGH `TP;;BLT^<g"[>OQ^ggdGH<4E@!꺞hrBOَy"z@B`{t0J\-̾BXC pg 7DMkAwIٻ@]z,mYn @oq7Lep*' }"cmdTU ƽuI>G?@B07e@u]ץ$%`FLU/Ȫ97/-`F4Bw t],BjG!`ʸp - `CUU`j@ڶ)0z^l!0 eeVU00Wfu]ϛgtrJ4Mӊa@#JYV0 aY+L24MsÜ qf`oM˺:4M<]9-'8>ߜC02N,o%i cWGO9r$J bBuoCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDW-suhIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/7.png000066400000000000000000000052121473342170300241750ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATx]Olk23 Pn`E]UUU]E@MM~hud`a8沍c8Mr6tX3^UU 0 u ҅l`nXt!15M_k;UU4 cJp[ WM$@%^ ElB(:,RI=`9]5lf |`2ڤ`O/}Z-DHo; V[ ^mbbm!Bmbbm!ۦB2[Md99B2hbm!}!69D1$$Q bIH@(D1$$Q bITt(''G9|qiii^4L߾}ׯ_ҵx_^]TTz< 4p8޸q[TEQ\v/JKK[vg:t@w555yn;s, :ɤN .8p`Qb&''W\ro޼?0_ڹsBQ>|wYYYVmmmy~~۷***^zXQ%CVҥKr} CٳgK^>WVVG\Zr%yϟ;vl:JeeeZךje(ŋLxifKK@lӅ>/}nO[\ƅ Jݻׯ_b =ZԘ$bt۞۷oQ)--={ٗ31I\|/vSbgΜk7J7oވ?i@UUUjjjٳA0€\uuuݺ~|vv`m;w|8{333===]F.=z4 ><ѣ3g~>444 xDSSSqNNN҇wvv@~~{51qErԩ澵|-766&ygsĉ;vlKNooxx8X'O&=\OLLL(--->1[ZZѨ Ǐ^PP-ϟ??{ `Ǔ󡡡񮮮ƲDScL4[[[}N "C߿rR;XX?';:iZ:Cq1*`h' `@7 ]}iZmX`놊d]55u=&eiZ,ra] +w 4!X f$g `رc[*Lrcǎww־Q_c흃+J|&5]]]Z}Q6J5 U BT*U߻woSX?~ݻw>wvH'v&''r\*tοs5۠`tt7n<]~,ϧۛzZ.nע?hkkkQZm91;bqV}@p6~ |Xloq (-R={dMMB{Oܜl%lG)-(-uqO^ZL\ +W% zzz:dT*U]SWQ^g~~^+͂*PR*PR*PR*PR*Pr-sǮpvS=v- k|hM@wYUNصıAS%3\ `ܶ]vp*ATqul`;é6\~]Qo\[}c s. 7l s `ek@;K"uq2  E޳]H+=\a'@ ؇õ:j ']~W5 êy'\R\Aqðy^[/oA 1p㤝Ĥu8 `r=o$S~  Xb)V|'ڀn7F+ K=D­@4~ha\$zG $ZTZns= 9`@h۬)mycIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start/9.png000066400000000000000000000031171473342170300242010ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxk9'MZgMq{luw6^ .x I(^e F2\ܲ6t99.c4>/GOO H$I$I$I$I$I$I$I$I$I$I$I$ !&2pxh˺m(ւ>ά(.phGoI@8?8K"TjTgV*r-˲πoy\("w% @Y+YƁ#s}`(!#ʲlgY6)==wo=q% @Y,-`"xREEQI2@,;Y-RnLcv̗%`Zr-y< +75ܵ @| 7p(o'A9U *6+έ$I$I$I$I$lmIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/11.png000066400000000000000000000006211473342170300251200ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx1J@Gold,7 AbidxK$I$I$I$Iʔ/"b;"J)]vVJy~ yN{oL1esݰƼO6xiDT Lpe0ɀIL2` d$&0ɀIL2` d$&MrѰ-f]3pް^{8f[1?$I$I$I$IuX|IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/12.png000066400000000000000000000006011473342170300251170ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx1.EQFu0  2R11勖1TjP<[!9^ۜܝ\$I$I$I$I6ҪN}`W7緀`xfْ]=UuVUϟ e; 󇝳w 3s{whJ 0dC 0dC 0dC 0dC 9{%1RXW0?ߚ(I$I$I$I$koD/IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/13.png000066400000000000000000000007031473342170300251230ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzEIDATxٱ.Cq4BagLFI v`g-1`1xY"H*mޞ[W7'vA$I$I$I$IT4񣥔MXMDE MXN _΀]7""p*J)M!I$I$I$I49 5‚'IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/14.png000066400000000000000000000007341473342170300251300ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz^IDATxO.CQ -؅=;&$%z'iܓ/ I$I$I$IW K) LQDt*i2΁xu_G>z#aS.8"[eF1`8nj4 r6Sa쐳8q d$&0ɀIL2` d$&0ɀIL2` d$&0~~RӜ4y80Omե2 Nq"œom86a&/@+"fWC'"u'I$I$I$Ij4>IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/15.png000066400000000000000000000010021473342170300251160ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxڽJAsMTR;_VT_GNIPTFPq3w3Y+gavh}{ 噻6J^$m~tbfÌeI{6Tˣ 3;o`2SB#ZTajw%>6¢]w߉,2Ej}!1k]RvbV{e%f{u.)VാVrv ^ 6:hSo^@6'Q`Q`Q`Q`Q`,ߺp^bًۚ遤ț1swYJ?§=I:6K;dfIg?L k',Irs-}U,@w_Qu@i^ҽn F.nEIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/16.png000066400000000000000000000007541473342170300251340ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjznIDATx;KA@3j(E;N,|3IVsq0|j6wf H$I$I$Iҿj,v)Ŷ12 |)n۩0ˍ$/Nc8M)咹m-CsvV9/k.,V'\U27j=^i[,Z͟\2` d 0ȀA 2` d 0ȀA 2` d  s'0ȀA 6T8X8*G,sgd7s`plA*4l3̽}X$I$I$IfKzώI4V$DDv1c*3s"ncDLO%KlXP*⦁̐tcmq2taUF-sǙ~khK!&jK@@S_~kp_ M4D@M4D@M4D@M4D@M4cϲ}Aَ-Xcw-Z[jP /ANV=璮 s99a~BaV\%IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/18.png000066400000000000000000000002561473342170300251330ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz0IDATx1 Om dP)LIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/2.png000066400000000000000000000011371473342170300250430ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxR0wmX#TZlM8NGmf """""""""""""R4j,dQ~p@cf1~Ntww~<美\1ݤݽ#\Ϣ"2M+rhv+}2~='\,OFx1d}2*Omi=1Eɨ ܳ*On9ӳ<*0T|K=pyK@Gu;4O6j&o7oSخۃ㽻cfǥ/ *Gp_} q6X3~SCs)l+Br2&#pBܛW I@g)t)ܘY m;t-5|Of渘%S?Y9 X3`^}.sݗlxÄ0cs`ff\דm?s̀vwh=Ukv, tbf x= 1;Y3_g)i;`MaݭlSIr+E`uK:\sk43&:D&=`}@8l2K#K/+>tB`TEmAz6R51 F1 [QV)H>|1㸇"IZKԻ&hkR$@3[ju(oR#4|=~i3WG>S`]8zפXf>tkRp O5 -2IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/4.png000066400000000000000000000015161473342170300250460ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxo AUOE!^z!4"4Zϴġ,{{wI䗙]033333333333333333߄ h,Kz$ͦ@BL9 `nu 07\*]>nKQi!abHHFQy70F 1qT,c1Đ^6,l$S8 $XSu,%53FiLE|kCc)ÃtIXb\{(i!Q?~K 0&("Nv%=am 1p Q8N^K[}`pG5{Vk~tnaI7! -F^U J}yo"kNz8K\1oQNЦ&y7*8ʅfKܒlG܇M%ﺓ%$?Hi=OYiem%wT2!{)pͫ4K}ݘdJIkZlOU/;@ET#XE_SXHĿBQEPTHHAQc\;3Iܽ3{w@DDDDDDDDDDDDDDDD2{ľžl0 <0^`p̾VJqrm%`-qC [<@GkQs t@/t.S_҂j, bm@|u]@|Jfwr'U-fm4p=o!3dmij $ ٻ$/-K tz"$0U-g5 csiݗSh`Ƞy%˒kݽ80wD}}!{+p&%喙Mix1ori/ )Gx'5G wU)i7gټMpnxORǁ9cf鯪 tNX\+_I}7ʌ\^_@wo"|HPjFQ%"O"J>`YZp-?N<_H'؜3`fK]J+1 ,,HM)*$w9ci(iyWV1*c|emVː;EƁ)םFSƣUFp>5t.D`衙]FsQ5K%4e=T?@w 'f8DDDDDDDDDDDDDDDDDk'DIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/7.png000066400000000000000000000012571473342170300250530ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz1IDATx1kQF ؊X"6#XX#X؈i5BE;A!nEv!̾ٝy%;3Y0333333333333333c*j70!,p DĨE9. yDXjǕMI;ǒN6 $=;R3'N3G~l7lgn-V(i WCُͧz5`cxP B:qvl?s 몥H陼-`-qZ7w|9 й905놺T_"wS-@IUo P K_ uL/?Q`F87""2cO m.,ۋn-= \z`n|KT@J:E 2}`07]nO/fgәj ^}RzZs|d <DğGp'"/.l aCzIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/8.png000066400000000000000000000010461473342170300250500ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx;JAGOFHLsxs=_"N2[C1E])uyrk$JN)ݎ'ɽL)]Lʞh>ݱ#wht5Gf8i@33s% &QԸlF] bZZ[_2s~Z \bQ ji.aA--5𳠖c b%[h{^Bpd W5'1E0RFmI U5RJ90H5@ ,پRe3p5\fV+*_)f:Y}Rw ,ymNԯ-Xu+9e^ZǠ7綳>}ciK @|BnIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/start_new/9.png000066400000000000000000000005561473342170300250560ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx1jA቞ bcBA+}r$$G Z ;$c1XfW|_l3)I$I$I$I$I` ڷTG彽,]_wy-M)=gflZ d 0ȀA 2` d 0ȀA j@jpV+>3;7٦-_<*˂G 孽 7"I$I$I$I$ݵ?h劘A IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/000077500000000000000000000000001473342170300231515ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/icons/stop/1.png000066400000000000000000000003701473342170300240170ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzzIDATx1 Om x0eIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/10.png000066400000000000000000000035041473342170300241010ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxoSW񯝷Z$LH ЎoRZE# lX+X@,AH$B*DEqRb^Kǩc,h8=$'_\[ """""""""""""""""""""""""""""""""""""""""""""""%l<ϋ@݉l x <_@ZljHn!MHs!wqcΨ.\&m΅waߝ vaߝ nWwB)@JU PRbX*(V)@JUͶp#G̉'^_XX(MLL{XT `---SNY.qg{ff`{>):ۛݻ=ǚ688ؖL&;GGG3###uxbXgs~ԧקa2L؞%lNö .re۳ElD"ќL&vܙ8p@˗~RR^@6X,־Gv۳E MMMmƘĞ={:a'OHQKKKرcz ` ~}^W:.G>/MNNfϟ? p7W^K zxe p>͛7d2nülB<>>>;66MR|>u(IЏnݚ[=+: k׮e\r7J嗖ߛ#g|6թ bXT*?jSq`|<55uСC}jT*K.et5\.WO>rr:^^ԩ pw)JjXTx WI6> V)@JU PRbX*(V>ξvߝ m΅aߝ a3Džoaߝ ~ m""ͅA."`n)DH."`M pgD/#YvyNX#aFw&VcLHy";(8gh=F}ߟ=p*@ 1Lxt1l  1f{#r[AP0#3 *_~_Qmlc4MvE ]V30gQ+Hesfy%D|gs\@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDĖ! =u5P (c`ȇaXZU4m{8Pz0mU 0 ̇aXWkփ;im cLׁ;6*6M ^ L~hkV[ * ðb-j#v0}^x]oׁ}5"C| 'cFAivm8;SH]M-Z8tqZP f(;ϩ7(V)b(V)b(V)b(V)b(V)b(V9u0^opp0rjE|x뭷OnݺU]cS7ӖL&Dhkkw :tO?l6%)b|XX^^X^8@ t{D@,m]D"o###zMZ#{朘\UjJc|eff&?5䗶p +W2SSS/i>W_=^YYu@jfKw^pa?zM( R**Q&''?G~FSX.:u_~---F-R)W>쳻O~x͵Rdn ֶIeTܸqc?{|Qwr jbZVkZJRKkϞ=p\.MMIZڵkKLJ2 .\CIۤn\.s̙ž\~jjjyrr245|իWW=cee絷@ ,..lnJ@J@J@J@J_β] SE9u] S*;BdTELZ(; ٳsJ8*C[H (?a 3 klǡЙGDQT}tۮ, p&"۵ę 8.mU%ۅ<F@ BiE`3;Ź{KfY;wkXL3 iǶ y!(lKjV?acD @EznLecw% elDQ} (IL;Z[ a.ZgSN~ < `'" O:TmG$%0ڃX<ngaYj 0AtuESE&0l @mu K;׀i37lUSp] LvaΎ_l$vZgT\fW0'Ei a6ћ:O8M̖T (4h'"""""""""""""""""""""""""""""""""""""""""v IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/12.png000066400000000000000000000050641473342170300241060ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxoW;y1Д(ifJ,U{SwK*$ԬBm YLwgf-t1H Ǟw """"""""""""""""""""""""""""""""""qnp]}D@y^d=/m/X=|=@zN i] j@¶ `=p]1 `HaO_0Å.( !ڠG7寘 [IxX"f y9z xr[^pu0IO LyV뫶{ &- J۞5X_|ļ& =`c񡒋=izV .%v4DZT&0<_L ,u`Y鄋}CVj68A qF1oRJlE ̵88:|ă3689@J@J@J@J@J@Jpk:ydtDOT nݺUyfy}}EmPH$?~… G'''J͛.7;;_ZZEwjw `T㏇N:5J;055_xqΝ;Ba%Y9dRYbz7,qH~駙'N<ƞx|-//WJRp~?ՕOT*8tPjbbw0}\.kOh-x"qccct:199f;%-P^ ahhٳGGGGGG;˾j5%9H$[owر{o/X-JR9YsgI&t:y̙7ûwVj9q%pddܹs/_޺zj> z/uȑ-,,֬n}[ہ6tEQVk/_^7T?)M$Ϯ`qqq?0??_pr&jQ=jhii)f+Wn߾] %)OEJ%Z^^.[9zhWÇˋ]f;wm)Mj(zzzV֭[曭RPPigt\!Nr\V->V0 ZO|oom_Xp3BĞ(4@"lAXkO.V g[[qkGr;"f#"XF"){W= 9ȿ0sBp5v>1o| f{ YmZ>Ltmk =ϳ~OC}?d2%Lo؋ aVvJ=:pXl^S40B*5` y8ޜ'P8F`{W˘2>tö.?0Uqvˋ~d1=bE06A m:0Ҙ^ 0] 3m1E柀l/m.^=D f~j|9U ]Q܃6_C,Rr&}0Aldi<A,n 3 w`yV̍/ޭTPPibi݄3?IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/13.png000066400000000000000000000055331473342170300241100ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxo&mvuWZc0-\M4+n?r7.&Jۤk* ")w>Oz,v<DDDDDDDDDDDDDDDDDDDDDDDDDDDD/>n l9 yH݂:B!@]8u- iLhM6Ine!LrsƗvIpUL܅/rSmώmW8%- `7x)`NgLI b.lS %E2l 0yA@#D\\u'F119+a.cS4x<6JPhu0-_2٘.'Q`a^?iz9>0+Q<ĴR]af}O٘ ;SqtHDiΗdf<8#kctLBJuqp~ψ^wPPuW_}rd =z\]]---jZm矏^z .|N:5|Z>+A:XE&F.^8N-9{de}}}X,vT?P(8p.ijm\.g_reҥK)QTK;mfZJyj܉*k0IeYV&ԩSo&_+KKKb(,+˥ȱcRCsssV(Z(mT/H;w.{k*N֒;(=`۶5==z[ZZz߿|IݎK# Й3gٳgGn޼Y[YY=x𠭙)=RgΜ9qDC7olܿokko6Z~a^cY_=6??AmYtښ^XXȝ?~<4 AF |mی|l^~/xضmeHjbb"=66I;S}vsgg'o%J"5eaY\˲fsSSSt:mG=z eՌˉ#_73j_[[#]@-aH}Y*iaTjݻwO?: `|FT*ܹS_*?c>?ς ~byccU*|=o(}~X*ZwܩnݺU~\.Ap0 `AӧO|?oܸ|őp#YZY__k׮U*P{ht677ׯ_=xUwP&íf>߸qRql*|VVWW+fG|eYضjovM& CZV>Am[_j|>_~zeyyV(ZREf?ۭbؚ,z)Jeuu[qSߠnsƧ~Z|ٳZ}I[3PbyyÖ/zy^~T |WzD|j>~y^n{{{ak hx}R%V JX)+PbJ@(R%V JX)+PbDcT A`1'$!\6脤'|FE# X"ؗT8$ 0'C(%T¾zDTo 0Ţa`P*&DT0U]煎bk7H<6 ¶y}YwBv?h]>H<F(XÌ+hFD>fⱃix8b>0ZqR@5`,qrt0{k`fY1AI"0DTY AtIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/14.png000066400000000000000000000060071473342170300241060ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxo8ӐM!n XfY!! hy (/bv:y8i{]6ϜD,Ƨy @DDDDDDDDDDDDDDDDDDDDDt\iooi~%nIb>_5*]T6T 8ts"pE4 2Y~-z)b D,uۥWW1ċW̎0*y>Q+c 28NM!*d*D%܅뺡u=yF!x@m9"j`@uݤ0y,)wT @= QǩCTo _/@6m'絻u<ۭx b1 SHlx`;eߴ[]c@"O fo*8U1eVdߓވ ;mێ<ϋdLj)&c!R+)mہmv J0Jwb\;x' m=+ ʪ&Ķ q' byY<1騂!za/^zO>F!چd܃8{ٲm۳m[+sF\j>>n^rew߭DQ퓖#^MPT ˃iB4Zbhh8s966fZ?5??Y__}X_xiԪժVT˲/{oo/|=)*kߠij>9998NeddDJ:_m삻ߪiZ^7acxxب|5 Δ_t]lۮ|իWknfpjh ׮]LOO޼y3X^^looh4zk^cccf^ק˝ϟ?O||ZYeLMM.\NOO333A>PMӴO]t؞iͅig@i4MeYFV3Ν;W5GGG/V;vቮ da``@tTowioll0iCCCիW-۶ͷ~[궩:t]1|EՇ8$R0MKM45qjΉ@w8qYJkee#^]iBIǙIٌfff#˲, w}wW_kkkvvAYٌ~\keeѣ/at:iӧO;۷offfF.|J~OgϞ4 `ɒ$ɂ Hr]7K0%ɲ,}?؈30/ ponn]մVG>9-f3JVWW#Mj2SߖIlrV2&@R$@R$@R$@R$@R$@R$@R$d0//R`Q ϶fA|]kOB|b!`idT>hE<*;)"_B{42*_ cG1zc}H(դLBuݢ "xPT_<ضm]p p]R_\^ĸ- QK'+1lx"t<6 RJ̶ "U *&`纮<@6!a*w<؂BZq Ig\q48 < GS[z2=!>] Bx:݂Xh\w #=Pj8"CrqīX驶z->@u;bH Zn ljV/ػ +B/*`|H 2&""""""""""""""""""""""? Xo }-NIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/15.png000066400000000000000000000063431473342170300241120ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz eIDATxOVoI EL^_4ܻiҴNF&%L !ryZphVñ^!^..&cC{XpP Y] cC&rr1qCBVXhn*Jh4a| L8MC+r!z${ 8ٸtBIU@4UI,o*cӥpY !gAIVho 9-KKJ*UG,Xe- l샘T* 2|3c@n"Ùq*DB"ddqșqrwMqAeVl&^c Lx-9&(9])d \؅8F孶 TT@'!B?5t9Dp.,JJAq _ul2r/ Տ=K=٘O]p6E@@0R ْmkT.,.1_$w H+>)U T1*RR@JHb)U T1*RR@JHb)U syGRQ8͛7eY榷 ʹb(۷ok_~e/{nq޹sǙt~w0t:<&1 ?RWTt'w:4MyW_by\.kG}߼yS=>>:v |IQ^/EA.:77EUUUh0qqX,jթVnVfnbP@%+a@U>?JnvmCH).8pyy yWEQ(R(yݻzrr q@vIB<LQeT*irY+˚aƆ+(zY ⅰ+Ç?X|>h˹i8:: | I4 5ϫ7n˗/gϞ'''g& b~~ޘ[niA`gg}w0 u]T*g}VXZZ2םgϞ?S۶ `TUo\TbNMM333eYwppZ-EQi[n~iammѣ?V0 C){򓓓ڃ񇻺j5O<(0 Cgff`qq)Jꪳfdp5UU166.--n޼/,,z?v2W !OQUiY޽{䦦2c0( t]# ܜ'JR&E&#y}}Z:f3o8A(X}mV+X__wVWWmFBq=ŋG+++Yf86oz{{{kossNOO dd}t]宬~{kks'!Bl;;;/𶶶uݬG `„V?::򷷷5_埞f0aBj5뮬% `ͦZj][[swww}>a `LBضmQ՜j|7Mvvboo{IouuySEa;p@lyt:lZ]__wϑuMT o(c`ݶ!Y ,k'0i\+,A5)Av:d9Y9^9^ (B7( m 42|QU*b\IZ~kԷ,kIR4a5 i a1x~RJT<Ƞfz.e2aH,@@:2lj楼i*.j'ZF@f#""""""""""""""""uK\%@IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/16.png000066400000000000000000000065631473342170300241170ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxSFǿ+رvIzڊNy1әvt;}KJ9PÂP\>GV[Բe 3cBD{jAAAAqaI Dp:H@zL;+O$YzEa<=;!H`v  nID dE#'T"$!D!D!D!D!D!D!D!D!D!D!D!D!D!D!D!D!D!DNCd2R* SJ}suvv|O4$`b?~lwη~B^uQՔR?41LNNZ7dfgg)%.//UTbSSSփxZhv;Z>۶?8l(J533|Ғjl}nJņ~ ͝1l6/GmYcFN8rcf}l6'4$zV*ZL&FFF8̲d2X,1u]磏>}VKq!e_L$`R+yc,}'N>g=WWWّI Э4Z.VXUT,۶YT/^'''D,BXfggԔ{aa?/// { 8+ ,ɰl6* j6JHH0=剉 \.[Ǐ/ҙ${ cĶmضhykkkn+yҧzc @>g|ޞgggT*z5...T$ c B}'O8kkkbyyWUyxx($aavTJ߿U*)j4!m,>s쯾Jnoo9eeETU*fU(P,q+>`|{{{(U1H&c \=|К>|. ӧ(U]dZ`6޵aPl6&'':zPC0#LLLiD)!DbKNOOK]/ RU@)%|WVK숥%ww7u IPJZ&*믿ǩ$0gggVɣ#KWWWΎL-$B=snn_]]zv[)9p:88[[[Z5)o%Hxp@(9Wz]E~Z^ހsj֖iM/ιt:8==bqq_ZZ{$`4 utt$CYI@VK~Z`\?{L4 t> +ou<7⥹w-$`[...dV/^?[[[DC]YscYV?ܙyeos )[i(\ &VVVtoj5Mr}꯬ kĿիWr}}r9駟:1p< _ON@H)q||VNNNI/_j*Ajo]u\x8I۶f199i}j6*n v;py %`!&dTs$;hZhZsC uwa7 HHHHHHHHHHHHHHHHH]E@@v{`"O[UuD ( (B!^$8bPE=0Z$']Aޚ#V H\ƌ L@4HW@̗%*&ކntGp]wXPFӴ\xMQEAmPh@'`DPBm\uHt#k%NQ4$mC 3Ezr@Om-xz8L Z3y^Y}g4.VLmCwx^Bu]W3wN#     􁔱vFIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/17.png000066400000000000000000000065141473342170300241140ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATx[SF]`ph B=NL?wiLKpH~67јq-Y?}=I""L~y*2'Nn#D$Wx nq(?/\3d` GP:8߉$l_hVUAٚ^ZOoV`ЅA t[%} -(\>-ۄ: ] 4TJK׈DT ]h/t), 7B,仙-#TO*]/ ?$]N=0ۇ6b/m~$#J(]t8A"JN].;'4T$a/ {:zAv5 ;ci7=EVn0Xv]nJN@owl`@ϢT9QtZc'C%q>]z \#D$]jwm6L_@#zkIdh'TTy喴S]d*tSͦ6i-Kpn.}X[.\*тktvН@zvCv:Zzv].tkYSEDyĊD"$ey<11!߿O>䯾J޹s+ ϵZM(X RmÇ333RJIB\_AhTLNN/RLOOX,&jJ%Cg@6C!"P$!jx3۶m۔H$H&"+)%j5U.Rt@d[;$|sssob(* l HD hYMMMIL&,l\.GGGT.u]x ,ˢD"A2H'OeX,-vX= ۶E4D"!&''E,x\ضr,7'`!Q~OO !HA###brrRܻwOΊq*TVR osBhTb1bb"ɨL&|pp@ah4*޽Kcccr~~^fYŢr=e8$H$"8I)(% q}x{{I/n޽{W$ kvv{%:== 5eMضM_sR)fCe""Tx}?SH)JOs`0~^Ce MOO˱1RRDZma |Jd۶fffxtt޻w8,ㆡ&D`=!jll‚5uC'] 4&hT$I155%hh<}U\6}zCqTB޽SkkkVWW)PAQJ뺴իWjccCy:>>B@aCV8|rr‡VWW g2v]7TJ|O]c#i =bǼ,/--/^bHr9i PJQVo?-//EU.,wICVa9~m8|pp/_~7ossuЮxLQRo֖Jjmm,j `莆8޳gkHDEp8NuΙLq튧˨Tt:~wVbAuHdf3[__WKKK*r&Q'''OVzR\(իW*8rbbB03r.S/_T:==4Z>'''3xnnNٶ-B@GGG|tt'''h8R>R8tvvFJ6PV9 !ćkE (p7!2Q 0 F(@@`Q 0 F(@@`Q 0 F`X4Φjz#~2К ?Z@ % -GP "":(zAˊz] @Aj4ݜf;!W xU/)z%P{t:I\@r4M@ݡFD|DW/F 2 #_VN@x: ҫiYA}NU*MD#C@Xѕt.ѥ4Dԯ o@| }lFC2x-/4~@2sh|1Ҿ}ߣIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/18.png000066400000000000000000000003701473342170300241070ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzzIDATx1 Om x0eIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/2.png000066400000000000000000000054241473342170300240250ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxKoLo'q4i BV\ Þ-,رdnT0 VJɉc /y!q34JU133!BnolN/ |8QE۶{x$蹼rǛL 0GG@@@{Z2N˷m; 0i^iO # FY$LPDRض0R' 8NWKöB>>bq"I4R@2>Za]0زDЁ‚Ҵ,+cI8m˂)W' d,#\>w\6J\_~]I]f{i<(\|9dRj{Mcwwt:un`YVf4Ǐ… |>fZ\\̬v|QigggT*e|fii\}B}&D\Y>{766LE>ܹsGzʕ+\.6pt:m,..fVWWs?Mf^ׯЭHJcʮ^f}3aFT޽{(ӎnmmeGjčonnjs<޸qc!.:qttԖH>j .F k j*Y[[RH{}BϟW )ϟ<882 YC www[Ϟ=;T*A"V*4?~<ϟd;khGt ~>}jFnjyOr#(<r],af*ͦ\ Aիn۝ef#j|B* iV?a{{{^V( 3gΜ1|<Ç/^6R׃imߍw/Jbry|Z:m&E9P@ HBR( Q $JD)(P@ HBR( Q $JD)(P@ HBR Zd"uiAR gWl:5H@#SSdZ$ZnK&J_E@=$G8NFA"N_ q't3D?4L68H'@R_ 8FA2>nR_F-Fi7іÐI11Triȼ#Aoz$q!07R:XqQpP͟e߲,Dke$KM FOOt,ˁeY] !%8j*aS0SBK8Na<",J饎$P.,JHH@KL0Jt]HFY4 u= @>9C6 TT ètn|. ]{#:(89NvSK_6ȟfU<_ qQ|xiW2a~u]S;ry ðuЭz3%Na_*1i8 Tt%ɦi=aʧ Sɤmf_>`2\BpB4˽ҞP7q{@]5)PD }®v@]UfW$JX6M{]Н8p΀% L&Kir_'vI "( p#ppХqhnpнvtk88f3 G*Lx9nAM/(` TQ83[9, 'p T?dOtg4SߏDu3k;D<6^?0н橼!Eܬ0RU1I0N@BX%t폰b C_HOV}Š9+^H#`Š9+*+ H|E$_Q(W@+ H|E$_Q(W@+ H|E$_B4iaa!Yo߾-?{'+Ff29ɄMlt #~m:%I@,/hMOOnL]zu< IeYo߾O[Fտa0?L&DΒ۷oO("B`( ʲ r*Rk۷;22*"a%HtZzeq|uf˲rJ￟c_F×.]~Y͛7Ho;*"̤~ᇮ4#ܹX,vjLi&MOO'3EQO?B&f[ !|dǥbիW\[niHDY Хi4 :WWWk׮Mt'HPݻw'4M;iz|sh<Xݚͮր(@333W^$ P߿7777<ǹ~$IbgqtTz۶?3s$J:/m۶WWW<`@ .N,]D8طT*Ս a`iL?T*˟,ˁq}wvvJfS!BݻxzϟQ}߽{W9Ơ6^ffYua۶S XrM>d2ƲoR   èkqq1!2Ӆee9puO<٫랃!r`ff㝏6qJR}QX Dpaa!2 h{U.Ϸx_NrDڵkj*jZ<ʅ %b,KKK^~ۅwqݗꫯ,3kDJ&9v"I?~jQQ= J&;#^rѳ= V<ș־Ukig`cS oFgB%ngj_Hppraշ䎎p(8`¹@.SJ`~ gQO;fQ Npݨ* `*jnK̭!wS\iR_l8Mlg@4*Qݪ(Rv?%w< g'd niV㜹_| ]{#C!B!B!r}U9IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/4.png000066400000000000000000000062651473342170300240330ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz 7IDATxOolBb@YqYu i:i:u[4M{lSM6uLR/*nY!!P $$$&q ;R6mNb>RTU")`B!B!B!B!u"@mF @$Ia\CTEQl  -phIT$IRNz"Eŋh6 G ZkXv.whᣉEA4 %˲!t4 <Ɇs[5@ ,¶,ˎ  (l( /^vZ?/ս%vˆcd-P_ZRBzj u^CY ~R0hYʀX>2`5H%  i H() aH() aH() aH() aH() aHw:piHTlnn*$m?z(kXo3333[Q '|E+4<@TRGGG~{srrܹsqZw͛ jᶏ?\$ 7555---oY3|w3~FFF޹s'dJvcccCH$fX _E0lrW !\D>ʊobbl8[`}>ott8egt^zB[[[Ֆ-o߾7rwy'/|K$ B!Ooƀ|G=/_hmm5řB$h?98۲Qsƍo`0h襋˩~aT*Uyrrl$9}rfUu /---- 'F.kpBX2 Kx}W}/^ wU/@a?z+F\1uO^yQYtbjZ>h4jhc?#i n~7|3p3FZ 3]HPotÇip prr2688kll4ӏѮ7 ׮];oe]\\Lr9O^ktRz'&&z;:: ,jizzzLYsbM׮]43EQ FW_}8CKKKy3q O f333`0ȍ@fvv6aUu#OpbbL,>Vaڽ{ u7n܈uvvF{wwwg822o`j(J{"^xbhxxѮ>}ڪڭ'FM띛۩s@~sׄ2'gɮ_]]]˲`z9>pz 3]PҥKǙZJ5??xԩ@SS]履~*677ZP(/̖m\=UUM=gL& wׯ_?a\=ZJ$﹍џWEzZFGG+ON3SSS˪X,˷nZbP=x >771rWƚ^dg o~v֭R\2\{n]cͬ-x"7==-߼y$EQ^h*ϟWm%+RԶ2J;wtSX dWANX__[^^ޑey+@qgg'O?I43.[[[vuuqh?޽rO `E.S󫫫'O?|05;;myb2փ﷽oooo@.H-TӧՕ˗/Ox5TU?Jt<MQr"($LP V+^X:9M6eFZoGIj1)9Vy(We[Ӄp<@UUցk4)wrj#:­^P@DsjŎV| ^SC('X#e#WeMu&\F{@;{T:D(teNhˉ j ˰.p93ˆ*'?9FX&̥"oº7/BHV[RҕSۉ_)šSۉ SrI!sj{z`]̭DlnRTknm%"@nJs+"zˤ`܊W>Js+"@I*VDt>"mWe,$$ II*HR1@T b$$ II*HR1@T b$$ II*HR1@*@KK/>ϛNt]7vp___B$qӉ @- 5VWW{nJ}}}Ӗ駟oܸq6 6A_С_0\~appb[[[ǃښ}>_x^OGGߣ1S\r%tuvv|:}濗={CCCC\.޽x7|>_q[DQcllq_}}=W32w…?'}^7GFQݻSG688zZ|N @0 w_uuu^IDկ ~'o<G?pƍ76>-@ pѨD^RP/R~"16 #6:::믿8{%>XZZzRT[n.dy,;g]%>4ɥBP .`0}/^xg722r!zG"BQ *[n] -UUU*###WrYi{h }kPrti]~add\'O,OMM2RQ6~Gmmm-ky;+/򝦦KR*7es;VwwwPd|4s$iZdvvBSJ&x!?($d2nQ/,"?|l|7o޼o|Ź|~TM333a650^r%pkMcccORTzu 0HLLL=Eꫯ<}ϕ9 h4X555ޣsZ|000ڪ_45~gxIf ptt?a H =^(v/nd\^^6bޥKFƽ{fNt]wttxYGܹsFY;W@*2?}Y HaoSSSN{־ٵNhT*e\\\왑H$r7If#lll<5͝ovz~~>jϨb63M*]ד;'FwMMOOfiw0"uba޽;t\L6@ `4O?NNNn$e`Ye~~>zΝP(r*vvv Q^=I$]ew" $ II*HR1@T b$$ II*HR1@T",;VDts+"st"VD|X}nE'`Tl[GVD/,s+jGȼiV^.I[[(h$Ϣ pe6`ͩiZes9țtlšK!iZ,xsyf̥ozu8 |릢(ZT\n5Mzs@(ڜX"_W/LH9>*\ \9rIՑ-RxYoc~.G9({^hؤLÊOQQ麞D@vrt"n ->-|NYsMGrTЀa @=~<_"tɅUU:җuwˮ|g ZގXu>C4I"Lj`m4'u5c @Ċ! UVz;ξj`m%a}R:} 6 !#EQ`5s3vW@کDDDDDDDDDDDDDDDDDDDDDDD$ :EQft]On\x3 NE)aP_/`9wEKYx'Gˆ&eV #,xz Br)nX}%GB`iXHUUuhDs^9Q#A!)g6 jrGH "!}&*<[x΅GH /**<{j\2!}`T IT IT IT IT IT IT IT IT IT ITS.l6[]]].%H$5777MYSSSO{^Wq8555>}]@ `8uꔯx].WE&hoelfq,,,nwٹs^?vXkMMf6u8EE?n?zh[IIɎha~_ 'N(~ϧ8Ί緝|Pte}kǏouݮʜ܌giii_s_ݯֺ7 J2]]]_|ű\avW_RU"`0 Ut;wf}+###Kɓkkkv}G=LRBo.p*|t S}}}ST*}٣^Qu}}}ʕ+w[C+F"*t7c~ﯶYMGGG4hm(L}G7Nt__gΜy÷o߾lCpoob~"<H$ҽwĶ.^ۅ Ƽ^o_#Gm'|a?b?F@YvG}v6ۛi? yggggvmw:W^tqQ(&O?4}Ty|[[oyԖo;PIOOd$1v^RtSP(hSi9K.83gojj$|d2{{vvS3r0::288x<D^:~ƍT$Nuuuꝶ5444><<`*2\2s!-i= ++++ɍm޽:??aO SD"OPyd*ht[o5{q۷sWR---o>Foo⢞{˗/m]x1`Ʀa5Mp˜"+4  ~~JR{zzMOOGDVhXlllT=?O/_~G,*xVWW`pn'cXTӴKoܸZ]]Mɮ/ s@`eqq1^UUeFF0i.84: !$HR1$HR1$HR1$HR1$HR1$HR1$HR `Pg;QtBLTWC#Df!}&* ڡgHP;;BL>`Vc/jhrB+'@=5m3`"`J`{3SJa #( #_@ mR&`0Bi?l2}$oì|bLܞYCQ07n^@u=( ^F q4Mr/)]ד,P'"wJ 躞ȄWf-E(wM2@.ho% #;|@t]_We1(9iZ^<41/2 5*VgZiysζ, 6p UY+ݭe75%h:p?q3)K֗ 4MIj y :\5-o':xoNú|2 k%kq`y "RUkߵ, 9r̼ XA44MsJ(j3bwIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/7.png000066400000000000000000000050421473342170300240260ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATxOkoKD}"$G&?"$AmM/$FmM/$BmM/$lf  FS h*s bIH@(D1$$Q bIH@(D1$$Q bITH?jhhԄ&''I;K `U{]m61"`0ݼǵm6 6M6M1MӞ ðS1443Kj,Ie-[;vOx<Dpe0u]q[]u㸎mv_cccD"?z(:6;jjj*۷fn޼}nxׯ_@ BE=Jn6lذj׮]/\>vu;vX(Jm,d@455-Z+ UBx<^wȑ?f2\]]]M4XjUbY>drib@ Up8 rx<df)+e۷o7 h4Z]___ B\.dr|2xb׷=!*D@ h۶f q~6׮]o?gl6}x՗6ԋ/s{0 Fh뺮a90LӴl۞sɶmmmmŭ1/_܄4Mklll4M3riY8N[^~[.~Qi͛7]ӯ^}YrŊGSH9wϥKe2X.,,+W~zH&X,:tD<n---oϝ;vdd5.u mmmT*e͜([---|~_GGGS^'I.́׀3ض&fW^}ovѧD"1xĉήX۷oZԛ ,8[Y*J\n)8t~gG_?ݻm3|E,x\ҳ}-[Nݻw'O:;;'.eYy8 !Q bIH@(D1$$Q bIH$X_Hlf }G;  Md|}wb}!Ey4.}3^_ ` *^_ ivB_^nBxVY+>#@M\O!x RR@x8#\x\~MCQ@=zK5Mfx@u[QP']i~p BxX.d/F@x@Z1ᒖW|x뮢(N /vn C hKRbx o;৑oڢTUQRki}ZzpDK@6tM|pU¸ :x놕uo@nJӴd8MU Q5,ƥ>:n8 x7d$lY L(T䂈hAJIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/8.png000066400000000000000000000043131473342170300240270ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzMIDATxOTgdPzѮXrRLݤF71ڋ޸ o0n7MI/fڃnDAgs^,ƀ3oϏ `xvmf'Zs%yDYy^%p8j*Hm=<0 d`9 oHx er HS?.gN e`q7։n9:r=M_("`}?kxqyZIzeg9vhr]Q$$9\`-zWhY-"99u șh9>Ul~V!uݾ B-sg]d ?7=r|p=8Fr<#8V\SX ''emԑu &SslB*6=&TMV*@I^jV\ckX p:5m~^f[O[ömz-5-=Zcjm PvYVmdYƶ([((F)@1JQ PRb((F)@1JQM]]]ř3g>inn8|~ӧge{=f)EN>}ѣe2*(Ç7Df#(% o Щpވ-Jpg:qGQEaaFQn7^رcoWVVpy\DQFQq .]}e%tqg ܥKz'lv~CDPK>rGo헟a) s/^R|KSK( ѹsgzzzaGkk뾕=lUq;1000P'&&^^p}bffO)ގU<_?zhٳܹL񽝶%bJYooŋ{zz^ahpQ%+d|mmmf8noozӥv%;SSSsnmPRb((F)@1JQ PRbl P*YVm Ϫ5- lVm)Ϫ5-!lVmbA&5l 0b{Hְ*@C;slbVX <5=&dmb]ߚcV.nH?ɚZ}_+,,9UqMceE?tɋ+ᏦYU bu^xVK|߷V?A?Uzn}ϛm yu#^H{B?m @x$0Lr^d 4 }<%k< ~S,se*]INRLε $A{0er2祀$Dž5cMi8:7wUů 61b͖̓nVDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDNٚh'IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop/9.png000066400000000000000000000035041473342170300240310ustar00rootroot00000000000000PNG  IHDRg- pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxoSW񯝷Z$LH ЎoRZE# lX+X@,AH$B*DEqRb^Kǩc,h8=$'_\[ """""""""""""""""""""""""""""""""""""""""""""""%l<ϋ@݉l x <_@ZljHn!MHs!wqcΨ.\&m΅waߝ vaߝ nWwB)@JU PRbX*(V)@JUͶp#G̉'^_XX(MLL{XT `---SNY.qg{ff`{>):ۛݻ=ǚ688ؖL&;GGG3###uxbXgs~ԧקa2L؞%lNö .re۳ElD"ќL&vܙ8p@˗~RR^@6X,־Gv۳E MMMmƘĞ={:a'OHQKKKرcz ` ~}^W:.G>/MNNfϟ? p7W^K zxe p>͛7d2nülB<>>>;66MR|>u(IЏnݚ[=+: k׮e\r7J嗖ߛ#g|6թ bXT*?jSq`|<55uСC}jT*K.et5\.WO>rr:^^ԩ pw)JjXTx WI6> V)@JU PRbX*(V>ξvߝ m΅aߝ a3Džoaߝ ~ m""ͅA."`n)DH."`M pgD/#YvyNX#aFw&VcLHy";(8gh=F}ߟ=p*@ 1Lxt1l  1f{#r[AP0#3 *_~vfwR$I$I$I$Ig %uG'Bt}kR`؋ΘKVt,,֢3geK/10= cXz5R؍^G ,ui/A@?и^Ji( W)YK ΫCMI)mEd}itGpʼIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/11.png000066400000000000000000000010531473342170300247500ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxٱa#IDY w1PNQ&^RŢ, X 瞜tq=>ݧNϯDDDDDDDDDDDDDDDDD?R-Qgu]]nzxczmUl8XYp^Vc~g.9u{uЯf}uz:fR/-Շo2px.*"zpl'pEsvڇW8ӾdOq4㫿/ @ےrZ{;{)Z[ uWrkAuHo~wZkߪcO1zpXi,:Ofq7 ZVoN=UwuE=VTDDDDDDDDDDDDDDDDDO?cHW(IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/12.png000066400000000000000000000011451473342170300247530ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxؿkQ{B@_AHmM,D&(DBBBm,(ERHaa!6Bⱘ5ɒݽaa73`ffffffffffffffff?IcKR$I$I$馤ٙz5AׁW);ȿ4cD(;L?M+pX"dw 0e3LՈ̬~RIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/14.png000066400000000000000000000012241473342170300247530ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxڿkqGBKqP, *BQ**?AA?[XtX褔.V<׃M,) C|<|ᄍ C%`9"~ed9z>84SIsO=।<#*pg.d9X%ep&xC}^$pM {% px&iZR_Ա0px"j0Թ(pOIc .%HTMdSe`)"~ ӤkILhZ`iIƀf%KZ^Fďl[P|&%-hڲnO\m.tUS/?҅.@o|\Uo&kvZ&0UԶw(fZR/`XI+_ oW3G&N\shb[;4`!"ҫ  W Jck)6on~(n#wA.M.%sb SkAq2,qD?X#یZ4=IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/16.png000066400000000000000000000012121473342170300247520ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz IDATx_OAw6)AE0Z/&EcΟy.t痓=lR.&0,r>$ Ps pCJ5Ǯ 8 nCHzAċ#84=S`cB T(0]=S`_.hJ:&PR7Rl>璦٦cTҙ׹i%*餔)D8fĢ3-GE΢9FhS/>c/)fH6EQRZKkY/E33-w3#ఏ_ϽR( ʬD {apBs!H|XuaՐ|{(?B ""mAj p4m7CM΁s/}! ۔܃K3 ]`qE) b{JvOI8N157}̬F˜IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/17.png000066400000000000000000000010321473342170300247530ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx0?0{-6Lb7=h@@DDDDDDDDDDDDBfv&`^!vIU4p_MǦ!;,2KQa&jf^1q%]R+VX$}'y[fv$锸|1~L+{TgT$? KfrN`"t>_$pX$RTTGi#b<&f8o gĉji+^8lF.j>eE\s"*#{i&T`),Hynb ̌+%pZ MXpu+K# YSDKp8΁=p%QIQ0U]N^R¹*C%M`nbhf {Gj]5v޹^|5i/Oq\+Nゥރz|جHX WXI׃k|[,sb/IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/3.png000066400000000000000000000013711473342170300246740ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz{IDATxAo@i MAm+G8!QT&F*i]=ﺛYZB!B!B!'-x~ \75 xiq +YlH#S퀺h>='x׭znud5pQR (,^=Ȝ\qH@13/}leǔ$n_ǁtV0]jmĴ$sģ2W7ziXiLm_,Xt2GdAZlP(`fww2sTd,<9wkfh9>ݗf?w`_"jG/~tu`0wV$`90}Pqy<!Ɓ=Fk$ϙ!rhg!={ie ?=CafwMbZk̓zvØݯkf*'TǠ=i, D'B!B!B!5 IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/4.png000066400000000000000000000017731473342170300247030ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)Azjz}IDATxoGo9B '!!<"!D;qNQ.9D!$<"< 2`CxÌxz3+>Nolmtw@!B!B!B!}U$GU`Vƙqpi e%.ʷ^gq 02n\G&I˼K ||o(ipعag=TS44 dy`_E;ΐ'D=tƪ44 @>V^a%P7T7fTؼy <%<0ǎxG&sr 4RMxFx<ʍc` ,gj3[r؛8>gfټ@(ib2h pbݗ$PESt0EG,}M$(yjn:QwSfsyeVq]>| _I)oʒs2֗Jl>\~Kd[VΓW:{J|Ѵ 'PN^nsZ4[4.%(_$`f .>lBG )Mw|,{V} 33r͚ƒ>%yVJ t5`biXΊZfv^䧀3ڭ(6v*WYm\3+{4vs8']컮2 ܉-p'3 ܢHRO\HNm>} Vn8LP %&aIHfю=B)+myKC綒w%Q$qeh_Ƀ!}(Wy4*܏߻}l;ˇB!B!B!B!V ݝVIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/5.png000066400000000000000000000014631473342170300247000ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxۋMaÐ&RKDp?︖K7b09]8&. Qr* c?{v{ͻzמMr[OZo VD FĂ*Mn`#:qF(%V>v  o~峒o $MyvCfY]XF!`EnS9It q:gU8 *6E|Z0Oax^*M_k#Y oV̎4XMkŭO^7<ے.+i}$G^:S4X`Xү{&I!+9h4Xu({oj{'k$c`Q)rp_ 5$`D,K+N3q ۹yVrh"F+֒KIQҲ8]a&z- DҔKhDxHju5 I)CYÛr;>_KHz ]N `xOrx&% CwC7r9?q \兤+'+]rڥnX|KIzYό&@Ic.7{_MK$"v;hnJz9%5,'9IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/6.png000066400000000000000000000015151473342170300246770ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATxۋMarCdDIJs.(RJdpJܠ$ P"")9JINcXkj{>'=ڵ[=zz^7juD@`,03hK?XLvIZ`D& $P_@qˀUIYfVJD)~t> ] \NKltP."A6KzӀ2%}hv!YuG%uDGu~} NI\ q"60^$Qj` 0B}48YDC$:~N%"b(d[2'$ݬcު岍|%L5*Ǹ"@m.p X̪Ю\H sN`R =QgrHGD`70m6pRһL-ɌzlrI$"Vz]~Lf}^n))%}8%9 Qv5r Zpv` pKRn7ƽu[{y^JWxUV-U;,NŔoT.UhvA҅<) |/sp8ZJJ(q [hu$'o~/jD/8Br=ϗ{.fffffffffffffffffff"Cm`XIE֑ L9NKPY[vNkF t~݁'>/%\ȩ @DGrn xC4ofe8\ׁg),px(iaHy^Su+6?o9?)i6QC`hcQ{-ݶP^NWw @D<&^Y}$u8)=$@y:=#pGғ*̨< UcND<q,p׿]E/EޝzdMI*&q{aEnaIuSas* SN$}/n`}peZR]P'U7H᭕Qȉx+q?"]H}e`ffffffffffffffff#/eIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/8.png000066400000000000000000000012231473342170300246750ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzIDATx=kQc|A,TlX("R~M!Bm+_@FVR "  ,J63>p~pa;sxw΀YH,iV,GҴu%ݓ4kbH:WRҹ|'l$HڙuȺR}qD|m  i8| xo}m *TMQlx: )vn`"+mG) i܎ \g ! xw  |b0ԕ#}EdڱxMp#SY ,U \S}=1'#͘T֖-A2OqH̏3LmYoupk I7D?t8;DK: `*i}IENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/stop_new/9.png000066400000000000000000000007301473342170300247000ustar00rootroot00000000000000PNG  IHDRPP pHYsO%$zTXtCreatorsLOJUpL+I-RpMKKM.)AzjzZIDATx1JAYD-l- h켂' i#ؤB@ بI>vfwR$I$I$I$Ig %uG'Bt}kR`؋ΘKVt,,֢3geK/10= cXz5R؍^G ,ui/A@?и^Ji( W)YK ΫCMI)mEd}itGpʼIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/success.svg000066400000000000000000000016401473342170300243560ustar00rootroot00000000000000 success Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/titlebar.png000077500000000000000000000027671473342170300245170ustar00rootroot00000000000000PNG  IHDR:gAMA a cHRMz&u0`:pQ<bKGD̿tIME 8orNTϢwIDATxnE $jTQ$z 8 qߦ^*ɎwgI[=3߸8vJ͞ƔIJƔ|>ɘ1x?)ۏ{^W|><\NWuk{|>s$IA4淎{|>u:|Xtyq|>3w$ItoXH>|~?͕l p.wo|>qk[+96wN|>6G|>dȫ<[yqǓ|>?pOZǵ֛Y{ |>>o|>ZuI$=I7T~RrO`|>_ѵٵL|>?/}6||>WT!H}Źv%.|>_cǍ|>K~$|> 61xw99c~Oj^|>?仌+ĥM|>>nkO}l|>zܸw<>|r7}C?v|>뵎|>/?UhM^y|> Z>[:zO|>/y]^R=Flx?|>~ɏ=պ|>KWS+ĵquk|>|1xZݍ͍+ |>]~7W_1uu|>O,>|;M[v֢ŵ|>Kx]kf|>W%/7mM>>|~_b$I(yvxN=|>_?n187|7|q~ɗ$Iҍ4Ci;>W|>$%_{[ w|>;S9 ?U|>$C>I~X?޺xrm=>|бXmct|>W%A }͙|>__|{|>̏ Nj=^/|86q%|> H$F:5%IN$v I$}9$II$Pá"I;I?S7gYc%tEXtdate:create2019-10-17T07:56:20+00:005_%tEXtdate:modify2019-10-17T07:56:20+00:00hpIENDB`deepin-movie-reborn-5.15.10/assets/resources/icons/volume_hover.svg000066400000000000000000000035171473342170300254250ustar00rootroot00000000000000 volume_hover Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/volume_low_hover.svg000077500000000000000000000024751473342170300263130ustar00rootroot00000000000000 volume_hover 1 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/volume_mid_hover.svg000077500000000000000000000030221473342170300262500ustar00rootroot00000000000000 volume_hover 2 Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/icons/warning.svg000066400000000000000000000065321473342170300243600ustar00rootroot00000000000000 deepin-cloudprint-config-helper Created with Sketch. deepin-movie-reborn-5.15.10/assets/resources/profiles/000077500000000000000000000000001473342170300226745ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/profiles/composited.profile000066400000000000000000000002521473342170300264230ustar00rootroot00000000000000#disabled temporary, slow for 4k videos #scale=spline36 #cscale=spline36 #dscale=mitchell #dither-depth=auto #correct-downscaling=yes #sigmoid-upscaling=yes #deband=yes deepin-movie-reborn-5.15.10/assets/resources/profiles/default.profile000066400000000000000000000000211473342170300256730ustar00rootroot00000000000000vo=opengl,xv,x11 deepin-movie-reborn-5.15.10/assets/resources/profiles/failsafe.profile000066400000000000000000000000241473342170300260240ustar00rootroot00000000000000vo=x11,xv hwdec=off deepin-movie-reborn-5.15.10/assets/resources/qss/000077500000000000000000000000001473342170300216575ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/qss/dark/000077500000000000000000000000001473342170300226005ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/qss/dark/DSettingsDialog.theme000066400000000000000000000060661473342170300266600ustar00rootroot00000000000000#DSettingsDialog{ qproperty-backgroundColor: white; qproperty-borderColor: rgba(0, 0, 0, 0.2); } #Navigation{ border: none; border-right: 1px solid rgba(0,0,0,0.1); } #NavigationBar{ border: none; } #ButtonGroupSingle { border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 4.0px; } #ButtonGroupBegin { border: 1px solid rgba(0, 0, 0, 0.08); border-top-left-radius: 4.0px; border-bottom-left-radius: 4.0px; } #ButtonGroupBegin:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #ButtonGroupMiddle { border-top: 1px solid rgba(0, 0, 0, 0.08); border-bottom: 1px solid rgba(0, 0, 0, 0.08); border-right: 1px solid rgba(0, 0, 0, 0.08); } #ButtonGroupMiddle:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #ButtonGroupEnd { border: 1px solid rgba(0, 0, 0, 0.08); border-left: none; border-top-right-radius: 4.0px; border-bottom-right-radius: 4.0px; } #ButtonGroupEnd:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #SettingsContentReset { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFFF, stop:1 #FBFBFB); border-color: rgba(0, 131, 255, 0.4); border-radius: 4; border-style: solid; border-width: 1; outline: none; padding: 3px 24px 4px 24px; color: #0699ff; font-size: 14px; } #SettingsContentReset:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8ccfff, stop:1 #4bb8ff); color: #FFFFFF; border-color: rgba(0, 117, 243, 0.2); } #SettingsContentReset:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #0b8cff, stop:1 #0aa1ff); color: #FFFFFF; border-color: rgba(29, 129, 255, 0.3); } Dtk--Widget--DWindowCloseButton { border-image: url(:/images/light/images/window_close_normal.svg); } Dtk--Widget--DWindowCloseButton:hover { border-image: url(:/images/light/images/window_close_hover.svg); } Dtk--Widget--DWindowCloseButton:pressed { border-image: url(:/images/light/images/window_close_press.svg); } Dtk--Widget--DLineEdit { color: black; border-radius: 3; background-color: rgba(255, 255, 255, 26);/*use as outside border*/ } Dtk--Widget--DLineEdit[alert="true"] QFrame#LineEditInsideFrame{ border-color: #FF8F00; } QFrame#LineEditInsideFrame {/*outside frame*/ background-color: rgba(255, 255, 255, 20%); border: 1px solid; border-radius: 3; border-color: rgba(0, 0, 0, 20%); } Dtk--Widget--DLineEdit #IconButton { border: 0px solid; border-left: 1px solid rgba(0, 0, 0, 20%); margin: 1px 2px 2px 0px; } Dtk--Widget--DLineEdit[alert="true"] #IconButton{ border-color: #FF8F00; } Dtk--Widget--DLineEdit #ClearButton { qproperty-normalPic: ":/images/light/images/clear_content_normal.svg"; qproperty-hoverPic: ":/images/light/images/clear_content_hover.svg"; qproperty-pressPic: "/images/light/images/clear_content_press.svg"; margin-right: 4px; } #AlertTooltip QLabel { color: #FF8F00; } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--MainWindow.theme000066400000000000000000000042461473342170300265430ustar00rootroot00000000000000dmr--MainWindow { background: transparent; border: 1px solid rgba(0, 0, 0, 100%); border-radius: 4px; } dmr--Titlebar { background: transparent; qproperty-borderBottom: rgba(0,0,0,100%); qproperty-borderShadowTop: rgba(255,255,255,5%); border-radius: 4px; } dmr--Titlebar[idle="true"] { qproperty-background: rgba(16,16,16,0.6); } dmr--Titlebar[idle="false"] { qproperty-background: rgba(16,16,16,0.8); } dmr--PlayerEngine, dmr--PlayerEngine * { background: transparent; } /* ---------- Mini Mode ----------------------------- */ Dtk--Widget--DImageButton#MiniPlayBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/dark/mini/play-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/dark/mini/play-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/dark/mini/play-press-mini.svg); } Dtk--Widget--DImageButton#MiniPauseBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/dark/mini/pause-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/dark/mini/pause-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/dark/mini/pause-press-mini.svg); } Dtk--Widget--DImageButton#MiniQuitMiniBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/dark/mini/restore-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/dark/mini/restore-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/dark/mini/restore-press-mini.svg); } Dtk--Widget--DImageButton#MiniCloseBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/dark/mini/close-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/mini/close-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/mini/close-press.svg); } Dtk--Widget--DImageButton#PlayState { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/dark/normal/play-big_normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/play-big_hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/play-big_press.svg); } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--MovieInfoDialog.theme000066400000000000000000000010351473342170300274730ustar00rootroot00000000000000dmr--MovieInfoDialog { qproperty-backgroundColor: white; qproperty-borderColor: rgba(0, 0, 0, 0.2); } #MovieInfoTitle { qproperty-alignment: AlignCenter; color: black; font-size: 12px; } #MovieInfoSplit { border-top: 1px solid rgba(0, 0, 0, 0.1); } #MovieInfoKey { border: 1px solid transparent; qproperty-alignment: AlignRight; font-size: 11px; color: #606060; } #MovieInfoValue { border: 1px solid transparent; qproperty-alignment: AlignLeft; font-size: 11px; color: #000000; } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--NotificationWidget.theme000066400000000000000000000004401473342170300302510ustar00rootroot00000000000000#NotificationFrame { background: transparent; /* background: rgba(23, 23, 23, 0.8); border-radius: 4px; border: 1px outset rgba(255, 255, 255, 0.1); background-clip: padding; margin: 0; */ } #NotificationFrame QLabel { font-size: 12px; color: #ffffff; } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--PlayItemWidget.theme000066400000000000000000000023311473342170300273500ustar00rootroot00000000000000*[PlayItemThumb="true"] { margin-bottom: 2px; } *[PlayItemThumb="true"][ItemKind="local"] { qproperty-bg: url(:/resources/icons/dark/normal/film-bg.svg); } *[PlayItemThumb="true"][ItemKind="dvd"] { qproperty-bg: url(:/resources/icons/dark/normal/dvd.svg); } *[PlayItemThumb="true"][ItemKind="network"] { qproperty-bg: url(:/resources/icons/dark/normal/url.svg); } /* state Playing */ *[PlayItemThumb="true"][ItemState="1"] *[Name="true"] { font-size: 12px; color: #01bdff; } *[PlayItemThumb="true"][ItemState="1"] *[Time="true"] { font-size: 10px; color: rgba(1, 189, 255, 0.6); } /* state Normal */ *[PlayItemThumb="true"][ItemState="0"] *[Name="true"] { font-size: 12px; color: #ffffff; } *[PlayItemThumb="true"][ItemState="0"] *[Time="true"] { font-size: 10px; color: rgba(255, 255, 255, 0.6); } /* state Invalid */ *[PlayItemThumb="true"][ItemState="2"] *[Name="true"] { font-size: 12px; color: rgba(255, 255, 255, 0.5); } *[PlayItemThumb="true"][ItemState="2"] *[Time="true"] { font-size: 10px; font-weight: 500; color: rgba(249, 112, 79, 0.6); } /* when hovered */ *[PlayItemThumb="true"][hovered="true"] { background-color: rgba(255, 255, 255, 0.1); } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--PlaylistWidget.theme000066400000000000000000000007711473342170300274330ustar00rootroot00000000000000dmr--PlaylistWidget { background-color: rgba(20, 20, 20, 0.80); selection-color: transparent; selection-background-color: transparent; border-left: 1px outset rgba(255, 255, 255, 0.04); background-clip: padding; } Dtk--Widget--DImageButton#CloseBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/close-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/close-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/close-press.svg); } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--SubtitleItemWidget.theme000066400000000000000000000003031473342170300302330ustar00rootroot00000000000000dmr--SubtitleItemWidget[current="false"] * { color: rgba(255, 255, 255, 0.6); font-size: 12px; } dmr--SubtitleItemWidget[current="true"] * { color: #ffffff; font-size: 12px; } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--SubtitlesView.theme000066400000000000000000000004401473342170300272700ustar00rootroot00000000000000dmr--SubtitlesView QListWidget { selection-color: transparent; selection-background-color: transparent; } dmr--SubtitlesView QListWidget::item:selected * { color: #ffffff; } dmr--SubtitlesView QListWidget::item { color: rgba(255, 255, 255, 0.6); font-size: 12px; } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--Tip.theme000066400000000000000000000003221473342170300252120ustar00rootroot00000000000000#Tip { qproperty-background: rgba(49,49,49, 100%); qproperty-borderColor: rgba(0,0,0,10%); qproperty-radius: 4.0; } #TipIcon{ } #TipText { font-size: 12px; color: rgba(255,255,255,70%); } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--ToolboxProxy.theme000066400000000000000000000155101473342170300271530ustar00rootroot00000000000000dmr--ToolboxProxy[idle="false"] * { background: transparent; background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.16666 transparent, stop:0.16667 rgba(16, 16, 16, 0.8), stop:1.00000 rgba(16, 16, 16, 0.8) ); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } dmr--ToolboxProxy[idle="true"] * { background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.16666 transparent, stop:0.16667 rgba(16, 16, 16, 0.6), stop:1.00000 rgba(16, 16, 16, 0.6) ); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } dmr--ToolboxProxy[idle="false"] Dtk--Widget--DImageButton, dmr--ToolboxProxy[idle="false"] QLabel { background: transparent; } dmr--ToolboxProxy[idle="true"] Dtk--Widget--DImageButton, dmr--ToolboxProxy[idle="true"] QLabel { background: transparent; } Dtk--Widget--DImageButton#ListBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/list-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/list-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/list-press.svg); } Dtk--Widget--DImageButton#SubtitleBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/Subtitle-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/Subtitle-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/Subtitle-press.svg); } Dtk--Widget--DImageButton#PrevBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/previous-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/previous-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/previous-press.svg); } Dtk--Widget--DImageButton#NextBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/next-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/next-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/next-press.svg); } Dtk--Widget--DImageButton#PlayBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/play-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/play-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/play-press.svg); } Dtk--Widget--DImageButton#PauseBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/pause-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/pause-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/pause-press.svg); } Dtk--Widget--DImageButton#FsBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/fullscreen-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/fullscreen-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/fullscreen-press.svg); } Dtk--Widget--DImageButton#UnfsBtn { qproperty-normalPic: url(:/resources/icons/dark/normal/exit-fullscreen-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/exit-fullscreen-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/exit-fullscreen-press.svg); } dmr--VolumeButton#VolHigh { qproperty-normalPic: url(:/resources/icons/dark/normal/audio-volume-high-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/audio-volume-high-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/audio-volume-high-press.svg); } dmr--VolumeButton#VolMid { qproperty-normalPic: url(:/resources/icons/dark/normal/audio-volume-medium-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/audio-volume-medium-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/audio-volume-medium-press.svg); } dmr--VolumeButton#VolLow { qproperty-normalPic: url(:/resources/icons/dark/normal/audio-volume-low-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/audio-volume-low-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/audio-volume-low-press.svg); } dmr--VolumeButton#VolOff { qproperty-normalPic: url(:/resources/icons/dark/normal/audio-volume-off-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/audio-volume-off-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/audio-volume-off-press.svg); } dmr--VolumeButton#VolMute { qproperty-normalPic: url(:/resources/icons/dark/normal/audio-volume-muted-blocked-panel-normal.svg); qproperty-hoverPic: url(:/resources/icons/dark/normal/audio-volume-muted-blocked-panel-hover.svg); qproperty-pressPic: url(:/resources/icons/dark/normal/audio-volume-muted-blocked-panel-press.svg); } #MovieProgress { background: transparent; } /* simulate dynamic expanding of tool proxy background */ /*#MovieProgress[Hover="true"]::groove:horizontal {*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 rgba(16, 16, 16, 0.8), stop:0.50000 rgba(16, 16, 16, 0.8),*/ /*stop:0.50001 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*position: absolute;*/ /*left: 0px; right: 0px;*/ /*}*/ #MovieProgress[Hover="false"]::groove:horizontal { background: transparent; position: absolute; left: 0px; right: 0px; } #MovieProgress::handle:horizontal { background:transparent; margin: 5px -5px; } /*#MovieProgress[Hover="true"]::add-page:horizontal {*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 rgba(0, 0, 0, 0.5), stop:0.37500 rgba(0, 0, 0, 0.5),*/ /*stop:0.37501 rgba(0, 0, 0, 0.03), stop:0.41666 rgba(0, 0, 0, 0.03),*/ /*stop:0.41667 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*}*/ /*#MovieProgress[Hover="true"]::sub-page:horizontal {*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 #2eacff, stop:0.58333 #2eacff,*/ /*stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*}*/ #MovieProgress[Hover="false"]::add-page:horizontal { background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.50000 transparent, stop:0.50001 rgba(0, 0, 0, 0.5), stop:0.54166 rgba(0, 0, 0, 0.5), stop:0.54167 rgba(0, 0, 0, 0.03), stop:0.58333 rgba(0, 0, 0, 0.03), stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0) ); } #MovieProgress[Hover="false"]::sub-page:horizontal { background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.50000 transparent, stop:0.50001 #2eacff, stop:0.58333 #2eacff, stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0) ); } deepin-movie-reborn-5.15.10/assets/resources/qss/dark/dmr--VolumeSlider.theme000066400000000000000000000000001473342170300270610ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/qss/light/000077500000000000000000000000001473342170300227665ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/resources/qss/light/DSettingsDialog.theme000066400000000000000000000060671473342170300270470ustar00rootroot00000000000000#DSettingsDialog{ qproperty-backgroundColor: white; qproperty-borderColor: rgba(0, 0, 0, 0.2); } #Navigation{ border: none; border-right: 1px solid rgba(0,0,0,0.1); } #NavigationBar{ border: none; } #ButtonGroupSingle { border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 4.0px; } #ButtonGroupBegin { border: 1px solid rgba(0, 0, 0, 0.08); border-top-left-radius: 4.0px; border-bottom-left-radius: 4.0px; } #ButtonGroupBegin:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #ButtonGroupMiddle { border-top: 1px solid rgba(0, 0, 0, 0.08); border-bottom: 1px solid rgba(0, 0, 0, 0.08); border-right: 1px solid rgba(0, 0, 0, 0.08); } #ButtonGroupMiddle:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #ButtonGroupEnd { border: 1px solid rgba(0, 0, 0, 0.08); border-left: none; border-top-right-radius: 4.0px; border-bottom-right-radius: 4.0px; } #ButtonGroupEnd:checked { background-color: #2ca7f8; border: solid 1px rgba(0, 90, 224, 0.22); } #SettingsContentReset { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFFF, stop:1 #FBFBFB); border-color: rgba(0, 131, 255, 0.4); border-radius: 4; border-style: solid; border-width: 1; outline: none; padding: 3px 24px 4px 24px; color: #0699ff; font-size: 14px; } #SettingsContentReset:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8ccfff, stop:1 #4bb8ff); color: #FFFFFF; border-color: rgba(0, 117, 243, 0.2); } #SettingsContentReset:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #0b8cff, stop:1 #0aa1ff); color: #FFFFFF; border-color: rgba(29, 129, 255, 0.3); } Dtk--Widget--DWindowCloseButton { border-image: url(:/images/light/images/window_close_normal.svg); } Dtk--Widget--DWindowCloseButton:hover { border-image: url(:/images/light/images/window_close_hover.svg); } Dtk--Widget--DWindowCloseButton:pressed { border-image: url(:/images/light/images/window_close_press.svg); } Dtk--Widget--DLineEdit { color: black; border-radius: 3; background-color: rgba(255, 255, 255, 26);/*use as outside border*/ } Dtk--Widget--DLineEdit[alert="true"] QFrame#LineEditInsideFrame{ border-color: #FF8F00; } QFrame#LineEditInsideFrame {/*outside frame*/ background-color: rgba(255, 255, 255, 20%); border: 1px solid; border-radius: 3; border-color: rgba(0, 0, 0, 20%); } Dtk--Widget--DLineEdit #IconButton { border: 0px solid; border-left: 1px solid rgba(0, 0, 0, 20%); margin: 1px 2px 2px 0px; } Dtk--Widget--DLineEdit[alert="true"] #IconButton{ border-color: #FF8F00; } Dtk--Widget--DLineEdit #ClearButton { qproperty-normalPic: ":/images/light/images/clear_content_normal.svg"; qproperty-hoverPic: ":/images/light/images/clear_content_hover.svg"; qproperty-pressPic: "/images/light/images/clear_content_press.svg"; margin-right: 4px; } #AlertTooltip QLabel { color: #FF8F00; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--MainWindow.theme000066400000000000000000000045141473342170300267270ustar00rootroot00000000000000 dmr--MainWindow { background: transparent; /* border: 1px solid rgba(0, 0, 0, 10%); border-radius: 4px; */ border: 1px solid rgba(0,0,0,0.10); box-shadow: 0 14px 30px 0 rgba(0,0,0,0.50); border-radius: 18px; border-radius: 18px; } dmr--Titlebar { background: transparent; qproperty-background: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0 rgba(255,255,255,100%), stop:1 rgba(248,248,248,100%) ); qproperty-borderBottom: rgba(0,0,0,10%); qproperty-borderShadowTop: rgba(255,255,255,5%); /*border-radius: 4px; */ } dmr--PlayerEngine, dmr--PlayerEngine * { background: transparent; } /* ---------- Mini Mode ----------------------------- */ Dtk--Widget--DImageButton#MiniPlayBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/light/mini/play-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/light/mini/play-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/light/mini/play-press-mini.svg); } Dtk--Widget--DImageButton#MiniPauseBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/light/mini/pause-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/light/mini/pause-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/light/mini/pause-press-mini.svg); } Dtk--Widget--DImageButton#MiniQuitMiniBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/light/mini/restore-normal-mini.svg); qproperty-hoverPic: url(:/resources/icons/light/mini/restore-hover-mini.svg); qproperty-pressPic: url(:/resources/icons/light/mini/restore-press-mini.svg); } Dtk--Widget--DImageButton#MiniCloseBtn { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/light/mini/close-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/mini/close-hover.svg); qproperty-pressPic: url(:/resources/icons/light/mini/close-press.svg); } Dtk--Widget--DImageButton#PlayState { background: transparent; border: none; qproperty-normalPic: url(:/resources/icons/light/normal/play-big_normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/play-big_hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/play-big_press.svg); } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--MovieInfoDialog.theme000066400000000000000000000010361473342170300276620ustar00rootroot00000000000000dmr--MovieInfoDialog { qproperty-backgroundColor: white; qproperty-borderColor: rgba(0, 0, 0, 0.2); } #MovieInfoTitle { qproperty-alignment: AlignCenter; color: black; font-size: 12px; } #MovieInfoSplit { border-top: 1px solid rgba(0, 0, 0, 0.1); } #MovieInfoKey { border: 1px solid transparent; qproperty-alignment: AlignRight; font-size: 11px; color: #606060; } #MovieInfoValue { border: 1px solid transparent; qproperty-alignment: AlignLeft; font-size: 11px; color: #000000; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--NotificationWidget.theme000066400000000000000000000005021473342170300304360ustar00rootroot00000000000000#NotificationFrame { background: transparent; /* border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; background-color: rgba(252, 252, 252, 0.8); */ } #NotificationFrame * { background: transparent; } #NotificationFrame QLabel { font-size: 12px; background: transparent; color: 0; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--PlayItemWidget.theme000066400000000000000000000023471473342170300275450ustar00rootroot00000000000000*[PlayItemThumb="true"] { margin-bottom: 2px; } *[PlayItemThumb="true"][ItemKind="local"] { qproperty-bg: url(:/resources/icons/light/normal/film-bg.svg); } *[PlayItemThumb="true"][ItemKind="dvd"] { qproperty-bg: url(:/resources/icons/light/normal/dvd.svg); } *[PlayItemThumb="true"][ItemKind="network"] { qproperty-bg: url(:/resources/icons/light/normal/url.svg); } /* state Playing */ *[PlayItemThumb="true"][ItemState="1"] *[Name="true"] { font-size: 12px; color: #2ca7f8; } *[PlayItemThumb="true"][ItemState="1"] *[Time="true"] { font-size: 10px; color: rgba(44, 167, 248, 0.6); } /* state Normal */ *[PlayItemThumb="true"][ItemState="0"] *[Name="true"] { font-size: 12px; color: #303030; } *[PlayItemThumb="true"][ItemState="0"] *[Time="true"] { font-size: 10px; color: rgba(48, 48, 48, 0.6); } /* state Invalid */ *[PlayItemThumb="true"][ItemState="2"] *[Name="true"] { font-size: 12px; color: #303030; color: rgba(48, 48, 48, 0.5); } *[PlayItemThumb="true"][ItemState="2"] *[Time="true"] { font-size: 10px; font-weight: 500; color: rgba(249, 112, 79, 0.8); } /* when hovered */ *[PlayItemThumb="true"][hovered="true"] { background-color: rgba(0, 0, 0, 0.1); } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--PlaylistWidget.theme000066400000000000000000000007701473342170300276200ustar00rootroot00000000000000dmr--PlaylistWidget { background-color: rgba(252, 252, 252, 0.80); selection-color: transparent; selection-background-color: transparent; border-left: 1px outset rgba(0, 0, 0, 0.1); background-clip: padding; } Dtk--Widget--DImageButton#CloseBtn { qproperty-normalPic: url(:/resources/icons/light/normal/close-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/close-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/close-press.svg); } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--SubtitleItemWidget.theme000066400000000000000000000003101473342170300304170ustar00rootroot00000000000000dmr--SubtitleItemWidget[current="false"] * { color: rgba(23, 23, 23, 0.6); font-size: 12px; } dmr--SubtitleItemWidget[current="true"] * { color: rgb(23, 23, 23); font-size: 12px; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--SubtitlesView.theme000066400000000000000000000004321473342170300274570ustar00rootroot00000000000000dmr--SubtitlesView QListWidget { selection-color: transparent; selection-background-color: transparent; } dmr--SubtitlesView QListWidget::item { color: rgba(23, 23, 23, 0.6); font-size: 12px; } dmr--SubtitlesView QListWidget::item:selected { color: #ffffff; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--Tip.theme000066400000000000000000000003061473342170300254020ustar00rootroot00000000000000#Tip { qproperty-background: rgba(255,255,255,100%); qproperty-borderColor: rgba(0,0,0,10%); qproperty-radius: 4.0px; } #TipIcon{ } #TipText { font-size: 12px; color: black; } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--ToolboxProxy.theme000066400000000000000000000147631473342170300273520ustar00rootroot00000000000000dmr--ToolboxProxy, dmr--ToolboxProxy * { background: transparent; background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.16666 transparent, stop:0.16667 rgba(252, 252, 252, 0.88), stop:1.00000 rgba(252, 252, 252, 0.88) ); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } QLabel, Dtk--Widget--DImageButton { background: transparent; } Dtk--Widget--DImageButton#ListBtn { qproperty-normalPic: url(:/resources/icons/light/normal/list-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/list-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/list-press.svg); } Dtk--Widget--DImageButton#SubtitleBtn { qproperty-normalPic: url(:/resources/icons/light/normal/Subtitle-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/Subtitle-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/Subtitle-press.svg); } Dtk--Widget--DImageButton#PrevBtn { qproperty-normalPic: url(:/resources/icons/light/normal/previous-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/previous-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/previous-press.svg); } Dtk--Widget--DImageButton#NextBtn { qproperty-normalPic: url(:/resources/icons/light/normal/next-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/next-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/next-press.svg); } Dtk--Widget--DImageButton#PlayBtn { qproperty-normalPic: url(:/resources/icons/light/normal/play-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/play-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/play-press.svg); } Dtk--Widget--DImageButton#PauseBtn { qproperty-normalPic: url(:/resources/icons/light/normal/pause-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/pause-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/pause-press.svg); } Dtk--Widget--DImageButton#FsBtn { qproperty-normalPic: url(:/resources/icons/light/normal/fullscreen-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/fullscreen-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/fullscreen-press.svg); } Dtk--Widget--DImageButton#UnfsBtn { qproperty-normalPic: url(:/resources/icons/light/normal/exit-fullscreen-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/exit-fullscreen-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/exit-fullscreen-press.svg); } dmr--VolumeButton#VolHigh { qproperty-normalPic: url(:/resources/icons/light/normal/audio-volume-high-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/audio-volume-high-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/audio-volume-high-press.svg); } dmr--VolumeButton#VolMid { qproperty-normalPic: url(:/resources/icons/light/normal/audio-volume-medium-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/audio-volume-medium-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/audio-volume-medium-press.svg); } dmr--VolumeButton#VolLow { qproperty-normalPic: url(:/resources/icons/light/normal/audio-volume-low-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/audio-volume-low-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/audio-volume-low-press.svg); } dmr--VolumeButton#VolOff { qproperty-normalPic: url(:/resources/icons/light/normal/audio-volume-off-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/audio-volume-off-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/audio-volume-off-press.svg); } dmr--VolumeButton#VolMute { qproperty-normalPic: url(:/resources/icons/light/normal/audio-volume-muted-blocked-panel-normal.svg); qproperty-hoverPic: url(:/resources/icons/light/normal/audio-volume-muted-blocked-panel-hover.svg); qproperty-pressPic: url(:/resources/icons/light/normal/audio-volume-muted-blocked-panel-press.svg); } #MovieProgress { background: transparent; } /* simulate dynamic expanding of tool proxy background */ /*#MovieProgress[Hover="true"]::groove:horizontal {*/ /*background: transparent;*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 rgba(252, 252, 252, 0.88), stop:0.50000 rgba(252, 252, 252, 0.88),*/ /*stop:0.50001 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*position: absolute;*/ /*left: 0px; right: 0px;*/ /*}*/ #MovieProgress[Hover="false"]::groove:horizontal { background: transparent; position: absolute; left: 0px; right: 0px; } #MovieProgress::handle:horizontal { background:transparent; margin: 5px -5px; } /*#MovieProgress[Hover="true"]::add-page:horizontal {*/ /*background: transparent;*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 rgba(0, 0, 0, 0.1), stop:0.37500 rgba(0, 0, 0, 0.1),*/ /*stop:0.37501 rgba(255, 255, 255, 0.08), stop:0.41666 rgba(255, 255, 255, 0.08),*/ /*stop:0.41667 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*}*/ /*#MovieProgress[Hover="true"]::sub-page:horizontal {*/ /*background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,*/ /*stop:0.00000 transparent, stop:0.33333 transparent,*/ /*stop:0.33334 #2eacff, stop:0.58333 #2eacff,*/ /*stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0)*/ /*);*/ /*}*/ #MovieProgress[Hover="false"]::add-page:horizontal { background: transparent; background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.50000 transparent, stop:0.50001 rgba(0, 0, 0, 0.1), stop:0.54166 rgba(0, 0, 0, 0.1), stop:0.54167 rgba(255, 255, 255, 0.08), stop:0.58333 rgba(255, 255, 255, 0.08), stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0) ); } #MovieProgress[Hover="false"]::sub-page:horizontal { background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0.00000 transparent, stop:0.50000 transparent, stop:0.50001 #2eacff, stop:0.58333 #2eacff, stop:0.58334 rgba(0, 0, 0, 0.0), stop:1 rgba(0, 0, 0, 0.0) ); } deepin-movie-reborn-5.15.10/assets/resources/qss/light/dmr--VolumeSlider.theme000066400000000000000000000000001473342170300272470ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/assets/theme.qrc000066400000000000000000000005011473342170300206440ustar00rootroot00000000000000 resources/qss/dark/DSettingsDialog.theme resources/qss/light/DSettingsDialog.theme deepin-movie-reborn-5.15.10/com.deepin.movie.service000066400000000000000000000000701473342170300222530ustar00rootroot00000000000000[D-BUS Service] Name=com.deepin.movie Exec=deepin-movie deepin-movie-reborn-5.15.10/config.h000066400000000000000000000005071473342170300171550ustar00rootroot00000000000000#ifndef __CONFIG_H__ #define __CONFIG_H__ /* configured by cmake, do not edit */ #define DMR_VERSION "0" #define VERSION "0" //#cmakedefine USE_DXCB 1 //#cmakedefine DMR_DEBUG /* only defined when build with flatpak */ //#cmakedefine DTK_DMAN_PORTAL #define RADIUS 8 #define RADIUS_MV 18 #endif /* __CONFIG_H__ */ deepin-movie-reborn-5.15.10/config.h.in000066400000000000000000000005311473342170300175570ustar00rootroot00000000000000#ifndef __CONFIG_H__ #define __CONFIG_H__ /* configured by cmake, do not edit */ #define DMR_VERSION "@PROJECT_VERSION@" #define VERSION "@VERSION@" #cmakedefine USE_DXCB 1 #cmakedefine DMR_DEBUG /* only defined when build with flatpak */ #cmakedefine DTK_DMAN_PORTAL #define RADIUS 8 #define RADIUS_MV 18 #endif /* __CONFIG_H__ */ deepin-movie-reborn-5.15.10/debian/000077500000000000000000000000001473342170300167575ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/debian/changelog000066400000000000000000000171141473342170300206350ustar00rootroot00000000000000deepin-movie-reborn (5.15.10) unstable; urgency=medium * Update version to 5.15.10 -- renbin Fri, 27 Dec 2024 11:08:37 +0800 deepin-movie-reborn (5.15.9) unstable; urgency=medium * chore: New version 5.15.9. -- xiepengfei Fri, 20 Dec 2024 14:06:12 +0800 deepin-movie-reborn (5.15.8) unstable; urgency=medium * Update version to 5.15.8 -- xiepengfei Sat, 14 Dec 2024 14:59:22 +0800 deepin-movie-reborn (5.15.7) unstable; urgency=medium * Update version to 5.15.7 -- renbin Mon, 09 Dec 2024 10:59:32 +0800 deepin-movie-reborn (5.15.6) unstable; urgency=medium * Update version to 5.15.6 -- renbin Sat, 30 Nov 2024 18:35:03 +0800 deepin-movie-reborn (5.15.5) unstable; urgency=medium * New version 5.15.5 -- xiepengfei Sat, 30 Nov 2024 13:17:47 +0800 deepin-movie-reborn (5.15.4) unstable; urgency=medium * remove kwayland-shell env -- Liu zheng Mon, 11 Nov 2024 10:53:33 +0800 deepin-movie-reborn (5.15.3) unstable; urgency=medium * New version 5.15.3 * Slimming down the linglong layer package. -- re2zero Fri, 27 Sep 2024 14:44:16 +0800 deepin-movie-reborn (5.15.2) unstable; urgency=medium * New version 5.15.2 * Adapt linglong. -- re2zero Fri, 13 Sep 2024 14:06:16 +0800 deepin-movie-reborn (5.15.1) unstable; urgency=medium * New version 5.15.1 -- xiepengfei Wed, 21 Aug 2024 14:52:33 +0800 deepin-movie-reborn (5.15.0) unstable; urgency=medium * New version 5.15.0 -- xiepengfei Thu, 15 Aug 2024 18:05:41 +0800 deepin-movie-reborn (5.10.51) unstable; urgency=medium * feat: Added new settings for movie -- xiepengfei Wed, 02 Jul 2024 15:48:47 +0800 deepin-movie-reborn (5.10.50) unstable; urgency=medium * fix: Volume greater than 100 cannot be exited.(Bug: 251965) -- xiepengfei Fri, 19 Apr 2024 15:41:33 +0800 deepin-movie-reborn (5.10.49) unstable; urgency=medium * fix: Minimode display error after showfullscreen().(Bug: 249413) -- renbin Tue, 16 Apr 2024 16:41:52 +0800 deepin-movie-reborn (5.10.48) unstable; urgency=medium * New version 5.10.48 * fix: yuv444p format uses software decoding (Bug: 247589) * fix: sw jmgpu uses hardware decoding (Bug: 240393) * fix: cropped rounded corners exist during full-screen playback (Bug: 247735) * fix: pause icon still displayed when minimized (Bug: 247791) * fix: HW device hardware decoding detection adjustment (Bug: 249087) * fix: Adjust device detection strategy (Bug: 249087) -- renbin Wed, 03 Apr 2024 14:56:28 +0800 deepin-movie-reborn (5.10.47) unstable; urgency=medium * New version 5.10.47 -- renbin Wed, 27 Mar 2024 15:51:03 +0800 deepin-movie-reborn (5.10.46) unstable; urgency=medium * New version 5.10.46 -- muyuankai Wed, 13 Mar 2024 14:53:21 +0800 deepin-movie-reborn (5.10.45) unstable; urgency=medium * New version 5.10.45 -- xiepengfei Mar, 01 Fri 2024 14:25:15 +0800 deepin-movie-reborn (5.10.44) unstable; urgency=medium * New version 5.10.44 * fix: Crash when switching mini mode on Wayland.(Bug: 241865) -- renbin Mon, 05 Feb 2024 13:50:00 +0800 deepin-movie-reborn (5.10.43) unstable; urgency=medium * New version 5.10.43 -- renbin Web, 01 Feb 2024 14:02:52 +0800 deepin-movie-reborn (5.10.42) unstable; urgency=medium * New version 5.10.42 * fix: Widget flickering when switching between maximized/full screen.(Bug: 239775) -- renbin Fri, 19 Jan 2024 11:13:02 +0800 deepin-movie-reborn (5.10.41) unstable; urgency=medium * New version 5.10.41 * fix: Playback HEVC black screen on some devices.(Bug: 234565) -- renbin Tue, 09 Jan 2024 21:48:27 +0800 deepin-movie-reborn (5.10.40) unstable; urgency=medium * NNew version 5.10.40. -- muyuankai Fri, 05 Jan 2024 10:07:56 +0800 deepin-movie-reborn (5.10.39) unstable; urgency=medium * NNew version 5.10.39. -- muyuankai Fri, 22 Dec 2023 10:39:00 +0800 deepin-movie-reborn (5.10.38) unstable; urgency=medium * NNew version 5.10.38. -- muyuankai Thu, 14 Dec 2023 13:31:33 +0800 deepin-movie-reborn (5.10.37) unstable; urgency=medium * NNew version 5.10.37. -- muyuankai Mon, 27 Nov 2023 10:17:45 +0800 deepin-movie-reborn (5.10.36) unstable; urgency=medium * New version 5.10.36. -- liuqingfu Fri, 03 Nov 2023 15:11:38 +0800 deepin-movie-reborn (5.10.35) unstable; urgency=medium * New version 5.10.35. -- xiepengfei Tues, 17 Oct 2023 10:15:17 +0800 deepin-movie-reborn (5.10.34) unstable; urgency=medium * New version 5.10.34. -- xiepengfei Fri, 13 Oct 2023 11:46:21 +0800 deepin-movie-reborn (5.10.33) unstable; urgency=medium * New version 5.10.33. -- xiepengfei Thu, 31 Aug 2023 16:15:39 +0800 deepin-movie-reborn (5.10.32) unstable; urgency=medium * New version 5.10.32. -- xiepengfei Fri, 04 Aug 2023 11:22:46 +0800 deepin-movie-reborn (5.10.31) unstable; urgency=medium * New version 5.10.31. -- xiepengfei Thu, 20 Jul 2023 10:10:21 +0800 deepin-movie-reborn (5.10.30) unstable; urgency=medium * New version 5.10.30. -- xiepengfei Web, 19 Jul 2023 11:01:13 +0800 deepin-movie-reborn (5.10.29) unstable; urgency=medium * New version 5.10.29. -- xiepengfei Web, 12 Jul 2023 14:20:56 +0800 deepin-movie-reborn (5.10.28) unstable; urgency=medium * New version 5.10.28. -- muyuankai Web, 07 Jun 2023 11:42:45 +0800 deepin-movie-reborn (5.10.27) unstable; urgency=medium * New version 5.10.27. -- muyuankai Mon, 08 May 2023 15:50:21 +0800 deepin-movie-reborn (5.10.26) unstable; urgency=medium * New version 5.10.26. -- xiepengfei Sun, 23 Apr 2023 16:20:15 +0800 deepin-movie-reborn (5.10.25) unstable; urgency=medium * New version 5.10.25. -- xiepengfei Wed, 12 Apr 2023 10:03:46 +0800 deepin-movie-reborn (5.10.24) unstable; urgency=medium * New version 5.10.24. -- xiepengfei Wed, 29 Mar 2023 14:05:32 +0800 deepin-movie-reborn (5.10.23) unstable; urgency=medium * New version 5.10.23. -- xiepengfei Thu, 23 Feb 2023 10:21:46 +0800 deepin-movie-reborn (5.10.22) unstable; urgency=medium * New version 5.10.22. -- xiepengfei Wed, 09 Feb 2023 09:18:46 +0800 deepin-movie-reborn (5.10.21) unstable; urgency=medium * New version 5.10.21. -- xiepengfei Mon, 09 Jan 2023 13:10:20 +0800 deepin-movie-reborn (5.10.19) unstable; urgency=medium * New version 5.10.19. -- xiepengfei Tue, 27 Dec 2022 16:49:20 +0800 deepin-movie-reborn (5.10.0) unstable; urgency=medium * New version 5.10.0. -- fengli Tue, 13 Jul 2022 10:08:00 +0800 deepin-movie-reborn (3.0.0-1) unstable; urgency=low * First release. -- Sian Cao Wed, 15 Mar 2017 16:40:00 +0800 deepin-movie-reborn-5.15.10/debian/compat000066400000000000000000000000021473342170300201550ustar00rootroot000000000000009 deepin-movie-reborn-5.15.10/debian/control000066400000000000000000000043651473342170300203720ustar00rootroot00000000000000Source: deepin-movie-reborn Section: libdevel Priority: extra Maintainer: Deepin Packages Builder Build-Depends: debhelper, cmake, pkg-config, qttools5-dev-tools, libqt5svg5-dev, qtmultimedia5-dev, qttools5-dev, libqt5x11extras5-dev, libdtkcore5-bin, libdtkwidget-dev, libqt5sql5-sqlite, libmpv-dev, libxcb1-dev, libxcb-util0-dev, libffmpegthumbnailer-dev, libxcb-shape0-dev,libxcb-ewmh-dev, xcb-proto, x11proto-record-dev, libxtst-dev, libavcodec-dev, libavformat-dev,libavutil-dev, libpulse-dev, libdvdnav-dev, libgsettings-qt-dev, libmpris-qt5-dev, libdbusextended-qt5-dev, libva-dev, libgstreamer-plugins-base1.0-dev, libgstreamer1.0-dev Standards-Version: 3.9.8 Homepage: https://www.deepin.org/ Package: deepin-movie Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, va-driver-all, libavcodec58(>= 7:4.0) | libavcodec60(>= 7:6.0), libavformat58(>= 7:4.1) | libavformat60(>= 7:6.0), libavutil56(>= 7:4.0) | libavutil58(>= 7:6.0), libffmpegthumbnailer4v5, libmpv1(>= 0.29) | libmpv2(>= 0.36), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0) Recommends: libgpuinfo, uos-reporter, deepin-event-log Description: movie player Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats. Package: libdmr Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libavcodec58(>= 7:4.0) | libavcodec60(>= 7:6.0), libavformat58(>= 7:4.1) | libavformat60(>= 7:6.0), libavutil56(>= 7:4.0) | libavutil58(>= 7:6.0), libffmpegthumbnailer4v5, libmpv1(>= 0.29) | libmpv2(>= 0.36), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0) Multi-Arch: same Description: movie player widget library deepin movie player widget library Package: libdmr-dev Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libdmr(=${binary:Version}), libgsettings-qt-dev Description: movie player widget library development headers deepin movie player widget library development headers deepin-movie-reborn-5.15.10/debian/copyright000066400000000000000000000034331473342170300207150ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: deepin-movie-reborn Source: https://github.com/linuxdeepin/deepin-movie-reborn Files: * Copyright: 2021, Deepin Technology Co., Ltd. License: GPL-3+ with OpenSSL exception Files: debian/* Copyright: Deepin Sysdev 2017 Boyuan Yang <073plan@gmail.com> License: GPL-3+ with OpenSSL exception License: GPL-3+ with OpenSSL exception This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . In addition, as a special exception, the author of this program gives permission to link the code of its release with the OpenSSL project's "OpenSSL" library (or with modified versions of it that use the same license as the "OpenSSL" library), and distribute the linked executables. You must obey the GNU General Public License in all respects for all of the code used other than "OpenSSL". If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". deepin-movie-reborn-5.15.10/debian/deepin-movie.install000066400000000000000000000004741473342170300227350ustar00rootroot00000000000000usr/bin/deepin-movie usr/share/applications/deepin-movie.desktop usr/share/glib-2.0/schemas/com.deepin.deepin-movie.gschema.xml usr/share/deepin-movie/translations/*.qm usr/share/icons/* usr/share/deepin-manual/manual-assets/application/* usr/share/dsg/configs/org.deepin.movie/* usr/lib/uos-ai-assistant/functions/*deepin-movie-reborn-5.15.10/debian/libdmr-dev.install000066400000000000000000000001111473342170300223650ustar00rootroot00000000000000usr/include/libdmr/*.h usr/lib/*/libdmr.so usr/lib/*/pkgconfig/libdmr.pc deepin-movie-reborn-5.15.10/debian/libdmr.install000066400000000000000000000000261473342170300216160ustar00rootroot00000000000000usr/lib/*/libdmr.so.* deepin-movie-reborn-5.15.10/debian/rules000077500000000000000000000006311473342170300200370ustar00rootroot00000000000000#!/usr/bin/make -f include /usr/share/dpkg/default.mk export QT_SELECT=5 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: dh $@ --parallel override_dh_auto_configure: dh_auto_configure -- \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DAPP_VERSION=$(DEB_VERSION_UPSTREAM) -DVERSION=$(DEB_VERSION_UPSTREAM) LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) deepin-movie-reborn-5.15.10/debian/source/000077500000000000000000000000001473342170300202575ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/debian/source/format000066400000000000000000000000151473342170300214660ustar00rootroot000000000000003.0 (native) deepin-movie-reborn-5.15.10/deepin-movie.desktop000066400000000000000000000224721473342170300215200ustar00rootroot00000000000000[Desktop Entry] Categories=AudioVideo;Player; Comment=Play your video collection Exec=deepin-movie %U GenericName=Movie Icon=deepin-movie Keywords=Player;Movie;Theater;Theatre;Video; MimeType=application/ogg;application/vnd.apple.mpegurl;application/vnd.rn-realmedia;application/x-extension-mp4;application/x-flac;application/x-matroska;application/x-ogg;application/xspf+xml;image/vnd.rn-realpix;misc/ultravox;video/3gpp;video/dv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/webm;video/x-anim;video/x-avi;video/x-flc;video/x-fli;video/x-flv;video/x-m4v;video/x-matroska;video/x-mpeg;video/x-mpeg2;video/x-ms-afs;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;x-content/video-dvd;x-content/video-svcd;x-content/video-vcd;x-scheme-handler/mms;x-scheme-handler/rtmp;x-scheme-handler/rtsp;application/mxf;text/vnd.qt.linguist; Name=Deepin Movie StartupNotify=true Type=Application X-Deepin-ManualID=deepin-movie X-Deepin-TurboType=dtkwidget X-Deepin-Vendor=deepin # Translations: # Do not manually modify! Comment[am_ET]=የ እርስዎን የ ቪዲዮ ስብስብ ያጫውቱ Comment[ar]=شغل مجموعة الفيديو الخاصة بك Comment[ast]=Reproduz la to videoteca Comment[az]=Video kolleksiyavı oynat Comment[bg]=Преглед на вашата видео колекция Comment[bn]=আপনার ভিডিও কালেকশন চালু করুন Comment[bo]=སྐུ་ཉིད་ལ་རང་གནས་དང་དྲ་ཐོག་བརྙན་ཟློས་གཏོང་བ། Comment[br]=Lenn ho tastumad video Comment[ca]=Reproduïu la col·lecció de música Comment[cs]=Přehrávejte svoji sbírku videí Comment[da]=Afspil din videosamling Comment[de]=Wiedergabe Ihrer Videosammlung Comment[el]=Παίξτε τη βίντεο συλλογή σας Comment[en_AU]=Play your video Comment[eo]=Ludi vian videojn kolekton Comment[es]=Reproduce su colección de vídeos Comment[fa]=مجموعه ویدیویی خود را اجرا کنید Comment[fi]=Toistaa kokoelmat ja videot Comment[fil]=Manood ng mga video Comment[fr]=Lire votre collection de vidéos Comment[gl_ES]=Reproduce a túa colección de vídeos Comment[he]=נגן את אוסף הוידאו שלך Comment[hi_IN]=अपने वीडियो संग्रह चलाओ Comment[hr]=Izvodite vašu video kolekciju Comment[hu]=Játssza le a videógyűjteményét Comment[hy]=Նվագել ձեր վիդեո հավաքածուն Comment[id]=Mainkan koleksi video Comment[it]=Esegui la tua raccolta video Comment[ja]=ビデオコレクションの再生 Comment[ko]=동영상 모음 재생 Comment[ku_IQ]=Li koleksiyona xwe ya vîdyoyê bixe Comment[lt]=Groti savo vaizdo kolekciją Comment[ms]=Main koleksi video Comment[nb]=Spill av videosamlingen din Comment[ne]=आफ्नो भिडियो संग्रह प्ले गर्नुहोस् Comment[nl]=Bekijk alle video's uit je verzameling Comment[pl]=Odtwórz kolekcję filmów Comment[pt]=Reproduza a sua coleção de vídeos Comment[pt_BR]=Reproduzir coleção de vídeos Comment[ro]=Redă colecția ta video Comment[ru]=Просмотр вашей видео-коллекции Comment[si]=ඔබේ වීඩියෝ එකතුව ධාවනය කරන්න Comment[sk]=Prehrávajte svoju zbierku video záznamov Comment[sl]=Predvajajte svojo video zbirko Comment[sq]=Luani koleksionin tuaj të videove Comment[sr]=Гледајте вашу видео колекцију Comment[sv]=Spela din filmsamling Comment[ta]=புதுச் சாளரம் Comment[tr]=Video koleksiyonunuzu oynatın Comment[ug]=يىغىپ ساقلاپ قويغان فىلىملەرنى قويۇش Comment[uk]=Відтворити колекцію відео Comment[vi]=Phát bộ sưu tập video của bạn Comment[zh_CN]=为您播放本地及网络视频 Comment[zh_HK]=播放你收藏的影片 Comment[zh_TW]=播放您的影片集合 GenericName[am_ET]=ሙቪ GenericName[ar]=الأفلام GenericName[ast]=Película GenericName[az]=Kino GenericName[bg]=Филм GenericName[bn]=মুভি GenericName[bo]=གློག་བརྙན་ཁང་། GenericName[br]=Video GenericName[ca]=Pel·lícula GenericName[cs]=Film GenericName[da]=Film GenericName[de]=Film GenericName[es]=Vídeo GenericName[fa]=فیلم GenericName[fi]=Elokuvat GenericName[fr]=Vidéo GenericName[gl_ES]=Filme GenericName[hu]=Film GenericName[id]=Film GenericName[it]=Video GenericName[ko]=동영상 GenericName[lt]=Filmas GenericName[ms]=Cereka GenericName[ne]=चलचित्र GenericName[nl]=Video GenericName[pl]=Filmy GenericName[pt]=Vídeo GenericName[pt_BR]=Vídeo GenericName[ro]=Film GenericName[ru]=Кинотеатр GenericName[si]=චිත්‍රපටය GenericName[sk]=Film GenericName[sl]=Film GenericName[sq]=Film GenericName[sr]=Филм GenericName[tr]=Sinema GenericName[ug]=كىنو GenericName[uk]=Відео GenericName[vi]=Movie GenericName[zh_CN]=影院 GenericName[zh_HK]=電影 GenericName[zh_TW]=電影 Keywords[am_ET]=ማጫወቻ;ሙቪ;ቲያትር;ቲያትር;ቪዲዮ; Keywords[ar]=Player;Movie;Theater;Theatre;Video; Keywords[ast]=reproductor;película;videu;películes;vídeos;theater Keywords[az]=Player;Movie;Theater;Theatre;Video;Oynadıcı;Kino;Film;Teatr;Video; Keywords[bg]=Player;Movie;Theater;Theatre;Video; Keywords[bn]=প্লেয়ার;মুভি;থিয়েটার;থিয়েটার;ভিডিও; Keywords[bo]=གཏོང་ཆས། གློག་བརྙན། གློག་བརྙན་ཁང་། བརྙན་ཟློས། Keywords[br]=Lenner;Film;C'hoariva;C'hoariva;Video; Keywords[ca]=Reproductor;Pel·lícula;Teatre;Cinema;Vídeo Keywords[cs]=Přehrávač;Film;Kino;Video; Keywords[da]=Afspiller;Film;Biograf;Video; Keywords[de]=Player;Abspieler;Filme;Theater;Video; Keywords[es]=Reproductor;Video;Vídeos;Películas;Cine en casa; Keywords[fa]=پخش کننده؛ فیلم؛ تئاتر؛ تئاتر؛ ویدئو؛ Keywords[fi]=Soitin;Elokuva;Teatteri;Video; Keywords[fr]=Joueur;Film;Théâtre;Théâtre;Vidéo; Keywords[gl_ES]=Player;Movie;Theater;Theatre;Video; Keywords[hu]=Lejátszó;Film;Mozi;Mozi;Videó Keywords[id]=Pemutar;Film;Theater;Theater;Video; Keywords[it]=Player;Movie;Theater;Theatre;Video;Film; Keywords[ko]=Player;Movie;Theater;Theatre;Video;플레이어;동영상;영화;극장;영화관;비디오; Keywords[lt]=Grotuvas;Leistuvė;Filmas;Kinoteatras;Kinas;Teatras;;Vaizdas;Video; Keywords[ms]=Pemain;Cereka;Wayang;Filem;Video; Keywords[ne]=प्लेयर; मूवी; थिएटर; थियेटर; भिडियो; Keywords[nl]=Speler;Film;Theater;Bioscoop;Video; Keywords[pl]=Player;Movie;Theater;Theatre;Video;Odtwarzacz;Filmy;Kino;Teatr;Wideo; Keywords[pt]=Reprodutor;Filme;Teatro;Anfiteatro;Vídeo; Keywords[pt_BR]=Reprodução;Filme;Teatro;Vídeo; Keywords[ro]=Player;Film;Cinema;Teatru;Video; Keywords[ru]=Player;Movie;Theater;Theatre;Video; Keywords[si]=ධාවකය; චිත්‍රපටය; රඟහල; රඟහල; වීඩියෝ; Keywords[sk]=Player;Movie;Theater;Theatre;Video; Keywords[sl]=Predvajalnik;film;kino;video; Keywords[sq]=Lojtës;Film;Teatër;Teatër;Video; Keywords[sr]=Пуштач;Филм;Сцена;Биоскоп;Видео; Keywords[tr]=Player;Movie;Theater;Theatre;Video;Sinema;Görüntü;Tiyatro; Keywords[ug]=قويغۇچ ؛ كىنو ؛ تىياتىرخانا ؛ تىياتىرخانا ؛ سىن Keywords[uk]=Player;Movie;Theater;Theatre;Video;програвач;відео;фільм;кінотеатр;кіно; Keywords[vi]=Player;Movie;Theater;Theatre;Video; Keywords[zh_CN]=播放器;电影;电影院;视频; Keywords[zh_HK]=播放器;電影;電影院;影片; Keywords[zh_TW]=Player;Movie;Theater;Theatre;Video;播放器;電影;劇院;影片 Name[am_ET]=ሙቪ Name[ar]=أفلام دييبن Name[ast]=Deepin Movie Name[az]=Deepin Film Name[bg]=Deepin Филми Name[bn]=ডিপিন মুভি Name[bo]=གཏིང་ཟབ་གློག་བརྙན་ཁང་། Name[br]=Deepin Filmoù Name[ca]=Pel·lícula del Deepin Name[cs]=Filmy Name[da]=Deepin film Name[de]=Deepin Film Name[el]=Ταινίες Deepin Name[en_AU]=Deepin Movie Name[eo]=Deepin Filmujo Name[es]=Vídeo Name[fa]=Deepin Movie (نرم افزار تماشای فیلم دیپین) Name[fi]=Deepin elokuvat Name[fil]=Deepin Music Name[fr]=Vidéo Deepin Name[gl_ES]=Filmes Name[he]=נגן הסרטים של Deepin Name[hi_IN]=डीपइन चलचित्र Name[hr]=Deepin filmski reproduktor Name[hu]=Deepin® Film Name[hy]=Deepin Ֆիլմեր Name[id]=Pemutar Video Deepin Name[it]=Video di Deepin Name[ja]=Deepinビデオプレイヤー Name[ko]=Deepin 동영상 Name[ku_IQ]=Deepin Fîlm Name[lt]=Deepin filmas Name[mn]=Дээпин Кино Name[ms]=Wayang Deepin Name[nb]=Deepin film Name[ne]=डिपिन चलचित्र Name[nl]=Deepin Video Name[pl]=Filmy Deepin Name[pt]=Deepin Vídeo Name[pt_BR]=deepin Vídeo Name[ro]=Player-ul video Deepin Name[ru]=Кинотеатр Deepin Name[si]=Deepin මූවී Name[sk]=Deepin Filmy Name[sl]=Deepin Film Name[sq]=Film Deepin Name[sr]=Дипин Филм Name[sv]=Deepin-film Name[tr]=Deepin Sinema Name[ug]=Deepin كىنو Name[uk]=Відео Deepin Name[vi]=Trình xem phim Deepin Name[zh_CN]=深度影院 Name[zh_HK]=Deepin 電影 Name[zh_TW]=Deepin 電影 deepin-movie-reborn-5.15.10/deepin-movie.pro000066400000000000000000000001601473342170300206350ustar00rootroot00000000000000 TEMPLATE = subdirs CONFIG = ordered SUBDIRS += \ src/libdmr SUBDIRS += src #SUBDIRS += src/test deepin-movie-reborn-5.15.10/deploy_dep000066400000000000000000000046751473342170300176200ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023-2024 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later #!/bin/bash set -e # 生成安装目录/文件和运行时依赖的必要库 # 获取应用id ID_VALUE=$(awk -F ': ' '/^ id: / {print $2}' linglong.yaml) ## 获取安装的文件列表并写入安装脚本(排除头文件、pc和cmake文件) # cmake 安装 if ! grep -- "-- Installing:" install.log | awk '{print $NF}' | grep -vE '\.(h|cmake|pc)$' > ${ID_VALUE}.install; then echo "cmake install files are empty!" fi # qmake 安装 if ! grep -- "-install qinstall" install.log | awk '{print $NF}' | grep -vE '\.(h|cmake|pc)$' >> ${ID_VALUE}.install; then echo "qmake install files are empty!" fi # 动态库软连接 if ! grep -- "^ln -f -s " install.log | awk '{print $NF}' >> ${ID_VALUE}.install; then echo "Get library softlink empty!" fi # glib-compile-schemas 文件添加到 install 文件 for SCHEMAS in "${PREFIX}"/share/glib-2.0/schemas/gschema*; do if [[ -f "$SCHEMAS" ]]; then echo "$SCHEMAS" >> "${ID_VALUE}.install" fi done # 获取依赖的所有文件 for LDFILE in "$@"; do # 判断文件是否以 .so 结尾 if [[ "$LDFILE" == *.so ]]; then FILE_PATH="${PREFIX}/lib/${TRIPLET}/$LDFILE" # 添加依赖库到 install 文件 for SOFILE in "${PREFIX}/lib/${TRIPLET}"/${LDFILE}*; do if [[ -f "$SOFILE" ]]; then echo "$SOFILE" >> "${ID_VALUE}.install" fi done else FILE_PATH="${PREFIX}/bin/$LDFILE" fi # 获取依赖库 DEPENDENCIES=$(ldd "$FILE_PATH" | grep "$PREFIX") || continue if [[ ! -z "$DEPENDENCIES" ]]; then echo "$DEPENDENCIES" | while IFS= read -r line; do LIB_PATH=${line##*=> } LIB_PATH=${LIB_PATH%%(*} # 获取基本库名并匹配相关库 LIB_DIR=$(dirname "$LIB_PATH") BASE_LIB_NAME=$(basename "$LIB_PATH") # 使用通配符查找相关库文件并将结果倒序存储到 install 文件 for FILE in "$LIB_DIR"/${BASE_LIB_NAME%.*}*; do if [[ -f "$FILE" ]]; then echo "$FILE" fi done | sort -r >> "${ID_VALUE}.install" done fi done # 排除静态链接库 #echo '^'${PREFIX}'/'${TRIPLET}'/.+(?> "${ID_VALUE}.install" #echo '^'${PREFIX}'/lib/.+(?> "${ID_VALUE}.install"deepin-movie-reborn-5.15.10/environments.h.in000066400000000000000000000001651473342170300210440ustar00rootroot00000000000000#ifndef __ENVIRONMENTS_H_ #define __ENVIRONMENTS_H_ #define VERSION "@VERSION@" #endif // __ENVIRONMENTS_H_ deepin-movie-reborn-5.15.10/examples/000077500000000000000000000000001473342170300173535ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/examples/test/000077500000000000000000000000001473342170300203325ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/examples/test/CMakeLists.txt000066400000000000000000000021061473342170300230710ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later project(libdmr_test) set(CMAKE_AUTOMOC ON) set(CMD_NAME dmr_test) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -fpermissive -Wno-error") include_directories(${CMAKE_INCLUDE_CURRENT_DIR}) find_package(Qt5Widgets) find_package(Qt5Concurrent) find_package(Qt5Network) find_package(Qt5X11Extras) find_package(Qt5Sql) find_package(Qt5DBus) find_package(Qt5Svg) pkg_check_modules(Dtk REQUIRED IMPORTED_TARGET dtkwidget) pkg_check_modules(Gst REQUIRED IMPORTED_TARGET libffmpegthumbnailer gstreamer-1.0 glib-2.0) include_directories(${Gst_INCLUDE_DIRS}) # 定义 source 文件 FILE (GLOB SRCS *.cpp ) add_executable(${CMD_NAME} ${SRCS}) target_link_libraries(${CMD_NAME} PkgConfig::Dtk Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::X11Extras Qt5::Sql Qt5::DBus PkgConfig::Gst GL) target_include_directories(${CMD_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../src/libdmr ${PROJECT_SOURCE_DIR} ) target_link_libraries(${CMD_NAME} Qt5::Widgets dmr) deepin-movie-reborn-5.15.10/examples/test/dmr_test.cpp000066400000000000000000000043141473342170300226610ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "window.h" int main(int argc, char *argv[]) { //dmr::CompositingManager::detectOpenGLEarly(); QApplication app(argc, argv); // required by mpv setlocale(LC_NUMERIC, "C"); dmr::Backend::setDebugLevel(dmr::Backend::DebugLevel::Debug); auto mw = new Window; mw->resize(400, 300); mw->show(); if (argc == 2) mw->play(QString::fromUtf8(argv[1])); //api支持多线程demo QThread *thread = new QThread(); dmr::PlaylistModel *playModel = new dmr::PlaylistModel(nullptr); playModel->moveToThread(thread); thread->start(); bool is = false; //获取视频信息 demo dmr::MovieInfo mi = playModel->getMovieInfo(QUrl("file:///usr/share/dde-introduction/demo.mp4"),&is); if (is) { qInfo() << "# 文件类型:"<< mi.fileType << "# 文件大小:"<< mi.sizeStr() << "# 时长:" << mi.durationStr() << "# 文件路径:"<< mi.filePath << "# 视频流信息:" << mi.videoCodec() << "# 视频码率:"<< mi.vCodeRate << "bps" << "# 视频帧率:"<< mi.fps << "fps" << "# 视频显示比例:" << QString("%1").arg(static_cast(mi.proportion)) << "# 视频分辨率:"<< mi.resolution << "# 音频编码样式:"<< mi.audioCodec() << "# 音频编码码率:"<< mi.aCodeRate << "bps" << "# 音频位数:"<< mi.aDigit << "bits" << "# 声道数:"<< mi.channels << "声道" << "# 采样数:"<< mi.sampling << "hz"; //获取预览图 demo QImage img = playModel->getMovieCover(QUrl("file:///usr/share/dde-introduction/demo.mp4")); img.save(QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/Desktop/test.png"); QImage img1 = playModel->getMovieCover(QUrl("file:///usr/share/dde-introduction/demo.mp4")); img1.save(QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/Desktop/test1.png"); } playModel->deleteLater(); app.exec(); delete mw; return 0; } deepin-movie-reborn-5.15.10/examples/test/window.cpp000066400000000000000000000041701473342170300223470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "window.h" using namespace dmr; Window::Window(QWidget *parent) : QWidget (parent) { auto l = new QVBoxLayout(this); //if (dmr::CompositingManager::get().composited()) { //dmr::CompositingManager::get().overrideCompositeMode(false); //} player = new dmr::PlayerWidget; l->addWidget(player); QObject::connect(&player->engine(), &dmr::PlayerEngine::stateChanged, [=]() { qInfo() << "----------------new state: " << player->engine().state(); }); player->engine().changeVolume(120); auto h = new QHBoxLayout(this); auto playBtn = new QPushButton("Play"); connect(playBtn, &QPushButton::clicked, &player->engine(), &dmr::PlayerEngine::play); h->addWidget(playBtn); auto pauseBtn = new QPushButton("Pause"); connect(pauseBtn, &QPushButton::clicked, &player->engine(), &dmr::PlayerEngine::pauseResume); h->addWidget(pauseBtn); auto stopBtn = new QPushButton("stop"); connect(stopBtn, &QPushButton::clicked, &player->engine(), &dmr::PlayerEngine::stop); h->addWidget(stopBtn); auto forward = new QPushButton("forward"); connect(forward, &QPushButton::clicked, [=]() { player->engine().seekForward(60); }); h->addWidget(forward); auto volumeUp = new QPushButton("volUp"); connect(volumeUp, &QPushButton::clicked, &player->engine(), &dmr::PlayerEngine::volumeUp); h->addWidget(volumeUp); auto volumeDown = new QPushButton("volDown"); connect(volumeDown, &QPushButton::clicked, &player->engine(), &dmr::PlayerEngine::volumeDown); h->addWidget(volumeDown); auto keep = new QPushButton("KeepOpen"); connect(keep, &QPushButton::clicked, &player->engine(), [this]() { this->player->engine().setBackendProperty("keep-open", "yes"); }); this->player->engine().setBackendProperty("pause-on-start", "true"); h->addWidget(keep); l->addLayout(h); setLayout(l); } void Window::play(const QUrl& url) { if (player->engine().isPlayableFile(url)) player->play(url); } deepin-movie-reborn-5.15.10/examples/test/window.h000066400000000000000000000007421473342170300220150ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef WINDOW_H #define WINDOW_H #include #include #include #include #include class Window: public QWidget { Q_OBJECT public: Window(QWidget *parent = 0); void play(const QUrl& url); private: dmr::PlayerWidget *player {nullptr}; }; #endif // WINDOW_H deepin-movie-reborn-5.15.10/install_dep000066400000000000000000000141711473342170300177620ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023-2024 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later #!/bin/bash set -e # 文件名 deb-source.bash # 包含要解压的deb目录 deb_dir=$(realpath "$1") # 将deb解压到输出目录 target=$(realpath "$2") # 默认会跳过base已安装的包,可以强制解压已安装的包 include="$3" # 临时目录,将内容处理后再移动到 target out_dir="$(mktemp -d)" cd "$out_dir" # 临时文件,用于记录deb文件列表 deb_list_file="$out_dir/deb.list" # 临时文件,用于记录强制安装的包名 include_list_file="$out_dir/include.packages.list" # 临时文件,用于记录跳过安装的包名 exclude_list_file="$out_dir/exclude.packages.list" # 包数据存放的临时目录 data_list_dir="$out_dir/data" # 生成文件列表 find "$deb_dir" -type f -name "*.deb" > "$deb_list_file" echo "$include" | tr ',' '\n' > "$include_list_file" # 用于记录安装的所有文件来自哪个包 mkdir /tmp/deb-source-file || true # 如果base和runtime已安装则跳过,旧版本base没有/packages.list文件就使用/var/lib/dpkg/status grep 'Package: ' /var/lib/dpkg/status > "$exclude_list_file" || true cat /packages.list /runtime/packages.list "$PREFIX/packages.list" >> "$exclude_list_file" || true # 在旧的base里面这些包需要强制安装,因为base中没有他们的dev包,如果dev包被安装到/opt目录,而lib包在/usr 会有问题 echo "libarchive13,libasan5,libasm1,libbabeltrace1,libcairo-script-interpreter2,libcc1-0,libcurl4,libdpkg-perl,libdw1,libevent-2.1-6,libgdbm-compat4,libgdbm6,libgirepository-1.0-1,libgles1,libgles2,libglib2.0-data,libgmpxx4ldbl,libgnutls-dane0,libgnutls-openssl27,libgnutlsxx28,libharfbuzz-gobject0,libharfbuzz-icu0,libipt2,libisl19,libitm1,libjsoncpp1,libldap-2.4-2,libldap-common,liblsan0,liblzo2-2,libmpc3,libmpdec2,libmpfr6,libmpx2,libncurses6,libnghttp2-14,libpcrecpp0v5,libperl5.28,libpopt0,libprocps7,libpython3-stdlib,libpython3.7,libpython3.7-minimal,libpython3.7-stdlib,libquadmath0,libreadline7,librhash0,librtmp1,libsasl2-2,libsasl2-modules-db,libssh2-1,libtiffxx5,libtsan0,libubsan1,libunbound8,libuv1" | tr ',' '\n' >> "$include_list_file" # 遍历文件列表 while IFS= read -r file do # 输出deb名,但不换行,便于在包名后面加skip echo -n "$file" # 提取control文件 control_file=$(ar -t "$file" | grep control.tar) ar -x "$file" "$control_file" # 获取包名 pkg=$(tar -xf "$control_file" ./control -O | grep '^Package:' | awk '{print $2}') rm "$control_file" # 如果在base和runtime中已安装,并且不包含在include列表则跳过安装 if grep -q "^Package: $pkg$" "$exclude_list_file" && ! grep -q "^$pkg$" "$include_list_file"; then echo " skip" echo "$file" >> /tmp/deb-source-file/skip.list else # 否则安装到$PREFIX目录 # 换行 echo "" # 查找data.tar文件,文件会因为压缩格式不同,有不同的后缀,例如data.tar.xz、data.tar.gz data_file=$(ar -t "$file" | grep data.tar) # 提取data.tar文件 ar -x "$file" "$data_file" # 解压data.tar文件到输出目录 mkdir "$data_list_dir" tar -xvf "$data_file" -C "$data_list_dir" >> "/tmp/deb-source-file/$(basename "$file").list" rm "$data_file" # 清理不需要复制的目录 rm -r "${data_list_dir:?}/usr/share/applications"* 2>/dev/null || true # 修改pc文件的prefix sed -i "s#/usr#$PREFIX#g" "$data_list_dir"/usr/lib/"$TRIPLET"/pkgconfig/*.pc 2>/dev/null|| true sed -i "s#/usr#$PREFIX#g" "$data_list_dir"/usr/share/pkgconfig/*.pc 2>/dev/null || true # 修改指向/lib的绝对路径的软链接 find "$data_list_dir" -type l | while IFS= read -r file; do linkTarget=$(readlink "$file") # 如果指向的路径以/lib开头,并且文件不存在,则添加 /runtime 前缀 # 部分 dev 包会创建 so 文件的绝对链接指向 /lib 目录下 if echo "$linkTarget" | grep -q ^/lib && ! [ -f "$linkTarget" ]; then ln -sf "$target$linkTarget" "$file" echo " FIX LINK" "$linkTarget" "=>" "$target$linkTarget" fi done # 修复动态库的RUNPATH find "$data_list_dir" -type f -exec file {} \; | grep 'shared object' | awk -F: '{print $1}' | while IFS= read -r file; do runpath=$(readelf -d "$file" | grep RUNPATH | awk '{print $NF}') # 如果RUNPATH使用绝对路径,则添加/runtime前缀 if echo "$runpath" | grep -q '^\[/'; then runpath=${runpath#[} runpath=${runpath%]} newRunpath=${runpath//usr\/lib/runtime\/lib} newRunpath=${newRunpath//usr/runtime} patchelf --set-rpath "$newRunpath" "$file" echo " FIX RUNPATH" "$file" "$runpath" "=>" "$newRunpath" fi done # 复制/lib,/bin,/usr目录 cp -rP "$data_list_dir/lib" "$target" 2>/dev/null|| true cp -rP "$data_list_dir/bin" "$target" 2>/dev/null|| true cp -rP "$data_list_dir"/usr/* "$target" || true rm -r "$data_list_dir" fi; done < "$deb_list_file" # 修复相对路径的软链接(dev包内的软连接尝试修复指向base) find "$target" -type l | while IFS= read -r file; do # 获取链接的绝对路径 linkTarget=$(readlink -m "$file") # 如果链接指向的文件不存在 if [ ! -e "$linkTarget" ]; then # 去掉前缀查看/lib下是否存在 linkTarget="${linkTarget#$target}" if [ -e "$linkTarget" ]; then ln -sf "$linkTarget" "$file" echo " FIX LINK" "$file" "=>" "$target$linkTarget" fi # 添加usr前缀查看/usr/lib下是否存在 linkTarget="/usr$target" if [ -e "$linkTarget" ]; then ln -sf "$target$linkTarget" "$file" echo " FIX LINK" "$file" "=>" "$target$linkTarget" fi fi done # 更新ld.so.cache if [ -n "$LINGLONG_LD_SO_CACHE" ]; then ldconfig -C "$LINGLONG_LD_SO_CACHE" fi # 清理临时目录 rm -r "$out_dir"deepin-movie-reborn-5.15.10/linglong.yaml000066400000000000000000003250161473342170300202410ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023-2024 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later version: "1" package: id: org.deepin.movie name: "deepin-movie" version: 5.15.10.1 kind: app description: | movie for deepin os. base: org.deepin.base/23.1.0 runtime: org.deepin.runtime.dtk/23.2.0 command: - deepin-movie build: | cat /var/lib/dpkg/status|grep "^Package: " > ${PREFIX}/packages.list bash ./install_dep linglong/sources "${PREFIX}" "libxcb1-dev" mv ${PREFIX}/lib/${TRIPLET}/blas/libblas.* ${PREFIX}/lib/${TRIPLET} mv ${PREFIX}/lib/${TRIPLET}/lapack/liblapack.* ${PREFIX}/lib/${TRIPLET} # 获取版本号 VERSION=$(head -1 debian/changelog | awk -F'[()]' '{print $2}') # 使用sed命令替换version的值 sed -i "s/^ version: .*/ version: ${VERSION}.1/" linglong.yaml cmake -B build ${conf_args} \ -DSYSTEMD_USER_UNIT_DIR=${PREFIX}/lib/systemd/user \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib/${TRIPLET} \ -DVERSION=${VERSION} cmake --build build -j`nproc` cmake --build build --target install > install.log 2>&1 # 解决GIO运行问题: Settings schema xxx is not installed glib-compile-schemas $PREFIX/share/glib-2.0/schemas # 项目生成应用名和动态隐式加载的依赖库,ldd无法找到的其他库 LDD_FILES=( deepin-movie libmpv.so libgpuinfo.so libavcodec.so libavutil.so libavformat.so libgstreamer-1.0.so libgstpbutils-1.0.so libffmpegthumbnailer.so libdeepin-event-log.so libblas.so liblapack.so libgfortran.so ) # 生成.install 文件 bash ./deploy_dep "${LDD_FILES[@]}" sources: # - kind: git # url: https://github.com/linuxdeepin/deepin-movie-reborn # commit: 1f8249e0855d294017498b4faebfa72f003acc18 # linglong:gen_deb_source sources amd64 https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2 beige main community # linglong:gen_deb_source install libxcb1-dev, libxcb-util0-dev, libxcb-shape0-dev, libxcb-ewmh-dev, xcb-proto, x11proto-record-dev, libdbusextended-qt5-dev # linglong:gen_deb_source install libxtst-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpulse-dev, libdvdnav-dev, libgsettings-qt-dev, libmpris-qt5-dev, libva-dev # linglong:gen_deb_source install libmpv-dev, libgstreamer-plugins-base1.0-dev, libgstreamer1.0-dev, libffmpegthumbnailer-dev - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/debconf/debconf_1.5.79-deepin_all.deb digest: ded6aaa7927ae27337ceb23d49391b4c7ec460a00ba692020e8f4e28388f345f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dpkg/dpkg_1.22.6deepin3_amd64.deb digest: f9c758ed0204b1fe515c70b6419f80fdeb4773ac3f498a79ea1e6a6e6971157f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig_2.14.2-6_amd64.deb digest: 1018476410ec372cb5f96e3a4d4b4d51781c613212eb71f91bcc939c2de0e8f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig-config_2.14.2-6_amd64.deb digest: ca239a17d79f439fc02525b3b3c83d6cdf0be1a90c6aa6ec6c19b2b92b0d6586 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-croscore_20201225-deepin_all.deb digest: afbaf120869a08aa7dd14da9ad014de48a751aa4330534b531410bb86c411b55 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-dejavu/fonts-dejavu-core_2.37-deepin_all.deb digest: 5982963d05dbf4efa009c3ab6db3576a03f680199d75d7d5edda89c55def912c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-otf_20120503-10_all.deb digest: c66666da94b9a0477351ee9d6d7a247a0a3c842e428da770991b45f03be2ee72 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-ttf_20120503-10_all.deb digest: 79b23c3945d4628463672a804a0e81bc4c262ef87cb6316afb40167a50bc3145 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-liberation/fonts-liberation_2.1.5-3_all.deb digest: 9285213fd8d6515bc6c1be5b810bf39918a668a17024a9fd3541879ce7fb5344 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-noto-core_20201225-deepin_all.deb digest: fa09d95f516c498d55e516d549b8ee41d9a7b6f17cdf0bb4b43744d672ce1366 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tex-gyre/fonts-texgyre_20180621-3.1_all.deb digest: f66d6f798c4b99d8490558cc8209c069b0fe5577c11378c0e01f9e87ddf10824 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-urw-base35/fonts-urw-base35_20200910-7_all.deb digest: 4800c0b08fbeac0335f1e23df2d41528a242383324c256ebece00c8f438eefbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/gcc-13-base_13.2.0-3deepin2_amd64.deb digest: 934755185f12fa095cdb596552ed9c59151796f5fdc418f0c8342d0d7f338ee9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gobject-introspection/gir1.2-freedesktop_1.80.1-2_amd64.deb digest: 4ce878bde559e22797421a376b478c8e874eb563c30de7b0acd980166390b57f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/gir1.2-glib-2.0_2.80.1-1deepin1_amd64.deb digest: 19242756d4cc8125e5b18e34319ba4f4445aeff9bc3c1560e9dc5a87fcacb0d2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.22.6-1deepin1_amd64.deb digest: 433dd5d52116b54d5541646499692f0615e294f16abf93df3f87fa233411c270 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/gir1.2-gstreamer-1.0_1.22.6-1_amd64.deb digest: 221081b82aaef8e2d5228d644e6f632321696eaab0a29f9cfe5896de30e4bef2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/gir1.2-gudev-1.0_238-2deepin1_amd64.deb digest: 3cbcb69c6edaebc428fc9f7c19a4a4e7a057bb980ab6b6f754561e3aee3ea011 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/gir1.2-harfbuzz-0.0_8.0.1-1+rb1_amd64.deb digest: c5314eca7a3fcf6b0f734f6ca9290b7a842919f0fb2285a4107b5c7a28c3a9e2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/gir1.2-ibus-1.0_1.5.29~rc1-1_amd64.deb digest: bcd1078c7c91d44600db89542b353098fc937f7a4ef2fa9ad94e565bac548de1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/icu-devtools_74.2-1_amd64.deb digest: 1f419ef9ef614ca7f3a6bacbb55adcb3220b45029ce81c2364c71b4c1c33de5d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/iso-codes/iso-codes_4.15.0-1_all.deb digest: f75ce3c95770cc9cfa650b26eee2c7a2f6f8cee54a22cae29bd1e2cf2b6ccb7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/acl/libacl1_2.3.1-1_amd64.deb digest: f06e936eb913b8e9271c17e6d8b94d9e4f0aa558d7debdc324c9484908ee8dc8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/aom/libaom3_3.2.0-deepin_amd64.deb digest: f636fa72f590602293561ee9ff91d4d09404495d3ef2590d368a61ec96999d78 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive-dev_3.7.2-1_amd64.deb digest: 946774138fd118b8418bfac68aeef5ec59ca3564a4db4f2c599047199313656c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive13_3.7.2-1_amd64.deb digest: 99dd0292da444f1f012499e9c75a15ef72882c54583635cd62e09ab3e52f6429 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2_1.2.8-1_amd64.deb digest: 9369d835efeb62d2e639a45a2cc2ed5110ad259bbf0a3be12ea98475c85beab6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-data_1.2.8-1_all.deb digest: cc8b0202a4e88d3c744fc9d4719a61b945b3b02759fa1af6bd55da6432119b2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-dev_1.2.8-1_amd64.deb digest: 096be9de38434fc10c653b5fe7dd38ce1b74bafe84f16a37beb5b4058d121a18 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass-dev_0.15.2-1_amd64.deb digest: 1d5f7656d73a3af6a5b8185b5fee20f8600ea2cc435394e69c8a0098dfed741d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass9_0.15.2-1_amd64.deb digest: 1c0c5c27e1ae950841911d144b4e3cd319ff90177e3dc046367585c7e6c88ab6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libasyncns/libasyncns0_0.8-deepin1_amd64.deb digest: fd200e6260ccf2169de1a42591f730bfda6ff0e64a80c8eb4bc167e875cc9fcd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libavc1394/libavc1394-0_0.5.4-5_amd64.deb digest: 27a869ad9b0f6673fe4c6e6dc6aae04f58b550fa9f2de4c9c9ba64cda6e9937a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec-dev_6.1.1-2_amd64.deb digest: 21cfd1fbdb726e85bc90cb486a3c705a331dcabbfbcc5717d4c7e4502fd83eb2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec60_6.1.1-2_amd64.deb digest: 87c9c56411d88d0ce6fd77b7e59f9f98538cdba37aea6e3ea8fdff05ad474431 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice-dev_6.1.1-2_amd64.deb digest: 583d0ffa6060c7529e3a7e35b6197a72b9ae6494d51f62592705a4bbd8e3b436 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice60_6.1.1-2_amd64.deb digest: b4d43e0c42e924b32b6cc9e77161e3ed86b5edc76a28c04c45b8d83bf8f53629 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter-dev_6.1.1-2_amd64.deb digest: 4820abd2ab72ccddc57b89636b67f1e585edc223618b15bd6e12e78c7f71bdbc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter9_6.1.1-2_amd64.deb digest: 3b80e16caa0f8d8c1034d1ddbe907f682d7568910bd813c10de8eb60372c5ef2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat-dev_6.1.1-2_amd64.deb digest: 5758ae63b9c452016139f30fc13a4ff31ccd3fc352737701868dca39b262687d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat60_6.1.1-2_amd64.deb digest: 9de848d26e841dbc46a8e8a38fd7a4f4f5d06f0b273cf41d3231a88b9598b84f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil-dev_6.1.1-2_amd64.deb digest: 2632aa86fb9a183fe0928eab1be69aa5f54a088d19e40d11fdc3eeb16ba8d20c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil58_6.1.1-2_amd64.deb digest: 7d6caf8f6722492175cfd361640bb3497a1fc166a1ee31ac4aeceedd918d189e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/libblas3_3.11.0-2_amd64.deb digest: 4593968beae667f8d58b700e63c047f3f0ecab70482cd4696246ded9ae7294ac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid-dev_2.39.3-6deepin1_amd64.deb digest: e9a309e022e159bcd90fdf4b710e8a6597368a234fd3d102af67cf471ae16703 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid1_2.39.3-6deepin1_amd64.deb digest: 1c0d4c5b5efec4a282652df9793083bdd4e7fc0ed634dc76f3bf6ee700dfa8c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray-dev_1.3.4-1+rb2_amd64.deb digest: 563e5bc9243f0b32cc805553b35208a95d7239ba67b6bae020c9100f0fb27175 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray2_1.3.4-1+rb2_amd64.deb digest: 563f4d3b275996192a906b926390435bb3e444294f8766b8db5ba66f199db55d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli-dev_1.1.0-1_amd64.deb digest: acd9fe5419f9f45dab72f4c8eef18342f875c0055d15121faed509e732d9e9ee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli1_1.1.0-1_amd64.deb digest: 36d35c961b011d90846409e88990ea9ab004b55c210cf50b7b9a01c6acc15803 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbs2b/libbs2b0_3.1.0+dfsg-2.2-deepin1_amd64.deb digest: 6854e7f16cf2a724490b7f7a60cc6acdee2474637466b258e1d7c4ddae5477dc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbsd/libbsd0_0.11.7-4_amd64.deb digest: 40e8755d2d6de7ee5c90483c74d586c6270f088eaf630acdc32bc848c09cedfe - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-1.0_1.0.8-deepin_amd64.deb digest: 7f5ce12761d6099a94205e330066656c96e759a6ab393730a6a91a1aa817beff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-dev_1.0.8-deepin_amd64.deb digest: 2c12b78b8be62569619f22775d1100537628d442bc77639c66432c44f58cbdb6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc-dev-bin_2.38-6deepin4_amd64.deb digest: 43c5c28acc40e44d45a9e6835f6dd7a3db79e1edb113e5e19cd1a302af46d112 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6_2.38-6deepin4_amd64.deb digest: 528cd175b88a701953e4271e0528afbc1f8e815b9710e4bf5d48d35a2723f92b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6-dev_2.38-6deepin4_amd64.deb digest: ac82ee78fe600acc360ac2c448bf23eefdbc91ffe9de2366cf2c4737b75d17b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca-dev_0.99.beta20-4_amd64.deb digest: a36693468bf89b88f00101d4bec28d60e8283f32bf42f1c80d6deb9461d65077 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca0_0.99.beta20-4_amd64.deb digest: 664064d28385e27048dec4f715b24ef95cb631a7ceb10e4d19a905b8d1e092ac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo-gobject2_1.18.0-1_amd64.deb digest: 58dc2ae2cd25e9ba5e45c571fd4c0fe77450cd98128dc28c2183b7434aa4d914 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo2_1.18.0-1_amd64.deb digest: cbf026997021678131d706318414a498b8054291185be3fa095fe8ea9fe162fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2_2.44-1_amd64.deb digest: 80964e76de54cf25286f16d15361610bfdda4c552da2c36e353428596bd4441a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2-bin_2.44-1_amd64.deb digest: cc417599af3422aaef31cbe9142a602ac563e56db2978f0f0fd32e5a9ef69b3b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/capstone/libcapstone4_4.0.2-3-deepin1_amd64.deb digest: 6b82dd7f3f4ff2bc1c59d2cd7180600bc9cafa1ec8752689e301ab04dd4e9713 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda-dev_10.2+2.0.0-deepin1_amd64.deb digest: 12eb4b37ac45b271644fa7d6da13906cb82b870fe8028d628471a9bfb4870217 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda2_10.2+2.0.0-deepin1_amd64.deb digest: 3c5c31aaaf80d062589b764eecff9dd16b9d705f82a001b4d1de3fd59ac3118d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio-dev_2.1.0-4_amd64.deb digest: 2e3afb4e90c0102a530f51758454bc93226c3806af3cadb2d20ae883ac37a1fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia-dev_10.2+2.0.0-deepin1_amd64.deb digest: 7fdf253e2a439877f69e9de9465da55e4981b724036d137c50045f85f917f17d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia2_10.2+2.0.0-deepin1_amd64.deb digest: 5b8833dd95e74c7a6c01ac3d050af2e6afb09cba65c00c829f2413edb771cc59 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio19_2.1.0-4_amd64.deb digest: 37825fb31649756dea8c90861669a0cc84f5a02fe35cfad4b4a3f6a13e1f8f10 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/chromaprint/libchromaprint1_1.5.1-4_amd64.deb digest: a4a1c3543fae809c9f543a3d659d041fc5962a50cf2e6b69bf85e43d4ce21edd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cjson/libcjson1_1.7.15-1_amd64.deb digest: 57a3cfa5dc3847d978668e57cac797681cac10be5f6deb6ed3955f23fad0ac24 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/codec2/libcodec2-0.9_0.9.2-4_amd64.deb digest: a3161c3417d9cb176b29e51e176aeb1733a5eb515143f056b5f9256ccae2af22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/e2fsprogs/libcom-err2_1.47.0-2_amd64.deb digest: 81c9a2cd03a925f323e8021855825a535a259867652b5d35006ef468cb17417f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt-dev_4.4.36-2_amd64.deb digest: e6ce2314e3102e905172ac14aad0a9c71f491a8540030c34e13edbbed199091a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt1_4.4.36-2_amd64.deb digest: 3ebae5a5f27eff3c2b9598ba323b4b556d6cec915a78200e305fb6ecde3972cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdatrie/libdatrie1_0.2.13-2_amd64.deb digest: 07aa08beb07e987772c31ef3865ef65b8ea37069c7c840c8a2a56c6d0019df07 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dav1d/libdav1d6_1.2.1-2deepin1_amd64.deb digest: 258bd4678ba2f0f0a63f00e630c890efb34a1adf65e1017308e28a16ddd25eb5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_amd64.deb digest: 289a3fce1a5b476bd2269ae66ac701835d1228614965cbda4134ee95f5a5deba - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-3_1.14.10-3_amd64.deb digest: 1dff3a63259f14e7de7c4502e7083f7077b30a274f09d195176d566406b1b827 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-dev_1.14.10-3_amd64.deb digest: 773a457ee35aea6b386e923e5be37d45b76cf10473bfbfec1fb96a9ebcb73944 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-1_0.0.3-5_amd64.deb digest: b0fe83bb6407742634e312097a5b38fbae52994a62510cfb913f0ce99cc7f2dc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-dev_0.0.3-5_amd64.deb digest: 77ce0b28ed6eca05535abf249545d229d7aae0b2106c606442f25a258d9617c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdc1394/libdc1394-25_2.2.6-4_amd64.deb digest: 6c06c202fd9c218273314883074f55ab3a3b942ff75319af502de00d65ecf252 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-0_0.1.1-2_amd64.deb digest: 5b895283ba2ebc72c8a15a6d4cfafd488edef9dda37ce58e6a3049133a0eec7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-dev_0.1.1-2_amd64.deb digest: eba2a249cf553a50d00b293b18d2d618bf509e0675e24ab690129967b18a6481 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdeflate/libdeflate0_1.18-1_amd64.deb digest: 1b411007d982c5f2f2a6d1e2d0af7a85cbc274770e533fbd895fc54956a995ba - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/double-conversion/libdouble-conversion3_3.3.0-1_amd64.deb digest: e6c6d028a74d0a752ae638ec19b8239f404c36d676c7569936f31000d25a75f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.119-1deepin1_amd64.deb digest: da1e363354894ba5491dd60958ac2bf440ddc5218399632cdf94006e15f97e3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-common_2.4.119-1deepin1_all.deb digest: c32b39f2496833a38f1c5c0c61f9f08d3c5b88da018a7b923367831d488a7061 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-dev_2.4.119-1deepin1_amd64.deb digest: ea8fc7b5d3df155b1605e4f19e2269a43503219b0d57713b3113d416036613f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-intel1_2.4.119-1deepin1_amd64.deb digest: 60ba3eaef17b90b5b8b8f82222e797a8e430a181ca7ba78846e370faa75a32ac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-nouveau2_2.4.119-1deepin1_amd64.deb digest: f4bf6f5f65106f9d3c82067da31c4490f5090a837eeb0e493b7919ec2a4b599f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-radeon1_2.4.119-1deepin1_amd64.deb digest: d1769d0c64768d5b3eaeb8dd8d6d725d35a7c0e6ed007b849ef33c5f6aaa752b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm2_2.4.119-1deepin1_amd64.deb digest: 98bcb40fa91adcc6ffa6dbd2af302a58afac9398164d8d79446284eef7bc4ca4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav-dev_6.1.1-1_amd64.deb digest: 43e1e3603ea9ab7d8c3a04dac3d0bc6570ee7becf616aba0545d44479ce1f5ca - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav4_6.1.1-1_amd64.deb digest: df4c7720a1876aa6b21c9f4909e031e005553fa0010f8aef6bc62090775ee2ff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread-dev_6.1.2-1_amd64.deb digest: 0e75f7f988413ac7b145cc3e1d50b8f60b9c35c1b7e011ab3a39b8567da8bafd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread8_6.1.2-1_amd64.deb digest: 4d368cd6e062b88b0f70030b187aab2fa8ffb3ee447aa5c672be7513ec34ddd1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libdw-dev_0.188-2.1deepin1_amd64.deb digest: 5676b7eb0711cb5b827b9f952da01f9b4ebe36709fcda053e095d4a06ffc3572 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libdw1_0.188-2.1deepin1_amd64.deb digest: da505aa69e33166cdbe4c5be3765bb128b4fb8d2440dcb8c66745e7bdcdd8642 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libe/libedit/libedit2_3.1-20230828-1_amd64.deb digest: 72d015604676696e4e10e238f4795fbdc3d7c0e241147d55c9782ea8baf9a03c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl-dev_1.7.0-1_amd64.deb digest: 5c13bca1b3b20bd64dcb071163da1d24aba5010643ffb36329847437d16c8e6d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libegl-mesa0_24.0.1-1deepin3_amd64.deb digest: 3e0906a79c53b31aff584398b8772efbf919e81a9d14e97bf4c84fbbc1c5c9f7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl1_1.7.0-1_amd64.deb digest: 8c883a493c299a9cc4bf8814dc98b8d22ef4902f2e29b84e47c05075807785b9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libelf-dev_0.188-2.1deepin1_amd64.deb digest: d73215b172ed6f92dfc1ead563fe67176a605a16333a7283f730d2f30deab277 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libelf1_0.188-2.1deepin1_amd64.deb digest: e65d005580124013710ebc5b4b7777c1cef9ff4730a2e07e12f5e179a6aaed87 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1_2.5.0-2_amd64.deb digest: 5be8be254b82a58e77549b1784520f1f7ebb395b57982f87524533e1f061f75a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1-dev_2.5.0-2_amd64.deb digest: 4d0a6ecc7857dc60dddbbd6872c2587f1081ce0d75b84c22ee8641a082fd6e24 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi-dev_3.4.6-1_amd64.deb digest: eadc61825e77bad028fd5eff398ac0e13da7a08870261058525d3f620d90cb7b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi8_3.4.6-1_amd64.deb digest: daa2aeb5a23c7dea09b2f16b94d15fa6f015ad5ff8c3db15bd0ab890fc920dd2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nv-codec-headers/libffmpeg-nvenc-dev_11.1.5.2-1deepin_all.deb digest: ce0f8cd8ba7bcb7631e76a83e0b914df5df7a584ea947e18a56b8dfee2c45d8e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer-dev_2.2.2+git20220218+dfsg-2_amd64.deb digest: fb2ecd89b12c449fd4aefdf906b02d9348b7456ef86e310c3b6b87519f2e7ed0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer4v5_2.2.2+git20220218+dfsg-2_amd64.deb digest: e9131c265b43c8c496459cbe8eb756914ef0220ab236780b1bca59dd21f16ba3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flac/libflac8_1.3.3-2_amd64.deb digest: 176363ec9b23f4b24a1bf8f8d0523eab3a34bd5b5d995c7efa2575f5371f749b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flite/libflite1_2.2-2_amd64.deb digest: d78725600fb8b88418b578b00439dc20ab5382c829da621f593c533ee2279d63 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig-dev_2.14.2-6_amd64.deb digest: 1b8d5463ae362465a609408e932ad0bb6968737a59af9669c1c1d3801a31ef16 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1_2.14.2-6_amd64.deb digest: c4c5fa416637a08cf925dd4ec0115631b69e4f2f5f46f2094f3239167f781085 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1-dev_2.14.2-6_amd64.deb digest: b4851121202b85ff91dc5023277cbe9e0431744ef3c9e7a88aedb8f9e9c52d66 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libfontenc/libfontenc1_1.1.4-1_amd64.deb digest: 758a94a3acf10d671cc056981255d2bca91e42d74e46edb27f3c89b9c5d5d3cf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype-dev_2.13.2+dfsg-1deepin1_amd64.deb digest: 96d67a80be9adf8a9418e1dd33d2bf12d36bb12d4518297842fc8de29bf50763 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype6_2.13.2+dfsg-1deepin1_amd64.deb digest: 362fcb4c7c381338fd78bfa018b17b25f00596afb9c7d99c28b075944b20eb2b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_amd64.deb digest: d5b8f027cfb7bc89d7c4738474763e58ba45086de427ef3fc31600896a14f9e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi0_1.0.8-2_amd64.deb digest: cb0bd9ae5b3c84a26fa8de5a614b557caa3e312fb93b35c46e551c8135275e90 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm-dev_24.0.1-1deepin3_amd64.deb digest: 464fbfdaca54ec21d48ccff5a292eded228514c4a82e697c5b575e4ab65320f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm1_24.0.1-1deepin3_amd64.deb digest: 7c865d2d2a271170fe22be2163dfeaa83130d3a5be53283c90fb296374d2e131 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgcc-s1_13.2.0-3deepin2_amd64.deb digest: ff2d64158ae82f27ff107a3e2cc42e4b4986f048cadd4ce6cd97130cc3deacea - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgcrypt20/libgcrypt20_1.10.3-2_amd64.deb digest: f377a741b54094b2b71a461878bf012c8d602d9af146be9826ce058767e396d5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm-compat4_1.22-1_amd64.deb digest: 35bdaf12b3222875708f4f3967f4517897062a05730f38893695d6344e4f496e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm6_1.22-1_amd64.deb digest: af88f48a9978a03543cb1bb5170ef936fb80595c8621d73137ba47bfef0de0d3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.10+dfsg-3_amd64.deb digest: ae9e961d452cbbcb9b8be26835441805f05888a1840799162c2c1ccff924f9a9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-common_2.42.10+dfsg-3_all.deb digest: bcf7a388b33a76d765b3db4dc10fc0a946086bc7409228898ffbcc522e9dffc9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgfortran5_13.2.0-3deepin2_amd64.deb digest: b4295eb0f22c9c99045b5c666cd07d52ff35ee31105587c4a0077235fa6138a9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libgirepository-2.0-0_2.80.1-1deepin1_amd64.deb digest: 6340c9628c7bcfda4c6826a49c52bc8bf28bfb8d12c163eb19ebde7b0ad61578 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl-dev_1.7.0-1_amd64.deb digest: 0682d06faaefd4fb61e5b8daf45ff4318d9bd96e279792bb4a6eb16b0cc61ba3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl1_1.7.0-1_amd64.deb digest: 1889b6be38cb7319734d330c232b64aff31845745c74732bf824fe39bcbfdb6e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgl1-mesa-dri_24.0.1-1deepin3_amd64.deb digest: a43c15630c4a6faeed06d6307cbdee58ddfadb3a1f95782a19b43afbb9d3e917 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglapi-mesa_24.0.1-1deepin3_amd64.deb digest: 4794d4bbac9b7bb29f8ae0c744c9ff47e57b991f804c8be7473749418e4aba06 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles-dev_1.7.0-1_amd64.deb digest: 32aa7b352edbc74a419efa18206e6126665086f5f1228a195aabd33a4ca102fa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles1_1.7.0-1_amd64.deb digest: 11ab498d36e8ef33d6ec0f6ba338416b53941b54bf0a673fa4ee0af1b056ea19 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles2_1.7.0-1_amd64.deb digest: de53fda16946bfb9d1ca33a3605c4184cb2a4d166ef3139a1822a4cf4da52ed7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-0_2.80.1-1deepin1_amd64.deb digest: 33857078b63370d9edfbceec5a4f8d159db6f75da9f486dd12c97711598f43de - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-bin_2.80.1-1deepin1_amd64.deb digest: a90fbe965ef03785f21e55dc04d550243495e96ba47107ddf0874bd0bde8a416 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-data_2.80.1-1deepin1_all.deb digest: 4e75a1c9e56c81ed2c1737e3e6fe590163a77ff45179101a4fcfb90b4c0d135d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev_2.80.1-1deepin1_amd64.deb digest: f6e2df667c442e8ad0305ec62c85227aead61ff85d591ef32ec9de31d086a74e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev-bin_2.80.1-1deepin1_amd64.deb digest: 47e6ec3f082c09540ec0ce8ec0358e9d0d28ea7822e9e7cd5000672f6fd35adb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglvnd0_1.7.0-1_amd64.deb digest: dbc3b9a38a5527c8a02d8edf0f87779993272d61d9b24c3209df69d1ebf3e540 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx-dev_1.7.0-1_amd64.deb digest: 31a76ec3d0a13d2340d8f89769770655ead3d477c918082fe4fad249c6d51258 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglx-mesa0_24.0.1-1deepin3_amd64.deb digest: 9f0cb9ef7c75fa7a6eb8e3f107647aaea6ad8a6cb8c49f274b752a740caf614d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx0_1.7.0-1_amd64.deb digest: 30197452c9ee62b7a7063d1a9f208ffae0eefec86800340a104a884543d133d0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/game-music-emu/libgme0_0.6.3.2-7deepin_amd64.deb digest: 6f185c6ac2987d5d8ac0f81be7f0377ac34c00ba45ba8d206ae7ef5888bbca00 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gmp/libgmp10_6.3.0+dfsg-2_amd64.deb digest: f6f7232622006411e226a59b2e1bb11da8da62dec41d618b406c4378f467e7e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gnutls28/libgnutls30_3.7.9-2_amd64.deb digest: d56ddf6802b16bc9c2ba21d8c5d6312e0620c9b96dfc11f8345d42c8233e9e74 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgomp1_13.2.0-3deepin2_amd64.deb digest: 0c375f5bb8db4eb551acc961739f4fefebb3f905c6fad68ea7932ca5d1254b57 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgpg-error/libgpg-error0_1.47-3_amd64.deb digest: c7c00dbad22e7c549a25c147e3d471fae76d0c22d479c0de61aac4cf60e97f36 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-3_1.3.14-1deepin1_amd64.deb digest: 3dd8bace90f960c424d8b64664c61d3cc2974ff10b346f896381010d866f1e11 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1deepin1_amd64.deb digest: 24753f2b6138a734b44d8204484520e81964f7d42c9ba8f5b386cb9f5b069c5a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt-dev_0.2-4_amd64.deb digest: 24b26f3439c26e97d091fbcb01775a0e950b5e36075a3ec5393ec03151ad112b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt1_0.2-4_amd64.deb digest: 65731bf387458d83e5037c22ecfadc43b85511e7f76b83b3984de30ed7e9308d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgsm/libgsm1_1.0.18-2_amd64.deb digest: 7f037b2ffe20f167cdac62840fd0a333d15b9a13b58220db8094fdfb081d262d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libgssapi-krb5-2_1.20.1-5_amd64.deb digest: dfa250b0e4ecb5b3c359f49161b460b0139c38b1592b6d6538395855f6c952f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.22.6-1deepin1_amd64.deb digest: 7f9ddae7895eb58a6e2fe1e48087d2fdc045233b63f05e6768702e4093b40a67 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.22.6-1deepin1_amd64.deb digest: 865e0d4a0475a1e5a0994e20d7c03df08f1e0fe927cdc102ce5dcc2ea9627916 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.22.6-1deepin1_amd64.deb digest: c1f1d16a7555c32ca372a804e4d40e18f716eb32d2fc220fcbf7fd572fa5400e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-0_1.22.6-1_amd64.deb digest: 5c8a67e13fef830ffdae2976df63cec9e9b829f6f273da6f8c62c7a9112c3cb3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-dev_1.22.6-1_amd64.deb digest: 3ae87daaac4cc131f840f08ab9bd849b4c74e082e6d2adbf846eb70b315b430b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-0_238-2deepin1_amd64.deb digest: fb9f1c72e40fd7fece5eab37c9eb473bf3d19c84fb808512d60af3bc909a8c5f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-dev_238-2deepin1_amd64.deb digest: b0b603d7732573aed035c0ab43d92a054eb4351a7098fe6f37e4c736c1b5bd12 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-cairo0_8.0.1-1+rb1_amd64.deb digest: f4a681746e6d3f366b17f0a9459c15139d522555dcd8fe8f34958bd9adb389d6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-dev_8.0.1-1+rb1_amd64.deb digest: e3c601dae3fb0699e47adeb60f483a2272ee188137984932801cbdfbad9b7543 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-gobject0_8.0.1-1+rb1_amd64.deb digest: 58e87e5e921b9ae313383b75a3b6a244da66d0560edd80dc0d82dd2ba9ea00aa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-icu0_8.0.1-1+rb1_amd64.deb digest: 113d58af3172be17b95e39116ac766c8d88a315a05a97c03067c1f83f9f36f32 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-subset0_8.0.1-1+rb1_amd64.deb digest: 0a3622ad0c88295ab34afcd78a20880b2f9dc52885aa1c44b020bb5c198b9cdc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz0b_8.0.1-1+rb1_amd64.deb digest: 29f8f51877821f22adc742cab010c0f627ff4db8ffb03a1479441c5f2061f9e3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libhogweed6_3.7.3-1_amd64.deb digest: 0557f0e34a15444b6792c2726b5d1eb48f9ea8cd42bc7f4d697081e804ced558 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/highway/libhwy1_1.0.7-8_amd64.deb digest: 29de8ab6f7b757646f288b5d13cca950dc4f8bad7b9a018a3951cb141c21e9d1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-5_1.5.29~rc1-1_amd64.deb digest: a487d38ad8a4c6f95e94a054b1c052bc070292656752c2086fc7e5a997160f91 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-dev_1.5.29~rc1-1_amd64.deb digest: cdb13aff35ac7525ddc9684104009f0ebc27f7d4d621e3f493964f04b7b45fa1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice-dev_1.0.10-1_amd64.deb digest: e2f62a832348c2caaa368414611c027db69433f5ca0b5a33b6352695152f2297 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice6_1.0.10-1_amd64.deb digest: 03da9ec604f5bd9ba6526c4e6cf90c5b4266818b2c9a34110d74c42b9be87646 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu-dev_74.2-1_amd64.deb digest: 6785f8aa1c6f0a31f38ce9396faaa69de9b497cef76fd94ad00115a1519a171d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu74_74.2-1_amd64.deb digest: ad3f769fb52e996fad6d8dd369ab7a09f558b221ddc7647164ab8cc0bd8fa245 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libidn2/libidn2-0_2.3.2-2_amd64.deb digest: 0ac47209fe66a5906497d6fb1c76a2addaa8daa2becaa434b17d32b98dd057cc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libiec61883/libiec61883-0_1.2.0-4_amd64.deb digest: 3594357265e80dea70f31e6c9b496130868697bbe32ed268ef6219debde71494 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack-dev_0.125.0-3_amd64.deb digest: c777d04f5ed3ee1ad2a2bacbd2b2f9b0924587cc87c98b1e66d776a36ca4a4c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jackd2/libjack-jackd2-0_1.9.21~dfsg-3_amd64.deb digest: 48e84e1e03cd37afea91383b6bf67593fa213b31a096f4f29daecfe87bdb8634 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack0_0.125.0-3_amd64.deb digest: 4c67b5f22237bc85e61020b35c997f196edf4f194aeaeff0085a5848faeb0ae6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jbigkit/libjbig0_2.1-3.1-deepin1_amd64.deb digest: 98eb75afc9dd66ec83f782a46aad59b0add9aad5ac521e91e35d606bb6313147 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg-dev_2.1.5-2_amd64.deb digest: fbc596effd2b0a596b71e306d120e5b660bd478c8c9d24e47c61b4ce2db33d27 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.1.5-2_amd64.deb digest: 664abd1a931622f6d14cced9ea87f3b4f201adf9616e6ef2daf1b044903f699f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.1.5-2_amd64.deb digest: 126fa110768ecfbb4569ddb66d53621f7007dcefa1234e0ba4f37e364903a607 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jpeg-xl/libjxl0.7_0.7.0-10.2_amd64.deb digest: 1ea12b5549fe0cdeafca4c90411b75227ca022ca3affc46fccec506b8cf4eebf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libk5crypto3_1.20.1-5_amd64.deb digest: 203bda60f112a6eb51bfb431c1c9287ff1dbfd4f8bacb931b8ab5aacf52ed4e3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/keyutils/libkeyutils1_1.6.1-3_amd64.deb digest: 0c6c254e3c601388fde14c7e1816d00d9b810d61d22bb7fc11ffc0b133f43a04 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5-3_1.20.1-5_amd64.deb digest: ae4f1183b97f1f376f8caac13b739865aba4b4b77bcfec8d9dd86c85e6977411 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5support0_1.20.1-5_amd64.deb digest: bdc056efb59abe666c17a028924d456a5660c45b68259d2525b9a0d08a8524a2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/liblapack3_3.11.0-2_amd64.deb digest: 8c370498cc58fad13de40aa3e50103f38763779d55a2acd9aacd3cdaf7f552c8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-2_2.14-2_amd64.deb digest: a8630b7a9f07ca87612fdfe486941211598f4fe3148235746f001e68ce91114b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-dev_2.14-2_amd64.deb digest: 129824080ce539c696a2696223de64ec2745031ed1a38d7915213aea370908bf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lerc/liblerc4_4.0.0+ds-3_amd64.deb digest: 4024f109044643693dad079fce71b942ffba3bf3ec994d523130c33e776ea06e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lilv/liblilv-0-0_0.24.12-2_amd64.deb digest: 0efb7ab23ebf1a16f538a85dfe97ede84bfd81b347e67248fad44ec1163172b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/llvm-toolchain-17/libllvm17_17.0.6-5deepin1_amd64.deb digest: d4335b638011d8b79c5ec4b6bd2cd6ad00d84a87b1610b452de35f5e09a83def - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-0_5.2.4-1.1-deepin1_amd64.deb digest: 86018b54282cd5166f1d60265fd44914dc29a67364ff72ccf785fb4c9c772e45 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-dev_5.2.4-1.1-deepin1_amd64.deb digest: 70dbf9a40fd27b898b0eb2b0853a2979f2ae3d4f5c5a677d73c861820989abad - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lz4/liblz4-1_1.9.3-deepin_amd64.deb digest: 9808e49cf41c4a38f0ff4f4de7080ae392682f3cea166abc079a26625c8233aa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xz-utils/liblzma-dev_5.4.5-0.3_amd64.deb digest: 0e611c43cc8cee4b31dd530ef21f4efbb16caab257685a770b612146e18a6b8b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xz-utils/liblzma5_5.4.5-0.3_amd64.deb digest: e8051c2b44fa1cc020c12ef45f4918c1dd7595532af89df0c583b4b3f333fa56 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mbedtls/libmbedcrypto3_2.16.9-0.1_amd64.deb digest: 1e2259f608a4bd66990c6ec31539f6b328776721a6ab5893e172802db5b4d952 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmd/libmd0_1.0.4-1_amd64.deb digest: 755e2a59d76415999f46b0c307ade64df3788013286e902e2531e07ff58ca781 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount-dev_2.39.3-6deepin1_amd64.deb digest: 5b8858e4a945774d52c40824a44668cd0b5e260c61b7f9bd6685fac1cad27698 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount1_2.39.3-6deepin1_amd64.deb digest: a6c22f3b3c30d72424a05ee1c8874674d4e69b5dd703aa7b8936c7c21ab8c009 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lame/libmp3lame0_3.100-6_amd64.deb digest: 79b03dd6b90ece528ed2103c0ad41785290e6ef4d80991179c15f11992031bcb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpg123/libmpg123-0_1.32.3-1_amd64.deb digest: 2ee8fe24498af82de3732ba76ae89a6dbdfd298c1da071a99ef40b0dda4609fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-1_1.0.6.1-1deepin1_amd64.deb digest: 60ebebefd0332d915bfc3fe2f3f2e4782f879d12053acf5ecdd548332745c631 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-dev_1.0.6.1-1deepin1_amd64.deb digest: 986940d8088d963049a5f6438d0c160fd1b503d147279474f4dfbef5cfef23f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv-dev_0.36.0-1_amd64.deb digest: 6f698b9d913e77656046105dcc75ef4c97bdfe14be823d797a445c6ef40f8423 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv2_0.36.0-1_amd64.deb digest: 48913ccb2f7d64b499f29c25678f1e6f052aba3d5095f83c9e4a44dd1f726fac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs-dev_1.1.3-2_amd64.deb digest: 6e2bd7bbc9d3a54f159f1b9665dc373fd85a6896afdc8753f8622598b7dd7af4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs1_1.1.3-2_amd64.deb digest: bf6b67f2e3a455d7e71e120559d371e4735c81e05bcc09dadddd60046a689e17 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmysofa/libmysofa1_1.2.1~dfsg0-1_amd64.deb digest: 1c6cdb1193c443eb151333e709047eaaab206e22e48430fa59d298a0d7f37bb0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses-dev_6.4-4_amd64.deb digest: 4a777cd427df0b71e90ec5dff0fd5c30ffc325821474641d9477b502a0a58e7a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses6_6.4-4_amd64.deb digest: c77179c2998bbc269c69339d73dbfa850063deda170ddacd8c4ae422af9c9a2c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncursesw6_6.4-4_amd64.deb digest: 9993f7cfcc8cf37e6474d7b570faf1d5a19187af8a820f38cd5315461c765f2f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libnettle8_3.7.3-1_amd64.deb digest: d19dd4ebabccc00232223b414732c26b63d4ee67f4147ad5a105795f4514382a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/norm/libnorm1_1.5.9+dfsg-2_amd64.deb digest: 5b552cdd40095bd94c6276021dfc5360f2a6289aa94f155ab3ab3daaef341c1d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl-dev_1.3.0-2_amd64.deb digest: f17e04a96da2dcb260bf75ac750a63d238942ecd9550ce41cc3530774c3ae807 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl2_1.3.0-2_amd64.deb digest: 27219179fd316e3bdc7f9556d1852fcec175d13334b5aadf6274c19be98fb268 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/numactl/libnuma1_2.0.14-3deepin1_amd64.deb digest: 865f9d820329453a390a1c21375d7d7db3c6c68b36924eb6ac81a56cecd09874 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libogg/libogg0_1.3.5-3_amd64.deb digest: 6de429751d24e788ebc92ecb3e4c24c49f6aca67e0a9584f999d387bc4cefd7b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal-data_1.19.1-2_all.deb digest: 91ecc894db5d6661748f4e06d219f8beb14191afecb32fcad7f2b2cd1efcd282 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal1_1.19.1-2_amd64.deb digest: 6519188f969234cbdc9e3cb8346d86339b1f766db083e2519cfdc68b917e00ae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openjpeg2/libopenjp2-7_2.5.0-2_amd64.deb digest: 1d7109a9c3f29c8bde7b4f92866d28860ee641dcfe3a718f4b730f845e63a4a4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libopenmpt/libopenmpt0_0.5.13-1_amd64.deb digest: fb9855bd54825aaa28c70493cafcaab56fe37d5404353d80d9fdc852a3ebc018 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/opus/libopus0_1.3.1-3_amd64.deb digest: 5ac61126fb5114217854990fdf86796f2b8a4c8fb11a29f369e76dd865a42936 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-0_0.4.32-2_amd64.deb digest: 45de2342be7747f5d54d521409709d3207a7f6e16ab44aa9a8242b0faf898cd7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev_0.4.32-2_amd64.deb digest: 72b96d78528a864791531a87e8925c4aa09fcbe37462c956791c7acdb1f9c3df - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev-bin_0.4.32-2_amd64.deb digest: 01ef0ef2ca86b9d3c6defc34fabb25fd742b123b748e2ccfe2c5a816bd6b805f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/p11-kit/libp11-kit0_0.24.0-5_amd64.deb digest: 4e7b4eef76ec00eae267d45af8a98f5e7287fdb9dded5845f395a42f0d3c5b66 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpango-1.0-0_1.52.2+ds-1_amd64.deb digest: 578da94d3d5cdecfa7206866fa668e3d34ab338366395dc4665501e61d1b7a23 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangocairo-1.0-0_1.52.2+ds-1_amd64.deb digest: 79abcf83edc6c1a9dc59f987374c9e980cf2ac8d99ef2cc5f0905b481ef7e113 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangoft2-1.0-0_1.52.2+ds-1_amd64.deb digest: 2102f48725fd401cf12395a26f261386483bb5516b280f8ab35e34da3df5b107 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess-dev_0.16-1_amd64.deb digest: a6f9de2222fe5c6db4552a1c0ee51c85ed72fa0d04e0200271c8947ccc70e1f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_amd64.deb digest: 549736858b99dc151e23c249ff54a69d6c03c03784af6cf8af0b71094df33a69 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-16-0_10.39-2_amd64.deb digest: 1219e0d46f5c584323ad7e41c6fb39cdb8c6ed242a64913b7dadf0c557d84b6b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-32-0_10.39-2_amd64.deb digest: 313cb3eed5be9793ce6db51292ca3d08334e9799856d88c085d268a4a264a586 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-8-0_10.39-2_amd64.deb digest: 26ba66e349a9d46978d24e5b165c327e1ef51007770c43a3a49eb35b5fe0310e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-dev_10.39-2_amd64.deb digest: b2a505ec6ef461644bf946949dc7def6a22ae8627c59ede2a82e9f77500eb856 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-posix3_10.39-2_amd64.deb digest: f1d82802bdf71d13b7fe0b95aa0efbef3d4c661920629686170eabaeb8f4ecff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/libperl5.36_5.36.0-10_amd64.deb digest: 1cca8c85872210489e92326ca7fda2fcc8d9b37a085cd1a0c87d54aa685118e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpgm/libpgm-5.3-0_5.3.128~dfsg-2_amd64.deb digest: b8f9b921c681e6c08abd8d452489762dc8ec3234e058407757f4f383ba2a01c5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-0_1.0.0-1_amd64.deb digest: 8ff688b47c5a3708903a6c3f6dca8a4cdcba5ed0a8195586dd0b5cfb5f1057b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-dev_1.0.0-1_amd64.deb digest: 9f61d1122da18dd796e00df81cd2f73e2ae9db39d8333d44e0b04a5b8a3f75b4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pixman/libpixman-1-0_0.42.2-1_amd64.deb digest: 61dfa0134fe4038b88e3e64081f7340277297771d3a7c1667277cb9b992d2d0a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/libpkgconf3_1.8.1-1_amd64.deb digest: ea1611c43f6379252b0e4e0dc2e75f0ff454253a195ee3ada4bdface0fef1187 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo-dev_6.292.1-1_amd64.deb digest: 6be231b05daf08ba3fa97eeb40280edbdd957bf724668a24244f84edaca12337 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo292_6.292.1-1_amd64.deb digest: d2c356a1d51f741653c4fb2b8cb408694d18cdac95fa63fb2aef7175699e790c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng-dev_1.6.40-2_amd64.deb digest: cf53c0792230a4db2be1859a350683fe3831e58986622c8131e67ddd875fa93a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng16-16_1.6.40-2_amd64.deb digest: 3327085ceef26f45c52af3462d6e506721371991a983b398e2fb741c2c48ab29 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pocketsphinx/libpocketsphinx3_0.8+5prealpha+1-13_amd64.deb digest: 300815c25c3d2b8aec8dfd4a03fe74da7d6bab832deb21fe5aa24a3a7e390885 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc-dev_6.1.1-2_amd64.deb digest: 2f3ac23fe4a84c3a0b9fc0dc3930c452a22a4f46a6f4a46259e3937ad9eaad65 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc57_6.1.1-2_amd64.deb digest: d98bfa519adfce82f0f6e6531e69f78296d54433f85a6e577fdb93ab2ab9fea4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_amd64.deb digest: 8be922fba920a96d098288da4fa5f1d5dfb778b362d7a26ed738014305aa3787 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-dev_15.0.3-5deepin10_amd64.deb digest: 2acd8cec3c6dcd56fb61076ceb09c16345501a42fedf38019ff9530d645e89c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-mainloop-glib0_15.0.3-5deepin10_amd64.deb digest: cd47775313daccca9a1accafb76407d2d416500bb56f8a2c3185fc128ee06daa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse0_15.0.3-5deepin10_amd64.deb digest: b937c4a8c158747b9decfb280749f27f97a3201d0e439c1d20f0368002b3212a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/libpython3-stdlib_3.11.4-5_amd64.deb digest: 306b68a05610c26a24eda1bf5c3b6b413b8b57bdcbe43b1fde2ba53fb784546b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-minimal_3.11.6-3_amd64.deb digest: 8fc4e4d4cbd6354c4495e81080217f9129da64cdbdafff552e1869ffdb6bebb8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-stdlib_3.11.6-3_amd64.deb digest: c0f3bf4287aed65109015b54fdd30356567c9906a447e00790fee3897c1174a5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.8-1+deepin9_amd64.deb digest: a4a6eb5d5bb90a24aac397087a31b4f48f2e2e0354a0cb893eee57606efd8469 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.8-1+deepin9_amd64.deb digest: 4b08199b992d1104c8e0c50a63cb9a80d80a3eca1109d3e8e0bb4da7a9708ef5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librabbitmq/librabbitmq4_0.11.0-1_amd64.deb digest: 4b74d4425bcb1d23d7763e62cb1c9f2be712d9f92e46542151125ba96d623164 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rust-rav1e/librav1e0_0.6.6-3_amd64.deb digest: 59a08ca19c702ae237a780f353ca83fe082a117b7fa4d2fa3678c32e2459c594 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/libraw1394/libraw1394-11_2.1.2-2_amd64.deb digest: 1e6954caad6e844a163ddfedaf5e84b4f2d3bb1f7f15741d351dd108ccdc6179 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline-dev_8.2-3_amd64.deb digest: c35b42f4e60243d41b1ec5be7c16b3563f27591d36c04504b1da5d0ad41bfbec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline8_8.2-3_amd64.deb digest: d7d4a492aa183701aad09f9ae4e156df8d4d5e336f40502f51c72cb5135cc296 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librist/librist4_0.2.7+dfsg-1_amd64.deb digest: a1b97e9333948a2fe8001e60d882e7decc9fabb83d5532305f3ae9a2f0473c69 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librsvg/librsvg2-2_2.54.7+dfsg-2deepin1_amd64.deb digest: 5a83ad3b39da10c6025fb1c5deb826651b1824027e34879b4d707115f60a1013 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband-dev_2.0.0-2_amd64.deb digest: b65f5a9fd961def33de98423a3b2d81d0140a27faf3f5bc8032fd9c11f0c547e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband2_2.0.0-2_amd64.deb digest: 04ce010d404815d3488fed5042e016a8cd15c98d4dc974057d5e84d8427f6ad6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0_0.2.2-1_amd64.deb digest: 8ba9b50925d6722aad9a86f36483cc5cbf169c6199b21edd84f43bf142608cf5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0-dev_0.2.2-1_amd64.deb digest: b0f50dd7eb7bdb0ab997c7c149609bf78ac964804ed1552e5a228607e560af8b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-2.0-0_2.30.0+dfsg-1_amd64.deb digest: 35803e0e71d3e5ba55c48ca81f5c88d9e51e9f5b17c3acc7692027eadb282197 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-dev_2.30.0+dfsg-1_amd64.deb digest: c12bb4f4afc105eadc9e27ac5bfc0a55a3536cf8c6ed6eca8a4d9b0a522bde3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1_3.5-1_amd64.deb digest: 8f2c1b196a486e83ba8513e8ffe6bcceb5208fd0f5682173bbb8dca49033817e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1-dev_3.5-1_amd64.deb digest: 7ca34aa45b21bba74b67aed706968f2b5449b75e41cf2bf68f40134a6330c5b2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors-config_3.6.0-7_all.deb digest: 164115506dfd335f26101e76cb49e2162b0440398ccf2d0c969ebc465dfd7867 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors5_3.6.0-7_amd64.deb digest: 5a730040a0326f0124822fb9ffd632d4891c5451873049d630d0f9da63f0db10 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol-dev_3.5-2_amd64.deb digest: 4a1b7141086a540294dfc0df7eb707f2ef1e57d2a2f4b30f80821164d0f97b7b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol2_3.5-2_amd64.deb digest: 47738eed5444661ac0a8a8f2ce6fee7bcd448cfab2701340c51464cf532ccbc9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/serd/libserd-0-0_0.30.10-2_amd64.deb digest: 3fa4be028ff744b1440c8663795323c01e29f109d3c3f42f61394b917778ac97 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libset-scalar-perl/libset-scalar-perl_1.29-2_all.deb digest: e166ff12f34a06215e637d968841150f79483c4941c0d9c61f5220d8eba35dac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libsharpyuv0_1.3.2-0.2_amd64.deb digest: 9da48196bd083c4749d1b4814a15780fdfa5a962ce3c19c5abfe0fa98e4e870e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shine/libshine3_3.1.1-2_amd64.deb digest: 6b983449633db36212a3484471299d546ef79dca6bfea56866da050aaf260b5e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel-dev_1.8.6-2_amd64.deb digest: a0d200b5240fd0c668af3608d02afd57b8f80bafae5aa5a72f779ab0f3424a0d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel1_1.8.6-2_amd64.deb digest: c6daf227a4341eb7bc63b184834e2c5578bd366510bcefa11c6cbcba254f13e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2_2.3.2-5_amd64.deb digest: d0d482e555d5fb78b0606cb2a54a24f071a5389f216f348f4d210e2b57ecf4ed - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2-dev_2.3.2-5_amd64.deb digest: c8af625b8e344125c0bfd5c2de6899bcaf9d8a37efb48f9d05fbbc00ddc499c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm-dev_1.2.3-1_amd64.deb digest: 5ba6c938bbabded99b2321f5f1cf59414249a31870ce6b8fa83d11e2f14e4682 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm6_1.2.3-1_amd64.deb digest: d8a6d0abf65a6fe4c5edcb5fa37b115477736e60c31118df74b701a468b49cab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/snappy/libsnappy1v5_1.1.10-1_amd64.deb digest: 5b062c9e447f90316be68c9e2750002dd33660b73cd501bf2c67280e4056b0f3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_amd64.deb digest: 91c58af0419a33af2baa57684a5a85ca6c0106cf6f5d80f62341b0280e6284cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio-dev_1.5.0-3_amd64.deb digest: 146e5ad77cfdb5b490fe1b9954da0b8e128b614f0ab79d3be377680840bbf9e5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio7.0_1.5.0-3_amd64.deb digest: aed22e5c4d4734dd70ea33993c33816409d15c1e6355d376abbd7ffccde29adc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsodium/libsodium23_1.0.18-1_amd64.deb digest: b16ee914acaaad0cb1c062370f30934b76e401350bd531d169e5838927c4da30 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sord/libsord-0-0_0.16.14+git221008-1_amd64.deb digest: 10dcd94952de8e379983b3ac597802fccf58aa0f11b23dbe03f406a71e08135e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsoxr/libsoxr0_0.1.3-4_amd64.deb digest: 9736df9018121b8368b482278a533284a82da09650baa3cb3541fa58cfbc09cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-dev_1.0.0-1_amd64.deb digest: 594de75c9db9447845510511852d9b47af98c0a7b961d98861b439d55ecd1d68 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-modules_1.0.0-1_amd64.deb digest: 3431ee4ef557765672c48c260ad664e6cdfc905444c4de5b1f3fe0d2ec3843a1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/speex/libspeex1_1.2.1-2_amd64.deb digest: d550e0dca380616b0d3f2ee0731235fb2e8d5ae6896d2f1d90b7d8e419ed8f33 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sphinxbase/libsphinxbase3_0.8+5prealpha+1-13_amd64.deb digest: d5733e6889f0f09860fe8d693c3cd2e7ccba299324cefca78b1a196fc376d4f7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared-dev_2021.01.15-4_amd64.deb digest: 9aa630e18312bca56ff302138bc700f65b7d3e125db0a22d4f58e67f0c2e5da2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared0_2021.01.15-4_amd64.deb digest: 584ba63374120ba614cd948907a016110100e6d2a97f6b64edd78512d6624d9c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sqlite3/libsqlite3-0_3.45.1-1_amd64.deb digest: 0f66c6b79083cdbe4f0c20db8dbd9d1b2b03064a324a4bcd454bd79cf7a41cf8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sratom/libsratom-0-0_0.6.8-1_amd64.deb digest: 0c389661679c23548729898096cef966a575929c9a8630d2da565169345c215e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/srt/libsrt1.4-gnutls_1.4.4-4_amd64.deb digest: 6372ab454448d490ae9243136afa2abfd956f17b2905517e0674421563cb8bde - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libssh/libssh-gcrypt-4_0.10.6-2_amd64.deb digest: d24f878a3059bc9cfa70dc1053cb1a2aad772c63b8bc528d4ad47b089519c017 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openssl/libssl3_3.2.0-2_amd64.deb digest: df5390c0212f7bf86d51fc72a799d1bdd4be924babb0c10a5de4896664d6e5cc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libstdc++6_13.2.0-3deepin2_amd64.deb digest: 8b8362c5c96e22487f2a3f96a41cd4ddb2d265bf8e991327f01b2c6c55f9a57b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/svt-av1/libsvtav1enc1d1_1.7.0+dfsg-2_amd64.deb digest: fbdb57f1b3b245ef8d92d7a29bd0b054fec010ffd245b1d633172674acbdd7cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample-dev_6.1.1-2_amd64.deb digest: ff2d650a41acdbfcaa54d11e3141959b6fed4db75fe7091108ed768c849f8c64 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample4_6.1.1-2_amd64.deb digest: 4d8d12dac7e5be7a4724af3541ef9db4adc33c72b104d7a8d334f84688cfb478 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale-dev_6.1.1-2_amd64.deb digest: b44dd6bacd41deb7be97e1e8039ca59b8632cc48282bb7d5fe7ed36cc81c5275 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale7_6.1.1-2_amd64.deb digest: 06f20164f43c9fe1b3b8343b25b91c480410fb7cd918b59ad8c5730cab024c84 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sysprof/libsysprof-capture-4-dev_46.0-1_amd64.deb digest: bbaacdcbf341e500cd8fbe0dfb75fc98156b0a5abf94e43105bb5f745c3168dd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libsystemd0_255.2-4_amd64.deb digest: 66d48e2c47cf992897c35325e5aa0ad7a33a22d0ead358face789e3b82ab27c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtasn1-6/libtasn1-6_4.18.0-4_amd64.deb digest: 3f24f7a181f374bd6623bfdc7781e2cee5d948361a456d2f6216aa4ba5c44a2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai-data_0.1.29-1_all.deb digest: 3a87af58b0b3becac7062da11264d083cd68190e7dd421c2cbd00da8841cfa25 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai0_0.1.29-1_amd64.deb digest: f0bd45223660d1b5b5a0d8e34637cda429f1600a407c8f7970293cbb27c4e165 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-15_amd64.deb digest: 6cdc119b8a9f7a413a239e026378793bfc6b6487295db146fbe992994e420097 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tiff/libtiff6_4.5.1+git230720-1_amd64.deb digest: 8a0ee5ae052e11c5f52db3a793392cbcf8450760cc7ac83ff65d12b54120c83a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libtinfo6_6.4-4_amd64.deb digest: bb49775a3e3df73dbef25027937ddb2f714f262e8cb859ef228d26b3c146b6eb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-common_1.3.2-2_all.deb digest: 74bddc18e3289947b20653433e82025873f5679ccba52f258ca4912e435a09ee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-dev_1.3.2-2_amd64.deb digest: 801b243dc8b3ebecf2be9efc9ca69cd987f26830accede2e7142210c5640ee91 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc3_1.3.2-2_amd64.deb digest: 4ded57b843774f3c65449d6ad7bed6efb97bf94cdb4aadb8554fe5cc12210291 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/twolame/libtwolame0_0.4.0-2_amd64.deb digest: fdc576e8da6c75367f25d569902e6217db30f61d7865f35d43a53d824856c974 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet-dev_0.0.7-1_amd64.deb digest: c6f9b502e938710aca86e426e0ffb68ee582c7b71794ab979216d39a5459cd19 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet0_0.0.7-1_amd64.deb digest: 1caaff806a12c9287691c7d286314c21ec9334a263df3d5c77a1433c19009841 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev-dev_255.2-4_amd64.deb digest: 715d310274141783d3ae8cf3892f3ff937a26be3cbe59aac00862dfd9cfdb440 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev1_255.2-4_amd64.deb digest: e914502a0f3100f9ea4fa498030eaec593a7caae57a9fd13fc03d4b90609c385 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread-dev_1.1.2-1_amd64.deb digest: 69a6b660d4789ab05cc3179db19a397b3d0f08b1de27a13462189a2fdb3af52a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread0_1.1.2-1_amd64.deb digest: 5ebb4a61642a553212842e52f9bcca0bcdf2fa47f95d8d1a4b30d6096dbda8e9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunistring/libunistring2_0.9.10-6_amd64.deb digest: dfa507aa9982a3ba8cca86bc571d47e0c30d8adadc833e16cba4edd6e4c68155 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunwind/libunwind-dev_1.7.2-0deepin2_amd64.deb digest: 65e2def5c6962caf980f33f35f9a3af69b48ea2b30f0ca3e2591f2f4e804579b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunwind/libunwind8_1.7.2-0deepin2_amd64.deb digest: 56d808c8a417c5e6cc2357f19ffe6c6ee1393d9428d4de505f850eb85c371315 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.24-3_amd64.deb digest: e719be9bc84266bd81d01ca2dae17b3e8e029ee2574bd1afb82209a11fe6fd31 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libuuid1_2.39.3-6deepin1_amd64.deb digest: 8cc7e43d37649c4ee3595f33589716d7eea70ea4ccde666039b2b1d01a4f8413 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-dev_2.20.0-2_amd64.deb digest: d723e63a3b8162af0a24a778577a5b01c1b87b86ea3e35d9a0a8c07133148faf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-drm2_2.20.0-2_amd64.deb digest: 3c519c4dafb6a654f92945151f133ecc09263a62a030ceef6c5357e0dd3dc731 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-glx2_2.20.0-2_amd64.deb digest: 629509be04d8618d53a78928621d56edc01fe7698115a74b576a18df4eb3502d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-wayland2_2.20.0-2_amd64.deb digest: ed3f11147e594e2a77b9197bc3c0c9a83b1061f4d878368c3a6f409fe74ed5f7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-x11-2_2.20.0-2_amd64.deb digest: 62dd0f5dc9df1a6ced3394b9ee5276fdebc951e02d1d97cfa3ab378159f2f42b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva2_2.20.0-2_amd64.deb digest: f29d80ea76016a56fc7278736a8c38e26351599e35c459014ebf34be33081bf1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau-dev_1.5-2_amd64.deb digest: 2f5ef9e4881c29e23560e96954d85a48b9282b9dfda24eb7356a4fb79b76f99d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau1_1.5-2_amd64.deb digest: 5eb63aa298bf34d70a561dee7b8d9f2e7cdb80c3d1193e05a7775f9fc0739b9d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvidstab/libvidstab1.1_1.1.0-deepin1_amd64.deb digest: 1e15072d6b706e885046073d7acc1e2d792c16df0957f08d8dc1f2ae15955700 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_amd64.deb digest: 9a3210b3d90c53ad6b726813d03dee23f08fdfb6d6be3a7b196f8a08106fa729 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_amd64.deb digest: 64ce2a476cd54927f711b9947ed1f49944e2960cad96be386d139495d8da2304 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisfile3_1.3.7-1_amd64.deb digest: 50a8cfed14d73f5e15fe13de7faae7d05b5e3a5afa79bac1ed373cf8487213a1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/onevpl/libvpl2_2023.3.0-1_amd64.deb digest: fa2bfba7e2b248b1146e8a6eca9bcd2b5b4fadc38d64bb05b22609585ec04a22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvpx/libvpx7_1.11.0-2_amd64.deb digest: 2f51812db0c74d577fc30293fd86ab40be513a457c754a491512bca9b140715e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan-dev_1.3.268.0-1_amd64.deb digest: b3a78dde8283c64a2dbfe25320506a89b8dff77169e6e195129088047a272d4c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan1_1.3.268.0-1_amd64.deb digest: ea988ba1798a25fa13e1a6b852f1f8f8550293daead86a931846e4131a9e6c2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-bin_1.22.0-1_amd64.deb digest: 3418794dfb5973f04ae3268e6b25652c1b331d7d8a698a9bb8ed319a86f7c2c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-client0_1.22.0-1_amd64.deb digest: a9dcb056f123483067628efc6868d3e356f82a605b6be72a99dfde10fa302c1b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-cursor0_1.22.0-1_amd64.deb digest: f13665d75d55151321cfdfbcd410e1104e0a289b5a9a1220f2901b67e4e6933c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-dev_1.22.0-1_amd64.deb digest: 215aa48b7e5c9d8cf8a1aadd479a20da672a4daa7d232613204d33f83f130d21 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-egl1_1.22.0-1_amd64.deb digest: a58047d85cf62e12ec02b174c1633f9ea8e325fbd79793404df70f76e6132a6b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-server0_1.22.0-1_amd64.deb digest: 6c74185503a3795fd58faf093d2840539bcd607286cdf80379d5c99e9e912b16 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebp7_1.3.2-0.2_amd64.deb digest: f2271cabfa4d4847bef8a522e2775d4f9c09a2560911df4779a7cc06d650eec6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebpmux3_1.3.2-0.2_amd64.deb digest: 4732ad39b0b2d4504983466503fa0ea1ba286c42aca07feeca8055d91e17aede - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/webrtc-audio-processing/libwebrtc-audio-processing1_0.3-deepin1_amd64.deb digest: 8cda96bfd71a79594b03f94ee729891a2052fcbc40f58987bcd1762dcb68281f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_amd64.deb digest: 40b9546740607b7907a735481fbb471ff771c5d1fb2ffa7aff4c7785b8e4899b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-6_1.8.7-1_amd64.deb digest: e21e2b12e455664dd8b6ceb201d853c120dea77e0703c95545a3176708ae699f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-data_1.8.7-1_all.deb digest: 400aaa7eaab268850d8c2c512474228204d47774f2aac79cef29d1c125e0c656 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-dev_1.8.7-1_amd64.deb digest: 93ec6c1345900f791549c12440757ba08e756379278bd6fe5133e6690c544621 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb-dev_1.8.7-1_amd64.deb digest: 8b7dfb29e78f136d45eded20c0898464529cd528c1f80461bff6f6e3a2887005 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb1_1.8.7-1_amd64.deb digest: 68341e587a81b03655ff00f0cc9ba543181285504475e66b422308b1bdd30e5f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x264/libx264-160_0.160.3011.1+dde-deepin_amd64.deb digest: 4e6bfa84f6f72256f4afc8b5dc0978368998cc1857f1ea5e71eb6eaba10cdfaf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x265/libx265-199_3.5-deepin_amd64.deb digest: cafe30ec40b612eeca8425ce9df34cc98ef177313c137f4164a08b0461ebdc37 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau-dev_1.0.9-1_amd64.deb digest: 784b6358825482c6b8e0a5515c1ea33a84e1ae70999df930a75c344a476dbafa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau6_1.0.9-1_amd64.deb digest: 0d55ab9b5634a7b635ebe263526719f3c5c925d847c0f4cb927bc61584cf269b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri2-0_1.15-1_amd64.deb digest: 691906c89f7d59cf4e8a244c333cd1e9a91b00241bd44e6d8f5b975905ac1a32 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri3-0_1.15-1_amd64.deb digest: a55805048ef2bcbc16d6ed58879d173012291066e7e94f8ede8eb456d01c3079 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh-dev_0.4.1-1.1_amd64.deb digest: bcd2f51845ca2d454bdb37c8fbdfb240b2af697feb2e99da693f12b233fedbcc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh2_0.4.1-1.1_amd64.deb digest: ba433ab11532a03ac5010dfe8d72a72c10a3d6bbf60b71ecdf147c2875e60ed6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-glx0_1.15-1_amd64.deb digest: b049c57d28e8785786edba1d9ff6139fb8e85f17dbeb921aa4437a160f28ecd9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-present0_1.15-1_amd64.deb digest: 548641b3568cf21f4359bed39375c1c8e873f92fa38955e310a27c3d0a0bd63c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-randr0_1.15-1_amd64.deb digest: 20d03b2822771bfeaf4ba3ae40faa96cf48e3a7c9bdf1d8ec37de6064a0ee02b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-render0_1.15-1_amd64.deb digest: ee032e334e48cdd15385fccde4b4baa399775d3a53aafa3a86e621012a47dae5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0_1.15-1_amd64.deb digest: 135268523d9957b26d436eee5cbb699815e52d98077b4e99516a9078444c9fa9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0-dev_1.15-1_amd64.deb digest: 804e50e424eeef5af67114aa3c1e18ea7407758f27ca6781cde36967766a5247 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shm0_1.15-1_amd64.deb digest: 764d8a7b72cfcd3a4e3f1abb7b19c0af24e307a5595be04f06184b3817df8b44 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-sync1_1.15-1_amd64.deb digest: 8e5d1b2a5e1bfca4c9408bc7b62c161359f4ef7c2f35a25ef1734fd857c08654 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-deepin1_amd64.deb digest: 7d4bdaf45203dddb60740550ae2c55e5dc4eb572f19c85e6e3490b911ed8fa7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util0-dev_0.4.0-deepin1_amd64.deb digest: 8758fa3649f02a8407c05137f433cf6d3b9e41129d0ef6d88bd8a805279605f0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util1_0.4.0-deepin1_amd64.deb digest: f0b0176f922757c116b36801584068ab4e0411c6d97a6ed9acb578a4ef56a7c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-xfixes0_1.15-1_amd64.deb digest: c32ee9a285da0ddb94ab374cece23c5403e691539b5d604a1450f5120485d18a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1_1.15-1_amd64.deb digest: 7472219060504d69f13cea545dde78da4b42455c3018f211d161315c7d8aa9f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1-dev_1.15-1_amd64.deb digest: 981d5049c153139995fa5d28ca1da252bbd5239a25111dc7bc28ab8c556d1b0b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_amd64.deb digest: eebf02c2e8fac042bb34bd7b8c543ebb57fb3dcb1bb413befaf3d975fb499df2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_amd64.deb digest: e30718a3a1cc7e6ee8c6b12c9afd9ae7b53c52ea71996cb9c6685b096bf11945 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_amd64.deb digest: d0b1950a8dfb16ff2f3c6aac1296b508da0f25eef3bc636feed2116f7ba664bb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_amd64.deb digest: ebcc2294de7d5fb853478096435000c2c262f0cc27bb6e9cbd1455984e58a72f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext-dev_1.3.4-1_amd64.deb digest: abf2287250a9b7e702206caf639010502989cbad54709894d5e26aa4149a76a9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext6_1.3.4-1_amd64.deb digest: 59a91d747d250b40897b850d0aa7477a92aa671991287137875b1475a7708a85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes-dev_6.0.0-1_amd64.deb digest: a7a904cbbfe62fc0047c52d777ded6a0376fc324be9f6bd4e361d854a6345d49 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes3_6.0.0-1_amd64.deb digest: e4234708c3f3631d7f361a1429d8b9de9b8acc81244f23b8df64d599b62fcecd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi-dev_1.8-1_amd64.deb digest: cd6bbf54cf17a1a118d6661f31a2eba1c475098930ee10358a2aa88e1b6430fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi6_1.8-1_amd64.deb digest: 7e0136391a631baec172eba189495a2afec63fef9e714dfb897e3a353e6ce014 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_amd64.deb digest: 912769bc586c1677c66f4f84399ce79322de2198d563fe7f0b596171336a4785 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_amd64.deb digest: bcc37defa47aa2579f3e62fecb500d3f9d5a4285d403e97fabe4480ef7dc8ae8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.6.0-1_amd64.deb digest: fd7cb0bb0dc64c7417a6418bdf4d67145947902d5dd668eab4949811b170ee51 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon0_1.6.0-1_amd64.deb digest: c44ac854dbbe987c4a0ee11ddf526b8fff1b701edaa5d85b7495a81aeacc3686 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2_2.9.14+dfsg-1.3+rb1_amd64.deb digest: 62e17e37d376abed4c3e83c1ebd38d113fd32677a15dbf34d9fd7f0c49c48221 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2-dev_2.9.14+dfsg-1.3+rb1_amd64.deb digest: 84dbb0431393e7cfda18a9be0f9c4f7158355af4306262cb884b6794a3b5cc88 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent-dev_1.0.0-deepin1_amd64.deb digest: a6708c235f37caa36f3a4642ead2116d55c054e3aae667a51e4caae050e71075 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent1_1.0.0-deepin1_amd64.deb digest: d888fa37081c9a8722e71b1b5dd4654f656ff8ada74fd2e0695dced07ab596ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr-dev_1.5.2-1_amd64.deb digest: bd2ac4f1e9539e76b65ab9df118967bedf07691862cb1c5d5ad84a4bfefbb68f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr2_1.5.2-1_amd64.deb digest: 99f09cd408f97768ac9bc9beca6af549a4c3b9dc91f5225bf3a0fab96410f833 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_amd64.deb digest: b5ddff8288599aa056803e26e4a230c67c6eb14360705a6bab2cf9037d5303f5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender1_0.9.10-1_amd64.deb digest: 3fe11eeffd33fee74287c85002204c97b9c624d84a79862e4ca5d37c7307253a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_amd64.deb digest: d112a8a931b29eed0b2c058cc53f03be11dcf4fe2dc28a570c38cec52f687c92 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss-dev_1.2.3-1_amd64.deb digest: eb22751d0a6d6bf4d642d44cd672dde9a06cb52f98d5c28fe21c3392edbe7512 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss1_1.2.3-1_amd64.deb digest: c14df136ee438ad89b2eddff611d9686fb520f76df28ab30646e4941011b8617 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt-dev_1.2.0-1_amd64.deb digest: ae9024de545b4ebd213b2dd91b9a8b546bc9c1c45d8aff7354e29a3ff5fece27 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt6_1.2.0-1_amd64.deb digest: 265d9b8ddc3a22b7e7d2341941b01b763a5aa74b1c99e8b31b6541562bd2ddbb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_amd64.deb digest: 34e45565493466f5580d7915f8c0fc15baec4f318fc8cfa5c953e9630aa06bd2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst6_1.2.3-1_amd64.deb digest: a434105d580d5958abdc4b0256968ffda0d06de7923250ec7518173e11271fbe - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv-dev_1.0.11-1_amd64.deb digest: c30ec03c2f64bace35a5d64ee4a342006abbb86923b28a77d3c84843308733e1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv1_1.0.11-1_amd64.deb digest: 30a78145871e68591c84a2edbd4d817e4a0767dd14dbba0b6cfe904ead1a0ada - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xvidcore/libxvidcore4_1.3.7-1_amd64.deb digest: 522c1fb8a87a89a01ec4501f7ff0156cec33b0ad9ad4180daeefb942d116f3f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-deepin1_amd64.deb digest: 0d121d8afd1e5edcd7ddb8ffdaadf0635b37b52d0f3473d42d645f07348ecafd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-deepin1_amd64.deb digest: 6ab24dd183238d561320ff6ab17df620297d4058d82e02606354740c0b8180f8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/z3/libz3-4_4.8.12-deepin2_amd64.deb digest: d3aae52f4765120827f28ad5a851da6f31ded2cb708397f2e5f8307dfc1f58da - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg-dev_3.0.3+ds1-deepin1_amd64.deb digest: 26cc0967bf72ba13bfc7065ad8ea4f80ebf6fd1448af4e24eee958a740aa84a8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg2_3.0.3+ds1-deepin1_amd64.deb digest: 2a7e6a214b981289de1b7a419d9f91a40ebb6ecec1e9eb9254bba27c15892e64 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zeromq3/libzmq5_4.3.5-1_amd64.deb digest: 6374362f4defd2e6a454b31a8fe8e407aeb5558c4cacebc6a97a3c9d7f639e18 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libz/libzstd/libzstd1_1.5.5+dfsg2-2_amd64.deb digest: 92fff5b68d38bc369552561614e82b841fc29587f1c2315842691493c52a5818 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi-common_0.2.35-18_all.deb digest: 1fc738c696936a298eab3f5a6061ae0189078abddbdf7ef3da2b39537d47aa85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi0_0.2.35-18_amd64.deb digest: ccd6ac9289590f2fe84adb7cbe5f4aa0b6da77a316dc818c3244488daf098f48 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/linux-upstream/linux-libc-dev_23.01.00.32_amd64.deb digest: 5185a634b094c2ff95e8b6c870714d84886ba0ce0a1179bf3a3a10bbbfd9e181 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mailcap/mailcap_3.70_all.deb digest: 7ca67d118c03eaf58346eb1e676ff16f4d1aa5252a8cc6b5b3b1ed44556180f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/media-types/media-types_4.0.0_all.deb digest: cd124053950ab8b0373203bceb7eab841791017daf1d50db2ece09e4da52406a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mime-support/mime-support_3.66_all.deb digest: 20294deda4378616c2b48614ee226731ec09663c3497c35a467e8ea5fa03f16a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/ncurses-bin_6.4-4_amd64.deb digest: 090903d43c023e9e1951a7398b17307935fefc29c428d6be3eb20f35b4327d81 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/ocl-icd/ocl-icd-libopencl1_2.2.14-3_amd64.deb digest: 752849bcf3692f005746425ed4307477b665ce980135c7815538a2053e4cbfdf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl_5.36.0-10_amd64.deb digest: 59d13b610350339f3b273097011a3db6db60a99d587bf04eeb881c1a34168390 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-base_5.36.0-10_amd64.deb digest: 50fa4a0bbefde86abf9ffd1fa092ee82af23ccc8f65b5b952526dc885c943169 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-modules-5.36_5.36.0-10_all.deb digest: 907542b9a413bd0276d5ef94fef77083715a692fd33c52ece44d11fff847bab0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkg-config_1.8.1-1_amd64.deb digest: ba5d4f206e08af09936867dfde318d181d5b9a558d303b939f7168848b9c230f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf_1.8.1-1_amd64.deb digest: 7c35cb369049ded76421db307f73f90588fecf5773a3e782aa18528c204a4406 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf-bin_1.8.1-1_amd64.deb digest: 722bea282bf331e59346ff1a62368a6d34158a278cbfbfd95a9303829f970f09 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3_3.11.4-5_amd64.deb digest: 74fd6e3909ba460331b5ea93d14a774582cb9ad8864073bb7e8fd85672340863 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3-minimal_3.11.4-5_amd64.deb digest: 9160c48042c662692bf2c1f066ebc17930094b1e5a4efc28f8ad5e9e225bbdb3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python-packaging/python3-packaging_23.2-1_all.deb digest: 23df868981c665493f1859e974697088549ec5ff69ec56ea06ee864f36100a3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11_3.11.6-3_amd64.deb digest: 443ea88101da9fcdfaac794dbb8d599c6526adc7ddd61c4cd23f7963d20ee7d8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11-minimal_3.11.6-3_amd64.deb digest: ad91edaf5e6cb85c350e9fffdb9b68bb9deb4d8d3870f754467e1b27d20b60da - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qemu/qemu-user_8.2.0+ds-1deepin1_amd64.deb digest: 826ef26398f0175b452080c9a48f7f58bdbecb996b7ab0b28cc3d492690383ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qemu/qemu-user-static_8.2.0+ds-1deepin1_amd64.deb digest: d950b0779d4eb153cf07b8f8820aed052cb810966f986a1fc6cc5b40fcbf6dce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/readline-common_8.2-3_all.deb digest: 35fe59faceb8d9def8b6aa664e091eac8444887bc1f33ba2cf22099c3646e7bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rpcsvc-proto/rpcsvc-proto_1.4.2-4_amd64.deb digest: 76a363bd052b40394f829486c820967c1386539c2fbdd7aa2e77430132fccab0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sed/sed_4.8-1_amd64.deb digest: 2198f36326cd516c1e2b0ba905e1f9d0cc379eeb5001d54e82cfe5421f484d85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sgml-base/sgml-base_1.30_all.deb digest: 7ae50089218865dda4f7250a349c6fd6976702894b1b45f6ef935cf89855c4ce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shared-mime-info/shared-mime-info_2.2-1_amd64.deb digest: 545413a218d5cd7e3103b5e277419a7e67044c95f83ed7fb700c6c99ba523c02 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tar/tar_1.35+dfsg-3_amd64.deb digest: ee27ac0010bb1525067edda7b6b86110a00550232fb154f87491dbc3a3a2c8ff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tzdata/tzdata_2023d-1deepin1_all.deb digest: fe503c524801260208482a1dfc061e79c2a7450111dd90f88ed40d70ac935832 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/uuid-dev_2.39.3-6deepin1_amd64.deb digest: 0ab4e3eb8b8b386bfb3718ba57f67acd57f07ee2f1ceade1beda197c0ab4af03 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland-protocols/wayland-protocols_1.32-1_all.deb digest: d08dca0feeaf2c777d2f8befe468303bd6d4a19c61d3d6ad018505192d333967 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg/x11-common_7.7+23-deepin1_all.deb digest: 9a7643db11023a8bec126312edec4b1b7357b93416bdfbaf9b0cb8bc04506d49 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-core-dev_2023.2-1_all.deb digest: 06b668c63517a64ef18f3733bcd69b077206a58c1c357e21f6ca6742a2864eee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-dev_2023.2-1_all.deb digest: ff7aacd67420615a38e2337f8a250abe36c36dd4f6d1ba824b6a9f4970037030 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-record-dev_2023.2-1_all.deb digest: cb9b512bf67d2af0ede8aa39c91eb2fe609fee0104d6fa2fe9238dfb89417fbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-render-dev_2023.2-1_all.deb digest: 748c9b7bc9c018761a230c31fe647e1f53efb05c56d215137b6fcd2c436a928d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2023.2-1_all.deb digest: 27ef00a9d3f4f7731f484bbdfcb649af86a9e62a3498bdc2870c9fa89a9dc698 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-video-dev_2023.2-1_all.deb digest: 80c2d38b64d64dbb7852047412d72d82220d7afb50a07c9534de84cced11d285 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xext-dev_2023.2-1_all.deb digest: d6017c9b8f95bc58689aac65b74457e1eb4dcb69f493a6ef14dcc6d06ac0ee22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xf86vidmode-dev_2023.2-1_all.deb digest: 8bb6b032cb5067dbfde1d088d92ff84a4a5c85b9a2428ff0cfc7fa4a44ac9908 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xinerama-dev_2023.2-1_all.deb digest: 8ecf54a26a88c3315ae2f35edaf9e74343e94c500f41bef4b1fbedadebec580e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-proto/xcb-proto_1.15.2-1_all.deb digest: a2f1025b48b539de5ed47f1ec69683986503ac295b47dc0cf0a90ad6767527fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-encodings/xfonts-encodings_1.0.4-2.1deepin1_all.deb digest: 07d68c68eeeca62cea0558b4f0bc25896bd82fddfa6c4b02693ee0adc4bde224 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-utils/xfonts-utils_7.7+6-deepin_amd64.deb digest: 5a83d9ea46a19255d820eebcf8c6a8a08339e1e37ad11ac3b8d89d1dcb719e13 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xkeyboard-config/xkb-data_2.38-2deepin1_all.deb digest: 6fdc32f08737735128e20a10f9a8425bde19855e3917d8f26a62ea3a12a9a720 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xml-core/xml-core_0.18+nmu1_all.deb digest: 9c76dce7ec31d455c07c496d47c5c977ca3f67008832ca66f52f0e438ee13ff4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg-sgml-doctools/xorg-sgml-doctools_1.11-1.1_all.deb digest: c3ac4805a75219ecc8a92a79697d39fa9abf6a7fa16da540800a0d30bdcc2847 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xtrans/xtrans-dev_1.4.0-1_all.deb digest: ab37e512128e066d7225deb7f51f0c77f9b0c3913d75f2a7f9b1d708327a099d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g_1.3.dfsg-3_amd64.deb digest: 96000bf9fabaf3da432e554ee8d1d07b54f35aa2ef825af714ccdba671e737fa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g-dev_1.3.dfsg-3_amd64.deb digest: b529b9a549c0c379f43b7441d19dbd4f85b99f8887d9514adb2b13ad5a6efa6b deepin-movie-reborn-5.15.10/loong64/000077500000000000000000000000001473342170300170255ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/loong64/linglong.yaml000077500000000000000000003213561473342170300215370ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023-2024 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later version: "1" package: id: org.deepin.movie name: "deepin-movie" version: 5.15.10.1 kind: app description: | movie for deepin os. base: org.deepin.base/23.1.0/loong64 runtime: org.deepin.runtime.dtk/23.2.0/loong64 command: - deepin-movie build: | cat /var/lib/dpkg/status|grep "^Package: " > ${PREFIX}/packages.list bash ./install_dep linglong/sources "${PREFIX}" "libxcb1-dev" mv ${PREFIX}/lib/${TRIPLET}/blas/libblas.* ${PREFIX}/lib/${TRIPLET} mv ${PREFIX}/lib/${TRIPLET}/lapack/liblapack.* ${PREFIX}/lib/${TRIPLET} # 获取版本号 VERSION=$(head -1 debian/changelog | awk -F'[()]' '{print $2}') # 使用sed命令替换version的值 sed -i "s/^ version: .*/ version: ${VERSION}.1/" linglong.yaml cmake -B build ${conf_args} \ -DSYSTEMD_USER_UNIT_DIR=${PREFIX}/lib/systemd/user \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib/${TRIPLET} \ -DVERSION=${VERSION} cmake --build build -j`nproc` cmake --build build --target install > install.log 2>&1 # 解决GIO运行问题: Settings schema xxx is not installed glib-compile-schemas $PREFIX/share/glib-2.0/schemas # 项目生成应用名和动态隐式加载的依赖库,ldd无法找到的其他库 LDD_FILES=( deepin-movie libmpv.so libgpuinfo.so libavcodec.so libavutil.so libavformat.so libgstreamer-1.0.so libgstpbutils-1.0.so libffmpegthumbnailer.so libdeepin-event-log.so libblas.so liblapack.so libgfortran.so ) # 生成.install 文件 bash ./deploy_dep "${LDD_FILES[@]}" sources: # - kind: git # url: https://github.com/linuxdeepin/deepin-movie-reborn # commit: 1f8249e0855d294017498b4faebfa72f003acc18 # linglong:gen_deb_source sources loong64 https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2 beige main community # linglong:gen_deb_source install libxcb1-dev, libxcb-util0-dev, libxcb-shape0-dev, libxcb-ewmh-dev, xcb-proto, x11proto-record-dev, libdbusextended-qt5-dev # linglong:gen_deb_source install libxtst-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpulse-dev, libdvdnav-dev, libgsettings-qt-dev, libmpris-qt5-dev, libva-dev # linglong:gen_deb_source install libmpv-dev, libgstreamer-plugins-base1.0-dev, libgstreamer1.0-dev, libffmpegthumbnailer-dev - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/debconf/debconf_1.5.79-deepin_all.deb digest: ded6aaa7927ae27337ceb23d49391b4c7ec460a00ba692020e8f4e28388f345f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dpkg/dpkg_1.22.6deepin3_loong64.deb digest: eea7a8587865789ec9f40ae9c3e5310f82a5c8c295b27d65e91627c86c107951 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig-config_2.14.2-6_loong64.deb digest: 17c510572e0a51ecc5a4eba486a1cfcb55d2ac297c84f35bc7c58cbc31e6471b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/fontconfig_2.14.2-6_loong64.deb digest: 85fed3d569a4fc895efd890e842e276016aa92848ddc3419c6fdaabc02280c7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-croscore_20201225-deepin_all.deb digest: afbaf120869a08aa7dd14da9ad014de48a751aa4330534b531410bb86c411b55 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-dejavu/fonts-dejavu-core_2.37-deepin_all.deb digest: 5982963d05dbf4efa009c3ab6db3576a03f680199d75d7d5edda89c55def912c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-otf_20120503-10_all.deb digest: c66666da94b9a0477351ee9d6d7a247a0a3c842e428da770991b45f03be2ee72 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-freefont/fonts-freefont-ttf_20120503-10_all.deb digest: 79b23c3945d4628463672a804a0e81bc4c262ef87cb6316afb40167a50bc3145 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-liberation/fonts-liberation_2.1.5-3_all.deb digest: 9285213fd8d6515bc6c1be5b810bf39918a668a17024a9fd3541879ce7fb5344 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-noto/fonts-noto-core_20201225-deepin_all.deb digest: fa09d95f516c498d55e516d549b8ee41d9a7b6f17cdf0bb4b43744d672ce1366 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tex-gyre/fonts-texgyre_20180621-3.1_all.deb digest: f66d6f798c4b99d8490558cc8209c069b0fe5577c11378c0e01f9e87ddf10824 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fonts-urw-base35/fonts-urw-base35_20200910-7_all.deb digest: 4800c0b08fbeac0335f1e23df2d41528a242383324c256ebece00c8f438eefbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/gcc-13-base_13.2.0-3deepin2_loong64.deb digest: d7d905efe22363e2bfc62368280e79f5c7130a72bab7da57afff396c2c039a41 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gobject-introspection/gir1.2-freedesktop_1.80.1-2_loong64.deb digest: 0ccec17075a177eeb34fdaa8f0b5b9127ab38f4140a070ee31db39079392f739 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/gir1.2-glib-2.0_2.80.1-1deepin1_loong64.deb digest: 9adbd030273cfacb0eb6223bfdce65e0106f5c811d96caa66978598bb40f3309 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.22.6-1deepin1_loong64.deb digest: d6fe80f9cf1f86cdf63d6902325d57edcd9cb74a1b856fcfd2ad4143dac2cd22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/gir1.2-gstreamer-1.0_1.22.6-1_loong64.deb digest: b47aee45e18721de90568ae2aef3d6e34543bcc7907fa088582fe35be64e40c3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/gir1.2-gudev-1.0_238-2deepin1_loong64.deb digest: df1346b7d3f97770fe21c1d05024d3d9583cfd1d4dd3da3036f8a306419eb1a1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/gir1.2-harfbuzz-0.0_8.0.1-1+rb1_loong64.deb digest: 8d32ac76e2b4e797083f544d21def47c7b770865c305c0b0fd21b2b0d399f813 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/gir1.2-ibus-1.0_1.5.29~rc1-1_loong64.deb digest: fd5fbecb1c6697912a8cf691ed1a45f860b5ab5f0f1f5b8cf5d27800889f6575 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/icu-devtools_74.2-1_loong64.deb digest: 19b8f401d6defddc8ad823d459cd98974722b3641083e01623a442f9c7f21efc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/iso-codes/iso-codes_4.15.0-1_all.deb digest: f75ce3c95770cc9cfa650b26eee2c7a2f6f8cee54a22cae29bd1e2cf2b6ccb7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/acl/libacl1_2.3.1-1_loong64.deb digest: 6a5d883c7ca1fb96e88290e5f80f2310b83e190d02133676ef19fcce44b5fc39 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/aom/libaom3_3.2.0-deepin_loong64.deb digest: beb179f4bee226557b96b8979ac145c5aca9b1f5d6cc52cd1d38d1cef184c4c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive-dev_3.7.2-1_loong64.deb digest: a28ac96a664c843dd18ccd760ff52f4e69f51dca701b94c21f508cdf360a1dba - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libarchive/libarchive13_3.7.2-1_loong64.deb digest: 2637b30ed6314afe87fbd71ea4f9935fb90bd6a3c3d818b2f4c1f2422f85edd6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-data_1.2.8-1_all.deb digest: cc8b0202a4e88d3c744fc9d4719a61b945b3b02759fa1af6bd55da6432119b2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2-dev_1.2.8-1_loong64.deb digest: c58cb03ec14907243f9c4966058b86b62c460245cf864d77216803f70c47dc16 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/alsa-lib/libasound2_1.2.8-1_loong64.deb digest: b02682a1b40a508fc64dbdcb055ab58919d802ee028ccbcfcd46f45df824c20e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass-dev_0.15.2-1_loong64.deb digest: 40abb326a7b02a93f60ce787a58852fbc8cb8293942c17001bfdde0c6ad29820 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libass/libass9_0.15.2-1_loong64.deb digest: 624f8c20c7f75e516baff9d91b7039f5f0fd60627bf97f7a3d3be980bca05fa5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libasyncns/libasyncns0_0.8-deepin1_loong64.deb digest: c03afc00dd771536dbd99801a6745de20f479304b3a81367e3056e1db43e0ba2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libatomic1_13.2.0-3deepin2_loong64.deb digest: 0db47582da74a08bb48dff15d52033acb5531c7928ebd94f3333693e851b40e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/a/attr/libattr1_2.5.1-1_loong64.deb digest: 405e34b981984b1e6d04b5093fdaa36013459af4687c62c3a7dbdd0b42766ecb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/liba/libavc1394/libavc1394-0_0.5.4-5_loong64.deb digest: 1ed606d4b28e3d3e128353bffe960abe6a0abc3bc32198e8712a2aeff3fea287 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec-dev_6.1.1-2_loong64.deb digest: f456906f126df1db67ff1e3ccadf60b1c3a82ffc8aff8ce855fd1d85780abca0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavcodec60_6.1.1-2_loong64.deb digest: a490a99ffb8139c1df8e6b9f1343b1e67ffe4dfdd90399e7fad1d16f0e4323be - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice-dev_6.1.1-2_loong64.deb digest: 76a6ebccf0792c3a57e31f911f195677d19ae338b1305d447c7d1028e98089c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavdevice60_6.1.1-2_loong64.deb digest: 6c72ac29ea3c5236d15c11c561a373fcb3223d2359d7b9507b55c30c811194c2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter-dev_6.1.1-2_loong64.deb digest: 3208493b1867ceec68d80c7fb64cc27789d19ba696dd2a9eacc910d58cb4d545 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavfilter9_6.1.1-2_loong64.deb digest: 34b2f371db1c880f07e05757ed18bc5ebbbc7aaca792d224dfe9321b413d1a6f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat-dev_6.1.1-2_loong64.deb digest: eb8ea9856d0dc4008259f364a57944e51ee9088ce1c9b8b4980ec2eeb8e9859c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavformat60_6.1.1-2_loong64.deb digest: 28915a2e525d272fc4d91c1e86f013687424fd004a8d045714261bf579512eef - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil-dev_6.1.1-2_loong64.deb digest: 515b6e197319863a8f2867751d8fb10d632fb6bacbc988e684ab1c4f5bed5b0d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libavutil58_6.1.1-2_loong64.deb digest: 3e5c032b1e56f1ec71d6b834c0f8b9787cde62e0a32178653d9b4764c8fd34a2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/libblas3_3.11.0-2_loong64.deb digest: 8c97d1fa2094a1eb83ea35ae5dab39982c5e1f08267d20dc8ffb162d0d4cf601 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid-dev_2.39.3-6deepin1_loong64.deb digest: 1ae31bcf267da44344974386315edea5a613a9fe7242cba4b1749e90e18c50e7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libblkid1_2.39.3-6deepin1_loong64.deb digest: 461e40f1f9e1aac09b577de585d654725476ee1d355d0ef508fb4ec0ee5e21c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray-dev_1.3.4-1+rb2_loong64.deb digest: e51c1498e3ba2ac5290246218c86c24686ef79267368155f53bbda10d0d33bfa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbluray/libbluray2_1.3.4-1+rb2_loong64.deb digest: b28910a92aece870792abb3b969c20947e0a9dfeed0957b8207c49ef97766b8e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli-dev_1.1.0-1_loong64.deb digest: 862dbd8ec9b468e10f0e0102b2a9ed745059dd8a0a8468f7c8f31d12becc7918 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/brotli/libbrotli1_1.1.0-1_loong64.deb digest: 9cfd7d00edf2602ea1f11404ba784d49b275b795579a816a72eea91901683857 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbs2b/libbs2b0_3.1.0+dfsg-2.2-deepin1_loong64.deb digest: 5f0041e11d00e85632d9e22f90f9ecabbbb4937750a4a7bb7c0a0c80b9391d94 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libb/libbsd/libbsd0_0.11.7-4_loong64.deb digest: 1a2e574f4385b39b0e1597f0220fb743d8f2cc4ed0a19047e97d361151d30c6b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-1.0_1.0.8-deepin_loong64.deb digest: fbff5be770b27924c853df94418156b53ab04d9f4a63e0420c5dce310257ae06 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/b/bzip2/libbz2-dev_1.0.8-deepin_loong64.deb digest: df0de29c790b5644b97df4cac2e47aa5665e5b9cdde16af00d682e7342c7d955 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc-dev-bin_2.38-6deepin4_loong64.deb digest: 23a576bed03d1cd629430d7a3b2f6377e362f40e35569ffa5d9564b91830b9dd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6-dev_2.38-6deepin4_loong64.deb digest: 95d9856edfce43a9763e1bd38729af73d092fbee1e68318995adf854d0c5e99e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glibc/libc6_2.38-6deepin4_loong64.deb digest: a8768ac8d6388feec089cd054f7ddb367e9738b950419edded0b2ead1bfb0631 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca-dev_0.99.beta20-4_loong64.deb digest: c39d3229aeb09b3c67558c99a8aa97b35a11f8dc265c3f6d5316a507bd8b07c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcaca/libcaca0_0.99.beta20-4_loong64.deb digest: ce59df22d670c1af952e22cc3c82c05eb783d78b167705d12b5fb13db38fccfd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo-gobject2_1.18.0-1_loong64.deb digest: 0fd460a975ddc4f87d1704597adcd603ec099f338306d4ee1428e48b03ab7093 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cairo/libcairo2_1.18.0-1_loong64.deb digest: 79927555f9e79d6b0f2e4b533853b67fea7cabb9f3fece9ff7a87684508222f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2-bin_2.44-1_loong64.deb digest: 38b9e2c1ac838f815d8755efb3d609ab674dd31483ee00d4156e1b30bf148680 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcap2/libcap2_2.44-1_loong64.deb digest: 131a163374910ffb65d940aefc7c550cefad19a8097bb07e2c86a71b34848435 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda-dev_10.2+2.0.0-deepin1_loong64.deb digest: 2b64241acc99889ffd2177777de8565e371aed456c4d99bbf3ccb07799da989e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-cdda2_10.2+2.0.0-deepin1_loong64.deb digest: e923449ca68b30d0f3d3c2b1f15b7bf1b3fe82c963e4aec7d3be1cd25ba9654d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio-dev_2.1.0-4_loong64.deb digest: fc80138d79d766b5c899c519893416e9f362f4b42e17bdd03c53ce70f35a0f5a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia-dev_10.2+2.0.0-deepin1_loong64.deb digest: aa888fd1333fe725f36bbbeb3eb67e99b3175083d764d051bbf40e5c6b7ace3d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio-paranoia/libcdio-paranoia2_10.2+2.0.0-deepin1_loong64.deb digest: 6463036cb20ee98c878992fa3cd3a45c2b2b3ef6c564a4895b90e874455b2119 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libc/libcdio/libcdio19_2.1.0-4_loong64.deb digest: 4f1824f239de11b4c4cdf184fcb467f4d6ab34acea25d26a92c79a9b26a4e873 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/chromaprint/libchromaprint1_1.5.1-4_loong64.deb digest: d5e3c7d3236cb0f6256bf1b29926a62aa668aeb7383e9c9c339ec6f1375e8ae5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/cjson/libcjson1_1.7.15-1_loong64.deb digest: a705b9b61cea069c289dde00f333e9ba88370aa2d770c2bda04c38f53f483cf0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/c/codec2/libcodec2-0.9_0.9.2-4_loong64.deb digest: ac3e8cf51f259f54509e48af947004af2066205eba950b11ef4eb1ffd898174d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/e2fsprogs/libcom-err2_1.47.0-2_loong64.deb digest: 904627fe0f99d6b2737ee575b7f6bf326f23a31d41603f273a3ba6d355b57486 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt-dev_4.4.36-2_loong64.deb digest: e8c7fdffa40cea0cecc7e796761f853443a7c115f1e4cbbedcedffebecc61bb1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcrypt/libcrypt1_4.4.36-2_loong64.deb digest: ce691599b6a55a92bfbd4696cd9825a712bc5d9573b4e2b62287b40a5d114197 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdatrie/libdatrie1_0.2.13-2_loong64.deb digest: 2babee650b0a341ed5e23cb131ae40d3c21ee46ecaad54fba79b764111628591 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dav1d/libdav1d6_1.2.1-2deepin1_loong64.deb digest: 2aee3841500c6021eafb9bd0f6231ff1e814e73376d44b4a01d66b3cb6a1e358 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_loong64.deb digest: 2e670599b511c2f01e1740a1daee678ce1d797f917dac37c4047553dc29b4281 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-3_1.14.10-3_loong64.deb digest: 78833b3973000dd505cd32d2301a8d5a9bdc5070360c2de5bebc9e9cc5289b17 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/dbus/libdbus-1-dev_1.14.10-3_loong64.deb digest: ed857dedbb9c3a218fb676f2b03271da3ec46638b351d74042cebb0ce74bb5a9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-1_0.0.3-5_loong64.deb digest: cf0ef0565b5d6dd11ad637f218be781f628d31d83a69ffa23ea67ef9af375d8f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtdbusextended/libdbusextended-qt5-dev_0.0.3-5_loong64.deb digest: 2af73d55c336152e1ae80654ac0a7bd83ee70773c6aa5ef170fc13d27e2f71d3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdc1394/libdc1394-25_2.2.6-4_loong64.deb digest: 49187cc551a3bb2bacad56903348d9863a799b4df8dec284f35f18c18bc8f8ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-0_0.1.1-2_loong64.deb digest: 9f0a49cec61b7d292bcd8fde288a418f2a15c5cf9ec1d7df2ed029c6acc54387 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdecor-0/libdecor-0-dev_0.1.1-2_loong64.deb digest: 1fb8c64800f80d58f2f14c0f6b97de136c20ea5d8080b66a91999036f26ccb62 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdeflate/libdeflate0_1.18-1_loong64.deb digest: 1b60dc1dbbef61987759b5254d408edbd7d653e28b94f857de22578b0ca62dae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/d/double-conversion/libdouble-conversion3_3.3.0-1_loong64.deb digest: 1cb1deef108f4163f884f564e9fcfd429adc315e9509c30ff3bcf936824ac543 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.119-1deepin1_loong64.deb digest: 13115d6aca6ca58b042404db9a1879fc0bcf45ad686e847ff947bd564c00c108 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-common_2.4.119-1deepin1_all.deb digest: c32b39f2496833a38f1c5c0c61f9f08d3c5b88da018a7b923367831d488a7061 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-dev_2.4.119-1deepin1_loong64.deb digest: a877c457a70db78b6ff688e2a9c6980b806d17bcaeca4c847ff0369ea21df727 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-nouveau2_2.4.119-1deepin1_loong64.deb digest: 340ca9e8a1e5ed52beae9c01e585755c40250452a65b09f03ed8cfdd49da129b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm-radeon1_2.4.119-1deepin1_loong64.deb digest: f9b8764e4a5a91961102f6334841f7173d3a073b09e247664390a062b5752653 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdrm/libdrm2_2.4.119-1deepin1_loong64.deb digest: 511dfa9b735007be20cc316892fa861214b87e513b8fe09278fe96a5f3d1b4eb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav-dev_6.1.1-1_loong64.deb digest: 1dd6c1f08489f7514a5dfe5e523e8a72a6e3053a581d5117c66ef7169659925e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdnav/libdvdnav4_6.1.1-1_loong64.deb digest: 34fadb59f4bd3cb13ecee20d70f5b9882d21e2416a9ddf27135373fb6437c1e2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread-dev_6.1.2-1_loong64.deb digest: d2d7aaf9b79c368dfaeecf6047803230f86c366c76523ad03ab82ba25864ab07 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libd/libdvdread/libdvdread8_6.1.2-1_loong64.deb digest: 8b96e5908ce465885ce5ca2d5d39be567a13fcd94d1fc4673178a2fca46a7806 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libe/libedit/libedit2_3.1-20230828-1_loong64.deb digest: 851c5523af03e9dc081aa14afbeade7eeb1a21de5597226f13e0dcbed4a6ade7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl-dev_1.7.0-1_loong64.deb digest: 06868926caed52eb854563d39ccbbf713184d8286dd39c1c74eb44c761db3bcc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libegl-mesa0_24.0.1-1deepin3_loong64.deb digest: b485f9dcf4b8bf5571e55e7fb33ebaa3bf244379a4b2aa03be13be1b72eab053 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libegl1_1.7.0-1_loong64.deb digest: bbc7f8773ad9b2cfa4a27a26d6ad4c276eada2db9b680d54bdf7eb59ee9e5012 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/elfutils/libelf1_0.188-2.1deepin1_loong64.deb digest: 4895603b3429efa0e044d4c728c095763c37e63fb0d89afe5e924bd514e5df58 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1-dev_2.5.0-2_loong64.deb digest: 0e5c956c6ba2967eb8e61479c2bf56189c8bee0077ded44015b9240ab11ae4f6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/e/expat/libexpat1_2.5.0-2_loong64.deb digest: 845317fb7d0fdc029f3aa98c870826391b9bdb530c6aee296fd1671ed5dd8429 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi-dev_3.4.6-1_loong64.deb digest: 864ef36cd80bc0a9fadbdafca5a5ef05ff92458f945bc1c20753d7635d8f17b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libffi/libffi8_3.4.6-1_loong64.deb digest: e1d9a61065aea68e96e14f496d7bfd63e024f8874e1d320cb607efd82dd96910 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer-dev_2.2.2+git20220218+dfsg-2_loong64.deb digest: b21822503a4f10030ce900229b342a01d6eabf48805c3098d336ecb56b583007 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpegthumbnailer/libffmpegthumbnailer4v5_2.2.2+git20220218+dfsg-2_loong64.deb digest: 5ad0bf59c1894d009b962d3d02b8fe603a87ccfa3ecf8795e57bfee774ba0499 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flac/libflac8_1.3.3-2_loong64.deb digest: 88b83d3414a7170f0e4ed2ba671b9cc45e5b376f3481a8154b094148a75f2fb3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/flite/libflite1_2.2-2_loong64.deb digest: bcc0605c44b8acd912b8e162a61cbbe32ee32522296d2cf1f2b0fcb85c942136 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig-dev_2.14.2-6_loong64.deb digest: 353ec48905f9c8553b1e46a60124deb598ff3a1c07ca6a0aff62b0c5ba5bae77 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1-dev_2.14.2-6_loong64.deb digest: fb7dc50d5c6f70b425b95cad47a9b57633b41fb814d06fb42c9a9022c2bf0ee2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fontconfig/libfontconfig1_2.14.2-6_loong64.deb digest: db05b74e370f34d39ff896e5070fee3351a4cb938e86bc6dc852c624cc9534cb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libf/libfontenc/libfontenc1_1.1.4-1_loong64.deb digest: 36450772f287a243ed0ff6c3b5e491021c7d63f6f68a9e71711fbb6e5884c868 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype-dev_2.13.2+dfsg-1_loong64.deb digest: acb0c01cf1db9cd8abf2ba2fb1deea3f6c52e90a471d0cba26e403d9fca7c292 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/freetype/libfreetype6_2.13.2+dfsg-1_loong64.deb digest: ad56d47b6131633a5cd1f2a0e651c4bad65c92c35faf41e664ff79d9ca0df2c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_loong64.deb digest: 2d8935d551e815b5cca700dead0d610c04a301c6406fe268fa8abfac6282318a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/fribidi/libfribidi0_1.0.8-2_loong64.deb digest: 16a5f333df8d58b5b343a3ae40067a9b1132eb7f3cdf1517b8cb88da6d5b0463 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm-dev_24.0.1-1deepin3_loong64.deb digest: 5c6b757d772b6675e51545ea37cb007beca565b4c0d73c9670ddd941bebd1b87 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgbm1_24.0.1-1deepin3_loong64.deb digest: 5a5f13deabd9697e5fa74f51531d4ecfddb4a651bb67d12b4596a84901ba55d1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgcc-s1_13.2.0-3deepin2_loong64.deb digest: fdd63f9f4b4661d9222d57cb5115c85de4b5055ca90f86ba56a948996252d78c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgcrypt20/libgcrypt20_1.10.3-2_loong64.deb digest: 5bdd589218c3c04dd4c23f14e1815e007f56c84bd45cd497a1bf4e720bdbb6cb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm-compat4_1.22-1_loong64.deb digest: bc7c3017145d403f6935e564bbcf6ee8904dbff103b96ecd876a3a66cebb6ae1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdbm/libgdbm6_1.22-1_loong64.deb digest: 2d965b1e2624d262111a5a767278f4f4ad51eb1c073096ce2dbc42e0c02f3fcf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.10+dfsg-3_loong64.deb digest: 69e080182493af879fc8ea17ee6637a962e93a90bf26edbcb72ed4910d32e40e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-common_2.42.10+dfsg-3_all.deb digest: bcf7a388b33a76d765b3db4dc10fc0a946086bc7409228898ffbcc522e9dffc9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgfortran5_13.2.0-3deepin2_loong64.deb digest: c44f73967d5cb33911ed69e1ac59681e9c84ca6f14761decd199d6ba5b3194b2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libgirepository-2.0-0_2.80.1-1deepin1_loong64.deb digest: 02f892b6d38643410cd753637657b9803eb718268927eec5232e68045e81d13c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl-dev_1.7.0-1_loong64.deb digest: 34cc7650a8d538e59d44560580ff7d0819b2607877299a65585cb516d4136c03 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libgl1-mesa-dri_24.0.1-1deepin3_loong64.deb digest: bab851767c84b627dba9ff5c9b2c0c66093615e4a1e9953a22523123a2700193 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgl1_1.7.0-1_loong64.deb digest: 623a88c159a1e9eafc6316e91d3c55179c692fa950ecdd06f1955144813eb6b6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglapi-mesa_24.0.1-1deepin3_loong64.deb digest: 2a5ecf58733e88327293001f6d34e91cff1608f02e3c15d914b38623b28accbe - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles-dev_1.7.0-1_loong64.deb digest: 6fe190013e056bb894aa6f0f4c6944bc49b0ce6a18b1b7187ce11c370a9fc2dc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles1_1.7.0-1_loong64.deb digest: 50ad7aea0b7d7e8faa96153ef0b210b1e5b244b87c989b4a0780370d55cb0246 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libgles2_1.7.0-1_loong64.deb digest: f19e5dc54a62c2f5d7d9d51b522a2d9bcedf709903c8ef0dae2a9ec4f8da93c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-0_2.80.1-1deepin1_loong64.deb digest: 796a8a4bfcc14d204bc23914f524a0dcb3b0545611060b3056547eb281e277f4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-bin_2.80.1-1deepin1_loong64.deb digest: eb81bcc49501d0e04514a0fa968beb0a0b81d4d4a35199c0d5c660e7ea6a1575 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-data_2.80.1-1deepin1_all.deb digest: 4e75a1c9e56c81ed2c1737e3e6fe590163a77ff45179101a4fcfb90b4c0d135d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev-bin_2.80.1-1deepin1_loong64.deb digest: c7351415720634d89b5ddf7e809d78b458be23d09cf32365e14a72141d6d20c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/glib2.0/libglib2.0-dev_2.80.1-1deepin1_loong64.deb digest: 1828aa1e6fe842d0713e1ae545f874d2335ab0c683638eb5bb594dd76037cd87 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglvnd0_1.7.0-1_loong64.deb digest: 4ac20b2ddbc5d3985d95befa3db331ebcf6bf9d8b9c13df462018e2e6fd91218 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx-dev_1.7.0-1_loong64.deb digest: bdb1eb7fd4e391c38fc5a21da29b1569afb19bf9594e46fef10311bd4d4f0441 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mesa/libglx-mesa0_24.0.1-1deepin3_loong64.deb digest: d4e90700c4b3a4f9452797224a757258d366e219d32dbb0c21c34c5206423884 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libglvnd/libglx0_1.7.0-1_loong64.deb digest: 51e7ebb3d6b78cc5f420d864eb898e91a1ab386fea5c51548439231aa66d8232 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/game-music-emu/libgme0_0.6.3.2-7deepin_loong64.deb digest: 03512d70fb50bc97266e9f14dd56fc5577d455aed40072f0f2794056bdd6ac28 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gmp/libgmp10_6.3.0+dfsg-2_loong64.deb digest: 756156cdfe255865308c635fb6ad1e5a7b27aae32c43e74eba334920c3ce23b9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gnutls28/libgnutls30_3.7.9-2_loong64.deb digest: 2b68ea50a264b00dfae6f6b003939b618eb9b4a206e8f3c4e5f6601428d7711a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libgomp1_13.2.0-3deepin2_loong64.deb digest: d3c3f799ef5878222cfb3150d17318cb1318094a2051ab9dd8a2f2bfb524ccc7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgpg-error/libgpg-error0_1.47-3_loong64.deb digest: 432b4819ad1edb46e6d8116596212dbc3a82d0d34c93c3574ded8db352188c8c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-3_1.3.14-1deepin1_loong64.deb digest: 4557b1165b2f166436b1f0d38467ffce003c71ec0bccba1909bf845b7bf02d5c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1deepin1_loong64.deb digest: 9a908894c902772013058dbfc815b89b57037215b934a785744c41793f29d7f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt-dev_0.2-4_loong64.deb digest: af595269383c7f27b7c4be9d633142714c14d64d63c64aa982b5301d6f84b292 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gsettings-qt/libgsettings-qt1_0.2-4_loong64.deb digest: 4a5aa6e4989db5d4632e7e26cc9393dae8c4973796d4e377bf077d529615afa1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgsm/libgsm1_1.0.18-2_loong64.deb digest: 3dc3d3c042ca69e0382907caf9578f0992a109e3e47394ae59359d4183b915e6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libgssapi-krb5-2_1.20.1-5_loong64.deb digest: a74abdb1e7ddf88624513747e6591d1c799bc8774187470bd05d8d489834d596 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.22.6-1deepin1_loong64.deb digest: 71482021633d7cb858805e9d8a3d6e5789efeafd8426e9909833ebc323408e9d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.22.6-1deepin1_loong64.deb digest: 566ea6ea34d31d646cddf4f9f9bb5496a81690ad095a734b8fbdaef407687ea6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.22.6-1deepin1_loong64.deb digest: f6ddbdf7ec28b3a6a07cc979daa1801f546939ea96f6d5f348ad2bac575f9380 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-0_1.22.6-1_loong64.deb digest: 962a5fab9101380b35905e7deeb93302722797fd285ae0de5c50137331599e3d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gstreamer1.0/libgstreamer1.0-dev_1.22.6-1_loong64.deb digest: 07c632430c4d97bce965b02fdd9d24bb44c9ccc4ddda88f8903bd5a91fa26ca7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-0_238-2deepin1_loong64.deb digest: 5930cfa21617d8103fad46534ba6d07b3930e28a3606600755a076d3eb95319b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libg/libgudev/libgudev-1.0-dev_238-2deepin1_loong64.deb digest: 1c2e9030c9a558915577dbf8047628b212c9b48c175709b244dfa794feaccfd2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-cairo0_8.0.1-1+rb1_loong64.deb digest: 4417e5537715ce355cf17e2c14b708aacd60c00e756fddd14865fd14a4677b44 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-dev_8.0.1-1+rb1_loong64.deb digest: 5ca8e4494b8a4c67a5dd8d89b43a19c68bfee7d6cae34e71823764c9805e44c6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-gobject0_8.0.1-1+rb1_loong64.deb digest: 918b829dd998fe63f8c692b4836f9a1d0fdd6d6e8967b95c90aa422bcc6626c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-icu0_8.0.1-1+rb1_loong64.deb digest: df9405946dc01571fdffcc3e879e9d2ead854de8b37c0fbc0ff0ed8dde265520 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz-subset0_8.0.1-1+rb1_loong64.deb digest: c5563afe120af40e4830126b5d59d392a4504bd8909e9be74fb1fdd479c0646e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/harfbuzz/libharfbuzz0b_8.0.1-1+rb1_loong64.deb digest: 23f39df88cbc47f74e5a77408b2cdbc4fc47e41fdae3e5fb319a9cbe552c12a3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libhogweed6_3.7.3-1_loong64.deb digest: fca8fa6138c16bfb7f8d8fb78f55799c24b9a01bbac0202816b22624cdd0da6a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/h/highway/libhwy1_1.0.7-8_loong64.deb digest: 831d45c39ca2bf93b17d7f6631cc4d3b6ef1dde879911a3fb55953fa73719fdf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-5_1.5.29~rc1-1_loong64.deb digest: 915d385e001c44ff9e3727920dacd13002beb0e82824f805bb4ec732602770ea - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/ibus/libibus-1.0-dev_1.5.29~rc1-1_loong64.deb digest: e8328032be7ca89cac5d5615c413cb2520548e28b27159cb63ef341b13cac3d8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice-dev_1.0.10-1_loong64.deb digest: 1a98c216553ebec7d6f2c6b8809dac1f1ce72fe503182655dee7b45a0f1bc13e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libice/libice6_1.0.10-1_loong64.deb digest: 71f07175fac63f8a51f001299a9329a38c4320df6b46e6bdda20768aa90a3456 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu-dev_74.2-1_loong64.deb digest: eb1495de732a9af8fc38ec1ab776606d493dc71571d1ddb336256e1442ba59ae - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/i/icu/libicu74_74.2-1_loong64.deb digest: ad3068aee2d3b3d2b9cf42497cb4e82626cf272202d0736b349a649116ed557c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libidn2/libidn2-0_2.3.2-2_loong64.deb digest: b235fca3fd81c2e6918d54b8d71f79757d6b818cf897fde7cb3826dc23ce85b3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libi/libiec61883/libiec61883-0_1.2.0-4_loong64.deb digest: 9b0ccf02f262231532ec32a38bba738b12d21bf6d45b36adc08a169c4859bd62 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack-dev_0.125.0-3_loong64.deb digest: e1d7c1588da4c164d1d310148b2dad335b60372527f3bf1392324332b768b99f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jackd2/libjack-jackd2-0_1.9.21~dfsg-3_loong64.deb digest: e94585b0f12da0a118e85bb7e8030b370c1107bd037609a9a0e309b1f4ce39c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jack-audio-connection-kit/libjack0_0.125.0-3_loong64.deb digest: 979b48294763a34670b851c5000f4560123c9ebd2cee94a445338e28fd5ae32a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jbigkit/libjbig0_2.1-3.1-deepin1_loong64.deb digest: 8940e6f4dce77f526bc32b5211d850389bc0875cf944520e9f0a4d85a170e9a9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg-dev_2.1.5-2_loong64.deb digest: 152658aba54e2f163ba19c0fe53aa7666e1c6907eda79433f1ec38240a9670b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.1.5-2_loong64.deb digest: 342808c163f19bfdfdb7f36cf51acce6401aa2c0df6fd5695d0b3a9f2731bd9b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.1.5-2_loong64.deb digest: 47df0f4474b4722b6a741b7c8b33057f38f58245efa92c176abd489665e92c1f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/j/jpeg-xl/libjxl0.7_0.7.0-10.2_loong64.deb digest: 9238c4052824a05ef4fe797877d40830c59dae0368c8691ba1b96578cc798b20 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libk5crypto3_1.20.1-5_loong64.deb digest: 4a83826bbb0da645b6f48c1de0682bd7ba1d61a2b903fed7738ec7c88f559b8b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/keyutils/libkeyutils1_1.6.1-3_loong64.deb digest: 8992cafa99b2adbcc73f3ce195b68eec72a1f777cb5cebea825c1848f35a7a1a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5-3_1.20.1-5_loong64.deb digest: 071d32ffb73b3feca3d9135ec6109730728b20f40dc194abb24d3f4506c964ef - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/k/krb5/libkrb5support0_1.20.1-5_loong64.deb digest: 7ec7dcba628cbededb02866a71961599d1fc501303c2797f756381ce2026845c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lapack/liblapack3_3.11.0-2_loong64.deb digest: dcf626ad114b8c5998b91c1adf1968a83146bae6bbd087ea5ba341780bd0442e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-2_2.14-2_loong64.deb digest: 0d4c7d34f69d56cc287e478af83d7cfddcf44a5ba77b6c4bf8a8afa7864c9f7d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lcms2/liblcms2-dev_2.14-2_loong64.deb digest: c3984f83fb1014fdc5eeaf79691e937c3c78f6de2ac26a689b3bdda9ebd6b8e2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lerc/liblerc4_4.0.0+ds-3_loong64.deb digest: 04d2a5b464a65ed87d48e331080c46b39c6b2e088c5b4d251f06a46355dc905a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lilv/liblilv-0-0_0.24.12-2_loong64.deb digest: 802937863bd86fcc896dee8df836285c0fd60ecf9dcb173b20f7ab3521fe3317 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/llvm-toolchain-17/libllvm17_17.0.6-5deepin1_loong64.deb digest: 5c9213ccc3947aabf072e07304e80f9e7b41a9265af5d32d0bde32c1c282ff6f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-0_5.2.4-1.1-deepin1_loong64.deb digest: 7cabaa9e4d09b4be841cca58f05f7ad989b14d75c4d4eac68e033328a2522969 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lua5.2/liblua5.2-dev_5.2.4-1.1-deepin1_loong64.deb digest: a1d94253a78dcdd6b85fc3ccd4d057794eb7bb506e3365c9563a6747aedef676 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lz4/liblz4-1_1.9.3-deepin_loong64.deb digest: 223608f8e5ab70c862665634392467d8cdb27b39d749f8367ecf8f709ffd0044 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xz-utils/liblzma5_5.4.5-0.3_loong64.deb digest: 8922429eeb2d802e40eaba8567afb65504a70988e500d4d7a455f1ea6c79f20f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mbedtls/libmbedcrypto3_2.16.9-0.1_loong64.deb digest: 8179fb6587d2de06e44f88785a1a3a530b8b8317d17c0dd4a4878505f6eb30cf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmd/libmd0_1.0.4-1_loong64.deb digest: f54d26b7c46c848e15a460cd03140e8a436ea2f5b6b7e287e47994d1c627dbc8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount-dev_2.39.3-6deepin1_loong64.deb digest: 73941c73eb241e1f14e1437904f999a5281cd7f9ab011c4fe07bc7bcda5de9cc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libmount1_2.39.3-6deepin1_loong64.deb digest: 09d325477885d70857f69af079ae718949684f01e4ef75de78bc39a08ba3c25d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lame/libmp3lame0_3.100-6_loong64.deb digest: 4a2df6ca32a6a40ac918843adb284bb0929ae321f2c3dd269e40749d542af562 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpg123/libmpg123-0_1.32.3-1_loong64.deb digest: 5c5a5a88e8e126559bf0605e8078eda503cef9fbee62cc681b283b1795633b42 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-1_1.0.6.1-1deepin1_loong64.deb digest: 587497d42a1cd2ff9ffca84b4d84b5d6026c51ff3dbe291f302f685b183e79dd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtmpris/libmpris-qt5-dev_1.0.6.1-1deepin1_loong64.deb digest: fb3a198ce498075e48f8246686bb78aeb2c54aa25b448f823d1df09e18ad4a2a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv-dev_0.36.0-1_loong64.deb digest: d98043a3b25ccb6b0377970d3647f7b04c1761ede39cbf49e0f1cc8c56a29138 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mpv/libmpv2_0.36.0-1_loong64.deb digest: be51b18b3f6813ef63b9c5c8460eb984fc856a67bd6a7b88e118961e45ec27b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs-dev_1.1.3-2_loong64.deb digest: 8dbf843126331bef806a3859b5b0a0d131dc3ce3c3cb1bc5ddc30fadd62c1e5c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mujs/libmujs1_1.1.3-2_loong64.deb digest: cdf3e37d1042f3d2bb83646670efcecdc7b221e79e3ff867c32689a81341ff19 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libm/libmysofa/libmysofa1_1.2.1~dfsg0-1_loong64.deb digest: af51c3ea198343b87345b6699d46a0610d20bc9d6064d15ef51125edc5972d08 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses-dev_6.4-4_loong64.deb digest: b5adc396b57d0d888f6f3b07b3ad1cdbe3d78f3a89efe30b05469462f6bc28b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncurses6_6.4-4_loong64.deb digest: 97027cacc48e63b806ca0903d726499afd5e05d1f07e5dde9c27a26d543ba277 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libncursesw6_6.4-4_loong64.deb digest: 4db1ea7ab75ab8e38d6ea0e9c408766dd8328c84ded9e53aae7f6bba29e8e7e7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/nettle/libnettle8_3.7.3-1_loong64.deb digest: b49e593029d91c73f2240ffb5f129e3a47f613aadbf8ab5f50d592b2a5abdc98 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/norm/libnorm1_1.5.9+dfsg-2_loong64.deb digest: b8ccd5bf943ded55cccdc92d59c8abb35a1fb65fc3425ebe35670d37b7bdad6f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl-dev_1.3.0-2_loong64.deb digest: 20dfccabfb63024f4d18c0dddf6271436dd6b423643d8140ab157055c006b31c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libn/libnsl/libnsl2_1.3.0-2_loong64.deb digest: 295c4fdb7405a01bac01bc50e542232014a5225cac5f675bfbe33ea41d1acd67 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libogg/libogg0_1.3.5-3_loong64.deb digest: 45f908be81e813e6326426acd4c5675adac085383a93bf5b87bee2942a2152bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal-data_1.19.1-2_all.deb digest: 91ecc894db5d6661748f4e06d219f8beb14191afecb32fcad7f2b2cd1efcd282 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openal-soft/libopenal1_1.19.1-2_loong64.deb digest: 7ac233c2f743368fa3db292a6c04a824dbf1bc4817cb40f49fd457b96d51f33e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openjpeg2/libopenjp2-7_2.5.0-2_loong64.deb digest: 575da3427fe1632f4dde973fd2cf3b4a15dac1a77d612bedebeae18d1968095e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libo/libopenmpt/libopenmpt0_0.5.13-1_loong64.deb digest: 2505d45aaec9f1f09f6c7af60165fc698968a6769b37b376fa4599e66c25029b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/opus/libopus0_1.3.1-3_loong64.deb digest: 49e4f3ab950054084d1cbdfe848f0dfa73c4ae0f8ceabe0a6987c522a26e3765 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-0_0.4.32-2_loong64.deb digest: 7766214e53b7df98494abdb571e257b5d0a4dbd23fb8f4e2e216ec9278503175 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev-bin_0.4.32-2_loong64.deb digest: b0290f75d77dba95b49716baa4f1d8fc7d44e985885fc107d779265f1b39840b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/orc/liborc-0.4-dev_0.4.32-2_loong64.deb digest: cf0cd5db655b950ea94677c5209b3fcaddf0e2e68be30d670e5c186f48790c8f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/p11-kit/libp11-kit0_0.24.0-5_loong64.deb digest: 7a8a243c2696702456bd5975c37d223f908812c8562321ce9d59e1fb4d40616a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpango-1.0-0_1.52.2+ds-1_loong64.deb digest: c1e53075721790fad6dadb0f0c6f85da39b2e127374424a63ac010d4d7972f74 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangocairo-1.0-0_1.52.2+ds-1_loong64.deb digest: 145fc9b1b4e85cca2d15a606d73ad0fdaadfd2c16d23afa399ea2d9f68cb09b3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pango1.0/libpangoft2-1.0-0_1.52.2+ds-1_loong64.deb digest: 5d476421c3f46fc235e62292a437b6320e9f8cad252f6277a3c607faa5095afa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess-dev_0.16-1_loong64.deb digest: 84c2d9b7014049489d78d91125287ae7851eaf2356f6e481a66c24560df379c7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_loong64.deb digest: 47818f19a00220377e0eeedaaca11dbb6d22ca9026598d45e6de50cd8c891c75 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-16-0_10.39-2_loong64.deb digest: c8062fb10212742a2ee3206282e185e1072fb891c17ae8bbb73777d7f4ebd93b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-32-0_10.39-2_loong64.deb digest: c5694b615e555a112c2ec14ecd8002cf48bbeaefaa8a83c4c81f5bcb80825e31 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-8-0_10.39-2_loong64.deb digest: ecc34edbd930aae24bd00654a682592d396e5f0b3d94ad3c40baa300e2cdd0c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-dev_10.39-2_loong64.deb digest: 165eb3c1854d96d79f71a381b0ce8c04cdc8984d36587f15e77fa36e78320fd9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pcre2/libpcre2-posix3_10.39-2_loong64.deb digest: efb78bfaecc447039df6ceaf21a40055d692ceea4a38e700e280dfd05c521881 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/libperl5.36_5.36.0-10_loong64.deb digest: 04a865c6db98c65a2a540eb254174d4c012db34fc3b333ed5649fecedbfd0fbc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpgm/libpgm-5.3-0_5.3.128~dfsg-2_loong64.deb digest: 9b68dc19b458a678ae21f5eec1f27f011f0c8da502cf3cf234b5cf4f8e2b093d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-0_1.0.0-1_loong64.deb digest: caad62abcc24776f42cc60f9a75b81400fe82340ee41f53acf4b2506f4577879 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libpipewire-0.3-dev_1.0.0-1_loong64.deb digest: 986e42ff4434f804d7cf19042753af5abbcbb6e96032692637641c3b677faedc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pixman/libpixman-1-0_0.42.2-1_loong64.deb digest: 0b76c37a85a00b26233f17a3cc0e4459649ba286528614f121767c9b82c4d3a7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/libpkgconf3_1.8.1-1_loong64.deb digest: ea2a5c6752184aacd8e8999cf08acb7b94b353256f55d00494dc237856215ae9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo-dev_6.292.1-1_loong64.deb digest: 1788f9693b4ca05197371646bcaa73a930b715c483d78d041fc34b63464d0755 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libplacebo/libplacebo292_6.292.1-1_loong64.deb digest: 7debbcab4eb5ec6bf161b65951a98328d7b4939421989035f4ceabed7f05a183 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng-dev_1.6.40-2_loong64.deb digest: b264603a1bf9d98f62b3a2372c640f37c77a8eb45d7cef5fd450115c2cf8e2ce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpng1.6/libpng16-16_1.6.40-2_loong64.deb digest: f865dc5b460fcb0d70dc87894a98da21ebde6149302056fe9a15a3687d388b9d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pocketsphinx/libpocketsphinx3_0.8+5prealpha+1-13_loong64.deb digest: e8f253a5d32a8a0872ed67fc096d933401d73e9518d6c104d1c99c278bd9ff74 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc-dev_6.1.1-2_loong64.deb digest: 4f5aeab9c2b5ee3363298c95f4eb035bce599d8dba40d7a9cae7dda2b173e2c1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libpostproc57_6.1.1-2_loong64.deb digest: 777d87528ea50c84d58903c3af0d31afa9241446b812f4e451bb61ada6fd7aca - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_loong64.deb digest: 9d68b88d2e9de4c313b75ec6ebd8df51105856bf8998470dc7faf770308ddc40 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-dev_15.0.3-5deepin10_loong64.deb digest: 04f9d40cd11d68914d7b614b5088a349b28f25cb1ad6f9040ae4292422585eec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse-mainloop-glib0_15.0.3-5deepin10_loong64.deb digest: fcc14b8805b17862f7dcae796a8f77c6d6b47191034d89ce4f34290a425d9d38 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pulseaudio/libpulse0_15.0.3-5deepin10_loong64.deb digest: f74896fa65b4a32815c6b4b6c9e9723cf5e483fbc7189cf67c6788e7f7ec0c8b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/libpython3-stdlib_3.11.4-5_loong64.deb digest: 708cf806ce99b6cb899dbf08e190301ecfc5e98ea1877f8a92bfa0be8b22f58b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-minimal_3.11.6-3_loong64.deb digest: b9580b84a0fb035fbc1e09ef5cee5fbcd08ece6fb1a9eea1dc545e4e254051c3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/libpython3.11-stdlib_3.11.6-3_loong64.deb digest: fd48d8c7167ca6505591193c1d2d28936b01cb38313ea57feaae3e48e858d8ec - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.8-1+deepin9_loong64.deb digest: 13438d4edf8af245fa13e4dbddb3db8ca600dabe195353387287e8bcd835ead1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.8-1+deepin9_loong64.deb digest: d9d974c1916206ab779fbe614aedb3131eadb88218818567d77b423f2b30bf52 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librabbitmq/librabbitmq4_0.11.0-1_loong64.deb digest: bfc60cbd6ee84fd4a6ee2d1002c27389d58dd451f8ec8bfde0e74fc8dbcfbbf4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rust-rav1e/librav1e0_0.6.6-3_loong64.deb digest: 1e6853c1d99619004034edd20102899b5896035984ed273409bf107d39139d94 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/libraw1394/libraw1394-11_2.1.2-2_loong64.deb digest: 2bc64e21a7bd6c73f65e1e42fbbabe9d9fe8c70c5a831dd67dd6c4d77291be7c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline-dev_8.2-3_loong64.deb digest: 3f3fc256042a55f1d41811e5126319d8c6134b63ab75e086f299a7c7b38119e6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/libreadline8_8.2-3_loong64.deb digest: a1c114f0856366970ce731783250b16f1a600a917ac54eb45b3fc765a7dc5e8d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librist/librist4_0.2.7+dfsg-1_loong64.deb digest: 14d4514b719515758c011e60486cdd4b3e652f1d556375f5e21a3e9029766874 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libr/librsvg/librsvg2-2_2.54.7+dfsg-2deepin1_loong64.deb digest: d39fbb626553263fc706ec0f65c22b2bb839babfbf4f36b244aba149b1c8cf94 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband-dev_2.0.0-2_loong64.deb digest: 5b767fab8a63560238f51bc01e52bd810b8534420261fa3b35f07782782b0541 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rubberband/librubberband2_2.0.0-2_loong64.deb digest: ec32b47fb4654bb8797ea3767da27bb02312bdd182aac983d5cb842c02361b6d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0-dev_0.2.2-1_loong64.deb digest: cdb0eb729d111dc04c15171ab67538a80a0ce106d6c86a6335b1f15bf701a99b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsamplerate/libsamplerate0_0.2.2-1_loong64.deb digest: 923a9d2f3cf3cbd71aa95c2451e47021ba3c4b93789a8128b93b8df4f8090d82 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-2.0-0_2.30.0+dfsg-1_loong64.deb digest: 8d993f91ba53fa81bb7fded1105d7d0017ad4118a7809a094d94a68e5cb37b95 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsdl2/libsdl2-dev_2.30.0+dfsg-1_loong64.deb digest: 75b4f6adee3f9e8193741479ed547d86837d5d15ef7a0373243ed5ff49dcb763 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1-dev_3.5-1_loong64.deb digest: a84f44a2038623063260320604fa884138627507e9aace50e4ef9cfb81637ef8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libselinux/libselinux1_3.5-1_loong64.deb digest: bc86b98fb1945359eb0959b07bba6c40c71668255342bc3bfba3cca9841437ff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors-config_3.6.0-7_all.deb digest: 164115506dfd335f26101e76cb49e2162b0440398ccf2d0c969ebc465dfd7867 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/lm-sensors/libsensors5_3.6.0-7_loong64.deb digest: 654049e53be85d4dab717bbfeb848f579c19d0cafd926a845357c62813263cb2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol-dev_3.5-2_loong64.deb digest: cd6de58ec8972c1be0f4028a31b7b94d8079bd1c0bb6af78c21ab1c1a0b245a2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsepol/libsepol2_3.5-2_loong64.deb digest: ffe0ab79dca28bc304448ab0b91016fdd679746ce0d4395abbf9c38cf0c9774d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/serd/libserd-0-0_0.30.10-2_loong64.deb digest: 75c43427715f5ef52ffe1ce86f2514f30e725c257270984dac743fcabf7c9dbf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libset-scalar-perl/libset-scalar-perl_1.29-2_all.deb digest: e166ff12f34a06215e637d968841150f79483c4941c0d9c61f5220d8eba35dac - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libsharpyuv0_1.3.2-0.2_loong64.deb digest: ee12b9b2406d779965c510510bd32f01ab931f62eea583bc206c1d41f4a0711c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shine/libshine3_3.1.1-2_loong64.deb digest: 83ec46f7ce2381f484401aa33d7540cfd954f5064ab2c3372ba55f67c9204b8a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel-dev_1.8.6-2_loong64.deb digest: 9fb40a946d350f2b76911c7e64748aff66d9e316c58b1b18686ad86995496ac1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsixel/libsixel1_1.8.6-2_loong64.deb digest: 13880034d44ecaedf746798b519ef820249667f5c7ecf9f55a5215ba1e54d008 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2-dev_2.3.2-5_loong64.deb digest: ad34c1cb3310448ec1b694200a7e4f0dd1d5cbad705d07ad0dcc961a4aeced22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/slang2/libslang2_2.3.2-5_loong64.deb digest: 0faf8a7ce957bd68fa4d168f37ca12d1aa835ea9a3f77926c61ab5c381f23031 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm-dev_1.2.3-1_loong64.deb digest: 7344b203dae8cec5ec5280496d7855a4d3c6131e84903b50e9f53590ac356fd1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsm/libsm6_1.2.3-1_loong64.deb digest: 9af2780f0816a5e2c10bbbe3abb974ba236ecf0beef15a49040433889c678847 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/snappy/libsnappy1v5_1.1.10-1_loong64.deb digest: fa383c1e4986032b89c9d9430f78abb03019efdd9625e7f8e57979cc1de6759f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_loong64.deb digest: 1724af768ad3f06d2bd8533b94e1327ef2ebe725405744cd510620afaec64a7f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio-dev_1.5.0-3_loong64.deb digest: b5714d99d1f2550cbf28e7f2a7b013746290e9741272811f5c1eadfd1ab9f3ab - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sndio/libsndio7.0_1.5.0-3_loong64.deb digest: 1971407ade4491d53bdc51dd754a5b86877dccd4bbc18d7d72b2b7c808b82f40 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsodium/libsodium23_1.0.18-1_loong64.deb digest: 967fe90420e1c2608209f23f3a959adc2a3395203139559ef52a957bde15123a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sord/libsord-0-0_0.16.14+git221008-1_loong64.deb digest: 0ffa187ef4755909e7306c416ef177f3bb28b70c2509a558b9dee95f9e6c62f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libsoxr/libsoxr0_0.1.3-4_loong64.deb digest: bb803883ea5a502ae59c3ee986680ce3612863406469d327009684d7377b27cc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-dev_1.0.0-1_loong64.deb digest: a6a49e86706b4a2a8ded1b053511f2b5c334ba2304f83b41082bc80373bae320 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pipewire/libspa-0.2-modules_1.0.0-1_loong64.deb digest: e1838ac3926c006128793cedbed54bc97b53250529752da69dceadb486b7dde1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/speex/libspeex1_1.2.1-2_loong64.deb digest: 7f1a740deb7ae14c28a109d35664b0af52ed580d5c66fddda97c5d8863767760 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sphinxbase/libsphinxbase3_0.8+5prealpha+1-13_loong64.deb digest: 1a1107a4ab25e6b7349051c5891a5df002bb641ad85bb53915acb4924b2c56cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared-dev_2021.01.15-4_loong64.deb digest: df44cad852669f72f2ccb0fd0a66e467258b6c447e7c1cb32a512bcd8762b0aa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/spirv-cross/libspirv-cross-c-shared0_2021.01.15-4_loong64.deb digest: 1c7e402c98ce7e9b85544ec54e44a5da5b338d72e68e8901b450dd53a8d25292 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sqlite3/libsqlite3-0_3.45.1-1_loong64.deb digest: 9096791c4741b549a2280283116218ea21d66bc9dd6aeaff94b66111c1a8c172 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sratom/libsratom-0-0_0.6.8-1_loong64.deb digest: 1e6f514dcd307dfad649d7193b49d8899a9f8e3fb1aac7d6c514846d1044d01d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/srt/libsrt1.4-gnutls_1.4.4-4_loong64.deb digest: 59e052fd1323eb39d335c9f95c0d358397bcbe7bc86479db5edc6baf1fd8f446 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libs/libssh/libssh-gcrypt-4_0.10.6-2_loong64.deb digest: 55cc8ef205639767d2c5162b6424297d7866b3d77be3ec600b70ddf3345cd6d9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/openssl/libssl3_3.2.0-2_loong64.deb digest: e21f7969e4644aabf313684b15a10d85f9c8cd69603b190540dca90f921cdd5a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/g/gcc-13/libstdc++6_13.2.0-3deepin2_loong64.deb digest: 52ba4932e00c32af5bad96b41d875718e835a0f607669149ccf22dfe71e19045 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/svt-av1/libsvtav1enc1d1_1.7.0+dfsg-2_loong64.deb digest: d402b79e3fbfa42586f89b0b86c376772ec033ff6252032e0ea7edb831a9bf2d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample-dev_6.1.1-2_loong64.deb digest: 39214c3ace0105712836fdfabbfef6600499c04a7f6eb83798323297ea41563a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswresample4_6.1.1-2_loong64.deb digest: 88375f05b53359f1a94ea17454d1fc747d49d4c2a601a4d5b4a2e2283117eb86 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale-dev_6.1.1-2_loong64.deb digest: b578925ac77a5d43f66361f82ca40c83fa426c923dbaec4f7413a75f1974e9d9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/f/ffmpeg/libswscale7_6.1.1-2_loong64.deb digest: f68ab2e40f9db608c8a9b0d15bd38b913b24ec7dd02adc28de5f008fb460fc0f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libsystemd0_255.2-4_loong64.deb digest: 232d13cf5d2a2d1def70ab4d0cf072be3ae5f4da08089c86bfe6d5c80b127744 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtasn1-6/libtasn1-6_4.18.0-4_loong64.deb digest: 75dde4d8be25c4d18dcf4e27dffff588fabf9c2b365b3c22b2cbd12af97d90b3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai-data_0.1.29-1_all.deb digest: 3a87af58b0b3becac7062da11264d083cd68190e7dd421c2cbd00da8841cfa25 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libthai/libthai0_0.1.29-1_loong64.deb digest: f870e0bd959b21558d99b2e89c1dd637b8eab46382616482a7eec19df681978f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-15_loong64.deb digest: 490265a0c220145d4a1552c50a9fe1d580a70f56db7eee7e2c609bce3b7560b1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tiff/libtiff6_4.5.1+git230720-1_loong64.deb digest: ef8e7f405ffd2369cca89949320fa3a491212a097f202bcaffb28be0bf239e63 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/libtinfo6_6.4-4_loong64.deb digest: e4acb568f126357a2ab0d6cccee72d797ec67d0a05dd39193d03ea3260a550b7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-common_1.3.2-2_all.deb digest: 74bddc18e3289947b20653433e82025873f5679ccba52f258ca4912e435a09ee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc-dev_1.3.2-2_loong64.deb digest: 398023207ec9cd9852423ff943a2471c9e413273d3d6e654251d3a9d66820b34 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libt/libtirpc/libtirpc3_1.3.2-2_loong64.deb digest: 9af8a36a1e38bb90c2cf99639596b5368ecdf03c5a51721bd723735eb3e7cfb8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/twolame/libtwolame0_0.4.0-2_loong64.deb digest: 62ab9f3a9467e09cb86d27e1201e94435e96858fc0afbfe48a6760ab75902d17 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet-dev_0.0.7-1_loong64.deb digest: 00c8a254471d2a94ca9e2274c955dd60f510cdb1411e78af3dea049f17758b2e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/uchardet/libuchardet0_0.0.7-1_loong64.deb digest: 54ebed96541a06e6ce81059b3bb0bdc988eaac15bade6aeedc1d3a3e0aff60e7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev-dev_255.2-4_loong64.deb digest: 541b679fc7e30d3ced22fe1c353d0a9aec4c8b600c1c76e840788269dd9aa332 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/systemd/libudev1_255.2-4_loong64.deb digest: 522208edcd7615012206c8f741446e34885ef84d84e150aa9058d21ec70cb887 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread-dev_1.1.2-1_loong64.deb digest: 5629827181b4aca7700aff34121a595c5986bf6c044608fb80a7edf842f7e630 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libudfread/libudfread0_1.1.2-1_loong64.deb digest: 52fe8c374d5b0f18d538139bb314839f707a1ee6da3090d411fb9c2aa9c93e49 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libunistring/libunistring2_0.9.10-6_loong64.deb digest: 100d2bd250eff9cdc1ce0492cb7fffc306e620aef5886e1b12245f3f020d569c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.24-3_loong64.deb digest: c95ca8c43cd4b273d9ed19470371acf2167aa90a9d276fd57e9caab50c4df95f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/libuuid1_2.39.3-6deepin1_loong64.deb digest: 48c616dfb3a357311ea0507bf7c43740e66a2eb1f85027c116a3f7f20067f4e8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-dev_2.20.0-2_loong64.deb digest: b08e4948b5e8389c2ed7ed4f5d13aa9d9f86ce7d96a50e90b43a8dc811ab25cf - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-drm2_2.20.0-2_loong64.deb digest: bbbdab85f21232ec1d4f1522042a0870fbdc5561814169b40702b4652b65816b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-glx2_2.20.0-2_loong64.deb digest: 7795a5a45bfea6e24cd66420cba10b3382093082d11fb0e8d8b3e06378fc679e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-wayland2_2.20.0-2_loong64.deb digest: dd2690aba454c67e4d179635f0c0e4ab2fa034477473ac6c10d2580068598d35 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva-x11-2_2.20.0-2_loong64.deb digest: c7f773c72c5f5b6ed54a1734e03513d4e210f34485f22e33186f20f4a57ff6f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libva/libva2_2.20.0-2_loong64.deb digest: c9b43b4eba7d7a808c429e72008944b8c19989cf3d7ed95c03a31f72fe9d8c26 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau-dev_1.5-2_loong64.deb digest: ee3e528fd1d85223797bb2d9309287a3c395fe4bee87eca3da469ea86b6b8753 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvdpau/libvdpau1_1.5-2_loong64.deb digest: b1fa2eccc60fa8e56e311145d90a5f293a5422e46387c8c7fb3d352151c47d59 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvidstab/libvidstab1.1_1.1.0-deepin1_loong64.deb digest: 2426d25458a68233bce71e89668c2a8a521388f606e526e85188c562760249b6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_loong64.deb digest: eb315ca7dd23b9be47670ac80776ad4945deeab95fbb6d5116a236d47acfd4ef - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_loong64.deb digest: 5cdb7cf3b7e5750527c1eb4a33e3907865783979f1e554b97b0a83cbc3bc7939 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvorbis/libvorbisfile3_1.3.7-1_loong64.deb digest: ee8791150f1bfe803c6dc3cbbb699a5f6db83f9acea98d0d7af33db8cc50d929 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libv/libvpx/libvpx7_1.11.0-2_loong64.deb digest: 87761187efccb8f8f00932cd8e54936a5fa674fde974afa5cdfef2d91868f989 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan-dev_1.3.268.0-1_loong64.deb digest: 26506d91259634d45f99029bf6f969ca5b0e81c39630b0cacb7bd8f959e628f8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/v/vulkan-loader/libvulkan1_1.3.268.0-1_loong64.deb digest: 6d09f8d682a373ad28cdee87a1b7c0857d759688554d5b3ae751e5d7054c2ed8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-bin_1.22.0-1_loong64.deb digest: f61aaf434c96ccc56146a1a7ff619dca20292bb97f169074cd4a2eb4ba638164 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-client0_1.22.0-1_loong64.deb digest: 76fe449044f59767874d52b971fb8022adbcf748a55295f048fb34856f9e10f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-cursor0_1.22.0-1_loong64.deb digest: 3d019717cacf81ede76bab480d1541eaec0fec53e5d98556abd66ba6416f7062 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-dev_1.22.0-1_loong64.deb digest: 2ed5b5f83a2e988dcc30a79a7ea8060b0caf1f6361473d1f345cefdef4e67a38 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-egl1_1.22.0-1_loong64.deb digest: 13828b0c657d3b93e617ef05970169066f94a57053b9ba626a1491c3c8e213fd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland/libwayland-server0_1.22.0-1_loong64.deb digest: 6bc8237c06b4192e92f28bddbb55834241de3062eb5508746d91c2f7a3989dc2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebp7_1.3.2-0.2_loong64.deb digest: 2a7085499257d278cebe95b0cdc5e9f61c0375319a8683959155a6b7fa57dc78 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libw/libwebp/libwebpmux3_1.3.2-0.2_loong64.deb digest: d52b6cde771aadcec6f49bfa11bcd2b8780f308f9640215fd30c2881d0dcf0a7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/webrtc-audio-processing/libwebrtc-audio-processing1_0.3-deepin1_loong64.deb digest: 6b37acb41ef710a663a193307a0a2631d69163ecc8b8b77b990758f60a8c7962 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_loong64.deb digest: 88b9805e5da0827ebc53e33906fd09ffbede998cada79379261033f073e03537 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-6_1.8.7-1_loong64.deb digest: 0e818e4cdefbcf50c1f4c632eb4f0a45ff5b7582d4072a4c64620dc684b49ccd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-data_1.8.7-1_all.deb digest: 400aaa7eaab268850d8c2c512474228204d47774f2aac79cef29d1c125e0c656 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-dev_1.8.7-1_loong64.deb digest: 9ff2157ecf2cb67c552cb49d624b32ab2393991a184e5151b233288c9a71113d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb-dev_1.8.7-1_loong64.deb digest: 72ee1bedcac0a652ea96be627f7b5c18c2ed534640e0ab652d0ae238de05aa98 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libx11/libx11-xcb1_1.8.7-1_loong64.deb digest: 727ef7465319b0edc7070f9b440a76a29ac1437608a23d98e5679f06d94f6fd5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x264/libx264-160_0.160.3011.1+dde-deepin_loong64.deb digest: 0c2e8d6f6a31c91f056bbd561ad300f498dfafca6616fe34f4acb5457ef6accd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/x265/libx265-199_3.5-deepin_loong64.deb digest: e1ecb3dafd5b4586ac2816f762a429509adcbb3c34e295c2ecde16ee99d33d6d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau-dev_1.0.9-1_loong64.deb digest: 15f907de0f88e9aac91b9fca3c609de2330cfe0c847b91d73ed5f3e2c4d098f7 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxau/libxau6_1.0.9-1_loong64.deb digest: 13a646d0cdb63a9a5025ab6f5f692e077b51b5735fb06a1300f6fd544d6496bc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri2-0_1.15-1_loong64.deb digest: 25459f6ecf5eadd32fa1d076d9bb086c3b6d78720615d3f45280b135c002931c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-dri3-0_1.15-1_loong64.deb digest: 7bcaa840cef1cb99090ae88b987047b83388b4d2b7aef06b8063a211a8418fea - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh-dev_0.4.1-1.1_loong64.deb digest: a7ac23e30367120d81f2bf329feea46f82b9ddc8060801e0509fb299cc47c732 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util-wm/libxcb-ewmh2_0.4.1-1.1_loong64.deb digest: 9658c74e5782e7a082f69fb642edcb802ed6d1ad870d6730cd2625f39d4c6dd9 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-glx0_1.15-1_loong64.deb digest: 19924e487af19c6fbe893bdf9cec301cf3225013122dbd9b40afce27b9cc3694 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-present0_1.15-1_loong64.deb digest: a47fb8a989a5a6844449830afe9a7234458acb96014de72cf64a18dc78a4707f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-randr0_1.15-1_loong64.deb digest: bbc5a60430c0641edbdc2736cf3108d35bcb30388ef769e830646b8f4fc01b4f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-render0_1.15-1_loong64.deb digest: f43e74d65d509258147ed6230046648a92fdc906733abf3445373b311032a2a3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0-dev_1.15-1_loong64.deb digest: 553d5ad77b18fab906d339c879d19fdd4c12763a5db71d86ebb20cf8deff47b5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shape0_1.15-1_loong64.deb digest: 6bd302fe80140947738703a1d3a00fde8036d7b423ab9a591f7bad1b34c09606 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-shm0_1.15-1_loong64.deb digest: f75b6dab7eea8f98e0264c63cbb31b5b21df9679c8b309ce7893d7a4866cb845 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-sync1_1.15-1_loong64.deb digest: 6646259959aa296666facf3d598730c7789d51338cd2a81bf9aab79ea9a986cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-deepin1_loong64.deb digest: bfec96b9bd3c011cf95407b1650141f9358592addede863312e87b42c3482585 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util0-dev_0.4.0-deepin1_loong64.deb digest: a75b550ad9c4ceebe4cadd1699fbc9c5baf6b13c3917a5efa2c737ce11eedf29 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-util/libxcb-util1_0.4.0-deepin1_loong64.deb digest: 09d6ff65d108b01df3a41e6ce112545c05e8d246bd441fa41e8c365a8f606272 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb-xfixes0_1.15-1_loong64.deb digest: 604e97953f434b25d0f23f6eed233ed6a797612c2de320262fbb1dff394f9075 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1-dev_1.15-1_loong64.deb digest: 3d4b82cd16df0487be74f8f9f79d27fd7b0c5252c2a1c7bd2e03fa6453059728 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcb/libxcb1_1.15-1_loong64.deb digest: 6977bdf22da615ab81df4414e047090a560e73cffa04acc6f2ed27bf2c77e5fb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_loong64.deb digest: 4149d9536303ae1b8625eab50a9674c1a26b1c9f0440940ff344df7d03cb62e0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_loong64.deb digest: f7f9fdaa9adf2d0dec160dd0d53dbae409daf85369480ca610ef795427fa9488 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_loong64.deb digest: fa296588f4f92220332e72311db7631b9e5734469551e34dfbef79b5bbd2b328 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_loong64.deb digest: ce4dc98b358a67e1b9653e4492845673a1f6d75512298389758bfb5f1ca2a463 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext-dev_1.3.4-1_loong64.deb digest: ec616d4fd1cdb3904f50f731824f62f2391d3b267b104d46dbaed4e52d73f006 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxext/libxext6_1.3.4-1_loong64.deb digest: 151ada3ad16057453b554909ae0ae403c46b8d5560643043a92f4a18ca069de0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes-dev_6.0.0-1_loong64.deb digest: 5cfefe535c88a75550df60ad306666d6f5384e3934b250039dd6c8e1e7bdde28 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxfixes/libxfixes3_6.0.0-1_loong64.deb digest: 12c47fb6cbb173e015a075830b727791bf872ec2491e789658172f714566d297 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi-dev_1.8-1_loong64.deb digest: 2f3f3c46410a2133edb6d24bc16edd4d0bb630abcf28b456fb078f2f0800bd5c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxi/libxi6_1.8-1_loong64.deb digest: 5f71fc81ce2d0cf706df5a6e968832b748e02b2ed83742ceaa2567de7bfaaabc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_loong64.deb digest: f94528087e50c11a210667a4ee329d1bc9773214c1c78a32c167ea0036b44296 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_loong64.deb digest: 8ff8b69781193ce857b19fa0278b454ffbe9cea8dd8829d8d3d653a02f93ca79 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.6.0-1_loong64.deb digest: ba47dce288d90726795169d45ddf9b07f57c9391776ab2a4833ac26fe01a9c90 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxkbcommon/libxkbcommon0_1.6.0-1_loong64.deb digest: a4e72ca7887958f24270607f6d7897af906a345aa470bdd4a644fa5b66189538 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2-dev_2.9.14+dfsg-1.3+rb1_loong64.deb digest: 5e9394e30b76ea62cfe673a99e63ba1ede51654e060e4533952b68e573397396 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxml2/libxml2_2.9.14+dfsg-1.3+rb1_loong64.deb digest: 2bff227d0698e3f85bf45ef08de45ebfd5394c2c5f13d26a047a01cf4666006d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent-dev_1.0.0-deepin1_loong64.deb digest: 6e7d2fb061fe4a5d733858d9616dcaf5660da4ab8dcf8bb38dc47d90bd2e70db - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxpresent/libxpresent1_1.0.0-deepin1_loong64.deb digest: e37421c2e5e9844a993a1061858b80af1431f726db332cc0aa637657aeef5c94 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr-dev_1.5.2-1_loong64.deb digest: aa92b6cf82f233af95fa7a1ef9603581bf44edfe11214b1bd73c0f3ddbb747d5 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrandr/libxrandr2_1.5.2-1_loong64.deb digest: 4804d0fe64eea7ee0b6e687d32c0a80390456c6a7882ef8bd7bb5eab7bef76c6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_loong64.deb digest: 200bb56d2406e42e19c43725828befaff326ccfcd888c32d4f6e00a7cd998d83 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxrender/libxrender1_0.9.10-1_loong64.deb digest: 8b25a070d6897778e58585524e411ce4591bcc37a642e0a202e064486906e8a3 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_loong64.deb digest: 0d235925c3c0d5ff0a3be29607a3800e616b58fcb46b0eafb7a9e3ba70d7d0fb - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss-dev_1.2.3-1_loong64.deb digest: 638dd8cea681020cea5dfb2ac862ea4180fe14ff78d8cde1dad0b7ef50f5663f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxss/libxss1_1.2.3-1_loong64.deb digest: 1fc406252042c7cc9fe47b0eb14ab519a19e6e48d58fb1a8b2e6b18829038218 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt-dev_1.2.0-1_loong64.deb digest: b7fc053a06732e0684d28f2ac86660b6355f87227b7a0616c1f95dfa11b1c40a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxt/libxt6_1.2.0-1_loong64.deb digest: 434335cc9fd191003255ea71dd19b594cfac93409c05cf5d990f4859e35afd29 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_loong64.deb digest: 09bfef764e498a4ac0ee0422bb7a15d0ff55ab22d217db5ec3f6007d531527f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxtst/libxtst6_1.2.3-1_loong64.deb digest: cd6a9b8bf1ab4372957aa5835e0d349086f977ecacca3cf490b16b84ccf7dcd6 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv-dev_1.0.11-1_loong64.deb digest: 837c2887472505ca514068dd9027f69dda6deb021dd3da5afff7dd8ca6e95750 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxv/libxv1_1.0.11-1_loong64.deb digest: 45c89ad4efc87f535ac75430da48185298f4210296a43a10629342ce4c93527e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xvidcore/libxvidcore4_1.3.7-1_loong64.deb digest: df6e32f02df3fb4156ae67404a2b90539a38f12abe66358e83f80c4c1d80c6ca - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-deepin1_loong64.deb digest: 3f6a805bda6bdae14c8134b9e3beb73dea9a0226c12614c54e20a158b469694a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-deepin1_loong64.deb digest: 8bf8c69d8210c9e7ca528ec7bb43bb8c39c9493cbe05aca024926e68602b83cd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/z3/libz3-4_4.8.12-deepin2_loong64.deb digest: b212d93ce7d5637cbbc6d8e1c86a15bafb0871c580eccff0eaa7768480d05d8f - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg-dev_3.0.3+ds1-deepin1_loong64.deb digest: c426b792b025b5b8349fdd0276b673f869e0b5b2a4a84a81cad3f5016d8bdb5d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zimg/libzimg2_3.0.3+ds1-deepin1_loong64.deb digest: 9cb7ecf4fa9ab63dbcea9c63bc74d11ded7072278d565ace02f9ecf97531dbfa - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zeromq3/libzmq5_4.3.5-1_loong64.deb digest: ea9300e3470746654e2977f1f42d4577d502625781cdf053bea7aeff012ea17b - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/libz/libzstd/libzstd1_1.5.5+dfsg2-2_loong64.deb digest: d058fce76522747153757cbfe5eec9bac7f0077906775f8f232c100bbd0d3e56 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi-common_0.2.35-18_all.deb digest: 1fc738c696936a298eab3f5a6061ae0189078abddbdf7ef3da2b39537d47aa85 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zvbi/libzvbi0_0.2.35-18_loong64.deb digest: c65295d36e1fb593d029ebda8348ae9a95f386a10e7689c1312a97cb769857a8 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/l/linux-upstream/linux-libc-dev_23.01.00.32_loong64.deb digest: 9e72480d626cea281e59d32c4f5e7bb30de6b648caedc97a19e29c8060dffa03 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mailcap/mailcap_3.70_all.deb digest: 7ca67d118c03eaf58346eb1e676ff16f4d1aa5252a8cc6b5b3b1ed44556180f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/media-types/media-types_4.0.0_all.deb digest: cd124053950ab8b0373203bceb7eab841791017daf1d50db2ece09e4da52406a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/m/mime-support/mime-support_3.66_all.deb digest: 20294deda4378616c2b48614ee226731ec09663c3497c35a467e8ea5fa03f16a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/n/ncurses/ncurses-bin_6.4-4_loong64.deb digest: d3b9967202b6b507a2e91a6d2617331e9a6bff23780e336d830cd556b7af0a98 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/o/ocl-icd/ocl-icd-libopencl1_2.2.14-3_loong64.deb digest: 8569bcf5afca194968c0e49c3a71fbf106bdb5f6281db535142a5b8ea1a46e18 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-base_5.36.0-10_loong64.deb digest: 2c2ff9c3322f33ec19ed0c0170001fde2d9ff60937d323f154aac0a1a660fe82 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl-modules-5.36_5.36.0-10_all.deb digest: 907542b9a413bd0276d5ef94fef77083715a692fd33c52ece44d11fff847bab0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/perl/perl_5.36.0-10_loong64.deb digest: dc3b0b73a582471f146be8f35e39d61ef9046a2a4f3ee2a29684f8ed12d2a598 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkg-config_1.8.1-1_loong64.deb digest: 423b2905ab5e9ae4e284c533bf1ea48ba9602af2c172f565a6512f69502775f2 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf-bin_1.8.1-1_loong64.deb digest: e1ee964a895c5ff8b59a51bf1f4da480b1d588f189433a046f2406d5d6a8906a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/pkgconf/pkgconf_1.8.1-1_loong64.deb digest: 1db6ffb2335e4eb4b787988d9e4f201408c96fdfdc6353ad2c31e96fefd44676 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3-minimal_3.11.4-5_loong64.deb digest: 782ede1b3217aae8d353247cd5ddb81ad816abc57843932b8fd602a1f14fc4f1 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python-packaging/python3-packaging_23.2-1_all.deb digest: 23df868981c665493f1859e974697088549ec5ff69ec56ea06ee864f36100a3a - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11-minimal_3.11.6-3_loong64.deb digest: 239b527721b38eeee404f3322cc05a9cb996cf8b8859eb57a02abcf46127dcc0 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3.11/python3.11_3.11.6-3_loong64.deb digest: e72ae042f1784400da6a357f649f5cfc0e80e17ddff8234a8aa0593ccff1502e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/p/python3-defaults/python3_3.11.4-5_loong64.deb digest: 443a749cbae916c080e4da43fed7caa26aae60fbe873a09c251ded4bffd8f2e4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/readline/readline-common_8.2-3_all.deb digest: 35fe59faceb8d9def8b6aa664e091eac8444887bc1f33ba2cf22099c3646e7bd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/r/rpcsvc-proto/rpcsvc-proto_1.4.2-4_loong64.deb digest: 5a68197175ff3bf8f57fdd1066b62efcb547e877ae2c3b057f5b5a9c8add94c4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sed/sed_4.8-1_loong64.deb digest: 24a13a75ba49f551a64a1afce385ca01c49c8795f18419019eb75aa575bcc21c - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/sgml-base/sgml-base_1.30_all.deb digest: 7ae50089218865dda4f7250a349c6fd6976702894b1b45f6ef935cf89855c4ce - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/s/shared-mime-info/shared-mime-info_2.2-1_loong64.deb digest: a0cd2345f1c869975ba98b8ead9048f32746d72966162472ce531ae48ecb0e9e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tar/tar_1.35+dfsg-3_loong64.deb digest: 48cc0cc32829c68c7b58e74f141fe552f9a3f5c9e6da77ad54184530debc0cff - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/t/tzdata/tzdata_2023d-1deepin1_all.deb digest: fe503c524801260208482a1dfc061e79c2a7450111dd90f88ed40d70ac935832 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/u/util-linux/uuid-dev_2.39.3-6deepin1_loong64.deb digest: 54727a76b166231d74f5116fc6732bf97ac9aa2ee8f8b49bbf0ee5b8358c5483 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/w/wayland-protocols/wayland-protocols_1.32-1_all.deb digest: d08dca0feeaf2c777d2f8befe468303bd6d4a19c61d3d6ad018505192d333967 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg/x11-common_7.7+23-deepin1_all.deb digest: 9a7643db11023a8bec126312edec4b1b7357b93416bdfbaf9b0cb8bc04506d49 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-core-dev_2023.2-1_all.deb digest: 06b668c63517a64ef18f3733bcd69b077206a58c1c357e21f6ca6742a2864eee - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-dev_2023.2-1_all.deb digest: ff7aacd67420615a38e2337f8a250abe36c36dd4f6d1ba824b6a9f4970037030 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-record-dev_2023.2-1_all.deb digest: cb9b512bf67d2af0ede8aa39c91eb2fe609fee0104d6fa2fe9238dfb89417fbd - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-render-dev_2023.2-1_all.deb digest: 748c9b7bc9c018761a230c31fe647e1f53efb05c56d215137b6fcd2c436a928d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2023.2-1_all.deb digest: 27ef00a9d3f4f7731f484bbdfcb649af86a9e62a3498bdc2870c9fa89a9dc698 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-video-dev_2023.2-1_all.deb digest: 80c2d38b64d64dbb7852047412d72d82220d7afb50a07c9534de84cced11d285 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xext-dev_2023.2-1_all.deb digest: d6017c9b8f95bc58689aac65b74457e1eb4dcb69f493a6ef14dcc6d06ac0ee22 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xf86vidmode-dev_2023.2-1_all.deb digest: 8bb6b032cb5067dbfde1d088d92ff84a4a5c85b9a2428ff0cfc7fa4a44ac9908 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorgproto/x11proto-xinerama-dev_2023.2-1_all.deb digest: 8ecf54a26a88c3315ae2f35edaf9e74343e94c500f41bef4b1fbedadebec580e - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xcb-proto/xcb-proto_1.15.2-1_all.deb digest: a2f1025b48b539de5ed47f1ec69683986503ac295b47dc0cf0a90ad6767527fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-encodings/xfonts-encodings_1.0.4-2.1deepin1_all.deb digest: 07d68c68eeeca62cea0558b4f0bc25896bd82fddfa6c4b02693ee0adc4bde224 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xfonts-utils/xfonts-utils_7.7+6-deepin_loong64.deb digest: 7022910932f96b7af8fa6e5ffe31a20515e47e9ae3dbab9781012f132e4e3198 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xkeyboard-config/xkb-data_2.38-2deepin1_all.deb digest: 6fdc32f08737735128e20a10f9a8425bde19855e3917d8f26a62ea3a12a9a720 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xml-core/xml-core_0.18+nmu1_all.deb digest: 9c76dce7ec31d455c07c496d47c5c977ca3f67008832ca66f52f0e438ee13ff4 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xorg-sgml-doctools/xorg-sgml-doctools_1.11-1.1_all.deb digest: c3ac4805a75219ecc8a92a79697d39fa9abf6a7fa16da540800a0d30bdcc2847 - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/x/xtrans/xtrans-dev_1.4.0-1_all.deb digest: ab37e512128e066d7225deb7f51f0c77f9b0c3913d75f2a7f9b1d708327a099d - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g-dev_1.3.dfsg-3_loong64.deb digest: 94c80947f4e9eb9abb53622ebc45728f1ed6387b84789d38d17e619f38c549fc - kind: file url: https://ci.deepin.com/repo/deepin/deepin-community/backup/rc2/pool/main/z/zlib/zlib1g_1.3.dfsg-3_loong64.deb digest: 68757110c7a6fb352dd791ad5cc0ed157fc642313a83131c1e480a4c9efa58d0deepin-movie-reborn-5.15.10/src/000077500000000000000000000000001473342170300163245ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/CMakeLists.txt000066400000000000000000000130221473342170300210620ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later set(CMAKE_AUTOMOC ON) set(CMD_NAME deepin-movie) set(PROJECT_INCLUDE ${PROJECT_SOURCE_DIR}/src/widgets ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/src/libdmr ${PROJECT_SOURCE_DIR}/src/dlna) add_definitions(-D_MOVIE_USE_) include_directories(${CMAKE_INCLUDE_CURRENT_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) find_package(Qt5Widgets) find_package(Qt5DBus) find_package(Qt5X11Extras) find_package(Qt5LinguistTools) find_package(Qt5Network) find_package(Qt5Concurrent) find_package(Qt5Sql) find_package(Qt5Svg) find_package(Qt5Multimedia) find_package(Qt5MultimediaWidgets) find_package(Qt5Xml) find_package(DtkWidget REQUIRED) pkg_check_modules(Dtk REQUIRED IMPORTED_TARGET dtkwidget) pkg_check_modules(Dtk REQUIRED IMPORTED_TARGET dtkcore) pkg_check_modules(Xcb REQUIRED IMPORTED_TARGET xcb xcb-shape) pkg_check_modules(DBusextended REQUIRED IMPORTED_TARGET dbusextended-qt5) pkg_check_modules(Gst REQUIRED IMPORTED_TARGET gobject-2.0) # IMPORTED_TARGET failed to work for some of libs under flatpak env pkg_check_modules(Other REQUIRED gsettings-qt) # make linglong build success pkg_check_modules(3rd REQUIRED libavformat mpv libavcodec libffmpegthumbnailer gstreamer-1.0 glib-2.0) include_directories(${3rd_INCLUDE_DIRS}) qt5_add_resources(RCS ../assets/resources.qrc) qt5_add_resources(RCS ../assets/icons/theme-icons.qrc) if (${Dtk_VERSION} LESS 2.0.6.1) qt5_add_resources(RCS ../assets/theme.qrc) endif() file(GLOB_RECURSE SRCS LIST_DIRECTORIES false common/*.cpp widgets/*.cpp libdmr/*.cpp vendor/*.cpp dlna/*.cpp dlna/*.c) list(APPEND SRCS main.cpp) # mpv backend file(GLOB_RECURSE MPV_SRCS LIST_DIRECTORIES false backends/mpv/*.cpp) file(GLOB_RECURSE MEDIAPLAYER_SRCS LIST_DIRECTORIES false backends/mediaplayer/*.cpp) list(APPEND SRCS ${MPV_SRCS} ${MEDIAPLAYER_SRCS}) list(APPEND PROJECT_INCLUDE ${PROJECT_SOURCE_DIR}/src/backends/mpv) list(APPEND PROJECT_INCLUDE ${PROJECT_SOURCE_DIR}/src/backends/mediaplayer) #~ set (DTK_SETTINGS_TOOLS_EXECUTABLE ${DTKCORE_TOOL_DIR}/dtk-settings) if (EXISTS ${DTK_SETTINGS_TOOLS_EXECUTABLE}) add_custom_target(json_i18n ALL ${DTKCORE_TOOL_DIR}/dtk-settings resources/data/settings.json -o common/settings_translation.cpp COMMAND sed -i "s,#include .*,#include ," common/settings_translation.cpp VERBATIM SOURCES resources/data/settings.json WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/) endif () ## translations file(GLOB TS LIST_DIRECTORIES false ../translations/${CMD_NAME}*.ts) set_source_files_properties(${TS} PROPERTIES OUTPUT_LOCATION ${PROJECT_SOURCE_DIR}/translations) if (NOT (${CMAKE_BUILD_TYPE} MATCHES "Debug")) qt5_create_translation(QM ${SRCS} ${TS}) endif () # ~ add_executable(${CMD_NAME} ${SRCS} ${RCS} ${QM}) target_include_directories(${CMD_NAME} PUBLIC ${PROJECT_INCLUDE}) set(TARGET_LIBS X11 Xtst PkgConfig::Xcb Qt5::Widgets Qt5::X11Extras Qt5::Network Qt5::DBus Qt5::Sql Qt5::Svg Qt5::Multimedia Qt5::MultimediaWidgets PkgConfig::Dtk PkgConfig::MPRIS PkgConfig::DBusextended PkgConfig::Gst GL va va-x11 Qt5::Concurrent Qt5::Xml) target_link_libraries(${CMD_NAME} ${TARGET_LIBS} ${Other_LIBRARIES}) install(TARGETS ${CMD_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) install(DIRECTORY ${PROJECT_SOURCE_DIR}/translations DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMD_NAME} FILES_MATCHING PATTERN "*.qm") install(FILES ${PROJECT_SOURCE_DIR}/deepin-movie.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) install(FILES ${CMAKE_SOURCE_DIR}/src/libdmr/com.deepin.deepin-movie.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas) install(FILES ${PROJECT_SOURCE_DIR}/assets/resources/icons/logo-big.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps RENAME deepin-movie.svg) install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/deepin-movie DESTINATION ${CMAKE_INSTALL_DATADIR}/deepin-manual/manual-assets/application/) install(FILES ${PROJECT_SOURCE_DIR}/assets/deepin-movie.json DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/uos-ai-assistant/functions) install(FILES ${PROJECT_SOURCE_DIR}/com.deepin.movie.service DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/services/) #hw机型增加DConfig配置 set(APPID org.deepin.movie) set(configFile ${PROJECT_SOURCE_DIR}/assets/org.deepin.movie.minimode.json) if (DEFINED DSG_DATA_DIR) message("-- DConfig is supported by DTK") dconfig_meta_files(APPID ${APPID} FILES ${configFile}) else() install(FILES ${configFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/dsg/configs/org.deepin.movie/) endif() # 加速编译优化参数 if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64") SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -O3 -ftree-vectorize -march=loongson3a -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions -mloongson-ext2 -mloongson-mmi -Wl,--as-needed -fPIE -z noexecstack") SET(CMAKE_C_FLAGS "$ENV{CFLAGS} -O3 -ftree-vectorize -march=loongson3a -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions -mloongson-ext2 -mloongson-mmi -z noexecstack") SET(CMAKE_EXE_LINKER_FLAGS "-pie") else() SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++14 -O3 -DNDEBUG -fPIC -Wl,--as-needed -fPIE") SET(CMAKE_C_FLAGS "$ENV{CFLAGS} -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++14 -O3 -DNDEBUG -fPIC") SET(CMAKE_EXE_LINKER_FLAGS "-pie") endif() add_subdirectory(libdmr) #add_subdirectory(test) deepin-movie-reborn-5.15.10/src/accessibility/000077500000000000000000000000001473342170300211535ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/accessibility/ac-deepin-movie-define.h000066400000000000000000000060031473342170300255150ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DESKTOP_ACCESSIBLE_UI_DEFINE_H #define DESKTOP_ACCESSIBLE_UI_DEFINE_H #include #include // 使用宏定义,方便国际化操作 //底部工具栏 #define BOTTOM_TOOL_BOX "bottomToolBox" #define BOTTOM_WIDGET "bottomWidget" #define BOTTOM_TOOL_BUTTON_WIDGET "bottomToolButtonWidget" #define PLAY_BUTTOB_BOX "playButtonBox" #define PROGBAR_WIDGET "progBarWidget" #define MOVIE_PROGRESS_WIDGET "MovieProgressBarWidget"//进度条窗口 #define PROGBAR_SLIDER "progBarSlider" //进度条 #define PREV_BUTTON "prevBtn" // 上一个视频按钮 #define PLAY_BUTTON "playBtn" // 播放、暂停按钮 #define NEXT_BUTTON "nextBtn" // 下一个视频按钮 #define FS_BUTTON "fullscreenButtion" // 全屏 #define VOLUME_BUTTON "volumeButton" // 音量 #define MIRVAST_BUTTON "mircastButton" // 投屏 #define PLAYLIST_BUTTON "playlistButton" // 播放列表按钮 //音量条 #define VOLUME_SLIDER_WIDGET "volumeSliderWidget" #define VOLUME_SLIDER "volumeSlider" #define SLIDER "slider" #define MUTE_BTN "muteButton" //播放列表 #define PLAYLIST_WIDGET "playListWidget" //播放列表窗口 #define LEFT_WIDGET "leftWidget" // 左侧 #define CLEAR_PLAYLIST_BUTTON "clearButton" // 清空播放列表按钮 #define RIGHT_LIST_WIDGET "rightListWidget"//右侧文件列表 #define PLAYLIST "playlist" #define FILE_LIST "fileList" //文件列表 #define PLAYITEM_WIDGET "playItemWidget" //单个视频项 #define PLAYITEN_CLOSE_BUTTON "playItemCloseBtn" // 关闭选中项 //movieInfo Dialog #define MOVIE_INFO_DIALOG "movieInfoDialog"//影片信息窗口 #define MOVIE_INFO_SCROLL_AREA "movieInfoScrollArea" #define SCROLL_AREA_VIEWPORT "scrollAreaViewport" #define MOVIE_INFO_SCROLL_CONTENT "scrollContentWidget" #define MOVIEINFO_CLOSE_BUTTON "movieInfoCloseButton" //关闭窗口按钮 #define FILM_INFO_WIDGET "filmInfoWidget" //影片信息 #define CODEC_INFO_WIDGET "codecInfoWidget" //编码信息 #define AUDIO_INFO_WIDGET "audioInfoWidget" //音频信息 ////顶部菜单栏 #define TITLEBAR "titleBar" //#define SETTINGS_DIALOG QObject::tr("settingsDialog") ////播放页面右键菜单 //#define PLAY_WIDGET_RIGHT_CLICK_MENU QObject::tr("playPageRightClickMenu") //#define PLAY_MODE_MENU QObject::tr("playModeMenu") //#define FRAME_MENU QObject::tr("frameMenu") //#define SOUND_MENU QObject::tr("soundMenu") //#define SOUND_CHANNEL_MENU QObject::tr("soundChannelMenu") //#define SOUND_TRACK_MENU QObject::tr("soundTrackMenu") //#define SUNTITLE_MENU QObject::tr("subtitleMenu") //#define SUNTITLE_SELECT_MENU QObject::tr("subtitleSelectMenu") //#define SUNTITLE_ENCODING_MENU QObject::tr("subtitleEncodingMenu") //#define SCREENSHOT_MENU_MENU QObject::tr("screenshotMenu") ////投屏界面 #define MIRCAST_SUCCESSED 0 #define MIRCAST_EXIT -1 #define MIRCAST_CONNECTION_FAILED -3 #define MIRCAST_DISCONNECTIONED -4 #endif // DESKTOP_ACCESSIBLE_UI_DEFINE_H deepin-movie-reborn-5.15.10/src/accessibility/acobjectlist.h000066400000000000000000000046171473342170300240020ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DESKTOP_ACCESSIBLE_OBJECT_LIST_H #define DESKTOP_ACCESSIBLE_OBJECT_LIST_H #include "../accessible/accessiblefunctions.h" #include "../accessibility/ac-deepin-movie-define.h" //#include "../view/canvasgridview.h" //#include "../view/watermaskframe.h" //#include "../dde-wallpaper-chooser/frame.h" #include #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE // 添加accessible //SET_FORM_ACCESSIBLE(CanvasGridView,OBJ_NAME_CANVAS_GRID_VIEW) //SET_FORM_ACCESSIBLE(WaterMaskFrame,OBJ_NAME_WATER_MASK_FRAME) SET_FORM_ACCESSIBLE(QFrame,m_w->objectName()) SET_FORM_ACCESSIBLE(DAbstractDialog,m_w->objectName()) SET_FORM_ACCESSIBLE(QWidget,m_w->objectName()) SET_LABEL_ACCESSIBLE(QLabel,m_w->objectName()) SET_BUTTON_ACCESSIBLE(DButtonBoxButton,m_w->objectName()) SET_FORM_ACCESSIBLE(QDialog,m_w->objectName()) //SET_BUTTON_ACCESSIBLE(QPushButton,m_w->objectName()) SET_SLIDER_ACCESSIBLE(DMainWindow,m_w->objectName()) SET_SLIDER_ACCESSIBLE(QListWidget,m_w->objectName()) SET_FORM_ACCESSIBLE(DTitlebar,m_w->objectName()) SET_FORM_ACCESSIBLE(DListWidget,m_w->objectName()) //SET_FORM_ACCESSIBLE(Frame,m_w->objectName()) //SET_FORM_ACCESSIBLE(QMenu,m_w->objectName()) SET_FORM_ACCESSIBLE(DMenu,m_w->objectName()) SET_FORM_ACCESSIBLE(QScrollArea,m_w->objectName()) SET_FORM_ACCESSIBLE(QSpinBox,m_w->objectName()) QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) { QAccessibleInterface *interface = nullptr; // USE_ACCESSIBLE(classname, CanvasGridView); // USE_ACCESSIBLE(classname, WaterMaskFrame); USE_ACCESSIBLE(classname, QFrame); USE_ACCESSIBLE(classname, QWidget); USE_ACCESSIBLE(classname, QLabel); USE_ACCESSIBLE(classname, QDialog); // USE_ACCESSIBLE(classname, QPushButton); USE_ACCESSIBLE(classname, DMainWindow); USE_ACCESSIBLE(classname, QListWidget); USE_ACCESSIBLE(classname, DTitlebar); USE_ACCESSIBLE(classname, DButtonBoxButton); // USE_ACCESSIBLE(classname, Frame); // USE_ACCESSIBLE(classname, QMenu); return interface; } #endif // DESKTOP_ACCESSIBLE_OBJECT_LIST_H deepin-movie-reborn-5.15.10/src/accessible/000077500000000000000000000000001473342170300204215ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/accessible/accessiblefunctions.h000066400000000000000000000251141473342170300246230ustar00rootroot00000000000000// Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef ACCESSIBLE_FUNCTIONS_H #define ACCESSIBLE_FUNCTIONS_H // 为了方便使用,把相关定义独立出来,如有需要,直接包含这个头文件,然后使用SET_*的宏去设置,USE_*宏开启即可 /* 宏参数说明 * classname:类名,例如DLineEdit * accessiblename:accessible唯一标识,需保证唯一性[getAccessibleName函数处理],优先使用QObject::setAccessibleName值 * accessibletype:即QAccessible::Role,表示标识控件的类型 * classobj:QObject指针 * accessdescription:accessible描述内容,考虑到暂时用不到,目前都默认为空,有需要可自行设计接口 * * 部分创建宏说明 * FUNC_CREATE:创建构造函数 * FUNC_PRESS:创建Press接口 * FUNC_SHOWMENU:创建右键菜单接口 * FUNC_PRESS_SHOWMENU:上两者的综合 * FUNC_RECT:实现rect接口 * FUNC_TEXT:实现text接口 * USE_ACCESSIBLE:对传入的类型设置其accessible功能 * USE_ACCESSIBLE_BY_OBJECTNAME:同上,[指定objectname]---适用同一个类,但objectname不同的情况 * * 设置为指定类型的Accessible控件宏 * SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU:button类型,添加press和showmenu功能 * SET_BUTTON_ACCESSIBLE_SHOWMENU:button类型,添加showmenu功能 * SET_BUTTON_ACCESSIBLE:button类型,添加press功能 * SET_LABEL_ACCESSIBLE:label类型,用于标签控件 * SET_FORM_ACCESSIBLE:form类型,用于widget控件 * SET_SLIDER_ACCESSIBLE:slider类型,用于滑块控件 * SET_SEPARATOR_ACCESSIBLE:separator类型,用于分隔符控件 */ #include #include #include #include #include #include #include #include #include #include #define SEPARATOR "_" inline QString getObjPrefix(QAccessible::Role r) { // 按照类型添加固定前缀 QMetaEnum metaEnum = QMetaEnum::fromType(); QByteArray prefix = metaEnum.valueToKeys(r); switch (r) { case QAccessible::Button: prefix = "Btn"; break; case QAccessible::StaticText: prefix = "Label"; break; default: break; } return QString::fromLatin1(prefix); } inline QString getIntelAccessibleName(QWidget *w, QAccessible::Role r, QString fallback) { // 避免重复生成 static QMap< QObject *, QString > objnameMap; if (!objnameMap[w].isEmpty()) return objnameMap[w]; static QMap< QAccessible::Role, QList< QString > > accessibleMap; QString oldAccessName = w->accessibleName(); oldAccessName.replace(SEPARATOR, ""); // 再加上标识 QString accessibleName = "";//getObjPrefix(r) + SEPARATOR; accessibleName += oldAccessName.isEmpty() ? fallback : oldAccessName; // 检查名称是否唯一 if (accessibleMap[r].contains(accessibleName)) { if (objnameMap.key(accessibleName)) { objnameMap.remove(objnameMap.key(accessibleName)); objnameMap.insert(w, accessibleName); return accessibleName; } // 获取编号,然后+1 int pos = accessibleName.indexOf(SEPARATOR); int id = accessibleName.mid(pos + 1).toInt(); QString newAccessibleName; do { // 一直找到一个不重复的名字 newAccessibleName = accessibleName + SEPARATOR + QString::number(++id); } while (accessibleMap[r].contains(newAccessibleName)); accessibleMap[r].append(newAccessibleName); objnameMap.insert(w, newAccessibleName); return newAccessibleName; } else { accessibleMap[r].append(accessibleName); objnameMap.insert(w, accessibleName); return accessibleName; } } inline QString getAccessibleName(QWidget *w, QAccessible::Role r, QString fallback) { QString accessibleName = getIntelAccessibleName(w, r, fallback); if(accessibleName.isEmpty()) { return getObjPrefix(r) + SEPARATOR; } return accessibleName; } #define FUNC_CREATE(classname,accessibletype,accessdescription) explicit Accessible##classname(classname *w) \ : QAccessibleWidget(w,accessibletype,#classname)\ , m_w(w)\ , m_description(accessdescription)\ {}\ private:\ classname *m_w;\ QString m_description;\ #define FUNC_PRESS(classobj) QStringList actionNames() const override{\ if(!classobj->isEnabled())\ return QStringList();\ return QStringList() << pressAction();}\ void doAction(const QString &actionName) override{\ if(actionName == pressAction())\ {\ QPointF localPos = classobj->geometry().center();\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event2);\ }\ }\ #define FUNC_SHOWMENU(classobj) QStringList actionNames() const override{\ if(!classobj->isEnabled())\ return QStringList();\ return QStringList() << showMenuAction();}\ void doAction(const QString &actionName) override{\ if(actionName == showMenuAction())\ {\ QPointF localPos = classobj->geometry().center();\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event2);\ }\ }\ #define FUNC_PRESS_SHOWMENU(classobj) QStringList actionNames() const override{\ if(!classobj->isEnabled())\ return QStringList();\ return QStringList() << pressAction() << showMenuAction();}\ void doAction(const QString &actionName) override{\ if(actionName == pressAction())\ {\ QPointF localPos = classobj->geometry().center();\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event2);\ }\ else if(actionName == showMenuAction())\ {\ QPointF localPos = classobj->geometry().center();\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event2);\ }\ }\ #define FUNC_RECT(classobj) QRect rect() const override{\ if (!classobj->isVisible())\ return QRect();\ return classobj->geometry();\ }\ #define FUNC_TEXT(classname,accessiblename) QString Accessible##classname::text(QAccessible::Text t) const{\ switch (t) {\ case QAccessible::Name:\ return getAccessibleName(m_w, this->role(), accessiblename);\ case QAccessible::Description:\ return m_description;\ default:\ return QString();\ }\ }\ #define USE_ACCESSIBLE(classnamestring,classname) if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType())\ {\ interface = new Accessible##classname(static_cast(object));\ }\ // [指定objectname]---适用同一个类,但objectname不同的情况 #define USE_ACCESSIBLE_BY_OBJECTNAME(classnamestring,classname,objectname) if (classnamestring == QLatin1String(#classname) && object && (object->objectName() == objectname) && object->isWidgetType())\ {\ interface = new Accessible##classname(static_cast(object));\ }\ #define SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ {\ public:\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ QString text(QAccessible::Text t) const override;\ FUNC_PRESS(m_w)\ };\ #define SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ {\ public:\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ QString text(QAccessible::Text t) const override;\ FUNC_SHOWMENU(m_w)\ };\ #define SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ {\ public:\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ QString text(QAccessible::Text t) const override;\ FUNC_PRESS_SHOWMENU(m_w)\ };\ #define SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,aaccessibletype,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ {\ public:\ FUNC_CREATE(classname,aaccessibletype,accessdescription)\ QString text(QAccessible::Text t) const override;\ FUNC_RECT(m_w)\ };\ // /*******************************************简化使用*******************************************/ #define SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(classname,accessiblename) SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) #define SET_BUTTON_ACCESSIBLE_SHOWMENU(classname,accessiblename) SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) #define SET_BUTTON_ACCESSIBLE(classname,accessiblename) SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) #define SET_LABEL_ACCESSIBLE(classname,accessiblename) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::StaticText,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) #define SET_FORM_ACCESSIBLE(classname,accessiblename) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Form,accessiblename,"");\ FUNC_TEXT(classname,accessiblename) #define SET_SLIDER_ACCESSIBLE(classname,accessiblename) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Slider,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) #define SET_SEPARATOR_ACCESSIBLE(classname,accessiblename) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Separator,accessiblename,"")\ FUNC_TEXT(classname,accessiblename) /************************************************************************************************/ #endif // ACCESSIBLE_FUNCTIONS_H deepin-movie-reborn-5.15.10/src/accessible/accessiblelist.h000066400000000000000000000010771473342170300235700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DDE_FILE_MANAGER_ACCESSIBLE_LIST_H #define DDE_FILE_MANAGER_ACCESSIBLE_LIST_H #include "accessiblefunctions.h" #include // 添加accessible SET_FORM_ACCESSIBLE(QWidget,m_w->objectName()) QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) { QAccessibleInterface *interface = nullptr; USE_ACCESSIBLE(classname, QWidget); return interface; } #endif // DDE_FILE_MANAGER_ACCESSIBLE_LIST_H deepin-movie-reborn-5.15.10/src/backends/000077500000000000000000000000001473342170300200765ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/backends/mediaplayer/000077500000000000000000000000001473342170300223725ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/backends/mediaplayer/qtplayer_glwidget.cpp000066400000000000000000000664011473342170300266340ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "mpv_proxy.h" #include "qtplayer_glwidget.h" #include #include #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) /* Win32 but not WinCE */ # define KHRONOS_APIENTRY __stdcall #else # define KHRONOS_APIENTRY #endif DWIDGET_USE_NAMESPACE #ifndef EGLAPIENTRY #define EGLAPIENTRY KHRONOS_APIENTRY #endif #ifndef GLAPIENTRY #define GLAPIENTRY #endif static const char *vs_blend = R"( attribute vec2 position; attribute vec2 vTexCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; } )"; static const char* fs_blend = R"( varying vec2 texCoord; uniform sampler2D movie; void main() { gl_FragColor = texture2D(movie, texCoord); } )"; static const char* fs_blend_wayland = R"( #ifdef GL_ES precision mediump float; #endif varying vec2 texCoord; uniform sampler2D movie; void main() { gl_FragColor = texture2D(movie, texCoord); } )"; static const char* vs_blend_corner = R"( attribute vec2 position; attribute vec2 maskTexCoord; attribute vec2 vTexCoord; varying vec2 maskCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; maskCoord = maskTexCoord; } )"; static const char* fs_blend_corner = R"( varying vec2 maskCoord; varying vec2 texCoord; uniform sampler2D movie; uniform sampler2D mask; void main() { gl_FragColor = texture2D(movie, texCoord) * texture2D(mask, maskCoord).a; } )"; static const char* fs_blend_corner_wayland = R"( #ifdef GL_ES precision mediump float; #endif varying vec2 maskCoord; varying vec2 texCoord; uniform sampler2D movie; uniform sampler2D mask; void main() { gl_FragColor = texture2D(movie, texCoord) * texture2D(mask, maskCoord).a; } )"; static const char* vs_code = R"( attribute vec2 position; attribute vec2 vTexCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; } )"; static const char* fs_code = R"( varying vec2 texCoord; uniform sampler2D sampler; uniform vec4 bg; void main() { vec4 s = texture2D(sampler, texCoord); gl_FragColor = vec4(s.rgb * s.a + bg.rgb * (1.0 - s.a), 1.0); } )"; static const char* fs_code_wayland = R"( #ifdef GL_ES precision mediump float; #endif varying vec2 texCoord; uniform sampler2D sampler; uniform vec4 bg; void main() { vec4 s = texture2D(sampler, texCoord); gl_FragColor = vec4(s.rgb * s.a + bg.rgb * (1.0 - s.a), 1.0); } )"; static const char* fs_corner_code = R"( varying vec2 texCoord; uniform sampler2D corner; uniform vec4 bg; void main() { vec4 s = texture2D(corner, texCoord); gl_FragColor = s.a * bg; } )"; static const char* fs_corner_code_wayland = R"( #ifdef GL_ES precision mediump float; #endif varying vec2 texCoord; uniform sampler2D corner; uniform vec4 bg; void main() { vec4 s = texture2D(corner, texCoord); gl_FragColor = s.a * bg; } )"; namespace dmr { QtPlayerGLWidget::QtPlayerGLWidget(QWidget *parent) :QOpenGLWidget(parent) { initMember(); setUpdateBehavior(QOpenGLWidget::NoPartialUpdate); } QtPlayerGLWidget::~QtPlayerGLWidget() { makeCurrent(); if (m_pDarkTex) { m_pDarkTex->destroy(); delete m_pDarkTex; } if (m_pLightTex) { m_pLightTex->destroy(); delete m_pLightTex; } for (auto mask: m_pCornerMasks) { if (mask) mask->destroy(); } m_vbo.destroy(); for (int i = 0; i < 4; i++) { m_vboCorners[i].destroy(); ///指针数组m_pCornerMasks在mpv_glwidget.cpp 476行申请内存后未释放/// delete m_pCornerMasks[i]; m_pCornerMasks[i] = nullptr; } m_vao.destroy(); m_vaoBlend.destroy(); m_vaoCorner.destroy(); delete m_pGlProgBlend; m_pGlProgBlend = nullptr; delete m_pGlProgBlendCorners; m_pGlProgBlendCorners = nullptr;; delete m_pGlProg; m_pGlProg = nullptr; delete m_pGlProgCorner; m_pGlProgCorner = nullptr; if (m_pFbo) delete m_pFbo; doneCurrent(); } void QtPlayerGLWidget::setupBlendPipe() { updateMovieFbo(); m_vaoBlend.create(); m_vaoBlend.bind(); updateVboBlend(); m_pGlProgBlend = new QOpenGLShaderProgram(); m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_blend); if(utils::check_wayland_env()){ m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_wayland); }else { m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend); } if (!m_pGlProgBlend->link()) { qInfo() << "link failed"; } m_pGlProgBlend->bind(); m_vboBlend.bind(); int vLocBlend = m_pGlProgBlend->attributeLocation("position"); int coordLocBlend = m_pGlProgBlend->attributeLocation("vTexCoord"); m_pGlProgBlend->enableAttributeArray(vLocBlend); m_pGlProgBlend->setAttributeBuffer(vLocBlend, GL_FLOAT, 0, 2, 6*sizeof(GLfloat)); m_pGlProgBlend->enableAttributeArray(coordLocBlend); m_pGlProgBlend->setAttributeBuffer(coordLocBlend, GL_FLOAT, 2*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgBlend->setUniformValue("movie", 0); m_pGlProgBlend->release(); m_vaoBlend.release(); m_pGlProgBlendCorners = new QOpenGLShaderProgram(); m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_blend_corner); if(utils::check_wayland_env()){ m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_corner_wayland); }else{ m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_corner); } if (!m_pGlProgBlendCorners->link()) { qInfo() << "link failed"; } } void QtPlayerGLWidget::setupIdlePipe() { m_vao.create(); m_vao.bind(); m_pDarkTex = new QOpenGLTexture(m_imgBgDark, QOpenGLTexture::DontGenerateMipMaps); m_pDarkTex->setMinificationFilter(QOpenGLTexture::Linear); m_pLightTex = new QOpenGLTexture(m_imgBgLight, QOpenGLTexture::DontGenerateMipMaps); m_pLightTex->setMinificationFilter(QOpenGLTexture::Linear); updateVbo(); m_vbo.bind(); m_pGlProg = new QOpenGLShaderProgram(); m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_code); if(utils::check_wayland_env()){ m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_code_wayland); }else{ m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_code); } if (!m_pGlProg->link()) { qInfo() << "link failed"; } m_pGlProg->bind(); int vertexLoc = m_pGlProg->attributeLocation("position"); int coordLoc = m_pGlProg->attributeLocation("vTexCoord"); m_pGlProg->enableAttributeArray(vertexLoc); m_pGlProg->setAttributeBuffer(vertexLoc, GL_FLOAT, 0, 2, 4*sizeof(GLfloat)); m_pGlProg->enableAttributeArray(coordLoc); m_pGlProg->setAttributeBuffer(coordLoc, GL_FLOAT, 2*sizeof(GLfloat), 2, 4*sizeof(GLfloat)); m_pGlProg->setUniformValue("sampler", 0); m_pGlProg->release(); m_vao.release(); { m_vaoCorner.create(); m_vaoCorner.bind(); // setting up corners updateVboCorners(); updateCornerMasks(); m_pGlProgCorner = new QOpenGLShaderProgram(); m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_code); if(utils::check_wayland_env()){ m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_corner_code_wayland); }else{ m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_corner_code); } if (!m_pGlProgCorner->link()) { qInfo() << "link failed"; } m_vaoCorner.release(); } } void QtPlayerGLWidget::prepareSplashImages() { QPixmap pixmap; QImage img=utils::LoadHiDPIImage(":/resources/icons/dark/init-splash-bac.svg"); pixmap=pixmap.fromImage(img); QPixmap pixmap2; QImage img1=QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); pixmap2=pixmap2.fromImage(img1); QPainter painter(&pixmap); painter.drawPixmap(98,127,pixmap2); m_imgBgDark=pixmap.toImage(); m_imgBgDark.setDevicePixelRatio(qApp->devicePixelRatio()); QPixmap pixmap3; QImage image(pixmap.size(),QImage::Format_Alpha8); image.fill(QColor(0, 0, 0, 0)); image.setDevicePixelRatio(qApp->devicePixelRatio()); pixmap3=pixmap3.fromImage(image); QPixmap pixmap4; QImage img2=QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); pixmap4=pixmap4.fromImage(img2); QPainter painter1(&pixmap3); painter1.drawPixmap(98,127,pixmap4); m_imgBgLight = pixmap3.toImage(); m_imgBgLight.setDevicePixelRatio(qApp->devicePixelRatio()); } //cppcheck误报 void QtPlayerGLWidget::initializeGL() { QOpenGLFunctions *pGLFunction = QOpenGLContext::currentContext()->functions(); float a = static_cast(16.0 / 255.0); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){ a = static_cast(252.0 / 255.0); } pGLFunction->glClearColor(a, a, a, 1.0); prepareSplashImages(); setupIdlePipe(); setupBlendPipe(); #ifdef _LIBDMR_ if(utils::check_wayland_env()){ m_bDoRoundedClipping = false; toggleRoundedClip(true); }else{ m_bDoRoundedClipping = true; toggleRoundedClip(false); } #else #ifndef USE_DXCB connect(window()->windowHandle(), &QWindow::windowStateChanged, [=]() { QWidget* pTopWid = this->topLevelWidget(); bool rounded = !pTopWid->isFullScreen() && !pTopWid->isMaximized(); // 全屏和最大化下不裁剪圆角 m_bDoRoundedClipping = rounded; if(utils::check_wayland_env()){ toggleRoundedClip(true); } else { toggleRoundedClip(rounded); } }); #endif #endif } void QtPlayerGLWidget::updateMovieFbo() { if (!m_bUseCustomFBO) return; auto desiredSize = size() * qApp->devicePixelRatio(); if (m_pFbo) { if (m_pFbo->size() == desiredSize) { return; } m_pFbo->release(); delete m_pFbo; } m_pFbo = new QOpenGLFramebufferObject(desiredSize); } void QtPlayerGLWidget::updateCornerMasks() { if (!utils::check_wayland_env() && !m_bUseCustomFBO) return; for (int i = 0; i < 4; i++) { QSize sz(RADIUS, RADIUS); QImage img(sz, QImage::Format_ARGB32); img.fill(Qt::transparent); QPainter painter; painter.begin(&img); painter.setRenderHint(QPainter::Antialiasing); QPainterPath pp; switch (i) { case 0: pp.moveTo({0, static_cast(sz.height())}); pp.arcTo(QRectF(0, 0, RADIUS*2, RADIUS*2), 180.0, -90.0); pp.lineTo(RADIUS, RADIUS); pp.closeSubpath(); break; case 1: pp.moveTo({0, 0}); pp.arcTo(QRectF(-RADIUS, 0, RADIUS*2, RADIUS*2), 90.0, -90.0); pp.lineTo(0, RADIUS); pp.closeSubpath(); break; case 2: pp.moveTo({static_cast(sz.width()), 0}); pp.arcTo(QRectF(-RADIUS, -RADIUS, RADIUS*2, RADIUS*2), 0.0, -90.0); pp.lineTo(0, 0); pp.closeSubpath(); break; case 3: pp.moveTo({static_cast(sz.width()), static_cast(sz.height())}); pp.arcTo(QRectF(0, -RADIUS, RADIUS*2, RADIUS*2), 270.0, -90.0); pp.lineTo(RADIUS, 0); pp.closeSubpath(); break; default: return; } painter.setPen(Qt::red); painter.setBrush(Qt::red); painter.drawPath(pp); painter.end(); if (m_pCornerMasks[i] == nullptr) { m_pCornerMasks[i] = new QOpenGLTexture(img, QOpenGLTexture::DontGenerateMipMaps); m_pCornerMasks[i]->setMinificationFilter(QOpenGLTexture::Linear); m_pCornerMasks[i]->setWrapMode(QOpenGLTexture::ClampToEdge); } } } void QtPlayerGLWidget::updateVboBlend() { if (!m_vboBlend.isCreated()) { m_vboBlend.create(); } QSize rectSize = rect().size(); int nImgWidth = m_currWidth; int nImgHeigth = m_currHeight; GLfloat x1 = -1.0f; GLfloat x2 = 1.0f; GLfloat y1 = 1.0f; GLfloat y2 = -1.0f; GLfloat s1 = 0.0f; GLfloat t1 = 1.0f; GLfloat s2 = 1.0f; GLfloat t2 = 0.0f; float wRate = float(rectSize.width()) / nImgWidth; float hRate = float(rectSize.height()) / nImgHeigth; if(wRate < hRate) { x1 = -1.0f; x2 = 1.0f; y2 = float(rectSize.height() - nImgHeigth * wRate) / rectSize.height() - 1.0f; y1 = 1.0f - float(rectSize.height() - nImgHeigth * wRate) / rectSize.height(); }else { x1 = float(rectSize.width() - nImgWidth * hRate) / rectSize.width() - 1.0f; x2 = 1.0f - float(rectSize.width() - nImgWidth * hRate) / rectSize.width(); y2 = -1.0f; y1 = 1.0f ; } GLfloat vdata[] = { x1, y1, s1, t2, 0.0f, 1.0f, x2, y1, s2, t2, 1.0f, 1.0f, x2, y2, s2, t1, 1.0f, 0.0f, x1, y1, s1, t2, 0.0f, 1.0f, x2, y2, s2, t1, 1.0f, 0.0f, x1, y2, s1, t1, 0.0f, 0.0f }; m_vboBlend.bind(); m_vboBlend.allocate(vdata, sizeof(vdata)); m_vboBlend.release(); } void QtPlayerGLWidget::updateVboCorners() { auto vp = rect().size(); auto tex_sz = QSize(RADIUS, RADIUS); auto r = QRect(0, 0, vp.width(), vp.height()); QPoint pos[4] = { {0, r.height() - tex_sz.height()}, //top left {r.width() - tex_sz.width(), r.height() - tex_sz.height()}, //top right {r.width() - tex_sz.width(), 0}, //bottom right {0, 0}, //bottom left }; for (int i = 0; i < 4; i++) { if (!m_vboCorners[i].isCreated()) { m_vboCorners[i].create(); } auto r2 = QRect(pos[i], tex_sz); GLfloat x1 = static_cast(r2.left()) / r.width(); GLfloat x2 = static_cast(r2.right()+1) / r.width(); GLfloat y1 = static_cast(r2.top()) / r.height(); GLfloat y2 = static_cast(r2.bottom()+1) / r.height(); x1 = static_cast(static_cast(x1) * 2.0 - 1.0); x2 = static_cast(static_cast(x2) * 2.0 - 1.0); y1 = static_cast(static_cast(y1) * 2.0 - 1.0); y2 = static_cast(static_cast(y2) * 2.0 - 1.0); // for video tex coord GLfloat s1 = static_cast(r2.left()) / r.width(); GLfloat s2 = static_cast(r2.right()+1) / r.width(); GLfloat t2 = static_cast(r2.top()) / r.height(); GLfloat t1 = static_cast(r2.bottom()+1) / r.height(); // corner(and video) coord, corner-tex-coord, and video-as-tex-coord GLfloat vdata[] = { x1, y1, 0.0f, 1.0f, s1, t2, x2, y1, 1.0f, 1.0f, s2, t2, x2, y2, 1.0f, 0.0f, s2, t1, x1, y1, 0.0f, 1.0f, s1, t2, x2, y2, 1.0f, 0.0f, s2, t1, x1, y2, 0.0f, 0.0f, s1, t1, }; m_vboCorners[i].bind(); m_vboCorners[i].allocate(vdata, sizeof(vdata)); m_vboCorners[i].release(); } } void QtPlayerGLWidget::updateVbo() { if (!m_vbo.isCreated()) { m_vbo.create(); } //HACK: we assume if any of width or height is 380, then we are in mini mode auto vp = rect().size(); auto bg_size = QSizeF(m_imgBgDark.size()) / devicePixelRatioF(); m_bInMiniMode = vp.width() <= 380 || vp.height() <= 380; auto tex_sz = m_bInMiniMode ? bg_size/2 : bg_size; auto r = QRectF(0, 0, vp.width(), vp.height()); auto r2 = QRectF(r.center() - QPointF(tex_sz.width()/2, tex_sz.height()/2), tex_sz); GLfloat x1 = static_cast(static_cast(r2.left()) / r.width()); GLfloat x2 = static_cast(static_cast((r2.right()+1) / r.width())); GLfloat y1 = static_cast(static_cast(r2.top() / r.height())); GLfloat y2 = static_cast(static_cast((r2.bottom()+1) / r.height())); x1 = static_cast(static_cast(x1) * 2.0 - 1.0); x2 = static_cast(static_cast(x2) * 2.0 - 1.0); y1 = static_cast(static_cast(y1) * 2.0 - 1.0); y2 = static_cast(static_cast(y2) * 2.0 - 1.0); GLfloat vdata[] = { x1, y1, 0.0f, 1.0f, x2, y1, 1.0f, 1.0f, x2, y2, 1.0f, 0.0f, x1, y1, 0.0f, 1.0f, x2, y2, 1.0f, 0.0f, x1, y2, 0.0f, 0.0f }; m_vbo.bind(); m_vbo.allocate(vdata, sizeof(vdata)); m_vbo.release(); } void QtPlayerGLWidget::resizeGL(int nWidth, int nHeight) { updateMovieFbo(); updateVbo(); updateVboBlend(); if (m_bUseCustomFBO){ updateVboCorners(); } qInfo() << "GL resize" << nWidth << nHeight; QOpenGLWidget::resizeGL(nWidth, nHeight); } void QtPlayerGLWidget::toggleRoundedClip(bool bFalse) { // 设置圆角时使用自定的FBO,但在全屏和最大化时,通过 // m_bDoRoundedClipping 设置是否实际应用圆角 m_bUseCustomFBO = bFalse; makeCurrent(); updateMovieFbo(); update(); } void QtPlayerGLWidget::initMember() { m_bPlaying = false; m_bInMiniMode= false; m_bUseCustomFBO = true; m_bDoRoundedClipping = true; m_pDarkTex = nullptr; m_pLightTex = nullptr; m_pGlProg = nullptr; m_pGlProgBlend = nullptr; m_pFbo = nullptr; m_pGlProgBlendCorners = nullptr; m_pGlProgCorner = nullptr; m_pCornerMasks[0] = nullptr; m_pCornerMasks[1] = nullptr; m_pCornerMasks[2] = nullptr; m_pCornerMasks[3] = nullptr; m_pVideoTex = nullptr; m_bRawFormat = false; m_currWidth = rect().width(); m_currHeight = rect().height(); } /*not used yet*/ void QtPlayerGLWidget::paintGL() { QOpenGLFunctions *pGLFunction = QOpenGLContext::currentContext()->functions(); if (m_bPlaying && m_pVideoTex) { { pGLFunction->glEnable(GL_BLEND); pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); pGLFunction->glClearColor(0.0f, 0.0f, 0.0f, 1.0); pGLFunction->glClear(GL_COLOR_BUFFER_BIT); QOpenGLVertexArrayObject::Binder vaoBind(&m_vaoBlend); m_vaoBlend.bind(); m_pGlProgBlend->bind(); QOpenGLTexture *pGLTexture = m_pVideoTex; pGLTexture->bind(); pGLFunction->glActiveTexture(GL_TEXTURE0); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); pGLTexture->release(); m_pGlProgBlend->release(); pGLFunction->glDisable(GL_BLEND); } #ifdef __x86_64__ QWidget *topWidget = topLevelWidget(); if(topWidget && (topWidget->isFullScreen())) { // 全屏状态播放时更新显示进度 QString time_text = QTime::currentTime().toString("hh:mm"); QRect rectTime = QRect(rect().width() - 90, 0, 90, 40); QPainter painter; painter.begin(this); QPen pen; pen.setColor(QColor(255, 255, 255, 255 * .4)); painter.setPen(pen); QFontMetrics fm(font()); auto fr = fm.boundingRect(time_text); fr.moveCenter(rectTime.center()); //显示系统时间 painter.drawText(fr,time_text); QPoint pos((rectTime.topLeft().x() + 20), rectTime.topLeft().y() + rectTime.height() - 5); int pert = qMin(m_pert * 10, 10.0); for (int i = 0; i < 10; i++) { // 显示影院视频播放进度 if (i >= pert) { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, 255 * .25)); } else { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, 255 * .5)); } pos.rx() += 5; } QRect rectMovieTime = QRect(rect().width() - 175, 46, 175, 20); if(m_strPlayTime.isNull() || m_strPlayTime.isEmpty()) return; QPalette Palette; pen.setColor(Palette.color(QPalette::Text)); if (m_bRawFormat) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(0, 0, 0, 40)); } else { pen.setColor(QColor(255, 255, 255, 40)); } } painter.setPen(pen); fr = fm.boundingRect(m_strPlayTime); fr.moveCenter(rectMovieTime.center()); //显示影院视频播放时间与总时间 painter.drawText(fr,m_strPlayTime); painter.end(); } #endif } else { pGLFunction->glEnable(GL_BLEND); pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); QColor color = QColor(37, 37, 37, 255); float fRation = 37.0f / 255.0f; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){ color = QColor(252, 252, 252, 255); fRation = 252.0f / 255.0f; } pGLFunction->glClearColor(fRation, fRation, fRation, 1.0); pGLFunction->glClear(GL_COLOR_BUFFER_BIT); for(int i = 0;i < 2 ;i ++){ { QOpenGLVertexArrayObject::Binder vaoBind(&m_vao); m_vbo.bind(); m_pGlProg->bind(); m_pGlProg->setUniformValue("bg", color); prepareSplashImages(); QOpenGLTexture *pGLTexture; m_pLightTex->setData(m_imgBgLight); pGLTexture = m_pLightTex; //和产品、ui商议深色主题下去除深色背景效果 // DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); // if (themeType == DGuiApplicationHelper::DarkType) { // pGLTexture = m_pDarkTex; // } pGLTexture->bind(); pGLFunction->glActiveTexture(GL_TEXTURE0); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); pGLTexture->release(); m_pGlProg->release(); m_vbo.release(); } } if (m_bDoRoundedClipping) { pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ZERO); // blend corners QOpenGLVertexArrayObject::Binder vaoBind(&m_vaoCorner); for (int i = 0; i < 4; i++) { m_pGlProgCorner->bind(); m_vboCorners[i].bind(); int vertexLoc = m_pGlProgCorner->attributeLocation("position"); int coordLoc = m_pGlProgCorner->attributeLocation("vTexCoord"); m_pGlProgCorner->enableAttributeArray(vertexLoc); m_pGlProgCorner->setAttributeBuffer(vertexLoc, GL_FLOAT, 0, 2, 6*sizeof(GLfloat)); m_pGlProgCorner->enableAttributeArray(coordLoc); m_pGlProgCorner->setAttributeBuffer(coordLoc, GL_FLOAT, 2*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgCorner->setUniformValue("bg", color); pGLFunction->glActiveTexture(GL_TEXTURE0); m_pCornerMasks[i]->bind(); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); m_pCornerMasks[i]->release(); m_pGlProgCorner->release(); m_vboCorners[i].release(); } } pGLFunction->glDisable(GL_BLEND); } } void QtPlayerGLWidget::setPlaying(bool bFalse) { if (m_bPlaying != bFalse) { m_bPlaying = bFalse; delete m_pVideoTex; m_pVideoTex = nullptr; } updateVbo(); updateVboCorners(); updateMovieFbo(); update(); } void QtPlayerGLWidget::setVideoTex(QImage image) { if(!m_pVideoTex){ QFileInfo fi("/dev/mwv206_0"); QFileInfo jmfi("/dev/jmgpu"); if (fi.exists() || jmfi.exists()) { m_pVideoTex = new QOpenGLTexture(image, QOpenGLTexture::DontGenerateMipMaps); } else { m_pVideoTex = new QOpenGLTexture(image, QOpenGLTexture::GenerateMipMaps); } } else { m_pVideoTex->setData(image); } if(m_currWidth != image.width() || m_currHeight != image.height()) { m_currWidth = image.width(); m_currHeight = image.height(); updateVboBlend(); } } #ifdef __x86_64__ void QtPlayerGLWidget::updateMovieProgress(qint64 duration, qint64 pos) { if (pos > duration) pos = duration; m_pert = (qreal)pos / duration;//更新影院播放进度 QString sCurtime = QString("%1 %2").arg(utils::Time2str(pos)).arg("/ "); QString stime = QString("%1").arg(utils::Time2str(duration)); m_strPlayTime = sCurtime + stime;//更新影院当前播放时长 } #endif void QtPlayerGLWidget::setRawFormatFlag(bool bRawFormat) { m_bRawFormat = bRawFormat; } } deepin-movie-reborn-5.15.10/src/backends/mediaplayer/qtplayer_glwidget.h000066400000000000000000000054001473342170300262710ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_QTPLAYER_GLWIDGET_H #define _DMR_QTPLAYER_GLWIDGET_H #include #undef Bool #include "../../vendor/qthelper.hpp" #include //DWIDGET_USE_NAMESPACE namespace dmr { class QtPlayerGLWidget : public QOpenGLWidget { Q_OBJECT public: friend class MpvProxy; explicit QtPlayerGLWidget(QWidget *parent); virtual ~QtPlayerGLWidget(); /** * rounded clipping consumes a lot of resources, and performs bad on 4K video */ void toggleRoundedClip(bool bFalse); void setPlaying(bool); void setVideoTex(QImage image); #ifdef __x86_64__ //更新全屏时影院播放进度 void updateMovieProgress(qint64 duration, qint64 pos); #endif void setRawFormatFlag(bool bRawFormat); protected: /** * @brief opengl初始化 cppcheck误报 */ void initializeGL() override; void resizeGL(int nWidth, int nHeight) override; void paintGL() override; void setMiniMode(bool); private: void initMember(); void updateVbo(); void updateVboCorners(); void updateVboBlend(); void updateMovieFbo(); void updateCornerMasks(); void setupBlendPipe(); void setupIdlePipe(); void prepareSplashImages(); private: bool m_bPlaying; //记录播放状态 bool m_bInMiniMode; //是否是最小化 bool m_bUseCustomFBO; // 使用自定的 QOpenGLFramebufferObject 进行绘制 bool m_bDoRoundedClipping; // 裁剪圆角 QOpenGLVertexArrayObject m_vao; //顶点数组对象 QOpenGLBuffer m_vbo; //顶点缓冲对象 QOpenGLTexture *m_pDarkTex; //深色主题背景纹理 QOpenGLTexture *m_pLightTex; //浅色主题背景纹理 QOpenGLShaderProgram *m_pGlProg; QOpenGLVertexArrayObject m_vaoBlend; QOpenGLBuffer m_vboBlend; QOpenGLShaderProgram *m_pGlProgBlend; QOpenGLFramebufferObject *m_pFbo; QOpenGLShaderProgram *m_pGlProgBlendCorners; //textures for corner QOpenGLVertexArrayObject m_vaoCorner; QOpenGLTexture *m_pCornerMasks[4]; QOpenGLBuffer m_vboCorners[4]; QOpenGLShaderProgram *m_pGlProgCorner; //着色器程序 QImage m_imgBgDark; //深色主题背景图 QImage m_imgBgLight; //浅色主题背景图 QOpenGLTexture* m_pVideoTex; int m_currWidth; int m_currHeight; #ifdef __x86_64__ qreal m_pert; // 影院播放进度 QString m_strPlayTime; // 播放时间显示; #endif bool m_bRawFormat; }; } #endif /* ifndef _DMR_MPV_GLWIDGET_H */ deepin-movie-reborn-5.15.10/src/backends/mediaplayer/qtplayer_proxy.cpp000066400000000000000000000300411473342170300261760ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "qtplayer_proxy.h" #include "mpv_glwidget.h" #include "compositing_manager.h" #include "player_engine.h" #ifndef _LIBDMR_ #include "dmr_settings.h" #include "movie_configuration.h" #endif #include #include #include #include #include namespace dmr { enum AsyncReplyTag { SEEK, CHANNEL, SPEED }; QtPlayerProxy::QtPlayerProxy(QWidget *parent) :Backend (parent) { m_pParentWidget = parent; m_pPlayer = new QMediaPlayer(this); m_pVideoSurface = new VideoSurface; m_pPlayer->setVideoOutput(m_pVideoSurface); m_pGLWidget = new QtPlayerGLWidget(this); QVBoxLayout* pLayout = new QVBoxLayout; setLayout(pLayout); pLayout->setContentsMargins(0, 0, 0, 0); pLayout->addWidget(m_pGLWidget);; m_pGLWidget->show(); m_pGLWidget->update(); connect(m_pPlayer,&QMediaPlayer::stateChanged,this,&QtPlayerProxy::slotStateChanged); connect(m_pPlayer,&QMediaPlayer::mediaStatusChanged,this,&QtPlayerProxy::slotMediaStatusChanged); connect(m_pPlayer,&QMediaPlayer::positionChanged,this,&QtPlayerProxy::slotPositionChanged); connect(m_pPlayer,SIGNAL(error(QMediaPlayer::Error)),this,SLOT(slotMediaError(QMediaPlayer::Error))); connect(m_pVideoSurface, &VideoSurface::frameAvailable, this, &QtPlayerProxy::processFrame); #ifdef __x86_64__ connect(this, &QtPlayerProxy::elapsedChanged, [ this ]() {//更新opengl显示进度 m_pGLWidget->updateMovieProgress(duration(), elapsed()); m_pGLWidget->update(); }); #endif } QtPlayerProxy::~QtPlayerProxy() { if (CompositingManager::get().composited()) { disconnect(this, &QtPlayerProxy::stateChanged, nullptr, nullptr); } m_pVideoSurface->deleteLater(); m_pVideoSurface = nullptr; } void QtPlayerProxy::firstInit() { } void QtPlayerProxy::updateRoundClip(bool roundClip) { Q_UNUSED(roundClip); } void QtPlayerProxy::setState(PlayState state) { bool bRawFormat = false; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); bRawFormat = currentInfo.mi.isRawFormat(); } if (_state != state) { _state = state; if (m_pGLWidget) { m_pGLWidget->setPlaying(state != PlayState::Stopped); m_pGLWidget->update(); } emit stateChanged(); } if (m_pGLWidget) { m_pGLWidget->setRawFormatFlag(bRawFormat); } } void QtPlayerProxy::pollingEndOfPlayback() { if (_state != Backend::Stopped) { stop(); setState(Backend::Stopped); return; } } const PlayingMovieInfo &QtPlayerProxy::playingMovieInfo() { return m_movieInfo; } void QtPlayerProxy::slotStateChanged(QMediaPlayer::State newState) { switch (newState) { case QMediaPlayer::StoppedState: #ifndef _LIBDMR_ MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, 0); #endif setState(PlayState::Stopped); break; case QMediaPlayer::PlayingState: setState(PlayState::Playing); break; case QMediaPlayer::PausedState: setState(PlayState::Paused); break; } } void QtPlayerProxy::slotMediaStatusChanged(QMediaPlayer::MediaStatus status) { switch (status) { case QMediaPlayer::BufferedMedia: setState(PlayState::Playing); emit fileLoaded(); break; default: break; } } void QtPlayerProxy::slotPositionChanged(qint64 position) { Q_UNUSED(position); emit elapsedChanged(); } void QtPlayerProxy::slotMediaError(QMediaPlayer::Error error) { switch (error) { case QMediaPlayer::ResourceError: case QMediaPlayer::FormatError: case QMediaPlayer::NetworkError: case QMediaPlayer::AccessDeniedError: case QMediaPlayer::ServiceMissingError: emit sigMediaError(); break; default: break; } } void QtPlayerProxy::processFrame(QVideoFrame &frame) { frame.map(QAbstractVideoBuffer::ReadOnly); QImage recvImage(frame.bits(), frame.width(), frame.height(), QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat())); m_currentImage = recvImage; if(!recvImage.isNull()) { m_pGLWidget->setVideoTex(recvImage); } m_pGLWidget->repaint(); frame.unmap(); } void QtPlayerProxy::showEvent(QShowEvent *pEvent) { if (!m_bConnectStateChange) { m_bConnectStateChange = true; } Backend::showEvent(pEvent); } void QtPlayerProxy::resizeEvent(QResizeEvent *pEvent) { if (state() == PlayState::Stopped) { return; } Backend::resizeEvent(pEvent); } void QtPlayerProxy::savePlaybackPosition() { if (state() == PlayState::Stopped) { return; } #ifndef _LIBDMR_ if (duration() - elapsed() >= 5) { MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed()); } else { MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed() - 1); } #endif } void QtPlayerProxy::setPlaySpeed(double dTimes) { m_pPlayer->setPlaybackRate(dTimes); m_pPlayer->setPosition(m_pPlayer->position()); // 某些格式音频需要重新seek后才生效 } void QtPlayerProxy::volumeUp() { if (volume() >= 200) return; changeVolume(volume() + 10); } void QtPlayerProxy::volumeDown() { if (volume() <= 0) return; changeVolume(volume() - 10); } void QtPlayerProxy::changeVolume(int nVol) { m_pPlayer->setVolume(nVol); } int QtPlayerProxy::volume() const { int nActualVol = m_pPlayer->volume(); int nDispalyVol = static_cast((nActualVol - 40) / 60.0 * 200.0); return nDispalyVol; } bool QtPlayerProxy::muted() const { return m_pPlayer->isMuted(); } void QtPlayerProxy::toggleMute() { bool bMute = false; bMute = m_pPlayer->isMuted(); m_pPlayer->setMuted(!bMute); } void QtPlayerProxy::setMute(bool bMute) { m_pPlayer->setMuted(bMute); } void QtPlayerProxy::updateSubStyle(const QString &font, int sz) { Q_UNUSED(font); Q_UNUSED(sz); } void QtPlayerProxy::setSubCodepage(const QString &cp) { Q_UNUSED(cp); } QString QtPlayerProxy::subCodepage() { return QString(); } void QtPlayerProxy::addSubSearchPath(const QString &path) { Q_UNUSED(path); } bool QtPlayerProxy::loadSubtitle(const QFileInfo &fi) { Q_UNUSED(fi); return false; } void QtPlayerProxy::toggleSubtitle() { } bool QtPlayerProxy::isSubVisible() { return false; } void QtPlayerProxy::selectSubtitle(int id) { Q_UNUSED(id); } void QtPlayerProxy::selectTrack(int id) { Q_UNUSED(id); } void QtPlayerProxy::setSubDelay(double secs) { Q_UNUSED(secs); } double QtPlayerProxy::subDelay() const { return .0; } int QtPlayerProxy::aid() const { return 0; } int QtPlayerProxy::sid() const { return 0; } void QtPlayerProxy::changeSoundMode(Backend::SoundMode) { } void QtPlayerProxy::setVideoAspect(double r) { Q_UNUSED(r); } double QtPlayerProxy::videoAspect() const { return 0.0; } int QtPlayerProxy::videoRotation() const { return 0; } void QtPlayerProxy::setVideoRotation(int degree) { Q_UNUSED(degree); } QImage QtPlayerProxy::takeScreenshot() { return m_currentImage; } void QtPlayerProxy::burstScreenshot() { int nCurrentPos = static_cast(m_pPlayer->position()); int nDuration = static_cast(m_pPlayer->duration() / 15); int nTime = 0; std::random_device rd; std::mt19937 g(rd()); std::uniform_int_distribution uniform_dist(0, nDuration); //m_listBurstPoints.clear(); for (int i = 0; i < 15; i++) { //m_listBurstPoints.append(nDuration * i + uniform_dist(g)); nTime = nDuration * i + uniform_dist(g) - 200; m_pPlayer->setPosition(nTime); QEventLoop loop; QTimer::singleShot(200, &loop, SLOT(quit())); loop.exec(); emit notifyScreenshot(m_currentImage, nTime/1000); } m_pPlayer->setPosition(nCurrentPos); } void QtPlayerProxy::stopBurstScreenshot() { } QVariant QtPlayerProxy::getProperty(const QString &) { return 0; } void QtPlayerProxy::setProperty(const QString &, const QVariant &) { } void QtPlayerProxy::nextFrame() { } void QtPlayerProxy::previousFrame() { } void QtPlayerProxy::makeCurrent() { } void QtPlayerProxy::changehwaccelMode(Backend::hwaccelMode hwaccelMode) { Q_UNUSED(hwaccelMode); } void QtPlayerProxy::initMember() { m_nBurstStart = 0; m_pParentWidget = nullptr; m_bInBurstShotting = false; m_posBeforeBurst = false; m_bExternalSubJustLoaded = false; m_bConnectStateChange = false; m_bPauseOnStart = false; m_bInited = false; m_bHwaccelAuto = false; m_bLastIsSpecficFormat = false; m_listBurstPoints.clear(); m_mapWaitSet.clear(); m_vecWaitCommand.clear(); m_pConfig = nullptr; } void QtPlayerProxy::play() { bool bRawFormat = false; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); bRawFormat = currentInfo.mi.isRawFormat(); } if (_file.isLocalFile()) { QString strFilePath = QFileInfo(_file.toLocalFile()).absoluteFilePath(); m_pPlayer->setMedia(QMediaContent(QUrl::fromLocalFile(strFilePath))); } else { m_pPlayer->setMedia(QMediaContent(_file)); } m_pPlayer->play(); #ifndef _LIBDMR_ QMap cfg = MovieConfiguration::get().queryByUrl(_file); QString key = MovieConfiguration::knownKey2String(ConfigKnownKey::StartPos); if (Settings::get().isSet(Settings::ResumeFromLast) && !bRawFormat) { seekAbsolute(cfg[key].toInt()); } #endif } void QtPlayerProxy::pauseResume() { if (_state == PlayState::Playing){ m_pPlayer->pause(); }else if (_state == PlayState::Paused) { m_pPlayer->play(); } } void QtPlayerProxy::stop() { m_pPlayer->stop(); } int QtPlayerProxy::volumeCorrection(int displayVol) { int realVol = 0; if (utils::check_wayland_env()) { //>100时,mpv按照显示音量:mpv 10:5的比例调节音量 realVol = displayVol > 100 ? 100 + (displayVol - 100) / 10 * 5 : displayVol; } else { realVol = static_cast((displayVol / 200.0) * 60.0 + 40); } return (realVol == 40 ? 0 : realVol); } void QtPlayerProxy::seekForward(int nSecs) { qint64 nPosition = 0; nPosition = m_pPlayer->position(); nPosition = nPosition + nSecs*1000; if (state() != PlayState::Stopped) { m_pPlayer->setPosition(nPosition); } } void QtPlayerProxy::seekBackward(int nSecs) { qint64 nPosition = 0; nPosition = m_pPlayer->position(); nPosition = nPosition - nSecs*1000; if (state() != PlayState::Stopped) { m_pPlayer->setPosition(nPosition); } } void QtPlayerProxy::seekAbsolute(int nPos) { if (state() != PlayState::Stopped) m_pPlayer->setPosition(nPos*1000); } QSize QtPlayerProxy::videoSize() const { PlayItemInfo currentInfo; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); } return QSize(currentInfo.mi.width, currentInfo.mi.height); } qint64 QtPlayerProxy::duration() const { PlayItemInfo currentInfo; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); } if(currentInfo.mi.duration > 0){ return currentInfo.mi.duration; } else { return m_pPlayer->duration()/1000; } } qint64 QtPlayerProxy::elapsed() const { return m_pPlayer->position()/1000; } void QtPlayerProxy::updatePlayingMovieInfo() { } } // end of namespace dmr deepin-movie-reborn-5.15.10/src/backends/mediaplayer/qtplayer_proxy.h000066400000000000000000000131411473342170300256450ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_QTPLAYER_PROXY_H #define _DMR_QTPLAYER_PROXY_H #include #include #include #include #include "videosurface.h" #include "qtplayer_glwidget.h" namespace dmr { /** * @file 封装qmediaplayer播放引擎 */ class QtPlayerProxy: public Backend { Q_OBJECT public: explicit QtPlayerProxy(QWidget *parent = 0); virtual ~QtPlayerProxy(); /** * @brief firstInit 第一次播放需要初库始化函数指针 */ void firstInit(); /** * @brief updateRoundClip 更新opengl绘制圆角 * @param roundClip 是否为圆角 */ void updateRoundClip(bool roundClip); /** * @brief 正在播放影片的影片信息 */ const PlayingMovieInfo &playingMovieInfo() override; bool isPlayable() const override { return true; } // polling until current playback ended void pollingEndOfPlayback(); // polling until current playback started void pollingStartOfPlayback(); /** * @brief 获取影片时间长 */ qint64 duration() const override; /** * @brief 获取影片当前进度 */ qint64 elapsed() const override; /** * @brief 获取当前影片显示大小 */ QSize videoSize() const override; /** * @brief 设置播放速度 * @param 范围0.01-100 */ void setPlaySpeed(double dTimes) override; /** * @brief 播放记录,记录播放到当前时刻 */ void savePlaybackPosition() override; public slots: /** * @brief 播放当前影片 */ void play() override; /** * @brief 暂停或恢复暂停 */ void pauseResume() override; /** * @brief 终止播放 */ void stop() override; /** * @brief 向前seek * @param 当前往前多少秒 */ void seekForward(int nSecs) override; /** * @brief 向后seek * @param 当前往后多少秒 */ void seekBackward(int nSecs) override; /** * @brief seek到某个位置 * @param 某个进度点(秒) */ void seekAbsolute(int nPos) override; /** * @brief 加音量 */ void volumeUp() override; /** * @brief 减音量 */ void volumeDown() override; /** * @brief 调整音量大小 */ void changeVolume(int nVol) override; /** * @brief 获取音量 */ int volume() const override; /** * @brief 静音状态 */ bool muted() const override; /** * @brief 循环改变静音状态 */ void toggleMute() override; /** * @brief 指定改变静音状态 */ void setMute(bool bMute) override; void updateSubStyle(const QString &font, int sz); void setSubCodepage(const QString &cp); QString subCodepage(); void addSubSearchPath(const QString &path); bool loadSubtitle(const QFileInfo &fi); void toggleSubtitle(); bool isSubVisible(); void selectSubtitle(int id); void selectTrack(int id); void setSubDelay(double secs); double subDelay() const; int aid() const; int sid() const; void changeSoundMode(SoundMode); void setVideoAspect(double r); double videoAspect() const; int videoRotation() const; void setVideoRotation(int degree); QImage takeScreenshot(); void burstScreenshot(); void stopBurstScreenshot(); QVariant getProperty(const QString &); void setProperty(const QString &, const QVariant &); void nextFrame(); void previousFrame(); void makeCurrent(); void changehwaccelMode(hwaccelMode hwaccelMode); protected: void initMember(); //初始化成员变量 void resizeEvent(QResizeEvent *pEvent) override; void showEvent(QShowEvent *pEvent) override; protected slots: void slotStateChanged(QMediaPlayer::State newState); void slotMediaStatusChanged(QMediaPlayer::MediaStatus status); void slotPositionChanged(qint64 position); void slotMediaError(QMediaPlayer::Error error); void processFrame(QVideoFrame& frame); private: void updatePlayingMovieInfo(); void setState(PlayState state); int volumeCorrection(int); private: QMediaPlayer* m_pPlayer; VideoSurface* m_pVideoSurface; QtPlayerGLWidget* m_pGLWidget; QWidget *m_pParentWidget; PlayingMovieInfo m_movieInfo; //播放过的影片的信息 QVariant m_posBeforeBurst; //截图前影片播放位置 QList m_listBurstPoints; //存储连拍截图截图位置 qint64 m_nBurstStart; //记录连拍截图次数 bool m_bInBurstShotting; //是否停止连拍截图 bool m_bExternalSubJustLoaded; //是否加载在线字幕 bool m_bConnectStateChange; bool m_bPauseOnStart; //mpv是否在暂停中 bool m_bInited; //mpv是否已经初始化 bool m_bHwaccelAuto; //如果设置为不为自动,则不允许此类改变硬件设置 bool m_bLastIsSpecficFormat; //上一曲是否是特殊格式的影片,如果是则应该重新设置vo QMap m_mapWaitSet; //等待mpv初始化后设置的参数 QVector m_vecWaitCommand; //等待mpv初始化后设置的参数 //mpv播放配置 QMap *m_pConfig; QImage m_currentImage; //当前画面 }; } #endif /* ifndef _DMR_MPV_PROXY_H */ deepin-movie-reborn-5.15.10/src/backends/mediaplayer/videosurface.cpp000066400000000000000000000014671473342170300255650ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "videosurface.h" VideoSurface::VideoSurface(QObject *parent) : QAbstractVideoSurface(parent) { } VideoSurface::~VideoSurface() { } QList VideoSurface::supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType) const { QList listPixelFormats; listPixelFormats << QVideoFrame::Format_RGB32; return listPixelFormats; } bool VideoSurface::present(const QVideoFrame &frame) { if (frame.isValid()) { QVideoFrame cloneFrame(frame); emit frameAvailable(cloneFrame); return true; } return false; } deepin-movie-reborn-5.15.10/src/backends/mediaplayer/videosurface.h000066400000000000000000000013311473342170300252200ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef VIDEOSURFACE_H #define VIDEOSURFACE_H #include class VideoSurface : public QAbstractVideoSurface { Q_OBJECT public: explicit VideoSurface(QObject *parent = Q_NULLPTR); ~VideoSurface(); QList supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const; bool present(const QVideoFrame &frame); signals: void frameAvailable(QVideoFrame &frame); }; #endif // VIDEOSURFACE_H deepin-movie-reborn-5.15.10/src/backends/mpv/000077500000000000000000000000001473342170300207005ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/backends/mpv/mpv_glwidget.cpp000066400000000000000000001076331473342170300241060ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "mpv_proxy.h" #include "mpv_glwidget.h" #include "sysutils.h" #include #include #include #include #include #include //#include //#include "../../window/qplatformnativeinterface.h" //qpa/qplatformnativeinterface.h #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) /* Win32 but not WinCE */ # define KHRONOS_APIENTRY __stdcall #else # define KHRONOS_APIENTRY #endif DWIDGET_USE_NAMESPACE #ifndef EGLAPIENTRY #define EGLAPIENTRY KHRONOS_APIENTRY #endif #ifndef GLAPIENTRY #define GLAPIENTRY #endif static const char *vs_blend = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif attribute vec2 position; attribute vec2 vTexCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; } )"; static const char* fs_blend = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D movie; void main() { gl_FragColor = texture2D(movie, texCoord); } )"; static const char* fs_blend_wayland = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D movie; void main() { gl_FragColor = texture2D(movie, texCoord); } )"; static const char* vs_blend_corner = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif attribute vec2 position; attribute vec2 maskTexCoord; attribute vec2 vTexCoord; varying vec2 maskCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; maskCoord = maskTexCoord; } )"; static const char* fs_blend_corner = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 maskCoord; varying vec2 texCoord; uniform sampler2D movie; uniform sampler2D mask; void main() { gl_FragColor = texture2D(movie, texCoord) * texture2D(mask, maskCoord).a; } )"; static const char* fs_blend_corner_wayland = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 maskCoord; varying vec2 texCoord; uniform sampler2D movie; uniform sampler2D mask; void main() { gl_FragColor = texture2D(movie, texCoord) * texture2D(mask, maskCoord).a; } )"; static const char* vs_code = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif attribute vec2 position; attribute vec2 vTexCoord; varying vec2 texCoord; void main() { gl_Position = vec4(position, 0.0, 1.0); texCoord = vTexCoord; } )"; static const char* fs_code = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D sampler; uniform vec4 bg; void main() { vec4 s = texture2D(sampler, texCoord); gl_FragColor = vec4(s.rgb * s.a + bg.rgb * (1.0 - s.a), 1.0); } )"; static const char* fs_code_wayland = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D sampler; uniform vec4 bg; void main() { vec4 s = texture2D(sampler, texCoord); gl_FragColor = vec4(s.rgb * s.a + bg.rgb * (1.0 - s.a), 1.0); } )"; static const char* fs_corner_code = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D corner; uniform vec4 bg; void main() { vec4 s = texture2D(corner, texCoord); gl_FragColor = s.a * bg; } )"; static const char* fs_corner_code_wayland = R"( #ifdef GL_ES // Set default precision to medium precision mediump int; precision mediump float; #endif varying vec2 texCoord; uniform sampler2D corner; uniform vec4 bg; void main() { vec4 s = texture2D(corner, texCoord); gl_FragColor = s.a * bg; } )"; namespace dmr { static void* GLAPIENTRY glMPGetNativeDisplay(const char* name) { qWarning() << __func__ << name; if (!strcmp(name, "x11") || !strcmp(name, "X11")) { return static_cast(QX11Info::display()); } return nullptr; } static void* EGLAPIENTRY glMPGetNativeDisplay_EGL(const char* name) { qWarning() << __func__ << name; //QPlatformNativeInterface* native = QGuiApplication::platformNativeInterface(); //struct wl_display * wl_dpy = (struct wl_display*) (native->nativeResourceForWindow("display",NULL)); if (!strcmp(name, "wayland")) { //return (void*)wl_dpy; return nullptr; } return nullptr; } static void *get_proc_address(void *pCtx, const char *pName) { Q_UNUSED(pCtx); QOpenGLContext *pGLCtx = QOpenGLContext::currentContext(); if (!pGLCtx) return nullptr; if (!strcmp(pName, "glMPGetNativeDisplay")) { if(utils::check_wayland_env()){ return (void*)glMPGetNativeDisplay_EGL; }else{ return (void*)glMPGetNativeDisplay; } } return reinterpret_cast(pGLCtx->getProcAddress(QByteArray(pName))); } static void gl_update_callback(void *pCtx) { MpvGLWidget *pWid = static_cast(pCtx); QMetaObject::invokeMethod(pWid, "onNewFrame"); } //cppcheck 被QMetaObject::invokeMethod使用 void MpvGLWidget::onNewFrame() { if (window()->isMinimized()) { makeCurrent(); paintGL(); context()->swapBuffers(context()->surface()); doneCurrent(); } else { m_renderContextUpdate(m_pRenderCtx); update(); } } void MpvGLWidget::onFrameSwapped() { //qInfo() << "frame swapped"; if(!m_context_report) return; m_context_report(m_pRenderCtx); } MpvGLWidget::MpvGLWidget(QWidget *parent, MpvHandle h) :QOpenGLWidget(parent), m_handle(h) { initMember(); initMpvFuns(); setUpdateBehavior(QOpenGLWidget::NoPartialUpdate); connect(this, &QOpenGLWidget::frameSwapped, this, &MpvGLWidget::onFrameSwapped, Qt::DirectConnection); } MpvGLWidget::~MpvGLWidget() { makeCurrent(); if (m_pDarkTex) { m_pDarkTex->destroy(); delete m_pDarkTex; } if (m_pLightTex) { m_pLightTex->destroy(); delete m_pLightTex; } for (auto mask: m_pCornerMasks) { if (mask) mask->destroy(); } m_vbo.destroy(); for (int i = 0; i < 4; i++) { m_vboCorners[i].destroy(); ///指针数组m_pCornerMasks在mpv_glwidget.cpp 476行申请内存后未释放/// delete m_pCornerMasks[i]; m_pCornerMasks[i] = nullptr; } m_vao.destroy(); m_vaoBlend.destroy(); m_vaoCorner.destroy(); delete m_pGlProgBlend; m_pGlProgBlend = nullptr; delete m_pGlProgBlendCorners; m_pGlProgBlendCorners = nullptr;; delete m_pGlProg; m_pGlProg = nullptr; delete m_pGlProgCorner; m_pGlProgCorner = nullptr; if (m_pFbo) delete m_pFbo; //add by heyi if (m_pRenderCtx) m_callback(m_pRenderCtx, nullptr, nullptr); // Until this call is done, we need to make sure the player remains // alive. This is done implicitly with the mpv::qt::Handle instance // in this class. m_renderContex(m_pRenderCtx); //mpv_render_context_free(m_pRenderCtx); doneCurrent(); } void MpvGLWidget::setupBlendPipe() { updateMovieFbo(); m_vaoBlend.create(); m_vaoBlend.bind(); updateVboBlend(); m_pGlProgBlend = new QOpenGLShaderProgram(); m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_blend); if(utils::check_wayland_env()){ m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_wayland); }else { m_pGlProgBlend->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend); } if (!m_pGlProgBlend->link()) { qInfo() << "link failed"; } m_pGlProgBlend->bind(); m_vboBlend.bind(); int vLocBlend = m_pGlProgBlend->attributeLocation("position"); int coordLocBlend = m_pGlProgBlend->attributeLocation("vTexCoord"); m_pGlProgBlend->enableAttributeArray(vLocBlend); m_pGlProgBlend->setAttributeBuffer(vLocBlend, GL_FLOAT, 0, 2, 6*sizeof(GLfloat)); m_pGlProgBlend->enableAttributeArray(coordLocBlend); m_pGlProgBlend->setAttributeBuffer(coordLocBlend, GL_FLOAT, 2*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgBlend->setUniformValue("movie", 0); m_pGlProgBlend->release(); m_vaoBlend.release(); m_pGlProgBlendCorners = new QOpenGLShaderProgram(); m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_blend_corner); if(utils::check_wayland_env()){ m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_corner_wayland); }else{ m_pGlProgBlendCorners->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_blend_corner); } if (!m_pGlProgBlendCorners->link()) { qInfo() << "link failed"; } } void MpvGLWidget::setupIdlePipe() { m_vao.create(); m_vao.bind(); m_pDarkTex = new QOpenGLTexture(m_imgBgDark, QOpenGLTexture::DontGenerateMipMaps); m_pDarkTex->setMinificationFilter(QOpenGLTexture::Linear); m_pLightTex = new QOpenGLTexture(m_imgBgLight, QOpenGLTexture::DontGenerateMipMaps); m_pLightTex->setMinificationFilter(QOpenGLTexture::Linear); updateVbo(); m_vbo.bind(); m_pGlProg = new QOpenGLShaderProgram(); m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_code); if(utils::check_wayland_env()){ m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_code_wayland); }else{ m_pGlProg->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_code); } if (!m_pGlProg->link()) { qInfo() << "link failed"; } m_pGlProg->bind(); int vertexLoc = m_pGlProg->attributeLocation("position"); int coordLoc = m_pGlProg->attributeLocation("vTexCoord"); m_pGlProg->enableAttributeArray(vertexLoc); m_pGlProg->setAttributeBuffer(vertexLoc, GL_FLOAT, 0, 2, 4*sizeof(GLfloat)); m_pGlProg->enableAttributeArray(coordLoc); m_pGlProg->setAttributeBuffer(coordLoc, GL_FLOAT, 2*sizeof(GLfloat), 2, 4*sizeof(GLfloat)); m_pGlProg->setUniformValue("sampler", 0); m_pGlProg->release(); m_vao.release(); { m_vaoCorner.create(); m_vaoCorner.bind(); // setting up corners updateVboCorners(); updateCornerMasks(); m_pGlProgCorner = new QOpenGLShaderProgram(); m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Vertex, vs_code); if(utils::check_wayland_env()){ m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_corner_code_wayland); }else{ m_pGlProgCorner->addShaderFromSourceCode(QOpenGLShader::Fragment, fs_corner_code); } if (!m_pGlProgCorner->link()) { qInfo() << "link failed"; } m_vaoCorner.release(); } } void MpvGLWidget::prepareSplashImages() { QPixmap pixmap; QImage img=utils::LoadHiDPIImage(":/resources/icons/dark/init-splash-bac.svg"); pixmap=pixmap.fromImage(img); QPixmap pixmap2; QImage img1=QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); pixmap2=pixmap2.fromImage(img1); QPainter painter(&pixmap); painter.drawPixmap(98,127,pixmap2); m_imgBgDark=pixmap.toImage(); m_imgBgDark.setDevicePixelRatio(qApp->devicePixelRatio()); QPixmap pixmap3; QImage image(pixmap.size(),QImage::Format_Alpha8); image.fill(QColor(0, 0, 0, 0)); image.setDevicePixelRatio(qApp->devicePixelRatio()); pixmap3=pixmap3.fromImage(image); QPixmap pixmap4; QImage img2=QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); pixmap4=pixmap4.fromImage(img2); QPainter painter1(&pixmap3); painter1.drawPixmap(98,127,pixmap4); m_imgBgLight = pixmap3.toImage(); m_imgBgLight.setDevicePixelRatio(qApp->devicePixelRatio()); } //cppcheck误报 void MpvGLWidget::initializeGL() { QOpenGLFunctions *pGLFunction = QOpenGLContext::currentContext()->functions(); float a = static_cast(16.0 / 255.0); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){ a = static_cast(252.0 / 255.0); } if(parent()->property("color").isValid()) { QColor clr = parent()->property("color").value(); pGLFunction->glClearColor(clr.red()/255.f, clr.green()/255.f, clr.blue()/255.f, 1.0); } else { pGLFunction->glClearColor(a, a, a, 1.0); } prepareSplashImages(); setupIdlePipe(); setupBlendPipe(); #ifdef _LIBDMR_ if(utils::check_wayland_env()){ m_bDoRoundedClipping = true; toggleRoundedClip(true); }else{ m_bDoRoundedClipping = false; toggleRoundedClip(false); } #else #ifndef USE_DXCB connect(window()->windowHandle(), &QWindow::windowStateChanged, [=]() { QWidget* pTopWid = this->topLevelWidget(); bool rounded = !pTopWid->isFullScreen() && !pTopWid->isMaximized(); // 全屏和最大化下不裁剪圆角 m_bDoRoundedClipping = rounded; //wayland if(utils::check_wayland_env()) { rounded = true; } toggleRoundedClip(rounded); }); #endif #endif #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0) mpv_opengl_init_params gl_init_params = { get_proc_address, nullptr, nullptr }; #else mpv_opengl_init_params gl_init_params = { get_proc_address, nullptr }; #endif //int adv_control = 1; mpv_render_param params[] = { {MPV_RENDER_PARAM_API_TYPE, const_cast(MPV_RENDER_API_TYPE_OPENGL)}, {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params}, /* * which saves a copy per video frame ("vd-lavc-dr" option * needs to be enabled, and the rendering backend as well as the * underlying GPU API/driver needs to have support for it). **/ //{MPV_RENDER_PARAM_ADVANCED_CONTROL, &adv_control}, {MPV_RENDER_PARAM_X11_DISPLAY, reinterpret_cast(QX11Info::display())}, {MPV_RENDER_PARAM_INVALID, nullptr} }; if(utils::check_wayland_env()){ //QPlatformNativeInterface* native = QGuiApplication::platformNativeInterface(); //struct wl_display * wl_dpy = (struct wl_display*) (native->nativeResourceForWindow("display",NULL)); params[2] = {MPV_RENDER_PARAM_WL_DISPLAY, nullptr}; } //add by heyi if(!m_renderCreat) return; if (m_renderCreat(&m_pRenderCtx, m_handle, params) < 0) { std::runtime_error("can not init mpv gl"); } m_callback(m_pRenderCtx, gl_update_callback, reinterpret_cast(this)); } void MpvGLWidget::updateMovieFbo() { if (!m_bUseCustomFBO) return; auto desiredSize = size() * qApp->devicePixelRatio(); if (m_pFbo) { if (m_pFbo->size() == desiredSize) { return; } m_pFbo->release(); delete m_pFbo; } m_pFbo = new QOpenGLFramebufferObject(desiredSize); } void MpvGLWidget::updateCornerMasks() { if (!utils::check_wayland_env() && !m_bUseCustomFBO) return; for (int i = 0; i < 4; i++) { QSize sz(RADIUS, RADIUS); QImage img(sz, QImage::Format_ARGB32); img.fill(Qt::transparent); QPainter painter; painter.begin(&img); painter.setRenderHint(QPainter::Antialiasing); QPainterPath pp; switch (i) { case 0: pp.moveTo({0, static_cast(sz.height())}); pp.arcTo(QRectF(0, 0, RADIUS*2, RADIUS*2), 180.0, -90.0); pp.lineTo(RADIUS, RADIUS); pp.closeSubpath(); break; case 1: pp.moveTo({0, 0}); pp.arcTo(QRectF(-RADIUS, 0, RADIUS*2, RADIUS*2), 90.0, -90.0); pp.lineTo(0, RADIUS); pp.closeSubpath(); break; case 2: pp.moveTo({static_cast(sz.width()), 0}); pp.arcTo(QRectF(-RADIUS, -RADIUS, RADIUS*2, RADIUS*2), 0.0, -90.0); pp.lineTo(0, 0); pp.closeSubpath(); break; case 3: pp.moveTo({static_cast(sz.width()), static_cast(sz.height())}); pp.arcTo(QRectF(0, -RADIUS, RADIUS*2, RADIUS*2), 270.0, -90.0); pp.lineTo(RADIUS, 0); pp.closeSubpath(); break; default: return; } painter.setPen(Qt::red); painter.setBrush(Qt::red); painter.drawPath(pp); painter.end(); if (m_pCornerMasks[i] == nullptr) { m_pCornerMasks[i] = new QOpenGLTexture(img, QOpenGLTexture::DontGenerateMipMaps); m_pCornerMasks[i]->setMinificationFilter(QOpenGLTexture::Linear); m_pCornerMasks[i]->setWrapMode(QOpenGLTexture::ClampToEdge); } } } void MpvGLWidget::updateVboBlend() { if (!m_vboBlend.isCreated()) { m_vboBlend.create(); } GLfloat x1 = -1.0f; GLfloat x2 = 1.0f; GLfloat y1 = 1.0f; GLfloat y2 = -1.0f; GLfloat s1 = 0.0f; GLfloat t1 = 1.0f; GLfloat s2 = 1.0f; GLfloat t2 = 0.0f; GLfloat vdata[] = { x1, y1, s1, t1, 0.0f, 1.0f, x2, y1, s2, t1, 1.0f, 1.0f, x2, y2, s2, t2, 1.0f, 0.0f, x1, y1, s1, t1, 0.0f, 1.0f, x2, y2, s2, t2, 1.0f, 0.0f, x1, y2, s1, t2, 0.0f, 0.0f }; m_vboBlend.bind(); m_vboBlend.allocate(vdata, sizeof(vdata)); m_vboBlend.release(); } void MpvGLWidget::updateVboCorners() { auto vp = rect().size(); auto tex_sz = QSize(RADIUS, RADIUS); auto r = QRect(0, 0, vp.width(), vp.height()); QPoint pos[4] = { {0, r.height() - tex_sz.height()}, //top left {r.width() - tex_sz.width(), r.height() - tex_sz.height()}, //top right {r.width() - tex_sz.width(), 0}, //bottom right {0, 0}, //bottom left }; for (int i = 0; i < 4; i++) { if (!m_vboCorners[i].isCreated()) { m_vboCorners[i].create(); } auto r2 = QRect(pos[i], tex_sz); GLfloat x1 = static_cast(r2.left()) / r.width(); GLfloat x2 = static_cast(r2.right()+1) / r.width(); GLfloat y1 = static_cast(r2.top()) / r.height(); GLfloat y2 = static_cast(r2.bottom()+1) / r.height(); x1 = static_cast(static_cast(x1) * 2.0 - 1.0); x2 = static_cast(static_cast(x2) * 2.0 - 1.0); y1 = static_cast(static_cast(y1) * 2.0 - 1.0); y2 = static_cast(static_cast(y2) * 2.0 - 1.0); // for video tex coord GLfloat s1 = static_cast(r2.left()) / r.width(); GLfloat s2 = static_cast(r2.right()+1) / r.width(); GLfloat t2 = static_cast(r2.top()) / r.height(); GLfloat t1 = static_cast(r2.bottom()+1) / r.height(); // corner(and video) coord, corner-tex-coord, and video-as-tex-coord GLfloat vdata[] = { x1, y1, 0.0f, 1.0f, s1, t2, x2, y1, 1.0f, 1.0f, s2, t2, x2, y2, 1.0f, 0.0f, s2, t1, x1, y1, 0.0f, 1.0f, s1, t2, x2, y2, 1.0f, 0.0f, s2, t1, x1, y2, 0.0f, 0.0f, s1, t1, }; m_vboCorners[i].bind(); m_vboCorners[i].allocate(vdata, sizeof(vdata)); m_vboCorners[i].release(); } } void MpvGLWidget::updateVbo() { if (!m_vbo.isCreated()) { m_vbo.create(); } //HACK: we assume if any of width or height is 380, then we are in mini mode auto vp = rect().size(); auto bg_size = QSizeF(m_imgBgDark.size()) / devicePixelRatioF(); m_bInMiniMode = vp.width() <= 380 || vp.height() <= 380; auto tex_sz = m_bInMiniMode ? bg_size/2 : bg_size; auto r = QRectF(0, 0, vp.width(), vp.height()); auto r2 = QRectF(r.center() - QPointF(tex_sz.width()/2, tex_sz.height()/2), tex_sz); GLfloat x1 = static_cast(static_cast(r2.left()) / r.width()); GLfloat x2 = static_cast(static_cast((r2.right()+1) / r.width())); GLfloat y1 = static_cast(static_cast(r2.top() / r.height())); GLfloat y2 = static_cast(static_cast((r2.bottom()+1) / r.height())); x1 = static_cast(static_cast(x1) * 2.0 - 1.0); x2 = static_cast(static_cast(x2) * 2.0 - 1.0); y1 = static_cast(static_cast(y1) * 2.0 - 1.0); y2 = static_cast(static_cast(y2) * 2.0 - 1.0); GLfloat vdata[] = { x1, y1, 0.0f, 1.0f, x2, y1, 1.0f, 1.0f, x2, y2, 1.0f, 0.0f, x1, y1, 0.0f, 1.0f, x2, y2, 1.0f, 0.0f, x1, y2, 0.0f, 0.0f }; m_vbo.bind(); m_vbo.allocate(vdata, sizeof(vdata)); m_vbo.release(); } void MpvGLWidget::resizeGL(int nWidth, int nHeight) { updateMovieFbo(); updateVbo(); if (m_bUseCustomFBO){ updateVboCorners(); } qInfo() << "GL resize" << nWidth << nHeight; QOpenGLWidget::resizeGL(nWidth, nHeight); } void MpvGLWidget::toggleRoundedClip(bool bFalse) { // 设置圆角时使用自定的FBO,但在全屏和最大化时,通过 // m_bDoRoundedClipping 设置是否实际应用圆角 m_bUseCustomFBO = bFalse; makeCurrent(); updateMovieFbo(); update(); } void MpvGLWidget::initMember() { m_pRenderCtx = nullptr; m_bPlaying = false; m_bInMiniMode= false; m_bUseCustomFBO = true; m_bDoRoundedClipping = true; m_pDarkTex = nullptr; m_pLightTex = nullptr; m_pGlProg = nullptr; m_pGlProgBlend = nullptr; m_pFbo = nullptr; m_pGlProgBlendCorners = nullptr; m_pGlProgCorner = nullptr; m_pCornerMasks[0] = nullptr; m_pCornerMasks[1] = nullptr; m_pCornerMasks[2] = nullptr; m_pCornerMasks[3] = nullptr; m_callback = nullptr; m_context_report = nullptr; m_renderContex = nullptr; m_renderCreat = nullptr; m_renderContexRender = nullptr; m_renderContextUpdate = nullptr; m_bRawFormat = false; } /*not used yet*/ /*void MpvGLWidget::setHandle(myHandle h) { m_handle = h; }*/ void MpvGLWidget::paintGL() { QOpenGLFunctions *pGLFunction = QOpenGLContext::currentContext()->functions(); if (m_bPlaying) { qreal dpr = qApp->devicePixelRatio(); QSize scaled = size() * dpr; int nFlip = 1; if (!m_bUseCustomFBO) { mpv_opengl_fbo fbo { static_cast(defaultFramebufferObject()), scaled.width(), scaled.height(), 0 }; mpv_render_param params[] = { {MPV_RENDER_PARAM_OPENGL_FBO, &fbo}, {MPV_RENDER_PARAM_FLIP_Y, &nFlip}, {MPV_RENDER_PARAM_INVALID, nullptr} }; m_renderContexRender(m_pRenderCtx, params); } else { pGLFunction->glEnable(GL_BLEND); pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); m_pFbo->bind(); mpv_opengl_fbo fbo { static_cast(m_pFbo->handle()), scaled.width(), scaled.height(), 0 }; mpv_render_param params[] = { {MPV_RENDER_PARAM_OPENGL_FBO, &fbo}, {MPV_RENDER_PARAM_FLIP_Y, &nFlip}, {MPV_RENDER_PARAM_INVALID, nullptr} }; m_renderContexRender(m_pRenderCtx, params); m_pFbo->release(); { QOpenGLVertexArrayObject::Binder vaoBind(&m_vaoBlend); m_pGlProgBlend->bind(); pGLFunction->glActiveTexture(GL_TEXTURE0); pGLFunction->glBindTexture(GL_TEXTURE_2D, m_pFbo->texture()); pGLFunction->glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); pGLFunction->glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); m_pGlProgBlend->release(); } if (m_bDoRoundedClipping) { pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ZERO); // blend corners //QOpenGLVertexArrayObject::Binder vaoBind(&m_vaoCorner); for (int i = 0; i < 4; i++) { m_pGlProgBlendCorners->bind(); m_vboCorners[i].bind(); int nVertexLoc = m_pGlProgBlendCorners->attributeLocation("position"); int nMaskLoc = m_pGlProgBlendCorners->attributeLocation("maskTexCoord"); int nCoordLoc = m_pGlProgBlendCorners->attributeLocation("vTexCoord"); m_pGlProgBlendCorners->enableAttributeArray(nVertexLoc); m_pGlProgBlendCorners->setAttributeBuffer(nVertexLoc, GL_FLOAT, 0, 2, 6*sizeof(GLfloat)); m_pGlProgBlendCorners->enableAttributeArray(nMaskLoc); m_pGlProgBlendCorners->setAttributeBuffer(nMaskLoc, GL_FLOAT, 2*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgBlendCorners->enableAttributeArray(nCoordLoc); m_pGlProgBlendCorners->setAttributeBuffer(nCoordLoc, GL_FLOAT, 4*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgBlendCorners->setUniformValue("movie", 0); m_pGlProgBlendCorners->setUniformValue("mask", 1); pGLFunction->glActiveTexture(GL_TEXTURE0); pGLFunction->glBindTexture(GL_TEXTURE_2D, m_pFbo->texture()); pGLFunction->glActiveTexture(GL_TEXTURE1); m_pCornerMasks[i]->bind(); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); m_pCornerMasks[i]->release(); m_pGlProgBlendCorners->release(); m_vboCorners[i].release(); } } pGLFunction->glDisable(GL_BLEND); } #ifdef __x86_64__ QWidget *topWidget = topLevelWidget(); if(topWidget && (topWidget->isFullScreen())) {//全屏状态播放时更新显示进度 QString time_text = QTime::currentTime().toString("hh:mm"); QRect rectTime = QRect(rect().width() - 90, 0, 90, 40); QPainter painter; painter.begin(this); QPen pen; pen.setColor(QColor(255, 255, 255, 255 * .4)); painter.setPen(pen); QFontMetrics fm(font()); auto fr = fm.boundingRect(time_text); fr.moveCenter(rectTime.center()); //显示系统时间 painter.drawText(fr,time_text); QPoint pos((rectTime.topLeft().x() + 20), rectTime.topLeft().y() + rectTime.height() - 5); int pert = qMin(m_pert * 10, 10.0); for (int i = 0; i < 10; i++) {//显示影院视频播放进度 if (i >= pert) { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, 255 * .25)); } else { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, 255 * .5)); } pos.rx() += 5; } QRect rectMovieTime = QRect(rect().width() - 175, 46, 175, 20); if(m_strPlayTime.isNull() || m_strPlayTime.isEmpty()) return; QPalette Palette; pen.setColor(Palette.color(QPalette::Text)); if (m_bRawFormat) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(0, 0, 0, 40)); } else { pen.setColor(QColor(255, 255, 255, 40)); } } painter.setPen(pen); fr = fm.boundingRect(m_strPlayTime); fr.moveCenter(rectMovieTime.center()); //显示影院视频播放时间与总时间 painter.drawText(fr,m_strPlayTime); painter.end(); } #endif } else { pGLFunction->glEnable(GL_BLEND); pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); QColor color = QColor(37, 37, 37, 255); float fRation = 37.0f / 255.0f; // if (qApp->theme() != "dark") { // clr = QColor(252, 252, 252, 255); // a = 252.0 / 255.0; // } if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){ color = QColor(252, 252, 252, 255); fRation = 252.0f / 255.0f; } if(parent()->property("color").isValid()) { QColor clr = parent()->property("color").value(); pGLFunction->glClearColor(clr.red()/255.f, clr.green()/255.f, clr.blue()/255.f, 1.0); } else { pGLFunction->glClearColor(fRation, fRation, fRation, 1.0); } pGLFunction->glClear(GL_COLOR_BUFFER_BIT); for(int i = 0;i < 2 ;i ++){ { QOpenGLVertexArrayObject::Binder vaoBind(&m_vao); m_vbo.bind(); m_pGlProg->bind(); m_pGlProg->setUniformValue("bg", color); prepareSplashImages(); QOpenGLTexture *pGLTexture; m_pLightTex->setData(m_imgBgLight); pGLTexture = m_pLightTex; //和产品、ui商议深色主题下去除深色背景效果 // DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); // // if (qApp->theme() == "dark") { // if (themeType == DGuiApplicationHelper::DarkType) { // pGLTexture = m_pDarkTex; // } pGLTexture->bind(); pGLFunction->glActiveTexture(GL_TEXTURE0); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); pGLTexture->release(); m_pGlProg->release(); m_vbo.release(); } } if (m_bDoRoundedClipping) { pGLFunction->glBlendFunc(GL_SRC_ALPHA, GL_ZERO); // blend corners QOpenGLVertexArrayObject::Binder vaoBind(&m_vaoCorner); for (int i = 0; i < 4; i++) { m_pGlProgCorner->bind(); m_vboCorners[i].bind(); int vertexLoc = m_pGlProgCorner->attributeLocation("position"); int coordLoc = m_pGlProgCorner->attributeLocation("vTexCoord"); m_pGlProgCorner->enableAttributeArray(vertexLoc); m_pGlProgCorner->setAttributeBuffer(vertexLoc, GL_FLOAT, 0, 2, 6*sizeof(GLfloat)); m_pGlProgCorner->enableAttributeArray(coordLoc); m_pGlProgCorner->setAttributeBuffer(coordLoc, GL_FLOAT, 2*sizeof(GLfloat), 2, 6*sizeof(GLfloat)); m_pGlProgCorner->setUniformValue("bg", color); pGLFunction->glActiveTexture(GL_TEXTURE0); m_pCornerMasks[i]->bind(); pGLFunction->glDrawArrays(GL_TRIANGLES, 0, 6); m_pCornerMasks[i]->release(); m_pGlProgCorner->release(); m_vboCorners[i].release(); } } pGLFunction->glDisable(GL_BLEND); } } #ifdef __x86_64__ void MpvGLWidget::updateMovieProgress(qint64 duration, qint64 pos) { if (pos > duration) pos = duration; m_pert = (qreal)pos / duration;//更新影院播放进度 QString sCurtime = QString("%1 %2").arg(utils::Time2str(pos)).arg("/ "); QString stime = QString("%1").arg(utils::Time2str(duration)); m_strPlayTime = sCurtime + stime;//更新影院当前播放时长 } #endif void MpvGLWidget::setRawFormatFlag(bool bRawFormat) { m_bRawFormat = bRawFormat; } void MpvGLWidget::setPlaying(bool bFalse) { if (m_bPlaying != bFalse) { m_bPlaying = bFalse; } updateVbo(); updateVboCorners(); updateMovieFbo(); update(); } /*not used yet*/ /*void MpvGLWidget::setMiniMode(bool val) { if (m_bInMiniMode != val) { m_bInMiniMode = val; updateVbo(); updateVboCorners(); update(); } }*/ void MpvGLWidget::initMpvFuns() { qInfo() << "MpvGLWidget开始initMpvFuns"; QLibrary mpvLibrary(SysUtils::libPath("libmpv.so")); m_callback = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_set_update_callback")); m_context_report = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_report_swap")); m_renderContex = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_free")); m_renderCreat = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_create")); m_renderContexRender = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_render")); m_renderContextUpdate = reinterpret_cast(mpvLibrary.resolve("mpv_render_context_update")); } } deepin-movie-reborn-5.15.10/src/backends/mpv/mpv_glwidget.h000066400000000000000000000101271473342170300235420ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_MPV_GLWIDGET_H #define _DMR_MPV_GLWIDGET_H #include #include #include #include #undef Bool #include "../../vendor/qthelper.hpp" #include //DWIDGET_USE_NAMESPACE //add by heyi typedef void (*mpv_render_contextSet_update_callback)(mpv_render_context *ctx, mpv_render_update_fn callback, void *callback_ctx); typedef void (*mpv_render_contextReport_swap)(mpv_render_context *ctx); typedef void (*mpv_renderContext_free)(mpv_render_context *ctx); typedef int (*mpv_renderContext_create)(mpv_render_context **res, mpv_handle *mpv, mpv_render_param *params); typedef int (*mpv_renderContext_render)(mpv_render_context *ctx, mpv_render_param *params); typedef uint64_t (*mpv_renderContext_update)(mpv_render_context *ctx); namespace dmr { class MpvGLWidget : public QOpenGLWidget { Q_OBJECT public: friend class MpvProxy; MpvGLWidget(QWidget *parent, MpvHandle h); virtual ~MpvGLWidget(); /** * rounded clipping consumes a lot of resources, and performs bad on 4K video */ void toggleRoundedClip(bool bFalse); //add by heyi /** * @brief setHandle 设置句柄 * @param h 传入的句柄 */ void setHandle(MpvHandle h); protected: /** * @brief opengl初始化 cppcheck误报 */ void initializeGL() override; void resizeGL(int nWidth, int nHeight) override; void paintGL() override; void setPlaying(bool); void setMiniMode(bool); //add by heyi /** * @brief initMpvFuns 第一次播放需要初库始化函数指针 */ void initMpvFuns(); #ifdef __x86_64__ //更新全屏时影院播放进度 void updateMovieProgress(qint64 duration, qint64 pos); #endif void setRawFormatFlag(bool bRawFormat); protected slots: void onNewFrame(); void onFrameSwapped(); private: void initMember(); void updateVbo(); void updateVboCorners(); void updateVboBlend(); void updateMovieFbo(); void updateCornerMasks(); void setupBlendPipe(); void setupIdlePipe(); void prepareSplashImages(); private: MpvHandle m_handle; //mpv句柄 mpv_render_context *m_pRenderCtx; //mpv渲染上下文 bool m_bPlaying; //记录播放状态 bool m_bInMiniMode; //是否是最小化 bool m_bUseCustomFBO; // 使用自定的 QOpenGLFramebufferObject 进行绘制 bool m_bDoRoundedClipping; // 裁剪圆角 QOpenGLVertexArrayObject m_vao; //顶点数组对象 QOpenGLBuffer m_vbo; //顶点缓冲对象 QOpenGLTexture *m_pDarkTex; //深色主题背景纹理 QOpenGLTexture *m_pLightTex; //浅色主题背景纹理 QOpenGLShaderProgram *m_pGlProg; QOpenGLVertexArrayObject m_vaoBlend; QOpenGLBuffer m_vboBlend; QOpenGLShaderProgram *m_pGlProgBlend; QOpenGLFramebufferObject *m_pFbo; QOpenGLShaderProgram *m_pGlProgBlendCorners; //textures for corner QOpenGLVertexArrayObject m_vaoCorner; QOpenGLTexture *m_pCornerMasks[4]; QOpenGLBuffer m_vboCorners[4]; QOpenGLShaderProgram *m_pGlProgCorner; //着色器程序 QImage m_imgBgDark; //深色主题背景图 QImage m_imgBgLight; //浅色主题背景图 //add by heyi mpv_render_contextSet_update_callback m_callback; mpv_render_contextReport_swap m_context_report; mpv_renderContext_free m_renderContex; mpv_renderContext_create m_renderCreat; mpv_renderContext_render m_renderContexRender; mpv_renderContext_update m_renderContextUpdate; #ifdef __x86_64__ qreal m_pert; //影院播放进度 QString m_strPlayTime; //播放时间显示; #endif bool m_bRawFormat; // 播放内容为原始格式文件标志 }; } #endif /* ifndef _DMR_MPV_GLWIDGET_H */ deepin-movie-reborn-5.15.10/src/backends/mpv/mpv_proxy.cpp000066400000000000000000002166621473342170300234640ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "mpv_proxy.h" #include "mpv_glwidget.h" #include "compositing_manager.h" #include "player_engine.h" #include "hwdec_probe.h" #include "sysutils.h" #ifndef _LIBDMR_ #include "dmr_settings.h" #include "movie_configuration.h" #endif #include #include #include #include #include #include #include #include #include namespace dmr { using namespace mpv::qt; enum AsyncReplyTag { SEEK, CHANNEL, SPEED }; typedef enum { UN_KNOW = 0, //初始值 MPEG1 , //下面为各种视频格式 MPEG2, MPEG4, H264, VC1 , DIVX4 , DIVX5, HEVC, _MAXNULL //超限处理 }decoder_profile; //视频格式解码请求值 typedef int VdpBool; typedef enum { decoder_profiles_MPEG1 = 0, // {"MPEG1", VDP_DECODER_PROFILE_MPEG1}, decoder_profiles_MPEG2_SIMPLE, // {"MPEG2_SIMPLE", VDP_DECODER_PROFILE_MPEG2_SIMPLE}, decoder_profiles_MPEG2_MAIN , // {"MPEG2_MAIN", VDP_DECODER_PROFILE_MPEG2_MAIN}, decoder_profiles_H264_BASELINE, // {"H264_BASELINE", VDP_DECODER_PROFILE_H264_BASELINE}, decoder_profiles_H264_MAIN, // {"H264_MAIN", VDP_DECODER_PROFILE_H264_MAIN}, decoder_profiles_H264_HIGH, // {"H264_HIGH", VDP_DECODER_PROFILE_H264_HIGH}, decoder_profiles_VC1_SIMPLE , // {"VC1_SIMPLE", VDP_DECODER_PROFILE_VC1_SIMPLE}, decoder_profiles_VC1_MAIN, // {"VC1_MAIN", VDP_DECODER_PROFILE_VC1_MAIN}, decoder_profiles_VC1_ADVANCED , // {"VC1_ADVANCED", VDP_DECODER_PROFILE_VC1_ADVANCED}, decoder_profiles_MPEG4_PART2_SP, // {"MPEG4_PART2_SP", VDP_DECODER_PROFILE_MPEG4_PART2_SP}, decoder_profiles_MPEG4_PART2_ASP, // {"MPEG4_PART2_ASP", VDP_DECODER_PROFILE_MPEG4_PART2_ASP}, decoder_profiles_DIVX4_QMOBILE, // {"DIVX4_QMOBILE", VDP_DECODER_PROFILE_DIVX4_QMOBILE}, decoder_profiles_DIVX4_MOBILE, // {"DIVX4_MOBILE", VDP_DECODER_PROFILE_DIVX4_MOBILE}, decoder_profiles_DIVX4_HOME_THEATER , // {"DIVX4_HOME_THEATER", VDP_DECODER_PROFILE_DIVX4_HOME_THEATER}, decoder_profiles_DIVX4_HD_1080P , // {"DIVX4_HD_1080P", VDP_DECODER_PROFILE_DIVX4_HD_1080P}, decoder_profiles_DIVX5_QMOBILE, // {"DIVX5_QMOBILE", VDP_DECODER_PROFILE_DIVX5_QMOBILE}, decoder_profiles_DIVX5_MOBILE , // {"DIVX5_MOBILE", VDP_DECODER_PROFILE_DIVX5_MOBILE}, decoder_profiles_DIVX5_HOME_THEATER, // {"DIVX5_HOME_THEATER", VDP_DECODER_PROFILE_DIVX5_HOME_THEATER}, decoder_profiles_DIVX5_HD_1080P, // {"DIVX5_HD_1080P", VDP_DECODER_PROFILE_DIVX5_HD_1080P}, decoder_profiles_H264_CONSTRAINED_BASELINE , // {"H264_CONSTRAINED_BASELINE", VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE}, decoder_profiles_H264_EXTENDED , // {"H264_EXTENDED", VDP_DECODER_PROFILE_H264_EXTENDED}, decoder_profiles_H264_PROGRESSIVE_HIGH, // {"H264_PROGRESSIVE_HIGH", VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH}, decoder_profiles_H264_CONSTRAINED_HIGH, // {"H264_CONSTRAINED_HIGH", VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH}, decoder_profiles_H264_HIGH_444_PREDICTIVE, // {"H264_HIGH_444_PREDICTIVE", VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE}, decoder_profiles_HEVC_MAIN , // {"HEVC_MAIN", VDP_DECODER_PROFILE_HEVC_MAIN}, decoder_profiles_HEVC_MAIN_10, // {"HEVC_MAIN_10", VDP_DECODER_PROFILE_HEVC_MAIN_10}, decoder_profiles_HEVC_MAIN_STILL, // {"HEVC_MAIN_STILL", VDP_DECODER_PROFILE_HEVC_MAIN_STILL}, decoder_profiles_HEVC_MAIN_12, // {"HEVC_MAIN_12", VDP_DECODER_PROFILE_HEVC_MAIN_12}, decoder_profiles_HEVC_MAIN_444, // {"HEVC_MAIN_444", VDP_DECODER_PROFILE_HEVC_MAIN_444}, _decoder_maxnull }VDP_Decoder_e; #define RET_INFO_LENTH_MAX (512) typedef struct { VDP_Decoder_e func; //具体值的功能查询 VdpBool is_supported; //是否支持具体值硬解码 uint32_t max_width;//最大支持视频宽度 uint32_t max_height;//最大支持视频高度 uint32_t max_level; //最大支持等级 uint32_t max_macroblocks;//最大宏块大小 char ret_info[RET_INFO_LENTH_MAX];//支持的列表 }VDP_Decoder_t; //返回值大于0表示支持硬解, index 视频格式解码请求值, result 返回解码支持信息 typedef unsigned int (*gpu_decoderInfo)(decoder_profile index, VDP_Decoder_t *result ); static void mpv_callback(void *d) { MpvProxy *pMpv = static_cast(d); QMetaObject::invokeMethod(pMpv, "has_mpv_events", Qt::QueuedConnection); } MpvProxy::MpvProxy(QWidget *parent) : Backend(parent) { initMember(); m_pParentWidget = parent; if (!CompositingManager::get().composited()) { setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_NativeWindow); winId(); } #ifdef _LIBDMR_ firstInit(); m_bInited = true; #endif #if defined (__mips__) || defined (__aarch64__) setAttribute(Qt::WA_TransparentForMouseEvents, true); #endif } MpvProxy::~MpvProxy() { disconnect(this, &MpvProxy::has_mpv_events, this, &MpvProxy::handle_mpv_events); m_bConnectStateChange = false; disconnect(window()->windowHandle(), &QWindow::windowStateChanged, nullptr, nullptr); if (CompositingManager::get().composited()) { disconnect(this, &MpvProxy::stateChanged, nullptr, nullptr); delete m_pMpvGLwidget; } } void MpvProxy::setDecodeModel(const QVariant &value) { m_decodeMode = static_cast(value.toInt()); } void MpvProxy::initMpvFuns() { QLibrary mpvLibrary(SysUtils::libPath("libmpv.so")); m_waitEvent = reinterpret_cast(mpvLibrary.resolve("mpv_wait_event")); m_setOptionString = reinterpret_cast(mpvLibrary.resolve("mpv_set_option_string")); m_setProperty = reinterpret_cast(mpvLibrary.resolve("mpv_set_property")); m_setPropertyAsync = reinterpret_cast(mpvLibrary.resolve("mpv_set_property_async")); m_commandNode = reinterpret_cast(mpvLibrary.resolve("mpv_command_node")); m_commandNodeAsync = reinterpret_cast(mpvLibrary.resolve("mpv_command_node_async")); m_getProperty = reinterpret_cast(mpvLibrary.resolve("mpv_get_property")); m_observeProperty = reinterpret_cast(mpvLibrary.resolve("mpv_observe_property")); m_eventName = reinterpret_cast(mpvLibrary.resolve("mpv_event_name")); m_creat = reinterpret_cast(mpvLibrary.resolve("mpv_create")); m_requestLogMessage = reinterpret_cast(mpvLibrary.resolve("mpv_request_log_messages")); m_setWakeupCallback = reinterpret_cast(mpvLibrary.resolve("mpv_set_wakeup_callback")); m_initialize = reinterpret_cast(mpvLibrary.resolve("mpv_initialize")); m_freeNodecontents = reinterpret_cast(mpvLibrary.resolve("mpv_free_node_contents")); } void MpvProxy::initGpuInfoFuns() { if(!SysUtils::libExist("libgpuinfo.so")) { m_gpuInfo = NULL; return; } QLibrary mpvLibrary(SysUtils::libPath("libgpuinfo.so")); m_gpuInfo = reinterpret_cast(mpvLibrary.resolve("vdp_Iter_decoderInfo")); } void MpvProxy::firstInit() { #ifndef _LIBDMR_ #ifdef __x86_64__ //第一次运行deepin-movie,检测是否支持硬解 QString procName = QCoreApplication::applicationFilePath(); QProcess proc; proc.start(procName, QStringList() << "hwdec"); if (!proc.waitForFinished()) return; //检测进程退出码 if(proc.exitCode() != QProcess::NormalExit) { CompositingManager::setCanHwdec(false); } else {//检测进程日志输出 QByteArray result = proc.readAllStandardError(); qInfo() << "deepin-movie hwdec: " << result; if(result.toLower().contains("not supported")) { CompositingManager::setCanHwdec(false); } else { CompositingManager::setCanHwdec(true); } } #endif #endif initMpvFuns(); initGpuInfoFuns(); if (m_creat) { m_handle = MpvHandle::fromRawHandle(mpv_init()); if (CompositingManager::get().composited()) { m_pMpvGLwidget = new MpvGLWidget(this, m_handle); connect(this, &MpvProxy::stateChanged, this, &MpvProxy::slotStateChanged); #ifdef __x86_64__ connect(this, &MpvProxy::elapsedChanged, [ this ]() {//更新opengl显示进度 m_pMpvGLwidget->updateMovieProgress(duration(), elapsed()); m_pMpvGLwidget->update(); }); #endif #if defined(USE_DXCB) || defined(_LIBDMR_) m_pMpvGLwidget->toggleRoundedClip(false); #endif QHBoxLayout *pLayout = new QHBoxLayout(this); pLayout->setContentsMargins(0, 0, 0, 0); pLayout->addWidget(m_pMpvGLwidget); setLayout(pLayout); m_pMpvGLwidget->show(); } } m_bInited = true; initSetting(); } void MpvProxy::initSetting() { QMapIterator mapItor(m_mapWaitSet); while (mapItor.hasNext()) { mapItor.next(); my_set_property(m_handle, mapItor.key(), mapItor.value()); } QVectorIterator vecItor(m_vecWaitCommand); while (vecItor.hasNext()) { my_command(m_handle, vecItor.peekNext()); vecItor.next(); } } void MpvProxy::updateRoundClip(bool roundClip) { #ifdef __x86_64__ m_pMpvGLwidget->toggleRoundedClip(roundClip); #endif } mpv_handle *MpvProxy::mpv_init() { mpv_handle *pHandle = static_cast(m_creat()); bool composited = CompositingManager::get().composited(); switch (_debugLevel) { case DebugLevel::Info: m_requestLogMessage(pHandle, "info"); break; case DebugLevel::Debug: case DebugLevel::Verbose: my_set_property(pHandle, "terminal", "yes"); if (_debugLevel == DebugLevel::Verbose) { my_set_property(pHandle, "msg-level", "all=status"); m_requestLogMessage(pHandle, "info"); } else { my_set_property(pHandle, "msg-level", "all=v"); m_requestLogMessage(pHandle, "v"); } break; } #ifdef _LIBDMR_ if (composited) { auto interop = QString::fromUtf8("vaapi-glx"); if (!qEnvironmentVariableIsEmpty("QT_XCB_GL_INTERGRATION")) { auto gl_int = qgetenv("QT_XCB_GL_INTERGRATION"); if (gl_int == "xcb_egl") { interop = "vaapi-egl"; } else if (gl_int == "xcb_glx") { interop = "vaapi-glx"; } else { interop = "auto"; } } my_set_property(pHandle, "gpu-hwdec-interop", interop.toUtf8().constData()); qInfo() << "set gpu-hwdec-interop = " << interop; } my_set_property(pHandle, "hwdec", "auto"); #else if (composited) { auto disable = Settings::get().disableInterop(); auto forced = Settings::get().forcedInterop(); auto interop = QString::fromUtf8("auto"); switch (CompositingManager::get().interopKind()) { case OpenGLInteropKind::INTEROP_AUTO: interop = QString::fromUtf8("auto"); break; case OpenGLInteropKind::INTEROP_VAAPI_EGL: interop = QString::fromUtf8("vaapi-egl"); break; case OpenGLInteropKind::INTEROP_VAAPI_GLX: interop = QString::fromUtf8("vaapi-glx"); break; case OpenGLInteropKind::INTEROP_VDPAU_GLX: interop = QString::fromUtf8("vdpau-glx"); break; default: break; } if (!forced.isEmpty()) { QStringList valids {"vaapi-egl", "vaapi-glx", "vdpau-glx", "auto"}; if (valids.contains(forced)) { interop = forced; } } if (!disable) { my_set_property(pHandle, "gpu-hwdec-interop", interop.toUtf8().constData()); qInfo() << "-------- set gpu-hwdec-interop = " << interop << (forced.isEmpty() ? "[detected]" : "[forced]"); } else { qInfo() << "-------- gpu-hwdec-interop is disabled by user"; } } #endif #ifdef __aarch64__ if (CompositingManager::get().isOnlySoftDecode()) { my_set_property(pHandle, "hwdec", "no"); } else { my_set_property(pHandle, "hwdec", "auto"); } qInfo() << "modify HWDEC auto"; #endif my_set_property(pHandle, "panscan", 1.0); if (DecodeMode::SOFTWARE == m_decodeMode) { //1.设置软解 my_set_property(pHandle, "hwdec", "no"); #if defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) if (!CompositingManager::get().hascard()) { qInfo() << "修改音视频同步模式"; my_set_property(pHandle, "video-sync", "desync"); my_set_property(pHandle, "vo", "x11"); m_sInitVo = "x11"; } #endif } else if (DecodeMode::AUTO == m_decodeMode) { //2.设置自动 //2.1特殊硬件 //景嘉微显卡目前只支持vo=xv,等日后升级代码需要酌情修改。 QFileInfo fi("/dev/mwv206_0"); QFileInfo jmfi("/dev/jmgpu"); //jmgpu QFileInfo X100GPU("/dev/x100gpu"); QFileInfo X100VPU("/dev/vxd0"); QFileInfo mtfi("/dev/mtgpu.0"); if (fi.exists() || jmfi.exists()) { //2.1.1景嘉微 QDir sdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv206"); //判断是否安装核外驱动 QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(sdir.exists() && fi.exists()) { my_set_property(pHandle, "hwdec", "vdpau"); my_set_property(pHandle, "vo", "vdpau"); m_sInitVo = "vdpau"; }else if (jmfi.exists() && jmdir.exists()) { my_set_property(pHandle, "hwdec", "vaapi"); my_set_property(pHandle, "vo", "vaapi"); m_sInitVo = "vaapi"; }else { my_set_property(pHandle, "hwdec", "auto"); my_set_property(pHandle, "vo", "vdpau,xv,x11"); m_sInitVo = "vdpau,xv,x11"; } } else if (QFile::exists("/dev/csmcore")) { //2.1.2中船重工 my_set_property(pHandle, "vo", "xv,x11"); my_set_property(pHandle, "hwdec", "auto"); if (utils::check_wayland_env()) { my_set_property(pHandle, "wid", m_pParentWidget->winId()); } m_sInitVo = "xv,x11"; } else if (X100GPU.exists() && X100VPU.exists()) { my_set_property(m_handle, "hwdec", "ftomx-copy"); my_set_property(m_handle, "vo", "gpu"); } else if (CompositingManager::get().isOnlySoftDecode()) {//2.1.3 鲲鹏920 || 曙光+英伟达 || 浪潮 my_set_property(pHandle, "hwdec", "no"); } else { //2.2非特殊硬件 my_set_property(pHandle, "hwdec", "auto"); } #if defined (__mips__) if (!CompositingManager::get().hascard()) { qInfo() << "修改音视频同步模式"; my_set_property(pHandle, "video-sync", "desync"); } my_set_property(pHandle, "vo", "vdpau,gpu,x11"); my_set_property(pHandle, "ao", "alsa"); m_sInitVo = "vdpau,gpu,x11"; #elif defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) if (!CompositingManager::get().hascard()) { qInfo() << "修改音视频同步模式"; my_set_property(pHandle, "video-sync", "desync"); } if (!fi.exists() && !jmfi.exists() && !mtfi.exists()) { if(CompositingManager::get().property("directRendering").toBool()) { my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; } else { my_set_property(pHandle, "vo", "x11"); m_sInitVo = "x11"; } } #elif defined (__sw_64__) //Synchronously modify the video output of the SW platform vdpau(powered by zhangfl) my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; #elif defined (__aarch64__) if (!fi.exists() && !jmfi.exists()) { //2.1.1景嘉微 my_set_property(pHandle, "vo", "x11,gpu,xv"); m_sInitVo = "x11,gpu,xv"; } if (CompositingManager::get().isSpecialControls()) { my_set_property(pHandle, "hwdec", "vaapi"); my_set_property(pHandle, "vo", "vaapi"); m_sInitVo = "vaapi"; } #else //去除9200显卡适配 QFileInfo sjmfi("/dev/jmgpu"); bool jmflag = false; if (sjmfi.exists()) { QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(jmdir.exists()) { jmflag=true; } } //TODO(xxxxpengfei):暂未处理intel集显情况 if (CompositingManager::get().isZXIntgraphics() && !jmflag) { QProcess process; QStringList options; options << "-c" << QString("apt policy cx4-linux-graphics-driver-dri | sed -n \'2p\'"); process.start("/bin/bash", options); process.waitForFinished(); process.waitForReadyRead(); QString comStr = process.readAllStandardOutput(); comStr = comStr.right(3).left(2); int version = comStr.toInt(); if (version >= 10) { my_set_property(pHandle, "vo", "vaapi"); my_set_property(pHandle, "hwdec", "vaapi"); m_sInitVo = "vaapi"; } else { my_set_property(pHandle, "vo", "gpu"); m_sInitVo = "gpu"; } } #endif if (utils::check_wayland_env()) { qInfo() << "V25 set ao auto"; my_set_property(pHandle, "ao", "auto"); } if (QFile::exists("/sys/bus/pci/drivers/ljmcore")) { my_set_property(pHandle, "vo", "vaapi"); my_set_property(pHandle, "hwdec", "vaapi"); m_sInitVo = "vaapi"; } if (QFile::exists("/usr/local/ctyun/clink/Mirror/Registry/Default")) { my_set_property(pHandle, "hwdec", "no"); my_set_property(pHandle, "vo", "x11"); my_set_property(pHandle, "video-sync", "desync"); my_set_property(pHandle, "profile", "sw-fast"); m_sInitVo = "x11"; } QDir innodir("/sys/bus/platform/drivers/inno-codec"); if ( innodir.exists()) { my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; } } else { //3.设置硬解 QFileInfo fi("/dev/mwv206_0"); QFileInfo jmfi("/dev/jmgpu"); QFileInfo X100GPU("/dev/x100gpu"); QFileInfo X100VPU("/dev/vxd0"); if (fi.exists() || jmfi.exists()) { //2.1.1景嘉微 QDir sdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv206"); //判断是否安装核外驱动 QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(sdir.exists() && fi.exists()) { my_set_property(pHandle, "hwdec", "vdpau"); my_set_property(pHandle, "vo", "vdpau"); m_sInitVo = "vdpau"; }else if (jmfi.exists() && jmdir.exists()) { my_set_property(pHandle, "hwdec", "vaapi"); my_set_property(pHandle, "vo", "vaapi"); m_sInitVo = "vaapi"; } else { my_set_property(pHandle, "hwdec", "auto"); my_set_property(pHandle, "vo", "vdpau,xv,x11"); m_sInitVo = "vdpau,xv,x11"; } } else if (X100GPU.exists() && X100VPU.exists()) { my_set_property(m_handle, "hwdec", "ftomx-copy"); my_set_property(m_handle, "vo", "gpu"); } else { my_set_property(pHandle, "hwdec", "auto"); } #if defined (__sw_64__) //Synchronously modify the video output of the SW platform vdpau(powered by zhangfl) my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; #elif defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) if (!CompositingManager::get().hascard()) { qInfo() << "修改音视频同步模式"; my_set_property(pHandle, "video-sync", "desync"); } if (!fi.exists() && !jmfi.exists()) { if(CompositingManager::get().property("directRendering").toBool()) { my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; } else { my_set_property(pHandle, "vo", "x11"); m_sInitVo = "x11"; } } #endif if (QFile::exists("/usr/local/ctyun/clink/Mirror/Registry/Default")) { my_set_property(pHandle, "hwdec", "no"); my_set_property(pHandle, "vo", "x11"); my_set_property(pHandle, "video-sync", "desync"); my_set_property(pHandle, "profile", "sw-fast"); m_sInitVo = "x11"; } QDir innodir("/sys/bus/platform/drivers/inno-codec"); if ( innodir.exists()) { my_set_property(pHandle, "vo", "gpu,x11"); m_sInitVo = "gpu,x11"; } if (QFile::exists("/sys/bus/pci/drivers/ljmcore")) { my_set_property(pHandle, "vo", "vaapi"); my_set_property(pHandle, "hwdec", "vaapi"); m_sInitVo = "vaapi"; } if (CompositingManager::get().isSpecialControls()) { my_set_property(pHandle, "hwdec", "vaapi"); my_set_property(pHandle, "vo", "vaapi"); m_sInitVo = "vaapi"; } } if (composited) { #ifdef __mips__ m_setOptionString(pHandle, "vo", "opengl-cb"); m_setOptionString(pHandle, "hwdec-preload", "auto"); m_setOptionString(pHandle, "opengl-hwdec-interop", "auto"); m_setOptionString(pHandle, "hwdec", "auto"); qInfo() << "-------- __mips__hwdec____________"; m_sInitVo = "opengl-cb"; #else my_set_property(pHandle, "vo", "libmpv,opengl-cb"); my_set_property(pHandle, "vd-lavc-dr", "no"); my_set_property(pHandle, "gpu-sw", "on"); m_sInitVo = "libmpv,opengl-cb"; #endif } else { my_set_property(pHandle, "wid", m_pParentWidget->winId()); } if (QFile::exists("/usr/local/ctyun/clink/Mirror/Registry/Default")) { my_set_property(pHandle, "update-on-pause", "yes"); } qInfo() << __func__ << "vo:" << my_get_property(pHandle, "vo").toString(); qInfo() << __func__ << "hwdec:" << my_get_property(pHandle, "hwdec").toString(); QString strMovie = QObject::tr("Movie"); //设置音量名称 my_set_property(pHandle, "audio-client-name", strMovie); //my_set_property(pHandle, "keepaspect-window", "no"); //设置视频固定帧率,暂时无效 //my_set_property(pHandle, "correct-pts", false); //my_set_property(pHandle, "fps", 30); my_set_property(pHandle, "panscan", 0); my_set_property(pHandle, "volume-max", 200.0); my_set_property(pHandle, "input-cursor", "no"); my_set_property(pHandle, "cursor-autohide", "no"); my_set_property(pHandle, "sub-auto", "fuzzy"); my_set_property(pHandle, "sub-visibility", "true"); my_set_property(pHandle, "sub-pos", 100); my_set_property(pHandle, "sub-margin-y", 36); my_set_property(pHandle, "sub-border-size", 0); my_set_property(pHandle, "screenshot-template", "deepin-movie-shot%n"); my_set_property(pHandle, "screenshot-directory", "/tmp"); #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::ResumeFromLast)) { my_set_property(pHandle, "save-position-on-quit", true); } #endif //only to get notification without data m_observeProperty(pHandle, 0, "time-pos", MPV_FORMAT_NONE); //playback-time ? m_observeProperty(pHandle, 0, "pause", MPV_FORMAT_NONE); m_observeProperty(pHandle, 0, "mute", MPV_FORMAT_NONE); m_observeProperty(pHandle, 0, "volume", MPV_FORMAT_NONE); //ao-volume ? m_observeProperty(pHandle, 0, "sid", MPV_FORMAT_NONE); m_observeProperty(pHandle, 0, "aid", MPV_FORMAT_NODE); m_observeProperty(pHandle, 0, "dwidth", MPV_FORMAT_NODE); m_observeProperty(pHandle, 0, "dheight", MPV_FORMAT_NODE); // because of vpu, we need to implement playlist w/o mpv //m_observeProperty(pHandle, 0, "playlist-pos", MPV_FORMAT_NONE); //m_observeProperty(pHandle, 0, "playlist-count", MPV_FORMAT_NONE); m_observeProperty(pHandle, 0, "core-idle", MPV_FORMAT_NODE); m_observeProperty(pHandle, 0, "paused-for-cache", MPV_FORMAT_NODE); m_setWakeupCallback(pHandle, mpv_callback, this); connect(this, &MpvProxy::has_mpv_events, this, &MpvProxy::handle_mpv_events, Qt::DirectConnection); if (m_initialize(pHandle) < 0) { std::runtime_error("mpv init failed"); } //load profile auto ol = CompositingManager::get().getBestProfile(); auto p = ol.begin(); while (p != ol.end()) { if (!p->first.startsWith("#")) { #if !defined (__mips__ ) && !defined(__aarch64__) && !defined(__sw_64__) #ifdef MWV206_0 QFileInfo fi("/dev/mwv206_0"); //景嘉微显卡目前只支持vo=xv,等日后升级代码需要酌情修改。 QFileInfo jmfi("/dev/jmgpu"); //jmgpu if (!fi.exists() && !jmfi.exists()) { my_set_property(pHandle, p->first.toUtf8().constData(), p->second.toUtf8().constData()); qInfo() << "apply" << p->first << "=" << p->second; } #else my_set_property(pHandle, p->first.toUtf8().constData(), p->second.toUtf8().constData()); qInfo() << "apply" << p->first << "=" << p->second; #endif #endif } else { qInfo() << "ignore(commented out)" << p->first << "=" << p->second; } ++p; } //设置hwdec和vo配置 CompositingManager::get().getMpvConfig(m_pConfig); #ifndef _LIBDMR_ if (Settings::get().settings()->getOption(QString("base.decode.select")).toInt() == 3) { int decodeIndex = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); auto decodeModeOpt = Settings::get().settings()->option("base.decode.Decodemode"); QString decodeMode = decodeModeOpt.data()->data("items").toStringList()[decodeIndex]; decodeMode = decodeMode.isEmpty() ? "auto" : decodeMode; m_pConfig->insert("hwdec", decodeMode); if (!CompositingManager::get().composited()) { int voIndex = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); auto voOpt = Settings::get().settings()->option("base.decode.Videoout"); QString voMode = voOpt.data()->data("items").toStringList()[voIndex]; voMode = voMode.isEmpty() ? "auto" : voMode; m_pConfig->insert("vo", voMode); } } #endif QMap::iterator iter = m_pConfig->begin(); qInfo() << __func__ << "First set mpv propertys!!"; while (iter != m_pConfig->end()) { my_set_property(pHandle, iter.key(), iter.value()); iter++; } return pHandle; } void MpvProxy::setState(PlayState state) { bool bRawFormat = false; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); bRawFormat = currentInfo.mi.isRawFormat(); } if (_state != state) { _state = state; if (m_pMpvGLwidget) { m_pMpvGLwidget->setPlaying(state != PlayState::Stopped); } emit stateChanged(); } if (m_pMpvGLwidget) { m_pMpvGLwidget->setRawFormatFlag(bRawFormat); } } void MpvProxy::pollingEndOfPlayback() { if (_state != Backend::Stopped) { m_bPolling = true; blockSignals(true); stop(); bool bIdel = my_get_property(m_handle, "idle-active").toBool(); if (bIdel) { blockSignals(false); setState(Backend::Stopped); m_bPolling = false; return; } while (_state != Backend::Stopped) { mpv_event *pEvent = m_waitEvent(m_handle, 0.005); if (pEvent->event_id == MPV_EVENT_NONE) continue; if (pEvent->event_id == MPV_EVENT_END_FILE) { blockSignals(false); setState(Backend::Stopped); break; } } m_bPolling = false; } } const PlayingMovieInfo &MpvProxy::playingMovieInfo() { return m_movieInfo; } /** * @return 返回当前设备是否为特殊的HW设备类型,用于进行软/硬解码支持的判断 */ bool isSpecialHWHardware() { enum HWDevice { Unknown, IsHWDev, NotHWDev }; static HWDevice s_DevType = Unknown; if (Unknown == s_DevType) { s_DevType = NotHWDev; QProcess process; process.start("dmidecode", {"-s", "system-product-name"}); process.waitForFinished(100); QString info = process.readAllStandardOutput(); if (info.isEmpty()) { return false; } QStringList specilDev{"KLVV", "KLVU", "PGUV", "PGUW", "L540", "W585"}; for (const QString &dev : specilDev) { if (info.contains(dev)) { s_DevType = IsHWDev; break; } } if (NotHWDev == s_DevType) { // dmidecode | grep -i “String 4”中的值来区分主板类型,PWC30表示PanguW(也就是W525) process.start("bash", {"-c", "dmidecode -t 11 | grep -i \"String 4\""}); process.waitForFinished(100); info = process.readAll(); if (info.contains("PWC30") || info.contains("PGUX")) { s_DevType = IsHWDev; } } qInfo() << QString("Detect HW device, current type is: %1").arg((IsHWDev == s_DevType) ? "true" : "false"); } return bool(s_DevType == IsHWDev); } bool MpvProxy::isSurportHardWareDecode(const QString sDecodeName, const int &nVideoWidth, const int &nVideoHeight) { if (utils::check_wayland_env() && isSpecialHWHardware()) { return true; } bool isHardWare = true;//未安装探测工具默认支持硬解 decoder_profile decoderValue = decoder_profile::UN_KNOW; //初始化支持解码值 decoderValue = (decoder_profile)getDecodeProbeValue(sDecodeName); //根据视频格式获取解码值 if(decoderValue != decoder_profile::UN_KNOW ) {//开始探测是否支持硬解码 VDP_Decoder_t *probeDecode = new VDP_Decoder_t; if(m_gpuInfo) { int nSurport = ((gpu_decoderInfo)m_gpuInfo)(decoderValue, probeDecode); isHardWare = (nSurport > 0 && probeDecode->max_width >= nVideoWidth && probeDecode->max_height >= nVideoHeight);//nSurport大于0表示支持,硬解码支持的最大宽高必须大于或等于视频的宽高 } delete probeDecode; } return isHardWare; } int MpvProxy::getDecodeProbeValue(const QString sDecodeName) { QStringList sNameList; sNameList << "MPEG1" << "MPEG2" << "MPEG4" << "H264" << "VC1" << "DIVX4" << "DIVX5" << "HEVC"; int nCount = sNameList.count(); for(int i = 0; i < nCount; i++ ){//匹配硬解支持的视频格式 QString sValue = sNameList.at(i); if(sDecodeName.toUpper().contains(sValue)) { return (int)decoder_profile(decoder_profile::UN_KNOW + 1 + i); } } return (int)decoder_profile::UN_KNOW; } void MpvProxy::handle_mpv_events() { if (utils::check_wayland_env() && CompositingManager::get().isTestFlag()) { qInfo() << "not handle mpv events!"; return; } while (1) { mpv_event *pEvent = m_waitEvent(m_handle, 0.0005); if (pEvent->event_id == MPV_EVENT_NONE) break; switch (pEvent->event_id) { case MPV_EVENT_LOG_MESSAGE: processLogMessage(reinterpret_cast(pEvent->data)); break; case MPV_EVENT_PROPERTY_CHANGE: processPropertyChange(reinterpret_cast(pEvent->data)); break; case MPV_EVENT_COMMAND_REPLY: if (pEvent->error < 0) { qInfo() << "command error"; } if (pEvent->reply_userdata == AsyncReplyTag::SEEK) { m_bPendingSeek = false; } break; case MPV_EVENT_PLAYBACK_RESTART: // caused by seek or just playing break; #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0) case MPV_EVENT_TRACKS_CHANGED: qInfo() << m_eventName(pEvent->event_id); updatePlayingMovieInfo(); emit tracksChanged(); break; #endif case MPV_EVENT_FILE_LOADED: { qInfo() << m_eventName(pEvent->event_id); if (m_pMpvGLwidget) { qInfo() << "hwdec-interop" << my_get_property(m_handle, "gpu-hwdec-interop") << "codec: " << my_get_property(m_handle, "video-codec") << "format: " << my_get_property(m_handle, "video-format"); } // if (!m_bIsJingJia) { //#ifdef __mips__ // qInfo() << "MPV_EVENT_FILE_LOADED __mips__"; // QString sCodec = my_get_property(m_handle, "video-codec").toString(); // auto name = my_get_property(m_handle, "filename").toString(); // if (sCodec.toLower().contains("wmv3") || sCodec.toLower().contains("wmv2") || sCodec.toLower().contains("mpeg2video") || // name.toLower().contains("wmv")) { // qInfo() << "my_set_property hwdec no"; // my_set_property(m_handle, "hwdec", "no"); // } //#endif //#ifdef __aarch64__ // qInfo() << "MPV_EVENT_FILE_LOADED aarch64"; // QString sCodec = my_get_property(m_handle, "video-codec").toString(); // if (sCodec.toLower().contains("wmv3") || sCodec.toLower().contains("wmv2") || sCodec.toLower().contains("mpeg2video")) { // qInfo() << "my_set_property hwdec auto"; // if (CompositingManager::get().isOnlySoftDecode()) { // my_set_property(m_handle, "hwdec", "off"); // } else { // my_set_property(m_handle, "hwdec", "auto"); // } // } //#endif // } //设置播放参数 QMap::iterator iter = m_pConfig->begin(); qInfo() << __func__ << "Set mpv propertys!!"; while (iter != m_pConfig->end()) { my_set_property(m_handle, iter.key(), iter.value()); iter++; } setState(PlayState::Playing); //might paused immediately emit fileLoaded(); qInfo() << QString("rotate metadata: dec %1, out %2") .arg(my_get_property(m_handle, "video-dec-params/rotate").toInt()) .arg(my_get_property(m_handle, "video-params/rotate").toInt()); m_bLoadMedia = false; break; } case MPV_EVENT_VIDEO_RECONFIG: { QSize size = videoSize(); if (!size.isEmpty()) emit videoSizeChanged(); break; } case MPV_EVENT_END_FILE: { #ifndef _LIBDMR_ MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, 0); #endif mpv_event_end_file *ev_ef = reinterpret_cast(pEvent->data); qInfo() << m_eventName(pEvent->event_id) << "reason " << ev_ef->reason; setState(PlayState::Stopped); m_bLoadMedia = false; break; } case MPV_EVENT_IDLE: qInfo() << m_eventName(pEvent->event_id); setState(PlayState::Stopped); emit elapsedChanged(); break; default: qInfo() << m_eventName(pEvent->event_id); break; } } } void MpvProxy::processLogMessage(mpv_event_log_message *pEvent) { switch (pEvent->log_level) { case MPV_LOG_LEVEL_WARN: qWarning() << QString("%1: %2").arg(pEvent->prefix).arg(pEvent->text); emit mpvWarningLogsChanged(QString(pEvent->prefix), QString(pEvent->text)); break; case MPV_LOG_LEVEL_ERROR: case MPV_LOG_LEVEL_FATAL: { QString strError = pEvent->text; if (strError.contains("Failed setup for format vdpau")) { m_bLastIsSpecficFormat = true; } qCritical() << QString("%1: %2").arg(pEvent->prefix).arg(strError); emit mpvErrorLogsChanged(QString(pEvent->prefix), strError); } break; case MPV_LOG_LEVEL_INFO: qInfo() << QString("%1: %2").arg(pEvent->prefix).arg(pEvent->text); break; default: qInfo() << QString("%1: %2").arg(pEvent->prefix).arg(pEvent->text); break; } } void MpvProxy::processPropertyChange(mpv_event_property *pEvent) { QString sName = QString::fromUtf8(pEvent->name); if (sName != "time-pos") qInfo() << sName; if (sName == "time-pos") { emit elapsedChanged(); } else if (sName == "volume") { emit volumeChanged(); } else if (sName == "dwidth" || sName == "dheight") { auto sz = videoSize(); if (!sz.isEmpty()) emit videoSizeChanged(); qInfo() << "update videoSize " << sz; } else if (sName == "aid") { emit aidChanged(); } else if (sName == "sid") { emit sidChanged(); } else if (sName == "mute") { emit muteChanged(); } else if (sName == "sub-visibility") { //_hideSub = my_get_property(m_handle, "sub-visibility") } else if (sName == "pause") { auto idle = my_get_property(m_handle, "idle-active").toBool(); if (my_get_property(m_handle, "pause").toBool()) { if (!idle) setState(PlayState::Paused); else my_set_property(m_handle, "pause", false); } else { if (state() != PlayState::Stopped) { setState(PlayState::Playing); } } } else if (sName == "core-idle") { } else if (sName == "paused-for-cache") { qInfo() << "paused-for-cache" << my_get_property_variant(m_handle, "paused-for-cache"); emit urlpause(my_get_property_variant(m_handle, "paused-for-cache").toBool()); } } bool MpvProxy::loadSubtitle(const QFileInfo &fileInfo) { //movie could be in an inner state that marked as Stopped when loadfile executes //if (state() == PlayState::Stopped) { return true; } if (!fileInfo.exists()) return false; QList args = { "sub-add", fileInfo.absoluteFilePath(), "select" }; qInfo() << args; QVariant id = my_command(m_handle, args); if (id.canConvert()) { return false; } updatePlayingMovieInfo(); // by settings this flag, we can match the corresponding sid change and save it // in the movie database return true; } bool MpvProxy::isSubVisible() { return my_get_property(m_handle, "sub-visibility").toBool(); } void MpvProxy::setSubDelay(double dSecs) { my_set_property(m_handle, "sub-delay", dSecs); #ifndef _LIBDMR_ MovieConfiguration::get().updateUrl(_file, ConfigKnownKey::SubDelay, subDelay()); #endif } double MpvProxy::subDelay() const { return my_get_property(m_handle, "sub-delay").toDouble(); } QString MpvProxy::subCodepage() { auto cp = my_get_property(m_handle, "sub-codepage").toString(); if (cp.startsWith("+")) { cp.remove(0, 1); } return cp; } void MpvProxy::addSubSearchPath(const QString &sPath) { my_set_property(m_handle, "sub-paths", sPath); my_set_property(m_handle, "sub-file-paths", sPath); } void MpvProxy::setSubCodepage(const QString &sCodePage) { QString strTmp = sCodePage; if (!sCodePage.startsWith("+") && sCodePage != "auto") strTmp.prepend('+'); my_set_property(m_handle, "sub-codepage", strTmp); my_command(m_handle, {"sub-reload"}); #ifndef _LIBDMR_ if (_file.isValid()) MovieConfiguration::get().updateUrl(_file, ConfigKnownKey::SubCodepage, subCodepage()); #endif } void MpvProxy::updateSubStyle(const QString &sFont, int nSize) { my_set_property(m_handle, "sub-font", sFont); my_set_property(m_handle, "sub-font-size", nSize); my_set_property(m_handle, "sub-color", "#FFFFFF"); my_set_property(m_handle, "sub-border-size", 1); my_set_property(m_handle, "sub-border-color", "0.0/0.0/0.0/0.50"); my_set_property(m_handle, "sub-shadow-offset", 1); my_set_property(m_handle, "sub-shadow-color", "0.0/0.0/0.0/0.50"); } void MpvProxy::showEvent(QShowEvent *pEvent) { if (!m_bConnectStateChange) { m_bConnectStateChange = true; } Backend::showEvent(pEvent); } void MpvProxy::resizeEvent(QResizeEvent *pEvent) { if (state() == PlayState::Stopped) { return; } Backend::resizeEvent(pEvent); } void MpvProxy::savePlaybackPosition() { if (state() == PlayState::Stopped) { return; } #ifndef _LIBDMR_ MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::SubId, sid()); if (duration() - elapsed() >= 5) { MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed()); } else { MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed() - 1); } #endif } void MpvProxy::setPlaySpeed(double dTimes) { my_set_property_async(m_handle, "speed", dTimes, AsyncReplyTag::SPEED); } void MpvProxy::selectSubtitle(int nId) { if (nId > m_movieInfo.subs.size()) { nId = m_movieInfo.subs.size() == 0 ? -1 : m_movieInfo.subs[0]["id"].toInt(); } my_set_property(m_handle, "sid", nId); #ifndef _LIBDMR_ MovieConfiguration::get().updateUrl(_file, ConfigKnownKey::SubId, sid()); #endif } void MpvProxy::toggleSubtitle() { if (state() == PlayState::Stopped) { return; } my_set_property(m_handle, "sub-visibility", !isSubVisible()); } int MpvProxy::aid() const { return my_get_property(m_handle, "aid").toInt(); } int MpvProxy::sid() const { return my_get_property(m_handle, "sid").toInt(); } void MpvProxy::selectTrack(int nId) { if (nId >= m_movieInfo.audios.size()) return; QVariant aid = m_movieInfo.audios[nId]["id"]; my_set_property(m_handle, "aid", aid); } void MpvProxy::changeSoundMode(SoundMode soundMode) { QList listArgs; switch (soundMode) { case SoundMode::Stereo: listArgs << "af" << "set" << "stereotools=muter=false"; break; case SoundMode::Left: listArgs << "af" << "set" << "stereotools=muter=true"; break; case SoundMode::Right: listArgs << "af" << "set" << "stereotools=mutel=true"; break; } my_command(m_handle, listArgs); } void MpvProxy::volumeUp() { if (volume() >= 200) return; changeVolume(volume() + 10); } void MpvProxy::changeVolume(int nVol) { my_set_property(m_handle, "volume", volumeCorrection(nVol)); } void MpvProxy::volumeDown() { if (volume() <= 0) return; changeVolume(volume() - 10); } int MpvProxy::volume() const { int nActualVol = my_get_property(m_handle, "volume").toInt(); int nDispalyVol = static_cast((nActualVol - 40) / 60.0 * 100.0); return nDispalyVol > 100 ? nActualVol : nDispalyVol; } int MpvProxy::videoRotation() const { int nRotate = my_get_property(m_handle, "video-rotate").toInt(); return (nRotate + 360) % 360; } void MpvProxy::setVideoRotation(int nDegree) { my_set_property(m_handle, "video-rotate", nDegree); } void MpvProxy::setVideoAspect(double dValue) { my_set_property(m_handle, "video-aspect", dValue); } double MpvProxy::videoAspect() const { return my_get_property(m_handle, "video-aspect").toDouble(); } bool MpvProxy::muted() const { return my_get_property(m_handle, "mute").toBool(); } void MpvProxy::toggleMute() { QList listArgs = { "cycle", "mute" }; qInfo() << listArgs; my_command(m_handle, listArgs); } void MpvProxy::setMute(bool bMute) { my_set_property(m_handle, "mute", bMute); } void MpvProxy::slotStateChanged() { m_pMpvGLwidget->setPlaying(state() != Backend::PlayState::Stopped); m_pMpvGLwidget->update(); } void MpvProxy::refreshDecode() { QList canHwTypes; //bool bIsCanHwDec = HwdecProbe::get().isFileCanHwdec(_file.url(), canHwTypes); if (DecodeMode::SOFTWARE == m_decodeMode) { //1.设置软解 my_set_property(m_handle, "hwdec", "no"); } else if (DecodeMode::AUTO == m_decodeMode) {//2.设置自动 //2.1 特殊格式 bool isSoftCodec = false; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); auto codec = currentInfo.mi.videoCodec(); auto name = _file.fileName(); isSoftCodec = codec.toLower().contains("mpeg2video") || codec.toLower().contains("wmv") || name.toLower().contains("wmv"); //去除9200显卡适配 QFileInfo jmfi("/dev/jmgpu"); QFileInfo fi("/dev/mwv206_0"); bool jmflag =false; if (jmfi.exists() || fi.exists()) { QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(jmdir.exists()) { jmflag=true; } isSoftCodec = codec.toLower().contains("mpeg4") ? true : isSoftCodec; } QFileInfo X100GPU("/dev/x100gpu"); bool x100flag =false; if (X100GPU.exists()) { x100flag = true; } #if !defined(_loongarch) && !defined(__loongarch__) && !defined(__loongarch64) //探测硬解码 if(!isSoftCodec && !CompositingManager::get().isZXIntgraphics() && !jmflag && !x100flag) { isSoftCodec = !isSurportHardWareDecode(codec, currentInfo.mi.width, currentInfo.mi.height); } #endif if(utils::check_wayland_env()){ PlaylistModel *playMode = dynamic_cast(m_pParentWidget)->getplaylist(); QVariant varPixfmt = playMode->property(currentInfo.mi.filePath.toUtf8()); if(varPixfmt.isValid() && varPixfmt.toInt() == AV_PIX_FMT_YUV444P) { isSoftCodec = true; } } } if (isSoftCodec) { qInfo() << "my_set_property hwdec no"; my_set_property(m_handle, "hwdec", "no"); } else { //2.2 非特殊格式 //2.2.1 特殊硬件 QFileInfo fi("/dev/mwv206_0"); //2.2.1.1 景嘉微 QFileInfo jmfi("/dev/jmgpu"); QFileInfo X100GPU("/dev/x100gpu"); QFileInfo X100VPU("/dev/vxd0"); if (fi.exists() || jmfi.exists()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); auto codec = currentInfo.mi.videoCodec(); if (codec.toLower().contains("mpeg2") || codec.toLower().contains("mpeg4")) { my_set_property(m_handle, "hwdec", "no"); } else { QDir sdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv206"); //判断是否安装核外驱动 QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(sdir.exists() && fi.exists()) { my_set_property(m_handle, "hwdec", "vdpau"); my_set_property(m_handle, "vo", "vdpau"); }else if (jmfi.exists() && jmdir.exists()) { my_set_property(m_handle, "hwdec", "vaapi"); my_set_property(m_handle, "vo", "vaapi"); }else { my_set_property(m_handle, "hwdec", "auto"); } } } else if (X100GPU.exists() && X100VPU.exists()) { my_set_property(m_handle, "hwdec", "ftomx-copy"); my_set_property(m_handle, "vo", "gpu"); } else if (CompositingManager::get().isOnlySoftDecode()) { //2.2.1.2 鲲鹏920 || 曙光+英伟达 || 浪潮 my_set_property(m_handle, "hwdec", "no"); } else if (CompositingManager::get().isSpecialControls()) { my_set_property(m_handle, "hwdec", "vaapi"); } else { //2.2.2 非特殊硬件 + 非特殊格式 my_set_property(m_handle, "hwdec","auto"); //bIsCanHwDec ? my_set_property(m_handle, "hwdec", canHwTypes.join(',')) : my_set_property(m_handle, "hwdec", "no"); } } if (QFile::exists("/sys/bus/pci/drivers/ljmcore")) { my_set_property(m_handle, "hwdec", "vaapi"); } if (QFile::exists("/usr/local/ctyun/clink/Mirror/Registry/Default")) { my_set_property(m_handle, "hwdec", "no"); my_set_property(m_handle, "vo", "x11"); my_set_property(m_handle, "video-sync", "desync"); my_set_property(m_handle, "profile", "sw-fast"); m_sInitVo = "x11"; } } else { //3.设置硬解 #ifndef _LIBDMR_ #if defined (__aarch64__) // 鲲鹏920 || 曙光+英伟达 || 浪潮 if (!CompositingManager::get().hascard() || CompositingManager::get().isOnlySoftDecode()) { my_set_property(m_handle, "hwdec", "no"); } else if (CompositingManager::get().isSpecialControls()) { my_set_property(m_handle, "hwdec", "vaapi"); } else { my_set_property(m_handle, "hwdec","auto"); } #else if(CompositingManager::get().isOnlySoftDecode()) { my_set_property(m_handle, "hwdec","no"); } else { my_set_property(m_handle, "hwdec","auto"); } #endif #else if (CompositingManager::get().isOnlySoftDecode()) { // 鲲鹏920 || 曙光+英伟达 || 浪潮 my_set_property(m_handle, "hwdec", "no"); } else { my_set_property(m_handle, "hwdec","auto"); //bIsCanHwDec ? my_set_property(m_handle, "hwdec", canHwTypes.join(',')) : my_set_property(m_handle, "hwdec", "no"); } #endif QFileInfo fi("/dev/mwv206_0"); //2.2.1.1 景嘉微 QFileInfo jmfi("/dev/jmgpu"); QFileInfo X100GPU("/dev/x100gpu"); QFileInfo X100VPU("/dev/vxd0"); if (fi.exists() || jmfi.exists()) { QDir sdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv206"); //判断是否安装核外驱动 QDir jmdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv207"); if(sdir.exists() && fi.exists()) { my_set_property(m_handle, "hwdec", "vdpau"); my_set_property(m_handle, "vo", "vdpau"); }else if (jmfi.exists() && jmdir.exists()) { my_set_property(m_handle, "hwdec", "vaapi"); my_set_property(m_handle, "vo", "vaapi"); }else { my_set_property(m_handle, "hwdec", "auto"); } } else if (X100GPU.exists() && X100VPU.exists()) { my_set_property(m_handle, "hwdec", "ftomx-copy"); my_set_property(m_handle, "vo", "gpu"); } if (QFile::exists("/sys/bus/pci/drivers/ljmcore")) { my_set_property(m_handle, "hwdec", "vaapi"); } if (QFile::exists("/usr/local/ctyun/clink/Mirror/Registry/Default")) { my_set_property(m_handle, "hwdec", "no"); my_set_property(m_handle, "vo", "x11"); my_set_property(m_handle, "video-sync", "desync"); my_set_property(m_handle, "profile", "sw-fast"); m_sInitVo = "x11"; } if(utils::check_wayland_env()){ PlaylistModel *playMode = dynamic_cast(m_pParentWidget)->getplaylist(); PlayItemInfo currentInfo = playMode->currentInfo(); QVariant varPixfmt = playMode->property(currentInfo.mi.filePath.toUtf8()); if(varPixfmt.isValid() && varPixfmt.toInt() == AV_PIX_FMT_YUV444P) { my_set_property(m_handle, "hwdec","no"); } } //play.conf CompositingManager::get().getMpvConfig(m_pConfig); #ifndef _LIBDMR_ if (Settings::get().settings()->getOption(QString("base.decode.select")).toInt() == 3) { int decodeIndex = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); auto decodeModeOpt = Settings::get().settings()->option("base.decode.Decodemode"); QString decodeMode = decodeModeOpt.data()->data("items").toStringList()[decodeIndex]; decodeMode = decodeMode.isEmpty() ? "auto" : decodeMode; m_pConfig->insert("hwdec", decodeMode); if (!CompositingManager::get().composited()) { int voIndex = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); auto voOpt = Settings::get().settings()->option("base.Customize.Videoout"); QString voMode = voOpt.data()->data("items").toStringList()[voIndex]; voMode = voMode.isEmpty() ? "auto" : voMode; m_pConfig->insert("vo", voMode); } } #endif QMap::iterator iter = m_pConfig->begin(); while (iter != m_pConfig->end()) { if (iter.key().contains(QString("hwdec"))) { my_set_property(m_handle, iter.key(), iter.value()); break; } iter++; } } } void MpvProxy::initMember() { m_nBurstStart = 0; m_pMpvGLwidget = nullptr; m_pParentWidget = nullptr; m_bInBurstShotting = false; m_posBeforeBurst = false; m_bPendingSeek = false; m_bPolling = false; m_bConnectStateChange = false; m_bLoadMedia = false; m_bPauseOnStart = false; m_bIsJingJia = false; m_bInited = false; m_bHwaccelAuto = false; m_bLastIsSpecficFormat = false; m_sInitVo = "gpu,xv,x11";//初始化vo数据 m_listBurstPoints.clear(); m_mapWaitSet.clear(); m_vecWaitCommand.clear(); m_waitEvent = nullptr; m_setOptionString = nullptr; m_setProperty = nullptr; m_setPropertyAsync = nullptr; m_commandNode = nullptr; m_commandNodeAsync = nullptr; m_getProperty = nullptr; m_observeProperty = nullptr; m_eventName = nullptr; m_creat = nullptr; m_requestLogMessage = nullptr; m_setWakeupCallback = nullptr; m_initialize = nullptr; m_freeNodecontents = nullptr; m_pConfig = nullptr; m_gpuInfo = nullptr; } void MpvProxy::play() { if(m_bLoadMedia) { QTimer::singleShot(5000, [=](){ //超时5s恢复状态,视频加载成功后也会重置状态,正常播放状态下不会进入此函数 m_bLoadMedia = false; }); return; } bool bRawFormat = false; QList listArgs = { "loadfile" }; QStringList listOpts = { }; PlayerEngine* pEngine = nullptr; bool bAudio = false; m_bLoadMedia = true; if (!m_bInited) { firstInit(); } pEngine = dynamic_cast(m_pParentWidget); if (pEngine && pEngine->getplaylist()->size() > 0) { bRawFormat = pEngine->getplaylist()->currentInfo().mi.isRawFormat(); bAudio = pEngine->currFileIsAudio(); } if (bAudio) { my_set_property(m_handle, "vo", "null"); } else { my_set_property(m_handle, "vo", m_sInitVo); } if (_file.isLocalFile()) { listArgs << QFileInfo(_file.toLocalFile()).absoluteFilePath(); } else { listArgs << _file.url(); } #ifndef _LIBDMR_ QMap cfg = MovieConfiguration::get().queryByUrl(_file); QString key = MovieConfiguration::knownKey2String(ConfigKnownKey::StartPos); if (Settings::get().isSet(Settings::ResumeFromLast) && cfg.contains(key) && !bRawFormat) { // 裸流没有时长,seek会崩溃 listOpts << QString("start=%1").arg(cfg[key].toInt()); //如果视频长度小于1s这段代码会导致视频无法播放 } key = MovieConfiguration::knownKey2String(ConfigKnownKey::SubCodepage); if (cfg.contains(key)) { listOpts << QString("sub-codepage=%1").arg(cfg[key].toString()); } key = MovieConfiguration::knownKey2String(ConfigKnownKey::SubDelay); if (cfg.contains(key)) { listOpts << QString("sub-delay=%1").arg(cfg[key].toDouble()); } if (!_dvdDevice.isEmpty()) { listOpts << QString("dvd-device=%1").arg(_dvdDevice); } #endif //刷新解码模式 refreshDecode(); QFileInfo fi("/dev/mwv206_0"); // 景美驱动硬解avs2有崩溃问题 if (fi.exists()) { QDir sdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"mwv206"); QString sCodec = pEngine->playlist().currentInfo().mi.videoCodec(); if(sdir.exists() && sCodec.contains("avs2", Qt::CaseInsensitive)) { my_set_property(m_handle, "hwdec", "no"); my_set_property(m_handle, "vo", "gpu,x11,xv"); } } if (listOpts.size()) { listArgs << "replace"; if (MPV_CLIENT_API_VERSION >= MPV_MAKE_VERSION(2,3)) { listArgs << "-1"; } listArgs << listOpts.join(','); } qInfo() << listArgs; //设置播放参数 QMap::iterator iter = m_pConfig->begin(); qInfo() << __func__ << "Set mpv propertys!!"; while (iter != m_pConfig->end()) { my_set_property(m_handle, iter.key(), iter.value()); iter++; } my_command(m_handle, listArgs); my_set_property(m_handle, "pause", m_bPauseOnStart); #ifndef _LIBDMR_ // by giving a period of time, movie will be loaded and auto-loaded subs are // all ready, then load extra subs from db // this keeps order of subs QTimer::singleShot(100, [this]() { auto mcfg = MovieConfiguration::get().queryByUrl(_file); auto ext_subs = MovieConfiguration::get().getListByUrl(_file, ConfigKnownKey::ExternalSubs); for (const auto &sub : ext_subs) { if (!QFile::exists(sub)) { MovieConfiguration::get().removeFromListUrl(_file, ConfigKnownKey::ExternalSubs, sub); } else { loadSubtitle(sub); } } auto key_s = MovieConfiguration::knownKey2String(ConfigKnownKey::SubId); if (mcfg.contains(key_s)) { selectSubtitle(mcfg[key_s].toInt()); } }); #endif } void MpvProxy::pauseResume() { if (_state == PlayState::Stopped) return; my_set_property(m_handle, "pause", !paused()); } void MpvProxy::stop() { QList args = { "stop" }; qInfo() << args; my_command(m_handle, args); } QImage MpvProxy::takeScreenshot() { return takeOneScreenshot(); } void MpvProxy::burstScreenshot() { if (m_bInBurstShotting) { qWarning() << "already in burst screenshotting mode"; return; } if (state() == PlayState::Stopped) return; //my_command(m_handle, QList {"revert-seek", "mark"}); m_posBeforeBurst = my_get_property(m_handle, "time-pos"); int nDuration = static_cast(duration() / 15); std::random_device rd; std::mt19937 g(rd()); std::uniform_int_distribution uniform_dist(0, nDuration); m_listBurstPoints.clear(); for (int i = 0; i < 15; i++) { m_listBurstPoints.append(nDuration * i + uniform_dist(g)); } m_nBurstStart = 0; if (duration() < 35) { emit notifyScreenshot(QImage(), 0); stopBurstScreenshot(); return; } qInfo() << "burst span " << m_nBurstStart; if (!paused()) pauseResume(); m_bInBurstShotting = true; QTimer::singleShot(0, this, &MpvProxy::stepBurstScreenshot); } qint64 MpvProxy::nextBurstShootPoint() { auto next = m_listBurstPoints[static_cast(m_nBurstStart++)]; if (next >= duration()) { next = duration() - 5; } return next; } int MpvProxy::volumeCorrection(int displayVol) { int realVol = 0; if (displayVol > 100) return displayVol; realVol = static_cast((displayVol / 100.0) * 60.0 + 40); return (realVol == 40 ? 0 : realVol); } QVariant MpvProxy::my_get_property(mpv_handle *pHandle, const QString &sName) const { mpv_node node; if (!m_getProperty) return QVariant(); int err = m_getProperty(pHandle, sName.toUtf8().data(), MPV_FORMAT_NODE, &node); if (err < 0) return QVariant::fromValue(ErrorReturn(err)); auto variant = node_to_variant(&node); m_freeNodecontents(&node); return variant; } int MpvProxy::my_set_property(mpv_handle *pHandle, const QString &sName, const QVariant &v) { QVariant sValue = v; #ifndef _LIBDMR_ #ifdef __x86_64__ bool composited = CompositingManager::get().composited(); //设置mpv硬解码时,检测是否支持硬解,不支持则设置为软解 if(sName.compare("hwdec") == 0 && v.toString().compare("auto") == 0 && !utils::check_wayland_env() && composited) { if(!CompositingManager::isCanHwdec()) { sValue = "no"; } } #endif #else if(sName.compare("hwdec") == 0) { if( property("dmrhwdec-switch").isValid() && property("dmrhwdec-switch").toBool()) { sValue = v; } else { sValue = "no"; } } #endif node_builder node(sValue); if (!m_bInited) { m_mapWaitSet.insert(sName, sValue); return 0; } if (!m_setProperty) return 0; int res = m_setProperty(pHandle, sName.toUtf8().data(), MPV_FORMAT_NODE, node.node()); return res; } bool MpvProxy::my_command_async(mpv_handle *pHandle, const QVariant &args, uint64_t tag) { node_builder node(args); int nErr = m_commandNodeAsync(pHandle, tag, node.node()); return nErr == 0; } int MpvProxy::my_set_property_async(mpv_handle *pHandle, const QString &sName, const QVariant &value, uint64_t tag) { node_builder node(value); return m_setPropertyAsync(pHandle, tag, sName.toUtf8().data(), MPV_FORMAT_NODE, node.node()); } QVariant MpvProxy::my_get_property_variant(mpv_handle *pHandle, const QString &sName) { mpv_node node; if (m_getProperty(pHandle, sName.toUtf8().data(), MPV_FORMAT_NODE, &node) < 0) return QVariant(); my_node_autofree f(&node); return node_to_variant(&node); } QVariant MpvProxy::my_command(mpv_handle *pHandle, const QVariant &args) { if (!m_bInited) { m_vecWaitCommand.append(args); return QVariant(); } node_builder node(args); mpv_node res; int nErr = m_commandNode(pHandle, node.node(), &res); if (nErr < 0) return QVariant::fromValue(ErrorReturn(nErr)); auto variant = node_to_variant(&res); m_freeNodecontents(&res); return variant; } QImage MpvProxy::takeOneScreenshot() { bool bNeedRotate = false; QString strVO = getProperty("current-vo").toString(); // the image by screenshot wont rotate when vo=vdpau if(strVO.compare("vdpau", Qt::CaseInsensitive) == 0) { bNeedRotate = true; } if (state() == PlayState::Stopped) return QImage(); QList args = {"screenshot-raw"}; node_builder node(args); mpv_node res; int nErr = m_commandNode(m_handle, node.node(), &res); if (nErr < 0) { qWarning() << "screenshot raw failed"; return QImage(); } Q_ASSERT(res.format == MPV_FORMAT_NODE_MAP); int w = 0, h = 0, stride = 0; mpv_node_list *pNodeList = res.u.list; uchar *pData = nullptr; for (int n = 0; n < pNodeList->num; n++) { auto key = QString::fromUtf8(pNodeList->keys[n]); if (key == "w") { w = static_cast(pNodeList->values[n].u.int64); } else if (key == "h") { h = static_cast(pNodeList->values[n].u.int64); } else if (key == "stride") { stride = static_cast(pNodeList->values[n].u.int64); } else if (key == "format") { auto format = QString::fromUtf8(pNodeList->values[n].u.string); qInfo() << "format" << format; } else if (key == "data") { pData = static_cast(pNodeList->values[n].u.ba->data); } } if (pData) { //alpha should be ignored auto img = QImage(static_cast(pData), w, h, stride, QImage::Format_RGB32); img.bits(); int rotationdegree = videoRotation(); if (rotationdegree && (CompositingManager::get().composited() || bNeedRotate)) { //只有opengl窗口需要自己旋转 QMatrix matrix; matrix.rotate(rotationdegree); img = QPixmap::fromImage(img).transformed(matrix, Qt::SmoothTransformation).toImage(); } m_freeNodecontents(&res); return img; } m_freeNodecontents(&res); qInfo() << "failed"; return QImage(); } void MpvProxy::stepBurstScreenshot() { if (!m_bInBurstShotting) { return; } auto pos = nextBurstShootPoint(); my_command(m_handle, QList {"seek", pos, "absolute"}); // int tries = 10; while (true) { mpv_event *pEvent = m_waitEvent(m_handle, 0.005); if (pEvent->event_id == MPV_EVENT_NONE) continue; if (pEvent->event_id == MPV_EVENT_PLAYBACK_RESTART) { qInfo() << "seek finished" << elapsed(); break; } if (pEvent->event_id == MPV_EVENT_END_FILE) { qInfo() << "seek finished (end of file)" << elapsed(); break; } } QImage img = takeOneScreenshot(); if (img.isNull()) { emit notifyScreenshot(img, elapsed()); stopBurstScreenshot(); return; } emit notifyScreenshot(img, elapsed()); QTimer::singleShot(0, this, &MpvProxy::stepBurstScreenshot); } void MpvProxy::stopBurstScreenshot() { m_bInBurstShotting = false; //my_command(m_handle, QList {"revert-seek", "mark"}); my_set_property(m_handle, "time-pos", m_posBeforeBurst); } void MpvProxy::seekForward(int nSecs) { if (state() == PlayState::Stopped) return; if (m_bPendingSeek) return; QList listArgs = { "seek", QVariant(nSecs), "relative+exact" }; qInfo() << listArgs; my_command_async(m_handle, listArgs, AsyncReplyTag::SEEK); m_bPendingSeek = true; } void MpvProxy::seekBackward(int nSecs) { if (state() == PlayState::Stopped) return; if (m_bPendingSeek) return; if (nSecs > 0) nSecs = -nSecs; QList listArgs = { "seek", QVariant(nSecs), "relative+exact" }; qInfo() << listArgs; my_command_async(m_handle, listArgs, AsyncReplyTag::SEEK); m_bPendingSeek = true; } void MpvProxy::seekAbsolute(int nPos) { if (state() == PlayState::Stopped) return; if (m_bPendingSeek) return; QList listArgs = { "seek", QVariant(nPos), "absolute" }; qInfo() << listArgs; //command(m_handle, args); m_bPendingSeek = true; my_command_async(m_handle, listArgs, AsyncReplyTag::SEEK); } QSize MpvProxy::videoSize() const { if (state() == PlayState::Stopped) return QSize(-1, -1); QSize size = QSize(my_get_property(m_handle, "dwidth").toInt(), my_get_property(m_handle, "dheight").toInt()); auto r = my_get_property(m_handle, "video-out-params/rotate").toInt(); if (r == 90 || r == 270) { size.transpose(); } return size; } qint64 MpvProxy::duration() const { bool bRawFormat = false; if (0 < dynamic_cast(m_pParentWidget)->getplaylist()->size()) { PlayItemInfo currentInfo = dynamic_cast(m_pParentWidget)->getplaylist()->currentInfo(); bRawFormat = currentInfo.mi.isRawFormat(); } if (bRawFormat) { // 因为格式众多时长输出不同,这里做统一处理不显示时长 return 0; } else { return my_get_property(m_handle, "duration").value(); } } qint64 MpvProxy::elapsed() const { if (state() == PlayState::Stopped) return 0; return my_get_property(m_handle, "time-pos").value(); } void MpvProxy::updatePlayingMovieInfo() { m_movieInfo.subs.clear(); m_movieInfo.audios.clear(); QList listInfo = my_get_property(m_handle, "track-list").toList(); auto p = listInfo.begin(); while (p != listInfo.end()) { const auto &t = p->toMap(); if (t["type"] == "audio") { AudioInfo audioInfo; audioInfo["type"] = t["type"]; audioInfo["id"] = t["id"]; audioInfo["lang"] = t["lang"]; audioInfo["external"] = t["external"]; audioInfo["external-filename"] = t["external-filename"]; audioInfo["selected"] = t["selected"]; audioInfo["title"] = t["title"]; if (t["title"].toString().size() == 0) { if (t["lang"].isValid() && t["lang"].toString().size() && t["lang"].toString() != "und") audioInfo["title"] = t["lang"]; else if (!t["external"].toBool()) audioInfo["title"] = "[internal]"; } m_movieInfo.audios.append(audioInfo); } else if (t["type"] == "sub") { SubtitleInfo titleInfo; titleInfo["type"] = t["type"]; titleInfo["id"] = t["id"]; titleInfo["lang"] = t["lang"]; titleInfo["external"] = t["external"]; titleInfo["external-filename"] = t["external-filename"]; titleInfo["selected"] = t["selected"]; titleInfo["title"] = t["title"]; if (t["title"].toString().size() == 0) { if (t["lang"].isValid() && t["lang"].toString().size() && t["lang"].toString() != "und") titleInfo["title"] = t["lang"]; else if (!t["external"].toBool()) titleInfo["title"] = tr("Internal"); } m_movieInfo.subs.append(titleInfo); } ++p; } qInfo() << m_movieInfo.subs; qInfo() << m_movieInfo.audios; } void MpvProxy::nextFrame() { if (state() == PlayState::Stopped) return; QList listArgs = { "frame-step"}; my_command(m_handle, listArgs); } void MpvProxy::previousFrame() { if (state() == PlayState::Stopped) return; QList listArgs = { "frame-back-step"}; my_command(m_handle, listArgs); } void MpvProxy::changehwaccelMode(hwaccelMode hwaccelMode) { switch (hwaccelMode) { case hwaccelAuto: m_bHwaccelAuto = true; break; case hwaccelOpen: m_bHwaccelAuto = false; my_set_property(m_handle, "hwdec", "auto"); break; case hwaccelClose: m_bHwaccelAuto = false; my_set_property(m_handle, "hwdec", "off"); break; } } void MpvProxy::makeCurrent() { m_pMpvGLwidget->makeCurrent(); } QVariant MpvProxy::getProperty(const QString &sName) { return my_get_property(m_handle, sName.toUtf8().data()); } void MpvProxy::setProperty(const QString &sName, const QVariant &val) { if (sName == "pause-on-start") { m_bPauseOnStart = val.toBool(); } else if (sName == "video-zoom") { my_set_property(m_handle, sName, val.toDouble()); } else if (sName == "color") { QObject::setProperty("color", val); } else if (sName == "dmrhwdec-switch") { QObject::setProperty("dmrhwdec-switch", val); } else { my_set_property(m_handle, sName.toUtf8().data(), val); } } } // end of namespace dmr deepin-movie-reborn-5.15.10/src/backends/mpv/mpv_proxy.h000066400000000000000000000315761473342170300231300ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_MPV_PROXY_H #define _DMR_MPV_PROXY_H #define MWV206_0 //After Jing Jiawei's graphics card is upgraded, deal with the macro according to the situation, //This macro is also available for compositing_manager.cpp. #include #include #include #undef Bool #include "../../vendor/qthelper.hpp" typedef mpv_event *(*mpv_waitEvent)(mpv_handle *ctx, double timeout); typedef int (*mpv_set_optionString)(mpv_handle *ctx, const char *name, const char *data); typedef int (*mpv_setProperty)(mpv_handle *ctx, const char *name, mpv_format format, void *data); typedef int (*mpv_setProperty_async)(mpv_handle *ctx, uint64_t reply_userdata, const char *name, mpv_format format, void *data); typedef int (*mpv_commandNode)(mpv_handle *ctx, mpv_node *args, mpv_node *result); typedef int (*mpv_commandNode_async)(mpv_handle *ctx, uint64_t reply_userdata, mpv_node *args); typedef int (*mpv_getProperty)(mpv_handle *ctx, const char *name, mpv_format format, void *data); typedef int (*mpv_observeProperty)(mpv_handle *mpv, uint64_t reply_userdata, const char *name, mpv_format format); typedef const char *(*mpv_eventName)(mpv_event_id event); typedef mpv_handle *(*mpvCreate)(void); typedef int (*mpv_requestLog_messages)(mpv_handle *ctx, const char *min_level); typedef int (*mpv_observeProperty)(mpv_handle *mpv, uint64_t reply_userdata, const char *name, mpv_format format); typedef void (*mpv_setWakeup_callback)(mpv_handle *ctx, void (*cb)(void *d), void *d); typedef int (*mpvinitialize)(mpv_handle *ctx); typedef void (*mpv_freeNode_contents)(mpv_node *node); typedef void (*mpv_terminateDestroy)(mpv_handle *ctx); class MpvHandle { struct container { explicit container(mpv_handle *pHandle) : m_pHandle(pHandle) {} ~container() { mpv_terminateDestroy func = (mpv_terminateDestroy)QLibrary::resolve("libmpv", "mpv_terminate_destroy"); func(m_pHandle); } mpv_handle *m_pHandle; }; QSharedPointer sptr; public: // Construct a new Handle from a raw mpv_handle with refcount 1. If the // last Handle goes out of scope, the mpv_handle will be destroyed with // mpv_terminate_destroy(). // Never destroy the mpv_handle manually when using this wrapper. You // will create dangling pointers. Just let the wrapper take care of // destroying the mpv_handle. // Never create multiple wrappers from the same raw mpv_handle; copy the // wrapper instead (that's what it's for). static MpvHandle fromRawHandle(mpv_handle *pHandle) { MpvHandle mpvHandle; mpvHandle.sptr = QSharedPointer(new container(pHandle)); return mpvHandle; } // Return the raw handle; for use with the libmpv C API. operator mpv_handle *() const { return sptr ? (*sptr).m_pHandle : 0; } }; namespace dmr { using namespace mpv::qt; class MpvGLWidget; //解码模式 enum DecodeMode { AUTO = 0, HARDWARE, SOFTWARE }; /** * @file 封装mpv播放引擎 */ class MpvProxy: public Backend { Q_OBJECT struct my_node_autofree { mpv_node *pNode; explicit my_node_autofree(mpv_node *pValue) : pNode(pValue) {} ~my_node_autofree() { mpv_freeNode_contents(pNode); } }; signals: void has_mpv_events(); /** * @brief 崩溃检测 */ void crashCheck(); public: explicit MpvProxy(QWidget *parent = 0); virtual ~MpvProxy(); /** * @brief 设置解码模式 */ void setDecodeModel(const QVariant &value); /** * @brief 刷新解码方式 */ void refreshDecode(); // //add by heyi /** * @brief initMpvFuns 初始化MPV动态调用库函数 */ void initMpvFuns(); //add by heyi /** * @brief firstInit 第一次播放需要初库始化函数指针 */ void firstInit(); /** * @brief 初始化mpv设置 */ void initSetting(); /** * @brief updateRoundClip 更新opengl绘制圆角 * @param roundClip 是否为圆角 */ void updateRoundClip(bool roundClip); /** * @brief 正在播放影片的影片信息 */ const PlayingMovieInfo &playingMovieInfo() override; // mpv plays all files by default (I hope) bool isPlayable() const override { return true; } // polling until current playback ended void pollingEndOfPlayback(); // polling until current playback started void pollingStartOfPlayback(); /** * @brief 获取影片时间长 */ qint64 duration() const override; /** * @brief 获取影片当前进度 */ qint64 elapsed() const override; /** * @brief 获取当前影片显示大小 */ QSize videoSize() const override; /** * @brief 设置播放速度 * @param 范围0.01-100 */ void setPlaySpeed(double dTimes) override; /** * @brief 播放记录,记录播放到当前时刻 */ void savePlaybackPosition() override; /** * @brief 加载字幕 */ bool loadSubtitle(const QFileInfo &fileInfo) override; /** * @brief 显示或隐藏字幕 */ void toggleSubtitle() override; /** * @brief 获取字幕显示状态 * @return 是否可见 */ bool isSubVisible() override; /** * @brief 选择字幕 */ void selectSubtitle(int nId) override; /** * @brief 返回当前字幕id */ int sid() const override; /** * @brief 设置字幕延时 * @param 延时多少秒 */ void setSubDelay(double dSecs) override; /** * @brief 返回当前字幕延时 */ double subDelay() const override; /** * @brief 设置字幕样式 * @param 字幕字体 * @param 字幕大小 */ void updateSubStyle(const QString &sFont, int nSize) override; /** * @brief 设置编码 */ void setSubCodepage(const QString &sCodePage) override; /** * @brief 返回当前编码 */ QString subCodepage() override; /** * @brief 设置在线字幕路径 */ void addSubSearchPath(const QString &sPath) override; /** * @brief 设置声道 */ void selectTrack(int nId) override; /** * @brief 返回当前声道 */ int aid() const override; /** * @brief 设置声道模式 * @param 声道模式(左声道、右声道、立体声) */ void changeSoundMode(SoundMode soundMode) override; /** * @brief 获取mpv音量 */ int volume() const override; /** * @brief 获取mpv静音状态 */ bool muted() const override; /** * @brief 设置画面比例 * @param 宽高比 */ void setVideoAspect(double dValue) override; /** * @brief 获取当前画面比例 * @return 画面比例 */ double videoAspect() const override; /** * @brief 获取画面旋转角度 */ int videoRotation() const override; /** * @brief 设置影片旋转角度 */ void setVideoRotation(int nDegree) override; /** * @brief 画面截图 */ QImage takeScreenshot() override; /** * @brief 画面连拍截图 */ void burstScreenshot() override; //initial the start of burst screenshotting /** * @brief 停止连拍截图 */ void stopBurstScreenshot() override; /** * @brief 获取mpv参数值 * @param 要获取值的参数 * @return 返回的参数值 */ QVariant getProperty(const QString &) override; /** * @brief 设置mpv参数值 * @param 想要设置值的参数 * @param 设置的值 */ void setProperty(const QString &, const QVariant &) override; /** * @brief 播放下一帧画面 */ void nextFrame() override; /** * @brief 播放上一帧画面 */ void previousFrame() override; /** * @brief 设置硬解码方式 */ void changehwaccelMode(hwaccelMode hwaccelMode) override; void makeCurrent() override; public slots: /** * @brief 播放当前影片 */ void play() override; /** * @brief 暂停或恢复暂停 */ void pauseResume() override; /** * @brief 终止播放 */ void stop() override; /** * @brief 向前seek * @param 当前往前多少秒 */ void seekForward(int nSecs) override; /** * @brief 向后seek * @param 当前往后多少秒 */ void seekBackward(int nSecs) override; /** * @brief seek到某个位置 * @param 某个进度点(秒) */ void seekAbsolute(int nPos) override; /** * @brief 加音量 */ void volumeUp() override; /** * @brief 减音量 */ void volumeDown() override; /** * @brief 调整音量大小 */ void changeVolume(int nVol) override; /** * @brief 循环改变静音状态 */ void toggleMute() override; /** * @brief 指定改变静音状态 */ void setMute(bool bMute) override; protected: void initMember(); //初始化成员变量 /** * @brief initMpvFuns 初始化gpuinfo硬解探测函数 */ void initGpuInfoFuns(); /** * @brief 是否支持硬件解码 */ bool isSurportHardWareDecode(const QString sDecodeName, const int &nVideoWidth, const int &nVideoHeight); /** * @brief 获取探测解码值 */ int getDecodeProbeValue(const QString sDecodeName); void resizeEvent(QResizeEvent *pEvent) override; void showEvent(QShowEvent *pEvent) override; protected slots: void handle_mpv_events(); void stepBurstScreenshot(); void slotStateChanged(); private: mpv_handle *mpv_init(); //初始化mpv void processPropertyChange(mpv_event_property *pEvent); void processLogMessage(mpv_event_log_message *pEvent); QImage takeOneScreenshot(); void updatePlayingMovieInfo(); void setState(PlayState state); qint64 nextBurstShootPoint(); int volumeCorrection(int); //add by heyi QVariant my_get_property(mpv_handle *pHandle, const QString &sName) const; int my_set_property(mpv_handle *pHandle, const QString &sName, const QVariant &value); bool my_command_async(mpv_handle *pHandle, const QVariant &args, uint64_t tag); int my_set_property_async(mpv_handle *pHandle, const QString &sName, const QVariant &v, uint64_t tag); QVariant my_get_property_variant(mpv_handle *pHandle, const QString &sName); QVariant my_command(mpv_handle *pHandle, const QVariant &args); private: mpv_waitEvent m_waitEvent; mpv_set_optionString m_setOptionString; mpv_setProperty m_setProperty; mpv_setProperty_async m_setPropertyAsync; mpv_commandNode m_commandNode; mpv_commandNode_async m_commandNodeAsync; mpv_getProperty m_getProperty; mpv_observeProperty m_observeProperty; mpv_eventName m_eventName; mpvCreate m_creat; mpv_requestLog_messages m_requestLogMessage; mpv_setWakeup_callback m_setWakeupCallback; mpvinitialize m_initialize; mpv_freeNode_contents m_freeNodecontents; void *m_gpuInfo; //解码探测函数指针 MpvHandle m_handle; //mpv句柄 MpvGLWidget *m_pMpvGLwidget; //opengl窗口 QWidget *m_pParentWidget; PlayingMovieInfo m_movieInfo; //播放过的影片的信息 QString m_sInitVo; //初始vo方式 QVariant m_posBeforeBurst; //截图前影片播放位置 QList m_listBurstPoints; //存储连拍截图截图位置 qint64 m_nBurstStart; //记录连拍截图次数 bool m_bPendingSeek; bool m_bInBurstShotting; //是否停止连拍截图 bool m_bPolling; bool m_bConnectStateChange; bool m_bLoadMedia; //mpv是否在加载媒体中 bool m_bPauseOnStart; //mpv是否在暂停中 bool m_bIsJingJia; //是否在景嘉微平台上 bool m_bInited; //mpv是否已经初始化 bool m_bHwaccelAuto; //如果设置为不为自动,则不允许此类改变硬件设置 bool m_bLastIsSpecficFormat; //上一曲是否是特殊格式的影片,如果是则应该重新设置vo QMap m_mapWaitSet; //等待mpv初始化后设置的参数 QVector m_vecWaitCommand; //等待mpv初始化后设置的参数 //mpv播放配置 QMap *m_pConfig; //解码模式 DecodeMode m_decodeMode {DecodeMode::AUTO}; }; } #endif /* ifndef _DMR_MPV_PROXY_H */ deepin-movie-reborn-5.15.10/src/common/000077500000000000000000000000001473342170300176145ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/common/actions.cpp000066400000000000000000000530751473342170300217720ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "actions.h" #include "player_engine.h" #include "compositing_manager.h" namespace dmr { static ActionFactory *pActionFactory = nullptr; ActionFactory &ActionFactory::get() { if (pActionFactory == nullptr) { pActionFactory = new ActionFactory(); } return *pActionFactory; } #define DEF_ACTION(NAME, KD) do { \ QPointer pAct = pMenu_p->addAction((NAME)); \ pAct->setProperty("kind", KD); \ m_listContextMenuActions.append(pAct); \ } while (0) #define DEF_ACTION_CHECKED(NAME, KD) do { \ QPointer pAct = pMenu_p->addAction((NAME)); \ pAct->setCheckable(true); \ pAct->setProperty("kind", KD); \ m_listContextMenuActions.append(pAct); \ } while (0) #define DEF_ACTION_CHECKED_NEW(NAME, KD) do { \ QPointer pAct = pMenu->addAction((NAME)); \ pAct->setCheckable(true); \ pAct->setProperty("kind", KD); \ m_listContextMenuActions.append(pAct); \ } while (0) #define DEF_ACTION_GROUP(NAME, KD, GROUP) do { \ QPointer pAct = pMenu->addAction((NAME)); \ pAct->setProperty("kind", KD); \ m_listContextMenuActions.append(pAct); \ } while (0) #define DEF_ACTION_CHECKED_GROUP(NAME, KD, GROUP) do { \ QPointer pAct = pMenu->addAction((NAME)); \ pAct->setCheckable(true); \ pAct->setProperty("kind", KD); \ pAct->setActionGroup(GROUP); \ m_listContextMenuActions.append(pAct); \ } while (0) DMenu *ActionFactory::titlebarMenu() { if (!m_pTitlebarMenu) { DMenu *pMenu_p = new DMenu(); DEF_ACTION(tr("Open file"), ActionKind::OpenFileList); if (!CompositingManager::isPadSystem()) { DEF_ACTION(tr("Open folder"), ActionKind::OpenDirectory); DEF_ACTION(tr("Settings"), ActionKind::Settings); pMenu_p->addSeparator(); // these seems added by titlebar itself //DEF_ACTION("About", ActionKind::About); //DEF_ACTION("Help", ActionKind::Help); //DEF_ACTION("Exit", ActionKind::Exit); } else { m_pTitlebarMenu = pMenu_p; { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Play Mode")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Order Play"), ActionKind::OrderPlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Shuffle Play"), ActionKind::ShufflePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Play"), ActionKind::SinglePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Loop"), ActionKind::SingleLoop, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("List Loop"), ActionKind::ListLoop, pActionGroup); pParent->addMenu(pMenu); } { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Frame")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Default"), ActionKind::DefaultFrame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("4:3"), ActionKind::Ratio4x3Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("16:9"), ActionKind::Ratio16x9Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("16:10"), ActionKind::Ratio16x10Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("1.85:1"), ActionKind::Ratio185x1Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("2.35:1"), ActionKind::Ratio235x1Frame, pActionGroup); pMenu->addSeparator(); DEF_ACTION_GROUP(tr("Clockwise"), ActionKind::ClockwiseFrame, pActionGroup); DEF_ACTION_GROUP(tr("Counterclockwise"), ActionKind::CounterclockwiseFrame, pActionGroup); pMenu->addSeparator(); DEF_ACTION_GROUP(tr("Next Frame"), ActionKind::NextFrame, pActionGroup); DEF_ACTION_GROUP(tr("Previous Frame"), ActionKind::PreviousFrame, pActionGroup); pParent->addMenu(pMenu); pMenu->setEnabled(false); connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Playback Speed")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("0.5x"), ActionKind::ZeroPointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.0x"), ActionKind::OneTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.2x"), ActionKind::OnePointTwoTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.5x"), ActionKind::OnePointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("2.0x"), ActionKind::Double, pActionGroup); pParent->addMenu(pMenu); pMenu->setEnabled(false); connect(this, &ActionFactory::playSpeedMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } } m_pTitlebarMenu = pMenu_p; } return m_pTitlebarMenu; } DMenu *ActionFactory::mainContextMenu() { if(m_pContextMenu) { return m_pContextMenu; } if (CompositingManager::isMpvExists()) { DMenu *pMenu_p = new DMenu(); DEF_ACTION(tr("Open file"), ActionKind::OpenFileList); DEF_ACTION(tr("Open folder"), ActionKind::OpenDirectory); DEF_ACTION(tr("Open URL"), ActionKind::OpenUrl); DEF_ACTION(tr("Open CD/DVD"), ActionKind::OpenCdrom); pMenu_p->addSeparator(); DEF_ACTION_CHECKED(tr("Fullscreen"), ActionKind::ToggleFullscreen); DEF_ACTION_CHECKED(tr("Mini Mode"), ActionKind::ToggleMiniMode); DEF_ACTION_CHECKED(tr("Always on Top"), ActionKind::WindowAbove); pMenu_p->addSeparator(); { DMenu *pParent = pMenu_p; //这里使用代码块和局部变量为了使结构清晰 DMenu *pMenu = new DMenu(tr("Play Mode")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Order Play"), ActionKind::OrderPlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Shuffle Play"), ActionKind::ShufflePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Play"), ActionKind::SinglePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Loop"), ActionKind::SingleLoop, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("List Loop"), ActionKind::ListLoop, pActionGroup); pParent->addMenu(pMenu); } { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Playback Speed")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("0.5x"), ActionKind::ZeroPointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.0x"), ActionKind::OneTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.2x"), ActionKind::OnePointTwoTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.5x"), ActionKind::OnePointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("2.0x"), ActionKind::Double, pActionGroup); pParent->addMenu(pMenu); pMenu->setEnabled(false); connect(this, &ActionFactory::playSpeedMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Frame")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Default"), ActionKind::DefaultFrame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("4:3"), ActionKind::Ratio4x3Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("16:9"), ActionKind::Ratio16x9Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("16:10"), ActionKind::Ratio16x10Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("1.85:1"), ActionKind::Ratio185x1Frame, pActionGroup); DEF_ACTION_CHECKED_GROUP(("2.35:1"), ActionKind::Ratio235x1Frame, pActionGroup); pMenu->addSeparator(); DEF_ACTION_GROUP(tr("Clockwise"), ActionKind::ClockwiseFrame, pActionGroup); DEF_ACTION_GROUP(tr("Counterclockwise"), ActionKind::CounterclockwiseFrame, pActionGroup); pMenu->addSeparator(); DEF_ACTION_GROUP(tr("Next Frame"), ActionKind::NextFrame, pActionGroup); DEF_ACTION_GROUP(tr("Previous Frame"), ActionKind::PreviousFrame, pActionGroup); pParent->addMenu(pMenu); pMenu->setEnabled(false); connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { //sound pMenu DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Sound")); m_pSound = pMenu; { DMenu *pParent_channel = pMenu; DMenu *pMenu = new DMenu(tr("Channel")); m_pSoundMenu = pMenu; QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Stereo"), ActionKind::Stereo, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Left channel"), ActionKind::LeftChannel, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Right channel"), ActionKind::RightChannel, pActionGroup); pParent_channel->addMenu(pMenu); } { DMenu *parent_track = pMenu; DMenu *pMenutemp = new DMenu(tr("Track")); m_pTracksMenu = pMenutemp; //DEF_ACTION(tr("Select Track"), ActionKind::SelectTrack); parent_track->addMenu(pMenutemp); } pParent->addMenu(pMenu); connect(this, &ActionFactory::soundMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { //sub pMenu DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Subtitle")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_GROUP(tr("Load"), ActionKind::LoadSubtitle, pActionGroup); DEF_ACTION_GROUP(tr("Online Search"), ActionKind::MatchOnlineSubtitle, pActionGroup); //DEF_ACTION(tr("Select"), ActionKind::SelectSubtitle); { DMenu *pParent_select = pMenu; DMenu *pMenutemp = new DMenu(tr("Select")); m_pSubtitleMenu = pMenutemp; pParent_select->addMenu(pMenutemp); } DEF_ACTION_CHECKED_NEW(tr("Hide"), ActionKind::HideSubtitle); { DMenu *parent_encoding = pMenu; DMenu *pMenu = new DMenu(tr("Encodings")); QActionGroup *pGroup_encoding = new QActionGroup(pMenu); //title <-> codepage static QVector> list = { {"Auto", "auto"}, {"Universal (UTF-8)", "UTF-8"}, {"Universal (UTF-16)", "UTF-16"}, {"Universal (UTF-16BE)", "UTF-16BE"}, {"Universal (UTF-16LE)", "UTF-16LE"}, {"Arabic (ISO-8859-6)", "ISO-8859-6"}, {"Arabic (WINDOWS-1256)", "WINDOWS-1256"}, {"Baltic (LATIN7)", "LATIN7"}, {"Baltic (WINDOWS-1257)", "WINDOWS-1257"}, {"Celtic (LATIN8)", "LATIN8"}, {"Central European (WINDOWS-1250)", "WINDOWS-1250"}, {"Cyrillic (ISO-8859-5)", "ISO-8859-5"}, {"Cyrillic (WINDOWS-1251)", "WINDOWS-1251"}, {"Eastern European (ISO-8859-2)", "ISO-8859-2"}, {"Western Languages (WINDOWS-1252)", "WINDOWS-1252"}, {"Greek (ISO-8859-7)", "ISO-8859-7"}, {"Greek (WINDOWS-1253)", "WINDOWS-1253"}, {"Hebrew (ISO-8859-8)", "ISO-8859-8"}, {"Hebrew (WINDOWS-1255)", "WINDOWS-1255"}, {"Japanese (SHIFT-JIS)", "SHIFT-JIS"}, {"Japanese (ISO-2022-JP-2)", "ISO-2022-JP-2"}, {"Korean (EUC-KR)", "EUC-KR"}, {"Korean (CP949)", "CP949"}, {"Korean (ISO-2022-KR)", "ISO-2022-KR"}, {"Nordic (LATIN6)", "LATIN6"}, {"North European (LATIN4)", "LATIN4"}, {"Russian (KOI8-R)", "KOI8-R"}, {"Simplified Chinese (GBK)", "GBK"}, {"Simplified Chinese (GB18030)", "GB18030"}, {"Simplified Chinese (ISO-2022-CN-EXT)", "ISO-2022-CN-EXT"}, {"South European (LATIN3)", "LATIN3"}, {"South-Eastern European (LATIN10)", "LATIN10"}, {"Thai (TIS-620)", "TIS-620"}, {"Thai (WINDOWS-874)", "WINDOWS-874"}, {"Traditional Chinese (EUC-TW)", "EUC-TW"}, {"Traditional Chinese (BIG5)", "BIG5"}, {"Traditional Chinese (BIG5-HKSCS)", "BIG5-HKSCS"}, {"Turkish (LATIN5)", "LATIN5"}, {"Turkish (WINDOWS-1254)", "WINDOWS-1254"}, {"Ukrainian (KOI8-U)", "KOI8-U"}, {"Vietnamese (WINDOWS-1258)", "WINDOWS-1258"}, {"Vietnamese (VISCII)", "VISCII"}, {"Western European (LATIN1)", "LATIN1"}, {"Western European (LATIN-9)", "LATIN-9"} }; auto p = list.begin(); while (p != list.end()) { DEF_ACTION_CHECKED_GROUP(p->first, ActionKind::ChangeSubCodepage, pGroup_encoding); QAction *pAct = pMenu->actions().last(); pAct->setProperty("args", QList() << p->second); if (p->second == "auto") pMenu->addSeparator(); p++; } parent_encoding->addMenu(pMenu); } pParent->addMenu(pMenu); connect(this, &ActionFactory::subtitleMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { //sub pMenu DMenu *parent = pMenu_p; DMenu *pMenu = new DMenu(tr("Screenshot")); //cppcheck 误报 QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_GROUP(tr("Film Screenshot"), ActionKind::Screenshot, pActionGroup); DEF_ACTION_GROUP(tr("Burst Shooting"), ActionKind::BurstScreenshot, pActionGroup); DEF_ACTION_GROUP(tr("Open screenshot folder"), ActionKind::GoToScreenshotSolder, pActionGroup); pMenu->setEnabled(false); parent->addMenu(pMenu); connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } pMenu_p->addSeparator(); DEF_ACTION_CHECKED(tr("Playlist"), ActionKind::TogglePlaylist); DEF_ACTION(tr("Film Info"), ActionKind::MovieInfo); DEF_ACTION(tr("Settings"), ActionKind::Settings); m_pContextMenu = pMenu_p; } else { DMenu *pMenu_p = new DMenu(); DEF_ACTION(tr("Open file"), ActionKind::OpenFileList); DEF_ACTION(tr("Open folder"), ActionKind::OpenDirectory); DEF_ACTION(tr("Open URL"), ActionKind::OpenUrl); DEF_ACTION(tr("Open CD/DVD"), ActionKind::OpenCdrom); pMenu_p->addSeparator(); DEF_ACTION_CHECKED(tr("Fullscreen"), ActionKind::ToggleFullscreen); DEF_ACTION_CHECKED(tr("Mini Mode"), ActionKind::ToggleMiniMode); DEF_ACTION_CHECKED(tr("Always on Top"), ActionKind::WindowAbove); pMenu_p->addSeparator(); { DMenu *pParent = pMenu_p; //这里使用代码块和局部变量为了使结构清晰 DMenu *pMenu = new DMenu(tr("Play Mode")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("Order Play"), ActionKind::OrderPlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Shuffle Play"), ActionKind::ShufflePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Play"), ActionKind::SinglePlay, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("Single Loop"), ActionKind::SingleLoop, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("List Loop"), ActionKind::ListLoop, pActionGroup); pParent->addMenu(pMenu); } { DMenu *pParent = pMenu_p; DMenu *pMenu = new DMenu(tr("Playback Speed")); QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_CHECKED_GROUP(tr("0.5x"), ActionKind::ZeroPointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.0x"), ActionKind::OneTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.2x"), ActionKind::OnePointTwoTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("1.5x"), ActionKind::OnePointFiveTimes, pActionGroup); DEF_ACTION_CHECKED_GROUP(tr("2.0x"), ActionKind::Double, pActionGroup); pParent->addMenu(pMenu); pMenu->setEnabled(false); connect(this, &ActionFactory::playSpeedMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } { //sub pMenu DMenu *parent = pMenu_p; DMenu *pMenu = new DMenu(tr("Screenshot")); //cppcheck 误报 QActionGroup *pActionGroup = new QActionGroup(pMenu); DEF_ACTION_GROUP(tr("Film Screenshot"), ActionKind::Screenshot, pActionGroup); DEF_ACTION_GROUP(tr("Open screenshot folder"), ActionKind::GoToScreenshotSolder, pActionGroup); pMenu->setEnabled(false); parent->addMenu(pMenu); connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) { pMenu->setEnabled(statu); }); } pMenu_p->addSeparator(); DEF_ACTION_CHECKED(tr("Playlist"), ActionKind::TogglePlaylist); DEF_ACTION(tr("Film Info"), ActionKind::MovieInfo); DEF_ACTION(tr("Settings"), ActionKind::Settings); m_pContextMenu = pMenu_p; } return m_pContextMenu; } DMenu *ActionFactory::playlistContextMenu() { if (!m_pPlaylistMenu) { DMenu *pMenu_p = new DMenu(); DEF_ACTION(tr("Delete from playlist"), ActionKind::PlaylistRemoveItem); DEF_ACTION(tr("Empty playlist"), ActionKind::EmptyPlaylist); DEF_ACTION(tr("Display in file manager"), ActionKind::PlaylistOpenItemInFM); DEF_ACTION(tr("Film info"), ActionKind::PlaylistItemInfo); m_pPlaylistMenu = pMenu_p; } return m_pPlaylistMenu; } QList ActionFactory::findActionsByKind(ActionKind target_kd) { QList listAction; auto itor = m_listContextMenuActions.begin(); while (itor != m_listContextMenuActions.end()) { #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) auto kd = (ActionKind)(*p)->property("kind").value(); #else auto kd = (*itor)->property("kind").value(); #endif if (kd == target_kd) { listAction.append(*itor); } ++itor; } return listAction; } void ActionFactory::updateMainActionsForMovie(const PlayingMovieInfo &pmf) { qInfo() << __func__; if (m_pSubtitleMenu) { DMenu *pMenu = m_pSubtitleMenu; pMenu->clear(); if (!m_pSubgroup) { m_pSubgroup = new QActionGroup(pMenu); // mem leak ? } for (int i = 0; i < pmf.subs.size(); i++) { DEF_ACTION_CHECKED_GROUP(pmf.subs[i]["title"].toString(), ActionKind::SelectSubtitle, m_pSubgroup); QAction *pAct = pMenu->actions().last(); pAct->setProperty("args", QList() << i); } m_pSubtitleMenu->setEnabled(pmf.subs.size() > 0); } if (m_pSound) { DMenu *pMenu = m_pTracksMenu; pMenu->clear(); if (!m_pAudiosgroup) { m_pAudiosgroup = new QActionGroup(pMenu); // mem leak ? } for (int i = 0; i < pmf.audios.size(); i++) { if (pmf.audios[i]["title"].toString().compare("[internal]") == 0) { DEF_ACTION_CHECKED_GROUP(tr("Track") + QString::number(i + 1), ActionKind::SelectTrack, m_pAudiosgroup); } else { DEF_ACTION_CHECKED_GROUP(pmf.audios[i]["title"].toString(), ActionKind::SelectTrack, m_pAudiosgroup); } QAction *pAct = pMenu->actions().last(); pAct->setProperty("args", QList() << i); } m_pTracksMenu->setEnabled(pmf.audios.size() > 0); m_pSoundMenu->setEnabled(pmf.audios.size() > 0); m_pSound->setEnabled(pmf.audios.size() > 0); } } ActionFactory::ActionFactory() { initMember(); } void ActionFactory::initMember() { m_pTitlebarMenu = nullptr; m_pContextMenu = nullptr; m_pSubtitleMenu = nullptr; m_pTracksMenu = nullptr; m_pSoundMenu = nullptr; m_pPlaylistMenu = nullptr; m_pSound = nullptr; m_pSubgroup = nullptr; m_pAudiosgroup = nullptr; m_listContextMenuActions.clear(); } #undef DEF_ACTION #undef DEF_ACTION_CHECKED } deepin-movie-reborn-5.15.10/src/common/actions.h000066400000000000000000000125001473342170300214230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_ACTIONS_H #define _DMR_ACTIONS_H #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { class PlayingMovieInfo; /** * @file 菜单选项工厂类,统一管理生成菜单 */ class ActionFactory: public QObject { Q_OBJECT signals: /** * @brief 画面操作菜单状态改变信号 */ void frameMenuEnable(bool); /** * @brief 播放速度菜单状态改变信号 */ void playSpeedMenuEnable(bool); /** * @brief 字幕菜单状态改变信号 */ void subtitleMenuEnable(bool); /** * @brief mircastMenuEnable 声音菜单状态改变信号 */ void soundMenuEnable(bool); public: enum ActionKind { Invalid = 0, OpenFile = 1, OpenFileList, OpenDirectory, StartPlay, Settings, About, Help, Exit, TogglePlaylist, EmptyPlaylist, PlaylistRemoveItem, PlaylistOpenItemInFM, PlaylistItemInfo, MovieInfo, OpenUrl, OpenCdrom, ToggleFullscreen, QuitFullscreen, ToggleMiniMode, WindowAbove, LoadSubtitle, SelectSubtitle, // stub for subs loaded from movie HideSubtitle, MatchOnlineSubtitle, ChangeSubCodepage, Screenshot, BurstScreenshot, GoToScreenshotSolder, SeekForward, SeekForwardLarge, SeekBackward, SeekBackwardLarge, SeekAbsolute, TogglePause, Stop, AccelPlayback, DecelPlayback, ResetPlayback, SubDelay, //backward SubForward, //play mode OrderPlay, ShufflePlay, SinglePlay, SingleLoop, ListLoop, //play speed ZeroPointFiveTimes, OneTimes, OnePointTwoTimes, OnePointFiveTimes, Double, //frame DefaultFrame, Ratio4x3Frame, Ratio16x9Frame, Ratio16x10Frame, Ratio185x1Frame, Ratio235x1Frame, ClockwiseFrame, CounterclockwiseFrame, NextFrame, PreviousFrame, //sound Stereo, LeftChannel, RightChannel, LoadTrack, SelectTrack, // stub for tracks loaded from movie GotoPlaylistNext, GotoPlaylistPrev, GotoPlaylistSelected, VolumeUp, VolumeDown, ToggleMute, ChangeVolume, ViewShortcut, Hwdec, }; Q_ENUM(ActionKind) /** * @brief 获取工厂类单例 */ static ActionFactory &get(); /** * @brief 获取菜单栏 * @return 返回菜单指针 */ DMenu *titlebarMenu(); /** * @brief 获取主窗口菜单 * @return 返回菜单指针 */ DMenu *mainContextMenu(); /** * @brief 获取主窗口菜单 * @return 返回菜单指针 */ template void forEachInMainMenu(UnaryFunction f); /** * @brief 获取播放列表菜单 * @return 返回菜单指针 */ DMenu *playlistContextMenu(); /** * @brief 查找菜单中的功能按钮 * @param 功能按钮枚举 * @return 功能按钮指针 */ QList findActionsByKind(ActionKind kd); /** * @brief 根据影片信息更新菜单项 * @param 影片信息结构体 */ void updateMainActionsForMovie(const PlayingMovieInfo &movieInfo); static bool actionHasArgs(QAction *pAction) { return pAction->property("args").isValid(); } static QList actionArgs(QAction *pAction) { return pAction->property("args").toList(); } static ActionKind actionKind(QAction *pAction) { #if QT_VERSION < QT_VERSION_CHECK(5, 6, 2) auto kd = (ActionKind)pAction->property("kind").value(); #else auto kd = pAction->property("kind").value(); #endif return kd; } static bool isActionFromShortcut(QAction *pAction) { QVariant var = pAction->property("origin"); return var.toString() == "shortcut"; } private: ActionFactory(); void initMember(); private: DMenu *m_pTitlebarMenu; ///标题栏菜单 DMenu *m_pContextMenu; ///窗口主菜单 DMenu *m_pSubtitleMenu; ///字幕操作子菜单 DMenu *m_pTracksMenu; ///音轨操作子菜单 DMenu *m_pSoundMenu; ///声道操作子菜单 DMenu *m_pPlaylistMenu; ///播放列表子菜单 DMenu *m_pSound; ///声音操作子菜单 QList> m_listContextMenuActions; ///保存所有菜单项的索引 QActionGroup *m_pSubgroup; ///声道子菜单分组 QActionGroup *m_pAudiosgroup; ///音轨子菜单分组 }; template void ActionFactory::forEachInMainMenu(UnaryFunction f) { auto p = m_listContextMenuActions.begin(); while (p != m_listContextMenuActions.end()) { if(!*p) { m_listContextMenuActions.removeOne(*p); continue; } if (strcmp((*p)->metaObject()->className(), "QAction") == 0) f(*p); ++p; } } } #endif /* ifndef _DMR_ACTIONS_H */ deepin-movie-reborn-5.15.10/src/common/dbus_adpator.cpp000066400000000000000000000065401473342170300227740ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "dbus_adpator.h" #include "utils.h" #include "playlist_widget.h" #include "player_engine.h" #include "playlist_model.h" ApplicationAdaptor::ApplicationAdaptor(MainWindow *pMainWid) : QDBusAbstractAdaptor(pMainWid) { initMember(); m_pMainWindow = pMainWid; } //cppcheck 单元测试 wayland下再用 void ApplicationAdaptor::openFiles(const QStringList &listFiles) { m_pMainWindow->play(listFiles); } //cppcheck 单元测试在用 void ApplicationAdaptor::openFile(const QString &sFile) { if(sFile.startsWith("UOS_AI")) { QString uosAiStr = sFile.mid(6); qInfo() << "sFile: " << sFile << " midd: " << uosAiStr; funOpenFile(uosAiStr); return; } QRegExp url_re("\\w+://"); QUrl url; if (url_re.indexIn(sFile) == 0) { url = QUrl(sFile); } else { url = QUrl::fromLocalFile(sFile); } m_pMainWindow->play({url.toString()}); } void ApplicationAdaptor::funOpenFile(const QString &sFile) { if(m_pMainWindow) { QList lstItem = m_pMainWindow->playlist()->engine()->playlist().items(); for (PlayItemInfo info: lstItem) { if(QFileInfo(info.mi.filePath).fileName().toLower().contains(sFile.toLower())) { qInfo() << "funOpenFile: " << info.mi.filePath; m_pMainWindow->play({QUrl::fromLocalFile(info.mi.filePath).toString()}); break; } } } } void ApplicationAdaptor::Raise() { qInfo() << "raise window from dbus"; m_pMainWindow->showNormal(); m_pMainWindow->raise(); m_pMainWindow->activateWindow(); } void ApplicationAdaptor::initMember() { m_pMainWindow = nullptr; } QVariant ApplicationAdaptor::redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface, const char *pPropert) { // 创建QDBusInterface接口 QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { qInfo() << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } // 调用远程的value方法 QList q = ainterface.dynamicPropertyNames(); QVariant v = ainterface.property(pPropert); return v; } //cppcheck 单元测试在使用 QVariant ApplicationAdaptor::redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod) { // 创建QDBusInterface接口 QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { qInfo() << "error:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } // 调用远程的value方法 QDBusReply reply = ainterface.call(pMethod); if (reply.isValid()) { QVariant v(0) ; return v; } else { qInfo() << "error1:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } } deepin-movie-reborn-5.15.10/src/common/dbus_adpator.h000066400000000000000000000034151473342170300224370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_DBUS_ADAPTOR #define _DMR_DBUS_ADAPTOR #include #include "mainwindow.h" using namespace dmr; /** * @file d-bus适配器,开放影院d-bus接口 */ class ApplicationAdaptor: public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.deepin.movie") public: explicit ApplicationAdaptor(MainWindow *pMainWid); /** * @brief 读取d-bus接口参数值 * @param dbus服务名 * @param dbus路径 * @param dbus接口名 * @param 获取的参数名 * @return 获取参数的值 */ static QVariant redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface = QString(), const char *pPropert = ""); /** * @brief 调用d-bus方法 * @param d-bus服务名 * @param d-bus路径 * @param d-bus接口名 * @param d-bus的方法 * @return 方法的返回值 */ static QVariant redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod); /** * @brief 通过uos-ai服务播放视频 * @param 视频路径集合 */ void funOpenFile(const QString &sFile); public slots: /** * @brief 通过d-bus服务播放视频 * @param 视频路径 */ void openFile(const QString &sFile); /** * @brief 通过d-bus服务播放视频 * @param 视频路径集合 */ void openFiles(const QStringList &listFiles); /** * @brief 调用mainwindow的raise方法 */ void Raise(); private: void initMember(); private: MainWindow *m_pMainWindow; ///主窗口指针 }; #endif /* ifndef _DMR_DBUS_ADAPTOR */ deepin-movie-reborn-5.15.10/src/common/dbusutils.cpp000066400000000000000000000037731473342170300223500ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "dbusutils.h" #include #include #include #include #include #include #include #include static QMutex mutex; DBusUtils::DBusUtils() { } QVariant DBusUtils::redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface, const char *pPropert) { // 创建QDBusInterface接口 mutex.lock(); QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { // qInfo() << qPrintable(QDBusConnection::sessionBus().lastError().message()); //qInfo() << " QDBusInterface ainterface isValid" << path << propert; QVariant v(0) ; mutex.unlock(); return v; } //调用远程的value方法 QVariant v = ainterface.property(pPropert); mutex.unlock(); return v; } QVariant DBusUtils::redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod) { // 创建QDBusInterface接口 QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { //qInfo() << "error:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } //调用远程的value方法 QDBusReply reply = ainterface.call(pMethod); if (reply.isValid()) { // return reply.value(); QVariant v(0) ; return v; } else { //qInfo() << "error1:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } } deepin-movie-reborn-5.15.10/src/common/dbusutils.h000066400000000000000000000017131473342170300220050ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DBUSUTILS_H #define DBUSUTILS_H #include /** * @file dbus接口读取工具 */ class DBusUtils { public: DBusUtils(); /** * @brief 读取d-bus接口参数值 * @param dbus服务名 * @param dbus路径 * @param dbus接口名 * @param 获取的参数名 * @return 获取参数的值 */ static QVariant redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface = QString(), const char *pPropert = ""); /** * @brief 调用d-bus方法 * @param d-bus服务名 * @param d-bus路径 * @param d-bus接口名 * @param d-bus的方法 * @return 方法的返回值 */ static QVariant redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod); }; #endif // DBUSUTILS_H deepin-movie-reborn-5.15.10/src/common/diskcheckthread.cpp000066400000000000000000000042611473342170300234430ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "diskcheckthread.h" #include #include #include #include #include Diskcheckthread::Diskcheckthread() { m_timerDiskCheck.setInterval(2000); connect(&m_timerDiskCheck, &QTimer::timeout, this, &Diskcheckthread::diskChecking); } void Diskcheckthread::start() { m_timerDiskCheck.start(); } void Diskcheckthread::stop() { m_timerDiskCheck.stop(); } void Diskcheckthread::diskChecking() { QFile mountFile("/proc/mounts"); QString strDiskPath; QString strDiskName; bool bOpen = true; QList listDisk = m_mapDisk2Name.values(); if (mountFile.open(QIODevice::ReadOnly) == false) { return; } do { QString sLine = mountFile.readLine(); if (sLine.indexOf("/dev/sr") != -1 || sLine.indexOf("/dev/cdrom") != -1) { strDiskPath = sLine.split(" ").at(0); strDiskName = sLine.split(" ").at(1); int nFd = open(strDiskPath.toLatin1(), O_RDWR | O_NONBLOCK); if (nFd && ioctl(nFd, CDROM_DRIVE_STATUS) == CDS_TRAY_OPEN) { bOpen = false; } if (!m_mapDisk2Name.contains(strDiskPath) && bOpen) { m_mapDisk2Name.insert(sLine.split(" ").at(0), sLine.split(" ").at(1)); } else if (m_mapDisk2Name.contains(strDiskPath) && m_mapDisk2Name.value(strDiskPath) != strDiskName && bOpen) { listDisk.removeOne(m_mapDisk2Name.value(strDiskPath)); m_mapDisk2Name.insert(sLine.split(" ").at(0), sLine.split(" ").at(1)); } else { if (bOpen) { listDisk.removeOne(strDiskName); } else { m_mapDisk2Name.remove(strDiskPath); } } close(nFd); } } while (!mountFile.atEnd()); mountFile.close(); foreach (QString strDiskName, listDisk) { m_mapDisk2Name.clear(); emit diskRemove(strDiskName); } } deepin-movie-reborn-5.15.10/src/common/diskcheckthread.h000066400000000000000000000015611473342170300231100ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DISKCHECKTHREAD_H #define DISKCHECKTHREAD_H #include #include #include /** * @file 光盘监测线程,监测光盘状态 */ class Diskcheckthread: public QObject { Q_OBJECT signals: /** * @file 光盘移除信号 * @param 移除的光盘名 */ void diskRemove(QString sDiskName); public: Diskcheckthread(); /** * @file 启动计时器循环检测线程 */ void start(); /** * @file 停止定时器 */ void stop(); protected slots: void diskChecking(); private: QMap m_mapDisk2Name; //光盘挂载路径和光盘挂载名的映射 QTimer m_timerDiskCheck; //监测定时器 }; #endif // DISKCHECKTHREAD_H deepin-movie-reborn-5.15.10/src/common/dmr_settings.cpp000066400000000000000000000311011473342170300230160ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include "dmr_settings.h" #include "compositing_manager.h" #include "utils.h" #include namespace dmr { using namespace Dtk::Core; Settings *Settings::m_pTheSettings = nullptr; Settings &Settings::get() { if (!m_pTheSettings) { m_pTheSettings = new Settings; } return *m_pTheSettings; } Settings::Settings() : QObject(nullptr) { m_sConfigPath = DStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); m_sConfigPath += "/config.conf"; qInfo() << "configPath" << m_sConfigPath; QSettingBackend *pBackend = new QSettingBackend(m_sConfigPath); if(!CompositingManager::isMpvExists()) { m_pSettings = DSettings::fromJsonFile(":/resources/data/GstSettings.json"); } else { #if !defined (__x86_64__) m_pSettings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json"); #else if (CompositingManager::get().composited()) m_pSettings = DSettings::fromJsonFile(":/resources/data/settings.json"); else m_pSettings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json"); #endif } m_pSettings->setBackend(pBackend); connect(m_pSettings, &DSettings::valueChanged, [ = ](const QString & key, const QVariant & value) { if (key.startsWith("shortcuts.")) emit shortcutsChanged(key, value); else if (key.startsWith("base.play.playmode")) emit defaultplaymodechanged(key, value); else if (key.startsWith("base.decode.select")) { //设置解码模式 emit setDecodeModel(key, value); if (value.toInt() == 3) { auto list = m_pSettings->groups(); auto hwdecFamily = m_pSettings->option("base.decode.Decodemode"); } else { //刷新解码模式 emit refreshDecode(); //崩溃检测 crashCheck(); } } else if (key.startsWith("base.decode.Effect")) { auto effectFamily = m_pSettings->option("base.decode.Effect"); int index = value.toInt(); auto voFamily = m_pSettings->option("base.decode.Videoout"); if (index == 1) { if (voFamily) { voFamily->setData("items", QStringList() << "OpenGL"); } } else if (index == 2) { if (voFamily) voFamily->setData("items", QStringList() << "" << "gpu" << "vaapi" << "vdpau" << "xv" << "x11"); } emit baseChanged(key, value); } else if (key.startsWith("base.decode.Videoout")) { if (value.toInt() < 0) return; auto videoFamily = m_pSettings->option("base.decode.Videoout"); QString vo = videoFamily.data()->data("items").toStringList().at(value.toInt()); if (vo.contains("vaapi")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vaapi" << "vaapi-copy"); } else if (vo.contains("vdpau")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vdpau" << "vdpau-copy"); } else if (vo.contains("xv") || vo.contains("x11")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vdpau" << "vdpau-copy"); } else { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vaapi" << "vaapi-copy" << "vdpau" << "vdpau-copy" << "nvdec" << "nvdec-copy" << "rkmpp"); } emit baseChanged(key, value); } else if (key.startsWith("base.play.hwaccel")) emit hwaccelModeChanged(key, value); else if (key.startsWith("base.play.mute")) emit baseMuteChanged(key, value); else if (key.startsWith("base.")) emit baseChanged(key, value); else if (key.startsWith("subtitle.")) emit subtitleChanged(key, value); }); qInfo() << "keys" << m_pSettings->keys(); QStringList playmodeDatabase; playmodeDatabase << tr("Order play") << tr("Shuffle play") << tr("Single play") << tr("Single loop") << tr("List loop"); auto playmodeFamily = m_pSettings->option("base.play.playmode"); if (playmodeFamily) playmodeFamily->setData("items", playmodeDatabase); QStringList hwaccelDatabase; hwaccelDatabase << tr("Auto") << tr("Open") << tr("Close"); auto hwaccelFamily = m_pSettings->option("base.play.hwaccel"); if (hwaccelFamily) hwaccelFamily->setData("items", hwaccelDatabase); QFontDatabase fontDatabase; QPointer fontFamliy = m_pSettings->option("subtitle.font.family"); if(fontFamliy) { fontFamliy->setData("items", fontDatabase.families()); } QFileInfo fi("/dev/mwv206_0"); //景嘉微显卡默认不勾选预览 QFileInfo jmfi("/dev/jmgpu"); if ((fi.exists() || jmfi.exists()) && utils::check_wayland_env()) { setInternalOption("mousepreview", false); } if (utils::check_wayland_env()) { auto voFamily = m_pSettings->option("base.decode.Videoout"); if (voFamily) voFamily->setData("items", QStringList() << "OpenGL"); auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vaapi" << "vaapi-copy" << "vdpau" << "vdpau-copy" << "nvdec" << "nvdec-copy" << "rkmpp"); } else { QStringList hwdecList, voList; hwdecList << "vaapi" << "vaapi-copy" << "vdpau" << "vdpau-copy" << "nvdec" << "nvdec-copy" << "rkmpp"; voList << "gpu" << "vaapi" << "vdpau" << "xv" << "x11"; int effectIndex = m_pSettings->getOption("base.decode.Effect").toInt(); auto hwdecFamily = m_pSettings->option("base.decode.Decodemode"); if (effectIndex == 1) { auto voFamily = m_pSettings->option("base.decode.Videoout"); if (voFamily) voFamily->setData("items", QStringList() << "OpenGL"); if (hwdecFamily) hwdecFamily->setData("items", hwdecList); } else { auto voFamily = m_pSettings->option("base.decode.Videoout"); if (voFamily) voFamily->setData("items", QStringList() << "" << "gpu" << "vaapi" << "vdpau" << "xv" << "x11"); int voValue = m_pSettings->getOption("base.decode.Videoout").toInt(); if (voValue != 0) { auto videoFamily = m_pSettings->option("base.decode.Videoout"); QString vo = videoFamily.data()->data("items").toStringList().at(voValue); if (vo.contains("vaapi")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vaapi" << "vaapi-copy"); } else if (vo.contains("vdpau")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vdpau" << "vdpau-copy"); } else if (vo.contains("xv") || vo.contains("x11")) { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vdpau" << "vdpau-copy"); } else { auto decodeFamily = m_pSettings->option("base.decode.Decodemode"); if (decodeFamily) decodeFamily->setData("items", QStringList() << "vaapi" << "vaapi-copy" << "vdpau" << "vdpau-copy" << "nvdec" << "nvdec-copy" << "rkmpp"); } } } } } QString Settings::flag2key(Settings::Flag f) { switch (f) { case Settings::Flag::ClearWhenQuit: return "emptylist"; #ifndef __aarch64__ case Settings::Flag::ShowThumbnailMode: return "showInthumbnailmode"; #endif case Settings::Flag::ResumeFromLast: return "resumelast"; case Settings::Flag::AutoSearchSimilar: return "addsimilar"; case Settings::Flag::PreviewOnMouseover: return "mousepreview"; case Settings::Flag::MultipleInstance: return "multiinstance"; case Settings::Flag::PauseOnMinimize: return "pauseonmin"; } return ""; } bool Settings::isSet(Flag flag) const { bool bRet = false; QList > listSubGroups = m_pSettings->group("base")->childGroups(); QList >::iterator itor = std::find_if(listSubGroups.begin(), listSubGroups.end(), [ = ](GroupPtr grp) { return grp->key() == "base.play"; }); if (itor != listSubGroups.end()) { QList > sub = (*itor)->childOptions(); QString sKey = flag2key(flag); QList >::iterator p = std::find_if(sub.begin(), sub.end(), [ = ](OptionPtr opt) { QString sOptKey = opt->key(); sOptKey.remove(0, sOptKey.lastIndexOf('.') + 1); return sOptKey == sKey; }); bRet = (p != sub.end() && (*p)->value().toBool()); } return bRet; } QStringList Settings::commonPlayableProtocols() const { //from mpv and combined with stream media protocols return { "http", "https", "bd", "ytdl", "smb", "dvd", "dvdread", "tv", "pvr", "dvb", "cdda", "lavf", "av", "avdevice", "fd", "fdclose", "edl", "mf", "null", "memory", "hex", "rtmp", "rtsp", "hls", "mms", "rtp", "rtcp" }; } bool Settings::iscommonPlayableProtocol(const QString &sScheme) const { // for (auto pro : commonPlayableProtocols()) { // if (pro == sScheme) // return true; // } // return false; QStringList list = commonPlayableProtocols(); bool result = std::any_of(list.begin(), list.end(), [&](QString & _pro) { return _pro == sScheme; }); return result; } QString Settings::screenshotLocation() { QString sSavePath = settings()->value("base.screenshot.location").toString(); if (sSavePath.size() && sSavePath[0] == '~') { sSavePath.replace(0, 1, QDir::homePath()); } if (!QFileInfo(sSavePath).exists()) { QDir dir; dir.mkpath(sSavePath); } return sSavePath; } QString Settings::screenshotNameTemplate() { QString strMovie = QObject::tr("Movie"); QString path = screenshotLocation() + QDir::separator() + strMovie + QDateTime::currentDateTime().toString("yyyyMMddhhmmss") + QString(".jpg"); return path; } //cppcheck 单元测试使用 QString Settings::screenshotNameSeqTemplate() { return tr("%1/Movie%2(%3).jpg").arg(screenshotLocation()) .arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss")); } void Settings::onSetCrash() { settings()->setOption(QString("set.start.crash"), 0); settings()->sync(); } void Settings::setGeneralOption(const QString &sOpt, const QVariant &var) { settings()->setOption(QString("base.general.%1").arg(sOpt), var); settings()->sync(); } void Settings::crashCheck() { //重置崩溃检测状态位 settings()->setOption(QString("set.start.crash"), 1); settings()->sync(); } QVariant Settings::generalOption(const QString &sOpt) { return settings()->getOption(QString("base.general.%1").arg(sOpt)); } QVariant Settings::internalOption(const QString &sOpt) { return settings()->getOption(QString("base.play.%1").arg(sOpt)); } void Settings::setInternalOption(const QString &sOpt, const QVariant &var) { settings()->setOption(QString("base.play.%1").arg(sOpt), var); settings()->sync(); } QString Settings::forcedInterop() { return internalOption("forced_interop").toString(); } bool Settings::disableInterop() { return internalOption("disable_interop").toBool(); } } deepin-movie-reborn-5.15.10/src/common/dmr_settings.h000066400000000000000000000131741473342170300224750ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_SETTINGS_H #define _DMR_SETTINGS_H #include #include #include #include #include namespace dmr { using namespace Dtk::Core; /** * @file 配置文件管理类,封装读取和保存配置文件等操作 */ class Settings: public QObject { Q_OBJECT signals: /** * @brief shortcuts配置值变化后发送的信号 * @param 某一功能 * @param 快捷键 */ void shortcutsChanged(const QString &, const QVariant &); /** * @brief base配置值变化后发送的信号 * @param base下的某一配置 * @param 配置的值 */ void baseChanged(const QString &, const QVariant &); /** * @brief subtitle配置值变化后发送的信号 * @param subtitle下的某一配置 * @param 配置的值 */ void subtitleChanged(const QString &, const QVariant &); /** * @brief base.play.playmode配置值变化后发送的信号 * @param base.play.playmode下的某一配置 * @param 配置的值 */ void defaultplaymodechanged(const QString &, const QVariant &); /** * @brief base.decode.select 配置值变化后发送的信号 * @param base.decode.select 下的某一配置 * @param 配置的值 */ void setDecodeModel(const QString &, const QVariant &); /** * @brief 刷新解码方式 */ void refreshDecode(); /** * @brief base.play.mute配置值变化后发送的信号 * @param base.play.mute下的某一配置 * @param 配置的值 */ void baseMuteChanged(const QString &, const QVariant &); /** * @brief base.play.hwaccel配置值变化后发送的信号 * @param base.play.hwaccel下的某一配置 * @param 配置的值 */ void hwaccelModeChanged(const QString &, const QVariant &); public: enum Flag { ClearWhenQuit, ShowThumbnailMode, ResumeFromLast, AutoSearchSimilar, PreviewOnMouseover, MultipleInstance, PauseOnMinimize, }; /** * @brief 获取类单列对象 */ static Settings &get(); /** * @brief 获取类单列对象 * @param 返回配置文件路径 */ QString configPath() const { return m_sConfigPath; } /** * @brief 获取DSetting指针 * @param DSetting指针 */ QPointer settings() { return m_pSettings; } /** * @brief 返回对应sname的分组配置 * @param DSettingsGroup类指针 */ QPointer group(const QString &sName) { return settings()->group(sName); } /** * @brief 返回对应shortcuts的分组配置 * @param DSettingsGroup类指针 */ QPointer shortcuts() { return group("shortcuts"); } /** * @brief 返回对应base的分组配置 * @param DSettingsGroup类指针 */ QPointer base() { return group("base"); } /** * @brief 返回对应subtitle的分组配置 * @param DSettingsGroup类指针 */ QPointer subtitle() { return group("subtitle"); } /** * @brief 设置base.general分组下的配置值 * @param 配置项名 * @param 配置值 */ void setGeneralOption(const QString &sOpt, const QVariant &var); /** * @brief 返回base.general的配置值 * @param 配置项名 * @return 配置值 */ QVariant generalOption(const QString &sOpt); /** * @brief 设置base.play分组下的配置值 * @param 配置项名 * @param 配置值 */ void setInternalOption(const QString &sOpt, const QVariant &var); /** * @brief 返回base.play的配置值 * @param 配置项名 * @return 配置值 */ QVariant internalOption(const QString &sOpt); // user override for mpv opengl interop /** * @brief 返回forced_interop的配置值 * @return 配置值 */ QString forcedInterop(); // disable interop at all /** * @brief 返回disable_interop的配置值 * @return 配置值 */ bool disableInterop(); // convient helpers /** * @brief 返回Flag枚举中某一配置的值(bool) * @return 配置的值 */ bool isSet(Flag f) const; /** * @brief 返回影院支持的协议 * @return 播发协议集合 */ QStringList commonPlayableProtocols() const; /** * @brief 判断影院是否支持改协议 * @param 协议 * @return 是否支持 */ bool iscommonPlayableProtocol(const QString &sScheme) const; /** * @brief 返回截图路径 * @return 截图路径 */ QString screenshotLocation(); /** * @brief 返回截图路径 * @return 截图路径 */ QString screenshotNameTemplate(); /** * @brief 生成连拍截图文件名 * @return 截图文件名 */ QString screenshotNameSeqTemplate(); /** * @brief 获取键值 * @return 键值 */ static QString flag2key(Settings::Flag f); public slots: /** * @brief 崩溃检测 */ void crashCheck(); /** * @brief 设置崩溃状态 */ void onSetCrash(); private: Settings(); QPointer m_pSettings; ///DSetting指针 QString m_sConfigPath; ///配置文件路径 static Settings *m_pTheSettings; ///单例唯一实例 }; } #endif /* ifndef _DMR_SETTINGS_H */ deepin-movie-reborn-5.15.10/src/common/event_monitor.cpp000066400000000000000000000071751473342170300232220ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #undef Bool #include #include "event_monitor.h" #define Bool int #include #include #include #undef Bool //cppcheck 修改 void callback(XPointer ptr, XRecordInterceptData *pData) { (reinterpret_cast(ptr))->handleRecordEvent(pData); } namespace dmr { EventMonitor::EventMonitor(QObject *parent) : QThread(parent) { m_bIsPress = false; } //cppcheck 误报 void EventMonitor::run() { Display *display = XOpenDisplay(nullptr); if (display == nullptr) { fprintf(stderr, "unable to open display\n"); return; } // Receive from ALL clients, including future clients. //XRecordClientSpec clients = XRecordAllClients; XRecordClientSpec clients = XRecordCurrentClients; XRecordRange *pRange = XRecordAllocRange(); if (pRange == nullptr) { fprintf(stderr, "unable to allocate XRecordRange\n"); return; } memset(pRange, 0, sizeof(XRecordRange)); pRange->device_events.first = ButtonPress; pRange->device_events.last = MotionNotify; // And create the XRECORD context. XRecordContext context = XRecordCreateContext(display, 0, &clients, 1, &pRange, 1); if (context == 0) { fprintf(stderr, "XRecordCreateContext failed\n"); return; } XFree(pRange); XSync(display, True); Display *display_datalink = XOpenDisplay(nullptr); if (display_datalink == nullptr) { fprintf(stderr, "unable to open second display\n"); return; } if (!XRecordEnableContext(display_datalink, context, callback, (XPointer) this)) { fprintf(stderr, "XRecordEnableContext() failed\n"); return; } } void EventMonitor::handleRecordEvent(void *pValue) { XRecordInterceptData *pData = (XRecordInterceptData *)pValue; if (!m_recording) { XRecordFreeData(pData); return; } if (pData->category == XRecordFromServer) { xEvent *event = (xEvent *)pData->data; switch (event->u.u.type) { case ButtonPress: if (event->u.u.detail != WheelUp && event->u.u.detail != WheelDown && event->u.u.detail != WheelLeft && event->u.u.detail != WheelRight) { m_bIsPress = true; emit buttonedPress(event->u.keyButtonPointer.rootX, event->u.keyButtonPointer.rootY); } break; case MotionNotify: if (m_bIsPress) { emit buttonedDrag(event->u.keyButtonPointer.rootX, event->u.keyButtonPointer.rootY); } break; case ButtonRelease: if (event->u.u.detail != WheelUp && event->u.u.detail != WheelDown && event->u.u.detail != WheelLeft && event->u.u.detail != WheelRight) { m_bIsPress = false; emit buttonedRelease(event->u.keyButtonPointer.rootX, event->u.keyButtonPointer.rootY); } break; default: break; } } XRecordFreeData(pData); } void EventMonitor::resumeRecording() { if (!m_recording) { m_recording = 1; } } void EventMonitor::suspendRecording() { if (m_recording) { if (m_bIsPress) { m_bIsPress = false; QPoint pos = QCursor::pos(); emit buttonedRelease(pos.x(), pos.y()); } m_recording = 0; } } } deepin-movie-reborn-5.15.10/src/common/event_monitor.h000066400000000000000000000030731473342170300226600ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef EVENTMONITOR_H #define EVENTMONITOR_H #include namespace dmr { // Virtual button codes that are not defined by X11. #define Button1 1 #define Button2 2 #define Button3 3 #define WheelUp 4 #define WheelDown 5 #define WheelLeft 6 #define WheelRight 7 #define XButton1 8 #define XButton2 9 /** * @file x11事件过滤器线程 */ class EventMonitor : public QThread { Q_OBJECT public: explicit EventMonitor(QObject *parent = nullptr); /** * @brief 事件处理函数,处理点击事件 */ void handleRecordEvent(void *); /** * @brief 应用进入激活状态 */ void resumeRecording(); /** * @brief 应用失去选中状态 */ void suspendRecording(); signals: /** * @brief 鼠标按下信号 * @param 按下的横坐标 * @param 纵坐标 */ void buttonedPress(int nPosX, int nPosY); /** * @brief 鼠标拖动信号 * @param 拖动的横坐标 * @param 纵坐标 */ void buttonedDrag(int nPosX, int nPosY); /** * @brief 鼠标释放信号 * @param 按下的横坐标 * @param 纵坐标 */ void buttonedRelease(int nPosX, int nPosY); //cppcheck 误报 protected: void run(); private: bool m_bIsPress; ///记录鼠标是否按下标志位 QAtomicInt m_recording {1}; ///记录应用是否是激活状态 }; } #endif deepin-movie-reborn-5.15.10/src/common/hwdec_probe.cpp000066400000000000000000000152151473342170300226050ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "hwdec_probe.h" #include "sysutils.h" namespace dmr { HwdecProbe HwdecProbe::m_ffmpegProbe; HwdecProbe::HwdecProbe():m_hwDeviceCtx(nullptr) { // m_ffmpegProbe.initffmpegInterface(); // m_ffmpegProbe.getHwTypes(); } HwdecProbe& HwdecProbe::get() { return m_ffmpegProbe; } bool HwdecProbe::isFileCanHwdec(const QUrl& url, QList& hwList) { hwList.clear(); AVFormatContext *input_ctx = nullptr; int ret = 0; // open the input file if (m_avformatOpenInput(&input_ctx, url.toString().toStdString().c_str(), nullptr, nullptr) != 0) {// Cannot open input file return false; } if (m_avformatFindStreamInfo(input_ctx, nullptr) < 0) { // Cannot find input stream information m_avformatCloseInput(&input_ctx); return false; } for (AVHWDeviceType type : m_hwTypeList) { for (size_t i = 0; i < input_ctx->nb_streams; i++) { AVStream *stream = input_ctx->streams[i]; AVCodec *dec = m_avcodecFindDecoder(stream->codecpar->codec_id); RESULT_CONTINUE((nullptr == dec)) RESULT_CONTINUE(!isTypeHaveHwdec(dec, type)) AVCodecContext *codec_ctx = nullptr; codec_ctx = m_avcodecAllocContext3(dec); RESULT_CONTINUE((nullptr == codec_ctx)) // Failed to allocate the decoder context for stream ret = m_avcodecParametersToContext(codec_ctx, stream->codecpar); RESULT_CONTINUE((ret < 0)) // Failed to copy decoder parameters to input decoder context for stream ret = hwDecoderInit(codec_ctx, type); RESULT_CONTINUE((ret < 0)) if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) { // Open decoder. we think it can decodec when oepn decoder success ret = m_avcodecOpen2(codec_ctx, dec, nullptr); RESULT_CONTINUE((ret < 0)) hwList.push_back(m_avHwdeviceGetTypeName(type)); m_avcodecClose(codec_ctx); } m_avcodecFreeContext(&codec_ctx); } } free(input_ctx->streams); input_ctx->streams = nullptr; input_ctx->nb_streams = 0; m_avformatCloseInput(&input_ctx); if(nullptr != m_hwDeviceCtx) m_avBufferUnref(&m_hwDeviceCtx); return hwList.size() > 0; } void HwdecProbe::initffmpegInterface() { QLibrary avcodecLibrary(SysUtils::libPath("libavcodec.so")); QLibrary avformatLibrary(SysUtils::libPath("libavformat.so")); QLibrary avutilLibrary(SysUtils::libPath("libavutil.so")); m_avHwdeviceCtxCreate = reinterpret_cast(avutilLibrary.resolve("av_hwdevice_ctx_create")); m_avHwdeviceIterateTypes = reinterpret_cast(avutilLibrary.resolve("av_hwdevice_iterate_types")); m_avHwdeviceGetTypeName = reinterpret_cast(avutilLibrary.resolve("av_hwdevice_get_type_name")); m_avformatOpenInput = reinterpret_cast(avformatLibrary.resolve("avformat_open_input")); m_avformatFindStreamInfo = reinterpret_cast(avformatLibrary.resolve("avformat_find_stream_info")); m_avcodecFindDecoder = reinterpret_cast(avcodecLibrary.resolve("avcodec_find_decoder")); m_avParserInit = reinterpret_cast(avcodecLibrary.resolve("av_parser_init")); m_avcodecGetHwConfig = reinterpret_cast(avcodecLibrary.resolve("avcodec_get_hw_config")); m_avcodecAllocContext3 = reinterpret_cast(avcodecLibrary.resolve("avcodec_alloc_context3")); m_avcodecParametersToContext = reinterpret_cast(avcodecLibrary.resolve("avcodec_parameters_to_context")); m_avformatCloseInput = reinterpret_cast(avformatLibrary.resolve("avformat_close_input")); m_avcodecOpen2 = reinterpret_cast(avcodecLibrary.resolve("avcodec_open2")); m_avReadFrame = reinterpret_cast(avformatLibrary.resolve("av_read_frame")); m_avFrameAlloc = reinterpret_cast(avutilLibrary.resolve("av_frame_alloc")); m_avcodecSendPacket = reinterpret_cast(avcodecLibrary.resolve("avcodec_send_packet")); m_avHwframeTransferData = reinterpret_cast(avutilLibrary.resolve("av_hwframe_transfer_data")); m_avImageGetBufferSize = reinterpret_cast(avutilLibrary.resolve("av_image_get_buffer_size")); m_avFrameFree = reinterpret_cast(avutilLibrary.resolve("av_frame_free")); m_avImageCopyToBuffer = reinterpret_cast(avutilLibrary.resolve("av_image_copy_to_buffer")); m_avcodecReceiveFrame = reinterpret_cast(avcodecLibrary.resolve("avcodec_receive_frame")); m_avBufferRef = reinterpret_cast(avutilLibrary.resolve("av_buffer_ref")); m_avMalloc = reinterpret_cast(avutilLibrary.resolve("av_malloc")); m_avcodecFreeContext = reinterpret_cast(avcodecLibrary.resolve("avcodec_free_context")); m_avcodecClose = reinterpret_cast(avcodecLibrary.resolve("avcodec_close")); m_avBufferUnref = reinterpret_cast(avutilLibrary.resolve("av_buffer_unref")); } void HwdecProbe::getHwTypes() { m_hwTypeList.clear(); AVHWDeviceType type = AV_HWDEVICE_TYPE_NONE; // find hwdevies while ((type = m_avHwdeviceIterateTypes(type)) != AV_HWDEVICE_TYPE_NONE) { m_hwTypeList.append(type); } } int HwdecProbe::hwDecoderInit(AVCodecContext *ctx, const int type) { int err = 0; if(nullptr != m_hwDeviceCtx) m_avBufferUnref(&m_hwDeviceCtx); if ((err = m_avHwdeviceCtxCreate(&m_hwDeviceCtx, static_cast(type), nullptr, nullptr, 0)) < 0) { fprintf(stderr, "Failed to create specified HW device.\n"); return err; } ctx->hw_device_ctx = m_avBufferRef(m_hwDeviceCtx); return err; } bool HwdecProbe::isTypeHaveHwdec(const AVCodec *pDec, AVHWDeviceType type) { bool rs = true; //is have tmpType hwdec config for (int j = 0;; j++) { const AVCodecHWConfig *config = m_avcodecGetHwConfig(pDec, j); if (nullptr == config) { rs = false; break; } if (config->methods & AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX && config->device_type == type) { break; } } return rs; } } deepin-movie-reborn-5.15.10/src/common/hwdec_probe.h000066400000000000000000000153161473342170300222540ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_FFMPEG_PROBE #define _DMR_FFMPEG_PROBE extern "C" { #include #include #include } #include #define RESULT_CONTINUE(n) {if(n) continue;} namespace dmr { typedef int (*ffmAvHwdeviceCtxCreate)(AVBufferRef **device_ctx, enum AVHWDeviceType type, const char *device, AVDictionary *opts, int flags); typedef enum AVHWDeviceType (*ffmAvHwdeviceIterateTypes)(enum AVHWDeviceType prev); typedef const char* (*ffmAvHwdeviceGetTypeName)(enum AVHWDeviceType type); typedef int (*ffmAvformatOpenInput)(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); typedef int (*ffmAvformatFindStreamInfo)(AVFormatContext *ic, AVDictionary **options); typedef AVCodec * (*ffmAvcodecFindDecoder)(enum AVCodecID id); typedef AVCodecParserContext *(*ffmAvParserInit)(int codec_id); typedef const AVCodecHWConfig *(*ffmAvcodecGetHwConfig)(const AVCodec *codec, int index); typedef AVCodecContext *(*ffmAvcodecAllocContext3)(const AVCodec *codec); typedef int (*ffmAvcodecParametersToContext)(AVCodecContext *codec, const AVCodecParameters *par); typedef void (*ffmAvformatCloseInput)(AVFormatContext **s); typedef int (*ffmAvcodecOpen2)(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); typedef int (*ffmAvReadFrame)(AVFormatContext *s, AVPacket *pkt); typedef AVFrame *(*ffmAvFrameAlloc)(void); typedef int (*ffmAvcodecSendPacket)(AVCodecContext *avctx, const AVPacket *avpkt); typedef int (*ffmAvHwframeTransferData)(AVFrame *dst, const AVFrame *src, int flags); typedef int (*ffmAvImageGetBufferSize)(enum AVPixelFormat pix_fmt, int width, int height, int align); typedef void (*ffmAvFrameFree)(AVFrame **frame); typedef int (*ffmAvImageCopyToBuffer)(uint8_t *dst, int dst_size, const uint8_t * const src_data[4], const int src_linesize[4], enum AVPixelFormat pix_fmt, int width, int height, int align); typedef int (*ffmAvcodecReceiveFrame)(AVCodecContext *avctx, AVFrame *frame); typedef AVBufferRef *(*ffmAvBufferRef)(AVBufferRef *buf); typedef void *(*ffmAvMalloc)(size_t size); typedef void (*ffmAvcodecFreeContext)(AVCodecContext **avctx); typedef int (*ffmAvcodecClose)(AVCodecContext *avctx); typedef void (*ffmAvBufferUnref)(AVBufferRef **buf); /** * @file 用于硬解探测的单例类 */ class HwdecProbe { public: /** * @brief 获取对象指针 * @return 对象指针 */ static HwdecProbe& get(); /** * @brief 判断文件是否可以用硬解播放 * @param url 文件路径 * @param out hwList 可以使用的硬解名字List * @return 是返回true,否则返回false */ bool isFileCanHwdec(const QUrl& url, QList& hwList); private: HwdecProbe(); /** * @brief 初始化接口 */ void initffmpegInterface(); /** * @brief 初始化硬解 * @param ctx 解码器上下文 * @param type 解码类型 * @return 成功0 失败小于0 */ int hwDecoderInit(AVCodecContext *ctx, int type); /** * @brief 获取硬解的所有类型 */ void getHwTypes(); /** * @brief 解码器是否是某种类型的硬解码 * @param pDec 解码器 * @param type 解码类型 * @return 是true 否false */ bool isTypeHaveHwdec(const AVCodec *pDec, AVHWDeviceType type); private: //单例指针 static HwdecProbe m_ffmpegProbe; //硬解设备上下文 AVBufferRef *m_hwDeviceCtx; //所有硬解类型 QList m_hwTypeList; // av_hwdevice_ctx_create 函数指针 ffmAvHwdeviceCtxCreate m_avHwdeviceCtxCreate; // av_hwdevice_iterate_types 函数指针 ffmAvHwdeviceIterateTypes m_avHwdeviceIterateTypes; //av_hwdevice_get_type_name 函数指针 ffmAvHwdeviceGetTypeName m_avHwdeviceGetTypeName; // avformat_open_input 函数指针 ffmAvformatOpenInput m_avformatOpenInput; // avformat_find_stream_info 函数指针 ffmAvformatFindStreamInfo m_avformatFindStreamInfo; // avcodec_find_decoder 函数指针 ffmAvcodecFindDecoder m_avcodecFindDecoder; // av_parser_init 函数指针 ffmAvParserInit m_avParserInit; // avcodec_get_hw_config 函数指针 ffmAvcodecGetHwConfig m_avcodecGetHwConfig; // avcodec_alloc_context3 函数指针 ffmAvcodecAllocContext3 m_avcodecAllocContext3; // avcodec_parameters_to_context 函数指针 ffmAvcodecParametersToContext m_avcodecParametersToContext; // avformat_close_input 函数指针 ffmAvformatCloseInput m_avformatCloseInput; // avcodec_open2 函数指针 ffmAvcodecOpen2 m_avcodecOpen2; // av_read_frame 函数指针 ffmAvReadFrame m_avReadFrame; // av_frame_alloc 函数指针 ffmAvFrameAlloc m_avFrameAlloc; // avcodec_send_packet 函数指针 ffmAvcodecSendPacket m_avcodecSendPacket; // av_hwframe_transfer_data 函数指针 ffmAvHwframeTransferData m_avHwframeTransferData; // av_image_get_buffer_size; 函数指针 ffmAvImageGetBufferSize m_avImageGetBufferSize; // av_frame_free 函数指针 ffmAvFrameFree m_avFrameFree; // av_image_copy_to_buffer 函数指针 ffmAvImageCopyToBuffer m_avImageCopyToBuffer; // m_avcodec_receive_frame; 函数指针 ffmAvcodecReceiveFrame m_avcodecReceiveFrame; // v_buffer_ref 函数指针 ffmAvBufferRef m_avBufferRef; // av_malloc 函数指针 ffmAvMalloc m_avMalloc; // avcodec_free_context 函数指针 ffmAvcodecFreeContext m_avcodecFreeContext; // avcodec_close 函数指针 ffmAvcodecClose m_avcodecClose; // av_buffer_unref 函数指针 ffmAvBufferUnref m_avBufferUnref; }; } #endif deepin-movie-reborn-5.15.10/src/common/mainwindow.cpp000066400000000000000000005644641473342170300225170ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "mainwindow.h" #include "toolbox_proxy.h" #include "actions.h" #include "event_monitor.h" #include "shortcut_manager.h" #include "dmr_settings.h" #include "movieinfo_dialog.h" #include "burst_screenshots_dialog.h" #include "playlist_widget.h" #include "notification_widget.h" #include "player_engine.h" #include "url_dialog.h" #include "movie_progress_indicator.h" #include "options.h" #include "titlebar.h" #include "utils.h" #include "dvd_utils.h" #include "dbus_adpator.h" #include "threadpool.h" #include "vendor/movieapp.h" #include "vendor/presenter.h" #include "filefilter.h" #include "eventlogutils.h" //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef DTKCORE_CLASS_DConfigFile #include #endif #include #include #include #include #include #include "moviewidget.h" #include #include #include "../accessibility/ac-deepin-movie-define.h" #define XCB_Platform //to distinguish xcb or wayland #ifdef XCB_Platform #include "utility.h" #endif //add by heyi //#define _NET_WM_MOVERESIZE_MOVE 8 /* movement only */ //#define _NET_WM_MOVERESIZE_CANCEL 11 /* cancel operation */ #define XATOM_MOVE_RESIZE "_NET_WM_MOVERESIZE" #define XDEEPIN_BLUR_REGION "_NET_WM_DEEPIN_BLUR_REGION" #define XDEEPIN_BLUR_REGION_ROUNDED "_NET_WM_DEEPIN_BLUR_REGION_ROUNDED" #define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ #define _NET_WM_STATE_ADD 1 /* add/set property */ #define _NET_WM_STATE_TOGGLE 2 /* toggle property */ const char kAtomNameHidden[] = "_NET_WM_STATE_HIDDEN"; const char kAtomNameFullscreen[] = "_NET_WM_STATE_FULLSCREEN"; const char kAtomNameMaximizedHorz[] = "_NET_WM_STATE_MAXIMIZED_HORZ"; const char kAtomNameMaximizedVert[] = "_NET_WM_STATE_MAXIMIZED_VERT"; const char kAtomNameMoveResize[] = "_NET_WM_MOVERESIZE"; const char kAtomNameWmState[] = "_NET_WM_STATE"; const char kAtomNameWmStateAbove[] = "_NET_WM_STATE_ABOVE"; const char kAtomNameWmStateStaysOnTop[] = "_NET_WM_STATE_STAYS_ON_TOP"; const char kAtomNameWmSkipTaskbar[] = "_NET_WM_STATE_SKIP_TASKBAR"; const char kAtomNameWmSkipPager[] = "_NET_WM_STATE_SKIP_PAGER"; #define AUTOHIDE_TIMEOUT 2000 #define AUTOHIDE_TIME_PAD 5000 //time of the toolbox auto hide #include DWIDGET_USE_NAMESPACE using namespace dmr; #define MOUSE_MARGINS 6 int MainWindow::m_nRetryTimes = 0; static void workaround_updateStyle(QWidget *pParent, const QString &sTheme) { pParent->setStyle(QStyleFactory::create(sTheme)); for (auto obj : pParent->children()) { QWidget *pWidget = qobject_cast(obj); if (pWidget) { workaround_updateStyle(pWidget, sTheme); } } } static QString ElideText(const QString &sText, const QSize &size, QTextOption::WrapMode wordWrap, const QFont &font, Qt::TextElideMode mode, int nLineHeight, int nLastLineWidth) { int nHeight = 0; QTextLayout textLayout(sText); QString sElideText = nullptr; QFontMetrics fontMetrics(font); textLayout.setFont(font); const_cast(&textLayout.textOption())->setWrapMode(wordWrap); textLayout.beginLayout(); QTextLine line = textLayout.createLine(); while (line.isValid()) { nHeight += nLineHeight; if (nHeight + nLineHeight >= size.height()) { sElideText += fontMetrics.elidedText(sText.mid(line.textStart() + line.textLength() + 1), mode, nLastLineWidth); break; } line.setLineWidth(size.width()); const QString &sTmpText = sText.mid(line.textStart(), line.textLength()); if (sTmpText.indexOf('\n')) nHeight += nLineHeight; sElideText += sTmpText; line = textLayout.createLine(); if (line.isValid()) sElideText.append("\n"); } textLayout.endLayout(); if (textLayout.lineCount() == 1) { sElideText = fontMetrics.elidedText(sElideText, mode, nLastLineWidth); } return sElideText; } static QWidget *createDecodeOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("decodeOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->clear(); combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); return pOptionWidget; } static QWidget *createVoOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("videoOutOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->clear(); combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); pSettingOption->connect(pSettingOption, &DSettingsOption::valueChanged, [=](QVariant value){ combobox->setCurrentIndex(value.toInt()); }); return pOptionWidget; } static QWidget *createEffectOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("effectOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->clear(); combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); pSettingOption->connect(pSettingOption, &DSettingsOption::valueChanged, [=](QVariant value){ combobox->setCurrentIndex(value.toInt()); }); return pOptionWidget; } static QWidget *createSelectableLineEditOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); DLineEdit *pLineEdit = new DLineEdit(); DWidget *pMainWid = new DWidget; QHBoxLayout *pLayout = new QHBoxLayout; static QString sNameLast = nullptr; pMainWid->setLayout(pLayout); DIconButton *pIconButton = new DIconButton(nullptr); pIconButton->setIcon(DStyle::SP_SelectElement); pLineEdit->setObjectName("OptionSelectableLineEdit"); pLineEdit->setText(pSettingOption->value().toString()); QFontMetrics fontMetrics = pLineEdit->fontMetrics(); QString sElideText = ElideText(pLineEdit->text(), {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); pSettingOption->connect(pLineEdit, &DLineEdit::focusChanged, [ = ](bool bRet) { if (bRet) pLineEdit->setText(pSettingOption->value().toString()); }); pLineEdit->setText(sElideText); sNameLast = sElideText; pLayout->setContentsMargins(0, 0, 0, 0); pLayout->addWidget(pLineEdit); pLayout->addWidget(pIconButton); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("OptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); pMainWid->setMinimumWidth(240); QLabel *title = new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())); title->setContentsMargins(0, 0, 16, 0); pOptionLayout->addRow(title, pMainWid); workaround_updateStyle(pOptionWidget, "light"); DDialog *pPrompt = new DDialog(pMainWid); pPrompt->setIcon(QIcon(":/resources/icons/warning.svg")); pPrompt->setMessage(QObject::tr("You don't have permission to operate this folder")); pPrompt->setWindowFlags(pPrompt->windowFlags() | Qt::WindowStaysOnTopHint); pPrompt->addButton(QObject::tr("OK"), true, DDialog::ButtonRecommend); auto validate = [ = ](QString sName, bool bAlert = true) -> bool { sName = sName.trimmed(); if (sName.isEmpty()) return false; if (sName.size() && sName[0] == '~') { sName.replace(0, 1, QDir::homePath()); } QFileInfo fi(sName); QDir dir(sName); if (fi.exists()) { if (!fi.isDir()) { if (bAlert) pLineEdit->showAlertMessage(QObject::tr("Invalid folder")); return false; } if (!fi.isReadable() || !fi.isWritable()) { return false; } } else { if (dir.cdUp()) { QFileInfo ch(dir.path()); if (!ch.isReadable() || !ch.isWritable()) return false; } } return true; }; pSettingOption->connect(pIconButton, &DPushButton::clicked, [ = ]() { #ifndef USE_TEST QString sName = DFileDialog::getExistingDirectory(nullptr, QObject::tr("Open folder"), MainWindow::lastOpenedPath(), DFileDialog::ShowDirsOnly | DFileDialog::DontResolveSymlinks); #else QString sName = "/data/source/deepin-movie-reborn/movie/DMovie"; #endif if (validate(sName, false)) { pSettingOption->setValue(sName); sNameLast = sName; } QFileInfo fileinfo(sName); if ((!fileinfo.isReadable() || !fileinfo.isWritable()) && !sName.isEmpty()) { pPrompt->show(); } }); pSettingOption->connect(pLineEdit, &DLineEdit::editingFinished, pSettingOption, [ = ]() { QString name = pLineEdit->text(); QDir dir(name); auto pn = ElideText(name, {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); auto nmls = ElideText(sNameLast, {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); if (!validate(pLineEdit->text(), false)) { QFileInfo fn(dir.path()); if ((!fn.isReadable() || !fn.isWritable()) && !name.isEmpty()) { pPrompt->show(); } } if (!pLineEdit->lineEdit()->hasFocus()) { if (validate(pLineEdit->text(), false)) { pSettingOption->setValue(pLineEdit->text()); pLineEdit->setText(pn); sNameLast = name; } else if (pn == sElideText) { pLineEdit->setText(sElideText); } else { pSettingOption->setValue(sNameLast); pLineEdit->setText(nmls); } } }); pSettingOption->connect(pLineEdit, &DLineEdit::textEdited, pSettingOption, [ = ](const QString & sNewStr) { validate(sNewStr); }); pSettingOption->connect(pSettingOption, &DTK_CORE_NAMESPACE::DSettingsOption::valueChanged, pLineEdit, [ = ](const QVariant & value) { auto pi = ElideText(value.toString(), {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); pLineEdit->setText(pi); pLineEdit->update(); }); return pOptionWidget; } #ifdef USE_DXCB class MainWindowFocusMonitor: public QAbstractNativeEventFilter { public: explicit MainWindowFocusMonitor(MainWindow *src) : QAbstractNativeEventFilter(), _source(src) { qApp->installNativeEventFilter(this); } ~MainWindowFocusMonitor() { qApp->removeNativeEventFilter(this); } bool nativeEventFilter(const QByteArray &eventType, void *message, long *) { if (Q_LIKELY(eventType == "xcb_generic_event_t")) { xcb_generic_event_t *event = static_cast(message); switch (event->response_type & ~0x80) { case XCB_LEAVE_NOTIFY: { xcb_leave_notify_event_t *dne = (xcb_leave_notify_event_t *)event; auto w = _source->windowHandle(); if (dne->event == w->winId()) { qInfo() << "--------- leave " << dne->event << dne->child; emit _source->windowLeaved(); } break; } case XCB_ENTER_NOTIFY: { xcb_enter_notify_event_t *dne = (xcb_enter_notify_event_t *)event; auto w = _source->windowHandle(); if (dne->event == w->winId()) { qInfo() << "--------- enter " << dne->event << dne->child; emit _source->windowEntered(); } break; } default: break; } } return false; } MainWindow *_source; }; #endif class MainWindowEventListener : public QObject { Q_OBJECT public: explicit MainWindowEventListener(QWidget *pTarget) : QObject(pTarget) { lastCornerEdge = CornerEdge::NoneEdge; m_pMainWindow = static_cast(pTarget); m_pWindow = pTarget->windowHandle(); } void setEnabled(bool bEnale) { m_bEnabled = bEnale; } protected: bool eventFilter(QObject *pObj, QEvent *pEvent) Q_DECL_OVERRIDE { QWindow *pWindow = qobject_cast(pObj); if (!pWindow) return false; MainWindow *pMainWindow = static_cast(parent()); switch (static_cast(pEvent->type())) { case QEvent::MouseMove+1: { //响应tab按钮 QKeyEvent *pKeyEvent = static_cast(pEvent); //根据需求迷你模式不响应tab键交互 if (pKeyEvent->key() == Qt::Key_Tab) { if (!m_pMainWindow->getMiniMode()) { pMainWindow->capturedKeyEvent(pKeyEvent); //Only the tab key interactive response is set to the first if (m_pMainWindow->playlist()->isFocusInPlaylist()) { bool bFocusAttribute = true; m_pMainWindow->playlist()->resetFocusAttribute(bFocusAttribute); } } else { return true; } } break; } case QEvent::MouseButtonPress: { if (!m_pMainWindow->playlist()) { return true; } if (m_pMainWindow->playlist()->state() == PlaylistWidget::State::Opened) { m_pMainWindow->toolbox()->clearPlayListFocus(); } //Mouse operation does not respond to the first item bool bFocusAttribute = false; m_pMainWindow->playlist()->resetFocusAttribute(bFocusAttribute); if (!m_bEnabled) return false; QMouseEvent *pMouseEvent = static_cast(pEvent); setLeftButtonPressed(true); if (pMainWindow->insideResizeArea(pMouseEvent->globalPos()) && lastCornerEdge != CornerEdge::NoneEdge) m_bStartResizing = true; pMainWindow->capturedMousePressEvent(pMouseEvent); if (m_bStartResizing) { return true; } break; } case QEvent::MouseButtonRelease: { if (!m_bEnabled) return false; QMouseEvent *pMouseEvent = static_cast(pEvent); setLeftButtonPressed(false); qApp->setOverrideCursor(pWindow->cursor()); pMainWindow->capturedMouseReleaseEvent(pMouseEvent); if (m_bStartResizing) { m_bStartResizing = false; return true; } m_bStartResizing = false; break; } case QEvent::MouseMove: { QMouseEvent *pMouseEvent = static_cast(pEvent); pMainWindow->resumeToolsWindow(); /* If the focus is on the playlist button, move the mouse to cancel the focus * In order to avoid the enter key to expand and the mouse click to expand the playlist * There is a problem here, if the mouse does not move, click directly, * Will cause focus to appear on the clear list button * Please refer to the maintainer whether to add an event filter to the ListBtn */ if (m_pMainWindow->toolbox()->getListBtnFocus()) { m_pMainWindow->setFocus(); } //If window is maximized ,need quit maximize state when resizing if (m_bStartResizing && (pMainWindow->windowState() & Qt::WindowMaximized)) { pMainWindow->setWindowState(pMainWindow->windowState() & (~Qt::WindowMaximized)); } else if (m_bStartResizing && (pMainWindow->windowState() & Qt::WindowFullScreen)) { pMainWindow->setWindowState(pMainWindow->windowState() & (~Qt::WindowFullScreen)); } if (!m_bEnabled) return false; const QRect window_visible_rect = m_pWindow->frameGeometry() - pMainWindow->dragMargins(); if (!m_bLeftButtonPressed) { //add by heyi 拦截鼠标移动事件 pMainWindow->judgeMouseInWindow(QCursor::pos()); CornerEdge mouseCorner = CornerEdge::NoneEdge; QRect cornerRect; /// begin set cursor corner type cornerRect.setSize(QSize(MOUSE_MARGINS * 2, MOUSE_MARGINS * 2)); cornerRect.moveTopLeft(m_pWindow->frameGeometry().topLeft()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = CornerEdge::TopLeftCorner; goto set_cursor; } cornerRect.moveTopRight(m_pWindow->frameGeometry().topRight()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = CornerEdge::TopRightCorner; goto set_cursor; } cornerRect.moveBottomRight(m_pWindow->frameGeometry().bottomRight()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = CornerEdge::BottomRightCorner; goto set_cursor; } cornerRect.moveBottomLeft(m_pWindow->frameGeometry().bottomLeft()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = CornerEdge::BottomLeftCorner; goto set_cursor; } goto skip_set_cursor; // disable edges /// begin set cursor edge type if (pMouseEvent->globalX() <= window_visible_rect.x()) { mouseCorner = CornerEdge::LeftEdge; } else if (pMouseEvent->globalX() < window_visible_rect.right()) { if (pMouseEvent->globalY() <= window_visible_rect.y()) { mouseCorner = CornerEdge::TopEdge; } else if (pMouseEvent->globalY() >= window_visible_rect.bottom()) { mouseCorner = CornerEdge::BottomEdge; } else { goto skip_set_cursor; } } else if (pMouseEvent->globalX() >= window_visible_rect.right()) { mouseCorner = CornerEdge::RightEdge; } else { goto skip_set_cursor; } set_cursor: #ifdef USE_DXCB #ifdef __mips__ if (pWindow->property("_d_real_winId").isValid()) { auto real_wid = pWindow->property("_d_real_winId").toUInt(); Utility::setWindowCursor(real_wid, mouseCorner); } else { Utility::setWindowCursor(static_cast(pWindow->winId()), mouseCorner); } #endif #endif if (qApp->mouseButtons() == Qt::LeftButton) { updateGeometry(mouseCorner, pMouseEvent); } lastCornerEdge = mouseCorner; return true; skip_set_cursor: lastCornerEdge = mouseCorner = CornerEdge::NoneEdge; return false; } else { if (m_bStartResizing) { updateGeometry(lastCornerEdge, pMouseEvent); return true; } } break; } default: break; } return false; } private: void setLeftButtonPressed(bool bPressed) { if (m_bLeftButtonPressed == bPressed) return; if (!bPressed) { #ifdef USE_DXCB Utility::cancelWindowMoveResize(static_cast(_window->winId())); #endif } m_bLeftButtonPressed = bPressed; } void updateGeometry(CornerEdge edge, QMouseEvent *pEvent) { MainWindow *pMainWindow = static_cast(parent()); pMainWindow->updateGeometry(edge, pEvent->globalPos()); } bool m_bLeftButtonPressed = false; bool m_bStartResizing = false; bool m_bEnabled {true}; CornerEdge lastCornerEdge; QWindow *m_pWindow; MainWindow *m_pMainWindow; }; #ifdef USE_DXCB /// shadow #define SHADOW_COLOR_NORMAL QColor(0, 0, 0, 255 * 0.35) #define SHADOW_COLOR_ACTIVE QColor(0, 0, 0, 255 * 0.6) #endif struct SessionInfo { QString sessionId; uint userId; QString userName; QString seatId; QDBusObjectPath sessionPath; }; typedef QList SessionInfoList; Q_DECLARE_METATYPE(SessionInfoList); Q_DECLARE_METATYPE(SessionInfo); inline QDBusArgument &operator<<(QDBusArgument &argument, const SessionInfo &sessionInfo) { argument.beginStructure(); argument << sessionInfo.sessionId; argument << sessionInfo.userId; argument << sessionInfo.userName; argument << sessionInfo.seatId; argument << sessionInfo.sessionPath; argument.endStructure(); return argument; } inline const QDBusArgument &operator>>(const QDBusArgument &argument, SessionInfo &sessionInfo) { argument.beginStructure(); argument >> sessionInfo.sessionId; argument >> sessionInfo.userId; argument >> sessionInfo.userName; argument >> sessionInfo.seatId; argument >> sessionInfo.sessionPath; argument.endStructure(); return argument; } MainWindow::MainWindow(QWidget *parent) : DMainWindow(nullptr) { initMember(); QJsonObject obj{ {"tid", EventLogUtils::Start}, {"mode", 1}, //冷启动 {"version", VERSION} }; EventLogUtils::get().writeLogs(obj); //add bu heyi this->setAttribute(Qt::WA_AcceptTouchEvents); m_mousePressTimer.setInterval(1300); connect(&m_mousePressTimer, &QTimer::timeout, this, &MainWindow::slotmousePressTimerTimeOut); #ifdef USE_DXCB setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); #else setWindowFlags(Qt::Window | Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); #ifdef Q_OS_MACOS setWindowFlags(Qt::WindowFullscreenButtonHint); #endif #endif setAcceptDrops(true); setAttribute(Qt::WA_NoSystemBackground, false); #ifdef USE_DXCB if (DApplication::isDXcbPlatform()) { _handle = new DPlatformWindowHandle(this, this); _handle->setEnableSystemResize(false); _handle->setEnableSystemMove(false); _handle->setWindowRadius(4); connect(qApp, &QGuiApplication::focusWindowChanged, this, &MainWindow::updateShadow); updateShadow(); } #endif QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred); sp.setHeightForWidth(true); setSizePolicy(sp); setContentsMargins(0, 0, 0, 0); setupTitlebar(); CommandLineManager &commanLineManager = dmr::CommandLineManager::get(); if (commanLineManager.debug()) { Backend::setDebugLevel(Backend::DebugLevel::Debug); } else if (commanLineManager.verbose()) { Backend::setDebugLevel(Backend::DebugLevel::Verbose); } qRegisterMetaType>("QList"); m_pEngine = new PlayerEngine(this); #ifndef USE_DXCB m_pEngine->move(0, 0); #endif //初始化显示音量与音量条控件一致 m_nDisplayVolume = 100; m_pToolbox = new ToolboxProxy(this, m_pEngine); m_pToolbox->setObjectName(BOTTOM_TOOL_BOX); titlebar()->deleteLater(); connect(m_pToolbox, &ToolboxProxy::sigUnsupported, this, &MainWindow::slotUnsupported); connect(m_pEngine, &PlayerEngine::stateChanged, this, &MainWindow::slotPlayerStateChanged); connect(m_pEngine, &PlayerEngine::sigInvalidFile, this, &MainWindow::slotInvalidFile); connect(ActionFactory::get().mainContextMenu(), &DMenu::triggered, this, &MainWindow::menuItemInvoked); connect(ActionFactory::get().playlistContextMenu(), &DMenu::triggered, this, &MainWindow::menuItemInvoked); connect(this, &MainWindow::frameMenuEnable, &ActionFactory::get(), &ActionFactory::frameMenuEnable); connect(this, &MainWindow::playSpeedMenuEnable, &ActionFactory::get(), &ActionFactory::playSpeedMenuEnable); connect(this, &MainWindow::subtitleMenuEnable, &ActionFactory::get(), &ActionFactory::subtitleMenuEnable); connect(this, &MainWindow::soundMenuEnable, &ActionFactory::get(), &ActionFactory::soundMenuEnable); connect(qApp, &QGuiApplication::focusWindowChanged, this, &MainWindow::slotFocusWindowChanged); connect(m_pToolbox, &ToolboxProxy::sigVolumeChanged, this, &MainWindow::slotVolumeChanged); connect(m_pToolbox, &ToolboxProxy::sigMuteStateChanged, this, &MainWindow::slotMuteChanged); connect(m_pEngine, &PlayerEngine::sigMediaError, this, &MainWindow::slotMediaError); connect(m_pEngine, &PlayerEngine::finishedAddFiles, this, &MainWindow::slotFinishedAddFiles); //Initialization is performed at normal conditions if (CompositingManager::get().platform() != Platform::Mips) { m_pProgIndicator = new MovieProgressIndicator(this); m_pFullScreenTimeLable = new QLabel; } if (m_pProgIndicator) { m_pProgIndicator->setVisible(false); connect(m_pEngine, &PlayerEngine::elapsedChanged, [ = ]() { m_pProgIndicator->updateMovieProgress(m_pEngine->duration(), m_pEngine->elapsed()); }); m_pFullScreenTimeLable->setAttribute(Qt::WA_TranslucentBackground); m_pFullScreenTimeLable->setWindowFlags(Qt::FramelessWindowHint); m_pFullScreenTimeLable->setParent(this); m_pFullScreenTimeLayout = new QHBoxLayout; m_pFullScreenTimeLayout->addStretch(); m_pFullScreenTimeLayout->addWidget(m_pToolbox->getfullscreentimeLabel()); m_pFullScreenTimeLayout->addWidget(m_pToolbox->getfullscreentimeLabelend()); m_pFullScreenTimeLayout->addStretch(); m_pFullScreenTimeLable->setLayout(m_pFullScreenTimeLayout); m_pFullScreenTimeLable->close(); } // mini ui QSignalMapper *pSignalMapper = new QSignalMapper(this); connect(pSignalMapper, static_cast(&QSignalMapper::mapped), this, &MainWindow::miniButtonClicked); m_pMiniPlayBtn = new DIconButton(this); m_pMiniQuitMiniBtn = new DIconButton(this); m_pMiniCloseBtn = new DIconButton(this); m_pMiniPlayBtn->setFlat(true); m_pMiniCloseBtn->setFlat(true); m_pMiniQuitMiniBtn->setFlat(true); m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg")); m_pMiniPlayBtn->setIconSize(QSize(30, 30)); m_pMiniPlayBtn->setFixedSize(QSize(35, 35)); m_pMiniPlayBtn->setObjectName("MiniPlayBtn"); connect(m_pMiniPlayBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniPlayBtn, "play"); connect(m_pEngine, &PlayerEngine::stateChanged, [ = ]() { qInfo() << __func__ << m_pEngine->state(); if (m_pEngine->state() == PlayerEngine::CoreState::Playing && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { emit subtitleMenuEnable(false); } else { emit subtitleMenuEnable(true); } if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { //播放切换时,更新音量dbus 当前的sinkInputPath if (m_pProgIndicator) { m_pFullScreenTimeLable->close(); m_pProgIndicator->setVisible(false); } emit frameMenuEnable(false); emit playSpeedMenuEnable(false); } if (m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/pause-normal-mini.svg")); m_pMiniPlayBtn->setObjectName("MiniPauseBtn"); if (m_pEngine->playlist().count() > 0 && !m_pEngine->currFileIsAudio()) { emit frameMenuEnable(true); setMusicShortKeyState(true); } else { emit frameMenuEnable(false); setMusicShortKeyState(false); } emit playSpeedMenuEnable(true); if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } m_nLastCookie = utils::InhibitStandby(); m_nPowerCookie = utils::InhibitPower(); } else { if (m_pMircastShowWidget->isVisible()) return; m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg")); m_pMiniPlayBtn->setObjectName("MiniPlayBtn"); if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } } }); m_pMiniCloseBtn->setIcon(QIcon(":/resources/icons/light/mini/close-normal.svg")); m_pMiniCloseBtn->setIconSize(QSize(30, 30)); m_pMiniCloseBtn->setFixedSize(QSize(35, 35)); m_pMiniCloseBtn->setObjectName("MiniCloseBtn"); connect(m_pMiniCloseBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniCloseBtn, "close"); m_pMiniQuitMiniBtn->setIcon(QIcon(":/resources/icons/light/mini/restore-normal-mini.svg")); m_pMiniQuitMiniBtn->setIconSize(QSize(30, 30)); m_pMiniQuitMiniBtn->setFixedSize(QSize(35, 35)); m_pMiniQuitMiniBtn->setObjectName("MiniQuitMiniBtn"); connect(m_pMiniQuitMiniBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniQuitMiniBtn, "quit_mini"); m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); updateProxyGeometry(); connect(&ShortcutManager::get(), &ShortcutManager::bindingsChanged, this, &MainWindow::onBindingsChanged); ShortcutManager::get().buildBindings(); //绑定要放在connect后 connect(m_pEngine, SIGNAL(stateChanged()), this, SLOT(update())); connect(m_pEngine, &PlayerEngine::tracksChanged, this, &MainWindow::updateActionsState); connect(m_pEngine, &PlayerEngine::stateChanged, this, &MainWindow::updateActionsState); updateActionsState(); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_pTitlebar->setFixedHeight(40); m_pMiniPlayBtn->setIconSize(QSize(19, 19)); m_pMiniPlayBtn->setFixedSize(QSize(23, 23)); m_pMiniCloseBtn->setIconSize(QSize(19, 19)); m_pMiniCloseBtn->setFixedSize(QSize(23, 23)); m_pMiniQuitMiniBtn->setIconSize(QSize(19, 19)); m_pMiniQuitMiniBtn->setFixedSize(QSize(23, 23)); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_pTitlebar->setFixedHeight(50); m_pMiniPlayBtn->setIconSize(QSize(30, 30)); m_pMiniPlayBtn->setFixedSize(QSize(35, 35)); m_pMiniCloseBtn->setIconSize(QSize(30, 30)); m_pMiniCloseBtn->setFixedSize(QSize(35, 35)); m_pMiniQuitMiniBtn->setIconSize(QSize(30, 30)); m_pMiniQuitMiniBtn->setFixedSize(QSize(35, 35)); } else { m_pTitlebar->setFixedHeight(40); m_pMiniPlayBtn->setIconSize(QSize(19, 19)); m_pMiniPlayBtn->setFixedSize(QSize(23, 23)); m_pMiniCloseBtn->setIconSize(QSize(19, 19)); m_pMiniCloseBtn->setFixedSize(QSize(23, 23)); m_pMiniQuitMiniBtn->setIconSize(QSize(19, 19)); m_pMiniQuitMiniBtn->setFixedSize(QSize(23, 23)); } }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (m_bMiniMode) return; m_pCommHintWid->hide(); updateProxyGeometry(); }); #endif //勾选右键菜单默认选项 reflectActionToUI(ActionFactory::ActionKind::OneTimes); reflectActionToUI(ActionFactory::ActionKind::ChangeSubCodepage); reflectActionToUI(ActionFactory::ActionKind::DefaultFrame); reflectActionToUI(ActionFactory::ActionKind::Stereo); prepareSplashImages(); connect(m_pEngine, &PlayerEngine::sidChanged, [ = ]() { reflectActionToUI(ActionFactory::ActionKind::SelectSubtitle); }); //NOTE: mpv does not always send a aid-change signal the first time movie is loaded. connect(m_pEngine, &PlayerEngine::aidChanged, [ = ]() { reflectActionToUI(ActionFactory::ActionKind::SelectTrack); }); connect(m_pEngine, &PlayerEngine::fileLoaded, this, &MainWindow::slotFileLoaded); connect(m_pEngine, &PlayerEngine::videoSizeChanged, [ = ]() { this->resizeByConstraints(); }); connect(m_pEngine, &PlayerEngine::stateChanged, this, &MainWindow::animatePlayState); connect(m_pEngine, &PlayerEngine::loadOnlineSubtitlesFinished, [this](const QUrl & url, bool success) {//不能去掉 url参数 m_pCommHintWid->updateWithMessage(success ? tr("Load successfully") : tr("Load failed")); }); connect(&m_autoHideTimer, &QTimer::timeout, this, &MainWindow::suspendToolsWindow); m_autoHideTimer.setSingleShot(true); connect(&m_delayedMouseReleaseTimer, &QTimer::timeout, this, &MainWindow::delayedMouseReleaseHandler); m_delayedMouseReleaseTimer.setSingleShot(true); m_pCommHintWid = new NotificationWidget(this); m_pCommHintWid->setFixedHeight(30); m_pCommHintWid->setAnchor(NotificationWidget::ANCHOR_NORTH_WEST); m_pCommHintWid->setAnchorPoint(QPoint(30, 58)); m_pCommHintWid->hide(); m_pDVDHintWid = new NotificationWidget(this); m_pDVDHintWid->setFixedHeight(30); m_pDVDHintWid->setAnchor(NotificationWidget::ANCHOR_NORTH_WEST); m_pDVDHintWid->setAnchorPoint(QPoint(30, 58)); m_pDVDHintWid->hide(); #ifdef USE_DXCB m_pEventListener = new MainWindowEventListener(this); this->windowHandle()->installEventFilter(m_pEventListener); //auto mwfm = new MainWindowFocusMonitor(this); auto mwpm = new MainWindowPropertyMonitor(this); connect(this, &MainWindow::windowEntered, &MainWindow::resumeToolsWindow); connect(this, &MainWindow::windowLeaved, &MainWindow::suspendToolsWindow); #else winId(); m_pEventListener = new MainWindowEventListener(this); QTimer::singleShot(500, [this](){ this->windowHandle()->installEventFilter(m_pEventListener); connect(this, &MainWindow::windowEntered, &MainWindow::resumeToolsWindow); connect(this, &MainWindow::windowLeaved, &MainWindow::suspendToolsWindow); qInfo() << "event listener"; } ); #endif m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); m_pCommHintWid->setWM(m_bIsWM); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &MainWindow::slotWMChanged); m_pAnimationlable = new AnimationLabel(this, this); m_pAnimationlable->setWM(m_bIsWM); m_pPopupWid = new MessageWindow(this); m_pPopupWid->hide(); defaultplaymodeinit(); connect(&Settings::get(), &Settings::defaultplaymodechanged, this, &MainWindow::slotdefaultplaymodechanged); connect(&Settings::get(), &Settings::setDecodeModel, this, &MainWindow::onSetDecodeModel,Qt::DirectConnection); connect(&Settings::get(), &Settings::refreshDecode, this, &MainWindow::onRefreshDecode,Qt::DirectConnection); connect(m_pEngine, &PlayerEngine::onlineStateChanged, this, &MainWindow::checkOnlineState); connect(&OnlineSubtitle::get(), &OnlineSubtitle::onlineSubtitleStateChanged, this, &MainWindow::checkOnlineSubtitle); connect(m_pEngine, &PlayerEngine::mpvErrorLogsChanged, this, &MainWindow::checkErrorMpvLogsChanged); connect(m_pEngine, &PlayerEngine::mpvWarningLogsChanged, this, &MainWindow::checkWarningMpvLogsChanged); connect(m_pEngine, &PlayerEngine::urlpause, this, &MainWindow::slotUrlpause); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::newProcessInstance, this, [ = ] { this->activateWindow(); }); connect(qApp, &QGuiApplication::fontChanged, this, &MainWindow::slotFontChanged); ThreadPool::instance()->moveToNewThread(&m_diskCheckThread); m_diskCheckThread.start(); connect(&m_diskCheckThread, &Diskcheckthread::diskRemove, this, &MainWindow::diskRemoved); QTimer::singleShot(300, [this]() { loadPlayList(); }); m_pDBus = new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()); connect(m_pDBus, SIGNAL(PrepareForSleep(bool)), this, SLOT(sleepStateChanged(bool))); QDBusConnection::sessionBus().connect("org.deepin.dde.ShutdownFront1", "/org/deepin/dde/lockFront1", "org.deepin.dde.lockFront1", "Visible", this, SLOT(lockStateChanged(bool))); m_pMovieWidget = new MovieWidget(this); m_pMovieWidget->hide(); m_pMircastShowWidget = new MircastShowWidget(this); m_pMircastShowWidget->hide(); connect(m_pToolbox, &ToolboxProxy::sigMircastState, this, &MainWindow::slotUpdateMircastState); connect(m_pMircastShowWidget, &MircastShowWidget::exitMircast, this, &MainWindow::slotExitMircast); qDBusRegisterMetaType(); qDBusRegisterMetaType(); QDBusPendingReply reply = m_pDBus->call("ListSessions"); QString path = reply.value().last().sessionPath.path(); QDBusConnection::systemBus().connect("org.freedesktop.login1", path, "org.freedesktop.DBus.Properties", "PropertiesChanged", this, SLOT(slotProperChanged(QString, QVariantMap, QStringList))); qInfo() << "session Path is :" << path; connect(dynamic_cast(m_pEngine->getMpvProxy()),&MpvProxy::crashCheck,&Settings::get(),&Settings::crashCheck); //解码初始化 // decodeInit(); } void MainWindow::setupTitlebar() { m_pTitlebar = new Titlebar(this); m_pTitlebar->move(0, 0); m_pTitlebar->setFixedHeight(50); setTitlebarShadowEnabled(false); m_pTitlebar->titlebar()->setMenu(ActionFactory::get().titlebarMenu()); connect(m_pTitlebar->titlebar()->menu(), &DMenu::triggered, this, &MainWindow::menuItemInvoked); } void MainWindow::updateContentGeometry(const QRect &rect) { #ifdef USE_DXCB auto frame = QWindow::fromWinId(windowHandle()->winId()); QRect frame_rect = rect; if (_handle) { frame_rect += _handle->frameMargins(); } const uint32_t values[] = { (uint32_t)frame_rect.x(), (uint32_t)frame_rect.y(), (uint32_t)frame_rect.width(), (uint32_t)frame_rect.height() }; // manually configure frame window which will in turn update content window xcb_configure_window(QX11Info::connection(), windowHandle()->winId(), XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT | XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_X, values); #else move(rect.x(), rect.y()); resize(rect.width(), rect.height()); #endif } #ifdef USE_DXCB void MainWindow::updateShadow() { if (isActiveWindow()) { _handle->setShadowRadius(60); _handle->setShadowColor(SHADOW_COLOR_ACTIVE); } else { _handle->setShadowRadius(60); _handle->setShadowColor(SHADOW_COLOR_NORMAL); } } #endif bool MainWindow::event(QEvent *pEvent) { if (pEvent->type() == QEvent::UpdateRequest || pEvent->type() == QEvent::Paint) return DMainWindow::event(pEvent); if (pEvent->type() == QEvent::TouchBegin) { //判定是否是触屏 this->m_posMouseOrigin = mapToGlobal(QCursor::pos()); m_bIsTouch = true; } //add by heyi //判断是否停止右键菜单定时器 if (m_bMousePressed) { if (qAbs(m_nLastPressX - mapToGlobal(QCursor::pos()).x()) > 50 || qAbs(m_nLastPressY - mapToGlobal(QCursor::pos()).y()) > 50) { if (m_mousePressTimer.isActive()) { qInfo() << "结束定时器"; m_mousePressTimer.stop(); m_bMousePressed = false; } } } if (pEvent->type() == QEvent::WindowStateChange) { QWindowStateChangeEvent *pWindowStateChangeEvent = dynamic_cast(pEvent); m_lastWindowState = pWindowStateChangeEvent->oldState(); qInfo() << "------------ m_lastWindowState" << m_lastWindowState << "current " << windowState(); //NOTE: windowStateChanged won't be emitted if by dragging to restore. so we need to //check window state here. if (windowState() & Qt::WindowMinimized) { //fix bug 53683 if (Settings::get().isSet(Settings::PauseOnMinimize)) { if (m_pEngine && m_pEngine->state() == PlayerEngine::Playing) { requestAction(ActionFactory::TogglePause); m_bQuitfullscreenflag = true; } QList listActs = ActionFactory::get().findActionsByKind(ActionFactory::TogglePlaylist); listActs.at(0)->setChecked(false); } } else if (m_lastWindowState & Qt::WindowMinimized /*&& windowState() == Qt::WindowNoState*/) { if (Settings::get().isSet(Settings::PauseOnMinimize)) { if (m_bQuitfullscreenflag) { requestAction(ActionFactory::TogglePause); m_bQuitfullscreenflag = false; } } } onWindowStateChanged(); } return DMainWindow::event(pEvent); } void MainWindow::leaveEvent(QEvent *) { m_autoHideTimer.stop(); this->suspendToolsWindow(); } void MainWindow::onWindowStateChanged() { qInfo() << __func__ << windowState(); if (!m_bMiniMode && !isFullScreen()) { m_pTitlebar->setVisible(m_pToolbox->isVisible()); } else { m_pTitlebar->setVisible(false); } //The X86 platform draws on GiWidget, and the MIPS platform does not need to draw if (CompositingManager::get().platform() == Platform::Arm64 || CompositingManager::get().platform() == Platform::Alpha) { m_pProgIndicator->setVisible(isFullScreen() && m_pEngine && m_pEngine->state() != PlayerEngine::Idle); } #ifndef USE_DXCB m_pTitlebar->move(0, 0); m_pEngine->move(0, 0); #endif if (!isFullScreen() && !isMaximized()) { if (m_bMovieSwitchedInFsOrMaxed || !m_lastRectInNormalMode.isValid()) { if (m_bMousePressed || m_bMouseMoved) { m_bDelayedResizeByConstraint = true; } else { setMinimumSize({0, 0}); resizeByConstraints(true); } } m_bMovieSwitchedInFsOrMaxed = false; } update(); if (isMinimized()) { if (m_pPlaylist->state() == PlaylistWidget::Opened) { m_pPlaylist->togglePopup(false); } } } #ifdef USE_DXCB static QPoint lastm_pEngine_pos; static QPoint last_wm_pos; static bool bClicked = false; void MainWindow::onMonitorButtonPressed(int nX, int nY) { QPoint pos(nX, nY); int nPoint = 2; QMargins m(nPoint, nPoint, nPoint, nPoint); if (geometry().marginsRemoved(m).contains(pos)) { QWidget *pWidget = qApp->topLevelAt(pos); if (pWidget && pWidget == this) { qInfo() << __func__ << "click inside main window"; last_wm_pos = QPoint(nX, nY); lastm_pEngine_pos = windowHandle()->framePosition(); bClicked = true; } } } void MainWindow::onMonitorButtonReleased(int nX, int nY) { if (bClicked) { qInfo() << __func__; bClicked = false; } } void MainWindow::onMonitorMotionNotify(int nX, int nY) { if (bClicked) { QPoint pos = QPoint(nX, nY) - last_wm_pos; windowHandle()->setFramePosition(lastm_pEngine_pos + pos); } } #endif bool MainWindow::judgeMouseInWindow(QPoint pos) { bool bRet = false; QRect rect = frameGeometry(); QPoint topLeft = rect.topLeft(); QPoint bottomRight = rect.bottomRight(); pos = mapToGlobal(pos); topLeft = mapToGlobal(topLeft); bottomRight = mapToGlobal(bottomRight); if ((pos.x() == topLeft.x()) || (pos.x() == bottomRight.x()) || (pos.y() == topLeft.y()) || (pos.y() == bottomRight.y())) { leaveEvent(nullptr); } return bRet; } #ifdef USE_DXCB void MainWindow::onApplicationStateChanged(Qt::ApplicationState e) { switch (e) { case Qt::ApplicationActive: if (qApp->focusWindow()) qInfo() << QString("focus window 0x%1").arg(qApp->focusWindow()->winId(), 0, 16); qApp->setActiveWindow(this); _evm->resumeRecording(); resumeToolsWindow(); break; case Qt::ApplicationInactive: _evm->suspendRecording(); suspendToolsWindow(); break; default: break; } } #endif void MainWindow::animatePlayState() { if (m_bMiniMode) { return; } if (!m_bInBurstShootMode && m_pEngine->state() == PlayerEngine::CoreState::Paused && !m_bMiniMode && !m_pMircastShowWidget->isVisible()) { m_pAnimationlable->pauseAnimation(); } } void MainWindow::onBindingsChanged() { qInfo() << __func__; { QList listActions = this->actions(); this->actions().clear(); for (auto *pAct : listActions) { delete pAct; } } ShortcutManager &shortcutManager = ShortcutManager::get(); vector vecActions = shortcutManager.actionsForBindings(); for (auto *pAct : vecActions) { this->addAction(pAct); connect(pAct, &QAction::triggered, [ = ]() { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAct); //正在投屏时,某些快捷键设置为不能用 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ){ if(actionKind == ActionFactory::ToggleFullscreen //全屏 alt+enter || actionKind == ActionFactory::QuitFullscreen //退出全屏/迷你模式esc || actionKind == ActionFactory::AccelPlayback //加速播放 ctrl+right || actionKind == ActionFactory::DecelPlayback //减速播放 ctrl+left || actionKind == ActionFactory::ResetPlayback //还原播放 R || actionKind == ActionFactory::ToggleMiniMode //迷你模式 F2 || actionKind == ActionFactory::VolumeUp //增大音量 ctrl+alt+up || actionKind == ActionFactory::VolumeDown //减少音量 ctrl+alt+down || actionKind == ActionFactory::ToggleMute //静音 M || actionKind == ActionFactory::PreviousFrame //上一帧 ctrl+shift+left || actionKind == ActionFactory::NextFrame //下一帧 ctrl+shift+right || actionKind == ActionFactory::Screenshot //影片截图 alt+a || actionKind == ActionFactory::BurstScreenshot //连拍截图 alt+s || actionKind == ActionFactory::SubForward //字幕提前0.5s shift+right || actionKind == ActionFactory::SubDelay //字幕延迟0.5s shift+left || actionKind == ActionFactory::ViewShortcut //显示快捷键 ctrl + shift + ? ){ return; } } this->menuItemInvoked(pAct); }); } } void MainWindow::updateActionsState() { //投屏时不处理播放状态切换菜单项是否可用,由右键菜单入口统一处理。 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) return; PlayingMovieInfo movieInfo = m_pEngine->playingMovieInfo(); auto update = [ = ](QAction * pAct) { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAct); bool bRet = true; switch (actionKind) { case ActionFactory::ActionKind::Screenshot: case ActionFactory::ActionKind::MatchOnlineSubtitle: case ActionFactory::ActionKind::ToggleMiniMode: case ActionFactory::ActionKind::ToggleFullscreen: case ActionFactory::ActionKind::WindowAbove: bRet = m_pEngine->state() != PlayerEngine::Idle; break; case ActionFactory::ActionKind::BurstScreenshot: if(!CompositingManager::isMpvExists()) { bRet = false; } else { bRet = m_pEngine->duration() > 40; } break; case ActionFactory::ActionKind::MovieInfo: bRet = m_pEngine->state() != PlayerEngine::Idle; if (bRet) { bRet = bRet && m_pEngine->playlist().count(); if (bRet) { PlayItemInfo playItemInfo = m_pEngine->playlist().currentInfo(); bRet = bRet && playItemInfo.loaded; } } break; case ActionFactory::ActionKind::HideSubtitle: case ActionFactory::ActionKind::SelectSubtitle: bRet = movieInfo.subs.size() > 0; break; default: break; } pAct->setEnabled(bRet); }; ActionFactory::get().updateMainActionsForMovie(movieInfo); ActionFactory::get().forEachInMainMenu(update); //NOTE: mpv does not always send a aid-change signal the first time movie is loaded. //so we need to workaround it. reflectActionToUI(ActionFactory::ActionKind::SelectTrack); reflectActionToUI(ActionFactory::ActionKind::SelectSubtitle); } /*void MainWindow::syncStaysOnTop() { #ifdef USE_DXCB static xcb_atom_t atomStateAbove = Utility::internAtom("_NET_WM_STATE_ABOVE"); auto atoms = Utility::windowNetWMState(static_cast(windowHandle()->winId())); #ifndef __mips__ bool window_is_above = atoms.contains(atomStateAbove); if (window_is_above != m_bWindowAbove) { qInfo() << "syncStaysOnTop: window_is_above" << window_is_above; requestAction(ActionFactory::WindowAbove); } #endif #endif }*/ void MainWindow::reflectActionToUI(ActionFactory::ActionKind actionKind) { QList listActs; listActs = ActionFactory::get().findActionsByKind(actionKind); if(listActs.size()<=0) { return; } switch (actionKind) { case ActionFactory::ActionKind::WindowAbove: case ActionFactory::ActionKind::ToggleFullscreen: case ActionFactory::ActionKind::TogglePlaylist: case ActionFactory::ActionKind::HideSubtitle: { qInfo() << __func__ << actionKind; auto p = listActs.begin(); while (p != listActs.end()) { bool bOld = (*p)->isEnabled(); (*p)->setEnabled(false); if (actionKind == ActionFactory::TogglePlaylist) { // here what we read is the last state of playlist if (m_pPlaylist->state() != PlaylistWidget::Opened) { (*p)->setChecked(false); } else { (*p)->setChecked(true); } } else { (*p)->setChecked(!(*p)->isChecked()); } (*p)->setEnabled(bOld); ++p; } break; } case ActionFactory::ActionKind::ToggleMiniMode: { auto p = listActs[0]; p->setEnabled(false); p->setChecked(!p->isChecked()); p->setEnabled(true); break; } case ActionFactory::ActionKind::ChangeSubCodepage: { //mpv未初始化时返回默认值auto QString sCodePage; sCodePage = m_pEngine->subCodepage(); qInfo() << "codepage" << sCodePage; auto p = listActs.begin(); while (p != listActs.end()) { auto args = ActionFactory::actionArgs(*p); if (args[0].toString() == sCodePage) { (*p)->setEnabled(false); if (!(*p)->isChecked()) (*p)->setChecked(true); (*p)->setEnabled(true); break; } ++p; } break; } case ActionFactory::ActionKind::SelectTrack: case ActionFactory::ActionKind::SelectSubtitle: { if (m_pEngine->state() == PlayerEngine::Idle) break; PlayingMovieInfo pmf = m_pEngine->playingMovieInfo(); int nId = -1; int nIdx = -1; if (actionKind == ActionFactory::ActionKind::SelectTrack) { nId = m_pEngine->aid(); for (nIdx = 0; nIdx < pmf.audios.size(); nIdx++) { if (nId == pmf.audios[nIdx]["id"].toInt()) { break; } } } else if (actionKind == ActionFactory::ActionKind::SelectSubtitle) { nId = m_pEngine->sid(); for (nIdx = 0; nIdx < pmf.subs.size(); nIdx++) { if (nId == pmf.subs[nIdx]["id"].toInt()) { break; } } } qInfo() << __func__ << actionKind << "idx = " << nIdx; auto p = listActs.begin(); while (p != listActs.end()) { auto args = ActionFactory::actionArgs(*p); (*p)->setEnabled(false); if (args[0].toInt() == nIdx) { if (!(*p)->isChecked())(*p)->setChecked(true); } else { (*p)->setChecked(false); } (*p)->setEnabled(true); ++p; } break; } case ActionFactory::ActionKind::Stereo: case ActionFactory::ActionKind::OneTimes: { auto p = listActs.begin(); (*p)->setChecked(true); break; } case ActionFactory::ActionKind::DefaultFrame: { qInfo() << __func__ << actionKind; auto p = listActs.begin(); bool bOld = (*p)->isEnabled(); (*p)->setEnabled(false); (*p)->setChecked(!(*p)->isChecked()); (*p)->setEnabled(bOld); break; } case ActionFactory::ActionKind::OrderPlay: case ActionFactory::ActionKind::ShufflePlay: case ActionFactory::ActionKind::SinglePlay: case ActionFactory::ActionKind::SingleLoop: case ActionFactory::ActionKind::ListLoop: { qInfo() << __func__ << actionKind; auto p = listActs.begin(); (*p)->setChecked(true); break; } default: break; } } /*NotificationWidget *MainWindow::getm_pCommHintWid() { return m_pCommHintWid; }*/ //排列判断(主要针对光驱) static bool compareBarData(const QUrl &url1, const QUrl &url2) { QString sFileName1 = QFileInfo(url1.path()).fileName(); QString sFileName2 = QFileInfo(url2.path()).fileName(); if (sFileName1.length() > 0 && sFileName2.length() > 0) { if (sFileName1[0] < sFileName2[0]) { return true; } } return false; } bool MainWindow::addCdromPath() { QStringList strCDMountlist; QFile mountFile("/proc/mounts"); if (mountFile.open(QIODevice::ReadOnly) == false) { return false; } do { QString strLine = mountFile.readLine(); if (strLine.indexOf("/dev/sr") != -1 || strLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。 strCDMountlist.append(strLine.split(" ").at(1)); //A B C 这样的格式,取中间的 } } while (!mountFile.atEnd()); mountFile.close(); if (strCDMountlist.size() == 0) return false; play({strCDMountlist[0]}); return true; } void MainWindow::loadPlayList() { m_pPlaylist = nullptr; m_pPlaylist = new PlaylistWidget(this, m_pEngine); m_pPlaylist->hide(); m_pToolbox->setPlaylist(m_pPlaylist); m_pEngine->getplaylist()->loadPlaylist(); if(CompositingManager::isMpvExists()) { m_pToolbox->initThumbThread(); } if (!m_listOpenFiles.isEmpty()) { play(m_listOpenFiles); } } void MainWindow::setOpenFiles(QStringList &list) { m_listOpenFiles = list; } QString MainWindow::padLoadPath() { QString sLoadPath = Settings::get().generalOption("pad_load_path").toString(); QDir lastDir(sLoadPath); if (sLoadPath.isEmpty() || !lastDir.exists()) { sLoadPath = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); QDir newLastDir(sLoadPath); if (!newLastDir.exists()) { sLoadPath = QDir::currentPath(); } } return sLoadPath; } #ifdef USE_TEST void MainWindow::testCdrom() { this->addCdromPath(); diskRemoved("sd3/uos"); sleepStateChanged(true); sleepStateChanged(false); subtitleMatchVideo("/data/home/uos/Videos/subtitle/Hachiko.A.Dog's.Story.ass"); } void MainWindow::setCurrentHwdec(QString str) { m_sCurrentHwdec = str; } #endif void MainWindow::mipsShowFullScreen() { QPropertyAnimation *pAn = new QPropertyAnimation(this, "windowOpacity"); pAn->setDuration(100); pAn->setEasingCurve(QEasingCurve::Linear); pAn->setEndValue(1); pAn->setStartValue(0); pAn->start(QAbstractAnimation::DeleteWhenStopped); setWindowState(windowState() | Qt::WindowFullScreen); } void MainWindow::menuItemInvoked(QAction *pAction) { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAction); if (actionKind == dmr::ActionFactory::Invalid || !m_pEngine || !m_pPlaylist) { //如果未初始化触发快捷键会导致崩溃 return; } bool bIsShortcut = ActionFactory::isActionFromShortcut(pAction); if (ActionFactory::actionHasArgs(pAction)) { requestAction(actionKind, !bIsShortcut, ActionFactory::actionArgs(pAction), bIsShortcut); } else { QVariant var = pAction->property("kind"); if (var == ActionFactory::ActionKind::Settings) { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } else { if (m_pPlaylist->state() == PlaylistWidget::State::Opened) { BindingMap bdMap = ShortcutManager::get().map(); QHash::const_iterator iter = bdMap.constBegin(); bool bIsiter = false; while (iter != bdMap.constEnd()) { if (iter.value() == actionKind) { bIsiter = true; if ((iter.key() == QKeySequence("Return") || iter.key() == QKeySequence("Enter") || iter.key() == QKeySequence("Up") || iter.key() == QKeySequence("Down")) && bIsShortcut) { if (iter.key() == QKeySequence("Up") || iter.key() == QKeySequence("Down")) { int key; if (iter.key() == QKeySequence("Up")) { key = Qt::Key_Up; } else { key = Qt::Key_Down; } m_pPlaylist->updateSelectItem(key); } break; } requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); break; } ++iter; } if (bIsiter == false) { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } } else { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } } } //菜单操作完成后,标题栏获取焦点 m_pTitlebar->setFocus(); } bool MainWindow::isActionAllowed(ActionFactory::ActionKind actionKind, bool fromUI, bool isShortcut) { if (m_bInBurstShootMode) { return false; } if (m_bMiniMode) { if (fromUI || isShortcut) { switch (actionKind) { case ActionFactory::ToggleFullscreen: case ActionFactory::TogglePlaylist: case ActionFactory::BurstScreenshot: return false; case ActionFactory::ToggleMiniMode: return true; default: break; } } } if (isMaximized()) { switch (actionKind) { case ActionFactory::ToggleMiniMode: return true; default: break; } } if (isShortcut) { PlayingMovieInfo pmf = m_pEngine->playingMovieInfo(); bool bRet = true;//cppcheck 误报 switch (actionKind) { case ActionFactory::Screenshot: case ActionFactory::ToggleMiniMode: case ActionFactory::MatchOnlineSubtitle: case ActionFactory::BurstScreenshot: bRet = m_pEngine->state() != PlayerEngine::Idle; break; case ActionFactory::MovieInfo: bRet = m_pEngine->state() != PlayerEngine::Idle; if (bRet) { bRet = bRet && m_pEngine->playlist().count(); if (bRet) { auto pif = m_pEngine->playlist().currentInfo(); bRet = bRet && pif.loaded; } } break; case ActionFactory::HideSubtitle: case ActionFactory::SelectSubtitle: bRet = pmf.subs.size() > 0; break; default: break; } if (!bRet) return bRet; } return true; } void MainWindow::requestAction(ActionFactory::ActionKind actionKind, bool bFromUI, QList args, bool bIsShortcut) { qInfo() << "actionKind = " << actionKind << "fromUI " << bFromUI << (bIsShortcut ? "shortcut" : ""); if (!m_pToolbox->getbAnimationFinash() || m_bStartAnimation) { return; } if (!isActionAllowed(actionKind, bFromUI, bIsShortcut)) { qInfo() << actionKind << "disallowed"; return; } switch (actionKind) { case ActionFactory::ActionKind::Exit: qApp->quit(); break; case ActionFactory::ActionKind::OpenCdrom: { QString sDev = dmr::CommandLineManager::get().dvdDevice(); if (sDev.isEmpty()) { sDev = probeCdromDevice(); } if (sDev.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Cannot play the disc")); break; } if (addCdromPath() == false) { play({QString("dvd:///%1").arg(sDev)}); } break; } case ActionFactory::ActionKind::OpenUrl: { UrlDialog dlg(this); if (dlg.exec() == QDialog::Accepted) { QUrl url = dlg.url(); if (url.isValid()) { play({url.toString()}); } else { m_pCommHintWid->updateWithMessage(tr("Parse failed")); } } break; } case ActionFactory::ActionKind::OpenDirectory: { #ifndef USE_TEST QString name = DFileDialog::getExistingDirectory(this, tr("Open folder"), lastOpenedPath(), DFileDialog::DontResolveSymlinks); #else QString name("/data/source/deepin-movie-reborn/movie"); #endif QFileInfo fi(name); if (fi.isDir() && fi.exists()) { Settings::get().setGeneralOption("last_open_path", fi.path()); play({name}); } break; } case ActionFactory::ActionKind::OpenFileList: { if (QDateTime::currentMSecsSinceEpoch() - m_pToolbox->getMouseTime() < 500) { return; } if (m_pEngine->getplaylist()->items().isEmpty() && m_pEngine->getplaylist()->getThumanbilRunning()) { return; } //允许影院打开音乐文件进行播放 #ifndef USE_TEST DFileDialog fileDialog; QStringList filenames; QString strVideoTypes = m_pEngine->video_filetypes.join(" "); QString strAudioTypes = m_pEngine->audio_filetypes.join(" "); if(!CompositingManager::isMpvExists()) { strVideoTypes = QString("*.ogg *.dv *.avi *.webm"); strAudioTypes = QString("*.wv *.flac *.mp3"); } fileDialog.setParent(this); fileDialog.setNameFilters({tr("All (*)"), QString("Video (%1)").arg(strVideoTypes), QString("Audio (%1)").arg(strAudioTypes)}); fileDialog.selectNameFilter(QString("Video (%1)").arg(strVideoTypes)); fileDialog.setDirectory(lastOpenedPath()); fileDialog.setFileMode(QFileDialog::ExistingFiles); if (fileDialog.exec() == QDialog::Accepted) { filenames = fileDialog.selectedFiles(); } else { break; } #else QStringList filenames; filenames << QString("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QString("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); #endif if (filenames.size()) { QFileInfo fileInfo(filenames[0]); if (fileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", fileInfo.path()); } play(filenames); } break; } case ActionFactory::ActionKind::OpenFile: { DFileDialog fileDialog(this); QStringList filename; QString strVideoTypes = m_pEngine->video_filetypes.join(" "); QString strAudioTypes = m_pEngine->audio_filetypes.join(" "); if(!CompositingManager::isMpvExists()) { strVideoTypes = QString("ogg dv avi webm"); strAudioTypes = QString("wv flac mp3"); } fileDialog.setParent(this); fileDialog.setNameFilters({tr("All (*)"), QString("Video (%1)").arg(strVideoTypes), QString("Audio (%1)").arg(strAudioTypes)}); fileDialog.selectNameFilter(QString("Video (%1)").arg(strVideoTypes)); fileDialog.setDirectory(lastOpenedPath()); fileDialog.setFileMode(QFileDialog::ExistingFiles); if (fileDialog.exec() == QDialog::Accepted) { filename = fileDialog.selectedFiles(); } else { break; } QFileInfo fileInfo(filename[0]); if (fileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", fileInfo.path()); play({filename[0]}); } break; } case ActionFactory::ActionKind::StartPlay: { if (m_pEngine->playlist().count() == 0) { requestAction(ActionFactory::ActionKind::OpenFileList); } else { if (m_pEngine->state() == PlayerEngine::CoreState::Idle && m_bIsFree) { //先显示分辨率,再显示静音 QSize sz = geometry().size(); auto msg = QString("%1x%2").arg(sz.width()).arg(sz.height()); QTimer::singleShot(500, [ = ]() { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_pCommHintWid->updateWithMessage(msg); } }); QVariant panscan = m_pEngine->getBackendProperty("panscan"); if ((panscan.isNull() || !CompositingManager::isMpvExists()) && Settings::get().isSet(Settings::ResumeFromLast)) { int restore_pos = Settings::get().internalOption("playlist_pos").toInt(); //Playback when the playlist is not loaded, this will result in the //last exit item without playing, because the playlist has not been //loaded into that file, so adding a thread waiting here. //TODO(xxxxp):It will cause direct opening of the cartoon? May need to optimize Model View while (m_pEngine->getplaylist()->getThumanbilRunning()) { QCoreApplication::processEvents(); } qInfo() << "playlist_pos: " << restore_pos << " current: " << m_pEngine->playlist().current(); if(m_pEngine->playlist().current() == -1) { //第一次直接启动影院(不是双击视频启动的影院),点击播放按钮时启动上次退出影院时播放的视频 restore_pos = qMax(qMin(restore_pos, m_pEngine->playlist().count() - 1), 0); requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, {restore_pos}); } } else { m_pEngine->play(); } } } break; } case ActionFactory::ActionKind::EmptyPlaylist: { //play list context menu empty playlist m_pEngine->clearPlaylist(); break; } case ActionFactory::ActionKind::TogglePlaylist: { if (m_bStartMini || m_bMiniMode) { return; } //快捷键操作不置回焦点 if (bIsShortcut) { m_pToolbox->clearPlayListFocus(); } /* The focus of the clear list button when the playlist is raised is also handled here. * Cancel the focus of the shortcut key when it is raised to avoid this problem */ m_bStartAnimation = true; QTimer::singleShot(150, [ = ]() { //延时是为了解决在窗口变化同时操作时,因窗口size未确定导致显示异常 m_bStartAnimation = false; if (bIsShortcut && toolbox()->getListBtnFocus()) { setFocus(); } if (m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::Closed && !m_pToolbox->isVisible()) { m_pToolbox->show(); } m_pPlaylist->togglePopup(bIsShortcut); if (!bFromUI) { reflectActionToUI(actionKind); } this->resumeToolsWindow(); }); break; } case ActionFactory::ActionKind::ToggleMiniMode: { if (m_bMouseMoved) { // can't toggle minimode,when window is moving break; } bool boardVendorFlag = false; int miniModeSpecialHandling = -1; #ifdef DTKCORE_CLASS_DConfigFile //需要查询是否支持特殊特殊机型打开迷你模式,例如hw机型 DConfig *dconfig = DConfig::create("org.deepin.movie","org.deepin.movie.minimode"); if(dconfig && dconfig->isValid() && dconfig->keyList().contains("miniModeSpecialHandling")){ miniModeSpecialHandling = dconfig->value("miniModeSpecialHandling").toInt(); } #endif qInfo() << "miniModeSpecialHandling value is:" << miniModeSpecialHandling; if(miniModeSpecialHandling != -1){ boardVendorFlag = miniModeSpecialHandling? true:false; }else{ QString result(cpuHardwareByDBus()); boardVendorFlag = result.contains("PGUW", Qt::CaseInsensitive) || result.contains("PANGU M900", Qt::CaseInsensitive); // || result.contains("KLVU", Qt::CaseInsensitive) // || result.contains("PGUV", Qt::CaseInsensitive) // || result.contains("KLVV", Qt::CaseInsensitive) // || result.contains("L540", Qt::CaseInsensitive); QProcess process; process.start("bash", QStringList() << "-c" << "dmidecode | grep -i \"String 4\""); process.waitForStarted(); process.waitForFinished(); result = process.readAll(); boardVendorFlag = boardVendorFlag || result.contains("PWC30", Qt::CaseInsensitive); //w525 process.close(); } qInfo() << "Whether special mini mode is supported? " << boardVendorFlag; int nDelayTime = 0; if (m_pPlaylist->state() == PlaylistWidget::Opened) { requestAction(ActionFactory::TogglePlaylist); nDelayTime = 500; } m_bStartMini = true; QTimer::singleShot(nDelayTime, this, [ = ] { if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } if (!bFromUI) { reflectActionToUI(actionKind); } if (boardVendorFlag) m_pEngine->makeCurrent(); toggleUIMode(); }); //Prevent abnormal focus position due to window state changes setFocus(); break; } case ActionFactory::ActionKind::MovieInfo: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { //fix 107355 //Add a mouse display to prevent the target is hidden qApp->setOverrideCursor(Qt::ArrowCursor); MovieInfoDialog mid(m_pEngine->playlist().currentInfo(), this); mid.exec(); } break; } case ActionFactory::ActionKind::WindowAbove: { m_bWindowAbove = !m_bWindowAbove; if (!utils::check_wayland_env()) { my_setStayOnTop(this, m_bWindowAbove); show(); } else { //wayland 置顶实现 QFunctionPointer setWindowProperty = qApp->platformFunction("_d_setWindowProperty"); if (m_bWindowAbove) { //置顶 reinterpret_cast(setWindowProperty)(windowHandle(), "_d_dwayland_staysontop", true); } else {//取消置顶 reinterpret_cast(setWindowProperty)(windowHandle(), "_d_dwayland_staysontop", false); } } if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::QuitFullscreen: { if (!m_pToolbox->getVolSliderIsHided()) { m_pToolbox->setVolSliderHide(); // esc降下音量条 break; } if (m_bMiniMode) { if (!bFromUI) { reflectActionToUI(ActionFactory::ToggleMiniMode); } toggleUIMode(); } else if (isFullScreen()) { requestAction(ActionFactory::ToggleFullscreen); if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } } else { //当焦点在播放列表上按下Esc键,播放列表收起,焦点回到列表按钮上 if (m_pPlaylist->state() == PlaylistWidget::Opened) { m_pToolbox->playlistClosedByEsc(); } } break; } case ActionFactory::ActionKind::ToggleFullscreen: { if (QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 600) { return; } else { m_nFullscreenTime = QDateTime::currentMSecsSinceEpoch(); } //音量条控件打开时全屏位置异常,全屏时关掉音量条 m_pAnimationlable->hide(); m_pToolbox->closeAnyPopup(); if (isFullScreen()) { setWindowState(windowState() & ~Qt::WindowFullScreen); if (m_bMaximized) { showMaximized(); } else { if (m_lastRectInNormalMode.isValid() && !m_bMiniMode && !isMaximized()) { setGeometry(m_lastRectInNormalMode); move(m_lastRectInNormalMode.x(), m_lastRectInNormalMode.y()); resize(m_lastRectInNormalMode.width(), m_lastRectInNormalMode.height()); if (utils::check_wayland_env()) m_pTitlebar->setFixedWidth(m_lastRectInNormalMode.width()); //bug 39991 } } if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } } else { if (utils::check_wayland_env()) { m_pToolbox->setVolSliderHide(); m_pToolbox->setButtonTooltipHide(); } //可能存在更好的方法(全屏后更新toolbox状态),后期修改 if (!m_pToolbox->getbAnimationFinash()) return; m_bMaximized = isMaximized(); // 记录全屏前是否是最大化窗口 mipsShowFullScreen(); if (isFullScreen()) { //The X86 platform draws on GiWidget, and the MIPS platform does not need to draw if (CompositingManager::get().platform() == Platform::Arm64 || CompositingManager::get().platform() == Platform::Alpha) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); QRect deskRect = QApplication::desktop()->availableGeometry(); pixelsWidth = qMax(117, pixelsWidth); m_pFullScreenTimeLable->setGeometry(deskRect.width() - pixelsWidth - 60, 40, pixelsWidth + 60, 36); m_pFullScreenTimeLable->show(); } } } } if (!bFromUI) { reflectActionToUI(actionKind); } activateWindow(); //Set focus back to main window after full screen, Prevent focus from going to the toolbar setFocus(); // fixed bug 103560 // the window state change signal is not sent under wayland, so call directly here // if the problem is fixed in the future, please remove this code if (utils::check_wayland_env()) { m_pToolbox->updateFullState(); } break; } case ActionFactory::ActionKind::PlaylistRemoveItem: { m_pPlaylist->removeClickedItem(bIsShortcut); break; } case ActionFactory::ActionKind::PlaylistOpenItemInFM: { m_pPlaylist->openItemInFM(); break; } case ActionFactory::ActionKind::PlaylistItemInfo: { m_pPlaylist->showItemInfo(); break; } case ActionFactory::ActionKind::ClockwiseFrame: { auto old = m_pEngine->videoRotation(); m_pEngine->setVideoRotation((old + 90) % 360); break; } case ActionFactory::ActionKind::CounterclockwiseFrame: { auto old = m_pEngine->videoRotation(); m_pEngine->setVideoRotation(((old - 90) + 360) % 360); break; } case ActionFactory::ActionKind::OrderPlay: { Settings::get().setInternalOption("playmode", 0); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::OrderPlay); break; } case ActionFactory::ActionKind::ShufflePlay: { Settings::get().setInternalOption("playmode", 1); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::ShufflePlay); break; } case ActionFactory::ActionKind::SinglePlay: { Settings::get().setInternalOption("playmode", 2); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::SinglePlay); break; } case ActionFactory::ActionKind::SingleLoop: { Settings::get().setInternalOption("playmode", 3); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::SingleLoop); break; } case ActionFactory::ActionKind::ListLoop: { Settings::get().setInternalOption("playmode", 4); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::ListLoop); break; } case ActionFactory::ActionKind::ZeroPointFiveTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 0.5; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OneTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OnePointTwoTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.2; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OnePointFiveTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.5; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::Double: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 2.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::Stereo: { m_pEngine->changeSoundMode(Backend::SoundMode::Stereo); m_pCommHintWid->updateWithMessage(tr("Stereo")); break; } case ActionFactory::ActionKind::LeftChannel: { m_pEngine->changeSoundMode(Backend::SoundMode::Left); m_pCommHintWid->updateWithMessage(tr("Left channel")); break; } case ActionFactory::ActionKind::RightChannel: { m_pEngine->changeSoundMode(Backend::SoundMode::Right); m_pCommHintWid->updateWithMessage(tr("Right channel")); break; } case ActionFactory::ActionKind::DefaultFrame: { m_pEngine->setVideoAspect(-1.0); break; } case ActionFactory::ActionKind::Ratio4x3Frame: { m_pEngine->setVideoAspect(4.0 / 3.0); break; } case ActionFactory::ActionKind::Ratio16x9Frame: { m_pEngine->setVideoAspect(16.0 / 9.0); break; } case ActionFactory::ActionKind::Ratio16x10Frame: { m_pEngine->setVideoAspect(16.0 / 10.0); break; } case ActionFactory::ActionKind::Ratio185x1Frame: { m_pEngine->setVideoAspect(1.85); break; } case ActionFactory::ActionKind::Ratio235x1Frame: { m_pEngine->setVideoAspect(2.35); break; } case ActionFactory::ActionKind::ToggleMute: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { m_pToolbox->changeMuteState(); } break; } case ActionFactory::ActionKind::VolumeUp: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { //使用鼠标滚轮调节音量时会执行此步骤 if (m_iAngleDelta != 0) m_pToolbox->calculationStep(m_iAngleDelta); m_pToolbox->volumeUp(); m_iAngleDelta = 0; } break; } case ActionFactory::ActionKind::VolumeDown: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { //使用鼠标滚轮调节音量时会执行此步骤 if (m_iAngleDelta != 0) m_pToolbox->calculationStep(m_iAngleDelta); m_pToolbox->volumeDown(); m_iAngleDelta = 0; } break; } case ActionFactory::ActionKind::GotoPlaylistSelected: { m_pEngine->playSelected(args[0].toInt()); break; } case ActionFactory::ActionKind::GotoPlaylistNext: { //防止焦点在上/下一曲按钮上切换时焦点跳到下一个按钮上 //下同 setFocus(); if (m_bIsFree == false) return ; m_bIsFree = false; if (isFullScreen() || isMaximized()) { m_bMovieSwitchedInFsOrMaxed = true; } m_pEngine->next(); break; } case ActionFactory::ActionKind::GotoPlaylistPrev: { setFocus(); if (m_bIsFree == false) return ; m_bIsFree = false; if (isFullScreen() || isMaximized()) { m_bMovieSwitchedInFsOrMaxed = true; } m_pEngine->prev(); break; } case ActionFactory::ActionKind::SelectTrack: { Q_ASSERT(args.size() == 1); m_pEngine->selectTrack(args[0].toInt()); m_pCommHintWid->updateWithMessage(tr("Track: %1").arg(args[0].toInt() + 1)); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::MatchOnlineSubtitle: { m_pEngine->loadOnlineSubtitle(m_pEngine->playlist().currentInfo().url); break; } case ActionFactory::ActionKind::SelectSubtitle: { Q_ASSERT(args.size() == 1); m_pEngine->selectSubtitle(args[0].toInt()); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::ChangeSubCodepage: { Q_ASSERT(args.size() == 1); m_pEngine->setSubCodepage(args[0].toString()); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::HideSubtitle: { m_pEngine->toggleSubtitle(); break; } case ActionFactory::ActionKind::SubDelay: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); break; } if (m_pEngine->playingMovieInfo().subs.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Unable to adjust the subtitle")); break; } m_pEngine->setSubDelay(0.5); double dDelay = m_pEngine->subDelay(); m_pCommHintWid->updateWithMessage(tr("Subtitle %1: %2s") .arg(dDelay > 0.0 ? tr("delayed") : tr("advanced")).arg(dDelay > 0.0 ? dDelay : -dDelay)); break; } case ActionFactory::ActionKind::SubForward: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); break; } if (m_pEngine->playingMovieInfo().subs.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Unable to adjust the subtitle")); break; } m_pEngine->setSubDelay(-0.5); double dDelay = m_pEngine->subDelay(); m_pCommHintWid->updateWithMessage(tr("Subtitle %1: %2s") .arg(dDelay > 0.0 ? tr("delayed") : tr("advanced")).arg(dDelay > 0.0 ? dDelay : -dDelay)); break; } case ActionFactory::ActionKind::AccelPlayback: { adjustPlaybackSpeed(ActionFactory::ActionKind::AccelPlayback); break; } case ActionFactory::ActionKind::DecelPlayback: { adjustPlaybackSpeed(ActionFactory::ActionKind::DecelPlayback); break; } case ActionFactory::ActionKind::ResetPlayback: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); setPlaySpeedMenuChecked(ActionFactory::ActionKind::OneTimes); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::LoadSubtitle: { QStringList filename; #ifndef USE_TEST DFileDialog fileDialog(this); fileDialog.setNameFilter(tr("Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)","All (*)")); fileDialog.setDirectory(lastOpenedPath()); if (fileDialog.exec() == QDialog::Accepted) { filename = fileDialog.selectedFiles(); } else { break; } #else filename = QStringList({"/data/source/deepin-movie-reborn/Hachiko.A.Dog's.Story.ass"}); #endif if (QFileInfo(filename[0]).exists()) { if (m_pEngine->state() == PlayerEngine::Idle) subtitleMatchVideo(filename[0]); else { auto success = m_pEngine->loadSubtitle(QFileInfo(filename[0])); m_pCommHintWid->updateWithMessage(success ? tr("Load successfully") : tr("Load failed")); } } else { m_pCommHintWid->updateWithMessage(tr("Load failed")); } break; } case ActionFactory::ActionKind::TogglePause: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->slotPauseDlnaTp(); break; } if (windowState() == Qt::WindowFullScreen && QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 500) { return; } else if(windowState() == Qt::WindowFullScreen) { m_nFullscreenTime = QDateTime::currentMSecsSinceEpoch(); } if (m_pEngine->state() == PlayerEngine::Idle && bIsShortcut) { if (m_pEngine->getplaylist()->getthreadstate()) { qInfo() << "playlist loadthread is running"; break; } requestAction(ActionFactory::StartPlay); } else { if (m_pEngine->state() == PlayerEngine::Paused) { //startPlayStateAnimation(true); if (!m_bMiniMode) { m_pAnimationlable->playAnimation(); } QTimer::singleShot(160, [ = ]() { m_pEngine->pauseResume(); }); } else { m_pEngine->pauseResume(); } } break; } case ActionFactory::ActionKind::SeekBackward: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->seekMircast(-5); break; } if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { m_pEngine->seekBackward(5); } break; } case ActionFactory::ActionKind::SeekForward: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->seekMircast(5); break; } if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { m_pEngine->seekForward(5); } break; } case ActionFactory::ActionKind::SeekAbsolute: { Q_ASSERT(args.size() == 1); m_pEngine->seekAbsolute(args[0].toInt()); break; } case ActionFactory::ActionKind::Settings: { handleSettings(initSettings()); break; } case ActionFactory::ActionKind::Screenshot: { QImage img = m_pEngine->takeScreenshot(); QString filePath = Settings::get().screenshotNameTemplate(); bool bSuccess = false; //条件编译产生误报(cppcheck) if (img.isNull()) qInfo() << __func__ << "pixmap is null"; else bSuccess = img.save(filePath); #ifdef USE_SYSTEM_NOTIFY // Popup notify. QDBusInterface notification("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", QDBusConnection::sessionBus()); QStringList actions; actions << "_open" << tr("View"); QVariantMap hints; hints["x-deepin-action-_open"] = QString("xdg-open,%1").arg(filePath); QList arg; arg << (QCoreApplication::applicationName()) // appname << ((unsigned int) 0) // id << QString("deepin-movie") // icon << tr("Film screenshot") // summary << QString("%1 %2").arg(tr("Saved to")).arg(filePath) // body << actions // actions << hints // hints << (int) -1; // timeout notification.callWithArgumentList(QDBus::AutoDetect, "Notify", arg); #else #define POPUP_ADAPTER(icon, text) do { \ m_pPopupWid->setIcon(icon);\ DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\ QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\ QFontMetrics fm(font);\ auto w = fm.boundingRect(text).width();\ m_pPopupWid->setMessage(text);\ m_pPopupWid->resize(w + 70, 52);\ m_pPopupWid->move((width() - m_pPopupWid->width()) / 2, height() - 127);\ m_pPopupWid->show();\ } while (0) if (bSuccess) { const QIcon icon = QIcon(":/resources/icons/short_ok.svg"); QString sText = QString(tr("The screenshot is saved")); popupAdapter(icon, sText); } else { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Failed to save the screenshot")); popupAdapter(icon, sText); } #undef POPUP_ADAPTER #endif break; } case ActionFactory::ActionKind::GoToScreenshotSolder: { QString filePath = Settings::get().screenshotLocation(); qInfo() << __func__ << filePath; QProcess *pProcess = new QProcess(); QObject::connect(pProcess, SIGNAL(finished(int)), pProcess, SLOT(deleteLater())); pProcess->start("dde-file-manager", QStringList(filePath)); pProcess->waitForStarted(3000); break; } case ActionFactory::ActionKind::BurstScreenshot: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { startBurstShooting(); } break; } case ActionFactory::ActionKind::ViewShortcut: { QRect rect = window()->geometry(); QPoint pos(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2); QStringList shortcutString; QString param1 = "-j=" + ShortcutManager::get().toJson(); param1.replace("Return", "Enter"); param1.replace("PgDown", "PageDown"); param1.replace("PgUp", "PageUp"); QString param2 = "-p=" + QString::number(pos.x()) + "," + QString::number(pos.y()); shortcutString << param1 << param2; if (!m_pShortcutViewProcess) { m_pShortcutViewProcess = new QProcess(); } m_pShortcutViewProcess->startDetached("deepin-shortcut-viewer", shortcutString); connect(m_pShortcutViewProcess, SIGNAL(finished(int)), m_pShortcutViewProcess, SLOT(deleteLater())); break; } case ActionFactory::ActionKind::NextFrame: { m_pEngine->nextFrame(); break; } case ActionFactory::ActionKind::PreviousFrame: { m_pEngine->previousFrame(); break; } default: break; } } void MainWindow::onBurstScreenshot(const QImage &frame, qint64 timestamp) { #define POPUP_ADAPTER(icon, text) do { \ m_pPopupWid->setIcon(icon);\ DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\ QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\ QFontMetrics fm(font);\ auto w = fm.boundingRect(text).width();\ m_pPopupWid->setMessage(text);\ m_pPopupWid->resize(w + 70, 52);\ m_pPopupWid->move((width() - m_pPopupWid->width()) / 2, height() - 127);\ m_pPopupWid->show();\ } while (0) qInfo() << m_listBurstShoots.size(); if (!frame.isNull()) { QString sMsg = QString(tr("Taking the screenshots, please wait...")); m_pCommHintWid->updateWithMessage(sMsg); m_listBurstShoots.append(qMakePair(frame, timestamp)); } if (m_listBurstShoots.size() >= 15 || frame.isNull()) { disconnect(m_pEngine, &PlayerEngine::notifyScreenshot, this, &MainWindow::onBurstScreenshot); m_pEngine->stopBurstScreenshot(); m_bInBurstShootMode = false; m_pToolbox->setEnabled(true); //fix bug:129205 // m_pTitlebar->titlebar()->setEnabled(true); if (m_pEventListener) m_pEventListener->setEnabled(!m_bMiniMode); if (frame.isNull()) { m_listBurstShoots.clear(); if (!m_bPausedBeforeBurst) m_pEngine->pauseResume(); return; } int nRet = -1; BurstScreenshotsDialog burstScreenshotsDialog(m_pEngine->playlist().currentInfo()); burstScreenshotsDialog.updateWithFrames(m_listBurstShoots); #ifdef USE_TEST burstScreenshotsDialog.show(); #else nRet = burstScreenshotsDialog.exec(); #endif qInfo() << "BurstScreenshot done"; m_listBurstShoots.clear(); if (!m_bPausedBeforeBurst) m_pEngine->pauseResume(); if (nRet == QDialog::Accepted) { QString sPosterPath = burstScreenshotsDialog.savedPosterPath(); if (QFileInfo::exists(sPosterPath)) { const QIcon icon = QIcon(":/resources/icons/short_ok.svg"); QString sText = QString(tr("The screenshot is saved")); popupAdapter(icon, sText); } else { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Failed to save the screenshot")); popupAdapter(icon, sText); } } } } void MainWindow::startBurstShooting() { //Repair 40S video corresponding to the corresponding connected screenshot if (m_pEngine->duration() <= 40) return; m_bInBurstShootMode = true; m_pToolbox->setEnabled(false); // m_pTitlebar->titlebar()->setEnabled(false); if (m_pEventListener) m_pEventListener->setEnabled(false); m_bPausedBeforeBurst = m_pEngine->paused(); connect(m_pEngine, &PlayerEngine::notifyScreenshot, this, &MainWindow::onBurstScreenshot); m_pEngine->burstScreenshot(); } void MainWindow::handleSettings(DSettingsDialog *dsd) { int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); int decodeMode = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); int voMode = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); int effectMode = Settings::get().settings()->getOption("base.decode.Effect").toInt(); #ifndef USE_TEST dsd->exec(); #else dsd->setObjectName("DSettingsDialog"); dsd ->show(); #endif if (Settings::get().settings()->getOption("base.decode.select").toInt() != decodeType && (Settings::get().settings()->getOption("base.decode.select").toInt() == 3 || decodeType == 3)) { DDialog msgBox; msgBox.setIcon(QIcon(":/resources/icons/warning.svg")); msgBox.setMessage(QObject::tr("The custom decoding method needs to be restarted before it can take effect,\nand whether to restart it?")); msgBox.addButton(tr("Cancel"), DDialog::ButtonType::ButtonNormal); msgBox.addButton(tr("Restart"), true, DDialog::ButtonType::ButtonWarning); msgBox.setOnButtonClickedClose(true); if (msgBox.exec() == 1) { Settings::get().settings()->setOption("set.start.crash", "2"); qApp->exit(); QProcess::startDetached(qApp->applicationFilePath(), QStringList() << "--restart"); } else { if (decodeType != 3) { Settings::get().settings()->setOption("base.decode.select", decodeMode); } Settings::get().settings()->setOption("base.decode.Decodemode", decodeMode); Settings::get().settings()->setOption("base.decode.Videoout", voMode); } } else { if (decodeType == 3) { int newDecodeMode = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); int newVoMode = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); int newEffectMode = Settings::get().settings()->getOption("base.decode.Effect").toInt(); if (newEffectMode != effectMode || newVoMode != voMode || newDecodeMode != decodeMode) { Settings::get().crashCheck(); DDialog msgBox; msgBox.setIcon(QIcon(":/resources/icons/warning.svg")); msgBox.setMessage(QObject::tr("The custom decoding method needs to be restarted before it can take effect,\nand whether to restart it?")); msgBox.addButton(tr("Cancel"), DDialog::ButtonType::ButtonNormal); msgBox.addButton(tr("Restart"), true, DDialog::ButtonType::ButtonWarning); msgBox.setOnButtonClickedClose(true); if (msgBox.exec() == 1) { Settings::get().settings()->setOption("set.start.crash", "2"); qApp->exit(); QProcess::startDetached(qApp->applicationFilePath(), QStringList() << "--restart"); } else { if (decodeType != 3) { Settings::get().settings()->setOption("base.decode.select", decodeType); } Settings::get().settings()->setOption("base.decode.Decodemode", decodeMode); Settings::get().settings()->setOption("base.decode.Videoout", voMode); } } } } Settings::get().settings()->sync(); } DSettingsDialog *MainWindow::initSettings() { if (m_pDSettingDilog) return m_pDSettingDilog; m_pDSettingDilog = new DSettingsDialog(this); m_pDSettingDilog->widgetFactory()->registerWidget("selectableEdit", createSelectableLineEditOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("effectCombobox", createEffectOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("videoOutCombobox", createVoOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("decoderCombobox", createDecodeOptionHandle); m_pDSettingDilog->setProperty("_d_QSSThemename", "dark"); m_pDSettingDilog->setProperty("_d_QSSFilename", "DSettingsDialog"); m_pDSettingDilog->updateSettings(Settings::get().settings()); //hack: QSpinBox *pSpinBox = m_pDSettingDilog->findChild("OptionDSpinBox"); if (pSpinBox) { pSpinBox->setMinimum(8); } // hack: reset is set to default by QDialog, which makes lineedit's enter // press is responded by reset button QPushButton *pPushButton = m_pDSettingDilog->findChild("SettingsContentReset"); pPushButton->setDefault(false); pPushButton->setAutoDefault(false); int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); if (decodeType != 3) { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(effectFrame->parent())->hide(); dynamic_cast(videoFrame->parent())->hide(); dynamic_cast(decodeFrame->parent())->hide(); } else { if (utils::check_wayland_env()) { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(effectFrame->parent())->hide(); dynamic_cast(videoFrame->parent())->hide(); dynamic_cast(decodeFrame->parent())->show(); } else { int effectIndex = Settings::get().settings()->getOption(QString("base.decode.Effect")).toInt(); if (effectIndex == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else if (effectIndex == 1) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); if (Settings::get().settings()->getOption("base.decode.Videoout").toInt() == 0 && Settings::get().settings()->getOption("base.decode.Effect").toInt() == 2) { dynamic_cast(decodeFrame->parent())->hide(); } else dynamic_cast(decodeFrame->parent())->show(); } } } connect(&Settings::get(), &Settings::setDecodeModel, this, [=](QString key, QVariant value){ if (key == "base.decode.select") { int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); if (decodeType != 3) { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(effectFrame->parent())->hide(); dynamic_cast(videoFrame->parent())->hide(); dynamic_cast(decodeFrame->parent())->hide(); } else { if (utils::check_wayland_env()) { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); dynamic_cast(effectFrame->parent())->show(); int effectIndex = Settings::get().settings()->getOption(QString("base.decode.Effect")).toInt(); if (effectIndex == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); if (Settings::get().settings()->getOption("base.decode.Videoout").toInt() == 0 && Settings::get().settings()->getOption("base.decode.Effect").toInt() == 2) dynamic_cast(decodeFrame->parent())->hide(); else dynamic_cast(decodeFrame->parent())->show(); } } } } }, Qt::DirectConnection); connect(&Settings::get(), &Settings::baseChanged, this, [=](QString key, QVariant value) { if (!utils::check_wayland_env()) { int visable = value.toInt(); if (key == "base.decode.Effect") { if (visable == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); if (Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt() != 0 || visable == 1) { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } } } else if (key == "base.decode.Videoout") { int eff = Settings::get().settings()->getOption("base.decode.Effect").toInt(); if (visable || eff == 1) { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } } } }, Qt::DirectConnection); return m_pDSettingDilog; } void MainWindow::play(const QList &listFiles) { QList lstValid; QList lstDir; QList lstFile; if (listFiles.isEmpty()) m_pEngine->play(); if (listFiles.count() == 1 && QUrl(listFiles[0]).scheme().startsWith("dvd")) { m_dvdUrl = QUrl(listFiles[0]); if (!m_pEngine->addPlayFile(m_dvdUrl)) { auto msg = QString(tr("Cannot play the disc")); m_pCommHintWid->updateWithMessage(msg); return; } else { // todo: Disable toolbar buttons auto msg = QString(tr("Reading DVD files...")); m_pDVDHintWid->updateWithMessage(msg, true); } m_pEngine->playByName(m_dvdUrl); return; } for (QString strFile : listFiles) { if(QFileInfo(QUrl(strFile).toString()).isDir()){ lstDir << strFile; } else { lstFile << strFile; } } lstValid = m_pEngine->addPlayFiles(lstFile); // 先添加到播放列表再播放 m_bHaveFile = !lstValid.isEmpty(); if (m_bHaveFile) { //The disposal is false here to prevent the introduction of the folder from blocking m_pEngine->playByName(lstValid[0]); } if (!lstDir.isEmpty()) { m_pEngine->blockSignals(true); QtConcurrent::run(m_pEngine, &PlayerEngine::addPlayFs, lstDir); } else { m_bHaveFile = false; } } void MainWindow::slotFinishedAddFiles(QList lstValid) { if(lstValid.count() > 0 && !m_bHaveFile) { if (!isHidden()) { activateWindow(); } m_pEngine->playByName(lstValid[0]); } //The disposal is false here to prevent the introduction of the folder from blocking m_bHaveFile = false; } void MainWindow::updateProxyGeometry() { QRect view_rect = rect(); m_pEngine->resize(view_rect.size()); if (!m_bMiniMode) { if (m_pTitlebar) { m_pTitlebar->setFixedWidth(view_rect.width()); } if (m_pToolbox) { QRect rfs; if (m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::State::Opened && !utils::check_wayland_env()) { rfs = QRect(5, height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - rect().top() - 5, rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 7)); } else { rfs = QRect(5, height() - TOOLBOX_HEIGHT - rect().top() - 5, rect().width() - 10, TOOLBOX_HEIGHT); } #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { if (m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::State::Opened && !utils::check_wayland_env()) { rfs = QRect(5, height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT) - rect().top() - 5, rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT + 7)); } else { rfs = QRect(5, height() - TOOLBOX_DSIZEMODE_HEIGHT - rect().top() - 5, rect().width() - 10, TOOLBOX_DSIZEMODE_HEIGHT); } } #endif m_pToolbox->setGeometry(rfs); m_pToolbox->updateMircastWidget(rfs.topRight()); } if (m_pPlaylist && !m_pPlaylist->toggling()) { int toolbox_height = TOOLBOX_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { toolbox_height = TOOLBOX_DSIZEMODE_HEIGHT; } #endif #ifndef __sw_64__ QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height + 5)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); if (utils::check_wayland_env()) { fixed = QRect((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); } #else QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height - 1)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); #endif m_pPlaylist->setGeometry(fixed); } } } void MainWindow::suspendToolsWindow() { if (!m_bMiniMode) { if (m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::Opened) return; // if (qApp->applicationState() == Qt::ApplicationInactive) { // } else { // menus are popped up // NOTE: menu keeps focus while hidden, so focusWindow is not used if (ActionFactory::get().mainContextMenu()->isVisible() || ActionFactory::get().titlebarMenu()->isVisible()) return; QPoint cursor = mapFromGlobal(QCursor::pos()); if (m_pToolbox->isVisible()) { if (m_pToolbox->getMircast()->isVisible() && m_pToolbox->getMircast()->geometry().contains(cursor) && !m_bLastIsTouch) return; if (insideToolsArea(cursor) && !m_bLastIsTouch) return; } else { if (m_pToolbox->geometry().contains(cursor)) { return; } } // } if (m_pToolbox->anyPopupShown()) return; if (m_pEngine->state() == PlayerEngine::Idle) return; if (m_autoHideTimer.isActive()) return; if (isFullScreen()) { if (qApp->focusWindow() == this->windowHandle()) { qApp->setOverrideCursor(Qt::BlankCursor); } else { qApp->setOverrideCursor(Qt::ArrowCursor); } } if (m_pToolbox->getbAnimationFinash()) { m_pToolbox->hide(); if (m_pToolbox->getMircast()->isVisible()) m_pToolbox->hideMircastWidget(); } //reset focus to mainWindow when the titlebar and toolbox is hedden //the tab focus will be re-executed in the order set m_pTitlebar->setFocus(); m_pTitlebar->hide(); //隐藏操作应放在设置焦点后 } else { if (m_autoHideTimer.isActive()) return; m_pMiniPlayBtn->hide(); m_pMiniCloseBtn->hide(); m_pMiniQuitMiniBtn->hide(); } } void MainWindow::resumeToolsWindow() { if (m_pEngine->state() != PlayerEngine::Idle && qApp->applicationState() == Qt::ApplicationActive) { // playlist's previous state was Opened if (m_pPlaylist && m_pPlaylist->state() != PlaylistWidget::Closed && !frameGeometry().contains(QCursor::pos())) { goto _finish; } } qApp->restoreOverrideCursor(); setCursor(Qt::ArrowCursor); if (!m_bMiniMode) { if (!m_bTouchChangeVolume) { m_pTitlebar->setVisible(!isFullScreen()); m_pToolbox->show(); } else { m_pToolbox->hide(); } } else { //迷你模式根据半屏模式显示控件 int nScreenHeight = QApplication::desktop()->availableGeometry().height(); QRect rt = rect(); if(rt.height() >= nScreenHeight-100){ m_pMiniPlayBtn->setVisible(false); m_pMiniCloseBtn->setVisible(false); m_pMiniQuitMiniBtn->setVisible(false); m_pToolbox->setVisible(false); }else { m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); } } _finish: m_autoHideTimer.start(AUTOHIDE_TIMEOUT); } void MainWindow::checkOnlineState(const bool bIsOnline) { if (!bIsOnline) { this->sendMessage(QIcon(":/icons/deepin/builtin/icons/ddc_warning_30px.svg"), QObject::tr("Network disconnected")); } } void MainWindow::checkOnlineSubtitle(const OnlineSubtitle::FailReason reason) { if (OnlineSubtitle::FailReason::NoSubFound == reason) { m_pCommHintWid->updateWithMessage(tr("No matching online subtitles")); } } void MainWindow::checkWarningMpvLogsChanged(const QString sPrefix, const QString sText) { QString warningMessage(sText); qInfo() << "checkWarningMpvLogsChanged" << sText; if (warningMessage.contains(QString("Hardware does not support image size 3840x2160"))) { requestAction(ActionFactory::TogglePause); DDialog *pDialog = new DDialog; pDialog->setFixedWidth(440); QImage icon = utils::LoadHiDPIImage(":/resources/icons/warning.svg"); QPixmap pix = QPixmap::fromImage(icon); pDialog->setIcon(QIcon(pix)); pDialog->setMessage(tr("4K video may be stuck")); pDialog->addButton(tr("OK"), true, DDialog::ButtonRecommend); QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(); effect->setOffset(0, 4); effect->setColor(QColor(0, 145, 255, 76)); effect->setBlurRadius(4); pDialog->getButton(0)->setFixedWidth(340); pDialog->getButton(0)->setGraphicsEffect(effect); #ifndef USE_TEST pDialog->exec(); #else pDialog->show(); pDialog->deleteLater(); #endif QTimer::singleShot(500, [ = ]() { //startPlayStateAnimation(true); if (!m_bMiniMode) { m_pAnimationlable->playAnimation(); } m_pEngine->pauseResume(); }); } } void MainWindow::slotdefaultplaymodechanged(const QString &sKey, const QVariant &value) { if (sKey != "base.play.playmode") { qInfo() << "Settings key error"; return; } QPointer modeOpt = Settings::get().settings()->option("base.play.playmode"); QString sMode = modeOpt->data("items").toStringList()[value.toInt()]; if (sMode == tr("Order play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::OrderPlay); reflectActionToUI(ActionFactory::OrderPlay); } else if (sMode == tr("Shuffle play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::ShufflePlay); reflectActionToUI(ActionFactory::ShufflePlay); } else if (sMode == tr("Single play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::SinglePlay); reflectActionToUI(ActionFactory::SinglePlay); } else if (sMode == tr("Single loop")) { m_pEngine->playlist().setPlayMode(PlaylistModel::SingleLoop); reflectActionToUI(ActionFactory::SingleLoop); } else if (sMode == tr("List loop")) { m_pEngine->playlist().setPlayMode(PlaylistModel::ListLoop); reflectActionToUI(ActionFactory::ListLoop); } } void MainWindow::onSetDecodeModel(const QString &key, const QVariant &value) { Q_UNUSED(key); MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(pMpvProxy && value.toInt() != 3) pMpvProxy->setDecodeModel(value); } void MainWindow::onRefreshDecode() { MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(pMpvProxy) pMpvProxy->refreshDecode(); } void MainWindow::my_setStayOnTop(const QWidget *pWidget, bool bOn) { Q_ASSERT(pWidget); const auto display = QX11Info::display(); const auto screen = QX11Info::appScreen(); const auto wmStateAtom = XInternAtom(display, kAtomNameWmState, false); const auto stateAboveAtom = XInternAtom(display, kAtomNameWmStateAbove, false); const auto stateStaysOnTopAtom = XInternAtom(display, kAtomNameWmStateStaysOnTop, false); XEvent xev; memset(&xev, 0, sizeof(xev)); xev.xclient.type = ClientMessage; xev.xclient.message_type = wmStateAtom; xev.xclient.display = display; xev.xclient.window = pWidget->winId(); xev.xclient.format = 32; xev.xclient.data.l[0] = bOn ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; xev.xclient.data.l[1] = stateAboveAtom; xev.xclient.data.l[2] = stateStaysOnTopAtom; xev.xclient.data.l[3] = 1; XSendEvent(display, QX11Info::appRootWindow(screen), false, SubstructureRedirectMask | SubstructureNotifyMask, &xev); XFlush(display); } void MainWindow::slotmousePressTimerTimeOut() { m_mousePressTimer.stop(); if (m_bMiniMode || m_bInBurstShootMode || !m_bMousePressed) return; if (insideToolsArea(QCursor::pos())) return; resumeToolsWindow(); m_bMousePressed = false; m_bIsTouch = false; } void MainWindow::slotPlayerStateChanged() { bool bAudio = false; PlayerEngine *pEngine = dynamic_cast(sender()); if (!pEngine) return; setInit(pEngine->state() != PlayerEngine::Idle); resumeToolsWindow(); updateWindowTitle(); // delayed checking if engine is still idle, in case other videos are schedulered (next/prev req) // and another resize event will happen after that QTimer::singleShot(100, [ = ]() { if (pEngine->state() == PlayerEngine::Idle && !m_bMiniMode && windowState() == Qt::WindowNoState && !isFullScreen()) { this->setMinimumSize(QSize(614, 500)); this->resize(850, 600); } }); if (m_pEngine->playlist().count() > 0) { bAudio = m_pEngine->currFileIsAudio(); } if (m_pEngine->state() == PlayerEngine::CoreState::Playing && bAudio) { m_pMovieWidget->startPlaying(); } else if ((m_pEngine->state() == PlayerEngine::CoreState::Paused) && bAudio) { m_pMovieWidget->pausePlaying(); } else if (pEngine->state() == PlayerEngine::CoreState::Idle) { m_pMovieWidget->stopPlaying(); } } void MainWindow::slotFocusWindowChanged() { if (qApp->focusWindow() != windowHandle()) suspendToolsWindow(); else resumeToolsWindow(); } /*void MainWindow::slotElapsedChanged() { #ifndef __mips__ PlayerEngine *engine = dynamic_cast(sender()); if (engine) { m_pProgIndicator->updateMovieProgress(engine->duration(), engine->elapsed()); } #endif }*/ void MainWindow::slotFileLoaded() { PlayerEngine *pEngine = dynamic_cast(sender()); if (!pEngine) return; m_nRetryTimes = 0; if (utils::check_wayland_env() && windowState() == Qt::WindowNoState && m_lastRectInNormalMode.isValid()) { const MovieInfo &mi = pEngine->playlist().currentInfo().mi; if (!m_bMiniMode) { if (utils::check_wayland_env()) { //wayland下存在最大化>全屏->全屏->最小化,窗口超出界面问题。且现在用不着videosize大小窗口 m_lastRectInNormalMode.setSize({850, 600}); } else { m_lastRectInNormalMode.setSize({mi.width, mi.height}); } } } this->resizeByConstraints(); m_bIsFree = true; } void MainWindow::slotUrlpause(bool bStatus) { if (bStatus) { auto msg = QString(tr("Buffering...")); m_pCommHintWid->updateWithMessage(msg); } } void MainWindow::slotFontChanged(const QFont &/*font*/) { #ifndef __mips__ QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6)); m_pToolbox->getfullscreentimeLabel()->setMinimumWidth(fm.width(m_pToolbox->getfullscreentimeLabel()->text())); m_pToolbox->getfullscreentimeLabelend()->setMinimumWidth(fm.width(m_pToolbox->getfullscreentimeLabelend()->text())); int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); QRect deskRect = QApplication::desktop()->availableGeometry(); m_pFullScreenTimeLable->setGeometry(deskRect.width() - pixelsWidth - 32, 40, pixelsWidth + 32, 36); #endif } void MainWindow::slotMuteChanged(bool bMute) { m_pEngine->setMute(bMute); if (bMute) { m_pCommHintWid->updateWithMessage(tr("Mute")); } else { m_pCommHintWid->updateWithMessage(tr("Volume: %1%").arg(m_nDisplayVolume)); // 取消静音时显示音量提示 } } /*void MainWindow::slotAwaacelModeChanged(const QString &sKey, const QVariant &value) { if (sKey != "base.play.hwaccel") { qInfo() << "Settings key error"; return; } setHwaccelMode(value); }*/ void MainWindow::slotVolumeChanged(int nVolume) { m_nDisplayVolume = nVolume; m_pEngine->changeVolume(nVolume); if (m_pPresenter) { m_pPresenter->slotvolumeChanged(); } if (nVolume == 0) { m_pCommHintWid->updateWithMessage(tr("Mute")); } else { m_pCommHintWid->updateWithMessage(tr("Volume: %1%").arg(nVolume)); } } void MainWindow::slotWMChanged() { m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); m_pAnimationlable->setWM(m_bIsWM); m_pCommHintWid->setWM(m_bIsWM); } void MainWindow::slotMediaError() { m_pCommHintWid->updateWithMessage(tr("Cannot open file or stream")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } void MainWindow::mircastSuccess(QString name) { if (m_pEngine->state() == PlayerEngine::Playing) m_pEngine->pauseResume(); updateActionsState(); m_pMircastShowWidget->setDeviceName(name); m_pMircastShowWidget->show(); m_pToolbox->hideMircastWidget(); } void MainWindow::exitMircast() { if (m_pEngine->state() == PlayerEngine::Playing) m_pEngine->pauseResume(); m_pEngine->seekAbsolute(m_pToolbox->getSlider()->value()); updateActionsState(); m_pToolbox->getMircast()->slotExitMircast(); m_pMircastShowWidget->hide(); } QString MainWindow::cpuHardwareByDBus() { QString validFrequency = "CurrentSpeed"; QDBusInterface systemInfoInterface("org.deepin.dde.SystemInfo1", "/org/deepin/dde/SystemInfo1", "org.freedesktop.DBus.Properties", QDBusConnection::sessionBus()); qDebug() << "systemInfoInterface.isValid: " << systemInfoInterface.isValid(); QDBusMessage replyCpu = systemInfoInterface.call("Get", "org.deepin.dde.SystemInfo1", "CPUHardware"); QList outArgsCPU = replyCpu.arguments(); if (outArgsCPU.count()) { QString CPUHardware = outArgsCPU.at(0).value().variant().toString(); qInfo() << __FUNCTION__ << __LINE__ << "Current CPUHardware: " << CPUHardware; return CPUHardware; } return ""; } void MainWindow::checkErrorMpvLogsChanged(const QString sPrefix, const QString sText) { QString sErrorMessage(sText); qInfo() << "checkErrorMpvLogsChanged" << sText; if (sErrorMessage.toLower().contains(QString("avformat_open_input() failed"))) { //do nothing } else if (sErrorMessage.toLower().contains(QString("fail")) && sErrorMessage.toLower().contains(QString("open")) && !sErrorMessage.toLower().contains(QString("dlopen"))) { m_pCommHintWid->updateWithMessage(tr("Cannot open file or stream")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } else if (sErrorMessage.toLower().contains(QString("fail")) && (sErrorMessage.toLower().contains(QString("format")))) { //Open the URL there is three cases of legal paths, illegal paths, and semi-legal //paths, which only processes the prefix legality, the suffix is not legal //please refer to other places to modify //powered by xxxxp if (m_pEngine->playlist().currentInfo().mi.title.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Parse failed")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } else { if (m_nRetryTimes < 10) { m_nRetryTimes++; requestAction(ActionFactory::ActionKind::StartPlay); } else { m_nRetryTimes = 0; m_pCommHintWid->updateWithMessage(tr("Invalid file")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } } } else if (sErrorMessage.toLower().contains(QString("moov atom not found"))) { m_pCommHintWid->updateWithMessage(tr("Invalid file")); } else if (sErrorMessage.toLower().contains(QString("couldn't open dvd device"))) { m_pCommHintWid->updateWithMessage(tr("Please insert a CD/DVD")); } else if (sErrorMessage.toLower().contains(QString("incomplete frame")) || sErrorMessage.toLower().contains(QString("MVs not available"))) { } else if ((sErrorMessage.toLower().contains(QString("can't"))) && (sErrorMessage.toLower().contains(QString("open")))) { m_pCommHintWid->updateWithMessage(tr("No video file found")); } } void MainWindow::closeEvent(QCloseEvent *pEvent) { qInfo() << __func__; if(m_pMircastShowWidget&&m_pMircastShowWidget->isVisible()) { slotExitMircast(); } if (m_bInBurstShootMode) { pEvent->ignore(); return; } if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } Settings::get().onSetCrash(); if (Settings::get().isSet(Settings::ResumeFromLast)) { int nCur = 0; nCur = m_pEngine->playlist().current(); if (nCur >= 0) { Settings::get().setInternalOption("playlist_pos", nCur); } } int volume = Settings::get().internalOption("global_volume").toInt(); if (m_nDisplayVolume != volume) { static QEventLoop loop; QFileSystemWatcher fileWatcher; fileWatcher.addPath(Settings::get().configPath()); connect(&fileWatcher, &QFileSystemWatcher::fileChanged, this, [=](){ loop.quit(); }); //关闭窗口时保存音量值 Settings::get().setInternalOption("global_volume", m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume); loop.exec(); } m_pEngine->savePlaybackPosition(); pEvent->accept(); if (utils::check_wayland_env()) { #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::ClearWhenQuit)) { m_pEngine->playlist().clearPlaylist(); } else { //persistently save current playlist m_pEngine->playlist().savePlaylist(); } #endif // xcb close slow so add this for wayland by xxj DMainWindow::closeEvent(pEvent); m_pEngine->stop(); disconnect(m_pEngine, nullptr, nullptr, nullptr); disconnect(&m_pEngine->playlist(), nullptr, nullptr, nullptr); if (m_pEngine) { delete m_pEngine; m_pEngine = nullptr; } CompositingManager::get().setTestFlag(true); /*lmh0724临时规避退出崩溃问题*/ QApplication::quit(); _Exit(0); } } void MainWindow::wheelEvent(QWheelEvent *pEvent) { if (insideToolsArea(pEvent->pos()) || insideResizeArea(pEvent->globalPos())) return; if (m_pToolbox->isInMircastWidget(pEvent->pos())) return; if (m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::Opened) { pEvent->ignore(); return; } if (pEvent->buttons() == Qt::NoButton && pEvent->modifiers() == Qt::NoModifier && m_pToolbox->getVolSliderIsHided()) { m_iAngleDelta = pEvent->angleDelta().y() ; if( m_iAngleDelta < -240){ //对滚轮距离出现异常值时的约束处理 m_iAngleDelta = -120; }else if(m_iAngleDelta > 240 ){ m_iAngleDelta = 120; } requestAction(pEvent->angleDelta().y() > 0 ? ActionFactory::VolumeUp : ActionFactory::VolumeDown); } } void MainWindow::focusInEvent(QFocusEvent *pEvent) { resumeToolsWindow(); } void MainWindow::hideEvent(QHideEvent *pEvent) { QMainWindow::hideEvent(pEvent); } void MainWindow::showEvent(QShowEvent *pEvent) { m_pAnimationlable->raise(); m_pTitlebar->raise(); m_pToolbox->raise(); if (m_pPlaylist) { m_pPlaylist->raise(); } //判断屏幕可用坐标与应用的geometry是否有交集,没有就设置到可用屏幕坐标中 QRect geoRect = geometry(); QRect deskRect = QApplication::desktop()->availableGeometry(geoRect.topLeft()); if(!deskRect.intersects(geoRect)) { setGeometry(QRect(deskRect.x(), deskRect.y(), geoRect.width(), geoRect.width())); } resumeToolsWindow(); if (!qgetenv("FLATPAK_APPID").isEmpty()) { qInfo() << "workaround for flatpak"; if (m_pPlaylist->isVisible()) updateProxyGeometry(); } QMainWindow::showEvent(pEvent); } void MainWindow::resizeByConstraints(bool bForceCentered) { if (m_pEngine->state() == PlayerEngine::Idle || m_pEngine->playlist().count() == 0) { m_pTitlebar->setTitletxt(QString()); return; } if (m_bMiniMode || isFullScreen() || isMaximized()) { return; } qInfo() << __func__; updateWindowTitle(); //lmh0710修复窗口变成影片分辨率问题 if (utils::check_wayland_env()) { return; } const MovieInfo &mi = m_pEngine->playlist().currentInfo().mi; QSize vidoeSize = m_pEngine->videoSize(); if (CompositingManager::get().platform() == Platform::Mips) m_pCommHintWid->syncPosition(); if (vidoeSize.isEmpty()) { vidoeSize = QSize(mi.width, mi.height); qInfo() << mi.width << mi.height; } auto geom = qApp->desktop()->availableGeometry(this); if (vidoeSize.width() > geom.width() || vidoeSize.height() > geom.height()) { vidoeSize.scale(geom.width(), geom.height(), Qt::KeepAspectRatio); } qInfo() << "original: " << size() << "requested: " << vidoeSize; if (size() == vidoeSize) return; if (bForceCentered) { QRect r; r.setSize(vidoeSize); r.moveTopLeft({(geom.width() - r.width()) / 2, (geom.height() - r.height()) / 2}); if (utils::check_wayland_env()) { this->setGeometry(r); this->move(r.x(), r.y()); this->resize(r.width(), r.height()); } } else { if (utils::check_wayland_env()) { QRect r = this->geometry(); r.setSize(vidoeSize); this->setGeometry(r); this->move(r.x(), r.y()); this->resize(r.width(), r.height()); } } } // 若长≥高,则长≤528px   若长≤高,则高≤528px. // 简而言之,只看最长的那个最大为528px. void MainWindow::updateSizeConstraints() { QSize size; if (m_bMiniMode) { size = QSize(40, 40); } else { size = QSize(614, 500); } this->setMinimumSize(size); } void MainWindow::updateGeometryNotification(const QSize &sz) { QString sMsg = QString("%1x%2").arg(sz.width()).arg(sz.height()); if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_pCommHintWid->updateWithMessage(sMsg); } //Wayland's player is normal to active, so add a judgment here if ((windowState() == Qt::WindowNoState || utils::check_wayland_env() && windowState() == Qt::WindowActive) && !m_isSettingMiniMode && !m_bMiniMode && !m_bMaximized) { m_lastRectInNormalMode = geometry(); } } void MainWindow::LimitWindowize() { if (!m_bMiniMode && (geometry().width() == 380 || geometry().height() == 380)) { setGeometry(m_lastRectInNormalMode); } } void MainWindow::resizeEvent(QResizeEvent *pEvent) { qInfo() << __func__ << geometry(); if (utils::check_wayland_env()) { if (m_pToolbox) { m_pToolbox->setFixedWidth(this->width() - 10); } } if (m_pProgIndicator && isFullScreen()) { m_pProgIndicator->move(geometry().width() - m_pProgIndicator->width() - 18, 8); } // modify 4.1 Limit video to mini mode size by thx LimitWindowize(); updateSizeConstraints(); updateProxyGeometry(); QTimer::singleShot(0, [ = ]() { updateWindowTitle(); }); updateGeometryNotification(geometry().size()); //add by heyi /******* * 之前为修改全屏下呼出右键菜单任务栏不消失问题 * 此处修改存在逻辑错误,未判断窗口初始状态是否为置顶 * 此处先注释掉完成当前版本功能,sp3开发人员根据后期开发状态进行修改 *******/ // if (!isFullScreen()) { // my_setStayOnTop(this, false); // } if (CompositingManager::get().platform() != Platform::X86) { QPoint relativePoint = mapToGlobal(QPoint(0, 0)); m_pToolbox->updateSliderPoint(relativePoint); } m_pMovieWidget->resize(rect().size()); m_pMovieWidget->move(0, 0); m_pMircastShowWidget->resize(rect().size()); m_pMircastShowWidget->updateView(); m_pMircastShowWidget->move(0, 0); m_pAnimationlable->move(QPoint((width() - m_pAnimationlable->width()) / 2, (height() - m_pAnimationlable->height()) / 2)); if(m_bMiniMode) {//迷你模式显示与半屏模式处理 int nScreenHeight = QApplication::desktop()->availableGeometry().height(); QRect rt = rect(); if(rt.height() >= nScreenHeight-100){ m_pMiniPlayBtn->setVisible(false); m_pMiniCloseBtn->setVisible(false); m_pMiniQuitMiniBtn->setVisible(false); m_pToolbox->setVisible(false); }else { m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); } } } void MainWindow::updateWindowTitle() { if (m_pEngine->state() != PlayerEngine::Idle) { const MovieInfo &mi = m_pEngine->playlist().currentInfo().mi; QString sTitle = m_pTitlebar->fontMetrics().elidedText(mi.title, Qt::ElideMiddle, m_pTitlebar->contentsRect().width() - 400); m_pTitlebar->setTitletxt(sTitle); setWindowTitle(mi.filePath); m_pTitlebar->setTitleBarBackground(true); } else { m_pTitlebar->setTitletxt(QString()); setWindowTitle(QString()); m_pTitlebar->setTitleBarBackground(false); } m_pTitlebar->setProperty("idle", m_pEngine->state() == PlayerEngine::Idle); } void MainWindow::moveEvent(QMoveEvent *pEvent) { qInfo() << __func__ << "进入moveEvent"; QWidget::moveEvent(pEvent); if (CompositingManager::get().platform() != Platform::X86) { QPoint relativePoint = mapToGlobal(QPoint(0, 0)); m_pToolbox->updateSliderPoint(relativePoint); m_pCommHintWid->syncPosition(); } updateGeometryNotification(geometry().size()); } void MainWindow::keyPressEvent(QKeyEvent *pEvent) { if (m_pPlaylist && (m_pPlaylist->state() == PlaylistWidget::Opened) && pEvent->modifiers() == Qt::NoModifier) { if (pEvent) { m_pPlaylist->updateSelectItem(pEvent->key()); } pEvent->setAccepted(true); } QWidget::keyPressEvent(pEvent); } void MainWindow::keyReleaseEvent(QKeyEvent *pEvent) { QWidget::keyReleaseEvent(pEvent); } static bool s_bAfterDblClick = false; void MainWindow::capturedMousePressEvent(QMouseEvent *pEvent) { m_bMouseMoved = false; m_bMousePressed = false; if (CompositingManager::get().platform() != Platform::X86) { m_pCommHintWid->hide(); m_pPopupWid->hide(); } if (qApp->focusWindow() == nullptr) return; if (pEvent->buttons() == Qt::LeftButton) { m_bMousePressed = true; } m_posMouseOrigin = mapToGlobal(pEvent->pos()); } void MainWindow::capturedMouseReleaseEvent(QMouseEvent *pEvent) { if (m_bIsTouch) { m_bLastIsTouch = true; m_bIsTouch = false; if (m_bTouchChangeVolume) { m_bTouchChangeVolume = false; m_pToolbox->setVisible(true); } if (m_bProgressChanged) { m_pToolbox->updateSlider(); //手势释放时改变影片进度 m_bProgressChanged = false; } } else { m_bLastIsTouch = false; } if (m_bDelayedResizeByConstraint) { m_bDelayedResizeByConstraint = false; QTimer::singleShot(0, [ = ]() { this->setMinimumSize({0, 0}); this->resizeByConstraints(true); }); } if (!m_bMousePressed) { s_bAfterDblClick = false; m_bMouseMoved = false; } if (qApp->focusWindow() == nullptr || !m_bMousePressed) return; m_bMousePressed = false; //NOTE: If the mouseMoveEvent of the titlebar is triggered // reset the status here, otherwise it cannot respond to the mini mode shortcut if (m_pTitlebar->geometry().contains(pEvent->pos())) m_bMouseMoved = false; } void MainWindow::capturedKeyEvent(QKeyEvent *pEvent) { if (pEvent->key() == Qt::Key_Tab) { if (!isFullScreen()) { m_pTitlebar->show(); } m_pToolbox->show(); m_autoHideTimer.start(AUTOHIDE_TIMEOUT); //如果点击tab键,重置计时器 } } void MainWindow::mousePressEvent(QMouseEvent *pEvent) { m_bMouseMoved = false; m_bMousePressed = false; if (CompositingManager::get().platform() != Platform::X86) { m_pCommHintWid->hide(); m_pPopupWid->hide(); } if (qApp->focusWindow() == nullptr) return; if (pEvent->buttons() == Qt::LeftButton) { m_bMousePressed = true; if (!m_mousePressTimer.isActive() && m_bIsTouch) { m_mousePressTimer.stop(); m_nLastPressX = mapToGlobal(QCursor::pos()).x(); m_nLastPressY = mapToGlobal(QCursor::pos()).y(); qInfo() << __func__ << "已经进入触屏按下事件" << m_nLastPressX << m_nLastPressY; m_mousePressTimer.start(); } } m_posMouseOrigin = mapToGlobal(pEvent->pos()); m_pressPoint = pEvent->pos(); } void MainWindow::mouseReleaseEvent(QMouseEvent *ev) { /// NOTE: 为了其它控件的鼠标操作与MainWindow一致,统一使用capturedMouseReleaseEvent()捕获鼠标释放 /// 事件,若无特殊要求,请尽量在capturedMouseReleaseEvent()进行处理。 qInfo() << __func__ << "进入mouseReleaseEvent"; if (!insideResizeArea(ev->globalPos()) && !m_bMouseMoved && (m_pPlaylist->state() != PlaylistWidget::Opened)) { if (!insideToolsArea(ev->pos())) { m_delayedMouseReleaseTimer.start(120); } else { if (m_pEngine->state() == PlayerEngine::CoreState::Idle && !insideToolsArea(ev->pos())) { m_delayedMouseReleaseTimer.start(120); } } } m_bMouseMoved = false; QWidget::mouseReleaseEvent(ev); } void MainWindow::mouseDoubleClickEvent(QMouseEvent *pEvent) { qInfo() << __func__ << "进入mouseDoubleClickEvent"; if (!m_bMiniMode && this->m_pEngine->getplaylist()->getthreadstate()) { qInfo() << "playlist loadthread is running"; return; } //投屏时双击操作不做处理 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) return; if (!m_bMiniMode && !m_bInBurstShootMode) { m_delayedMouseReleaseTimer.stop(); if (m_pEngine->state() == PlayerEngine::Idle) { requestAction(ActionFactory::StartPlay); } else { requestAction(ActionFactory::ToggleFullscreen, false, {}, true); } pEvent->accept(); s_bAfterDblClick = true; } } void MainWindow::mouseMoveEvent(QMouseEvent *pEvent) { if (m_bStartMini) return; qInfo() << __func__ << "进入mouseMoveEvent"; QPoint ptCurr = mapToGlobal(pEvent->pos()); QPoint ptDelta = ptCurr - this->m_posMouseOrigin; if (qAbs(ptDelta.x()) < 5 && qAbs(ptDelta.y()) < 5) { //避免误触 return; } if (m_bIsTouch && isFullScreen()) { //全屏时才触发滑动改变音量和进度的操作 if (qAbs(ptDelta.x()) > qAbs(ptDelta.y()) && m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_bTouchChangeVolume = false; m_pToolbox->updateProgress(ptDelta.x()); //改变进度条显示 this->m_posMouseOrigin = ptCurr; m_bProgressChanged = true; return; } else if (qAbs(ptDelta.x()) < qAbs(ptDelta.y())) { if (ptDelta.y() > 0) { m_bTouchChangeVolume = true; requestAction(ActionFactory::ActionKind::VolumeDown); } else { m_bTouchChangeVolume = true; requestAction(ActionFactory::ActionKind::VolumeUp); } this->m_posMouseOrigin = ptCurr; return; } } QWidget::mouseMoveEvent(pEvent); this->m_posMouseOrigin = ptCurr; m_bMouseMoved = true; } void MainWindow::contextMenuEvent(QContextMenuEvent *pEvent) { qInfo() << __func__ << "进入contextMenuEvent"; if (m_bMiniMode || m_bInBurstShootMode) return; if (insideToolsArea(pEvent->pos())) return; if (utils::check_wayland_env()) { if (windowHandle()->property("_d_dwayland_staysontop").toBool() != m_bWindowAbove) { m_bWindowAbove = !m_bWindowAbove; reflectActionToUI(ActionFactory::WindowAbove); } } else { //通过窗口id查询窗口状态是否置顶,同步右键菜单中的选项状态 QProcess above; QStringList options; options << "-c" << QString("xprop -id %1 | grep '_NET_WM_STATE(ATOM)'").arg(winId()); above.start("bash", options); if (above.waitForStarted() && above.waitForFinished()) { QString drv = QString::fromUtf8(above.readAllStandardOutput().trimmed().constData()); if (drv.contains("_NET_WM_STATE_ABOVE") != m_bWindowAbove) { // requestAction(ActionFactory::WindowAbove); m_bWindowAbove = drv.contains("_NET_WM_STATE_ABOVE"); reflectActionToUI(ActionFactory::WindowAbove); } } } if(m_pMircastShowWidget->isVisible() ) {//投屏中屏蔽全屏、迷你模式,置顶菜单 QList lstActId; lstActId << ActionFactory::ToggleFullscreen << ActionFactory::ToggleMiniMode << ActionFactory::WindowAbove; for(ActionFactory::ActionKind id: lstActId) { QList listActs; listActs = ActionFactory::get().findActionsByKind(id); if(listActs.size()<=0) { continue; } for(QAction *act: listActs) { act->setEnabled(false); } } //倍速播放、画面、声音、字幕、截图 emit frameMenuEnable(false); emit playSpeedMenuEnable(false); emit subtitleMenuEnable(false); emit soundMenuEnable(false); } resumeToolsWindow(); QTimer::singleShot(0, [ = ]() { qApp->restoreOverrideCursor(); ActionFactory::get().mainContextMenu()->popup(QCursor::pos()); }); pEvent->accept(); //此段为通过xcb接口查询窗口状态,nItem为状态列表中的个数,properties为返回状态列表 //代码暂时无法实现需求,勿删 // const auto display = QX11Info::display(); // const auto screen = QX11Info::appScreen(); // Atom atom = XInternAtom(display, "_NET_WM_STATE", true); // Atom type; // int format; // unsigned long nItem, bytesAfter; // unsigned char *properties = NULL; // XGetWindowProperty(display, QX11Info::appRootWindow(screen), atom, 0, (~0L), False, AnyPropertyType, &type, &format, &nItem, &bytesAfter, &properties); // qInfo() << atom << nItem; // int iItem; // for (iItem = 0; iItem < nItem; ++iItem) // qInfo() << ((long *)(properties))[iItem]; } bool MainWindow::insideToolsArea(const QPoint &p) { return (m_pTitlebar->geometry().contains(p) && !isFullScreen()) || m_pToolbox->geometry().contains(p) || m_pToolbox->volumeSlider()->geometry().contains(p) || m_pMiniPlayBtn->geometry().contains(p)|| m_pMiniCloseBtn->geometry().contains(p) || m_pMiniQuitMiniBtn->geometry().contains(p); } QMargins MainWindow::dragMargins() const { return QMargins {MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS}; } bool MainWindow::insideResizeArea(const QPoint &globalPos) { const QRect window_visible_rect = frameGeometry() - dragMargins(); return !window_visible_rect.contains(globalPos); } void MainWindow::delayedMouseReleaseHandler() { if ((!s_bAfterDblClick && !m_bLastIsTouch) || m_bMiniMode) requestAction(ActionFactory::TogglePause, false, {}, true); s_bAfterDblClick = false; } void MainWindow::prepareSplashImages() { m_imgBgDark = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg"); m_imgBgLight = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg"); } void MainWindow::subtitleMatchVideo(const QString &sFileName) { QString sVideoName = sFileName; // Search for video files with the same name as the subtitles and play the video file. QFileInfo subfileInfo(sFileName); QDir dir(subfileInfo.canonicalPath()); dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); dir.setSorting(QDir::Size | QDir::Reversed); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo info = list.at(i); qInfo() << info.absoluteFilePath() << endl; // if (info.completeBaseName() == subfileInfo.completeBaseName()) { if (subfileInfo.fileName().contains(info.completeBaseName())) { sVideoName = info.absoluteFilePath(); } else { sVideoName = nullptr; } } QFileInfo vfileInfo(sVideoName); if (vfileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", vfileInfo.path()); play({sVideoName}); // Select the current subtitle display const PlayingMovieInfo &pmf = m_pEngine->playingMovieInfo(); for (const SubtitleInfo &sub : pmf.subs) { if (sub["external"].toBool()) { QString path = sub["external-filename"].toString(); if (path == subfileInfo.canonicalFilePath()) { m_pEngine->selectSubtitle(pmf.subs.indexOf(sub)); break; } } } } else { m_pCommHintWid->updateWithMessage(tr("Please load the video first")); } } void MainWindow::defaultplaymodeinit() { QPointer modeOpt = Settings::get().settings()->option("base.play.playmode"); int nModeId = modeOpt->value().toInt(); QString sMode = modeOpt->data("items").toStringList()[nModeId]; if (sMode == tr("Order play")) { requestAction(ActionFactory::OrderPlay); reflectActionToUI(ActionFactory::OrderPlay); } else if (sMode == tr("Shuffle play")) { requestAction(ActionFactory::ShufflePlay); reflectActionToUI(ActionFactory::ShufflePlay); } else if (sMode == tr("Single play")) { requestAction(ActionFactory::SinglePlay); reflectActionToUI(ActionFactory::SinglePlay); } else if (sMode == tr("Single loop")) { requestAction(ActionFactory::SingleLoop); reflectActionToUI(ActionFactory::SingleLoop); } else if (sMode == tr("List loop")) { requestAction(ActionFactory::ListLoop); reflectActionToUI(ActionFactory::ListLoop); } } void MainWindow::decodeInit() { MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(!pMpvProxy) return; //崩溃检测 bool bcatch = Settings::get().settings()->getOption(QString("set.start.crash")).toBool(); if (bcatch) { pMpvProxy->setDecodeModel(DecodeMode::AUTO); Settings::get().settings()->setOption(QString("base.decode.select"),DecodeMode::AUTO); } else { int value = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); pMpvProxy->setDecodeModel(value); } } void MainWindow::popupAdapter(QIcon icon, QString sText) { m_pPopupWid->setIcon(icon); DFontSizeManager::instance()->bind(this, DFontSizeManager::T6); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6); QFontMetrics fm(font); auto w = fm.boundingRect(sText).width(); m_pPopupWid->setMessage(sText); m_pPopupWid->resize(w + 70, 40); m_pPopupWid->move((width() - m_pPopupWid->width()) / 2, height() - 127); m_pPopupWid->show(); m_pPopupWid->raise(); } QString MainWindow::lastOpenedPath() { QString lastPath = Settings::get().generalOption("last_open_path").toString(); QDir lastDir(lastPath); if (lastPath.isEmpty() || !lastDir.exists()) { lastPath = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); QDir newLastDir(lastPath); if (!newLastDir.exists()) { lastPath = QDir::currentPath(); } } return lastPath; } void MainWindow::paintEvent(QPaintEvent *pEvent) { QPainter painter(this); QRectF bgRect; bgRect.setSize(size()); const QPalette pal = QGuiApplication::palette();//this->palette(); QColor bgColor = pal.color(QPalette::Window); if (CompositingManager::get().platform() == Platform::X86) { QPainterPath path; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { if (m_pEngine->state() != PlayerEngine::Idle && !m_pToolbox->isVisible()) { path.addRect(bgRect); painter.fillPath(path, Qt::black); } else { path.addRect(bgRect); painter.fillPath(path, Qt::white); } } } if (m_pEngine->state() == PlayerEngine::Idle) { QImage bg = QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); //和产品、ui商议深色主题下去除深色背景效果 // if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { // QImage img = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash-bac.svg"); // QPointF pos = bgRect.center() - QPoint(img.width() / 2, img.height() / 2) / devicePixelRatioF(); // painter.drawImage(pos, img); // } QPointF pos = bgRect.center() - QPoint(bg.width() / 2, bg.height() / 2) / devicePixelRatioF(); painter.drawImage(pos, bg); } QMainWindow::paintEvent(pEvent); } void MainWindow::toggleUIMode() { //迷你模式关闭动画及控件 m_pAnimationlable->hide(); m_pToolbox->closeAnyPopup(); //判断窗口是否靠边停靠(靠边停靠不支持MINI模式)thx QRect deskrect = QApplication::desktop()->availableGeometry(); QPoint windowPos = pos(); if (this->geometry() != deskrect) { if (windowPos.x() == 0 && (windowPos.y() == 0 || (abs(windowPos.y() + this->geometry().height() - deskrect.height()) < 50))) { if (abs(this->geometry().width() - deskrect.width() / 2) < 50) { m_pCommHintWid->updateWithMessage(tr("Please exit smart dock")); m_bStartMini = false; reflectActionToUI(ActionFactory::ToggleMiniMode); return ; } } if ((abs(windowPos.x() + this->geometry().width() - deskrect.width()) < 50) && (windowPos.y() == 0 || abs(windowPos.y() + this->geometry().height() - deskrect.height()) < 50)) { if (abs(this->geometry().width() - deskrect.width() / 2) < 50) { m_pCommHintWid->updateWithMessage(tr("Please exit smart dock")); m_bStartMini = false; reflectActionToUI(ActionFactory::ToggleMiniMode); return ; } } } m_bMiniMode = !m_bMiniMode; m_isSettingMiniMode = true; m_pEngine->toggleRoundedClip(!m_bMiniMode); if (utils::check_wayland_env()) { // 在拖拽进度等操作,高占用播放时,使用右键菜单可能使 wayland 未能正确切换窗体,导致 surface destroy ,程序闪退 // 在执行 show 操作前,主动创建上下文,生成 surface 以正常填入数据。 m_pEngine->makeCurrent(); Qt::WindowFlags flags = windowFlags(); if (m_bMiniMode) { // 记录之前的状态,尝试saveGeometry()也存在其它问题。 m_waylandRectInNormalMode = normalGeometry(); flags |= Qt::X11BypassWindowManagerHint; m_preMiniWindowState = windowState(); setWindowFlags(flags); showNormal(); } else { flags &= ~Qt::X11BypassWindowManagerHint; setWindowFlags(flags); // 触发更新 windowState() 时可能更新 normalGeometry() 在设置最大化/全屏前还原之前的 normalGeometry() 信息 setMinimumSize(614, 500); setMaximumSize(QSize(QWIDGETSIZE_MAX-1, QWIDGETSIZE_MAX-1)); // 还原为原始窗口大小,迷你模式前为最大化或/全屏时,m_lastRectInNormalMode记录的是最大化/全屏的窗口大小 setGeometry(m_waylandRectInNormalMode); show(); if (m_preMiniWindowState == Qt::WindowMaximized) { // 使用迷你模式前记录的坐标,在多屏中显示正确位置 move(m_lastRectInNormalMode.topLeft()); showMaximized(); setGeometry(m_lastRectInNormalMode); } else if (m_preMiniWindowState & Qt::WindowFullScreen) { move(m_lastRectInNormalMode.topLeft()); showFullScreen(); } else { showNormal(); } // 复原原始控件记录大小 m_lastRectInNormalMode = m_waylandRectInNormalMode; } } m_isSettingMiniMode = false; qInfo() << __func__ << m_bMiniMode; if (m_bMiniMode) { m_pTitlebar->titlebar()->setDisableFlags(Qt::WindowMaximizeButtonHint); } else { m_pTitlebar->titlebar()->setDisableFlags(nullptr); } m_pTitlebar->setVisible(!m_bMiniMode); m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); m_pMiniPlayBtn->setEnabled(m_bMiniMode); m_pMiniCloseBtn->setEnabled(m_bMiniMode); m_pMiniQuitMiniBtn->setEnabled(m_bMiniMode); m_pMiniPlayBtn->raise(); m_pMiniCloseBtn->raise(); m_pMiniQuitMiniBtn->raise(); resumeToolsWindow(); if (m_bMiniMode) { m_pCommHintWid->setAnchorPoint(QPoint(15, 11)); //迷你模式下提示位置稍有不同 updateSizeConstraints(); //设置等比缩放 setEnableSystemResize(false); m_nStateBeforeMiniMode = SBEM_None; if (isFullScreen()) { m_nStateBeforeMiniMode |= SBEM_Fullscreen; setWindowState(windowState() & ~Qt::WindowFullScreen); this->setWindowState(Qt::WindowNoState); setFocus(); if (m_pFullScreenTimeLable) { m_pFullScreenTimeLable->close(); } if (utils::check_wayland_env()) { m_pToolbox->updateFullState(); } } else if (isMaximized()) { m_nStateBeforeMiniMode |= SBEM_Maximized; showNormal(); } else { m_lastRectInNormalMode = geometry(); } if (!m_bWindowAbove) { m_nStateBeforeMiniMode |= SBEM_Above; requestAction(ActionFactory::WindowAbove); } QSize sz = QSize(380, 380); if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { qreal ratio = 1920 * 1.0 / 1080; auto vid_size = m_pEngine->videoSize(); if (vid_size.height() > 0 && vid_size.width() >= vid_size.height()) { ratio = vid_size.width() / static_cast(vid_size.height()); sz = QSize(380, static_cast(380 / ratio) + 1); } else if (vid_size.height() > 0 && vid_size.width() < vid_size.height()) { ratio = vid_size.width() / static_cast(vid_size.height()); sz = QSize(380, static_cast(380 * ratio) + 1); } else { sz = QSize(380, static_cast(380 / ratio) + 1); } } QRect geom = {0, 0, 0, 0}; if (m_lastRectInNormalMode.isValid()) { geom = m_lastRectInNormalMode; } geom.setSize(sz); setGeometry(geom); if (geom.x() < 0) { geom.moveTo(0, geom.y()); } if (geom.y() < 0) { geom.moveTo(geom.x(), 0); } QRect deskGeom = qApp->desktop()->availableGeometry(this); move((deskGeom.width() - this->width()) / 2, (deskGeom.height() - this->height()) / 2); //迷你模式下窗口居中 by zhuyuliang setFixedSize(geom.width(), geom.height()); m_pMiniPlayBtn->move(sz.width() - 12 - m_pMiniPlayBtn->width(), sz.height() - 10 - m_pMiniPlayBtn->height()); m_pMiniCloseBtn->move(sz.width() - 15 - m_pMiniCloseBtn->width(), 10); m_pMiniQuitMiniBtn->move(14, sz.height() - 10 - m_pMiniQuitMiniBtn->height()); } else { m_pCommHintWid->setAnchorPoint(QPoint(30, 58)); QRect tmp = m_lastRectInNormalMode; this->setMinimumSize(614, 500); this->setMaximumSize(QSize(QWIDGETSIZE_MAX-1, QWIDGETSIZE_MAX-1)); m_lastRectInNormalMode = tmp; setEnableSystemResize(true); if (m_nStateBeforeMiniMode & SBEM_Maximized) { //迷你模式切换最大化时,先恢复原来窗口大小 if (m_lastRectInNormalMode.isValid()) { setGeometry(m_lastRectInNormalMode); } else { resizeByConstraints(); } showMaximized(); } else if (m_nStateBeforeMiniMode & SBEM_Fullscreen) { setWindowState(windowState() | Qt::WindowFullScreen); if (CompositingManager::get().platform() == Platform::Arm64 || CompositingManager::get().platform() == Platform::Alpha) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); QRect deskRect = QApplication::desktop()->availableGeometry(); pixelsWidth = qMax(117, pixelsWidth); m_pFullScreenTimeLable->setGeometry(deskRect.width() - pixelsWidth - 60, 40, pixelsWidth + 60, 36); m_pFullScreenTimeLable->show(); } } setFocus(); if (utils::check_wayland_env()) { m_pToolbox->updateFullState(); } } else { if (m_pToolbox->listBtn()->isChecked()) { m_pToolbox->listBtn()->setChecked(false); } // Wayland流程区分处理 if (!utils::check_wayland_env()) { if (m_lastRectInNormalMode.isValid()) { QRect deskRect = QApplication::desktop()->availableGeometry(m_lastRectInNormalMode.topLeft()); if(m_lastRectInNormalMode.intersects(deskRect)) { setGeometry(m_lastRectInNormalMode); } else { setGeometry(QRect(deskRect.x(), deskRect.y(), m_lastRectInNormalMode.width(), m_lastRectInNormalMode.height())); } } else { resizeByConstraints(); } } } if (m_nStateBeforeMiniMode & SBEM_Above) { requestAction(ActionFactory::WindowAbove); } if (m_nStateBeforeMiniMode & SBEM_PlaylistOpened && m_pPlaylist->state() == PlaylistWidget::Closed) { if (m_nStateBeforeMiniMode & SBEM_Fullscreen) { QTimer::singleShot(100, [ = ]() { requestAction(ActionFactory::TogglePlaylist); }); } } m_nStateBeforeMiniMode = SBEM_None; } m_bStartMini = false; } void MainWindow::miniButtonClicked(const QString &id) { qInfo() << id; if (id == "play") { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { requestAction(ActionFactory::ActionKind::StartPlay); } else { requestAction(ActionFactory::ActionKind::TogglePause); } } else if (id == "close") { close(); } else if (id == "quit_mini") { requestAction(ActionFactory::ActionKind::ToggleMiniMode); } } void MainWindow::dragEnterEvent(QDragEnterEvent *ev) { if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } } void MainWindow::dragMoveEvent(QDragMoveEvent *ev) { if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } } void MainWindow::dropEvent(QDropEvent *pEvent) { //add by heyi 拖动进来时先初始化窗口 //firstPlayInit(); qInfo() << pEvent->mimeData()->formats(); if (!pEvent->mimeData()->hasUrls()) { return; } QList lstFile; QList urls = pEvent->mimeData()->urls(); for (QUrl strUrl : urls) { lstFile << strUrl.path(); } if (urls.count() == 1) { // check if the dropped file is a subtitle. QFileInfo fileInfo(urls.first().toLocalFile()); if (m_pEngine->isSubtitle(fileInfo.absoluteFilePath())) { // Search for video files with the same name as the subtitles and play the video file. if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { return; } else if (m_pEngine->state() == PlayerEngine::Idle) subtitleMatchVideo(urls.first().toLocalFile()); else { bool succ = m_pEngine->loadSubtitle(fileInfo); m_pCommHintWid->updateWithMessage(succ ? tr("Load successfully") : tr("Load failed")); } return; } } play(lstFile); pEvent->acceptProposedAction(); } void MainWindow::setInit(bool bInit) { if (m_bInited != bInit) { m_bInited = bInit; emit initChanged(); } } QString MainWindow::probeCdromDevice() { QFile mountFile("/proc/mounts"); if (mountFile.open(QIODevice::ReadOnly) == false) { return QString(); } do { QString sLine = mountFile.readLine(); if (sLine.indexOf("/dev/sr") != -1 || sLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。 return sLine.split(" ").at(0); //A B C 这样的格式,取部分 } } while (!mountFile.atEnd()); mountFile.close(); return QString(); } void MainWindow::diskRemoved(QString strDiskName) { QString sCurrFile; if (m_pEngine->getplaylist()->count() <= 0) { return; } sCurrFile = m_pEngine->getplaylist()->currentInfo().url.toString(); if (sCurrFile.contains(strDiskName)/* && m_pEngine->state() == PlayerEngine::Playing*/) m_pCommHintWid->updateWithMessage(tr("The CD/DVD has been ejected")); } void MainWindow::sleepStateChanged(bool bSleep) { qInfo() << __func__ << bSleep; //if (m_bStateInLock) { //休眠唤醒后会先执行锁屏操作,如果已经进行锁屏操作则忽略休眠唤醒信号 // m_bStartSleep = bSleep; // m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); // return; //} //休眠退出投屏 if(bSleep && m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) { slotExitMircast(); } if (bSleep && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_bStartSleep = true; //requestAction(ActionFactory::ActionKind::TogglePause); } else if (!bSleep && m_pEngine->state() == PlayerEngine::CoreState::Paused) { m_bStartSleep = false; m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); //保证休眠后不管是否播放都不会卡帧 } } void MainWindow::lockStateChanged(bool bLock) { qInfo() << __func__ << bLock; //锁屏退出投屏 if(bLock && m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) { slotExitMircast(); } if (bLock && m_pEngine->state() == PlayerEngine::CoreState::Playing && !m_bStateInLock) { m_bStateInLock = true; requestAction(ActionFactory::ActionKind::TogglePause); } else if (!bLock && m_pEngine->state() == PlayerEngine::CoreState::Paused && m_bStateInLock) { m_bStateInLock = false; QTimer::singleShot(500, [=](){ //龙芯5000使用命令sudo rtcwake -l -m mem -s 20, 待机唤醒后无dBus信号“PrepareForSleep”发出,加入seek保证解锁后播放不会卡帧 m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); requestAction(ActionFactory::ActionKind::TogglePause); }); } } void MainWindow::initMember() { m_pPopupWid = nullptr; m_pFullScreenTimeLable = nullptr; //全屏时右上角的影片进度 m_pFullScreenTimeLayout = nullptr; m_pTitlebar = nullptr; m_pToolbox = nullptr; m_pPlaylist = nullptr; m_pEngine = nullptr; m_pAnimationlable = nullptr; m_pProgIndicator = nullptr; //全屏时右上角的系统时间 m_pEventMonitor = nullptr; m_pEventListener = nullptr; m_pDVDHintWid = nullptr; m_pCommHintWid = nullptr; m_pShortcutViewProcess = nullptr; m_pDBus = nullptr; m_pPresenter = nullptr; m_pMovieWidget = nullptr; m_pMircastShowWidget = nullptr; m_bInBurstShootMode = false; m_bPausedBeforeBurst = false; #ifdef __mips__ m_pMiniPlayBtn = nullptr; m_pMiniCloseBtn = nullptr; m_pMiniQuitMiniBtn = nullptr; #else m_pMiniPlayBtn = nullptr; m_pMiniCloseBtn = nullptr; m_pMiniQuitMiniBtn = nullptr; #endif m_bMiniMode = false; m_bInited = false; m_bMovieSwitchedInFsOrMaxed = false; m_bDelayedResizeByConstraint = false; m_bWindowAbove = false; m_bMouseMoved = false; m_bMousePressed = false; m_bQuitfullscreenflag = false; m_bStartMini = false; m_bProgressChanged = false; m_bLastIsTouch = false; m_bTouchChangeVolume = false; m_bIsFree = true; m_bIsTouch = false; m_bStartAnimation = false; m_bStateInLock = false; m_bStartSleep = false; m_bMaximized = false; m_bHaveFile = false; m_nDisplayVolume = 100; m_nLastPressX = 0; m_nLastPressY = 0; m_nStateBeforeMiniMode = 0; m_nLastCookie = 0; m_nPowerCookie = 0; m_dPlaySpeed = 1.0; m_iAngleDelta = 0; m_nFullscreenTime = 0; m_lastWindowState = Qt::WindowNoState; m_dvdUrl.clear(); m_listOpenFiles.clear(); m_sCurrentHwdec.clear(); m_listBurstShoots.clear(); } void MainWindow::adjustPlaybackSpeed(ActionFactory::ActionKind actionKind) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (actionKind == ActionFactory::ActionKind::AccelPlayback) { m_dPlaySpeed = qMin(2.0, m_dPlaySpeed + 0.1); } else if (actionKind == ActionFactory::ActionKind::DecelPlayback) { m_dPlaySpeed = qMax(0.1, m_dPlaySpeed - 0.1); } m_pEngine->setPlaySpeed(m_dPlaySpeed); if (qFuzzyCompare(0.5, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::ZeroPointFiveTimes); } else if (qFuzzyCompare(1.0, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OneTimes); } else if (qFuzzyCompare(1.2, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OnePointTwoTimes); } else if (qFuzzyCompare(1.5, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OnePointFiveTimes); } else if (qFuzzyCompare(2.0, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::Double); } else { setPlaySpeedMenuUnchecked(); } m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } } void MainWindow::setPlaySpeedMenuChecked(ActionFactory::ActionKind actionKind) { QList listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); (*p)->setChecked(true); } void MainWindow::setPlaySpeedMenuUnchecked() { QList listActs; { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::ZeroPointFiveTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OneTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OnePointTwoTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OnePointFiveTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::Double); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } } void MainWindow::setMusicShortKeyState(bool bState) { ActionFactory::ActionKind actionKind; foreach (auto action, this->actions()) { actionKind = (ActionFactory::ActionKind)action->property("kind").toInt(); switch (actionKind) { case ActionFactory::Screenshot: case ActionFactory::BurstScreenshot: case ActionFactory::GoToScreenshotSolder: case ActionFactory::DefaultFrame: case ActionFactory::Ratio4x3Frame: case ActionFactory::Ratio16x9Frame: case ActionFactory::Ratio16x10Frame: case ActionFactory::Ratio185x1Frame: case ActionFactory::Ratio235x1Frame: case ActionFactory::ClockwiseFrame: case ActionFactory::CounterclockwiseFrame: case ActionFactory::NextFrame: case ActionFactory::PreviousFrame: action->setEnabled(bState); } } } void MainWindow::onSysLockState(QString, QVariantMap key2value, QStringList) { if (m_bStartSleep) { m_bStateInLock = true; //如果进入了休眠状态后进入锁屏,则默认执行了暂停操作 } if (key2value.value("Locked").value() && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_bStateInLock = true; requestAction(ActionFactory::TogglePause); } else if (!key2value.value("Locked").value() && m_bStateInLock) { m_bStateInLock = false; requestAction(ActionFactory::TogglePause); } } void MainWindow::slotProperChanged(QString, QVariantMap key2value, QStringList) { qInfo() << __func__ << key2value; if (key2value.value("Active").value() && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_pEngine->seekAbsolute(m_pEngine->elapsed()); } } void MainWindow::slotUnsupported() { m_pCommHintWid->updateWithMessage(tr("The action is not supported in this video")); } void MainWindow::slotInvalidFile(QString strFileName) { static int showTime = -1000; showTime += 1000; QTimer::singleShot(showTime, [=]{ showTime = showTime - 1000; m_pCommHintWid->updateWithMessage(QString(tr("Invalid file: %1").arg(strFileName))); }); } void MainWindow::slotUpdateMircastState(int state, QString msg) { switch (state) { case MIRCAST_SUCCESSED: //投屏成功 { mircastSuccess(msg); emit frameMenuEnable(false); emit playSpeedMenuEnable(false); emit subtitleMenuEnable(false); emit soundMenuEnable(false); } break; case MIRCAST_EXIT://投屏退出 { slotExitMircast(); } break; case MIRCAST_CONNECTION_FAILED://投屏连接失败 { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Connection failed")); popupAdapter(icon, sText); slotExitMircast(); } break; case MIRCAST_DISCONNECTIONED://投屏丢失连接 { m_pCommHintWid->updateWithMessage(tr("Miracast disconnected")); slotExitMircast(); } break; default: break; } } void MainWindow::slotExitMircast() { exitMircast(); emit frameMenuEnable(true); emit playSpeedMenuEnable(true); emit subtitleMenuEnable(true); emit soundMenuEnable(true); } void MainWindow::updateGeometry(CornerEdge edge, QPoint pos) { bool bKeepRatio = engine()->state() != PlayerEngine::CoreState::Idle; QRect oldGeom = frameGeometry(); QRect geom = frameGeometry(); qreal ratio = static_cast(geom.width()) / geom.height(); // disable edges switch (edge) { case CornerEdge::BottomEdge: case CornerEdge::TopEdge: case CornerEdge::LeftEdge: case CornerEdge::RightEdge: case CornerEdge::NoneEdge: return; default: break; } if (bKeepRatio) { QSize size = engine()->videoSize(); if (size.isEmpty()) { const auto &MovieInfo = engine()->playlist().currentInfo().mi; size = QSize(MovieInfo.width, MovieInfo.height); } ratio = size.width() / static_cast(size.height()); switch (edge) { case CornerEdge::TopLeftCorner: geom.setLeft(pos.x()); geom.setTop(static_cast(geom.bottom() - geom.width() / ratio)); break; case CornerEdge::BottomLeftCorner: case CornerEdge::LeftEdge: geom.setLeft(pos.x()); geom.setHeight(static_cast(geom.width() / ratio)); break; case CornerEdge::BottomRightCorner: case CornerEdge::RightEdge: geom.setRight(pos.x()); geom.setHeight(static_cast(geom.width() / ratio)); break; case CornerEdge::TopRightCorner: case CornerEdge::TopEdge: geom.setTop(pos.y()); geom.setWidth(static_cast(geom.height() * ratio)); break; case CornerEdge::BottomEdge: geom.setBottom(pos.y()); geom.setWidth(static_cast(geom.height() * ratio)); break; default: break; } } else { switch (edge) { case CornerEdge::BottomLeftCorner: geom.setBottomLeft(pos); break; case CornerEdge::TopLeftCorner: geom.setTopLeft(pos); break; case CornerEdge::LeftEdge: geom.setLeft(pos.x()); break; case CornerEdge::BottomRightCorner: geom.setBottomRight(pos); break; case CornerEdge::RightEdge: geom.setRight(pos.x()); break; case CornerEdge::TopRightCorner: geom.setTopRight(pos); break; case CornerEdge::TopEdge: geom.setTop(pos.y()); break; case CornerEdge::BottomEdge: geom.setBottom(pos.y()); break; default: break; } } QSize min = minimumSize(); if (oldGeom.width() <= min.width() && geom.left() > oldGeom.left()) { geom.setLeft(oldGeom.left()); } if (oldGeom.height() <= min.height() && geom.top() > oldGeom.top()) { geom.setTop(oldGeom.top()); } geom.setWidth(qMax(geom.width(), min.width())); geom.setHeight(qMax(geom.height(), min.height())); updateContentGeometry(geom); updateGeometryNotification(geom.size()); } void MainWindow::setPresenter(Presenter *pPresenter) { m_pPresenter = pPresenter; m_pPresenter->slotvolumeChanged(); } int MainWindow::getDisplayVolume() { return m_nDisplayVolume; } bool MainWindow::getMiniMode() { return m_bMiniMode; } MainWindow::~MainWindow() { qInfo() << __func__; //Do not enter CloseEvent when exiting from the title bar menu, so add the save function here //powered by xxxxp if (Settings::get().isSet(Settings::ResumeFromLast)) { int nCur = 0; nCur = m_pEngine->playlist().current(); if (nCur >= 0) { Settings::get().setInternalOption("playlist_pos", nCur); } } m_pEngine->savePlaybackPosition(); if (m_pEventListener) { this->windowHandle()->removeEventFilter(m_pEventListener); delete m_pEventListener; m_pEventListener = nullptr; } if (!utils::check_wayland_env()) { disconnect(m_pEngine, 0, 0, 0); disconnect(&m_pEngine->playlist(), 0, 0, 0); } if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } delete m_pEngine; m_pEngine = nullptr; m_diskCheckThread.stop(); ThreadPool::instance()->quitAll(); #ifdef USE_DXCB if (_evm) { disconnect(_evm, 0, 0, 0); delete _evm; } #endif if (m_pShortcutViewProcess) { m_pShortcutViewProcess->deleteLater(); m_pShortcutViewProcess = nullptr; } } #include "mainwindow.moc" deepin-movie-reborn-5.15.10/src/common/mainwindow.h000066400000000000000000000463761473342170300221610ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_MAIN_WINDOW_H #define _DMR_MAIN_WINDOW_H #include #include #include #include //#include #include #include #include #include #include #include #include "widgets/titlebar.h" #include "animationlabel.h" #include "diskcheckthread.h" #include "actions.h" #include "online_sub.h" #include "compositing_manager.h" #include "mircastshowwidget.h" class Presenter; namespace Dtk { namespace Widget { class DImageButton; class DSettingsDialog; } } DWIDGET_USE_NAMESPACE class MainWindowEventListener; namespace dmr { enum CornerEdge { TopLeftCorner = 0, TopEdge = 1, TopRightCorner = 2, RightEdge = 3, BottomRightCorner = 4, BottomEdge = 5, BottomLeftCorner = 6, LeftEdge = 7, NoneEdge = -1 }; class ToolboxProxy; class EventMonitor; class PlaylistWidget; class PlayerEngine; class NotificationWidget; class MovieProgressIndicator; class MovieWidget; class IconButton: public DPushButton { public: explicit IconButton(QWidget *parent = 0): DPushButton(parent), m_nThemeType(0) {} void setIcon(QIcon icon) { m_icon = icon; DPushButton::setIcon(m_icon); }; void changeTheme(int nThemeType = 0) { m_nThemeType = nThemeType; update(); } protected: void paintEvent(QPaintEvent *pEvent) { QPainter painter(this); QRect backgroundRect = rect(); //QPainterPath bp1; //bp1.addRoundedRect(backgroundRect, 2, 2); painter.setPen(Qt::NoPen); if (m_nThemeType == 1) { painter.setBrush(QBrush(QColor(247, 247, 247, 220))); } else if (m_nThemeType == 2) { painter.setBrush(QBrush(QColor(42, 42, 42, 220))); } else { painter.setBrush(QBrush(QColor(247, 247, 247, 220))); } QPainterPath painterPath; painterPath.addRoundedRect(backgroundRect, 15, 15); painter.drawPath(painterPath); DPushButton::paintEvent(pEvent); }; private: QIcon m_icon; int m_nThemeType; }; class MessageWindow: public QWidget { Q_OBJECT public: explicit MessageWindow(QWidget *parent = nullptr): QWidget(parent) { setWindowFlags(Qt::FramelessWindowHint); m_pTimer = new QTimer(this); setFixedHeight(40); QHBoxLayout *mainLayout = new QHBoxLayout; setLayout(mainLayout); mainLayout->setContentsMargins(12, 3, 0, 0); mainLayout->setSpacing(10); m_pIconBtn = new DIconButton(this); m_pTextLabel = new DLabel(this); m_pIconBtn->setFlat(true); m_pIconBtn->setFocusPolicy(Qt::NoFocus); m_pIconBtn->setAttribute(Qt::WA_TransparentForMouseEvents); //宽度太小导致截图失败图表被裁剪 m_pIconBtn->setFixedSize(30, 30); m_pIconBtn->setIconSize(QSize(30, 30)); m_pTextLabel->setWordWrap(true); //DIconButton中icon尺寸与button尺寸不一致,导致图表与问题不对齐 m_pTextLabel->setFixedHeight(25); m_pTextLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); mainLayout->addWidget(m_pIconBtn); mainLayout->addWidget(m_pTextLabel); m_pTimer->setInterval(4000); m_pTimer->setSingleShot(true); connect(m_pTimer, &QTimer::timeout, this, &QWidget::close); } void setIcon(const QIcon &ico) { m_pIconBtn->setIcon(ico); } void setMessage(const QString &str) { m_pTextLabel->setText(str); } protected: void showEvent(QShowEvent *event) { if (m_pTimer) { m_pTimer->start(); } } private: void paintEvent(QPaintEvent *event) override { const float fRadius = 18; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); bool bLight = (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()); QColor color = QColor(37, 37, 37); if (bLight) { color = QColor(247, 247, 247); } #if defined(__arrch64__) || defined(__mips__) painter.fillRect(rect(), color); #else if (!CompositingManager::get().composited()) { painter.fillRect(rect(), color); } else { painter.fillRect(rect(), Qt::transparent); QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.fillPath(painterPath, color); } #endif QWidget::paintEvent(event); } private: QTimer *m_pTimer {nullptr}; DIconButton *m_pIconBtn {nullptr}; DLabel *m_pTextLabel{nullptr}; }; /** * @file 主窗口,负责显示和交互 */ class MainWindow: public DMainWindow { Q_OBJECT Q_PROPERTY(bool inited READ inited WRITE setInit NOTIFY initChanged) signals: /** * @brief dxcb下窗口激活信号 */ void windowEntered(); /** * @brief dxcb下窗口失去焦点信号 */ void windowLeaved(); /** * @brief 播放状态改变信号 */ void initChanged(); /** * @brief 画面菜单是否可用信号 */ void frameMenuEnable(bool); /** * @brief 播放速度菜单是否可用信号 */ void playSpeedMenuEnable(bool); /** * @brief 字幕菜单是否可用信号 */ void subtitleMenuEnable(bool); /** * @brief soundMenuEnable 声音字幕是否可用信号 */ void soundMenuEnable(bool); /** * @brief 窗口特效变化信号 */ void WMChanged(bool isWM); public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); /** * @brief 返回窗口播放状态 */ bool inited() const { return m_bInited; } /** * @brief 返回播放引擎对象 * @return 播放引擎指针 */ PlayerEngine *engine() { return m_pEngine; } /** * @brief 返回工具栏对象 * @return 工具栏指针 */ ToolboxProxy *toolbox() { return m_pToolbox; } /** * @brief 返回播放列表对象 * @return 播放列表指针 */ PlaylistWidget *playlist() { return m_pPlaylist; } /** * @brief 用于测试触屏效果 */ void setTouched(bool bTouched) { m_bIsTouch = bTouched; } /** * @brief 判断鼠标是否在窗口内 * @param 当前鼠标焦点 * @return 是否在窗口内 */ bool judgeMouseInWindow(QPoint pos); /** * @brief 处理菜单事件 * @param 菜单项id,表明菜单功能 * @param 是否是鼠标操作 * @param 菜单项带的参数 * @param 是否是快捷键 */ void requestAction(ActionFactory::ActionKind, bool bFromUI = false, QList args = {}, bool bShortcut = false); bool insideResizeArea(const QPoint &globalPos); QMargins dragMargins() const; void capturedMousePressEvent(QMouseEvent *pEvent); void capturedMouseReleaseEvent(QMouseEvent *pEvent); void capturedKeyEvent(QKeyEvent *pEvent); void updateGeometryNotification(const QSize &size); void updateContentGeometry(const QRect &rect); static QString lastOpenedPath(); void reflectActionToUI(ActionFactory::ActionKind); NotificationWidget *get_nwComm(); /** * @brief 在读取光盘的时候,直接把光盘挂载点的路径加入到播放列表中 */ bool addCdromPath(); /** * @brief 初始化播放列表 */ void loadPlayList(); void setOpenFiles(QStringList &); /** * @brief 平板模式下视频加载路径 */ QString padLoadPath(); #ifdef USE_TEST void testCdrom(); void setCurrentHwdec(QString); #endif void updateGeometry(CornerEdge edge, QPoint pos); void setPresenter(Presenter *); /** * @brief 获取播放音量 * @return 播放音量 */ int getDisplayVolume(); /** * @brief getMiniMode 获取迷你模式状态 * @return 返回窗口是否为迷你模式 */ bool getMiniMode(); public slots: /** * @brief 根据url地址播放影片 * @param 影片路径 */ void play(const QList &listFiles); void slotFinishedAddFiles(QList); /** * @brief 该函数主要设置 m_pToolbox 和 m_pPlaylist 的Geometry,在(初始化)、(紧凑/正常终模式之间切换时)以及(全屏/非全屏模式之间切换时)调用 */ void updateProxyGeometry(); void suspendToolsWindow(); void resumeToolsWindow(); void checkOnlineState(const bool bIsOnline); void checkOnlineSubtitle(const OnlineSubtitle::FailReason reason); void checkErrorMpvLogsChanged(const QString sPrefix, const QString sText); void checkWarningMpvLogsChanged(const QString sPrefix, const QString sText); void slotdefaultplaymodechanged(const QString &sKey, const QVariant &value); /** * @brief 设置解码模式 */ void onSetDecodeModel(const QString &key, const QVariant &value); /** * @brief 刷新解码模式 */ void onRefreshDecode(); /** * @brief 设置窗口顶层 */ void my_setStayOnTop(const QWidget *pWidget, bool bOn); void slotmousePressTimerTimeOut(); /** * @brief 播放引擎状态改变 */ void slotPlayerStateChanged(); /** * @brief 窗口焦点改变 */ void slotFocusWindowChanged(); /** * @brief 文件加载成功后做的后续操作 */ void slotFileLoaded(); /** * @brief 显示是否在缓冲中 */ void slotUrlpause(bool bStatus); /** * @brief 根据字体大小改变显示 */ void slotFontChanged(const QFont &font); /** * @brief 改变静音状态 */ void slotMuteChanged(bool bMute); /** * @brief 改变硬解码模式 */ //void slotAwaacelModeChanged(const QString &sKey, const QVariant &value); /** * @brief 音量改变槽函数 */ void slotVolumeChanged(int nVolume); void slotWMChanged(); void slotMediaError(); /** * @brief slotUpdateMircastState 更新投屏状态槽函数 * @param state 投屏状态 */ void slotUpdateMircastState(int state, QString msg); /** * @brief slotExitMircast 退出投屏槽函数 */ void slotExitMircast(); protected: void showEvent(QShowEvent *pEvent) override; void hideEvent(QHideEvent *pEvent) override; void closeEvent(QCloseEvent *pEvent) override; void resizeEvent(QResizeEvent *pEvent) override; void mouseMoveEvent(QMouseEvent *pEvent) override; void mousePressEvent(QMouseEvent *pEvent) override; void mouseDoubleClickEvent(QMouseEvent *pEvent) override; void mouseReleaseEvent(QMouseEvent *pEvent) override; void focusInEvent(QFocusEvent *pEvent) override; void wheelEvent(QWheelEvent *pEvent) override; void keyPressEvent(QKeyEvent *pEvent) override; void keyReleaseEvent(QKeyEvent *pEvent) override; void moveEvent(QMoveEvent *ev) override; void contextMenuEvent(QContextMenuEvent *pEvent) override; void paintEvent(QPaintEvent *pEvent) override; void dragEnterEvent(QDragEnterEvent *pEvent) override; void dragMoveEvent(QDragMoveEvent *pEvent) override; void dropEvent(QDropEvent *pEvent) override; bool event(QEvent *pEvent) override; void leaveEvent(QEvent *pEvent) override; protected slots: void setInit(bool bInit); void menuItemInvoked(QAction *pAction); #ifdef USE_DXCB void onApplicationStateChanged(Qt::ApplicationState e); #endif void onBindingsChanged(); void updateActionsState(); void animatePlayState(); void resizeByConstraints(bool bForceCentered = false); void onWindowStateChanged(); void miniButtonClicked(const QString &sId); void startBurstShooting(); void onBurstScreenshot(const QImage &imgFrame, qint64 timestamp); void delayedMouseReleaseHandler(); #ifdef USE_DXCB void onMonitorButtonPressed(int nX, int nY); void onMonitorMotionNotify(int nX, int nY); _miniPlayBtn void onMonitorButtonReleased(int nX, int nY); void updateShadow(); #endif void diskRemoved(QString sDiskName); void sleepStateChanged(bool bSleep); void lockStateChanged(bool bLock); /** * @brief 响应锁屏dbus信号 */ void onSysLockState(QString serviceName, QVariantMap key2value, QStringList); void slotProperChanged(QString, QVariantMap key2value, QStringList); void slotUnsupported(); void slotInvalidFile(QString strFileName); private: void initMember(); void setupTitlebar(); void handleSettings(DSettingsDialog *); DSettingsDialog *initSettings(); void updateSizeConstraints(); void toggleUIMode(); bool insideToolsArea(const QPoint &pos); void switchTheme(); bool isActionAllowed(ActionFactory::ActionKind kd, bool bFromUI, bool bIsShortcut); QString probeCdromDevice(); void updateWindowTitle(); void prepareSplashImages(); void loadWindowState(); void subtitleMatchVideo(const QString &sFileName); void defaultplaymodeinit(); /** * @brief 解码初始化 */ void decodeInit(); void readSinkInputPath(); void setAudioVolume(int); void setMusicMuted(bool bMuted); void popupAdapter(QIcon, QString); //void setHwaccelMode(const QVariant &value = -1); //Limit video to mini mode size void LimitWindowize(); void mipsShowFullScreen(); //hide pop windows when dragging window void hidePopWindow(); void adjustPlaybackSpeed(ActionFactory::ActionKind); void setPlaySpeedMenuChecked(ActionFactory::ActionKind); void setPlaySpeedMenuUnchecked(); void setMusicShortKeyState(bool bState); /** * @brief mircastSuccess 投屏成功更新界面 */ void mircastSuccess(QString name); void exitMircast(); /** * @brief 使用dbus获取当前机器CPU型号 */ QString cpuHardwareByDBus(); private: MessageWindow *m_pPopupWid; ///截图提示窗口 QLabel *m_pFullScreenTimeLable; ///全屏时右上角的影片进度 QHBoxLayout *m_pFullScreenTimeLayout; ///右上角的影片进度框布局器 Titlebar *m_pTitlebar; ///标题栏 ToolboxProxy *m_pToolbox; ///工具栏 PlaylistWidget *m_pPlaylist; ///播放列表 PlayerEngine *m_pEngine; ///播放引擎 AnimationLabel *m_pAnimationlable; ///点击暂停和播放时动画 MovieProgressIndicator *m_pProgIndicator; ///全屏时右上角的系统时间 QList> m_listBurstShoots; ///存储连拍截图 bool m_bInBurstShootMode; ///是否处于截图状态 bool m_bPausedBeforeBurst; ///截图时暂停播放 DIconButton *m_pMiniPlayBtn; ///迷你模式播放按钮 DIconButton *m_pMiniCloseBtn; ///迷你模式关闭按钮 DIconButton *m_pMiniQuitMiniBtn; ///退出迷你模式按钮 QImage m_imgBgDark; QImage m_imgBgLight; bool m_bMiniMode; ///记录迷你模式 QRect m_lastRectInNormalMode; /// used to restore to recent geometry when quit fullscreen or minVolumeMonitoringi mode QRect m_waylandRectInNormalMode; /// wayland下记录切换迷你模式前默认窗口状态 bool m_bInited; /// the first time a play happens, we consider it inited. EventMonitor *m_pEventMonitor; ///x11事件处理器 bool m_bMovieSwitchedInFsOrMaxed; /// track if next/prev is triggered in fs/maximized mode bool m_bDelayedResizeByConstraint; bool m_bWindowAbove; ///是否是置顶窗口 bool m_bMouseMoved; ///鼠标是否按下移动 bool m_bMousePressed; ///鼠标是否安下 double m_dPlaySpeed; ///当前播放速度 bool m_bQuitfullscreenflag; ///记录最小化前是否为播放状态 QPoint m_posMouseOrigin; ///记录前一次鼠标移动点 QPoint m_pressPoint; ///记录当前鼠标按下时的点 bool m_bStartMini; ///开始进入迷你模式 bool m_bStateInLock; ///锁屏时播放状态 bool m_bStartSleep; ///是否进入休眠状态 enum StateBeforeEnterMiniMode { SBEM_None = 0x0, SBEM_Above = 0x01, SBEM_Fullscreen = 0x02, SBEM_PlaylistOpened = 0x04, SBEM_Maximized = 0x08, }; int m_nStateBeforeMiniMode; Qt::WindowStates m_lastWindowState; uint32_t m_nLastCookie; uint32_t m_nPowerCookie; MainWindowEventListener *m_pEventListener; NotificationWidget *m_pDVDHintWid; ///dvd读取提示 NotificationWidget *m_pCommHintWid; ///窗口左上角提示 QTimer m_autoHideTimer; QTimer m_delayedMouseReleaseTimer; QUrl m_dvdUrl; ///播放dvd的url QProcess *m_pShortcutViewProcess; int m_nDisplayVolume; ///记录播放音量 bool m_bIsFree; ///播放器是否空闲,和IDel的定义不同 static int m_nRetryTimes; ///播放失败后重试次数 //add by heyi 解决触屏右键菜单bug int m_nLastPressX; ///左键按下时保存的点 int m_nLastPressY; ///左键按下时保存的点 bool m_bIsTouch; ///是否是触摸屏按下 QTimer m_mousePressTimer; Diskcheckthread m_diskCheckThread; QStringList m_listOpenFiles; QString m_sCurrentHwdec; ///当前的硬解码模式 bool m_bProgressChanged; ///进度条是否被拖动 bool m_bLastIsTouch; bool m_bTouchChangeVolume; ///是否触发了触屏改变音量 int m_iAngleDelta; ///鼠标滚轮滚动的距离 bool m_bStartAnimation; ///是否开始动画,如果开始不允许做其他操作 QDBusInterface *m_pDBus; Presenter *m_pPresenter; MovieWidget *m_pMovieWidget; MircastShowWidget *m_pMircastShowWidget; ///投屏展示界面 qint64 m_nFullscreenTime; ///全屏操作间隔时间 bool m_bIsWM {true}; ///是否开启窗口特效 bool m_isSettingMiniMode{false}; ///mini mode setting status Qt::WindowStates m_preMiniWindowState {Qt::WindowNoState}; ///window state before mini mode bool m_bMaximized; ///全屏前最大化窗口记录 bool m_bHaveFile; ///导入是否包含文件(用于导入文件或文件夹) DSettingsDialog *m_pDSettingDilog{nullptr}; }; }; #endif /* ifndef _MAIN_WINDOW_H */ deepin-movie-reborn-5.15.10/src/common/options.cpp000066400000000000000000000027231473342170300220170ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "options.h" namespace dmr { static CommandLineManager* _instance = nullptr; CommandLineManager& CommandLineManager::get() { if (!_instance) { _instance = new CommandLineManager(); } return *_instance; } CommandLineManager::CommandLineManager() { addHelpOption(); addVersionOption(); addPositionalArgument("path", ("Movie file path or directory")); addOptions({ {{"V", "verbose"}, ("show detail log message")}, {"VV", ("dump all debug message")}, {{"c", "gpu"}, ("use gpu interface [on/off/auto]"), "bool", "auto"}, {{"o", "override-config"}, ("override config for libmpv"), "file", ""}, {"dvd-device", ("specify dvd playing device or file"), "device", "/dev/sr0"}, }); } bool CommandLineManager::verbose() const { return this->isSet("verbose"); } bool CommandLineManager::debug() const { return this->isSet("VV"); } QString CommandLineManager::openglMode() const { return this->value("c"); // return "on"; } QString CommandLineManager::overrideConfig() const { return this->value("o"); } QString CommandLineManager::dvdDevice() const { if (this->isSet("dvd-device")) { return this->value("dvd-device").trimmed(); } return ""; } } deepin-movie-reborn-5.15.10/src/common/options.h000066400000000000000000000010271473342170300214600ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_OPTIONS_H #define _DMR_OPTIONS_H #include namespace dmr { class CommandLineManager: public QCommandLineParser { public: static CommandLineManager& get(); bool verbose() const; bool debug() const; QString openglMode() const; QString overrideConfig() const; QString dvdDevice() const; private: CommandLineManager(); }; } #endif /* ifndef _DMR_OPTIONS_H */ deepin-movie-reborn-5.15.10/src/common/platform/000077500000000000000000000000001473342170300214405ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/common/platform/platform_dbus_adpator.cpp000066400000000000000000000067361473342170300265330ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "platform_dbus_adpator.h" #include "utils.h" #include "platform/platform_playlist_widget.h" #include "player_engine.h" #include "playlist_model.h" Platform_ApplicationAdaptor::Platform_ApplicationAdaptor(Platform_MainWindow *pMainWid) : QDBusAbstractAdaptor(pMainWid) { initMember(); m_pMainWindow = pMainWid; } //cppcheck 单元测试 wayland下再用 void Platform_ApplicationAdaptor::openFiles(const QStringList &listFiles) { m_pMainWindow->play(listFiles); } //cppcheck 单元测试在用 void Platform_ApplicationAdaptor::openFile(const QString &sFile) { if(sFile.startsWith("UOS_AI")) { QString uosAiStr = sFile.mid(6); qInfo() << "sFile: " << sFile << " midd: " << uosAiStr; funOpenFile(uosAiStr); return; } QRegExp url_re("\\w+://"); QUrl url; if (url_re.indexIn(sFile) == 0) { url = QUrl(sFile); } else { url = QUrl::fromLocalFile(sFile); } m_pMainWindow->play({url.toString()}); } void Platform_ApplicationAdaptor::funOpenFile(const QString &sFile) { if(m_pMainWindow) { QList lstItem = m_pMainWindow->playlist()->engine()->playlist().items(); for (PlayItemInfo info: lstItem) { if(QFileInfo(info.mi.filePath).fileName().toLower().contains(sFile.toLower())) { qInfo() << "Platform_funOpenFile: " << info.mi.filePath; m_pMainWindow->play({QUrl::fromLocalFile(info.mi.filePath).toString()}); break; } } } } void Platform_ApplicationAdaptor::Raise() { qInfo() << "raise window from dbus"; m_pMainWindow->showNormal(); m_pMainWindow->raise(); m_pMainWindow->activateWindow(); } void Platform_ApplicationAdaptor::initMember() { m_pMainWindow = nullptr; } QVariant Platform_ApplicationAdaptor::redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface, const char *pPropert) { // 创建QDBusInterface接口 QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { qInfo() << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } // 调用远程的value方法 QList q = ainterface.dynamicPropertyNames(); QVariant v = ainterface.property(pPropert); return v; } //cppcheck 单元测试在使用 QVariant Platform_ApplicationAdaptor::redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod) { // 创建QDBusInterface接口 QDBusInterface ainterface(sService, sPath, sInterface, QDBusConnection::sessionBus()); if (!ainterface.isValid()) { qInfo() << "error:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } // 调用远程的value方法 QDBusReply reply = ainterface.call(pMethod); if (reply.isValid()) { QVariant v(0) ; return v; } else { qInfo() << "error1:" << qPrintable(QDBusConnection::sessionBus().lastError().message()); QVariant v(0) ; return v; } } deepin-movie-reborn-5.15.10/src/common/platform/platform_dbus_adpator.h000066400000000000000000000035151473342170300261700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLATFORM_DBUS_ADAPTOR #define _DMR_PLATFORM_DBUS_ADAPTOR #include #include "platform_mainwindow.h" using namespace dmr; /** * @file d-bus适配器,开放影院d-bus接口 */ class Platform_ApplicationAdaptor: public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.deepin.movie") public: explicit Platform_ApplicationAdaptor(Platform_MainWindow *pMainWid); /** * @brief 读取d-bus接口参数值 * @param dbus服务名 * @param dbus路径 * @param dbus接口名 * @param 获取的参数名 * @return 获取参数的值 */ static QVariant redDBusProperty(const QString &sService, const QString &sPath, const QString &sInterface = QString(), const char *pPropert = ""); /** * @brief 调用d-bus方法 * @param d-bus服务名 * @param d-bus路径 * @param d-bus接口名 * @param d-bus的方法 * @return 方法的返回值 */ static QVariant redDBusMethod(const QString &sService, const QString &sPath, const QString &sInterface, const char *pMethod); /** * @brief 通过uos-ai服务播放视频 * @param 视频路径集合 */ void funOpenFile(const QString &sFile); public slots: /** * @brief 通过d-bus服务播放视频 * @param 视频路径 */ void openFile(const QString &sFile); /** * @brief 通过d-bus服务播放视频 * @param 视频路径集合 */ void openFiles(const QStringList &listFiles); /** * @brief 调用mainwindow的raise方法 */ void Raise(); private: void initMember(); private: Platform_MainWindow *m_pMainWindow; ///主窗口指针 }; #endif /* ifndef _DMR_DBUS_ADAPTOR */ deepin-movie-reborn-5.15.10/src/common/platform/platform_mainwindow.cpp000066400000000000000000005657371473342170300262530ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "platform_mainwindow.h" #include "platform/platform_toolbox_proxy.h" #include "actions.h" #include "event_monitor.h" #include "shortcut_manager.h" #include "dmr_settings.h" #include "movieinfo_dialog.h" #include "burst_screenshots_dialog.h" #include "platform/platform_playlist_widget.h" #include "platform/platform_notification_widget.h" #include "player_engine.h" #include "url_dialog.h" #include "platform/platform_movie_progress_indicator.h" #include "options.h" #include "titlebar.h" #include "utils.h" #include "dvd_utils.h" #include "dbus_adpator.h" #include "threadpool.h" #include "vendor/movieapp.h" #include "vendor/presenter.h" #include "filefilter.h" #include "eventlogutils.h" //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "moviewidget.h" #include #include #include "../accessibility/ac-deepin-movie-define.h" #define XCB_Platform //to distinguish xcb or wayland #ifdef XCB_Platform #include "utility.h" #endif //add by heyi //#define _NET_WM_MOVERESIZE_MOVE 8 /* movement only */ //#define _NET_WM_MOVERESIZE_CANCEL 11 /* cancel operation */ #define XATOM_MOVE_RESIZE "_NET_WM_MOVERESIZE" #define XDEEPIN_BLUR_REGION "_NET_WM_DEEPIN_BLUR_REGION" #define XDEEPIN_BLUR_REGION_ROUNDED "_NET_WM_DEEPIN_BLUR_REGION_ROUNDED" #define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ #define _NET_WM_STATE_ADD 1 /* add/set property */ #define _NET_WM_STATE_TOGGLE 2 /* toggle property */ const char kAtomNameHidden[] = "_NET_WM_STATE_HIDDEN"; const char kAtomNameFullscreen[] = "_NET_WM_STATE_FULLSCREEN"; const char kAtomNameMaximizedHorz[] = "_NET_WM_STATE_MAXIMIZED_HORZ"; const char kAtomNameMaximizedVert[] = "_NET_WM_STATE_MAXIMIZED_VERT"; const char kAtomNameMoveResize[] = "_NET_WM_MOVERESIZE"; const char kAtomNameWmState[] = "_NET_WM_STATE"; const char kAtomNameWmStateAbove[] = "_NET_WM_STATE_ABOVE"; const char kAtomNameWmStateStaysOnTop[] = "_NET_WM_STATE_STAYS_ON_TOP"; const char kAtomNameWmSkipTaskbar[] = "_NET_WM_STATE_SKIP_TASKBAR"; const char kAtomNameWmSkipPager[] = "_NET_WM_STATE_SKIP_PAGER"; #define AUTOHIDE_TIMEOUT 2000 #define AUTOHIDE_TIME_PAD 5000 //time of the toolbox auto hide #include DWIDGET_USE_NAMESPACE using namespace dmr; #define MOUSE_MARGINS 6 int Platform_MainWindow::m_platform_nRetryTimes = 0; static void workaround_updateStyle(QWidget *pParent, const QString &sTheme) { pParent->setStyle(QStyleFactory::create(sTheme)); for (auto obj : pParent->children()) { QWidget *pWidget = qobject_cast(obj); if (pWidget) { workaround_updateStyle(pWidget, sTheme); } } } static QString ElideText(const QString &sText, const QSize &size, QTextOption::WrapMode wordWrap, const QFont &font, Qt::TextElideMode mode, int nLineHeight, int nLastLineWidth) { int nHeight = 0; QTextLayout textLayout(sText); QString sElideText = nullptr; QFontMetrics fontMetrics(font); textLayout.setFont(font); const_cast(&textLayout.textOption())->setWrapMode(wordWrap); textLayout.beginLayout(); QTextLine line = textLayout.createLine(); while (line.isValid()) { nHeight += nLineHeight; if (nHeight + nLineHeight >= size.height()) { sElideText += fontMetrics.elidedText(sText.mid(line.textStart() + line.textLength() + 1), mode, nLastLineWidth); break; } line.setLineWidth(size.width()); const QString &sTmpText = sText.mid(line.textStart(), line.textLength()); if (sTmpText.indexOf('\n')) nHeight += nLineHeight; sElideText += sTmpText; line = textLayout.createLine(); if (line.isValid()) sElideText.append("\n"); } textLayout.endLayout(); if (textLayout.lineCount() == 1) { sElideText = fontMetrics.elidedText(sElideText, mode, nLastLineWidth); } return sElideText; } static QWidget *createDecodeOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("decodeOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->clear(); combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); return pOptionWidget; } static QWidget *createVoOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("videoOutOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->clear(); combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); pSettingOption->connect(pSettingOption, &DSettingsOption::valueChanged, [=](QVariant value){ combobox->setCurrentIndex(value.toInt()); }); return pOptionWidget; } static QWidget *createEffectOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); QWidget *mianWidget = new QWidget; QComboBox *combobox = new QComboBox; QHBoxLayout *pLayout = new QHBoxLayout; combobox->addItems(pSettingOption->data("items").toStringList()); mianWidget->setLayout(pLayout); pLayout->addStretch(); pLayout->addWidget(combobox); combobox->setFixedWidth(245); combobox->setCurrentIndex(pSettingOption->value().toInt()); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("effectOptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); mianWidget->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), mianWidget); pSettingOption->connect(pSettingOption, &DSettingsOption::dataChanged, [=](const QString &dataType, QVariant value){ if (dataType == "items") { combobox->addItems(value.toStringList()); } }); pSettingOption->connect(combobox, &QComboBox::currentTextChanged, [=](const QString &){ pSettingOption->setValue(combobox->currentIndex()); }); pSettingOption->connect(pSettingOption, &DSettingsOption::valueChanged, [=](QVariant value){ combobox->setCurrentIndex(value.toInt()); }); return pOptionWidget; } static QWidget *createSelectableLineEditOptionHandle(QObject *pObj) { DSettingsOption *pSettingOption = qobject_cast(pObj); DLineEdit *pLineEdit = new DLineEdit(); DWidget *pMainWid = new DWidget; QHBoxLayout *pLayout = new QHBoxLayout; static QString sNameLast = nullptr; pMainWid->setLayout(pLayout); DIconButton *pIconButton = new DIconButton(nullptr); pIconButton->setIcon(DStyle::SP_SelectElement); pLineEdit->setFixedHeight(21); pLineEdit->setObjectName("OptionSelectableLineEdit"); pLineEdit->setText(pSettingOption->value().toString()); QFontMetrics fontMetrics = pLineEdit->fontMetrics(); QString sElideText = ElideText(pLineEdit->text(), {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); pSettingOption->connect(pLineEdit, &DLineEdit::focusChanged, [ = ](bool bRet) { if (bRet) pLineEdit->setText(pSettingOption->value().toString()); }); pLineEdit->setText(sElideText); sNameLast = sElideText; pLayout->addWidget(pLineEdit); pLayout->addWidget(pIconButton); QWidget *pOptionWidget = new QWidget; pOptionWidget->setObjectName("OptionFrame"); QFormLayout *pOptionLayout = new QFormLayout(pOptionWidget); pOptionLayout->setContentsMargins(0, 0, 0, 0); pOptionLayout->setSpacing(0); pMainWid->setMinimumWidth(240); pOptionLayout->addRow(new DLabel(QObject::tr(pSettingOption->name().toStdString().c_str())), pMainWid); //auto optionWidget = settingWidget->createWidget(option); workaround_updateStyle(pOptionWidget, "light"); DDialog *pPrompt = new DDialog(pMainWid); pPrompt->setIcon(QIcon(":/resources/icons/warning.svg")); //pPrompt->setTitle(QObject::tr("Permissions pPrompt")); pPrompt->setMessage(QObject::tr("You don't have permission to operate this folder")); pPrompt->setWindowFlags(pPrompt->windowFlags() | Qt::WindowStaysOnTopHint); pPrompt->addButton(QObject::tr("OK"), true, DDialog::ButtonRecommend); auto validate = [ = ](QString sName, bool bAlert = true) -> bool { sName = sName.trimmed(); if (sName.isEmpty()) return false; if (sName.size() && sName[0] == '~') { sName.replace(0, 1, QDir::homePath()); } QFileInfo fi(sName); QDir dir(sName); if (fi.exists()) { if (!fi.isDir()) { if (bAlert) pLineEdit->showAlertMessage(QObject::tr("Invalid folder")); return false; } if (!fi.isReadable() || !fi.isWritable()) { return false; } } else { if (dir.cdUp()) { QFileInfo ch(dir.path()); if (!ch.isReadable() || !ch.isWritable()) return false; } } return true; }; pSettingOption->connect(pIconButton, &DPushButton::clicked, [ = ]() { #ifndef USE_TEST QString sName = DFileDialog::getExistingDirectory(nullptr, QObject::tr("Open folder"), Platform_MainWindow::lastOpenedPath(), DFileDialog::ShowDirsOnly | DFileDialog::DontResolveSymlinks); #else QString sName = "/data/source/deepin-movie-reborn/movie/DMovie"; #endif if (validate(sName, false)) { pSettingOption->setValue(sName); sNameLast = sName; } QFileInfo fileinfo(sName); if ((!fileinfo.isReadable() || !fileinfo.isWritable()) && !sName.isEmpty()) { pPrompt->show(); } }); pSettingOption->connect(pLineEdit, &DLineEdit::editingFinished, pSettingOption, [ = ]() { QString name = pLineEdit->text(); QDir dir(name); auto pn = ElideText(name, {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); auto nmls = ElideText(sNameLast, {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); if (!validate(pLineEdit->text(), false)) { QFileInfo fn(dir.path()); if ((!fn.isReadable() || !fn.isWritable()) && !name.isEmpty()) { pPrompt->show(); } } if (!pLineEdit->lineEdit()->hasFocus()) { if (validate(pLineEdit->text(), false)) { pSettingOption->setValue(pLineEdit->text()); pLineEdit->setText(pn); sNameLast = name; } else if (pn == sElideText) { pLineEdit->setText(sElideText); } else { pSettingOption->setValue(sNameLast); pLineEdit->setText(nmls); } } }); pSettingOption->connect(pLineEdit, &DLineEdit::textEdited, pSettingOption, [ = ](const QString & sNewStr) { validate(sNewStr); }); pSettingOption->connect(pSettingOption, &DTK_CORE_NAMESPACE::DSettingsOption::valueChanged, pLineEdit, [ = ](const QVariant & value) { auto pi = ElideText(value.toString(), {285, fontMetrics.height()}, QTextOption::WrapAnywhere, pLineEdit->font(), Qt::ElideMiddle, fontMetrics.height(), 285); pLineEdit->setText(pi); pLineEdit->update(); }); return pOptionWidget; } #ifdef USE_DXCB class Platform_MainWindowFocusMonitor: public QAbstractNativeEventFilter { public: explicit Platform_MainWindowFocusMonitor(Platform_MainWindow *src) : QAbstractNativeEventFilter(), _source(src) { qApp->installNativeEventFilter(this); } ~Platform_MainWindowFocusMonitor() { qApp->removeNativeEventFilter(this); } bool nativeEventFilter(const QByteArray &eventType, void *message, long *) { if (Q_LIKELY(eventType == "xcb_generic_event_t")) { xcb_generic_event_t *event = static_cast(message); switch (event->response_type & ~0x80) { case XCB_LEAVE_NOTIFY: { xcb_leave_notify_event_t *dne = (xcb_leave_notify_event_t *)event; auto w = _source->windowHandle(); if (dne->event == w->winId()) { qInfo() << "--------- leave " << dne->event << dne->child; emit _source->windowLeaved(); } break; } case XCB_ENTER_NOTIFY: { xcb_enter_notify_event_t *dne = (xcb_enter_notify_event_t *)event; auto w = _source->windowHandle(); if (dne->event == w->winId()) { qInfo() << "--------- enter " << dne->event << dne->child; emit _source->windowEntered(); } break; } default: break; } } return false; } Platform_MainWindow *_source; }; #endif class Platform_MainWindowEventListener : public QObject { Q_OBJECT public: explicit Platform_MainWindowEventListener(QWidget *pTarget) : QObject(pTarget) { lastCornerEdge = Platform_CornerEdge::Platform_NoneEdge; m_pMainWindow = static_cast(pTarget); m_pWindow = pTarget->windowHandle(); } void setEnabled(bool bEnale) { m_bEnabled = bEnale; } protected: bool eventFilter(QObject *pObj, QEvent *pEvent) Q_DECL_OVERRIDE { QWindow *pWindow = qobject_cast(pObj); if (!pWindow) return false; Platform_MainWindow *pMainWindow = static_cast(parent()); switch (static_cast(pEvent->type())) { case QEvent::MouseMove+1: { //响应tab按钮 QKeyEvent *pKeyEvent = static_cast(pEvent); //根据需求迷你模式不响应tab键交互 if (pKeyEvent->key() == Qt::Key_Tab) { if (!m_pMainWindow->getMiniMode()) { pMainWindow->capturedKeyEvent(pKeyEvent); //Only the tab key interactive response is set to the first if (m_pMainWindow->playlist()->isFocusInPlaylist()) { bool bFocusAttribute = true; m_pMainWindow->playlist()->resetFocusAttribute(bFocusAttribute); } } else { return true; } } break; } case QEvent::MouseButtonPress: { if (!m_pMainWindow->playlist()) { return true; } if (m_pMainWindow->playlist()->state() == Platform_PlaylistWidget::State::Opened) { m_pMainWindow->toolbox()->clearPlayListFocus(); } //Mouse operation does not respond to the first item bool bFocusAttribute = false; m_pMainWindow->playlist()->resetFocusAttribute(bFocusAttribute); if (!m_bEnabled) return false; QMouseEvent *pMouseEvent = static_cast(pEvent); setLeftButtonPressed(true); if (pMainWindow->insideResizeArea(pMouseEvent->globalPos()) && lastCornerEdge != Platform_CornerEdge::Platform_NoneEdge) m_bStartResizing = true; pMainWindow->capturedMousePressEvent(pMouseEvent); if (m_bStartResizing) { return true; } break; } case QEvent::MouseButtonRelease: { if (!m_bEnabled) return false; QMouseEvent *pMouseEvent = static_cast(pEvent); setLeftButtonPressed(false); qApp->setOverrideCursor(pWindow->cursor()); pMainWindow->capturedMouseReleaseEvent(pMouseEvent); if (m_bStartResizing) { m_bStartResizing = false; return true; } m_bStartResizing = false; break; } case QEvent::MouseMove: { QMouseEvent *pMouseEvent = static_cast(pEvent); pMainWindow->resumeToolsWindow(); /* If the focus is on the playlist button, move the mouse to cancel the focus * In order to avoid the enter key to expand and the mouse click to expand the playlist * There is a problem here, if the mouse does not move, click directly, * Will cause focus to appear on the clear list button * Please refer to the maintainer whether to add an event filter to the ListBtn */ if (m_pMainWindow->toolbox()->getListBtnFocus()) { m_pMainWindow->setFocus(); } //If window is maximized ,need quit maximize state when resizing if (m_bStartResizing && (pMainWindow->windowState() & Qt::WindowMaximized)) { pMainWindow->setWindowState(pMainWindow->windowState() & (~Qt::WindowMaximized)); } else if (m_bStartResizing && (pMainWindow->windowState() & Qt::WindowFullScreen)) { pMainWindow->setWindowState(pMainWindow->windowState() & (~Qt::WindowFullScreen)); } if (!m_bEnabled) return false; const QRect window_visible_rect = m_pWindow->frameGeometry() - pMainWindow->dragMargins(); if (!m_bLeftButtonPressed) { //add by heyi 拦截鼠标移动事件 pMainWindow->judgeMouseInWindow(QCursor::pos()); Platform_CornerEdge mouseCorner = Platform_CornerEdge::Platform_NoneEdge; QRect cornerRect; /// begin set cursor corner type cornerRect.setSize(QSize(MOUSE_MARGINS * 2, MOUSE_MARGINS * 2)); cornerRect.moveTopLeft(m_pWindow->frameGeometry().topLeft()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = Platform_CornerEdge::Platform_TopLeftCorner; goto set_cursor; } cornerRect.moveTopRight(m_pWindow->frameGeometry().topRight()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = Platform_CornerEdge::Platform_TopRightCorner; goto set_cursor; } cornerRect.moveBottomRight(m_pWindow->frameGeometry().bottomRight()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = Platform_CornerEdge::Platform_BottomRightCorner; goto set_cursor; } cornerRect.moveBottomLeft(m_pWindow->frameGeometry().bottomLeft()); if (cornerRect.contains(pMouseEvent->globalPos())) { mouseCorner = Platform_CornerEdge::Platform_BottomLeftCorner; goto set_cursor; } goto skip_set_cursor; // disable edges /// begin set cursor edge type if (pMouseEvent->globalX() <= window_visible_rect.x()) { mouseCorner = Platform_CornerEdge::Platform_LeftEdge; } else if (pMouseEvent->globalX() < window_visible_rect.right()) { if (pMouseEvent->globalY() <= window_visible_rect.y()) { mouseCorner = Platform_CornerEdge::Platform_TopEdge; } else if (pMouseEvent->globalY() >= window_visible_rect.bottom()) { mouseCorner = Platform_CornerEdge::Platform_BottomEdge; } else { goto skip_set_cursor; } } else if (pMouseEvent->globalX() >= window_visible_rect.right()) { mouseCorner = Platform_CornerEdge::Platform_RightEdge; } else { goto skip_set_cursor; } set_cursor: #ifdef USE_DXCB #ifdef __mips__ if (pWindow->property("_d_real_winId").isValid()) { auto real_wid = pWindow->property("_d_real_winId").toUInt(); Utility::setWindowCursor(real_wid, mouseCorner); } else { Utility::setWindowCursor(static_cast(pWindow->winId()), mouseCorner); } #endif #endif if (qApp->mouseButtons() == Qt::LeftButton) { updateGeometry(mouseCorner, pMouseEvent); } lastCornerEdge = mouseCorner; return true; skip_set_cursor: lastCornerEdge = mouseCorner = Platform_CornerEdge::Platform_NoneEdge; return false; } else { if (m_bStartResizing) { updateGeometry(lastCornerEdge, pMouseEvent); if (CompositingManager::get().platform() != Platform::X86) pMainWindow->syncPostion(); return true; } } break; } default: break; } return false; } private: void setLeftButtonPressed(bool bPressed) { if (m_bLeftButtonPressed == bPressed) return; if (!bPressed) { #ifdef USE_DXCB Utility::cancelWindowMoveResize(static_cast(_window->winId())); #endif } m_bLeftButtonPressed = bPressed; } void updateGeometry(Platform_CornerEdge edge, QMouseEvent *pEvent) { Platform_MainWindow *pMainWindow = static_cast(parent()); pMainWindow->updateGeometry(edge, pEvent->globalPos()); } bool m_bLeftButtonPressed = false; bool m_bStartResizing = false; bool m_bEnabled {true}; Platform_CornerEdge lastCornerEdge; QWindow *m_pWindow; Platform_MainWindow *m_pMainWindow; }; #ifdef USE_DXCB /// shadow #define SHADOW_COLOR_NORMAL QColor(0, 0, 0, 255 * 0.35) #define SHADOW_COLOR_ACTIVE QColor(0, 0, 0, 255 * 0.6) #endif struct SessionInfo { QString sessionId; uint userId; QString userName; QString seatId; QDBusObjectPath sessionPath; }; typedef QList SessionInfoList; Q_DECLARE_METATYPE(SessionInfoList); Q_DECLARE_METATYPE(SessionInfo); inline QDBusArgument &operator<<(QDBusArgument &argument, const SessionInfo &sessionInfo) { argument.beginStructure(); argument << sessionInfo.sessionId; argument << sessionInfo.userId; argument << sessionInfo.userName; argument << sessionInfo.seatId; argument << sessionInfo.sessionPath; argument.endStructure(); return argument; } inline const QDBusArgument &operator>>(const QDBusArgument &argument, SessionInfo &sessionInfo) { argument.beginStructure(); argument >> sessionInfo.sessionId; argument >> sessionInfo.userId; argument >> sessionInfo.userName; argument >> sessionInfo.seatId; argument >> sessionInfo.sessionPath; argument.endStructure(); return argument; } Platform_MainWindow::Platform_MainWindow(QWidget *parent) : DMainWindow(nullptr) { initMember(); QJsonObject obj{ {"tid", EventLogUtils::Start}, {"mode", 1}, //冷启动 {"version", VERSION} }; EventLogUtils::get().writeLogs(obj); //add bu heyi this->setAttribute(Qt::WA_AcceptTouchEvents); m_mousePressTimer.setInterval(1300); connect(&m_mousePressTimer, &QTimer::timeout, this, &Platform_MainWindow::slotmousePressTimerTimeOut); #ifdef USE_DXCB setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); #else setWindowFlags(Qt::Window | Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); #ifdef Q_OS_MACOS setWindowFlags(Qt::WindowFullscreenButtonHint); #endif #endif setAcceptDrops(true); #ifdef USE_DXCB if (DApplication::isDXcbPlatform()) { _handle = new DPlatformWindowHandle(this, this); _handle->setEnableSystemResize(false); _handle->setEnableSystemMove(false); _handle->setWindowRadius(4); connect(qApp, &QGuiApplication::focusWindowChanged, this, &Platform_MainWindow::updateShadow); updateShadow(); } #endif QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred); sp.setHeightForWidth(true); setSizePolicy(sp); setContentsMargins(0, 0, 0, 0); setupTitlebar(); CommandLineManager &commanLineManager = dmr::CommandLineManager::get(); if (commanLineManager.debug()) { Backend::setDebugLevel(Backend::DebugLevel::Debug); } else if (commanLineManager.verbose()) { Backend::setDebugLevel(Backend::DebugLevel::Verbose); } m_pEngine = new PlayerEngine(this); #ifndef USE_DXCB m_pEngine->move(0, 0); #endif //初始化显示音量与音量条控件一致 m_nDisplayVolume = 100; m_pToolbox = new Platform_ToolboxProxy(this, m_pEngine); m_pToolbox->setObjectName(BOTTOM_TOOL_BOX); titlebar()->deleteLater(); connect(m_pToolbox, &Platform_ToolboxProxy::sigUnsupported, this, &Platform_MainWindow::slotUnsupported); connect(m_pEngine, &PlayerEngine::stateChanged, this, &Platform_MainWindow::slotPlayerStateChanged); connect(m_pEngine, &PlayerEngine::sigInvalidFile, this, &Platform_MainWindow::slotInvalidFile); connect(ActionFactory::get().mainContextMenu(), &DMenu::triggered, this, &Platform_MainWindow::menuItemInvoked); connect(ActionFactory::get().playlistContextMenu(), &DMenu::triggered, this, &Platform_MainWindow::menuItemInvoked); connect(this, &Platform_MainWindow::frameMenuEnable, &ActionFactory::get(), &ActionFactory::frameMenuEnable); connect(this, &Platform_MainWindow::playSpeedMenuEnable, &ActionFactory::get(), &ActionFactory::playSpeedMenuEnable); connect(this, &Platform_MainWindow::subtitleMenuEnable, &ActionFactory::get(), &ActionFactory::subtitleMenuEnable); connect(this, &Platform_MainWindow::soundMenuEnable, &ActionFactory::get(), &ActionFactory::soundMenuEnable); connect(qApp, &QGuiApplication::focusWindowChanged, this, &Platform_MainWindow::slotFocusWindowChanged); connect(m_pToolbox, &Platform_ToolboxProxy::sigVolumeChanged, this, &Platform_MainWindow::slotVolumeChanged); connect(m_pToolbox, &Platform_ToolboxProxy::sigMuteStateChanged, this, &Platform_MainWindow::slotMuteChanged); //In the case of Platform, this is currently not initialized in the case of //MIPS, followed by the situation, and the code is subsequently removed by judging the macro. if (CompositingManager::get().platform() != Platform::Mips) { m_pProgIndicator = new Platform_MovieProgressIndicator(this); m_pFullScreenTimeLable = new QLabel; m_pProgIndicator->setVisible(false); connect(m_pEngine, &PlayerEngine::elapsedChanged, [ = ]() { m_pProgIndicator->updateMovieProgress(m_pEngine->duration(), m_pEngine->elapsed()); }); m_pFullScreenTimeLable->setAttribute(Qt::WA_TranslucentBackground); m_pFullScreenTimeLable->setWindowFlags(Qt::FramelessWindowHint); m_pFullScreenTimeLable->setParent(this); m_pFullScreenTimeLable->setWindowFlags(m_pFullScreenTimeLable->windowFlags() | Qt::ToolTip); m_pFullScreenTimeLayout = new QHBoxLayout; m_pFullScreenTimeLayout->addStretch(); m_pFullScreenTimeLayout->addWidget(m_pToolbox->getfullscreentimeLabel()); m_pFullScreenTimeLayout->addWidget(m_pToolbox->getfullscreentimeLabelend()); m_pFullScreenTimeLayout->addStretch(); m_pFullScreenTimeLable->setLayout(m_pFullScreenTimeLayout); m_pFullScreenTimeLable->close(); } // mini ui QSignalMapper *pSignalMapper = new QSignalMapper(this); connect(pSignalMapper, static_cast(&QSignalMapper::mapped), this, &Platform_MainWindow::miniButtonClicked); m_pMiniPlayBtn = new DIconButton(this); m_pMiniQuitMiniBtn = new DIconButton(this); m_pMiniCloseBtn = new DIconButton(this); m_pMiniPlayBtn->setFlat(true); m_pMiniCloseBtn->setFlat(true); m_pMiniQuitMiniBtn->setFlat(true); QPalette palette; palette.setColor(m_pMiniPlayBtn->backgroundRole(), Qt::black); m_pMiniPlayBtn->setAutoFillBackground(true); m_pMiniQuitMiniBtn->setAutoFillBackground(true); m_pMiniCloseBtn->setAutoFillBackground(true); m_pMiniPlayBtn->setPalette(palette); m_pMiniQuitMiniBtn->setPalette(palette); m_pMiniCloseBtn->setPalette(palette); m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg")); m_pMiniPlayBtn->setIconSize(QSize(30, 30)); m_pMiniPlayBtn->setFixedSize(QSize(35, 35)); m_pMiniPlayBtn->setObjectName("MiniPlayBtn"); connect(m_pMiniPlayBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniPlayBtn, "play"); connect(m_pEngine, &PlayerEngine::stateChanged, [ = ]() { qInfo() << __func__ << m_pEngine->state(); if (m_pEngine->state() == PlayerEngine::CoreState::Playing && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { emit subtitleMenuEnable(false); } else { emit subtitleMenuEnable(true); } if (m_pProgIndicator) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { //播放切换时,更新音量dbus 当前的sinkInputPath if (m_pProgIndicator) { m_pFullScreenTimeLable->close(); m_pProgIndicator->setVisible(false); } emit frameMenuEnable(false); emit playSpeedMenuEnable(false); } } if (m_pEngine->state() == PlayerEngine::CoreState::Playing) { if (CompositingManager::get().platform() != Platform::Mips) { if (isFullScreen()) { QRect screenGeo = windowHandle()->screen()->geometry(); int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); pixelsWidth = qMax(117, pixelsWidth); m_pFullScreenTimeLable->setGeometry(screenGeo.width() + screenGeo.x() - pixelsWidth - 60, 40 + screenGeo.y(), pixelsWidth + 60, 36); m_pFullScreenTimeLable->show(); m_pProgIndicator->setVisible(true); QTimer::singleShot(200, [ = ]() { activateWindow(); // show other window make mainwindow deactivate setFocus(); }); } } m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/pause-normal-mini.svg")); m_pMiniPlayBtn->setObjectName("MiniPauseBtn"); if (m_pEngine->playlist().count() > 0 && !m_pEngine->currFileIsAudio()) { emit frameMenuEnable(true); setMusicShortKeyState(true); } else { emit frameMenuEnable(false); setMusicShortKeyState(false); } emit playSpeedMenuEnable(true); if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } m_nLastCookie = utils::InhibitStandby(); m_nPowerCookie = utils::InhibitPower(); } else { if (m_pMircastShowWidget->isVisible()) return; m_pMiniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg")); m_pMiniPlayBtn->setObjectName("MiniPlayBtn"); if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } } }); m_pMiniCloseBtn->setIcon(QIcon(":/resources/icons/light/mini/close-normal.svg")); m_pMiniCloseBtn->setIconSize(QSize(30, 30)); m_pMiniCloseBtn->setFixedSize(QSize(35, 35)); m_pMiniCloseBtn->setObjectName("MiniCloseBtn"); connect(m_pMiniCloseBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniCloseBtn, "close"); m_pMiniQuitMiniBtn->setIcon(QIcon(":/resources/icons/light/mini/restore-normal-mini.svg")); m_pMiniQuitMiniBtn->setIconSize(QSize(30, 30)); m_pMiniQuitMiniBtn->setFixedSize(QSize(35, 35)); m_pMiniQuitMiniBtn->setObjectName("MiniQuitMiniBtn"); connect(m_pMiniQuitMiniBtn, SIGNAL(clicked()), pSignalMapper, SLOT(map())); pSignalMapper->setMapping(m_pMiniQuitMiniBtn, "quit_mini"); m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); m_pMiniPlayBtn->setAttribute(Qt::WA_NativeWindow); m_pMiniCloseBtn->setAttribute(Qt::WA_NativeWindow); m_pMiniQuitMiniBtn->setAttribute(Qt::WA_NativeWindow); updateProxyGeometry(); connect(&ShortcutManager::get(), &ShortcutManager::bindingsChanged, this, &Platform_MainWindow::onBindingsChanged); ShortcutManager::get().buildBindings(); //绑定要放在connect后 connect(m_pEngine, SIGNAL(stateChanged()), this, SLOT(update())); connect(m_pEngine, &PlayerEngine::tracksChanged, this, &Platform_MainWindow::updateActionsState); connect(m_pEngine, &PlayerEngine::stateChanged, this, &Platform_MainWindow::updateActionsState); updateActionsState(); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_pTitlebar->setFixedHeight(40); m_pMiniPlayBtn->setIconSize(QSize(19, 19)); m_pMiniPlayBtn->setFixedSize(QSize(23, 23)); m_pMiniCloseBtn->setIconSize(QSize(19, 19)); m_pMiniCloseBtn->setFixedSize(QSize(23, 23)); m_pMiniQuitMiniBtn->setIconSize(QSize(19, 19)); m_pMiniQuitMiniBtn->setFixedSize(QSize(23, 23)); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_pTitlebar->setFixedHeight(50); m_pMiniPlayBtn->setIconSize(QSize(30, 30)); m_pMiniPlayBtn->setFixedSize(QSize(35, 35)); m_pMiniCloseBtn->setIconSize(QSize(30, 30)); m_pMiniCloseBtn->setFixedSize(QSize(35, 35)); m_pMiniQuitMiniBtn->setIconSize(QSize(30, 30)); m_pMiniQuitMiniBtn->setFixedSize(QSize(35, 35)); } else { m_pTitlebar->setFixedHeight(40); m_pMiniPlayBtn->setIconSize(QSize(19, 19)); m_pMiniPlayBtn->setFixedSize(QSize(23, 23)); m_pMiniCloseBtn->setIconSize(QSize(19, 19)); m_pMiniCloseBtn->setFixedSize(QSize(23, 23)); m_pMiniQuitMiniBtn->setIconSize(QSize(19, 19)); m_pMiniQuitMiniBtn->setFixedSize(QSize(23, 23)); } }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (m_bMiniMode) return; m_pCommHintWid->hide(); updateProxyGeometry(); }); #endif //勾选右键菜单默认选项 reflectActionToUI(ActionFactory::ActionKind::OneTimes); reflectActionToUI(ActionFactory::ActionKind::ChangeSubCodepage); reflectActionToUI(ActionFactory::ActionKind::DefaultFrame); reflectActionToUI(ActionFactory::ActionKind::Stereo); prepareSplashImages(); connect(m_pEngine, &PlayerEngine::sidChanged, [ = ]() { reflectActionToUI(ActionFactory::ActionKind::SelectSubtitle); }); //NOTE: mpv does not always send a aid-change signal the first time movie is loaded. connect(m_pEngine, &PlayerEngine::aidChanged, [ = ]() { reflectActionToUI(ActionFactory::ActionKind::SelectTrack); }); connect(m_pEngine, &PlayerEngine::fileLoaded, this, &Platform_MainWindow::slotFileLoaded); connect(m_pEngine, &PlayerEngine::videoSizeChanged, [ = ]() { this->resizeByConstraints(); }); connect(m_pEngine, &PlayerEngine::stateChanged, this, &Platform_MainWindow::animatePlayState); connect(m_pEngine, &PlayerEngine::loadOnlineSubtitlesFinished, [this](const QUrl & url, bool success) {//不能去掉 url参数 m_pCommHintWid->updateWithMessage(success ? tr("Load successfully") : tr("Load failed")); }); connect(&m_autoHideTimer, &QTimer::timeout, this, &Platform_MainWindow::suspendToolsWindow); m_autoHideTimer.setSingleShot(true); connect(&m_delayedMouseReleaseTimer, &QTimer::timeout, this, &Platform_MainWindow::delayedMouseReleaseHandler); m_delayedMouseReleaseTimer.setSingleShot(true); m_pCommHintWid = new Platform_NotificationWidget(this); m_pCommHintWid->setFixedHeight(30); m_pCommHintWid->setAnchor(Platform_NotificationWidget::ANCHOR_NORTH_WEST); m_pCommHintWid->setAnchorPoint(QPoint(30, 58)); m_pCommHintWid->hide(); m_pDVDHintWid = new Platform_NotificationWidget(this); m_pDVDHintWid->setFixedHeight(30); m_pDVDHintWid->setAnchor(Platform_NotificationWidget::ANCHOR_NORTH_WEST); m_pDVDHintWid->setAnchorPoint(QPoint(30, 58)); m_pDVDHintWid->hide(); #ifdef USE_DXCB connect(qApp, &QGuiApplication::applicationStateChanged, this, &Platform_MainWindow::onApplicationStateChanged); _evm = new EventMonitor(this); connect(_evm, &EventMonitor::buttonedPress, this, &Platform_MainWindow::onMonitorButtonPressed); connect(_evm, &EventMonitor::buttonedDrag, this, &Platform_MainWindow::onMonitorMotionNotify); connect(_evm, &EventMonitor::buttonedRelease, this, &Platform_MainWindow::onMonitorButtonReleased); _evm->start(); m_pEventListener = new Platform_MainWindowEventListener(this); this->windowHandle()->installEventFilter(m_pEventListener); //auto mwfm = new MainWindowFocusMonitor(this); auto mwpm = new MainWindowPropertyMonitor(this); connect(this, &Platform_MainWindow::windowEntered, &Platform_MainWindow::resumeToolsWindow); connect(this, &Platform_MainWindow::windowLeaved, &Platform_MainWindow::suspendToolsWindow); #else winId(); m_pEventListener = new Platform_MainWindowEventListener(this); QTimer::singleShot(500, [this](){ this->windowHandle()->installEventFilter(m_pEventListener); connect(this, &Platform_MainWindow::windowEntered, &Platform_MainWindow::resumeToolsWindow); connect(this, &Platform_MainWindow::windowLeaved, &Platform_MainWindow::suspendToolsWindow); if (m_pEngine->windowHandle()) m_pEngine->windowHandle()->installEventFilter(m_pEventListener); m_pTitlebar->windowHandle()->installEventFilter(m_pEventListener); m_pToolbox->windowHandle()->installEventFilter(m_pEventListener); m_pMircastShowWidget->windowHandle()->installEventFilter(m_pEventListener); qInfo() << "event listener"; } ); #endif m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); m_pCommHintWid->setWM(m_bIsWM); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &Platform_MainWindow::slotWMChanged); m_pAnimationlable = new Platform_AnimationLabel(this, this); m_pAnimationlable->setWM(m_bIsWM); if (CompositingManager::get().platform() != Platform::X86 && m_bIsWM) { m_pAnimationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200); } else { m_pAnimationlable->setGeometry(width() / 2 - 100, height() / 2, 100, 100); } m_pPopupWid = new Platform_MessageWindow(this); m_pPopupWid->hide(); defaultplaymodeinit(); connect(&Settings::get(), &Settings::defaultplaymodechanged, this, &Platform_MainWindow::slotdefaultplaymodechanged); connect(&Settings::get(), &Settings::setDecodeModel, this, &Platform_MainWindow::onSetDecodeModel,Qt::DirectConnection); connect(&Settings::get(), &Settings::refreshDecode, this, &Platform_MainWindow::onRefreshDecode,Qt::DirectConnection); connect(m_pEngine, &PlayerEngine::onlineStateChanged, this, &Platform_MainWindow::checkOnlineState); connect(&OnlineSubtitle::get(), &OnlineSubtitle::onlineSubtitleStateChanged, this, &Platform_MainWindow::checkOnlineSubtitle); connect(m_pEngine, &PlayerEngine::mpvErrorLogsChanged, this, &Platform_MainWindow::checkErrorMpvLogsChanged); connect(m_pEngine, &PlayerEngine::mpvWarningLogsChanged, this, &Platform_MainWindow::checkWarningMpvLogsChanged); connect(m_pEngine, &PlayerEngine::urlpause, this, &Platform_MainWindow::slotUrlpause); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::newProcessInstance, this, [ = ] { this->activateWindow(); }); connect(qApp, &QGuiApplication::fontChanged, this, &Platform_MainWindow::slotFontChanged); ThreadPool::instance()->moveToNewThread(&m_diskCheckThread); m_diskCheckThread.start(); connect(&m_diskCheckThread, &Diskcheckthread::diskRemove, this, &Platform_MainWindow::diskRemoved); QTimer::singleShot(300, [this]() { loadPlayList(); }); m_pDBus = new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()); connect(m_pDBus, SIGNAL(PrepareForSleep(bool)), this, SLOT(sleepStateChanged(bool))); QDBusConnection::sessionBus().connect("org.deepin.dde.ShutdownFront1", "/org/deepin/dde/lockFront1", "org.deepin.dde.lockFront1", "Visible", this, SLOT(lockStateChanged(bool))); m_pMovieWidget = new MovieWidget(this); m_pMovieWidget->hide(); m_pMircastShowWidget = new MircastShowWidget(this); m_pMircastShowWidget->hide(); connect(m_pToolbox, &Platform_ToolboxProxy::sigMircastState, this, &Platform_MainWindow::slotUpdateMircastState); connect(m_pMircastShowWidget, &MircastShowWidget::exitMircast, this, &Platform_MainWindow::slotExitMircast); m_pMovieWidget->windowHandle()->installEventFilter(m_pEventListener); qDBusRegisterMetaType(); qDBusRegisterMetaType(); QDBusPendingReply reply = m_pDBus->call("ListSessions"); QString path = reply.value().last().sessionPath.path(); QDBusConnection::systemBus().connect("org.freedesktop.login1", path, "org.freedesktop.DBus.Properties", "PropertiesChanged", this, SLOT(slotProperChanged(QString, QVariantMap, QStringList))); qInfo() << "session Path is :" << path; connect(dynamic_cast(m_pEngine->getMpvProxy()),&MpvProxy::crashCheck,&Settings::get(),&Settings::crashCheck); //解码初始化 //decodeInit(); } void Platform_MainWindow::setupTitlebar() { m_pTitlebar = new Titlebar(this); m_pTitlebar->move(0, 0); setTitlebarShadowEnabled(false); m_pTitlebar->setFixedHeight(50); m_pTitlebar->setAttribute(Qt::WA_NativeWindow); m_pTitlebar->winId(); m_pTitlebar->titlebar()->setMenu(ActionFactory::get().titlebarMenu()); connect(m_pTitlebar->titlebar()->menu(), &DMenu::triggered, this, &Platform_MainWindow::menuItemInvoked); } void Platform_MainWindow::updateContentGeometry(const QRect &rect) { #ifdef USE_DXCB auto frame = QWindow::fromWinId(windowHandle()->winId()); QRect frame_rect = rect; if (_handle) { frame_rect += _handle->frameMargins(); } const uint32_t values[] = { (uint32_t)frame_rect.x(), (uint32_t)frame_rect.y(), (uint32_t)frame_rect.width(), (uint32_t)frame_rect.height() }; // manually configure frame window which will in turn update content window xcb_configure_window(QX11Info::connection(), windowHandle()->winId(), XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT | XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_X, values); #else move(rect.x(), rect.y()); resize(rect.width(), rect.height()); #endif } #ifdef USE_DXCB void Platform_MainWindow::updateShadow() { if (isActiveWindow()) { _handle->setShadowRadius(60); _handle->setShadowColor(SHADOW_COLOR_ACTIVE); } else { _handle->setShadowRadius(60); _handle->setShadowColor(SHADOW_COLOR_NORMAL); } } #endif bool Platform_MainWindow::event(QEvent *pEvent) { if (pEvent->type() == QEvent::UpdateRequest || pEvent->type() == QEvent::Paint) return DMainWindow::event(pEvent); if (pEvent->type() == QEvent::TouchBegin) { //判定是否是触屏 this->m_posMouseOrigin = mapToGlobal(QCursor::pos()); m_bIsTouch = true; } //add by heyi //判断是否停止右键菜单定时器 if (m_bMousePressed) { if (qAbs(m_nLastPressX - mapToGlobal(QCursor::pos()).x()) > 50 || qAbs(m_nLastPressY - mapToGlobal(QCursor::pos()).y()) > 50) { if (m_mousePressTimer.isActive()) { qInfo() << "结束定时器"; m_mousePressTimer.stop(); m_bMousePressed = false; } } } if (pEvent->type() == QEvent::WindowStateChange) { QWindowStateChangeEvent *pWindowStateChangeEvent = dynamic_cast(pEvent); m_lastWindowState = pWindowStateChangeEvent->oldState(); qInfo() << "------------ m_lastWindowState" << m_lastWindowState << "current " << windowState(); //NOTE: windowStateChanged won't be emitted if by dragging to restore. so we need to //check window state here. if (windowState() & Qt::WindowMinimized) { //fix bug 53683 if (Settings::get().isSet(Settings::PauseOnMinimize)) { if (m_pEngine && m_pEngine->state() == PlayerEngine::Playing) { requestAction(ActionFactory::TogglePause); m_bQuitfullscreenflag = true; } QList listActs = ActionFactory::get().findActionsByKind(ActionFactory::TogglePlaylist); listActs.at(0)->setChecked(false); } } else if (m_lastWindowState & Qt::WindowMinimized /*&& windowState() == Qt::WindowNoState*/) { if (Settings::get().isSet(Settings::PauseOnMinimize)) { if (m_bQuitfullscreenflag) { requestAction(ActionFactory::TogglePause); m_bQuitfullscreenflag = false; } } } onWindowStateChanged(); } if (pEvent->type() == QEvent::WindowDeactivate) { m_pCommHintWid->hide(); } return DMainWindow::event(pEvent); } void Platform_MainWindow::leaveEvent(QEvent *) { m_autoHideTimer.start(AUTOHIDE_TIMEOUT); } void Platform_MainWindow::onWindowStateChanged() { qInfo() << windowState(); if (!m_bMiniMode && !isFullScreen()) { m_pTitlebar->setVisible(m_pToolbox->isVisible()); } else { m_pTitlebar->setVisible(false); } if (CompositingManager::get().platform() != Platform::Mips) m_pProgIndicator->setVisible(isFullScreen() && m_pEngine && m_pEngine->state() != PlayerEngine::Idle); #ifndef USE_DXCB m_pTitlebar->move(0, 0); m_pEngine->move(0, 0); #endif if (!isFullScreen() && !isMaximized()) { if (m_bMovieSwitchedInFsOrMaxed || !m_lastRectInNormalMode.isValid()) { if (m_bMousePressed || m_bMouseMoved) { m_bDelayedResizeByConstraint = true; } else { setMinimumSize({0, 0}); resizeByConstraints(true); } } m_bMovieSwitchedInFsOrMaxed = false; } update(); if (isMinimized()) { if (m_pPlaylist->state() == Platform_PlaylistWidget::Opened) { m_pPlaylist->togglePopup(false); } m_pAnimationlable->hide(); } if (isMaximized()) { m_pAnimationlable->move(QPoint(QApplication::desktop()->availableGeometry().width() / 2 - 100 , QApplication::desktop()->availableGeometry().height() / 2 - 100)); } if (!isFullScreen() && !isMaximized() && !m_bMiniMode) { m_pAnimationlable->move(QPoint((m_lastRectInNormalMode.width() - m_pAnimationlable->width()) / 2, (m_lastRectInNormalMode.height() - m_pAnimationlable->height()) / 2)); } } #ifdef USE_DXCB static QPoint lastm_pEngine_pos; static QPoint last_wm_pos; static bool bClicked = false; void Platform_MainWindow::onMonitorButtonPressed(int nX, int nY) { QPoint pos(nX, nY); int nPoint = 2; QMargins m(nPoint, nPoint, nPoint, nPoint); if (geometry().marginsRemoved(m).contains(pos)) { QWidget *pWidget = qApp->topLevelAt(pos); if (pWidget && pWidget == this) { qInfo() << __func__ << "click inside main window"; last_wm_pos = QPoint(nX, nY); lastm_pEngine_pos = windowHandle()->framePosition(); bClicked = true; } } } void Platform_MainWindow::onMonitorButtonReleased(int nX, int nY) { if (bClicked) { qInfo() << __func__; bClicked = false; } } void Platform_MainWindow::onMonitorMotionNotify(int nX, int nY) { if (bClicked) { QPoint pos = QPoint(nX, nY) - last_wm_pos; windowHandle()->setFramePosition(lastm_pEngine_pos + pos); } } #endif bool Platform_MainWindow::judgeMouseInWindow(QPoint pos) { bool bRet = false; QRect rect = frameGeometry(); QPoint topLeft = rect.topLeft(); QPoint bottomRight = rect.bottomRight(); pos = mapToGlobal(pos); topLeft = mapToGlobal(topLeft); bottomRight = mapToGlobal(bottomRight); if ((pos.x() == topLeft.x()) || (pos.x() == bottomRight.x()) || (pos.y() == topLeft.y()) || (pos.y() == bottomRight.y())) { leaveEvent(nullptr); } return bRet; } #ifdef USE_DXCB void Platform_MainWindow::onApplicationStateChanged(Qt::ApplicationState e) { switch (e) { case Qt::ApplicationActive: if (qApp->focusWindow()) qInfo() << QString("focus window 0x%1").arg(qApp->focusWindow()->winId(), 0, 16); qApp->setActiveWindow(this); _evm->resumeRecording(); resumeToolsWindow(); break; case Qt::ApplicationInactive: _evm->suspendRecording(); suspendToolsWindow(); break; default: break; } } #endif void Platform_MainWindow::animatePlayState() { if (m_bMiniMode || isMinimized()) { return; } if (!m_bInBurstShootMode && m_pEngine->state() == PlayerEngine::CoreState::Paused && !m_bMiniMode && !m_pMircastShowWidget->isVisible()) { if (CompositingManager::get().platform() == Platform::X86) { m_pAnimationlable->resize(100, 100); } else { if (!m_bIsWM) { m_pAnimationlable->resize(100, 100); } else { m_pAnimationlable->resize(200, 200); m_pAnimationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200); } } m_pAnimationlable->pauseAnimation(); } } void Platform_MainWindow::onBindingsChanged() { qInfo() << __func__; { QList listActions = this->actions(); this->actions().clear(); for (auto *pAct : listActions) { delete pAct; } } ShortcutManager &shortcutManager = ShortcutManager::get(); vector vecActions = shortcutManager.actionsForBindings(); for (auto *pAct : vecActions) { this->addAction(pAct); connect(pAct, &QAction::triggered, [ = ]() { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAct); //正在投屏时,某些快捷键设置为不能用 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ){ if(actionKind == ActionFactory::ToggleFullscreen //全屏 alt+enter || actionKind == ActionFactory::QuitFullscreen //退出全屏/迷你模式esc || actionKind == ActionFactory::AccelPlayback //加速播放 ctrl+right || actionKind == ActionFactory::DecelPlayback //减速播放 ctrl+left || actionKind == ActionFactory::ResetPlayback //还原播放 R || actionKind == ActionFactory::ToggleMiniMode //迷你模式 F2 || actionKind == ActionFactory::VolumeUp //增大音量 ctrl+alt+up || actionKind == ActionFactory::VolumeDown //减少音量 ctrl+alt+down || actionKind == ActionFactory::ToggleMute //静音 M || actionKind == ActionFactory::PreviousFrame //上一帧 ctrl+shift+left || actionKind == ActionFactory::NextFrame //下一帧 ctrl+shift+right || actionKind == ActionFactory::Screenshot //影片截图 alt+a || actionKind == ActionFactory::BurstScreenshot //连拍截图 alt+s || actionKind == ActionFactory::SubForward //字幕提前0.5s shift+right || actionKind == ActionFactory::SubDelay //字幕延迟0.5s shift+left || actionKind == ActionFactory::ViewShortcut //显示快捷键 ctrl + shift + ? ){ return; } } this->menuItemInvoked(pAct); }); } } void Platform_MainWindow::updateActionsState() { //投屏时不处理播放状态切换菜单项是否可用,由右键菜单入口统一处理。 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) return; PlayingMovieInfo movieInfo = m_pEngine->playingMovieInfo(); auto update = [ = ](QAction * pAct) { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAct); bool bRet = true; switch (actionKind) { case ActionFactory::ActionKind::Screenshot: case ActionFactory::ActionKind::MatchOnlineSubtitle: case ActionFactory::ActionKind::ToggleMiniMode: case ActionFactory::ActionKind::ToggleFullscreen: case ActionFactory::ActionKind::WindowAbove: bRet = m_pEngine->state() != PlayerEngine::Idle; break; case ActionFactory::ActionKind::BurstScreenshot: bRet = m_pEngine->duration() > 40; break; case ActionFactory::ActionKind::MovieInfo: bRet = m_pEngine->state() != PlayerEngine::Idle; if (bRet) { bRet = bRet && m_pEngine->playlist().count(); if (bRet) { PlayItemInfo playItemInfo = m_pEngine->playlist().currentInfo(); bRet = bRet && playItemInfo.loaded; } } break; case ActionFactory::ActionKind::HideSubtitle: case ActionFactory::ActionKind::SelectSubtitle: bRet = movieInfo.subs.size() > 0; break; default: break; } pAct->setEnabled(bRet); }; ActionFactory::get().updateMainActionsForMovie(movieInfo); ActionFactory::get().forEachInMainMenu(update); //NOTE: mpv does not always send a aid-change signal the first time movie is loaded. //so we need to workaround it. reflectActionToUI(ActionFactory::ActionKind::SelectTrack); reflectActionToUI(ActionFactory::ActionKind::SelectSubtitle); } /*void MainWindow::syncStaysOnTop() { #ifdef USE_DXCB static xcb_atom_t atomStateAbove = Utility::internAtom("_NET_WM_STATE_ABOVE"); auto atoms = Utility::windowNetWMState(static_cast(windowHandle()->winId())); #ifndef __mips__ bool window_is_above = atoms.contains(atomStateAbove); if (window_is_above != m_bWindowAbove) { qInfo() << "syncStaysOnTop: window_is_above" << window_is_above; requestAction(ActionFactory::WindowAbove); } #endif #endif }*/ void Platform_MainWindow::reflectActionToUI(ActionFactory::ActionKind actionKind) { QList listActs; switch (actionKind) { case ActionFactory::ActionKind::WindowAbove: case ActionFactory::ActionKind::ToggleFullscreen: case ActionFactory::ActionKind::TogglePlaylist: case ActionFactory::ActionKind::HideSubtitle: { qInfo() << __func__ << actionKind; listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); while (p != listActs.end()) { bool bOld = (*p)->isEnabled(); (*p)->setEnabled(false); if (actionKind == ActionFactory::TogglePlaylist) { // here what we read is the last state of playlist if (m_pPlaylist->state() != Platform_PlaylistWidget::Opened) { (*p)->setChecked(false); } else { (*p)->setChecked(true); } } else { (*p)->setChecked(!(*p)->isChecked()); } (*p)->setEnabled(bOld); ++p; } break; } //迷你模式下判断是否全屏,恢复菜单状态 by zhuyuliang case ActionFactory::ActionKind::ToggleMiniMode: { listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs[0]; QAction *pAct = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::ToggleFullscreen)[0]; bool bFlag = pAct->isChecked(); if (bFlag) { pAct->setChecked(false); } p->setEnabled(false); p->setChecked(!p->isChecked()); p->setEnabled(true); break; } case ActionFactory::ActionKind::ChangeSubCodepage: { //mpv未初始化时返回默认值auto QString sCodePage; sCodePage = m_pEngine->subCodepage(); qInfo() << "codepage" << sCodePage; listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); while (p != listActs.end()) { auto args = ActionFactory::actionArgs(*p); if (args[0].toString() == sCodePage) { (*p)->setEnabled(false); if (!(*p)->isChecked()) (*p)->setChecked(true); (*p)->setEnabled(true); break; } ++p; } break; } case ActionFactory::ActionKind::SelectTrack: case ActionFactory::ActionKind::SelectSubtitle: { if (m_pEngine->state() == PlayerEngine::Idle) break; PlayingMovieInfo pmf = m_pEngine->playingMovieInfo(); int nId = -1; int nIdx = -1; if (actionKind == ActionFactory::ActionKind::SelectTrack) { nId = m_pEngine->aid(); for (nIdx = 0; nIdx < pmf.audios.size(); nIdx++) { if (nId == pmf.audios[nIdx]["id"].toInt()) { break; } } } else if (actionKind == ActionFactory::ActionKind::SelectSubtitle) { nId = m_pEngine->sid(); for (nIdx = 0; nIdx < pmf.subs.size(); nIdx++) { if (nId == pmf.subs[nIdx]["id"].toInt()) { break; } } } qInfo() << __func__ << actionKind << "idx = " << nIdx; listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); while (p != listActs.end()) { auto args = ActionFactory::actionArgs(*p); (*p)->setEnabled(false); if (args[0].toInt() == nIdx) { if (!(*p)->isChecked())(*p)->setChecked(true); } else { (*p)->setChecked(false); } (*p)->setEnabled(true); ++p; } break; } case ActionFactory::ActionKind::Stereo: case ActionFactory::ActionKind::OneTimes: { listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); (*p)->setChecked(true); break; } case ActionFactory::ActionKind::DefaultFrame: { qInfo() << __func__ << actionKind; listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); bool bOld = (*p)->isEnabled(); (*p)->setEnabled(false); (*p)->setChecked(!(*p)->isChecked()); (*p)->setEnabled(bOld); break; } case ActionFactory::ActionKind::OrderPlay: case ActionFactory::ActionKind::ShufflePlay: case ActionFactory::ActionKind::SinglePlay: case ActionFactory::ActionKind::SingleLoop: case ActionFactory::ActionKind::ListLoop: { qInfo() << __func__ << actionKind; listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); (*p)->setChecked(true); break; } default: break; } } /*NotificationWidget *MainWindow::getm_pCommHintWid() { return m_pCommHintWid; }*/ //排列判断(主要针对光驱) static bool compareBarData(const QUrl &url1, const QUrl &url2) { QString sFileName1 = QFileInfo(url1.path()).fileName(); QString sFileName2 = QFileInfo(url2.path()).fileName(); if (sFileName1.length() > 0 && sFileName2.length() > 0) { if (sFileName1[0] < sFileName2[0]) { return true; } } return false; } bool Platform_MainWindow::addCdromPath() { QStringList strCDMountlist; QFile mountFile("/proc/mounts"); if (mountFile.open(QIODevice::ReadOnly) == false) { return false; } do { QString strLine = mountFile.readLine(); if (strLine.indexOf("/dev/sr") != -1 || strLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。 strCDMountlist.append(strLine.split(" ").at(1)); //A B C 这样的格式,取中间的 } } while (!mountFile.atEnd()); mountFile.close(); if (strCDMountlist.size() == 0) return false; play({strCDMountlist[0]}); return true; } void Platform_MainWindow::loadPlayList() { m_pPlaylist = nullptr; m_pPlaylist = new Platform_PlaylistWidget(this, m_pEngine); m_pPlaylist->hide(); m_pToolbox->setPlaylist(m_pPlaylist); m_pEngine->getplaylist()->loadPlaylist(); m_pToolbox->initThumbThread(); play(m_listOpenFiles); } void Platform_MainWindow::setOpenFiles(QStringList &list) { m_listOpenFiles = list; } QString Platform_MainWindow::padLoadPath() { QString sLoadPath = Settings::get().generalOption("pad_load_path").toString(); QDir lastDir(sLoadPath); if (sLoadPath.isEmpty() || !lastDir.exists()) { sLoadPath = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); QDir newLastDir(sLoadPath); if (!newLastDir.exists()) { sLoadPath = QDir::currentPath(); } } return sLoadPath; } #ifdef USE_TEST void Platform_MainWindow::testCdrom() { this->addCdromPath(); diskRemoved("sd3/uos"); sleepStateChanged(true); sleepStateChanged(false); subtitleMatchVideo("/data/home/uos/Videos/subtitle/Hachiko.A.Dog's.Story.ass"); } void Platform_MainWindow::setCurrentHwdec(QString str) { m_sCurrentHwdec = str; } #endif void Platform_MainWindow::mipsShowFullScreen() { ensurePolished(); // 保留 WindowMinimized 旧状态标识 setWindowState(windowState() | Qt::WindowFullScreen); setVisible(true); } void Platform_MainWindow::menuItemInvoked(QAction *pAction) { ActionFactory::ActionKind actionKind = ActionFactory::actionKind(pAction); if (actionKind == dmr::ActionFactory::Invalid || !m_pEngine || !m_pPlaylist) { //如果未初始化触发快捷键会导致崩溃 return; } bool bIsShortcut = ActionFactory::isActionFromShortcut(pAction); if (ActionFactory::actionHasArgs(pAction)) { requestAction(actionKind, !bIsShortcut, ActionFactory::actionArgs(pAction), bIsShortcut); } else { QVariant var = pAction->property("kind"); if (var == ActionFactory::ActionKind::Settings) { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } else { if (m_pPlaylist->state() == Platform_PlaylistWidget::State::Opened) { BindingMap bdMap = ShortcutManager::get().map(); QHash::const_iterator iter = bdMap.constBegin(); bool bIsiter = false; while (iter != bdMap.constEnd()) { if (iter.value() == actionKind) { bIsiter = true; if ((iter.key() == QKeySequence("Return") || iter.key() == QKeySequence("Enter") || iter.key() == QKeySequence("Up") || iter.key() == QKeySequence("Down")) && bIsShortcut) { if (iter.key() == QKeySequence("Up") || iter.key() == QKeySequence("Down")) { int key; if (iter.key() == QKeySequence("Up")) { key = Qt::Key_Up; } else { key = Qt::Key_Down; } m_pPlaylist->updateSelectItem(key); } break; } requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); break; } ++iter; } if (bIsiter == false) { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } } else { requestAction(actionKind, !bIsShortcut, {0}, bIsShortcut); } } } //菜单操作完成后,标题栏获取焦点 m_pTitlebar->setFocus(); } bool Platform_MainWindow::isActionAllowed(ActionFactory::ActionKind actionKind, bool fromUI, bool isShortcut) { if (m_bInBurstShootMode) { return false; } if (m_bMiniMode) { if (fromUI || isShortcut) { switch (actionKind) { case ActionFactory::ToggleFullscreen: case ActionFactory::TogglePlaylist: case ActionFactory::BurstScreenshot: return false; case ActionFactory::ToggleMiniMode: return true; default: break; } } } if (isMaximized()) { switch (actionKind) { case ActionFactory::ToggleMiniMode: return true; default: break; } } if (isShortcut) { PlayingMovieInfo pmf = m_pEngine->playingMovieInfo(); bool bRet = true;//cppcheck 误报 switch (actionKind) { case ActionFactory::Screenshot: case ActionFactory::ToggleMiniMode: case ActionFactory::MatchOnlineSubtitle: case ActionFactory::BurstScreenshot: bRet = m_pEngine->state() != PlayerEngine::Idle; break; case ActionFactory::MovieInfo: bRet = m_pEngine->state() != PlayerEngine::Idle; if (bRet) { bRet = bRet && m_pEngine->playlist().count(); if (bRet) { auto pif = m_pEngine->playlist().currentInfo(); bRet = bRet && pif.loaded; } } break; case ActionFactory::HideSubtitle: case ActionFactory::SelectSubtitle: bRet = pmf.subs.size() > 0; break; default: break; } if (!bRet) return bRet; } return true; } void Platform_MainWindow::requestAction(ActionFactory::ActionKind actionKind, bool bFromUI, QList args, bool bIsShortcut) { qInfo() << "actionKind = " << actionKind << "fromUI " << bFromUI << (bIsShortcut ? "shortcut" : ""); if (!m_pToolbox->getbAnimationFinash() || m_bStartAnimation) { return; } if (!isActionAllowed(actionKind, bFromUI, bIsShortcut)) { qInfo() << actionKind << "disallowed"; return; } switch (actionKind) { case ActionFactory::ActionKind::Exit: qApp->quit(); break; case ActionFactory::ActionKind::OpenCdrom: { QString sDev = dmr::CommandLineManager::get().dvdDevice(); if (sDev.isEmpty()) { sDev = probeCdromDevice(); } if (sDev.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Cannot play the disc")); break; } if (addCdromPath() == false) { play({QString("dvd:///%1").arg(sDev)}); } break; } case ActionFactory::ActionKind::OpenUrl: { UrlDialog dlg(this); if (dlg.exec() == QDialog::Accepted) { QUrl url = dlg.url(); if (url.isValid()) { play({url.toString()}); } else { m_pCommHintWid->updateWithMessage(tr("Parse failed")); } } break; } case ActionFactory::ActionKind::OpenDirectory: { #ifndef USE_TEST QString name = DFileDialog::getExistingDirectory(this, tr("Open folder"), lastOpenedPath(), DFileDialog::DontResolveSymlinks); #else QString name("/data/source/deepin-movie-reborn/movie"); #endif QFileInfo fi(name); if (fi.isDir() && fi.exists()) { Settings::get().setGeneralOption("last_open_path", fi.path()); play({name}); } break; } case ActionFactory::ActionKind::OpenFileList: { if (QDateTime::currentMSecsSinceEpoch() - m_pToolbox->getMouseTime() < 500) { return; } if (m_pEngine->getplaylist()->items().isEmpty() && m_pEngine->getplaylist()->getThumanbilRunning()) { return; } //允许影院打开音乐文件进行播放 #ifndef USE_TEST DFileDialog fileDialog; QStringList filenames; fileDialog.setParent(this); fileDialog.setNameFilters({tr("All (*)"), QString("Video (%1)").arg(m_pEngine->video_filetypes.join(" ")), QString("Audio (%1)").arg(m_pEngine->audio_filetypes.join(" "))}); fileDialog.selectNameFilter(QString("Video (%1)").arg(m_pEngine->video_filetypes.join(" "))); fileDialog.setDirectory(lastOpenedPath()); fileDialog.setFileMode(QFileDialog::ExistingFiles); if (fileDialog.exec() == QDialog::Accepted) { filenames = fileDialog.selectedFiles(); } else { break; } #else QStringList filenames; filenames << QString("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QString("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); #endif if (filenames.size()) { QFileInfo fileInfo(filenames[0]); if (fileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", fileInfo.path()); } play(filenames); } break; } case ActionFactory::ActionKind::OpenFile: { DFileDialog fileDialog(this); QStringList filename; fileDialog.setNameFilters({tr("All (*)"), QString("Video (%1)").arg(m_pEngine->video_filetypes.join(" ")), QString("Audio (%1)").arg(m_pEngine->audio_filetypes.join(" "))}); fileDialog.selectNameFilter(QString("Video (%1)").arg(m_pEngine->video_filetypes.join(" "))); fileDialog.setDirectory(lastOpenedPath()); fileDialog.setFileMode(QFileDialog::ExistingFiles); if (fileDialog.exec() == QDialog::Accepted) { filename = fileDialog.selectedFiles(); } else { break; } QFileInfo fileInfo(filename[0]); if (fileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", fileInfo.path()); play({filename[0]}); } break; } case ActionFactory::ActionKind::StartPlay: { if (m_pEngine->playlist().count() == 0) { requestAction(ActionFactory::ActionKind::OpenFileList); } else { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { //先显示分辨率,再显示静音 QSize sz = geometry().size(); auto msg = QString("%1x%2").arg(sz.width()).arg(sz.height()); QTimer::singleShot(500, [ = ]() { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_pCommHintWid->updateWithMessage(msg); } }); QVariant panscan = m_pEngine->getBackendProperty("panscan"); if (panscan.isNull() && Settings::get().isSet(Settings::ResumeFromLast)) { int restore_pos = Settings::get().internalOption("playlist_pos").toInt(); //Playback when the playlist is not loaded, this will result in the //last exit item without playing, because the playlist has not been //loaded into that file, so adding a thread waiting here. //TODO(xxxxp):It will cause direct opening of the cartoon? May need to optimize Model View while (m_pEngine->getplaylist()->getThumanbilRunning()) { QCoreApplication::processEvents(); } qInfo() << "playlist_pos: " << restore_pos << " current: " << m_pEngine->playlist().current(); if(m_pEngine->playlist().current() == -1) { //第一次直接启动影院(不是双击视频启动的影院),点击播放按钮时启动上次退出影院时播放的视频 restore_pos = qMax(qMin(restore_pos, m_pEngine->playlist().count() - 1), 0); requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, {restore_pos}); } } else { m_pEngine->play(); } } } break; } case ActionFactory::ActionKind::EmptyPlaylist: { //play list context menu empty playlist m_pEngine->clearPlaylist(); break; } case ActionFactory::ActionKind::TogglePlaylist: { if (m_bStartMini || m_bMiniMode) { return; } //快捷键操作不置回焦点 if (bIsShortcut) { m_pToolbox->clearPlayListFocus(); } /* The focus of the clear list button when the playlist is raised is also handled here. * Cancel the focus of the shortcut key when it is raised to avoid this problem */ m_bStartAnimation = true; QTimer::singleShot(150, [ = ]() { //延时是为了解决在窗口变化同时操作时,因窗口size未确定导致显示异常 m_bStartAnimation = false; if (bIsShortcut && toolbox()->getListBtnFocus()) { setFocus(); } if (m_pPlaylist && m_pPlaylist->state() == Platform_PlaylistWidget::Closed && !m_pToolbox->isVisible()) { m_pToolbox->show(); } m_pPlaylist->togglePopup(bIsShortcut); if (!bFromUI) { reflectActionToUI(actionKind); } this->resumeToolsWindow(); }); break; } case ActionFactory::ActionKind::ToggleMiniMode: { //Когда вы быстро переключаете мини-режим, переключение полноэкранной //задержки не до тех пор, пока есть случай, когда размер окна ненормальный. // //Обратите внимание, что это приведет к переключению на мини-режим, //быстро нажмите кнопку Mini Mode, не снимая мини-режима //Когда возникает эта проблема, вы можете попытаться сократить //время задержки (пожалуйста, синхронизируйте мини-режим и полную задержку операции экрана) //Но будьте осторожны, эта операция может вызвать другие проблемы. //Поддерживается xxxxp. if (QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 600 || m_bMouseMoved) { return; } m_pAnimationlable->hide(); int nDelayTime = 0; if (m_pPlaylist->state() == Platform_PlaylistWidget::Opened) { requestAction(ActionFactory::TogglePlaylist); nDelayTime = 500; } m_bStartMini = true; QTimer::singleShot(nDelayTime, this, [ = ] { if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } if (!bFromUI) { reflectActionToUI(actionKind); } toggleUIMode(); }); //Prevent abnormal focus position due to window state changes setFocus(); break; } case ActionFactory::ActionKind::MovieInfo: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { //fix 107355 //Add a mouse display to prevent the target is hidden qApp->setOverrideCursor(Qt::ArrowCursor); MovieInfoDialog mid(m_pEngine->playlist().currentInfo(), this); mid.exec(); } break; } case ActionFactory::ActionKind::WindowAbove: { m_bWindowAbove = !m_bWindowAbove; my_setStayOnTop(this, m_bWindowAbove); show(); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::QuitFullscreen: { if (QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 600) { return; } if (!m_pToolbox->getVolSliderIsHided()) { m_pToolbox->setVolSliderHide(); // esc降下音量条 break; } if (m_bMiniMode) { if (!bFromUI) { reflectActionToUI(ActionFactory::ToggleMiniMode); } toggleUIMode(); } else if (isFullScreen()) { requestAction(ActionFactory::ToggleFullscreen); if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } } else { //当焦点在播放列表上按下Esc键,播放列表收起,焦点回到列表按钮上 if (m_pPlaylist->state() == Platform_PlaylistWidget::Opened) { m_pToolbox->playlistClosedByEsc(); } } break; } case ActionFactory::ActionKind::ToggleFullscreen: { if (QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 600) { return; } else { m_nFullscreenTime = QDateTime::currentMSecsSinceEpoch(); } //音量条控件打开时全屏位置异常,全屏时关掉音量条 m_pAnimationlable->hide(); m_pToolbox->closeAnyPopup(); if (isFullScreen()) { // 和 mainwindow.cpp 保持一致,在 mipsShowFullScreen() 时保留 Qt::WindowMaximized 的状态以正常切换。 setWindowState(windowState() & ~Qt::WindowFullScreen); if (m_bMaximized) { showMaximized(); } else { if (m_lastRectInNormalMode.isValid() && !m_bMiniMode && !isMaximized()) { setGeometry(m_lastRectInNormalMode); move(m_lastRectInNormalMode.x(), m_lastRectInNormalMode.y()); resize(m_lastRectInNormalMode.width(), m_lastRectInNormalMode.height()); } } if (m_pFullScreenTimeLable && !isFullScreen()) { m_pFullScreenTimeLable->close(); } } else { //可能存在更好的方法(全屏后更新toolbox状态),后期修改 if (!m_pToolbox->getbAnimationFinash()) return; m_bMaximized = isMaximized(); // 记录全屏前是否是最大化窗口 mipsShowFullScreen(); if (m_pProgIndicator && isFullScreen()) { QRect screenGeo = windowHandle()->screen()->geometry(); m_pProgIndicator->move(screenGeo.width() + screenGeo.x() - m_pProgIndicator->width() - 18, 8 + screenGeo.y()); if (CompositingManager::get().platform() != Platform::Mips) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); pixelsWidth = qMax(117, pixelsWidth); m_pFullScreenTimeLable->setGeometry(screenGeo.width() + screenGeo.x() - pixelsWidth - 60, 40 + screenGeo.y(), pixelsWidth + 60, 36); m_pFullScreenTimeLable->show(); } } } } if (!bFromUI) { reflectActionToUI(actionKind); } if (isFullScreen()) { m_pAnimationlable->move(QPoint(QApplication::desktop()->availableGeometry().width() / 2 - m_pAnimationlable->width() / 2 , QApplication::desktop()->availableGeometry().height() / 2 - m_pAnimationlable->height() / 2)); } else { m_pAnimationlable->move(QPoint((width() - m_pAnimationlable->width()) / 2, (height() - m_pAnimationlable->height()) / 2)); } QTimer::singleShot(200, [ = ]() { activateWindow(); //Set focus back to main window after full screen, Prevent focus from going to the toolbar setFocus(); }); break; } case ActionFactory::ActionKind::PlaylistRemoveItem: { m_pPlaylist->removeClickedItem(bIsShortcut); break; } case ActionFactory::ActionKind::PlaylistOpenItemInFM: { m_pPlaylist->openItemInFM(); break; } case ActionFactory::ActionKind::PlaylistItemInfo: { m_pPlaylist->showItemInfo(); break; } case ActionFactory::ActionKind::ClockwiseFrame: { auto old = m_pEngine->videoRotation(); m_pEngine->setVideoRotation((old + 90) % 360); break; } case ActionFactory::ActionKind::CounterclockwiseFrame: { auto old = m_pEngine->videoRotation(); m_pEngine->setVideoRotation(((old - 90) + 360) % 360); break; } case ActionFactory::ActionKind::OrderPlay: { Settings::get().setInternalOption("playmode", 0); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::OrderPlay); break; } case ActionFactory::ActionKind::ShufflePlay: { Settings::get().setInternalOption("playmode", 1); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::ShufflePlay); break; } case ActionFactory::ActionKind::SinglePlay: { Settings::get().setInternalOption("playmode", 2); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::SinglePlay); break; } case ActionFactory::ActionKind::SingleLoop: { Settings::get().setInternalOption("playmode", 3); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::SingleLoop); break; } case ActionFactory::ActionKind::ListLoop: { Settings::get().setInternalOption("playmode", 4); m_pEngine->playlist().setPlayMode(PlaylistModel::PlayMode::ListLoop); break; } case ActionFactory::ActionKind::ZeroPointFiveTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 0.5; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OneTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OnePointTwoTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.2; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::OnePointFiveTimes: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.5; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::Double: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 2.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::Stereo: { m_pEngine->changeSoundMode(Backend::SoundMode::Stereo); m_pCommHintWid->updateWithMessage(tr("Stereo")); break; } case ActionFactory::ActionKind::LeftChannel: { m_pEngine->changeSoundMode(Backend::SoundMode::Left); m_pCommHintWid->updateWithMessage(tr("Left channel")); break; } case ActionFactory::ActionKind::RightChannel: { m_pEngine->changeSoundMode(Backend::SoundMode::Right); m_pCommHintWid->updateWithMessage(tr("Right channel")); break; } case ActionFactory::ActionKind::DefaultFrame: { m_pEngine->setVideoAspect(-1.0); break; } case ActionFactory::ActionKind::Ratio4x3Frame: { m_pEngine->setVideoAspect(4.0 / 3.0); break; } case ActionFactory::ActionKind::Ratio16x9Frame: { m_pEngine->setVideoAspect(16.0 / 9.0); break; } case ActionFactory::ActionKind::Ratio16x10Frame: { m_pEngine->setVideoAspect(16.0 / 10.0); break; } case ActionFactory::ActionKind::Ratio185x1Frame: { m_pEngine->setVideoAspect(1.85); break; } case ActionFactory::ActionKind::Ratio235x1Frame: { m_pEngine->setVideoAspect(2.35); break; } case ActionFactory::ActionKind::ToggleMute: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { m_pToolbox->changeMuteState(); } break; } case ActionFactory::ActionKind::VolumeUp: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { //使用鼠标滚轮调节音量时会执行此步骤 if (m_iAngleDelta != 0) m_pToolbox->calculationStep(m_iAngleDelta); m_pToolbox->volumeUp(); m_iAngleDelta = 0; } break; } case ActionFactory::ActionKind::VolumeDown: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat() && !m_pEngine->currFileIsAudio()) { slotUnsupported(); } else { //使用鼠标滚轮调节音量时会执行此步骤 if (m_iAngleDelta != 0) m_pToolbox->calculationStep(m_iAngleDelta); m_pToolbox->volumeDown(); m_iAngleDelta = 0; } break; } case ActionFactory::ActionKind::GotoPlaylistSelected: { m_pEngine->playSelected(args[0].toInt()); break; } case ActionFactory::ActionKind::GotoPlaylistNext: { //防止焦点在上/下一曲按钮上切换时焦点跳到下一个按钮上 //下同 setFocus(); if (m_bIsFree == false) return ; m_bIsFree = false; if (isFullScreen() || isMaximized()) { m_bMovieSwitchedInFsOrMaxed = true; } m_pEngine->next(); break; } case ActionFactory::ActionKind::GotoPlaylistPrev: { setFocus(); if (m_bIsFree == false) return ; m_bIsFree = false; if (isFullScreen() || isMaximized()) { m_bMovieSwitchedInFsOrMaxed = true; } m_pEngine->prev(); break; } case ActionFactory::ActionKind::SelectTrack: { Q_ASSERT(args.size() == 1); m_pEngine->selectTrack(args[0].toInt()); m_pCommHintWid->updateWithMessage(tr("Track: %1").arg(args[0].toInt() + 1)); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::MatchOnlineSubtitle: { m_pEngine->loadOnlineSubtitle(m_pEngine->playlist().currentInfo().url); break; } case ActionFactory::ActionKind::SelectSubtitle: { Q_ASSERT(args.size() == 1); m_pEngine->selectSubtitle(args[0].toInt()); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::ChangeSubCodepage: { Q_ASSERT(args.size() == 1); m_pEngine->setSubCodepage(args[0].toString()); if (!bFromUI) { reflectActionToUI(actionKind); } break; } case ActionFactory::ActionKind::HideSubtitle: { m_pEngine->toggleSubtitle(); break; } case ActionFactory::ActionKind::SubDelay: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); break; } if (m_pEngine->playingMovieInfo().subs.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Unable to adjust the subtitle")); break; } m_pEngine->setSubDelay(0.5); double dDelay = m_pEngine->subDelay(); m_pCommHintWid->updateWithMessage(tr("Subtitle %1: %2s") .arg(dDelay > 0.0 ? tr("delayed") : tr("advanced")).arg(dDelay > 0.0 ? dDelay : -dDelay)); break; } case ActionFactory::ActionKind::SubForward: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); break; } if (m_pEngine->playingMovieInfo().subs.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Unable to adjust the subtitle")); break; } m_pEngine->setSubDelay(-0.5); double dDelay = m_pEngine->subDelay(); m_pCommHintWid->updateWithMessage(tr("Subtitle %1: %2s") .arg(dDelay > 0.0 ? tr("delayed") : tr("advanced")).arg(dDelay > 0.0 ? dDelay : -dDelay)); break; } case ActionFactory::ActionKind::AccelPlayback: { adjustPlaybackSpeed(ActionFactory::ActionKind::AccelPlayback); break; } case ActionFactory::ActionKind::DecelPlayback: { adjustPlaybackSpeed(ActionFactory::ActionKind::DecelPlayback); break; } case ActionFactory::ActionKind::ResetPlayback: { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_dPlaySpeed = 1.0; m_pEngine->setPlaySpeed(m_dPlaySpeed); setPlaySpeedMenuChecked(ActionFactory::ActionKind::OneTimes); m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } break; } case ActionFactory::ActionKind::LoadSubtitle: { QStringList filename; #ifndef USE_TEST DFileDialog fileDialog(this); fileDialog.setNameFilter(tr("Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)","All (*)")); fileDialog.setDirectory(lastOpenedPath()); if (fileDialog.exec() == QDialog::Accepted) { filename = fileDialog.selectedFiles(); } else { break; } #else filename = QStringList({"/data/source/deepin-movie-reborn/Hachiko.A.Dog's.Story.ass"}); #endif if (QFileInfo(filename[0]).exists()) { if (m_pEngine->state() == PlayerEngine::Idle) subtitleMatchVideo(filename[0]); else { auto success = m_pEngine->loadSubtitle(QFileInfo(filename[0])); m_pCommHintWid->updateWithMessage(success ? tr("Load successfully") : tr("Load failed")); } } else { m_pCommHintWid->updateWithMessage(tr("Load failed")); } break; } case ActionFactory::ActionKind::TogglePause: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->slotPauseDlnaTp(); break; } if (windowState() == Qt::WindowFullScreen && QDateTime::currentMSecsSinceEpoch() - m_nFullscreenTime < 500) { return; } else if(windowState() == Qt::WindowFullScreen) { m_nFullscreenTime = QDateTime::currentMSecsSinceEpoch(); } if (m_pEngine->state() == PlayerEngine::Idle && bIsShortcut) { if (m_pEngine->getplaylist()->getthreadstate()) { qInfo() << "playlist loadthread is running"; break; } requestAction(ActionFactory::StartPlay); } else { if (m_pEngine->state() == PlayerEngine::Paused) { //startPlayStateAnimation(true); if (!m_bMiniMode) { if (CompositingManager::get().platform() == Platform::X86) { m_pAnimationlable->resize(100, 100); } else { if (!m_bIsWM) { m_pAnimationlable->resize(100, 100); } else { m_pAnimationlable->resize(200, 200); m_pAnimationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200); } } m_pAnimationlable->playAnimation(); } QTimer::singleShot(160, [ = ]() { m_pEngine->pauseResume(); }); } else { m_pEngine->pauseResume(); } } break; } case ActionFactory::ActionKind::SeekBackward: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->seekMircast(-5); break; } if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { m_pEngine->seekBackward(5); } break; } case ActionFactory::ActionKind::SeekForward: { if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible() ) { m_pToolbox->getMircast()->seekMircast(5); break; } if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { m_pEngine->seekForward(5); } break; } case ActionFactory::ActionKind::SeekAbsolute: { Q_ASSERT(args.size() == 1); m_pEngine->seekAbsolute(args[0].toInt()); break; } case ActionFactory::ActionKind::Settings: { handleSettings(initSettings()); break; } case ActionFactory::ActionKind::Screenshot: { QImage img = m_pEngine->takeScreenshot(); QString filePath = Settings::get().screenshotNameTemplate(); bool bSuccess = false; //条件编译产生误报(cppcheck) if (img.isNull()) qInfo() << __func__ << "pixmap is null"; else bSuccess = img.save(filePath); #ifdef USE_SYSTEM_NOTIFY // Popup notify. QDBusInterface notification("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", QDBusConnection::sessionBus()); QStringList actions; actions << "_open" << tr("View"); QVariantMap hints; hints["x-deepin-action-_open"] = QString("xdg-open,%1").arg(filePath); QList arg; arg << (QCoreApplication::applicationName()) // appname << ((unsigned int) 0) // id << QString("deepin-movie") // icon << tr("Film screenshot") // summary << QString("%1 %2").arg(tr("Saved to")).arg(filePath) // body << actions // actions << hints // hints << (int) -1; // timeout notification.callWithArgumentList(QDBus::AutoDetect, "Notify", arg); #else #define POPUP_ADAPTER(icon, text) do { \ m_pPopupWid->setIcon(icon);\ DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\ QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\ QFontMetrics fm(font);\ auto w = fm.boundingRect(text).width();\ m_pPopupWid->setMessage(text);\ m_pPopupWid->resize(w + 70, 52);\ m_pPopupWid->move((width() - m_pPopupWid->width()) / 2, height() - 127);\ m_pPopupWid->show();\ } while (0) if (bSuccess) { const QIcon icon = QIcon(":/resources/icons/short_ok.svg"); QString sText = QString(tr("The screenshot is saved")); popupAdapter(icon, sText); } else { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Failed to save the screenshot")); popupAdapter(icon, sText); } #undef POPUP_ADAPTER #endif break; } case ActionFactory::ActionKind::GoToScreenshotSolder: { QString filePath = Settings::get().screenshotLocation(); qInfo() << __func__ << filePath; QProcess *pProcess = new QProcess(); QObject::connect(pProcess, SIGNAL(finished(int)), pProcess, SLOT(deleteLater())); pProcess->start("dde-file-manager", QStringList(filePath)); pProcess->waitForStarted(3000); break; } case ActionFactory::ActionKind::BurstScreenshot: { if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { slotUnsupported(); } else { startBurstShooting(); } break; } case ActionFactory::ActionKind::ViewShortcut: { QRect rect = window()->geometry(); QPoint pos(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2); QStringList shortcutString; QString param1 = "-j=" + ShortcutManager::get().toJson(); param1.replace("Return", "Enter"); param1.replace("PgDown", "PageDown"); param1.replace("PgUp", "PageUp"); QString param2 = "-p=" + QString::number(pos.x()) + "," + QString::number(pos.y()); shortcutString << param1 << param2; if (!m_pShortcutViewProcess) { m_pShortcutViewProcess = new QProcess(); } m_pShortcutViewProcess->startDetached("deepin-shortcut-viewer", shortcutString); connect(m_pShortcutViewProcess, SIGNAL(finished(int)), m_pShortcutViewProcess, SLOT(deleteLater())); break; } case ActionFactory::ActionKind::NextFrame: { m_pEngine->nextFrame(); break; } case ActionFactory::ActionKind::PreviousFrame: { m_pEngine->previousFrame(); break; } default: break; } } void Platform_MainWindow::onBurstScreenshot(const QImage &frame, qint64 timestamp) { #define POPUP_ADAPTER(icon, text) do { \ m_pPopupWid->setIcon(icon);\ DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\ QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\ QFontMetrics fm(font);\ auto w = fm.boundingRect(text).width();\ m_pPopupWid->setMessage(text);\ m_pPopupWid->resize(w + 70, 52);\ m_pPopupWid->move((width() - m_pPopupWid->width()) / 2, height() - 127);\ m_pPopupWid->show();\ } while (0) qInfo() << m_listBurstShoots.size(); if (!frame.isNull()) { QString sMsg = QString(tr("Taking the screenshots, please wait...")); m_pCommHintWid->updateWithMessage(sMsg); m_listBurstShoots.append(qMakePair(frame, timestamp)); } if (m_listBurstShoots.size() >= 15 || frame.isNull()) { disconnect(m_pEngine, &PlayerEngine::notifyScreenshot, this, &Platform_MainWindow::onBurstScreenshot); m_pEngine->stopBurstScreenshot(); m_bInBurstShootMode = false; m_pToolbox->setEnabled(true); m_pTitlebar->titlebar()->setEnabled(true); if (m_pEventListener) m_pEventListener->setEnabled(!m_bMiniMode); if (frame.isNull()) { m_listBurstShoots.clear(); if (!m_bPausedBeforeBurst) m_pEngine->pauseResume(); return; } int nRet = -1; BurstScreenshotsDialog burstScreenshotsDialog(m_pEngine->playlist().currentInfo()); burstScreenshotsDialog.updateWithFrames(m_listBurstShoots); #ifdef USE_TEST burstScreenshotsDialog.show(); #else nRet = burstScreenshotsDialog.exec(); #endif qInfo() << "BurstScreenshot done"; m_listBurstShoots.clear(); if (!m_bPausedBeforeBurst) m_pEngine->pauseResume(); if (nRet == QDialog::Accepted) { QString sPosterPath = burstScreenshotsDialog.savedPosterPath(); if (QFileInfo::exists(sPosterPath)) { const QIcon icon = QIcon(":/resources/icons/short_ok.svg"); QString sText = QString(tr("The screenshot is saved")); popupAdapter(icon, sText); } else { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Failed to save the screenshot")); popupAdapter(icon, sText); } } } } void Platform_MainWindow::startBurstShooting() { //Repair 40S video corresponding to the corresponding connected screenshot if (m_pEngine->duration() <= 40) return; m_bInBurstShootMode = true; m_pToolbox->setEnabled(false); m_pTitlebar->titlebar()->setEnabled(false); if (m_pEventListener) m_pEventListener->setEnabled(false); m_bPausedBeforeBurst = m_pEngine->paused(); connect(m_pEngine, &PlayerEngine::notifyScreenshot, this, &Platform_MainWindow::onBurstScreenshot); m_pEngine->burstScreenshot(); } void Platform_MainWindow::handleSettings(DSettingsDialog *dsd) { int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); int decodeMode = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); int voMode = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); int effectMode = Settings::get().settings()->getOption("base.decode.Effect").toInt(); #ifndef USE_TEST dsd->exec(); #else dsd->setObjectName("DSettingsDialog"); dsd ->show(); #endif if (Settings::get().settings()->getOption("base.decode.select").toInt() != decodeType && (Settings::get().settings()->getOption("base.decode.select").toInt() == 3 || decodeType == 3)) { DDialog msgBox; msgBox.setIcon(QIcon(":/resources/icons/warning.svg")); msgBox.setMessage(QObject::tr("The custom decoding method needs to be restarted before it can take effect,\nand whether to restart it?")); msgBox.addButton(tr("Cancel"), DDialog::ButtonType::ButtonNormal); msgBox.addButton(tr("Restart"), true, DDialog::ButtonType::ButtonWarning); msgBox.setOnButtonClickedClose(true); if (msgBox.exec() == 1) { Settings::get().settings()->setOption("set.start.crash", "2"); qApp->exit(); QProcess::startDetached(qApp->applicationFilePath(), QStringList() << "--restart"); } else { if (decodeType != 3) { Settings::get().settings()->setOption("base.decode.select", decodeType); } Settings::get().settings()->setOption("base.decode.Effect", effectMode); Settings::get().settings()->setOption("base.decode.Decodemode", decodeMode); Settings::get().settings()->setOption("base.decode.Videoout", voMode); } } else { if (decodeType == 3) { int newDecodeMode = Settings::get().settings()->getOption(QString("base.decode.Decodemode")).toInt(); int newVoMode = Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt(); int newEffectMode = Settings::get().settings()->getOption("base.decode.Effect").toInt(); if (newEffectMode != effectMode || newVoMode != voMode || newDecodeMode != decodeMode) { Settings::get().crashCheck(); DDialog msgBox; msgBox.setIcon(QIcon(":/resources/icons/warning.svg")); msgBox.setMessage(QObject::tr("The custom decoding method needs to be restarted before it can take effect,\nand whether to restart it?")); msgBox.addButton(tr("Cancel"), DDialog::ButtonType::ButtonNormal); msgBox.addButton(tr("Restart"), true, DDialog::ButtonType::ButtonWarning); msgBox.setOnButtonClickedClose(true); if (msgBox.exec() == 1) { Settings::get().settings()->setOption("set.start.crash", "2"); qApp->exit(); QProcess::startDetached(qApp->applicationFilePath(), QStringList() << "--restart"); } else { if (decodeType != 3) { Settings::get().settings()->setOption("base.decode.select", decodeMode); } Settings::get().settings()->setOption("base.decode.Effect", effectMode); Settings::get().settings()->setOption("base.decode.Decodemode", decodeMode); Settings::get().settings()->setOption("base.decode.Videoout", voMode); } } } } Settings::get().settings()->sync(); } DSettingsDialog *Platform_MainWindow::initSettings() { if (m_pDSettingDilog) return m_pDSettingDilog; m_pDSettingDilog = new DSettingsDialog(this); m_pDSettingDilog->widgetFactory()->registerWidget("selectableEdit", createSelectableLineEditOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("effectCombobox", createEffectOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("videoOutCombobox", createVoOptionHandle); m_pDSettingDilog->widgetFactory()->registerWidget("decoderCombobox", createDecodeOptionHandle); m_pDSettingDilog->setProperty("_d_QSSThemename", "dark"); m_pDSettingDilog->setProperty("_d_QSSFilename", "DSettingsDialog"); m_pDSettingDilog->updateSettings(Settings::get().settings()); //hack: QSpinBox *pSpinBox = m_pDSettingDilog->findChild("OptionDSpinBox"); if (pSpinBox) { pSpinBox->setMinimum(8); } // hack: reset is set to default by QDialog, which makes lineedit's enter // press is responded by reset button QPushButton *pPushButton = m_pDSettingDilog->findChild("SettingsContentReset"); pPushButton->setDefault(false); pPushButton->setAutoDefault(false); int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); if (decodeType != 3) { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(effectFrame->parent())->hide(); dynamic_cast(videoFrame->parent())->hide(); dynamic_cast(decodeFrame->parent())->hide(); } else { int effectIndex = Settings::get().settings()->getOption(QString("base.decode.Effect")).toInt(); if (effectIndex == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else if (effectIndex == 1) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); if (Settings::get().settings()->getOption("base.decode.Videoout").toInt() == 0 && Settings::get().settings()->getOption("base.decode.Effect").toInt() == 2) { dynamic_cast(decodeFrame->parent())->hide(); } else dynamic_cast(decodeFrame->parent())->show(); } } connect(&Settings::get(), &Settings::setDecodeModel, this, [=](QString key, QVariant value){ if (key == "base.decode.select") { int decodeType = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); if (decodeType != 3) { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(effectFrame->parent())->hide(); dynamic_cast(videoFrame->parent())->hide(); dynamic_cast(decodeFrame->parent())->hide(); } else { QWidget *effectFrame = m_pDSettingDilog->findChild("effectOptionFrame"); dynamic_cast(effectFrame->parent())->show(); int effectIndex = Settings::get().settings()->getOption(QString("base.decode.Effect")).toInt(); if (effectIndex == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); if (Settings::get().settings()->getOption("base.decode.Videoout").toInt() == 0 && Settings::get().settings()->getOption("base.decode.Effect").toInt() == 2) dynamic_cast(decodeFrame->parent())->hide(); else dynamic_cast(decodeFrame->parent())->show(); } } } }, Qt::DirectConnection); connect(&Settings::get(), &Settings::baseChanged, this, [=](QString key, QVariant value) { int visable = value.toInt(); if (key == "base.decode.Effect") { if (visable == 0) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->hide(); QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } else { if (Settings::get().settings()->getOption(QString("base.decode.select")).toInt() == 3) { QWidget *videoFrame = m_pDSettingDilog->findChild("videoOutOptionFrame"); dynamic_cast(videoFrame->parent())->show(); if (Settings::get().settings()->getOption(QString("base.decode.Videoout")).toInt() != 0 || visable == 1) { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } } } } else if (key == "base.decode.Videoout") { int eff = Settings::get().settings()->getOption("base.decode.Effect").toInt(); if (visable || eff == 1) { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->show(); } else { QWidget *decodeFrame = m_pDSettingDilog->findChild("decodeOptionFrame"); dynamic_cast(decodeFrame->parent())->hide(); } } }, Qt::DirectConnection); return m_pDSettingDilog; } void Platform_MainWindow::play(const QList &listFiles) { QList lstValid; QList lstDir; QList lstFile; if (listFiles.isEmpty()) m_pEngine->play(); if (listFiles.count() == 1 && QUrl(listFiles[0]).scheme().startsWith("dvd")) { m_dvdUrl = QUrl(listFiles[0]); if (!m_pEngine->addPlayFile(m_dvdUrl)) { auto msg = QString(tr("Cannot play the disc")); m_pCommHintWid->updateWithMessage(msg); return; } else { // todo: Disable toolbar buttons auto msg = QString(tr("Reading DVD files...")); m_pDVDHintWid->updateWithMessage(msg, true); } m_pEngine->playByName(m_dvdUrl); return; } for (QString strFile : listFiles) { if(QFileInfo(QUrl(strFile).toString()).isDir()){ lstDir << strFile; } else { lstFile << strFile; } } lstValid = m_pEngine->addPlayFiles(lstFile); // 先添加到播放列表再播放 m_pEngine->blockSignals(true); lstValid << m_pEngine->addPlayFiles(lstDir); m_pEngine->blockSignals(false); if(lstValid.count() > 0) { if (!isHidden()) { activateWindow(); } m_pEngine->playByName(lstValid[0]); } } void Platform_MainWindow::updateProxyGeometry() { QRect view_rect = rect(); m_pEngine->resize(view_rect.size()); if (!m_bMiniMode) { if (m_pTitlebar) { m_pTitlebar->setFixedWidth(view_rect.width()); } if (m_pToolbox) { QRect rfs; if (m_pPlaylist && m_pPlaylist->state() == Platform_PlaylistWidget::State::Opened) { rfs = QRect(5, height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - rect().top() - 5, rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 7)); } else { rfs = QRect(5, height() - TOOLBOX_HEIGHT - rect().top() - 5, rect().width() - 10, TOOLBOX_HEIGHT); } #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { if (m_pPlaylist && m_pPlaylist->state() == Platform_PlaylistWidget::State::Opened) { rfs = QRect(5, height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT) - rect().top() - 5, rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT + 7)); } else { rfs = QRect(5, height() - TOOLBOX_DSIZEMODE_HEIGHT - rect().top() - 5, rect().width() - 10, TOOLBOX_DSIZEMODE_HEIGHT); } } #endif m_pToolbox->setGeometry(rfs); m_pToolbox->updateMircastWidget(rfs.topRight()); } if (m_pPlaylist && !m_pPlaylist->toggling()) { int toolbox_height = TOOLBOX_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { toolbox_height = TOOLBOX_DSIZEMODE_HEIGHT; } #endif #ifndef __sw_64__ QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height + 5)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); if (utils::check_wayland_env()) { fixed = QRect((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); } #else QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height - 1)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT); #endif m_pPlaylist->setGeometry(fixed); } } } void Platform_MainWindow::suspendToolsWindow() { if (!m_bMiniMode) { if (m_pPlaylist && m_pPlaylist->state() == Platform_PlaylistWidget::Opened) return; // if (qApp->applicationState() == Qt::ApplicationInactive) { // } else { // menus are popped up // NOTE: menu keeps focus while hidden, so focusWindow is not used if (ActionFactory::get().mainContextMenu()->isVisible() || ActionFactory::get().titlebarMenu()->isVisible()) return; QPoint cursor = mapFromGlobal(QCursor::pos()); if (m_pToolbox->isVisible()) { if (m_pToolbox->getMircast()->isVisible() && m_pToolbox->getMircast()->geometry().contains(cursor) && !m_bLastIsTouch) return; if (insideToolsArea(cursor) && !m_bLastIsTouch) return; } else { if (m_pToolbox->geometry().contains(mapFromGlobal(QCursor::pos()))) { return; } } // } if (m_pToolbox->anyPopupShown()) return; if (m_pEngine->state() == PlayerEngine::Idle) return; if (m_autoHideTimer.isActive()) return; if (isFullScreen()) { if (qApp->focusWindow() == this->windowHandle()) { qApp->setOverrideCursor(Qt::BlankCursor); } else { qApp->setOverrideCursor(Qt::ArrowCursor); } } if (m_pToolbox->getbAnimationFinash()) { m_pToolbox->hide(); } //reset focus to mainWindow when the titlebar and toolbox is hedden //the tab focus will be re-executed in the order set m_pTitlebar->setFocus(); m_pTitlebar->hide(); //隐藏操作应放在设置焦点后 } else { if (m_autoHideTimer.isActive()) return; m_pMiniPlayBtn->hide(); m_pMiniCloseBtn->hide(); m_pMiniQuitMiniBtn->hide(); } } void Platform_MainWindow::resumeToolsWindow() { if (m_pEngine->state() != PlayerEngine::Idle && qApp->applicationState() == Qt::ApplicationActive) { // playlist's previous state was Opened if (m_pPlaylist && m_pPlaylist->state() != Platform_PlaylistWidget::Closed && !frameGeometry().contains(QCursor::pos())) { goto _finish; } } qApp->restoreOverrideCursor(); setCursor(Qt::ArrowCursor); if (!m_bMiniMode) { if (!m_bTouchChangeVolume) { m_pTitlebar->setVisible(!isFullScreen()); m_pToolbox->show(); } else { m_pToolbox->hide(); } } else { //迷你模式根据半屏模式显示控件 int nScreenHeight = QApplication::desktop()->availableGeometry().height(); QRect rt = rect(); if(rt.height() >= nScreenHeight-100){ m_pMiniPlayBtn->setVisible(false); m_pMiniCloseBtn->setVisible(false); m_pMiniQuitMiniBtn->setVisible(false); m_pToolbox->setVisible(false); }else { m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); } } _finish: m_autoHideTimer.start(AUTOHIDE_TIMEOUT); } void Platform_MainWindow::checkOnlineState(const bool bIsOnline) { if (!bIsOnline) { this->sendMessage(QIcon(":/icons/deepin/builtin/icons/ddc_warning_30px.svg"), QObject::tr("Network disconnected")); } } void Platform_MainWindow::checkOnlineSubtitle(const OnlineSubtitle::FailReason reason) { if (OnlineSubtitle::FailReason::NoSubFound == reason) { m_pCommHintWid->updateWithMessage(tr("No matching online subtitles")); } } void Platform_MainWindow::checkWarningMpvLogsChanged(const QString sPrefix, const QString sText) { QString warningMessage(sText); qInfo() << "checkWarningMpvLogsChanged" << sText; if (warningMessage.contains(QString("Hardware does not support image size 3840x2160"))) { requestAction(ActionFactory::TogglePause); DDialog *pDialog = new DDialog; pDialog->setFixedWidth(440); QImage icon = utils::LoadHiDPIImage(":/resources/icons/warning.svg"); QPixmap pix = QPixmap::fromImage(icon); pDialog->setIcon(QIcon(pix)); pDialog->setMessage(tr("4K video may be stuck")); pDialog->addButton(tr("OK"), true, DDialog::ButtonRecommend); QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(); effect->setOffset(0, 4); effect->setColor(QColor(0, 145, 255, 76)); effect->setBlurRadius(4); pDialog->getButton(0)->setFixedWidth(340); pDialog->getButton(0)->setGraphicsEffect(effect); #ifndef USE_TEST pDialog->exec(); #else pDialog->show(); pDialog->deleteLater(); #endif QTimer::singleShot(500, [ = ]() { //startPlayStateAnimation(true); if (!m_bMiniMode) { if (CompositingManager::get().platform() == Platform::X86) { m_pAnimationlable->resize(100, 100); } else { if (!m_bIsWM) { m_pAnimationlable->resize(100, 100); } else { m_pAnimationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200); } } m_pAnimationlable->playAnimation(); } m_pEngine->pauseResume(); }); } } void Platform_MainWindow::slotdefaultplaymodechanged(const QString &sKey, const QVariant &value) { if (sKey != "base.play.playmode") { qInfo() << "Settings key error"; return; } QPointer modeOpt = Settings::get().settings()->option("base.play.playmode"); QString sMode = modeOpt->data("items").toStringList()[value.toInt()]; if (sMode == tr("Order play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::OrderPlay); reflectActionToUI(ActionFactory::OrderPlay); } else if (sMode == tr("Shuffle play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::ShufflePlay); reflectActionToUI(ActionFactory::ShufflePlay); } else if (sMode == tr("Single play")) { m_pEngine->playlist().setPlayMode(PlaylistModel::SinglePlay); reflectActionToUI(ActionFactory::SinglePlay); } else if (sMode == tr("Single loop")) { m_pEngine->playlist().setPlayMode(PlaylistModel::SingleLoop); reflectActionToUI(ActionFactory::SingleLoop); } else if (sMode == tr("List loop")) { m_pEngine->playlist().setPlayMode(PlaylistModel::ListLoop); reflectActionToUI(ActionFactory::ListLoop); } } void Platform_MainWindow::onSetDecodeModel(const QString &key, const QVariant &value) { Q_UNUSED(key); MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(pMpvProxy && value.toInt() != 3) pMpvProxy->setDecodeModel(value); } void Platform_MainWindow::onRefreshDecode() { MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(pMpvProxy) pMpvProxy->refreshDecode(); } void Platform_MainWindow::syncPostion() { m_pCommHintWid->syncPosition(); } void Platform_MainWindow::my_setStayOnTop(const QWidget *pWidget, bool bOn) { Q_ASSERT(pWidget); const auto display = QX11Info::display(); const auto screen = QX11Info::appScreen(); const auto wmStateAtom = XInternAtom(display, kAtomNameWmState, false); const auto stateAboveAtom = XInternAtom(display, kAtomNameWmStateAbove, false); const auto stateStaysOnTopAtom = XInternAtom(display, kAtomNameWmStateStaysOnTop, false); XEvent xev; memset(&xev, 0, sizeof(xev)); xev.xclient.type = ClientMessage; xev.xclient.message_type = wmStateAtom; xev.xclient.display = display; xev.xclient.window = pWidget->winId(); xev.xclient.format = 32; xev.xclient.data.l[0] = bOn ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; xev.xclient.data.l[1] = stateAboveAtom; xev.xclient.data.l[2] = stateStaysOnTopAtom; xev.xclient.data.l[3] = 1; XSendEvent(display, QX11Info::appRootWindow(screen), false, SubstructureRedirectMask | SubstructureNotifyMask, &xev); XFlush(display); } void Platform_MainWindow::slotmousePressTimerTimeOut() { m_mousePressTimer.stop(); if (m_bMiniMode || m_bInBurstShootMode || !m_bMousePressed) return; if (insideToolsArea(QCursor::pos())) return; resumeToolsWindow(); m_bMousePressed = false; m_bIsTouch = false; } void Platform_MainWindow::slotPlayerStateChanged() { bool bAudio = false; PlayerEngine *pEngine = dynamic_cast(sender()); if (!pEngine) return; setInit(pEngine->state() != PlayerEngine::Idle); resumeToolsWindow(); updateWindowTitle(); // delayed checking if engine is still idle, in case other videos are schedulered (next/prev req) // and another resize event will happen after that QTimer::singleShot(100, [ = ]() { if (pEngine->state() == PlayerEngine::Idle && !m_bMiniMode && windowState() == Qt::WindowNoState && !isFullScreen()) { this->setMinimumSize(QSize(614, 500)); this->resize(850, 600); } }); if (m_pEngine->playlist().count() > 0) { bAudio = m_pEngine->currFileIsAudio(); } if (m_pEngine->state() == PlayerEngine::CoreState::Playing && bAudio) { m_pMovieWidget->startPlaying(); } else if ((m_pEngine->state() == PlayerEngine::CoreState::Paused) && bAudio) { m_pMovieWidget->pausePlaying(); } else if (pEngine->state() == PlayerEngine::CoreState::Idle) { m_pMovieWidget->stopPlaying(); } } void Platform_MainWindow::slotFocusWindowChanged() { if (qApp->focusWindow() != windowHandle()) suspendToolsWindow(); else resumeToolsWindow(); } /*void MainWindow::slotElapsedChanged() { #ifndef __mips__ PlayerEngine *engine = dynamic_cast(sender()); if (engine) { m_pProgIndicator->updateMovieProgress(engine->duration(), engine->elapsed()); } #endif }*/ void Platform_MainWindow::slotFileLoaded() { PlayerEngine *pEngine = dynamic_cast(sender()); if (!pEngine) return; m_platform_nRetryTimes = 0; this->resizeByConstraints(); m_bIsFree = true; } void Platform_MainWindow::slotUrlpause(bool bStatus) { if (bStatus) { auto msg = QString(tr("Buffering...")); m_pCommHintWid->updateWithMessage(msg); } } void Platform_MainWindow::slotFontChanged(const QFont &/*font*/) { if (CompositingManager::get().platform() != Platform::Mips) { QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6)); m_pToolbox->getfullscreentimeLabel()->setMinimumWidth(fm.width(m_pToolbox->getfullscreentimeLabel()->text())); m_pToolbox->getfullscreentimeLabelend()->setMinimumWidth(fm.width(m_pToolbox->getfullscreentimeLabelend()->text())); int pixelsWidth = m_pToolbox->getfullscreentimeLabel()->width() + m_pToolbox->getfullscreentimeLabelend()->width(); QRect deskRect = QApplication::desktop()->availableGeometry(); m_pFullScreenTimeLable->setGeometry(deskRect.width() - pixelsWidth - 32, 40, pixelsWidth + 32, 36); } } void Platform_MainWindow::slotMuteChanged(bool bMute) { m_pEngine->setMute(bMute); if (bMute) { m_pCommHintWid->updateWithMessage(tr("Mute")); } else { m_pCommHintWid->updateWithMessage(tr("Volume: %1%").arg(m_nDisplayVolume)); // 取消静音时显示音量提示 } } /*void MainWindow::slotAwaacelModeChanged(const QString &sKey, const QVariant &value) { if (sKey != "base.play.hwaccel") { qInfo() << "Settings key error"; return; } setHwaccelMode(value); }*/ void Platform_MainWindow::slotVolumeChanged(int nVolume) { m_nDisplayVolume = nVolume; m_pEngine->changeVolume(nVolume); if (m_pPresenter) { m_pPresenter->slotvolumeChanged(); } if (nVolume == 0) { m_pCommHintWid->updateWithMessage(tr("Mute")); } else { m_pCommHintWid->updateWithMessage(tr("Volume: %1%").arg(nVolume)); } } void Platform_MainWindow::slotWMChanged() { m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); m_pAnimationlable->setWM(m_bIsWM); m_pCommHintWid->setWM(m_bIsWM); } void Platform_MainWindow::mircastSuccess(QString name) { if (m_pEngine->state() == PlayerEngine::Playing) m_pEngine->pauseResume(); updateActionsState(); m_pMircastShowWidget->setDeviceName(name); m_pMircastShowWidget->show(); m_pToolbox->hideMircastWidget(); } void Platform_MainWindow::exitMircast() { if (m_pEngine->state() == PlayerEngine::Playing) m_pEngine->pauseResume(); m_pEngine->seekAbsolute(m_pToolbox->getSlider()->value()); updateActionsState(); m_pToolbox->getMircast()->slotExitMircast(); m_pMircastShowWidget->hide(); } void Platform_MainWindow::checkErrorMpvLogsChanged(const QString sPrefix, const QString sText) { QString sErrorMessage(sText); qInfo() << "checkErrorMpvLogsChanged" << sText; if (sErrorMessage.toLower().contains(QString("avformat_open_input() failed"))) { //do nothing } else if (sErrorMessage.toLower().contains(QString("fail")) && sErrorMessage.toLower().contains(QString("open")) && !sErrorMessage.toLower().contains(QString("dlopen"))) { m_pCommHintWid->updateWithMessage(tr("Cannot open file or stream")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } else if (sErrorMessage.toLower().contains(QString("fail")) && (sErrorMessage.toLower().contains(QString("format")))) { //Open the URL there is three cases of legal paths, illegal paths, and semi-legal //paths, which only processes the prefix legality, the suffix is not legal //please refer to other places to modify //powered by xxxxp if (m_pEngine->playlist().currentInfo().mi.title.isEmpty()) { m_pCommHintWid->updateWithMessage(tr("Parse failed")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } else { if (m_platform_nRetryTimes < 10) { m_platform_nRetryTimes++; requestAction(ActionFactory::ActionKind::StartPlay); } else { m_platform_nRetryTimes = 0; m_pCommHintWid->updateWithMessage(tr("Invalid file")); m_pEngine->playlist().remove(m_pEngine->playlist().current()); } } } else if (sErrorMessage.toLower().contains(QString("moov atom not found"))) { m_pCommHintWid->updateWithMessage(tr("Invalid file")); } else if (sErrorMessage.toLower().contains(QString("couldn't open dvd device"))) { m_pCommHintWid->updateWithMessage(tr("Please insert a CD/DVD")); } else if (sErrorMessage.toLower().contains(QString("incomplete frame")) || sErrorMessage.toLower().contains(QString("MVs not available"))) { } else if ((sErrorMessage.toLower().contains(QString("can't"))) && (sErrorMessage.toLower().contains(QString("open"))) && sErrorMessage.toLower().contains(m_pEngine->getplaylist()->currentInfo().info.fileName())) { m_pCommHintWid->updateWithMessage(tr("No video file found")); } } void Platform_MainWindow::closeEvent(QCloseEvent *pEvent) { qInfo() << __func__; if(m_pMircastShowWidget&&m_pMircastShowWidget->isVisible()) { slotExitMircast(); } if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } Settings::get().onSetCrash(); if (Settings::get().isSet(Settings::ResumeFromLast)) { int nCur = 0; nCur = m_pEngine->playlist().current(); if (nCur >= 0) { Settings::get().setInternalOption("playlist_pos", nCur); } } int volume = Settings::get().internalOption("global_volume").toInt(); if (m_nDisplayVolume != volume) { static QEventLoop loop; QFileSystemWatcher fileWatcher; fileWatcher.addPath(Settings::get().configPath()); connect(&fileWatcher, &QFileSystemWatcher::fileChanged, this, [=](){ loop.quit(); }); //关闭窗口时保存音量值 Settings::get().setInternalOption("global_volume", m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume); loop.exec(); } m_pEngine->savePlaybackPosition(); pEvent->accept(); #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::ClearWhenQuit)) { m_pEngine->playlist().clearPlaylist(); } else { //persistently save current playlist m_pEngine->playlist().savePlaylist(); } #endif // xcb close slow so add this for wayland by xxj DMainWindow::closeEvent(pEvent); m_pEngine->stop(); disconnect(m_pEngine, nullptr, nullptr, nullptr); disconnect(&m_pEngine->playlist(), nullptr, nullptr, nullptr); if (m_pEngine) { delete m_pEngine; m_pEngine = nullptr; } CompositingManager::get().setTestFlag(true); /*lmh0724临时规避退出崩溃问题*/ QApplication::quit(); _Exit(0); } void Platform_MainWindow::wheelEvent(QWheelEvent *pEvent) { if (insideToolsArea(pEvent->pos()) || insideResizeArea(pEvent->globalPos())) return; if (m_pToolbox->isInMircastWidget(pEvent->pos())) return; if (m_pPlaylist && m_pPlaylist->state() == Platform_PlaylistWidget::Opened) { pEvent->ignore(); return; } if (m_bLocked) { if (pEvent->buttons() == Qt::NoButton && pEvent->modifiers() == Qt::NoModifier && m_pToolbox->getVolSliderIsHided()) { m_iAngleDelta = pEvent->angleDelta().y() ; if( m_iAngleDelta < -240){ //对滚轮距离出现异常值时的约束处理 m_iAngleDelta = -120; }else if(m_iAngleDelta > 240 ){ m_iAngleDelta = 120; } requestAction(pEvent->angleDelta().y() > 0 ? ActionFactory::VolumeUp : ActionFactory::VolumeDown); } } } void Platform_MainWindow::focusInEvent(QFocusEvent *pEvent) { resumeToolsWindow(); } void Platform_MainWindow::hideEvent(QHideEvent *pEvent) { QMainWindow::hideEvent(pEvent); } void Platform_MainWindow::showEvent(QShowEvent *pEvent) { qInfo() << __func__; /*最大化,全屏,取消全屏,会先调用hideevent,再调用showevent,此时播放状态尚未切换,导致逻辑出错*/ m_pAnimationlable->raise(); m_pTitlebar->raise(); m_pToolbox->raise(); if (m_pPlaylist) { m_pPlaylist->raise(); } resumeToolsWindow(); if (!qgetenv("FLATPAK_APPID").isEmpty()) { qInfo() << "workaround for flatpak"; if (m_pPlaylist->isVisible()) updateProxyGeometry(); } QMainWindow::showEvent(pEvent); } void Platform_MainWindow::resizeByConstraints(bool bForceCentered) { if (m_pEngine->state() == PlayerEngine::Idle || m_pEngine->playlist().count() == 0) { m_pTitlebar->setTitletxt(QString()); return; } if (m_bMiniMode || isFullScreen() || isMaximized()) { return; } qInfo() << __func__; updateWindowTitle(); const MovieInfo &mi = m_pEngine->playlist().currentInfo().mi; QSize vidoeSize = m_pEngine->videoSize(); if (CompositingManager::get().platform() == Platform::Mips) m_pCommHintWid->syncPosition(); if (vidoeSize.isEmpty()) { vidoeSize = QSize(mi.width, mi.height); qInfo() << mi.width << mi.height; } auto geom = qApp->desktop()->availableGeometry(this); if (vidoeSize.width() > geom.width() || vidoeSize.height() > geom.height()) { vidoeSize.scale(geom.width(), geom.height(), Qt::KeepAspectRatio); } qInfo() << "original: " << size() << "requested: " << vidoeSize; if (size() == vidoeSize) return; if (bForceCentered) { QRect r; r.setSize(vidoeSize); r.moveTopLeft({(geom.width() - r.width()) / 2, (geom.height() - r.height()) / 2}); } } // 若长≥高,则长≤528px   若长≤高,则高≤528px. // 简而言之,只看最长的那个最大为528px. void Platform_MainWindow::updateSizeConstraints() { QSize size; if (m_bMiniMode) { size = QSize(40, 40); } else { //This function seems to be mentally and weak, and it is unknown. //powered by xxxxp // if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { // QRect dRect = DApplication::desktop()->availableGeometry(); // QSize sz = m_pEngine->videoSize(); // if (sz.width() == 0 || sz.height() == 0) { // size = QSize(614, 500); // } else { // qreal ratio = static_cast(sz.width()) / sz.height(); // if (sz.width() > sz.height()) { // int w = static_cast(500 * ratio); // size = QSize(w, 500); // } else { // int h = static_cast(614 * ratio); // if (h > dRect.height()) { // h = dRect.height(); // } // size = QSize(614, h); // } // } // } else { // size = QSize(614, 500); // } size = QSize(614, 500); } this->setMinimumSize(size); } void Platform_MainWindow::updateGeometryNotification(const QSize &sz) { QString sMsg = QString("%1x%2").arg(sz.width()).arg(sz.height()); if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_pCommHintWid->updateWithMessage(sMsg); } if (windowState() == Qt::WindowNoState && !m_bMiniMode && !m_bMaximized) { m_lastRectInNormalMode = geometry(); } } void Platform_MainWindow::LimitWindowize() { if (!m_bMiniMode && (geometry().width() == 380 || geometry().height() == 380)) { setGeometry(m_lastRectInNormalMode); } } void Platform_MainWindow::resizeEvent(QResizeEvent *pEvent) { qInfo() << __func__ << geometry(); // modify 4.1 Limit video to mini mode size by thx LimitWindowize(); updateSizeConstraints(); updateProxyGeometry(); QTimer::singleShot(0, [ = ]() { updateWindowTitle(); }); updateGeometryNotification(geometry().size()); //add by heyi /******* * 之前为修改全屏下呼出右键菜单任务栏不消失问题 * 此处修改存在逻辑错误,未判断窗口初始状态是否为置顶 * 此处先注释掉完成当前版本功能,sp3开发人员根据后期开发状态进行修改 *******/ // if (!isFullScreen()) { // my_setStayOnTop(this, false); // } m_pMovieWidget->resize(rect().size()); m_pMovieWidget->move(0, 0); m_pAnimationlable->move(0, 0); m_pMircastShowWidget->resize(rect().size()); m_pMircastShowWidget->move(0, 0); QPoint relativePoint = mapToGlobal(QPoint(0, 0)); m_pToolbox->updateSliderPoint(relativePoint); if(m_bMiniMode) { //迷你模式显示与半屏模式处理 int nScreenHeight = QApplication::desktop()->availableGeometry().height(); QRect rt = rect(); if(rt.height() >= nScreenHeight-100){ m_pMiniPlayBtn->setVisible(false); m_pMiniCloseBtn->setVisible(false); m_pMiniQuitMiniBtn->setVisible(false); m_pToolbox->setVisible(false); }else { m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); } } } void Platform_MainWindow::updateWindowTitle() { if (m_pEngine->state() != PlayerEngine::Idle) { const MovieInfo &mi = m_pEngine->playlist().currentInfo().mi; QString sTitle = m_pTitlebar->fontMetrics().elidedText(mi.title, Qt::ElideMiddle, m_pTitlebar->contentsRect().width() - 400); m_pTitlebar->setTitletxt(sTitle); setWindowTitle(mi.filePath); m_pTitlebar->setTitleBarBackground(false); } else { m_pTitlebar->setTitletxt(QString()); setWindowTitle(QString()); m_pTitlebar->setTitleBarBackground(false); } m_pTitlebar->setProperty("idle", m_pEngine->state() == PlayerEngine::Idle); } void Platform_MainWindow::moveEvent(QMoveEvent *pEvent) { qInfo() << __func__ << "进入moveEvent"; QWidget::moveEvent(pEvent); m_pCommHintWid->syncPosition(); QPoint relativePoint = mapToGlobal(QPoint(0, 0)); m_pToolbox->updateSliderPoint(relativePoint); updateGeometryNotification(geometry().size()); } void Platform_MainWindow::keyPressEvent(QKeyEvent *pEvent) { if (m_pPlaylist && (m_pPlaylist->state() == Platform_PlaylistWidget::Opened) && pEvent->modifiers() == Qt::NoModifier) { if (pEvent) { m_pPlaylist->updateSelectItem(pEvent->key()); } pEvent->setAccepted(true); } #ifdef QT_DEBUG //加入一个在调试环境下切换软硬解码的快捷键 if (pEvent->key() == Qt::Key_H) { if (QApplication::keyboardModifiers() == Qt::ControlModifier) { if (m_sCurrentHwdec == "") { m_sCurrentHwdec = m_pEngine->getBackendProperty("hwdec").toString(); } if (m_sCurrentHwdec == "off") { m_pCommHintWid->popup("current is off"); QWidget::keyPressEvent(pEvent); return; } QString str = m_pEngine->getBackendProperty("hwdec").toString(); if (str == "off") { m_pEngine->setBackendProperty("hwdec", m_sCurrentHwdec); } else { m_pEngine->setBackendProperty("hwdec", "off"); } m_pCommHintWid->popup(QString("hwdec is %1").arg(m_pEngine->getBackendProperty("hwdec").toString())); } } #endif QWidget::keyPressEvent(pEvent); } void Platform_MainWindow::keyReleaseEvent(QKeyEvent *pEvent) { QWidget::keyReleaseEvent(pEvent); } static bool s_bAfterDblClick = false; void Platform_MainWindow::capturedMousePressEvent(QMouseEvent *pEvent) { m_bMouseMoved = false; m_bMousePressed = false; m_pCommHintWid->hide(); m_pPopupWid->hide(); if (qApp->focusWindow() == nullptr) return; if (pEvent->buttons() == Qt::LeftButton) { m_bMousePressed = true; m_bStartMove = true; } m_posMouseOrigin = mapToGlobal(pEvent->pos()); } void Platform_MainWindow::capturedMouseReleaseEvent(QMouseEvent *pEvent) { if (m_bIsTouch) { m_bLastIsTouch = true; m_bIsTouch = false; if (m_bTouchChangeVolume) { m_bTouchChangeVolume = false; m_pToolbox->setVisible(true); } if (m_bProgressChanged) { m_pToolbox->updateSlider(); //手势释放时改变影片进度 m_bProgressChanged = false; } } else { m_bLastIsTouch = false; } if (m_bDelayedResizeByConstraint) { m_bDelayedResizeByConstraint = false; QTimer::singleShot(0, [ = ]() { this->setMinimumSize({0, 0}); this->resizeByConstraints(true); }); } m_bStartMove = false; if (!m_bMousePressed) { s_bAfterDblClick = false; m_bMouseMoved = false; } if (qApp->focusWindow() == nullptr || !m_bMousePressed) return; m_bMousePressed = false; //NOTE: If the mouseMoveEvent of the titlebar is triggered // reset the status here, otherwise it cannot respond to the mini mode shortcut if (m_pTitlebar->geometry().contains(pEvent->pos())) m_bMouseMoved = false; } void Platform_MainWindow::capturedKeyEvent(QKeyEvent *pEvent) { if (pEvent->key() == Qt::Key_Tab) { if (!isFullScreen()) { m_pTitlebar->show(); } m_pToolbox->show(); m_autoHideTimer.start(AUTOHIDE_TIMEOUT); //如果点击tab键,重置计时器 } } void Platform_MainWindow::mousePressEvent(QMouseEvent *pEvent) { m_bMouseMoved = false; m_bMousePressed = false; m_pCommHintWid->hide(); m_pPopupWid->hide(); m_pToolbox->closeAnyPopup(); if (qApp->focusWindow() == nullptr) return; if (pEvent->buttons() == Qt::LeftButton) { m_bMousePressed = true; m_bStartMove = true; if (!m_mousePressTimer.isActive() && m_bIsTouch) { m_mousePressTimer.stop(); m_nLastPressX = mapToGlobal(QCursor::pos()).x(); m_nLastPressY = mapToGlobal(QCursor::pos()).y(); qInfo() << __func__ << "已经进入触屏按下事件" << m_nLastPressX << m_nLastPressY; m_mousePressTimer.start(); } } m_posMouseOrigin = mapToGlobal(pEvent->pos()); m_pressPoint = pEvent->pos(); } void Platform_MainWindow::mouseReleaseEvent(QMouseEvent *ev) { /// NOTE: 为了其它控件的鼠标操作与MainWindow一致,统一使用capturedMouseReleaseEvent()捕获鼠标释放 /// 事件,若无特殊要求,请尽量在capturedMouseReleaseEvent()进行处理。 // 以下代码貌似没什么用,可以考虑去掉 static bool bFlags = true; if (bFlags) { repaint(); bFlags = false; } if (!insideResizeArea(ev->globalPos()) && !m_bMouseMoved && (m_pPlaylist->state() != Platform_PlaylistWidget::Opened)) { if (!insideToolsArea(ev->pos())) { m_delayedMouseReleaseTimer.start(120); } else { if (m_pEngine->state() == PlayerEngine::CoreState::Idle && !insideToolsArea(ev->pos())) { m_delayedMouseReleaseTimer.start(120); } } } m_bMouseMoved = false; m_bMousePressed = false; qInfo() << __func__ << "进入mouseReleaseEvent"; QWidget::mouseReleaseEvent(ev); } void Platform_MainWindow::mouseDoubleClickEvent(QMouseEvent *pEvent) { qInfo() << __func__ << "进入mouseDoubleClickEvent"; if (!m_bMiniMode && this->m_pEngine->getplaylist()->getthreadstate()) { qInfo() << "playlist loadthread is running"; return; } //投屏时双击操作不做处理 if(m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) return; if (!m_bMiniMode && !m_bInBurstShootMode) { m_delayedMouseReleaseTimer.stop(); if (m_pEngine->state() == PlayerEngine::Idle) { requestAction(ActionFactory::StartPlay); } else { requestAction(ActionFactory::ToggleFullscreen, false, {}, true); } pEvent->accept(); s_bAfterDblClick = true; } } void Platform_MainWindow::mouseMoveEvent(QMouseEvent *pEvent) { if (m_bStartMini) return; qInfo() << __func__ << "进入mouseMoveEvent"; m_pAnimationlable->hide(); QPoint ptCurr = mapToGlobal(pEvent->pos()); QPoint ptDelta = ptCurr - this->m_posMouseOrigin; m_posMouseOrigin = mapToGlobal(pEvent->pos()); if (qAbs(ptDelta.x()) < 5 && qAbs(ptDelta.y()) < 5) { //避免误触 return; } if (m_bIsTouch && isFullScreen()) { //全屏时才触发滑动改变音量和进度的操作 if (qAbs(ptDelta.x()) > qAbs(ptDelta.y()) && m_pEngine->state() != PlayerEngine::CoreState::Idle) { m_bTouchChangeVolume = false; m_pToolbox->updateProgress(ptDelta.x()); //改变进度条显示 //this->m_posMouseOrigin = ptCurr; m_bProgressChanged = true; return; } else if (qAbs(ptDelta.x()) < qAbs(ptDelta.y())) { if (ptDelta.y() > 0) { m_bTouchChangeVolume = true; requestAction(ActionFactory::ActionKind::VolumeDown); } else { m_bTouchChangeVolume = true; requestAction(ActionFactory::ActionKind::VolumeUp); } //this->m_posMouseOrigin = ptCurr; return; } } if (!isFullScreen() && m_bStartMove) { #ifdef XCB_Platform Utility::startWindowSystemMove(this->winId()); if (m_bStartMove) { m_bStartMove = false; //this->m_posMouseOrigin = ptCurr; m_bMouseMoved = true; qInfo() <winId(), pEvent->globalPos() * devicePixelRatioF()); } #else QWidget::mouseMoveEvent(pEvent); #endif } else { QWidget::mouseMoveEvent(pEvent); } //this->m_posMouseOrigin = ptCurr; m_bMouseMoved = true; } void Platform_MainWindow::contextMenuEvent(QContextMenuEvent *pEvent) { qInfo() << __func__ << "进入contextMenuEvent"; if (m_bMiniMode || m_bInBurstShootMode) return; if (insideToolsArea(pEvent->pos())) return; if (CompositingManager::isPadSystem()) return; //通过窗口id查询窗口状态是否置顶,同步右键菜单中的选项状态 QProcess above; QStringList options; options << "-c" << QString("xprop -id %1 | grep '_NET_WM_STATE(ATOM)'").arg(winId()); above.start("bash", options); if (above.waitForStarted() && above.waitForFinished()) { QString drv = QString::fromUtf8(above.readAllStandardOutput().trimmed().constData()); if (drv.contains("_NET_WM_STATE_ABOVE") != m_bWindowAbove) { m_bWindowAbove = drv.contains("_NET_WM_STATE_ABOVE"); reflectActionToUI(ActionFactory::WindowAbove); } } if(m_pMircastShowWidget->isVisible() ) {//投屏中屏蔽全屏、迷你模式,置顶菜单 QList lstActId; lstActId << ActionFactory::ToggleFullscreen << ActionFactory::ToggleMiniMode << ActionFactory::WindowAbove; for(ActionFactory::ActionKind id: lstActId) { QList listActs; listActs = ActionFactory::get().findActionsByKind(id); if(listActs.size()<=0) { continue; } for(QAction *act: listActs) { act->setEnabled(false); } } //倍速播放、画面、声音、字幕、截图 emit frameMenuEnable(false); emit playSpeedMenuEnable(false); emit subtitleMenuEnable(false); emit soundMenuEnable(false); } resumeToolsWindow(); QTimer::singleShot(0, [ = ]() { qApp->restoreOverrideCursor(); ActionFactory::get().mainContextMenu()->popup(QCursor::pos()); }); pEvent->accept(); //此段为通过xcb接口查询窗口状态,nItem为状态列表中的个数,properties为返回状态列表 //代码暂时无法实现需求,勿删 // const auto display = QX11Info::display(); // const auto screen = QX11Info::appScreen(); // Atom atom = XInternAtom(display, "_NET_WM_STATE", true); // Atom type; // int format; // unsigned long nItem, bytesAfter; // unsigned char *properties = NULL; // XGetWindowProperty(display, QX11Info::appRootWindow(screen), atom, 0, (~0L), False, AnyPropertyType, &type, &format, &nItem, &bytesAfter, &properties); // qInfo() << atom << nItem; // int iItem; // for (iItem = 0; iItem < nItem; ++iItem) // qInfo() << ((long *)(properties))[iItem]; } bool Platform_MainWindow::insideToolsArea(const QPoint &p) { if (CompositingManager::get().platform() == Platform::X86) { return (m_pTitlebar->geometry().contains(p) && !isFullScreen()) || m_pToolbox->geometry().contains(p) || m_pToolbox->volumeSlider()->geometry().contains(p) || m_pMiniPlayBtn->geometry().contains(p)|| m_pMiniCloseBtn->geometry().contains(p) || m_pMiniQuitMiniBtn->geometry().contains(p); } else { return (m_pTitlebar->geometry().contains(p) && !isFullScreen()) || m_pToolbox->rect().contains(p) || m_pToolbox->geometry().contains(p) || m_pToolbox->volumeSlider()->geometry().contains(p) || m_pMiniPlayBtn->geometry().contains(p)|| m_pMiniCloseBtn->geometry().contains(p) || m_pMiniQuitMiniBtn->geometry().contains(p); } } QMargins Platform_MainWindow::dragMargins() const { return QMargins {MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS}; } bool Platform_MainWindow::insideResizeArea(const QPoint &globalPos) { const QRect window_visible_rect = frameGeometry() - dragMargins(); return !window_visible_rect.contains(globalPos); } void Platform_MainWindow::delayedMouseReleaseHandler() { if ((!s_bAfterDblClick && !m_bLastIsTouch) || m_bMiniMode) if (!CompositingManager::isPadSystem()) { requestAction(ActionFactory::TogglePause, false, {}, true); } else { resumeToolsWindow(); //平板模式下,点击窗口显示工具栏 } s_bAfterDblClick = false; } void Platform_MainWindow::prepareSplashImages() { m_imgBgDark = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg"); m_imgBgLight = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg"); } void Platform_MainWindow::subtitleMatchVideo(const QString &sFileName) { QString sVideoName = sFileName; // Search for video files with the same name as the subtitles and play the video file. QFileInfo subfileInfo(sFileName); QDir dir(subfileInfo.canonicalPath()); dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); dir.setSorting(QDir::Size | QDir::Reversed); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo info = list.at(i); qInfo() << info.absoluteFilePath() << endl; // if (info.completeBaseName() == subfileInfo.completeBaseName()) { if (subfileInfo.fileName().contains(info.completeBaseName())) { sVideoName = info.absoluteFilePath(); } else { sVideoName = nullptr; } } QFileInfo vfileInfo(sVideoName); if (vfileInfo.exists()) { Settings::get().setGeneralOption("last_open_path", vfileInfo.path()); play({sVideoName}); // Select the current subtitle display const PlayingMovieInfo &pmf = m_pEngine->playingMovieInfo(); for (const SubtitleInfo &sub : pmf.subs) { if (sub["external"].toBool()) { QString path = sub["external-filename"].toString(); if (path == subfileInfo.canonicalFilePath()) { m_pEngine->selectSubtitle(pmf.subs.indexOf(sub)); break; } } } } else { m_pCommHintWid->updateWithMessage(tr("Please load the video first")); } } void Platform_MainWindow::defaultplaymodeinit() { QPointer modeOpt = Settings::get().settings()->option("base.play.playmode"); int nModeId = modeOpt->value().toInt(); QString sMode = modeOpt->data("items").toStringList()[nModeId]; if (sMode == tr("Order play")) { requestAction(ActionFactory::OrderPlay); reflectActionToUI(ActionFactory::OrderPlay); } else if (sMode == tr("Shuffle play")) { requestAction(ActionFactory::ShufflePlay); reflectActionToUI(ActionFactory::ShufflePlay); } else if (sMode == tr("Single play")) { requestAction(ActionFactory::SinglePlay); reflectActionToUI(ActionFactory::SinglePlay); } else if (sMode == tr("Single loop")) { requestAction(ActionFactory::SingleLoop); reflectActionToUI(ActionFactory::SingleLoop); } else if (sMode == tr("List loop")) { requestAction(ActionFactory::ListLoop); reflectActionToUI(ActionFactory::ListLoop); } } void Platform_MainWindow::decodeInit() { MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(m_pEngine->getMpvProxy()); if(!pMpvProxy) return; //崩溃检测 bool bcatch = Settings::get().settings()->getOption(QString("set.start.crash")).toBool(); if (bcatch) { pMpvProxy->setDecodeModel(DecodeMode::AUTO); Settings::get().settings()->setOption(QString("base.decode.select"),DecodeMode::AUTO); } else { int value = Settings::get().settings()->getOption(QString("base.decode.select")).toInt(); pMpvProxy->setDecodeModel(value); } } void Platform_MainWindow::popupAdapter(QIcon icon, QString sText) { m_pPopupWid->setIcon(icon); DFontSizeManager::instance()->bind(this, DFontSizeManager::T6); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6); QFontMetrics fm(font); auto w = fm.boundingRect(sText).width(); m_pPopupWid->setMessage(sText); m_pPopupWid->resize(w + 70, 40); m_pPopupWid->move((width() - m_pPopupWid->width()) / 2 + geometry().x(), height() - 127 + geometry().y()); m_pPopupWid->show(); m_pPopupWid->raise(); } QString Platform_MainWindow::lastOpenedPath() { QString lastPath = Settings::get().generalOption("last_open_path").toString(); QDir lastDir(lastPath); if (lastPath.isEmpty() || !lastDir.exists()) { lastPath = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); QDir newLastDir(lastPath); if (!newLastDir.exists()) { lastPath = QDir::currentPath(); } } return lastPath; } void Platform_MainWindow::paintEvent(QPaintEvent *pEvent) { QPainter painter(this); QRectF bgRect; bgRect.setSize(size()); const QPalette pal = QGuiApplication::palette();//this->palette(); QColor bgColor = pal.color(QPalette::Window); if (CompositingManager::get().platform() == Platform::X86) { QPainterPath path; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { if (m_pEngine->state() != PlayerEngine::Idle && !m_pToolbox->isVisible()) { path.addRect(bgRect); painter.fillPath(path, Qt::black); } else { path.addRect(bgRect); painter.fillPath(path, Qt::white); } } } if (m_pEngine->state() == PlayerEngine::Idle) { QImage bg = QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage(); //和产品、ui商议深色主题下去除深色背景效果 // if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { // QImage img = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash-bac.svg"); // QPointF pos = bgRect.center() - QPoint(img.width() / 2, img.height() / 2) / devicePixelRatioF(); // painter.drawImage(pos, img); // } QPointF pos = bgRect.center() - QPoint(bg.width() / 2, bg.height() / 2) / devicePixelRatioF(); painter.drawImage(pos, bg); } QMainWindow::paintEvent(pEvent); } void Platform_MainWindow::toggleUIMode() { //判断窗口是否靠边停靠(靠边停靠不支持MINI模式)thx QRect deskrect = QApplication::desktop()->availableGeometry(); QPoint windowPos = pos(); if (this->geometry() != deskrect) { if (windowPos.x() == 0 && (windowPos.y() == 0 || (abs(windowPos.y() + this->geometry().height() - deskrect.height()) < 50))) { if (abs(this->geometry().width() - deskrect.width() / 2) < 50) { m_pCommHintWid->updateWithMessage(tr("Please exit smart dock")); m_bStartMini = false; reflectActionToUI(ActionFactory::ToggleMiniMode); return ; } } if ((abs(windowPos.x() + this->geometry().width() - deskrect.width()) < 50) && (windowPos.y() == 0 || abs(windowPos.y() + this->geometry().height() - deskrect.height()) < 50)) { if (abs(this->geometry().width() - deskrect.width() / 2) < 50) { m_pCommHintWid->updateWithMessage(tr("Please exit smart dock")); m_bStartMini = false; reflectActionToUI(ActionFactory::ToggleMiniMode); return ; } } } m_bMiniMode = !m_bMiniMode; qInfo() << __func__ << m_bMiniMode; if (m_bMiniMode) { m_pTitlebar->titlebar()->setDisableFlags(Qt::WindowMaximizeButtonHint); } else { m_pTitlebar->titlebar()->setDisableFlags(nullptr); } m_pTitlebar->setVisible(!m_bMiniMode); m_pMiniPlayBtn->setVisible(m_bMiniMode); m_pMiniCloseBtn->setVisible(m_bMiniMode); m_pMiniQuitMiniBtn->setVisible(m_bMiniMode); m_pMiniPlayBtn->setEnabled(m_bMiniMode); m_pMiniCloseBtn->setEnabled(m_bMiniMode); m_pMiniQuitMiniBtn->setEnabled(m_bMiniMode); m_pMiniPlayBtn->raise(); m_pMiniCloseBtn->raise(); m_pMiniQuitMiniBtn->raise(); resumeToolsWindow(); if (m_bMiniMode) { m_pCommHintWid->setAnchorPoint(QPoint(15, 11)); //迷你模式下提示位置稍有不同 updateSizeConstraints(); //设置等比缩放 setEnableSystemResize(false); m_nStateBeforeMiniMode = SBEM_None; if (isFullScreen()) { m_nStateBeforeMiniMode |= SBEM_Fullscreen; setWindowState(windowState() & ~Qt::WindowFullScreen); this->setWindowState(Qt::WindowNoState); } else if (isMaximized()) { m_nStateBeforeMiniMode |= SBEM_Maximized; showNormal(); } else { m_lastRectInNormalMode = geometry(); } if (!m_bWindowAbove) { m_nStateBeforeMiniMode |= SBEM_Above; requestAction(ActionFactory::WindowAbove); } QSize sz = QSize(380, 380); if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { qreal ratio = 1920 * 1.0 / 1080; auto vid_size = m_pEngine->videoSize(); if (vid_size.height() > 0 && vid_size.width() >= vid_size.height()) { ratio = vid_size.width() / static_cast(vid_size.height()); sz = QSize(380, static_cast(380 / ratio) + 1); } else if (vid_size.height() > 0 && vid_size.width() < vid_size.height()) { ratio = vid_size.width() / static_cast(vid_size.height()); sz = QSize(380, static_cast(380 * ratio) + 1); } else { sz = QSize(380, static_cast(380 / ratio) + 1); } } QRect geom = {0, 0, 0, 0}; if (m_lastRectInNormalMode.isValid()) { geom = m_lastRectInNormalMode; } geom.setSize(sz); setGeometry(geom); if (geom.x() < 0) { geom.moveTo(0, geom.y()); } if (geom.y() < 0) { geom.moveTo(geom.x(), 0); } QRect deskGeom = qApp->desktop()->availableGeometry(this); move((deskGeom.width() - this->width()) / 2, (deskGeom.height() - this->height()) / 2); //迷你模式下窗口居中 by zhuyuliang resize(geom.width(), geom.height()); m_pMiniPlayBtn->move(sz.width() - 12 - m_pMiniPlayBtn->width(), sz.height() - 10 - m_pMiniPlayBtn->height()); m_pMiniCloseBtn->move(sz.width() - 15 - m_pMiniCloseBtn->width(), 10); m_pMiniQuitMiniBtn->move(14, sz.height() - 10 - m_pMiniQuitMiniBtn->height()); } else { m_pCommHintWid->setAnchorPoint(QPoint(30, 58)); setEnableSystemResize(true); if (m_nStateBeforeMiniMode & SBEM_Maximized) { //迷你模式切换最大化时,先恢复原来窗口大小 if (m_lastRectInNormalMode.isValid()) { setGeometry(m_lastRectInNormalMode); } else { resizeByConstraints(); } showMaximized(); } else if (m_nStateBeforeMiniMode & SBEM_Fullscreen) { setWindowState(windowState() | Qt::WindowFullScreen); } else { if (m_pToolbox->listBtn()->isChecked()) { m_pToolbox->listBtn()->setChecked(false); } if (m_lastRectInNormalMode.isValid()) { setGeometry(m_lastRectInNormalMode); } else { resizeByConstraints(); } } if (m_nStateBeforeMiniMode & SBEM_Above) { requestAction(ActionFactory::WindowAbove); } if (m_nStateBeforeMiniMode & SBEM_PlaylistOpened && m_pPlaylist->state() == Platform_PlaylistWidget::Closed) { if (m_nStateBeforeMiniMode & SBEM_Fullscreen) { QTimer::singleShot(100, [ = ]() { requestAction(ActionFactory::TogglePlaylist); }); } } m_nStateBeforeMiniMode = SBEM_None; } m_bStartMini = false; } void Platform_MainWindow::miniButtonClicked(const QString &id) { qInfo() << id; if (id == "play") { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { requestAction(ActionFactory::ActionKind::StartPlay); } else { requestAction(ActionFactory::ActionKind::TogglePause); } } else if (id == "close") { close(); } else if (id == "quit_mini") { requestAction(ActionFactory::ActionKind::ToggleMiniMode); } } void Platform_MainWindow::dragEnterEvent(QDragEnterEvent *ev) { if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } } void Platform_MainWindow::dragMoveEvent(QDragMoveEvent *ev) { if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } } void Platform_MainWindow::dropEvent(QDropEvent *pEvent) { //add by heyi 拖动进来时先初始化窗口 //firstPlayInit(); qInfo() << pEvent->mimeData()->formats(); if (!pEvent->mimeData()->hasUrls()) { return; } QList lstFile; QList urls = pEvent->mimeData()->urls(); for (QUrl strUrl : urls) { lstFile << strUrl.path(); } if (urls.count() == 1) { // check if the dropped file is a subtitle. QFileInfo fileInfo(urls.first().toLocalFile()); if (m_pEngine->isSubtitle(fileInfo.absoluteFilePath())) { // Search for video files with the same name as the subtitles and play the video file. if(m_pEngine->state() != PlayerEngine::CoreState::Idle && m_pEngine->playlist().currentInfo().mi.isRawFormat()) { return; } else if (m_pEngine->state() == PlayerEngine::Idle) subtitleMatchVideo(urls.first().toLocalFile()); else { bool succ = m_pEngine->loadSubtitle(fileInfo); m_pCommHintWid->updateWithMessage(succ ? tr("Load successfully") : tr("Load failed")); } return; } } play(lstFile); pEvent->acceptProposedAction(); } void Platform_MainWindow::setInit(bool bInit) { if (m_bInited != bInit) { m_bInited = bInit; emit initChanged(); } } QString Platform_MainWindow::probeCdromDevice() { QFile mountFile("/proc/mounts"); if (mountFile.open(QIODevice::ReadOnly) == false) { return QString(); } do { QString sLine = mountFile.readLine(); if (sLine.indexOf("/dev/sr") != -1 || sLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。 return sLine.split(" ").at(0); //A B C 这样的格式,取部分 } } while (!mountFile.atEnd()); mountFile.close(); return QString(); } void Platform_MainWindow::diskRemoved(QString strDiskName) { QString sCurrFile; if (m_pEngine->getplaylist()->count() <= 0) { return; } sCurrFile = m_pEngine->getplaylist()->currentInfo().url.toString(); if (sCurrFile.contains(strDiskName)/* && m_pEngine->state() == PlayerEngine::Playing*/) m_pCommHintWid->updateWithMessage(tr("The CD/DVD has been ejected")); } void Platform_MainWindow::sleepStateChanged(bool bSleep) { //休眠退出投屏 if(bSleep && m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) { slotExitMircast(); } qInfo() << __func__ << bSleep; //if (m_bStateInLock) { //休眠唤醒后会先执行锁屏操作,如果已经进行锁屏操作则忽略休眠唤醒信号 // m_bStartSleep = bSleep; // m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); // return; //} if (bSleep && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_bStartSleep = true; requestAction(ActionFactory::ActionKind::TogglePause); } else if (!bSleep && m_pEngine->state() == PlayerEngine::CoreState::Paused) { m_bStartSleep = false; m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); //保证休眠后不管是否播放都不会卡帧 } } void Platform_MainWindow::lockStateChanged(bool bLock) { qInfo() << __func__ << bLock; //锁屏退出投屏 if(bLock && m_pMircastShowWidget && m_pMircastShowWidget->isVisible()) { slotExitMircast(); } if (!bLock) { m_bLocked = false; QTimer::singleShot(1000, [=](){ m_bLocked = true; }); } if (bLock && m_pEngine->state() == PlayerEngine::CoreState::Playing && !m_bStateInLock) { m_bStateInLock = true; requestAction(ActionFactory::ActionKind::TogglePause); } else if (!bLock && m_pEngine->state() == PlayerEngine::CoreState::Paused && m_bStateInLock) { m_bStateInLock = false; QTimer::singleShot(500, [=](){ //龙芯5000使用命令sudo rtcwake -l -m mem -s 20, 待机唤醒后无dBus信号“PrepareForSleep”发出,加入seek保证解锁后播放不会卡帧 m_pEngine->seekAbsolute(static_cast(m_pEngine->elapsed())); requestAction(ActionFactory::ActionKind::TogglePause); }); } } void Platform_MainWindow::initMember() { m_pPopupWid = nullptr; m_pFullScreenTimeLable = nullptr; //全屏时右上角的影片进度 m_pFullScreenTimeLayout = nullptr; m_pTitlebar = nullptr; m_pToolbox = nullptr; m_pPlaylist = nullptr; m_pEngine = nullptr; m_pAnimationlable = nullptr; m_pProgIndicator = nullptr; //全屏时右上角的系统时间 m_pEventMonitor = nullptr; m_pEventListener = nullptr; m_pDVDHintWid = nullptr; m_pCommHintWid = nullptr; m_pShortcutViewProcess = nullptr; m_pDBus = nullptr; m_pPresenter = nullptr; m_pMovieWidget = nullptr; m_pMircastShowWidget = nullptr; m_bInBurstShootMode = false; m_bPausedBeforeBurst = false; #ifdef __mips__ m_pMiniPlayBtn = nullptr; m_pMiniCloseBtn = nullptr; m_pMiniQuitMiniBtn = nullptr; #else m_pMiniPlayBtn = nullptr; m_pMiniCloseBtn = nullptr; m_pMiniQuitMiniBtn = nullptr; #endif m_bMiniMode = false; m_bInited = false; m_bMovieSwitchedInFsOrMaxed = false; m_bDelayedResizeByConstraint = false; m_bWindowAbove = false; m_bMouseMoved = false; m_bMousePressed = false; m_bQuitfullscreenflag = false; m_bStartMini = false; m_bProgressChanged = false; m_bLastIsTouch = false; m_bTouchChangeVolume = false; m_bIsFree = true; m_bIsTouch = false; m_bStartAnimation = false; m_bStateInLock = false; m_bStartSleep = false; m_bStartMove = false; m_bMaximized = false; m_nDisplayVolume = 100; m_nLastPressX = 0; m_nLastPressY = 0; m_nStateBeforeMiniMode = 0; m_nLastCookie = 0; m_nPowerCookie = 0; m_dPlaySpeed = 1.0; m_iAngleDelta = 0; m_nFullscreenTime = 0; m_lastWindowState = Qt::WindowNoState; m_dvdUrl.clear(); m_listOpenFiles.clear(); m_sCurrentHwdec.clear(); m_listBurstShoots.clear(); } void Platform_MainWindow::adjustPlaybackSpeed(ActionFactory::ActionKind actionKind) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (actionKind == ActionFactory::ActionKind::AccelPlayback) { m_dPlaySpeed = qMin(2.0, m_dPlaySpeed + 0.1); } else if (actionKind == ActionFactory::ActionKind::DecelPlayback) { m_dPlaySpeed = qMax(0.1, m_dPlaySpeed - 0.1); } m_pEngine->setPlaySpeed(m_dPlaySpeed); if (qFuzzyCompare(0.5, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::ZeroPointFiveTimes); } else if (qFuzzyCompare(1.0, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OneTimes); } else if (qFuzzyCompare(1.2, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OnePointTwoTimes); } else if (qFuzzyCompare(1.5, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::OnePointFiveTimes); } else if (qFuzzyCompare(2.0, m_dPlaySpeed)) { setPlaySpeedMenuChecked(ActionFactory::ActionKind::Double); } else { setPlaySpeedMenuUnchecked(); } m_pCommHintWid->updateWithMessage(tr("Speed: %1x").arg(m_dPlaySpeed)); } } void Platform_MainWindow::setPlaySpeedMenuChecked(ActionFactory::ActionKind actionKind) { QList listActs = ActionFactory::get().findActionsByKind(actionKind); auto p = listActs.begin(); (*p)->setChecked(true); } void Platform_MainWindow::setPlaySpeedMenuUnchecked() { QList listActs; { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::ZeroPointFiveTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OneTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OnePointTwoTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::OnePointFiveTimes); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } { listActs = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::Double); auto p = listActs.begin(); if ((*p)->isChecked()) { (*p)->setChecked(false); } } } void Platform_MainWindow::setMusicShortKeyState(bool bState) { ActionFactory::ActionKind actionKind; foreach (auto action, this->actions()) { actionKind = (ActionFactory::ActionKind)action->property("kind").toInt(); switch (actionKind) { case ActionFactory::Screenshot: case ActionFactory::BurstScreenshot: case ActionFactory::GoToScreenshotSolder: case ActionFactory::DefaultFrame: case ActionFactory::Ratio4x3Frame: case ActionFactory::Ratio16x9Frame: case ActionFactory::Ratio16x10Frame: case ActionFactory::Ratio185x1Frame: case ActionFactory::Ratio235x1Frame: case ActionFactory::ClockwiseFrame: case ActionFactory::CounterclockwiseFrame: case ActionFactory::NextFrame: case ActionFactory::PreviousFrame: action->setEnabled(bState); } } } void Platform_MainWindow::onSysLockState(QString, QVariantMap key2value, QStringList) { if (m_bStartSleep) { m_bStateInLock = true; //如果进入了休眠状态后进入锁屏,则默认执行了暂停操作 } if (key2value.value("Locked").value() && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_bStateInLock = true; requestAction(ActionFactory::TogglePause); } else if (!key2value.value("Locked").value() && m_bStateInLock) { m_bStateInLock = false; requestAction(ActionFactory::TogglePause); } } void Platform_MainWindow::slotProperChanged(QString, QVariantMap key2value, QStringList) { qInfo() << __func__ << key2value; if (key2value.value("Active").value() && m_pEngine->state() == PlayerEngine::CoreState::Playing) { m_pEngine->seekAbsolute(m_pEngine->elapsed()); } } void Platform_MainWindow::slotUnsupported() { m_pCommHintWid->updateWithMessage(tr("The action is not supported in this video")); } void Platform_MainWindow::slotInvalidFile(QString strFileName) { static int showTime = -1000; showTime += 1000; QTimer::singleShot(showTime, [=]{ showTime = showTime - 1000; m_pCommHintWid->updateWithMessage(QString(tr("Invalid file: %1").arg(strFileName))); }); } void Platform_MainWindow::slotUpdateMircastState(int state, QString msg) { switch (state) { case MIRCAST_SUCCESSED: //投屏成功 { mircastSuccess(msg); emit frameMenuEnable(false); emit playSpeedMenuEnable(false); emit subtitleMenuEnable(false); emit soundMenuEnable(false); } break; case MIRCAST_EXIT://投屏退出 { slotExitMircast(); } break; case MIRCAST_CONNECTION_FAILED://投屏连接失败 { const QIcon icon = QIcon(":/resources/icons/short_fail.svg"); QString sText = QString(tr("Connection failed")); popupAdapter(icon, sText); slotExitMircast(); } break; case MIRCAST_DISCONNECTIONED://投屏丢失连接 { m_pCommHintWid->updateWithMessage(tr("Miracast disconnected")); slotExitMircast(); } break; default: break; } } void Platform_MainWindow::slotExitMircast() { exitMircast(); emit frameMenuEnable(true); emit playSpeedMenuEnable(true); emit subtitleMenuEnable(true); emit soundMenuEnable(true); } void Platform_MainWindow::updateGeometry(Platform_CornerEdge edge, QPoint pos) { bool bKeepRatio = engine()->state() != PlayerEngine::CoreState::Idle; QRect oldGeom = frameGeometry(); QRect geom = frameGeometry(); qreal ratio = static_cast(geom.width()) / geom.height(); // disable edges switch (edge) { case Platform_CornerEdge::Platform_BottomEdge: case Platform_CornerEdge::Platform_TopEdge: case Platform_CornerEdge::Platform_LeftEdge: case Platform_CornerEdge::Platform_RightEdge: case Platform_CornerEdge::Platform_NoneEdge: return; default: break; } if (bKeepRatio) { QSize size = engine()->videoSize(); if (size.isEmpty()) { const auto &MovieInfo = engine()->playlist().currentInfo().mi; size = QSize(MovieInfo.width, MovieInfo.height); } ratio = size.width() / static_cast(size.height()); switch (edge) { case Platform_CornerEdge::Platform_TopLeftCorner: geom.setLeft(pos.x()); geom.setTop(static_cast(geom.bottom() - geom.width() / ratio)); break; case Platform_CornerEdge::Platform_BottomLeftCorner: case Platform_CornerEdge::Platform_LeftEdge: geom.setLeft(pos.x()); geom.setHeight(static_cast(geom.width() / ratio)); break; case Platform_CornerEdge::Platform_BottomRightCorner: case Platform_CornerEdge::Platform_RightEdge: geom.setRight(pos.x()); geom.setHeight(static_cast(geom.width() / ratio)); break; case Platform_CornerEdge::Platform_TopRightCorner: case Platform_CornerEdge::Platform_TopEdge: geom.setTop(pos.y()); geom.setWidth(static_cast(geom.height() * ratio)); break; case Platform_CornerEdge::Platform_BottomEdge: geom.setBottom(pos.y()); geom.setWidth(static_cast(geom.height() * ratio)); break; default: break; } } else { switch (edge) { case Platform_CornerEdge::Platform_BottomLeftCorner: geom.setBottomLeft(pos); break; case Platform_CornerEdge::Platform_TopLeftCorner: geom.setTopLeft(pos); break; case Platform_CornerEdge::Platform_LeftEdge: geom.setLeft(pos.x()); break; case Platform_CornerEdge::Platform_BottomRightCorner: geom.setBottomRight(pos); break; case Platform_CornerEdge::Platform_RightEdge: geom.setRight(pos.x()); break; case Platform_CornerEdge::Platform_TopRightCorner: geom.setTopRight(pos); break; case Platform_CornerEdge::Platform_TopEdge: geom.setTop(pos.y()); break; case Platform_CornerEdge::Platform_BottomEdge: geom.setBottom(pos.y()); break; default: break; } } QSize min = minimumSize(); if (oldGeom.width() <= min.width() && geom.left() > oldGeom.left()) { geom.setLeft(oldGeom.left()); } if (oldGeom.height() <= min.height() && geom.top() > oldGeom.top()) { geom.setTop(oldGeom.top()); } geom.setWidth(qMax(geom.width(), min.width())); geom.setHeight(qMax(geom.height(), min.height())); updateContentGeometry(geom); updateGeometryNotification(geom.size()); } void Platform_MainWindow::setPresenter(Presenter *pPresenter) { m_pPresenter = pPresenter; m_pPresenter->slotvolumeChanged(); } int Platform_MainWindow::getDisplayVolume() { return m_nDisplayVolume; } bool Platform_MainWindow::getMiniMode() { return m_bMiniMode; } Platform_MainWindow::~Platform_MainWindow() { qInfo() << __func__; //Do not enter CloseEvent when exiting from the title bar menu, so add the save function here //powered by xxxxp if (Settings::get().isSet(Settings::ResumeFromLast)) { int nCur = 0; nCur = m_pEngine->playlist().current(); if (nCur >= 0) { Settings::get().setInternalOption("playlist_pos", nCur); } } m_pEngine->savePlaybackPosition(); if (m_pEventListener) { this->windowHandle()->removeEventFilter(m_pEventListener); delete m_pEventListener; m_pEventListener = nullptr; } disconnect(m_pEngine, 0, 0, 0); disconnect(&m_pEngine->playlist(), 0, 0, 0); if (m_nLastCookie > 0) { utils::UnInhibitStandby(m_nLastCookie); qInfo() << "uninhibit cookie" << m_nLastCookie; m_nLastCookie = 0; } if (m_nPowerCookie > 0) { utils::UnInhibitPower(m_nPowerCookie); m_nPowerCookie = 0; } delete m_pEngine; m_pEngine = nullptr; m_diskCheckThread.stop(); ThreadPool::instance()->quitAll(); #ifdef USE_DXCB if (_evm) { disconnect(_evm, 0, 0, 0); delete _evm; } #endif if (m_pShortcutViewProcess) { m_pShortcutViewProcess->deleteLater(); m_pShortcutViewProcess = nullptr; } } #include "platform_mainwindow.moc" deepin-movie-reborn-5.15.10/src/common/platform/platform_mainwindow.h000066400000000000000000000467111473342170300257020ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLATFPRM_MAIN_WINDOW_H #define _DMR_PLATFPRM_MAIN_WINDOW_H #include #include #include #include //#include #include #include #include #include #include #include #include "widgets/titlebar.h" #include "platform/platform_animationlabel.h" #include "diskcheckthread.h" #include "actions.h" #include "online_sub.h" #include "compositing_manager.h" #include "mircastshowwidget.h" class Presenter; namespace Dtk { namespace Widget { class DImageButton; class DSettingsDialog; } } DWIDGET_USE_NAMESPACE class Platform_MainWindowEventListener; namespace dmr { enum Platform_CornerEdge { Platform_TopLeftCorner = 0, Platform_TopEdge = 1, Platform_TopRightCorner = 2, Platform_RightEdge = 3, Platform_BottomRightCorner = 4, Platform_BottomEdge = 5, Platform_BottomLeftCorner = 6, Platform_LeftEdge = 7, Platform_NoneEdge = -1 }; class Platform_ToolboxProxy; class EventMonitor; class Platform_PlaylistWidget; class PlayerEngine; class Platform_NotificationWidget; class Platform_MovieProgressIndicator; class MovieWidget; class Platform_IconButton: public DPushButton { public: explicit Platform_IconButton(QWidget *parent = 0): DPushButton(parent), m_nThemeType(0) {} void setIcon(QIcon icon) { m_icon = icon; DPushButton::setIcon(m_icon); }; void changeTheme(int nThemeType = 0) { m_nThemeType = nThemeType; update(); } protected: void paintEvent(QPaintEvent *pEvent) { QPainter painter(this); QRect backgroundRect = rect(); //QPainterPath bp1; //bp1.addRoundedRect(backgroundRect, 2, 2); painter.setPen(Qt::NoPen); if (m_nThemeType == 1) { painter.setBrush(QBrush(QColor(247, 247, 247, 220))); } else if (m_nThemeType == 2) { painter.setBrush(QBrush(QColor(42, 42, 42, 220))); } else { painter.setBrush(QBrush(QColor(247, 247, 247, 220))); } QPainterPath painterPath; painterPath.addRoundedRect(backgroundRect, 15, 15); painter.drawPath(painterPath); DPushButton::paintEvent(pEvent); }; private: QIcon m_icon; int m_nThemeType; }; class Platform_MessageWindow: public QWidget { Q_OBJECT public: explicit Platform_MessageWindow(QWidget *parent = nullptr): QWidget(parent) { setWindowFlags(Qt::FramelessWindowHint); if (!CompositingManager::get().composited()) { setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); } #if defined (__aarch64__) || defined (__mips__) setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); #endif m_pTimer = new QTimer(this); setFixedHeight(40); QHBoxLayout *mainLayout = new QHBoxLayout; setLayout(mainLayout); mainLayout->setContentsMargins(12, 3, 0, 0); mainLayout->setSpacing(10); m_pIconBtn = new DIconButton(this); m_pTextLabel = new DLabel(this); m_pIconBtn->setFlat(true); m_pIconBtn->setFocusPolicy(Qt::NoFocus); m_pIconBtn->setAttribute(Qt::WA_TransparentForMouseEvents); //宽度太小导致截图失败图表被裁剪 m_pIconBtn->setFixedSize(30, 30); m_pIconBtn->setIconSize(QSize(30, 30)); m_pTextLabel->setWordWrap(true); //DIconButton中icon尺寸与button尺寸不一致,导致图表与问题不对齐 m_pTextLabel->setFixedHeight(25); m_pTextLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); mainLayout->addWidget(m_pIconBtn); mainLayout->addWidget(m_pTextLabel); m_pTimer->setInterval(4000); m_pTimer->setSingleShot(true); connect(m_pTimer, &QTimer::timeout, this, &QWidget::close); } void setIcon(const QIcon &ico) { m_pIconBtn->setIcon(ico); } void setMessage(const QString &str) { m_pTextLabel->setText(str); } protected: void showEvent(QShowEvent *event) { if (m_pTimer) { m_pTimer->start(); } } private: void paintEvent(QPaintEvent *event) override { const float fRadius = 18; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); bool bLight = (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()); QColor color = QColor(37, 37, 37); if (bLight) { color = QColor(247, 247, 247); } #if defined(__arrch64__) || defined(__mips__) painter.fillRect(rect(), color); #else if (!CompositingManager::get().composited()) { painter.fillRect(rect(), color); } else { painter.fillRect(rect(), Qt::transparent); QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.fillPath(painterPath, color); } #endif QWidget::paintEvent(event); } private: QTimer *m_pTimer {nullptr}; DIconButton *m_pIconBtn {nullptr}; DLabel *m_pTextLabel{nullptr}; }; /** * @file 主窗口,负责显示和交互 */ class Platform_MainWindow: public DMainWindow { Q_OBJECT Q_PROPERTY(bool inited READ inited WRITE setInit NOTIFY initChanged) signals: /** * @brief dxcb下窗口激活信号 */ void windowEntered(); /** * @brief dxcb下窗口失去焦点信号 */ void windowLeaved(); /** * @brief 播放状态改变信号 */ void initChanged(); /** * @brief 画面菜单是否可用信号 */ void frameMenuEnable(bool); /** * @brief 播放速度菜单是否可用信号 */ void playSpeedMenuEnable(bool); /** * @brief 字幕菜单是否可用信号 */ void subtitleMenuEnable(bool); /** * @brief soundMenuEnable 声音字幕是否可用信号 */ void soundMenuEnable(bool); /** * @brief 窗口特效变化信号 */ void WMChanged(bool isWM); public: explicit Platform_MainWindow(QWidget *parent = 0); ~Platform_MainWindow(); /** * @brief 返回窗口播放状态 */ bool inited() const { return m_bInited; } /** * @brief 返回播放引擎对象 * @return 播放引擎指针 */ PlayerEngine *engine() { return m_pEngine; } /** * @brief 返回工具栏对象 * @return 工具栏指针 */ Platform_ToolboxProxy *toolbox() { return m_pToolbox; } /** * @brief 返回播放列表对象 * @return 播放列表指针 */ Platform_PlaylistWidget *playlist() { return m_pPlaylist; } /** * @brief 用于测试触屏效果 */ void setTouched(bool bTouched) { m_bIsTouch = bTouched; } /** * @brief 判断鼠标是否在窗口内 * @param 当前鼠标焦点 * @return 是否在窗口内 */ bool judgeMouseInWindow(QPoint pos); /** * @brief 处理菜单事件 * @param 菜单项id,表明菜单功能 * @param 是否是鼠标操作 * @param 菜单项带的参数 * @param 是否是快捷键 */ void requestAction(ActionFactory::ActionKind, bool bFromUI = false, QList args = {}, bool bShortcut = false); bool insideResizeArea(const QPoint &globalPos); QMargins dragMargins() const; void capturedMousePressEvent(QMouseEvent *pEvent); void capturedMouseReleaseEvent(QMouseEvent *pEvent); void capturedKeyEvent(QKeyEvent *pEvent); void syncStaysOnTop(); void updateGeometryNotification(const QSize &size); void updateContentGeometry(const QRect &rect); static QString lastOpenedPath(); void reflectActionToUI(ActionFactory::ActionKind); Platform_NotificationWidget *get_nwComm(); /** * @brief 在读取光盘的时候,直接把光盘挂载点的路径加入到播放列表中 */ bool addCdromPath(); /** * @brief 初始化播放列表 */ void loadPlayList(); void setOpenFiles(QStringList &); /** * @brief 平板模式下视频加载路径 */ QString padLoadPath(); #ifdef USE_TEST void testCdrom(); void setCurrentHwdec(QString); #endif void updateGeometry(Platform_CornerEdge edge, QPoint pos); void setPresenter(Presenter *); /** * @brief 获取播放音量 * @return 播放音量 */ int getDisplayVolume(); /** * @brief getMiniMode 获取迷你模式状态 * @return 返回窗口是否为迷你模式 */ bool getMiniMode(); public slots: /** * @brief 根据url地址播放影片 * @param 影片路径 */ void play(const QList &listFiles); /** * @brief 该函数主要设置 m_pToolbox 和 m_pPlaylist 的Geometry,在(初始化)、(紧凑/正常终模式之间切换时)以及(全屏/非全屏模式之间切换时)调用 */ void updateProxyGeometry(); void suspendToolsWindow(); void resumeToolsWindow(); void checkOnlineState(const bool bIsOnline); void checkOnlineSubtitle(const OnlineSubtitle::FailReason reason); void checkErrorMpvLogsChanged(const QString sPrefix, const QString sText); void checkWarningMpvLogsChanged(const QString sPrefix, const QString sText); void slotdefaultplaymodechanged(const QString &sKey, const QVariant &value); /** * @brief 设置解码模式 */ void onSetDecodeModel(const QString &key, const QVariant &value); /** * @brief 刷新解码模式 */ void onRefreshDecode(); void syncPostion(); /** * @brief 设置窗口顶层 */ void my_setStayOnTop(const QWidget *pWidget, bool bOn); void slotmousePressTimerTimeOut(); /** * @brief 播放引擎状态改变 */ void slotPlayerStateChanged(); /** * @brief 窗口焦点改变 */ void slotFocusWindowChanged(); /** * @brief 文件加载成功后做的后续操作 */ void slotFileLoaded(); /** * @brief 显示是否在缓冲中 */ void slotUrlpause(bool bStatus); /** * @brief 根据字体大小改变显示 */ void slotFontChanged(const QFont &font); /** * @brief 改变静音状态 */ void slotMuteChanged(bool bMute); /** * @brief 改变硬解码模式 */ //void slotAwaacelModeChanged(const QString &sKey, const QVariant &value); /** * @brief 音量改变槽函数 */ void slotVolumeChanged(int nVolume); void slotWMChanged(); /** * @brief slotUpdateMircastState 更新投屏状态槽函数 * @param state 投屏状态 */ void slotUpdateMircastState(int state, QString msg); /** * @brief slotExitMircast 退出投屏槽函数 */ void slotExitMircast(); protected: void showEvent(QShowEvent *pEvent) override; void hideEvent(QHideEvent *pEvent) override; void closeEvent(QCloseEvent *pEvent) override; void resizeEvent(QResizeEvent *pEvent) override; void mouseMoveEvent(QMouseEvent *pEvent) override; void mousePressEvent(QMouseEvent *pEvent) override; void mouseDoubleClickEvent(QMouseEvent *pEvent) override; void mouseReleaseEvent(QMouseEvent *pEvent) override; void focusInEvent(QFocusEvent *pEvent) override; void wheelEvent(QWheelEvent *pEvent) override; void keyPressEvent(QKeyEvent *pEvent) override; void keyReleaseEvent(QKeyEvent *pEvent) override; void moveEvent(QMoveEvent *ev) override; void contextMenuEvent(QContextMenuEvent *pEvent) override; void paintEvent(QPaintEvent *pEvent) override; void dragEnterEvent(QDragEnterEvent *pEvent) override; void dragMoveEvent(QDragMoveEvent *pEvent) override; void dropEvent(QDropEvent *pEvent) override; bool event(QEvent *pEvent) override; void leaveEvent(QEvent *pEvent) override; protected slots: void setInit(bool bInit); void menuItemInvoked(QAction *pAction); #ifdef USE_DXCB void onApplicationStateChanged(Qt::ApplicationState e); #endif void onBindingsChanged(); void updateActionsState(); void animatePlayState(); void resizeByConstraints(bool bForceCentered = false); void onWindowStateChanged(); void miniButtonClicked(const QString &sId); void startBurstShooting(); void onBurstScreenshot(const QImage &imgFrame, qint64 timestamp); void delayedMouseReleaseHandler(); #ifdef USE_DXCB void onMonitorButtonPressed(int nX, int nY); void onMonitorMotionNotify(int nX, int nY); _miniPlayBtn void onMonitorButtonReleased(int nX, int nY); void updateShadow(); #endif void diskRemoved(QString sDiskName); void sleepStateChanged(bool bSleep); void lockStateChanged(bool bLock); /** * @brief 响应锁屏dbus信号 */ void onSysLockState(QString serviceName, QVariantMap key2value, QStringList); void slotProperChanged(QString, QVariantMap key2value, QStringList); void slotUnsupported(); void slotInvalidFile(QString strFileName); private: void initMember(); void setupTitlebar(); void handleSettings(DSettingsDialog *); DSettingsDialog *initSettings(); void updateSizeConstraints(); void toggleUIMode(); bool insideToolsArea(const QPoint &pos); void switchTheme(); bool isActionAllowed(ActionFactory::ActionKind kd, bool bFromUI, bool bIsShortcut); QString probeCdromDevice(); void updateWindowTitle(); void prepareSplashImages(); void loadWindowState(); void subtitleMatchVideo(const QString &sFileName); void defaultplaymodeinit(); /** * @brief 解码初始化 */ void decodeInit(); void readSinkInputPath(); void setAudioVolume(int); void setMusicMuted(bool bMuted); void popupAdapter(QIcon, QString); //void setHwaccelMode(const QVariant &value = -1); //Limit video to mini mode size void LimitWindowize(); void mipsShowFullScreen(); //hide pop windows when dragging window void hidePopWindow(); void adjustPlaybackSpeed(ActionFactory::ActionKind); void setPlaySpeedMenuChecked(ActionFactory::ActionKind); void setPlaySpeedMenuUnchecked(); void setMusicShortKeyState(bool bState); /** * @brief mircastSuccess 投屏成功更新界面 */ void mircastSuccess(QString name); void exitMircast(); private: Platform_MessageWindow *m_pPopupWid; ///截图提示窗口 QLabel *m_pFullScreenTimeLable; ///全屏时右上角的影片进度 QHBoxLayout *m_pFullScreenTimeLayout; ///右上角的影片进度框布局器 Titlebar *m_pTitlebar; ///标题栏 Platform_ToolboxProxy *m_pToolbox; ///工具栏 Platform_PlaylistWidget *m_pPlaylist; ///播放列表 PlayerEngine *m_pEngine; ///播放引擎 Platform_AnimationLabel *m_pAnimationlable; ///点击暂停和播放时动画 Platform_MovieProgressIndicator *m_pProgIndicator; ///全屏时右上角的系统时间 QList> m_listBurstShoots; ///存储连拍截图 bool m_bInBurstShootMode; ///是否处于截图状态 bool m_bPausedBeforeBurst; ///截图时暂停播放 DIconButton *m_pMiniPlayBtn; ///迷你模式播放按钮 DIconButton *m_pMiniCloseBtn; ///迷你模式关闭按钮 DIconButton *m_pMiniQuitMiniBtn; ///退出迷你模式按钮 QImage m_imgBgDark; QImage m_imgBgLight; bool m_bMiniMode; ///记录迷你模式 QRect m_lastRectInNormalMode; /// used to restore to recent geometry when quit fullscreen or minVolumeMonitoringi mode bool m_bInited; /// the first time a play happens, we consider it inited. EventMonitor *m_pEventMonitor; ///x11事件处理器 bool m_bMovieSwitchedInFsOrMaxed; /// track if next/prev is triggered in fs/maximized mode bool m_bDelayedResizeByConstraint; bool m_bWindowAbove; ///是否是置顶窗口 bool m_bMouseMoved; ///鼠标是否按下移动 bool m_bMousePressed; ///鼠标是否安下 double m_dPlaySpeed; ///当前播放速度 bool m_bQuitfullscreenflag; QPoint m_posMouseOrigin; ///记录前一次鼠标移动点 QPoint m_pressPoint; ///记录当前鼠标按下时的点 bool m_bStartMini; ///开始进入迷你模式 bool m_bStateInLock; ///锁屏时播放状态 bool m_bStartSleep; ///是否进入休眠状态 bool m_bStartMove; ///窗口是否开始移动 enum StateBeforeEnterMiniMode { SBEM_None = 0x0, SBEM_Above = 0x01, SBEM_Fullscreen = 0x02, SBEM_PlaylistOpened = 0x04, SBEM_Maximized = 0x08, }; int m_nStateBeforeMiniMode; Qt::WindowStates m_lastWindowState; uint32_t m_nLastCookie; uint32_t m_nPowerCookie; Platform_MainWindowEventListener *m_pEventListener; Platform_NotificationWidget *m_pDVDHintWid; ///dvd读取提示 Platform_NotificationWidget *m_pCommHintWid; ///窗口左上角提示 QTimer m_autoHideTimer; QTimer m_delayedMouseReleaseTimer; QUrl m_dvdUrl; ///播放dvd的url QProcess *m_pShortcutViewProcess; int m_nDisplayVolume; ///记录播放音量 bool m_bIsFree; ///播放器是否空闲,和IDel的定义不同 static int m_platform_nRetryTimes; ///播放失败后重试次数 //add by heyi 解决触屏右键菜单bug int m_nLastPressX; ///左键按下时保存的点 int m_nLastPressY; ///左键按下时保存的点 bool m_bIsTouch; ///是否是触摸屏按下 QTimer m_mousePressTimer; Diskcheckthread m_diskCheckThread; QStringList m_listOpenFiles; QString m_sCurrentHwdec; ///当前的硬解码模式 bool m_bProgressChanged; ///进度条是否被拖动 bool m_bLastIsTouch; bool m_bTouchChangeVolume; ///是否触发了触屏改变音量 int m_iAngleDelta; ///鼠标滚轮滚动的距离 bool m_bStartAnimation; ///是否开始动画,如果开始不允许做其他操作 QDBusInterface *m_pDBus; Presenter *m_pPresenter; MovieWidget *m_pMovieWidget; MircastShowWidget *m_pMircastShowWidget; ///投屏展示界面 qint64 m_nFullscreenTime; ///全屏操作间隔时间 QDBusInterface *m_pWMDBus {nullptr}; ///窗口特效dbus接口 bool m_bIsWM {true}; ///是否开启窗口特效 bool m_bMaximized; ///全屏前最大化窗口记录 bool m_bLocked{true}; DSettingsDialog *m_pDSettingDilog{nullptr}; }; }; #endif /* ifndef _DMR_PLATFPRM_MAIN_WINDOW_H */ deepin-movie-reborn-5.15.10/src/common/platform/platform_thumbnail_worker.cpp000066400000000000000000000146031473342170300274300ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "platform_thumbnail_worker.h" #include "player_engine.h" #include #include #include #include #include "compositing_manager.h" #include "sysutils.h" #define SIZE_THRESHOLD (10 * 1<<20) namespace dmr { std::atomic Platform_ThumbnailWorker::m_instance(nullptr); QMutex Platform_ThumbnailWorker::m_instLock; QMutex Platform_ThumbnailWorker::m_thumbLock; QWaitCondition Platform_ThumbnailWorker::m_cond; Platform_ThumbnailWorker::~Platform_ThumbnailWorker() { free(m_pCharTime); if (m_video_thumbnailer) { m_mvideo_thumbnailer_destroy(m_video_thumbnailer); } } Platform_ThumbnailWorker &Platform_ThumbnailWorker::get() { if (m_instance == nullptr) { QMutexLocker lock(&m_instLock); m_instance = new Platform_ThumbnailWorker; if(CompositingManager::get().platform() != Platform::Mips) { (*m_instance).start(); } } return *m_instance; } bool Platform_ThumbnailWorker::isThumbGenerated(const QUrl &url, int secs) { QMutexLocker lock(&m_thumbLock); if (!_cache.contains(url)) return false; const auto &l = _cache[url]; return l.contains(secs); } QPixmap Platform_ThumbnailWorker::getThumb(const QUrl &url, int secs) { QMutexLocker lock(&m_thumbLock); QPixmap pm; if (_cache.contains(url)) { pm = _cache[url].value(secs); } return pm; } void Platform_ThumbnailWorker::setPlayerEngine(PlayerEngine *pPlayerEngline) { _engine = pPlayerEngline; } void Platform_ThumbnailWorker::requestThumb(const QUrl &url, int secs) { if(CompositingManager::get().platform() != Platform::Mips) { if (m_thumbLock.tryLock()) { _wq.push_front(qMakePair(url, secs)); m_cond.wakeOne(); m_thumbLock.unlock(); } } else { runSingle(qMakePair(url, secs)); } } Platform_ThumbnailWorker::Platform_ThumbnailWorker() { initThumb(); m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio(); m_pCharTime = (char *)malloc(20); } void Platform_ThumbnailWorker::initThumb() { QLibrary library(SysUtils::libPath("libffmpegthumbnailer.so")); m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create"); m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy"); m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data"); m_mvideo_thumbnailer_destroy_image_data = (mvideo_thumbnailer_destroy_image_data) library.resolve("video_thumbnailer_destroy_image_data"); m_mvideo_thumbnailer_generate_thumbnail_to_buffer = (mvideo_thumbnailer_generate_thumbnail_to_buffer) library.resolve("video_thumbnailer_generate_thumbnail_to_buffer"); m_video_thumbnailer = m_mvideo_thumbnailer(); if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr || m_video_thumbnailer == nullptr) { return; } } QPixmap Platform_ThumbnailWorker::genThumb(const QUrl &url, int secs) { auto dpr = qApp->devicePixelRatio(); QPixmap pm; pm.setDevicePixelRatio(dpr); if (m_image_data == nullptr) { m_image_data = m_mvideo_thumbnailer_create_image_data(); } QTime d(0, 0, 0); d = d.addSecs(secs); strcpy(m_pCharTime, d.toString("hh:mm:ss").toLatin1().data()); m_video_thumbnailer->seek_time = m_pCharTime; auto file = QFileInfo(url.toLocalFile()).absoluteFilePath(); try { m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, file.toUtf8().data(), m_image_data); auto img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); pm = QPixmap::fromImage(img.scaled(thumbSize() * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)); pm.setDevicePixelRatio(dpr); } catch (const std::logic_error &e) { } m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; return pm; } //cppcheck 误报 void Platform_ThumbnailWorker::run() { setPriority(QThread::IdlePriority); while (!_quit.load()) { QPair w; { QMutexLocker lock(&m_thumbLock); while (_wq.isEmpty() && !_quit.load()) { m_cond.wait(lock.mutex(), 40); } if (!_wq.isEmpty()) { w = _wq.takeFirst(); _wq.clear(); } } if (_quit.load()) break; { QMutexLocker lock(&m_thumbLock); //TODO: optimize: need a lru map if (_cacheSize > SIZE_THRESHOLD) { qInfo() << "thumb cache size exceeds maximum, clean up"; _cache.clear(); _cacheSize = 0; } } if (!isThumbGenerated(w.first, w.second)) { auto pm = genThumb(w.first, w.second); QMutexLocker lock(&m_thumbLock); _cache[w.first].insert(w.second, pm); _cacheSize += pm.width() * pm.height() * (pm.hasAlpha() ? 4 : 3); QTime d(0, 0, 0); d = d.addSecs(w.second); qInfo() << "thumb for " << w.first << d.toString("hh:mm:ss"); } emit thumbGenerated(w.first, w.second); } _wq.clear(); } void Platform_ThumbnailWorker::runSingle(QPair w) { if (_cacheSize > SIZE_THRESHOLD) { qInfo() << "thumb cache size exceeds maximum, clean up"; _cache.clear(); _cacheSize = 0; } if (!isThumbGenerated(w.first, w.second)) { auto pm = genThumb(w.first, w.second); QMutexLocker lock(&m_thumbLock); _cache[w.first].insert(w.second, pm); _cacheSize += pm.width() * pm.height() * (pm.hasAlpha() ? 4 : 3); QTime d(0, 0, 0); d = d.addSecs(w.second); qInfo() << "thumb for " << w.first << d.toString("hh:mm:ss"); } emit thumbGenerated(w.first, w.second); } } deepin-movie-reborn-5.15.10/src/common/platform/platform_thumbnail_worker.h000066400000000000000000000050421473342170300270720ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_Platform_THUMBNAIL_WORKER_H #define _DMR_Platform_THUMBNAIL_WORKER_H #include #include #include #include typedef video_thumbnailer *(*mvideo_thumbnailer)(); typedef void (*mvideo_thumbnailer_destroy)(video_thumbnailer *thumbnailer); /* create image_data structure */ typedef image_data *(*mvideo_thumbnailer_create_image_data)(void); /* destroy image_data structure */ typedef void (*mvideo_thumbnailer_destroy_image_data)(image_data *data); typedef int (*mvideo_thumbnailer_generate_thumbnail_to_buffer)(video_thumbnailer *thumbnailer, const char *movie_filename, image_data *generated_image_data); namespace dmr { //using namespace ffmpegthumbnailer; class PlayerEngine; class Platform_ThumbnailWorker: public QThread { Q_OBJECT public: ~Platform_ThumbnailWorker(); static Platform_ThumbnailWorker &get(); // expected size for ui static QSize thumbSize() { return {178, 101}; } bool isThumbGenerated(const QUrl &url, int secs); QPixmap getThumb(const QUrl &url, int secs); void stop() { _quit.store(1); quit(); } void setPlayerEngine(PlayerEngine *pPlayerEngline); public slots: void requestThumb(const QUrl &url, int secs); signals: void thumbGenerated(const QUrl &url, int secs); private: QList> _wq; QHash> _cache; QAtomicInt _quit{0}; qint64 _cacheSize {0}; video_thumbnailer *m_video_thumbnailer = nullptr; image_data *m_image_data = nullptr; PlayerEngine *_engine {nullptr}; mvideo_thumbnailer m_mvideo_thumbnailer = nullptr; mvideo_thumbnailer_destroy m_mvideo_thumbnailer_destroy = nullptr; mvideo_thumbnailer_create_image_data m_mvideo_thumbnailer_create_image_data = nullptr; mvideo_thumbnailer_destroy_image_data m_mvideo_thumbnailer_destroy_image_data = nullptr; mvideo_thumbnailer_generate_thumbnail_to_buffer m_mvideo_thumbnailer_generate_thumbnail_to_buffer = nullptr; char *m_pCharTime; Platform_ThumbnailWorker(); void initThumb(); void run() override; void runSingle(QPair w); QPixmap genThumb(const QUrl &url, int secs); private: static std::atomic m_instance; static QMutex m_instLock; static QMutex m_thumbLock; static QWaitCondition m_cond; }; } #endif /* ifndef _DMR_Platform_THUMBNAIL_WORKER_H */ deepin-movie-reborn-5.15.10/src/common/settings_translation.cpp000066400000000000000000000101331473342170300245740ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include void GenerateSettingTranslate() { auto base_play_addsimilarText = QObject::tr("Auto add similar files to play"); auto base_play_emptylistText = QObject::tr("Clear playlist when exit"); auto base_play_showthumbnailmode = QObject::tr("Show thumbnails in progress bar"); auto base_play_mousepreviewText = QObject::tr("Show video preview on mouseover"); auto base_play_multiinstanceText = QObject::tr("Open a new player for each file played"); auto base_play_pauseonminText = QObject::tr("Pause when minimized"); auto base_play_resumelastText = QObject::tr("Remember playback position"); auto base_play_defaultplaymode = QObject::tr("Default play mode"); auto base_screenshot_locationName = QObject::tr("Path"); auto group_baseName = QObject::tr("Basic"); auto group_base_playName = QObject::tr("Play"); auto group_base_screenshotName = QObject::tr("Screenshot"); auto group_shortcutsName = QObject::tr("Shortcuts"); auto group_shortcuts_fileName = QObject::tr("File"); auto group_shortcuts_frame_soundName = QObject::tr("Frame/Sound"); auto group_shortcuts_playName = QObject::tr("Playback"); auto group_shortcuts_screenshotName = QObject::tr("Screenshot"); auto group_shortcuts_subName = QObject::tr("Subtitle"); auto group_subtitleName = QObject::tr("Subtitle"); auto group_subtitle_fontName = QObject::tr("Font Style"); auto reset_button_name = QObject::tr("Restore Defaults"); auto shortcuts_file_open_fileName = QObject::tr("Open file"); auto shortcuts_file_playlist_nextName = QObject::tr("Open next"); auto shortcuts_file_playlist_prevName = QObject::tr("Open previous"); auto shortcuts_frame_sound_miniName = QObject::tr("Mini mode"); auto shortcuts_frame_sound_muteName = QObject::tr("Mute"); auto shortcuts_frame_sound_next_frameName = QObject::tr("Next frame"); auto shortcuts_frame_sound_previous_frameName = QObject::tr("Previous frame"); auto shortcuts_frame_sound_vol_downName = QObject::tr("Volume down"); auto shortcuts_frame_sound_vol_upName = QObject::tr("Volume up"); auto shortcuts_play_accelName = QObject::tr("Speed up"); auto shortcuts_play_decelName = QObject::tr("Speed down"); auto shortcuts_play_fullscreenName = QObject::tr("Fullscreen"); auto shortcuts_play_pause_playName = QObject::tr("Pause/Play"); auto shortcuts_play_playlistName = QObject::tr("Playlist"); auto shortcuts_play_resetName = QObject::tr("Reset speed"); auto shortcuts_play_deleteOne = QObject::tr("Delete from playlist"); auto shortcuts_play_movieInfo = QObject::tr("Film info"); auto shortcuts_play_seek_backwardName = QObject::tr("Rewind"); auto shortcuts_play_seek_forwardName = QObject::tr("Forward"); auto shortcuts_screenshot_burst_screenshotName = QObject::tr("Burst shooting"); auto shortcuts_screenshot_screenshotName = QObject::tr("Film screenshot"); auto shortcuts_sub_sub_backwardName = QObject::tr("0.5s backward"); auto shortcuts_sub_sub_forwardName = QObject::tr("0.5s forward"); auto subtitle_font_familyName = QObject::tr("Font"); auto subtitle_font_sizeName = QObject::tr("Size"); auto group_shortcuts_fullscreen = QObject::tr("Exit fullscreen/mini mode"); auto group_shortcuts_help = QObject::tr("Help"); auto group_shortcuts_showshortcuts = QObject::tr("Display shortcuts"); auto group_settings = QObject::tr("Settings"); auto group_decoding = QObject::tr("Decoding"); auto group_decoding_auto = QObject::tr("Auto select (Recommended)"); auto group_decoding_hardware = QObject::tr("Hardware decoding"); auto group_decoding_software = QObject::tr("Software decoding"); auto group_decoding_customize = QObject::tr("Customize"); auto group_customize_Decodemode = QObject::tr("Decode mode"); auto group_customize_Videoout = QObject::tr("Video out"); auto group_effectmode_Effectmode = QObject::tr("Rendering engine"); } deepin-movie-reborn-5.15.10/src/common/shortcut_manager.cpp000066400000000000000000000211571473342170300236730ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "shortcut_manager.h" #include "dmr_settings.h" #include #include #include namespace dmr { using namespace Dtk::Core; static ShortcutManager *_shortcutManager = nullptr; ShortcutManager &ShortcutManager::get() { if (!_shortcutManager) { _shortcutManager = new ShortcutManager(); } return *_shortcutManager; } ShortcutManager::~ShortcutManager() { } ShortcutManager::ShortcutManager() : QObject(nullptr), _keyToAction({ {"pause_play", ActionFactory::ActionKind::TogglePause}, {"seek_forward", ActionFactory::ActionKind::SeekForward}, {"seek_forward_large", ActionFactory::ActionKind::SeekForwardLarge}, {"seek_backward", ActionFactory::ActionKind::SeekBackward}, {"seek_backward_large", ActionFactory::ActionKind::SeekBackwardLarge}, {"fullscreen", ActionFactory::ActionKind::ToggleFullscreen}, {"exitfullscreen", ActionFactory::ActionKind::QuitFullscreen}, {"playlist", ActionFactory::ActionKind::TogglePlaylist}, {"accel", ActionFactory::ActionKind::AccelPlayback}, {"decel", ActionFactory::ActionKind::DecelPlayback}, {"reset", ActionFactory::ActionKind::ResetPlayback}, {"delete_from_playlist", ActionFactory::ActionKind::PlaylistRemoveItem}, {"movie_info", ActionFactory::ActionKind::MovieInfo}, {"mini", ActionFactory::ActionKind::ToggleMiniMode}, {"vol_up", ActionFactory::ActionKind::VolumeUp}, {"vol_down", ActionFactory::ActionKind::VolumeDown}, {"mute", ActionFactory::ActionKind::ToggleMute}, {"open_file", ActionFactory::ActionKind::OpenFileList}, {"playlist_next", ActionFactory::ActionKind::GotoPlaylistNext}, {"playlist_prev", ActionFactory::ActionKind::GotoPlaylistPrev}, {"sub_forward", ActionFactory::ActionKind::SubForward}, {"sub_backward", ActionFactory::ActionKind::SubDelay}, {"screenshot", ActionFactory::ActionKind::Screenshot}, {"burst_screenshot", ActionFactory::ActionKind::BurstScreenshot}, {"next_frame", ActionFactory::ActionKind::NextFrame}, {"previous_frame", ActionFactory::ActionKind::PreviousFrame}, }) { connect(&Settings::get(), &Settings::shortcutsChanged, [ = ](QString sk, const QVariant & val) { if (sk.endsWith(".enable")) { auto grp_key = sk.left(sk.lastIndexOf('.')); qInfo() << "update group binding" << grp_key; QPointer shortcuts = Settings::get().shortcuts(); auto grps = shortcuts->childGroups(); auto grp_ptr = std::find_if(grps.begin(), grps.end(), [ = ](GroupPtr grp) { return grp->key() == grp_key; }); toggleGroupShortcuts(*grp_ptr, val.toBool()); emit bindingsChanged(); return; } sk.remove(0, sk.lastIndexOf('.') + 1); qInfo() << "update binding" << sk << QKeySequence(val.toStringList().at(0)); QString strKey = QKeySequence(val.toStringList().at(0)).toString(); if (strKey.contains("Return")) { strKey = QString("%1Return").arg(strKey.remove("Return")); _map[strKey] = _keyToAction[sk]; if (QString("Return") == strKey) { _map.remove(QString("Enter")); } qInfo() << val << QKeySequence(strKey) << strKey; } else if (strKey.contains("Num+Enter")) { strKey = QString("%1Enter").arg(strKey.remove("Num+Enter")); _map[strKey] = _keyToAction[sk]; if (QString("Enter") == strKey) { _map.remove(QString("Return")); } qInfo() << val << QKeySequence(strKey) << strKey; } else { _map.remove(_map.key(_keyToAction[sk])); _map[QKeySequence(val.toStringList().at(0))] = _keyToAction[sk]; } emit bindingsChanged(); }); } void ShortcutManager::buildBindings() { buildBindingsFromSettings(); emit bindingsChanged(); } void ShortcutManager::toggleGroupShortcuts(GroupPtr grp, bool on) { auto sub = grp->childOptions(); std::for_each(sub.begin(), sub.end(), [ = ](OptionPtr opt) { if (opt->viewType() != "shortcut") return; QString sk = opt->key(); sk.remove(0, sk.lastIndexOf('.') + 1); QString strKey = QKeySequence(opt->value().toStringList().at(0)).toString(); if (strKey.contains("Return")) { strKey = QString("%1Return").arg(strKey.remove("Return")); _map[strKey] = _keyToAction[sk]; qInfo() << opt->name() << QKeySequence(strKey) << strKey; } else if (strKey.contains("Num+Enter")) { strKey = QString("%1Enter").arg(strKey.remove("Num+Enter")); _map[strKey] = _keyToAction[sk]; qInfo() << opt->name() << QKeySequence(strKey) << strKey; } if (on) { _map[strKey] = _keyToAction[sk]; _map[QKeySequence(opt->value().toStringList().at(0))] = _keyToAction[sk]; } else { _map.remove(QKeySequence(opt->value().toStringList().at(0))); } }); } void ShortcutManager::buildBindingsFromSettings() { _map.clear(); _map.insert(QKeySequence(Qt::Key_Slash + Qt::CTRL + Qt::SHIFT), ActionFactory::ViewShortcut); QPointer shortcuts = Settings::get().shortcuts(); auto subgroups = shortcuts->childGroups(); std::for_each(subgroups.begin(), subgroups.end(), [ = ](GroupPtr grp) { auto enabled = Settings::get().settings()->option(grp->key() + ".enable"); qInfo() << grp->name() << enabled->value(); Q_ASSERT(enabled && enabled->viewType() == "checkbox"); if (!enabled->value().toBool()) return; toggleGroupShortcuts(grp, true); }); } QString ShortcutManager::toJson() { QJsonObject shortcutObj; QJsonArray jsonGroups; QPointer shortcuts = Settings::get().shortcuts(); auto subgroups = shortcuts->childGroups(); std::for_each(subgroups.begin(), subgroups.end(), [&](GroupPtr grp) { qInfo() << grp->name(); QJsonObject jsonGroup; jsonGroup.insert("groupName", qApp->translate("QObject", grp->name().toUtf8().data())); QJsonArray jsonItems; auto sub = grp->childOptions(); std::for_each(sub.begin(), sub.end(), [&](OptionPtr opt) { if (opt->viewType() != "shortcut") return; QStringList keyseqs = opt->value().toStringList(); QJsonObject jsonItem; jsonItem.insert("name", qApp->translate("QObject", opt->name().toUtf8().data())); jsonItem.insert("value", QKeySequence(opt->value().toStringList().at(0)).toString(QKeySequence::PortableText)); jsonItems.append(jsonItem); }); jsonGroup.insert("groupItems", jsonItems); jsonGroups.append(jsonGroup); }); QJsonObject jsonGroup; jsonGroup.insert("groupName", qApp->translate("QObject", "Settings")); QJsonArray jsonItems; QJsonObject jsonItem; jsonItem.insert("name", qApp->translate("QObject", "Help")); jsonItem.insert("value", "F1"); jsonItems.append(jsonItem); QJsonObject jsonItem_show; jsonItem.insert("name", qApp->translate("QObject", "Display shortcuts")); jsonItem.insert("value", "Ctrl+Shift+?"); jsonItems.append(jsonItem); jsonGroup.insert("groupItems", jsonItems); jsonGroups.append(jsonGroup); shortcutObj.insert("shortcut", jsonGroups); QJsonDocument doc(shortcutObj); return doc.toJson().data(); } vector ShortcutManager::actionsForBindings() { vector actions; auto p = _map.constBegin(); while (p != _map.constEnd()) { auto *act = new QAction(this); switch (p.value()) { case ActionFactory::ActionKind::SeekForward: case ActionFactory::ActionKind::SeekForwardLarge: case ActionFactory::ActionKind::SeekBackward: case ActionFactory::ActionKind::SeekBackwardLarge: case ActionFactory::ActionKind::VolumeUp: case ActionFactory::ActionKind::VolumeDown: case ActionFactory::ActionKind::AccelPlayback: case ActionFactory::ActionKind::DecelPlayback: act->setAutoRepeat(true); break; default: act->setAutoRepeat(false); break; } act->setShortcut(p.key()); //act->setShortcutContext(Qt::ApplicationShortcut); act->setProperty("kind", p.value()); act->setProperty("origin", "shortcut"); actions.push_back(act); ++p; } return actions; } } deepin-movie-reborn-5.15.10/src/common/shortcut_manager.h000066400000000000000000000023121473342170300233300ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_SHORTCUT_MANAGER #define _DMR_SHORTCUT_MANAGER #include #include #include #include "actions.h" #include #include #include namespace dmr { using namespace std; using BindingMap = QHash; using ActionMap = QHash; // keys comes from profiles, user configurations etc class ShortcutManager: public QObject { Q_OBJECT public: static ShortcutManager& get(); virtual ~ShortcutManager(); BindingMap& map() { return _map; } const BindingMap& map() const { return _map; } vector actionsForBindings(); void buildBindingsFromSettings(); QString toJson(); public slots: void buildBindings(); signals: void bindingsChanged(); private: ShortcutManager(); BindingMap _map; ActionMap _keyToAction; void toggleGroupShortcuts(Dtk::Core::GroupPtr grp, bool on); }; } #endif /* ifndef _DMR_SHORTCUT_MANAGER */ deepin-movie-reborn-5.15.10/src/common/singleton.h000066400000000000000000000011261473342170300217670ustar00rootroot00000000000000// Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include using namespace std; namespace DMovie { template class DSingleton { public: static inline T *instance() { static T* _instance = new T; return _instance; } protected: DSingleton(void) {} ~DSingleton(void) {} DSingleton(const DSingleton &) {} DSingleton &operator= (const DSingleton &) { return *this; } }; } deepin-movie-reborn-5.15.10/src/common/sysutils.cpp000066400000000000000000000020431473342170300222160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "sysutils.h" #include #include #include #include SysUtils::SysUtils() { } bool SysUtils::libExist(const QString &strlib) { // find all library paths by QLibrary QString libName; if (strlib.contains(".so")) libName = strlib.mid(0, strlib.indexOf(".so")); else libName = strlib; QLibrary lib(libName); return lib.load(); } QString SysUtils::libPath(const QString &strlib) { QDir dir; QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); dir.setPath(path); QStringList list = dir.entryList(QStringList() << (strlib + "*"), QDir::NoDotAndDotDot | QDir::Files); //filter name with strlib if (list.contains(strlib)) { return strlib; } else { list.sort(); } if(list.size() > 0) return list.last(); // Qt LibrariesPath 不包含,返回默认名称 return strlib; } deepin-movie-reborn-5.15.10/src/common/sysutils.h000066400000000000000000000011511473342170300216620ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef SYSUTILS_H #define SYSUTILS_H #include /** * @file 系统环境检测 */ class SysUtils { public: SysUtils(); /** * @brief 检查系统是否存在动态库 * @param 动态库名称 * @return 库是否存在 */ static bool libExist(const QString &strlib); /** * @brief 查找动态库真实名 * @param 动态库so名 * @return 库名称 */ static QString libPath(const QString &strlib); }; #endif // SYSUTILS_H deepin-movie-reborn-5.15.10/src/common/threadpool.cpp000066400000000000000000000014731473342170300224660ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "threadpool.h" #include ThreadPool::ThreadPool(QObject *parent) : QObject(parent) { } ThreadPool::~ThreadPool() { quitAll(); } QThread *ThreadPool::newThread() { auto thread = new QThread; // qInfo() << "add <<<<<<<" << thread; m_pool.push_back(thread); return thread; } void ThreadPool::moveToNewThread(QObject *obj) { auto work = newThread(); obj->moveToThread(work); work->start(); } void ThreadPool::quitAll() { for (auto thread : m_pool) { // qInfo() << thread; thread->quit(); thread->wait(2000); } qInfo() << "all thread quit"; } deepin-movie-reborn-5.15.10/src/common/threadpool.h000066400000000000000000000011071473342170300221250ustar00rootroot00000000000000// Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include class ThreadPool : public QObject, public DMovie::DSingleton { Q_OBJECT public: explicit ThreadPool(QObject *parent = 0); ~ThreadPool(); QThread *newThread(); void moveToNewThread(QObject *obj); void quitAll(); private: friend class DMovie::DSingleton; QList m_pool; }; deepin-movie-reborn-5.15.10/src/common/thumbnail_worker.cpp000066400000000000000000000143101473342170300236730ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "thumbnail_worker.h" #include "player_engine.h" #include #include #include #include #include "compositing_manager.h" #include "sysutils.h" #define SIZE_THRESHOLD (10 * 1<<20) namespace dmr { std::atomic ThumbnailWorker::m_instance(nullptr); QMutex ThumbnailWorker::m_instLock; QMutex ThumbnailWorker::m_thumbLock; QWaitCondition ThumbnailWorker::m_cond; ThumbnailWorker::~ThumbnailWorker() { free(m_pCharTime); if (m_video_thumbnailer) { m_mvideo_thumbnailer_destroy(m_video_thumbnailer); } } ThumbnailWorker &ThumbnailWorker::get() { if (m_instance == nullptr) { QMutexLocker lock(&m_instLock); m_instance = new ThumbnailWorker; if(CompositingManager::get().platform() != Platform::Mips) { (*m_instance).start(); } } return *m_instance; } bool ThumbnailWorker::isThumbGenerated(const QUrl &url, int secs) { QMutexLocker lock(&m_thumbLock); if (!_cache.contains(url)) return false; const auto &l = _cache[url]; return l.contains(secs); } QPixmap ThumbnailWorker::getThumb(const QUrl &url, int secs) { QMutexLocker lock(&m_thumbLock); QPixmap pm; if (_cache.contains(url)) { pm = _cache[url].value(secs); } return pm; } void ThumbnailWorker::setPlayerEngine(PlayerEngine *pPlayerEngline) { _engine = pPlayerEngline; } void ThumbnailWorker::requestThumb(const QUrl &url, int secs) { if(CompositingManager::get().platform() != Platform::Mips) { if (m_thumbLock.tryLock()) { _wq.push_front(qMakePair(url, secs)); m_cond.wakeOne(); m_thumbLock.unlock(); } } else { runSingle(qMakePair(url, secs)); } } ThumbnailWorker::ThumbnailWorker() { initThumb(); m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio(); m_pCharTime = (char *)malloc(20); } void ThumbnailWorker::initThumb() { QLibrary library(SysUtils::libPath("libffmpegthumbnailer.so")); m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create"); m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy"); m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data"); m_mvideo_thumbnailer_destroy_image_data = (mvideo_thumbnailer_destroy_image_data) library.resolve("video_thumbnailer_destroy_image_data"); m_mvideo_thumbnailer_generate_thumbnail_to_buffer = (mvideo_thumbnailer_generate_thumbnail_to_buffer) library.resolve("video_thumbnailer_generate_thumbnail_to_buffer"); if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr) { return; } m_video_thumbnailer = m_mvideo_thumbnailer(); } QPixmap ThumbnailWorker::genThumb(const QUrl &url, int secs) { auto dpr = qApp->devicePixelRatio(); QPixmap pm; pm.setDevicePixelRatio(dpr); if (m_image_data == nullptr) { m_image_data = m_mvideo_thumbnailer_create_image_data(); } QTime d(0, 0, 0); d = d.addSecs(secs); //memset(m_pChTime,0,strlen(m_pChTime)); strcpy(m_pCharTime, d.toString("hh:mm:ss").toLatin1().data()); m_video_thumbnailer->seek_time = m_pCharTime; auto file = QFileInfo(url.toLocalFile()).absoluteFilePath(); try { m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, file.toUtf8().data(), m_image_data); auto img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); pm = QPixmap::fromImage(img.scaled(thumbSize() * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)); pm.setDevicePixelRatio(dpr); } catch (const std::logic_error &e) { } m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; return pm; } //cppcheck 误报 void ThumbnailWorker::run() { setPriority(QThread::IdlePriority); while (!_quit.load()) { QPair w; { QMutexLocker lock(&m_thumbLock); while (_wq.isEmpty() && !_quit.load()) { m_cond.wait(lock.mutex(), 40); } if (!_wq.isEmpty()) { w = _wq.takeFirst(); _wq.clear(); } } if (_quit.load()) break; { QMutexLocker lock(&m_thumbLock); //TODO: optimize: need a lru map if (_cacheSize > SIZE_THRESHOLD) { qInfo() << "thumb cache size exceeds maximum, clean up"; _cache.clear(); _cacheSize = 0; } } if (!isThumbGenerated(w.first, w.second)) { auto pm = genThumb(w.first, w.second); QMutexLocker lock(&m_thumbLock); _cache[w.first].insert(w.second, pm); _cacheSize += pm.width() * pm.height() * (pm.hasAlpha() ? 4 : 3); QTime d(0, 0, 0); d = d.addSecs(w.second); qInfo() << "thumb for " << w.first << d.toString("hh:mm:ss"); } emit thumbGenerated(w.first, w.second); } _wq.clear(); } void ThumbnailWorker::runSingle(QPair w) { if (_cacheSize > SIZE_THRESHOLD) { qInfo() << "thumb cache size exceeds maximum, clean up"; _cache.clear(); _cacheSize = 0; } if (!isThumbGenerated(w.first, w.second)) { auto pm = genThumb(w.first, w.second); QMutexLocker lock(&m_thumbLock); _cache[w.first].insert(w.second, pm); _cacheSize += pm.width() * pm.height() * (pm.hasAlpha() ? 4 : 3); QTime d(0, 0, 0); d = d.addSecs(w.second); qInfo() << "thumb for " << w.first << d.toString("hh:mm:ss"); } emit thumbGenerated(w.first, w.second); } } deepin-movie-reborn-5.15.10/src/common/thumbnail_worker.h000066400000000000000000000047321473342170300233470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_THUMBNAIL_WORKER_H #define _DMR_THUMBNAIL_WORKER_H #include #include #include #include typedef video_thumbnailer *(*mvideo_thumbnailer)(); typedef void (*mvideo_thumbnailer_destroy)(video_thumbnailer *thumbnailer); /* create image_data structure */ typedef image_data *(*mvideo_thumbnailer_create_image_data)(void); /* destroy image_data structure */ typedef void (*mvideo_thumbnailer_destroy_image_data)(image_data *data); typedef int (*mvideo_thumbnailer_generate_thumbnail_to_buffer)(video_thumbnailer *thumbnailer, const char *movie_filename, image_data *generated_image_data); namespace dmr { //using namespace ffmpegthumbnailer; class PlayerEngine; class ThumbnailWorker: public QThread { Q_OBJECT public: ~ThumbnailWorker(); static ThumbnailWorker &get(); // expected size for ui static QSize thumbSize() { return {178, 101}; } bool isThumbGenerated(const QUrl &url, int secs); QPixmap getThumb(const QUrl &url, int secs); void stop() { _quit.store(1); quit(); } void setPlayerEngine(PlayerEngine *pPlayerEngline); public slots: void requestThumb(const QUrl &url, int secs); signals: void thumbGenerated(const QUrl &url, int secs); private: QList> _wq; QHash> _cache; QAtomicInt _quit{0}; qint64 _cacheSize {0}; video_thumbnailer *m_video_thumbnailer = nullptr; image_data *m_image_data = nullptr; PlayerEngine *_engine {nullptr}; mvideo_thumbnailer m_mvideo_thumbnailer = nullptr; mvideo_thumbnailer_destroy m_mvideo_thumbnailer_destroy = nullptr; mvideo_thumbnailer_create_image_data m_mvideo_thumbnailer_create_image_data = nullptr; mvideo_thumbnailer_destroy_image_data m_mvideo_thumbnailer_destroy_image_data = nullptr; mvideo_thumbnailer_generate_thumbnail_to_buffer m_mvideo_thumbnailer_generate_thumbnail_to_buffer = nullptr; char *m_pCharTime; ThumbnailWorker(); void initThumb(); void run() override; void runSingle(QPair w); QPixmap genThumb(const QUrl &url, int secs); private: static std::atomic m_instance; static QMutex m_instLock; static QMutex m_thumbLock; static QWaitCondition m_cond; }; } #endif /* ifndef _DMR_THUMBNAIL_WORKER_H */ deepin-movie-reborn-5.15.10/src/common/utility.h000066400000000000000000000045001473342170300214670ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_UTILITY_H #define _DMR_UTILITY_H #include #include #include QT_BEGIN_NAMESPACE class QXcbWindow; QT_END_NAMESPACE typedef uint32_t xcb_atom_t; class Utility { public: enum CornerEdge { TopLeftCorner = 0, TopEdge = 1, TopRightCorner = 2, RightEdge = 3, BottomRightCorner = 4, BottomEdge = 5, BottomLeftCorner = 6, LeftEdge = 7, NoneEdge = -1 }; static xcb_atom_t internAtom(const char *name); static void startWindowSystemMove(quint32 WId); static void cancelWindowMoveResize(quint32 WId); // 在触摸屏下移动窗口时,调用 startWindowSystemMove后,窗管无法grab触摸屏的touch update事件 // 导致窗口无法移动。此处跟deepin-wm配合,使用其它方式通知窗管鼠标位置更新了 static void updateMousePointForWindowMove(quint32 WId, const QPoint &globalPos); static void setFrameExtents(quint32 WId, const QMargins &margins); static void setRectangles(quint32 WId, const QRegion ®ion, bool onlyInput = true); static void setRectangles(quint32 WId, const QVector &rectangles, bool onlyInput = true); static void setShapePath(quint32 WId, const QPainterPath &path, bool onlyInput = true); static void startWindowSystemResize(quint32 WId, CornerEdge cornerEdge, const QPoint &globalPos = QPoint()); static bool setWindowCursor(quint32 WId, CornerEdge ce); static QRegion regionAddMargins(const QRegion ®ion, const QMargins &margins, const QPoint &offset = QPoint(0, 0)); static QByteArray windowProperty(quint32 WId, xcb_atom_t propAtom, xcb_atom_t typeAtom, quint32 len); static QList windowNetWMState(quint32 WId); static void setWindowProperty(quint32 WId, xcb_atom_t propAtom, xcb_atom_t typeAtom, const void *data, quint32 len, uint8_t format = 8); // static void setStayOnTop(const QWidget *widget, bool on); private: static void sendMoveResizeMessage(quint32 WId, uint32_t action, QPoint globalPos = QPoint(), Qt::MouseButton qbutton = Qt::LeftButton); static QVector qregion2XcbRectangles(const QRegion ®ion); }; #endif // _DMR_UTILITY_H deepin-movie-reborn-5.15.10/src/common/utility_x11.cpp000066400000000000000000000263311473342170300225210ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "utility.h" #include #include #include #include #include #include #define _NET_WM_MOVERESIZE_MOVE 8 /* movement only */ #define _NET_WM_MOVERESIZE_CANCEL 11 /* cancel operation */ #define XATOM_MOVE_RESIZE "_NET_WM_MOVERESIZE" #define XDEEPIN_BLUR_REGION "_NET_WM_DEEPIN_BLUR_REGION" #define XDEEPIN_BLUR_REGION_ROUNDED "_NET_WM_DEEPIN_BLUR_REGION_ROUNDED" #define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ #define _NET_WM_STATE_ADD 1 /* add/set property */ #define _NET_WM_STATE_TOGGLE 2 /* toggle property */ const char kAtomNameHidden[] = "_NET_WM_STATE_HIDDEN"; const char kAtomNameFullscreen[] = "_NET_WM_STATE_FULLSCREEN"; const char kAtomNameMaximizedHorz[] = "_NET_WM_STATE_MAXIMIZED_HORZ"; const char kAtomNameMaximizedVert[] = "_NET_WM_STATE_MAXIMIZED_VERT"; const char kAtomNameMoveResize[] = "_NET_WM_MOVERESIZE"; const char kAtomNameWmState[] = "_NET_WM_STATE"; const char kAtomNameWmStateAbove[] = "_NET_WM_STATE_ABOVE"; const char kAtomNameWmStateStaysOnTop[] = "_NET_WM_STATE_STAYS_ON_TOP"; const char kAtomNameWmSkipTaskbar[] = "_NET_WM_STATE_SKIP_TASKBAR"; const char kAtomNameWmSkipPager[] = "_NET_WM_STATE_SKIP_PAGER"; xcb_atom_t Utility::internAtom(const char *name) { if (!name || *name == 0) return XCB_NONE; xcb_intern_atom_cookie_t cookie = xcb_intern_atom(QX11Info::connection(), true, strlen(name), name); xcb_intern_atom_reply_t *reply = xcb_intern_atom_reply(QX11Info::connection(), cookie, 0); if (!reply) return XCB_NONE; xcb_atom_t atom = reply->atom; free(reply); return atom; } void Utility::startWindowSystemMove(quint32 WId) { sendMoveResizeMessage(WId, _NET_WM_MOVERESIZE_MOVE); } void Utility::cancelWindowMoveResize(quint32 WId) { sendMoveResizeMessage(WId, _NET_WM_MOVERESIZE_CANCEL); } void Utility::updateMousePointForWindowMove(quint32 WId, const QPoint &globalPos) { xcb_client_message_event_t xev; xev.response_type = XCB_CLIENT_MESSAGE; xev.type = internAtom("_DEEPIN_MOVE_UPDATE"); xev.window = WId; xev.format = 32; xev.data.data32[0] = globalPos.x(); xev.data.data32[1] = globalPos.y(); xev.data.data32[2] = 0; xev.data.data32[3] = 0; xev.data.data32[4] = 0; xcb_send_event(QX11Info::connection(), false, QX11Info::appRootWindow(), XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY, (const char *)&xev); xcb_flush(QX11Info::connection()); } /*void Utility::setFrameExtents(quint32 WId, const QMargins &margins) { xcb_atom_t frameExtents = internAtom("_GTK_FRAME_EXTENTS"); if (frameExtents == XCB_NONE) { qWarning() << "Failed to create atom with name _GTK_FRAME_EXTENTS"; return; } uint32_t value[4] = { (uint32_t)margins.left(), (uint32_t)margins.right(), (uint32_t)margins.top(), (uint32_t)margins.bottom() }; xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, WId, frameExtents, XCB_ATOM_CARDINAL, 32, 4, value); }*/ void Utility::setRectangles(quint32 WId, const QRegion ®ion, bool onlyInput) { setRectangles(WId, qregion2XcbRectangles(region), onlyInput); } void Utility::setRectangles(quint32 WId, const QVector &rectangles, bool onlyInput) { if (rectangles.isEmpty()) { xcb_shape_mask(QX11Info::connection(), XCB_SHAPE_SO_SET, onlyInput ? XCB_SHAPE_SK_INPUT : XCB_SHAPE_SK_BOUNDING, WId, 0, 0, XCB_NONE); return; } xcb_shape_rectangles(QX11Info::connection(), XCB_SHAPE_SO_SET, onlyInput ? XCB_SHAPE_SK_INPUT : XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_YX_BANDED, WId, 0, 0, rectangles.size(), rectangles.constData()); } /*void Utility::setShapePath(quint32 WId, const QPainterPath &path, bool onlyInput) { if (path.isEmpty()) { return setRectangles(WId, QVector(), onlyInput); } QVector rectangles; foreach(const QPolygonF &polygon, path.toFillPolygons()) { foreach(const QRect &area, QRegion(polygon.toPolygon()).rects()) { xcb_rectangle_t rectangle; rectangle.x = area.x(); rectangle.y = area.y(); rectangle.width = area.width(); rectangle.height = area.height(); rectangles.append(std::move(rectangle)); } } setRectangles(WId, rectangles, onlyInput); }*/ void Utility::sendMoveResizeMessage(quint32 WId, uint32_t action, QPoint globalPos, Qt::MouseButton qbutton) { int xbtn = qbutton == Qt::LeftButton ? XCB_BUTTON_INDEX_1 : qbutton == Qt::RightButton ? XCB_BUTTON_INDEX_3 : XCB_BUTTON_INDEX_ANY; if (globalPos.isNull()) { //QTBUG-76114 //globalPos = QCursor::pos(); xcb_generic_error_t** err = nullptr; xcb_query_pointer_reply_t* p = xcb_query_pointer_reply(QX11Info::connection(), xcb_query_pointer(QX11Info::connection(), QX11Info::appRootWindow(QX11Info::appScreen())), err); if (p && err == nullptr) { globalPos = QPoint(p->root_x, p->root_y); } if (p) { free(p); } } xcb_client_message_event_t xev; xev.response_type = XCB_CLIENT_MESSAGE; xev.type = internAtom(XATOM_MOVE_RESIZE); xev.window = WId; xev.format = 32; xev.data.data32[0] = globalPos.x(); xev.data.data32[1] = globalPos.y(); xev.data.data32[2] = action; xev.data.data32[3] = xbtn; xev.data.data32[4] = 0; xcb_ungrab_pointer(QX11Info::connection(), QX11Info::appTime()); xcb_send_event(QX11Info::connection(), false, QX11Info::appRootWindow(QX11Info::appScreen()), XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY, (const char *)&xev); xcb_flush(QX11Info::connection()); } QVector Utility::qregion2XcbRectangles(const QRegion ®ion) { QVector rectangles; rectangles.reserve(region.rectCount()); for (const QRect &rect : region.rects()) { xcb_rectangle_t r; r.x = rect.x(); r.y = rect.y(); r.width = rect.width(); r.height = rect.height(); rectangles << r; } return rectangles; } /*void Utility::startWindowSystemResize(quint32 WId, CornerEdge cornerEdge, const QPoint &globalPos) { sendMoveResizeMessage(WId, cornerEdge, globalPos); }*/ static xcb_cursor_t CornerEdge2Xcb_cursor_t(Utility::CornerEdge ce) { switch (ce) { case Utility::TopEdge: return XC_top_side; case Utility::TopRightCorner: return XC_top_right_corner; case Utility::RightEdge: return XC_right_side; case Utility::BottomRightCorner: return XC_bottom_right_corner; case Utility::BottomEdge: return XC_bottom_side; case Utility::BottomLeftCorner: return XC_bottom_left_corner; case Utility::LeftEdge: return XC_left_side; case Utility::TopLeftCorner: return XC_top_left_corner; default: return XCB_CURSOR_NONE; } } bool Utility::setWindowCursor(quint32 WId, Utility::CornerEdge ce) { const auto display = QX11Info::display(); Cursor cursor = XCreateFontCursor(display, CornerEdge2Xcb_cursor_t(ce)); if (!cursor) { qWarning() << "[ui]::setWindowCursor() call XCreateFontCursor() failed"; return false; } const int result = XDefineCursor(display, WId, cursor); XFlush(display); return result == Success; } /*QRegion Utility::regionAddMargins(const QRegion ®ion, const QMargins &margins, const QPoint &offset) { QRegion tmp; for (const QRect &rect : region.rects()) { tmp += rect.translated(offset) + margins; } return tmp; }*/ /*QByteArray Utility::windowProperty(quint32 WId, xcb_atom_t propAtom, xcb_atom_t typeAtom, quint32 len) { QByteArray data; xcb_connection_t* conn = QX11Info::connection(); xcb_get_property_cookie_t cookie = xcb_get_property(conn, false, WId, propAtom, typeAtom, 0, len); xcb_generic_error_t* err = nullptr; xcb_get_property_reply_t* reply = xcb_get_property_reply(conn, cookie, &err); if (reply != nullptr) { len = xcb_get_property_value_length(reply); const char* buf = static_cast(xcb_get_property_value(reply)); data.append(buf, len); free(reply); } if (err != nullptr) { qInfo() << "get property error"; free(err); } return data; }*/ /*QList Utility::windowNetWMState(quint32 WId) { QList res; const auto wmStateAtom = XInternAtom(QX11Info::display(), kAtomNameWmState, false); xcb_connection_t* conn = QX11Info::connection(); xcb_get_property_cookie_t cookie = xcb_get_property(conn, false, WId, wmStateAtom, XCB_ATOM_ATOM, 0, 1); xcb_generic_error_t* err = nullptr; xcb_get_property_reply_t* reply = xcb_get_property_reply(conn, cookie, &err); if (reply != nullptr) { auto len = xcb_get_property_value_length(reply); uint32_t *data = static_cast(xcb_get_property_value(reply)); for (int i = 0; i < len; i++) { res.append(data[i]); } free(reply); } if (err != nullptr) { qInfo() << "get property error"; free(err); } return res; }*/ /*void Utility::setWindowProperty(quint32 WId, xcb_atom_t propAtom, xcb_atom_t typeAtom, const void *data, quint32 len, uint8_t format) { xcb_connection_t* conn = QX11Info::connection(); xcb_change_property(conn, XCB_PROP_MODE_REPLACE, WId, propAtom, typeAtom, format, len, data); xcb_flush(conn); }*/ /*void Utility::setStayOnTop(const QWidget *widget, bool on) { Q_ASSERT(widget); const auto display = QX11Info::display(); const auto screen = QX11Info::appScreen(); const auto wmStateAtom = XInternAtom(display, kAtomNameWmState, false); const auto stateAboveAtom = XInternAtom(display, kAtomNameWmStateAbove, false); const auto stateStaysOnTopAtom = XInternAtom(display, kAtomNameWmStateStaysOnTop, false); XEvent xev; memset(&xev, 0, sizeof(xev)); xev.xclient.type = ClientMessage; xev.xclient.message_type = wmStateAtom; xev.xclient.display = display; xev.xclient.window = widget->winId(); xev.xclient.format = 32; xev.xclient.data.l[0] = on ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; xev.xclient.data.l[1] = stateAboveAtom; xev.xclient.data.l[2] = stateStaysOnTopAtom; xev.xclient.data.l[3] = 1; XSendEvent(display, QX11Info::appRootWindow(screen), false, SubstructureRedirectMask | SubstructureNotifyMask, &xev); XFlush(display); }*/ deepin-movie-reborn-5.15.10/src/common/volumemonitoring.cpp000066400000000000000000000064711473342170300237450ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "volumemonitoring.h" #include #include #include #include #include "dbus_adpator.h" #include "dmr_settings.h" #include "dbusutils.h" class VolumeMonitoringPrivate { public: explicit VolumeMonitoringPrivate(VolumeMonitoring *parent) : q_ptr(parent) {} QTimer timer; VolumeMonitoring *q_ptr; Q_DECLARE_PUBLIC(VolumeMonitoring) }; VolumeMonitoring::VolumeMonitoring(QObject *parent) : QObject(parent), d_ptr(new VolumeMonitoringPrivate(this)) { Q_D(VolumeMonitoring); _bOpened = false; connect(&d->timer, SIGNAL(timeout()), this, SLOT(timeoutSlot())); } VolumeMonitoring::~VolumeMonitoring() { stop(); } void VolumeMonitoring::start() { Q_D(VolumeMonitoring); d->timer.start(1000); } void VolumeMonitoring::stop() { Q_D(VolumeMonitoring); d->timer.stop(); } void VolumeMonitoring::timeoutSlot() { QVariant v = DBusUtils::redDBusProperty("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); if (!v.isValid()) return; QList allSinkInputsList = v.value >(); QString sinkInputPath; for (auto curPath : allSinkInputsList) { QVariant nameV = DBusUtils::redDBusProperty("org.deepin.dde.Audio1", curPath.path(), "org.deepin.dde.Audio1.SinkInput", "Name"); QString movieStr = QObject::tr("Movie"); if (!nameV.isValid() || (!nameV.toString().contains( movieStr, Qt::CaseInsensitive) && !nameV.toString().contains("deepin-movie", Qt::CaseInsensitive))) continue; sinkInputPath = curPath.path(); break; } if (sinkInputPath.isEmpty()) return; QDBusInterface ainterface("org.deepin.dde.Audio1", sinkInputPath, "org.deepin.dde.Audio1.SinkInput", QDBusConnection::sessionBus()); if (!ainterface.isValid()) { return ; } //获取音量 QVariant volumeV = DBusUtils::redDBusProperty("org.deepin.dde.Audio1", sinkInputPath, "org.deepin.dde.Audio1.SinkInput", "Volume"); //获取音量 QVariant muteV = DBusUtils::redDBusProperty("org.deepin.dde.Audio1", sinkInputPath, "org.deepin.dde.Audio1.SinkInput", "Mute"); // int temp = volumeV.toDouble(); int volume = static_cast(volumeV.toDouble() * 100); // int volume = (volumeV.toDouble() + 0.001) * 100; auto oldMute = Settings::get().internalOption("mute"); auto oldVolume = Settings::get().internalOption("global_volume"); //第一次从dbus里获取的音量可能和实际不匹配,若是第一进入就用实际音量 by zhuyuliang if (!_bOpened) { Q_EMIT volumeChanged(oldVolume.toInt()); Q_EMIT muteChanged(oldMute.toBool()); _bOpened = true; } else { if (volume != oldVolume) Q_EMIT volumeChanged(volume); Q_EMIT muteChanged(muteV.toBool()); } } deepin-movie-reborn-5.15.10/src/common/volumemonitoring.h000066400000000000000000000012721473342170300234040ustar00rootroot00000000000000// Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include class VolumeMonitoringPrivate; class VolumeMonitoring : public QObject { Q_OBJECT public: explicit VolumeMonitoring(QObject *parent = Q_NULLPTR); ~VolumeMonitoring(); void start(); void stop(); signals: void volumeChanged(int volume); void muteChanged(bool mute); public slots: void timeoutSlot(); private: bool _bOpened; QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), VolumeMonitoring) }; deepin-movie-reborn-5.15.10/src/dlna/000077500000000000000000000000001473342170300172425ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/dlna/cdlnasoappost.cpp000066400000000000000000000177171473342170300226350ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "cdlnasoappost.h" #include #include #include #include #include #include #include #include #include "getdlnaxmlvalue.h" #include #include static QString dlnaPlay( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " 1\r\n" " \r\n" " " "" ); static QString dlnaStop( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " \r\n" " " "" ); static QString dlnaPause( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " \r\n" " " "" ); static QString dlnaSeek( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " ABS_TIME\r\n" " %1\r\n" " \r\n" " " "" ); static QString dlnaGetPositionInfo( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " \r\n" " " "" ); //TRACK_NR ABS_COUNT static QString dlnaSetAVTransportURI( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " %1\r\n" " \r\n" " \r\n" " " "" ); static QString dlnaSetNextAVTransportURI( "\r\n" "\r\n" " \r\n" " \r\n" " 0\r\n" " %1\r\n" " \r\n" " \r\n" " " "" ); CDlnaSoapPost::CDlnaSoapPost(QObject *parent) : QObject(parent) { m_pNetWorkManager = new QNetworkAccessManager(this); } CDlnaSoapPost::~CDlnaSoapPost() { if(m_pNetWorkManager) { m_pNetWorkManager->deleteLater(); m_pNetWorkManager = nullptr; } } /** * @brief getTimeStr 时间转换 * @param pos 当前播放位置 */ QString CDlnaSoapPost::getTimeStr(qint64 pos) { QTime time(0, 0, 0); QString strTime = time.addSecs(static_cast(pos)).toString("hh:mm:ss"); return strTime; } /** * @brief SoapOperPost 操作投屏 * @param oper 操作投屏命令 * @param ControlURLPro 投屏控制地址 * @param sHostUrl Http请求地址 * @param sLocalUrl Http视频地址 * @param nSeek seek值 */ void CDlnaSoapPost::SoapOperPost(DlnaOper oper, QString ControlURLPro, QString sHostUrl, QString sLocalUrl, int nSeek) { QByteArray reqData; QString sOperName; qDebug() <<"sLocalUrl: " << sLocalUrl; if(oper == DLNA_SetAVTransportURI) { sOperName = "SetAVTransportURI"; reqData = dlnaSetAVTransportURI.arg(sLocalUrl).toUtf8(); } else if(oper == DLNA_Stop) { sOperName = "Stop"; reqData = dlnaStop.toUtf8(); } else if(oper == DLNA_Pause) { sOperName = "Pause"; reqData = dlnaPause.toUtf8(); } else if(oper == DLNA_Play) { sOperName = "Play"; reqData = dlnaPlay.toUtf8(); } else if(oper == DLNA_Seek) { sOperName = "Seek"; reqData = dlnaSeek.arg(getTimeStr(nSeek)).toUtf8(); } else if(oper == DLNA_GetPositionInfo) { sOperName = "GetPositionInfo"; reqData = dlnaGetPositionInfo.toUtf8(); } QNetworkRequest request; request.setUrl(QUrl(ControlURLPro)); request.setRawHeader("Accept-Encoding", "identity"); QString sHost = sHostUrl.split("//").last(); request.setRawHeader("Host", sHost.toUtf8()); request.setRawHeader("Content-Type", "text/xml; charset=\"utf-8\""); request.setRawHeader("Content-Length", QString::number( reqData.length()).toUtf8()); request.setRawHeader("Soapaction", QString("\"urn:schemas-upnp-org:service:AVTransport:1#%1\"").arg(sOperName).toUtf8()); request.setRawHeader("Connection", "close"); QNetworkReply *reply = m_pNetWorkManager->post(request, reqData); QEventLoop loop; connect(reply, &QNetworkReply::finished, [=]() { QByteArray data = reply->readAll(); qDebug() <<"reply:" << data; if(data.contains("SetAVTransportURIResponse")) { SoapOperPost(DLNA_Play, ControlURLPro, sHostUrl, sLocalUrl); } if(data.contains("GetPositionInfoResponse")) { GetDlnaXmlValue xmldata(data); DlnaPositionInfo posInfo; posInfo.nTrack = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/Track").toInt(); posInfo.sTrackDuration = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/TrackDuration"); posInfo.sTrackMetaData = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/TrackMetaData"); posInfo.sTrackURI = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/TrackURI"); posInfo.sRelTime = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/RelTime"); posInfo.sAbsTime = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/AbsTime"); posInfo.nRelCount = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/RelCount").toLongLong(); posInfo.nAbsCount = xmldata.getValueByPath("s:Body/u:GetPositionInfoResponse/AbsCount").toLongLong(); emit sigGetPostionInfo(posInfo); } }); connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit); QTimer::singleShot(1500, &loop, &QEventLoop::quit); loop.exec(); } deepin-movie-reborn-5.15.10/src/dlna/cdlnasoappost.h000066400000000000000000000027431473342170300222730ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef CDLNASOAPPOST_H #define CDLNASOAPPOST_H #include // DLNA 投屏操作 typedef enum { DLNA_SetAVTransportURI = 0, DLNA_Play, DLNA_Pause, DLNA_Seek, DLNA_Stop, DLNA_GetPositionInfo } DlnaOper; // DLNA 投屏状态进度信息 typedef struct { int nTrack; QString sTrackDuration; QString sTrackMetaData; QString sTrackURI; QString sRelTime; QString sAbsTime; qint64 nRelCount; qint64 nAbsCount; } DlnaPositionInfo; class QNetworkAccessManager; class CDlnaSoapPost: public QObject { Q_OBJECT public: explicit CDlnaSoapPost(QObject *parent = nullptr); ~CDlnaSoapPost(); /** * @brief SoapOperPost 操作投屏 * @param oper 操作投屏命令 * @param ControlURLPro 投屏控制地址 * @param sHostUrl Http请求地址 * @param sLocalUrl Http视频地址 * @param nSeek seek值 */ void SoapOperPost(DlnaOper oper, QString ControlURLPro, QString sHostUrl, QString sLocalUrl, int nSeek = 0); private: /** * @brief getTimeStr 时间转换 * @param pos 当前播放位置 */ QString getTimeStr(qint64 pos); private: QNetworkAccessManager *m_pNetWorkManager; //网络传输管理 signals: void sigGetPostionInfo(DlnaPositionInfo); }; #endif // CDLNASOAPPOST_H deepin-movie-reborn-5.15.10/src/dlna/cssdpsearch.cpp000066400000000000000000000064771473342170300222660ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "cssdpsearch.h" #include #include #include const char* urlAddrPro = "urlAddr"; const char* replayShowNum = "ShowNum"; const char* controlURLPro = "controlURL"; const char* friendlyNamePro = "friendlyName"; CSSDPSearch::CSSDPSearch(QObject *parent) : QObject(parent) { m_networkManager = new QNetworkAccessManager(this); m_HostAddr = QHostAddress("239.255.255.250"); m_udpSocket = new QUdpSocket (this); m_udpSocket->bind(QHostAddress::Any, 56123, QUdpSocket::ShareAddress); connect(m_udpSocket, SIGNAL(readyRead()), this, SLOT(readMsg())); connect(this, SIGNAL(updataAvAddr(QByteArray)), this, SLOT(showDlnaCastAddr(QByteArray))); } CSSDPSearch::~CSSDPSearch() { if(m_networkManager) { m_networkManager->deleteLater(); m_networkManager = NULL; } if(m_udpSocket) { m_udpSocket->deleteLater(); m_udpSocket = NULL; } } /** * @brief readMsg 读取设备的单播消息 */ void CSSDPSearch::readMsg() { while(m_udpSocket->hasPendingDatagrams()) { QByteArray reply; reply.resize(m_udpSocket->pendingDatagramSize()); m_udpSocket->readDatagram(reply.data(),reply.size()); emit updataAvAddr(reply); } } /** * @brief SsdpSearch 广播请求发现dlna设备 */ void CSSDPSearch::SsdpSearch() { m_lstStrLocationUrlAddr.clear(); m_nFindReplyCount = 0; //UNPN 广播发现投屏设备请求消息 QByteArray msg("M-SEARCH * HTTP /1.1\r\n" \ "Host:239.255.255.250:1900\r\n" \ "ST: ssdp:all\r\n" \ "Man:\"ssdp:discover\"\r\n" \ "MX:3\r\n" \ "\r\n"); qint64 ret = m_udpSocket->writeDatagram(msg.data(), m_HostAddr, 1900); if(ret == -1) { qInfo() << "writeDatagram failed"; } } /** * @brief showDlnaCastAddr 识别投屏设备消息 * @param replyData 应答数据 */ void CSSDPSearch::showDlnaCastAddr(QByteArray replyData) { if(replyData.contains("AVTransport")) { QList sList = replyData.split('\n'); foreach(QByteArray data, sList) { if(data.contains("LOCATION")) { qInfo()<<"replyData: " << data; QList tmpList = data.split(' '); if(tmpList.size() >= 2) { QString url = tmpList.at(1).trimmed(); m_lstStrLocationUrlAddr.append(url); QString urlAddr = "http://" + QUrl(url).host() + ":"+ QString::number(QUrl(url).port()); QNetworkRequest request; request.setUrl(QUrl(url)); QNetworkReply *reply = m_networkManager->get(request); reply->setProperty(urlAddrPro, urlAddr); reply->setProperty(replayShowNum, m_nFindReplyCount++); connect(reply, SIGNAL(readChannelFinished()), parent(), SLOT(slotReadyRead())); QEventLoop loop; connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit); loop.exec(); } } } } } deepin-movie-reborn-5.15.10/src/dlna/cssdpsearch.h000066400000000000000000000026261473342170300217230ustar00rootroot00000000000000#ifndef CSSDPSEARCH_H // Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #define CSSDPSEARCH_H #include #include #include #include #include extern const char* urlAddrPro; extern const char* replayShowNum; extern const char* controlURLPro; extern const char* friendlyNamePro; class CSSDPSearch : public QObject { Q_OBJECT public: explicit CSSDPSearch(QObject *parent = nullptr); ~CSSDPSearch(); public: /** * @brief SsdpSearch 广播请求发现dlna设备 */ void SsdpSearch(); //广播请求发现dlna设备 signals: void updataAvAddr(QByteArray); public slots: /** * @brief showDlnaCastAddr 识别投屏设备消息 * @param replyData 应答数据 */ void showDlnaCastAddr(QByteArray replyData);//识别投屏设备消息 /** * @brief readMsg 读取设备的单播消息 */ void readMsg(); //读取设备的单播消息 private: QHostAddress m_HostAddr; //建立发现服务 QUdpSocket *m_udpSocket; //发现请求udp sock QList m_lstStrLocationUrlAddr; //发现的投屏设备LOCATION地址 QNetworkAccessManager *m_networkManager; //网络请求 int m_nFindReplyCount; //发现应答数 }; #endif // CSSDPSEARCH_H deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/000077500000000000000000000000001473342170300222075ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/http_parser.c000066400000000000000000002071571473342170300247220ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "http_parser.h" #include #include #include #include #include #include #ifndef ULLONG_MAX # define ULLONG_MAX ((uint64_t) -1) /* 2^64-1 */ #endif #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #ifndef ARRAY_SIZE # define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) #endif #ifndef BIT_AT # define BIT_AT(a, i) \ (!!((unsigned int) (a)[(unsigned int) (i) >> 3] & \ (1 << ((unsigned int) (i) & 7)))) #endif #ifndef ELEM_AT # define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)] : (v)) #endif #define SET_ERRNO(e) \ do { \ parser->http_errno = (e); \ } while(0) #define CURRENT_STATE() p_state #define UPDATE_STATE(V) p_state = (enum state) (V); #define RETURN(V) \ do { \ parser->state = CURRENT_STATE(); \ return (V); \ } while (0); #define REEXECUTE() \ goto reexecute; \ #ifdef __GNUC__ # define LIKELY(X) __builtin_expect(!!(X), 1) # define UNLIKELY(X) __builtin_expect(!!(X), 0) #else # define LIKELY(X) (X) # define UNLIKELY(X) (X) #endif /* Run the notify callback FOR, returning ER if it fails */ #define CALLBACK_NOTIFY_(FOR, ER) \ do { \ assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ \ if (LIKELY(settings->on_##FOR)) { \ parser->state = CURRENT_STATE(); \ if (UNLIKELY(0 != settings->on_##FOR(parser))) { \ SET_ERRNO(HPE_CB_##FOR); \ } \ UPDATE_STATE(parser->state); \ \ /* We either errored above or got paused; get out */ \ if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ return (ER); \ } \ } \ } while (0) /* Run the notify callback FOR and consume the current byte */ #define CALLBACK_NOTIFY(FOR) CALLBACK_NOTIFY_(FOR, p - data + 1) /* Run the notify callback FOR and don't consume the current byte */ #define CALLBACK_NOTIFY_NOADVANCE(FOR) CALLBACK_NOTIFY_(FOR, p - data) /* Run data callback FOR with LEN bytes, returning ER if it fails */ #define CALLBACK_DATA_(FOR, LEN, ER) \ do { \ assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ \ if (FOR##_mark) { \ if (LIKELY(settings->on_##FOR)) { \ parser->state = CURRENT_STATE(); \ if (UNLIKELY(0 != \ settings->on_##FOR(parser, FOR##_mark, (LEN)))) { \ SET_ERRNO(HPE_CB_##FOR); \ } \ UPDATE_STATE(parser->state); \ \ /* We either errored above or got paused; get out */ \ if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ return (ER); \ } \ } \ FOR##_mark = NULL; \ } \ } while (0) /* Run the data callback FOR and consume the current byte */ #define CALLBACK_DATA(FOR) \ CALLBACK_DATA_(FOR, p - FOR##_mark, p - data + 1) /* Run the data callback FOR and don't consume the current byte */ #define CALLBACK_DATA_NOADVANCE(FOR) \ CALLBACK_DATA_(FOR, p - FOR##_mark, p - data) /* Set the mark FOR; non-destructive if mark is already set */ #define MARK(FOR) \ do { \ if (!FOR##_mark) { \ FOR##_mark = p; \ } \ } while (0) /* Don't allow the total size of the HTTP headers (including the status * line) to exceed HTTP_MAX_HEADER_SIZE. This check is here to protect * embedders against denial-of-service attacks where the attacker feeds * us a never-ending header that the embedder keeps buffering. * * This check is arguably the responsibility of embedders but we're doing * it on the embedder's behalf because most won't bother and this way we * make the web a little safer. HTTP_MAX_HEADER_SIZE is still far bigger * than any reasonable request or response so this should never affect * day-to-day operation. */ #define COUNT_HEADER_SIZE(V) \ do { \ parser->nread += (V); \ if (UNLIKELY(parser->nread > (HTTP_MAX_HEADER_SIZE))) { \ SET_ERRNO(HPE_HEADER_OVERFLOW); \ goto error; \ } \ } while (0) #define PROXY_CONNECTION "proxy-connection" #define CONNECTION "connection" #define CONTENT_LENGTH "content-length" #define TRANSFER_ENCODING "transfer-encoding" #define UPGRADE "upgrade" #define CHUNKED "chunked" #define KEEP_ALIVE "keep-alive" #define CLOSE "close" static const char *method_strings[] = { #define XX(num, name, string) #string, HTTP_METHOD_MAP(XX) #undef XX }; /* Tokens as defined by rfc 2616. Also lowercases them. * token = 1* * separators = "(" | ")" | "<" | ">" | "@" * | "," | ";" | ":" | "\" | <"> * | "/" | "[" | "]" | "?" | "=" * | "{" | "}" | SP | HT */ static const char tokens[256] = { /* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ 0, 0, 0, 0, 0, 0, 0, 0, /* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ 0, 0, 0, 0, 0, 0, 0, 0, /* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ 0, 0, 0, 0, 0, 0, 0, 0, /* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ 0, 0, 0, 0, 0, 0, 0, 0, /* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ 0, '!', 0, '#', '$', '%', '&', '\'', /* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ 0, 0, '*', '+', 0, '-', '.', 0, /* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ '0', '1', '2', '3', '4', '5', '6', '7', /* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ '8', '9', 0, 0, 0, 0, 0, 0, /* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', /* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', /* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', /* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ 'x', 'y', 'z', 0, 0, 0, '^', '_', /* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', /* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', /* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', /* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ 'x', 'y', 'z', 0, '|', 0, '~', 0 }; static const int8_t unhex[256] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1 ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 }; #if HTTP_PARSER_STRICT # define T(v) 0 #else # define T(v) v #endif static const uint8_t normal_url_char[32] = { /* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, /* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ 0 | T(2) | 0 | 0 | T(16) | 0 | 0 | 0, /* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, /* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, /* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ 0 | 2 | 4 | 0 | 16 | 32 | 64 | 128, /* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, /* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, /* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, }; #undef T enum state { s_dead = 1 /* important that this is > 0 */ , s_start_req_or_res , s_res_or_resp_H , s_start_res , s_res_H , s_res_HT , s_res_HTT , s_res_HTTP , s_res_first_http_major , s_res_http_major , s_res_first_http_minor , s_res_http_minor , s_res_first_status_code , s_res_status_code , s_res_status_start , s_res_status , s_res_line_almost_done , s_start_req , s_req_method , s_req_spaces_before_url , s_req_schema , s_req_schema_slash , s_req_schema_slash_slash , s_req_server_start , s_req_server , s_req_server_with_at , s_req_path , s_req_query_string_start , s_req_query_string , s_req_fragment_start , s_req_fragment , s_req_http_start , s_req_http_H , s_req_http_HT , s_req_http_HTT , s_req_http_HTTP , s_req_first_http_major , s_req_http_major , s_req_first_http_minor , s_req_http_minor , s_req_line_almost_done , s_header_field_start , s_header_field , s_header_value_discard_ws , s_header_value_discard_ws_almost_done , s_header_value_discard_lws , s_header_value_start , s_header_value , s_header_value_lws , s_header_almost_done , s_chunk_size_start , s_chunk_size , s_chunk_parameters , s_chunk_size_almost_done , s_headers_almost_done , s_headers_done /* Important: 's_headers_done' must be the last 'header' state. All * states beyond this must be 'body' states. It is used for overflow * checking. See the PARSING_HEADER() macro. */ , s_chunk_data , s_chunk_data_almost_done , s_chunk_data_done , s_body_identity , s_body_identity_eof , s_message_done }; #define PARSING_HEADER(state) (state <= s_headers_done) enum header_states { h_general = 0 , h_C , h_CO , h_CON , h_matching_connection , h_matching_proxy_connection , h_matching_content_length , h_matching_transfer_encoding , h_matching_upgrade , h_connection , h_content_length , h_transfer_encoding , h_upgrade , h_matching_transfer_encoding_chunked , h_matching_connection_token_start , h_matching_connection_keep_alive , h_matching_connection_close , h_matching_connection_upgrade , h_matching_connection_token , h_transfer_encoding_chunked , h_connection_keep_alive , h_connection_close , h_connection_upgrade }; enum http_host_state { s_http_host_dead = 1 , s_http_userinfo_start , s_http_userinfo , s_http_host_start , s_http_host_v6_start , s_http_host , s_http_host_v6 , s_http_host_v6_end , s_http_host_port_start , s_http_host_port }; /* Macros for character classes; depends on strict-mode */ #define CR '\r' #define LF '\n' #define LOWER(c) (unsigned char)(c | 0x20) #define IS_ALPHA(c) (LOWER(c) >= 'a' && LOWER(c) <= 'z') #define IS_NUM(c) ((c) >= '0' && (c) <= '9') #define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_NUM(c)) #define IS_HEX(c) (IS_NUM(c) || (LOWER(c) >= 'a' && LOWER(c) <= 'f')) #define IS_MARK(c) ((c) == '-' || (c) == '_' || (c) == '.' || \ (c) == '!' || (c) == '~' || (c) == '*' || (c) == '\'' || (c) == '(' || \ (c) == ')') #define IS_USERINFO_CHAR(c) (IS_ALPHANUM(c) || IS_MARK(c) || (c) == '%' || \ (c) == ';' || (c) == ':' || (c) == '&' || (c) == '=' || (c) == '+' || \ (c) == '$' || (c) == ',') #define STRICT_TOKEN(c) (tokens[(unsigned char)c]) #if HTTP_PARSER_STRICT #define TOKEN(c) (tokens[(unsigned char)c]) #define IS_URL_CHAR(c) (BIT_AT(normal_url_char, (unsigned char)c)) #define IS_HOST_CHAR(c) (IS_ALPHANUM(c) || (c) == '.' || (c) == '-') #else #define TOKEN(c) ((c == ' ') ? ' ' : tokens[(unsigned char)c]) #define IS_URL_CHAR(c) \ (BIT_AT(normal_url_char, (unsigned char)c) || ((c) & 0x80)) #define IS_HOST_CHAR(c) \ (IS_ALPHANUM(c) || (c) == '.' || (c) == '-' || (c) == '_') #endif #define start_state (parser->type == HTTP_REQUEST ? s_start_req : s_start_res) #if HTTP_PARSER_STRICT # define STRICT_CHECK(cond) \ do { \ if (cond) { \ SET_ERRNO(HPE_STRICT); \ goto error; \ } \ } while (0) # define NEW_MESSAGE() (http_should_keep_alive(parser) ? start_state : s_dead) #else # define STRICT_CHECK(cond) # define NEW_MESSAGE() start_state #endif /* Map errno values to strings for human-readable output */ #define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s }, static struct { const char *name; const char *description; } http_strerror_tab[] = { HTTP_ERRNO_MAP(HTTP_STRERROR_GEN) }; #undef HTTP_STRERROR_GEN int http_message_needs_eof(const http_parser *parser); /* Our URL parser. * * This is designed to be shared by http_parser_execute() for URL validation, * hence it has a state transition + byte-for-byte interface. In addition, it * is meant to be embedded in http_parser_parse_url(), which does the dirty * work of turning state transitions URL components for its API. * * This function should only be invoked with non-space characters. It is * assumed that the caller cares about (and can detect) the transition between * URL and non-URL states by looking for these. */ static enum state parse_url_char(enum state s, const char ch) { if (ch == ' ' || ch == '\r' || ch == '\n') { return s_dead; } #if HTTP_PARSER_STRICT if (ch == '\t' || ch == '\f') { return s_dead; } #endif switch (s) { case s_req_spaces_before_url: /* Proxied requests are followed by scheme of an absolute URI (alpha). * All methods except CONNECT are followed by '/' or '*'. */ if (ch == '/' || ch == '*') { return s_req_path; } if (IS_ALPHA(ch)) { return s_req_schema; } break; case s_req_schema: if (IS_ALPHA(ch)) { return s; } if (ch == ':') { return s_req_schema_slash; } break; case s_req_schema_slash: if (ch == '/') { return s_req_schema_slash_slash; } break; case s_req_schema_slash_slash: if (ch == '/') { return s_req_server_start; } break; case s_req_server_with_at: if (ch == '@') { return s_dead; } /* FALLTHROUGH */ case s_req_server_start: case s_req_server: if (ch == '/') { return s_req_path; } if (ch == '?') { return s_req_query_string_start; } if (ch == '@') { return s_req_server_with_at; } if (IS_USERINFO_CHAR(ch) || ch == '[' || ch == ']') { return s_req_server; } break; case s_req_path: if (IS_URL_CHAR(ch)) { return s; } switch (ch) { case '?': return s_req_query_string_start; case '#': return s_req_fragment_start; } break; case s_req_query_string_start: case s_req_query_string: if (IS_URL_CHAR(ch)) { return s_req_query_string; } switch (ch) { case '?': /* allow extra '?' in query string */ return s_req_query_string; case '#': return s_req_fragment_start; } break; case s_req_fragment_start: if (IS_URL_CHAR(ch)) { return s_req_fragment; } switch (ch) { case '?': return s_req_fragment; case '#': return s; } break; case s_req_fragment: if (IS_URL_CHAR(ch)) { return s; } switch (ch) { case '?': case '#': return s; } break; default: break; } /* We should never fall out of the switch above unless there's an error */ return s_dead; } size_t http_parser_execute (http_parser *parser, const http_parser_settings *settings, const char *data, size_t len) { char c, ch; int8_t unhex_val; const char *p = data; const char *header_field_mark = 0; const char *header_value_mark = 0; const char *url_mark = 0; const char *body_mark = 0; const char *status_mark = 0; enum state p_state = (enum state) parser->state; /* We're in an error state. Don't bother doing anything. */ if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { return 0; } if (len == 0) { switch (CURRENT_STATE()) { case s_body_identity_eof: /* Use of CALLBACK_NOTIFY() here would erroneously return 1 byte read if * we got paused. */ CALLBACK_NOTIFY_NOADVANCE(message_complete); return 0; case s_dead: case s_start_req_or_res: case s_start_res: case s_start_req: return 0; default: SET_ERRNO(HPE_INVALID_EOF_STATE); return 1; } } if (CURRENT_STATE() == s_header_field) header_field_mark = data; if (CURRENT_STATE() == s_header_value) header_value_mark = data; switch (CURRENT_STATE()) { case s_req_path: case s_req_schema: case s_req_schema_slash: case s_req_schema_slash_slash: case s_req_server_start: case s_req_server: case s_req_server_with_at: case s_req_query_string_start: case s_req_query_string: case s_req_fragment_start: case s_req_fragment: url_mark = data; break; case s_res_status: status_mark = data; break; default: break; } for (p=data; p != data + len; p++) { ch = *p; if (PARSING_HEADER(CURRENT_STATE())) COUNT_HEADER_SIZE(1); reexecute: switch (CURRENT_STATE()) { case s_dead: /* this state is used after a 'Connection: close' message * the parser will error out if it reads another message */ if (LIKELY(ch == CR || ch == LF)) break; SET_ERRNO(HPE_CLOSED_CONNECTION); goto error; case s_start_req_or_res: { if (ch == CR || ch == LF) break; parser->flags = 0; parser->content_length = ULLONG_MAX; if (ch == 'H') { UPDATE_STATE(s_res_or_resp_H); CALLBACK_NOTIFY(message_begin); } else { parser->type = HTTP_REQUEST; UPDATE_STATE(s_start_req); REEXECUTE(); } break; } case s_res_or_resp_H: if (ch == 'T') { parser->type = HTTP_RESPONSE; UPDATE_STATE(s_res_HT); } else { if (UNLIKELY(ch != 'E')) { SET_ERRNO(HPE_INVALID_CONSTANT); goto error; } parser->type = HTTP_REQUEST; parser->method = HTTP_HEAD; parser->index = 2; UPDATE_STATE(s_req_method); } break; case s_start_res: { parser->flags = 0; parser->content_length = ULLONG_MAX; switch (ch) { case 'H': UPDATE_STATE(s_res_H); break; case CR: case LF: break; default: SET_ERRNO(HPE_INVALID_CONSTANT); goto error; } CALLBACK_NOTIFY(message_begin); break; } case s_res_H: STRICT_CHECK(ch != 'T'); UPDATE_STATE(s_res_HT); break; case s_res_HT: STRICT_CHECK(ch != 'T'); UPDATE_STATE(s_res_HTT); break; case s_res_HTT: STRICT_CHECK(ch != 'P'); UPDATE_STATE(s_res_HTTP); break; case s_res_HTTP: STRICT_CHECK(ch != '/'); UPDATE_STATE(s_res_first_http_major); break; case s_res_first_http_major: if (UNLIKELY(ch < '0' || ch > '9')) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_major = ch - '0'; UPDATE_STATE(s_res_http_major); break; /* major HTTP version or dot */ case s_res_http_major: { if (ch == '.') { UPDATE_STATE(s_res_first_http_minor); break; } if (!IS_NUM(ch)) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_major *= 10; parser->http_major += ch - '0'; if (UNLIKELY(parser->http_major > 999)) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } break; } /* first digit of minor HTTP version */ case s_res_first_http_minor: if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_minor = ch - '0'; UPDATE_STATE(s_res_http_minor); break; /* minor HTTP version or end of request line */ case s_res_http_minor: { if (ch == ' ') { UPDATE_STATE(s_res_first_status_code); break; } if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_minor *= 10; parser->http_minor += ch - '0'; if (UNLIKELY(parser->http_minor > 999)) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } break; } case s_res_first_status_code: { if (!IS_NUM(ch)) { if (ch == ' ') { break; } SET_ERRNO(HPE_INVALID_STATUS); goto error; } parser->status_code = ch - '0'; UPDATE_STATE(s_res_status_code); break; } case s_res_status_code: { if (!IS_NUM(ch)) { switch (ch) { case ' ': UPDATE_STATE(s_res_status_start); break; case CR: UPDATE_STATE(s_res_line_almost_done); break; case LF: UPDATE_STATE(s_header_field_start); break; default: SET_ERRNO(HPE_INVALID_STATUS); goto error; } break; } parser->status_code *= 10; parser->status_code += ch - '0'; if (UNLIKELY(parser->status_code > 999)) { SET_ERRNO(HPE_INVALID_STATUS); goto error; } break; } case s_res_status_start: { if (ch == CR) { UPDATE_STATE(s_res_line_almost_done); break; } if (ch == LF) { UPDATE_STATE(s_header_field_start); break; } MARK(status); UPDATE_STATE(s_res_status); parser->index = 0; break; } case s_res_status: if (ch == CR) { UPDATE_STATE(s_res_line_almost_done); CALLBACK_DATA(status); break; } if (ch == LF) { UPDATE_STATE(s_header_field_start); CALLBACK_DATA(status); break; } break; case s_res_line_almost_done: STRICT_CHECK(ch != LF); UPDATE_STATE(s_header_field_start); break; case s_start_req: { if (ch == CR || ch == LF) break; parser->flags = 0; parser->content_length = ULLONG_MAX; if (UNLIKELY(!IS_ALPHA(ch))) { SET_ERRNO(HPE_INVALID_METHOD); goto error; } parser->method = (enum http_method) 0; parser->index = 1; switch (ch) { case 'C': parser->method = HTTP_CONNECT; /* or COPY, CHECKOUT */ break; case 'D': parser->method = HTTP_DELETE; break; case 'G': parser->method = HTTP_GET; break; case 'H': parser->method = HTTP_HEAD; break; case 'L': parser->method = HTTP_LOCK; break; case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH, MKCALENDAR */ break; case 'N': parser->method = HTTP_NOTIFY; break; case 'O': parser->method = HTTP_OPTIONS; break; case 'P': parser->method = HTTP_POST; /* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */ break; case 'R': parser->method = HTTP_REPORT; break; case 'S': parser->method = HTTP_SUBSCRIBE; /* or SEARCH */ break; case 'T': parser->method = HTTP_TRACE; break; case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE */ break; default: SET_ERRNO(HPE_INVALID_METHOD); goto error; } UPDATE_STATE(s_req_method); CALLBACK_NOTIFY(message_begin); break; } case s_req_method: { const char *matcher; if (UNLIKELY(ch == '\0')) { SET_ERRNO(HPE_INVALID_METHOD); goto error; } matcher = method_strings[parser->method]; if (ch == ' ' && matcher[parser->index] == '\0') { UPDATE_STATE(s_req_spaces_before_url); } else if (ch == matcher[parser->index]) { ; /* nada */ } else if (parser->method == HTTP_CONNECT) { if (parser->index == 1 && ch == 'H') { parser->method = HTTP_CHECKOUT; } else if (parser->index == 2 && ch == 'P') { parser->method = HTTP_COPY; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->method == HTTP_MKCOL) { if (parser->index == 1 && ch == 'O') { parser->method = HTTP_MOVE; } else if (parser->index == 1 && ch == 'E') { parser->method = HTTP_MERGE; } else if (parser->index == 1 && ch == '-') { parser->method = HTTP_MSEARCH; } else if (parser->index == 2 && ch == 'A') { parser->method = HTTP_MKACTIVITY; } else if (parser->index == 3 && ch == 'A') { parser->method = HTTP_MKCALENDAR; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->method == HTTP_SUBSCRIBE) { if (parser->index == 1 && ch == 'E') { parser->method = HTTP_SEARCH; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->index == 1 && parser->method == HTTP_POST) { if (ch == 'R') { parser->method = HTTP_PROPFIND; /* or HTTP_PROPPATCH */ } else if (ch == 'U') { parser->method = HTTP_PUT; /* or HTTP_PURGE */ } else if (ch == 'A') { parser->method = HTTP_PATCH; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->index == 2) { if (parser->method == HTTP_PUT) { if (ch == 'R') { parser->method = HTTP_PURGE; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->method == HTTP_UNLOCK) { if (ch == 'S') { parser->method = HTTP_UNSUBSCRIBE; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } } else if (parser->index == 4 && parser->method == HTTP_PROPFIND && ch == 'P') { parser->method = HTTP_PROPPATCH; } else { SET_ERRNO(HPE_INVALID_METHOD); goto error; } ++parser->index; break; } case s_req_spaces_before_url: { if (ch == ' ') break; MARK(url); if (parser->method == HTTP_CONNECT) { UPDATE_STATE(s_req_server_start); } UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); if (UNLIKELY(CURRENT_STATE() == s_dead)) { SET_ERRNO(HPE_INVALID_URL); goto error; } break; } case s_req_schema: case s_req_schema_slash: case s_req_schema_slash_slash: case s_req_server_start: { switch (ch) { /* No whitespace allowed here */ case ' ': case CR: case LF: SET_ERRNO(HPE_INVALID_URL); goto error; default: UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); if (UNLIKELY(CURRENT_STATE() == s_dead)) { SET_ERRNO(HPE_INVALID_URL); goto error; } } break; } case s_req_server: case s_req_server_with_at: case s_req_path: case s_req_query_string_start: case s_req_query_string: case s_req_fragment_start: case s_req_fragment: { switch (ch) { case ' ': UPDATE_STATE(s_req_http_start); CALLBACK_DATA(url); break; case CR: case LF: parser->http_major = 0; parser->http_minor = 9; UPDATE_STATE((ch == CR) ? s_req_line_almost_done : s_header_field_start); CALLBACK_DATA(url); break; default: UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); if (UNLIKELY(CURRENT_STATE() == s_dead)) { SET_ERRNO(HPE_INVALID_URL); goto error; } } break; } case s_req_http_start: switch (ch) { case 'H': UPDATE_STATE(s_req_http_H); break; case ' ': break; default: SET_ERRNO(HPE_INVALID_CONSTANT); goto error; } break; case s_req_http_H: STRICT_CHECK(ch != 'T'); UPDATE_STATE(s_req_http_HT); break; case s_req_http_HT: STRICT_CHECK(ch != 'T'); UPDATE_STATE(s_req_http_HTT); break; case s_req_http_HTT: STRICT_CHECK(ch != 'P'); UPDATE_STATE(s_req_http_HTTP); break; case s_req_http_HTTP: STRICT_CHECK(ch != '/'); UPDATE_STATE(s_req_first_http_major); break; /* first digit of major HTTP version */ case s_req_first_http_major: if (UNLIKELY(ch < '1' || ch > '9')) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_major = ch - '0'; UPDATE_STATE(s_req_http_major); break; /* major HTTP version or dot */ case s_req_http_major: { if (ch == '.') { UPDATE_STATE(s_req_first_http_minor); break; } if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_major *= 10; parser->http_major += ch - '0'; if (UNLIKELY(parser->http_major > 999)) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } break; } /* first digit of minor HTTP version */ case s_req_first_http_minor: if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_minor = ch - '0'; UPDATE_STATE(s_req_http_minor); break; /* minor HTTP version or end of request line */ case s_req_http_minor: { if (ch == CR) { UPDATE_STATE(s_req_line_almost_done); break; } if (ch == LF) { UPDATE_STATE(s_header_field_start); break; } /* XXX allow spaces after digit? */ if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } parser->http_minor *= 10; parser->http_minor += ch - '0'; if (UNLIKELY(parser->http_minor > 999)) { SET_ERRNO(HPE_INVALID_VERSION); goto error; } break; } /* end of request line */ case s_req_line_almost_done: { if (UNLIKELY(ch != LF)) { SET_ERRNO(HPE_LF_EXPECTED); goto error; } UPDATE_STATE(s_header_field_start); break; } case s_header_field_start: { if (ch == CR) { UPDATE_STATE(s_headers_almost_done); break; } if (ch == LF) { /* they might be just sending \n instead of \r\n so this would be * the second \n to denote the end of headers*/ UPDATE_STATE(s_headers_almost_done); REEXECUTE(); } c = TOKEN(ch); if (UNLIKELY(!c)) { SET_ERRNO(HPE_INVALID_HEADER_TOKEN); goto error; } MARK(header_field); parser->index = 0; UPDATE_STATE(s_header_field); switch (c) { case 'c': parser->header_state = h_C; break; case 'p': parser->header_state = h_matching_proxy_connection; break; case 't': parser->header_state = h_matching_transfer_encoding; break; case 'u': parser->header_state = h_matching_upgrade; break; default: parser->header_state = h_general; break; } break; } case s_header_field: { const char* start = p; for (; p != data + len; p++) { ch = *p; c = TOKEN(ch); if (!c) break; switch (parser->header_state) { case h_general: break; case h_C: parser->index++; parser->header_state = (c == 'o' ? h_CO : h_general); break; case h_CO: parser->index++; parser->header_state = (c == 'n' ? h_CON : h_general); break; case h_CON: parser->index++; switch (c) { case 'n': parser->header_state = h_matching_connection; break; case 't': parser->header_state = h_matching_content_length; break; default: parser->header_state = h_general; break; } break; /* connection */ case h_matching_connection: parser->index++; if (parser->index > sizeof(CONNECTION)-1 || c != CONNECTION[parser->index]) { parser->header_state = h_general; } else if (parser->index == sizeof(CONNECTION)-2) { parser->header_state = h_connection; } break; /* proxy-connection */ case h_matching_proxy_connection: parser->index++; if (parser->index > sizeof(PROXY_CONNECTION)-1 || c != PROXY_CONNECTION[parser->index]) { parser->header_state = h_general; } else if (parser->index == sizeof(PROXY_CONNECTION)-2) { parser->header_state = h_connection; } break; /* content-length */ case h_matching_content_length: parser->index++; if (parser->index > sizeof(CONTENT_LENGTH)-1 || c != CONTENT_LENGTH[parser->index]) { parser->header_state = h_general; } else if (parser->index == sizeof(CONTENT_LENGTH)-2) { parser->header_state = h_content_length; } break; /* transfer-encoding */ case h_matching_transfer_encoding: parser->index++; if (parser->index > sizeof(TRANSFER_ENCODING)-1 || c != TRANSFER_ENCODING[parser->index]) { parser->header_state = h_general; } else if (parser->index == sizeof(TRANSFER_ENCODING)-2) { parser->header_state = h_transfer_encoding; } break; /* upgrade */ case h_matching_upgrade: parser->index++; if (parser->index > sizeof(UPGRADE)-1 || c != UPGRADE[parser->index]) { parser->header_state = h_general; } else if (parser->index == sizeof(UPGRADE)-2) { parser->header_state = h_upgrade; } break; case h_connection: case h_content_length: case h_transfer_encoding: case h_upgrade: if (ch != ' ') parser->header_state = h_general; break; default: assert(0 && "Unknown header_state"); break; } } COUNT_HEADER_SIZE(p - start); if (p == data + len) { --p; break; } if (ch == ':') { UPDATE_STATE(s_header_value_discard_ws); CALLBACK_DATA(header_field); break; } SET_ERRNO(HPE_INVALID_HEADER_TOKEN); goto error; } case s_header_value_discard_ws: if (ch == ' ' || ch == '\t') break; if (ch == CR) { UPDATE_STATE(s_header_value_discard_ws_almost_done); break; } if (ch == LF) { UPDATE_STATE(s_header_value_discard_lws); break; } /* FALLTHROUGH */ case s_header_value_start: { MARK(header_value); UPDATE_STATE(s_header_value); parser->index = 0; c = LOWER(ch); switch (parser->header_state) { case h_upgrade: parser->flags |= F_UPGRADE; parser->header_state = h_general; break; case h_transfer_encoding: /* looking for 'Transfer-Encoding: chunked' */ if ('c' == c) { parser->header_state = h_matching_transfer_encoding_chunked; } else { parser->header_state = h_general; } break; case h_content_length: if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); goto error; } parser->content_length = ch - '0'; break; case h_connection: /* looking for 'Connection: keep-alive' */ if (c == 'k') { parser->header_state = h_matching_connection_keep_alive; /* looking for 'Connection: close' */ } else if (c == 'c') { parser->header_state = h_matching_connection_close; } else if (c == 'u') { parser->header_state = h_matching_connection_upgrade; } else { parser->header_state = h_matching_connection_token; } break; /* Multi-value `Connection` header */ case h_matching_connection_token_start: break; default: parser->header_state = h_general; break; } break; } case s_header_value: { const char* start = p; enum header_states h_state = (enum header_states) parser->header_state; for (; p != data + len; p++) { ch = *p; if (ch == CR) { UPDATE_STATE(s_header_almost_done); parser->header_state = h_state; CALLBACK_DATA(header_value); break; } if (ch == LF) { UPDATE_STATE(s_header_almost_done); COUNT_HEADER_SIZE(p - start); parser->header_state = h_state; CALLBACK_DATA_NOADVANCE(header_value); REEXECUTE(); } c = LOWER(ch); switch (h_state) { case h_general: { const char* p_cr; const char* p_lf; size_t limit = data + len - p; limit = MIN(limit, HTTP_MAX_HEADER_SIZE); p_cr = (const char*) memchr(p, CR, limit); p_lf = (const char*) memchr(p, LF, limit); if (p_cr != NULL) { if (p_lf != NULL && p_cr >= p_lf) p = p_lf; else p = p_cr; } else if (UNLIKELY(p_lf != NULL)) { p = p_lf; } else { p = data + len; } --p; break; } case h_connection: case h_transfer_encoding: assert(0 && "Shouldn't get here."); break; case h_content_length: { uint64_t t; if (ch == ' ') break; if (UNLIKELY(!IS_NUM(ch))) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); parser->header_state = h_state; goto error; } t = parser->content_length; t *= 10; t += ch - '0'; /* Overflow? Test against a conservative limit for simplicity. */ if (UNLIKELY((ULLONG_MAX - 10) / 10 < parser->content_length)) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); parser->header_state = h_state; goto error; } parser->content_length = t; break; } /* Transfer-Encoding: chunked */ case h_matching_transfer_encoding_chunked: parser->index++; if (parser->index > sizeof(CHUNKED)-1 || c != CHUNKED[parser->index]) { h_state = h_general; } else if (parser->index == sizeof(CHUNKED)-2) { h_state = h_transfer_encoding_chunked; } break; case h_matching_connection_token_start: /* looking for 'Connection: keep-alive' */ if (c == 'k') { h_state = h_matching_connection_keep_alive; /* looking for 'Connection: close' */ } else if (c == 'c') { h_state = h_matching_connection_close; } else if (c == 'u') { h_state = h_matching_connection_upgrade; } else if (STRICT_TOKEN(c)) { h_state = h_matching_connection_token; } else if (c == ' ' || c == '\t') { /* Skip lws */ } else { h_state = h_general; } break; /* looking for 'Connection: keep-alive' */ case h_matching_connection_keep_alive: parser->index++; if (parser->index > sizeof(KEEP_ALIVE)-1 || c != KEEP_ALIVE[parser->index]) { h_state = h_matching_connection_token; } else if (parser->index == sizeof(KEEP_ALIVE)-2) { h_state = h_connection_keep_alive; } break; /* looking for 'Connection: close' */ case h_matching_connection_close: parser->index++; if (parser->index > sizeof(CLOSE)-1 || c != CLOSE[parser->index]) { h_state = h_matching_connection_token; } else if (parser->index == sizeof(CLOSE)-2) { h_state = h_connection_close; } break; /* looking for 'Connection: upgrade' */ case h_matching_connection_upgrade: parser->index++; if (parser->index > sizeof(UPGRADE) - 1 || c != UPGRADE[parser->index]) { h_state = h_matching_connection_token; } else if (parser->index == sizeof(UPGRADE)-2) { h_state = h_connection_upgrade; } break; case h_matching_connection_token: if (ch == ',') { h_state = h_matching_connection_token_start; parser->index = 0; } break; case h_transfer_encoding_chunked: if (ch != ' ') h_state = h_general; break; case h_connection_keep_alive: case h_connection_close: case h_connection_upgrade: if (ch == ',') { if (h_state == h_connection_keep_alive) { parser->flags |= F_CONNECTION_KEEP_ALIVE; } else if (h_state == h_connection_close) { parser->flags |= F_CONNECTION_CLOSE; } else if (h_state == h_connection_upgrade) { parser->flags |= F_CONNECTION_UPGRADE; } h_state = h_matching_connection_token_start; parser->index = 0; } else if (ch != ' ') { h_state = h_matching_connection_token; } break; default: UPDATE_STATE(s_header_value); h_state = h_general; break; } } parser->header_state = h_state; COUNT_HEADER_SIZE(p - start); if (p == data + len) --p; break; } case s_header_almost_done: { STRICT_CHECK(ch != LF); UPDATE_STATE(s_header_value_lws); break; } case s_header_value_lws: { if (ch == ' ' || ch == '\t') { UPDATE_STATE(s_header_value_start); REEXECUTE(); } /* finished the header */ switch (parser->header_state) { case h_connection_keep_alive: parser->flags |= F_CONNECTION_KEEP_ALIVE; break; case h_connection_close: parser->flags |= F_CONNECTION_CLOSE; break; case h_transfer_encoding_chunked: parser->flags |= F_CHUNKED; break; case h_connection_upgrade: parser->flags |= F_CONNECTION_UPGRADE; break; default: break; } UPDATE_STATE(s_header_field_start); REEXECUTE(); } case s_header_value_discard_ws_almost_done: { STRICT_CHECK(ch != LF); UPDATE_STATE(s_header_value_discard_lws); break; } case s_header_value_discard_lws: { if (ch == ' ' || ch == '\t') { UPDATE_STATE(s_header_value_discard_ws); break; } else { switch (parser->header_state) { case h_connection_keep_alive: parser->flags |= F_CONNECTION_KEEP_ALIVE; break; case h_connection_close: parser->flags |= F_CONNECTION_CLOSE; break; case h_connection_upgrade: parser->flags |= F_CONNECTION_UPGRADE; break; case h_transfer_encoding_chunked: parser->flags |= F_CHUNKED; break; default: break; } /* header value was empty */ MARK(header_value); UPDATE_STATE(s_header_field_start); CALLBACK_DATA_NOADVANCE(header_value); REEXECUTE(); } } case s_headers_almost_done: { STRICT_CHECK(ch != LF); if (parser->flags & F_TRAILING) { /* End of a chunked request */ UPDATE_STATE(s_message_done); CALLBACK_NOTIFY_NOADVANCE(chunk_complete); REEXECUTE(); } UPDATE_STATE(s_headers_done); /* Set this here so that on_headers_complete() callbacks can see it */ parser->upgrade = ((parser->flags & (F_UPGRADE | F_CONNECTION_UPGRADE)) == (F_UPGRADE | F_CONNECTION_UPGRADE) || parser->method == HTTP_CONNECT); /* Here we call the headers_complete callback. This is somewhat * different than other callbacks because if the user returns 1, we * will interpret that as saying that this message has no body. This * is needed for the annoying case of recieving a response to a HEAD * request. * * We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so * we have to simulate it by handling a change in errno below. */ if (settings->on_headers_complete) { switch (settings->on_headers_complete(parser)) { case 0: break; case 1: parser->flags |= F_SKIPBODY; break; default: SET_ERRNO(HPE_CB_headers_complete); RETURN(p - data); /* Error */ } } if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { RETURN(p - data); } REEXECUTE(); } case s_headers_done: { STRICT_CHECK(ch != LF); parser->nread = 0; int hasBody = parser->flags & F_CHUNKED || (parser->content_length > 0 && parser->content_length != ULLONG_MAX); if (parser->upgrade && (parser->method == HTTP_CONNECT || (parser->flags & F_SKIPBODY) || !hasBody)) { /* Exit, the rest of the message is in a different protocol. */ UPDATE_STATE(NEW_MESSAGE()); CALLBACK_NOTIFY(message_complete); RETURN((p - data) + 1); } if (parser->flags & F_SKIPBODY) { UPDATE_STATE(NEW_MESSAGE()); CALLBACK_NOTIFY(message_complete); } else if (parser->flags & F_CHUNKED) { /* chunked encoding - ignore Content-Length header */ UPDATE_STATE(s_chunk_size_start); } else { if (parser->content_length == 0) { /* Content-Length header given but zero: Content-Length: 0\r\n */ UPDATE_STATE(NEW_MESSAGE()); CALLBACK_NOTIFY(message_complete); } else if (parser->content_length != ULLONG_MAX) { /* Content-Length header given and non-zero */ UPDATE_STATE(s_body_identity); } else { if (parser->type == HTTP_REQUEST || !http_message_needs_eof(parser)) { /* Assume content-length 0 - read the next */ UPDATE_STATE(NEW_MESSAGE()); CALLBACK_NOTIFY(message_complete); } else { /* Read body until EOF */ UPDATE_STATE(s_body_identity_eof); } } } break; } case s_body_identity: { uint64_t to_read = MIN(parser->content_length, (uint64_t) ((data + len) - p)); assert(parser->content_length != 0 && parser->content_length != ULLONG_MAX); /* The difference between advancing content_length and p is because * the latter will automaticaly advance on the next loop iteration. * Further, if content_length ends up at 0, we want to see the last * byte again for our message complete callback. */ MARK(body); parser->content_length -= to_read; p += to_read - 1; if (parser->content_length == 0) { UPDATE_STATE(s_message_done); /* Mimic CALLBACK_DATA_NOADVANCE() but with one extra byte. * * The alternative to doing this is to wait for the next byte to * trigger the data callback, just as in every other case. The * problem with this is that this makes it difficult for the test * harness to distinguish between complete-on-EOF and * complete-on-length. It's not clear that this distinction is * important for applications, but let's keep it for now. */ CALLBACK_DATA_(body, p - body_mark + 1, p - data); REEXECUTE(); } break; } /* read until EOF */ case s_body_identity_eof: MARK(body); p = data + len - 1; break; case s_message_done: UPDATE_STATE(NEW_MESSAGE()); CALLBACK_NOTIFY(message_complete); if (parser->upgrade) { /* Exit, the rest of the message is in a different protocol. */ RETURN((p - data) + 1); } break; case s_chunk_size_start: { assert(parser->nread == 1); assert(parser->flags & F_CHUNKED); unhex_val = unhex[(unsigned char)ch]; if (UNLIKELY(unhex_val == -1)) { SET_ERRNO(HPE_INVALID_CHUNK_SIZE); goto error; } parser->content_length = unhex_val; UPDATE_STATE(s_chunk_size); break; } case s_chunk_size: { uint64_t t; assert(parser->flags & F_CHUNKED); if (ch == CR) { UPDATE_STATE(s_chunk_size_almost_done); break; } unhex_val = unhex[(unsigned char)ch]; if (unhex_val == -1) { if (ch == ';' || ch == ' ') { UPDATE_STATE(s_chunk_parameters); break; } SET_ERRNO(HPE_INVALID_CHUNK_SIZE); goto error; } t = parser->content_length; t *= 16; t += unhex_val; /* Overflow? Test against a conservative limit for simplicity. */ if (UNLIKELY((ULLONG_MAX - 16) / 16 < parser->content_length)) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); goto error; } parser->content_length = t; break; } case s_chunk_parameters: { assert(parser->flags & F_CHUNKED); /* just ignore this shit. TODO check for overflow */ if (ch == CR) { UPDATE_STATE(s_chunk_size_almost_done); break; } break; } case s_chunk_size_almost_done: { assert(parser->flags & F_CHUNKED); STRICT_CHECK(ch != LF); parser->nread = 0; if (parser->content_length == 0) { parser->flags |= F_TRAILING; UPDATE_STATE(s_header_field_start); } else { UPDATE_STATE(s_chunk_data); } CALLBACK_NOTIFY(chunk_header); break; } case s_chunk_data: { uint64_t to_read = MIN(parser->content_length, (uint64_t) ((data + len) - p)); assert(parser->flags & F_CHUNKED); assert(parser->content_length != 0 && parser->content_length != ULLONG_MAX); /* See the explanation in s_body_identity for why the content * length and data pointers are managed this way. */ MARK(body); parser->content_length -= to_read; p += to_read - 1; if (parser->content_length == 0) { UPDATE_STATE(s_chunk_data_almost_done); } break; } case s_chunk_data_almost_done: assert(parser->flags & F_CHUNKED); assert(parser->content_length == 0); STRICT_CHECK(ch != CR); UPDATE_STATE(s_chunk_data_done); CALLBACK_DATA(body); break; case s_chunk_data_done: assert(parser->flags & F_CHUNKED); STRICT_CHECK(ch != LF); parser->nread = 0; UPDATE_STATE(s_chunk_size_start); CALLBACK_NOTIFY(chunk_complete); break; default: assert(0 && "unhandled state"); SET_ERRNO(HPE_INVALID_INTERNAL_STATE); goto error; } } /* Run callbacks for any marks that we have leftover after we ran our of * bytes. There should be at most one of these set, so it's OK to invoke * them in series (unset marks will not result in callbacks). * * We use the NOADVANCE() variety of callbacks here because 'p' has already * overflowed 'data' and this allows us to correct for the off-by-one that * we'd otherwise have (since CALLBACK_DATA() is meant to be run with a 'p' * value that's in-bounds). */ assert(((header_field_mark ? 1 : 0) + (header_value_mark ? 1 : 0) + (url_mark ? 1 : 0) + (body_mark ? 1 : 0) + (status_mark ? 1 : 0)) <= 1); CALLBACK_DATA_NOADVANCE(header_field); CALLBACK_DATA_NOADVANCE(header_value); CALLBACK_DATA_NOADVANCE(url); CALLBACK_DATA_NOADVANCE(body); CALLBACK_DATA_NOADVANCE(status); RETURN(len); error: if (HTTP_PARSER_ERRNO(parser) == HPE_OK) { SET_ERRNO(HPE_UNKNOWN); } RETURN(p - data); } /* Does the parser need to see an EOF to find the end of the message? */ int http_message_needs_eof (const http_parser *parser) { if (parser->type == HTTP_REQUEST) { return 0; } /* See RFC 2616 section 4.4 */ if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */ parser->status_code == 204 || /* No Content */ parser->status_code == 304 || /* Not Modified */ parser->flags & F_SKIPBODY) { /* response to a HEAD request */ return 0; } if ((parser->flags & F_CHUNKED) || parser->content_length != ULLONG_MAX) { return 0; } return 1; } int http_should_keep_alive (const http_parser *parser) { if (parser->http_major > 0 && parser->http_minor > 0) { /* HTTP/1.1 */ if (parser->flags & F_CONNECTION_CLOSE) { return 0; } } else { /* HTTP/1.0 or earlier */ if (!(parser->flags & F_CONNECTION_KEEP_ALIVE)) { return 0; } } return !http_message_needs_eof(parser); } const char * http_method_str (enum http_method m) { return ELEM_AT(method_strings, m, ""); } void http_parser_init (http_parser *parser, enum http_parser_type t) { void *data = parser->data; /* preserve application data */ memset(parser, 0, sizeof(*parser)); parser->data = data; parser->type = t; parser->state = (t == HTTP_REQUEST ? s_start_req : (t == HTTP_RESPONSE ? s_start_res : s_start_req_or_res)); parser->http_errno = HPE_OK; } void http_parser_settings_init(http_parser_settings *settings) { memset(settings, 0, sizeof(*settings)); } const char * http_errno_name(enum http_errno err) { assert(((size_t) err) < (sizeof(http_strerror_tab) / sizeof(http_strerror_tab[0]))); return http_strerror_tab[err].name; } const char * http_errno_description(enum http_errno err) { assert(((size_t) err) < (sizeof(http_strerror_tab) / sizeof(http_strerror_tab[0]))); return http_strerror_tab[err].description; } static enum http_host_state http_parse_host_char(enum http_host_state s, const char ch) { switch(s) { case s_http_userinfo: case s_http_userinfo_start: if (ch == '@') { return s_http_host_start; } if (IS_USERINFO_CHAR(ch)) { return s_http_userinfo; } break; case s_http_host_start: if (ch == '[') { return s_http_host_v6_start; } if (IS_HOST_CHAR(ch)) { return s_http_host; } break; case s_http_host: if (IS_HOST_CHAR(ch)) { return s_http_host; } /* FALLTHROUGH */ case s_http_host_v6_end: if (ch == ':') { return s_http_host_port_start; } break; case s_http_host_v6: if (ch == ']') { return s_http_host_v6_end; } /* FALLTHROUGH */ case s_http_host_v6_start: if (IS_HEX(ch) || ch == ':' || ch == '.') { return s_http_host_v6; } break; case s_http_host_port: case s_http_host_port_start: if (IS_NUM(ch)) { return s_http_host_port; } break; default: break; } return s_http_host_dead; } static int http_parse_host(const char * buf, struct http_parser_url *u, int found_at) { enum http_host_state s; const char *p; size_t buflen = u->field_data[UF_HOST].off + u->field_data[UF_HOST].len; u->field_data[UF_HOST].len = 0; s = found_at ? s_http_userinfo_start : s_http_host_start; for (p = buf + u->field_data[UF_HOST].off; p < buf + buflen; p++) { enum http_host_state new_s = http_parse_host_char(s, *p); if (new_s == s_http_host_dead) { return 1; } switch(new_s) { case s_http_host: if (s != s_http_host) { u->field_data[UF_HOST].off = p - buf; } u->field_data[UF_HOST].len++; break; case s_http_host_v6: if (s != s_http_host_v6) { u->field_data[UF_HOST].off = p - buf; } u->field_data[UF_HOST].len++; break; case s_http_host_port: if (s != s_http_host_port) { u->field_data[UF_PORT].off = p - buf; u->field_data[UF_PORT].len = 0; u->field_set |= (1 << UF_PORT); } u->field_data[UF_PORT].len++; break; case s_http_userinfo: if (s != s_http_userinfo) { u->field_data[UF_USERINFO].off = p - buf ; u->field_data[UF_USERINFO].len = 0; u->field_set |= (1 << UF_USERINFO); } u->field_data[UF_USERINFO].len++; break; default: break; } s = new_s; } /* Make sure we don't end somewhere unexpected */ switch (s) { case s_http_host_start: case s_http_host_v6_start: case s_http_host_v6: case s_http_host_port_start: case s_http_userinfo: case s_http_userinfo_start: return 1; default: break; } return 0; } int http_parser_parse_url(const char *buf, size_t buflen, int is_connect, struct http_parser_url *u) { enum state s; const char *p; enum http_parser_url_fields uf, old_uf; int found_at = 0; u->port = u->field_set = 0; s = is_connect ? s_req_server_start : s_req_spaces_before_url; old_uf = UF_MAX; for (p = buf; p < buf + buflen; p++) { s = parse_url_char(s, *p); /* Figure out the next field that we're operating on */ switch (s) { case s_dead: return 1; /* Skip delimeters */ case s_req_schema_slash: case s_req_schema_slash_slash: case s_req_server_start: case s_req_query_string_start: case s_req_fragment_start: continue; case s_req_schema: uf = UF_SCHEMA; break; case s_req_server_with_at: found_at = 1; /* FALLTROUGH */ case s_req_server: uf = UF_HOST; break; case s_req_path: uf = UF_PATH; break; case s_req_query_string: uf = UF_QUERY; break; case s_req_fragment: uf = UF_FRAGMENT; break; default: assert(!"Unexpected state"); return 1; } /* Nothing's changed; soldier on */ if (uf == old_uf) { u->field_data[uf].len++; continue; } u->field_data[uf].off = p - buf; u->field_data[uf].len = 1; u->field_set |= (1 << uf); old_uf = uf; } /* host must be present if there is a schema */ /* parsing http:///toto will fail */ if ((u->field_set & ((1 << UF_SCHEMA) | (1 << UF_HOST))) != 0) { if (http_parse_host(buf, u, found_at) != 0) { return 1; } } /* CONNECT requests can only contain "hostname:port" */ if (is_connect && u->field_set != ((1 << UF_HOST)|(1 << UF_PORT))) { return 1; } if (u->field_set & (1 << UF_PORT)) { /* Don't bother with endp; we've already validated the string */ unsigned long v = strtoul(buf + u->field_data[UF_PORT].off, NULL, 10); /* Ports have a max value of 2^16 */ if (v > 0xffff) { return 1; } u->port = (uint16_t) v; } return 0; } void http_parser_pause(http_parser *parser, int paused) { /* Users should only be pausing/unpausing a parser that is not in an error * state. In non-debug builds, there's not much that we can do about this * other than ignore it. */ if (HTTP_PARSER_ERRNO(parser) == HPE_OK || HTTP_PARSER_ERRNO(parser) == HPE_PAUSED) { SET_ERRNO((paused) ? HPE_PAUSED : HPE_OK); } else { assert(0 && "Attempting to pause parser in error state"); } } int http_body_is_final(const struct http_parser *parser) { return parser->state == s_message_done; } unsigned long http_parser_version(void) { return HTTP_PARSER_VERSION_MAJOR * 0x10000 | HTTP_PARSER_VERSION_MINOR * 0x00100 | HTTP_PARSER_VERSION_PATCH * 0x00001; } deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/http_parser.h000066400000000000000000000273561473342170300247300ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef http_parser_h #define http_parser_h #ifdef __cplusplus extern "C" { #endif /* Also update SONAME in the Makefile whenever you change these. */ #define HTTP_PARSER_VERSION_MAJOR 2 #define HTTP_PARSER_VERSION_MINOR 5 #define HTTP_PARSER_VERSION_PATCH 0 #include #if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600) #include #include typedef __int8 int8_t; typedef unsigned __int8 uint8_t; typedef __int16 int16_t; typedef unsigned __int16 uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #else #include #endif /* Compile with -DHTTP_PARSER_STRICT=0 to make less checks, but run * faster */ #ifndef HTTP_PARSER_STRICT # define HTTP_PARSER_STRICT 1 #endif /* Maximium header size allowed. If the macro is not defined * before including this header then the default is used. To * change the maximum header size, define the macro in the build * environment (e.g. -DHTTP_MAX_HEADER_SIZE=). To remove * the effective limit on the size of the header, define the macro * to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff) */ #ifndef HTTP_MAX_HEADER_SIZE # define HTTP_MAX_HEADER_SIZE (80*1024) #endif typedef struct http_parser http_parser; typedef struct http_parser_settings http_parser_settings; /* Callbacks should return non-zero to indicate an error. The parser will * then halt execution. * * The one exception is on_headers_complete. In a HTTP_RESPONSE parser * returning '1' from on_headers_complete will tell the parser that it * should not expect a body. This is used when receiving a response to a * HEAD request which may contain 'Content-Length' or 'Transfer-Encoding: * chunked' headers that indicate the presence of a body. * * http_data_cb does not return data chunks. It will be called arbitrarily * many times for each string. E.G. you might get 10 callbacks for "on_url" * each providing just a few characters more data. */ typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); typedef int (*http_cb) (http_parser*); /* Request Methods */ #define HTTP_METHOD_MAP(XX) \ XX(0, DELETE, DELETE) \ XX(1, GET, GET) \ XX(2, HEAD, HEAD) \ XX(3, POST, POST) \ XX(4, PUT, PUT) \ /* pathological */ \ XX(5, CONNECT, CONNECT) \ XX(6, OPTIONS, OPTIONS) \ XX(7, TRACE, TRACE) \ /* webdav */ \ XX(8, COPY, COPY) \ XX(9, LOCK, LOCK) \ XX(10, MKCOL, MKCOL) \ XX(11, MOVE, MOVE) \ XX(12, PROPFIND, PROPFIND) \ XX(13, PROPPATCH, PROPPATCH) \ XX(14, SEARCH, SEARCH) \ XX(15, UNLOCK, UNLOCK) \ /* subversion */ \ XX(16, REPORT, REPORT) \ XX(17, MKACTIVITY, MKACTIVITY) \ XX(18, CHECKOUT, CHECKOUT) \ XX(19, MERGE, MERGE) \ /* upnp */ \ XX(20, MSEARCH, M-SEARCH) \ XX(21, NOTIFY, NOTIFY) \ XX(22, SUBSCRIBE, SUBSCRIBE) \ XX(23, UNSUBSCRIBE, UNSUBSCRIBE) \ /* RFC-5789 */ \ XX(24, PATCH, PATCH) \ XX(25, PURGE, PURGE) \ /* CalDAV */ \ XX(26, MKCALENDAR, MKCALENDAR) \ enum http_method { #define XX(num, name, string) HTTP_##name = num, HTTP_METHOD_MAP(XX) #undef XX }; enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; /* Flag values for http_parser.flags field */ enum flags { F_CHUNKED = 1 << 0 , F_CONNECTION_KEEP_ALIVE = 1 << 1 , F_CONNECTION_CLOSE = 1 << 2 , F_CONNECTION_UPGRADE = 1 << 3 , F_TRAILING = 1 << 4 , F_UPGRADE = 1 << 5 , F_SKIPBODY = 1 << 6 }; /* Map for errno-related constants * * The provided argument should be a macro that takes 2 arguments. */ #define HTTP_ERRNO_MAP(XX) \ /* No error */ \ XX(OK, "success") \ \ /* Callback-related errors */ \ XX(CB_message_begin, "the on_message_begin callback failed") \ XX(CB_url, "the on_url callback failed") \ XX(CB_header_field, "the on_header_field callback failed") \ XX(CB_header_value, "the on_header_value callback failed") \ XX(CB_headers_complete, "the on_headers_complete callback failed") \ XX(CB_body, "the on_body callback failed") \ XX(CB_message_complete, "the on_message_complete callback failed") \ XX(CB_status, "the on_status callback failed") \ XX(CB_chunk_header, "the on_chunk_header callback failed") \ XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ \ /* Parsing-related errors */ \ XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ XX(HEADER_OVERFLOW, \ "too many header bytes seen; overflow detected") \ XX(CLOSED_CONNECTION, \ "data received after completed connection: close message") \ XX(INVALID_VERSION, "invalid HTTP version") \ XX(INVALID_STATUS, "invalid HTTP status code") \ XX(INVALID_METHOD, "invalid HTTP method") \ XX(INVALID_URL, "invalid URL") \ XX(INVALID_HOST, "invalid host") \ XX(INVALID_PORT, "invalid port") \ XX(INVALID_PATH, "invalid path") \ XX(INVALID_QUERY_STRING, "invalid query string") \ XX(INVALID_FRAGMENT, "invalid fragment") \ XX(LF_EXPECTED, "LF character expected") \ XX(INVALID_HEADER_TOKEN, "invalid character in header") \ XX(INVALID_CONTENT_LENGTH, \ "invalid character in content-length header") \ XX(INVALID_CHUNK_SIZE, \ "invalid character in chunk size header") \ XX(INVALID_CONSTANT, "invalid constant string") \ XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\ XX(STRICT, "strict mode assertion failed") \ XX(PAUSED, "parser is paused") \ XX(UNKNOWN, "an unknown error occurred") /* Define HPE_* values for each errno value above */ #define HTTP_ERRNO_GEN(n, s) HPE_##n, enum http_errno { HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) }; #undef HTTP_ERRNO_GEN /* Get an http_errno value from an http_parser */ #define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno) struct http_parser { /** PRIVATE **/ unsigned int type : 2; /* enum http_parser_type */ unsigned int flags : 7; /* F_* values from 'flags' enum; semi-public */ unsigned int state : 7; /* enum state from http_parser.c */ unsigned int header_state : 8; /* enum header_state from http_parser.c */ unsigned int index : 8; /* index into current matcher */ uint32_t nread; /* # bytes read in various scenarios */ uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */ /** READ-ONLY **/ unsigned short http_major; unsigned short http_minor; unsigned int status_code : 16; /* responses only */ unsigned int method : 8; /* requests only */ unsigned int http_errno : 7; /* 1 = Upgrade header was present and the parser has exited because of that. * 0 = No upgrade header present. * Should be checked when http_parser_execute() returns in addition to * error checking. */ unsigned int upgrade : 1; /** PUBLIC **/ void *data; /* A pointer to get hook to the "connection" or "socket" object */ }; struct http_parser_settings { http_cb on_message_begin; http_data_cb on_url; http_data_cb on_status; http_data_cb on_header_field; http_data_cb on_header_value; http_cb on_headers_complete; http_data_cb on_body; http_cb on_message_complete; /* When on_chunk_header is called, the current chunk length is stored * in parser->content_length. */ http_cb on_chunk_header; http_cb on_chunk_complete; }; enum http_parser_url_fields { UF_SCHEMA = 0 , UF_HOST = 1 , UF_PORT = 2 , UF_PATH = 3 , UF_QUERY = 4 , UF_FRAGMENT = 5 , UF_USERINFO = 6 , UF_MAX = 7 }; /* Result structure for http_parser_parse_url(). * * Callers should index into field_data[] with UF_* values iff field_set * has the relevant (1 << UF_*) bit set. As a courtesy to clients (and * because we probably have padding left over), we convert any port to * a uint16_t. */ struct http_parser_url { uint16_t field_set; /* Bitmask of (1 << UF_*) values */ uint16_t port; /* Converted UF_PORT string */ struct { uint16_t off; /* Offset into buffer in which field starts */ uint16_t len; /* Length of run in buffer */ } field_data[UF_MAX]; }; /* Returns the library version. Bits 16-23 contain the major version number, * bits 8-15 the minor version number and bits 0-7 the patch level. * Usage example: * * unsigned long version = http_parser_version(); * unsigned major = (version >> 16) & 255; * unsigned minor = (version >> 8) & 255; * unsigned patch = version & 255; * printf("http_parser v%u.%u.%u\n", major, minor, patch); */ unsigned long http_parser_version(void); void http_parser_init(http_parser *parser, enum http_parser_type type); /* Initialize http_parser_settings members to 0 */ void http_parser_settings_init(http_parser_settings *settings); /* Executes the parser. Returns number of parsed bytes. Sets * `parser->http_errno` on error. */ size_t http_parser_execute(http_parser *parser, const http_parser_settings *settings, const char *data, size_t len); /* If http_should_keep_alive() in the on_headers_complete or * on_message_complete callback returns 0, then this should be * the last message on the connection. * If you are the server, respond with the "Connection: close" header. * If you are the client, close the connection. */ int http_should_keep_alive(const http_parser *parser); /* Returns a string version of the HTTP method. */ const char *http_method_str(enum http_method m); /* Return a string name of the given error */ const char *http_errno_name(enum http_errno err); /* Return a string description of the given error */ const char *http_errno_description(enum http_errno err); /* Parse a URL; return nonzero on failure */ int http_parser_parse_url(const char *buf, size_t buflen, int is_connect, struct http_parser_url *u); /* Pause or un-pause the parser; a nonzero value pauses */ void http_parser_pause(http_parser *parser, int paused); /* Checks if this is the final chunk of the body. */ int http_body_is_final(const http_parser *parser); #ifdef __cplusplus } #endif #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpconnection.cpp000066400000000000000000000212651473342170300261410ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "qhttpconnection.h" #include #include #include "http_parser.h" #include "qhttprequest.h" #include "qhttpresponse.h" /// @cond nodoc QHttpConnection::QHttpConnection(QTcpSocket *socket, QObject *parent) : QObject(parent), m_socket(socket), m_parser(0), m_parserSettings(0), m_request(0), m_transmitLen(0), m_transmitPos(0) { m_parser = (http_parser *)malloc(sizeof(http_parser)); http_parser_init(m_parser, HTTP_REQUEST); m_parserSettings = new http_parser_settings(); m_parserSettings->on_message_begin = MessageBegin; m_parserSettings->on_url = Url; m_parserSettings->on_header_field = HeaderField; m_parserSettings->on_header_value = HeaderValue; m_parserSettings->on_headers_complete = HeadersComplete; m_parserSettings->on_body = Body; m_parserSettings->on_message_complete = MessageComplete; m_parser->data = this; connect(socket, SIGNAL(readyRead()), this, SLOT(parseRequest())); connect(socket, SIGNAL(disconnected()), this, SLOT(socketDisconnected())); connect(socket, SIGNAL(bytesWritten(qint64)), this, SLOT(updateWriteCount(qint64))); } QHttpConnection::~QHttpConnection() { delete m_socket; m_socket = 0; free(m_parser); m_parser = 0; delete m_parserSettings; m_parserSettings = 0; } void QHttpConnection::socketDisconnected() { deleteLater(); if (m_request) { if (m_request->successful()) return; m_request->setSuccessful(false); Q_EMIT m_request->end(); } } void QHttpConnection::updateWriteCount(qint64 count) { Q_ASSERT(m_transmitPos + count <= m_transmitLen); m_transmitPos += count; if (m_transmitPos == m_transmitLen) { m_transmitLen = 0; m_transmitPos = 0; Q_EMIT allBytesWritten(); } } void QHttpConnection::parseRequest() { Q_ASSERT(m_parser); while (m_socket->bytesAvailable()) { QByteArray arr = m_socket->readAll(); http_parser_execute(m_parser, m_parserSettings, arr.constData(), arr.size()); } } void QHttpConnection::write(const QByteArray &data) { m_socket->write(data); m_transmitLen += data.size(); } bool QHttpConnection::flush() { return m_socket->flush(); } void QHttpConnection::waitForBytesWritten(int msecs) { m_socket->waitForBytesWritten(msecs); } bool QHttpConnection::isWritable() { return m_socket->isWritable(); } void QHttpConnection::responseDone() { QHttpResponse *response = qobject_cast(QObject::sender()); if (response->m_last) m_socket->disconnectFromHost(); } /* URL Utilities */ #define HAS_URL_FIELD(info, field) (info.field_set &(1 << (field))) #define GET_FIELD(data, info, field) \ QString::fromLatin1(data + info.field_data[field].off, info.field_data[field].len) #define CHECK_AND_GET_FIELD(data, info, field) \ (HAS_URL_FIELD(info, field) ? GET_FIELD(data, info, field) : QString()) QUrl createUrl(const char *urlData, const http_parser_url &urlInfo) { QUrl url; url.setScheme(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_SCHEMA)); url.setHost(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_HOST)); // Port is dealt with separately since it is available as an integer. url.setPath(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_PATH)); #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) url.setQuery(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_QUERY)); #else if (HAS_URL_FIELD(urlInfo, UF_QUERY)) { url.setEncodedQuery(QByteArray(urlData + urlInfo.field_data[UF_QUERY].off, urlInfo.field_data[UF_QUERY].len)); } #endif url.setFragment(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_FRAGMENT)); url.setUserInfo(CHECK_AND_GET_FIELD(urlData, urlInfo, UF_USERINFO)); if (HAS_URL_FIELD(urlInfo, UF_PORT)) url.setPort(urlInfo.port); return url; } #undef CHECK_AND_SET_FIELD #undef GET_FIELD #undef HAS_URL_FIELD /******************** * Static Callbacks * *******************/ int QHttpConnection::MessageBegin(http_parser *parser) { QHttpConnection *theConnection = static_cast(parser->data); theConnection->m_currentHeaders.clear(); theConnection->m_currentUrl.clear(); theConnection->m_currentUrl.reserve(128); // The QHttpRequest should not be parented to this, since it's memory // management is the responsibility of the user of the library. theConnection->m_request = new QHttpRequest(theConnection); return 0; } int QHttpConnection::HeadersComplete(http_parser *parser) { QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); /** set method **/ theConnection->m_request->setMethod(static_cast(parser->method)); /** set version **/ theConnection->m_request->setVersion( QString("%1.%2").arg(parser->http_major).arg(parser->http_minor)); /** get parsed url **/ struct http_parser_url urlInfo; int r = http_parser_parse_url(theConnection->m_currentUrl.constData(), theConnection->m_currentUrl.size(), parser->method == HTTP_CONNECT, &urlInfo); Q_ASSERT(r == 0); Q_UNUSED(r); theConnection->m_request->setUrl(createUrl(theConnection->m_currentUrl.constData(), urlInfo)); // Insert last remaining header theConnection->m_currentHeaders[theConnection->m_currentHeaderField.toLower()] = theConnection->m_currentHeaderValue; theConnection->m_request->setHeaders(theConnection->m_currentHeaders); /** set client information **/ theConnection->m_request->m_remoteAddress = theConnection->m_socket->peerAddress().toString(); theConnection->m_request->m_remotePort = theConnection->m_socket->peerPort(); QHttpResponse *response = new QHttpResponse(theConnection); if (parser->http_major < 1 || parser->http_minor < 1) response->m_keepAlive = false; connect(theConnection, SIGNAL(destroyed()), response, SLOT(connectionClosed())); connect(response, SIGNAL(done()), theConnection, SLOT(responseDone())); // we are good to go! Q_EMIT theConnection->newRequest(theConnection->m_request, response); return 0; } int QHttpConnection::MessageComplete(http_parser *parser) { // TODO: do cleanup and prepare for next request QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); theConnection->m_request->setSuccessful(true); Q_EMIT theConnection->m_request->end(); return 0; } int QHttpConnection::Url(http_parser *parser, const char *at, size_t length) { QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); theConnection->m_currentUrl.append(at, length); return 0; } int QHttpConnection::HeaderField(http_parser *parser, const char *at, size_t length) { QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); // insert the header we parsed previously // into the header map if (!theConnection->m_currentHeaderField.isEmpty() && !theConnection->m_currentHeaderValue.isEmpty()) { // header names are always lower-cased theConnection->m_currentHeaders[theConnection->m_currentHeaderField.toLower()] = theConnection->m_currentHeaderValue; // clear header value. this sets up a nice // feedback loop where the next time // HeaderValue is called, it can simply append theConnection->m_currentHeaderField = QString(); theConnection->m_currentHeaderValue = QString(); } QString fieldSuffix = QString::fromLatin1(at, length); theConnection->m_currentHeaderField += fieldSuffix; return 0; } int QHttpConnection::HeaderValue(http_parser *parser, const char *at, size_t length) { QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); QString valueSuffix = QString::fromLatin1(at, length); theConnection->m_currentHeaderValue += valueSuffix; return 0; } int QHttpConnection::Body(http_parser *parser, const char *at, size_t length) { QHttpConnection *theConnection = static_cast(parser->data); Q_ASSERT(theConnection->m_request); Q_EMIT theConnection->m_request->data(QByteArray(at, length)); return 0; } /// @endcond deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpconnection.h000066400000000000000000000034651473342170300256100ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_CONNECTION #define Q_HTTP_CONNECTION #include "qhttpserverapi.h" #include "qhttpserverfwd.h" #include /// @cond nodoc class QHTTPSERVER_API QHttpConnection : public QObject { Q_OBJECT public: QHttpConnection(QTcpSocket *socket, QObject *parent = 0); virtual ~QHttpConnection(); void write(const QByteArray &data); bool flush(); void waitForBytesWritten(int msecs = 30000); bool isWritable(); Q_SIGNALS: void newRequest(QHttpRequest *, QHttpResponse *); void allBytesWritten(); private Q_SLOTS: void parseRequest(); void responseDone(); void socketDisconnected(); void updateWriteCount(qint64); private: static int MessageBegin(http_parser *parser); static int Url(http_parser *parser, const char *at, size_t length); static int HeaderField(http_parser *parser, const char *at, size_t length); static int HeaderValue(http_parser *parser, const char *at, size_t length); static int HeadersComplete(http_parser *parser); static int Body(http_parser *parser, const char *at, size_t length); static int MessageComplete(http_parser *parser); private: QTcpSocket *m_socket; http_parser *m_parser; http_parser_settings *m_parserSettings; // Since there can only be one request at any time even with pipelining. QHttpRequest *m_request; QByteArray m_currentUrl; // The ones we are reading in from the parser HeaderHash m_currentHeaders; QString m_currentHeaderField; QString m_currentHeaderValue; // Keep track of transmit buffer status qint64 m_transmitLen; qint64 m_transmitPos; }; /// @endcond #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttprequest.cpp000066400000000000000000000030771473342170300254730ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "qhttprequest.h" #include "qhttpconnection.h" QHttpRequest::QHttpRequest(QHttpConnection *connection, QObject *parent) : QObject(parent), m_connection(connection), m_url("http://localhost/"), m_success(false) { } QHttpRequest::~QHttpRequest() { } QString QHttpRequest::header(const QString &field) { return m_headers.value(field.toLower(), ""); } const HeaderHash &QHttpRequest::headers() const { return m_headers; } const QString &QHttpRequest::httpVersion() const { return m_version; } const QUrl &QHttpRequest::url() const { return m_url; } const QString QHttpRequest::path() const { return m_url.path(); } const QString QHttpRequest::methodString() const { return MethodToString(method()); } QHttpRequest::HttpMethod QHttpRequest::method() const { return m_method; } const QString &QHttpRequest::remoteAddress() const { return m_remoteAddress; } quint16 QHttpRequest::remotePort() const { return m_remotePort; } void QHttpRequest::storeBody() { connect(this, SIGNAL(data(const QByteArray &)), this, SLOT(appendBody(const QByteArray &)), Qt::UniqueConnection); } QString QHttpRequest::MethodToString(HttpMethod method) { int index = staticMetaObject.indexOfEnumerator("HttpMethod"); return staticMetaObject.enumerator(index).valueToKey(method); } void QHttpRequest::appendBody(const QByteArray &body) { m_body.append(body); } deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttprequest.h000066400000000000000000000131021473342170300251260ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_REQUEST #define Q_HTTP_REQUEST #include "qhttpserverapi.h" #include "qhttpserverfwd.h" #include #include #include #include /// The QHttpRequest class represents the header and body data sent by the client. /** The requests header data is available immediately. Body data is streamed as it comes in via the data() signal. As a consequence the application's request callback should ensure that it connects to the data() signal before control returns back to the event loop. Otherwise there is a risk of some data never being received by the application. The class is read-only. */ class QHTTPSERVER_API QHttpRequest : public QObject { Q_OBJECT Q_PROPERTY(HeaderHash headers READ headers) Q_PROPERTY(QString remoteAddress READ remoteAddress) Q_PROPERTY(quint16 remotePort READ remotePort) Q_PROPERTY(QString method READ method) Q_PROPERTY(QUrl url READ url) Q_PROPERTY(QString path READ path) Q_PROPERTY(QString httpVersion READ httpVersion) Q_ENUMS(HttpMethod) /// @cond nodoc friend class QHttpConnection; /// @endcond public: virtual ~QHttpRequest(); /// Request method enumeration. /** @note Taken from http_parser.h -- make sure to keep synced */ enum HttpMethod { HTTP_DELETE = 0, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, // pathological HTTP_CONNECT, HTTP_OPTIONS, HTTP_TRACE, // webdav HTTP_COPY, HTTP_LOCK, HTTP_MKCOL, HTTP_MOVE, HTTP_PROPFIND, HTTP_PROPPATCH, HTTP_SEARCH, HTTP_UNLOCK, // subversion HTTP_REPORT, HTTP_MKACTIVITY, HTTP_CHECKOUT, HTTP_MERGE, // upnp HTTP_MSEARCH, HTTP_NOTIFY, HTTP_SUBSCRIBE, HTTP_UNSUBSCRIBE, // RFC-5789 HTTP_PATCH, HTTP_PURGE }; /// The method used for the request. HttpMethod method() const; /// Returns the method string for the request. /** @note This will plainly transform the enum into a string HTTP_GET -> "HTTP_GET". */ const QString methodString() const; /// The complete URL for the request. /** This includes the path and query string. @sa path() */ const QUrl &url() const; /// The path portion of the query URL. /** @sa url() */ const QString path() const; /// The HTTP version of the request. /** @return A string in the form of "x.x" */ const QString &httpVersion() const; /// Return all the headers sent by the client. /** This returns a reference. If you want to store headers somewhere else, where the request may be deleted, make sure you store them as a copy. @note All header names are lowercase so that Content-Length becomes content-length etc. */ const HeaderHash &headers() const; /// Get the value of a header. /** Headers are stored as lowercase so the input @c field will be lowercased. @param field Name of the header field @return Value of the header or empty string if not found. */ QString header(const QString &field); /// IP Address of the client in dotted decimal format. const QString &remoteAddress() const; /// Outbound connection port for the client. quint16 remotePort() const; /// Request body data, empty for non POST/PUT requests. /** @sa storeBody() */ const QByteArray &body() const { return m_body; } /// If this request was successfully received. /** Set before end() has been emitted, stating whether the message was properly received. This is false until the receiving the full request has completed. */ bool successful() const { return m_success; } /// Utility function to make this request store all body data internally. /** If you call this when the request is received via QHttpServer::newRequest() the request will take care of storing the body data for you. Once the end() signal is emitted you can access the body data with the body() function. If you wish to handle incoming data yourself don't call this function and see the data() signal. @sa data() body() */ void storeBody(); Q_SIGNALS: /// Emitted when new body data has been received. /** @note This may be emitted zero or more times depending on the request type. @param data Received data. */ void data(const QByteArray &data); /// Emitted when the request has been fully received. /** @note The no more data() signals will be emitted after this. */ void end(); private Q_SLOTS: void appendBody(const QByteArray &body); private: QHttpRequest(QHttpConnection *connection, QObject *parent = 0); static QString MethodToString(HttpMethod method); void setMethod(HttpMethod method) { m_method = method; } void setVersion(const QString &version) { m_version = version; } void setUrl(const QUrl &url) { m_url = url; } void setHeaders(const HeaderHash headers) { m_headers = headers; } void setSuccessful(bool success) { m_success = success; } QHttpConnection *m_connection; HeaderHash m_headers; HttpMethod m_method; QUrl m_url; QString m_version; QString m_remoteAddress; quint16 m_remotePort; QByteArray m_body; bool m_success; }; #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpresponse.cpp000066400000000000000000000124311473342170300256330ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "qhttpresponse.h" #include #include #include "qhttpserver.h" #include "qhttpconnection.h" QHttpResponse::QHttpResponse(QHttpConnection *connection) // TODO: parent child relation : QObject(0), m_connection(connection), m_headerWritten(false), m_sentConnectionHeader(false), m_sentContentLengthHeader(false), m_sentTransferEncodingHeader(false), m_sentDate(false), m_keepAlive(true), m_last(false), m_useChunkedEncoding(false), m_finished(false) { connect(m_connection, SIGNAL(allBytesWritten()), this, SIGNAL(allBytesWritten())); } QHttpResponse::~QHttpResponse() { } void QHttpResponse::setHeader(const QString &field, const QString &value) { if (!m_finished) m_headers[field] = value; else qWarning() << "QHttpResponse::setHeader() Cannot set headers after response has finished."; } void QHttpResponse::writeHeader(const char *field, const QString &value) { //qDebug() << "writeHeader" << field << value.toUtf8(); if (!m_finished) { m_connection->write(field); m_connection->write(": "); m_connection->write(value.toUtf8()); m_connection->write("\r\n"); } else qWarning() << "QHttpResponse::writeHeader() Cannot write headers after response has finished."; } void QHttpResponse::writeHeaders() { if (m_finished) return; foreach(const QString & name, m_headers.keys()) { QString value = m_headers[name]; if (name.compare("connection", Qt::CaseInsensitive) == 0) { m_sentConnectionHeader = true; if (value.compare("close", Qt::CaseInsensitive) == 0) m_last = true; else m_keepAlive = true; } else if (name.compare("transfer-encoding", Qt::CaseInsensitive) == 0) { m_sentTransferEncodingHeader = true; if (value.compare("chunked", Qt::CaseInsensitive) == 0) m_useChunkedEncoding = true; } else if (name.compare("content-length", Qt::CaseInsensitive) == 0) m_sentContentLengthHeader = true; else if (name.compare("date", Qt::CaseInsensitive) == 0) m_sentDate = true; /// @todo Expect case (??) //qDebug() << "writeHeaders" << name.toLatin1() << value.toLatin1(); //writeHeader(name.toLatin1(), value.toLatin1()); writeHeader(name.toLatin1(), value); } if (!m_sentConnectionHeader) { if (m_keepAlive && (m_sentContentLengthHeader || m_useChunkedEncoding)) { writeHeader("Connection", "keep-alive"); } else { m_last = true; writeHeader("Connection", "close"); } } if (!m_sentContentLengthHeader && !m_sentTransferEncodingHeader) { if (m_useChunkedEncoding) writeHeader("Transfer-Encoding", "chunked"); else m_last = true; } // Sun, 06 Nov 1994 08:49:37 GMT - RFC 822. Use QLocale::c() so english is used for month and // day. if (!m_sentDate) writeHeader("Date", QLocale::c().toString(QDateTime::currentDateTimeUtc(), "ddd, dd MMM yyyy hh:mm:ss") + " GMT"); } bool QHttpResponse::isFinished() { return m_finished; } bool QHttpResponse::isHeaderWritten() { return m_headerWritten; } bool QHttpResponse::isWritable() { return m_connection->isWritable(); } void QHttpResponse::writeHead(int status) { if (m_finished) { qWarning() << "QHttpResponse::writeHead() Cannot write headers after response has finished."; return; } if (m_headerWritten) { qWarning() << "QHttpResponse::writeHead() Already called once for this response."; return; } m_connection->write( QString("HTTP/1.1 %1 %2\r\n").arg(status).arg(STATUS_CODES[status]).toLatin1()); writeHeaders(); m_connection->write("\r\n"); m_headerWritten = true; } void QHttpResponse::writeHead(StatusCode statusCode) { writeHead(static_cast(statusCode)); } void QHttpResponse::write(const QByteArray &data) { if (m_finished) { qWarning() << "QHttpResponse::write() Cannot write body after response has finished."; return; } if (!m_headerWritten) { qWarning() << "QHttpResponse::write() You must call writeHead() before writing body data."; return; } m_connection->write(data); } bool QHttpResponse::flush() { return m_connection->flush(); } void QHttpResponse::waitForBytesWritten(int msecs) { m_connection->waitForBytesWritten(msecs); } void QHttpResponse::end(const QByteArray &data) { if (m_finished) { qWarning() << "QHttpResponse::end() Cannot write end after response has finished."; return; } if (data.size() > 0) write(data); m_finished = true; Q_EMIT done(); /// @todo End connection and delete ourselves. Is this a still valid note? deleteLater(); } void QHttpResponse::connectionClosed() { qWarning() << "QHttpResponse::connectionClosed()"; m_finished = true; Q_EMIT done(); deleteLater(); } deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpresponse.h000066400000000000000000000122001473342170300252720ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_RESPONSE #define Q_HTTP_RESPONSE #include "qhttpserverapi.h" #include "qhttpserverfwd.h" #include /// The QHttpResponse class handles sending data back to the client as a response to a request. /** The steps to respond correctly are
  1. Call setHeader() to set headers [optional]
  2. Call writeHead() with the HTTP status code
  3. Call write() zero or more times for body data.
  4. Call end() when the resonse can be sent back
*/ class QHTTPSERVER_API QHttpResponse : public QObject { Q_OBJECT public: /// HTTP status code. enum StatusCode { STATUS_CONTINUE = 100, STATUS_SWITCH_PROTOCOLS = 101, STATUS_OK = 200, STATUS_CREATED = 201, STATUS_ACCEPTED = 202, STATUS_NON_AUTHORITATIVE_INFORMATION = 203, STATUS_NO_CONTENT = 204, STATUS_RESET_CONTENT = 205, STATUS_PARTIAL_CONTENT = 206, STATUS_MULTIPLE_CHOICES = 300, STATUS_MOVED_PERMANENTLY = 301, STATUS_FOUND = 302, STATUS_SEE_OTHER = 303, STATUS_NOT_MODIFIED = 304, STATUS_USE_PROXY = 305, STATUS_TEMPORARY_REDIRECT = 307, STATUS_BAD_REQUEST = 400, STATUS_UNAUTHORIZED = 401, STATUS_PAYMENT_REQUIRED = 402, STATUS_FORBIDDEN = 403, STATUS_NOT_FOUND = 404, STATUS_METHOD_NOT_ALLOWED = 405, STATUS_NOT_ACCEPTABLE = 406, STATUS_PROXY_AUTHENTICATION_REQUIRED = 407, STATUS_REQUEST_TIMEOUT = 408, STATUS_CONFLICT = 409, STATUS_GONE = 410, STATUS_LENGTH_REQUIRED = 411, STATUS_PRECONDITION_FAILED = 412, STATUS_REQUEST_ENTITY_TOO_LARGE = 413, STATUS_REQUEST_URI_TOO_LONG = 414, STATUS_REQUEST_UNSUPPORTED_MEDIA_TYPE = 415, STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416, STATUS_EXPECTATION_FAILED = 417, STATUS_INTERNAL_SERVER_ERROR = 500, STATUS_NOT_IMPLEMENTED = 501, STATUS_BAD_GATEWAY = 502, STATUS_SERVICE_UNAVAILABLE = 503, STATUS_GATEWAY_TIMEOUT = 504, STATUS_HTTP_VERSION_NOT_SUPPORTED = 505 }; bool isFinished(); bool isHeaderWritten(); bool isWritable(); virtual ~QHttpResponse(); /// @cond nodoc friend class QHttpConnection; /// @endcond public Q_SLOTS: /// Sets a response header @c field to @c value. /** @note You must call this with all your custom headers before calling writeHead(), write() or end(). @param field Header field to be set. @param value Header value to be set. */ void setHeader(const QString &field, const QString &value); /// Writes the header section of the response /// using @c status as the response status code. /** @param statusCode Status code for the response. @note Any headers should be set before invoking this function with setHeader(). */ void writeHead(int statusCode); /** @overload */ void writeHead(StatusCode statusCode); /// Writes a block of @c data to the client. /** @note writeHead() must be called before this function. */ void write(const QByteArray &data); /// Flushes the written data to the client. /** @note writeHead() must be called before this function. */ bool flush(); /// Waiting for bytes to be written. See QAbstractSocket::waitForBytesWritten in the Qt documentation /** @note writeHead() must be called before this function. */ void waitForBytesWritten(int msecs = 30000); /// End/finish the response. /** Data will be flushed to the underlying socket and the connection itself will be closed if this is the last response. This will emit done() and queue this object for deletion. For details see \ref memorymanagement. @param data Optional data to be written before finishing. */ void end(const QByteArray &data = ""); Q_SIGNALS: /// Emitted when all the data has been sent /** This signal indicates that the underlaying socket has transmitted all of it's buffered data. It is possible to implement memory-efficient file transfers by calling \ref write() for a block of data only after receiving this signal. */ void allBytesWritten(); /// Emitted when the response is finished. /** You should not interact with this object after done() has been emitted as the object has already been scheduled for deletion. */ void done(); private: QHttpResponse(QHttpConnection *connection); void writeHeaders(); void writeHeader(const char *field, const QString &value); QHttpConnection *m_connection; HeaderHash m_headers; bool m_headerWritten; bool m_sentConnectionHeader; bool m_sentContentLengthHeader; bool m_sentTransferEncodingHeader; bool m_sentDate; bool m_keepAlive; bool m_last; bool m_useChunkedEncoding; bool m_finished; private Q_SLOTS: void connectionClosed(); }; #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpserver.cpp000066400000000000000000000073671473342170300253170ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "qhttpserver.h" #include #include #include #include #include "qhttpconnection.h" QHash STATUS_CODES; QHttpServer::QHttpServer(QObject *parent) : QObject(parent), m_tcpServer(0) { #define STATUS_CODE(num, reason) STATUS_CODES.insert(num, reason); // {{{ STATUS_CODE(100, "Continue") STATUS_CODE(101, "Switching Protocols") STATUS_CODE(102, "Processing") // RFC 2518) obsoleted by RFC 4918 STATUS_CODE(200, "OK") STATUS_CODE(201, "Created") STATUS_CODE(202, "Accepted") STATUS_CODE(203, "Non-Authoritative Information") STATUS_CODE(204, "No Content") STATUS_CODE(205, "Reset Content") STATUS_CODE(206, "Partial Content") STATUS_CODE(207, "Multi-Status") // RFC 4918 STATUS_CODE(300, "Multiple Choices") STATUS_CODE(301, "Moved Permanently") STATUS_CODE(302, "Moved Temporarily") STATUS_CODE(303, "See Other") STATUS_CODE(304, "Not Modified") STATUS_CODE(305, "Use Proxy") STATUS_CODE(307, "Temporary Redirect") STATUS_CODE(400, "Bad Request") STATUS_CODE(401, "Unauthorized") STATUS_CODE(402, "Payment Required") STATUS_CODE(403, "Forbidden") STATUS_CODE(404, "Not Found") STATUS_CODE(405, "Method Not Allowed") STATUS_CODE(406, "Not Acceptable") STATUS_CODE(407, "Proxy Authentication Required") STATUS_CODE(408, "Request Time-out") STATUS_CODE(409, "Conflict") STATUS_CODE(410, "Gone") STATUS_CODE(411, "Length Required") STATUS_CODE(412, "Precondition Failed") STATUS_CODE(413, "Request Entity Too Large") STATUS_CODE(414, "Request-URI Too Large") STATUS_CODE(415, "Unsupported Media Type") STATUS_CODE(416, "Requested Range Not Satisfiable") STATUS_CODE(417, "Expectation Failed") STATUS_CODE(418, "I\"m a teapot") // RFC 2324 STATUS_CODE(422, "Unprocessable Entity") // RFC 4918 STATUS_CODE(423, "Locked") // RFC 4918 STATUS_CODE(424, "Failed Dependency") // RFC 4918 STATUS_CODE(425, "Unordered Collection") // RFC 4918 STATUS_CODE(426, "Upgrade Required") // RFC 2817 STATUS_CODE(500, "Internal Server Error") STATUS_CODE(501, "Not Implemented") STATUS_CODE(502, "Bad Gateway") STATUS_CODE(503, "Service Unavailable") STATUS_CODE(504, "Gateway Time-out") STATUS_CODE(505, "HTTP Version not supported") STATUS_CODE(506, "Variant Also Negotiates") // RFC 2295 STATUS_CODE(507, "Insufficient Storage") // RFC 4918 STATUS_CODE(509, "Bandwidth Limit Exceeded") STATUS_CODE(510, "Not Extended") // RFC 2774 // }}} } QHttpServer::~QHttpServer() { } void QHttpServer::newConnection() { Q_ASSERT(m_tcpServer); while (m_tcpServer->hasPendingConnections()) { QHttpConnection *connection = new QHttpConnection(m_tcpServer->nextPendingConnection(), this); connect(connection, SIGNAL(newRequest(QHttpRequest *, QHttpResponse *)), this, SIGNAL(newRequest(QHttpRequest *, QHttpResponse *))); } } bool QHttpServer::listen(const QHostAddress &address, quint16 port) { Q_ASSERT(!m_tcpServer); m_tcpServer = new QTcpServer(this); bool couldBindToPort = m_tcpServer->listen(address, port); if (couldBindToPort) { connect(m_tcpServer, SIGNAL(newConnection()), this, SLOT(newConnection())); } else { delete m_tcpServer; m_tcpServer = NULL; } return couldBindToPort; } bool QHttpServer::listen(quint16 port) { return listen(QHostAddress::Any, port); } void QHttpServer::close() { if (m_tcpServer) m_tcpServer->close(); } deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpserver.h000066400000000000000000000053701473342170300247540ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_SERVER #define Q_HTTP_SERVER #define QHTTPSERVER_VERSION_MAJOR 0 #define QHTTPSERVER_VERSION_MINOR 1 #define QHTTPSERVER_VERSION_PATCH 0 #include "qhttpserverapi.h" #include "qhttpserverfwd.h" #include #include /// Maps status codes to string reason phrases extern QHash STATUS_CODES; /// The QHttpServer class forms the basis of the %QHttpServer /// project. It is a fast, non-blocking HTTP server. /** These are the steps to create a server, handle and respond to requests:
  1. Create an instance of QHttpServer.
  2. Connect a slot to the newRequest() signal.
  3. Create a QCoreApplication to drive the server event loop.
  4. Respond to clients by writing out to the QHttpResponse object.
Here is a simple sample application on how to use this library helloworld.cpp @include helloworld/helloworld.cpp helloworld.h @include helloworld/helloworld.h */ class QHTTPSERVER_API QHttpServer : public QObject { Q_OBJECT public: /// Construct a new HTTP Server. /** @param parent Parent QObject for the server. */ QHttpServer(QObject *parent = 0); virtual ~QHttpServer(); /// Start the server by bounding to the given @c address and @c port. /** @note This function returns immediately, it does not block. @param address Address on which to listen to. Default is to listen on all interfaces which means the server can be accessed from anywhere. @param port Port number on which the server should run. @return True if the server was started successfully, false otherwise. @sa listen(quint16) */ bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 80); /// Starts the server on @c port listening on all interfaces. /** @param port Port number on which the server should run. @return True if the server was started successfully, false otherwise. @sa listen(const QHostAddress&, quint16) */ bool listen(quint16 port); /// Stop the server and listening for new connections. void close(); Q_SIGNALS: /// Emitted when a client makes a new request to the server. /** The slot should use the given @c request and @c response objects to communicate with the client. @param request New incoming request. @param response Response object to the request. */ void newRequest(QHttpRequest *request, QHttpResponse *response); private Q_SLOTS: void newConnection(); private: QTcpServer *m_tcpServer; }; #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpserverapi.h000066400000000000000000000020351473342170300254410ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_SERVER_API #define Q_HTTP_SERVER_API #include #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) #ifdef Q_OS_WIN // Define to export or import depending if we are building or using the library. // QHTTPSERVER_EXPORT should only be defined when building. #if defined(QHTTPSERVER_EXPORT) #define QHTTPSERVER_API __declspec(dllexport) #else #define QHTTPSERVER_API __declspec(dllimport) #endif #else // Define empty for other platforms #define QHTTPSERVER_API #endif #else #ifdef Q_WS_WIN // Define to export or import depending if we are building or using the library. // QHTTPSERVER_EXPORT should only be defined when building. #if defined(QHTTPSERVER_EXPORT) #define QHTTPSERVER_API __declspec(dllexport) #else #define QHTTPSERVER_API __declspec(dllimport) #endif #else // Define empty for other platforms #define QHTTPSERVER_API #endif #endif #endif deepin-movie-reborn-5.15.10/src/dlna/dlnaHttpServer/qhttpserverfwd.h000066400000000000000000000010771473342170300254550ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Q_HTTP_SERVER_FWD #define Q_HTTP_SERVER_FWD #include #include /*! * A map of request or response headers */ typedef QHash HeaderHash; // QHttpServer class QHttpServer; class QHttpConnection; class QHttpRequest; class QHttpResponse; // Qt class QTcpServer; class QTcpSocket; // http_parser struct http_parser_settings; struct http_parser; #endif deepin-movie-reborn-5.15.10/src/dlna/dlnacontentserver.cpp000066400000000000000000000264131473342170300235140ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "dlnacontentserver.h" #include #include #include #include static const qint64 qlen = 2048; const QString dlnaOrgOpFlagsSeekBytes{"DLNA.ORG_OP=01"}; const QString dlnaOrgOpFlagsNoSeek{"DLNA.ORG_OP=00"}; const QString dlnaOrgCiFlags{"DLNA.ORG_CI=0"}; DlnaContentServer::DlnaContentServer(QObject *parent, int nPort) : QObject(parent) { qRegisterMetaType>("std::shared_ptr"); m_httpServer = NULL; m_pThread = new QThread; moveToThread(m_pThread); qInfo() << "main thread:" << QThread::currentThreadId(); connect(m_pThread, &QThread::finished, this, &QObject::deleteLater); connect(m_pThread, &QThread::started, [=](){ m_bStartHttpServer = initializeHttpServer(nPort); if(!m_bStartHttpServer) { qInfo() << "http Server start failed!"; } }); m_pThread->start(); } DlnaContentServer::~DlnaContentServer() { if(m_pThread) { m_pThread->quit(); m_pThread->wait(); m_pThread->deleteLater(); m_pThread = NULL; } } /** * @brief initializeHttpServer 初始化HttpServer * @param port Http服务端口 */ bool DlnaContentServer::initializeHttpServer(int port) { qInfo() << "Worker()" << "thread:" << QThread::currentThreadId(); bool bServer = false; if(!m_httpServer) { m_httpServer = new QHttpServer(parent()); connect(m_httpServer, &QHttpServer::newRequest, this, &DlnaContentServer::requestHandler); bServer = m_httpServer->listen(QHostAddress::Any, port); if(!bServer) { m_httpServer->deleteLater(); m_httpServer = NULL; return bServer; } connect(this, &DlnaContentServer::contSeqWriteData, this, &DlnaContentServer::seqWriteData, Qt::QueuedConnection); connect(this, &DlnaContentServer::closeServer, [=](){ m_httpServer->close(); m_httpServer->deleteLater(); m_httpServer = NULL; }); } return bServer; } /** * @brief slotBaseMuteChanged 请求传输文件数据 * @param req Http请求 * @param resp Http应答 */ void DlnaContentServer::requestHandler(QHttpRequest *req, QHttpResponse *resp) { streamFile(m_sDlnaFileName, "", req, resp); connect(this, &DlnaContentServer::closeServer, [=](){ req->end(); }); } /** * @brief streamFile 传输文件流数据 * @param file Http传输文件 * @param mime 视频格式 * @param req Http请求 * @param resp Http应答 */ void DlnaContentServer::streamFile(const QString &path, const QString &mime, QHttpRequest *req, QHttpResponse *resp) { if(!req || !resp) return; auto file = std::make_shared(path); if (!file->open(QFile::ReadOnly)) { qWarning() << "Unable to open file:" << file->fileName(); sendEmptyResponse(resp, 500); return; } const auto &headers = req->headers(); resp->setHeader("Content-Type", mime); resp->setHeader("Accept-Ranges", "bytes"); resp->setHeader("Connection", "close"); resp->setHeader("Cache-Control", "no-cache"); resp->setHeader("TransferMode.DLNA.ORG", "Streaming"); resp->setHeader("contentFeatures.DLNA.ORG", dlnaContentFeaturesHeader(mime)); if (headers.contains("range")) { streamFileRange(file, req, resp); } else { streamFileNoRange(file, req, resp); } } /** * @brief streamFileRange 断点续传流 * @param file Http传输文件 * @param req Http请求 * @param resp Http应答 */ void DlnaContentServer::streamFileRange(std::shared_ptr file, QHttpRequest *req, QHttpResponse *resp) { if(!req || !resp) return; const auto length = file->bytesAvailable(); const auto range = Range::fromRange(req->headers().value("range"), length); if (!range) { qWarning() << "Unable to read on invalid Range header"; sendEmptyResponse(resp, 416); } resp->setHeader("Content-Length", QString::number(range->rangeLength())); resp->setHeader("Content-Range", "bytes " + QString::number(range->start) + "-" + QString::number(range->end) + "/" + QString::number(length)); resp->writeHead(206); file->seek(range->start); seqWriteData(file, range->rangeLength(), resp); } /** * @brief streamFileNoRange 全部流 * @param file Http传输文件 * @param req Http请求 * @param resp Http应答 */ void DlnaContentServer::streamFileNoRange(std::shared_ptr file, QHttpRequest *req, QHttpResponse *resp) { if(!req || !resp) return; const auto length = file->bytesAvailable(); resp->setHeader("Content-Length", QString::number(length)); resp->writeHead(200); seqWriteData(file, length, resp); } std::optional DlnaContentServer::Range::fromRange( const QString &rangeHeader, qint64 length) { QRegExp rx{"bytes[\\s]*=[\\s]*([\\d]+)-([\\d]*)"}; if (rx.indexIn(rangeHeader) >= 0) { Range range{rx.cap(1).toLongLong(), rx.cap(2).toLongLong(), length}; if (range.length <= 0) range.length = -1; if (range.end <= 0) range.end = -1; if (length > 0) { if (range.end < 0) range.end = length - 1; if (range.start < length - 1 && range.end < length && range.end > range.start && range.end > 0 && range.start >= 0) { return range; } } else { if ((range.end == -1 || (range.end > range.start && range.end > 0)) && range.start >= 0) { return range; } } } qWarning() << "Invalid Range:" << rangeHeader; return std::nullopt; } /** * @brief seqWriteData 请求传输文件数据 * @param file Http请求文件 * @param size Http请求文件大小 * @param resp Http应答 */ void DlnaContentServer::seqWriteData(std::shared_ptr file, qint64 size, QHttpResponse *resp) { // qInfo() << "Worker()" << "thread:" << QThread::currentThreadId(); if(!resp) return; if (resp->isFinished()) { qWarning() << "Connection closed by server, so skiping data sending"; } else { qint64 rlen = size; const qint64 len = rlen < qlen ? rlen : qlen; // qDebug() << "Sending" << len << "of data"; QByteArray data; data.resize(static_cast(len)); auto cdata = data.data(); const auto count = static_cast(file->read(cdata, len)); rlen = rlen - len; if (count > 0) { resp->write(data); resp->waitForBytesWritten(1000); if (rlen > 0) { emit contSeqWriteData(file, rlen, resp); return; } } else { qWarning() << "No more data to read"; } qDebug() << "All data sent, so ending connection"; } resp->end(); } /** * @brief dlnaContentFeaturesHeader 填充dlna传输头 * @param seek 是否seek传输 * @param flags 文件或流标志 */ QString DlnaContentServer::dlnaContentFeaturesHeader(const QString& mime, bool seek, bool flags) { QString pnFlags = dlnaOrgPnFlags(mime); if (pnFlags.isEmpty()) { if (flags) return QString("%1;%2;%3").arg( seek ? dlnaOrgOpFlagsSeekBytes : dlnaOrgOpFlagsNoSeek, dlnaOrgCiFlags, seek ? dlnaOrgFlagsForFile() : dlnaOrgFlagsForStreaming()); else return QString("%1;%2").arg(seek ? dlnaOrgOpFlagsSeekBytes : dlnaOrgOpFlagsNoSeek, dlnaOrgCiFlags); } else { if (flags) return QString("%1;%2;%3;%4").arg( pnFlags, seek ? dlnaOrgOpFlagsSeekBytes : dlnaOrgOpFlagsNoSeek, dlnaOrgCiFlags, seek ? dlnaOrgFlagsForFile() : dlnaOrgFlagsForStreaming()); else return QString("%1;%2;%3").arg( pnFlags, seek ? dlnaOrgOpFlagsSeekBytes : dlnaOrgOpFlagsNoSeek, dlnaOrgCiFlags); } } /** * @brief dlnaOrgFlagsForFile dlna文件传输协议 */ QString DlnaContentServer::dlnaOrgFlagsForFile() { char flags[448]; sprintf(flags, "%s=%.8x%.24x", "DLNA.ORG_FLAGS", DLNA_ORG_FLAG_BYTE_BASED_SEEK | DLNA_ORG_FLAG_STREAMING_TRANSFER_MODE | DLNA_ORG_FLAG_BACKGROUND_TRANSFER_MODE | DLNA_ORG_FLAG_CONNECTION_STALL | DLNA_ORG_FLAG_DLNA_V15, 0); QString f(flags); qDebug() << f; return f; } /** * @brief dlnaOrgFlagsForStreaming dlna流传输协议 */ QString DlnaContentServer::dlnaOrgFlagsForStreaming() { char flags[448]; sprintf(flags, "%s=%.8x%.24x", "DLNA.ORG_FLAGS", DLNA_ORG_FLAG_S0_INCREASE | DLNA_ORG_FLAG_SN_INCREASE | DLNA_ORG_FLAG_STREAMING_TRANSFER_MODE | DLNA_ORG_FLAG_CONNECTION_STALL | DLNA_ORG_FLAG_DLNA_V15, 0); QString f(flags); qDebug() << f; return f; } /** * @brief setBaseUrl 设置Http视频连接地址 * @param baseUrl Http视频连接地址 */ void DlnaContentServer::setBaseUrl(const QString &baseUrl) { m_sBaseUrl = baseUrl; } /** * @brief setDlnaFileName 设置传输文件名 * @param fileName 传输文件名 */ void DlnaContentServer::setDlnaFileName(const QString &fileName) { m_sDlnaFileName = fileName; } /** * @brief getBaseUrl 获取Http视频连接地址 */ QString DlnaContentServer::getBaseUrl() const { return m_sBaseUrl; } /** * @brief getIsStartHttpServer Http服务是否启动 */ bool DlnaContentServer::getIsStartHttpServer() { return m_bStartHttpServer; } /** * @brief dlnaOrgPnFlags 视频格式转换为upnp标准 * @param mime 视频格式 */ QString DlnaContentServer::dlnaOrgPnFlags(const QString &mime) { if (mime.contains("video/x-msvideo", Qt::CaseInsensitive)) return "DLNA.ORG_PN=AVI"; /*if (mime.contains(image/jpeg")) return "DLNA.ORG_PN=JPEG_LRG";*/ if (mime.contains("audio/aac", Qt::CaseInsensitive) || mime.contains("audio/aacp", Qt::CaseInsensitive)) return "DLNA.ORG_PN=AAC"; if (mime.contains("audio/mpeg", Qt::CaseInsensitive)) return "DLNA.ORG_PN=MP3"; if (mime.contains("audio/vnd.wav", Qt::CaseInsensitive)) return "DLNA.ORG_PN=LPCM"; if (mime.contains("audio/L16", Qt::CaseInsensitive)) return "DLNA.ORG_PN=LPCM"; if (mime.contains("video/x-matroska", Qt::CaseInsensitive)) return "DLNA.ORG_PN=MKV"; return QString(); } /** * @brief sendEmptyResponse 发送空应答 * @param resp Http应答 * @param code Http应答码 */ void DlnaContentServer::sendEmptyResponse(QHttpResponse *resp, int code) { if(!resp) return; qDebug() << "sendEmptyResponse:" << resp << code; resp->setHeader("Content-Length", "0"); resp->writeHead(code); resp->end(); } deepin-movie-reborn-5.15.10/src/dlna/dlnacontentserver.h000066400000000000000000000123141473342170300231540ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef DLNACONTENTSERVER_H #define DLNACONTENTSERVER_H #include #include #include #include #include #include #include #include class QHttpServer; class QHttpRequest; class QHttpResponse; class DlnaContentServer : public QObject { Q_OBJECT public: struct Range { qint64 start; qint64 end; qint64 length; inline bool full() const { return start == 0 && (end == -1 || end == length - 1); } inline qint64 rangeLength() const { return end - start + 1; } inline bool operator==(const Range &rv) const { return start == rv.start && end == rv.end; } static std::optional fromRange(const QString &rangeHeader, qint64 length = -1); }; enum DLNA_ORG_FLAGS { DLNA_ORG_FLAG_NONE = 0U, DLNA_ORG_FLAG_SENDER_PACED = (1U << 31), DLNA_ORG_FLAG_TIME_BASED_SEEK = (1U << 30), DLNA_ORG_FLAG_BYTE_BASED_SEEK = (1U << 29), DLNA_ORG_FLAG_PLAY_CONTAINER = (1U << 28), DLNA_ORG_FLAG_S0_INCREASE = (1U << 27), DLNA_ORG_FLAG_SN_INCREASE = (1U << 26), DLNA_ORG_FLAG_RTSP_PAUSE = (1U << 25), DLNA_ORG_FLAG_STREAMING_TRANSFER_MODE = (1U << 24), DLNA_ORG_FLAG_INTERACTIVE_TRANSFERT_MODE = (1U << 23), DLNA_ORG_FLAG_BACKGROUND_TRANSFER_MODE = (1U << 22), DLNA_ORG_FLAG_CONNECTION_STALL = (1U << 21), DLNA_ORG_FLAG_DLNA_V15 = (1U << 20) }; public: DlnaContentServer(QObject *parent = nullptr, int nPort = 8080); ~DlnaContentServer(); /** * @brief slotBaseMuteChanged 请求传输文件数据 * @param req Http请求 * @param resp Http应答 */ void requestHandler(QHttpRequest *req, QHttpResponse *resp); /** * @brief streamFile 传输文件流数据 * @param file Http传输文件 * @param mime 视频格式 * @param req Http请求 * @param resp Http应答 */ void streamFile(const QString &path, const QString &mime, QHttpRequest *req, QHttpResponse *resp); /** * @brief streamFileRange 断点续传流 * @param file Http传输文件 * @param req Http请求 * @param resp Http应答 */ void streamFileRange(std::shared_ptr file, QHttpRequest *req, QHttpResponse *resp); /** * @brief streamFileNoRange 全部流 * @param file Http传输文件 * @param req Http请求 * @param resp Http应答 */ void streamFileNoRange(std::shared_ptr file, QHttpRequest *req, QHttpResponse *resp); /** * @brief sendEmptyResponse 发送空应答 * @param resp Http应答 * @param code Http应答码 */ void sendEmptyResponse(QHttpResponse *resp, int code); /** * @brief dlnaContentFeaturesHeader 填充dlna传输头 * @param seek 是否seek传输 * @param flags 文件或流标志 */ QString dlnaContentFeaturesHeader(const QString& mime, bool seek = true, bool flags = true); /** * @brief dlnaOrgPnFlags 视频格式转换为upnp标准 * @param mime 视频格式 */ QString dlnaOrgPnFlags(const QString &mime); /** * @brief dlnaOrgFlagsForFile dlna文件传输协议 */ QString dlnaOrgFlagsForFile(); /** * @brief dlnaOrgFlagsForStreaming dlna流传输协议 */ QString dlnaOrgFlagsForStreaming(); /** * @brief setBaseUrl 设置Http视频连接地址 * @param baseUrl Http视频连接地址 */ void setBaseUrl(const QString &baseUrl); /** * @brief setDlnaFileName 设置传输文件名 * @param fileName 传输文件名 */ void setDlnaFileName(const QString &fileName); /** * @brief getBaseUrl 获取Http视频连接地址 */ QString getBaseUrl() const; /** * @brief getIsStartHttpServer Http服务是否启动 */ bool getIsStartHttpServer(); private: QString m_sDlnaFileName; // http传输文件 QHttpServer *m_httpServer; // http服务 QString m_sBaseUrl; // http url bool m_bStartHttpServer = false; // http 服务是否启动 QThread *m_pThread; // http 服务线程 signals: void contSeqWriteData(std::shared_ptr file, qint64 size, QHttpResponse *resp); void closeServer(); public slots: /** * @brief seqWriteData 请求传输文件数据 * @param file Http请求文件 * @param size Http请求文件大小 * @param resp Http应答 */ void seqWriteData(std::shared_ptr file, qint64 size, QHttpResponse *resp); /** * @brief initializeHttpServer 初始化HttpServer * @param port Http服务端口 */ bool initializeHttpServer(int port); }; #endif // DLNACONTENTSERVER_H deepin-movie-reborn-5.15.10/src/dlna/getdlnaxmlvalue.cpp000066400000000000000000000051711473342170300231460ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "getdlnaxmlvalue.h" GetDlnaXmlValue::GetDlnaXmlValue(QByteArray data) { doc = new QDomDocument; doc->setContent(data); } GetDlnaXmlValue::~GetDlnaXmlValue() { if(doc) { delete doc; doc = NULL; } } QString GetDlnaXmlValue::getValueByPath(QString sPath) { QStringList sList = sPath.split("/"); QDomElement elm = getElmByPath(sList); return getElmText(elm).trimmed(); } /** * @brief getValueByPathValue 根据xml节点的值查找当前节点下的指定节点的值 * @param sPath 查找xml节点路径 * @param sValue 查找xml节点值 * @param sElm 函数需要返回节点的值需要 */ QString GetDlnaXmlValue::getValueByPathValue(QString sPath, QString sValue, QString sElm) { QStringList sList = sPath.split("/"); QDomElement elm = getElmByPath(sList); QDomElement childElm = getElmByPath(elm, sValue, sElm); return getElmText(childElm).trimmed(); } /** * @brief getElmByPath 获取路径的节点 * @param sList 查找xml节点路径 */ QDomElement GetDlnaXmlValue::getElmByPath(QStringList sList) { QDomNode node = doc->firstChild(); QDomElement elm = node.toElement(); if(elm.isNull()) { node = node.nextSibling(); elm = node.toElement(); if(elm.isNull()) return QDomElement(); } foreach(QString tagName, sList) { elm = elm.firstChildElement(tagName); if(elm.isNull()) { return QDomElement(); } } return elm; } /** * @brief getElmByPath 获取路径的节点 * @param elm 查找xml节点路径 * @param sValue 查找xml节点路径 * @param sElm 查找xml节点路径 */ QDomElement GetDlnaXmlValue::getElmByPath(QDomElement childElm, QString sValue, QString sElmText) { if(childElm.isNull()) return QDomElement(); QStringList sList = sValue.split("="); if(sList.size() != 2) return QDomElement(); QDomElement elm = childElm.firstChildElement("service");; while(!elm.isNull()) { QDomElement matchElm = elm.firstChildElement(sList[0]); QString sText = getElmText(matchElm); if(sText == sList[1]) { return elm.firstChildElement(sElmText); } elm = elm.nextSibling().toElement(); } return QDomElement(); } /** * @brief getElmText 获取节点的值 * @param elm 查找xml节点路径 */ QString GetDlnaXmlValue::getElmText(QDomElement elm) { if(!elm.isNull()) { return elm.text(); } return ""; } deepin-movie-reborn-5.15.10/src/dlna/getdlnaxmlvalue.h000066400000000000000000000032531473342170300226120ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2020 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef GETDLNAXMLVALUE_H #define GETDLNAXMLVALUE_H #include #include #include #include class GetDlnaXmlValue : public QObject { Q_OBJECT public: GetDlnaXmlValue(QByteArray data = ""); ~GetDlnaXmlValue(); /** * @brief getValueByPath 获取xml节点路径值 * @param sPath xml节点路径 */ QString getValueByPath(QString sPath); /** * @brief getValueByPathValue 根据xml节点的值查找当前节点下的指定节点的值 * @param sPath 查找xml节点路径 * @param sValue 查找xml节点值 * @param sElm 函数需要返回节点的值需要 */ QString getValueByPathValue(QString sPath, QString sValue, QString sElm); private: QDomDocument *doc; private: /** * @brief getElmByPath 获取路径的节点 * @param sList 查找xml节点路径 */ QDomElement getElmByPath(QStringList sList); //查找elm 下 属性值为sValue的下的sElm元素的值 //"./device/serviceList/service/" //"[serviceType='{0}']/controlURL" /** * @brief getElmByPath 获取路径的节点 * @param elm 查找xml节点路径 * @param sValue 查找xml节点路径 * @param sElm 查找xml节点路径 */ QDomElement getElmByPath(QDomElement elm, QString sValue, QString sElm); /** * @brief getElmText 获取节点的值 * @param elm 查找xml节点路径 */ QString getElmText(QDomElement elm); }; #endif // GETDLNAXMLVALUE_H deepin-movie-reborn-5.15.10/src/install.pri000066400000000000000000000013311473342170300205040ustar00rootroot00000000000000isEmpty(PREFIX){ PREFIX = /usr } target.path = $${PREFIX}/bin/ desktop_files.path = $${PREFIX}/share/applications/ desktop_files.files = $$PWD/*.desktop #services.path = $${PREFIX}/share/dbus-1/services #services.files = $$PWD/data/*.service dman.path = $${PREFIX}/share/dman/ dman.files = $$PWD/dman/* translations.path = $${PREFIX}/share/$${TARGET}/translations translations.files = $$PWD/translations/*.qm \ $$PWD/translations/desktop/*.qm hicolor.path = $${PREFIX}/share/icons/hicolor/scalable/apps hicolor.files = $$PWD/resource/icons/logo.svg INSTALLS += target translations desktop_files hicolor dman GitVersion = $$system(git rev-parse HEAD) DEFINES += GIT_VERSION=\\\"$$GitVersion\\\" deepin-movie-reborn-5.15.10/src/libdmr/000077500000000000000000000000001473342170300175755ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/libdmr/CMakeLists.txt000066400000000000000000000035671473342170300223500ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later project(libdmr VERSION 0.1.0) set(CMAKE_AUTOMOC ON) set(CMD_NAME dmr) add_definitions(-D_LIBDMR_) remove_definitions(-D_MOVIE_USE_) pkg_check_modules(Gst REQUIRED IMPORTED_TARGET gstreamer-1.0 glib-2.0) include_directories(${Gst_INCLUDE_DIRS}) include_directories(${CMAKE_INCLUDE_CURRENT_DIR}) file(GLOB_RECURSE SRCS LIST_DIRECTORIES false *.cpp) file(GLOB_RECURSE MPV_SRCS LIST_DIRECTORIES false ../backends/mpv/*.cpp) file(GLOB_RECURSE MEDIAPLAYER_SRCS LIST_DIRECTORIES false ../backends/mediaplayer/*.cpp) file(GLOB_RECURSE HWDEC_SRCS ../common/hwdec_probe.cpp) file(GLOB_RECURSE UTIL_SRCS ../common/sysutils.cpp) list(APPEND SRCS player_widget.cpp ${MPV_SRCS} ${MEDIAPLAYER_SRCS} ${HWDEC_SRCS} ${UTIL_SRCS}) add_library(${CMD_NAME} SHARED ${SRCS}) set_target_properties(${CMD_NAME} PROPERTIES VERSION 0.1.0 SOVERSION 0.1) target_include_directories(${CMD_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../common ${PROJECT_SOURCE_DIR}/../backends/mediaplayer ${PROJECT_SOURCE_DIR}/../backends/mpv) target_link_libraries(${CMD_NAME} PkgConfig::Dtk Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::X11Extras Qt5::Sql Qt5::Svg Qt5::Multimedia Qt5::MultimediaWidgets Qt5::DBus PkgConfig::Gst GL) #target_link_libraries(${CMD_NAME} PkgConfig::Dtk Qt5::Widgets Qt5::Concurrent # Qt5::Network Qt5::X11Extras Qt5::Sql Qt5::DBus PkgConfig::AV GL png jpeg) configure_file(libdmr.pc.in ${PROJECT_BINARY_DIR}/libdmr.pc @ONLY) install(TARGETS ${CMD_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES player_widget.h player_backend.h player_engine.h playlist_model.h movie_configuration.h compositing_manager.h utils.h online_sub.h DESTINATION include/libdmr) install(FILES ${PROJECT_BINARY_DIR}/libdmr.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) deepin-movie-reborn-5.15.10/src/libdmr/com.deepin.deepin-movie.gschema.xml000066400000000000000000000013661473342170300263340ustar00rootroot00000000000000 'Default' composition about opengl This actually means opengl rendering is capable deepin-movie-reborn-5.15.10/src/libdmr/compositing_manager.cpp000066400000000000000000000560441473342170300243370ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "compositing_manager.h" #include "utils.h" #include "dmr_settings.h" #ifndef _LIBDMR_ #include "options.h" #endif #include #include #include #include #include #include #include #define GLX_GLXEXT_PROTOTYPES #include #include #undef Bool #include "../vendor/qthelper.hpp" #include "sysutils.h" #define BUFFERSIZE 255 typedef const char *glXGetScreenDriver_t (Display *dpy, int scrNum); static glXGetScreenDriver_t *GetScreenDriver; //TODO: override by user setting namespace dmr { using namespace std; static CompositingManager *_compManager = nullptr; bool CompositingManager::m_bCanHwdec = true; bool CompositingManager::m_hasMpv = false; #define C2Q(cs) (QString::fromUtf8((cs).c_str())) class PlatformChecker { public: PlatformChecker() {} Platform check() { QProcess uname; uname.start("uname -m"); if (uname.waitForStarted()) { if (uname.waitForFinished()) { auto data = uname.readAllStandardOutput(); string machine(data.trimmed().constData()); qInfo() << QString("machine: %1").arg(machine.c_str()); QRegExp re("x86.*|i?86|ia64", Qt::CaseInsensitive); if (re.indexIn(C2Q(machine)) != -1) { qInfo() << "match x86"; _pf = Platform::X86; } else if (machine.find("alpha") != string::npos || machine.find("sw_64") != string::npos) { // shenwei qInfo() << "match shenwei"; _pf = Platform::Alpha; } else if (machine.find("mips") != string::npos || machine.find("loongarch64") != string::npos) { // loongson qInfo() << "match loongson"; _pf = Platform::Mips; } else if (machine.find("aarch64") != string::npos) { // ARM64 qInfo() << "match arm"; _pf = Platform::Arm64; } } } return _pf; } private: Platform _pf {Platform::Unknown}; }; /** @brief 检测当前显卡是否为550系列显卡,若为则使用 hwdec=vaapi vo=vaapi 1002:699f Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] 1002:6987 Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM] @note 影响启动性能 */ static bool detect550Series() { QProcess pcicheck; pcicheck.start("bash -c \"lspci -nk | grep -i 'in use' -B 2 | grep -iE '1002:699f|1002:6987' \""); if (pcicheck.waitForFinished(1000)) { QByteArray readData = pcicheck.readAllStandardOutput(); if (!readData.isEmpty()) { qInfo() << qPrintable("Detect 550 series, using vaapi. ") << readData; return true; } qInfo() << qPrintable("Detect NOT 550 series, using default."); } else { pcicheck.terminate(); qWarning() << qPrintable("Detect 550 series, run lspci -n failed. ") << pcicheck.errorString(); } return false; } CompositingManager &CompositingManager::get() { if (!_compManager) { _compManager = new CompositingManager(); } return *_compManager; } //void compositingChanged(bool); CompositingManager::CompositingManager() { initMember(); bool isDriverLoaded = isDriverLoadedCorrectly(); setProperty("directRendering", isDriverLoaded); //是否支持直接渲染 softDecodeCheck(); //检测是否是kunpeng920(是否走软解码) // 检测是否为 AMD 550 系列显卡,若为则走vaapi if (!m_setSpecialControls) { m_setSpecialControls = detect550Series(); } // bool isI915 = false; // for (int id = 0; id <= 10; id++) { // if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break; // if (is_device_viable(id)) { // vector drivers = {"i915"}; // isI915 = is_card_exists(id, drivers); // break; // } // } // if (isI915) qInfo() << "is i915!"; // m_bZXIntgraphics = isI915 ? isI915 : m_bZXIntgraphics; if (dmr::utils::check_wayland_env()) { _composited = true; //读取配置 m_pMpvConfig = new QMap; utils::getPlayProperty("/etc/mpv/play.conf", m_pMpvConfig); if (m_pMpvConfig->contains("vo")) { QString value = m_pMpvConfig->find("vo").value(); if ("libmpv" == value) { _composited = true;//libmpv只能走opengl } } if (_platform == Platform::Arm64 && isDriverLoaded) m_bHasCard = true; qInfo() << __func__ << "Composited is " << _composited; return; } QString settingPath = DStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); settingPath += "/config.conf"; QFile file(settingPath); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&file); QString line; while (!in.atEnd()) { line = in.readLine(); if (line.contains("[base.decode.Effect]")) { line = in.readLine(); int index = line.indexOf("value="); if (index != -1) { QString value = line.mid(index + 6); // 6 is the length of "value=" value = value.trimmed(); // Remove leading and trailing whitespace file.close(); if (value.toInt() != 0) { _composited = value.toInt() == 1 ? true : false; m_pMpvConfig = new QMap; utils::getPlayProperty("/etc/mpv/play.conf", m_pMpvConfig); return; } } } } } file.close(); _composited = true; #if defined (_MOVIE_USE_) QGSettings gsettings("com.deepin.deepin-movie", "/com/deepin/deepin-movie/"); QString aa = gsettings.get("composited").toString(); if ((gsettings.get("composited").toString() == "DisableComposited" || gsettings.get("composited").toString() == "EnableComposited")) { if (gsettings.keys().contains("composited")) { if (gsettings.get("composited").toString() == "DisableComposited") { _composited = false; } else if (gsettings.get("composited").toString() == "EnableComposited") { _composited = true; } } } else { if (_platform == Platform::X86) { if (m_bZXIntgraphics) { _composited = false; } else { _composited = true; } } else { if (_platform == Platform::Arm64 && isDriverLoaded) m_bHasCard = true; _composited = false; } } #endif //针对jm显卡适配 QFileInfo jmfi("/dev/jmgpu"); QFileInfo fi("/dev/mwv206_0"); if (jmfi.exists() || fi.exists()) { _composited = false; } //判断xd显卡不能通过opengl渲染 QDir innodir("/sys/bus/platform/drivers/inno-codec"); if ( innodir.exists()) { _composited = false; } //判断MT显卡不能通过opengl渲染 QFileInfo mtfi("/dev/mtgpu.0"); if (mtfi.exists()) { //判断是否安装核外驱动 因为mt显卡 不能通过opengl渲染 QDir mtdir(QLibraryInfo::location(QLibraryInfo::LibrariesPath) +QDir::separator() +"musa"); if ( mtdir.exists()) { _composited = false; } } if (QFile::exists("/sys/bus/pci/drivers/ljmcore")) _composited = false; //读取配置 m_pMpvConfig = new QMap; utils::getPlayProperty("/etc/mpv/play.conf", m_pMpvConfig); if (m_pMpvConfig->contains("vo")) { QString value = m_pMpvConfig->find("vo").value(); if ("libmpv" == value) { _composited = true;//libmpv只能走opengl } } //单元测试 #ifdef USE_TEST utils::getPlayProperty("/data/source/deepin-movie-reborn/movie/play.conf", m_pMpvConfig); if (m_pMpvConfig->contains("vo")) { QString value = m_pMpvConfig->find("vo").value(); if ("libmpv" == value) { _composited = true;//libmpv只能走opengl } else { _composited = false;//libmpv只能走opengl } } #endif if(!isMpvExists()) { _composited = true; } qInfo() << __func__ << "Composited is " << _composited; } CompositingManager::~CompositingManager() { delete m_pMpvConfig; m_pMpvConfig = nullptr; } #if !defined (__x86_64__) bool CompositingManager::hascard() { return m_bHasCard; } #endif // Attempt to reuse mpv's code for detecting whether we want GLX or EGL (which // is tricky to do because of hardware decoding concerns). This is not pretty, // but quite effective and without having to duplicate too much GLX/EGL code. /*static QString probeHwdecInterop() { // auto mpv = mpv::qt::Handle::FromRawHandle(mpv_create()); // if (!mpv) // return ""; // mpv::qt::set_property(mpv, "hwdec-preload", "auto"); // // Actually creating a window is required. There is currently no way to keep // // this window hidden or invisible. // mpv::qt::set_property(mpv, "force-window", true); // // As a mitigation, put the window in the top/right corner, and make it as // // small as possible by forcing 1x1 size and removing window borders. // mpv::qt::set_property(mpv, "geometry", "1x1+0+0"); // mpv::qt::set_property(mpv, "border", false); // if (mpv_initialize(mpv) < 0) // return ""; // // return "auto" // return mpv::qt::get_property(mpv, "gpu-hwdec-interop").toString(); return QString(""); }*/ static OpenGLInteropKind _interopKind = OpenGLInteropKind::INTEROP_NONE; bool CompositingManager::runningOnVmwgfx() { static bool s_runningOnVmwgfx = false; // static bool s_checked = false; // if (!s_checked) { for (int id = 0; id <= 10; id++) { if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break; if (is_device_viable(id)) { vector drivers = {"vmwgfx"}; s_runningOnVmwgfx = is_card_exists(id, drivers); break; } // } } return s_runningOnVmwgfx; } bool CompositingManager::isPadSystem() { return false; } bool CompositingManager::isCanHwdec() { return m_bCanHwdec; } void CompositingManager::setCanHwdec(bool bCanHwdec) { m_bCanHwdec = bCanHwdec; } bool CompositingManager::isMpvExists() { if (m_hasMpv) { // has loaded it. return true; } // try to load it. m_hasMpv = SysUtils::libExist("libmpv.so"); return m_hasMpv; } bool CompositingManager::isZXIntgraphics() const { return m_bZXIntgraphics; } bool CompositingManager::runningOnNvidia() { static bool s_runningOnNvidia = false; for (int id = 0; id <= 10; id++) { if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break; if (is_device_viable(id)) { vector drivers = {"nvidia"}; s_runningOnNvidia = is_card_exists(id, drivers); break; } } return s_runningOnNvidia; } void CompositingManager::softDecodeCheck() { //获取cpu型号 QFile cpuInfo("/proc/cpuinfo"); if (cpuInfo.open(QIODevice::ReadOnly)) { QString line = cpuInfo.readLine(); while (!cpuInfo.atEnd()) { line = cpuInfo.readLine(); QStringList listPara = line.split(":"); qInfo() << listPara; if (listPara.size() < 2) { continue; } if (listPara.at(0).contains("model name")) { m_cpuModelName = listPara.at(1); break; } } cpuInfo.close(); } //获取设备名 QFile board("/sys/class/dmi/id/board_vendor"); if (board.open(QIODevice::ReadOnly)) { QString line = board.readLine(); while (!board.atEnd()) { m_boardVendor = line; break; } board.close(); } if (m_cpuModelName.contains("KX-U6780A")) { QFile modaInfo("/sys/class/dmi/id/modalias"); if (modaInfo.open(QIODevice::ReadOnly)) { QString data = modaInfo.readAll(); QStringList modaList = data.split(":"); qInfo() << data; if (modaList.size() >= 7) { if (modaList[6].contains("M630Z")) m_bOnlySoftDecode = true; } modaInfo.close(); } } if ((runningOnNvidia() && m_boardVendor.contains("Sugon")) || m_cpuModelName.contains("Kunpeng 920")) { m_bOnlySoftDecode = true; } if(m_boardVendor.toLower().contains("huawei")) { m_bHasCard = true; } m_setSpecialControls = m_boardVendor.contains("PHYTIUM"); //判断N卡驱动版本 QFile nvidiaVersion("/proc/driver/nvidia/version"); if (nvidiaVersion.open(QIODevice::ReadOnly)) { QString str = nvidiaVersion.readLine(); int start = str.indexOf("Module"); start += 6; QString version = str.mid(start, 6); while (version.left(1) == " ") { start++; version = str.mid(start, 6); } qInfo() << "nvidia version :" << version; if (version.toFloat() >= 460.39) { m_bOnlySoftDecode = true; } nvidiaVersion.close(); } } bool CompositingManager::isOnlySoftDecode() { return m_bOnlySoftDecode; } bool CompositingManager::isSpecialControls() { return m_setSpecialControls; } void CompositingManager::detectOpenGLEarly() { static bool detect_run = false; if (detect_run) return; ///function probeHwdecInterop() always returns QString(""), this code was not used // auto probed = probeHwdecInterop(); // qInfo() << "probeHwdecInterop" << probed // << qgetenv("QT_XCB_GL_INTERGRATION"); // if (probed == "auto") { // _interopKind = INTEROP_AUTO; // } else if (probed == "vaapi-egl") { // _interopKind = INTEROP_VAAPI_EGL; // } else if (probed == "vaapi-glx") { // _interopKind = INTEROP_VAAPI_GLX; // } else if (probed == "vdpau-glx") { // _interopKind = INTEROP_VDPAU_GLX; // } #ifndef USE_DXCB /* * see mpv/render_gl.h for more details, below is copied verbatim: * * - Intel/Linux: EGL is required, and also the native display resource needs * to be provided (e.g. MPV_RENDER_PARAM_X11_DISPLAY for X11 and * MPV_RENDER_PARAM_WL_DISPLAY for Wayland) * - nVidia/Linux: Both GLX and EGL should work (GLX is required if vdpau is * used, e.g. due to old drivers.) * * mpv hwdec is broken with vmwgfx and should use glx */ if (CompositingManager::runningOnNvidia()) { qputenv("QT_XCB_GL_INTEGRATION", "xcb_glx"); } else if (!CompositingManager::runningOnVmwgfx()) { auto e = QProcessEnvironment::systemEnvironment(); QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE")); QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY")); if (XDG_SESSION_TYPE != QLatin1String("wayland") && !WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) { qputenv("QT_XCB_GL_INTEGRATION", "xcb_egl"); } } #else if (_interopKind == INTEROP_VAAPI_EGL) { _interopKind = INTEROP_VAAPI_GLX; } #endif detect_run = true; } void CompositingManager::detectPciID() { QProcess pcicheck; pcicheck.start("lspci -vn"); if (pcicheck.waitForStarted() && pcicheck.waitForFinished()) { auto data = pcicheck.readAllStandardOutput(); QString output(data.trimmed().constData()); qInfo() << "CompositingManager::detectPciID()" << output.split(QChar('\n')).count(); QStringList outlist = output.split(QChar('\n')); foreach (QString line, outlist) { // qInfo()<<"CompositingManager::detectPciID():"< *&aimMap) { aimMap = nullptr; if (nullptr != m_pMpvConfig) { aimMap = m_pMpvConfig; } } OpenGLInteropKind CompositingManager::interopKind() { return _interopKind; } bool CompositingManager::isDriverLoadedCorrectly() { static QRegExp aiglx_err("\\(EE\\)\\s+AIGLX error"); static QRegExp dri_ok("direct rendering: DRI\\d+ enabled"); static QRegExp swrast("GLX: Initialized DRISWRAST"); static QRegExp regZX("loading driver: zx"); static QRegExp regCX4("loading driver: cx4"); static QRegExp arise("loading driver: arise"); static QRegExp controller("1ec8"); #if defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) static QRegExp rendering("direct rendering"); #endif QString xorglog = QString("/var/log/Xorg.%1.log").arg(QX11Info::appScreen()); qInfo() << "check " << xorglog; QFile f(xorglog); if (!f.open(QFile::ReadOnly)) { qWarning() << "can not open " << xorglog; return false; } QTextStream ts(&f); while (!ts.atEnd()) { QString ln = ts.readLine(); if (aiglx_err.indexIn(ln) != -1) { qInfo() << "found aiglx error"; return false; } if (dri_ok.indexIn(ln) != -1) { qInfo() << "dri enabled successfully"; return true; } #if defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) if (rendering.indexIn(ln.toLower()) != -1) { qInfo() << "_loongarch dri enabled successfully"; return true; } #endif if (swrast.indexIn(ln) != -1) { qInfo() << "swrast driver used"; return false; } if (regZX.indexIn(ln) != -1 || regCX4.indexIn(ln) != -1 || arise.indexIn(ln) != -1) { m_bZXIntgraphics = true; } if (controller.indexIn(ln) != -1) { qInfo() << ln; return true; } } f.close(); #if defined(_loongarch) || defined(__loongarch__) || defined(__loongarch64) return false; #endif return true; } void CompositingManager::overrideCompositeMode(bool useCompositing) { if (_composited != useCompositing) { qInfo() << "override composited = " << useCompositing; _composited = useCompositing; } } using namespace std; bool CompositingManager::is_card_exists(int id, const vector &drivers) { char buf[1024] = {0}; snprintf(buf, sizeof buf, "/sys/class/drm/card%d/device/driver", id); char buf2[1024] = {0}; if (readlink(buf, buf2, sizeof buf2) < 0) { return false; } string driver = basename(buf2); qInfo() << "drm driver " << driver.c_str(); if (std::any_of(drivers.cbegin(), drivers.cend(), [ = ](string s) {return s == driver;})) { return true; } return false; } bool CompositingManager::is_device_viable(int id) { char path[128]; snprintf(path, sizeof path, "/sys/class/drm/card%d", id); if (access(path, F_OK) != 0) { return false; } //OK, on shenwei, this file may have no read permission for group/other. char buf[512]; snprintf(buf, sizeof buf, "%s/device/enable", path); if (access(buf, R_OK) == 0) { FILE *fp = fopen(buf, "r"); if (!fp) { return false; } int enabled = 0; int error = fscanf(fp, "%d", &enabled); if (error < 0) { qInfo() << "someting error"; } fclose(fp); // nouveau may write 2, others 1 return enabled > 0; } return false; } bool CompositingManager::isProprietaryDriver() { for (int id = 0; id <= 10; id++) { if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break; if (is_device_viable(id)) { vector drivers = {"nvidia", "fglrx", "vmwgfx", "hibmc-drm", "radeon", "i915", "amdgpu", "phytium_display"}; return is_card_exists(id, drivers); } } return false; } void CompositingManager::initMember() { m_pMpvConfig = nullptr; _platform = PlatformChecker().check(); m_bZXIntgraphics = false; m_bHasCard = false; } //this is not accurate when proprietary driver used bool CompositingManager::isDirectRendered() { //避免klu 上产生xdriinfo的coredump // QProcess xdriinfo; // xdriinfo.start("xdriinfo driver 0"); // if (xdriinfo.waitForStarted() && xdriinfo.waitForFinished()) { // QString drv = QString::fromUtf8(xdriinfo.readAllStandardOutput().trimmed().constData()); // qInfo() << "xdriinfo: " << drv; // return !drv.contains("not direct rendering capable"); // } return true; } //FIXME: what about merge options from both config PlayerOptionList CompositingManager::getProfile(const QString &name) { auto localPath = QString("%1/%2/%3/%4.profile") .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)) .arg(qApp->organizationName()) .arg(qApp->applicationName()) .arg(name); auto defaultPath = QString(":/resources/profiles/%1.profile").arg(name); #ifdef _LIBDMR_ QString oc; #else auto oc = CommandLineManager::get().overrideConfig(); #endif PlayerOptionList ol; QList files = {oc, localPath, defaultPath}; auto p = files.begin(); while (p != files.end()) { QFileInfo fi(*p); if (fi.exists()) { qInfo() << "load" << fi.absoluteFilePath(); QFile f(fi.absoluteFilePath()); f.open(QIODevice::ReadOnly); QTextStream ts(&f); while (!ts.atEnd()) { auto l = ts.readLine().trimmed(); if (l.isEmpty()) continue; auto kv = l.split("="); qInfo() << l << kv; if (kv.size() == 1) { ol.push_back(qMakePair(kv[0], QString::fromUtf8(""))); } else { ol.push_back(qMakePair(kv[0], kv[1])); } } f.close(); return ol; } ++p; } return ol; } PlayerOptionList CompositingManager::getBestProfile() { QString profile_name = "default"; switch (_platform) { case Platform::Alpha: case Platform::Mips: case Platform::Arm64: profile_name = _composited ? "composited" : "failsafe"; break; case Platform::X86: profile_name = _composited ? "composited" : "default"; break; case Platform::Unknown: break; } return getProfile(profile_name); } #undef C2Q } deepin-movie-reborn-5.15.10/src/libdmr/compositing_manager.h000066400000000000000000000066031473342170300240000ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_COMPOSITING_MANAGER #define _DMR_COMPOSITING_MANAGER #define MWV206_0 //After Jing Jiawei's graphics card is upgraded, deal with the macro according to the situation, //This macro is also available for mpv_proxy.cpp. #include #include #include #include namespace dmr { enum Platform { Unknown, X86, // intel & amd Mips, // loongson Alpha, // sunway Arm64 }; enum OpenGLInteropKind { INTEROP_NONE, INTEROP_AUTO, INTEROP_VAAPI_EGL, INTEROP_VAAPI_GLX, INTEROP_VDPAU_GLX, }; using PlayerOption = QPair; using PlayerOptionList = QList; class CompositingManager: public QObject { public: static CompositingManager &get(); virtual ~CompositingManager(); /** * should call this before any other qt functions get exec'ed. * this makes sure mpv openglcb-interop to work correctly */ static void detectOpenGLEarly(); /** * get detectOpenGLEarly result */ static OpenGLInteropKind interopKind(); static bool runningOnVmwgfx(); static bool isPadSystem(); //是否是平板设备 static bool isCanHwdec(); static void setCanHwdec(bool bCanHwdec); /** * @brief 判断是否可以使用mpv */ static bool isMpvExists(); #if !defined (__x86_64__) bool hascard(); #endif /** * override auto-detected compositing state. * should call this right before player engine gets instantiated. * it has been deprecated but cannot remove due to ABI */ void overrideCompositeMode(bool useCompositing); // this actually means opengl rendering is capable bool composited() const { #if defined (_LIBDMR_) return true; #endif return _composited; } Platform platform() const { return _platform; } bool isTestFlag() const { return _isCoreFlag; } void setTestFlag(bool flag) { _isCoreFlag = flag; } bool isZXIntgraphics() const; PlayerOptionList getProfile(const QString &name); PlayerOptionList getBestProfile(); // best for current platform and env static void detectPciID(); static bool runningOnNvidia(); void softDecodeCheck(); bool isOnlySoftDecode(); bool isSpecialControls(); void getMpvConfig(QMap *&aimMap); signals: void compositingChanged(bool); public: static bool m_bCanHwdec;//是否支持硬解,true支持,false不支持 static bool m_hasMpv;//是否存在mpv库 private: CompositingManager(); bool isDriverLoadedCorrectly(); bool isDirectRendered(); bool isProprietaryDriver(); /** * @brief initMember 初始化成员变量 */ void initMember(); static bool is_device_viable(int id); static bool is_card_exists(int id, const std::vector &drivers); bool _composited {false}; Platform _platform {Platform::Unknown}; bool _isCoreFlag {false}; bool m_bHasCard; bool m_bOnlySoftDecode {false}; //kunpeng920走软解码 bool m_setSpecialControls {false}; bool m_bZXIntgraphics; //保存配置 QMap *m_pMpvConfig; QString m_cpuModelName; QString m_boardVendor; }; } #endif /* ifndef _DMR_COMPOSITING_MANAGER */ deepin-movie-reborn-5.15.10/src/libdmr/dvd_utils.cpp000066400000000000000000000100121473342170300222700ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "dvd_utils.h" #include namespace dmr { //add by xxj #ifdef heyi namespace dvd { /*QString RetrieveDVDTitle(const QString &device) { qInfo() << "device" << device; const char *title = nullptr; dvdnav_t *handle = nullptr; auto res = dvdnav_open(&handle, device.toUtf8().constData()); if (res == DVDNAV_STATUS_ERR) { qWarning() << "dvdnav open " << device << "failed"; return ""; } int32_t nr_titles = 0; res = dvdnav_get_number_of_titles(handle, &nr_titles); if (res == DVDNAV_STATUS_ERR) { goto on_error; } res = dvdnav_get_title_string(handle, &title); if (res == DVDNAV_STATUS_ERR) { goto on_error; } #if 0 uint64_t max_duration = -1; QString title = ""; //uint32_t dvdnav_describe_title_chapters(dvdnav_t *self, int32_t title, uint64_t **times, uint64_t *duration); for (int i = 0; i < nr_titles; i++) { uint64_t duration = 0; auto n = dvdnav_describe_title_chapters(handle, i, NULL, &duration); if (max_duration < duration) { max_duration = duration; //title } } #endif if (handle) dvdnav_close(handle); return QString::fromUtf8(title); on_error: qWarning() << dvdnav_err_to_string(handle); if (handle) dvdnav_close(handle); return ""; }*/ static std::atomic _instance { nullptr }; static QMutex _instLock; static QMutex _startLock; static QMutex _runLock; static QWaitCondition cond; RetrieveDvdThread::RetrieveDvdThread() { } RetrieveDvdThread::~RetrieveDvdThread() { this->requestInterruption(); this->quit(); this->wait(); delete &_instance; _instance = nullptr; } RetrieveDvdThread *RetrieveDvdThread::get() { if (_instance == nullptr) { QMutexLocker lock(&_instLock); // if (_instance == nullptr) { _instance = new RetrieveDvdThread; // } } return _instance; } void RetrieveDvdThread::startDvd(const QString &dev) { m_dev = dev; QMutexLocker lock(&_runLock); start(); } void RetrieveDvdThread::run() { setPriority(QThread::IdlePriority); do { QMutexLocker lock(&_runLock); while (m_dev.isEmpty() && !_quit.load()) { cond.wait(lock.mutex(), 40); } if (_quit.load()) break; auto title = getDvdMsg(m_dev); qInfo() << "-----" << title; emit sigData(title); } while (false); } QString RetrieveDvdThread::getDvdMsg(const QString &device) { qInfo() << "device" << device; const char *title = nullptr; dvdnav_t *handle = nullptr; int32_t res = 0; #ifndef __mips__ res = dvdnav_open(&handle, device.toUtf8().constData()); if (res == DVDNAV_STATUS_ERR) { qCritical() << "dvdnav open " << device << "failed"; qCritical() << dvdnav_err_to_string(handle); if (handle) dvdnav_close(handle); return "dvd open failed"; } #endif int32_t nr_titles = 0; res = dvdnav_get_number_of_titles(handle, &nr_titles); if (res == DVDNAV_STATUS_ERR) { goto on_error; } res = dvdnav_get_title_string(handle, &title); if (res == DVDNAV_STATUS_ERR) { goto on_error; } #if 0 uint64_t max_duration = -1; QString title = ""; //uint32_t dvdnav_describe_title_chapters(dvdnav_t *self, int32_t title, uint64_t **times, uint64_t *duration); for (int i = 0; i < nr_titles; i++) { uint64_t duration = 0; auto n = dvdnav_describe_title_chapters(handle, i, NULL, &duration); if (max_duration < duration) { max_duration = duration; //title } } #endif if (handle) dvdnav_close(handle); return QString::fromUtf8(title); on_error: qWarning() << dvdnav_err_to_string(handle); if (handle) dvdnav_close(handle); return ""; } } #endif } deepin-movie-reborn-5.15.10/src/libdmr/dvd_utils.h000066400000000000000000000020301473342170300217360ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_DVD_UTILS_H #define _DMR_DVD_UTILS_H #define _DMR_DVD_UTILS_H #include #include namespace dmr { //add by xxj #ifdef heyi namespace dvd { // device could be a dev node or a iso file QString RetrieveDVDTitle(const QString &device); /* class RetrieveDvdThread the class function DVD thread, Retrieve DVD and get DVD message todo Handle dvdnav_open blocking of the dvdnav library function */ class RetrieveDvdThread: public QThread { Q_OBJECT public: explicit RetrieveDvdThread(); ~RetrieveDvdThread(); static RetrieveDvdThread *get(); void startDvd(const QString &dev); // device could be a dev node or a iso file QString getDvdMsg(const QString &device); protected: void run(); signals: void sigData(const QString &title); private: QAtomicInt _quit{0}; QString m_dev {QString()}; }; } #endif } #endif /* ifndef _DMR_DVD_UTILS_H */ deepin-movie-reborn-5.15.10/src/libdmr/eventlogutils.cpp000066400000000000000000000020551473342170300232070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include "eventlogutils.h" EventLogUtils *EventLogUtils::m_instance(nullptr); EventLogUtils &EventLogUtils::get() { if (m_instance == nullptr) { m_instance = new EventLogUtils; } return *m_instance; } EventLogUtils::EventLogUtils() { QLibrary library("libdeepin-event-log.so"); init =reinterpret_cast(library.resolve("Initialize")); writeEventLog = reinterpret_cast(library.resolve("WriteEventLog")); if (init == nullptr) return; init("deepin-movie", true); } void EventLogUtils::writeLogs(QJsonObject &data) { if (writeEventLog == nullptr) return; //std::string str = QJsonDocument(data).toJson(QJsonDocument::Compact).toStdString(); writeEventLog(QJsonDocument(data).toJson(QJsonDocument::Compact).toStdString()); } deepin-movie-reborn-5.15.10/src/libdmr/eventlogutils.h000066400000000000000000000014101473342170300226460ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef EVENTLOGUTILS_H #define EVENTLOGUTILS_H #include #include class EventLogUtils { public: enum EventTID { OpeningTime = 1000000000, ClosingTime = 1000000001, Start = 1000000003, Quit = 1000000004, StartPlaying = 1000200011 }; static EventLogUtils &get(); void writeLogs(QJsonObject &data); private: bool (*init)(const std::string &packagename, bool enable_sig) = nullptr; void (*writeEventLog)(const std::string &eventdata) = nullptr; static EventLogUtils *m_instance; EventLogUtils(); }; #endif // EVENTLOGUTILS_H deepin-movie-reborn-5.15.10/src/libdmr/filefilter.cpp000066400000000000000000000263331473342170300224350ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "filefilter.h" #include "compositing_manager.h" #include "sysutils.h" #include #include using namespace std; FileFilter* FileFilter::m_pFileFilter = new FileFilter; static mvideo_gst_discoverer_info_get_uri g_mvideo_gst_discoverer_info_get_uri = nullptr; static mvideo_gst_discoverer_info_get_result g_mvideo_gst_discoverer_info_get_result = nullptr; static mvideo_gst_discoverer_info_get_misc g_mvideo_gst_discoverer_info_get_misc = nullptr; static mvideo_gst_structure_to_string g_mvideo_gst_structure_to_string = nullptr; static mvideo_gst_discoverer_info_get_video_streams g_mvideo_gst_discoverer_info_get_video_streams = nullptr; static mvideo_gst_discoverer_info_get_audio_streams g_mvideo_gst_discoverer_info_get_audio_streams = nullptr; static mvideo_gst_discoverer_info_get_subtitle_streams g_mvideo_gst_discoverer_info_get_subtitle_streams = nullptr; FileFilter::FileFilter() { m_bMpvExists = dmr::CompositingManager::isMpvExists(); m_stopRunningThread = false; m_pDiscoverer = nullptr; m_pLoop = nullptr; m_miType = MediaType::Other; QLibrary avformatLibrary(SysUtils::libPath("libavformat.so")); g_mvideo_avformat_open_input = (mvideo_avformat_open_input) avformatLibrary.resolve("avformat_open_input"); g_mvideo_avformat_find_stream_info = (mvideo_avformat_find_stream_info) avformatLibrary.resolve("avformat_find_stream_info"); g_mvideo_avformat_close_input = (mvideo_avformat_close_input) avformatLibrary.resolve("avformat_close_input"); QLibrary gstreamerLibrary(SysUtils::libPath("libgstreamer-1.0.so")); QLibrary gstpbutilsLibrary(SysUtils::libPath("libgstpbutils-1.0.so")); g_mvideo_gst_init = (mvideo_gst_init) gstreamerLibrary.resolve("gst_init"); g_mvideo_gst_discoverer_new = (mvideo_gst_discoverer_new) gstpbutilsLibrary.resolve("gst_discoverer_new"); g_mvideo_gst_discoverer_start = (mvideo_gst_discoverer_start) gstpbutilsLibrary.resolve("gst_discoverer_start"); g_mvideo_gst_discoverer_stop = (mvideo_gst_discoverer_stop) gstpbutilsLibrary.resolve("gst_discoverer_stop"); g_mvideo_gst_discoverer_discover_uri_async = (mvideo_gst_discoverer_discover_uri_async) gstpbutilsLibrary.resolve("gst_discoverer_discover_uri_async"); g_mvideo_gst_discoverer_info_get_uri = (mvideo_gst_discoverer_info_get_uri) gstpbutilsLibrary.resolve("gst_discoverer_info_get_uri"); g_mvideo_gst_discoverer_info_get_result = (mvideo_gst_discoverer_info_get_result) gstpbutilsLibrary.resolve("gst_discoverer_info_get_result"); g_mvideo_gst_discoverer_info_get_misc = (mvideo_gst_discoverer_info_get_misc) gstpbutilsLibrary.resolve("gst_discoverer_info_get_misc"); g_mvideo_gst_structure_to_string = (mvideo_gst_structure_to_string) gstreamerLibrary.resolve("gst_structure_to_string"); g_mvideo_gst_discoverer_info_get_video_streams = (mvideo_gst_discoverer_info_get_video_streams) gstpbutilsLibrary.resolve("gst_discoverer_info_get_video_streams"); g_mvideo_gst_discoverer_info_get_audio_streams = (mvideo_gst_discoverer_info_get_audio_streams) gstpbutilsLibrary.resolve("gst_discoverer_info_get_audio_streams"); g_mvideo_gst_discoverer_info_get_subtitle_streams = (mvideo_gst_discoverer_info_get_subtitle_streams) gstpbutilsLibrary.resolve("gst_discoverer_info_get_subtitle_streams"); g_mvideo_gst_init(nullptr, nullptr); GError *pGErr = nullptr; m_pDiscoverer = g_mvideo_gst_discoverer_new(5 * GST_SECOND, &pGErr); m_pLoop = g_main_loop_new(nullptr, FALSE); if (!m_pDiscoverer) { qInfo() << "Error creating discoverer instance: " << pGErr->message; g_clear_error (&pGErr); } g_signal_connect_data(m_pDiscoverer, "discovered", (GCallback)(discovered), &m_miType, nullptr, GConnectFlags(0)); g_signal_connect_data(m_pDiscoverer, "finished", (GCallback)(finished), m_pLoop, nullptr, GConnectFlags(0)); g_mvideo_gst_discoverer_start(m_pDiscoverer); } FileFilter::~FileFilter() { g_mvideo_gst_discoverer_stop(m_pDiscoverer); g_object_unref(m_pDiscoverer); g_main_loop_unref(m_pLoop); } FileFilter *FileFilter::instance() { if (nullptr == m_pFileFilter) { m_pFileFilter = new FileFilter(); } return m_pFileFilter; } bool FileFilter::isMediaFile(QUrl url) { MediaType miType; bool bMedia = false; if(!url.isLocalFile()) { // url 文件不做判断,默认可以播放 return true; } if (m_bMpvExists) { miType = typeJudgeByFFmpeg(url); } else { miType = typeJudgeByGst(url); } if (miType == MediaType::Audio || miType == MediaType::Video) { bMedia = true; } return bMedia; } QList FileFilter::filterDir(QDir dir) { QList lstUrl; QDir di(dir); di.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); for (QFileInfo fileInfo : di.entryInfoList()) { if (fileInfo.isFile()) { lstUrl.append(fileTransfer(fileInfo.filePath())); } else if (fileInfo.isDir()) { if (m_stopRunningThread) return QList(); lstUrl << filterDir(fileInfo.absoluteFilePath()); } } return lstUrl; } QUrl FileFilter::fileTransfer(QString strFile) { QUrl realUrl; bool bLocalFile = false; bLocalFile = QUrl(strFile).isLocalFile(); if (bLocalFile) { strFile = QUrl(strFile).toLocalFile(); } if (QFileInfo(strFile).isFile() || QFileInfo(strFile).isDir()) { // 如果是软链接则需要找到真实路径 while (QFileInfo(strFile).isSymLink()) { strFile = QFileInfo(strFile).symLinkTarget(); } realUrl = QUrl::fromLocalFile(strFile); } else { realUrl = QUrl(strFile); } return realUrl; } bool FileFilter::isAudio(QUrl url) { bool bAudio = false; if(m_mapCheckAudio.contains(url)) { return m_mapCheckAudio.value(url); } else { m_mapCheckAudio.clear(); } if (m_bMpvExists) { bAudio = typeJudgeByFFmpeg(url) == MediaType::Audio ? true : false; } else { bAudio = typeJudgeByGst(url) == MediaType::Audio ? true : false; } m_mapCheckAudio[url] = bAudio; return bAudio; } bool FileFilter::isSubtitle(QUrl url) { if (m_bMpvExists) { return typeJudgeByFFmpeg(url) == MediaType::Subtitle ? true : false; } else { return typeJudgeByGst(url) == MediaType::Subtitle ? true : false; } } bool FileFilter::isVideo(QUrl url) { if (m_bMpvExists) { return typeJudgeByFFmpeg(url) == MediaType::Video ? true : false; } else { return typeJudgeByGst(url) == MediaType::Video ? true : false; } } FileFilter::MediaType FileFilter::typeJudgeByFFmpeg(const QUrl &url) { int nRet; QString strFormatName; bool bVCodec = false; bool bACodec = false; bool bSCodec = false; MediaType miType = MediaType::Other; QString strMimeType = m_mimeDB.mimeTypeForUrl(url).name(); if (strMimeType.contains("mpegurl")) { return MediaType::Other; } AVFormatContext *av_ctx = nullptr; nRet = g_mvideo_avformat_open_input(&av_ctx, url.toLocalFile().toUtf8().constData(), nullptr, nullptr); if(nRet < 0) { return MediaType::Other; } if(g_mvideo_avformat_find_stream_info(av_ctx, nullptr) < 0) { return MediaType::Other; } strFormatName = av_ctx->iformat->long_name; for (int i = 0; i < static_cast(av_ctx->nb_streams); i++) { AVStream *in_stream = av_ctx->streams[i]; if (in_stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { bVCodec = true; } else if (in_stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { bACodec = true; } else if (in_stream->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) { bSCodec = true; } } if (bVCodec) { miType = MediaType::Video; } else if (bACodec) { miType = MediaType::Audio; } else if (bSCodec) { miType = MediaType::Subtitle; } else { miType = MediaType::Other; } if (strMimeType.contains("x-7z")){ //7z压缩包中会检测出音频流 miType = MediaType::Other; } if(strFormatName.contains("Tele-typewriter") || strMimeType.startsWith("image/")) // 排除文本文件,如果只用mimetype判断会遗漏部分原始格式文件如:h264裸流 miType = MediaType::Other; g_mvideo_avformat_close_input(&av_ctx); return miType; } FileFilter::MediaType FileFilter::typeJudgeByGst(const QUrl &url) { char *uri = nullptr; uri = new char[200]; m_miType = MediaType::Other; QString strMimeType = m_mimeDB.mimeTypeForUrl(url).name(); if (!strMimeType.startsWith("audio/") && !strMimeType.startsWith("video/")) { delete []uri; return MediaType::Other; } uri = strcpy(uri, url.toString().toUtf8().constData()); if (!g_mvideo_gst_discoverer_discover_uri_async (m_pDiscoverer, uri)) { qInfo() << "Failed to start discovering URI " << uri; g_object_unref (m_pDiscoverer); } g_main_loop_run(m_pLoop); delete []uri; return m_miType; } void FileFilter::stopThread() { m_stopRunningThread = true; } void FileFilter::discovered(GstDiscoverer *discoverer, GstDiscovererInfo *info, GError *err, MediaType *miType) { Q_UNUSED(discoverer); GstDiscovererResult result; const gchar *uri; bool bVideo = false; bool bAudio = false; bool bSubtitle = false; uri = g_mvideo_gst_discoverer_info_get_uri (info); result = g_mvideo_gst_discoverer_info_get_result (info); switch (result) { case GST_DISCOVERER_URI_INVALID: qInfo() << "Invalid URI " << uri; break; case GST_DISCOVERER_ERROR: qInfo() << "Discoverer error: " << err->message; break; case GST_DISCOVERER_TIMEOUT: qInfo() << "Timeout"; break; case GST_DISCOVERER_BUSY: qInfo() << "Busy"; break; case GST_DISCOVERER_MISSING_PLUGINS:{ const GstStructure *s; gchar *str; s = g_mvideo_gst_discoverer_info_get_misc (info); str = g_mvideo_gst_structure_to_string (s); qInfo() << "Missing plugins: " << str; g_free (str); break; } case GST_DISCOVERER_OK: qInfo() << "Discovered " << uri; break; } if (result != GST_DISCOVERER_OK) { qInfo() << "This URI cannot be played"; return; } GList *list; list = g_mvideo_gst_discoverer_info_get_video_streams(info); if (list) { bVideo = true; } list = g_mvideo_gst_discoverer_info_get_audio_streams(info); if (list) { bAudio = true; } list = g_mvideo_gst_discoverer_info_get_subtitle_streams(info); if(list) { bSubtitle = true; } if (bVideo) { *miType = MediaType::Video; } else if (bAudio) { *miType = MediaType::Audio; } else if (bSubtitle) { *miType = MediaType::Subtitle; } else { *miType = MediaType::Other; } } void FileFilter::finished(GstDiscoverer *discoverer, GMainLoop *loop) { Q_UNUSED(discoverer); g_main_loop_quit(loop); } deepin-movie-reborn-5.15.10/src/libdmr/filefilter.h000066400000000000000000000107571473342170300221050ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef FILEFILTER_H #define FILEFILTER_H #include #include #include #include #include #include #include #include #include extern "C" { #include } extern "C" { #include #include #include } typedef int (*mvideo_avformat_open_input)(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); typedef int (*mvideo_avformat_find_stream_info)(AVFormatContext *ic, AVDictionary **options); typedef void (*mvideo_avformat_close_input)(AVFormatContext **s); typedef void (*mvideo_gst_init)(int *argc, char **argv[]); typedef GstDiscoverer* (*mvideo_gst_discoverer_new)(GstClockTime timeout, GError **err); typedef void (*mvideo_gst_discoverer_start) (GstDiscoverer *discoverer); typedef void (*mvideo_gst_discoverer_stop) (GstDiscoverer *discoverer); typedef gboolean (*mvideo_gst_discoverer_discover_uri_async) (GstDiscoverer *discoverer, const gchar *uri); typedef gchar* (*mvideo_gst_discoverer_info_get_uri) (const GstDiscovererInfo* info); typedef GstDiscovererResult (*mvideo_gst_discoverer_info_get_result) (const GstDiscovererInfo* info); typedef const GstStructure* (*mvideo_gst_discoverer_info_get_misc) (const GstDiscovererInfo* info); typedef gchar* (*mvideo_gst_structure_to_string) (const GstStructure * structure); typedef GList* (*mvideo_gst_discoverer_info_get_video_streams) (GstDiscovererInfo *info); typedef GList* (*mvideo_gst_discoverer_info_get_audio_streams) (GstDiscovererInfo *info); typedef GList* (*mvideo_gst_discoverer_info_get_subtitle_streams) (GstDiscovererInfo *info); /** * @file 处理输入文件的公共类,对输入文件的路径做转换 * 避免文件路径出现多钟形式如:软连接、本地url、网络url等 */ class FileFilter:public QObject { Q_OBJECT enum MediaType { Audio = 0, Video, Subtitle, Other }; public: ~FileFilter(); static FileFilter* instance(); /** * @brief 判断是否是多媒体文件 * @param 文件路径 */ bool isMediaFile(QUrl url); /** * @brief 取出文件夹下所有文件路径 * @param 文件夹 * @return 返回url路径集合 */ QList filterDir(QDir dir); /** * @brief 转化文件字符路径为url * @param 文件路径 * @return 返回url路径 */ QUrl fileTransfer(QString strFile); /** * @brief 判断是否是音频 * @param 文件路径 * @return 是否是音频 */ bool isAudio(QUrl url); /** * @brief 判断是否是字幕 * @param 文件路径 * @return 是否是字幕 */ bool isSubtitle(QUrl url); /** * @brief 判断是否是视频 * @param 文件路径 * @return 是否是视频 */ bool isVideo(QUrl url); /** * @brief 通过ffmpeg库判断文件类型 * @param 文件路径 * @return 类型 */ MediaType typeJudgeByFFmpeg(const QUrl& url); /** * @brief 通过Qt判断文件类型 * @param 文件路径 * @return 类型 */ MediaType typeJudgeByGst(const QUrl& url); static void discovered(GstDiscoverer *discoverer, GstDiscovererInfo *info, GError *err, MediaType *miType); static void finished(GstDiscoverer *discoverer, GMainLoop *loop); void stopThread(); private: FileFilter(); private: static FileFilter* m_pFileFilter; QMap m_mapCheckAudio;//检测播放文件中的音视频信息 mvideo_avformat_open_input g_mvideo_avformat_open_input = nullptr; mvideo_avformat_find_stream_info g_mvideo_avformat_find_stream_info = nullptr; mvideo_avformat_close_input g_mvideo_avformat_close_input = nullptr; mvideo_gst_init g_mvideo_gst_init = nullptr; mvideo_gst_discoverer_new g_mvideo_gst_discoverer_new = nullptr; mvideo_gst_discoverer_start g_mvideo_gst_discoverer_start = nullptr; mvideo_gst_discoverer_stop g_mvideo_gst_discoverer_stop = nullptr; mvideo_gst_discoverer_discover_uri_async g_mvideo_gst_discoverer_discover_uri_async = nullptr; QMimeDatabase m_mimeDB; bool m_bMpvExists; bool m_stopRunningThread; GstDiscoverer* m_pDiscoverer; GMainLoop* m_pLoop; MediaType m_miType; }; #endif // FILEFILTER_H deepin-movie-reborn-5.15.10/src/libdmr/gstutils.cpp000066400000000000000000000241511473342170300221620ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "gstutils.h" #include "gstutils.h" #include "sysutils.h" #include namespace dmr { static mvideo_gst_discoverer_info_get_uri g_mvideo_gst_discoverer_info_get_uri = nullptr; static mvideo_gst_discoverer_info_get_result g_mvideo_gst_discoverer_info_get_result = nullptr; static mvideo_gst_discoverer_info_get_misc g_mvideo_gst_discoverer_info_get_misc = nullptr; static mvideo_gst_structure_to_string g_mvideo_gst_structure_to_string = nullptr; static mvideo_gst_discoverer_info_get_video_streams g_mvideo_gst_discoverer_info_get_video_streams = nullptr; static mvideo_gst_discoverer_info_get_audio_streams g_mvideo_gst_discoverer_info_get_audio_streams = nullptr; static mvideo_gst_discoverer_video_info_get_width g_mvideo_gst_discoverer_video_info_get_width = nullptr; static mvideo_gst_discoverer_video_info_get_height g_mvideo_gst_discoverer_video_info_get_height = nullptr; static mvideo_gst_discoverer_video_info_get_framerate_num g_mvideo_gst_discoverer_video_info_get_framerate_num = nullptr; static mvideo_gst_discoverer_video_info_get_framerate_denom g_mvideo_gst_discoverer_video_info_get_framerate_denom = nullptr; static mvideo_gst_discoverer_video_info_get_bitrate g_mvideo_gst_discoverer_video_info_get_bitrate = nullptr; static mvideo_gst_discoverer_info_get_duration g_mvideo_gst_discoverer_info_get_duration = nullptr; static mvideo_gst_discoverer_audio_info_get_sample_rate g_mvideo_gst_discoverer_audio_info_get_sample_rate = nullptr; static mvideo_gst_discoverer_audio_info_get_bitrate g_mvideo_gst_discoverer_audio_info_get_bitrate = nullptr; static mvideo_gst_discoverer_audio_info_get_channels g_mvideo_gst_discoverer_audio_info_get_channels = nullptr; static mvideo_gst_discoverer_audio_info_get_depth g_mvideo_gst_discoverer_audio_info_get_depth = nullptr; MovieInfo GstUtils::m_movieInfo = MovieInfo(); GstUtils* GstUtils::m_pGstUtils = new GstUtils; GstUtils::GstUtils() { QLibrary gstreamerLibrary(SysUtils::libPath("libgstreamer-1.0.so")); QLibrary gstpbutilsLibrary(SysUtils::libPath("libgstpbutils-1.0.so")); g_mvideo_gst_init = (mvideo_gst_init) gstreamerLibrary.resolve("gst_init"); g_mvideo_gst_discoverer_new = (mvideo_gst_discoverer_new) gstpbutilsLibrary.resolve("gst_discoverer_new"); g_mvideo_gst_discoverer_start = (mvideo_gst_discoverer_start) gstpbutilsLibrary.resolve("gst_discoverer_start"); g_mvideo_gst_discoverer_stop = (mvideo_gst_discoverer_stop) gstpbutilsLibrary.resolve("gst_discoverer_stop"); g_mvideo_gst_discoverer_discover_uri_async = (mvideo_gst_discoverer_discover_uri_async) gstpbutilsLibrary.resolve("gst_discoverer_discover_uri_async"); g_mvideo_gst_discoverer_info_get_uri = (mvideo_gst_discoverer_info_get_uri) gstpbutilsLibrary.resolve("gst_discoverer_info_get_uri"); g_mvideo_gst_discoverer_info_get_result = (mvideo_gst_discoverer_info_get_result) gstpbutilsLibrary.resolve("gst_discoverer_info_get_result"); g_mvideo_gst_discoverer_info_get_misc = (mvideo_gst_discoverer_info_get_misc) gstpbutilsLibrary.resolve("gst_discoverer_info_get_misc"); g_mvideo_gst_structure_to_string = (mvideo_gst_structure_to_string) gstreamerLibrary.resolve("gst_structure_to_string"); g_mvideo_gst_discoverer_info_get_video_streams = (mvideo_gst_discoverer_info_get_video_streams) gstpbutilsLibrary.resolve("gst_discoverer_info_get_video_streams"); g_mvideo_gst_discoverer_info_get_audio_streams = (mvideo_gst_discoverer_info_get_audio_streams) gstpbutilsLibrary.resolve("gst_discoverer_info_get_audio_streams"); g_mvideo_gst_discoverer_video_info_get_width = (mvideo_gst_discoverer_video_info_get_width) gstpbutilsLibrary.resolve("gst_discoverer_video_info_get_width"); g_mvideo_gst_discoverer_video_info_get_height = (mvideo_gst_discoverer_video_info_get_height) gstpbutilsLibrary.resolve("gst_discoverer_video_info_get_height"); g_mvideo_gst_discoverer_audio_info_get_bitrate = (mvideo_gst_discoverer_audio_info_get_bitrate) gstpbutilsLibrary.resolve("gst_discoverer_audio_info_get_bitrate"); g_mvideo_gst_discoverer_audio_info_get_channels = (mvideo_gst_discoverer_audio_info_get_channels) gstpbutilsLibrary.resolve("gst_discoverer_audio_info_get_channels"); g_mvideo_gst_discoverer_audio_info_get_depth = (mvideo_gst_discoverer_audio_info_get_depth) gstpbutilsLibrary.resolve("gst_discoverer_audio_info_get_depth"); g_mvideo_gst_discoverer_info_get_duration = (mvideo_gst_discoverer_info_get_duration) gstpbutilsLibrary.resolve("gst_discoverer_info_get_duration"); g_mvideo_gst_discoverer_video_info_get_framerate_num = (mvideo_gst_discoverer_video_info_get_framerate_num) gstpbutilsLibrary.resolve("gst_discoverer_video_info_get_framerate_num"); g_mvideo_gst_discoverer_video_info_get_framerate_denom = (mvideo_gst_discoverer_video_info_get_framerate_denom) gstpbutilsLibrary.resolve("gst_discoverer_video_info_get_framerate_denom"); g_mvideo_gst_discoverer_video_info_get_bitrate = (mvideo_gst_discoverer_video_info_get_bitrate) gstpbutilsLibrary.resolve("gst_discoverer_video_info_get_bitrate"); g_mvideo_gst_discoverer_audio_info_get_sample_rate = (mvideo_gst_discoverer_audio_info_get_sample_rate) gstpbutilsLibrary.resolve("gst_discoverer_audio_info_get_sample_rate"); memset(&m_gstData, 0, sizeof(m_gstData)); g_mvideo_gst_init(nullptr, nullptr); GError *pGErr = nullptr; m_gstData.discoverer = g_mvideo_gst_discoverer_new(5 * GST_SECOND, &pGErr); m_gstData.loop = g_main_loop_new (nullptr, FALSE); if (!m_gstData.discoverer) { qInfo() << "Error creating discoverer instance: " << pGErr->message; g_clear_error (&pGErr); } g_signal_connect_data (m_gstData.discoverer, "discovered", (GCallback)discovered, &m_gstData, nullptr, GConnectFlags(0)); g_signal_connect_data (m_gstData.discoverer, "finished", (GCallback)(finished), &m_gstData, nullptr, GConnectFlags(0)); g_mvideo_gst_discoverer_start(m_gstData.discoverer); } void GstUtils::discovered(GstDiscoverer *discoverer, GstDiscovererInfo *info, GError *err, CustomData *data) { Q_UNUSED(discoverer); Q_UNUSED(data); GstDiscovererResult result; const gchar *uri; uri = g_mvideo_gst_discoverer_info_get_uri (info); result = g_mvideo_gst_discoverer_info_get_result (info); m_movieInfo.valid = false; m_movieInfo.duration = 0; switch (result) { case GST_DISCOVERER_URI_INVALID: qInfo() << "Invalid URI " << uri; break; case GST_DISCOVERER_ERROR: qInfo() << "Discoverer error: " << err->message; break; case GST_DISCOVERER_TIMEOUT: qInfo() << "Timeout"; break; case GST_DISCOVERER_BUSY: qInfo() << "Busy"; break; case GST_DISCOVERER_MISSING_PLUGINS:{ const GstStructure *s; gchar *str; s = g_mvideo_gst_discoverer_info_get_misc (info); str = g_mvideo_gst_structure_to_string (s); qInfo() << "Missing plugins: " << str; g_free (str); break; } case GST_DISCOVERER_OK: qInfo() << "Discovered " << uri; break; } if (result != GST_DISCOVERER_OK) { qInfo() << "This URI cannot be played"; return; } m_movieInfo.valid = true; m_movieInfo.duration = g_mvideo_gst_discoverer_info_get_duration (info) / GST_SECOND; // 如果没有时长就当做原始视频格式处理 if(m_movieInfo.duration == 0) { #ifdef _MOVIE_USE_ m_movieInfo.strFmtName = "raw"; #endif } GList *list; list = g_mvideo_gst_discoverer_info_get_video_streams(info); if (list) { GstDiscovererVideoInfo *vInfo = (GstDiscovererVideoInfo *)list->data; m_movieInfo.width = static_cast(g_mvideo_gst_discoverer_video_info_get_width(vInfo)); m_movieInfo.height = static_cast(g_mvideo_gst_discoverer_video_info_get_height(vInfo)); m_movieInfo.fps = static_cast(g_mvideo_gst_discoverer_video_info_get_framerate_num(vInfo) / g_mvideo_gst_discoverer_video_info_get_framerate_denom(vInfo)); m_movieInfo.vCodeRate = g_mvideo_gst_discoverer_video_info_get_bitrate(vInfo); m_movieInfo.proportion = m_movieInfo.height == 0 ? 0 : (float)m_movieInfo.width / m_movieInfo.height; m_movieInfo.resolution = QString::number(m_movieInfo.width) + "x" + QString::number(m_movieInfo.height); } list = g_mvideo_gst_discoverer_info_get_audio_streams(info); if (list) { GstDiscovererAudioInfo *aInfo = (GstDiscovererAudioInfo *)list->data; m_movieInfo.sampling = static_cast(g_mvideo_gst_discoverer_audio_info_get_sample_rate(aInfo)); m_movieInfo.aCodeRate = g_mvideo_gst_discoverer_audio_info_get_bitrate(aInfo); m_movieInfo.channels = static_cast(g_mvideo_gst_discoverer_audio_info_get_channels(aInfo)); m_movieInfo.aDigit = static_cast(g_mvideo_gst_discoverer_audio_info_get_depth(aInfo)); } } void GstUtils::finished(GstDiscoverer *discoverer, CustomData *data) { Q_UNUSED(discoverer); g_main_loop_quit (data->loop); } GstUtils::~GstUtils() { g_mvideo_gst_discoverer_stop(m_gstData.discoverer); g_object_unref(m_gstData.discoverer); g_main_loop_unref (m_gstData.loop); } GstUtils* GstUtils::get() { if(!m_pGstUtils) { m_pGstUtils = new GstUtils(); } return m_pGstUtils; } MovieInfo GstUtils:: parseFileByGst(const QFileInfo &fi) { char *uri = nullptr; uri = new char[200]; m_movieInfo = MovieInfo(); m_movieInfo.title = fi.fileName(); m_movieInfo.filePath = fi.canonicalFilePath(); m_movieInfo.creation = fi.created().toString(); m_movieInfo.fileSize = fi.size(); m_movieInfo.fileType = fi.suffix(); uri = strcpy(uri, QUrl::fromLocalFile(fi.filePath()).toString().toUtf8().constData()); if (!g_mvideo_gst_discoverer_discover_uri_async (m_gstData.discoverer, uri)) { qInfo() << "Failed to start discovering URI " << uri; g_object_unref (m_gstData.discoverer); return m_movieInfo; } g_main_loop_run (m_gstData.loop); delete []uri; return m_movieInfo; } } deepin-movie-reborn-5.15.10/src/libdmr/gstutils.h000066400000000000000000000065251473342170300216340ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef GSTUTILS_H #define GSTUTILS_H #include #include #include "playlist_model.h" extern "C" { #include #include #include } namespace dmr { typedef void (*mvideo_gst_init)(int *argc, char **argv[]); typedef GstDiscoverer* (*mvideo_gst_discoverer_new)(GstClockTime timeout, GError **err); typedef void (*mvideo_gst_discoverer_start) (GstDiscoverer *discoverer); typedef void (*mvideo_gst_discoverer_stop) (GstDiscoverer *discoverer); typedef gboolean (*mvideo_gst_discoverer_discover_uri_async) (GstDiscoverer *discoverer, const gchar *uri); typedef gchar* (*mvideo_gst_discoverer_info_get_uri) (const GstDiscovererInfo* info); typedef GstDiscovererResult (*mvideo_gst_discoverer_info_get_result) (const GstDiscovererInfo* info); typedef const GstStructure* (*mvideo_gst_discoverer_info_get_misc) (const GstDiscovererInfo* info); typedef gchar* (*mvideo_gst_structure_to_string) (const GstStructure * structure); typedef GList* (*mvideo_gst_discoverer_info_get_video_streams) (GstDiscovererInfo *info); typedef GList* (*mvideo_gst_discoverer_info_get_audio_streams) (GstDiscovererInfo *info); typedef guint (*mvideo_gst_discoverer_video_info_get_width) (const GstDiscovererVideoInfo* info); typedef guint (*mvideo_gst_discoverer_video_info_get_height) (const GstDiscovererVideoInfo* info); typedef guint (*mvideo_gst_discoverer_video_info_get_framerate_num) (const GstDiscovererVideoInfo* info); typedef guint (*mvideo_gst_discoverer_video_info_get_framerate_denom) (const GstDiscovererVideoInfo* info); typedef guint (*mvideo_gst_discoverer_video_info_get_bitrate) (const GstDiscovererVideoInfo* info); typedef GstClockTime (*mvideo_gst_discoverer_info_get_duration) (const GstDiscovererInfo* info); typedef guint (*mvideo_gst_discoverer_audio_info_get_sample_rate) (const GstDiscovererAudioInfo* info); typedef guint (*mvideo_gst_discoverer_audio_info_get_bitrate) (const GstDiscovererAudioInfo* info); typedef guint (*mvideo_gst_discoverer_audio_info_get_channels) (const GstDiscovererAudioInfo* info); typedef guint (*mvideo_gst_discoverer_audio_info_get_depth) (const GstDiscovererAudioInfo* info); typedef struct CustomData { GstDiscoverer *discoverer; GMainLoop *loop; } CustomData; class GstUtils { public: ~GstUtils(); static GstUtils* get(); static void discovered(GstDiscoverer *discoverer, GstDiscovererInfo *info, GError *err, CustomData *data); static void finished(GstDiscoverer *discoverer, CustomData *data); /** * @brief 使用gstreamer获取影片信息 * @param 文件信息 * @return 影片信息 */ MovieInfo parseFileByGst(const QFileInfo &fi); private: GstUtils(); private: static MovieInfo m_movieInfo; static GstUtils* m_pGstUtils; CustomData m_gstData; mvideo_gst_init g_mvideo_gst_init = nullptr; mvideo_gst_discoverer_new g_mvideo_gst_discoverer_new = nullptr; mvideo_gst_discoverer_start g_mvideo_gst_discoverer_start = nullptr; mvideo_gst_discoverer_stop g_mvideo_gst_discoverer_stop = nullptr; mvideo_gst_discoverer_discover_uri_async g_mvideo_gst_discoverer_discover_uri_async = nullptr; }; } #endif // GSTUTILS_H deepin-movie-reborn-5.15.10/src/libdmr/libdmr.pc.in000066400000000000000000000007411473342170300220010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=@CMAKE_INSTALL_FULL_LIBDIR@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/libdmr Name: dmr Description: deepin movie player widget development file Version: @PROJECT_VERSION@ Libs: -L${libdir} -ldmr Cflags: -I${includedir} Requires: Qt5Widgets Qt5X11Extras Qt5Concurrent Qt5Network gl dtkcore dtkwidget deepin-movie-reborn-5.15.10/src/libdmr/libdmr.pro000066400000000000000000000031731473342170300215740ustar00rootroot00000000000000###################################################################### # Automatically generated by qmake (3.1) Tue Apr 28 17:19:12 2020 ###################################################################### include($$PWD/../install.pri) TEMPLATE = lib TARGET = libdmr INCLUDEPATH += ./ INCLUDEPATH += ../common INCLUDEPATH += ../backends/mpv INCLUDEPATH += ../../ BUILD_DIST = ../dist DESTDIR = $$BUILD_DIST/lib QT += core network widgets sql concurrent dbus x11extras dtkwidget # The following define makes your compiler warn you if you use any # feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 # Input HEADERS += compositing_manager.h \ dvd_utils.h \ movie_configuration.h \ online_sub.h \ player_backend.h \ player_engine.h \ player_widget.h \ playlist_model.h \ utils.h SOURCES += compositing_manager.cpp \ dvd_utils.cpp \ movie_configuration.cpp \ online_sub.cpp \ player_backend.cpp \ player_engine.cpp \ player_widget.cpp \ playlist_model.cpp \ utils.cpp deepin-movie-reborn-5.15.10/src/libdmr/movie_configuration.cpp000066400000000000000000000220551473342170300243530ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "movie_configuration.h" #include "utils.h" #include #include namespace dmr { static std::atomic _instance { nullptr }; static QMutex _instLock; #define CHECKED_EXEC(q) do { \ if (!(q).exec()) { \ qCritical() << (q).lastError(); \ } \ } while (0) // storage as a database: // table 1: urls // url md5 timestamp // md5 is local file's md5, if url is networked, md5 == 0 // table 2: infos (stores info about every url) // url key value class MovieConfigurationBackend: public QObject { public: explicit MovieConfigurationBackend(MovieConfiguration *cfg): QObject(cfg) { auto db_dir = QString("%1/%2/%3") .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)) .arg(qApp->organizationName()) .arg(qApp->applicationName()); QDir d; d.mkpath(db_dir); auto db_path = QString("%1/movies.db").arg(db_dir); _db = QSqlDatabase::addDatabase("QSQLITE"); _db.setDatabaseName(db_path); if(!_db.open()) { qCritical() << "open the movies database error"; return; } auto ts = _db.tables(QSql::Tables); if (!ts.contains("urls") || !ts.contains("infos")) { QSqlQuery q(_db); if (!q.exec("create table if not exists urls (url TEXT primary key, " "md5 TEXT, timestamp DATETIME)")) { qCritical() << q.lastError(); } if (!q.exec("create table if not exists infos (url TEXT, " "key TEXT, value BLOB, primary key (url, key))")) { qCritical() << q.lastError(); } } } void deleteUrl(const QUrl &url) { if(_db.transaction()) { QSqlQuery q(_db); if(q.prepare("delete from infos where url = ?")) { q.addBindValue(url); if (!q.exec()) { if(!_db.commit()) { qCritical() << _db.lastError(); } return; } } if (q.numRowsAffected() > 0) { QSqlQuery q_l(_db); if(q_l.prepare("delete from urls where url = ?")) { q_l.addBindValue(url); CHECKED_EXEC(q_l); } } } } bool urlExists(const QUrl &url) { QSqlQuery q(_db); if(q.prepare("select url from urls where url = ? limit 1")) { q.addBindValue(url); CHECKED_EXEC(q); } return q.first(); } void clear() { if(_db.transaction()) { QSqlQuery q(_db); if (q.exec("delete from infos")) { if (q.exec("delete from urls")) { if(!_db.commit()) { qCritical() << _db.lastError(); } return; } } if(!_db.rollback()) { qCritical() << _db.lastError(); } } } void updateUrl(const QUrl &url, const QString &key, const QVariant &val) { qInfo() << url << key << val; if(_db.transaction()) { if (!urlExists(url)) { QString md5; if (url.isLocalFile()) { md5 = utils::FastFileHash(QFileInfo(url.toLocalFile())); } else { md5 = QString(QCryptographicHash::hash(url.toString().toUtf8(), QCryptographicHash::Md5).toHex()); } QSqlQuery q(_db); if(q.prepare("insert into urls (url, md5, timestamp) values (?, ?, ?)")) { q.addBindValue(url); q.addBindValue(md5); q.addBindValue(QDateTime::currentDateTimeUtc()); if (!q.exec()) { if(!_db.rollback()) { qCritical() << _db.lastError(); } return; } } } QSqlQuery q(_db); if(q.prepare("replace into infos (url, key, value) values (?, ?, ?)")) { q.addBindValue(url); q.addBindValue(key); q.addBindValue(val); CHECKED_EXEC(q); if(!_db.commit()) { qCritical() << _db.lastError(); } } } } QVariant queryValueByUrlKey(const QUrl &url, const QString &key) { if (!urlExists(url)) return {}; QSqlQuery q(_db); if(q.prepare("select value from infos where url = ? and key = ?")) { q.addBindValue(url); q.addBindValue(key); CHECKED_EXEC(q); if (q.next()) { return q.value(0); } } return QVariant(); } QMap queryByUrl(const QUrl &url) { if (!urlExists(url)) return {}; QSqlQuery q(_db); if(q.prepare("select key, value from infos where url = ?")) { q.addBindValue(url); CHECKED_EXEC(q); } QMap res; while (q.next()) { res.insert(q.value(0).toString(), q.value(1)); } return res; } ~MovieConfigurationBackend(); private: QSqlDatabase _db; }; MovieConfigurationBackend::~MovieConfigurationBackend() { _db.close(); QSqlDatabase::removeDatabase(_db.connectionName()); } MovieConfiguration &MovieConfiguration::get() { if (_instance == nullptr) { QMutexLocker lock(&_instLock); _instance = new MovieConfiguration; } return *_instance; } void MovieConfiguration::removeUrl(const QUrl &url) { _backend->deleteUrl(url); } bool MovieConfiguration::urlExists(const QUrl &url) { return _backend->urlExists(url); } void MovieConfiguration::clear() { _backend->clear(); } void MovieConfiguration::updateUrl(const QUrl &url, const QString &key, const QVariant &val) { _backend->updateUrl(url, key, val); } void MovieConfiguration::updateUrl(const QUrl &url, KnownKey key, const QVariant &val) { updateUrl(url, knownKey2String(key), val); } void MovieConfiguration::append2ListUrl(const QUrl &url, KnownKey key, const QString &val) { auto list = getByUrl(url, knownKey2String(key)).toString().split(';', QString::SkipEmptyParts); auto bytes = val.toUtf8().toBase64(); list.append(bytes); updateUrl(url, key, list.join(';')); } void MovieConfiguration::removeFromListUrl(const QUrl &url, KnownKey key, const QString &val) { ///add for warning by xxj ,no any means //val.isNull(); auto list = getListByUrl(url, key); } QString MovieConfiguration::knownKey2String(KnownKey kk) { switch (kk) { case KnownKey::SubDelay: return "sub-delay"; case KnownKey::SubCodepage: return "sub-codepage"; case KnownKey::SubId: return "sid"; case KnownKey::StartPos: return "start"; case KnownKey::ExternalSubs: return "external-subs"; default: return ""; } } QStringList MovieConfiguration::getListByUrl(const QUrl &url, KnownKey key) { return decodeList(getByUrl(url, knownKey2String(key))); } QStringList MovieConfiguration::decodeList(const QVariant &val) { auto list = val.toString().split(';', QString::SkipEmptyParts); std::transform(list.begin(), list.end(), list.begin(), [](const QString & s) { return QByteArray::fromBase64(s.toUtf8()); }); return list; } QVariant MovieConfiguration::getByUrl(const QUrl &url, const QString &key) { return _backend->queryValueByUrlKey(url, key); } QVariant MovieConfiguration::getByUrl(const QUrl &url, KnownKey key) { return getByUrl(url, knownKey2String(key)); } QMap MovieConfiguration::queryByUrl(const QUrl &url) { return _backend->queryByUrl(url); } MovieConfiguration::~MovieConfiguration() { delete _backend; } MovieConfiguration::MovieConfiguration() : QObject(nullptr) { } #ifdef SQL_TEST static void _backend_test() { auto &mc = MovieConfiguration::get(); mc.updateUrl(QUrl("movie1"), "sub-delay", -2.5); mc.updateUrl(QUrl("movie1"), "sub-delay", 1.5); mc.updateUrl(QUrl("movie2"), "sub-delay", 1.0); mc.updateUrl(QUrl("movie1"), "volume", 20); auto res = mc.queryByUrl(QUrl("movie1")); Q_ASSERT (res.size() == 2); qInfo() << res; mc.removeUrl(QUrl("movie1")); mc.updateUrl(QUrl("movie1"), "volume", 30); mc.updateUrl(QUrl("movie2"), "volume", 40); res = mc.queryByUrl(QUrl("movie1")); Q_ASSERT (res.size() == 1); qInfo() << res; mc.clear(); } #endif void MovieConfiguration::init() { _backend = new MovieConfigurationBackend(this); #ifdef SQL_TEST _backend_test(); #endif } } deepin-movie-reborn-5.15.10/src/libdmr/movie_configuration.h000066400000000000000000000030771473342170300240230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_MOVIE_CONFIGURATION_H #define _DMR_MOVIE_CONFIGURATION_H #include namespace dmr { class MovieConfigurationBackend; class MovieConfiguration: public QObject { Q_OBJECT public: enum KnownKey { SubDelay, SubCodepage, SubId, StartPos, ExternalSubs }; static MovieConfiguration& get(); void init(); // call once void removeUrl(const QUrl& url); void clear(); bool urlExists(const QUrl& url); void updateUrl(const QUrl& url, const QString& key, const QVariant& val); void updateUrl(const QUrl& url, KnownKey key, const QVariant& val); //helper for update list type entries void append2ListUrl(const QUrl& url, KnownKey key, const QString& val); void removeFromListUrl(const QUrl& url, KnownKey key, const QString& val); //list all settings for url QMap queryByUrl(const QUrl& url); QVariant getByUrl(const QUrl& url, const QString& key); QVariant getByUrl(const QUrl& url, KnownKey key); //helper for get list type entries QStringList getListByUrl(const QUrl& url, KnownKey key); //helper QStringList decodeList(const QVariant& val); ~MovieConfiguration(); static QString knownKey2String(KnownKey kk); private: MovieConfiguration(); MovieConfigurationBackend* _backend {nullptr}; }; using ConfigKnownKey = MovieConfiguration::KnownKey; } #endif /* ifndef _DMR_MOVIE_CONFIGURATION_H */ deepin-movie-reborn-5.15.10/src/libdmr/online_sub.cpp000066400000000000000000000222731473342170300224440ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "online_sub.h" #include "dmr_settings.h" #include "utils.h" #include namespace dmr { static OnlineSubtitle *_instance = nullptr; using RequestFunc = QString (const QFileInfo &fi); struct SubtitleProvider { QString apiurl; std::function reqfn; }; static SubtitleProvider shooter; static QString hash_file(const QFileInfo &fi) { auto sz = fi.size(); QList offsets = { 4096, sz / 3 * 2, sz / 3, sz - 8192 }; QStringList mds; QFile f(fi.absoluteFilePath()); if (!f.open(QFile::ReadOnly)) { return QString(); } std::for_each(offsets.begin(), offsets.end(), [&f, &mds](qint64 v) { f.seek(v); auto bytes = f.read(4096); #if 1 auto h = QString(QCryptographicHash::hash(bytes, QCryptographicHash::Md5).toHex()); mds.append(h); #else unsigned char out[16]; MD5_CTX ctx; MD5_Init(&ctx); MD5_Update(&ctx, bytes.data(), bytes.size()); MD5_Final(out, &ctx); char hex[] = "0123456789ABCDEF"; char md5[32]; for (int i = 0; i < 16; i++) { md5[i * 2] = hex[out[i] >> 4]; md5[i * 2 + 1] = hex[out[i] & 0xf]; } mds.append(QString::fromLatin1((const char *)md5, 32)); #endif }); f.close(); qInfo() << mds.join(";"); //Qt seems has a bug that ; will not be encoded as %3B in url query return mds.join("%3B"); } OnlineSubtitle &OnlineSubtitle::get() { if (_instance == nullptr) { _instance = new OnlineSubtitle; } return *_instance; } OnlineSubtitle::OnlineSubtitle() { shooter.apiurl = "http://www.shooter.cn/api/subapi.php"; shooter.reqfn = [](const QFileInfo & fi) { if (!fi.exists()) return ""; return ""; }; _defaultLocation = QString("%1/%2/%3/subtitles") .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)) .arg(qApp->organizationName()) .arg(qApp->applicationName()); QDir d; d.mkpath(_defaultLocation); _nam = new QNetworkAccessManager(this); connect(_nam, &QNetworkAccessManager::finished, this, &OnlineSubtitle::replyReceived); } void OnlineSubtitle::subtitlesDownloadComplete() { QList files; for (auto &sub : _subs) { if (!sub.local.isEmpty()) files.append(sub.local); // filter out some index files (idx e.g.) } emit subtitlesDownloadedFor(QUrl::fromLocalFile(_lastReqVideo.absoluteFilePath()), files, _lastReason); _subs.clear(); _lastReqVideo = QFileInfo(); _lastReason = FailReason::NoError; } QString OnlineSubtitle::findAvailableName(const QString &tmpl, int id) { QString name_tmpl = tmpl; int i = tmpl.lastIndexOf('.'); if (i >= 0) { name_tmpl.replace(i, 1, "[%1]."); } else { name_tmpl = name_tmpl.append("[%1]"); } auto c = id; do { auto name = name_tmpl.arg(c); auto path = QString("%1/%2").arg(storeLocation()).arg(name); if (!QFile::exists(path)) { return path; } c++; } while (c < (1 << 16)); return tmpl; } void OnlineSubtitle::replyReceived(QNetworkReply *reply) { //reply->deleteLater(); if (reply->error() != QNetworkReply::NoError) { if (reply->property("type") == "sub") { _pendingDownloads--; if (_pendingDownloads <= 0) { _lastReason = FailReason::NetworkError; subtitlesDownloadComplete(); } } qInfo() << reply->errorString(); reply->deleteLater(); return; } if (reply->property("type") == "meta") { auto data = reply->readAll(); qInfo() << "data size " << data.size() << static_cast(data[0]); // fix bug 24817 by ZhuYuliang if ((0 == data.size()) || (((data.size() == 1) && (static_cast(data[0]) == -1)) || (static_cast(data[0]) == 255))) { qInfo() << "no subtitle found"; _lastReason = FailReason::NoSubFound; emit onlineSubtitleStateChanged(_lastReason); reply->deleteLater(); return; } auto json = QJsonDocument::fromJson(data); if (json.isArray()) { qInfo() << json; _subs.clear(); for (auto v : json.array()) { if (v.isObject()) { auto obj = v.toObject(); for (auto f : obj["Files"].toArray()) { auto fi = f.toObject(); ShooterSubtitleMeta meta; meta.id = _subs.size(); meta.desc = obj["Desc"].toString(); meta.delay = obj["Delay"].toInt(); meta.ext = fi["Ext"].toString(); meta.link = fi["Link"].toString(); _subs.append(meta); } } } downloadSubtitles(); } reply->close(); } else if (reply->property("type") == "sub") { QString path; QString name_tmpl; auto data = reply->readAll(); auto disposition = reply->header(QNetworkRequest::ContentDispositionHeader); if (disposition.isValid()) { //set name to disposition filename qInfo() << disposition; } else if (reply->hasRawHeader("Content-Disposition")) { QByteArray name; auto bytes = reply->rawHeader("Content-Disposition"); for (auto h : bytes.split(';')) { auto kv = h.split('='); if (kv.size() == 2 && kv[0].trimmed() == "filename") { name = kv[1].trimmed(); break; } } if (!name.isEmpty()) { auto codec = QTextCodec::codecForName("UTF-8"); name_tmpl = codec->toUnicode(name); } } else { int id = reply->property("id").toInt(); name_tmpl = QString("%1.%2").arg(_lastReqVideo.completeBaseName()) .arg(_subs[id].ext); } reply->close(); int id = reply->property("id").toInt(); path = findAvailableName(name_tmpl, id); { QFile f(path); if (f.open(QFile::WriteOnly)) { f.write(data); } f.flush(); } _pendingDownloads--; QString conflictPath; if (hasHashConflict(path, name_tmpl, conflictPath)) { _lastReason = FailReason::Duplicated; _subs[id].local = conflictPath; QFile::remove(path); } else { _subs[id].local = path; qInfo() << "save to " << path; } if (_pendingDownloads <= 0) { subtitlesDownloadComplete(); } } reply->deleteLater(); } bool OnlineSubtitle::hasHashConflict(const QString &path, const QString &tmpl, QString &conflictPath) { QFileInfo fi(path); auto md5 = utils::FullFileHash(fi); QDirIterator di(fi.path()); while (di.hasNext()) { di.next(); auto s = di.fileName(); if (fi.fileName() == di.fileName()) continue; s = s.replace(QRegExp("\\[\\d+\\]"), ""); if (tmpl == s) { auto h = utils::FullFileHash(di.fileInfo()); qInfo() << "found " << di.fileName() << h; if (h == md5) { conflictPath = di.filePath(); return true; } } } return false; } void OnlineSubtitle::downloadSubtitles() { _pendingDownloads = _subs.size(); for (auto &sub : _subs) { QNetworkRequest req; //QUrl url(sub.link.toUtf8()); auto s = sub.link; s.replace("https://", "http://"); QUrl url(s); url.setScheme("http"); req.setUrl(url); auto *reply = _nam->get(req); //qInfo() << __func__ << sub.link << url; reply->setProperty("type", "sub"); reply->setProperty("id", sub.id); } } QString OnlineSubtitle::storeLocation() { return _defaultLocation; } void OnlineSubtitle::requestSubtitle(const QUrl &url) { QFileInfo fi(url.toLocalFile()); QString h = hash_file(fi); _lastReqVideo = fi; QUrl req_url; req_url.setUrl(shooter.apiurl); QUrlQuery q; q.addQueryItem("filehash", h); //q.addQueryItem("pathinfo", fi.absoluteFilePath()); q.addQueryItem("pathinfo", fi.fileName()); q.addQueryItem("format", "json"); //q.addQueryItem("lang", "chn"); QUrl params; params.setQuery(q); auto data = params.query(QUrl::FullyEncoded).toUtf8(); //qInfo() << req_url << params.query(QUrl::FullyEncoded); QNetworkRequest req; req.setUrl(shooter.apiurl); req.setHeader(QNetworkRequest::ContentLengthHeader, data.length()); req.setRawHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); auto reply = _nam->post(req, data); reply->setProperty("type", "meta"); } } deepin-movie-reborn-5.15.10/src/libdmr/online_sub.h000066400000000000000000000031621473342170300221050ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_ONLINE_SUB_H #define _DMR_ONLINE_SUB_H #include #include #include #include namespace dmr { struct ShooterSubtitleMeta { int id; //error warning(cppcheck) int delay; //error warning(cppcheck) QString desc; QString ext; QString link; // url to download QString local; // saved position when downloaded }; class OnlineSubtitle: public QObject { Q_OBJECT public: enum FailReason { NoError, NetworkError, NoSubFound, Duplicated, // the same hash with local cache }; static OnlineSubtitle& get(); QString storeLocation(); public slots: void requestSubtitle(const QUrl& url); private slots: void replyReceived(QNetworkReply*); void downloadSubtitles(); signals: void subtitlesDownloadedFor(const QUrl& url, const QList& filenames, FailReason r); void onlineSubtitleStateChanged(const FailReason reason); private: QString _defaultLocation; QNetworkAccessManager *_nam {nullptr}; int _pendingDownloads {0}; // this should equal to _subs.size() basically QList _subs; QFileInfo _lastReqVideo; FailReason _lastReason {NoError}; OnlineSubtitle(); void subtitlesDownloadComplete(); QString findAvailableName(const QString& tmpl, int id); bool hasHashConflict(const QString& path, const QString& tmpl, QString& conflictPath); }; } #endif /* ifndef _DMR_ONLINE_SUB_H */ deepin-movie-reborn-5.15.10/src/libdmr/player_backend.cpp000066400000000000000000000004751473342170300232520ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "player_backend.h" namespace dmr { Backend::DebugLevel Backend::_debugLevel = Backend::DebugLevel::Info; } deepin-movie-reborn-5.15.10/src/libdmr/player_backend.h000066400000000000000000000113771473342170300227220ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLAYER_BACKEND_H #define _DMR_PLAYER_BACKEND_H #include namespace dmr { class PlayingMovieInfo; // Player backend base class // There are only two backends: mpv and vpu // mpv is the only and default on all platform except Sunway // vpu is default for Sunway if media file can be hardware-decoded by coda vpu class Backend: public QWidget { Q_OBJECT Q_PROPERTY(qint64 duration READ duration) Q_PROPERTY(qint64 elapsed READ elapsed NOTIFY elapsedChanged) Q_PROPERTY(QSize videoSize READ videoSize NOTIFY videoSizeChanged) Q_PROPERTY(bool paused READ paused) Q_PROPERTY(PlayState state READ state NOTIFY stateChanged) public: enum PlayState { Playing, Paused, Stopped }; Q_ENUM(PlayState) enum DebugLevel { Info, Debug, // some normal debug info Verbose // very verbosed output from backend }; Q_ENUM(DebugLevel) enum SoundMode { Stereo, Left, Right }; Q_ENUM(SoundMode) enum hwaccelMode { hwaccelAuto = 0, hwaccelOpen, hwaccelClose }; Q_ENUM(hwaccelMode) Backend(QWidget *parent = nullptr) {} virtual ~Backend() {} virtual void setPlayFile(const QUrl &url) { _file = url; } virtual void setDVDDevice(const QString &path) { _dvdDevice = path; } // NOTE: need to check if file is playable by this backend, // this is important especially for vpu virtual bool isPlayable() const = 0; virtual qint64 duration() const { return 0; } virtual qint64 elapsed() const { return 0; } virtual QSize videoSize() const = 0; virtual bool paused() { return _state == PlayState::Paused; } virtual PlayState state() const { return _state; } virtual const PlayingMovieInfo &playingMovieInfo() = 0; virtual void setPlaySpeed(double times) = 0; virtual void savePlaybackPosition() = 0; virtual void updateSubStyle(const QString &font, int sz) = 0; virtual void setSubCodepage(const QString &cp) = 0; virtual QString subCodepage() = 0; virtual void addSubSearchPath(const QString &path) = 0; //add by heyi virtual void firstInit() = 0; virtual bool loadSubtitle(const QFileInfo &fi) = 0; virtual void toggleSubtitle() = 0; virtual bool isSubVisible() = 0; virtual void selectSubtitle(int id) = 0; virtual void selectTrack(int id) = 0; virtual void setSubDelay(double secs) = 0; virtual double subDelay() const = 0; virtual int aid() const = 0; virtual int sid() const = 0; virtual void changeSoundMode(SoundMode) = 0; virtual int volume() const = 0; virtual bool muted() const = 0; virtual void setVideoAspect(double r) = 0; virtual double videoAspect() const = 0; virtual int videoRotation() const = 0; virtual void setVideoRotation(int degree) = 0; virtual QImage takeScreenshot() = 0; virtual void burstScreenshot() = 0; //initial the start of burst screenshotting virtual void stopBurstScreenshot() = 0; // hack: used to access backend internal states virtual QVariant getProperty(const QString &) = 0; virtual void setProperty(const QString &, const QVariant &) = 0; virtual void nextFrame() = 0; virtual void previousFrame() = 0; virtual void makeCurrent() = 0; virtual void changehwaccelMode(hwaccelMode hwaccelMode) = 0; static void setDebugLevel(DebugLevel lvl) { _debugLevel = lvl; } Q_SIGNALS: void tracksChanged(); void elapsedChanged(); void videoSizeChanged(); void stateChanged(); void fileLoaded(); void muteChanged(); void volumeChanged(); void sidChanged(); void aidChanged(); //emit during burst screenshotting void notifyScreenshot(const QImage &frame, qint64 time); void mpvErrorLogsChanged(const QString prefix, const QString text); void mpvWarningLogsChanged(const QString prefix, const QString text); void urlpause(bool status); void sigMediaError(); public slots: virtual void play() = 0; virtual void pauseResume() = 0; virtual void stop() = 0; virtual void seekForward(int secs) = 0; virtual void seekBackward(int secs) = 0; virtual void seekAbsolute(int) = 0; virtual void volumeUp() = 0; virtual void volumeDown() = 0; virtual void changeVolume(int val) = 0; virtual void toggleMute() = 0; virtual void setMute(bool bMute) = 0; protected: PlayState _state { PlayState::Stopped }; QString _dvdDevice ; QUrl _file; static DebugLevel _debugLevel; }; } #endif /* ifndef _DMR_PLAYER_BACKEND_H */ deepin-movie-reborn-5.15.10/src/libdmr/player_engine.cpp000066400000000000000000000617621473342170300231360ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include #include "player_engine.h" #include "playlist_model.h" #include "movie_configuration.h" #include "online_sub.h" #include "mpv_proxy.h" #include "compositing_manager.h" #include "dguiapplicationhelper.h" #include "filefilter.h" #include "qtplayer_proxy.h" #include "eventlogutils.h" #include #ifndef _LIBDMR_ #include "dmr_settings.h" #endif #include "drecentmanager.h" DCORE_USE_NAMESPACE DGUI_USE_NAMESPACE #define AV_CODEC_ID_AVS2 192 #define AV_CODEC_ID_AVS3 193 namespace dmr { const QStringList PlayerEngine::audio_filetypes = {"*.mp3", "*.wav", "*.wma", "*.m4a", "*.aac", "*.ac3", "*.ape", "*.flac", "*.ra", "*.mka", "*.dts", "*.opus", "*.amr"}; const QStringList PlayerEngine::video_filetypes = { "*.3g2", "*.3ga", "*.3gp", "*.3gp2", "*.3gpp", "*.amv", "*.asf", "*.asx", "*.avf", "*.avi", "*.bdm", "*.bdmv", "*.bik", "*.clpi", "*.cpi", "*.dat", "*.divx", "*.drc", "*.dv", "*.dvr-ms", "*.f4v", "*.flv", "*.gvi", "*.gxf", "*.hdmov", "*.hlv", "*.iso", "*.letv", "*.lrv", "*.m1v", "*.m2p", "*.m2t", "*.m2ts", "*.m2v", "*.m3u", "*.m3u8", "*.m4v", "*.mkv", "*.moov", "*.mov", "*.mov", "*.mp2", "*.mp2v", "*.mp4", "*.mp4v", "*.mpe", "*.mpeg", "*.mpeg1", "*.mpeg2", "*.mpeg4", "*.mpg", "*.mpl", "*.mpls", "*.mpv", "*.mpv2", "*.mqv", "*.mts", "*.mts", "*.mtv", "*.mxf", "*.mxg", "*.nsv", "*.nuv", "*.ogg", "*.ogm", "*.ogv", "*.ogx", "*.ps", "*.qt", "*.qtvr", "*.ram", "*.rec", "*.rm", "*.rm", "*.rmj", "*.rmm", "*.rms", "*.rmvb", "*.rmx", "*.rp", "*.rpl", "*.rv", "*.rvx", "*.thp", "*.tod", "*.tp", "*.trp", "*.ts", "*.tts", "*.txd", "*.vcd", "*.vdr", "*.vob", "*.vp8", "*.vro", "*.webm", "*.wm", "*.wmv", "*.wtv", "*.xesc", "*.xspf", "*.ogg", }; const QStringList PlayerEngine::subtitle_suffixs = {"ass", "sub", "srt", "aqt", "jss", "gsub", "ssf", "ssa", "smi", "usf", "idx"}; PlayerEngine::PlayerEngine(QWidget *parent) : QWidget(parent) { m_bAudio = false; m_stopRunningThread = false; auto *l = new QVBoxLayout(this); l->setContentsMargins(0, 0, 0, 0); if(CompositingManager::isMpvExists()){ _current = new MpvProxy(this); } else { _current = new QtPlayerProxy(this); } if (_current) { connect(_current, &Backend::stateChanged, this, &PlayerEngine::onBackendStateChanged); connect(_current, &Backend::tracksChanged, this, &PlayerEngine::tracksChanged); connect(_current, &Backend::elapsedChanged, this, &PlayerEngine::elapsedChanged); connect(_current, &Backend::fileLoaded, this, &PlayerEngine::fileLoaded); connect(_current, &Backend::muteChanged, this, &PlayerEngine::muteChanged); connect(_current, &Backend::volumeChanged, this, &PlayerEngine::volumeChanged); connect(_current, &Backend::sidChanged, this, &PlayerEngine::sidChanged); connect(_current, &Backend::aidChanged, this, &PlayerEngine::aidChanged); connect(_current, &Backend::videoSizeChanged, this, &PlayerEngine::videoSizeChanged); connect(_current, &Backend::notifyScreenshot, this, &PlayerEngine::notifyScreenshot); connect(_current, &Backend::mpvErrorLogsChanged, this, &PlayerEngine::mpvErrorLogsChanged); connect(_current, &Backend::mpvWarningLogsChanged, this, &PlayerEngine::mpvWarningLogsChanged); connect(_current, &Backend::urlpause, this, &PlayerEngine::urlpause); connect(_current, &Backend::sigMediaError, this, &PlayerEngine::sigMediaError); l->addWidget(_current); } connect(&_networkConfigMng, &QNetworkConfigurationManager::onlineStateChanged, this, &PlayerEngine::onlineStateChanged); setLayout(l); #ifndef _LIBDMR_ connect(&Settings::get(), &Settings::subtitleChanged, this, &PlayerEngine::updateSubStyles); #endif connect(&OnlineSubtitle::get(), &OnlineSubtitle::subtitlesDownloadedFor, this, &PlayerEngine::onSubtitlesDownloaded); _playlist = new PlaylistModel(this); connect(_playlist, &PlaylistModel::asyncAppendFinished, this, &PlayerEngine::onPlaylistAsyncAppendFinished, Qt::DirectConnection); connect(_playlist, &PlaylistModel::updateDuration, this, &PlayerEngine::updateDuration); } PlayerEngine::~PlayerEngine() { m_stopRunningThread = true; FileFilter::instance()->stopThread(); if (_current) { disconnect(_current, nullptr, nullptr, nullptr); delete _current; _current = nullptr; } if (_playlist) { disconnect(_playlist, nullptr, nullptr, nullptr); delete _playlist; _playlist = nullptr; } qInfo() << __func__; } bool PlayerEngine::isPlayableFile(const QUrl &url) { if (FileFilter::instance()->isMediaFile(url)) { return true; } else { // 网络文件不提示 if(url.isLocalFile()) { emit sigInvalidFile(QFileInfo(url.toLocalFile()).fileName()); } return false; } } static QStringList suffixes; bool PlayerEngine::isPlayableFile(const QString &name) { QUrl url = FileFilter::instance()->fileTransfer(name); if (FileFilter::instance()->isMediaFile(url)) { return true; } if (url.isLocalFile()) { // 网络文件不提示 emit sigInvalidFile(QFileInfo(url.toLocalFile()).fileName()); return false; } return false; } bool PlayerEngine::isAudioFile(const QString &name) { QUrl url = FileFilter::instance()->fileTransfer(name); return FileFilter::instance()->isAudio(url); } bool PlayerEngine::isSubtitle(const QString &name) { QUrl url = FileFilter::instance()->fileTransfer(name); return FileFilter::instance()->isSubtitle(url); } void PlayerEngine::updateSubStyles() { #ifndef _LIBDMR_ QPointer pFontOpt = Settings::get().settings()->option("subtitle.font.family"); QPointer pSizeOpt = Settings::get().settings()->option("subtitle.font.size"); if(!pFontOpt || !pSizeOpt) { return; } int fontId = pFontOpt->value().toInt(); int size = pSizeOpt->value().toInt(); QString font = pFontOpt->data("items").toStringList()[fontId]; if (_state != CoreState::Idle) { if (_playlist->current() < 0) return; auto vh = videoSize().height(); if (vh <= 0) { vh = _playlist->currentInfo().mi.height; } double scale = vh / 720.0; size /= scale; /* magic scale number 2.0 comes from my mind, test with my eyes... */ size *= 2.0; updateSubStyle(font, size); } #endif } void PlayerEngine::waitLastEnd() { if (MpvProxy *mpv = dynamic_cast(_current)) { mpv->pollingEndOfPlayback(); }else if (QtPlayerProxy *qtPlayer = dynamic_cast(_current)) { qtPlayer->pollingEndOfPlayback(); } } void PlayerEngine::onBackendStateChanged() { if (!_current) return; CoreState old = _state; switch (_current->state()) { case Backend::PlayState::Playing: _state = CoreState::Playing; if (_playlist->count() > 0) { m_bAudio = currFileIsAudio(); } //playing . emit thumbnail progress mode signal with setting file if (old == CoreState::Idle) emit siginitthumbnailseting(); break; case Backend::PlayState::Paused: _state = CoreState::Paused; break; case Backend::PlayState::Stopped: _state = CoreState::Idle; break; } updateSubStyles(); if (old != _state) emit stateChanged(); auto systemEnv = QProcessEnvironment::systemEnvironment(); QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE")); QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY")); if (XDG_SESSION_TYPE == QLatin1String("wayland") || WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) { if (_state == CoreState::Idle) { QPalette pal(qApp->palette()); this->setAutoFillBackground(true); this->setPalette(pal); } else { QPalette pal(this->palette()); pal.setColor(QPalette::Background, Qt::black); this->setAutoFillBackground(true); this->setPalette(pal); } } } PlayerEngine::CoreState PlayerEngine::state() { auto old = _state; switch (_current->state()) { case Backend::PlayState::Playing: _state = CoreState::Playing; break; case Backend::PlayState::Paused: _state = CoreState::Paused; break; case Backend::PlayState::Stopped: _state = CoreState::Idle; break; } if (old != _state) { qWarning() << "###### state mismatch" << old << _state; emit stateChanged(); } return _state; } const PlayingMovieInfo &PlayerEngine::playingMovieInfo() { static PlayingMovieInfo empty; if (!_current) return empty; return _current->playingMovieInfo(); } int PlayerEngine::aid() { if (state() == CoreState::Idle) { return 0; } if (!_current) return 0; return _current->aid(); } int PlayerEngine::sid() { if (state() == CoreState::Idle) { return 0; } if (!_current) return 0; return _current->sid(); } void PlayerEngine::onSubtitlesDownloaded(const QUrl &url, const QList &filenames, OnlineSubtitle::FailReason reason) { //mod for warning by xxj ,no any means reason = OnlineSubtitle::FailReason::NoError; if (state() == CoreState::Idle) { return; } if (!_current) return; if (playlist().currentInfo().url != url) return; bool res = false; for (auto &filename : filenames) { if (true == _current->loadSubtitle(filename)) { res = true; } else { QFile::remove(filename); } } emit loadOnlineSubtitlesFinished(url, res); } bool PlayerEngine::loadSubtitle(const QFileInfo &fi) { if (state() == CoreState::Idle) { return true; } if (!_current) return true; const auto &pmf = _current->playingMovieInfo(); auto pif = playlist().currentInfo(); int i = 0; for (const auto &sub : pmf.subs) { if (sub["external"].toBool()) { auto path = sub["external-filename"].toString(); if (path == fi.canonicalFilePath()) { this->selectSubtitle(i); return true; } } ++i; } if (_current->loadSubtitle(fi)) { #ifndef _LIBDMR_ MovieConfiguration::get().append2ListUrl(pif.url, ConfigKnownKey::ExternalSubs, fi.canonicalFilePath()); #endif return true; } return false; } void PlayerEngine::loadOnlineSubtitle(const QUrl &url) { if (state() == CoreState::Idle) { return; } if (!_current) return; OnlineSubtitle::get().requestSubtitle(url); } void PlayerEngine::setPlaySpeed(double times) { if (!_current) return; _current->setPlaySpeed(times); } void PlayerEngine::setSubDelay(double secs) { if (!_current) return; _current->setSubDelay(secs + _current->subDelay()); } double PlayerEngine::subDelay() const { if (!_current) return 0.0; return _current->subDelay(); } QString PlayerEngine::subCodepage() { if (_current->subCodepage().isEmpty()) { return "auto"; } else { return _current->subCodepage(); } } void PlayerEngine::setSubCodepage(const QString &cp) { if (!_current) return; _current->setSubCodepage(cp); // emit subCodepageChanged(); } void PlayerEngine::addSubSearchPath(const QString &path) { if (!_current) return; _current->addSubSearchPath(path); } void PlayerEngine::updateSubStyle(const QString &font, int sz) { if (!_current) return; _current->updateSubStyle(font, sz / 2); } void PlayerEngine::selectSubtitle(int id) { if (!_current) return; if (state() != CoreState::Idle) { const auto &pmf = _current->playingMovieInfo(); if (id >= pmf.subs.size()) return; auto sid = pmf.subs[id]["id"].toInt(); _current->selectSubtitle(sid); } } bool PlayerEngine::isSubVisible() { if (state() == CoreState::Idle) { return false; } if (!_current) return false; return _current->isSubVisible(); } void PlayerEngine::toggleSubtitle() { if (!_current) return; _current->toggleSubtitle(); } void PlayerEngine::selectTrack(int id) { if (!_current) return; _current->selectTrack(id); } void PlayerEngine::volumeUp() { if (!_current) return; _current->volumeUp(); } void PlayerEngine::changeVolume(int val) { if (!_current) return; _current->changeVolume(val); } void PlayerEngine::volumeDown() { if (!_current) return; _current->volumeDown(); } int PlayerEngine::volume() const { if (!_current) return 100; return _current->volume(); } bool PlayerEngine::muted() const { if (!_current) return false; return _current->muted(); } void PlayerEngine::changehwaccelMode(Backend::hwaccelMode hwaccelMode) { if (!_current) return; return _current->changehwaccelMode(hwaccelMode); } Backend *PlayerEngine::getMpvProxy() { return _current; } void PlayerEngine::toggleMute() { if (!_current) return; //发送信号通知初始化库函数 if (!m_bMpvFunsLoad) { emit mpvFunsLoadOver(); m_bMpvFunsLoad = true; } _current->toggleMute(); emit volumeChanged(); } void PlayerEngine::setMute(bool bMute) { _current->setMute(bMute); } void PlayerEngine::savePreviousMovieState() { savePlaybackPosition(); } void PlayerEngine::paintEvent(QPaintEvent *e) { QRect rect = this->rect(); QPainter p(this); if (!CompositingManager::get().composited() || utils::check_wayland_env()) { // wayland下不会进入mainwindow的paintevent函数导致图标未绘制 if (_state != Idle && m_bAudio) { p.fillRect(rect, QBrush(QColor(0, 0, 0))); } else { QImage icon = QIcon::fromTheme("deepin-movie").pixmap(130, 130).toImage();; QPixmap pix = QPixmap::fromImage(icon); QPointF pos = rect.center() - QPoint(pix.width() / 2, pix.height() / 2) / devicePixelRatioF(); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { p.fillRect(rect, QBrush(QColor(255, 255, 255))); p.drawPixmap(pos, pix); } else { p.fillRect(rect, QBrush(QColor(0, 0, 0))); p.drawPixmap(pos, pix); } } } return QWidget::paintEvent(e); } //FIXME: TODO: update _current according to file void PlayerEngine::requestPlay(int id) { if (!_current) return; if (id >= _playlist->count()) return; const auto &item = _playlist->items()[id]; _current->setPlayFile(item.url); DRecentData data; data.appName = "Deepin Movie"; data.appExec = "deepin-movie"; DRecentManager::addItem(item.url.toLocalFile(), data); if (_current->isPlayable()) { _current->play(); } else { // TODO: delete and try next backend? } QJsonObject obj{ {"tid", EventLogUtils::StartPlaying}, {"version", VERSION}, {"successful", item.url.isLocalFile() ? "true" : ""}, {"type", currFileIsAudio() ? "audio" : "video"}, {"origin", item.url.isLocalFile() ? "local" : "http"}, {"encapsulation_format", item.mi.fileType}, {"coding_format", utils::videoIndex2str(item.mi.vCodecID)} }; EventLogUtils::get().writeLogs(obj); } void PlayerEngine::savePlaybackPosition() { if (!_current) return; _current->savePlaybackPosition(); } void PlayerEngine::nextFrame() { if (!_current) return; _current->nextFrame(); } void PlayerEngine::previousFrame() { if (!_current) return; _current->previousFrame(); } void PlayerEngine::makeCurrent() { _current->makeCurrent(); } void PlayerEngine::play() { if (!_current || !_playlist->count()) return; if (state() == CoreState::Paused && getBackendProperty("keep-open").toBool() && getBackendProperty("eof-reached").toBool()) { stop(); next(); } else if (state() == CoreState::Idle) { next(); } } void PlayerEngine::prev() { if (_playingRequest) return; _playingRequest = true; savePreviousMovieState(); _playlist->playPrev(true); _playingRequest = false; } void PlayerEngine::next() { if (_playingRequest) return; _playingRequest = true; savePreviousMovieState(); _playlist->playNext(true); _playingRequest = false; } void PlayerEngine::onPlaylistAsyncAppendFinished(const QList &pil) { if (_pendingPlayReq.isValid()) { auto id = _playlist->indexOf(_pendingPlayReq); if (pil.size() && _pendingPlayReq.scheme() == "playlist") { id = _playlist->indexOf(pil[0].url); } if (id >= 0) { _playlist->changeCurrent(id); _pendingPlayReq = QUrl(); } else { qInfo() << __func__ << "id is:" << id; } // else, wait for another signal } else { qInfo() << __func__ << _pendingPlayReq; } } void PlayerEngine::playByName(const QUrl &url) { savePreviousMovieState(); int id = _playlist->indexOf(url); qInfo() << __func__ << url << "id:" << id; if (id >= 0) { _playlist->changeCurrent(id); } else { _pendingPlayReq = url; } } void PlayerEngine::playSelected(int id) { qInfo() << __func__ << id; savePreviousMovieState(); _playlist->changeCurrent(id); } void PlayerEngine::clearPlaylist() { _playlist->clear(); MovieConfiguration::get().clear(); } void PlayerEngine::pauseResume() { if (!_current) return; if (_state == CoreState::Idle) return; _current->pauseResume(); } void PlayerEngine::stop() { if (!_current) return; _current->stop(); } bool PlayerEngine::paused() { return _state == CoreState::Paused; } QImage PlayerEngine::takeScreenshot() { return _current->takeScreenshot(); } void PlayerEngine::burstScreenshot() { _current->burstScreenshot(); } void PlayerEngine::stopBurstScreenshot() { _current->stopBurstScreenshot(); } void PlayerEngine::seekForward(int secs) { if (state() == CoreState::Idle) return; static int lastElapsed = 0; if (elapsed() == lastElapsed) return ; _current->seekForward(secs); } void PlayerEngine::seekBackward(int secs) { if (state() == CoreState::Idle) return; if (elapsed() - abs(secs) <= 0) { _current->seekBackward(static_cast(elapsed())); } else { _current->seekBackward(secs); } } void PlayerEngine::seekAbsolute(int pos) { if (state() == CoreState::Idle) return; _current->seekAbsolute(pos); } void PlayerEngine::setDVDDevice(const QString &path) { if (!_current) { return; } _current->setDVDDevice(path); } bool PlayerEngine::addPlayFile(const QUrl &url) { QUrl realUrl; realUrl = FileFilter::instance()->fileTransfer(url.toString()); if (!isPlayableFile(realUrl)) return false; _playlist->append(realUrl); return true; } QList PlayerEngine::addPlayDir(const QDir &dir) { QList valids = FileFilter::instance()->filterDir(dir); struct { bool operator()(const QUrl& fi1, const QUrl& fi2) const { static QRegExp rd("\\d+"); int pos = 0; QString fileName1 = QFileInfo(fi1.toLocalFile()).fileName(); QString fileName2 = QFileInfo(fi2.toLocalFile()).fileName(); while ((pos = rd.indexIn(fileName1, pos)) != -1) { auto inc = rd.matchedLength(); auto id1 = fileName1.midRef(pos, inc); auto pos2 = rd.indexIn(fileName2, pos); if (pos == pos2) { auto id2 = fileName2.midRef(pos, rd.matchedLength()); //qInfo() << "id compare " << id1 << id2; if (id1 != id2) { bool ok1, ok2; bool v = id1.toInt(&ok1) < id2.toInt(&ok2); if (ok1 && ok2) return v; return id1.localeAwareCompare(id2) < 0; } } pos += inc; } return fileName1.localeAwareCompare(fileName2) < 0; } } SortByDigits; std::sort(valids.begin(), valids.end(), SortByDigits); valids = addPlayFiles(valids); _playlist->appendAsync(valids); return valids; } QList PlayerEngine::addPlayFiles(const QList &urls) { qInfo() << __func__; QList valids; for (QUrl url : urls) { if (m_stopRunningThread) break; if (isPlayableFile(url)) valids << url; } _playlist->appendAsync(valids); return valids; } QList PlayerEngine::addPlayFiles(const QList &lstFile) { qInfo() << __func__; QList valids; QUrl realUrl; for (QString strFile : lstFile) { realUrl = FileFilter::instance()->fileTransfer(strFile); if (QFileInfo(realUrl.path()).isDir()) { if (realUrl.isLocalFile()) // 保证不是网络路径 valids << FileFilter::instance()->filterDir(QDir(realUrl.path())); } else { valids << realUrl; } } return addPlayFiles(valids); } void PlayerEngine::addPlayFs(const QList &lstFile) { qInfo() << __func__; QList valids; QUrl realUrl; for (QString strFile : lstFile) { realUrl = FileFilter::instance()->fileTransfer(strFile); if (QFileInfo(realUrl.path()).isDir()) { if (realUrl.isLocalFile()) // 保证不是网络路径 valids << FileFilter::instance()->filterDir(QDir(realUrl.path())); } else { valids << realUrl; } } if (valids.isEmpty()) { blockSignals(false); return; } QList addFiles = addPlayFiles(valids); blockSignals(false); emit finishedAddFiles(addFiles); } qint64 PlayerEngine::duration() const { if (!_current) return 0; return _current->duration(); } QSize PlayerEngine::videoSize() const { if (!_current) return {0, 0}; return _current->videoSize(); } qint64 PlayerEngine::elapsed() const { if (!_current) return 0; if (!_playlist) return 0; if (_playlist->count() == 0) return 0; if (_playlist->current() < 0) return 0; qint64 nDuration = _current->duration(); //因为文件信息的持续时间和MPV返回的持续有些差别,所以,我们使用文件返回的持续时间 qint64 nElapsed = _current->elapsed(); if (nElapsed < 0) return 0; if (nElapsed > nDuration) return nDuration; return nElapsed; } void PlayerEngine::setVideoAspect(double r) { if (_current) _current->setVideoAspect(r); } double PlayerEngine::videoAspect() const { if (!_current) return 0.0; return _current->videoAspect(); } int PlayerEngine::videoRotation() const { if (!_current) return 0; return _current->videoRotation(); } void PlayerEngine::setVideoRotation(int degree) { if (_current) _current->setVideoRotation(degree); } void PlayerEngine::changeSoundMode(Backend::SoundMode sm) { if (_current) _current->changeSoundMode(sm); } void PlayerEngine::resizeEvent(QResizeEvent *) { #if !defined(USE_DXCB) && !defined(_LIBDMR_) bool rounded = !window()->isFullScreen() && !window()->isMaximized(); if (rounded) { QPixmap shape(size()); shape.fill(Qt::transparent); QPainter p(&shape); QPainterPath pp; pp.addRect(rect()); p.fillPath(pp, QBrush(Qt::white)); p.end(); setMask(shape.mask()); } else { clearMask(); } #endif } void PlayerEngine::setBackendProperty(const QString &name, const QVariant &val) { if (_current) { _current->setProperty(name, val); } } QVariant PlayerEngine::getBackendProperty(const QString &name) { if (_current) { return _current->getProperty(name); } return QVariant(); } void PlayerEngine::toggleRoundedClip(bool roundClip) { MpvProxy* pMpvProxy = nullptr; pMpvProxy = dynamic_cast(_current); if(!pMpvProxy) { dynamic_cast(_current)->updateRoundClip(roundClip); } else { pMpvProxy->updateRoundClip(roundClip); } } bool PlayerEngine::currFileIsAudio() { bool bAudio = false; PlayItemInfo pif; if (_playlist->count() > 0) { pif = _playlist->currentInfo(); } if (CompositingManager::isMpvExists()) { if(pif.mi.vCodecID == AV_CODEC_ID_AVS2 || pif.mi.vCodecID == AV_CODEC_ID_AVS3) { bAudio = false; } else { bAudio = pif.url.isLocalFile() && (pif.mi.width <= 0 && pif.mi.height <= 0); } } else { bAudio = isAudioFile(pif.url.toString()); } return bAudio; } } // end of namespace dmr deepin-movie-reborn-5.15.10/src/libdmr/player_engine.h000066400000000000000000000152521473342170300225740ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLAYER_ENINE_H #define _DMR_PLAYER_ENINE_H #include #include #include #include #include namespace dmr { class PlaylistModel; using SubtitleInfo = QMap; using AudioInfo = QMap; struct PlayingMovieInfo { QList subs; QList audios; }; class PlayerEngine: public QWidget { Q_OBJECT Q_PROPERTY(qint64 duration READ duration) Q_PROPERTY(qint64 elapsed READ elapsed NOTIFY elapsedChanged) Q_PROPERTY(QSize videoSize READ videoSize NOTIFY videoSizeChanged) Q_PROPERTY(bool paused READ paused) Q_PROPERTY(CoreState state READ state NOTIFY stateChanged) public: enum CoreState { Idle, Playing, Paused, }; Q_ENUM(CoreState) // filetypes supported by mpv: https://github.com/mpv-player/mpv/blob/master/player/external_files.c const static QStringList audio_filetypes; const static QStringList video_filetypes; const static QStringList subtitle_suffixs; /* backend like mpv will asynchronously report end of playback. * there are situations when we need to see the end-event before * proceed (e.g playlist next) */ void waitLastEnd(); friend class PlaylistModel; explicit PlayerEngine(QWidget *parent); virtual ~PlayerEngine(); // only the last dvd device set void setDVDDevice(const QString &path); //add by heyi //第一次播放需要初库始化函数指针 void firstInit(); bool addPlayFile(const QUrl &url); // return collected valid urls QList addPlayDir(const QDir &dir); // returned list contains only accepted valid items QList addPlayFiles(const QList &urls); /** * @brief addPlayFiles 添加播放文件 * @param 文件集合 * @return 返回已添加成功的文件 */ QList addPlayFiles(const QList &lstFile); /** * @brief addPlayFs 在线程中运行添加文件 * @param 文件集合 */ void addPlayFs(const QList &lstFile); /** * @brief isPlayableFile 判断一个文件是否可以播放 * @param url 文件url * @return 是否可以播放 */ bool isPlayableFile(const QUrl &url); /** * @brief isPlayableFile 判断一个文件是否可以播放 * @param url 文件路径 * @return 是否可以播放 */ bool isPlayableFile(const QString &name); static bool isAudioFile(const QString &name); static bool isSubtitle(const QString &name); // only supports (+/-) 0, 90, 180, 270 int videoRotation() const; void setVideoRotation(int degree); void setVideoAspect(double r); double videoAspect() const; qint64 duration() const; qint64 elapsed() const; QSize videoSize() const; const struct MovieInfo &movieInfo(); bool paused(); CoreState state(); const PlayingMovieInfo &playingMovieInfo(); void setPlaySpeed(double times); void loadOnlineSubtitle(const QUrl &url); bool loadSubtitle(const QFileInfo &fi); void toggleSubtitle(); bool isSubVisible(); void selectSubtitle(int id); // id into PlayingMovieInfo.subs int sid(); void setSubDelay(double secs); double subDelay() const; void updateSubStyle(const QString &font, int sz); void setSubCodepage(const QString &cp); QString subCodepage(); void addSubSearchPath(const QString &path); void selectTrack(int id); // id into PlayingMovieInfo.audios int aid(); void changeSoundMode(Backend::SoundMode sm); int volume() const; bool muted() const; void changehwaccelMode(Backend::hwaccelMode hwaccelMode); PlaylistModel &playlist() const { return *_playlist; } Backend * getMpvProxy(); PlaylistModel *getplaylist() { return _playlist; }; QImage takeScreenshot(); void burstScreenshot(); //initial the start of burst screenshotting void stopBurstScreenshot(); void savePlaybackPosition(); void nextFrame(); void previousFrame(); //只在wayland下opengl窗口使用 void makeCurrent(); // use with caution void setBackendProperty(const QString &, const QVariant &); QVariant getBackendProperty(const QString &); void toggleRoundedClip(bool roundClip); bool currFileIsAudio(); signals: void tracksChanged(); void elapsedChanged(); void videoSizeChanged(); void stateChanged(); void fileLoaded(); void muteChanged(); void volumeChanged(); void sidChanged(); void aidChanged(); void subCodepageChanged(); void loadOnlineSubtitlesFinished(const QUrl &url, bool success); //add by heyi mpv函数加载完毕 void mpvFunsLoadOver(); //emit during burst screenshotting void notifyScreenshot(const QImage &frame, qint64 time); void playlistChanged(); void onlineStateChanged(const bool isOnline); void mpvErrorLogsChanged(const QString prefix, const QString text); void mpvWarningLogsChanged(const QString prefix, const QString text); void urlpause(bool status); void siginitthumbnailseting(); void updateDuration(); void sigInvalidFile(QString strFileName); void sigMediaError(); void finishedAddFiles(QList); public slots: void play(); void pauseResume(); void stop(); void prev(); void next(); void playSelected(int id); // id as in playlist indexes void playByName(const QUrl &url); void clearPlaylist(); void seekForward(int secs); void seekBackward(int secs); void seekAbsolute(int pos); void volumeUp(); void volumeDown(); void changeVolume(int val); void toggleMute(); void setMute(bool bMute); protected slots: void onBackendStateChanged(); void requestPlay(int id); void updateSubStyles(); void onSubtitlesDownloaded(const QUrl &url, const QList &filenames, OnlineSubtitle::FailReason); void onPlaylistAsyncAppendFinished(const QList &); protected: PlaylistModel *_playlist {nullptr}; CoreState _state { CoreState::Idle }; Backend *_current {nullptr}; QUrl _pendingPlayReq; bool _playingRequest {false}; //add by heyi bool m_bMpvFunsLoad {false}; void resizeEvent(QResizeEvent *) override; void savePreviousMovieState(); void paintEvent(QPaintEvent *e) override; private: QNetworkConfigurationManager _networkConfigMng; bool m_bAudio; bool m_stopRunningThread; }; } #endif /* ifndef _DMR_PLAYER_ENINE_H */ deepin-movie-reborn-5.15.10/src/libdmr/player_widget.cpp000066400000000000000000000016471473342170300231500ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "player_widget.h" #include "filefilter.h" #include namespace dmr { PlayerWidget::PlayerWidget(QWidget *parent) : QWidget (parent) { utils::first_check_wayland_env(); _engine = new PlayerEngine(this); auto *l = new QVBoxLayout; l->setContentsMargins(0, 0, 0, 0); l->addWidget(_engine); setLayout(l); } PlayerWidget::~PlayerWidget() { } PlayerEngine &PlayerWidget::engine() { return *_engine; } void PlayerWidget::play(const QUrl &url) { QUrl realUrl; realUrl = FileFilter::instance()->fileTransfer(url.toString()); if (!realUrl.isValid()) return; if (!_engine->addPlayFile(realUrl)) { return; } _engine->playByName(realUrl); } } deepin-movie-reborn-5.15.10/src/libdmr/player_widget.h000066400000000000000000000010561473342170300226070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include namespace dmr { class PlayerEngine; class PlayerWidget: public QWidget { Q_OBJECT public: explicit PlayerWidget(QWidget *parent = nullptr); virtual ~PlayerWidget(); /** * engine is instantiated in constructor, and all interaction comes from * engine */ PlayerEngine& engine(); void play(const QUrl& url); protected: PlayerEngine *_engine {nullptr}; }; } deepin-movie-reborn-5.15.10/src/libdmr/playlist_model.cpp000066400000000000000000001470051473342170300233310ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "playlist_model.h" #include "player_engine.h" #include "utils.h" #ifndef _LIBDMR_ #include "dmr_settings.h" #endif #include "dvd_utils.h" #include "compositing_manager.h" #include "gstutils.h" #include "sysutils.h" #include #include extern "C" { #include #include #include #include } typedef int (*mvideo_avformat_open_input)(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); typedef int (*mvideo_avformat_find_stream_info)(AVFormatContext *ic, AVDictionary **options); typedef int (*mvideo_av_find_best_stream)(AVFormatContext *ic, enum AVMediaType type, int wanted_stream_nb, int related_stream, AVCodec **decoder_ret, int flags); typedef void (*mvideo_avformat_close_input)(AVFormatContext **s); typedef AVDictionaryEntry *(*mvideo_av_dict_get)(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags); typedef void (*mvideo_av_dump_format)(AVFormatContext *ic,int index, const char *url, int is_output); typedef AVCodec *(*mvideo_avcodec_find_decoder)(enum AVCodecID id); typedef const char *(*mvideo_av_get_media_type_string)(enum AVMediaType media_type); typedef AVCodecContext *(*mvideo_avcodec_alloc_context3)(const AVCodec *codec); typedef int (*mvideo_avcodec_parameters_to_context)(AVCodecContext *codec, const AVCodecParameters *par); typedef int (*mvideo_avcodec_open2)(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); typedef void (*mvideo_avcodec_free_context)(AVCodecContext **avctx); mvideo_avformat_open_input g_mvideo_avformat_open_input = nullptr; mvideo_avformat_find_stream_info g_mvideo_avformat_find_stream_info = nullptr; mvideo_av_find_best_stream g_mvideo_av_find_best_stream = nullptr; mvideo_avformat_close_input g_mvideo_avformat_close_input = nullptr; mvideo_av_dict_get g_mvideo_av_dict_get = nullptr; mvideo_av_dump_format g_mvideo_av_dump_format = nullptr; mvideo_avcodec_find_decoder g_mvideo_avcodec_find_decoder = nullptr; mvideo_av_get_media_type_string g_mvideo_av_get_media_type_string = nullptr; mvideo_avcodec_alloc_context3 g_mvideo_avcodec_alloc_context3 = nullptr; mvideo_avcodec_parameters_to_context g_mvideo_avcodec_parameters_to_context = nullptr; mvideo_avcodec_open2 g_mvideo_avcodec_open2 = nullptr; mvideo_avcodec_free_context g_mvideo_avcodec_free_context = nullptr; namespace dmr { QDataStream &operator<< (QDataStream &st, const MovieInfo &mi) { st << mi.valid; st << mi.title; st << mi.fileType; st << mi.resolution; st << mi.filePath; st << mi.creation; st << mi.raw_rotate; st << mi.fileSize; st << mi.duration; st << mi.width; st << mi.height; st << mi.vCodecID; st << mi.vCodeRate; st << mi.fps; st << mi.proportion; st << mi.aCodeID; st << mi.aCodeRate; st << mi.aDigit; st << mi.channels; st << mi.sampling; #ifdef _MOVIE_USE_ st << mi.strFmtName; #endif return st; } QDataStream &operator>> (QDataStream &st, MovieInfo &mi) { st >> mi.valid; st >> mi.title; st >> mi.fileType; st >> mi.resolution; st >> mi.filePath; st >> mi.creation; st >> mi.raw_rotate; st >> mi.fileSize; st >> mi.duration; st >> mi.width; st >> mi.height; st >> mi.vCodecID; st >> mi.vCodeRate; st >> mi.fps; st >> mi.proportion; st >> mi.aCodeID; st >> mi.aCodeRate; st >> mi.aDigit; st >> mi.channels; st >> mi.sampling; #ifdef _MOVIE_USE_ st >> mi.strFmtName; #endif return st; } static class PersistentManager *_persistentManager = nullptr; static QString hashUrl(const QUrl &url) { return QString(QCryptographicHash::hash(url.toEncoded(), QCryptographicHash::Sha256).toHex()); } //TODO: clean cache periodically class PersistentManager: public QObject { Q_OBJECT public: static PersistentManager &get() { if (!_persistentManager) { _persistentManager = new PersistentManager; } return *_persistentManager; } struct CacheInfo { struct MovieInfo mi; QPixmap thumb; QPixmap thumb_dark; bool mi_valid {false}; bool thumb_valid {false}; // char m_padding [6];//占位符 CacheInfo() { thumb = QPixmap(); thumb_dark = QPixmap(); mi_valid = false; thumb_valid = false; } }; CacheInfo loadFromCache(const QUrl &url) { auto h = hashUrl(url); CacheInfo ci; { auto filename = QString("%1/%2").arg(_cacheInfoPath).arg(h); QFile f(filename); if (!f.exists()) return ci; if (f.open(QIODevice::ReadOnly)) { QDataStream ds(&f); ds >> ci.mi; ci.mi_valid = ci.mi.valid; } else { qWarning() << f.errorString(); } f.close(); } if (ci.mi_valid) { auto filename = QString("%1/%2").arg(_pixmapCachePath).arg(h); QFile f(filename); if (!f.exists()) return ci; if (f.open(QIODevice::ReadOnly)) { QDataStream ds(&f); ds >> ci.thumb; ds >> ci.thumb_dark; ci.thumb.setDevicePixelRatio(qApp->devicePixelRatio()); ci.thumb_dark.setDevicePixelRatio(qApp->devicePixelRatio()); if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { ci.thumb_valid = !ci.thumb_dark.isNull(); } else { ci.thumb_valid = !ci.thumb.isNull(); } } else { qWarning() << f.errorString(); } f.close(); } return ci; } void save(const PlayItemInfo &pif) { auto h = hashUrl(pif.url); bool mi_saved = false; { auto filename = QString("%1/%2").arg(_cacheInfoPath).arg(h); QFile f(filename); if (f.open(QIODevice::WriteOnly)) { QDataStream ds(&f); ds << pif.mi; mi_saved = true; qInfo() << "cache" << pif.url << "->" << h; } else { qWarning() << f.errorString(); } f.close(); } if (mi_saved) { auto filename = QString("%1/%2").arg(_pixmapCachePath).arg(h); QFile f(filename); if (f.open(QIODevice::WriteOnly)) { QDataStream ds(&f); ds << pif.thumbnail; ds << pif.thumbnail_dark; } else { qWarning() << f.errorString(); } f.close(); } } private: PersistentManager() { auto tmpl = QString("%1/%2/%3/%4") .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)) .arg(qApp->organizationName()) .arg(qApp->applicationName()); { _cacheInfoPath = tmpl.arg("cacheinfo"); QDir d; d.mkpath(_cacheInfoPath); } { _pixmapCachePath = tmpl.arg("thumbs"); QDir d; d.mkpath(_pixmapCachePath); } } QString _pixmapCachePath; QString _cacheInfoPath; }; struct MovieInfo PlaylistModel::parseFromFile(const QFileInfo &fi, bool *ok) { struct MovieInfo mi; mi.valid = false; AVFormatContext *av_ctx = nullptr; AVCodecParameters *video_dec_ctx = nullptr; AVCodecParameters *audio_dec_ctx = nullptr; if (!CompositingManager::isMpvExists()) { return parseFromFileByQt(fi, ok); } if (!fi.exists()) { if (ok) *ok = false; return mi; } auto ret = g_mvideo_avformat_open_input(&av_ctx, fi.filePath().toUtf8().constData(), nullptr, nullptr); if (ret < 0) { qWarning() << "avformat: could not open input"; if (ok) *ok = false; return mi; } if (g_mvideo_avformat_find_stream_info(av_ctx, nullptr) < 0) { qWarning() << "av_find_stream_info failed"; if (ok) *ok = false; return mi; } if (av_ctx->nb_streams == 0) { if (ok) *ok = false; return mi; } int videoRet = -1; int audioRet = -1; AVStream *videoStream = nullptr; AVStream *audioStream = nullptr; videoRet = g_mvideo_av_find_best_stream(av_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, nullptr, 0); audioRet = g_mvideo_av_find_best_stream(av_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, nullptr, 0); if (videoRet < 0 && audioRet < 0) { if (ok) *ok = false; return mi; } if (videoRet >= 0) { int video_stream_index = -1; video_stream_index = videoRet; videoStream = av_ctx->streams[video_stream_index]; video_dec_ctx = videoStream->codecpar; mi.width = video_dec_ctx->width; mi.height = video_dec_ctx->height; mi.vCodecID = video_dec_ctx->codec_id; mi.vCodeRate = video_dec_ctx->bit_rate; #ifdef _MOVIE_USE_ mi.strFmtName = av_ctx->iformat->long_name; #endif if (videoStream->r_frame_rate.den != 0) { mi.fps = videoStream->r_frame_rate.num / videoStream->r_frame_rate.den; } else { mi.fps = 0; } if (mi.height != 0) { mi.proportion = static_cast(mi.width) / static_cast(mi.height); } else { mi.proportion = 0; } AVCodecContext *codec_context = g_mvideo_avcodec_alloc_context3(NULL); g_mvideo_avcodec_parameters_to_context(codec_context, video_dec_ctx); AVCodec *videoCodec = g_mvideo_avcodec_find_decoder(video_dec_ctx->codec_id); if (g_mvideo_avcodec_open2(codec_context, videoCodec, 0) > 0) { //用唯一的文件名绑定对应视频的对应pix_fmt值 setProperty(fi.filePath().toUtf8(), codec_context->pix_fmt); } g_mvideo_avcodec_free_context(&codec_context); } if (audioRet >= 0) { int audio_stream_index = -1; audio_stream_index = audioRet; audioStream = av_ctx->streams[audio_stream_index]; audio_dec_ctx = audioStream->codecpar; mi.aCodeID = audio_dec_ctx->codec_id; mi.aCodeRate = audio_dec_ctx->bit_rate; mi.aDigit = audio_dec_ctx->format; mi.channels = audio_dec_ctx->channels; mi.sampling = audio_dec_ctx->sample_rate; #ifdef USE_TEST QPixmap musicimage; getMusicPix(fi, musicimage); #endif } auto duration = av_ctx->duration == AV_NOPTS_VALUE ? 0 : av_ctx->duration; duration = duration + (duration <= INT64_MAX - 5000 ? 5000 : 0); mi.duration = duration / AV_TIME_BASE; mi.resolution = QString("%1x%2").arg(mi.width).arg(mi.height); mi.title = fi.fileName(); //FIXME this mi.filePath = fi.canonicalFilePath(); qInfo() << __func__ << "created:" << fi.created() << " toString:" << fi.created().toString(); mi.creation = fi.created().toString(); mi.fileSize = fi.size(); mi.fileType = fi.suffix(); #ifdef _MOVIE_USE_ mi.strFmtName = av_ctx->iformat->long_name; #endif AVDictionaryEntry *tag = nullptr; while ((tag = g_mvideo_av_dict_get(av_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)) != nullptr) { if (tag->key && strcmp(tag->key, "creation_time") == 0) { auto dt = QDateTime::fromString(tag->value, Qt::ISODate); mi.creation = dt.toString(); qInfo() << __func__ << dt.toString(); break; } qInfo() << "tag:" << tag->key << tag->value; } g_mvideo_avformat_close_input(&av_ctx); mi.valid = true; if (ok) *ok = true; return mi; } MovieInfo PlaylistModel::parseFromFileByQt(const QFileInfo &fi, bool *ok) { struct MovieInfo mi; mi = GstUtils::get()->parseFileByGst(fi); if (fi.exists()) { *ok = true; } return mi; } bool PlayItemInfo::refresh() { if (url.isLocalFile()) { //FIXME: it seems that info.exists always gets refreshed auto o = this->info.exists(); auto sz = this->info.size(); this->info.refresh(); this->valid = this->info.exists(); return (o != this->info.exists()) || sz != this->info.size(); } return false; } void PlaylistModel::slotStateChanged() { PlayerEngine *e = dynamic_cast(sender()); if (!e) return; qInfo() << "model" << "_userRequestingItem" << _userRequestingItem << "state" << e->state(); switch (e->state()) { case PlayerEngine::Playing: { auto &pif = currentInfo(); if (!pif.url.isLocalFile() && !pif.loaded) { pif.mi.width = e->videoSize().width(); pif.mi.height = e->videoSize().height(); pif.mi.duration = e->duration(); pif.loaded = true; emit itemInfoUpdated(_current); } _userRequestingItem = false; break; } case PlayerEngine::Paused: break; case PlayerEngine::Idle: if (!_userRequestingItem) { stop(); //WINID方式渲染结束时,保证gpu渲染资源的正常释放与切换,延时5ms执行下部视频的播放 if(!CompositingManager::get().composited()) { QTimer::singleShot(5, [=]() { playNext(false); }); } else { playNext(false); } } break; } } PlaylistModel::PlaylistModel(PlayerEngine *e) : _engine(e) { m_pdataMutex = new QMutex(); m_ploadThread = nullptr; m_brunning = false; _playlistFile = QString("%1/%2/%3/playlist") .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)) .arg(qApp->organizationName()) .arg(qApp->applicationName()); connect(e, &PlayerEngine::stateChanged, this, &PlaylistModel::slotStateChanged); stop(); #ifdef _LIBDMR_ initThumb(); initFFmpeg(); #endif #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::ResumeFromLast)) { int restore_pos = Settings::get().internalOption("playlist_pos").toInt(); _last = restore_pos; } #endif } void PlaylistModel::initThumb() { QLibrary library(SysUtils::libPath("libffmpegthumbnailer.so")); m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create"); m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy"); m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data"); m_mvideo_thumbnailer_destroy_image_data = (mvideo_thumbnailer_destroy_image_data) library.resolve("video_thumbnailer_destroy_image_data"); m_mvideo_thumbnailer_generate_thumbnail_to_buffer = (mvideo_thumbnailer_generate_thumbnail_to_buffer) library.resolve("video_thumbnailer_generate_thumbnail_to_buffer"); if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr) { return; } m_video_thumbnailer = m_mvideo_thumbnailer(); m_image_data = m_mvideo_thumbnailer_create_image_data(); m_video_thumbnailer->thumbnail_size = 400 * qApp->devicePixelRatio(); m_bInitThumb = true; } void PlaylistModel::initFFmpeg() { QLibrary avcodecLibrary(SysUtils::libPath("libavcodec.so")); QLibrary avformatLibrary(SysUtils::libPath("libavformat.so")); QLibrary avutilLibrary(SysUtils::libPath("libavutil.so")); g_mvideo_avformat_open_input = (mvideo_avformat_open_input) avformatLibrary.resolve("avformat_open_input"); g_mvideo_avformat_find_stream_info = (mvideo_avformat_find_stream_info) avformatLibrary.resolve("avformat_find_stream_info"); g_mvideo_av_find_best_stream = (mvideo_av_find_best_stream) avformatLibrary.resolve("av_find_best_stream"); g_mvideo_avformat_close_input = (mvideo_avformat_close_input) avformatLibrary.resolve("avformat_close_input"); g_mvideo_av_dict_get = (mvideo_av_dict_get) avutilLibrary.resolve("av_dict_get"); g_mvideo_av_dump_format = (mvideo_av_dump_format) avformatLibrary.resolve("av_dump_format"); g_mvideo_avcodec_find_decoder = (mvideo_avcodec_find_decoder) avcodecLibrary.resolve("avcodec_find_decoder"); g_mvideo_av_get_media_type_string = (mvideo_av_get_media_type_string) avutilLibrary.resolve("av_get_media_type_string"); g_mvideo_avcodec_alloc_context3 = (mvideo_avcodec_alloc_context3) avcodecLibrary.resolve("avcodec_alloc_context3"); g_mvideo_avcodec_parameters_to_context = (mvideo_avcodec_parameters_to_context) avcodecLibrary.resolve("avcodec_parameters_to_context"); g_mvideo_avcodec_open2 = (mvideo_avcodec_open2)(avcodecLibrary.resolve("avcodec_open2")); g_mvideo_avcodec_free_context = (mvideo_avcodec_free_context)(avcodecLibrary.resolve("avcodec_free_context")); m_initFFmpeg = true; } qint64 PlaylistModel::getUrlFileTotalSize(QUrl url, int tryTimes) const { qint64 size = -1; if (tryTimes <= 0) { tryTimes = 1; } do { QNetworkAccessManager manager; // 事件循环,等待请求文件头信息结束; QEventLoop loop; // 超时,结束事件循环; QTimer timer; //发出请求,获取文件地址的头部信息; QNetworkReply *reply = manager.head(QNetworkRequest(QUrl(url)));//QNetworkRequest(url) if (!reply) continue; QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); timer.start(5000); loop.exec(); if (reply->error() != QNetworkReply::NoError) { qInfo() << reply->errorString(); continue; } QVariant var = reply->header(QNetworkRequest::ContentLengthHeader); size = var.toLongLong(); reply->deleteLater(); break; } while (tryTimes--); return size; } void PlaylistModel::clearPlaylist() { QSettings cfg(_playlistFile, QSettings::NativeFormat); cfg.beginGroup("playlist"); cfg.remove(""); cfg.endGroup(); } void PlaylistModel::savePlaylist() { QSettings cfg(_playlistFile, QSettings::NativeFormat); cfg.beginGroup("playlist"); cfg.remove(""); for (int i = 0; i < count(); ++i) { const auto &pif = _infos[i]; cfg.setValue(QString::number(i), pif.url); qInfo() << "save " << pif.url; } cfg.endGroup(); cfg.sync(); } void PlaylistModel::loadPlaylist() { if (!m_initFFmpeg) { initFFmpeg(); } if (!m_bInitThumb) { initThumb(); } QList urls; QSettings cfg(_playlistFile, QSettings::NativeFormat); cfg.beginGroup("playlist"); auto keys = cfg.childKeys(); for (int i = 0; i < keys.size(); ++i) { auto url = cfg.value(QString::number(i)).toUrl(); if (indexOf(url) >= 0) continue; urls.append(url); } cfg.endGroup(); delayedAppendAsync(urls); } bool PlaylistModel::getThumanbilRunning() { if (m_getThumanbil) { if (m_getThumanbil->isRunning()) { return true; } else { return false; } } else { return false; } } MovieInfo PlaylistModel::getMovieInfo(const QUrl &url, bool *is) { if (url.isLocalFile()) { QFileInfo fi(url.toLocalFile()); if (fi.exists()) { return parseFromFile(fi, is); } else { *is = false; return MovieInfo(); } } else { *is = false; return MovieInfo(); } } QImage PlaylistModel::getMovieCover(const QUrl &url) { if (!m_bInitThumb) { initThumb(); m_image_data = nullptr; } if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr || m_video_thumbnailer == nullptr) { return QImage(); } m_video_thumbnailer->thumbnail_size = static_cast(THUMBNAIL_SIZE); m_video_thumbnailer->seek_time = const_cast(SEEK_TIME); m_image_data = m_mvideo_thumbnailer_create_image_data(); QString file = QFileInfo(url.toLocalFile()).absoluteFilePath(); m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, file.toUtf8().data(), m_image_data); QImage img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; return img; } PlaylistModel::PlayMode PlaylistModel::playMode() const { return _playMode; } void PlaylistModel::setPlayMode(PlaylistModel::PlayMode pm) { if (_playMode != pm) { _playMode = pm; reshuffle(); emit playModeChanged(pm); } } void PlaylistModel::reshuffle() { if (_playMode != PlayMode::ShufflePlay || _infos.size() == 0) { return; } _shufflePlayed = 0; _playOrder.clear(); for (int i = 0, sz = _infos.size(); i < sz; ++i) { _playOrder.append(i); } std::random_device rd; std::mt19937 g(rd()); std::shuffle(_playOrder.begin(), _playOrder.end(), g); qInfo() << _playOrder; } void PlaylistModel::clear() { _infos.clear(); _engine->stop(); _engine->waitLastEnd(); _current = -1; _last = -1; savePlaylist(); emit emptied(); emit currentChanged(); emit countChanged(); } void PlaylistModel::remove(int pos) { if (pos < 0 || pos >= count()) return; _userRequestingItem = true; m_loadFile.removeOne(_infos[pos].url); _infos.removeAt(pos); reshuffle(); _last = _current; if (_engine->state() != PlayerEngine::Idle) { if (_current == pos) { _current = -1; _last = _current; _engine->waitLastEnd(); } else if (pos < _current) { _current--; _last = _current; } } else { if (_current == pos) { _current = -1; _last = _current; _engine->waitLastEnd(); } } if (_last >= count()) _last = -1; emit itemRemoved(pos); if (_last != _current) emit currentChanged(); emit countChanged(); qInfo() << _last << _current; _userRequestingItem = false; savePlaylist(); } void PlaylistModel::stop() { _current = -1; emit currentChanged(); } void PlaylistModel::tryPlayCurrent(bool next) { qInfo() << __func__; auto &pif = _infos[_current]; if (pif.refresh()) { qInfo() << pif.url.fileName() << "changed"; } emit itemInfoUpdated(_current); if (pif.valid) { _engine->requestPlay(_current); emit currentChanged(); } else { _current = -1; bool canPlay = false; //循环播放时,无效文件播放闪退 if (_playMode == PlayMode::SingleLoop) { if ((_last < count() - 1) && next) { _last++; } else if ((_last > 0) && !next) { _last--; } else if (next) { _last = 0; } else if (!next) { _last = count() - 1; } } bool result = std::any_of(_infos.begin(), _infos.end(), [](const PlayItemInfo & info) { return info.valid; }); if (result) { canPlay = true; } if (canPlay) { emit currentChanged(); if (next) playNext(false); else playPrev(false); } } } void PlaylistModel::clearLoad() { m_loadFile.clear(); } void PlaylistModel::playNext(bool fromUser) { if (count() == 0) return; qInfo() << "playmode" << _playMode << "fromUser" << fromUser << "last" << _last << "current" << _current; _userRequestingItem = true; switch (_playMode) { case SinglePlay: if (fromUser) { if (_last + 1 >= count()) { _last = -1; } _engine->waitLastEnd(); _current = _last + 1; _last = _current; tryPlayCurrent(true); } break; case SingleLoop: if (fromUser) { if (_engine->state() == PlayerEngine::Idle) { _last = _last == -1 ? 0 : _last; _current = _last; tryPlayCurrent(true); } else { if (_last + 1 >= count()) { _last = -1; } _engine->waitLastEnd(); _current = _last + 1; _last = _current; tryPlayCurrent(true); } } else { if (_engine->state() == PlayerEngine::Idle) { _last = _last < 0 ? 0 : _last; _current = _last; tryPlayCurrent(true); } else { // replay current tryPlayCurrent(true); } } break; case ShufflePlay: { if (_shufflePlayed >= _playOrder.size()) { _shufflePlayed = 0; reshuffle(); } _shufflePlayed++; qInfo() << "shuffle next " << _shufflePlayed - 1; _engine->waitLastEnd(); _last = _current = _playOrder[_shufflePlayed - 1]; tryPlayCurrent(true); break; } case OrderPlay: _last++; if (_last == count()) { if (fromUser) _last = 0; else { _last--; break; } } _engine->waitLastEnd(); _current = _last; tryPlayCurrent(true); break; case ListLoop: _last++; if (_last == count()) { _loopCount++; _last = 0; } _engine->waitLastEnd(); _current = _last; tryPlayCurrent(true); break; } } void PlaylistModel::playPrev(bool fromUser) { if (count() == 0) return; qInfo() << "playmode" << _playMode << "fromUser" << fromUser << "last" << _last << "current" << _current; _userRequestingItem = true; switch (_playMode) { case SinglePlay: if (fromUser) { if (_last - 1 < 0) { _last = count(); } _engine->waitLastEnd(); _current = _last - 1; _last = _current; tryPlayCurrent(false); } break; case SingleLoop: if (fromUser) { if (_engine->state() == PlayerEngine::Idle) { _last = _last == -1 ? 0 : _last; _current = _last; tryPlayCurrent(false); } else { if (_last - 1 < 0) { _last = count(); } _engine->waitLastEnd(); _current = _last - 1; _last = _current; tryPlayCurrent(false); } } else { if (_engine->state() == PlayerEngine::Idle) { _last = _last < 0 ? 0 : _last; _current = _last; tryPlayCurrent(false); } else { // replay current tryPlayCurrent(false); } } break; case ShufflePlay: { // this must comes from user if (_shufflePlayed <= 1) { reshuffle(); _shufflePlayed = _playOrder.size(); } _shufflePlayed--; qInfo() << "shuffle prev " << _shufflePlayed - 1; _engine->waitLastEnd(); _last = _current = _playOrder[_shufflePlayed - 1]; tryPlayCurrent(false); break; } case OrderPlay: _last--; if (_last < 0) { _last = count() - 1; } _engine->waitLastEnd(); _current = _last; tryPlayCurrent(false); break; case ListLoop: _last--; if (_last < 0) { _loopCount++; _last = count() - 1; } _engine->waitLastEnd(); _current = _last; tryPlayCurrent(false); break; } } static QDebug operator<<(QDebug s, const QFileInfoList &v) { std::for_each(v.begin(), v.end(), [&](const QFileInfo & fi) { s << fi.fileName(); }); return s; } void PlaylistModel::appendSingle(const QUrl &url) { qInfo() << __func__; if (indexOf(url) >= 0) return; if (url.isLocalFile()) { QFileInfo fi(url.toLocalFile()); if (!fi.exists()) return; auto pif = calculatePlayInfo(url, fi); if (!pif.valid) return; _infos.append(pif); #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::AutoSearchSimilar)) { QFileInfoList fil = utils::FindSimilarFiles(fi); qInfo() << "auto search similar files" << fil; std::for_each(fil.begin(), fil.end(), [ = ](const QFileInfo & fi) { auto url = QUrl::fromLocalFile(fi.absoluteFilePath()); if (indexOf(url) < 0 && _engine->isPlayableFile(fi.absoluteFilePath())) { auto playitem_info = calculatePlayInfo(url, fi); if (playitem_info.valid) _infos.append(playitem_info); } }); } #endif } else { auto pif = calculatePlayInfo(url, QFileInfo(), true); _infos.append(pif); } } void PlaylistModel::collectionJob(const QList &urls, QList &inputUrls) { for (const auto &url : urls) { int aa = indexOf(url); if (m_loadFile.contains(url)) continue; if (!url.isValid() || indexOf(url) >= 0 || _urlsInJob.contains(url.toLocalFile())) continue; m_loadFile.append(url); qInfo() << __func__ << _infos.size() << "index is" << aa << url; if(url.isLocalFile()) { QFileInfo fi(url.toLocalFile()); if (!_firstLoad && (!fi.exists() || !fi.isFile())) continue; _pendingJob.append(qMakePair(url, fi)); _urlsInJob.insert(url.toLocalFile()); inputUrls.append(url); qInfo() << "append " << url.fileName(); #ifndef _LIBDMR_ //去除加载多个文件是自动加载相似文件功能 //fix: 101698 //powered by xxxxp if (!_firstLoad && Settings::get().isSet(Settings::AutoSearchSimilar) && (urls.size() == 1)) { QFileInfoList fil = utils::FindSimilarFiles(fi); //NOTE: The searched files are out of order, so they are sorted here struct { bool operator()(const QFileInfo& fi1, const QFileInfo& fi2) const { return utils::CompareNames(fi1.fileName(), fi2.fileName()); } } SortByDigits; std::sort(fil.begin(), fil.end(), SortByDigits); qInfo() << "auto search similar files" << fil; for (const QFileInfo &fileinfo : fil) { if (fileinfo.isFile()) { auto file_url = QUrl::fromLocalFile(fileinfo.absoluteFilePath()); if (!_urlsInJob.contains(file_url.toLocalFile()) && indexOf(file_url) < 0 && _engine->isPlayableFile(fileinfo.absoluteFilePath())) { _pendingJob.append(qMakePair(file_url, fileinfo)); _urlsInJob.insert(file_url.toLocalFile()); inputUrls.append(file_url); //handleAsyncAppendResults(QList()< &urls) { if (!m_initFFmpeg) { initFFmpeg(); } if (!m_bInitThumb) { initThumb(); } delayedAppendAsync(urls); } void PlaylistModel::delayedAppendAsync(const QList &urls) { if (_pendingJob.size() > 0) { //TODO: may be automatically schedule later qWarning() << "there is a pending append going on, enqueue"; m_pdataMutex->lock(); _pendingAppendReq.enqueue(urls); m_pdataMutex->unlock(); return; } QList t_urls; m_pdataMutex->lock(); collectionJob(urls, t_urls); m_pdataMutex->unlock(); if (!_pendingJob.size()) return; struct MapFunctor { PlaylistModel *_model = nullptr; using result_type = PlayItemInfo; explicit MapFunctor(PlaylistModel *model): _model(model) {} struct PlayItemInfo operator()(const AppendJob &a) { qInfo() << "mapping " << a.first.fileName(); return _model->calculatePlayInfo(a.first, a.second); } }; qInfo() << "not wayland"; if (QThread::idealThreadCount() > 1) { if (!m_getThumanbil) { m_getThumanbil = new GetThumanbil(this, t_urls); connect(m_getThumanbil, &GetThumanbil::finished, this, &PlaylistModel::onAsyncFinished); connect(m_getThumanbil, &GetThumanbil::updateItem, this, &PlaylistModel::onAsyncUpdate, Qt::BlockingQueuedConnection); m_getThumanbil->start(); } else { if (m_getThumanbil->isRunning()) { m_tempList.append(t_urls); } else { m_getThumanbil->setUrls(t_urls); m_getThumanbil->start(); } } _pendingJob.clear(); _urlsInJob.clear(); } else { PlayItemInfoList pil; for (const auto &a : _pendingJob) { qInfo() << "sync mapping " << a.first.fileName(); pil.append(calculatePlayInfo(a.first, a.second)); if (m_ploadThread && m_ploadThread->isRunning()) { m_ploadThread->msleep(10); } } _pendingJob.clear(); _urlsInJob.clear(); handleAsyncAppendResults(pil); } } static QList &SortSimilarFiles(QList &fil) { //sort names by digits inside, take care of such a possible: //S01N04, S02N05, S01N12, S02N04, etc... struct { bool operator()(const PlayItemInfo &fi1, const PlayItemInfo &fi2) const { if (!fi1.valid) return true; if (!fi2.valid) return false; QString fileName1 = fi1.url.fileName(); QString fileName2 = fi2.url.fileName(); if (utils::IsNamesSimilar(fileName1, fileName2)) { return utils::CompareNames(fileName1, fileName2); } return fileName1.localeAwareCompare(fileName2) < 0; } } SortByDigits; std::sort(fil.begin(), fil.end(), SortByDigits); return fil; } /*not used yet*/ /*void PlaylistModel::onAsyncAppendFinished() { qInfo() << __func__; // auto f = _jobWatcher->future(); _pendingJob.clear(); _urlsInJob.clear(); //auto fil = f.results(); //handleAsyncAppendResults(fil); }*/ void PlaylistModel::onAsyncFinished() { //qInfo() << fil.size(); m_getThumanbil->clearItem(); //handleAsyncAppendResults(fil); if (!m_tempList.isEmpty()) { m_getThumanbil->setUrls(m_tempList); m_tempList.clear(); m_getThumanbil->start(); } } void PlaylistModel::onAsyncUpdate(PlayItemInfo fil) { QList fils; fils.append(fil); //since _infos are modified only at the same thread, the lock is not necessary auto last = std::remove_if(fils.begin(), fils.end(), [](const PlayItemInfo & pif) { return !pif.mi.valid; }); fils.erase(last, fils.end()); if (!_firstLoad) _infos += SortSimilarFiles(fils); else _infos += fils; reshuffle(); _firstLoad = false; emit itemsAppended(); emit countChanged(); _firstLoad = false; emit asyncAppendFinished(fils); if (_pendingAppendReq.size()) { auto job = _pendingAppendReq.dequeue(); delayedAppendAsync(job); } savePlaylist(); } void PlaylistModel::handleAsyncAppendResults(QList &fil) { qInfo() << __func__ << fil.size(); if (!fil.size()) return; //since _infos are modified only at the same thread, the lock is not necessary auto last = std::remove_if(fil.begin(), fil.end(), [](const PlayItemInfo & pif) { return !pif.mi.valid; }); fil.erase(last, fil.end()); qInfo() << "collected items" << fil.count(); if (fil.size()) { if (!_firstLoad) _infos += SortSimilarFiles(fil); else _infos += fil; reshuffle(); savePlaylist(); _firstLoad = false; emit itemsAppended(); emit countChanged(); } _firstLoad = false; emit asyncAppendFinished(fil); QTimer::singleShot(0, [&]() { if (_pendingAppendReq.size()) { auto job = _pendingAppendReq.dequeue(); delayedAppendAsync(job); } }); savePlaylist(); } /*bool PlaylistModel::hasPendingAppends() { return _pendingAppendReq.size() > 0 || _pendingJob.size() > 0; }*/ //TODO: what if loadfile failed void PlaylistModel::append(const QUrl &url) { if (!url.isValid()) return; appendSingle(url); reshuffle(); savePlaylist(); emit itemsAppended(); emit countChanged(); } void PlaylistModel::changeCurrent(int pos) { qInfo() << __func__ << pos; if (pos < 0 || pos >= count()) return; auto mi = items().at(pos).mi; if (mi.fileType == "webm") { auto pif = calculatePlayInfo(items().at(pos).url, items().at(pos).info); items().removeAt(pos); items().insert(pos, pif); emit updateDuration(); } else { if (_current == pos) { return; } } _userRequestingItem = true; _engine->waitLastEnd(); _current = pos; _last = _current; tryPlayCurrent(true); emit currentChanged(); } void PlaylistModel::switchPosition(int src, int target) { //Q_ASSERT_X(0, "playlist", "not implemented"); Q_ASSERT(src < _infos.size() && target < _infos.size()); _infos.move(src, target); int min = qMin(src, target); int max = qMax(src, target); if (_current >= min && _current <= max) { if (_current == src) { _current = target; _last = _current; } else { if (src < target) { _current--; _last = _current; } else if (src > target) { _current++; _last = _current; } } emit currentChanged(); } } PlayItemInfo &PlaylistModel::currentInfo() { //Q_ASSERT (_infos.size() > 0 && _current >= 0); Q_ASSERT(_infos.size() > 0); if (_current >= 0) return _infos[_current]; if (_last >= 0 && _last < _infos.size()) return _infos[_last]; return _infos[0]; } int PlaylistModel::size() const { return _infos.size(); } const PlayItemInfo &PlaylistModel::currentInfo() const { Q_ASSERT(_infos.size() > 0 && _current >= 0); return _infos[_current]; } int PlaylistModel::count() const { return _infos.count(); } int PlaylistModel::current() const { return _current; } bool PlaylistModel::getthreadstate() { if (m_ploadThread) { m_brunning = m_ploadThread->isRunning(); } else { m_brunning = false; } return m_brunning; } //获取音乐缩略图 bool PlaylistModel::getMusicPix(const QFileInfo &fi, QPixmap &rImg) { AVFormatContext *av_ctx = nullptr; //AVCodecContext *dec_ctx = nullptr; if (!fi.exists()) { return false; } QLibrary library(SysUtils::libPath("libavformat.so")); mvideo_avformat_open_input g_mvideo_avformat_open_input_temp = (mvideo_avformat_open_input) library.resolve("avformat_open_input"); mvideo_avformat_close_input g_mvideo_avformat_close_input = (mvideo_avformat_close_input) library.resolve("avformat_close_input"); mvideo_avformat_find_stream_info g_mvideo_avformat_find_stream_info_temp = (mvideo_avformat_find_stream_info) library.resolve("avformat_find_stream_info"); auto ret = g_mvideo_avformat_open_input_temp(&av_ctx, fi.filePath().toUtf8().constData(), nullptr, nullptr); if (ret < 0) { qWarning() << "avformat: could not open input"; return false; } if (g_mvideo_avformat_find_stream_info_temp(av_ctx, nullptr) < 0) { qWarning() << "av_find_stream_info failed"; return false; } for (unsigned int i = 0; i < av_ctx->nb_streams; i++) { if (av_ctx->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) { AVPacket pkt = av_ctx->streams[i]->attached_pic; //使用QImage读取完整图片数据(注意,图片数据是为解析的文件数据,需要用QImage::fromdata来解析读取) //rImg = QImage::fromData((uchar *)pkt.data, pkt.size); return rImg.loadFromData(static_cast(pkt.data), static_cast(pkt.size)); } } g_mvideo_avformat_close_input(&av_ctx); return false; } struct PlayItemInfo PlaylistModel::calculatePlayInfo(const QUrl &url, const QFileInfo &fi, bool isDvd) { bool ok = false; struct MovieInfo mi; auto ci = PersistentManager::get().loadFromCache(url); mi = parseFromFile(fi, &ok); if (isDvd && url.scheme().startsWith("dvd")) { QString dev = url.path(); if (dev.isEmpty()) dev = "/dev/sr0"; #ifdef heyi dmr::dvd::RetrieveDvdThread::get()->startDvd(dev); #endif } else if (!url.isLocalFile()) { QString msg = url.fileName(); if (msg != "sr0" || msg != "cdrom") { if (msg.isEmpty()) msg = url.path(); mi.title = msg; mi.valid = true; } } else { mi.title = fi.fileName(); } QPixmap pm = QPixmap(); QPixmap dark_pm = QPixmap(); if (ci.thumb_valid) { pm = ci.thumb; dark_pm = ci.thumb_dark; qInfo() << "load cached thumb" << url; } else if (ok) { try { //如果打开的是音乐就读取音乐缩略图 bool isMusic = false; foreach (QString sf, _engine->audio_filetypes) { if (sf.right(sf.size() - 2) == mi.fileType) { isMusic = true; } } //此处判断导致非播放状态下导入无视频流视频加载缩略图错误 //暂时去掉,后期如有异常请排查此处逻辑 //by xxxx if (/*_engine->state() != dmr::PlayerEngine::Idle && */mi.width < 0 || mi.height < 0) { //如果没有视频流,就当做音乐播放 isMusic = true; } if (isMusic == false && m_mvideo_thumbnailer_generate_thumbnail_to_buffer) { m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, fi.canonicalFilePath().toUtf8().data(), m_image_data); auto img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); pm = QPixmap::fromImage(img); dark_pm = pm; } pm.setDevicePixelRatio(qApp->devicePixelRatio()); dark_pm.setDevicePixelRatio(qApp->devicePixelRatio()); } catch (const std::logic_error &) { } } PlayItemInfo pif { fi.exists() || !url.isLocalFile(), ok, url, fi, pm, dark_pm, mi }; if (ok && url.isLocalFile() && (!ci.mi_valid || !ci.thumb_valid)) { PersistentManager::get().save(pif); } if (!url.isLocalFile() && !url.scheme().startsWith("dvd") && CompositingManager::isMpvExists()) { pif.mi.filePath = pif.url.path(); pif.mi.width = _engine->_current->width(); pif.mi.height = _engine->_current->height(); pif.mi.resolution = QString::number(_engine->_current->width()) + "x" + QString::number(_engine->_current->height()); pif.mi.duration = _engine->_current->duration(); auto suffix = pif.mi.title.mid(pif.mi.title.lastIndexOf('.')); suffix.replace(QString("."), QString("")); pif.mi.fileType = suffix; pif.mi.fileSize = getUrlFileTotalSize(url, 3); pif.mi.filePath = url.toDisplayString(); } return pif; } int PlaylistModel::indexOf(const QUrl &url) { auto p = std::find_if(_infos.begin(), _infos.end(), [&](const PlayItemInfo & pif) { return pif.url == url; }); if (p == _infos.end()) return -1; return static_cast(std::distance(_infos.begin(), p)); } PlaylistModel::~PlaylistModel() { qInfo() << __func__; delete m_pdataMutex; #ifndef _LIBDMR_ if (Settings::get().isSet(Settings::ClearWhenQuit)) { clearPlaylist(); } #endif if (m_getThumanbil) { if (m_getThumanbil->isRunning()) { m_getThumanbil->stop(); } m_getThumanbil->deleteLater(); m_getThumanbil = nullptr; } if (m_video_thumbnailer != nullptr) { m_mvideo_thumbnailer_destroy(m_video_thumbnailer); m_video_thumbnailer = nullptr; } if (m_image_data != nullptr) { m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; } } LoadThread::LoadThread(PlaylistModel *model, const QList &urls): _urls(urls) { _pModel = nullptr; _pModel = model; // _urls = urls; } LoadThread::~LoadThread() { _pModel = nullptr; } void LoadThread::run() { if (_pModel) { _pModel->delayedAppendAsync(_urls); } } #ifdef _LIBDMR_ static int open_codec_context(int *stream_idx, AVCodecParameters **dec_ctx, AVFormatContext *fmt_ctx, enum AVMediaType type) { int ret, stream_index; AVStream *st; AVCodec *dec = NULL; AVDictionary *opts = NULL; ret = g_mvideo_av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0); if (ret < 0) { qWarning() << "Could not find " << g_mvideo_av_get_media_type_string(type) << " stream in input file"; return ret; } stream_index = ret; st = fmt_ctx->streams[stream_index]; #if LIBAVFORMAT_VERSION_MAJOR >= 57 *dec_ctx = st->codecpar; dec = g_mvideo_avcodec_find_decoder((*dec_ctx)->codec_id); #else /* find decoder for the stream */ dec = g_mvideo_avcodec_find_decoder(st->codecpar->codec_id); if (!dec) { fprintf(stderr, "Failed to find %s codec\n", g_mvideo_av_get_media_type_string(type)); return AVERROR(EINVAL); } /* Allocate a codec context for the decoder */ *dec_ctx = g_mvideo_avcodec_alloc_context3(dec); if (!*dec_ctx) { fprintf(stderr, "Failed to allocate the %s codec context\n", g_mvideo_av_get_media_type_string(type)); return AVERROR(ENOMEM); } /* Copy codec parameters from input stream to output codec context */ if ((ret = g_mvideo_avcodec_parameters_to_context(*dec_ctx, st->codecpar)) < 0) { fprintf(stderr, "Failed to copy %s codec parameters to decoder context\n", g_mvideo_av_get_media_type_string(type)); return ret; } #endif *stream_idx = stream_index; return 0; } MovieInfo MovieInfo::parseFromFile(const QFileInfo &fi, bool *ok) { struct MovieInfo mi; mi.valid = false; AVFormatContext *av_ctx = NULL; int stream_id = -1; AVCodecParameters *dec_ctx = NULL; AVStream *av_stream = nullptr; if (!fi.exists()) { if (ok) *ok = false; return mi; } if (!CompositingManager::isMpvExists()) { mi = GstUtils::get()->parseFileByGst(fi); if(mi.valid){ *ok = true; } return mi; } auto ret = g_mvideo_avformat_open_input(&av_ctx, fi.filePath().toUtf8().constData(), NULL, NULL); if (ret < 0) { qWarning() << "avformat: could not open input"; if (ok) *ok = false; return mi; } if (g_mvideo_avformat_find_stream_info(av_ctx, NULL) < 0) { qWarning() << "av_find_stream_info failed"; if (ok) *ok = false; return mi; } if (av_ctx->nb_streams == 0) { if (ok) *ok = false; return mi; } if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_VIDEO) < 0) { if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_AUDIO) < 0) { if (ok) *ok = false; return mi; } } for (int i = 0; i < av_ctx->nb_streams; i++) { av_stream = av_ctx->streams[i]; if (av_stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { break; } } g_mvideo_av_dump_format(av_ctx, 0, fi.fileName().toUtf8().constData(), 0); mi.width = dec_ctx->width; mi.height = dec_ctx->height; auto duration = av_ctx->duration == AV_NOPTS_VALUE ? 0 : av_ctx->duration; duration = duration + (duration <= INT64_MAX - 5000 ? 5000 : 0); mi.duration = duration / AV_TIME_BASE; mi.resolution = QString("%1x%2").arg(mi.width).arg(mi.height); mi.title = fi.fileName(); //FIXME this mi.filePath = fi.canonicalFilePath(); mi.creation = fi.created().toString(); mi.fileSize = fi.size(); mi.fileType = fi.suffix(); mi.vCodecID = dec_ctx->codec_id; mi.vCodeRate = dec_ctx->bit_rate; #ifdef _MOVIE_USE_ mi.strFmtName = av_ctx->iformat->long_name; #endif if (av_stream->r_frame_rate.den != 0) { mi.fps = av_stream->r_frame_rate.num / av_stream->r_frame_rate.den; } else { mi.fps = 0; } if (mi.height != 0) { mi.proportion = mi.width / mi.height; } else { mi.proportion = 0; } if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_AUDIO) < 0) { if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_VIDEO) < 0) { if (ok) *ok = false; return mi; } } mi.aCodeID = dec_ctx->codec_id; mi.aCodeRate = dec_ctx->bit_rate; mi.aDigit = dec_ctx->format; mi.channels = dec_ctx->channels; mi.sampling = dec_ctx->sample_rate; AVDictionaryEntry *tag = NULL; while ((tag = g_mvideo_av_dict_get(av_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)) != NULL) { if (tag->key && strcmp(tag->key, "creation_time") == 0) { auto dt = QDateTime::fromString(tag->value, Qt::ISODate); mi.creation = dt.toString(); qInfo() << __func__ << dt.toString(); break; } qInfo() << "tag:" << tag->key << tag->value; } tag = NULL; AVStream *st = av_ctx->streams[stream_id]; while ((tag = g_mvideo_av_dict_get(st->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)) != NULL) { if (tag->key && strcmp(tag->key, "rotate") == 0) { mi.raw_rotate = QString(tag->value).toInt(); auto vr = (mi.raw_rotate + 360) % 360; if (vr == 90 || vr == 270) { auto tmp = mi.height; mi.height = mi.width; mi.width = tmp; } break; } qInfo() << "tag:" << tag->key << tag->value; } g_mvideo_avformat_close_input(&av_ctx); mi.valid = true; if (ok) *ok = true; return mi; } //#else //MovieInfo MovieInfo::parseFromFile(const QFileInfo &fi, bool *ok) //{ // MovieInfo info; // return info; //} #endif } #include "playlist_model.moc" deepin-movie-reborn-5.15.10/src/libdmr/playlist_model.h000066400000000000000000000232711473342170300227740ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLAYLIST_MODEL_H #define _DMR_PLAYLIST_MODEL_H #include //#include #include #include #include #include "utils.h" #include #include #include #define THUMBNAIL_SIZE 500 #define SEEK_TIME "00:00:01" DGUI_USE_NAMESPACE typedef video_thumbnailer *(*mvideo_thumbnailer)(); typedef void (*mvideo_thumbnailer_destroy)(video_thumbnailer *thumbnailer); /* create image_data structure */ typedef image_data *(*mvideo_thumbnailer_create_image_data)(void); /* destroy image_data structure */ typedef void (*mvideo_thumbnailer_destroy_image_data)(image_data *data); typedef int (*mvideo_thumbnailer_generate_thumbnail_to_buffer)(video_thumbnailer *thumbnailer, const char *movie_filename, image_data *generated_image_data); namespace dmr { class PlayerEngine; class LoadThread; class GetThumanbil; struct MovieInfo { bool valid; QString title; QString fileType; QString resolution; QString filePath; QString creation; // rotation in metadata, this affects width/height int raw_rotate; qint64 fileSize; qint64 duration; int width = -1; int height = -1; //3.4添加视频信息 //视频流信息 int vCodecID; qint64 vCodeRate; int fps; float proportion; //音频流信息 int aCodeID; qint64 aCodeRate; int aDigit; int channels; int sampling; #ifdef _MOVIE_USE_ QString strFmtName; // 文件封装名 #endif MovieInfo() { valid = false; raw_rotate = -1; fileSize = -1; duration = -1; width = -1; height = -1; vCodecID = -1; aCodeRate = -1; fps = -1; proportion = -1.0; aCodeID = -1; aCodeRate = -1; aDigit = -1; channels = -1; sampling = -1; } static struct MovieInfo parseFromFile(const QFileInfo &fi, bool *ok = nullptr); QString durationStr() const { return utils::Time2str(duration); } QString videoCodec() const { return utils::videoIndex2str(vCodecID); } QString audioCodec() const { return utils::audioIndex2str(aCodeID); } //获取字幕编码格式(备用) /*QString subtitleCodec() const { return utils::subtitleIndex2str(); }*/ QString sizeStr() const { auto K = 1024; auto M = 1024 * K; auto G = 1024 * M; if (fileSize > G) { return QString(QT_TR_NOOP("%1G")).arg((double)fileSize / G, 0, 'f', 1); } else if (fileSize > M) { return QString(QT_TR_NOOP("%1M")).arg((double)fileSize / M, 0, 'f', 1); } else if (fileSize > K) { return QString(QT_TR_NOOP("%1K")).arg((double)fileSize / K, 0, 'f', 1); } return QString(QT_TR_NOOP("%1")).arg(fileSize); } /** * @brief 判断是否是H.264裸流,因为没有时长等信息所以需要对此类型单独判断 * @return 是否是裸流 */ bool isRawFormat() const { bool bFlag = false; #ifdef _MOVIE_USE_ if(strFmtName.contains("raw",Qt::CaseInsensitive)) bFlag = true; #endif return bFlag; } }; struct PlayItemInfo { bool valid; bool loaded; // if url is network, this is false until playback started QUrl url; QFileInfo info; QPixmap thumbnail; QPixmap thumbnail_dark; struct MovieInfo mi; bool refresh(); }; using AppendJob = QPair; // async job using PlayItemInfoList = QList; using UrlList = QList; class PlaylistModel: public QObject { Q_OBJECT Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(int current READ current WRITE changeCurrent NOTIFY currentChanged) public: friend class PlayerEngine; enum PlayMode { OrderPlay, ShufflePlay, SinglePlay, SingleLoop, ListLoop, }; void stop(); PlayMode playMode() const; void setPlayMode(PlayMode pm); explicit PlaylistModel(PlayerEngine *engine); ~PlaylistModel(); qint64 getUrlFileTotalSize(QUrl url, int tryTimes) const; /** * @brief clear 清空播放列表 */ void clear(); /** * @brief remove 移除播放列表中的选定项 * @param pos 传入的删除项 */ void remove(int pos); void append(const QUrl &); void appendAsync(const QList &); void collectionJob(const QList &, QList &); void playNext(bool fromUser); void playPrev(bool fromUser); int count() const; const QList &items() const { return _infos; } QList &items() { return _infos; } int current() const; const PlayItemInfo ¤tInfo() const; PlayItemInfo ¤tInfo(); int size() const; int indexOf(const QUrl &url); void switchPosition(int p1, int p2); // bool hasPendingAppends(); void handleAsyncAppendResults(QList &pil); struct PlayItemInfo calculatePlayInfo(const QUrl &, const QFileInfo &fi, bool isDvd = false); bool getthreadstate(); void savePlaylist(); void clearPlaylist(); QList getLoadList() { return m_loadFile; }; void loadPlaylist(); /** * @brief getThumanbilRunning 获取加载线程是否运行 * @return 返回是否正在运行 */ bool getThumanbilRunning(); //获取视频信息 MovieInfo getMovieInfo(const QUrl &url, bool *is); //获取视频首帧图片 QImage getMovieCover(const QUrl &url); public slots: void changeCurrent(int); void delayedAppendAsync(const QList &); // void deleteThread(); void clearLoad(); private slots: // void onAsyncAppendFinished(); void onAsyncFinished(); void onAsyncUpdate(PlayItemInfo); void slotStateChanged(); signals: void countChanged(); void currentChanged(); void itemRemoved(int); void itemsAppended(); void emptied(); void playModeChanged(PlayMode); void asyncAppendFinished(const QList &); void itemInfoUpdated(int id); void updateDuration(); private: void initThumb(); void initFFmpeg(); bool getMusicPix(const QFileInfo &fi, QPixmap &rImg); struct MovieInfo parseFromFile(const QFileInfo &fi, bool *ok = nullptr); struct MovieInfo parseFromFileByQt(const QFileInfo &fi, bool *ok = nullptr); // when app starts, and the first time to load playlist bool _firstLoad {true}; int _count {0}; int _current {-1}; int _last {-1}; bool _hasNormalVideo{false}; PlayMode _playMode {PlayMode::OrderPlay}; QList _infos; QList _playOrder; // for shuffle mode int _shufflePlayed {0}; // count currently played items in shuffle mode int _loopCount {0}; // loop count QList _pendingJob; // async job QSet _urlsInJob; // url list QQueue _pendingAppendReq; bool _userRequestingItem {false}; video_thumbnailer *m_video_thumbnailer = nullptr; image_data *m_image_data = nullptr; mvideo_thumbnailer m_mvideo_thumbnailer = nullptr; mvideo_thumbnailer_destroy m_mvideo_thumbnailer_destroy = nullptr; mvideo_thumbnailer_create_image_data m_mvideo_thumbnailer_create_image_data = nullptr; mvideo_thumbnailer_destroy_image_data m_mvideo_thumbnailer_destroy_image_data = nullptr; mvideo_thumbnailer_generate_thumbnail_to_buffer m_mvideo_thumbnailer_generate_thumbnail_to_buffer = nullptr; PlayerEngine *_engine {nullptr}; QString _playlistFile; LoadThread *m_ploadThread; GetThumanbil *m_getThumanbil {nullptr}; QMutex *m_pdataMutex; bool m_brunning; QList m_tempList; QList m_loadFile; bool m_initFFmpeg {false}; bool m_bInitThumb {false}; void reshuffle(); void appendSingle(const QUrl &); void tryPlayCurrent(bool next); }; class LoadThread: public QThread { Q_OBJECT public: LoadThread(PlaylistModel *model, const QList &urls); ~LoadThread(); public: void run(); private: PlaylistModel *_pModel; QList _urls; QList _pendingJob; // async job QSet _urlsInJob; // url list }; class GetThumanbil : public QThread { Q_OBJECT public: GetThumanbil(PlaylistModel *model, const QList &urls): m_model(model), m_urls(urls) { // m_model = model; // m_urls = urls; m_mutex = new QMutex; }; ~GetThumanbil() { m_stop = true; delete m_mutex; m_mutex = nullptr; }; //QList getInfoList() {return m_itemInfo;} void stop() { m_stop = true; }; void setUrls(QList urls) { m_mutex->lock(); m_urls = urls; m_mutex->unlock(); }; void clearItem() { m_mutex->lock(); //m_itemInfo.clear(); m_urls.clear(); m_mutex->unlock(); }; void run() { m_mutex->lock(); QList urls = m_urls; m_mutex->unlock(); foreach (QUrl url, urls) { QFileInfo info(url.path()); //m_itemInfo.append(); emit updateItem(m_model->calculatePlayInfo(url, info, false)); if (m_stop) break; } } signals: void updateItem(PlayItemInfo); private: PlaylistModel *m_model; QList m_urls; //QList m_itemInfo; QMutex *m_mutex; bool m_stop {false}; }; } #endif /* ifndef _DMR_PLAYLIST_MODEL_H */ deepin-movie-reborn-5.15.10/src/libdmr/utils.cpp000066400000000000000000000471621473342170300214530ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "utils.h" #include #include #include namespace dmr { namespace utils { using namespace std; static bool isWayland = false; void ShowInFileManager(const QString &path) { if (path.isEmpty() || !QFile::exists(path)) { return; } QUrl url = QUrl::fromLocalFile(QFileInfo(path).dir().absolutePath()); //Note: The meaning of this code is unknown, use with caution /*QUrlQuery query; query.addQueryItem("selectUrl", QUrl::fromLocalFile(path).toString()); url.setQuery(query);*/ qInfo() << __func__ << url.toString(); // Try dde-file-manager if (url.isLocalFile()) { // Start dde-file-manager failed, try nautilus QDBusInterface iface("org.freedesktop.FileManager1", "/org/freedesktop/FileManager1", "org.freedesktop.FileManager1", QDBusConnection::sessionBus()); if (iface.isValid()) { // Convert filepath to URI first. const QStringList uris = { QUrl::fromLocalFile(path).toString() }; qInfo() << "freedesktop.FileManager"; // StartupId is empty here. QDBusPendingCall call = iface.asyncCall("ShowItems", uris, ""); Q_UNUSED(call); } // Try to launch other file manager if nautilus is invalid else { qInfo() << "desktopService::openUrl"; QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(path).dir().absolutePath())); } } } static int min(int v1, int v2, int v3) { return std::min(v1, std::min(v2, v3)); } static int stringDistance(const QString &s1, const QString &s2) { int n = s1.size(), m = s2.size(); if (!n || !m) return max(n, m); vector dp(static_cast::size_type>(n + 1)); for (int i = 0; i < n + 1; i++) dp[static_cast::size_type>(i)] = i; // int pred = 0; int curr = 0; for (int i = 0; i < m; i++) { dp[0] = i; int pred = i + 1; for (int j = 0; j < n; j++) { if (s1[j] == s2[i]) { curr = dp[static_cast::size_type>(j)]; } else { curr = min(dp[static_cast::size_type>(j)], dp[static_cast::size_type>(j + 1)], pred) + 1; } dp[static_cast::size_type>(j)] = pred; pred = curr; } dp[static_cast::size_type>(n)] = pred; } return curr; } bool IsNamesSimilar(const QString &s1, const QString &s2) { int dist = stringDistance(s1, s2); return (dist >= 0 && dist <= 4); //TODO: check ext. } QFileInfoList FindSimilarFiles(const QFileInfo &fi) { QFileInfoList fil; QDirIterator it(fi.absolutePath()); while (it.hasNext()) { it.next(); if (!it.fileInfo().isFile()) { continue; } if (IsNamesSimilar(fi.fileName(), it.fileInfo().fileName())) { fil.append(it.fileInfo()); } } return fil; } bool CompareNames(const QString &fileName1, const QString &fileName2) { static QRegExp rd("\\d+"); int pos = 0; while ((pos = rd.indexIn(fileName1, pos)) != -1) { auto inc = rd.matchedLength(); auto id1 = fileName1.midRef(pos, inc); auto pos2 = rd.indexIn(fileName2, pos); if (pos == pos2) { auto id2 = fileName2.midRef(pos, rd.matchedLength()); //qInfo() << "id compare " << id1 << id2; if (id1 != id2) { bool ok1, ok2; bool v = id1.toInt(&ok1) < id2.toInt(&ok2); if (ok1 && ok2) return v; return id1.localeAwareCompare(id2) < 0; } } pos += inc; } return fileName1.localeAwareCompare(fileName2) < 0; } bool first_check_wayland_env() { auto e = QProcessEnvironment::systemEnvironment(); QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE")); QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY")); if (XDG_SESSION_TYPE == QLatin1String("wayland") || WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) { isWayland = true; return true; } else { return false; } } bool check_wayland_env() { return isWayland; } #ifdef USE_TEST void set_wayland(bool _b) { isWayland = _b; } #endif // hash the whole file takes amount of time, so just pick some areas to be hashed QString FastFileHash(const QFileInfo &fi) { auto sz = fi.size(); QList offsets = { 4096, sz - 8192 }; QFile f(fi.absoluteFilePath()); if (!f.open(QFile::ReadOnly)) { return QString(); } if (fi.size() < 8192) { auto bytes = f.readAll(); return QString(QCryptographicHash::hash(bytes, QCryptographicHash::Md5).toHex()); } QByteArray bytes; std::for_each(offsets.begin(), offsets.end(), [&bytes, &f](qint64 v) { f.seek(v); bytes += f.read(4096); }); f.close(); return QString(QCryptographicHash::hash(bytes, QCryptographicHash::Md5).toHex()); } // hash the entire file (hope file is small) QString FullFileHash(const QFileInfo &fi) { QFile f(fi.absoluteFilePath()); if (!f.open(QFile::ReadOnly)) { return QString(); } auto bytes = f.readAll(); f.close(); return QString(QCryptographicHash::hash(bytes, QCryptographicHash::Md5).toHex()); } QPixmap MakeRoundedPixmap(QPixmap pm, qreal rx, qreal ry, int rotation) { QMatrix matrix; matrix.rotate(rotation); pm = pm.transformed(matrix, Qt::SmoothTransformation); auto dpr = pm.devicePixelRatio(); QPixmap dest(pm.size()); dest.setDevicePixelRatio(dpr); auto scaled_rect = QRectF({0, 0}, QSizeF(dest.size() / dpr)); dest.fill(Qt::transparent); QPainter p(&dest); p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); QPainterPath path; path.addRoundedRect(QRect(QPoint(), scaled_rect.size().toSize()), rx, ry); p.setClipPath(path); // QTransform transform; // transform.translate(scaled_rect.width()/2, scaled_rect.height()/2); // transform.rotate(rotation); // transform.translate(-scaled_rect.width()/2, -scaled_rect.height()/2); // p.setTransform(transform); p.drawPixmap(scaled_rect.toRect(), pm); return dest; } QPixmap MakeRoundedPixmap(QSize sz, QPixmap pm, qreal rx, qreal ry, qint64 time) { int nX = 0; int nY = 0; auto dpr = pm.devicePixelRatio(); QPixmap dest(sz); dest.setDevicePixelRatio(dpr); dest.fill(Qt::transparent); auto scaled_rect = QRectF({0, 0}, QSizeF(dest.size() / dpr)); QPainter p(&dest); p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); p.setPen(QColor(0, 0, 0, 255 / 10)); p.drawRoundedRect(scaled_rect, rx, ry); QPainterPath path; auto r = scaled_rect.marginsRemoved({1, 1, 1, 1}); path.addRoundedRect(r, rx, ry); p.setClipPath(path); nX = (sz.width() - pm.width()) / 2; nY = (sz.height() - pm.height()) / 2; p.drawPixmap(nX, nY, pm); p.setCompositionMode(QPainter::CompositionMode_SourceOver); QFont ft; ft.setPixelSize(12); ft.setWeight(QFont::Medium); p.setFont(ft); auto tm_str = QTime(0, 0, 0).addSecs(static_cast(time)).toString("hh:mm:ss"); QRect bounding = QFontMetrics(ft).boundingRect(tm_str); bounding.moveTopLeft({(static_cast(dest.width() / dpr)) - 5 - bounding.width(), (static_cast(dest.height() / dpr)) - 5 - bounding.height()}); { QPainterPath pp; pp.addText(bounding.bottomLeft() + QPoint{0, 1}, ft, tm_str); QPen pen(QColor(0, 0, 0, 50)); pen.setWidth(2); p.setBrush(QColor(0, 0, 0, 50)); p.setPen(pen); p.drawPath(pp); } { QPainterPath pp; pp.addText(bounding.bottomLeft(), ft, tm_str); p.fillPath(pp, QColor(Qt::white)); } return dest; } uint32_t InhibitStandby() { QDBusInterface iface("org.freedesktop.ScreenSaver", "/org/freedesktop/ScreenSaver", "org.freedesktop.ScreenSaver"); QDBusReply reply = iface.call("Inhibit", "deepin-movie", "playing in fullscreen"); if (reply.isValid()) { return reply.value(); } qInfo() << reply.error().message(); return 0; } void UnInhibitStandby(uint32_t cookie) { QDBusInterface iface("org.freedesktop.ScreenSaver", "/org/freedesktop/ScreenSaver", "org.freedesktop.ScreenSaver"); iface.call("UnInhibit", cookie); } uint32_t InhibitPower() { QDBusInterface iface("org.freedesktop.PowerManagement", "/org/freedesktop/PowerManagement", "org.freedesktop.PowerManagement"); QDBusReply reply = iface.call("Inhibit", "deepin-movie", "playing in fullscreen"); if (reply.isValid()) { return reply.value(); } qInfo() << reply.error().message(); return 0; } void UnInhibitPower(uint32_t cookie) { QDBusInterface iface("org.freedesktop.PowerManagement", "/org/freedesktop/PowerManagement", "org.freedesktop.PowerManagement"); iface.call("UnInhibit", cookie); } void MoveToCenter(QWidget *w) { QDesktopWidget *dw = QApplication::desktop(); QRect r = dw->availableGeometry(w); w->move(r.center() - w->rect().center()); } QString Time2str(qint64 seconds) { QTime d(0, 0, 0); if (seconds < DAYSECONDS) { d = d.addSecs(static_cast(seconds)); return d.toString("hh:mm:ss"); } else { d = d.addSecs(static_cast(seconds)); int add = static_cast(seconds / DAYSECONDS) * 24; QString dayOut = d.toString("hh:mm:ss"); dayOut.replace(0, 2, QString::number(add + dayOut.left(2).toInt())); return dayOut; } } QString videoIndex2str(int index) { QStringList videoList = {"none", "mpeg1video", "mpeg2video", "h261", "h263", "rv10", "rv20", "mjpeg", "mjpegb", "ljpeg", "sp5x", "jpegls", "mpeg4", "rawvideo", "msmpeg4v1", "msmpeg4v2", "msmpeg4v3", "wmv1", "wmv2", "h263p", "h263i", "flv1", "svq1", "svq3", "dvvideo", "huffyuv", "cyuv", "h264", "indeo3", "vp3", "theora", "asv1", "asv2", "ffv1", "4xm", "vcr1", "cljr", "mdec", "roq", "interplay_video", "xan_wc3", "xan_wc4", "rpza", "cinepak", "ws_vqa", "msrle", "msvideo1", "idcin", "8bps", "smc", "flic", "truemotion1", "vmdvideo", "mszh", "zlib", "qtrle", "tscc", "ulti", "qdraw", "vixl", "qpeg", "png", "ppm", "pbm", "pgm", "pgmyuv", "pam", "ffvhuff", "rv30", "rv40", "vc1", "wmv3", "loco", "wnv1", "aasc", "indeo2", "fraps", "truemotion2", "bmp", "cscd", "mmvideo", "zmbv", "avs", "smackvideo", "nuv", "kmvc", "flashsv", "cavs", "jpeg2000", "vmnc", "vp5", "vp6", "vp6f", "targa", "dsicinvideo", "tiertexseqvideo", "tiff", "gif", "dxa", "dnxhd", "thp", "sgi", "c93", "bethsoftvid", "ptx", "txd", "vp6a", "amv", "vb", "pcx", "sunrast", "indeo4", "indeo5", "mimic", "rl2", "escape124", "dirac", "bfi", "cmv", "motionpixels", "tgv", "tgq", "tqi", "aura", "aura2", "v210x", "tmv", "v210", "dpx", "mad", "frwu", "flashsv2", "cdgraphics", "r210", "anm", "binkvideo", "iff_ilbm", "kgv1", "yop", "vp8", "pictor", "ansi", "a64_multi", "a64_multi5", "r10k", "mxpeg", "lagarith", "prores", "jv", "dfa", "wmv3image", "vc1image", "utvideo", "bmv_video", "vble", "dxtory", "v410", "xwd", "cdxl", "xbm", "zerocodec", "mss1", "msa1", "tscc2", "mts2", "cllc", "mss2", "vp9", "aic", "escape130", "g2m", "webp", "hnm4_video", "hevc", "fic", "alias_pix", "brender_pix", "paf_video", "exr", "vp7", "sanm", "sgirle", "mvc1", "mvc2", "hqx", "tdsc", "hq_hqa", "hap", "dds", "dxv", "screenpresso", "rscc", "avs2" }; QStringList PCMList = {"pcm_s16le", "pcm_s16be", "pcm_u16le", "pcm_u16be", "pcm_s8", "pcm_u8", "pcm_mulaw" "pcm_alaw", "pcm_s32le", "pcm_s32be", "pcm_u32le", "pcm_u32be", "pcm_s24le", "pcm_s24be" "pcm_u24le", "pcm_u24be", "pcm_s24daud", "pcm_zork", "pcm_s16le_planar", "pcm_dvd" "pcm_f32be", "pcm_f32le", "pcm_f64be", "pcm_f64le", "pcm_bluray", "pcm_lxf", "s302m" "pcm_s8_planar", "pcm_s24le_planar", "pcm_s32le_planar", "pcm_s16be_planar" }; QStringList ADPCMList = {"adpcm_ima_qt", "adpcm_ima_wav", "adpcm_ima_dk3", "adpcm_ima_dk4" "adpcm_ima_ws", "adpcm_ima_smjpeg", "adpcm_ms", "adpcm_4xm", "adpcm_xa", "adpcm_adx" "adpcm_ea", "adpcm_g726", "adpcm_ct", "adpcm_swf", "adpcm_yamaha", "adpcm_sbpro_4" "adpcm_sbpro_3", "adpcm_sbpro_2", "adpcm_thp", "adpcm_ima_amv", "adpcm_ea_r1" "adpcm_ea_r3", "adpcm_ea_r2", "adpcm_ima_ea_sead", "adpcm_ima_ea_eacs", "adpcm_ea_xas" "adpcm_ea_maxis_xa", "adpcm_ima_iss", "adpcm_g722", "adpcm_ima_apc", "adpcm_vima" }; QStringList AMRList = {"amr_nb", "amr_wb"}; QStringList realAudioList = {"ra_144", "ra_288" }; QMap codecMap; for (int i = 0; i < videoList.size(); i++) { codecMap.insert(i, videoList[i]); } for (int i = 0; i < PCMList.size(); i++) { codecMap.insert(i + 65536, PCMList[i]); } for (int i = 0; i < ADPCMList.size(); i++) { codecMap.insert(i + 69632, ADPCMList[i]); } codecMap.insert(73728, "amr_nb"); codecMap.insert(73729, "amr_wb"); codecMap.insert(77824, "ra_144"); codecMap.insert(77825, "ra_288"); QString aa = codecMap[index]; return aa; } QString audioIndex2str(int index) { QStringList audioList = {"mp2", "mp3", "aac", "ac3", "dts", "vorbis", "dvaudio", "wmav1", "wmav2", "mace3", "mace6", "vmdaudio", "flac", "mp3adu", "mp3on4", "shorten", "alac", "westwood_snd1", "gsm", "qdm2", "cook", "truespeech", "tta", "smackaudio", "qcelp", "wavpack", "dsicinaudio", "imc", "musepack7", "mlp", "gsm_ms", "atrac3", "ape", "nellymoser", "musepack8", "speex", "wmavoice", "wmapro", "wmalossless", "atrac3p", "eac3", "sipr", "mp1", "twinvq", "truehd", "mp4als", "atrac1", "binkaudio_rdft", "binkaudio_dct", "aac_latm", "qdmc", "celt", "g723_1", "g729", "8svx_exp", "8svx_fib", "bmv_audio", "ralf", "iac", "ilbc", "opus", "comfort_noise", "tak", "metasound", "paf_audio", "on2avc", "dss_sp", "codec2", "ffwavesynth", "sonic", "sonic_ls", "evrc", "smv", "dsd_lsbf", "dsd_msbf", "dsd_lsbf_planar", "dsd_msbf_planar", "4gv", "interplay_acm", "xma1", "xma2", "dst", "atrac3al", "atrac3pal", "dolby_e", "aptx", "aptx_hd", "sbc", "atrac9" }; QMap codecMap; for (int i = 0; i < audioList.size(); i++) { codecMap.insert(i + 86016, audioList[i]); } QString aa = codecMap[index]; return aa; } ///not used/// /*QString subtitleIndex2str(int index) { QStringList subtitleList1 = {"dvd_subtitle", "dvb_subtitle", "text", "xsub", "ssa", "mov_text", "hdmv_pgs_subtitle", "dvb_teletext", "srt" }; QStringList subtitleList2 = {"microdvd", "eia_608", "jacosub", "sami", "realtext", "stl", "subviewer1", "subviewer", "subrip", "webvtt", "mpl2", "vplayer", "pjs", "ass", "hdmv_text_subtitle", "ttml" }; QMap codecMap; for (int i = 0; i < subtitleList1.size(); i++) { codecMap.insert(i + 94208, subtitleList1[i]); } for (int i = 0; i < subtitleList2.size(); i++) { codecMap.insert(i + 96256, subtitleList2[i]); } return codecMap[index]; }*/ //cppcheck 单元测试在用 bool ValidateScreenshotPath(const QString &path) { auto name = path.trimmed(); if (name.isEmpty()) return false; if (name.size() && name[0] == '~') { name.replace(0, 1, QDir::homePath()); } QFileInfo fi(name); if (fi.exists()) { if (!fi.isDir()) { return false; } if (!fi.isReadable() || !fi.isWritable()) { return false; } } return true; } QImage LoadHiDPIImage(const QString &filename) { QImageReader reader(filename); reader.setScaledSize(reader.size() * qApp->devicePixelRatio()); auto img = reader.read(); img.setDevicePixelRatio(qApp->devicePixelRatio()); return img; } QPixmap LoadHiDPIPixmap(const QString &filename) { return QPixmap::fromImage(LoadHiDPIImage(filename)); } QString ElideText(const QString &text, const QSize &size, QTextOption::WrapMode wordWrap, const QFont &font, Qt::TextElideMode mode, int lineHeight, int lastLineWidth) { int height = 0; QTextLayout textLayout(text); QString str; QFontMetrics fontMetrics(font); textLayout.setFont(font); const_cast(&textLayout.textOption())->setWrapMode(wordWrap); textLayout.beginLayout(); QTextLine line = textLayout.createLine(); while (line.isValid()) { height += lineHeight; if (height + lineHeight >= size.height()) { str += fontMetrics.elidedText(text.mid(line.textStart() + line.textLength() + 1), mode, lastLineWidth); break; } line.setLineWidth(size.width()); const QString &tmp_str = text.mid(line.textStart(), line.textLength()); if (tmp_str.indexOf('\n')) height += lineHeight; str += tmp_str; line = textLayout.createLine(); if (line.isValid()) str.append("\n"); } textLayout.endLayout(); if (textLayout.lineCount() == 1) { str = fontMetrics.elidedText(str, mode, lastLineWidth); } return str; } void getPlayProperty(const char *path, QMap *&proMap) { QFileInfo fi(path); if ((fi.exists() && fi.isFile()) && fi.isReadable()) { QFile file(path); if (file.open(QIODevice::ReadOnly) | QIODevice::Text) { QByteArray t; int index = 0; while (!file.atEnd()) { t = file.readLine(); QList list = t.split('='); index++; if (2 == list.size()) { QString temp = list.back(); temp = temp.mid(0, temp.length() - 1);//去除/n proMap->insert(list.first(), temp); } else { qWarning() << __func__ << QString("config line:%1 has error ").arg(index); continue; } } } file.close(); } else { qWarning() << __func__ << "file path error!!!!!"; } } } } deepin-movie-reborn-5.15.10/src/libdmr/utils.h000066400000000000000000000033011473342170300211030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_UTILS_H #define _DMR_UTILS_H #include namespace dmr { namespace utils { static unsigned int DAYSECONDS = 86400; void ShowInFileManager(const QString &path); bool CompareNames(const QString &fileName1, const QString &fileName2); bool first_check_wayland_env(); bool check_wayland_env(); void set_wayland(bool); bool IsNamesSimilar(const QString &s1, const QString &s2); QFileInfoList FindSimilarFiles(const QFileInfo &fi); QString FastFileHash(const QFileInfo &fi); QString FullFileHash(const QFileInfo &fi); QPixmap MakeRoundedPixmap(QPixmap pm, qreal rx, qreal ry, int rotation = 0); QPixmap MakeRoundedPixmap(QSize sz, QPixmap pm, qreal rx, qreal ry, qint64 time); QImage LoadHiDPIImage(const QString &filename); QPixmap LoadHiDPIPixmap(const QString &filename); uint32_t InhibitStandby(); void UnInhibitStandby(uint32_t cookie); uint32_t InhibitPower(); void UnInhibitPower(uint32_t cookie); void MoveToCenter(QWidget *w); QString Time2str(qint64 seconds); QString videoIndex2str(int); QString audioIndex2str(int); QString subtitleIndex2str(int); /** * @brief 检查截屏路径是否存在 cppcheck在使用 */ bool ValidateScreenshotPath(const QString &path); QString ElideText(const QString &text, const QSize &size, QTextOption::WrapMode wordWrap, const QFont &font, Qt::TextElideMode mode, int lineHeight, int lastLineWidth); /** * @brief 获取播放配置 * @param 配置文件path * @param 配置保存的map */ void getPlayProperty(const char *path, QMap *&proMap); } } #endif /* ifndef _DMR_UTILS_H */ deepin-movie-reborn-5.15.10/src/main.cpp000066400000000000000000000332451473342170300177630ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include "config.h" #include "options.h" #include "dmr_settings.h" #include "mainwindow.h" #include "platform/platform_mainwindow.h" #include "platform/platform_dbus_adpator.h" #include "compositing_manager.h" #include "dbus_adpator.h" #include "utils.h" #include "movie_configuration.h" #include "vendor/movieapp.h" #include "vendor/presenter.h" #include #include #include #include #include #include #include "accessibility/acobjectlist.h" DWIDGET_USE_NAMESPACE bool runSingleInstance() { std::string path; QString userName = QDir::homePath().section("/", -1, -1); if (userName == "root") { path = "/tmp/deepin-movie"; } else { path = DStandardPaths::writableLocation(QStandardPaths::AppConfigLocation).toStdString(); } QDir tdir(path.c_str()); if (!tdir.exists()) { tdir.mkpath(path.c_str()); } path += "/single"; int fd = open(path.c_str(), O_WRONLY | O_CREAT, 0644); int flock = lockf(fd, F_TLOCK, 0); if (fd == -1) { qInfo() << strerror(errno); return false; } if (flock == -1) { qInfo() << strerror(errno); return false; } return true; } #ifdef __x86_64__ //进程检测是否支持硬解 void checkIsCanHwdec(int argc, char *argv[]) { QApplication a(argc, argv); Display *x11=QX11Info::display(); VADisplay *display = (VADisplay *)vaGetDisplay(x11); int major, minor; int status = 0; try { status = vaInitialize(display, &major, &minor); } catch (...) { status = -1; } exit(status); } #endif //UOS_AI调用函数 QString getFunctionMovieName() { QString movieName = ""; qInfo() << "single uos ai function call"; bool isCopilotConnected = false; QDBusInterface aiDbus("com.deepin.copilot", "/com/deepin/copilot", "com.deepin.copilot", QDBusConnection::sessionBus()); if (aiDbus.isValid()) isCopilotConnected = true; if(isCopilotConnected) { QDBusReply functions = aiDbus.call("cachedFunctions"); QJsonDocument jsonDocu = QJsonDocument::fromJson(functions.value().toUtf8()); qInfo() << "UOS_AI jsonDocu is: " << jsonDocu; if (jsonDocu.isObject()) { QJsonObject objRoot = jsonDocu.object(); for (QString key : objRoot.keys()) { QJsonValue valueRoot = objRoot.value(key); if (valueRoot.isArray() && key == "functions") { QJsonArray array = valueRoot.toArray(); for (int i = 0; i < array.count(); ++i) { if (array[i].isObject()) { //解析每个function的名称和参数 QJsonObject funcObj = array[i].toObject(); QString functionName = nullptr; QMapfunctionArguments; for (QString funcKey : funcObj.keys()) { if (funcKey == "arguments") { QByteArray arr = funcObj[funcKey].toString().toUtf8(); QJsonDocument argDoc = QJsonDocument::fromJson(arr); if (argDoc.isObject()) { QJsonObject argObj= argDoc.object(); for (QString argKey : argObj.keys()) { functionArguments[argKey] = argObj[argKey].toString(); if(argKey == "name") { qInfo() << "UOS_AI function argument: " << argKey << ": " << functionArguments[argKey]; movieName = "UOS_AI"+functionArguments[argKey]; return movieName; } } } } } } } } } } } else { qInfo() << "isCopilotConnected is false!"; } return movieName; } void killOldMovie() { QString processName = "deepin-movie"; QProcess psProcess; psProcess.start("bash", QStringList() << "-c" << "ps -eo pid,lstart,cmd | grep deepin-movie"); psProcess.waitForFinished(); QString output = psProcess.readAllStandardOutput(); QStringList lines = output.split("\n"); QStringList earlierProcessPids; QDateTime earliestStartTime; for (const QString &line : lines) { QStringList parts = line.split(QRegExp("\\s+"), QString::SkipEmptyParts); if (parts.size() < 3) continue; if (!parts[6].startsWith("deepin-movie")) continue; int pid = parts[0].toInt(); if(QCoreApplication::applicationPid() == pid) continue; QString time; // for (int i = 1; i < 6; i++) { // time += parts[i]; // time += " "; // } time = parts[3] + " " + parts[4]; QDateTime startTime = QDateTime::fromString(time, "dd HH:mm:ss"); if (earlierProcessPids.isEmpty() || startTime < earliestStartTime) { earlierProcessPids.clear(); earlierProcessPids << QString::number(pid); earliestStartTime = startTime; } } // 杀死较早启动的进程 for (const QString &pid : earlierProcessPids) { QProcess killProcess; killProcess.start("kill", QStringList() << pid); killProcess.waitForFinished(); qInfo() << "Killed process with PID:" << pid; } } int main(int argc, char *argv[]) { // Task 326583 不参与合成器崩溃重连 unsetenv("QT_WAYLAND_RECONNECT"); //for qt5platform-plugins load DPlatformIntegration or DPlatformIntegrationParent if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin")){ setenv("XDG_CURRENT_DESKTOP", "Deepin", 1); } #ifdef __x86_64__ if(argc==2 && strcmp(argv[1],"hwdec") == 0) { checkIsCanHwdec(argc, argv); } #endif //#ifdef __aarch64__ //wayland平台支持影院播放 if (dmr::utils::first_check_wayland_env()) { //qputenv("_d_disableDBusFileDialog", "true"); setenv("PULSE_PROP_media.role", "video", 1); #ifndef __x86_64__ QSurfaceFormat format; format.setRenderableType(QSurfaceFormat::OpenGLES); format.setDefaultFormat(format); #endif } //#endif #ifdef __mips__ if (CompositingManager::get().composited()) { CompositingManager::detectOpenGLEarly(); CompositingManager::detectPciID(); } #endif #if defined(STATIC_LIB) DWIDGET_INIT_RESOURCE(); #endif QFileInfo jmfi("/dev/jmgpu"); if (jmfi.exists()) { qputenv("QT_XCB_GL_INTEGRATION", "xcb_egl"); } /** *This function dtk is obsolete and has no * impact after testing on x86 platform. * If there is a problem with later adaptation, * please give priority to whether there * is any impact here. */ // DApplication::loadDXcbPlugin(); DApplication *app = nullptr; #if (DTK_VERSION < DTK_VERSION_CHECK(5, 4, 0, 0)) app = new DApplication(argc, argv); #else app = DApplication::globalApplication(argc, argv); #endif QAccessible::installFactory(accessibleFactory); // required by mpv setlocale(LC_NUMERIC, "C"); #ifdef __mips__ if (CompositingManager::get().composited()) { app->setAttribute(Qt::AA_UseHighDpiPixmaps); // overwrite DApplication default value app->setAttribute(Qt::AA_ForceRasterWidgets, false); } #else app->setAttribute(Qt::AA_UseHighDpiPixmaps); // overwrite DApplication default value app->setAttribute(Qt::AA_ForceRasterWidgets, false); #endif app->setOrganizationName("deepin"); app->setApplicationName("deepin-movie"); app->setApplicationVersion(DMR_VERSION); app->setProductIcon(QIcon::fromTheme("deepin-movie")); app->setWindowIcon(QIcon::fromTheme("deepin-movie")); QString acknowledgementLink = "https://www.deepin.org/acknowledgments/deepin-movie"; app->setApplicationAcknowledgementPage(acknowledgementLink); app->setApplicationVersion(DApplication::buildVersion(VERSION)); //save theme DApplicationSettings saveTheme; qInfo() << "log path: " << Dtk::Core::DLogManager::getlogFilePath(); auto &clm = dmr::CommandLineManager::get(); QCommandLineOption functionCallOption("functioncall", "AI function call."); QCommandLineOption restartCallOption("restart", "deepin movie restart"); clm.addOption(functionCallOption); clm.addOption(restartCallOption); clm.process(*app); QStringList toOpenFiles; if (clm.positionalArguments().length() > 0) { toOpenFiles = clm.positionalArguments(); } app->loadTranslator(); app->setApplicationDisplayName(QObject::tr("Movie")); app->setApplicationDescription(QObject::tr( "Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats." )); // "Deepin Movie is a well-designed and full-featured" // " video player with simple borderless design. It supports local and" // " streaming media play with multiple video formats." // auto light_theme = dmr::Settings::get().internalOption("light_theme").toBool(); // app.setTheme(light_theme ? "light": "dark"); if (clm.debug()) { Dtk::Core::DLogManager::registerConsoleAppender(); } Dtk::Core::DLogManager::registerFileAppender(); dmr::Settings::get().crashCheck(); bool singleton = !dmr::Settings::get().isSet(dmr::Settings::MultipleInstance); QString movieName = ""; if (clm.isSet("functioncall")) { movieName = getFunctionMovieName(); } if (singleton && !runSingleInstance()) { if (clm.isSet("restart")) { sleep(2); if (!runSingleInstance()) { killOldMovie(); } } else { QDBusInterface iface("com.deepin.movie", "/", "com.deepin.movie"); if (clm.isSet("functioncall")) { if(!movieName.isEmpty()) { iface.asyncCall("openFile", movieName); } } qInfo() << "another deepin movie instance has started"; if (!toOpenFiles.isEmpty()) { // QDBusInterface iface("com.deepin.movie", "/", "com.deepin.movie"); if (toOpenFiles.size() == 1) { if (!toOpenFiles[0].contains("QProcess")) iface.asyncCall("openFile", toOpenFiles[0]); } else { iface.asyncCall("openFiles", toOpenFiles); } } // QDBusInterface iface("com.deepin.movie", "/", "com.deepin.movie"); if (iface.isValid()) { qWarning() << "deepin-movie raise"; iface.asyncCall("Raise"); } exit(0); } } else { if (clm.isSet("functioncall")) { QTimer::singleShot(2000, [=]() { QDBusInterface iface("com.deepin.movie", "/", "com.deepin.movie"); if(!movieName.isEmpty()) { iface.asyncCall("openFile", movieName); } }); } } // app.setWindowIcon(QIcon(":/resources/icons/logo.svg")); app->setApplicationDisplayName(QObject::tr("Movie")); app->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true); // app.setApplicationVersion(DApplication::buildVersion("20190830")); MovieConfiguration::get().init(); QRegExp url_re("\\w+://"); if (CompositingManager::get().composited()) { dmr::MainWindow mw; Presenter *presenter = new Presenter(&mw); mw.setPresenter(presenter); if (CompositingManager::isPadSystem()) { ///平板模式下全屏显示 mw.showMaximized(); } else { mw.resize(850, 600); Dtk::Widget::moveToCenter(&mw); mw.show(); } mw.setOpenFiles(toOpenFiles); if (!QDBusConnection::sessionBus().isConnected()) { qWarning() << "dbus disconnected"; } ApplicationAdaptor adaptor(&mw); QDBusConnection::sessionBus().registerService("com.deepin.movie"); QDBusConnection::sessionBus().registerObject("/", &mw); return app->exec(); } else { dmr::Platform_MainWindow platform_mw; Presenter *presenter = new Presenter(&platform_mw); platform_mw.setPresenter(presenter); if (CompositingManager::isPadSystem()) { ///平板模式下全屏显示 platform_mw.showMaximized(); } else { platform_mw.resize(850, 600); Dtk::Widget::moveToCenter(&platform_mw); platform_mw.show(); } platform_mw.setOpenFiles(toOpenFiles); if (!QDBusConnection::sessionBus().isConnected()) { qWarning() << "dbus disconnected"; } Platform_ApplicationAdaptor adaptor(&platform_mw); QDBusConnection::sessionBus().registerService("com.deepin.movie"); QDBusConnection::sessionBus().registerObject("/", &platform_mw); return app->exec(); } } deepin-movie-reborn-5.15.10/src/src.pro000066400000000000000000000107061473342170300176410ustar00rootroot00000000000000 include($$PWD/install.pri) TEMPLATE = app TARGET = deepin-movie #提供支持的额外的库 CONFIG += c++11 link_pkgconfig DESTDIR = $$BUILD_DIST/bin greaterThan(QT_MAJOR_VERSION, 4): QT += widgets QT += core network widgets sql concurrent dbus x11extras dtkwidget dtkcore #包含目录 INCLUDEPATH += ../ INCLUDEPATH += ./common INCLUDEPATH += ./widgets INCLUDEPATH += ./backends/mpv INCLUDEPATH += ./vendor INCLUDEPATH += ./vendor/mpris-qt INCLUDEPATH += ./vendor/dbusextended-qt INCLUDEPATH += ../backends/mpv #LIBS += -L$$BUILD_DIST/lib/ -ldmusic INCLUDEPATH += $$PWD/libdmr #DEPENDPATH += $$PWD/../libdmr BUILD_DIST = ./dist SYSTEMLIBDIR = /usr/lib/x64_64-linux-gnu/ #依赖目录 DEPENDPATH += $$BUILD_DIST/lib #生成目标路径 DESTDIR = $$BUILD_DIST/lib #链接库 LIBS += -LSYSTEMLIBDIR -lX11 LIBS += -LSYSTEMLIBDIR -lxcb LIBS += -LSYSTEMLIBDIR -lXtst LIBS += -LSYSTEMLIBDIR -lxcb-shape LIBS += -LSYSTEMLIBDIR -lmpv LIBS += -LSYSTEMLIBDIR -lffmpegthumbnailer LIBS += -LSYSTEMLIBDIR -lavformat LIBS += -LSYSTEMLIBDIR -lavutil LIBS += -LSYSTEMLIBDIR -lavcodec LIBS += -L$$BUILD_DIST/lib/ -llibdmr # Input HEADERS += common/actions.h \ common/dbus_adpator.h \ common/dmr_settings.h \ common/event_monitor.h \ common/event_relayer.h \ common/mainwindow.h \ common/options.h \ common/shortcut_manager.h \ common/singleton.h \ common/threadpool.h \ common/thumbnail_worker.h \ common/utility.h \ common/volumemonitoring.h \ vendor/movieapp.h \ vendor/presenter.h \ widgets/animationlabel.h \ widgets/burst_screenshots_dialog.h \ widgets/dmr_lineedit.h \ widgets/movie_progress_indicator.h \ widgets/movieinfo_dialog.h \ widgets/notification_widget.h \ widgets/playlist_widget.h \ widgets/slider.h \ widgets/tip.h \ widgets/titlebar.h \ widgets/toolbox_proxy.h \ widgets/toolbutton.h \ widgets/url_dialog.h \ widgets/videoboxbutton.h \ backends/mpv/mpv_glwidget.h \ backends/mpv/mpv_proxy.h \ vendor/dbusextended-qt/dbusextended.h \ vendor/dbusextended-qt/dbusextendedabstractinterface.h \ vendor/dbusextended-qt/dbusextendedpendingcallwatcher_p.h \ vendor/mpris-qt/mpris.h \ vendor/mpris-qt/mpriscontroller.h \ vendor/mpris-qt/mpriscontroller_p.h \ vendor/mpris-qt/mprismanager.h \ vendor/mpris-qt/mprisplayer.h \ vendor/mpris-qt/mprisplayer_p.h \ vendor/mpris-qt/mprisqt.h SOURCES += main.cpp \ common/actions.cpp \ common/dbus_adpator.cpp \ common/dmr_settings.cpp \ common/event_monitor.cpp \ common/event_relayer.cpp \ common/mainwindow.cpp \ common/options.cpp \ common/settings_translation.cpp \ common/shortcut_manager.cpp \ common/threadpool.cpp \ common/thumbnail_worker.cpp \ common/utility_x11.cpp \ common/volumemonitoring.cpp\ vendor/movieapp.cpp \ vendor/presenter.cpp \ widgets/animationlabel.cpp \ widgets/burst_screenshots_dialog.cpp \ widgets/dmr_lineedit.cpp \ widgets/movie_progress_indicator.cpp \ widgets/movieinfo_dialog.cpp \ widgets/notification_widget.cpp \ widgets/playlist_widget.cpp \ widgets/slider.cpp \ widgets/tip.cpp \ widgets/titlebar.cpp \ widgets/toolbox_proxy.cpp \ widgets/toolbutton.cpp \ widgets/url_dialog.cpp \ widgets/videoboxbutton.cpp \ backends/mpv/mpv_glwidget.cpp \ backends/mpv/mpv_proxy.cpp \ vendor/dbusextended-qt/dbusextendedabstractinterface.cpp \ vendor/dbusextended-qt/dbusextendedpendingcallwatcher.cpp \ vendor/mpris-qt/mpris.cpp \ vendor/mpris-qt/mpriscontroller.cpp \ vendor/mpris-qt/mprismanager.cpp \ vendor/mpris-qt/mprisplayer.cpp \ vendor/mpris-qt/mprisplayeradaptor.cpp \ vendor/mpris-qt/mprisplayerinterface.cpp \ vendor/mpris-qt/mprisrootadaptor.cpp \ vendor/mpris-qt/mprisrootinterface.cpp RESOURCES += resources.qrc theme.qrc icons/theme-icons.qrc deepin-movie-reborn-5.15.10/src/vendor/000077500000000000000000000000001473342170300176215ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/vendor/movieapp.cpp000066400000000000000000000033041473342170300221450ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "movieapp.h" MovieApp::MovieApp(MainWindow* mw, QObject* parent) :QObject(parent), _mw(mw) { _presenter = new Presenter(_mw); initMpris("Deepinmovie"); } MovieApp::MovieApp(Platform_MainWindow *mw, QObject *parent) :QObject(parent), _mw_platform(mw) { _presenter = new Presenter(_mw_platform); initMpris("Deepinmovie"); } void MovieApp::initMpris(const QString &serviceName) { MprisPlayer* mprisPlayer = new MprisPlayer(); mprisPlayer->setServiceName(serviceName); //mprisPlayer->setSupportedMimeTypes(); mprisPlayer->setSupportedUriSchemes(QStringList() << "file"); mprisPlayer->setCanQuit(true); mprisPlayer->setCanRaise(true); mprisPlayer->setCanSetFullscreen(false); mprisPlayer->setHasTrackList(false); // setDesktopEntry: see https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry for more mprisPlayer->setDesktopEntry("deepin-movie"); mprisPlayer->setIdentity("Deepin Movie Player"); mprisPlayer->setCanControl(true); mprisPlayer->setCanPlay(true); mprisPlayer->setCanGoNext(true); mprisPlayer->setCanGoPrevious(true); mprisPlayer->setCanPause(true); connect(mprisPlayer, &MprisPlayer::quitRequested, this, &MovieApp::quit); _presenter->initMpris(mprisPlayer); } void MovieApp::show() { } void MovieApp::quit() { if(_mw) _mw->requestAction(ActionFactory::Exit); else if (_mw_platform) { _mw_platform->requestAction(ActionFactory::Exit); } } deepin-movie-reborn-5.15.10/src/vendor/movieapp.h000066400000000000000000000014321473342170300216120ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef MOVIEAPP_H #define MOVIEAPP_H #include #include #include "mainwindow.h" #include "platform/platform_mainwindow.h" #include "presenter.h" using namespace dmr; class MprisPlayer; class MovieApp : public QObject { public: MovieApp(MainWindow* mw, QObject* parent = nullptr); MovieApp(Platform_MainWindow* mw, QObject* parent = nullptr); void initUI(); void initConnection(); void initMpris(const QString &serviceName); void show(); public slots: void quit(); private: MainWindow* _mw = nullptr; Platform_MainWindow* _mw_platform = nullptr; Presenter* _presenter = nullptr; }; #endif // MOVIEAPP_H deepin-movie-reborn-5.15.10/src/vendor/presenter.cpp000066400000000000000000000215641473342170300223440ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "presenter.h" Presenter::Presenter(MainWindow *mw, QObject *parent) : QObject(parent), _mw(mw) { MprisPlayer *mprisPlayer = new MprisPlayer(); mprisPlayer->setServiceName("Deepinmovie"); //mprisPlayer->setSupportedMimeTypes(); mprisPlayer->setSupportedUriSchemes(QStringList() << "file"); mprisPlayer->setCanQuit(true); mprisPlayer->setCanRaise(true); mprisPlayer->setCanSetFullscreen(false); mprisPlayer->setHasTrackList(false); // setDesktopEntry: see https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry for more mprisPlayer->setDesktopEntry("deepin-movie"); mprisPlayer->setIdentity("Deepin Movie Player"); mprisPlayer->setCanControl(true); mprisPlayer->setCanPlay(true); mprisPlayer->setCanGoNext(true); mprisPlayer->setCanGoPrevious(true); mprisPlayer->setCanPause(true); mprisPlayer->setCanSeek(true); #ifdef USE_FORK_MPRIS mprisPlayer->setCanShowInUI(false); #endif initMpris(mprisPlayer); } Presenter::Presenter(Platform_MainWindow *mw, QObject *parent) : QObject(parent), _platform_mw(mw) { MprisPlayer *mprisPlayer = new MprisPlayer(); mprisPlayer->setServiceName("Deepinmovie"); //mprisPlayer->setSupportedMimeTypes(); mprisPlayer->setSupportedUriSchemes(QStringList() << "file"); mprisPlayer->setCanQuit(true); mprisPlayer->setCanRaise(true); mprisPlayer->setCanSetFullscreen(false); mprisPlayer->setHasTrackList(false); // setDesktopEntry: see https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry for more mprisPlayer->setDesktopEntry("deepin-movie"); mprisPlayer->setIdentity("Deepin Movie Player"); mprisPlayer->setCanControl(true); mprisPlayer->setCanPlay(true); mprisPlayer->setCanGoNext(true); mprisPlayer->setCanGoPrevious(true); mprisPlayer->setCanPause(true); mprisPlayer->setCanSeek(true); #ifdef USE_FORK_MPRIS mprisPlayer->setCanShowInUI(false); #endif initMpris(mprisPlayer); } void Presenter::initMpris(MprisPlayer *mprisPlayer) { if (!mprisPlayer) { return ; } m_mprisplayer = mprisPlayer; if (_mw) { connect(_mw->engine(), &PlayerEngine::stateChanged, this, &Presenter::slotstateChanged); connect(_mw->engine()->getplaylist(), &PlaylistModel::playModeChanged, this, &Presenter::slotplayModeChanged); } else { connect(_platform_mw->engine(), &PlayerEngine::stateChanged, this, &Presenter::slotstateChanged); connect(_platform_mw->engine()->getplaylist(), &PlaylistModel::playModeChanged, this, &Presenter::slotplayModeChanged); } connect(mprisPlayer, &MprisPlayer::playRequested, this, &Presenter::slotplay); connect(mprisPlayer, &MprisPlayer::pauseRequested, this, &Presenter::slotpause); connect(mprisPlayer, &MprisPlayer::nextRequested, this, &Presenter::slotplaynext); connect(mprisPlayer, &MprisPlayer::previousRequested, this, &Presenter::slotplayprev); connect(mprisPlayer, &MprisPlayer::volumeRequested, this, &Presenter::slotvolumeRequested); connect(mprisPlayer, &MprisPlayer::openUriRequested, this, &Presenter::slotopenUrlRequested); connect(mprisPlayer, &MprisPlayer::loopStatusRequested, this, &Presenter::slotloopStatusRequested); //connect(mprisPlayer, &MprisPlayer::openUriRequested, this, [ = ] {_mw->requestAction(ActionFactory::Exit);}); connect(mprisPlayer, &MprisPlayer::seekRequested, this, &Presenter::slotseek); connect(mprisPlayer, &MprisPlayer::stopRequested, this, &Presenter::slotstop); //connect(_mw->engine(),&PlayerEngine::volumeChanged,this,&Presenter::slotvolumeChanged); // connect(_mw->toolbox()->get_progBar(), &Presenter::progrossChanged, // this, [ = ](qint64 pos, qint64) { // mprisPlayer->setPosition(pos); // }); } void Presenter::slotplay() { if (m_mprisplayer->playbackStatus() == Mpris::Paused) { slotpause(); } else { if (_mw) _mw->requestAction(ActionFactory::StartPlay); else _platform_mw->requestAction(ActionFactory::StartPlay); } } void Presenter::slotpause() { if (_mw) _mw->requestAction(ActionFactory::TogglePause); else _platform_mw->requestAction(ActionFactory::TogglePause); } void Presenter::slotplaynext() { if (_mw) _mw->requestAction(ActionFactory::GotoPlaylistNext); else _platform_mw->requestAction(ActionFactory::GotoPlaylistNext); } void Presenter::slotplayprev() { if (_mw) _mw->requestAction(ActionFactory::GotoPlaylistPrev); else _platform_mw->requestAction(ActionFactory::GotoPlaylistPrev); } void Presenter::slotvolumeRequested(double volume) { QList arg; arg.append((volume + 0.001) * 100.0); if (_mw) _mw->requestAction(ActionFactory::ChangeVolume, 1, arg); else _platform_mw->requestAction(ActionFactory::ChangeVolume, 1, arg); } void Presenter::slotopenUrlRequested(const QUrl url) { if (_mw) _mw->play({url.toString()}); else _platform_mw->play({url.toString()}); } void Presenter::slotstateChanged() { if (_mw) { switch (_mw->engine()->state()) { case PlayerEngine::CoreState::Idle: m_mprisplayer->setPlaybackStatus(Mpris::Stopped); break; case PlayerEngine::CoreState::Playing: m_mprisplayer->setPlaybackStatus(Mpris::Playing); break; case PlayerEngine::CoreState::Paused: m_mprisplayer->setPlaybackStatus(Mpris::Paused); break; } } else { switch (_platform_mw->engine()->state()) { case PlayerEngine::CoreState::Idle: m_mprisplayer->setPlaybackStatus(Mpris::Stopped); break; case PlayerEngine::CoreState::Playing: m_mprisplayer->setPlaybackStatus(Mpris::Playing); break; case PlayerEngine::CoreState::Paused: m_mprisplayer->setPlaybackStatus(Mpris::Paused); break; } } } void Presenter::slotloopStatusRequested(Mpris::LoopStatus loopStatus) { if (_mw) { if (loopStatus == Mpris::LoopStatus::InvalidLoopStatus) { return; } else if (loopStatus == Mpris::LoopStatus::None) { _mw->requestAction(ActionFactory::OrderPlay); _mw->reflectActionToUI(ActionFactory::OrderPlay); } else if (loopStatus == Mpris::LoopStatus::Track) { _mw->requestAction(ActionFactory::SingleLoop); _mw->reflectActionToUI(ActionFactory::SingleLoop); } else if (loopStatus == Mpris::LoopStatus::Playlist) { _mw->requestAction(ActionFactory::ListLoop); _mw->reflectActionToUI(ActionFactory::ListLoop); } } else { if (loopStatus == Mpris::LoopStatus::InvalidLoopStatus) { return; } else if (loopStatus == Mpris::LoopStatus::None) { _platform_mw->requestAction(ActionFactory::OrderPlay); _platform_mw->reflectActionToUI(ActionFactory::OrderPlay); } else if (loopStatus == Mpris::LoopStatus::Track) { _platform_mw->requestAction(ActionFactory::SingleLoop); _platform_mw->reflectActionToUI(ActionFactory::SingleLoop); } else if (loopStatus == Mpris::LoopStatus::Playlist) { _platform_mw->requestAction(ActionFactory::ListLoop); _platform_mw->reflectActionToUI(ActionFactory::ListLoop); } } } void Presenter::slotplayModeChanged(PlaylistModel::PlayMode pm) { if (pm == PlaylistModel::PlayMode::OrderPlay) { m_mprisplayer->setLoopStatus(Mpris::LoopStatus::None); } else if (pm == PlaylistModel::PlayMode::SingleLoop) { m_mprisplayer->setLoopStatus(Mpris::LoopStatus::Track); } else if (pm == PlaylistModel::PlayMode::ListLoop) { m_mprisplayer->setLoopStatus(Mpris::LoopStatus::Playlist); } else { m_mprisplayer->setLoopStatus(Mpris::LoopStatus::InvalidLoopStatus); } } void Presenter::slotvolumeChanged() { if (_mw) { if (_mw->engine()->muted()) { m_mprisplayer->setVolume(0.0); } else { double pert = _mw->getDisplayVolume(); m_mprisplayer->setVolume(pert); } } else { if (_platform_mw->engine()->muted()) { m_mprisplayer->setVolume(0.0); } else { double pert = _platform_mw->getDisplayVolume(); m_mprisplayer->setVolume(pert); } } } void Presenter::slotseek(qlonglong Offset) { if (_mw) _mw->engine()->seekAbsolute(Offset); else _platform_mw->engine()->seekAbsolute(Offset); } void Presenter::slotstop() { if (_mw) _mw->engine()->stop(); else _platform_mw->engine()->stop(); } deepin-movie-reborn-5.15.10/src/vendor/presenter.h000066400000000000000000000024771473342170300220130ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef PRESENTER_H #define PRESENTER_H #include #include #include "mainwindow.h" #include "platform/platform_mainwindow.h" #include "mpv_proxy.h" #include "player_engine.h" #include "dmr_settings.h" #include "platform/platform_notification_widget.h" #include "platform/platform_toolbox_proxy.h" #include "playlist_model.h" using namespace dmr; class Presenter : public QObject { Q_OBJECT public: explicit Presenter(MainWindow* mw, QObject *parent = nullptr); explicit Presenter(Platform_MainWindow* mw, QObject *parent = nullptr); void initMpris(MprisPlayer *mprisPlayer); signals: public slots: void slotplay(); void slotpause(); void slotplaynext(); void slotplayprev(); void slotvolumeRequested(double volume); void slotopenUrlRequested(const QUrl url); void slotstateChanged(); void slotloopStatusRequested(Mpris::LoopStatus loopStatus); void slotplayModeChanged(PlaylistModel::PlayMode pm); void slotvolumeChanged(); void slotseek(qlonglong Offset); void slotstop(); private: MainWindow* _mw = nullptr; Platform_MainWindow* _platform_mw = nullptr; MprisPlayer* m_mprisplayer=nullptr; }; #endif // PRESENTER_H deepin-movie-reborn-5.15.10/src/vendor/qthelper.hpp000066400000000000000000000303531473342170300221620ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /* Copyright (C) 2017 the mpv developers * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef MPV_CLIENT_API_QTHELPER_H_ #define MPV_CLIENT_API_QTHELPER_H_ #include #if !MPV_ENABLE_DEPRECATED #error "This helper is deprecated. Copy it into your project instead." #else /** * Note: these helpers are provided for convenience for C++/Qt applications. * This is based on the public API in client.h, and it does not encode any * knowledge that is not known or guaranteed outside of the C client API. You * can even copy and modify this code as you like, or implement similar things * for other languages. */ #include #include #include #include #include #include #include namespace mpv { namespace qt { // Wrapper around mpv_handle. Does refcounting under the hood. class Handle { struct container { explicit container(mpv_handle *h) : mpv(h) {} ~container() { mpv_terminate_destroy(mpv); } mpv_handle *mpv; }; QSharedPointer sptr; public: // Construct a new Handle from a raw mpv_handle with refcount 1. If the // last Handle goes out of scope, the mpv_handle will be destroyed with // mpv_terminate_destroy(). // Never destroy the mpv_handle manually when using this wrapper. You // will create dangling pointers. Just let the wrapper take care of // destroying the mpv_handle. // Never create multiple wrappers from the same raw mpv_handle; copy the // wrapper instead (that's what it's for). static Handle FromRawHandle(mpv_handle *handle) { Handle h; h.sptr = QSharedPointer(new container(handle)); return h; } // Return the raw handle; for use with the libmpv C API. operator mpv_handle*() const { return sptr ? (*sptr).mpv : 0; } }; static inline QVariant node_to_variant(const mpv_node *node) { switch (node->format) { case MPV_FORMAT_STRING: return QVariant(QString::fromUtf8(node->u.string)); case MPV_FORMAT_FLAG: return QVariant(static_cast(node->u.flag)); case MPV_FORMAT_INT64: return QVariant(static_cast(node->u.int64)); case MPV_FORMAT_DOUBLE: return QVariant(node->u.double_); case MPV_FORMAT_NODE_ARRAY: { mpv_node_list *list = node->u.list; QVariantList qlist; for (int n = 0; n < list->num; n++) qlist.append(node_to_variant(&list->values[n])); return QVariant(qlist); } case MPV_FORMAT_NODE_MAP: { mpv_node_list *list = node->u.list; QVariantMap qmap; for (int n = 0; n < list->num; n++) { qmap.insert(QString::fromUtf8(list->keys[n]), node_to_variant(&list->values[n])); } return QVariant(qmap); } default: // MPV_FORMAT_NONE, unknown values (e.g. future extensions) return QVariant(); } } struct node_builder { explicit node_builder(const QVariant& v) { set(&node_, v); } ~node_builder() { free_node(&node_); } mpv_node *node() { return &node_; } private: Q_DISABLE_COPY(node_builder) mpv_node node_; mpv_node_list *create_list(mpv_node *dst, bool is_map, int num) { dst->format = is_map ? MPV_FORMAT_NODE_MAP : MPV_FORMAT_NODE_ARRAY; mpv_node_list *list = new mpv_node_list(); dst->u.list = list; if (!list) goto err; list->values = new mpv_node[num](); if (!list->values) goto err; if (is_map) { list->keys = new char*[num](); if (!list->keys) goto err; } return list; err: free_node(dst); return NULL; } char *dup_qstring(const QString &s) { QByteArray b = s.toUtf8(); char *r = new char[b.size() + 1]; if (r) std::memcpy(r, b.data(), b.size() + 1); return r; } bool test_type(const QVariant &v, QMetaType::Type t) { // The Qt docs say: "Although this function is declared as returning // "QVariant::Type(obsolete), the return value should be interpreted // as QMetaType::Type." // So a cast really seems to be needed to avoid warnings (urgh). return static_cast(v.type()) == static_cast(t); } void set(mpv_node *dst, const QVariant &src) { if (test_type(src, QMetaType::QString)) { dst->format = MPV_FORMAT_STRING; dst->u.string = dup_qstring(src.toString()); if (!dst->u.string) goto fail; } else if (test_type(src, QMetaType::Bool)) { dst->format = MPV_FORMAT_FLAG; dst->u.flag = src.toBool() ? 1 : 0; } else if (test_type(src, QMetaType::Int) || test_type(src, QMetaType::LongLong) || test_type(src, QMetaType::UInt) || test_type(src, QMetaType::ULongLong)) { dst->format = MPV_FORMAT_INT64; dst->u.int64 = src.toLongLong(); } else if (test_type(src, QMetaType::Double)) { dst->format = MPV_FORMAT_DOUBLE; dst->u.double_ = src.toDouble(); } else if (src.canConvert()) { QVariantList qlist = src.toList(); mpv_node_list *list = create_list(dst, false, qlist.size()); if (!list) goto fail; list->num = qlist.size(); for (int n = 0; n < qlist.size(); n++) set(&list->values[n], qlist[n]); } else if (src.canConvert()) { QVariantMap qmap = src.toMap(); mpv_node_list *list = create_list(dst, true, qmap.size()); if (!list) goto fail; list->num = qmap.size(); for (int n = 0; n < qmap.size(); n++) { list->keys[n] = dup_qstring(qmap.keys()[n]); if (!list->keys[n]) { free_node(dst); goto fail; } set(&list->values[n], qmap.values()[n]); } } else { goto fail; } return; fail: dst->format = MPV_FORMAT_NONE; } void free_node(mpv_node *dst) { switch (dst->format) { case MPV_FORMAT_STRING: delete[] dst->u.string; break; case MPV_FORMAT_NODE_ARRAY: case MPV_FORMAT_NODE_MAP: { mpv_node_list *list = dst->u.list; if (list) { for (int n = 0; n < list->num; n++) { if (list->keys) delete[] list->keys[n]; if (list->values) free_node(&list->values[n]); } delete[] list->keys; delete[] list->values; } delete list; break; } default: ; } dst->format = MPV_FORMAT_NONE; } }; /** * RAII wrapper that calls mpv_free_node_contents() on the pointer. */ struct node_autofree { mpv_node *ptr; explicit node_autofree(mpv_node *a_ptr) : ptr(a_ptr) {} ~node_autofree() { mpv_free_node_contents(ptr); } }; #if MPV_ENABLE_DEPRECATED /** * Return the given property as mpv_node converted to QVariant, or QVariant() * on error. * * @deprecated use get_property() instead * * @param name the property name */ static inline QVariant get_property_variant(mpv_handle *ctx, const QString &name) { mpv_node node; if (mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node) < 0) return QVariant(); node_autofree f(&node); return node_to_variant(&node); } /** * Set the given property as mpv_node converted from the QVariant argument. * @deprecated use set_property() instead */ static inline int set_property_variant(mpv_handle *ctx, const QString &name, const QVariant &v) { node_builder node(v); return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); } /** * Set the given option as mpv_node converted from the QVariant argument. * * @deprecated use set_property() instead */ static inline int set_option_variant(mpv_handle *ctx, const QString &name, const QVariant &v) { node_builder node(v); return mpv_set_option(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); } /** * mpv_command_node() equivalent. Returns QVariant() on error (and * unfortunately, the same on success). * * @deprecated use command() instead */ static inline QVariant command_variant(mpv_handle *ctx, const QVariant &args) { node_builder node(args); mpv_node res; if (mpv_command_node(ctx, node.node(), &res) < 0) return QVariant(); node_autofree f(&res); return node_to_variant(&res); } #endif /** * This is used to return error codes wrapped in QVariant for functions which * return QVariant. * * You can use get_error() or is_error() to extract the error status from a * QVariant value. */ struct ErrorReturn { /** * enum mpv_error value (or a value outside of it if ABI was extended) */ int error; ErrorReturn() : error(0) {} explicit ErrorReturn(int err) : error(err) {} }; /** * Return the mpv error code packed into a QVariant, or 0 (success) if it's not * an error value. * * @return error code (<0) or success (>=0) */ static inline int get_error(const QVariant &v) { if (!v.canConvert()) return 0; return v.value().error; } /** * Return whether the QVariant carries a mpv error code. */ static inline bool is_error(const QVariant &v) { return get_error(v) < 0; } /** * Return the given property as mpv_node converted to QVariant, or QVariant() * on error. * * @param name the property name * @return the property value, or an ErrorReturn with the error code */ static inline QVariant get_property(mpv_handle *ctx, const QString &name) { mpv_node node; int err = mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node); if (err < 0) return QVariant::fromValue(ErrorReturn(err)); node_autofree f(&node); return node_to_variant(&node); } /** * Set the given property as mpv_node converted from the QVariant argument. * * @return mpv error code (<0 on error, >= 0 on success) */ static inline int set_property(mpv_handle *ctx, const QString &name, const QVariant &v) { node_builder node(v); return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); } /** * mpv_command_node() equivalent. * * @param args command arguments, with args[0] being the command name as string * @return the property value, or an ErrorReturn with the error code */ static inline QVariant command(mpv_handle *ctx, const QVariant &args) { node_builder node(args); mpv_node res; int err = mpv_command_node(ctx, node.node(), &res); if (err < 0) return QVariant::fromValue(ErrorReturn(err)); node_autofree f(&res); return node_to_variant(&res); } } } Q_DECLARE_METATYPE(mpv::qt::ErrorReturn) #endif /* else #if MPV_ENABLE_DEPRECATED */ #endif deepin-movie-reborn-5.15.10/src/widgets/000077500000000000000000000000001473342170300177725ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/widgets/animationlabel.cpp000066400000000000000000000144341473342170300234630ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为切换播放暂停时窗口中间显示控件。 * */ #include #include #include #include #include "animationlabel.h" #include "mainwindow.h" #include "utils.h" #define ANIMATION_TIME 250 ///动画时长 #define DELAY_TIME 2000 ///显示动画与隐藏动画间隔 using namespace dmr; /** * @brief AnimationLabel构造函数 * @param parent 父窗口 * @param pMainWindow 主窗口 */ AnimationLabel::AnimationLabel(QWidget *parent, QWidget *pMainWindow) : QFrame(parent) { initMember(pMainWindow); setAttribute(Qt::WA_TransparentForMouseEvents); resize(200, 200); } /** * @brief 由播放状态变为暂停状态 */ void AnimationLabel::pauseAnimation() { if (m_pPauseAnimationGroup && m_pPauseAnimationGroup->state() == QAbstractAnimation::Running) m_pPauseAnimationGroup->stop(); m_pPlayAnimationGroup->start(); if(!isVisible()) { show(); } } /** * @brief 由暂停状态变为播放状态 */ void AnimationLabel::playAnimation() { if (m_pPlayAnimationGroup && m_pPlayAnimationGroup->state() == QAbstractAnimation::Running) m_pPlayAnimationGroup->stop(); m_pPauseAnimationGroup->start(); if(!isVisible()) { show(); } } void AnimationLabel::setWM(bool isWM) { m_bIsWM = isWM; } /** * @brief 初始化成员变量 * @param mainwindow 主窗口指针 */ void AnimationLabel::initMember(QWidget *pMainwindow) { initPlayAnimation(); initPauseAnimation(); m_pMainWindow = pMainwindow; m_sFileName = ""; } /** * @brief 初始化切换暂停时的动画组 */ void AnimationLabel::initPauseAnimation() { m_pPauseAnimationGroup = new QSequentialAnimationGroup(this); m_pPauseShowAnimation = new QPropertyAnimation(this, "fps"); m_pPauseHideAnimation = new QPropertyAnimation(this, "fps"); const int nShowAnimationNum = 9; //显示动画图像数量 const int nHideAnimationNum = 18; //隐藏动画图像数量 m_pPauseShowAnimation->setDuration(ANIMATION_TIME); m_pPauseShowAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPauseShowAnimation->setStartValue(0); m_pPauseShowAnimation->setEndValue(nShowAnimationNum); connect(m_pPauseShowAnimation, &QPropertyAnimation::valueChanged, this, &AnimationLabel::onPauseAnimationChanged); m_pPauseHideAnimation->setDuration(ANIMATION_TIME); m_pPauseHideAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPauseHideAnimation->setStartValue(nShowAnimationNum); m_pPauseHideAnimation->setEndValue(nHideAnimationNum); connect(m_pPauseHideAnimation, &QPropertyAnimation::valueChanged, this, &AnimationLabel::onPauseAnimationChanged); m_pPauseAnimationGroup->addAnimation(m_pPauseShowAnimation); m_pPauseAnimationGroup->addPause(DELAY_TIME); m_pPauseAnimationGroup->addAnimation(m_pPauseHideAnimation); } /** * @brief 初始化切换播放时的动画组 */ void AnimationLabel::initPlayAnimation() { m_pPlayAnimationGroup = new QSequentialAnimationGroup(this); m_pPlayShowAnimation = new QPropertyAnimation(this, "fps"); m_pPlayHideAnimation = new QPropertyAnimation(this, "fps"); const int nShowAnimationNum = 9; //显示动画图像数量 const int nHideAnimationNum = 18; //隐藏动画图像数量 m_pPlayShowAnimation->setDuration(ANIMATION_TIME); m_pPlayShowAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPlayShowAnimation->setStartValue(0); m_pPlayShowAnimation->setEndValue(nShowAnimationNum); connect(m_pPlayShowAnimation, &QPropertyAnimation::valueChanged, this, &AnimationLabel::onPlayAnimationChanged); m_pPlayHideAnimation->setDuration(ANIMATION_TIME); m_pPlayHideAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPlayHideAnimation->setStartValue(nShowAnimationNum); m_pPlayHideAnimation->setEndValue(nHideAnimationNum); connect(m_pPlayHideAnimation, &QPropertyAnimation::valueChanged, this, &AnimationLabel::onPlayAnimationChanged); m_pPlayAnimationGroup->addAnimation(m_pPlayShowAnimation); m_pPlayAnimationGroup->addPause(DELAY_TIME); m_pPlayAnimationGroup->addAnimation(m_pPlayHideAnimation); } /** * @brief 具体实现播放动画的每一帧图像显示 * @param 当前显示图像的序号 */ void AnimationLabel::onPlayAnimationChanged(const QVariant &value) { #if defined (__aarch64__) || defined (__mips__) if (m_bIsWM || utils::check_wayland_env()) { m_sFileName = QString(":/resources/icons/stop/%1.png").arg(value.toInt()); } else { m_sFileName = QString(":/resources/icons/stop_new/%1.png").arg(value.toInt()); } #else m_sFileName = QString(":/resources/icons/stop/%1.png").arg(value.toInt()); #endif m_pixmap = QPixmap(m_sFileName); update(); } /** * @brief 具体实现暂停动画的每一帧图像显示 * @param 当前显示图像的序号 */ void AnimationLabel::onPauseAnimationChanged(const QVariant &value) { #if defined (__aarch64__) || defined (__mips__) if (m_bIsWM || utils::check_wayland_env()) { m_sFileName = QString(":/resources/icons/start/%1.png").arg(value.toInt()); } else { m_sFileName = QString(":/resources/icons/start_new/%1.png").arg(value.toInt()); } #else m_sFileName = QString(":/resources/icons/start/%1.png").arg(value.toInt()); #endif m_pixmap = QPixmap(m_sFileName); update(); } void AnimationLabel::onHideAnimation() { hide(); if(m_pMainWindow) { m_pMainWindow->update(); } } /** * @brief 重载绘制事件函数 * @param event:qt绘制事件 */ void AnimationLabel::paintEvent(QPaintEvent *e) { QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter.drawPixmap(rect(), m_pixmap); QFrame::paintEvent(e); } /** * @brief 重载显示事件函数 * @param event:qt窗口显示事件 */ void AnimationLabel::showEvent(QShowEvent *e) { QFrame::showEvent(e); } /** * @brief 重载移动事件函数 * @param event:qt窗口移动事件 */ void AnimationLabel::moveEvent(QMoveEvent *e) { return QFrame::moveEvent(e); } deepin-movie-reborn-5.15.10/src/widgets/animationlabel.h000066400000000000000000000063421473342170300231270ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为切换播放暂停时窗口中间显示控件。 * */ #ifndef ANIMATIONLABEL_H #define ANIMATIONLABEL_H #include #include #include #include #include #include /** * @brief The AnimationLabel class * * 实现在切换播放、暂停状态的时候显示的动画效果。 */ class AnimationLabel : public QFrame { Q_PROPERTY(int fps READ fps WRITE setFps) public: /** * @brief AnimationLabel构造函数 * @param parent 父窗口 * @param pMainWindow 主窗口 */ explicit AnimationLabel(QWidget *parent = nullptr, QWidget *pMainWindow = nullptr); /** * @brief 由播放状态变为暂停状态 */ void pauseAnimation(); /** * @brief 由暂停状态变为播放状态 */ void playAnimation(); void setWM(bool); private: /** * @brief 初始化成员变量 * @param mainwindow 主窗口指针 */ void initMember(QWidget *pMainwindow); /** * @brief 初始化切换暂停时的动画组 */ void initPauseAnimation(); /** * @brief 初始化切换播放时的动画组 */ void initPlayAnimation(); public slots: /** * @brief 具体实现播放动画的每一帧图像显示 * @param 当前显示图像的序号 */ void onPlayAnimationChanged(const QVariant &value); /** * @brief 具体实现暂停动画的每一帧图像显示 * @param 当前显示图像的序号 */ void onPauseAnimationChanged(const QVariant &value); /** * @brief 隐藏当前窗口 * @param */ void onHideAnimation(); protected: /** * @brief 重载绘制事件函数 * @param event:qt绘制事件 */ void paintEvent(QPaintEvent *event); /** * @brief 重载显示事件函数 * @param event:qt窗口显示事件 */ void showEvent(QShowEvent *event) override; /** * @brief 重载移动事件函数 * @param event:qt窗口移动事件 */ void moveEvent(QMoveEvent *event) override; /** * @brief 重载鼠标释放事件函数 * @param event:qt鼠标事件 */ // void mouseReleaseEvent(QMouseEvent *event) override; QSequentialAnimationGroup *m_pPlayAnimationGroup; ///切换播放状态动画组 QPropertyAnimation *m_pPlayShowAnimation; ///切换播放状态显示动画 QPropertyAnimation *m_pPlayHideAnimation; ///切换播放状态隐藏动画 QSequentialAnimationGroup *m_pPauseAnimationGroup; ///切换暂停状态动画组 QPropertyAnimation *m_pPauseShowAnimation; ///切换暂停状态显示动画 QPropertyAnimation *m_pPauseHideAnimation; ///切换暂停状态隐藏动画 QWidget *m_pMainWindow; ///主窗口指针 QPixmap m_pixmap; ///当前动画显示的图像 QString m_sFileName; ///动画当前显示的图像文件 bool m_bIsWM; }; #endif // ANIMATIONLABEL_H deepin-movie-reborn-5.15.10/src/widgets/burst_screenshots_dialog.cpp000066400000000000000000000166341473342170300256060ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "player_engine.h" #include "burst_screenshots_dialog.h" #include "dmr_settings.h" #include "utils.h" #include DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief BurstScreenshotsDialog 构造函数 * @param strPlayItemInfo 播放项信息 */ BurstScreenshotsDialog::BurstScreenshotsDialog(const PlayItemInfo &PlayItemInfo) : DAbstractDialog(nullptr) { MovieInfo strMovieInfo = PlayItemInfo.mi; //title m_pTitlebar = new DTitlebar(this); m_pTitlebar->setFixedHeight(50); m_pTitlebar->layout()->setContentsMargins(0, 0, 0, 0); m_pTitlebar->setMenuVisible(false); m_pTitlebar->setIcon(QIcon::fromTheme("deepin-movie")); //参考设计图 m_pTitlebar->setFixedWidth(590); m_pTitlebar->setTitle(strMovieInfo.title); m_pTitlebar->setBackgroundTransparent(true); //参考设计图 setFixedSize(600, 700); const int nStretch = 1; //title bottom QHBoxLayout *pTitleLayout = new QHBoxLayout; pTitleLayout->setContentsMargins(0, 0, 0, 0); pTitleLayout->setSpacing(0); pTitleLayout->addStretch(nStretch); { QLabel *pDurationLabel = new QLabel(tr("Duration: %1").arg(strMovieInfo.durationStr()), this); pTitleLayout->addWidget(pDurationLabel); pTitleLayout->addStretch(nStretch); } { QLabel *pResolutionLabel = new QLabel(tr("Resolution: %1").arg(strMovieInfo.resolution), this); pTitleLayout->addWidget(pResolutionLabel); pTitleLayout->addStretch(nStretch); } { QLabel *pSizeLabel = new QLabel(tr("Size: %1").arg(strMovieInfo.sizeStr()), this); pTitleLayout->addWidget(pSizeLabel); pTitleLayout->addStretch(nStretch); } // main content QVBoxLayout *pMainContent = new QVBoxLayout; pMainContent->setContentsMargins(0, 10, 0, 0); m_pGrid = new QGridLayout(); //参考设计图 m_pGrid->setHorizontalSpacing(12); m_pGrid->setVerticalSpacing(15); m_pGrid->setContentsMargins(0, 0, 0, 0); pMainContent->addLayout(m_pGrid); m_pGrid->setColumnMinimumWidth(0, 160); m_pGrid->setColumnMinimumWidth(1, 160); m_pGrid->setColumnMinimumWidth(2, 160); QHBoxLayout *pButtonContent = new QHBoxLayout; pButtonContent->setContentsMargins(0, 13, 0, 0); pButtonContent->addStretch(1); m_pSaveBtn = new QPushButton(tr("Save")); m_pSaveBtn->setObjectName("SaveBtn"); connect(m_pSaveBtn, &QPushButton::clicked, this, &BurstScreenshotsDialog::savePoster); m_pSaveBtn->setFixedSize(70, 30); m_pSaveBtn->setDefault(true); pButtonContent->addWidget(m_pSaveBtn); pMainContent->addLayout(pButtonContent); QVBoxLayout *pMainlayout = new QVBoxLayout; pMainlayout->setContentsMargins(10, 0, 10, 15); pMainlayout->setSpacing(0); pMainlayout->addWidget(m_pTitlebar); pMainlayout->addLayout(pTitleLayout); pMainlayout->addLayout(pMainContent); setLayout(pMainlayout); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_pTitlebar->setFixedSize(389, 33); setFixedSize(396, 462); m_pGrid->setHorizontalSpacing(8); m_pGrid->setVerticalSpacing(10); m_pSaveBtn->setFixedSize(46, 20); pMainlayout->setContentsMargins(7, 0, 7, 10); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_pTitlebar->setFixedSize(590, 50); setFixedSize(600, 700); m_pGrid->setHorizontalSpacing(12); m_pGrid->setVerticalSpacing(15); m_pSaveBtn->setFixedSize(70, 30); layout()->setContentsMargins(10, 0, 10, 15); } else { m_pTitlebar->setFixedSize(389, 33); setFixedSize(396, 462); m_pGrid->setHorizontalSpacing(8); m_pGrid->setVerticalSpacing(10); m_pSaveBtn->setFixedSize(46, 20); layout()->setContentsMargins(7, 0, 7, 10); } this->moveToCenter(); }); #endif } /** * @brief updateWithFrames 更新截图图像 * @param frames 截图图像 */ void BurstScreenshotsDialog::updateWithFrames(const QList> &frames) { qreal devicePixelRatio = qApp->devicePixelRatio(); //参考设计图 QSize size(static_cast(178 * devicePixelRatio), static_cast(100 * devicePixelRatio)); int nCount = 0; QImage scaled; for (auto frame : frames) { QImage image = frame.first; ThumbnailFrame *pThumbnailFrame = new ThumbnailFrame(this); int nRowCount = nCount / 3; int nColumn = nCount % 3; QPixmap pixmap = QPixmap::fromImage(image); pixmap = pixmap.scaled(size.width() - 2, size.height() - 2, Qt::KeepAspectRatio, Qt::SmoothTransformation); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { pThumbnailFrame->setFixedSize(118, 67); pixmap = pixmap.scaled(pixmap.width() * 0.66, pixmap.height() * 0.66, Qt::KeepAspectRatio, Qt::SmoothTransformation); pixmap = utils::MakeRoundedPixmap(size*0.66, pixmap, 2, 2, frame.second); } else { pixmap = utils::MakeRoundedPixmap(size, pixmap, 2, 2, frame.second); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, pThumbnailFrame, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { pThumbnailFrame->setFixedSize(178, 100); auto pixmap = pThumbnailFrame->pixmap(); auto new_pix = pixmap->scaled(178, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation); // new_pix = utils::MakeRoundedPixmap(QSize(180, 102), new_pix, 2, 2, frame.second); pThumbnailFrame->setPixmap(new_pix); } else { pThumbnailFrame->setFixedSize(118, 67); auto pixmap = pThumbnailFrame->pixmap(); auto new_pix = pixmap->scaled(118, 67, Qt::KeepAspectRatio, Qt::SmoothTransformation); // new_pix = utils::MakeRoundedPixmap(QSize(120, 69), new_pix, 2, 2, frame.second); pThumbnailFrame->setPixmap(new_pix); } }); #else pixmap = utils::MakeRoundedPixmap(size, pixmap, 2, 2, frame.second); #endif pixmap.setDevicePixelRatio(devicePixelRatio); pThumbnailFrame->setAlignment(Qt::AlignCenter); pThumbnailFrame->setPixmap(pixmap); m_pGrid->addWidget(pThumbnailFrame, nRowCount, nColumn); nCount++; } } /** * @brief exec 返回执行函数的标识符 * @return 执行函数的标识符 */ int BurstScreenshotsDialog::exec() { return DAbstractDialog::exec(); } /** * @brief savePoster 保存截图 */ void BurstScreenshotsDialog::savePoster() { //参考设计图 m_pTitlebar->setFixedWidth(610); QPixmap img = this->grab(rect().marginsRemoved(QMargins(10, 0, 10, 45))); m_sPosterPath = Settings::get().screenshotNameTemplate(); img.save(m_sPosterPath); DAbstractDialog::accept(); } /** * @brief savedPosterPath 保存截图路径 * @return 返回设置的截图保存路径 */ QString BurstScreenshotsDialog::savedPosterPath() { return m_sPosterPath; } } deepin-movie-reborn-5.15.10/src/widgets/burst_screenshots_dialog.h000066400000000000000000000043471473342170300252510ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为影院播放截图相关。 */ #ifndef _DMR_BURST_SCREENSHOTS_DIALOG_H #define _DMR_BURST_SCREENSHOTS_DIALOG_H #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { class PlayItemInfo; /** * @brief The ThumbnailFrame class * 单个截图图像窗口 */ class ThumbnailFrame: public QLabel { Q_OBJECT public: /** * @brief ThumbnailFrame 构造函数 * @param parent 父窗口 */ explicit ThumbnailFrame(QWidget *parent) : QLabel(parent) { //参考设计图 setFixedSize(178, 100); QGraphicsDropShadowEffect *pGraphicsShadow = new QGraphicsDropShadowEffect(this); pGraphicsShadow->setColor(QColor(0, 0, 0, 255 * 2 / 10)); //参考设计图 pGraphicsShadow->setOffset(0, 2); //参考设计图 pGraphicsShadow->setBlurRadius(4); setGraphicsEffect(pGraphicsShadow); } }; /** * @brief The BurstScreenshotsDialog class * 截图窗口 */ class BurstScreenshotsDialog: public DAbstractDialog { Q_OBJECT public: /** * @brief BurstScreenshotsDialog 构造函数 * @param strPlayItemInfo 播放项信息 */ explicit BurstScreenshotsDialog(const PlayItemInfo &strPlayItemInfo); /** * @brief updateWithFrames 更新截图图像 * @param frames 截图图像 */ void updateWithFrames(const QList> &frames); /** * @brief savedPosterPath 保存截图路径 * @return 返回设置的截图保存路径 */ QString savedPosterPath(); public slots: /** * @brief exec 返回执行函数的标识符 * @return 执行函数的标识符 */ int exec() override; /** * @brief savePoster 保存截图 */ void savePoster(); private: QGridLayout *m_pGrid; ///截图窗口布局 QPushButton *m_pSaveBtn; ///截图保存按键 QString m_sPosterPath; ///截图保存路径 DTitlebar *m_pTitlebar; ///截图窗口标题栏 }; } #endif /* ifndef _DMR_BURST_SCREENSHOTS_DIALOG_H */ deepin-movie-reborn-5.15.10/src/widgets/dmr_lineedit.cpp000066400000000000000000000031341473342170300231360ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为打开url时的输入框。 */ #include "dmr_lineedit.h" namespace dmr { /** * @brief LineEdit 构造函数 * @param parent 父窗口 */ LineEdit::LineEdit(QWidget *parent) : QLineEdit(parent) { //参考设计图,dtk默认最大36 setMaximumHeight(36); QIcon icon; icon.addFile(":/resources/icons/input_clear_normal.svg", QSize(), QIcon::Normal); icon.addFile(":/resources/icons/input_clear_press.svg", QSize(), QIcon::Selected); icon.addFile(":/resources/icons/input_clear_hover.svg", QSize(), QIcon::Active); m_pClearAct = new QAction(icon, "", this); connect(m_pClearAct, &QAction::triggered, this, &QLineEdit::clear); connect(this, &QLineEdit::textChanged, this, &LineEdit::slotTextChanged); } /** * @brief showEvent 重载显示事件 * @param pShowEvent 显示事件 */ void LineEdit::showEvent(QShowEvent *pShowEvent) { QLineEdit::showEvent(pShowEvent); } /** * @brief resizeEvent 重载界面大小改变事件 * @param pResizeEvent 界面大小改变事件 */ void LineEdit::resizeEvent(QResizeEvent *pResizeEvent) { QLineEdit::resizeEvent(pResizeEvent); } /** * @brief slotTextChanged 文本变化槽函数 * @param sText 输入框内的文本 */ void LineEdit::slotTextChanged(const QString &sText) { if (sText.isEmpty()) { setClearButtonEnabled(false); } else { setClearButtonEnabled(true); } } } deepin-movie-reborn-5.15.10/src/widgets/dmr_lineedit.h000066400000000000000000000022701473342170300226030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为打开url时的输入框。 */ #pragma once #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief The LineEdit class * 这个类是播放网络视频输入url的输入栏 */ class LineEdit: public QLineEdit { public: /** * @brief LineEdit 构造函数 * @param parent 父窗口 */ explicit LineEdit(QWidget* parent = 0); protected: /** * @brief showEvent 重载显示事件 * @param pShowEvent 显示事件 */ void showEvent(QShowEvent* pShowEvent) override; /** * @brief resizeEvent 重载界面大小改变事件 * @param pResizeEvent 界面大小改变事件 */ void resizeEvent(QResizeEvent* pResizeEvent) override; public slots: /** * @brief slotTextChanged 文本变化槽函数 * @param sText 输入框内的文本 */ void slotTextChanged(const QString & sText); //把lambda表达式改为槽函数,modify by myk private: QAction *m_pClearAct; ///输入框清空按键 }; } deepin-movie-reborn-5.15.10/src/widgets/mircastshowwidget.cpp000066400000000000000000000166311473342170300242540ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是播放音乐时显示的窗口动画 */ #include "mircastshowwidget.h" #include "compositing_manager.h" #include #include #include #include #include #include #include #include #define DEFAULT_BGWIDTH 410 #define DEFAULT_BGHEIGHT 287 #define X_OFFSET 17 #define Y_OFFSET 143 #define DEFAULT_RATION (1.0f*680/1070) MircastShowWidget::MircastShowWidget(QWidget *parent) : QGraphicsView(parent) { if (!dmr::CompositingManager::get().composited()) { winId(); } setAlignment(Qt::AlignCenter); setFrameShape(QFrame::Shape::NoFrame); setMouseTracking(true); m_pScene = new QGraphicsScene; m_pScene->setBackgroundBrush(QBrush(QColor(0, 0, 0))); this->setScene(m_pScene); m_pBgRender = new QSvgRenderer(QString(":/resources/icons/mircast/default_Back.svg")); m_pBgSvgItem = new QGraphicsSvgItem; m_pBgSvgItem->setSharedRenderer(m_pBgRender); m_pBgSvgItem->setCacheMode(QGraphicsItem::NoCache); m_pScene->setSceneRect(m_pBgSvgItem->boundingRect()); //要在设置位置之前,不然动画会跳动 m_pBgSvgItem->setPos((m_pScene->width() - DEFAULT_BGWIDTH) / 2, (m_pScene->height() - DEFAULT_BGHEIGHT) / 2); m_pProSvgItem = new QGraphicsPixmapItem; QPixmap pixmap(QString(":/resources/icons/mircast/prospect.png")); m_pProSvgItem->setPixmap(pixmap.scaled(376, 100)); m_pProSvgItem->setPos(m_pBgSvgItem->pos().x() + X_OFFSET, m_pBgSvgItem->pos().y() + Y_OFFSET); ExitButton *exitBtn = new ExitButton(); exitBtn->setToolTip(tr("Exit Miracast")); exitBtn->move((m_pScene->width() - exitBtn->width()) / 2, (m_pScene->height() - exitBtn->height()) / 2); exitBtn->show(); connect(exitBtn, &ExitButton::exitMircast, this, &MircastShowWidget::exitMircast); m_deviceName = new QGraphicsTextItem; m_deviceName->setDefaultTextColor(Qt::white); m_deviceName->setTextWidth(DEFAULT_BGWIDTH); QTextBlockFormat format; format.setAlignment(Qt::AlignCenter); QTextCursor cursor = m_deviceName->textCursor(); cursor.mergeBlockFormat(format); m_deviceName->setTextCursor(cursor); m_deviceName->setPos(m_pBgSvgItem->pos().x(), m_pBgSvgItem->pos().y() - 20); m_promptInformation = new QGraphicsTextItem; m_promptInformation->setDefaultTextColor(QColor(255, 255, 255, 153)); m_promptInformation->setPlainText(tr("Projecting... \nPlease do not exit the Movie app during the process.")); m_promptInformation->setTextWidth(DEFAULT_BGWIDTH); QFont font = m_deviceName->font(); font.setPointSize(10); QTextBlockFormat infoFormat; infoFormat.setAlignment(Qt::AlignCenter); QTextCursor infoCursor = m_promptInformation->textCursor(); infoCursor.mergeBlockFormat(infoFormat); m_promptInformation->setFont(font); m_promptInformation->setTextCursor(infoCursor); m_promptInformation->setPos(m_pBgSvgItem->pos().x(), m_pBgSvgItem->pos().y() + DEFAULT_BGHEIGHT + 10); m_pScene->addItem(m_pBgSvgItem); m_pScene->addItem(m_pProSvgItem); m_pScene->addItem(m_deviceName); m_pScene->addItem(m_promptInformation); m_pScene->addWidget(exitBtn); } MircastShowWidget::~MircastShowWidget() { } /** * @brief setDeviceName 设置投屏设备名称 */ void MircastShowWidget::setDeviceName(QString name) { QString display = QString(tr("Display device"))+QString(": %1").arg(customizeText(name)); m_deviceName->setPlainText(display); QTextBlockFormat format; format.setAlignment(Qt::AlignCenter); QTextCursor cursor = m_deviceName->textCursor(); cursor.mergeBlockFormat(format); m_deviceName->setTextCursor(cursor); } void MircastShowWidget::updateView() { qreal fRatio = 1.0; QRect rectDesktop; int nWidth = 0; int nHeight = 0; nWidth = rect().width(); nHeight = rect().height(); rectDesktop = qApp->desktop()->availableGeometry(this); //根据比例缩放背景 if (1.0f * nHeight / nWidth < DEFAULT_RATION) { nWidth = static_cast(nHeight / DEFAULT_RATION); fRatio = nWidth * 2.0 / rectDesktop.width(); } else { nHeight = static_cast(nWidth * DEFAULT_RATION); fRatio = nHeight * 2.0 / rectDesktop.height(); } m_pBgSvgItem->setScale(fRatio); m_pProSvgItem->setScale(fRatio); m_pBgSvgItem->setPos((m_pScene->width() - DEFAULT_BGWIDTH * fRatio) / 2, (m_pScene->height() - DEFAULT_BGHEIGHT * fRatio) / 2); m_pProSvgItem->setPos(m_pBgSvgItem->pos().x() + (X_OFFSET * fRatio), m_pBgSvgItem->pos().y() + (Y_OFFSET * fRatio)); m_deviceName->setTextWidth(DEFAULT_BGWIDTH * fRatio); m_deviceName->setPos(m_pBgSvgItem->pos().x(), m_pBgSvgItem->pos().y() - 20); m_promptInformation->setTextWidth(DEFAULT_BGWIDTH * fRatio); m_promptInformation->setPos(m_pBgSvgItem->pos().x(), (DEFAULT_BGHEIGHT + 10) * fRatio + m_pBgSvgItem->pos().y()); viewport()->update(); } void MircastShowWidget::mouseMoveEvent(QMouseEvent *pEvent) { pEvent->ignore(); QGraphicsView::mouseMoveEvent(pEvent); } /** * @brief customizeText 设置投屏设备显示名称 * @param name 设备名 */ QString MircastShowWidget::customizeText(QString name) { return name.length() > 20 ? name.left(20) + QString("...") : name; } ExitButton::ExitButton(QWidget *parent) : QWidget(parent) { m_state = ButtonState::Normal; setFixedSize(62, 62); setAttribute(Qt::WA_TranslucentBackground, true); m_svgWidget = new QSvgWidget(this); m_svgWidget->setFixedSize(32, 32); m_svgWidget->load(QString(":/resources/icons/mircast/icon-exit normal.svg")); m_svgWidget->move((rect().width() - m_svgWidget->width()) / 2, (rect().height() - m_svgWidget->height()) / 2); m_svgWidget->show(); } void ExitButton::enterEvent(QEvent *pEvent) { Q_UNUSED(pEvent); m_state = Hover; update(); } void ExitButton::leaveEvent(QEvent *pEvent) { Q_UNUSED(pEvent); m_state = Normal; update(); } void ExitButton::mousePressEvent(QMouseEvent *pEvent) { Q_UNUSED(pEvent); m_state = Press; m_svgWidget->load(QString(":/resources/icons/mircast/icon-exit pressed.svg")); update(); } void ExitButton::mouseReleaseEvent(QMouseEvent *pEvent) { Q_UNUSED(pEvent); emit exitMircast(); m_state = Normal; m_svgWidget->load(QString(":/resources/icons/mircast/icon-exit normal.svg")); update(); } void ExitButton::paintEvent(QPaintEvent *pEvent) { Q_UNUSED(pEvent); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QPainterPath path; path.addEllipse(rect()); QLinearGradient linearGradient(0, rect().width() / 2, rect().height(), rect().width() / 2); switch (m_state) { case ButtonState::Normal: linearGradient.setColorAt(0, QColor(72, 72, 72)); linearGradient.setColorAt(0, QColor(65, 65, 65)); break; case ButtonState::Hover: linearGradient.setColorAt(0, QColor(114, 114, 114)); linearGradient.setColorAt(0, QColor(83, 83, 83)); break; case ButtonState::Press: linearGradient.setColorAt(0, QColor(36, 36, 36)); linearGradient.setColorAt(0, QColor(40, 40, 40)); break; } QBrush brush(linearGradient); painter.fillPath(path, brush); } deepin-movie-reborn-5.15.10/src/widgets/mircastshowwidget.h000066400000000000000000000034461473342170300237210ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是播放音乐时显示的窗口动画 */ #ifndef MIRCASTSHOWWIDGET_H #define MIRCASTSHOWWIDGET_H #include #include #include DWIDGET_USE_NAMESPACE class QSvgWidget; class ExitButton: public QWidget { Q_OBJECT public: enum ButtonState { Normal, Hover, Press, }; public: ExitButton(QWidget *parent = nullptr); signals: void exitMircast(); protected: void enterEvent(QEvent *pEvent) override; void leaveEvent(QEvent *pEvent) override; void mousePressEvent(QMouseEvent *pEvent) override; void mouseReleaseEvent(QMouseEvent *pEvent) override; void paintEvent(QPaintEvent *pEvent) override; private: QSvgWidget *m_svgWidget;//投屏退出图标窗口 ButtonState m_state; //按钮状态 }; class MircastShowWidget: public QGraphicsView { Q_OBJECT public: explicit MircastShowWidget(QWidget *parent = nullptr); ~MircastShowWidget(); /** * @brief setDeviceName 设置投屏设备名称 */ void setDeviceName(QString); /** * @brief updateView 更新图元位置 */ void updateView(); protected: void mouseMoveEvent(QMouseEvent* pEvent) override; signals: void exitMircast(); private: /** * @brief customizeText 设置投屏设备显示名称 * @param name 设备名 */ QString customizeText(QString name); private: QGraphicsSvgItem *m_pBgSvgItem; QGraphicsPixmapItem *m_pProSvgItem; QGraphicsScene *m_pScene; QGraphicsTextItem *m_deviceName; QGraphicsTextItem *m_promptInformation; QSvgRenderer *m_pBgRender; ///背景render }; #endif //MIRCASTSHOWWIDGET_H deepin-movie-reborn-5.15.10/src/widgets/mircastwidget.cpp000066400000000000000000000730021473342170300233460ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "mircastwidget.h" #include "player_engine.h" #include "dlna/cssdpsearch.h" #include "dlna/getdlnaxmlvalue.h" #include "dlna/dlnacontentserver.h" #include "compositing_manager.h" #include "../accessibility/ac-deepin-movie-define.h" #include #include #include #include #include #include #define MIRCASTWIDTH 240 #define MIRCASTHEIGHT 188 #define REFRESHTIME 20000 #define MAXMIRCAST 5 #define MIRCASTTIMEOUT 1000 #define ROTATE_VALUE 14.4 #define TEXT_WIDTH 170 using namespace dmr; MircastWidget::MircastWidget(QWidget *mainWindow, void *pEngine) : DFloatingWidget(mainWindow), m_pEngine(pEngine) { setAttribute(Qt::WA_NoMousePropagation, true);//鼠标事件不进入父窗口 if(!CompositingManager::get().composited()) setAttribute(Qt::WA_NativeWindow); qRegisterMetaType("DlnaPositionInfo"); setFixedSize(MIRCASTWIDTH + 14, MIRCASTHEIGHT + 12); setFramRadius(8); m_bIsToggling = false; m_mircastState = Idel; m_nPlayStatus = MircastWidget::NoState; m_attempts = 0; m_connectTimeout = 0; m_nCurDuration = -1; m_nCurAbsTime = -1; m_ControlURLPro = ""; m_URLAddrPro = ""; m_sLocalUrl = ""; m_searchTime.setSingleShot(true); connect(&m_searchTime, &QTimer::timeout, this, &MircastWidget::slotSearchTimeout); connect(&m_mircastTimeOut, &QTimer::timeout, this, &MircastWidget::slotMircastTimeout); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(1, 0, 0, 0); mainLayout->setSpacing(0); setLayout(mainLayout); setContentsMargins(0, 0, 0, 0); QWidget *topWdiget = new QWidget(this); topWdiget->setFixedHeight(40); mainLayout->addWidget(topWdiget); QHBoxLayout *topLayout = new QHBoxLayout; topLayout->setContentsMargins(20, 8, 20, 0); topWdiget->setLayout(topLayout); DLabel *projet = new DLabel(topWdiget); projet->setText(tr("Project to")); topLayout->addWidget(projet); m_refreshBtn = new RefreButtonWidget(topWdiget); topLayout->addWidget(m_refreshBtn); connect(m_refreshBtn, &RefreButtonWidget::buttonClicked, this, &MircastWidget::slotRefreshBtnClicked); QFrame *spliter = new QFrame(this); spliter->setAutoFillBackground(true); spliter->setPalette(QPalette(QColor(0, 0, 0, 13))); spliter->setFixedSize(MIRCASTWIDTH, 2); mainLayout->addWidget(spliter); m_hintWidget = new QWidget(this); mainLayout->addWidget(m_hintWidget); m_hintWidget->setFixedSize(MIRCASTWIDTH, MIRCASTHEIGHT - 42); m_hintWidget->setContentsMargins(0, 0, 0, 0); QVBoxLayout *hintLayout = new QVBoxLayout(m_hintWidget); hintLayout->setContentsMargins(0, 0, 0, 0); hintLayout->setSpacing(0); hintLayout->setAlignment(Qt::AlignCenter); m_hintWidget->setLayout(hintLayout); m_hintWidget->hide(); m_hintLabel = new DLabel(this); m_hintLabel->setAlignment(Qt::AlignCenter); m_hintLabel->setFixedSize(MIRCASTWIDTH, MIRCASTHEIGHT - 42); m_hintLabel->setContentsMargins(20, 0, 20, 0); m_hintLabel->setWordWrap(true); hintLayout->addWidget(m_hintLabel); m_hintLabel->show(); m_listWidget = new ListWidget; m_mircastArea = new QScrollArea; m_mircastArea->setFixedSize(MIRCASTWIDTH, 34 * 4); m_mircastArea->setFrameShape(QFrame::NoFrame); m_mircastArea->setAttribute(Qt::WA_TranslucentBackground, true); m_mircastArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_mircastArea->setWidget(m_listWidget); mainLayout->addWidget(m_mircastArea); m_mircastArea->hide(); connect(m_listWidget, &ListWidget::connectDevice, this, &MircastWidget::slotConnectDevice); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_refreshBtn->setFixedSize(16, 16); topWdiget->setFixedHeight(26); topLayout->setContentsMargins(20, 4, 20, 0); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_refreshBtn->setFixedSize(24, 24); } else { m_refreshBtn->setFixedSize(16, 16); } }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, topWdiget, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { topWdiget->setFixedHeight(40); topWdiget->layout()->setContentsMargins(20, 8, 20, 0); } else { topWdiget->setFixedHeight(26); topWdiget->layout()->setContentsMargins(20, 4, 20, 0); } }); #endif mainLayout->addStretch(); m_dlnaContentServer = nullptr; } /** * @brief getMircastState 获取投屏连接状态 */ MircastWidget::MircastState MircastWidget::getMircastState() { return m_mircastState; } /** * @brief getMircastPlayState 获取投屏播放状态 */ MircastWidget::MircastPlayState MircastWidget::getMircastPlayState() { return m_nPlayStatus; } /** * @brief playNext 开始投屏 */ void MircastWidget::playNext() { if (m_mircastState != MircastState::Idel) { m_mircastTimeOut.stop(); m_attempts = 0; m_connectTimeout = 0; PlayerEngine *engine =static_cast(m_pEngine); engine->pauseResume(); engine->seekAbsolute(0); // stopDlnaTP(); startDlnaTp(); } } /** * @brief seekMircast 投屏seek * @param nSec seek时间 单位秒 */ void MircastWidget::seekMircast(int nSec) { if(m_mircastState != MircastWidget::Screening) return; int nSeek = m_nCurAbsTime + nSec; if(nSeek < 0) { slotSeekMircast(0); } else if(nSeek > m_nCurDuration) { slotSeekMircast(m_nCurDuration); } else { slotSeekMircast(nSeek); } } /** * @brief togglePopup 工具栏投屏窗口显示与隐藏 */ void MircastWidget::togglePopup() { if (m_bIsToggling) return; if (isVisible()) { hide(); } else { m_bIsToggling = true; show(); raise(); m_refreshBtn->refershStart(); m_bIsToggling = false; } } /** * @brief slotRefreshBtnClicked 投屏窗口刷新按钮 */ void MircastWidget::slotRefreshBtnClicked() { initializeHttpServer(); searchDevices(); update(); } /** * @brief slotSearchTimeout 投屏设备搜索超时 */ void MircastWidget::slotSearchTimeout() { qInfo() << "search timeout!!"; if (m_devicesList.isEmpty()) updateMircastState(SearchState::NoDevices); else updateMircastState(SearchState::ListExhibit); m_refreshBtn->refershTimeout(); update(); } /** * @brief slotMircastTimeout 投屏连接超时 */ void MircastWidget::slotMircastTimeout() { m_pDlnaSoapPost->SoapOperPost(DLNA_GetPositionInfo, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); m_connectTimeout++; if (m_connectTimeout >= MAXMIRCAST) { m_mircastTimeOut.stop(); if (m_mircastState == MircastState::Screening) emit mircastState(MIRCAST_DISCONNECTIONED); else emit mircastState(MIRCAST_CONNECTION_FAILED); } } /** * @brief slotGetPositionInfo 获取投屏播放视频信息 */ void MircastWidget::slotGetPositionInfo(DlnaPositionInfo info) { if (m_mircastState == MircastState::Idel) return; //TODO:测试电视退出投屏后是否会有返回 m_connectTimeout = 0; PlayerEngine *engine =static_cast(m_pEngine); if (engine->state() == PlayerEngine::CoreState::Idle) { emit mircastState(MIRCAST_EXIT); slotExitMircast(); return; } PlaylistModel *model = engine->getplaylist(); PlaylistModel::PlayMode playMode = model->playMode(); if (m_mircastState == MircastState::Screening) { int absTime = timeConversion(info.sAbsTime); int duration = timeConversion(info.sTrackDuration); m_sTrackURI = info.sTrackURI; updateTime(absTime); if (info.sAbsTime == info.sTrackDuration || (info.sAbsTime.toUpper() == "NOT_IMPLEMENTED" && duration != 0)) { if (playMode == PlaylistModel::SinglePlay || (playMode == PlaylistModel::OrderPlay && model->current() == (model->count() - 1))) { emit mircastState(MIRCAST_EXIT); slotExitMircast(); } else if (playMode == PlaylistModel::SingleLoop) { startDlnaTp(); } else { model->playNext(true); m_mircastState = Connecting; } m_attempts = 0; } else if (info.sAbsTime.toUpper() == "NOT_IMPLEMENTED" && duration == 0) { emit mircastState(MIRCAST_EXIT); slotExitMircast(); } else if (m_sTrackURI != m_sLocalUrl) { emit mircastState(MIRCAST_EXIT); slotExitMircast(); } m_nCurAbsTime = absTime; m_nCurDuration = timeConversion(info.sTrackDuration); return; } int duration = timeConversion(info.sTrackDuration); int absTime = timeConversion(info.sAbsTime); if (duration > 0 && absTime > 0) { m_mircastState = MircastState::Screening; if (m_connectDevice.deviceState == Connecting) { m_connectDevice.deviceState = MircastState::Screening; emit mircastState(MIRCAST_SUCCESSED, m_connectDevice.miracastDevice.name); } ItemWidget *item = m_listWidget->currentItemWidget(); if(item) item->setState(ItemWidget::Checked); m_attempts = 0; } else { if (duration > 0 && m_connectDevice.deviceState == Connecting) { emit mircastState(MIRCAST_SUCCESSED, m_connectDevice.miracastDevice.name); } qWarning() << "miracast failed!"; if (m_attempts >= MAXMIRCAST * 10) { qWarning() << "attempts time out! try next."; m_attempts = 0; m_mircastTimeOut.stop(); if (playMode == PlaylistModel::SinglePlay || (playMode == PlaylistModel::OrderPlay && model->current() == (model->count() - 1))) { emit mircastState(MIRCAST_EXIT); slotExitMircast(); } else if (playMode == PlaylistModel::SingleLoop) { startDlnaTp(); } else { emit mircastState(MIRCAST_CONNECTION_FAILED); model->playNext(true); m_attempts = 0; m_mircastState = Connecting; } } else { qInfo() << "miracast failed! curret attempts:" << m_attempts << "Max:" << MAXMIRCAST * 10; m_attempts++; m_mircastState = Connecting; } } } /** * @brief slotConnectDevice 连接投屏设备 */ void MircastWidget::slotConnectDevice(ItemWidget *item) { QString newURLAddrPro = item->property(urlAddrPro).toString(); if (newURLAddrPro == m_URLAddrPro && m_mircastState == MircastState::Screening) return; PlayerEngine *engine =static_cast(m_pEngine); if (engine->state() == PlayerEngine::CoreState::Idle) { return; } m_connectDevice.miracastDevice = item->getDevice(); m_connectDevice.deviceState = MircastState::Connecting; m_mircastState = Connecting; item->setState(ItemWidget::Loading); stopDlnaTP(); startDlnaTp(item); } /** * @brief searchDevices 刷新查找设备 */ void MircastWidget::searchDevices() { qInfo() << __func__ << "start search Devices!"; m_devicesList.clear(); m_listWidget->clear(); m_searchTime.start(REFRESHTIME); m_search->SsdpSearch(); updateMircastState(SearchState::Searching); } /** * @brief updateMircastState 更新投屏窗口状态 */ void MircastWidget::updateMircastState(MircastWidget::SearchState state) { switch (state) { case Searching: if (!m_devicesList.isEmpty()) return; m_hintLabel->setText(tr("Searching for devices...")); m_mircastArea->hide(); m_hintWidget->show(); break; case ListExhibit: m_hintWidget->hide(); m_mircastArea->show(); break; case NoDevices: m_hintLabel->setText(tr("No Miracast display devices were found. Please connect the device and your computer to the same WLAN network.")); m_mircastArea->hide(); break; } } /** * @brief createListeItem 投屏seek * @param data 投屏设备信息 */ ItemWidget * MircastWidget::createListeItem(MiracastDevice device, const QByteArray &data, const QNetworkReply *reply) { ItemWidget *item = m_listWidget->createListeItem(device, data, reply); QString itemAdd = item->property(urlAddrPro).toString(); if (itemAdd == m_URLAddrPro && m_mircastState == MircastState::Screening) item->setState(ItemWidget::Checked); return item; } /** * @brief slotReadyRead 读取投屏设备信息 */ void MircastWidget::slotReadyRead() { QNetworkReply *reply = (QNetworkReply *)sender(); if(!reply) return; if(reply->error() != QNetworkReply::NoError) { qInfo() << "Error:" << QString::number(reply->error()); return; } QByteArray data = reply->readAll().replace("\r\n", "").replace("\\", ""); qInfo() << "xml data:" << data; GetDlnaXmlValue dlnaxml(data); QString sName = dlnaxml.getValueByPath("device/friendlyName"); QString uuid = dlnaxml.getValueByPath("device/UDN"); QStringList uuidList = uuid.split(":"); MiracastDevice device; device.name = sName; device.uuid = uuidList.last(); foreach (MiracastDevice mirDevice, m_devicesList) { if (device.uuid == mirDevice.uuid) return; } m_devicesList.append(device); createListeItem(device, data, reply); updateMircastState(SearchState::ListExhibit); } /** * @brief slotExitMircast 退出投屏 */ void MircastWidget::slotExitMircast() { qInfo() << __func__ << "Exit Mircast."; if (m_mircastState == Idel) return; m_mircastState = Idel; m_connectDevice.deviceState = Idel; m_mircastTimeOut.stop(); m_connectTimeout = 0; m_listWidget->setItemWidgetStatus(m_listWidget->selectedItemWidget(), ItemWidget::Normal); stopDlnaTP(); m_URLAddrPro.clear(); emit mircastState(1, "normal"); // emit closeServer(); } /** * @brief slotSeekMircast 跳转投屏进度 */ void MircastWidget::slotSeekMircast(int seek) { seekDlnaTp(seek); } /** * @brief slotPauseDlnaTp 投屏视频暂停与恢复播放 */ void MircastWidget::slotPauseDlnaTp() { if(m_mircastState != MircastWidget::Screening) return; if(m_nPlayStatus == MircastWidget::Play) { pauseDlnaTp(); } else if(m_nPlayStatus == MircastWidget::Pause) { playDlnaTp(); } } /** * @brief initializeHttpServer 初始化http Sever */ void MircastWidget::initializeHttpServer(int port) { if(!m_dlnaContentServer) { m_search = new CSSDPSearch(this); m_pDlnaSoapPost = new CDlnaSoapPost(this); connect(m_pDlnaSoapPost, &CDlnaSoapPost::sigGetPostionInfo, this, &MircastWidget::slotGetPositionInfo, Qt::QueuedConnection); QList lstInfo = QNetworkInterface::allAddresses(); QString sLocalIp; foreach(QHostAddress address, lstInfo) { if(address.protocol() == QAbstractSocket::IPv4Protocol && !address.toString().trimmed().contains("127.0.")) { sLocalIp = address.toString().trimmed(); break; } } m_dlnaContentServer = new DlnaContentServer(NULL, port); connect(this, &MircastWidget::closeServer, m_dlnaContentServer, &DlnaContentServer::closeServer); m_dlnaContentServer->setBaseUrl(QString("http://%1:%2/").arg(sLocalIp, QString::number(port))); } } /** * @brief startDlnaTp 初始化http Sever */ void MircastWidget::startDlnaTp(ItemWidget *item) { if (item != nullptr) { m_ControlURLPro = item->property(controlURLPro).toString(); m_URLAddrPro = item->property(urlAddrPro).toString(); } if(!m_dlnaContentServer) { qInfo() << "note: please Create httpServer!"; return; } else { dmr::PlayerEngine *pEngine = static_cast(m_pEngine); if(pEngine && pEngine->playlist().currentInfo().url.isLocalFile()) { m_dlnaContentServer->setDlnaFileName(pEngine->playlist().currentInfo().url.toLocalFile()); m_sLocalUrl = m_dlnaContentServer->getBaseUrl() + QFileInfo(pEngine->playlist().currentInfo().url.toLocalFile()).fileName().toLatin1(); } else { m_sLocalUrl = pEngine->playlist().currentInfo().url.toString(); } m_isStartHttpServer = m_dlnaContentServer->getIsStartHttpServer(); } if(!m_isStartHttpServer) { qInfo() << "note: please start httpServer!"; return; } // if(btn->text() != "Stop") { m_pDlnaSoapPost->SoapOperPost(DLNA_Stop, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); m_pDlnaSoapPost->SoapOperPost(DLNA_SetAVTransportURI, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); // btn->setText("Stop"); // } else { // m_pDlnaSoapPost->SoapOperPost(DLNA_Stop, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); // btn->setText(btn->property(friendlyNamePro).toString()); // } m_mircastTimeOut.start(MIRCASTTIMEOUT); m_nPlayStatus = MircastWidget::Play; m_nCurDuration = -1; m_nCurAbsTime = -1; emit updatePlayStatus(); } /** * @brief startDlnaTp 时间字符串装换为int秒 时间格式"00:00:00" */ int MircastWidget::timeConversion(QString time) { QStringList timeList = time.split(":"); if (timeList.size() == 3) { int realTime = 0; realTime += timeList.at(0).toInt() * 60 * 60; realTime += timeList.at(1).toInt() * 60; realTime += timeList.at(2).toInt(); return realTime; } return 0; } /** * @brief slotConnectDevice 投屏播放视频暂停 */ void MircastWidget::pauseDlnaTp() { m_nPlayStatus = MircastWidget::Pause; m_pDlnaSoapPost->SoapOperPost(DLNA_Pause, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); emit updatePlayStatus(); } /** * @brief slotConnectDevice 投屏播放视频播放 */ void MircastWidget::playDlnaTp() { m_nPlayStatus = MircastWidget::Play; m_pDlnaSoapPost->SoapOperPost(DLNA_Play, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); emit updatePlayStatus(); } /** * @brief slotConnectDevice 投屏播放视频seek */ void MircastWidget::seekDlnaTp(int nSeek) { m_pDlnaSoapPost->SoapOperPost(DLNA_Seek, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl, nSeek); } /** * @brief stopDlnaTP 停止投屏播放视频 */ void MircastWidget::stopDlnaTP() { m_nPlayStatus = MircastWidget::Stop; if (m_ControlURLPro.isNull() || m_ControlURLPro.isEmpty()) return; if(m_sTrackURI == m_sLocalUrl)//当前播放自身投屏的视频才启动停止投屏操作 m_pDlnaSoapPost->SoapOperPost(DLNA_Stop, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); m_ControlURLPro.clear(); m_URLAddrPro.clear(); m_sLocalUrl.clear(); emit updatePlayStatus(); } /** * @brief getPosInfoDlnaTp 获取投屏播放视频信息 */ void MircastWidget::getPosInfoDlnaTp() { m_pDlnaSoapPost->SoapOperPost(DLNA_GetPositionInfo, m_ControlURLPro, m_URLAddrPro, m_sLocalUrl); } RefreButtonWidget::RefreButtonWidget(QWidget *parent) : QWidget(parent) { setFixedSize(24, 24); QHBoxLayout *mainLayout = new QHBoxLayout(this); mainLayout->setContentsMargins(0, 0, 0, 0); setLayout(mainLayout); m_spinner = new DSpinner; m_spinner->setFixedSize(size()); mainLayout->addWidget(m_spinner); m_refreBtn = new DLabel; m_refreBtn->setPixmap(QIcon::fromTheme("dcc_update").pixmap(size())); m_refreBtn->setFixedSize(size()); m_refreBtn->hide(); mainLayout->addWidget(m_refreBtn); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_spinner->setFixedSize(16, 16); m_refreBtn->setFixedSize(16, 16); m_refreBtn->setPixmap(QIcon::fromTheme("dcc_update").pixmap(QSize(16, 16))); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_spinner->setFixedSize(24, 24); m_refreBtn->setFixedSize(24, 24); m_refreBtn->setPixmap(QIcon::fromTheme("dcc_update").pixmap(QSize(24, 24))); } else { m_spinner->setFixedSize(16, 16); m_refreBtn->setFixedSize(16, 16); m_refreBtn->setPixmap(QIcon::fromTheme("dcc_update").pixmap(QSize(16, 16))); } }); #endif } void RefreButtonWidget::refershTimeout() { m_spinner->stop(); m_spinner->hide(); m_refreBtn->show(); } void RefreButtonWidget::refershStart() { m_spinner->start(); m_spinner->show(); m_refreBtn->hide(); emit buttonClicked(); } void RefreButtonWidget::mouseReleaseEvent(QMouseEvent *pEvent) { if (m_spinner->isVisible()) return; refershStart(); } ListWidget::ListWidget(QWidget *parent) :QWidget (parent) { setContentsMargins(0, 0, 0, 0); setFixedWidth(MIRCASTWIDTH); QVBoxLayout *listLayout = new QVBoxLayout(this); setLayout(listLayout); listLayout->setContentsMargins(0, 0, 0, 0); listLayout->setSpacing(0); m_currentWidget = nullptr; m_lastSelectedWidget = nullptr; } int ListWidget::count() { return m_items.size(); } void ListWidget::clear() { m_currentWidget = nullptr; m_lastSelectedWidget = nullptr; foreach (ItemWidget *item, m_items) { m_items.removeOne(item); disconnect(item, &ItemWidget::selected, this, &ListWidget::slotSelectItem); item->deleteLater(); item = nullptr; } } ItemWidget* ListWidget::createListeItem(MiracastDevice device, const QByteArray &data, const QNetworkReply *reply) { ItemWidget *itemWidget = new ItemWidget(device, data, reply); connect(itemWidget, &ItemWidget::selected, this, &ListWidget::slotSelectItem); connect(itemWidget, &ItemWidget::connecting, this, &ListWidget::slotsConnectingDevice); m_items.append(itemWidget); layout()->addWidget(itemWidget); resize(MIRCASTWIDTH, count() * 34); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { resize(MIRCASTWIDTH, count() * 25); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { resize(MIRCASTWIDTH, count() * 34); } else { resize(MIRCASTWIDTH, count() * 25); } update(); }); #endif return itemWidget; } int ListWidget::currentItemIndex() { if (!m_currentWidget) return -1; return m_items.indexOf(m_currentWidget); } ItemWidget *ListWidget::currentItemWidget() { return m_currentWidget; } QList ListWidget::selectedItemWidget() { QList itemList; foreach (ItemWidget *item, m_items) { if (item->state() != ItemWidget::Normal) itemList.append(item); } return itemList; } void ListWidget::setItemWidgetStatus(QList lstItem, ItemWidget::ConnectState nState) { foreach (ItemWidget *item, lstItem) { item->setState(nState); } } void ListWidget::slotSelectItem() { ItemWidget *senderItem = (ItemWidget*)sender(); if (senderItem) { m_currentWidget = senderItem; foreach (ItemWidget *item, m_items) { if (item != senderItem) item->clearSelect(); } update(); } } void ListWidget::slotsConnectingDevice() { ItemWidget *connectItem = (ItemWidget*)sender(); if (!connectItem) return; if (m_lastSelectedWidget) { m_lastSelectedWidget->setState(ItemWidget::Normal); } m_lastSelectedWidget = connectItem; emit connectDevice(connectItem); } ItemWidget::ItemWidget(MiracastDevice device, const QByteArray &data, const QNetworkReply *reply, QWidget *parent) :m_device(device), m_data(data), QWidget (parent) { m_selected = false; m_hover = false; m_rotate = 0.0; m_normalLoadIcon = QIcon(":/resources/icons/mircast/spinner.svg"); m_selectLoadIcon = QIcon(":/resources/icons/mircast/spinner_White.svg"); connect(&m_rotateTime, &QTimer::timeout, [=](){ m_rotate += ROTATE_VALUE; }); setToolTip(m_device.name); setFixedWidth(MIRCASTWIDTH); setAttribute(Qt::WA_TranslucentBackground, true); m_displayName = convertDisplay(); GetDlnaXmlValue dlnaxml(m_data); QString sName = dlnaxml.getValueByPath("device/friendlyName"); QString urlAddrProValue = ""; if(reply) urlAddrProValue = reply->property(urlAddrPro).toString(); setProperty(urlAddrPro, urlAddrProValue); QString strControlURL = dlnaxml.getValueByPathValue("device/serviceList", "serviceType=urn:schemas-upnp-org:service:AVTransport:1", "controlURL"); if(!strControlURL.startsWith("/")) { setProperty(controlURLPro, urlAddrProValue + "/" +strControlURL); } else { setProperty(controlURLPro, urlAddrProValue +strControlURL); } setProperty(friendlyNamePro, sName); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedSize(MIRCASTWIDTH, 25); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedSize(MIRCASTWIDTH, 34); } else { setFixedSize(MIRCASTWIDTH, 25); } update(); }); #endif } void ItemWidget::clearSelect() { m_selected = false; } void ItemWidget::setState(ItemWidget::ConnectState state) { m_state = state; if (m_state == Loading) { m_rotateTime.start(40); } else { if(m_rotateTime.isActive()) m_rotateTime.stop(); m_rotate = 0.0; } } ItemWidget::ConnectState ItemWidget::state() { return m_state; } MiracastDevice ItemWidget::getDevice() { return m_device; } void ItemWidget::mousePressEvent(QMouseEvent *pEvent) { Q_UNUSED(pEvent); m_selected = true; m_hover = false; emit selected(); update(); } void ItemWidget::paintEvent(QPaintEvent *pEvent) { Q_UNUSED(pEvent); bool isCompactMode = false; QPoint centerPos(218, 17); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { isCompactMode = true; centerPos.setX(226); centerPos.setY(11); } #endif QPainter paint(this); paint.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); QPainterPath path; path.addRect(rect()); QColor TextColor(Qt::black); if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) TextColor = QColor(198, 207, 205); if (m_selected) { paint.fillPath(path, QBrush(QColor(0,129,255))); TextColor = Qt::white; } else if (m_hover) { paint.fillPath(path, QBrush(QColor(0, 0, 0, 0.05 * 255))); } paint.setPen(TextColor); paint.drawText(QRect(20, (rect().height() - 20) / 2, 176, 20), m_displayName, QTextOption(Qt::AlignVCenter)); QIcon icon; switch (m_state) { case Normal: return; case Loading: icon = m_normalLoadIcon; if (m_selected) icon = m_selectLoadIcon; paint.save(); paint.translate(centerPos); paint.rotate(m_rotate); if (!isCompactMode) paint.drawPixmap(-12, -12, QPixmap(icon.pixmap(QSize(24, 24)))); else paint.drawPixmap(-8, -8, QPixmap(icon.pixmap(QSize(16, 16)))); paint.restore(); update(); break; case Checked: QColor selectColor(Qt::black); if (m_selected) selectColor.setRgb(255, 255, 255); paint.setPen(QPen(selectColor, 2)); QList points = QList(); if (!isCompactMode) points << QPointF(214, 17) << QPointF(219, 22) << QPointF(227, 11); else points << QPointF(217, 16) << QPointF(220, 18) << QPointF(225, 10); QPainterPath path(points[0]); for (int i = 1; i < points.size(); i++) { path.lineTo(points[i]); } paint.drawPath(path); break; } } void ItemWidget::enterEvent(QEvent *event) { Q_UNUSED(event); m_hover = true; } void ItemWidget::leaveEvent(QEvent *event) { Q_UNUSED(event); m_hover = false; } void ItemWidget::mouseDoubleClickEvent(QMouseEvent *event) { Q_UNUSED(event); emit connecting(); } /** * @brief convertDisplay 设备名称操作170个字符转换 */ QString ItemWidget::convertDisplay() { QFontMetrics fm = fontMetrics(); double textWidth = fm.width(m_device.name); if (textWidth > TEXT_WIDTH) { QString displayName; for (int i = 0; i < m_device.name.size(); i++) { displayName += m_device.name.at(i); if (fm.width(displayName) > TEXT_WIDTH) { displayName.chop(1); displayName += "..."; break; } } return displayName; } else { return m_device.name; } } deepin-movie-reborn-5.15.10/src/widgets/mircastwidget.h000066400000000000000000000172261473342170300230210ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 此文件中实现投屏搜索小窗口 */ #ifndef _MIRCASTWIDGET_H #define _MIRCASTWIDGET_H #include #include #include #include #include #include #include #include "dlna/cdlnasoappost.h" DWIDGET_USE_NAMESPACE class QNetworkReply; class QListWidget; class CSSDPSearch; class DlnaContentServer; class CDlnaSoapPost; class QListWidgetItem; struct MiracastDevice { QString name; QString uuid; }; class ItemWidget: public QWidget { Q_OBJECT public: enum ConnectState { Normal = 0, Loading, Checked, }; ItemWidget(MiracastDevice device, const QByteArray &data, const QNetworkReply *reply, QWidget *parent = nullptr); void clearSelect(); void setState(ConnectState state); ConnectState state(); MiracastDevice getDevice(); protected: void mousePressEvent(QMouseEvent *pEvent) override; void paintEvent(QPaintEvent *pEvent) override; void enterEvent(QEvent *event) override; void leaveEvent(QEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override; signals: void selected(); void connecting(); private: /** * @brief convertDisplay 设备名称操作170个字符转换 */ QString convertDisplay(); private: MiracastDevice m_device; QString m_displayName; QByteArray m_data; bool m_selected; bool m_hover; ConnectState m_state; QIcon m_normalLoadIcon; QIcon m_selectLoadIcon; double m_rotate; QTimer m_rotateTime; }; class ListWidget: public QWidget { Q_OBJECT public: ListWidget(QWidget *parent = nullptr); int count(); void clear(); ItemWidget* createListeItem(MiracastDevice device, const QByteArray &data, const QNetworkReply *reply); int currentItemIndex(); ItemWidget* currentItemWidget(); QList selectedItemWidget(); void setItemWidgetStatus(QList lstItem, ItemWidget::ConnectState); signals: void connectDevice(ItemWidget*); private slots: void slotSelectItem(); void slotsConnectingDevice(); private: QList m_items; ItemWidget *m_currentWidget; ItemWidget *m_lastSelectedWidget; }; class RefreButtonWidget: public QWidget { Q_OBJECT public: RefreButtonWidget(QWidget *parent = nullptr); void refershTimeout(); void refershStart(); protected: void mouseReleaseEvent(QMouseEvent *pEvent) override; signals: void buttonClicked(); private: DSpinner *m_spinner; DLabel *m_refreBtn; }; class MircastWidget: public DFloatingWidget { Q_OBJECT public: enum SearchState { Searching = 0, ListExhibit, NoDevices, }; enum MircastState { Connecting = 0, Screening, Idel, }; enum MircastPlayState { NoState = 0, Play, Pause, Stop, }; struct ConnectDevice { MiracastDevice miracastDevice; MircastState deviceState{MircastState::Idel}; }; public: MircastWidget(QWidget *mainWindow = nullptr, void *pEngine = nullptr); // virtual ~MircastWidget() override; /** * @brief getMircastState 获取投屏连接状态 */ MircastState getMircastState(); /** * @brief getMircastPlayState 获取投屏播放状态 */ MircastPlayState getMircastPlayState(); /** * @brief playNext 开始投屏 */ void playNext(); /** * @brief seekMircast 投屏seek * @param nSec seek时间 单位秒 */ void seekMircast(int nSec); /** * @brief createListeItem 投屏seek * @param data 投屏设备信息 */ ItemWidget * createListeItem(MiracastDevice, const QByteArray &data, const QNetworkReply*); /** * @brief updateMircastState 更新投屏窗口状态 */ void updateMircastState(SearchState state); //ADD UT TEST BTN RefreButtonWidget *getRefreshBtn() {return m_refreshBtn;} void setMircastState(MircastState state) {m_mircastState = state;} void setMircastPlayState(MircastPlayState state) {m_nPlayStatus = state;} public slots: /** * @brief togglePopup 工具栏投屏窗口显示与隐藏 */ void togglePopup(); /** * @brief slotReadyRead 读取投屏设备信息 */ void slotReadyRead(); /** * @brief slotExitMircast 退出投屏 */ void slotExitMircast(); /** * @brief slotExitMircast 退出投屏 */ void slotSeekMircast(int); /** * @brief slotPauseDlnaTp 投屏视频暂停与恢复播放 */ void slotPauseDlnaTp(); public slots: /** * @brief slotRefreshBtnClicked 投屏窗口刷新按钮 */ void slotRefreshBtnClicked(); /** * @brief slotSearchTimeout 投屏设备搜索超时 */ void slotSearchTimeout(); /** * @brief slotMircastTimeout 投屏连接超时 */ void slotMircastTimeout(); /** * @brief slotGetPositionInfo 获取投屏播放视频信息 */ void slotGetPositionInfo(DlnaPositionInfo info); /** * @brief slotConnectDevice 连接投屏设备 */ void slotConnectDevice(ItemWidget*); /** * @brief slotConnectDevice 投屏播放视频暂停 */ void pauseDlnaTp(); /** * @brief slotConnectDevice 投屏播放视频播放 */ void playDlnaTp(); /** * @brief slotConnectDevice 投屏播放视频seek */ void seekDlnaTp(int nSeek); /** * @brief stopDlnaTP 停止投屏播放视频 */ void stopDlnaTP(); /** * @brief getPosInfoDlnaTp 获取投屏播放视频信息 */ void getPosInfoDlnaTp(); signals: void closeServer(); void mircastState(int state, QString msg = QString()); void updateTime(int time); void updatePlayStatus(); private: /** * @brief searchDevices 刷新查找设备 */ void searchDevices(); /** * @brief initializeHttpServer 初始化http Sever */ void initializeHttpServer(int port = 9999); /** * @brief startDlnaTp 初始化http Sever */ void startDlnaTp(ItemWidget *item = nullptr); /** * @brief startDlnaTp 时间字符串装换为int秒 时间格式"00:00:00" */ int timeConversion(QString); int getConnectionDevice(MiracastDevice); private: QWidget *m_hintWidget; DLabel *m_hintLabel; QScrollArea *m_mircastArea; bool m_bIsToggling; CSSDPSearch *m_search; RefreButtonWidget *m_refreshBtn; MircastState m_mircastState; int m_attempts; int m_connectTimeout; ListWidget *m_listWidget; MircastPlayState m_nPlayStatus; QTimer m_searchTime; QTimer m_mircastTimeOut; QList m_devicesList; ConnectDevice m_connectDevice; //投屏http服务,支持http断点续传请求 DlnaContentServer *m_dlnaContentServer; //投屏控制 CDlnaSoapPost *m_pDlnaSoapPost; //是否成功启动http server bool m_isStartHttpServer; //投屏设备的控制url QString m_ControlURLPro; //本地准备的投屏主机地址 QString m_URLAddrPro; //本地准备的投屏url地址 QString m_sLocalUrl; //返回播放视频地址 QString m_sTrackURI; void *m_pEngine; ///播放引擎 int m_nCurDuration; //当前播放视频总时长 int m_nCurAbsTime; //当前播放视频播放时长 }; #endif /* ifndef _MIRCASTWIDGET_H */ deepin-movie-reborn-5.15.10/src/widgets/movie_progress_indicator.cpp000066400000000000000000000044341473342170300256020ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是负责实现全屏展示进度控件相关 */ #include "movie_progress_indicator.h" #include "utils.h" namespace dmr { /** * @brief MovieProgressIndicator 构造函数 * @param parent 父窗口 */ MovieProgressIndicator::MovieProgressIndicator(QWidget *parent) : QFrame(parent) { initMember(); QFont font; //参考设计图 font.setPixelSize(14); QFontMetrics fontMetrics(font); this->setFont(font); m_fixedSize = QSize(qMax(52, fontMetrics.width("999:99")), fontMetrics.height() + 10); this->setFixedSize(m_fixedSize); } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent */ void MovieProgressIndicator::paintEvent(QPaintEvent *pPaintEvent) { QString sTimeText = QTime::currentTime().toString("hh:mm"); QPainter painter(this); painter.setFont(font()); painter.setPen(QColor(255, 255, 255, static_cast(255 * .4))); QFontMetrics fontMetrics(font()); QRect fontRect = fontMetrics.boundingRect(sTimeText); fontRect.moveCenter(QPoint(rect().center().x(), fontRect.height() / 2)); painter.drawText(fontRect, sTimeText); QPoint pos((m_fixedSize.width() - 48) / 2, rect().height() - 5); int pert = static_cast(qMin(m_pert * 10, 10.0)); for (int i = 0; i < 10; i++) { if (i >= pert) { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, static_cast(255 * .25))); } else { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, static_cast(255 * .5))); } pos.rx() += 5; } QFrame::paintEvent(pPaintEvent); } /** * @brief initMember 初始化成员变量 */ void MovieProgressIndicator::initMember() { m_nElapsed = 0; m_pert = 0; m_fixedSize = QSize(0, 0); } /** * @brief updateMovieProgress 更新电影进度控件 * @param duration 总时长 * @param pos 当前时长 */ void MovieProgressIndicator::updateMovieProgress(qint64 duration, qint64 pos) { m_nElapsed = pos; if (duration != 0) m_pert = static_cast(((float)pos) / duration); update(); } } deepin-movie-reborn-5.15.10/src/widgets/movie_progress_indicator.h000066400000000000000000000024601473342170300252440ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是负责实现全屏展示进度控件相关 */ #ifndef _DMR_MOVIE_PROGRESS_INDICATOR_H #define _DMR_MOVIE_PROGRESS_INDICATOR_H #include namespace dmr { /** * @brief The MovieProgressIndicator class * 这个类是全屏时右上角电影进度的展示控件 */ class MovieProgressIndicator: public QFrame { Q_OBJECT public: /** * @brief MovieProgressIndicator 构造函数 * @param parent 父窗口 */ explicit MovieProgressIndicator(QWidget* parent); public slots: /** * @brief updateMovieProgress 更新电影进度控件 * @param duration 总时长 * @param pos 当前时长 */ void updateMovieProgress(qint64 nDuration, qint64 nPos); protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent */ void paintEvent(QPaintEvent* pPaintEvent) override; private: /** * @brief initMember 初始化成员变量 */ void initMember(); private: qint64 m_nElapsed; ///当前播放的进度 qreal m_pert; ///当前播放百分比 QSize m_fixedSize; ///窗口大小 }; } #endif /* ifndef _DMR_MOVIE_PROGRESS_INDICATOR_H */ deepin-movie-reborn-5.15.10/src/widgets/movieinfo_dialog.cpp000066400000000000000000000442101473342170300240110ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是影片信息窗口相关的类 */ #include "movieinfo_dialog.h" #include "mpv_proxy.h" #include "playlist_model.h" #include "utils.h" #include "tip.h" #include #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief ElideText 根据字体大小调整字体缩减 * @param text 全部的文本 * @param size 控件的大小 * @param wordWrap 文本包装的类型 * @param font 字体 * @param mode 指定省略号的位置 * @param lineHeight 行高 * @param lastLineWidth 保存的宽度 * @return 返回省略后的文本 */ static QString ElideText(const QString &text, const QSize &size, QTextOption::WrapMode wordWrap, const QFont &font, Qt::TextElideMode mode, int lineHeight, int lastLineWidth) { QTextLayout textLayout(text); QString str; QFontMetrics fontMetrics(font); textLayout.setFont(font); const_cast(&textLayout.textOption())->setWrapMode(wordWrap); textLayout.beginLayout(); QTextLine line = textLayout.createLine(); line.setLineWidth(size.width()); QString tmp_str = nullptr; if (fontMetrics.boundingRect(text).width() <= line.width()) { tmp_str = text.mid(line.textStart(), line.textLength()); str = tmp_str; } else { int height = 0; while (line.isValid()) { line.setLineWidth(size.width()); tmp_str = text.mid(line.textStart(), line.textLength()); if (tmp_str.indexOf('\n')) height += lineHeight; str += tmp_str; line = textLayout.createLine(); if (line.isValid()) str.append("\n"); } } textLayout.endLayout(); return str; } /** * @brief The ToolTipEvent class * 鼠标悬停时的tooltip类 */ class ToolTipEvent: public QObject { public: /** * @brief ToolTipEvent 构造函数 * @param parent 父窗口 */ explicit ToolTipEvent(QObject *parent): QObject(parent) {} protected: /** * @brief eventFilter 事件过滤器 * @param obj 过滤的对象 * @param event 事件 * @return 是否继续执行 */ bool eventFilter(QObject *obj, QEvent *event) { switch (event->type()) { case QEvent::ToolTip: { QHelpEvent *he = static_cast(event); auto tip = obj->property("HintWidget").value(); auto btn = tip->property("for").value(); tip->setText(btn->toolTip()); tip->show(); tip->raise(); tip->adjustSize(); QPoint pos = he->globalPos() + QPoint{0, 0}; int nDesktopWidth = qApp->desktop()->availableGeometry(btn).width(); if (pos.x() + tip->width() > nDesktopWidth) { pos.rx() = nDesktopWidth - tip->width(); } pos.ry() = pos.y() - tip->height(); tip->move(pos); return true; } case QEvent::Leave: { auto parent = obj->property("HintWidget").value(); parent->hide(); event->ignore(); break; } default: break; } return QObject::eventFilter(obj, event); } }; /** * @brief The CloseButton class * 影片信息窗口关闭按钮 */ class CloseButton : public DPushButton { public: /** * @brief CloseButton 构造函数 * @param parent 父窗口 */ explicit CloseButton(QWidget *parent) {} protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void paintEvent(QPaintEvent *pPaintEvent) override { QPainter painter(this); QRect rect = this->rect(); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { painter.drawPixmap(rect, QPixmap(INFO_CLOSE_LIGHT)); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { painter.drawPixmap(rect, QPixmap(INFO_CLOSE_DARK)); } else { painter.drawPixmap(rect, QPixmap(INFO_CLOSE_LIGHT)); } } }; /** * @brief MovieInfoDialog 构造函数 */ MovieInfoDialog::MovieInfoDialog(const struct PlayItemInfo &pif ,QWidget *parent) : DDialog(parent) { initMember(); if(utils::check_wayland_env()){ setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); } this->setObjectName(MOVIE_INFO_DIALOG); this->setAccessibleName(MOVIE_INFO_DIALOG); m_titleList.clear(); DWidget *content = new DWidget(); addContent(content); const MovieInfo &strMovieInfo = pif.mi; QVBoxLayout *pMainLayout = new QVBoxLayout; pMainLayout->setContentsMargins(0, 0, 0, 0); pMainLayout->setSpacing(0); content->setLayout(pMainLayout); PosterFrame *pPosterFrame = new PosterFrame(this); pPosterFrame->setWindowOpacity(1); pPosterFrame->setFixedHeight(128); qreal pixelRatio = qApp->devicePixelRatio(); QPixmap cover; if (pif.thumbnail.isNull()) { cover = (utils::LoadHiDPIPixmap(LOGO_BIG)); } else { QSize sz(220, 128); sz *= pixelRatio; auto img = pif.thumbnail.scaledToWidth(sz.width(), Qt::SmoothTransformation); cover = img.copy(0, (img.height() - sz.height()) / 2, sz.width(), sz.height()); cover.setDevicePixelRatio(pixelRatio); } cover = utils::MakeRoundedPixmap(cover, 8, 8); pPosterFrame->setPixmap(cover); pPosterFrame->ensurePolished(); pMainLayout->addWidget(pPosterFrame); pMainLayout->setAlignment(pPosterFrame, Qt::AlignHCenter); pMainLayout->addSpacing(9); m_pFileNameLbl->setMinimumWidth(260); DFontSizeManager::instance()->bind(m_pFileNameLbl, DFontSizeManager::T8); m_pFileNameLbl->setText(m_pFileNameLbl->fontMetrics().elidedText(QFileInfo(strMovieInfo.filePath).fileName(), Qt::ElideMiddle, 260)); m_pFileNameLbl->setAlignment(Qt::AlignCenter); pMainLayout->addWidget(m_pFileNameLbl); pMainLayout->setAlignment(m_pFileNameLbl, Qt::AlignHCenter); pMainLayout->addSpacing(50); QList tipLst; tipLst.clear(); m_pScrollArea->setObjectName(MOVIE_INFO_SCROLL_AREA); m_pScrollArea->setAccessibleName(MOVIE_INFO_SCROLL_AREA); m_pScrollArea->viewport()->setObjectName(SCROLL_AREA_VIEWPORT); QPalette palette = m_pScrollArea->viewport()->palette(); palette.setBrush(QPalette::Background, Qt::NoBrush); m_pScrollArea->viewport()->setPalette(palette); m_pScrollArea->setFrameShape(QFrame::Shape::NoFrame); m_pScrollArea->setWidgetResizable(true); pMainLayout->addWidget(m_pScrollArea); QWidget *scrollContentWidget = new QWidget(m_pScrollArea); scrollContentWidget->setObjectName(MOVIE_INFO_SCROLL_CONTENT); QVBoxLayout *scrollWidgetLayout = new QVBoxLayout; scrollWidgetLayout->setContentsMargins(0, 0, 0, 0); scrollWidgetLayout->setSpacing(10); scrollContentWidget->setLayout(scrollWidgetLayout); m_pScrollArea->setWidget(scrollContentWidget); m_pScrollArea->setWidgetResizable(true); m_pScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); //添加基本信息 ArrowLine *film = new ArrowLine; film->setObjectName(FILM_INFO_WIDGET); film->setTitle(tr("Film info")); //去掉分割线 film->setSeparatorVisible(false); film->setExpandedSeparatorVisible(false); InfoBottom *infoRect = new InfoBottom; scrollWidgetLayout->addWidget(film); scrollWidgetLayout->setAlignment(film, Qt::AlignHCenter); film->setContent(infoRect); film->setFixedWidth(280); infoRect->setFixedWidth(280); // infoRect->setMinimumHeight(132); film->setExpand(true); m_expandGroup.append(film); QFormLayout *pFormLayout = new QFormLayout(infoRect); pFormLayout->setContentsMargins(10, 5, 20, 16); pFormLayout->setVerticalSpacing(6); pFormLayout->setHorizontalSpacing(10); pFormLayout->setLabelAlignment(Qt::AlignLeft); pFormLayout->setFormAlignment(Qt::AlignCenter); DEnhancedWidget *hanceedWidget = new DEnhancedWidget(film, this); connect(hanceedWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight); QString strDuration = strMovieInfo.durationStr(); if(strDuration == "00:00:00") { strDuration = "-"; } QString strVCodecName = strMovieInfo.videoCodec(); if(strVCodecName == "none" || strVCodecName.isEmpty()) { strVCodecName = "-"; } QString strVCodecRate = "-"; if(strMovieInfo.vCodeRate > 0) { strVCodecRate = strMovieInfo.vCodeRate > 1000 ? QString(tr("%1 kbps")).arg(strMovieInfo.vCodeRate / 1000) : QString(tr("%1 bps")).arg(strMovieInfo.vCodeRate); } QString strFps = strMovieInfo.fps > 0 ? QString(tr("%1 fps")).arg(strMovieInfo.fps) : "-"; QString strProportion = strMovieInfo.proportion > 0.0f ? QString(tr("%1")).arg(static_cast(strMovieInfo.proportion)) : "-"; QString strResolution = strMovieInfo.width > 0 ? strMovieInfo.resolution : "-" ; QString strACodecName = strMovieInfo.audioCodec(); if(strACodecName.isEmpty()) { strACodecName = "-"; } QString strACodecRate = "-"; if(strMovieInfo.aCodeRate > 1000) { strACodecRate = strMovieInfo.aCodeRate > 1000 ? QString(tr("%1 kbps")).arg(strMovieInfo.aCodeRate / 1000) : QString(tr("%1 bps")).arg(strMovieInfo.aCodeRate); } QString strBits = strMovieInfo.aDigit > 0 ? QString(tr("%1 bits").arg(strMovieInfo.aDigit)) : "-"; QString strChannels = strMovieInfo.channels > 0 ? QString(tr("%1 channels")).arg(strMovieInfo.channels) : "-"; QString strSamp = strMovieInfo.sampling > 0 ? QString(tr("%1hz")).arg(strMovieInfo.sampling) : "-"; addRow(tr("Type"), strMovieInfo.fileType, pFormLayout, tipLst); addRow(tr("Size"), strMovieInfo.sizeStr(), pFormLayout, tipLst); addRow(tr("Duration"), strDuration, pFormLayout, tipLst); DLabel *tmp = new DLabel; DFontSizeManager::instance()->bind(tmp, DFontSizeManager::T8); tmp->setText(strMovieInfo.filePath); QFontMetrics fontMetrics = tmp->fontMetrics(); addRow(tr("Path"), strMovieInfo.filePath, pFormLayout, tipLst); //添加视频信息 ArrowLine *video = new ArrowLine; video->setObjectName(CODEC_INFO_WIDGET); video->setTitle(tr("Codec info")); video->setSeparatorVisible(false); video->setExpandedSeparatorVisible(false); InfoBottom *videoRect = new InfoBottom; scrollWidgetLayout->addWidget(video); scrollWidgetLayout->setAlignment(video, Qt::AlignHCenter); video->setContent(videoRect); video->setFixedSize(280, 136); videoRect->setFixedWidth(280); videoRect->setMinimumHeight(136); video->setExpand(true); m_expandGroup.append(video); QFormLayout *pVideoFormLayout = new QFormLayout(videoRect); pVideoFormLayout->setContentsMargins(10, 5, 20, 19); pVideoFormLayout->setVerticalSpacing(6); pVideoFormLayout->setHorizontalSpacing(10); pVideoFormLayout->setLabelAlignment(Qt::AlignLeft); pVideoFormLayout->setFormAlignment(Qt::AlignCenter); DEnhancedWidget *videoWidget = new DEnhancedWidget(video, this); connect(videoWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight); addRow(tr("Video CodecID"), strVCodecName, pVideoFormLayout, tipLst); addRow(tr("Video CodeRate"), strVCodecRate, pVideoFormLayout, tipLst); addRow(tr("FPS"), strFps, pVideoFormLayout, tipLst); addRow(tr("Proportion"), strProportion, pVideoFormLayout, tipLst); addRow(tr("Resolution"), strResolution, pVideoFormLayout, tipLst); //添加音频信息 ArrowLine *audio = new ArrowLine; audio->setObjectName(AUDIO_INFO_WIDGET); audio->setTitle(tr("Audio info")); audio->setSeparatorVisible(false); audio->setExpandedSeparatorVisible(false); InfoBottom *audioRect = new InfoBottom; scrollWidgetLayout->addWidget(audio); scrollWidgetLayout->setAlignment(audio, Qt::AlignHCenter); audio->setContent(audioRect); audio->setFixedWidth(280); audioRect->setFixedWidth(280); audioRect->setMinimumHeight(136); audio->setExpand(true); m_expandGroup.append(audio); QFormLayout *audioForm = new QFormLayout(audioRect); audioForm->setContentsMargins(10, 5, 20, 16); audioForm->setVerticalSpacing(6); audioForm->setHorizontalSpacing(10); audioForm->setLabelAlignment(Qt::AlignLeft); audioForm->setFormAlignment(Qt::AlignCenter); DEnhancedWidget *audioWidget = new DEnhancedWidget(audio, this); connect(audioWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight); addRow(tr("Audio CodecID"), strACodecName, audioForm, tipLst); addRow(tr("Audio CodeRate"), strACodecRate, audioForm, tipLst); addRow(tr("Audio digit"), strBits, audioForm, tipLst); addRow(tr("Channels"), strChannels, audioForm, tipLst); addRow(tr("Sampling"), strSamp, audioForm, tipLst); setFixedSize(300, 642); if (!m_titleList.isEmpty()) { auto f = m_titleList[10]->fontMetrics(); auto widget = f.boundingRect(m_titleList[10]->text()).width(); if (widget > 60) { foreach (QLabel *l, m_titleList) { l->setFixedWidth(widget + 3); } } } auto th = new ToolTipEvent(this); if (tipLst.size() > 1) { DLabel *pFilePathLbl = tipLst.at(3); pFilePathLbl->setObjectName("filePathLabel"); auto codeLabel = m_titleList.at(5); QFontMetrics fm_cl = codeLabel->fontMetrics(); pFilePathLbl->setMinimumWidth(qMin(160, 250 - fm_cl.boundingRect(codeLabel->text()).width())); auto fp = ElideText(tmp->text(), {pFilePathLbl->width(), fm_cl.height()}, QTextOption::WrapAnywhere, pFilePathLbl->font(), Qt::ElideRight, fm_cl.height(), pFilePathLbl->width()); pFilePathLbl->setText(fp); m_pFilePathLbl = pFilePathLbl; m_sFilePath = tmp->text(); pFilePathLbl->setToolTip(tmp->text()); auto t = new Tip(QPixmap(), tmp->text(), nullptr); t->resetSize(QApplication::desktop()->availableGeometry().width()); t->setProperty("for", QVariant::fromValue(pFilePathLbl)); pFilePathLbl->setProperty("HintWidget", QVariant::fromValue(t)); pFilePathLbl->installEventFilter(th); } delete tmp; tmp = nullptr; connect(qApp, &QGuiApplication::fontChanged, this, &MovieInfoDialog::onFontChanged); connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, &MovieInfoDialog::slotThemeTypeChanged); m_expandGroup.at(0)->setExpand(true); m_expandGroup.at(1)->setExpand(true); m_expandGroup.at(2)->setExpand(true); } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void MovieInfoDialog::paintEvent(QPaintEvent *ev) { QPainter painter(this); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { painter.fillRect(this->rect(), QColor(255, 255, 255, static_cast(255 * 0.8))); } else { painter.fillRect(this->rect(), QColor(0, 0, 0, static_cast(255 * 0.8))); } QDialog::paintEvent(ev); } void MovieInfoDialog::showEvent(QShowEvent *pEvent) { moveToCenter(); return QDialog::showEvent(pEvent); } /** * @brief onFontChanged 字体变化槽函数(跟随系统变化) * @param font 变化后的字体 */ void MovieInfoDialog::onFontChanged(const QFont &font) { QFontMetrics fm(font); QString strFileName = m_pFileNameLbl->fontMetrics().elidedText(QFileInfo(m_sFilePath).fileName(), Qt::ElideMiddle, m_pFileNameLbl->width()); m_pFileNameLbl->setText(strFileName); if (m_pFilePathLbl) { QString sFilePath = ElideText(m_sFilePath, {m_pFilePathLbl->width(), fm.height()}, QTextOption::WrapAnywhere, m_pFilePathLbl->font(), Qt::ElideRight, fm.height(), m_pFilePathLbl->width()); m_pFilePathLbl->setText(sFilePath); } } /** * @brief changedHeight 高度变化槽函数 */ void MovieInfoDialog::changedHeight(const int height) { QRect rc = geometry(); int expandsHeight = 30; QList::const_iterator expand = m_expandGroup.cbegin(); while (expand != m_expandGroup.cend()) { expandsHeight += (*expand)->height(); ++expand; } expandsHeight += contentsMargins().top() + contentsMargins().bottom(); rc.setHeight(expandsHeight + 265); setGeometry(rc); this->setFixedHeight(qMin(615, expandsHeight + 265)); } /** * @brief slotThemeTypeChanged * 主题变化槽函数 */ void MovieInfoDialog::slotThemeTypeChanged() { m_pFileNameLbl->setForegroundRole(DPalette::BrightText); } /** * @brief addRow 增加信息条目函数 * @param title 信息名称 * @param field 信息内容 * @param form 布局管理 * @retval tipList 传回当前添加信息的label控件 */ void MovieInfoDialog::addRow(QString sTitle, QString sField, QFormLayout *pForm, QList &tipList) { auto f = new DLabel(sTitle, this); f->setAlignment(Qt::AlignLeft | Qt::AlignTop); f->setMinimumSize(60, 20); DFontSizeManager::instance()->bind(f, DFontSizeManager::T8); DPalette pa1 = DApplicationHelper::instance()->palette(f); pa1.setBrush(DPalette::Text, pa1.color(DPalette::TextTitle)); f->setPalette(pa1); auto t = new DLabel(sField, this); t->setAlignment(Qt::AlignLeft | Qt::AlignTop); t->setMinimumHeight(20); t->setWordWrap(true); DFontSizeManager::instance()->bind(t, DFontSizeManager::T8); DPalette pa2 = DApplicationHelper::instance()->palette(t); pa2.setBrush(DPalette::Text, pa2.color(DPalette::TextTitle)); t->setPalette(pa2); pForm->addRow(f, t); tipList.append(t); m_titleList.append(f); } /** * @brief initMember 初始化成员变量 */ void MovieInfoDialog::initMember() { m_pFileNameLbl = new DLabel(this); m_pFilePathLbl = nullptr; m_sFilePath = QString(); m_pScrollArea = new QScrollArea; m_nLastHeight = -1; } } deepin-movie-reborn-5.15.10/src/widgets/movieinfo_dialog.h000066400000000000000000000130371473342170300234610ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是影片信息窗口相关的类 */ #ifndef _DMR_MOVIE_INFO_DIALOG_H #define _DMR_MOVIE_INFO_DIALOG_H #include #include #include #include #include #include #include #include #include #include #include #include #include "../accessibility/ac-deepin-movie-define.h" #define LINE_MAX_WIDTH 200 #define LINE_HEIGHT 30 const QString LOGO_BIG = ":/resources/icons/logo-big.svg"; const QString INFO_CLOSE_LIGHT = ":/resources/icons/light/info_close_light.svg"; const QString INFO_CLOSE_DARK = ":/resources/icons/dark/info_close_dark.svg"; DWIDGET_USE_NAMESPACE DGUI_USE_NAMESPACE namespace dmr { struct PlayItemInfo; /** * @brief The PosterFrame class * 影片信息中的缩略图控件 */ class PosterFrame: public QLabel { Q_OBJECT public: /** * @brief PosterFrame 构造函数 * @param parent 父窗口 */ explicit PosterFrame(QWidget *parent) : QLabel(parent) { QGraphicsDropShadowEffect *pShadowEffect = new QGraphicsDropShadowEffect(this); //参考设计图 pShadowEffect->setColor(QColor(0, 0, 0, 76)); pShadowEffect->setOffset(0, 3); pShadowEffect->setBlurRadius(6); setGraphicsEffect(pShadowEffect); } }; /** * @brief The InfoBottom class * 这个是一个信息的窗口,在影片信息中有多个信息分类, * 每个分类占一个这样的小窗口 */ class InfoBottom: public DFrame { Q_OBJECT public: /** * @brief InfoBottom 构造函数 */ InfoBottom() {} protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ virtual void paintEvent(QPaintEvent *pPaintEvent) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); //这部分颜色参考设计图 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { painter.setPen(Qt::NoPen); painter.setBrush(QBrush(QColor(255, 255, 255, 0))); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { painter.setPen(Qt::NoPen); painter.setBrush(QBrush(QColor(45, 45, 45, 0))); } QRect rect = this->rect(); rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); QPainterPath painterPath; painterPath.addRoundedRect(rect, 10, 10); painter.drawPath(painterPath); } }; /** * @brief The ArrowLine class * 这个类是负责将每个信息分类进行折叠 */ class ArrowLine: public DArrowLineDrawer { Q_OBJECT public: /** * @brief ArrowLine 构造函数 */ ArrowLine() {} protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ virtual void paintEvent(QPaintEvent *pPaintEvent) { Q_UNUSED(pPaintEvent); QPainter painter(this); QRectF bgRect; bgRect.setSize(size()); const QPalette pal = QGuiApplication::palette(); QColor bgColor = pal.color(QPalette::Background); QPainterPath path; path.addRoundedRect(bgRect, 8, 8); painter.setRenderHint(QPainter::Antialiasing, true); painter.fillPath(path, bgColor); painter.setRenderHint(QPainter::Antialiasing, false); } }; /** * @brief The MovieInfoDialog class * 这个类是影片信息大窗口的类 */ class MovieInfoDialog: public DDialog { Q_OBJECT public: /** * @brief MovieInfoDialog 构造函数 * @param strPlayItemInfo 播放项的相关信息 * @param pParent 父窗口 */ MovieInfoDialog(const struct PlayItemInfo &strPlayItemInfo, QWidget *pParent); protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void paintEvent(QPaintEvent *pPaintEvent); void showEvent(QShowEvent *pEvent); private slots: /** * @brief onFontChanged 字体变化槽函数(跟随系统变化) * @param font 变化后的字体 */ void onFontChanged(const QFont &font); /** * @brief changedHeight 高度变化槽函数 */ void changedHeight(const int); //把lambda表达式改为槽函数,modify by myk /** * @brief slotThemeTypeChanged * 主题变化槽函数 */ void slotThemeTypeChanged(); private: /** * @brief addRow 增加信息条目函数 * @param title 信息名称 * @param field 信息内容 * @param form 布局管理 * @retval tipList 传回当前添加信息的label控件 */ void addRow(QString sTitle, QString sField, QFormLayout *pForm, QList &tipList); /** * @brief initMember 初始化成员变量 */ void initMember(); private: DLabel *m_pFileNameLbl; ///文件名控件 DLabel *m_pFilePathLbl; ///文件路径控件 QString m_sFilePath; ///文件路径 QList m_titleList; ///信息label控件列表 QList m_expandGroup; ///信息分类组列表 QScrollArea *m_pScrollArea; ///包含多个分类组的滚动条窗口 int m_nLastHeight; ///保存上次文本高度 }; } #endif /* ifndef _DMR_MOVIE_INFO_DIALOG_H */ deepin-movie-reborn-5.15.10/src/widgets/moviewidget.cpp000066400000000000000000000104251473342170300230230ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是播放音乐时显示的窗口动画 */ #include #include #include #include "compositing_manager.h" #include "moviewidget.h" #define DEFAULT_RATION (1.0f*1080/1920) //背景图片比例 #define INTERVAL 50 //刷新间隔 #define ROTATE_ANGLE 360/(1000*2.5/INTERVAL) //2.5秒转一圈 #define DEFAULT_BGLENGTH 174 //背景边长 #define DEFAULT_NTLENGTH 48 //音符边长 namespace dmr { MovieWidget::MovieWidget(QWidget *parent) : QGraphicsView(parent) { initMember(); if (!CompositingManager::get().composited()) { winId(); } setAlignment(Qt::AlignCenter); setFrameShape(QFrame::Shape::NoFrame); setAttribute(Qt::WA_TransparentForMouseEvents, true); setMouseTracking(true); m_pScene = new QGraphicsScene; m_pScene->setBackgroundBrush(QBrush(QColor(0, 0, 0))); this->setScene(m_pScene); m_pBgRender = new QSvgRenderer(QString(":/resources/icons/music_bg.svg")); m_pNoteRender = new QSvgRenderer(QString(":/resources/icons/music_note.svg")); m_pBgSvgItem = new QGraphicsSvgItem; m_pNoteSvgItem = new QGraphicsSvgItem; m_pBgSvgItem->setSharedRenderer(m_pBgRender); m_pNoteSvgItem->setSharedRenderer(m_pNoteRender); m_pBgSvgItem->setCacheMode(QGraphicsItem::NoCache); m_pNoteSvgItem->setCacheMode(QGraphicsItem::NoCache); m_pScene->setSceneRect(m_pBgSvgItem->boundingRect()); //要在设置位置之前,不然动画会跳动 m_pBgSvgItem->setPos((m_pScene->width() - DEFAULT_BGLENGTH) / 2, (m_pScene->height() - DEFAULT_BGLENGTH) / 2); m_pNoteSvgItem->setPos((m_pScene->width() - m_pNoteSvgItem->boundingRect().width()) / 2, (m_pScene->height() - m_pNoteSvgItem->boundingRect().width()) / 2); m_pScene->addItem(m_pBgSvgItem); m_pScene->addItem(m_pNoteSvgItem); m_pTimer = new QTimer(); m_pTimer->setInterval(INTERVAL); connect(m_pTimer, &QTimer::timeout, this, &MovieWidget::updateView); } MovieWidget::~MovieWidget() { m_pTimer->deleteLater(); m_pTimer = nullptr; } void MovieWidget::startPlaying() { if (m_state == PlayState::STATE_STOP) { m_nRotate = 0; show(); } m_pTimer->start(); m_state = PlayState::STATE_PLAYING; } void MovieWidget::stopPlaying() { m_pTimer->stop(); m_state = PlayState::STATE_STOP; hide(); } void MovieWidget::pausePlaying() { m_pTimer->stop(); m_state = PlayState::STATE_PAUSE; } void MovieWidget::updateView() { qreal fRatio = 1.0; QRect rectDesktop; int nWidth = 0; int nHeight = 0; m_nRotate += ROTATE_ANGLE; nWidth = rect().width(); nHeight = rect().height(); rectDesktop = qApp->desktop()->availableGeometry(this); //根据比例缩放背景 if (1.0f * nHeight / nWidth < DEFAULT_RATION) { nWidth = static_cast(nHeight / DEFAULT_RATION); fRatio = nWidth * 2.0 / rectDesktop.width(); } else { nHeight = static_cast(nWidth * DEFAULT_RATION); fRatio = nHeight * 2.0 / rectDesktop.height(); } m_pBgSvgItem->setScale(fRatio); m_pNoteSvgItem->setScale(fRatio); m_pBgSvgItem->setPos((m_pScene->width() - DEFAULT_BGLENGTH * fRatio) / 2, (m_pScene->height() - DEFAULT_BGLENGTH * fRatio) / 2); m_pNoteSvgItem->setPos((m_pScene->width() - m_pNoteSvgItem->boundingRect().width()) / 2, (m_pScene->height() - m_pNoteSvgItem->boundingRect().width()) / 2); m_pNoteSvgItem->setTransformOriginPoint(24, 24); m_nRotate += ROTATE_ANGLE; m_pNoteSvgItem->setRotation(m_nRotate); viewport()->update(); } void MovieWidget::initMember() { m_nRotate = 0; m_state = PlayState::STATE_STOP; m_pTimer = nullptr; m_pBgSvgItem = nullptr; m_pNoteSvgItem = nullptr; m_pScene = nullptr; m_pBgRender = nullptr; m_pNoteRender = nullptr; } void MovieWidget::mousePressEvent(QMouseEvent *pEvent) { pEvent->ignore(); } void MovieWidget::mouseReleaseEvent(QMouseEvent *pEvent) { pEvent->ignore(); } void MovieWidget::mouseMoveEvent(QMouseEvent *pEvent) { pEvent->ignore(); } } deepin-movie-reborn-5.15.10/src/widgets/moviewidget.h000066400000000000000000000036441473342170300224750ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是播放音乐时显示的窗口动画 */ #ifndef MOVIEWIDGET_H #define MOVIEWIDGET_H #include #include #include #include #include DWIDGET_USE_NAMESPACE class QTimer; class QHBoxLayout; class QLabel; namespace dmr { /** * @brief The MovieWidget class * 播放音乐时动画效果显示窗口类 */ class MovieWidget: public QGraphicsView { Q_OBJECT enum PlayState { STATE_PLAYING = 0, STATE_PAUSE, STATE_STOP }; public: /** * @brief MovieWidget 播放动画显示窗口 * @param parent 父窗口 */ explicit MovieWidget(QWidget *parent = nullptr); ~MovieWidget(); public slots: /** * @brief startPlaying * 开始播放时的槽函数 */ void startPlaying(); /** * @brief stopPlaying * 停止播放时的槽函数 */ void stopPlaying(); /** * @brief pausePlaying * 暂停播放时的槽函数 */ void pausePlaying(); /** * @brief updateView * 更新窗口函数 */ void updateView(); /** * @brief initMember 初始化成员变量 */ void initMember(); protected: void mousePressEvent(QMouseEvent* pEvent) override; void mouseReleaseEvent(QMouseEvent* pEvent) override; void mouseMoveEvent(QMouseEvent* pEvent) override; private: QGraphicsSvgItem *m_pBgSvgItem; QGraphicsSvgItem *m_pNoteSvgItem; QGraphicsScene *m_pScene; QTimer *m_pTimer; ///控制动画播放速度的时间 int m_nRotate; ///旋转角度 PlayState m_state; ///播放状态 QSvgRenderer *m_pBgRender; ///背景render QSvgRenderer *m_pNoteRender; ///音符render }; } #endif // MOVIEWIDGET_H deepin-movie-reborn-5.15.10/src/widgets/notification_widget.cpp000066400000000000000000000144411473342170300245330ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是实现影院左上角信息弹窗 */ #include "notification_widget.h" #include "utils.h" #include #include #include #include namespace dmr { /** * @brief NotificationWidget 构造函数 * @param parent 父窗口 */ NotificationWidget::NotificationWidget(QWidget *parent) : QFrame(parent), m_pMainWindow(parent) { initMember(); setObjectName("NotificationFrame"); m_pMainLayout = new QHBoxLayout(); m_pMainLayout->setContentsMargins(0, 0, 0, 0); setLayout(m_pMainLayout); m_pMsgLabel = new DLabel(); m_pMsgLabel->setFrameShape(QFrame::NoFrame); //添加在两种主题下文字效果,使其更加明显 int nType = DGuiApplicationHelper::instance()->themeType(); if (nType == 2) { m_pMsgLabel->setForegroundRole(DPalette::TextLively); } else { m_pMsgLabel->setForegroundRole(QPalette::ToolTipText); } m_pTimer = new QTimer(this); if (!utils::check_wayland_env()) { m_pTimer->setInterval(2000); } else { m_pTimer->setInterval(500); } m_pTimer->setSingleShot(true); connect(m_pTimer, &QTimer::timeout, this, &QWidget::hide); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, [=](int nType) { if (nType == 2) { m_pMsgLabel->setForegroundRole(DPalette::TextLively); } else { m_pMsgLabel->setForegroundRole(QPalette::ToolTipText); } }); } /** * @brief showEvent 重载显示事件函数 * @param pShowEvent 显示事件 */ void NotificationWidget::showEvent(QShowEvent *event) { ensurePolished(); if (m_pMainLayout->indexOf(m_pIconLabel) == -1) { resize(m_pMsgLabel->sizeHint().width() + m_pMainLayout->contentsMargins().left() + m_pMainLayout->contentsMargins().right(), height()); adjustSize(); } syncPosition(); QFrame::showEvent(event); } /** * @brief resizeEvent 重载大小变化事件函数 * @param pResizeEvent 大小变化事件 */ void NotificationWidget::resizeEvent(QResizeEvent *re) { QFrame::resizeEvent(re); } /** * @brief syncPosition 同步控件位置 */ void NotificationWidget::syncPosition() { QRect geom = m_pMainWindow->geometry(); switch (m_pAnchor) { case ANCHOR_BOTTOM: move(geom.center().x() - size().width() / 2, geom.bottom() - m_nAnchorDist - height()); break; case ANCHOR_NORTH_WEST: move(m_anchorPoint); break; case ANCHOR_NONE: move(geom.center().x() - size().width() / 2, geom.center().y() - size().height() / 2); break; } } /** * @brief syncPosition 同步控件位置 * @param rect 控件的位置 */ void NotificationWidget::syncPosition(QRect rect) { QRect geom = rect; switch (m_pAnchor) { case ANCHOR_BOTTOM: move(geom.center().x() - size().width() / 2, geom.bottom() - m_nAnchorDist - height()); break; case ANCHOR_NORTH_WEST: move(m_anchorPoint); break; case ANCHOR_NONE: move(geom.center().x() - size().width() / 2, geom.center().y() - size().height() / 2); break; } } /** * @brief popup 显示函数 * @param msg 传入信息内容 * @param flag 是否自动隐藏,默认为是 */ void NotificationWidget::popup(const QString &msg, bool flag) { m_pMainLayout->setContentsMargins(14, 4, 14, 4); if (m_pMainLayout->indexOf(m_pMsgLabel) == -1) { m_pMainLayout->addWidget(m_pMsgLabel); } setFixedHeight(30); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedHeight(20); } #endif m_pMsgLabel->setText(msg); show(); raise(); if (flag) { m_pTimer->start(); } } /** * @brief updateWithMessage 更新显示信息 * @param newMsg 显示信息 * @param flag 是否自动隐藏,默认为是 */ void NotificationWidget::updateWithMessage(const QString &newMsg, bool flag) { if (m_pIconLabel) { m_pIconLabel->setVisible(false); } QFont font; font.setPixelSize(12); QFontMetrics fontMetrics(font); QString sMsg = fontMetrics.elidedText(newMsg, Qt::ElideMiddle, m_pMainWindow->width() - 12 - 12 - 60); if (isVisible()) { m_pMsgLabel->setText(sMsg); resize(m_pMsgLabel->sizeHint().width() + m_pMainLayout->contentsMargins().left() + m_pMainLayout->contentsMargins().right(), height()); adjustSize(); if (flag) { m_pTimer->start(); } syncPosition(); } else { popup(sMsg, flag); } } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void NotificationWidget::paintEvent(QPaintEvent *pPaintEvent) { //参考设计图 const float fRadius = 8; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); bool bLight = (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()); //按照ui建议,突出文字 QColor color = QColor(42, 42, 42, 255 * 0.95); QColor borderColor = QColor(0, 0, 0, 255 * 0.3); if (bLight) { color = QColor(247, 247, 247, 255 * 0.95); borderColor = QColor(0, 0, 0, 255 * 0.05); } painter.fillRect(rect(), Qt::transparent); { QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.setPen(borderColor); painter.drawPath(painterPath); } QRect viewRect = rect().marginsRemoved(QMargins(1, 1, 1, 1)); QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.fillPath(painterPath, color); QFrame::paintEvent(pPaintEvent); } /** * @brief initMember 初始化成员变量 */ void NotificationWidget::initMember() { m_pMsgLabel = nullptr; m_pIconLabel = nullptr; m_pTimer = nullptr; m_pFrame = nullptr; m_pMainLayout = nullptr; m_pAnchor = ANCHOR_NONE; m_nAnchorDist = 10; m_bIsWheel = true; } } deepin-movie-reborn-5.15.10/src/widgets/notification_widget.h000066400000000000000000000061711473342170300242010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是实现影院左上角信息弹窗 */ #ifndef _DMR_NOTIFICATION_WIDGET_H #define _DMR_NOTIFICATION_WIDGET_H #include #include #include #include #include "compositing_manager.h" DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief The NotificationWidget class * 这个类是影院左上角弹窗的类 */ class NotificationWidget: public QFrame { Q_OBJECT public: enum MessageAnchor { ANCHOR_NONE = 0, ANCHOR_BOTTOM, ANCHOR_NORTH_WEST }; /** * @brief NotificationWidget 构造函数 * @param parent 父窗口 */ explicit NotificationWidget(QWidget *parent = 0); /** * @brief setAnchor 设置信息弹窗位置 * @param messageAnchor 位置 */ void setAnchor(MessageAnchor messageAnchor) { m_pAnchor = messageAnchor; } /** * @brief setAnchorDistance 同步控件高度 * @param v 控件高度 */ void setAnchorDistance(int v) { m_nAnchorDist = v; } /** * @brief setAnchorPoint 设置控件位置 * @param p 位置点 */ void setAnchorPoint(const QPoint& p) { m_anchorPoint = p; } void setWM(bool isWM) { m_bIsWM = isWM; } public slots: /** * @brief popup 显示函数 * @param msg 传入信息内容 * @param flag 是否自动隐藏,默认为是 */ void popup(const QString& msg, bool flag = true); /** * @brief updateWithMessage 更新显示信息 * @param newMsg 显示信息 * @param flag 是否自动隐藏,默认为是 */ void updateWithMessage(const QString& newMsg, bool flag = true); /** * @brief syncPosition 同步控件位置 */ void syncPosition(); /** * @brief syncPosition 同步控件位置 * @param rect 控件的位置 */ void syncPosition(QRect rect); protected: /** * @brief showEvent 重载显示事件函数 * @param pShowEvent 显示事件 */ void showEvent(QShowEvent *pShowEvent) override; /** * @brief resizeEvent 重载大小变化事件函数 * @param pResizeEvent 大小变化事件 */ void resizeEvent(QResizeEvent *pResizeEvent) override; /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void paintEvent(QPaintEvent* pPaintEvent) override; private: /** * @brief initMember 初始化成员变量 */ void initMember(); private: QWidget *m_pMainWindow; ///主窗口 DLabel *m_pMsgLabel; ///文本信息label控件 QLabel *m_pIconLabel; ///图标Label控件 QTimer *m_pTimer; ///消失定时器 QFrame *m_pFrame; /// QHBoxLayout *m_pMainLayout; ///窗口主布局 MessageAnchor m_pAnchor; ///控件位置 int m_nAnchorDist; /// QPoint m_anchorPoint; ///控件位置点 bool m_bIsWheel; /// bool m_bIsWM; }; } #endif /* ifndef _DMR_NOTIFICATION_WIDGET_H */ deepin-movie-reborn-5.15.10/src/widgets/platform/000077500000000000000000000000001473342170300216165ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/src/widgets/platform/platform_animationlabel.cpp000066400000000000000000000167361473342170300272220ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为切换播放暂停时窗口中间显示控件。 * */ #include #include #include #include #include "platform_animationlabel.h" #include "mainwindow.h" #define ANIMATION_TIME 250 ///动画时长 #define DELAY_TIME 2000 ///显示动画与隐藏动画间隔 using namespace dmr; /** * @brief AnimationLabel构造函数 * @param parent 父窗口 * @param pMainWindow 主窗口 */ Platform_AnimationLabel::Platform_AnimationLabel(QWidget *parent, QWidget *pMainWindow) : QFrame(parent) { initMember(pMainWindow); setAttribute(Qt::WA_TransparentForMouseEvents); setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true); hide(); if(m_bIsWM){ resize(200, 200); } else { resize(100, 100); } } /** * @brief 由播放状态变为暂停状态 */ void Platform_AnimationLabel::pauseAnimation() { if (m_pPauseAnimationGroup && m_pPauseAnimationGroup->state() == QAbstractAnimation::Running) m_pPauseAnimationGroup->stop(); if (m_bIsWM) setFixedSize(200, 200); else setFixedSize(100, 100); m_pPlayAnimationGroup->start(); if(!isVisible()) { show(); } } /** * @brief 由暂停状态变为播放状态 */ void Platform_AnimationLabel::playAnimation() { if (m_pPlayAnimationGroup && m_pPlayAnimationGroup->state() == QAbstractAnimation::Running) m_pPlayAnimationGroup->stop(); if (m_bIsWM) setFixedSize(200, 200); else setFixedSize(100, 100); m_pPauseAnimationGroup->start(); if(!isVisible()) { show(); } } void Platform_AnimationLabel::setWM(bool isWM) { m_bIsWM = isWM; } /** * @brief 初始化成员变量 * @param mainwindow 主窗口指针 * @param composited 是否为opengl渲染 */ void Platform_AnimationLabel::initMember(QWidget *pMainwindow) { initPlayAnimation(); initPauseAnimation(); m_pMainWindow = pMainwindow; m_sFileName = ""; } /** * @brief 初始化切换暂停时的动画组 */ void Platform_AnimationLabel::initPauseAnimation() { m_pPauseAnimationGroup = new QSequentialAnimationGroup(this); m_pPauseShowAnimation = new QPropertyAnimation(this, "fps"); m_pPauseHideAnimation = new QPropertyAnimation(this, "fps"); const int nShowAnimationNum = 9; //显示动画图像数量 const int nHideAnimationNum = 18; //隐藏动画图像数量 m_pPauseShowAnimation->setDuration(ANIMATION_TIME); m_pPauseShowAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPauseShowAnimation->setStartValue(0); m_pPauseShowAnimation->setEndValue(nShowAnimationNum); connect(m_pPauseShowAnimation, &QPropertyAnimation::valueChanged, this, &Platform_AnimationLabel::onPauseAnimationChanged); m_pPauseHideAnimation->setDuration(ANIMATION_TIME); m_pPauseHideAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPauseHideAnimation->setStartValue(nShowAnimationNum); m_pPauseHideAnimation->setEndValue(nHideAnimationNum); connect(m_pPauseHideAnimation, &QPropertyAnimation::valueChanged, this, &Platform_AnimationLabel::onPauseAnimationChanged); connect(m_pPauseHideAnimation, &QSequentialAnimationGroup::finished, this, &Platform_AnimationLabel::onHideAnimation); connect(m_pPlayAnimationGroup, &QSequentialAnimationGroup::finished, this, &Platform_AnimationLabel::onHideAnimation); m_pPauseAnimationGroup->addAnimation(m_pPauseShowAnimation); m_pPauseAnimationGroup->addPause(DELAY_TIME); m_pPauseAnimationGroup->addAnimation(m_pPauseHideAnimation); } /** * @brief 初始化切换播放时的动画组 */ void Platform_AnimationLabel::initPlayAnimation() { m_pPlayAnimationGroup = new QSequentialAnimationGroup(this); m_pPlayShowAnimation = new QPropertyAnimation(this, "fps"); m_pPlayHideAnimation = new QPropertyAnimation(this, "fps"); const int nShowAnimationNum = 9; //显示动画图像数量 const int nHideAnimationNum = 18; //隐藏动画图像数量 m_pPlayShowAnimation->setDuration(ANIMATION_TIME); m_pPlayShowAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPlayShowAnimation->setStartValue(0); m_pPlayShowAnimation->setEndValue(nShowAnimationNum); connect(m_pPlayShowAnimation, &QPropertyAnimation::valueChanged, this, &Platform_AnimationLabel::onPlayAnimationChanged); m_pPlayHideAnimation->setDuration(ANIMATION_TIME); m_pPlayHideAnimation->setEasingCurve(QEasingCurve::InQuart); m_pPlayHideAnimation->setStartValue(nShowAnimationNum); m_pPlayHideAnimation->setEndValue(nHideAnimationNum); connect(m_pPlayHideAnimation, &QPropertyAnimation::valueChanged, this, &Platform_AnimationLabel::onPlayAnimationChanged); m_pPlayAnimationGroup->addAnimation(m_pPlayShowAnimation); m_pPlayAnimationGroup->addPause(DELAY_TIME); m_pPlayAnimationGroup->addAnimation(m_pPlayHideAnimation); } /** * @brief 设置此窗口在主窗口的位置 * @param pMainWindow 主窗口 */ void Platform_AnimationLabel::setGeometryByMainWindow(QWidget *pMainWindow) { if(pMainWindow) { QRect rect = pMainWindow->rect(); int nWidth = width(), nHeight = height(); QPoint pt = pMainWindow->mapToGlobal(rect.center())- QPoint(nWidth/2, nHeight/2); setGeometry(pt.x(), pt.y(), nWidth, nHeight); } } /** * @brief 具体实现播放动画的每一帧图像显示 * @param 当前显示图像的序号 */ void Platform_AnimationLabel::onPlayAnimationChanged(const QVariant &value) { if (m_bIsWM) { m_sFileName = QString(":/resources/icons/stop/%1.png").arg(value.toInt()); } else { m_sFileName = QString(":/resources/icons/stop_new/%1.png").arg(value.toInt()); } m_pixmap = QPixmap(m_sFileName); update(); } /** * @brief 具体实现暂停动画的每一帧图像显示 * @param 当前显示图像的序号 */ void Platform_AnimationLabel::onPauseAnimationChanged(const QVariant &value) { if (m_bIsWM) { m_sFileName = QString(":/resources/icons/start/%1.png").arg(value.toInt()); } else { m_sFileName = QString(":/resources/icons/start_new/%1.png").arg(value.toInt()); } m_pixmap = QPixmap(m_sFileName); update(); } void Platform_AnimationLabel::onHideAnimation() { hide(); if(m_pMainWindow) { m_pMainWindow->update(); } } /** * @brief 重载绘制事件函数 * @param event:qt绘制事件 */ void Platform_AnimationLabel::paintEvent(QPaintEvent *e) { QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter.drawPixmap(rect(), m_pixmap); QFrame::paintEvent(e); } /** * @brief 重载显示事件函数 * @param event:qt窗口显示事件 */ void Platform_AnimationLabel::showEvent(QShowEvent *e) { if(!CompositingManager::get().composited()) { //MPV绑定wid方式通过mainwindow获取显示坐标 setGeometryByMainWindow(m_pMainWindow); } QFrame::showEvent(e); } /** * @brief 重载移动事件函数 * @param event:qt窗口移动事件 */ void Platform_AnimationLabel::moveEvent(QMoveEvent *e) { if(!CompositingManager::get().composited()) {//MPV绑定wid方式通过mainwindow获取显示坐标 setGeometryByMainWindow(m_pMainWindow); } return QFrame::moveEvent(e); } deepin-movie-reborn-5.15.10/src/widgets/platform/platform_animationlabel.h000066400000000000000000000066561473342170300266670ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file * 此文件为切换播放暂停时窗口中间显示控件。 * */ #ifndef Platform_ANIMATIONLABEL_H #define Platform_ANIMATIONLABEL_H #include #include #include #include #include #include /** * @brief The AnimationLabel class * * 实现在切换播放、暂停状态的时候显示的动画效果。 */ class Platform_AnimationLabel : public QFrame { Q_PROPERTY(int fps READ fps WRITE setFps) public: /** * @brief AnimationLabel构造函数 * @param parent 父窗口 * @param pMainWindow 主窗口 */ explicit Platform_AnimationLabel(QWidget *parent = nullptr, QWidget *pMainWindow = nullptr); /** * @brief 由播放状态变为暂停状态 */ void pauseAnimation(); /** * @brief 由暂停状态变为播放状态 */ void playAnimation(); void setWM(bool); private: /** * @brief 初始化成员变量 * @param mainwindow 主窗口指针 */ void initMember(QWidget *pMainwindow); /** * @brief 初始化切换暂停时的动画组 */ void initPauseAnimation(); /** * @brief 初始化切换播放时的动画组 */ void initPlayAnimation(); /** * @brief 设置此窗口在主窗口的位置 * @param pMainWindow 主窗口 */ void setGeometryByMainWindow(QWidget *pMainWindow); public slots: /** * @brief 具体实现播放动画的每一帧图像显示 * @param 当前显示图像的序号 */ void onPlayAnimationChanged(const QVariant &value); /** * @brief 具体实现暂停动画的每一帧图像显示 * @param 当前显示图像的序号 */ void onPauseAnimationChanged(const QVariant &value); /** * @brief 隐藏当前窗口 * @param */ void onHideAnimation(); protected: /** * @brief 重载绘制事件函数 * @param event:qt绘制事件 */ void paintEvent(QPaintEvent *event); /** * @brief 重载显示事件函数 * @param event:qt窗口显示事件 */ void showEvent(QShowEvent *event) override; /** * @brief 重载移动事件函数 * @param event:qt窗口移动事件 */ void moveEvent(QMoveEvent *event) override; /** * @brief 重载鼠标释放事件函数 * @param event:qt鼠标事件 */ // void mouseReleaseEvent(QMouseEvent *event) override; QSequentialAnimationGroup *m_pPlayAnimationGroup; ///切换播放状态动画组 QPropertyAnimation *m_pPlayShowAnimation; ///切换播放状态显示动画 QPropertyAnimation *m_pPlayHideAnimation; ///切换播放状态隐藏动画 QSequentialAnimationGroup *m_pPauseAnimationGroup; ///切换暂停状态动画组 QPropertyAnimation *m_pPauseShowAnimation; ///切换暂停状态显示动画 QPropertyAnimation *m_pPauseHideAnimation; ///切换暂停状态隐藏动画 QWidget *m_pMainWindow; ///主窗口指针 QPixmap m_pixmap; ///当前动画显示的图像 QString m_sFileName; ///动画当前显示的图像文件 bool m_bIsWM; }; #endif // Platform_ANIMATIONLABEL_H deepin-movie-reborn-5.15.10/src/widgets/platform/platform_movie_progress_indicator.cpp000066400000000000000000000047621473342170300313360ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是负责实现全屏展示进度控件相关 */ #include "platform_movie_progress_indicator.h" #include "utils.h" namespace dmr { /** * @brief MovieProgressIndicator 构造函数 * @param parent 父窗口 */ Platform_MovieProgressIndicator::Platform_MovieProgressIndicator(QWidget *parent) : QFrame(parent) { initMember(); QFont font; //参考设计图 font.setPixelSize(14); QFontMetrics fontMetrics(font); this->setFont(font); m_fixedSize = QSize(qMax(52, fontMetrics.width("999:99")), fontMetrics.height() + 10); this->setFixedSize(m_fixedSize); this->setAttribute(Qt::WA_TranslucentBackground); this->setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(this->windowFlags() | Qt::ToolTip); } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent */ void Platform_MovieProgressIndicator::paintEvent(QPaintEvent *pPaintEvent) { QString sTimeText = QTime::currentTime().toString("hh:mm"); QPainter painter(this); painter.setFont(font()); painter.setPen(QColor(255, 255, 255, static_cast(255 * .4))); QFontMetrics fontMetrics(font()); QRect fontRect = fontMetrics.boundingRect(sTimeText); fontRect.moveCenter(QPoint(rect().center().x(), fontRect.height() / 2)); painter.drawText(fontRect, sTimeText); QPoint pos((m_fixedSize.width() - 48) / 2, rect().height() - 5); int pert = static_cast(qMin(m_pert * 10, 10.0)); for (int i = 0; i < 10; i++) { if (i >= pert) { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, static_cast(255 * .25))); } else { painter.fillRect(QRect(pos, QSize(3, 3)), QColor(255, 255, 255, static_cast(255 * .5))); } pos.rx() += 5; } QFrame::paintEvent(pPaintEvent); } /** * @brief initMember 初始化成员变量 */ void Platform_MovieProgressIndicator::initMember() { m_nElapsed = 0; m_pert = 0; m_fixedSize = QSize(0, 0); } /** * @brief updateMovieProgress 更新电影进度控件 * @param duration 总时长 * @param pos 当前时长 */ void Platform_MovieProgressIndicator::updateMovieProgress(qint64 duration, qint64 pos) { m_nElapsed = pos; if (duration != 0) m_pert = static_cast(((float)pos) / duration); update(); } } deepin-movie-reborn-5.15.10/src/widgets/platform/platform_movie_progress_indicator.h000066400000000000000000000025341473342170300307760ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是负责实现全屏展示进度控件相关 */ #ifndef _DMR_Platform_MOVIE_PROGRESS_INDICATOR_H #define _DMR_Platform_MOVIE_PROGRESS_INDICATOR_H #include namespace dmr { /** * @brief The MovieProgressIndicator class * 这个类是全屏时右上角电影进度的展示控件 */ class Platform_MovieProgressIndicator: public QFrame { Q_OBJECT public: /** * @brief MovieProgressIndicator 构造函数 * @param parent 父窗口 */ explicit Platform_MovieProgressIndicator(QWidget* parent); public slots: /** * @brief updateMovieProgress 更新电影进度控件 * @param duration 总时长 * @param pos 当前时长 */ void updateMovieProgress(qint64 nDuration, qint64 nPos); protected: /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent */ void paintEvent(QPaintEvent* pPaintEvent) override; private: /** * @brief initMember 初始化成员变量 */ void initMember(); private: qint64 m_nElapsed; ///当前播放的进度 qreal m_pert; ///当前播放百分比 QSize m_fixedSize; ///窗口大小 }; } #endif /* ifndef _DMR_Platform_MOVIE_PROGRESS_INDICATOR_H */ deepin-movie-reborn-5.15.10/src/widgets/platform/platform_notification_widget.cpp000066400000000000000000000207671473342170300302730ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是实现影院左上角信息弹窗 */ #include "platform_notification_widget.h" #include "utils.h" #include #include #include #include #include #include namespace dmr { /** * @brief NotificationWidget 构造函数 * @param parent 父窗口 */ Platform_NotificationWidget::Platform_NotificationWidget(QWidget *parent) : QFrame(parent), m_pMainWindow(parent) { initMember(); setObjectName("NotificationFrame"); setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true); m_pMainLayout = new QHBoxLayout(); m_pMainLayout->setContentsMargins(0, 0, 0, 0); setLayout(m_pMainLayout); m_pMsgLabel = new DLabel(); m_pMsgLabel->setFrameShape(QFrame::NoFrame); //添加在两种主题下文字效果,使其更加明显 int nType = DGuiApplicationHelper::instance()->themeType(); if (nType == 2) { m_pMsgLabel->setForegroundRole(DPalette::TextLively); } else { m_pMsgLabel->setForegroundRole(QPalette::ToolTipText); } m_pTimer = new QTimer(this); if (!utils::check_wayland_env()) { m_pTimer->setInterval(2000); } else { m_pTimer->setInterval(500); } m_pTimer->setSingleShot(true); connect(m_pTimer, &QTimer::timeout, this, &QWidget::hide); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, [=](int nType) { if (nType == 2) { m_pMsgLabel->setForegroundRole(DPalette::TextLively); } else { m_pMsgLabel->setForegroundRole(QPalette::ToolTipText); } }); } /** * @brief showEvent 重载显示事件函数 * @param pShowEvent 显示事件 */ void Platform_NotificationWidget::showEvent(QShowEvent *event) { ensurePolished(); if (m_pMainLayout->indexOf(m_pIconLabel) == -1) { resize(m_pMsgLabel->sizeHint().width() + m_pMainLayout->contentsMargins().left() + m_pMainLayout->contentsMargins().right(), height()); adjustSize(); } syncPosition(); QFrame::showEvent(event); } /** * @brief resizeEvent 重载大小变化事件函数 * @param pResizeEvent 大小变化事件 */ void Platform_NotificationWidget::resizeEvent(QResizeEvent *re) { QFrame::resizeEvent(re); } /** * @brief syncPosition 同步控件位置 */ void Platform_NotificationWidget::syncPosition() { QRect geom = m_pMainWindow->geometry(); switch (m_pAnchor) { case ANCHOR_BOTTOM: move(geom.center().x() - size().width() / 2, geom.bottom() - m_nAnchorDist - height()); break; case ANCHOR_NORTH_WEST: move(geom.topLeft() + m_anchorPoint); break; case ANCHOR_NONE: move(geom.center().x() - size().width() / 2, geom.center().y() - size().height() / 2); break; } } /** * @brief syncPosition 同步控件位置 * @param rect 控件的位置 */ void Platform_NotificationWidget::syncPosition(QRect rect) { QRect geom = rect; switch (m_pAnchor) { case ANCHOR_BOTTOM: move(geom.center().x() - size().width() / 2, geom.bottom() - m_nAnchorDist - height()); break; case ANCHOR_NORTH_WEST: move(geom.topLeft() + m_anchorPoint); break; case ANCHOR_NONE: move(geom.center().x() - size().width() / 2, geom.center().y() - size().height() / 2); break; } } /** * @brief popup 显示函数 * @param msg 传入信息内容 * @param flag 是否自动隐藏,默认为是 */ void Platform_NotificationWidget::popup(const QString &msg, bool flag) { m_pMainLayout->setContentsMargins(14, 4, 14, 4); if (m_pMainLayout->indexOf(m_pMsgLabel) == -1) { m_pMainLayout->addWidget(m_pMsgLabel); } setFixedHeight(30); m_pMsgLabel->setText(msg); if (flag) { QList currentApplicationWindowList; const QWindowList &list = qApp->allWindows(); currentApplicationWindowList.reserve(list.size()); for (auto window : list) { if (window->property("_q_foreignWinId").isValid()) { continue; } if(window->isVisible()) { currentApplicationWindowList.append(window->winId()); } } QVector wmClientList = DWindowManagerHelper::instance()->currentWorkspaceWindowIdList(); bool currentWindow = false; for (WId wid : wmClientList) { if (currentApplicationWindowList.contains(wid)){ currentWindow = true; continue; } if (false == currentWindow){ continue; } if (DForeignWindow *w = DForeignWindow::fromWinId(wid)) { QRect msgRect = this->geometry(); if (w) { QRect wRect = w->geometry(); if (msgRect.x() < wRect.x() + wRect.width() && msgRect.x() + msgRect.width() > wRect.x() && msgRect.y() < wRect.y() + wRect.height() && msgRect.y() + msgRect.height() > wRect.y()) { return; // 重叠 } } } } if (!m_pMainWindow->isActiveWindow()) { m_pTimer->start(500); } else m_pTimer->start(2000); } show(); raise(); } /** * @brief updateWithMessage 更新显示信息 * @param newMsg 显示信息 * @param flag 是否自动隐藏,默认为是 */ void Platform_NotificationWidget::updateWithMessage(const QString &newMsg, bool flag) { if (m_pIconLabel) { m_pIconLabel->setVisible(false); } QFont font; font.setPixelSize(12); QFontMetrics fontMetrics(font); QString sMsg = fontMetrics.elidedText(newMsg, Qt::ElideMiddle, m_pMainWindow->width() - 12 - 12 - 60); if (isVisible()) { m_pMsgLabel->setText(sMsg); resize(m_pMsgLabel->sizeHint().width() + m_pMainLayout->contentsMargins().left() + m_pMainLayout->contentsMargins().right(), height()); adjustSize(); if (flag) { if (!m_pMainWindow->isActiveWindow()) m_pTimer->start(500); else m_pTimer->start(2000); } syncPosition(); } else { popup(sMsg, flag); } } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void Platform_NotificationWidget::paintEvent(QPaintEvent *pPaintEvent) { //参考设计图 const float fRadius = 8; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); bool bLight = (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()); //按照ui建议,突出文字 QColor color = QColor(42, 42, 42, 255 * 0.95); QColor borderColor = QColor(0, 0, 0, 255 * 0.3); if (bLight) { color = QColor(247, 247, 247, 255 * 0.95); borderColor = QColor(0, 0, 0, 255 * 0.05); } if(m_bIsWM) { painter.fillRect(rect(), Qt::transparent); { QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.setPen(borderColor); painter.drawPath(painterPath); } QRect viewRect = rect().marginsRemoved(QMargins(1, 1, 1, 1)); QPainterPath painterPath; painterPath.addRoundedRect(rect(), static_cast(fRadius), static_cast(fRadius)); painter.fillPath(painterPath, color); QFrame::paintEvent(pPaintEvent); } else { color.setAlpha(255); painter.fillRect(rect(), color); if(bLight) borderColor.setNamedColor("#F2F2F2"); else borderColor.setNamedColor("#1C1C1C"); painter.setPen(borderColor); painter.drawRect(rect()); } } /** * @brief initMember 初始化成员变量 */ void Platform_NotificationWidget::initMember() { m_pMsgLabel = nullptr; m_pIconLabel = nullptr; m_pTimer = nullptr; m_pFrame = nullptr; m_pMainLayout = nullptr; m_pAnchor = ANCHOR_NONE; m_nAnchorDist = 10; m_bIsWheel = true; } } deepin-movie-reborn-5.15.10/src/widgets/platform/platform_notification_widget.h000066400000000000000000000062451473342170300277330ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** *@file 这个文件是实现影院左上角信息弹窗 */ #ifndef _DMR_Platform_NOTIFICATION_WIDGET_H #define _DMR_Platform_NOTIFICATION_WIDGET_H #include #include #include #include #include "compositing_manager.h" DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief The NotificationWidget class * 这个类是影院左上角弹窗的类 */ class Platform_NotificationWidget: public QFrame { Q_OBJECT public: enum MessageAnchor { ANCHOR_NONE = 0, ANCHOR_BOTTOM, ANCHOR_NORTH_WEST }; /** * @brief NotificationWidget 构造函数 * @param parent 父窗口 */ explicit Platform_NotificationWidget(QWidget *parent = 0); /** * @brief setAnchor 设置信息弹窗位置 * @param messageAnchor 位置 */ void setAnchor(MessageAnchor messageAnchor) { m_pAnchor = messageAnchor; } /** * @brief setAnchorDistance 同步控件高度 * @param v 控件高度 */ void setAnchorDistance(int v) { m_nAnchorDist = v; } /** * @brief setAnchorPoint 设置控件位置 * @param p 位置点 */ void setAnchorPoint(const QPoint& p) { m_anchorPoint = p; } void setWM(bool isWM) { m_bIsWM = isWM; } public slots: /** * @brief popup 显示函数 * @param msg 传入信息内容 * @param flag 是否自动隐藏,默认为是 */ void popup(const QString& msg, bool flag = true); /** * @brief updateWithMessage 更新显示信息 * @param newMsg 显示信息 * @param flag 是否自动隐藏,默认为是 */ void updateWithMessage(const QString& newMsg, bool flag = true); /** * @brief syncPosition 同步控件位置 */ void syncPosition(); /** * @brief syncPosition 同步控件位置 * @param rect 控件的位置 */ void syncPosition(QRect rect); protected: /** * @brief showEvent 重载显示事件函数 * @param pShowEvent 显示事件 */ void showEvent(QShowEvent *pShowEvent) override; /** * @brief resizeEvent 重载大小变化事件函数 * @param pResizeEvent 大小变化事件 */ void resizeEvent(QResizeEvent *pResizeEvent) override; /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void paintEvent(QPaintEvent* pPaintEvent) override; private: /** * @brief initMember 初始化成员变量 */ void initMember(); private: QWidget *m_pMainWindow; ///主窗口 DLabel *m_pMsgLabel; ///文本信息label控件 QLabel *m_pIconLabel; ///图标Label控件 QTimer *m_pTimer; ///消失定时器 QFrame *m_pFrame; /// QHBoxLayout *m_pMainLayout; ///窗口主布局 MessageAnchor m_pAnchor; ///控件位置 int m_nAnchorDist; /// QPoint m_anchorPoint; ///控件位置点 bool m_bIsWheel; /// bool m_bIsWM; }; } #endif /* ifndef _DMR_Platform_NOTIFICATION_WIDGET_H */ deepin-movie-reborn-5.15.10/src/widgets/platform/platform_playlist_widget.cpp000066400000000000000000001414621473342170300274420ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "platform_playlist_widget.h" #include "playlist_model.h" #include "compositing_manager.h" #include "player_engine.h" #include "platform_toolbox_proxy.h" #include "actions.h" #include "platform/platform_mainwindow.h" #include "utils.h" #include "movieinfo_dialog.h" #include "tip.h" #include #include #include #include #include "../accessibility/ac-deepin-movie-define.h" #define PLAYLIST_FIXED_WIDTH 800 #define POPUP_DURATION 350 namespace dmr { class Platform_PlayItemTooltipHandler: public QObject { public: explicit Platform_PlayItemTooltipHandler(QObject *parent): QObject(parent) {} protected: bool eventFilter(QObject *obj, QEvent *event) { switch (event->type()) { case QEvent::ToolTip: { QHelpEvent *he = static_cast(event); Tip *tip = obj->property("HintWidget").value(); QWidget *item = tip->property("for").value(); DLabel *lb = tip->findChild("TipText"); if (tip->isVisible()) return true; //tip弹出后不再更新位置 lb->setAlignment(Qt::AlignLeft); tip->update(); tip->show(); tip->adjustSize(); tip->raise(); QPoint pos = he->globalPos() + QPoint{0, 10}; int dw = qApp->desktop()->availableGeometry(item).width(); if (pos.x() + tip->width() > dw) { pos.rx() = dw - tip->width(); } tip->move(pos); return true; } case QEvent::Leave: { auto tip = obj->property("HintWidget").value(); tip->hide(); event->ignore(); break; } default: break; } return QObject::eventFilter(obj, event); // standard event processing } }; enum ItemState { Normal, Playing, Invalid, // gets deleted or similar }; class Platform_PlayItemWidget: public QFrame { Q_OBJECT public: friend class Platform_PlaylistWidget; Platform_PlayItemWidget(const PlayItemInfo &pif, QListWidget *list = nullptr, int index = 0, Platform_PlaylistWidget *parent = nullptr) : QFrame(), _pif {pif}, _listWidget {list}, _playlist{parent} { _thumb = nullptr; m_pSvgWidget = nullptr; setProperty("PlayItemThumb", "true"); //setState(ItemState::Normal); setFrameShape(QFrame::NoFrame); this->setObjectName(PLAYITEM_WIDGET); auto kd = "local"; if (!_pif.url.isLocalFile()) { if (_pif.url.scheme().startsWith("dvd")) { kd = "dvd"; } else { kd = "network"; } } setProperty("ItemKind", kd); // it's the same for all themes _play = QPixmap(":/resources/icons/dark/normal/film-top.svg"); _play.setDevicePixelRatio(qApp->devicePixelRatio()); setFixedSize(_playlist->width() - 230, 36); auto *l = new QHBoxLayout(this); l->setContentsMargins(17, 0, 0, 0); l->setSpacing(10); setLayout(l); _index = new DLabel(this); DFontSizeManager::instance()->bind(_index, DFontSizeManager::T9); _index->setText(QString::number(index + 1)); _index->setFixedWidth(22); l->addWidget(_index); if (_pif.thumbnail.isNull() && _pif.thumbnail_dark.isNull()) { if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { m_pSvgWidget = new QSvgWidget(QString(":/resources/icons/music-dark.svg"), this); } else { m_pSvgWidget = new QSvgWidget(QString(":/resources/icons/music-light.svg"), this); } m_pSvgWidget->setFixedSize(42, 24); } else { if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { _thumb = new Platform_ListPic(_pif.thumbnail_dark.scaled(QSize(42, 24)), this); } else { _thumb = new Platform_ListPic(_pif.thumbnail.scaled(QSize(42, 24)), this); } } if (_thumb) { l->addWidget(_thumb); } else { l->addWidget(m_pSvgWidget); } QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &Platform_PlayItemWidget::slotThemeTypeChanged); auto *vl = new QHBoxLayout; vl->setContentsMargins(0, 0, 0, 0); vl->setSpacing(0); l->addLayout(vl); // vl->addStretch(); _name = new DLabel(this); _name->setProperty("Name", true); _name->setFrameShape(QFrame::NoFrame); _name->setTextInteractionFlags(Qt::NoTextInteraction); _name->setFixedWidth(width() - 180); _name->installEventFilter(this); _name->setAutoFillBackground(false); vl->addWidget(_name); _time = new DLabel(this); DFontSizeManager::instance()->bind(_time, DFontSizeManager::T9); _time->setProperty("Time", true); _time->setText(_pif.mi.durationStr()); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } vl->addStretch(); l->addWidget(_time); l->addSpacing(10); _closeBtn = new DFloatingButton(DStyle::SP_CloseButton, this); _closeBtn->setFocusPolicy(Qt::NoFocus); _closeBtn->setObjectName(PLAYITEN_CLOSE_BUTTON); _closeBtn->setAccessibleName(PLAYITEN_CLOSE_BUTTON); _closeBtn->setIconSize(QSize(28, 28)); _closeBtn->setFixedSize(25, 25); _closeBtn->hide(); connect(_closeBtn, &DFloatingButton::clicked, this, &Platform_PlayItemWidget::closeButtonClicked); setToolTip(_pif.mi.title); auto th = new Platform_PlayItemTooltipHandler(this); auto t = new Tip(QPixmap(), _pif.mi.title, nullptr); t->setWindowFlags(Qt::ToolTip | Qt::CustomizeWindowHint); t->setText(_pif.mi.title); t->resetSize(QApplication::desktop()->availableGeometry().width()); t->setAttribute(Qt::WA_TranslucentBackground); t->setProperty("for", QVariant::fromValue(this)); t->layout()->setContentsMargins(5, 10, 5, 10); t->hide(); setProperty("HintWidget", QVariant::fromValue(t)); if (!utils::check_wayland_env()) installEventFilter(th); connect(_playlist, &Platform_PlaylistWidget::sizeChange, this, &Platform_PlayItemWidget::slotSizeChange); m_opacityEffect = new QGraphicsOpacityEffect; _time->setGraphicsEffect(m_opacityEffect); m_opacityEffect_1 = new QGraphicsOpacityEffect; _index->setGraphicsEffect(m_opacityEffect_1); setState(ItemState::Normal); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedHeight(24); _closeBtn->setIconSize(QSize(18, 18)); _closeBtn->setFixedSize(17, 17); _name->setFixedHeight(24); if (_thumb) _thumb->setFixedSize(28, 16); else m_pSvgWidget->setFixedSize(28, 16); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedHeight(36); _closeBtn->setIconSize(QSize(28, 28)); _closeBtn->setFixedSize(25, 25); _name->setFixedHeight(36); if (_thumb) _thumb->setFixedSize(42, 24); else m_pSvgWidget->setFixedSize(42, 24); } else { setFixedHeight(24); _closeBtn->setIconSize(QSize(18, 18)); _closeBtn->setFixedSize(17, 17); _name->setFixedHeight(24); if (_thumb) _thumb->setFixedSize(28, 16); else m_pSvgWidget->setFixedSize(28, 16); } updateClosePosition(); }); #endif } ~Platform_PlayItemWidget() override { if (m_pSvgWidget) { delete m_pSvgWidget; m_pSvgWidget = nullptr; } if (_thumb) { delete _thumb; _thumb = nullptr; } } void updateInfo(const PlayItemInfo &pif) { _pif = pif; _time->setText(_pif.mi.durationStr()); setToolTip(_pif.mi.title); updateNameText(); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } update(); } void setState(ItemState is) { setProperty("ItemState", is); updateForeground(); } ItemState state() const { return static_cast(property("ItemState").toInt()); } void setIndex(int index) { _index->setText(QString::number(index + 1)); } void setHovered(bool v) { if (_hovered != v) { _hovered = v; setProperty("hovered", v); } } void setCurItemHovered(bool v) { if (_hovered != v) { _hovered = v; setProperty("hovered", v); } if (v) { _closeBtn->show(); _closeBtn->raise(); } else { _closeBtn->hide(); } updateClosePosition(); update(); } bool getBIsSelect() const { return m_bIsSelect; } void setBIsSelect(bool bIsSelect) { m_bIsSelect = bIsSelect; updateForeground(); } void doDoubleClick() { //FIXME: there is an potential inconsistency with model if pif did changed //(i.e gets deleted). _pif.refresh(); _time->setText(_pif.mi.durationStr()); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } if (!_pif.url.isLocalFile() || _pif.info.exists()) { emit doubleClicked(); }else{ //fixed:影院循环播放10个smb上的视频一段时间后,点击播放按钮或点击列表中的视频没反应 emit _playlist->engine()->sigInvalidFile(QFileInfo(_pif.url.toLocalFile()).fileName()); } } signals: void closeButtonClicked(); void doubleClicked(); private slots: void slotThemeTypeChanged() { // QPalette pa; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { if (_thumb) { _thumb->setPic(_pif.thumbnail); } else { m_pSvgWidget->load(QString(":/resources/icons/music-light.svg")); } // pa.setColor(QPalette::BrightText, Qt::black); // _name->setPalette(pa); // _index->setPalette(pa); updateForeground(); }; if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { if (_thumb) { _thumb->setPic(_pif.thumbnail_dark); } else { m_pSvgWidget->load(QString(":/resources/icons/music-dark.svg")); } // pa.setColor(QPalette::BrightText, Qt::white); // _name->setPalette(pa); // _index->setPalette(pa); updateForeground(); } } void slotSizeChange() { setFixedWidth(_playlist->width() - 230); } protected: void updateClosePosition() { auto margin = 10; _closeBtn->move(width() - _closeBtn->width() - margin, (height() - _closeBtn->height()) / 2); } void updateForeground() { m_highlightColor = Dtk::Gui::DGuiApplicationHelper::instance()->applicationPalette().highlight().color(); if(m_bIsSelect) { _name->setForegroundRole(DPalette::Text); _index->setForegroundRole(DPalette::Text); QPalette pa; pa.setColor(QPalette::Text, Qt::white); _name->setPalette(pa); _index->setPalette(pa); update(); } else { if (state() == ItemState::Playing) { _name->setForegroundRole(DPalette::Highlight); _index->setForegroundRole(DPalette::Highlight); _time->setForegroundRole(DPalette::Highlight); } else { _name->setForegroundRole(DPalette::BrightText); _index->setForegroundRole(DPalette::BrightText); _time->setForegroundRole(DPalette::BrightText); QPalette pa; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa.setColor(QPalette::BrightText, Qt::black); _name->setPalette(pa); _index->setPalette(pa); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { pa.setColor(QPalette::BrightText, Qt::white); _name->setPalette(pa); _index->setPalette(pa); } } } } void leaveEvent(QEvent *e) override { _closeBtn->hide(); setHovered(false); QFrame::leaveEvent(e); } void enterEvent(QEvent *e) override { _closeBtn->show(); _closeBtn->raise(); updateClosePosition(); setHovered(true); QFrame::enterEvent(e); } bool eventFilter(QObject *obj, QEvent *e) override { if (e->type() == QEvent::MouseButtonDblClick) { doDoubleClick(); return true; } return QWidget::eventFilter(obj, e); } void resizeEvent(QResizeEvent *re) override { updateClosePosition(); _name->setFixedWidth(width() - 180); updateNameText(); QFrame::resizeEvent(re); } bool event(QEvent *ee) override { if (ee->type() == QEvent::Move) { } return QFrame::event(ee); } void updateNameText() { _name->setText(utils::ElideText(_pif.mi.title, {width() - 242, 36}, QTextOption::NoWrap, _name->font(), Qt::ElideRight, 18, width() - 242)); _name->setCursor(Qt::ArrowCursor); } void showEvent(QShowEvent *se) override { updateNameText(); QFrame::showEvent(se); } void mouseDoubleClickEvent(QMouseEvent *me) override { doDoubleClick(); QFrame::mouseDoubleClickEvent(me); } void paintEvent(QPaintEvent *pe) override { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRectF bgRect; bgRect.setSize(size()); const DPalette pal = QGuiApplication::palette(); if (!(_index->text().toInt() % 2)) { QColor bgColor; if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { bgColor = QColor(255, 255, 255); bgColor.setAlphaF(0.05); } else { bgColor = pal.color(DPalette::AlternateBase); } QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, bgColor); } if (_hovered) { DPalette pa = DApplicationHelper::instance()->palette(this); pa.setBrush(DPalette::Text, pa.color(DPalette::Highlight)); QColor bgColor(255, 255, 255, static_cast(255 * 0.05)); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { bgColor = QColor(0, 0, 0, static_cast(255 * 0.05)); } QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, bgColor); } if (!_pif.valid) { setState(ItemState::Invalid); _name->setForegroundRole(DPalette::TextTips); _time->setText(tr("The file does not exist")); } if (m_bIsSelect) { _time->hide(); _closeBtn->show(); _closeBtn->raise(); QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, m_highlightColor); } else { _time->show(); _closeBtn->hide(); } QFrame::paintEvent(pe); } private: QString _bg; DLabel *_index; Platform_ListPic *_thumb; QSvgWidget *m_pSvgWidget; DLabel *_name; DLabel *_time; QPixmap _play; PlayItemInfo _pif; DFloatingButton *_closeBtn; QListWidget *_listWidget {nullptr}; bool _hovered {false}; Platform_PlaylistWidget *_playlist{nullptr}; bool m_bIsSelect = false; QGraphicsOpacityEffect *m_opacityEffect {nullptr}; QGraphicsOpacityEffect *m_opacityEffect_1 {nullptr}; QColor m_highlightColor; }; class Platform_MainWindowListener: public QObject { public: explicit Platform_MainWindowListener(QObject *parent): QObject(parent) {} protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *me = static_cast(event); if (me->buttons() == Qt::LeftButton) { if (!m_bClicked) { m_bClicked = true; m_lastPoint = me->globalPos(); QTimer::singleShot(200, this, [ = ] { if (!m_bClicked) { return; } m_bClicked = false; auto *plw = dynamic_cast(parent()); auto *mw = dynamic_cast(plw->parent()); if (mw->insideResizeArea(m_lastPoint)) return; if (plw->state() == Platform_PlaylistWidget::Opened && !plw->underMouse()) { mw->requestAction(ActionFactory::ActionKind::TogglePlaylist); } }); } } return false; } else if (event->type() == QEvent::MouseButtonDblClick) { m_bClicked = false; return QObject::eventFilter(obj, event); }/* else if (event->type() == QEvent::KeyRelease) { //这段代码会导致Enter播放列表后,播放列表关闭 QKeyEvent *key = static_cast(event); if (key->key() == Qt::Key_Return || key->key() == Qt::Key_Enter) { auto *plw = dynamic_cast(parent()); if (plw->state() == PlaylistWidget::State::Opened) { DListWidget *playlist = plw->get_playlist(); for (int loop = 0; loop < playlist->count(); loop++) { auto piw = dynamic_cast(playlist->itemWidget(playlist->item(loop))); if (piw->getBIsSelect()) { piw->doubleClicked(); return false; } } } } return false; }*/ else { // standard event processing return QObject::eventFilter(obj, event); } } private: bool m_bClicked {false}; QPoint m_lastPoint; }; /** * @brief 获取播放列表内的所有鼠标事件 * */ class Platform_MouseEventListener: public QObject { public: explicit Platform_MouseEventListener(QObject *parent): QObject(parent) {} void setListWidget(DListWidget* listWidget) { m_pListWidget = listWidget; } protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *pMouseEvent = static_cast(event); if (pMouseEvent->buttons() == Qt::LeftButton && !m_pListWidget->itemAt(pMouseEvent->pos())) { Platform_PlayItemWidget *pItem = reinterpret_cast(m_pListWidget->itemWidget(m_pListWidget->currentItem())); if(pItem) { pItem->setBIsSelect(false); // 点击播放列表空白处,取消item选中效果 m_pListWidget->update(); } } } return QObject::eventFilter(obj, event); } private: DListWidget* m_pListWidget; }; Platform_PlaylistWidget::Platform_PlaylistWidget(QWidget *mw, PlayerEngine *mpv) : QWidget(mw), _engine(mpv), _mw(static_cast(mw)) { bool composited = CompositingManager::get().composited(); setAttribute(Qt::WA_TranslucentBackground, false); this->setObjectName(PLAYLIST_WIDGET); paOpen = nullptr; paClose = nullptr; pSelectItemWgt = nullptr; QVBoxLayout *mainVLayout = new QVBoxLayout(this); mainVLayout->setContentsMargins(0, 0, 0, 0); mainVLayout->setSpacing(0); setLayout(mainVLayout); QHBoxLayout *mainLayout = new QHBoxLayout(); mainLayout->setContentsMargins(10, 0, 10, 0); mainLayout->setSpacing(0); mainLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop); QWidget *topspec = new QWidget; topspec->setFixedHeight(20); mainVLayout->addWidget(topspec); mainVLayout->addLayout(mainLayout); QWidget *left = new QWidget(); left->setObjectName(LEFT_WIDGET); left->setFixedSize(197, 288); left->setContentsMargins(0, 0, 0, 0); left->setAttribute(Qt::WA_TranslucentBackground, false); left->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred)); _title = new DLabel(); DFontSizeManager::instance()->bind(_title, DFontSizeManager::T3); _title->setForegroundRole(DPalette::ToolTipText); _title->setText(tr("Playlist")); _num = new DLabel(); _num->setForegroundRole(DPalette::BrightText); QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect; _num->setGraphicsEffect(opacityEffect); opacityEffect->setOpacity(0.5); _num->setText(""); DFontSizeManager::instance()->bind(_num, DFontSizeManager::T6); _num->setContentsMargins(0, 0, 0, 0); mainLayout->addWidget(left); auto *leftinfo = new QVBoxLayout; leftinfo->setContentsMargins(0, 0, 0, 0); leftinfo->setSpacing(0); left->setLayout(leftinfo); leftinfo->setAlignment(Qt::AlignLeft | Qt::AlignTop); leftinfo->addWidget(_title); leftinfo->addSpacing(4); leftinfo->addWidget(_num); leftinfo->addSpacing(6); m_pClearButton = new DPushButton(); m_pClearButton->setObjectName(CLEAR_PLAYLIST_BUTTON); m_pClearButton->setAccessibleName(CLEAR_PLAYLIST_BUTTON); m_pClearButton->setIcon(QIcon::fromTheme("dcc_clearlist")); m_pClearButton->setText(tr("Empty")); m_pClearButton->setFocusPolicy(Qt::TabFocus); m_pClearButton->installEventFilter(this); DFontSizeManager::instance()->bind(m_pClearButton, DFontSizeManager::T6); DPalette pa_cb = DApplicationHelper::instance()->palette(m_pClearButton); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa_cb.setBrush(QPalette::Light, QColor(100, 100, 100, 255)); pa_cb.setBrush(QPalette::Dark, QColor(92, 92, 92, 255)); } else { pa_cb.setBrush(QPalette::Light, QColor(85, 84, 84, 255)); pa_cb.setBrush(QPalette::Dark, QColor(65, 65, 65, 255)); } pa_cb.setBrush(QPalette::ButtonText, QColor(255, 255, 255, 255)); m_pClearButton->setPalette(pa_cb); m_pClearButton->setContentsMargins(0, 0, 0, 0); QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::paletteTypeChanged, m_pClearButton, [ = ]() { DPalette pa_cBtn = DApplicationHelper::instance()->palette(m_pClearButton); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa_cBtn.setBrush(QPalette::Light, QColor(100, 100, 100, 255)); pa_cBtn.setBrush(QPalette::Dark, QColor(92, 92, 92, 255)); } else { pa_cBtn.setBrush(QPalette::Light, QColor(85, 84, 84, 255)); pa_cBtn.setBrush(QPalette::Dark, QColor(65, 65, 65, 255)); } m_pClearButton->setPalette(pa_cb); }); leftinfo->addWidget(m_pClearButton); connect(m_pClearButton, &QPushButton::clicked, _engine, &PlayerEngine::clearPlaylist); left->setContentsMargins(36, 0, 0, 0); m_pClearButton->setContentsMargins(0, 0, 0, 70); _num->setContentsMargins(0, 0, 0, 0); QWidget *right = new QWidget(); right->setObjectName(RIGHT_LIST_WIDGET); auto *rightinfo = new QVBoxLayout; rightinfo->setContentsMargins(0, 0, 0, 0); rightinfo->setSpacing(0); right->setLayout(rightinfo); right->setContentsMargins(0, 0, 0, 0); mainLayout->addWidget(right); _playlist = new DListWidget(); _playlist->setAttribute(Qt::WA_DeleteOnClose); _playlist->setFixedSize(width() - 205, 288); _playlist->setContentsMargins(0, 0, 0, 0); _playlist->installEventFilter(this); _playlist->viewport()->setAutoFillBackground(false); _playlist->setAutoFillBackground(false); _playlist->setObjectName(PLAYLIST); _playlist->viewport()->setObjectName(FILE_LIST); rightinfo->addWidget(_playlist); _playlist->setAttribute(Qt::WA_TranslucentBackground, false); _playlist->setFrameShape(QFrame::NoFrame); _playlist->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); _playlist->setSelectionMode(QListView::NoSelection); _playlist->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); _playlist->setResizeMode(QListView::Adjust); _playlist->setDragDropMode(QListView::InternalMove); _playlist->setSpacing(0); _playlist->viewport()->setAcceptDrops(true); _playlist->setDragEnabled(true); Platform_MouseEventListener* pListener = new Platform_MouseEventListener(this); pListener->setListWidget(_playlist); _playlist->viewport()->installEventFilter(pListener); this->installEventFilter(pListener); connect(_playlist, &DListWidget::itemClicked, this, &Platform_PlaylistWidget::slotShowSelectItem); connect(_playlist, &DListWidget::currentItemChanged, this, &Platform_PlaylistWidget::OnItemChanged); _playlist->setContentsMargins(0, 0, 0, 0); if (!composited) { _playlist->setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint); _playlist->setAttribute(Qt::WA_NativeWindow); } setTabOrder(m_pClearButton, _playlist); #ifndef USE_DXCB auto *mwl = new Platform_MainWindowListener(this); mw->installEventFilter(mwl); #endif if (!_closeMapper) { _closeMapper = new QSignalMapper(this); connect(_closeMapper, static_cast(&QSignalMapper::mapped), this, &Platform_PlaylistWidget::slotCloseItem); } if (!_activateMapper) { _activateMapper = new QSignalMapper(this); connect(_activateMapper, static_cast(&QSignalMapper::mapped), this, &Platform_PlaylistWidget::slotDoubleClickedItem); } #ifdef DTKWIDGET_CLASS_DSizeMode connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { for (int i = 0; i < _playlist->count(); i++) { QListWidgetItem *item = _playlist->item(i); item->setSizeHint(QSize(_playlist->itemWidget(item)->width(), 36)); } } else { for (int i = 0; i < _playlist->count(); i++) { QListWidgetItem *item = _playlist->item(i); item->setSizeHint(QSize(_playlist->itemWidget(item)->width(), 24)); } } }); #endif connect(&_engine->playlist(), &PlaylistModel::emptied, this, &Platform_PlaylistWidget::clear); connect(&_engine->playlist(), &PlaylistModel::itemsAppended, this, &Platform_PlaylistWidget::appendItems); connect(&_engine->playlist(), &PlaylistModel::itemRemoved, this, &Platform_PlaylistWidget::removeItem); connect(&_engine->playlist(), &PlaylistModel::currentChanged, this, &Platform_PlaylistWidget::updateItemStates); connect(&_engine->playlist(), &PlaylistModel::itemInfoUpdated, this, &Platform_PlaylistWidget::updateItemInfo); QTimer::singleShot(10, this, &Platform_PlaylistWidget::loadPlaylist); connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToShow, [ = ]() { QTimer::singleShot(20, [ = ]() { if (_mouseItem) { _clickedItem = _mouseItem; (static_cast(_mouseItem))->setHovered(true); } }); }); connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToHide, [ = ]() { m_pClearButton->update(); if (_mouseItem) { (static_cast(_mouseItem))->setHovered(false); } }); connect(_playlist->model(), &QAbstractItemModel::rowsMoved, this, &Platform_PlaylistWidget::slotRowsMoved); } Platform_PlaylistWidget::~Platform_PlaylistWidget() { } void Platform_PlaylistWidget::updateSelectItem(const int key) { auto curItem = _playlist->currentItem(); auto curRow = _playlist->row(curItem); qInfo() << "prevRow..." << curRow; Platform_PlayItemWidget *prevItemWgt = nullptr; if (curItem) { prevItemWgt = reinterpret_cast(_playlist->itemWidget(curItem)); } if (key == Qt::Key_Up) { if (curRow == -1) { _index = curRow + 1; } else { _index = curRow - 1; } if (_index < 0) { return; } _playlist->setCurrentRow(_index); qInfo() << "Enter Key_Up..." << _index; auto curItemWgt = reinterpret_cast(_playlist->itemWidget(_playlist->item(_index))); if (prevItemWgt) { prevItemWgt->setBIsSelect(false); } if (curItemWgt) { curItemWgt->setBIsSelect(true); } } else if (key == Qt::Key_Down) { if (_index >= _playlist->count() - 1) { return; } _index = curRow + 1; _playlist->setCurrentRow(_index); qInfo() << "Enter Key_Down..." << _index; auto curItemWgt = reinterpret_cast(_playlist->itemWidget(_playlist->item(_index))); if (prevItemWgt) { prevItemWgt->setBIsSelect(false); } if (curItemWgt) { curItemWgt->setBIsSelect(true); } } else if (key == Qt::Key_Enter || key == Qt::Key_Return) { if (m_pClearButton == focusWidget()) { //focus在清空按钮上则清空列表 _engine->clearPlaylist(); } else { slotDoubleClickedItem(prevItemWgt); //Enter键播放 } } } void Platform_PlaylistWidget::clear() { _playlist->clear(); QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); _engine->getplaylist()->clearLoad(); } void Platform_PlaylistWidget::updateItemInfo(int id) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(id))); if (piw == nullptr) //update info thx return ; piw->updateInfo(_engine->playlist().items()[id]); } void Platform_PlaylistWidget::updateItemStates() { qInfo() << __func__ << _playlist->count() << "current = " << _engine->playlist().current(); for (int i = 0; i < _playlist->count(); i++) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); auto old = piw->state(); piw->setState(ItemState::Normal); if (!piw->_pif.valid) { piw->setState(ItemState::Invalid); } if (i == _engine->playlist().current()) { if (piw->state() != ItemState::Playing) { //scrollToItem只能更新scroll位置,不能同步列表项 //_playlist->scrollToItem(_playlist->item(i)); _playlist->setCurrentRow(i); piw->setState(ItemState::Playing); } } } } void Platform_PlaylistWidget::showItemInfo() { if (!_mouseItem) return; auto item = dynamic_cast(_mouseItem); if (item) { MovieInfoDialog mid(item->_pif, _mw); mid.exec(); } } void Platform_PlaylistWidget::openItemInFM() { if (!_mouseItem) return; auto item = dynamic_cast(_mouseItem); if (item) { utils::ShowInFileManager(item->_pif.mi.filePath); } } void Platform_PlaylistWidget::removeClickedItem(bool isShortcut) { if (isShortcut && isVisible()) { for (int i = 0; i < _playlist->count(); i++) { Platform_PlayItemWidget * piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); qInfo() << piw->getBIsSelect(); if (piw->getBIsSelect()) { _engine->playlist().remove(i); return; } } } if (!_clickedItem) return; Platform_PlayItemWidget * piw = dynamic_cast(_clickedItem); if (piw) { qInfo() << __func__; for (int i = 0; i < _playlist->count(); i++) { if (_clickedItem == _playlist->itemWidget(_playlist->item(i))) { _engine->playlist().remove(i); break; } } } } void Platform_PlaylistWidget::slotCloseTimeTimeOut() { QTimer *pCloselistTimer = dynamic_cast(sender()); pCloselistTimer->deleteLater(); togglePopup(false); _mw->reflectActionToUI(ActionFactory::TogglePlaylist); } void Platform_PlaylistWidget::slotCloseItem(QWidget *w) { qInfo() << "item close clicked"; _clickedItem = w; _mw->requestAction(ActionFactory::ActionKind::PlaylistRemoveItem); } void Platform_PlaylistWidget::slotDoubleClickedItem(QWidget *w) { qInfo() << "item double clicked"; QList args; for (int i = 0; i < _playlist->count(); i++) { if (w == _playlist->itemWidget(_playlist->item(i))) { args << i; _mw->requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, args); QTimer *closelistTImer = new QTimer; closelistTImer->start(500); connect(closelistTImer, &QTimer::timeout, this, &Platform_PlaylistWidget::slotCloseTimeTimeOut); break; } } } void Platform_PlaylistWidget::slotRowsMoved() { if (_lastDragged.first >= 0) { int target = -1; for (int i = 0; i < _playlist->count(); i++) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); if (piw == _lastDragged.second) { target = i; break; } } qInfo() << "swap " << _lastDragged.first << target; if (target >= 0 && _lastDragged.first != target) { _engine->playlist().switchPosition(_lastDragged.first, target); _lastDragged = {-1, nullptr}; } } } /*void PlaylistWidget::dragEnterEvent(QDragEnterEvent *ev) { auto md = ev->mimeData(); qInfo() << md->formats(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) { _playlist->setDropIndicatorShown(true); } QWidget::dragEnterEvent(ev); return; } if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } }*/ /*void PlaylistWidget::dragMoveEvent(QDragMoveEvent *ev) { auto md = ev->mimeData(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) { _playlist->setDropIndicatorShown(true); } QWidget::dragMoveEvent(ev); return; } if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } }*/ /*void PlaylistWidget::dropEvent(QDropEvent *ev) { auto md = ev->mimeData(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { _playlist->setDropIndicatorShown(false); auto encoded = md->data("application/x-qabstractitemmodeldatalist"); QDataStream stream(&encoded, QIODevice::ReadOnly); QList l; while (!stream.atEnd()) { int row, col; QMap roleDataMap; stream >> row >> col >> roleDataMap; auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(row))); _lastDragged = qMakePair(row, piw); qInfo() << "drag to move " << row << piw->_pif.url; } QWidget::dropEvent(ev); return; } if (!ev->mimeData()->hasUrls()) { return; } auto urls = ev->mimeData()->urls(); _engine->addPlayFiles(urls); ev->acceptProposedAction(); }*/ void Platform_PlaylistWidget::contextMenuEvent(QContextMenuEvent *cme) { bool on_item = false; _mouseItem = nullptr; QPoint itempos(cme->pos().x() - 235, cme->pos().y() - 20); if (_playlist->itemAt(itempos)) { _mouseItem = _playlist->itemWidget(_playlist->itemAt(itempos)); on_item = true; } if (CompositingManager::get().isPadSystem()) { if (pSelectItemWgt) { pSelectItemWgt->setBIsSelect(false); } auto piw = dynamic_cast(_mouseItem); piw->setBIsSelect(true); pSelectItemWgt = piw; } else { auto piw = dynamic_cast(_mouseItem); auto menu = ActionFactory::get().playlistContextMenu(); for (auto act : menu->actions()) { auto prop = static_cast(act->property("kind").toInt()); bool on = true; if (prop == ActionFactory::ActionKind::PlaylistOpenItemInFM) { on = on_item && piw->_pif.valid && piw->_pif.url.isLocalFile(); } else if (prop == ActionFactory::ActionKind::PlaylistRemoveItem) { on = on_item; } else if (prop == ActionFactory::ActionKind::PlaylistItemInfo) { on = on_item && piw->_pif.valid; } else { on = _playlist->count() > 0 ? true : false; } act->setEnabled(on); } ActionFactory::get().playlistContextMenu()->popup(cme->globalPos()); } #ifdef USE_TEST ActionFactory::get().playlistContextMenu()->hide(); ActionFactory::get().playlistContextMenu()->clear(); #endif } void Platform_PlaylistWidget::showEvent(QShowEvent *se) { batchUpdateSizeHints(); adjustSize(); QWidget::showEvent(se); } void Platform_PlaylistWidget::removeItem(int idx) { qInfo() << "idx = " << idx; auto item_remove = this->_playlist->item(idx); if (item_remove) { QWidget *pItem = _playlist->itemWidget(item_remove); Platform_PlayItemWidget *pCurItem = dynamic_cast(pItem); if (pCurItem == pSelectItemWgt) { pSelectItemWgt = nullptr; //如果删除的是原来选中的则置空 } item_remove = this->_playlist->takeItem(idx); delete item_remove; } this->_playlist->update(); for (int i = 0; i < _playlist->count(); i++) { QWidget *item = _playlist->itemWidget(_playlist->item(i)); if (item) { (dynamic_cast(item))->setIndex(i); } } if (_playlist->count() != 0 && _playlist->count() != idx) { QWidget *item = _playlist->itemWidget(_playlist->item(idx)); Platform_PlayItemWidget *curItem = dynamic_cast(item); curItem->setCurItemHovered(true); } else if (_playlist->count() != 0 && _playlist->count() == idx) { QWidget *item = _playlist->itemWidget(_playlist->item(--idx)); Platform_PlayItemWidget *curItem = dynamic_cast(item); curItem->setCurItemHovered(true); } QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); } void Platform_PlaylistWidget::appendItems() { qInfo() << __func__; auto items = _engine->playlist().items(); auto p = items.begin() + this->_playlist->count(); while (p != items.end()) { auto w = new Platform_PlayItemWidget(*p, this->_playlist, p - items.begin(), this); auto item = new QListWidgetItem; item->setFlags(Qt::NoItemFlags); _playlist->addItem(item); _playlist->setItemWidget(item, w); connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map())); connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map())); _closeMapper->setMapping(w, w); _activateMapper->setMapping(w, w); ++p; } QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); batchUpdateSizeHints(); updateItemStates(); // _playlist->setStyleSheet(styleSheet()); // setStyleSheet(styleSheet()); } void Platform_PlaylistWidget::slotShowSelectItem(QListWidgetItem *item) { Platform_PlayItemWidget *pWidget = nullptr; if (item) { _playlist->setCurrentItem(item); pWidget = reinterpret_cast(_playlist->itemWidget(item)); if (!pWidget) { return; } } if (CompositingManager::get().isPadSystem()) { pWidget->doDoubleClick(); if (pSelectItemWgt) { pSelectItemWgt->setBIsSelect(false); pSelectItemWgt = nullptr; } } else { pWidget->setBIsSelect(true); } } void Platform_PlaylistWidget::OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { Platform_PlayItemWidget *prevItemWgt = nullptr; Platform_PlayItemWidget *curItemWgt = nullptr; bool bIsPad = CompositingManager::get().isPadSystem(); if (previous) { prevItemWgt = reinterpret_cast(_playlist->itemWidget(previous)); if (!bIsPad && prevItemWgt) { prevItemWgt->setBIsSelect(false); } } if (current) { curItemWgt = reinterpret_cast(_playlist->itemWidget(current)); if (!bIsPad && curItemWgt) { curItemWgt->setBIsSelect(true); } } } void Platform_PlaylistWidget::resetFocusAttribute(bool &atr) { m_bButtonFocusOut = atr; } void Platform_PlaylistWidget::loadPlaylist() { qInfo() << __func__; _playlist->clear(); auto items = _engine->playlist().items(); auto p = items.begin(); while (p != items.end()) { auto w = new Platform_PlayItemWidget(*p, this->_playlist, p - items.begin(), this); auto item = new QListWidgetItem; item->setFlags(Qt::NoItemFlags); _playlist->addItem(item); _playlist->setItemWidget(item, w); connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map())); connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map())); _closeMapper->setMapping(w, w); _activateMapper->setMapping(w, w); ++p; } batchUpdateSizeHints(); updateItemStates(); // _playlist->setStyleSheet(styleSheet()); QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); // setStyleSheet(styleSheet()); } void Platform_PlaylistWidget::batchUpdateSizeHints() { if (isVisible()) { for (int i = 0; i < this->_playlist->count(); i++) { auto item = this->_playlist->item(i); auto w = this->_playlist->itemWidget(item); //auto t = w->size(); item->setSizeHint(w->size()); } } } void Platform_PlaylistWidget::endAnimation() { if (paOpen != nullptr && paClose != nullptr) { paOpen -> setDuration(0); paClose->setDuration(0); } } bool Platform_PlaylistWidget::isFocusInPlaylist() { if (m_pClearButton == focusWidget() || _playlist == focusWidget()) { return true; } else { return false; } } void Platform_PlaylistWidget::togglePopup(bool isShortcut) { if (paOpen != nullptr || paClose != nullptr) { return ; } /** * 此处在动画执行前设定好Platform_PlaylistWidget起始位置和终止位置 * 基于 Platform_MainWindow::updateProxyGeometry 所设置的初始状态 以及 是否是紧凑模式 定位Platform_PlaylistWidget的起始位置和终止位置。 */ QRect main_rect = _mw->rect(); #ifdef USE_DXCB QRect view_rect = main_rect; #else QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); #endif int toolbox_height = TOOLBOX_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { toolbox_height = TOOLBOX_DSIZEMODE_HEIGHT; } #endif QRect fixed; // y坐标下移5个像素点,避免播放列表上部超出toolbox范围 fixed.setRect(10, (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height + 10) + 5), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT + 10); QRect shrunk = fixed; shrunk.setHeight(0); shrunk.moveBottom(fixed.bottom()); if (_toggling) return; if (_state == State::Opened) { Q_ASSERT(isVisible()); //Set this judgment to false when the playlist is collapsed m_bButtonFocusOut = false; if (isFocusInPlaylist()) { //以除Esc以外的其它方式收起播放列表,焦点切换到主窗口,防止随机出现在其它控件上 _mw->setFocus(); } _toggling = false; _state = State::Closed; emit stateChange(isShortcut); setVisible(!isVisible()); } else { _playlist->setAttribute(Qt::WA_TransparentForMouseEvents, true); setVisible(!isVisible()); _toggling = false; //条件编译误报(cppcheck) _state = State::Opened; emit stateChange(isShortcut); setGeometry(fixed); _playlist->setAttribute(Qt::WA_TransparentForMouseEvents, false); } } void Platform_PlaylistWidget::paintEvent(QPaintEvent *pe) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRectF bgRect; bgRect.setSize(size()); QPainterPath pp; pp.addRoundedRect(bgRect, 18, 18); QWidget::paintEvent(pe); } void Platform_PlaylistWidget::resizeEvent(QResizeEvent *ev) { auto main_rect = _mw->rect(); #ifdef USE_DXCB auto view_rect = main_rect; #else auto view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); #endif QRect fixed((view_rect.width() - 10), (view_rect.height() - 394), view_rect.width() - 20, (384 - 70)); _playlist->setFixedWidth(fixed.width() - 205); emit sizeChange(); QTimer::singleShot(100, this, &Platform_PlaylistWidget::batchUpdateSizeHints); QWidget::resizeEvent(ev); } bool Platform_PlaylistWidget::eventFilter(QObject *obj, QEvent *event) { if (obj == m_pClearButton) { //焦点在清空按键上禁用上下键 if (event->type() == QEvent::KeyPress) { if (static_cast(event)->key() == Qt::Key_Up || static_cast(event)->key() == Qt::Key_Down) { return true; } } switch (event->type()) { case QEvent::FocusIn: ((Platform_ToolboxProxy *)_mw->toolbox())->setBtnFocusSign(true); break; case QEvent::FocusOut: if (_playlist->count() <= 0) { //如果播放列表为空,清空按钮上的焦点不向后传递 return true; } break; } } else if (obj == _playlist) { switch (event->type()) { case QEvent::FocusIn: { if (_playlist->count()) { //The judgment here is to prevent the focus from shifting during mouse operation if (!m_bButtonFocusOut) { return true; } //焦点切换到播放列表,选中第一个条目 if (_playlist->currentRow() != 0) { _playlist->setCurrentRow(0); _index = 0; m_bButtonFocusOut = false; } } return true; } case QEvent::KeyPress: { QKeyEvent *keyPressEv = static_cast(event); if (keyPressEv->key() == Qt::Key_Tab) { //将焦点设置到清空按钮上,实现焦点循环 m_pClearButton->setFocus(); return true; } break; } default: break; } } return QObject::eventFilter(obj, event); // standard event processing } } #include "platform_playlist_widget.moc" deepin-movie-reborn-5.15.10/src/widgets/platform/platform_playlist_widget.h000066400000000000000000000120521473342170300270770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_Platform_PLAYLIST_WIDGET_H #define _DMR_Platform_PLAYLIST_WIDGET_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Dtk { namespace Widget { class DImageButton; } } DWIDGET_USE_NAMESPACE namespace dmr { class PlayerEngine; class Platform_MainWindow; class Platform_ListPic: public QLabel { Q_OBJECT public: Platform_ListPic(QPixmap pic, QWidget *parent): QLabel(parent) { setFixedSize(QSize(42, 24)); _pic = pic; } void setPic(QPixmap pic) { _pic = pic; } protected: void paintEvent(QPaintEvent *pe) override { QPainter painter(this); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QSize size(_pic.size()); QBitmap mask(size); QPainter painter1(&mask); painter1.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter1.fillRect(mask.rect(), Qt::white); painter1.setBrush(QColor(0, 0, 0)); painter1.drawRoundedRect(mask.rect(), 5, 5); QPixmap image = _pic; image.setMask(mask); painter.setClipping(true); QPainterPath bg0; bg0.addRoundedRect(rect(), 5, 5); //使用5个像素点,圆角效果更好 painter.setClipPath(bg0); painter.drawPixmap(rect(), image); painter.setPen( QPen(DGuiApplicationHelper::instance()->applicationPalette().frameBorder().color(), 2)); painter.setBrush(Qt::NoBrush); painter.drawRoundedRect(rect(), 5, 5); }; private: QPixmap _pic; }; class Platform_PlayItemWidget; class Platform_PlaylistWidget: public QWidget { Q_OBJECT public: enum State { Opened, Closed, }; Platform_PlaylistWidget(QWidget *, PlayerEngine *); virtual ~Platform_PlaylistWidget(); State state() const { return _state; } bool toggling() const { return _toggling; } DListWidget *get_playlist() { return _playlist; } void updateSelectItem(const int key); void clear(); void endAnimation(); bool isFocusInPlaylist(); /** * @brief resetFocusAttribute * 重置键盘交互属性,确保置首条只有tab键交互生效 * * @param atr true为执行,false为跳过 */ void resetFocusAttribute(bool &atr); /** * @brief 返回_engine * PlayItemWidget类中的文件url无效时,需要给用户提示。需要通过PlayerEngine给MainWindow发送信号 * @return engine的指针 */ inline PlayerEngine *engine() noexcept{ return _engine; } signals: void stateChange(bool isShortcut); void sizeChange(); public slots: /** * @brief togglePopup * 播放列表升起/降下 * * @param isShortcut 该函数是否通过快捷键触发 */ void togglePopup(bool isShortcut); void loadPlaylist(); void openItemInFM(); void showItemInfo(); void removeClickedItem(bool isShortcut); void slotCloseTimeTimeOut(); void slotCloseItem(QWidget *w); void slotDoubleClickedItem(QWidget *w); void slotRowsMoved(); protected: void contextMenuEvent(QContextMenuEvent *cme) override; // void dragEnterEvent(QDragEnterEvent *event) override; // void dragMoveEvent(QDragMoveEvent *event) override; // void dropEvent(QDropEvent *event) override; void showEvent(QShowEvent *se) override; void paintEvent(QPaintEvent *pe) override; void resizeEvent(QResizeEvent *ev) override; bool eventFilter(QObject *obj, QEvent *event) override; protected slots: void updateItemStates(); void updateItemInfo(int); void appendItems(); void removeItem(int); void slotShowSelectItem(QListWidgetItem *); void OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous); private: PlayerEngine *_engine {nullptr}; Platform_MainWindow *_mw {nullptr}; QWidget *_mouseItem {nullptr}; QWidget *_clickedItem {nullptr}; QSignalMapper *_closeMapper {nullptr}; QSignalMapper *_activateMapper {nullptr}; DListWidget *_playlist {nullptr}; State _state {Closed}; DLabel *_num {nullptr}; DLabel *_title {nullptr}; /// < original row, data> QPair _lastDragged {-1, nullptr}; int _index {0}; Platform_PlayItemWidget *pSelectItemWgt; void batchUpdateSizeHints(); QPropertyAnimation *paOpen ; QPropertyAnimation *paClose ; DPushButton *m_pClearButton; bool _toggling {false}; bool m_bButtonFocusOut {false}; ///键盘交互标志位 }; } #endif /* ifndef _DMR_Platform_PLAYLIST_WIDGET_H */ deepin-movie-reborn-5.15.10/src/widgets/platform/platform_toolbox_proxy.cpp000066400000000000000000002737341473342170300271750ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "platform_toolbox_proxy.h" #include "platform/platform_mainwindow.h" #include "compositing_manager.h" #include "player_engine.h" #include "toolbutton.h" #include "dmr_settings.h" #include "actions.h" #include "slider.h" #include "platform/platform_thumbnail_worker.h" #include "tip.h" #include "utils.h" #include "filefilter.h" #include "sysutils.h" //#include #include #include #include #include #include #include #include #include #include #include #include #include #include "../accessibility/ac-deepin-movie-define.h" static const int LEFT_MARGIN = 10; static const int RIGHT_MARGIN = 10; //static const int PROGBAR_SPEC = 10 + 120 + 17 + 54 + 10 + 54 + 10 + 170 + 10 + 20; static const QString SLIDER_ARROW = ":resources/icons/slider.svg"; #define POPUP_DURATION 350 DWIDGET_USE_NAMESPACE #define THEME_TYPE(colortype) do { \ if (colortype == DGuiApplicationHelper::LightType){\ QColor backMaskColor(247, 247, 247);\ backMaskColor.setAlphaF(0.6);\ this->blurBackground()->setMaskColor(backMaskColor);\ bot_widget->setMaskColor(backMaskColor);\ } else if (colortype == DGuiApplicationHelper::DarkType){\ QColor backMaskColor(32, 32, 32);\ backMaskColor.setAlphaF(0.5);\ blurBackground()->setMaskColor(backMaskColor);\ bot_widget->setMaskColor(backMaskColor);\ }\ } while(0); namespace dmr { /** * @brief The TooltipHandler class * 鼠标悬停事件过滤器 */ class Platform_TooltipHandler: public QObject { public: /** * @brief TooltipHandler 构造函数 * @param parent 父窗口 */ explicit Platform_TooltipHandler(QObject *parent): QObject(parent) { connect(&m_showTime, &QTimer::timeout, [=]{ //QHelpEvent *he = static_cast(event); if (m_object != nullptr) { auto tip = m_object->property("HintWidget").value(); auto btn = tip->property("for").value(); tip->setText(btn->toolTip()); tip->show(); tip->raise(); tip->adjustSize(); QPoint pos = btn->parentWidget()->mapToGlobal(btn->pos()); pos.rx() = pos.x() + (btn->width() - tip->width()) / 2; pos.ry() = pos.y() - 40; tip->move(pos); } }); } protected: /** * @brief eventFilter 事件过滤器 * @param obj 事件对象 * @param event 事件 * @return 返回是否继续执行 */ bool eventFilter(QObject *obj, QEvent *event) { switch (event->type()) { case QEvent::ToolTip: case QEvent::Enter: { m_object = obj; if (!m_showTime.isActive()) m_showTime.start(1000); return true; } case QEvent::Leave: { m_object = nullptr; m_showTime.stop(); auto parent = obj->property("HintWidget").value(); parent->hide(); event->ignore(); break; } case QEvent::MouseMove: { QHelpEvent *he = static_cast(event); auto tip = obj->property("HintWidget").value(); tip->hide(); } default: break; } // standard event processing return QObject::eventFilter(obj, event); } private: QTimer m_showTime; QObject *m_object {nullptr}; }; /** * @brief The SliderTime class 进度条事件显示类 */ class Platform_SliderTime: public DArrowRectangle { Q_OBJECT public: /** * @brief SliderTime 构造函数 */ Platform_SliderTime(): DArrowRectangle(DArrowRectangle::ArrowBottom) { initMember(); //setFocusPolicy(Qt::NoFocus); setAttribute(Qt::WA_DeleteOnClose); setWindowFlag(Qt::WindowStaysOnTopHint); resize(m_miniSize); setRadius(8); setArrowWidth(10); setArrowHeight(5); const QPalette pal = QGuiApplication::palette(); QColor bgColor = pal.color(QPalette::Highlight); setBorderWidth(1); setBorderColor(bgColor); setBackgroundColor(bgColor); QHBoxLayout *layout = new QHBoxLayout; layout->setContentsMargins(0, 0, 0, 5); m_pTime = new DLabel(this); m_pTime->setAlignment(Qt::AlignCenter); // _time->setFixedSize(_size); m_pTime->setForegroundRole(DPalette::Text); DPalette pa = DApplicationHelper::instance()->palette(m_pTime); QColor color = pa.textLively().color(); qInfo() << color.name(); pa.setColor(DPalette::Text, color); m_pTime->setPalette(pa); m_pTime->setFont(DFontSizeManager::instance()->get(DFontSizeManager::T8)); layout->addWidget(m_pTime, Qt::AlignCenter); setLayout(layout); connect(qApp, &QGuiApplication::fontChanged, this, &Platform_SliderTime::slotFontChanged); } /** * @brief setTime 设置时间 * @param time 时间 */ void setTime(const QString &time) { m_pTime->setText(time); if (!m_bFontChanged) { QFontMetrics fontMetrics(DFontSizeManager::instance()->get(DFontSizeManager::T8)); m_pTime->setFixedSize(fontMetrics.width(m_pTime->text()) + 5, fontMetrics.height()); } else { QFontMetrics fontMetrics(m_font); m_pTime->setFont(m_font); m_pTime->setFixedSize(fontMetrics.width(m_pTime->text()) + 10, fontMetrics.height()); } this->setWidth(m_pTime->width()); this->setHeight(m_pTime->height() + 5); this->setMinimumSize(m_miniSize); } public slots: /** * @brief slotFontChanged 字体变化槽函数 * @param font 字体 */ void slotFontChanged(const QFont &font) { m_font = font; m_bFontChanged = true; } private: /** * @brief initMember 初始化成员变量 */ void initMember() { m_pTime = nullptr; m_miniSize = QSize(58, 25); m_font = {QFont()}; m_bFontChanged = false; } DLabel *m_pTime; QSize m_miniSize; QFont m_font; bool m_bFontChanged; }; /** * @brief The ViewProgBar class 胶片模式窗口 */ class Platform_ViewProgBar: public DWidget { Q_OBJECT public: /** * @brief ViewProgBar 构造函数 * @param m_pProgBar 进度条 * @param parent 父窗口 */ Platform_ViewProgBar(DMRSlider *m_pProgBar, QWidget *parent = nullptr) { initMemeber(); //传入进度条,以便重新获取胶片进度条长度 by ZhuYuliang this->m_pProgBar = m_pProgBar; _parent = parent; setFixedHeight(70); m_bIsBlockSignals = false; setMouseTracking(true); m_pBack = new QWidget(this); m_pBack->setFixedHeight(60); m_pBack->setFixedWidth(this->width()); m_pBack->setContentsMargins(0, 0, 0, 0); m_pFront = new QWidget(this); m_pFront->setFixedHeight(60); m_pFront->setFixedWidth(0); m_pFront->setContentsMargins(0, 0, 0, 0); m_pIndicator = new Platform_IndicatorItem(this); m_pIndicator->resize(6, 60); m_pIndicator->setObjectName("indicator"); m_pSliderTime = new Platform_SliderTime; m_pSliderTime->hide(); QMatrix matrix; matrix.rotate(180); QPixmap pixmap = utils::LoadHiDPIPixmap(SLIDER_ARROW); m_pSliderArrowUp = new DArrowRectangle(DArrowRectangle::ArrowTop); //m_pSliderArrowUp->setFocusPolicy(Qt::NoFocus); m_pSliderArrowUp->setAttribute(Qt::WA_DeleteOnClose); m_pSliderArrowUp->setWindowFlag(Qt::WindowStaysOnTopHint); m_pSliderArrowUp->setArrowWidth(10); m_pSliderArrowUp->setArrowHeight(7); const QPalette pa = QGuiApplication::palette(); QColor bgColor = pa.color(QPalette::Highlight); m_pSliderArrowUp->setBackgroundColor(bgColor); m_pSliderArrowUp->setFixedSize(10, 7); m_pSliderArrowUp->hide(); m_pSliderArrowDown = new DLabel(this); m_pSliderArrowDown->setFixedSize(20, 18); m_pSliderArrowDown->setPixmap(pixmap.transformed(matrix, Qt::SmoothTransformation)); m_pSliderArrowDown->hide(); m_pBack->setMouseTracking(true); m_pFront->setMouseTracking(true); m_pIndicator->setMouseTracking(true); m_pViewProgBarLayout = new QHBoxLayout(m_pBack); m_pViewProgBarLayout->setContentsMargins(0, 5, 0, 5); m_pBack->setLayout(m_pViewProgBarLayout); m_pViewProgBarLayout_black = new QHBoxLayout(m_pFront); m_pViewProgBarLayout_black->setContentsMargins(0, 5, 0, 5); m_pFront->setLayout(m_pViewProgBarLayout_black); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedHeight(46); m_pBack->setFixedHeight(40); m_pFront->setFixedHeight(40); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedHeight(70); m_pBack->setFixedHeight(60); m_pFront->setFixedHeight(60); } else { setFixedHeight(46); m_pBack->setFixedHeight(40); m_pFront->setFixedHeight(40); } }); #endif } // virtual ~ViewProgBar(); void setIsBlockSignals(bool isBlockSignals) { m_bIsBlockSignals = isBlockSignals; } bool getIsBlockSignals() { return m_bPress ? true: m_bIsBlockSignals; } void setValue(int v) { if (v < m_nStartPoint) { v = m_nStartPoint; } else if (v > (m_nStartPoint + m_nViewLength)) { v = (m_nStartPoint + m_nViewLength); } m_IndicatorPos = {v, rect().y()}; update(); } int getValue() { return m_pIndicator->x(); } int getTimePos() { return position2progress(QPoint(m_pIndicator->x(), 0)); } void setTime(qint64 pos) { QTime time(0, 0, 0); QString strTime = time.addSecs(static_cast(pos)).toString("hh:mm:ss"); m_pSliderTime->setTime(strTime); } void setTimeVisible(bool visible) { if (visible) { auto pos = this->mapToGlobal(QPoint(0, 0)); m_pSliderTime->show(pos.x() + m_IndicatorPos.x() + 1, pos.y() + m_IndicatorPos.y() + 4); } else { m_pSliderTime->hide(); } } /** * @brief setViewProgBar 设置胶片模式位置 * @param pEngine 播放引擎对象指针 * @param pmList 彩色胶片图像列表 * @param pmBlackList 灰色胶片图像列表 */ void setViewProgBar(PlayerEngine *pEngine, QList pmList, QList pmBlackList) { m_pEngine = pEngine; m_pViewProgBarLayout->setAlignment(Qt::AlignHCenter | Qt::AlignTop); m_pViewProgBarLayout->setSpacing(1); /*这段代码将胶片添加到两个label中,一个label置灰,一个彩色,通过光标调整两个label的位置 *以实现通过光标来显示播放过的位置 */ int nPixWidget = 40/*m_pProgBar->width() / 100*/; int npixHeight = 50; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::SizeMode::CompactMode) { nPixWidget = nPixWidget * 0.66; npixHeight = npixHeight * 0.66; } #endif m_nViewLength = (nPixWidget + 1) * pmList.count() - 1; m_nStartPoint = (m_pProgBar->width() - m_nViewLength) / 2; //开始位置 for (int i = 0; i < pmList.count(); i++) { Platform_ImageItem *label = new Platform_ImageItem(pmList.at(i), false, m_pBack); label->setMouseTracking(true); label->move(i * (nPixWidget + 1) + m_nStartPoint, 5); label->setFixedSize(nPixWidget, npixHeight); Platform_ImageItem *label_black = new Platform_ImageItem(pmBlackList.at(i), true, m_pFront); label_black->setMouseTracking(true); label_black->move(i * (nPixWidget + 1) + m_nStartPoint, 5); label_black->setFixedSize(nPixWidget, npixHeight); } update(); } void clear() { foreach (QLabel *label, m_pFront->findChildren()) { if (label) { label->deleteLater(); label = nullptr; } } foreach (QLabel *label, m_pBack->findChildren()) { if (label) { label->deleteLater(); label = nullptr; } } m_pSliderTime->setVisible(false); m_pSliderArrowDown->setVisible(false); m_pSliderArrowUp->setVisible(false); // 清除状态时还原初始显示状态 m_bPress = false; m_pIndicator->setPressed(m_bPress); m_pIndicator->resize(6, 60); } int getViewLength() { return m_nViewLength; } int getStartPoint() { return m_nStartPoint; } private: void changeStyle(bool press) { if (!isVisible()) return; if (press) { m_pIndicator->setPressed(press); m_pIndicator->resize(2, 60); } else { m_pIndicator->setPressed(press); m_pIndicator->resize(6, 60); } } signals: void leave(); void hoverChanged(int); void sliderMoved(int); void mousePressed(bool pressed); protected: void leaveEvent(QEvent *e) override { emit leave(); DWidget::leaveEvent(e); } void showEvent(QShowEvent *se) override { DWidget::showEvent(se); } void mouseMoveEvent(QMouseEvent *e) override { if (!isEnabled()) return; if (e->pos().x() >= 0 && e->pos().x() <= contentsRect().width()) { int v = position2progress(e->pos()); if (e->buttons() & Qt::LeftButton) { int distance = (e->pos() - m_startPos).manhattanLength(); if (distance >= QApplication::startDragDistance()) { emit sliderMoved(v); emit hoverChanged(v); emit mousePressed(true); setValue(e->pos().x()); setTime(v); repaint(); } } else { if (m_nVlastHoverValue != v) { emit hoverChanged(v); } m_nVlastHoverValue = v; } } e->accept(); } void mousePressEvent(QMouseEvent *e) override { if (!m_bPress && e->buttons() == Qt::LeftButton && isEnabled()) { m_startPos = e->pos(); int v = position2progress(e->pos()); emit sliderMoved(v); emit hoverChanged(v); emit mousePressed(true); setValue(e->pos().x()); changeStyle(!m_bPress); m_bPress = !m_bPress; } } void mouseReleaseEvent(QMouseEvent *e) override { emit mousePressed(false); if (m_bPress && isEnabled()) { changeStyle(!m_bPress); m_bPress = !m_bPress; //鼠标释放时seek视频位置。 int v = position2progress(e->pos()); m_pEngine->seekAbsolute(v); } m_pSliderArrowUp->setVisible(m_bPress); setTimeVisible(m_bPress); DWidget::mouseReleaseEvent(e); } void paintEvent(QPaintEvent *e) override { m_pIndicator->move(m_IndicatorPos.x(), m_IndicatorPos.y()); QPoint pos = this->mapToGlobal(QPoint(0, 0)); m_pSliderArrowUp->move(pos.x() + m_IndicatorPos.x() + 1, pos.y() + m_pIndicator->height() - 5); m_pFront->setFixedWidth(m_IndicatorPos.x()); m_pSliderArrowUp->setVisible(m_bPress); setTimeVisible(m_bPress); DWidget::paintEvent(e); } void resizeEvent(QResizeEvent *event) override { m_pBack->setFixedWidth(this->width()); DWidget::resizeEvent(event); } private: int position2progress(const QPoint &p) { int nPosition = 0; if (!m_pEngine) { return 0; } if (p.x() < m_nStartPoint) { nPosition = m_nStartPoint; } else if (p.x() > (m_nViewLength + m_nStartPoint)) { nPosition = (m_nViewLength + m_nStartPoint); } else { nPosition = p.x(); } auto total = m_pEngine->duration(); int span = static_cast(total * (nPosition - m_nStartPoint) / m_nViewLength); return span/* * (p.x())*/; } void initMemeber() { m_pEngine = nullptr; _parent = nullptr; // m_pViewProgBarLoad = nullptr; m_pBack = nullptr; m_pFront = nullptr; m_pIndicator = nullptr; m_pSliderTime = nullptr; m_pSliderArrowDown = nullptr; m_pSliderArrowUp = nullptr; m_pIndicatorLayout = nullptr; m_pViewProgBarLayout = nullptr; m_pViewProgBarLayout_black = nullptr; m_pProgBar = nullptr; m_nViewLength = 0; m_nStartPoint = 0; m_nVlastHoverValue = 0; m_startPos = QPoint(0, 0); m_IndicatorPos = QPoint(0, 0); m_bPress = false; m_bIsBlockSignals = false; } PlayerEngine *m_pEngine; QWidget *_parent; int m_nVlastHoverValue; QPoint m_startPos; bool m_bIsBlockSignals; QPoint m_IndicatorPos; QColor _indicatorColor; // viewProgBarLoad *m_pViewProgBarLoad; QWidget *m_pBack; QWidget *m_pFront; Platform_IndicatorItem *m_pIndicator; Platform_SliderTime *m_pSliderTime; DLabel *m_pSliderArrowDown; DArrowRectangle *m_pSliderArrowUp; bool m_bPress; QHBoxLayout *m_pIndicatorLayout; QHBoxLayout *m_pViewProgBarLayout; QHBoxLayout *m_pViewProgBarLayout_black; DMRSlider *m_pProgBar; int m_nViewLength; int m_nStartPoint; }; class Platform_ThumbnailPreview: public QWidget { Q_OBJECT public: Platform_ThumbnailPreview() { setAttribute(Qt::WA_DeleteOnClose); // FIXME(hualet): Qt::Tooltip will cause Dock to show up even // the player is in fullscreen mode. setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); setObjectName("ThumbnailPreview"); resize(0, 0); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &Platform_ThumbnailPreview::slotWMChanged); m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); if (m_bIsWM) { DStyle::setFrameRadius(this, 8); } else { DStyle::setFrameRadius(this, 0); } m_shadow_effect = new QGraphicsDropShadowEffect(this); } void updateWithPreview(const QPixmap &pm, qint64 secs, int rotation) { QPixmap rounded; if (m_bIsWM) { rounded = utils::MakeRoundedPixmap(pm, 4, 4, rotation); } else { rounded = pm; } if (rounded.width() == 0) return; if (rounded.width() > rounded.height()) { static int roundedH = static_cast( (static_cast(m_thumbnailFixed) / static_cast(rounded.width())) * rounded.height()); QSize size(m_thumbnailFixed, roundedH); resizeThumbnail(rounded, size); } else { static int roundedW = static_cast( (static_cast(m_thumbnailFixed) / static_cast(rounded.height())) * rounded.width()); QSize size(roundedW, m_thumbnailFixed); resizeThumbnail(rounded, size); } QImage image; QPalette palette; image = rounded.toImage(); m_thumbImg = image; update(); } void updateWithPreview(const QPoint &pos) { move(pos.x() - this->width() / 2, pos.y() - this->height() + 10); if(geometry().isValid()) { show(); } } public slots: void slotWMChanged() { m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); if (m_bIsWM) { DStyle::setFrameRadius(this, 8); } else { DStyle::setFrameRadius(this, 0); } } signals: void leavePreview(); protected: void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE{ m_shadow_effect->setOffset(0, 0); m_shadow_effect->setColor(Qt::gray); m_shadow_effect->setBlurRadius(8); setGraphicsEffect(m_shadow_effect); QPainter painter(this); QPainterPath path; QRect rt = rect().marginsRemoved(QMargins(1, 1, 1, 1)); if (!m_bIsWM) { path.addRect(rect()); painter.fillPath(path, QColor(230, 230, 230)); } else { path.addRoundRect(rt, 20, 20); painter.setRenderHints(QPainter::Antialiasing, true); } painter.setClipPath(path); if(!m_thumbImg.isNull()) painter.drawImage(rt, m_thumbImg, QRect(0, 0, m_thumbImg.width(), m_thumbImg.height())); QWidget::paintEvent(e); } void leaveEvent(QEvent *e) override { emit leavePreview(); } void showEvent(QShowEvent *se) override { QWidget::showEvent(se); } private: void resizeThumbnail(QPixmap &pixmap, const QSize &size) { auto dpr = qApp->devicePixelRatio(); pixmap.setDevicePixelRatio(dpr); pixmap = pixmap.scaled(size * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); pixmap.setDevicePixelRatio(dpr); int offect = 2; if (!m_bIsWM) { offect = 0; } this->setFixedWidth(size.width() + offect); this->setFixedHeight(size.height() + offect); } private: QImage m_thumbImg; int m_thumbnailFixed = 106; QGraphicsDropShadowEffect *m_shadow_effect{nullptr}; bool m_bIsWM{false}; }; void Platform_viewProgBarLoad::initThumb() { QLibrary library(SysUtils::libPath("libffmpegthumbnailer.so")); m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create"); m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy"); m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data"); m_mvideo_thumbnailer_destroy_image_data = (mvideo_thumbnailer_destroy_image_data) library.resolve("video_thumbnailer_destroy_image_data"); m_mvideo_thumbnailer_generate_thumbnail_to_buffer = (mvideo_thumbnailer_generate_thumbnail_to_buffer) library.resolve("video_thumbnailer_generate_thumbnail_to_buffer"); if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr) { return; } m_video_thumbnailer = m_mvideo_thumbnailer(); } void Platform_viewProgBarLoad::initMember() { m_pEngine = nullptr; m_pParent = nullptr; m_pProgBar = nullptr; m_pListPixmapMutex = nullptr; } void Platform_viewProgBarLoad::loadViewProgBar(QSize size) { int pixWidget = 40; int num = int(m_pProgBar->width() / (40 + 1)); //number of thumbnails #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { num = int(m_pProgBar->width() / (26 + 1)); } #endif int tmp = (num == 0) ? 0: (m_pEngine->duration() * 1000) / num; QList pmList; QList pmBlackList; QTime time(0, 0, 0, 0); if (m_pEngine->videoSize().width() > 0 && m_pEngine->videoSize().height() > 0) { m_video_thumbnailer->thumbnail_size = (static_cast(50 * (m_pEngine->videoSize().width() / m_pEngine->videoSize().height() * 50) * qApp->devicePixelRatio())); } if (m_image_data == nullptr) { m_image_data = m_mvideo_thumbnailer_create_image_data(); } // m_video_thumbnailer->seek_time = d.toString("hh:mm:ss").toLatin1().data(); int length = strlen(time.toString("hh:mm:ss").toLatin1().data()); memcpy(m_seekTime, time.toString("hh:mm:ss").toLatin1().data(), length + 1); m_video_thumbnailer->seek_time = m_seekTime; auto url = m_pEngine->playlist().currentInfo().url; auto file = QFileInfo(url.toLocalFile()).absoluteFilePath(); for (auto i = 0; i < num ; i++) { if (isInterruptionRequested()) { qInfo() << "isInterruptionRequested"; return; } time = time.addMSecs(tmp); // m_video_thumbnailer->seek_time = d.toString("hh:mm:ss").toLatin1().data(); memcpy(m_seekTime, time.toString("hh:mm:ss").toLatin1().data(), length + 1); m_video_thumbnailer->seek_time = m_seekTime; try { m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, file.toUtf8().data(), m_image_data); auto img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); if (img.format() == QImage::Format_Invalid) { return; } auto img_tmp = img.scaledToHeight(50); pmList.append(QPixmap::fromImage(img_tmp.copy(img_tmp.size().width() / 2 - 4, 0, pixWidget, 50))); //-2 为了1px的内边框 QImage img_black = img_tmp.convertToFormat(QImage::Format_Grayscale8); pmBlackList.append(QPixmap::fromImage(img_black.copy(img_black.size().width() / 2 - 4, 0, pixWidget, 50))); } catch (const std::logic_error &) { } } m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; m_pListPixmapMutex->lock(); m_pParent->addpmList(pmList); m_pParent->addpmBlackList(pmBlackList); m_pListPixmapMutex->unlock(); emit sigFinishiLoad(size); // emit finished(); } /** * @brief ToolboxProxy 构造函数 * @param mainWindow 主窗口 * @param pPlayerEngine 播放引擎对象指针 */ Platform_ToolboxProxy::Platform_ToolboxProxy(QWidget *mainWindow, PlayerEngine *proxy) : DFloatingWidget(mainWindow), m_pMainWindow(static_cast(mainWindow)), m_pEngine(proxy) { initMember(); setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint); setContentsMargins(0, 0, 0, 0); setAttribute(Qt::WA_NativeWindow); m_pPreviewer = new Platform_ThumbnailPreview; m_pPreviewTime = new Platform_SliderTime; m_pPreviewTime->hide(); m_mircastWidget = new MircastWidget(mainWindow, proxy); m_mircastWidget->hide(); setup(); slotThemeTypeChanged(); connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, &Platform_ToolboxProxy::updatePlayState); connect(m_mircastWidget, &MircastWidget::updatePlayStatus, this, &Platform_ToolboxProxy::updatePlayState); connect(m_mircastWidget, &MircastWidget::updateTime, this, &Platform_ToolboxProxy::updateMircastTime, Qt::QueuedConnection); } void Platform_ToolboxProxy::finishLoadSlot(QSize size) { qInfo() << "thumbnail has finished"; if (m_pmList.isEmpty()) return; if (!m_bThumbnailmode) { return; } m_pViewProgBar->setViewProgBar(m_pEngine, m_pmList, m_pmBlackList); if(CompositingManager::get().platform() == Platform::X86) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { PlayItemInfo info = m_pEngine->playlist().currentInfo(); if (!info.url.isLocalFile()) { return; } m_pProgBar_Widget->setCurrentIndex(2); } } } void Platform_ToolboxProxy::setthumbnailmode() { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { return; } //no thunbnail progress bar is loaded except amd plantform m_bThumbnailmode = false; updateMovieProgress(); } void Platform_ToolboxProxy::setup() { QStackedLayout *stacked = new QStackedLayout(this); stacked->setContentsMargins(0, 0, 0, 0); stacked->setStackingMode(QStackedLayout::StackAll); setLayout(stacked); this->setBlurBackgroundEnabled(true); this->blurBackground()->setRadius(30); this->blurBackground()->setBlurEnabled(true); this->blurBackground()->setMode(DBlurEffectWidget::GaussianBlur); bot_widget = new DBlurEffectWidget(this); bot_widget->setObjectName(BOTTOM_WIDGET); bot_widget->setBlurRectXRadius(18); bot_widget->setBlurRectYRadius(18); bot_widget->setRadius(30); bot_widget->setBlurEnabled(false); bot_widget->setMode(DBlurEffectWidget::GaussianBlur); auto type = DGuiApplicationHelper::instance()->themeType(); THEME_TYPE(type); connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, &Platform_ToolboxProxy::slotThemeTypeChanged); bot_widget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); QVBoxLayout *botv = new QVBoxLayout(bot_widget); botv->setContentsMargins(0, 0, 0, 0); botv->setSpacing(10); m_pBotSpec = new QWidget(bot_widget); m_pBotSpec->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); m_pBotSpec->setFixedWidth(width()); m_pBotSpec->setVisible(false); botv->addWidget(m_pBotSpec); botv->addStretch(); m_pBotToolWgt = new QWidget(bot_widget); m_pBotToolWgt->setObjectName(BOTTOM_TOOL_BUTTON_WIDGET); m_pBotToolWgt->setFixedHeight(TOOLBOX_HEIGHT - 12); m_pBotToolWgt->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); QHBoxLayout *bot_layout = new QHBoxLayout(m_pBotToolWgt); bot_layout->setContentsMargins(LEFT_MARGIN, 0, RIGHT_MARGIN, 0); bot_layout->setSpacing(0); m_pBotToolWgt->setLayout(bot_layout); botv->addWidget(m_pBotToolWgt); bot_widget->setLayout(botv); stacked->addWidget(bot_widget); m_pTimeLabel = new QLabel(m_pBotToolWgt); m_pTimeLabel->setAlignment(Qt::AlignCenter); m_pFullscreentimelable = new QLabel(""); m_pFullscreentimelable->setAttribute(Qt::WA_DeleteOnClose); m_pFullscreentimelable->setForegroundRole(DPalette::Text); DFontSizeManager::instance()->bind(m_pTimeLabel, DFontSizeManager::T6); m_pTimeLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); m_pFullscreentimelable->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pFullscreentimelable, DFontSizeManager::T6); m_pTimeLabelend = new QLabel(m_pBotToolWgt); m_pTimeLabelend->setAlignment(Qt::AlignCenter); m_pFullscreentimelableend = new QLabel(""); m_pFullscreentimelableend->setAttribute(Qt::WA_DeleteOnClose); m_pFullscreentimelableend->setForegroundRole(DPalette::Text); m_pTimeLabelend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pTimeLabelend, DFontSizeManager::T6); m_pFullscreentimelableend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pFullscreentimelableend, DFontSizeManager::T6); m_pProgBar = new DMRSlider(m_pBotToolWgt); m_pProgBar->setObjectName(MOVIE_PROGRESS_WIDGET); m_pProgBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBar->slider()->setObjectName(PROGBAR_SLIDER); m_pProgBar->slider()->setAccessibleName(PROGBAR_SLIDER); m_pProgBar->slider()->setOrientation(Qt::Horizontal); m_pProgBar->slider()->setFocusPolicy(Qt::TabFocus); m_pProgBar->slider()->setRange(0, 100); m_pProgBar->setValue(0); m_pProgBar->setEnableIndication(m_pEngine->state() != PlayerEngine::Idle); connect(m_pProgBar, &DMRSlider::sigUnsupported, this, &Platform_ToolboxProxy::sigUnsupported); connect(m_pPreviewer, &Platform_ThumbnailPreview::leavePreview, this, &Platform_ToolboxProxy::slotLeavePreview); connect(&Settings::get(), &Settings::baseChanged, this, &Platform_ToolboxProxy::setthumbnailmode); connect(m_pEngine, &PlayerEngine::siginitthumbnailseting, this, &Platform_ToolboxProxy::setthumbnailmode); //刷新显示预览当前时间的label connect(m_pProgBar, &DMRSlider::hoverChanged, this, &Platform_ToolboxProxy::progressHoverChanged); connect(m_pProgBar, &DMRSlider::sliderMoved, this, &Platform_ToolboxProxy::progressHoverChanged); connect(m_pProgBar, &DMRSlider::leave, this, &Platform_ToolboxProxy::slotHidePreviewTime); connect(m_pProgBar, &DMRSlider::sliderPressed, this, &Platform_ToolboxProxy::slotSliderPressed); connect(m_pProgBar, &DMRSlider::sliderReleased, this, &Platform_ToolboxProxy::slotSliderReleased); connect(&Settings::get(), &Settings::baseMuteChanged, this, &Platform_ToolboxProxy::slotBaseMuteChanged); m_pViewProgBar = new Platform_ViewProgBar(m_pProgBar, m_pBotToolWgt); //刷新显示预览当前时间的label connect(m_pViewProgBar, &Platform_ViewProgBar::hoverChanged, this, &Platform_ToolboxProxy::progressHoverChanged); connect(m_pViewProgBar, &Platform_ViewProgBar::leave, this, &Platform_ToolboxProxy::slotHidePreviewTime); connect(m_pViewProgBar, &Platform_ViewProgBar::mousePressed, this, &Platform_ToolboxProxy::updateTimeVisible); QSignalMapper *signalMapper = new QSignalMapper(this); connect(signalMapper, static_cast(&QSignalMapper::mapped), this, &Platform_ToolboxProxy::buttonClicked); _mid = new QHBoxLayout(m_pBotToolWgt); _mid->setContentsMargins(0, 0, 0, 0); _mid->setSpacing(0); _mid->setAlignment(Qt::AlignLeft); bot_layout->addLayout(_mid); QHBoxLayout *time = new QHBoxLayout(m_pBotToolWgt); time->setContentsMargins(11, 9, 11, 9); time->setSpacing(0); time->setAlignment(Qt::AlignLeft); bot_layout->addLayout(time); time->addWidget(m_pTimeLabel); QHBoxLayout *progBarspec = new QHBoxLayout(m_pBotToolWgt); progBarspec->setContentsMargins(0, 5, 0, 0); progBarspec->setSpacing(0); progBarspec->setAlignment(Qt::AlignHCenter); m_pProgBar_Widget = new QStackedWidget(m_pBotToolWgt); m_pProgBar_Widget->setObjectName(PROGBAR_WIDGET); m_pProgBar_Widget->setAccessibleName(PROGBAR_WIDGET); m_pProgBar_Widget->setContentsMargins(0, 0, 0, 0); m_pProgBar_Widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBarspec = new DWidget(m_pProgBar_Widget); m_pProgBarspec->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBar_Widget->addWidget(m_pProgBarspec); m_pProgBar_Widget->addWidget(m_pProgBar); m_pProgBar_Widget->addWidget(m_pViewProgBar); m_pProgBar_Widget->setCurrentIndex(0); progBarspec->addWidget(m_pProgBar_Widget); bot_layout->addLayout(progBarspec); QHBoxLayout *timeend = new QHBoxLayout(m_pBotToolWgt); timeend->setContentsMargins(10, 10, 10, 10); timeend->setSpacing(0); timeend->setAlignment(Qt::AlignRight); bot_layout->addLayout(timeend); timeend->addWidget(m_pTimeLabelend); m_pPalyBox = new DButtonBox(m_pBotToolWgt); m_pPalyBox->setFixedWidth(120); m_pPalyBox->setObjectName(PLAY_BUTTOB_BOX); m_pPalyBox->setFocusPolicy(Qt::NoFocus); _mid->addWidget(m_pPalyBox); _mid->setAlignment(m_pPalyBox, Qt::AlignLeft); QList list; m_pPrevBtn = new ButtonBoxButton("", this); m_pPlayBtn = new ButtonBoxButton("", this); m_pNextBtn = new ButtonBoxButton("", this); m_pPrevBtn->setIcon(QIcon::fromTheme("dcc_last", QIcon(":/icons/deepin/builtin/light/normal/last_normal.svg"))); m_pPrevBtn->setIconSize(QSize(36, 36)); m_pPrevBtn->setFixedSize(40, 50); m_pPrevBtn->setObjectName(PREV_BUTTON); m_pPrevBtn->setAccessibleName(PREV_BUTTON); m_pPrevBtn->setFocusPolicy(Qt::TabFocus); connect(m_pPrevBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pPrevBtn, "prev"); list.append(m_pPrevBtn); m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_play", QIcon(":/icons/deepin/builtin/light/normal/play_normal.svg"))); m_pPlayBtn->setIconSize(QSize(36, 36)); m_pPlayBtn->setFixedSize(40, 50); m_pPlayBtn->setFocusPolicy(Qt::TabFocus); m_pPlayBtn->setObjectName(PLAY_BUTTON); m_pPlayBtn->setAccessibleName(PLAY_BUTTON); connect(m_pPlayBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pPlayBtn, "play"); list.append(m_pPlayBtn); m_pNextBtn->setIcon(QIcon::fromTheme("dcc_next", QIcon(":/icons/deepin/builtin/light/normal/next_normal.svg"))); m_pNextBtn->setIconSize(QSize(36, 36)); m_pNextBtn->setFixedSize(40, 50); m_pNextBtn->setFocusPolicy(Qt::TabFocus); m_pNextBtn->setObjectName(NEXT_BUTTON); m_pNextBtn->setAccessibleName(NEXT_BUTTON); connect(m_pNextBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pNextBtn, "next"); list.append(m_pNextBtn); m_pPalyBox->setButtonList(list, false); _right = new QHBoxLayout(m_pBotToolWgt); _right->setContentsMargins(0, 0, 0, 0); _right->setSizeConstraint(QLayout::SetFixedSize); _right->setSpacing(0); bot_layout->addLayout(_right); m_pFullScreenBtn = new ToolButton(m_pBotToolWgt); m_pFullScreenBtn->setObjectName(FS_BUTTON); m_pFullScreenBtn->setAccessibleName(FS_BUTTON); m_pFullScreenBtn->setFocusPolicy(Qt::TabFocus); m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomin")); m_pFullScreenBtn->setIconSize(QSize(36, 36)); m_pFullScreenBtn->setFixedSize(50, 50); m_pFullScreenBtn->initToolTip(); connect(m_pFullScreenBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pFullScreenBtn, "fs"); m_pVolBtn = new VolumeButton(m_pBotToolWgt); m_pVolBtn->installEventFilter(this); m_pVolBtn->setFixedSize(50, 50); m_pVolBtn->setFocusPolicy(Qt::TabFocus); m_pVolBtn->setObjectName(VOLUME_BUTTON); m_pVolBtn->setAccessibleName(VOLUME_BUTTON); m_pVolSlider = new Platform_VolumeSlider(m_pMainWindow, m_pMainWindow); m_pVolSlider->setObjectName(VOLUME_SLIDER_WIDGET); connect(m_pVolBtn, &VolumeButton ::sigUnsupported, this, &Platform_ToolboxProxy::sigUnsupported); connect(m_pVolBtn, &VolumeButton::clicked, this, &Platform_ToolboxProxy::slotVolumeButtonClicked); connect(m_pVolBtn, &VolumeButton::leaved, m_pVolSlider, &Platform_VolumeSlider::delayedHide); connect(m_pVolSlider, &Platform_VolumeSlider::sigVolumeChanged, this, &Platform_ToolboxProxy::slotVolumeChanged); connect(m_pVolSlider, &Platform_VolumeSlider::sigMuteStateChanged, this, &Platform_ToolboxProxy::slotMuteStateChanged); connect(m_pVolBtn, &VolumeButton::requestVolumeUp, m_pVolSlider, &Platform_VolumeSlider::volumeUp); connect(m_pVolBtn, &VolumeButton::requestVolumeDown, m_pVolSlider, &Platform_VolumeSlider::volumeDown); m_pVolSlider->initVolume(); _right->addWidget(m_pFullScreenBtn); _right->addSpacing(10); _right->addWidget(m_pVolBtn); _right->addSpacing(10); m_pMircastBtn = new ToolButton(m_pBotToolWgt); m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast", QIcon(":/resources/icons/mircast/mircast.svg"))); m_pMircastBtn->setIconSize(QSize(24, 24)); m_pMircastBtn->installEventFilter(this); m_pMircastBtn->setCheckable(true); m_pMircastBtn->setFixedSize(50, 50); m_pMircastBtn->setFocusPolicy(Qt::TabFocus); m_pMircastBtn->initToolTip(); m_pMircastBtn->setObjectName(MIRVAST_BUTTON); m_pMircastBtn->setAccessibleName(MIRVAST_BUTTON); connect(m_pMircastBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pMircastBtn, "mircast"); connect(m_mircastWidget, &MircastWidget::mircastState, this, &Platform_ToolboxProxy::slotUpdateMircast); _right->addWidget(m_pMircastBtn); _right->addSpacing(10); m_pListBtn = new ToolButton(m_pBotToolWgt); m_pListBtn->setIcon(QIcon::fromTheme("dcc_episodes")); m_pListBtn->setIconSize(QSize(36, 36)); m_pListBtn->setFocusPolicy(Qt::TabFocus); m_pListBtn->setFixedSize(50, 50); m_pListBtn->initToolTip(); m_pListBtn->setCheckable(true); m_pListBtn->setObjectName(PLAYLIST_BUTTON); m_pListBtn->setAccessibleName(PLAYLIST_BUTTON); m_pListBtn->installEventFilter(this); connect(m_pListBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pListBtn, "list"); _right->addWidget(m_pListBtn); //将进度条的Tab键次序移动到nextBtn之后 setTabOrder(m_pNextBtn, m_pProgBar->slider()); // these tooltips is not used due to deepin ui design //lmh0910wayland下用这一套tooltip Platform_TooltipHandler *th = new Platform_TooltipHandler(this); QWidget *btns[] = { m_pPlayBtn, m_pPrevBtn, m_pNextBtn, m_pFullScreenBtn, m_pMircastBtn, m_pListBtn }; QString hints[] = { tr("Play/Pause"), tr("Previous"), tr("Next"), tr("Fullscreen"), tr("Miracast"), tr("Playlist") }; QString attrs[] = { "play", "prev", "next", "fs", "mir", "list" }; for (unsigned int i = 0; i < sizeof(btns) / sizeof(btns[0]); i++) { if (i < 3) { //first three buttons prev/play/next btns[i]->setToolTip(hints[i]); Tip *t = new Tip(QPixmap(), hints[i], parentWidget()); t->setProperty("for", QVariant::fromValue(btns[i])); btns[i]->setProperty("HintWidget", QVariant::fromValue(t)); btns[i]->installEventFilter(th); } else { ToolButton *btn = dynamic_cast(btns[i]); btn->setTooTipText(hints[i]); btn->setProperty("TipId", attrs[i]); connect(btn, &ToolButton::entered, this, &Platform_ToolboxProxy::buttonEnter); connect(btn, &ToolButton::leaved, this, &Platform_ToolboxProxy::buttonLeave); } } connect(m_pEngine, &PlayerEngine::stateChanged, this, &Platform_ToolboxProxy::updatePlayState); connect(m_pEngine, &PlayerEngine::stateChanged, this, &Platform_ToolboxProxy::updateButtonStates); // 控件状态变化由updateButtonStates统一处理 connect(m_pEngine, &PlayerEngine::fileLoaded, this, &Platform_ToolboxProxy::slotFileLoaded); connect(m_pEngine, &PlayerEngine::elapsedChanged, this, &Platform_ToolboxProxy::slotElapsedChanged); connect(m_pEngine, &PlayerEngine::updateDuration, this, &Platform_ToolboxProxy::slotElapsedChanged); connect(window()->windowHandle(), &QWindow::windowStateChanged, this, &Platform_ToolboxProxy::updateFullState); connect(m_pEngine, &PlayerEngine::tracksChanged, this, &Platform_ToolboxProxy::updateButtonStates); connect(m_pEngine, &PlayerEngine::fileLoaded, this, &Platform_ToolboxProxy::updateButtonStates); connect(&m_pEngine->playlist(), &PlaylistModel::countChanged, this, &Platform_ToolboxProxy::updateButtonStates); connect(m_pMainWindow, &Platform_MainWindow::initChanged, this, &Platform_ToolboxProxy::updateButtonStates); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_pBotToolWgt->setFixedHeight((TOOLBOX_HEIGHT - 12)*0.66); progBarspec->setContentsMargins(0, 0, 0, 0); m_pBotSpec->setFixedHeight(20); m_pPalyBox->setFixedWidth(79); m_pPrevBtn->setIconSize(QSize(24, 24)); m_pPrevBtn->setFixedSize(26, 33); m_pPlayBtn->setIconSize(QSize(24, 24)); m_pPlayBtn->setFixedSize(26, 33); m_pNextBtn->setIconSize(QSize(24, 24)); m_pNextBtn->setFixedSize(26, 33); m_pFullScreenBtn->setIconSize(QSize(24, 24)); m_pFullScreenBtn->setFixedSize(33, 33); m_pVolBtn->setFixedSize(33, 33); m_pMircastBtn->setIconSize(QSize(16, 16)); m_pMircastBtn->setFixedSize(33, 33); m_pListBtn->setIconSize(QSize(24, 24)); m_pListBtn->setFixedSize(33, 33); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_pBotToolWgt->setFixedHeight(TOOLBOX_HEIGHT - 12); m_pBotSpec->setFixedHeight(30); m_pPalyBox->setFixedWidth(120); m_pPrevBtn->setIconSize(QSize(36, 36)); m_pPrevBtn->setFixedSize(40, 50); m_pPlayBtn->setIconSize(QSize(36, 36)); m_pPlayBtn->setFixedSize(40, 50); m_pNextBtn->setIconSize(QSize(36, 36)); m_pNextBtn->setFixedSize(40, 50); m_pFullScreenBtn->setIconSize(QSize(36, 36)); m_pFullScreenBtn->setFixedSize(50, 50); m_pVolBtn->setFixedSize(50, 50); m_pMircastBtn->setIconSize(QSize(24, 24)); m_pMircastBtn->setFixedSize(50, 50); m_pListBtn->setIconSize(QSize(36, 36)); m_pListBtn->setFixedSize(50, 50); } else { m_pBotToolWgt->setFixedHeight((TOOLBOX_HEIGHT - 12)*0.66); m_pBotSpec->setFixedHeight(20); m_pPalyBox->setFixedWidth(79); m_pPrevBtn->setIconSize(QSize(24, 24)); m_pPrevBtn->setFixedSize(26, 33); m_pPlayBtn->setIconSize(QSize(24, 24)); m_pPlayBtn->setFixedSize(26, 33); m_pNextBtn->setIconSize(QSize(24, 24)); m_pNextBtn->setFixedSize(26, 33); m_pFullScreenBtn->setIconSize(QSize(24, 24)); m_pFullScreenBtn->setFixedSize(33, 33); m_pVolBtn->setFixedSize(33, 33); m_pMircastBtn->setIconSize(QSize(16, 16)); m_pMircastBtn->setFixedSize(33, 33); m_pListBtn->setIconSize(QSize(24, 24)); m_pListBtn->setFixedSize(33, 33); } if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (m_bThumbnailmode) { //如果进度条为胶片模式,重新加载缩略图并显示 if(CompositingManager::get().platform() == Platform::X86) { updateThumbnail(); } updateMovieProgress(); } m_pProgBar_Widget->setCurrentIndex(1); } }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, progBarspec, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { progBarspec->setContentsMargins(0, 5, 0, 0); } else { progBarspec->setContentsMargins(0, 0, 0, 0); } }); #endif updatePlayState(); updateFullState(); updateButtonStates(); if(CompositingManager::get().platform() != Platform::X86) connect(qApp, &QGuiApplication::applicationStateChanged, this, &Platform_ToolboxProxy::slotApplicationStateChanged); } void Platform_ToolboxProxy::updateThumbnail() { disconnect(m_pWorker, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize))); if (m_pEngine->currFileIsAudio()) { return; } qInfo() << "worker" << m_pWorker; QTimer::singleShot(1000, this, &Platform_ToolboxProxy::slotUpdateThumbnailTimeOut); } void Platform_ToolboxProxy::updatePreviewTime(qint64 secs, const QPoint &pos) { QTime time(0, 0, 0); QString strTime = time.addSecs(static_cast(secs)).toString("hh:mm:ss"); m_pPreviewTime->setTime(strTime); m_pPreviewTime->show(pos.x(), pos.y() + 14); } void Platform_ToolboxProxy::initMember() { m_pmList.clear(); m_pmBlackList.clear(); m_pPlaylist = nullptr; m_pProgBarspec = nullptr; m_pBotSpec = nullptr; m_pBotToolWgt = nullptr; m_pProgBar_Widget = nullptr; bot_widget = nullptr; _mid = nullptr; _right = nullptr; m_pFullscreentimelable = nullptr; m_pFullscreentimelableend = nullptr; m_pTimeLabel = nullptr; m_pTimeLabelend = nullptr; m_pViewProgBar = nullptr; m_pViewProgBar = nullptr; m_pProgBar = nullptr; m_pPreviewer = nullptr; m_pPreviewTime = nullptr; m_mircastWidget = nullptr; m_pPlayBtn = nullptr; m_pPrevBtn = nullptr; m_pNextBtn = nullptr; m_pPalyBox = nullptr; m_pVolBtn = nullptr; m_pListBtn = nullptr; m_pFullScreenBtn = nullptr; m_pPlayBtnTip = nullptr; m_pPrevBtnTip = nullptr; m_pNextBtnTip = nullptr; m_pFullScreenBtnTip = nullptr; m_pListBtnTip = nullptr; m_pWorker = nullptr; m_pPaOpen = nullptr; m_pPaClose = nullptr; m_nClickTime = 0; m_processAdd = 0.0; m_bMouseFlag = false; m_bMousePree = false; m_bThumbnailmode = false; m_bAnimationFinash = true; m_bCanPlay = false; m_bSetListBtnFocus = false; } /** * @brief closeAnyPopup 关闭所有弹窗效果 */ void Platform_ToolboxProxy::closeAnyPopup() { if (m_pPreviewer->isVisible()) { m_pPreviewer->hide(); qInfo() << "hide previewer"; } if (m_pPreviewTime->isVisible()) { m_pPreviewTime->hide(); } if (m_pVolSlider->isVisible()) { m_pVolSlider->stopTimer(); m_pVolSlider->hide(); } } /** * @brief anyPopupShown 是否存在一些弹出显示窗口 * @return true时为有,false为无 */ bool Platform_ToolboxProxy::anyPopupShown() const { //返回鼠标悬停缩略图、鼠标悬停时间弹窗、音量弹窗是否有弹出 return m_pPreviewer->isVisible() || m_pPreviewTime->isVisible() || m_pVolSlider->isVisible(); } void Platform_ToolboxProxy::updateHoverPreview(const QUrl &url, int secs) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) return; if (m_pEngine->playlist().currentInfo().url != url) return; if (!Settings::get().isSet(Settings::PreviewOnMouseover)) return; if (m_pVolSlider->isVisible()) return; const PlayItemInfo &pif = m_pEngine->playlist().currentInfo(); if (!pif.url.isLocalFile()) return; const QString &absPath = pif.info.canonicalFilePath(); if (!QFile::exists(absPath)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); return; } if (!m_bMouseFlag) { return; } int nPosition = 0; qint64 nDuration = m_pEngine->duration(); QPoint showPoint; if(nDuration<=0) { return; } if (m_pProgBar->isVisible()) { nPosition = (secs * m_pProgBar->slider()->width()) / nDuration; showPoint = m_pProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } else { nPosition = secs * m_pViewProgBar->getViewLength() / nDuration + m_pViewProgBar->getStartPoint(); showPoint = m_pViewProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } QPixmap pm = Platform_ThumbnailWorker::get().getThumb(url, secs); if (!pm.isNull()) { QPoint point { showPoint.x(), showPoint.y() }; m_pPreviewer->updateWithPreview(pm, secs, m_pEngine->videoRotation()); } } void Platform_ToolboxProxy::waitPlay() { if (m_pPlayBtn) { m_pPlayBtn->setEnabled(false); } if (m_pPrevBtn) { m_pPrevBtn->setEnabled(false); } if (m_pNextBtn) { m_pNextBtn->setEnabled(false); } QTimer::singleShot(500, [ = ] { if (m_pPlayBtn) { m_pPlayBtn->setEnabled(true); } if (m_pPrevBtn && m_pEngine->playlist().count() > 1) { m_pPrevBtn->setEnabled(true); } if (m_pNextBtn && m_pEngine->playlist().count() > 1) { m_pNextBtn->setEnabled(true); } }); } void Platform_ToolboxProxy::slotThemeTypeChanged() { QPalette textPalette; bool bRawFormat = false; auto type = DGuiApplicationHelper::instance()->themeType(); THEME_TYPE(type); // 组合按钮无边框 QColor framecolor("#FFFFFF"); framecolor.setAlphaF(0.00); QString rStr; if (type == DGuiApplicationHelper::LightType) { textPalette.setColor(QPalette::WindowText, QColor(0, 0, 0, 40)); // 浅色背景下时长显示置灰 textPalette.setColor(QPalette::Text, QColor(0, 0, 0, 40)); QColor maskColor(247, 247, 247); maskColor.setAlphaF(0.60); rStr = "light"; DPalette pa; pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor("#FFFFFF")); pa.setColor(DPalette::Dark, QColor("#FFFFFF")); pa.setColor(DPalette::ButtonText, QColor(Qt::black)); // 单个按钮边框 QColor btnframecolor("#000000"); btnframecolor.setAlphaF(0.00); pa.setColor(DPalette::FrameBorder, btnframecolor); // 取消阴影 pa.setColor(DPalette::Shadow, btnframecolor); DApplicationHelper::instance()->setPalette(m_pFullScreenBtn, pa); DApplicationHelper::instance()->setPalette(m_pVolBtn, pa); DApplicationHelper::instance()->setPalette(m_pListBtn, pa); DPalette pl = m_pPalyBox ->palette(); pl.setColor(DPalette::Button, QColor("#FFFFFF")); //这个地方会导致按钮setdisable设置失效,按钮无法置灰 // pl.setColor(DPalette::ButtonText, QColor(Qt::black)); pl.setColor(DPalette::FrameBorder, framecolor); pl.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pPalyBox, pl); } else { textPalette.setColor(QPalette::WindowText, QColor(255, 255, 255, 40)); // 深色背景下时长显示置灰 textPalette.setColor(QPalette::Text, QColor(255, 255, 255, 40)); QColor maskColor(32, 32, 32); maskColor.setAlphaF(0.80); rStr = "dark"; DPalette pa; pa = m_pFullScreenBtn->palette(); QColor btnMaskColor("#000000"); btnMaskColor.setAlphaF(0.30); pa.setColor(DPalette::Light, btnMaskColor); pa.setColor(DPalette::Dark, btnMaskColor); pa.setColor(DPalette::ButtonText, QColor("#c5cfe0")); pa.setColor(DPalette::FrameBorder, framecolor); // 取消阴影 pa.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pFullScreenBtn, pa); DApplicationHelper::instance()->setPalette(m_pVolBtn, pa); DApplicationHelper::instance()->setPalette(m_pListBtn, pa); DPalette pl = m_pPalyBox ->palette(); QColor btnColor("#000000"); btnColor.setAlphaF(0.60); pl.setColor(DPalette::Button, btnColor); // pl.setColor(DPalette::ButtonText, QColor("#c5cfe0")); pl.setColor(DPalette::FrameBorder, framecolor); pl.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pPalyBox, pl); } if(m_pEngine->state() != PlayerEngine::CoreState::Idle) { bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); if(bRawFormat && !m_pEngine->currFileIsAudio()) { m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(false); } else if (bRawFormat) { m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); } else { textPalette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); textPalette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(true); } } else { textPalette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); textPalette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(true); } } void Platform_ToolboxProxy::slotLeavePreview() { auto pos = m_pProgBar->mapFromGlobal(QCursor::pos()); if (!m_pProgBar->geometry().contains(pos)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); m_pProgBar->forceLeave(); } } void Platform_ToolboxProxy::slotHidePreviewTime() { m_pPreviewer->hide(); m_pPreviewTime->hide(); m_bMouseFlag = false; } void Platform_ToolboxProxy::slotSliderPressed() { m_bMousePree = true; } void Platform_ToolboxProxy::slotSliderReleased() { m_bMousePree = false; if (m_mircastWidget->getMircastState() == MircastWidget::Screening) m_mircastWidget->slotSeekMircast(m_pProgBar->slider()->sliderPosition()); else m_pEngine->seekAbsolute(m_pProgBar->slider()->sliderPosition()); } void Platform_ToolboxProxy::slotBaseMuteChanged(QString sk, const QVariant &/*val*/) { if (sk == "base.play.mousepreview") { m_pProgBar->setEnableIndication(m_pEngine->state() != PlayerEngine::Idle); } } void Platform_ToolboxProxy::slotVolumeButtonClicked() { //与其他按键保持一致,工具栏隐藏时不响应 if (!isVisible()) return; m_pVolBtn->hideTip(); if (m_pVolSlider->getsliderstate()) return; /* * 设置-2为已经完成第一次打开设置音量 * -1为初始化数值 * 大于等于零表示为已完成初始化 */ if (!m_pVolSlider->isVisible()) { m_pVolSlider->adjustSize(); m_pVolSlider->show(); m_pVolSlider->raise(); } else { m_pVolSlider->hide(); } } void Platform_ToolboxProxy::slotFileLoaded() { m_pProgBar->slider()->setRange(0, static_cast(m_pEngine->duration())); m_pProgBar_Widget->setCurrentIndex(1); m_pPreviewer->setFixedSize(0, 0); update(); //正在投屏时如果当前播放为音频直接播放下一首。 if(m_pEngine->currFileIsAudio()&&m_mircastWidget->getMircastState() != MircastWidget::Idel) { //如果全是音频文件则退出投屏 bool isAllAudio = true; QString sNextVideoName; int nNextIndex = -1; QList lstItemInfo = m_pEngine->getplaylist()->items(); for(int i = 0; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.vCodecID != -1) { isAllAudio = false; if(sNextVideoName.isNull()) { sNextVideoName = iteminfo.mi.filePath; nNextIndex = i; break; } } } if(isAllAudio) { m_pMainWindow->slotExitMircast(); return; } QString sCurPath = m_pEngine->getplaylist()->currentInfo().mi.filePath; int nIndex = -1; for(int i = 0; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.filePath == sCurPath) { nIndex = i; break; } } if(nIndex == -1) return; if(nIndex < nNextIndex && !sNextVideoName.isNull()) { m_pMainWindow->play({sNextVideoName}); } else{ bool isNext = true; for(int i = nIndex; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.vCodecID != -1) { isNext = false; m_pMainWindow->play({iteminfo.mi.filePath}); break; } } if(m_pEngine->getplaylist()->playMode() == PlaylistModel::OrderPlay) { if(isNext) m_pMainWindow->slotExitMircast(); return; } if(isNext && !sNextVideoName.isNull()){ m_pMainWindow->play({sNextVideoName}); } } return; } m_mircastWidget->playNext(); } void Platform_ToolboxProxy::slotElapsedChanged() { if(m_mircastWidget->getMircastState() != MircastWidget::Idel) return; quint64 url = static_cast(-1); if (m_pEngine->playlist().current() != -1) { url = static_cast(m_pEngine->duration()); } //TODO(xxxpengfei):此处代码同时更新全屏的时长并未判断全屏状态,请维护同事查看是否存在优化空间 updateTimeInfo(static_cast(url), m_pEngine->elapsed(), m_pTimeLabel, m_pTimeLabelend, true); updateTimeInfo(static_cast(url), m_pEngine->elapsed(), m_pFullscreentimelable, m_pFullscreentimelableend, false); QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6)); m_pFullscreentimelable->setMinimumWidth(fm.width(m_pFullscreentimelable->text())); m_pFullscreentimelableend->setMinimumWidth(fm.width(m_pFullscreentimelableend->text())); updateMovieProgress(); } void Platform_ToolboxProxy::slotApplicationStateChanged(Qt::ApplicationState e) { if (e == Qt::ApplicationInactive && anyPopupShown()) { closeAnyPopup(); } } void Platform_ToolboxProxy::slotPlayListStateChange(bool isShortcut) { if (m_bAnimationFinash == false) { return ; } closeAnyPopup(); /** * 此处在动画执行前设定好ToolboxProxy的起始位置和终止位置 * 基于 MainWindow::updateProxyGeometry 所设置的初始状态 以及 是否是紧凑模式 定位ToolboxProxy的起始位置和终止位置 */ QRect rc_view=m_pMainWindow->rect(); QRect rc_opened; rc_opened = QRect(5, rc_view.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - rc_view.top() - 5, rc_view.width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 7)); QRect rc_closed = QRect(5, rc_view.height() - TOOLBOX_HEIGHT - rc_view.top() - 5, rc_view.width() - 10, TOOLBOX_HEIGHT); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { rc_opened = QRect(5, rc_view.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT) - rc_view.top() - 5, rc_view.width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT + 7)); rc_closed = QRect(5, rc_view.height() - TOOLBOX_DSIZEMODE_HEIGHT - rc_view.top() - 5, rc_view.width() - 10, TOOLBOX_DSIZEMODE_HEIGHT); } #endif if (m_pPlaylist->state() == Platform_PlaylistWidget::State::Opened) { //窗口绑定渲染不展示动画,故按键状态不做限制 Q_UNUSED(isShortcut); setGeometry(rc_opened); m_pListBtn->setChecked(true); } else { Q_UNUSED(isShortcut); setGeometry(rc_closed); m_pListBtn->setChecked(false); } } void Platform_ToolboxProxy::slotUpdateThumbnailTimeOut() { //如果视频长度小于1s应该直接返回不然会UI错误 if (m_pEngine->playlist().currentInfo().mi.duration < 1) { return; } m_pViewProgBar->clear(); //清除前一次进度条中的缩略图,以便显示新的缩略图 m_listPixmapMutex.lock(); m_pmList.clear(); m_pmBlackList.clear(); m_listPixmapMutex.unlock(); if (m_pWorker == nullptr) { m_pWorker = new Platform_viewProgBarLoad(m_pEngine, m_pProgBar, this); m_pWorker->setListPixmapMutex(&m_listPixmapMutex); } m_pWorker->requestInterruption(); QTimer::singleShot(500, this, [ = ] {m_pWorker->start();}); connect(m_pWorker, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize))); m_pProgBar_Widget->setCurrentIndex(1); } void Platform_ToolboxProxy::slotProAnimationFinished() { m_pListBtn->setEnabled(true); QObject *pProAnimation = sender(); if (pProAnimation == m_pPaOpen) { m_pPaOpen->deleteLater(); m_pPaOpen = nullptr; m_bAnimationFinash = true; } else if (pProAnimation == m_pPaClose) { m_pPaClose->deleteLater(); m_pPaClose = nullptr; m_bAnimationFinash = true; //Wait for the animation to end before setting the focus if (m_bSetListBtnFocus) { m_pListBtn->setFocus(); } } // m_bSetListBtnFocus = false; } void Platform_ToolboxProxy::slotVolumeChanged(int nVolume) { m_pVolBtn->setVolume(nVolume); emit sigVolumeChanged(nVolume); } void Platform_ToolboxProxy::slotMuteStateChanged(bool bMute) { m_pVolBtn->setMute(bMute); emit sigMuteStateChanged(bMute); } qint64 Platform_ToolboxProxy::getMouseTime() { return m_nClickTime; } void Platform_ToolboxProxy::clearPlayListFocus() { if (m_pPlaylist->isFocusInPlaylist()) { m_pPlaylist->clearFocus(); } m_bSetListBtnFocus = false; } void Platform_ToolboxProxy::setBtnFocusSign(bool sign) { m_bSetListBtnFocus = sign; } bool Platform_ToolboxProxy::isInMircastWidget(const QPoint &p) { if (!m_mircastWidget->isVisible()) return false; return m_mircastWidget->geometry().contains(p); } void Platform_ToolboxProxy::updateMircastWidget(QPoint p) { m_mircastWidget->move(p.x() - m_mircastWidget->width(), p.y() - m_mircastWidget->height() - 10); } void Platform_ToolboxProxy::hideMircastWidget() { m_mircastWidget->hide(); m_pMircastBtn->setChecked(false); m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast")); } /** * @brief volumeUp 鼠标滚轮增加音量 */ void Platform_ToolboxProxy::volumeUp() { if(!m_pVolSlider->isEnabled()) { // 不能调节音量需要给出提示 emit sigUnsupported(); } else { m_pVolSlider->volumeUp(); } } /** * @brief volumeUp 鼠标滚轮减少音量 */ void Platform_ToolboxProxy::volumeDown() { if(!m_pVolSlider->isEnabled()) { emit sigUnsupported(); } else { m_pVolSlider->volumeDown(); } } /** * @brief calculationStep 计算鼠标滚轮滚动的步进 * @param iAngleDelta 鼠标滚动的距离 */ void Platform_ToolboxProxy::calculationStep(int iAngleDelta) { m_pVolSlider->calculationStep(iAngleDelta); } /** * @brief changeMuteState 切换静音模式 */ void Platform_ToolboxProxy::changeMuteState() { m_pVolSlider->muteButtnClicked(); } /** * @brief playlistClosedByEsc Esc关闭播放列表 */ void Platform_ToolboxProxy::playlistClosedByEsc() { if (m_pPlaylist->isFocusInPlaylist() && m_bSetListBtnFocus) { // m_bSetListBtnFocus = true; m_pMainWindow->requestAction(ActionFactory::TogglePlaylist); // m_pListBtn->setFocus(); //焦点回到播放列表按钮 } } void Platform_ToolboxProxy::progressHoverChanged(int nValue) { if(m_pProgBar->slider()->value() == 0) // 没有时长信息的影片不需要预览 { return; } if (m_pEngine->state() == PlayerEngine::CoreState::Idle) return; if (m_pVolSlider->isVisible()) return; const auto &pif = m_pEngine->playlist().currentInfo(); if (!pif.url.isLocalFile()) return; const auto &absPath = pif.info.canonicalFilePath(); if (!QFile::exists(absPath)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); return; } m_bMouseFlag = true; QPoint pos = m_pProgBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10)); QPoint point { QCursor::pos().x(), pos.y() }; QPoint startPoint = mapToGlobal(QPoint(m_pProgBar_Widget->x(), 0)); QPoint endPoint = mapToGlobal(QPoint(m_pProgBar_Widget->x() + m_pProgBar->width(), 0)); /********************************* * 时长显示不能超出进度条 * ********************************/ if (point.x() < startPoint.x()) { point.setX(startPoint.x()); } if (point.x() > endPoint.x()) { point.setX(endPoint.x()); } bool bIsAudio = m_pEngine->currFileIsAudio(); if (!Settings::get().isSet(Settings::PreviewOnMouseover) || bIsAudio) { updatePreviewTime(nValue, point); return; } //鼠标移动时同步缩略图显示位置 int nPosition = 0; qint64 nDuration = m_pEngine->duration(); if(nDuration<=0) { return; } if (m_pProgBar->isVisible()) { nPosition = (nValue * m_pProgBar->slider()->width()) / nDuration; point = m_pProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } else { nPosition = nValue * m_pViewProgBar->getViewLength() / nDuration + m_pViewProgBar->getStartPoint(); point = m_pViewProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } m_pPreviewer->updateWithPreview(point); Platform_ThumbnailWorker::get().requestThumb(pif.url, nValue); } void Platform_ToolboxProxy::updateTimeVisible(bool visible) { if (Settings::get().isSet(Settings::PreviewOnMouseover)) return; if (m_pPreviewTime) { m_pPreviewTime->setVisible(!visible); } } void Platform_ToolboxProxy::updateMovieProgress() { if (m_bMousePree == true) return ; auto d = m_pEngine->duration(); auto e = m_pEngine->elapsed(); if (d > m_pProgBar->maximum()) { d = m_pProgBar->maximum(); } int v = 0; int v2 = 0; if (d != 0 && e != 0) { v = static_cast(m_pProgBar->maximum() * e / d); v2 = static_cast(m_pViewProgBar->getViewLength() * e / d + m_pViewProgBar->getStartPoint()); } if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); m_pProgBar->setValue(v); m_pProgBar->blockSignals(false); } if (!m_pViewProgBar->getIsBlockSignals()) { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(v2); m_pViewProgBar->setTime(e); m_pViewProgBar->setIsBlockSignals(false); } } void Platform_ToolboxProxy::updateButtonStates() { QPalette palette; // 时长显示的颜色,在某些情况下变化字体颜色区别功能 bool bRawFormat = false; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { palette.setColor(QPalette::WindowText, QColor(0, 0, 0, 40)); // 浅色背景下置灰 palette.setColor(QPalette::Text, QColor(0, 0, 0, 40)); } else { palette.setColor(QPalette::WindowText, QColor(255, 255, 255, 40)); // 深色背景下置灰 palette.setColor(QPalette::Text, QColor(255, 255, 255, 40)); } if(m_pEngine->state() != PlayerEngine::CoreState::Idle) { bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); m_pMircastBtn->setEnabled(!m_pEngine->currFileIsAudio()); if(m_pEngine->currFileIsAudio()) m_mircastWidget->setVisible(false); if(bRawFormat && !m_pEngine->currFileIsAudio()){ // 如果正在播放的视频是裸流不支持音量调节和进度调节 m_pProgBar->setEnabled(false); m_pProgBar->setEnableIndication(false); m_pVolSlider->setEnabled(false); m_pTimeLabel->setPalette(palette); // 如果正在播放的视频是裸流置灰 m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(false); } else if (bRawFormat) { m_pProgBar->setEnabled(false); m_pProgBar->setEnableIndication(false); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); } else { m_pProgBar->setEnabled(true); m_pProgBar->setEnableIndication(true); m_pVolSlider->setEnabled(true); palette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); palette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(true); } } else { m_pVolSlider->setEnabled(true); palette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); palette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(true); } qInfo() << m_pEngine->playingMovieInfo().subs.size(); bool vis = m_pEngine->playlist().count() > 1 && m_pMainWindow->inited(); //播放状态为空闲或播放列表只有一项时,将上下一曲按钮置灰 if (m_pEngine->state() == PlayerEngine::CoreState::Idle || m_pEngine->getplaylist()->items().size() <= 1) { m_pPrevBtn->setDisabled(true); m_pNextBtn->setDisabled(true); } else { m_pPrevBtn->setEnabled(true); m_pNextBtn->setEnabled(true); } m_bCanPlay = vis; //防止连续切换上下曲目 } void Platform_ToolboxProxy::updateFullState() { bool isFullscreen = window()->isFullScreen(); if (isFullscreen || m_pFullscreentimelable->isVisible()) { m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomout")); m_pFullScreenBtn->setTooTipText(tr("Exit fullscreen")); } else { m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomin")); m_pFullScreenBtn->setTooTipText(tr("Fullscreen")); } } void Platform_ToolboxProxy::slotUpdateMircast(int state, QString msg) { emit sigMircastState(state, msg); if (state == 0) { m_pVolBtn->setButtonEnable(false); m_pFullScreenBtn->setEnabled(false); } else { bool bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); if(bRawFormat && !m_pEngine->currFileIsAudio()) { m_pVolBtn->setButtonEnable(false); } else { m_pVolBtn->setButtonEnable(true); } m_pFullScreenBtn->setEnabled(true); } } void Platform_ToolboxProxy::updatePlayState() { if (((m_mircastWidget->getMircastState() != MircastWidget::Idel) && (m_mircastWidget->getMircastPlayState() == MircastWidget::Play)) || m_pEngine->state() == PlayerEngine::CoreState::Playing) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Button, QColor(255, 255, 255, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pMircastBtn->setPalette(pa); } else { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Button, QColor(0, 0, 0, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pMircastBtn->setPalette(pa); } m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_suspend", QIcon(":/icons/deepin/builtin/light/normal/suspend_normal.svg"))); //lmh0910wayland下用这一套tooltip m_pPlayBtn->setToolTip(tr("Pause")); } else { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Button, QColor(255, 255, 255, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pMircastBtn->setPalette(pa); } else { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Button, QColor(0, 0, 0, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pMircastBtn->setPalette(pa); } //lmh0910wayland下用这一套tooltip m_pPlayBtn->setToolTip(tr("Play")); m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_play", QIcon(":/icons/deepin/builtin/light/normal/play_normal.svg"))); } if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { if (m_pPreviewer->isVisible()) { m_pPreviewer->hide(); } if (m_pPreviewTime->isVisible()) { m_pPreviewTime->hide(); } if (m_pProgBar->isVisible()) { m_pProgBar->setVisible(false); } m_pProgBar_Widget->setCurrentIndex(0); setProperty("idle", true); } else { setProperty("idle", false); } } /** * @brief updateTimeInfo 更新工具栏中播放时间显示 * @param duration 视频总时长 * @param pos 当前播放的时间点 * @param pTimeLabel 当前播放时间 * @param pTimeLabelend 视频总时长 * @param flag 是否为全屏的控件 */ void Platform_ToolboxProxy::updateTimeInfo(qint64 duration, qint64 pos, QLabel *pTimeLabel, QLabel *pTimeLabelend, bool flag) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { pTimeLabel->setText(""); pTimeLabelend->setText(""); } else { //mpv returns a slightly different duration from movieinfo.duration //m_pTimeLabel->setText(QString("%2/%1").arg(utils::Time2str(duration)) //.arg(utils::Time2str(pos))); if (1 == flag) { pTimeLabel->setText(QString("%1") .arg(utils::Time2str(pos))); pTimeLabelend->setText(QString("%1") .arg(utils::Time2str(duration))); } else { pTimeLabel->setText(QString("%1 %2") .arg(utils::Time2str(pos)).arg("/")); pTimeLabelend->setText(QString("%1") .arg(utils::Time2str(duration))); } } } void Platform_ToolboxProxy::buttonClicked(QString id) { //add by heyi static bool bFlags = true; if (bFlags) { // m_pMainWindow->firstPlayInit(); m_pMainWindow->repaint(); bFlags = false; } if (!isVisible()) return; qInfo() << __func__ << id; if (id == "play") { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { m_pMainWindow->requestAction(ActionFactory::ActionKind::StartPlay); } else { m_pMainWindow->requestAction(ActionFactory::ActionKind::TogglePause); } } else if (id == "fs") { m_pMainWindow->requestAction(ActionFactory::ActionKind::ToggleFullscreen); } else if (id == "vol") { m_pMainWindow->requestAction(ActionFactory::ActionKind::ToggleMute); } else if (id == "prev" && m_bCanPlay) { //如果影片未加载完成,则不播放上一曲 m_pMainWindow->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); } else if (id == "next" && m_bCanPlay) { m_pMainWindow->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); } else if (id == "list") { m_nClickTime = QDateTime::currentMSecsSinceEpoch(); m_pMainWindow->requestAction(ActionFactory::ActionKind::TogglePlaylist); m_pListBtn->hideToolTip(); } else if (id == "mircast") { m_mircastWidget->togglePopup(); m_pMircastBtn->hideToolTip(); m_pMircastBtn->setChecked(m_mircastWidget->isVisible()); if (m_pMircastBtn->isChecked()) m_pMircastBtn->setIcon(QIcon(":/icons/deepin/builtin/light/checked/mircast_chenked.svg")); else m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast")); } } void Platform_ToolboxProxy::buttonEnter() { if (!isVisible()) return; ToolButton *btn = qobject_cast(sender()); QString id = btn->property("TipId").toString(); if (id == "sub" || id == "fs" || id == "list" || id == "mir") { updateToolTipTheme(btn); btn->showToolTip(); } } void Platform_ToolboxProxy::buttonLeave() { if (!isVisible()) return; ToolButton *btn = qobject_cast(sender()); QString id = btn->property("TipId").toString(); if (id == "sub" || id == "fs" || id == "list" || id == "mir") { btn->hideToolTip(); } } void Platform_ToolboxProxy::showEvent(QShowEvent *event) { updateTimeLabel(); DFloatingWidget::showEvent(event); } void Platform_ToolboxProxy::paintEvent(QPaintEvent *event) { QPainter painter(this); setFixedWidth(m_pMainWindow->width()); //使偏移位置与初始化偏移的位置相同 int widthOffset = 0; move(widthOffset, m_pMainWindow->height() - this->height()); if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { painter.fillRect(rect(), QBrush(QColor(31, 31, 31))); } else { painter.fillRect(rect(), this->palette().background()); } } void Platform_ToolboxProxy::resizeEvent(QResizeEvent *event) { if (event->oldSize().width() != event->size().width()) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (m_bThumbnailmode) { //如果进度条为胶片模式,重新加载缩略图并显示 if(CompositingManager::get().platform() == Platform::X86) { updateThumbnail(); } updateMovieProgress(); } m_pProgBar_Widget->setCurrentIndex(1); } } if (CompositingManager::get().platform() != Platform::Alpha) { if (m_bAnimationFinash == false && m_pPaOpen != nullptr && m_pPaClose != nullptr) { m_pPlaylist->endAnimation(); m_pPaOpen->setDuration(0); m_pPaClose->setDuration(0); } updateTimeLabel(); } DFloatingWidget::resizeEvent(event); } void Platform_ToolboxProxy::mouseMoveEvent(QMouseEvent *ev) { setButtonTooltipHide(); QWidget::mouseMoveEvent(ev); } bool Platform_ToolboxProxy::eventFilter(QObject *obj, QEvent *ev) { if (obj == m_pVolBtn) { if (ev->type() == QEvent::KeyPress && (m_pVolSlider->state() == Platform_VolumeSlider::Open)) { QKeyEvent *keyEvent = static_cast(ev); int nCurVolume = m_pVolSlider->getVolume(); //如果音量条升起且上下键按下,以步长为5调整音量 if (keyEvent->key() == Qt::Key_Up) { m_pVolSlider->changeVolume(qMin(nCurVolume + 5, 200)); return true; } else if (keyEvent->key() == Qt::Key_Down) { m_pVolSlider->changeVolume(qMax(nCurVolume - 5, 0)); return true; } } } if(CompositingManager::get().platform() == Platform::X86) { if (obj == m_pListBtn) { QMouseEvent *mouseEvent = static_cast(ev); if (ev->type() == QEvent::MouseButtonRelease && mouseEvent->button() == Qt::RightButton) { if (m_pPlaylist->state() == Platform_PlaylistWidget::State::Opened && m_pListBtn->isChecked()) { m_pListBtn->setChecked(!m_pListBtn->isChecked()); } if (m_pPlaylist->state() == Platform_PlaylistWidget::State::Closed && !m_pListBtn->isChecked()) { m_pListBtn->setChecked(!m_pListBtn->isChecked()); } } } } return QObject::eventFilter(obj, ev); } /** * @brief updateTimeLabel 界面显示或大小变化时更新控件显示状态 */ void Platform_ToolboxProxy::updateTimeLabel() { if (CompositingManager::get().platform() != Platform::Alpha) { // to keep left and right of the same width. which makes play button centered m_pListBtn->setVisible(width() > 300); m_pTimeLabel->setVisible(width() > 450); m_pTimeLabelend->setVisible(width() > 450); } } void Platform_ToolboxProxy::updateMircastTime(int time) { if (m_pProgBar_Widget->currentIndex() == 1) { //进度条模式 if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); } m_pProgBar->slider()->setSliderPosition(time); m_pProgBar->slider()->setValue(time); m_pProgBar->blockSignals(false); } else { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(time); m_pViewProgBar->setIsBlockSignals(false); } quint64 url = static_cast(-1); if (m_pEngine->playlist().current() != -1) { url = static_cast(m_pEngine->duration()); } updateTimeInfo(url, time, m_pTimeLabel, m_pTimeLabelend, true); } void Platform_ToolboxProxy::updateToolTipTheme(ToolButton *btn) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { btn->changeTheme(lightTheme); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { btn->changeTheme(darkTheme); } else { btn->changeTheme(lightTheme); } } void Platform_ToolboxProxy::setPlaylist(Platform_PlaylistWidget *pPlaylist) { m_pPlaylist = pPlaylist; connect(m_pPlaylist, &Platform_PlaylistWidget::stateChange, this, &Platform_ToolboxProxy::slotPlayListStateChange); } QLabel *Platform_ToolboxProxy::getfullscreentimeLabel() { return m_pFullscreentimelable; } QLabel *Platform_ToolboxProxy::getfullscreentimeLabelend() { return m_pFullscreentimelableend; } bool Platform_ToolboxProxy::getbAnimationFinash() { return m_bAnimationFinash; } void Platform_ToolboxProxy::setVolSliderHide() { if (m_pVolSlider->isVisible()) { m_pVolSlider->hide(); } } void Platform_ToolboxProxy::setButtonTooltipHide() { m_pListBtn->hideToolTip(); m_pFullScreenBtn->hideToolTip(); } void Platform_ToolboxProxy::initToolTip() { //lmh0910全屏按键 m_pFullScreenBtnTip = new ButtonToolTip(m_pMainWindow); m_pFullScreenBtnTip->setText(tr("Fullscreen")); connect(m_pFullScreenBtn, &ToolButton::entered, [ = ]() { m_pFullScreenBtnTip->move(m_pMainWindow->width() - m_pFullScreenBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 140, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pFullScreenBtnTip->show(); m_pFullScreenBtnTip->QWidget::activateWindow(); m_pFullScreenBtnTip->update(); m_pFullScreenBtnTip->releaseMouse(); }); connect(m_pFullScreenBtn, &ToolButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pFullScreenBtnTip->hide(); }); }); //lmh0910list按键 m_pListBtnTip = new ButtonToolTip(m_pMainWindow); m_pListBtnTip->setText(tr("Playlist")); connect(m_pListBtn, &ToolButton::entered, [ = ]() { m_pListBtnTip->move(m_pMainWindow->width() - m_pListBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 20, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pListBtnTip->show(); m_pListBtnTip->QWidget::activateWindow(); m_pListBtnTip->update(); m_pListBtnTip->releaseMouse(); }); connect(m_pListBtn, &ToolButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pListBtnTip->hide(); }); }); } bool Platform_ToolboxProxy::getListBtnFocus() { return m_pListBtn->hasFocus(); } bool Platform_ToolboxProxy::getVolSliderIsHided() { return m_pVolSlider->isHidden(); } /** * @brief updateProgress 更新播放进度条显示 * @param nValue 进度条的值 */ void Platform_ToolboxProxy::updateProgress(int nValue) { int nDuration = static_cast(m_pEngine->duration()); if (m_pProgBar_Widget->currentIndex() == 1) { //进度条模式 float value = nValue * nDuration / m_pProgBar->width(); int nCurrPos; if (value > 1 || value < -1) { nCurrPos = m_pProgBar->value() + value; } else { if (m_processAdd < 1.0 && m_processAdd > -1.0) { m_processAdd += (float)(nValue * nDuration) / m_pProgBar->width(); qInfo() << m_processAdd; return; } else { nCurrPos = m_pProgBar->value() + m_processAdd; m_processAdd = .0; } } if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); } m_pProgBar->slider()->setSliderPosition(nCurrPos); m_pProgBar->slider()->setValue(nCurrPos); } else { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(m_pViewProgBar->getValue() + nValue); } } /** * @brief updateSlider 根据进度条显示更新影片实际进度 */ void Platform_ToolboxProxy::updateSlider() { if (m_pProgBar_Widget->currentIndex() == 1) { m_pEngine->seekAbsolute(m_pProgBar->value()); m_pProgBar->blockSignals(false); } else { m_pEngine->seekAbsolute(m_pViewProgBar->getTimePos()); m_pViewProgBar->setIsBlockSignals(false); } } /** * @brief initThumb 初始化加载胶片线程 */ void Platform_ToolboxProxy::initThumbThread() { Platform_ThumbnailWorker::get().setPlayerEngine(m_pEngine); connect(&Platform_ThumbnailWorker::get(), &Platform_ThumbnailWorker::thumbGenerated, this, &Platform_ToolboxProxy::updateHoverPreview); } /** * @brief updateSliderPoint 非x86平台下更新音量条控件位置 * @param point 传入主窗口左上角顶点在屏幕的位置 */ void Platform_ToolboxProxy::updateSliderPoint(QPoint &point) { m_pVolSlider->updatePoint(point); } /** * @brief ~ToolboxProxy 析构函数 */ Platform_ToolboxProxy::~Platform_ToolboxProxy() { Platform_ThumbnailWorker::get().stop(); delete m_pPreviewer; delete m_pPreviewTime; if (m_pWorker) { m_pWorker->quit(); m_pWorker->deleteLater(); } } Platform_viewProgBarLoad::Platform_viewProgBarLoad(PlayerEngine *engine, DMRSlider *progBar, Platform_ToolboxProxy *parent) { initMember(); m_pParent = parent; m_pEngine = engine; m_pProgBar = progBar; m_seekTime = new char[12]; initThumb(); } void Platform_viewProgBarLoad::setListPixmapMutex(QMutex *pMutex) { m_pListPixmapMutex = pMutex; } void Platform_viewProgBarLoad::run() { loadViewProgBar(m_pParent->size()); } Platform_viewProgBarLoad::~Platform_viewProgBarLoad() { delete [] m_seekTime; m_seekTime = nullptr; if (m_video_thumbnailer != nullptr) { m_mvideo_thumbnailer_destroy(m_video_thumbnailer); m_video_thumbnailer = nullptr; } } } #undef THEME_TYPE #include "platform_toolbox_proxy.moc" deepin-movie-reborn-5.15.10/src/widgets/platform/platform_toolbox_proxy.h000066400000000000000000000540701473342170300266300ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 此文件中实现播放窗口工具栏相关内容 */ #ifndef _DMR_Platform_TOOLBOX_PROXY_H #define _DMR_Platform_TOOLBOX_PROXY_H #include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include "dguiapplicationhelper.h" #include "videoboxbutton.h" #include "toolbutton.h" #include "platform_playlist_widget.h" #include "platform/platform_thumbnail_worker.h" #include "slider.h" #include "platform_volumeslider.h" #include "mircastwidget.h" namespace Dtk { namespace Widget { class DImageButton; } } DWIDGET_USE_NAMESPACE namespace dmr { class PlayerEngine; class VolumeButton; class ToolButton; class Platform_MainWindow; class DMRSlider; class Platform_ThumbnailPreview; class Platform_SliderTime; //class SubtitlesView; class Platform_VolumeSlider; class Platform_ViewProgBar; class Platform_viewProgBarLoad; class Platform_PlaylistWidget; class Platform_ImageItem : public DLabel { Q_OBJECT public: /** * @brief ImageItem 实现胶片整体的窗口布局 * @param image 胶片 * @param bIsblack 是否为灰色胶片 * @param parent 父窗口 */ Platform_ImageItem(QPixmap image, bool bIsblack = false, QWidget *parent = nullptr): DLabel(parent), m_pixmap(image) { } protected: /** * @brief paintEvent 绘制事件函数 */ void paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QSize size(m_pixmap.size()); QBitmap mask(size); QPainter painter1(&mask); painter1.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); painter1.fillRect(mask.rect(), Qt::white); painter1.setBrush(QColor(0, 0, 0)); painter1.drawRoundedRect(mask.rect(), 5, 5); QPixmap image = m_pixmap; image.setMask(mask); painter.setClipping(true); QPainterPath bg0; bg0.addRoundedRect(rect(), 5, 5); painter.setClipPath(bg0); painter.drawPixmap(rect(), image); QPen pen; pen.setWidth(2); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(0, 0, 0, int(0.1 * 255))); painter.setPen(pen); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(255, 255, 255, int(0.1 * 255))); painter.setPen(pen); } painter.setBrush(Qt::NoBrush); painter.drawRoundedRect(rect(), 5, 5); } private: QPixmap m_pixmap; ///胶片的图像 }; /** * @brief The IndicatorItem class * 实现胶片模式时,播放进度光标显示 */ class Platform_IndicatorItem : public QWidget { Q_OBJECT public: /** * @brief IndicatorItem 构造函数 * @param parent 父窗口 */ explicit Platform_IndicatorItem(QWidget *parent = nullptr): QWidget(parent) { initMember(); } /** * @brief setPressed 设置是否按下 * @param bPressed 按下标志位 */ void setPressed(bool bPressed) { m_bIsPressed = bPressed; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { if (bPressed) resize(2, 42); else resize(6, 42); } else { if (bPressed) resize(2, 60); else resize(6, 60); } #else if (bPressed) resize(2, 60); else resize(6, 60); #endif } protected: /** * @brief paintEvent 绘制事件函数 */ void paintEvent(QPaintEvent *) { QPainter painter(this); QRect backgroundRect = rect(); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QPainterPath bpath; if (!m_bIsPressed) { QPen pen; pen.setWidth(1); pen.setColor(QColor(0, 0, 0)); bpath.addRoundedRect(backgroundRect, 3, 3); painter.setPen(pen); painter.setBrush(Qt::NoBrush); painter.setOpacity(0.4); painter.fillPath(bpath, QColor(0, 0, 0)); //改变一下paint的顺序锯齿效果没有那么明显 QPainterPath bpath1; painter.setOpacity(1); bpath1.addRoundedRect(backgroundRect.marginsRemoved(QMargins(1, 1, 1, 1)), 3, 3); painter.fillPath(bpath1, QColor(255, 255, 255)); } else { painter.fillRect(backgroundRect, QBrush(QColor(255, 138, 0))); } } void initMember() { m_bIsPressed = false; } private: bool m_bIsPressed; ///鼠标是否按下 }; /** * @brief The ToolboxProxy class * 实现影院工具栏 */ class Platform_ToolboxProxy: public DFloatingWidget { Q_OBJECT public: /** * @brief ToolboxProxy 构造函数 * @param mainWindow 主窗口 * @param pPlayerEngine 播放引擎对象指针 */ Platform_ToolboxProxy(QWidget *mainWindow, PlayerEngine *pPlayerEngine); /** * @brief ~ToolboxProxy 析构函数 */ virtual ~Platform_ToolboxProxy() override; /** * @brief updateTimeInfo 更新工具栏中播放时间显示 * @param duration 视频总时长 * @param pos 当前播放的时间点 * @param pTimeLabel 当前播放时间 * @param pTimeLabelend 视频总时长 * @param flag 是否为全屏的控件 */ void updateTimeInfo(qint64 duration, qint64 pos, QLabel *pTimeLabel, QLabel *pTimeLabelend, bool flag); /** * @brief anyPopupShown 是否存在一些弹出显示窗口 * @return true时为有,false为无 */ bool anyPopupShown() const; /** * @brief closeAnyPopup 关闭所有弹窗效果 */ void closeAnyPopup(); /** * @brief setPlaylist 传递播放列表指针 * @param playlist 播放列表对象指针 */ void setPlaylist(Platform_PlaylistWidget *pPlaylist); /** * @brief addpmList 将读取到的缩略图加载到列表中 * @param pm 缩略图图像 */ void addpmList(QList &pm) { m_pmList.clear(); m_pmList.append(pm); } /** * @brief addpmBlackList 将读取到的缩略图加载到灰色列表中 * @param pm_black 缩略图图像 */ void addpmBlackList(QList &pmBlack) { m_pmBlackList.clear(); m_pmBlackList.append(pmBlack); } /** * @brief getfullscreentimeLabel 获取全屏时当前播放时间控件 * @return 返回label控件指针 */ QLabel *getfullscreentimeLabel(); /** * @brief getfullscreentimeLabelend 获取全屏时当前播放总时长控件 * @return 返回label控件指针 */ QLabel *getfullscreentimeLabelend(); /** * @brief getbAnimationFinash 查看是否动画已结束 * @return 动画进行中标志位 */ bool getbAnimationFinash(); /** * @brief setVolSliderHide 将音量条控件隐藏 */ void setVolSliderHide(); /** * @brief getVolSliderIsHided 获取音量条状态 * @return 返回音量条的隐藏状态 */ bool getVolSliderIsHided(); /** * @brief setButtonTooltipHide 将按键上的悬停显示内容隐藏 */ void setButtonTooltipHide(); /** * @brief initToolTip 初始化按键上访提示 */ void initToolTip(); /** * @brief getSlider 获取进度条 * @return 进度条对象 */ DMRSlider *getSlider() { return m_pProgBar; } /** * @brief getViewProBar 获取胶片模式进度 * @return 返回胶片窗口 */ Platform_ViewProgBar *getViewProBar() { return m_pViewProgBar; } /** * @brief getListBtnFocus * 获取播放列表按钮焦点状态 * 用于判断是否为tab键升起 * @return 焦点状态 */ bool getListBtnFocus(); /** * @brief updateProgress 更新播放进度条显示 * @param nValue 进度条的值 */ void updateProgress(int nValue); /** * @brief updateSlider 根据进度条显示更新影片实际进度 */ void updateSlider(); /** * @brief initThumb 初始化加载胶片线程 */ void initThumbThread(); /** * @brief updateSliderPoint 非x86平台下更新音量条控件位置 * @param point 传入主窗口左上角顶点在屏幕的位置 */ void updateSliderPoint(QPoint &point); /** * @brief volumeUp 鼠标滚轮增加音量 */ void volumeUp(); /** * @brief volumeDown 鼠标滚轮减少音量 */ void volumeDown(); /** * @brief calculationStep 计算鼠标滚轮滚动的步进 * @param angleDelta 鼠标滚动的距离 */ void calculationStep(int iAngleDelta); /** * @brief changeMuteState 切换静音模式 */ void changeMuteState(); /** * @brief playlistClosedByEsc Esc关闭播放列表 */ void playlistClosedByEsc(); /** * @brief getMouseTime 获取之前鼠标点击的时间 * @return 时间 */ qint64 getMouseTime(); /** * @brief clearPlayListFocus * 清空播放列表中的焦点并将标志位重置 * esc降下设回焦点 */ void clearPlayListFocus(); /** * @brief setBtnFocusSign 设置标志位 */ void setBtnFocusSign(bool); bool isInMircastWidget(const QPoint &); /** * @brief updateMircastWidget 更新投屏窗口位置 * @param p 移动位置点 */ void updateMircastWidget(QPoint p); void hideMircastWidget(); MircastWidget *getMircast() { return m_mircastWidget; } Platform_VolumeSlider *volumeSlider() { return m_pVolSlider; } /////add for unit test///// DButtonBoxButton *playBtn() {return m_pPlayBtn;} DButtonBoxButton *prevBtn() {return m_pPrevBtn;} DButtonBoxButton *nextBtn() {return m_pNextBtn;} ToolButton *listBtn() {return m_pListBtn;} ToolButton *fsBtn() {return m_pFullScreenBtn;} VolumeButton *volBtn() {return m_pVolBtn;} void setThumbnailmode(bool is_thumbnailmode) {m_bThumbnailmode = is_thumbnailmode;} public slots: /** * @brief finishLoadSlot 缩略图线程加载完成槽函数 * @param size 主窗口大小, * TODO(xxxpengfei):此处窗口大小没用,请在1050前去除并梳理逻辑 */ void finishLoadSlot(QSize size); /** * @brief setthumbnailmode 设置胶片进度条的模式 */ void setthumbnailmode(); /** * @brief updateFullState 更新全屏状态下工具栏状态 */ void updateFullState(); void slotUpdateMircast(int, QString); signals: /** * @brief sigVolumeChanged 音量变化返回主窗口信号 * @param nVolume 变化后的音量值 */ void sigVolumeChanged(int &nVolume); /** * @brief sigMuteStateChanged 静音状态变化后返回主窗口的信号 * @param bMute 静音状态 */ void sigMuteStateChanged(bool &bMute); /** * @brief 功能不支持信号 */ void sigUnsupported(); void sigMircastState(int, QString); protected slots: /** * @brief buttonClicked 处理信号转发器发送的信号 * @param id 发出信号的对象id */ void buttonClicked(QString id); /** * @brief buttonEnter 工具栏按钮进入事件槽函数 */ void buttonEnter(); /** * @brief buttonLeave 工具栏按钮离开事件槽函数 */ void buttonLeave(); /** * @brief updatePlayState 更新不同播放状态下工具栏状态 */ void updatePlayState(); /** * @brief updateMovieProgress 更新影片进度条 */ void updateMovieProgress(); /** * @brief updateButtonStates */ void updateButtonStates(); void updateTimeVisible(bool visible); /** * @brief progressHoverChanged 更新预览图的位置 * @param v 鼠标悬停的位置 */ void progressHoverChanged(int v); /** * @brief updateHoverPreview 更新悬停时预览缩略图 * @param url 文件url * @param secs 当前时间 */ void updateHoverPreview(const QUrl &url, int secs); /** * @brief waitPlay 等待延时播放 */ void waitPlay(); /** * @brief slotThemeTypeChanged 主题变化槽函数 */ void slotThemeTypeChanged(); /** * @brief slotLeavePreview 鼠标离开胶片进度条槽函数 */ void slotLeavePreview(); /** * @brief slotHidePreviewTime 鼠标离开后隐藏事件控件显示 */ void slotHidePreviewTime(); /** * @brief slotSliderPressed 进度条鼠标按下槽函数 */ void slotSliderPressed(); /** * @brief slotSliderReleased 进度条鼠标释放槽函数 */ void slotSliderReleased(); /** * @brief slotBaseMuteChanged 静音 * @param sk * @param val */ void slotBaseMuteChanged(QString sk, const QVariant &val); /** * @brief slotVolumeButtonClicked 音量按键单击事件槽函数 */ void slotVolumeButtonClicked(); /** * @brief slotFileLoaded 文件加载槽函数 */ void slotFileLoaded(); /** * @brief slotElapsedChanged 当前播放时长变化槽函数 */ void slotElapsedChanged(); /** * @brief slotApplicationStateChanged 应用状态变化才敢三个月 * @param e 状态 */ void slotApplicationStateChanged(Qt::ApplicationState e); /** * @brief slotPlayListStateChange 播放列表状态变化槽函数 */ void slotPlayListStateChange(bool isShortcut); /** * @brief slotUpdateThumbnailTimeOut 超时更新胶片 */ void slotUpdateThumbnailTimeOut(); /** * @brief slotProAnimationFinished 动画结束槽函数 */ void slotProAnimationFinished(); /** * @brief slotVolumeChanged 音量变化槽函数 * @param nVolume 音量值 */ void slotVolumeChanged(int nVolume); /** * @brief slotMuteStateChanged 静音状态变化槽函数 * @param bMute 静音状态 */ void slotMuteStateChanged(bool bMute); protected: /** * @brief showEvent 显示事件函数 * @param event 显示事件 */ void showEvent(QShowEvent *event) override; /** * @brief paintEvent 重绘事件函数 * @param event 重绘事件 */ void paintEvent(QPaintEvent *event) override; /** * @brief resizeEvent 窗口大小变化事件函数 * @param event 大小变化事件 */ void resizeEvent(QResizeEvent *event) override; /** * @brief mouseMoveEvent 鼠标移动事件函数 * @param ev 鼠标移动事件 */ void mouseMoveEvent(QMouseEvent *ev) override; /** * @brief eventFilter 事件过滤器 * @param obj 事件发出对象 * @param ev 过滤到的事件 * @return 返回是否继续执行 */ bool eventFilter(QObject *obj, QEvent *ev) override; private slots: void updateMircastTime(int); private: /** * @brief setup 初始化工具栏布局 */ void setup(); /** * @brief updateTimeLabel 界面显示或大小变化时更新控件显示状态 */ void updateTimeLabel(); /** * @brief updateToolTipTheme 更新按钮悬浮框主题 * @param btn 对应的按钮 */ void updateToolTipTheme(ToolButton *btn); /** * @brief updateThumbnail 更新播放列表中的缩略图显示 */ void updateThumbnail(); /** * @brief updatePreviewTime 更新胶片模式下鼠标点击时时间框的显示 * @param secs 当前时间 * @param pos 当前位置点 */ void updatePreviewTime(qint64 secs, const QPoint &pos); /** * @brief initMember 初始化成员变量 */ void initMember(); Platform_MainWindow *m_pMainWindow; ///主窗口 PlayerEngine *m_pEngine; ///播放引擎 Platform_PlaylistWidget *m_pPlaylist; ///播放列表窗口 DWidget *m_pProgBarspec; ///空白进度条窗口 QWidget *m_pBotSpec; /// QWidget *m_pBotToolWgt; /// QStackedWidget *m_pProgBar_Widget; /// DBlurEffectWidget *bot_widget; /// QHBoxLayout *_mid; /// QHBoxLayout *_right; /// QLabel *m_pFullscreentimelable; ///全屏下视频当前播放时长控件 QLabel *m_pFullscreentimelableend; ///全屏下视频总时长控件 QLabel *m_pTimeLabel; ///视频当前播放时长控件 QLabel *m_pTimeLabelend; ///视频总时长的控件 Platform_VolumeSlider *m_pVolSlider; ///音量条控件窗口 Platform_ViewProgBar *m_pViewProgBar; ///胶片模式进度条窗口 DMRSlider *m_pProgBar; ///滑动条模式进度条窗口 Platform_ThumbnailPreview *m_pPreviewer; ///鼠标悬停时进度条预览胶片控件 Platform_SliderTime *m_pPreviewTime; ///鼠标悬停时进度条预览时间控件 MircastWidget *m_mircastWidget; ///投屏选项窗口 ButtonBoxButton *m_pPlayBtn; ///播放按钮 ButtonBoxButton *m_pPrevBtn; ///上一个按钮 ButtonBoxButton *m_pNextBtn; ///下一个按钮 DButtonBox *m_pPalyBox; ///按钮组 VolumeButton *m_pVolBtn; ///音量按钮 ToolButton *m_pListBtn; ///播放列表按钮 ToolButton *m_pFullScreenBtn; ///全屏按钮 ToolButton *m_pMircastBtn; ///投屏按钮 //lmh0910DButtonBoxButton替换到ButtonBoxButton ButtonToolTip *m_pPlayBtnTip; ///播放按钮的悬浮提示 ButtonToolTip *m_pPrevBtnTip; ///上一个按钮的悬浮提示 ButtonToolTip *m_pNextBtnTip; ///下一个按钮的悬浮提示 ButtonToolTip *m_pFullScreenBtnTip; ///全屏按钮的悬浮提示 ButtonToolTip *m_pListBtnTip; ///播放列表按钮的悬浮提示 Platform_viewProgBarLoad *m_pWorker; ///获取胶片的线程 QPropertyAnimation *m_pPaOpen; ///工具栏升起动画 QPropertyAnimation *m_pPaClose; ///工具栏降下动画 QList m_pmList; QList m_pmBlackList; QMutex m_listPixmapMutex; ///缩略图list的锁 qint64 m_nClickTime; ///鼠标点击时间 bool m_bMouseFlag; bool m_bMousePree; /// bool m_bThumbnailmode; ///进度条是否为胶片模式 bool m_bAnimationFinash; ///动画是否完成 bool m_bCanPlay; ///判断是否能进行曲目切换的标志位 bool m_bSetListBtnFocus; ///设置播放列表按钮焦点标志位 float m_processAdd; }; /** * @brief The viewProgBarLoad class * 加载胶片线程 */ class Platform_viewProgBarLoad: public QThread { Q_OBJECT public: /** * @brief viewProgBarLoad 构造函数 * @param engine 播放引擎 * @param progBar 进度条 * @param parent 父窗口 */ explicit Platform_viewProgBarLoad(PlayerEngine *engine = nullptr, DMRSlider *progBar = nullptr, Platform_ToolboxProxy *parent = nullptr); /** * @brief setListPixmapMutex 设置图像表线程锁 * @param pMutex 锁 * * 必须调用这个函数加锁 */ void setListPixmapMutex(QMutex *pMutex); /** * @brief setListPixmapMutex 设置图像表线程锁 * 必须调用这个函数加锁 */ ~Platform_viewProgBarLoad(); public slots: /** * @brief loadViewProgBar 加载胶片 * @param size 窗口大小 */ void loadViewProgBar(QSize size); signals: /** * @brief leaveViewProgBar 离开胶片进度条信号 */ void leaveViewProgBar(); /** * @brief hoverChanged 悬停位置改变 */ void hoverChanged(int); /** * @brief sliderMoved 进度条移动信号 */ void sliderMoved(int); /** * @brief sigFinishiLoad 胶片模式加载完成信号 * @param size 窗口尺寸 */ void sigFinishiLoad(QSize size); /** * @brief finished 线程结束信号 */ // void finished(); protected: void run(); private: /** * @brief initThumb 动态初始化缩略图获取 */ void initThumb(); /** * @brief initMember 初始化成员变量 */ void initMember(); PlayerEngine *m_pEngine; ///播放引擎 Platform_ToolboxProxy *m_pParent; ///主窗口 DMRSlider *m_pProgBar; ///胶片模式窗口 QMutex *m_pListPixmapMutex; ///线程锁 char *m_seekTime; ///图像时间 video_thumbnailer *m_video_thumbnailer = nullptr; image_data *m_image_data = nullptr; mvideo_thumbnailer m_mvideo_thumbnailer = nullptr; mvideo_thumbnailer_destroy m_mvideo_thumbnailer_destroy = nullptr; mvideo_thumbnailer_create_image_data m_mvideo_thumbnailer_create_image_data = nullptr; mvideo_thumbnailer_destroy_image_data m_mvideo_thumbnailer_destroy_image_data = nullptr; mvideo_thumbnailer_generate_thumbnail_to_buffer m_mvideo_thumbnailer_generate_thumbnail_to_buffer = nullptr; }; } //HACK: extent area for progress slider #define TOOLBOX_TOP_EXTENT 0 #define TOOLBOX_SPACE_HEIGHT 314 #define TOOLBOX_HEIGHT 80 /*紧凑模式下toolbox的高度*/ #define TOOLBOX_DSIZEMODE_HEIGHT 50 #define TOOLBOX_HEIGHT_EXT (TOOLBOX_HEIGHT + TOOLBOX_TOP_EXTENT) #define TOOLBOX_BUTTON_WIDTH 50 #define TOOLBOX_BUTTON_HEIGHT 50 #define VOLSLIDER_WIDTH 62 #define VOLSLIDER_HEIGHT 205 #endif /* ifndef _DMR_Platform_TOOLBOX_PROXY_H */ deepin-movie-reborn-5.15.10/src/widgets/platform/platform_volumeslider.cpp000066400000000000000000000305631473342170300267470ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "platform_volumeslider.h" #include "platform_toolbox_proxy.h" #include "dbusutils.h" DWIDGET_USE_NAMESPACE namespace dmr { Platform_VolumeSlider::Platform_VolumeSlider(Platform_MainWindow *mw, QWidget *parent) : QWidget(parent), _mw(mw) { if (CompositingManager::get().platform() != Platform::X86) { setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); } else { setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); } m_iStep = 0; m_bIsWheel = false; m_nVolume = 100; m_bHideWhenFinished = false; hide(); setFocusPolicy(Qt::TabFocus); QVBoxLayout *vLayout = new QVBoxLayout(this); vLayout->setContentsMargins(2, 16, 2, 14); //内边距,与UI沟通确定 vLayout->setSpacing(0); setLayout(vLayout); QFont font; font.setFamily("SourceHanSansSC"); font.setWeight(QFont::Medium); vLayout->addStretch(); m_pLabShowVolume = new DLabel(_mw); DFontSizeManager::instance()->bind(m_pLabShowVolume, DFontSizeManager::T6); m_pLabShowVolume->setForegroundRole(QPalette::BrightText); m_pLabShowVolume->setFont(font); m_pLabShowVolume->setAlignment(Qt::AlignCenter); m_pLabShowVolume->setText("0%"); vLayout->addWidget(m_pLabShowVolume, 0, Qt::AlignCenter); m_slider = new DSlider(Qt::Vertical, this); m_slider->setFixedWidth(24); m_slider->setIconSize(QSize(15, 15)); m_slider->installEventFilter(this); m_slider->show(); m_slider->slider()->setRange(0, 100); m_slider->setValue(m_nVolume); m_slider->setObjectName(VOLUME_SLIDER); m_slider->slider()->setObjectName(SLIDER); m_slider->slider()->setAccessibleName(SLIDER); m_slider->slider()->setMinimumHeight(120); m_slider->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); m_slider->slider()->setFocusPolicy(Qt::NoFocus); vLayout->addWidget(m_slider, 1, Qt::AlignCenter); m_pBtnChangeMute = new DToolButton(this); m_pBtnChangeMute->setObjectName(MUTE_BTN); m_pBtnChangeMute->setAccessibleName(MUTE_BTN); m_pBtnChangeMute->setToolButtonStyle(Qt::ToolButtonIconOnly); //同时设置按钮与图标的尺寸,改变其默认比例 m_pBtnChangeMute->setFixedSize(30, 30); m_pBtnChangeMute->setIconSize(QSize(30, 30)); m_pBtnChangeMute->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); m_pBtnChangeMute->setFocusPolicy(Qt::NoFocus); vLayout->addStretch(10); vLayout->addWidget(m_pBtnChangeMute, 0, Qt::AlignHCenter); vLayout->addStretch(); connect(m_slider, &DSlider::valueChanged, this, &Platform_VolumeSlider::volumeChanged); connect(m_pBtnChangeMute, SIGNAL(clicked()), this, SLOT(muteButtnClicked())); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &Platform_VolumeSlider::setThemeType); m_autoHideTimer.setSingleShot(true); connect(&m_autoHideTimer, &QTimer::timeout, this, &Platform_VolumeSlider::hide); } void Platform_VolumeSlider::initVolume() { QTimer::singleShot(500, this, [ = ] { //延迟加载等待信号槽连接 int nVolume = Settings::get().internalOption("global_volume").toInt(); bool bMute = Settings::get().internalOption("mute").toBool(); changeVolume(nVolume); changeMuteState(bMute); setMute(bMute); }); } void Platform_VolumeSlider::stopTimer() { m_autoHideTimer.stop(); } QString Platform_VolumeSlider::readSinkInputPath() { QString strPath = ""; QVariant v = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); if (!v.isValid()) return strPath; QList allSinkInputsList = v.value >(); for (auto curPath : allSinkInputsList) { QVariant nameV = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", curPath.path(), "org.deepin.dde.Audio1.SinkInput", "Name"); QString strMovie = QObject::tr("Movie"); if (!nameV.isValid() || (!nameV.toString().contains(strMovie, Qt::CaseInsensitive) && !nameV.toString().contains("deepin movie", Qt::CaseInsensitive))) continue; strPath = curPath.path(); break; } return strPath; } void Platform_VolumeSlider::setMute(bool muted) { QString sinkInputPath = readSinkInputPath(); if (!sinkInputPath.isEmpty()) { QDBusInterface ainterface("org.deepin.dde.Audio1", sinkInputPath, "org.deepin.dde.Audio1.SinkInput", QDBusConnection::sessionBus()); if (!ainterface.isValid()) { return; } //调用设置音量 ainterface.call(QLatin1String("SetMute"), muted); } return; } void Platform_VolumeSlider::updatePoint(QPoint point) { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); m_point = point + QPoint(view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2), view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT); } void Platform_VolumeSlider::popup() { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); int x = view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2); int y = view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT; y += 10; QRect end(x, y, VOLSLIDER_WIDTH, VOLSLIDER_HEIGHT); QRect start = end; start.setWidth(start.width() + 12); start.setHeight(start.height() + 10); end.moveTo(m_point + QPoint(6, 0)); start.moveTo(m_point - QPoint(0, 14)); //动画未完成,等待动画结束后再隐藏控件 if (pVolAnimation) { m_bHideWhenFinished = true; return; } if (m_state == State::Close && isVisible()) { pVolAnimation = new QPropertyAnimation(this, "geometry"); pVolAnimation->setEasingCurve(QEasingCurve::Linear); pVolAnimation->setKeyValueAt(0, end); pVolAnimation->setKeyValueAt(0.3, start); pVolAnimation->setKeyValueAt(1, end); pVolAnimation->setDuration(230); m_bFinished = true; raise(); pVolAnimation->start(); connect(pVolAnimation, &QPropertyAnimation::finished, [ = ] { pVolAnimation->deleteLater(); pVolAnimation = nullptr; m_state = Open; m_bFinished = false; if (m_bHideWhenFinished) { popup(); m_bHideWhenFinished = false; } }); } else { m_state = Close; hide(); } } void Platform_VolumeSlider::delayedHide() { const int nGap = 18; // 音量条和音量按钮之间的间距 QRect adRect = QRect(m_point + QPoint(6, VOLSLIDER_HEIGHT), m_point + QPoint(6 + VOLSLIDER_WIDTH, VOLSLIDER_HEIGHT + nGap)); m_mouseIn = false; if(adRect.contains(QCursor::pos())){ DUtil::TimerSingleShot(2000, [=]() { if (!m_mouseIn) hide(); }); } else { DUtil::TimerSingleShot(100, [=]() { if (!m_mouseIn) hide(); }); } } void Platform_VolumeSlider::changeVolume(int nVolume) { if (nVolume <= 0) { nVolume = 0; } else if (nVolume > 200) { nVolume = 200; } m_nVolume = nVolume; m_slider->setValue(nVolume > 100 ? 100 : nVolume); //音量实际能改变200,但是音量条最大支持到100 //1.保证初始化音量(100)和配置文件中音量一致时,也能得到刷新 //2.m_slider的最大值为100,如果大于100必须主动调用 if (nVolume >= 100) { volumeChanged(nVolume); } } void Platform_VolumeSlider::calculationStep(int iAngleDelta){ m_bIsWheel = true; if ((m_iStep > 0 && iAngleDelta > 0) || (m_iStep < 0 && iAngleDelta < 0)) { m_iStep += iAngleDelta; } else { m_iStep = iAngleDelta; } } void Platform_VolumeSlider::volumeUp() { if (m_bIsWheel) { m_bIsWheel = false; if(qAbs(m_iStep) >= 120) { m_nVolume += qAbs(m_iStep) / 120 * 10; changeVolume(qMin(m_nVolume, 200)); m_iStep = 0; } } else { changeVolume(qMin(m_nVolume + 10, 200)); } } void Platform_VolumeSlider::volumeDown() { if(m_bIsWheel){ m_bIsWheel = false; if(qAbs(m_iStep) >= 120){ m_nVolume -= qAbs(m_iStep) / 120 * 10 ; changeVolume(qMax(m_nVolume, 0)); m_iStep = 0; } }else{ changeVolume(qMax(m_nVolume - 10, 0)); } } void Platform_VolumeSlider::changeMuteState(bool bMute) { if (m_bIsMute == bMute || m_nVolume == 0) { return; } m_bIsMute = bMute; refreshIcon(); Settings::get().setInternalOption("mute", m_bIsMute); emit sigMuteStateChanged(bMute); } void Platform_VolumeSlider::volumeChanged(int nVolume) { if (m_nVolume != nVolume) { m_nVolume = nVolume; } if (m_nVolume > 0 && m_bIsMute) { //音量改变时改变静音状态 changeMuteState(false); setMute(false); } refreshIcon(); emit sigVolumeChanged(nVolume); } void Platform_VolumeSlider::refreshIcon() { int nValue = m_slider->value(); if (nValue >= 66) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volume")); else if (nValue >= 33) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volumemid")); else m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volumelow")); if (m_bIsMute || nValue == 0) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_mute")); m_pLabShowVolume->setText(QString("%1%").arg(nValue * 1.0 / m_slider->maximum() * 100)); } void Platform_VolumeSlider::muteButtnClicked() { bool bMute = m_bIsMute; changeMuteState(!bMute); setMute(!bMute); } bool Platform_VolumeSlider::getsliderstate() { return m_bFinished; } int Platform_VolumeSlider::getVolume() { return m_nVolume; } void Platform_VolumeSlider::setThemeType(int type) { Q_UNUSED(type) } void Platform_VolumeSlider::enterEvent(QEvent *e) { m_mouseIn = true; QWidget::leaveEvent(e); } void Platform_VolumeSlider::showEvent(QShowEvent *se) { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); int x = view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2); int y = view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { x += 50; y += 30; } #endif QPoint p = _mw->mapToGlobal(QPoint(0, 0)); QRect end(x + p.x(), y + p.y(), VOLSLIDER_WIDTH, VOLSLIDER_HEIGHT); setGeometry(end); QWidget::showEvent(se); } void Platform_VolumeSlider::leaveEvent(QEvent *e) { m_mouseIn = false; delayedHide(); QWidget::leaveEvent(e); } void Platform_VolumeSlider::paintEvent(QPaintEvent *) { QPainter painter(this); QColor bgColor = this->palette().background().color(); painter.fillRect(rect(), bgColor); } void Platform_VolumeSlider::keyPressEvent(QKeyEvent *pEvent) { int nCurVolume = getVolume(); if (pEvent->key() == Qt::Key_Up) { changeVolume(qMin(nCurVolume + 5, 200)); } else if (pEvent->key() == Qt::Key_Down) { changeVolume(qMax(nCurVolume - 5, 0)); } QWidget::keyPressEvent(pEvent); } bool Platform_VolumeSlider::eventFilter(QObject *obj, QEvent *e) { if (e->type() == QEvent::Wheel) { QWheelEvent *we = static_cast(e); qInfo() << we->angleDelta() << we->modifiers() << we->buttons(); if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) { calculationStep(we->angleDelta().y()); if (we->angleDelta().y() > 0 ) { volumeUp(); } else { volumeDown(); } } return false; } else { return QObject::eventFilter(obj, e); } } Platform_VolumeSlider::~Platform_VolumeSlider() { } } deepin-movie-reborn-5.15.10/src/widgets/platform/platform_volumeslider.h000066400000000000000000000061571473342170300264160ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef Platform_VOLUMESLIDER_H #define Platform_VOLUMESLIDER_H #include #include #include #include #include #include "utils.h" #include "volumemonitoring.h" #include "threadpool.h" #include "platform/platform_mainwindow.h" #include "compositing_manager.h" #include "dmr_settings.h" #include "dbus_adpator.h" #include "../accessibility/ac-deepin-movie-define.h" DWIDGET_USE_NAMESPACE namespace dmr { class Platform_VolumeSlider: public QWidget { Q_OBJECT public: enum State { Open, Close }; signals: void sigVolumeChanged(int nValue); void sigMuteStateChanged(bool bMute); public: Platform_VolumeSlider(Platform_MainWindow *mw, QWidget *parent); ~Platform_VolumeSlider(); State state() const {return m_state;} void initVolume(); //初始化音量 void stopTimer(); void popup(); //弹起音量条 void updatePoint(QPoint point); bool getsliderstate(); int getVolume(); //获取当前实际音量 void changeVolume(int nVolume); //改变控件音量 void calculationStep(int iAngleDelta); //计算滚轮滚动的步进并判断步进值是否大于等于120;普通鼠标的滚轮精度为120转动一刻为120*1/8=15度 public slots: void volumeUp(); //滚轮加音量 void volumeDown(); //滚轮减音量 void changeMuteState(bool bMute); //改变静音状态 void volumeChanged(int nVolume); //控件音量变化后的后续处理 void muteButtnClicked(); void setThemeType(int type); void delayedHide(); protected: void enterEvent(QEvent *e); void showEvent(QShowEvent *se); void leaveEvent(QEvent *e); void paintEvent(QPaintEvent *); void keyPressEvent(QKeyEvent *pEvent); bool eventFilter(QObject *obj, QEvent *e); void refreshIcon(); //刷新图标 private: QString readSinkInputPath(); //获取dbus接口的地址 // cppckeck修改 // void setAudioVolume(int volume); //回设dock栏应用音量 void setMute(bool muted); //回设dock栏应用静音状态 private: DToolButton *m_pBtnChangeMute {nullptr}; DLabel *m_pLabShowVolume {nullptr}; DSlider *m_slider; Platform_MainWindow *_mw; QTimer m_autoHideTimer; bool m_bIsMute {false}; bool m_bFinished {false}; QPropertyAnimation *pVolAnimation {nullptr}; State m_state {Close}; QPoint m_point {0, 0}; // QPixmap m_bgImage; bool m_mouseIn {false}; int m_nVolume; //记录实际音量(实际音量最大值为200,显示最大到100) VolumeMonitoring volumeMonitoring; //监听dock栏应用音量变化 bool m_bHideWhenFinished; ///等待动画结束后隐藏 int m_iStep; //鼠标灵敏度的步进 bool m_bIsWheel; //是否是通过滚轮调节音量 }; } #endif // Platform_VOLUMESLIDER_H deepin-movie-reborn-5.15.10/src/widgets/playlist_widget.cpp000066400000000000000000001423701473342170300237110ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "playlist_widget.h" #include "playlist_model.h" #include "compositing_manager.h" #include "player_engine.h" #include "toolbox_proxy.h" #include "actions.h" #include "mainwindow.h" #include "utils.h" #include "movieinfo_dialog.h" #include "tip.h" #include #include #include #include #include "../accessibility/ac-deepin-movie-define.h" #define PLAYLIST_FIXED_WIDTH 800 #define POPUP_DURATION 350 namespace dmr { class PlayItemTooltipHandler: public QObject { public: explicit PlayItemTooltipHandler(QObject *parent): QObject(parent) {} protected: bool eventFilter(QObject *obj, QEvent *event) { switch (event->type()) { case QEvent::ToolTip: { QHelpEvent *he = static_cast(event); Tip *tip = obj->property("HintWidget").value(); QWidget *item = tip->property("for").value(); DLabel *lb = tip->findChild("TipText"); if (tip->isVisible()) return true; //tip弹出后不再更新位置 lb->setAlignment(Qt::AlignLeft); tip->update(); tip->show(); tip->adjustSize(); tip->raise(); QPoint pos = he->globalPos() + QPoint{0, 10}; int dw = qApp->desktop()->availableGeometry(item).width(); if (pos.x() + tip->width() > dw) { pos.rx() = dw - tip->width(); } tip->move(pos); return true; } case QEvent::Leave: { auto tip = obj->property("HintWidget").value(); tip->hide(); event->ignore(); break; } default: break; } return QObject::eventFilter(obj, event); // standard event processing } }; enum ItemState { Normal, Playing, Invalid, // gets deleted or similar }; class PlayItemWidget: public QFrame { Q_OBJECT public: friend class PlaylistWidget; PlayItemWidget(const PlayItemInfo &pif, QListWidget *list = nullptr, int index = 0, PlaylistWidget *parent = nullptr) : QFrame(), _pif {pif}, _listWidget {list}, _playlist{parent} { _thumb = nullptr; m_pSvgWidget = nullptr; setProperty("PlayItemThumb", "true"); //setState(ItemState::Normal); setFrameShape(QFrame::NoFrame); this->setObjectName(PLAYITEM_WIDGET); auto kd = "local"; if (!_pif.url.isLocalFile()) { if (_pif.url.scheme().startsWith("dvd")) { kd = "dvd"; } else { kd = "network"; } } setProperty("ItemKind", kd); // it's the same for all themes _play = QPixmap(":/resources/icons/dark/normal/film-top.svg"); _play.setDevicePixelRatio(qApp->devicePixelRatio()); setFixedSize(_playlist->width() - 230, 36); auto *l = new QHBoxLayout(this); l->setContentsMargins(17, 0, 0, 0); l->setSpacing(10); setLayout(l); _index = new DLabel(this); DFontSizeManager::instance()->bind(_index, DFontSizeManager::T9); _index->setText(QString::number(index + 1)); _index->setFixedWidth(22); l->addWidget(_index); if (_pif.thumbnail.isNull() && _pif.thumbnail_dark.isNull()) { if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { m_pSvgWidget = new QSvgWidget(QString(":/resources/icons/music-dark.svg"), this); } else { m_pSvgWidget = new QSvgWidget(QString(":/resources/icons/music-light.svg"), this); } m_pSvgWidget->setFixedSize(42, 24); } else { if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { _thumb = new ListPic(_pif.thumbnail_dark.scaled(QSize(42, 24)), this); } else { _thumb = new ListPic(_pif.thumbnail.scaled(QSize(42, 24)), this); } } if (_thumb) { l->addWidget(_thumb); } else { l->addWidget(m_pSvgWidget); } QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &PlayItemWidget::slotThemeTypeChanged); auto *vl = new QHBoxLayout; vl->setContentsMargins(0, 0, 0, 0); vl->setSpacing(0); l->addLayout(vl); // vl->addStretch(); _name = new DLabel(this); _name->setProperty("Name", true); _name->setFrameShape(QFrame::NoFrame); _name->setTextInteractionFlags(Qt::NoTextInteraction); _name->setFixedWidth(width() - 180); _name->installEventFilter(this); _name->setAutoFillBackground(false); vl->addWidget(_name); _time = new DLabel(this); DFontSizeManager::instance()->bind(_time, DFontSizeManager::T9); _time->setProperty("Time", true); _time->setText(_pif.mi.durationStr()); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } vl->addStretch(); l->addWidget(_time); l->addSpacing(10); _closeBtn = new DFloatingButton(DStyle::SP_CloseButton, this); _closeBtn->setFocusPolicy(Qt::NoFocus); _closeBtn->setObjectName(PLAYITEN_CLOSE_BUTTON); _closeBtn->setAccessibleName(PLAYITEN_CLOSE_BUTTON); _closeBtn->setIconSize(QSize(28, 28)); _closeBtn->setFixedSize(25, 25); _closeBtn->hide(); connect(_closeBtn, &DFloatingButton::clicked, this, &PlayItemWidget::closeButtonClicked); setToolTip(_pif.mi.title); auto th = new PlayItemTooltipHandler(this); auto t = new Tip(QPixmap(), _pif.mi.title, nullptr); t->setWindowFlags(Qt::ToolTip | Qt::CustomizeWindowHint); t->setText(_pif.mi.title); t->resetSize(QApplication::desktop()->availableGeometry().width()); t->setAttribute(Qt::WA_TranslucentBackground); t->setProperty("for", QVariant::fromValue(this)); t->layout()->setContentsMargins(5, 10, 5, 10); t->hide(); setProperty("HintWidget", QVariant::fromValue(t)); if (!utils::check_wayland_env()) installEventFilter(th); connect(_playlist, &PlaylistWidget::sizeChange, this, &PlayItemWidget::slotSizeChange); m_opacityEffect = new QGraphicsOpacityEffect; _time->setGraphicsEffect(m_opacityEffect); m_opacityEffect_1 = new QGraphicsOpacityEffect; _index->setGraphicsEffect(m_opacityEffect_1); setState(ItemState::Normal); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedHeight(24); _closeBtn->setIconSize(QSize(18, 18)); _closeBtn->setFixedSize(17, 17); _name->setFixedHeight(24); if (_thumb) _thumb->setFixedSize(28, 16); else m_pSvgWidget->setFixedSize(28, 16); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedHeight(36); _closeBtn->setIconSize(QSize(28, 28)); _closeBtn->setFixedSize(25, 25); _name->setFixedHeight(36); if (_thumb) _thumb->setFixedSize(42, 24); else m_pSvgWidget->setFixedSize(42, 24); } else { setFixedHeight(24); _closeBtn->setIconSize(QSize(18, 18)); _closeBtn->setFixedSize(17, 17); _name->setFixedHeight(24); if (_thumb) _thumb->setFixedSize(28, 16); else m_pSvgWidget->setFixedSize(28, 16); } updateClosePosition(); }); #endif } ~PlayItemWidget() override { if (m_pSvgWidget) { delete m_pSvgWidget; m_pSvgWidget = nullptr; } if (_thumb) { delete _thumb; _thumb = nullptr; } } void updateInfo(const PlayItemInfo &pif) { _pif = pif; _time->setText(_pif.mi.durationStr()); setToolTip(_pif.mi.title); updateNameText(); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } update(); } void setState(ItemState is) { setProperty("ItemState", is); updateForeground(); } ItemState state() const { return static_cast(property("ItemState").toInt()); } void setIndex(int index) { _index->setText(QString::number(index + 1)); } void setHovered(bool v) { if (_hovered != v) { _hovered = v; setProperty("hovered", v); } } void setCurItemHovered(bool v) { if (_hovered != v) { _hovered = v; setProperty("hovered", v); } if (v) { _closeBtn->show(); _closeBtn->raise(); } else { _closeBtn->hide(); } updateClosePosition(); update(); } bool getBIsSelect() const { return m_bIsSelect; } void setBIsSelect(bool bIsSelect) { m_bIsSelect = bIsSelect; updateForeground(); } void doDoubleClick() { //FIXME: there is an potential inconsistency with model if pif did changed //(i.e gets deleted). _pif.refresh(); _time->setText(_pif.mi.durationStr()); if (!_pif.valid) { setState(ItemState::Invalid); _time->setText(tr("The file does not exist")); } if (!_pif.url.isLocalFile() || _pif.info.exists()) { emit doubleClicked(); }else{ //fixed:影院循环播放10个smb上的视频一段时间后,点击播放按钮或点击列表中的视频没反应 emit _playlist->engine()->sigInvalidFile(QFileInfo(_pif.url.toLocalFile()).fileName()); } } signals: void closeButtonClicked(); void doubleClicked(); private slots: void slotThemeTypeChanged() { // QPalette pa; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { if (_thumb) { _thumb->setPic(_pif.thumbnail); } else { m_pSvgWidget->load(QString(":/resources/icons/music-light.svg")); } // pa.setColor(QPalette::BrightText, Qt::black); // _name->setPalette(pa); // _index->setPalette(pa); updateForeground(); }; if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { if (_thumb) { _thumb->setPic(_pif.thumbnail_dark); } else { m_pSvgWidget->load(QString(":/resources/icons/music-dark.svg")); } // pa.setColor(QPalette::BrightText, Qt::white); // _name->setPalette(pa); // _index->setPalette(pa); updateForeground(); } } void slotSizeChange() { setFixedWidth(_playlist->width() - 230); } protected: void updateClosePosition() { auto margin = 10; _closeBtn->move(width() - _closeBtn->width() - margin, (height() - _closeBtn->height()) / 2); } void updateForeground() { m_highlightColor = Dtk::Gui::DGuiApplicationHelper::instance()->applicationPalette().highlight().color(); if(m_bIsSelect) { _name->setForegroundRole(DPalette::Text); _index->setForegroundRole(DPalette::Text); QPalette pa; pa.setColor(QPalette::Text, Qt::white); _name->setPalette(pa); _index->setPalette(pa); update(); } else { if (state() == ItemState::Playing) { _name->setForegroundRole(DPalette::Highlight); _index->setForegroundRole(DPalette::Highlight); _time->setForegroundRole(DPalette::Highlight); } else { _name->setForegroundRole(DPalette::BrightText); _index->setForegroundRole(DPalette::BrightText); _time->setForegroundRole(DPalette::BrightText); QPalette pa; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa.setColor(QPalette::BrightText, Qt::black); _name->setPalette(pa); _index->setPalette(pa); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { pa.setColor(QPalette::BrightText, Qt::white); _name->setPalette(pa); _index->setPalette(pa); } } } } void leaveEvent(QEvent *e) override { _closeBtn->hide(); setHovered(false); QFrame::leaveEvent(e); } void enterEvent(QEvent *e) override { _closeBtn->show(); _closeBtn->raise(); updateClosePosition(); setHovered(true); QFrame::enterEvent(e); } bool eventFilter(QObject *obj, QEvent *e) override { if (e->type() == QEvent::MouseButtonDblClick) { doDoubleClick(); return true; } return QWidget::eventFilter(obj, e); } void resizeEvent(QResizeEvent *re) override { updateClosePosition(); _name->setFixedWidth(width() - 180); updateNameText(); QFrame::resizeEvent(re); } bool event(QEvent *ee) override { if (ee->type() == QEvent::Move) { } return QFrame::event(ee); } void updateNameText() { _name->setText(utils::ElideText(_pif.mi.title, {width() - 242, 36}, QTextOption::NoWrap, _name->font(), Qt::ElideRight, 18, width() - 242)); _name->setCursor(Qt::ArrowCursor); } void showEvent(QShowEvent *se) override { updateNameText(); QFrame::showEvent(se); } void mouseDoubleClickEvent(QMouseEvent *me) override { doDoubleClick(); QFrame::mouseDoubleClickEvent(me); } void paintEvent(QPaintEvent *pe) override { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRectF bgRect; bgRect.setSize(size()); const DPalette pal = QGuiApplication::palette(); if (!(_index->text().toInt() % 2)) { QColor bgColor; if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { bgColor = QColor(255, 255, 255); bgColor.setAlphaF(0.05); } else { bgColor = pal.color(DPalette::AlternateBase); } QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, bgColor); } if (_hovered) { DPalette pa = DApplicationHelper::instance()->palette(this); pa.setBrush(DPalette::Text, pa.color(DPalette::Highlight)); QColor bgColor(255, 255, 255, static_cast(255 * 0.05)); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { bgColor = QColor(0, 0, 0, static_cast(255 * 0.05)); } QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, bgColor); } if (!_pif.valid) { setState(ItemState::Invalid); _name->setForegroundRole(DPalette::TextTips); _time->setText(tr("The file does not exist")); } if (m_bIsSelect) { _time->hide(); _closeBtn->show(); _closeBtn->raise(); QPainterPath pp; pp.addRoundedRect(bgRect, 8, 8); painter.fillPath(pp, m_highlightColor); } else { _time->show(); _closeBtn->hide(); } QFrame::paintEvent(pe); } private: QString _bg; DLabel *_index; ListPic *_thumb; QSvgWidget *m_pSvgWidget; DLabel *_name; DLabel *_time; QPixmap _play; PlayItemInfo _pif; DFloatingButton *_closeBtn; QListWidget *_listWidget {nullptr}; bool _hovered {false}; PlaylistWidget *_playlist{nullptr}; bool m_bIsSelect = false; QGraphicsOpacityEffect *m_opacityEffect {nullptr}; QGraphicsOpacityEffect *m_opacityEffect_1 {nullptr}; QColor m_highlightColor; }; class MainWindowListener: public QObject { public: explicit MainWindowListener(QObject *parent): QObject(parent) {} protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *me = static_cast(event); if (me->buttons() == Qt::LeftButton) { if (!m_bClicked) { m_bClicked = true; m_lastPoint = me->globalPos(); QTimer::singleShot(200, this, [ = ] { if (!m_bClicked) { return; } m_bClicked = false; auto *plw = dynamic_cast(parent()); auto *mw = dynamic_cast(plw->parent()); if (mw->insideResizeArea(m_lastPoint)) return; if (plw->state() == PlaylistWidget::Opened && !plw->underMouse()) { mw->requestAction(ActionFactory::ActionKind::TogglePlaylist); } }); } } return false; } else if (event->type() == QEvent::MouseButtonDblClick) { m_bClicked = false; return QObject::eventFilter(obj, event); }/* else if (event->type() == QEvent::KeyRelease) { //这段代码会导致Enter播放列表后,播放列表关闭 QKeyEvent *key = static_cast(event); if (key->key() == Qt::Key_Return || key->key() == Qt::Key_Enter) { auto *plw = dynamic_cast(parent()); if (plw->state() == PlaylistWidget::State::Opened) { DListWidget *playlist = plw->get_playlist(); for (int loop = 0; loop < playlist->count(); loop++) { auto piw = dynamic_cast(playlist->itemWidget(playlist->item(loop))); if (piw->getBIsSelect()) { piw->doubleClicked(); return false; } } } } return false; }*/ else { // standard event processing return QObject::eventFilter(obj, event); } } private: bool m_bClicked {false}; QPoint m_lastPoint; }; /** * @brief 获取播放列表内的所有鼠标事件 * */ class MouseEventListener: public QObject { public: explicit MouseEventListener(QObject *parent): QObject(parent) {} void setListWidget(DListWidget* listWidget) { m_pListWidget = listWidget; } protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *pMouseEvent = static_cast(event); if (pMouseEvent->buttons() == Qt::LeftButton && !m_pListWidget->itemAt(pMouseEvent->pos())) { PlayItemWidget *pItem = reinterpret_cast(m_pListWidget->itemWidget(m_pListWidget->currentItem())); if(pItem) { pItem->setBIsSelect(false); // 点击播放列表空白处,取消item选中效果 m_pListWidget->update(); } } } return QObject::eventFilter(obj, event); } private: DListWidget* m_pListWidget; }; PlaylistWidget::PlaylistWidget(QWidget *mw, PlayerEngine *mpv) : QWidget(mw), _engine(mpv), _mw(static_cast(mw)) { bool composited = CompositingManager::get().composited(); setAttribute(Qt::WA_TranslucentBackground, false); this->setObjectName(PLAYLIST_WIDGET); paOpen = nullptr; paClose = nullptr; pSelectItemWgt = nullptr; QVBoxLayout *mainVLayout = new QVBoxLayout(this); mainVLayout->setContentsMargins(0, 0, 0, 0); mainVLayout->setSpacing(0); setLayout(mainVLayout); QHBoxLayout *mainLayout = new QHBoxLayout(); mainLayout->setContentsMargins(10, 0, 10, 0); mainLayout->setSpacing(0); mainLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop); QWidget *topspec = new QWidget; topspec->setFixedHeight(20); mainVLayout->addWidget(topspec); mainVLayout->addLayout(mainLayout); QWidget *left = new QWidget(); left->setObjectName(LEFT_WIDGET); left->setFixedSize(197, 288); left->setContentsMargins(0, 0, 0, 0); left->setAttribute(Qt::WA_TranslucentBackground, false); left->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred)); _title = new DLabel(); DFontSizeManager::instance()->bind(_title, DFontSizeManager::T3); _title->setForegroundRole(DPalette::ToolTipText); _title->setText(tr("Playlist")); _num = new DLabel(); _num->setForegroundRole(DPalette::BrightText); QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect; _num->setGraphicsEffect(opacityEffect); opacityEffect->setOpacity(0.5); _num->setText(""); DFontSizeManager::instance()->bind(_num, DFontSizeManager::T6); _num->setContentsMargins(0, 0, 0, 0); mainLayout->addWidget(left); auto *leftinfo = new QVBoxLayout; leftinfo->setContentsMargins(0, 0, 0, 0); leftinfo->setSpacing(0); left->setLayout(leftinfo); leftinfo->setAlignment(Qt::AlignLeft | Qt::AlignTop); leftinfo->addWidget(_title); leftinfo->addSpacing(4); leftinfo->addWidget(_num); leftinfo->addSpacing(6); m_pClearButton = new DPushButton(); m_pClearButton->setObjectName(CLEAR_PLAYLIST_BUTTON); m_pClearButton->setAccessibleName(CLEAR_PLAYLIST_BUTTON); m_pClearButton->setIcon(QIcon::fromTheme("dcc_clearlist")); m_pClearButton->setText(tr("Empty")); m_pClearButton->setFocusPolicy(Qt::TabFocus); m_pClearButton->installEventFilter(this); DFontSizeManager::instance()->bind(m_pClearButton, DFontSizeManager::T6); DPalette pa_cb = DApplicationHelper::instance()->palette(m_pClearButton); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa_cb.setBrush(QPalette::Light, QColor(100, 100, 100, 255)); pa_cb.setBrush(QPalette::Dark, QColor(92, 92, 92, 255)); } else { pa_cb.setBrush(QPalette::Light, QColor(85, 84, 84, 255)); pa_cb.setBrush(QPalette::Dark, QColor(65, 65, 65, 255)); } pa_cb.setBrush(QPalette::ButtonText, QColor(255, 255, 255, 255)); m_pClearButton->setPalette(pa_cb); m_pClearButton->setContentsMargins(0, 0, 0, 0); QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::paletteTypeChanged, m_pClearButton, [ = ]() { DPalette pa_cBtn = DApplicationHelper::instance()->palette(m_pClearButton); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pa_cBtn.setBrush(QPalette::Light, QColor(100, 100, 100, 255)); pa_cBtn.setBrush(QPalette::Dark, QColor(92, 92, 92, 255)); } else { pa_cBtn.setBrush(QPalette::Light, QColor(85, 84, 84, 255)); pa_cBtn.setBrush(QPalette::Dark, QColor(65, 65, 65, 255)); } m_pClearButton->setPalette(pa_cb); }); leftinfo->addWidget(m_pClearButton); connect(m_pClearButton, &QPushButton::clicked, _engine, &PlayerEngine::clearPlaylist); left->setContentsMargins(36, 0, 0, 0); m_pClearButton->setContentsMargins(0, 0, 0, 70); _num->setContentsMargins(0, 0, 0, 0); QWidget *right = new QWidget(); right->setObjectName(RIGHT_LIST_WIDGET); auto *rightinfo = new QVBoxLayout; rightinfo->setContentsMargins(0, 0, 0, 0); rightinfo->setSpacing(0); right->setLayout(rightinfo); right->setContentsMargins(0, 0, 0, 0); mainLayout->addWidget(right); _playlist = new DListWidget(); _playlist->setAttribute(Qt::WA_DeleteOnClose); _playlist->setFixedSize(width() - 205, 288); _playlist->setContentsMargins(0, 0, 0, 0); _playlist->installEventFilter(this); _playlist->viewport()->setAutoFillBackground(false); _playlist->setAutoFillBackground(false); _playlist->setObjectName(PLAYLIST); _playlist->viewport()->setObjectName(FILE_LIST); rightinfo->addWidget(_playlist); _playlist->setAttribute(Qt::WA_TranslucentBackground, false); _playlist->setFrameShape(QFrame::NoFrame); _playlist->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); _playlist->setSelectionMode(QListView::NoSelection); _playlist->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); _playlist->setResizeMode(QListView::Adjust); _playlist->setDragDropMode(QListView::InternalMove); _playlist->setSpacing(0); _playlist->viewport()->setAcceptDrops(true); _playlist->setDragEnabled(true); MouseEventListener* pListener = new MouseEventListener(this); pListener->setListWidget(_playlist); _playlist->viewport()->installEventFilter(pListener); this->installEventFilter(pListener); connect(_playlist, &DListWidget::itemClicked, this, &PlaylistWidget::slotShowSelectItem); connect(_playlist, &DListWidget::currentItemChanged, this, &PlaylistWidget::OnItemChanged); _playlist->setContentsMargins(0, 0, 0, 0); if (!composited) { _playlist->setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint); _playlist->setAttribute(Qt::WA_NativeWindow); } setTabOrder(m_pClearButton, _playlist); #ifndef USE_DXCB auto *mwl = new MainWindowListener(this); mw->installEventFilter(mwl); #endif if (!_closeMapper) { _closeMapper = new QSignalMapper(this); connect(_closeMapper, static_cast(&QSignalMapper::mapped), this, &PlaylistWidget::slotCloseItem); } if (!_activateMapper) { _activateMapper = new QSignalMapper(this); connect(_activateMapper, static_cast(&QSignalMapper::mapped), this, &PlaylistWidget::slotDoubleClickedItem); } #ifdef DTKWIDGET_CLASS_DSizeMode connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { for (int i = 0; i < _playlist->count(); i++) { QListWidgetItem *item = _playlist->item(i); item->setSizeHint(QSize(_playlist->itemWidget(item)->width(), 36)); } } else { for (int i = 0; i < _playlist->count(); i++) { QListWidgetItem *item = _playlist->item(i); item->setSizeHint(QSize(_playlist->itemWidget(item)->width(), 24)); } } }); #endif connect(&_engine->playlist(), &PlaylistModel::emptied, this, &PlaylistWidget::clear); connect(&_engine->playlist(), &PlaylistModel::itemsAppended, this, &PlaylistWidget::appendItems); connect(&_engine->playlist(), &PlaylistModel::itemRemoved, this, &PlaylistWidget::removeItem); connect(&_engine->playlist(), &PlaylistModel::currentChanged, this, &PlaylistWidget::updateItemStates); connect(&_engine->playlist(), &PlaylistModel::itemInfoUpdated, this, &PlaylistWidget::updateItemInfo); QTimer::singleShot(10, this, &PlaylistWidget::loadPlaylist); connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToShow, [ = ]() { QTimer::singleShot(20, [ = ]() { if (_mouseItem) { _clickedItem = _mouseItem; (static_cast(_mouseItem))->setHovered(true); } }); }); connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToHide, [ = ]() { m_pClearButton->update(); if (_mouseItem) { (static_cast(_mouseItem))->setHovered(false); } }); connect(_playlist->model(), &QAbstractItemModel::rowsMoved, this, &PlaylistWidget::slotRowsMoved); } PlaylistWidget::~PlaylistWidget() { } void PlaylistWidget::updateSelectItem(const int key) { auto curItem = _playlist->currentItem(); auto curRow = _playlist->row(curItem); qInfo() << "prevRow..." << curRow; PlayItemWidget *prevItemWgt = nullptr; if (curItem) { prevItemWgt = reinterpret_cast(_playlist->itemWidget(curItem)); } if (key == Qt::Key_Up) { if (curRow == -1) { _index = curRow + 1; } else { _index = curRow - 1; } if (_index < 0) { return; } _playlist->setCurrentRow(_index); qInfo() << "Enter Key_Up..." << _index; auto curItemWgt = reinterpret_cast(_playlist->itemWidget(_playlist->item(_index))); if (prevItemWgt) { prevItemWgt->setBIsSelect(false); } if (curItemWgt) { curItemWgt->setBIsSelect(true); } } else if (key == Qt::Key_Down) { if (_index >= _playlist->count() - 1) { return; } _index = curRow + 1; _playlist->setCurrentRow(_index); qInfo() << "Enter Key_Down..." << _index; auto curItemWgt = reinterpret_cast(_playlist->itemWidget(_playlist->item(_index))); if (prevItemWgt) { prevItemWgt->setBIsSelect(false); } if (curItemWgt) { curItemWgt->setBIsSelect(true); } } else if (key == Qt::Key_Enter || key == Qt::Key_Return) { if (m_pClearButton == focusWidget()) { //focus在清空按钮上则清空列表 _engine->clearPlaylist(); } else { slotDoubleClickedItem(prevItemWgt); //Enter键播放 } } } void PlaylistWidget::clear() { _playlist->clear(); QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); _engine->getplaylist()->clearLoad(); } void PlaylistWidget::updateItemInfo(int id) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(id))); if (piw == nullptr) //update info thx return ; piw->updateInfo(_engine->playlist().items()[id]); } void PlaylistWidget::updateItemStates() { qInfo() << __func__ << _playlist->count() << "current = " << _engine->playlist().current(); for (int i = 0; i < _playlist->count(); i++) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); auto old = piw->state(); piw->setState(ItemState::Normal); if (!piw->_pif.valid) { piw->setState(ItemState::Invalid); } if (i == _engine->playlist().current()) { if (piw->state() != ItemState::Playing) { //scrollToItem只能更新scroll位置,不能同步列表项 //_playlist->scrollToItem(_playlist->item(i)); _playlist->setCurrentRow(i); piw->setState(ItemState::Playing); } } } } void PlaylistWidget::showItemInfo() { if (!_mouseItem) return; auto item = dynamic_cast(_mouseItem); if (item) { MovieInfoDialog mid(item->_pif, _mw); mid.exec(); } } void PlaylistWidget::openItemInFM() { if (!_mouseItem) return; auto item = dynamic_cast(_mouseItem); if (item) { utils::ShowInFileManager(item->_pif.mi.filePath); } } void PlaylistWidget::removeClickedItem(bool isShortcut) { if (isShortcut && isVisible()) { for (int i = 0; i < _playlist->count(); i++) { PlayItemWidget * piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); qInfo() << piw->getBIsSelect(); if (piw->getBIsSelect()) { _engine->playlist().remove(i); return; } } } if (!_clickedItem) return; PlayItemWidget * piw = dynamic_cast(_clickedItem); if (piw) { qInfo() << __func__; for (int i = 0; i < _playlist->count(); i++) { if (_clickedItem == _playlist->itemWidget(_playlist->item(i))) { _engine->playlist().remove(i); break; } } } } void PlaylistWidget::slotCloseTimeTimeOut() { QTimer *pCloselistTimer = dynamic_cast(sender()); pCloselistTimer->deleteLater(); togglePopup(false); _mw->reflectActionToUI(ActionFactory::TogglePlaylist); } void PlaylistWidget::slotCloseItem(QWidget *w) { qInfo() << "item close clicked"; _clickedItem = w; _mw->requestAction(ActionFactory::ActionKind::PlaylistRemoveItem); } void PlaylistWidget::slotDoubleClickedItem(QWidget *w) { qInfo() << "item double clicked"; QList args; for (int i = 0; i < _playlist->count(); i++) { if (w == _playlist->itemWidget(_playlist->item(i))) { args << i; _mw->requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, args); QTimer *closelistTImer = new QTimer; closelistTImer->start(500); connect(closelistTImer, &QTimer::timeout, this, &PlaylistWidget::slotCloseTimeTimeOut); break; } } } void PlaylistWidget::slotRowsMoved() { if (_lastDragged.first >= 0) { int target = -1; for (int i = 0; i < _playlist->count(); i++) { auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(i))); if (piw == _lastDragged.second) { target = i; break; } } qInfo() << "swap " << _lastDragged.first << target; if (target >= 0 && _lastDragged.first != target) { _engine->playlist().switchPosition(_lastDragged.first, target); _lastDragged = {-1, nullptr}; } } } /*void PlaylistWidget::dragEnterEvent(QDragEnterEvent *ev) { auto md = ev->mimeData(); qInfo() << md->formats(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) { _playlist->setDropIndicatorShown(true); } QWidget::dragEnterEvent(ev); return; } if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } }*/ /*void PlaylistWidget::dragMoveEvent(QDragMoveEvent *ev) { auto md = ev->mimeData(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) { _playlist->setDropIndicatorShown(true); } QWidget::dragMoveEvent(ev); return; } if (ev->mimeData()->hasUrls()) { ev->acceptProposedAction(); } }*/ /*void PlaylistWidget::dropEvent(QDropEvent *ev) { auto md = ev->mimeData(); if (md->formats().contains("application/x-qabstractitemmodeldatalist")) { _playlist->setDropIndicatorShown(false); auto encoded = md->data("application/x-qabstractitemmodeldatalist"); QDataStream stream(&encoded, QIODevice::ReadOnly); QList l; while (!stream.atEnd()) { int row, col; QMap roleDataMap; stream >> row >> col >> roleDataMap; auto piw = dynamic_cast(_playlist->itemWidget(_playlist->item(row))); _lastDragged = qMakePair(row, piw); qInfo() << "drag to move " << row << piw->_pif.url; } QWidget::dropEvent(ev); return; } if (!ev->mimeData()->hasUrls()) { return; } auto urls = ev->mimeData()->urls(); _engine->addPlayFiles(urls); ev->acceptProposedAction(); }*/ void PlaylistWidget::contextMenuEvent(QContextMenuEvent *cme) { bool on_item = false; _mouseItem = nullptr; QPoint itempos(cme->pos().x() - 235, cme->pos().y() - 20); if (_playlist->itemAt(itempos)) { _mouseItem = _playlist->itemWidget(_playlist->itemAt(itempos)); on_item = true; } if (CompositingManager::get().isPadSystem()) { if (pSelectItemWgt) { pSelectItemWgt->setBIsSelect(false); } auto piw = dynamic_cast(_mouseItem); piw->setBIsSelect(true); pSelectItemWgt = piw; } else { auto piw = dynamic_cast(_mouseItem); auto menu = ActionFactory::get().playlistContextMenu(); for (auto act : menu->actions()) { auto prop = static_cast(act->property("kind").toInt()); bool on = true; if (prop == ActionFactory::ActionKind::PlaylistOpenItemInFM) { on = on_item && piw->_pif.valid && piw->_pif.url.isLocalFile(); } else if (prop == ActionFactory::ActionKind::PlaylistRemoveItem) { on = on_item; } else if (prop == ActionFactory::ActionKind::PlaylistItemInfo) { on = on_item && piw->_pif.valid; } else { on = _playlist->count() > 0 ? true : false; } act->setEnabled(on); } ActionFactory::get().playlistContextMenu()->popup(cme->globalPos()); } #ifdef USE_TEST ActionFactory::get().playlistContextMenu()->hide(); ActionFactory::get().playlistContextMenu()->clear(); #endif } void PlaylistWidget::showEvent(QShowEvent *se) { batchUpdateSizeHints(); adjustSize(); QWidget::showEvent(se); } void PlaylistWidget::removeItem(int idx) { qInfo() << "idx = " << idx; auto item_remove = this->_playlist->item(idx); if (item_remove) { QWidget *pItem = _playlist->itemWidget(item_remove); PlayItemWidget *pCurItem = dynamic_cast(pItem); if (pCurItem == pSelectItemWgt) { pSelectItemWgt = nullptr; //如果删除的是原来选中的则置空 } item_remove = this->_playlist->takeItem(idx); delete item_remove; } this->_playlist->update(); for (int i = 0; i < _playlist->count(); i++) { QWidget *item = _playlist->itemWidget(_playlist->item(i)); if (item) { (dynamic_cast(item))->setIndex(i); } } if (_playlist->count() != 0 && _playlist->count() != idx) { QWidget *item = _playlist->itemWidget(_playlist->item(idx)); PlayItemWidget *curItem = dynamic_cast(item); curItem->setCurItemHovered(true); } else if (_playlist->count() != 0 && _playlist->count() == idx) { QWidget *item = _playlist->itemWidget(_playlist->item(--idx)); PlayItemWidget *curItem = dynamic_cast(item); curItem->setCurItemHovered(true); } QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); } void PlaylistWidget::appendItems() { qInfo() << __func__; auto items = _engine->playlist().items(); auto p = items.begin() + this->_playlist->count(); while (p != items.end()) { auto w = new PlayItemWidget(*p, this->_playlist, p - items.begin(), this); auto item = new QListWidgetItem; item->setFlags(Qt::NoItemFlags); _playlist->addItem(item); _playlist->setItemWidget(item, w); connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map())); connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map())); _closeMapper->setMapping(w, w); _activateMapper->setMapping(w, w); ++p; } QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); batchUpdateSizeHints(); updateItemStates(); // _playlist->setStyleSheet(styleSheet()); // setStyleSheet(styleSheet()); } void PlaylistWidget::slotShowSelectItem(QListWidgetItem *item) { PlayItemWidget *pWidget = nullptr; if (item) { _playlist->setCurrentItem(item); pWidget = reinterpret_cast(_playlist->itemWidget(item)); if (!pWidget) { return; } } if (CompositingManager::get().isPadSystem()) { pWidget->doDoubleClick(); if (pSelectItemWgt) { pSelectItemWgt->setBIsSelect(false); pSelectItemWgt = nullptr; } } else { pWidget->setBIsSelect(true); } } void PlaylistWidget::OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { PlayItemWidget *prevItemWgt = nullptr; PlayItemWidget *curItemWgt = nullptr; bool bIsPad = CompositingManager::get().isPadSystem(); if (previous) { prevItemWgt = reinterpret_cast(_playlist->itemWidget(previous)); if (!bIsPad && prevItemWgt) { prevItemWgt->setBIsSelect(false); } } if (current) { curItemWgt = reinterpret_cast(_playlist->itemWidget(current)); if (!bIsPad && curItemWgt) { curItemWgt->setBIsSelect(true); } } } void PlaylistWidget::resetFocusAttribute(bool &atr) { m_bButtonFocusOut = atr; } void PlaylistWidget::loadPlaylist() { qInfo() << __func__; _playlist->clear(); auto items = _engine->playlist().items(); auto p = items.begin(); while (p != items.end()) { auto w = new PlayItemWidget(*p, this->_playlist, p - items.begin(), this); auto item = new QListWidgetItem; item->setFlags(Qt::NoItemFlags); _playlist->addItem(item); _playlist->setItemWidget(item, w); connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map())); connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map())); _closeMapper->setMapping(w, w); _activateMapper->setMapping(w, w); ++p; } batchUpdateSizeHints(); updateItemStates(); // _playlist->setStyleSheet(styleSheet()); QString s = QString(tr("%1 videos")).arg(_playlist->count()); _num->setText(s); // setStyleSheet(styleSheet()); } void PlaylistWidget::batchUpdateSizeHints() { if (isVisible()) { for (int i = 0; i < this->_playlist->count(); i++) { auto item = this->_playlist->item(i); auto w = this->_playlist->itemWidget(item); //auto t = w->size(); item->setSizeHint(w->size()); } } } void PlaylistWidget::endAnimation() { if (paOpen != nullptr && paClose != nullptr) { paOpen -> setDuration(0); paClose->setDuration(0); } } bool PlaylistWidget::isFocusInPlaylist() { if (m_pClearButton == focusWidget() || _playlist == focusWidget()) { return true; } else { return false; } } void PlaylistWidget::togglePopup(bool isShortcut) { if (paOpen != nullptr || paClose != nullptr) { return ; } QRect main_rect = _mw->rect(); #ifdef USE_DXCB QRect view_rect = main_rect; #else QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); #endif int toolbox_height = TOOLBOX_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { toolbox_height = TOOLBOX_DSIZEMODE_HEIGHT; } #endif /** * 此处在动画执行前设定好PlaylistWidget的起始位置和终止位置 * 基于 MainWindow::updateProxyGeometry所设置的初始状态 以及 是否是紧凑模式 定位PlaylistWidget的起始位置和终止位置。 */ QRect fixed; if(CompositingManager::get().platform() == X86) { fixed.setRect(10, (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height + 10)), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT + 10); } else { fixed.setRect(10, (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + toolbox_height + 10) + 5), view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT + 10); } QRect shrunk = fixed; shrunk.setHeight(0); shrunk.moveBottom(fixed.bottom()); if (_toggling) return; if (_state == State::Opened) { Q_ASSERT(isVisible()); //Set this judgment to false when the playlist is collapsed m_bButtonFocusOut = false; if (isFocusInPlaylist()) { //以除Esc以外的其它方式收起播放列表,焦点切换到主窗口,防止随机出现在其它控件上 _mw->setFocus(); } #ifdef __x86_64__ paOpen = new QPropertyAnimation(this, "geometry"); paOpen->setEasingCurve(QEasingCurve::Linear); paOpen->setDuration(POPUP_DURATION); paOpen->setStartValue(fixed); paOpen->setEndValue(shrunk);; _toggling = false; _state = State::Closed; emit stateChange(isShortcut); paOpen->start(); //down connect(paOpen, &QPropertyAnimation::finished, [ = ]() { paOpen->deleteLater(); paOpen = nullptr; setVisible(!isVisible()); }); #else _toggling = false; _state = State::Closed; emit stateChange(isShortcut); setVisible(!isVisible()); #endif } else { _playlist->setAttribute(Qt::WA_TransparentForMouseEvents, true); setVisible(!isVisible()); #ifdef __x86_64__ paClose = new QPropertyAnimation(this, "geometry"); paClose->setEasingCurve(QEasingCurve::Linear); paClose->setDuration(POPUP_DURATION); paClose->setStartValue(shrunk); paClose->setEndValue(fixed); _toggling = false; _state = State::Opened; emit stateChange(isShortcut); paClose->start(); //up connect(paClose, &QPropertyAnimation::finished, [ = ]() { paClose->deleteLater(); paClose = nullptr; _playlist->setAttribute(Qt::WA_TransparentForMouseEvents, false); if (_mw->toolbox()->getListBtnFocus()) { m_pClearButton->setFocus(); } }); #else _toggling = false; //条件编译误报(cppcheck) _state = State::Opened; emit stateChange(isShortcut); setGeometry(fixed); _playlist->setAttribute(Qt::WA_TransparentForMouseEvents, false); #endif } } void PlaylistWidget::paintEvent(QPaintEvent *pe) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRectF bgRect; bgRect.setSize(size()); QPainterPath pp; pp.addRoundedRect(bgRect, 18, 18); QWidget::paintEvent(pe); } void PlaylistWidget::resizeEvent(QResizeEvent *ev) { auto main_rect = _mw->rect(); #ifdef USE_DXCB auto view_rect = main_rect; #else auto view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); #endif QRect fixed((view_rect.width() - 10), (view_rect.height() - 394), view_rect.width() - 20, (384 - 70)); _playlist->setFixedWidth(fixed.width() - 205); emit sizeChange(); QTimer::singleShot(100, this, &PlaylistWidget::batchUpdateSizeHints); QWidget::resizeEvent(ev); } bool PlaylistWidget::eventFilter(QObject *obj, QEvent *event) { if (obj == m_pClearButton) { //焦点在清空按键上禁用上下键 if (event->type() == QEvent::KeyPress) { if (static_cast(event)->key() == Qt::Key_Up || static_cast(event)->key() == Qt::Key_Down) { return true; } } switch (event->type()) { case QEvent::FocusIn: _mw->toolbox()->setBtnFocusSign(true); break; case QEvent::FocusOut: if (_playlist->count() <= 0) { //如果播放列表为空,清空按钮上的焦点不向后传递 return true; } break; } } else if (obj == _playlist) { switch (event->type()) { case QEvent::FocusIn: { if (_playlist->count()) { //The judgment here is to prevent the focus from shifting during mouse operation if (!m_bButtonFocusOut) { return true; } //焦点切换到播放列表,选中第一个条目 if (_playlist->currentRow() != 0) { _playlist->setCurrentRow(0); _index = 0; m_bButtonFocusOut = false; } } return true; } case QEvent::KeyPress: { QKeyEvent *keyPressEv = static_cast(event); if (keyPressEv->key() == Qt::Key_Tab) { //将焦点设置到清空按钮上,实现焦点循环 m_pClearButton->setFocus(); return true; } break; } default: break; } } return QObject::eventFilter(obj, event); // standard event processing } } #include "playlist_widget.moc" deepin-movie-reborn-5.15.10/src/widgets/playlist_widget.h000066400000000000000000000120311473342170300233440ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_PLAYLIST_WIDGET_H #define _DMR_PLAYLIST_WIDGET_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Dtk { namespace Widget { class DImageButton; } } DWIDGET_USE_NAMESPACE namespace dmr { class PlayerEngine; class MainWindow; class ListPic: public QLabel { Q_OBJECT public: ListPic(QPixmap pic, QWidget *parent): QLabel(parent) { setFixedSize(QSize(42, 24)); _pic = pic; } void setPic(QPixmap pic) { _pic = pic; } protected: void paintEvent(QPaintEvent *pe) override { QPainter painter(this); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QSize size(_pic.size()); QBitmap mask(size); QPainter painter1(&mask); painter1.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter1.fillRect(mask.rect(), Qt::white); painter1.setBrush(QColor(0, 0, 0)); painter1.drawRoundedRect(mask.rect(), 5, 5); QPixmap image = _pic; image.setMask(mask); painter.setClipping(true); QPainterPath bg0; bg0.addRoundedRect(rect(), 5, 5); //使用5个像素点,圆角效果更好 painter.setClipPath(bg0); painter.drawPixmap(rect(), image); painter.setPen( QPen(DGuiApplicationHelper::instance()->applicationPalette().frameBorder().color(), 2)); painter.setBrush(Qt::NoBrush); painter.drawRoundedRect(rect(), 5, 5); }; private: QPixmap _pic; }; class PlayItemWidget; class PlaylistWidget: public QWidget { Q_OBJECT public: enum State { Opened, Closed, }; PlaylistWidget(QWidget *, PlayerEngine *); virtual ~PlaylistWidget(); State state() const { return _state; } bool toggling() const { return _toggling; } DListWidget *get_playlist() { return _playlist; } void updateSelectItem(const int key); void clear(); void endAnimation(); bool isFocusInPlaylist(); /** * @brief resetFocusAttribute * 重置键盘交互属性,确保置首条只有tab键交互生效 * * @param atr true为执行,false为跳过 */ void resetFocusAttribute(bool &atr); /** * @brief 返回_engine * PlayItemWidget类中的文件url无效时,需要给用户提示。需要通过PlayerEngine给MainWindow发送信号 * @return engine的指针 */ inline PlayerEngine *engine() noexcept{ return _engine; } signals: void stateChange(bool isShortcut); void sizeChange(); public slots: /** * @brief togglePopup * 播放列表升起/降下,此函数会触发PlaylistWidget::stateChange信号,调用ToolboxProxy::slotPlayListStateChange * * @param isShortcut 该函数是否通过快捷键触发 */ void togglePopup(bool isShortcut); void loadPlaylist(); void openItemInFM(); void showItemInfo(); void removeClickedItem(bool isShortcut); void slotCloseTimeTimeOut(); void slotCloseItem(QWidget *w); void slotDoubleClickedItem(QWidget *w); void slotRowsMoved(); protected: void contextMenuEvent(QContextMenuEvent *cme) override; // void dragEnterEvent(QDragEnterEvent *event) override; // void dragMoveEvent(QDragMoveEvent *event) override; // void dropEvent(QDropEvent *event) override; void showEvent(QShowEvent *se) override; void paintEvent(QPaintEvent *pe) override; void resizeEvent(QResizeEvent *ev) override; bool eventFilter(QObject *obj, QEvent *event) override; protected slots: void updateItemStates(); void updateItemInfo(int); void appendItems(); void removeItem(int); void slotShowSelectItem(QListWidgetItem *); void OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous); private: PlayerEngine *_engine {nullptr}; MainWindow *_mw {nullptr}; QWidget *_mouseItem {nullptr}; QWidget *_clickedItem {nullptr}; QSignalMapper *_closeMapper {nullptr}; QSignalMapper *_activateMapper {nullptr}; DListWidget *_playlist {nullptr}; State _state {Closed}; DLabel *_num {nullptr}; DLabel *_title {nullptr}; /// < original row, data> QPair _lastDragged {-1, nullptr}; int _index {0}; PlayItemWidget *pSelectItemWgt; void batchUpdateSizeHints(); QPropertyAnimation *paOpen ; QPropertyAnimation *paClose ; DPushButton *m_pClearButton; bool _toggling {false}; bool m_bButtonFocusOut {false}; ///键盘交互标志位 }; } #endif /* ifndef _DMR_PLAYLIST_WIDGET_H */ deepin-movie-reborn-5.15.10/src/widgets/slider.cpp000066400000000000000000000126671473342170300217740ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 这个文件是播放进度条相关 */ #include "slider.h" #include #include #include #define TOOLBOX_TOP_EXTENT 12 DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief DMRSlider::DMRSlider 构造函数 * @param parent 父窗口 */ DMRSlider::DMRSlider(QWidget *parent): DSlider(Qt::Horizontal, parent) { initMember(); slider()->setTracking(false); slider()->setMouseTracking(true); setMouseTracking(true); } void DMRSlider::setEnableIndication(bool on) { if (m_bIndicatorEnabled != on) { m_bIndicatorEnabled = on; update(); } } /** * @brief ~DMRSlider 析构函数 */ DMRSlider::~DMRSlider() { } /** * @brief mouseReleaseEvent 鼠标释放事件函数 * @param pMouseEvent */ void DMRSlider::mouseReleaseEvent(QMouseEvent *e) { if (m_bDown) { m_bDown = false; QWidget::mouseReleaseEvent(e); } } /** * @brief position2progress 像素点到进度条位置转换 * @param p 像素点 * @return 进度条位置 */ int DMRSlider::position2progress(const QPoint &p) { qreal total = (maximum() - minimum()); if (orientation() == Qt::Horizontal) { qreal span = static_cast(total) / contentsRect().width(); return static_cast(span * (p.x()) + minimum()); } else { qreal span = static_cast(total) / contentsRect().height(); return static_cast(span * (height() - p.y()) + minimum()); } } /** * @brief mousePressEvent 鼠标按下事件函数 * @param pMouseEvent 鼠标按下事件 */ void DMRSlider::mousePressEvent(QMouseEvent *e) { QProcessEnvironment systemEnv = QProcessEnvironment::systemEnvironment(); QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE")); QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY")); if (XDG_SESSION_TYPE == QLatin1String("wayland") || WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) { return ; } if (e->buttons() == Qt::LeftButton && isEnabled()) { QWidget::mousePressEvent(e); int v = position2progress(e->pos());; //wayland 此处注释 //slider()->setSliderPosition(v); emit sliderMoved(v); m_bDown = true; } } /** * @brief mouseMoveEvent 鼠标移动事件函数 * @param pMouseEvent 鼠标事件 */ void DMRSlider::mouseMoveEvent(QMouseEvent *e) { if (!isEnabled()) return; int nValue = position2progress(e->pos()); if (m_bDown) { if (m_bShowIndicator) { m_indicatorPos = {e->x(), pos().y() + TOOLBOX_TOP_EXTENT - 4}; update(); } } else { // a mouse enter from previewer happens if (m_bIndicatorEnabled && !property("Hover").toBool()) { setProperty("Hover", "true"); m_bShowIndicator = true; update(); } emit enter(); if (m_nLastHoverValue != nValue) { if (m_bShowIndicator) { m_indicatorPos = {e->x(), pos().y() + TOOLBOX_TOP_EXTENT - 4}; update(); } emit hoverChanged(nValue); } m_nLastHoverValue = nValue; } e->accept(); } /** * @brief leaveEvent 鼠标离开事件函数 * @param pEvent 事件 */ void DMRSlider::leaveEvent(QEvent *pEvent) { if (m_bIndicatorEnabled) { m_bShowIndicator = false; update(); } //HACK: workaround problem that preview will make slider leave QPoint pos = mapFromGlobal(QCursor::pos()); if (pos.y() > 0 && pos.y() < 6) { // preview may popup return; } m_nLastHoverValue = 0; if (m_bDown) m_bDown = false; emit leave(); if (pEvent) pEvent->accept(); } /** * @brief forceLeave 离开范围调用 */ void DMRSlider::forceLeave() { leaveEvent(nullptr); } /** * @brief enterEvent 鼠标进入事件函数 * @param pEvent 事件 */ void DMRSlider::enterEvent(QEvent *pEvent) { if (m_bIndicatorEnabled) { if (property("Hover") != "true") { setProperty("Hover", "true"); m_bShowIndicator = true; update(); } } emit enter(); pEvent->accept(); } /** * @brief wheelEvent 鼠标滚轮事件函数 * @param pWheelEvent 鼠标滚轮事件 */ void DMRSlider::wheelEvent(QWheelEvent *pWheelEvent) { if (pWheelEvent->buttons() == Qt::MiddleButton && pWheelEvent->modifiers() == Qt::NoModifier) { qInfo() << "angleDelta" << pWheelEvent->angleDelta(); } pWheelEvent->accept(); } /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void DMRSlider::paintEvent(QPaintEvent *pPaintEvent) { QWidget::paintEvent(pPaintEvent); } void DMRSlider::initMember() { m_bDown = false; m_bIndicatorEnabled = false; m_bShowIndicator = false; m_nLastHoverValue = 0; m_indicatorPos = {0, 0}; } bool DMRSlider::event(QEvent *pEvent) { QMouseEvent* pMouseEvent = dynamic_cast(pEvent); if(!isEnabled() && pMouseEvent) // 进度条不能使用时需要给出提示 { if(pMouseEvent->type() == QEvent::MouseButtonPress) { emit sigUnsupported(); } return true; } return DSlider::event(pEvent); } } deepin-movie-reborn-5.15.10/src/widgets/slider.h000066400000000000000000000066211473342170300214320ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 这个文件是播放进度条相关 */ #ifndef _DMR_SLIDER_H #define _DMR_SLIDER_H #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { /** * @brief The DMRSlider class * 实现播放进度条 */ class DMRSlider: public DSlider { Q_OBJECT public: /** * @brief DMRSlider 构造函数 * @param parent 父窗口 */ explicit DMRSlider(QWidget *parent = 0); /** * @brief ~DMRSlider 析构函数 */ virtual ~DMRSlider(); /** * @brief setEnableIndication * @param on */ void setEnableIndication(bool on); //workaround /** * @brief forceLeave 离开范围调用 */ void forceLeave(); signals: /** * @brief hoverChanged 悬停变更信号 */ void hoverChanged(int); /** * @brief leave 鼠标离开信号 */ void leave(); /** * @brief enter 鼠标进入信号 */ void enter(); /** * @brief 功能不支持信号 */ void sigUnsupported(); protected: /** * @brief onValueChanged 进度条值改变槽函数 * @param v 值 */ void onValueChanged(const QVariant& v); /** * @brief onAnimationStopped 动画结束槽函数 */ void onAnimationStopped(); protected: /** * @brief mouseReleaseEvent 鼠标释放事件函数 * @param pMouseEvent */ void mouseReleaseEvent(QMouseEvent *pMouseEvent) override; /** * @brief mousePressEvent 鼠标按下事件函数 * @param pMouseEvent 鼠标按下事件 */ void mousePressEvent(QMouseEvent *pMouseEvent) override; /** * @brief mouseMoveEvent 鼠标移动事件函数 * @param pMouseEvent 鼠标事件 */ void mouseMoveEvent(QMouseEvent *pMouseEvent) override; /** * @brief leaveEvent 鼠标离开事件函数 * @param pEvent 事件 */ void leaveEvent(QEvent *pEvent) override; /** * @brief enterEvent 鼠标进入事件函数 * @param pEvent 事件 */ void enterEvent(QEvent *pEvent) override; /** * @brief wheelEvent 鼠标滚轮事件函数 * @param pWheelEvent 鼠标滚轮事件 */ void wheelEvent(QWheelEvent *pWheelEvent) override; /** * @brief paintEvent 重载绘制事件函数 * @param pPaintEvent 绘制事件 */ void paintEvent(QPaintEvent *pPaintEvent) override; /** * @brief initMember 初始化成员变量 */ void initMember(); bool event(QEvent* pEvent) override; private: /** * @brief position2progress 像素点到进度条位置转换 * @param p 像素点 * @return 进度条位置 */ int position2progress(const QPoint& p); /** * @brief startAnimation * @param reverse */ void startAnimation(bool reverse); bool m_bDown; ///鼠标是否按下标志位 bool m_bIndicatorEnabled; ///进入后设置显示状态 bool m_bShowIndicator; ///是否显示当前位置 int m_nLastHoverValue; ///上次悬停的位置 QPoint m_indicatorPos; ///鼠标悬停的位置 QColor m_indicatorColor; ///鼠标悬停活动色 }; } #endif /* ifndef _DMR_SLIDER_H */ deepin-movie-reborn-5.15.10/src/widgets/tip.cpp000066400000000000000000000157701473342170300213040ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "tip.h" #include #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { class TipPrivate { public: explicit TipPrivate(Tip *parent) : q_ptr(parent) {} void setBackgroundImage(const QPixmap &srcPixmap); QBrush background; int radius = 8; int shadowWidth = 20; QMargins shadowMargins = QMargins(20, 20, 20, 20); QColor borderColor = QColor(0, 0, 0, static_cast(0.2 * 255)); DLabel *textLable = nullptr; QFrame *m_interFrame = nullptr; Tip *q_ptr; Q_DECLARE_PUBLIC(Tip) }; Tip::Tip(const QPixmap &icon, const QString &text, QWidget *parent) : QFrame(parent), d_ptr(new TipPrivate(this)) { DThemeManager::instance()->registerWidget(this); Q_D(Tip); setAttribute(Qt::WA_DeleteOnClose); setWindowFlags(Qt::ToolTip | Qt::CustomizeWindowHint); setAttribute(Qt::WA_TranslucentBackground); setObjectName("Tip"); setContentsMargins(0, 0, 0, 0); auto layout = new QHBoxLayout(this); layout->setContentsMargins(7, 4, 7, 4); layout->setSpacing(0); d->m_interFrame = new QFrame(this); d->m_interFrame->setContentsMargins(0, 0, 0, 0); auto interlayout = new QHBoxLayout(d->m_interFrame); interlayout->setContentsMargins(0, 0, 0, 0); interlayout->setSpacing(5); auto iconLabel = new QLabel; iconLabel->setObjectName("TipIcon"); iconLabel->setFixedSize(icon.size()); if (icon.isNull()) { iconLabel->hide(); } else { iconLabel->setPixmap(icon); } d->textLable = new DLabel(text); d->textLable->setObjectName("TipText"); d->textLable->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); d->textLable->setWordWrap(false); DFontSizeManager::instance()->bind(d->textLable, DFontSizeManager::T8); d->textLable->setForegroundRole(DPalette::ToolTipText); interlayout->addWidget(iconLabel, 0, Qt::AlignVCenter); interlayout->addWidget(d->textLable, 0, Qt::AlignVCenter); layout->addWidget(d->m_interFrame, 0, Qt::AlignVCenter); adjustSize(); auto *bodyShadow = new QGraphicsDropShadowEffect(this); bodyShadow->setBlurRadius(10.0); bodyShadow->setColor(QColor(0, 0, 0, static_cast(0.1 * 255))); bodyShadow->setOffset(0, 2.0); hide(); bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &Tip::slotWMChanged); } Tip::~Tip() { } void Tip::enterEvent(QEvent *e) { hide(); QFrame::enterEvent(e); } QBrush Tip::background() const { Q_D(const Tip); return d->background; } void Tip::setText(const QString text) { Q_D(const Tip); d->textLable->setText(text); m_strText = text; update(); } int Tip::radius() const { Q_D(const Tip); return d->radius; } QColor Tip::borderColor() const { Q_D(const Tip); return d->borderColor; } void Tip::setBackground(QBrush background) { Q_D(Tip); d->background = background; } void Tip::setRadius(int radius) { Q_D(Tip); d->radius = radius; } void Tip::setBorderColor(QColor borderColor) { Q_D(Tip); d->borderColor = borderColor; } void Tip::slotWMChanged() { bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); } void Tip::pop(QPoint center) { Q_D(Tip); this->show(); center = center - QPoint(width() / 2, height() / 2); this->move(center); } #ifdef _OLD void Tip::paintEvent(QPaintEvent *) { Q_D(Tip); QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing); auto radius = d->radius; auto penWidthf = 1.0; const QPalette pal = QGuiApplication::palette();//this->palette(); QColor background = pal.color(QPalette::ToolTipBase); DPalette pa_name = DApplicationHelper::instance()->palette(d->textLable); pa_name.setBrush(DPalette::Text, pa_name.color(DPalette::ToolTipText)); pa_name.setBrush(DPalette::ToolTipText, pa_name.color(DPalette::ToolTipText)); d->textLable->setForegroundRole(DPalette::Text); d->textLable->setForegroundRole(DPalette::ToolTipText); d->textLable->setPalette(pa_name); auto borderColor = d->borderColor; auto margin = 2.0; auto shadowMargins = QMarginsF(margin, margin, margin, margin); auto backgroundRect = QRectF(rect()).marginsRemoved(shadowMargins); QPainterPath backgroundPath; backgroundPath.addRoundedRect(backgroundRect, radius, radius); painter.fillPath(backgroundPath, background); QPainterPath borderPath; QRectF borderRect = QRectF(rect()); auto borderRadius = radius; QMarginsF borderMargin(penWidthf / 2, penWidthf / 2, penWidthf / 2, penWidthf / 2); borderRadius += penWidthf / 2; borderRect = borderRect.marginsAdded(borderMargin).marginsRemoved(shadowMargins); borderPath.addRoundedRect(borderRect, borderRadius, borderRadius); QPen borderPen(borderColor); borderPen.setWidthF(penWidthf); painter.strokePath(borderPath, borderPen); } #else void Tip::paintEvent(QPaintEvent *) { Q_D(Tip); QPainter pt(this); pt.setRenderHint(QPainter::Antialiasing); int transparency = 245; if (!bIsWM) { transparency = 255; } if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, transparency))); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { pt.setPen(QColor(255, 255, 255, 10)); pt.setBrush(QBrush(QColor(42, 42, 42, transparency))); } else { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, transparency))); } QRect rect = this->rect(); QPainterPath painterPath; if (bIsWM) { rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); painterPath.addRoundedRect(rect, d->radius, d->radius); } else { painterPath.addRect(rect); } pt.drawPath(painterPath); } #endif void Tip::resizeEvent(QResizeEvent *ev) { return QWidget::resizeEvent(ev); } void Tip::resetSize(const int maxWidth) { Q_D(Tip); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8); QFontMetrics fm(font); auto w = fm.boundingRect(d->textLable->text()).width(); if (w >= maxWidth - 14) { d->textLable->setWordWrap(true); this->setFixedWidth(maxWidth); d->textLable->setFixedWidth(maxWidth - 14); } } } deepin-movie-reborn-5.15.10/src/widgets/tip.h000066400000000000000000000027571473342170300207520ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_TIP_H #define _DMR_TIP_H #include #include #include #include #include #include #include #include namespace dmr { class TipPrivate; class Tip : public QFrame { Q_OBJECT Q_PROPERTY(int radius READ radius WRITE setRadius) Q_PROPERTY(QBrush background READ background WRITE setBackground) Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor) public: explicit Tip(const QPixmap &icon, const QString &text, QWidget *parent = 0); ~Tip(); //单元测试在使用 void pop(QPoint center); int radius() const; QColor borderColor() const; QBrush background() const; public slots: void setText(const QString text); void setBackground(QBrush background); void setRadius(int radius); void setBorderColor(QColor borderColor); void slotWMChanged(); protected: virtual void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE; void enterEvent(QEvent *e) override; virtual void resizeEvent(QResizeEvent *ev) Q_DECL_OVERRIDE; public: void resetSize(const int maxWidth); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), Tip) QString m_strText; bool bIsWM {true}; }; } #endif /* ifndef _DMR_TIP_H */ deepin-movie-reborn-5.15.10/src/widgets/titlebar.cpp000066400000000000000000000172231473342170300223110ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "titlebar.h" #include "utils.h" #include #include #include #include "../accessibility/ac-deepin-movie-define.h" DWIDGET_USE_NAMESPACE namespace dmr { class TitlebarPrivate { public: explicit TitlebarPrivate(Titlebar *parent) : q_ptr(parent) {} QColor playColor = QColor(255, 255, 255, 204); QColor lightEffectColor = QColor(200, 200, 200, 45); QColor darkEffectColor = QColor(30, 30, 30, 50); qreal offsetX = 0; qreal offsetY = 15; qreal blurRadius = 52; QGraphicsDropShadowEffect *m_shadowEffect = nullptr; DTitlebar *m_titlebar = nullptr; DLabel *m_titletxt = nullptr; bool m_play = false; Titlebar *q_ptr; Q_DECLARE_PUBLIC(Titlebar) }; /** * @brief Titlebar 构造函数 * @param parent 父窗口 */ Titlebar::Titlebar(QWidget *parent) : DBlurEffectWidget(parent), d_ptr(new TitlebarPrivate(this)) { Q_D(Titlebar); setAttribute(Qt::WA_TranslucentBackground, false); setFocusPolicy(Qt::NoFocus); setObjectName(TITLEBAR); setAccessibleName(TITLEBAR); QHBoxLayout *layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); d->m_titlebar = new DTitlebar(this); d->m_titlebar->setFocusPolicy(Qt::NoFocus); layout->addWidget(d->m_titlebar); setLayout(layout); d->m_titlebar->setWindowFlags(Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); d->m_titlebar->setBackgroundTransparent(false); d->m_titlebar->setBlurBackground(true); // qreal dpr = qApp->devicePixelRatio(); // int w = static_cast(32 * dpr); // QIcon icon = QIcon::fromTheme("deepin-movie"); // QPixmap logo = icon.pixmap(QSize(32, 32)) // .scaled(w, w, Qt::KeepAspectRatio, Qt::SmoothTransformation); // logo.setDevicePixelRatio(dpr); // QPixmap pm(w, w); // pm.setDevicePixelRatio(dpr); // pm.fill(Qt::transparent); // QPainter p(&pm); // p.drawPixmap(0, 0, logo); // p.end(); // this->setIcon(pm); //使用dtk接口后,图标跟随控制中心的图标主题动态变化。 d->m_titlebar->setIcon(QIcon::fromTheme("deepin-movie")); d->m_titlebar->setTitle(""); d->m_titletxt = new DLabel(this); d->m_titletxt->setText(""); d->m_titletxt->setFont(DFontSizeManager::instance()->get(DFontSizeManager::T7)); d->m_titlebar->addWidget(d->m_titletxt, Qt::AlignCenter); d->m_shadowEffect = new QGraphicsDropShadowEffect(this); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &Titlebar::slotThemeTypeChanged); } Titlebar::~Titlebar() { } void Titlebar::setIcon(QPixmap& mp) { Q_D(const Titlebar); d->m_titlebar->setIcon(mp); } void Titlebar::slotThemeTypeChanged() { Q_D(const Titlebar); QPalette pa1, pa2; if (d->m_play) { pa1.setColor(QPalette::ButtonText, d->playColor); pa2.setColor(QPalette::WindowText, d->playColor); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetY); d->m_shadowEffect->setBlurRadius(d->offsetY); d->m_shadowEffect->setColor(d->darkEffectColor); } else { if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { pa1.setColor(QPalette::ButtonText, d->playColor); pa2.setColor(QPalette::WindowText, d->playColor); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetY); d->m_shadowEffect->setBlurRadius(d->offsetY); d->m_shadowEffect->setColor(d->darkEffectColor); } else { pa1.setColor(QPalette::ButtonText, QColor(98, 110, 136, 225)); pa2.setColor(QPalette::WindowText, QColor(98, 110, 136, 225)); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetY); d->m_shadowEffect->setBlurRadius(d->blurRadius); d->m_shadowEffect->setColor(d->lightEffectColor); } } this->setGraphicsEffect(d->m_shadowEffect); } /** * @brief titlebar 获取标题栏对象指针 * @return titlebar指针 */ DTitlebar *Titlebar::titlebar() { Q_D(const Titlebar); return d->m_titlebar; } /** * @brief setTitletxt 设置标题栏文本 * @param title 标题栏文本 */ void Titlebar::setTitletxt(const QString &title) { Q_D(const Titlebar); d->m_titletxt->setText(title); } /** * @brief setTitleBarBackground 设置标题栏背景是否为播放状态样式 * @param flag 传入是否为播放状态 */ void Titlebar::setTitleBarBackground(bool flag) { Q_D(Titlebar); QPalette pa1, pa2; d->m_play = flag; if (d->m_play) { d->m_titlebar->setBackgroundTransparent(d->m_play); pa1.setColor(QPalette::ButtonText, d->playColor); pa2.setColor(QPalette::WindowText, d->playColor); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetX); d->m_shadowEffect->setBlurRadius(d->offsetX); d->m_shadowEffect->setColor(Qt::transparent); } else { QPalette palette; palette.setColor(QPalette::Background, QColor(200, 200, 200, 50)); this->setPalette(palette); d->m_titlebar->setBackgroundTransparent(d->m_play); d->m_titlebar->setBlurBackground(d->m_play); if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { pa1.setColor(QPalette::ButtonText, d->playColor); pa2.setColor(QPalette::WindowText, d->playColor); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetY); d->m_shadowEffect->setBlurRadius(d->blurRadius); d->m_shadowEffect->setColor(d->darkEffectColor); } else { pa1.setColor(QPalette::ButtonText, QColor(98, 110, 136, 225)); pa2.setColor(QPalette::WindowText, QColor(98, 110, 136, 225)); d->m_titlebar->setPalette(pa1); d->m_titletxt->setPalette(pa2); d->m_shadowEffect->setOffset(d->offsetX, d->offsetY); d->m_shadowEffect->setBlurRadius(d->blurRadius); d->m_shadowEffect->setColor(d->lightEffectColor); } } this->setGraphicsEffect(d->m_shadowEffect); update(); } /** * @brief paintEvent 绘制事件函数 * @param pPaintEvent 绘制事件 */ void Titlebar::paintEvent(QPaintEvent *pe) { Q_D(const Titlebar); QPainter painter(this); QBrush bgColor; if (d->m_play) { QPalette palette; QPixmap pixmap = QPixmap(":resources/icons/titlebar.png"); //palette.setBrush(QPalette::Background, QBrush(pixmap.scaled(window()->width(), 50))); bgColor = QBrush(pixmap); palette.setColor(QPalette::Background, QColor(0, 0, 0, 0)); this->setPalette(palette); } else { bgColor = Qt::transparent; } QPainterPath pp; pp.setFillRule(Qt::WindingFill); pp.addRect(rect()); painter.fillPath(pp, bgColor); } } deepin-movie-reborn-5.15.10/src/widgets/titlebar.h000066400000000000000000000034311473342170300217520ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 此文件实现标题栏相关 */ #ifndef DMR_TITLEBAR_H #define DMR_TITLEBAR_H #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { class TitlebarPrivate; /** * @brief The Titlebar class * 实现标题栏 */ class Titlebar : public DBlurEffectWidget { Q_OBJECT public: /** * @brief Titlebar 构造函数 * @param parent 父窗口 */ explicit Titlebar(QWidget *parent = 0); ~Titlebar(); /** * @brief titlebar 获取标题栏对象指针 * @return titlebar指针 */ DTitlebar *titlebar(); /** * @brief setTitletxt 设置标题栏文本 * @param title 标题栏文本 */ void setTitletxt(const QString &sTitle); /** * @brief setTitleBarBackground 设置标题栏背景是否为播放状态样式 * @param flag 传入是否为播放状态 */ void setTitleBarBackground(bool flag); /** * @brief setIcon设置标图标 * @param mp 图标 */ void setIcon(QPixmap& mp); public slots: //把lambda表达式改为槽函数,modify by myk /** * @brief slotThemeTypeChanged 主题变化事件槽函数 */ void slotThemeTypeChanged(); protected: /** * @brief paintEvent 绘制事件函数 * @param pPaintEvent 绘制事件 */ virtual void paintEvent(QPaintEvent *pPaintEvent) override; private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), Titlebar) }; } #endif /* ifndef DMR_TITLEBAR_H */ deepin-movie-reborn-5.15.10/src/widgets/toolbox_proxy.cpp000066400000000000000000003166141473342170300234400ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "config.h" #include "toolbox_proxy.h" #include "mainwindow.h" #include "compositing_manager.h" #include "player_engine.h" #include "toolbutton.h" #include "dmr_settings.h" #include "actions.h" #include "slider.h" #include "thumbnail_worker.h" #include "tip.h" #include "utils.h" #include "filefilter.h" #include "sysutils.h" //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../accessibility/ac-deepin-movie-define.h" static const int LEFT_MARGIN = 10; static const int RIGHT_MARGIN = 10; //static const int PROGBAR_SPEC = 10 + 120 + 17 + 54 + 10 + 54 + 10 + 170 + 10 + 20; static const QString SLIDER_ARROW = ":resources/icons/slider.svg"; #define POPUP_DURATION 350 DWIDGET_USE_NAMESPACE //thx wayland chuang kou bai kuai #define WAYLAND_BLACK_WINDOW \ do {\ auto systemEnv = QProcessEnvironment::systemEnvironment();\ QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE"));\ QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY"));\ if (XDG_SESSION_TYPE == QLatin1String("wayland") ||\ WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {\ auto colortype = DGuiApplicationHelper::instance()->themeType();\ if(colortype == DGuiApplicationHelper::LightType)\ {\ QPalette palette(qApp->palette());\ this->setAutoFillBackground(true);\ this->setPalette(palette);\ if(m_pPlaylist)\ {\ QPalette pal(qApp->palette());\ m_pPlaylist->setAutoFillBackground(true);\ m_pPlaylist->setPalette(pal);\ }\ if(m_pEngine )\ {\ QPalette pal(qApp->palette());\ m_pEngine->setAutoFillBackground(true);\ m_pEngine->setPalette(pal);\ }\ }\ else\ {\ QPalette palette(qApp->palette());\ palette.setColor(QPalette::Background,Qt::black);\ this->setAutoFillBackground(true);\ this->setPalette(palette);\ if(m_pPlaylist)\ {\ QPalette pal(qApp->palette());\ pal.setColor(QPalette::Background,Qt::black);\ m_pPlaylist->setAutoFillBackground(true);\ m_pPlaylist->setPalette(pal);\ }\ if(m_pEngine)\ {\ QPalette pal(qApp->palette());\ pal.setColor(QPalette::Background,Qt::black);\ m_pEngine->setAutoFillBackground(true);\ m_pEngine->setPalette(pal);\ }\ }\ }\ }while(0) #define THEME_TYPE(colortype) do { \ if (colortype == DGuiApplicationHelper::LightType){\ QColor backMaskColor(247, 247, 247);\ backMaskColor.setAlphaF(0.6);\ this->blurBackground()->setMaskColor(backMaskColor);\ bot_widget->setMaskColor(backMaskColor);\ } else if (colortype == DGuiApplicationHelper::DarkType){\ QColor backMaskColor(32, 32, 32);\ backMaskColor.setAlphaF(0.5);\ blurBackground()->setMaskColor(backMaskColor);\ bot_widget->setMaskColor(backMaskColor);\ }\ } while(0); namespace dmr { /** * @brief The TooltipHandler class * 鼠标悬停事件过滤器 */ class TooltipHandler: public QObject { public: /** * @brief TooltipHandler 构造函数 * @param parent 父窗口 */ explicit TooltipHandler(QObject *parent): QObject(parent) { connect(&m_showTime, &QTimer::timeout, [=]{ //QHelpEvent *he = static_cast(event); if (m_object != nullptr) { auto tip = m_object->property("HintWidget").value(); auto btn = tip->property("for").value(); tip->setText(btn->toolTip()); tip->show(); tip->raise(); tip->adjustSize(); QPoint pos = btn->parentWidget()->mapToGlobal(btn->pos()); pos.rx() = pos.x() + (btn->width() - tip->width()) / 2; pos.ry() = pos.y() - 40; tip->move(pos); } }); } protected: /** * @brief eventFilter 事件过滤器 * @param obj 事件对象 * @param event 事件 * @return 返回是否继续执行 */ bool eventFilter(QObject *obj, QEvent *event) { switch (event->type()) { case QEvent::ToolTip: case QEvent::Enter: { m_object = obj; if (!m_showTime.isActive()) m_showTime.start(1000); return true; } case QEvent::Leave: { m_object = nullptr; m_showTime.stop(); auto parent = obj->property("HintWidget").value(); parent->hide(); event->ignore(); break; } case QEvent::MouseMove: { QHelpEvent *he = static_cast(event); auto tip = obj->property("HintWidget").value(); tip->hide(); } default: break; } // standard event processing return QObject::eventFilter(obj, event); } private: QTimer m_showTime; QObject *m_object {nullptr}; }; /** * @brief The SliderTime class 进度条事件显示类 */ class SliderTime: public DArrowRectangle { Q_OBJECT public: /** * @brief SliderTime 构造函数 */ SliderTime(): DArrowRectangle(DArrowRectangle::ArrowBottom) { initMember(); //setFocusPolicy(Qt::NoFocus); setAttribute(Qt::WA_DeleteOnClose); setWindowFlag(Qt::WindowStaysOnTopHint); resize(m_miniSize); setRadius(8); setArrowWidth(10); setArrowHeight(5); const QPalette pal = QGuiApplication::palette(); QColor bgColor = pal.color(QPalette::Highlight); setBorderWidth(1); setBorderColor(bgColor); setBackgroundColor(bgColor); QHBoxLayout *layout = new QHBoxLayout; layout->setContentsMargins(0, 0, 0, 5); m_pTime = new DLabel(this); m_pTime->setAlignment(Qt::AlignCenter); // _time->setFixedSize(_size); m_pTime->setForegroundRole(DPalette::Text); DPalette pa = DApplicationHelper::instance()->palette(m_pTime); QColor color = pa.textLively().color(); qInfo() << color.name(); pa.setColor(DPalette::Text, color); m_pTime->setPalette(pa); m_pTime->setFont(DFontSizeManager::instance()->get(DFontSizeManager::T8)); layout->addWidget(m_pTime, Qt::AlignCenter); setLayout(layout); connect(qApp, &QGuiApplication::fontChanged, this, &SliderTime::slotFontChanged); } /** * @brief setTime 设置时间 * @param time 时间 */ void setTime(const QString &time) { m_pTime->setText(time); if (!m_bFontChanged) { QFontMetrics fontMetrics(DFontSizeManager::instance()->get(DFontSizeManager::T8)); m_pTime->setFixedSize(fontMetrics.width(m_pTime->text()) + 5, fontMetrics.height()); } else { QFontMetrics fontMetrics(m_font); m_pTime->setFont(m_font); m_pTime->setFixedSize(fontMetrics.width(m_pTime->text()) + 10, fontMetrics.height()); } this->setWidth(m_pTime->width()); this->setHeight(m_pTime->height() + 5); this->setMinimumSize(m_miniSize); } public slots: /** * @brief slotFontChanged 字体变化槽函数 * @param font 字体 */ void slotFontChanged(const QFont &font) { m_font = font; m_bFontChanged = true; } private: /** * @brief initMember 初始化成员变量 */ void initMember() { m_pTime = nullptr; m_miniSize = QSize(58, 25); m_font = {QFont()}; m_bFontChanged = false; } DLabel *m_pTime; QSize m_miniSize; QFont m_font; bool m_bFontChanged; }; /** * @brief The ViewProgBar class 胶片模式窗口 */ class ViewProgBar: public DWidget { Q_OBJECT public: /** * @brief ViewProgBar 构造函数 * @param m_pProgBar 进度条 * @param parent 父窗口 */ ViewProgBar(DMRSlider *m_pProgBar, QWidget *parent = nullptr) { initMemeber(); //传入进度条,以便重新获取胶片进度条长度 by ZhuYuliang this->m_pProgBar = m_pProgBar; _parent = parent; setFixedHeight(70); m_bIsBlockSignals = false; setMouseTracking(true); m_pBack = new QWidget(this); m_pBack->setFixedHeight(60); m_pBack->setFixedWidth(this->width()); m_pBack->setContentsMargins(0, 0, 0, 0); m_pFront = new QWidget(this); m_pFront->setFixedHeight(60); m_pFront->setFixedWidth(0); m_pFront->setContentsMargins(0, 0, 0, 0); m_pIndicator = new IndicatorItem(this); m_pIndicator->setObjectName("indicator"); m_pSliderTime = new SliderTime; m_pSliderTime->hide(); QMatrix matrix; matrix.rotate(180); QPixmap pixmap = utils::LoadHiDPIPixmap(SLIDER_ARROW); m_pSliderArrowUp = new DArrowRectangle(DArrowRectangle::ArrowTop); //m_pSliderArrowUp->setFocusPolicy(Qt::NoFocus); m_pSliderArrowUp->setAttribute(Qt::WA_DeleteOnClose); m_pSliderArrowUp->setWindowFlag(Qt::WindowStaysOnTopHint); m_pSliderArrowUp->setArrowWidth(10); m_pSliderArrowUp->setArrowHeight(7); const QPalette pa = QGuiApplication::palette(); QColor bgColor = pa.color(QPalette::Highlight); m_pSliderArrowUp->setBackgroundColor(bgColor); m_pSliderArrowUp->setFixedSize(10, 7); m_pSliderArrowUp->hide(); m_pSliderArrowDown = new DLabel(this); m_pSliderArrowDown->setFixedSize(20, 18); m_pSliderArrowDown->setPixmap(pixmap.transformed(matrix, Qt::SmoothTransformation)); m_pSliderArrowDown->hide(); m_pBack->setMouseTracking(true); m_pFront->setMouseTracking(true); m_pIndicator->setMouseTracking(true); m_pViewProgBarLayout = new QHBoxLayout(m_pBack); m_pViewProgBarLayout->setContentsMargins(0, 5, 0, 5); m_pBack->setLayout(m_pViewProgBarLayout); m_pViewProgBarLayout_black = new QHBoxLayout(m_pFront); m_pViewProgBarLayout_black->setContentsMargins(0, 5, 0, 5); m_pFront->setLayout(m_pViewProgBarLayout_black); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedHeight(46); m_pBack->setFixedHeight(40); m_pFront->setFixedHeight(40); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedHeight(70); m_pBack->setFixedHeight(60); m_pFront->setFixedHeight(60); } else { setFixedHeight(46); m_pBack->setFixedHeight(40); m_pFront->setFixedHeight(40); } }); #endif } // virtual ~ViewProgBar(); void setIsBlockSignals(bool isBlockSignals) { m_bIsBlockSignals = isBlockSignals; } bool getIsBlockSignals() { return m_bPress ? true: m_bIsBlockSignals; } void setValue(int v) { if (v < m_nStartPoint) { v = m_nStartPoint; } else if (v > (m_nStartPoint + m_nViewLength)) { v = (m_nStartPoint + m_nViewLength); } m_IndicatorPos = {v, rect().y()}; update(); } int getValue() { return m_pIndicator->x(); } int getTimePos() { return position2progress(QPoint(m_pIndicator->x(), 0)); } void setTime(qint64 pos) { QTime time(0, 0, 0); QString strTime = time.addSecs(static_cast(pos)).toString("hh:mm:ss"); m_pSliderTime->setTime(strTime); } void setTimeVisible(bool visible) { if (visible) { auto pos = this->mapToGlobal(QPoint(0, 0)); m_pSliderTime->show(pos.x() + m_IndicatorPos.x() + 1, pos.y() + m_IndicatorPos.y() + 4); } else { m_pSliderTime->hide(); } } /** * @brief setViewProgBar 设置胶片模式位置 * @param pEngine 播放引擎对象指针 * @param pmList 彩色胶片图像列表 * @param pmBlackList 灰色胶片图像列表 */ void setViewProgBar(PlayerEngine *pEngine, QList pmList, QList pmBlackList) { m_pEngine = pEngine; m_pViewProgBarLayout->setAlignment(Qt::AlignHCenter | Qt::AlignTop); m_pViewProgBarLayout->setSpacing(1); /*这段代码将胶片添加到两个label中,一个label置灰,一个彩色,通过光标调整两个label的位置 *以实现通过光标来显示播放过的位置 */ int nPixWidget = 40/*m_pProgBar->width() / 100*/; int npixHeight = 50; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::SizeMode::CompactMode) { nPixWidget = nPixWidget * 0.66; npixHeight = npixHeight * 0.66; } #endif m_nViewLength = (nPixWidget + 1) * pmList.count() - 1; m_nStartPoint = (m_pProgBar->width() - m_nViewLength) / 2; //开始位置 for (int i = 0; i < pmList.count(); i++) { ImageItem *label = new ImageItem(pmList.at(i), false, m_pBack); label->setMouseTracking(true); label->move(i * (nPixWidget + 1) + m_nStartPoint, 5); label->setFixedSize(nPixWidget, npixHeight); ImageItem *label_black = new ImageItem(pmBlackList.at(i), true, m_pFront); label_black->setMouseTracking(true); label_black->move(i * (nPixWidget + 1) + m_nStartPoint, 5); label_black->setFixedSize(nPixWidget, npixHeight); } update(); } void clear() { foreach (QLabel *label, m_pFront->findChildren()) { if (label) { label->deleteLater(); label = nullptr; } } foreach (QLabel *label, m_pBack->findChildren()) { if (label) { label->deleteLater(); label = nullptr; } } m_pSliderTime->setVisible(false); m_pSliderArrowDown->setVisible(false); m_pSliderArrowUp->setVisible(false); // 清除状态时还原初始显示状态 m_bPress = false; m_pIndicator->setPressed(m_bPress); } int getViewLength() { return m_nViewLength; } int getStartPoint() { return m_nStartPoint; } private: void changeStyle(bool press) { if (!isVisible()) return; if (press) { m_pIndicator->setPressed(press); } else { m_pIndicator->setPressed(press); } } signals: void leave(); void hoverChanged(int); void sliderMoved(int); void mousePressed(bool pressed); protected: void leaveEvent(QEvent *e) override { emit leave(); DWidget::leaveEvent(e); } void showEvent(QShowEvent *se) override { DWidget::showEvent(se); } void mouseMoveEvent(QMouseEvent *e) override { if (!isEnabled()) return; if (e->pos().x() >= 0 && e->pos().x() <= contentsRect().width()) { int v = position2progress(e->pos()); if (e->buttons() & Qt::LeftButton) { int distance = (e->pos() - m_startPos).manhattanLength(); if (distance >= QApplication::startDragDistance()) { emit sliderMoved(v); emit hoverChanged(v); emit mousePressed(true); setValue(e->pos().x()); setTime(v); repaint(); } } else { if (m_nVlastHoverValue != v) { emit hoverChanged(v); } m_nVlastHoverValue = v; } } e->accept(); } void mousePressEvent(QMouseEvent *e) override { if (!m_bPress && e->buttons() == Qt::LeftButton && isEnabled()) { m_startPos = e->pos(); int v = position2progress(e->pos()); emit sliderMoved(v); emit hoverChanged(v); emit mousePressed(true); setValue(e->pos().x()); changeStyle(!m_bPress); m_bPress = !m_bPress; } } void mouseReleaseEvent(QMouseEvent *e) override { emit mousePressed(false); if (m_bPress && isEnabled()) { changeStyle(!m_bPress); m_bPress = !m_bPress; //鼠标释放时seek视频位置。 int v = position2progress(e->pos()); m_pEngine->seekAbsolute(v); } m_pSliderArrowUp->setVisible(m_bPress); setTimeVisible(m_bPress); DWidget::mouseReleaseEvent(e); } void paintEvent(QPaintEvent *e) override { m_pIndicator->move(m_IndicatorPos.x(), m_IndicatorPos.y()); QPoint pos = this->mapToGlobal(QPoint(0, 0)); m_pSliderArrowUp->move(pos.x() + m_IndicatorPos.x() + 1, pos.y() + m_pIndicator->height() - 5); m_pFront->setFixedWidth(m_IndicatorPos.x()); m_pSliderArrowUp->setVisible(m_bPress); setTimeVisible(m_bPress); DWidget::paintEvent(e); } void resizeEvent(QResizeEvent *event) override { m_pBack->setFixedWidth(this->width()); DWidget::resizeEvent(event); } private: int position2progress(const QPoint &p) { int nPosition = 0; if (!m_pEngine) { return 0; } if (p.x() < m_nStartPoint) { nPosition = m_nStartPoint; } else if (p.x() > (m_nViewLength + m_nStartPoint)) { nPosition = (m_nViewLength + m_nStartPoint); } else { nPosition = p.x(); } auto total = m_pEngine->duration(); int span = static_cast(total * (nPosition - m_nStartPoint) / m_nViewLength); return span/* * (p.x())*/; } void initMemeber() { m_pEngine = nullptr; _parent = nullptr; // m_pViewProgBarLoad = nullptr; m_pBack = nullptr; m_pFront = nullptr; m_pIndicator = nullptr; m_pSliderTime = nullptr; m_pSliderArrowDown = nullptr; m_pSliderArrowUp = nullptr; m_pIndicatorLayout = nullptr; m_pViewProgBarLayout = nullptr; m_pViewProgBarLayout_black = nullptr; m_pProgBar = nullptr; m_nViewLength = 0; m_nStartPoint = 0; m_nVlastHoverValue = 0; m_startPos = QPoint(0, 0); m_IndicatorPos = QPoint(0, 0); m_bPress = false; m_bIsBlockSignals = false; } PlayerEngine *m_pEngine; QWidget *_parent; int m_nVlastHoverValue; QPoint m_startPos; bool m_bIsBlockSignals; QPoint m_IndicatorPos; QColor _indicatorColor; // viewProgBarLoad *m_pViewProgBarLoad; QWidget *m_pBack; QWidget *m_pFront; IndicatorItem *m_pIndicator; SliderTime *m_pSliderTime; DLabel *m_pSliderArrowDown; DArrowRectangle *m_pSliderArrowUp; bool m_bPress; QHBoxLayout *m_pIndicatorLayout; QHBoxLayout *m_pViewProgBarLayout; QHBoxLayout *m_pViewProgBarLayout_black; DMRSlider *m_pProgBar; int m_nViewLength; int m_nStartPoint; }; class ThumbnailPreview: public QWidget { Q_OBJECT public: ThumbnailPreview() { setAttribute(Qt::WA_DeleteOnClose); // FIXME(hualet): Qt::Tooltip will cause Dock to show up even // the player is in fullscreen mode. setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); setObjectName("ThumbnailPreview"); resize(0, 0); m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &ThumbnailPreview::slotWMChanged); if (m_bIsWM) { DStyle::setFrameRadius(this, 8); } else { DStyle::setFrameRadius(this, 0); } m_shadow_effect = new QGraphicsDropShadowEffect(this); } void updateWithPreview(const QPixmap &pm, qint64 secs, int rotation) { QPixmap rounded; if (m_bIsWM) { rounded = utils::MakeRoundedPixmap(pm, 4, 4, rotation); } else { rounded = pm; } if (rounded.width() == 0) return; if (rounded.width() > rounded.height()) { static int roundedH = static_cast( (static_cast(m_thumbnailFixed) / static_cast(rounded.width())) * rounded.height()); QSize size(m_thumbnailFixed, roundedH); resizeThumbnail(rounded, size); } else { static int roundedW = static_cast( (static_cast(m_thumbnailFixed) / static_cast(rounded.height())) * rounded.width()); QSize size(roundedW, m_thumbnailFixed); resizeThumbnail(rounded, size); } QImage image; QPalette palette; image = rounded.toImage(); m_thumbImg = image; update(); } void updateWithPreview(const QPoint &pos) { move(pos.x() - this->width() / 2, pos.y() - this->height() + 10); if(geometry().isValid()) { show(); } } public slots: void slotWMChanged() { m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); if (m_bIsWM) { DStyle::setFrameRadius(this, 8); } else { DStyle::setFrameRadius(this, 0); } } signals: void leavePreview(); protected: void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE{ m_shadow_effect->setOffset(0, 0); m_shadow_effect->setColor(Qt::gray); m_shadow_effect->setBlurRadius(8); setGraphicsEffect(m_shadow_effect); QPainter painter(this); QPainterPath path; QRect rt = rect().marginsRemoved(QMargins(1, 1, 1, 1)); if (!m_bIsWM) { path.addRect(rect()); painter.fillPath(path, QColor(230, 230, 230)); } else { path.addRoundRect(rt, 20, 20); painter.setRenderHints(QPainter::Antialiasing, true); } painter.setClipPath(path); if(!m_thumbImg.isNull()) painter.drawImage(rt, m_thumbImg, QRect(0, 0, m_thumbImg.width(), m_thumbImg.height())); QWidget::paintEvent(e); } void leaveEvent(QEvent *e) override { emit leavePreview(); } void showEvent(QShowEvent *se) override { QWidget::showEvent(se); } private: void resizeThumbnail(QPixmap &pixmap, const QSize &size) { auto dpr = qApp->devicePixelRatio(); pixmap.setDevicePixelRatio(dpr); pixmap = pixmap.scaled(size * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); pixmap.setDevicePixelRatio(dpr); int offect = 2; if (!m_bIsWM) { offect = 0; } this->setFixedWidth(size.width() + offect); this->setFixedHeight(size.height() + offect); } private: QImage m_thumbImg; int m_thumbnailFixed = 106; QGraphicsDropShadowEffect *m_shadow_effect{nullptr}; bool m_bIsWM{false}; }; void viewProgBarLoad::initThumb() { QLibrary library(SysUtils::libPath("libffmpegthumbnailer.so")); m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create"); m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy"); m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data"); m_mvideo_thumbnailer_destroy_image_data = (mvideo_thumbnailer_destroy_image_data) library.resolve("video_thumbnailer_destroy_image_data"); m_mvideo_thumbnailer_generate_thumbnail_to_buffer = (mvideo_thumbnailer_generate_thumbnail_to_buffer) library.resolve("video_thumbnailer_generate_thumbnail_to_buffer"); if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr || m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr || m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr) { return; } m_video_thumbnailer = m_mvideo_thumbnailer(); } void viewProgBarLoad::initMember() { m_pEngine = nullptr; m_pParent = nullptr; m_pProgBar = nullptr; m_pListPixmapMutex = nullptr; } void viewProgBarLoad::loadViewProgBar(QSize size) { int pixWidget = 40; int num = int(m_pProgBar->width() / (40 + 1)); //number of thumbnails #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { num = int(m_pProgBar->width() / (26 + 1)); } #endif int tmp = (num == 0) ? 0: (m_pEngine->duration() * 1000) / num; QList pmList; QList pmBlackList; QTime time(0, 0, 0, 0); if (m_pEngine->videoSize().width() > 0 && m_pEngine->videoSize().height() > 0) { m_video_thumbnailer->thumbnail_size = (static_cast(50 * (m_pEngine->videoSize().width() / m_pEngine->videoSize().height() * 50) * qApp->devicePixelRatio())); } if (m_image_data == nullptr) { m_image_data = m_mvideo_thumbnailer_create_image_data(); } // m_video_thumbnailer->seek_time = d.toString("hh:mm:ss").toLatin1().data(); int length = strlen(time.toString("hh:mm:ss").toLatin1().data()); memcpy(m_seekTime, time.toString("hh:mm:ss").toLatin1().data(), length + 1); m_video_thumbnailer->seek_time = m_seekTime; auto url = m_pEngine->playlist().currentInfo().url; auto file = QFileInfo(url.toLocalFile()).absoluteFilePath(); bool command = false; if(m_pEngine->duration() < 300) { QProcess process; process.setProgram("ffmpeg"); QStringList options; options << "-c" << QString("ffprobe -v quiet -show_frames %1 | grep \"pict_type=I\" | wc -l").arg(url.toLocalFile()); process.start("/bin/bash", options); process.waitForFinished(); process.waitForReadyRead(); QString comStr = process.readAllStandardOutput(); QString str = comStr.trimmed(); int pictI = str.toInt(); if (pictI < 5) command = true; process.close(); } if (command) { QDir dir; dir.mkpath("/tmp/Movie/"); dir.cd("/tmp/Movie/"); QProcess process; process.setProgram("ffmpeg"); QStringList argList; argList << "-i" << url.toLocalFile() << "-r" << QString("%1/%2").arg(num).arg(m_pEngine->duration()) << "-f" << "image2" << "/tmp/Movie/image-%05d.jpg"; process.setArguments(argList); process.start(); process.waitForFinished(); dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); //设置过滤 QFileInfoList fileList = dir.entryInfoList(); // 获取所有的文件信息 foreach (QFileInfo fileInfo, fileList) { if (fileInfo.isFile()) { QImage img(fileInfo.absoluteFilePath()); auto img_tmp = img.scaledToHeight(50); pmList.append(QPixmap::fromImage(img_tmp.copy(((img.width() * 50 / img.height()) - pixWidget) / 2, 0, pixWidget, 50))); //-2 为了1px的内边框 QImage img_black = img_tmp.convertToFormat(QImage::Format_Grayscale8); pmBlackList.append(QPixmap::fromImage(img_black.copy(((img.width() * 50 / img.height()) - pixWidget) / 2, 0, pixWidget, 50))); } } dir.removeRecursively(); } else { for (auto i = 0; i < num ; i++) { if (isInterruptionRequested()) { qInfo() << "isInterruptionRequested"; return; } time = time.addMSecs(tmp); // m_video_thumbnailer->seek_time = d.toString("hh:mm:ss").toLatin1().data(); memcpy(m_seekTime, time.toString("hh:mm:ss").toLatin1().data(), length + 1); m_video_thumbnailer->seek_time = m_seekTime; try { m_mvideo_thumbnailer_generate_thumbnail_to_buffer(m_video_thumbnailer, file.toUtf8().data(), m_image_data); auto img = QImage::fromData(m_image_data->image_data_ptr, static_cast(m_image_data->image_data_size), "png"); if (img.format() == QImage::Format_Invalid) { return; } auto img_tmp = img.scaledToHeight(50); pmList.append(QPixmap::fromImage(img_tmp.copy(img_tmp.size().width() / 2 - 4, 0, pixWidget, 50))); //-2 为了1px的内边框 QImage img_black = img_tmp.convertToFormat(QImage::Format_Grayscale8); pmBlackList.append(QPixmap::fromImage(img_black.copy(img_black.size().width() / 2 - 4, 0, pixWidget, 50))); } catch (const std::logic_error &) { } } m_mvideo_thumbnailer_destroy_image_data(m_image_data); m_image_data = nullptr; } m_pListPixmapMutex->lock(); m_pParent->addpmList(pmList); m_pParent->addpmBlackList(pmBlackList); m_pListPixmapMutex->unlock(); emit sigFinishiLoad(size); // emit finished(); } /** * @brief ToolboxProxy 构造函数 * @param mainWindow 主窗口 * @param pPlayerEngine 播放引擎对象指针 */ ToolboxProxy::ToolboxProxy(QWidget *mainWindow, PlayerEngine *proxy) : DFloatingWidget(mainWindow), m_pMainWindow(static_cast(mainWindow)), m_pEngine(proxy) { initMember(); if (utils::check_wayland_env()) { m_bThumbnailmode = false; } m_pPreviewer = new ThumbnailPreview; m_pPreviewTime = new SliderTime; m_pPreviewTime->hide(); m_mircastWidget = new MircastWidget(mainWindow, proxy); m_mircastWidget->hide(); m_pListWgt = new PlaylistBack(mainWindow); m_pListWgt->hide(); setup(); slotThemeTypeChanged(); connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, &ToolboxProxy::updatePlayState); connect(m_mircastWidget, &MircastWidget::updatePlayStatus, this, &ToolboxProxy::updatePlayState); connect(m_mircastWidget, &MircastWidget::updateTime, this, &ToolboxProxy::updateMircastTime, Qt::QueuedConnection); } void ToolboxProxy::finishLoadSlot(QSize size) { qInfo() << "thumbnail has finished"; if (m_pmList.isEmpty()) return; if (!m_bThumbnailmode) { return; } m_pViewProgBar->setViewProgBar(m_pEngine, m_pmList, m_pmBlackList); if(CompositingManager::get().platform() == Platform::X86) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { PlayItemInfo info = m_pEngine->playlist().currentInfo(); if (!info.url.isLocalFile()) { return; } m_pProgBar_Widget->setCurrentIndex(2); } } } void ToolboxProxy::setthumbnailmode() { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { return; } if(CompositingManager::get().platform() == Platform::X86 && CompositingManager::isMpvExists()) { if (Settings::get().isSet(Settings::ShowThumbnailMode)) { m_bThumbnailmode = true; updateThumbnail(); } else { m_bThumbnailmode = false; updateMovieProgress(); m_pProgBar_Widget->setCurrentIndex(1); //恢复进度条模式 by zhuyuliang } } else { //no thunbnail progress bar is loaded except amd plantform m_bThumbnailmode = false; updateMovieProgress(); } } void ToolboxProxy::setup() { QStackedLayout *stacked = new QStackedLayout(this); stacked->setContentsMargins(0, 0, 0, 0); stacked->setStackingMode(QStackedLayout::StackAll); setLayout(stacked); this->setBlurBackgroundEnabled(true); this->blurBackground()->setRadius(30); this->blurBackground()->setBlurEnabled(true); this->blurBackground()->setMode(DBlurEffectWidget::GaussianBlur); bot_widget = new DBlurEffectWidget(this); bot_widget->setObjectName(BOTTOM_WIDGET); bot_widget->setBlurRectXRadius(18); bot_widget->setBlurRectYRadius(18); bot_widget->setRadius(30); bot_widget->setBlurEnabled(true); bot_widget->setMode(DBlurEffectWidget::GaussianBlur); auto type = DGuiApplicationHelper::instance()->themeType(); THEME_TYPE(type); connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, &ToolboxProxy::slotThemeTypeChanged); bot_widget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); QVBoxLayout *botv = new QVBoxLayout(bot_widget); botv->setContentsMargins(0, 0, 0, 0); botv->setSpacing(10); botv->setAlignment(Qt::AlignVCenter); m_pBotSpec = new QWidget(bot_widget); m_pBotSpec->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); m_pBotSpec->setFixedWidth(width()); m_pBotSpec->setVisible(false); botv->addWidget(m_pBotSpec); botv->addStretch(); m_pBotToolWgt = new QWidget(bot_widget); m_pBotToolWgt->setObjectName(BOTTOM_TOOL_BUTTON_WIDGET); m_pBotToolWgt->setFixedHeight(TOOLBOX_HEIGHT - 12); m_pBotToolWgt->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); QHBoxLayout *bot_layout = new QHBoxLayout(m_pBotToolWgt); bot_layout->setContentsMargins(LEFT_MARGIN, 0, RIGHT_MARGIN, 0); bot_layout->setSpacing(0); bot_layout->setAlignment(Qt::AlignVCenter); m_pBotToolWgt->setLayout(bot_layout); botv->addWidget(m_pBotToolWgt); bot_widget->setLayout(botv); stacked->addWidget(bot_widget); m_pTimeLabel = new QLabel(m_pBotToolWgt); m_pTimeLabel->setAlignment(Qt::AlignCenter); m_pFullscreentimelable = new QLabel(""); m_pFullscreentimelable->setAttribute(Qt::WA_DeleteOnClose); m_pFullscreentimelable->setForegroundRole(DPalette::Text); DFontSizeManager::instance()->bind(m_pTimeLabel, DFontSizeManager::T6); m_pTimeLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); m_pFullscreentimelable->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pFullscreentimelable, DFontSizeManager::T6); m_pTimeLabelend = new QLabel(m_pBotToolWgt); m_pTimeLabelend->setAlignment(Qt::AlignCenter); m_pFullscreentimelableend = new QLabel(""); m_pFullscreentimelableend->setAttribute(Qt::WA_DeleteOnClose); m_pFullscreentimelableend->setForegroundRole(DPalette::Text); m_pTimeLabelend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pTimeLabelend, DFontSizeManager::T6); m_pFullscreentimelableend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); DFontSizeManager::instance()->bind(m_pFullscreentimelableend, DFontSizeManager::T6); m_pProgBar = new DMRSlider(m_pBotToolWgt); m_pProgBar->setObjectName(MOVIE_PROGRESS_WIDGET); m_pProgBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBar->slider()->setObjectName(PROGBAR_SLIDER); m_pProgBar->slider()->setAccessibleName(PROGBAR_SLIDER); m_pProgBar->slider()->setOrientation(Qt::Horizontal); m_pProgBar->slider()->setFocusPolicy(Qt::TabFocus); m_pProgBar->slider()->setRange(0, 100); m_pProgBar->setValue(0); m_pProgBar->setEnableIndication(m_pEngine->state() != PlayerEngine::Idle); connect(m_pProgBar, &DMRSlider::sigUnsupported, this, &ToolboxProxy::sigUnsupported); connect(m_pPreviewer, &ThumbnailPreview::leavePreview, this, &ToolboxProxy::slotLeavePreview); connect(&Settings::get(), &Settings::baseChanged, this, &ToolboxProxy::setthumbnailmode); connect(m_pEngine, &PlayerEngine::siginitthumbnailseting, this, &ToolboxProxy::setthumbnailmode); //刷新显示预览当前时间的label connect(m_pProgBar, &DMRSlider::hoverChanged, this, &ToolboxProxy::progressHoverChanged); connect(m_pProgBar, &DMRSlider::sliderMoved, this, &ToolboxProxy::progressHoverChanged); connect(m_pProgBar, &DMRSlider::leave, this, &ToolboxProxy::slotHidePreviewTime); connect(m_pProgBar, &DMRSlider::sliderPressed, this, &ToolboxProxy::slotSliderPressed); connect(m_pProgBar, &DMRSlider::sliderReleased, this, &ToolboxProxy::slotSliderReleased); connect(&Settings::get(), &Settings::baseMuteChanged, this, &ToolboxProxy::slotBaseMuteChanged); m_pViewProgBar = new ViewProgBar(m_pProgBar, m_pBotToolWgt); //刷新显示预览当前时间的label connect(m_pViewProgBar, &ViewProgBar::hoverChanged, this, &ToolboxProxy::progressHoverChanged); connect(m_pViewProgBar, &ViewProgBar::leave, this, &ToolboxProxy::slotHidePreviewTime); connect(m_pViewProgBar, &ViewProgBar::mousePressed, this, &ToolboxProxy::updateTimeVisible); QSignalMapper *signalMapper = new QSignalMapper(this); connect(signalMapper, static_cast(&QSignalMapper::mapped), this, &ToolboxProxy::buttonClicked); _mid = new QHBoxLayout(m_pBotToolWgt); _mid->setContentsMargins(0, 0, 0, 0); _mid->setSpacing(0); _mid->setAlignment(Qt::AlignLeft); bot_layout->addLayout(_mid); QHBoxLayout *time = new QHBoxLayout(m_pBotToolWgt); time->setContentsMargins(11, 9, 11, 9); time->setSpacing(0); time->setAlignment(Qt::AlignLeft); bot_layout->addLayout(time); time->addWidget(m_pTimeLabel); QHBoxLayout *progBarspec = new QHBoxLayout(m_pBotToolWgt); progBarspec->setContentsMargins(0, 5, 0, 0); progBarspec->setSpacing(0); progBarspec->setAlignment(Qt::AlignHCenter); if (utils::check_wayland_env()) { //lmh0706,延时 connect(m_pNextBtn, &DButtonBoxButton::clicked, this, &ToolboxProxy::waitPlay); connect(m_pPlayBtn, &DButtonBoxButton::clicked, this, &ToolboxProxy::waitPlay); connect(m_pPrevBtn, &DButtonBoxButton::clicked, this, &ToolboxProxy::waitPlay); } m_pProgBar_Widget = new QStackedWidget(m_pBotToolWgt); m_pProgBar_Widget->setObjectName(PROGBAR_WIDGET); m_pProgBar_Widget->setAccessibleName(PROGBAR_WIDGET); m_pProgBar_Widget->setContentsMargins(0, 0, 0, 0); m_pProgBar_Widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBarspec = new DWidget(m_pProgBar_Widget); m_pProgBarspec->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); m_pProgBar_Widget->addWidget(m_pProgBarspec); m_pProgBar_Widget->addWidget(m_pProgBar); m_pProgBar_Widget->addWidget(m_pViewProgBar); m_pProgBar_Widget->setCurrentIndex(0); progBarspec->addWidget(m_pProgBar_Widget); bot_layout->addLayout(progBarspec); QHBoxLayout *timeend = new QHBoxLayout(m_pBotToolWgt); timeend->setContentsMargins(10, 10, 10, 10); timeend->setSpacing(0); timeend->setAlignment(Qt::AlignRight); bot_layout->addLayout(timeend); timeend->addWidget(m_pTimeLabelend); m_pPalyBox = new DButtonBox(m_pBotToolWgt); m_pPalyBox->setFixedWidth(120); m_pPalyBox->setObjectName(PLAY_BUTTOB_BOX); m_pPalyBox->setFocusPolicy(Qt::NoFocus); _mid->addWidget(m_pPalyBox); _mid->setAlignment(m_pPalyBox, Qt::AlignLeft); QList list; m_pPrevBtn = new ButtonBoxButton("", this); m_pPlayBtn = new ButtonBoxButton("", this); m_pNextBtn = new ButtonBoxButton("", this); m_pPrevBtn->setIcon(QIcon::fromTheme("dcc_last", QIcon(":/icons/deepin/builtin/light/normal/last_normal.svg"))); m_pPrevBtn->setIconSize(QSize(36, 36)); m_pPrevBtn->setFixedSize(40, 50); m_pPrevBtn->setObjectName(PREV_BUTTON); m_pPrevBtn->setAccessibleName(PREV_BUTTON); m_pPrevBtn->setFocusPolicy(Qt::TabFocus); connect(m_pPrevBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pPrevBtn, "prev"); list.append(m_pPrevBtn); m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_play", QIcon(":/icons/deepin/builtin/light/normal/play_normal.svg"))); m_pPlayBtn->setIconSize(QSize(36, 36)); m_pPlayBtn->setFixedSize(40, 50); m_pPlayBtn->setFocusPolicy(Qt::TabFocus); m_pPlayBtn->setObjectName(PLAY_BUTTON); m_pPlayBtn->setAccessibleName(PLAY_BUTTON); connect(m_pPlayBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pPlayBtn, "play"); list.append(m_pPlayBtn); m_pNextBtn->setIcon(QIcon::fromTheme("dcc_next", QIcon(":/icons/deepin/builtin/light/normal/next_normal.svg"))); m_pNextBtn->setIconSize(QSize(36, 36)); m_pNextBtn->setFixedSize(40, 50); m_pNextBtn->setFocusPolicy(Qt::TabFocus); m_pNextBtn->setObjectName(NEXT_BUTTON); m_pNextBtn->setAccessibleName(NEXT_BUTTON); connect(m_pNextBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pNextBtn, "next"); list.append(m_pNextBtn); m_pPalyBox->setButtonList(list, false); _right = new QHBoxLayout(m_pBotToolWgt); _right->setContentsMargins(0, 0, 0, 0); _right->setSpacing(0); bot_layout->addLayout(_right); m_pFullScreenBtn = new ToolButton(m_pBotToolWgt); m_pFullScreenBtn->setObjectName(FS_BUTTON); m_pFullScreenBtn->setAccessibleName(FS_BUTTON); m_pFullScreenBtn->setFocusPolicy(Qt::TabFocus); m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomin")); m_pFullScreenBtn->setIconSize(QSize(36, 36)); m_pFullScreenBtn->setFixedSize(50, 50); m_pFullScreenBtn->initToolTip(); connect(m_pFullScreenBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pFullScreenBtn, "fs"); m_pVolBtn = new VolumeButton(m_pBotToolWgt); m_pVolBtn->installEventFilter(this); m_pVolBtn->setFixedSize(50, 50); m_pVolBtn->setFocusPolicy(Qt::TabFocus); m_pVolBtn->setObjectName(VOLUME_BUTTON); m_pVolBtn->setAccessibleName(VOLUME_BUTTON); m_pVolSlider = new VolumeSlider(m_pMainWindow, m_pMainWindow); m_pVolSlider->setObjectName(VOLUME_SLIDER_WIDGET); connect(m_pVolBtn, &VolumeButton ::sigUnsupported, this, &ToolboxProxy::sigUnsupported); connect(m_pVolBtn, &VolumeButton::clicked, this, &ToolboxProxy::slotVolumeButtonClicked); connect(m_pVolBtn, &VolumeButton::leaved, m_pVolSlider, &VolumeSlider::delayedHide); connect(m_pVolSlider, &VolumeSlider::sigVolumeChanged, this, &ToolboxProxy::slotVolumeChanged); connect(m_pVolSlider, &VolumeSlider::sigMuteStateChanged, this, &ToolboxProxy::slotMuteStateChanged); connect(m_pVolBtn, &VolumeButton::requestVolumeUp, m_pVolSlider, &VolumeSlider::volumeUp); connect(m_pVolBtn, &VolumeButton::requestVolumeDown, m_pVolSlider, &VolumeSlider::volumeDown); m_pVolSlider->initVolume(); _right->addWidget(m_pFullScreenBtn); _right->addSpacing(10); _right->addWidget(m_pVolBtn); _right->addSpacing(10); m_pMircastBtn = new ToolButton(m_pBotToolWgt); m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast", QIcon(":/resources/icons/mircast/mircast.svg"))); m_pMircastBtn->setIconSize(QSize(24, 24)); m_pMircastBtn->installEventFilter(this); m_pMircastBtn->setCheckable(true); m_pMircastBtn->setFixedSize(50, 50); m_pMircastBtn->setFocusPolicy(Qt::TabFocus); m_pMircastBtn->initToolTip(); m_pMircastBtn->setObjectName(MIRVAST_BUTTON); m_pMircastBtn->setAccessibleName(MIRVAST_BUTTON); connect(m_pMircastBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pMircastBtn, "mircast"); connect(m_mircastWidget, &MircastWidget::mircastState, this, &ToolboxProxy::slotUpdateMircast); _right->addWidget(m_pMircastBtn); _right->addSpacing(10); m_pListBtn = new ToolButton(m_pBotToolWgt); m_pListBtn->setIcon(QIcon::fromTheme("dcc_episodes")); m_pListBtn->setIconSize(QSize(36, 36)); m_pListBtn->setFocusPolicy(Qt::TabFocus); m_pListBtn->setFixedSize(50, 50); m_pListBtn->initToolTip(); m_pListBtn->setCheckable(true); m_pListBtn->setObjectName(PLAYLIST_BUTTON); m_pListBtn->setAccessibleName(PLAYLIST_BUTTON); m_pListBtn->installEventFilter(this); connect(m_pListBtn, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(m_pListBtn, "list"); _right->addWidget(m_pListBtn); //将进度条的Tab键次序移动到nextBtn之后 setTabOrder(m_pNextBtn, m_pProgBar->slider()); // these tooltips is not used due to deepin ui design //lmh0910wayland下用这一套tooltip if (utils::check_wayland_env()) { initToolTip(); } else { TooltipHandler *th = new TooltipHandler(this); QWidget *btns[] = { m_pPlayBtn, m_pPrevBtn, m_pNextBtn, m_pFullScreenBtn, m_pMircastBtn, m_pListBtn }; QString hints[] = { tr("Play/Pause"), tr("Previous"), tr("Next"), tr("Fullscreen"), tr("Miracast"), tr("Playlist") }; QString attrs[] = { "play", "prev", "next", "fs", "mir", "list" }; for (unsigned int i = 0; i < sizeof(btns) / sizeof(btns[0]); i++) { if (i < 3) { //first three buttons prev/play/next btns[i]->setToolTip(hints[i]); Tip *t = new Tip(QPixmap(), hints[i], parentWidget()); t->setProperty("for", QVariant::fromValue(btns[i])); btns[i]->setProperty("HintWidget", QVariant::fromValue(t)); btns[i]->installEventFilter(th); } else { ToolButton *btn = dynamic_cast(btns[i]); btn->setTooTipText(hints[i]); btn->setProperty("TipId", attrs[i]); connect(btn, &ToolButton::entered, this, &ToolboxProxy::buttonEnter); connect(btn, &ToolButton::leaved, this, &ToolboxProxy::buttonLeave); } } } connect(m_pEngine, &PlayerEngine::stateChanged, this, &ToolboxProxy::updatePlayState); connect(m_pEngine, &PlayerEngine::stateChanged, this, &ToolboxProxy::updateButtonStates); // 控件状态变化由updateButtonStates统一处理 connect(m_pEngine, &PlayerEngine::fileLoaded, this, &ToolboxProxy::slotFileLoaded); connect(m_pEngine, &PlayerEngine::elapsedChanged, this, &ToolboxProxy::slotElapsedChanged); connect(m_pEngine, &PlayerEngine::updateDuration, this, &ToolboxProxy::slotElapsedChanged); connect(window()->windowHandle(), &QWindow::windowStateChanged, this, &ToolboxProxy::updateFullState); connect(m_pEngine, &PlayerEngine::tracksChanged, this, &ToolboxProxy::updateButtonStates); connect(m_pEngine, &PlayerEngine::fileLoaded, this, &ToolboxProxy::updateButtonStates); connect(&m_pEngine->playlist(), &PlaylistModel::countChanged, this, &ToolboxProxy::updateButtonStates); connect(m_pMainWindow, &MainWindow::initChanged, this, &ToolboxProxy::updateButtonStates); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { m_pBotToolWgt->setFixedHeight((TOOLBOX_HEIGHT - 12)*0.66); progBarspec->setContentsMargins(0, 0, 0, 0); m_pBotSpec->setFixedHeight(20); m_pPalyBox->setFixedWidth(79); m_pPrevBtn->setIconSize(QSize(24, 24)); m_pPrevBtn->setFixedSize(26, 33); m_pPlayBtn->setIconSize(QSize(24, 24)); m_pPlayBtn->setFixedSize(26, 33); m_pNextBtn->setIconSize(QSize(24, 24)); m_pNextBtn->setFixedSize(26, 33); m_pFullScreenBtn->setIconSize(QSize(24, 24)); m_pFullScreenBtn->setFixedSize(33, 33); m_pVolBtn->setFixedSize(33, 33); m_pMircastBtn->setIconSize(QSize(16, 16)); m_pMircastBtn->setFixedSize(33, 33); m_pListBtn->setIconSize(QSize(24, 24)); m_pListBtn->setFixedSize(33, 33); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { m_pBotToolWgt->setFixedHeight(TOOLBOX_HEIGHT - 12); m_pBotSpec->setFixedHeight(30); m_pPalyBox->setFixedWidth(120); m_pPrevBtn->setIconSize(QSize(36, 36)); m_pPrevBtn->setFixedSize(40, 50); m_pPlayBtn->setIconSize(QSize(36, 36)); m_pPlayBtn->setFixedSize(40, 50); m_pNextBtn->setIconSize(QSize(36, 36)); m_pNextBtn->setFixedSize(40, 50); m_pFullScreenBtn->setIconSize(QSize(36, 36)); m_pFullScreenBtn->setFixedSize(50, 50); m_pVolBtn->setFixedSize(50, 50); m_pMircastBtn->setIconSize(QSize(24, 24)); m_pMircastBtn->setFixedSize(50, 50); m_pListBtn->setIconSize(QSize(36, 36)); m_pListBtn->setFixedSize(50, 50); } else { m_pBotToolWgt->setFixedHeight((TOOLBOX_HEIGHT - 12)*0.66); m_pBotSpec->setFixedHeight(20); m_pPalyBox->setFixedWidth(79); m_pPrevBtn->setIconSize(QSize(24, 24)); m_pPrevBtn->setFixedSize(26, 33); m_pPlayBtn->setIconSize(QSize(24, 24)); m_pPlayBtn->setFixedSize(26, 33); m_pNextBtn->setIconSize(QSize(24, 24)); m_pNextBtn->setFixedSize(26, 33); m_pFullScreenBtn->setIconSize(QSize(24, 24)); m_pFullScreenBtn->setFixedSize(33, 33); m_pVolBtn->setFixedSize(33, 33); m_pMircastBtn->setIconSize(QSize(16, 16)); m_pMircastBtn->setFixedSize(33, 33); m_pListBtn->setIconSize(QSize(24, 24)); m_pListBtn->setFixedSize(33, 33); } if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (m_bThumbnailmode) { //如果进度条为胶片模式,重新加载缩略图并显示 updateThumbnail(); updateMovieProgress(); } m_pProgBar_Widget->setCurrentIndex(1); } if (utils::check_wayland_env() && m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::State::Opened) { slotPlayListStateChange(true); } }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, progBarspec, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { progBarspec->setContentsMargins(0, 5, 0, 0); } else { progBarspec->setContentsMargins(0, 0, 0, 0); } }); #endif updatePlayState(); updateFullState(); updateButtonStates(); connect(qApp, &QGuiApplication::applicationStateChanged, this, &ToolboxProxy::slotApplicationStateChanged); } void ToolboxProxy::updateThumbnail() { disconnect(m_pWorker, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize))); if (m_pEngine->currFileIsAudio()) { return; } qInfo() << "worker" << m_pWorker; QTimer::singleShot(1000, this, &ToolboxProxy::slotUpdateThumbnailTimeOut); } void ToolboxProxy::updatePreviewTime(qint64 secs, const QPoint &pos) { QTime time(0, 0, 0); QString strTime = time.addSecs(static_cast(secs)).toString("hh:mm:ss"); m_pPreviewTime->setTime(strTime); m_pPreviewTime->show(pos.x(), pos.y() + 14); } void ToolboxProxy::initMember() { m_pmList.clear(); m_pmBlackList.clear(); m_pPlaylist = nullptr; m_pProgBarspec = nullptr; m_pBotSpec = nullptr; m_pBotToolWgt = nullptr; m_pProgBar_Widget = nullptr; bot_widget = nullptr; _mid = nullptr; _right = nullptr; m_pFullscreentimelable = nullptr; m_pFullscreentimelableend = nullptr; m_pTimeLabel = nullptr; m_pTimeLabelend = nullptr; m_pViewProgBar = nullptr; m_pViewProgBar = nullptr; m_pProgBar = nullptr; m_pPreviewer = nullptr; m_pPreviewTime = nullptr; m_mircastWidget = nullptr; m_pPlayBtn = nullptr; m_pPrevBtn = nullptr; m_pNextBtn = nullptr; m_pPalyBox = nullptr; m_pVolBtn = nullptr; m_pListBtn = nullptr; m_pFullScreenBtn = nullptr; m_pPlayBtnTip = nullptr; m_pPrevBtnTip = nullptr; m_pNextBtnTip = nullptr; m_pFullScreenBtnTip = nullptr; m_pListBtnTip = nullptr; m_pWorker = nullptr; m_pPaOpen = nullptr; m_pPaClose = nullptr; m_nClickTime = 0; m_processAdd = 0.0; m_bMouseFlag = false; m_bMousePree = false; m_bThumbnailmode = false; m_bAnimationFinash = true; m_bCanPlay = false; m_bSetListBtnFocus = false; } /** * @brief closeAnyPopup 关闭所有弹窗效果 */ void ToolboxProxy::closeAnyPopup() { if (m_pPreviewer->isVisible()) { m_pPreviewer->hide(); qInfo() << "hide previewer"; } if (m_pPreviewTime->isVisible()) { m_pPreviewTime->hide(); } if (m_pVolSlider->isVisible()) { m_pVolSlider->stopTimer(); m_pVolSlider->hide(); } } /** * @brief anyPopupShown 是否存在一些弹出显示窗口 * @return true时为有,false为无 */ bool ToolboxProxy::anyPopupShown() const { //返回鼠标悬停缩略图、鼠标悬停时间弹窗、音量弹窗是否有弹出 return m_pPreviewer->isVisible() || m_pPreviewTime->isVisible() || m_pVolSlider->isVisible(); } void ToolboxProxy::updateHoverPreview(const QUrl &url, int secs) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) return; if (m_pEngine->playlist().currentInfo().url != url) return; if (!Settings::get().isSet(Settings::PreviewOnMouseover)) return; if (m_pVolSlider->isVisible()) return; const PlayItemInfo &pif = m_pEngine->playlist().currentInfo(); if (!pif.url.isLocalFile()) return; const QString &absPath = pif.info.canonicalFilePath(); if (!QFile::exists(absPath)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); return; } if (!m_bMouseFlag) { return; } int nPosition = 0; qint64 nDuration = m_pEngine->duration(); QPoint showPoint; if(nDuration<=0) { return; } if (m_pProgBar->isVisible()) { nPosition = (secs * m_pProgBar->slider()->width()) / nDuration; showPoint = m_pProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } else { nPosition = secs * m_pViewProgBar->getViewLength() / nDuration + m_pViewProgBar->getStartPoint(); showPoint = m_pViewProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } QPixmap pm = ThumbnailWorker::get().getThumb(url, secs); if (!pm.isNull()) { QPoint point { showPoint.x(), showPoint.y() }; m_pPreviewer->updateWithPreview(pm, secs, m_pEngine->videoRotation()); } } void ToolboxProxy::waitPlay() { if (m_pPlayBtn) { m_pPlayBtn->setEnabled(false); } if (m_pPrevBtn) { m_pPrevBtn->setEnabled(false); } if (m_pNextBtn) { m_pNextBtn->setEnabled(false); } QTimer::singleShot(500, [ = ] { if (m_pPlayBtn) { m_pPlayBtn->setEnabled(true); } if (m_pPrevBtn && m_pEngine->playlist().count() > 1) { m_pPrevBtn->setEnabled(true); } if (m_pNextBtn && m_pEngine->playlist().count() > 1) { m_pNextBtn->setEnabled(true); } }); } void ToolboxProxy::slotThemeTypeChanged() { QPalette textPalette; bool bRawFormat = false; auto type = DGuiApplicationHelper::instance()->themeType(); WAYLAND_BLACK_WINDOW; THEME_TYPE(type); // 组合按钮无边框 QColor framecolor("#FFFFFF"); framecolor.setAlphaF(0.00); QString rStr; if (type == DGuiApplicationHelper::LightType) { textPalette.setColor(QPalette::WindowText, QColor(0, 0, 0, 40)); // 浅色背景下时长显示置灰 textPalette.setColor(QPalette::Text, QColor(0, 0, 0, 40)); QColor maskColor(247, 247, 247); maskColor.setAlphaF(0.60); rStr = "light"; DPalette pa; pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor("#FFFFFF")); pa.setColor(DPalette::Dark, QColor("#FFFFFF")); pa.setColor(DPalette::ButtonText, QColor(Qt::black)); // 单个按钮边框 QColor btnframecolor("#000000"); btnframecolor.setAlphaF(0.00); pa.setColor(DPalette::FrameBorder, btnframecolor); // 取消阴影 pa.setColor(DPalette::Shadow, btnframecolor); DApplicationHelper::instance()->setPalette(m_pFullScreenBtn, pa); DApplicationHelper::instance()->setPalette(m_pVolBtn, pa); DApplicationHelper::instance()->setPalette(m_pListBtn, pa); DPalette pl = m_pPalyBox ->palette(); pl.setColor(DPalette::Button, QColor("#FFFFFF")); //这个地方会导致按钮setdisable设置失效,按钮无法置灰 // pl.setColor(DPalette::ButtonText, QColor(Qt::black)); pl.setColor(DPalette::FrameBorder, framecolor); pl.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pPalyBox, pl); } else { textPalette.setColor(QPalette::WindowText, QColor(255, 255, 255, 40)); // 深色背景下时长显示置灰 textPalette.setColor(QPalette::Text, QColor(255, 255, 255, 40)); QColor maskColor(32, 32, 32); maskColor.setAlphaF(0.80); rStr = "dark"; DPalette pa; pa = m_pFullScreenBtn->palette(); QColor btnMaskColor("#000000"); btnMaskColor.setAlphaF(0.30); pa.setColor(DPalette::Light, btnMaskColor); pa.setColor(DPalette::Dark, btnMaskColor); pa.setColor(DPalette::ButtonText, QColor("#c5cfe0")); pa.setColor(DPalette::FrameBorder, framecolor); // 取消阴影 pa.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pFullScreenBtn, pa); DApplicationHelper::instance()->setPalette(m_pVolBtn, pa); DApplicationHelper::instance()->setPalette(m_pListBtn, pa); DPalette pl = m_pPalyBox ->palette(); QColor btnColor("#000000"); btnColor.setAlphaF(0.60); pl.setColor(DPalette::Button, btnColor); // pl.setColor(DPalette::ButtonText, QColor("#c5cfe0")); pl.setColor(DPalette::FrameBorder, framecolor); pl.setColor(DPalette::Shadow, framecolor); DApplicationHelper::instance()->setPalette(m_pPalyBox, pl); } if(m_pEngine->state() != PlayerEngine::CoreState::Idle) { bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); if(bRawFormat && !m_pEngine->currFileIsAudio()) { m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(false); } else if (bRawFormat) { m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); } else { textPalette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); textPalette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(true); } } else { textPalette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); textPalette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(textPalette); m_pTimeLabelend->setPalette(textPalette); m_pFullscreentimelable->setPalette(textPalette); m_pFullscreentimelableend->setPalette(textPalette); m_pVolBtn->setButtonEnable(true); } } void ToolboxProxy::slotLeavePreview() { auto pos = m_pProgBar->mapFromGlobal(QCursor::pos()); if (!m_pProgBar->geometry().contains(pos)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); m_pProgBar->forceLeave(); } } void ToolboxProxy::slotHidePreviewTime() { m_pPreviewer->hide(); m_pPreviewTime->hide(); m_bMouseFlag = false; } void ToolboxProxy::slotSliderPressed() { m_bMousePree = true; } void ToolboxProxy::slotSliderReleased() { m_bMousePree = false; if (m_mircastWidget->getMircastState() == MircastWidget::Screening) m_mircastWidget->slotSeekMircast(m_pProgBar->slider()->sliderPosition()); else m_pEngine->seekAbsolute(m_pProgBar->slider()->sliderPosition()); } void ToolboxProxy::slotBaseMuteChanged(QString sk, const QVariant &/*val*/) { if (sk == "base.play.mousepreview") { m_pProgBar->setEnableIndication(m_pEngine->state() != PlayerEngine::Idle); } } void ToolboxProxy::slotVolumeButtonClicked() { //与其他按键保持一致,工具栏隐藏时不响应 if (!isVisible()) return; m_pVolBtn->hideTip(); if (m_pVolSlider->getsliderstate()) return; /* * 设置-2为已经完成第一次打开设置音量 * -1为初始化数值 * 大于等于零表示为已完成初始化 */ if (!m_pVolSlider->isVisible()) { m_pVolSlider->show(); m_pVolSlider->raise(); // m_pVolSlider->popup(); } else { // m_pVolSlider->popup(); m_pVolSlider->hide(); } } void ToolboxProxy::slotFileLoaded() { m_pProgBar->slider()->setRange(0, static_cast(m_pEngine->duration())); m_pProgBar_Widget->setCurrentIndex(1); m_pPreviewer->setFixedSize(0, 0); update(); //正在投屏时如果当前播放为音频直接播放下一首。 if(m_pEngine->currFileIsAudio()&&m_mircastWidget->getMircastState() != MircastWidget::Idel) { //如果全是音频文件则退出投屏 bool isAllAudio = true; QString sNextVideoName; int nNextIndex = -1; QList lstItemInfo = m_pEngine->getplaylist()->items(); for(int i = 0; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.vCodecID != -1) { isAllAudio = false; if(sNextVideoName.isNull()) { sNextVideoName = iteminfo.mi.filePath; nNextIndex = i; break; } } } if(isAllAudio) { m_pMainWindow->slotExitMircast(); return; } QString sCurPath = m_pEngine->getplaylist()->currentInfo().mi.filePath; int nIndex = -1; for(int i = 0; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.filePath == sCurPath) { nIndex = i; break; } } if(nIndex == -1) return; if(nIndex < nNextIndex && !sNextVideoName.isNull()) { m_pMainWindow->play({sNextVideoName}); } else { bool isNext = true; for(int i = nIndex; i < lstItemInfo.count(); i++) { PlayItemInfo iteminfo = lstItemInfo.at(i); if(iteminfo.mi.vCodecID != -1) { isNext = false; m_pMainWindow->play({iteminfo.mi.filePath}); break; } } if(m_pEngine->getplaylist()->playMode() == PlaylistModel::OrderPlay) { if(isNext) m_pMainWindow->slotExitMircast(); return; } if(isNext && !sNextVideoName.isNull()){ m_pMainWindow->play({sNextVideoName}); } } return; } m_mircastWidget->playNext(); } void ToolboxProxy::slotElapsedChanged() { if(m_mircastWidget->getMircastState() != MircastWidget::Idel) return; quint64 url = static_cast(-1); if (m_pEngine->playlist().current() != -1) { url = static_cast(m_pEngine->duration()); } //TODO(xxxpengfei):此处代码同时更新全屏的时长并未判断全屏状态,请维护同事查看是否存在优化空间 updateTimeInfo(static_cast(url), m_pEngine->elapsed(), m_pTimeLabel, m_pTimeLabelend, true); updateTimeInfo(static_cast(url), m_pEngine->elapsed(), m_pFullscreentimelable, m_pFullscreentimelableend, false); QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6)); m_pFullscreentimelable->setMinimumWidth(fm.width(m_pFullscreentimelable->text())); m_pFullscreentimelableend->setMinimumWidth(fm.width(m_pFullscreentimelableend->text())); updateMovieProgress(); } void ToolboxProxy::slotApplicationStateChanged(Qt::ApplicationState e) { if (e == Qt::ApplicationInactive && anyPopupShown()) { closeAnyPopup(); } } void ToolboxProxy::slotPlayListStateChange(bool isShortcut) { if (m_bAnimationFinash == false) { return; } closeAnyPopup(); /** * 此处在动画执行前设定好ToolboxProxy的起始位置和终止位置 * 基于 MainWindow::updateProxyGeometry所设置的初始状态 以及 是否是紧凑模式 定位ToolboxProxy的起始位置和终止位置 */ QRect rc_view=m_pMainWindow->rect(); QRect rc_opened; rc_opened = QRect(5, rc_view.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - rc_view.top() - 5, rc_view.width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 7)); QRect rc_closed = QRect(5, rc_view.height() - TOOLBOX_HEIGHT - rc_view.top() - 5, rc_view.width() - 10, TOOLBOX_HEIGHT); #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { rc_opened = QRect(5, rc_view.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT) - rc_view.top() - 5, rc_view.width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_DSIZEMODE_HEIGHT + 7)); rc_closed = QRect(5, rc_view.height() - TOOLBOX_DSIZEMODE_HEIGHT - rc_view.top() - 5, rc_view.width() - 10, TOOLBOX_DSIZEMODE_HEIGHT); } #endif if (m_pPlaylist->state() == PlaylistWidget::State::Opened) { //非x86平台播放列表切换不展示动画,故按键状态不做限制 if(CompositingManager::get().platform() == Platform::X86) { if (isShortcut && m_pListBtn->isChecked()) { m_pListBtn->setIcon(QIcon(":/icons/deepin/builtin/light/checked/episodes_checked.svg")); } else { m_pListBtn->setChecked(true); m_pListBtn->setIcon(QIcon(":/icons/deepin/builtin/light/checked/episodes_checked.svg")); } m_bAnimationFinash = false; m_pPaOpen = new QPropertyAnimation(this, "geometry"); m_pPaOpen->setEasingCurve(QEasingCurve::Linear); m_pPaOpen->setDuration(POPUP_DURATION) ; m_pPaOpen->setStartValue(rc_closed); m_pPaOpen->setEndValue(rc_opened); m_pPaOpen->start(); connect(m_pPaOpen, &QPropertyAnimation::finished, this, &ToolboxProxy::slotProAnimationFinished); } else { Q_UNUSED(isShortcut); if(utils::check_wayland_env()) { m_pListWgt->setGeometry(rc_opened.adjusted(-10,-10,10,10)); m_pListWgt->show(); m_pListWgt->raise(); m_pPlaylist->raise(); raise(); } else { setGeometry(rc_opened); } m_pListBtn->setChecked(true); } } else { if(CompositingManager::get().platform() == Platform::X86) { m_bAnimationFinash = false; if (isShortcut && !m_pListBtn->isChecked()) { m_pListBtn->setIcon(QIcon::fromTheme("dcc_episodes")); } else { m_pListBtn->setChecked(false); m_pListBtn->setIcon(QIcon::fromTheme("dcc_episodes")); } m_pPaClose = new QPropertyAnimation(this, "geometry"); m_pPaClose->setEasingCurve(QEasingCurve::Linear); m_pPaClose->setDuration(POPUP_DURATION); m_pPaClose->setStartValue(rc_opened); m_pPaClose->setEndValue(rc_closed); m_pPaClose->start(); connect(m_pPaClose, &QPropertyAnimation::finished, this, &ToolboxProxy::slotProAnimationFinished); } else { Q_UNUSED(isShortcut); if(utils::check_wayland_env()) { m_pListWgt->hide(); } else { setGeometry(rc_closed); } m_pListBtn->setChecked(false); } } } void ToolboxProxy::slotUpdateThumbnailTimeOut() { //如果视频长度小于1s应该直接返回不然会UI错误 if (m_pEngine->duration() < 1) { return; } m_pViewProgBar->clear(); //清除前一次进度条中的缩略图,以便显示新的缩略图 m_listPixmapMutex.lock(); m_pmList.clear(); m_pmBlackList.clear(); m_listPixmapMutex.unlock(); if (m_pWorker == nullptr) { m_pWorker = new viewProgBarLoad(m_pEngine, m_pProgBar, this); m_pWorker->setListPixmapMutex(&m_listPixmapMutex); } m_pWorker->requestInterruption(); QTimer::singleShot(500, this, [ = ] {m_pWorker->start();}); connect(m_pWorker, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize))); m_pProgBar_Widget->setCurrentIndex(1); } void ToolboxProxy::slotProAnimationFinished() { m_pListBtn->setEnabled(true); QObject *pProAnimation = sender(); if (pProAnimation == m_pPaOpen) { m_pPaOpen->deleteLater(); m_pPaOpen = nullptr; m_bAnimationFinash = true; } else if (pProAnimation == m_pPaClose) { m_pPaClose->deleteLater(); m_pPaClose = nullptr; m_bAnimationFinash = true; //Wait for the animation to end before setting the focus if (m_bSetListBtnFocus) { m_pListBtn->setFocus(); } } // m_bSetListBtnFocus = false; } void ToolboxProxy::slotVolumeChanged(int nVolume) { m_pVolBtn->setVolume(nVolume); emit sigVolumeChanged(nVolume); } void ToolboxProxy::slotMuteStateChanged(bool bMute) { m_pVolBtn->setMute(bMute); emit sigMuteStateChanged(bMute); } qint64 ToolboxProxy::getMouseTime() { return m_nClickTime; } void ToolboxProxy::clearPlayListFocus() { if (m_pPlaylist->isFocusInPlaylist()) { m_pPlaylist->clearFocus(); } m_bSetListBtnFocus = false; } void ToolboxProxy::setBtnFocusSign(bool sign) { m_bSetListBtnFocus = sign; } bool ToolboxProxy::isInMircastWidget(const QPoint &p) { if (!m_mircastWidget->isVisible()) return false; return m_mircastWidget->geometry().contains(p); } void ToolboxProxy::updateMircastWidget(QPoint p) { m_mircastWidget->move(p.x() - m_mircastWidget->width(), p.y() - m_mircastWidget->height() - 10); } void ToolboxProxy::hideMircastWidget() { m_mircastWidget->hide(); m_pMircastBtn->setChecked(false); m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast")); } /** * @brief volumeUp 鼠标滚轮增加音量 */ void ToolboxProxy::volumeUp() { if(!m_pVolSlider->isEnabled()) { // 不能调节音量需要给出提示 emit sigUnsupported(); } else { m_pVolSlider->volumeUp(); } } /** * @brief volumeUp 鼠标滚轮减少音量 */ void ToolboxProxy::volumeDown() { if(!m_pVolSlider->isEnabled()) { emit sigUnsupported(); } else { m_pVolSlider->volumeDown(); } } /** * @brief calculationStep 计算鼠标滚轮滚动的步进 * @param iAngleDelta 鼠标滚动的距离 */ void ToolboxProxy::calculationStep(int iAngleDelta) { m_pVolSlider->calculationStep(iAngleDelta); } /** * @brief changeMuteState 切换静音模式 */ void ToolboxProxy::changeMuteState() { m_pVolSlider->muteButtnClicked(); } /** * @brief playlistClosedByEsc Esc关闭播放列表 */ void ToolboxProxy::playlistClosedByEsc() { if (m_pPlaylist->isFocusInPlaylist() && m_bSetListBtnFocus) { // m_bSetListBtnFocus = true; m_pMainWindow->requestAction(ActionFactory::TogglePlaylist); // m_pListBtn->setFocus(); //焦点回到播放列表按钮 } } void ToolboxProxy::progressHoverChanged(int nValue) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) return; if (m_pVolSlider->isVisible()) return; const auto &pif = m_pEngine->playlist().currentInfo(); if (!pif.url.isLocalFile()) return; const auto &absPath = pif.info.canonicalFilePath(); if (!QFile::exists(absPath)) { m_pPreviewer->hide(); m_pPreviewTime->hide(); return; } m_bMouseFlag = true; QPoint pos = m_pProgBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10)); QPoint point { QCursor::pos().x(), pos.y() }; QPoint startPoint = mapToGlobal(QPoint(m_pProgBar_Widget->x(), 0)); QPoint endPoint = mapToGlobal(QPoint(m_pProgBar_Widget->x() + m_pProgBar->width(), 0)); /********************************* * 时长显示不能超出进度条 * ********************************/ if (point.x() < startPoint.x()) { point.setX(startPoint.x()); } if (point.x() > endPoint.x()) { point.setX(endPoint.x()); } bool bIsAudio = m_pEngine->currFileIsAudio(); if (!Settings::get().isSet(Settings::PreviewOnMouseover) || bIsAudio) { updatePreviewTime(nValue, point); return; } //鼠标移动时同步缩略图显示位置 int nPosition = 0; qint64 nDuration = m_pEngine->duration(); if(nDuration<=0) { return; } if (m_pProgBar->isVisible()) { nPosition = (nValue * m_pProgBar->slider()->width()) / nDuration; point = m_pProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } else { nPosition = nValue * m_pViewProgBar->getViewLength() / nDuration + m_pViewProgBar->getStartPoint(); point = m_pViewProgBar->mapToGlobal(QPoint(nPosition, TOOLBOX_TOP_EXTENT - 10)); } m_pPreviewer->updateWithPreview(point); if(CompositingManager::isMpvExists()) { ThumbnailWorker::get().requestThumb(pif.url, nValue); } } void ToolboxProxy::updateTimeVisible(bool visible) { if (Settings::get().isSet(Settings::PreviewOnMouseover)) return; if (m_pPreviewTime) { m_pPreviewTime->setVisible(!visible); } } void ToolboxProxy::updateMovieProgress() { if (m_bMousePree == true) return ; auto d = m_pEngine->duration(); auto e = m_pEngine->elapsed(); if (d > m_pProgBar->maximum()) { d = m_pProgBar->maximum(); } int v = 0; int v2 = 0; if (d != 0 && e != 0) { v = static_cast(m_pProgBar->maximum() * e / d); v2 = static_cast(m_pViewProgBar->getViewLength() * e / d + m_pViewProgBar->getStartPoint()); } if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); m_pProgBar->setValue(v); m_pProgBar->blockSignals(false); } if (!m_pViewProgBar->getIsBlockSignals()) { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(v2); m_pViewProgBar->setTime(e); m_pViewProgBar->setIsBlockSignals(false); } } void ToolboxProxy::updateButtonStates() { QPalette palette; // 时长显示的颜色,在某些情况下变化字体颜色区别功能 bool bRawFormat = false; if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { palette.setColor(QPalette::WindowText, QColor(0, 0, 0, 40)); // 浅色背景下置灰 palette.setColor(QPalette::Text, QColor(0, 0, 0, 40)); } else { palette.setColor(QPalette::WindowText, QColor(255, 255, 255, 40)); // 深色背景下置灰 palette.setColor(QPalette::Text, QColor(255, 255, 255, 40)); } if(m_pEngine->state() != PlayerEngine::CoreState::Idle) { bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); m_pMircastBtn->setEnabled(!m_pEngine->currFileIsAudio()); if(m_pEngine->currFileIsAudio()) m_mircastWidget->setVisible(false); if(bRawFormat && !m_pEngine->currFileIsAudio()){ // 如果正在播放的视频是裸流不支持音量调节和进度调节 m_pProgBar->setEnabled(false); m_pProgBar->setEnableIndication(false); m_pVolSlider->setEnabled(false); m_pTimeLabel->setPalette(palette); // 如果正在播放的视频是裸流置灰 m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(false); } else if (bRawFormat) { m_pProgBar->setEnabled(false); m_pProgBar->setEnableIndication(false); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); } else { m_pProgBar->setEnabled(true); m_pProgBar->setEnableIndication(true); m_pVolSlider->setEnabled(true); palette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); palette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(true); } } else { m_pVolSlider->setEnabled(true); palette.setColor(QPalette::WindowText, DApplication::palette().windowText().color()); palette.setColor(QPalette::Text, DApplication::palette().text().color()); m_pTimeLabel->setPalette(palette); m_pTimeLabelend->setPalette(palette); m_pFullscreentimelable->setPalette(palette); m_pFullscreentimelableend->setPalette(palette); m_pVolBtn->setButtonEnable(true); } qInfo() << m_pEngine->playingMovieInfo().subs.size(); bool vis = m_pEngine->playlist().count() > 1 && m_pMainWindow->inited(); //播放状态为空闲或播放列表只有一项时,将上下一曲按钮置灰 if (m_pEngine->state() == PlayerEngine::CoreState::Idle || m_pEngine->getplaylist()->items().size() <= 1) { m_pPrevBtn->setDisabled(true); m_pNextBtn->setDisabled(true); } else { m_pPrevBtn->setEnabled(true); m_pNextBtn->setEnabled(true); } m_bCanPlay = vis; //防止连续切换上下曲目 } void ToolboxProxy::updateFullState() { bool isFullscreen = window()->isFullScreen(); if (isFullscreen || m_pFullscreentimelable->isVisible()) { m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomout")); if (utils::check_wayland_env()) m_pFullScreenBtnTip->setText(tr("Exit fullscreen")); else m_pFullScreenBtn->setTooTipText(tr("Exit fullscreen")); } else { m_pFullScreenBtn->setIcon(QIcon::fromTheme("dcc_zoomin")); if (utils::check_wayland_env()) m_pFullScreenBtnTip->setText(tr("Fullscreen")); else m_pFullScreenBtn->setTooTipText(tr("Fullscreen")); } } void ToolboxProxy::slotUpdateMircast(int state, QString msg) { emit sigMircastState(state, msg); if (state == 0) { m_pVolBtn->setButtonEnable(false); m_pFullScreenBtn->setEnabled(false); } else { if(m_pEngine->getplaylist()->items().size() == 0) { m_pVolBtn->setButtonEnable(true); } else { bool bRawFormat = m_pEngine->getplaylist()->currentInfo().mi.isRawFormat(); if(bRawFormat && !m_pEngine->currFileIsAudio()) { m_pVolBtn->setButtonEnable(false); } else { m_pVolBtn->setButtonEnable(true); } } } m_pFullScreenBtn->setEnabled(true); } void ToolboxProxy::updatePlayState() { if (((m_mircastWidget->getMircastState() != MircastWidget::Idel) && (m_mircastWidget->getMircastPlayState() == MircastWidget::Play)) || m_pEngine->state() == PlayerEngine::CoreState::Playing) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Button, QColor(255, 255, 255, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pMircastBtn->setPalette(pa); } else { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Button, QColor(0, 0, 0, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pMircastBtn->setPalette(pa); } m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_suspend", QIcon(":/icons/deepin/builtin/light/normal/suspend_normal.svg"))); //lmh0910wayland下用这一套tooltip if (utils::check_wayland_env()) { m_pPlayBtnTip->setText(tr("Pause")); } else { m_pPlayBtn->setToolTip(tr("Pause")); } } else { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Button, QColor(255, 255, 255, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(255, 255, 255, 255)); pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255)); m_pMircastBtn->setPalette(pa); } else { DPalette pa; pa = m_pPalyBox->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Button, QColor(0, 0, 0, 255)); m_pPalyBox->setPalette(pa); pa = m_pVolBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pVolBtn->setPalette(pa); pa = m_pFullScreenBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pFullScreenBtn->setPalette(pa); pa = m_pListBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pListBtn->setPalette(pa); pa = m_pMircastBtn->palette(); pa.setColor(DPalette::Light, QColor(0, 0, 0, 255)); pa.setColor(DPalette::Dark, QColor(0, 0, 0, 255)); m_pMircastBtn->setPalette(pa); } //lmh0910wayland下用这一套tooltip if (utils::check_wayland_env()) { m_pPlayBtnTip->setText(tr("Play")); } else { m_pPlayBtn->setToolTip(tr("Play")); } m_pPlayBtn->setIcon(QIcon::fromTheme("dcc_play", QIcon(":/icons/deepin/builtin/light/normal/play_normal.svg"))); } if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { m_pTimeLabel->setText(""); m_pTimeLabelend->setText(""); if (m_pPreviewer->isVisible()) { m_pPreviewer->hide(); } if (m_pPreviewTime->isVisible()) { m_pPreviewTime->hide(); } if (m_pProgBar->isVisible()) { m_pProgBar->setVisible(false); } m_pProgBar_Widget->setCurrentIndex(0); setProperty("idle", true); } else { setProperty("idle", false); } } /** * @brief updateTimeInfo 更新工具栏中播放时间显示 * @param duration 视频总时长 * @param pos 当前播放的时间点 * @param pTimeLabel 当前播放时间 * @param pTimeLabelend 视频总时长 * @param flag 是否为全屏的控件 */ void ToolboxProxy::updateTimeInfo(qint64 duration, qint64 pos, QLabel *pTimeLabel, QLabel *pTimeLabelend, bool flag) { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { pTimeLabel->setText(""); pTimeLabelend->setText(""); } else { //mpv returns a slightly different duration from movieinfo.duration //m_pTimeLabel->setText(QString("%2/%1").arg(utils::Time2str(duration)) //.arg(utils::Time2str(pos))); if (1 == flag) { pTimeLabel->setText(QString("%1") .arg(utils::Time2str(pos))); pTimeLabelend->setText(QString("%1") .arg(utils::Time2str(duration))); } else { pTimeLabel->setText(QString("%1 %2") .arg(utils::Time2str(pos)).arg("/")); pTimeLabelend->setText(QString("%1") .arg(utils::Time2str(duration))); } } } void ToolboxProxy::buttonClicked(QString id) { //add by heyi static bool bFlags = true; if (bFlags) { // m_pMainWindow->firstPlayInit(); m_pMainWindow->repaint(); bFlags = false; } if (!isVisible()) return; qInfo() << __func__ << id; if (id == "play") { if (m_pEngine->state() == PlayerEngine::CoreState::Idle) { m_pMainWindow->requestAction(ActionFactory::ActionKind::StartPlay); } else { m_pMainWindow->requestAction(ActionFactory::ActionKind::TogglePause); } } else if (id == "fs") { m_pMainWindow->requestAction(ActionFactory::ActionKind::ToggleFullscreen); } else if (id == "vol") { m_pMainWindow->requestAction(ActionFactory::ActionKind::ToggleMute); } else if (id == "prev" && m_bCanPlay) { //如果影片未加载完成,则不播放上一曲 m_pMainWindow->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); } else if (id == "next" && m_bCanPlay) { m_pMainWindow->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); } else if (id == "list") { m_nClickTime = QDateTime::currentMSecsSinceEpoch(); m_pMainWindow->requestAction(ActionFactory::ActionKind::TogglePlaylist); m_pListBtn->hideToolTip(); } else if (id == "mircast") { m_mircastWidget->togglePopup(); m_pMircastBtn->hideToolTip(); m_pMircastBtn->setChecked(m_mircastWidget->isVisible()); if (m_pMircastBtn->isChecked()) m_pMircastBtn->setIcon(QIcon(":/icons/deepin/builtin/light/checked/mircast_chenked.svg")); else m_pMircastBtn->setIcon(QIcon::fromTheme("dcc_mircast")); } } void ToolboxProxy::buttonEnter() { if (!isVisible()) return; ToolButton *btn = qobject_cast(sender()); QString id = btn->property("TipId").toString(); if (id == "sub" || id == "fs" || id == "list" || id == "mir") { updateToolTipTheme(btn); btn->showToolTip(); } } void ToolboxProxy::buttonLeave() { if (!isVisible()) return; ToolButton *btn = qobject_cast(sender()); QString id = btn->property("TipId").toString(); if (id == "sub" || id == "fs" || id == "list" || id == "mir") { btn->hideToolTip(); } } void ToolboxProxy::showEvent(QShowEvent *event) { DFloatingWidget::showEvent(event); } void ToolboxProxy::paintEvent(QPaintEvent *event) { if(CompositingManager::get().platform() != X86) { QPainter painter(this); setFixedWidth(m_pMainWindow->width()); move(0, m_pMainWindow->height() - this->height()); if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { painter.fillRect(rect(), QBrush(QColor(31, 31, 31))); } else { painter.fillRect(rect(), this->palette().background()); } } else { DFloatingWidget::paintEvent(event); } } void ToolboxProxy::resizeEvent(QResizeEvent *event) { if (event->oldSize().width() != event->size().width()) { if (m_pEngine->state() != PlayerEngine::CoreState::Idle) { if (m_bThumbnailmode) { //如果进度条为胶片模式,重新加载缩略图并显示 if(CompositingManager::get().platform() == Platform::X86 && CompositingManager::isMpvExists()) { updateThumbnail(); } updateMovieProgress(); } m_pProgBar_Widget->setCurrentIndex(1); } if (utils::check_wayland_env() && m_pPlaylist && m_pPlaylist->state() == PlaylistWidget::State::Opened) { slotPlayListStateChange(true); } } DFloatingWidget::resizeEvent(event); } void ToolboxProxy::mouseMoveEvent(QMouseEvent *ev) { setButtonTooltipHide(); QWidget::mouseMoveEvent(ev); } bool ToolboxProxy::eventFilter(QObject *obj, QEvent *ev) { if (obj == m_pVolBtn) { if (ev->type() == QEvent::KeyPress && (m_pVolSlider->state() == VolumeSlider::Open)) { QKeyEvent *keyEvent = static_cast(ev); int nCurVolume = m_pVolSlider->getVolume(); //如果音量条升起且上下键按下,以步长为5调整音量 if (keyEvent->key() == Qt::Key_Up) { m_pVolSlider->changeVolume(qMin(nCurVolume + 5, 200)); return true; } else if (keyEvent->key() == Qt::Key_Down) { m_pVolSlider->changeVolume(qMax(nCurVolume - 5, 0)); return true; } } } if(CompositingManager::get().platform() == Platform::X86) { if (obj == m_pListBtn) { QMouseEvent *mouseEvent = static_cast(ev); if (ev->type() == QEvent::MouseButtonRelease && mouseEvent->button() == Qt::LeftButton) { if (m_pPlaylist->state() == PlaylistWidget::State::Opened && m_pListBtn->isChecked()) { m_pListBtn->setChecked(!m_pListBtn->isChecked()); } if (m_pPlaylist->state() == PlaylistWidget::State::Closed && !m_pListBtn->isChecked()) { m_pListBtn->setChecked(!m_pListBtn->isChecked()); } } } } return QObject::eventFilter(obj, ev); } void ToolboxProxy::updateMircastTime(int time) { if (m_pProgBar_Widget->currentIndex() == 1) { //进度条模式 if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); } m_pProgBar->slider()->setSliderPosition(time); m_pProgBar->slider()->setValue(time); m_pProgBar->blockSignals(false); } else { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(time); m_pViewProgBar->setIsBlockSignals(false); } quint64 url = static_cast(-1); if (m_pEngine->playlist().current() != -1) { url = static_cast(m_pEngine->duration()); } updateTimeInfo(url, time, m_pTimeLabel, m_pTimeLabelend, true); } void ToolboxProxy::updateToolTipTheme(ToolButton *btn) { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { btn->changeTheme(lightTheme); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { btn->changeTheme(darkTheme); } else { btn->changeTheme(lightTheme); } } void ToolboxProxy::setPlaylist(PlaylistWidget *pPlaylist) { m_pPlaylist = pPlaylist; WAYLAND_BLACK_WINDOW; connect(m_pPlaylist, &PlaylistWidget::stateChange, this, &ToolboxProxy::slotPlayListStateChange); } QLabel *ToolboxProxy::getfullscreentimeLabel() { return m_pFullscreentimelable; } QLabel *ToolboxProxy::getfullscreentimeLabelend() { return m_pFullscreentimelableend; } bool ToolboxProxy::getbAnimationFinash() { return m_bAnimationFinash; } void ToolboxProxy::setVolSliderHide() { if (m_pVolSlider->isVisible()) { m_pVolSlider->hide(); } } void ToolboxProxy::setButtonTooltipHide() { if (utils::check_wayland_env()) { m_pPlayBtnTip->hide(); m_pPrevBtnTip->hide(); m_pNextBtnTip->hide(); m_pFullScreenBtnTip->hide(); m_pListBtnTip->hide(); } else { m_pListBtn->hideToolTip(); m_pFullScreenBtn->hideToolTip(); } } void ToolboxProxy::initToolTip() { if (utils::check_wayland_env()) { //lmh0910播放 m_pPlayBtnTip = new ButtonToolTip(m_pMainWindow); m_pPlayBtnTip->setText(tr("Play")); connect(m_pPlayBtn, &ButtonBoxButton::entered, [ = ]() { m_pPlayBtnTip->move(80, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pPlayBtnTip->show(); m_pPlayBtnTip->update(); m_pPlayBtnTip->releaseMouse(); }); connect(m_pPlayBtn, &ButtonBoxButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pPlayBtnTip->hide(); }); }); //lmh0910上一个 m_pPrevBtnTip = new ButtonToolTip(m_pMainWindow); m_pPrevBtnTip->setText(tr("Previous")); connect(m_pPrevBtn, &ButtonBoxButton::entered, [ = ]() { m_pPrevBtnTip->move(40, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pPrevBtnTip->show(); m_pPrevBtnTip->update(); m_pPrevBtnTip->releaseMouse(); }); connect(m_pPrevBtn, &ButtonBoxButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pPrevBtnTip->hide(); }); }); //lmh0910下一个 m_pNextBtnTip = new ButtonToolTip(m_pMainWindow); m_pNextBtnTip->setText(tr("Next")); connect(static_cast(m_pNextBtn), &ButtonBoxButton::entered, [ = ]() { m_pNextBtnTip->move(120, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pNextBtnTip->show(); m_pNextBtnTip->update(); m_pNextBtnTip->releaseMouse(); }); connect(static_cast(m_pNextBtn), &ButtonBoxButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pNextBtnTip->hide(); }); }); } //lmh0910全屏按键 m_pFullScreenBtnTip = new ButtonToolTip(m_pMainWindow); m_pFullScreenBtnTip->setText(tr("Fullscreen")); connect(m_pFullScreenBtn, &ToolButton::entered, [ = ]() { m_pFullScreenBtnTip->move(m_pMainWindow->width() - m_pFullScreenBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 195, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pFullScreenBtnTip->show(); m_pFullScreenBtnTip->update(); m_pFullScreenBtnTip->releaseMouse(); }); connect(m_pFullScreenBtn, &ToolButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pFullScreenBtnTip->hide(); }); }); //lmh0910list按键 m_pListBtnTip = new ButtonToolTip(m_pMainWindow); m_pListBtnTip->setText(tr("Playlist")); connect(m_pListBtn, &ToolButton::entered, [ = ]() { m_pListBtnTip->move(m_pMainWindow->width() - m_pListBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 20, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pListBtnTip->show(); m_pListBtnTip->update(); m_pListBtnTip->releaseMouse(); }); connect(m_pListBtn, &ToolButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pListBtnTip->hide(); }); }); //lmh0910vol按键 m_pVolBtnTip = new ButtonToolTip(m_pMainWindow); m_pVolBtnTip->setText(tr("Volume")); connect(m_pVolBtn, &VolumeButton::entered, [ = ]() { m_pVolBtnTip->move(m_pMainWindow->width() - m_pVolBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 135, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pVolBtnTip->show(); m_pVolBtnTip->update(); m_pVolBtnTip->releaseMouse(); }); connect(m_pVolBtn, &VolumeButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pVolBtnTip->hide(); }); }); //lmh0910mircast按键 m_pMircastBtnTip = new ButtonToolTip(m_pMainWindow); m_pMircastBtnTip->setText(tr("Miracast")); connect(m_pMircastBtn, &ToolButton::entered, [ = ]() { m_pMircastBtnTip->move(m_pMainWindow->width() - m_pMircastBtn->width() / 2 /*- m_pPlayBtn->width()*/ - 80, m_pMainWindow->height() - TOOLBOX_HEIGHT - 5); m_pMircastBtnTip->show(); m_pMircastBtnTip->update(); m_pMircastBtnTip->releaseMouse(); }); connect(m_pMircastBtn, &ToolButton::leaved, [ = ]() { QTimer::singleShot(0, [ = ] { m_pMircastBtnTip->hide(); }); }); } bool ToolboxProxy::getListBtnFocus() { return m_pListBtn->hasFocus(); } bool ToolboxProxy::getVolSliderIsHided() { return m_pVolSlider->isHidden(); } /** * @brief updateProgress 更新播放进度条显示 * @param nValue 进度条的值 */ void ToolboxProxy::updateProgress(int nValue) { int nDuration = static_cast(m_pEngine->duration()); if (m_pProgBar_Widget->currentIndex() == 1) { //进度条模式 float value = nValue * nDuration / m_pProgBar->width(); int nCurrPos; if (value > 1 || value < -1) { nCurrPos = m_pProgBar->value() + value; } else { if (m_processAdd < 1.0 && m_processAdd > -1.0) { m_processAdd += (float)(nValue * nDuration) / m_pProgBar->width(); qInfo() << m_processAdd; return; } else { nCurrPos = m_pProgBar->value() + m_processAdd; m_processAdd = .0; } } if (!m_pProgBar->signalsBlocked()) { m_pProgBar->blockSignals(true); } m_pProgBar->slider()->setSliderPosition(nCurrPos); m_pProgBar->slider()->setValue(nCurrPos); } else { m_pViewProgBar->setIsBlockSignals(true); m_pViewProgBar->setValue(m_pViewProgBar->getValue() + nValue); } } /** * @brief updateSlider 根据进度条显示更新影片实际进度 */ void ToolboxProxy::updateSlider() { if (m_pProgBar_Widget->currentIndex() == 1) { m_pEngine->seekAbsolute(m_pProgBar->value()); m_pProgBar->blockSignals(false); } else { m_pEngine->seekAbsolute(m_pViewProgBar->getTimePos()); m_pViewProgBar->setIsBlockSignals(false); } } /** * @brief initThumb 初始化加载胶片线程 */ void ToolboxProxy::initThumbThread() { ThumbnailWorker::get().setPlayerEngine(m_pEngine); connect(&ThumbnailWorker::get(), &ThumbnailWorker::thumbGenerated, this, &ToolboxProxy::updateHoverPreview); } /** * @brief updateSliderPoint 非x86平台下更新音量条控件位置 * @param point 传入主窗口左上角顶点在屏幕的位置 */ void ToolboxProxy::updateSliderPoint(QPoint &point) { m_pVolSlider->updatePoint(point); // move to the final position QRect mainRect = m_pMainWindow->rect(); QRect viewRect = mainRect.marginsRemoved(QMargins(1, 1, 1, 1)); QPoint volPoint = point + QPoint(viewRect.width() - (TOOLBOX_BUTTON_WIDTH * 2 + 30 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2), viewRect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT) + QPoint(6, 0); m_pVolSlider->move(volPoint); } /** * @brief ~ToolboxProxy 析构函数 */ ToolboxProxy::~ToolboxProxy() { if(CompositingManager::isMpvExists()) { ThumbnailWorker::get().stop(); } delete m_pPreviewer; delete m_pPreviewTime; if (m_pWorker) { m_pWorker->quit(); m_pWorker->deleteLater(); } } viewProgBarLoad::viewProgBarLoad(PlayerEngine *engine, DMRSlider *progBar, ToolboxProxy *parent) { initMember(); m_pParent = parent; m_pEngine = engine; m_pProgBar = progBar; m_seekTime = new char[12]; initThumb(); } void viewProgBarLoad::setListPixmapMutex(QMutex *pMutex) { m_pListPixmapMutex = pMutex; } void viewProgBarLoad::run() { loadViewProgBar(m_pParent->size()); } viewProgBarLoad::~viewProgBarLoad() { delete [] m_seekTime; m_seekTime = nullptr; if (m_video_thumbnailer != nullptr) { m_mvideo_thumbnailer_destroy(m_video_thumbnailer); m_video_thumbnailer = nullptr; } } } #undef THEME_TYPE #include "toolbox_proxy.moc" deepin-movie-reborn-5.15.10/src/widgets/toolbox_proxy.h000066400000000000000000000551531473342170300231030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /** * @file 此文件中实现播放窗口工具栏相关内容 */ #ifndef _DMR_TOOLBOX_PROXY_H #define _DMR_TOOLBOX_PROXY_H #include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include "dguiapplicationhelper.h" #include "videoboxbutton.h" #include "toolbutton.h" #include "playlist_widget.h" #include "thumbnail_worker.h" #include "slider.h" #include "volumeslider.h" #include "mircastwidget.h" namespace Dtk { namespace Widget { class DImageButton; } } DWIDGET_USE_NAMESPACE namespace dmr { class PlayerEngine; class VolumeButton; class ToolButton; class MainWindow; class DMRSlider; class ThumbnailPreview; class SliderTime; //class SubtitlesView; class VolumeSlider; class ViewProgBar; class viewProgBarLoad; class PlaylistWidget; class ImageItem : public DLabel { Q_OBJECT public: /** * @brief ImageItem 实现胶片整体的窗口布局 * @param image 胶片 * @param bIsblack 是否为灰色胶片 * @param parent 父窗口 */ ImageItem(QPixmap image, bool bIsblack = false, QWidget *parent = nullptr): DLabel(parent), m_pixmap(image) { } protected: /** * @brief paintEvent 绘制事件函数 */ void paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QSize size(m_pixmap.size()); QBitmap mask(size); QPainter painter1(&mask); painter1.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); painter1.fillRect(mask.rect(), Qt::white); painter1.setBrush(QColor(0, 0, 0)); painter1.drawRoundedRect(mask.rect(), 5, 5); QPixmap image = m_pixmap; image.setMask(mask); painter.setClipping(true); QPainterPath bg0; bg0.addRoundedRect(rect(), 5, 5); painter.setClipPath(bg0); painter.drawPixmap(rect(), image); QPen pen; pen.setWidth(2); if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(0, 0, 0, int(0.1 * 255))); painter.setPen(pen); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { pen.setColor(QColor(255, 255, 255, int(0.1 * 255))); painter.setPen(pen); } painter.setBrush(Qt::NoBrush); painter.drawRoundedRect(rect(), 5, 5); } private: QPixmap m_pixmap; ///胶片的图像 }; /** * @brief The IndicatorItem class * 实现胶片模式时,播放进度光标显示 */ class IndicatorItem : public QWidget { Q_OBJECT public: /** * @brief IndicatorItem 构造函数 * @param parent 父窗口 */ explicit IndicatorItem(QWidget *parent = nullptr): QWidget(parent) { initMember(); } /** * @brief setPressed 设置是否按下 * @param bPressed 按下标志位 */ void setPressed(bool bPressed) { m_bIsPressed = bPressed; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { if (bPressed) resize(2, 42); else resize(6, 42); } else { if (bPressed) resize(2, 60); else resize(6, 60); } #else if (bPressed) resize(2, 60); else resize(6, 60); #endif } protected: /** * @brief paintEvent 绘制事件函数 */ void paintEvent(QPaintEvent *) { QPainter painter(this); QRect backgroundRect = rect(); painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::Antialiasing); QPainterPath bpath; if (!m_bIsPressed) { QPen pen; pen.setWidth(1); pen.setColor(QColor(0, 0, 0)); bpath.addRoundedRect(backgroundRect, 3, 3); painter.setPen(pen); painter.setBrush(Qt::NoBrush); painter.setOpacity(0.4); painter.fillPath(bpath, QColor(0, 0, 0)); //改变一下paint的顺序锯齿效果没有那么明显 QPainterPath bpath1; painter.setOpacity(1); bpath1.addRoundedRect(backgroundRect.marginsRemoved(QMargins(1, 1, 1, 1)), 3, 3); painter.fillPath(bpath1, QColor(255, 255, 255)); } else { painter.fillRect(backgroundRect, QBrush(QColor(255, 138, 0))); } } void initMember() { m_bIsPressed = false; } private: bool m_bIsPressed; ///鼠标是否按下 }; //wayland下防止窗口抖动背景窗口 class PlaylistBack: public QWidget { public: explicit PlaylistBack(QWidget *parent = nullptr): QWidget(parent) { setWindowFlags(windowFlags() | Qt::FramelessWindowHint); // 设置无边框 setAttribute(Qt::WA_TranslucentBackground); // 设置背景透明 } protected: /** * @brief paintEvent 绘制事件函数 */ void paintEvent(QPaintEvent *) { QPainter painter(this); if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { painter.fillRect(rect(), QBrush(QColor(31, 31, 31))); } else { painter.fillRect(rect(), this->palette().background()); } } }; /** * @brief The ToolboxProxy class * 实现影院工具栏 */ class ToolboxProxy: public DFloatingWidget { Q_OBJECT public: /** * @brief ToolboxProxy 构造函数 * @param mainWindow 主窗口 * @param pPlayerEngine 播放引擎对象指针 */ ToolboxProxy(QWidget *mainWindow, PlayerEngine *pPlayerEngine); /** * @brief ~ToolboxProxy 析构函数 */ virtual ~ToolboxProxy() override; /** * @brief updateTimeInfo 更新工具栏中播放时间显示 * @param duration 视频总时长 * @param pos 当前播放的时间点 * @param pTimeLabel 当前播放时间 * @param pTimeLabelend 视频总时长 * @param flag 是否为全屏的控件 */ void updateTimeInfo(qint64 duration, qint64 pos, QLabel *pTimeLabel, QLabel *pTimeLabelend, bool flag); /** * @brief anyPopupShown 是否存在一些弹出显示窗口 * @return true时为有,false为无 */ bool anyPopupShown() const; /** * @brief closeAnyPopup 关闭所有弹窗效果 */ void closeAnyPopup(); /** * @brief setPlaylist 传递播放列表指针 * @param playlist 播放列表对象指针 */ void setPlaylist(PlaylistWidget *pPlaylist); /** * @brief addpmList 将读取到的缩略图加载到列表中 * @param pm 缩略图图像 */ void addpmList(QList &pm) { m_pmList.clear(); m_pmList.append(pm); } /** * @brief addpmBlackList 将读取到的缩略图加载到灰色列表中 * @param pm_black 缩略图图像 */ void addpmBlackList(QList &pmBlack) { m_pmBlackList.clear(); m_pmBlackList.append(pmBlack); } /** * @brief getfullscreentimeLabel 获取全屏时当前播放时间控件 * @return 返回label控件指针 */ QLabel *getfullscreentimeLabel(); /** * @brief getfullscreentimeLabelend 获取全屏时当前播放总时长控件 * @return 返回label控件指针 */ QLabel *getfullscreentimeLabelend(); /** * @brief getbAnimationFinash 查看是否动画已结束 * @return 动画进行中标志位 */ bool getbAnimationFinash(); /** * @brief setVolSliderHide 将音量条控件隐藏 */ void setVolSliderHide(); /** * @brief getVolSliderIsHided 获取音量条状态 * @return 返回音量条的隐藏状态 */ bool getVolSliderIsHided(); /** * @brief setButtonTooltipHide 将按键上的悬停显示内容隐藏 */ void setButtonTooltipHide(); /** * @brief initToolTip 初始化按键上访提示 */ void initToolTip(); /** * @brief getSlider 获取进度条 * @return 进度条对象 */ DMRSlider *getSlider() { return m_pProgBar; } /** * @brief getViewProBar 获取胶片模式进度 * @return 返回胶片窗口 */ ViewProgBar *getViewProBar() { return m_pViewProgBar; } /** * @brief getListBtnFocus * 获取播放列表按钮焦点状态 * 用于判断是否为tab键升起 * @return 焦点状态 */ bool getListBtnFocus(); /** * @brief updateProgress 更新播放进度条显示 * @param nValue 进度条的值 */ void updateProgress(int nValue); /** * @brief updateSlider 根据进度条显示更新影片实际进度 */ void updateSlider(); /** * @brief initThumb 初始化加载胶片线程 */ void initThumbThread(); /** * @brief updateSliderPoint 非x86平台下更新音量条控件位置 * @param point 传入主窗口左上角顶点在屏幕的位置 */ void updateSliderPoint(QPoint &point); /** * @brief volumeUp 鼠标滚轮增加音量 */ void volumeUp(); /** * @brief volumeDown 鼠标滚轮减少音量 */ void volumeDown(); /** * @brief calculationStep 计算鼠标滚轮滚动的步进 * @param angleDelta 鼠标滚动的距离 */ void calculationStep(int iAngleDelta); /** * @brief changeMuteState 切换静音模式 */ void changeMuteState(); /** * @brief playlistClosedByEsc Esc关闭播放列表 */ void playlistClosedByEsc(); /** * @brief getMouseTime 获取之前鼠标点击的时间 * @return 时间 */ qint64 getMouseTime(); /** * @brief clearPlayListFocus * 清空播放列表中的焦点并将标志位重置 * esc降下设回焦点 */ void clearPlayListFocus(); /** * @brief setBtnFocusSign 设置标志位 */ void setBtnFocusSign(bool); bool isInMircastWidget(const QPoint &); /** * @brief updateMircastWidget 更新投屏窗口位置 * @param p 移动位置点 */ void updateMircastWidget(QPoint p); void hideMircastWidget(); MircastWidget *getMircast() { return m_mircastWidget; } VolumeSlider *volumeSlider() { return m_pVolSlider; } /////add for unit test///// DButtonBoxButton *playBtn() {return m_pPlayBtn;} DButtonBoxButton *prevBtn() {return m_pPrevBtn;} DButtonBoxButton *nextBtn() {return m_pNextBtn;} ToolButton *listBtn() {return m_pListBtn;} ToolButton *fsBtn() {return m_pFullScreenBtn;} VolumeButton *volBtn() {return m_pVolBtn;} void setThumbnailmode(bool is_thumbnailmode) {m_bThumbnailmode = is_thumbnailmode;} MircastWidget *getMircastWidget() {return m_mircastWidget;} public slots: /** * @brief finishLoadSlot 缩略图线程加载完成槽函数 * @param size 主窗口大小, * TODO(xxxpengfei):此处窗口大小没用,请在1050前去除并梳理逻辑 */ void finishLoadSlot(QSize size); /** * @brief setthumbnailmode 设置胶片进度条的模式 */ void setthumbnailmode(); /** * @brief updateFullState 更新全屏状态下工具栏状态 */ void updateFullState(); void slotUpdateMircast(int, QString); signals: /** * @brief sigVolumeChanged 音量变化返回主窗口信号 * @param nVolume 变化后的音量值 */ void sigVolumeChanged(int &nVolume); /** * @brief sigMuteStateChanged 静音状态变化后返回主窗口的信号 * @param bMute 静音状态 */ void sigMuteStateChanged(bool &bMute); /** * @brief 功能不支持信号 */ void sigUnsupported(); void sigMircastState(int, QString); protected slots: /** * @brief buttonClicked 处理信号转发器发送的信号 * @param id 发出信号的对象id */ void buttonClicked(QString id); /** * @brief buttonEnter 工具栏按钮进入事件槽函数 */ void buttonEnter(); /** * @brief buttonLeave 工具栏按钮离开事件槽函数 */ void buttonLeave(); /** * @brief updatePlayState 更新不同播放状态下工具栏状态 */ void updatePlayState(); /** * @brief updateMovieProgress 更新影片进度条 */ void updateMovieProgress(); /** * @brief updateButtonStates */ void updateButtonStates(); void updateTimeVisible(bool visible); /** * @brief progressHoverChanged 更新预览图的位置 * @param v 鼠标悬停的位置 */ void progressHoverChanged(int v); /** * @brief updateHoverPreview 更新悬停时预览缩略图 * @param url 文件url * @param secs 当前时间 */ void updateHoverPreview(const QUrl &url, int secs); /** * @brief waitPlay 等待延时播放 */ void waitPlay(); /** * @brief slotThemeTypeChanged 主题变化槽函数 */ void slotThemeTypeChanged(); /** * @brief slotLeavePreview 鼠标离开胶片进度条槽函数 */ void slotLeavePreview(); /** * @brief slotHidePreviewTime 鼠标离开后隐藏事件控件显示 */ void slotHidePreviewTime(); /** * @brief slotSliderPressed 进度条鼠标按下槽函数 */ void slotSliderPressed(); /** * @brief slotSliderReleased 进度条鼠标释放槽函数 */ void slotSliderReleased(); /** * @brief slotBaseMuteChanged 静音 * @param sk * @param val */ void slotBaseMuteChanged(QString sk, const QVariant &val); /** * @brief slotVolumeButtonClicked 音量按键单击事件槽函数 */ void slotVolumeButtonClicked(); /** * @brief slotFileLoaded 文件加载槽函数 */ void slotFileLoaded(); /** * @brief slotElapsedChanged 当前播放时长变化槽函数 */ void slotElapsedChanged(); /** * @brief slotApplicationStateChanged 应用状态变化才敢三个月 * @param e 状态 */ void slotApplicationStateChanged(Qt::ApplicationState e); /** * @brief slotPlayListStateChange 播放列表状态变化槽函数,仅playlist_widget升起或者降下的时候被调用 */ void slotPlayListStateChange(bool isShortcut); /** * @brief slotUpdateThumbnailTimeOut 超时更新胶片 */ void slotUpdateThumbnailTimeOut(); /** * @brief slotProAnimationFinished 动画结束槽函数 */ void slotProAnimationFinished(); /** * @brief slotVolumeChanged 音量变化槽函数 * @param nVolume 音量值 */ void slotVolumeChanged(int nVolume); /** * @brief slotMuteStateChanged 静音状态变化槽函数 * @param bMute 静音状态 */ void slotMuteStateChanged(bool bMute); protected: /** * @brief showEvent 显示事件函数 * @param event 显示事件 */ void showEvent(QShowEvent *event) override; /** * @brief paintEvent 重绘事件函数 * @param event 重绘事件 */ void paintEvent(QPaintEvent *event) override; /** * @brief resizeEvent 窗口大小变化事件函数 * @param event 大小变化事件 */ void resizeEvent(QResizeEvent *event) override; /** * @brief mouseMoveEvent 鼠标移动事件函数 * @param ev 鼠标移动事件 */ void mouseMoveEvent(QMouseEvent *ev) override; /** * @brief eventFilter 事件过滤器 * @param obj 事件发出对象 * @param ev 过滤到的事件 * @return 返回是否继续执行 */ bool eventFilter(QObject *obj, QEvent *ev) override; private slots: void updateMircastTime(int); private: /** * @brief setup 初始化工具栏布局 */ void setup(); /** * @brief updateToolTipTheme 更新按钮悬浮框主题 * @param btn 对应的按钮 */ void updateToolTipTheme(ToolButton *btn); /** * @brief updateThumbnail 更新播放列表中的缩略图显示 */ void updateThumbnail(); /** * @brief updatePreviewTime 更新胶片模式下鼠标点击时时间框的显示 * @param secs 当前时间 * @param pos 当前位置点 */ void updatePreviewTime(qint64 secs, const QPoint &pos); /** * @brief initMember 初始化成员变量 */ void initMember(); MainWindow *m_pMainWindow; ///主窗口 PlayerEngine *m_pEngine; ///播放引擎 PlaylistWidget *m_pPlaylist = nullptr; ///播放列表窗口 DWidget *m_pProgBarspec; ///空白进度条窗口 QWidget *m_pBotSpec; /// QWidget *m_pBotToolWgt; /// QStackedWidget *m_pProgBar_Widget; /// DBlurEffectWidget *bot_widget; /// QHBoxLayout *_mid; /// QHBoxLayout *_right; /// QLabel *m_pFullscreentimelable; ///全屏下视频当前播放时长控件 QLabel *m_pFullscreentimelableend; ///全屏下视频总时长控件 QLabel *m_pTimeLabel; ///视频当前播放时长控件 QLabel *m_pTimeLabelend; ///视频总时长的控件 VolumeSlider *m_pVolSlider; ///音量条控件窗口 ViewProgBar *m_pViewProgBar; ///胶片模式进度条窗口 DMRSlider *m_pProgBar; ///滑动条模式进度条窗口 ThumbnailPreview *m_pPreviewer; ///鼠标悬停时进度条预览胶片控件 SliderTime *m_pPreviewTime; ///鼠标悬停时进度条预览时间控件 MircastWidget *m_mircastWidget; ///投屏选项窗口 ButtonBoxButton *m_pPlayBtn; ///播放按钮 ButtonBoxButton *m_pPrevBtn; ///上一个按钮 ButtonBoxButton *m_pNextBtn; ///下一个按钮 DButtonBox *m_pPalyBox; ///按钮组 VolumeButton *m_pVolBtn; ///音量按钮 ToolButton *m_pListBtn; ///播放列表按钮 ToolButton *m_pFullScreenBtn; ///全屏按钮 ToolButton *m_pMircastBtn; ///投屏按钮 //lmh0910DButtonBoxButton替换到ButtonBoxButton ButtonToolTip *m_pPlayBtnTip; ///播放按钮的悬浮提示 ButtonToolTip *m_pPrevBtnTip; ///上一个按钮的悬浮提示 ButtonToolTip *m_pNextBtnTip; ///下一个按钮的悬浮提示 ButtonToolTip *m_pFullScreenBtnTip; ///全屏按钮的悬浮提示 ButtonToolTip *m_pListBtnTip; ///播放列表按钮的悬浮提示 ButtonToolTip *m_pMircastBtnTip; ButtonToolTip *m_pVolBtnTip; viewProgBarLoad *m_pWorker; ///获取胶片的线程 QPropertyAnimation *m_pPaOpen; ///工具栏升起动画 QPropertyAnimation *m_pPaClose; ///工具栏降下动画 PlaylistBack *m_pListWgt = nullptr; ///wayland播放列表背景窗口 QList m_pmList; QList m_pmBlackList; QMutex m_listPixmapMutex; ///缩略图list的锁 qint64 m_nClickTime; ///鼠标点击时间 bool m_bMouseFlag; bool m_bMousePree; /// bool m_bThumbnailmode; ///进度条是否为胶片模式 bool m_bAnimationFinash; ///动画是否完成 bool m_bCanPlay; ///判断是否能进行曲目切换的标志位 bool m_bSetListBtnFocus; ///设置播放列表按钮焦点标志位 float m_processAdd; }; /** * @brief The viewProgBarLoad class * 加载胶片线程 */ class viewProgBarLoad: public QThread { Q_OBJECT public: /** * @brief viewProgBarLoad 构造函数 * @param engine 播放引擎 * @param progBar 进度条 * @param parent 父窗口 */ explicit viewProgBarLoad(PlayerEngine *engine = nullptr, DMRSlider *progBar = nullptr, ToolboxProxy *parent = nullptr); /** * @brief setListPixmapMutex 设置图像表线程锁 * @param pMutex 锁 * * 必须调用这个函数加锁 */ void setListPixmapMutex(QMutex *pMutex); /** * @brief setListPixmapMutex 设置图像表线程锁 * 必须调用这个函数加锁 */ ~viewProgBarLoad(); public slots: /** * @brief loadViewProgBar 加载胶片 * @param size 窗口大小 */ void loadViewProgBar(QSize size); signals: /** * @brief leaveViewProgBar 离开胶片进度条信号 */ void leaveViewProgBar(); /** * @brief hoverChanged 悬停位置改变 */ void hoverChanged(int); /** * @brief sliderMoved 进度条移动信号 */ void sliderMoved(int); /** * @brief sigFinishiLoad 胶片模式加载完成信号 * @param size 窗口尺寸 */ void sigFinishiLoad(QSize size); /** * @brief finished 线程结束信号 */ // void finished(); protected: void run(); private: /** * @brief initThumb 动态初始化缩略图获取 */ void initThumb(); /** * @brief initMember 初始化成员变量 */ void initMember(); PlayerEngine *m_pEngine; ///播放引擎 ToolboxProxy *m_pParent; ///主窗口 DMRSlider *m_pProgBar; ///胶片模式窗口 QMutex *m_pListPixmapMutex; ///线程锁 char *m_seekTime; ///图像时间 video_thumbnailer *m_video_thumbnailer = nullptr; image_data *m_image_data = nullptr; mvideo_thumbnailer m_mvideo_thumbnailer = nullptr; mvideo_thumbnailer_destroy m_mvideo_thumbnailer_destroy = nullptr; mvideo_thumbnailer_create_image_data m_mvideo_thumbnailer_create_image_data = nullptr; mvideo_thumbnailer_destroy_image_data m_mvideo_thumbnailer_destroy_image_data = nullptr; mvideo_thumbnailer_generate_thumbnail_to_buffer m_mvideo_thumbnailer_generate_thumbnail_to_buffer = nullptr; }; } //HACK: extent area for progress slider #define TOOLBOX_TOP_EXTENT 0 #define TOOLBOX_SPACE_HEIGHT 314 #define TOOLBOX_HEIGHT 80 /*紧凑模式下toolbox的高度*/ #define TOOLBOX_DSIZEMODE_HEIGHT 50 #define TOOLBOX_HEIGHT_EXT (TOOLBOX_HEIGHT + TOOLBOX_TOP_EXTENT) #define TOOLBOX_BUTTON_WIDTH 50 #define TOOLBOX_BUTTON_HEIGHT 50 #define VOLSLIDER_WIDTH 62 #define VOLSLIDER_HEIGHT 205 #endif /* ifndef _DMR_TOOLBOX_PROXY_H */ deepin-movie-reborn-5.15.10/src/widgets/toolbutton.cpp000066400000000000000000000066631473342170300227220ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "toolbutton.h" #include "utils.h" #include #include namespace dmr { VolumeButton::VolumeButton(QWidget *parent) : DIconButton(parent), m_nVolume(100), m_bMute(false) { setIcon(QIcon::fromTheme("dcc_volume")); setIconSize(QSize(36, 36)); installEventFilter(this); m_pToolTip = new ToolTip; m_pToolTip->setText(tr("Volume")); connect(&m_showTime, &QTimer::timeout, [=]{ QPoint pos = this->parentWidget()->mapToGlobal(this->pos()); pos.rx() = pos.x() + (this->width() - m_pToolTip->width()) / 2; pos.ry() = pos.y() - 40; if (nullptr != m_pToolTip) { m_pToolTip->move(pos); m_pToolTip->show(); } }); } void VolumeButton::hideTip() { if (m_showTime.isActive()) m_showTime.stop(); if (m_pToolTip->isVisible()) m_pToolTip->hide(); } void VolumeButton::setVolume(int nVolume) { m_nVolume = nVolume; changeStyle(); } void VolumeButton::setMute(bool bMute) { m_bMute = bMute; changeStyle(); } void VolumeButton::setButtonEnable(bool bFlag) { QIcon icon = QIcon::fromTheme("dcc_volumedisable"); if (bFlag) { setEnabled(true); changeStyle(); } else { setEnabled(false); setIcon(icon); } } void VolumeButton::changeStyle() { if (m_nVolume >= 66) //根据音量大小改变图标,更直观的表现 setIcon(QIcon::fromTheme("dcc_volume")); else if (m_nVolume >= 33) setIcon(QIcon::fromTheme("dcc_volumemid")); else setIcon(QIcon::fromTheme("dcc_volumelow")); if (m_bMute || m_nVolume == 0) setIcon(QIcon::fromTheme("dcc_mute")); } void VolumeButton::enterEvent(QEvent *ev) { emit entered(); if (!utils::check_wayland_env() && !m_showTime.isActive()) m_showTime.start(1000); DIconButton::enterEvent(ev); } void VolumeButton::leaveEvent(QEvent *ev) { emit leaved(); m_showTime.stop(); if (!utils::check_wayland_env() && nullptr != m_pToolTip && m_pToolTip->isVisible()) { QThread::msleep(10); m_pToolTip->hide(); } DIconButton::leaveEvent(ev); } void VolumeButton::wheelEvent(QWheelEvent *we) { //qInfo() << we->angleDelta() << we->modifiers() << we->buttons(); if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) { if (we->angleDelta().y() > 0) { emit requestVolumeUp(); } else { emit requestVolumeDown(); } } } //tab键焦点移出时同鼠标移出,响应自动隐藏 void VolumeButton::focusOutEvent(QFocusEvent *ev) { // mips和arm音量条属性为QTool,升起时焦点会在音量条上 // 所以不能使用焦点是否变化来让音量调消失 #if !defined (__mips__) && !defined (__aarch64__) emit leaved(); #endif DIconButton::focusOutEvent(ev); } bool VolumeButton::eventFilter(QObject *obj, QEvent *e) { QMouseEvent* pMouseEvent = dynamic_cast(e); if(!isEnabled() && pMouseEvent) // 音量按钮不能使用时需要给出提示 { if(pMouseEvent->type() == QEvent::MouseButtonPress) { emit sigUnsupported(); } return false; } return QObject::eventFilter(obj, e); } } deepin-movie-reborn-5.15.10/src/widgets/toolbutton.h000066400000000000000000000240601473342170300223560ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef _DMR_TOOLBUTTON_H #define _DMR_TOOLBUTTON_H //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { enum ThemeTYpe { lightTheme, darkTheme, defaultTheme }; class ButtonBoxButton: public DButtonBoxButton { Q_OBJECT public: explicit ButtonBoxButton(const QString &text, QWidget *parent = nullptr) : DButtonBoxButton(text, parent) {}; signals: void entered(); void leaved(); protected: void enterEvent(QEvent *ev) override { emit entered(); }; void leaveEvent(QEvent *ev) override { emit leaved(); }; }; class ButtonToolTip : public DArrowRectangle { Q_OBJECT public: explicit ButtonToolTip(QWidget *parent = nullptr) : DArrowRectangle(DArrowRectangle::ArrowBottom, DArrowRectangle::FloatWidget, parent) { setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_TranslucentBackground); resetSize(); connect(qApp, &QGuiApplication::fontChanged, this, [ = ] { resetSize(); }); QGraphicsDropShadowEffect *bodyShadow = new QGraphicsDropShadowEffect(this); bodyShadow->setBlurRadius(10.0); bodyShadow->setColor(QColor(0, 0, 0, 0.1 * 255)); bodyShadow->setOffset(0, 2.0); setArrowWidth(1); setArrowHeight(1); hide(); } virtual ~ButtonToolTip() {}; void setText(const QString &strText) { m_strText = strText; } void changeTheme(ThemeTYpe themeType = defaultTheme) { m_themeType = themeType; update(); } void show() { if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) { changeTheme(lightTheme); } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) { changeTheme(darkTheme); } else { changeTheme(lightTheme); } resetSize(); QWidget::show(); } protected: virtual void resizeEvent(QResizeEvent *ev) { resetSize(); update(); return QWidget::resizeEvent(ev); } virtual void paintEvent(QPaintEvent *ev) { QPainter pt(this); pt.setRenderHint(QPainter::Antialiasing); if (lightTheme == m_themeType) { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, 220))); } else if (darkTheme == m_themeType) { pt.setPen(QColor(255, 255, 255, 10)); pt.setBrush(QBrush(QColor(42, 42, 42, 220))); } else { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, 220))); } QRect rect = this->rect(); rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); QPainterPath painterPath; painterPath.addRoundedRect(rect, 8, 8); pt.drawPath(painterPath); DPalette pal_text = DApplicationHelper::instance()->palette(this); pal_text.setBrush(DPalette::Text, pal_text.color(DPalette::ToolTipText)); this->setPalette(pal_text); pt.setPen(pal_text.color(DPalette::ToolTipText)); DFontSizeManager::instance()->bind(this, DFontSizeManager::T8); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8); QFontMetrics fm(font); auto w = fm.boundingRect(m_strText).width(); auto h = fm.height(); pt.drawText((rect.width() - w) / 2, (rect.height() + h / 2) / 2, m_strText); } void resetSize() { DFontSizeManager::instance()->bind(this, DFontSizeManager::T8); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8); QFontMetrics fm(font); auto w = fm.boundingRect(m_strText).width(); auto h = fm.height(); resize(w + 14, h + 8); } private: QString m_strText = nullptr; ThemeTYpe m_themeType; }; class ToolTip: public QFrame { Q_OBJECT public: explicit ToolTip(QWidget *parent = nullptr) : QFrame(parent) { setAttribute(Qt::WA_DeleteOnClose); setWindowFlags(windowFlags() | Qt::ToolTip); setAttribute(Qt::WA_TranslucentBackground); resetSize(); connect(qApp, &QGuiApplication::fontChanged, this, [ = ] { resetSize(); }); auto *bodyShadow = new QGraphicsDropShadowEffect(this); bodyShadow->setBlurRadius(10.0); bodyShadow->setColor(QColor(0, 0, 0, int(0.1 * 255))); bodyShadow->setOffset(0, 2.0); // this->setGraphicsEffect(bodyShadow); m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasBlurWindowChanged, this, &ToolTip::slotWMChanged); } virtual ~ToolTip() {} void setText(const QString &strText) { m_strText = strText; resetSize(); } void changeTheme(ThemeTYpe themeType = defaultTheme) { m_themeType = themeType; update(); } public slots: void slotWMChanged() { m_bIsWM = DWindowManagerHelper::instance()->hasBlurWindow(); } protected: virtual void paintEvent(QPaintEvent *) { QPainter pt(this); pt.setRenderHint(QPainter::Antialiasing); int transparency = 220; if (!m_bIsWM) { transparency = 255; } if (lightTheme == m_themeType) { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, transparency))); } else if (darkTheme == m_themeType) { pt.setPen(QColor(255, 255, 255, 10)); pt.setBrush(QBrush(QColor(42, 42, 42, transparency))); } else { pt.setPen(QColor(0, 0, 0, 10)); pt.setBrush(QBrush(QColor(247, 247, 247, transparency))); } QRect rect = this->rect(); QPainterPath painterPath; if (m_bIsWM) { rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); painterPath.addRoundedRect(rect, 8, 8); } else { painterPath.addRoundedRect(rect, 0, 0); } pt.drawPath(painterPath); DPalette pal_text = DApplicationHelper::instance()->palette(this); pal_text.setBrush(DPalette::Text, pal_text.color(DPalette::ToolTipText)); this->setPalette(pal_text); pt.setPen(pal_text.color(DPalette::ToolTipText)); DFontSizeManager::instance()->bind(this, DFontSizeManager::T8); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8); QFontMetrics fm(font); auto w = fm.boundingRect(m_strText).width(); auto h = fm.height(); pt.drawText((rect.width() - w) / 2, (rect.height() + h / 2) / 2, m_strText); } virtual void resizeEvent(QResizeEvent *ev) { resetSize(); update(); return QWidget::resizeEvent(ev); } private: void resetSize() { DFontSizeManager::instance()->bind(this, DFontSizeManager::T8); QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8); QFontMetrics fm(font); auto w = fm.boundingRect(m_strText).width(); auto h = fm.height(); resize(w + 14, h + 8); } private: bool m_bTheme; ThemeTYpe m_themeType; QString m_strText = nullptr; bool m_bIsWM {false}; }; class ToolButton: public DIconButton { Q_OBJECT public: explicit ToolButton(QWidget *parent = nullptr): DIconButton(parent) {} virtual ~ToolButton() {} void initToolTip() { if (nullptr == m_pToolTip) { m_pToolTip = new ToolTip; } connect(&m_showTime, &QTimer::timeout, [=]{ QPoint pos = this->parentWidget()->mapToGlobal(this->pos()); pos.rx() = pos.x() + (this->width() - m_pToolTip->width()) / 2; pos.ry() = pos.y() - 40; if (nullptr != m_pToolTip) { m_pToolTip->move(pos); m_pToolTip->show(); } }); } void showToolTip() { if (!m_showTime.isActive()) m_showTime.start(1000); } void hideToolTip() { m_showTime.stop(); if (nullptr != m_pToolTip && m_pToolTip->isVisible()) { QThread::msleep(10); m_pToolTip->hide(); } } void changeTheme(ThemeTYpe themeType = defaultTheme) { m_pToolTip->changeTheme(themeType); } void setTooTipText(const QString &strTip) { m_pToolTip->setText(strTip); } signals: void entered(); void leaved(); protected: void enterEvent(QEvent *) override { emit entered(); } void leaveEvent(QEvent *) override { emit leaved(); } private: ToolTip *m_pToolTip {nullptr}; QTimer m_showTime; }; class VolumeButton: public DIconButton { Q_OBJECT public: explicit VolumeButton(QWidget *parent = 0); void changeStyle(); void setVolume(int nVolume); void setMute(bool bMute); void setButtonEnable(bool bFlag); void hideTip(); signals: void entered(); void leaved(); void requestVolumeUp(); void requestVolumeDown(); /** * @brief 功能不支持信号 */ void sigUnsupported(); protected: void enterEvent(QEvent *ev) override; void leaveEvent(QEvent *ev) override; void wheelEvent(QWheelEvent *wev) override; void focusOutEvent(QFocusEvent *ev); bool eventFilter(QObject *obj, QEvent *e); private: QString _name; int m_nVolume; bool m_bMute; ToolTip *m_pToolTip; QTimer m_showTime; }; } #endif /* ifndef _DMR_TOOLBUTTON_H */ deepin-movie-reborn-5.15.10/src/widgets/url_dialog.cpp000066400000000000000000000061131473342170300226200ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "url_dialog.h" #include "dmr_lineedit.h" #include "dmr_settings.h" #include DWIDGET_USE_NAMESPACE DGUI_USE_NAMESPACE namespace dmr { UrlDialog::UrlDialog(QWidget *parent) : DDialog(parent) { addButtons(QStringList() << QApplication::translate("UrlDialog", "Cancel") << QApplication::translate("UrlDialog", "OK")); setOnButtonClickedClose(false); setDefaultButton(1); setIcon(QIcon::fromTheme("deepin-movie")); QLabel* messageLabel=new QLabel; messageLabel->setText(QApplication::translate("UrlDialog", "Please enter the URL:")); messageLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); m_lineEdit = new LineEdit; /** * widget包含一个垂直布局 * 存放了messageLabel和m_lineEdit */ QWidget* widget=new QWidget; QVBoxLayout* contentLayout=new QVBoxLayout; contentLayout->setSpacing(10); contentLayout->setContentsMargins({0, 0, 0, 0}); contentLayout->addWidget(messageLabel); contentLayout->addWidget(m_lineEdit); widget->setLayout(contentLayout); addContent(widget); m_lineEdit->setFocusPolicy(Qt::StrongFocus); this->setFocusProxy(m_lineEdit); if (m_lineEdit->text().isEmpty()) { getButton(1)->setEnabled(false); } #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { setFixedSize(251, 150); } else { setFixedSize(380, 190); } connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, this, [=](DGuiApplicationHelper::SizeMode sizeMode) { if (sizeMode == DGuiApplicationHelper::NormalMode) { setFixedSize(380, 190); } else { setFixedSize(251, 150); } this->moveToCenter(); }); #endif connect(getButton(0), &QAbstractButton::clicked, this, [ = ] { done(QDialog::Rejected); }); connect(getButton(1), &QAbstractButton::clicked, this, [ = ] { done(QDialog::Accepted); }); connect(m_lineEdit, &QLineEdit::textChanged, this, &UrlDialog::slotTextchanged); } QUrl UrlDialog::url() const { auto u = QUrl(m_lineEdit->text(), QUrl::StrictMode); if (u.isLocalFile() || u.scheme().isEmpty()) return QUrl(); if (!Settings::get().iscommonPlayableProtocol(u.scheme())) return QUrl(); return u; } void UrlDialog::showEvent(QShowEvent *se) { m_lineEdit->setFocus(); DDialog::showEvent(se); } void UrlDialog::slotTextchanged() { if (m_lineEdit->text().isEmpty()) { getButton(1)->setEnabled(false); } else { getButton(1)->setEnabled(true); } } } deepin-movie-reborn-5.15.10/src/widgets/url_dialog.h000066400000000000000000000010321473342170300222600ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include DWIDGET_USE_NAMESPACE namespace dmr { class LineEdit; class UrlDialog: public DDialog { public: explicit UrlDialog(QWidget* parent = 0); QUrl url() const; public: void slotTextchanged(); protected: void showEvent(QShowEvent* se) override; private: LineEdit *m_lineEdit {nullptr}; }; } deepin-movie-reborn-5.15.10/src/widgets/videoboxbutton.cpp000066400000000000000000000251071473342170300235560ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "videoboxbutton.h" #include #include #include #include DGUI_USE_NAMESPACE VideoBoxButton::VideoBoxButton(const QString &text, QWidget *parent) : DButtonBoxButton(text, parent) { } VideoBoxButton::VideoBoxButton(const QString &text, const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic, QWidget *parent) : DButtonBoxButton(text, parent) { defaultPicPath.normalPicPath = normalPic; defaultPicPath.hoverPicPath = hoverPic; defaultPicPath.pressPicPath = pressPic; defaultPicPath.checkedPicPath = checkedPic; auto pl = this->palette(); QColor sbcolor("#000000"); sbcolor.setAlphaF(0.05); pl.setColor(DPalette::Shadow, sbcolor); setPalette(pl); QIcon icon; icon.addFile(normalPic); this->setIconSize(QSize(36, 36)); this->setIcon(icon); } // cppcheck修改 //void VideoBoxButton::setPropertyPic(QString propertyName, const QVariant &value, // const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic) //{ // VideoPicPathInfo curPicPath; // curPicPath.normalPicPath = normalPic; // curPicPath.hoverPicPath = hoverPic; // curPicPath.pressPicPath = pressPic; // curPicPath.checkedPicPath = checkedPic; // if (propertyPicPaths.first == propertyName && propertyPicPaths.second.contains(value)) { // propertyPicPaths.second[value] = curPicPath; // } else { // QMap curPicPathInfo; // curPicPathInfo.insert(value, curPicPath); // propertyPicPaths.first = propertyName; // propertyPicPaths.second = curPicPathInfo; // } // QIcon icon; // icon.addFile(normalPic); // this->setIconSize(QSize(36, 36)); // this->setIcon(icon); //} //void VideoBoxButton::setPropertyPic(const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic) //{ // defaultPicPath.normalPicPath = normalPic; // defaultPicPath.hoverPicPath = hoverPic; // defaultPicPath.pressPicPath = pressPic; // defaultPicPath.checkedPicPath = checkedPic; // QIcon icon; // icon.addFile(normalPic); // this->setIconSize(QSize(36, 36)); // this->setIcon(icon); //} /*void VideoBoxButton::setTransparent(bool flag) { transparent = flag; }*/ /*void VideoBoxButton::setAutoChecked(bool flag) { autoChecked = flag; }*/ void VideoBoxButton::enterEvent(QEvent *event) { // status = 1; // QString curPicPath = defaultPicPath.normalPicPath; // if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) { // QString curPropertyPicPathStr; // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.checkedPicPath; // } else { // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.hoverPicPath; // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.pressPicPath; // } // } // if (!curPropertyPicPathStr.isEmpty()) { // curPicPath = curPropertyPicPathStr; // } // } else { // QVariant value = property(propertyPicPaths.first.toStdString().data()); // VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value]; // QString curPropertyPicPathStr; // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.checkedPicPath; // } else { // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.hoverPicPath; // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.pressPicPath; // } else { // curPropertyPicPathStr = curPropertyPicPath.normalPicPath; // } // } // if (!curPropertyPicPathStr.isEmpty()) { // curPicPath = curPropertyPicPathStr; // } // } // QIcon icon; // icon.addFile(curPicPath); // this->setIconSize(QSize(36, 36)); // this->setIcon(icon); // DButtonBoxButton::enterEvent(event); // if (autoChecked) { // setChecked(true); // } DButtonBoxButton::enterEvent(event); } void VideoBoxButton::leaveEvent(QEvent *event) { // status = 0; // QString curPicPath = defaultPicPath.normalPicPath; // if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) { // QString curPropertyPicPathStr; // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.checkedPicPath; // } else { // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.hoverPicPath; // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { // curPropertyPicPathStr = defaultPicPath.pressPicPath; // } // } // if (!curPropertyPicPathStr.isEmpty()) { // curPicPath = curPropertyPicPathStr; // } // } else { // QVariant value = property(propertyPicPaths.first.toStdString().data()); // VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value]; // QString curPropertyPicPathStr; // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.checkedPicPath; // } else { // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.hoverPicPath; // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { // curPropertyPicPathStr = curPropertyPicPath.pressPicPath; // } else { // curPropertyPicPathStr = curPropertyPicPath.normalPicPath; // } // } // if (!curPropertyPicPathStr.isEmpty()) { // curPicPath = curPropertyPicPathStr; // } // } // QIcon icon; // icon.addFile(curPicPath); // this->setIconSize(QSize(36, 36)); // this->setIcon(icon); // DButtonBoxButton::leaveEvent(event); // if (autoChecked) { // setChecked(false); // } DButtonBoxButton::leaveEvent(event); } void VideoBoxButton::mousePressEvent(QMouseEvent *event) { status = 2; QString curPicPath = defaultPicPath.normalPicPath; if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) { QString curPropertyPicPathStr; if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.checkedPicPath; } else { if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.hoverPicPath; } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.pressPicPath; } } if (!curPropertyPicPathStr.isEmpty()) { curPicPath = curPropertyPicPathStr; } } else { QVariant value = property(propertyPicPaths.first.toStdString().data()); VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value]; QString curPropertyPicPathStr; if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.checkedPicPath; } else { if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.hoverPicPath; } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.pressPicPath; } else { curPropertyPicPathStr = curPropertyPicPath.normalPicPath; } } if (!curPropertyPicPathStr.isEmpty()) { curPicPath = curPropertyPicPathStr; } } QIcon icon; icon.addFile(curPicPath); this->setIconSize(QSize(36, 36)); this->setIcon(icon); DButtonBoxButton::mousePressEvent(event); } void VideoBoxButton::mouseReleaseEvent(QMouseEvent *event) { status = 0; QString curPicPath = defaultPicPath.normalPicPath; if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) { QString curPropertyPicPathStr; if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.checkedPicPath; } else { if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.hoverPicPath; } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { curPropertyPicPathStr = defaultPicPath.pressPicPath; } } if (!curPropertyPicPathStr.isEmpty()) { curPicPath = curPropertyPicPathStr; } } else { QVariant value = property(propertyPicPaths.first.toStdString().data()); VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value]; QString curPropertyPicPathStr; if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.checkedPicPath; } else { if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.hoverPicPath; } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) { curPropertyPicPathStr = curPropertyPicPath.pressPicPath; } else { curPropertyPicPathStr = curPropertyPicPath.normalPicPath; } } if (!curPropertyPicPathStr.isEmpty()) { curPicPath = curPropertyPicPathStr; } } QIcon icon; icon.addFile(curPicPath); this->setIconSize(QSize(36, 36)); this->setIcon(icon); DButtonBoxButton::mouseReleaseEvent(event); } deepin-movie-reborn-5.15.10/src/widgets/videoboxbutton.h000066400000000000000000000041131473342170300232150ustar00rootroot00000000000000// Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef VideoBOXBUTTON_H #define VideoBOXBUTTON_H #pragma once #include #include #include #include #include DWIDGET_USE_NAMESPACE class VideoBoxButton : public DButtonBoxButton { struct VideoPicPathInfo { QString normalPicPath; QString hoverPicPath; QString pressPicPath; QString checkedPicPath; }; Q_OBJECT public: explicit VideoBoxButton(const QString &text, QWidget *parent = Q_NULLPTR); VideoBoxButton(const QString &text, const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic = QString(), QWidget *parent = nullptr); // cppcheck修改 // void setPropertyPic(QString propertyName, const QVariant &value, const QString &normalPic, const QString &hoverPic, // const QString &pressPic, const QString &checkedPic = QString()); // void setPropertyPic(const QString &normalPic, const QString &hoverPic, // const QString &pressPic, const QString &checkedPic = QString()); void setTransparent(bool flag); void setAutoChecked(bool flag); protected: //void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; void enterEvent(QEvent *event) Q_DECL_OVERRIDE; void leaveEvent(QEvent *event) Q_DECL_OVERRIDE; void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; private: char status = 0; bool autoChecked = false; VideoPicPathInfo defaultPicPath; bool transparent = true; QPair > propertyPicPaths; }; #endif // VideoBOXBUTTON_H deepin-movie-reborn-5.15.10/src/widgets/volumeslider.cpp000066400000000000000000000331021473342170300232070ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "volumeslider.h" #include "toolbox_proxy.h" #include "dbusutils.h" DWIDGET_USE_NAMESPACE namespace dmr { VolumeSlider::VolumeSlider(MainWindow *mw, QWidget *parent) : QWidget(parent), _mw(mw) { if (CompositingManager::get().platform() != Platform::X86 && !utils::check_wayland_env()) setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); m_iStep = 0; m_bIsWheel = false; m_nVolume = 100; m_bHideWhenFinished = false; hide(); setFocusPolicy(Qt::TabFocus); QVBoxLayout *vLayout = new QVBoxLayout(this); vLayout->setContentsMargins(2, 16, 2, 14); //内边距,与UI沟通确定 vLayout->setSpacing(0); setLayout(vLayout); QFont font; font.setFamily("SourceHanSansSC"); font.setWeight(QFont::Medium); vLayout->addStretch(); m_pLabShowVolume = new DLabel(_mw); DFontSizeManager::instance()->bind(m_pLabShowVolume, DFontSizeManager::T6); m_pLabShowVolume->setForegroundRole(QPalette::BrightText); m_pLabShowVolume->setFont(font); m_pLabShowVolume->setAlignment(Qt::AlignCenter); m_pLabShowVolume->setText("0%"); vLayout->addWidget(m_pLabShowVolume, 0, Qt::AlignCenter); m_slider = new DSlider(Qt::Vertical, this); m_slider->setFixedWidth(24); m_slider->setIconSize(QSize(15, 15)); m_slider->installEventFilter(this); m_slider->show(); m_slider->slider()->setRange(0, 100); m_slider->setValue(m_nVolume); m_slider->setObjectName(VOLUME_SLIDER); m_slider->slider()->setObjectName(SLIDER); m_slider->slider()->setAccessibleName(SLIDER); m_slider->slider()->setMinimumHeight(120); m_slider->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); m_slider->slider()->setFocusPolicy(Qt::NoFocus); vLayout->addWidget(m_slider, 1, Qt::AlignCenter); m_pBtnChangeMute = new DToolButton(this); m_pBtnChangeMute->setObjectName(MUTE_BTN); m_pBtnChangeMute->setAccessibleName(MUTE_BTN); m_pBtnChangeMute->setToolButtonStyle(Qt::ToolButtonIconOnly); //同时设置按钮与图标的尺寸,改变其默认比例 m_pBtnChangeMute->setFixedSize(30, 30); m_pBtnChangeMute->setIconSize(QSize(30, 30)); m_pBtnChangeMute->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); m_pBtnChangeMute->setFocusPolicy(Qt::NoFocus); vLayout->addStretch(10); vLayout->addWidget(m_pBtnChangeMute, 0, Qt::AlignHCenter); vLayout->addStretch(); connect(m_slider, &DSlider::valueChanged, this, &VolumeSlider::volumeChanged); connect(m_pBtnChangeMute, SIGNAL(clicked()), this, SLOT(muteButtnClicked())); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &VolumeSlider::setThemeType); m_autoHideTimer.setSingleShot(true); connect(&m_autoHideTimer, &QTimer::timeout, this, &VolumeSlider::hide); } void VolumeSlider::initVolume() { QTimer::singleShot(1500, this, [ = ] { //延迟加载等待信号槽连接 int nVolume = Settings::get().internalOption("global_volume").toInt(); bool bMute = Settings::get().internalOption("mute").toBool(); changeVolume(nVolume); changeMuteState(bMute); setMute(bMute); }); } void VolumeSlider::stopTimer() { m_autoHideTimer.stop(); } QString VolumeSlider::readSinkInputPath() { QString strPath = ""; QVariant v = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); if (!v.isValid()) return strPath; QList allSinkInputsList = v.value >(); for (auto curPath : allSinkInputsList) { QVariant nameV = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", curPath.path(), "org.deepin.dde.Audio1.SinkInput", "Name"); QString strMovie = QObject::tr("Movie"); if (!nameV.isValid() || (!nameV.toString().contains(strMovie, Qt::CaseInsensitive) && !nameV.toString().contains("deepin movie", Qt::CaseInsensitive))) continue; strPath = curPath.path(); break; } return strPath; } void VolumeSlider::setMute(bool muted) { if (m_bIsMute != muted || m_nVolume == 0) { return; } QString sinkInputPath = readSinkInputPath(); if (!sinkInputPath.isEmpty()) { QDBusInterface ainterface("org.deepin.dde.Audio1", sinkInputPath, "org.deepin.dde.Audio1.SinkInput", QDBusConnection::sessionBus()); if (!ainterface.isValid()) { return; } //调用设置音量 ainterface.call(QLatin1String("SetMute"), muted); } return; } void VolumeSlider::updatePoint(QPoint point) { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); m_point = point + QPoint(view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2), view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT); } void VolumeSlider::popup() { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); int x = view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2); int y = view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT; QRect end(x, y, VOLSLIDER_WIDTH, VOLSLIDER_HEIGHT); QRect start = end; start.setWidth(start.width() + 12); start.setHeight(start.height() + 10); if(CompositingManager::get().platform() == Platform::X86) { start.moveTo(start.topLeft() - QPoint(6, 10)); } else { end.moveTo(m_point + QPoint(6, 0)); start.moveTo(m_point - QPoint(0, 14)); } //动画未完成,等待动画结束后再隐藏控件 if (pVolAnimation) { m_bHideWhenFinished = true; return; } if (m_state == State::Close && isVisible()) { pVolAnimation = new QPropertyAnimation(this, "geometry"); pVolAnimation->setEasingCurve(QEasingCurve::Linear); pVolAnimation->setKeyValueAt(0, end); pVolAnimation->setKeyValueAt(0.3, start); pVolAnimation->setKeyValueAt(1, end); pVolAnimation->setDuration(230); m_bFinished = true; raise(); pVolAnimation->start(); connect(pVolAnimation, &QPropertyAnimation::finished, [ = ] { pVolAnimation->deleteLater(); pVolAnimation = nullptr; m_state = Open; m_bFinished = false; if (m_bHideWhenFinished) { popup(); m_bHideWhenFinished = false; } }); } else { m_state = Close; hide(); } } void VolumeSlider::delayedHide() { m_mouseIn = false; DUtil::TimerSingleShot(100, [this]() { if (!m_mouseIn) hide(); }); } void VolumeSlider::changeVolume(int nVolume) { if (nVolume <= 0) { nVolume = 0; } else if (nVolume > 200) { nVolume = 200; } m_nVolume = nVolume; m_slider->setValue(nVolume > 100 ? 100 : nVolume); //音量实际能改变200,但是音量条最大支持到100 //1.保证初始化音量(100)和配置文件中音量一致时,也能得到刷新 //2.m_slider的最大值为100,如果大于100必须主动调用 if (nVolume >= 100) { volumeChanged(nVolume); } } void VolumeSlider::calculationStep(int iAngleDelta){ m_bIsWheel = true; if ((m_iStep > 0 && iAngleDelta > 0) || (m_iStep < 0 && iAngleDelta < 0)) { m_iStep += iAngleDelta; } else { m_iStep = iAngleDelta; } } void VolumeSlider::volumeUp() { if (m_bIsWheel) { m_bIsWheel = false; if(qAbs(m_iStep) >= 120) { m_nVolume += qAbs(m_iStep) / 120 * 10; changeVolume(qMin(m_nVolume, 200)); m_iStep = 0; } } else { changeVolume(qMin(m_nVolume + 10, 200)); } } void VolumeSlider::volumeDown() { if(m_bIsWheel){ m_bIsWheel = false; if(qAbs(m_iStep) >= 120){ m_nVolume -= qAbs(m_iStep) / 120 * 10 ; changeVolume(qMax(m_nVolume, 0)); m_iStep = 0; } }else{ changeVolume(qMax(m_nVolume - 10, 0)); } } void VolumeSlider::changeMuteState(bool bMute) { if (m_bIsMute == bMute || m_nVolume == 0) { return; } m_bIsMute = bMute; refreshIcon(); Settings::get().setInternalOption("mute", m_bIsMute); emit sigMuteStateChanged(bMute); } void VolumeSlider::volumeChanged(int nVolume) { if (m_nVolume != nVolume) { m_nVolume = nVolume; } if (m_nVolume > 0 && m_bIsMute) { //音量改变时改变静音状态 changeMuteState(false); setMute(false); } refreshIcon(); emit sigVolumeChanged(nVolume); } void VolumeSlider::refreshIcon() { int nValue = m_slider->value(); if (nValue >= 66) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volume")); else if (nValue >= 33) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volumemid")); else m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_volumelow")); if (m_bIsMute || nValue == 0) m_pBtnChangeMute->setIcon(QIcon::fromTheme("dcc_mute")); m_pLabShowVolume->setText(QString("%1%").arg(nValue * 1.0 / m_slider->maximum() * 100)); } void VolumeSlider::muteButtnClicked() { bool bMute = m_bIsMute; changeMuteState(!bMute); setMute(!bMute); } bool VolumeSlider::getsliderstate() { return m_bFinished; } int VolumeSlider::getVolume() { return m_nVolume; } void VolumeSlider::setThemeType(int type) { Q_UNUSED(type) } void VolumeSlider::enterEvent(QEvent *e) { m_mouseIn = true; QWidget::leaveEvent(e); } void VolumeSlider::showEvent(QShowEvent *se) { QRect main_rect = _mw->rect(); QRect view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1)); int x = view_rect.width() - (TOOLBOX_BUTTON_WIDTH * 3 + 40 + (VOLSLIDER_WIDTH - TOOLBOX_BUTTON_WIDTH) / 2); int y = view_rect.height() - TOOLBOX_HEIGHT - VOLSLIDER_HEIGHT; #ifdef DTKWIDGET_CLASS_DSizeMode if (DGuiApplicationHelper::instance()->sizeMode() == DGuiApplicationHelper::CompactMode) { y = y + TOOLBOX_HEIGHT * (1- 0.66); x = x + (TOOLBOX_BUTTON_WIDTH * 3 * (1 - 0.66) - 6); } #endif QRect end(x, y, VOLSLIDER_WIDTH, VOLSLIDER_HEIGHT); setGeometry(end); QWidget::showEvent(se); } void VolumeSlider::leaveEvent(QEvent *e) { m_mouseIn = false; delayedHide(); QWidget::leaveEvent(e); } void VolumeSlider::paintEvent(QPaintEvent *) { QPainter painter(this); QColor bgColor = this->palette().background().color(); if(CompositingManager::get().platform() != Platform::X86) { QRect rect = this->rect(); rect.setTopLeft(QPoint(1, 1)); rect.setSize(QSize(VOLSLIDER_WIDTH - 2, VOLSLIDER_HEIGHT - 2)); painter.fillRect(rect, bgColor); } else { double dRation = this->height() * 1.0 / VOLSLIDER_HEIGHT; const qreal radius = 20 * dRation; const qreal triHeight = 30 * dRation; const qreal height = this->height() - triHeight; const qreal width = this->width(); painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing); // 背景上矩形 //这里要一次绘制不然中间会出现虚线 QPainterPath pathRect; pathRect.moveTo(radius, 0); pathRect.lineTo(width - radius, 0); pathRect.arcTo(QRectF(QPointF(width - 2 * radius, 0), QPointF(width, 2 * radius)), 90.0, -90.0); pathRect.lineTo(width, height); pathRect.lineTo(0, height); pathRect.lineTo(0, radius); pathRect.arcTo(QRectF(QPointF(0, 0), QPointF(2 * radius, 2 * radius)), 180.0, -90.0); // 背景下三角,半边 qreal radius1 = radius / 2; QPainterPath pathTriangle; pathTriangle.moveTo(0, height - radius1); pathTriangle.arcTo(QRectF(QPointF(0, height - radius1), QSizeF(2 * radius1, 2 * radius1)), 180, 60); pathTriangle.lineTo(width / 2, this->height()); qreal radius2 = radius / 4; pathTriangle.arcTo(QRectF(QPointF(width / 2 - radius2, this->height() - radius2 * 2 - 2), QSizeF(2 * radius2, 2 * radius2)), 220, 130); pathTriangle.lineTo(width / 2, height); // 正向绘制 painter.fillPath(pathRect, bgColor); painter.fillPath(pathTriangle, bgColor); // 平移坐标系 painter.translate(width, 0); // 坐标系X反转 painter.scale(-1, 1); // 反向绘制 painter.fillPath(pathTriangle, bgColor); } } void VolumeSlider::keyPressEvent(QKeyEvent *pEvent) { QWidget::keyPressEvent(pEvent); } bool VolumeSlider::eventFilter(QObject *obj, QEvent *e) { if (e->type() == QEvent::Wheel) { QWheelEvent *we = static_cast(e); qInfo() << we->angleDelta() << we->modifiers() << we->buttons(); if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) { calculationStep(we->angleDelta().y()); if (we->angleDelta().y() > 0 ) { volumeUp(); } else { volumeDown(); } } return false; } else { return QObject::eventFilter(obj, e); } } VolumeSlider::~VolumeSlider() { } } deepin-movie-reborn-5.15.10/src/widgets/volumeslider.h000066400000000000000000000060251473342170300226600ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef VOLUMESLIDER_H #define VOLUMESLIDER_H #include #include #include #include #include #include "utils.h" #include "volumemonitoring.h" #include "threadpool.h" #include "mainwindow.h" #include "compositing_manager.h" #include "dmr_settings.h" #include "dbus_adpator.h" #include "../accessibility/ac-deepin-movie-define.h" DWIDGET_USE_NAMESPACE namespace dmr { class VolumeSlider: public QWidget { Q_OBJECT public: enum State { Open, Close }; signals: void sigVolumeChanged(int nValue); void sigMuteStateChanged(bool bMute); public: VolumeSlider(MainWindow *mw, QWidget *parent); ~VolumeSlider(); State state() const {return m_state;} void initVolume(); //初始化音量 void stopTimer(); void popup(); //弹起音量条 void updatePoint(QPoint point); bool getsliderstate(); int getVolume(); //获取当前实际音量 void changeVolume(int nVolume); //改变控件音量 void calculationStep(int iAngleDelta); //计算滚轮滚动的步进并判断步进值是否大于等于120;普通鼠标的滚轮精度为120转动一刻为120*1/8=15度 public slots: void volumeUp(); //滚轮加音量 void volumeDown(); //滚轮减音量 void changeMuteState(bool bMute); //改变静音状态 void volumeChanged(int nVolume); //控件音量变化后的后续处理 void muteButtnClicked(); void setThemeType(int type); void delayedHide(); protected: void enterEvent(QEvent *e); void showEvent(QShowEvent *se); void leaveEvent(QEvent *e); void paintEvent(QPaintEvent *); void keyPressEvent(QKeyEvent *pEvent); bool eventFilter(QObject *obj, QEvent *e); void refreshIcon(); //刷新图标 private: QString readSinkInputPath(); //获取dbus接口的地址 // cppckeck修改 // void setAudioVolume(int volume); //回设dock栏应用音量 void setMute(bool muted); //回设dock栏应用静音状态 private: DToolButton *m_pBtnChangeMute {nullptr}; DLabel *m_pLabShowVolume {nullptr}; DSlider *m_slider; MainWindow *_mw; QTimer m_autoHideTimer; bool m_bIsMute {false}; bool m_bFinished {false}; QPropertyAnimation *pVolAnimation {nullptr}; State m_state {Close}; QPoint m_point {0, 0}; // QPixmap m_bgImage; bool m_mouseIn {false}; int m_nVolume; //记录实际音量(实际音量最大值为200,显示最大到100) VolumeMonitoring volumeMonitoring; //监听dock栏应用音量变化 bool m_bHideWhenFinished; ///等待动画结束后隐藏 int m_iStep; //鼠标灵敏度的步进 bool m_bIsWheel; //是否是通过滚轮调节音量 }; } #endif // VOLUMESLIDER_H deepin-movie-reborn-5.15.10/tests/000077500000000000000000000000001473342170300166775ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/CMakeLists.txt000066400000000000000000000006701473342170300214420ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later # 定义需要的cmake版本 cmake_minimum_required(VERSION 3.10) set(CMAKE_CXX_STANDARD 17) # 设置cmake参数 set(CMAKE_CXX_STANDARD 14) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) add_subdirectory(deepin-movie) add_subdirectory(ut_dmr-test) add_subdirectory(deepin-movie-platform) deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/000077500000000000000000000000001473342170300231025ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/CMakeLists.txt000066400000000000000000000132311473342170300256420ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later # 定义需要的cmake版本 cmake_minimum_required(VERSION 3.10) # 设置cmake参数 set(CMAKE_CXX_STANDARD 17) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) #ADD_DEFINITIONS( -LITE_DIV) execute_process(COMMAND uname -m OUTPUT_VARIABLE MACH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) option (USE_TEST "Use TESTS" ON) add_definitions( -DUSE_TEST ) # 设置Qt模块 set(QtModule Core Gui Widgets Network X11Extras PrintSupport DBus Sql Svg Multimedia MultimediaWidgets Concurrent LinguistTools Test Xml) # 设置工程名字 project(deepin-movie-platform-test) # 查找Qt相关的库链接 find_package(Qt5 REQUIRED ${QtModule}) # 包含源码文件夹 include_directories(${CMAKE_INCLUDE_CURRENT_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(../../src) include_directories(../../src/common) include_directories(../../src/common/platform) include_directories(../../src/widgets) include_directories(../../src/widgets/platform) include_directories(../../src/libdmr) include_directories(../../src/vendor) include_directories(../../src/backends) include_directories(../../src/backends/mpv) include_directories(../../src/backends/mediaplayer) include_directories(../../src/dlna) include_directories(../../src/dlna/dlnaHttpServer) #add_subdirectory(googletest) # 定义 source 文件 FILE (GLOB allSource ../../src/common/*.cpp ../../src/common/platform/*.cpp ../../src/widgets/*.cpp ../../src/widgets/platform/*.cpp ../../src/libdmr/*.cpp ../../src/vendor/*.cpp ../../src/backends/mpv/*.cpp ../../src/backends/mediaplayer/*.cpp ../../src/backends/*.cpp ../../src/dlna/*.cpp ../../src/dlna/dlnaHttpServer/*.cpp ../../src/dlna/dlnaHttpServer/*.c ) FILE (GLOB allTestSource *.cpp *.sh common/*.cpp widgets/*.cpp libdmr/*.cpp backends/*.cpp vendor/*.cpp *.sh ) # 定义资源文件 set(AllQRC ../../assets/resources.qrc ../../assets/icons/theme-icons.qrc ) # 设置不删除生成的文件夹内容文件(设置此项是为了翻译后的文件不被删除) set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1) # 添加需要安装的模块 add_executable(${PROJECT_NAME} ${allSource} ${allTestSource} ${AllQRC} ) # 添加gocv覆盖率文件的输出 if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64") set(CMAKE_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage") #mips平台下不进行内存检测 else() set(CMAKE_CXX_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer -g -fprofile-arcs -ftest-coverage") set(CMAKE_C_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer") set(CMAKE_L_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer") endif() set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) set(OBJECT_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/objects) add_custom_target(platform_test COMMAND mkdir -p build-ut COMMAND mkdir -p build-ut/report WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) add_custom_command(TARGET platform_test COMMAND echo " ===================CREAT LCOV REPROT==================== " COMMAND lcov --directory ./CMakeFiles/${PROJECT_NAME}.dir --zerocounters COMMAND ./tests/${PROJECT_NAME} #-o ./build-ut/report/report_${PROJECT_NAME}.xml,xml COMMAND lcov --directory . --capture --output-file ./build-ut/${PROJECT_NAME}_Coverage.info COMMAND echo " =================== do filter begin ==================== " COMMAND lcov --remove ./build-ut/${PROJECT_NAME}_Coverage.info 'CMakeFiles/${PROJECT_NAME}.dir/${PROJECT_NAME}_autogen/*/*' '${PROJECT_NAME}_autogen/*/*/*.cpp' 'googletest/*/*' '*/usr/include/*' '*/tests/*' '/usr/local/*' '*/src/common/filter.*' '*/src/common/settings_translation.cpp' '*/src/common/event_monitor.cpp' '*/src/widgets/videoboxbutton.cpp' '*/src/common/event_relayer.cpp' -o ./build-ut/${PROJECT_NAME}_Coverage_fileter.info COMMAND echo " =================== do filter end ==================== " COMMAND genhtml -o ./build-ut/report ./build-ut/${PROJECT_NAME}_Coverage_fileter.info COMMAND echo " -- Coverage files have been output to ${CMAKE_BINARY_DIR}/build-ut/report " WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) add_dependencies(platform_test ${PROJECT_NAME}) #------------------------------ 添加第三方库 DTK ------------------------------- # 使用第三方库需要用到的一个包 find_package(PkgConfig REQUIRED) #set(TARGET_LIBS X11 Xext Xtst PkgConfig::Xcb Qt5::Widgets Qt5::X11Extras Qt5::Network # Qt5::Concurrent Qt5::DBus Qt5::Sql PkgConfig::Dtk # PkgConfig::Mpv PkgConfig::MPRIS PkgConfig::DBusextended # PkgConfig::AV pthread GL) # 检查第三方库(这里检查了名字为dtkwidget的库和名字为dtkgui的库),然后取名3rd_lib pkg_check_modules(3rd_lib REQUIRED dtkwidget dtkgui libpulse dvdnav gsettings-qt x11 xext xtst xcb gl xcb-aux xcb-proto xcb-ewmh xcb-shape mpris-qt5 dbusextended-qt5 libva libva-x11 gstreamer-1.0 glib-2.0 gstreamer-pbutils-1.0 ) #libpulse-simple xcb-aux gtest # 添加第三方库的所有文件夹路径到工程中来(注意 *_INCLUDE_DIRS) target_include_directories(${PROJECT_NAME} PUBLIC ${3rd_lib_INCLUDE_DIRS}) # 将第三方库链接进来(注意 *_LIBRARIES) target_link_libraries(${PROJECT_NAME} ${3rd_lib_LIBRARIES} Qt5::GuiPrivate) #------------------------------添加第三方库end------------------------------------- target_link_libraries(${PROJECT_NAME} gmock gmock_main gtest gtest_main) # 将工程与Qt模块链接起来 qt5_use_modules(${PROJECT_NAME} ${QtModule}) deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/application.cpp000066400000000000000000000033141473342170300261120ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "application.h" Application::Application(int &argc, char **argv) : DApplication(argc, argv) { } Application::~Application() { // m_mainwindow->close(); // delete m_mainwindow; // m_movieapp->quit(); } void Application::setMainWindow(Platform_MainWindow *window) { if (nullptr != window) { m_mainwindow = window; } } void Application::setMainWindowWayland(Platform_MainWindow *window) { if (nullptr != window) { m_mainwindow_wayland = window; } } Platform_MainWindow * Application::getMainWindow() { if(nullptr == m_mainwindow) m_mainwindow = new Platform_MainWindow(); return m_mainwindow; } Platform_MainWindow * Application::getMainWindowWayland() { if(nullptr == m_mainwindow_wayland) //qputenv("_d_disableDBusFileDialog", "true"); setenv("PULSE_PROP_media.role", "video", 1); QSurfaceFormat format; format.setRenderableType(QSurfaceFormat::OpenGLES); format.setDefaultFormat(format); utils::set_wayland(true); bool iswayland = utils::first_check_wayland_env(); m_mainwindow_wayland = new Platform_MainWindow(); return m_mainwindow_wayland; } Presenter * Application::getPresenter() { if(m_presenter == nullptr) { m_presenter = new Presenter(getMainWindowWayland()); } return m_presenter; } MovieApp * Application::initMovieApp(Platform_MainWindow *mw) { if(m_movieapp == nullptr) { m_movieapp = new MovieApp(mw,this); } return m_movieapp; } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/application.h000066400000000000000000000022031473342170300255530ustar00rootroot00000000000000// Copyright (C) 2016 ~ 2018 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef APPLICATION_H_ #define APPLICATION_H_ #include #include "mainwindow.h" #include "url_dialog.h" #include "presenter.h" #include "movieapp.h" using namespace dmr; class Application; #if defined(dApp) #undef dApp #endif #define dApp (static_cast(QCoreApplication::instance())) DWIDGET_USE_NAMESPACE class Application : public DApplication { Q_OBJECT public: Application(int &argc, char **argv); ~Application(); void setMainWindow(Platform_MainWindow *window); void setMainWindowWayland(Platform_MainWindow *window); Platform_MainWindow *getMainWindow(); Platform_MainWindow *getMainWindowWayland(); Presenter * getPresenter(); MovieApp * initMovieApp(Platform_MainWindow *mw); private: Platform_MainWindow *m_mainwindow {nullptr}; Platform_MainWindow *m_mainwindow_wayland {nullptr}; Presenter *m_presenter {nullptr}; MovieApp *m_movieapp {nullptr}; }; #endif // APPLICATION_H_ deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/common/000077500000000000000000000000001473342170300243725ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/common/test_platform_mainwindow.cpp000066400000000000000000001234021473342170300322170ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define protected public #define private public #include "src/common/platform/platform_mainwindow.h" #undef protected #undef private #include "application.h" #include "src/libdmr/filefilter.h" #include "src/libdmr/player_engine.h" #include "src/widgets/platform/platform_toolbox_proxy.h" #include "src/widgets/toolbutton.h" #include "src/widgets/platform/platform_playlist_widget.h" #include "src/widgets/platform/platform_volumeslider.h" #include "src/widgets/slider.h" #include "src/widgets/movieinfo_dialog.h" #include "src/widgets/url_dialog.h" #include "src/widgets/dmr_lineedit.h" #include "src/common/actions.h" #include "src/backends/mpv/mpv_glwidget.h" #include "utils.h" #include "actions.h" #include "src/common/platform/platform_dbus_adpator.h" #include "dbusutils.h" #include "burst_screenshots_dialog.h" #include "mpv_proxy.h" using namespace dmr; #ifdef false TEST(PadMode, mainWindow) { Stub stub; //Stub stub1; stub.set(ADDR(CompositingManager, isPadSystem), StubFunc::isPadSystemTrue_stub); stub.set(ADDR(CompositingManager, composited), StubFunc::isCompositedFalse_stub); QTest::qWait(1000); MainWindow mw; QTest::qWait(100); mw.show(); QTest::qWait(800); mw.requestAction(ActionFactory::ActionKind::StartPlay); QTest::mouseClick(&mw, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::qWait(500); stub.reset(ADDR(CompositingManager, isPadSystem)); stub.reset(ADDR(CompositingManager, composited)); mw.close(); QTest::qWait(2000); } #endif TEST(MainWindow, init) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); int sid; w->checkWarningMpvLogsChanged("test", "Hardware does not support image size 3840x2160"); sid = engine->sid(); engine->isSubVisible(); engine->selectSubtitle(0); engine->videoAspect(); engine->volumeUp(); engine->setDVDDevice("/data/home/"); QMimeData mimeData; QList urls; urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); mimeData.setUrls(urls); // Drop inside the mainwindow QDropEvent drop(w->pos(), Qt::CopyAction, &mimeData, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(w, &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); QTest::qWait(100); } TEST(MainWindow, nakedstream) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider* dmrSlider = toolboxProxy->getSlider(); Platform_VolumeSlider* volumeSlider = toolboxProxy->volumeSlider(); VolumeButton *volBtn = toolboxProxy->volBtn(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264"); w->show(); engine->playlist().loadPlaylist(); engine->playlist().clear(); engine->addPlayFiles(listPlayFiles); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264")); // drop is playing video QMimeData mimeData; QList urls; urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264"); mimeData.setUrls(urls); QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(w, &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); qApp->sendEvent(w, &dragMove); QDropEvent drop(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::NoButton, {}); QApplication::sendEvent(w, &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); QTest::mousePress(dmrSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::mouseMove(dmrSlider, QPoint(), 100); QTest::mouseRelease(dmrSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::keyClick(dmrSlider, Qt::Key_Left, Qt::NoModifier, 200); QTest::keyClick(dmrSlider, Qt::Key_Right, Qt::NoModifier, 200); QTest::mouseClick(volBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::qWait(500); QTest::mousePress(volumeSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::mouseMove(volumeSlider, QPoint(), 100); QTest::mouseRelease(volumeSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::keyClick(dmrSlider, Qt::Key_M, Qt::NoModifier, 200); QTest::keyClick(w, Qt::Key_Up, Qt::ControlModifier | Qt::AltModifier, 200); QTest::keyClick(w, Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 200); // reset case QTest::mouseMove(volBtn, QPoint(), 200); // QTest::keyClick(volBtn, Qt::Key_Enter, Qt::NoModifier, 200); // QTest::qWait(1000); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); } //#ifndef __mips__ //TEST(MainWindow, tabInteraction) //{ // Platform_MainWindow *w = dApp->getMainWindow(); // PlayerEngine *engine = w->engine(); // Platform_ToolboxProxy *toolboxProxy = w->toolbox(); // ToolButton *fsBtn = toolboxProxy->fsBtn(); // VolumeButton *volBtn = toolboxProxy->volBtn(); // ToolButton *listBtn = toolboxProxy->listBtn(); // Platform_PlaylistWidget *playlistWidget; // DListWidget *playlist; // QList listPlayFiles; // QTestEventList testEventList; // w->show(); // listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ // << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/天空之眼 高清1080P.mp4")\ // << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); // engine->playlist().loadPlaylist(); // const QList &valids = engine->addPlayFiles(listPlayFiles); // QTest::qWait(500); // QKeyEvent *tabEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier); // QApplication::sendEvent(w, tabEvent); // QApplication::sendEvent(w->windowHandle(), tabEvent); // //volume control // volBtn->setFocus(); // QTest::keyClick(volBtn, Qt::Key_Enter, Qt::NoModifier, 200); // QTest::qWait(500); // toolboxProxy->changeMuteState(); // for (int i = 0; i < 5; i++) { // QTest::keyClick(volBtn, Qt::Key_Down, Qt::NoModifier, 100); //volume up 5 // } // for (int i = 0; i < 10; i++) { // QTest::keyClick(volBtn, Qt::Key_Up, Qt::NoModifier, 100); //volume up 5 // } // //play list // playlistWidget = w->playlist(); // playlist = playlistWidget->get_playlist(); // listBtn->setFocus(); // QTest::qWait(500); // QTest::keyClick(listBtn, Qt::Key_Enter, Qt::NoModifier, 200); // QTest::keyClick(playlistWidget, Qt::Key_Enter, Qt::NoModifier, 500); //clear playlist // for (int i = 0; i < 3; i++) { // QTest::keyClick(playlist, Qt::Key_Tab, Qt::NoModifier, 100); // } // QTest::keyClick(w, Qt::Key_Escape, Qt::NoModifier, 500); //close playlist by Esc // QTest::qWait(500); // engine->addPlayFiles(listPlayFiles); // listBtn->setFocus(); // QTest::keyClick(listBtn, Qt::Key_Enter, Qt::NoModifier, 1000); // QTest::keyClick(playlistWidget, Qt::Key_Tab, Qt::NoModifier, 500); // QTest::keyClick(playlistWidget, Qt::Key_Down, Qt::NoModifier, 500); // QTest::keyClick(playlistWidget, Qt::Key_Up, Qt::NoModifier, 500); // QTest::keyClick(playlist, Qt::Key_Enter, Qt::NoModifier, 500); // delete tabEvent; // tabEvent = nullptr; //} //#endif TEST(MainWindow, loadFile) { Platform_MainWindow *w = dApp->getMainWindow(); w->show(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4") << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); QCOMPARE(engine->isPlayableFile(valids[0]), true); if (!valids.empty()) { engine->playByName(valids[0]); } qDebug() << __func__ << "MainWindow.loadFile:" << engine->state(); w->checkOnlineState(false); QTest::qWait(200); w->resize(900, 700); QTest::qWait(200); w->resize(300, 300); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::MatchOnlineSubtitle); QTest::qWait(200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); // emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); // dApp->setProperty("themeType", DGuiApplicationHelper::DarkType); // video judge EXPECT_TRUE(FileFilter::instance()->isVideo(listPlayFiles[0])); } TEST(MainWindow, DBus) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ApplicationAdaptor *appAdaptor = new Platform_ApplicationAdaptor(w); DBusUtils utils; QVariant v = Platform_ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); QVariant v_invalid = Platform_ApplicationAdaptor::redDBusProperty("com.test", "/test", "com.test", "SinkInputs"); v_invalid = DBusUtils::redDBusProperty("com.test", "/test", "com.test", "SinkInputs"); if (v.isValid()) { QList allSinkInputsList = v.value >(); for (auto curPath : allSinkInputsList) { QVariant name = Platform_ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", curPath.path(), "org.deepin.dde.Audio1.SinkInput", "Name"); QString strMovie = QObject::tr("Movie"); if (!name.isValid() || (!name.toString().contains(strMovie, Qt::CaseInsensitive) && !name.toString().contains("deepin-movie", Qt::CaseInsensitive))) continue; QString sinkInputPath = curPath.path(); break; } } QVariant method = Platform_ApplicationAdaptor::redDBusMethod("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); QVariant method_invalid = Platform_ApplicationAdaptor::redDBusMethod("com.test", "/com/test", "com.test", "SinkInputs"); method = DBusUtils::redDBusMethod("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); method_invalid = DBusUtils::redDBusMethod("com.test", "/com/test", "com.test", "SinkInputs"); appAdaptor->Raise(); appAdaptor->openFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); //QDBusInterface *m_pDBus = new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()); w->sleepStateChanged(true); } TEST(MainWindow, hwdecChange) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->changehwaccelMode(Backend::hwaccelClose); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 500); engine->changehwaccelMode(Backend::hwaccelAuto); engine->setBackendProperty("hwdec", "auto"); w->setCurrentHwdec(""); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 1000); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 500); } TEST(MainWindow, resizeWindow) { Platform_MainWindow *w = dApp->getMainWindow(); //缩放窗口 w->move(200, 200); w->updateGeometry(Platform_CornerEdge::Platform_LeftEdge, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_TopEdge, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_RightEdge, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_BottomEdge, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_NoneEdge, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_TopLeftCorner, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_TopRightCorner, QPoint(1300, 100)); w->updateGeometry(Platform_CornerEdge::Platform_BottomLeftCorner, QPoint(100, 100)); w->updateGeometry(Platform_CornerEdge::Platform_BottomRightCorner, QPoint(100, 100)); } TEST(MainWindow, touch) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); PlayerEngine *engine = w->engine(); engine->stop(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); if (!w->isFullScreen()) { qDebug() << __func__ << "进入全屏"; QTest::mouseDClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //fullscreen } //#if !defined (__mips__ ) && !defined(__aarch64__) // w->setTouched(true); // Platform_Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); //#endif QTest::qWait(500); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(100, 200), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(200, 200), 200); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 100), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 300), 200); //#if !defined (__mips__ ) && !defined(__aarch64__) // while (progbarWidget->currentIndex() == 1) { // QTest::qWait(200); // } //#endif w->setTouched(true); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(300, 200), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(100, 200), 200); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 300), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 100), 200); //#if !defined (__mips__ ) && !defined(__aarch64__) // Platform_Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); //#endif if (w->isFullScreen()) { //quit fullscreen QTest::mouseDClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); } w->setTouched(false); } TEST(MainWindow, shortCutPlay) { Platform_MainWindow *w = dApp->getMainWindow(); QTestEventList testEventList; PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << "playerEngineState:" << engine->state() << "playlistCount:" << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } //shortcut view // testEventList.addKeyClick(Qt::Key_Slash, Qt::ControlModifier | Qt::ShiftModifier, 500); BurstScreenshotsDialog bsd(engine->playlist().currentInfo()); bsd.show(); QTest::qWait(500); bsd.close(); //screenshot qDebug() << __func__ << "shortCutPlay: start screenshot " << engine->state(); testEventList.addKeyClick(Qt::Key_A, Qt::AltModifier, 500); //burst screenshot testEventList.addKeyClick(Qt::Key_S, Qt::AltModifier, 1000); testEventList.addKeyClick(Qt::Key_Right, Qt::NoModifier, 300); //fast forward for (int i = 0; i < 4; i++) { testEventList.addKeyClick(Qt::Key_Left, Qt::NoModifier, 300); //fast backward } //playlist testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 800); //playlist popup testEventList.addKeyClick(Qt::Key_Down, Qt::NoModifier, 400); testEventList.addKeyClick(Qt::Key_Enter, Qt::NoModifier, 500); //play selected item testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 1800); //playlist popup testEventList.addKeyClick(Qt::Key_Up, Qt::NoModifier, 400); testEventList.addKeyClick(Qt::Key_Enter, Qt::NoModifier, 500); qDebug() << __func__ << "playlist_count:" << engine->playlist().count(); if (engine->playlist().count() >= 2) { testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 1900); //playlist popup testEventList.addKeyClick(Qt::Key_Down, Qt::NoModifier, 500); testEventList.addKeyClick(Qt::Key_Delete, Qt::NoModifier, 500); //delete from playlist testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 500); } if (w->engine()->state() == PlayerEngine::Idle) { w->engine()->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); } while (w->engine()->state() == PlayerEngine::Idle) { QTest::qWait(200); } //加速播放 for (int i = 0; i < 10 ; i++) { testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier, 50); } //减速播放 for (int i = 0; i < 16 ; i++) { testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier, 50); } //还原播放速度 testEventList.addKeyClick(Qt::Key_R, Qt::ControlModifier, 200); // testEventList.addKeyClick(Qt::Key_Tab, Qt::NoModifier, 300); // testEventList.addKeyClick(Qt::Key_Tab, Qt::NoModifier, 300); qDebug() << __func__ << "playerEngineState:" << engine->state(); testEventList.simulate(w); } TEST(MainWindow, shortCutVolumeAndFrame) { Platform_MainWindow *w = dApp->getMainWindow(); QTestEventList testEventList; //volume testEventList.addKeyClick(Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 20); //volume down for (int i = 0; i < 11; i++) { testEventList.addKeyClick(Qt::Key_Up, Qt::ControlModifier | Qt::AltModifier, 10);//volume up } for (int i = 0; i < 20; i++) { testEventList.addKeyClick(Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 10); //volume down } testEventList.addKeyClick(Qt::Key_M, Qt::NoModifier, 300); //mute testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier | Qt::ShiftModifier, 100); //last frame testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); //next frame testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Space, Qt::NoModifier, 300); //play testEventList.simulate(w); } TEST(MainWindow, miniMode) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << engine->state() << "playlist count:" << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } qDebug() << __func__ << engine->state() << "playlist count:" << engine->playlist().count(); QTest::keyClick(w, Qt::Key_F2, Qt::NoModifier, 500); if (!w->getMiniMode()) { w->requestAction(ActionFactory::ActionKind::ToggleMiniMode); } #if defined(__aarch64__) DIconButton *miniPauseBtn = w->findChild("MiniPlayBtn"); #else DIconButton *miniPauseBtn = w->findChild("MiniPauseBtn"); #endif DIconButton *miniQuiteMiniBtn = w->findChild("MiniQuitMiniBtn"); if (miniPauseBtn && miniQuiteMiniBtn) { QTest::mouseMove(miniPauseBtn, QPoint(), 1000); QTest::mouseClick(miniPauseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); //w->customContextMenuRequested(w->pos()); QTest::mouseMove(miniQuiteMiniBtn, QPoint(), 300); QTest::mouseClick(miniQuiteMiniBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); } QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::ToggleMiniMode); if (miniPauseBtn) { DIconButton *miniCloseBtn = w->findChild("MiniCloseBtn"); QTest::mouseMove(miniPauseBtn, QPoint(), 300); QTest::mouseClick(miniPauseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); QTest::mouseMove(miniCloseBtn, QPoint(), 300); QTest::mouseClick(miniCloseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); w->show(); } QTest::keyClick(w, Qt::Key_Escape, Qt::NoModifier, 1000); } TEST(MainWindow, progBar) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); ////进度条模式 QMouseEvent hover(QEvent::HoverEnter, QPoint(progBarSlider->pos().x(), progBarSlider->pos().y()), Qt::NoButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &hover); QPoint point(progBarSlider->slider()->x() + 30, progBarSlider->slider()->y()); QTest::mouseMove(progBarSlider->slider(), point, 200); QTest::mouseMove(progBarSlider->slider(), QPoint(point.x(), point.y() - 40), 200); QTest::mouseMove(progBarSlider->slider(), point, 200); QTest::mouseClick(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, point, 200); //拖动 QPoint startPoint(progBarSlider->slider()->x() + 100, progBarSlider->slider()->y()); QPoint endPoint(progBarSlider->slider()->x() + 10, progBarSlider->slider()->y()); QTest::mouseMove(progBarSlider->slider(), startPoint, 200); QTest::mousePress(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, startPoint, 100); QTest::mouseMove(progBarSlider->slider(), endPoint, 200); QTest::mouseRelease(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, endPoint, 200); startPoint = QPoint(progBarSlider->pos().x() + 60, progBarSlider->pos().y() + 50); endPoint = QPoint(progBarSlider->pos().x() + 90, progBarSlider->pos().y() + 50); // QTest::mouseMove(progBarSlider, startPoint, 200); // QTest::mousePress(progBarSlider, Qt::LeftButton, Qt::NoModifier, startPoint, 100); // QTest::mouseMove(progBarSlider, endPoint, 200); // QTest::mouseRelease(progBarSlider, Qt::LeftButton, Qt::NoModifier, endPoint, 100); //press QMouseEvent mousePress(QEvent::MouseButtonPress, startPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mousePress); //move QMouseEvent mouseMove(QEvent::MouseMove, endPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mouseMove); //release QMouseEvent mouseRelease(QEvent::MouseButtonRelease, endPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mouseRelease); QEvent leaveEvent(QEvent::Leave); QEvent enterEvent(QEvent::Enter); QApplication::sendEvent(progBarSlider, &leaveEvent); QApplication::sendEvent(progBarSlider, &enterEvent); QWheelEvent wheelEvent = QWheelEvent(endPoint, 20, Qt::MidButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &wheelEvent); ////胶片模式 //#if !defined (__mips__ ) && !defined(__aarch64__) // Platform_Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); // while (progbarWidget->currentIndex() == 1) { //等待胶片加载 // QTest::qWait(200); // } // QWidget *viewProgBar = (QWidget *)toolboxProxy->getViewProBar(); // startPoint = QPoint(viewProgBar->x() + 100, viewProgBar->y() + 20); // endPoint = QPoint(viewProgBar->x() + 20, viewProgBar->y() + 20); // QTest::mouseMove(viewProgBar, QPoint(viewProgBar->x() + 50, viewProgBar->y() + 20), 500); // QTest::mouseClick(viewProgBar, Qt::LeftButton, Qt::NoModifier, QPoint(viewProgBar->x() + 50, viewProgBar->y() + 20), 500); // QTest::mouseMove(viewProgBar, startPoint, 300); // QTest::mousePress(viewProgBar, Qt::LeftButton, Qt::NoModifier, startPoint, 100); // QTest::mouseMove(viewProgBar, endPoint, 500); // QTest::mouseRelease(viewProgBar, Qt::LeftButton, Qt::NoModifier, endPoint, 500); // QTest::qWait(500); // Platform_Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); //#endif } TEST(MainWindow, ViewProgBar) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); QList pmList; pmList.append(QPixmap(QString("/data/source/deepin-movie-reborn/test.jpg"))); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); // viewProgBarLoad *loadWorker = new viewProgBarLoad(engine, progBarSlider, toolboxProxy); // QTest::qWait(200); // loadWorker->start(); // QObject::connect(loadWorker, SIGNAL(sigFinishiLoad(QSize)), toolboxProxy, SLOT(finishLoadSlot(QSize))); //loadWorker->loadViewProgBar(QSize(500, 50)); //progbarWidget->setCurrentIndex(2); toolboxProxy->setThumbnailmode(true); toolboxProxy->resize(400,60); // QTest::qWait(1000); QWidget *viewProgBar = (QWidget *)toolboxProxy->getViewProBar(); viewProgBar->show(); QTest::qWait(200); QMouseEvent mouseMove(QEvent::MouseMove, QPoint(200, 20), Qt::NoButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mouseMove); QMouseEvent mousePress(QEvent::MouseButtonPress, QPoint(200, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mousePress); mouseMove = QMouseEvent(QEvent::MouseMove, QPoint(250, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mouseMove); QMouseEvent mousRelease(QEvent::MouseButtonRelease, QPoint(250, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mousRelease); QEvent leave(QEvent::Leave); QApplication::sendEvent(viewProgBar, &leave); // QObject::disconnect(loadWorker, SIGNAL(sigFinishiLoad(QSize)), toolboxProxy, SLOT(finishLoadSlot(QSize))); QTest::qWait(600); } TEST(MainWindow, ThumbnailPreview) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); Platform_ThumbnailWorker::get().setPlayerEngine(engine); Platform_ThumbnailWorker::get().requestThumb(QUrl("/data/source/deepin-movie-reborn/movie/demo.mp4"), 200); } TEST(MainWindow, movieInfoDialog) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << engine->state() << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } MovieInfoDialog mid(engine->playlist().currentInfo(), w); DLabel *filePathLbl = mid.findChild("filePathLabel"); QEvent leaveEvent(QEvent::Leave); // QEvent toolTipEvent(QEvent::ToolTip); QHelpEvent toolTipEvent(QEvent::ToolTip, filePathLbl->pos(), QPoint()); // mid.setFont(QFont("Times")); QTest::qWait(200); mid.show(); QTest::qWait(200); if (filePathLbl) { QTest::mouseMove(filePathLbl, QPoint(), 200); QTest::qWait(700); //wait 700ms for tooltip event QApplication::sendEvent(filePathLbl, &toolTipEvent); QTest::mouseMove(w, QPoint(200, 300), 200); QApplication::sendEvent(filePathLbl, &leaveEvent); QTest::qWait(50); } mid.close(); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::LightType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::LightType); QTest::qWait(100); mid.show(); if (filePathLbl) { QTest::mouseMove(filePathLbl, QPoint(), 100); QApplication::sendEvent(filePathLbl, &toolTipEvent); QTest::mouseMove(w, QPoint(200, 300), 800); } QTest::qWait(100); mid.close(); } TEST(MainWindow, VolumeMonitoring) { Platform_MainWindow *w = dApp->getMainWindow(); VolumeMonitoring volMonitor(w); volMonitor.start(); QTest::qWait(100); volMonitor.timeoutSlot(); QTest::qWait(100); volMonitor.stop(); QTest::qWait(100); } TEST(MainWindow, SettingsDialog) { Platform_MainWindow *w = dApp->getMainWindow(); emit dApp->fontChanged(QFont("Helvetica")); DSettingsDialog *settingsDialog = w->initSettings(); DLineEdit *savePathEdit = settingsDialog->findChild("OptionSelectableLineEdit"); QList Btns = settingsDialog->findChildren(); if(savePathEdit) { emit savePathEdit->focusChanged(true); emit savePathEdit->textEdited("/data/source/deepin-movie-reborn/movie/DMovie"); emit savePathEdit->editingFinished(); } // AddrAny any; // std::map result; // any.get_local_func_addr_symtab("^createSelectableLineEditOptionHandle()$", result); // Stub stub; // std::map::iterator it; // for(it = result.begin(); it != result.end(); ++it) { // stub.set(it->second, StubFunc::createSelectableLineEditOptionHandle_lambda_stub); // } if(Btns[0]) { emit Btns[0]->clicked(false); } } TEST(MainWindow, reloadFile) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); QTest::qWait(100); engine->addPlayFiles(listPlayFiles); } TEST(ToolBox, playListWidget) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); Platform_PlaylistWidget *playlistWidget = w->playlist(); DListWidget *playlist = playlistWidget->get_playlist(); DFloatingButton *playItemCloseBtn; //playlist item event QEvent tooltipEvent(QEvent::ToolTip); QEvent leaveEvent(QEvent::Leave); QEnterEvent enterEvent(QPoint(0, 0), listBtn->pos(), QPoint(0, 0)); QApplication::sendEvent(listBtn, &enterEvent); QApplication::sendEvent(listBtn, &leaveEvent); QTest::qWait(100); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); //playlist popup QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 700); QTest::qWait(1000); // QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), &tooltipEvent); QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), &leaveEvent); QTest::mouseMove(playlist->itemWidget(playlist->item(1)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(1)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(0)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlist->itemWidget(playlist->item(1)), QPoint(), 200); QTest::mouseDClick(playlist->itemWidget(playlist->item(1)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(listBtn, QPoint(), 1000); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); //playlist popup //event // emit playlist->model()->rowsMoved(playlistWidget, 0, 1, QModelIndex(), 1); QTest::qWait(100); // QContextMenuEvent *cme = new QContextMenuEvent(QContextMenuEvent::Mouse, playlist->itemWidget(playlist->item(0))->rect().center()); // QTimer::singleShot(100,[=](){ // emit ActionFactory::get().playlistContextMenu()->aboutToHide(); // ActionFactory::get().playlistContextMenu()->clear(); // }); // QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), cme); QPoint point(playlist->pos().x() + 300, playlist->pos().y() + 60); QTest::mouseMove(w, point, 200); QWheelEvent wheelEvent = QWheelEvent(point, 20, Qt::MidButton, Qt::NoModifier); QApplication::sendEvent(w, &wheelEvent); QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(0)), Qt::LeftButton, Qt::NoModifier, QPoint(), 500); playItemCloseBtn = playlist->findChild(PLAYITEN_CLOSE_BUTTON); QTest::mouseMove(playItemCloseBtn, QPoint(), 100); QTest::mouseClick(playItemCloseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(w, point, 200); QTest::mouseClick(w, Qt::LeftButton, Qt::NoModifier, point, 200); } TEST(ToolBox, playBtnBox) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QList listPlayFiles; Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DButtonBoxButton *playBtn = toolboxProxy->playBtn(); DButtonBoxButton *nextBtn = toolboxProxy->nextBtn(); DButtonBoxButton *prevBtn = toolboxProxy->prevBtn(); listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); engine->addPlayFiles(listPlayFiles); QEvent enterEvent(QEvent::Enter); QEvent leaveEvent(QEvent::Leave); QMouseEvent mouseMove(QEvent::MouseMove, QPoint(0, 0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(playBtn, &enterEvent); QApplication::sendEvent(playBtn, &mouseMove); QApplication::sendEvent(playBtn, &leaveEvent); QApplication::sendEvent(nextBtn, &enterEvent); QApplication::sendEvent(nextBtn, &mouseMove); QApplication::sendEvent(nextBtn, &leaveEvent); QApplication::sendEvent(prevBtn, &enterEvent); QApplication::sendEvent(prevBtn, &mouseMove); QApplication::sendEvent(prevBtn, &leaveEvent); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //pause QTest::mouseMove(w, QPoint(200, 300), 200); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); } TEST(ToolBox, UrlDialog) { Platform_MainWindow *w = dApp->getMainWindow(); UrlDialog *uDlg = new UrlDialog(w); LineEdit *lineEdit = uDlg->findChild(); uDlg->show(); QTest::mouseMove(uDlg->getButton(0), QPoint(), 200); QTest::mouseClick(uDlg->getButton(0), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("mail.263.net/"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("https://www.baidu.com"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); auto url = uDlg->url().toString(); w->play({url}); QTest::qWait(300); } TEST(ToolBox, fullScreenBtn) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *fsBtn = toolboxProxy->fsBtn(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4") << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); QCOMPARE(engine->isPlayableFile(valids[0]), true); if (!valids.empty()) { engine->playByName(valids[0]); } QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); // QContextMenuEvent context(QContextMenuEvent::Mouse, QPoint(200, 200)); // QApplication::sendEvent(w, &context); // QTest::mouseClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(500, 500), 500); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); QEvent enter(QEvent::Enter); QApplication::sendEvent(fsBtn, &enter); QEvent leave(QEvent::Leave); QApplication::sendEvent(fsBtn, &leave); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); } TEST(ToolBox, volBtn) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); VolumeButton *volBtn = toolboxProxy->volBtn(); QTest::mouseMove(volBtn, QPoint(), 200); QTest::mouseClick(volBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::qWait(300); QVERIFY(toolboxProxy->volumeSlider()->isVisible()); QWheelEvent wheelUpEvent(volBtn->rect().center(), 20, Qt::NoButton, Qt::NoModifier); QWheelEvent wheelDownEvent(volBtn->rect().center(), -20, Qt::NoButton, Qt::NoModifier); QEnterEvent enterEvent(QPoint(0, 0), volBtn->pos(), QPoint(0, 0)); QEvent leaveEvent(QEvent::Leave); QTest::qWait(100); QApplication::sendEvent(volBtn, &wheelUpEvent); QTest::qWait(100); QApplication::sendEvent(volBtn, &wheelDownEvent); QApplication::sendEvent(volBtn, &enterEvent); QApplication::sendEvent(volBtn, &leaveEvent); } //TEST(ToolBox, mainWindowEvent) //{ // Platform_MainWindow *w = dApp->getMainWindow(); // QMimeData mimeData; // QList urls; // QPoint point(w->pos().x() + 20, w->pos().y() + 20); // urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ // << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3") \ // << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/Hachiko.A.Dog's.Story.ass"); // mimeData.setUrls(urls); // QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); // QApplication::sendEvent(w, &dragEnter); // QVERIFY(dragEnter.isAccepted()); // QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); // QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); // qApp->sendEvent(w, &dragMove); // // Drop inside the mainwindow // QDropEvent drop(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::NoButton, {}); // QApplication::sendEvent(w, &drop); // QVERIFY(drop.isAccepted()); // QCOMPARE(drop.dropAction(), Qt::CopyAction); // QWheelEvent wheelEvent = QWheelEvent(QPoint(0, 0), 20, Qt::MidButton, Qt::NoModifier); // QApplication::sendEvent(w, &wheelEvent); // //右键菜单这里有内存泄露,暂时注释掉 // //QContextMenuEvent *cme = new QContextMenuEvent(QContextMenuEvent::Mouse, w->rect().center()); // //QTimer::singleShot(100, [ = ]() { // // ActionFactory::get().mainContextMenu()->clear(); // //}); // //QApplication::sendEvent(w, cme); // QMouseEvent mouseMove = QMouseEvent(QEvent::MouseMove, QPointF(100.0, 100.0),Qt::NoButton, Qt::NoButton, Qt::NoModifier); // QApplication::sendEvent(w, &mouseMove); // QTest::mouseClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(100, 100), 200); // QTest::qWait(100); // //shortcut view // QTest::keyPress(w, Qt::Key_Slash, Qt::ControlModifier | Qt::ShiftModifier, 100); // w->testCdrom(); // QTest::qWait(500); // //delete cme; // //cme = nullptr; //} TEST(ToolBox, clearPlayList) { Platform_MainWindow *w = dApp->getMainWindow(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); DPushButton *playlistClearBtn = w->findChild(CLEAR_PLAYLIST_BUTTON); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlistClearBtn, QPoint(), 700); QTest::mouseClick(playlistClearBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::UnknownType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::UnknownType); QTest::qWait(500); w->close(); } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/common/test_platform_toolbox_proxy.cpp000066400000000000000000000050541473342170300327740ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "src/widgets/platform/platform_toolbox_proxy.h" #include "src/widgets/toolbutton.h" #include "src/widgets/platform/platform_playlist_widget.h" #include #include "src/common/platform/platform_mainwindow.h" #include "src/libdmr/player_engine.h" #include "application.h" #include #include #include #include #include #include #include "presenter.h" #include "titlebar.h" #include "src/widgets/tip.h" #include "src/widgets/platform/platform_notification_widget.h" using namespace dmr; /*TEST(ToolBox, buttonBoxButton) { MainWindow* w = dApp->getMainWindow(); ButtonBoxButton *btn = new ButtonBoxButton("test", w); btn->show(); QTest::qWait(400); QTest::mouseMove(btn); btn->deleteLater(); }*/ TEST(ToolBox, buttonTooltip) { Platform_MainWindow* w = dApp->getMainWindow(); ButtonToolTip *tip = new ButtonToolTip(w); tip->setText("123"); tip->show(); tip->changeTheme(darkTheme); tip->show(); tip->deleteLater(); } TEST(ToolBox, notificationWidget) { Platform_MainWindow* w = dApp->getMainWindow(); Platform_NotificationWidget *nwBottom = new Platform_NotificationWidget(w); Platform_NotificationWidget *nwNone = new Platform_NotificationWidget(w); nwBottom->setAnchor(Platform_NotificationWidget::ANCHOR_BOTTOM); nwNone->setAnchor(Platform_NotificationWidget::ANCHOR_NONE); nwBottom->show(); nwNone->show(); nwBottom->syncPosition(w->geometry()); nwNone->syncPosition(w->geometry()); } TEST(ToolBox, tip) { Platform_MainWindow* w = dApp->getMainWindow(); Tip *tip = new Tip(QPixmap(), "", w); tip->setText("test"); tip->setBackground(QBrush(QColor(Qt::white))); tip->setRadius(2); tip->setBorderColor(QColor(Qt::blue)); tip->pop(QPoint(200, 300)); QColor color = tip->borderColor(); QBrush brush = tip->background(); tip->deleteLater(); } TEST(ToolBox, animationLabel) { Platform_MainWindow *mw = new Platform_MainWindow(); Platform_AnimationLabel *aLabel = new Platform_AnimationLabel(mw, mw); aLabel->show(); QEvent moveEvent(QEvent::Move); QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(0,0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(aLabel, &moveEvent); QApplication::sendEvent(aLabel, &releaseEvent); } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/common/test_request_actions.cpp000066400000000000000000000226561473342170300313600ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "src/widgets/platform/platform_toolbox_proxy.h" #include #include "src/common/mainwindow.h" #include "src/common/platform/platform_mainwindow.h" #include "src/libdmr/player_engine.h" #include "application.h" #include #include #include #include "src/common/actions.h" #include "src/widgets/burst_screenshots_dialog.h" #include #include #include #include #include "dmr_settings.h" #include "movieinfo_dialog.h" #include TEST(requestAction, onlineSub) { Platform_MainWindow* w = dApp->getMainWindow(); PlayerEngine* engine = w->engine(); QUrl url(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/天空之眼 高清1080P.mp4")); w->show(); QTest::qWait(500); if(engine->addPlayFile(url)) { engine->playByName(url); } QTest::qWait(1000); w->requestAction(ActionFactory::ActionKind::MatchOnlineSubtitle); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTestEventList testEventList; testEventList.addKeyClick(Qt::Key_Left, Qt::ShiftModifier,100); //sub delay // QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::SubDelay); testEventList.addKeyClick(Qt::Key_Left, Qt::ShiftModifier,100); testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); //sub advance testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); testEventList.simulate(w); } //will cause the program abort of arm platform /*TEST(requestAction,windowAbove) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::WindowAbove); //置顶 QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::WindowAbove); //取消置顶 }*/ TEST(requestAction, sound) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Stereo); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::LeftChannel); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::RightChannel); } TEST(requestAction, playMode) { Platform_MainWindow* w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); DButtonBoxButton *playBtn = toolboxProxy->playBtn(); DButtonBoxButton *nextBtn = toolboxProxy->nextBtn(); DButtonBoxButton *prevBtn = toolboxProxy->prevBtn(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); qDebug() << __func__ << valids; w->show(); QTest::qWait(100); w->requestAction(ActionFactory::ActionKind::OrderPlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::ShufflePlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::SinglePlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::SingleLoop); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::ListLoop); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); } TEST(requestAction, playSpeed) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ZeroPointFiveTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OnePointTwoTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OnePointFiveTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Double); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OneTimes); // QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::SeekAbsolute); } TEST(requestAction, frame) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio4x3Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio16x9Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio16x10Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio185x1Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio235x1Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::DefaultFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ClockwiseFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::CounterclockwiseFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::NextFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::PreviousFrame); } TEST(requestAction,mute) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ToggleMute); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ToggleMute); } TEST(requestAction, subtitle) { Platform_MainWindow* w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); w->show(); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::LoadSubtitle); QTest::qWait(100); engine->loadSubtitle(QFileInfo(QString("/data/source/deepin-movie-reborn/movie/Hachiko.A.Dog's.Story.ass"))); QTest::qWait(100); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTest::qWait(100); } TEST(requestAction,goToScreenshotSolder) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::GoToScreenshotSolder); EXPECT_TRUE(true); } TEST(requestAction,openFiles) { Platform_MainWindow *w = dApp->getMainWindow(); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::OpenFileList); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::OpenDirectory); // QTest::qWait(100); w->requestAction(ActionFactory::ActionKind::PlaylistOpenItemInFM); utils::ShowInFileManager(QString("/usr/share/music/bensound-sunny.mp3")); QTest::qWait(100); } TEST(requestAction, settings) { Platform_MainWindow* w = dApp->getMainWindow(); Settings::get().settings()->setOption("base.screenshot.location", "/data/source/deepin-movie-reborn/movie/DMovie"); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Settings); QTest::qWait(200); EXPECT_TRUE(true); } TEST(requestAction,openCdrom) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OpenCdrom); EXPECT_TRUE(true); } TEST(requestAction,changeSubCodepage) { Platform_MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); QList list = {"test"}; w->requestAction(ActionFactory::ActionKind::ChangeSubCodepage, false, list); } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/libdmr/000077500000000000000000000000001473342170300243535ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/libdmr/test_dmr.cpp000066400000000000000000000066651473342170300267150ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "player_widget.h" #include "player_engine.h" #include "compositing_manager.h" #include "movie_configuration.h" TEST(libdmr, libdmrTest) { using namespace dmr; PlayerWidget *player = new PlayerWidget(); player->engine().changeVolume(120); #ifndef __aarch64__ player->play(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); #endif auto &mc = MovieConfiguration::get(); mc.updateUrl(QUrl("movie1"), "sub-delay", -2.5); mc.updateUrl(QUrl("movie1"), "sub-delay", 1.5); mc.updateUrl(QUrl("movie2"), "sub-delay", 1.0); mc.updateUrl(QUrl("movie1"), "volume", 20); auto res = mc.queryByUrl(QUrl("movie1")); mc.removeUrl(QUrl("movie1")); mc.updateUrl(QUrl("movie1"), "volume", 30); mc.updateUrl(QUrl("movie2"), "volume", 40); res = mc.queryByUrl(QUrl("movie1")); mc.clear(); QTest::qWait(100); delete player; } TEST(libdmr, utils) { using namespace dmr; Platform_MainWindow* w = dApp->getMainWindow(); bool ret = utils::CompareNames("/data/source/deepin-movie-reborn/movie/demo.mp4", "/data/source/deepin-movie-reborn/movie/demo.mp3"); ret = utils::CompareNames("/data/source/deepin-movie-reborn/movie/demo.mp4", "/data/source/deepin-movie-reborn//movie/demo.mp4"); //QCOMPARE(ret, true); utils::UnInhibitPower(20); utils::MoveToCenter(w); utils::Time2str(90000); utils::ValidateScreenshotPath(QString("/data/source/deepin-movie-reborn")); utils::ValidateScreenshotPath(QString("~/uos")); utils::MakeRoundedPixmap(QPixmap("/data/source/deepin-movie-reborn/test.jpg"), 10, 10); utils::MakeRoundedPixmap(QSize(20, 30), QPixmap("/data/source/deepin-movie-reborn/test.jpg"), 10, 10, 20); utils::ShowInFileManager("/data/source/deepin-movie-reborn/movie/demo.mp4"); utils::ShowInFileManager("/data/source/deepin-movie-reborn/test"); //path is not exist } TEST(libdmr, playlistModel) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playlist().savePlaylist(); engine->playlist().clearPlaylist(); QUrl url = QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); bool is = false; engine->playlist().getMovieInfo(url, &is); engine->playlist().getMovieCover(url); } TEST(libdmr, compositingManager) { if (CompositingManager::get().composited()) { CompositingManager::detectOpenGLEarly(); CompositingManager::detectPciID(); } bool run = CompositingManager::get().runningOnNvidia(); qDebug() << __func__ << "isRunningOnNvidia: " << run ; run = CompositingManager::get().runningOnVmwgfx(); qDebug() << __func__ << "isRunningOnVmwgfx: " << run ; CompositingManager::get().setTestFlag(CompositingManager::get().isTestFlag()); } TEST(libdmr, movieConfiguration) { MovieConfiguration::get().removeFromListUrl( QUrl("/data/source/deepin-movie-reborn/Hachiko.A.Dog's.Story.ass"), ConfigKnownKey::ExternalSubs, QString()); } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/libdmr/test_player_engine.cpp000066400000000000000000000016321473342170300307410ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "player_widget.h" #include "player_engine.h" #include "compositing_manager.h" #include "movie_configuration.h" TEST(PlayerEngine, playerEngine) { Platform_MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QString subCodepage = engine->subCodepage(); engine->addSubSearchPath(QString("/test/")); engine->selectTrack(1); engine->volumeUp(); engine->volumeDown(); engine->toggleMute(); } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/libdmr/test_settings.cpp000066400000000000000000000051211473342170300277550ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include "application.h" #include "dmr_settings.h" #include "utils.h" #include "movie_configuration.h" #include "dbus_adpator.h" using namespace dmr; using namespace utils; TEST(Settings, Settings) { Settings::get().isSet(Settings::Flag::ClearWhenQuit); Settings::get().isSet(Settings::Flag::ShowThumbnailMode); Settings::get().isSet(Settings::Flag::AutoSearchSimilar); Settings::get().isSet(Settings::Flag::PreviewOnMouseover); Settings::get().isSet(Settings::Flag::MultipleInstance); Settings::get().isSet(Settings::Flag::PauseOnMinimize); Settings::get().settings()->sync(); Settings::get().commonPlayableProtocols(); Settings::get().commonPlayableProtocols(); Settings::get().iscommonPlayableProtocol("dvb"); Settings::get().screenshotLocation(); Settings::get().screenshotNameTemplate(); Settings::get().screenshotNameSeqTemplate(); QString path("/usr/share/dde-introduction"); Settings::get().setGeneralOption("last_open_path", path); QVariant v = Settings::get().generalOption("last_open_path"); DSettingsOption settingsOption; emit settingsOption.valueChanged(v); DLineEdit edit; emit edit.editingFinished(); } TEST(Settings, shortcut) { Settings::get().settings()->setOption("shortcuts.play.enable", false); Settings::get().settings()->setOption("shortcuts.play.enable", true); Settings::get().settings()->setOption("shortcuts.play.playlist", "Shift+Return"); Settings::get().settings()->setOption("shortcuts.play.movie_info", "Shift+Num+Enter"); Settings::get().settings()->setOption("subtitle.font.size", 20); Settings::get().settings()->setOption("base.play.hwaccel", 1); Settings::get().settings()->setOption("base.decode.select", DecodeMode::AUTO); Settings::get().settings()->setOption("base.decode.select", DecodeMode::HARDWARE); Settings::get().settings()->setOption("base.decode.select", DecodeMode::SOFTWARE); emit Settings::get().hwaccelModeChanged("base.play.hwaccel", 1); // Settings::get().settings()->setOption("play.global_volume", 120); } TEST(Settings, mwDeconstruction) { Platform_MainWindow *w = dApp->getMainWindow(); w->close(); delete w; w = nullptr; } deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/libdmr/test_wayland.cpp000066400000000000000000000112201473342170300275510ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /* #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "dmr_settings.h" #include "utils.h" #include "movie_configuration.h" #include "dbus_adpator.h" using namespace dmr; using namespace utils; TEST(Wayland, wayland) { // QTest::qWait(500); QString homePath = QDir::homePath(); QStringList command; command << "-rf" << QString("%1/.config/deepin-movie-test").arg(homePath); QProcess::execute("rm", command); MainWindow *w_wayland = dApp->getMainWindowWayland(); auto &mc = MovieConfiguration::get(); MovieConfiguration::get().init(); PlayerEngine *engine = w_wayland->engine(); ToolboxProxy *toolboxProxy = w_wayland->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); ToolButton *fsBtn = toolboxProxy->fsBtn(); ButtonBoxButton* playBtn = static_cast(toolboxProxy->playBtn()); ButtonBoxButton* nextBtn = static_cast(toolboxProxy->nextBtn()); ButtonBoxButton* prevBtn = static_cast(toolboxProxy->prevBtn()); QList listPlayFiles; // QTest::qWait(200); w_wayland->resize(850, 600); w_wayland->show(); // QTest::qWait(800); listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const auto &valids = engine->addPlayFiles(listPlayFiles); #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); qDebug() << __func__ << Settings::get().settings()->option("base.play.showInthumbnailmode"); #endif Settings::get().settings()->setOption("base.play.resumelast", false); qDebug() << Settings::get().settings()->option("base.play.resumelast"); if(!valids.empty()){ // QTest::mouseMove(playBtn, QPoint(), 100); // QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play // QTest::qWait(200); const auto &valids = engine->addPlayFiles(listPlayFiles); engine->playByName(valids[0]); w_wayland->requestAction(ActionFactory::ActionKind::ToggleMute); // QTest::qWait(200); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier,QPoint(), 500); fsBtn->showToolTip(); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play next // QTest::qWait(200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); // emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play prev QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); Settings::get().settings()->setOption("base.play.emptylist", false); } ApplicationAdaptor *appAdaptor = new ApplicationAdaptor(w_wayland); appAdaptor->Raise(); appAdaptor->openFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); QStringList fileList; fileList << "/data/source/deepin-movie-reborn/movie/demo.mp4"\ <<"/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"; appAdaptor->openFiles(fileList); QEvent enterEvent(QEvent::Enter); QEvent leaveEvent(QEvent::Leave); QApplication::sendEvent(playBtn, &enterEvent); QApplication::sendEvent(playBtn, &leaveEvent); QApplication::sendEvent(fsBtn, &enterEvent); QApplication::sendEvent(fsBtn, &leaveEvent); #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); #endif Settings::get().settings()->setOption("base.play.resumelast", true); // w_wayland->close(); QTest::qWait(100); delete w_wayland; w_wayland = nullptr; } */ deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/play.conf000066400000000000000000000000211473342170300247070ustar00rootroot00000000000000hwdec=auto vo=xv deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/test_qtestmain.cpp000066400000000000000000000034441473342170300266570ustar00rootroot00000000000000// Copyright (C) 2019 ~ 2020 UnionTech Software Technology Co.,Ltd // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include "application.h" #include "platform/platform_mainwindow.h" #include "movie_configuration.h" #include #include "player_widget.h" using namespace dmr; // add necessary includes here #include #include #include #ifndef __mips__ #include #endif class QTestMain : public QObject { Q_OBJECT public: QTestMain(int &argc, char **argv); ~QTestMain(); private slots: void initTestCase(); void cleanupTestCase(); void testGTest(); private: int m_argc; char **m_argv; }; QTestMain::QTestMain(int &argc, char **argv) { m_argc = argc; m_argv = argv; } QTestMain::~QTestMain() { } void QTestMain::initTestCase() { qDebug() << "=====start test====="; } void QTestMain::cleanupTestCase() { qDebug() << "=====stop test====="; exit(0); } void QTestMain::testGTest() { testing::GTEST_FLAG(output) = "xml:./report/report_deepin-movie-test.xml"; testing::InitGoogleTest(&m_argc,m_argv); int ret = RUN_ALL_TESTS(); #ifndef __mips__ __sanitizer_set_report_path("asan.log"); #endif Q_UNUSED(ret) // exit(0); } int main(int argc, char *argv[]) { Application app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); setlocale(LC_NUMERIC, "C"); QTestMain testMain(argc, argv); Platform_MainWindow *pMainWindow = new Platform_MainWindow(); MovieConfiguration::get().init(); app.setMainWindow(pMainWindow); QTest::qExec(&testMain, argc, argv); return app.exec(); } #include "test_qtestmain.moc" deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/ut-build-run.sh000077500000000000000000000053521473342170300257750ustar00rootroot00000000000000#!/bin/bash # SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later executable=deepin-movie-platform-test #可执行程序的文件名 platform=`uname -m` echo ${platform} cd ./tests/deepin-movie-platform/ mkdir -p html mkdir -p report rm -fr /data/source/deepin-movie-reborn/movie/play.conf cp ../../../tests/deepin-movie-platform/play.conf /data/source/deepin-movie-reborn/movie/play.conf echo " ===================CREAT LCOV REPROT==================== " lcov --directory ./CMakeFiles/deepin-movie-platform-test.dir --zerocounters ASAN_OPTIONS="fast_unwind_on_malloc=1" ./$executable lcov --directory . --capture --output-file ./html/${executable}_Coverage.info rm -fr /data/source/deepin-movie-reborn/movie/play.conf echo " =================== do filter begin ==================== " if [ ${platform} = x86_64 ];then lcov --remove ./html/${executable}_Coverage.info 'tests/CMakeFiles/${executable}.dir/${executable}_autogen/*/*' '${executable}_autogen/*/*/*.cpp' '*/usr/include/*' '*/tests/*' '/usr/local/*' '*/src/common/utility_x11.*' '*/src/common/settings_translation.cpp' '*/src/common/event_monitor.cpp' '*/src/widgets/videoboxbutton.cpp' '*/src/common/hwdec_probe.*' '*/src/backends/mpv/mpv_glwidget.cpp' '*/src/common/thumbnail_worker.*' '*/src/common/mainwindow.*' '*/src/common/dbus_adpator.*' '*/src/common/dmr_setting.*' '*/src/widgets/animationlabel.*' '*/src/widgets/movie_progress_indicator.*' '*/src/widgets/notification_widget.*' '*/src/widgets/playlist_widget.*' '*/src/widgets/toolbox_proxy.*' '*/src/widgets/volumeslider.*' -o ./html/${executable}_Coverage_fileter.info else lcov --remove ./html/${executable}_Coverage.info 'tests/CMakeFiles/${executable}.dir/${executable}_autogen/*/*' '${executable}_autogen/*/*/*.cpp' '*/usr/include/*' '*/tests/*' '/usr/local/*' '*/src/common/utility_x11.*' '*/src/common/settings_translation.cpp' '*/src/common/event_monitor.cpp' '*/src/widgets/videoboxbutton.cpp' '*/src/backends/mpv/mpv_glwidget.cpp' '*/src/common/platform/thumbnail_worker.*' '*/src/common/thumbnail_worker.*' '*/src/common/mainwindow.*' '*/src/common/dbus_adpator.*' '*/src/common/dmr_setting.*' '*/src/widgets/animationlabel.*' '*/src/widgets/movie_progress_indicator.*' '*/src/widgets/notification_widget.*' '*/src/widgets/playlist_widget.*' '*/src/widgets/toolbox_proxy.*' '*/src/widgets/volumeslider.*' -o ./html/${executable}_Coverage_fileter.info echo true fi echo " =================== do filter end ====================== " genhtml -o ./html ./html/${executable}_Coverage_fileter.info mv ./html/index.html ./html/cov_${executable}.html mv asan.log* asan_${executable}.log cp -r ./html/ ../../ cp -r ./report/ ../../ cp ./asan_${executable}.log ../../ //ls report/ exit 0 deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/vendor/000077500000000000000000000000001473342170300243775ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/vendor/test_movieapp.cpp000066400000000000000000000023651473342170300277700ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include "application.h" #include #include "src/vendor/movieapp.h" #include "movie_configuration.h" using namespace dmr; #ifndef __mips__ TEST(MovieApp, testMprisapp) { Platform_MainWindow* w = new Platform_MainWindow; auto &mc = MovieConfiguration::get(); MovieConfiguration::get().init(); PlayerEngine *engine = w->engine(); Platform_ToolboxProxy *toolboxProxy = w->toolbox(); w->resize(850, 600); utils::MoveToCenter(w); w->show(); // QTest::qWait(500); Settings::get().settings()->setOption("base.play.emptylist", true); //退出时清空播放列表 MovieApp *movieapp = new MovieApp(w); movieapp->initMpris("movie"); movieapp->show(); // QTest::qWait(300); movieapp->quit(); movieapp->deleteLater(); movieapp = nullptr; w->deleteLater(); w = nullptr; // QTimer::singleShot(1000,[=]{movieapp->show();}); // QTest::qWait(300); // w->testMprisapp(); } #endif deepin-movie-reborn-5.15.10/tests/deepin-movie-platform/vendor/test_presenter.cpp000066400000000000000000000061301473342170300301510ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include "application.h" #include #include "src/vendor/presenter.h" #include "movie_configuration.h" using namespace dmr; TEST(Presenter, slotplay) { // MainWindow *w = dApp->getMainWindowWayland(); MainWindow *w = new MainWindow; MovieConfiguration::get().init(); Presenter *presenter = new Presenter(w); presenter->slotopenUrlRequested(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3")); presenter->slotplay(); presenter->slotpause(); presenter->slotplaynext(); presenter->slotplayprev(); presenter->slotvolumeRequested(1.5); presenter->slotstateChanged(); presenter->slotvolumeChanged(); presenter->slotseek(qlonglong(200)); presenter->slotloopStatusRequested(Mpris::LoopStatus::None); presenter->slotloopStatusRequested(Mpris::LoopStatus::Track); presenter->slotloopStatusRequested(Mpris::LoopStatus::Playlist); presenter->slotloopStatusRequested(Mpris::LoopStatus::InvalidLoopStatus); presenter->slotplayModeChanged(PlaylistModel::PlayMode::OrderPlay); presenter->slotplayModeChanged(PlaylistModel::PlayMode::SingleLoop); presenter->slotplayModeChanged(PlaylistModel::PlayMode::ListLoop); presenter->slotplayModeChanged(PlaylistModel::PlayMode::ShufflePlay); presenter->slotstop(); presenter->deleteLater(); presenter = nullptr; // w->close(); // w->deleteLater(); // w = nullptr; } //TEST(Presenter, slotloopStatusRequested) //{ //// Presenter *presenter = dApp->getPresenter(); // MainWindow w; //// auto &mc = MovieConfiguration::get(); // MovieConfiguration::get().init(); //// PlayerEngine *engine = w->engine(); // Presenter *presenter = new Presenter(&w); //// QTest::qWait(500); // presenter->slotloopStatusRequested(Mpris::LoopStatus::None); //// QTest::qWait(500); // presenter->slotloopStatusRequested(Mpris::LoopStatus::Track); //// QTest::qWait(500); // presenter->slotloopStatusRequested(Mpris::LoopStatus::Playlist); //// QTest::qWait(500); // presenter->slotloopStatusRequested(Mpris::LoopStatus::InvalidLoopStatus); //} //TEST(Presenter, slotplayModeChanged) //{ //// Presenter *presenter = dApp->getPresenter(); // MainWindow w; //// auto &mc = MovieConfiguration::get(); // MovieConfiguration::get().init(); //// PlayerEngine *engine = w->engine(); // Presenter *presenter = new Presenter(&w); //// QTest::qWait(500); // presenter->slotplayModeChanged(PlaylistModel::PlayMode::OrderPlay); //// QTest::qWait(500); // presenter->slotplayModeChanged(PlaylistModel::PlayMode::SingleLoop); //// QTest::qWait(500); // presenter->slotplayModeChanged(PlaylistModel::PlayMode::ListLoop); //// QTest::qWait(500); // presenter->slotplayModeChanged(PlaylistModel::PlayMode::ShufflePlay); //} deepin-movie-reborn-5.15.10/tests/deepin-movie/000077500000000000000000000000001473342170300212605ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie/CMakeLists.txt000066400000000000000000000133511473342170300240230ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. # # SPDX-License-Identifier: GPL-3.0-or-later # 定义需要的cmake版本 cmake_minimum_required(VERSION 3.10) # 设置cmake参数 set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_CXX_STANDARD 17) #ADD_DEFINITIONS( -LITE_DIV) execute_process(COMMAND uname -m OUTPUT_VARIABLE MACH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) option (USE_TEST "Use TESTS" ON) add_definitions( -DUSE_TEST ) # 设置Qt模块 set(QtModule Core Gui Widgets Network X11Extras PrintSupport DBus Sql Svg Multimedia MultimediaWidgets Concurrent LinguistTools Test Xml) # 设置工程名字 project(deepin-movie-test) # 查找Qt相关的库链接 find_package(Qt5 REQUIRED ${QtModule}) find_package(Qt5Xml) find_package(Qt5Test) # 包含源码文件夹 include_directories(${CMAKE_INCLUDE_CURRENT_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(../../src) include_directories(../../src/common) include_directories(../../src/common/platform) include_directories(../../src/widgets) include_directories(../../src/widgets/platform) include_directories(../../src/libdmr) include_directories(../../src/vendor) include_directories(../../src/backends) include_directories(../../src/backends/mpv) include_directories(../../src/backends/mediaplayer) include_directories(../../src/dlna) include_directories(../../src/dlna/dlnaHttpServer) #add_subdirectory(googletest) # 定义 source 文件 FILE (GLOB allSource ../../src/common/*.cpp ../../src/common/platform/*.cpp ../../src/widgets/*.cpp ../../src/widgets/platform/*.cpp ../../src/libdmr/*.cpp ../../src/vendor/*.cpp ../../src/backends/mpv/*.cpp ../../src/backends/mediaplayer/*.cpp ../../src/backends/*.cpp ../../src/dlna/*.cpp ../../src/dlna/dlnaHttpServer/*.cpp ../../src/dlna/dlnaHttpServer/*.c ) FILE (GLOB allTestSource *.cpp *.sh common/*.cpp dlna/*.cpp libdmr/*.cpp backends/*.cpp vendor/*.cpp stub/*.cpp *.sh ) # 定义资源文件 set(AllQRC ../../assets/resources.qrc ../../assets/icons/theme-icons.qrc ) # 设置不删除生成的文件夹内容文件(设置此项是为了翻译后的文件不被删除) set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1) # 添加需要安装的模块 add_executable(${PROJECT_NAME} ${allSource} ${allTestSource} ${AllQRC} ) # 添加gocv覆盖率文件的输出 if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64") set(CMAKE_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage") #mips平台下不进行内存检测 else() set(CMAKE_CXX_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer -g -fprofile-arcs -ftest-coverage") set(CMAKE_C_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer") set(CMAKE_L_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer") endif() set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) set(OBJECT_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/objects) add_custom_target(test COMMAND mkdir -p build-ut COMMAND mkdir -p build-ut/report WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) add_custom_command(TARGET test COMMAND echo " ===================CREAT LCOV REPROT==================== " COMMAND lcov --directory ./CMakeFiles/${PROJECT_NAME}.dir --zerocounters COMMAND ./tests/${PROJECT_NAME} #-o ./build-ut/report/report_${PROJECT_NAME}.xml,xml COMMAND lcov --directory . --capture --output-file ./build-ut/${PROJECT_NAME}_Coverage.info COMMAND echo " =================== do filter begin ==================== " COMMAND lcov --remove ./build-ut/${PROJECT_NAME}_Coverage.info 'CMakeFiles/${PROJECT_NAME}.dir/${PROJECT_NAME}_autogen/*/*' '${PROJECT_NAME}_autogen/*/*/*.cpp' 'googletest/*/*' '*/usr/include/*' '*/tests/*' '/usr/local/*' '*/src/common/filter.*' '*/src/common/settings_translation.cpp' '*/src/common/event_monitor.cpp' '*/src/widgets/videoboxbutton.cpp' '*/src/common/event_relayer.cpp' -o ./build-ut/${PROJECT_NAME}_Coverage_fileter.info COMMAND echo " =================== do filter end ==================== " COMMAND genhtml -o ./build-ut/report ./build-ut/${PROJECT_NAME}_Coverage_fileter.info COMMAND echo " -- Coverage files have been output to ${CMAKE_BINARY_DIR}/build-ut/report " WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) add_dependencies(test ${PROJECT_NAME}) #------------------------------ 添加第三方库 DTK ------------------------------- # 使用第三方库需要用到的一个包 find_package(PkgConfig REQUIRED) #set(TARGET_LIBS X11 Xext Xtst PkgConfig::Xcb Qt5::Widgets Qt5::X11Extras Qt5::Network # Qt5::Concurrent Qt5::DBus Qt5::Sql PkgConfig::Dtk # PkgConfig::Mpv PkgConfig::MPRIS PkgConfig::DBusextended # PkgConfig::AV pthread GL) # 检查第三方库(这里检查了名字为dtkwidget的库和名字为dtkgui的库),然后取名3rd_lib pkg_check_modules(3rd_lib REQUIRED dtkwidget dtkgui libpulse dvdnav gsettings-qt x11 xext xtst xcb gl xcb-aux xcb-proto xcb-ewmh xcb-shape mpris-qt5 dbusextended-qt5 libva libva-x11 gstreamer-1.0 glib-2.0 gstreamer-pbutils-1.0 ) #libpulse-simple xcb-aux gtest # 添加第三方库的所有文件夹路径到工程中来(注意 *_INCLUDE_DIRS) target_include_directories(${PROJECT_NAME} PUBLIC ${3rd_lib_INCLUDE_DIRS}) # 将第三方库链接进来(注意 *_LIBRARIES) target_link_libraries(${PROJECT_NAME} ${3rd_lib_LIBRARIES} Qt5::GuiPrivate Qt5::Test ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES}) #------------------------------添加第三方库end------------------------------------- target_link_libraries(${PROJECT_NAME} gmock gmock_main gtest gtest_main) # 将工程与Qt模块链接起来 qt5_use_modules(${PROJECT_NAME} ${QtModule}) deepin-movie-reborn-5.15.10/tests/deepin-movie/application.cpp000066400000000000000000000032151473342170300242700ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "application.h" Application::Application(int &argc, char **argv) : DApplication(argc, argv) { } Application::~Application() { // m_mainwindow->close(); // delete m_mainwindow; // m_movieapp->quit(); } void Application::setMainWindow(MainWindow *window) { if (nullptr != window) { m_mainwindow = window; } } void Application::setMainWindowWayland(MainWindow *window) { if (nullptr != window) { m_mainwindow_wayland = window; } } MainWindow * Application::getMainWindow() { if(nullptr == m_mainwindow) m_mainwindow = new MainWindow(); return m_mainwindow; } MainWindow * Application::getMainWindowWayland() { if(nullptr == m_mainwindow_wayland) //qputenv("_d_disableDBusFileDialog", "true"); setenv("PULSE_PROP_media.role", "video", 1); QSurfaceFormat format; format.setRenderableType(QSurfaceFormat::OpenGLES); format.setDefaultFormat(format); utils::set_wayland(true); bool iswayland = utils::first_check_wayland_env(); m_mainwindow_wayland = new MainWindow(); return m_mainwindow_wayland; } Presenter * Application::getPresenter() { if(m_presenter == nullptr) { m_presenter = new Presenter(getMainWindowWayland()); } return m_presenter; } MovieApp * Application::initMovieApp(MainWindow *mw) { if(m_movieapp == nullptr) { m_movieapp = new MovieApp(mw,this); } return m_movieapp; } deepin-movie-reborn-5.15.10/tests/deepin-movie/application.h000066400000000000000000000021041473342170300237310ustar00rootroot00000000000000// Copyright (C) 2016 ~ 2018 Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef APPLICATION_H_ #define APPLICATION_H_ #include #include "mainwindow.h" #include "url_dialog.h" #include "presenter.h" #include "movieapp.h" using namespace dmr; class Application; #if defined(dApp) #undef dApp #endif #define dApp (static_cast(QCoreApplication::instance())) DWIDGET_USE_NAMESPACE class Application : public DApplication { Q_OBJECT public: Application(int &argc, char **argv); ~Application(); void setMainWindow(MainWindow *window); void setMainWindowWayland(MainWindow *window); MainWindow *getMainWindow(); MainWindow *getMainWindowWayland(); Presenter * getPresenter(); MovieApp * initMovieApp(MainWindow *mw); private: MainWindow *m_mainwindow {nullptr}; MainWindow *m_mainwindow_wayland {nullptr}; Presenter *m_presenter {nullptr}; MovieApp *m_movieapp {nullptr}; }; #endif // APPLICATION_H_ deepin-movie-reborn-5.15.10/tests/deepin-movie/common/000077500000000000000000000000001473342170300225505ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie/common/test_mainwindow.cpp000066400000000000000000001506611473342170300265000ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "cssdpsearch.h" #define protected public #define private public #include "src/common/mainwindow.h" #undef protected #undef private #include "application.h" #include #include "src/libdmr/filefilter.h" #include "src/libdmr/player_engine.h" #include "src/widgets/toolbox_proxy.h" #include "src/widgets/toolbutton.h" #include "src/widgets/playlist_widget.h" #include "src/widgets/slider.h" #include "src/widgets/movieinfo_dialog.h" #include "src/widgets/url_dialog.h" #include "src/widgets/dmr_lineedit.h" #include "src/common/actions.h" #include "src/backends/mpv/mpv_glwidget.h" #include "utils.h" #include "actions.h" #include "dbus_adpator.h" #include "dbusutils.h" #include "burst_screenshots_dialog.h" #include "mpv_proxy.h" #include "stub/stub.h" #include "stub/addr_any.h" #include "stub/stub_function.h" using namespace dmr; #ifdef false TEST(PadMode, mainWindow) { Stub stub; //Stub stub1; stub.set(ADDR(CompositingManager, isPadSystem), StubFunc::isPadSystemTrue_stub); stub.set(ADDR(CompositingManager, composited), StubFunc::isCompositedFalse_stub); QTest::qWait(1000); MainWindow mw; QTest::qWait(100); mw.show(); QTest::qWait(800); mw.requestAction(ActionFactory::ActionKind::StartPlay); QTest::mouseClick(&mw, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::qWait(500); stub.reset(ADDR(CompositingManager, isPadSystem)); stub.reset(ADDR(CompositingManager, composited)); mw.close(); QTest::qWait(2000); } #endif bool check_wayland_env_stub() { return true; } void stub_check_wayland_env(Stub &stub) { stub.set(ADDR(utils, check_wayland_env), check_wayland_env_stub); } int fileDialog_exec_stub() { return QFileDialog::Rejected; } TEST(GStreamer, mainWindow) { Stub stub; stub.set(ADDR(CompositingManager, isMpvExists), StubFunc::isMpvExists_stub); QTest::qWait(1000); MainWindow *mw = new MainWindow; QTest::qWait(100); mw->show(); QTest::qWait(800); PlayerEngine *engine = mw->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); engine->playlist().loadPlaylist(); engine->addPlayFiles(listPlayFiles); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); QTest::qWait(2000); stub.reset(ADDR(CompositingManager, isMpvExists)); mw->close(); delete mw; QTest::qWait(500); } TEST(MainWindow, init) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); int sid; w->checkWarningMpvLogsChanged("test", "Hardware does not support image size 3840x2160"); sid = engine->sid(); engine->isSubVisible(); engine->selectSubtitle(0); engine->videoAspect(); engine->volumeUp(); engine->setDVDDevice("/data/home/"); QMimeData mimeData; QList urls; urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); mimeData.setUrls(urls); // Drop inside the mainwindow QDropEvent drop(w->pos(), Qt::CopyAction, &mimeData, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(w, &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); QTest::qWait(100); } TEST(MainWindow, openFile) { Stub stub; typedef int (*fptr)(DFileDialog *); fptr A_foo = (fptr)(&DFileDialog::exec); //获取虚函数地址 stub.set(A_foo, fileDialog_exec_stub); // stub.set(ADDR(DFileDialog, exec), fileDialog_exec_stub); // stub_fileDialog_exec(stub); MainWindow *w = dApp->getMainWindow(); w->requestAction(ActionFactory::ActionKind::OpenFile); QTest::keyClick(w, Qt::Key_Escape, Qt::NoModifier, 1000); } TEST(MainWindow, toolbox_initToolTip) { Stub stub; stub_check_wayland_env(stub); MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = new ToolboxProxy(w, engine); toolboxProxy->show(); QTest::qWait(200); DButtonBoxButton *playBtn = toolboxProxy->playBtn(); DButtonBoxButton *nextBtn = toolboxProxy->nextBtn(); DButtonBoxButton *prevBtn = toolboxProxy->prevBtn(); QEvent enterEvent(QEvent::Enter); QEvent leaveEvent(QEvent::Leave); QMouseEvent mouseMove(QEvent::MouseMove, QPoint(0, 0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(playBtn, &enterEvent); QApplication::sendEvent(playBtn, &mouseMove); QApplication::sendEvent(playBtn, &leaveEvent); QApplication::sendEvent(nextBtn, &enterEvent); QApplication::sendEvent(nextBtn, &mouseMove); QApplication::sendEvent(nextBtn, &leaveEvent); QApplication::sendEvent(prevBtn, &enterEvent); QApplication::sendEvent(prevBtn, &mouseMove); QApplication::sendEvent(prevBtn, &leaveEvent); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //pause QTest::mouseMove(w, QPoint(200, 300), 200); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); toolboxProxy->setButtonTooltipHide(); QTest::qWait(100); toolboxProxy->deleteLater(); } TEST(MainWindow, nakedstream) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider* dmrSlider = toolboxProxy->getSlider(); VolumeSlider* volumeSlider = toolboxProxy->volumeSlider(); VolumeButton *volBtn = toolboxProxy->volBtn(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264"); w->show(); engine->playlist().loadPlaylist(); engine->playlist().clear(); engine->addPlayFiles(listPlayFiles); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264")); // drop is playing video QMimeData mimeData; QList urls; urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/test.264"); mimeData.setUrls(urls); QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(w, &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); qApp->sendEvent(w, &dragMove); QDropEvent drop(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::NoButton, {}); QApplication::sendEvent(w, &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); QTest::mousePress(dmrSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::mouseMove(dmrSlider, QPoint(), 100); QTest::mouseRelease(dmrSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::keyClick(dmrSlider, Qt::Key_Left, Qt::NoModifier, 200); QTest::keyClick(dmrSlider, Qt::Key_Right, Qt::NoModifier, 200); QTest::mouseClick(volBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::qWait(500); QTest::mousePress(volumeSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::mouseMove(volumeSlider, QPoint(), 100); QTest::mouseRelease(volumeSlider, Qt::LeftButton, Qt::NoModifier, QPoint(), 100); QTest::keyClick(dmrSlider, Qt::Key_M, Qt::NoModifier, 200); QTest::keyClick(w, Qt::Key_Up, Qt::ControlModifier | Qt::AltModifier, 200); QTest::keyClick(w, Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 200); // reset case QTest::mouseMove(volBtn, QPoint(), 200); QTest::keyClick(volBtn, Qt::Key_Enter, Qt::NoModifier, 200); QTest::qWait(1000); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); } #ifndef __mips__ TEST(MainWindow, tabInteraction) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *fsBtn = toolboxProxy->fsBtn(); VolumeButton *volBtn = toolboxProxy->volBtn(); ToolButton *listBtn = toolboxProxy->listBtn(); PlaylistWidget *playlistWidget; DListWidget *playlist; QList listPlayFiles; QTestEventList testEventList; w->show(); listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/天空之眼 高清1080P.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); engine->playlist().loadPlaylist(); const QList &valids = engine->addPlayFiles(listPlayFiles); QTest::qWait(500); QKeyEvent *tabEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier); QApplication::sendEvent(w, tabEvent); QApplication::sendEvent(w->windowHandle(), tabEvent); //volume control volBtn->setFocus(); QTest::keyClick(volBtn, Qt::Key_Enter, Qt::NoModifier, 200); QTest::qWait(500); toolboxProxy->changeMuteState(); for (int i = 0; i < 5; i++) { QTest::keyClick(volBtn, Qt::Key_Down, Qt::NoModifier, 100); //volume up 5 } for (int i = 0; i < 10; i++) { QTest::keyClick(volBtn, Qt::Key_Up, Qt::NoModifier, 100); //volume up 5 } //play list playlistWidget = w->playlist(); playlist = playlistWidget->get_playlist(); listBtn->setFocus(); QTest::qWait(500); QTest::keyClick(listBtn, Qt::Key_Enter, Qt::NoModifier, 200); QTest::keyClick(playlistWidget, Qt::Key_Enter, Qt::NoModifier, 500); //clear playlist for (int i = 0; i < 3; i++) { QTest::keyClick(playlist, Qt::Key_Tab, Qt::NoModifier, 100); } QTest::keyClick(w, Qt::Key_Escape, Qt::NoModifier, 500); //close playlist by Esc QTest::qWait(500); engine->addPlayFiles(listPlayFiles); listBtn->setFocus(); QTest::keyClick(listBtn, Qt::Key_Enter, Qt::NoModifier, 1000); QTest::keyClick(playlistWidget, Qt::Key_Tab, Qt::NoModifier, 500); QTest::keyClick(playlistWidget, Qt::Key_Down, Qt::NoModifier, 500); QTest::keyClick(playlistWidget, Qt::Key_Up, Qt::NoModifier, 500); QTest::keyClick(playlist, Qt::Key_Enter, Qt::NoModifier, 500); delete tabEvent; tabEvent = nullptr; } #endif TEST(MainWindow, loadSpecialFile) { MainWindow *w = dApp->getMainWindow(); w->show(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/{}demo.mp4"); engine->playlist().loadPlaylist(); engine->playlist().clear(); const QList &valids = engine->addPlayFiles(listPlayFiles); QCOMPARE(engine->isPlayableFile(valids[0]), true); if (!valids.empty()) { engine->playByName(valids[0]); } qDebug() << __func__ << "MainWindow.loadSpecialFile:" << engine->state(); w->checkOnlineState(false); QTest::qWait(200); w->resize(900, 700); QTest::qWait(200); w->resize(300, 300); QTest::qWait(200); // video judge EXPECT_TRUE(FileFilter::instance()->isVideo(listPlayFiles[0])); } TEST(MainWindow, loadFile) { MainWindow *w = dApp->getMainWindow(); w->show(); QList wrongPath; wrongPath << "/data/source/deepin-movie-reborn/movie/wrong.mp4"; w->play(wrongPath); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4") << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); QCOMPARE(engine->isPlayableFile(valids[0]), true); if (!valids.empty()) { engine->playByName(valids[0]); } qDebug() << __func__ << "MainWindow.loadFile:" << engine->state(); w->checkOnlineState(false); QTest::qWait(200); w->resize(900, 700); QTest::qWait(200); w->resize(300, 300); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::MatchOnlineSubtitle); QTest::qWait(200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); // emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); // dApp->setProperty("themeType", DGuiApplicationHelper::DarkType); // video judge EXPECT_TRUE(FileFilter::instance()->isVideo(listPlayFiles[0])); } TEST(MainWindow, DBus) { MainWindow *w = dApp->getMainWindow(); ApplicationAdaptor *appAdaptor = new ApplicationAdaptor(w); DBusUtils utils; QVariant v = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); QVariant v_invalid = ApplicationAdaptor::redDBusProperty("com.test", "/test", "com.test", "SinkInputs"); v_invalid = DBusUtils::redDBusProperty("com.test", "/test", "com.test", "SinkInputs"); if (v.isValid()) { QList allSinkInputsList = v.value >(); for (auto curPath : allSinkInputsList) { QVariant name = ApplicationAdaptor::redDBusProperty("org.deepin.dde.Audio1", curPath.path(), "org.deepin.dde.Audio1.SinkInput", "Name"); QString strMovie = QObject::tr("Movie"); if (!name.isValid() || (!name.toString().contains(strMovie, Qt::CaseInsensitive) && !name.toString().contains("deepin-movie", Qt::CaseInsensitive))) continue; QString sinkInputPath = curPath.path(); break; } } QVariant method = ApplicationAdaptor::redDBusMethod("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); QVariant method_invalid = ApplicationAdaptor::redDBusMethod("com.test", "/com/test", "com.test", "SinkInputs"); method = DBusUtils::redDBusMethod("org.deepin.dde.Audio1", "/org/deepin/dde/Audio1", "org.deepin.dde.Audio1", "SinkInputs"); method_invalid = DBusUtils::redDBusMethod("com.test", "/com/test", "com.test", "SinkInputs"); appAdaptor->Raise(); appAdaptor->openFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); //QDBusInterface *m_pDBus = new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()); w->sleepStateChanged(true); Stub stub; stub.set(ADDR(PlayerEngine, state), StubFunc::playerEngineState_Paused_stub); w->sleepStateChanged(false); stub.reset(ADDR(PlayerEngine, state)); } TEST(MainWindow, hwdecChange) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->changehwaccelMode(Backend::hwaccelClose); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 500); engine->changehwaccelMode(Backend::hwaccelAuto); engine->setBackendProperty("hwdec", "auto"); w->setCurrentHwdec(""); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 1000); QTest::keyClick(w, Qt::Key_H, Qt::ControlModifier, 500); } TEST(MainWindow, resizeWindow) { MainWindow *w = dApp->getMainWindow(); //缩放窗口 w->move(200, 200); w->updateGeometry(CornerEdge::LeftEdge, QPoint(100, 100)); w->updateGeometry(CornerEdge::TopEdge, QPoint(100, 100)); w->updateGeometry(CornerEdge::RightEdge, QPoint(100, 100)); w->updateGeometry(CornerEdge::BottomEdge, QPoint(100, 100)); w->updateGeometry(CornerEdge::NoneEdge, QPoint(100, 100)); w->updateGeometry(CornerEdge::TopLeftCorner, QPoint(100, 100)); w->updateGeometry(CornerEdge::TopRightCorner, QPoint(1300, 100)); w->updateGeometry(CornerEdge::BottomLeftCorner, QPoint(100, 100)); w->updateGeometry(CornerEdge::BottomRightCorner, QPoint(100, 100)); } TEST(MainWindow, touch) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); PlayerEngine *engine = w->engine(); engine->stop(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); QTest::qWait(500); if (!w->isFullScreen()) { qDebug() << __func__ << "进入全屏"; QTest::mouseDClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //fullscreen } #if !defined (__mips__ ) && !defined(__aarch64__) w->setTouched(true); Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); #endif QTest::qWait(500); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(100, 200), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(200, 200), 200); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 100), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 300), 200); #if !defined (__mips__ ) && !defined(__aarch64__) while (progbarWidget->currentIndex() == 1) { QTest::qWait(200); } #endif w->setTouched(true); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(300, 200), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(100, 200), 200); QTest::mousePress(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 300), 200); QTest::mouseRelease(w->windowHandle(), Qt::LeftButton, Qt::MetaModifier, QPoint(400, 100), 200); #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); #endif if (w->isFullScreen()) { //quit fullscreen QTest::mouseDClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); } w->setTouched(false); } TEST(MainWindow, shortCutPlay) { MainWindow *w = dApp->getMainWindow(); QTestEventList testEventList; PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << "playerEngineState:" << engine->state() << "playlistCount:" << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } //shortcut view // testEventList.addKeyClick(Qt::Key_Slash, Qt::ControlModifier | Qt::ShiftModifier, 500); BurstScreenshotsDialog bsd(engine->playlist().currentInfo()); bsd.show(); QTest::qWait(500); bsd.close(); //screenshot qDebug() << __func__ << "shortCutPlay: start screenshot " << engine->state(); testEventList.addKeyClick(Qt::Key_A, Qt::AltModifier, 500); //burst screenshot testEventList.addKeyClick(Qt::Key_S, Qt::AltModifier, 1000); testEventList.addKeyClick(Qt::Key_Right, Qt::NoModifier, 300); //fast forward for (int i = 0; i < 4; i++) { testEventList.addKeyClick(Qt::Key_Left, Qt::NoModifier, 300); //fast backward } //playlist testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 800); //playlist popup testEventList.addKeyClick(Qt::Key_Down, Qt::NoModifier, 400); testEventList.addKeyClick(Qt::Key_Enter, Qt::NoModifier, 500); //play selected item testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 1800); //playlist popup testEventList.addKeyClick(Qt::Key_Up, Qt::NoModifier, 400); testEventList.addKeyClick(Qt::Key_Enter, Qt::NoModifier, 500); qDebug() << __func__ << "playlist_count:" << engine->playlist().count(); if (engine->playlist().count() >= 2) { testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 1900); //playlist popup testEventList.addKeyClick(Qt::Key_Down, Qt::NoModifier, 500); testEventList.addKeyClick(Qt::Key_Delete, Qt::NoModifier, 500); //delete from playlist testEventList.addKeyClick(Qt::Key_F3, Qt::NoModifier, 500); } if (w->engine()->state() == PlayerEngine::Idle) { w->engine()->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); } while (w->engine()->state() == PlayerEngine::Idle) { QTest::qWait(200); } //加速播放 for (int i = 0; i < 10 ; i++) { testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier, 50); } //减速播放 for (int i = 0; i < 16 ; i++) { testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier, 50); } //还原播放速度 testEventList.addKeyClick(Qt::Key_R, Qt::ControlModifier, 200); // testEventList.addKeyClick(Qt::Key_Tab, Qt::NoModifier, 300); // testEventList.addKeyClick(Qt::Key_Tab, Qt::NoModifier, 300); qDebug() << __func__ << "playerEngineState:" << engine->state(); testEventList.simulate(w); QTest::qWait(200); w->m_pMircastShowWidget->show(); QTest::qWait(200); testEventList.simulate(w); QTest::qWait(200); w->exitMircast(); } TEST(MainWindow, shortCutVolumeAndFrame) { MainWindow *w = dApp->getMainWindow(); QTestEventList testEventList; QVERIFY(w->toolbox()->getSlider()->isEnabled()); //volume testEventList.addKeyClick(Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 20); //volume down for (int i = 0; i < 11; i++) { testEventList.addKeyClick(Qt::Key_Up, Qt::ControlModifier | Qt::AltModifier, 10);//volume up } for (int i = 0; i < 20; i++) { testEventList.addKeyClick(Qt::Key_Down, Qt::ControlModifier | Qt::AltModifier, 10); //volume down } testEventList.addKeyClick(Qt::Key_M, Qt::NoModifier, 300); //mute testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier | Qt::ShiftModifier, 100); //last frame testEventList.addKeyClick(Qt::Key_Left, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); //next frame testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier, 100); testEventList.addKeyClick(Qt::Key_Space, Qt::NoModifier, 300); //play testEventList.simulate(w); } TEST(MainWindow, miniMode) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << engine->state() << "playlist count:" << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } qDebug() << __func__ << engine->state() << "playlist count:" << engine->playlist().count(); QTest::keyClick(w, Qt::Key_F2, Qt::NoModifier, 500); if (!w->getMiniMode()) { w->requestAction(ActionFactory::ActionKind::ToggleMiniMode); } #if defined(__aarch64__) DIconButton *miniPauseBtn = w->findChild("MiniPlayBtn"); #else DIconButton *miniPauseBtn = w->findChild("MiniPauseBtn"); #endif DIconButton *miniQuiteMiniBtn = w->findChild("MiniQuitMiniBtn"); if (miniPauseBtn && miniQuiteMiniBtn) { QTest::mouseMove(miniPauseBtn, QPoint(), 1000); QTest::mouseClick(miniPauseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); //w->customContextMenuRequested(w->pos()); QTest::mouseMove(miniQuiteMiniBtn, QPoint(), 300); QTest::mouseClick(miniQuiteMiniBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); } QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::ToggleMiniMode); if (miniPauseBtn) { DIconButton *miniCloseBtn = w->findChild("MiniCloseBtn"); QTest::mouseMove(miniPauseBtn, QPoint(), 300); QTest::mouseClick(miniPauseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); QTest::mouseMove(miniCloseBtn, QPoint(), 300); QTest::mouseClick(miniCloseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); w->show(); } QTest::keyClick(w, Qt::Key_Escape, Qt::NoModifier, 1000); } TEST(MainWindow, progBar) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); ////进度条模式 QMouseEvent hover(QEvent::HoverEnter, QPoint(progBarSlider->pos().x(), progBarSlider->pos().y()), Qt::NoButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &hover); QPoint point(progBarSlider->slider()->x() + 30, progBarSlider->slider()->y()); QTest::mouseMove(progBarSlider->slider(), point, 200); QTest::mouseMove(progBarSlider->slider(), QPoint(point.x(), point.y() - 40), 200); QTest::mouseMove(progBarSlider->slider(), point, 200); QTest::mouseClick(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, point, 200); //拖动 QPoint startPoint(progBarSlider->slider()->x() + 100, progBarSlider->slider()->y()); QPoint endPoint(progBarSlider->slider()->x() + 10, progBarSlider->slider()->y()); QTest::mouseMove(progBarSlider->slider(), startPoint, 200); QTest::mousePress(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, startPoint, 100); QTest::mouseMove(progBarSlider->slider(), endPoint, 200); QTest::mouseRelease(progBarSlider->slider(), Qt::LeftButton, Qt::NoModifier, endPoint, 200); startPoint = QPoint(progBarSlider->pos().x() + 60, progBarSlider->pos().y() + 50); endPoint = QPoint(progBarSlider->pos().x() + 90, progBarSlider->pos().y() + 50); // QTest::mouseMove(progBarSlider, startPoint, 200); // QTest::mousePress(progBarSlider, Qt::LeftButton, Qt::NoModifier, startPoint, 100); // QTest::mouseMove(progBarSlider, endPoint, 200); // QTest::mouseRelease(progBarSlider, Qt::LeftButton, Qt::NoModifier, endPoint, 100); //press QMouseEvent mousePress(QEvent::MouseButtonPress, startPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mousePress); //move QMouseEvent mouseMove(QEvent::MouseMove, endPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mouseMove); //release QMouseEvent mouseRelease(QEvent::MouseButtonRelease, endPoint, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &mouseRelease); QEvent leaveEvent(QEvent::Leave); QEvent enterEvent(QEvent::Enter); QApplication::sendEvent(progBarSlider, &leaveEvent); QApplication::sendEvent(progBarSlider, &enterEvent); QWheelEvent wheelEvent = QWheelEvent(endPoint, 20, Qt::MidButton, Qt::NoModifier); QApplication::sendEvent(progBarSlider, &wheelEvent); ////胶片模式 #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); while (progbarWidget->currentIndex() == 1) { //等待胶片加载 QTest::qWait(200); } QWidget *viewProgBar = (QWidget *)toolboxProxy->getViewProBar(); startPoint = QPoint(viewProgBar->x() + 100, viewProgBar->y() + 20); endPoint = QPoint(viewProgBar->x() + 20, viewProgBar->y() + 20); QTest::mouseMove(viewProgBar, QPoint(viewProgBar->x() + 50, viewProgBar->y() + 20), 500); QTest::mouseClick(viewProgBar, Qt::LeftButton, Qt::NoModifier, QPoint(viewProgBar->x() + 50, viewProgBar->y() + 20), 500); QTest::mouseMove(viewProgBar, startPoint, 300); QTest::mousePress(viewProgBar, Qt::LeftButton, Qt::NoModifier, startPoint, 100); QTest::mouseMove(viewProgBar, endPoint, 500); QTest::mouseRelease(viewProgBar, Qt::LeftButton, Qt::NoModifier, endPoint, 500); QTest::qWait(500); Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); #endif } TEST(MainWindow, ViewProgBar) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); QList pmList; pmList.append(QPixmap(QString("/data/source/deepin-movie-reborn/test.jpg"))); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); // viewProgBarLoad *loadWorker = new viewProgBarLoad(engine, progBarSlider, toolboxProxy); // QTest::qWait(200); // loadWorker->start(); // QObject::connect(loadWorker, SIGNAL(sigFinishiLoad(QSize)), toolboxProxy, SLOT(finishLoadSlot(QSize))); //loadWorker->loadViewProgBar(QSize(500, 50)); //progbarWidget->setCurrentIndex(2); toolboxProxy->setThumbnailmode(true); toolboxProxy->resize(400,60); // QTest::qWait(1000); QWidget *viewProgBar = (QWidget *)toolboxProxy->getViewProBar(); viewProgBar->show(); QTest::qWait(200); QMouseEvent mouseMove(QEvent::MouseMove, QPoint(200, 20), Qt::NoButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mouseMove); QMouseEvent mousePress(QEvent::MouseButtonPress, QPoint(200, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mousePress); mouseMove = QMouseEvent(QEvent::MouseMove, QPoint(250, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mouseMove); QMouseEvent mousRelease(QEvent::MouseButtonRelease, QPoint(250, 20), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(viewProgBar, &mousRelease); QEvent leave(QEvent::Leave); QApplication::sendEvent(viewProgBar, &leave); // QObject::disconnect(loadWorker, SIGNAL(sigFinishiLoad(QSize)), toolboxProxy, SLOT(finishLoadSlot(QSize))); QTest::qWait(600); } TEST(MainWindow, ThumbnailPreview) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = w->toolbox(); DMRSlider *progBarSlider = toolboxProxy->getSlider(); QStackedWidget *progbarWidget = toolboxProxy->findChild(PROGBAR_WIDGET); ThumbnailWorker::get().setPlayerEngine(engine); ThumbnailWorker::get().requestThumb(QUrl("/data/source/deepin-movie-reborn/movie/demo.mp4"), 200); } TEST(MainWindow, movieInfoDialog) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); qDebug() << __func__ << engine->state() << engine->playlist().count(); while (engine->state() == PlayerEngine::CoreState::Idle) { QTest::qWait(100); } MovieInfoDialog mid(engine->playlist().currentInfo(), w); DLabel *filePathLbl = mid.findChild("filePathLabel"); QEvent leaveEvent(QEvent::Leave); // QEvent toolTipEvent(QEvent::ToolTip); QHelpEvent toolTipEvent(QEvent::ToolTip, filePathLbl->pos(), QPoint()); // mid.setFont(QFont("Times")); QTest::qWait(200); mid.show(); QTest::qWait(200); if (filePathLbl) { QTest::mouseMove(filePathLbl, QPoint(), 200); QTest::qWait(700); //wait 700ms for tooltip event QApplication::sendEvent(filePathLbl, &toolTipEvent); QTest::mouseMove(w, QPoint(200, 300), 200); QApplication::sendEvent(filePathLbl, &leaveEvent); QTest::qWait(50); } mid.close(); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::LightType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::LightType); QTest::qWait(100); mid.show(); if (filePathLbl) { QTest::mouseMove(filePathLbl, QPoint(), 100); QApplication::sendEvent(filePathLbl, &toolTipEvent); QTest::mouseMove(w, QPoint(200, 300), 800); } QTest::qWait(100); mid.close(); } TEST(MainWindow, VolumeMonitoring) { MainWindow *w = dApp->getMainWindow(); VolumeMonitoring volMonitor(w); volMonitor.start(); QTest::qWait(100); volMonitor.timeoutSlot(); QTest::qWait(100); volMonitor.stop(); QTest::qWait(100); } TEST(MainWindow, SettingsDialog) { MainWindow *w = dApp->getMainWindow(); emit dApp->fontChanged(QFont("Helvetica")); DSettingsDialog *settingsDialog = w->initSettings(); DLineEdit *savePathEdit = settingsDialog->findChild("OptionSelectableLineEdit"); QList Btns = settingsDialog->findChildren(); if(savePathEdit) { emit savePathEdit->focusChanged(true); emit savePathEdit->textEdited("/data/source/deepin-movie-reborn/movie/DMovie"); emit savePathEdit->editingFinished(); } // AddrAny any; // std::map result; // any.get_local_func_addr_symtab("^createSelectableLineEditOptionHandle()$", result); // Stub stub; // std::map::iterator it; // for(it = result.begin(); it != result.end(); ++it) { // stub.set(it->second, StubFunc::createSelectableLineEditOptionHandle_lambda_stub); // } if(Btns[0]) { emit Btns[0]->clicked(false); } } TEST(MainWindow, reloadFile) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); QTest::qWait(100); engine->addPlayFiles(listPlayFiles); } TEST(MainWindow, mircastShowWidget) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); w->m_pMircastShowWidget->show(); QTest::mouseMove(w->m_pMircastShowWidget, QPoint(), 200); QTest::qWait(100); ExitButton *extBtn = new ExitButton(w->m_pMircastShowWidget); extBtn->show(); QTest::qWait(100); QEnterEvent enterEvent(QPoint(0, 0), extBtn->pos(), QPoint(0, 0)); QEvent leaveEvent(QEvent::Leave); QApplication::sendEvent(extBtn, &enterEvent); QApplication::sendEvent(extBtn, &leaveEvent); QTest::qWait(100); QTest::mouseMove(extBtn, QPoint(), 200); QTest::qWait(100); QTest::mouseClick(extBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); QTest::qWait(100); w->mircastSuccess("1234"); QTest::qWait(200); w->exitMircast(); QTest::qWait(200); w->lastOpenedPath(); } TEST(ToolBox, playListWidget) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); PlaylistWidget *playlistWidget = w->playlist(); DListWidget *playlist = playlistWidget->get_playlist(); DFloatingButton *playItemCloseBtn; //playlist item event QEvent tooltipEvent(QEvent::ToolTip); QEvent leaveEvent(QEvent::Leave); QEnterEvent enterEvent(QPoint(0, 0), listBtn->pos(), QPoint(0, 0)); QApplication::sendEvent(listBtn, &enterEvent); QApplication::sendEvent(listBtn, &leaveEvent); QTest::qWait(100); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); //playlist popup QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 700); QTest::qWait(1000); // QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), &tooltipEvent); QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), &leaveEvent); QTest::mouseMove(playlist->itemWidget(playlist->item(1)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(1)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(0)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlist->itemWidget(playlist->item(1)), QPoint(), 200); QTest::mouseDClick(playlist->itemWidget(playlist->item(1)), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(listBtn, QPoint(), 1000); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); //playlist popup //event // emit playlist->model()->rowsMoved(playlistWidget, 0, 1, QModelIndex(), 1); QTest::qWait(100); // QContextMenuEvent *cme = new QContextMenuEvent(QContextMenuEvent::Mouse, playlist->itemWidget(playlist->item(0))->rect().center()); // QTimer::singleShot(100,[=](){ // emit ActionFactory::get().playlistContextMenu()->aboutToHide(); // ActionFactory::get().playlistContextMenu()->clear(); // }); // QApplication::sendEvent(playlist->itemWidget(playlist->item(0)), cme); QPoint point(playlist->pos().x() + 300, playlist->pos().y() + 60); QTest::mouseMove(w, point, 200); QWheelEvent wheelEvent = QWheelEvent(point, 20, Qt::MidButton, Qt::NoModifier); QApplication::sendEvent(w, &wheelEvent); QTest::mouseMove(playlist->itemWidget(playlist->item(0)), QPoint(), 200); QTest::mouseClick(playlist->itemWidget(playlist->item(0)), Qt::LeftButton, Qt::NoModifier, QPoint(), 500); playItemCloseBtn = playlist->findChild(PLAYITEN_CLOSE_BUTTON); QTest::mouseMove(playItemCloseBtn, QPoint(), 100); QTest::mouseClick(playItemCloseBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(w, point, 200); QTest::mouseClick(w, Qt::LeftButton, Qt::NoModifier, point, 200); } TEST(ToolBox, playBtnBox) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QList listPlayFiles; ToolboxProxy *toolboxProxy = w->toolbox(); DButtonBoxButton *playBtn = toolboxProxy->playBtn(); DButtonBoxButton *nextBtn = toolboxProxy->nextBtn(); DButtonBoxButton *prevBtn = toolboxProxy->prevBtn(); listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); engine->addPlayFiles(listPlayFiles); QEvent enterEvent(QEvent::Enter); QEvent leaveEvent(QEvent::Leave); QMouseEvent mouseMove(QEvent::MouseMove, QPoint(0, 0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(playBtn, &enterEvent); QApplication::sendEvent(playBtn, &mouseMove); QApplication::sendEvent(playBtn, &leaveEvent); QApplication::sendEvent(nextBtn, &enterEvent); QApplication::sendEvent(nextBtn, &mouseMove); QApplication::sendEvent(nextBtn, &leaveEvent); QApplication::sendEvent(prevBtn, &enterEvent); QApplication::sendEvent(prevBtn, &mouseMove); QApplication::sendEvent(prevBtn, &leaveEvent); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //pause QTest::mouseMove(w, QPoint(200, 300), 200); QTest::mouseMove(playBtn, QPoint(), 200); QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); } TEST(ToolBox, UrlDialog) { MainWindow *w = dApp->getMainWindow(); UrlDialog *uDlg = new UrlDialog(w); LineEdit *lineEdit = uDlg->findChild(); uDlg->show(); QTest::mouseMove(uDlg->getButton(0), QPoint(), 200); QTest::mouseClick(uDlg->getButton(0), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("mail.263.net/"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("https://www.baidu.com"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); uDlg->show(); QTest::mouseMove(lineEdit, QPoint(), 200); QTest::keyClicks(lineEdit, QString("https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4"), Qt::NoModifier, 1); QTest::mouseMove(uDlg->getButton(1), QPoint(), 200); QTest::mouseClick(uDlg->getButton(1), Qt::LeftButton, Qt::NoModifier, QPoint(), 200); auto url = uDlg->url().toString(); w->play({url}); QTest::qWait(300); } TEST(ToolBox, fullScreenBtn) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *fsBtn = toolboxProxy->fsBtn(); PlayerEngine *engine = w->engine(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4") << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); QCOMPARE(engine->isPlayableFile(valids[0]), true); if (!valids.empty()) { engine->playByName(valids[0]); } QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QContextMenuEvent context(QContextMenuEvent::Mouse, QPoint(200, 200)); QApplication::sendEvent(w, &context); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); QEvent enter(QEvent::Enter); QApplication::sendEvent(fsBtn, &enter); QEvent leave(QEvent::Leave); QApplication::sendEvent(fsBtn, &leave); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); } TEST(ToolBox, volBtn) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); VolumeButton *volBtn = toolboxProxy->volBtn(); QTest::mouseMove(volBtn, QPoint(), 200); QTest::mouseClick(volBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::qWait(300); QVERIFY(toolboxProxy->volumeSlider()->isVisible()); QWheelEvent wheelUpEvent(volBtn->rect().center(), 20, Qt::NoButton, Qt::NoModifier); QWheelEvent wheelDownEvent(volBtn->rect().center(), -20, Qt::NoButton, Qt::NoModifier); QEnterEvent enterEvent(QPoint(0, 0), volBtn->pos(), QPoint(0, 0)); QEvent leaveEvent(QEvent::Leave); QTest::qWait(100); QApplication::sendEvent(volBtn, &wheelUpEvent); QTest::qWait(100); QApplication::sendEvent(volBtn, &wheelDownEvent); QApplication::sendEvent(volBtn, &enterEvent); QApplication::sendEvent(volBtn, &leaveEvent); } TEST(ToolBox, mainWindowEvent) { MainWindow *w = dApp->getMainWindow(); QMimeData mimeData; QList urls; QPoint point(w->pos().x() + 20, w->pos().y() + 20); urls << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3") \ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/Hachiko.A.Dog's.Story.ass"); mimeData.setUrls(urls); QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(w, &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); qApp->sendEvent(w, &dragMove); // Drop inside the mainwindow QDropEvent drop(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::NoButton, {}); QApplication::sendEvent(w, &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); QWheelEvent wheelEvent = QWheelEvent(QPoint(0, 0), 20, Qt::MidButton, Qt::NoModifier); QApplication::sendEvent(w, &wheelEvent); //右键菜单这里有内存泄露,暂时注释掉 //QContextMenuEvent *cme = new QContextMenuEvent(QContextMenuEvent::Mouse, w->rect().center()); //QTimer::singleShot(100, [ = ]() { // ActionFactory::get().mainContextMenu()->clear(); //}); //QApplication::sendEvent(w, cme); QMouseEvent mouseMove = QMouseEvent(QEvent::MouseMove, QPointF(100.0, 100.0),Qt::NoButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(w, &mouseMove); QTest::mouseClick(w, Qt::LeftButton, Qt::NoModifier, QPoint(100, 100), 200); QTest::qWait(100); //shortcut view QTest::keyPress(w, Qt::Key_Slash, Qt::ControlModifier | Qt::ShiftModifier, 100); w->testCdrom(); QTest::qWait(500); //delete cme; //cme = nullptr; } TEST(ToolBox, mircastWidget) { MainWindow* w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolbox = w->toolbox(); MircastWidget *mircastWgt = toolbox->getMircastWidget(); QByteArray data = " \ \ \ 1 \ 0 \ \ \ urn:schemas-upnp-org:device:MediaRenderer:1 \ uuid:3391800f-5753-4b50-b6a2-633a711bd2bf \ Macast(myk-PC) \ xfangfang \ https://github.com/xfangfang \ AVTransport Media Renderer \ Macast \ 0.7 \ https://xfangfang.github.io/Macast \ 1024 \ DMR-1.50 \ \ \ urn:schemas-upnp-org:service:AVTransport:1 \ urn:upnp-org:serviceId:AVTransport \ AVTransport/action1 \ AVTransport/event1 \ dlna/AVTransport.xml \ \ \ urn:schemas-upnp-org:service:RenderingControl:1 \ urn:upnp-org:serviceId:RenderingControl \ RenderingControl/action1 \ RenderingControl/event1 \ dlna/RenderingControl.xml \ \ \ urn:schemas-upnp-org:service:ConnectionManager:1 \ urn:upnp-org:serviceId:ConnectionManager \ ConnectionManager/action \ ConnectionManager/event \ dlna/ConnectionManager.xml \ \ \ \ "; mircastWgt->togglePopup(); mircastWgt->show(); RefreButtonWidget *btn = mircastWgt->getRefreshBtn(); QTest::mouseClick(btn, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); QTest::qWait(200); struct MiracastDevice md; md.name = "test"; md.uuid = "test1111111111111111111111111111111111111111111111111111"; ItemWidget *item = mircastWgt->createListeItem(md, data, nullptr); item->show(); item->setState(ItemWidget::Normal); item->update(); QTest::qWait(100); item->setState(ItemWidget::Loading); item->update(); QTest::qWait(100); item->setState(ItemWidget::Checked); item->update(); QTest::qWait(100); item->clearSelect(); QTest::mouseClick(item, Qt::LeftButton, Qt::NoModifier, QPoint(), 300); mircastWgt->show(); QEvent leaveEvent(QEvent::Leave); QEvent enterEvent(QEvent::Enter); QApplication::sendEvent(item, &leaveEvent); QApplication::sendEvent(item, &enterEvent); QTest::qWait(100); mircastWgt->show(); mircastWgt->updateMircastState(MircastWidget::SearchState::Searching); QTest::qWait(100); mircastWgt->updateMircastState(MircastWidget::SearchState::ListExhibit); QTest::qWait(100); mircastWgt->updateMircastState(MircastWidget::SearchState::NoDevices); QTest::qWait(100); mircastWgt->getMircastPlayState(); mircastWgt->seekMircast(0); QTest::qWait(100); mircastWgt->slotSeekMircast(0); // mircastWgt->setMircastState(MircastWidget::Idel); mircastWgt->playNext(); mircastWgt->playDlnaTp(); mircastWgt->stopDlnaTP(); mircastWgt->slotReadyRead(); mircastWgt->pauseDlnaTp(); mircastWgt->stopDlnaTP(); mircastWgt->getPosInfoDlnaTp(); DlnaPositionInfo info; info.nTrack = 0; info.sTrackDuration = "00:00:00"; info.sTrackMetaData = ""; info.sTrackURI = "00:00:00"; info.sRelTime = "00:00:00"; info.sAbsTime = "00:00:00"; info.nRelCount = 0; info.nAbsCount = 0; mircastWgt->slotGetPositionInfo(info); mircastWgt->slotExitMircast(); QTest::qWait(100); mircastWgt->setMircastState(MircastWidget::Connecting); mircastWgt->slotGetPositionInfo(info); mircastWgt->slotPauseDlnaTp(); QTest::qWait(100); mircastWgt->setMircastState(MircastWidget::Screening); mircastWgt->slotGetPositionInfo(info); mircastWgt->playNext(); mircastWgt->seekMircast(1); mircastWgt->slotMircastTimeout(); mircastWgt->slotExitMircast(); mircastWgt->setMircastPlayState(MircastWidget::Play); mircastWgt->slotPauseDlnaTp(); QTest::qWait(100); mircastWgt->setMircastPlayState(MircastWidget::Pause); mircastWgt->slotPauseDlnaTp(); QTest::qWait(100); } TEST(ToolBox, slotUpdateMircast) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); PlayerEngine *engine = w->engine(); w->m_pMircastShowWidget->show(); toolboxProxy->slotUpdateMircast(MIRCAST_SUCCESSED, "test"); QTest::qWait(100); w->m_pMircastShowWidget->show(); toolboxProxy->slotUpdateMircast(MIRCAST_EXIT, "test"); w->m_pMircastShowWidget->show(); QTest::qWait(100); toolboxProxy->slotUpdateMircast(MIRCAST_CONNECTION_FAILED, "test"); w->m_pMircastShowWidget->show(); QTest::qWait(100); toolboxProxy->slotUpdateMircast(MIRCAST_DISCONNECTIONED, "test"); QTest::qWait(100); w->m_pMircastShowWidget->hide(); //投屏加载音乐 MircastWidget *mircastWgt = toolboxProxy->getMircastWidget(); mircastWgt->setMircastState(MircastWidget::Connecting); mircastWgt->show(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3")); QTest::qWait(500); mircastWgt->hide(); //投屏清空列表 mircastWgt->setMircastState(MircastWidget::Screening); mircastWgt->show(); engine->playByName(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); toolboxProxy->slotUpdateMircast(MIRCAST_SUCCESSED, "test"); QTest::qWait(500); mircastWgt->hide(); engine->clearPlaylist(); } TEST(ToolBox, clearPlayList) { MainWindow *w = dApp->getMainWindow(); ToolboxProxy *toolboxProxy = w->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); DPushButton *playlistClearBtn = w->findChild(CLEAR_PLAYLIST_BUTTON); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(playlistClearBtn, QPoint(), 700); QTest::mouseClick(playlistClearBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::UnknownType); emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::UnknownType); QTest::qWait(500); w->close(); } deepin-movie-reborn-5.15.10/tests/deepin-movie/common/test_request_actions.cpp000066400000000000000000000224161473342170300275300ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "src/widgets/toolbox_proxy.h" #include #include "src/common/mainwindow.h" #include "src/libdmr/player_engine.h" #include "application.h" #include #include #include #include "src/common/actions.h" #include "src/widgets/burst_screenshots_dialog.h" #include #include #include #include #include "dmr_settings.h" #include "movieinfo_dialog.h" #include TEST(requestAction, onlineSub) { MainWindow* w = dApp->getMainWindow(); PlayerEngine* engine = w->engine(); QUrl url(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/天空之眼 高清1080P.mp4")); w->show(); QTest::qWait(500); if(engine->addPlayFile(url)) { engine->playByName(url); } QTest::qWait(1000); w->requestAction(ActionFactory::ActionKind::MatchOnlineSubtitle); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTestEventList testEventList; testEventList.addKeyClick(Qt::Key_Left, Qt::ShiftModifier,100); //sub delay // QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::SubDelay); testEventList.addKeyClick(Qt::Key_Left, Qt::ShiftModifier,100); testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); //sub advance testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); testEventList.addKeyClick(Qt::Key_Right, Qt::ShiftModifier,100); testEventList.simulate(w); } //will cause the program abort of arm platform /*TEST(requestAction,windowAbove) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::WindowAbove); //置顶 QTest::qWait(500); w->requestAction(ActionFactory::ActionKind::WindowAbove); //取消置顶 }*/ TEST(requestAction, sound) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Stereo); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::LeftChannel); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::RightChannel); } TEST(requestAction, playMode) { MainWindow* w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); ToolboxProxy *toolboxProxy = w->toolbox(); DButtonBoxButton *playBtn = toolboxProxy->playBtn(); DButtonBoxButton *nextBtn = toolboxProxy->nextBtn(); DButtonBoxButton *prevBtn = toolboxProxy->prevBtn(); QList listPlayFiles; listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const QList &valids = engine->addPlayFiles(listPlayFiles); qDebug() << __func__ << valids; w->show(); QTest::qWait(100); w->requestAction(ActionFactory::ActionKind::OrderPlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::ShufflePlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::SinglePlay); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::SingleLoop); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::ListLoop); QTest::qWait(100); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistNext); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::GotoPlaylistPrev); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 600); } TEST(requestAction, playSpeed) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ZeroPointFiveTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OnePointTwoTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OnePointFiveTimes); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Double); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OneTimes); // QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::SeekAbsolute); } TEST(requestAction, frame) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio4x3Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio16x9Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio16x10Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio185x1Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Ratio235x1Frame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::DefaultFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ClockwiseFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::CounterclockwiseFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::NextFrame); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::PreviousFrame); } TEST(requestAction,mute) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ToggleMute); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::ToggleMute); } TEST(requestAction, subtitle) { MainWindow* w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); w->show(); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::LoadSubtitle); QTest::qWait(100); engine->loadSubtitle(QFileInfo(QString("/data/source/deepin-movie-reborn/movie/Hachiko.A.Dog's.Story.ass"))); QTest::qWait(100); w->requestAction(ActionFactory::ActionKind::HideSubtitle); QTest::qWait(100); } TEST(requestAction,goToScreenshotSolder) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::GoToScreenshotSolder); EXPECT_TRUE(true); } #ifndef __aarch64__ TEST(requestAction,openFiles) { MainWindow *w = dApp->getMainWindow(); QTest::qWait(300); w->requestAction(ActionFactory::ActionKind::OpenFileList); QTest::qWait(500); // w->requestAction(ActionFactory::ActionKind::OpenDirectory); // QTest::qWait(2000); w->requestAction(ActionFactory::ActionKind::PlaylistOpenItemInFM); utils::ShowInFileManager(QString("/usr/share/music/bensound-sunny.mp3")); QTest::qWait(100); } #endif TEST(requestAction, settings) { MainWindow* w = dApp->getMainWindow(); Settings::get().settings()->setOption("base.screenshot.location", "/data/source/deepin-movie-reborn/movie/DMovie"); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::Settings); QTest::qWait(200); EXPECT_TRUE(true); } TEST(requestAction,openCdrom) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); w->requestAction(ActionFactory::ActionKind::OpenCdrom); EXPECT_TRUE(true); } TEST(requestAction,changeSubCodepage) { MainWindow* w = dApp->getMainWindow(); QTest::qWait(200); QList list = {"test"}; w->requestAction(ActionFactory::ActionKind::ChangeSubCodepage, false, list); } deepin-movie-reborn-5.15.10/tests/deepin-movie/common/test_toolbox_proxy.cpp000066400000000000000000000045601473342170300272470ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "src/widgets/toolbox_proxy.h" #include "src/widgets/toolbutton.h" #include "src/widgets/playlist_widget.h" #include "src/widgets/notification_widget.h" #include #include "src/common/mainwindow.h" #include "src/libdmr/player_engine.h" #include "application.h" #include #include #include #include #include #include #include "presenter.h" #include "titlebar.h" #include "src/widgets/tip.h" using namespace dmr; /*TEST(ToolBox, buttonBoxButton) { MainWindow* w = dApp->getMainWindow(); ButtonBoxButton *btn = new ButtonBoxButton("test", w); btn->show(); QTest::qWait(400); QTest::mouseMove(btn); btn->deleteLater(); }*/ TEST(ToolBox, buttonTooltip) { MainWindow* w = dApp->getMainWindow(); ButtonToolTip *tip = new ButtonToolTip(w); tip->setText("123"); tip->show(); tip->changeTheme(darkTheme); tip->show(); tip->deleteLater(); } TEST(ToolBox, notificationWidget) { MainWindow* w = dApp->getMainWindow(); NotificationWidget *nwBottom = new NotificationWidget(w); NotificationWidget *nwNone = new NotificationWidget(w); nwBottom->setAnchor(NotificationWidget::ANCHOR_BOTTOM); nwNone->setAnchor(NotificationWidget::ANCHOR_NONE); nwBottom->show(); nwNone->show(); nwBottom->syncPosition(w->geometry()); nwNone->syncPosition(w->geometry()); } TEST(ToolBox, tip) { MainWindow* w = dApp->getMainWindow(); Tip *tip = new Tip(QPixmap(), "", w); tip->setText("test"); tip->setBackground(QBrush(QColor(Qt::white))); tip->setRadius(2); tip->setBorderColor(QColor(Qt::blue)); tip->pop(QPoint(200, 300)); QColor color = tip->borderColor(); QBrush brush = tip->background(); tip->deleteLater(); } TEST(ToolBox, animationLabel) { MainWindow *mw = new MainWindow(); AnimationLabel *aLabel = new AnimationLabel(mw, mw); aLabel->show(); QEvent moveEvent(QEvent::Move); QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(0,0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); QApplication::sendEvent(aLabel, &moveEvent); QApplication::sendEvent(aLabel, &releaseEvent); } deepin-movie-reborn-5.15.10/tests/deepin-movie/dlna/000077500000000000000000000000001473342170300221765ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie/dlna/test_cdlnasoappost.cpp000066400000000000000000000042451473342170300266200ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "stub/stub.h" #include #include "cdlnasoappost.h" /*******************************函数打桩************************************/ class UT_CDlnaSoapPost : public QObject, public ::testing::Test { public: UT_CDlnaSoapPost(): m_tester(nullptr) {} public: virtual void SetUp() { m_tester = new CDlnaSoapPost(); } virtual void TearDown() { delete m_tester; } protected: CDlnaSoapPost *m_tester; }; TEST_F(UT_CDlnaSoapPost, initTest) { } TEST_F(UT_CDlnaSoapPost, SoapOperPost_SetAVTransportURI) { DlnaOper oper = DLNA_SetAVTransportURI; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl); } TEST_F(UT_CDlnaSoapPost, SoapOperPost_Stop) { DlnaOper oper = DLNA_Stop; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl); } TEST_F(UT_CDlnaSoapPost, SoapOperPost_Pause) { DlnaOper oper = DLNA_Pause; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl); } TEST_F(UT_CDlnaSoapPost, SoapOperPost_Play) { DlnaOper oper = DLNA_Play; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl); } TEST_F(UT_CDlnaSoapPost, SoapOperPost_Seek) { DlnaOper oper = DLNA_Seek; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; int nSeek = 10; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl, nSeek); } TEST_F(UT_CDlnaSoapPost, SoapOperPost_GetPositionInfo) { DlnaOper oper = DLNA_GetPositionInfo; QString ControlURLPro = ""; QString sHostUrl = ""; QString sLocalUrl = ""; m_tester->SoapOperPost(oper, ControlURLPro, sHostUrl, sLocalUrl); } deepin-movie-reborn-5.15.10/tests/deepin-movie/dlna/test_cssdpsearch.cpp000066400000000000000000000017721473342170300262520ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "stub/stub.h" #include #include "cssdpsearch.h" /*******************************函数打桩************************************/ class UT_CSSDPSearch : public QObject, public ::testing::Test { public: UT_CSSDPSearch(): m_tester(nullptr) {} public: virtual void SetUp() { m_tester = new CSSDPSearch(); } virtual void TearDown() { delete m_tester; } protected: CSSDPSearch *m_tester; }; TEST_F(UT_CSSDPSearch, initTest) { } TEST_F(UT_CSSDPSearch, readMsg) { m_tester->readMsg(); } TEST_F(UT_CSSDPSearch, SsdpSearch) { m_tester->SsdpSearch(); } TEST_F(UT_CSSDPSearch, showDlnaCastAddr) { QByteArray replyData = "AVTransport:\nLOCATION: http://10.8.13.142:56707/description.xml\r"; m_tester->showDlnaCastAddr(replyData); } deepin-movie-reborn-5.15.10/tests/deepin-movie/dlna/test_dlnacontentserver.cpp000066400000000000000000000106441473342170300275060ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "stub/stub.h" #include #include "dlnacontentserver.h" void qThread_start_stub() { return; } void stub_QThread_start(Stub &stub) { stub.set(ADDR(QThread, start), qThread_start_stub); } /*******************************函数打桩************************************/ class UT_DlnaContentServer : public QObject, public ::testing::Test { public: UT_DlnaContentServer(): m_tester(nullptr) {} public: virtual void SetUp() { Stub stub; stub_QThread_start(stub); m_tester = new DlnaContentServer(); } virtual void TearDown() { delete m_tester; } protected: DlnaContentServer *m_tester; }; class UT_DlnaContentServerRange : public QObject, public ::testing::Test { public: UT_DlnaContentServerRange(): m_tester(nullptr) {} public: virtual void SetUp() { m_tester = new DlnaContentServer::Range(); } virtual void TearDown() { delete m_tester; } protected: DlnaContentServer::Range *m_tester; }; TEST_F(UT_DlnaContentServerRange, initTest) { } TEST_F(UT_DlnaContentServerRange, runTest) { DlnaContentServer::Range range1 = {-1, -1, 0}, range2 = {-1, -1, 0}; if(range1 == range2) { range1.full(); range1.rangeLength(); m_tester->fromRange("bytes=10-"); } } TEST_F(UT_DlnaContentServerRange, runTest_1) { m_tester->fromRange("bytes=10-100", 91); } TEST_F(UT_DlnaContentServer, initTest) { } TEST_F(UT_DlnaContentServer, initializeHttpServer) { EXPECT_EQ(m_tester->initializeHttpServer(9090),true); } TEST_F(UT_DlnaContentServer, streamFile) { const QString path = ""; const QString mime; m_tester->streamFile(path, mime, nullptr, nullptr); } TEST_F(UT_DlnaContentServer, streamFileRange) { const QString path = ""; auto file = std::make_shared(path); m_tester->streamFileRange(file, nullptr, nullptr); } TEST_F(UT_DlnaContentServer, streamFileNoRange) { const QString path = ""; auto file = std::make_shared(path); m_tester->streamFileNoRange(file, nullptr, nullptr); } TEST_F(UT_DlnaContentServer, seqWriteData) { const QString path = ""; auto file = std::make_shared(path); QHttpResponse *resp = nullptr; m_tester->seqWriteData(file, 0, resp); } TEST_F(UT_DlnaContentServer, dlnaContentFeaturesHeader) { QString mine = "video/x-msvideo"; m_tester->dlnaContentFeaturesHeader(mine); } TEST_F(UT_DlnaContentServer, dlnaContentFeaturesHeader_1) { QString mine = "video/x-msvideo"; m_tester->dlnaContentFeaturesHeader(mine, false, false); } TEST_F(UT_DlnaContentServer, dlnaContentFeaturesHeader_empty) { QString mine = "xxxx"; m_tester->dlnaContentFeaturesHeader(mine); } TEST_F(UT_DlnaContentServer, dlnaContentFeaturesHeader_empty_1) { QString mine = "xxxx"; m_tester->dlnaContentFeaturesHeader(mine, false, false); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags) { QString mine = "video/x-msvideo"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags_aac) { QString mine = "audio/aac"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags_mpeg) { QString mine = "audio/mpeg"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags_wav) { QString mine = "audio/vnd.wav"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags_L16) { QString mine = "audio/L16"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgPnFlags_matroska) { QString mine = "video/x-matroska"; m_tester->dlnaOrgPnFlags(mine); } TEST_F(UT_DlnaContentServer, dlnaOrgFlagsForFile) { m_tester->dlnaOrgFlagsForFile(); } TEST_F(UT_DlnaContentServer, dlnaOrgFlagsForStreaming) { m_tester->dlnaOrgFlagsForStreaming(); } TEST_F(UT_DlnaContentServer, setBaseUrl) { m_tester->setBaseUrl(""); } TEST_F(UT_DlnaContentServer, setDlnaFileName) { m_tester->setDlnaFileName(""); } TEST_F(UT_DlnaContentServer, getBaseUrl) { EXPECT_EQ(m_tester->getBaseUrl(), ""); } TEST_F(UT_DlnaContentServer, getIsStartHttpServer) { m_tester->getIsStartHttpServer(); } TEST_F(UT_DlnaContentServer, sendEmptyResponse) { m_tester->sendEmptyResponse(nullptr, 0); } deepin-movie-reborn-5.15.10/tests/deepin-movie/dlna/test_getdlnaxmlvalue.cpp000066400000000000000000000065601473342170300271440ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include "stub/stub.h" #include #include "getdlnaxmlvalue.h" /*******************************函数打桩************************************/ class UT_GetDlnaXmlValue : public QObject, public ::testing::Test { public: UT_GetDlnaXmlValue(): m_tester(nullptr) {} public: virtual void SetUp() { QByteArray data = " \ \ \ 1 \ 0 \ \ \ urn:schemas-upnp-org:device:MediaRenderer:1 \ uuid:3391800f-5753-4b50-b6a2-633a711bd2bf \ Macast(myk-PC) \ xfangfang \ https://github.com/xfangfang \ AVTransport Media Renderer \ Macast \ 0.7 \ https://xfangfang.github.io/Macast \ 1024 \ DMR-1.50 \ \ \ urn:schemas-upnp-org:service:AVTransport:1 \ urn:upnp-org:serviceId:AVTransport \ AVTransport/action \ AVTransport/event \ dlna/AVTransport.xml \ \ \ urn:schemas-upnp-org:service:RenderingControl:1 \ urn:upnp-org:serviceId:RenderingControl \ RenderingControl/action \ RenderingControl/event \ dlna/RenderingControl.xml \ \ \ urn:schemas-upnp-org:service:ConnectionManager:1 \ urn:upnp-org:serviceId:ConnectionManager \ ConnectionManager/action \ ConnectionManager/event \ dlna/ConnectionManager.xml \ \ \ \ "; m_tester = new GetDlnaXmlValue(data); } virtual void TearDown() { delete m_tester; } protected: GetDlnaXmlValue *m_tester; }; TEST_F(UT_GetDlnaXmlValue, initTest) { } TEST_F(UT_GetDlnaXmlValue, getValueByPath) { EXPECT_EQ(m_tester->getValueByPath("device/friendlyName"), "Macast(myk-PC)"); } TEST_F(UT_GetDlnaXmlValue, getValueByPath_1) { EXPECT_EQ(m_tester->getValueByPathValue( "device/serviceList", "serviceType=urn:schemas-upnp-org:service:AVTransport:1", "controlURL"), "AVTransport/action"); } deepin-movie-reborn-5.15.10/tests/deepin-movie/libdmr/000077500000000000000000000000001473342170300225315ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie/libdmr/test_dmr.cpp000066400000000000000000000066431473342170300250670ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "player_widget.h" #include "player_engine.h" #include "compositing_manager.h" #include "movie_configuration.h" TEST(libdmr, libdmrTest) { using namespace dmr; PlayerWidget *player = new PlayerWidget(); player->engine().changeVolume(120); #ifndef __aarch64__ player->play(QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")); #endif auto &mc = MovieConfiguration::get(); mc.updateUrl(QUrl("movie1"), "sub-delay", -2.5); mc.updateUrl(QUrl("movie1"), "sub-delay", 1.5); mc.updateUrl(QUrl("movie2"), "sub-delay", 1.0); mc.updateUrl(QUrl("movie1"), "volume", 20); auto res = mc.queryByUrl(QUrl("movie1")); mc.removeUrl(QUrl("movie1")); mc.updateUrl(QUrl("movie1"), "volume", 30); mc.updateUrl(QUrl("movie2"), "volume", 40); res = mc.queryByUrl(QUrl("movie1")); mc.clear(); QTest::qWait(100); delete player; } TEST(libdmr, utils) { using namespace dmr; MainWindow* w = dApp->getMainWindow(); bool ret = utils::CompareNames("/data/source/deepin-movie-reborn/movie/demo.mp4", "/data/source/deepin-movie-reborn/movie/demo.mp3"); ret = utils::CompareNames("/data/source/deepin-movie-reborn/movie/demo.mp4", "/data/source/deepin-movie-reborn//movie/demo.mp4"); //QCOMPARE(ret, true); utils::UnInhibitPower(20); utils::MoveToCenter(w); utils::Time2str(90000); utils::ValidateScreenshotPath(QString("/data/source/deepin-movie-reborn")); utils::ValidateScreenshotPath(QString("~/uos")); utils::MakeRoundedPixmap(QPixmap("/data/source/deepin-movie-reborn/test.jpg"), 10, 10); utils::MakeRoundedPixmap(QSize(20, 30), QPixmap("/data/source/deepin-movie-reborn/test.jpg"), 10, 10, 20); utils::ShowInFileManager("/data/source/deepin-movie-reborn/movie/demo.mp4"); utils::ShowInFileManager("/data/source/deepin-movie-reborn/test"); //path is not exist } TEST(libdmr, playlistModel) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); engine->playlist().savePlaylist(); engine->playlist().clearPlaylist(); QUrl url = QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); bool is = false; engine->playlist().getMovieInfo(url, &is); engine->playlist().getMovieCover(url); } TEST(libdmr, compositingManager) { if (CompositingManager::get().composited()) { CompositingManager::detectOpenGLEarly(); CompositingManager::detectPciID(); } bool run = CompositingManager::get().runningOnNvidia(); qDebug() << __func__ << "isRunningOnNvidia: " << run ; run = CompositingManager::get().runningOnVmwgfx(); qDebug() << __func__ << "isRunningOnVmwgfx: " << run ; CompositingManager::get().setTestFlag(CompositingManager::get().isTestFlag()); } TEST(libdmr, movieConfiguration) { MovieConfiguration::get().removeFromListUrl( QUrl("/data/source/deepin-movie-reborn/Hachiko.A.Dog's.Story.ass"), ConfigKnownKey::ExternalSubs, QString()); } deepin-movie-reborn-5.15.10/tests/deepin-movie/libdmr/test_player_engine.cpp000066400000000000000000000021401473342170300271120ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "player_widget.h" #include "player_engine.h" #include "compositing_manager.h" #include "movie_configuration.h" TEST(PlayerEngine, playerEngine) { MainWindow *w = dApp->getMainWindow(); PlayerEngine *engine = w->engine(); QString subCodepage = engine->subCodepage(); engine->addSubSearchPath(QString("/test/")); engine->selectTrack(1); engine->volumeUp(); engine->volumeDown(); engine->toggleMute(); } TEST(PlayerEngine, movieInfo) { #ifdef _LIBDMR_ MovieInfo mi; bool bFlag = false; mi = MovieInfo::parseFromFile(QFileInfo("/data/source/deepin-movie-reborn/movie/demo.mp4"), &bFlag); #endif } deepin-movie-reborn-5.15.10/tests/deepin-movie/libdmr/test_settings.cpp000066400000000000000000000051101473342170300261310ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include #include #include #include #include #include #include #include #include #include "application.h" #include "dmr_settings.h" #include "utils.h" #include "movie_configuration.h" #include "dbus_adpator.h" using namespace dmr; using namespace utils; TEST(Settings, settings) { Settings::get().isSet(Settings::Flag::ClearWhenQuit); Settings::get().isSet(Settings::Flag::ShowThumbnailMode); Settings::get().isSet(Settings::Flag::AutoSearchSimilar); Settings::get().isSet(Settings::Flag::PreviewOnMouseover); Settings::get().isSet(Settings::Flag::MultipleInstance); Settings::get().isSet(Settings::Flag::PauseOnMinimize); Settings::get().settings()->sync(); Settings::get().commonPlayableProtocols(); Settings::get().commonPlayableProtocols(); Settings::get().iscommonPlayableProtocol("dvb"); Settings::get().screenshotLocation(); Settings::get().screenshotNameTemplate(); Settings::get().screenshotNameSeqTemplate(); QString path("/usr/share/dde-introduction"); Settings::get().setGeneralOption("last_open_path", path); QVariant v = Settings::get().generalOption("last_open_path"); DSettingsOption settingsOption; emit settingsOption.valueChanged(v); DLineEdit edit; emit edit.editingFinished(); } TEST(Settings, shortcut) { Settings::get().settings()->setOption("shortcuts.play.enable", false); Settings::get().settings()->setOption("shortcuts.play.enable", true); Settings::get().settings()->setOption("shortcuts.play.playlist", "Shift+Return"); Settings::get().settings()->setOption("shortcuts.play.movie_info", "Shift+Num+Enter"); Settings::get().settings()->setOption("subtitle.font.size", 20); Settings::get().settings()->setOption("base.play.hwaccel", 1); Settings::get().settings()->setOption("base.decode.select", DecodeMode::AUTO); Settings::get().settings()->setOption("base.decode.select", DecodeMode::HARDWARE); Settings::get().settings()->setOption("base.decode.select", DecodeMode::SOFTWARE); emit Settings::get().hwaccelModeChanged("base.play.hwaccel", 1); // Settings::get().settings()->setOption("play.global_volume", 120); } TEST(Settings, mwDeconstruction) { MainWindow *w = dApp->getMainWindow(); w->close(); delete w; w = nullptr; } deepin-movie-reborn-5.15.10/tests/deepin-movie/libdmr/test_wayland.cpp000066400000000000000000000112201473342170300257270ustar00rootroot00000000000000// Copyright (C) 2020 ~ 2021, Deepin Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later /* #include #include #include #include #include #include #include #include #include #include #include "application.h" #include "dmr_settings.h" #include "utils.h" #include "movie_configuration.h" #include "dbus_adpator.h" using namespace dmr; using namespace utils; TEST(Wayland, wayland) { // QTest::qWait(500); QString homePath = QDir::homePath(); QStringList command; command << "-rf" << QString("%1/.config/deepin-movie-test").arg(homePath); QProcess::execute("rm", command); MainWindow *w_wayland = dApp->getMainWindowWayland(); auto &mc = MovieConfiguration::get(); MovieConfiguration::get().init(); PlayerEngine *engine = w_wayland->engine(); ToolboxProxy *toolboxProxy = w_wayland->toolbox(); ToolButton *listBtn = toolboxProxy->listBtn(); ToolButton *fsBtn = toolboxProxy->fsBtn(); ButtonBoxButton* playBtn = static_cast(toolboxProxy->playBtn()); ButtonBoxButton* nextBtn = static_cast(toolboxProxy->nextBtn()); ButtonBoxButton* prevBtn = static_cast(toolboxProxy->prevBtn()); QList listPlayFiles; // QTest::qWait(200); w_wayland->resize(850, 600); w_wayland->show(); // QTest::qWait(800); listPlayFiles << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/demo.mp4")\ << QUrl::fromLocalFile("/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"); const auto &valids = engine->addPlayFiles(listPlayFiles); #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", true); qDebug() << __func__ << Settings::get().settings()->option("base.play.showInthumbnailmode"); #endif Settings::get().settings()->setOption("base.play.resumelast", false); qDebug() << Settings::get().settings()->option("base.play.resumelast"); if(!valids.empty()){ // QTest::mouseMove(playBtn, QPoint(), 100); // QTest::mouseClick(playBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play // QTest::qWait(200); const auto &valids = engine->addPlayFiles(listPlayFiles); engine->playByName(valids[0]); w_wayland->requestAction(ActionFactory::ActionKind::ToggleMute); // QTest::qWait(200); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier,QPoint(), 500); fsBtn->showToolTip(); QTest::mouseMove(nextBtn, QPoint(), 200); QTest::mouseClick(nextBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play next // QTest::qWait(200); // DGuiApplicationHelper::instance()->setThemeType(DGuiApplicationHelper::DarkType); // emit DGuiApplicationHelper::instance()->paletteTypeChanged(DGuiApplicationHelper::DarkType); QTest::mouseMove(prevBtn, QPoint(), 200); QTest::mouseClick(prevBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); //play prev QTest::mouseMove(listBtn, QPoint(), 200); QTest::mouseClick(listBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); QTest::mouseMove(fsBtn, QPoint(), 200); QTest::mouseClick(fsBtn, Qt::LeftButton, Qt::NoModifier, QPoint(), 500); Settings::get().settings()->setOption("base.play.emptylist", false); } ApplicationAdaptor *appAdaptor = new ApplicationAdaptor(w_wayland); appAdaptor->Raise(); appAdaptor->openFile("/data/source/deepin-movie-reborn/movie/demo.mp4"); QStringList fileList; fileList << "/data/source/deepin-movie-reborn/movie/demo.mp4"\ <<"/data/source/deepin-movie-reborn/movie/bensound-sunny.mp3"; appAdaptor->openFiles(fileList); QEvent enterEvent(QEvent::Enter); QEvent leaveEvent(QEvent::Leave); QApplication::sendEvent(playBtn, &enterEvent); QApplication::sendEvent(playBtn, &leaveEvent); QApplication::sendEvent(fsBtn, &enterEvent); QApplication::sendEvent(fsBtn, &leaveEvent); #if !defined (__mips__ ) && !defined(__aarch64__) Settings::get().settings()->setOption("base.play.showInthumbnailmode", false); #endif Settings::get().settings()->setOption("base.play.resumelast", true); // w_wayland->close(); QTest::qWait(100); delete w_wayland; w_wayland = nullptr; } */ deepin-movie-reborn-5.15.10/tests/deepin-movie/stub/000077500000000000000000000000001473342170300222355ustar00rootroot00000000000000deepin-movie-reborn-5.15.10/tests/deepin-movie/stub/addr_any.h000066400000000000000000000213621473342170300241730ustar00rootroot00000000000000// Copyright (c) 2019 coolxv // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef __ADDR_ANY_H__ #define __ADDR_ANY_H__ //linux #include #include //c #include #include #include //c++ #include #include //project #include "elfio.hpp" class AddrAny { public: AddrAny() { m_init = get_exe_pathname(m_fullname); m_baseaddr = 0; } AddrAny(std::string libname) { m_init = get_lib_pathname_and_baseaddr(libname, m_fullname, m_baseaddr); } int get_local_func_addr_symtab(std::string func_name_regex_str, std::map& result) { return get_func_addr(SHT_SYMTAB, STB_LOCAL, func_name_regex_str, result); } int get_global_func_addr_symtab(std::string func_name_regex_str, std::map& result) { return get_func_addr(SHT_SYMTAB, STB_GLOBAL, func_name_regex_str, result); } int get_weak_func_addr_symtab(std::string func_name_regex_str, std::map& result) { return get_func_addr(SHT_SYMTAB, STB_WEAK, func_name_regex_str, result); } int get_global_func_addr_dynsym( std::string func_name_regex_str, std::map& result) { return get_func_addr(SHT_DYNSYM, STB_GLOBAL, func_name_regex_str, result); } int get_weak_func_addr_dynsym(std::string func_name_regex_str, std::map& result) { return get_func_addr(SHT_DYNSYM, STB_WEAK, func_name_regex_str, result); } private: bool demangle(std::string& s, std::string& name) { int status; char* pname = abi::__cxa_demangle(s.c_str(), 0, 0, &status); if (status != 0) { switch(status) { case -1: name = "memory allocation error"; break; case -2: name = "invalid name given"; break; case -3: name = "internal error: __cxa_demangle: invalid argument"; break; default: name = "unknown error occured"; break; } return false; } name = pname; free(pname); return true; } bool get_exe_pathname( std::string& name) { char line[512]; FILE *fp; uintptr_t base_addr; char perm[5]; unsigned long offset; int pathname_pos; char *pathname; size_t pathname_len; int match = 0; if(NULL == (fp = fopen("/proc/self/maps", "r"))) { return false; } while(fgets(line, sizeof(line), fp)) { if(sscanf(line, "%" PRIxPTR "-%*lx %4s %lx %*x:%*x %*d%n", &base_addr, perm, &offset, &pathname_pos) != 3) continue; if(0 != offset) continue; //get pathname while(isspace(line[pathname_pos]) && pathname_pos < (int)(sizeof(line) - 1)) pathname_pos += 1; if(pathname_pos >= (int)(sizeof(line) - 1)) continue; pathname = line + pathname_pos; pathname_len = strlen(pathname); if(0 == pathname_len) continue; if(pathname[pathname_len - 1] == '\n') { pathname[pathname_len - 1] = '\0'; pathname_len -= 1; } if(0 == pathname_len) continue; if('[' == pathname[0]) continue; name = pathname; match = 1; break; } fclose(fp); if(0 == match) { return false; } else { return true; } } bool get_lib_pathname_and_baseaddr(std::string pathname_regex_str, std::string& name, unsigned long& addr) { char line[512]; FILE *fp; uintptr_t base_addr; char perm[5]; unsigned long offset; int pathname_pos; char *pathname; size_t pathname_len; int match; regex_t pathname_regex; regcomp(&pathname_regex, pathname_regex_str.c_str(), 0); if(NULL == (fp = fopen("/proc/self/maps", "r"))) { return false; } while(fgets(line, sizeof(line), fp)) { if(sscanf(line, "%" PRIxPTR "-%*lx %4s %lx %*x:%*x %*d%n", &base_addr, perm, &offset, &pathname_pos) != 3) continue; //check permission if(perm[0] != 'r') continue; if(perm[3] != 'p') continue; //do not touch the shared memory //check offset // //We are trying to find ELF header in memory. //It can only be found at the beginning of a mapped memory regions //whose offset is 0. if(0 != offset) continue; //get pathname while(isspace(line[pathname_pos]) && pathname_pos < (int)(sizeof(line) - 1)) pathname_pos += 1; if(pathname_pos >= (int)(sizeof(line) - 1)) continue; pathname = line + pathname_pos; pathname_len = strlen(pathname); if(0 == pathname_len) continue; if(pathname[pathname_len - 1] == '\n') { pathname[pathname_len - 1] = '\0'; pathname_len -= 1; } if(0 == pathname_len) continue; if('[' == pathname[0]) continue; //check pathname //if we need to hook this elf? match = 0; if(0 == regexec(&pathname_regex, pathname, 0, NULL, 0)) { match = 1; name = pathname; addr = (unsigned long)base_addr; break; } if(0 == match) continue; } fclose(fp); if(0 == match) { return false; } else { return true; } } int get_func_addr(unsigned int ttype, unsigned int stype, std::string& func_name_regex_str, std::map& result) { // Create an elfio reader ELFIO::elfio reader; int count = 0; regex_t pathname_regex; if(!m_init) { return -1; } regcomp(&pathname_regex, func_name_regex_str.c_str(), 0); // Load ELF data if(!reader.load(m_fullname.c_str())) { return -1; } ELFIO::Elf_Half sec_num = reader.sections.size(); for(int i = 0; i < sec_num; ++i) { ELFIO::section* psec = reader.sections[i]; // Check section type if(psec->get_type() == ttype) { const ELFIO::symbol_section_accessor symbols( reader, psec ); for ( unsigned int j = 0; j < symbols.get_symbols_num(); ++j ) { std::string name; std::string name_mangle; ELFIO::Elf64_Addr value; ELFIO::Elf_Xword size; unsigned char bind; unsigned char type; ELFIO::Elf_Half section_index; unsigned char other; // Read symbol properties symbols.get_symbol( j, name, value, size, bind, type, section_index, other ); if(type == STT_FUNC && bind == stype) { bool ret = demangle(name,name_mangle); if(ret == true) { if (0 == regexec(&pathname_regex, name_mangle.c_str(), 0, NULL, 0)) { result.insert ( std::pair(name_mangle,(void*)(value + m_baseaddr))); count++; } } else { if (0 == regexec(&pathname_regex, name.c_str(), 0, NULL, 0)) { result.insert ( std::pair(name,(void*)(value + m_baseaddr))); count++; } } } } break; } } return count; } private: bool m_init; std::string m_name; std::string m_fullname; unsigned long m_baseaddr; }; #endif deepin-movie-reborn-5.15.10/tests/deepin-movie/stub/catch.hpp000066400000000000000000023651631473342170300240500ustar00rootroot00000000000000// Copyright (c) 2020 Two Blue Cubes Ltd. All rights reserved. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED #define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED // start catch.hpp #define CATCH_VERSION_MAJOR 2 #define CATCH_VERSION_MINOR 13 #define CATCH_VERSION_PATCH 1 #ifdef __clang__ # pragma clang system_header #elif defined __GNUC__ # pragma GCC system_header #endif // start catch_suppress_warnings.h #ifdef __clang__ # ifdef __ICC // icpc defines the __clang__ macro # pragma warning(push) # pragma warning(disable: 161 1682) # else // __ICC # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wpadded" # pragma clang diagnostic ignored "-Wswitch-enum" # pragma clang diagnostic ignored "-Wcovered-switch-default" # endif #elif defined __GNUC__ // Because REQUIREs trigger GCC's -Wparentheses, and because still // supported version of g++ have only buggy support for _Pragmas, // Wparentheses have to be suppressed globally. # pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wunused-variable" # pragma GCC diagnostic ignored "-Wpadded" #endif // end catch_suppress_warnings.h #if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) # define CATCH_IMPL # define CATCH_CONFIG_ALL_PARTS #endif // In the impl file, we want to have access to all parts of the headers // Can also be used to sanely support PCHs #if defined(CATCH_CONFIG_ALL_PARTS) # define CATCH_CONFIG_EXTERNAL_INTERFACES # if defined(CATCH_CONFIG_DISABLE_MATCHERS) # undef CATCH_CONFIG_DISABLE_MATCHERS # endif # if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) # define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER # endif #endif #if !defined(CATCH_CONFIG_IMPL_ONLY) // start catch_platform.h #ifdef __APPLE__ # include # if TARGET_OS_OSX == 1 # define CATCH_PLATFORM_MAC # elif TARGET_OS_IPHONE == 1 # define CATCH_PLATFORM_IPHONE # endif #elif defined(linux) || defined(__linux) || defined(__linux__) # define CATCH_PLATFORM_LINUX #elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) # define CATCH_PLATFORM_WINDOWS #endif // end catch_platform.h #ifdef CATCH_IMPL # ifndef CLARA_CONFIG_MAIN # define CLARA_CONFIG_MAIN_NOT_DEFINED # define CLARA_CONFIG_MAIN # endif #endif // start catch_user_interfaces.h namespace Catch { unsigned int rngSeed(); } // end catch_user_interfaces.h // start catch_tag_alias_autoregistrar.h // start catch_common.h // start catch_compiler_capabilities.h // Detect a number of compiler features - by compiler // The following features are defined: // // CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? // CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? // CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? // CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled? // **************** // Note to maintainers: if new toggles are added please document them // in configuration.md, too // **************** // In general each macro has a _NO_ form // (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature. // Many features, at point of detection, define an _INTERNAL_ macro, so they // can be combined, en-mass, with the _NO_ forms later. #ifdef __cplusplus # if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) # define CATCH_CPP14_OR_GREATER # endif # if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) # define CATCH_CPP17_OR_GREATER # endif #endif #if defined(__cpp_lib_uncaught_exceptions) # define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS #endif // We have to avoid both ICC and Clang, because they try to mask themselves // as gcc, and we want only GCC in this block #if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" ) # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" ) # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) #endif #if defined(__clang__) # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" ) # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" ) // As of this writing, IBM XL's implementation of __builtin_constant_p has a bug // which results in calls to destructors being emitted for each temporary, // without a matching initialization. In practice, this can result in something // like `std::string::~string` being called on an uninitialized value. // // For example, this code will likely segfault under IBM XL: // ``` // REQUIRE(std::string("12") + "34" == "1234") // ``` // // Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented. # if !defined(__ibmxl__) # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg, hicpp-vararg) */ # endif # define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \ _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"") # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) # define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" ) # define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" ) # define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ _Pragma( "clang diagnostic ignored \"-Wunused-template\"" ) #endif // __clang__ //////////////////////////////////////////////////////////////////////////////// // Assume that non-Windows platforms support posix signals by default #if !defined(CATCH_PLATFORM_WINDOWS) #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS #endif //////////////////////////////////////////////////////////////////////////////// // We know some environments not to support full POSIX signals #if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__) #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS #endif #ifdef __OS400__ # define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS # define CATCH_CONFIG_COLOUR_NONE #endif //////////////////////////////////////////////////////////////////////////////// // Android somehow still does not support std::to_string #if defined(__ANDROID__) # define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING # define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE #endif //////////////////////////////////////////////////////////////////////////////// // Not all Windows environments support SEH properly #if defined(__MINGW32__) # define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH #endif //////////////////////////////////////////////////////////////////////////////// // PS4 #if defined(__ORBIS__) # define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE #endif //////////////////////////////////////////////////////////////////////////////// // Cygwin #ifdef __CYGWIN__ // Required for some versions of Cygwin to declare gettimeofday // see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin # define _BSD_SOURCE // some versions of cygwin (most) do not support std::to_string. Use the libstd check. // https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 # if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) # define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING # endif #endif // __CYGWIN__ //////////////////////////////////////////////////////////////////////////////// // Visual C++ #if defined(_MSC_VER) # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) ) # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) ) # if _MSC_VER >= 1900 // Visual Studio 2015 or newer # define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS # endif // Universal Windows platform does not support SEH // Or console colours (or console at all...) # if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) # define CATCH_CONFIG_COLOUR_NONE # else # define CATCH_INTERNAL_CONFIG_WINDOWS_SEH # endif // MSVC traditional preprocessor needs some workaround for __VA_ARGS__ // _MSVC_TRADITIONAL == 0 means new conformant preprocessor // _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor # if !defined(__clang__) // Handle Clang masquerading for msvc # if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL) # define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR # endif // MSVC_TRADITIONAL # endif // __clang__ #endif // _MSC_VER #if defined(_REENTRANT) || defined(_MSC_VER) // Enable async processing, as -pthread is specified or no additional linking is required # define CATCH_INTERNAL_CONFIG_USE_ASYNC #endif // _MSC_VER //////////////////////////////////////////////////////////////////////////////// // Check if we are compiled with -fno-exceptions or equivalent #if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) # define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED #endif //////////////////////////////////////////////////////////////////////////////// // DJGPP #ifdef __DJGPP__ # define CATCH_INTERNAL_CONFIG_NO_WCHAR #endif // __DJGPP__ //////////////////////////////////////////////////////////////////////////////// // Embarcadero C++Build #if defined(__BORLANDC__) #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN #endif //////////////////////////////////////////////////////////////////////////////// // Use of __COUNTER__ is suppressed during code analysis in // CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly // handled by it. // Otherwise all supported compilers support COUNTER macro, // but user still might want to turn it off #if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L ) #define CATCH_INTERNAL_CONFIG_COUNTER #endif //////////////////////////////////////////////////////////////////////////////// // RTX is a special version of Windows that is real time. // This means that it is detected as Windows, but does not provide // the same set of capabilities as real Windows does. #if defined(UNDER_RTSS) || defined(RTX64_BUILD) #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH #define CATCH_INTERNAL_CONFIG_NO_ASYNC #define CATCH_CONFIG_COLOUR_NONE #endif #if !defined(_GLIBCXX_USE_C99_MATH_TR1) #define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER #endif // Various stdlib support checks that require __has_include #if defined(__has_include) // Check if string_view is available and usable #if __has_include() && defined(CATCH_CPP17_OR_GREATER) # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW #endif // Check if optional is available and usable # if __has_include() && defined(CATCH_CPP17_OR_GREATER) # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) // Check if byte is available and usable # if __has_include() && defined(CATCH_CPP17_OR_GREATER) # include # if __cpp_lib_byte > 0 # define CATCH_INTERNAL_CONFIG_CPP17_BYTE # endif # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) // Check if variant is available and usable # if __has_include() && defined(CATCH_CPP17_OR_GREATER) # if defined(__clang__) && (__clang_major__ < 8) // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852 // fix should be in clang 8, workaround in libstdc++ 8.2 # include # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) # define CATCH_CONFIG_NO_CPP17_VARIANT # else # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT # endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) # else # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT # endif // defined(__clang__) && (__clang_major__ < 8) # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) #endif // defined(__has_include) #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) # define CATCH_CONFIG_COUNTER #endif #if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH) # define CATCH_CONFIG_WINDOWS_SEH #endif // This is set by default, because we assume that unix compilers are posix-signal-compatible by default. #if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) # define CATCH_CONFIG_POSIX_SIGNALS #endif // This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions. #if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR) # define CATCH_CONFIG_WCHAR #endif #if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING) # define CATCH_CONFIG_CPP11_TO_STRING #endif #if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL) # define CATCH_CONFIG_CPP17_OPTIONAL #endif #if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) # define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS #endif #if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW) # define CATCH_CONFIG_CPP17_STRING_VIEW #endif #if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT) # define CATCH_CONFIG_CPP17_VARIANT #endif #if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE) # define CATCH_CONFIG_CPP17_BYTE #endif #if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) # define CATCH_INTERNAL_CONFIG_NEW_CAPTURE #endif #if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE) # define CATCH_CONFIG_NEW_CAPTURE #endif #if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) # define CATCH_CONFIG_DISABLE_EXCEPTIONS #endif #if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN) # define CATCH_CONFIG_POLYFILL_ISNAN #endif #if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_INTERNAL_CONFIG_NO_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC) # define CATCH_CONFIG_USE_ASYNC #endif #if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE) # define CATCH_CONFIG_ANDROID_LOGWRITE #endif #if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) # define CATCH_CONFIG_GLOBAL_NEXTAFTER #endif // Even if we do not think the compiler has that warning, we still have // to provide a macro that can be used by the code. #if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION) # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION #endif #if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION) # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION #endif #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS #endif #if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS #endif #if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS #endif #if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS #endif // The goal of this macro is to avoid evaluation of the arguments, but // still have the compiler warn on problems inside... #if !defined(CATCH_INTERNAL_IGNORE_BUT_WARN) # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) #endif #if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10) # undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS #elif defined(__clang__) && (__clang_major__ < 5) # undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS #endif #if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS #endif #if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) #define CATCH_TRY if ((true)) #define CATCH_CATCH_ALL if ((false)) #define CATCH_CATCH_ANON(type) if ((false)) #else #define CATCH_TRY try #define CATCH_CATCH_ALL catch (...) #define CATCH_CATCH_ANON(type) catch (type) #endif #if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) #define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR #endif // end catch_compiler_capabilities.h #define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line #define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) #ifdef CATCH_CONFIG_COUNTER # define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) #else # define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) #endif #include #include #include // We need a dummy global operator<< so we can bring it into Catch namespace later struct Catch_global_namespace_dummy {}; std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); namespace Catch { struct CaseSensitive { enum Choice { Yes, No }; }; class NonCopyable { NonCopyable( NonCopyable const& ) = delete; NonCopyable( NonCopyable && ) = delete; NonCopyable& operator = ( NonCopyable const& ) = delete; NonCopyable& operator = ( NonCopyable && ) = delete; protected: NonCopyable(); virtual ~NonCopyable(); }; struct SourceLineInfo { SourceLineInfo() = delete; SourceLineInfo( char const* _file, std::size_t _line ) noexcept : file( _file ), line( _line ) {} SourceLineInfo( SourceLineInfo const& other ) = default; SourceLineInfo& operator = ( SourceLineInfo const& ) = default; SourceLineInfo( SourceLineInfo&& ) noexcept = default; SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; bool empty() const noexcept { return file[0] == '\0'; } bool operator == ( SourceLineInfo const& other ) const noexcept; bool operator < ( SourceLineInfo const& other ) const noexcept; char const* file; std::size_t line; }; std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); // Bring in operator<< from global namespace into Catch namespace // This is necessary because the overload of operator<< above makes // lookup stop at namespace Catch using ::operator<<; // Use this in variadic streaming macros to allow // >> +StreamEndStop // as well as // >> stuff +StreamEndStop struct StreamEndStop { std::string operator+() const; }; template T const& operator + ( T const& value, StreamEndStop ) { return value; } } #define CATCH_INTERNAL_LINEINFO \ ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) // end catch_common.h namespace Catch { struct RegistrarForTagAliases { RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); }; } // end namespace Catch #define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION // end catch_tag_alias_autoregistrar.h // start catch_test_registry.h // start catch_interfaces_testcase.h #include namespace Catch { class TestSpec; struct ITestInvoker { virtual void invoke () const = 0; virtual ~ITestInvoker(); }; class TestCase; struct IConfig; struct ITestCaseRegistry { virtual ~ITestCaseRegistry(); virtual std::vector const& getAllTests() const = 0; virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; }; bool isThrowSafe( TestCase const& testCase, IConfig const& config ); bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); std::vector const& getAllTestCasesSorted( IConfig const& config ); } // end catch_interfaces_testcase.h // start catch_stringref.h #include #include #include #include namespace Catch { /// A non-owning string class (similar to the forthcoming std::string_view) /// Note that, because a StringRef may be a substring of another string, /// it may not be null terminated. class StringRef { public: using size_type = std::size_t; using const_iterator = const char*; private: static constexpr char const* const s_empty = ""; char const* m_start = s_empty; size_type m_size = 0; public: // construction constexpr StringRef() noexcept = default; StringRef( char const* rawChars ) noexcept; constexpr StringRef( char const* rawChars, size_type size ) noexcept : m_start( rawChars ), m_size( size ) {} StringRef( std::string const& stdString ) noexcept : m_start( stdString.c_str() ), m_size( stdString.size() ) {} explicit operator std::string() const { return std::string(m_start, m_size); } public: // operators auto operator == ( StringRef const& other ) const noexcept -> bool; auto operator != (StringRef const& other) const noexcept -> bool { return !(*this == other); } auto operator[] ( size_type index ) const noexcept -> char { assert(index < m_size); return m_start[index]; } public: // named queries constexpr auto empty() const noexcept -> bool { return m_size == 0; } constexpr auto size() const noexcept -> size_type { return m_size; } // Returns the current start pointer. If the StringRef is not // null-terminated, throws std::domain_exception auto c_str() const -> char const*; public: // substrings and searches // Returns a substring of [start, start + length). // If start + length > size(), then the substring is [start, size()). // If start > size(), then the substring is empty. auto substr( size_type start, size_type length ) const noexcept -> StringRef; // Returns the current start pointer. May not be null-terminated. auto data() const noexcept -> char const*; constexpr auto isNullTerminated() const noexcept -> bool { return m_start[m_size] == '\0'; } public: // iterators constexpr const_iterator begin() const { return m_start; } constexpr const_iterator end() const { return m_start + m_size; } }; auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { return StringRef( rawChars, size ); } } // namespace Catch constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { return Catch::StringRef( rawChars, size ); } // end catch_stringref.h // start catch_preprocessor.hpp #define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__ #define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__))) #define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__))) #define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__))) #define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__))) #define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__))) #ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR #define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__ // MSVC needs more evaluations #define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__))) #define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__)) #else #define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__) #endif #define CATCH_REC_END(...) #define CATCH_REC_OUT #define CATCH_EMPTY() #define CATCH_DEFER(id) id CATCH_EMPTY() #define CATCH_REC_GET_END2() 0, CATCH_REC_END #define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2 #define CATCH_REC_GET_END(...) CATCH_REC_GET_END1 #define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT #define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0) #define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next) #define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) #define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ ) #define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) #define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) #define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ ) #define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) // Applies the function macro `f` to each of the remaining parameters, inserts commas between the results, // and passes userdata as the first parameter to each invocation, // e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c) #define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) #define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) #define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param) #define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ #define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ #define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF #define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__) #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR #define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__ #define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) #else // MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF #define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__) #define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__ #define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1) #endif #define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__ #define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name) #define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR #define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper()) #define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)) #else #define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper())) #define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))) #endif #define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\ CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__) #define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0) #define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1) #define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2) #define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3) #define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4) #define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5) #define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _3, _4, _5, _6) #define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7) #define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8) #define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9) #define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) #define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N #define INTERNAL_CATCH_TYPE_GEN\ template struct TypeList {};\ template\ constexpr auto get_wrapper() noexcept -> TypeList { return {}; }\ template class...> struct TemplateTypeList{};\ template class...Cs>\ constexpr auto get_wrapper() noexcept -> TemplateTypeList { return {}; }\ template\ struct append;\ template\ struct rewrap;\ template class, typename...>\ struct create;\ template class, typename>\ struct convert;\ \ template \ struct append { using type = T; };\ template< template class L1, typename...E1, template class L2, typename...E2, typename...Rest>\ struct append, L2, Rest...> { using type = typename append, Rest...>::type; };\ template< template class L1, typename...E1, typename...Rest>\ struct append, TypeList, Rest...> { using type = L1; };\ \ template< template class Container, template class List, typename...elems>\ struct rewrap, List> { using type = TypeList>; };\ template< template class Container, template class List, class...Elems, typename...Elements>\ struct rewrap, List, Elements...> { using type = typename append>, typename rewrap, Elements...>::type>::type; };\ \ template