stepic-0.5.0/0000755000175000017500000000000013656566767014520 5ustar kittermakitterma00000000000000stepic-0.5.0/COPYING0000644000175000017500000004310313656152042015525 0ustar kittermakitterma00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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. stepic-0.5.0/MANIFEST.in0000644000175000017500000000024513656565652016247 0ustar kittermakitterma00000000000000include README.md include COPYING include stepic.1 include MANIFEST.in include Makefile include *.help2man_include recursive-include tests * recursive-include doc * stepic-0.5.0/Makefile0000644000175000017500000000134213656433461016140 0ustar kittermakitterma00000000000000release: python3 setup.py sdist --formats=gztar documentation: doc/build doc/help.txt doc/pydoc/stepic.html stepic.1 doc/build: virtualenv --python=python3 --system-site-packages venv1 python3 setup.py bdist_wheel ./venv1/bin/pip install -f dist/ stepic doc/help.txt: doc/build ./venv1/bin/stepic --help > doc/help.txt doc/pydoc/stepic.html: doc/build ./venv1/bin/python -m pydoc -w stepic mkdir -p doc/pydoc/ mv stepic.html doc/pydoc/ stepic.1: stepic.help2man_include doc/build help2man --include=stepic.help2man_include --output=stepic.1 ./venv1/bin/stepic clean: python3 setup.py clean -rm -rf build MANIFEST -find -name "*.py[co]" -print0 | xargs -0 rm -rm -rf venv1 .PHONY: doc/build release documentation clean stepic-0.5.0/PKG-INFO0000644000175000017500000000342613656566767015622 0ustar kittermakitterma00000000000000Metadata-Version: 2.1 Name: stepic Version: 0.5.0 Summary: Python image steganography Home-page: https://launchpad.net/stepic Author: Lenny Domnitser Author-email: lenny@domnit.org Maintainer: Scott Kitterman Maintainer-email: scott@kitterman.com License: GPL Description: Stepic - Python image steganography https://launchpad.net/stepic # INTRODUCTION Stepic hides arbitrary data inside Pillow images. Stepic is a Python module and command line tool for hiding arbitrary data within images by slightly modifying the colors. These modifications are generally imperceptible to humans, but are machine detectable. Works with RGB, RGBA, or CMYK images. Does not work with JPEG or other lossy compression schemes. # VERSION This is Stepic 0.5.0 # REQUIREMENTS Stepic requires Python 3. Any upstream Supported Python 3 version should be adequate. Stepic also requires the Pillow Python Imaging Library. # USAGE See the included file doc/help.txt # FEEDBACK Bug reports may be submitted to the bug tracker for the stepic project on launchpad. # LICENSE Stepic is © 2007 Lenny Domnitser and © 2018, 2020 Scott Kitterman and is released under the GNU GPL 2. Platform: UNKNOWN Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) Classifier: Environment :: Console Classifier: Topic :: Multimedia :: Graphics Classifier: Topic :: Utilities Classifier: Development Status :: 6 - Mature Classifier: Programming Language :: Python :: 3 :: Only Description-Content-Type: text/markdown stepic-0.5.0/README.md0000644000175000017500000000160013656565620015757 0ustar kittermakitterma00000000000000Stepic - Python image steganography https://launchpad.net/stepic # INTRODUCTION Stepic hides arbitrary data inside Pillow images. Stepic is a Python module and command line tool for hiding arbitrary data within images by slightly modifying the colors. These modifications are generally imperceptible to humans, but are machine detectable. Works with RGB, RGBA, or CMYK images. Does not work with JPEG or other lossy compression schemes. # VERSION This is Stepic 0.5.0 # REQUIREMENTS Stepic requires Python 3. Any upstream Supported Python 3 version should be adequate. Stepic also requires the Pillow Python Imaging Library. # USAGE See the included file doc/help.txt # FEEDBACK Bug reports may be submitted to the bug tracker for the stepic project on launchpad. # LICENSE Stepic is © 2007 Lenny Domnitser and © 2018, 2020 Scott Kitterman and is released under the GNU GPL 2. stepic-0.5.0/doc/0000755000175000017500000000000013656566767015265 5ustar kittermakitterma00000000000000stepic-0.5.0/doc/help.txt0000644000175000017500000000157013656566715016752 0ustar kittermakitterma00000000000000usage: stepic [-h] [--version] [--debug] [-d] [-e] [-f FORMAT] [-i FILE] [-t FILE] [-o FILE] Hide data in an image, or read hidden data from an image. optional arguments: -h, --help show this help message and exit --version show program's version number and exit --debug -d, --decode given an image, write out the hidden data file -e, --encode given an image and data file, write out a new image file with the data hidden in it -f FORMAT, --format FORMAT output image format (optional) -i FILE, --image-in= FILE read in image FILE for decoding or encoding -t FILE, --data-in= FILE read in data FILE for encoding -o FILE, --out= FILE write out to FILE, data when decoding, image when encoding stepic-0.5.0/doc/index.html0000644000175000017500000000352313656562460017247 0ustar kittermakitterma00000000000000 Stepic - Python image steganography

Stepic

Python image steganography

Stepic is now maintained at https://launchpad.net/stepic.

Download

The latest release can be found on pypi or at https://launchpad.net/stepic/+download. If it is not available through your operating system package management system, you can install it from pypi using pip.

If you are using Debian or Ubuntu, you can install the stepic package. Use the command: sudo apt install stepic.

Graphical User Interface

Rizzy is a graphical steganography tool built on Stepic. It supports AES encryption in addition to plain steganography.

Documentation

Source code

Source code is managed in Git. It can be checked out using the command:

git clone https://git.launchpad.net/~stepic-dev/stepic

or can be browsed here.

License

Stepic is © 2007 Lenny Domnitser and © 2018, 2020 Scott Kitterman and is released under the GNU GPL 2.

stepic-0.5.0/doc/pydoc/0000755000175000017500000000000013656566767016403 5ustar kittermakitterma00000000000000stepic-0.5.0/doc/pydoc/stepic.html0000644000175000017500000001570413656557446020561 0ustar kittermakitterma00000000000000 Python: package stepic
 
 
stepic (version 0.5.0)
index
/usr/lib/python3/dist-packages/stepic/__init__.py

Python image steganography
 
Stepic hides arbitrary data inside Pillow images.
 
Stepic uses the Python Image Library (Pillow)
(apt: python3-pil, web: <https://pypi.org/project/Pillow/>).

 
Package Contents
       

 
Classes
       
builtins.object
Steganographer

 
class Steganographer(builtins.object)
    Steganographer(image)
 
deprecated
 
  Methods defined here:
__init__(self, image)
Initialize self.  See help(type(self)) for accurate signature.
decode(self)
encode(self, data)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
decode(image)
extracts data from an image
decode_files(image_in, data_out)
Main function for decoding data from image files.
@param image_in: Filename of image containing embeded data
@param data_out: Filename of text file to write the data
@return: None (data written to disk in data_out)
decode_imdata(imdata)
Given a sequence of pixels, returns an iterator of characters
encoded in the image
encode(image, data)
generates an image with hidden data, starting with an existing
image and arbitrary data
encode_files(image_in, data_in, image_out, format)
Main function for encoding data in image files.
@param image_in: Filename of image in which to embed data
@param data_in: Filename of text file containing data
@param image_out: Output file name
@param format: Format of ouput image, use 'None' to keep the input format
@return: None (image_out written to disk)
encode_imdata(imdata, data)
given a sequence of pixels, returns an iterator of pixels with
encoded data
encode_inplace(image, data)
hides data in an image

 
Data
        __all__ = ('encode_imdata', 'encode_inplace', 'encode', 'decode_imdata', 'decode', 'Steganographer', 'encode_files', 'decode_files')

 
Author
        Lenny Domnitser <http://domnit.org/>
stepic-0.5.0/setup.cfg0000644000175000017500000000004613656566767016341 0ustar kittermakitterma00000000000000[egg_info] tag_build = tag_date = 0 stepic-0.5.0/setup.py0000644000175000017500000000226213656566102016213 0ustar kittermakitterma00000000000000from setuptools import setup import os import stepic version = stepic.__version__ with open("README.md", "r") as fh: long_description = fh.read() setup(name='stepic', version=version, description='Python image steganography', long_description=long_description, long_description_content_type='text/markdown', author='Lenny Domnitser', author_email='lenny@domnit.org', maintainer="Scott Kitterman", maintainer_email="scott@kitterman.com", url='https://launchpad.net/stepic', license='GPL', packages=['stepic'], entry_points={ 'console_scripts' : [ 'stepic = stepic:main', ], }, install_requires=['pillow',], include_package_data=True, zip_safe=False, data_files=[(os.path.join('share', 'man', 'man1'), ['stepic.1'])], classifiers=[ 'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)', 'Environment :: Console', 'Topic :: Multimedia :: Graphics', 'Topic :: Utilities', 'Development Status :: 6 - Mature', 'Programming Language :: Python :: 3 :: Only' ] ) stepic-0.5.0/stepic/0000755000175000017500000000000013656566767016007 5ustar kittermakitterma00000000000000stepic-0.5.0/stepic/__init__.py0000644000175000017500000001615513656543446020115 0ustar kittermakitterma00000000000000# stepic - Python image steganography # Copyright (C) 2007 Lenny Domnitser # Copyright (C) 2018,2020 Scott Kitterman # # 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 2 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, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. '''Python image steganography Stepic hides arbitrary data inside Pillow images. Stepic uses the Python Image Library (Pillow) (apt: python3-pil, web: ). ''' __author__ = 'Lenny Domnitser ' __version__ = '0.5.0' import argparse import sys import traceback import warnings try: from PIL import Image except: warnings.warn('Could not find PIL. Only encode_imdata and decode_imdata will work.', ImportWarning, stacklevel=2) __all__ = ('encode_imdata','encode_inplace', 'encode', 'decode_imdata', 'decode', 'Steganographer', 'encode_files', 'decode_files') def _validate_image(image): if image.mode not in ('RGB', 'RGBA', 'CMYK'): raise ValueError('Unsupported pixel format: ' 'image must be RGB, RGBA, or CMYK') if image.format == 'JPEG': raise ValueError('JPEG format incompatible with steganography') def encode_imdata(imdata, data): '''given a sequence of pixels, returns an iterator of pixels with encoded data''' datalen = len(data) if datalen == 0: raise ValueError('data is empty') if datalen * 3 > len(imdata): raise ValueError('data is too large for image') imdata = iter(imdata) for i in range(datalen): pixels = [value & ~1 for value in imdata.__next__()[:3] + imdata.__next__()[:3] + imdata.__next__()[:3]] byte = data[i] for j in range(7, -1, -1): pixels[j] |= byte & 1 byte >>= 1 if i == datalen - 1: pixels[-1] |= 1 pixels = tuple(pixels) yield pixels[0:3] yield pixels[3:6] yield pixels[6:9] def encode_inplace(image, data): '''hides data in an image''' _validate_image(image) w = image.size[0] (x, y) = (0, 0) for pixel in encode_imdata(image.getdata(), data): image.putpixel((x, y), pixel) if x == w - 1: x = 0 y += 1 else: x += 1 def encode(image, data): '''generates an image with hidden data, starting with an existing image and arbitrary data''' image = image.copy() encode_inplace(image, data) return image def decode_imdata(imdata): '''Given a sequence of pixels, returns an iterator of characters encoded in the image''' imdata = iter(imdata) while True: pixels = list(imdata.__next__()[:3] + imdata.__next__()[:3] + imdata.__next__()[:3]) byte = 0 for c in range(7): byte |= pixels[c] & 1 byte <<= 1 byte |= pixels[7] & 1 yield chr(byte) if pixels[-1] & 1: break def decode(image): '''extracts data from an image''' _validate_image(image) return ''.join(decode_imdata(image.getdata())) class Steganographer: 'deprecated' def __init__(self, image): self.image = image warnings.warn('Steganographer class is deprecated, and will be removed before 1.0', DeprecationWarning, stacklevel=2) def encode(self, data): return encode(self.image, data) def decode(self): return decode(self.image) def encode_files(image_in, data_in, image_out, format): """Main function for encoding data in image files. @param image_in: Filename of image in which to embed data @param data_in: Filename of text file containing data @param image_out: Output file name @param format: Format of ouput image, use 'None' to keep the input format @return: None (image_out written to disk) """ image = Image.open(image_in) if not hasattr(data_in, 'read'): data_in = open(data_in, 'rb') data = data_in.read() if format is None and hasattr(image_out, 'write'): format = image.format encode_inplace(image, data) image.save(image_out, format) data_in.close() image.close() def decode_files(image_in, data_out): """Main function for decoding data from image files. @param image_in: Filename of image containing embeded data @param data_out: Filename of text file to write the data @return: None (data written to disk in data_out) """ image = Image.open(image_in) if not hasattr(data_out, 'write'): data_out = open(data_out, 'w') data_out.write(decode(image)) data_out.close() def main(): parser = argparse.ArgumentParser(description='Hide data in an image, or read hidden data from an image.') parser.add_argument('--version', action='version', version=__version__) parser.add_argument('--debug', action='store_true', default=False) parser.add_argument('-d', '--decode', action='store_true', default=False, help='given an image, write out the hidden data file') parser.add_argument('-e', '--encode', action='store_true', default=False, help='given an image and data file, write out a new image file with the data hidden in it') parser.add_argument('-f', '--format', metavar='FORMAT', help='output image format (optional)') parser.add_argument('-i', '--image-in=', dest='image_in', metavar='FILE', default=sys.stdin, help='read in image FILE for decoding or encoding') parser.add_argument('-t', '--data-in=', dest='data_in', metavar='FILE', default=sys.stdin, help='read in data FILE for encoding') parser.add_argument('-o', '--out=', dest='out', metavar='FILE', default=sys.stdout, help='write out to FILE, data when decoding, image when encoding') args = parser.parse_args() if args.decode == args.encode: parser.print_usage() sys.stderr.write('Choose either encode (-e) or decode (-d).\n') try: if args.decode: decode_files(args.image_in, args.out) elif args.encode: encode_files(args.image_in, args.data_in, args.out, args.format) except (TypeError, ValueError) as e: message = 'error: ' + str(e) + '\n' sys.stderr.write(message) sys.exit(1) except KeyboardInterrupt: pass except Exception as e: message = e.__class__.__name__ + ': ' + str(e) + '\n' sys.stderr.write(message) if args.debug: traceback.print_tb(sys.exc_traceback) sys.exit(3) if __name__ == '__main__': main() stepic-0.5.0/stepic.10000644000175000017500000000214013656557431016052 0ustar kittermakitterma00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. .TH STEPIC "1" "May 2020" "stepic 0.5.0" "User Commands" .SH NAME stepic \- Python image steganography .SH DESCRIPTION usage: stepic [\-h] [\-\-version] [\-\-debug] [\-d] [\-e] [\-f FORMAT] [\-i FILE] .IP [\-t FILE] [\-o FILE] .PP Hide data in an image, or read hidden data from an image. .SS "optional arguments:" .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-\-version\fR show program's version number and exit .HP \fB\-\-debug\fR .TP \fB\-d\fR, \fB\-\-decode\fR given an image, write out the hidden data file .TP \fB\-e\fR, \fB\-\-encode\fR given an image and data file, write out a new image file with the data hidden in it .TP \fB\-f\fR FORMAT, \fB\-\-format\fR FORMAT output image format (optional) .TP \fB\-i\fR FILE, \fB\-\-image\-in=\fR FILE read in image FILE for decoding or encoding .TP \fB\-t\fR FILE, \fB\-\-data\-in=\fR FILE read in data FILE for encoding .TP \fB\-o\fR FILE, \fB\-\-out=\fR FILE write out to FILE, data when decoding, image when encoding .SH AUTHOR Written by Lenny Domnitser stepic-0.5.0/stepic.egg-info/0000755000175000017500000000000013656566767017501 5ustar kittermakitterma00000000000000stepic-0.5.0/stepic.egg-info/PKG-INFO0000644000175000017500000000342613656566767020603 0ustar kittermakitterma00000000000000Metadata-Version: 2.1 Name: stepic Version: 0.5.0 Summary: Python image steganography Home-page: https://launchpad.net/stepic Author: Lenny Domnitser Author-email: lenny@domnit.org Maintainer: Scott Kitterman Maintainer-email: scott@kitterman.com License: GPL Description: Stepic - Python image steganography https://launchpad.net/stepic # INTRODUCTION Stepic hides arbitrary data inside Pillow images. Stepic is a Python module and command line tool for hiding arbitrary data within images by slightly modifying the colors. These modifications are generally imperceptible to humans, but are machine detectable. Works with RGB, RGBA, or CMYK images. Does not work with JPEG or other lossy compression schemes. # VERSION This is Stepic 0.5.0 # REQUIREMENTS Stepic requires Python 3. Any upstream Supported Python 3 version should be adequate. Stepic also requires the Pillow Python Imaging Library. # USAGE See the included file doc/help.txt # FEEDBACK Bug reports may be submitted to the bug tracker for the stepic project on launchpad. # LICENSE Stepic is © 2007 Lenny Domnitser and © 2018, 2020 Scott Kitterman and is released under the GNU GPL 2. Platform: UNKNOWN Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) Classifier: Environment :: Console Classifier: Topic :: Multimedia :: Graphics Classifier: Topic :: Utilities Classifier: Development Status :: 6 - Mature Classifier: Programming Language :: Python :: 3 :: Only Description-Content-Type: text/markdown stepic-0.5.0/stepic.egg-info/SOURCES.txt0000644000175000017500000000063613656566767021372 0ustar kittermakitterma00000000000000COPYING MANIFEST.in Makefile README.md setup.py stepic.1 stepic.help2man_include doc/help.txt doc/index.html doc/pydoc/stepic.html stepic/__init__.py stepic.egg-info/PKG-INFO stepic.egg-info/SOURCES.txt stepic.egg-info/dependency_links.txt stepic.egg-info/entry_points.txt stepic.egg-info/not-zip-safe stepic.egg-info/requires.txt stepic.egg-info/top_level.txt tests/test_img.png tests/test_text.txt tests/tests.pystepic-0.5.0/stepic.egg-info/dependency_links.txt0000644000175000017500000000000113656566767023547 0ustar kittermakitterma00000000000000 stepic-0.5.0/stepic.egg-info/entry_points.txt0000644000175000017500000000005013656566767022772 0ustar kittermakitterma00000000000000[console_scripts] stepic = stepic:main stepic-0.5.0/stepic.egg-info/not-zip-safe0000644000175000017500000000000113656242273021706 0ustar kittermakitterma00000000000000 stepic-0.5.0/stepic.egg-info/requires.txt0000644000175000017500000000000713656566767022076 0ustar kittermakitterma00000000000000pillow stepic-0.5.0/stepic.egg-info/top_level.txt0000644000175000017500000000000713656566767022230 0ustar kittermakitterma00000000000000stepic stepic-0.5.0/stepic.help2man_include0000644000175000017500000000017413656152042021115 0ustar kittermakitterma00000000000000--section=1 --no-info [Name] stepic \- Python image steganography [Author] Written by Lenny Domnitser stepic-0.5.0/tests/0000755000175000017500000000000013656566767015662 5ustar kittermakitterma00000000000000stepic-0.5.0/tests/test_img.png0000644000175000017500000063135013656525125020172 0ustar kittermakitterma00000000000000PNG  IHDR N$ pHYs+ IDATxۖ*EqN 8cs۟ܕmۜsK?|upqr7_I\3%v'"%߁kuqg[ܯR_2gy{kXPz$/!cV2>O:gkƯ} _jU)쏂уģ5_WbrK,ޥ1-oO+1-sY^_Mk1r~u?I+qYh̐m-T6g -!X9˯g+8<%6Ab$ByVYi |rDأ$󣖾^9W\,^籯LJ'~m;%= |O>{so"J0n'[F}ܜx}@ ,t`\F2<,o%mi}iiZr O苯oRLȍ\ q gHá=K.;||O3zS!OJFS)՝1Fs snwWYU*޴7IW` -6=YvBj=qeu` Hf4#e$%[M L;dK˞LzNm.6q8 ޺seEԯ _y7Wp455z t<k#A2,$oJzORjN6!/Gu{N8xkOFVa%_JzY 73fvaf,*QwLć%fgF'}N$SDcdZfعM7 Xe&7|&v4oKArodudFf$TKy+jߞCQq 3SZhO5[ȒFo(<ꞣsTyWO"Q)LHTzDŽoJ5_VM(d_Gc$8BYd<\w )_IÕ;ڥ={;;[$aRBhxSYI"Wލ&0BlX[tMzQ)dag C2֐l:3opKHk4LMMT-=}X/'uỷ `*z kl9jϣpP'jו=ThA];ʷXA_9[|1؀DYsI&ʰA r񜢛ˤv%bƔǮ iV*-1a ~NCFY/M5~,lP,;׫ޛg-JRC-+WA:OBv6~!^_2kkPYm;dz\a66b8X74-rpV)HkD= 얮-|l}W[n-='f۟nz@󐷄t{N=GkLl͎7ێY+3,aU<,D?#d޺n`+=h)\O=k\CvK~Pw|D39Y*j es C+74(Gb|쇟,A KqNͯ$Yt22]H'0eusxoĭ.u}!zmnam,Eos|޴1#9>¬lUc{ƮpDSjqe+.|6ڨ6uR#7-(eʘY[hav< yp{╧~ҹ2FvO>w^ݠN ki"AVBuO"?~Z(̪&"fihUJMPH}綥];C2ً #RIf*d)|;duaWyX۽:R6b]uIvPZ!˚u<9-)H Vl^ԧĻؙTv+֊ -=hb葃xIeqIOÝrmMZPӉ M!^v: 4 eef270d+4P%w;n| }F59m,G#9R&Y}~Ni?(rcA.9(92Kv.dل^ C6qiW#%ŭ'mcH+~X`&{~ē}hHIEu|eў j )4SZт9-V cH8VV֩\U->0?ҝ}W'G^Tyz"43YcG&{gjȌ틑g4Wc(NEg|xwpVs F̄m^*݆UKj:ZvnNУ@{&:-lZ_JG\Mm\?_TC6K:޴\"oOHZu$,͋DkAg c[-!sҴ32rgn^sCBm 7[w sXzfQp}6eEON)~\' .& dW;JWdx(At K5$՗Ң^}n#kn >wOTab=~keI7ml2ZҁuY=櫇+.n,p~(>?}َm5f 7 9+ʎz[ic}4u:5/e֪ԁ^ Dkk}$W`wܯ WL NrPc)QM ~}wlݶML _~,d4+'mu'3qZr^@6F.wEtRà2_gʢJ ΅cY کI#דoƔrZ2_@^=dVҖ\N28 ѳ*<6KJOA] "撍,P22|jh"J[Kϖ՝IhΝÅbzq>VW8oCk6?+7<ĢMӦDS;ۥ"_5 7n ,:lE_;Uy;-fM\wI93+ -)bM3w$,B-'TIK/4B>JZJvZmҤmmz^~߱۩G] g`ժIO?< z=z ц_ۧ?6Js/$8AY-Y, %HtωBkOB d|$Ni|͐>1zu ~ɶmpIw/ iֺ{7)w'cO^="_xܬu1}It\{Jٝ˕K=ݜLp1~O˘ڃmc'*sH˾y +Ž$@e\Dl"ָI1~0N>gIv)$zo9^~#YcD_Nƹ H3sԉWұKg]'٥iME<<6|B ?bvV{ֲWtR*s(rr}z1$hMSL_H1W!n #6Q,{,#)3k3mק& `~8JlOF#OSF ׌wI%h4*>2&i iQ" stѾCKأ2~3rVdlTݘ'>%kCXC'wkrLvuBr~[+ 8bՀ;k\8l&- [5u%2Ν;+k>(-B ܆Y cT? mNn}~Hl{ Qi"LOAcwK .0dp:(.?k ;e .alQq\4IJ n qT9#K@@>_,MaŧڻvX;m¤hk.b Qfq1eQ`0{D B`tD|`7[-x5[0NG*#fs'PwD:FѨk1䴏ܲ6;A&# ¯FÆri}[x)glVz? 񪓑QVI:zPMw+W_XY,:RjpfY"ˑ{ZCv>Ls;L ~]JիOM%]-,t%I q̥\>k(ks1f.TmF7,)zC T _A;:wW P>9{J4a,ЉU7 F-{d*~2xld1}{U5ZE'Jg?d |i֝K tV!㌇ժ1"'<ĝ `ʵƕ^4chd9rFV)IaV0٩S^z+Ϛh<)1hR=ws V,sAT{ԫⴼsO6q?6mVz%cʛ_k|Wt&Hٶm;G'ZK ܹTAg/u./ "[_hr`IB,#SLkSۇc7c1Wna0[/ӫs;/'/$]T +~T3f̏58tjfW[BN$6ӓ:{l[+F!"s*uIpDQ]У0s(ԍ?I=sh|0})c vR, @<Ҏ=./Ñn{t %fъc5u P%`8. ՗薇3ķ+lu`Ѫ7/fܻҹe|}ړEӡ;#a$=@[[\^mϾ/RUڇ`55v3i>-&gF⋵-S6_6{}9XfY9 ͪpY%^:1JaapKN3ROQvҭbJ8bvNJcJg-_d?}}$BVP!H|tp&pbYo 6X^:4N-W IO1'R?Z Tl}WN8^:dӍ2آط-2T ܤyϩPpIW1k`um>Z'; r pGH\fB#tZN )&OE1iP7a'L=cC|rlZfU[9f %;+I_Ez ׻HV-R#lI\#FJs#jlh r2aK 9CضMz,Ϙ `]jq \g.yÏEFbw];F]*COF'{\o'{b_iKW6Np%g97K='*KYuT~|Z}TxP,w*tȥ}.0]M' h+|ZJ;Y@:v'#|k~1B /̂Ogźhur?c %"2lTc)K__~0fYQһ9ye(UAgAc[ֲs/ 0jE"ޮ^%E|׻?%_QWkE4Ο 4 1_ Fid'Am7ygܥdnw~OϸKrAOE/&УXFV KxFP@c9dY]klbUBe Rx C8_@ NT>h'K[fЀ!L4IzO: FuAY vK-uVv쐝Lך;Z#edN$c(3w sysd&S~]bcDQ}%\8^M&xtұ~Qҷ߄M*wh4J]BݎR1j"rE!EMӔŮXdî-m7Bgv"*&Qltt˷_`BiȄoCFCt ["# e#gs&5c H%B0yٵ,WM51Mx^֬V6+@,wc%6pP>z,7xHa}bk1_R3jl飮,ſR@ }}9ܿ_i5^:?v-M[:}>.ooW[ 2(5=0״xմaR²7^_h]=u -C;I32CYC-wGk,;v-I[c#..*0y= PZ_6q cLvb}s۶ߓ^3!ہR dwiTX<;Ƹ"٘6y0`>#mVoOB .(@۴%Ă#XIOA-OOP/`;uQUɚw+أrm`ZpCArCkJÅ&!] B@a99;ʗ^5:YnP5--b99&Y{yt?P b;dm۶?ܾut^v{炑NPMM~?~$(*vz<|~xIIQH>zghwT!ٖdJ .%g;`sIA_zҀ.ݙ}#|)op΂J~ckɕhMKT?;!TSm[` U&]-Ndi"7RMt uHJAyB Hݽ@1=ڙ ^E1{Wt'~Ing⑇mjx%בY˶+ Oed1XV4[T$}r5t_i%YR!,~"besVLzNRɳ@E[~::IWEhY৬g@HtgA3jqlw&I+&+| l&Y m&))P:5o3%'=bX[O gxB܃hUgwvG<%EyTK$<>xTG,ԦjM3}+B):V/ܲvKjC8]KuBܫN/ 7#0[XIoh֒+}xNW!%a4d߫T忞i.x۩TR,u.ɷ$h7}e;{V8%ZV TI)R.ԖR@v$S!WTU_EI? YWRܖ98KhcrX匟HOx2BS >^aYޒ-uxBr/QRR;Ux 9AVm*J/bk Mjrt?@N6]vޠ纜g)9!hoZG+ή4t * &tm:dlYP wv*IߞT>2ZAw8ѐ9&N{3Ƹu0xԒ %/V۞;'y6 c }}\Ltv lo›mg{!of*J~sFWAh,mAPW>ˈ+f_qZNYX%be*+5]ץ*pbF>?B^NTXtwY+Е5OT@U&B+,ϧ*L#x*-[bYp?D3FN~j=Okyrw}Ҹ edhqe\(tNWoX'7rK܂`hbe0TFVW}C߿92L:+O̎rD ߛ"N^|))Kge,WPo4dOu;|0sn7JK^JCmӞ.TI~öm4I'Ma]^Vא>hVی b6uk*'[8ʘa7ر01WtXcFԌ╅XkC_gSebZ/c\CamgGߚ?)!sfJ2`̺doVg:̔-Ґm~QY/vaed) דd ~}ShE?E𪾼LU[탶4׼UI2%=m/Y+d )2 葈 t}.ldn+qAxc}h,IE5/&&8 ;`Ƙj)71T Ka_[^HЮTbt1%Z_-^dy}5 Kn.Ϯ' -Om#Jiu :\1l,0-=RFƅ{ރt05^B9sͪO}DQ\x{~#O >9Pp '%EǿFd+LMNI37"_rNy Q)ysA i֙Hg>gR)Z[R4|H0˧u‡qW$Ƚђ"j00Z^KYT-^a{w o]{(k:pK{^ǝI⍹ȡn>f{5LlO|^#X|]mIjǭ]Ed/22Q=R0j>jdVdo vR8dd *1y[~-cܶ%C~7hhF.߅ksJ.M5l%u{=̔%j|h ܍hy7m-~6I㐲<ailLhZ4[AXkhr̠NtOk-a]x[ OX\BSgp8&Q om++\*`q?Ȯ_GwF|3#?ݒtQRWVzTHXl) 'er YNt ,YpKp|7w_nJh O=ǣP ,0GnQq{nG~EU93ǿ-[8`d%'oeӂeKghB=lD4jӬ^X\ui{l"sАV\6mm9x+,IJRw3'Nƿ[ttr^wL Ձ9T$'qZI1&TTJdӣǥʖQ](B)҄9I0)fG~:'; %GZ;^wB?P$aX-ۡv*V? jS$1\}xhyXKC\ɿCbwً{2S =3YLno,[ľ/cڱL0ҤKIU[c0Xi)U{U/:a>lVG,XNuM7~J[DDfjU@cY2=uded*pP?ӚTEG^ޣ0-!_Vqq۶iUT?/_igEYh lFcgL>ȑROKCna/E!,AiՠA0II()AVtmKf6%;:/vb?) Y꽾l0u*n#Mň D`3Lm)ܬ ² ¼'_P3q鿓}kJ!mic5&PռDsvLSƇ!Ih /54-ΚzLlISw4w7S1g9CJd.;0#jWo*AL2ܘ#ՇO;T-qPMr:` 8vB=Oc|ͭ:ak[$椖ڔFBwzuߟگ!c|:KyAnsn1~wrwo&T WQL.dd npFhQ,$CV %GGC E1JO?'8ju$(c:Bv@rHee==˒֑~ZßǮg'Yt}䔴=]%@#ٌ~'S8=/2O@:pm5 \>T8¹'Q L|?jȢX$Qsj6oP]P߇_J_`J0'mw)UPv" k %+uvzը`PQ^Ap3䗥0|?..[̔ Vf}JS]6j:I'ҵmh-(ӓ n-Y"η/͘mQ/H{b?o~|x}',JZƥ;=߭Tܥ z*"[z%ec+yx. ;+P|3E8=/ݶmڌ"䦿WR0IRyfu.Fql/Y%ow𘦮4݊02qA"G?MXa mN?$!S^2+]+S/z9/AtP$z+<-'&e~tg(E8%yB-2['Eo]:F`َ x0~^Q'~GKw=N(o8(v H1,D>.2z _ryw wFZ$H*%~HU{Aώ; xrڶ)}" %K6m]JRU'Yğ $e #GӇ5Tja>UN se9$YHj},3TAV:,2D~,(vbC@JQGr-PL0{WƧ UKv:>FXW x=UCX*Mt4d߆Yx}N8uy6  aԝ- ,u$ZHSohxD0q.J2Cݛ -D60d!xa@hulO TA\{z  14Y嘾:}o]|~|#ـa68(@ Aá`?|'8 T˿$ǂo> RGoκ/+_CfY:0Œ4W.Ѽ^ε3 $X-CdL8m;ѓ@w-f1`(S~Hr"wb1U/KFXaEڮn{yQXtbvpJQ{mX?nw-j@90z8zkøwk^:'vnfiጯSd,"[ f~;KUnU;l!=0 ׶8GX ۶]yaEWÈɶurS$ިQ g0kPPHUCbayB,o5,CbǩB䂃EY%#0FIKY@= VN=Pv c;!I>ĉ( O|*$R7xZߏ'yVDxy4_F~o-3u'/͊u}ʯ4 eߜedʕ#27U&k*)Vr_kzCk|}X{w'}۩.-Ÿ[X uc)XW-|xΈY+:ަ\Ll"a 0?vx1_1\R?TOεl?L!qeyb6`贻teFYfk o gun6$d|n@uUK^oo7r>t?P(J2Lf&K)z\ ux3e?89gL]C#xIT?J2WniNCVU4Vc IDAT?^dJ;?áS8|ܩZ6a-"A>9k*è,:fn,Ξޡ7)yD&> S dr1~ fzLno0vtcri؍pG`qJ!Y35 Y`hIXS'!} /+}J̈́B #9[d.ӌKRm,_fcI=uV{fwK oT \2P3ڦ3>N952C%ίLuxCmNO6L~!{ d /aM hDF@k:bfpߡDZ1E`,7jSCE@s>3[+QmE آ^N N1U3:698ǩ'=?VjˌbEvMq0vx]ۆޭelt_ m;#r9+c57 el5`vΔ_)pyfKLZu!`"TR]v\ eBºCn9l jzo!h$/kp56qyа;z\J,}%Z˯ꚜ'J~kKlnvvFt;C0aӺQ :yO2&/g) tR0&ܧة}K:ҳԾǢ['Efpe'v梔8ex>5ծ4K-ڶ/G~@P:*e觅yMX\9bL%O N]PB?5I.` ƣO3k.TĀr5p'~[O .Fz)V-|,MԺS,\V|IkuN+38<7'EswSHs}q6dwSxG\ Ɇ9zCw ZJ 啄11u1P itp8!JD{532C" : O-k w 4ƨgGO`ML%/ߗ߸ZqN{=4#4 _-&,r{URV AQ/D| G) rk~R`i x!x6| duĮFi{6me_5i݁,)cJ# qeTklݻ٬6rN޳5.dT =.#|j` ` -'kͣ}%_NA-a$:Zm]('#(Tab&=re"f;+uqȹtߗo振aL[HoӷxYU$j%HRcҖʹnV$OC*.$DpY/!6/Tg_I;#oVDNUm`- Vx'c Iu.x/ 9]k8jk /0=c8cW/lYl].Df -!gI^{dEOc-` sy;VyKo(s HN$՝Ҥ0g˗]$XB!rG^9֤~=2Q8y$VǨE^r'M@he٤!:S&jzR[}rS O`>V$x8cPFVtIm`EI`l|QY+yS6s3'%E|T" ,!{URu9edn\"~?iz7)|$TG 4KWV^ȴRK;ܻOԧ#G`\Y` Y`#NU2n_g>iO Ȩ0_nZ]4d`Cj ,?I)sXFVgF-B1&L %̈́dLZSʙL_v@ TShg"ğ1 -#k >HxNZɮ>*mʬ:2_fKz!ۑ/נ''Yc zRzFMauxVϚE[;IIV]@IeҶUfFAY}yp'LCv72%]ۗt0cy:${ڲC&`i ˝T!YE.k,vjzY.}JKX[`S0.=]pb_0nTZ+ HuiuJ=kN[ 'X y1{cYcCGtO-@Wuɶ+nYLدMI>70u7rRFi_J}zvF'>YzHNITyOc\`Υ!~Kovp&W}1JgWl(%D+o6h"|5}cY-<⦊SfK\Et"Qa>I/ M*^QyK{j0b96zN/Y i^ݷ*.?K'w#0mo.)ʳ)_1з]3B.ݐ $)(ߺ`FƁXr(wD. ]{nQRPw7E~iNvn5+1d<ɂػ9ojrG"_Ea{h sQYJE=**=FWr0նcYR KoEQ > G6CA;ß`d0k%:tձ*9P}u)eȢE-|&~ɷLD*]V]-2R YܕO"ony<4bnIz s90 4,>ܶN#H]ꢈHN:XGjκ _ggK?>1V>: NWXnFL> ˢ=2* !GTm 1lIc-c[vE]XՌ1 BL.Nj#-j KņS\ Le>UL]0xY[OPM,`.ZDUnz`dQҐJg<.A,PQ3NȍQ%*^H2P`D(Ɇ!4~%KQ]0$ڲyZ@OB߅C`QOtkl4 Z( [}kK^|?/׵&`h%Q¸ 9⏏KORCNvz݌'Esh'̝DVt˘ZT3K=?o7HB`48 rZ4k#hl-\.L ]P!8vL-F| =H-{Xn9=f wnLJ-l@vR<Ԩ!?Oa[_}.cѠ61˚q  '{ˆA 2YT*X],:u>2Z, -Aa 1.L_Ӯ_;2%IdeRE `a$@ <FmaRL%<ֶ̢rx,ZZfAmS߼2~ܷQx\-[ŊHed -I&(TA"{%jQ@]]?:O~Wi{Io&b[PUŲPt Y))u)IKuYulebtOT|76pV|P\}Ċ,HyJ9NIAaLdWOoU!oi7IXEq0zƤ^ir}'jRx mQ+u"J¼GV0s:z^}/t ~uQ-alMHk7n"Gh] >+gh5dx:+b3SMf#@nS[[4du!YZlqy`S ugEd~2y] r Q<ºVoDC5JFV]8ĕs vtO6anP^_~FeKXtcGXS~8/"Xnt~v-҃7HH5> F4_X$O0g^w6W}ad=YNu#v*~rHruWIw%wb{kɇ%}&%Il׏r̃2{=}gœd( _V,*3YpK9gI4Mn]Ѓ$Hkq Rǃ-KZKBDC'%PW AK / E!|Fq3K׾ c RSEAx d;-~I,j+)T:LX9G- -]m#])1&S>9!Am.v|p_ᷥ%IMP36prg{v'~c*C*\` }rZLmnϽ2AQbjFR xWsojVJX@:9p)ǯ!ŹP=s[ ɣYg ]d꿮3Ȇ J=IEy^{ՋZ3I@e9fLC~5pyZE8nOe0өjM=Du`-{ *hKu6wOoP\+nw8X 9Ak= $AN`)`ik*ChzuΊ?n2fvHP;}҈Jj"3?=R ĎbRǒ EnMb{Li*aR=v83YJ찪kO{F%) xτ2H{yΜD]>uKI3 ׾\ߌ^ʔGǟBF-73ntl*w14qKtc$(ؽGjhȌCHu)ch1IpcA5+~,4z8ȩ:6+E+ȔiAo墸]l)(Tyb0& S׈-)BC!XvOXT/i^a"-x^f>><(֪geԷTEh& S4Ԥz:vpQ씴?G}?.&[Rls=p(O_38/k` .,/QoQnVWWA*-ʽrf]j```hdM/*wӌM㮷)^T]XD'^ڵZbƨR)$O<2ꑋ-'ɻ>AB4^Ѻ ޑï)ߒt!Gn6vA+/AX88L'_;jՙ;~ȸCWP ޢ.H~g k;yx4)K|-9USU8vN T4{\B}`Y p' Vvx.kY0_cd[p:-.'4KN)IqG/JK$DwߢfKQz)S;ej$;n^NDG;%5v\a.< &qwH&0 ~Q} |j$">7Eru Zך>Ÿ¡? ]WljfycPY;)X +4lSlS#kӆiD65kq1 eN<ժۚE&tAI@Elr, '`KsZ+8-߬ Jm7XE5=={_^#"*\ g6dO909+Gjq!,'c2OM˧R rH>6JuNvvMӛHwFۺR`4)ix;$ Qկ -\,z'.-[E VĎ[3 bh.'lOg UZN.e97[i"+NѕL -|$X,ŷp/9#,4d?͠&NiqK=5> 8b#Id*ʻ_pr!:8jz<< eѰ@c7uk0=HzjGC6&j3z@bY1F.#u#1║P&J ;U8l܉Mw~D(5f> 孝fh]ҫ{-R$4qY+v/= *% @ # S)Cb*"wVi)aH56&o :SrUg'+Xp%ӳkosEꄩ-U ^:1}H3PTklҊ\ږӄŬ+# 1UVZg]:Y9[a6jSXjkղ%";ar)ч."gJأ+>E닕R7I [wUҶ(R~ev~FddA슒$Tn@c,ٿw2y~Id'SPM@+HJEJ3pmSŨ<ҐDd IDAT#eTq͚~\Ԅ^\H< e6>aƇFlX3iezl]5e5&xW+ȈJn"e u:NH,.hkoEcan34T*jiR35#dYaHKsν?81%?ۛ dk#;Lͧ!كt;Ajn% !k]1Yr eȄa[c&lPoˡbƉaS57@tcACA dy5_U]sƄX'-LjȖ@/HXjB"7.Rv{o 455> oJEΘY%g.Xq?1~LUv覞S.#G@ <%{7-챶bދ:ɹM_HOuo5beBhh{t_ҼQT%oJ|5=5-Y.2=;(!nS%cX$ WNY{ڰ#aN)ȈO{ܽ\(6Ǿ>QZJ{\plnc''}U>{u+Wh9WWiZPGW|NmR^**=Ϻ_#FiV.O"w-p9§"~z/ѥZlun>MFhoՕ wTݽ ^ړŃbd6s+NB@˯&3'Yu0`:(,/4@J1A.Br$oK m?wGjȎpFC`vr<+*R_}^]%ws۶mق9(Ŕ8|emէwZ3|n2] NFBB؁dxbBk[*$U(fˮ KIzkO !voEx(UhT5n [n8ܒ¬1^ jP@2 x[4dPFf*>-9ۯr)u͎j`2>z˘;Ȅ__sc ;g fK(fj$uH*|iN1#,Pԥbzwͺ#-ұȭ_OJ]!5%muZ}ףּr2|އπ (K}BizM$XPVݥ.C̋=V":G)O^M{S.YsCVľA.L cƺh8itcn` @`ղ_NP^XEh6v'd @r"C*B*Ħ ^NS4ҳȈ"M5ύIw^aaIv .+. 0I{u[T_+F0 ON ʑ_u_ kߍ62`J:fE@&*X^RmlAN3J{A_]jtPJX ˊ)U%*5uC+(]G|qigYp} =}Ԙ2VGYc÷ViҎ||Lme|IZsz!~SԾsB!0a˅ӣm{,X*d$NÂׄNbS dwia \jRl5-d',yoy+,I.֐Qa Lpa~s1\5{iuӔAÇP bݲd3P+ʶ[m}rA 7(Z2wRYX ǯEΤҾ(I{H]ҞGK91]@q>̭tZvkZ:]t+V NZ$y:$:p)*{S4;=Kr0 ό6t 5ХnJJb[5PN`y\mݛFAϿR8i/V8el3.`cN-/*Y6^HԉY\~^F:.yvbvns )[28.N95/ݴZ 6{~ϻl'&ݘ8^N]WNUHlJRE9=P(1Ҹdo|LYkj7t jI//{9O#$y$ɥoLDR>\tZfCjι!g:mhz#`D'4$z,x~&K3N%.r -Sfm]߾8>QO-gqn?.#8ts~{]_Ƌ: /yuX[v)6x(̼t,%RM ιąnZeYJ,uTE)>T:_kȵۚ[XzO bL?ߴg|kGC}A" insvNAYk6f MEC:HWVm6+l#T4/.,֙lN^e{nN4^ b{& vUR”@N@v\ؠk$u6%ru&d/b_`^F{j1MR\}cS/eێR.oHԺjpvnb+~߶Pz,ն\ؑFceknߤ|fP,7-ʔj:s\z`uVkVYYenuhQ裦4#SO/JܛGwYZ~NDȚ=HT/H+ @3TS8SzWriq:(vwśZ (;匕n|PwwoMFl Ru"b}Ⱦ;ka'y>\iȨNU!VɎ\A&l+، P!Hvt X??^^q_Jaӄnxn.O؟X/yabh!UUrdV֕~:(_&xMkT60谱%$ KXm3{T,q$֝=&sav00^$\}sVG:d9",n][AxT4<<+U_qj,B;d@Sņ\> -9D)x+#%6(GSl NKPV0ǡJ^u;Nxț:I~& z /_ֵSfL\QjSr9Š}̝294?Q/tg%!hc6(3X7؃4gAhnS& s(]YC%Չ[`=\U`,Zu(+P:I({.ɱU۾%G)*'+[_Hrog#HO\bυ㾛 Yk|q5$-ꕴ@-]g7Aخ0btm1G0TN N>JmFXHRu?}\ {TIQ5L:ec.+z0H=_mﺲ1kXJR(B{pD~ǺXJ5dge~ip=2wwNQTf-9V9mˣ͝E-'#\ߛ^N{sk8,t߶$njK:ð&z31 uM3/o{u,],~coJ{1dVfI2갽*220O;[x%\,.%+(#C|zLyy|u@:cvȯt{v9/{mf}>gf} qQ)tKuM'@D2ݨhvƭڍ!JlaNӂ$KcuF/#hJuS!ٞ`,)9:c!/r1v)ͽWFDPi'`YһYSkRXy7HKfRex 8& ϡw촤vBQeWTNi>-Hј#l(?Vc8X'd0%+-*:ẐR 悁HڧH_Qߕo`$u]iv#1PWb,qodQȬ=oZzzT|=0^/}䨻[,_kᮀddB o X?o*\P\mM_ψs@ Rssdp\(vYKp}MUʌHcJ,#XstV0c\#ѧVʞI@>e12C wlo"K3cln0Z"_+v7&wnt||PrErpV`@ .-3 v)2>{fT 5SYnyɡ1X.Lޥ!P_2=i;h.縼&rP5$*҆%}x _ UISa.=0 #~%Oӗ&xmns ${X# *jTԡ3Vo0dyW! @UYȋ`<0ҋ>\?"f=(V gqlE>WtphR9L8bw820խ'ɜ.!Y y"xm[ی'3KAkY c?[Ōwԋ, TXkD﨤^hVI6Ԭj7-$-?lo6y׀~.kk]A')4LQ=v,#Iܶ˧;S00v ЎDrC\Jb>vF~ |lg;߱8KM|yp1ˌ-}uc|gԯnLXAYC9G%O?K@ևw0`]p S+ $UaK~EB}GAJl'I5yG2[Kb?гLW`ImVsI,;@Ւ;" Eh0\[r)3 (3sgjw|I}5j5~HZG0:>wxv\Bܓ)}(OڤEy7cHZ~& @[6=Oϝ󠜨])"]ο+&98Չ[Ƚ*QY3^B\rLm<}zޫmEMFҺ22 fԠƊpe ,y;1Z?Eױp2=-F~h~'k!|Xv@k!$:EL tz:ҐQXk gŚ~es9M UGbANJ{O4F!  Ø%-)22J-݌d4d.ub×?-O xxVZ;8+jCh2Bx c;+}O3M7<x\!̨dʕ]hO~s*@ZXS 1x~ڧ_C5-eΰd@?aԺF^Fv6kJ2=Жx@F&!Qj'iNvFwc@ ݴ"b#i eP\RXVLN%I0MMLQYKHa_C3cs _K]HN,5u_pqD1 c=V_65Ÿ>JDᇁA雒`K52I+ 'ۏ>p_*]3”IաIc9Wqo n.Ty7#]AdP~ZtrMbEscR祗L'Ф2t/IG]/(+@"٤2uʧ+#qYa);ߞAp22A9{ C:u1$󟅶LXL~MX,Lc~Κ]7Q% *'noa$ܞ?g T۽ 8Q:ЏDce0L3}㣂@$y{ʹtT/121PwgY 8ԟ|!x4b+&Ǝ I4Q鎮NF(nF$ KklxlauXqſb.9y x=?.P XF【>lƂ$?t94Zշr車LVxg[QRd-vO9xqy뀵;x

zEU@5sA0r?%@orTyhuhag%h;mƩH%F/E#OKŤ;A<%&oRnv l޸Tύ-Ojҽ$`%!eHFS |:h1BF)=wݴoͽOѮHCfi6PFsn_-4/)?BCbpQ1,؁v5/ cxT=Y/AN&owX+<vK WD7i}3ZFjwF~1`n11a}B$ l m 1aP}G?y-/WN_Of0qʄ,Ns3Ƭs*")0HdŰYR#E,**R @"3x[rezxꗐHVa(Ȱecn2>#.[Bjzwf-FȒdir9LOq*G;!3c ƃjv+BhT(yYPeƥ˕xCגqr//7$ ;1?ˆ1#_ Ӱ֢hA&^@jߢd ued-E/p遂A2!aM@ݵV`>yk-~5Pn\fZh?nw2U:I!8dg]hiKTQk'VMU.ۤbR#FȒhRs,e[]lwuU{Bq,L bu@ 4c|RﭖJ Y-LԩW=pE){c5,]}:˳nr};-rQ4}oJ'ҨaxA mM"9  oVfh0T%`q w5&;^Z@L)z_gz38˺tJ">ƶ8O}m'gWonڥ :)e_S^4~e `ь3EϿ 2Fg<4t)TY{Zc:-( d6fYW%j"& [&'9556iKzYv@d Ov=@* gܶcWq(ǝ'<8v ŰJ؁iT 6y5<Ӈ+zOk>sRZЉ{#OМ )ɨ|YR@:nR.9U*5fFh5g_ԹU+?u$?G5ݎdjC]m1q}qwJyG U+/?n?Cᕷ0b,9f0>*8gG.:} s[٫@ ü}O}xVwZuXi ͳPZgy)+؁ Ȇ{bN6痩Dh7guA} AGEpgOncF=?G@k$%w4ܥ0jQ^M@r5,~,$է?2yX\2kS71B\\Z1\/1HJYa2.tG=٫nReuO#-8 y1KKӻ#,rH]WV;(}/Y2Źf9eg#axҳ[{rlmjOQ0Ga{#/z86u˒:MB7}f}ߔ[;MylU)㍝[]2^JJzw&:$n^%K+`z:[.ṱoTeIB0k i~(v4ed'Kj*gX^˜N`Xx~/P}u9N`#H4TWA5D~.\#<{nfu7>$eyDul_8eo,}DO -G|/TϥQMuXyIBQ؞T&Sru:RX_ C5>⟣A^zxyԑqD(}3#to--SC5Y !ul1M<&W`!VD#=lEf!TPί[:iȐ.w ˹L?geL\{ Y[ލ^~~v;zF.#v,ss)#;t xZ~)JpWCy]^:ĉ|J ~=t`ǩ3P͵>&֧+wYxzY=`cОR'}\1ֶ_|oRg^nl*Ε) YyYYjLN5Dx%>GN+t7Lȹj-OQ 9iZC0w)H:$6w"8`F7su&#Zl䙫ýY.lzOVQ`/`Q\>.G'TYPLJ"/ekx-b%?Yti|F1ôr%*go<*zjǚQ'P鷞Wk5EOү'L]#D %Z^RdKs?\2 ScbfL ^8CrX!@X Kc_(^>q㠉|ۃ{\deR\v!Ro,OGk=Ǧ5g6<9^ԋ6TR0.9?0gx]?BݘW:V&anTsGS#BeW)}Q_4UD2#qS܎svC;Bavz-~/B5KCƻ` 1^8cA@) Yk;cE?M6*v偾M:n0}"^M[xrX;*p ZN:uSVŝKt0vGl22W5Fu-GVX&}nQ>SQ[;*²DS|PU_b.ŬJSy̺9?Y=È>qRPu?RS gVz4(ndfN @<dS0E؅@CѻE?x٭лON}q@XivxT?QL8DG'IoTs?[cuWV'XW㻦RO Ɠ,$wB5hxkuayFSbɇ,RGoLZ9ӏ޳MOTQeWv[u<|Ց2$]w_^bdd~ wY*jaiÆ R="q)u/ncޱ?S};k]r@:ŠX}MKne|)v*K5X7}v*".akg'=Hű{P4dT]:X:jяf(*:"FY2 JE|I):}9}(  .Ԑ]_i)="-fꍼs_NK]ZԉqS'j_?_&*׻ɼ^.K秏 (%lϓG(6hw!s3n/ dCH]i=68'%՟)F0jWnDK|WV1ND6Pd^{{}̿8ȴnFJ=W11VfNUmUz뷏&i=;j yz^Y\R_uӾcN ?x2; #DĚv->ا}'ÏE}3uo1x=9)mk!2#X ){KUN}Meh\-5WcKj53+X+?QNsETjQ !J $~ب{(LjrⶖW#oڵ˵R|)˩9]7# X- Kmy}|f]l\jY~\9`AIEFqi嵏\:^F?! Glc -Y0M8{3bڡ4uD2)-nEK1bTlAzO-jE Χ:6Kj ,X0XZ?(v0 sf=7W?AgZ1#A$ R}oۣ6fbVFb'p6R~Ի7` Ks}Wux3-gH?SF{DduR^Rj .#Kt#kȢP5+PקfY=KT4d]]v{@O.a^Voq'JbK'Q&~u Y]&%wL}r J]teVӚT=̽dR-CweT|v2+P" ^QSg~8 ٰޱMZƸei Fb>>Hr5m9Gt6= 63^vP (#l?j=~ů)Nu*auX ֣.׸Q&Ӣ{./CtG$4n{Р)TD\U8=*Vrzݕ.|;y]R3bk@lJ]ɵP=L=É֐-VgxQQMϲ$Vr~uM]Z}N|5V{M+lx 7{U)GXQH3VyIncž}]{2J2 ,"S=RXX< dEplƢkSfS5kܞ],J_u*YN&PgT+ɃSϠ-mq/|U~29f 3WX*upFt\ bg9d;(UtNWUzɶ‹9Ri6VѶy/ޥIfY ƉoudO:M!fGV?Y'g~fR2(Z(ܣt7j3-^fݘ@)ӣ0.csLO vW/}pd1e%Sc &~}'*JF$7W]P y%^܋z,zڏV9Jc׬;[S6 +T%u@- {Wewuq,TB~Sv Ү[j$NՃA(1o'v0w"c|a^pPN^A xNg94g '4yx8;foTT8@5weW>$TJ(PW>MP_DP$ai?.7V܇ c!}.٩P?.\TM?=K!;tpN"sjֆ|/5!Sb̙=LV(\t0ݬl F4e '4vh-Ћ"Km `E|`(#R˜=-9.Ӡ7rJ3LNz?Pq&u ٶJNG n~ғ3 2FCN{>wK4?㽟^&r.$_g:kL-3ީJr_X{h/Etηm I{1RE~B<t'Uo`/MZ 105+u bVЏkP|I/i-ќ$~xD^(a*܂|جhj!֌m~~}gQ]K.GQˆn-6X(Y~ ŕw`]o*MHi_m`DA`~ul1ΟH˴"UHϲa!S\_hYu~BF["9]̢N]' 3b6q"xŅ,DǢ|a,[XmuǮq!h'ST4Xv;Sdž[2nh'PkЃ EM J#nuᅞrfh?U\03Lƃ&6a]=b|U fi,~T"Y-u86L9fʛͺb=#Og acFG]av& m .LZ{]#r:*+d1YECf'GҥqͤcjwEV,\KD܂5dmfvuD3(Ztc 2o`-O0x22ugePNj 決=Jπq_E$|gݸͲOj1~7nyZ#S)1z\klYnoWJϸR3ۄ:|,5RMŴ3tլH+xiSKE!P'6 44aX7ȼa.lB?znηò/:$~nw8[5G{RiвQƟkxԒS2L >$OrãYJmK=_RCE F7Ґqt22LkzLkxS6JUzPEDۑJ"IoGMz ؇΃ 6WMRؖcpjSdCS=62uF< ˝* k9",=o|eb#?uUݕPѐiu]cxwg3+?u)ӸQz֒jၩGHn}nWU#.' 6xדڞ/n8rd3\ I0]W~I,=OCY|[֯0,c#auYZ6v@?8 ưoٻWj+u} -u!)fuک8yC d;I|z*^}}?侳c#l~SPΤ{K)9'}$ cNȢ좩 `H0yDP#[Zȏ[Z+ԯst_3B!Wyw0" $Dz*-/R6T 8iVw\L=_-Ö >KѴ wQQWR:E* MaxKďr0M,9g ]%SU TfNB_*d25F=k@/IPknPuC+šzESaHԍ T0nUq#,}UJ1-kVWtvR ںBT.j|&%&|F6ni%' >Sa$2faRlTEIy!;z#8UYЗׇOc(57`G˥yqeJZJ}ՔݪSE^qۻz!Tl_12ӏu+q/=U\WdrXT͒eUq{V4|Ks%INMOoU. %QE\`%cmcY+=Kxζ*DŽS3y Ti߾g%  CFRX r_Ԑ.jܒ]֕ZR=RkGr ]^F7HX\&}#׮hl:S, Z)#VלFSRxQSU3KI֢;fW\ 7Tq͉H)<`u6Ωʋqݍ]q^b*dڴi%?1FB%;UY#1ˣqԈyl0{j .̲mkνTШjGK,N=S)}{Ter|[ J7fr2L% kפ"쁗l} a>z|L/9>: uvoM9O#[h[L?Bc S<4ZKH.W>O,JHZlSwv~"Ohz/)vS$d ޽D}D9iIߣb:DfAn6n;90k*X*ﻈS8gsOԣ=<ْ0?eR@M˭r q]T 4=<aa4 1ՑuIn{DV;TMc 4ܗPWgI&F@sEpp%iLJevz,u_j)A"O?SD>~Z␅lUP|RI\GqO5 ɹ->kbx||pzB|]\Iu+{B|,JByK=8Mz"ȫRGIPRTG2<czH,=t=IX߯B\6਍JR͙\+ ߅.cOϔK#R-#,;QZ%!F8rgNeRϴ!0,JX$ೊѓx5 1CZ-}wRCOz]sW ˢ>9K]C9Hhiu Qa{Z$No!j-dӹ ?vp|+;.aҶ)5RT'Z3"_^ux]`Ƈ`!2TnKO}#|hqU,9+D\d-:֚TtC#IA Yp=b.H;;q;zBxۡ1qa nBid"g!LὋѓ  x AB1noO>I9,ҲGqnR?fV'eMSX7ObUqˢ,ST-,u.Y[=6jՠ!d S`A ) : ~BlܳtG4y X~iRSN?|jNRM^ W߬Y-fWBЭ>Soa~bAr^?#F^>x-`<FZ UxU_X6z +h㢁v{uߏi#6dUeуeWߒiS%>+#wgܯ n:KNj5ٔ;;RQH`Q>}մ3֬Q@2gT)RVf22fC@K*]HXn(r^bOd{?v %m3Ϡ(M==l1IELqմ&91n-T05  o(}N[~͋K@8qKuHvBa>O9|qSE3/Ih? Ûb|͝AXN[#mɽ/}׷*BvEvh|E=i#,5ǁC躗\0}on32yc7%4uIghr V8tFroTE$J) 1GrM,shKkyZ<5~e (l9l%6X{6:1 @5]1ualZ{T`!)w$ATKiΈtѷgn1(q*M"jUQdJo^/,ͽEBJG~Q\)/.0k\4I jK0޴`hL7'CAWa?L303*zg53`FE-dn"٦*.z}}QN^($Vl Aÿ{nS߫p)5CV>טqqq[9;g{o/o G*UZk4p1L*0[gƾߩ;?ay>~5j)Hxȇha|%zΥX9&#c;D(#IyIA_/{&"KFZz?HT)ZEru`% o!c UD p[d7fx r.zͨ3 )RJ&(i6@)ՙfB8mKԋMRd&Q̅/7t6s%Yd-N՘=SYfnW-> k<3";_J[_\)N! >pGY"ՍNVHeky/0ǵO!YTDu@MN \'F~D.ӫfzC(n͚RH0KRY,(@;c6`]SPǭ 9-Y߾֌6!c ;^R[XJͳ%IWk/(W1p ȺLgB᪅08(CF3Z15ѿn˷: #tr.FK;t=`#89.#lﻗM%~m3-c&d>WlBuu% !\7pqtidAr ٬KI #6Jcc*-yQWҾ+$d|"( 4{EUJ2/DImC>;0ҳ+,;? 3ٵ䢍͒3K(#d\ng /rvvMLgz Fkg ?1+}'Fˆw(4;tgrnw.ڗVoDuTѐclSNR<dŞ;4MUjz`Ju82~3 E헝BFC[0X8d ?i-=?kxOo?5c)yddK,}0-AԱu'4dYF{}yNn|ΞkͻwYDK/^Y\]BzpSX3Rn7]+#x4>~p `#sJ/=w)F,n4 ƛ U[qsIk3k1;vKȔcּE0>DܣQWbYWՙH] #x2T>\pMiBۑV4F>-׮e/R?p `vv\Wb!-u\F"8W%J~ ;@RbSɎ|},9%_PM~ÕTGwfaA1quf6٢o !3Xvr).! `8h@/_lZE|܊h>_??iԐ~Rϻɣub彵pvon8 ?CɃ#D;?6' ȘW3tTٍ^ x\tQ"0B?Z[jl⮛&Fֶ,`$ uD_ܗh 5aym(TY#c xYþ1J5dGޞiJ__{M𙤒tP4zL.6 Pr$uь ާ+kHL)%22I !y[RdwU] 4h\ '@-5E#h`0x`&N e- ٸn\m_l!'\mG 2BkUG4⨔7*%Wwynu,OQ"QZw t(wgU,e-֒aȲ+w*gVJa@,=w*S4 N{uta-{ wE P ,vLtz==Vnvoݯ?Hp%gHbL < B+W'%!"/#+zP,7J8=?Kdx|#F Qԁ:-%0ˊ'!dE3ȠJֳu)h=Hw{q?%d$e,i0LE ϻ,y{$0NC =(>!}BOu[;01XEuggXy%$tr;M?.%*>2aT~Y:4lկgW*Mxk$uL @Vwi{jۏŒ~~nk?q)Zt.96`LYov?c"Goa$^t٢7Z1c5[b,XkOw=sdd])~e&QeQ 2&]dTII\3K~ڭCt: ؀b NTV;n׃Rc| "Y]nsR{bly/cI{F#rNHx1 *azDt8J$6QE`ڎMXO:*۳kk댄;)8J*)h ˿^tіj?JVzd֫ӷdJzjjH2a'/>vXuA-$Xd72ea33_n#@#3 @ Eq Zp[8p&caK8\Ou~g*b*3!caHtUHɶM1x̓}`08b--<(eD}H3J!:~S+ s)!>$%mjϺ ~vNj/TxԊvddŸ{aӊm6u\kPA%)b^ׯV<̞r;|{7HdtX9`ط ˑא=ybOZ>Ma:N@Şy w5uei)Hؾ&=SZRWDzAeЫafu'\rަ^ӻMkLۢ[KR,K*Eͥi___3x-ˬ$嘜c"\T8x*Hqnbt"!HH'eoqDVTѪmnj!ч,JQw$G'xPoR[םӍ&"IN 0B¬2祱QY!T?#MR *Ezn`v272(9H^͈sbM(S]CIEi<'<:|RsQ%rqXSbf#ԡ24<W]33 MJ~Dώ./?x7>3)*[&]W?IpA0;/jh`3³V#1\݈S2V(O:gI/^d>t<,\&"Se:سr!=uKCI #J5̖0`:EtK)n89YN1 !j{FMukmX=,Z8,AE(|$^\@ܭK"kK+y}buEol+tU>8Gy]ÏxBp{:ſ/[(=%a= iZ|O]* "Ԛ A.]^~t%OGeZө})x[?{DUaVK{\* GN5r݌Q7x2ꨅۅ*ޅZ0&_xT  k -L^}ygv=bn{i]iĮ{-#5nU#lnxj9i|xE^QǞg8M`T\F'\0&w!<" ld̔1F}77y xlԻg| !p' n(Fۼ_Vr MژRur@DHe$(t_r"уT:0.ԩN9S'@kO7fN+2xxP7Y-hqCZ2[J'X/ª j3]]>vxNÌ@S_a<LQ nqxN=*~Fh3-d†Ch0:Q wSxeM\Y[ 3ZH1{Ps.HF@;4א!8NlETFG~S5#m9x)ْKErvZE=`S.lB:_s Fɨg -mzUf ޅ|!]rXѪ*CYOm2Mo v`א1(WO3H8.ylJ6,c- Hƒ.`3a9>[{^k RlRq݈PL_CR;֘Di^F qΧ|?N[|:ܷV-J`Ɍ;>}fEC^`3%G~uJP1<}n1"sk';fBK,ʃ1JKO"fWRSdUR#,'"$Bin[(~pLMw"zV3o@6 IDAT@ ^Cڹ:Rf_R# 7eFp+5<։D=Vf> P .Cξ Ȟ-w |O/8AS{xr#bQO>:hx2/s0:ۀ z,oUD_j=u*٬h-Q﷤4v7(?i8~T zWg1UACVq%' @fAS,x/͂wR}%ClUF"OGF֖HF/F%(돰Rx--fMy q~Lz#?= OfxT- LBY ! ?~sѱ0}8w:".H\k~j8zE =DlAf2z4F 3l ͊ &0 Hp#Яaih(JNy,)[8IipLqƔ4Wqsecty[dt,׷| [4WLգc#fMٳU"iA7]/-.2Q{Y:8\,CZ`|KwWB6h79#0O]v90~:0n8cFMK;[IEC6sNIKnxJG@ǵ`o7E $`zOFR`f`+U,ѐ6uflirc먢-M@,l;oWtJ]lf'w}N9hYcbo\[@ONwL1߉ozCWLWk~2~UtjR~Y]5C)km̱|SVǟk|1 ۫m54^aW/b2@o8T A#&i:˝p.c)Q˶Zgz>YgoY#D@W\3OS1pyQLNyZ럘f{nkC8$ 1EoVLY/60%>QTzbU1X^! [zCmޣ,&;0L!a7f'̬J ^E?_ )Ϳk^=?aÜ^s~3j-(n#A՝[,}X;MBֶ!b:E1%-iUw8)5EJ\mOP4XHaiQ,8HڅJZ[в$X{ ;ߋz]vma:T&"`-կ5.)חOu~% DEZ}Y=\%VKj wzzDrͫ| ÍbvW>* q:';[|Ll!Q}PM*rLEBL!*C^ 썅hj}0 D?35I1U[\{W[۞OQM"~D?!]חg)5+7pIi`SCR#rY9WL#rkAaԢ.~R[|ӘHԠv謯h_Z =D[V\w `̾pu [ޑY2W<,KRzd._I mj.0s7{ nKCm*|ƯگJwAq|dCH稸P!_n8ӯ8S&{ԎjnOOPţ \_b8n*3.c?ִ I8I_+Dab1}Lt,sMil&Zh~B i=˰]d޴?rJJt-_)A?m=@wJ2ԱAKC:n]mvCT=f}z£pWv|( gcSCIRTX@,r;axBgPܫQFC^Zzk*nw륱Wߞʶ}en)\朅;Sʹʊ yܟ%\`V~`:` HC Nɻl7e~4G%V1tys;kO7ӘlD#a`'xL|&4,F e7@0h>1yfD~}uCf`4y"^bOجؗ%q;h^;֊QTN]I/ckuV2Q֘|^%` xoз%ЉF܎ɞ`KZ;+sK|f\7 13'ZYJ)!Zvq+$lTߜ7Qh *ɜ2I I}W^O=08uKx\:۳qCSĮ'xD): ;{.hY7gb?Gƒ?GTJH*K(G~_M^%B]/AžgTw7 D 7YEx&lsQSm ƜK#2݊DܱDC69C|EA⌝k(Ӌ! Έ<mFl< չ@t<aQ.Ҳ35ynZSdJ\:?EWxYQr֨Ε/ gD*֏,xx&tPyz{$.XFxdkto"dj*{8xF6>ky^.~"-T(B11 >L8YKk{Z|Gޚk ^]uN^@n]gp@͠Fj;5EQQezFh$|Oki d*ϊD41+Η&9nNxL4suƴb-!DG1SQFfC7q8Im*L!`:D o:it,Li=NS,!j*G;BLf {r>O'Xa"9 U`!fYBCv%ߕr,c70LNv+:}DPKSubz6M5g&”\g]/׫\ҵ*yVM%+ҺjG ,ъSJF vݾ teNᱲFT4KtKdrSX=zH Rp7<)T'CZ rwF@u$0*(ւJTg"sO%KEcuIΌ[o UKcw_iYjS+:bD 5-յ TlA IDAT͈kL@R5ZB1@XȰPCP둹Ѹ$tpEZ׶rjYm-{ [S|G .EuhF&#ID̳ c}A*V x <9ꕺ ](OXd4d]mΒ_˛)|ޟwlZ_ IuPݛ%Gg fj,0[։NnQS5&h69|ΔfV-'ܖ bXZsu5 #,押- j S mHsaP*lMdĭvzvL ;UC3TPz<><هpB, 0}|M޴]l Ѯe|moZWo'=id~0%h,yP#îٮ; B?.m) kp07 fwm^2)qfS*J=2)L9%O%;L'v{1[k jU֕<k ^T*#V1VK /ء,4s`uJUT!…v γ`,=j8i)O\QCo?Rd.Kzs)w@yۑU*zԡ^E/x_5Z"N)KXusZP~~ua P`/ h' u,bLVȊ; WGyZt4OQ+"SI=+nq7jItOJDWڝhЭadWQ!sy 6@gB $3ւb0K'L-pl%lIhLڞHeZ\ XmՏk"٦=iK]uBM1_"rw8Vkڟ=dk E-M*##sf|OpG>SԷѐugS] bʩLe`:)3~_x2N;Yzlf ԫ#t"=|qATĵ21AcZ2U)2ۣ!K(#{gOjnq}В$K}ak7~spH(226–v!NBj9**N0R?Q6"*s132|ʀVG# uW/{YNEG6x涫RʪO#_h@Y9ǧgNyy_Ht[B j7=$+& RuΡQcz15Ԏbmc'jzF5;9ɣϨs;2x CR5dEkp!dЭҜM'B5}9[P[{bzQWRިU]O&?Mb 'aۘd]6.ߧuQ[(ήS*@K0*F_~ ZV'iK#1 k&!1ş[ywl vx 1})+R΁q}%:co1.x`vM;I&TLiz{Lou-Xi܃χАKܓz˽1t%50u^.ǯrҧkRKsWJjD_eBp(ۻvU LBDlR$)6|=|Zo\R}Z.̓ˋL~cT95S^.E9 ,7en2v'/4^PٻwyzJopC֞^nL=ez|2ݫźw;-ɐ=ڃhZ_zp_C9/Yѵ3 "L7KwiѽgbofbG{g _6] ƋXJ.%7#|Xt;NimcOŗy }U "PhptJ65+Wp.fg캚*,X,.a74X-񕥥 j.dmk%b׏x\qv@5W܈?1KҚmsi"|gxc]yة(D8 C[Wy+jU*[AC8 [9iדYh6Wt5yO70Rc[u +~'p}}0~sa#pcpR"#͔w> f`mOwI U=9_qcErpz\+Zjz[joK"Dm>ҥ,Oh)}" .^HwI׫ts*oW e893Jg̝VY2L+?)Xn%v 7$͹ื&p%hM. EHS7R< ;o.tv#(X Y{Łc>E^+r0;W^3Ctű!R'4mnat Ѫ+͎ҟ'(Z%(eKsg3{ t)[IEs}갶#%,pKٯчW>U=3]^$}5diJ`kOV7ԣګ xͬW-Eg]7u]5?jd}ԁm kosgc_e̾`3yYnnpk+GR綜+Ĕӈ4j~0p Kl,󚝩S]d}fȺngO>޲H̫mޯ__j+}=K/%Vޫ^'r>@Aƴh@nM64X^a|yãhHy"(a9_[TxODOe{ V*ܯ}tW~[$?NGt/}G{f%Wϥ 1\*8vSë(pY\6қ2,S )')P@15Z-`&@UM4yǓ흏fT(xݐOՔG?~^IA[6}2M}_~ Y/Uhm}矆56R?CȲ܀J/ nM8w{bϕi+rsråT\QF} %~M?@}{珲g mm*?Ӄ;% KW¥ w: of"9ucd1O^)yϥb'~ڈvim v޼v5&? gv?Ӈ "5;L} }5`nz7O۽[avP`b^ 8&$.ZZn~PƓ ^i44eK0Hiů%#7{v.c7:AvJ`oK=go@gJlYcluRܼLݑ'݉P ̾!+^ҋ=ۧ]KuSKҳK2!M HuˁheLg]}:#Ku|z}m~{WXY@< y㿟f|gӒ?ӿJ/"<)}<׆+#oWl7$]:18ܒJֵSF=0=u~ڶTYjGy]W\-m-bG=#Cq&@֥5fWob^;`JWY'j9'.֐<(\Z5zіMPx _K1f*=Vo1^2f;y‘"Ş[Xj}}ɢ|,?84-##KgζNfo~HLf u{B|37= =|@nث'$g {aMQ?F6{<^I7 mWh\[qg/?bKc[pm,q- F|؝%,$#=5_A&qFR^?<ח_{z׉}KfKSigMJ[V_.SQl,D8YN@F 5]뤚yzɛQoL$/,gysNl>˝ Z!ge!.Mch!~\*pHV{\g^vn3cNʾ/: [Eu&WbfjN 6 < HRm֘.gޝ+yᵻ9NJ9A~͙!kWeie -^yxL+ZV±[@!t;||;l"dʞɇ@s hִW*6}L'%[lqdI RjHl%2dgpLyYSۛ 2¦dqJBHP&;*傴A; FM2Jx氚^4+kVQ4K1|fҷFz,ek'UX/W:ew;[DZug7=J] ^yS2I7k*HCd~|^^X ~gԤ@+81"*3OJ+:tpd.Q/8>X:ciHAҕmk4_f&xi(}_^]b)쮺Jonl Fx+*TΑ }/\%Vլ)ԩfz Y/g;9Zs|qymc)=֙%ާ|ť AX0Hg، MD9yb:e?}+z/* مQ:=\R8/o5I+.6x],Cfn>^>nlx>4bQl3C̠+8{ #VE]7m2s&V,$,W_}K߻F;R QF_ Kj@Fy.9zfaORΒ7'Nl4ќ|~<~5cWg@`*\>E*PKGgme_G}f}$2W|X Jӡ2dRn\,֢\G4Cȸ1׼ȹltcgx$y#ͤS~ѴZ]Vvm-]GQ3x>burآ56Sʪ-q5cK+zm7=7\[DzJsoLbm>xr_"Crn)R32+Uh}ŒSf/A/ew쫱-ǢW~Gu]l33Æ5RUFz n5:\K[i?|/{L oz%6 ,iC~-Cǖ?zӡ~94ki-O G9}}H(\Jl11ԕљaŮϥjȞ\RɅ [wqh2z"7 ,P_[OPg>,dyjEݦ6ҁʦ7-3[N񵚧JO-%gNvvimaSti}z0h`]͚U+ý`II-{92y]|B]ˮ]5ܥ"Ls2g-TiWA3-jÖYoS"w\#6c3rmF:s.'n.F#Y5z84qx$ٓ{ED.̊^g4Q1օSoa5}2>kr5Kw>w/}7M7٭J:p=Z-=^7h??.vxƵަ1K9YYnUr!k536F6mk'=A9??[w3Gf3{zᱦ;6ov_Mu -u]zM#oq,u4yaU F=5W Z06F5ΝM[^&nMsqW#uHg!Iv/7ef_y4FgO?N&W]҅߫vRZʖ4}PyY:Rhܦi%I2uFFi隸jdރ Jc?xRlޗS~2gtޓ&mۙ6yoX#v)ϧ .+|wWU=Y2[mÿ-F2<,}}o;5{8CFkgzZ~Jw?iBLg2]b8ՕJ8?*a{Vc"8|r.k~!s֗<ωu6_eQ.|DPfsjzOؓ2 r錧pYHPY 1KBX1;ܶ]ښ{tKݻSmC+w+CȆ'dKRva+X9#Y*~']m YⅰtUUdžVFQKRۯPoM$u˝[S-Sc;Ju%fFM?#F)k>1ߓ{,Ҽm\AKy(ZgL1*(C;BZF7ikFkϊ0]rs#T3&dyzt2d흰谀s'u0b fF٘/Dk\ _zӁ? + aE{+ZO>EkmiE7c00xM}edImtm҉v (2g"K| T6ڜ]~A(83{JK%,k2RٗI]Zv68Ik d-LwaO=1& R1$ob~¦{̮&Yb^/yFx3ZYRBq-C6+q߻؅6d!CLnpMg?!;dd+]1Re ieHuufڠݻߕډ]?3E;ʐK\uԣa+18'%" !* \'֥r̓/nReRy 䕫I%.kt_,-;}!\K]f;r+Cb9B}]x}2d\u*c)vuR$%ʖQ%Z`8Zvh3$3]N՚Ȗjꌶ׫T2/Kx3ac loyf9 4-g*`kZ4p@|m=5m;wm{b{έx(ao^hKXN+`Zf_J U7E.?8L_ra?1[q78 F<?YjXwl <8. p]pC6I3Hqy \.\+f<]"{hQc#;뻭vC.ЖfLSNJɱh{g.ˉ-ḿD+'aF%C.bd$z^I9fro! j?a]b_Sb1?I :R%5 nSֵ=sSS?C6캕Dmz04@+";#׌srmd>tAzw#/KhI73lRF(Ꝡi<뫓 1TTHs5t.'%KpvZc 2o6O,*E>Jߋr]/+e7J>kJ8cHo!-4o9)Z[KHQN9΄sd颰TltwsǴF.BT¶ .T3 v(Ձ1FVAR&'@υf* 㳚ao~ ٻ^7>P|/=7@F;zl0T?Z?:*7??>jHHώmę^T/K{hi}ua"z H?]y9$?\A!A(S_~ SA"(EI\ؙ\g;B\|A]Jl*!%p E}j}Kne}ʢWʢ^ȯk_ϴfW˨g"o4c~__ۭpnr-Z 3>^|_,LE4"3(@CQ^e5.ui Cө Jv Ƭ25 Ӝt_C&͌tOTca-ȡK|^:GfOp"ʙ0!Gv,H9V]xL&`1섾:O;}!ҺIBʼѦKXn^Yc먓OF9qǴk90˹)m&gPz+yLF~-cd:ߨͮ9uzzeGME88e$g_&dtșL7-j,=ܝBxw:vpKn??!3M8Io-ן.F:g%)=,SVs&521' ϐ 1CN(IFAkFE4w'hO1^_y,'cRhOP諾1[='=Vԝn#y]WZ+!BVkyo}yn3JgN}W]ɨPjɴ3kogdX4NLy9`{B@P`9hYz{RkOs}ܞczG DwW=®HcS^Q|s:#vXo9{|LkxvODU -5+3ܿ%ǤZp)ٴEe)*JyZ<,oxU^ߟ%s>K@ %3{|(hg0u* a엫^ Y9 =-=5ģx\5WD){ e^u*Ooʍ3E%6áIT0L!&ɺ6RݿhǒOXugkU˱G50sy9ii}Ѻ3knbd2aսO[Ѯx;#EGՇ5$@49)UpRJ 1r5y#4MڝIaav;fmpoK Mp go8ns/?o=3'JvɳT>B Fr?+_^5?+lx(A2l[EzgJmvBFQGm{s,{51_֊(U-& >9*0e:', }\?)ܡ=H '\2…vW=|*1_W7ci2!rv ;ϔ$nVY?+ *Jf*ni.Þu_n!K zU=JT۟)LQJ=*åEg~iMC?UHbn ;_S.MڡFif! Kl~ȧh12jf'q7B.Q-S$۶Z&X/\c:z5Z{7]ԞzXTYu EiGHy̻s՜c꺮.F,Es.>z>qM7 !uxFYONcg9`Nk=ᲚcWh%Ih]6.)@҈loBE"`K31(p98Gi^~)Pircu{{_,ĭ~pt7Ȓ/Ji#,:pl7\mp,g?#Jy,$3>JpZmmƉ:\ >{a' `^ չM9Ótsy WP m}J ]NMG~l%ím0uӫlsYvT~J7%&Kk)ЀvO:p2U;+%T^k]Zz^ށ3D TzfG k 5EhO=㷐lfR~|oG/N7n&,7tfI[Y+8o@Q9zC+{^>=gp2 snzu׫\L1YS{J+ A~ xݍh4߬CPЇ5\ؘ׫oWa;,cҎRn^z> f:z+Cz)y ev=)Lb KKEE7\6G%i\vfd?|cr]Qgg2Y_~lidD&vo'~mq-=6KůXflMfa<5˲}-S%uzs}}4)Z2ڛ:ǂef bee9kOñhp*KceE[:zԒ Ⱦ4;c~aό1$Xa* R #mdz)D8&]Qhs9!e˼Yorᒛ>@vzByWS-p:q}DW OSFғ.31r3liUiDQisao]<3"u-W /+@LKנ4e%LЏFf/!l[ΜϫrNO/Ȗ4OۨBL3]~ߣ'ntoSkJhgEiOT_?mZ SzG}:\1/'?[oqvӁ+m췽K;~):=TC,-m3>=>Sm:iYBsJwisi86oF m 5^_MyeG9muaaY} L-A1 aVT=|:5ig޲oW?4ځd 5l&j uvE+\3G 5,#;|BÎ{, ضKɿV3YL0gFӧWK(5kɲ \ Wʵ?㗔<̽}roֲp5q%*IE} 3Q+he~Cȸ즖^re\v\m iZaDkZuVxt-w~u{/\Low]?;{p3d?9{ٓ;h7$]ʏgLW,&W3k_7^3>͐u@_ȲԹ͘wOCT-3pl=kҟ'%c LSn3):g磟ϯ?K .ɐ{ Ғ~q0K dI-wIX5JQNb%'gº^`\sQATv˝EeTOh;k'}>5oGXBݶB5uJY*=n`Ȑ_ڳCɏ~p:*o% Y^S16Tk/t.c i 8ّ{u]ɂ}h,\*~ON7=2;%SxieȘA F!Ӯ?nz]`gaXs9s;S)~]Tٴl F?]r<0ffE[{xr-w&g5[-5kLS;r<پM=ųt\-GJC8m?/=^c+/a/V:,W3KXzcn$V('%&7Uw-9kz J$sfd]aѬ }4˹ B8˟ />9k5Q&"E6졂M_rN]؅Wŀk W1\!SVj(w2iV$@Zfu3G"M'F2BY/Z/=Cx P#c=PorDu4,%bÃȟZ !!Vr1 'hv/AfO֫Q,㖗dM y+ MAh;l#2 Qy1su'NZUΐu썯!Ȃ#-_f>==vlh4YLRvnRp'HVl)Du'&LK";S ۝i71o#7|LK_}, O(nk>X%NgɎ;,-+X ҌYlieik);ْY(k)?{QkhV yΟ0NhN)Vd;BO# H#%W0ki^C!5hr3Jr|軌]4*s\qs^'NJxѢw|>v,Bc܃ɮc>;sblS^<z#Q͐Ҧ/˰n߫1WsMdȚh$@>`Uʙ@EdHJ.ٚJ\:c+YYC?W+׍ oA;N*ǂnG_·& Жu׫ p3Cnc& RkX3酷vWVX4{r梭:ȱ wBcӱ\ a#:7Ts ܌u',q2 TRdY0My<I:d 5nd~:)C2zBMGmQT6;Ϭe=uVwZZwru+NjOl+Rjl`gD9'%%jBKz ҮFɲ&pI+6XlZ2KY!Oo<'/pO@v@XlIAX2~i&eȀ-UɅZ~Jr%,7˅1[k[KU7 Qp0b꿝%!!3\, 8\zܤuF4^"WMReR\ʳ^_q ʝ\mwO&`A+'q'{S0l"7xf6ʍEkz8BS#~[*X3 UFB]oֹ(Fk! "qp-5LM30)/cЕ5`OKrWNW`[pKvw6el~0ZbFj5KA]ZO$>=DH0\Jިd\+C2=7~uczPGi f/԰ C]g RKXf?а7-ɐ-q!C *Pzr7adJ=|FkaΞʧ6Fmm(6pT-Ok$#WN^K2@i):Oh ?|ƪM5vmvsb.%U4=;:C}Y:rs/O YvN4j9<|p{) ҳyjLINsնtr%,{CX/CvLa_TWFps:iXtr|NQ6\^эiDVMdžD2|Ү^s,1V'H;,]畣QVmhڍ=ǦB@G1ʐy<{X{^Fr7> +3z6ku੬v3d펱v >}k\~pZҥ.YNzzK˼ IDAT[vWj2fKg> *olrfkϏ6UԦGm{q(Cn5m}8V]lGE# :otYI7)o &6xkRno`Xo:D+;St__՘K|z@Zy'RWJݾou`Y5|)۸G&Gy*/JsneẊr Y<`S:{6s+yJ*X`K2x{Po^+5@{?s~0tU gxopf/{eB ΙKS : rwBnpa41=:@֥e"K:`opN{uA!+_rdžiΒ<Lw5=41Mtc =ԁǓdVҨA~XfO^)t7_u"|0 Mm}#}4zÀ)T5CVD뀹qQӠk778HLpO&6e,"wuBCHddviLǶ2QPGzWt/wr7o+{$ rB+r7ApoKt$j'rync^>NߠR^6@vp]i@Wx뷤 6H JafpfYb|4^ƴɑ2ʙb՛{K/ZFu}$lޗ~WqWgsJ qUp*~yjÝ&/6`i˽ȶ3-j׻omfz-֏ XbR8 q Y@N/W s d1ӾӶvՇO\zõ{P]u 7(caU:2!9 ޫxxE,pI,G5rۏfxk89Iú8w=kWLcr6;Ww#f227&1v.2fi>m2^n }[;ӔӮX]i؍/ --ǔDhRVlJhgVl;|Y'-&Xzfdd֮"L1C'ʘm&jo6a|_M.6ZĤj> BX5~'?ogG^_b)kt>M9ϫsq$֙$f>!?kO bn\[+`qxgU:UmԹT,\zcS"vƻ=9~|4)HYȞmЉ!Alޞ߿FB5;WS%z2dDb=*4%| d}J5 }sr#0`2*+]7z!*`t%~Ap/HJGM)ך‡/1S ơdDpF uuOzx,-򂫜<}4Vf/aetf^YFl gؔ2~E`˜f "m_?OzSYQ{O1w]c?a^YK/h9ys,wݽN[w2:5cOvbV{o\뱕z ZP d$16ӛO$D%7qV]_xEmC~>KIj] {ε<5wl𨫇ebTi!%y4|.f`iHA4Y(56;Zj{Q cjŜvu)DQ.,ݒWΌ ڎvY,a҂o n1v.Ѽ G@ }L1n=!u|"ub.՟C]o: ZI cu9f>~.J3hmyUH~,8mU>;+(2BIgD2df)O^yiWs/@&LӖ E_Hƿi4\ijhkZ I}F~Su vv|:Y?˙7\-gj=CA[?kɐA@e:fn?Rn~嫦.y^C,o?<ˎ:gc-{~@֕;ws{RH']syDsJ%W5t7cKzrz'm1ZH+'I$m|tZcVeEǼoE zzy˧.oᝰD#d[Cc#ͅ,7{p)B:#%韖}0l&&ct$jŰhs0%jȳ$x|=CVᙛ#JAf^|Mٌ`vȔ;Յ$2='Шŕu3&]jjL)^"6~x"=ORb%;Nhߐ{!'>5037t> F O t]}a[hd &j^;˽K_).0|FCeq4.~ϕkp|@nDg])nc ˕Z΍ǽ֤cQEʍs F G" ;f/-ǕB%P߹p:6=l'+is-yBw[%Op7o_;f,4ٮ%IR;5_8elx:r8!soa=k[9D; JV9@lRU񯏅?ko@!>j@gOs#@9ޱr]f87OCHFoQWZ>wĕ < yfM;z>חgw2~5sYQSiCȌng/D]M;.k'%ytye4aϕHܕVi%-ا?[Jf0 ~z::{,j|F{98#qW7uS.d{h&k_ gn);p 6}=߽_͝0??ےМݒy|ZeRE_7ݘnu j2&z곝V_PuK͵k7lq;`:u q챽Eɾji=M~Gډߩ@֐uz]u<_ dh x|>߂SڮECNbRZϷ,L{ oU :cZU)^y G2d>e M6́>l.aM*7 oIGdc i"z?^suQ:2 O՜ʓ '$P`q,Aŵt>z $vgh#Yx3iHD]'xNKڵ'=cftRU<~`zP{kS߆j( M\J)a+hNGϷ,z:]i~% =,o,nzf?oT |)xd VaybM{y\L7Ž&g7 Q}r-# O34wpF_7ˬFTy I]<3Ӥ?ɖ_'3XެG?$OtbvFo*F^S/'\yW)e@O~!~|\1l䩖os;q ߾ylcK[4up]s_?>a[yi%:wS1w|ۼ'͔!͙^?B0 j&!.7!zd}L8s_k| HUrS)\X=;Y%35RtzȶL3C 't;age o4)Q7 j/z 12ijD*~!qLi5m\)k^z~~Z}@YR&<fgS.k> b?7zz|:lmK65m6W>u}Kb΍< Q<U"vn7@vjՔ)pOnU$iGBUIߔe(\e dמZ꫹F_5wqS ?cm tiʩ O^i&j ?tB܇ hz d~Z85K:+ce*5j?B$.xN)ݙ*os­QSFWJ 8kT|y!۬CvCж k+\޲ YH!IQy۹duǫ[X^x^|"5jg3<"=FzZ j`dFpy:&y*ZՓfj#aLJ kBps\;:G(AЪs^V&ü9,D$Pf,DqH>g?poʹ'̘;UVQ LˆZOԚI ×@+zwDʰ3ׯ_~He} ˃\W!:8X&hE71B&8v2 B '^;[y?uf9ׯ_0O| rx=11u5 n{V Y(HKf|^8? * W:{Z7YROn$].%1^zKK;-, 2gn̬)V)%͍]M<}~֞{Թ Lk!Mtmk_ b mI:Xṗ 0[6dk6|7YkVՎj+kku.(^?qL1C)=OҠuti.}s/2{7ⲣ3IP wB;lЍ3t6O(Zl2𘛹ƹgaSĘgҥ$ՎH)Z-@G2W3jZgCd6!nn>mqV*tTjg7s>Y?N}濯=^]c/ 'gQxpm| T R> /SF߅|!#²}mщ{8a5h4ԱG$U\|g^HѮͫ^N av@vyb^$XEZ+]kJ^R-rT ui;ŖRjb/ZO}*N.M馣':  M:ồ gnc:5cz"JKѻ~kkn tԤ8R'cSpռb*S@juz#vy  - DbO0E$|u)\xM.+ַu|/>h8v= ng(>MEn\<g$KE]/'x<(Gf1.׫n^6tlulH^3`Y&C>Jb"e^@q\l Xʕe~ {~27۟(QU daӿ@2[k69/Y\}kmunӒ{&:z:EG? ~|r]ʌ=p/r fr`c%uoN{?R.Xa[yov{ @ROvZ߮M_W82['_tYN7۽hzx锊I".W~Lo ]Z܇zܢ ^r9 0͏#laS2Tyj6dѓ-FI4LBc MI(ѱ bGC{ѽyQ] 0Ֆ?~˜g!_ay&!3y|.IPOr'a1="䇘"Bcf6* c}y]Ԗߞ#}gcSэf> }uXz}9D:#ǁǔu?߻y:O-Hm`*~+v; ?z]yqS0EmaY[W4 1J:`ޫBV2g.=CRn4$pI~J݅ݎe#[|m3ș6 ;5C.2@__B-fn/0SOrNثazZlq0@66Wl۩Ƭ-RwByb A ʑA]/s^:}+xO Q^~iHPEHpȞչ[[{-j{}|]ډ.t wR[{ʚ7yP6:Ov_=YZ!]8f&9}5 8) XuFd8omp:%i2VS$4@63jҔjyꐵ"d7\kg3d4Mh '~!_E,XzH'nzN9Qf({ց*xwHqoZSTU qG-KTQNaHa*DYz v%@ͬVbo>s 7*&]uk{΅O_v~9AlClg@7uyQoMEFkZy+M6C$OGdS5ٕhYmS:[C9 3C[, 4EHn*3p͵] JEȒ>/wG`׸El]=|Cyp1+-2d<ȳͶ=mrv=p*hY[J 8k@CT)dc9*8ӳX"BIO0V7^[Xfk -|[/ k"UQ{!͗-ѴV&.{w_ WM[ -s;)V5>}r$KlH*U*VbV!s QnaEmw&gs5$k95tj&Ǘ0{^ßR-E VRxjw\մ9 ׀PHXa 6~Z.g}}bȾ9q 6uvtC Z7Xz_e&Zq[.KmzT-ǩ*Vk{:v*lpl:Bcݸy:}v\s&U;72xϑnmԪ+0Q ɐUX~fgߥ@49n22(f8 /)]б ǣ-N4b͟m+|mt8OUs 6QWq x,+ 䴈Ut?Ͻ|,V+om~_vdC8k%*gW3dnjM|R; >YD|ө%UE.H/MYa!+n$9fȂހDEȤHii۷u pj5D%kj4U CD󼎘mnd)L|X(80-}l&@j$R jy%^kf>$Ol IPJɊI#Txk!s2>>o .U` "|p>AC:'Cy\($[u~͇KUsi^ jzygwl'l\P d36ldA[@EBnHº q+Y|>]ɐ ;m-!#{|cڌFY~QnŀME"&).yJ1<46 KvߘL{7=R8~_>}B%Ikd/ d]^޵)X^I 9?y8EȀ{sBTB__KCn_-k`L4b?,P_0]X=МD a%[^>Msg{+D 8ebo";)>* <5U:~Gs'v+3ZQY 5!wFc?߉'۳Ҋu?q!u)V}m\miދTk\IZ!+5iA,.3w%k,^Hjnz&6>mbeBuZsδu ~b' bFVy-n.naIjL"BLfj6U#S BdfYz,jtTe5`:J1[R 2hP'ސv>Ѷ[NP]wnϧk;vMKL,{h +qtI`3sduQuUOoqYxьY "?t"m7@ܙ Xy~f)O{ ww9 C'u86YZijq|ujr~.5`u(jW"/$ KMv3dUIV׽>} МhHy(pCrNU51xq!6}X~}}Dm|} ÿP4xK UM3:jǏY?+}aqVTBP5B9 TPяͰ8HSؼl~B|ڧ"T"skOgƱf:c̷}T O VRBт;{'fV0ݴ](ws-I۱isAv0uxEbJuGRZ'ĀZTuoa*vձj?5[6;s%@v9se~}y?9v? xdclZc¥pM79 SכͻgAӦ$7CvԒ:cmLax^Gs)7+gxS'pr?-51v[;J#S8FޟP \ ]UrV4ƅo#gB3V'LCWl@g=bO^J68'^xaԩI%.݅=;N#{e ֹo=vlzGV{O4j==Ya} 0 DyQ$ ao!?R ,fw',nt1hK뼍*_Пɇ1~Ɂy׸mRa(P͎2.$UuݵV |+zʐ-)?p8X#o7,G_+“?ek3&rVm=מ(8{kg:#Cv{7 5}pu.k059:-Γ{%2lezAҨ I=o&'އX?:̾ rH§ /3}&ʐ}`:,)BngK5{SV}?Zdʎ@e5ZםKqYˢ(Ooǘӄ&PVgjMհ)hQÜ_A-jJ̦W<mMΤt/E4mpGH?>awma>W dE M~%;ja1]ҽ@)ZqԯY**Pkai=)rO<%&dCKq ϗYMqOCb!.ͫ`80HqhboiK ,/*HU*Znrۻ5w=4&tK [=%CZ\ل<#3W:f28st"a-u3dJIF2 #cO ?R/ -l*h.3Y#ޯ2O2.׍2PKzZ@淭J[:$˾dWmMWZȐ]Ӆ\ d7/~ ܼEКFkD<ΩP}Myܗ8f$pɱ y?G;m7k8 jLzyVR~,KQ@.݆:k󻆊g7џHoRRΐŪgV+{#gC !3WH;l #LU{Us4v~yJ͉( s1VtlYH xzehUg ;O9e(E/}xPG`ڭ@ndf6Sǩn T?_0fX`]P5=<撽;F;"@Tm"Mg2S/E1F/|׵֦ 0X!#^⪍P2Cna9Y1S+ v*\8(]7jJm!y!@g `d=1F#77'ì"C@dt6+eܻ;Dt?%=yW95ap9w0 O15󏟟<>md`'hG"ݺtl39xtję3?0Y:kTRзqUC2SrG܅YSb G@O! >?=>C!in91O @{ZI~y[5*R.\Q.ńiw4*Hm_֞ :iJNÞ5H1naysΕ{i"G\I7|`lF6rCbqNU/XQl,hg?F}d9cZ;^/.t*d{ =| C㺖 ~nyQfIUˮ>+Kt d] !'5^ VFDKn֯1 ]`5na(0~~J7֬]]z=,Oi3+OiRU H`1nU̗VHX/=B6TjٽfJh-+q]vW+$ dy* 'B\{[p!,qm-h7 'Vj^R=*98w?q0VΤ _fcǔb|e\Qoðqt;5Spr]^/eW_J-n:<ï"c O`Y,^-Ұ΂SWgTj۪r=sgDLQG6/1oQ@W.TV\?€ (#>\m•ߜ-*?Y^b̼?qs `.g׸B„`k#\KUGUBdFKZ[4/ _+%~TdZHߦ t.To\,N|3q/ I5.IjytЂ׬؂ Qzo@ vJ`}hkly'%@9pvZT0w0}<*}Y͸ئ2dq!ZG:RTqd̓M3y۸Nkb//7T6f` |dDٮǯ=V>@HOwMJ58wKN~[X 6o8(h%qS>6eÿ-=vjc'{ױ!GSoG4mM"la Ź,C Gg1}lI]&{JȾ?d᱐c ŵ-'p2339Y01{Rֽ!>;;yru|p>!cAƂ6;?E䬊RYS''0TdLxf YB3H{A;]m7s i=k\dٚ8X*z[t[ݬT[gnnu-K[?Iqvz%hR!m&{$.u[RbL+\G"=p\AɊo'5!W1uްnc' C[s-\4rўj36Mz#Gmy\ ;7 (l)j-.+wlI?A(XDѱ/JoޞAUږۡ}ծM [6 ~QE}m@)"vf5@hȀ>{{Y˃鱐=uV^䥿v F]HWJZ{eڵ8Veev >\2Bdoz㤧 ,M.e9yL6|FX!pkǩ ?bl0֏*׵<|˅ }sHgVRa#3ҐRyCs)P!:<|@6mKIYg9m!7nXGKgת} #-'U U H⫤/}IZz (q]9?- +eTe)8MƜƫyoyxXyt?F=yޠN #B_' hB:d 90E־>oYt2d: r^Nvb! aǝ'@F恭gԸz2@ ӰNNV` :N9X*[`7 vހ q)Ҵ@ȶP^jov~h@*RU^RLB0iSS3 XWiS: j}康,W+x9Pyܻÿ АV"A5XĊE bC d9u /u <Ymp;mtH-^V\;m݅2yOZ/qpSʹx(l"JT٧p72 :ڜ~jLiݰ3bL,(Ctrל5tj}>}2d V_ߣ 7*+Ts8z2BMl%_ IJ߯lƞ ORW 3WR+ d{ LW۬ hٻ0t^?$ /4 l@%,slaٖ۰,xʝ0i X@){KƖ1z~dS&AJJ)~zj7\2d}X$ɦ0 2d@)%c Tb|f0ğ"wrQGRNm .y >^1{Y5I|H{go.3 v!(P(io>Dݭ@H&3 IQhewH \vCkhi=,ȍ5IRObĉ*cz0;EN0g) !뼑Wo;B$a[ LK>0㷞^eA#/%b.Xɦn\gzs*oaC+]|#’lH[!f,ѱ@y =GEׅjdgwDlPo53)=be’ܹRvSe3.G49 à6+vZUUnјE8EdeϨ9ޫZ;Jw@kk ՟ y"F~[?M{Nztg,B^nsQc:$U枖K9 q$Eس^sos6/<;瓵hh}p_xWهNj 7-n ND %-M-Z嬃=twm3Zri/a>ajZh=׹'mЃOWu5jK,Ez -t|j@ e^]l*atfZGܴ~4u:TkXj PJ/4k[?zumS)\µo KwXw:;o] >>A)(]a-rz&NUsЅyȓl=Fs݌D3~E\Hv3tLP (Sh**}"ݏ:Ƿl[h3f0Y ׯ>TeV3-k9dcbD%;Ҕ2eJẼRԛ/Pi̊'DcQ`U:܃$vaJbb|?~zTeMG`L5^iHN[=!v6aUL 1R*^=!Cv | {(S'zQ%K~eIvsAtL1,MK5t3Ⱥws'Ql1Naɞ׈FGG!@0ߐ}$c@thf ;14\%4wT%'-.iG=|_[8.+଩XH)2w ?@ocpYKk|X$G^ qeh ]N.I[ӽ6,8khs^A@hx>" n5Q WZvVs:13on61<0عD2"{ٻp璱."Hp톜)@N:~6d!;ڡ6Bt (E Uq%AsjŋۋP<$ZNHݛrٻӥq( q-^dU!dɡW-{Qb&mNJgm~{>]GeD3w-'+| Iɢv'ď2OO y"3"@<7Gw= kObdqUǔd#4k:'O+%CfΦ b&TDIօɹu3z=@ΆC?:>ЎKuVM:)4~W(ptfiĻXB rX[O~ "G3c^A4L~qi'Y+S{mmAUU>!GXB[e[+^\ Yti#Cڷd:Q">9s*d*Y@j!̐xHl~J{S;2bcP{?y@8j,%sGXΞeBc_T8='Y+1hRɭhzlz`Y)?@Yhݿ]9x%֣w֝W:.:{\|QP&3y'zM{a cp~>jva9Fp6d0S1t3 gCGPdw׽dho?=gN |tv\(?I Qw'3qov2 4='Y+ÝиxWqu^~lSڹ%i;ԚL՛ (јy*0@U"/ dDaxqT;F%(u<˂=n5$;\F_ΣѮo&F0s\yZu 6ʠc1,%嘻 ueɐ`+%7>v>! fWu-E~~OcؾU#lg"4AȪ1@YW麮{4eiOơhmR;Ґ[uOzz>|lC 82'L|`ޓ{nsXo)iᓟƖxV%2EָIYMw$jSu9BiaCqʬ;gax_ǶD-<\'ǎ!Vՠr~x;y ev(.ͱW;$uJnS{ xH9 j4f?@YY tZ"~3V S=1Q$m~ sL}PufƏjԗ=[Z,;Q3"/ x&C5^/{pޝ{mz:P\.7cnY(]kf|YMdg;Bt v}gIY(>ʤǃ}#Ȧ"Ȃg(j Et /=Fݺλ % _S|xO>I hN12*0MݼN6j4Bz|?NHԬBc}ouSu \oL e3tA}?bY@[xVN'Ox٠\zMq3mBXc&@Zޛ/Tȼzޱ}_X05p)%\A5z]Q p7>nb'4nI' u!ڶһ'~SZ#R[<ĭ$ܛJ2wC21߰^M[`ں  X@(2dl uw9 ,@ήT Y8E;KO w #NcZ@pvl]5P2c5hn !I/_)`Sʩ!]\lCE;*)Uе3|Wu7^SgbpV]`[42q 21]9y+Cp 82N!Jr]f/t;s 6'4T S Rl9?rqZaE(oF$gqP ;D =] d>&9R$`Ƈ}|(1ouW Y)BmG$3B#?Lw7@T>}:!l%(U{2&n7=G5zm }Wx]fξn穕:Uը__jFW>=nM] 5pPEgVZ}PvyUn Ƹ|hjJ$- 1`z€Lh]%.pE_a+TO5J^P4Uou]/{ِ "O Y5xH~QwGXI }׀<:w0]{OV&̪Q<]RX]xugBu=k[yq}NnoTTjs =gǘ}G@qB~=GyjXVR33[QcrX$*]h Yq1@9+Ӗ{(G ]14|kCT#sIL$Lqɐ@e$hv}盳L}{5vi_*49|Ts6P 緞|oMZYnGXu5ru+:%9Tտr8.+ŕ43~>~v5m\Ӳ#9,qxq $nnφz{zZV\l+C@Sɐ =`:THeRxEŰ-ٙfz77IO8?|nqTx}Oᶬ{-!~}W8ls~db\e$C)'^^j[fͭ=VhJ׫5~z[vlk_ʘ?v90Øaa0EA2"漵8{~mmO<:VLw& +fӌ0 TeJWPٗ;i8Y#]"T>򱺋mk {YQT<ӮU͇ #P (IIO)Tܵ''U{y@*ߩe{޼.[u__eͫv 9%O?Y<~]k~]ur@FmH dS7R)"]"T;r]UTH2iԂb׵'V ime.Bv6H+>cM/Mim#T,k ׸@,Fz *,ӿbȦS*m{W땽ȐEN<ӝR{Ok-T [f2T!M#8 kdH Oݒ u8N06-u\)wM#,T rґ5SVggQOV ɏ>z `~:igaa<g{Bdm,7ǔgV @Ya1$6څ4G_^8$TD9d%hO}碌-~ˁj+L-;UPg.*p<|H}q'9o9g*-z$nǬu4@&LeIY}ݝmiǁ(pP(Q߯2ˊLJ 1a1OsU9TdP8ۀ_eVkbP{᩟x;9(tq$!cc>l,U :cc m55Y#[loak{ޯI .y4൚Q,4J#m>`rn5B%B㱰ny됍#1 _?p\n9LnhoC BkߟUYRE~WJ'Lگ\pD9|ne}g{|RWA>")]jue7q)[vUt<~rZkAMs?Z_Gc7$~iwvj0ڝlzO -<^TΉ,O>U_6EZ +3뢟ZO>Ȉ+  UA]rƗ{VׅAI؁k/ { r1rB%o~jjMűB]! vwtZS3QF glEI\ƺs;=r ί$dm}ɣWm:h]w赾o6(,c_尻̀>} h1o[=:!?=L&M8*@iޓ"zPt dո6||t'C@lw? *izww{Α3ڊR@>w,Y >Vy?4h2p^@3 ӤJ&7."+ Ȗ ͰqUi,g/*5׊aq]&Ժ4l&]VL֫yt8뵶rIݰe?͖qzOߙd %F[lѶ&#,Aud⋙Tϸӑbcd 2`M'C xx>Ih11aYf1]YWG͖eҰͶޭZvt/tOP<VMw2+Z"p6YD<@vn^I63@kήk9I =B~ZC+p-g|7eݵzGM|[USʢXaKǟnu햮7>JW]Rm;֝ Iꅇʹm-oB+>x֝ ҷ+sr|Rm%^k8@j{UjSm$ߏȻ@)ld6yϊd )< WS.Ke}:b.lL7?27cD[!v$jQ [CMw#❺ YZ#@F¦dRu >2 DҠ!Wץn@Dq@pOZ#/4  _OV@hq@Ш_`H|}xg|1zu]6T(f_;pdrG}aP(xgXO>[!bwH}̐Ww"{ڋYO L qV uRk C!G,=X6k;f*8.c3j}t*T[fC'`H7@v.l x|1Ou=yb|~ԪX ٝEULNl+ZUAx 0ܿ_7?SkgG]>~?.G%eưn}YY^]`XM-[}=;Rg=9tgƤW)#Q長>gKMb躮waXS]ݿ;To?u`j5_,w|@S9>nrS .ᐺy⹫`83$R};b^9ؼ"pc3ճ*Bn i@yfۻ؃- " YYG,([ d"|Ϲ[hq&O䂾U5Wj߬OT#[κʝ˖Z3ڲ͕٘vuC~{Λfʶa7UPYgi)%R`rqs|h ʂZ['_\'t}_$\ܾ(qѦ[[ rǯq7УȺμBb _ uJ~m@lvH&Y\ C112c2*YDr}cOU!8MktI#?pc`M8h5]`fMJJ݀CTfov {0皉LL+|_yO>f$QzPe&7?ܡhjg`ȍ f@Kleqjt]՗IsrЄ)ᑹS7`. .x_Uo\f,τV \ hꁪYߗ$yWc O4Na٘Gd p,0 X~¡oSa5.Mqt&l8'$ezżk9sa%JU%d`>|6gh3|4o&dhsqPn FL~U6Ju;3PVc^7_ː,4=3l岶 ɎH4Ϲ~Ye!FNkO%8G(NfxtMFC0C+?2`0ۣ\ _ӂiĜk,wĽh[םm]s];'gGȠzf<3T,76:Dzє޼ȑK`TӉ)6Ttg]|گZ^ǩ[2ٕF" OA'u^o52P bC-v^n1mvt'yr4X׽ZTk*D&Aes@dݰNYQ IDATKcZ;iq2 /t*_T˘^놡d(@kK{$ɲrL>싡d'X$CvMA! j_4"yV'XzjrȎdM.Rs< yrQ˃EG /TUJWMKʒ=q 3al/uS;`oҝH/D3;:ܿg߇řaa9z/8iQwrS6ɢMgKS^l ڸ[8t Rݿe3|jϞ"@.}뾟~3+4ې?*r+,t$&f@TWөэ~฾6x4Tkk}G)\^2d]U#[ 02Xs.@00=3u%ΞUKAGf5﫩;U^U-1vS-2.k|;M}:&8uV p1v-[\G؇1=WТ:)lw#W!Ύq0W엽|i՚@8د0ڏf|+Eɱ_Q)#0e:e8lYMy4uk p%Q*b„8nfmUn |ש?*;uB*+U֑?7\#7ey !Du,*:|屎> ]>&V~k_#P&r&Y 0꺮 @8 S}2n6.0+^t1122M9Ȼt$kN٫Q -׋I -ۊ8mSws2uU D<yIzR47Fik9>qwӉ?D =r0{MWh2CsNT}uS7.Ѐ d !.6D(YtO (@E28~"lp~F?8AtR/؟q6;Ȳuab?"8rUy2Ț~^=[{P,ͅ]qVJfKMBr4O v􀙺3d|qGnl Ve gvK&՝{Ifakn'+~? @lCт,6U ܝ0MbKזݭ亮 8\ rZn…VL]u>YgflϣsRma/ߴ:dE^/<@9Sm\_xoo]2%PО|nUO(X6{%jia 7Zt}Oa}[Tj|H^L=0iFݥYn{nufg_ gHM"}PUuR7R"v @dʒn?J=WG]gܲ* R"m&8w ׫avz.kW]|*p4K_֠0AS3}>WLѺVe@fJ5Nࣣ292}E4}b].nܴ؁y*xء#,gSӤ$ft|3m#!]׉@l܁Y sa `2(5z@V `lk*q+IT#,?FǦV Z29ز;a9%W@+q) Md;\`,."VM~QD$<f'DsH*}]s8nӞn`]b༡sb;&!DC*)9.\hK#,eJ'=FŲO 1C})*zQSrEU/6 Vྛ!C ;!CykwiKzW>{$m&6`iu\ࠧZ+ J?Î${tTZ[hf+sn_!wdDhPfw_mP dH]rT;6*~# q+wm9w]<_9j|'??ϾPw۝B_TMɸܮ#u{_nmLs]'x0g 9}| d}쉇O?*Uv4=Y3eR{!,{j˧/a}S!I "ܻ+@pS H,~z,c1 52e =vMmume 06UmF!Q+ɐyu ^WomgN7&#S( ʏFA}!oN&4:  Lfr߯y:z9۶/>@Ż/OSɩY1u u6q6D3Fdc;L<=ڐd^ ;uʖI9yfT "Y߯:.Ru 0^9u\ geUJK!^ԏLD,4׸;k4uʨYXq  * aϚI U@!KBr|8@)W+ jhL26Cbm[F >OV]:"f-F6}]ٵ efm^ƯOC[A ,bV :7t81~lFa!J|7Unܱ?-n9AelDb!۷|>FCgӞU^̐s/MfȜ|3Dg>ȶN͖eΫ ]׽^ڳL9*=RN݀e89ޙ1l!20hc~#>dw㸱vا>!=V72Fe.BVoώi085ty+H8@??wj25V/ɾR75u@f[DvY[ [+L!u`f%n[Yw KMcۯX׵Z|2Nbט90~}613X_8RuVNW ;9.-![[ <;OIdj8g128bH+BS4T B%^kvAnܐh2=6|Q mUxJ+w #2x$@qpw`"rI0cpaاM:8iP؟MCdn6ut2fUqpGtwv^9{trJQsMyܕZ^V:YnS~LM?"d;&BB#G5Eo-s83֋nv]-Z_ثoIClVS!:=ig?ٓgs,V xݺpˇUi~kƝˍ!glBYg2ɴxP{0@nNlPqR'PKWޑcvvikݦ@5ru(d'Ώ UtRe"XݑuBT.%G==V ံAkQ4WaϾoXRںX4JӀm x ZmLfrZk k .rX@SZ)l\Ra'̩l߃|ng BI=񴬊6\IBJUkFeZߝoяCAG@+*`<шhuv3)PΆ0VJDsΡ34( 6-@s4&6GRy#v^?[>;Bcf+_ `LTOw*qzdR ?֨:#Uklglr3L7@&i\xHN"IS.b9||'oLn!|E GI`[R7)]W AMqڗL*U\(iWts1;+GLW~o%>V&$Qy%CF LQR/9: BXgr]j&>VD@X~~Cgw d3csr#q|ns]]Fn a 77 `۩Hn;uck,Nts7Bn$8[-Xv"@64w81gkuyOb\[}qci(6~ܔ[.vFoOڙ!@FK: Pf1~~+hN't]z϶sb^`x٪ړ[wvLn,ta(v"t \[77V:]>!xݨ\5~cY[T:Tz,SMn8+ԉ1.2YL[%(81/: {UaGq+񏣸 LɐQb6&8raʰ͂ej-4"I*ԋ@TVi5YYb#ʚ"dDT9oqiWKhl^dpv.k!}܅G1y} 2"Ȑ2w7ILMQs㹼Oa EN-_`g現W}RxusY>KLO+`$JJe5٫<4-+THެ6R)Ŏʎȍ 8k' 5IVS%G&ȨصXU斞ːE8r. t[1L~lģGX >K?lm\(!?e8$*uqd @vΡY~?j#eKz hq<[u#RP{" ZF_||u=z8pG9˞$YvMof;Ns`>z3d ՗c(}߇RiO1&6Oɧ%׽>Po5'W4.q"%vl/D{f jWr%;˶֙_Q鱮އCGB&\.Mc+*@),SsϬh13-mڹjd*AvF_< 6}LSyh%Y / Z#|#&`]'ݶ𾶭w*GM:M2 #{ L03AeBx MM1E4V 뺮M&=3-`}=݀U-=&+An~,Ze0">}sjtUY5YS@ eh;ڂytl{kI2x\qNV4·/~~iܐɼj|R},qhȕVhφѨSBCc>N%JujX.[tn ٖ=$5 6Pv:&hܨ9c9?/iR]/'R,')1lk1 ,aK5FrM$bj/%鬭Xׯ8)Jk)A",PZlIk|ܕJkkGqϡ7\t])&J;=&Fwg}lU64~wu!$t-nhφom]1ޜkz 3ֹ a~(Kuh1H|'C.f z @#/I .f%.U>bdd€@vH~|ʹ3\MCSbzƤR,/ky>GY2x+(pwbVd9K^XNۅ{F_ W9' 2N`ϫ;EDٮK aME +ߠdj}O7^k]WkYn&oc;g+pбYo0Okݒ/F;B=lR3p=9'ywn49~S,yu]u?Wq<vNVQq㒎ВϮn'@[hfO{.b^Ql9SnlF ˻\V +1CFRfԞGlG0wb"۹d\pen3ihF"di)(hB q[iK W |Qʏml{|=݀D 6/pB "z=8,sp:}{Szlls"֙B{AzW) ѐUym:.'}',M9!(m,]z3@vq!^sB>2c߿)U0>Sϥ𠾿i$MuW +B8K3s5A O,e>)@6驈ϻJQ%87ϝ=lqJ4oL |<5)c]Jppiy؁{c D'&e9!;WA-L1[~{rr1clO-zzRcX6f^zgt5Ю^z Ea9HgeR=%_tE"jg(vϭ=@T;yʧP v'D*#IHA5x!֚ʒUƣәmHEU;Krn% wp _{%']lFɲ-OxHŷb'r8@vs='hNΪIIpRK]~ dĤd|~_h]x,M%,O%%vȪj#=63dVPM 3b?I]9@YA*-Nі*zx2@o-b概*xib;$у,P:GwG X{l;-'CTu?IZPR Yn$r4hUCXky<1 2Uzsd0\kB2u|aw!(v4@ YKؕngTvԤEH\dsm ڌyה"g@qRۗX?hϹ٭&gW:Y;od7r@qY_,]z@:wX(QPj-t^x@S  bkL0 yګ뺮y^b@IgwCXn@ {9d׼mg)kcz[ \swXx<3ʿ-XΫ%[9:$+aC7Ud@:s䨧Ϯ]"Ќ2OmN*nyYў<{[* fqXPd"ϩ }e۹LAc rKBSB<+mۡFǓVqIkY3tݻ<@q,cؙ!#fPsL/j6k?Z2ixIƉvw*jHɐPO%>=qvf2e}6ږs+ fWs! sEl%7vO P"%Bh273qCeg -uѹ=og VI)b }Lo ^_TSY,X+ٻ?u#QHyp deSUpUXl;"+ґ:mThKLHa>.-@f4%I&`S WU0] ٘O,ZmO̥^_ APiN0m]M:o>u=v"td]gLgz{>(\|~O:<$U!+>xh<ۄ@GjIZ&Т/~*z@T)^O7>!x^X8͖+Y ts;"=Ϫ٢QkiǝBW@~pn2c2YkvvlS}װ0?J:W^nz\I&.lQnHE] 64llXtvU#|JH%5[)nn'}8rqkYOMJT,@\ d&Mivڑ3#,Cp߂ܦft P&]lv |25 g&% p=ROתϔx_wYn%krt^^N%:cvyX?nh>"-a٬IX<(JىF!)m_yz<H^`MukџԤ}3%3J9[,ya8† ˵<8{=QL_#76miR?|_Fmy&rN6 7Eq&Urn62y4)*~kJ>;Łcvl(eGuq B*PBF`ɶWCvۤ:n.\{*I;eOY >,g^ȗD?Ŋlv|!ZS"!7D޿ٝ)y=-=g7^9|Dr~Р,Mq4>ɩ\Tm!z@K* m篧Pa)45nI>jQbОktȳUM;=&F]N5ƶ}?݀K:؈ _Z]h4(r6bhsʬڎd.hϯZB? [̰c"V+5ﯶ]r .w:u59Id=4@B\as&Q!}~>g=`zzchTSu }lw2lxG#vF]|Ҹ≠5YNnfuҝv&n31xfnOfͻ^'rqN~&YԦrr%llrMzeOu`/ o0UP'i 2KY5.„+3:%/΃;wm)%XO4#<0y"س8.KW #[}"1Iɍqayhd#CCcQw G];sNBv?Ty7. $Txq3Y X79PԒ@q&>C}B l՝m( @ex䉋d7HmiB}jTiH~%|0?-QP-<ſ)BjX3oOB2rx` 2RG#uq!\0PǪ8]Ϸѹ!Ǻyl G҅zZY8㵭]ӽY{zfp+X2OԚ7x}~ uNCP{ sxi2CoO#J_k8'U2 $Gߛ+kuR.T !KT.wGcu] a)> {} nVj* IDATU怒SB1L#)HU=GS٦X*dQlrTgq*h2smF*-H#y;Z=PVY *نiҁo߽wJd^6ŕ)Y C}3dcl#uz-dtޱKIŪU}K]OI6P~!S~ `GX3 6chOJ֚#РC" `>"l52MVy'=fu;r4>tҺUvhVvS&s u {!X7ԵڮV+Udžg D4dFv;+uR} 5^T/\w4KA2Y #5aIT~H7*z8[^pW ^}?RR;@;^[NlVJz(Up>߶6V:eqP_)Ԥσm!hGX͏S:Hz dX qMdqvqm[}\l:A!<'go N[|v!Lj99u0M6z,1])QqLQl}EL*%<)J_(M?ѱXXL7C^YWчvx?úD({OɭrkmM6d!<{y}t}]kjgend`&okfO}C^).zn3^]v:䄘3+ Y'斢vQ@n-?3> V /Tjq3b$MKq&ɉD3966Y͝?)G"}nilj[[ v !t]6f$"myXHgd,ʼn7x͡,^6Xϥ{ Ҡ { ,%څޟn<2g.ƜPP#5ϬUAj dZ|;LT_bQ;\д6Z_`񏣍, ѰKnU*ʤYy>j7.LX+ϸКS;ސ]!\,9p$Hv|>a9 5,4a3:%jY͐6߀=-9EٳϳE?%^J!`Ez |]s<(FG\`Bb @,uo~mqy&=Z7xwhm 8 a a~ 5,FvU {!6qhͫC=YO< k;`cZ){de;u z!MGg~Gc2Z??O׼!{zϐ 6k_b˹}|Dm 04t u7yxo[}dbGƙX;?E>>|$ d,bpV n@]sB?ٌlFDJkO-o [Q~l]qðu' `rBQb>2d@n>X3vNn$X \?mcՑY6CogcZ{a͓IMP3>O (P%mWZ2w19xs`;ןzS7[R2+UP#ôUꈵ0v?m H`R89fl/RCʏwV3yWڐCx{4ՍΆ= ($5J_CN?8tc%{^m7/Tz8yH &${Ҧh|e]mCխJ(Tl MIѱTzzZص ˯.n)=XW=E7~b~nc6d!? x^))BqᜏU2;e޿<.}+*y:yoEHdy[ovO7T~y6~V@f冂J @tWw>OwcOr[Qu $ҕ/麮BX"L ͻZ1@ױ_]YٜEiGۡXImS ۬g} eW6߯?{+dk{h,X|%&C w'iu@P!skE-HP4RlB [ц̯onA )5iM=t]惻9*[8۱"L aM=`{Y)E(vftlaa=j% wNOD36  "ړ!ӷuue Vޤ㓣Eͩ5ze_O7 q1r /lB qU o{[#CIz䢵i)8^ޖ:"%QȐ,ȇJ_ \?$=p{R-.ft"0&4Dם$ƆߊqŞ`B<@f#+I*-s=sڜr5b&RdKܷ"B0yuh ?5-wNym+ fqor~ET262I}ȟmJn4D>RlmOSM2I Q|_h#.,X&MmLC(1rmϟsrX 4(žC-g]unCITlg`e M!V+D[Pu>ؔ4nV!Uizx oڲ8՝;z-GK̫sŇpۉo'Ob=_2#,t\|f^YJOJ*Npn e @ܦl><_lTR>!Jqӷ#Pz$xmr-In>| % 蜻W>+ށtųE# k'ˡ5aRX ߬-5_d{2Wu]p+F7W#,=1vݸ6qEe_w8{?M qr2E#i5Ӧ-$!;s\^"(wsMuߏR>MF*MHr4? v6\4@fU kMJO:&#(Eߛ5(%463νa@LC؍NUh9پ_̅=wX >S>f9q ġC$Τ٩vٗ&V Dr--3mV-9$> c[E2d~cOR_@L"dAV*u+%+{ ;3@ ݧ*gquv܀ҭ-O؃ѺCϗek2?Mh-6rNkO>zkIu r >6&2@:ic8 3DM'@*ӛ0ÃIa|8chAoUW3Z<[t+ 8 Цi$eBy8j= evg_H.gͣ*HtѭwgsZ1yήV85YONGXnGv3ˌ)w0M$gAER `J"Z|ٞ/8eI,>Wci<|ދM>cah $u%(4+K Ĭ_!u{ZN;z۞ؓcꄺ'{TR*gvV ;a~B@:o:6};lFV ;p|L7h{u&-q]F)Q(\S4$EĿ1AmFHɱ<`Eǒ0nqlQy2 \Mo)?~r7i ) Y7bn4Ui ͸Ż림QSȚXxps^M֚*Rl- Eh._CLz K . 4D4h"N$J݀=rEse˪ԙm$uv 1x-dȊ7cu:OKjWbcdJs(]wZ=}&pEI2Xt!U-.f8gch:?~K%?z 5_~|[eqHK6Uf;(/Pﻮ( B$ K*vV˛}i P41Rs7ٗ L=6&@Br?0HuGxhpxeVlW'vk*I%>a ʖ]}C3kNu$ذt(3`W*H {NšXzlc{Pi`dd1nv,jd(xT u8pQ r=T'6>_'j p;w۹}߷rOuBq7D#{|f#>7W:+T" ET (+Y+=Z{, ѥ?N )?iL}C%x-h@;fT'霫%V#|>`>@c?W E=c1 @>c0ɕ`F2vMr}WҮE)}Fr6IdŹNzPoVcH20u邕T IBSn!ݑB cӆsu>@ mkv!?òT{q,Gwi޳69$of|^6T\o9_gR`ھn33xX\MJ* }eAy$Md P7=W.@V*͋Ɨ%Oѷ@ޓRh"TQ!lGXnh]HO<ړ -ЋsGsGS{M¶=cm|}yy״6.SRQ"Ã$)3/`S4㸗54ॶHd(W7N{pύ8!WT\oW^f6콹[}eG֮'O|>gJ2ku?ض2_+ IDAT'pؓ/YGxCϚq U5}-ƟRt_Qؙ~P;֮T$[ו:ďE 09V`VsL9q!N 4є˟OI.Yf/Z>T{F^+x9j< Id,5^T/_`qWGy]0'w*fUѥn<I,CɪcXE7ޯW߇c;sC 7*n(u՘L}aCh92k$~^W~Eޓ?3-flei^*%^Po 0^e=Yyx@V,c< Ŝ"ړtjX~ѭ mt 5ː=l:^nm 12aa$cuɲ;_gӖ8ꇻz>m+]C<,[dJ'ahT3A=S`cYTVGXl\S)Zg ;VI 0}=[/-c+{ШNQ YHË.ܫ'@NHlvC nID`7@Y"Z d =̇맽0U 1F6/{ȕrٟ{^~_ٶj5?Syx`wH)&@ع y EI*V<A|z"1 d2dʒWT C̺F5>VfNW ?d$7}|xɐplyq| h Ȳ,˰zf#r&ڄ Y4{Pw7@"~9\gRUtz4?Ӿp+hAgJW=\=*;Xc=O"#Ԫfoi@\k)M O+3yF<ܙk'|N#] ,uܒ~egZ{]#B*=iqxt1).@'@tw(*U,SwzyNKּ߹[?q[שՊzkV]ɸ@FLHkM/>eϢi]?[ }gng}^SW@Ñ@[q_+1֐2lQjz%lG=vf) hVu)cW+;YZ-X.ԈK+=jٞL~0Փy<YL6 [ lٹUSٯ.y;:uDsȦm0Knŗ;hY f;Hz' ovfK Q!/C RShӛە|gis9=]e $#8`+ڭ-Pgr4%Fe\7J */&p@)E]Fi@'yI9oS(捉g=H(l޹Wݛ|Ek0pIdT+E0d3i\ JNS,>EwhQ/=%P 8i9CŶB5nVgͳ !nEȄ((VXwSL Qa gi{w@!f9#wl%]|(RLlXĹUⴤDcF1cU.AA1Q @p7v9ȣ׹Z 2Z좖'*mZ7kyv]E:Ril0={!t3Wz$ >qhE1V6wz`=ɁCͳ?@U\4۩4nvn7{ölU=Z2]%p,wm}|0dl3Cgďݽ@Mޯ 3e֊Ie]z @uYȀU_#b]gͯ$սsx=EvKĹY (,LKA @׫w(v\[]Wk:Fӱ0j;Mm֞12@@>#,gɘZy՝!ؠ父'+kl0CVʄ 0*H4 tI,#kdDiyb5-hZѦ4.Ysd5a]_Ӟy{8Z{g5#9 H{Oާk㢪|E\ޮ3GFf0Ww+1׽^`ݰqf$"̞> uU[JJ UEd)5ySgɝXƪakWeAkumڼj#Lwl_-PPB'T,y&5~{m_ǽkL7.T3K*M6·pJ;J3b!}v_ǛDaBW~jz ^ 'L_;h.͛8-gJv>Pj^ Rj P6ܤX_۟9@1-f1KS2cgVv?x/}e}_~ӌ' hPM+ $~; IVm"[͕utIW$q,u>yzpKud*N _=B55i}(C~L^^f-ۼsI=ZlzQiL$id^a$v:jL !cm|S qVT{wGw׿5]-|cm0-'GI̫"|5d |u_eK:%̛$8tM,DV^֨פ?fl˂GLS.lPa|:xMH&]HμY @xdiXK5,fI[4-4c~ϵ UZ\ f)Z$Ue 60L:ZJOt;D-p=, dE[腵ܖ@ _`8+Ke9G *4Ct%.9'F|^ )H3%@!+}oi@7'}rkQ; _;=jځ{NӟA1O"@ >wҞ}r9Z587=2^}YJHחOݱ@.gm}ؑœ1p?)fWǧxF*,#;}c'h=z&y*PLLnU=Jh b#4?_=|šDz<XI[Nt򞛇˾Դz/~|aoC>͖܉9<:UXV8a؋#3Ӵ,g IrNԋu6z'+~z bjmOv ZgϯS,oqᎹ<-I|8mv/"y1-]7x <]fE~/=ZLpz/Ic5鹮  {I~ܗ8wr(%Vq?Ӈ1IpS=T W&&T5}@XR i\I>Mz k[ʵsDذs?I$I}[iww鞮j& %;3f%UgJ@gh9a_Z~_Ir[Fe[lOdv ]Mr`ƮC)S͘+rnp%^2-ކ?ьu&Y115.>r§[˫>)c;GX>sh ռ#u_r銨5Z2 :u\̽=?0˩̾k~gKơmgx )b./ʏf TO|L(knHz *x`;{^mvtƆ#,g3Y:?RY;:"v1 $}n^Fs~u0=.w: "AѦjru_mzF <};g١  /ij2KU²a_ bjf,Vsp$WJ F.}}VXsS1&Ec+/.=1}if#5A,nrKZ64N56'ENXz a-|bW82ȄɠJ/z`iHIaybo^]0v 1ǦNdB[ǔO~ۤYw7\ت1xwj l)wN~_K hK ߿dR?xJ9lvdkV3"FP(A1p:8q/ ;6Y,Mˏ92dGO~%K.Pu eCvOsdz/s\twN+Nj@&Cke) o(#,9XR^5Z@vIÕ(peZ0[$ꑾٹ EV,6 դ-v^ډ7 T́`-ٴ=z%GlۘcM8>6)BcJ}oU6 |c%ٗta6(V~W ;z7=άaܮpTRը٦~y_> W K(q{w2 BcaZ>ydcEpL"y3NKUtF0U~ъ5/h)G7\lQ0)7+B{L&P5پPB:X>R Dc/kOu+6s& ~eU@}`Fe?]:VP cy.-<,vUeC %{ihv0 YX\Vm oi?aӆ)zP: c<{8ZGX֗8 _rUvi}WP5D(B"(t%1~I J IDATyw:ѼD8n#whtK1UU͟j&CLUVT!T[+HxMh !Yܪզ2KAvxX0lf l+6VY7]lgڸsnYhlk?7@_^Y/(.(Gyg=5FS @;GI1dY)gZ&H~fުV?.ӂwh[IhG) 9cӣJ=VJ'@q(Q|ɟ/lk߇E} :"3?t8JX|pjрѕV=7c[2fid뢌'@{S,u^Ya:V$!ˮukW{s5ӂ8# z}囋-6קbNoa d;oQxvΟ׮ֶT=Y0cI ,M|y^{+SiVͨV05R @!PhKTn?o?_\A_bƴJV;F![<跐DߧyeîLwL d*MgqIucm~?&oi}Y>S D8z %\Qw`6L|[ոZ쮯 gxy2ZZuܛ@- a1:O}/Ӻ= \av,\H'oEى6^*T'*KcR?YYﱢ5{=np ")h̐%f*pf"PwNûp̉#`[PD!;G0n"w[~GkMcr?JQSn׿Gz 3~~+G-nk@f٣cӿC`cqIs47["׆l{%=qd4'AAܰı?,}S/H sqDmb8z*2+?68|2Ml;fm,z?,|_ǏӏMhZ)2:- @v]'-us3vy<~uL~U~>᧡F VtD}mcЦoş{ͥe%}Ƒk@_wo.@|.P/sϺ:R~tEQ?۹˼nMxR^pSk:+Ɩa+7~]|}oAM}g/8-rLLI-[Dqףzv]㗕rkyfbbd_nO3ɇY! X6[2 ;cpH۠(Wٴ'@mgŻXt>:%iFI3F$}#Lq zn+HJZozq{t] !l6:>.z ,j헶nχ5hUE-'7"da=_`O$H0c"C|' w!.wcrƠd%2jft%C@AN^UdF eǁ %ꁶtV̯ 1,WȐA>+Z67[+jw>@V ާj}WSu% ~"C՘`%H5~iVИ3Dv|+m鎟+o Mj,+ 9;Q隣34Y4y"7.\g$#Kէ>q_p$Rѓ@*5 Jl!7~̤B'@)2g=dV @eӁ[+'_om\xؘ_VG]2 ojzӴ}Eq6|r͇dZuO>#C ,Up08Rbh}sh*B:To&@̥yҎ|[,4%q^?H{l- -CU#PYg?G)45NKdx^]UA@MH5 yjU.0i*(v{Tyr}cTb/@ xU0 %,J(Xȥ<{wPq>he!l [;*j{s RdGq=ܭu!*(/K(0 IxK'UHHF#,W^zJ%AGm03RfkZ50&{>9ynܠ%M9!Q!K.|p%t?i&MTʕwY}O32*LItk???PHRNǠ$#_/ ~c}eJ`(e uǗI>&n9)ѽW+cu9nYBčѼ>wªw>1PT+T eؾ]9 Qw %6i-toRЄ|v%8U֌rI^q[;Ȃ4M |FݟBiW /aDH*:h=v{r-:,Hޯ\SG9/mQ3d,,,[5]2{5!z5e2Wʌuei&Wpň{>.v'=mbvO#X:TJ Ќ ۭvq+7\ !#YLH-dڥf׊[Ko}U7t7UBiiG{PB6c$^ t҆]*?dK='_Y*}JX|+ڣO۞~t&{ط.@nӅm0~>?m`b ,g̯YNSJ^l-$ %W+J7Xi sݡ=8;7߿YlbN'..e>GHf5k9ͱkNJ;oPelm>'}C*yC#+\zK-U(,arIV5ra,&UъPN!)IWrYh#eUtf<@e +)^ֶ[$z#cg kŐ,F0 vЁVx좋c u18d){$+S.s~^bNnĽMnt;L1dm2A Z_^ΗdG_^V_3sTb鋯zmҮ+PW ~Vx^k[4FYL=enxQͫ dx6Q9dwѩyH|%HPTc EK$S♲l5^+wh@0/P`adϏBVk?ϲ\Fj?ׂ/D l;Ues ~߯>yn)E zhbwG:tkuy>M>O_R|e {>Wj~~~>W6獉Sg3e[|=ݓ dY -1BeL5lɟLEg.ĥZzk[μA0PnKBXO=S>dV=>VsDM+{R aj4D،U y~dsk\_\`cf֒٪UL8n C0āV+ UIߛdZSb1OR캻AMh S0Jh؞fӐq ѡ|=@v+zS}y)xmr݃/T'Dwhuv.It+˃pOPsA&P9wgldē46z+!YbL}[~OE=vo @ne^uQ ΀9er$[|ҔKlzf40.* 519A*5[’' 8VŎa7a= 8:v.v\r| NfG^-?g[f'7=WՒrB{`H!rQUq|>o_$гrаЦgq5YɓUVZ9aϭIikB2$FdG6R?%wJSP@X1o{豗pʿ.V Wg< y5 ?g ;=i+2nQo]E>Z:§I{>+p|5ڞ Y?\W*z 3%'yM5M\tUi%Acˣ>-W;2l0M=K\p Rت"/6lK]PM dbw!ӿ;ٮ9a@VYz豋X~LW'qQ/[^[Ѻ=]2xF)P$a!{ #kem{D:(-Ӈ `=ɳR G-zQ͕ao9NsyHb NXuWM%ճte9ƌ ,g]펙2aSdtpBJKO Ks߽֨Alzr7H.ю'|#yz[Ri4p! ЭMwe886nh}Ϡmily^Q}^O.,>R2X~ _`B%s[SP=(DKs2b{wr1;áCmh8yGܭ=./ |^mOsRvs)!A@vd&$;#@˄UbZ`o}5ڗ/vY0DÐZ{08J(Lى+W0G^k_]leS M[{_|ؕ3sh\v󵯺AVx]yl16C|XIWm{H_aYs@#V;a.Gox19$:z}4{>ǯoJyҶy SS{ Npk(p8UD)9wwKv_+ lf*SgM?u+[G03;*;):_)H_¾Gd~[56ުUMa_Z^p )̟H hd ]Lx=Fj0@v7 1dTdh(Wz>_0^ڎ! {,.>7ʳȡrF"x3P?xro6j f_ -=Kin{JöԞT/;mgrkgpM ̒3~Aj]܊:Oi>`H`#,o5rTOaKt%ݥp_)!WgqU1N$KK3ʂBPv6'E7 Tm5As%| h;JKE Q*I!Y 2BNMOOYϊ]*<ġ*KÌUE]Q @KVԅg_Q+ dܝ?̷P痟gMN +2PAlN\h xU1RG.F)KH+U~}_r/Y.GAr1uI7e8ş =UQ2f ۍ\ZJ]r7s&򧦿2l|h/j0 w!B]ツ ̒BH-֊,*?<Ʊla{B"9@mH!NDEi+x1AJe~}J @XGg֤/ sYT;:2iՊW6$XDbOd\n1Bͫj߰Rlch50+I-5cuYvD7^zC.;ߝ9@5Bj`q}r+-CI҄vf..+EC!zKWY0)ؽw<&${ cu.#[k"z8 A)2Q6;/n WTڭ>,W_!xV?j&6PxF]{=Đ鬷i^%ilx%XBg#7縮JŹggʖ-{Hh-Rnj)swܘOJs2EuH֥*yNLՙOMߋV[~Cu??מsUl{l!,}*<ۉ1|ҶW+8// dchpb<²LA{n@ 8V/UۈJ_Y/tVft;D+x E- KS:_BǶ% ʖbS޸;/m Y=GZf-VU5W6|֯ad'?R˲{-eKV>gMc><ܤ]&\;2lR`K^U0Pu;b^WjEEng]3 ܂pMV*v˻ ־5W6$]U-i@3b@ %(RΒMZ~>;I2/VfdmDǮû OaNq^ګ8ΛX6ˏEue/]~ C犋մ|fЪZLRΖ ]z:І0YK{U<Lb}7(Pa#w%6r%b2[^V7׺4^Wi[]ZmO{~8r& 4fwj bF,2j)g[z`Gy˩Ѳ HI /Z6cMJLΟ +WĈ*J ίL@j?06bP.^+].FeԶًwLhZoilӌ0@$ M A6? Ђ~G}m7]$wP֬+?lG,o2cBAVd5e1+(v*sN,CpdD> hh$prTS,[,H!YmU^Z?6;n:1_'z; JL ;J|ut]퐞JSbWvqLr1^bY+eyYPq&+xɎ/'* p2 UZJ' McKY'ռk1'R~fJ$Zﵩa8JD몲 .3yEai6-vso]:SKzx׺@vqCthҟEPzK[O"K< Z7ʼQT'-E/+5vLfŐ˦>TGU BbDHYY9 |ɭb+->Jy-yVm˕DsEf=w]q^p 1׭_Y@' ΕZ_w[˴g,n\";dWm|BqQ?1uorݨoo7NOZ ¥Wi!njS{zqF܀ZY-!F9k{-gvbc.e"\K2r)דmm[娫^ꪾ'FigtSHQ$0a yAKF"0}#߳B?4٨_@g1owa='K<ƾeLl:6}b d)tPB>[uIto@Uay?D6,8{ȧ ĐbUJ`&p7@*~qQ+m92=ZpˇU+67 p2=Naf9"˞\q7O^J[<E@VG{ih~<}*ߡ}gddqyxuj٭x{6X+GDBЏIJM.9333}^<49 nkJWZlΉ* |eenm+lz?v;Y,Wт &k]<"PPi脡1~KP-cZj\p<otT9Xq`a%ks`<)n$U~t=l12_b558ʁ )R\ۇgQ/\~7*@d8 d+.W@p;͙V}:;xQ]PU3C+1z6c^w_xu wGw}DG^}+!"|l\iZXR(p(d 5I2W @m\[X_>o݉_+u&ne@̲'8Wc#VϾe"@> +:qk\L߼ M!. {QƜN+x W/xeJ[W\cbm9_8h|hKyD>DuW'@GX~ : IfC ~"y}yEO2Y;gim"HO>I-n[ Ny YۉfbZgDѧqt4,-1֫ J+`Kmɜjet>ֿ4 V8=v7c~CKUG;ђߒ[Dqa:Yٵ@P_ m/%\ (.la1J~4v4izS/hy,%/XRYcpaÉelFTE5F%XAWmeTiˢ>a:jl;`j[rm樓w*:lnXId X)v}???M)pK7Q\*^\)Uܒ+,%CFP$/H?F ?Q0PbٮM{/wv䇲lI @SXM'z;~~҆5О>땈۱^0\s[Ǘ^E%A_Qc4V#2?) KDQOFC8r þ2/]ĐQ(\ͺkr9^ X=PZ{}1+\ 8߬}!WLj/?$3O/YD5.oZUv]e/Ҏ6Nv߽0ƥؾ8>:vV0M?q_뵽{=/w 85$X U6gj@?zưݖnko]&A:;wnwzy1Ls*+lejU#FZ(ƓX@'D!=4mYUEa(UOpལ+ᛵkE& ]_4(\#^&鿰G ?+3 ;߹|+~v_?o~P}ZR{QkWݑs@1.zRJF )$X8Kob^Y~.?GKȖ)҅aj7Q8~@׀U=WrR_jQfT~b1R1ߩm-+ jߟUW`Giӳ#+"gq]%$AwHjtKs!y^@oZ7Pxx;'(~>^_?󵭾mIW?{k9kEU-mY\ʸq .Py}vK&Yz@Pa'NbtvǑdeʜhD^7BUE] 1Mi[rfԆ!3zP*%;?Tm\ Ȇ̇!.Ysۯ)޴ 8j5Q IDATbޕU1GeX={y&S1Jl-}N'mY:Wc@Z mڣze YgsEjQiWU<-WiVJkIИq4Oޥ3 )c0Oތ$1_Fó.l'΃X*Ӿ*ZvJ0tw_ @!0$ƣm#Ѫ)vg?9>1M'|­\ʩ)d^<-ɛӞd<M}e_WC(cȠ:-[_#vK ґ7N ܯf'[}Q}h6ĵܳXNj0߬IͳdyKq3yp4dTGHN:F@vTNӶ)v|Qh8G1+&MTRٕ:--.Ol߫j$-`׼`Z'iUcۺ{m%^c,~"OL?r+VE ~^q$3!q[߅0 nÀ'2DT$*&wB d1#df\; m=8vd*R! R.m+$yiʉ!I({:m{i,{y {P#[)rW L4h4 r OŮ~Y24AD@U ;4o!:"HP## -نS ඿(yx1t!tU@Vl! +vm, ۔8l cU=TǺE2b|RchWg~ŷK˶=8Xڝ FKѶ#rMTjug9f;uLJ,kNLF2v؍K) wŽ~nme_1d5Ί*Ru|ZQ4lm @]'>dyTx4- k'l5GALjj=nfƀ1vV\Вb1dձ/LQ[ևe۵<飣W>+(w/RBRV]I3mT篐rlX̻_؁9-`.yߏ13]?²(c'َѼYR^v3?sU֐r#Y -tEJ=;rr .Kp@c)9P˝Pf@EJwZZ/}9KhbgSB/>p^J+E<%S\qƏC@վ͹#eXad/8RBC5{e@!Ǝ|=?rcU[͕cQ5aҺm,ɛ^]t"%ێ3~X== %hNcgH|ˋy<m׿S8f?~_>qpTbF*v͙WXzpWW7ͩyUZ:xV PGTPz2 <3?V.ң' *"ISgY?%Fn"\9zlUcLf{B9L>>k/?P/OlJ)x;G-|t_!jHl:S;V ܇J]kЀr&Tn2mO @S9d #bد/ULS4/jjky 8=T豏 >Y #=G}nuz+)]o Tm  캻{q'PˑJ;/W^K31gWĔ檄[bv?{Zc5΂e8쐝I~OlYRavG}Oee<ҟBf|F$p WT_\f\MQT<0r*wҴ7ۥ-8F]75@-_šƪ>[l$KD]RJcmC,c5yo 3y &v!(J;ұU"MSu5}P,i=hr -1memJ|tm&j!4?BKv|, #2Va׵T!j$pt]lv05vQ*{w3Ʌ<'DiEkkP #kl-.Tme~0/ڿ['ZNᤖ8Y1,$SV6y?\QZ/c@b9~gh6Hw-NYRNN@<cȊUK9C骲$#z 1d?w7n~D^5!/ NʪNo+#g̱Zn~/!Eso=;~?Emm}[)@V?6d=gt6)1,x ę\Wk@Af|̴֔.I~m>HH؃#9 ih| ]8ʙ2*2= J=RMd1dx~|8K>-5!8f`{@(6V(AxQ\Gʭ]o/[&Od*<#xV ADƉapkHJ< mu\vp,)L3z[z/dff 캸U g2=6ȳ@Vr.V˞zbS?[642@z=8#a`~v:~93`cp.ʹΌ8ez#$g rV|ϻWhd^a%lW:rx,vI#zo5UV*jwvD?bXVUsF#*<ߺo7nѡ8²IN[I<`j@VT§bWPwGg5ya~<ŬG)qٻ v cGd8CHulR~}dJTͬEDo%.Hn\W2S' '#lbS"-cFz}=(e͵ޭ47DU6i#Lg߰mDU[r1I6y?L!s%ZUASLkE` _e2.L VQ{F<Úk:U@s3.m8j4Zdѳ~b)eGw_㙋-i'* U򕅻^ 5*jJ @lxm;rZe> !#㵯s$iUE'i4 \Jzyö1rpĖVa Pge vWbjMqSWnsʔVf$B\+GkC>>z_Cy^VtŚlzma;{U}8ޡp1rqF._?>4#h #ko_buoS4U` {,ҡ[6 09<j5`ymŁUR3C1Y܍* s߷𱲪CZ|+@^DLO]\@p{^E邟f.EJ۟mM_y(*tAabd #)7 ]%G qI,iH}jt vc)uUuta[wdΚ렬V~ OsF]?)w<C'X+vn)02ݍ|"T5z|d2N.ljLu:oǝ+y AMA \<'BP&y9#:QNݻ'`&HY|[F~LN߮؁҈N %;yo͈/=SYjdRgۏek7sP73z^Hhly=› "T_IX"x'нb(|4l7zsP{t(k[#J+Vy{HL4!ڳXgʷ%-Ս"E.; mjG7 D- 2o'w8ÚI`^xb,xvK9S#馯cF{/`<6htv@O2ã ϋ:*[0`X0\EpBT4zL[/U`LK7}r}}l$aTg/YӦ=V󋻫+$LVf +%˷nvAM ڙ91Yɒ,AisjGL6M !sDzdPhQ2jkZJۼ:br=T:Aci2FИH{n X P2. V,V6~H_KǙ!/U@2f޴l7b>Ծ]O[kt$ U_v8s`(Э:3c5;A4nՂH>A_Nت:F򧢲>6jVKCExeE:*\̞"@Đc}O0F2>v8L>EN豣8. /%oݿ8>HG +E-,_Dܶ' +#&쨪=\.niIa0b @-\3ᄒ؄xVOk?JL=4WT5&N,v3H'|nIJę0|~sN pxYKlw9'9 4f<@~n~~&)0z,p.OHƣ&XT;Bhm|5"SѷZ+SXF❭Xηٲ-/jVzh#!94vP!^?}̕go{ q,*QRڕ&/n)v_#s2VK28~3hݶ!˨_ԍn0f9Pwdݱt/ nʠݕa vM~*QW1d@^.B.,>;Kr[ZDaٛ801dlŁm ݻ) Z5Me|>{r8] j~8>7_X.9_ >Eϸ¿}?˅}tV W4GXrc3h0 jX$bʼ,sFzU7ya S.fR,|QYȜG[C8(mfYl zg/_-}:䮧r/ўGpwAyF-ӎhERd:/v|,F<2+Wav0 qeE%rtu׳K8vYn.T;L4^ u$y/@tѪ\ !bd +J-:IDe^gr{Jm^PaQqKZy ٴdlldwS1Fe^@'% q.`(ꤴ6yOwhV}.okLs ]pw4v_IiSqR7J?A^%xz:Nwԏ\y<"oI~(j}\,ڦ @@{_ס" Z@U pe}02 C䨳`ppŃZHɑXƳ/cP W¹Zr./WpKl&YUޕMT9]d#OY06 |@i•Td:Lc9~7(KQJeVƍiV'cĥ/fP,G%1тZc]( 8-L{(h`,kTQ; →h @!~s N@ lڕP%l~?_aܦaD9]ǁ-<:rtbo^Y1|X%'uֱ=翥 SW"@L9F߷g1.Uy,Fd.Ɛ]rM {/1KUxpc;WpO+@T,W:9E .>NA(N21|kij#oݑ,Pu< 4_,e9wI~ϾUz qSjJ hZ}._3}=b^û]̷PUދd袭2.eGh}6f.@cJJ7}Tq׮Lb׾ tm` ݙֳrjI 0 PxM7ړ}ݎmg[${?+gI{|e͖Ku#,Y a=~P|4^w'w Z )^f5`en|t|PXK[HgrҞX n0po7%fx6h\ -a?XzE<\,|+E<>Na%as7nC_G+PA_H^N6:x9ҼQ W mcKv?e>2K{x{eG ψcSHRl:7ndvm#j{ha $4kŎb Fcr97"n4 SnZempֶD)iÒ:Y9²JfL#1F;9M@Ejh@l[8y#(}G*u 6MrgҔiZA3:N5|Uu_wM:_=,!dYP@cܱ! bn^F~Z Yg=L4j4t2`j!Z6JYC>s֨"KcfI t"BWjy/axX4i='|:hQXUi-'gtJde^V t>6~Z]|P VUɍu~ sQŋs"Fk- {3֕' آ[(^b; `#ÀMXc+!݌&ZŹk n, Wj&:6ePˢ'L-l?77J).Hn23;} yѼ:Ig}iYS[0# .<ڳQy h}O'3)nzNۼTƉ 0B ۀZ"ddO7 ;j6vhhys{ hӶ7ڮݧ >YPv2庋|]}{C-PJ(w $XZW&h(Pu՟ݯN7Uj~BWGNLjfvGgE);*\k:~gZ-]0 O{*]Tx|@O:Shh@3sY5a5Qaz$ķ;M>L%P0|~$2ǕWks}2٪zT؃{i\ocI9ԫk ds0Ei2.y|WP)Znv6 7N%UBs5Yjғ* aȕF.кq,hh-pQ&lRYj4[ڽLH=,M 1d@rqH08IŢ1BRXJο]Z^qt}>_ % ypx(WqA=- cĜ>vV?{Øm Y DA뺂pAEɴڧ5ee;6zc] /=DK7;Ztۑ d[k5[Ybw V .}BB is.jgKۍEE XTf&gP41 Nt '' ;  E%#͆$Y[̂Z3%_`nКaV}X}RpKiqCew:ޚdFJ䲥5Ȧ>hJ0 nuF4Eڔ$i4&VnJSRF~ocx'0%Sg7Y)5V;!ӝu(s74tサxE䑘cPD>ީޯRLR#*wbna9^X0h,z2̺;g12|z?< c KVX?I:rPj%t0c#H9r_Ͱ Tǒ! Kyq%)-2vk*5Nvh*eCu[A.Tf)ǂnOוTZqLYGCBۑP?@ͯ1f|hv`j95Қ.F[X"~_.VP`YWEm٬fr=lnAjq6_8}ގ]I:*+-و'xA7>.G[5РWwzeӝI#*G-${kq+MڪvǎOA}[[Xv.2;,I(UpZ]UZӱ5 wWuʢO\vvLC1IiɣM[WYAY}J@|`g*@rg$mPRk.A޳yc5,y4[X,+[#Sa4{jd5ȣ.8K WCwkL2c;d'M8}$5d }><Q;<~1d&%knF9 &,g {RkcvZy  =Q 7&P4tgy6JŪLA#Xllg=vqg+ohm#'C3ArP;.f/Őml T9~ثP96+VjzpS#Gwx>?Gߚ!so:ǵ6d|}}-,WG¶<Xem#f l\waz̢\owE[lV܁{篛%/V>MS*a ^ȤvjyJ"J(固9t]7TxjL?}"b*Q ykJt%Y}y^t:%;>/x5>wwf/Kt#  P5'ttbVTRCd 5xQb-O2"=.br`ÑeWvhʪ/ah5j|9|h-V̇F%y8JՈ4~ߺ'o\hp1D sղZ ϽA"1S1~m[X -z,嫴w| hZ%m=| bk)rA?`ZdzWj".P ;?Vowbr|(yARu0u1W))?g9w℥<ý( @XF/wUu`i:6Lm<6mb'y_._ 7`B"oE^" j{]ގ:BUqX4qcd<thN\3ca8fJnu vReM),qZe+]NTOjxiי}豭ΗSީ$ _#H n r?v{U,a 8m<AW˖$X&=O-sYJ95Pm=!IKӭ*gw8x.ɣ(ʮ"ב-J)V/  a |Z-q#N)9 5$e3Uȑl~YfX[@;XH+m M9ce{9[ɳs;.vO!;^ :I}ui= ieX&ҬM;f\w<;7{tS,V@޺n zprha뼵r̬΍ӟ~VЎ>v#;5{y,nd5_G lu{5Zvwe_~ LZ$Pe)?S[a?Tl'iaC,@V_?@)"`UN ,M \Bg?z 3Bƌ.oid[)6?>iK.p w3$~n |.}6vixbu]XŻ?n'33M3`v`ꥂjTF7<C) mAr˞%vu Dv" tf-O6}2#e'@V]yPepNdn|R@ kIKEMޡq]uel79Y]R @>XڹttUIZxU5\=cxoRc+dQ dqJ{AW`-2F2De$Y%]c]ÈCPe(.M#_GG!R]b ۺ=wq:=VЀ}Gxh97_C$9ƭoP [pkKiȑr)&uHhrZǘ2a֜]WGq\+drz9k%`)qNUȿVpVDqW&XZ=;*g8/Zb46epȶPqZ9uHnÙ9YĐ[^(3AjMG*.ʅ*.@?T?uֲьZ :UЫ#Cb58wس}4{7߯Y Dž z쩋Bi5:rs5uH@ua<8Zc >`jyũ ԽFɇZ @FnyёJjd_oc4b#r[g;\|eC?>㿟]E_ 1d'.vzSqo%T“G:**qĭ["~zd>zj [?j[w\>m=FƇ-ӧ.pD VƐ:F K)E;"ZW}| 6}1KX:`ub R IDAT!Hbu߃V>cȜ>RYx̓[{]-"kƲ "6|<нM ٨ovx;X]P5w4.Ė.?16m ZGl=Bv6C<^9Aj콳VSz:Yq~etN~جCWݻ o%d]Rm3^xLIPQ\#Z*G#EV0,jJ^'N_cȨnRY8n47go?3@l2W{En5 4b1 0] i5[қ6efMvZ\EbȠYB;p,b⪄-ȾJϻ^*bPٲ5 % ,0 𕸓ƹZO^[꺿~q.\!_ӆSE8uzJ8mV}fz.T_PyZ\5eVj٫GR܁8byuP;x1B1"W]@&Sb$3ހ:t]⩩ dEk#yE p\upIMZ3ՖpSFd_SxA7shf5xGSʚP)/Շ4!T;ǐ񆟓R (rʘLQi嘄W޲U[6}v:I^40]~`UGtYԟ*rNͧe,MSztTIF27 ciS Tا:Zְ*GUk W}s-.1W}!1dVWхqR+Jg,9x\?_Hrdޮ'kO7ryp˝TT8nW?< >0BN{Zi.׫BvwȳK{\JOb]sq#Jt *qM\ E p$w!}u5KeKj16yaKZ5i;+4qW)]-T#I-ڕw!IJ^q. Eb{*N.5Uk1뜩{M}WZ}>МgϞ?8љy䬝.Q}ok"Wp)0R)kz,6CXA 9??i')7By+ b5sA[D dD8͚o-;ftΕOc˿ACQΓ$f-,단HRA̪XL`ڶYg  3u+gJ_S%7<̈8ns=:W(8X>q;"QnhՐ$3DC3XerlzUQVkG jRuTH ̮g~s/ iPN [9d"؎1)@ߧYC0a3IzMuu˯(,;L2t\.%b,5W @Đ= !jJ\ }C?a=a_l3e M-~XKGn,kP/xP=VW䩊T7D9[vT7` sjAmi\'Yz0O1TGG d#Z8a6.ו02J*ϋ>"F$&.m=VU3CqT,\exrC;Z 49qV?j=,KxIuNTB Cq7X j4gCk;Z^x EH555Ph=y16Oyע$$9y:LqpK"`5,RV3ա dPZ& AYB* d"|&iw=Vsl &/k'v0V{4B̙#,A4lajENJ焪hjk[*ۗa*ӟ򒁌MD>Lqjy-nJFx]ڗ dR=TH ca1d?8xKUurPG(U+}<[~dḔ)2\T2}:i񙩨M_\SAfbz&N`+w/lfւ;E0+%!UyJ D@K~@?-C/$ :;d9 :rЯf\dCYO!V/qkp@^9}(pvt$1?V xʣqח& 5)T)-K #tcu M\5@LoE׌z$ L(n{ښr}cC){~Đ5;1dp[#ܵФ2M]㱔5lGZ? N@tǓ ϭ< @eR!l?ΒοRMRΥYϐ4krer3aj~bOi~)r}cqzZd5I>(4~ŝ@X)ڤqW_?~Đj붌")q3i3q՛$,W=UB~ @GEp+zdu59&?Кy So L{<g%1LyǽfYM{Enq0ݪrFMY#3rCN%Tro|!hh'8$G4a(1 Ʉ23q ϪZcirٴ\O0SeshVP uoDPw)hh:@Vk\ gRAv]uRut 0Vӏ " g&p95l ˵O–h:A2oGIq=OXڊh=-!n؉om*܀ K[Yv8:Q$1/LfKUv*'k:v !3 _?cjlF޸ƈJ7{<]kpUӫ Z/1d&k>i{8Fa$b4j5>&G̑2X@5rc5wQ <($o __@xQkW|dVgjkO}uVk]ӭ- Ur TD2~cX5np249Ro^#Z%tjo֯>Ht48A E|K|Vtp3>+LVȤPm582,~@v|RX{Jr\I Iz6>ڽ(ҏ$Y]G˟P: TT[WxSU/AR˚ocF+H1% loܙO矃yɵ mS4rqgKtL,W=tz(dHAyZ$Vڪ5d;>t(xt]~QrZEcKv<Ҩ4PLe;|q"4rV!<|m.u}Y}f^H^X@v!''iϔ# 9]tT5֚2Br8ũm\ϭWTkGkhԍ1d0 Iٳ  XHn|dYӳK(W$s/0"KRo[ֲ&EY~[׬g#V z-^ZJ:,{>Ldgpmv^/ \jֻr$NE=g6>m$jʓ4>mDs %@V҆[/sqR#u9K' gz{JgväM 3(δNd"ld+~hljx6#Luf9 ܚ ۯʱ=3zل[[75l/䟫_@,w8oBZ (1휬?ӢZc_HJޝIV>^|dh,La7д\A$\Lz&꺮5r';*²|/ߝcntwAk\If킼h8/Sk*Z>ثEZVkj8<+ $fz|}eql ˯=Y}"UϗC&+O3@ZDq;K 4g߇?;i"jVUCfJ\3Xg9YYXGjB{뭠dw?Q02=DJF:%y:&{Yn)%zl`=Ouٸo#>abȺ&3C,GNЙ-"`ya'Tv^fk-8$x-r9do~ 4C][K۫/O[;vMV.s9xU0_;cukj$xX>?-~Ke{9'Y}F|p^5ns7Y؊}\}vr䬘Nm(+V-S"Q]3YW;ʫN}[i%Ğdwc>k5ߵ7?v/}W~yt{}  A7j66@L,gOVZ@7 ivV_I~fq&Tq@+K;60QO5Oi~r0uvʯԏ22O1 ݢqv3Dtԑz{}NxjʤڶoEY }#TS[9C]gs;X8^o>7pHZ_ ogJ[v"D7O`SxY*Ο2TtS# k6lNRA)MYsZ\ম+ꓤEG^ֵnSh?o`cSfJ󞙢vΛ>t\xOy8C IDAT %U伓/ TSK-vؼMﺥ7bݦ܃6![ۣ Gxl|,lvJT5zTg~̿ 0ҔrU5j UBBiߗK@ B>*,\P|s{Ӷ`S s~n][SaIuɪ6:,bя` dŵ߾psG,M_憑5thWn'ZHzh)ݒOQa!#~!@}D,0w7#!nLGVJњ%@>MHBw6lPf]p8uƴlQ3l۹f{R]s}q` •P+7VWK1pvuy5sm|.kL-ȚyfAL8ut~eg=-,gzڟs9ԔTIGF9]TySt@ l*Zm-nMo-RJ+a"k~g55HR6kwL]kVupaOrn!+g)3mikg,3uS}#U+wPPVҢHݿc]ښvfro>ShGM<HP6O:[3m)nԺfyxgVe_Tqc9Ͼ6"v[^׽im. գ&!c|% &S99.:nffYnVVs$22+H%*-犾9__l8h;9Nd{p!2 -._ֲ8+:og@/q9^*X4ԲyLjd CD* \H6}/!Dcmf”获TSS__de 9QZr-e[ՅsΑ-bbiKdD@vES[ԵspVSST6< 02%}Ő57 ].QkyvT+dBX݈8JsZ+qq gqV7qKdê盵.TJJWn߻yJ_7Sr)WT/z0u:BZz 1pvy>;JvʺTɺv3/~rG+ٓ#G:ez\a ]=࠯&pD~r:ҷB-;֑ˍRzNŗNC3p.jo~prHU][+[X2x>'i48l,#sMjM3-XH":}nYKz¬YWCg/KuzG7u^4hyPqu?d>,Z`0 K@9y\Vn*\zB_\WWNцRdo#j l:ǀG4ۆwcDgOʹl蚃kϷ=gVG2w8x4\0 5}@4`[&[7lpM`)hfm=x&ñA3fV03k.S|vΡ寯=qv/O*0t9ǰq*9B[L A[6$ ֱ]HR-hx9Z.Woq<ӹY%w.yg'zk Gc?>rg 9˯pe5~m5z#(:`gh9ď!Z_\`c*KvOW$׼mYbL/Uu־u@ { *UMRز_R@%~V—V_RUEuV߫ rx,KUq.NIxב0Sܓql%*6J1 m3-KkMoﻉi] m˽,¤{wz62l)-f! dk~\D8~os JBNk<&̮$57Z)[&)s렚f9}Mee+[ݵ8Ib*SdnAUQ-{*X}^B7 Bۃrlq{q<vvPݩ/;X;"YLc- 4xRЩd=jd+ HOx3[^O6 Tⱃ je Wfm؁5 ` 0r4l:4T C:lmހd6!mo'sdgٛucwm;r?J^- NkGb9.͔d#q~g^/_sMˍ-}F)}oP1d[S1 [тxƬ ac5Vdo ˿^Ux^6{t lz+D Y0nsCyk-%CV7,e 4R_]5G{J{!_Ӗe~Pvf g{c5X_=MB?ldxGWjBpһhVuV(YZ];Gօf@Y<}z wҟ՟&<ٔпҎY"WE23kζWz6 N )}&TǨ,br@ճ_K;v F=s~oy븎LveKG7.Ow}[O[G3Vvyr<}?WL^m]kr)Y3wh#Cv߬ky?{5%$"I$_$;Ü{Sm:h_,gl4z6ٻOY dsrqM Xzgϱ{q޹ :մ/ e*fCj?|OZZoNZ˶54@65Xp3[ Pޠ~Eafp(ڋ_:MŦ#Σ<q<<@ ׋Ot.jgﲾ,ȅ_ ڞh-Hhh-,X{sPM= 0cwJnj1QBYOwѹ'w/l>r=g 1;(՞zv*FMUшˁy~ɻx7 'Ȓxۘ-R3ަY{Dn>&0؊'SĐP7$aj)8˼A&@6b#wBGv0seqށvb;E9ɷ, ՎV_3Ig;^J;:ry`wgW6{dWMW#?wR)\8$; f5+)"'!sOTzK *Lg7E<;a]oώ.?B7š* ^[O# :ꕐWqAA`JX5<>]EkAlg6Zg? ~! gq=gm.]rS?̠r_};ׯiɾVnfW שW5?5! #GQZ*m溔p`33M_m;B=U_y7KF9 ķyͳŗ9:|Z-ΞO~},&)]8[ Si9aB3,7gF6Pr+43u J\,R/#Z"L|ƘE+toO[^ Pp0>7c^NR5<1~l>o5%6Ӱۥㅷi 32cV6 u rCx57CwM5ʙ-,w=`9Đa5Vl(;jZc5 3 dz!J7r X@3T'i>K4xDYcyr:?jئSvg$>6&qSۢ1q'xRhvZ˰e+ H-d<ͣ^htlZf;MԪIӭQbؠF&vuÚZH$~"X)eY$zdzab{0`%x/t]:{?}LNmayK;rǦzNrb:_.lgȆQ򠈠vN-' nS׷غ8 r%ɑyqt-/灶S)'[w]#ad[3-'$d[㦛M[Lj=.^1duf1ZS2Q߸hG5nJvvt R5_+CN8+,lGbj%^1K-0K(nJ L"PvfA*DDjWǶЩbv,>G N@?v^;}ؒ ^b脺wp-.;sf}2kS;m9ξVYsdu?;"ј _=>h~p(^[<鱘z!F s2ns-Ś3Cv.@+ xLszOXMwv~~Ԭϔw;>?r8X;vY큦cƘ P95ly˲<`+A5f;Tqcwܚzq8$28%\OYόq[{u;u*kǨ}_ʱG{*[}IF&c?pyVӵ cO}q~ϹTg_u6oR\ud]8'.+t}~x_~7̈́FT<|'vȹz\-[5~d. mT||Tn?1׬d㧡mKo"]Qݻ|b}miTAX}G +=p2CZK[WTMЩJ1 py]|ãaaB(:$L(랶]׽;^5ĜBzd`,_}NA [D38{QI2;CN dːd&MxDAgVj=!o~&!C@<]`r㪥hcpU[3;~J0[zU_JS3d.K sAi'j6#naY\s/*n]<9',:ad92o@ABlL%q MǴs{C}c}Z'-M;R s\ۤkR=s֎gk]E8hx RL2甃zM|*m=%ЖU8 (^4K`9.iG4maw~~~8Ou6|HʨZ9ǘ=\?r}SߵqDź]hcXʖrA"j~C[Xida7ǽڜ|گ6gI૾K&EVo7޵,=l2pl+JERk l!nIDATnwd.=F'zd5[1aF~zSqBU*qjr?d3 +{hpA_9[P %z(@|LxbCEF`ᙨRXk-DcD(ڟx?4~.]+lv,7AUuُ{?t:aCz(C!GeiT ՞lA* NYdy;܃n>ɒЂ5`Z0iMu3Cݿ kn0x"Yuu[f'ژb Nݎ.P?kxmVc˩C<\8>uXu\5u:3b(|cv}4B^57 HLo=8E躮9 &bL[n7[k\ף޵Κ%$Mu4͓ŏ,5ևVӈp?ys>6lFߋ ɐQq> +p@D$@VFV@Ke(VR)<\oVada7GfoJ*ϚQ:pR@)OLR&!Z" 9>/Ɗ}/R7,.͸5V^G ǐK/2iu[ rǐ]>G^m87ۭ6<J3wT}AqRY,^~ޘ'Ő]0ۥ:ٕR!![yz{= wm +@|i{7l6bpvPRgkT%(;JpV 3ۑu2 N l|GVj^œz?/~?=l5u_3–5xp a6?'|- P[8JTL[.#sة=aG#a}k:؄Bv -zde5!p/xw/e U UB@~&G3upXQo;WN;ΑUolaj~8BׇT@<d%z,G 5 ToI4R-1eN̯|9,gj}^2^Jϛk0F$ΗL q0 dHT#v?zle9ǒiVN=[< ,z,@2X 3UyIl3\7[_$9ȳ|j(^k9Yf\h-Jrƌ[rȈOX]cͽ /tq\,=3+,fw,a*nۈY xyd[x :zlPLqi#>n8Ǝ!מ L!ɛJRc%ӑxk3JƷ@7B4 T+4fq !םㇹrЇVh¹[QYqMx9 ]n~G;NܪYpΗ% ·Sgy3EHĴCf 6?L%kp)8Qyտb^cz @PŪ -vHcQ_ݔoףP֫S%9l >O?a^fGl{r/L]TI`_8u d׺VD5"4E'~71,~|oi*s {hdUeJPw8}nyZ+R^V4ΥwX5&ߨ˛n v=Y+e>o(c *jb&YE+_RǓ~{i:6dߟ:hG1Jg|{͏oV/`^qY_"&C|~_>8Zn:1.|5#ɶ%)PkaPCnEýnQU.h11yfs=SJ|ZȴZ

  • 7`g.^ṋ_=k{N`U m 1e7rV` KPOh ji7 M3zts$<7cH4,.8;Y'EH՘?)fw"$34> Qިkto\E @s|j=JXJ5 ?ƸzUo%؎oWzg(?\Ut&rȑ`w_?Nm [K$i% Us)zI@~~ 3~#әڃ=gqW)UVv!g>SJ9ӭz;9m ^.S}Y$xQKt)fp哤ʋȑ_'}(ITo@pcjGdhaI1Yj#Ar&(FL1 < XV.CC$}h=/g]rUFŐ0KH ։=,p_ :@>>-@NY,f!.QzXV2 {l䛵11|{Qf,3V;{l<D6gQ3W&.}DpGt V[=O$_X_5q"/% ZuS1Yb.Uxg8PW%zצ'k)3wAH?3/쨊ѥזI.@88N3q@ wE<g|ߒHԱyۧ*4X7ͪy&hn x+C2 0X &)qaB 3%LП˻CIӄz }| tD}ۧ;k%!Unz@U_YZѣ,?Gj,ъ<A^R#IENDB`stepic-0.5.0/tests/test_text.txt0000644000175000017500000000005613656525370020430 0ustar kittermakitterma00000000000000The quick brown fox jumped over the lazy dog. stepic-0.5.0/tests/tests.py0000644000175000017500000000136713656555033017365 0ustar kittermakitterma00000000000000import unittest import os try: import stepic except ImportError: import sys sys.path.append('../stepic') import stepic class TestStepic(unittest.TestCase): def test_stepic(self): keep = False stepic.encode_files('tests/test_img.png', 'tests/test_text.txt', 'tests/encoded.png', None) stepic.decode_files('tests/encoded.png', 'tests/encoded.txt') textfile = open('tests/encoded.txt') text = textfile.read() textfile.close() if not keep: os.remove('tests/encoded.txt') os.remove('tests/encoded.png') self.assertEqual(text, "The quick brown fox jumped over the lazy dog.\n", "Decoded text incorrect") if __name__ == '__main__': unittest.main()