pax_global_header00006660000000000000000000000064141071260160014510gustar00rootroot0000000000000052 comment=7147c49b7f794fd9b75a8d87687a41c9cd189874 chromono-1.1.1/000077500000000000000000000000001410712601600133345ustar00rootroot00000000000000chromono-1.1.1/CMakeLists.txt000066400000000000000000000040531410712601600160760ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.13) project(chromono) add_definitions(-Wall -Werror) set(CMAKE_CXX_STANDARD 11) include_directories("${chromono_SOURCE_DIR}/src") include_directories("${chromono_SOURCE_DIR}/src/renderer") include_directories("${chromono_SOURCE_DIR}/src/circle1d") include_directories(${CMAKE_CURRENT_BINARY_DIR}) find_package(PkgConfig REQUIRED) pkg_check_modules(ZLIB REQUIRED zlib) list(APPEND LIBRARIES ${ZLIB_LIBRARIES}) include_directories(${ZLIB_INCLUDE_DIRS}) link_directories(${ZLIB_LIBRARY_DIRS}) pkg_check_modules(VORBIS REQUIRED vorbisfile) list(APPEND LIBRARIES ${VORBIS_LIBRARIES}) include_directories(${VORBIS_INCLUDE_DIRS}) link_directories(${VORBIS_LIBRARY_DIRS}) pkg_check_modules(SDL2 REQUIRED sdl2) list(APPEND LIBRARIES ${SDL2_LIBRARIES}) include_directories(${SDL2_INCLUDE_DIRS}) link_directories(${SDL2_LIBRARY_DIRS}) set(OpenGL_GL_PREFERENCE GLVND) find_package(OpenGL REQUIRED) list(APPEND LIBRARIES ${OPENGL_LIBRARIES}) include_directories(${OPENGL_INCLUDE_DIRS}) file(GLOB CORE_SOURCES "${chromono_SOURCE_DIR}/src/*.cpp") file(GLOB RENDERER_SOURCES "${chromono_SOURCE_DIR}/src/renderer/*.cpp") file(GLOB CIRCLE1D_SOURCES "${chromono_SOURCE_DIR}/src/circle1d/*.cpp") set(RESOURCE_DIRS data/images data/markup data/shaders data/sounds ) set(RESOURCES "") foreach(RESOURCE_DIR ${RESOURCE_DIRS}) file(GLOB RESOURCES_PART "${chromono_SOURCE_DIR}/${RESOURCE_DIR}/*") list(APPEND RESOURCES "${RESOURCES_PART}") endforeach() set(RE_SOURCES "resources.cpp") set(RESOURCE_PACKER "${chromono_SOURCE_DIR}/packer.py") add_custom_command( OUTPUT ${RE_SOURCES} resources.h COMMAND python3 ${RESOURCE_PACKER} ${RESOURCES} ${RE_SOURCES} DEPENDS ${RESOURCES} ${RESOURCE_PACKER} ) add_executable(chromono ${CORE_SOURCES} ${RENDERER_SOURCES} ${CIRCLE1D_SOURCES} ${RE_SOURCES}) target_link_libraries(chromono ${LIBRARIES}) install(TARGETS chromono) install(FILES ${chromono_SOURCE_DIR}/chromono.desktop DESTINATION share/applications) install(FILES ${chromono_SOURCE_DIR}/chromono.png DESTINATION share/pixmaps) chromono-1.1.1/COPYING000066400000000000000000000432541410712601600143770ustar00rootroot00000000000000 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. chromono-1.1.1/ChangeLog000066400000000000000000000004371410712601600151120ustar00rootroot000000000000002021-08-18 Thomas Perl chro.mono 1.1.1 * Replace a CC Sampling+-licensed sound effect with a CC0-licensed sound effect for DFSG, and mention sound file names in about box 2021-08-12 Thomas Perl chro.mono 1.1.0 * Initial open source release of chro.mono chromono-1.1.1/README000066400000000000000000000025731410712601600142230ustar00rootroot00000000000000 _ __| |_ _ _ ___ _ __ ___ _ _ ___ / _| ' \| '_/ _ \_| ' \/ _ \ ' \/ _ \ \__|_||_|_| \___(_)_|_|_\___/_||_\___/ https://thp.io/2013/chromono/ This is the open source release of my game "chro.mono", originally released in Summer 2013. If you like the game, check out "chro.mono 2" on Google Play and the App Store. The code is licensed under the terms of the GNU General Public License, version 2 or later, see the file COPYING. -- thp, August 2021 DEPENDENCIES ============ - C++11 compiler (GCC or clang) - CMake 3.13 - pkg-config 0.29.1 - Python 3.3 - SDL 2.0.10 - OpenGL 2.0 - zlib 1.2.11 - libvorbisfile 1.3.6 On Debian-based systems, use: sudo apt install -y \ cmake pkg-config python3 build-essential \ libsdl2-dev libgl-dev zlib1g-dev libvorbis-dev On Arch-based systems, use: sudo pacman -S \ cmake python3 base-devel \ sdl2 libglvnd zlib libvorbis On Fedora-based systems, use: sudo dnf install \ cmake pkgconf-pkg-config python3 make gcc-c++ \ SDL2-devel libglvnd-devel zlib-devel libvorbis-devel On macOS, use: sudo brew install \ cmake python2 \ sdl2 zlib libvorbis BUILDING / INSTALLING ===================== cmake -B build . make -C build sudo make -C build install chromono-1.1.1/chromono.desktop000066400000000000000000000002051410712601600165500ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=chro.mono Comment=Very circular color puzzle game Exec=chromono Icon=chromono Categories=Game; chromono-1.1.1/chromono.png000066400000000000000000002702311410712601600156730ustar00rootroot00000000000000PNG  IHDR\rfbKGD pHYs B(xtIME 14=^ IDATxtٮ$ɖlvuLu)HlA7TIwQ{pR]\dU^6:c wXk11ƀ`cE3:09 sΡ{͟Z{~a9a %m^?1c k{{ymZg`.}?@k07fVa}@a}`X2qpޣOF9[F :F0 y'큼?ӊ;j.!5ơ !1&ˁzysupq!hՂt@ [C >DcC}d8iA96ĴqYQK55ˍN眇3<5=sp>Y*ZiA9vсe1%cc-k=|Ԛ cG` Ԓ;Gp5h=iy c-qwt{kEo cB-,78kxcA1 Ȃ=߲!kA]/ykߗcg<1o6qAޘ<0xogE*=Z juGX0p0߼! `` "rct``hS>Dz;z-|\ :7Xk[Eپ`zC+{k|0/ڴZ?Z{C96z(C1| dt;OZ`0Pʾ!syaVvm"` jƀ5^k;(k !»no0ZV3bLcD{r/`r:}b3bZBD7qgUo\h%#",7_0&k΂Ɍ6-9Gt^^[_C4S"W0ÿ\Meec0)#XFXh/? .,:Å^ >>&cûZ6tuf tc b\GzCo:ʎ'8-ގ1:-h X3²mPiz5f8D`5{[E^s ѫ8Ip>{ڄe;>h iG^A'd:8P|'UQc@V2|ؾ~0j0q֐xD\nؾGXV:Bk5tm> iFGG/%;^+z-(eG-E_\BӃ -?ߺft6E;lՂ#? RU Z]vsc dϕ0>i"?д/ڱcź?* .D4޹hǓNxyL oy,j|haYń^3,v!*y A"}9h !pEƛπ^=*F 0f c g؇X`aT@s4Pyl,ʾkcV|X*\H 0>xn;temi}PPEBXCٞ[% ^{e*@UAH+j_` /VJ(K?%V半 k o}){_OP" a !ҳU3]UQ*Qc:JcSu`Myx%,h/ >QŲ> y(#v:0-/,S qI9Ѕu8aF}Ԣd`]MÞU ZjwI.°h^E$z[:1`sfrzy% uBH7 @>af zy 7V݈~R pbk 1F8c#ḑwڥ28'aZvTXN9z֝C-%i%mw1\XP2!&Cet"ǀR3ZoTp׈o8'BUC\_;X.``P >VN8崻.8" Yt _Nya \f\Z3 +á-Ĵێ22^0yc+>U}֡n_01:l!Rѵf0Z20F0MND_r!,hkW !Ru4#Ol9![ͨ%cIT:t.{)6#,N5`f p3VR('t0fxj&Rb¾=a" ֟X KV JIxc8og<:gfp?/ؑ1ZT֡W=|/kHy-+& =A@ԝZMXGa:eAB_{s%q``: K{"^ȿ2\%h+ e⁖wZR&n_1hA=!FOFGz>$50Ƨ!`7 _Q伣;zqLWhhジP 7]7OZ`iEߩjM7|=Ah &!o0`2_X&i K@DP2ZE!-؞HˍN`D߉d?\!;aq!Z9@>vZgYrZhp蕫Q ۃuL0Ķt] Xlay~~}xSp=E'eAP?ϒ|~` .{.j`h0RݼP=%\Zݘ^ϟ=GL3`#:S{ظ̦1]'gU`c` -K d>+_[GU11-#h tt Bqzj>hBJr{rW TJ'e\nI`FIGXVR;m`* y+:c5T]1nyLV1ZCd ,zG7bZxE}}_)N*D9-B (A J4g6 fb=Q],WeU JdZRҫGK誥 {rO=?y(7z`dX~S!eڌ)ܴ| ~~ Hn(.q;U.~_`Â>Vc p!7BA||r[Йz,51@mE~;=ܽºDw*hFewD'`-o U=tCח~hȐ 2B҂7,7;`lDMן<զfST+ec2Jrމ* 8ra l;'%O}oXPz޴xxA3v Pޡ04~m@h|xP7fބ:Q\֞ ݼes~ReD)ڣ pwE#u.qx}H'ٖɬВ^*p0`p?WK+^.oTZ20d7>|uV1z,Qb\PA#KڮH0I֘2lPJtq֒%25e0 ID@>ۃK:϶ZhKb-M*L ->/!-yn }2}cɷy{K#0)-Zh"Z1₼? xf?7}BYQ xmD3 _1(椐sctB("%c4T+LExU&4W=ӏqB:j7D֌[LRׂ›+0E5a50Tb \h,J,k'$?'` A ,D3 iFG+*A~(x*'w}X2K=q}hM+,eߐVtN?f@P)Z8@"FVS?뼮V{)>:vj1(j V>ZV3W0H\2`-Q}g\X2̇% n*Bρ})n)b+1gtsOIq} i 4-$*dϧ6zjUm>缰ĕy?o<ݥ}0R?Ϭ¼y p ߾w:}$L7ZL|M( dBؗUJ">Xg/S%Ɛ qЎo ܿ)z'"c ^J荁,zSy UhYcP C EC8E#qF5d]GT~ mXĴ`=);ZhSYzGLn"ӊQpV]J>P j AV lܸX[>\cB6 mGv@G R7_'{AE h.ȿQVlj1r.,_OJ"]fsu^;QpsTF2 $2ͅxFcyސߴM9 ><}\Q =$HZx~OXL:APN y' ct\p*)>?o_h5cLzc>-D9O,r#cԤ %|ll\tj!x·\Znp!"i`sӱ?U!](^-LXZ=B*&}zr?a_IhY%S[5̼L{h<7,PmX$@N1UۂY3@ #Q p/w:T[|$ @?qO5o,mNrv ąB5S9_+XPӐ?O+PEp^9>BHwV:yxاӏX#kýG ig5zQkv ^_*]aס *t$`.==+ q!؞{X ѐOIeIgZoHl cag!>`JȬ(JɆ DZ? c#J0-+!$(F6^n*W3cCZ<=pXB L2F :/6#/3ÅD9܉aяݧ.*-}(e=j;&-@j22!&zc}v}8WH 2U$Fl"ypB+KkT H +Z#KAc{reMjmyB'VK]}VA'#yVAC.$?QyNrCXI/냓|~e{byGfZ5o8^$V8@Bz}4qks5xO\)B2J]H p ybLg|0 !9D%rSqNXB[ږȳ8: p!Brdmd{9P^!2>A%Ir2Db&"n?9I?.7]M@z'0S}tӴa53䍅S]B@&:~Z(t7NaJ\hIsp$X?7q v_:&"K=97im >H0:ʧJ^31uC9}0FeM@G2ąO {rG+$nL1:|\L18*>զ+Shp™u.%UѐOα(5}$M2Ĕ#.Iև2AkхSrͻsBiukN)TVR U!$ez83[]in_ )IR`V ΌiE >.`Ӑ0V2퉅=RXKT p!I~!?ƪABSjtJ"??wR.K|nw.]#^} |\B6m=f1Ф'ӻPY8~%s U]5WHИڒt:!ƪFUL)?IO; GCJdFȒcPHy=R*1N)<بy acS (Ti$~CZ2!qv|+ {T)> 9=~:uK ?#ϣx2Y@9s@BU,~&ٷ1*8ZBT?e+EJ3FJtш=%8vXKx,׌ 8ڳ@N if kR0 =&y*!IN"2ey=u6k\̠Xh [q1$$y'%ݶ!oFa+*)ۗ|#]{] `ǟEA0xj9 ԼG݂qMO}SYʰ뭑9Zrv>63EՒZ%gr*c{_\oZtlZ=C9v}BtmT&כjMdsھkeQCU9v,%X$e4ǀLrSƴؾhsc]Mg>&0l0~)<pj:<.ԏJ fBo"Do;D%ߟr'ΦK "IQICL_ d,m/o8_$ +io hV; )OtcYi0<:ohU )2;rlNR4.B'bϽ9X;ɽ3/9$RzG; % Zq!ZZU(c`f1-`Q $}WZ$g PF+}3ųh--hhR G0@.аP Z=-S5o4jJoFC= -]ZBKmX9HJ!3}ͱiF@D.G'@u R~e8P'% Hy>9**l$zޔs瞾R9ю !#Ԍw%3:z˥'hT%SHUdqoWx_Otc!-7:d8G UlOR21Hd@.14DinrJe00)yGb@a)Z-__.n?"*%,VMɆ|l*;r\n$ 3VBzFykv.P~tZX0f[쪓E*(s 8OkW(OΰNԤ4dgI[2`q=J.Ǡ^+`qnu yvBtV @SV92,pʐIF4Y~}i.eY&*د޸%!3$؟d7Zz~;Z#bZՍjL-PV;i$JmW !(!^J}d+E/Zd=_Aόe( EU C.S@=vx>8w*6gO:NtD>R>R^ xȘZUMݙ90L繨EsyPs_؀7rMh^qI백@X@| ,t#:Bu, hA;eMQF7e ݤrs>wuA/fj!٪ʌ3N|T֮++3tJSwO+ `prT`VF1tYc@#RtX 3 3- !i}KM9܊|A1؟XߨO/3tCB>':Y$r'f,²*!?!isE%]8]%ύg'sw 1ŀUwe &5ߌg eS®y4ta/B3J?%̱fw ~4]'Ĕ9*q?PˇǷBuu>U9wed AZcjΊȏVZS%ĐZ1kx$q yRM 6zBRFkyӑA!{rS؜b5BJZ< ՚eO !U0 ԒɆ *׻b&RuQ|P ۓl>$Q8vUHig֓ݹga*5P؄1eqY[ހc2 ) ?Y~Ҝn*lx0h/sDB1%$qF=|r%0< K~|$U17)RS`".$h~h3BN*VdL!x8x`Fޟ@_j d.ZGR*XL: baT^I }lO qx%ԤD.R@UgHh44bN{/8+@CH7E,^Mt"74[5&)UGV)$TxNJک_:bYT"cAKk?UꍷLy^]NU~Ơ[Ep1,"Ҫ5 +ޥuL2쿉zJVN r61MD$i 1yAS[A)Dɑ_ËHВ3yT}rMl"I[;Zs>MchP"r I}ukb !Q0\=<Ǫ^2(!ʱio= n ~l,*D/ N>B_܉&+2aTO[= aq2;𒜋)LyOyue0Jw1\j5WF?/DxZQo5ctSA3xݘG9!X.=Mʡ!tBC3u4ӵPH/.,|ڌFdrmC=">^X9ɨ"w6=4RaхC8әY])sEqVN)sZ uM!NNKxZ!"se7F/w8RFuٟ$j]N1W덦rp7s NsrCi}i,۝{SB/48ygH !F<03wV% {Gfys3e^$>:áXHfѐ;r/vpV6&=)yW2ĎJ9FeʯP@f'7&z%.kԢ`X9c5zi~緉/\lĞO=36jC@ΙfNn@sX,_ԐA:ހJzc,]s;uEQ6Jxqar8]dVFEAR~\АH=̰K+p9Af\g,=%Nzϯ9I½9I;Q?Gd:;4dhM&Z >p #s'sLD!)՗ՆwfDot 1!.dǦBg 1rܟZ5ILk>Wh1&/)u1k=OwY)>e`Wu0șY(~J`SHFWZ)hކ'h-8qlz*;bW tP/5N,q)K3ntfn0yp#Ȩ<8ġ!!I0m-͍>xֱw|@aZ M9i#$K4堅cU&_-4U'̈́$`~v)!%^{!Dy}}tI{/96`w%sCfW8K&D޹嘁X%v ӈf* ' HiF +חFAw=+AFy~>*ʬ 6YK"O{mr"pB\(7=PE84SCDi'ur8r",fLZhu2~"@(m(DE|MrAд!9X@!# O#I^oZrᅳw v.߁ǜi~8e-Gϓx[p,WL>?Ȋa)l8.#sүl9:}C`Ud`Zk>DO2@a&֠)_9(Hsk"~vFOqm=gM*YK,9'MIe%w6'ސXHd 4^D@UX{OH9Y;:WaO%dovD p(|w->#QdҝyU\C;tÜS&-f`O7F?q@CV B"4ޱ/#=YspO\4SP6.s,^CZOr$Ft5RXM7@~VYNc$,_ulOofy/oRvV2 <Ol:<X{3`h(#(r6 <;mB;߿F%S?K \u k/B{Eg*F Q29vm;S+ ߞuZ'Ja VNȸY>N]srpkUwZPb|fRr.gZ̡CL$_o n ?cQ{=t>sVRb޾+INEʸG~~pW 俘j&ƓVg?#BsR wd3hj9EOa,: S1('nԂp<4R'Tfะ!$&qjˠA}Z)"<$>Qz0O\2:S3[By{f t43eA8ڪMz~sekX.\ڐCU6 ny*W2DBE S{J' >$5wVI~JپxókǕ,~¡k AJEC]agfgmǾ=)?3޻ 2`aƲo3\KsM2t"*1gkܖx|F|w$5 )FG3 e~K8)_ -@)]_n(@٭VN-Fb  Ct*[)'JK@}A") Qtrey5 ("j½f"U(v:PFcŒ8^Y##tыz[Xj+`pֹC@iqcSzJAHVɘ*i*Ûfs5'H| c—&K x[ 6,Zg:_rlp_~5S/lYwϡvpyLT._Mp;޺FqٳjNSrl?ɾTf iTػzp2 cmf]38-?04A"{>%VǤ2J{Qot V},xYr}i@=嚩-ql^i )2hU94 7FGevӓ;-!ӊBL<ʬk60t⯤H o~>F>]缩 Rd(Rk@daY)s*|C4ܢs*Rg!>vRjNa<:zAj@Qtm F PkVcPprL5kNµ(u7/)>40DJIavc"Х7J]j,NtO?ĖOo |t/Om ~#ai-SK7^@}\X*LӨL~~z&RyTKa><;I쪊|Hm!5`,"AaBDJ)[ԯfdUP_gk N $^BYcm/ip!h~C p.h-L\fjd>eWp.$(bZ4OjI1 ()ӈkÅaY1=/#T!~3wZ Fu .xxe ڳ7S`R0)_Js t x .w IDAT\LT&& ]?bmHc)wF xz=Q_0ݿQUi|hYʁp{¥T(}aaКYZ/?{ "o03jWcuZHO ;= Az}s#PJZÀr`rqyθ.Nv8Yykc؟ d7.?s.8 C ay1]c#|!w/8mV̳ E%,i!u%rf xD ٵsfsd(]f۹˦r1i?>x8#br~u//pk&zj{.KjpJq {QIA9 ?6Q0 @+_i6#=>7JvNx`FNrQG֠s~I&0kuVuĉ)qǧ'$SNPu>HfʛE}=ñ^*|( >%-F. ADƖ37{#ń1ki S ,|眨y,?ay=U8]8ơ *@̉ `C:P"kN1i%olQRO܄sW^ܒ(HC7&'!dяf(1q@oSMMU%i:keC⿑Ӄ[qpyI;6 ~B8H49 G; rxS`", V2Oj[C~~b#|1{t(PRI-BYEmɼBdu]_0y?6XNΟ:[r*aV 7Bs-T{5c><;g$F\Ƙ o]p;`"pD`4[O)s{!`Py|?DIYcrzU@Ŀ|x8kοu.y9ذ֖Eb.T'|%ø}iUB) crЬn:Sg:?7HCg RNQط/ca@QL.<\T"suF$W$(%WQ6~䇐޿(!fΡ5kE9/AƟ^I-N͚V " 9J]f"/ }؟_b_-\K~}N Lzs I;N_[ظֱ}s:=m5}f-3KgNEAD9Bfu -2^T^`QaĻ[+ҢgqƁSYI%5hy4bxDtpcg"iM6FGd~=VIX/xnމ߷'1.7ц`9YڲࠖUbTe`QC:eGʋ71[Eݕ% Zs.nIw1 9b2paphc6@5BF]0ПB! ߫\37e 4HLKs`_+~ ZVUVԃ3.`8֘s>+'qO(6߼}V?2l5=z;닔ayI,HDCyj),Nz]/M* >: -F@LkF>#I=BeM:)H2f7LRyۗZ3F% vw-$ | ]"MF4i9vj%s3j!C6TWj?~yy8(StS|fռIr\T" ܟABxf3s5$?j)O^|?cp{VF#<#DB[90jaMMiV!r Q8zS (wl덣=a}DBT\EA]o>$KeL@b 4@i/O%iFDa `3NJUiu&N%]y*:LzEa)ꕆ4e<+'BRBE4 hK҂Bj5IV9ˠSu)ga;5ƛ^ά@IDڒLAAw0ː7~x(8|@8t/n+/`< ,x4ɝn(xJ1Z1' OJ[9HPTc}#mQL,o+ !+׻* %_۔@Bv.E'͠`/HI;NŶZ2_.EIXBa(f($=]bP*yJ9P3Q,C>2wZ8QAeh*$!x>7J7[ul(9`r&&7&_t\Ϋmw B.7y-ݝ&3}y A(vh5T<&%ǞG(cOH fH @)z΃}P5<{'(M[Pz8~B jR-ۓ*?6Qa*%BJs";4NMdWOPJLj]^qupDFc[ vC;噈¬m5'߮oUٛ8(Lj*i)d'n[lϏ\S0Iè' c $E\"޷,_MshDළ+Sv " I M;)`S2ucl*͙BW+Z67V|&홛OOnL S̞6'd7W)+]2lI0Z!L@ʭGН|!C6($r,O`T:D^V6`_>D Vl KktJebn(iqbKA;r`Yl*z8 Ír4|8\f/|À-8$sV݁dsrBto׫oM:7Ԃ0f_I.3}Ugľ.|:ٽFZ>.;!e\ }̣PUG=WM2EQQa"&E Bpf ) ?/bYn,WJQ7 9FL^_JNq8ptfDjʚIK>c m";߿SʫKFk>PqN3NlnF4"k8( ; 3?Z}`iZ7*.omZ:mp8FG};z꣯|ݝM-֢+RR嘧W1'“7 Zl*qf{0 D]8c%0Nаq16%G.wq7m̩Qh&xF&D.iV</XyS$6DuLK%l]bˬuǓD9)Ӛʸ1^XOYRd$.r赊{:(H7h5~]\z}^s;޿ [l7.ŷ4O:( _UG,UM>?rG: K7|P4|GEU9:Oи*3jγl߰96H|I9(§JbLG5Z8Z#E`bp{,7'JFyNu #5h j00ŝ6&Xu L.,4<%?@6'qYў~b<ϯgO%+0NԠcNIЊ)n+9)I .x0rrc0 qw_}wITCvwg:4:2Ocii&NNaI1ii %}eۇ#FFЀl}_J}gHDD?Ơy6>m}5Ìٳ}*cj(jwMOZ QJ0 kU& ar j*" ~HlQ1&DU'mtJƞADPecKWx&&yU,L3αb}AR"U]-%I Be6]OUZ^ yJ P(9C{rd0LƮŠ 3G_H2ͽ'7K=Ǵp枔v\3]kc>[!lWBAzfq_3)UKS;F@6>Tjyx@miǏ? `|$j3'k1%(oO!/OpÄ Dal iU6Nojy3S*ق{2:϶4d_qJ)hdp;{|Ii/%8YKD9wRZY,Op~Ԃgl¿_Q|~cMoe}ϿW$Z =9֧RRaԻz8zg 79ld&k8SwDp$ }bE]n& x*>8\\@Gn:S_Il!K&4U0m|࠵ZC :"CGʹK}qp`:?;qF7"m+ՂSw;` 0 $U0t{3Owd&cl'p)\*9]^訮ᅚLa DޫHqd>?plx 6h` ɲq(4$G0hbb\Y7Q*2'5'DT{إrF9vN. 5Hy\vNאIc=ymwLKj&=@Ln|+Q~X$V5lf:Hh@>+}t!8&GFϡ`aI<7w،%G_əIja:#.WuUwqp(1Ml閛r@)#ݻi~W6ۊ0g DL60Y>Oey˚G.@#AlLaPO^χSorKv\-}Ф`W˜,>y̌ 3燉_͈(0N=o 7 Չo}ߨy/͵SkBm{x:`"H_{N޳:=ߦ?1ZϜȂ M "CaA"i\ُ]PY\{OG4#u5ɘz왠GW$(%#hGZWaœyAwjZ&EmE'E}@BOu!0ds֑pa)8(#oT`$Tآ}OqcDIIiIA è} @N|iaϟG~H-醑i=kҦ۝+pC:=Hy/l@& {xG]ӯƋ=E5F 49U }XOω 80)X -_]1 %S0h17+~:2Hznl @҈"׬6 ~A9eƹs}~ЦqN!F 6Ώ@axw> !FݑGi9gHxB=3l4cY?jb<3س <%SA'ɳ#߷?!Na`_W$XK⬃{^Iu=ܚ\M6f#ot:`r-6oϾWZVAZqbɻө(k^Ҫlv # eƄ鯧;&^I%EP佼9䌔6J *3b.n :ƱNPi4"8 x#N IDATR]9(2dJ|>h{*'ZJtॹFUm aUPݗ^i $s(*Qu "z ä&%$NvkP>CQf`,ad FƀV%ۏD*[[[8,U 8pp]_*dѡMm!tC!GVqڍ4 g}[HJgGZo*Z|uDʄ `(d`S= 4$DA;Q>/ L[9 ౙ^!q8K[j^#: /ȨX,oŷE4=hrR.'0 6T 48GdÒN'2C^y쏜h}h%yZu$J,_=ʑzx{[v̥\"%KWK/X/N>yN!TGjOIPJ|q"ctu;Yª. k-hoԄ?: @܍'Y0! },{ y H;HhgmF G*K0<ɰm)X&DLR ``'92{-lxq>`[+rJ(⑰ržQriY ]o sk.{E6LE1%g~qλtCX,1dʮ홳 ~??\),bȳ=z3))n <sIÄRa>JW#SГqz联6o tM(_H]S4!$HuoPi^JLifM]5mz."~rp<Ҿa:SWHp%ӈp>MNgfQJ҉Bea(9X>KS+%1:aa8C#( x?(1 ya]3DߊOJHn %0%YQyD? '?~+_o`0[7IUFR"Q~}]4DJ"ؖ[ǫH3_91%9gfp{UoA-z&аf^}y%toQ">>yz=C:d7,bCGs5`pG6:Cز659ORgxߠ&u p[L#U'H9%D;S%Ki)Ca=#&y%EIbvJfؐ2&q[s~1: G5Zٞ;tv(r]"-qIiACl %a' 1%6{ϛre)O3<`pRȥ(枮11kO$Coψq>L'-%RJDحt F4r}j@Ț;(H,%%=l9K&Pax2ӎmQjeA Gf/7(MCq9|!Uɼ7阻Z]*p駪.M/x}t{ɲV!j^g >Qd2cWcw @ :CItȨ"z3ogu2 9ß 4&V ,L^>#vf6̿ny.N>Ԡ ߐ?j@ЂJ$cJ\pf}R봃OڂE.>˟HĜmEA/AYU9'3q-1InzpI."iJQ7@D xȔ5ӾiJQ>U5,>om>o%(8X|'ÛL͒ɇo,jJ5qlXW䴡 6'ߨ.B".7 rsKXn~3W2p++PzRsIYUx dl 9Q!.͸S lj^K},~و^/.Aa j xJs M8%< FN+I8RZ,'C4EI( eB1ajoܳ^utR1Y2ntdaU"sXqFAg{?]0^{@7A/t1gF3XPvdHGM$`32y<4JKk wQ䆑Ą>\lmven0AʀwE[+K׎0rI>A+aFb8wyR Hs\`Ji#Wf0܁.kN0F^> '5j# 8wT?PX-=a:iFbDDL Jh0EZ*WXĆ#j^:qቕ$v q-|{~AzKi0*>#:TS^Hs7P*0E=p8V]l@j FF Y82 53{$ЌM-k&L^@%%x&]aSO@I;jY:rRPrazO+Ҿ~Bv֐WUO  3bR*8dR41'7 " $%ZI1S0/LKq YI6b&T}(T#Auf?P#u<=`_oZ%Hqw?E3>^/j SM3BFHJ,""o HX]~fnWg{WmGO_蝶m*{-N9N!;cgTdc-rUUdǗ  H{X';T]>aoR1P~4\ItBrHIϥ~%<ʎ};y^;'5NO[jD$7W\*+ ?MRjA$*#qӾ}xߵD.%c<=1>˯pre߉_8"W.O \ؗIwB+W)9G3NۭD);ȩ?䰓S{>0ov=6;(Vi7qbJremq_ dS^҈ Ìm0ؗƎZsujZv:e&m=%+Kx LX;Ч)B38 kg#SW*t!.\~>O6~D(췷*P<5 (ƂE|+5؈Rno!piM!ZP.M,% O}t%$vBm KTf%EO>%Bf־->k7iꐩPSNbT(I0HZ8RYF4܅j˕6 P%h4s@ {n(qc{@ !ȨO0na]cW g @emAE\ah0 0+ 0ģ]s" WRw(D@0B|RF B\RbJ%RǃTPXNKGfuEʂBP8 @\)oa1;Wt P*H\ϟ{>z[t9xww{xǁk鈐fc ;r7F_s幷,>V̪G\ȢaΠT(' >¬v\D/S#0o 4[L蝉^w~Fۢ/:un{|psO@?LH lyJP zȐ"ߨ8mؒocԒ] 9 C= ط)Q~:ZPՄH9EKz{"ܡ~{R{5d62uXE?}D-ZV :& ?gM"3 o>[}nm|. WptzXrq"K# kږ4+ %F #iM!z4ȴ4j7pS-#C, XztNq'q$E[F>ѹ%3z4:a; 23/Hơ'W"TA{/bYwlĸr qT"!%FQ7lgta ΜktvI W %;1訬 [w\rWF6<yL6l89%@On7 Apflj둸:;r 5jLw~ c +U!O~)-+oFad dSJB$ƓRAo#v}Ki`V .H)!H3U/Bdc~ӾhPjF uQ_CM҆\x$iggx#ۖ+yJ} (Wa-7u5㼮Z R0,6Z+Mx)vjpӐ#U'j jp>?q)it=~Xl!X,GA>M w0#8OPQё%87mEHN1"7Qd > UڐcF>:ZDa#A'ET™ICydaW;sK.31we ٜxIzF1\|ia=WQiJ=݃t;pWݹʇ}7.>8Dw^$ĕmǓ[ӚJgUt?۫1]-p ^#h;WOIFFWMÑjs.@|@mg)4č#,5FCs0ΪT*y# {Y(J9v{]c: V($b{N%F\FI\ěh_AHTtb!0P"y=EӃʳBamҮr}@j#qԗ9D6ghl8G"^̟/fqK(PljτaHaS+T+jcpG䥇1\vMN|y ׃Nv'P4>FS%+k l _ '/dЅč1 z_uGfQ.O35(\,h0J9! @ 57=@a,Z)l- `7.p5@iPѩM jjl26?NtP A95VI0%#Lgy; xS$j-5yqPtZ4Zgzxt""9e lц *WL5R3@a+̜'?{N f6Z4r@f%d6rO9E]9&S1p?\|#ݾu+LLVm HW.w2]IlqZ'>]+;{ݕw5n58G^VJ,*K?9I [S$2BFǕT:!g-ii^~O}j!q*֧+^8<DuFfHE<rU äS2_ jW⺹;!l"|Nt&| 2}DZ /zہKEg`eݳ~sŐu wssywJ\T2]q 6jmrs3y2p|3~P*a('7VSka(EUJhAq?#Ywki $vl @d7aѝ%=yy\63T0N%rљQQm|5=Tg O 04Utfй3D Ji8?UNMCFFͽރjžCg|*S(_~׶SѼua81o>xG,ݝN,V\TQiRɴÁ&E>RqbRrM'6FeW}^)L3I*q?5uwGOp ^>i!g\@4naTr$E;sU\aҬ /}tBכ6$|}w}1 A#H65|B_,Ɠ6S&Wh.DϙNԥw^?v8E&/٧ =x$Iݏ33"NWxϒa% 1ޛFS+%h(yx:@K&?xJ3S^QxI D " .B*@=@~(ȘWcVz3\~W @ y%RK&T,z-FPdm IDATw`<O M]x_hK^晽liyi) 59i #yIfR8?]P ~ Kwʯg_T\m!Vpz !|5g_Ty/ SP1p:/)hNO!;ۓlI8=ݷf\5.l:Z*ˆa:#M0chtS3hQO|&HmW X qCE7Hi1Fĸ#B1^^8n::R\)4%?|aRMD$U0_ du/;+D=~nݛs ́kS:JO?.]xM^k% ɧ/`2W^GjMND^}ahR9L SP'=}|3F )ynx3D0֠Hf >t/*P>KJϪuUK0Q6~~79{ 7$M ˱ײ?tbγޟ 3)CrG&44/%g1h#B&RZ òiQI:V7nD^Jq#!gI?:J6fw)qi HJR:Bqz/%S|"9əJMUZGT ڟP6-K4E`+ Ewi:ztLӣؔFHUMCX6mRrفrsR7t2gk.Ed6d ?O}+& ]TO)*z0M,N՗~CNLIU8cWqMfQ^JDb#0b*㦥k-9}#<3,D"fu S"*أfm}`߉?hROEs)ZV]RB4<0'aĶoGOS#B}\7{>z$_sb*j^^U.CH;ɋu\=wv'o D`AWm:*o0$ZNt Ul-Z?FWrկז6v샿Ma" w]6|b\`";1|2K#C.ѱ1$Iu1]u$ەFTNdji L_rlk Eq[؜qH˕c&KzT8JEmG~`@ {jt׷Ӊ!p H68vV$V~&Ҷ"W"0 s]̅혞3qfsvxp#˜~Ak"bJ|SY[N˓\u{KOyK#,qw݀p#C]r^$kQ.8R[Uk0` %V擪N HmY`\ eK ?| -BIȹ`YeP*,qL5603é 7*ŶSUZ25XgSUIQiHMYN =puYK;,a0q<(R(BQz|A\nZIݞu8q/2Ȗd"-]hJr›A}̷7jk5210a'7L ;@#Bы!땂mQ`+P΂ NƌÒiڏ\Q>,#^?vVIFfD{v<.%|e?H7|K/_SN|``1\jpMk*7,Ɉeq \\JC2P1 3r~QX.[x ! 3 a[` sɕw}˯q3ӃNҕY(R ce A"9]WG2Q.R^,*{ً@Шkf D,N\M:XoلYՉ|DY\Cimd!41} vzGӈy0 A+pyP|=#P맔i~Qlj^I<=ߜw d(V)avp@ Njv8,Gs4A&.ӬRzH:Ghf'[kW55'3~ī0ia UsYL`V nZZJfSAE]#P vYǥZa~}0x&?Kbǝ,~ﵤ]#bϾ^Mg4Ah=ʮrrN"6ބ< 4zkYT$1F7_Qa+%i~ϛޕ4+ <#Fq[7,۶wei|nqe0}SzW1@/~d!t"@` _ Ο)5~CyPS0u)̏oWmƺ`(nܟ`U-\S,I ]sNÈ=:o3C9>/d.z%r95C1I)l'/ڢq ӹCsFQ5+ä= KP ~"13 7nd"ږg֠mtz{;^7(u(m`7NZ17qwzlexz$5@E }?|ć{?aG_~ ˅LJ\ 'C4`.)eRcjE TӠ%G8kc#۟<<3R)O>ç^ϟ[ ѐե`Yw,{mñy"^rg *ܶ߮UA)B6dzgK+wE ;Id)Er qIyBMS}T3UZۍ88MȜ#iƶ\1j&c p ӅMgYn]X5;Kg.`/4%606Mn 9c%Z$5M="Fsϓ^O #-"B9Bٖ >ÿ9?ǶEL\zS7OW$\5`:]܌2&՞83qU|?ƛw-gw T0tS]8j'Q(P) ̳.p`/וs Mw})1"F"ܢVx?"7u) Y]StaQR"!gc@ʹ]j7)_f|nt¾҆2geDf#J}[Z_Dg/[TsJΪ7k0jnrb՞LD^37S%‹N:|m8wA# N~`CpzcTk0o !M`bLt; Ic@*<`Yv=iS~ǃX]nj}X9BRu*}YEQ5_rccYE4n8FĘR i`A.D _SK(`^/2Ӊ˲QZ^JiJwU~;y7:ݦiw.3qY d0jNF+&ֿ#VfIcfp풍dӥ~IH ֡挏~k F]@sy&8GB'EJl5C,+\\`PSRSW@韹g 4&Ɣ&@ĵ?5]7L0ƕ&5#)Ґ_pqjPҏd ]?ōG*aԍ>r9/z=`݇E'me'y /f% ʆWzl?{=|n TB,Z˧7uf;JIM :Rѓ]6mM?9mտIxuN<*t<^i\2MkXYOUF4TxoW2BO>F8x\/.$ݶ|K s tn6sےm:LF5!(s}z-nq-iw< rZaAʲHw޸QtV%EwCPQk?%Q.u.14㷬(dʆASؔ乢 ʏte`]9Q"l nltunWTExk=Bو4/`nҼhC;߇cjWћPe(%ŝ_ۆq 0R.ٜdɔ-˙o k)M?',R b̘ t^+y vuuQ_'6r.L;ț ^r@PaRJFV!*B}Վ-u vG;?/߹^W?nMy~a'w\'lFy;gl{D.-3P!Bt2c7րaiF9LڰΈ2?)&^ota<#.ikלhdfF*w JRs"}\5+GcE 5(+|ą'RK˦C[ĵR n,o? q!po1+!s\!Soj963p _?c4/)LRć*iN_<ZFJEiŘqx9]`$ .A1( ){=B UȏWSH|Jρ6jÇX MUGDHHY#ƈ~ܖ_w78_y<ϘeKfZCPT=עִ1(MfϖgYطtι7z҄ZFFFd& hh$?`pxx_0!لhhZ=UuuwuMYCf3ַȎs7ؽF"ǝ| S BZ'u+2+L/}*Qu|^i:Y9SGe2,N ĈHQڌA~T!R],E;ItwZv%̉RBd/BRb#!| ݅(/%!][pBMWx-|03ǁERWMZJ<^A9֦n'5MiZgj,K7_UZy}yC:? &ipGBFymv *|u$*iHpj : R mlH˲9G "y_߇Xy|kk}pe{_\bzJ\ az~ E`+Pˀ=ꦵ֤α4ΫyRQ[%y5)<yPR`5CHWuάi!D \)? <QoT\43B E{oGTjoΣʂQ5::4@XctQo${ˬ0\)x8KzA5!bUzZdW +e~G[`ٲ2YMB7p2RDq:|4o25ʚPTΣ2r 7`&]y^՘#_CĄ*{c48FBebg4My͍s8CSWxl ,mwzycnVW[›1>@+ta =D0,pYFP7H-0K H8i$Ő +9vu QU"PMR[oz-zsML\y3S˼ɰ#rY)Bݬtb0Oَź [չGq>nvHکźCY6`H +>f]B5gʡUcL9XڒWLA]ጺUVg>WM⨣{#ȍ("n>r~5EBlkmoy^M-(6>̳yAT?:`] IEl$mkd{l}յt 8M06M l,؍ Èğ›~w}oܿ|,J X'pS,ZQCle5e\Q/5TIdwt&U3b,|Dģ9Г8x8Ha9O2T %w6)H(cgl;k .s,z8Wi˶HFmCtŨ̡S:Ol?cnowȭ @ bMSi*QF֥f e@PwXWswq~턬* ۖBs,bmkUB@V(e`!G =~~]/Wt (W纑"KrmLIJU 枮mP7b-t?M<,߽H8ISׅUzo HYL)IfypUX庺a ֲgu_umAf|9q&:sQ.oWl-j^YƂX!Tt4qGfWR5sFUGjDEtVbe H~"inaVJ8TҽqkP!Gn/()wRBz~Tvߢ.8nlJI1OK-EG9ъgs9ފv4 ( Oa&;-JIL-]M6v$; P4h2/3>WC?3*Љ12m`}L"lFن9%>7w/cn_-@.@mW,Y;/-Ӊȩdҡtߟ6)N[S}`X^QmVbX ­HwZ&<'{vLڽt >i4#!笝KZB_4W Z:oĨ^k$gqq^F8 tbe61hX -*R&#u9#vhkmGܗu@lLhJFoþps3}&74eT مyoec 6DF;Mx>1Ri 3ckb?#͙ys/~1FT18y6l@UӺGg#q{*LH2Wi\ .dr([-QU-;jxAh,`޸v"nc,j9l;g"j9HpIZbhT!ٖ8"YwRV^̲ 6#:D"eFFdn_֭AH{:t#+vE6A(2>U⣘(cY&5ib 1"-0ـBӝ/{UoAo_,9H`?Iv eDp: V(#QLN@! ԙcC]ǫ4M匛ζA:$l,jBLҏ}?^=3TUw2 t9&؃k)3o_R`ܿ"⡼A3>.euҢ H@2.PxCT<\@,!H$J4 :ԭܩ㼮{LQ)mdh Fehyj(, ڛO-MFBK*+}T `$[rTv>y<-F2 iGqnN1^wiU˸ĹXn5 5~{z lF@`WRXۍ,x*@:l'fM1@)Tn$ĺ&CA 5C!#ʬj(Q/oRLngv*Gbܺ=hR*4M Ot׵$> XKZ0ר8ے!a8N?=X҂׾o8-M3 ʶ:8$̘Ҽ?+xU/+y]kva,p)g[J1[[5!񁣀d"Vhޱj(@1>nvP7) U)7`qH7ԍŴe'Ī ML.I\JE7yשaBzpM+enn[tdA9' =|)9{ۛIl2bJmo;˭Yli1[| l <kl[r`@6z[[t BѴCPm V^uw}HG ?i|46xr<I?cMO&ؕa(kO~OB-!_iTY“ӈ7>8;_~4K؇d^;a1]Wf(ԍy .[qʝi]͚d1&\wcJ,Y|(Nڢ:#qZ 5I%J2A#bk2!ͳp u4a|LR׌:K!dSN4HҔ*XsEFl orX Qn`Z2<8Ը}WVIJyUo2ĝk5bJkmoSBl,ٙY~Y Eb RpFI;2eNWyЌ+۳ ֝oVhEUr2Tw$(`tH^М}{[w STD^:EŇ!IrCŪUkj8Y*ը7eHsp<,7v <6'.`?>Oyҽ@HGC6q&r eI 'Hv`׵ƚGcހE?~/kpk1/+y.m^6QgtT9g>y8K+tYI4pѰZRԨ4YYvޔYh> E5gTA>.@vfau$+^5\Ui6C8*EG"!VJaU,RyT,>5#ce*:W9fFm)j&A2-+A_"Af)g Z Eq(,u+(G)~D>h| bv:m/gADy^U)y^UCi7N 1EoJ#ޡKoVR1ٔFj׿ DJ !󈯽>=$C :)HnSi%wP\pz'zHcc7JU( ֻrs%IBC1XMyt1g2bc*?ش(X8ePeΫmU ur4=@dM: 1PT AfL`V^WB?` wKۛ66f%L2>m{t]k3uyaՕќԓpfmo6Zd,$`ab L&O[󻻋j*8R^[up՝n+(xu 09m `ʛZ:|3 v,u]Xlӱ%,KI+" &hv:eIffOTI= Ӏu5&oZ8*_W׉أ*ȏ~7]B]vB1UvkJ2iE;kxN0y/}Kwhx<5Y&bXjYz-h LNVAZV$8FAH|)aZ/̀ѬczPJ@PPUZ[2bM)tr z+} hj5!gpA=sCQAObd뢡C%%ѱGWw8zK!/ZuImv9zvkF>*P{ɩ) 1RMaH6#oZ<%eHƋba(V,2ץ) u(G0Myefj $Xɭ8^ DO1mƩ{gkgUso;;gwe"`I5)o8$Nc|w) l"d+fOt_ruV^gIycη H,K_0!H9x4oH|ljnB˝(Ns?,|cVcGmX;u^g>蘕u.2f3G,"?  fe@e PxrDUuj'V2*tˏf\9aPO|lzx qp IDATMb5׌}҃,~Z[Ye1cӪ v_kVb ;AS_d-j8N6p4 ρˈ xvwƿ߉yBLMѠVrjB-ߕO^K1,AF/ / 7|CϳPbP_"Q+w>6H(SD| &b ވ1MJ&]cGdhC_T澟L4$7bE;aobcQ ,ۃtD"3jjEYh`X%9-ڂ4םKP *]l@>PnQ;oJtN0 *u b6f"BUF&\6BCDZVJ31c0\>`bEqIӥ4x!Dq@'I2&tʳt2Z$^-Ul*|v 9_Uݮ3v4θK&+ƈ9tv+,h+ٯC(+Bh-62u˲ȉ9r7Z~^ ^t+C>K-FB1]0t%H=E1ueCg+y . ᓯ"Fg@?[琒^EE) 0Ov.JbXYlC=~ 1z[<9dlL#t'oqjCf&$$I|s27p|qIՅ*E+^{wiJxBpIfmJW3Fgd qj&^z4Oz;&yI&b.*HT!<5jZWPIZR،3BQ}J15op$GLਢaګ$7 j5mGUh\?kqu %yavYVc^V]Ӽ`oQ7\i8H9cYWhG!A HU۶1UU;{چ)cZinV䭴9d^$"BTmqAҌvFBţq,N"s6O}NT x ;DiI=5ڃ|׉h&F ;8ռi)d(+UdBf$@:eRԛ9*-c:aC>4MԨyu|v-֔lfO㢷Y|>pP5!*Σ#iFUϨjau]+1!F3IŦ)bbB6F/~:]LˀRÊ!!($opP9jP3 A";ґcZ>'bM/tٗ9 %x=dv; bN އ` (b8_{ax^1]Nfj@FZf$/j!N5H$,^5KëDװ\B\ى9 @%1kr}݉9n0$Tz%(D4-f  qgab+XĪewSR\-|eF|G^kr9~]`<JrH`ܪE\CY1A06Oa1E#ZcD"ju * k,F֬EuYŖYiļiƣ5V@ fb]knk`_agkP*:Œ,PqonvtTP0BVj CQUTO~NZAIpON>);=s_ȋ-'`P- I]YsI#dXXÙ J٩I,9s4$xΓƢ5w4E֫އ$">E)Õ '^,e+:^W] X('!,˜+\ys_+$Oh۵ƣW67:y e^E"a*t@YD^)nVxr6# '㟧ݮ۬u]k)<ܛA@ƒ_$bU*jFAlGzrzԍ4D'U>@Sڃ9mMG2 voA;ݝ7[r6jpk gqx"7|g*u= ~緿w'{6l h%o˛xޯ>`"0@u?Aٰd| 1xYGZt[|¿+f?v.S;`z G+u5dG/PwE'l`uR SԎ*@UﰪAIY׮U{@ub!*8n۷oU&3꺲9 ,,L31S]+_E UOi~Jꩶf׆MJ[ uШ^A n :b^$YE:$eNXuOj,]K}F2"1-,]xغ$9s2&!ӌdk"&9fy^.Y9.YDgqAǀXqwx~@5ݷxrwH)iIHR{y ~*D>| =m$D OЪC('CMkoxAt jo b.2\ݓ`Dr|4 !'T^B<]Dy1'58-"5pMKOӕ53@ l`2:oA,nTAk[)Q{ ݿ7Ƀ67WTcEFGeY0xռR㼉f"?7_) s!qa ;[;_]c Xut)ižLm"h&rU T0MxXJ$LJʱ8fgiMĴetқqYW|/"Vߖ{<=]6Ųt% ?+w12a)xo"+%lHQQYA8o!x<ط,I791p&;58F=+i@t b4 LkHd!O~3=;ƁGДfW'ΣکɍNW5,T ~7tM+RyI<_$--}0@ԛ>4 p˃޶ p7/Dp[!l*䡖C_F`ݮ8NDڦSPeNh u]cgm"M2*ȟ;}Ase6^: !%0ǃ1imlE3H|E[]Wԋxw~*w2*Kl `cKHA6;{tWcE߽"+=*C^C>7?z:7Uo0rsXUzQ!j" =\1LTF= :nP_@=Qo24+F~aQR: N8u+( E86+I8긔5h$u!O/wwpWxt ƺ;vvK&̹zÌmxRwIΑ|C?bE̖CnD! Y#IB뚅4 wv/&8X8;ogWF x6B `Mv hHBq[7۪B"v)Y2?i׃(&߅/} #Bp!df%\DxRч7cFVIпktc&1ql%Iiag!UNpH~*ulӪ`QE?L5J Wv &B\*qY@GRvi(zlvvsJMf̣f&ʐ$`Gl:_c|o="_ߺj$|Y%moɡI j;oO 8V;fgA& 5 NhhEmPF߬3aBW #FM5ތ-?~JsK<6[~Mӌdx6'+pvgN/1{Cnٳn>T˂oL ~ OOp[ܘ+=NBo;7a8b.8BZ̻~gTe(sbBI= .&Nz~sU+|Gz$J N#d{t8-kzu7$X ;Hw;Ex]dhfgRPe4/P5Jj3{Ի[gB Mo>~w3zh9ULůR؇d` h|]Ǎ tBk777{Kr /sX:|#!#PFŬ!" ckEgxݵ;T1ҏ8Z?\.y pS]|v˂ '~"M}^2mr*+PIQp_VlqD`77C$v LKl ~Ƒc8ow}g ϽW(mۡZ{+Zrsa$׮gQ7A3*(bpNmyK6"ʑ-GFd_cmvVF6*Ggc֝[/uy׿y ނe$0lV T佬uI1~#E틸{'!T{iꃌ1s cTsԸo]}qs8`_I4BP(]ԚLn T@L "(e9a.Kqe!ЪY]w7#U!^B.{O~fX A\[ [jfcyrۊ ~•·GJ2(uiOu~ސ9g_9Ӡm1S}Ul]9uKTmk㊊ŭaG]%vN~\ym3xۏ]h+~s9F]uEV潿,5g:6PD@L'7|qe^mcMJ!1vtmcJٺv9g+(_?'pNo[tz8[IkҔӿ 1Fa2nvUO+M66Xlͪ%7s7߅s1 WٕVXUyXg9hTe,c:C)(,iQ -& 4ce,\ &C ',6Gw:v[N9 j0K7o2ԶA-#v.%ouv.]]-wO`UXkoWvV| o`plWܤ2^MFa+Yڋ xf[K\z?_F (J:[(^Y;~նٟf$)E!v{u IDAT|'q1v 8_ʨࣺi6ӒTCڬNovWF P*Ɋ(> DH31}4^a|\q4ʖ%ի+y9%. pDI,XV?@LU֒^9Tɶ 3oi$ _b/50uWo,:dߨdIӓۛ؝E,V3+]Wk%4jQ T{uc ")_v*$7dgsF~m['Ub_]6GP0帲)iV4HY!rָ} c2!˘^BҒp_YYu:Rb`!-M>6t.%T邦Mt{p DF&ܬxx~o8z1#꼮h޴yShmlÈ1~Rqh:D{"Y`T@ٸ\ń*!&r[ H77{\QcAƫz#$,"~Bp4t#fܺ( ( S2x9 5+2W,4'^|߼'ONx=<;]Z9miH17{>vKe5#!9Ty@8~SRJX[sXk8`EkAgz/< BVݺ ,gCGOi@5Q/PMO1KF&x3ק£3X "+e}_mšyp nckNZޤД-x<[ /)^ sю`q蔮rȦh0WiDyu,¦P )V-t~b "-enרI< KʐQ6"[}$*|M5xivvw/?=Xq&v ǢLMV|̚Ș5Zc|'לĆ,wN˳i"lې?l)j{Q87Ǻ WYeLױefs9/fJ )sEw]gV# @q6)ݝm,؃5o)"\r@3s"GRy,LTL Бmq9NT)zdi}?Y`OAHj3J =־:p5zUDH7Uo?qsCW!,*94sRm%y$t~L~#pCAV遘霻yqř0 L" apl.)'Pd`ȺBV8jU´T? Rd5M߫">RZ;cqN{)Ou[MnnvwVAj8$T*FZZ[y3"; v u67AF@#97FqZx K:KSН(&'y i@Yb1\.y0[-P]{ŒhcNզps0;_G]:n,_XĕTv8S+\X7 ,bGb:J믎Efl#\3Y6S=W:欺E`0!M6m+PPnlEdO;1ԓt]L#T۝y@:Ơ#(HBFY0xC#^;9F*o+;7(f~]"Mht8,i;w*/˪V'׆vɌ^@>r*h۹"F{`l Ɣېż.:쏘7ç_~T%b9zNv-4݆PR(,Cfp_[ތkjP<{MvxcX^.]'f 56kr ( X(Bٯ-6"6u?gk_< ;9p6#'$+$Q&W@^Kۏn *=;|;pr[ (ԢHߐ`& ie X٪OGEh a=iS?m?^GY"pq+)*em)y;Apy'/Oż8'4_/l4FHj |b3F9m;d˝wcǧ[<?wVXr*$tqD?L@YרkYw1M!~@6fB0"昧U# LoTMcwqV0V t_I4 a# : gP>G7kLn?f1_ߥ]b{e]dž-DXh1k?nNf!ş~ e{i!BrKcA.3I?M˄nע+MtFrW \(c:yF v ۴XI碈X՘M< 4಴xYwcC5"`2`aVoí,+\m@b re1ڝP1(W+MRe(G:5Q6L\kƝw}_bҗ9^Piy% >pUH)mM8⴮jCg Ql,gKpuhsYuz6v a ÍwW{ -sF3V``X^_O:۟ \dnTf. rڶFK80gcq{: !-"9kSB!|2MpCp &ۈwwg4XqVm_ >qۗ >)*̵.gx_c z'c!* Sof@ unVe2:$=H\ a.y]dg}m~s2G.B}x1F(݉H dG2/>?;®m*@y{Y >i${u([Ң+Q @Z輸Zn8R$-!: Om1W]-! 9oET%p `cvWX\1i*VJZm?B ۴b)x3M5? w!V2N|UIԴL╖:]:řH#aƒv /xaA>D UMS2xyYЄ/4ocwh=.U]!* '8 7#[1`b9'Sz༬j:"!R|P{ xŬ5DEĭ(8,b%5Zi__0^}φ!po)[Vc Qfk:33uWrcmcY1k+fr~;p=sXuv|7B!l[ nVE%G .{4m/|0ڇ_x}w5?0q@; Ĉ"ֹGtX4;k(2K?^ N7Q>/sWpz2&uK{Shw;  %N1n'X#Z5X9%pUVTٸdm?MdS26u[pMIDH(5ګoE>O O܃C_O!>զ<Zc#pؙsSG9w$/|ew_8sd#"ߡ8 @ 2U[P #ˌ,όpf?o xcl-+p3ؖJ7-tNjz%$Hٔe '@~3 6 C]a|aPASm)zfs }ɓ;"V},"MdԇӐ 9خ?]5 ?cq@;~r?tÚ=jU)m8H=p~`z* "LWOeƖb)Hr͚q|@p#~WuCָo[ZKG_>9kc@5'Cp<^bED4MFtwkBt۶]HgXZ9*C0pcP"@E Aܘ8t%D å;|_o߁s;˯TP*ԃ'XHBi:ev$q&&48K}JCEG+ՌaՠBP[(J.s]"9Es6fEy z[4W9xNB^EiY?|~n?_o JC%0A]Nʇށ0#Fq Oj ۍ=ɮPJvZ jm? 3XB'lF c-RXg#^ѻH|+qÒ;5H_`ӟY܆2N+"$ZPﱭbJ@iyɿq(dU1ViIRjEy]s#=% qp ԕ {w=Ԏc49')]Рsqep)sotea Zלus*I:)kW4h54Fck_ EƁU| mB` FUK椨*]YVLAeHzR()҉&*s7qqa mx܍\7H&D3Fho? [FaY}0MG# ߼Hj-n+3%85+IcPb27宖[ D,Ӓ@`R5v?:);is!sFC>ܮ6)K)Ũ9YԎt%"׿'Iyħ/w}E"2wX4R7=y;M:䴜.Yޯwە݋L ہɝt5tK+-'eOk+oT=@]|}*q,VN;Gif8AwDݸ}rDvNpLMsa8.zA23蛧S֢~huZOI1%Gn*ʅݣjAgEImǏ^~iG_X4!οK1)Qa[-4aAKsPbjA$P0qdOJCfAƫaP!!gf!T`Uu(5Q*<}n\(D/y8T6=<e~["O㕥Ilp:Џ-[{m@%ﭿ(̾ݕPJ~UkNi}ȈƑbjBY~F SLP+WkOAtSJԨs{N-_X4R$X'a0 J:tR48O|c8;(i?bT([JԲ#\dۭkfu+SZf|wYiGf1L+OnÉB}VLo*N;YG]L-@ IDATh5*DJZ7 K:!]J-m/L1k)$T;@<&^A_dwI-=ȘCľ')/.2kxX_EGF$|!&*3sq.:gY2L7s#G1 I9} E6 U9WTaI$ I_;Wbt}qRr‹4 1N9C/h:yuq+z1M/|Gi*KtzztoO_S1ikxhIml+`°rwN[nX)<8R1J^&LRZ['a#rh*w)]y?n; $8/GQdOk 1꯯wA=_e ewZ F2xz:1,dGY۪Z6×^AZ<{2ԂﲡmAWqZY k)Yׯ3qI4PƜsc6dX$M7ڭcLctӺr4wayjςǂjDOJm@4OAm:Wk)Hk&&DHXS+jIa3H  spӂjn RQMq$qRywP`0`XkFl?`ՠ0.pLS ,آ X |.oˈ<1r}/~0Hx~6>`97HcWy(D"I5q)%h e*LH1cG }+N(^g!mU}9DDAW P6JQ؁{/o w?|k J: &*MzalP5f}+v_@4ySP2!شD2TxTz'"kFN.:{2=)s6}Yvw;}; {ԜTXt|was$)9RsН3xסPE+NJ0.Z媈Zl5L)4^45'kSyzO.Lh\iÄ~W^vIӎ\4}\eC1csCEE+<F@x0wOv #)7A| PJy H Ki YުZC`>e *A2Qyp]fu4|z==kĴȓɓ F[BN? %~O>>N`{Knщh5,;CIYݾMcR,Y7 lfR>a51V؜}aJp.#q]" -1LWѢ/H۝3jHXG.(aJEpD0GG *kA\_iJ1.,FZ<"k9ySܐg=Y QEƦ. G]~ۘzPo>I֒|]Jcnn%@$*rq&<=_ƒ}ú'^>7q̹\#Ex]}D$=q8K,O8ʉlO6 77g5in`1ACj)mDMIFЧt,?!k#mwUTBN7mnA@8UD5 rߧ|3R0 ;28~~;;ƅ"wxPH V⊚vg%EqԴY 0-j5DZQ '.3LP0^c=0 jpkMG2EOa'|[=mP= {ymދ%tC2{%8Evv9uW%FIXquyXiD X;jqW՟~k)#7B1؝1M|<\"f$c7%;?XO¥0^0_gk[^s܈OOY#Q%B)Rkt^ P!rr&(DBkra^PU\fJH#Mڙ^E(;vmqrǮ݆Z k̸.3_e7ȳ k B*ڻNj[ЭaOvȗZO~{p@@2 lؖ[Cvףr#EyJNHP&iü BJw 3[k9.ppcWJ8_?} J (Ko/AW1W='AW 0|e Laa#EBN;P*_tSƍ}}!lxoD #0/g+63]rD#MCRB*f J>,FƝ0LtJZBHtXa% HQS_pNc)ˬs(q#;1OE l`QNtʅ+ 6Qc&~r _28"50RXg ضWbcԦx2*ʽv<^۵1(= "S'!C&TJ[2Oo*__dmݱop| -2!ilp;4yĔՏ>wXSp[w}PO#6oNkp̣ q.W 4dƼ h k>Gm"q:Exd:ʝEC>87Ѡxk)C[e (kH; ~a`5՜Ec-(Nb{ y P?E6(Ǧ8DK9qWbj9GrfÍDƑt ? ?^X0TC3~zsݯ(`[)ZR00Vȹ5DOj,5-/,aw\0A6$ڱu(S Ęu {"nj*%xT2 ?_>}7tݤ.|vUo4Ӎ`̛9Hs!3>u=,t37g$aI|-ɤqy"rŞKrP7ԊN^z#L3 颋br0(0hXᰆ#@P=* c?L!=^h@MȚaAg05ș6`CgQaGN X[$S'|?7Gr@1#9l]~`! ]^1pΪ@6o Suq GL8R㶱/{n @Yy^̘ċ@2vTcHo8 L*5d Q4@(~Ɠ `Z\-F3V74pJegC'a{5DF+^K IiF?b;Ή>sܩTo@Fg?vqA )ҿ07M?d%mH7Sg=5$q`fPJr& ɊK$+ӥ'Q6̌-x8P L?oaș>x{pE KʘPbɠD0`hy+R9I0 lwosiſm71DMGDC0exO ʅuYD x:}Eii.N㾁Qw NTԧݰ^q5Hlsn4H 2HSZ?]. E,As0@tE7jE j&"<5@1uAtLdj  n7cU<L'a0.6-t +4S稄4$4 ǃBuwsrA;B3Pg3~(q; $@)8x*2M3VcE$O䳂@A ?Aއ#iy4 )G FZlyՊ>cp6(;sD[@!1-҉? }\}9hvFYOȳ*)p%y)X]X0_[@#:smwX'V/$=;vǒv1DBJ!2r4`sY츒 q$D!k, `ayFrI9a\ޑXS30%/~:b;Ȗ+; g'Ӣwb:gbr\ O"{pU 1rxH)e$5Oof"yzu#,A2iӢca 8<k7U9f]gzkV@Wi S-\mlh{~lYoT .%Ί.,3vE&1-v(ȝ-ٓfjЉƠ54 2 q&S2jMp%<3{rFNQq{c9"n̠#CX0?Bab? ~`l@;gF%DBaZ4*䑗~LA-5)_ 9vTQU)F%G{_oH۝y8p9:7zPIjuKjTݧ }),Dc9QP.dVq.H1X< gUHBB$8R36&) 55l`]He_ևK*,n:yjG-{:A=NZf‡6T5*{gQUǩۥ)(} ?;Q42 k}JI6$bIt#)I1(- حupga@ >>nv)R"xi0LH%g* tl&!KPI70js$jұbߛ6DDN5 ^$5԰TJ=i䠔r>ǀxD%Q<~vIirq Y3!$~9KKwO'XF)Ek⤆VКF4Q<RB?䬖Eڃ`roA 6.b4jPgR;l08 Lx.*? DYg/58v.@*hïH[G2+ G!Zk-*4^Q)$^k^ LbCfc-J0F(Z3Jĝj:?* RiH|R4jo? u,Y(`qi1#f$&k+,Ԕ1?o0M]A.عJSib46 )' 7׾gAAHNrX6NkWlŸAhsf>hhwES}B?Xƶ ےH身HgnV؜\/9)D2i8%x`#N|]xtsU !mP S 㩡&$N IDATCȧ&w)/q\KPs0_8!+)Ł~fR` TՍv~f'.vE!=KsN񧧥G]"޳"0aFvJ"icƾ6M%bI;آ\cPmBe1f<=-ڳ`Kxyy0W¡ (tuh T 85xs7ݿ:я➓@y>)59Y|n}^=u{)s]͊7*pVj)M7 =#b??F[Ru)(h0B_幁yndGPȩlׯ%k`He@׎ 6 g'Z fng|0 TEbalI8k𳗂!<'LeJΝ  :c\f#78~_a옰(S a 9e\po/ b-,ҾRn 4㮋 )#Bo9C8~u 0]r. œ [O"O 8dPaZPt*.7 @BiD `TXCMwSHP|Ҩ AC}7-хЦ`+`=&FL(ߗ;TڷZ|Ze!οj\eR"̶^|kY'Ukx-"Pl&C=t?SJmuܩac҉|*UW4.TqkBcx]ӑ$Pٟ.PSr5VMW6"+~C1;W~4"sz92j$N @ :kH Ԡ>:oX ր eFnz}qÄ")J~]?;?Mmă?#&x(X 4a >?_tM@_r9e8|aa"u4۪+pgzO? 0 .A,ۈ\Po}DF^Ҁwkيۑs$Efזc>U~_Kq-/aY>v+ӝs5ɛ›qz@dƌOAT=cBy(b ,~QQfD7/@n3 "N0.4:R:XiMxPJ& ZadP D6 R,u|G2NޏtH;MW.;Y_҂A- n.$H%` 8ϳfW |T82’IB/iUa#ҋ jO}\A};` 9?  8 X.VtBNrTya}]4` ԓmXݍeFdZk 7@`9XߛxN*mFMIcVN̜7..}!Qgcq8)V+Hrx6 x';G81At܌4hHC V|_F)^ ' AAO%:aO:"C5'u~~׆9BCp*q" ']Mnы/JJ# O0? 7Vٽ&}>@`TQ0?c9ľZ2恸=x'݂,5g"K?s@tQ"ὮP}AUzz̤a\Ɖ &B崡 7L*B'Ä$ULG o`:pWP85|<6ŐMH>.$b㾩XG󅛇J~iq}Zppأ* (X;i2 ƈy J)EgH5Ⲭ 7aYuuv*nnHSRumس<:ҿEW5E"D@Ut&&9*g,ٖbe1`Q1~ @ϠNٵLt 'H/c'Ò#pM廜kfgviE_SEKɌO zKQR8QbBpђ5 $F&7bˌ>INBIMJQ2- =nX|}}` ND2$kW[0!zJSMFq4la aeQ*-d~n4N92y±hi\)` 9]sAfp?ѧB\#ƺ6`G-ÍqB8t2]){j9TH$o>:hpycH9S; ɯi򎥭i2=m@SӡsS?/|_rZ.>d%ydA@0c`_TNWbd5֒ yNN &VaD:608;4kbpBLۀ|{8l@%2j)@g|mi|Yrx' ZKe \D=TԣQeR㱱/@Xa>Gt=;фyTtLxy8z=!U*w,,iF|8/zK@H;a{dՓj;$T8`S[d4c?%J3C5BZUPD et-p S2͠ .uYd&‹q/F߁z^PakX^촳qyʡ[܀ᯓ^B_O9E~M!"-^p)Hyp 3rr(3C~!}rIp*]9Mo]5vvo]ݧÎv蝫}a%Rek2dcdbM}#=%w)*deu =O$eQF tB_Z8/GXQrZ#Ē> 80]ES`Hz[l"#CP#fL3dlhF"(d\(gQ.~ U{N~_)*6q8H&|K&sXJ}Ŷm׾@فC9w#:ވ@G=ZK'`Uhh"UlyMx;녽2wRY>-R{J` _OT7ɿbN:e-Pth5VXZa\Hi&,W &b,A0 XZ43sR%MH閟H٢r`nm$%垌.ӱ1vAW?4_Ry/. tJ"#/6 Di y3u1"WNs Bhsih}r"Oɵ5"t* E wIqa"&yEOXE*[ѧͶM ;L ~3plwبqfFq|δۅqѪXozLR\E%sɬMDI1RiΣ@h . 4O$Pn$ $a`+O ʱS2Qv # 7$8n ӌGTu]U+a"rn>4 Aj9gE{K7;7a-kH#E #JyHlZuo~_rW><ѧXU6kݦ>v:0uݩKh[Ht{zOOP+ѱzk 5ՊA]oڍTyHZbBه= )bdۍ~8)FYOR2v(_*ߌtGv0jxh>4]ٸ=XcV:y%Xf`$_+5'w{s}RUM2,<~ dN=Bǃҝq$>8lksՈ UVCPF͂"\8zE)4lM&o&'hZϥ@]pUv7{]0]9ntr̄n|]NNczݬRUI'o60r⹮+@,6c7J&h6^)P )nlqK9ZQ'Y1`~֤eGdfI mJR4W` *Cq!+?. 5d9!nbKA%Lv"5EMX$0/Wq;À ~+[RvdK)/xVȕA{{E)ՁNفɭ6}Roc$>a= 5g&g]NutڈH?ܺt$iijӀzPf4^_8vÂˉBU5$caқ*sJBM+8Eҙ99c+J:ä 3K |X< b/ -}(')QRT#]PvIef0_I.H_ϑ p*9m(9cpw } uf LԽWtto̺Ф ( hn4Spֵ:1`2S*:FtI Qi(v\H\^y;S{'䣞ݺm9ATtҿz}EQQig& =C$0,'>5/kן +7,NFL5 E;tx :-]?*_XQW$,R̼,Z?#+8s7-T+剫 vN⾪F_:숩b0r/+I߃l' B y = clL)HQsT0 !rfŘCjN 'Y> |V2a@.;8S=)S4u'$9W2hsg r0 x{vrTUv*iL'|SMrlkN8r dKeuf&37jhgɍ'TG`@s&#W@"qIča"RO. r8ډƜ. |@eCGZ뫎o\?MK?+EejQrMH_t;;jZˋ8/2dN@œ`›Q}:P}uRZN~{MIw-R=f4""k#<>JN4F2 #k2W7•07=jbaJ@*順^i:PHw=z*+2J i}0L@,>{X|4v[|Y8/eFۍ<{%#!EqCF#0 YǼ \$a֝ؔ㽃Iq&q$zKzrqp3i^m-Uxo ԓ]}\tu%hsn=,9uV߸ ^p$T1rm0(]%#5zιklՌ(]`N&Ku*3 ̑fNJR|Ή'mI)"M2<XNql-2.0]HPPL}- W1VV0RcdT>E1ʱ%dH=8㞉uRDDXNxF]r\h3<[É+%|-z("xK}S`)/cRr0eN33щiBO3* I6Z Mɓ9V% 晜cҨn b5H۽~ IDATgxSdXTϛfd'yYThJ8s^B:Zkt~{jxm׃H^epӱ9J;Y6E'n^㆑!VmwZ|e[֦" ?a j)\c}́w?tӠEO`-X:S$ÎJ} o@%j$"UÄqӤ0ƧFP)[y{%?t1"vN1Mh;6]R+yrr޷Rs6GA|i@wm^D$ ??P)=XHN9BFFЭ$˽]G|n.٧iV,^*]yvg"'TlƴeQPN2ڜ-^1m̗y R:=}+57[=PQj]JץXGHN^9$aypa"-.̴w8uQV>#L'Hb {LWԅ>LIG"tp#g5RNvGVynj v;1kCT_o8 +zCЇM7c(TyH>.vbk) x$ăBh->, ?˩@קYK!bs /a?NaQ.U7ȝXx TOE8BCp0;<$ *}xzpxCUȂ\ߤ߶ YQmuߴ<۷NPsc>:K,<\i#z2%\]WʚɴKwmCEf,MP kd V ٭ aR?d&h܍ ߹s$Rg~4 &21JL"BF88lT@\oyQy/ NxjgfSu昨AĥԌ&d`')+;^}`CbNaxQN@&cӆeK3rz5lNۍz!p Ɉ#˘̾0//wLi=qP1{ܵ hOOt$$hќXabH1tv)Zc״aUo^=/`)ѿsyױ>M6٠ ՘}RדZPdEǂMBے:knG(N[xi?w[Øvƣ0Qv_DTJ\ySi-`nY3O<XI؅Mf>?dE;xp+!Xs⍌'P;Є4O :^y?|LPQ`Idq(MǞY9m\zcّ$|)BaЍ^njkP̌#HݜZ9GR a/w̏cR > )9dـ|ÌE)8h^k]o }"+N⢇וQڔf|擞_3U=o7F! âv=A:Q;K6* 0YՉÍ\FG}7ILB*Z$IEd>wp}P2dR~l?V 1-_FS{u; 7I i8\ַ{y{ {v֠!@{`\Xqca`dG,ЈZ.^?ʖ[-By+Du~r}X.F3;yD>6b 9UZߔ/FE߾  nY&MEB o ІtY^, ѶcaӇ{R)iP8%xiN >oI -H7VQhZ)Az4޶*9+Odm?H@(=a$*9drf@wVz6a0%s@bט6$^CT%w؉Rd(14<֚|wݤBdD(5X*?:UD}-m[kO1>VJMGCׇWD ǪM| kRfqn8-&hq]r~.6x,ƁIߦi(/]5o80,-hMpZ Fy}iE&ppŽH43T֘$>DA`U paJm4?4/O+qV?nm%cV>`e~I BX3vp]W!@(@BAѶ)s]V1@A賃sw;QSF^IAhc`ʻs^*)F2D:/9I1M4 p;c90k) I;gY1ua}֘z\σ-a1';X١ @^Ηqp) =;lƨ+ b5' 1"46dRyzkiJlxqx㿼630]膋 )RZ٫#gT]u,3}*a icN. Y1r_:ͣ24qTЉ:HEB8"&`,l=/903KRR.ۺp ΫA8s|xgڳAjuMMz!hFy `0D!v!b`9(k44M2d! ;vұgZFŭbuԽͦ B͚k,T﷥8Ӥ N֎j ~Ok) dP*t2A`d%Զ|0=A*[Ў&L)2V?<3/-qMB?1(9ϳcEC_'l ~V58@Hqi4R#e2Q_$Xw5Х^!2?rU:eɻwSc^IH/k3iId T`AOU=?*Ţ)\c83jB+#-rxp[PHԈ.њ 8kbYn(3 ot}x1 3cEomAq@.qaxVL윓"h++CY]`2hR ^yjOλj/9xvz@jq-u:B,wm{x$#;x;W0 >:ڮM&ݓj*MW{sO0(JAGG]=+\QNiTp#ŝSqOBF"'FcSP -rYRroPL y *!'|評Ji(;y)UJi1χYiBoǩ\ޟD5 Bq`A NŁ},褫zo†hP܆aƎu&n^UkniM !-Hzk%~-I<&>Fs@ DlMZcߕ7NBV(L)lƺ&AY#>4̊_k ~:C1lUnAy{kp+g$7AY$MT*eV+._C4>8=Th ܉\H'Z( Hy4:Wz~8x{}A ^61iJt| ^Y+ZO'0鈵VU&XFCaP&4J5ꞪaM6s%`_ 8b|7DsH4cQt+oՈ0(YW0`f23f20Nøp)+N?w)pr"s$;N;Xr ̛Q-|>/Y]y>D#_lҸ|k(6{(3Ѹ!~&!Z]DE#_::5Qhd>j&HqL3U"q؉B0tLGi=@ CُoNRi{`Yaqǐ;-ˬ@YNR:ӅEmڂ[>WB.E< Po-xM\O&ҫLl vKXN@v9oƅ9\=߿fhlK眧$Z  u*o+0yȠMq\iJulڃw"(W$z\Cv '~UP Q&p A`"A= -@P8{vc@kE!D}nYfphN~>чFN*S-į}HqSs9+pyLBBPwrhyҿ˨8epD9?PD2yS yU- 8^Jw5aeoBbB\ދBPyVt]QRt' y^8(E^cwB[ilVJ)7o5h/";&#h/8&jzrӰsJ8 T&JE``Xڷ|K6"hZ*^>dICf0{rR%f7zzOW&h V{Zуmzܵ{n<' -AOS9'+oSw ;Qs7p$I-uB v^`4Ifj*#R!>J}o{Id-9s]m%%!npF>6ڻS)䆑ӎDyTBkadbɟtd_3mk\}sD)=Pb-N1JF碻xTSUo Ei?vHI ϳkџ.4tעC?:;s%7c:jEܻe/rnRzh8^SC~ ?pllr[tEg!xjojahqʛ^ vENEۚ'bNd;Di~`j}Yy{Q9vI%Y šo%p@?$dDž)-Dy+ڬ`/U="l"rfP+$ =5f 9ZE=F祬^k7DXO+2# I(Xrr[y46K@6t_-fR0͔.a`s~| $Cj{AiҞ+8SJ ^Di-8{\Nü"Lڈ=O]Ǧ8"VD$!k'/0APEM!rV_Lnp$&ײ\DeQLB1nod * BGFikE6;IP -R {m4!gHL7&\^DBݰSqy|ݵ'CW9@@bӎ=B A=É>Fa`>2Fxy GsRgWT]UC(0|P4x-b7VOMf"(:&\pzM{ >|jcͫVV87z"?facu|FC7-KBkFGVueX!@ȃ;0@jg8#aqtq:~^G@]2f'rZ#?T^̚ aÎV~~-VO~N%%]2π>( "Δ,g<m6Я]{P:dnoy6=2l{@/hTdXuf`xr߲5(զ#Sv| fbө<Zx;N|v‡'hL>D0QIF >KktGEGT`X)-QVW B8>ki=B,L.E?rA </q(5%]}2z|}4ωR I>IxLY=G2n Kdc\`Fi|۰X3rjFN-\qmn}^cRS~`o=ͯpMJl4~[UhTMU2iVu'>օ z[̷ͼC5j,\&1ڈ„ p5D| iVV(lDȂNdT?FA[E1،7/ =;3CP~۶b1[ũ }7!zQ/C69Yze0מf^bP@(`4#O?5 b3]O˽t6ˏLVJߨzߌ }R)r6,w]~_7$1AJnj7vA}S;TM|D-rC=غJr;Q˷ZT eymud8A7D`,'͍|L kI@O H!+6r +EϘJ9RsFml7/|< k*mw]wZ]DB1)9ќΓ+sћT=hlCg1En028D2 cǗ$g2y}-m FXuu A ]d{=|賀ӡ$_{1(22Sz@NX6lmUƇ`אT^~բ~œ!H)$aUv](Ê|Q90 }|fCTK!a-A-d i_L5*gVW_ATt|Z0 :qy(%+4_o/jT΋CI9C(=g]_q0hmEI7Rv)G~^Ͽh{^\BeuUԳ~6/=SPuI$a/ـMXz`9ލA!#@=NC,p{1ٕZ%aTZM޹p.nB W9h7kHIENDB`chromono-1.1.1/data/000077500000000000000000000000001410712601600142455ustar00rootroot00000000000000chromono-1.1.1/data/images/000077500000000000000000000000001410712601600155125ustar00rootroot00000000000000chromono-1.1.1/data/images/decals.rgb000066400000000000000000020000001410712601600174310ustar00rootroot00000000000000&#   Swno½T@>>!! =ٕV '*%3:<'4]olnٙ9'/) 6+!fR 9?3::&2*#.)/C- 2& ;;;]  !% E7#f G !9RWUWWRO?*)*+, # #  !KD-  :`Ǵd[@-% ! )C)5X GI5Hu:֙zQ=Iv˽ظy7 *# %#*/-*5' >! %ּgmIfc6kw7@>Ņcoa>?> 8AQⷄ0$,+',-1+%# !)%&/ &%':;&#**E)!#G 3DܫO O 1$i,H    "/!)2%1)-CC-*'!/% 2>) % U #\OUb`E3U A6   "&21)7#- )=B)9#1'.1/MI! && &#7t^9"}^ymqdQk   #,- 2;)3-G9 K- ))9 VI lcNiً 19=2ۮ]9ī     '64*.579?:>:='! 5 =CT&#"aѷGp;ҭ'6hJ'>_Â>3R  ! %/ "/-!#(/ 11 1*5 !:B & !*#&!ܸ]+%9S]GhԚJEU]Y %0,#'+   -'  *&99 KC*&3&)& >;H 7\jiɖsS5`=)StфS#&!&18&% '"G%=?%M9 # -&!)(u :--%wVfzC,Nnc[ + |^ +8& %& #$  B? ?O? :.:7  *&22oJck;t~]O"WxF2Lk,EPs>XMY.;, !+" #'2!?? 1EKNF>9*3)')#&.;~N3Jdi0)6(BI6z9J S{):NdZ66' % ( 5 >K3 -'-* !'#  é)"&O C'f^FMAL)_?  !0Ux~gs'8c6MNas]FC   1 -BG2 !&\3V'?­q )k]<P\y  7sbj}nmeݶ!@\)^:75C6 5 ' /%%13#%!!/*)ڈ(Y gt/*}9LX,]tc P o*Owj^_Rj$QNkEns;V"$: )**-&)- ~ P=w1g;F0V6x)JGu}\8&&N~~c,Y9!+A!1Rk%5  B#"' )#.%# ܈Xp׿b!58(^"J*`427ko2+Q9,)F{m^N&7V!IIE%=P@n).3   >2 /2 nS+] TȀ]E4 %KA)hl{ x6HuY -9sɶv5" \W+H((* !iA4D ":(" /C//T.92') G6R0a]-EO/d5qnIcɷ6 4NWVK^|kZG16dU x?a^EQ9 0<+sC.ItcNSPOVE:\C -$5WtO8]]2J$""' ?:5!1*3'"Q;?"<еC#?`'bj~Z6_#C[H ?h :+Jn'@3 >59-: &&Q? #\81(Dc4`:)!C/.303BCEKAE6*16;H 6DDUF& raGC( . .17E:;=5* 5C2`QRifQcBh|, 5En5QMD7556349:;;<:7!O\J;2 hlJ=3EB(6*-)!!QVTMQGF9MF:? . 4Q 5{IBZvT P# qC:2?#M;' 214:0$\-##453 2VO&#BKO& IT;E.#-'!W\T_6QXuv#@ _-|x C[`o[sv>$  agba````````Yg5L ,X7  3))%3!FQ=FN=FQ%Y33!)229/') 8IJR]G ?Ephi IjwoY)/E9'++)'$6e 1(rfTpf8#`sdqt72! aS/)!- 9F=/Q3-I CI#F+PcqW#S}$0I7pXa^?L尸Τ w#\= @P5KX0 'ZɘQ!>Mo )*#)%-)& I%/ =B7K>K #9$j٨a0LmqF \_BM7Ilu{p]bzơyYTt2vhF,WN)fњ||X(#Clv70K+!*^7*=E&71&.2-=55=K2 M?> #* $u[#--)E}qܢ\U^YRgdv٬U2%:Ӣ;)u#KxA=jF]̒[IYCo^ aGUP-G(0R )(3&#5 ))*591.- 92'2 %?5'B :?:GF; -T&8|mL_Z*~EitZ/1Q Xa2#'\QJ[kUq¹vWC'MtVMJ`w5I$'PDSi%[چNB[GqB:wc # a+;3!SF)"F51?*:-3 !'.;B3!!5*:%#:?*E:BMG!%%*N7NtHLN"׎- JBH"8t-8?NLRVXM;:(1^_E0 "%'* 9YICG#MQH>r*G3FdrX 8^0$S8-Y>-%EG.7#.#1? =%=? 2IG* %)-Zx8+lCJo< ٣Y1GB! %"-uT 9M$ $y`I'>;bVCb,:o %Vx[4S&FJ>7 ICO37%#19&3Q3%;221:9-)9?F2%B1-BF.*9U,'iY8X [р2 G.LA/ 0"l#5D?nX4yG;" wϖ'Wm\h?S ^E :A/F2?T%)!! #3/>I..%7-K:;2)#%:Q*/?%1BC.)A6%`6XLSBpŪd4dCBA,F7+*.0 ] .2 36 ;% 9LTSd:jp(5Ƥ$N-wcS;%} 5<8G72'2T%-33B)92?3O3&:& B&7 1C=--1yA;& *0,myW`r-YlQX%?6WQOST O.$C4!"RW1$wLO2yhjs6?˔&6]8%QF}6H#a2/:E>E9#'7B..) .1.'%>')> G7 97 F '25F:7%]wrhd_1 ȥ1[~y`D1(av{;pmni6P gi],IcJg~pysAG<);ag1*Y>T59BK>&7 ;&>#GB9551!7%!!&?/7&')-2!   !&:&#7K. 7 aSkPI) nͥ[ 18LO( ;l{vo@ ljnCO  e.RS%  0_=##RV ,F2jL6`f==NL,/HC)5=',m2 2oV)+M9V;97*VR-&5=&2 2 !!-=1%/ G)% >G 9jt-}wqeCEҼ .4 Io)j;C Bo[>'((>^- L D|q)5/+ٿ'#UqxC0-0)[YTe"-/ #f3/ N .L :/OWW-''C-*C#&'2!%O5) !!  5=)KI%)1 ?vp}thleuwR--~^CX:'Ai|BQ?Rgf," EVI- bFj&-WFca9pZKA-*&)'$#kK \|1f0Q{XB:" )% h$(3( F/G (1;&o (Q1=C=C:C#./9! ); /-:;# -B )#Q5#/! !`Ae,. )%PRPc{J)j9@k"  CvuD,#hwC`~;73 $%Kˑ*.!6CMɭW'Iyd% *# *'$[rS?5' + #!n0J9=(;A\Q K<2>#39?? -273E7) )!': .O & /  !2N  )3O#%9% ! Jj@-!" ,/&$1=F_qYV\ 4nq`v}]1 MhX` 6wю  }ͱMGm{sAW^.iΝlY@*#3@;U,QD8`WC 4 3<;,+AE?\ -U-7%-;) /): /F.1991=?!) #% >G->C#!#!)y:,<   '-9Kgvf.'*Y~M=P]im{~T3Xsgom)i/#I: q4.+^~\u: 2e|ug`L1ar)!/7O羌g<-0Gj\^`U2PBam*0C55CRd:M9/7-%%=3F*2BB2/93'&BB'/ B. *! '5  I.! %#G3 &%| Z> !L Yˊxd70Ret:3DQ`vkF, /PtR)W*g&/dI$ *h޾eutTL&4bw0Bx|i`P5@vQE(._Q@3@=P}}zf]\Ze\$[F2-$M*+&U[g3I/3&*%*F'72=::%7%2>--#%25 >C##'N-*)-j,` Q.QEQqm[9 !32:>`ʓw7>=h~[1-01;cucK4 'XjVS^NB] :5g4$>8d,MTq9) IdOecZ~I :^zsZH52Q_ J4GUQZdK&:JI2YvvrptraWKFD5ojR1J*-*ic3Y./9*1&9/ 3. K/)?*:#))!:1)/%*?5   :K )=E%! ?z;P: H`][e|T !KTF1-JF7)2b'!6 .kyO.'*_v}lZO;>@ h5%ٖ%3yrroDEtE1g[#Dc{|K$"&5gw7 .- 7H# %~vtps{d+9,`a&J/(I2 .)CQGZ .?*) *= I!GC)>B&#?1:9& CF) /T&C:# kXpqXgtcxNbYXeDQk66PgzrT% 7RtW  !+f|poqz~lF!IVkRDܮL+C2(4 z$_'*F1' & *G-=B>%K *95' -2G-)!O=.!'9K&-G/## 𨘲Xt-A@C@Ss}rnpsu$    ,UjcPE509FA;:H3 '3'&S,L9t;18x[aI[IJl+]= 3Zj]jxR- 7_|p/  jtuj[M7EKE* ` u)$g9.[@+D/C ARV[PH6+FbhP) .f+P'2* !&R.#I3VM=>CB2 5=->>:?C1 19IN1'N;--!ۢ0 OeWI9 /Up}zsru}h?41'   ;^_Ytf<>EJ?& ̀H=Jw6vM0|/ 8G.%4Cbwpa.  ;L]iw~{ytqttH! &-;h[hD a݄/.,I3@b.Q 7=.!2'Q/7%!% !275233)2>TE2:=EIRR2?M/#1){y421/Xxspqx|ywqcdUE'    #LM)-->IK5%4Y`p2gX9 )BHC4?nkegE   -22n~usqpru~PLbo]1Vp|g2'w4 -&N/%HpEC3CB %7FG>%.5:=?)G?#9)-лzFLsL("  1k{poopsx7 3+5    0< C%25)>*WM7Q##/'WC21`͸,OO>zrM:7=UjtqWOq5 %AK\oknz}voE;F8'$6F]kidba^_PC>2/0}Vk  hG )C+0243&-)7a\owxdwtojF49//8Irnu{RTtnM  "aGNp N"(SX;[+4G&5>=&-'2.#R;-?! ).!KM5'/&sD":FR+]utG=mgsnPSF@RmjR]`VVbjfYVXWVTSR]geb_]XWX\ZRUZ( oAlL+A~ W>GXZ^\a_Z[ZL6)#.;@8Pejl_UVfgky}wq|zVAPgodQ/!@?GlN%֦ 67&- Ke,7V Q(3>55%!.9-=O:;).'!&YM) 5' {[vG  9`xwlgUEZw|znfolb]VUVSSUWXY[[Z\ZZZW^abf^^\V;"t n ;= INy,C4CZ_]_``bddb]MLRY[ZZVV[]WV[akhWOanU9/%*!Pa( >Xa(?  1@ #Yx/Q-::*=2N'.2:/OI:F.-% ?ZC% .1&9į2\aTK033)BiS!.(#(>N4(@SRWWWVRLUZWVXY^`^^]egJHcG$,.-/ 6[^ބ $U0]x('OSJO\[XWZ\YY]\Z[\\YVVTTVVTXXVQI/%I?0O]m)DEMO3\/57=I&9:)>2NFE;2'#%TY:% '1#7Oӎ\hRE-E?  "**%'*()&'*.:\i]N>2$qஹ0%,%<'L]bdafe``b^[\[a]VTPRS;,241&)#  "J6&/_uxZߋ!)R.$CwT Z5 9!?799/7 =29MEF2.!/9[ZG )//27:3/ )7.3' #*3'v*Vy56"D5?L)  &.'  Ea x%D$41.@W76W\bah_=*    qelдk$@2 ?t?=^ ;#C>;;7'B/EKMB.' O_YQQYYO;97;KZ`RZB3!**) 7EF)-)''1-#c3OT    +'   2 sG ~t  %Au  +1;. !   .e(=Ow~Rkb !&) >q< ]58! ->II==* >/EKVC1*22_Z[F%!9C9.*3ITTOF?B;=:-& /;#ٍڱsZ>  (A?J/    !('6GSI0|@!_KS|MnZ3; %-'BM70   /;%+  !7yqT^{oe[A/-@#AuMOT;/-%I?;3';;IMR. /-#WZ[>*CKBB;7. - =P{c9.B["8JTQSE, -A0-Pafe`VF6#vD;#$lu!L# %&:DKXF6   ;L\SLM=2@v|\P\V>Mnh7">8-In>*]"-E7-2*99>CI>)'.&3E^ZG 9EE1/5&.=%Ddey@`#7]U8* <^f]\fR:13!ED 8l$xbPFC # 2+'.=MGB:8<70+   $&.5EXM668*5do9G\fyLU{vc3H 5" G`/ ]6BG5&E)B:;;G5-.-.%&KWR/5KF2&)2MC 'EhhX\yqO".Zd]XSPEC>7K}xBpI+.)637-5d}#=&# V]!=F%A'97/:M#%I=>KQ1 -RI!-2%2# %TMG *EF9!/-/?>#7 [ynNBU_O?EW2@HU\afcL$4YUJX]E.@TRC7-=Ym{-#D  0ZK5 Vk >? 1?Z[C7+BVIIYR)%HXT>RhggiE =ewa 7x %*0'TU6DANW=.C29VK%&;>F5 -.&.BQNG#FOF%3%B1*FztOpkTN8dlSp5 Ogehc80IQ@/7FCU[LK\_YM' ,E`tqj$":JpuL5  /&I;2# %6>X\UT_ZZ^K:=8BKH, +NHCGZsgTF'$?F~{C!7&!) 7hN3V-#5&&! *-.W7 %7K')K /&)#QOWK:RV7 *3 F:35>7-Q'#  #xqdW\OGIC%=G8  !:Ro~x{{nA&Rm >DjFJ4  L8 qws]XF;-.DD /2 #bxP4&;R8!=^Nd}#;C1# 1+   #)"!3+3:0$xZRv $6IK53'(Xj*'T)$D+ :%5V#%K% B? .?KNWC *C%BI/9?9=nI@! >I('% $/I7*:Tw{H '*/6-&1D- NCFKj V: X['!),2NfubS|^sqb\Q>0. S +\='-0*6@3E+## 4h*~a @^a#:/ AbH)`,&9 =CRBK OC313#1N';?%)75t_W]A0!)$ 3-.,G, 5< NWquXA2$+ 8 ?30FT`B2IaK1  hFJu[2B#*GK'&[7 %< 1>F.=;>)?`)B;M:& ~ez|%,4,2'=/@9$-7Jjg-,_]UG$6_2h}kR;& (!"  .DzѨ )S  ޯ   1@%! )?CNan|t0IM\|zr[8rDT BeG0#0%M`: 9B+$34%)M;7* Cfe1 5 ad)k1  &88X~vq}tdRLrz}j8 &+$'1+'   3%W7%/'x>|1&Jirn\YO&  (45F6"E db(Ze Jc" !()(% !&&" 7G@MT2  Vqc2KHj\4Zf{t :f`:&9"L[T> 4N>.DC-/ICB*.- jS[[$3% &"   ".61;, Dg{5pZ. %hC(33("    &zkC :d[7% ,/" =_\(*HH@1EH >) dKŦuBCiqH3A>MbX_#    -I@AB=,zZ27ܦ`>WC'   !3[uD4+).pNNq5ig;=@43 M4#][+ gJ*HQSL4JxeC8R2!8=@>TvW-  XرDzޥ) !2RE-.**/>$K^fa9!*ERSSR\I% *5$_YȤ, !5\}W6,!5=A0/i^WVV:$ERA:4*,YC QuF5gL! rQ%.6MM6RtZXSTY\hQ8[*2!"0Dg|hC."'ˤij|/:D@PTC0(,+"*?;90&M`e_Z4 +;LMQVTO6 &!% cשڵx  07P|^3&*5?IOH #3=<4-'$"  |igM   #:KLRZNWe?.;9:1#(&&8WurL93$  _p.3L32#409Q\a\VR?;9;MLPRSE5"I\^cfV+'9CROBFTWG,)%7zV *Jdwg:&0DHOY[R+&D ,53.'$! ;]qWNMn8#)('$(/1138;T^5AD843&'B &XNG@:7&/Mm|uS8)RC  ./+/4+#:ELWYY^aswa_tnjl~hfK*!))(0@PPLR]YD90!!7 ':JQ%'$'&zK(ActP),?MSWWSQVS=  *290+) .?E pY! $<-#&&''%$(()0019==2% A 5XVWTONC4'-Smnz\@   ($,H4511**-;I8!$B[]^a[ q#:    !&()*051+" #BRQPRUXTMNE94?IOn?&aoP(02=G@8(#$0=WlwV=5 "'(,10*#$)9T  ) *>ACIOPTOMI7+ .=#)&!% _#cuSB:+/A@;.7A'+3%(09BGD' %A0=nk`\]acjP 0- S #)     (%&27;2)"+7BDDRE-?CC-'3>JVpnL@>8)GVbwE0+V|11@MLK4'+ )>S]K/%'&$"! %& #I' &*/:5! W_8gD$(AL^|`F90 "-FJ( 8IB5)% .=Gan|w{eU]_PLKT5" C 3Yq AT/;=DIIJD6& %797. F^| 09W^]____`aXOS2'@- *4:?F= 6G>.++!.& )2F ~\GNLaU81WQ:,")%  %)1?T.1\b:1(950#%  xxxpmnoqz|w]9"OfA.E֗rR>_ծe3\" Cd^^___^ZYg}sk~rvgggZC#  *$$&-061)%  ) GiM8 ;X\GL[@#(!12N M/9 ! *2.   JfZayqQ^toppvpZ5#+DU.NֱͣQ *I'IIBD˭'}5)IYVVLF?Qf^gtyvtzt.  "+,$2ww?WF";MH##%>&Q5 qf`n     O~_7"% TkzwssoQ+6B7Zqu ?d;3!RY7(<"ND$ BXD*1<47GI@802337/-00($&47.,1*$$ & / ;% ?F  5¤vq ":Zx] HN>yEU:7 y=?5(bXGyq75Q= !hn(VY  Pd!w@S_-@skD*R=LO(''8PXZafe_cVYYHNM=@=5.)0*#(9;?KT><5 $( )C FC  䝓}W;(`yv44u =cDTBҰT r]c5l&6m 8kstcj,C/d? =NT2(UO &FUTRZN=ȵFKKM[E.Jlӛ[#*M`|[)FW MQ<\2 AMadY=& #**,(&%#4>GN8.% .9  ?7 }м\,/1 '/P4-vB5CZXhr4?veGXG 0$4\my:#aЙuwG*vwb3)ӧ{i<7 IJ JX#&K\XR?& *$(,*!&5RbDPN._G?6 >= 'ELm<!DhA"|MUh* 7 4\oÖpI-٤xYlsZH:H?80|{/(̨EHML`,N]e[/ !)-:?DP_]?# "9c.;; 5C >% ԉL=' cclũf44\f.G|tmvq>7[ֵӹg#9m˿}K[ BFNZ*!:I_md?-GOU_WOF#(<]&66 &B  ;>TkǷ5AMnگc@4]_o}e9~R~N? LVA5Nfk\O-&@ObSTG4 JT3BM:  BM%6rYE]-]sh ,^Awu;37?ǫ5jW3 8O ?RJFCDWZ4(?SbQ/!%;`D0B:Y. .R1 #ƏFyaqBY[䧟A~:]F֞N07ROiRB>;N=.ehB!@ X7 'A #KO! =I. !,  !q?LXUV\I k^?bF3 wG<La6,@D+ 8ij;  G T7(D BF!   /KN# Wx7 AX3.+fOKgsf@J@Oj,67 AvX. C [GN 7OC)   ;TG' M72)y=ᶸ .R Ik,5 TlH#7c]J *FRO2# *GW:.Nb9; WЗx4 L,COF?. <{`ecG5Ya_c^^44EUi*L2Hn>%& :&]X+M !-7BKRNNF7/  2 3Jy] %lL"ON!):!jI 7S   rὧ%45 Tzj$aW:N&%:E#o= +;C-o;Ab(  8BAhfH/SQ Nf!& G>?};Ho6 G,b[O0TU:i< ' [O-;~R"JlG ?KQTE6ES,!dW% !$(P<+,5Y!BjG Q-USF68T= ^qE &% F(/5e0EjCM UXE<5LF WuL# !#)6@'/-h,Dd? /LK[687FA/[j:: &(/0C/ -4b#EfG 'C1#T+27=H4 ==&4-: H3!;k&HpM $'LJ=#DBMD0.=%&  + N?(+Es@sO  3V 7Y+7OYJG5?& / MK2%GZ 9vZ PHQB%P`U3? A  !# MK2DB:~h ''T9(Q6V`5((F ") +>E3QB7~k "01+))$#!!TLCH^I%#D "023U>NE"k ',2#,1] 'i20Yb1I 11=/^=0_8 o4".HVUO%:hX-D /%)A  *116:?A=CC9 3_=$9TU)'5+ '!.:0PC^=&Ns5@ G ) #6 =%5VRO\URSD;BLNYB1jIG 1yw,'!"&"!$::'#!2EH##.1B:'9,$S:Y4Dp4=$-Z72C +4Xjoqxvz~mghe\SC=<.(#!)!&tWF Qc(6.'&)26#$'#7'WOODZd>.N 1@)j]GBLObzmc^VMA8+*-(%' onC7[0''9!".1!+\]PNmQ&40K.O*zkQFdz|N. /y :+(X$'2#"07Q/]LOZ<,;I/M'q_ivt{jTqe:4)"'Ac B8O!'#,& 2DB2]QaZ AGI%Y9XQOa?'+>W@..5- -3B\tY;@P'#!")#;4;_IeEHU4YTU+P! "W* ,9'  &+-,;IE@32. -F*###"!&'2+=cQh./L X1VVE&PLI  +B ,7/,+<6689?<=>PK=9ANOD@6(D)'#-#!'&' 28B_Yd 8>]DF.Uu7 N 1M #'3*!+=BFCJLPMPRLOA;DB9?F?/4<2)"+6&  "*Y&'2A7'!"'&#& # EC[g^EB+&T44ZcBY5TN   '%57>@;524BFLRZHQ\UNVTLJI>8;10%#     )KM 6M?-''&""!&)&# S@ hfh7=#5I 'L&j`32YPNNISoC+760,07)&367748BD=,31AA36>IPLPMNTLHJB:CKJ9;1+*%% )!#&$$!!!)"!" GChsr*>BL$S$rE$!fZ=@`lJ1(9>7587/458?>:=>=4*&7E514:BD?418;+% +255)'/+#'2#!& =;=}r@LB#U*m- !&d@'IW@%#&$  '%&*#'2%"! !   $;0"!$''0/#!I<Mr#BZ1+d,p,9L/G|G@^A-$"!"! !   )&#*$)5*$*)*' &$&!0#!J FFU)CU!j&rL  &%#*&#""5$5+"2,(O)$9F9E.N_XC|[&9+)+-B/9#G86U/$HT jW _h :`4!"##'72"#6@;)f/n9#xB+~@ owYP '$#:;2,"0A!5; {i,(O#09L" \F\: !#$<;..?C"kt"*0rb 6y)jc$ziK:PD!!"0?6#5/J4( o~*'4%~NRi3w3F}?C@BY4!9:#;$PQ? sW08 Toea_f^YHA/PX& 'B90#>DXERo$.M*jPtSc9 m71B-4\M#!#!4E,&)2CXH9o1/H)3k+RlUm8e :4$Hn=!#$G62CHUP'wlL:5(]`jhiB n`0C-4`]!##&,V)4 0N>#=JYteF:&%yG9tkqC86?17R<'#IF)'?O.#Q'RyWM5( Sp Ww{OfnB:-C^<"".$'.I94IE'NL& BeQK@.,pRhm14 *=48^`/" #&"(,ET'-2;2)" >W;4VMGE+J]V9fp 3A?A`_#'''")!Qs"0J@I]pN&-$!+&"#>>0.&'T6 :EAB+6G;"g% cj/X 3[XKYuO .-!'&# !&"70>92-;Q2$-?+ 5=ZRRi!nj HWI@UkF!''$(+-2))$&#+.'#)/,'+,2&.1.'$##)##$##$+++!&!#,')&"'"#!1-&#)),"#D"4;M.#%$4, $AE BV;nYt#"FQJARhH '&/2+010)+).62:-/1',)+/&''&$'!##!!&29<6''+')+,1C5F-2+:, 2K-7Z}(Eq0FZC2_C++.022722.+11000',-'&!###$!,6;22'!$'-'.,9+88 4I*7^bw+9H>WN^J'''"2:5+.,2'&'"$#&)!$"$!"4EH6:0)##((&11,?L6VN#!f>dr(%mb#Ylt=)>>9::>2&+-!#"')''##"!###"$'"#!#"6RC/+:(12/)X^J=_H)\B[y$$`Y.Y`!##")).210./0+#&'#$&!##!#0!!$(9+>ZV.5MD)_Bh5]U'Tf&')'""+/+"!!"(0#".)DNI9Ca?'aHcD2aW>&45>2++#!!!'')2"##)6"5' &7[[-&/ML?!,]@9aZGhN/B?.#"#&##'0'6(CXO+ (CbW!AX>J|RVrJ ,+20+)+)&#"'#$&"!0<,)\M;#4_hN GR2Mq0(`l4)+.;LRN>A?5-,)('!$##"6.<;#D@76=Wa[4D;HVuj%2cU0'HE2)FI@6+& &&"#',I22E 1UN=7JUvR :G3UL+"!#&)'#''!#FuoRWT]lcL* )G@- !AHVUd^5BY\8!##'#!!&"&#$!=Uon`dixnfG&,DU: AKNVZ]N&AYzP #"') DY\hyxvzlE'  %6ATC' /@PSMRaU?$8W~q> KfzylriZ;!)?FKJ;8/##4DFNEFPVL: ,D_^L3-C`fwtYI2* '**-0:DG<2)+497FOR@=ECGG9& 0HRR.$47Ik}vztf]P=/(26B<>:71/0.4;FLKDA@::LLG50.1CLCB1 )?[ZT`|tdf`du_Z_K8@@@MLNZNKMOJNaf_UTOMFH@=4% #&CN]hhsvsqvuik{usk]ZdlutysVJ=2'%'&!.8DMSSZ\efmqhl|opud`YVYPIPLMA/  #% &9)+**  ) CG1N? %-.;CA4;: %'0- ?A1#//>EKB3$!  (&! &72.?D/ &""5B-,'#  "   "   +7,'-#! #)#!?5 %'  #!" '7 (# +% %" &<9) "6'#=)%  +' %# (.3& 8BIS>$ #%1# ! *(! -+ 384>_n\1 1<9#3=    --''''01# 7XSC>'26" *   !+/- #'$'DP]XI0(6;'  ,5    %""  5RQQTF<:.*284&  " 7AQT?3"($ :8$%- "  !!,)FTMB$/(79!+$!  ##(1   "=Q^W5'50' $4. ! ##+ &(#6:4,," %&"'   -) '1-^_S?.&,,) .2! " -(+EE<*,15,  8!-) -/-14(,R@.,,##7F=.'=PP>30./' (! "' 1]J("$57 5. H !)/( 9J?988@633DM?256:;LK+ 4AEF;830+*  78 &  7]U. !,/'.;;%3H #*4( '57>9, 2B3!4EJO<&LF71579A=) =PJA7-,-87 $:. '  7YX4  ,5$#-5:  @6 "/3" -AJ@29851$ 1DF."3=9-'KE85669;( 8TPH7/$$4! 0/ ( -TL1' ,42' %,<7 A& $&9* "8DML(%*;1EXE#'*" AC4(%')%?TC>4+0-16. 5= )  %YM#$ /@;<$,B6 A $ $'%88 +BHMP- 5<6 HU6(  1A%   0BJC6.+)2'  0+&! !! O[+  .HCE'%3D1 ?!2&'.F, -9AIP> 4KB0 QM*!3@7DC<0)5606+ ,  "-_N &DCE5'4;6 )=")4 #)*8C 394 ,:IGbWD70.&(- %8- (0 % !#^Y@ HOSG4"%65)  0;,-/%1'-:37AEIJEH>8.U>1:JDUNJ?&"&%3!*(!$C\O(ENRO#"3/87#  8<&+31)308099=CGJ,KL<32XF;7D"GV<+1%%..4- .(" #TYA?HPP( 3 %7;6  C<#-89 241;*)E@@DKCJG6/ 7YK5 MG  +7FNC9."  (1#!0*& &%(]VB6;JH+&9,=G4 N4$5;2<41=*;FA?EH%CA0% "LYYLCDC=;5.9C:6*0) -5"&# PZS+,6773 7@ AMA$ AF,1IH5,D6)9-9JG3 FF06MH7CJ1*3%DJAESH 1;. J[YXM9,)(@U[4+;C#0& )!  "%  *[ZM*4$8B .?KI, UN-,2/0"16& +("^\I+53 =K-ESA+*[L*AJA48O1"85EGFLT%4?5/QVT/#G]K :D:660. #3!+$ &+/]\D'6>(( ;R#=MB;"CZG*@A>(;@$?. MJGJC!I<. $SUK,O[J-A@8104#   )7&! #('Y\B089 1=R#)5:@1"(LZ@+ICC$$H" 3B OJDE;O B=JJCG@(C=!=\ZI&O\= *;>)"6A&-.%%)-$+ -J]I0500 ;S$8?C=:FUY<3LHE$ V5%J/EMGL= BD1 G]ZH 3Q\4*.%,3( 4" ,3 -#- F`V**54(&$)G' (4=?BRZV0+JC>4U3A>PLI=$ *JO?UZ\F#BRX& *784/,0$- ""%.( ;Y]8 826( 4A$/5:)+ *'!!(-'1/'#&%   B`Y3BQMFAJA9 #=U[5H\/; .OQD68BDNROE, P= @P17>:0& .+65#//!+(# "  ,0  )S_Q/HWSVKJ6.2Sa/^?GFTH??@ISP36MK5<@98>0<9.(+",3) $/   $$""$ $$$&''# "#&"##  :V_P/ /U]YZU>* !8G3]#-L=PF<:AD:&XJ6TOA:7.*7, 2#:52-(  %&  7NYWGPY\]ZJ*  SR E@ 33)#" R;"%5?:93 $&$.(  !$5?:74+&!(--((&#       +=RWVQM<( ,`6L'   3A>9207 '1$&,6'/ $(555<:320-+%! !''(-0-(((&'"&'#"#'###!# '% FS0L (7@B<93"'*$."15/%)4  %1+-0<;71/322--'&"**%-+(+#! "%"   %!WB O=  *DA;93(0;GWI!!  $-1'!%!!#((++('"'+(*&*+'!!"!#" !  ! !7^%'Z"    %<><=3.88HoY 8;<.')02-'&(-+% !#'" $&((%+-+-1-(*(# "#"((%'*-(((&'((!!$(')'# JT 2K   !    +>GIB5)(732:GgZ0  (! $&,,.0203:>;:<:1-*+('$&*(-+&(*-+0235514552--30++**'&&(&&(+(#&+(*&#'%)+(((%)*&#&### '%$#!"# ! #'(-!R-D<       "#'%!$$+-10+',>POGMO@>=*#4@?4&+/, "#")-025:5355/.22(('''% ""!#%""('+/-/++**+''!!  (HA. #"&%!         )", &-0/*$2,#&231-!+1.2425;?:2/6AF@9=>?EEBAAEJR]gmX@3$" !).'/(*'(''+)/((&#($ #!!#"#"##&'"$"! ! !  ((5-&'  (-,%#.!       &&2.&2**&*2+'$"(06$/.%2#%*2.49*$,3/*39/1:32595023469<0*5=GH9/43.4?<;:4.72% %37/      # !!##! !!!! # ,/- !,32.21-'0;<4+0:<638.#) $% #%(1.2251')7)*. 2C=783  35      ""! %1666445:;6347780#   &&#$&#(3;80-,/($7D;(/* $,2,& --  ,9<<3% 5F9 ,    %4724;=CG@8;?CB?EHFGC8/)'00+$ -0+*$$*-.01268, '.;>;61/28;0$+.'(.#    1@=88* 4C>*'    6=>CEJD76@JOJDABDGA@GG=3'   $'*242257688A83:60?IPNMGB=97>>>CE>:@A75<8(,--5<5,13382(&,05300-,/-*,1162+)384-*7>3.320.0497477+$/--+%'2." )8* )>KB59>1.32& $#":RNCF@;BFFFFC>6.0/2;HPOI@1*#  #").0466671/7;>JQJB@CFEDCACDA<549>:7<>5,/,!(%",2/+2'(0*.3111.28964)#+373-.129;5:=:85348;=:563870*3<;:<>==962-&#4;<871'!%-,+2448<;>;4*/+ " $ *94$('-2.(.71&"%11-"&.5/,-2-( .40,&#&-3*(.99/4890'2?;3644>ABJG@GMLB./<75?PF>FBEKGQWZbeO" HNQNKHIVgq]5  %1@GE>@JHC?FC967;62=;383*&) ('   . &'     #/@J: *'% >aqq`ZYXUNPVYbWJJTXF3,$  $ '.*$/0!#$*("-6;69E=29<:=FIB<89>ACC?@GA9==D=* #())1/((%+/-'(.;<2--28718C;3:C@=402*'0,(.1593+ $+3+ )1'!)3310,))-456687--5===E@9;KJEHIJEEKGGH?<<9791+*-?QSF1(&#$ 5OPMKIMK>8:8454$ !! ,-+031-*.&".1./:A:9FJIBAFI@66;?>@D:1;GB<88>@4'4B;7/&'-03228>DF:,')5@C64@IAOOFFIMJNRHEK/ 3B=:>1  #8;6/(# ! +033*,2246994253168;CPREEGIJHB@IKFDCEJC814=GLI92?IIFA>@DDA[fRLGGLKHIO[\^hhV?573+/56301)%+371*-'-0,'*40*2-/*"5-  +/$ *11--375896789?EFFA>?><99@GLLDADGCA@AGIHHKQTUOIFJXfg\RV\cf\NIShkh`\WQ\`PMOU_^[X[ZI>I]cXNKKJF@BGDA=B<9==9- (-),./)#!%&))% ):/!'.124132/4;92158<;=A@AEECB@ADGJMJC;8878:?CHGDDGEFNMMTYZ`gkmpkYWcorja_``g[OLMZXTKCDDCB@A@@>:3,*11$(67.%"%!!      $CNJ/ %'-488<@?:56:;=@D@BFHJJHMMGKJHHGE??@DKI?659BADILS]YXXUWc]T\c^``b`]SEIPQPH==?CH>2..0284   &,   ')/GcbA!#.:<>?>><98;<;;@HLV`^QNNMNMIIMLHFAA@CE><=DQSOHCLTWbkccmhgcXTYUKGIE>988*$"   $,02,(6FLHCFUO0,304;AA>?>?A>=@@@@>BFDCIPUY_bWOMECCAADIC@?@@AHKNLRchb`]VQSXa`WOIEC@:660$ 4=8!05+:QQMDB>GJEAFIF@@ACHIILMRQNUWMJNOLMKHCEC>=?>>DHA=?DHQTRZb`f_M?@@=971*$  /, #54# .APYPFBA@FQF:!>HIMMLMKC;@A<=@@JTWXUXa\USQKJLIGHIGFHE@>A@>>@>;6:ERRJ<2261  +1// 8CACGDCEDDFIIE>+?B;;BLPKB?DDBDDBLZab\[XSQPLJKOJHGHHGD9301-&"!  !8- :<( 9LNFA@=<=BCFJB44. %>MPKEEGB@?;/);GCDGB>=>@CB??A<5+*):AGA:;5(#%+-0123-# 73(%".7+ :?CNH@@<8?JONE;4+  &)&(2564'"5GA=B@8=BGPXVK7$!.- #6?@8-''7B>537628?:=GUYK<* &1-&"078982*()18HSOPF:310-8DDAEH9! -/)$ &8CD7--*&18IRRVPJC@9/+3?EE=. )53,5::4/286-499AENSNIGC>=;426==4!):90*,&';HC;2&!,9=>=78<>BFGP[TSVLFHFE@AA2 -7;68=46>>=>=;?@<=@IRUWPPRKHGGJGD6##!1@D@66<<@DC?<:=AFIHIS[ROLINMLJHE6*  /-7>?<:<>?ABA@<>FILTTRUWJHIEHMPK=& 8=;;75>D>:>?=CEJKOTX]VPKGMULD@<6 &!(4==9:55EL=7>BBJMNLQZ\\RNNPTXL:7756AIA=EKKMLLPSTRROJLQLC3 #' ';HNG??:7845>BMTNNNLKJQURJNVJEC5"*DMOQD:=>==7;GEQYOS\XRJOZ\RQVF;& # 4GIKH@89BIJCFRIEKYhobVT[cZJE=.!/2&!#,3;=?DEGA=K[^QIROFUdio]TddO>1&253)"(-.1447=@=89DMWTPUVNKINT\`[SYXTVB+!  ,3)&'#%-3468;=:457;::GS\ZOH>;DT]]^`WJFIH9270&"(/22026>:1'*4HWY_fjVB?6$9;8* '?FOOSbYU[YF1&.<4% 1HJC5+./+,-259AFOOKJIFMZb`ZaYKH>+8D>1-)'(9A?<:=HOKIQRV_hk^NH:+ .0"!.+'0;CF<-,4?LTXVQYgl\I0#'8:=EIB7*!(5BOcl_V_`YF3>FJKHA1"&3>JVls_QG?)9TXTG4#%7HNTgstjQA7 #I`^K5-=MafhsmWK>(AMC7((:J[rqjg_TF5 "%-=MZhnt^LJH@1(BgopqjW>1)*$ !8SkmthQ<% ,?NW`_ZQ>+ ,1)#0?JRRZ\N># )5;947@DCCKVS@%r##r>kk9,``,9a^^app5--5 ~ ~ PFFP(::(k__kAa aA~qq~(p"jt[B)(B[tj"p(-BWdjqxk|uoh_`O:%_kE6z,,z6E .QsPFfD!FP(%mm%(&X5-tE-5(w w(,^}Kn$ ww $nBl)GAI`I22I`IAG7zkakhvffvh`FAFj888888888888888888888888888888W]888888888888888888888888888888]W888888888888888888888888888888jl ZZ li1K1@(00(@-E33E-shSh@(00(@%% &@(00(@Ay 33 yA0X0@(00(@ V[[V   @(00(@X_}33}_X!LL!#@(00(@/R22R/xx)@(00(@WEVVEWZZ.@(00(@GxxGMFFM@(00(@A  Axppxh@(00(@JbbJaa;@(00(@a++a.FF. @(00(@MSSME//E4@(00(@=  mm  =N``Nw@(00(@UTTUb<}^E--E^}<b@(00(@X[[X775@(00(@ KK UUL@(0&1=IU`lxth\PE9-! 0(@$EE$jjf@(#Hm0`;0(@@8uu8@<<@!(Fk00^9(@\RVccVR\'nn'@1q(00[(@wm:BB:mwu@5t(00^(@x''x^@9x(00(a!@]]I@x(00(Y@CC,@ [(00(7@(66(@9(00(v@PP@x(00(T@jj9@V(00(0@*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX* @S(00($@u8@(00(@"@(00(t@ld000000000000000000000000000000PW000000000000000000000000000000WP00000000000000000000000Y0000000dr=`- a& WF}\ ,;GS_kwsg[OC7! 1&Lrd?8K Dj,_m: :m_,\6JSBB|;8oM jj w6  H>"">r1hB44m+b-+PP+nd000000000000000000000000000000PW000000000000000000000000000000WP000000000000000000000000000000d ewmmwB_@(00(@97##7yF@(00(@ q1,,1L@(00(@<Ezz @(00(@YG??`@(00(@Y=rr@(00(@<1ZrrZl@(00(@ )>>)T_@(00(@O3;;3u@(00(@T\\Ts @(00(@bEvv9h@(00(@{\\@(00(@  o@(00(@oJJo,@(00(@(VV(IK@(00(@ t||t^@(00(@1KJJKu@(00(@\8PP8@(00(@2PP2@(00(@fOPPOf@(00(@,OPPOL@(00(}@OPPO5 @(00(W@AOPPOa@(00(&@OPPOw-@(00( @IOPPO4r@(00(=@OPPO @(00(Y@OPPO;"@(00(t@IOPPOh8@(00(@OPPO@S(00($@Ov888888vO.@V(00(0@OO)j888888x888888888888888888888888W]888888888888888888888888888888]W8888888888888T88888888888888888jOO#9vOO [7OOXxYv7777777777777777v&9xa!sS5tȳȝ^iK1q[I`A!Fk^97za#Hm`;Bl)&1=IU`lxth\PE9-! I,^}K&XtEA .QsfD!-BWdjqx|uoh`O:%,feooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooe{EeppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppesO T1=GE qL9y eB-nBm+ Hr1Mw6S|;Dj\6&Lrd? ,;GS_kwsg[OC7!ar@>0Sd8#q 3J 3gai)WKx37"hT% kVJ 1Adu 2"Ccuh[O< m{AMWO8 +[n4.> G-;&BbiG>Q<MqoZ^E&woF!K-|oq.K6WxgF4@LXdq}vj]N+'$Y{B,=`\_lK+ Vo5R 'i,;:  C emA ?yLy cHY~?*,8+{3OEXFC'V_ ucs^4v%'n.gPHm7 m1 EA h, {w] 1!"H9IQ4?U1|!- ul'B Ue g66Vqhc t{_c>gWC.waB)SNCh_, wbWrt 2>91%' *.Uil*'2K)% cq5ti&\ XKD =bxS.[Q# G2/--aiYs? ]4:b{f H6'$;V9+r}egzh"i V .K?1|ovBf + E +}Wz GS@FoK6#8J\mnlzbJ1s,$ |s$}vj1pP4y@iB9? vO.x>3a cL Iq!YaY *M* T}n`QB4%98-yT7 .|vG "z$teWH9+ LR| 8X=N#Br&9\`Czk]N?0"pjO:[6ps'^M ht0='"4AN-[hu ~qcVI</3' n<x8_J{'8d:)o 2[@tK# $E]J6*uV>/sv(-swU#Y%'-Z^) 1]Y&(:qZ9 Aa@ +:HWfu|m^OA2#b^ JAzox%L'Hg y%4CR`o~rdUF7) * S>,OL-t?Nf _ 1)6 -'RrDbQ7||y{R!Ar@foLQ=# jY`E[Wf#F$#Eu^R%'=R]cjqw~{ungaZJ5 ~-\|} O SCX6")Lob?^ [iUC2_!$&&! 37'W{VBBnF 'yo$::k[;v9+^v+}K2k=*Jc8({s&h`F;MUv5vCI# VW v:SW "dW;cE< H!2 zq/BNVEA78ivF8cG>-&KZa.Od<uMx #%'##'#2u&}XbI@ZFi>hqSlX3SP{e_`JAzu(oYr+ (.'*  $^LCQVT/,$Is)|?V5\NE; #QC*X:;2JRy ZPF*%VIq*z0w @ YR H^J#fQ)G5!k?4 WT J~9qo d ,h8^{,   wR UU KM(8HXhxwgWGRw lEoo^8  +:f SW M'7GWgwxgWG7'8e ~y1 "[l (.:DNXakuukaXND:. QY M.&6FVgwxhXH8(#84J1@ P1:YxxY:P[b=6FVfvyiYI9)  ~|hr#BaaB#NP cn@",+M\ FSSK:}m]M=- z?M5%*0G}}GYo_O>.kQJlwXfs8q ;qK]q; *3p`P@0 1 m#D/elGle/hrbQA1!)*Y<zGE,o E 0!_@FoENK,,7YNm[3i6(F WgW uz L#!TX$lqaP9*Fa| * |{DA~ mj, m j|{ )Q46)"?l:lBJ5:tsm!Pyn '_wZ{_llV}#J5, %^-]'cdA~~n/,yd% Ghwh"^E!271?r)@p o+=,zk" ]@ ~[-6UD`F7"r|q~^Kg|dZOA/'.k<(B%}.:1q:A_/0i Q<;`i9.k$FLU2M2~gBKTI6~OWf^h'iVwm3-gaTs{;jvKZ `$0+ [Y*mKTWYex^"Cd6PLI7^wO(!CN~">u ihy>9 %3@CMTH;.!;-7q&lQPBa/vSD evpX* =!k}{ OLq?'FA= b4{)wPs|q,O*G A4A*Kt_{ _%v}YQwv%1= D8t Q{wC}sv~HU>"y?\%jG#*4,2~.BzHHkSPq'z#Y|eH#LKsO2yi} ;'K sn= &k w71.U4 n4q@5}u, =up ef|}P3H,-xs:\ z| }tSZ  `Fg{yz_4TH7$; Q\O wx,r)| Qa?R sZy(\Q ,"uwC_Li[-+f l B% #tgFAtu`CxX nm# Z!JN!r;krt+X U 8K;H"JD=70*%& 1UR,}0eqr2j`'3uGx;eMdyq]H4"CI7w%N(=oqJ %Tmz9P5 x8%QyBlC0noh6?L=97K4~Ma7 Ulm3vG\`* 0d`E@ XU },`}klMVGePnO/OXRLF@;+RYOEcJr!9P ijk<>p;Ks1uygR peVn?f,!hi#&$EeziwxhXH8'}3|\PH Hqk.y4[ Afg 8yQ?m 0#/j~O xjefcp#v |d/zXx2CLfcdu9h2 \[ _ IIQK8)=bbf/ VE3y-i%Zq< ' ~,/`aY?$-M@w^r! T__MtL6-)V_gb~]^BS #{]'[:Q [\6#C,7^ J*EKyP -!Z[_} 1_ {Z% ~ @XY[;(S;-ziWWSA;&YMgUV&E9!`u?+>TTiG='f,_/RS_(t ^=U-: SQQ:HQM 6k ijdPjYIl#X^s a<NaZ&_o?/`n8){ WLW V"Lf}jS<000005KbyoW2#oN KN!9E|IELld/eOHe/3}F8 ;q,Fq; JxT!iG}E}G2PgpX?r SCS7k#BagBaB#/u]:Yx?/xY:=f$.:DNXakuukaXND:. F~k.Duc1 ,PtfC&G]rjV< !'.5;BF@92+% [u``5`j8` Y`)`Z ``2`KS`U\|`_g`_3 =`_Lu/X `_xN~`_@1v V`_>e488888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888`_v 2hh`_O&+S hh`_"1UI{hh`_epZhh`__ 8h777777777777777777777777777777777777777777777777777777777777777777777777h`_-&F/hgxxgh`_ T'N hgxxgh`_pEvhgxxgh`_99j`hgxxgh`_Eo<hgxxgh`_~ +!hgxxgh`_G-$Ihgxxgh`_8_@phgxxgh`_neehgxxgh`_V #Ahgxxgh`_',P '$hgxxgh`_ ]!Ehgxxgh`_g<jhgxxgh`_3!A_khgxxgh`_MzEhgxxgh`_x $'hgxxgh`_@5@$hgxxgh`_>j8e8hgxxgh`_v Zp8hgxxgh`_N)J8hgxxgh`_"2Z !+8hgxxgh`_e<RXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$8hgxxgh`_^ 4`78hgxxgh`_,&KUv78hgxxgh`_ U} N78hgxxgh`_o/78hgxxgh`_9=878hgxxgh`_Fu0Z78hgxxgh`_P{78hgxxgh`_F1w S78hgxxgh`_8d278hgxxgh`_n 478hgxxgh`_U &,U 78hgxxgh`_',TK~78hgx"0>LZhuxvhZL>1#gh`_ ]rX78hgx 5_x`6 gh`_f678hg<exxf=gh`_"0>LZhuvhZL>1#2!F078hgcxxfgh`_ 5_`6 N(Q 78hg@xxgBh`_<ef=wFx78hgexxghh`_cf?9l]78hg2xxgh6`_@?Bo:"0>LZhuvhZL>1#78hgUxxghX`e_wh - 5_`6 78hgxxxghz`2_M6,)L <ef=78hg,xxgh-U`_!2X\)L cf78hgNxxghOx`_!2z\-@B78hgIxxghI,`_M,-:eh78hgxxghN`_w Ol]2678hg`xxghbI`_?oIFxUX78hg$xxgh&`_?9(Q xz78hgxxxgh|``_wb0,-78hg3xxgh7$`_N&6NO78hTgxxghZx`_2!F|rXII78hsgxxghz3`_f7K~78hgxxghT`_ ]Z,U `7b8hgxxghs`_',Tz4$7&8hgxxgh`_U &x27|8uhgxxghw`_n w3 S787OhgxxghO`_8dPT{78Zhgxxghu`_F1ws0Z78zhgxxghO`_O878ahgxxgha`_Fu/78hgxxgh`_9=} N78ehgxxghia`_oauUv78whgxxgh`_ UO4`48OQhgxxghYe`_,&Ki<8hgxxgh`_^  !+8hgxxghQ`_eYaJ8a2hgxxgh:`_"2ZZp8dhgxxghl`_N)e8e4i}hgxxgh2`_v :@hgxxghd`_>jlQ $'Yhgxxgh}`_@5Ehgxxgh`_x_khgxxgh`_Mz2<j:uhgxxgh}`_3!Ad!ElZhgxxghb`_g} '$hgxxgh#u`_ ]}AhgxxghZ`_',Pbeehgxxgh`_V ##@p3hgxxgh;`_n$Ihgxxgh`_8_u+!}>hgxxghB3`_G-;Z<bhgxxgh`_~ j`#2hgxxgh2>`_EoBEv{hgxxgh{`_99'N hgxxgh2`_p23.;#hgxxgh#{`_ T{88h777777777777777777777777777777777777777777777777777777777777777777777777h:`_-&F>p[BhHhL#`__ #I{hZh`8`_e:2+S 2hNhTH`_"1UL{2{h3h8Z`_O&`488888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888!N`_v T#v V# 3`_>e88N~:-0`_@1!H/X Lmp`_x Z`-`_Lu0NTVWm`_3 =p3|8`_gS! mn V`U\W2 JL`K-0)+ m`n m ptwJ`L;=)`Z+VYW^`t`)w89;`; = mn \_`j^`JLAkmC`59;)+>ij@`\_tw)6DQ^lyyl^QD7)[uAkmC;=>ij@^`)6DQ^lyyl^QD7)9;\_AkmC>ij@)6DQ^lyyl^QD7)chromono-1.1.1/data/markup/000077500000000000000000000000001410712601600155445ustar00rootroot00000000000000chromono-1.1.1/data/markup/copyrights.markup000066400000000000000000000065001410712601600211610ustar00rootroot00000000000000chro.mono: A very circular color puzzle game https://thp.io/2013/chromono/ Copyright (C) 2013-2021 Thomas Perl 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. This game uses certain third party code, libraries, audio and fonts. The licenses for these are listed below. =Public Domain Music Creative Commons - CC0 1.0 Universal (Public Domain) http://creativecommons.org/publicdomain/zero/1.0/ data/sounds/music_snapper.ogg 90 bouncing strings with field by Snapper4298 http://freesound.org/people/Snapper4298/sounds/161440/ data/sounds/music_subd.ogg loop meditations no drums by Sub-d http://freesound.org/people/Sub-d/sounds/49900/ data/sounds/music_alveg.ogg justkidding by alveg http://freesound.org/people/alveg/sounds/69258/ data/sounds/music_kasa90.ogg Perc Loop #2 by kasa90 http://freesound.org/people/kasa90/sounds/162124/ =CC BY 3.0 Sound Effects Creative Commons - Attribution 3.0 Unported (CC BY 3.0) http://creativecommons.org/licenses/by/3.0/ data/sounds/sound_level_complete.ogg buttonchime02up by JustinBW http://freesound.org/people/JustinBW/sounds/80921/ data/sounds/sound_button_press.ogg data/sounds/sound_button_release.ogg Button Click 01 by Fats Million http://freesound.org/people/Fats%20Million/sounds/187781/ data/sounds/sound_toggle_switch_on.ogg data/sounds/sound_toggle_switch_off.ogg fender telecaster toggle switch (3 way) by ShotgunPicker http://freesound.org/people/ShotgunPicker/sounds/132718/ data/sounds/sound_page_transition.ogg data/sounds/sound_color_changes_to_right.ogg data/sounds/sound_color_changes_to_wrong.ogg 060701B by Freed http://freesound.org/people/Freed/sounds/3017/ data/sounds/sound_chain_breaks.ogg JBF Plywood Breaking by cmusounddesign http://freesound.org/people/cmusounddesign/sounds/96167/ data/sounds/sound_movable_sphere_press.ogg data/sounds/sound_movable_sphere_release.ogg 31 PassosPisoChãoBatido slower by Leossom http://freesound.org/people/Leossom/sounds/169635/ =CC0 (Public Domain) Sound Effects Creative Commons - CC0 1.0 Universal (Public Domain) http://creativecommons.org/publicdomain/zero/1.0/ data/sounds/sound_sphere_hits_wall.ogg studs moln v1 by simon.rue http://freesound.org/people/simon.rue/sounds/49963/ sound_level_locked_message_box.ogg Click Metronome atonal low by Jack_Master https://freesound.org/people/Jack_Master/sounds/566887/ =Source Sans Pro Semi-Bold https://github.com/adobe/source-sans-pro/ Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1: http://scripts.sil.org/OFL chromono-1.1.1/data/markup/howtoplay.markup000066400000000000000000000040711410712601600210150ustar00rootroot00000000000000Grab those fully-colored spheres and share the color (and the correct one at that) to bring the world order back to normal. =The Basics Drag full-colored spheres around the screen. Not all spheres are movable - you'll have to find out which ones are. Half-colored spheres need to be colored: The center color tells you the target color - the outer ring tells you the current color. If the colors match, the sphere becomes one whole again. After all spheres are colored, and all fingers are released, the level is completed. =Collecting Stars For each completed level, you can get up to 3 stars, depending on the time it took you to complete the level. Find the fastest way to finish a level and collect all stars to unlock more levels. =Unlocking Chapters and levels are unlocked by collecting stars. You can check your current star count in the lower left corner of the chapter and level selection screen. Tapping on a locked chapter or level will inform you how many additional stars are required for unlocking. If the next level is locked, try playing some of your solved levels and complete them faster to earn up to 3 stars for each level. =Rails Be fast! With colorable spheres moving on rails, you have to quickly color them before they hit the ends of the rail and get colored by the spheres sitting there. =Mixer In later levels, you will have to mix colors to get the desired target color. You can't color the spheres directly, but have to color connected colorable spheres - the color will automatically be mixed. =Untangle Help the spheres have good connections by untangling their lines. Move colored spheres so that lines don't cross. Crossing lines will be highlighted red, so you know which ones to take care of. Some spheres are gray (apparently somebody didn't color them in time) - you can't move them directly, but you can bump them with other spheres to move them around. =Challenges At various stages of the game, new challenge levels are unlocked. These are usually harder to solve than the story levels. You can also earn up to 3 stars for each challenge level. chromono-1.1.1/data/shaders/000077500000000000000000000000001410712601600156765ustar00rootroot00000000000000chromono-1.1.1/data/shaders/background.fsh000066400000000000000000000020371410712601600205210ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform vec4 color; uniform sampler2D sampler; varying vec2 pos; varying vec2 tex; void main(void) { float intensity = texture2D(sampler, tex).r; gl_FragColor = color * intensity; } chromono-1.1.1/data/shaders/background.vsh000066400000000000000000000023371410712601600205440ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform vec2 screensize; varying vec2 pos; varying vec2 tex; void main(void) { gl_Position = vtxcoord; pos = vtxcoord.xy; tex = ((pos + vec2(1.0)) / 2.0); // Due to the texture rendering, flip the texture vertically tex.y = 1.0 - tex.y; // Scale coordinates to "subwidth/subheight" of framebuffer texture tex *= screensize; } chromono-1.1.1/data/shaders/backgroundtemplate.fsh000066400000000000000000000027441410712601600222620ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform float time; uniform sampler2D sampler; varying vec2 pos; varying vec2 tex; void main(void) { float intensity = 0.6; // Add randomness float random_color = texture2D(sampler, mod(tex, vec2(1.0))).r; intensity += 0.06 * random_color; // Add vignette effect float hvignette = smoothstep(2.5, 0.5, abs(pos.x)); float vvignette = smoothstep(2.4, 0.5, abs(pos.y)); intensity *= hvignette * vvignette; // Add highlight effect float highlight = smoothstep(1.0, 0.0, distance(pos, vec2(-0.2, -0.3))); intensity += highlight * 0.2; gl_FragColor = vec4(intensity, intensity, intensity, 1.0); } chromono-1.1.1/data/shaders/backgroundtemplate.vsh000066400000000000000000000022211410712601600222700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform vec2 screensize; uniform vec2 randomsize; varying vec2 pos; varying vec2 tex; void main(void) { gl_Position = vtxcoord; pos = vtxcoord.xy; // Texture coordinate of random pattern (1:1 pixels) tex = ((pos + vec2(1.0)) / 2.0) * screensize / randomsize; } chromono-1.1.1/data/shaders/cachedscreen.fsh000066400000000000000000000017161410712601600210140ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec2 tex; uniform sampler2D sampler; void main(void) { gl_FragColor = texture2D(sampler, tex); } chromono-1.1.1/data/shaders/cachedscreen.vsh000066400000000000000000000022041410712601600210250ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform vec2 offset; uniform vec2 subsize; varying vec2 tex; void main(void) { gl_Position = vec4(vtxcoord.x + offset.x * 2.0, vtxcoord.y + offset.y * 2.0, 0.0, 1.0); tex = vec2((0.5 + 0.5 * vtxcoord.x) * subsize.x, (0.5 + 0.5 * vtxcoord.y) * subsize.y); } chromono-1.1.1/data/shaders/decal.fsh000066400000000000000000000020051410712601600174450ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform sampler2D sampler; uniform float opacity; varying vec2 tex; void main(void) { gl_FragColor = vec4(1.0, 1.0, 1.0, opacity*texture2D(sampler, tex).a); } chromono-1.1.1/data/shaders/decal.vsh000066400000000000000000000020201410712601600174620ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec2 texcoord; uniform mat4 projection; varying vec2 tex; void main(void) { gl_Position = vtxcoord * projection; tex = texcoord; } chromono-1.1.1/data/shaders/effect.fsh000066400000000000000000000020371410712601600176360ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform sampler2D frame_a; uniform sampler2D frame_b; varying vec2 tex; varying float dim; void main(void) { gl_FragColor = mix(texture2D(frame_a, tex), texture2D(frame_b, tex), dim); } chromono-1.1.1/data/shaders/effect.vsh000066400000000000000000000022711410712601600176560ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 coord; uniform vec2 subtex; uniform float brightness; uniform bool portrait; uniform float time; varying vec2 tex; varying float dim; void main(void) { dim = brightness; gl_Position = vec4( 2.0 * coord.x - 1.0, 2.0 * coord.y - 1.0, coord.z, coord.w ); tex = coord.xy * subtex; } chromono-1.1.1/data/shaders/effectoverlay.fsh000066400000000000000000000017151410712601600212420ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform sampler2D sampler; varying vec2 pos; void main(void) { gl_FragColor = texture2D(sampler, pos); } chromono-1.1.1/data/shaders/effectoverlay.vsh000066400000000000000000000021011410712601600212500ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; varying vec2 pos; uniform vec2 subtex; void main(void) { gl_Position.xy = vtxcoord.xy * 2.0 - vec2(1.0, 1.0); gl_Position.z = 0.0; gl_Position.w = 1.0; pos = vtxcoord.xy * subtex; } chromono-1.1.1/data/shaders/effectoverlaytemplate.fsh000066400000000000000000000021321410712601600227700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec2 pos; uniform bool portrait; void main(void) { if (mod(portrait ? gl_FragCoord.x : gl_FragCoord.y, 2.0) < 1.0) { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.76); } else { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.65); } } chromono-1.1.1/data/shaders/effectoverlaytemplate.vsh000066400000000000000000000020131410712601600230060ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; void main(void) { vec2 pos = vtxcoord.xy; gl_Position.xy = pos * 2.0 - vec2(1.0, 1.0); gl_Position.z = 0.0; gl_Position.w = 1.0; } chromono-1.1.1/data/shaders/font.fsh000066400000000000000000000023751410712601600173550ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec2 tex; varying vec4 col; uniform vec4 transform; uniform sampler2D sampler; void main(void) { // The bigger the text scale, the smaller we have to make the alpha border // Scale is stored in "z" of transform float e = 0.05 / transform.z; float dist = texture2D(sampler, tex).a; float alpha = smoothstep(0.5 - e, 0.5 + e, dist); gl_FragColor = vec4(col.rgb, col.a * alpha); } chromono-1.1.1/data/shaders/font.vsh000066400000000000000000000023531410712601600173710ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec2 texcoord; uniform mat4 projection; uniform vec4 transform; uniform vec4 color; varying vec2 tex; varying vec4 col; void main(void) { vec4 p = vec4( vtxcoord.x * transform.z + transform.x, vtxcoord.y * transform.z + transform.y, 0.0, 1.0 ); gl_Position = p * projection; tex = texcoord; col = color; } chromono-1.1.1/data/shaders/icons.fsh000066400000000000000000000023271410712601600175170ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform vec4 color; uniform sampler2D sampler; varying vec2 tex; void main(void) { vec4 t = texture2D(sampler, tex); float alpha = t.r; float glow = t.g; float highlight = t.b; // Basic shape (area + glow) gl_FragColor.rgba = color * (alpha + 2.0 * glow); // Highlight gl_FragColor.rgba += vec4(1.0) * 0.03 * highlight * (alpha + glow); } chromono-1.1.1/data/shaders/icons.vsh000066400000000000000000000020201410712601600175250ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec2 texcoord; uniform mat4 projection; varying vec2 tex; void main(void) { gl_Position = vtxcoord * projection; tex = texcoord; } chromono-1.1.1/data/shaders/levelpreview.fsh000066400000000000000000000022031410712601600211060ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform sampler2D sampler; varying vec2 tex; void main(void) { gl_FragColor = texture2D(sampler, tex); //gl_FragColor.rgb = 0.5 * gl_FragColor.aaa; // We could use this if the level is not yet solved gl_FragColor = mix(vec4(0.0, 0.0, 0.0, 0.4), gl_FragColor, gl_FragColor.a); } chromono-1.1.1/data/shaders/levelpreview.vsh000066400000000000000000000020201410712601600211230ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec2 texcoord; uniform mat4 projection; varying vec2 tex; void main(void) { gl_Position = vtxcoord * projection; tex = texcoord; } chromono-1.1.1/data/shaders/line.fsh000066400000000000000000000016361410712601600173350ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec4 col; void main(void) { gl_FragColor = col; } chromono-1.1.1/data/shaders/line.vsh000066400000000000000000000020121410712601600173420ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec4 color; uniform mat4 projection; varying vec4 col; void main(void) { gl_Position = vtxcoord * projection; col = color; } chromono-1.1.1/data/shaders/loading.fsh000066400000000000000000000016421410712601600200200ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform vec4 color; void main(void) { gl_FragColor = color; } chromono-1.1.1/data/shaders/loading.vsh000066400000000000000000000017201410712601600200350ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform mat4 projection; void main(void) { gl_Position = vtxcoord * projection; } chromono-1.1.1/data/shaders/pageindicator.fsh000066400000000000000000000026501410712601600212140ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ uniform bool filled; uniform vec2 center; uniform float size; varying vec2 pos; void main(void) { float dist = distance(pos, center); float border = 0.8; float outer_radius = size / 2.0; float inner_radius = size / 2.0 - border * 2.0; // Antialiased circle shape float intensity = smoothstep(outer_radius, outer_radius-border, dist); if (!filled) { // Remove the circle (inner radius) to leave only an outline intensity -= smoothstep(inner_radius, inner_radius-border, dist); } gl_FragColor = vec4(1.0, 1.0, 1.0, intensity); } chromono-1.1.1/data/shaders/pageindicator.vsh000066400000000000000000000020761410712601600212360ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform mat4 projection; uniform vec2 center; uniform float size; varying vec2 pos; void main(void) { pos = center + vtxcoord.xy * size; gl_Position = vec4(pos, 0.0, 1.0) * projection; } chromono-1.1.1/data/shaders/shadow.fsh000066400000000000000000000016721410712601600176730ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying float opa; void main(void) { gl_FragColor = vec4(0.0, 0.0, 0.0, opa * 0.1); } chromono-1.1.1/data/shaders/shadow.vsh000066400000000000000000000020201410712601600176770ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute float opacity; uniform mat4 projection; varying float opa; void main(void) { gl_Position = vtxcoord * projection; opa = opacity; } chromono-1.1.1/data/shaders/spheredefault.fsh000066400000000000000000000020511410712601600212310ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec2 tex; varying vec3 col; varying vec3 des; uniform sampler2D sampler; void main(void) { vec4 t = texture2D(sampler, tex); gl_FragColor = vec4(t.r * des + t.g * col + t.bbb, t.a); } chromono-1.1.1/data/shaders/spheredefault.vsh000066400000000000000000000022061410712601600212530ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; attribute vec2 texcoord; attribute vec3 color; attribute vec3 desired; uniform mat4 projection; varying vec2 tex; varying vec3 col; varying vec3 des; void main(void) { gl_Position = vtxcoord * projection; tex = texcoord; col = color; des = desired; } chromono-1.1.1/data/shaders/spheretemplate.fsh000066400000000000000000000040341410712601600214230ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ varying vec2 pos; uniform vec2 center; uniform float size; // red = desired color intensity // green = color intensity // blue = highlight void main(void) { // Distance of this point to the center float dist = length(pos - center); // Shadow effect float shadow_border = 0.005 * size; float shadow_dist = length(pos - (center + vec2(shadow_border))); // Distance of this point to the highlight center float highlight = length(pos - (center - 0.2 * size)); // Border width for antialiased sphere border float border = 2.7; // Alpha value determines the shape of the sphere gl_FragColor.rgba = vec4(smoothstep(size, size-border, dist)); if (shadow_dist < dist) { gl_FragColor.a += smoothstep(size-shadow_border, size-border, shadow_dist); } // Intensity of highlight float intensity = 0.15; highlight = smoothstep(size, size/2.0, highlight); // Color is based on original color + highlight effect //gl_FragColor.rgb = vec3(intensity) * highlight; gl_FragColor.b *= intensity * highlight; float mixer = smoothstep(size/2.0, size/2.0 - border, dist); gl_FragColor.r *= mixer; gl_FragColor.g *= (1.0 - mixer); } chromono-1.1.1/data/shaders/spheretemplate.vsh000066400000000000000000000024061410712601600214440ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ attribute vec4 vtxcoord; uniform vec2 framebuffer_size; uniform vec2 center; uniform float size; varying vec2 pos; void main(void) { pos = center + vtxcoord.xy * size; // Make position relative to framebuffer without using projection gl_Position.x = 2.0 * (pos.x / framebuffer_size.x) - 1.0; gl_Position.y = 2.0 * (pos.y / framebuffer_size.y) - 1.0; gl_Position.z = 0.0; gl_Position.w = 1.0; } chromono-1.1.1/data/sounds/000077500000000000000000000000001410712601600155605ustar00rootroot00000000000000chromono-1.1.1/data/sounds/music_alveg.ogg000066400000000000000000000557011410712601600205640ustar00rootroot00000000000000OggSo;.zϢvorbis"V>OggSo;.gSä;vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSo;.ӔFYG9:6;7646795836869<;KFOIPGKF307;/2/325488TL3330131/27-24132-24NMIGNRF-KQ]o?0E##zxz}~ڼ/z^_2JRf1@(gJͲebV (Q:m "Z- )׬noɦm2؟Dn;pVHAOxc)qhY|cWMـ Uv{~KP.jI=Kkn#(P2ORL7m{bTɖ3lTݲrKCa:ҝ%|PF`ҝ}ЉlgU~9:%k0r W*҆$\%ɓM`i%{qSAb+`T]{h֧hRua]s0L=PzG0{n\PH9-qeYᕩcZ־[91}U+s6@% ϒ&raIkS@0YP>H}U'"rZ9ZմǬ%NĜY $&u|&v3<wHIiTy-B$Ă$744b7y c3le9#DYx1L5pu24P:g( paMY `>5|p_C-rhgA  4ܬtFq{aZ @Vʥl -3RuczXבGႂ2Gc+)V4q7aIJɀ IޫUN<ߝac)2Jq|M"o]d"tR @\MǕ7l(% :B:5Ui'ɴ-ICrZ}K:L?cL&ϺӉ kWbb%H2IKߝ͒$e$ fvBA\Ig4(9m' D@2G'ˮg,Wן53k ];gJ$[m-zEhLcQSBH)[z&ЌF+Gr?v7@ڂMrz֊^({fxhd734A3L Vt0:;jJX`AVT|yQ1*Ix0]AGB~D/Iq Q([t9\;g> ::$Ts:s\huҢPPP&ZfU.XvMzeo엘s7˜fc 'hQHh<s7OKONRƀZ';E55$z:k@J&m7崺'#@\)JL,בb=a,]=5'hAԹ9'=kmw&69 ߵOs&嵞lw SzBW$Oe Kt:cA9kOoZzwc2@]Thq㇔:cxda/>7|Vӽ~D,g^c_oٛINɱVt(fO#TVCQ'd %}]98D+{J9>1gL __h:k;JE)XP@%VDvVI{m u~Ȩ*(|JX#OL@uP \XURTO4mnm:X_2y5:`=y귭MЃR*fC4:' Ҳi [ 8BxS wGfxaT[pPLyjlO1Ony P"=ᄦ/~Ȣ&eaEU8ym~k4[V@Jf;ZӯY3 *Q9퀺@4}>^T. S-{J͕]y&] C; 8n"ɞ߳4ZW-t*iT|l*oq :}Ϥx~0Ϛ?ksK tәzFfyvD@>)9A"u_L+ESdW< k$Èr>W9+n_Ul Q/,inOPN=k`J* |KؖZߴ;tZ *ѴDgSEW$+7NuT+8@蓬$;U3Z [ @_^ Cmw Is7 lb>I9HRj?noE w&toc۹ʁ%UMN<&s ΄aJ<ڶŌbv\K̐+oh mϊ;JIRs wBqLݣF]jdHPL.tmCbI0nK^ v8l_AxkY:Y2g?˽⽄QV ;+츒34d`R`aTK"QUg?593@/0*0,/111UO33/+0+.3SPE>?I5<{OECk eQe3gmyj'[}kbhം.O~NmRL^JaKBwhIN4?d5 U8|ej7[ KMxw;: H,mJkMD;;`&z{`upNV9 Z@7mWWTzj7#ۣ%qlpgSzWYc.j`+z( q ~CnL_yO_&X7$%A=}26yq[8Eicr, A&0SWZ2*֫m9}Z)fa1Yet (h'䉈E_n- ͗!Ģ&q;vQQz[qe11_Ml<~v'\sl4iU6up}FI]j#pZP_ nMOtɂzd3s#0DT[L05,"3D;/Eynܯ^59ܫSK9?:t=y%SmE'OE.6̓(z݂=)'l}1.u }'T>-ybe'aס*ݎbӻWϢdz˰,bqw=txm'A(NQƁXr, ~<4KLׯYIU KAb $ƒန8ntiiˬ5DnBEM {oR0sBJ2떲<_\gҰ#=etv@7oP+ -p,%kDڹ-qDŽu~+#&I48+H&uvtipR"E)+Q IDPJF"-}b1 L[x$1H0}?ZMn'a8GE ڠh0{N4 }U.@hS)uytsl5I4Jz7_5sC|mK2@}5ߗ]e#]m @{biKi8[)&Ui%TlU ;qdGÆTk#u6ev&KwǫJ AS)MmY TuYE3%`9w7mlP%@ c9Z'IU NokZ 7eukw-F@G15cȇSR GqkH:qn炓qJm,fyW/UFZܑ,=Z7rj? yqsࡠZ- 7-۶w+;@ QOi:T$ 8ueUEzH,|CG\m㠺9cwhMpPd7,M{{]oJ XXÍȆS@bQ臓 h,ORV+{ s74:IIio|Uʀyp|T^Rk G&{^D@*27ht tܜWp|u1f^Jm&cڊᏩ?c>T&]y!l\…wowfe(uys {Kyo =,R"6h'BLTyeGkƒsڢ#( ZofmiFbU7M@(mnju=Ǝ1N 3.;lj}<}۱hjOF@)~ϭ}gC7L_o5~Q>$C:Z-h! F8CMO}\n'5~Y}SLTwKǙ#fnFX׉2u9Hb& 6MeU }y7=(Awb8R-yM~;DJ Xzq~+N(a-9nE_wz[ M8ʓ`htZ~h}= * -OdG3sНy<&Ŋ9Rh:yd8)eՈj$e'A;Kىf0ծkz_aW=&$}/tpZ&LgkǶgݲv Bf9"@6q h"E ER&{v *SRT-Hӥ'$`\)@yqB[NK C@kK@5AI!U>ݞ4\qbo5:Grl &k`KQ`~uqUjf-:uYbIm|&ژPuńl䲍C7t38QwǫFl|kGbG67P&.Ei˳wG&A"X&ޏ~ے~e^$9 5iݡu.g h5 $j=I׆/Qq&c &˯.뵶)1#Tۄk]eAd: q.>j Ǜ3]*>}DJU{ہ7uZmu" "PW"]}JnK)tP e0ML, aKl e(2veS̲ Ⱦk31JI0s:@QsBet1TO~%~oQWXӉ,BIY 'I*7oZT"J.K0Mx$ xѦaN*[N5i^{zi#Xc0X&?{=&=c5~EL2sF}@m9a֙K=:Nocp媻gx̛}5lO^6_锅L7ى9pJCg*l¼2(<xben金L+gNl㺻IְBt.-P: &Uw -^UBsT^4l K/DpR<-5W8#r5xrI](:jxBUT*=MK=:!9> f l@hdJ(hq6@'(IVE5tz+pJW,<3ۈM~ S3̣OggSo;.^C6CDOLIPIVC<2?~}X*O c%>|~r˻i ֯T…cv6@cee *jc7\4D;~l BoXμ`pOUc 9D+MgƃKQtBAQ՜뽹W?W3˦P )>OJR(MaT(aX _ݮ qFfja%8{5{SPx_OTS4پ$l I7q>P4ixgڮ&o sbDTٱ)/]ysNp™EU0|@'CF~ϧ k'pDƨʎT?YM ڃDSPЦFGm@ 'GDQ54f-İœv f_sӡ0c&IP!@cGOۯu]WN} {.*o`ŁADF@'ʟq|8E'(U.,;&U+ CB55 2/?> CokC4Xkw<Ncx@`Kg0aҘ5\ba;6هaHs)Q0NҦ L|sOt$`50@zb` ,qռPz[Or|Zǰ i6@I1siڱ,kMk 'j$Pן:H=61`/5 聧fؔ`g4`' Ie[̬80,{U|J8`-\~z_)t %u LrY)Euq,ieHʢM_,.DClpc  ?|q ns$u3%TЬP9(wueitzE'Y1W$1/*ބ0h: "4(wuU 8+%@kZtj$xfaPРNE:yg5leQW߻~4*OmTUi<:h*+4<yP'46CFP~).t8U[6 ax/ExugX8) *-Ѫ5GVk˳CAAmhz$8Qa2OJI@ؖaСQ,avP kW1A\$8P&O)r>[rAu?2lu؇ e{`NH1adruvtTY1az&JIvA۠kg5z9kB۟[sAyҍ_WXk3!nCgg^"tX8O^`TŜhYkw̞:/t.5C pW%áZU͉*"s(1\ǰB1JhCIÇsb]CnAhb< .*3Wp$?2U0]J LTLB >u l#.=ss6)+=ڬރ^xq8c Z %Gt05 6:@QnjxHeur]fc4G닎A% "/'*_G,(|t]v'ڤW \g*_&)o1LW0;f6BfntIgjS38}؛ƒcw@W:IEy~;g-*N@[FK2ʀi92B.gR)8 O Bh/hs7w.pvF j{m]5U7)Df~C!+J<pm$>d'5@Pepo[Y(VּYQ,2P4k&mgEFI5ng=ӗXyout< )3k*"ڰDiVZ#%mhq^x%:LO! W+8a4h NtKB2XΟc]|9U_)QI tIp/ 8xfM@S~Iknά 6֨=E;ęرԺJ` AHuUq32{ 7=բaÅ )-~t 5s ȫmQ*y͑Xcåfxg+:X-6ҟÃxS[aPEtNiSEuYH |OggS6o;. kIL63//.1.5472-.11//37PJOMTMKG333B//,/3/.53XJ2-,4)++.-G.,/2-0026NJLKKKFB703w{b,8%ŷ4@kH$b⑙瘋K\ N $Z< 0ެȼ͸JA,ˆ!2`~iʯy~c.5Q uj&c}7;KX4p)u4ֶ_Gtqk3Y,5t 7j8* Kmk7yݪʅЫ҂!ÄO7v[ uQu^Mv]-~Z fE#H7u]YsRwDnݕr2 iAx[}wiO-*Be `eg&s&9:eWb+#@:{weW5TqAZ`T-c\iLъe6kM;py7'vK-" S+cϫJ,v8iPAk!>I˓K#߳_J֛tEd0JDAHxissxUo=_n_cE:VH{)SCIIA tub'A2 H&zXD½6OY'bδ`1(c\1:CJYBD)Z"k'=ݞ(S/P8Ď\z(0V tk IHآ9m fMν'M{tRGiFtR\ܥ%Z.Q\:u>TM&\Դ >.N[NC6‡c.`;\kΫy7)}=^^(紮*# ߃@@ZDDpڰJcƃK PZ?GkB -Rξb[ssM>ic{b2_X-x4T"J5fo1IƪE9@NPs$KQCNwTb 2`ZJDUQsZ`u80u7/9ӐEɦ귤^kCt,%zXVr<@Tqœp4858#.&RzD-4 Xc\L%2 q%9ӅR[۷%޵3EZF2j^[82k*&'@ o>vYᤰ):0HcQ-,Ot [Eճ$W^ގZe TCڅ?-/rQgR-8"c@=iF.Շ7"xCb pBI-pZ߀j}iKR&[ߗ֐RQaTŃT4LER;vh6 PLn2Wl=`j+'77>m1#& m\'О@d:aeQ:e_‡Cvh(&W{~lz*,mOs97hUtesPfx){oLFc=N|=fYoξ,}"z=+۠j0 z"@B4û퀛14L/O }X@W!*ϕg=[=xCŏ>)jO`&t:vv2 wlN +6ע2;:<˽/y %Itm9q1G\׹Fqh0Fp4ˀ)68ywuh:T2_Z׺n/ֈY:֙*6&e)JjR`FsI14ƄeI1匱}Ϣ 48+r& mxUH a f{ozS-+TH&0oTL$63 OggSBo;.t;6;/1*0*2/04TO53/-.*-1HH;699859=AIJHHJIJE::EI;37;:8<:=DBgc3܀j%HPR5i>M좜%%%և;ASAS)]t)8e,]nsAP%7l,V$q8㕟Bkevvv:;w7N/M8IFCI6kV\gqYfZʀYDtq.Z b R븽iK|${;A:x*DYw:qϵO)*YH\ ~w gJt#/$۹2MobPEKzwC畷|62]ȆJ ek6t(pUj)=iu]F!! %G jSL 2gzkַ7)-LXȢa׃:IIi#yKetSTgO=U֜.8~ߩD$+fa5A}."`&Ņ7:۬K*6.m e'6|kxOl05\ 歨FypbAɦ(YFnP^12$wG,A gB SKlZ}]50_TE ~6nc؇u8.y1% P6@H޵']5U/1=Y$4)W NfB҇ZjZ眴}]'ikٵWf{\/ K:%ƒ& ɓ"RX6\L&ߦۅB݌JMu…oDj? (j{׭]Ei&eEs@z+ƃUR"Z+"Fgw9AYջcVRĕ&bf24~}pZp%$1pA4m2Bc a%8j$V?%j5>gi%hflK.q#Ad% 5]r1 sklIN OHRePZ*^6u{SZȦu$@v5t Uاo $ q'܅Ь8=  ڽX*-[ _ziXxf'a5.[;FOXVVh{z5nJNSuN$)ppH7Na0J?P+,G~kM)R]Z䪙/}'˛Wl 8Z>}^|¾d(A$t!»tV- ; LBM"eEsԢJ͆W?Y(U`ƧZ zo[O55ctZ#ڒiMaBtε碎ogEm ]&3A[FT2ͦ9JF{@I ɔk]M&J5|*x.Y6}U@PuciK,)}[g<<\Y-dϿvkBRss[` PHX5]Td"تl3_orMtvxȔ+G#Ժ d0 6yݧ-i4عBLl6nirɍIڬ; ġB1y&''()o FIpI@6QTy/cj4&O FVb1u[u4ċ *Rw*eީwϒ5MIP-:R3Ŝ:1qa6 `PaJJ̕/Zg7Dj,JWNeaqn`ldQ-TYY,o!YN><:eKtZO;zna& okj$NHڠLj]UEg(?]bp6\LSD@@[3x&V@-Ъpr֮RmmXs.=eSC%N{&G*ggg/zsN5%iA̬#v,e!Aۘ .3!Ia.eP2.M K#UͱWܤ6۲=60+ٸ4u}Xv)VW&' I$a&BtFir86QseZҁx,ԣ K&`R& gfchromono-1.1.1/data/sounds/music_kasa90.ogg000066400000000000000000001137071410712601600205570ustar00rootroot00000000000000OggSQ9.m2Bvorbis"V>OggSQ9.9z);vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSQ9.~vWQF?MF"YGB/)"KJLDJA. LD>'!KLCbIG*" EIMEF<9TK \KB,JVgZ8an C\L;TCv34Dz\8K]$F,&Ȓ2|T:gҚPb狪_~ܭc~$ *v҃&q¼v ][}ytpiT .A1Nnίn==njl@jHPL΍e5p &KY C H71Wf"K=O ?1rǮiA>9s8w.n?i>w*b{B}RCv'/Edz{șލ"-ڼ Kb7(E}.wy>Cp)6G*aZ 1khdض]~Q"KVe8<7?Fx<KIէcɒvY&_"AI΄%,{[=<\Q:3bVu5~!ǜsX( zc9%+ R] )TKd(u2_4^. |H2vĚ:‚ۮ̉+ ;f`\CcpޠSf"GGO "qtXkn  -\iN#c\+KmƢb6ʆF?(wBgICKHLԴO}mVq!U=m@Ng(,kư)E3)0 2U jj|f&eL3^vTy5 00;CaAA'M46C 8cGDҩOV_;tk4?ͪ| P|C]6INAI$XHW>yxڦh0@ &MC˳l`PPt.K^Ai3h?ϓ=uj*K$&@yw?#eKU ϥs Poev|.WVt$W]p~ꝱ/'o1ZQUχ~j+h̗a 4Tb.[[A&0|gґ&^5p\q Gm,$P:R|lx.WF{&EŨ @Z‘!%P]^2nQR46q1ysJ K!NK; p2p\cg閶#GY `KV^cwzS8j&fKUc011DK$€fk<{dfHK5%*2cmvdJKNa `ϳ6,D-K @7HnfjMU!ا4KoKS^oZOq4/ ~~ 6TydI=\a|g:`L9b $s~K z*hMVBVm% z@&dxWߒ)M=zð C:a_0] OR$V=!"6Q56=,d3_{}}- w3յqa'e𰸬lq@upTZgMz2Mí50&f{WXK^קcZ%ٳ+&"K `15t'+ݜKo4Yb>VKv~Lc7a"K <-)Ip @)G AAȮ^xfIUv4#C`6*U)ajy+V|@SMj6L7KNռ.m Vp?1'8:>Y$;'дzQ.|=TsBK a'iB$O?}#)ˡ7M^=X5e{KUcCu7sL})uKDpLB<&UK>+"&a@ƯHGegY3S?A?u ho`~ryRo:`4WL5k}vgOib2da/,dv3𒹸 D'" mEn42mr̹2&Yvۿ?6y}[[{lEmA0.`y \2b lӀ 1By8"cZOTR8$KRSϱ6tK,t"Mַb S/QXUa¯ SWPuSV6L:D;}TNeگ{N/0sՃQi :^n4TK]2V;9ʬy45MRl ^ P<@ꀲ)G%0ny6GVÊNfaLrn(|(``\`7A 5"K[6\~{D q2w!&Kvg8d-P:qQo\Kw yɓJWCK7Dx'#HC.;PR ^/9,Or[緜J]Q>QoQ>FcB+w-_2 >9[#x8 -o4{~_F4m!1yUپN.ff}d7I몐L!yS*I՝O7P- lM_YyKCq>O?MKV5,+cuAII0A3A"\R%G o+JRs1gqE@6snŪoƟ<~4M[bЪACfG'&{7o˫OWH*g{nK5Kxlͮ{_/ (fed(JI-fYyR\Y'-MߺO{<*"3syLP4hNw}f&xK)e[' ]2<)I}jĬ$`͇øqktK @zaڠRK  cAo$^g8!̠j|1xp;/Nd[ߊ~l(8)Tۘ|"[I* uXe|ŤOOggSJQ9.t n3OMDRKG3 KO?NNKGDC`&%" NED#"EQ$" OMF'"! KH=$ !QTNFIAd,%$KNKJGRkE&zӼ g?MFѬD*. wvQS|00X5Y^&#:Apt 6?Ĩ`y_9x*7wi؏l0.3<lvK |K@^V2KYi-@OT}k2K^kyqGv KS;9"t_~ K:@3^ɓGS;Ku㍳K`@#j/C{I $8"ĚYE좄ꅮL_px#wgNnqkogS[h=l ?xUڄKGDMyi2a; Wh4)&d=6vlLr 0?$~QM&9K[NMy3`8Wun1%ϟR2/$k)z(` 6yPc7lX_C:@/JEV 354 i~,'럵񘇓)k.1 _M K^ NI&@[l-  KR r޹p--o6i2ТiRLP_9;W\3\yJ|1 1&Fi)VW@`|c0J^幀_ˣZ&obΘF?sR։L; 7Aͨ 6Y|W]-Mg4c9.f$wc"EcќN5锐tNd浊z/I6K*YyG9y6MI&K}A Q U"K `4؎"Y;(М45]:C]yJ(hqoouR )@Jeaą +Zw;t5WOmSeK@|̖^}hWpF0p3F]YƲ$ aљ kj`Fq5K Mռ9wJO[軼(.N%a$jqqqUulCp}2BeX .#%}TMHwG yp}r[#ӛ(PRK2%3߷nkq'855eq{ _)2=0Vw0 T_R[}:L‰R o閟QIYm)kڿ@YCS^P@= 2?+>;3a)u{du[ &ۃ@ KoS +jC"$ɹYh~.jno ټcZ.)ĸ=5 xtW~(D). )>&:A5hqnpg*"4Arj^Vue~| Wa&,5$V=蠈]:G@4.'mG'2rqQ/,6IQjIHI-#kySu R.K:@u\gGe5tp,2KC6yx*TȺJ2K)%$'HOeD*Mic186W&KR c3tY40 &MU c<\vu佫+ֵ a2>2PLKzOxk}R^;8]GoSUBGCʿM u fX+?J0ǧQ`Z°N];H: I4'l~uPhs{9>b%d3+,F|0ӸóGlX@DL4Pe,Z,yRj@fa[}@| TUN|hvT{Ԋ0KfH#nřzsx+Kr;P-$ h^-VOӓ!ϞK㉩3I@=<s쭑FK <n)mgf^6C; :鏛\_}{OAL5>I7'L!8:9D6s-k|ɓ49[;:Ih S$gtX):BaEtꅧz'sb֥B/|XrSS*3& bIJn *(Ns= fՋj)dynΛnB;MTr)"-f̛/Esi@wo*4Ry<xvky,Y)h,l̰4,3ipچDG&43R ی+ $2s2%+twFxuq=v|b§6 .hZx"mFLR4)/Aq&s4%fȄIS]=i'y{^f3+qSe0yX jplK+c&OggSQ9.ӄVGFD>?:NHI;1$MD62- [JLDFE9"LHD'!" LK?LH?&#TQOGE@8&JI!m~S T;k=#ˬ559'lJaq۞cJS7A9ѡ8lv9qzMlzEeVk@SV4o>_옻r&1`Y #j@*uD ?Ti2)O_U.۱? {Y R:l( : JX_\-PBYu0\uM5ڻxR9#v; \W&KZ@%4? Q.!^Yh3wy$Mڨsqʖ0XU g(hDW1CL@6( @An&,=-[&zf5ܦ1~Z*gTxsH\& 37® o9$<>o)LWd7^4ͺ/OwWMwƏ[B{.셭UQ 1R,؛ Fy3T#U!1.h{9zS ^8KuZ›@ 6KN% @2k."KIcda n6Ip h)>.ӫ{xKʇ;k'ǟuByrώbM6 BGP2[/ٳש`u:IEӥFI$HK0tmdg[նz'?-1/.KUN1Clۖ$&KU1AiEY2 K뽪1 sqj^G.Y[8:%5Y+i:lyOlKɕ:3GLU׏oT#^Eʸ$K jA[K%#r{#SEhT3fUUs&uK5\.Yթ96 %67Kj oU|MCCՋfb;Wy޽|z Ă:*| ߸ _ ~Dx6Y3\L(S%ǻrj1T92&L+ #ffX T5'f Ec)&;&귏A= ۔n[>E;sq`\ $v!5{PMOK[/Jr|??}O<#o9L` KN  `_-*_>Ǘ,Q^XGK%'6\ Ug=dN{fcKÉ,;cjܾľ$vK5yt:ϥV/ [KwhlQ>xyʃz K)9c޽kMG7K 1 Dڦ9:g23\0vOJ /.clKK jG`QK[a"KC@ k&"I a."I ` F] Z Sc//qӵXyW7j ~ l`BRWB J!4|g_-[v= @3'Œusd5xN5S[Vt0F⅟ذKD `B POmE]T]Fu:4>ב`v(z_/C #]dblZp|R(+AP`ŁFq;1:^Asm6PʏS\78%HVUd/E'`o cS>#mdWGѻB&gP@W/z]Ogo\l9" l`(u l]PO.X9f0NM%eFeKݗ.t=0aޢȘ~E}KjY(Of=ֺI!";&I;!P-A od{ZNUoI6K+mN$^zxVsߖvWZKVp}]:{ʝB|+OggSQ9.JRKI1PNJMB<"IIEeVHFE@PK%$"XJ@%$"P' #"WMB%#! LF?$ NMKECNI($#JK$18b2S~d{Zg( t|8ץd߰@J b_΁ (As96~S-Y H99`,_o풇ڲ.Wmܬ.3p#챨 }WC?P2O&CI8cؘ2zHuMrA_LVhݸ@a `7lPI `R @-yydˏ' Kߠ@ |@`a>~):g=.s5YW/YRvg|oޝߔܿ0SU:=L^k}QGwr>_rs/F^%aބˍi~e5w;T;l;H=p:K$`#|&]r>9Vj,HHh{lfeVTa,/ klRC&I+2K齮TK3$]3E5"KIקjI4!pO,Gzbqp K&!KӔ[ΘK$gliK@G 0OpIKK6ԛ. I pjp5i*Whù_}xgؽaX_ȎUb?hmt}`T( V:h:T <"WNත3 Bbo֬Q⍰BEBR9YE$n Eo'#@Y63ǚp3EC'`\|1A ,WKNM;TK8" IQs#3[v` KR?QuFϷ{q{Lk]f!%U9~vS+SS>J0o?1f\i‚4] Fm4^!i88ue_bYIIY3<2t2N5䒚T%*mR"Kd`Qe4@m-˯u\x,p"0.vn,.,ױ ]x0&KsUTG*KϡdDP0R"IJ"a^$M݊<]&ȣDykd/:t}igk/:X/6`=6!:XF6nHպK6&:\ϩM,:t=yjkYH>g[(}\ "|~r6M2be*,% b>Ls!W1UNρNm+hp2 ͛?_C /:_kHaӤ+i a;N &cFiYSjΤل5g?,-jrMB},-` 4#tfL@*EB[$ÊݘV綬o2Iz%ϧ-3OO]7b,'+`91 q}퀵>;[ h|)i9GOagO S_uϟ)OV~Sk)5-xviJF4\mfq4V9LH`G,EiT?vNś! 4 x';-=m͚4W81;Nxl)tQ>A[ pqCkmgmm= qFIp& X/}.vO+|JKS'_ xFG g`a ×u6oHBET[pA)iɨE@F)JkMOE+3vH΄a2՛Fni_Z=,Hp<ch:a]Pl=*IK.'P-wqjͱ4V ZǮ>W#)*KQ@$iHq @yْe9JtUK߹"KOzTg{ Q}d]x5j3&GvP}VJ28}GϧK]SI!͋n2]>mRuRRX6Z+ʄn^׼&MiM6@v%0t (unGMZn ] vKh`%{N[.!vڐ{zѮ Kji Ɂ=ҳ4OŽӈ*KU@qRfu|ݶw _zU*S! ɼ űĭBuS 9 z #Gۑrx^o]қ"h.k,*M!qz"g <FOE {u;r$e|G9:~;hpq/vk `֙Ei( γ׉θg\i:I4~gn@HGq<ެEC"x^>IR͛8& `,糶aϏ͌AsEc2GV rv0G\xr5ם.K+m6paO(.KUro'HK ּw7˓^{r6*K^W^ {~Bfr7&K靮Nh?nOub9&KR cҥC Rnuo&[E[W- 4Ji3Jq_?Vh u_~ZAWE~AӯNQ|踌.c+㊈!Th9HQkAUtv5l@ 2 VH ZP "=Vę$ݒE}mL29kێ[xԝzRG bRb\&c9b><*o" `΅fm^˯Pna|2i6Lh<\H9g|Ce"<~*kG zl\;v_M7Ǣlc$ Vsͦ 7$ehN@ObÒ96Kᆹs_A aDG6%@TLZT۶ke0=R0!( {U*][Ot<@TQ "Qm*0z'PT󤦎_ښzޗ6G-3tj֠Rt;2CTzi2uW;7y|ܹn\Ȧ`2E BA>F2qa8߮6gvʻ93;B;Ip&v@T&rS97rQR*`x];<2ۗ2ozI·R3u:EKP읰1=s\qdO˛b8/ٓJBI7'Dzrջzgj/ڎ:IN`xL0Q໧^'T%Z,6A4KAmvKfoRR̷6.~ fᶪ+ӊ BIЂ$OggS>Q9.k$XRORMHEHHCC9NKC?S#LEE$;9#KLHI?:$[O>1 OPG MB@%"QOLCG>"JsrϹGjY=ge}zzghŢ(+k5]췔~ҙu(pԑd:E1qsJs9pD8ivϾOfݗ#A K^֢ αi2.(VO$RqTLMo2мF&>oFtxrs::1jrVu=^h%B,Ubv9|ljңQ"6!Y4'Tk&*u<+|լܗgswaq.l /ԤwI@*1p6,j) +f "ihuHUmJߙ#EvA^(6\a6-!oB"aZ3ghZMVO;pOǗ/-|0{)pO^~OGsa]Mה>y`],oy"]Z JMLv@Q5Wg=b=eC3.reR`l4.m֔*~/#$[kB0_Z5Tpx跊Y^^beE5lH+` Wk5Y?UA(LLVx*63TX;PjD6tը:Kɫƥ%pgLlU&K٤ c!plmnf KTkLP 8h5?gRjkR[p=lBRDƭR9UR2/n㒅חl sdiND_5]\qA R n 6MZOII$q8 RGt/TK:2,y7vΠ6o 6K쫆p}ns-c*KlsSU~U#5KIק  >M^3i&W7(AjL+#rZ;gmwaVy,:OQ< _db9+T::][%dwиZ8#>ʲ}6ҷ7W^M(.޼vۅM{DLH| EsAYHU'r^e;CGgt vz̥105bRP%@" "1iPLPK(S%H00`v/o5_cs gKN jI WeۑYK0Rs߿ƓIʏW~*SONEIz 'O }~~9O2Mzm'؉'EOkbF 'Х^K 0Otip6Ssx K7 C Uuu|/lUK cpOe,GK`@?uÃVmYZ*NK*}yӝ\mI}L2E jg _AUkC*vuUJq.4{ *UqϮ:$1v_bPfKX@aԸ;4"r8]Pdv5j#>iB-p$A&oJۿ"ڵۗ_q/5 {\v L<*MCv'*xyUv*ɂ/ԡ^ *K^˹ ?'= k*K靪7N$BR9GgDC "Kj c*2I|y7"C6P=*:niRo n*b?OYO0e0lUKZ2ՒU-pikح[B:_H^f0zg|$S=:,e}%_!.^6 :'֙uI{ H x5^l+uVs9Dwa.E u4Ճ)s/^/5~3U hˉ7Mf჎X':+]@"IC 3D6e2K˥1fz"ƾ ]Fw KNX6\1r(]K%&dq\w K^@s כ鯪l#S+KEZj0剥D"Q,Kב,8`$mrgoMtKwcПn}\ʃRK)ǤC9b}znϑ'&[^" ճ;w7.{_z(X7 7 ?$q2q 1 0>GsaCS<Ǟ VmNgL[/>.Y88?i;L\2iX[r,Zc>\TK!s1iz9hY6[hH;ͽz3~rr$$ E<0:|k0݆c7@2MSXqHusbI% *Kˉ jIǀ@sZ{H"Kcig3i̇<"KNXpL %oGl{K`>]n *;"KC@ wy&"K"I  B]llŴsq^U{{,;Jϟ)Q>&`%>=%(N ܿB ) p>Y Xh;Z9Ubk^ f|CDê5.EG:43iHU:s֤=8/n>Hi=%1@;l`8jqa C"l*I,TQXUBLU- KO˾3ӧcup[ORIKӾlKtf3kkiV KINA$HLiݵݳtLKg&Gݼ'-qK֏ {k__AIK^?puZMjmceK= ?C@czBk|)Bo\[$z9aJ&7+?%uKۯ}Գݳ|å?qXʾ2e0*7VsBopB8@s!H<__?* !.Z/JI{i˩% a cBY=Rqڇ 2p>.o}T:t#z\?nX<7ǧ~by7[4]|Q㲕qg-qտ6ShdJcp  0ڦ\x5u7^eZWTPCR {5h: ]9uSeD[5/nS}y#mYB,9+H#JIeRw[ۥ?dݑzl<ף7gǽSKVL,<ܪt KU a0Wo6uSfP- C)\]MO͞ǯ2W|ɪWA[L19)&S9W("U6G &appп\ U#nf;qb_zGM4vx?W=^f6 5t|=ω@Zq>',k:%Z#qYg`Q]A X `WNN K@@cHdS 4HtKcx:TsdḒ%'*SEQhi9_\WxŅ MڒjUU!W … 8GP5Zg$}zbq:tFrެ?ު6n7Socæ1ƘsKa|6',+Atca*FFl[Ba 5^_TX,"$-`ZNX{`W}N>M+2<2dMxy8%'lgO.KU1 $HR=.kWKΤ18gjnZKQP88}Y~ K $x8GjYT K@̠`mӄ K`@#&I nHp`WAO+"hf3_q1ˆ'.`R &.{.ԛm׆NuGcˁv)@kWg<:ajሢj6#m7mjuYxlZ0\e^vthM9{6 \Fp|2QN3:wݜ7zܰd&;?TөBK 3= ࠦfL:A@ 3]j/yޅ-.=,_{1ŸDHz&|.O}(SJ;gOIu/1+2μ̓lx6o²ͻl;K/sPBEh`tW~~N}!pYNIIpytsz95G *A֛ߌfNI4oL0eR_,y.{6K+-1xڗX)*JIR[4TO;՝bx迣+L&u?~4( P H9BZ:A=0l#@Ǟ0UFM΀ttgRfj\uuR^"m +j`v5&.v{4"E >sK7ZdV+R[Xܪ:^&G){{za;3e *K z@Qޥ *TZzevI&I "i=WAy~{7MO Nc]RTb&ka3,P26I;0lN0O鏏WUk4ZHkup:IVś 8d:?zX8rGlP:ImZ  `94[6K°N'ҤaZ9oN*KɝI/c8&Haڊ/9"KVէAy8:<^oW*KݥO'I4uD?׭i&Q"4TKERLOelW/W1>>Wf~ݱs"c 򪧪[sXiBl7qHp^b ZK ((Pud,=:үb=I*5ȳ֚Z<$u5'%P= T| +]xK@7;dP r!\yuK4?l /;wt{{ ;XYe1`K% Z% 0;RVKg'$"1c-K :qrzWT0X Kl8}T5 Nh;[;KIH9Y^G5dKAdT`Uפ/7K@]T{YR$ Ji(-j%WSkRؒ0'?%Udo -XPoeזFmga*>1KpjVin_m6ۢhÕ(`#ma]Hp,Y&70;{&gbuup~WBqzN2{_ }ٹLy1єk D oRxt:?[`D=[ž=nxҭYr_:IR\RMpmK7͌գ>-Dˏ2K g\ z׷ss*aj*IV@upSb$!Nw[@Ar.uu5:%R2 >0 S||zД>6!&?uD]-FwEM :j y`Z5Sʢhi>EptM6"D)0 kJ3Esi#hKL7qe?>uU'D:ܽo<VrUxLVzQgIK$vШQoI`7kK ?MKh*m*sF4>PT3y4hcq>ۓ:nA՘bO n 6 HXB}4xòz(lj2o̲l^X~TVeBSkF_NәaҧWM ruv,mh´-gXQԱ64x=+,r]V4!cgh5|qsΙW= t~Uk0F3Nc45>i8`c}< ](j4=ΠDF1vܺJmvkZ7 v540́r̓&Se%U8$hU~t lZz`\0P6< U"GsNKv8Ӗi_:>U(PZU J~ol-RɔJ8{ VsV#zbL{S!qabh1=mW%1{`_<0dcsM SFcp30On:ݼQqi9yT޼:7^^% I 7.glW0`ӀW5:I*emR c}:n+/fkUPX &6n'vcWQg'=U=.KUW c Y4_U0K^W3x6_SER9gIe{tZUW>ZK- KU(j5c?YO7ЛDԅ&VIlOȀ#LMW_J);7ɮۮir@jNa6S:GVP-Ax=ިf ~R&Kɭv885ϯ8"[l&KI 1 Hg:Sۛ߸&E[)h\z6ԯD{}|1~Oݿ*ޘLOa"aoIiJ>[ (`<T5l&?c1 L&_ygk.iAM>:>)vg=+)no ^T'p;bU*:1 8[uL8:Uk Ltt"Mm ߨ;H[!x_M1HG$ qdcM؟Mȉ59K*3G ET>T_jI| p&@eKٽM~=}j^-zU^fCJd*‘KIB3ӘtpieQŷw1KQ ~4v- ϶0& 秢B#NgSE`2XT",*Bem "b7 ot{5>9+qL>G[m`+]ӕf2YRzt܄sN-s?ζm~;Ĕ5Bnn}U|Qwژ/xt:=48w" 䬢Ӽϭ"[ORD :;n@̝*g,6MOj $ar Ys$1=ؚ ` :@ K&KpoN Ng}?)5.K靪HqKSO{R&K孮Dd{ke6 Kդ!m8Z$Uf2QSGVTLqd߅A: enXD5*fiӐDV"BY8U?7~\_,> CcRu u Uf8(y Ms*?ۥ%{"],@jn6Vד~.MlKMS?R[XtDj֓6ft^JmmzgVbsQ2\=Xqɯ*)K%+uI `_,@kS>#| %\:>X:DZeJeD0*l54/\0yR`\ )ܸAk ExEa.2KY %l,xEKѤnT ;mm}ͱ$KY7pLxm@tYo1K DWP}o_GK@ Y)yTK`@chK0I p :GJ8;[G}hiT5Vw9rB[7ZxjS4, ncXٿHG?mm8q=t2I:] i0zՋu._tymcfj]mP؉B`!s}T\aQ+bG[PoOFuJd1^Pzoeh;,FCo^^v6(;k&K {\2.B*^&=;YK3d㈧1M&\ճ&GI{0.Հ p C`&Kץn@S@{"K.S  F6kQ[ = ̗{ùsp0~z|SSSV[LMMM S0T N9V*VRq1s{5<\>} kqSD9$Z kdV,=a;f,4H'#r8Bo= tKU~w~g>WތYzrE"tcN&y_egakvۡ55!Q>cӡi  "L5ͧy&b¸b%fK;aq Kr@);ז,er:56WZj)LlyMӪnűiYTC(ήHh((\N^3$1_ 8chH>? WK:DRR՜^mU+t'6\ZVp+S͛a <ql;9JCTK K)9ӭ+;U좛T)J`*nQS )N@T)Rvʽ*QSAiJC[&PL@pcˏ__;WjwJI L ls{]~ 8Z$맊NIgD8~X]*Z>E$:I*egk=0<3'~#t0|5N_8 <}/#/.7o{o7بG uVXWۧ,X@FkƩ) VS;0ҔeYSw)忴qsrF {iNrND@{)״@BsD(.Iӳ@q6IKKLtK3|ZQ`DY^ &%6M( X&CAXw(*IVg{_ǎNeXL&Ky8&`Xgzz,'a&Er8sCr1dPwOVm=˟i!G^tۢL?F>mLDt>)9OH;$K饦o'j pȖ#[}K/kQ.k 4{5B|ٳ~dOrjУ?u,~bI+| U`Fo=Ė B&CQV2~%DNJ8/c\G2uû=ꥄ ЅUiB :C[8sI*3wk>yfom Ţzrj Cm Hj4fm ^{1>I4o:ڻ09DM&r6>If΄ 9c럷<ٹbA^P.KOdY73w'4ȞpA$2KUð7j]Zoț|\zg6KSNޖ#m"KΤs8I,ݣ/b*Kݥ$$Ⱥz+uy .9)HyYSǵfO6X9npZK+Y!R`Fz+)۪r0;!"]nx_Rdo{t-&ש3Q᚞ZbnE:Dy6 p@"Ibw {&M@tZ&eLKUV%@Vb; h0}t5vp [ &M@0,V,.R{.y!` 0 KZn~#.H!K0"K-D0 ,*ҧEA+հ KݙmLE <ͬmz*WK T >GϬYe(yK5HzOs6qdOggS bQ9. {NLECEFS('#!MPLIFDHA?<:4 KYX,4sOKwXƱ9â9-k&eT{0fD;tadN|xqq8M-dYO,J?u:I($ XRs8Q<Hn+g=Tl՗Fu}9xmW')C1ަ8;nPL%4 :ݔYwf2kv"*3l_May,Eh~%('}Iq@$G {i])83 zV<eFD&Kt0Җn:f)ؚdޱՄCU n$~Ѹ\!j[mbXd՜Wm@T*ǹ,\^f- 5EP0A[-OlqW^xE[Kh9(fjݑB-)֦7\_6!.EN@#@3`6+(cLPa>;JWYJ^cMy Ks2țEg'[S!ɩznLNtcRu Mt4!EBYB?3m;ΤK*5VKv[!rC*1Xm6I{`Ny :s]&UzLW'imJ.6G(8$Gv&1HZ6IIg}IыחGKiPJgsFY㗬Uz|ĂUG=)8!|d&-=et/C0>NsO#볹r,^)fdQ{!@WYF>*{z)`M@ڭWnoFu qD8Vkji˶CB}]K0)kN{`o1J1" 2q)4^le(6ǽꓕs`%2wѕ|?b` 0f&=Y|Sa&"mJk71i_t;簭y)b )۝Y2a^|T"E7AjHcEt(m@ZAi_<5Uy+8ˀaYi+MMFZݿE8تogt֌yc*zU9Uc呏|~eg%|5H8վ!v E0<_% |}XaTj:tj],EC3+8"%P]?00~/ixZ`WH}%Wjw]T6ہFKDq o}VStZWМ"Oe3;81G2I3e|Y2Oʎ$ټűbUD71m[=oQ 0bAbX lG{qnV@& Pk` Kl@旙aE[b|'U:38xͣhm` p vm>C6X"I chromono-1.1.1/data/sounds/music_snapper.ogg000066400000000000000000002067301410712601600211360ustar00rootroot00000000000000OggSQuvorbis"V>OggSQu ],;vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSvQu˰2Lw~{_sXlۅy(iӌ1٧ᗠ҉/0C–>`LfMhEiF+u߼_9.سߏޗ}i!rFb zӖcrU,_NjQ88 iC̈SkuTMօwi VW  {[ `, ؤJ#uL }FrUL**M=;ju&ZF[{cJ^cMHLo<fQk$]GpE幭m[+K Mc)HS `"H,(U&nS$8%I}'O*{Ō[ @.JBrd CtZ gjU3mDNwwT<K[7X۬5 vmbj v@1 ^W`a8Ae)ͱUoi;)us4[; @@m+h|sVDļ>UjM@V3} j6r.қ|]O9b0 0SCY@rLa*p :rWX:S4X֤u*;/eev%dv%7Qh=Hh\)ogfY#|.bHf==GM>^JqA@@0cʇ2mVgCVI ޹XB}Rdݣ8aԶ12q 0z:AX,ɻEH0&bK ;%&t=Ţ4)&+Ul߄rOS%A)7OB$mZK@:F+aMwqĺg>iV^yt<*sgpaDho Ù=ie?@ZEA 6H]ZiΪ v(V²E/[ǂh ֵ3ܲdj$S^E3/ H|SQ=nΆ{gCTF[ NWUPc01Zɂ%D|( :^S:SHmwO)#[;δ=*T1P&%J"IwM|)4X LjQ@LJHH`H.һfmkLM5(QX;le߈B&,w[,nEia$AbUt6 'hcmDW vXe{ N0YlL.)jQ+(jUզ@>~~CE+nML[cCEo2Q{IHvB:1 ^EK^㝡j+uTzyJ*\UWc*ˏa X?XJ9yN6ZS,AF`zwZ"gR_yilaMxXS[ӸA^H:P.\T:ZWEITgvt/k \&"RxF5 xrRt4Vw>@BG2^MK >9Q?RՈʚci]} ?qut#,)uu(N׳G&bUuĆ-B3Z=V'4*72:X[ fTm SL5eWgR VQ4=c$}6McIk#RUm#c 1x:v@';EQ1;v;,t`^ZMB".0ʴlqէh۲JÚhy`:ќ*hLEhz.rZI&sH9ӾRmLJɯ\P\D1d2g(JnU(itaUhyZ14Ͷscq rembSK`r#B.I{K>:oFZGTͦ_M}lBh/1pX@}mRTt}iti"h]RS܀sHN9oe&RFnpJ f+1 6M m5ͤ J|>-ľkLRIdΝ3@JF95uwu3-&c6mMA`z";kbS8QHQ0Q5Wn߽ӅNbam"Me+-t,UNSv+b i^*0؞LRMS% Cr71y2ەk6K =sP& 3&[2̋ M^Q\DJv6kgGt5|Ϊƃ ,nF67iav-O//[rc^Q܍^fzJ̼8#󝪩(B/4EPSXz~8 A]I<9֝)v.tRGR3MTq˩j.*]=e7alX.&8NOByEjM(Tx6xcG%~Kʎf\䃯,DPSc8H۶sSښFRÙ ]+IbI4PA޺ӣ_= B Z"n2[d1+kTbBoʙR MBѠOVCwXwsUmep]{ڣ2u<#1^DG64_RE!>\HQ,lOK;Y*UZtgA­FmE72-$VKTS*ɾ'>}}Mged"{َ $İ`C `G/FiE z~*z%Wh,N ,#e.U AGRGR8="tJwTWPvN_%?20IA g8R?#6 _Jw^tNE)խP=SF84Ͱ[< !Ff6 ]+r{F(G>(I&2r*VITX4}Twn@zu4q+ma=SL3ҁzSH(̄6fYJEWI4z2'"UW*QRz:7Hsևq/fbiLjIB9z|$F$Zգe;wyL7&: aN,eYэp^@i%;fW V0ܐDQuW画z#6 X/O6P  "!m :^MLk03Ջ*ϧt4 TJLԆ@_;ԁN J{! ݬfSA F˓Mjm2w:4]X,XpuϜY]0 MQT}0=bS@$-UٗRle'M.Mw et,?ɿ4yoء :`mk:OggSQu [AF=BEI^IXW}z{XF_ ÝmQsH`I|N+ cmrsq (bPZMaVWw0>6VE\:, h{( R}HZK78ir>ϳS !:_6KaC1@(z\GNG"fVO[q~ZS1y{ KU!ԇəÈ>(gDI@rMAxݥ^EUbG*?gYggUYůAZs`#ea'CHi0I&wҋVK @WIsYSkPm׳it &`K5h1gI{n_VGG=ghP54G͕gGK>_nnmp!9g^ls$P(BS7i4wt^E% v9a^Lʯ-#-ѥ}KR:?PxyPEgni^4/&-VQ%]>sSyVy_n߼'9DjmKɉɳ>KpL;/ya[KmȠVML Tǃp3hXܭAODV`Xˮo7r-MqF0VQu9'O 081 Kvb!|,ʘMBd3db! #yXiݸތ|(RIm^}9w n/ݶ߹$@Amu~β0k _ŕ "'w&ZE 2u} _xeRy4 \wC og%%R,7 tpN RM Ӂ54UxjϿ+'i Sdgp/`[ n w@((j`ILVG= Ba8K5-?59Riۙ鈙L+d~kw$ԛ>,tNVEL>cߥ`4VGSHZt(,Df@faöFwڢ0Io5^" ^CD(y̰n8C 2@ˎ'&e~ۢ3y6JLy`n%&L պ^܈8,"=WjI 4;TK&|}oD}b}:,5 9y NYtĽ4bi,RA(b~VȤUW*\IHMn1% I;`۪@c]\LМFEep%U~;k>lF;R=6Ä,_#dB3ZG1X:yoᜨs֊Gۥ+5:B6[ПeК-iݾIRhRGEhjk$@~3,f]bdvr;X@ǃ<ZQJ1^s*bmsOBH8Q-YKEtK;}Y DY.+4hV:E fp.R8wN3\JM-s Ѫ쬙dٞku$ǎ4EpDŽ5LA + []gs4PNOp.F$b/h7_vR,Bfn_u9aYiDy}Y&W*hV1(zb8RNGs&=o+.הEsE8s̕; F Χ/F V 񤲽=a;@G =gjUIH.wʞ7;RE s=ͰK~848=N \:Y+4h?I`N.E=v#F/)]s4mqYBx4(1UـeרC6ZEI5mz<@Ucqܻnwi FjwWdvi7b\މ(:JG [oө¿sUqR'ŅޢZkE{ @{R|ķB(J]dcyRG〵sm9Te3W_#ɆMB`PO4l I?}1f JENRaޫvւxb\kaQ4kD4w&]!(>u}҈k'VO x#KE{㰶̗Ggkmk(K`B_0 6v 1bNty RG2 7H硬eWJfl yq}6tH҃ߎt RG24g|s*p K+oiflot+ NxU~.mPP>,69g;^zAJERӌ,?spL٪M5MIWK0KU )F#x@;x(:ZIXt6RE9% U]0,6VreMuӒ^fš,H PzB4qy>N@CZG s"֪o߷'uu$8bz]VG :H|Zϵz|9s. Kw)uN]ݲj.<}]i |+1mZQ izA͔絤Y9]Қ̜)Kr ` Zr|n17n Li4 f ROSE P}TힾY C<&]]05M .E_f^x!L+9&zF"OggSfQu;sJ7ƞI,kY_{gEMg)ҤVQJR:ZlK9%翨>*$A 5'$a! ejdWɭ_ie(rRRIGwH_s'|֝mYZ~))-L׈B'A}j7+BmW$|j3HNSL]| 8H޳k{b*k't@Num h7@)fWTVUt\#T`hPl>-.f+6:Ɠ*&]f@z钞$oRU L_{IrkL'{Yh20`3yO*RQTJMrnPQW4qϫuHo&7:6 [h7A&5RIj */H;(}L*IYcI5[K{09&״?#c1R +g>h4<RIf [Ua $eڼ_-O5She-`C'R|ZMz -K@`Uu (1 ]x@h#x2G7EI6$&Ej6䍼یAbű,e }pnpJ0Y*hhO3 VGL3LW68D)Y;-؃ \ro$TǠGsUD5;W NE];'} h҄5ox;:3&2 /~ WtgUxY)RKH[n4GҐsR,inum3o$VAn-& ZZ 0-h"13'FZOK1j>gՈ2ߺMM̚hiNlJ Pgd$IF M39gMbK3ҭ&PNbAc;v* x  -&+,U 0#5FM( ˕}*Ĺi9vvB&K{w>(SҖ`ꖃu@B:f ZRI5%8Հ15{%o s֨s3Qb*J^8)htY jE[_Tk-cQ۬Inc,<+7 6X SH' H!jWJxPyKfd\z*ޘ6TlSeLwZй#K&<nW Q7D\˵2Sv']Kto!KCa'@|3tl;pp(\RAbSZdmkKTԼOfDlQb,Ẕ@0eJ 7xo fKH<"%ښzO+-q$J<7/( 5zrk]1 ˝u.fUJ)xuhCClSߍuKiNa$j6@q/w;7^Oɪfh];Z.]1׻\RN&|2s7gNAaC6/CNF O9NG"RG ._]"jJ)XXm|y͗U1oȢF0tqd_}VEfOz׹`Lif~ޠ}98D4!@)6ł^/MZS zh "eTқ-[h91}Kޫ?6[ `KB5Mm{}#Q:IV"@¹eҩgLG-Y0*=H2Dg\xTgT!)DUKVIXk*g*[5̃ԮIkFz{9sW^77)\ v| :Q6J):E ZMm@ "jѲ~iiRy}3aʺE3M oKǽ1,6Ȋtd dX KfW {(bQ@S %rbm߱/\3q 8eD#秵^,9tURQ x[Ke=j[y5"i>y9cij˳#o߃UhY>QXpmwp|`\ʡ#nWnֶ}*do#=_-ǾHP5KT6̗ԦN|2GɧZrfUTc@L&&i]jPXlS21 Fa/!T"5XLfS`"< XDΚ2z}$z!,[u&~hrsc_xlfh:2I3ˌy/\4@-&is;M_HZԩ:n=⃀lҺ d&CFCLHZG9)f=XLO`qRճ&os~խMݨ|ozPZXC#:v`(h:EʞeBWm29Q}w;Sޗ7kU!aJ&J:=`ehAi$PoߜRI8IZwdݵDw6zl,1ݲ~8`oa :E$"kz>.ȯkO İ(lU B`SJeZ(t<>żqݒnROۤ*e' yZ5k&]~Y8}tK=@W~/ӌ]492 ZG@= 9pR.ͿIkk>0n³)&;ua Ka#l+tSs(aPVKsQK!SUzڶj*{vPZvBjv]Sy)q!h$FoLgPoҘV^U;TG!Kީ@UTMS=Ֆ @*J!!t`̆6;∟;vjU)tFc@@C*ui~)*hJN)^4ȠKC84REnY$JQ\h' UYq=]@mC-$e]@BFDFDGQEECGJDKINFOMIEGDJHHIBDBFEJ@CILDDEAJGDBG^S@NPT@3Te&ܿnk Oc*%5 T0&[t80gq=V4/pZMݘ9pPTVsgPQ*#6ZyhRHS..OkZOb5W_& ҇ *6?o& ZIH[puwg#e޻:ZnզIѸ Ir$>܄PbM@(?_8HbK [p)<jbᶮMX͞kl/䰖m/ QлZ0,PPbQ p("h5_s S >^+<f_彶Vz6A1j;Ė*Tv˛u)kF4EL&8|5Ko]R `*IZE7"`p* S\=lY&s?z⍋׮|V="( \tJ*vsIGiVGh$8)˚[vR0Z:6% 7 }(t.jRQ@h͔<{"@$uԾˮkMƋUwJ%p  3r+ Y1G= دߺ XZ,w|TҪ**]KRE-V+Hhc+Ѿ=81oFuWCJ!.j%<@(@NVt;s43E=VK+ȭpfyD+&Y:qTMWV=&3(l`Z$ӟۢGbK00:sRnVA=Ҳ==OqBK҈eeH\K/Q*'E{uGp nWFg&T~䲶I-/Uԍ,Ny=5!uL`ӨkztS3O|ԁnW.;-lmu\Ƿv&ىDcXVHR$TLcSs"R([=RGPX6XMoڧo/>E9%.;>NDLtA4{7ƍ] '1VE0 gBVI\TKekM}-W>>WFa4Rzv mifO^I{047lJ(hz l'`Wbb]~ӠRC/@'U@KE<|.wNZF-eG"2̯k"Km B <ZI& @.J97OUz$5-f7#x~mne yEh&RK{ZoWm$ՉxZZn:J7^2i:C Fmk@ tiNZj̇.j=.-VE(:Q⺒H"\Su׶m#ǹ)fYg{#UBcv 0x7Z!C#^id evZQvRL7@ȃr{w%h_f40O.u@UoE梋,k/T.;3$ZQL(uE@>Vbj&IZ*_$R91S"nvfG4 eS}iYݙsZMZ`^3BC)4SNȎ9]uڮu jcSu` .x;\fL 0ъF g+ZUPPg:|ZWq3%5E1^b AkHn#kzQ6u DFGT ה\&jϲRӋt(GW؆^咄& eP^wˮoROqQ:T[ țɉ%Y b{=I fzx|7u7 Hi*%; QBsJQ[h+TUTKvE$'_^2jB&&z's{ umIЁ BI4rs*<b|ĭEE{ ,&2Ft:0HB]"%JET:2s X@RXo=%9#"y0o( `'x>BV]y 󔓤>KJ\Ԗr5/t]֥Ө#j㛽_tXa8h_(@sAVW4B4#;QLZI".f qܽtHoP״+̏F1[00 7*%p -F+nKQ17}f˚{fVו:.Jan1@f A|@t$ueۤtnY-#&9HyVc|yiUj8JV 8蟉V2 @5Modjb^DYn[i]2JƠjfO9!XktC@9hL4IA3%ZK*[ZюԩhjMˬ7-3-~3 !JkZRlIZOy 'Uirq<K/X/: P yS6ګlP*lS(fd!lNEȻI/-"9ITOuf;By ЗAQOLS7Y*,>6d| \_H ZU"9k*mCU\}j4WBa[yܮ!JzOnVIXlu^Q̃t)*$y*=6gWHMOFň83H7O.AS&:P#VI"25j#CsK\5e3_jɓ,Nda[Sِъl NEQ5ԩĒLRծOejVv{J. yDˠ6R@GM(BQ,^a9P'*ϯM\Mz^"^xf3FkRtW7e (S@o/~GZJD RI4}R\}'t"cexպݵx;y)DMFU~vlNQ~ǮhhRSk`H $Ug׿ݖbX Vvؚ_v ])RD^S*:@E)<UE-]Ol>Ywه zB㘈4MRTBG%ʬ[T<$5l}6iivپZ14B1SIAapB`Uf`8H(?>OggSRQu>>;EFIHEEDGDEILHFFEIFJPKDLOAFCOLF=EFIGMJDFHKIIAD;JDFF>?@ECDHEC^K ;:dnĔ뻮J%6S3m :i*}1AvMIH3VKMaN߹,&QTm}e][WeåE Z22rTZgk&@t3bU;Qj脎W[ @k9v<7@U,3c\ٯKu1P#ѵZ֢YRSNZ:ՅnG};iqgP;$[ܜN(|9E"et}oYa0ΔHn*BS&]vj[i3hѯӔIma;iѻPlEYia/\xfS9Um ҩujYmHՒ; L DZ~1h (+Dmd:ݽ.8in^S{Q/f ʽm}55G: ӰsK67y%:tԭ9[l`Й9VI!]\!@W Zϖ֦?uveO)B^tG0۵K=UIgZS .T`PmYBY&do}/*_¤B> 8\-MOFbUIv\xܑ-4ԭ$cf<>%7{ݓx[W,@ؔ4C-ִl^&RS XK8)O[h<ߵj*GId mؙ֣\ܼ]s'G.<`%'~Ϥ-B ZQ BHԪN_i*_/HRԟZ ~obW*e(UFJ@}p8u%y"4RNyRY ҵFcjI4;߁i+Ey"59 =Ib0qMӰ ^QFk&* {R1RSR煇 gpdh/*@ONE yZXrr[t)-M%4HC_p)+ B(_(Z `T|&[ w} .1T#RbS&zH!*4$ 젊gvtR0u `ch-< ֤RS"Znf6H jK5뢼CgII_HV677nhM.a:bK"zSݹB&Rzl]<̓o٦{~Z#8pSUM܃z'MxD+Ek@^Wp\5p. D,椔^n$YNPة P촅mYv?6Ç+KOi xoLfYee \ jCrohVv\ME JYvvvB S/cYf]q83}%%HfU!GRW[L L]kVif3~{J&` M:G)΃JYO:M3v.ͤfUԏbaRk=5,~V%kUkY4,ۄ&&SMjSea"I&Sm*ڳڮ7=45~ӶtaAB 2$1=h>k `lCtfUIץq.Ej/lgf?ִ8CE$/V `8q 38`cُI09ÈB ]'bQIύF"7U35M5͐¢ Wqr l83k#@VZm b^KFM GFD<HiUdQ}|NBT2'f^xh#Ύ/R@c2PBQ8n3%֬ڹlNSJ$ۄngQQ&]߿uH ]D"LB"ZOoՖPa$og˿R կ.|kkAVˣq î7fhflzV@| yVI6$TK$ \=fW`Ki?80r$VFH0/肣8]uBo݋kVSs#P}t&Y5 {:y${zgn>׈0+>,t5hIϓb^4:RKn3̹@1mg=HeeG=_o++˰:GBx]h\qS#bMi&49lm??_jR|}, AKCTW(-X0n?錹i$tNOf9Z9[,wkꢪj/KLvum>.ƾX `.+#6VI!Du bOčO@8r5hT%?f>vQyjx<ۖsx'65pUYKVO̻iT9&g|'WlNKPiwO+#M N ,fSeD:՞Kp=+V*7)\8;(} w(^E%a4MnWi)]s* 4YZR]Y5 8& ܡ涀K(Oq^Q:R:sn6}m3}פjLQhH뙮 @8tMmMt$Jw%p)ZO}Ƀ,2ogmִ!B2Ak&9Iwp %Z)Wk^K,{ڑS 86ro}k=eX^](FX-_zԠ{stfZ.'@⊢鴙AfSB' T[+Q*YϛT3槶&5%Jޚ:@jXز6bLfY[4S@u%4Hef^#D$.iS]g Rln"z:jS)`SxH#M:!%gፁQiZP +p@ȓ2 (jW&Aw. cD:5bIϕGEk2[d PMv`~E@> bQvS"}(:~Hefy:RP:C{%tAb@۫-2M' VMljB:рV|jTJlcALOpZQ,1o_0F-ގzf;":#mNKҀ)&5b7FiI:.%;ũx A'5VKJNOH͡iiG\3NKfP^ %g 㴲5#!TpVMfbSt WҖem3ݤ$ś5+(]gh+!nBsB+,8u6/^H$O^iA/e`Wmrh6ILm6H+:b~pg6pYދB+bzOggSQu7U/m;HPFKEGIHGIHIGD@CEEDECHDMIEEJGEHKDIOHBBAFEIBEACFBBDEDDCDIKC?ZWImc@9 t֣:Zn\dmʦF3oXIIXFb!Y `@!Qb[I`N 6kZζ﷒^W_ncKMGL]6AQs-V-#mHZ+2ZMy]a NQqS}q{[|Su;RιϚP2I{ ŒF96<懪ʢoD.H^Očv%izTOUǫz>aUF5$\aU}~.~$*pZLZFGd TJn)\i[gd:a@^'Z@'ׇƮ`,Llx$]qZKr] y巵\Mj/vw ӌ4ɍN7μ5$ܹʢ4xԷf)K<]JQ{㴽 T7pv]ywsk12gr3%s $E@fA'FjUSK3y̗ߴRye lQ=X@ $pN EQ"KBPRS*8zگzHs~?_9K^s,򞀕:]L(it@@9O1ZbRQ&{E s:Pےmsz%i,SibJغ*@ 4gzyZyN1VQ玨汫^ ꫇UnP3/1~^Ɯ m|&#}T)AQN*F:,}& ^U*q.Oߜ tsϣi7zLjzi \PHM& OO1eptsk:RM0򊙢՞1|_3vڪlu/PH#"Vun>ܻv{zSRfQiM͜k UY+7yXۄ2KP?i L'65tYX2-2I:RQgr)14H|Ts18D1. @QCj̦9ƱdNW&fB[m $bjcX۲M %M$:}(P9(q7S=nKX :Ol ,N%ࠨzn_cwyk]tӯ8w؆}6P0D:J63i9;R?]K@BROv>\HG*{SCc7A)[cTۛ9ǜnxZUI/+"Dd"UYG=}폕/N..w6سHV54}e}Ӿ Z_k9]ڲ YԜ㷷)[{C\zp5ɮʡ* 8:4^Wκ)j^(tùlzTXζ]'/!4ep E βxS&h44:_$O={S+zӷkQ[XfzEuչB :s@7 J:ױT,U2NV]8 _${<@ҔϮhJF=R_.t1}!L  U &6Ĵf~IdhZU!{\AީnF,ޖ'6.4 r9i P= ƶ8*$tJWh%4VO*z!+q)c[M_TVg[Y4tN7@t@JGsÔ2=MNO̺)\A#@LnlIXt]zcEޚ-瓋z1CØG* bv(1(OcEt^[ }j9Zl}ޞi6ּ">p@Qƶ&m$\0mHfg- aVY[ئ' rV1{y5yŹ%:B$ h&2͂/LktEFn(̭fYiNjH3Xةjͦ ',>qh_ǂ4P&cv1`98s yy4RS.1ޠw9U_3Ǫը?X>{|?)p~K]L ־ .WZ%fF6tNOȳL.3#ocu-B~07+8 sr:T- 69:P^WLsҥ|xR<=cb]\m}3-˅06YEfdh `X%lbڦŌ ASLRyPB"@RfZds^%],sQv+,#WR`T07$b Si겴Fns+^cI7&s^(vz֥SGX0eܹGrplGٔPЬHޕA&R_,ڌ[f.Z m}vjc;ohK Ca;mf ( mMsΚ+=*Y*"! O&nivn2M|J7i]iPeCs7Ƽ'NS,[8 d*U8:&VS}qWBycOy9K~|&RS۴; AJHGZS[=bWս@>erü_’%@9:NO*۔;ԹtyrEZ_~4y5i!I͚iyOll- !S]ii'(MZM"2nrӎM yhU7_4ޗhjCu Tgꔰ2Gzhaj7L>IK/7f©&p/T%joZ{ܣoe G%1)KEGA%d\.yfhbQiMޗ@s .3(;*i},q$P-W+-":򵑞$ JE/ V[a5:4\<&M:Q}dtgDمM J n:"uwbWnşq_Gs.qh5Wפmo5~\%(K5 al6獫mBF@:FOowNJ͹ w&ӆ*•lHIk,0<}.H |ymjMI)̷b )jWq\z_>UJDۦ;d2o1iCE )OPOggS<QuR#:K?IDDFFGE@HHHEDIBEIDHHBKIICOHHGIDHKIMIAFHKJFJBEDDFFBLEEICFbKea(I &[&[sůѦ!I^Uk2&ƊU%wDml08GFfMMRMb⡙TR(]}<pQ"HtlbszCN<bMfM lm@DGuMvzMtM*!Is$ Լg =3ŁNMP|{ 2fmJZ߬KW,݌Bv=^5Ǖ c}#BR0jUL:`zPVK*!`3`w HMw fqM::tF'?lhVOR^4ashU[g~ JօrOWdGD-9 AH^MnGs &΁c[9;7_diLw׮#V)t /M@#j9J &PgHibOaC:Z?_ozT]R&BPzÏE:v#ٸњk.$L fMԍ\ ~TT3{mFN)KwLRAM+pP#Δta]l-x fSIϏ&vt @pH[Yu_G 확IN%Qd#8t,d4@6AzE^QG/Ҏ` UY^ޗi@\OlwnBhL{r˓NMbMN6e=*zNيH x8 Bz$Mhd)T2 jQU1=ǵ" eufF,Wrfu@Ig j y9yNOE 쪭X j'i&-mڎz.+G YMÓFn hMTNBG8uF#S23eso> n_ *OG u9e!,MeKr. fIᰇ&Yk 2ٺѬs0Rb&կ_1e ؄AЦZ_dנ> (CZObfކLϧ)hnEQxj:ѡfj,;)tH6`\fykVBX^Qᐛ B3H]Y)Rއ-+2q\U`BV29 zy6ʮ?FMj8=WĜK' LukXNdRK71 \-Ӿ^(-{}/aN-(Sԛ(VI Pm$1 u5hۺHXUBgE0tQ'kww.%}OҕdAȷSRi ZMjۛ)`s5E>fe9"9}YJ'%Ѩʒ9cPWsF&`NGjˉ"LPtү]osRNa߱5b6cCִ5ԌD>.F4`@s*`@abIfht$@CSt-o~qbgbcr0lWl ̅oA'")$cVQf:T@B6$MmL]%m["[33O9a6d?} ;;aBxqjCmVSnI-&0([2s_Eve2J YMb;Bk켭k?!PNL|cbSɊOY`<_E/lLdvILIiu2 HEmd:.nsW_^In՛4Fv2䦭mJ\v]¹-($e|e Dhᗔ9z P\ >Ox$pGKy{)WZ,n s #A'ael3" hvw0h:Qd R-ImKy\suq eyԄtO=QIJp:x+݋r sET^Q9H4XB_STRt:V,lC7e7:M-)֡CjuV8}bSnMOl&6dpAݪ暴Sg[,(ˢrS4J5 mۋi`u6i#Fh[S%NIl!A\菔&*[[&ƥu:+`sVRgL؂c.J@ 7^~fVQfŏ",jSA7?DzHr^ھ_g 0nSLK@YSƴ(]}eξ YȰZGaśjDն T\m_io x#R- Ŧ%=fxyI~5mY/9̠䵪 ZO0_8cY\x~ `νRš(ߞ> rue{~6)1Z޾м@neta1ZO鶧Җ) SMstfhb6ϢIJ/vf@ŋ 9!$ ׵ NSfuVU#d=uiăJpkai/T|pF&B~/MrcH JUAS#9tǖE+:0iz@4(,Bc1x`"Aj [;&\s~/RM;f5J*O۹FWEX)6UW-hD`:g&< Snf=VIpRBj U=5*PiՓm9C>ڀu;#Ѐmhn.CxM&RE{3\tzJ#u;RE%&94P8ӳwIH%]5vҔ Bg.} ZKNIv.T0sKKiݗ5۽<}Ӝd 6kHWWnl;bٸL/ܛh}2CBI &$NAVTzl飉.BrqM=,G)[1W30]ڬٺbGI?N`V[`K1 /]Ȟft\Ф$7΅\m]k-S fS nۂ!Uƺ`kn.ZϬϞXҝfQp Ij?@Ƶбb20FO"ڸuFL9D}>g;VUd v31)H#qbvDOggSQu <;GFOGHEEHKHFGFLHFPGHЁ恜Wy',ˮg;ᤢj_ 2(h6QH$4sI FSZ/jc Z=heJd"nf& ӱjNPj(hc`AmkN zLӖk :WSm@Y5R4XƐ%jRK }tvZ?Îl#h[pnDwI(B~ZOvk@Ҳ4Wn?O3e=7K5R!W7m,?c a(H? @I1(5`r FMmuTkQDL˚Uozf1.mg{8!ٟ*;^K!;1=F8j~ELjlbւWa,Le  ÍR/HtiXi^^Ӳ&VG.zEР;gXPrq<0[y  @ˢ2sU\~`ֹbFm!ZM&zS̽rE-e|xꩧIG` {b Ŏ5,Ҍ,H B2#MiVI"#"ֹsJ3dI}_:Mƶ,LVw&n6`1`pÑ/ lRKĪ^^`N6GMe_|ꖵ]Յ[5G#{y(B `<4d|rvBGz@m_#{|^y\(΋/4tXꐈmC/,>n9aV'@FP3 :RIpV\CIru횼{*AtNyB7kœ,_C27<:{k FIJy U9(ZO֞yy03gˊؾwsҶ90بTjdZΔrH soOorlΝaZtsK B8zz>=fMg_DʷBhTF:1<$, h]LanH:bQNYCHk#n,\Uȹ* vS= S,,/hdYԿcU+bo[knYLO@Q^+\A<[Xj^=fwRm %' E@=AfC=ESC_+ ^>G@ ^H 0%G5mL^?z/S7g(w5;' d2F uBAq$*IIuw@j{k}ydwR9# r)/bs:F:nNB$oiH=:FG(^)@/ͩ쵵HfjE'-],*Zf'1BaXC ,,jsW<-LDJMHS^wN QXeۼsO4*CEMD`Q m =nRX ROHj(x;,uHGmqo-%-bj9N˧Ɂm+Q:R hS8))RSk똱nS$PLӔ?me˲wņ5Q`\,(!S9~ 4SBE斶׃JQBK?OMr>Qa|:i&:Uz_>3HtY0%(.Ms}Yo>U3Vϕs*& a^bHmbXNӋ&hN( BKh9Z!a`b˛K/V1:"CmI g `= ُI*@L &!RK{v rR5ߧx{w̑miڄ֍TW[!3fnt1rK:I)QAwSy8>s"#v?$n D? ģ5k$@y# C>SLI3bZ]ps)kZO;gg^ri-C'q)ɔ\0>{J^iv=YۜAQN筱{R.}y!>*:.c H=162áQRgv鬈[ `O*N+^<&Z$p@NZm$^s.(\^6-i[*{NPV=] 2L !5P EXj`::tRm$*:VNǖe:ͺ4T00>LfB\*?nl"ˢAYz!Kg߽!Ne\at[ cn]u,(Fw5+t 6Q}Fity& ɴ%YHTIw[h8V_ :auޭsŹXy\JbYz(dz L֭D4p^WJ&CZ '&e H- ֱJ6ut`ٖ̈&jM\M9Z4FYUAǭ^dGdJU N"*E{db`Ppmc"P59~j %JSX#2wtsDB,koҒ{vEiq0ʯ=xzu΀)DnlcJ]tʉ6σbjqR9i_r}Sig%DTMu;.6FSU’S rbroIi>)\u1.(m5\@0)&0_]yhRVO xZ#Yf۳yǒdY; 5yj==WϜ[c,!bM[L:f[/Q%6r`R(6K,F+: rSED@[j6ejhlePm34 0}g>9llJdVNM8Bawp,[H3fM˭m 3UlUKW+1O@! 8;?O !VOh(*/0˝A-#IIjZǺD@FGFDDCBCE=CBEBD>CCECCG>CHB@FCHBG@EFC>JEFDFEFLELEGJZK(J"Tǧ 2<#!55,1nH DI&Al DS\F:G^@ A" Uj~SjV:}S^wA(F5RKh+"P%;Pt6{,Θuķ@s`wA#&ZW(.LD9` U΢4|vp9~I! rBB~s <gLq<9mRbM,WVLLk,Dj7bmuda,/ pнfad*NS+; P^ƶgҢe)jL u6>n 3ϊӖlnxRI\X(îz9: 5Ke^s:iæ)ٖ.IOТ6S:NR3z9LNMZѯ@t r/WQTo^Z,v1 l3c66tRq):Ks>UkkbMH@+lyk8_MIp*x[0ƒWk @.P9Є҅. RI8:K`$1jf<>ci*=^KT.~5)-{^Q[ ayUΪƝ|? OɢT_7A8 ^HoNG_.z$ R~iXfI{ $gu%GA7| Nex$ ţ%OȇZSIw}]s!GRwM^!uF* `X!It LE BW1%|ž8s@TԜsG5z*6xO}nc4i?qK^cJVMPEo&gp@U6{-yRQF\1NOs"g0{sA`:ɰ`1ZO2E09m*gWvps@6(0` .c@Hg&0fM N\LddZgZn^e#ٸYv :l5L -!d (NX4bM/s =$`){0nR#ح# =/;L_Awr ;GNbKl+eB$S5K=$ӥ['W'9UD&$AB@G'X̧t"A= bQ [ز e{O,wiw5`T3 V !|"<0.@YP{U`Uv@ dƅML4OlԼf[(\lF- $J4Nq%CVQQqD2+sQcŠVUXP HE hytH;;h =݀"8[L+^QsmGOuNU }vGۥādhtQ mSDyI)޾q ًUJjYB0r [uܙ)']?m ɗMΑ'gɮfSDyX}siPS')˪ɗT)-V`HkaRhd'qK^S`پ+җ2a"{-gr5o2.XRvT2>yZM!8WlrMjg`*nW,4 ϧE sm&=g[A\8=xA&!%|OBCszISVKyvv]It,˷DR2g,BpJUP]pRKX*ͬj>aLHu>ysV!.a@شಝc|;fv|5fkJOtE >Dں8eQkʎ&I&j)6rGo) sn`_^#&ZW`BsD+2YoᤶP{NX9(o6F:n RUGpHU-D6.U]HF l %SKI+4mEZbW$J"lT,۔,7EIRfoe <-lx|&|nf!Uhi[DYIazfY$+zRc- JA rj9-֤Vkeut\(aMTA'b L$sfW4Q*ar! *ǯ⺪yCּLeqlhLV$x?LۭVQuHT[3iS=˕ͱ Sr,-]XMml6#ѠhSӤKw>\ ʪBIRxىs Uok*gRCQ&8 k=Ar Wi'{wҊ VUۑzR?8@B&$.T[eY,&s`I,vp/6xVƵcOPnVGJQjuہ%)>0қ^[^-[{4Tt:I{PUvy?!sA QF}JOka;JRS_}˺yzt_Vp-ͰRp s;L 13c2OZ Iv6T^Of\=NkQ/{wP2n1f6⸄6]rztVULkSC$P&;;cͳ%-90{,ԶVJG1ƈY4둑C&x}ALJSȶ<-$BM3gvDr_|T4`.I 5h:ũh>^oKS Q.z2ZW vYLD\@s_Fճ,'ݴRDliof@{ (C1QD  1D+ jYl0s Cr53͑S5%V GF$ulQZsG3 !ZQ8`i\I׼kԿ#K{MLrG.-U@#)=2 &8NS鋄BfQha{fsa UnդH[5BPHGv|2iGDOe[n -C*JJWaND.rL]=k{5!v)s10'#ZH @9 {t#!ps JSV.WzsOggSQu ZI;;ocokMV/#cl`ۃK6Zfx40-I(RIh,/ɜ"38f=tNS[S1,=`[Vfٳu,u09#^K8i^+?s n?YktMԠ6MGLfvܒц7׌"u MtŜ]bKY _JJT@,g;kpgNQjitPOm=:aNHѿOcBK@1+l2Y8mH';Ѽ{918Il-40XAVկ$Zcmd>GᢾhGƆ!ocyB'RkG ^4m!a^Կ80[d:I\VwGV/CWKQn~#?ZC5x/ⓓ >vI(NÚt6*uxR:c7KZQĜ"?c&"7wN  4eUJKs޹[diFgyi]̃,e,aA X C>/$SZM%{\̜Z8,iPetLJOYWa%72l7W-05No:н9ìFJM ?W,3q.YAϷKr: v&*,U,a[̄]C}\BQN]F3rKYSOu1s\LCoߌo.\;!'hԀn]D9jtOjK#^c.uB\@SӬXo5O3e+/NG6:Q1}+kYbc6LEB ͦ,Ѧ'=R:%s '̜Oq4qG[&K,mzC:6O&$3g%CYbՖ!EߟJBp3 f*peFЕ"x$6QxWyߊIPPjkkcg^dZ=ͽ+ *snNY^@[D)Ħfصh&JWf9aI dpɃ  tý\@Q +\ZnUٵ#zc*wɖ5ζ}Q9 skߑ֬0=%t@B7]Wג^ fSq;bguZʗ7˶}r!::-B= Ut< gE fM<DZ"9Ugi٣[J#%) wupbEi*( 6B|E%r]ǏxxH7+Y< 0^SJs%* nfǚήO+AGo0Id"A))Ƅ%luczy8JK3o33/ -0GSvC]2ũ2$(SE.k'G?OM"jQ$hWLNwaq;կMŎz]RpSW2zL2vS8j+vM/XTOUʚ|blG *hj6o 7̮i4L.D+$jQ)sQ^0#TyFT}~k/+ ~Lo &l+(A"V%CJfQ,SE'c>e)T9뿩]Zq^%g.d;Ftl&/{4(nKcՖHfSAX;`Ι8HHU[ciY}͎۲2ΠJ]1E_P(3bdJ@{1ZKLp XG*&mm9YcQ:R50oy;  )-jNӛ$BSs$?SSVax_N ['jyo~IC@S6T(vuB OggSQu mY;JIHFHFGGGFEJEHHINGFGDFAIEGDGDEFIGGHCBF@DFCCGOHFHLDFIMDGJD@CRQ y>94N?ci_sƢU48hv^ N#s..oڤ+#v>GXr˝3!mh\ٗ|o=eAfh`OF J*pa;) J( VSJTYˈI]{M|]è\S`c~"(Ll!_ZM cyɎ"MHTRKYh ,hCs.x\1++hNQHٗӋP9'@h1~[t6}bD*?Yum\q^[9AM:>I(wNo=%^^S-'C>GF-d@kMܞ]qF=Rg6VOL/0Ƀ2W4w2L{&uM".M]q 2{t:(VKHX,5r3_դU5*ldmMq RdZ ŕDzYʃ5 AWRZSjUpOK;Hs!ɕ-j7<3Hugp!; :;8%P@1F!M.ElfUBYbB/ BjE:]saHNvI?2Z|Yt`TbaR`ѳ5fO8QӬfD2rwRK*ԎM`})u WD ->5_ 60' ZOD-/_*wg%`YE8 ev=B\ SuZ Ø1\!+6jK(X vŜZSKsM c+fI< t@Xts`2ԈfOZS\ČpU7 Kzl5evZEo`p K)ZWy_N)_' *?)[9ez3&XGjjIHH]&ol r]3TM:FSځӷϰ\,& iϱ/5+ 3Py FsZIFՕЧ;8Ϙ{+^;V8VW`lN/6!K$#R5l+-R~ڬ;[) S/xt ,+tL}wKĬJ1fOL>kC\zTG3{_ԅnvj%M@xM`(~ Ժn1ѲLVGTTX6q:gn[UlIe oM)-];!BN^O:VUH\yeϿ; BYaLpeGĉtx娛s302RMXluT53gzyŅZJh^Dj@676zuw,N:KZ:ؽSx0YZX}Uǘkg|QFE'0]ϥ@u RVM`6KD9k@MjJjMEM{囅Lt%`KB @nOvgR!Ȯk h2YNIh,Ǯ`x$&jY}t25uP$4..&N(H31^I9-SB&Uڦ￾ϒqut s/4(dsSin6NvF4^'RMX1yIhU?8Iۧeu *9ڗ"(kR~&sS}Mhem.@ >MYi= INҼ=u[jN vJjZA ڱ( wIQ@O&ZK G0 %gJ3_v+O#IaL%:~g #m#Tli& sJRKRyTA+@R.Ksˮ,uYM#Aîҝ68϶щ3# uSm^)ZfY0<F,*FDYg=ڟ( lV[\A!$WJ.K ZMym3&.od[:.yq-܀L3Xkp{ 0)VSy.@/8`Z"wYOnGfu-~ LǛ,pũ)P18--^IyC'T@j}y}?--@ܕ#'bMz ʆ@ގ!Cw)ǰb˄^Ky؎~Er|$ TR<}5OĴ!D1e] p>1g }MJI=\`>W#[Gq_O.揢R>IKpA 7^&3>IYi3oz%Sߚϙ5Wٺ}A ٹ5fQA ؞ @tn5JY^PB|m X*zޔX[c?nb(~ba(F  Vߊ>@) 4WFL)8^QH0oԹDʺL7Uq(J]Q`I:_[¡KhX!FRSXSR9{ҭ[[õgfS`WZHx x렫'fSĸIrE_qKvem;fm}a렷#%`kj Whon' c.KMZS4,_@s*7+˲>,2~;K:YC)`Bq)\fզLJI `53ߩPn 8>EH#YzЎqK{B>ST\.%X8r3{nXWfDVc,fݼ 'J t[+tJ=VOHy0 91UG`Wuo=YE[ن}:hG`UNBL 0tސkl9[|fPiZ&OggSQu `H;BECB?DIDHGCGAJBGKDEDFGDEH@>FIIHFHNHFJDFHLFAFDPICIKIEBLDDCIFVOz\ "c>A<*깥em9}o*)]g6VY ݃@{KRs#C] ^OL*^ lFPma$gkNZwW73U( V( .'K2h *bM=%fe%:Q%6FSeF>"MuR0J(B6LI sL<~cx7Z&o.SQ`$ \K"MKttͯk&G1; -#fP1O_/Vgl9jFRUB):\:MXVm4gjS- :wh~]ie~ƀg<&foJIi*6=6)=Ky-Z6 m[`П ,h@ Gg )lMIC)VIܸ V !S,os.R3Ùؕz6=!$99u6 0wݗ ֕9MVGL].VٽVy^d|l{dz2-00< L-MH]6p`t#rѧÿdZK  *nd鯺U?S^F꣦NR̡ət(Sb'3Rk,45쳣TjY)O1x=#Xsja]oWf[xKQ$Tl]` tC7w$P9H^Y^F7 <7ٖm%9!%vW% tDHhœEUצթ&ZU=4XU4dSuwmmiSzw۹ >i{ s  6T*QpW VE`f%xDoPsES vwYww##2R%v x(,4(&=MZW|Ю{FMũ'$^(A= &FKDh_ùDKSEkm!UaWȶzJ ?Θ݅tpG&4tqZUDp|s*<ڢjޑTHN~zO `& o_JG޲xEU5v ^MLreMީ@U`8HҰr4'l XB  OF6!&Oh"2/NU U5&`Nv[{AfKmEt0崟E05ʹ?yHGs8GX%>W)d%+l8K`9K\%4 cet0*$vRfvH*8-FMr^|T51ו(O6v%ˁg.Lo? 5 Kۡc:K՗/]<??knC!:tJvw?iIEuzrͭy)ܒCz9^E&VI Y&^dY0@ZWTU-JJTߒ~Yg DyVLł4]yjVUD8"U6'k~5߽23aX N㠳i-CKG!!?5RI;cts9h<үcٯ^H"Gim01_z+yՏ(&5ZYJFҤ B\0Ւ~kt:ì[{ܽ2* ,wv` -q^ f S{m^ iSFM1oj7V<gU^\;+{~"!.@wc z#jJ3_4 G"ZG{%b!ݸZMl53g4Cbd!-~=@*`)Q MFꈗg4SG=JO Y(nrb~ƆwŅbs,fAx#.*Bu JMHEduSK9~&YYBz#üSJ{`Z̹hEo4(!$ک>Ks͝m%ٛIv҂q ZsxI)J#~*=eCGL-tSkT6VM Y]_ֹB%;IPdy \=^#:TS6 L VUgXVj1jfu꺭[4ZiX?C#dzҭ!K߈"FRM,}\,masp kު7%&ds6LQMx?]g›5JKQU\4;,U#&Iz !eG\? XG-Fjd]L$:Mi"旪 nq3r1:t0"1v#u{G/hƒ|N]5Г=:E*%w6L,U.;ci{ 5;z>#]jp<7Rn:]6QsEX*'lYxF{h![k_/I_r>j@+"SKJƅf2@\ቖSVO{pNؤ ?K-욉ۏ#Mxj2I @gq43 DnLO q'Q깋pRGF"Xe>%prۚ*R]QL M@lsp%iYc3FAY&hnS2k˙ɸH/+tNG";Q(\)1`&Hh]tJMfU;5^[궬NH4'g{,6۶INGg;C;~>(%܍ȞatB<#Ț;ZMIvkVkEIXz^"O[]VShNƻ#Ӕ@JIÀ@gE 9Ö֥RM*;_;%O;,%R߮Bd-7!G=[ꙞD  3tӑXnEOZM+^Μ |U'~Ǘ3=W.VX_H@FЈkwt 1;RMB lWmY `z6{ފVHƔP(| oij (zFMALki^8yps>6t D) 4𣸐)4-'^@g쌝y^Opf񕂍;s ,5Mާe&i]d@ClљJ/V]+cm<ʴFIR<l:rii]՜YV1^]qsj I -V} +ͷRM]% ^MI1 ~éJ@ hM4kZ֯& zoR8ُCNӆ>,c"Qu#,$^׮+gZOԍIX9 ˀhڻΖ&OY6 ~eWS 0U$Щ{|26#~$jq`n"MdU iEsUz7KX%JSHR O(B- Ͳ/Oі7}5)Nmuz> KEqSшX \ݢ>O6AY7V~ޖT{q~ *q.L6:LӋ]sedSN@MH9Pu^UIƽt[Xɹ8ReMqN z[ Iò c=0O*4g4 c g^Qx1muaR϶ĬmYRzFc{s&o4^aS .TPs+M\ZUi߃xIs `b薐sѬCۇf'6 HXC"]HgBL613ޥ]bOI!p `,NfpOcIݏv_n PAl:OЄc*هI )5LNU22}7_S闩żPEJ3j`8c啅X`":ۚSRQx5FIaŞu/U}cshd &V`$Tc~$YmSrAAVUfqL`%)nn}rٶ0 `2qJ _Jߛqf;d> RU&Ţ]nKumUH΀sAKO"sU5#U`WH4@ޔ[Xjh-:FEӹa<JU*\\eF-B{C>n/FL4,E7(dY|zt!ݢZQ!I`ڜZyftM4_61I%-,ƒQ" Z4nKLEW.h7) iY#VOe9'U͗kf1%w`;NWSz0E]D*8EkWfSevS)44Qk%ږ )d)k73A4PzSh3 屴 mfҺONS"4k5z*MjJkW30NmDPf+F:3)JIrw= KqdZQL"Vwn r5Ө=׿Ml|.RDj9fp^ 膍@Jw4M:JM̃T催|nR$Ru5i"RJZ|ic\c@"`^X`#^$LRI&:SLߩ\*:ZVjs9 JZlcxJ*[z,af&l?8]yRa!j8ՀMBVjn2W}F!ZMr xLL҉^Ҟ1R[ۘ3 %*3cJG5>A0z|:|1Ʀ)s+yEoFQDY$;v  Z{Tڤۑ"_y.e?yT<]?zk+@_1@cׄzKsJU00;W h,.vپH\] N \p'䠾0lZW`]AùI` 4'bKa{җZɗËP&=;T9!AѧPF]+'_G^Q!Ux5TooVz8Z8iQj !k;>luMJT8Sdt:whFS(r<*Kf5fNR9=o 'ߍN2{Jg<:='&9MSQ%FU"`WX ߹9d7ٳٳ4 wB6M#MHk'ȑ`BMvV[w(|~h=oq,SnHnÜЃ \am7$œfR 62Q j"vq_R#vW]ѾP{O<*ԩm/je/# E*6IR.z gP'cmgqf٢3՟ Do]::-Y ]'V՘4*Q:vZTqH5.ꚬ[[X7%#6rfMz>Q @..uR1-MBi.K2伂;> GI̷ш 緃xRQ.;4vͿUi֔frwS%+E5[^Ճ3 9@@-5 ?wNQ.E0=u 잟HKsY~t}q6z$cIk-E ^69ySԾNQ0s!tdyv}l|/RأW֨8KѾs!{I-*&axGt2}Z'FOk ^)7]'g"]<<ӊ٢*-iI/4Ӂj61IlERQ[ lfSBW<*ݮֲ4M,yZ?[azG)LX3JM2TzR΃G6VOg @EHz_m5k=^ϯĐRoj|/4WܠK^SitR. *U^YbD\E-l NϺplr*ISІ߻fNQ!: aʓskLy=GvUl6aUطt.]Gc.0 oj\bkVK{ȫ#ɹ5m҃ޝ5)9zI{J\eҟmJ\+QVQ!JFsYjkHNnY Y[ .7_29(05ydLVMLs\`TB66ٞg:P+ ڨCO4@BT4VSBXs8B$Mx6yo)TEՃ[af;1I&[=k>M\mRBmˣvaHƲu\$^(躖,@GcIؓ,\3 .l$BQ(zy`ZS6B[URA X=Y56JdLm ЈI}@FUY^J6M8jU`T~}5wKv[msQf,0!YgLLsϾQ/RIvSr M$f1KǞ袬&-2DWAUSXv [,k)BWړ :^KiC^18H5qıٚn{jM5Wq(tk9tO·Qi݅ ,2S/RI;o^>3G%%Պb9F, A+uC82bLC 7 FI)7& )oMG{8y!U!藛STap~H4u99K2tQ2%RK=^ D~TcXY'֫`bD0y{0LЭ :G DҤVEfbrCIm|ڠѷ5u>U7ɔvƠx4=̄imW yYLoRG.>!GߛF>W_ h.O8:XV蘚RQeWhM4pKD@4!$jIeOuF¹`3RYo-W+ 5Aё;G]6 S{%RgS7)<ZO/Ȳw> I%%]q<'t%e,s2CHlLh]ώl1[ RIr2n4H`> ~t6ݎ:ɲInٔN0;&xZKv D0<~6Қڈ+#IP/roF"z+`AgUhI!Z FM礉y:jTő˗_NՕSfU]L<+ĄFmhP ~v(jgc4w:&^SI ~56P%nK!TS")$+ dO& 2fǗ 8 'VO6j QM$U׵dWV̟E:V3DkzD4' 9VM)N \uag-ow{.P'hbu lQ OggSQu$:FFDKBGF@HHGEGG?ONHEGG=GDENJNJFKKBIGIIHFMDLDJLKCGKHCEIFFCGBNQfbS<s.``5Ag|i^{FByݓ)U>K9W"^p /m$ :Of(9@Z1guڥN]@ " {sipL"sOx]ZOɊgjnM|kM}ԗDtQcB}#"x>Yp^؈SњH"IjY݊7.  -3޶m̚=[|m՟ NXXbwjZӜ ;ym~&j6 VMb 2u㐪HkS:R.ez9',7 pc3OF7QS!>.ZQ/qxN-4AfnM!)te~hTeZR-ɓ RΘnJNUb u8\<iȬk-q% u0I_B!|/yR%pFOf"N@Ls)k׬Xi@ā}l`>`"i&y6N>Ql ' & ds==hMEϺR'"atIs8œj?@va r=NQlƩaiHunM,bgvŢiyqZ/ vLtm5׾MgT-S'5u hmvJfDxen1 vtgRVSɪ!&Udg âҦ^PC%,gQ^Wms19(rKv[3֯[Of cs"oqõaAP aIFJf5I׉x҉mH^UIߏD<ʿbi#_cYsۡ5XDI `+Ezi4,#yisBW$RWCctM\s4S#kF̜e}g0$t]S|k_1G[*!V[opjSNSb @A*7-l.;4UMR$['ř,8ZYmjjp.!U䋐ۖF7+׈5,ͫ4K4W?DNuLE6}?M>WbHڥfm~K^OdX2i\4Msm>n( 9C~pTRUo8T[G ^ݚ/n==s* ҂϶]3+IR0wݰ^WME0)s0@ RV)gQg_ gs:ʮF적~)a\^7uHJOBG)TvanKN,ZE,P}6#70" ,;c^Yvlj BOɊ)XsP44h-25",2(ЛLh}]qZJFOخbȮ2Dz#=nqk3J+ kNqJGZ' sZRSs-%fЭVi-+nJ,3\OŇSil$VRQ h|O{y(] y0^<\_Ԟ1b0QH@+8mZb9w(s eJKLżZ˫,ui1iN+-BTGP4 Fґ x#tOggSJ-Quդ]!HIHFCKKJEHEIHJEMOCIEEKFKKGGCFGKMGNGNLUUSAVIJT/.:DYC"`8x-mF3L/gjAuGFG0u[ϙ'U֘o_vj[;RP+uvʎ8mnbjoSk҈JIFz4a`ݷpA)c[5nb+wZ.=@' Wtc6\N P t8I& RKD:}K}JVb6gx4") T/sz]:" Ӎ@IR3<#?:Ie`6I%>}etHz r+ډ\5$~>Kko`U6l+n5*-~n+)vR,UB0'WzXk9Az2\kӒ?BIF HZP85rPc3$4؛FL%)9y]?t VIIt ZvO͒k/]mY39 71@~v+I#fDfry-wc@FOLJUճrY嫪g]]2m>ga_O7ao^r5ޓ͜%ȳjh$i2\LkNbKSKPU$tﲮuyzּɷץJ" ;&{h['u銘sO4^Mh5(j#3g}j~Ϸ%^,9.~5ABdMO #Zꠠ{fkf>Q$\[z(Ê~fx >Ͳ$ "S'jR#GHqS/{tߖ4%=tplNK:?SC+$O=GbP,=hdݣ)Ьv: ?w`jƐbUtjs ͬcfy}WoU>mdѴNG."5z+lt6IRS ;=Ck=sHŚ}KmE9$i|e(-7,q?$h|vrR$!T>ILKѾG5?*Qυ1NBYg 3G3ǚyz$rZQ2#ĩWr ݞtmTiO/~3HF•,n^:WPjS 65~#ѣ&.WL#My1{3ih:! i=CVQ+69䀈ZmiZr#ЯmCL\J9 ƚ czN!Qe9nH7KDkNG9S6!A[_T~eRe,]J $m*p Wz4ꃕy]RSxq4V 3ȗy]obrW]{iHPKWk}37RKRI uݺMj+0ځjeyk%P(~JCb)Ёe9ļޜz#GXN:h ( ^US^ }jKUݗɪ׳YU53=[N% =ejIgz+WꝮ)7FG@A׺=.\2vB;婣1*B!@zN L(8n>6JMFUy|HWx!We78&JWL, -Z/ܟlsEFKJ*n=W|Uw_z[q!ȥ295 $f`r;ʥъ'B ܌1.Qs<'Z'mOU{cg;{n)Fq%]Һ2h" &(26 FS4>CVK~<4_+-*5b157&EH1S*HS\!jTz?|&^W%dr "T]fiץүowOy5Je5ܒ h!e 1> \aPb&=&=)^XZBGc~}q/_3xޓ\l߻\Dȼ{{y .:y7chromono-1.1.1/data/sounds/music_subd.ogg000066400000000000000000003634741410712601600204340ustar00rootroot00000000000000OggSFi:.Rvvvorbis"V>OggSFi:.#!;vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSFi:.2r  ! " !$!$"!!"%!!!!"# #! !#! !!!" "!%##%#$$"#$$#"#%$,-,/-.1,/11310.1014240514::@7785IpIpp6&5Ky`#m <)GKB`4%"K=#iɀ6o"K=#3tOp+"KsZkp2'ujO4K,'6,8dG ?Kl I8<0 A}"Kl'I `foj%!&K5N``Ty _"K[8vPmPja &KU7`~u%~5t9:' &K`Yl<4.IwґXk7@A.I^X9N&Ka%L-mD=&=*Kp2VUg)"ͻ "Irevn@w}iRgҤ>"Gp@*Ts" J"Gp杙}Ľ.Gvu$x@@ <-L"Ge FrPdT@$"Ee7 À 78/bE]w=@ PwWn-f~w"Gr59|l{PM@T"I19aS*Gx}FX@ &_͓T]d _{&EKyU( EwBv~0\GK ;fPw%iZ'ֽ0I|h -P`z##{qp-&Ea] m9^d L#"EszCh  (HaDLhG&Ep@W‘ 9y2d 2&E䆾R\w(0sile|oI`&Epcdx U%WH *ɀo*EKzm%@ 9Ւ'4ٓ_%(&EpcJa 90zme&EKrFaļ=سƌuX*&Ccr@Ds:QGo@'.*Cc7$8;`s7L* *CCze8@$~WF@)w&C-#yiI 92y &Cqj p0s9/ē@9 |&CCj8@w "qmϣ*#x*CJ)`@$И\/Hy*Csn4 W8@1օ~O*CCr4'&[V&+Kx&E]y{m %f ҳl-w&CCr4 p&ԯ*/ &*Esz4*^Z$:_Αюp-&Eczk0s zQx c|.Cks4 &LQG<PM+&C]4@kI1ϙYڜi&CIrc-hN疩&7*?iTpf J2$&A.aj& O|o;"AuБ hPgW 5*C-@#"G6f-LG&CnYqxfT*?RC/ -L =F9@C5`*A@ڌ>'+Х &?8H (=QE:@C *G\u @ksq$=Ow#fi@dnK2C]. ]zh@Й:9&Ep DMЕd 4kPG8n*E AFG%LEhߖy@@VLxD*C޷9 ~ J0GabH՟@V`[.CCqc%&}q`6BP7 < `]V*EwM@K_J'xbK o .Cw{MAt/p~f]8?l"RW %A{y6Gijf_:OF&KrX&R 6g*Ew㼥4%F96@vX_8cG:Cwp*Zc86K5s[($`(Bqv6C Ga)2= eY,d-{sQ #딁/S.CaƾF(o_`0)H sG/k)x%}4 >BEmrk橠։->{[MQRJy/l6Cay`HzVWz<B07Ғ_'PK oP*2Cnrüa Ϳd 'p[D[&O , :Car1t- 4|د9?جP@`{l6Cnr\X2p6UUlt(Xo*Ilr\x1Y]J%p[ԥYD -6IwTA W Q`Z؎\0,ԙ?2Gfi jp4,f8 %g&APT*Il^p%@"6["[b8[8S2MbX҂lD yrxJP.Qb^ c͉%PyK`XPW.QbAkPt`mm=WoVr:C`OԬ.KLր/<Զ@$ rhZA _U `C(.Q^A=nf"اkv8hVx 6ULBՉ',:$L[/ x@xrw!M d BYnr/jV۫=$0'齮(NXk#3lĢ(_ Ⱦ5:.Ej- ],=Wi}KIaC7AǠrEj:`2Gf*LR*'@u&'H DMysZ nqH2EfKЦN G!Gj4Ce86fa=p"TbXF2AfՋRUGW1 4y9s,k{ `?9@(MOggSFi:.{{~W82,,4..201..0.-.360+-..01+1222.02..*0-100/122+//*-,01./3/.-...842//0.21003.0,..-/1-*+.*.CjA _VA͢ h_x`Z=M@NA^TQаc1t2GX3ook@xq@>E/Kx tVxz7 I`0&0>EF{juN1(@C90m\6Ef+;ekoCЃN@͞@tu.Lp< :E&r(SE GX@,C\iz-Xցpqpj>C&rT9A t62o@ fvw'0>C T/$=x`[fatH j)uP,cBGpaPA/@xrb P[v+P4I 8BK&0~豠 lĨ36MLa$A/YM@f߹K@lP,FM&騑 zEZ*tO"g1 86lP8ZBSrA U!K{_C]sZ3[jz:cW5M;iX<U]kؤ'π$%gjy4XZIU_mcmbZڀjRk_5OZ)x;!u <8ct2SXE-=Y{[ؤZ¾ <LHe]a,iOV>1lIoMe yMW 8gs⤩,D;Q>p @k_Qy~@Kp~v]k{i݁}CkP^e]'rqJ>*jԺrIŏdK"H㠉6 m g,2OUȞh KW&%2Hi'^>y 6eCphG#KduRkԓ@hX6Jv6g ?*6 /en#o7WJd=$S$ܞoO "$=gÞnRn9$%\R筿1GUn-cog?.JZL"^:++}@iCQXI gImVg nif҈RKT| IDZ*eIKIˋP 5ҶTZJ*OgjFf"gVT&ʵ/keE4qLzqP5g]Ťm]['?`H7eu].KH\ xe]ibyیl%h4iG 5%h#es[B>Ȝ Tx5ϿqyÒOɒSv0W@eew h*E8i /ԡwe]1،xbhmF `?ŭ^27$:_ZaeK˴Px h سeܻE\a$$ w Pl@_]I-['zO"-ꚑλg:⚑DVh @gre+̉t3Ռ9-kt4ha]j_Uiex4퓥&z:j}| Ataj.VOz|7's+!Dy'WcS *tgkw|u %XvglYXr7QM;ghyyboxE -`{:l #tP0 `?g1ʾ]zZWj#59Ye<$.9:@ }gX]zDo.Z*9RDXޔ&$)3/g#Hbf+'"8ˉ;@G gcAįosbݢW4dF2L"a!‹`gCT\f~ց'#g5m9TWPdi)5ز':fPOs\%[rS H(gM3;6ch -AUD%Cmh g x7jV#'xEBKVצL;2<5  $)g ev_mi+A$`Hi,뢫%R}/ɐ%Q-NP#Pgp[׼JNJX5}1pD :dP%M6r&ze™.{ZRgv9:hE3<(ebj]aΐ(~δqkgIsӶ7ƅde%d]9Rԛh ^Y>(k+9,L&e N>Mm{d5OGulrvn!ac3e~vV9--`ޛ&G{4VT$-UC8ex]H=~D#-Ͽ]d\tWPc%v! 5f}vO(30 @c-Pw^4HЉ%08bI&gl1e1  <c-0u:hG':-xIJ4wP2d:.1.ZY c%ptXtb $$!XůS-.f)<_4a 7>~iN0kҹ.Z%T;^ -d@c[iDm:ʨ9xokrYj':c2j98&w=,鍭MT+};a2r]j&qI2M'%K^[_UaC0l_iZq;&˛#wJlnlݑ(Ԧ_a(מ_Z}|1Uzv˴Jz_#S8WO`DvKkymR`]_IC_uIa0عN%b_Czӟ}u6T$<ݞiMȐA_mָn,}XXCph9P {J_­l}DXh U9Xd\p S:_TL= %<=kZ=#Ki /_]jGh?[ԱߖZ_ϣ6(3eIH_`-fRWlJ|' ,Rb* *]]g zK9jTTN% ٦n 6zDr]puܲщV_mUv G {^E]e魌MO+ܳ+#;tK}%EQPFo~]`롬ۦ,580}b7=G^:C2M[4g+o`uE-nK`VS42{Vjc M~[Zy/;tM(yhR%fJ1g6d:Lh Ycg#j^?X@ڣ@sГ|DxYmIuɉYY|%喭?ڑuꪺg2RYβE3--O5Z{LTgjl钆 *  \YNagKW/ U4.C< rh09 :J~YN)沛6@P-$"w-=Z0h "5@)zYNQZVD~@{@+/=o0E6 LMLFYT:M[ 4"Ma'a1aKtP~Y`l#60#NM䶚h%=+HvYNZV>Y~ SWFޅg"(҂< Plh~Yb~͐~ZD,P=v,Jm怇x z[FIf=k=0(຾DwZF0m@#(O0z["v?/gUVmLXFrC{}̿~Ycr[( N]cgiR4&DO_):I+*X`%~YCAe6;&]'fOMGMSZqrNBtI,~]3Ay,[ N~PK6Գxҳ5Q! d/ƨ@@z[sboO8Y33[jS|5%bXGs+45HBnY Wl]xBB 0OzR)lAڕ+L XOggS Fi:.I c*+-0/-*-./..))''$'&)''))1-*)/,**,()*&'')),*-/,+)*',1*-+,*(-*(()-+*)**+)),+,*+'')('&$%'$))%%)'))(%%&~Y  &4[@ x@9鎈k,R)fR'x$zY!{fId,>%E,I vW`yCdigL Uu#(1xP@R@W(nW}_z\gU/v#ڴ pd iRvò rWs&$jy@ U`yrM4KJ@Bf rW%=Zk.@9XoE.)MeڊX@]grW UneI|f6g\lԺ8IHnW%}[O,!%h`hcֲHh{'rWM1׉}MqBfs PO$OF=opXlrU`mf 0@\{?5YmQ"7&rU#~EbeNYҽ_:Rwƛ4F  nU@=DHP* )nG)6앱| &|vU ($4c XoTr$uhvSa|G>'+&)Sz\r!I$vW~WC yL4c kHH,5)ITAK@vWFQ/,5hV,!=%9 ؂WY%53]ppVkk\~Y叀j2@+KS5~K|$ՎoЃ vY3lʙ: kMUo4D]JuzY9dWN1fK,kW("<zY jK2%VRODuʃq+zY#ֳ4c%y.O2d=ZEz ` zW _zd&f 7s{U߉]2 Q c qrW#mɪ@FqfIv3EGOdzWAyB9D 铸UOfbւ[ SnWi{zAd Õk u&@}bIrWds_VɓckA1=bLs]A P'-zWeJl/@gMki̼hXa8rU^4<%2Ӿm%{,\f-,Zs@@nUe _,5g* h!z; nUs/He  4OIE!hc ~U{}![ PǺKK>(8~WG#K}f8坸o%Y5@nWYgd\.#yEk~ nW۷V>.A3@y6kKsUUG_: $rWkN V=h3*wĭ7WԒ)gGADG zWKJ5o'j_$_=>#U8vW@:OU(6Ⱦ{TKVR%ҧkE aAAqaUWk&vYmB`6y+5k3>m=~R(.4>vW"+' Pa%˻y͖zgb&$W!wAȗ9q4Yn㞿3Wd6W]Ú$ I$~W'Y#9 /,͑pqKpL i~UG:m;U8MDD֪o6 iNrUti" @Vʵҥ#؅q)ZkXI^vU<.&tZR *|y<瓢~9H[x;4vUܮ&4g̰1ܼ~c:[3VTS %jUsn rb YY۹Vt}P@ rUvպ* pXGOHrUt:~>jHU=_[mtX:ON.zUt$="*<{zsMKx°SnSK'Чl}Y-c0dvFsԓd6Y §SjSH54jm OYs;ޜ{ ;3AvSWYH'c@V`β]ZMCg8rSe6O}_k㽹TSfSsr7'&q1/ݷ3nQnFH1zfkRF ?p*>,$.rQKK<+fmbQ LN0IxnQKUbg@$Uxl]%URlU]a:P<3 jO˚>o_X׵."PLRvnEiptρjOFaRZe@*LiNv 7i 0gLfOL/0hV ݽ_qH[ p4|XInOKJK>VV}c0-v{º4R%i$bOCBǗz[JNose?6 J&:rOcBA~$h͢%T |1LjOmwH>q@4c\:$˚ /5@nQ]J/h4qRf@/ $rQcF#=)R`eq/*4*РfSɨwO'F@4ch0ZNP0jU(w8g?#4K:: &bUa6Wֳ!=]t%3  jU,K8ԷN<J@%3gIY7 N 0 jWUmR ^f c&k30$3@RA!zW h^j2s{P@5K-Xi1@>@jS㬯eYDUmms(i X'o4 z:rS xVTY DHY^>:(>LbjUg dzM:ˤ@6rUvhR8`fYV>Fв, ƗjUv,u !]4w{S79:::97<8;=8;8A?=C@?bO"[`0OhȒS&*,# vQ-LZ=_ KmVʝKNoA)@prQ4#(̚~E3iC{{8Q0P :^Qc3c>фQ<@ F;CbװK(|z:i fOcz YRLМa>Tp T j>HnK U[63k@%M~5ڎg5E1I.MTjK#՗]^91G-QݭߞmEe%j( ^I uqb(Ua>eC2y*2ux14n/Y jI4_:pqs(^StVR P'IXhrGM(2_Z;ynXDaYfic~2Acv Y &PxfG 6- N<"*z-89V `؉ @ץ(fA&fE):+\8!"a uQEbܪ0%i(nI{J<<>` ՖD̥5aRa rG4_FO* &Zv[ٯ3*;0 aTyfGA{{u>8k8+ݷHnJ5? jG+  D5L&l˹v_ 2 |5a fGF+t\:1zְ>~wOIڎ+p!{ CBmCXnG*_j/xAxӖb+Y,P'+`<<LnEPO< 'Sh>SOXTF.k;QnENڣbr8zY^_ںq6Îs)a0.|p4jC&*{\IDGb-/?[Z!Z@KsCnEi1g]E$jM&"{ WjG!*v+1H4]}ܺ%kC<E KrEepdj\5G@BZMiy7]$*`nE[t4tr9>W' s, J`>L9t\ jE+vJ֫\O LʳfIkKlH:/8nC|$:ʮ'"|zQb<Ԟή DG1T`rCAv̉^;Uĉʢ̒u[wNxG41W@jCr\- }3\ |>3Wy` V&`2QnC[mHzރf_*O틪Pl_(|fCd{3G ͜?#s<Ї"T;jGk2wt 6cϚ/?\WvUP$k `%&cjCN+:)ty!cnL)u}M .Q"@`fEA+ _z5s6?ؕHpAi;ܴЍ [5zjE,e8BP+o~YjgpuQa̎}IДz4HMfCiGD@2lj TQ 'xo 0cklBCnCYA R!Ȥ*l-`,+:l5 (HVJ @݀nA@gA, ֑c@`_ !bCZg=dp{@K Cvˏ.\Z!`_AHլ_a7^Cǩ?  vTD{:^!&T0 ZAj4MBZ%OiiۢAKpK0O`P|P ZC%erb A[j.{Z692(UBPI}_АxbCB+[Y4mjd&]N CE(2X\P<g]cQ%llZEلhB\%UɗfԈJBbT74\a>y'$Pj+l J҇_NA]I')`:Y9g1yeup)0]p}`׀'sУZ?g1ɴy~nB Kw,cȁMKቀ 6 Cj4^=Tojs1xQ<\}]$OwԗL lYA xh8Z?y)ulLߢ i 0 ʇ@6Y 0xPҷ%vZA)-[QfkRߚY,t/͒p5s &VC)&akXd$*vg2嗭bpe%G59Z P8W*yZCb7C7QMjuK&]甛7 'i 4oԀmҾ55AOggS2Fi:.=7<@:?<<;:=>;;4=<89879597;:769454:9:8675793:9368639:75857;5::10221Z?H*WЄÁʙNVjZ$v982fjT1hɩɂԠS V?²-8@#wx*oYLlge0@7 5 @aJۢ ZAL%ah#Q~YQUbTx?:YQê@jSbWr/`[ ZAۄjXMH5[e[1KЁȕ" zQ'Ս{ :H"1#6 . J*f&k5^WZAQ"*4e"XMRV&eHNhܰa $RjMp(^?T)EIOMYX)rQ k %@ϸb_!f^CJR`hdcWQ[1VO*xfP[ z\ (. LZG^Ea'0h2˘Mz&K)$|SQaÃcGB".1)n:H^Cb, y%M$K-OFT*ģG:jIwI+6nvZݱ^A %B+M'K0pkfSk[&RYIg1;)AuೀẼ&rV!f?*C(?HЪDw'p}-T `f[H:T':}r4QG'LbA"tut[DJnum3^RAN\L8`0E :hk&M ^CP ϢhU&}#mG[2<iLxܙ@9H%Z?e->n"g{oޔˋJU7jfyO Ƽf>.\EbERZw;i9ix&ry.޳},"B=IuG(r@ 5 f?2˫Br$&̲;"FKu"_,"1d"wxMQR^? [=0x"%` b3~fu,1Uvҳ $_(J17̮Z=4 ,L@b b3MwRƏd.rHC*6K̛G^=FKp5t OAJt~z%Ko5ύ;<5`݀ԣiaZ?JkC0 Ҫ> Jd+ZӴwg.JzdwA_8VC6t+{f0dM['a+qpK ApthZ?Ht+6`L_߽ǯKTpҐ 0n  V;ًB#n݁Ȍ=W(TѽY+Zm `eQj rvtVA+Pfe䁀!"2?m'HN xu+(j(IxL^?D+&d<DiX}_,d v&vbErQc j@b9{Q\u2>ir bQ< $$\aR=Se,8@@d?!w~3ִ%F6VC4\ :iYb=@sP&T!9+1= 6̈́qM%*-U}!>8b?54R3 n6Mʟѭ)Y0#/ qQ>F ZA\jϒ3Vĉ8!҆CZ/2ܷ)< \35XƊ 5@` ZG${x#"y?RVN  ݶ6m$VtbE[mN$#پ\lvqS)/JOD?`l X8@[ZI{d6ϝmڤ|C\h` "X RG{*hr'"Du8z/vS8qN^~h@e(@VE{*hY:=EDxe}j-nS-S ,: PKZCR&GV莈LצnilV$'(z1jS X@R`|^CiF6Ϝ$DJuj4RĖO%8OCE4 VC3Xu4yȼeѝS-` hQ^ ` `zV==|G<;kHdʿp?BY.Ơ L ;@9B.k bE0b)CLc%"2pbԉJ`(E.x@s `Z?{Є*O6o,-feDց10*x%8$0V?i/Rrk*-&NjN|QC+H[>@!ZC{XmQ*'U#Djn4V0NdS Q3 hZCYY/M3f ³wzH  a U jVCِsY'2 -!2muᑗ͙̘~Xљ5;u~&V?< D&ҚY lS0qOTd%VCqK-b%d=X+Ej<1(#`x  @'l2VEqO#vo/j'I80B]9Ut(w PNEýO$mJwujG7#uٰyDQ"@BPRIb5k V\Rd<@=|ɗimz`ƞIRGPY, |k! Wk 8BjD^x4{Oob&NC ERv DZSXI1{"0֤ JKnpG`-fӑ4WJ o&1o;?` xB=H(R?Vn,VTy?h%9xrk%Z+'LlRHݠ@`C!RG^ vtKdRJMB0QNldS-x 0 0 JC^bΎU)^H4 haL?Y- K*R4_abL3.UCBJG^zͳD[ Jd?.uPt&t:OŤ RO 4ԈAX0Zs,. č,</80cp N=bʄT@)f-I)%fbE@eG[,nZ0:5 M& FM1͌Y ;INZU. JE7hY^Tl@QNYuvqI`'t9`)˛KuIh0Y8]E죠 86$:NUuUL,g"MA' s 4QPtJYTةf´k/C'WLpk:|N0IJQWFD/NE`=b[:P}80=i㪘JWuw,^޾Հ@Pr l% 11 ` |RMc#aL@)Y"\S u?ujtL`bHf JWEPwíش^JfW\q1`+(.%HpJIiLBTooHۭ#hS 4,JŁNWQ Wg%KA{SMBegS140CNMYjêo[1PilC{A>~*V0: A8FWQwcICTER02LSd!8:`<JMUr=%> 8vϷ6YP/S耉|HxJWUmIC9F,+_Պj5J ׋G cXFMUfz8_>O`5YgYI#O(]ġcAcJWՠߩrZp9H ٷXl5@d*ptt0(YJMutL#/e)GwgNw!tԱR[goeČN6O|ר(`3QŔNM9"? ҳ@0})R_i+-' %L y chLFW4m7X2T X|$r|0А\7kNM K<P'`)r 5:JLRWK[ <^VU:׀WyY~:6^fL`FM+ 涞*=+ (!*Q[J?by[.N.P-acD,T*IYIP> >O[z{vȯX'W{_7J^Qt\ @BQ?Oڟ}cTͨyfh$/6OBx}vُ=o&kք) fQ9:xE >OSCo>ω]aa``c{^1B.̽vJI=FUoF Ёp+"8)^3o>M"ܷ>U[z :'zX*Qր:9+ uتA:G+ UbRPT=ɛlg Pf/bزP>G+HxؿgXm?#7ҺNtmni(ZP+HZ:\$>K%7>Ux !<ր&P30U8$Ay]:MSUvd<t R|*[P( 7 \@9BK=$AK&_V0}5xj fbT JMCc}\@ҕ68w `f٨o`I:O"ѹ-Lfo߱ L_Z|BM=E[cXv_,G ;U;K+WFM}Ec=v^^` evP%|&@#>ȁ$BM}AֻjY'( fsᬦ( 1p*>KGʷrYS\Ӓ4Za$PKdW \ FK[_ϡt}]3|5BR*]\ rFEY-Vǿn8 ZGZK!1*LR'S_BE`mS:^K`I[vugTpMap 8>E:Mmyi\<*UUN\@>EA.у3`PI!yt@Bf z V0?>FAY3ٴD+]Dr@GQpb=RM,[i<~ 4p:A ,-~ (J2}vmPGpQJ = @u:CY&CĪCZv{d cq dc0s8d1nBC@[].ˡ @9kiGG*ᕯռbX`؀]BC3YL"QZ+@x-xjfYALtL\ F/>E0i+˕AHo /ybohJEi)V$fEr3і{׽a#5U<;}F2ͲʦǤ\ >E='f(+~K*#~:ۼ׷ /N3Pց E? VXhx:BEUƦ*Q?/oh%hLnkC^NnWQ| yT4T9FCh夃[~q8 BI3Tt3~ё؂+ arD7/B;iZK`Iue]3˲eA}E&jU3EzZ'+٩%&<`">9T'd{R#w k9&VF$S> f4D  F;rsZ0z1xzeK֘va*Z q flҡ :Ӡ<B;Sa_nd.pIJ y/:@7F;/b _ CިL}M5>>7F2i`FAchcB;ȼՋ\=T LwURe"s@U3U`PЁ`&5#F;wxϡN z.|n O)*j@sB;NsV;t͋5*?I򵆥]gbNna(ޕSQ@'F=q;[${^) Fl&{: .HZ ZX\J=ڜ\ !@ePm5m,VT@ZH4y\~@@)">=V;^9FB}V_cT +_;k AO_@B;\ŭtp-G"AePm6}QhK89R3#PS8YLWԘA$F=v;[Vx@`n#axV\KtDO`K\ЁxB=MݬvDe#l1?7Y{<@ >A\&u6܏Ac }5۠@e?ǒjP:W ~0Mm,B?nV;g/Nz#6ӎm@o)[0DR}0 >=lv{9Xz'6>[: 0P[0߀:?obֻ=DSmfYShE*ӟnrI(:<-C9_ >FAlvZqNz2Yc6:sÐ3{oQ@@J?R+Ut+=<,sf&E#}-nTf[#'A@& | >?V}Ew;{!EN}˲D3^v沒txx$Lot:>?+]rw<œ3I׈d.A'pAi % t>=`).W3׀މ6GJ]b$2gB|SwDh 4:=QR qfO: zcPme2g!%9S$ F>T0;(Pf H:?Yc:VKNXQtuRUB- <& , B=Ѳ5.6N?@N0Pm2+)´$UP*1W`6?SgXz#αDc-:k&m<d%ˁx:;*Qί0g;i `TynYN)3"3$h \x$Pwt_ :;Y#9j=T/$:-7boّlR,1P_p<f?: >;"w~x9.zQm_~l\sRH(Rx|/UcN>=RzJb"` b3=J{(@x'Ltrtҙ0 F;Xfкlm4%0݀+ aHt :;)SVzE\/ @Ttu0Q.hHF;mbz!9<ch3[;>=::=<6:97;56997<<:799755468;96;6343667=6384;6;88796;585797899FAV*bVzXW~hȭS{TooCrT 'o3pI~I|:?#4EzO(֠LwRl@nǀ0nh=|:R5.)>A5ȽKҭ YdC9Džvb !GrUn FAYu'r< 6͚6:FXP@YI\5`J?Q{W:`a#6|YIkjMw7_-vp P> g02?^xJW#E\jWXk@`:tpB=Y^zs}P<(FU6+3$IJ)x7@o:|ՙyB=&XO/Nzz'6Im6kJɤqi f ofqJZ#&fJjP6A}J=:檕^ zQmiKX$`Pm $ E42=}6L1tE3Iڈ,yoKCjmChhTsO9k)qJ:=5WS'mL4fo;3 *NH$x m"@:=5C[IYVnrP7b3y5C*JՁje,kR,&5*Vٯ(Ds! `\r< U>=ާU'㗠WDT͒W3g'5;$, ot!Q:I=h\B!:==v^/Ϡ7Dlno>R!h5VHhP@ `P0 6?azIWۨFu[VUbqTbGwI4 hC#&69}F?Cn[7A _fVQU -Xxc%RzP@T@_nNB=5{sZ N4 AUV$:*M^ H*"j:H\:=Ŭt}D/md#24m:͒h{`{T`L<~M+IF6;Ci[d~WhrOՀEot@/dP6=Wuҁ @ˋȖ>;ɦ:$<3RG{ܽF?P;6uxy5vhoC&Ƒ.@x$x5S4v>:;ý 2$V{-\MB F#d>;=ne' : !U6K^-d1yZߵ@028c䰈-t>9û鳪z/ETs{S$ĨD0XxC`kj9L-6;=B Xo. 72iRjA^ [IbQ6=SvfޭBfYohv`/pبl't>;}su jBfm;YOW`/9Qo, s 76;sXm^,N~XQV+<{MC%xB ;jh 2?SBíw,z*s?e[aA 6(@ :=5aXu'=0jcEL\/@ y5LP>;5&{GKAUm4"}ԈDm`$Q҆Ttt:=K\_ 6QV%O"l3f"`I .X1^g >? ҧa /T|QsK*J$(Ax$o` f $lpT:?55YU l>uMI_NZ(fzNY| p:=}Ns޼jA/ʜ_lS'R䝊:c( z;>==%&JkGŗW n޿(8tm`\f( :;!iۯ/zPmo^\$"X0G7$f0*=MRs: (Mc''JBd(6ձK:h:6==F&۠D,O5$H} XhV80 H5E"Q>=mQǰ\9 P7TeHQU2c!T1:Q-1!K]`6=a间)K@/Kdp7a~%1.Ma'2i2=&^J/'mV-jYQ)14/@?0Ph/a:?bGZe'q܏X I*QDNjohث`lX6=5#k״헕<AlU:PY"u0ZA,6=RnVZ; {EYm@&m>;`{l5W6{5[݆ UxUv.DHkJ0$>=akW7N2鈮{VDEpMqxdž|P *=SAK^JO$eir3)T̩+> j|ox@/:==Ɣ֛髀" b/yoC0^z bNq@З-L>=5R^&?8Yݚ=5m6d}KC}]=-J"_t 9wWe>=c{/4K(_- Vi3-"@)y}M.==α&D 2onYBjoERh60$/|&s-.B;s[m~y?tpeu⚐V׸$P`J<F=i!_jk^5K:LmDldT@_:k_&:;`< Eͦo2]ZFseJ"P/0;2wMP:=b!Rk^_DlI+7m }`S>:;R5bKoteLL[)s# ^y `˰-|=Fbocr2;ݺrX̿>&22"X#`q57Ǩ`@)o߲D;Fq`x|@~`p3 :9Lݬtjtm iBD-i ;gh|C t6=5{Xv.X̿I1n?`@f AUBT_ H2I5BRVK֬.;}F jr,=_eoQn/&0Jpp|\ #>=Y 2kdʝ|P<,J@7(lAf7;:=].j/' z DZxxI<T4aO0 ,4wP5ml2=M]&-Q۸7R %$Ru. +KHBL 2?=C!ꅮ%~x(H_ӤL&hau\xPsy$z>=ޱulv-ӗBJp[ݲl=% %Yf'Pr:ꘝ6=P{jjq @7Q&?sm]_HSZs岑L΅!*(8B1^:=ȱ@"p#6Ua&g%#|S%T'`|@:?^ڬt+i·R@U.;}:&IE{<B`/  F'M:\:=E׆nQu}Yq I]( < t:;0˰Ҽ=H(jc'OiWaا@]N!Z'2^6=cuYv.ue^ۊOfFƌ  V@@SnG:= b&Aڊ/?ν R', `uBM2"MI@fIBt$&j9%w}-!A~X|>FPtnQm;淕&8T`fFJ֫8AS"#PAk&pfIxvSڭ@`N"ڗ#i4 fGPz!jPTk&R-pHh`;QmN@bIk}[Ӄr @R-궔Rl),D~@9 VH^Gവ˶ҭN _VSlͱH l@A(H^bE9./<=*M>M#u&U4u <* ^EDUcYօ*jS$alU~k!၀7^GUe[/<- !!6WP!F(jO1fI,(+a TJ IjH.,}&{QTP^I45~J uS b(O :knR^G{'T$ q&uMn%NtJҨ R&VC` nSb%^N49'j\ 8֢9ƚ4|meHrQlދF'"kJD~Fs"IPjQӞ~=NzjhtDœJƶs8 ?ʠ0-rSi4N<@y`*B xoAR 蒬`HjS+q-t@ HZc(jJ@nQ&>*4Ӄ'TBv ē% V1j\GnS,5ލ\>V t ̏^x< =04V jSdmNe["U\TD9! oVnS4!^?hrTW*ЎZIc >L>y;خnUTrrkrN%2ҿ/a8tN -bSᏯ&39kdƾgPIerUI,hT6ֿ` *& v(CrUn-a/ 橰J)=r{#,02nWx#&D\%Pe7]Ѹ*^ " OggSfFi:. NkY.,*,-.+-0+..+*-/1,+//.-+),-,+,)&)&'-.+..,1/+.+,.--,,/-,.//4.34122//0150/042/54647/0131/2-jUtvCיNrWh1V#/79@ 4]/'g$S r, TrWlPFʗ!̊TΈd3MѥGU"h unUdd[&aN"Ҭ}<oY>au$ $:rYd۩& q*`jGLKX/(vWdnٺA`Z"mDj]~9N(N@ jS`z#u pӔ]5`&y@@.APrWd'O(lnnI7Yy IVz rYnMҎUJK".-&IftxjLjߞ&XnQtTp+"lF=#[(v"vWjMa:OxI`Yˬ1=GB)6%l% rYj4mA}JӃܣ}'%`s!7^XnQxmÉFO l)J}S/00hm<rSxo,'z2%!iu'#m<މ`3rWllFZiHK-!D0-xh!Mr},QW`zSlĨFHl =_3mI9*"5>`/ýjS0-,HyKby/6?# +xA?K~UDZ=pbm|k< C4 ;,gXrQhgRr#_qMh76\Q MU=zOdrېjugCy'䰡a4PlzWl?Hlk$gLbHV`rU(eDZ=/kx8-ܼ8ovQiM_Q|5D>}|e o>vU'Ix![lj)CoKr |WiARDMjE3@-s>Ql9qP Ju{rQjE_k+{])_ZfBX8A`2rUv"X]xeӝ_=,O5D#{ H [ٯG{pC@weTp\g&ڱ HjQ(Ş.XZ3%f.ۉIo ~STv Sm=݊[*='3p @W4Vt;(,U)hR|䘷S `>p jKv`-jw _'\ ~M*#R,4l&ڳ]lXx.@w|#+BvOdK,(dl1g9YOG8vK< (}RC۾{ ѓNizrSYx~oD.GjomxA?S S :`GbS5);X@;L渁>+:`BG=@a+ fS.r8حgX~_|y[\*$SD<-zS%]uyw$ /dfK؎ FoXpxlG:з5azQh+$GPx,ZK]0wG`U=xF~Q\h+03G3 \Wf RxOKГ+C vOVy1? ߞDU$HB\Y~Ui ?Ҫ`R}YuZyi;E(pt7rnQVrC#=fwZT`ex[)x̤tvS(Ngim w(J|߃ WVX'2Ky~v@Y{oeO2V([anNtl] rWij]!n:؟eYRv2"T)#H~UVKhiSrkyQcp<*|:<+[,vO$txHۗHm T^@5< [^jH e?&8+-px!zSذEX<υ3wh@ٴk Lp1OggSFi:. åQ2-+--0/01/202/010/./312724477:3574555432/426:<5741706050///45349704235343453433.0vQLg`ktqbaQ;Zr#hf)<(C~W*z8@FP`{+w@EzQ'% [h5Kkf#ј|$(zrS1 ,[vL5cQ.;w -6.0 0"~USNXv/3\h65ŗ}ߨ#BY8˛_@JvSw];Sqko]ҿ,ݖ=w``Q zUwHXPִuԹnqC_3P/`TzO +)}q9Q15 j6hF8Rګ3n//@ 0vUEX>!`s;}1qoΝnlM(F5P:>`UF[vЉF4'5q-x${Z 6{TIvODjm^:_'?U&@38M[/LqJP|2R* U:>Vh&E^l;dHzW +yFKY 0m#8NqKw+vUn,wDn0"ҭqG,3;$]} 4:W뱪*?'F:mRmsOPdopԫ)p}@W Vۦu}&C }1>%9o$A+A$rW׼/O[Lo֥ٞwIY¸~'N'1HyFsfM :c*:=%@ϲ.逡[%snh+n2+QpTvWǖC$InY'ҝ3I|%Ē hY >hPYxYQmW9I 0Dv.=3ML)t,gV';LRߔ:]ԑ y:˛efqV|$ ǣ>yp%zY"/{_c~N #b 8][鞤|at| &cIWBW#L떦vfyꑀ):g.E'` :$<@r]33;2mY3UR`gb hHO{#74\ ف\ĘM~Y 1 h)](f:٦Q9/8XV%WY X5e? !\;&[7ZֈX_2x].q(/5E]$ɖXV&&}|*  [ L #zzWFM# j[fk[k~¸F,0otCh|,Us94{d brk+DU,w 1(f*~Y!wpr S) }#&Ȥ4lp-$L}bPC@4ŀk\+~Q!BvMN,E`br@ޚTOUiɺnwCSMČLzS&Ֆ54dKL ̖տ2OТ`@*@\WIs.-ȲL':QDL8L1jW  .YrQ3nE p=>,G!YIQ: PtzjOЌS- U0"_uf 4gg0a4賆)4~Unw$^~9~z"FkVԺ8apsGA$OvQj_M= bDSڝVAL v TrQ%4 *m5U:N} _*Z=}`A=Uat&bˡR@` >[پ75$$i_'X$Of;~jN"&Dפl6,WjVpHL4DrMnݍ`X(C1}oiM'p_ēV; .1/zQ!2l>>pH"AkHUYA@ODM7(, f;+SsHy埢OLL<7Ӵfn{ vSdXġ @` 'Eշie&Lm mLjKds_D)WD<3떙3f`K`NZ{@fKdԤ3/~*H"T{:dk <*~؇IAtMvUaTev9QZPVEiki|:jMf045[U|B!ާ6WYEj# Ӯ|:BFZIh"k"=De$0|H?dhH&(zQbL-iuy<=AVS) p<rH`x&r^a TZM.:f@e=MJTzg\!%ْ.'%Aw g=PA^G!%WҖeylClחys% 3Լ$7&6?&сX].rQig>TU"hM@;|0fao+0@o cb4IjOlК lO0T@SMf %}/hxfIlT4ubu LD]v2X ҙ*Bu:O tZ=inQl1V`l '!=a+Sp$P39@'0,turObvXwO/L@PgL˾<(_RlS `$x ^Ix1Vb)uh@Xʒkggp2vV00DWvMl79P ONA@z|L&e}d6IRYrOjq@1Q3'|U~~ hG`RjMjNRUL$ R/SZ ȱ: @2mc ZEhE7>V& L/#KSWg˹( )gvzB nKnYf]5Otd"*`99svP@ љ!\58(pQZMhm@ʲHDlg 2oTZ+ڥO3qB.` 0w70*OggSFi:.leT100304,03603322635352474043//33327131410100252/4000221/0123.+1.1/1.1/+/.///,./..-00-jGjmHXCe^q9q1fU4Lg.6 xrAbO湪"G@&|yr3*?KݱA:&zMb㽃t׼ęH@P*h15bIvTҺޟH8B+P)= |P{P|ʀ]<8vOjmAf\*kbi!P˫ t'BrMbvo}[?oy:)r x:b-Uk-F.-%@4_'^KtN-bth4k[Q$%BvM9Gnv_щFj%+֎Y=h> `]fO0XKq?M 'ksDL-mjgYT`Qƪ rK[Q639㈘.koyDCPe5,>:6pգ7nM4F*Q 1OY6+艮Ca 4vQ휹DI̚:TV-I8R `>`ʟnM*Z`wfQ$Rd3Io:)"0$yJ@0E3 H.@jO Zҙ4rbt jm>̃sQbW]- nOnTvfQ56odݒHVU0'TJvtfMj˅l&v$pBjlm~A\W 7EljOj滩R5 $@KV{wҺqb%ChFί@ /nOfmafZJ9u|H.V5$N S‡ }jbP(ZOf< 3i4g(J dh  TfOdqi]m ~Ӓn6fM$p.@HvMf6N =B萀Z-Zy:E#TЃ`&2A^GiitJ91@`\|Y̺oKfض"ft* ~fcd~fC.wUz~AĂ _}2ӯ:uf7ȡbA!}thjE3΄4[sq STQ{[۳ԑZ'7 ^ /[| XB:WfE.ZmmM p-VD7xV~spp#T^E"ۨ ~ZgޮHW* vb{:0k\fITNˮNO$0.Pq GGTٕ a m/1S&nGbsvgq6-!]p60Q4KOVK0˭L|CH稵1]P@ :0aH P9bKj&'Q'F TRIG[LX@0 ~  nIӶ LQK)m KE؂%[@19,`#:RKhC2<|+ p2.Xق>CLze2zKlBe2i@0XӺ|{Ē@M4UbK5Ee؏坈I0[ʺ8"4::}njKVsq^Kn %01<C`2TҽUN4< =6,hl=^Knls&ԙ$)zfiI8[֨6Il vM޹eDV+Oū=-(BZB@Cm&68U I`bKdy2!! *Ȟ*v >9%+er`}8蔠rMAio_q`W˖V_6:|n`]REx/w`G n֘xW j& RjKfys*x x㴥mF4p4g AnOav-v32wfb!]Mش%g$C5@gXkVEi9ٙJf__?;+R޻ ֎<v R@JnKsQUԉNHI` OMJB8;0bՁnOLmK58ц"&d+ފ&#EDž`:1Z! ^E9ӄv**[](cCObP 0yP1jI..aRO˨A~5մE(Pk>^ڙ0$[8)PnOmvtʼn&e:IR hVIng4EmUU<5$(\,lO%/Ui{WF ԽeDbGag7 yF1N7W\Fya _>kP ibMao5ղn_0A1@HkL8$; *HBVGnm vÉk!1<+[$bTx.uuėaBL0m%bKΝ[UʼnN au$"'31PIoGvZGNsESl4枂uٹxQ ȗЀ BIB5(Z ĿYg-u.1|%qp953VjK=)ʼn% mTvTBrCJ& VCXD[ߛ6;%V"Kπ`nNIng }>'D MzڲvhFUbIhl|@U'*xb*m5FB.tz:$P=-h-f`VI4iVms:0gheGUִRYBԼO+))VIh%Y69 ]'WV*-1M h`v o$VIN0X6oVPot[YBWė\VIoESlqv զZ؉ zfOCӀLRI4[y)_8yos8 Hz;GVEə/8؂毎^+Æ͸Ei߷YwAbIQ)QbĘ%J`isl}Ͳ$3ze;G@<4BEL6` $ =xF ޤeLJӛ}N$^INȥa9p!P79ìz>@sGZIUma~**򼲼opE^uÌ7\ 8LM{#AJIaGi6m pCRTY 8.lN.pIOggSZ Fi:.f=U1/+01..,00--,10/0.00/.-0301.2,0.-/0270835325211/11101030263152/62.0.2-./023100020/200^IFYزʼnӓfֹ{o5o3suo~ZIW <)ʀZeں~T5p 1NIɎ,@gCPh6QHo-d8ZEݑi޼kQ1cz&mcaVIm/jٴ-yQ%@e=Ӥ&I[tH 0&NE%(lڗwfͤF%x%2RI4oӴN:2V)-f 焆'Q8JI<8F|8-Y,7$_b ZGe9mJDZd oٺ(s,(-f<%|OQZIw3CnZ *0Yֶy4˞j }bE .LRGNXy߫Ij/&I\lۉ 1 JILhcekL0u[)o3c;h>0ZGy}'ݦLp 0T߮żm*& av49|0*RG4q=LV͙#n韧<5zrww ԣp},VGrp?,ѢhϷ\Sme0#7fXDˁKjU`ͯ$01FI~1~!?[[8$ @TG.[L}֎@Ee da YVI|)mNl# ֐뙴}sn*zKk |֘NIl1"]u,XӬ?6[<ٟ&x`oI̮lFIfP2mi[')T) ie,5pd(?b {h KL NIjcmmim9Љ'`)D#6Ч |QPqۖ XRIfmmkrӆ8&Yұ7|3Мb8Lcf! RIa=iM&d5cTKRY؁U0 IV-NIj.! 5DKen[ @[T`X JIlmfA+ 6M3'aa `<&@c(!tVIn\otbIfS*ǶE5MK% fLI.isJIaV1i3'2b{V4z4ʌ*%NIn$4y X}Zj+TBƬ]JIn&m̡he}hvrްLo 8m;s T&ZJIng,n3O [g[Es)x'K9o\CrFIjxT;!Vxݤi,Zc`JIjm&؉%iX"TǻT؊]w%$6裀FIn1V1r@e%۔ZQᖁhIL0+ QNIngkd `y7^,N5{!GɶLHBIbMi3NIa"92i5#gҩ6^Qeπ[9`VIYdVmrOA[WL6`i h @ U7 3RIammӐg12`3RV4/R TscU VIwR?hR`etn%ԛŅJX^ $0@o`ZII<[iM01W}+@$`}*Ƣi\C p/x4NIlfiZe趭TOz-:q (NIptlmm p4><|#vֲMVg%OvhJIjt^ 9sI܏XDIzeNHc&NIbQ>TZ*駖L(Vm HJIlcaJ:K!+ȀE̚~q Mh JJIh)Tn[6 ?Fy e2$@ RI쿶:mrvZ@vVݱ^fM.;iPG 7VI!Vp `y6I~E^'yfdpzJI&'QhP"w.RPh0LxRInMe+iyZ=mit6m S.ǘR A)K NIn!i8 joǖ[TӸѤ\s挀5*RIfYd'b˳HZ<.Ԗb5# f(WcWb7iL NIbh `ߎY2w{%8YN ` NIfWAVn5t_udFKl)p׊FY HP#NIl䇤z+=|_ jgꮓTa3I0*{`JIhvm8 a `O[GJv;l34[ؠ `RIbo`rsA+{cK̮qd~ʣ35ɼ 1'NIhoK02`\M.&vNPWKxNIjcpS-2VKdݖ|er /Rf8^3\ AaRNIlB't Ʋ%OoΊd jـ@BVIfgB 8` Q)myzR.h,|c4$$OggS Fi:.|rZ+3-1..0///0332110./0.'.-0...,1-/-1/(+./++/',*,%)*-)/-/))*-*+(*-,)*)*$++,,+2-/.,76866468654ZIKc V]-)[tm_qe4FNIp)'H2`me]o+_Xga)d dElVIdSP''N@ Yit %o@ccZII69UV3֬eSg'z@Y Wi]NId/wĶ'TQL~lnE-2U )נɃP@NIpR[('>tudJ%ЊP8tPVIng졶h'FVŨOu?9d@L?FVIn~ @Fzk(aqU&=yNIh50KFyQiԀ6 [ G6A ` )RIb = v9Wo$`{tc NIbP[9Ur`45$r tH6xulxxZIbSm>q8Z0n#^'--J]/@VIi]tR̶e˷=ǒ.)d sx4\ RI0i\[w\λ_ GacKPXA CRId6cgs3cL1`=go꿦t٠ǒ4&ٔ<RIbBCo+T/]z yVk}k|/Pv( 0 NIlƦYYf 0ݖu,l)Y!"ThCNIdV֋S1@jP;]2XqPKOE,~ JIx%]e P3al]k3*6`%NI-U[ =@0Ϲf}jUyHk"dJ*>I$gJ$PRݳ#ϐ75v0NI:cwVE6>@N' tJIpʲ3VYcw wfr<:` P&NIjJAl8]{H콌Y,F #JInKuBVS_.GX/zΰT1T $M@yVI>@'NZGLsb= <8ASRI۠h}hrM:4\~;Vs^ܡ!NIjRi 3 N޹)`K5h2Q7 RIjU5M{JsKbR,+`X X:8:VI- Il|_m{p "g*TȇILRIh!ղCuBhI0$>,2̓sa&"" l>NI⤭I @n,YM'g(0t  NIֳ6d'q -NZ\^ce@ahVI܋ض}kՌk.hah0qa:LoFIֹ JC<דI֭s5]Z*)+I8@(1RI{,ΰHň鬳x,R({m7GPVCp +Nr-YTb>p@.NI{ aUCE,[|M.85ͭ@6JI]0`}ba0dO5"տ ʥcJ'exzNրJI96 h=$@WX6Eϗ&]!5l( 0NI]N6K o- }ڑ! vǛVIS1>˧ QeT=ё),G`E̕a㭠JI ` )q@@IMu MP;x %FIy vX})p@:jKluonZaby 2JI{,`$,,a';M| xj $0QJI{5dAl2i ʭhH fFI _ RAk-kM}@EfkrBI) ֐u3I0,^7>_dr ( FI͢!` u~={~GѢ;ԝpJIdS`\-'1fwl)i'õc2 :`?JId^,hk*GEU裵x%*&Zj<&NIf[mp#oss]` :0UFIfQH?8`(yll[7}-,0*sҔ:>IξoȰ *tќv8<>:lii1 0!JI9p`kS cx|;1 5U}֠iJI9e2r4ugKð>@APe.g FIKd뛲 C8O@=pA4>IZ6m,{PU+%g^A ﰤtBI8125^ uY@L@ҸBIr@ ˴MĒIt탺-(7B7>I3F /N8iڿvaka@~sOh:IѹOV"2?K}U#DSi:*%FI]Nlqgت!eDBrNK,m5JIֳ70[X? @"y4Sz}[P`(4BIuD2l:yzra;Ϧ2ЌKI(|FIYKVb h=Rw&OTߠ*JI{4Yux4(Խo\1E&AL,IFIpރ1 ݏzsk,PEP`bJIni0g璉`q FIpkYlc  kKۜ}D,`< 8)l[*BIGcm*<2UaG<Ň.\L%$p[0:Ib_=e_7?8-"OHWOh)`J>IdiVq_/G0! ,BI^ Tejq)T2 CYQ$HBI*i>ɁCy"m|(F]ƯU:6;xs@>I(:O& `~G!>yi:+3h@JI. V~e,INQW' ^1p-#FI.`'y`eu9\znH `%l9FI8o؄Or4f~וNEhoΑ/FBE^CЎquÛkum˻6R inUWB&ZaVԣV:;q_~˳ę5Ԁd0`ƾ} V NaWcx0FTvhRMNAT+daa |`JfV_:Y~AqdeEP_^0ɀfF$EN_N2_&l p-;pd HH[a4>b[M˰n}>'CL#b9d²<*!x,IUk sx_VW=h_BpXY[ՅYU#AV [bM&K藈~oTu=X_r";5T⨕fS2݄k^GC/@ҹr_ǖ $S($1q8|`4nO.3C{O%Bl&I^`J=-/!C y'3 zOiTTg*`L#0&yz1q*h0dH?$OggS Fi:.W5030/214//.0002/-/0/.34213+//..1-.-.,-0+.20654414441112042,-/01,.-1--,*-/0,-,/,-00(+.*,rS%:sH~;nB#&qy9so&N(/rU3<) 5m @J%qki$H``}B8rS&zs 3j 5o8rJ[X,7}:l*ZG!Z׎j @s{B4 ܺfYRnq%^QA otb'I fh#chܕC:"a_c `ujSchfբ4I ?ilY&10ZupZQ͛B-۴D/z^!VPN H H pU; D< d3Yye+fu1 ㉞ ^S6bmk=q9ĐFgc羱RtU'<د5jSIH|ѵZL9|Ӭ!ŴFeS/ ) ԉ}=nUR)ar~>FIb1'sNI~M%vD |qup zbQ7p‘`h<ݳd'Rԉ#8YX) ~WNsTiASY6yV=k`3;fQ 2GΟ{W #LӚ+*ֈb^YM> $)g&vO D6B-,bϹvrDXq cafSkbBOA, In`cK~Sri=RubQ1V=ƒ$=yMqlMW"`!1#HfO 1a놥#Z^#&@tqoc\ x:nWkaBăA4#Lu~~iLҢ Nn1%^MUzc#h2Yꤥn_zM`pWYinO]\}лq?8>ZZ'\Uv|VK踯 z ^GUeaL3WOg2<RESB'aA" y{j;)Gt00uj[! '*EMz`Z0V뚾֯Y/:N &P&bO!R7P 'NS$!#fel'&[ir r4zObTU*nOUX.8K3RV+2>ɬ +:xp= jOTҠw -IJke;$&T`(\[rWTc"n.5;Wz,Kz3*TvU,7qb4IB`:_}uO_qڷOp^zSV jQ)²Y*[YҠAz/0U +@vuzWMeW- u' nI)(j"*avSO,B".Wp뇂GY+4< i@l~Y;Ng& LL~~KZrV `fM`*qv:rUʫ Q0Ǧ?Ӻ^{u:1W׍`.+VXvU3Gka™: I'tOqL/Q8 f]}fDBPbf蒔iG$аEXRl8rW#*\n M>ůXd0k+c*YxuzWyWԉ e:D|!Jm@l+V11 A0z]XMC}xbj Xǿդ1CA ;RGk>&DtnWuc=pBF)Z5s*zW$voX9A "mgyщY?M MbTFkT1*Icz[ 縗6- K@ Mm?t7GWw׍F6i1 8] Km`]?3Xvd;8UI[rKMBM*PoBfVax`Z@~[3!zo(NjFw}jj jWP~DbD.  ke.S ʫLWS41,Qƴ~Hԇl@Kz[#~&':` I]㟦. uSV@374rYUR/\`+ܖ e=5< ~YCC40A@=1WNn<|8t~]C ղt&jp&挍 _*+jf 0~]C"Ϗ<``LL<{7K5gq+ z]]'uu %nE9hte]qz[]";~֕$̕;-SוM0i0rYɉq )rlquK57*<ForY]k=>4 @t7oռ֜bpn|ul0AnYe'[kMچ(pk"44vrY-_X:P335D,ic梊@~ > &KjW] cypZ ]z1I} Z'uQ(:3rWcB+nP,]~[ tfHh/iT9P$ x@dOvYh7 U:8 F{)%5~Hkz[Q;YXL0sgĪ&n;z?|MK pv[Q+Y'z!dc-lnrl"=8yz[^yX'z$`vѭgXG!{ @z[ѺY'LOLtu('HC@ *}) o!@t<fUI͋e K5aH].-,Q1E Ud1.:jUMPtNBMC 2Öf)*0#s8< bSߍ =}`ޤ*kY9|&GjfQl*oX@ChSÕicORڃ,ǰ4J&ZO 46gΘ@ YL)obKyؘ92_a[#X A$^M% З0Ixs-pFX7ZM,St# @}I )zd$a]P :6 4< ^MʟYv e{jd)-+TGlYy ZMʟE}A##מGm8WÓ5}pa!ZM,ХXAGxiu{$&_1|f8%xU&ZMVeZ1RzKI_ZrDaj|^Mm!]-KhAZ23f-u)m~ڶS9f+5:X;^Mn&uyB @;{5Sq8! X ]]M!~ma[h6Qj۔gP#QƬ B_kW~aRmmg 5˻#A36Pn&  vaeesۭћ* P=-D(آF[!ՁLWravݶ:- (.ϖ6 > ͲPpraͫ63{;ޖzS}´ 0OZnB}ZT]tA Lzam8R ~aֽد%niokHJր lA+gԬ| H!9aRC=JF yMjz ujT!A aMېt  0"`ꟽ.9 5t -uJ'8a,ze/]!ɜqC LkZvO$| (NRS@4vȮa]u"PIg&Ycjk _%̦Cr* =Om9TzD92x va̩鴏,Ħ 4K|>ҷi[R*(,u2.`) z]U%g3cU5}%NQv 21:`&[C-~9$RcSˑgRU!$ 0)YJ@c(@< @[Թ&hNƦ_%o/%x o4ntUJ`&gvj@Kxu )y:cc5>x84<؇zUn<D4~~K"0s:g(,[QUx@a0UKDaFzљMM gq)$G*(`Q4`00LzU4MN$Lu}X>zph$AK6A9P ~UC Չt0hdwnQNe `+ . C5` ]cL標-*G3O%֐W&)7ԁP rSeM&0LcGI|NT$4f'(YذT`5^j0U~[$f:IBI OńO.\N%]Kx xzSE:= Hd̜cӚL1 ʕr"PxLx2x~]1Dx1'&%aP&={w+Tcx07%~[ZMˎSq}*qZ*uVk`5+o?  Ә~[g8lS널a QH_e_`QX,zU]mb(z~(Sm]֣[Ul!e$8L$CScfkTSZ<,%sPED@:$ IGjvnSI_n\'NZdґwIt#͟(5&>;<8:;;9A:9==;9;=@9<@B@;B<;:7;997A;<<=??9~SÔSokD!Lfl"}@Sa0 vSeR a>n !5ߚoD2Zҏ?\i@9 Jxh.jQ+6c6I{ `5 BeY[7aK{MtPTGӸQ+avQބa:H@KL|f=<)Xd23{|*|2 #4rQ"Ymt|h2f=wKKCoZ @!C :jYRbޙg%VZdM[qsN.Qb5 L'8vQF J<အAl_oH!c(K (XO0d:TA ~Si&x]֟ό& Tܛe54:j=9[2@>*Y %- vaO]lugxz ܗVד ar Pl2;m,6a\-Ԑ6UncW>T:Z{4 p=ngPM рb/[6E.ra3Sݵ^=}OZp5OLüj8` vU'U]tc9;K5#s K' @/,.zURwtXr <XoHq>ytg{d3q0 rUGskNHVNyD(sXgHݻrrWvGuB%`/su$դ=>)&boazUGbաJժgD} HZ֞H@'H5><(!~UIkKByFE`ӵkd.(/P͒F x_腭nSw~Td~'6%։Ěf @χ '`&K#&* ؂nKOKzE_/4E`]&{P{8^CW-}c ؇]@jEG[T*k}xcY{ki5 CZPS +* 4UXZLnMRԪwA/vSg>Q]jqQ ѣ6f91 ƪR0+ rGx6+@'ܔ3_[9C؆2B]|EAanР U]nOa- .el{aDWw ڹ"ՙ*\pP0aä@nE/dmUB/~"R_@5q0`hbT: nQ -SzO'h6t@27 M0Q`I0;jEآatL> `8tٮБ0gj⋧`TLvM"mH[k]&%j7a8s . xlt(ÀBbrC"×kf'[jk~WLD<ϐZB*FxjMĪma$CBۻԵj06:UA~On-?9\6xoW3T> lLĎVhx` P`$zJ 9Vx~E0lv)g!VR?m9TZCUQCЂ  i"{t~OeXoĉe8~[~k=! yZ˴5# $X 9}mAQ^~Iĺՙ l)fhu[OϿ҂ˉ xs3pp0D'vMALL]:JmeU#{\ ЈLkF]:;L ,=b6OuzOeD me3-)KE#% t)S @Q8&}|ţC*vKASqLOr$*s[o ޔ6&9Cfg4 6rӏ98(2O %xZRzHU_6  (Zr@|`~Q'lb|*aYb9RU踘ة +4~$ݱ )@< vO]l^YRi?둝TVpSı4a xL.xX R~QE)|z(V&#y,[uobrXwfҼ:rMNũ: VendY<6ooG0JcGKL&ç*rMe[40 *-Vli-I`20IС/̗zK&XmI2r Ъ̱>K/}IULY+C*<@LEЀjES%qII8KVeΟ!SpiPX' [<`La7nGB}I@J`)w}~Mij>IHyU`:\b0}"nE‡:ɐReW_%k$U FڅB$I@I (83nE 8jֻ$.s-By0 ;Y7`K aZ)SHtjAB}- > UI%=mVE"{'> 0&|[`R8gHrCNQ'1Ļ,nJ5YڨV2$cKd/oCo66gnC%& U٬e2=C]p .$,T`2[a' OggS Fi:.G`G9<<:;:<:>@=>:6=>8=;7<9;6:@@8;?3658<6797:::==:=<9;<:<<9?>@;;9=6=8778;6::nGpw?AL5[Ҕ|.K5 4rMIOvq9Zrj]2gTx}@.4 6 f6vI Qc٬'^O2P6O L{T w H&ty߰2URzQAlBݶlH +VڵmpaXG:>*R7'3Qgb`'9&vQ"S{(ӰOp@5.Y(̸֟x* H80,~ &s=rORk ɒ&)&h»}d#OZ̨v_r2lZnM؊Bֻ C퐳Uv޼%px5_hp@1$%FinOR:lf3Ae O=TY١, ` PbhnU P*mW=,ZMZ4E](Cgq q> PCEWhѥ&rU2XܶP$7ISѐN ]!b "$* <5b4fUVcy,xllyꪰ+T1"&(@ 4C]튗=AEfm`"X$N[/; &4| !t{+"jW" o3xOY+sg~\RodCY7z:o@9rWb2-{=Llwir.a4g,"H}IV@ (S,IF rWң6,u'.Am+=E5fXrI uhЃpc4,+g rU S6伔@[o䔫h<uGO:M\infOLѥQ_*_{-}@.ih7jA,儥|i@vF 4C( jO+䉠|T~Ӝ۪-{KF$NI ujpf0!ZfQF "'Ph+O[|.Rg#m{Fwd$jOJ#uNg"@Vn,=PVNk3$&&sZQ):g4iY1,]8 w +@+sP"ܧZO")/Y+7oxXE@M3U{ >1Sp]bOL E/]RAIж2\ #Uf><@%@O6})ZK@2mB#:kVG֥XG<6~׵)S ſukվ6zFenZU ^G+ %z(uk4.P>+U:.q5@JC7e ZGCEg*=Q}2& 2l8/I0`1=7'{ )VK0Z6Q'Gh[YۥyiҝK[F] O5DӀA 53 ^AJ`]u/O ``(#n VI iMx&-na5ЪQ9st=&HDK=^M@R+vY^BK!l{k?#@1٧c@EBH+ZM[HpuPR-]D/[YĨVk .AxɓԷ VKux UV_3)WԎRw'&|:m.,>(ݜjM)01|' *\mݑ6D]fP`JLv "Ak#ZO͌/#$'[&uh%el*K1G)؁ @\8N^S7;dDBDM-{ل*1 wo1-N\8tbOB4Ғ! <˲ uR΁krQ(P&ΙbSQ䨒Ъpxڳ t֐(1|Œ[GX7{xp-fS"v t m M_QQr$f>Yi4 ߊ5H_fQvI'aUaw̬t/<#>1|JK쓎ڪ u.%fQ&G^1TRen5uM(k= <` &EP(d?5<fS.CϠ| Rk][I8OcB>9f; " fSQe/u9189V(PHϙm&͉&8ZQ @*`X-&6H*uWaA CMJ.i# ZOPVZ< $*ϸ4㒪|H+3 cj~jx6PbMF،t@Kh74"dql9 cTYdR^KJEhܖ%˰⨲9Z&5뺄>?c-)pi )ȧAbKԊVUYεIfiD>O6v8Oi@Bi ^ASRKH #+e+%_Jk6(T͸J"1׀҄H] OwyҢ^A w4tnG|{^Mƈ%*6mI$x0letXz, iS8F&<0'&MfH^M,UvpLWUJajBSIhAoX(@r~]BiuVZOԇ`˒ks4idbEks66thsdVO,]P1[r]@;Q_wKi'T!v1 8f^O*ћc AXk=L;Rr6@wZ3F~RrhPVQ*-i[$-=ɜeo]IDžѢt g t08Xn4:tZQ1)D]o3v&j:ܮ#MtfɏFel!de蜸UFAPlHCbSNЮ呆ҺO !@Pev/q_,k!Ǵ U@ ;`GOggS$ Fi:.JO4688<57538442797778;:25475562344.6534/6441405443444/03169243033482464./23355413^UJdQzУ +~_"`؋ O0 @4LC^SFeҎf]zP>Pxݯe]j' LepaCzN] ^U |abX4D $8Q(,Pi4.jW-%igK)Db Uhj*Hޤ܄ΟlQ3 @`VA *@G$tZSe)'7h]q:Bˎެd&z: AbS-;nNREzW|f_3ZXsJ1Dq :R&^QiJ38Ղ>H1o&ޥ~ȓм0Bڅ}RX*@bWP=<Pժck})r.=nE_C$슆V.% Z bW.#ܖ ӏ$ep2u_3@i&z^M!ف2z:,Z(£.;wC TFΣ@p^QS M ׃ U&cݷ]wZDmXQh@PG.ZS!L9MZ 4 *ϲ7sGy ev{B mcA}{* `b 8fU͈MR 0$lZzE׳?r5j@8'( bSi"rA 'vͶhK&4 q ZQI\Ҵ4kDHUYZ7cIHc[@*i ΁^Q-Q3l*Ԇ۔Fj6J1tLtZ5p!ZSi"%4>]bEO4aJ PVH*;L^Se~i&% As}=A}8^QomA &{ϧ^ScmRf3HU|.e\̤ Ihf#APj3fQcW`%Π|b rVyz&ݲm!<k[  P t*$^Q]*tmN.AQtuss4azM U@^Q鬮J*.N$@=<&h)^61PיoxZSɠS 4 2̵rb7_գ А ЊL M^Se'-k^">u?e#؜wLP@otZSIcKU6)Rr <VIy+t T$5H^U3]M]ZNZo4oZq c@`Q`JƄAJQpMjNBR*nN=ImES L(@ (^OI* g3OR]s=]Q{` ݛa zRd#@VMs/b': d@2y)GDWzp%g؂ Tt(@RI 6KX h Z[քak;& * h&NM)SSsem>HC9=K+QG`Їng | L3I<,IœZMӋ^b%NJDSkh-Xi)֡uPKh\~k9Z"\q˖%%ٮ{ؖ`@QyV $JC3e`/48$RϷy%ZbA7]u@5w2: q.R?--3qCeuv~FJlU3:g@" ^'IK q JCAH/u^m-U!,[h-Df5 VC-#mU@}fZ#RlMX `ذ:@NGRKՎjɻ$VXbsumxah`L0ZKRKt7;t"Jh]B`9cAC14I0RKiS3ClZ[pmXJdϡ&M+zPL Z!@VjP`D$@^I 2jӲC=P Ym_Q|?+xuHcЀONI%1yZ/UZ-U{'v{S4PLUERZI#чfѩOh U{JXV|KC0&@NIiP.fkmM|݃J+EMJ?j Ma'8VI-Q3{l1= tKU{E`D;jAH|x`/VKc0E}X$ʧlv囹!-l&]h@h VG] 31̭#kğ|;`pq(@ÃvP0RC1Y'69!a$Cv3YU uĊ7jh@5v N?]0%pVI U1<,aR#%ʄ=Oeqh:RA]/XO T+a*>U[!MHkĘc:4k` RC|a=)rhI[/P g;8dHh(W'IhtVCmЛ+-,mioiRI::[t;hnx|:q}RG(4z\3Nn")z<eo? ڱ tH$T&N?CjrinD5 ٓ735/CPLYͣ$NC)k Ne8`#FI|7"V`{(P VE3LPOt=DYˣi-RK>E}PP RG3ScI'P%%9+x= C{ 7|u:@CR4蚠AVI K Ӱ^::,(wHFeb;I 0  ZKkAEj%(tXLvUh5,C:4>VIQ&ٚIIK._V˛_GoNa  HRG33밙$' D Vi=x[i * 'b{` P8WVE3F,v'C DX]GeWh@ׁH|RI;eڑ:tV=K44X.*J;UZ\Di1{ h:xOggS Fi:.FT325254636558164734.133.2.330.1.3-0.335312,05/2022./,07221./-/./12-0..0,2//522,-(.+(,VKcnEb$A2ȩ%EʙSAH\@{$NI]_&'GP^cҫ*Ӗx `%xVEC6av XiP̑iuKXSt=K! 8e `&5@?4eRCCB&imp,ФlAῆW* y $$5&::RA]+6:It*4S?L k.c(?5؞&JE]JWwːI 54Ztm)U"3ڒgRCs)4ֳC&h.dKdWGϢ設0$$lL&KNA@_P%0)ִ*k1S%id P0w@1XLNC 4^>=K2C kGӄf6>kKHREs 9IaVŬ~αD_"iINhP3ax:NC\D/uIDܫߖR^LTő6L (Pxl X5 NEЪY?SQEVEeD q5P*`x9&4Ɓ6c 4NCc)4%LΒu1TݾDb]u1#@VEsJ7/f ˓@ *}&mfRk╵N4}C؂,@W1qE"4NCRBt[ 7f9Sa"J$(m B<& P@VEeZlUIṰ6K#I),| :TIhLwcPрjFA4QNҖ|KbT37=048S^*04 $$NCݠj`^Aܪ]̞DQ;/!zЀTZ1A !tJG]7.nՈj")CB#]B2<c2 ( 5 9REKݺ8ItxmPTd~`(@ h}OaNGCڵYdȂ7yup)L ЀPvh䃎aVEc2^SƤ kKw'vg; <*فNC@j\C%" 94I(IB 0O{RKCGa/' U!i:+Lr2Hvt LNKc2y68*5ژS6/&LcЀ@JKmӔ0M XD[3^khW6r}  BH<`NC",-_399$eHWiWֈق;=f1!P&VEpN]ZtӴ>m[oL1I؂PV@UpЁJCLeb Y'6(`3Fy M(0;8JCCG5a֜xAe6ٺ޵D)1<hLJCK'،U8qA0?iY,XXHJ;x $FJ& NIvjڴ$ (<~QMڦ̾g)Ԁ.NGW,MkN RƒDk0eR)@WxJIH X A#twLif㟳 0uo@ wbB4&4JILb,e@uE/M2ę(@$JG^B&,XsRcH@Jk4G}au뙄%˵4 M4JGPWEN 2 ӬqO*RJKЕvz4a(@NI=)"XDb{vZj`_T 0!euW JIImZVZDvhk1w'a@(?5NIIhP`ݚw  j۩9$Eܡ'=E NI^hJ*bȠ2h&7mz(פּa CM RGZ-^EHU` tvPЦJIB=Q-uKNZDځ N{T "U$XIBPk@RI59WNKeR~M~+k&2?x> Zah 0JG˚ځAJ$uפ7&,)Z"R2O4kP2R:JIQ k^$ կ{&*M Au `}BI,l5S-p2@5h>&=}ua 2&HhBI, 7'  TIR$kx $P k>!BG($5@P֡IrfRU%6CЀa>tJIx,XcU)i7 Nx>L(@ FIް 4'h7ִT7bϊ04xu% BIFhJNn|2`E G};M5?.12 P 0/`BRIr-ci5Ȑ eu&:i@[` ˥CP NIIm`U%P &-IO<ƒ5mT[5B &0u(NI5Uĭ|JE#f.&t ( JIn}擣{0*e{<҈c'u%@4RI=I#֌'Caq˛RAafJA NI3!n[$0@}7ii qYeٝ*h@xHRG +FMشI:d9l-S}]q+sE@@ VI sls0wK3ȲћH|f9UЀJI2*u|#*:ӫz[TOzn\|NI#Oء%qR Q,ZNyK^tgdЀ&xRKĄM8 a 0fOlf2ܻVI#Yy'̷{SQO쀩N\>cFCB NM+)8Y `3jIi \kU!0JK O:*,\%{{ݚ{͸ĄJRK#~`Z$ܜ~[nmzRq'M"^.,@*@hFIZmf"ËuJsvIH覔}VPǁJIL^Γ,1Q޵= FIDIH P=ğje8p\JI:Df]xPm+ z͚%:?`\K$JIЄ*lMzȠìKu9 4i|JI0-b=@4ɗy1}3D$._JI}!JٮU9O0!NK0}n!' P*Ifun">(hj@:JM3]v`'6(*[ΖXҲo2 !].JMP3֭NGADMLVނniRh@"FMb`PT{}mJm&fDz JMKuDN*ًmFӋрN7C4:JM+p~di*MppFMd$<%vya΄4FK獚g c(0OClGn%k>>I p-jh Vu=3FVA@BK#&OQ%0kZ&)a>P P:IZSfY)P׳{4l_P:`OA@BI=8UOxJ&1]rY"ecP>IxÄ Ph0O]rH<6դ8uCS%>I"&D}r^JT_^NkdE8?nbIN!X $fOXuZkeDO@?t$'`BILy-P,UDPFgL@>IB"Ȱ C>GH01Yf AsQYد)6fS ] LCh.Ib!ƪ-!T-0Ԟ1NN (6In@ҒZo3Kb˙)C v2X H>G]I0Ӫ6 {~4-:SyT` BIIG]ZnpIz7brP]Mz`u@>GCy\xbs ;t3%Ue`= 6I$򳾱2Tvi#R`hH@ >Iy:&5% -0s#bBPܱ+x .I(%_A-c@a;R`7K:+h>GqɏUkYg-hƀ:HWf} ؠ7P BG645y[1`uvb~ +ε+Wi/1 6E64nZ3 krBŤ{M76r (:GD2$ XYckjwxQI(+XJGq6>jY@+kiuEdd z\Ivg=RZxu(~ϫE ^s f6T@BIhmǷ&o>,uljkc=2 Z 4bD:IhVjiZ'x-PIW5*I|jHs!62BIjaʷ,q qr{Zx; @b#0:Ibu `-:?,+Љ@C5`"HBInr[HYP9#M4S6m 0%cBIbčl˓D$<),\ijh@(@a@G#BIfo> V`I1sO:MbV; ށ>IbbVTVx!昺glB#BIfWQՉl76i_#`;(4FIj-wspZ$Ф%#[fF j1/J! FIfa-OR@zӵPu[a)(YCi @0, &jHBIln˓@p?Is[f&C]!Tm4VK\HBI,?K`XOώ3 ڊy?k- }}hs`$4h :IbT}ٌmm*XG_C \)b CTG>Il#ϡmUKQQ)]3;\{AT c>Ib#?C,U%2t$Z~]7 5XFId,yzzGM.hcN0$"ʙIొg>Ihc7Q3@UӘ&)e 4 tPBh,eBInVF6}2@Iݳ75yKamEe*z.(3BId=Kz$pj@X6˳NJᖒ峸1+F$(W1FIhm>IRH3RM;3sY"!&k4:Ih&{>ݶφ66R%ߖ/K7P8O4JIdiݢώN8`):4H)bb%G~Cx =$OggS.Fi:.I"T/.*.0/.213./1/37341522102012022201-0312.111,1/.-./0034/30,/..*)+37:42313/8<433452416BIl&y۲Ir۬WBL`xG*3 a Th(FIE6yG'@kq6&֩%r{ $!FGҹɗiʲw2s2׬XY}YV03րτGJIR{9,N@ ӯ)s_6dhoZ`\-XHpFIط P?KaUq}R>5oZ&0d%3X >I0@kgCLyg~øs!<$}uFIpBlm<*-b ~+? 3@К a`FIb46$g*Tݒ^;f)ѩsHFIl݃洅 ! ]h.R7c_ Jq%kBISΤ7nI*f#5)SJ )@0#>If귭,-~C$I( k(pu|BIxgܧ߶':@ @'ڦ5ݾ,Ve5h\4v# WFIpԞAmg֑gCPbY{#\*ƼI%5ʭu>Ixc)mњgp?%WI-ŰMrC4Pf`Q6Iz#CeZlU'-cn26BIyC%:IğF"Z~Q.ؑkrjC%X @΍0q>Ihӑ H'\z-ٽ،HU(icBIpMu$(K,qv#Xu!][|FIp5gZ̿:Ե{)P{7HcXN:IpT"1I'G' @jֹ-m^݇NC|ȩ+$0n.'>IC,ZO*{I*w=O^AX#V8BDS $FI⪜eb% %_,ǤGFyu[٠BIV{-is&lx@8wIuT Wo):0 ` :IRMb}O&-@Ug]l7ԣQ6ֱ_+_ BI[foi%dPm:v6SHy:aUV,T(BIpݷY`a uyn&bn7| `>Gx#)bsBz%Z$H./uIH^$DZG YxJBE|GygC-0z_O%/]J8t.>Gr.v@RKig-S]pX+ H>G|O٪=IdxmofM5CIДq*IM|va5i|#ݚ/TQM' b>I){gnI lTܳ漩zNs ]e p>IsE&ENKؤ2e[3Oh&PC t(/6I~cRo}i-_)]WxvSMF^i=i>IâYΆZ<-Wފ+TP!EzK)r>Iee8@PY"Wk-Lp,; sv\>IR[Rz%O5ƳCg?5d|VW1IpY`b zqPGA@07k:IFɆQ %ۗTgzRE~U0<j:IN+0`i>MPz@R .@Lj4>I^+ 4XP\mԒMCrkt,6WL@Cq`[>I5(VTe|P`Yޤ,BPjf}M1 i*P~2w:IRY.&)jkRjeKUQSsT*'[ ->IV)dziS ?ͱRBqjqCJH*v'1BIpҳ9$ ^VZtDt$!HgFf] H` FI)0l%* b<_wYZ4|euf:+ >IڰMvљ.̥fֶwDD@6IN*gpI_ӚFO=F$6vTc۷a>GΒ*x: 4i_k< uCE#BIRm2x%ui2H1BINMf=duyt 3݋|($#) 5Z>I'm" =_;q_IG[ā@o:z:INkچ5;"=%GV;McpXO 7#pt>INl[1mm{3> ̕$>I'ڲ 2 ̥4;5*kCz%8>I&&N@mM\nS S ìR:ERqgkHAK`~.mV'Y{ :LNE^n.PMnzE:W|@gmi?־ +9{OFE\ra7l:C\AUo{Wm)OjL !o|mcE)= }>EMaH>RJ5]sq(Љ❣+Un8 ,S>E`l1#~_#mϺ7>͚ť}c pFE} =gDBW@,imjKnKZOwaE"BGs_؜psö7XVmp~FL(O-BG\aGtpTi2):?J@6>EB⠾TAhTT[ȤW/"*NNEq{"wPrudu~ m6I:K%0V_ RV :C6`s-*r@J˯>X"Յ(BfC7: ORMR6ulnA^,S%0D-%EFu 5X c8;<JO؋1>=%F*2mgݳ\G1PsȅbYc`_P\BIܚַDܵVAu;ԆX6ِb&YP .1 :K;iVDk jp|:0?f2,jVS (N+Q:OǭN%9 &tjMŚޙB(U"6eCĆ c^>KMLis.l@#[^W&5p[4Z|dK6>Mc6m  ȟ,O4(nQh03BA۱g:Mm}u}5 bT\M:k(n.B7u<tH.KE0X]{# X昦m5.62bm,.M>Ǣ-p߁ 0TӬ6*5Ѕk)ӚManXY<6Mҧ`e[gG`n1&3zpO 1R>M>MUeݺU(bY#5m袨?2%@\Q :Oe c}_T}@9@h Qȷ<}!y)8@3+:O1CO-0O/#&@W! LTloOw:`{4P1|:M:6XNAFzю-E砛 T;>Myu; Q0/o:+Ԛ4-IL'vq[2I9UH9;D0@6iS}SSh 8o!xKFG2֩V A`TE#Ǻk9Iʀ[ߖ3Wito.`?OxlB :GyMoiy'O40`nKinD/V;kfGvZo8-ͻBGymuˎ$o @&u5Ãc `<VF:Gq#!-Pa)1Ɋ+&,eBIϓ>Xw F4eWdO kKI`S 6>G[oTѼ@Ҍh͗Oblɢ`@BK"gu) {F஝qg08(xoe.6K~Qצzc|AtQ0๷^$/}ui,@lJPFG ,ᄙ2 ̽{/ˬG̈kSÁ>K׭?-g *8([' wH"86qv;$JKzֳZ ,hC}XTہi6(8oFKKqMǏnݡ`5McLSNu(ABH:Ivv@@a_{7[=5u==Ԅic+@:I~rm?[V$ j&?y*OGeH@AR~-JI9u2t+LdbwHI6[ ~j D{BE+cn0gC T6S2^"B+e9̃p> ZlJEH2UZ 3#co6: u͊0?.}1`|>E0N]?HoY<-F-k6wk:P}쎮FG2s%%0TO %Z2MiR1UT 0qBG#i:~vYYZ6ěPBA9Q{6G6rYmM6>/k[KITw[p L>EڑJ{'1 B<&5df[JRO~ >Em%| 0-v~,"Q!ސr|QBE:PpQo+["w$򵍵3]ld P*|4T@dBEz k/z4DBMP[kE_|' hlCQ^6E>rV?/UoFELǧ 72 A+찏Q m:E2!m{tL~v7ͨ6u+{|ˤV9 +0XY>E>%m' vp>o>L^a1X j>E~6,X:Yv +]@QަCi <`V`y]3>EaNηZt1~¬r^`Jx<ܸpL` >WVSw "yVY% !W<+>SVvڝ@eKk\Iقu;. #Ћ6LJBKsI:I<l~4G@Z AJ5@>K@QuV۝k s-M~u$VDLV*8/@:OQEkmoP`0E7ꔙP ` BO²mN6m+rH`=n)rx%67ԡ >MD! [ ^/Ofm\Hf3:X=X`!lNEKJN<%`ѽx%VC #7BARBE':e?5Aj|jM@a&F/ |NAI`ʻ2tݺ^@{ ؉ 0KJCJD@ m:Ճ*:.͟12`BARUEA?fu:ulj9D2iv@)ن L z2BC6 p_:@TyD6-\3ߝ| 01T`]X :;Tkrh_H`cE枽WJ)b7'&X%KB;VT4>A4:M1W~.I oJBAkXu6 =R}s+{C){|u1Ea/:,aXBCV C"rOžŐFEʬ kp(/j  kYBM]?^%UV0RBGQ3׬,Uu147~0QlGd, BE`2N> t`@u閎[  0[*eø#FC623kWo<%?.+$7 ,c&!:Ef650=Y|zWq `{ >CJ4=Ihm h8<$گc`,)xt2 :?' rKdnx5ĀYw'粔VgvJ l0@xY:J;gyuӥ>3:?Rm@7=0K74YBOVta]Z$q5>DJ x HBO6KGC,*McȣiJ@mtAyeGhB)"/u BGtOe' PwOS.MX#ؽP )o`o*φW5FK0DSvo *v[= gS 7P"cM uj:tBO^8g+,6IW0 2R0,* e>Qsr1o¨)#%-􉓋8cc|= 470OggSzFi:.T:7778518656656373/56343101.3100101.1/+/--1.03112310.01.2-+-.0-+/,///4.20..,.1,.++0./FQ*.j:'hjۼ@AQʠ":T BQ<+T~Q0z*@3_y}u1ҐN^.dzt֐dB.:Mr4"~hNTQ>^'P2"ߔQ eBS:j*vz}wzOgؒx Y %04,>SǙذdz@N[‘7`" l'Cd- 7BMxA+ܳKXK:7-hA;oBQ&sށ0Fuʶ6Z_1=0#_!ŝ/66C&0}<[k Ĝw0W ; l .1J?biB\Ȳw@]ˤ|}kcl9PvSa P7aXdYB=0i*X=_I?ј%JӊSg쒎UHB?P`X0`݋퓖UH0hj榻21B=\*l1 : Tʤ,SE"K0 W:=<`b̛C<ƀgJN D؜ 6VZT@BE46V`~~zVܚG@ 'h *2 @9&E=tk$u_uoynfD i%+0hBEl5 du'5N-,(O؞) DJ#@0!BE+Q!nM: T2uI}9%y4CaA+ p5`1 BE*8ht@=j =;5?IϔfQL<3 4!BE+4*= [rKȺĄ6~KJ`ƳCG@D ?$6ErB=0j֊c$=kөX^T@'hA6E@b4`Wdw`κTZXo%sYNƌ<&Rf\r*@ >E#hZ@tWn[hCJ㐒)%V 0`  :EъFgSSҶTb Ma D2BE*,Zj A9m0L̈vWŠ|ab>EAi0w'vnjORhg&l`H$>E4 "KJk2`%5Oޥ'_ a (xE`ABEH&TYykɣ̨8lzDxV6E }o="}INc5K,lu$aC `& J:EIoj,% #󶵈  jn7RNO-&0D X>Ebúճ'>/ )-u"9[ЏFFEY4i:UMb/#â2,'kBpABEɂ@¶1`fm.Lh)Fa!4T :EXtOg-vTL3o)0I ġHa :E#~dReˬk*bMW :&(>E[Ë9@}3K6W !ڳm(|;t  Ll0,:E @bb e`% eue(dǀ;BEXb I5T&^GD%GB;L#'xЬxpA:E( `+{Z_m.!T0Lʑ :E$R=+9mt1<&FCFE Ynht@  Dj褔ۜKL $H04`:E4E-hR;Xg no{3u/%1c  t :EqbttN]pısC]qiiHcBLt6EGhVu!ˑF PHi((gA9VW:& :Gͅ;KZcqRE F +Mh< :G̀&7O ȘkS0M⹪0+Cvudq#>E$nd:9؁h6T.&SWbfJƉ ƣ(jT>GjU+ `Ω(4S'C"I݅ "e :E0,Ȯ4dIYAU(k0367 Pc.G2CoIJNZ *EIy>.P}xAHi:EJ7p2Xi5*e7JB:I|V(^ɑ mݒ ͙ BA ӔL $ 06`:IxH Z|5/шD=AGHzq P80u4>Iq?5IP6M?L]ovb)k05  :6IPW,*ux%W"{PaqBE*&hH=&.I$'yí>ìZ3t)9ģ!>IhPZ{o3M?<5n1fg"džP0 BIdQp7VZF5)n4ߟ 2ixmC8na >IdHp  V?{_yԳ,lA֋PLh {:DZ:Gx4h$A\xY'ZIx& o&4 *Iv[[d+HsF7!m] ˬ0ln z$6Irnl7'V>KmmR)nUL)2ItGs#YVK߾&Maw)Y?Iб6G|emX[l@ Ц KZOV k4&C=CN BIv3ko*]GϖOiQx5Ap&j` 0 :Ix)YC,Tjbt/YB<$ A>Ih:G$A",)ٗ߶gyF{>ID|ٖi xnm5c"ƺuM`R9=`6In`\@z`v^QaJ3}c&02ILJr6zy-EHKa@O^Ҁ02IzRhBg ߶& Wc%8|;/4 &2ItCtY-|Uڏ4YD:c4@A:IhEVAU +c+i%syh<  6Ir,1Ynƀ#ﲮIxÞf^ÔT9tIV2IrbI+Ȁt=iNOd\t%\9t OggS2Fi:.jM\,-00.,*+(+,*%*(/(.(,1'+&&$)**'')&#'#%'(#))')*)(*)*',)*)),,,/.103/3210/3251434625646685745;952Ir OH2Jh6rZY螪d `I0>&&G6ILʦ9I  @E:OɎ.^W.WRC&:Ij wruR-i^M2m(P6I * In"vm&+,Fn'Դ Dp,Ct.I|Yc6KU壬,R >-. 6I,lb @ M_"zNGj(B$2I X$Nhzk~4qTJьG);젔Ѕ2I)@E%ET-hŖr*p_+*I( eʣY?%S/̡s^`.I8 !j@ +Ҝ*̙Si* 0A6I @DڔH1d tt.Iy@z~z!%v92.%M*Iq3d4e+Glc.P *`D/:C(& L(Gq˻xƻ}[G0kN2Ipx HT1an&cB6ӄquPr7>IR,mo\`/Qo|0ץOØئpzBIQhl@HRuO~!*L.ImfO[A}$ea(tq `ÁP:I `'@8u$)Ȝ)@BCb9_`3Fs%s4فqN:hj +`.I R]T ,$ӝT~.n6w@ [0Р>I֢mcۼc46ERfnT m6EihVrVelϙМL?Lr}vo$:I!j۰ fҳ,+X)' L>E@%' D{p|oӑYlpt@A>ElMVb61 &6Ij8li!֛,WrSaTke2>I$ѐ&-m_G>TP~LBIl`i,)Z@hRֻp( P V*>Ij#X!2&pd(>|:6 >E҉,]`ow[|%4h \2EE5r@Zf]RK$]4 RLL>Idm% `j=L@aZ*:CV6 pmz;v=y۠ǡ >Ix `65ғgMh#ؘOz:Idc[**C[Yv܀6Iq6q \ܪR$U>Iluš` 1)gqQš>GdcѰnq@hj\%1*`\ȥ7>I|oq6{ M_Q&:CD 47 0V`} Q<+&YA@>AtT}7QW)nӂk!aՇ"">Ez߼deڶ{V=l)P BEtbv`_5Uݩ8X=c@Y :G~g1\eg8ukqoFAveu :?~\5 LGx?~m. l%Wb@$ 00yb{VR5:?~p3>g 9J"20FUe`d@ 6?~@?vs< 08Y##=O0 Wc :A~odzy3 >fj64-BCzV0uHrH@3Ռikތd!tT8%m>?h,y > uڥ]PyK\JRPlN :AT@[U ̿jMaZ|QmZ6A4l[;vnцJYe誔2?~T l /⮧֣F'01,W]y>?XC7$@]m=Jj殑#HS8:=6Q"l- N:'8 lщQ^>?6ؘf SykjxNns6?Q8qGX:xMps,R/PG 2k 5>؈>AZ)kXo^ "!w\"`8Kah1nTB?Y$= [::Fug2 i_:AQIO,'-о5#M[ht17#ˠn  >AK0@ x:󶍬}38&سSu71%mzx:AIol7{- r 3m #{jeZ06 >EjQ4˶׃ `@ n}իwH:RJ>F -ր":U(Q9; дFDDou&f8&PWH' À:?+ ',U}H B\eo!Jcs'V:?4zo@0Kg?^J!6/AfRD*h^'ɹBQh2B :?70 ; #F0m`eOp.)t殺I*k'>EQV۝0M4<OZUR"TILBEY*lxtŭrTtNºqEZcd`I]:IQ* S-m-33Pg%k2*4 ΰZ+<ך:Ep1ز!4 ,TH|8/3S10m+C[/lFCVUlN| `JK#L:Z`l@?@F5'35gxH;BSiC s#!šPkXc`4F`ZxpiS?BSqRƜ6iۗe]+#hJGs Rv:SZWpdDp7kA,7 M>s\Pz`y %lK:U5p3&;:K:OqZy#(G>3%<Xg'=wN6I5wFDAO&`{JJPR%"J`(hJ :MU9jCZg lY,)(ÊiZάS: )FKZ ~| 1"N5 A-)o$}Σi8=\:OQ3j_4_zi*xȣ鑐M>S~#eJO3iv սBRԯ-_[ -.k@]iEBSFIJ̪~lXr˵4g..ЯA0_GDkUfrNGT&Quab\O@R̄wfàO,nK5GgXIEBUBMLhTksq ҺS4x(,NA=lۢy ĐC֜)IԷ!.S}`lvs`z!2=JA=Ƣa3v^`Gi&*NJ8YFG:ju0m&^GKn jonrUqS㭯^#C$} 1|&}|0 tOggSFi:.[X316/5520.0523612///2011/4131/-3.03..0-0+.11..-*,+-*0,--*0,1/0,,./+,1-0,+0.,1/*.,-++,.,+2BCfdzq,C*>%`fy@0d $gH/J??5FEqd$&N a-Z3Wa+~BK< ˛5ϯO^*&Ô7P`YA7ah^,fKvac}{& :>6z&6i06$3TxJI=i7>Fo@+p6A<ͳCwC$nN#FMc^aצFx&VG=Ʀy`= ywߵ=QAQ0wA:8RKnF]n<@I[+ύ:eV3)d NO E'w1K⇲/AրI'+,,$w9U3ؗnJE!Z&w@ȟd0xXD}!)!:"_ObI$ۊSݚt0*Gs_qC#g-^GU=NպМ @7yUf~s E1U0ka/:KSg/ԉڭ'&Ť3*D IdΉ*RKEGFwwwAI I!@cJfNE$rXowم2 0yDz{fd;ﰍbƮ@M;JEu馉q!9$@`I6kގf ͪAR-ƚ3 >G+?$_$>q=*iH{QH$ՠ8Ѕ&JEui{ZKODOأRFl~{| 6Vt 4BE+Nw2h`ɛ7>ؘo:0&sUFEN98: ,)[^EbQk)f9+`$Q:EiXﰓSW k)`NlF4Lï:Eui)kg05]MfT`TzAݶ*P>E+I8O'@c"{'[-NXcz(|샑 BE Il$O;+=m^'b W4P]Y, BE&|? 90 RSܳN`_: ˾sa\ZRKg,]=X ;O ,J@׀E-FEқ~ӻ_ug2]U,EfAKZ8f,MSZz&&S:&E۳̦y3]8Bj *M1Q6 :J2E[]nV} 'hq\M]hfb zUf9:C9RJGٟ1ڷ&s۽8ޭD<rbDFK+;jb(>Y"  thm$zNX9Ն^1>IEP:'}ȾvOz`L BG;{4:.L{`f빥Y4֬$A0kL:p>E{,*~.ͯڮQM&Q zV`Xu\9K6I;m%щGb-읻gÅ erCBCh*Eۋ<≴ͮ@(_oY6&bzDCRv :V BE^t-6fiU%IVQm4A?x2E% N9v $"%?~Gݻ:&0l|֥fiX`2E[{LJ't0KiKh~Uy`Mc:Eӝ Vzo =<0{qrA&6:>E;m1 d,R]! bh@%(uP0A6G.ڋp:?r>雭,Q2E+;ފ>\Se㭪oe/UF9|.Cke e ^DžTxH^̅ޗj`2(P:E+;,T,RwWC>%fk4FIGtBr.E[{ļ$&Hi _Ya T3+6.G+GXObK0{ CEMI}CO5ZO*CG 6'-,E]-zV $y_ @i(2E\.āljPn~y]s4=y[TI0km'2E+'e5Qdr#%{8{)3xSqF&Eg{ޖ@Fg\]V*w.,$ f *E[g^$=KU.rK~"E* BE2E'mlHCz/xZ|3]{;sR >>"G{CǺSK2K< ˭cU b7!H2GV76{0`>|Ymp{fNPh=Ƈw.Eb ˾d Jʯkj G,m0@|ŸAދvF?.Ef`.$j0Ӌ9>^U`v#z6@.E+YDr.AP-֌|%R<9@nXI&2Em`}\8RYM-J;䵹!Q4&EFԍl-`Sٽ9|j`\?4.E`Pư dWzF*VRVM@ *E+A?H/\ez2ӆYw4j.&EL| rxkc2RH|/1P].GAEH U_1`G+N_uF.2L](NxD^ h.E+;4Xdcpr[?}C2H{&(*EGyPOՀmxϷfBx0 ` yG'h I-u69o}3of$-, ZTaZ<04H*E[gOz,w -PǗiWR55LOz*E l/`/y[ݓoGt &&<v &I3Co, 6e:)h7)4شpG4@34&GU6҆/%t$&m=m0g/5gD^gց &E+{TN8@ յXSyES{.j@"E[k~n^XΩ7v۬  z1/G[ [oXh4#$KhKϜrK?7O>GF;7"B@0_sYU݂R?o%G$'Z3o#u>uTI5Ta3"E[kJϱf@ G^'v--WeM hI 2m7` |&*A:Ei<>&Il[Җg v.;4vR Th&GFI@fh#_+-t R*» GWm C ern~9wѺ1bCEBwI Ǩ$PL6Wf_{n g0Ùb6$ OggSFi:.iy._--*,*+))+*',*,)*+*)*,.**-,-,**&'...++,./,0+..-0-(,()).,-,-,,,.0)./+-+)*/)**,-./-*%*)%((')'**'*,IƢ9рߔOz|53ՇXQRoBO;:"IF4Mkν:MppH"Gg{70vԞy;N7t\D@R"kIgelQ=oz=&4:'OS.~]I{޶ YF;P}{sSࡷF6Gӝ¦iC{`ƱNmDZYY l G+'2`ac =eJ]Lar8=GWPն-=c7` v_`IӫBـ@"Ps!Rwa8IӳFCn$lp|~jRej;2aU08E;oP`XPha8$pxF0 "I'O-X-0l}0f.8UqLATI+FT$qK@ :~G҄MpnZ3 aIYa ewbr&M&h@,sO[vEdB%0*Y u"IŝM7$Jպ|ںhʩ#&d|=*0-I[MEMs6ůYߖFԲmz#dU=IK!ـ-nJv7nk=ӟG#:E{-Mw.W=Ӊy<IKYF6X2;J~  |G+|- 1H9Z`*%nqUKR{s@+jXp$6Il ~"ur[Z`nd窫|zbٚĎTIӫ6"eFg)G1B i62HVIKmE6N-4:?YtnT),h@C;e,gO|͕l+/NUwOSa *3kUpmI{MgA$1oAk_>z3V+fM\>Iս5Ԁtmݱl4sUFƙ $IS%!b}$-M1Z͘[;`k#ЉnIojSb3ɯ/4D0>M,EI;66U&`-` nU4z9m~^bgg BHE'yNY s;N?5X#9rUt!;EW~/X@SYkecb1n| I=;7h8YZOx=ś@C xI' %GSGDꁱm`C"<5ILEI=QcUuʋn &RGa I;O"'$w'ջ>_kwpzP!I6p=@=ݧҪYJP 0,+[I;>9] Tog.f9cUQa.4l`G'$Zм[:Qg2KH5z`XRPl I=;7(~nj,q[K''Sy`phE;OrM:Y}( I7uIŭ,NsU8@ ߵc5:SO pk AI%{nP<s8rKr_mߤ Ödrf!°LI=og29c9?eNg]+CPMPJ.H \G=;%9a ~%Pm? (`,GK*$_@Ug둦1}ns@gxJ% I\|RgK@.]"yA0 IUΡN8eܟ-1n4EX@ 7ZIS9Oqz I,EWy^mV@* Ij+4s̹4b*Q4"h\9RIU% ~9{/j"(4xIN9qGO8 N ʮ4]%ulMґC*$(p`I8SθZ~.yuy*ʾyh(K IڛxI3$ eKFՆ@Xz0;xIӺ7Owא Z%56˫vݼuXЇ640 Iָ7%p @ l6Ok>`8P]CKhIN;oJK=-? bm!PM+̡Ie<%b2M&DZr70f#aIqȵ9&4mdF)$|PIxtMl14 {1u-O= \J jp -aI}^jaho Cjx4`= I՞ PUזwB=Q3V~:h6᫠>Ia$ iXR~tM Pc>K2 p3uGnn^PA`1I5SO ONZ

+pO<Mf$@i7I<fKe@Qo :I^2do4|zY߽l7)w4PIhi%ҳ_0m aIْu-8sWVa@y_:KWa3ތek`HK5VTN&G(z)`;m!I򩬦MGoCEǓ74-sM`VEdAI^,%G5@ RDϨI}*.ǘ:h#R9A@IxN ޛ?jK#%H I^Z|p`<޳ U> `P=K-&Rg Ubw̵`ʼLaAOggS-Fi:.Av'G*&+**)$((%()'(%''()&&'&)'%'&$%%%''$')&'+&'*'**((*('''('$&##"&'%%$##$"!I hdhtף[{Aě(\}Kn ujIOJ㝆Y6<FD`<I(YS `P׳R^~aK9ȰKû l-`6ܺ-_ڥ]?hBe6;tKɦqM' =yȦYqL_09^0$,K%'B h:qcUCkp MaD8N@Qs4_Ǥj hU.IMEmIpd<۾Te&df/mԥJ. MޛI 8,DⱮ&@f! eM96bX *~gPH4MM 65wp& z$IC*%Ȝ`_y,V-Hv(8Kn L8f`-dj֫nd]QHhMfP N-H/_z?ܳ6Mug [@Ly_s~c80P\M !hHԺ_q9`aD; Mb1"Q-Z4im}! ;>MwQ> H jFv*q}MuF@ I >Oddv;(`kMѽ6K w#ɦ9;M賶P?:]͑rrAjp&Mg,[ 0{՟*}6WUq;80LMқ G;2z/2,VÁ2 M:9jb *=﹫Noi^MâAid+hu]'rBAB+Mɐ צ<%C߾FA@MIcNkTٚ;]; h8M0MD\7'QZ ڎD;-wEJ6M'< Z@~@0Mևd% 7DOVf{9`` MɭA9bft-:qya0;Mև"r3BɻwL!kV?!AMɠ%'5 P`R'Xjk%ߎTPuMnK.'\`C0Uk6]SG !.M"N iX Z-`k%MҽNl$#N a"zҟa@7D%My(-6{#Usx%7)@Mރ pֺҵLo*ᓛ(TA= M^'9v{4\mz-a% M}Y-9A^$K|+\5 ېM1f^@{ڑ}%W aq HMgrkU{מ*n$5.;Mɭhj? ߾tk44o/pMT#RlqP`ʳlUfcMs/,ňj!C{@ og.;ekyaQýC Mɝs2b&~<;o^0HטM魽(Pf 5WW֎sF8&#d MVs'2ʷiDva5v[GcMlY`lv]jDm(븛uԆs) hMɭu/M!!]- ` e5=^= 4 Mk! @@Yޜ]T 5{ 4 MnÆ2,y :f͒#fu`J*eEЀMl "iBT hv*Zgǀ*d$ 1M^>3@wŸG/hMx#Nhr%oθ0(N(PMɒNPШ4 gzx0AMfђ $`yѾhcRc_M^m亚@ \е Rӂ KxN A@]TOy&(Mɭ󽕅N $m }$ M YR8q"@ʻ謦7FMيpA@-{ֵW9uv{0 M # `C~S7O (# MsWK 2S߶ :KٳҐP$JEv֪0K{5!  B}aN 9<(M>F8 . Yk*tȕKsnEp8@얾wEo+ >נK7N xmzeiE=6PQPKgop-@fyBEc\^K57}m uEVchromono-1.1.1/data/sounds/sound_button_press.ogg000066400000000000000000000072341410712601600222230ustar00rootroot00000000000000OggS, Wvorbis"V>OggS, q~=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS^, গMK9A/ YbNFZo9\؜ow|{>a)Sz* {T !AbJGq{Qv!jU&?[-:r]R增UՔY2A`7Bd*_Poq2KVLe-\?oc4OZq u2s4"ICJi+2!oS5^E5 ; bԸb* &@sW4]":cIN+z^. a3 V7,% r*h޲LӪ"M4 chromono-1.1.1/data/sounds/sound_button_release.ogg000066400000000000000000000070361410712601600225070ustar00rootroot00000000000000OggSFc}.,Svorbis"V>OggSFc}.N=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSFc}.Dt[@TH6abfPϗL:q/y񹧘Xag`R:5 .~?S[UPYY($b-(/Y۾^pYz|; CYNrHuVJb(QJø$=ҶZ5ɠSS=)ĝLVFpv1F堿\T*u`; j`(chromono-1.1.1/data/sounds/sound_chain_breaks.ogg000066400000000000000000000101421410712601600220750ustar00rootroot00000000000000OggS_&/Mq51vorbis"V>OggS_&/L=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS_&/" OHBEC>?9@?C4"]m9]Փ̽bܵX0VvԸ>PI,-B-bP᪫o@b~W JR\y􂟬u?۬^RV#yS/.<Jh~!UTdx)]n@oH56K:dWOu|gxM{g\{V9 0 X1>V$ TQ .uŪ%ܾQ|g|rel$\;{啗46ü5}CN0m$qk"}F]ˌ|/M@̔u%)._JͲ*K$4@\Gܦg/'&SU.J &}vr5`[QO {Vu=v|.oP^ ;Ol:d@?0M .eA^uuA}HU6[ڵ\BI!XH}V8~(G&aJN^e1*z:ʯ *й.>H pX<sgќ{Q,r4ߚ_,$`J&)8sOMer*sjWPt!tþ'x5I9x$ц<ɑf{7(G%@&_Igy3_Y1OsS(/ ޵R ~U3̺&o=*T+!I sx3ኒ" ;-1@ >0PY chromono-1.1.1/data/sounds/sound_color_changes_to_right.ogg000066400000000000000000000121541410712601600241760ustar00rootroot00000000000000OggS\lA%h%vorbis"V>OggS\lA=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSKF\lA:%J2,1.81&*,%7+7.(*0,526796::57>6281 "Ee`Hˁ$U5G"Eڲ=T*'fl6eR(, EANRWG&)6CWOcfe |S+t@a+lmq5 NC?,ҫc @L OaI  t'5fG{m%-CJRzxl$RamԘjGc7Q&chDڣ@%nB=hV@ӁxbCwxŬ?j!U heS U /'IShRVED>ҙcjP k avh$ő WT(4_LUc(Ui=hx(Yj(c (,Ḁbr~]wrjaR&@`MV]{Q PPUX}8lZ$pe{]8:9 0 :2hc~?1#h`@6@9;sqzOų?oLSe_[{ϦS D3rĒO(EZ UGyjxP-@Y֦I% XC:0*vIAy O $* [dS0?kEohY;~7Dj%0X:GpLa@z¡ӻ_q~L'k2XP {w1~W ia(CN~,$8]<~]#ۥaD&WƀU#-k &Izב~]=߷1,Z It"^{ t&S oES8&WW M>ǯXvTh@*)ynOns>GpZf \oj/^2@L*AOhh.uvMRuj@U˟{`e 8Q8:Ie1fKnU /&UA-ǭxr-4w lFIM PVI v>l\ѣ4R-^PDL"\/;C4RAa-j^ZZh ʔak-*4VWj 7K)0>%(bCQ8}Z80ઌ%|M|m@mA8 j[i@) JCc寯j˙ԺZʘizDVj#=vrU6PJ&ӎ iJ|; JCmf9ss *C[J5@rZqa1X&`%={OBK,aY25Rq`*JkBZ͂FU :IjmаlcLjʘhof0V&)?&EFzљ͍&CnU5Q-DDeƆ@"Kchromono-1.1.1/data/sounds/sound_color_changes_to_wrong.ogg000066400000000000000000000117531410712601600242210ustar00rootroot00000000000000OggST-,vorbis"V>OggSTy=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS>Tox!:7879>:5955464.1...6*4& ,0718649C;(*RvX ʰui З6>l0 + P/C<=[rO2e{d3@gq{:7M&,1$CK0lnI*Enyχ.T#?Ļ@b *tst-'M/@hxI{z.AFf5O*D+ut%0Qi \3tE' 6E@&+]jq2hk,';uApDx8M›Kʎr.Il8T LI0fz!A&X($ 5<>_ u%Kft}L*Aa,u5jAM2=#`Sp5ɬ4Acr@,->CnMӈ ]WT  D|cm "Ёp̤FE@5CwZiӥ*e tJJ-*s6rO`e<6BC1һxxCd RAmQbO!N *8R;LW@UH2;:6%VKcϴCp.GUP-k c6YP r]RLZCKJ F)LvϷWHN :Zč2qjIǎnڈzT zoMs-aC / Z S fWY᎛G 8sde#1ЁqdE4Iv&n[데\#R-V 7pG L^#n[^< *K46a }8ʕfW~G%}{)): FB8H]ŧR:T P&Yn&(u a*p]lc іU-D$ ݏs  /]0[nICֲ<U귳uSaw.E'zf~0) ,<Scx H8i[l`)|:nҲB4ъl ^]eN0+9Ǡ @cd@埇NyVLkӄ?<REw: NYЪIHQ胅?#f0Q:]`*KZ?? Vi 3'XUc>`Hw*$ 7б͂d ѵnqy8NAOkT/; @”Y.BjI!mj>xBEA i2n}"3`,*NۄY=tGZD gFT&"OIsdul&`chromono-1.1.1/data/sounds/sound_level_complete.ogg000066400000000000000000000122531410712601600224700ustar00rootroot00000000000000OggS%h(hvorbis"V>OggS%SA=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS^%|1H*-,,#! !(**.)%&## "'#!#,%$##( ##%$% " $$(')/*}e=)Z,2@ Z-we Pٲ4m?֗~6u>E}ܷN}_g}2^z @HOCJe@No7$?_M[a*ig2Ɛ(#Nm_gU+a *(H80P0 rNgۦz`_t 405TXn\ l ^oi\$Q; g.$%^qw_0h 9eDHXC^eTۻ[Hjef@ fAZaZ6Mdh S=|H'`C>WnSHzc6*H,OOpX&Own}W@k~)I@XP,l5`(\"OsA 1$`"O!u90`E X=l:!]ܧ-/}ImAv`V![xu*Yi**lTA{s5 _2M}Ǯ}U%hf" ُ7i2I}i3{},HmT>(E`.IM~$mTH-x I5wK+ TS afe"?uS;%uӱQ!@)㻀\V("Ev7mUP0 0 |3|C: "Uɻ֑FElXMpP P"Kd*4pAT* T"S}I(` ` "M+IN#QNEDP9ү@ f"C+0v2cSfQA%`=૨C"Ai{;\TH:k`Ox"AU:I6cn"*`(  \"͓"AlΤZA0t 'ʀ5P"Aź9Tn HYq؁̼"?~3LҬ"P"p U Uy0"G~($IJd2\t5]"C%FUTzBtClPITH<8"EXvg*/ JW14 "Gf VfhpAce"C8;vڮィVA"E~hoוmiY6H#C)"C{5fN2hjtp<""Ek_wW`/9&MK&"A]-?d/BTG 0>BO@"Iih?I(u&8\k~"IGV]ޒ&j2"|`\o/ \|a;iA=m4"M$@elWYK0chromono-1.1.1/data/sounds/sound_level_locked_message_box.ogg000066400000000000000000000067541410712601600245060ustar00rootroot00000000000000OggS5GsLSvorbis"V>OggS5Gs{Dvorbis4Xiph.Org libVorbis I 20200704 (Reducing Environment)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSt5Gs+SGMdFtI=燴zᦲ߿=ދRUM1mm6urjkj}l F! =nf?xX#̀?c J9^}l{l )c XhNZ8Euchromono-1.1.1/data/sounds/sound_movable_sphere_press.ogg000066400000000000000000000104001410712601600236700ustar00rootroot00000000000000OggShw0>vorbis"V>OggShwx;vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggShwa@ KKHODJMEGJEJ?Su)@oYioTx_Gt 5qS(_a`ʱOVO0_tSzeǾѫV@*glR|{"ba o^̬i٪ld(Wlq&6wh(Aja><\j4o_ߝ2C6Sи%gEBm&aXvKxSiǺ10 3uN[**'39@IS_z=_\󜺮1gY[>E'k⾲=;<-& Қ9:{ޯyJePRD)3S\_Ǵ7/ߌvm{AcLxj*3)Fgv4<%tz.i|Qq2U_|..n,'O+߫s6W s0~T&SopRĬ&gI25[.T7Wf3_Ԓ{[;{^9'HPNy b%L`EA;!wT׊p,=Ǫ&RY7TMe~KZۆb\_C|\Kchromono-1.1.1/data/sounds/sound_movable_sphere_release.ogg000066400000000000000000000101731410712601600241630ustar00rootroot00000000000000OggS~w@v@vorbis"V>OggS~wq_;vorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS~wCmK KLINIFOJBHG"OE6tqgS.~ko1 Hqug|Z?A\V*g ?ݪHU*_~qaBg(lrJյ9LA96P"G^jI6} LjFRej_KvJ =݉j`C*yinOKs\GolT \ɂR!fZӜ(}$ ng3h.3 )*OɫYOggSV(,=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS[V(q/A:5>8?@9=<;B::6==76A@69><<<>>68G8:;:8:>9569!C4cOwNGxv|סzc&]c\ylLP_OK J" "AGTbߝ u.Q?MݪT, NA&ta@xR9A 6|_gDe4|u@1*{񾔗<X:4L"I;䏉Z+24u[V@pri wsOAgVWS ;yj C_UKQa$ :"E;C(:jT?"-'?$oI@ZC2x х)u"CS^fͬPe!{8tv*6X#Ύ7&#>Mxb3`^S "?U% 6zc\ˑoW:7 `A#.j?c۠ J;&F䆹#u<HC(&?ʏnW+{'꠾;;/Ueð1 m~1$-lM0gpI$2R4EqA!fIV >I2*Oh@l8ѳ ̞'8"?g(1]ê ?5{%g wP&)6) ]8=Ck"JL;Vd0uTT|&+ƎP Hޅ "Ш8"CGGU&-wWOƔ!xü`Ӹ\{Vߋt@H}jC;&!Z~9t,mL|\Fuk bg An^)LC$#>qNrX_vCP qW&ԆSp:G;r6a*X;?kZAQM%2~R~1Cx+])H+/(BTNKpCWqSTO2\xvu׿*AnD͞[@c.f7h Ew2gOTe|1cxІ)p OggS+^=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSg+^ P?A?Ws"LUZ|F ^tl|m7ҥ miB[yk0+M{ǁs+?x_i&) S=Oס0tbQJAGn(dW=Dfk{R@&EWK}hce;6M4I4VBW`$B}:S, JN(v]w={T룙F?`.-*Qd!B-Lv̚~)ԲI~Wjb|j@%JZOis'82: AB@vNCdFr~& &ޘG0<0]֣̮wt=P%B?T9E=#T&gnLtS}&ޢ؂=m5,fj]7T5ӀT.C[\ r?ikaSwh&Lr|Mb=А`QDk$C]ۍ|a\r||u_VO7O5`fj chromono-1.1.1/data/sounds/sound_toggle_switch_off.ogg000066400000000000000000000073721410712601600231730ustar00rootroot00000000000000OggS]u0DRQ!vorbis"V>OggS]u0SM=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggSc ]u0"ZXL)4165 i޻8Te68E/N_<~q2`a,)*[V U>@OMMMYԔ2wET3[O~w`Ǟ_ 7cts7azX,Z^^ƅ pƜY^^^t^#T.aP@} 3jg;h7|)%ؗ$?sgU^(-ea'ΞG(+ .AQlv&AE |j[&g? 4:ue=3&$Hi*A ߕ_kk"ݝDޮb $!VgBB8)< @+(28"C/w#ȔQg6:ή6.%b3L"M$%chromono-1.1.1/data/sounds/sound_toggle_switch_on.ogg000066400000000000000000000073551410712601600230360ustar00rootroot00000000000000OggSȚBzܑpvorbis"V>OggSȚB5/q=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis"BCV ƀАUBFPGPPj xJaɘkB{Ͻ{ 4d@b1 B Q)Ba9 r: B .r Y0!B!B )R)b1s1 :褓N22ɨZJ-SlXk5kPc1c1c1BCV AdB!R)s1ǀАU Gɑɑ$I$K$,,O5QSEUuU۵}ۗ}wuٷ}vuYeYwm[uWu]u]u]u]u]u 4d #9#9#9#)d(8#9cIIYi&j((#Ii穞(iiiiiiiiiiii@h*@@qQqɑ$  YPG˱$,43=WMU YO$$O4M4M4M4M4M4M4M4M4M4M4M4M4M4MӀАU B1 4d1)%`!1![WuU@ eА@` cAhr9R9!sBdA99BZZ+ M Y GLueEUe6ŲDQUeٶcEUeu4QTUYmWSUeٶ}]82UUm[}#Um[ׅ*˶mQIm]7$۶q,񅡰,_8*VG8) ,4d%QJ)RJ)ƔR p0 "s9s9s9s9c1c1c1c1c1c1D8DXR)9礔RJ)ARJ)DI)RJ)qPJ)RJ)RJ)RJ RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ)RJ&P 6ΰtV8\hJ 7P9$JH%JI )VB :hRKJIB(RZ)%R2PJ!RJ ePB %RI-TJ PZ Z %A)R*JJR)JJ!RR)JkNR)-RkVJ)JIZk)VB)Z)%Rk-ZKRkJ)%ZkZ*)B)BjJ*-RIVZk)J(%Z*RhJI%J*)R*R*RkJ*-R+JJt`DiƕGB (@ dBPX`(]"HA\8qN"$dEt(]"HA\8qN\GHOggS ȚBԔTRF%:787wR%3ZUSn2<ϼ YM:%R`t [ Xž}"c.SnXE/SptXYNQh2'AM_X]$)x $KA&ypZP-tL]d[%{oy"CNGon?d7@U  x"6 ORf## =3d!) "?_NnV]2cbH]Im;MAIS$]vxxN H&Ao^m=ߪ,؈#9uy%;prz{` @(1\r"=kY; 2013-04-29 import sys import os import re import zlib if len(sys.argv) < 3: raise SystemExit('Missing parameters') shader_files = sys.argv[1:-1] output_file = sys.argv[-1] header_file = output_file.replace('.cpp', '.h') def mangle(filename): return os.path.basename(filename).replace('.', '_') def compact_shader_line(line): pos = line.find(b'//') if pos != -1: line = line[:pos] line = line.strip() return line def pack_shader(data): result = [] for line in data.splitlines(): line = compact_shader_line(line) if line: result.append(line) return re.sub(b'\\s+', b' ', b'\n'.join(result)) def get_data(filename): data = open(filename, 'rb').read() original_size = len(data) _, extension = os.path.splitext(filename) if extension in ('.vsh', '.fsh'): data = pack_shader(data) data = re.sub(r'\/\*.*\*\/', '', data.decode()).encode() uncompressed_size = len(data) data = zlib.compress(data, 9) compressed_size = len(data) return data, uncompressed_size def update_file(filename, contents): fp = open(filename + '.tmp', 'w') fp.write(contents) fp.close() os.rename(filename + '.tmp', filename) def to_char_array(data): COLUMNS = 13 result = [] line = [] for i, c in enumerate(data): line.append('0x%02x,' % c) if i % COLUMNS == (COLUMNS-1): result.append(''.join(line)) line = [] result.append(''.join(line)) return '\n'.join(result) output = [] header = [] header.append('#pragma once') header.append('#include "resources_util.h"') output.append('#include "resources_util.h"') for filename in shader_files: mangled = mangle(filename) data, uncompressed_size = get_data(filename) fn = os.path.basename(filename) compressed_size = len(data) data_c_source = to_char_array(data) output.append(f'const unsigned char {mangled}_data[] = {{\n{data_c_source}\n}};') output.append(f"""Resource {mangled} = {{ "{mangled}", {mangled}_data, {compressed_size}, {uncompressed_size}, }};""") header.append(f'extern Resource {mangled};') update_file(output_file, '\n'.join(output)) update_file(header_file, '\n'.join(header)) chromono-1.1.1/src/000077500000000000000000000000001410712601600141235ustar00rootroot00000000000000chromono-1.1.1/src/aboutscreen.cpp000066400000000000000000000063751410712601600171540ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "aboutscreen.h" #include "game.h" AboutScreen::AboutScreen(Game *game) : Page(game, Icons::BACK) , scene() , a(NULL) , b(NULL) , c(NULL) , opacity(0.f) { } void AboutScreen::render(OpenGLRenderer *renderer) { float y = 120; render_text_center(renderer, "chro.mono", FONT_XLARGE, &y); render_text_center(renderer, "Version 1.1.1", FONT_MEDIUM, &y); render_text_center(renderer, "Open Source Release", FONT_SMALL, &y); y += 30; render_text_center(renderer, "Copyright (c) 2021 Thomas Perl", FONT_MEDIUM, &y); render_text_center(renderer, "https://thp.io/2013/chromono/", FONT_MEDIUM, &y); y += 30; render_text_center(renderer, "[Legal notices]", FONT_MEDIUM, &y); float easter_egg_y_min = 275.; float easter_egg_y_max = 300.; if ((a->pos.y >= easter_egg_y_min && a->pos.y <= easter_egg_y_max && b->pos.y >= easter_egg_y_min && b->pos.y <= easter_egg_y_max && c->pos.y >= easter_egg_y_min && c->pos.y <= easter_egg_y_max) && (a->pos.x >= 375. && a->pos.x <= 390. && b->pos.x >= 504. && b->pos.x <= 510. && c->pos.x >= 587. && c->pos.x <= 592.)) { opacity = 1.f - 0.95f * (1.f - opacity); } else { opacity *= 0.95f; } if (opacity) { // Here comes the easter egg... // Cover the copyright line with the spheres so that the text reads: // "Copyright Th P" -> Easter egg decal will be shown renderer->decal(Circle1D::EASTEREGG, 660., 100., 0.3, 1.0, 0.5 * opacity); } scene.render(renderer); } void AboutScreen::handle(Circle1DEvent *event) { scene.handle(event); if (event->type == Circle1DEvent::MOUSEDOWN) { if ((event->x >= 308 && event->x <= 308 + 182 && event->y >= 372 && event->y <= 410)) { // "Legal notices" text game->to_copyright(); } } } bool AboutScreen::on_back_button() { game->to_menu(); return true; } void AboutScreen::render_background(OpenGLRenderer *renderer) { renderer->background(RGB(0x666666)); } void AboutScreen::on_exposed() { opacity = 0.f; scene.reset(); int flags = Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE; a = new Object(&scene, 600, 80, 50, flags, RGB(0.9, 0.5, 0.2)); b = new Object(&scene, 680, 170, 40, flags, RGB(0.2, 0.4, 0.8)); c = new Object(&scene, 720, 260, 30, flags, RGB(0.3, 0.8, 0.2)); } chromono-1.1.1/src/aboutscreen.h000066400000000000000000000027221410712601600166110ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_ABOUTSCREEN_H #define SHADYPOSTPROC_ABOUTSCREEN_H #include "shadypostproc.h" #include "circle1d.h" #include "page.h" class AboutScreen : public Page { public: AboutScreen(Game *game); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); virtual void render_background(OpenGLRenderer *renderer); virtual bool on_back_button(); virtual void on_exposed(); private: Scene scene; Object *a; Object *b; Object *c; float opacity; }; #endif /* SHADYPOSTPROC_ABOUTSCREEN_H */ chromono-1.1.1/src/changewatch.cpp000066400000000000000000000026751410712601600171150ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "changewatch.h" #include "opengl_renderer.h" #include ChangeWatch::ChangeWatch(void *handle, size_t len) : handle(handle) , len(len) , cached(malloc(len)) { memcpy(cached, handle, len); } ChangeWatch::ChangeWatch(const ChangeWatch &other) : handle(other.handle) , len(other.len) , cached(malloc(len)) { memcpy(cached, handle, len); } ChangeWatch::~ChangeWatch() { free(cached); } bool ChangeWatch::needs_update() { if (memcmp(handle, cached, len) != 0) { memcpy(cached, handle, len); return true; } return false; } chromono-1.1.1/src/changewatch.h000066400000000000000000000025551410712601600165570ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_CHANGEWATCH_H #define SHADYPOSTPROC_CHANGEWATCH_H #include "shadypostproc.h" class ChangeWatch { public: ChangeWatch(void *handle, size_t len); ChangeWatch(const ChangeWatch &other); ~ChangeWatch(); bool is(void *handle, size_t len) { return ((this->handle == handle) && (this->len == len)); } bool needs_update(); private: void *handle; size_t len; void *cached; }; #endif /* SHADYPOSTPROC_CHANGEWATCH_H */ chromono-1.1.1/src/choicescreen.cpp000066400000000000000000000063531410712601600172700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "choicescreen.h" #include "game.h" #include "colors.h" #include "constants.h" ChoiceScreen::ChoiceScreen(Game *game, ChoiceScreenButton *buttons, int count, enum Icons::Icon back) : Page(game, back) , m_time(0) , m_buttons(buttons) , m_count(count) { // Lay out buttons int total_width = 0; for (int i=0; i 0) { total_width += Constants::CHOICE_SCREEN_BUTTON_SPACING; } } int x = (Constants::WORLD_WIDTH - total_width) / 2; for (int i=0; ivisible)) { continue; } renderer->icon(b->icon, b->x, b->y, b->w, b->h, Colors::CHOICE, 0.5); #if 0 float text_w, text_h; renderer->text_measure(b->caption, &text_w, &text_h); renderer->text_render(b->caption, b->x + (b->w - text_w) / 2, b->y + b->h); #endif } } void ChoiceScreen::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::TICK) { m_time++; return; } Vec2 pos(event->x, event->y); for (int i=0; ivisible) { continue; } switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (b->finger == -1 && b->contains(pos)) { Platform::play(Sound::BUTTON_PRESS); b->finger = event->finger; } break; case Circle1DEvent::MOUSEMOTION: break; case Circle1DEvent::MOUSEUP: if (b->finger == event->finger) { b->finger = -1; if (b->contains(pos)) { Platform::play(Sound::BUTTON_RELEASE); b->action(game); } } break; default: /* do nothing */ break; } } } chromono-1.1.1/src/choicescreen.h000066400000000000000000000042701410712601600167310ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_CHOICESCREEN_H #define SHADYPOSTPROC_CHOICESCREEN_H #include "shadypostproc.h" #include "circle1d.h" #include "opengl_renderer.h" #include "icons.h" #include "constants.h" #include "page.h" class Game; struct ChoiceScreenButton { ChoiceScreenButton(const char *caption, enum Icons::Icon icon, game_lambda_t action) : x(0) , y(0) , w(Constants::CHOICE_SCREEN_BUTTON_SIZE) , h(Constants::CHOICE_SCREEN_BUTTON_SIZE) , visible(true) , finger(-1) , caption(caption) , icon(icon) , action(action) { } bool contains(Vec2 pos) { return ((x <= pos.x) && ((x + w) >= pos.x) && (y <= pos.y) && ((y + h) >= pos.y)); } int x; int y; int w; int h; bool visible; int finger; const char *caption; enum Icons::Icon icon; game_lambda_t action; }; class ChoiceScreen : public Page { public: ChoiceScreen(Game *game, ChoiceScreenButton *buttons, int count, enum Icons::Icon back=Icons::NONE); virtual ~ChoiceScreen(); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); protected: long m_time; private: ChoiceScreenButton *m_buttons; int m_count; }; #endif /* SHADYPOSTPROC_CHOICESCREEN_H */ chromono-1.1.1/src/circle1d.h000066400000000000000000000021501410712601600157600ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_ALL_HEADERS_H #define CIRCLE1D_ALL_HEADERS_H /* Circle1D includes */ #include "circle1d/content.h" #include "circle1d/model.h" #include "circle1d/renderer.h" #include "circle1d/event.h" #include "circle1d/rgb.h" #endif /* CIRCLE1D_ALL_HEADERS_H */ chromono-1.1.1/src/circle1d/000077500000000000000000000000001410712601600156115ustar00rootroot00000000000000chromono-1.1.1/src/circle1d/behaviors.h000066400000000000000000000753301410712601600177540ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_BEHAVIORS_H #define CIRCLE1D_BEHAVIORS_H #include "content.h" #include "../constants.h" #include "../colors.h" #include "../platform.h" #include #include #include class ObjectIsLightSourceBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(ObjectIsLightSourceBehavior) ObjectIsLightSourceBehavior(Scene *scene, Object *o) : Circle1DBehavior(scene) , o(o) { scene->light_source.enabled = true; scene->light_source.pos = o->pos; } virtual ~ObjectIsLightSourceBehavior() { } virtual void simulate() { scene->light_source.pos = o->pos; } private: Object *o; friend class ObjectIsLightSourceBehaviorIO; }; class ObjectIsLightSourceBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { ObjectIsLightSourceBehavior *b = dynamic_cast(behavior); int oid = scene->object_id(b->o); buffer << oid; } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int oid; buffer >> oid; return new ObjectIsLightSourceBehavior(scene, scene->object_from_id(oid)); } }; CIRCLE1D_BEHAVIOR_REGISTER(ObjectIsLightSourceBehavior, ObjectIsLightSourceBehaviorIO) class CenterOfObjectsLightSource : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(CenterOfObjectsLightSource) CenterOfObjectsLightSource(Scene *scene) : Circle1DBehavior(scene) , objects() { } void add(Object *object) { objects.push_back(object); scene->light_source.enabled = true; simulate(); } virtual ~CenterOfObjectsLightSource() { } virtual void simulate() { Vec2 center(0, 0); for (size_t i=0; ipos; } center /= objects.size(); scene->light_source.pos = center; } private: std::vector objects; friend class CenterOfObjectsLightSourceIO; }; class CenterOfObjectsLightSourceIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { CenterOfObjectsLightSource *c = dynamic_cast(behavior); int count = c->objects.size(); buffer << count; for (int i=0; iobject_id(c->objects[i]); } } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int count = buffer.read_int32(); CenterOfObjectsLightSource *result = new CenterOfObjectsLightSource(scene); for (int i=0; iadd(scene->object_from_id(buffer.read_int32())); } return result; } }; CIRCLE1D_BEHAVIOR_REGISTER(CenterOfObjectsLightSource, CenterOfObjectsLightSourceIO) class RotatingBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(RotatingBehavior) RotatingBehavior(Scene *scene, int cx, int cy, Object *o, float velocity=2.0, bool draw_spoke=false, float sx=1.0, float sy=1.0) : Circle1DBehavior(scene) , cx(cx) , cy(cy) , sx(sx) , sy(sy) , o(o) , phase(0) , radius(0) , velocity(velocity) , running(true) { // Debug: Show center of rotation + draw joint if (draw_spoke) { new Joint(scene, o, new Object(scene, cx, cy, 10, Object::FIXED)); } float x = (o->pos.x - cx); float y = (o->pos.y - cy); phase = atan2f(y, x); radius = sqrtf(x*x + y*y); } virtual ~RotatingBehavior() { } virtual void simulate() { if (running) { phase += velocity / 180.0 * M_PI; } o->pos.x = cx + sx * radius * cosf(phase); o->pos.y = cy + sy * radius * sinf(phase); } void set_running(bool running) { this->running = running; } virtual bool save(SerializeBuffer &buffer) { return false; } protected: int cx; int cy; float sx; float sy; Object *o; float phase; float radius; float velocity; bool running; friend class RotatingBehaviorIO; }; class RotatingBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { RotatingBehavior *r = dynamic_cast(behavior); int oid = scene->object_id(r->o); buffer << r->cx << r->cy << r->sx << r->sy << oid << r->phase << r->radius << r->velocity << int(r->running); } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int cx, cy, object_id, running; float sx, sy, phase, radius, velocity; buffer >> cx >> cy >> sx >> sy >> object_id >> phase >> radius >> velocity >> running; RotatingBehavior *result = new RotatingBehavior(scene, cx, cy, scene->object_from_id(object_id), velocity, false, sx, sy); result->phase = phase; result->radius = radius; result->velocity = velocity; result->running = running; return result; } }; CIRCLE1D_BEHAVIOR_REGISTER(RotatingBehavior, RotatingBehaviorIO) class RotatingBehaviorAround : public RotatingBehavior { public: CIRCLE1D_BEHAVIOR_BODY(RotatingBehaviorAround) RotatingBehaviorAround(Scene *scene, Object *center, Object *o, float velocity=2.0) : RotatingBehavior(scene, center->pos.x, center->pos.y, o, velocity) , center(center) { } virtual ~RotatingBehaviorAround() { } virtual void simulate() { cx = center->pos.x; cy = center->pos.y; RotatingBehavior::simulate(); } private: Object *center; }; class SwitchForRotatingBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(SwitchForRotatingBehavior) SwitchForRotatingBehavior(Scene *scene, Object *switch_object=NULL, bool is_on=false) : Circle1DBehavior(scene) , rotates() , switch_object(switch_object) , is_on(is_on) { } virtual ~SwitchForRotatingBehavior() { } virtual void simulate() { if (switch_object == NULL) { return; } bool new_on = switch_object->target_color.equals(switch_object->desired); if (new_on != is_on) { std::vector::iterator it; for (it=rotates.begin(); it != rotates.end(); ++it) { (*it)->set_running(new_on); } is_on = new_on; } } void set_switch(Object *switch_object) { this->switch_object = switch_object; } void add_rotate(RotatingBehavior *rotate) { rotates.push_back(rotate); rotate->set_running(is_on); } private: std::vector rotates; Object *switch_object; bool is_on; }; class SwitchForGravity : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(SwitchForGravity) SwitchForGravity(Scene *scene, Object *switch_object, Object *target_object) : Circle1DBehavior(scene) , switch_object(switch_object) , target_object(target_object) , is_on(!(target_object->flags & Object::NOGRAVITY)) { } virtual void simulate() { bool new_on = switch_object->target_color.equals(switch_object->desired); if (new_on != is_on) { if (new_on) { target_object->flags &= ~(Object::NOGRAVITY); } else { target_object->flags |= Object::NOGRAVITY; } is_on = new_on; } } private: Object *switch_object; Object *target_object; bool is_on; }; class ColorCombinationBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(ColorCombinationBehavior) enum Method { MIX, ADD, }; ColorCombinationBehavior(Scene *scene, Object *target, Object *a, Object *b, enum Method method=MIX) : Circle1DBehavior(scene) , target(target) , a(a) , b(b) , method(method) { // TODO: a and b should have SWITCHONLY flags new Joint(scene, a, target); new Joint(scene, b, target); } virtual ~ColorCombinationBehavior() { } virtual void simulate() { switch (method) { case MIX: target->target_color = RGB::mix(a->target_color, b->target_color); break; case ADD: target->target_color = RGB::add(a->target_color, b->target_color); break; } } private: Object *target; Object *a; Object *b; enum Method method; friend class ColorCombinationBehaviorIO; }; class ColorCombinationBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { ColorCombinationBehavior *c = dynamic_cast(behavior); int target_id = scene->object_id(c->target); int a_id = scene->object_id(c->a); int b_id = scene->object_id(c->b); buffer << target_id << a_id << b_id << int(c->method); } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int target_id, a_id, b_id, method; buffer >> target_id >> a_id >> b_id >> method; return new ColorCombinationBehavior(scene, scene->object_from_id(target_id), scene->object_from_id(a_id), scene->object_from_id(b_id), ColorCombinationBehavior::Method(method)); } }; CIRCLE1D_BEHAVIOR_REGISTER(ColorCombinationBehavior, ColorCombinationBehaviorIO) class SwitchToggleBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(SwitchToggleBehavior) SwitchToggleBehavior(Scene *scene, Object *switch_object, RGB green, RGB red) : Circle1DBehavior(scene) , switch_object(switch_object) , green(green) , red(red) , grabbed(false) { } virtual ~SwitchToggleBehavior() { } virtual void simulate() { bool new_grabbed = (switch_object->grabbed != -1); if (new_grabbed != grabbed) { grabbed = new_grabbed; if (grabbed) { if (switch_object->target_color.equals(green)) { switch_object->target_color = red; Platform::play(Sound::TOGGLE_SWITCH_OFF); } else { switch_object->target_color = green; Platform::play(Sound::TOGGLE_SWITCH_ON); } } } } private: Object *switch_object; RGB green; RGB red; bool grabbed; }; Object * build_switch(Scene *scene, int x, int y, RGB green, RGB red) { Object *switch_object = new Object(scene, x, y, 30, Object::COLORABLE | Object::FIXED | Object::COLLIDER | Object::SWITCHONLY | Object::CANGRAB, red); switch_object->desired = green; #if 0 Object *green_object = new Object(scene, x-30, y+30, 20, Object::COLLIDER, green); new Joint(scene, switch_object, green_object, Joint::RUBBERBAND); Object *red_object = new Object(scene, x+30, y+30, 20, Object::COLLIDER, red); new Joint(scene, switch_object, red_object, Joint::RUBBERBAND); #endif new SwitchToggleBehavior(scene, switch_object, green, red); return switch_object; } Object * build_color_mix(Scene *scene, int x, int y, bool is_leaf=false) { RGB black(0.2, 0.2, 0.2); int flags = Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY; if (!is_leaf) { flags |= Object::NOAUTOCOLOR; } Object *mix = new Object(scene, x, y, 30, flags, black); mix->desired = black; return mix; } Object * build_color_target(Scene *scene, int x, int y, RGB color) { Object *target = new Object(scene, x, y, 40, Object::FIXED | Object::COLLIDER | Object::COLORABLE | Object::NOAUTOCOLOR); target->desired = color; return target; } Object * build_paint_target(Scene *scene, int x, int y, RGB color) { return new Object(scene, x, y, 40, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, color); } class EmitterBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(EmitterBehavior) EmitterBehavior(Scene *scene, Object *emitter, Joint *joint, Object *target, bool auto_emit, Circle1DTime interval, Circle1DTime duration) : Circle1DBehavior(scene) , emitter(emitter) , joint(joint) , target(target) , auto_emit(auto_emit) , interval(interval) , duration(duration) , last_emission(-duration) , colorized(true) { } virtual ~EmitterBehavior() { } bool emit(bool force=false) { if (!force && (last_emission + duration >= scene->time)) { // Can't emit new one until current one has arrived return false; } last_emission = scene->time; colorized = false; return true; } virtual void simulate() { Circle1DTime now = scene->time; if (!colorized && (last_emission + duration < now)) { // arrived - color target to emitter target target->target_color = emitter->target_color; colorized = true; } if (auto_emit && (last_emission + interval < now)) { emit(); } joint->knot_color = emitter->target_color; joint->knot_at = 1.0 - ((float)(now - last_emission) / (float)duration); } public: Object *emitter; private: Joint *joint; Object *target; bool auto_emit; Circle1DTime interval; Circle1DTime duration; Circle1DTime last_emission; bool colorized; }; EmitterBehavior * build_emitter(Scene *scene, int x, int y, RGB color, int interval_ms, int duration_ms, Object *target, bool auto_emit=true) { // Right now we don't support more than one knot! SHADY_ASSERT(!auto_emit || duration_ms <= interval_ms); Object *emitter = new Object(scene, x, y, 30, Object::FIXED, color); Joint *joint = new Joint(scene, emitter, target, Joint::HAS_KNOT); return new EmitterBehavior(scene, emitter, joint, target, auto_emit, interval_ms / Constants::TICK_MS, duration_ms / Constants::TICK_MS); } class SwitchForEmitterBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(SwitchForEmitterBehavior) SwitchForEmitterBehavior(Scene *scene, Object *switch_object, EmitterBehavior *emitter_object, RGB color_after_emit, bool copy_color_on_emit=false) : Circle1DBehavior(scene) , switch_object(switch_object) , emitter_object(emitter_object) , color_after_emit(color_after_emit) , copy_color_on_emit(copy_color_on_emit) { } virtual ~SwitchForEmitterBehavior() { } virtual void simulate() { if (switch_object->color.equals(switch_object->desired)) { if (emitter_object->emit()) { if (copy_color_on_emit) { // When emitting, copy the switch color to the emitter emitter_object->emitter->target_color = switch_object->target_color; } switch_object->target_color = color_after_emit; } } } private: Object *switch_object; EmitterBehavior *emitter_object; RGB color_after_emit; bool copy_color_on_emit; }; class CopyColorBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(CopyColorBehavior) CopyColorBehavior(Scene *scene, Object *from, Object *to) : Circle1DBehavior(scene) , from(from) , to(to) { } virtual ~CopyColorBehavior() { } virtual void simulate() { to->target_color = from->target_color; } private: Object *from; Object *to; }; class AxisConstraintBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(AxisConstraintBehavior) AxisConstraintBehavior(Scene *scene, Object *constrained, bool major_is_xaxis, int major_axis_value, int minor_min, int minor_max, bool make_joint=true) : Circle1DBehavior(scene) , constrained(constrained) , major_is_xaxis(major_is_xaxis) , major_axis_value(major_axis_value) , minor_min(minor_min) , minor_max(minor_max) , topleft(0, 0) , bottomright(0, 0) { float size = 10; float overlap = 4; int minvalue = minor_min-constrained->size-size+overlap; int maxvalue = minor_max+constrained->size+size-overlap; float x1, y1, x2, y2; if (major_is_xaxis) { x1 = x2 = major_axis_value; y1 = minvalue; y2 = maxvalue; topleft = Vec2(major_axis_value, minor_min); bottomright = Vec2(major_axis_value, minor_max); } else { y1 = y2 = major_axis_value; x1 = minvalue; x2 = maxvalue; topleft = Vec2(minor_min, major_axis_value); bottomright = Vec2(minor_max, major_axis_value); } if (make_joint) { new Joint(scene, new Object(scene, x1, y1, size, Object::FIXED), new Object(scene, x2, y2, size, Object::FIXED), Joint::IS_RAIL); } simulate(); } virtual ~AxisConstraintBehavior() { } virtual void simulate() { constrained->pos.x = std::max(topleft.x, std::min(bottomright.x, constrained->pos.x)); constrained->pos.y = std::max(topleft.y, std::min(bottomright.y, constrained->pos.y)); } private: Object *constrained; bool major_is_xaxis; int major_axis_value; int minor_min; int minor_max; Vec2 topleft; Vec2 bottomright; friend class AxisConstraintBehaviorIO; }; class AxisConstraintBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { AxisConstraintBehavior *a = dynamic_cast(behavior); buffer << scene->object_id(a->constrained) << int(a->major_is_xaxis) << a->major_axis_value << a->minor_min << a->minor_max; } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int oid, major_is_xaxis, major_axis_value, minor_min, minor_max; buffer >> oid >> major_is_xaxis >> major_axis_value >> minor_min >> minor_max; return new AxisConstraintBehavior(scene, scene->object_from_id(oid), major_is_xaxis, major_axis_value, minor_min, minor_max, false); } }; CIRCLE1D_BEHAVIOR_REGISTER(AxisConstraintBehavior, AxisConstraintBehaviorIO) class XAxisOrderConstraint : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(XAxisOrderConstraint) XAxisOrderConstraint(Scene *scene, Object *left, Object *right) : Circle1DBehavior(scene) , left(left) , right(right) { } virtual ~XAxisOrderConstraint() { } virtual void simulate() { if (left->pos.x > right->pos.x) { float center = (left->pos.x + right->pos.x) / 2.f; left->pos.x = center - 1.f; right->pos.x = center + 1.f; } } private: Object *left; Object *right; friend class XAxisOrderConstraintIO; }; class XAxisOrderConstraintIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { XAxisOrderConstraint *x = dynamic_cast(behavior); buffer << scene->object_id(x->left) << scene->object_id(x->right); } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int left_id, right_id; buffer >> left_id >> right_id; return new XAxisOrderConstraint(scene, scene->object_from_id(left_id), scene->object_from_id(right_id)); } }; CIRCLE1D_BEHAVIOR_REGISTER(XAxisOrderConstraint, XAxisOrderConstraintIO) class YAxisPendulumBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(YAxisPendulumBehavior) YAxisPendulumBehavior(Scene *scene, Object *object, int ymin, int ymax, float factor=1.0, float phase=0.0) : Circle1DBehavior(scene) , object(object) , ymin(ymin) , ymax(ymax) , factor(factor) , phase(phase) { } virtual ~YAxisPendulumBehavior() { } virtual void simulate() { float value = sinf(phase + scene->time * factor); float center = (ymin + ymax) / 2.0; float radius = (ymax - ymin) / 2.0; object->pos.y = center + radius * value; } private: Object *object; int ymin; int ymax; float factor; float phase; friend class YAxisPendulumBehaviorIO; }; class YAxisPendulumBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { YAxisPendulumBehavior *y = dynamic_cast(behavior); buffer << scene->object_id(y->object) << y->ymin << y->ymax << y->factor << y->phase; } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int oid, ymin, ymax; float factor, phase; buffer >> oid >> ymin >> ymax >> factor >> phase; return new YAxisPendulumBehavior(scene, scene->object_from_id(oid), ymin, ymax, factor, phase); } }; CIRCLE1D_BEHAVIOR_REGISTER(YAxisPendulumBehavior, YAxisPendulumBehaviorIO) class XAxisPendulumBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(XAxisPendulumBehavior) XAxisPendulumBehavior(Scene *scene, Object *object, int xmin, int xmax, float factor=1.0, float phase=0.0) : Circle1DBehavior(scene) , object(object) , xmin(xmin) , xmax(xmax) , factor(factor) , phase(phase) { } virtual ~XAxisPendulumBehavior() { } virtual void simulate() { float value = sinf(phase + scene->time * factor); float center = (xmin + xmax) / 2.0; float radius = (xmax - xmin) / 2.0; object->pos.x = center + radius * value; } private: Object *object; int xmin; int xmax; float factor; float phase; friend class XAxisPendulumBehaviorIO; }; class XAxisPendulumBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { XAxisPendulumBehavior *x = dynamic_cast(behavior); buffer << scene->object_id(x->object) << x->xmin << x->xmax << x->factor << x->phase; } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int oid, xmin, xmax; float factor, phase; buffer >> oid >> xmin >> xmax >> factor >> phase; return new XAxisPendulumBehavior(scene, scene->object_from_id(oid), xmin, xmax, factor, phase); } }; CIRCLE1D_BEHAVIOR_REGISTER(XAxisPendulumBehavior, XAxisPendulumBehaviorIO) class UntangleLevel { public: UntangleLevel(Scene *scene, RGB color=RGB(0.5, 0.7, 0.9)) : scene(scene) , first(NULL) , previous(NULL) , color(color) { } Object *operator^(Vec2 pos) { return new Object(scene, pos.x, pos.y, 40, Object::NOGRAVITY | Object::BORDERBOUNCE | Object::COLLIDER, color); } UntangleLevel &operator<<(Vec2 pos) { return (*this) << ((*this) ^ pos); } UntangleLevel &operator<<(Object *current) { if (previous) { new Joint(scene, previous, current, Joint::UNTANGLE); } if (!first) { first = current; } previous = current; return *this; } void operator>>(bool loop) { if (loop && first && previous && first != previous) { new Joint(scene, previous, first, Joint::UNTANGLE); } first = NULL; previous = NULL; } UntangleLevel &operator||(Object *o) { o->flags |= Object::NODRAG; o->target_color = o->color = RGB(); return *this; } private: Scene *scene; Object *first; Object *previous; RGB color; }; std::vector build_chain(Scene *scene, Object *from_object, Object *to_object, int count, int flags, int object_flags=0) { std::vector result; Vec2 a_to_b = (from_object->pos - to_object->pos).normalize(); Vec2 a = from_object->pos - a_to_b * from_object->size; Vec2 b = to_object->pos + a_to_b * to_object->size; Object *last = from_object; for (int i=0; i result; Object *last = from_object; for (int i=0; ipos * position + ctrl * (1.0 - position); Vec2 b = ctrl * position + to_object->pos * (1.0 - position); Vec2 p = a * position + b * (1.0 - position); Object *current = new Object(scene, p.x, p.y, 10, Object::NODRAG | Object::COLLIDER | Object::SHADOWCAST); result.push_back(current); new Joint(scene, last, current, flags); last = current; } new Joint(scene, last, to_object, flags); } class BackgroundColorFromObjectBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(BackgroundColorFromObjectBehavior) BackgroundColorFromObjectBehavior(Scene *scene, Object *o) : Circle1DBehavior(scene) , o(o) { simulate(); } virtual ~BackgroundColorFromObjectBehavior() { } virtual void simulate() { scene->background_color = RGB::mix(RGB(0x000000), o->color); } private: Object *o; friend class BackgroundColorFromObjectBehaviorIO; }; class BackgroundColorFromObjectBehaviorIO : public Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) { BackgroundColorFromObjectBehavior *b = dynamic_cast(behavior); int oid = scene->object_id(b->o); buffer << oid; } virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) { int oid; buffer >> oid; return new BackgroundColorFromObjectBehavior(scene, scene->object_from_id(oid)); } }; CIRCLE1D_BEHAVIOR_REGISTER(BackgroundColorFromObjectBehavior, BackgroundColorFromObjectBehaviorIO) Object * build_simple_combiner(Scene *scene, RGB target, int x, int y, int x1, int y1, int x2, int y2, ColorCombinationBehavior::Method method=ColorCombinationBehavior::MIX) { Object *o1 = build_color_mix(scene, x1, y1, true); Object *o2 = build_color_mix(scene, x2, y2, true); Object *o3 = build_color_target(scene, x, y, target); new ColorCombinationBehavior(scene, o3, o1, o2, method); return o3; } #endif /* CIRCLE1D_BEHAVIORS_H */ chromono-1.1.1/src/circle1d/content.cpp000066400000000000000000002266571410712601600200110ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "content.h" #include "behaviors.h" #include "../constants.h" #include "../colors.h" #include #include #include void level1(Scene *scene); void level3(Scene *scene); void level4(Scene *scene); void level5(Scene *scene); void level11(Scene *scene); void level12(Scene *scene); void level13(Scene *scene); void level14(Scene *scene); void level15(Scene *scene); void level15a(Scene *scene); void level16(Scene *scene); void level17(Scene *scene); void level18(Scene *scene); void level19(Scene *scene); void level20(Scene *scene); void level21(Scene *scene); void level22(Scene *scene); void level23(Scene *scene); void level24(Scene *scene); void level30(Scene *scene); void level31(Scene *scene); void level32(Scene *scene); void level40(Scene *scene); void level41(Scene *scene); void level42(Scene *scene); void level50(Scene *scene); void level51(Scene *scene); void level52(Scene *scene); void level60(Scene *scene); void level61(Scene *scene); void level62(Scene *scene); void level62x(Scene *scene); void level70(Scene *scene); void level71(Scene *scene); void level72(Scene *scene); void level80(Scene *scene); void level81(Scene *scene); void level82(Scene *scene); void level90(Scene *scene); void level90x(Scene *scene); void level91(Scene *scene); void level92(Scene *scene); void level25(Scene *scene); void level26(Scene *scene); void level27(Scene *scene); void level35(Scene *scene); void level36(Scene *scene); void level37(Scene *scene); void level38(Scene *scene); void level43(Scene *scene); void level44(Scene *scene); void level45(Scene *scene); void level46(Scene *scene); void level47(Scene *scene); void placeholder_level(Scene *scene) {} void scene_square(Scene *scene); #define PLACEHOLDER {{0, 0, 0}, 0, placeholder_level} LevelInfo levels[] = { /* Introductory Levels */ {{3000, 2000, 1000}, 0, level17}, /* INTRO First level? */ {{1000, 600, 300}, 0, level30}, /* INTRO Level with 2 colors, 1 target */ {{1000, 600, 300}, 0, level31}, /* INTRO Level with 2 colors, 2 targets */ {{3000, 1400, 700}, 6, level80}, /* INTRO level with 4 targets, 1 color */ {{2000, 1200, 600}, 6, level81}, /* INTRO level with 4 targets, 3 colors */ {{1800, 1000, 500}, 6, level82}, /* INTRO level with 8 targets, 2 colors */ {{220, 150, 135}, 12, level50}, /* INTRO level with 2 colors, joints */ {{600, 330, 210}, 12, level51}, /* INTRO level with 2 colors, undraggable items + joints */ {{665, 500, 365}, 12, level52}, /* INTRO level with 3 colors, circle */ // 27 stars up to here /* Some of the first levels created */ {{1500, 1250, 950}, 20, level3}, /* MEDIUM pink, orange, yellow 2 mounted chains */ {{3000, 2000, 1000}, 20, level91}, /* Hanging dragon used to color things */ {{700, 400, 310}, 20, level5}, /* EASY sky + magenta dragon */ /* Chains */ {{450, 300, 180}, 25, level61}, /* EASY Chain level */ {{3000, 2000, 1000}, 27, level35}, /* MEDIUM Chain level */ {{1100, 650, 400}, 30, level60}, /* MEDIUM-HARD colored chain, 3 targets on top */ // 45 stars up to here /* Shapes levels */ {{3000, 2000, 1000}, 35, level90}, /* Red triangle level */ {{3000, 2000, 1000}, 35, level36}, /* RELAXING Chain level 4 */ {{1700, 1200, 900}, 35, level70}, /* MEDIUM-HARD 3 color blue/cyan square */ {{3000, 2000, 1000}, 42, level37}, /* RELAXING Chain level 5 */ {{2400, 1900, 1100}, 45, level4}, /* HARD light and dark green circle */ {{3000, 2000, 1000}, 47, level43}, /* INTRO breakable chain level */ {{3000, 2000, 1000}, 51, level44}, /* MEDIUM breakable chain level */ {{550, 350, 225}, 55, level62}, /* HARD Chain that needs to be "cut" / broken */ // 69 stars up to here /* Timing / Accuracy levels */ {{3000, 2000, 1000}, 60, level92}, /* One, moving left and right */ {{500, 300, 90}, 62, level72}, /* Two, moving up and down */ {{700, 400, 310}, 64, level24}, /* Three, moving up and down */ /* Rails Levels */ {{400, 250, 190}, 66, level23}, /* moving on rails */ {{600, 410, 350}, 68, level32}, /* moving on rails, harder */ {{1200, 900, 700}, 72, level71}, /* horizontal and vertical rails */ // 87 stars up to here /* Multi-Color Levels */ {{3000, 2000, 1000}, 74, level25}, /* EASY 2 paints, 1 target */ {{3000, 2000, 1000}, 76, level26}, /* MEDIUM 2 targets, 3 useful paints, 2 useless / unneeded paints */ {{3000, 2000, 1000}, 79, level27}, /* two-stage multi-color level with unneeded paints */ {{600, 400, 250}, 82, level13}, /* INTRO Introduction of multi-color objects */ {{240, 190, 150}, 85, level15}, /* two-stage multi-color level */ {{2000, 1000, 500}, 87, level15a}, /* two-stage multi-color level with 2 targets */ // 105 stars up to here /* Untangle / Planarity Levels */ {{3000, 2000, 1000}, 89, level45}, {{1500, 900, 500}, 91, level40}, {{1500, 900, 500}, 94, level41}, {{1500, 900, 500}, 96, level42}, {{3000, 2000, 1000}, 98, level46}, {{3000, 2000, 1000}, 100, level47}, // 123 stars up to here /* Special Levels */ {{550, 350, 225}, 85, level62x}, /* HARD Chain that needs to be "cut" / broken */ {{3000, 2000, 1000}, 90, level90x}, /* Red triangle level - HARD! */ {{3000, 2000, 1000}, 95, level38}, /* Chain level 6 (two yellow colorables) */ {{3000, 2000, 1000}, 105, level16}, /* HARD! more moving things (and switches) */ {{3000, 2000, 1000}, 115, level11}, /* MEDIUM-HARD First level with moving things */ {{1200, 480, 320}, 120, level19}, /* HARD multi color level */ //{{3000, 2000, 1000}, 420, level90x}, /* Just for testing the lock icon */ /* Emitter Levels */ //level21, /* INTRO emitting */ //level20, /* MEDIUM-HARD Emitting */ //level22, /* MEDIUM Emitting with timing */ /* XXX - Trash, rebuild/reuse */ //{{3000, 2000, 1000}, 0, level18}, /* INTRO Switch with arrow */ //{{3000, 2000, 1000}, 84, level12}, /* INTRO User learns how to use a switch (and nothing more) */ //{{3000, 2000, 1000}, 84, level14}, /* Level with two switches */ //level1, /* red blue chain */ {{0, 0, 0}, 0, NULL}, // sentinel }; void the_basics_behavior(Object *o); void ropes_behavior(Object *o); void puzzles_behavior(Object *o); void colorize_behavior(Object *o); void untangle_behavior(Object *o); LevelPack packs[] = { // Level IDs here are zero-based indices into the // levels array above. {"The Basics", 0, 8, the_basics_behavior, {100, 200, 60, RGB(0.2, 0.7, 0.9), true}}, {"Ropes", 9, 22, ropes_behavior, {320, 140, 55, RGB(0xe70b92), true}}, {"Rails", 23, 28, puzzles_behavior, {530, 130, 59, RGB(0.4, 0.9, 0.2), true}}, {"Mixers", 29, 34, colorize_behavior, {660, 300, 60, RGB(0xc0d700), true}}, {"Untangle", 35, 40, untangle_behavior, {470, 350, 50, RGB(0.5, 0.9, 0.7), true}}, {"Challenges", 41, 46, NULL, {270, 320, 65, RGB(0.6, 0.2, 0.6), false}}, {NULL, 0, 0, NULL, {0, 0, 0, RGB()}}, // sentinel }; class TheBasicsBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(TheBasicsBehavior) TheBasicsBehavior(Scene *scene, Object *center) : Circle1DBehavior(scene) , center(center) , moon_size(22) { RGB c = RGB::mix(RGB(0.0, 0.0, 0.0), center->target_color); moons[0] = new Object(scene, 0, 0, moon_size, Object::FIXED, c); moons[1] = new Object(scene, 0, 0, moon_size, Object::FIXED, c); simulate(); } virtual ~TheBasicsBehavior() { } virtual void simulate() { for (int i=0; i<2; i++) { float t = 0.02 * scene->time; float s = sinf(t + M_PI * i); float c = cosf(t + M_PI * i); moons[i]->size = std::max(0.f, moon_size * (1.f + c) / 2.f - 4.f); Vec2 offset(s * 70.0, c * 40.0); moons[i]->pos = center->pos + offset; } } private: Object *center; float moon_size; Object *moons[2]; }; void the_basics_behavior(Object *o) { new TheBasicsBehavior(o->scene, o); } class RopesBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(RopesBehavior) RopesBehavior(Scene *scene, Object *center) : Circle1DBehavior(scene) , center(center) , handle(NULL) { handle = new Object(scene, center->pos.x + center->size, center->pos.y - center->size - 15, 15, Object::FIXED, RGB::mix(RGB(0x000000), center->target_color)); simulate(); Object *prev = handle; for (int i=0; i<3; i++) { Object *cur = new Object(scene, handle->pos.x,//center->pos.x + center->size, center->pos.y - center->size + 25 * (i + 1), 15, Object::COLLIDER, RGB(0.8, 0.8, 0.9)); new Joint(scene, prev, cur); prev = cur; } } virtual ~RopesBehavior() { } virtual void simulate() { float t = 0.015 * (scene->time + 100); handle->pos.x = center->pos.x + 90.0 * sinf(t); } private: Object *center; Object *handle; }; void ropes_behavior(Object *o) { new RopesBehavior(o->scene, o); } class PuzzlesBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(PuzzlesBehavior) PuzzlesBehavior(Scene *scene, Object *center) : Circle1DBehavior(scene) , movable(NULL) { movable = new Object(scene, center->pos.x + center->size + 10, center->pos.y - center->size + 20, 15, Object::COLLIDER, RGB::mix(RGB(0x000000), center->target_color)); new AxisConstraintBehavior(scene, movable, true, movable->pos.x, center->pos.y - center->size / 2.0, center->pos.y + center->size / 2.0); } virtual ~PuzzlesBehavior() { } virtual void simulate() { float t = 0.01 * scene->time; movable->apply_force(Vec2(0.0, -20.0 * std::max(0.f, cosf(t)))); } private: Object *movable; }; void puzzles_behavior(Object *o) { new PuzzlesBehavior(o->scene, o); } class ColorizeBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(ColorizeBehavior) ColorizeBehavior(Scene *scene, Object *center) : Circle1DBehavior(scene) , ticks(0) { objects[0] = new Object(scene, center->pos.x + center->size + 5, center->pos.y - center->size * 0.8, 20, Object::FIXED | Object::COLORABLE | Object::NOAUTOCOLOR, RGB::mix(RGB(0xffffff), center->target_color)); objects[1] = new Object(scene, center->pos.x + center->size + 5, center->pos.y + center->size * 0.8, 20, objects[0]->flags, RGB::mix(RGB(0x000000), center->target_color)); // black taken from build_color_mix objects[0]->desired = objects[1]->desired = RGB(0.2, 0.2, 0.2); new Joint(scene, center, objects[0]); new Joint(scene, center, objects[1]); } virtual ~ColorizeBehavior() { } virtual void simulate() { ticks++; if (ticks == 100) { std::swap(objects[0]->target_color, objects[1]->target_color); ticks = 0; } } private: int ticks; Object *objects[2]; }; void colorize_behavior(Object *o) { new ColorizeBehavior(o->scene, o); } class UntangleBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(UntangleBehavior) UntangleBehavior(Scene *scene, Object *center) : Circle1DBehavior(scene) , center(center) { RGB color = RGB::mix(RGB(0x000000), center->target_color); a = new Object(scene, center->pos.x - center->size - 40, center->pos.y - center->size - 27, 15, Object::FIXED | Object::COLLIDER, color); b = new Object(scene, center->pos.x - 40, center->pos.y - center->size - 60, 15, Object::FIXED | Object::COLLIDER, RGB()); c = new Object(scene, center->pos.x + center->size - 40, center->pos.y - center->size - 20, 15, Object::FIXED | Object::COLLIDER, color); d = new Object(scene, center->pos.x - 40, center->pos.y - center->size - 10, 15, Object::FIXED | Object::COLLIDER, color); new Joint(scene, a, b, Joint::UNTANGLE); new Joint(scene, b, c, Joint::UNTANGLE); new Joint(scene, d, b, Joint::UNTANGLE); new Joint(scene, a, c, Joint::UNTANGLE); simulate(); } virtual ~UntangleBehavior() { } virtual void simulate() { float t = 0.023 * scene->time; d->pos.y = center->pos.y - center->size - 10 - 20 * (0.5 + 0.5 * sinf(t)); d->pos.x = center->pos.x - 40 + 20 * (0.5 + 0.5 * cosf(t * 0.9)); c->pos.y = center->pos.y - center->size - 20 - 20 * (0.5 + 0.5 * cosf(t * 1.3)); scene->checkUntanglement(); } private: Object *center; Object *a; Object *b; Object *c; Object *d; }; void untangle_behavior(Object *o) { new UntangleBehavior(o->scene, o); } void level36(Scene *scene) { RGB target(0x406849); Object *center = new Object(scene, 400, 240, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, target); Object *prev[4] = {center, center, center, center}; Vec2 dir[4] = { Vec2(-1, -1), Vec2(-1, +1), Vec2(+1, -1), Vec2(+1, +1), }; for (int i=0; i<2; i++) { for (int j=0; j<4; j++) { int x = center->pos.x + dir[j].x * 100 * (i+2) / (i+1); int y = center->pos.y + dir[j].y * 100 * (i+2) / (i+1); Object *cur = new Object(scene, x, y, 30, Object::COLORABLE | Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE | Object::NODRAG); cur->desired = target; new Joint(scene, prev[j], cur); prev[j] = cur; } } } void level37(Scene *scene) { RGB target1(0x2b556d); RGB target2(0xab7425); Object *prev = NULL; for (int i=0; i<15; i++) { int x = 15 + 55 * i; int y = 240 + 220. * sinf((float)i / 14.f * M_PI * 2.0); Object *cur = new Object(scene, x, y, 30, Object::COLORABLE | Object::COLLIDER | Object::NODRAG | Object::NOGRAVITY | Object::BORDERBOUNCE); if (i < 5) { cur->desired = target1; } else if (i > 9) { cur->desired = target2; } else { cur->desired = (i % 2 == 0) ? target1 : target2; } if (prev != NULL) { new Joint(scene, prev, cur, Joint::RUBBERBAND); } prev = cur; } new Object(scene, 300, 140, 50, Object::COLLIDER | Object::NOGRAVITY | Object::STAYINVIEW, target1); new Object(scene, 500, 320, 50, Object::COLLIDER | Object::NOGRAVITY | Object::STAYINVIEW, target2); } void level43(Scene *scene) { RGB black(0x222222); RGB troll(0x009f5e); Object *nail = new Object(scene, 240, 240, 20, Object::FIXED | Object::COLLIDER, black); Object *paint = new Object(scene, 380, 240, 50, Object::BORDERBOUNCE | Object::COLLIDER, troll); std::vector chain = build_chain(scene, nail, paint, 5, Joint::STRONG | Joint::BREAKABLE); (new Object(scene, 630, 40, 50, Object::FIXED | Object::COLORABLE | Object::COLLIDER))->desired = troll; } void level44(Scene *scene) { // 20 RGB black(0x333333); RGB white(0xcccccc); RGB vio(0x571da0); Object *nail = new Object(scene, 400, 0, 20, Object::FIXED | Object::COLLIDER, black); Object *target = new Object(scene, 700, 300, 50, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target->desired = vio; new Object(scene, 270, 170, 80, Object::FIXED | Object::COLLIDER); new Object(scene, 400, 300, 80, Object::FIXED | Object::COLLIDER); new Object(scene, 280, 20, 50, Object::COLLIDER | Object::BORDERBOUNCE | Object::NODRAG, vio); Object *handle = new Object(scene, 250, 370, 40, Object::COLLIDER | Object::BORDERBOUNCE, white); build_chain(scene, nail, handle, 17, Joint::STRONG | Joint::BREAKABLE); } void level38(Scene *scene) { RGB sky(0xc0d700); RGB white(0xdddddd); Object *paint = new Object(scene, 100, 200, 30, Object::COLLIDER | Object::NODRAG | Object::BORDERBOUNCE, sky); Object *handle = new Object(scene, 400, 200, 50, Object::COLLIDER | Object::BORDERBOUNCE, white); build_chain(scene, paint, handle, 16, Joint::STRONG); new Object(scene, 200, 280, 60, Object::COLLIDER | Object::FIXED | Object::NOOVERLAP); (new Object(scene, 400, 80, 60, Object::COLLIDER | Object::COLORABLE | Object::FIXED | Object::NOOVERLAP))->desired = sky; (new Object(scene, 500, 280, 60, Object::COLLIDER | Object::COLORABLE | Object::FIXED | Object::NOOVERLAP))->desired = sky; } void level35(Scene *scene) { RGB pink(0xe70b92); RGB white(0xeeeeee); // Chain level Object *anchor = new Object(scene, 380, 200, 70, Object::FIXED | Object::COLLIDER | Object::NOOVERLAP); new ObjectIsLightSourceBehavior(scene, anchor); (new Object(scene, 240, 30, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE))->desired = pink; Object *paint = new Object(scene, 300, 200, 30, Object::COLLIDER | Object::BORDERBOUNCE | Object::NODRAG, pink); Object *handle = new Object(scene, 500, 100, 50, Object::COLLIDER | Object::BORDERBOUNCE, white); bezier_chain(scene, paint, handle, Vec2(300, -100), 10, Joint::RUBBERBAND | Joint::STRONG); } void level90(Scene *scene) { RGB color1(0xcc3322); RGB color2(0xffaa55); Object *p1 = new Object(scene, 400, 220, 40, Object::NOGRAVITY | Object::COLLIDER | Object::SHADOWCAST | Object::BORDERBOUNCE, color1); Object *p2 = new Object(scene, 400, 320, 40, Object::NOGRAVITY | Object::COLLIDER | Object::SHADOWCAST | Object::BORDERBOUNCE, color2); new Joint(scene, p1, p2); CenterOfObjectsLightSource *cools = new CenterOfObjectsLightSource(scene); cools->add(p1); cools->add(p2); Object *top = new Object(scene, 400, 80, 15, Object::NOGRAVITY | Object::NODRAG | Object::COLLIDER | Object::COLORABLE | Object::BORDERBOUNCE | Object::SHADOWCAST); top->desired = color1; Object *left = new Object(scene, 210, 400, top->size, top->flags); left->desired = color1; Object *right = new Object(scene, 590, 400, top->size, top->flags); right->desired = color1; Object *from[3] = {top, left, right}; Object *to[3] = {right, top, left}; Object *prev[3] = {from[0], from[1], from[2]}; int steps = 8; for (int i=0; ipos * alpha) + (from[j]->pos * (1.f - alpha)); Object *cur = new Object(scene, pos.x, pos.y, top->size, top->flags); cur->desired = (i < 2 || i > steps-3) ? color1 : color2; new Joint(scene, prev[j], cur); prev[j] = cur; } } for (int j=0; j<3; j++) { new Joint(scene, prev[j], to[j]); } } void level90x(Scene *scene) { RGB color1(0x33cc22); RGB color2(0xff55aa); Object *p2 = new Object(scene, 400, 160, 40, Object::NOGRAVITY | Object::COLLIDER | Object::SHADOWCAST | Object::NODRAG, color2); Object *p1 = new Object(scene, 400, 260, 40, Object::NOGRAVITY | Object::COLLIDER | Object::SHADOWCAST, color1); new Joint(scene, p1, p2); CenterOfObjectsLightSource *cools = new CenterOfObjectsLightSource(scene); cools->add(p1); cools->add(p2); Object *top = new Object(scene, 400, 400, 20, Object::NOGRAVITY | Object::NODRAG | Object::COLLIDER | Object::COLORABLE | Object::BORDERBOUNCE); top->desired = color1; Object *left = new Object(scene, 210, 80, top->size, top->flags); left->desired = color1; Object *right = new Object(scene, 590, 80, top->size, top->flags); right->desired = color1; Object *from[3] = {top, left, right}; Object *to[3] = {right, top, left}; Object *prev[3] = {from[0], from[1], from[2]}; int steps = 8; for (int i=0; ipos * alpha) + (from[j]->pos * (1.f - alpha)); Object *cur = new Object(scene, pos.x, pos.y, top->size, top->flags); cur->desired = (i < 2 || i > steps-3) ? color1 : color2; new Joint(scene, prev[j], cur); prev[j] = cur; } } for (int j=0; j<3; j++) { new Joint(scene, prev[j], to[j]); } } void level91(Scene *scene) { /* Hanging dragon used to color things */ RGB black(0.2, 0.2, 0.2); RGB alpha(0.2, 0.9, 0.5); RGB beta(0.9, 0.9, 0.2); Object *nail = new Object(scene, 400, 50, 20, Object::FIXED, black); Object *a = new Object(scene, 400, 100, 30, Object::COLLIDER | Object::NODRAG, alpha); Object *b = new Object(scene, 360, 150, 30, a->flags, beta); Object *c = new Object(scene, 440, 150, 30, a->flags, beta); Object *d = new Object(scene, 400, 230, 50, Object::COLLIDER, alpha); new Joint(scene, nail, a, Joint::RUBBERBAND | Joint::STRONG); new Joint(scene, a, b, Joint::FIXED); new Joint(scene, a, c, Joint::FIXED); new Joint(scene, b, c, Joint::FIXED); new Joint(scene, b, d, Joint::FIXED); new Joint(scene, c, d, Joint::FIXED); new Joint(scene, a, d, Joint::FIXED); (new Object(scene, 200, 200, 50, Object::COLORABLE | Object::FIXED | Object::COLLIDER))->desired = alpha; (new Object(scene, 600, 200, 50, Object::COLORABLE | Object::FIXED | Object::COLLIDER))->desired = beta; (new Object(scene, 180, 400, 50, Object::COLORABLE | Object::FIXED | Object::COLLIDER))->desired = beta; (new Object(scene, 620, 400, 50, Object::COLORABLE | Object::FIXED | Object::COLLIDER))->desired = alpha; } void level92(Scene *scene) { /* One, moving left and right */ RGB targetcolor(0x11dd44); RGB stopcolor(0x779988); int top_row_y = 220; int left_x = 400 - 200; int right_x = 400 + 200; int size = 50; int tsize = 30; int target_size = 26; int overlap = 5; int pendulum_x_min = left_x + tsize + target_size - overlap; int pendulum_x_max = right_x - tsize - target_size + overlap; Object *target_left = new Object(scene, left_x + 300, top_row_y, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_left->desired = targetcolor; new AxisConstraintBehavior(scene, target_left, false, top_row_y, left_x+tsize, right_x-tsize); new XAxisPendulumBehavior(scene, target_left, pendulum_x_min, pendulum_x_max, 0.055, 20.0); new Object(scene, left_x, top_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, right_x, top_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, 400, 360, size, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, targetcolor); } void level80(Scene *scene) { /* INTRO level with 4 targets, 1 color */ RGB color(0xaaffee); (new Object(scene, 200, 100, 50, Object::FIXED | Object::SHADOWCAST | Object::COLLIDER | Object::COLORABLE))->desired = color; (new Object(scene, 600, 100, 50, Object::FIXED | Object::SHADOWCAST | Object::COLLIDER | Object::COLORABLE))->desired = color; (new Object(scene, 200, 380, 50, Object::FIXED | Object::SHADOWCAST | Object::COLLIDER | Object::COLORABLE))->desired = color; (new Object(scene, 600, 380, 50, Object::FIXED | Object::SHADOWCAST | Object::COLLIDER | Object::COLORABLE))->desired = color; Object *c = new Object(scene, 400, 240, 60, Object::BORDERBOUNCE | Object::COLLIDER | Object::NOGRAVITY, color); new ObjectIsLightSourceBehavior(scene, c); } void level81(Scene *scene) { /* INTRO level with 4 targets, 3 colors */ RGB color1(0xee9933); RGB color2(0xee1199); RGB color3(0x9977ee); int flags = Object::FIXED | Object::COLLIDER | Object::COLORABLE; Object *o1 = new Object(scene, 400, 100, 30, flags); new ObjectIsLightSourceBehavior(scene, o1); o1->desired = color1; flags |= Object::SHADOWCAST; (new Object(scene, 220, 100, 50, flags))->desired = color2; (new Object(scene, 400, 380, 40, flags))->desired = color3; (new Object(scene, 610, 380, 60, flags))->desired = color1; flags = Object::BORDERBOUNCE | Object::COLLIDER | Object::NOGRAVITY | Object::SHADOWCAST; new Object(scene, 400, 240, 60, flags, color1); new Object(scene, 600, 160, 60, flags, color2); new Object(scene, 200, 300, 60, flags, color3); } void level82(Scene *scene) { /* INTRO level with 8 targets, 2 colors */ RGB color1(0x460145); RGB color2(0x276786); scene->set_custom_background_color(RGB::mix(RGB(1.0, 1.0, 1.0), color1, 0.4)); for (int i=0; i<8; i++) { int x = 240 + (i / 4) * 500; x += (-i * 30); int y = 100 + (i % 4) * 100; RGB c = ((i % 2) ^ (i / 4)) ? color1 : color2; (new Object(scene, x, y, 50, Object::FIXED | Object::COLLIDER | Object::COLORABLE))->desired = c; } new Object(scene, 380, 350, 60, Object::BORDERBOUNCE | Object::COLLIDER | Object::NOGRAVITY, color1); new Object(scene, 360, 200, 60, Object::BORDERBOUNCE | Object::COLLIDER | Object::NOGRAVITY, color2); } void level72(Scene *scene) { RGB targetcolor(0x1166dd); RGB stopcolor(0xaa9eef); int top_row_y = 120; int bottom_row_y = 480 - 120; int left_x = 400 - 100; int right_x = 400 + 100; int size = 50; int tsize = 30; int target_size = 26; int overlap = 5; int pendulum_y_min = top_row_y + tsize + target_size - overlap; int pendulum_y_max = bottom_row_y - tsize - target_size + overlap; Object *target_left = new Object(scene, left_x, bottom_row_y - 100, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_left->desired = targetcolor; new AxisConstraintBehavior(scene, target_left, true, left_x, top_row_y+tsize, bottom_row_y-tsize); new YAxisPendulumBehavior(scene, target_left, pendulum_y_min, pendulum_y_max, 0.02, 20.0); Object *target_right = new Object(scene, right_x, bottom_row_y - 110, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_right->desired = targetcolor; new AxisConstraintBehavior(scene, target_right, true, right_x, top_row_y+tsize, bottom_row_y-tsize); new YAxisPendulumBehavior(scene, target_right, pendulum_y_min, pendulum_y_max, 0.028, 14.0); new Object(scene, left_x, top_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, left_x, bottom_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, right_x, top_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, right_x, bottom_row_y, tsize, Object::FIXED | Object::COLLIDER, stopcolor); new Object(scene, 400, 240, size, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, targetcolor); } void level71(Scene *scene) { RGB yellow(0.8, 0.9, 0.3); RGB cyan(0.1, 0.8, 0.9); RGB magenta(0.6, 0.3, 0.9); for (int i=0; i<6; i++) { Object *target = new Object(scene, 185 + i*90, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); switch (i % 3) { case 0: target->desired = yellow; break; case 1: target->desired = cyan; break; case 2: target->desired = magenta; break; } } int rails_top = 105; int rails_bottom = 240 + (240 - rails_top); int rails_left = 100; int rails_right = 700; Object *movable2 = new Object(scene, 120, 0, 80, Object::NOGRAVITY | Object::COLLIDER, cyan); new AxisConstraintBehavior(scene, movable2, false, rails_top, rails_left, rails_right); Object *movable3 = new Object(scene, 320, 0, 80, Object::NOGRAVITY | Object::COLLIDER, magenta); new AxisConstraintBehavior(scene, movable3, false, rails_top, rails_left, rails_right); // movable 2 must always be left of movable 3 new XAxisOrderConstraint(scene, movable2, movable3); Object *movable1 = new Object(scene, 500, 0, 80, Object::NOGRAVITY | Object::COLLIDER, yellow); new AxisConstraintBehavior(scene, movable1, false, rails_bottom, rails_left, rails_right); Object *movable4 = new Object(scene, 680, 0, 80, Object::NOGRAVITY | Object::COLLIDER, cyan); new AxisConstraintBehavior(scene, movable4, false, rails_bottom, rails_left, rails_right); // movable 1 must always be left of movable 4 new XAxisOrderConstraint(scene, movable1, movable4); } void level70(Scene *scene) { RGB blue1(0x1eafe5); RGB blue2(0x0df3d5); RGB blue3(0x003b84); Object *paint1 = new Object(scene, 400, 200, 40, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST, blue1); Object *paint2 = new Object(scene, 350, 280, 40, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST, blue2); Object *paint3 = new Object(scene, 450, 280, 40, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST, blue3); CenterOfObjectsLightSource *cools = new CenterOfObjectsLightSource(scene); cools->add(paint1); cools->add(paint2); cools->add(paint3); new Joint(scene, paint1, paint2); new Joint(scene, paint2, paint3); new Joint(scene, paint1, paint3); Object *grid[7][7]; for (int x=0; x<7; x++) { for (int y=0; y<7; y++) { if (x == 0 || x == 6 || y == 0 || y == 6) { float xp = 400 + 60 * (x - 3); float yp = 240 + 60 * (y - 3); Object *o = new Object(scene, xp, yp, 20, Object::NOGRAVITY | Object::COLLIDER | Object::COLORABLE | Object::NODRAG | Object::BORDERBOUNCE | Object::SHADOWCAST); if ((std::abs(x - y) < 2) || (std::abs(x - (6-y)) < 2)) { o->desired = blue3; } else if (x > y) { o->desired = blue2; } else { o->desired = blue1; } grid[x][y] = o; } } } for (int x=0; x<6; x++) { new Joint(scene, grid[x][0], grid[x+1][0]); new Joint(scene, grid[x][6], grid[x+1][6]); new Joint(scene, grid[0][x], grid[0][x+1]); new Joint(scene, grid[6][x], grid[6][x+1]); } /* MEDIUM-HARD 3 color blue/cyan square*/ } void level62x(Scene *scene) { RGB black(0.2, 0.2, 0.2); RGB white(0.8, 0.8, 0.8); RGB alpha(0.9, 0.4, 0.2); RGB beta(0.5, 0.2, 0.9); Object *nail1 = new Object(scene, 100, 50, 20, Object::FIXED, black); Object *nail2 = new Object(scene, 700, 50, 20, Object::FIXED, black); int width = (nail2->pos.x - nail1->pos.x); int steps = 7; float spacing2 = width / (steps + 1); Object *prev = nail1; for (int i=0; ipos.x + (i+1) * spacing2, 50, 20, Object::COLLIDER | Object::NODRAG | Object::BORDERBOUNCE, (i < steps / 2) ? alpha : beta); if (i == 0) { new Joint(scene, prev, cur); Object *handle1 = new Object(scene, cur->pos.x, cur->pos.y + 100, 50, Object::BORDERBOUNCE | Object::COLLIDER, white); new Joint(scene, handle1, cur, Joint::STRONG); } else { new Joint(scene, prev, cur, Joint::STRONG); } prev = cur; } Object *handle1 = new Object(scene, prev->pos.x, prev->pos.y + 100, 50, Object::BORDERBOUNCE | Object::COLLIDER, white); new Joint(scene, handle1, prev, Joint::STRONG); new Joint(scene, prev, nail2); Object *target1 = new Object(scene, 300, 450, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target1->desired = alpha; Object *target2 = new Object(scene, 500, 450, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target2->desired = beta; } void level62(Scene *scene) { RGB black(0.2, 0.2, 0.2); RGB white(0.8, 0.8, 0.8); RGB alpha(0.2, 0.4, 0.9); RGB beta(0.4, 0.9, 0.2); Object *nail1 = new Object(scene, 100, 50, 20, Object::FIXED, black); Object *nail2 = new Object(scene, 700, 50, 20, Object::FIXED, black); int width = (nail2->pos.x - nail1->pos.x); int steps = 7; float spacing2 = width / (steps + 1); Object *prev = nail1; for (int i=0; ipos.x + (i+1) * spacing2, 50, 20, Object::COLLIDER | Object::NODRAG | Object::BORDERBOUNCE, (i < steps / 2) ? alpha : beta); if (i == 0) { new Joint(scene, prev, cur, Joint::BREAKABLE); Object *handle1 = new Object(scene, cur->pos.x, cur->pos.y + 100, 50, Object::BORDERBOUNCE | Object::COLLIDER, white); new Joint(scene, handle1, cur, Joint::STRONG); } else { new Joint(scene, prev, cur, Joint::STRONG); } prev = cur; } Object *handle1 = new Object(scene, prev->pos.x, prev->pos.y + 100, 50, Object::BORDERBOUNCE | Object::COLLIDER, white); new Joint(scene, handle1, prev, Joint::STRONG); new Joint(scene, prev, nail2, Joint::BREAKABLE); Object *target1 = new Object(scene, 300, 450, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target1->desired = beta; Object *target2 = new Object(scene, 500, 450, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target2->desired = alpha; } void level61(Scene *scene) { RGB white(0.7, 0.7, 0.7); RGB green(0.9, 0.5, 0.1); RGB red(0.9, 0.1, 0.5); RGB blue(0.7, 0.9, 0.2); new Object(scene, 100, 220, 70, Object::FIXED | Object::COLLIDER, white); new Object(scene, 250, 220, 70, Object::FIXED | Object::COLLIDER, white); new Object(scene, 400, 220, 70, Object::FIXED | Object::COLLIDER, white); new Object(scene, 550, 220, 70, Object::FIXED | Object::COLLIDER, white); new Object(scene, 700, 220, 70, Object::FIXED | Object::COLLIDER, white); Object *first = NULL; Object *prev = NULL; int count = 15; for (int i=0; ipos.x, first->pos.y + 30, 20, Object::COLLIDER | Object::BORDERBOUNCE | Object::NODRAG, red); new Joint(scene, first, paint1); Object *paint2 = new Object(scene, prev->pos.x, prev->pos.y + 30, 20, Object::COLLIDER | Object::BORDERBOUNCE | Object::NODRAG, blue); new Joint(scene, prev, paint2); new Object(scene, first->pos.x, 450, 30, Object::FIXED | Object::COLLIDER, white); new Object(scene, prev->pos.x, 450, 30, Object::FIXED | Object::COLLIDER, white); Object *target1 = new Object(scene, first->pos.x + 100, 400, 30, Object::COLLIDER | Object::COLORABLE | Object::BORDERBOUNCE | Object::NODRAG); target1->desired = red; Object *target2 = new Object(scene, prev->pos.x - 100, 400, 30, Object::COLLIDER | Object::COLORABLE | Object::BORDERBOUNCE | Object::NODRAG); target2->desired = blue; } void level60(Scene *scene) { RGB black(0.1, 0.1, 0.1); RGB grey(0.3, 0.3, 0.3); RGB white(0.8, 0.8, 0.8); Object *nail1 = new Object(scene, 100, 20, 10, Object::FIXED, black); Object *holder1 = new Object(scene, 100, 150, 40, Object::COLLIDER | Object::NODRAG, grey); new Joint(scene, nail1, holder1, Joint::FIXED); Object *handle1 = new Object(scene, 100, 230, 60, Object::COLLIDER, white); new Joint(scene, holder1, handle1); Object *nail2 = new Object(scene, 700, 20, 10, Object::FIXED, black); Object *holder2 = new Object(scene, 700, 150, 40, Object::COLLIDER | Object::NODRAG, grey); new Joint(scene, nail2, holder2, Joint::FIXED); Object *handle2 = new Object(scene, 700, 230, 60, Object::COLLIDER, white); new Joint(scene, holder2, handle2); RGB colors[] = { grey, grey, grey, RGB(0.7, 0.9, 0.5), // RGB(0.9, 0.7, 0.5), // RGB(0.5, 0.7, 0.9), // grey, grey, grey, }; Object *prev = holder1; for (int i=0; i<9; i++) { Object *cur = new Object(scene, 170 + i * 57, 160, 10, Object::COLLIDER | Object::NODRAG, colors[i]); new Joint(scene, prev, cur, Joint::FIXED); prev = cur; } new Joint(scene, prev, holder2, Joint::FIXED); Object *target1 = new Object(scene, 300, 100, 40, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target1->desired = colors[3]; Object *target2 = new Object(scene, 400, 80, 40, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target2->desired = colors[4]; Object *target3 = new Object(scene, 500, 100, 40, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target3->desired = colors[5]; } void level50(Scene *scene) { RGB yellow(0.8, 0.6, 0.3); RGB blue(0.3, 0.3, 0.8); Object *target1 = new Object(scene, 600, 80, 70, Object::COLLIDER | Object::FIXED | Object::COLORABLE); target1->desired = yellow; Object *target2 = new Object(scene, 600, 400, 70, Object::COLLIDER | Object::FIXED | Object::COLORABLE); target2->desired = blue; Object *paint1 = new Object(scene, 200, 300, 50, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, yellow); Object *paint2 = new Object(scene, 200, 180, 50, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, blue); new Joint(scene, paint1, paint2, Joint::FIXED); } void level51(Scene *scene) { RGB greenish(0.6, 0.9, 0.1); RGB veilchen(0xd909b9); int flags = Object::COLLIDER | Object::FIXED | Object::COLORABLE; Object *target1 = new Object(scene, 300, 90, 50, flags); target1->desired = greenish; Object *target2 = new Object(scene, 300, 190, 50, flags); target2->desired = veilchen; Object *target3 = new Object(scene, 300, 290, 50, flags); target3->desired = greenish; Object *target4 = new Object(scene, 300, 390, 50, flags); target4->desired = veilchen; flags = Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE; Object *paint1 = new Object(scene, 400, 240, 50, flags | Object::NODRAG, greenish); Object *paint2 = new Object(scene, 570, 240, 50, flags, veilchen); new Joint(scene, paint1, paint2, Joint::FIXED); } void level52(Scene *scene) { RGB orange(0xffa300); RGB lime(0x00ff8a); RGB red(0xc30909); scene->light_source.enabled = true; scene->light_source.pos = Vec2(400, 480); int flags = Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST; new Object(scene, 330, 340, 50, flags, orange); new Object(scene, 400, 340, 50, flags, lime); new Object(scene, 470, 340, 50, flags, red); Object *prev = NULL; for (int i=0; i<8; i++) { flags = Object::COLORABLE | Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::NODRAG | Object::SHADOWCAST; Object *target1 = new Object(scene, 400 + 300 * cosf((float)i/7. * M_PI), 400 - 350 * sinf((float)i/7. * M_PI), 30, flags); if (i == 0 || i == 7) { target1->desired = red; } else { target1->desired = (i%2 == 0) ? lime : orange; } if (prev != NULL) { new Joint(scene, prev, target1); } prev = target1; } } void level45(Scene *scene) { UntangleLevel u(scene); new HintDecal(scene, Circle1D::UNTANGLE, 350, 350); Object *a = u ^ Vec2(300, 170); Object *b = u ^ Vec2(500, 170); Object *c = u ^ Vec2(350, 300); Object *d = u ^ Vec2(450, 300); u << b << d << a << b << c << a >> false; } void level46(Scene *scene) { UntangleLevel u(scene, RGB(0.9, 0.9, 0.7)); Object *a = u ^ Vec2(393, 73); Object *b = u ^ Vec2(459, 408); Object *c = u ^ Vec2(574, 208); Object *d = u ^ Vec2(251, 336); Object *e = u ^ Vec2(524, 114); Object *f = u ^ Vec2(342, 402); Object *g = u ^ Vec2(282, 134); Object *h = u ^ Vec2(563, 344); Object *i = u ^ Vec2(217, 227); u << a << b << c << d << e << f << g << h >> true; u << b << i << c >> false; u << h << i << e >> false; u << g << e >> true; u || a || g || h || b; } void level47(Scene *scene) { UntangleLevel u(scene, RGB(0.4, 0.9, 0.4)); Object *a = u ^ Vec2(615, 331); Object *b = u ^ Vec2(467, 426); Object *c = u ^ Vec2(493, 77) ; Object *d = u ^ Vec2(297, 427); Object *e = u ^ Vec2(339, 73) ; Object *f = u ^ Vec2(383, 440); Object *g = u ^ Vec2(184, 157); Object *h = u ^ Vec2(556, 411); Object *i = u ^ Vec2(619, 161); Object *j = u ^ Vec2(174, 247); Object *k = u ^ Vec2(183, 328); Object *l = u ^ Vec2(624, 245); Object *m = u ^ Vec2(218, 404); u << a << b << c << d << e << f << g << h << i << j << k >> true; u << c << m << e >> false; u << a << k << l << b >> false; u << m << l << g >> false; u << j << k << i >> false; u || c || e; } void level42(Scene *scene) { UntangleLevel u(scene, RGB(0.9, 0.5, 0.7)); Object *a = u^Vec2(335, 87); Object *b = u^Vec2(276, 275); Object *c = u^Vec2(403, 207); Object *d = u^Vec2(552, 258); Object *e = u^Vec2(331, 375); Object *f = u^Vec2(548, 133); Object *g = u^Vec2(515, 361); Object *h = u^Vec2(241, 185); u << a << c << e << d >> true; u << c << f << e >> false; u << c << b << g << h << f >> false; u || b || d || f || h; } void level41(Scene *scene) { UntangleLevel untangle(scene, RGB(0.5, 0.9, 0.7)); Object *a = untangle ^ Vec2(298, 386); Object *b = untangle ^ Vec2(339, 149); Object *c = untangle ^ Vec2(199, 62); Object *d = untangle ^ Vec2(603, 70); Object *e = untangle ^ Vec2(473, 150); Object *f = untangle ^ Vec2(519, 385); untangle << a << d << b << e << c << f << b << e << a >> false; untangle << a << b << c >> false; untangle << d << e << f >> false; } void level40(Scene *scene) { UntangleLevel untangle(scene, RGB(0.9, 0.7, 0.5)); float angle = 0.0; float radius = 100.0; for (int i=0; i<5; i++) { angle += 145.0 / 180.0 * M_PI; untangle << Vec2(400 + radius * sinf(angle), 240 + radius * cosf(angle)); } untangle >> true; } void level31(Scene *scene) { RGB alpha(0xaacc88); RGB beta(0xee66cc); Object *target = new Object(scene, 400, 240 + 160, 70, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target->desired = alpha; Object *target2 = new Object(scene, 400, 240 - 160, 70, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target2->desired = beta; new Object(scene, 700, 240 - 100, 60, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, beta); new Object(scene, 100, 240 + 100, 60, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, alpha); } void level30(Scene *scene) { RGB alpha(0xaa9977); RGB beta(0x557799); scene->set_custom_background_color(alpha); Object *target = new Object(scene, 600, 240, 50, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target->desired = alpha; new Object(scene, 300, 240 - 120, 60, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, beta); new Object(scene, 300, 240 + 120, 60, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, alpha); } void level24(Scene *scene) { RGB topleft(0x8727a7); RGB topcenter(0x7a3fc4); RGB topright(0xc43fb6); RGB bottomleft = topcenter; RGB bottomcenter = topright; RGB bottomright = topleft; RGB targetleft(0x7090f0); RGB targetcenter(0x3060e0); RGB targetright(0x001090); int top_row_y = 90; int bottom_row_y = 480 - 90; int left_x = 400 - 200; int center_x = 400; int right_x = 400 + 200; int size = 45; int target_size = 26; int overlap = 5; int pendulum_y_min = top_row_y + size + target_size - overlap; int pendulum_y_max = bottom_row_y - size - target_size + overlap; Object *target_left = new Object(scene, left_x, bottom_row_y - 100, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_left->desired = targetleft; new AxisConstraintBehavior(scene, target_left, true, left_x, top_row_y+size, bottom_row_y-size); new YAxisPendulumBehavior(scene, target_left, pendulum_y_min, pendulum_y_max, 0.01); Object *target_center = new Object(scene, center_x, top_row_y + 120, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_center->desired = targetcenter; new AxisConstraintBehavior(scene, target_center, true, center_x, top_row_y+size, bottom_row_y-size); new YAxisPendulumBehavior(scene, target_center, pendulum_y_min, pendulum_y_max, 0.006, 10.0); Object *target_right = new Object(scene, right_x, bottom_row_y - 110, target_size, Object::COLORABLE | Object::COLLIDER | Object::FIXED); target_right->desired = targetright; new AxisConstraintBehavior(scene, target_right, true, right_x, top_row_y+size, bottom_row_y-size); new YAxisPendulumBehavior(scene, target_right, pendulum_y_min, pendulum_y_max, 0.008, 14.0); new Object(scene, left_x, top_row_y, size, Object::FIXED | Object::COLLIDER, topleft); new Object(scene, left_x, bottom_row_y, size, Object::FIXED | Object::COLLIDER, bottomleft); new Object(scene, center_x, top_row_y, size, Object::FIXED | Object::COLLIDER, topcenter); new Object(scene, center_x, bottom_row_y, size, Object::FIXED | Object::COLLIDER, bottomcenter); new Object(scene, right_x, top_row_y, size, Object::FIXED | Object::COLLIDER, topright); new Object(scene, right_x, bottom_row_y, size, Object::FIXED | Object::COLLIDER, bottomright); new Object(scene, left_x+10, 180, size, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, targetcenter); new Object(scene, center_x-10, 240, size, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, targetright); new Object(scene, right_x-10, 250, size, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE, targetleft); } void level32(Scene *scene) { RGB yellow(0.9, 0.3, 0.2); RGB magenta(0.3, 0.9, 0.2); for (int i=0; i<8; i++) { Object *target = new Object(scene, 85 + i*90, 240, 40, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target->desired = (i%2==0)?yellow:magenta; } int rails_top = 170; int rails_bottom = 240 + (240 - rails_top); int rails_left = 100; int rails_right = 700; Object *movable2 = new Object(scene, 220, 0, 40, Object::NOGRAVITY | Object::COLLIDER, magenta); new AxisConstraintBehavior(scene, movable2, false, rails_top, rails_left, rails_right); Object *movable4 = new Object(scene, 580, 0, 40, Object::NOGRAVITY | Object::COLLIDER, yellow); new AxisConstraintBehavior(scene, movable4, false, rails_bottom, rails_left, rails_right); } void level23(Scene *scene) { RGB yellow(0.6, 0.65, 0.2); RGB magenta(0.1, 0.4, 0.7); Object *target = new Object(scene, 220, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target->desired = yellow; Object *target2 = new Object(scene, 340, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target2->desired = magenta; Object *target3 = new Object(scene, 460, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target3->desired = yellow; Object *target4 = new Object(scene, 580, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target4->desired = magenta; Object *movable2 = new Object(scene, 270, 0, 40, Object::NOGRAVITY | Object::COLLIDER, magenta); new AxisConstraintBehavior(scene, movable2, false, 145, 200, 600); Object *movable4 = new Object(scene, 530, 0, 40, Object::NOGRAVITY | Object::COLLIDER, yellow); new AxisConstraintBehavior(scene, movable4, false, 240 + (240 - 145), 200, 600); } void level22(Scene *scene) { RGB green(0.4, 0.8, 0.4); RGB red(0.8, 0.4, 0.3); RGB black(0.2, 0.2, 0.2); int duration = 1000; int a_to_b_ms = 2000; int b_to_c_ms = 5000; int c_to_d_ms = 7000; Object *switch_for_green = build_switch(scene, 360, 300, green, black); switch_for_green->target_color = black; Object *switch_for_red = build_switch(scene, 520, 300, red, black); switch_for_red->target_color = black; Object *d = new Object(scene, 200, 300, 30, Object::FIXED | Object::COLORABLE, black); EmitterBehavior *c = build_emitter(scene, 200, 100, black, c_to_d_ms, duration, d, true); EmitterBehavior *b = build_emitter(scene, 400, 100, black, b_to_c_ms, duration, c->emitter, true); EmitterBehavior *a = build_emitter(scene, 450, 200, switch_for_green->target_color, a_to_b_ms, duration, b->emitter, true); new SwitchForEmitterBehavior(scene, switch_for_green, a, black, true); new SwitchForEmitterBehavior(scene, switch_for_red, a, black, true); new Joint(scene, switch_for_green, a->emitter); new Joint(scene, switch_for_red, a->emitter); b->emitter->desired = red; b->emitter->flags |= Object::COLORABLE; c->emitter->desired = green; c->emitter->flags |= Object::COLORABLE; d->desired = red; } void level21(Scene *scene) { RGB cyan(0.2, 0.7, 0.9); RGB red(0.9, 0.2, 0.4); Object *target = new Object(scene, 600, 240, 80, Object::FIXED | Object::COLORABLE | Object::NOAUTOCOLOR); target->desired = cyan; EmitterBehavior *emitter1 = build_emitter(scene, 200, 240, cyan, 0, 3000, target, false); Object *switch_object = build_switch(scene, 200, 240, cyan, red); new SwitchForEmitterBehavior(scene, switch_object, emitter1, red); } void level20(Scene *scene) { RGB green(0.4, 0.9, 0.2); RGB red(0.9, 0.2, 0.4); RGB blue(0.2, 0.4, 0.9); Object *target = new Object(scene, 400, 240, 80, Object::FIXED | Object::COLORABLE | Object::NOAUTOCOLOR); target->desired = green; EmitterBehavior *emitter1 = build_emitter(scene, 90, 260, green, 0, 3000, target, false); Object *switch_object = build_switch(scene, 90, 260, green, red); new SwitchForEmitterBehavior(scene, switch_object, emitter1, red); build_emitter(scene, 800-60, 60, blue, 1300, 1300, target); } void level19(Scene *scene) { scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); RGB green(0.4, 0.9, 0.2); RGB red(0.9, 0.2, 0.4); RGB blue(0.2, 0.4, 0.9); RGB c_a = red; RGB c_b = green; RGB c_c = blue; RGB c_d = green; RGB c_i = blue; RGB c_j = blue; RGB c_k = red; RGB c_l = green; RGB c_e = RGB::mix(c_a, c_b); RGB c_f = RGB::mix(c_c, c_d); RGB c_g = RGB::mix(c_i, c_j); RGB c_h = RGB::mix(c_k, c_l); RGB c_m = RGB::mix(c_e, c_f); RGB c_n = RGB::mix(c_e, c_h); RGB c_o = RGB::mix(c_g, c_h); Object *a = build_color_mix(scene, 200, 120, true); Object *b = build_color_mix(scene, 200, 200, true); Object *c = build_color_mix(scene, 200, 280, true); Object *d = build_color_mix(scene, 200, 360, true); Object *e = build_color_mix(scene, 300, 180); Object *f = build_color_mix(scene, 300, 300); Object *g = build_color_mix(scene, 500, 180); Object *h = build_color_mix(scene, 500, 300); Object *i = build_color_mix(scene, 600, 120, true); Object *j = build_color_mix(scene, 600, 200, true); Object *k = build_color_mix(scene, 600, 280, true); Object *l = build_color_mix(scene, 600, 360, true); Object *m = build_color_target(scene, 400, 120, c_m); Object *n = build_color_target(scene, 400, 240, c_n); Object *o = build_color_target(scene, 400, 360, c_o); new ColorCombinationBehavior(scene, e, a, b); new ColorCombinationBehavior(scene, f, c, d); new ColorCombinationBehavior(scene, g, i, j); new ColorCombinationBehavior(scene, h, k, l); new ColorCombinationBehavior(scene, m, e, f); new ColorCombinationBehavior(scene, n, e, h); new ColorCombinationBehavior(scene, o, g, h); build_paint_target(scene, 100, 120, red); build_paint_target(scene, 100, 240, green); build_paint_target(scene, 100, 360, blue); build_paint_target(scene, 700, 120, red); build_paint_target(scene, 700, 240, green); build_paint_target(scene, 700, 360, blue); } void level25(Scene *scene) { RGB ca(0x88aa00); RGB cb(0x660000); new HintDecal(scene, Circle1D::COLOR_LEFT, 200, 370); new HintDecal(scene, Circle1D::COLOR_RIGHT, 600, 370); RGB target = RGB::add(ca, cb); Object *a = build_color_mix(scene, 300, 300, true); Object *b = build_color_mix(scene, 500, 300, true); Object *c = build_color_target(scene, 400, 200, target); c->size = 70; scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); new BackgroundColorFromObjectBehavior(scene, c); new ColorCombinationBehavior(scene, c, a, b, ColorCombinationBehavior::ADD); build_paint_target(scene, 100, 360, ca)->size = 60; build_paint_target(scene, 700, 360, cb)->size = 60; } void level26(Scene *scene) { RGB c1(0xff0000); RGB c2(0x00ff00); RGB c3(0x0000ff); RGB c4(0xff00ff); RGB c5(0x00ffff); RGB c6(0xffff00); RGB target1 = RGB::mix(c2, c5); Object *a1 = build_color_mix(scene, 200, 300, true); Object *a2 = build_color_mix(scene, 300, 300, true); Object *a3 = build_color_target(scene, 250, 200, target1); new ColorCombinationBehavior(scene, a3, a1, a2, ColorCombinationBehavior::MIX); RGB target2 = RGB::mix(c1, c6); Object *b1 = build_color_mix(scene, 500, 300, true); Object *b2 = build_color_mix(scene, 600, 300, true); Object *b3 = build_color_target(scene, 550, 200, target2); new ColorCombinationBehavior(scene, b3, b1, b2, ColorCombinationBehavior::MIX); build_paint_target(scene, 100, 200, c1); build_paint_target(scene, 100, 300, c2); build_paint_target(scene, 100, 400, c3); build_paint_target(scene, 700, 200, c4); build_paint_target(scene, 700, 300, c5); build_paint_target(scene, 700, 400, c6); scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); } void level27(Scene *scene) { RGB c1(0xff0000); RGB c2(0x00ff00); RGB c3(0x0000ff); RGB c4(0xff00ff); RGB c5(0x00ffff); RGB c6(0xffff00); RGB target1 = RGB::mix(c1, c2); RGB target2 = RGB::mix(c3, c4); RGB target3 = RGB::mix(c5, c6); build_simple_combiner(scene, target1, 400, 200, 300, 170, 500, 170); build_simple_combiner(scene, target2, 340, 300, 200, 200, 200, 300); build_simple_combiner(scene, target3, 460, 300, 600, 200, 600, 300); int offset = 140; build_paint_target(scene, 100, 240 - offset, c1); build_paint_target(scene, 100, 240, c2); build_paint_target(scene, 100, 240 + offset, c3); build_paint_target(scene, 700, 240 - offset, c4); build_paint_target(scene, 700, 240, c5); build_paint_target(scene, 700, 240 + offset, c6); scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); } void level18(Scene *scene) { RGB green(0.4, 0.9, 0.2); RGB red(0.9, 0.2, 0.4); RGB lemon(0.7, 0.9, 0.2); /* Arrow */ for (int i=0; i<4; i++) { new Object(scene, 240, 700-(330+i*30), 20, Object::FIXED); new Object(scene, 240-(3-i)*20, 700-(390+i*20), 20, Object::FIXED); new Object(scene, 240+(3-i)*20, 700-(390+i*20), 20, Object::FIXED); } Object *gravity_switch = build_switch(scene, 240, 120, green, red); Object *falling = new Object(scene, 600, 140, 60, Object::NOGRAVITY | Object::NODRAG | Object::COLLIDER, lemon); new SwitchForGravity(scene, gravity_switch, falling); Object *target = new Object(scene, 600, 340, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target->desired = lemon; } void level17(Scene *scene) { RGB cyan(0.2, 0.7, 0.9); new HintDecal(scene, Circle1D::INTRO_ARROW, 400, 240); new Object(scene, 200, 240, 60, Object::NOGRAVITY | Object::BORDERBOUNCE | Object::COLLIDER, cyan); Object *target = new Object(scene, 600, 240, 60, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target->desired = cyan; } void level16(Scene *scene) { RGB green(0.4, 0.9, 0.2); RGB red(0.9, 0.2, 0.4); RGB blue(0.2, 0.4, 0.9); Object *switch_a = build_switch(scene, 80, 80, green, red); Object *switch_b = build_switch(scene, 800-80, 480-120, green, red); new HintDecal(scene, Circle1D::ON_OFF, 80, 80+60); new HintDecal(scene, Circle1D::ON_OFF, 800-80, 480-120+60); Object *top_rotater = new Object(scene, 200, 80, 40, Object::FIXED | Object::COLLIDER); SwitchForRotatingBehavior *top_switch = new SwitchForRotatingBehavior(scene, switch_a); top_switch->add_rotate(new RotatingBehavior(scene, 400, 80, top_rotater, 3.0, true, 1.0, 0.3)); Object *bottom_rotater = new Object(scene, 600, 480-80, 40, Object::FIXED | Object::COLLIDER); SwitchForRotatingBehavior *bottom_switch = new SwitchForRotatingBehavior(scene, switch_b); bottom_switch->add_rotate(new RotatingBehavior(scene, 400, 480-80, bottom_rotater, 3.0, true, 1.0, 0.3)); Object *blueball = new Object(scene, 400, 240, 60, Object::NODRAG | Object::NOGRAVITY | Object::COLLIDER, blue); new Joint(scene, top_rotater, blueball); new Joint(scene, bottom_rotater, blueball); Object *target_bottomleft = new Object(scene, 60, 420, 40, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target_bottomleft->desired = blue; Object *target_topright = new Object(scene, 800-60, 480-420, 40, Object::FIXED | Object::COLORABLE | Object::COLLIDER); target_topright->desired = blue; } void level15a(Scene *scene) { RGB red(1.0, 0.2, 0.1); RGB blue(0.1, 0.2, 1.0); RGB green(0.2, 1.0, 0.1); RGB black(0.2, 0.2, 0.2); RGB color_c = RGB::mix(RGB::mix(red, blue), green); RGB color_d = RGB::mix(RGB::mix(red, red), green); Object *target_d = new Object(scene, 200, 140, 80, Object::FIXED | Object::COLLIDER | Object::COLORABLE | Object::NOAUTOCOLOR); target_d->desired = color_d; Object *target_c = new Object(scene, 200, 340, 80, Object::FIXED | Object::COLLIDER | Object::COLORABLE | Object::NOAUTOCOLOR); target_c->desired = color_c; Object *target_a = new Object(scene, 420, 140, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::NOAUTOCOLOR | Object::SWITCHONLY, black); target_a->desired = black; Object *target_b = new Object(scene, 420, 340, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::NOAUTOCOLOR | Object::SWITCHONLY, black); target_b->desired = black; Object *mix_a = new Object(scene, 550, 80, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_a->desired = black; Object *mix_b = new Object(scene, 550, 160, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_b->desired = black; Object *mix_e = new Object(scene, 550, 240, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_e->desired = black; Object *mix_c = new Object(scene, 550, 320, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_c->desired = black; Object *mix_d = new Object(scene, 550, 400, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_d->desired = black; new ColorCombinationBehavior(scene, target_d, target_a, mix_e, ColorCombinationBehavior::MIX); new ColorCombinationBehavior(scene, target_c, target_b, mix_e, ColorCombinationBehavior::MIX); new ColorCombinationBehavior(scene, target_a, mix_a, mix_b, ColorCombinationBehavior::MIX); new ColorCombinationBehavior(scene, target_b, mix_c, mix_d, ColorCombinationBehavior::MIX); new Object(scene, 700, 240 - 120, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, green); new Object(scene, 700, 240, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, red); new Object(scene, 700, 240 + 120, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, blue); scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); new BackgroundColorFromObjectBehavior(scene, target_c); } void level15(Scene *scene) { RGB red(1.0, 0.2, 0.1); RGB blue(0.1, 0.2, 1.0); RGB green(0.2, 1.0, 0.1); RGB black(0.2, 0.2, 0.2); RGB a = RGB::mix(red, blue); RGB b = RGB::mix(blue, green); RGB c = RGB::mix(a, b); Object *target_c = new Object(scene, 290, 240, 80, Object::FIXED | Object::COLLIDER | Object::COLORABLE | Object::NOAUTOCOLOR); target_c->desired = c; Object *target_a = new Object(scene, 420, 140, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::NOAUTOCOLOR | Object::SWITCHONLY, black); target_a->desired = black; Object *target_b = new Object(scene, 420, 340, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::NOAUTOCOLOR | Object::SWITCHONLY, black); target_b->desired = black; new ColorCombinationBehavior(scene, target_c, target_a, target_b, ColorCombinationBehavior::MIX); Object *mix_a = new Object(scene, 550, 80, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_a->desired = black; Object *mix_b = new Object(scene, 550, 200, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_b->desired = black; new ColorCombinationBehavior(scene, target_a, mix_a, mix_b, ColorCombinationBehavior::MIX); Object *mix_c = new Object(scene, 550, 280, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_c->desired = black; Object *mix_d = new Object(scene, 550, 400, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); mix_d->desired = black; new ColorCombinationBehavior(scene, target_b, mix_c, mix_d, ColorCombinationBehavior::MIX); new Object(scene, 700, 240 - 120, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, green); new Object(scene, 700, 240, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, red); new Object(scene, 700, 240 + 120, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, blue); scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); new BackgroundColorFromObjectBehavior(scene, target_c); } void level14(Scene *scene) { RGB green(0.4, 0.9, 0.1); RGB red(0.9, 0.3, 0.4); RGB desired(0.3, 0.1, 0.4); new HintDecal(scene, Circle1D::ON_OFF, 150, 260); Object *switch_object1 = build_switch(scene, 150, 190, green, red); Object *switch_object2 = build_switch(scene, 150, 340, green, red); Object *paint = new Object(scene, 420, 200, 30, Object::COLLIDER | Object::FIXED, desired); Object *rotater = new Object(scene, 600, 200, 30, Object::FIXED); SwitchForRotatingBehavior *switch1 = new SwitchForRotatingBehavior(scene, switch_object1); switch1->add_rotate(new RotatingBehavior(scene, 500, 100, rotater, 1.5, true)); SwitchForRotatingBehavior *switch2 = new SwitchForRotatingBehavior(scene, switch_object2); switch2->add_rotate(new RotatingBehaviorAround(scene, rotater, paint, 1.5)); new Joint(scene, rotater, paint); Object *target = new Object(scene, 400, 400, 80, Object::COLLIDER | Object::FIXED | Object::COLORABLE); target->desired = desired; } void level13(Scene *scene) { scene->set_custom_background_color(Colors::COLOR_MIX_BACKGROUND_COLOR); RGB red(0.6, 0.2, 0.3); RGB blue(0.3, 0.2, 0.6); RGB green(0.2, 0.6, 0.3); RGB black(0.2, 0.2, 0.2); Object *target = new Object(scene, 400, 140, 80, Object::FIXED | Object::COLORABLE | Object::NOAUTOCOLOR | Object::COLLIDER); target->desired = RGB::add(red, green); Object *left = new Object(scene, 500, 300, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); left->desired = black; Object *right = new Object(scene, 530, 180, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); right->desired = black; new ColorCombinationBehavior(scene, target, left, right, ColorCombinationBehavior::ADD); Object *target2 = new Object(scene, 300, 300, 80, Object::FIXED | Object::COLORABLE | Object::NOAUTOCOLOR | Object::COLLIDER); target2->desired = RGB::add(blue, red); Object *left2 = new Object(scene, 400, 400, 30, Object::FIXED | Object::COLORABLE | Object::COLLIDER | Object::SWITCHONLY, black); left2->desired = black; new ColorCombinationBehavior(scene, target2, left, left2, ColorCombinationBehavior::ADD); new Object(scene, 700, 240-150, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, red); new Object(scene, 700, 240, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, blue); new Object(scene, 700, 240+150, 50, Object::NOGRAVITY | Object::COLLIDER | Object::BORDERBOUNCE, green); } void level12(Scene *scene) { RGB green(0.1, 0.6, 0.2); RGB red(0.6, 0.2, 0.2); RGB yellow(0.8, 0.7, 0.1); new HintDecal(scene, Circle1D::ON_OFF, 400, 270); Object *target = new Object(scene, 160, 200, 30, Object::FIXED | Object::COLLIDER | Object::COLORABLE); target->desired = yellow; SwitchForRotatingBehavior *rotating_switch = new SwitchForRotatingBehavior(scene); Object *spoke = NULL; for (int i=0; i<12; i++) { float x = 120.0 * sinf((float)i*30.0 / 180.0 * M_PI); float y = 120.0 * cosf((float)i*30.0 / 180.0 * M_PI); Object *o = new Object(scene, 400+x, 240+y, 40, Object::FIXED | Object::COLLIDER); if (i == 3) { spoke = o; } rotating_switch->add_rotate(new RotatingBehavior(scene, 400, 240, o, 0.8)); } rotating_switch->set_switch(build_switch(scene, 400, 220, green, red)); Object *last = spoke; for (int i=0; i<5; i++) { Object *o = new Object(scene, 580, 240+20*i, 10, Object::COLLIDER | Object::NODRAG); if (last != NULL) { new Joint(scene, last, o, Joint::RUBBERBAND | Joint::FIXED); } last = o; } Object *o = new Object(scene, 580, 240+20* /*i=*/5+30, 40, Object::COLLIDER | Object::NODRAG, yellow); new Joint(scene, last, o, Joint::RUBBERBAND | Joint::STRONG | Joint::FIXED); } void level11(Scene *scene) { RGB green(0.2, 0.7, 0.4); RGB blue(0.5, 0.6, 0.8); RGB red(0.8, 0.4, 0.4); new HintDecal(scene, Circle1D::PENDULUM, 600, 100); Object *a = new Object(scene, 300, 240, 30, Object::FIXED | Object::COLLIDER | Object::COLORABLE | Object::SHADOWCAST); //new ObjectIsLightSourceBehavior(scene, a); a->desired = green; new RotatingBehavior(scene, 200, 240, a, 2.0); Object *nail = new Object(scene, 400, 10, 10, Object::FIXED); Object *handle = new Object(scene, 400, 400, 40, Object::SHADOWCAST | Object::COLLIDER); Object *b = new Object(scene, 400, 240, 30, Object::COLLIDER | Object::NODRAG | Object::COLORABLE | Object::COLORTRANSFER | Object::SHADOWCAST); b->desired = red; Object *redpaint = new Object(scene, 90, 40, 30, Object::COLLIDER | Object::FIXED, red); new ObjectIsLightSourceBehavior(scene, redpaint); new Joint(scene, nail, b, Joint::STRONG); new Joint(scene, b, handle, Joint::STRONG); Object *c = new Object(scene, 630, 240, 30, Object::FIXED | Object::COLLIDER | Object::SHADOWCAST, green); new RotatingBehavior(scene, 700, 240, c, 1.0); Object *d = new Object(scene, 450, 240, 30, Object::FIXED | Object::COLLIDER | Object::SHADOWCAST, blue); new RotatingBehavior(scene, 600, 200, d, 3.0); } void scene_square(Scene *scene) { int radius = 60; Object *a = new Object(scene, 10, 10, radius, Object::COLLIDER); Object *b = new Object(scene, 10, 150, radius, Object::COLLIDER); Object *c = new Object(scene, 150, 150, radius, Object::COLLIDER); Object *d = new Object(scene, 150, 10, radius, Object::COLLIDER); Object *e = new Object(scene, 80, 80, 130, Object::COLLIDER); a->compound = b->compound = c->compound = d->compound = e; new Joint(scene, a, b, Joint::FIXED); new Joint(scene, b, c, Joint::FIXED); new Joint(scene, c, d, Joint::FIXED); new Joint(scene, d, a, Joint::FIXED); new Joint(scene, a, c, Joint::FIXED); new Joint(scene, b, d, Joint::FIXED); new Joint(scene, a, e, Joint::FIXED); new Joint(scene, b, e, Joint::FIXED); new Joint(scene, c, e, Joint::FIXED); new Joint(scene, d, e, Joint::FIXED); } void level3(Scene *scene) { RGB red1(0.9, 0.5, 0.1); RGB red2(0.9, 0.1, 0.5); RGB red3(0.7, 0.9, 0.2); int x = 80; int y = 80; int i; Object *o = new Object(scene, x, y, 20, Object::FIXED | Object::COLLIDER | Object::COLORABLE); o->desired = red1; for (i=0; i<20; i++) { x += 30; Object *n = new Object(scene, x, y, (i%10 != 9)?15:20, ((i%10 != 9)?Object::NODRAG:Object::FIXED) | Object::COLLIDER | Object::COLORABLE); n->desired = (i%3 == 0)?red3:red2; if (i%10 == 9) n->desired = red1; new Joint(scene, o, n, Joint::STRONG | Joint::RUBBERBAND); o = n; } new Object(scene, 30, 480-30, 100, Object::NOGRAVITY | Object::COLLIDER | Object::STAYINVIEW, red2); new Object(scene, 400-15, 480-30, 60, Object::NOGRAVITY | Object::COLLIDER | Object::STAYINVIEW, red1); new Object(scene, 800-30, 480-30, 100, Object::NOGRAVITY | Object::COLLIDER | Object::STAYINVIEW, red3); } void level1(Scene *scene) { int i; RGB red(0.7, 0.2, 0.1); RGB green(0.2, 0.4, 0.0); RGB blue(0.1, 0.2, 0.7); #if 0 /* Level borders for scaling test */ new Object(scene, 0, 0, 20, Object::FIXED); new Object(scene, 800, 0, 20, Object::FIXED); new Object(scene, 0, 480, 20, Object::FIXED); new Object(scene, 800, 480, 20, Object::FIXED); #endif new Object(scene, 230, 200, 40, Object::COLLIDER | Object::NODRAG); new Object(scene, 340, 200, 40, Object::COLLIDER | Object::NODRAG); new Object(scene, 460, 200, 40, Object::COLLIDER | Object::NODRAG); /* Player's controller */ //new Object(scene, 400, 100, 80, Object::COLLIDER | Object::NOGRAVITY, green); /* Target objects (need to be colored) */ for (i=0; i<4; i++) { Object *o = new Object(scene, 200+120*i, 400, 80, Object::FIXED | Object::COLLIDER | Object::COLORABLE); o->desired = red; } for (i=0; i<3; i++) { Object *o = new Object(scene, 190+80+120*i, 100, 80, Object::FIXED | Object::COLLIDER | Object::COLORABLE); o->desired = blue; } /* Chain of colored objects */ Object *o = NULL; for (i=0; i<18; i++) { bool is_red = ((i%4==0) && i < 13) || (i == 17); int flags = Object::COLLIDER; if (!is_red) { flags |= Object::NODRAG; } RGB color = is_red?red:blue; Object *n = new Object(scene, 120+30*i, 300, 10, flags, color); if (o) { new Joint(scene, o, n, Joint::RUBBERBAND);// | Joint::BREAKABLE); } o = n; } } void level4(Scene *scene) { int i; RGB lightgreen(0.3, 0.8, 0.2); RGB darkgreen(0.05, 0.4, 0.1); Object *last = NULL; Object *first = NULL; for (i=0; i<36; i++) { Object *o = new Object(scene, 400+100*sinf(M_PI*(float)(i*10)/180.f), 240+100*cosf(M_PI*(float)(i*10)/180.f), 15, Object::COLLIDER | Object::NOGRAVITY | Object::COLORABLE | Object::NODRAG | Object::BORDERBOUNCE); o->desired = ((i%6) > 3) ? lightgreen : darkgreen; if (first == NULL) { first = o; } if (last != NULL) { new Joint(scene, o, last, Joint::RUBBERBAND); } last = o; } new Joint(scene, last, first, Joint::RUBBERBAND); Object *a = new Object(scene, 400, 200, 40, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST, lightgreen); Object *b = new Object(scene, 400, 280, 40, Object::COLLIDER | Object::NOGRAVITY | Object::BORDERBOUNCE | Object::SHADOWCAST, darkgreen); CenterOfObjectsLightSource *cools = new CenterOfObjectsLightSource(scene); cools->add(a); cools->add(b); } void level5(Scene *scene) { RGB sky(0.3, 0.6, 0.9); RGB magenta(0.7, 0.3, 0.8); Object *a, *b, *c, *d; (a = new Object(scene, 300, 240, 30, Object::COLLIDER | Object::NOGRAVITY | Object::COLORABLE | Object::BORDERBOUNCE))->desired = sky; (b = new Object(scene, 400, 180, 30, Object::COLLIDER | Object::NOGRAVITY | Object::COLORABLE | Object::BORDERBOUNCE))->desired = magenta; (c = new Object(scene, 500, 240, 30, Object::COLLIDER | Object::NOGRAVITY | Object::COLORABLE | Object::BORDERBOUNCE))->desired = sky; (d = new Object(scene, 400, 300, 30, Object::COLLIDER | Object::NOGRAVITY | Object::COLORABLE | Object::BORDERBOUNCE))->desired = magenta; new Joint(scene, a, b, Joint::FIXED); new Joint(scene, b, c, Joint::FIXED); new Joint(scene, c, a, Joint::FIXED); new Joint(scene, d, c, Joint::FIXED); new Joint(scene, d, a, Joint::FIXED); new Joint(scene, b, d, Joint::FIXED); new Object(scene, 200, 400, 100, Object::FIXED | Object::COLLIDER, sky); new Object(scene, 600, 240, 100, Object::FIXED | Object::COLLIDER, magenta); new Object(scene, 200, 100, 100, Object::FIXED | Object::COLLIDER, sky); } chromono-1.1.1/src/circle1d/content.h000066400000000000000000000034001410712601600174310ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CARPHONE_CONTENT_H #define CARPHONE_CONTENT_H #include "shadypostproc.h" #include "model.h" typedef void (*level_func)(Scene*); struct LevelInfo { long stars_time[3]; // time goal for achieving stars int required_stars; // stars required to unlock this level level_func constructor; // constructor for this level }; typedef void (*level_pack_behavior_func)(Object *o); struct LevelPack { const char *name; // name of the level pack int first_level; // first level in this level pack int last_level; // last level in this level pack level_pack_behavior_func behavior_func; // animation in menu struct { int x; int y; int size; RGB color; bool connected_to_previous; } layout; }; typedef void (*level_pack_select_func)(LevelPack *pack, void *user_data); extern LevelInfo levels[]; extern LevelPack packs[]; #endif /* CARPHONE_CONTENT_H */ chromono-1.1.1/src/circle1d/event.h000066400000000000000000000043231410712601600171050ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_EVENT_H #define CIRCLE1D_EVENT_H class Circle1DEvent { public: enum Type { NONE = 0, MOUSEDOWN, MOUSEUP, MOUSEMOTION, TICK, KEYDOWN, KEYUP, }; enum Key { IGNORE = 0, SAVE_SCENE, LOAD_SCENE, EDIT, DELETE, TOGGLE_COLLIDER, TOGGLE_GRAVITY, TOGGLE_BORDERBOUNCE, TOGGLE_FIXED, TOGGLE_SHADOWCAST, SET_COLOR, SET_TARGET_COLOR, SET_DESIRED_COLOR, }; Circle1DEvent(enum Type type=NONE, float x=0, float y=0, int finger=0) : type(type) , x(x) , y(y) , finger(finger) , button(0) { } enum Type type; float x; float y; int finger; // multi-touch support, for key events an enum Key int button; // mouse button, for key events extra data bool is_mouse_event() { return type == MOUSEDOWN || type == MOUSEUP || type == MOUSEMOTION; } bool is_key_event() { return type == KEYDOWN || type == KEYUP; } }; class Circle1DEventHandler { public: virtual void handle(Circle1DEvent *event) = 0; }; #endif /* CIRCLE1D_EVENT_H */ chromono-1.1.1/src/circle1d/model.cpp000066400000000000000000000641111410712601600174200ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "model.h" #include "../platform.h" #include "../constants.h" #include "../colors.h" #include "../util.h" #include "serialize.h" #include "resources_util.h" static const RGB EDIT_SWATCH[10] = { RGB(), RGB(0.2, 0.7, 0.9), RGB(0xe70b92), RGB(0.4, 0.9, 0.2), RGB(0xc0d700), RGB(0.5, 0.9, 0.7), RGB(0.6, 0.2, 0.6), RGB(0x406849), RGB(0.5, 0.9, 0.7), RGB(0.7, 0.9, 0.5), }; HintDecal::HintDecal(Scene *scene, enum Circle1D::Decal decal, int x, int y) : Circle1DType(Circle1DType::DECAL) , decal(decal) , opacity(1.f) , x(x) , y(y) { if (scene) { scene->add_decal(this); } } Object::Object(Scene *scene, float x, float y, float size, int flags, RGB color) : Circle1DType(Circle1DType::OBJECT) , scene(scene), pos(x, y), last_pos(x, y), size(size), color(color), target_color(color), desired(color), flags(flags), velocity(0, 0), force(0, 0), grabbed(-1), old_mouse_pos(0, 0), mouse(NULL), mouse_joint(NULL), compound(NULL), last_color_update(0) { if (scene) { scene->add_object(this); } } std::string Object::describe() { std::string flags_str = ""; #define DESCRIBE(x) if (flags & x) flags_str += #x " "; DESCRIBE(COLLIDER) DESCRIBE(SLOW) DESCRIBE(NOGRAVITY) DESCRIBE(FIXED) DESCRIBE(COLORABLE) DESCRIBE(NODRAG) DESCRIBE(COLORTRANSFER) DESCRIBE(SWITCHONLY) DESCRIBE(NOAUTOCOLOR) DESCRIBE(BORDERBOUNCE) DESCRIBE(STAYINVIEW) DESCRIBE(CANGRAB) DESCRIBE(NOOVERLAP) DESCRIBE(SHADOWCAST) DESCRIBE(SILENT) DESCRIBE(INVISIBLE) #undef DESCRIBE return Util::format("Object (%.2f, %.2f), size=%.2f, flags=[%s]", pos.x, pos.y, size, flags_str.c_str()); } bool Object::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::MOUSEDOWN) { Vec2 pos(event->x, event->y); // FIXED objects behave just like NODRAG objects // in terms of mouse dragging, but when CANGRAB is // set, these objects can be (invisibly) grabbed // (this is used for activating switch objects) if ((grabbed == -1) && (this->pos - pos).length() < size && !(flags & NODRAG) && (!(flags & FIXED) || (flags & CANGRAB))) { grabbed = event->finger; if (!(flags & CANGRAB)) { if (!(scene->simulation_running)) { Platform::play(Sound::MOVABLE_SPHERE_PRESS); } } old_mouse_pos = pos; if (!(flags & FIXED)) { mouse = new Object(scene, this->pos.x, this->pos.y, 10, Object::FIXED | Object::INVISIBLE); mouse_joint = new Joint(scene, this, mouse, Joint::MOUSE); } return true; } } else if (event->type == Circle1DEvent::MOUSEMOTION) { if (grabbed == event->finger) { Vec2 pos(event->x, event->y); Vec2 rel = pos - old_mouse_pos; if (mouse) { mouse->pos += rel; } old_mouse_pos = pos; return true; } } else if (event->type == Circle1DEvent::MOUSEUP) { if (grabbed == event->finger) { if (!(flags & CANGRAB)) { if (!(scene->simulation_running)) { Platform::play(Sound::MOVABLE_SPHERE_RELEASE); } } if (mouse) { scene->remove_object(mouse); delete mouse; mouse = NULL; } if (mouse_joint) { scene->remove_object(mouse_joint); delete mouse_joint; mouse_joint = NULL; } grabbed = -1; return true; } } else if (event->type == Circle1DEvent::TICK) { simulate(); } return false; } void Object::take_color(Object *b) { if (last_color_update < scene->time - 10) { if (!target_color.equals(b->target_color)) { // Do not play sounds if the scene is simulating if (!(scene->simulation_running)) { if (!(flags & (NOAUTOCOLOR | SILENT))) { if (b->target_color.equals(desired)) { Platform::play(Sound::COLOR_CHANGES_TO_RIGHT); } else { Platform::play(Sound::COLOR_CHANGES_TO_WRONG); } } } } last_color_update = scene->time; } if ((flags & NOAUTOCOLOR) == 0) { target_color = b->target_color; } } void Object::handle_collision(Object *b) { Object *a = this; Vec2 dist = (a->pos - b->pos); if ((dist.x*dist.x + dist.y*dist.y) < (a->size + b->size)*(a->size + b->size)) { float diff = (a->size + b->size) - dist.length(); Vec2 a_dir = (b->pos - a->pos).normalize(); Vec2 b_dir = dist.normalize(); if (a->flags & NOOVERLAP || b->flags & NOOVERLAP) { // Move the other object out of the way (the one that is not fixed) // Assumption: We only set NOOVERLAP on FIXED objects float alpha = 0.1; if (a->flags & FIXED) { b->pos = b->pos * alpha + (a->pos - b_dir * (a->size + b->size)) * (1.0 - alpha); } else { a->pos = a->pos * alpha + (b->pos - a_dir * (a->size + b->size)) * (1.0 - alpha); } // Apply a slightly larger force to the objects float force = diff*std::min(a->size, b->size) * 0.6; a->apply_force(b_dir*force); b->apply_force(a_dir*force); } else { float force = diff*2.9*std::min(a->size, b->size)/10.; a->apply_force(b_dir*force); b->apply_force(a_dir*force); } if ((a->flags & COLORABLE) && (b->flags & COLORABLE)) { if ((b->flags & COLORTRANSFER) != 0 && !(b->target_color.isgray())) { a->take_color(b); } else if ((a->flags & COLORTRANSFER) != 0 && (!a->target_color.isgray())) { b->take_color(a); } } else if ((a->flags & COLORABLE) != 0 && !(b->target_color.isgray())) { a->take_color(b); } else if ((b->flags & COLORABLE) != 0 && !(a->target_color.isgray())) { b->take_color(a); } } } void Object::simulate() { if (!(flags & (Object::NOGRAVITY | Object::FIXED))) { /* Gravity force */ force += Vec2(0, 16.2) * weight() / 2000.; } velocity += force / weight() * 100.; velocity *= .9; if (flags & Object::SLOW) { velocity *= .5; } pos += velocity; force = Vec2(0, 0); if (flags & (Object::BORDERBOUNCE | Object::STAYINVIEW)) { float bounce = 0.; float xmin = 0, ymin = 0; float xmax = Constants::WORLD_WIDTH, ymax = Constants::WORLD_HEIGHT; if (flags & Object::BORDERBOUNCE) { xmin += size; ymin += size; xmax -= size; ymax -= size; bounce = -0.8; } bool bounced = false; if (pos.x < xmin) { velocity.x *= bounce; pos.x = xmin; if (last_pos.x > xmin) { bounced = true; } } if (pos.x > xmax) { velocity.x *= bounce; pos.x = xmax; if (last_pos.x < xmax) { bounced = true; } } if (pos.y < ymin) { velocity.y *= bounce; pos.y = ymin; if (last_pos.y > ymin) { bounced = true; } } if (pos.y > ymax) { velocity.y *= bounce; pos.y = ymax; if (last_pos.y < ymax) { bounced = true; } } if (bounced && size >= 30) { // XXX: Volume based on velocity.length() if (!(scene->simulation_running)) { Platform::play(Sound::SPHERE_HITS_WALL); } } } color.fade_to(target_color); last_pos = pos; } void Object::restack_on_top() { scene->remove_object(this); scene->add_object(this); } Joint::Joint(Scene *scene, Object *a, Object *b, int flags) : Circle1DType(Circle1DType::JOINT), scene(scene), a(a), b(b), flags(flags), knot_at(0.0), knot_color(), distance((a->pos - b->pos).length()) { scene->add_object(this); } Joint::~Joint() { } std::string Joint::describe() { std::string flags_str = ""; #define DESCRIBE(x) if (flags & x) flags_str += #x " "; DESCRIBE(RUBBERBAND) DESCRIBE(STRONG) DESCRIBE(BREAKABLE) DESCRIBE(BROKEN) DESCRIBE(FIXED) DESCRIBE(HAS_KNOT) DESCRIBE(IS_RAIL) DESCRIBE(MOUSE) DESCRIBE(UNTANGLE) #undef DESCRIBE return Util::format("Joint flags=[%s]", flags_str.c_str()); } void Joint::simulate() { if (flags & Joint::BROKEN) { return; } if (flags & Joint::UNTANGLE) { // Untangle joints don't have any physical effect return; } float current_distance = (a->pos - b->pos).length(); float diff = distance - current_distance; if (fabsf(diff) < 0.001) { return; } if ((flags & Joint::BREAKABLE) && fabsf(diff) > fabsf(distance) * 4.) { flags |= Joint::BROKEN; if (!(scene->simulation_running)) { Platform::play(Sound::CHAIN_BREAKS); } return; } Vec2 a_dir = (b->pos - a->pos).normalize(); Vec2 b_dir = (a->pos - b->pos).normalize(); if (flags & Joint::FIXED) { if (a->flags & Object::FIXED) { b->move(a->pos + a_dir * distance); } else if (b->flags & Object::FIXED) { a->move(b->pos + b_dir * distance); } else { Vec2 center = Vec2::mean(a->pos, b->pos); a->move(center + b_dir*distance/2.); b->move(center + a_dir*distance/2.); } return; } float strength = fabsf(diff) * 2.; if (flags & Joint::RUBBERBAND) { strength *= .2; } if (flags & Joint::STRONG) { strength *= 3.; } if (flags & Joint::MOUSE) { Vec2 center = Vec2::mean(a->pos, b->pos); if (!(a->flags & Object::FIXED)) { a->move(center + b_dir*distance/2.); } if (!(b->flags & Object::FIXED)) { b->move(center + a_dir*distance/2.); } } if (diff < 0.) { /* diff must be made smaller */ a->apply_force(a_dir*strength); b->apply_force(b_dir*strength); } else { /* diff must be made bigger */ if (!(flags & Joint::RUBBERBAND)) { a->apply_force(b_dir*strength); b->apply_force(a_dir*strength); } } } Circle1DBehavior::Circle1DBehavior(Scene *scene) : Circle1DType(Circle1DType::BEHAVIOR) , scene(scene) { scene->add_behavior(this); } static bool lines_intersect(Vec2 p1, Vec2 p2, Vec2 p3, Vec2 p4) { // Check if line (p1->p2) intersects with line (p3->p4) // http://paulbourke.net/geometry/pointlineplane/ float nn = (p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y); if (nn == 0) { return false; } float za = (p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x); float ua = za / nn; float zb = (p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x); float ub = zb / nn; float epsilon = 0.01; float min = 0.0 + epsilon; float max = 1.0 - epsilon; return (min < ua && ua < max && min < ub && ub < max); } bool Scene::checkUntanglement() { if (untangle_joints.size() == 0) { // Objective reached return true; } bool result = true; std::list::iterator jit; for (jit = untangle_joints.begin(); jit != untangle_joints.end(); ++jit) { (*jit)->knot_color = RGB(1.0, 1.0, 1.0); } // check joint tangling for (jit = untangle_joints.begin(); jit != untangle_joints.end(); ++jit) { Joint *a = *jit; std::list::iterator jit2; for (jit2 = jit, ++jit2; jit2 != untangle_joints.end(); ++jit2) { Joint *b = *jit2; if (lines_intersect(a->a->pos, a->b->pos, b->a->pos, b->b->pos)) { a->knot_color = b->knot_color = RGB(1.0, 0.0, 0.0); result = false; } } } return result; } void Scene::background_color_from_content() { if (background_color_set) { return; } std::list::iterator it; for (it=objects.begin(); it!=objects.end(); ++it) { Object *o = *it; if (!(o->flags & Object::COLORABLE) && !(o->color.isgray())) { background_color = RGB::mix(RGB(0x000000), o->color); return; } } background_color = RGB::background(); background_color_set = true; } void Scene::save(const std::string &filename) { SerializeBuffer sav; sav << time; sav << background_color << int(background_color_set); sav << int(objects.size()); std::list::iterator it; int i = 0; for (it=objects.begin(); it!=objects.end(); ++it) { Object *o = *it; sav << o->pos << o->size << o->flags; sav << o->color << o->target_color << o->desired; sav << o->last_pos << o->velocity << o->force; i++; } sav << int(joints.size()); std::list::iterator jit; i = 0; for (jit=joints.begin(); jit!=joints.end(); ++jit) { Joint *j = *jit; sav << object_id(j->a) << object_id(j->b) << j->flags << j->distance; i++; } sav << int(decals.size()); std::list::iterator hit; i = 0; for (hit=decals.begin(); hit!=decals.end(); ++hit) { HintDecal *h = *hit; sav << int(h->decal) << h->x << h->y; i++; } sav << int(behaviors.size()); std::list::iterator bit; i = 0; for (bit=behaviors.begin(); bit!=behaviors.end(); ++bit) { Circle1DBehavior *b = *bit; Circle1DBehaviorIO *io = Circle1DBehaviorRegistration::lookup(b->name()); if (io) { sav << b->name(); io->save(this, b, sav); } else { sav << ""; } i++; } sav.write_file(filename); } void Scene::load(const std::string &filename) { SerializeBuffer sav; sav.read_file(filename); if (!sav.available()) { SHADY_DEBUG_PRINTF("Could not load %s\n", filename.c_str()); return; } reset(); sav >> time; sav >> background_color; background_color_set = sav.read_int32(); int objects; sav >> objects; for (int i=0; i> pos >> size >> flags; Object *o = new Object(this, pos.x, pos.y, size, flags); sav >> o->color >> o->target_color >> o->desired; sav >> o->last_pos >> o->velocity >> o->force; } int joints; sav >> joints; for (int i=0; i> a_id >> b_id >> flags >> distance; Joint *j = new Joint(this, object_from_id(a_id), object_from_id(b_id), flags); j->distance = distance; } int decals; sav >> decals; for (int i=0; i> id >> x >> y; new HintDecal(this, Circle1D::Decal(id), x, y); } int behaviors; sav >> behaviors; for (int i=0; i> name; Circle1DBehaviorIO *io = Circle1DBehaviorRegistration::lookup(name); if (io) { io->load(this, sav); } } } int Scene::object_id(Object *o) { int i = 0; for (auto &object: objects) { if (o == object) { return i; } i++; } SHADY_ASSERT(false); return -1; } int Scene::joint_id(Joint *j) { int i = 0; for (auto &joint: joints) { if (j == joint) { return i; } i++; } SHADY_ASSERT(false); return -1; } int Scene::behavior_id(Circle1DBehavior *b) { int i = 0; for (auto &behavior: behaviors) { if (b == behavior) { return i; } i++; } SHADY_ASSERT(false); return -1; } int Scene::decal_id(HintDecal *d) { int i = 0; for (auto &decal: decals) { if (d == decal) { return i; } i++; } SHADY_ASSERT(false); return -1; } Object * Scene::object_from_id(int id) { if (id < 0) { return NULL; } auto it = objects.begin(); while (id--) { SHADY_ASSERT(it != objects.end()); it++; } return *it; } Joint * Scene::joint_from_id(int id) { if (id < 0) { return NULL; } auto it = joints.begin(); while (id--) { SHADY_ASSERT(it != joints.end()); it++; } return *it; } Circle1DBehavior * Scene::behavior_from_id(int id) { if (id < 0) { return NULL; } auto it = behaviors.begin(); while (id--) { SHADY_ASSERT(it != behaviors.end()); it++; } return *it; } HintDecal * Scene::decal_from_id(int id) { if (id < 0) { return NULL; } auto it = decals.begin(); while (id--) { SHADY_ASSERT(it != decals.end()); it++; } return *it; } void Scene::handle_editing(Circle1DEvent *event) { Vec2 pos(event->x, event->y); Vec2 rel(pos - editing_old_mouse_pos); if (event->type == Circle1DEvent::KEYDOWN) { switch (event->finger) { case Circle1DEvent::DELETE: if (edit_object) { remove_object(edit_object); edit_object = NULL; } else if (edit_joint) { remove_object(edit_joint); edit_joint = NULL; } break; case Circle1DEvent::TOGGLE_COLLIDER: if (edit_object) { edit_object->flags ^= Object::COLLIDER; object_flags_changed(edit_object); } break; case Circle1DEvent::TOGGLE_GRAVITY: if (edit_object) { edit_object->flags ^= Object::NOGRAVITY; object_flags_changed(edit_object); } break; case Circle1DEvent::TOGGLE_BORDERBOUNCE: if (edit_object) { edit_object->flags ^= Object::BORDERBOUNCE; object_flags_changed(edit_object); } break; case Circle1DEvent::TOGGLE_FIXED: if (edit_object) { edit_object->flags ^= Object::FIXED; object_flags_changed(edit_object); } else if (edit_joint) { edit_joint->flags ^= Joint::FIXED; object_flags_changed(edit_joint); } break; case Circle1DEvent::TOGGLE_SHADOWCAST: if (edit_object) { edit_object->flags ^= Object::SHADOWCAST; object_flags_changed(edit_object); } break; case Circle1DEvent::SET_COLOR: editing_color_index = event->button; break; case Circle1DEvent::SET_TARGET_COLOR: if (edit_object) { edit_object->color = edit_object->target_color = EDIT_SWATCH[editing_color_index]; if (!edit_object->desired.equals(edit_object->target_color)) { edit_object->flags |= Object::COLORABLE; } else { edit_object->flags &= ~Object::COLORABLE; } object_flags_changed(edit_object); } break; case Circle1DEvent::SET_DESIRED_COLOR: if (edit_object) { edit_object->desired = EDIT_SWATCH[editing_color_index]; if (!edit_object->desired.equals(edit_object->target_color)) { edit_object->flags |= Object::COLORABLE; } else { edit_object->flags &= ~Object::COLORABLE; } object_flags_changed(edit_object); } break; default: break; } } else if (event->type == Circle1DEvent::MOUSEMOTION && event->button == 0) { edit_object = object_at(pos); edit_joint = joint_at(pos); } else if (event->button == 1) { switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (!edit_object) { edit_object = new Object(this, pos.x, pos.y, 10); } editing_old_mouse_pos = pos; break; case Circle1DEvent::MOUSEMOTION: if (edit_object) { edit_object->pos += rel; editing_old_mouse_pos = pos; } break; case Circle1DEvent::MOUSEUP: break; default: break; } } else if (event->button == 2) { switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (edit_object) { edit_joint_tmp = new Object(this, pos.x, pos.y, 10); edit_joint = new Joint(this, edit_object, edit_joint_tmp); } break; case Circle1DEvent::MOUSEMOTION: if (edit_joint && edit_joint_tmp) { edit_joint_tmp->pos = pos; edit_object = object_at(edit_joint_tmp->pos); edit_joint->b = edit_object; } break; case Circle1DEvent::MOUSEUP: if (edit_joint && edit_joint_tmp) { if (edit_joint->b == edit_joint_tmp) { remove_object(edit_joint); } else { edit_joint->reset_distance(); } remove_object(edit_joint_tmp); edit_joint_tmp = NULL; } break; default: break; } } else if (event->button == 3) { switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (!edit_object) { edit_object = new Object(this, pos.x, pos.y, 1); editing_old_mouse_pos = pos; } break; case Circle1DEvent::MOUSEMOTION: if (edit_object) { edit_object->size = (pos - edit_object->pos).length(); editing_old_mouse_pos = pos; } break; case Circle1DEvent::MOUSEUP: break; default: break; } } if (event->is_mouse_event()) { editing_label_pos = pos + Vec2(10, 0); } if (edit_object) { editing_label = edit_object->describe(); } else if (edit_joint) { editing_label = edit_joint->describe(); } else { editing_label = ""; } } Object * Scene::object_at(Vec2 pos) { for (auto &o: objects) { if ((pos - o->pos).length() < o->size) { return o; } } return NULL; } Joint * Scene::joint_at(Vec2 pos) { for (auto &j: joints) { Vec2 j_pos = (j->a->pos + j->b->pos) / 2.0; if (((pos - j_pos).length()) < 10.0) { return j; } } return NULL; } void Scene::render(Circle1DRenderer *renderer) { std::list::iterator dit; for (dit = decals.begin(); dit != decals.end(); ++dit) { HintDecal *d = *dit; renderer->decal(d->decal, d->x, d->y, d->opacity); } std::list::iterator oit; if (light_source.enabled) { for (oit = objects.begin(); oit != objects.end(); ++oit) { Object *o = *oit; if (o->flags & Object::SHADOWCAST) { renderer->shadow(light_source.pos, o->pos, o->size); } } renderer->flush_shadows(); } std::list::iterator jit; for (jit = joints.begin(); jit != joints.end(); ++jit) { Joint *j = *jit; if (!(j->flags & (Joint::BROKEN | Joint::MOUSE))) { renderer->line(j); } } renderer->flush_lines(); for (oit = objects.begin(); oit != objects.end(); ++oit) { Object *o = *oit; if (!(o->flags & Object::INVISIBLE)) { renderer->circle(o); } } renderer->flush_circles(); if (editing) { renderer->text_render("[EDITING]", 10, 10, FONT_SMALL, 1.0, EDIT_SWATCH[editing_color_index]); Vec2 pos = editing_label_pos; float w, h; renderer->text_measure(editing_label.c_str(), &w, &h, FONT_TINY); if (pos.x + w > Constants::WORLD_WIDTH) { pos.x = Constants::WORLD_WIDTH - w; } if (pos.y + h > Constants::WORLD_HEIGHT) { pos.y = Constants::WORLD_HEIGHT - h; } renderer->text_render(editing_label.c_str(), pos.x, pos.y, FONT_TINY); } } std::map * Circle1DBehaviorRegistration::m_ios = 0; chromono-1.1.1/src/circle1d/model.h000066400000000000000000000375151410712601600170750ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CARPHONE_MODEL_H #define CARPHONE_MODEL_H #include "vector.h" #include #include "../constants.h" #include "../platform.h" #include "renderer.h" #include "event.h" #include "rgb.h" #include "serialize.h" #include #include #include #include #include #include class Scene; class Joint; typedef int32_t Circle1DTime; struct LightSource { public: LightSource() : enabled(false) , pos(0, 0) { } bool enabled; Vec2 pos; }; namespace Circle1D { enum Decal { INTRO_ARROW = 0, UNTANGLE, ON_OFF, COLOR_LEFT, COLOR_RIGHT, PENDULUM, EASTEREGG, DECALS_COUNT, /* Must always be last */ }; }; // All types that are passed to the JS engine must subclass from // Circle1DType, for run-time type detection (RTTI can't dynamic // cast from a void * type, so this is the common ancestor). class Circle1DType { public: enum Type { INVALID = 0, OBJECT, JOINT, SCENE, BEHAVIOR, DECAL, }; Circle1DType(enum Type type) : type_tag(type) { } virtual ~Circle1DType() { } enum Type type_tag; }; class HintDecal : public Circle1DType { public: HintDecal(Scene *scene, enum Circle1D::Decal decal, int x, int y); enum Circle1D::Decal decal; float opacity; int x; int y; }; class Object : public Circle1DType { public: enum Flag { COLLIDER = 1 << 0, SLOW = 1 << 1, NOGRAVITY = 1 << 2, FIXED = 1 << 3, COLORABLE = 1 << 4, NODRAG = 1 << 5, COLORTRANSFER = 1 << 6, SWITCHONLY = 1 << 7, // a colorable object that isn't essential for the objective NOAUTOCOLOR = 1 << 8, // a colorable object that isn't changed on collision BORDERBOUNCE = 1 << 9, // stay fully in view and bounce from border STAYINVIEW = 1 << 10, // stay at least partially in view CANGRAB = 1 << 11, // can be grabbed, i.e. for switches that need to react to events NOOVERLAP = 1 << 12, // for fixed objects in chain levels to prevent "chain go through" SHADOWCAST = 1 << 13, // object will cast shadows when rendering shadow effect SILENT = 1 << 14, // no sounds INVISIBLE = 1 << 15, // will not be drawn (for mouse joint) }; Object(Scene *scene, float x, float y, float size, int flags=0, RGB color=RGB()); bool handle(Circle1DEvent *event); bool objectiveReached() { if (grabbed != -1) { // Don't finish level until all touches are gone return false; } if ((flags & COLORABLE) != 0 && (flags & SWITCHONLY) == 0) { return desired.equals(color); } return true; } float weight() { return size*size*M_PI; } bool can_drag() { return ((!(flags & NODRAG)) && (!(flags & FIXED))); } void simulate(); void restack_on_top(); std::string describe(); void apply_force(Vec2 direction) { if (!(flags & Object::FIXED)) { force += direction; } } void move(Vec2 destination) { if (!(flags & Object::FIXED)) { pos = destination; } } void take_color(Object *b); static void handle_collisions(std::list &objects) { std::list::iterator a; for (a=objects.begin(); a!=objects.end(); ++a) { // OPTIMIZATIONS std::list::iterator b = a; for (++b; b!=objects.end(); ++b) { // OPTIMIZATIONS if ((*a)->compound != (*b) && (*b)->compound != (*a)) { (*a)->handle_collision(*b); } } } } void handle_collision(Object *b); public: Scene *scene; Vec2 pos; Vec2 last_pos; float size; RGB color; RGB target_color; RGB desired; // desired color int flags; private: Vec2 velocity; Vec2 force; public: int grabbed; private: Vec2 old_mouse_pos; Object *mouse; Joint *mouse_joint; Object *compound; Circle1DTime last_color_update; private: friend class Joint; friend class Scene; friend void scene_square(Scene*); }; class Joint : public Circle1DType { public: enum Flag { RUBBERBAND = 1 << 0, STRONG = 1 << 1, BREAKABLE = 1 << 2, BROKEN = 1 << 3, FIXED = 1 << 4, HAS_KNOT = 1 << 5, // knot that "transports" color IS_RAIL = 1 << 6, // rail - display in darker color MOUSE = 1 << 7, // only for mouse joints (drag stuff) UNTANGLE = 1 << 8, // untangle joint - no force, but color + objectiveReached() check }; Joint(Scene *scene, Object *a, Object *b, int flags=0); ~Joint(); void simulate(); void reset_distance() { distance = (a->pos - b->pos).length(); } std::string describe(); public: Scene *scene; Object *a; Object *b; int flags; float knot_at; RGB knot_color; private: float distance; friend class Scene; }; class Circle1DBehavior : public Circle1DType { public: Circle1DBehavior(Scene *scene); virtual ~Circle1DBehavior() {} virtual void simulate() = 0; virtual const char *name() = 0; protected: Scene *scene; }; class Circle1DBehaviorIO { public: virtual void save(Scene *scene, Circle1DBehavior *behavior, SerializeBuffer &buffer) = 0; virtual Circle1DBehavior *load(Scene *scene, SerializeBuffer &buffer) = 0; }; class Circle1DBehaviorRegistration { public: Circle1DBehaviorRegistration(std::string name, Circle1DBehaviorIO *io) { if (!m_ios) { m_ios = new std::map(); } (*m_ios)[name] = io; } static Circle1DBehaviorIO *lookup(std::string name) { if (m_ios) { return (*m_ios)[name]; } else { return 0; } } private: static std::map *m_ios; }; #define CIRCLE1D_BEHAVIOR_BODY(klass) virtual const char *name() { return #klass; } #define CIRCLE1D_BEHAVIOR_REGISTER(klass, io) static Circle1DBehaviorRegistration \ _registration_##klass(#klass, new io()); class Scene : public Circle1DType, public Circle1DEventHandler { public: Scene() : Circle1DType(Circle1DType::SCENE) , time(0), simulation_running(false) , background_color(RGB::background()) , background_color_set(false) , light_source() , editing(false) , editing_label() , editing_label_pos() , editing_old_mouse_pos() , edit_object(NULL) , edit_joint(NULL) , edit_joint_tmp(NULL) , editing_color_index(0) , objects(), joints(), fixed_joints(), untangle_joints(), colliders() , behaviors() , decals() { } ~Scene() { reset(); } void reset() { std::list::iterator jit; for (jit = joints.begin(); jit != joints.end(); ++jit) { Joint *j = *jit; delete j; } joints.clear(); fixed_joints.clear(); untangle_joints.clear(); std::list::iterator oit; for (oit = objects.begin(); oit != objects.end(); ++oit) { Object *o = *oit; delete o; } objects.clear(); colliders.clear(); std::list::iterator bit; for (bit = behaviors.begin(); bit != behaviors.end(); ++bit) { Circle1DBehavior *b = *bit; delete b; } behaviors.clear(); std::list::iterator dit; for (dit = decals.begin(); dit != decals.end(); ++dit) { HintDecal *d = *dit; delete d; } decals.clear(); time = 0; background_color = RGB::background(); background_color_set = false; light_source.enabled = false; light_source.pos = Vec2(0, 0); } void object_flags_changed(Object *o) { remove_object(o); add_object(o); } void object_flags_changed(Joint *o) { remove_object(o); add_object(o); } void add_object(Object *o) { objects.push_back(o); if (o->flags & Object::COLLIDER) { colliders.push_back(o); } } void add_object(Joint *o) { joints.push_back(o); if (o->flags & Joint::FIXED) { fixed_joints.push_back(o); } if (o->flags & Joint::UNTANGLE) { untangle_joints.push_back(o); } } void remove_object(Object *o) { // TODO: Behaviors might have references to the object objects.remove(o); if (o->flags & Object::COLLIDER) { colliders.remove(o); } } void remove_object(Joint *o) { joints.remove(o); if (o->flags & Joint::FIXED) { fixed_joints.remove(o); } if (o->flags & Joint::UNTANGLE) { untangle_joints.remove(o); } } void add_behavior(Circle1DBehavior *b) { behaviors.push_back(b); } void remove_behavior(Circle1DBehavior *b) { behaviors.remove(b); } void add_decal(HintDecal *d) { decals.push_back(d); } void remove_decal(HintDecal *d) { decals.remove(d); } void render(Circle1DRenderer *renderer); bool checkUntanglement(); bool objectiveReached() { if (editing) { return false; } bool result = checkUntanglement(); std::list::iterator oit; for (oit = objects.begin(); oit != objects.end(); ++oit) { if (!((*oit)->objectiveReached())) { return false; } } return result; } void simulate(int iterations=1) { simulation_running = true; Circle1DEvent event(Circle1DEvent::TICK); for (int i=0; itype == Circle1DEvent::KEYDOWN) { switch (event->finger) { case Circle1DEvent::SAVE_SCENE: save("level.chromono"); break; case Circle1DEvent::LOAD_SCENE: load("level.chromono"); break; case Circle1DEvent::EDIT: editing = !editing; break; default: break; } } if (editing) { handle_editing(event); return; } std::list::reverse_iterator oit; // Must distribute events in reverse order, so that for overlapping // objects the "frontmost" (as rendered) item gets the event first for (oit = objects.rbegin(); oit != objects.rend(); ++oit) { if ((*oit)->handle(event)) { break; } } if (event->type == Circle1DEvent::TICK) { std::list::iterator jit; for (int i=0; i<20; i++) { for (jit = fixed_joints.begin(); jit != fixed_joints.end(); ++jit) { (*jit)->simulate(); } } for (jit = joints.begin(); jit != joints.end(); ++jit) { (*jit)->simulate(); } std::list::iterator bit; for (bit=behaviors.begin(); bit != behaviors.end(); ++bit) { (*bit)->simulate(); } time += 1; Object::handle_collisions(colliders); } } public: Circle1DTime time; bool simulation_running; RGB background_color; bool background_color_set; LightSource light_source; bool editing; std::string editing_label; Vec2 editing_label_pos; Vec2 editing_old_mouse_pos; Object *edit_object; Joint *edit_joint; Object *edit_joint_tmp; int editing_color_index; private: /* real contents */ std::list objects; std::list joints; /* derived from above contents for faster access */ std::list fixed_joints; std::list untangle_joints; std::list colliders; /* enabled behaviors */ std::list behaviors; /* visible decals */ std::list decals; }; #endif /* CARPHONE_MODEL_H */ chromono-1.1.1/src/circle1d/renderer.h000066400000000000000000000035331410712601600175740ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_RENDERER_H #define CIRCLE1D_RENDERER_H #include "rgb.h" class Object; class Joint; enum FontSize { FONT_SMALL, FONT_MEDIUM, FONT_LARGE, FONT_XLARGE, FONT_TINY, }; class Circle1DRenderer { public: Circle1DRenderer() {} virtual ~Circle1DRenderer() {} virtual void begin() = 0; virtual void circle(Object *o) = 0; virtual void flush_circles() = 0; virtual void line(Joint *j) = 0; virtual void flush_lines() = 0; virtual void text_measure(const char *text, float *width, float *height, enum FontSize size) = 0; virtual void text_render(const char *text, float x, float y, enum FontSize size, float opacity=1.0, RGB color=RGB(1.0, 1.0, 1.0)) = 0; virtual void decal(int decal, int x, int y, float opacity) = 0; virtual void shadow(Vec2 light, Vec2 sphere, float size) = 0; virtual void flush_shadows() = 0; virtual void finish() = 0; }; #endif /* CIRCLE1D_RENDERER_H */ chromono-1.1.1/src/circle1d/rgb.h000066400000000000000000000051321410712601600165350ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_RGB_H #define CIRCLE1D_RGB_H #include "math.h" #include struct RGB { explicit RGB(int value) : r((float)((value >> 16) & 0xff) / 255.) , g((float)((value >> 8) & 0xff) / 255.) , b((float)((value >> 0) & 0xff) / 255.) { } explicit RGB(float r=0.5, float g=0.5, float b=0.5) : r(r), g(g), b(b) {} static RGB background() { return RGB(0.25, 0.34, 0.39); } bool isgray() { return (r == g && g == b); } void fade_to(RGB target) { float alpha = 0.9; r = r * alpha + target.r * (1.-alpha); g = g * alpha + target.g * (1.-alpha); b = b * alpha + target.b * (1.-alpha); } float diff_to(RGB other) { float dr = (r - other.r); float dg = (g - other.g); float db = (b - other.b); return sqrtf(dr*dr + dg*dg + db*db); } bool equals(RGB other) { return diff_to(other) < 0.01; } RGB &operator*=(float factor) { r *= factor; g *= factor; b *= factor; return *this; } static RGB mix(RGB x, RGB y, float alpha=0.5) { float beta = 1.0 - alpha; float r = x.r * alpha + y.r * beta; float g = x.g * alpha + y.g * beta; float b = x.b * alpha + y.b * beta; return RGB(r, g, b); } static RGB add(RGB x, RGB y) { float r = std::min(1.f, x.r + y.r); float g = std::min(1.f, x.g + y.g); float b = std::min(1.f, x.b + y.b); return RGB(r, g, b); } static RGB desaturate(RGB c) { float m = (c.r + c.g + c.b) / 3.0; return RGB(m, m, m); } float r; float g; float b; }; #endif /* CIRCLE1D_RGB_H */ chromono-1.1.1/src/circle1d/serialize.cpp000066400000000000000000000114631410712601600203110ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "serialize.h" #include #include #include class SerializeBufferPriv { public: SerializeBufferPriv(); ~SerializeBufferPriv(); void write(const void *data, size_t size); void *read(size_t size); void clear(); void rewind(); size_t length(); void *buffer(); size_t offset(); private: size_t m_buffer_size; char *m_buffer; size_t m_pos; size_t m_length; }; SerializeBufferPriv::SerializeBufferPriv() : m_buffer_size(1024 * 64) , m_buffer((char *)malloc(m_buffer_size)) , m_pos(0) , m_length(0) { } SerializeBufferPriv::~SerializeBufferPriv() { free(m_buffer); } void SerializeBufferPriv::write(const void *data, size_t size) { m_length += size; if (m_buffer_size < m_length) { while (m_buffer_size < m_length) { m_buffer_size *= 2; } m_buffer = (char *)realloc(m_buffer, m_buffer_size); } memcpy(m_buffer + m_pos, data, size); m_pos += size; } void * SerializeBufferPriv::read(size_t size) { SHADY_ASSERT(m_pos + size <= m_length); void *result = m_buffer + m_pos; m_pos += size; return result; } void SerializeBufferPriv::clear() { m_pos = m_length = 0; } void SerializeBufferPriv::rewind() { m_pos = 0; } size_t SerializeBufferPriv::length() { return m_length; } void * SerializeBufferPriv::buffer() { return m_buffer; } size_t SerializeBufferPriv::offset() { return m_pos; } SerializeBuffer::SerializeBuffer() : priv(new SerializeBufferPriv()) { } SerializeBuffer::~SerializeBuffer() { delete priv; } void SerializeBuffer::clear() { priv->clear(); } void SerializeBuffer::rewind() { priv->rewind(); } const char * SerializeBuffer::data(size_t *len) { *len = priv->length(); return (const char *)priv->buffer(); } void SerializeBuffer::write_float32(float value) { // TODO endianness conversion priv->write(&value, sizeof(float)); } void SerializeBuffer::write_int32(int32_t value) { // TODO endianness conversion priv->write(&value, sizeof(int32_t)); } void SerializeBuffer::write_int64(int64_t value) { // TODO endianness conversion priv->write(&value, sizeof(int64_t)); } void SerializeBuffer::write_string(const std::string &value) { write_int32(value.length() + 1); priv->write(value.c_str(), value.length() + 1); } float SerializeBuffer::read_float32() { float result = *((float *)priv->read(sizeof(float))); // TODO endianness conversion return result; } int32_t SerializeBuffer::read_int32() { int32_t result = *((int32_t *)priv->read(sizeof(int32_t))); // TODO endianness conversion return result; } int64_t SerializeBuffer::read_int64() { int64_t result = *((int64_t *)priv->read(sizeof(int64_t))); // TODO endianness conversion return result; } std::string SerializeBuffer::read_string() { int32_t length = read_int32(); char *buf = (char *)malloc(length); memcpy(buf, priv->read(length), length); std::string result(buf); free(buf); return result; } size_t SerializeBuffer::offset() { return priv->offset(); } void SerializeBuffer::write_file(const std::string &filename) { std::fstream out; out.open(filename.c_str(), std::fstream::out | std::fstream::binary); out.write((const char *)priv->buffer(), priv->length()); out.close(); } void SerializeBuffer::read_file(const std::string &filename) { std::fstream in; in.open(filename.c_str(), std::fstream::in | std::fstream::binary); if (!in.is_open()) { return; } // Determine file size in.seekg(0, std::fstream::end); size_t len = in.tellg(); // Read data from file char *tmp = (char *)malloc(len); in.seekg(0, std::fstream::beg); in.read(tmp, len); in.close(); // Write data to priv priv->clear(); priv->write(tmp, len); priv->rewind(); free(tmp); } size_t SerializeBuffer::available() { return priv->length() - priv->offset(); } chromono-1.1.1/src/circle1d/serialize.h000066400000000000000000000066311410712601600177570ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CIRCLE1D_SERIALIZE_H #define CIRCLE1D_SERIALIZE_H #include #include "rgb.h" #include "vector.h" #include class SerializeBufferPriv; class SerializeBuffer { public: SerializeBuffer(); ~SerializeBuffer(); void clear(); void rewind(); const char *data(size_t *len); SerializeBuffer &operator<<(float value) { write_float32(value); return *this; } SerializeBuffer &operator<<(int32_t value) { write_int32(value); return *this; } SerializeBuffer &operator<<(int64_t value) { write_int64(value); return *this; } SerializeBuffer &operator<<(const std::string &value) { write_string(value); return *this; } SerializeBuffer &operator<<(RGB value) { write_rgb(value); return *this; } SerializeBuffer &operator<<(Vec2 value) { write_vec2(value); return *this; } void write_float32(float value); void write_int32(int32_t value); void write_int64(int64_t value); void write_string(const std::string &value); void write_rgb(RGB value) { write_float32(value.r); write_float32(value.g); write_float32(value.b); } void write_vec2(Vec2 value) { write_float32(value.x); write_float32(value.y); } SerializeBuffer &operator>>(float &value) { value = read_float32(); return *this; } SerializeBuffer &operator>>(int32_t &value) { value = read_int32(); return *this; } SerializeBuffer &operator>>(int64_t &value) { value = read_int64(); return *this; } SerializeBuffer &operator>>(std::string &value) { value = read_string(); return *this; } SerializeBuffer &operator>>(RGB &value) { value = read_rgb(); return *this; } SerializeBuffer &operator>>(Vec2 &value) { value = read_vec2(); return *this; } size_t offset(); size_t available(); float read_float32(); int32_t read_int32(); int64_t read_int64(); std::string read_string(); RGB read_rgb() { float r = read_float32(); float g = read_float32(); float b = read_float32(); return RGB(r, g, b); } Vec2 read_vec2() { float x = read_float32(); float y = read_float32(); return Vec2(x, y); } void write_file(const std::string &filename); void read_file(const std::string &filename); private: SerializeBufferPriv *priv; }; #endif /* CIRCLE1D_SERIALIZE_H */ chromono-1.1.1/src/circle1d/vector.h000066400000000000000000000071511410712601600172700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef CARPHONE_VECTOR_H #define CARPHONE_VECTOR_H #include "../shadypostproc.h" #include class Vec2 { public: explicit Vec2(float x=0.0, float y=0.0) : x(x), y(y) {} Vec2 operator+(Vec2 other) { return Vec2(x + other.x, y + other.y); } Vec2 &operator+=(Vec2 other) { x += other.x; y += other.y; return *this; } Vec2 &operator-=(Vec2 other) { x -= other.x; y -= other.y; return *this; } Vec2 operator-(Vec2 other) { return Vec2(x - other.x, y - other.y); } Vec2 operator*(float scalar) { return Vec2(x * scalar, y * scalar); } Vec2 operator*(const Vec2 &other) const { return Vec2(x * other.x, y * other.y); } Vec2 &operator*=(float scalar) { x *= scalar; y *= scalar; return *this; } Vec2 operator/(float scalar) { return Vec2(x / scalar, y / scalar); } Vec2 operator/(const Vec2 &other) const { return Vec2(x / other.x, y / other.y); } Vec2 &operator/=(float scalar) { x /= scalar; y /= scalar; return *this; } float length() { return sqrtf(x*x + y*y); } bool operator==(Vec2 other) { return (*this - other).length() < .0001; } Vec2 normalize() { float l = length(); if (l == 0) { return Vec2(0, 0); } else { return *this / l; } } Vec2 rotate(float angle) { float s = sinf(angle); float c = cosf(angle); return Vec2(x*c - y*s, x*s + y*c); } /** * Rotate [count] points in [points] (x, y coordinates) * around [angle] radians around this vector as center **/ void rotate_around(float angle, float *points, int count) { float c = cosf(angle); float s = sinf(angle); for (int i=0; i * * 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. **/ #include "colors.h" namespace Colors { const RGB STAR(0.7, 0.65, 0.1); //const RGB LOCK(0.8, 0.2, 0.2); const RGB LOCK(0.9, 0.9, 0.9); const RGB CHECK(0.3, 0.7, 0.1); const RGB CHOICE(1.0, 1.0, 1.0); const RGB COLOR_MIX_BACKGROUND_COLOR(0.4, 0.4, 0.4); const RGB SWITCH_ON(0.4, 0.9, 0.2); const RGB SWITCH_OFF(0.9, 0.2, 0.4); const RGB HELP_BACKGROUND_COLOR(0.2, 0.6, 0.8); const RGB SELECTOR_BACKGROUND_COLOR(0.5, 0.2, 0.4); }; chromono-1.1.1/src/colors.h000066400000000000000000000024561410712601600156040ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_COLORS_H #define SHADYPOSTPROC_COLORS_H #include "circle1d.h" namespace Colors { extern const RGB STAR; extern const RGB LOCK; extern const RGB CHECK; extern const RGB CHOICE; extern const RGB COLOR_MIX_BACKGROUND_COLOR; extern const RGB SWITCH_OFF; extern const RGB SWITCH_ON; extern const RGB HELP_BACKGROUND_COLOR; extern const RGB SELECTOR_BACKGROUND_COLOR; }; #endif /* SHADYPOSTPROC_COLORS_H */ chromono-1.1.1/src/constants.cpp000066400000000000000000000027731410712601600166540ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "constants.h" namespace Constants { int WORLD_WIDTH = 800; int WORLD_HEIGHT = 480; int TICK_MS = 20; int PAGE_INDICATOR_RADIUS = 8; int TRANSITION_DURATION_MS = 100; int RENDERED_TEXT_CACHE_GC_FRAMES = 200; int BACK_BUTTON_MARGIN = 10; int BACK_BUTTON_SIZE = 70; int CHOICE_SCREEN_BUTTON_SIZE = 100; int CHOICE_SCREEN_BUTTON_SPACING = 40; int CHOICE_SCREEN_BUTTON_Y = 390; float SHADOW_LENGTH = 9.0; int MENU_PARTICLES = 120; bool RENDERED_LEVEL_PREVIEWS = true; bool UNLOCK_ALL = false; float MUSIC_VOLUME = 0.05; float EFFECT_VOLUME = 0.3; int DEFAULT_AUDIO_BUFFER = 2048; }; chromono-1.1.1/src/constants.h000066400000000000000000000031421410712601600163100ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_CONSTANTS_H #define SHADYPOSTPROC_CONSTANTS_H namespace Constants { extern int WORLD_WIDTH; extern int WORLD_HEIGHT; extern int TICK_MS; extern int PAGE_INDICATOR_RADIUS; extern int TRANSITION_DURATION_MS; extern int RENDERED_TEXT_CACHE_GC_FRAMES; extern int BACK_BUTTON_MARGIN; extern int BACK_BUTTON_SIZE; extern int CHOICE_SCREEN_BUTTON_SIZE; extern int CHOICE_SCREEN_BUTTON_SPACING; extern int CHOICE_SCREEN_BUTTON_Y; extern float SHADOW_LENGTH; extern int MENU_PARTICLES; extern bool RENDERED_LEVEL_PREVIEWS; extern bool UNLOCK_ALL; extern float MUSIC_VOLUME; extern float EFFECT_VOLUME; extern int DEFAULT_AUDIO_BUFFER; }; #endif /* SHADYPOSTPROC_CONSTANTS_H */ chromono-1.1.1/src/game.cpp000066400000000000000000000266701410712601600155530ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "shadypostproc.h" #include "game.h" #include "transition.h" #include "constants.h" #include "util.h" #include "colors.h" #include "platform.h" #include "resources.h" class GamePriv : public TransitionListener { public: GamePriv(Game *game) : game(game) , transition() , running(false) , target_page(NULL) , func(NULL) , need_screenshot(false) , state(FADE_OUT) { } virtual ~GamePriv() { } void start_transition(Page *target, game_lambda_t func=NULL) { target_page = target; this->func = func; if (!running) { state = FADE_OUT; running = true; transition.start(Constants::TRANSITION_DURATION_MS, this); } } void on_update(float value) { if (state == FADE_OUT) { transition_value = 0.5 * value; } else { transition_value = 0.5 + 0.5 * value; } } void on_finished() { if (state == FADE_OUT) { on_update(1.0); state = FADE_IN; transition.start(Constants::TRANSITION_DURATION_MS, this); } else { on_update(1.0); running = false; } } Game *game; Transition transition; bool running; float transition_value; Page *target_page; game_lambda_t func; bool need_screenshot; enum State { FADE_OUT, FADE_IN, } state; }; static char * get_storage_filename() { const char *folder = Platform::storage_folder(); char *filename; if (folder != NULL && asprintf(&filename, "%s/scores", folder) != -1) { return filename; } return strdup(".chromono_scores"); } Game::Game() : tick_last(Util::ticks()) , tick_accumulator(0) , renderer(NULL) , world_offset(0.0, 0.0) , performance() , scene() , storage_manager(get_storage_filename()) , level_manager(&scene) , score_manager(&level_manager, &storage_manager) , mixer() , menu(this) , level_selector(this) , results_screen(this, &level_manager, &score_manager) , pause_screen(this) , message_box() , gameplay(this) , highscores_screen(this, &menu, Colors::HELP_BACKGROUND_COLOR, "How to Play", FONT_MEDIUM, RESOURCE(howtoplay_markup)) , about_screen(this) , copyright_screen(this, &about_screen, Colors::COLOR_MIX_BACKGROUND_COLOR, "Legal Notices", FONT_SMALL, RESOURCE(copyrights_markup)) , options_screen(this, &storage_manager) , options(options_screen.get_options()) , current_page(NULL) , priv(new GamePriv(this)) { // Load data from disk storage_manager.load_data(); // Begin sound mixing Platform::set_playing(true); jump_to(&menu); } void Game::resize(int width, int height) { if (renderer) { delete renderer; } renderer = new OpenGLRenderer(this, width, height); } Game::~Game() { delete priv; } void Game::render() { //performance.set_show_fps(true); long now = Util::ticks(); tick_accumulator += (now - tick_last); tick_last = now; while (tick_accumulator > Constants::TICK_MS) { Circle1DEvent evt(Circle1DEvent::TICK); handle(&evt); tick_accumulator -= Constants::TICK_MS; } if (!renderer->ready()) { // ready() returns false if we are still loading return; } if (priv->running) { if (priv->need_screenshot) { current_page->before_render(renderer); renderer->begin_capture(Effect::FRAME_A); renderer->begin(); current_page->render_page(renderer); renderer->finish(); renderer->end_capture(Effect::FRAME_A); if (priv->func != NULL) { priv->func(this); } jump_to(priv->target_page); current_page->before_render(renderer); renderer->begin_capture(Effect::FRAME_B); renderer->begin(); current_page->render_page(renderer); renderer->finish(); renderer->end_capture(Effect::FRAME_B); priv->need_screenshot = false; } renderer->begin(); renderer->transition(priv->transition_value); renderer->finish(); performance.frame(); return; } current_page->before_render(renderer); renderer->begin(); current_page->render_page(renderer); if (message_box.opened()) { renderer->overlay(); message_box.render(renderer); } /* char tmp[1024]; sprintf(tmp, "%.2f FPS", performance.framerate()); renderer->text_render(tmp, 700, 10, FONT_SMALL); */ renderer->finish(); renderer->text_gc(); performance.frame(); } void Game::screenshot() { #if 0 /* Save screenshots of all levels to disk, then exit */ char tmp[512]; int preroll_physics_ticks = 100; while (!renderer->ready()) { /* wait */ } for (int i=0; im_width, renderer->m_height); fb.bind(); renderer->begin(); renderer->background(scene.background_color); scene.render(renderer); renderer->finish(); fb.unbind(); sprintf(tmp, "level%03d.rgb", i+1); fb.texture()->save(tmp); } #endif } void Game::handle(Circle1DEvent *event) { Vec2 pos = renderer->screen2world(Vec2(event->x, event->y)); event->x = pos.x; event->y = pos.y; if (event->type == Circle1DEvent::TICK) { mixer.tick(); } if (message_box.opened()) { message_box.handle(event); return; } if (priv->running) { priv->transition.handle(event); } else { current_page->handle_page(event); } } void Game::restart_level() { level_manager.start(level_manager.current()); to_gameplay(); } void Game::to_menu() { transition_to(&menu); } void Game::to_results() { jump_to(&results_screen); } void Game::to_pause() { Platform::play(Sound::GAMEPLAY_PAUSED); jump_to(&pause_screen); } void Game::to_gameplay() { if (current_page == &pause_screen || current_page == &results_screen) { jump_to(&gameplay); } else { transition_to(&gameplay); } } void Game::to_selector(bool show_packs) { scroll_level_selector(level_manager.current()); if (show_packs) { level_selector.go_to_pack(); } else { level_selector.go_to_grid(); } transition_to(&level_selector); } void Game::to_next_unplayed() { // How many stars have we already earned int have_stars = score_manager.stars(); // First try: Go to next level that has not been finished yet for (int level=0; levelrequired_stars <= have_stars || Constants::UNLOCK_ALL)) { start_level(level); return; } } // Second try: Go to first level with less than 3 stars for (int level=0; levelrequired_stars <= have_stars || Constants::UNLOCK_ALL)) { start_level(level); return; } } // No unplayed level - go to selector instead to_selector(true); } void Game::to_highscores() { transition_to(&highscores_screen); } void Game::to_about() { transition_to(&about_screen); } void Game::to_copyright() { transition_to(©right_screen); } void Game::to_options() { transition_to(&options_screen); } void switch_to_next_level(Game *game) { LevelManager *level_manager = game->get_level_manager(); LevelSelector *level_selector = game->get_level_selector(); int next_level = level_manager->current() + 1; if (!level_selector->current_pack_contains(next_level)) { game->to_selector(true); return; } if (next_level < level_manager->count()) { game->scroll_level_selector(next_level); level_manager->start(next_level); } } void Game::to_next_level() { transition_to(&gameplay, switch_to_next_level); } bool Game::can_proceed() { int next_level = level_manager.current() + 1; if (next_level < level_manager.count()) { LevelInfo *info = level_manager.get(next_level); return (score_manager.stars() >= info->required_stars || Constants::UNLOCK_ALL); } return false; } void Game::start_level(int level) { scroll_level_selector(level); level_manager.start(level); transition_to(&gameplay); } void Game::paused() { current_page->on_paused(); Platform::set_playing(false); } void Game::resumed() { tick_last = Util::ticks(); Platform::set_playing(true); } bool Game::back_button() { if (message_box.opened()) { message_box.dismiss(); return true; } return current_page->on_back_button(); } void Game::transition_to(Page *page, game_lambda_t func) { priv->need_screenshot = true; priv->transition_value = 0.0; priv->start_transition(page, func); Platform::play(Sound::PAGE_TRANSITION); } void Game::jump_to(Page *page) { if (current_page == page) { return; } current_page = page; current_page->on_exposed(); start_stop_music(); } void Game::options_changed() { Platform::set_fullscreen(options->fullscreen); start_stop_music(); } void Game::start_stop_music() { OptionsData *options = options_screen.get_options(); if (!(options->enable_music)) { mixer.loop(Sound::NO_SOUND, Constants::MUSIC_VOLUME); } else if (current_page == &gameplay) { mixer.loop(Sound::MUSIC_SNAPPER, Constants::MUSIC_VOLUME); } else if (current_page == &pause_screen) { mixer.loop(Sound::MUSIC_SNAPPER, Constants::MUSIC_VOLUME, 0.0); } else if (current_page == &menu) { mixer.loop(Sound::MUSIC_ALVEG, Constants::MUSIC_VOLUME); } else if (current_page == &level_selector) { mixer.loop(Sound::MUSIC_SUBD, Constants::MUSIC_VOLUME); } else if (current_page != NULL) { mixer.loop(Sound::MUSIC_KASA90, Constants::MUSIC_VOLUME); } mixer.set_sound_effects_enabled(options->enable_sfx); } chromono-1.1.1/src/game.h000066400000000000000000000113601410712601600152060ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_GAME_H #define SHADYPOSTPROC_GAME_H #include "shadypostproc.h" #include "circle1d.h" #include "opengl_renderer.h" #include "menu.h" #include "storagemanager.h" #include "levelmanager.h" #include "scoremanager.h" #include "performance.h" #include "levelselector.h" #include "resultsscreen.h" #include "pausescreen.h" #include "messagebox.h" #include "gameplay.h" #include "highscoresscreen.h" #include "aboutscreen.h" #include "optionsscreen.h" #include "mixer.h" class GamePriv; class Game : public Circle1DEventHandler { public: Game(); virtual ~Game(); /** * "Public API" to be used by (all/most) frontends **/ /* OpenGL viewport resized */ void resize(int width, int height); /* Render a single frame */ void render(); /* Handle an input event */ void handle(Circle1DEvent *event); /* Game has been paused / put in background */ void paused(); /* Game has been resumed / put to foreground */ void resumed(); /* Back button was pressed, returns true if handled */ bool back_button(); /* Returns true if gameplay is currently active (for Swipe Lock) */ bool is_gameplay() { return current_page == &gameplay; } /** * "Semi-Public API" to be used for development **/ void screenshot(); void show_message(const char *message) { message_box.show(message); } bool is_selector() { return current_page == &level_selector && level_selector.is_grid(); } void start_level(int level); void restart_level(); void to_menu(); void to_results(); void to_pause(); void to_gameplay(); void to_selector(bool show_packs); void to_next_unplayed(); void to_highscores(); void to_about(); void to_copyright(); void to_options(); void to_next_level(); bool can_proceed(); void options_changed(); void start_stop_music(); void scroll_level_selector(int level) { level_selector.scroll_to(level); } OpenGLRenderer *get_renderer() { return renderer; } ScoreManager *get_score_manager() { return &score_manager; } LevelManager *get_level_manager() { return &level_manager; } ResultsScreen *get_results_screen() { return &results_screen; } LevelSelector *get_level_selector() { return &level_selector; } Scene *get_scene() { return &scene; } void set_offset(Vec2 world_offset) { this->world_offset = world_offset; } Vec2 get_offset() { return world_offset; } Page *topmost() { return current_page; } void transition_to(Page *page, game_lambda_t func=NULL); void jump_to(Page *page); float get_sound_opacity() { return 0.5 + std::min(0.5, mixer.get_amplitude() * 10.0); } private: long tick_last; long tick_accumulator; OpenGLRenderer *renderer; Vec2 world_offset; /* Without any OpenGL state */ Performance performance; Scene scene; StorageManager storage_manager; LevelManager level_manager; ScoreManager score_manager; Mixer mixer; Menu menu; LevelSelector level_selector; ResultsScreen results_screen; PauseScreen pause_screen; MessageBox message_box; Gameplay gameplay; HighScoresScreen highscores_screen; AboutScreen about_screen; HighScoresScreen copyright_screen; OptionsScreen options_screen; OptionsData *options; Page *current_page; GamePriv *priv; }; #endif /* SHADYPOSTPROC_GAME_H */ chromono-1.1.1/src/gameplay.cpp000066400000000000000000000036301410712601600164300ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "gameplay.h" #include "game.h" Gameplay::Gameplay(Game *game) : Page(game, Icons::PAUSE) { } void Gameplay::handle(Circle1DEvent *event) { Scene *scene = game->get_scene(); if (event->type == Circle1DEvent::TICK && scene->objectiveReached()) { ScoreManager *score_manager = game->get_score_manager(); LevelManager *level_manager = game->get_level_manager(); ResultsScreen *results_screen = game->get_results_screen(); int level = level_manager->current(); bool new_highscore = score_manager->register_score(level, scene->time); results_screen->set_results(level, scene->time, new_highscore); game->to_results(); } scene->handle(event); } void Gameplay::render(OpenGLRenderer *renderer) { game->get_scene()->render(renderer); } void Gameplay::render_background(OpenGLRenderer *renderer) { renderer->background(game->get_scene()->background_color); } bool Gameplay::on_back_button() { game->to_pause(); return true; } void Gameplay::on_paused() { game->to_pause(); } chromono-1.1.1/src/gameplay.h000066400000000000000000000024701410712601600160760ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_GAMEPLAY_H #define SHADYPOSTPROC_GAMEPLAY_H #include "shadypostproc.h" #include "page.h" class Gameplay : public Page { public: Gameplay(Game *game); virtual void handle(Circle1DEvent *event); virtual void render(OpenGLRenderer *renderer); virtual void render_background(OpenGLRenderer *renderer); virtual bool on_back_button(); virtual void on_paused(); }; #endif /* SHADYPOSTPROC_GAMEPLAY_H */ chromono-1.1.1/src/highscoresscreen.cpp000066400000000000000000000123021410712601600201630ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "highscoresscreen.h" #include "game.h" #include "colors.h" #include "util.h" HighScoresScreen::HighScoresScreen(Game *game, Page *parent, RGB color, const char *title, enum FontSize size, Resource *resource) : Page(game, Icons::BACK) , parent(parent) , color(color) , title(title) , size(size) , pressed(false) , last_mouse_pos(0.0, 0.0) , offset(0.0, 0.0) , max_offset_y(0.0) , velocity() , textfile(resource) , textlines() , ticks_since_last_move(0) { char *p = (char*)textfile.data(); char *end = p + textfile.size(); while (p < end) { char *end = strchr(p, '\n'); if (end != NULL) { *end = '\0'; textlines.push_back(p); } p = end + 1; } } void HighScoresScreen::render(OpenGLRenderer *renderer) { render_page_title(renderer, title); RGB heading_color = RGB::mix(RGB(0xffffff), color); float border = 60.0; float y = border; y += offset.y; float h = 30.0; std::vector::iterator it; for(it=textlines.begin(); it != textlines.end(); ++it) { bool do_render = (y >= -h && y <= Constants::WORLD_HEIGHT); float opacity = 1.0; if (y < 0.0) { opacity = 0.0; } else if (y < 120.0) { float target_opacity = y / 120.0; float alpha = 1.0; if (offset.y < -20.0) { alpha = 0.0; } else if (offset.y < 0.0) { alpha = 1.0 - (-offset.y / 20.0); } opacity = opacity * alpha + target_opacity * (1.0 - alpha); } else if (y > Constants::WORLD_HEIGHT - 120.0) { float target_opacity = (Constants::WORLD_HEIGHT - y) / 120.0; float alpha = 1.0; if (offset.y > max_offset_y + 20.0) { alpha = 0.0; } else if (offset.y < 0.0) { alpha = 1.0 - (-(max_offset_y-offset.y) / 20.0); } opacity = opacity * alpha + target_opacity * (1.0 - alpha); } char *line = *it; if (line[0] == '=') { // A poor man's markup language ;) if (do_render) { renderer->text_render(line+1, 120.0, y, (enum FontSize)(size + 1), opacity, heading_color); } y -= 10; } else { if (do_render) { renderer->text_render(line, 120.0, y, size, opacity); } } y += h; } float content_height = (y - offset.y); max_offset_y = (Constants::WORLD_HEIGHT - content_height) - border / 2.0; } void HighScoresScreen::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::TICK) { if (pressed) { ticks_since_last_move++; } else { offset += velocity; velocity *= 0.95; float alpha = 0.5; if (offset.y > 0.0) { offset.y = alpha * offset.y + (1.0 - alpha) * 0.0; velocity = Vec2(0.f, 0.f); } else if (offset.y < max_offset_y) { offset.y = alpha * offset.y + (1.0 - alpha) * max_offset_y; velocity = Vec2(0.f, 0.f); } } } if (event->finger != 0) { return; } Vec2 pos(event->x, event->y); switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (!pressed) { last_mouse_pos = pos; pressed = true; } break; case Circle1DEvent::MOUSEMOTION: if (pressed) { velocity = (pos - last_mouse_pos); offset += velocity; last_mouse_pos = pos; ticks_since_last_move = 0; } break; case Circle1DEvent::MOUSEUP: if (pressed) { if (ticks_since_last_move > 10) { velocity = Vec2(0.0, 0.0); } pressed = false; } break; default: break; } } bool HighScoresScreen::on_back_button() { game->transition_to(parent); return true; } void HighScoresScreen::render_background(OpenGLRenderer *renderer) { renderer->background(color); } void HighScoresScreen::on_exposed() { velocity = offset = Vec2(0.0, 0.0); } chromono-1.1.1/src/highscoresscreen.h000066400000000000000000000035271410712601600176410ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_HIGHSCORESSCREEN_H #define SHADYPOSTPROC_HIGHSCORESSCREEN_H #include "shadypostproc.h" #include "page.h" #include "resources_util.h" #include class HighScoresScreen : public Page { public: HighScoresScreen(Game *game, Page *parent, RGB color, const char *title, enum FontSize size, Resource *resource); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); virtual bool on_back_button(); virtual void render_background(OpenGLRenderer *renderer); virtual void on_exposed(); private: Page *parent; RGB color; const char *title; enum FontSize size; bool pressed; Vec2 last_mouse_pos; Vec2 offset; float max_offset_y; Vec2 velocity; ResourceAccess textfile; std::vector textlines; int ticks_since_last_move; }; #endif /* SHADYPOSTPROC_HIGHSCORESSCREEN_H */ chromono-1.1.1/src/levelmanager.cpp000066400000000000000000000027641410712601600173020ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "levelmanager.h" LevelManager::LevelManager(Scene *scene) : m_scene(scene) , m_levels() , m_current_level(0) { int i = 0; while (levels[i].constructor != NULL) { m_levels.push_back(&(levels[i])); i++; } start(0); } void LevelManager::start(int level) { SHADY_ASSERT(level >= 0 && level < count()); m_scene->reset(); m_levels[level]->constructor(m_scene); m_scene->background_color_from_content(); m_current_level = level; } LevelInfo * LevelManager::get(int level) { SHADY_ASSERT(level >= 0 && level < count()); return m_levels[level]; } LevelManager::~LevelManager() { } chromono-1.1.1/src/levelmanager.h000066400000000000000000000027261410712601600167450ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LEVELMANAGER_H #define SHADYPOSTPROC_LEVELMANAGER_H #include "shadypostproc.h" #include "circle1d.h" #include class LevelManager { public: LevelManager(Scene *scene); virtual ~LevelManager(); void start(int level); int current() { return m_current_level; } void set_current(int level) { m_current_level = level; } int count() { return m_levels.size(); } LevelInfo *get(int level); private: Scene *m_scene; std::vector m_levels; int m_current_level; }; #endif /* SHADYPOSTPROC_LEVELMANAGER_H */ chromono-1.1.1/src/levelselector.cpp000066400000000000000000000101611410712601600174760ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "levelselector.h" #include "levelselectorgrid.h" #include "levelselectorpack.h" static void on_level_pack_selected(LevelPack *pack, void *user_data) { LevelSelector *selector = (LevelSelector*)user_data; selector->select_pack(pack); } static void set_level_selector_state_pack(Game *game) { LevelSelector *selector = game->get_level_selector(); selector->go_to_pack(); } static void set_level_selector_state_grid(Game *game) { LevelSelector *selector = game->get_level_selector(); selector->go_to_grid(); } LevelSelector::LevelSelector(Game *game) : Page(game, Icons::BACK) , pack(new LevelSelectorPack(game, on_level_pack_selected, this)) , grid(new LevelSelectorGrid(game)) , current_pack(&(packs[0])) , star_count_indicator_y(0) , state(PACK) { } LevelSelector::~LevelSelector() { delete grid; } void LevelSelector::scroll_to(int level) { if ((current_pack->first_level < level) || (current_pack->last_level > level)) { LevelPack *new_pack = pack->find_pack(level); if (new_pack != NULL) { select_pack(new_pack, false); } } grid->scroll_to(level); } void LevelSelector::select_pack(LevelPack *pack, bool transition) { current_pack = pack; grid->set_range(pack->first_level, pack->last_level); grid->set_title(pack->name); if (transition) { game->transition_to(this, set_level_selector_state_grid); } } void LevelSelector::render(OpenGLRenderer *renderer) { /* Stars count */ int have_stars = game->get_score_manager()->stars(); char tmp[1024]; sprintf(tmp, "%d", have_stars); int star_w, star_h; star_w = star_h = 30; float text_w, text_h; renderer->text_measure(tmp, &text_w, &text_h, FONT_MEDIUM); float line_h = (text_h > star_h) ? text_h : star_h; Vec2 offset = game->get_offset(); float margin = 20.0; float x = margin - offset.x; star_count_indicator_y = Constants::WORLD_HEIGHT + offset.y - margin - line_h / 2.0; if (state == PACK) { pack->render(renderer); } else if (state == GRID) { grid->render(renderer); } renderer->icon(Icons::STAR, x, star_count_indicator_y - star_h / 2, star_w, star_h, Colors::STAR, 0.9); x += star_w; renderer->text_render(tmp, x, star_count_indicator_y - text_h / 2.0, FONT_MEDIUM); } void LevelSelector::handle(Circle1DEvent *event) { if (event->finger != 0) { /* No multi-touch support in level selector */ return; } if (state == PACK) { pack->handle(event); } else if (state == GRID) { grid->handle(event); } } void LevelSelector::render_background(OpenGLRenderer *renderer) { if (state == GRID) { renderer->background(RGB::mix(current_pack_color(), RGB(0.0, 0.0, 0.0))); } else { renderer->background(Colors::SELECTOR_BACKGROUND_COLOR); } } bool LevelSelector::on_back_button() { if (state == GRID) { game->transition_to(this, set_level_selector_state_pack); return true; } game->to_menu(); return true; } void LevelSelector::before_render(OpenGLRenderer *renderer) { if (state == GRID) { grid->prepare_pages(renderer); } else { pack->before_render(renderer); } } chromono-1.1.1/src/levelselector.h000066400000000000000000000047331410712601600171530ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LEVELSELECTOR_H #define SHADYPOSTPROC_LEVELSELECTOR_H #include "shadypostproc.h" #include "circle1d.h" #include "levelmanager.h" #include "scoremanager.h" #include "opengl_renderer.h" #include "page.h" class Game; class LevelSelectorPack; class LevelSelectorGrid; class LevelSelector : public Page { public: LevelSelector(Game *game); virtual ~LevelSelector(); virtual void before_render(OpenGLRenderer *renderer); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); virtual void render_background(OpenGLRenderer *renderer); virtual bool on_back_button(); void scroll_to(int level); void select_pack(LevelPack *pack, bool transition=true); void go_to_pack() { state = PACK; } void go_to_grid() { state = GRID; } bool is_grid() { return state == GRID; } int indicator_y() { return star_count_indicator_y; } bool current_pack_contains(int level) { SHADY_ASSERT(current_pack != NULL); return (level >= current_pack->first_level && level <= current_pack->last_level); } RGB current_pack_color() { return current_pack->layout.color; } private: LevelSelectorPack *pack; LevelSelectorGrid *grid; LevelPack *current_pack; int star_count_indicator_y; enum State { PACK = 0, GRID, } state; }; #endif /* SHADYPOSTPROC_LEVELSELECTOR_H */ chromono-1.1.1/src/levelselectorgrid.cpp000066400000000000000000000205131410712601600203460ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "levelselectorgrid.h" void render_page_internal_callback(OpenGLRenderer *renderer, void *prepared, void *user_data) { LevelSelectorGrid *grid = (LevelSelectorGrid*)user_data; grid->render_page_internal(renderer, (PagePreviewInfo*)prepared); } void LevelSelectorGrid::prepare_pages(OpenGLRenderer *renderer) { for (int i=0; i<3; i++) { int page = current_page - 1 + i; preview_info[i].page = page; if (page >= 0 && page < pages) { int first_level = first_of(page); for (int level=first_level; level<=last_of(page); level++) { LevelPreviewInfo *pinfo = &(preview_info[i].previews[level-first_level]); if (level < level_manager->count() && level<=last_level) { LevelInfo *info = level_manager->get(level); pinfo->level = level; pinfo->locked = (score_manager->stars() < info->required_stars) && !Constants::UNLOCK_ALL; pinfo->required_stars = info->required_stars; pinfo->stars = score_manager->get_stars(level); } else { pinfo->level = -1; } } renderer->prepare_cached(&(preview_info[i]), sizeof(preview_info[i]), render_page_internal_callback, this); } } } void LevelSelectorGrid::render_page(OpenGLRenderer *renderer, int offset) { int page = preview_info[offset+1].page; if (page >= 0 && page < pages) { Vec2 pos(scroll_offset_x + Constants::WORLD_WIDTH * offset, 0.0); if (offset == 0) { // Slow down dragging of center page if it's the first or // last page, so that there is some scrolling resistance if (page == 0 && scroll_offset_x > 0) { pos.x -= scroll_offset_x * 3 / 4; } else if (page == (pages - 1) && scroll_offset_x < 0) { pos.x -= scroll_offset_x * 3 / 4; } } renderer->draw_cached(&(preview_info[offset+1]), sizeof(preview_info[offset+1]), pos); } } void LevelSelectorGrid::render_page_internal(OpenGLRenderer *renderer, PagePreviewInfo *info) { LevelSelector *level_selector = game->get_level_selector(); RGB color = level_selector->current_pack_color(); RGB text_color = RGB::mix(RGB(0x000000), color); for (int i=0; ipreviews[i]); if (level->level == -1) { continue; } Vec2 pos = position(i); if (!level->locked) { if (Constants::RENDERED_LEVEL_PREVIEWS) { renderer->level_preview(level->level, pos.x, pos.y, size.x, size.y); } else { Vec2 c = pos + size / 2.0; Object o(NULL, c.x, c.y, size.length() / 4.0, Object::FIXED, color); renderer->circle(&o); } } else { float lock_scale = 0.7; float side = std::min(size.x, size.y) * lock_scale; renderer->icon(Icons::LOCK, pos.x + (size.x - side) / 2, pos.y + (size.y - side) / 2, side, side, Colors::LOCK, 0.5); char tmp[1024]; sprintf(tmp, "Need %d stars", level->required_stars); float w, h; renderer->text_measure(tmp, &w, &h, FONT_SMALL); renderer->text_render(tmp, pos.x + (size.x - w) / 2.0, pos.y + size.y - h - 15.0, FONT_SMALL); } } if (!Constants::RENDERED_LEVEL_PREVIEWS) { renderer->flush_circles(); } for (int i=0; ipreviews[i]); if (level->level == -1 || level->locked) { continue; } Vec2 pos = position(i); if (!Constants::RENDERED_LEVEL_PREVIEWS) { float w, h; char tmp[1024]; sprintf(tmp, "%d", level->level - first_level + 1); renderer->text_measure(tmp, &w, &h, FONT_XLARGE); renderer->text_render(tmp, pos.x + (size.x - w) / 2.0, pos.y + (size.y - h) / 2.0, FONT_XLARGE, 1.0, text_color); } for (int i=0; i<3; i++) { renderer->icon(Icons::STAR, pos.x + size.x / 2 + 40 * (i-1) - 20, pos.y + size.y - 45, 40, 40, Colors::STAR, (level->stars > i)?0.9:0.3); } } } void LevelSelectorGrid::handle(Circle1DEvent *event) { Vec2 pos(event->x, event->y); if (event->type == Circle1DEvent::MOUSEDOWN) { mousedown_pos = pos; pressed = true; Platform::play(Sound::BUTTON_PRESS); scrolling = false; } else if (event->type == Circle1DEvent::MOUSEMOTION) { if (pressed) { float scroll_threshold = 50; if ((pos - mousedown_pos).length() > scroll_threshold) { // Start scrolling here scrolling = true; scroll_offset_x = (pos.x - mousedown_pos.x); } } } else if (event->type == Circle1DEvent::MOUSEUP) { if (pressed) { if (!scrolling) { int level = trace(event->x, event->y); if (level != -1 && level < level_manager->count()) { LevelInfo *info = level_manager->get(level); int missing_stars = (info->required_stars - score_manager->stars()); if (missing_stars <= 0 || Constants::UNLOCK_ALL) { Platform::play(Sound::BUTTON_RELEASE); game->start_level(level); } else { char tmp[1024]; sprintf(tmp, (missing_stars == 1) ? "Need %d more star to unlock" : "Need %d more stars to unlock", missing_stars); game->show_message(tmp); Platform::play(Sound::LEVEL_LOCKED_MESSAGE_BOX); } } } else { if (scroll_offset_x > Constants::WORLD_WIDTH / 4.0) { if (previous_page()) { scroll_offset_x -= Constants::WORLD_WIDTH; } } else if (scroll_offset_x < -Constants::WORLD_WIDTH / 4.0) { if (next_page()) { scroll_offset_x += Constants::WORLD_WIDTH; } } } scrolling = false; pressed = false; } } else if (event->type == Circle1DEvent::TICK) { if (!pressed) { scroll_offset_x *= 0.8; } } } void LevelSelectorGrid::render(OpenGLRenderer *renderer) { render_page(renderer, 0); if (scroll_offset_x < 0.0) { render_page(renderer, +1); } else if (scroll_offset_x > 0.0) { render_page(renderer, -1); } Vec2 offset = game->get_offset(); float w, h; renderer->text_measure(title, &w, &h, FONT_LARGE); renderer->text_render(title, (Constants::WORLD_WIDTH - w) / 2.0, 10.0 - offset.y, FONT_LARGE); if (pages > 1) { renderer->page_indicator(Constants::WORLD_WIDTH / 2.0, game->get_level_selector()->indicator_y() + Constants::PAGE_INDICATOR_RADIUS, current_page, pages); } } void LevelSelectorGrid::scroll_to(int level) { current_page = (level - first_level) / per_page(); } chromono-1.1.1/src/levelselectorgrid.h000066400000000000000000000135231410712601600200160ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LEVELSELECTORGRID_H #define SHADYPOSTPROC_LEVELSELECTORGRID_H #include "shadypostproc.h" #include "levelselector.h" #include "game.h" #include "constants.h" #include "colors.h" struct LevelPreviewInfo { int level; bool locked; int required_stars; int stars; }; #define MAX_PREVIEWS_PER_PAGE 6 struct PagePreviewInfo { int page; LevelPreviewInfo previews[MAX_PREVIEWS_PER_PAGE]; }; class LevelSelectorGrid { public: LevelSelectorGrid(Game *game) : game(game) , level_manager(game->get_level_manager()) , score_manager(game->get_score_manager()) , current_page(0) , title("Select a Level") , size(170, 170) , spacing(10, 10) , columns(3) , first_level(0) , last_level(0) , top_left(0, 0) , rows(0) , pages(0) , mousedown_pos(0, 0) , scrolling(false) , pressed(false) , scroll_offset_x(0) { Vec2 available = Vec2(Constants::WORLD_WIDTH, Constants::WORLD_HEIGHT); //columns = (available.x - spacing.x) / (spacing.x + size.x); top_left.x = (available.x - (columns*(spacing.x+size.x) + spacing.x)) / 2.0; rows = (available.y - spacing.y) / (spacing.y + size.y); top_left.y = (available.y - (rows*(spacing.y+size.y) + spacing.y)) / 2.0; for (int i=0; i<3; i++) { preview_info[i].page = -1; SHADY_ASSERT(ARRAY_LENGTH(preview_info[i].previews) >= (size_t)per_page()); memset(&(preview_info[i].previews), 0, sizeof(preview_info[i].previews)); } // At first, show all levels set_range(0, level_manager->count()); } void set_title(const char *title) { this->title = title; } ~LevelSelectorGrid() { } void set_range(int first_level, int last_level) { this->first_level = first_level; this->last_level = last_level; pages = ((last_level - first_level) + per_page() - 1) / per_page(); current_page = 0; } void prepare_pages(OpenGLRenderer *renderer); void render_page(OpenGLRenderer *renderer, int offset); void render_page_internal(OpenGLRenderer *renderer, PagePreviewInfo *info); void render(OpenGLRenderer *renderer); void handle(Circle1DEvent *event); void scroll_to(int level); int per_page() { return columns * rows; } int first_of(int page) { return first_level + page * per_page(); } int last_of(int page) { return first_of(page+1) - 1; } int first() { return first_of(current_page); } int last() { return last_of(current_page); } bool previous_page() { if (current_page > 0) { current_page--; return true; } return false; } bool next_page() { if (current_page < pages-1) { current_page++; return true; } return false; } int trace(int x, int y) { Vec2 pos(x, y); pos = pos - top_left; if (pos.x < spacing.x || pos.y < spacing.y) { // clicked outside (top/left) if (previous_page()) { scroll_offset_x -= Constants::WORLD_WIDTH; } else { // Wrap over scroll_offset_x += Constants::WORLD_WIDTH; current_page = pages - 1; } return -1; } int column = pos.x / (spacing.x + size.x); int row = pos.y / (spacing.y + size.y); if (column >= columns || row >= rows) { // clicked outside (right/bottom) if (next_page()) { scroll_offset_x += Constants::WORLD_WIDTH; } else { // Wrap over scroll_offset_x -= Constants::WORLD_WIDTH; current_page = 0; } return -1; } if ((fmod(pos.x, (spacing.x + size.x)) < spacing.x) || (fmod(pos.y, (spacing.y + size.y)) < spacing.y)) { // clicked inside spacing return -1; } return first() + column + columns * row; } Vec2 position(int index) { int column = index % columns; int row = index / columns; return top_left + Vec2(spacing.x + (size.x + spacing.x) * column, spacing.y + (size.y + spacing.y) * row); } Game *game; LevelManager *level_manager; ScoreManager *score_manager; // State variables int current_page; const char *title; // Parameters that can be configured Vec2 size; Vec2 spacing; int columns; // Subset of levels to be displayed int first_level; int last_level; // Calculate from parameters above Vec2 top_left; int rows; int pages; // Offset for scrolling Vec2 mousedown_pos; bool scrolling; bool pressed; int scroll_offset_x; // Level Preview Info PagePreviewInfo preview_info[3 /* left, current, right */]; }; #endif /* SHADYPOSTPROC_LEVELSELECTORGRID_H */ chromono-1.1.1/src/levelselectorpack.cpp000066400000000000000000000164411410712601600203440ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "levelselectorpack.h" #include "opengl_renderer.h" class PressablePack : public Pressable { public: PressablePack(LevelSelectorPack *pack, Object *o, int id) : Pressable() , pack(pack) , o(o) , id(id) { } virtual ~PressablePack() { } virtual bool contains(Vec2 pos) { return ((o->pos - pos).length() < o->size); } virtual bool on_pressed() { return pack->select_pack(id); } private: LevelSelectorPack *pack; Object *o; int id; }; LevelSelectorPack::LevelSelectorPack(Game *game, level_pack_select_func select_func, void *select_func_user_data) : game(game) , select_func(select_func) , select_func_user_data(select_func_user_data) , level_manager(game->get_level_manager()) , score_manager(game->get_score_manager()) , scene() , title("Chapters") , packs_count(0) , instantiated_behaviors(NULL) { LevelPack *pack = packs; Object *last = NULL; int i = 0; while (pack->name) { SHADY_ASSERT(i < MAX_LEVEL_PACKS); Object *current = new Object(&scene, pack->layout.x, pack->layout.y, pack->layout.size, Object::FIXED | Object::COLLIDER, RGB(0.7, 0.7, 0.7)); if (last != NULL && pack->layout.connected_to_previous) { new Joint(&scene, last, current); } last = current; pack++; level_pack_object[i] = current; pressable_pack[i] = new PressablePack(this, current, i); i++; } packs_count = i; instantiated_behaviors = new int[packs_count]; for (i=0; iget_offset(); float w, h; renderer->text_measure(title, &w, &h, FONT_LARGE); renderer->text_render(title, (Constants::WORLD_WIDTH - w) / 2.0, 10.0 - offset.y, FONT_LARGE); scene.render(renderer); for (int i=0; ilayout.color); Object *o = level_pack_object[i]; int levels = (pack->last_level - pack->first_level + 1); int completed = 0; int locked = 0; for (int i=pack->first_level; i<=pack->last_level; i++) { LevelInfo *info = level_manager->get(i); if (score_manager->get_score(i) != -1) { completed++; } if (score_manager->stars() < info->required_stars && !Constants::UNLOCK_ALL) { locked++; } } int available = levels - locked; if (available > 0) { renderer->text_measure(pack->name, &w, &h, FONT_MEDIUM); renderer->text_render(pack->name, o->pos.x - w/2.0, o->pos.y + o->size + 2.0, FONT_MEDIUM, 1.0, RGB::mix(RGB(1.0, 1.0, 1.0), pack->layout.color)); } float w, h; char tmp[1024]; if (available == 0) { w = h = o->size * 1.5; float x = o->pos.x - w / 2.05; float y = o->pos.y - h / 1.9; renderer->icon(Icons::LOCK, x, y, w, h, RGB(0.0, 0.0, 0.0), 0.2); } else if (completed < levels) { sprintf(tmp, "%d/%d", completed, levels); renderer->text_measure(tmp, &w, &h, FONT_LARGE); renderer->text_render(tmp, o->pos.x - w/2.0, o->pos.y - h/2.0, FONT_LARGE, 1.0, color); } else { //w = h = 60; //float x = o->pos.x - w / 2.0; //float y = o->pos.y - h / 2.0; //renderer->icon(Icons::STAR, x, y, w, h, RGB(0.0, 0.0, 0.0), 0.2); // done //sprintf(tmp, ":)");//%d", levels); } } } void LevelSelectorPack::before_render(OpenGLRenderer *renderer) { bool do_preroll = false; for (int i=0; ilast_level - pack->first_level + 1); int locked = 0; for (int i=pack->first_level; i<=pack->last_level; i++) { LevelInfo *info = level_manager->get(i); if (score_manager->stars() < info->required_stars && !Constants::UNLOCK_ALL) { locked++; } } int available = levels - locked; if (available > 0) { if (!instantiated_behaviors[i]) { o->target_color = o->color = pack->layout.color; // Instantiate new behavior for that pack if (pack->behavior_func) { pack->behavior_func(o); do_preroll = true; } instantiated_behaviors[i] = 1; } } } if (do_preroll) { scene.simulate(60); // preroll } } void LevelSelectorPack::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::TICK) { scene.handle(event); } for (int i=0; ihandle(event); } } LevelPack * LevelSelectorPack::find_pack(int level) { for (int i=0; ifirst_level <= level) && (pack->last_level >= level)) { return pack; } } return NULL; } bool LevelSelectorPack::select_pack(int pack_id) { LevelPack *pack = &(packs[pack_id]); int minimum_required = -1; for (int i=pack->first_level; i<=pack->last_level; i++) { LevelInfo *info = level_manager->get(i); if (minimum_required == -1 || minimum_required > info->required_stars) { minimum_required = info->required_stars; } } int missing_stars = (minimum_required - score_manager->stars()); if (missing_stars > 0 && !Constants::UNLOCK_ALL) { char tmp[1024]; sprintf(tmp, (missing_stars == 1) ? "Need %d more star to unlock" : "Need %d more stars to unlock", missing_stars); game->show_message(tmp); Platform::play(Sound::LEVEL_LOCKED_MESSAGE_BOX); return true; } else { select_func(pack, select_func_user_data); return false; } } chromono-1.1.1/src/levelselectorpack.h000066400000000000000000000041141410712601600200030ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LEVELSELECTORPACK_H #define SHADYPOSTPROC_LEVELSELECTORPACK_H #include "shadypostproc.h" #include "circle1d.h" #include "levelselector.h" #include "game.h" #include "constants.h" #include "colors.h" #define MAX_LEVEL_PACKS 10 class PressablePack; class LevelSelectorPack { public: LevelSelectorPack(Game *game, level_pack_select_func select_func, void *select_func_user_data); ~LevelSelectorPack(); void before_render(OpenGLRenderer *renderer); void render(OpenGLRenderer *renderer); void handle(Circle1DEvent *event); LevelPack *find_pack(int level); bool select_pack(int pack_id); Game *game; level_pack_select_func select_func; void *select_func_user_data; LevelManager *level_manager; ScoreManager *score_manager; Scene scene; // State variables const char *title; Object *level_pack_object[MAX_LEVEL_PACKS]; PressablePack *pressable_pack[MAX_LEVEL_PACKS]; int packs_count; // Array of ints for each pack, 0 means not yet instantiated and 1 means // instantiated (to additionally add behaviors when packs are unlocked // during gameplay) int *instantiated_behaviors; }; #endif /* SHADYPOSTPROC_LEVELSELECTORGRID_H */ chromono-1.1.1/src/loadingtask.h000066400000000000000000000021701410712601600165740ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LOADINGTASK_H #define SHADYPOSTPROC_LOADINGTASK_H #include "shadypostproc.h" class LoadingTask { public: LoadingTask() {} virtual ~LoadingTask() {} virtual void loading_task_run() = 0; }; #endif /* SHADYPOSTPROC_LOADINGTASK_H */ chromono-1.1.1/src/main.cpp000066400000000000000000000215111410712601600155530ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "shadypostproc.h" #include "game.h" #include "util.h" #include #include #include class PlatformPriv { public: PlatformPriv(); ~PlatformPriv(); bool process(Circle1DEventHandler *handler); static void audio_callback(void *userdata, Uint8 *stream, int len); SDL_Window *window; int width; int height; private: audio_func_t audio_func; void *audio_func_user_data; friend class Platform; }; static PlatformPriv *platform_priv = NULL; void PlatformPriv::audio_callback(void *userdata, Uint8 *stream, int len) { PlatformPriv *priv = (PlatformPriv*)userdata; if (priv->audio_func) { priv->audio_func((short*)stream, len/sizeof(short), priv->audio_func_user_data); } } PlatformPriv::PlatformPriv() : audio_func(NULL) , audio_func_user_data(NULL) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER); SDL_AudioSpec desired; memset(&desired, 0, sizeof(desired)); desired.freq = 22050; desired.format = AUDIO_S16; desired.channels = 1; desired.samples = Constants::DEFAULT_AUDIO_BUFFER; desired.callback = PlatformPriv::audio_callback; desired.userdata = this; SDL_OpenAudio(&desired, NULL); platform_priv = this; } PlatformPriv::~PlatformPriv() { SDL_CloseAudio(); SDL_Quit(); } bool PlatformPriv::process(Circle1DEventHandler *handler) { static Circle1DEvent evt; static SDL_Event event; while (SDL_PollEvent(&event)) { if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP) { bool valid = true; evt.button = 0; switch (event.key.keysym.sym) { case SDLK_s: evt.finger = Circle1DEvent::SAVE_SCENE; break; case SDLK_l: evt.finger = Circle1DEvent::LOAD_SCENE; break; case SDLK_e: evt.finger = Circle1DEvent::EDIT; break; case SDLK_d: evt.finger = Circle1DEvent::DELETE; break; case SDLK_c: evt.finger = Circle1DEvent::TOGGLE_COLLIDER; break; case SDLK_g: evt.finger = Circle1DEvent::TOGGLE_GRAVITY; break; case SDLK_b: evt.finger = Circle1DEvent::TOGGLE_BORDERBOUNCE; break; case SDLK_f: evt.finger = Circle1DEvent::TOGGLE_FIXED; break; case SDLK_h: evt.finger = Circle1DEvent::TOGGLE_SHADOWCAST; break; case SDLK_q: // Shortcut useful during development exit(0); break; case SDLK_0: evt.button++; case SDLK_9: evt.button++; case SDLK_8: evt.button++; case SDLK_7: evt.button++; case SDLK_6: evt.button++; case SDLK_5: evt.button++; case SDLK_4: evt.button++; case SDLK_3: evt.button++; case SDLK_2: evt.button++; case SDLK_1: evt.finger = Circle1DEvent::SET_COLOR; break; case SDLK_i: // "inner" color evt.finger = Circle1DEvent::SET_DESIRED_COLOR; break; case SDLK_k: // target "kolor" evt.finger = Circle1DEvent::SET_TARGET_COLOR; break; default: valid = false; break; } if (valid) { evt.type = (event.type == SDL_KEYDOWN) ? Circle1DEvent::KEYDOWN : Circle1DEvent::KEYUP; handler->handle(&evt); } } if (event.type == SDL_KEYDOWN) { switch (event.key.keysym.sym) { case SDLK_ESCAPE: return false; break; default: break; } } else if (event.type == SDL_QUIT) { return false; } else if (event.type == SDL_MOUSEBUTTONDOWN || event.type == SDL_MOUSEBUTTONUP || event.type == SDL_MOUSEMOTION) { evt.finger = 0; if (event.type == SDL_MOUSEBUTTONDOWN) { evt.type = Circle1DEvent::MOUSEDOWN; evt.x = event.button.x; evt.y = event.button.y; evt.finger = event.button.which; evt.button = event.button.button; } else if (event.type == SDL_MOUSEMOTION) { evt.type = Circle1DEvent::MOUSEMOTION; evt.x = event.motion.x; evt.y = event.motion.y; evt.finger = 0; evt.button = 0; for (int i=0; i<3; i++) { if (event.motion.state & (1 << i)) { evt.button = i + 1; break; } } } else if (event.type == SDL_MOUSEBUTTONUP) { evt.type = Circle1DEvent::MOUSEUP; evt.x = event.button.x; evt.y = event.button.y; evt.finger = event.button.which; evt.button = event.button.button; } handler->handle(&evt); } else if (event.type == SDL_WINDOWEVENT) { if (event.window.event == SDL_WINDOWEVENT_RESIZED) { width = event.window.data1; height = event.window.data2; static_cast(handler)->resize(width, height); } } } return true; } void Platform::register_audio(audio_func_t audio_func, void *user_data) { platform_priv->audio_func = audio_func; platform_priv->audio_func_user_data = user_data; } void Platform::set_playing(bool enabled) { SDL_PauseAudio(!enabled); } void Platform::set_fullscreen(bool fullscreen) { SDL_SetWindowFullscreen(platform_priv->window, fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0); } const char * Platform::storage_folder() { char *folder = NULL; if (folder == NULL) { // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html const char *home = getenv("XDG_CONFIG_HOME"); if (home != NULL) { char *tmp; if (asprintf(&tmp, "%s/chromono", home) != -1) { folder = tmp; } } if (folder == NULL) { home = getenv("HOME"); if (home != NULL) { char *tmp; if (asprintf(&tmp, "%s/.config/chromono", home) != -1) { folder = tmp; } } } if (folder != NULL) { ::mkdir(folder, 0777); } } return folder; } long Util::ticks() { return SDL_GetTicks(); } int main(int argc, char *argv[]) { PlatformPriv priv; priv.window = SDL_CreateWindow("chro.mono", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, Constants::WORLD_WIDTH, Constants::WORLD_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0); SDL_GLContext glcontext = SDL_GL_CreateContext(priv.window); SDL_GetWindowSize(priv.window, &(priv.width), &(priv.height)); Game game; game.resize(priv.width, priv.height); while (true) { if (!platform_priv->process(&game)) { break; } game.render(); SDL_GL_SwapWindow(priv.window); } SDL_GL_DeleteContext(glcontext); return 0; } chromono-1.1.1/src/menu.cpp000066400000000000000000000234021410712601600155740ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "menu.h" #include "opengl_renderer.h" #include "game.h" #include "util.h" #include "colors.h" Button::Button(Menu *menu, Object *object, enum Icons::Icon icon, const char *text, game_lambda_t listener) : Pressable() , x(0.0) , y(0.0) , w(0.0) , h(0.0) , m_menu(menu) , m_object(object) , m_text(text) , m_listener(listener) { m_menu->queue_relayout(); } Button::~Button() { //delete m_text; } void Button::set_text(const char *text) { m_text = text; w = h = 0.0; m_menu->queue_relayout(); } void Button::render(OpenGLRenderer *renderer, float opacity) { renderer->text_render(m_text, x, y, FONT_MEDIUM, opacity); //float size = m_object->size * 1.5; //Vec2 pos = m_object->pos - Vec2(size, size) / 2.0; //renderer->icon(m_icon, pos.x, pos.y, size, size, RGB(1.0, 1.0, 1.0), 0.1); } bool Button::contains(Vec2 pos) { return (((pos - m_object->pos).length() < m_object->size) || (pos.x >= x && pos.x <= (x + w) && pos.y >= y && pos.y <= (y + h))); } bool Button::on_pressed() { if (m_listener != NULL) { m_listener(m_menu->get_game()); } return false; } void go_to_selector(Game *game) { game->to_selector(true); } void go_to_next_unplayed(Game *game) { game->to_next_unplayed(); } void go_to_highscores(Game *game) { game->to_highscores(); } void go_to_about(Game *game) { game->to_about(); } void go_to_options(Game *game) { game->to_options(); } class FallingObjectsBehavior : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(FallingObjectsBehavior) FallingObjectsBehavior(Scene *scene, bool *pressed) : Circle1DBehavior(scene) , m_objects() , m_random(1337, 4711) , m_pressed(pressed) , m_stream_strength(0.0) , m_border(0.0) , m_populated(false) { } void populate() { for (int i=0; itime * Constants::TICK_MS * 0.04); } else { float alpha = 0.95; m_stream_strength = alpha * m_stream_strength + (1.0 - alpha) * 0.0; } Vec2 force(10.0 * m_stream_strength * wiggle, - 60.0 * m_stream_strength); std::vector::iterator it; for (it=m_objects.begin(); it != m_objects.end(); ++it) { Object *o = *it; if (o->pos.y > Constants::WORLD_HEIGHT + o->size + m_border) { o->pos = Vec2(m_random.next() % Constants::WORLD_WIDTH, -(o->size + m_border)); } else if (o->pos.y < -(o->size + m_border)) { o->pos = Vec2(m_random.next() % Constants::WORLD_WIDTH, Constants::WORLD_HEIGHT + o->size + m_border); } if (m_stream_strength < 0.5) { o->target_color = RGB::mix(RGB(0.0, 0.0, 0.0), RGB::background()); } o->desired = o->color; o->apply_force(force); } } void set_border(float border) { m_border = border; if (!m_populated) { populate(); scene->simulate(60); // preroll m_populated = true; } } private: std::vector m_objects; Random m_random; bool *m_pressed; float m_stream_strength; float m_border; bool m_populated; }; static Vec2 button_about_pos(Game *game) { Vec2 pos = game->get_offset(); pos.x = Constants::BACK_BUTTON_MARGIN - pos.x; pos.y += Constants::WORLD_HEIGHT - Constants::BACK_BUTTON_MARGIN - Constants::BACK_BUTTON_SIZE; return pos; } static Vec2 button_options_pos(Game *game) { Vec2 pos = game->get_offset(); pos.y += Constants::WORLD_HEIGHT - Constants::BACK_BUTTON_MARGIN - Constants::BACK_BUTTON_SIZE; pos.x += Constants::WORLD_WIDTH - Constants::BACK_BUTTON_MARGIN - Constants::BACK_BUTTON_SIZE; return pos; } Menu::Menu(Game *game) : Page(game) , m_scene() , m_falling_objects(NULL) , m_buttons() , m_must_relayout(false) , m_time(0) , play_button(NULL) , m_pressed(false) , m_button_about(game, go_to_about, button_about_pos(game), Constants::BACK_BUTTON_SIZE) , m_button_options(game, go_to_options, button_options_pos(game), Constants::BACK_BUTTON_SIZE) { m_falling_objects = new FallingObjectsBehavior(&m_scene, &m_pressed); play_button = add_button("Play", Icons::PLAY, RGB(0.4, 0.8, 0.4), go_to_next_unplayed); add_button("Chapters", Icons::GRID, Colors::SELECTOR_BACKGROUND_COLOR, go_to_selector); add_button("Help", Icons::STAR, Colors::HELP_BACKGROUND_COLOR, go_to_highscores); } Menu::~Menu() { std::vector::iterator it; for (it=m_buttons.begin(); it != m_buttons.end(); ++it) { delete (*it); } } Button * Menu::add_button(const char *text, enum Icons::Icon icon, RGB color, game_lambda_t listener) { Object *o = new Object(&m_scene, 300, 300, 64, Object::FIXED | Object::COLLIDER, color); Button *button = new Button(this, o, icon, text, listener); m_buttons.push_back(button); return button; } void Menu::before_render(OpenGLRenderer *renderer) { m_button_about.setPos(button_about_pos(game)); m_button_options.setPos(button_options_pos(game)); } void Menu::render(OpenGLRenderer *renderer) { if (m_must_relayout) { relayout(renderer); m_must_relayout = false; } Vec2 pos = game->get_offset(); m_falling_objects->set_border(pos.y + 10.0); m_scene.render(renderer); std::vector::iterator it; for (it=m_buttons.begin(); it != m_buttons.end(); ++it) { (*it)->render(renderer, 1.0); } RGB color(0.4, 0.6, 0.7); pos = m_button_about.pos(); renderer->icon(Icons::ABOUT, pos.x, pos.y, Constants::BACK_BUTTON_SIZE, Constants::BACK_BUTTON_SIZE, color, 0.3); pos = m_button_options.pos(); renderer->icon(Icons::OPTIONS, pos.x, pos.y, Constants::BACK_BUTTON_SIZE, Constants::BACK_BUTTON_SIZE, color, 0.3); } void Menu::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::TICK) { m_scene.handle(event); m_time++; } if (m_button_about.handle(event)) { return; } else if (m_button_options.handle(event)) { return; } std::vector::iterator it; for (it=m_buttons.begin(); it != m_buttons.end(); ++it) { if ((*it)->handle(event)) { return; } } if (event->finger == 0) { if (event->type == Circle1DEvent::MOUSEDOWN) { Platform::play(Sound::MAIN_MENU_STREAM_SPEEDUP); m_pressed = true; } else if (event->type == Circle1DEvent::MOUSEUP) { Platform::play(Sound::MAIN_MENU_STREAM_SLOWDOWN); m_pressed = false; } } } void Menu::relayout(OpenGLRenderer *renderer) { Vec2 spacing(50, 10); float height = 0; float width = 0; float button_width = 120; // Measure total width std::vector::iterator it; for (it=m_buttons.begin(); it != m_buttons.end(); ++it) { Button *b = *it; renderer->text_measure(b->m_text, &(b->w), &(b->h), FONT_MEDIUM); width += button_width; height = std::max(spacing.y + b->m_object->size * 2.f, height); } width += spacing.x * (m_buttons.size() - 1); // Layout buttons int x = (Constants::WORLD_WIDTH - width) / 2; for (it=m_buttons.begin(); it != m_buttons.end(); ++it) { Button *b = *it; b->x = x + (button_width - b->w) / 2.0; b->m_object->pos = Vec2(b->x + b->w / 2, Constants::WORLD_HEIGHT / 2); b->y = b->m_object->pos.y + spacing.y + b->m_object->size; x += button_width + spacing.x; } } void Menu::on_exposed() { ScoreManager *score_manager = game->get_score_manager(); if (score_manager->any_played()) { play_button->set_text("Continue"); } } void Menu::render_background(OpenGLRenderer *renderer) { RGB color = RGB::mix(RGB(0xFFFFFF), RGB::background(), 0.3 * game->get_sound_opacity()); renderer->background(color); } chromono-1.1.1/src/menu.h000066400000000000000000000052261410712601600152450ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_MENU_H #define SHADYPOSTPROC_MENU_H #include "shadypostproc.h" #include "circle1d.h" #include "font.h" #include "icons.h" #include "pressable.h" #include "page.h" #include class Menu; class OpenGLRenderer; class Game; class Button : public Pressable { public: Button(Menu *menu, Object *object, enum Icons::Icon icon, const char *text, game_lambda_t listener); ~Button(); void render(OpenGLRenderer *renderer, float opacity); void set_text(const char *text); virtual bool contains(Vec2 pos); virtual bool on_pressed(); private: float x; float y; float w; float h; Menu *m_menu; Object *m_object; const char *m_text; game_lambda_t m_listener; friend class Menu; }; class FallingObjectsBehavior; class Menu : public Page { public: Menu(Game *game); ~Menu(); Game *get_game() { return game; } Button *add_button(const char *text, enum Icons::Icon icon, RGB color, game_lambda_t listener=NULL); virtual void before_render(OpenGLRenderer *renderer); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); virtual void on_exposed(); virtual void render_background(OpenGLRenderer *renderer); void relayout(OpenGLRenderer *renderer); void queue_relayout() { m_must_relayout = true; } private: Scene m_scene; FallingObjectsBehavior *m_falling_objects; std::vector m_buttons; bool m_must_relayout; long m_time; Button *play_button; bool m_pressed; PressableRect m_button_about; PressableRect m_button_options; }; #endif /* SHADYPOSTPROC_MENU_H */ chromono-1.1.1/src/messagebox.cpp000066400000000000000000000030231410712601600167620ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "messagebox.h" #include "constants.h" #include MessageBox::MessageBox() : m_message("") , m_opened(false) { } MessageBox::~MessageBox() { } void MessageBox::show(const char *message) { m_message = message; m_opened = true; } void MessageBox::render(OpenGLRenderer *renderer) { float w, h; renderer->text_measure(m_message.c_str(), &w, &h, FONT_LARGE); renderer->text_render(m_message.c_str(), (Constants::WORLD_WIDTH - w) / 2.0, (Constants::WORLD_HEIGHT - h) / 2.0, FONT_LARGE); } void MessageBox::handle(Circle1DEvent *event) { if (event->type == Circle1DEvent::MOUSEUP) { m_opened = false; } } chromono-1.1.1/src/messagebox.h000066400000000000000000000027161410712601600164370ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_MESSAGEBOX_H #define SHADYPOSTPROC_MESSAGEBOX_H #include "shadypostproc.h" #include "circle1d.h" #include "opengl_renderer.h" #include class MessageBox : public Circle1DEventHandler { public: MessageBox(); virtual ~MessageBox(); void show(const char *message); bool opened() { return m_opened; } void dismiss() { m_opened = false; } void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); private: std::string m_message; bool m_opened; }; #endif /* SHADYPOSTPROC_MESSAGEBOX_H */ chromono-1.1.1/src/mixer.cpp000066400000000000000000000335671410712601600157710ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "mixer.h" #include "platform.h" #include "constants.h" #include "resources.h" #include #include #include #define MIXER_MAX_CHANNELS 4 #define MIXER_BACKGROUNDS 2 #include static size_t decode_ogg_in_memory(const unsigned char *encoded_ogg, size_t encoded_ogg_length_bytes, int *channels, int *sample_rate, short **decoded_samples) { OggVorbis_File ovf; memset(&ovf, 0, sizeof(ovf)); ov_callbacks callbacks; memset(&callbacks, 0, sizeof(callbacks)); if (ov_open_callbacks(NULL, &ovf, (char *)encoded_ogg, encoded_ogg_length_bytes, callbacks) == 0) { vorbis_info *info = ov_info(&ovf, -1); *channels = info->channels; *sample_rate = info->rate; size_t pos = 0; size_t allocated_size = 0; *decoded_samples = NULL; while (true) { if (allocated_size == pos) { allocated_size += allocated_size + 1024; *decoded_samples = (short *)realloc(*decoded_samples, allocated_size); } long res = ov_read(&ovf, ((char *)*decoded_samples) + pos, allocated_size - pos, 0, 2, 1, 0); if (res < 0) { free(*decoded_samples); return 0; } else if (res > 0) { pos += res; } else { break; } } *decoded_samples = (short *)realloc(*decoded_samples, pos); ov_clear(&ovf); return pos / sizeof(short); } return 0; } class Buffer { public: Buffer(Resource *resource) { ResourceAccess access(resource); len = decode_ogg_in_memory(access.data(), access.size(), &channels, &sample_rate, &data); } ~Buffer() { free(data); } short get(float pos) { if (pos >= len || pos < 0.0) { return 0.0; } float alpha = fmod(pos, 1.0); int cur = (int)pos; if (alpha == 0.0) { return data[cur]; } int nxt = (cur + 1 < len) ? (cur + 1) : cur; return (data[cur] * (1.0 - alpha) + data[nxt] * alpha); } short *data; int len; int channels; int sample_rate; }; class Playback { public: Playback(); ~Playback(); Playback(const Playback &other); Playback &operator=(const Playback &other); void start(Buffer *buffer, float rate=1.0, float volume=1.0, bool loop=false); void stop(); void tick(); void fill(short *stream, int len); void set_rate(float rate) { this->rate = rate; } float get_rate() { return rate; } void set_volume(float volume) { this->volume = volume; } float get_volume() { return volume; } void set_loop(bool loop) { this->loop = loop; } float get_loop() { return loop; } long position() { return current_pos * 1000 / 22050; } long duration() { return buffer->len * 1000 / 22050; } void start_fade_out() { if (fadeout == -1) { fadeout = 50; } } void stop_fade_out() { fadeout = -1; } bool finished() { return (buffer == NULL || current_pos > buffer->len || fadeout == 0); } bool is_buffer(Buffer *buffer) { return this->buffer == buffer; } private: Buffer *buffer; float current_pos; float current_rate; float current_volume; float rate; float volume; bool loop; int fadeout; }; class Player { public: Player(); ~Player(); void music(Buffer *buffer, float rate=1.0, float volume=1.0); void sfx(Buffer *buffer, float rate=1.0, float volume=1.0); void tick(); // current amplitude, used for visualization float amplitude; private: static void audio_func(short *stream, int len, void *user_data); void fill(short *stream, int len); float mix(short *dst, short *src, int len); pthread_mutex_t mutex; // Two backgrounds for fading between them Playback background[MIXER_BACKGROUNDS]; Playback effects[MIXER_MAX_CHANNELS]; }; class MixerPriv { public: MixerPriv(); ~MixerPriv(); float get_amplitude() { return player.amplitude; } Buffer *buffers[Sound::COUNT]; Player player; bool sound_effects_enabled; }; static struct { enum Sound::Effect effect; Resource *resource; } RESOURCE_MAPPING[] = { {Sound::LEVEL_LOCKED_MESSAGE_BOX, RESOURCE(sound_level_locked_message_box_ogg)}, {Sound::BUTTON_RELEASE, RESOURCE(sound_button_release_ogg)}, {Sound::LEVEL_COMPLETE_NO_STARS, RESOURCE(sound_level_complete_ogg)}, {Sound::LEVEL_COMPLETE_1_STAR, RESOURCE(sound_level_complete_ogg)}, {Sound::LEVEL_COMPLETE_2_STARS, RESOURCE(sound_level_complete_ogg)}, {Sound::LEVEL_COMPLETE_3_STARS, RESOURCE(sound_level_complete_ogg)}, {Sound::TOGGLE_SWITCH_OFF, RESOURCE(sound_toggle_switch_off_ogg)}, {Sound::PAGE_TRANSITION, RESOURCE(sound_page_transition_ogg)}, {Sound::COLOR_CHANGES_TO_WRONG, RESOURCE(sound_color_changes_to_wrong_ogg)}, {Sound::MOVABLE_SPHERE_RELEASE, RESOURCE(sound_movable_sphere_release_ogg)}, {Sound::MOVABLE_SPHERE_PRESS, RESOURCE(sound_movable_sphere_press_ogg)}, {Sound::COLOR_CHANGES_TO_RIGHT, RESOURCE(sound_color_changes_to_right_ogg)}, {Sound::TOGGLE_SWITCH_ON, RESOURCE(sound_toggle_switch_on_ogg)}, {Sound::CHAIN_BREAKS, RESOURCE(sound_chain_breaks_ogg)}, {Sound::SPHERE_HITS_WALL, RESOURCE(sound_sphere_hits_wall_ogg)}, {Sound::BUTTON_PRESS, RESOURCE(sound_button_press_ogg)}, {Sound::MUSIC_ALVEG, RESOURCE(music_alveg_ogg)}, {Sound::MUSIC_KASA90, RESOURCE(music_kasa90_ogg)}, {Sound::MUSIC_SNAPPER, RESOURCE(music_snapper_ogg)}, {Sound::MUSIC_SUBD, RESOURCE(music_subd_ogg)}, }; MixerPriv::MixerPriv() : player() , sound_effects_enabled(true) { for (int i=0; iplay(sound, Constants::EFFECT_VOLUME); } Mixer::Mixer() : priv(new MixerPriv) { Platform::register_effect(mixer_effect, this); } Mixer::~Mixer() { Platform::register_effect(NULL, NULL); delete priv; } void Mixer::play(enum Sound::Effect effect, float volume) { if (priv->sound_effects_enabled) { float rate = 1.0; priv->player.sfx(priv->buffers[effect], rate, volume); } } void Mixer::loop(enum Sound::Effect music, float volume, float rate) { priv->player.music(priv->buffers[music], rate, volume); } void Mixer::tick() { priv->player.tick(); } Playback::Playback() : buffer(NULL) , current_pos(0.0) , current_rate(1.0) , current_volume(1.0) , rate(1.0) , volume(1.0) , loop(false) , fadeout(0) { } Playback::Playback(const Playback &other) : buffer(other.buffer) , current_pos(other.current_pos) , current_rate(other.current_rate) , current_volume(other.current_volume) , rate(other.rate) , volume(other.volume) , loop(other.loop) , fadeout(other.fadeout) { } Playback & Playback::operator=(const Playback &other) { this->buffer = other.buffer; this->current_pos = other.current_pos; this->current_rate = other.current_rate; this->current_volume = other.current_volume; this->rate = other.rate; this->volume = other.volume; this->loop = other.loop; this->fadeout = other.fadeout; return *this; } void Playback::start(Buffer *buffer, float rate, float volume, bool loop) { this->buffer = buffer; this->current_pos = 0.0; this->current_rate = this->rate = rate; this->current_volume = this->volume = volume; this->loop = loop; this->fadeout = -1; } void Playback::stop() { this->loop = false; this->fadeout = 0; } Playback::~Playback() { } void Playback::fill(short *stream, int len) { float factor = volume; if (fadeout >= 0) { factor *= (float)fadeout / 100.0; } for (int i=0; iget(current_pos) * factor; current_pos += current_rate; if (loop) { if (current_pos >= buffer->len - 1) { current_pos = 0.0; } } } } void Playback::tick() { float alpha = 0.95; current_rate = alpha * current_rate + (1.0 - alpha) * rate; current_volume = alpha * current_volume + (1.0 - alpha) * volume; if (fadeout > 0) { fadeout--; } } void Player::audio_func(short *stream, int len, void *user_data) { Player *player = (Player*)user_data; player->fill(stream, len); } Player::Player() : amplitude(0) { pthread_mutex_init(&mutex, NULL); Platform::register_audio(Player::audio_func, this); } Player::~Player() { Platform::register_audio(NULL, NULL); pthread_mutex_destroy(&mutex); } void Player::sfx(Buffer *buffer, float rate, float volume) { if (buffer == NULL) { return; } int i = 0; if (pthread_mutex_lock(&mutex) == 0) { for (i=0; iis_buffer(buffer)) { // Music is already playing - just update rate/volume a->stop_fade_out(); a->set_loop(true); a->set_rate(rate); a->set_volume(volume); } else { // Move old background music from "a" to "b" and fade out, // then start new music on "a" (or stop "a" if fading out) background[1] = background[0]; b->start_fade_out(); if (buffer != NULL) { a->start(buffer, rate, volume, true); } else { a->stop(); } } pthread_mutex_unlock(&mutex); } } void Player::tick() { if (pthread_mutex_lock(&mutex) == 0) { for (int i=0; i amplitude_new) { amplitude_new = ampl; } } } amplitude = amplitude_new; } float Player::mix(short *dst, short *src, int len) { const int max = (1 << 15) - 1; const int min = -(1 << 15); int amplitude = 0; for (int i=0; i max) { s = max; } if (s > amplitude) { amplitude = s; } dst[i] = s; } return (float)amplitude / (float)max; } void Mixer::set_sound_effects_enabled(bool enabled) { priv->sound_effects_enabled = enabled; } float Mixer::get_amplitude() { return priv->get_amplitude(); } chromono-1.1.1/src/mixer.h000066400000000000000000000031561410712601600154250ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_MIXER_H #define SHADYPOSTPROC_MIXER_H #include "shadypostproc.h" #include "sounds.h" class MixerPriv; class Mixer { public: Mixer(); virtual ~Mixer(); // Play a single sound effect once void play(enum Sound::Effect effect, float volume=1.0); // Set the current background music loop void loop(enum Sound::Effect music, float volume=1.0, float rate=1.0); // Update properties, clean up things, etc.. void tick(); // Called from Game to enable/disable sound effects void set_sound_effects_enabled(bool enabled); // Get current amplitude for visualization float get_amplitude(); private: MixerPriv *priv; }; #endif /* SHADYPOSTPROC_MIXER_H */ chromono-1.1.1/src/optionsscreen.cpp000066400000000000000000000140661410712601600175310ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "optionsscreen.h" #include "game.h" #include "circle1d.h" #include "colors.h" class ToggleOption : public Circle1DBehavior { public: CIRCLE1D_BEHAVIOR_BODY(ToggleOption) ToggleOption(Game *game, Scene *scene, Vec2 pos, const char *label, int *target, Storable *storable) : Circle1DBehavior(scene) , game(game) , pos(pos) , label(label) , target(target) , storable(storable) , old_grabbed(-1) , switch_object(NULL) { switch_object = new Object(scene, pos.x, pos.y, 30, Object::FIXED | Object::COLLIDER | Object::CANGRAB, (*target) ? Colors::SWITCH_ON : Colors::SWITCH_OFF); } virtual ~ToggleOption() { } void update_switch(bool force=false) { if (*target) { switch_object->target_color = Colors::SWITCH_ON; } else { switch_object->target_color = Colors::SWITCH_OFF; } if (force) { switch_object->color = switch_object->target_color; } else { game->options_changed(); if (*target) { Platform::play(Sound::TOGGLE_SWITCH_ON); } else { Platform::play(Sound::TOGGLE_SWITCH_OFF); } } } virtual void simulate() { if (switch_object->grabbed != old_grabbed) { if (switch_object->grabbed != -1) { if (*target) { *target = 0; } else { *target = 1; } storable->save_data(); update_switch(); } old_grabbed = switch_object->grabbed; } } Game *game; Vec2 pos; const char *label; int *target; Storable *storable; int old_grabbed; Object *switch_object; }; class OptionsScreenPriv { public: OptionsScreenPriv(Game *game, StorageManager *storage_manager); ~OptionsScreenPriv(); void render(OpenGLRenderer *renderer); void handle(Circle1DEvent *event); bool on_options_loaded(); Game *m_game; OptionsData m_options_data; StorableStruct *m_storable; Scene m_scene; std::list m_toggle_options; }; static bool on_options_load(void *buffer, void *user_data) { OptionsScreenPriv *priv = (OptionsScreenPriv*)user_data; return priv->on_options_loaded(); } OptionsScreenPriv::OptionsScreenPriv(Game *game, StorageManager *storage_manager) : m_game(game) , m_options_data() , m_storable(NULL) , m_scene() , m_toggle_options() { m_storable = new StorableStruct(storage_manager, &m_options_data, sizeof(m_options_data), on_options_load, this); int items = 3; float spacing = 80.0; Vec2 pos(200.0, (Constants::WORLD_HEIGHT - (items - 1) * spacing) / 2.f); m_toggle_options.push_back(new ToggleOption(game, &m_scene, pos, "Fullscreen", &(m_options_data.fullscreen), m_storable)); pos.y += spacing; m_toggle_options.push_back(new ToggleOption(game, &m_scene, pos, "Enable music", &(m_options_data.enable_music), m_storable)); pos.y += spacing; m_toggle_options.push_back(new ToggleOption(game, &m_scene, pos, "Enable sound effects", &(m_options_data.enable_sfx), m_storable)); pos.y += spacing; } OptionsScreenPriv::~OptionsScreenPriv() { delete m_storable; } void OptionsScreenPriv::render(OpenGLRenderer *renderer) { std::list::iterator it; for (it=m_toggle_options.begin(); it != m_toggle_options.end(); ++it) { ToggleOption *top = (*it); float w, h; renderer->text_measure(top->label, &w, &h, FONT_MEDIUM); Vec2 pos = top->switch_object->pos; pos.y -= h / 2.0; pos.x += top->switch_object->size + 15.0; renderer->text_render(top->label, pos.x, pos.y, FONT_MEDIUM); } m_scene.render(renderer); } void OptionsScreenPriv::handle(Circle1DEvent *event) { m_scene.handle(event); } bool OptionsScreenPriv::on_options_loaded() { std::list::iterator it; for (it=m_toggle_options.begin(); it != m_toggle_options.end(); ++it) { ToggleOption *top = (*it); top->update_switch(true); } m_game->options_changed(); // Assume always true for now return true; } OptionsScreen::OptionsScreen(Game *game, StorageManager *storage_manager) : Page(game, Icons::BACK) , priv(new OptionsScreenPriv(game, storage_manager)) { } OptionsScreen::~OptionsScreen() { delete priv; } void OptionsScreen::render(OpenGLRenderer *renderer) { render_page_title(renderer, "Settings"); priv->render(renderer); } void OptionsScreen::handle(Circle1DEvent *event) { priv->handle(event); } bool OptionsScreen::on_back_button() { game->to_menu(); return true; } OptionsData * OptionsScreen::get_options() { return &(priv->m_options_data); } chromono-1.1.1/src/optionsscreen.h000066400000000000000000000032531410712601600171720ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_OPTIONSSCREEN_H #define SHADYPOSTPROC_OPTIONSSCREEN_H #include "shadypostproc.h" #include "storagemanager.h" #include "page.h" struct OptionsData { public: OptionsData() : fullscreen(0) , enable_music(1) , enable_sfx(1) { } int fullscreen; int enable_music; int enable_sfx; }; class OptionsScreenPriv; class OptionsScreen : public Page { public: OptionsScreen(Game *game, StorageManager *storage_manager); virtual ~OptionsScreen(); virtual void render(OpenGLRenderer *renderer); virtual void handle(Circle1DEvent *event); virtual bool on_back_button(); OptionsData *get_options(); private: OptionsScreenPriv *priv; }; #endif /* SHADYPOSTPROC_OPTIONSSCREEN_H */ chromono-1.1.1/src/page.cpp000066400000000000000000000061531410712601600155500ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "page.h" #include "game.h" static void game_back_button(Game *game) { game->back_button(); } /** * About the back_pressable position: * * Consider everything to the left and top of the back button * area to also be a feedback area for the back button (this * allows easier navigation by just pressing at the top left * corner of the screen) - especially important in selector * * for event handling: * pressable_pos = -game->get_offset() * pressable_size = (button margin + button size) * * for rendering: * render_pos = (pressable_pos + button margin) * render_size = button size **/ Page::Page(Game *game, enum Icons::Icon back) : game(game) , back(back) , back_pressable(game, game_back_button, -game->get_offset(), Constants::BACK_BUTTON_SIZE + Constants::BACK_BUTTON_MARGIN) { } void Page::handle_page(Circle1DEvent *event) { if (back != Icons::NONE) { if (back_pressable.handle(event)) { return; } } handle(event); } void Page::render_page(OpenGLRenderer *renderer) { back_pressable.setPos(-game->get_offset()); render_background(renderer); render(renderer); if (back != Icons::NONE) { Vec2 pos = back_pressable.pos() + Vec2(Constants::BACK_BUTTON_MARGIN, Constants::BACK_BUTTON_MARGIN); renderer->icon(back, pos.x, pos.y, Constants::BACK_BUTTON_SIZE, Constants::BACK_BUTTON_SIZE, RGB(1.0, 1.0, 1.0), 0.1); } } void Page::render_background(OpenGLRenderer *renderer) { renderer->background(RGB::background()); } void Page::render_text_center(OpenGLRenderer *renderer, const char *text, enum FontSize size, float *y, float opacity) { float text_w, text_h; renderer->text_measure(text, &text_w, &text_h, size); float x = (Constants::WORLD_WIDTH - text_w) / 2.0; renderer->text_render(text, x, *y, size, opacity); (*y) += text_h; } void Page::render_page_title(OpenGLRenderer *renderer, const char *text) { Vec2 offset = game->get_offset(); float w, h; renderer->text_measure(text, &w, &h, FONT_LARGE); renderer->text_render(text, (Constants::WORLD_WIDTH - w) / 2.0, 10.0 - offset.y, FONT_LARGE); } chromono-1.1.1/src/page.h000066400000000000000000000041561410712601600152160ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PAGE_H #define SHADYPOSTPROC_PAGE_H #include "shadypostproc.h" #include "circle1d.h" #include "icons.h" #include "pressable.h" class OpenGLRenderer; class Game; class Page : public Circle1DEventHandler { public: Page(Game *game, enum Icons::Icon back=Icons::NONE); /* Used by game */ void handle_page(Circle1DEvent *event); void render_page(OpenGLRenderer *renderer); /* Implemented/overridden by subclasses */ virtual void handle(Circle1DEvent *event) = 0; virtual void render(OpenGLRenderer *renderer) = 0; virtual void before_render(OpenGLRenderer *renderer) {} virtual void on_exposed() { } virtual void on_paused() { } virtual bool on_back_button() { return false; } virtual void render_background(OpenGLRenderer *renderer); /* Helper function */ void render_text_center(OpenGLRenderer *renderer, const char *text, enum FontSize size, float *y, float opacity=1.0); void render_page_title(OpenGLRenderer *renderer, const char *text); protected: Game *game; private: enum Icons::Icon back; PressableRect back_pressable; }; #endif /* SHADYPOSTPROC_PAGE_H */ chromono-1.1.1/src/pausescreen.cpp000066400000000000000000000033471410712601600171530ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "pausescreen.h" #include "game.h" #include "constants.h" static void action_restart_level(Game *g) { g->restart_level(); } static void action_to_selector(Game *g) { g->to_selector(false); } static ChoiceScreenButton buttons[] = { ChoiceScreenButton("Restart", Icons::RESTART, action_restart_level), ChoiceScreenButton("To Menu", Icons::GRID, action_to_selector), }; PauseScreen::PauseScreen(Game *game) : ChoiceScreen(game, buttons, ARRAY_LENGTH(buttons), Icons::PAUSE) { } PauseScreen::~PauseScreen() { } void PauseScreen::render(OpenGLRenderer *renderer) { game->get_scene()->render(renderer); renderer->overlay(); float y = 230; render_text_center(renderer, "Game paused", FONT_XLARGE, &y); ChoiceScreen::render(renderer); } bool PauseScreen::on_back_button() { Platform::play(Sound::GAMEPLAY_RESUMED); game->to_gameplay(); return true; } chromono-1.1.1/src/pausescreen.h000066400000000000000000000023401410712601600166100ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PAUSESCREEN_H #define SHADYPOSTPROC_PAUSESCREEN_H #include "shadypostproc.h" #include "choicescreen.h" class PauseScreen : public ChoiceScreen { public: PauseScreen(Game *game); virtual ~PauseScreen(); virtual void render(OpenGLRenderer *renderer); virtual bool on_back_button(); }; #endif /* SHADYPOSTPROC_PAUSESCREEN_H */ chromono-1.1.1/src/performance.cpp000066400000000000000000000025631410712601600171360ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "performance.h" #include "util.h" Performance::Performance() : m_last_reset(Util::ticks()) , m_frames(0) , m_frame_rate(0.0) , m_show_fps(false) { } void Performance::frame() { m_frames++; long now = Util::ticks(); long diff = (now - m_last_reset); if (diff > 1000) { m_frame_rate = (float)m_frames * 1000.f / (float)diff; if (m_show_fps) { SHADY_DEBUG_PRINTF("FPS: %.2f\n", m_frame_rate); } m_last_reset = now; m_frames = 0; } } chromono-1.1.1/src/performance.h000066400000000000000000000024511410712601600165770ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PERFORMANCE_H #define SHADYPOSTPROC_PERFORMANCE_H #include "shadypostproc.h" class Performance { public: Performance(); void frame(); float framerate() { return m_frame_rate; } void set_show_fps(bool show_fps) { m_show_fps = show_fps; } private: long m_last_reset; long m_frames; float m_frame_rate; bool m_show_fps; }; #endif /* SHADYPOSTPROC_PERFORMANCE_H */ chromono-1.1.1/src/platform.cpp000066400000000000000000000026551410712601600164630ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "platform.h" #include "shadypostproc.h" effect_func_t Platform::effect_func = NULL; void * Platform::effect_func_user_data = NULL; void Platform::play(enum Sound::Effect sound) { if (Platform::effect_func != NULL) { Platform::effect_func(sound, effect_func_user_data); } else { SHADY_DEBUG_PRINTF("Would play sound: %d\n", sound); } } void Platform::register_effect(effect_func_t effect_func, void *user_data) { Platform::effect_func_user_data = NULL; Platform::effect_func = effect_func; Platform::effect_func_user_data = user_data; } chromono-1.1.1/src/platform.h000066400000000000000000000035001410712601600161160ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PLATFORM_H #define SHADYPOSTPROC_PLATFORM_H #include "sounds.h" #include "resources_util.h" // len == number of shorts in stream (sizeof(*stream) / sizeof(short)) typedef void (*audio_func_t)(short *stream, int len, void *user_data); typedef void (*effect_func_t)(enum Sound::Effect sound, void *user_data); class Platform { public: /* Storage */ static const char *storage_folder(); /* Audio */ static void register_audio(audio_func_t audio_func, void *user_data); static void set_playing(bool enabled); /* Sound effects - used by code throughout */ static void play(enum Sound::Effect sound); /* Audio effect handler */ static void register_effect(effect_func_t effect_func, void *user_data); static void set_fullscreen(bool fullscreen); private: static effect_func_t effect_func; static void *effect_func_user_data; }; #endif /* SHADYPOSTPROC_PLATFORM_H */ chromono-1.1.1/src/pressable.cpp000066400000000000000000000036111410712601600166100ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "pressable.h" #include "platform.h" Pressable::Pressable() : finger(-1) { } Pressable::~Pressable() { } bool Pressable::handle(Circle1DEvent *event) { Vec2 pos(event->x, event->y); switch (event->type) { case Circle1DEvent::MOUSEDOWN: if (finger == -1 && contains(pos)) { Platform::play(Sound::BUTTON_PRESS); finger = event->finger; return true; } break; case Circle1DEvent::MOUSEMOTION: if (finger == event->finger) { return true; } break; case Circle1DEvent::MOUSEUP: if (finger == event->finger) { if (contains(pos)) { if (!on_pressed()) { Platform::play(Sound::BUTTON_RELEASE); } } finger = -1; return true; } break; default: /* ignore event */ break; } return false; } chromono-1.1.1/src/pressable.h000066400000000000000000000052621410712601600162610ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PRESSABLE_H #define SHADYPOSTPROC_PRESSABLE_H #include "shadypostproc.h" #include "circle1d.h" class Pressable { public: Pressable(); virtual ~Pressable(); bool handle(Circle1DEvent *event); virtual bool contains(Vec2 pos) = 0; /* Return true here to avoid release sound */ virtual bool on_pressed() = 0; private: int finger; }; class GamePressable : public Pressable { public: GamePressable(Game *game, game_lambda_t callback) : Pressable() , game(game) , callback(callback) { } virtual ~GamePressable() { } virtual bool on_pressed() { callback(game); return false; } protected: Game *game; game_lambda_t callback; }; class PressableRect : public GamePressable { public: PressableRect(Game *game, game_lambda_t callback, float x, float y, float w, float h) : GamePressable(game, callback) , x(x) , y(y) , w(w) , h(h) { } PressableRect(Game *game, game_lambda_t callback, Vec2 pos, float size) : GamePressable(game, callback) , x(pos.x) , y(pos.y) , w(size) , h(size) { } virtual ~PressableRect() { } virtual bool contains(Vec2 pos) { return (pos.x >= x && pos.x <= (x + w) && pos.y >= y && pos.y <= (y + h)); } Vec2 pos() { return Vec2(x, y); } void setPos(Vec2 pos) { x = pos.x; y = pos.y; } private: float x; float y; float w; float h; }; #endif /* SHADYPOSTPROC_PRESSABLE_H */ chromono-1.1.1/src/renderer/000077500000000000000000000000001410712601600157315ustar00rootroot00000000000000chromono-1.1.1/src/renderer/background.cpp000066400000000000000000000074571410712601600205710ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "background.h" #include "opengl_renderer.h" #include "resources.h" #include "util.h" Background::Background(OpenGLRenderer *renderer) : Renderable() , renderer(renderer) , program(SHADER_PROGRAM(renderer, background)) , vertex_buffer() , random_pattern() , template_program(SHADER_PROGRAM(renderer, backgroundtemplate)) , template_framebuffer(renderer, renderer->m_width, renderer->m_height) , template_rendering(true) , vtxcoord_loc(-1) , screensize_loc(-1) , randomsize_loc(-1) , color_loc(-1) { prepare(); } void Background::prepare() { float vertices[] = { -1, -1, 1, -1, -1, 1, 1, 1, }; vertex_buffer.data(vertices, sizeof(vertices), true); // First, render template vtxcoord_loc = template_program.attrib("vtxcoord"); screensize_loc = template_program.uniform("screensize"); randomsize_loc = template_program.uniform("randomsize"); int random_size = 128; unsigned char data[3*random_size*random_size]; Random random(123, 456); for (size_t i=0; im_width, renderer->m_height); glUniform2f(randomsize_loc, random_size, random_size); render(RGB()); deactivate(); template_framebuffer.unbind(); template_rendering = false; //template_framebuffer.texture()->save("background.rgb"); // Next, set up normal rendering vtxcoord_loc = program.attrib("vtxcoord"); screensize_loc = program.uniform("screensize"); color_loc = program.uniform("color"); program.bind(); glUniform2f(screensize_loc, template_framebuffer.texture()->m_subwidth, template_framebuffer.texture()->m_subheight); program.unbind(); } Background::~Background() { deactivate(); } void Background::bind() { if (template_rendering) { template_program.bind(); random_pattern.bind(); } else { program.bind(); template_framebuffer.texture()->bind(); } vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void Background::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); if (template_rendering) { random_pattern.unbind(); program.unbind(); } else { template_framebuffer.texture()->unbind(); template_program.unbind(); } } void Background::render(RGB color) { activate(); if (!template_rendering) { glUniform4f(color_loc, color.r, color.g, color.b, 1.0); } glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/background.h000066400000000000000000000034371410712601600202300ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_BACKGROUND_H #define SHADYPOSTPROC_BACKGROUND_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "texture.h" #include "framebuffer.h" #include "circle1d.h" class OpenGLRenderer; class Background : public Renderable { public: Background(OpenGLRenderer *renderer); virtual ~Background(); virtual void prepare(); virtual void bind(); virtual void unbind(); void render(RGB color); private: OpenGLRenderer *renderer; Program program; VertexBuffer vertex_buffer; Texture random_pattern; Program template_program; Framebuffer template_framebuffer; bool template_rendering; GLint vtxcoord_loc; GLint screensize_loc; GLint randomsize_loc; GLint color_loc; }; #endif /* SHADYPOSTPROC_BACKGROUND_H */ chromono-1.1.1/src/renderer/cachedscreen.cpp000066400000000000000000000044111410712601600210440ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "cachedscreen.h" #include "opengl_renderer.h" #include "resources.h" CachedScreen::CachedScreen(OpenGLRenderer *renderer) : program(SHADER_PROGRAM(renderer, cachedscreen)) , vertex_buffer() , vtxcoord_loc(-1) , offset_loc(-1) , subsize_loc(-1) , rotated_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); offset_loc = program.uniform("offset"); subsize_loc = program.uniform("subsize"); rotated_loc = program.uniform("rotated"); float vertices[] = { -1, -1, -1, 1, 1, -1, 1, 1, }; vertex_buffer.data(vertices, sizeof(vertices), true); } CachedScreen::~CachedScreen() { deactivate(); } void CachedScreen::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void CachedScreen::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); program.unbind(); } void CachedScreen::render(Texture *texture, bool rotated, Vec2 offset) { activate(); if (rotated) { glUniform2f(offset_loc, offset.y, -offset.x); } else { glUniform2f(offset_loc, offset.x, offset.y); } glUniform2f(subsize_loc, texture->m_subwidth, texture->m_subheight); glUniform1i(rotated_loc, rotated); texture->bind(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); texture->unbind(); } chromono-1.1.1/src/renderer/cachedscreen.h000066400000000000000000000031461410712601600205150ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_CACHEDSCREEN_H #define SHADYPOSTPROC_CACHEDSCREEN_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "texture.h" class OpenGLRenderer; class CachedScreen : public Renderable { public: CachedScreen(OpenGLRenderer *renderer); virtual ~CachedScreen(); virtual void bind(); virtual void unbind(); virtual void render(Texture *texture, bool rotated, Vec2 offset); private: Program program; VertexBuffer vertex_buffer; GLint vtxcoord_loc; GLint offset_loc; GLint subsize_loc; GLint rotated_loc; }; #endif /* SHADYPOSTPROC_CACHEDSCREEN_H */ chromono-1.1.1/src/renderer/chromono_opengl.h000066400000000000000000000017751410712601600213040ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #pragma once #if defined(__APPLE__) # define GL_SILENCE_DEPRECATION # include #else # define GL_GLEXT_PROTOTYPES # include #endif chromono-1.1.1/src/renderer/decal.cpp000066400000000000000000000066641410712601600175210ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "decal.h" #include "opengl_renderer.h" #include "resources.h" #include "resources_util.h" #include "circle1d.h" static struct { int w, h; } decal_texture_size = { 1024, 512 }; static struct { int x, y, w, h; } decal_map[Circle1D::DECALS_COUNT] = { /* INTRO_ARROW */ {0, 202, 240, 131}, /* UNTANGLE */ {0, 0, 300, 202}, /* ON_OFF */ {396, 202, 150, 71}, /* COLOR_LEFT */ {300, 119, 212, 69}, /* COLOR_RIGHT */ {240, 202, 156, 73}, /* PENDULUM */ {300, 0, 333, 119}, /* EASTEREGG */ {633, 0, 250, 119}, }; Decal::Decal(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, decal)) , vertex_buffer() , texture() , vtxcoord_loc(-1) , texcoord_loc(-1) , opacity_loc(-1) { prepare(); } void Decal::prepare() { ResourceAccess rgb(RESOURCE(decals_rgb)); texture.setalpha(decal_texture_size.w, decal_texture_size.h, rgb.data()); vtxcoord_loc = program.attrib("vtxcoord"); texcoord_loc = program.attrib("texcoord"); opacity_loc = program.uniform("opacity"); } Decal::~Decal() { deactivate(); } void Decal::bind() { program.bind(); texture.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(texcoord_loc); glVertexAttribPointer(texcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, (void*)(2*4*sizeof(float))); } void Decal::unbind() { glDisableVertexAttribArray(vtxcoord_loc); glDisableVertexAttribArray(texcoord_loc); vertex_buffer.unbind(); texture.unbind(); program.unbind(); } void Decal::render(enum Circle1D::Decal decal, float x, float y, float rotation, float scale, float opacity) { activate(); float tx = (float)(decal_map[decal].x) / (float)(decal_texture_size.w); float ty = (float)(decal_map[decal].y) / (float)(decal_texture_size.h); float tw = (float)(decal_map[decal].w) / (float)(decal_texture_size.w); float th = (float)(decal_map[decal].h) / (float)(decal_texture_size.h); float vw = decal_map[decal].w * scale; float vh = decal_map[decal].h * scale; float vx = x - vw / 2.; float vy = y - vh / 2.; float vertices[] = { /* vtxcoords */ vx, vy, vx+vw, vy, vx, vy+vh, vx+vw, vy+vh, /* texcoord */ tx, ty, tx+tw, ty, tx, ty+th, tx+tw, ty+th, }; Vec2(x, y).rotate_around(rotation, vertices, 4); vertex_buffer.data(vertices, sizeof(vertices)); glUniform1f(opacity_loc, opacity); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/decal.h000066400000000000000000000032231410712601600171520ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_DECAL_H #define SHADYPOSTPROC_DECAL_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "texture.h" class OpenGLRenderer; class Decal : public Renderable { public: Decal(OpenGLRenderer *renderer); virtual ~Decal(); virtual void prepare(); virtual void bind(); virtual void unbind(); void render(enum Circle1D::Decal decal, float x, float y, float rotation, float scale, float opacity); private: Program program; VertexBuffer vertex_buffer; Texture texture; GLint vtxcoord_loc; GLint texcoord_loc; GLint opacity_loc; }; #endif /* SHADYPOSTPROC_DECAL_H */ chromono-1.1.1/src/renderer/effect.cpp000066400000000000000000000057001410712601600176730ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "effect.h" #include "platform.h" #include "opengl_renderer.h" #include "resources.h" Effect::Effect(OpenGLRenderer *renderer) : program(SHADER_PROGRAM(renderer, effect)) , vertex_buffer() , framebuffer() , coord_loc(-1) , subtex_loc(-1) , size_loc(-1) , brightness_loc(-1) { framebuffer[0] = new Framebuffer(renderer, renderer->m_width, renderer->m_height); framebuffer[1] = new Framebuffer(renderer, renderer->m_width, renderer->m_height); coord_loc = program.attrib("coord"); subtex_loc = program.uniform("subtex"); size_loc = program.uniform("size"); brightness_loc = program.uniform("brightness"); program.bind(); glUniform2f(size_loc, (float)renderer->m_width, (float)renderer->m_height); glUniform1f(brightness_loc, 0.0); glUniform1i(program.uniform("portrait"), renderer->m_width < renderer->m_height); glUniform1i(program.uniform("frame_a"), 0); glUniform1i(program.uniform("frame_b"), 1); Texture *texture = framebuffer[0]->texture(); glUniform2f(subtex_loc, texture->m_subwidth, texture->m_subheight); float vertices[] = { 0, 0, 1, 0, 0, 1, 1, 1, }; vertex_buffer.data(vertices, sizeof(vertices), true); } Effect::~Effect() { delete framebuffer[1]; delete framebuffer[0]; deactivate(); } void Effect::begin_capture(enum TransitionFrame frame) { framebuffer[frame]->bind(); } void Effect::end_capture(enum TransitionFrame frame) { framebuffer[frame]->unbind(); } void Effect::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(coord_loc); glVertexAttribPointer(coord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); framebuffer[0]->texture()->bind(); framebuffer[1]->texture()->bind(1); } void Effect::unbind() { framebuffer[0]->texture()->unbind(); framebuffer[1]->texture()->unbind(1); glDisableVertexAttribArray(coord_loc); vertex_buffer.unbind(); program.unbind(); } void Effect::render(float value) { activate(); glUniform1f(brightness_loc, value); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/effect.h000066400000000000000000000033351410712601600173420ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_EFFECT_H #define SHADYPOSTPROC_EFFECT_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "framebuffer.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "renderable.h" class OpenGLRenderer; class Effect : public Renderable { public: Effect(OpenGLRenderer *renderer); virtual ~Effect(); enum TransitionFrame { FRAME_A, FRAME_B, }; void begin_capture(enum TransitionFrame frame); void end_capture(enum TransitionFrame frame); void bind(); void unbind(); void render(float value); private: Program program; VertexBuffer vertex_buffer; Framebuffer *framebuffer[2]; GLint coord_loc; GLint subtex_loc; GLint size_loc; GLint brightness_loc; }; #endif /* SHADYPOSTPROC_EFFECT_H */ chromono-1.1.1/src/renderer/effectoverlay.cpp000066400000000000000000000060001410712601600212670ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "effectoverlay.h" #include "opengl_renderer.h" #include "texture.h" #include "resources.h" EffectOverlay::EffectOverlay(OpenGLRenderer *renderer) : Renderable() , renderer(renderer) , program(SHADER_PROGRAM(renderer, effectoverlay)) , vertex_buffer() , template_framebuffer(renderer, renderer->m_width, renderer->m_height) , template_program(SHADER_PROGRAM(renderer, effectoverlaytemplate)) , template_rendering(true) , vtxcoord_loc(-1) { prepare(); } void EffectOverlay::prepare() { float vertices[] = { 0, 0, 1, 0, 0, 1, 1, 1, }; vertex_buffer.data(vertices, sizeof(vertices), true); // Prepare the template program vtxcoord_loc = template_program.attrib("vtxcoord"); template_program.bind(); glUniform2f(template_program.uniform("subtex"), template_framebuffer.texture()->m_subwidth, template_framebuffer.texture()->m_subheight); glUniform1i(template_program.uniform("portrait"), renderer->m_width < renderer->m_height); template_program.unbind(); template_framebuffer.bind(); activate(); render(); deactivate(); template_framebuffer.unbind(); template_rendering = false; // Prepare the normal program vtxcoord_loc = program.attrib("vtxcoord"); program.bind(); glUniform2f(program.uniform("subtex"), template_framebuffer.texture()->m_subwidth, template_framebuffer.texture()->m_subheight); program.unbind(); } EffectOverlay::~EffectOverlay() { deactivate(); } void EffectOverlay::bind() { if (template_rendering) { template_program.bind(); } else { program.bind(); template_framebuffer.texture()->bind(); } vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void EffectOverlay::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); if (!template_rendering) { template_framebuffer.texture()->unbind(); } } void EffectOverlay::render() { activate(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/effectoverlay.h000066400000000000000000000032071410712601600207420ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_EFFECTOVERLAY_H #define SHADYPOSTPROC_EFFECTOVERLAY_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "framebuffer.h" class OpenGLRenderer; class EffectOverlay : public Renderable { public: EffectOverlay(OpenGLRenderer *renderer); virtual ~EffectOverlay(); virtual void prepare(); virtual void bind(); void render(); virtual void unbind(); private: OpenGLRenderer *renderer; Program program; VertexBuffer vertex_buffer; Framebuffer template_framebuffer; Program template_program; bool template_rendering; GLint vtxcoord_loc; }; #endif /* SHADYPOSTPROC_EFFECTOVERLAY_H */ chromono-1.1.1/src/renderer/font.cpp000066400000000000000000000120771410712601600174120ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "font.h" #include "resources.h" #include #include "stb_font_SourceSansProSemiBold.inl" #define USED_FONT_PIXEL_HEIGHT 50 class FontPriv { public: FontPriv(); ~FontPriv(); stb_fontchar fontdata[STB_SOMEFONT_NUM_CHARS]; Texture texture; }; FontPriv::FontPriv() : fontdata() , texture() { unsigned char fontpixels[STB_SOMEFONT_BITMAP_HEIGHT_POW2][STB_SOMEFONT_BITMAP_WIDTH]; STB_SOMEFONT_CREATE(fontdata, fontpixels, STB_SOMEFONT_BITMAP_HEIGHT_POW2); texture.setalpha(STB_SOMEFONT_BITMAP_WIDTH, STB_SOMEFONT_BITMAP_HEIGHT_POW2, (const unsigned char*)fontpixels); } FontPriv::~FontPriv() { } Font::Font(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, font)) , vertex_buffer() , priv(new FontPriv) , vtxcoord_loc(-1) , texcoord_loc(-1) , transform_loc(-1) , color_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); texcoord_loc = program.attrib("texcoord"); transform_loc = program.uniform("transform"); color_loc = program.uniform("color"); } Font::~Font() { delete priv; deactivate(); } void Font::bind() { program.bind(); vertex_buffer.bind(); priv->texture.bind(); glEnableVertexAttribArray(vtxcoord_loc); glEnableVertexAttribArray(texcoord_loc); } void Font::unbind() { glDisableVertexAttribArray(vtxcoord_loc); glDisableVertexAttribArray(texcoord_loc); priv->texture.unbind(); vertex_buffer.unbind(); program.unbind(); } void Font::render(RenderedText *text, int x, int y, float scale, float opacity, RGB color) { activate(); glUniform4f(color_loc, color.r, color.g, color.b, opacity); glUniform4f(transform_loc, x, y, scale, 0.0); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); glVertexAttribPointer(texcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, (void*)(sizeof(float)*2*6*text->m_count) /* = offset of texcoords in vtxdata */); vertex_buffer.data(text->m_vertices, sizeof(float) * 2 * 2 * 6 * text->m_count); glDrawArrays(GL_TRIANGLES, 0, 6 * text->m_count); } RenderedText::RenderedText(Font *font, const char *text) : m_text(text) , m_vertices(NULL) , m_count(0) , m_width(0) , m_height(0) , m_age(0) { m_count = strlen(text); // 6 corners per quad, // 2 attrs (vtx, tex) per corner, // 2 coords (x, y) per attr m_vertices = new float[m_count * 6 * 2 * 2]; // Font offset in distance field font Vec2 offset(5, 5); m_height = USED_FONT_PIXEL_HEIGHT; m_width = 0; for (int i=0; ipriv->fontdata[char_codepoint - STB_SOMEFONT_FIRST_CHAR]); int vtx_offset = 6 * 2 * i; int tex_offset = (m_count * 6 * 2) + 6 * 2 * i; m_vertices[vtx_offset + 0] = m_width + cd->x0f - offset.x; m_vertices[vtx_offset + 1] = cd->y0f - offset.y; m_vertices[vtx_offset + 2] = m_width + cd->x1f - offset.x; m_vertices[vtx_offset + 3] = cd->y0f - offset.y; m_vertices[vtx_offset + 4] = m_width + cd->x0f - offset.x; m_vertices[vtx_offset + 5] = cd->y1f - offset.y; m_vertices[vtx_offset + 6] = m_width + cd->x1f - offset.x; m_vertices[vtx_offset + 7] = cd->y0f - offset.y; m_vertices[vtx_offset + 8] = m_width + cd->x0f - offset.x; m_vertices[vtx_offset + 9] = cd->y1f - offset.y; m_vertices[vtx_offset + 10] = m_width + cd->x1f - offset.x; m_vertices[vtx_offset + 11] = cd->y1f - offset.y; m_vertices[tex_offset + 0] = cd->s0f; m_vertices[tex_offset + 1] = cd->t0f; m_vertices[tex_offset + 2] = cd->s1f; m_vertices[tex_offset + 3] = cd->t0f; m_vertices[tex_offset + 4] = cd->s0f; m_vertices[tex_offset + 5] = cd->t1f; m_vertices[tex_offset + 6] = cd->s1f; m_vertices[tex_offset + 7] = cd->t0f; m_vertices[tex_offset + 8] = cd->s0f; m_vertices[tex_offset + 9] = cd->t1f; m_vertices[tex_offset + 10] = cd->s1f; m_vertices[tex_offset + 11] = cd->t1f; m_width += cd->advance; } } RenderedText::~RenderedText() { delete [] m_vertices; } chromono-1.1.1/src/renderer/font.h000066400000000000000000000037061410712601600170560ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_FONT_H #define SHADYPOSTPROC_FONT_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "texture.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "platform.h" #include class OpenGLRenderer; class FontPriv; class RenderedText; class Font : public Renderable { public: Font(OpenGLRenderer *renderer); virtual ~Font(); void render(RenderedText *text, int x, int y, float scale, float opacity, RGB color); private: void bind(); void unbind(); Program program; VertexBuffer vertex_buffer; FontPriv *priv; GLint vtxcoord_loc; GLint texcoord_loc; GLint transform_loc; GLint color_loc; friend class RenderedText; }; class RenderedText { public: RenderedText(Font *font, const char *text); ~RenderedText(); std::string m_text; float *m_vertices; int m_count; int m_width; int m_height; int m_age; }; #endif /* SHADYPOSTPROC_FONT_H */ chromono-1.1.1/src/renderer/framebuffer.cpp000066400000000000000000000036211410712601600207230ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "framebuffer.h" #include "opengl_renderer.h" Framebuffer::Framebuffer(OpenGLRenderer *renderer, int width, int height, float scale) : m_framebuffer_id(-1), m_width(width), m_height(height), m_scale(scale), m_oldFB0(0), m_texture(), m_renderer(renderer) { // iOS: http://stackoverflow.com/questions/11617013/ glGetIntegerv(GL_FRAMEBUFFER_BINDING, &m_oldFB0); m_texture.resize(width*scale, height*scale); glGenFramebuffers(1, &m_framebuffer_id); SHADY_ASSERT(m_framebuffer_id != (GLuint)-1); bind(); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_texture.id(), 0); unbind(); } Framebuffer::~Framebuffer() { glDeleteFramebuffers(1, &m_framebuffer_id); } void Framebuffer::bind() { glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer_id); glViewport(0, 0, m_width*m_scale, m_height*m_scale); } void Framebuffer::unbind() { glBindFramebuffer(GL_FRAMEBUFFER, m_oldFB0); glViewport(0, 0, m_renderer->m_width, m_renderer->m_height); } chromono-1.1.1/src/renderer/framebuffer.h000066400000000000000000000027151410712601600203730ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef QW_FRAMEBUFFER_H #define QW_FRAMEBUFFER_H #include "chromono_opengl.h" #include "texture.h" class OpenGLRenderer; class Framebuffer { public: Framebuffer(OpenGLRenderer *renderer, int width, int height, float scale=1.); ~Framebuffer(); void bind(); void unbind(); Texture *texture() { return &m_texture; } private: GLuint m_framebuffer_id; public: int m_width; int m_height; private: float m_scale; GLint m_oldFB0; Texture m_texture; OpenGLRenderer *m_renderer; }; #endif /* QW_FRAMEBUFFER_H */ chromono-1.1.1/src/renderer/icons.cpp000066400000000000000000000056161410712601600175600ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "icons.h" #include "opengl_renderer.h" #include "resources.h" #include "resources_util.h" #include "util.h" Icons::Icons(OpenGLRenderer *renderer) : program(SHADER_PROGRAM(renderer, icons)) , vertex_buffer() , texture() , vtxcoord_loc(-1) , texcoord_loc(-1) , color_loc(-1) { prepare(); } void Icons::prepare() { int width = 512; int height = 512; ResourceAccess access(RESOURCE(icons_rgb)); texture.setrgb(width, height, access.data()); vtxcoord_loc = program.attrib("vtxcoord"); texcoord_loc = program.attrib("texcoord"); color_loc = program.uniform("color"); } Icons::~Icons() { deactivate(); } void Icons::bind() { program.bind(); texture.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(texcoord_loc); glVertexAttribPointer(texcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, (void*)(2*4*sizeof(float)) /* Offset of texcoords in render() */); } void Icons::unbind() { glDisableVertexAttribArray(vtxcoord_loc); glDisableVertexAttribArray(texcoord_loc); vertex_buffer.unbind(); texture.unbind(); program.unbind(); } void Icons::render(enum Icon icon, int x, int y, int w, int h, RGB color, float opacity, float rotation) { activate(); int row = ((int)icon) / 3; int column = ((int)icon) % 3; float side = 1. / 3.; float vtxdata[] = { /* Vertex coordinates */ float(x), float(y), float(x+w), float(y), float(x), float(y+h), float(x+w), float(y+h), /* Texture coordinates */ column * side, row * side, (column + 1) * side, row * side, column * side, (row + 1) * side, (column + 1) * side, (row + 1) * side, }; Vec2(x + w/2, y+h/2).rotate_around(rotation, vtxdata, 4); vertex_buffer.data(vtxdata, sizeof(vtxdata)); glUniform4f(color_loc, color.r, color.g, color.b, opacity); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/icons.h000066400000000000000000000036531410712601600172240ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_ICONS_H #define SHADYPOSTPROC_ICONS_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "framebuffer.h" #include "texture.h" class OpenGLRenderer; class Icons : public Renderable { public: Icons(OpenGLRenderer *renderer); virtual ~Icons(); virtual void prepare(); virtual void bind(); virtual void unbind(); enum Icon { ABOUT = 0, GRID = 1, LOCK = 2, RESTART = 3, OPTIONS = 4, STAR = 5, BACK = 6, PAUSE = 7, PLAY = 8, NONE = 9, }; void render(enum Icon icon, int x, int y, int w, int h, RGB color, float opacity, float rotation); private: Program program; VertexBuffer vertex_buffer; Texture texture; GLint vtxcoord_loc; GLint texcoord_loc; GLint color_loc; }; #endif /* SHADYPOSTPROC_ICONS_H */ chromono-1.1.1/src/renderer/levelpreview.cpp000066400000000000000000000066521410712601600211570ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "levelpreview.h" #include "resources.h" #include "opengl_renderer.h" #include "platform.h" LevelPreview::LevelPreview(OpenGLRenderer *renderer) : Renderable() , renderer(renderer) , program(SHADER_PROGRAM(renderer, levelpreview)) , vertex_buffer() , aspect((float)(renderer->m_width) / (float)(renderer->m_height)) , vtxcoord_loc(-1) , texcoord_loc(-1) { /* Aspect ratio must always be >= 1 (portrait->landscape rotation) */ if (aspect < 1.f) { aspect = 1.f / aspect; } vtxcoord_loc = program.attrib("vtxcoord"); texcoord_loc = program.attrib("texcoord"); } LevelPreview::~LevelPreview() { deactivate(); } Framebuffer * LevelPreview::generate(level_func level) { int side = 256; Framebuffer *fb = new Framebuffer(renderer, side, side); // Render level Scene scene; level(&scene); scene.simulate(60); // preroll fb->bind(); renderer->start_offscreen(); renderer->begin(); scene.render(renderer); renderer->finish(); renderer->end_offscreen(); fb->unbind(); return fb; } void LevelPreview::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glEnableVertexAttribArray(texcoord_loc); } void LevelPreview::render(Framebuffer *framebuffer, int x, int y, int w, int h) { activate(); framebuffer->texture()->bind(); Texture *texture = framebuffer->texture(); // part of the picture (< 1.0 means zoom) float part = 0.9; float height = part; float width = part / aspect * ((float)(w) / (float)(h)); float xx = (1.0 - width) / 2.0; float yy = (1.0 - height) / 2.0; float x1 = xx * texture->m_subwidth; float y1 = yy * texture->m_subheight; float x2 = (1.0 - xx) * texture->m_subwidth; float y2 = (1.0 - yy) * texture->m_subheight; float vertices[] = { // Vertex coordinates float(x), float(y), float(x+w), float(y), float(x), float(y+h), float(x+w), float(y+h), // Texture coordinates x1, y2, x2, y2, x1, y1, x2, y1, }; vertex_buffer.data(vertices, sizeof(vertices)); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); glVertexAttribPointer(texcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, (void*)(sizeof(float)*2*4)); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); framebuffer->texture()->unbind(); } void LevelPreview::unbind() { glDisableVertexAttribArray(texcoord_loc); glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); program.unbind(); } chromono-1.1.1/src/renderer/levelpreview.h000066400000000000000000000033601410712601600206150ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LEVELPREVIEW_H #define SHADYPOSTPROC_LEVELPREVIEW_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "framebuffer.h" #include "circle1d.h" class OpenGLRenderer; class LevelPreview : public Renderable { public: LevelPreview(OpenGLRenderer *renderer); virtual ~LevelPreview(); // Render the level preview of "level" to a newly-allocated framebuffer Framebuffer *generate(level_func level); virtual void bind(); void render(Framebuffer *framebuffer, int x, int y, int w, int h); virtual void unbind(); private: OpenGLRenderer *renderer; Program program; VertexBuffer vertex_buffer; float aspect; GLint vtxcoord_loc; GLint texcoord_loc; }; #endif /* SHADYPOSTPROC_LEVELPREVIEW_H */ chromono-1.1.1/src/renderer/line.cpp000066400000000000000000000073221410712601600173700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "line.h" #include "resources.h" #include Line::Line(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, line)) , vertex_buffer() , vertex_accumulator() , vtxcoord_loc(-1) , color_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); color_loc = program.attrib("color"); vertex_accumulator.add_attrib(vtxcoord_loc, 2); vertex_accumulator.add_attrib(color_loc, 4); } void Line::bind() { program.bind(); vertex_buffer.bind(); vertex_accumulator.enable_arrays(); } void Line::unbind() { vertex_accumulator.disable_arrays(); vertex_buffer.unbind(); program.unbind(); } void Line::render(Joint *j) { float x1 = j->a->pos.x; float y1 = j->a->pos.y; float x2 = j->b->pos.x; float y2 = j->b->pos.y; float ra = j->a->size; float rb = j->b->size; Vec2 a(x1, y1), b(x2, y2); Vec2 a_to_b = b - a; // Move points closer to each other (depending on the radius of the // adjacent object), but let them overlap with the object a little float overlap = 2.0; if (a_to_b.length() < (ra + rb - overlap)) { // Spheres are overlapping - don't draw line return; } a_to_b = a_to_b.normalize(); a += a_to_b * (ra - overlap); b -= a_to_b * (rb - overlap); RGB color(1.0, 1.0, 1.0); if (j->flags & Joint::UNTANGLE) { // Untangle objects re-use the knot color for indicator color color = j->knot_color; } else if (j->flags & Joint::IS_RAIL) { color = RGB(0.3, 0.3, 0.3); } float width = 3.8; float border = 1.0; Vec2 perp(a_to_b.y, -a_to_b.x); Vec2 v[8]; for (int i=0; i<8; i++) { if (i % 2 == 0) { // A side v[i] = a; } else { // B side v[i] = b; } float distance = width / 2.0; if (i < 2 || i > 5) { // Outside (including border) distance += border; } if (i < 4) { // Top v[i] += perp * distance; } else { // Bottom v[i] -= perp * distance; } } float vertices[] = { v[0].x, v[0].y, color.r, color.g, color.b, 0.0, v[1].x, v[1].y, color.r, color.g, color.b, 0.0, v[2].x, v[2].y, color.r, color.g, color.b, 1.0, v[3].x, v[3].y, color.r, color.g, color.b, 1.0, v[4].x, v[4].y, color.r, color.g, color.b, 1.0, v[5].x, v[5].y, color.r, color.g, color.b, 1.0, v[6].x, v[6].y, color.r, color.g, color.b, 0.0, v[7].x, v[7].y, color.r, color.g, color.b, 0.0, }; vertex_accumulator.append_triangle_strip(vertices, 8); } void Line::flush() { activate(); int count = vertex_accumulator.upload(&vertex_buffer); glDrawArrays(GL_TRIANGLES, 0, count); vertex_accumulator.clear(); } Line::~Line() { deactivate(); } chromono-1.1.1/src/renderer/line.h000066400000000000000000000030411410712601600170270ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LINE_H #define SHADYPOSTPROC_LINE_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "vertexaccumulator.h" class OpenGLRenderer; class Line : public Renderable { public: Line(OpenGLRenderer *renderer); virtual ~Line(); virtual void bind(); virtual void unbind(); void render(Joint *j); void flush(); private: Program program; VertexBuffer vertex_buffer; VertexAccumulator vertex_accumulator; GLint vtxcoord_loc; GLint color_loc; }; #endif /* SHADYPOSTPROC_LINE_H */ chromono-1.1.1/src/renderer/loading.cpp000066400000000000000000000045571410712601600200650ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "loading.h" #include "opengl_renderer.h" #include "constants.h" #include "resources.h" Loading::Loading(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, loading)) , vertex_buffer() , vtxcoord_loc(-1) , color_loc(-1) , counter(0) { vtxcoord_loc = program.attrib("vtxcoord"); color_loc = program.uniform("color"); } Loading::~Loading() { deactivate(); } void Loading::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void Loading::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); program.unbind(); } void Loading::render(float percentage) { activate(); float w, h; float intensity = 1.0 - percentage; if (percentage < 0.2) { intensity = percentage * 5.0; } glUniform4f(color_loc, intensity, intensity, intensity, 1.0); for (int i=0; i<6; i++) { w = 10.0; if ((counter % 6) == i) { w = 20.0; } h = w; float x = (Constants::WORLD_WIDTH - 30 * 7) / 2.0; x += i * 30; x -= w / 2.0; float y = Constants::WORLD_HEIGHT / 2.0; y -= h / 2.0; float vertices[] = { x, y, x+w, y, x, y+h, x+w, y+h, }; vertex_buffer.data(vertices, sizeof(vertices)); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } counter++; } chromono-1.1.1/src/renderer/loading.h000066400000000000000000000027571410712601600175320ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_LOADING_H #define SHADYPOSTPROC_LOADING_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" class OpenGLRenderer; class Loading : public Renderable { public: Loading(OpenGLRenderer *renderer); virtual ~Loading(); virtual void bind(); virtual void unbind(); void render(float percentage); private: Program program; VertexBuffer vertex_buffer; GLint vtxcoord_loc; GLint color_loc; int counter; }; #endif /* SHADYPOSTPROC_LOADING_H */ chromono-1.1.1/src/renderer/opengl_renderer.cpp000066400000000000000000000325301410712601600216120ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "opengl_renderer.h" #include "constants.h" #include "util.h" #include "game.h" #include // Should be in line with "enum FontSize" in circle1d/renderer.h static const float FONT_SIZE_FACTORS[] = { 0.5, 0.75, 0.9, 1.0, 0.3, }; class LateInitializeTask : public LoadingTask { public: LateInitializeTask(OpenGLRenderer *renderer, int phase) : LoadingTask() , renderer(renderer) , phase(phase) { } virtual void loading_task_run() { renderer->late_initialize(phase); } private: OpenGLRenderer *renderer; int phase; }; class LevelLoadingTask : public LoadingTask { public: LevelLoadingTask(LevelPreview **level_preview, LevelManager *level_manager, std::vector *previews, int level) : LoadingTask() , level_preview(level_preview) , level_manager(level_manager) , previews(previews) , level(level) { } virtual void loading_task_run() { level_func lv = level_manager->get(level)->constructor; Framebuffer *fb = (*level_preview)->generate(lv); previews->push_back(fb); } private: LevelPreview **level_preview; LevelManager *level_manager; std::vector *previews; int level; }; OpenGLRenderer::OpenGLRenderer(Game *game, int width, int height) : m_game(game) , m_rotation_enabled(true) , m_projection(width, height) , m_width(width) , m_height(height) , m_programs() , m_programs_time() , m_projection_mat(m_projection.matrix(true)) , m_nprojection_mat(m_projection.matrix(false)) , m_loading_tasks() , m_loading_tasks_total(0) , m_loading(this) , m_sphere(NULL) , m_line(NULL) , m_effect(NULL) , m_font(NULL) , m_page_indicator(NULL) , m_effect_overlay(NULL) , m_background(NULL) , m_icons(NULL) , m_decal(NULL) , m_shadow(NULL) , m_level_preview(NULL) , m_cached_screen(NULL) , m_previews() , m_rendered_texts() , m_cached() , m_cached_current_fb(NULL) , m_is_offscreen(false) , m_old_rotation_enabled(false) { game->set_offset(Vec2(m_projection.offset().x, m_projection.offset().y)); /* Enqueue late-initialization tasks */ for (int i=0; i<=11; i++) { m_loading_tasks.push_back(new LateInitializeTask(this, i)); } m_loading_tasks_total = m_loading_tasks.size(); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glViewport(0, 0, m_width, m_height); glClearColor(0., 0., 0., 0.); } OpenGLRenderer::~OpenGLRenderer() { Renderable::unbind_active(); Program::unbind_active(); std::vector::iterator it; for (it=m_previews.begin(); it != m_previews.end(); ++it) { delete (*it); } std::list::iterator it2; for (it2=m_rendered_texts.begin(); it2 != m_rendered_texts.end(); ++it2) { delete (*it2); } delete m_cached_screen; delete m_level_preview; delete m_shadow; delete m_decal; delete m_icons; delete m_background; delete m_effect_overlay; delete m_page_indicator; delete m_font; delete m_effect; delete m_line; delete m_sphere; } void OpenGLRenderer::late_initialize(int phase) { switch (phase) { case 0: m_sphere = new Sphere(this); break; case 1: m_line = new Line(this); break; case 2: m_effect = new Effect(this); break; case 3: m_font = new Font(this); break; case 4: m_page_indicator = new PageIndicator(this); break; case 5: m_effect_overlay = new EffectOverlay(this); break; case 6: m_background = new Background(this); break; case 7: m_icons = new Icons(this); break; case 8: m_decal = new Decal(this); break; case 9: m_shadow = new Shadow(this); break; case 10: m_level_preview = new LevelPreview(this); break; case 11: m_cached_screen = new CachedScreen(this); break; default: SHADY_ASSERT(0); break; } } bool OpenGLRenderer::ready() { if (Constants::RENDERED_LEVEL_PREVIEWS && !m_previews.size()) { LevelManager *level_manager = m_game->get_level_manager(); int levels = level_manager->count(); for (int i=0; i 0 && m_loading_tasks.size()) { LoadingTask *task = m_loading_tasks.front(); m_loading_tasks.pop_front(); task->loading_task_run(); delete task; tasks_left--; } // Display current loading progress on-screen glClear(GL_COLOR_BUFFER_BIT); m_loading.render(1.0 - (float)(m_loading_tasks.size()) / (float)(m_loading_tasks_total)); if (!m_loading_tasks.size()) { m_loading_tasks_total = 0; } return false; } return true; } void OpenGLRenderer::begin() { /* Update time uniform float in all shader programs */ float time_now = (float)(Util::ticks())/1000.f; std::list< std::pair >::iterator it; for (it=m_programs_time.begin(); it != m_programs_time.end(); ++it) { Program *program = (*it).first; GLint time_loc = (*it).second; program->bind(); glUniform1f(time_loc, time_now); } Program::unbind_active(); glClear(GL_COLOR_BUFFER_BIT); } void OpenGLRenderer::background(RGB color) { m_background->render(color); } void OpenGLRenderer::circle(Object *o) { m_sphere->render(o); } void OpenGLRenderer::flush_circles() { m_sphere->flush(); } void OpenGLRenderer::line(Joint *j) { m_line->render(j); } void OpenGLRenderer::flush_lines() { m_line->flush(); } void OpenGLRenderer::overlay() { m_effect_overlay->render(); } void OpenGLRenderer::transition(float value) { m_effect->render(value); } void OpenGLRenderer::finish() { // After finishing rendering, clean up by // unbinding all active renderables Renderable::unbind_active(); } void OpenGLRenderer::page_indicator(int x, int y, int page, int pages) { m_page_indicator->render(x, y, page, pages); } void OpenGLRenderer::icon(enum Icons::Icon icon, int x, int y, int w, int h, RGB color, float opacity, float rotation) { m_icons->render(icon, x, y, w, h, color, opacity, rotation); } RenderedText * OpenGLRenderer::get_rendered_text(const char *text) { std::list::iterator it; for (it=m_rendered_texts.begin(); it != m_rendered_texts.end(); ++it) { RenderedText *rendered_text = *it; if (strcmp(text, rendered_text->m_text.c_str()) == 0) { rendered_text->m_age = 0; return rendered_text; } } RenderedText *result = new RenderedText(m_font, text); m_rendered_texts.push_back(result); return result; } void OpenGLRenderer::text_measure(const char *text, float *width, float *height, enum FontSize size) { if (*text == '\0') { *width = *height = 0; return; } RenderedText *rendered_text = get_rendered_text(text); *width = (float)rendered_text->m_width * FONT_SIZE_FACTORS[size]; *height = (float)rendered_text->m_height * FONT_SIZE_FACTORS[size]; } void OpenGLRenderer::text_render(const char *text, float x, float y, enum FontSize size, float opacity, RGB color) { if (*text == '\0') { return; } RenderedText *rendered_text = get_rendered_text(text); m_font->render(rendered_text, x, y, FONT_SIZE_FACTORS[size], opacity, color); } void OpenGLRenderer::text_gc() { // Free cached rendered text that hasn't been used for a while std::list::iterator it; for (it=m_rendered_texts.begin(); it != m_rendered_texts.end(); ++it) { RenderedText *rendered_text = *it; rendered_text->m_age++; if (rendered_text->m_age == Constants::RENDERED_TEXT_CACHE_GC_FRAMES) { delete rendered_text; it = m_rendered_texts.erase(it); } } } void OpenGLRenderer::decal(int decal, int x, int y, float opacity) { m_decal->render((enum Circle1D::Decal)decal, x, y, 0.0, 1.0, opacity); } void OpenGLRenderer::decal(int decal, float x, float y, float rotation, float scale, float opacity) { m_decal->render((enum Circle1D::Decal)decal, x, y, rotation, scale, opacity); } void OpenGLRenderer::shadow(Vec2 light, Vec2 sphere, float size) { m_shadow->render(light, sphere, size); } void OpenGLRenderer::flush_shadows() { m_shadow->flush(); } void OpenGLRenderer::register_program(Program *program) { m_programs.push_back(program); program->bind(); /* Projection matrix */ GLint projection_loc = program->uniform("projection"); if (projection_loc != -1) { glUniformMatrix4fv(projection_loc, 1, GL_FALSE, m_rotation_enabled?m_projection_mat.m:m_nprojection_mat.m); } /* Some programs need time for animation */ GLint time_loc = program->uniform("time"); if (time_loc != -1) { m_programs_time.push_back(std::make_pair(program, time_loc)); } program->unbind(); } void OpenGLRenderer::set_rotation_enabled(bool enabled) { if (m_rotation_enabled != enabled) { std::list::iterator it; for (it=m_programs.begin(); it != m_programs.end(); ++it) { Program *program = *it; /* Projection matrix (for texture rendering, without rotation) */ GLint projection_loc = program->uniform("projection"); if (projection_loc != -1) { program->bind(); glUniformMatrix4fv(projection_loc, 1, GL_FALSE, enabled?m_projection_mat.m:m_nprojection_mat.m); program->unbind(); } } m_rotation_enabled = enabled; } } void OpenGLRenderer::unregister_program(Program *program) { m_programs.remove(program); std::list< std::pair >::iterator it; for (it=m_programs_time.begin(); it != m_programs_time.end(); ++it) { Program *it_program = (*it).first; if (program == it_program) { it = m_programs_time.erase(it); } } } void OpenGLRenderer::level_preview(int level, float x, float y, float w, float h) { if (Constants::RENDERED_LEVEL_PREVIEWS) { m_level_preview->render(m_previews[level], x, y, w, h); } } void OpenGLRenderer::prepare_cached(void *handle, size_t len, render_cached_func_t render_cached, void *user_data) { if (begin_cached(handle, len)) { render_cached(this, handle, user_data); end_cached(); } } bool OpenGLRenderer::begin_cached(void *handle, size_t len) { std::list< std::pair >::iterator it; for (it=m_cached.begin(); it != m_cached.end(); ++it) { ChangeWatch *watch = (*it).first; if (watch->is(handle, len)) { if (watch->needs_update()) { m_cached_current_fb = (*it).second; m_cached_current_fb->bind(); start_offscreen(false); begin(); return true; } else { return false; } } } m_cached_current_fb = new Framebuffer(this, m_width, m_height); m_cached.push_back(std::pair(new ChangeWatch(handle, len), m_cached_current_fb)); m_cached_current_fb->bind(); start_offscreen(false); begin(); return true; } void OpenGLRenderer::end_cached() { finish(); end_offscreen(); m_cached_current_fb->unbind(); m_cached_current_fb = NULL; } void OpenGLRenderer::draw_cached(void *handle, size_t len, Vec2 offset_world) { std::list< std::pair >::iterator it; for (it=m_cached.begin(); it != m_cached.end(); ++it) { ChangeWatch *watch = (*it).first; if (watch->is(handle, len)) { Framebuffer *fb = (*it).second; offset_world.x /= Constants::WORLD_WIDTH; offset_world.y /= Constants::WORLD_HEIGHT; m_cached_screen->render(fb->texture(), false, offset_world); return; } } SHADY_DEBUG_PRINTF("draw_cached called on unknown handle: %p\n", handle); } chromono-1.1.1/src/renderer/opengl_renderer.h000066400000000000000000000126621410712601600212630ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_OPENGL_RENDERER_H #define SHADYPOSTPROC_OPENGL_RENDERER_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "levelmanager.h" #include "shaderprogram.h" #include "framebuffer.h" #include "projection.h" #include "sphere.h" #include "line.h" #include "effect.h" #include "menu.h" #include "font.h" #include "pageindicator.h" #include "effectoverlay.h" #include "background.h" #include "levelpreview.h" #include "icons.h" #include "decal.h" #include "shadow.h" #include "loading.h" #include "loadingtask.h" #include "changewatch.h" #include "cachedscreen.h" #include #include class Game; class OpenGLRenderer; typedef void (*render_cached_func_t)(OpenGLRenderer *renderer, void *prepared, void *user_data); class OpenGLRenderer : public Circle1DRenderer { public: OpenGLRenderer(Game *game, int width, int height); ~OpenGLRenderer(); Vec2 screen2world(Vec2 screen) { return m_projection.screen2world(screen); } void late_initialize(int phase); // Don't call this from outside bool ready(); virtual void begin(); void background(RGB color); virtual void circle(Object *o); virtual void flush_circles(); virtual void line(Joint *j); virtual void flush_lines(); virtual void text_measure(const char *text, float *width, float *height, enum FontSize size); virtual void text_render(const char *text, float x, float y, enum FontSize size, float opacity=1.0, RGB color=RGB(1.0, 1.0, 1.0)); virtual void decal(int decal, int x, int y, float opacity=1.0); virtual void shadow(Vec2 light, Vec2 sphere, float size); virtual void flush_shadows(); virtual void finish(); void decal(int decal, float x, float y, float rotation, float scale, float opacity); void text_gc(); void level_preview(int level, float x, float y, float w, float h); void page_indicator(int x, int y, int page, int pages); void icon(enum Icons::Icon icon, int x, int y, int w, int h, RGB color=RGB(1.0, 1.0, 1.0), float opacity=1.0, float rotation=0.0); void overlay(); void begin_capture(enum Effect::TransitionFrame frame) { m_effect->begin_capture(frame); } void end_capture(enum Effect::TransitionFrame frame) { m_effect->end_capture(frame); } void transition(float value); bool rotation_enabled() { return m_rotation_enabled; } void set_rotation_enabled(bool enabled); void register_program(Program *program); void unregister_program(Program *program); void start_offscreen(bool reset_rotation=true) { if (!m_is_offscreen) { m_old_rotation_enabled = rotation_enabled(); } set_rotation_enabled(!reset_rotation); m_is_offscreen = true; } void end_offscreen() { set_rotation_enabled(m_old_rotation_enabled); m_is_offscreen = false; } // Screen caching void prepare_cached(void *handle, size_t len, render_cached_func_t render_cached, void *user_data); void draw_cached(void *handle, size_t len, Vec2 offset_world=Vec2(0.0, 0.0)); private: bool begin_cached(void *handle, size_t len); void end_cached(); RenderedText *get_rendered_text(const char *text); private: Game *m_game; bool m_rotation_enabled; Projection m_projection; public: int m_width; int m_height; private: std::list m_programs; std::list< std::pair > m_programs_time; Mat4 m_projection_mat; Mat4 m_nprojection_mat; std::list m_loading_tasks; int m_loading_tasks_total; Loading m_loading; Sphere *m_sphere; Line *m_line; Effect *m_effect; Font *m_font; PageIndicator *m_page_indicator; EffectOverlay *m_effect_overlay; Background *m_background; Icons *m_icons; Decal *m_decal; Shadow *m_shadow; LevelPreview *m_level_preview; CachedScreen *m_cached_screen; std::vector m_previews; std::list m_rendered_texts; std::list< std::pair > m_cached; Framebuffer *m_cached_current_fb; bool m_is_offscreen; bool m_old_rotation_enabled; }; #endif /* SHADYPOSTPROC_OPENGL_RENDERER_H */ chromono-1.1.1/src/renderer/pageindicator.cpp000066400000000000000000000045771410712601600212630ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "pageindicator.h" #include "opengl_renderer.h" #include "constants.h" #include "resources.h" PageIndicator::PageIndicator(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, pageindicator)) , vertex_buffer() , size(Constants::PAGE_INDICATOR_RADIUS*2.0) , spacing(size*0.3) , vtxcoord_loc(-1) , center_loc(-1) , size_loc(-1) , filled_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); center_loc = program.uniform("center"); size_loc = program.uniform("size"); filled_loc = program.uniform("filled"); program.bind(); glUniform1f(size_loc, size); program.unbind(); float vertices[] = { -0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5, }; vertex_buffer.data(vertices, sizeof(vertices), true); } PageIndicator::~PageIndicator() { deactivate(); } void PageIndicator::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void PageIndicator::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); program.unbind(); } void PageIndicator::render(int x, int y, int page, int pages) { activate(); x -= (pages * (size+spacing) - spacing) / 2; y -= size / 2.0; for (int i=0; i * * 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. **/ #ifndef SHADYPOSTPROC_PAGEINDICATOR_H #define SHADYPOSTPROC_PAGEINDICATOR_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" class OpenGLRenderer; class PageIndicator : public Renderable { public: PageIndicator(OpenGLRenderer *renderer); virtual ~PageIndicator(); virtual void bind(); void render(int x, int y, int page, int pages); virtual void unbind(); private: Program program; VertexBuffer vertex_buffer; int size; int spacing; GLint vtxcoord_loc; GLint center_loc; GLint size_loc; GLint filled_loc; }; #endif /* SHADYPOSTPROC_PAGEINDICATOR_H */ chromono-1.1.1/src/renderer/projection.cpp000066400000000000000000000047731410712601600206240ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "projection.h" #include Projection::Projection(int width, int height) : size(width, height) , world_size(Constants::WORLD_WIDTH, Constants::WORLD_HEIGHT) , world_offset(0.0, 0.0) , projection() { float screen_aspect = size.x / size.y; float world_aspect = world_size.x / world_size.y; if (world_aspect > screen_aspect) { // world broader than screen - top and bottom letterbox float screen_height_in_world_coordinates = size.y * world_size.x / size.x; world_offset.y += (screen_height_in_world_coordinates - world_size.y) / 2.0; } else if (world_aspect < screen_aspect) { // world taller than screen - left and right letterbox float screen_width_in_world_coordinates = size.x * world_size.y / size.y; world_offset.x += (screen_width_in_world_coordinates - world_size.x) / 2.0; } float left = 0.0 - world_offset.x; float right = world_size.x + world_offset.x; float top = 0.0 - world_offset.y; float bottom = world_size.y + world_offset.y; float near = -1.f; float far = +1.f; memset(projection.m, 0, sizeof(projection.m)); projection.m[0] = 2.f / (right - left); projection.m[3] = - (right + left) / (right - left); projection.m[5] = 2.f / (top - bottom); projection.m[7] = - (top + bottom) / (top - bottom); projection.m[10] = -2.f / (far - near); projection.m[11] = - (far + near) / (far - near); projection.m[15] = 1.f; } Mat4 Projection::matrix(bool with_rotation) { return projection; } Vec2 Projection::screen2world(Vec2 screen) { return ((screen / size) * (world_size + world_offset * 2.f)) - world_offset; } chromono-1.1.1/src/renderer/projection.h000066400000000000000000000026061410712601600202620ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_PROJECTION_H #define SHADYPOSTPROC_PROJECTION_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "platform.h" #include "constants.h" #include "vector.h" class Projection { public: Projection(int width, int height); Mat4 matrix(bool with_rotation); Vec2 screen2world(Vec2 screen); Vec2 offset() { return world_offset; } private: Vec2 size; Vec2 world_size; Vec2 world_offset; Mat4 projection; }; #endif /* SHADYPOSTPROC_PROJECTION_H */ chromono-1.1.1/src/renderer/renderable.cpp000066400000000000000000000023731410712601600205450ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "renderable.h" Renderable * Renderable::active = NULL; Renderable::~Renderable() { SHADY_ASSERT(!is_active()); } void Renderable::activate() { if (is_active()) { return; } if (active != NULL) { active->unbind(); } bind(); active = this; } void Renderable::deactivate() { if (!is_active()) { return; } unbind(); active = NULL; } chromono-1.1.1/src/renderer/renderable.h000066400000000000000000000030651410712601600202110ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_RENDERABLE_H #define SHADYPOSTPROC_RENDERABLE_H #include "shadypostproc.h" #include "chromono_opengl.h" class Renderable { public: Renderable() {} virtual ~Renderable(); // By default, a renderable has no preparation steps virtual void prepare() {} void activate(); void deactivate(); bool is_active() { return active == this; } static void unbind_active() { if (active != NULL) { active->deactivate(); } } protected: virtual void bind() = 0; virtual void unbind() = 0; private: static Renderable *active; }; #endif /* SHADYPOSTPROC_RENDERABLE_H */ chromono-1.1.1/src/renderer/shaderprogram.cpp000066400000000000000000000067501410712601600213030ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "shaderprogram.h" #include "opengl_renderer.h" #include "resources_util.h" #include Shader::Shader(enum Shader::Type type, Resource *resource) : m_id(glCreateShader((type==Shader::FRAGMENT)? (GL_FRAGMENT_SHADER):(GL_VERTEX_SHADER))) { ResourceAccess access(resource); std::string source((const char*)access.data(), access.size()); const char *source_str = source.c_str(); glShaderSource(m_id, 1, &source_str, NULL); glCompileShader(m_id); GLint success = GL_FALSE; glGetShaderiv(m_id, GL_COMPILE_STATUS, &success); if (success != GL_TRUE) { #if defined(USE_DEBUG_PRINTF) GLint size = 0; glGetShaderiv(m_id, GL_INFO_LOG_LENGTH, &size); char *tmp = new char[size]; glGetShaderInfoLog(m_id, size, NULL, tmp); printf("== %s ==\n%s\n", access.name(), tmp); delete [] tmp; int lineno = 1; char *current_line = (char *)source_str; while (true) { char *next = current_line; while (*next != '\0' && *next != '\n') { next++; } bool done = (*next == '\0'); *next = '\0'; if (strlen(current_line) > 0 || !done) { printf("%3d %s\n", lineno, current_line); } if (done) { break; } current_line = next + 1; lineno++; } printf("\n"); #endif /* defined(USE_DEBUG_PRINTF) */ exit(EXIT_FAILURE); } } Shader::~Shader() { glDeleteShader(m_id); } Program * Program::active = NULL; Program::Program(OpenGLRenderer *renderer, const char *name, Shader *fragment, Shader *vertex) : m_id(glCreateProgram()) , m_name(name) , m_renderer(renderer) , m_fragment(fragment) , m_vertex(vertex) { glAttachShader(m_id, m_fragment->m_id); glAttachShader(m_id, m_vertex->m_id); glLinkProgram(m_id); GLint success = GL_FALSE; glGetProgramiv(m_id, GL_LINK_STATUS, &success); SHADY_ASSERT(success == GL_TRUE); m_renderer->register_program(this); } Program::~Program() { unbind(); delete m_fragment; delete m_vertex; glDeleteProgram(m_id); m_renderer->unregister_program(this); } void Program::bind() { if (active == this) { return; } glUseProgram(m_id); active = this; } void Program::unbind() { if (active != this) { return; } glUseProgram(0); active = NULL; } GLint Program::uniform(const char *name) { return glGetUniformLocation(m_id, name); } GLint Program::attrib(const char *name) { return glGetAttribLocation(m_id, name); } chromono-1.1.1/src/renderer/shaderprogram.h000066400000000000000000000042721410712601600207450ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SHADERPROGRAM_H #define SHADYPOSTPROC_SHADERPROGRAM_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "resources_util.h" class OpenGLRenderer; class Shader { public: enum Type { VERTEX, FRAGMENT, }; Shader(enum Type type, Resource *resource); virtual ~Shader(); private: GLuint m_id; friend class Program; }; #define SHADER_PROGRAM(renderer, base) \ Program(renderer, #base, \ new Shader(Shader::VERTEX, RESOURCE(base ## _vsh)), \ new Shader(Shader::FRAGMENT, RESOURCE(base ## _fsh))) class Program { public: Program(OpenGLRenderer *renderer, const char *name, Shader *fragment, Shader *vertex); virtual ~Program(); void bind(); void unbind(); static void unbind_active() { if (active != NULL) { active->unbind(); active = NULL; } } GLint uniform(const char *name); GLint attrib(const char *name); const char * name() { return m_name; } private: static Program *active; GLuint m_id; const char *m_name; OpenGLRenderer *m_renderer; Shader *m_fragment; Shader *m_vertex; }; #endif /* SHADYPOSTPROC_SHADERPROGRAM_H */ chromono-1.1.1/src/renderer/shadow.cpp000066400000000000000000000053131410712601600177240ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "shadow.h" #include "opengl_renderer.h" #include "resources.h" Shadow::Shadow(OpenGLRenderer *renderer) : Renderable() , program(SHADER_PROGRAM(renderer, shadow)) , vertex_buffer() , vertex_accumulator() , vtxcoord_loc(-1) , opacity_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); opacity_loc = program.attrib("opacity"); vertex_accumulator.add_attrib(vtxcoord_loc, 2); vertex_accumulator.add_attrib(opacity_loc, 1); } void Shadow::bind() { program.bind(); vertex_buffer.bind(); vertex_accumulator.enable_arrays(); } void Shadow::unbind() { vertex_accumulator.disable_arrays(); vertex_buffer.unbind(); program.unbind(); } void Shadow::render(Vec2 light, Vec2 sphere, float size) { // Distance-based attenuation of shadow intensity float attenuation_start = 400.0; float attenuation_end = 800.0; float opacity = 1.0; float distance = (sphere - light).length(); if (distance > attenuation_end) { // If it's too far away, we do't need to render anything return; } else if (distance > attenuation_start) { opacity = 1.0 - (distance - attenuation_start) / (attenuation_end - attenuation_start); } Vec2 delta = (sphere - light).normalize() * size; delta = Vec2(delta.y, -delta.x); // rotate 90 degrees Vec2 a = sphere + delta; Vec2 b = sphere - delta; Vec2 c = light + (a - light) * Constants::SHADOW_LENGTH; Vec2 d = light + (b - light) * Constants::SHADOW_LENGTH; float vertices[] = { a.x, a.y, opacity, b.x, b.y, opacity, c.x, c.y, 0.0, d.x, d.y, 0.0, }; vertex_accumulator.append_triangle_strip(vertices, 4); } void Shadow::flush() { activate(); int count = vertex_accumulator.upload(&vertex_buffer); glDrawArrays(GL_TRIANGLES, 0, count); vertex_accumulator.clear(); } chromono-1.1.1/src/renderer/shadow.h000066400000000000000000000030601410712601600173660ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SHADOW_H #define SHADYPOSTPROC_SHADOW_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "renderable.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "vertexaccumulator.h" class OpenGLRenderer; class Shadow : public Renderable { public: Shadow(OpenGLRenderer *renderer); virtual void bind(); virtual void unbind(); void render(Vec2 light, Vec2 sphere, float size); void flush(); private: Program program; VertexBuffer vertex_buffer; VertexAccumulator vertex_accumulator; GLint vtxcoord_loc; GLint opacity_loc; }; #endif /* SHADYPOSTPROC_SHADOW_H */ chromono-1.1.1/src/renderer/sphere.cpp000066400000000000000000000125761410712601600177360ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "sphere.h" #include "opengl_renderer.h" #include "renderable.h" #include "shaderprogram.h" #include "resources.h" #include "vertexaccumulator.h" #include "spheretemplate.h" struct SphereRenderInfo { Vec2 pos; float size; RGB color; RGB desired; }; #define SPHERE_RENDER_QUEUE_MAX 64 class SphereRenderQueue { public: SphereRenderQueue(); SphereRenderInfo queue_default[SPHERE_RENDER_QUEUE_MAX]; int count_default; }; SphereRenderQueue::SphereRenderQueue() : count_default(0) { } class SphereDefault : public Renderable { public: SphereDefault(OpenGLRenderer *renderer, Texture *texture); ~SphereDefault(); virtual void bind(); virtual void unbind(); void render(SphereRenderInfo *spheres, int count); private: Program program; VertexBuffer vertex_buffer; VertexAccumulator vertex_accumulator; Texture *texture; GLint vtxcoord_loc; GLint texcoord_loc; GLint color_loc; GLint desired_loc; }; SphereDefault::SphereDefault(OpenGLRenderer *renderer, Texture *texture) : program(SHADER_PROGRAM(renderer, spheredefault)) , vertex_buffer() , vertex_accumulator() , texture(texture) , vtxcoord_loc(-1) , texcoord_loc(-1) , color_loc(-1) , desired_loc(-1) { vtxcoord_loc = program.attrib("vtxcoord"); texcoord_loc = program.attrib("texcoord"); color_loc = program.attrib("color"); desired_loc = program.attrib("desired"); vertex_accumulator.add_attrib(vtxcoord_loc, 2); vertex_accumulator.add_attrib(texcoord_loc, 2); vertex_accumulator.add_attrib(color_loc, 3); vertex_accumulator.add_attrib(desired_loc, 3); } SphereDefault::~SphereDefault() { deactivate(); } void SphereDefault::bind() { texture->bind(); program.bind(); vertex_buffer.bind(); vertex_accumulator.enable_arrays(); } void SphereDefault::unbind() { vertex_accumulator.disable_arrays(); vertex_buffer.unbind(); program.unbind(); texture->unbind(); } void SphereDefault::render(SphereRenderInfo *spheres, int count) { activate(); vertex_accumulator.clear(); for (int i=0; isize, &tscale, &toffset); Vec2 v[4]; Vec2 t[4]; for (int j=0; j<4; j++) { float x = (j % 2 == 0) ? -1 : +1; float y = (j < 2) ? -1 : +1; v[j] = info->pos + Vec2(x, y) * info->size; t[j] = Vec2(0.5, 0.5) + Vec2(x, y) * 0.5; // here, tex is relative to the entire texture t[j].x /= 2.0; // now, tex is relative to the left half of the texture // corresponds to biggest image - 128px radius, 256x256 pixels // This choses the right-sized texture (calculated in sphere.cpp) t[j] /= tscale; t[j] += Vec2(toffset, 0.f); } RGB c = info->color; RGB d = info->desired; float data[] = { v[0].x, v[0].y, t[0].x, t[0].y, c.r, c.g, c.b, d.r, d.g, d.b, v[1].x, v[1].y, t[1].x, t[1].y, c.r, c.g, c.b, d.r, d.g, d.b, v[2].x, v[2].y, t[2].x, t[2].y, c.r, c.g, c.b, d.r, d.g, d.b, v[3].x, v[3].y, t[3].x, t[3].y, c.r, c.g, c.b, d.r, d.g, d.b, }; vertex_accumulator.append_triangle_strip(data, 4); } int elements = vertex_accumulator.upload(&vertex_buffer); glDrawArrays(GL_TRIANGLES, 0, elements); } Sphere::Sphere(OpenGLRenderer *renderer) : template_framebuffer(renderer, 512, 256) , render_queue(new SphereRenderQueue) , sphere_default(new SphereDefault(renderer, template_framebuffer.texture())) { SphereTemplate *tmpl = new SphereTemplate(renderer); tmpl->render_to_texture(&template_framebuffer); delete tmpl; } void Sphere::render(Object *o) { if (render_queue->count_default == SPHERE_RENDER_QUEUE_MAX - 1) { flush(); } SphereRenderInfo *info = &(render_queue->queue_default[render_queue->count_default++]); info->pos = o->pos; info->size = o->size; if (o->flags & Object::COLORABLE) { info->color = o->color; info->desired = o->desired; } else { info->color = info->desired = o->color; } } void Sphere::flush() { sphere_default->render(render_queue->queue_default, render_queue->count_default); render_queue->count_default = 0; } Sphere::~Sphere() { delete sphere_default; delete render_queue; } chromono-1.1.1/src/renderer/sphere.h000066400000000000000000000026231410712601600173730ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SPHERE_H #define SHADYPOSTPROC_SPHERE_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "circle1d.h" #include "framebuffer.h" class OpenGLRenderer; class SphereRenderQueue; class SphereDefault; class Sphere { public: Sphere(OpenGLRenderer *renderer); virtual ~Sphere(); void render(Object *o); void flush(); private: Framebuffer template_framebuffer; SphereRenderQueue *render_queue; SphereDefault *sphere_default; }; #endif /* SHADYPOSTPROC_SPHERE_H */ chromono-1.1.1/src/renderer/spheretemplate.cpp000066400000000000000000000077631410712601600214740ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "spheretemplate.h" #include "opengl_renderer.h" #include "resources.h" SphereTemplate::SphereTemplate(OpenGLRenderer *renderer) : program(SHADER_PROGRAM(renderer, spheretemplate)) , vertex_buffer() , vtxcoord_loc(-1) , center_loc(-1) , size_loc(-1) { } SphereTemplate::~SphereTemplate() { deactivate(); } void SphereTemplate::render_to_texture(Framebuffer *framebuffer) { float vertices[] = { -1, -1, -1, +1, +1, -1, +1, +1, }; vertex_buffer.data(vertices, sizeof(vertices), true); vtxcoord_loc = program.attrib("vtxcoord"); center_loc = program.uniform("center"); size_loc = program.uniform("size"); program.bind(); glUniform2f(program.uniform("framebuffer_size"), framebuffer->m_width, framebuffer->m_height); // Rendering of the template goes into the framebuffer texture framebuffer->bind(); glClear(GL_COLOR_BUFFER_BIT); activate(); /** * Layout of our framebuffer texture: * * +----------+----------+ * | | 64 |32|16| * | radius | px | | * | =128px +----+ | * | | | * | | | * +----------+----------+ * * y = 0 always * 128px radius = 256x256 @ x=0 * 64px radius = 128x128 @ x=256 * 32px radius = 64x64 @ x=256 + 128 * 16px radius = 32x32 @ x=256 + 128 + 64 * * This will be rendered below. The choice which template is used * depends on the size of the rendered sphere. The choice is made * in sphere's vertex shader (aka sphere.vsh). **/ // Full-size sphere at left half of framebuffer render(128, 128, 128); // Half-size sphere at right half of framebuffer render(256 + 64, 64, 64); // Quad-size sphere at right half of right half of framebuffer render(256 + 128 + 32, 32, 32); // Octo(?)-size sphere at (right half of)*3 framebuffer render(256 + 128 + 64 + 16, 16, 16); deactivate(); framebuffer->unbind(); //framebuffer->texture()->save("sphere.rgb"); } void SphereTemplate::get_transform(float size, float *scale, float *offset) { *scale = 1.f; *offset = 0.f; if (size > 64.0) { // Use the biggest image - left half of texture } else if (size > 32.0) { // Use the half-size image - located on right half *scale = 2.0; *offset = 0.5; } else if (size > 16.0) { // Use the quad-size image - located even more to the right *scale = 4.0; *offset = 0.75; } else { // Use the octo(?)-size image - located even more to the right ;) *scale = 8.0; *offset = 0.875; } } void SphereTemplate::bind() { program.bind(); vertex_buffer.bind(); glEnableVertexAttribArray(vtxcoord_loc); glVertexAttribPointer(vtxcoord_loc, 2, GL_FLOAT, GL_FALSE, 0, 0); } void SphereTemplate::unbind() { glDisableVertexAttribArray(vtxcoord_loc); vertex_buffer.unbind(); program.unbind(); } void SphereTemplate::render(float x, float y, float size) { glUniform2f(center_loc, x, y); glUniform1f(size_loc, size); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } chromono-1.1.1/src/renderer/spheretemplate.h000066400000000000000000000032701410712601600211260ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SPHERETEMPLATE_H #define SHADYPOSTPROC_SPHERETEMPLATE_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "shaderprogram.h" #include "vertexbuffer.h" #include "framebuffer.h" #include "renderable.h" class OpenGLRenderer; class SphereTemplate : public Renderable { public: SphereTemplate(OpenGLRenderer *renderer); virtual ~SphereTemplate(); virtual void render_to_texture(Framebuffer *framebuffer); static void get_transform(float size, float *scale, float *offset); virtual void bind(); virtual void unbind(); private: void render(float x, float y, float size); Program program; VertexBuffer vertex_buffer; GLint vtxcoord_loc; GLint center_loc; GLint size_loc; }; #endif /* SHADYPOSTPROC_SPHERETEMPLATE_H */ chromono-1.1.1/src/renderer/stb_font_SourceSansProSemiBold.inl000066400000000000000000020715441410712601600245350ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ // Font generated by stb_font_inl_generator.c (8 bpp) // // Following instructions show how to use the only included font, whatever it is, in // a generic way so you can replace it with any other font by changing the include. // To use multiple fonts, replace STB_SOMEFONT_* below with STB_FONT_SourceSansProSemiBold_*, // and separately install each font. Note that the CREATE function call has a // totally different name; it's just 'stb_font_SourceSansProSemiBold'. // /* // Example usage: static stb_fontchar fontdata[STB_SOMEFONT_NUM_CHARS]; static void init(void) { // optionally replace both STB_SOMEFONT_BITMAP_HEIGHT with STB_SOMEFONT_BITMAP_HEIGHT_POW2 static unsigned char fontpixels[STB_SOMEFONT_BITMAP_HEIGHT][STB_SOMEFONT_BITMAP_WIDTH]; STB_SOMEFONT_CREATE(fontdata, fontpixels, STB_SOMEFONT_BITMAP_HEIGHT); ... create texture ... // for best results rendering 1:1 pixels texels, use nearest-neighbor sampling // if allowed to scale up, use bilerp } // This function positions characters on integer coordinates, and assumes 1:1 texels to pixels // Appropriate if nearest-neighbor sampling is used static void draw_string_integer(int x, int y, char *str) // draw with top-left point x,y { ... use texture ... ... turn on alpha blending and gamma-correct alpha blending ... glBegin(GL_QUADS); while (*str) { int char_codepoint = *str++; stb_fontchar *cd = &fontdata[char_codepoint - STB_SOMEFONT_FIRST_CHAR]; glTexCoord2f(cd->s0, cd->t0); glVertex2i(x + cd->x0, y + cd->y0); glTexCoord2f(cd->s1, cd->t0); glVertex2i(x + cd->x1, y + cd->y0); glTexCoord2f(cd->s1, cd->t1); glVertex2i(x + cd->x1, y + cd->y1); glTexCoord2f(cd->s0, cd->t1); glVertex2i(x + cd->x0, y + cd->y1); // if bilerping, in D3D9 you'll need a half-pixel offset here for 1:1 to behave correct x += cd->advance_int; } glEnd(); } // This function positions characters on float coordinates, and doesn't require 1:1 texels to pixels // Appropriate if bilinear filtering is used static void draw_string_float(float x, float y, char *str) // draw with top-left point x,y { ... use texture ... ... turn on alpha blending and gamma-correct alpha blending ... glBegin(GL_QUADS); while (*str) { int char_codepoint = *str++; stb_fontchar *cd = &fontdata[char_codepoint - STB_SOMEFONT_FIRST_CHAR]; glTexCoord2f(cd->s0f, cd->t0f); glVertex2f(x + cd->x0f, y + cd->y0f); glTexCoord2f(cd->s1f, cd->t0f); glVertex2f(x + cd->x1f, y + cd->y0f); glTexCoord2f(cd->s1f, cd->t1f); glVertex2f(x + cd->x1f, y + cd->y1f); glTexCoord2f(cd->s0f, cd->t1f); glVertex2f(x + cd->x0f, y + cd->y1f); // if bilerping, in D3D9 you'll need a half-pixel offset here for 1:1 to behave correct x += cd->advance; } glEnd(); } */ #ifndef STB_FONTCHAR__TYPEDEF #define STB_FONTCHAR__TYPEDEF typedef struct { // coordinates if using integer positioning float s0,t0,s1,t1; signed short x0,y0,x1,y1; int advance_int; // coordinates if using floating positioning float s0f,t0f,s1f,t1f; float x0f,y0f,x1f,y1f; float advance; } stb_fontchar; #endif #define STB_FONT_SourceSansProSemiBold_BITMAP_WIDTH 256 #define STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT 419 #define STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT_POW2 512 #define STB_FONT_SourceSansProSemiBold_FIRST_CHAR 32 #define STB_FONT_SourceSansProSemiBold_NUM_CHARS 95 #define STB_FONT_SourceSansProSemiBold_LINE_SPACING 28 static unsigned char stb__SourceSansProSemiBold_pixels[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x05,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x05,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x04,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05, 0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, 0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05, 0x05,0x05,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x05,0x05,0x05,0x05,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x06,0x0f,0x14,0x16,0x16,0x16,0x16,0x16,0x13,0x0d, 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x12,0x19, 0x1b,0x1b,0x1b,0x16,0x0e,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x13,0x1b,0x1b,0x19,0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x15,0x1a,0x1b,0x1a,0x11,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x13,0x1b,0x1e,0x1e,0x1e,0x1d,0x1b, 0x17,0x11,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x13,0x18,0x1b,0x1d,0x1e,0x1e,0x1e,0x1a, 0x10,0x04,0x00,0x00,0x00,0x00,0x08,0x14,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1a,0x11,0x05,0x00,0x00,0x00,0x00,0x05,0x10,0x18,0x1b, 0x1b,0x1b,0x1b,0x1a,0x14,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x13,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1a,0x11,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x12,0x1a,0x1b,0x1b,0x1b,0x1b,0x17,0x0e, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x16, 0x1d,0x1e,0x1e,0x1e,0x1e,0x1b,0x13,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c, 0x00,0x00,0x00,0x00,0x00,0x0d,0x1b,0x26,0x2d,0x30,0x30,0x30,0x30,0x30,0x2c, 0x23,0x18,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x11,0x1e,0x28, 0x30,0x34,0x35,0x32,0x2d,0x24,0x18,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x16,0x1f,0x29,0x31,0x35,0x32,0x29,0x1a,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1d,0x2a,0x33,0x35,0x31,0x28, 0x1e,0x15,0x0b,0x00,0x00,0x00,0x00,0x07,0x1a,0x28,0x31,0x35,0x35,0x35,0x35, 0x32,0x2e,0x28,0x1f,0x14,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x08,0x15,0x20,0x29,0x2f,0x33,0x35,0x35,0x35,0x35, 0x30,0x25,0x16,0x03,0x00,0x00,0x0b,0x1c,0x29,0x32,0x35,0x35,0x35,0x35,0x35, 0x35,0x35,0x35,0x35,0x35,0x30,0x25,0x18,0x07,0x00,0x00,0x07,0x16,0x24,0x2e, 0x32,0x32,0x32,0x32,0x31,0x2a,0x1e,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1a,0x26,0x31,0x35,0x35,0x35,0x35,0x35, 0x35,0x35,0x35,0x35,0x35,0x31,0x26,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1a,0x28,0x30,0x32,0x32,0x32,0x32,0x2d, 0x21,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f, 0x2c,0x33,0x35,0x35,0x35,0x35,0x31,0x28,0x1a,0x09,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x16,0x26,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x2d, 0x21,0x13,0x00,0x00,0x00,0x0c,0x1d,0x2d,0x3b,0x45,0x49,0x49,0x49,0x49,0x49, 0x43,0x38,0x2a,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x25,0x33, 0x3f,0x48,0x4c,0x4e,0x4b,0x43,0x39,0x2c,0x1c,0x0b,0x00,0x00,0x00,0x04,0x14, 0x22,0x2c,0x36,0x3f,0x49,0x4e,0x49,0x3c,0x2b,0x18,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x2d,0x3e,0x49,0x4e,0x47, 0x3e,0x35,0x2b,0x21,0x13,0x00,0x00,0x00,0x15,0x29,0x3a,0x48,0x4e,0x4e,0x4e, 0x4d,0x4b,0x46,0x3f,0x36,0x28,0x1a,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0a,0x1b,0x2a,0x37,0x40,0x47,0x4b,0x4d,0x4e,0x4e, 0x4e,0x47,0x37,0x25,0x10,0x00,0x06,0x19,0x2b,0x3c,0x49,0x4e,0x4e,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x38,0x27,0x15,0x00,0x01,0x14,0x27,0x38, 0x46,0x4c,0x4c,0x4c,0x4c,0x4a,0x40,0x31,0x1f,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x17,0x29,0x3a,0x48,0x4e,0x4e,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x38,0x29,0x15,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x17,0x2b,0x3d,0x49,0x4c,0x4c,0x4c,0x4b, 0x43,0x35,0x21,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1c, 0x2f,0x41,0x4c,0x4e,0x4e,0x4e,0x4e,0x49,0x3c,0x2b,0x16,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x14,0x27,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b, 0x43,0x35,0x23,0x0d,0x00,0x00,0x15,0x29,0x3b,0x4d,0x5c,0x63,0x63,0x63,0x63, 0x62,0x59,0x49,0x37,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x35, 0x45,0x54,0x5e,0x65,0x65,0x62,0x59,0x4c,0x3e,0x2c,0x1a,0x05,0x00,0x00,0x11, 0x24,0x35,0x42,0x4b,0x55,0x5f,0x65,0x5e,0x4c,0x38,0x24,0x10,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x27,0x3b,0x4f,0x5f,0x65, 0x5d,0x54,0x4a,0x41,0x33,0x22,0x0f,0x00,0x07,0x1d,0x35,0x4a,0x5c,0x65,0x65, 0x65,0x65,0x62,0x5d,0x55,0x4a,0x3a,0x2a,0x18,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x2c,0x3c,0x4c,0x56,0x5e,0x63,0x65,0x65, 0x65,0x65,0x59,0x46,0x31,0x18,0x00,0x0e,0x22,0x38,0x4c,0x5e,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x59,0x46,0x33,0x1d,0x00,0x09,0x1d,0x33, 0x48,0x5b,0x65,0x65,0x65,0x65,0x61,0x51,0x3e,0x29,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x20,0x35,0x49,0x5b,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x5b,0x48,0x33,0x1d,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x37,0x4d,0x5f,0x65,0x65,0x65, 0x65,0x57,0x43,0x2c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, 0x27,0x3c,0x51,0x63,0x68,0x68,0x68,0x68,0x5e,0x4b,0x35,0x20,0x09,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63, 0x62,0x57,0x42,0x2d,0x15,0x00,0x00,0x19,0x2d,0x41,0x56,0x6a,0x7c,0x7c,0x7c, 0x7c,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x30, 0x45,0x57,0x67,0x74,0x7c,0x7c,0x79,0x6e,0x5e,0x4e,0x3a,0x26,0x10,0x00,0x06, 0x1c,0x31,0x45,0x57,0x62,0x6b,0x74,0x81,0x6c,0x58,0x45,0x30,0x1c,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x32,0x47,0x5b,0x6e, 0x7c,0x73,0x6a,0x61,0x55,0x43,0x2f,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x81,0x81,0x7c,0x79,0x74,0x6b,0x5c,0x4c,0x39,0x25,0x10,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x28,0x3b,0x4e,0x5e,0x6c,0x75,0x79,0x7c, 0x81,0x81,0x79,0x63,0x4c,0x35,0x1b,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x63,0x4c,0x37,0x21,0x00,0x0c,0x23, 0x3a,0x4e,0x65,0x7b,0x7c,0x7c,0x7c,0x72,0x5c,0x46,0x31,0x1b,0x05,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x65,0x4e,0x37,0x21,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x3f,0x57,0x6e,0x7c,0x7c, 0x7c,0x79,0x62,0x49,0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x14,0x2b,0x42,0x58,0x6f,0x81,0x81,0x81,0x81,0x68,0x51,0x3a,0x23,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x20,0x37,0x51,0x67,0x7c,0x7c,0x7c,0x7c, 0x7c,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95, 0x98,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23, 0x39,0x50,0x64,0x79,0x8a,0x95,0x98,0x90,0x82,0x6e,0x5a,0x45,0x2e,0x18,0x00, 0x09,0x20,0x37,0x4e,0x64,0x77,0x84,0x8c,0x8d,0x79,0x64,0x50,0x3b,0x27,0x13, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x29,0x3f,0x53,0x67, 0x7b,0x90,0x8b,0x82,0x75,0x62,0x4b,0x34,0x1e,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x98,0x98,0x98,0x93,0x8c,0x81,0x6d,0x5a,0x46,0x30,0x19,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1d,0x32,0x48,0x5c,0x70,0x81,0x8d,0x93, 0x98,0x98,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x09, 0x20,0x36,0x4c,0x62,0x77,0x8f,0x98,0x90,0x77,0x62,0x4d,0x37,0x21,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c, 0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x93,0x79,0x65,0x4e,0x37,0x21,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2e,0x45,0x5d,0x74,0x8d, 0x98,0x8e,0x74,0x5d,0x46,0x2e,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x14,0x2b,0x42,0x58,0x6f,0x89,0x9a,0x98,0x81,0x68,0x51,0x3a,0x23,0x14, 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x98,0x98, 0x98,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81, 0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x11, 0x28,0x3f,0x56,0x6d,0x84,0x9a,0xab,0xaf,0xa4,0x90,0x77,0x62,0x4b,0x33,0x1b, 0x00,0x09,0x1f,0x36,0x4d,0x62,0x76,0x8c,0xa1,0x9a,0x86,0x70,0x5b,0x47,0x31, 0x1d,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x35,0x49,0x5d, 0x73,0x88,0x9c,0x9e,0x8a,0x74,0x60,0x4a,0x34,0x1d,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x8e,0x90,0x99,0xa8,0xa1,0x8f,0x79,0x64,0x4e,0x38,0x21,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x25,0x3b,0x51,0x68,0x7c,0x92,0xa2, 0xa4,0x98,0x90,0x8e,0x79,0x63,0x4c,0x35,0x1b,0x00,0x11,0x26,0x3c,0x53,0x6a, 0x81,0x8e,0x8e,0x8e,0x8e,0x8f,0x9e,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00, 0x04,0x1a,0x30,0x46,0x5c,0x72,0x89,0x9f,0x96,0x81,0x69,0x53,0x3d,0x28,0x11, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65, 0x7c,0x95,0xac,0x9b,0x8e,0x8e,0x8e,0x8e,0x8e,0x79,0x65,0x4e,0x37,0x21,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x34,0x4b,0x63,0x79, 0x93,0x9f,0x89,0x6f,0x58,0x40,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0e,0x1b,0x28,0x31,0x42,0x58,0x6f,0x89,0xa0,0x98,0x81,0x68,0x51,0x3d,0x34, 0x2a,0x1e,0x11,0x04,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xaf,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a, 0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00, 0x11,0x28,0x3f,0x56,0x6d,0x86,0x9d,0xb4,0xb9,0xa9,0x93,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x04,0x19,0x2e,0x42,0x57,0x6b,0x81,0x95,0xa5,0x91,0x7b,0x65,0x51, 0x3d,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2a,0x3f,0x53, 0x69,0x7c,0x93,0xa7,0x92,0x7c,0x69,0x54,0x40,0x2c,0x17,0x00,0x09,0x20,0x39, 0x50,0x65,0x74,0x74,0x77,0x86,0x98,0xad,0x9a,0x84,0x6c,0x55,0x3e,0x27,0x10, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2a,0x41,0x59,0x6f,0x88,0x9d, 0xaa,0x94,0x82,0x77,0x74,0x73,0x61,0x4b,0x34,0x1b,0x00,0x11,0x25,0x3c,0x52, 0x68,0x74,0x74,0x74,0x74,0x74,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21, 0x00,0x00,0x14,0x29,0x40,0x55,0x6b,0x84,0x98,0x9b,0x86,0x6f,0x5a,0x43,0x2e, 0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51, 0x65,0x7c,0x95,0xac,0x95,0x7c,0x74,0x74,0x74,0x74,0x73,0x63,0x4d,0x37,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x23,0x3a,0x51,0x6a, 0x82,0x99,0x98,0x82,0x69,0x51,0x3a,0x22,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, 0x11,0x21,0x30,0x3c,0x48,0x51,0x5a,0x6f,0x89,0xa0,0x98,0x81,0x68,0x5b,0x54, 0x4a,0x3f,0x32,0x25,0x18,0x08,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56, 0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00, 0x00,0x0e,0x25,0x3d,0x53,0x6a,0x81,0x92,0xa0,0xa2,0x9a,0x89,0x74,0x5e,0x48, 0x31,0x1a,0x00,0x00,0x0e,0x22,0x37,0x4b,0x60,0x74,0x8b,0xa0,0x9c,0x87,0x71, 0x5b,0x46,0x31,0x1c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x34,0x49, 0x5f,0x73,0x89,0x9e,0x9d,0x89,0x72,0x5d,0x49,0x35,0x20,0x0c,0x00,0x04,0x1a, 0x31,0x45,0x54,0x5b,0x5d,0x62,0x77,0x8f,0xa5,0xa0,0x89,0x71,0x59,0x42,0x2b, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8c, 0xa3,0xa2,0x8b,0x74,0x61,0x5d,0x5b,0x51,0x40,0x2d,0x15,0x00,0x0c,0x1f,0x33, 0x47,0x56,0x5b,0x5b,0x5b,0x5b,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37, 0x21,0x00,0x00,0x0d,0x23,0x39,0x4f,0x65,0x7b,0x92,0xa2,0x8c,0x75,0x60,0x4a, 0x34,0x1e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a, 0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x5b,0x5b,0x5b,0x5b,0x53,0x43,0x2f, 0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x29,0x41,0x58, 0x6f,0x89,0xa0,0x93,0x79,0x62,0x4b,0x34,0x1c,0x04,0x00,0x00,0x00,0x00,0x00, 0x10,0x21,0x31,0x41,0x51,0x5e,0x68,0x72,0x77,0x89,0xa0,0x98,0x81,0x79,0x73, 0x6b,0x60,0x54,0x47,0x3a,0x2a,0x1a,0x0a,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42, 0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x1f,0x35,0x4a,0x5e,0x70,0x7c,0x88,0x89,0x84,0x76,0x67,0x54, 0x40,0x2a,0x14,0x00,0x00,0x03,0x17,0x2c,0x41,0x56,0x6b,0x81,0x96,0xa6,0x91, 0x79,0x65,0x50,0x3a,0x25,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x28,0x3e, 0x52,0x68,0x7c,0x93,0xa9,0x93,0x7c,0x68,0x53,0x3e,0x29,0x15,0x00,0x00,0x00, 0x10,0x23,0x34,0x40,0x44,0x44,0x5b,0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x5b,0x44, 0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x47,0x5d,0x74, 0x8e,0xa6,0xa0,0x89,0x6f,0x58,0x44,0x44,0x3e,0x31,0x1f,0x0b,0x00,0x01,0x14, 0x26,0x36,0x40,0x44,0x44,0x44,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c, 0x37,0x21,0x00,0x00,0x07,0x1d,0x33,0x49,0x5f,0x74,0x8b,0xa2,0x93,0x7c,0x65, 0x50,0x3b,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23, 0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x44,0x44,0x44,0x3e,0x33, 0x22,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x2f,0x47, 0x5d,0x75,0x8f,0xa4,0x8c,0x74,0x5d,0x45,0x2d,0x16,0x00,0x00,0x00,0x00,0x00, 0x0c,0x1f,0x32,0x43,0x53,0x63,0x72,0x81,0x8a,0x90,0x98,0xa7,0xa2,0x97,0x93, 0x8b,0x82,0x75,0x69,0x5b,0x4c,0x3c,0x2c,0x19,0x05,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d, 0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x15,0x29,0x3c,0x4e,0x5c,0x68,0x6f,0x6f,0x6c,0x63,0x55, 0x45,0x33,0x1f,0x0b,0x00,0x00,0x00,0x0d,0x22,0x37,0x4c,0x62,0x76,0x8e,0xa3, 0x9a,0x84,0x6e,0x59,0x43,0x2d,0x18,0x02,0x00,0x00,0x00,0x00,0x05,0x1b,0x31, 0x47,0x5c,0x71,0x88,0x9d,0xa0,0x8b,0x74,0x5e,0x49,0x34,0x1f,0x0a,0x00,0x00, 0x00,0x01,0x12,0x1f,0x28,0x2b,0x42,0x58,0x6f,0x8b,0xa2,0xa5,0x8c,0x72,0x5b, 0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x47,0x5d, 0x77,0x90,0xa7,0xa0,0x86,0x6d,0x56,0x3f,0x2b,0x26,0x1c,0x0f,0x00,0x00,0x00, 0x04,0x14,0x20,0x28,0x2b,0x2b,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63, 0x4c,0x37,0x21,0x00,0x00,0x01,0x16,0x2d,0x43,0x58,0x6e,0x86,0x9b,0x99,0x84, 0x6d,0x56,0x41,0x2b,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x2b,0x2b,0x27, 0x1e,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1e,0x35, 0x4d,0x65,0x7c,0x95,0x9e,0x86,0x6d,0x56,0x3e,0x27,0x0f,0x00,0x00,0x00,0x00, 0x03,0x17,0x2d,0x40,0x53,0x65,0x75,0x88,0x94,0xa0,0xa8,0xae,0xad,0xac,0xaf, 0xaa,0xa2,0x98,0x8b,0x7c,0x6d,0x5e,0x4e,0x3a,0x24,0x0d,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19, 0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f,0x23,0x35,0x43,0x4b,0x51,0x56,0x56,0x55,0x4c, 0x49,0x3c,0x2b,0x18,0x04,0x00,0x00,0x00,0x03,0x18,0x2e,0x43,0x59,0x6e,0x86, 0x9b,0xa3,0x8e,0x76,0x61,0x4b,0x35,0x20,0x0a,0x00,0x00,0x00,0x00,0x0d,0x23, 0x39,0x4f,0x64,0x79,0x91,0xa6,0x98,0x82,0x6b,0x56,0x41,0x2b,0x15,0x00,0x00, 0x00,0x00,0x00,0x00,0x09,0x13,0x2b,0x42,0x58,0x72,0x8b,0xa2,0xa2,0x8b,0x72, 0x5b,0x44,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x47, 0x5d,0x74,0x8f,0xa7,0xa0,0x89,0x6d,0x56,0x3f,0x28,0x10,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x0a,0x11,0x14,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79, 0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x10,0x26,0x3c,0x52,0x68,0x7c,0x95,0xa0, 0x89,0x72,0x5d,0x47,0x31,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x14, 0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x24, 0x3b,0x53,0x6a,0x84,0x9b,0x98,0x81,0x67,0x50,0x38,0x21,0x09,0x00,0x00,0x00, 0x00,0x0c,0x22,0x37,0x4b,0x61,0x74,0x88,0x9a,0xa9,0xae,0xa2,0x99,0x95,0x93, 0x96,0x9b,0xa3,0xac,0x9f,0x90,0x81,0x6e,0x58,0x41,0x28,0x11,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00, 0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2e,0x43,0x57,0x64,0x65,0x65,0x65,0x65, 0x65,0x5e,0x4c,0x38,0x22,0x0c,0x00,0x00,0x00,0x00,0x10,0x25,0x3b,0x51,0x66, 0x7c,0x94,0xab,0x95,0x81,0x69,0x53,0x3d,0x27,0x11,0x00,0x00,0x00,0x00,0x14, 0x2b,0x41,0x57,0x6c,0x84,0x99,0xa7,0x90,0x79,0x63,0x4d,0x38,0x22,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x42,0x5b,0x72,0x8b,0xa2,0xa2,0x8b, 0x72,0x59,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d, 0x46,0x5d,0x74,0x8e,0xa5,0xa0,0x89,0x6f,0x56,0x3f,0x28,0x11,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93, 0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x0a,0x20,0x36,0x4c,0x62,0x77,0x8f, 0xa4,0x90,0x79,0x63,0x4d,0x38,0x22,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13, 0x2a,0x41,0x5a,0x71,0x8a,0xa1,0x92,0x79,0x62,0x49,0x32,0x1b,0x03,0x00,0x00, 0x00,0x00,0x14,0x2a,0x40,0x56,0x6b,0x81,0x96,0xa9,0xac,0x9b,0x8c,0x81,0x79, 0x79,0x7c,0x84,0x8d,0x9a,0x9d,0x8b,0x79,0x67,0x54,0x3f,0x29,0x10,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00, 0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x81,0x81,0x81, 0x81,0x81,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x08,0x1e,0x34,0x4a, 0x60,0x76,0x8e,0xa4,0x9d,0x88,0x70,0x5a,0x44,0x2e,0x17,0x01,0x00,0x00,0x04, 0x1b,0x31,0x48,0x5d,0x74,0x8b,0xa1,0xa0,0x8a,0x72,0x5d,0x46,0x30,0x1a,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2d,0x44,0x5b,0x72,0x8b,0xa3,0xa0, 0x89,0x6f,0x58,0x40,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16, 0x2d,0x44,0x5b,0x73,0x8b,0xa3,0xa0,0x89,0x6f,0x58,0x3f,0x28,0x11,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa, 0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x04,0x19,0x30,0x45,0x5b,0x72, 0x89,0x9e,0x96,0x81,0x6a,0x54,0x3e,0x28,0x12,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a, 0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x19,0x30,0x48,0x60,0x77,0x90,0xa3,0x8b,0x72,0x5b,0x43,0x2c,0x14,0x00,0x00, 0x00,0x00,0x02,0x19,0x30,0x46,0x5d,0x72,0x8b,0xa0,0xb5,0xa1,0x8b,0x77,0x6a, 0x62,0x60,0x63,0x6b,0x77,0x86,0x8d,0x79,0x69,0x57,0x45,0x34,0x1f,0x0a,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19, 0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c, 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0x98, 0x98,0x98,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x01,0x17,0x2d, 0x43,0x5a,0x70,0x88,0x9e,0xa4,0x8e,0x76,0x60,0x4a,0x34,0x1e,0x07,0x00,0x00, 0x0a,0x21,0x37,0x4d,0x64,0x79,0x91,0xa7,0x9b,0x84,0x6c,0x56,0x40,0x29,0x14, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8e,0xa5, 0x9d,0x86,0x6d,0x56,0x3f,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x14,0x2b,0x42,0x5b,0x72,0x8b,0xa2,0xa1,0x89,0x6f,0x58,0x42,0x2a,0x12,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98, 0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x13,0x29,0x3f,0x55, 0x6a,0x82,0x98,0x9c,0x87,0x70,0x5a,0x45,0x2e,0x19,0x03,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51, 0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x1f,0x36,0x4e,0x65,0x7c,0x96,0x9c,0x86,0x6c,0x55,0x3d,0x25,0x0e,0x00, 0x00,0x00,0x00,0x05,0x1c,0x33,0x4a,0x61,0x77,0x90,0xa7,0xaf,0x98,0x82,0x6a, 0x57,0x4b,0x48,0x4c,0x56,0x62,0x71,0x7b,0x69,0x58,0x47,0x35,0x24,0x12,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51, 0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93, 0xaa,0xb1,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x11, 0x27,0x3e,0x54,0x6a,0x84,0x99,0xaa,0x94,0x7c,0x66,0x50,0x39,0x22,0x0c,0x00, 0x00,0x0f,0x26,0x3d,0x53,0x6a,0x81,0x98,0xad,0x96,0x7c,0x67,0x50,0x3a,0x23, 0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8e, 0xa5,0x9d,0x86,0x6d,0x54,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x12,0x29,0x41,0x58,0x6f,0x89,0xa0,0xa2,0x8b,0x72,0x5b,0x42,0x2b,0x14, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81, 0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x0c,0x23,0x39, 0x4e,0x65,0x79,0x91,0xa3,0x8d,0x76,0x61,0x4b,0x35,0x1f,0x09,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65, 0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0e,0x25,0x3d,0x55,0x6d,0x84,0x9c,0x96,0x7c,0x65,0x4f,0x37,0x1f,0x08, 0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4c,0x63,0x79,0x93,0xaa,0xaf,0x95,0x7c, 0x65,0x4f,0x38,0x30,0x35,0x41,0x50,0x5d,0x62,0x59,0x48,0x37,0x25,0x14,0x03, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65, 0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77, 0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00, 0x0b,0x22,0x39,0x4f,0x65,0x7c,0x94,0xab,0x99,0x84,0x6a,0x54,0x3e,0x27,0x10, 0x00,0x00,0x13,0x2a,0x41,0x58,0x6d,0x86,0x9d,0xa7,0x90,0x79,0x62,0x4b,0x35, 0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x47,0x5d,0x74, 0x8e,0xa7,0x9a,0x84,0x6a,0x53,0x3b,0x23,0x0e,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x11,0x28,0x3f,0x56,0x6e,0x87,0xa0,0xa2,0x8b,0x72,0x5b,0x42,0x2b, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a, 0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x06,0x1c, 0x32,0x48,0x5e,0x74,0x8b,0xa1,0x93,0x7c,0x67,0x51,0x3b,0x25,0x10,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c, 0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x14,0x2c,0x43,0x5b,0x72,0x8b,0xa2,0x90,0x77,0x60,0x49,0x31,0x19, 0x02,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4c,0x63,0x79,0x93,0xa9,0xaf,0x98, 0x82,0x6b,0x58,0x49,0x3c,0x30,0x2e,0x3b,0x46,0x49,0x43,0x37,0x26,0x15,0x04, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63, 0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79, 0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60, 0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00, 0x00,0x06,0x1d,0x34,0x4b,0x62,0x77,0x90,0xa7,0x9d,0x87,0x6f,0x58,0x42,0x2b, 0x14,0x00,0x00,0x17,0x2e,0x45,0x5b,0x72,0x8b,0xa0,0xa5,0x8e,0x74,0x5d,0x47, 0x30,0x1a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x47,0x5d, 0x74,0x8e,0xa7,0x9a,0x84,0x6a,0x53,0x3a,0x2b,0x25,0x1b,0x0d,0x00,0x00,0x00, 0x00,0x0f,0x1c,0x26,0x2b,0x3d,0x56,0x6d,0x86,0x9d,0xa4,0x8b,0x72,0x5b,0x42, 0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53, 0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00, 0x16,0x2c,0x42,0x58,0x6d,0x86,0x9b,0x9a,0x84,0x6d,0x58,0x41,0x2c,0x16,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95, 0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x03,0x1a,0x32,0x49,0x61,0x79,0x91,0xa1,0x8a,0x72,0x5a,0x42,0x2b, 0x13,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x32,0x49,0x60,0x75,0x8d,0xa3,0xb6, 0xa1,0x8d,0x79,0x6b,0x5d,0x51,0x47,0x3c,0x31,0x2e,0x32,0x2d,0x23,0x15,0x04, 0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79, 0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90, 0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49, 0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00, 0x00,0x00,0x03,0x19,0x30,0x47,0x5d,0x74,0x8e,0xa4,0xa2,0x8b,0x72,0x5b,0x45, 0x2e,0x17,0x00,0x02,0x1a,0x31,0x48,0x5f,0x75,0x8e,0xa5,0xa0,0x8a,0x72,0x5b, 0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x45, 0x5d,0x74,0x8e,0xa5,0x9b,0x84,0x6d,0x56,0x45,0x41,0x3b,0x2d,0x1d,0x0a,0x00, 0x00,0x0c,0x1f,0x2f,0x3c,0x41,0x46,0x58,0x6f,0x87,0x9f,0xa2,0x8b,0x72,0x5b, 0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c, 0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00, 0x00,0x10,0x26,0x3c,0x51,0x67,0x7c,0x94,0xa0,0x8b,0x73,0x5d,0x48,0x32,0x1c, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac, 0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x09,0x20,0x38,0x50,0x67,0x81,0x98,0x9b,0x84,0x6b,0x53,0x3c, 0x24,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x43,0x59,0x6e,0x84,0x99, 0xab,0xae,0x9d,0x8d,0x81,0x72,0x67,0x5c,0x52,0x48,0x3d,0x32,0x26,0x18,0x0b, 0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5, 0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32, 0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x72,0x8b,0xa2,0xa5,0x8e,0x74,0x5d, 0x47,0x30,0x19,0x00,0x05,0x1c,0x33,0x4a,0x61,0x77,0x90,0xa7,0x9f,0x88,0x6f, 0x58,0x41,0x2a,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2d, 0x44,0x5b,0x72,0x8b,0xa1,0xa1,0x8b,0x75,0x65,0x5d,0x5b,0x50,0x3f,0x2a,0x15, 0x00,0x01,0x18,0x2d,0x41,0x51,0x5b,0x5d,0x67,0x77,0x8e,0xa3,0x9e,0x88,0x6f, 0x58,0x41,0x2a,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26, 0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00, 0x00,0x00,0x09,0x20,0x35,0x4b,0x61,0x77,0x8e,0xa3,0x90,0x79,0x64,0x4e,0x38, 0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95, 0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0f,0x26,0x3e,0x56,0x6d,0x86,0x9d,0x95,0x7c,0x65,0x4d, 0x36,0x1e,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x25,0x3a,0x4f,0x63,0x75, 0x89,0x9b,0xab,0xaf,0xa1,0x94,0x89,0x7c,0x72,0x68,0x5d,0x53,0x47,0x3a,0x2d, 0x1e,0x0d,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95, 0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00, 0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x42,0x58,0x6f,0x89,0xa0,0xa7,0x90,0x77, 0x60,0x49,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4c,0x63,0x79,0x93,0xaa,0x9d,0x86, 0x6d,0x56,0x3f,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11, 0x28,0x3f,0x56,0x6c,0x84,0x98,0xa7,0x98,0x88,0x79,0x74,0x71,0x60,0x49,0x31, 0x1b,0x00,0x06,0x1d,0x34,0x4c,0x62,0x72,0x74,0x7c,0x8a,0x9b,0xa5,0x95,0x81, 0x6a,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11, 0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00, 0x00,0x00,0x00,0x03,0x19,0x2f,0x45,0x5b,0x71,0x88,0x9d,0x97,0x81,0x6a,0x55, 0x3f,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c, 0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x15,0x2d,0x45,0x5c,0x73,0x8c,0xa3,0x8f,0x76,0x5f, 0x47,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1b,0x2f,0x43,0x55, 0x67,0x77,0x89,0x98,0xa5,0xb1,0xaa,0x9e,0x94,0x8a,0x81,0x74,0x69,0x5c,0x4e, 0x40,0x2f,0x1f,0x0e,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81, 0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f, 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x56,0x6d,0x86,0x9d,0xaa,0x93, 0x79,0x63,0x4b,0x33,0x1b,0x00,0x07,0x1f,0x37,0x4e,0x65,0x7c,0x95,0xac,0x9a, 0x84,0x6a,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x21,0x38,0x4c,0x62,0x74,0x86,0x91,0x9b,0x9c,0x93,0x8e,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8e,0x93,0x9e,0x9a,0x90,0x84, 0x72,0x60,0x4a,0x34,0x1f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00, 0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x3e,0x55,0x6a,0x81,0x97,0x9d,0x88,0x71, 0x5b,0x45,0x2f,0x19,0x03,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65, 0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x33,0x4b,0x62,0x79,0x93,0xa0,0x89,0x70, 0x59,0x41,0x29,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x21,0x34, 0x46,0x57,0x65,0x75,0x84,0x90,0x9b,0xa5,0xaf,0xab,0xa1,0x95,0x8b,0x7c,0x70, 0x62,0x52,0x41,0x2f,0x1d,0x0a,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a, 0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26, 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x56,0x6d,0x86,0x9d,0xaa, 0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x09,0x21,0x37,0x4e,0x65,0x7c,0x95,0xac, 0x9a,0x84,0x6a,0x53,0x3c,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x18,0x2e,0x42,0x55,0x65,0x72,0x7c,0x93,0xaa,0xa7,0x93,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x95,0xa8,0xa7,0x90,0x7b, 0x71,0x63,0x53,0x40,0x2c,0x16,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x22,0x38,0x4e,0x64,0x79,0x90,0xa3,0x8e, 0x77,0x62,0x4b,0x35,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51, 0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x22,0x39,0x51,0x68,0x81,0x99,0x9a,0x84, 0x6a,0x52,0x3a,0x23,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12, 0x25,0x35,0x45,0x53,0x61,0x6d,0x79,0x86,0x90,0x9a,0xa5,0xb0,0xab,0x9f,0x92, 0x84,0x74,0x62,0x51,0x3e,0x2b,0x16,0x02,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56, 0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c, 0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x26,0x3c,0x55,0x6d,0x86,0x9d, 0xaa,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x0a,0x21,0x37,0x4e,0x65,0x7c,0x95, 0xac,0x9a,0x84,0x69,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x22,0x38,0x4e,0x63,0x75,0x88,0x93,0x9f,0x9a,0x90,0x8b,0x79, 0x63,0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8b,0x91,0x9b,0x9b, 0x93,0x86,0x74,0x61,0x4b,0x35,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37, 0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1c,0x32,0x48,0x5d,0x73,0x8b,0xa0, 0x94,0x7c,0x67,0x51,0x3c,0x26,0x10,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a, 0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x40,0x58,0x6e,0x88,0xa0,0x93, 0x7b,0x63,0x4c,0x34,0x1d,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x13,0x23,0x32,0x40,0x4c,0x58,0x63,0x6d,0x77,0x84,0x90,0x9b,0xa8,0xb3, 0xa6,0x96,0x86,0x72,0x5f,0x4a,0x36,0x21,0x0c,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42, 0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53, 0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x56,0x6d,0x86, 0x9d,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x0a,0x21,0x37,0x4e,0x65,0x7c, 0x95,0xac,0x9a,0x84,0x6a,0x53,0x3c,0x25,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x12,0x29,0x40,0x56,0x6d,0x84,0x99,0xaa,0x98,0x86,0x77,0x71, 0x6e,0x5f,0x49,0x31,0x1a,0x00,0x06,0x1d,0x33,0x4b,0x61,0x6f,0x72,0x79,0x88, 0x9a,0xa8,0x96,0x81,0x6a,0x54,0x3d,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c, 0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2b,0x41,0x57,0x6d,0x84, 0x9a,0x9b,0x86,0x6d,0x58,0x42,0x2c,0x16,0x00,0x00,0x00,0x00,0x00,0x0c,0x23, 0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2e,0x46,0x5d,0x74,0x8e,0xa5, 0x8e,0x74,0x5d,0x46,0x2e,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x10,0x1e,0x2b,0x37,0x42,0x4e,0x58,0x62,0x6d,0x79,0x87,0x96, 0xa4,0xb5,0xa7,0x94,0x81,0x6a,0x55,0x40,0x2a,0x14,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19,0x2d, 0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d, 0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x56,0x6d, 0x86,0x9d,0xaa,0x93,0x79,0x63,0x4c,0x34,0x1b,0x00,0x07,0x20,0x37,0x4e,0x65, 0x7c,0x95,0xac,0x9a,0x84,0x6a,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x72,0x8b,0xa1,0xa0,0x8b,0x74,0x63, 0x5a,0x57,0x4d,0x3d,0x28,0x13,0x00,0x00,0x16,0x2a,0x3f,0x4f,0x58,0x5b,0x65, 0x77,0x8d,0xa3,0x9f,0x89,0x6f,0x58,0x41,0x2a,0x13,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63, 0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x3b,0x51,0x67, 0x7c,0x93,0xa1,0x8b,0x74,0x5e,0x49,0x33,0x1c,0x07,0x00,0x00,0x00,0x00,0x0c, 0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1d,0x35,0x4c,0x64,0x7b,0x93, 0x9f,0x88,0x6e,0x57,0x40,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x17,0x21,0x25,0x22,0x21,0x2d,0x37,0x41,0x4c,0x58,0x64,0x72, 0x84,0x94,0xa7,0xb5,0xa0,0x8a,0x73,0x5d,0x46,0x30,0x19,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x19, 0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86, 0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x42,0x58, 0x6f,0x89,0xa0,0xa7,0x90,0x77,0x60,0x49,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4d, 0x63,0x79,0x93,0xaa,0x9d,0x86,0x6d,0x56,0x3f,0x28,0x11,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x46,0x5d,0x74,0x8e,0xa5,0x9b,0x84,0x6c, 0x55,0x42,0x3f,0x38,0x2c,0x1b,0x09,0x00,0x00,0x0b,0x1d,0x2d,0x3a,0x3f,0x44, 0x58,0x6f,0x87,0x9f,0xa2,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79, 0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x35,0x4b, 0x61,0x76,0x8d,0xa3,0x91,0x79,0x65,0x4f,0x39,0x23,0x0d,0x00,0x00,0x00,0x00, 0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23,0x0c, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x23,0x3b,0x52,0x6a,0x84, 0x9a,0x98,0x81,0x68,0x51,0x39,0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x1a,0x2a,0x36,0x3c,0x3b,0x33,0x26,0x21,0x2c,0x37,0x43,0x50, 0x60,0x72,0x87,0x9c,0xb3,0xa7,0x90,0x77,0x62,0x4b,0x34,0x1c,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00, 0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d, 0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44, 0x5b,0x72,0x8b,0xa2,0xa5,0x8e,0x74,0x5d,0x47,0x30,0x19,0x00,0x05,0x1c,0x33, 0x4b,0x61,0x77,0x90,0xa7,0xa0,0x89,0x6f,0x58,0x41,0x2a,0x13,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x47,0x5d,0x74,0x8e,0xa7,0x9a,0x84, 0x6a,0x53,0x3a,0x28,0x21,0x17,0x09,0x00,0x00,0x00,0x00,0x0b,0x19,0x22,0x28, 0x3f,0x56,0x6d,0x86,0x9d,0xa4,0x8b,0x72,0x5b,0x44,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93, 0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x2e, 0x45,0x5a,0x70,0x87,0x9c,0x98,0x82,0x6b,0x55,0x3f,0x29,0x13,0x00,0x00,0x00, 0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a,0x23, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x29,0x41,0x58,0x70, 0x89,0xa0,0x92,0x79,0x62,0x4b,0x33,0x1b,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x15,0x29,0x3c,0x4c,0x55,0x53,0x48,0x3b,0x2e,0x22,0x21,0x2f, 0x3e,0x51,0x68,0x81,0x98,0xaf,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00, 0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa,0xb4, 0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x03,0x1a,0x30, 0x47,0x5d,0x74,0x8e,0xa4,0xa2,0x8b,0x72,0x5b,0x45,0x2e,0x16,0x00,0x03,0x1a, 0x31,0x48,0x5f,0x75,0x8e,0xa5,0xa1,0x8b,0x72,0x5b,0x44,0x2d,0x16,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x47,0x5d,0x74,0x8e,0xa7,0x9a, 0x84,0x6a,0x53,0x3b,0x23,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x11, 0x28,0x3f,0x56,0x6f,0x89,0xa0,0xa2,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98,0xaa, 0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12, 0x28,0x3e,0x54,0x6a,0x81,0x96,0x9e,0x89,0x72,0x5b,0x46,0x30,0x19,0x04,0x00, 0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51,0x3a, 0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x30,0x48,0x5e, 0x76,0x8f,0xa3,0x8b,0x74,0x5c,0x45,0x2d,0x15,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x11,0x24,0x37,0x4a,0x5d,0x6d,0x6a,0x5c,0x4f,0x43,0x39,0x34, 0x32,0x39,0x50,0x68,0x81,0x98,0xaf,0xa9,0x93,0x79,0x63,0x4c,0x35,0x1d,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19, 0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c, 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93,0xaa, 0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x07,0x1d, 0x34,0x4b,0x62,0x77,0x90,0xa7,0x9d,0x87,0x6f,0x58,0x41,0x2b,0x14,0x00,0x00, 0x17,0x2e,0x45,0x5b,0x72,0x8a,0xa0,0xa5,0x8e,0x74,0x5d,0x48,0x31,0x1a,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8e,0xa5, 0x9d,0x86,0x6d,0x55,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x12,0x2a,0x41,0x58,0x6f,0x89,0xa0,0xa2,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81,0x98, 0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x21,0x38,0x4d,0x63,0x79,0x90,0xa4,0x8f,0x77,0x62,0x4c,0x36,0x20,0x0a, 0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65,0x51, 0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x36,0x4e, 0x65,0x7c,0x95,0x9d,0x86,0x6d,0x56,0x3e,0x26,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0a,0x1e,0x31,0x45,0x58,0x6b,0x7c,0x7c,0x70,0x64,0x59,0x51, 0x4c,0x4b,0x4e,0x5a,0x6d,0x84,0x9b,0xb1,0xa4,0x8e,0x76,0x60,0x49,0x32,0x1b, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xaf,0xac,0x93,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51, 0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x93, 0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x0c, 0x23,0x39,0x50,0x65,0x7c,0x95,0xac,0x98,0x84,0x6a,0x54,0x3d,0x27,0x10,0x00, 0x00,0x13,0x2a,0x41,0x57,0x6d,0x86,0x9c,0xa8,0x91,0x79,0x62,0x4c,0x36,0x1f, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8e, 0xa5,0x9d,0x86,0x6d,0x56,0x3f,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x14,0x2b,0x42,0x5b,0x72,0x8b,0xa2,0xa1,0x89,0x6f,0x58,0x42,0x2b,0x13, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a,0x81, 0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1b,0x31,0x47,0x5d,0x72,0x89,0xa0,0x95,0x81,0x68,0x52,0x3d,0x26, 0x10,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c,0x65, 0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x24,0x3c, 0x54,0x6b,0x84,0x9b,0x98,0x81,0x67,0x50,0x38,0x20,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x2a,0x3f,0x52,0x65,0x77,0x8d,0x92,0x87,0x79,0x70, 0x68,0x64,0x63,0x65,0x6d,0x7b,0x8f,0xa3,0xb2,0x9c,0x88,0x71,0x5b,0x44,0x2e, 0x17,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x95,0x95,0x95,0x93,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65, 0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77, 0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00,0x00, 0x11,0x28,0x3e,0x55,0x6b,0x84,0x9a,0xaa,0x93,0x7c,0x65,0x50,0x39,0x22,0x0b, 0x00,0x00,0x0f,0x25,0x3c,0x53,0x6a,0x81,0x97,0xad,0x96,0x81,0x67,0x51,0x3a, 0x24,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2d,0x44,0x5b,0x72, 0x8b,0xa3,0xa0,0x89,0x6f,0x58,0x40,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x16,0x2d,0x44,0x5b,0x73,0x8b,0xa4,0xa0,0x89,0x6f,0x58,0x3f,0x28, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53,0x6a, 0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x15,0x2b,0x41,0x56,0x6d,0x84,0x99,0x9b,0x86,0x6e,0x59,0x43, 0x2d,0x17,0x01,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95,0x7c, 0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2b, 0x42,0x5a,0x72,0x8b,0xa2,0x91,0x77,0x61,0x49,0x31,0x1a,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x1d,0x35,0x4b,0x5f,0x73,0x88,0x9a,0xa7,0x9c,0x91, 0x88,0x81,0x7c,0x7c,0x81,0x86,0x90,0x9f,0xb1,0xa5,0x92,0x7c,0x68,0x52,0x3d, 0x27,0x11,0x00,0x07,0x20,0x37,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x62, 0x49,0x32,0x19,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79, 0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60, 0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00,0x00, 0x01,0x18,0x2e,0x44,0x5a,0x71,0x89,0x9f,0xa3,0x8d,0x75,0x60,0x49,0x33,0x1d, 0x06,0x00,0x00,0x0a,0x20,0x36,0x4d,0x63,0x79,0x90,0xa7,0x9b,0x84,0x6d,0x56, 0x41,0x2a,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x42,0x5b, 0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x59,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x16,0x2d,0x46,0x5d,0x74,0x8e,0xa5,0xa0,0x89,0x6f,0x56,0x3f, 0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c,0x53, 0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0f,0x24,0x3b,0x50,0x65,0x7c,0x93,0xa2,0x8b,0x74,0x5f, 0x49,0x33,0x1d,0x07,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac,0x95, 0x7c,0x65,0x51,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19, 0x31,0x49,0x60,0x77,0x90,0xa2,0x8b,0x72,0x5b,0x43,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x64,0x77,0x89,0x96,0xa2,0xad, 0xa8,0xa0,0x9a,0x98,0x96,0x98,0x9d,0xa5,0xb1,0xa4,0x94,0x84,0x70,0x5c,0x48, 0x33,0x1e,0x09,0x00,0x04,0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62, 0x57,0x42,0x2d,0x15,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90, 0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49, 0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00,0x00, 0x00,0x08,0x1e,0x35,0x4b,0x61,0x77,0x8e,0xa5,0x9c,0x87,0x6f,0x5a,0x43,0x2d, 0x16,0x00,0x00,0x00,0x04,0x1a,0x31,0x47,0x5d,0x73,0x8a,0xa0,0xa1,0x8b,0x73, 0x5d,0x47,0x31,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x02,0x0d,0x14,0x2b,0x42, 0x58,0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x5b,0x44,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x30,0x47,0x5d,0x74,0x8f,0xa7,0xa0,0x87,0x6d,0x56, 0x3f,0x27,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x03,0x0e,0x14,0x16,0x26,0x3c, 0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x34,0x4a,0x60,0x75,0x8c,0xa2,0x92,0x7b, 0x65,0x4f,0x39,0x23,0x0e,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95,0xac, 0x95,0x7c,0x65,0x51,0x3a,0x23,0x16,0x13,0x0c,0x00,0x00,0x00,0x00,0x00,0x08, 0x20,0x37,0x4f,0x66,0x7c,0x97,0x9c,0x84,0x6c,0x55,0x3d,0x25,0x0e,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x19,0x2f,0x43,0x55,0x65,0x74,0x82,0x8d, 0x96,0x9e,0xa5,0xa9,0xae,0xaf,0xb1,0xa8,0xa3,0x9a,0x90,0x82,0x72,0x60,0x4f, 0x3b,0x28,0x14,0x00,0x00,0x00,0x12,0x26,0x38,0x44,0x49,0x49,0x49,0x49,0x49, 0x49,0x42,0x33,0x21,0x0c,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5, 0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x00,0x08,0x14,0x1b,0x1e,0x32, 0x49,0x60,0x77,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0f,0x00,0x00, 0x00,0x00,0x10,0x26,0x3c,0x51,0x67,0x7c,0x95,0xab,0x94,0x7c,0x68,0x52,0x3d, 0x27,0x10,0x00,0x00,0x00,0x00,0x14,0x2a,0x40,0x55,0x6b,0x82,0x98,0xa8,0x92, 0x79,0x64,0x4e,0x39,0x23,0x0e,0x00,0x00,0x00,0x00,0x02,0x14,0x21,0x2a,0x2d, 0x42,0x58,0x6f,0x8b,0xa2,0xa5,0x8b,0x72,0x5b,0x44,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x47,0x5d,0x75,0x90,0xa7,0xa0,0x86,0x6d, 0x56,0x3f,0x2d,0x29,0x1f,0x11,0x00,0x00,0x00,0x06,0x16,0x22,0x2b,0x2d,0x2d, 0x3c,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x18,0x2e,0x44,0x5a,0x6f,0x86,0x9b,0x98, 0x84,0x6c,0x56,0x40,0x2a,0x14,0x00,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c,0x95, 0xac,0x95,0x7c,0x65,0x51,0x3a,0x2d,0x2d,0x29,0x20,0x12,0x02,0x00,0x00,0x00, 0x0e,0x26,0x3d,0x55,0x6d,0x86,0x9d,0x96,0x7c,0x65,0x4e,0x36,0x1f,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x24,0x35,0x44,0x52,0x5f,0x6b, 0x75,0x81,0x87,0x8e,0x91,0x98,0xa7,0x9f,0x91,0x8b,0x84,0x79,0x6d,0x60,0x50, 0x40,0x2d,0x1a,0x07,0x00,0x00,0x00,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30, 0x30,0x30,0x2b,0x1f,0x11,0x00,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95, 0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x00,0x09,0x1a,0x2a,0x34,0x37, 0x35,0x4b,0x63,0x79,0x93,0xaa,0xb4,0x9b,0x84,0x6a,0x53,0x3c,0x26,0x0f,0x00, 0x00,0x00,0x04,0x19,0x2f,0x44,0x5a,0x70,0x87,0x9c,0xa2,0x8d,0x75,0x60,0x4a, 0x35,0x1f,0x09,0x00,0x00,0x00,0x00,0x0c,0x22,0x38,0x4d,0x63,0x79,0x90,0xa5, 0x99,0x84,0x6c,0x57,0x41,0x2c,0x16,0x02,0x00,0x00,0x00,0x11,0x26,0x36,0x42, 0x47,0x47,0x5b,0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x5b,0x44,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x47,0x5d,0x74,0x8e,0xa5,0xa0,0x89, 0x6f,0x58,0x47,0x46,0x40,0x33,0x22,0x0d,0x00,0x04,0x15,0x28,0x38,0x43,0x47, 0x47,0x47,0x53,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3d,0x53,0x69,0x81,0x96, 0x9f,0x89,0x72,0x5c,0x46,0x30,0x1a,0x04,0x00,0x0c,0x23,0x3a,0x51,0x65,0x7c, 0x95,0xac,0x95,0x7c,0x65,0x51,0x47,0x47,0x46,0x41,0x35,0x24,0x11,0x00,0x00, 0x00,0x14,0x2d,0x43,0x5b,0x73,0x8b,0xa3,0x90,0x77,0x5f,0x48,0x30,0x19,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x22,0x31,0x3e,0x4a, 0x56,0x5f,0x66,0x6e,0x73,0x77,0x89,0xa0,0x98,0x81,0x72,0x6c,0x62,0x58,0x4c, 0x3e,0x2e,0x1e,0x0d,0x00,0x00,0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19, 0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a,0x81, 0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x01,0x16,0x2b,0x3c,0x4b, 0x51,0x4d,0x4e,0x65,0x7c,0x93,0xaa,0xb0,0x9a,0x84,0x6a,0x53,0x3c,0x24,0x0c, 0x00,0x00,0x00,0x0e,0x23,0x38,0x4d,0x62,0x77,0x8f,0xa4,0x99,0x84,0x6d,0x58, 0x42,0x2d,0x17,0x01,0x00,0x00,0x00,0x00,0x04,0x1a,0x30,0x45,0x5b,0x70,0x87, 0x9c,0xa1,0x8b,0x74,0x5f,0x4a,0x36,0x20,0x0b,0x00,0x00,0x05,0x1b,0x32,0x46, 0x57,0x60,0x60,0x64,0x77,0x90,0xa6,0xa0,0x89,0x70,0x58,0x41,0x2b,0x13,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5c,0x74,0x8b,0xa3,0xa3, 0x8c,0x74,0x63,0x60,0x60,0x53,0x42,0x2e,0x17,0x00,0x0c,0x20,0x35,0x48,0x58, 0x60,0x60,0x60,0x60,0x6a,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x21,0x37,0x4d,0x62,0x77, 0x8f,0xa5,0x90,0x77,0x62,0x4d,0x36,0x21,0x0b,0x00,0x0c,0x23,0x3a,0x51,0x65, 0x7c,0x95,0xac,0x95,0x7c,0x65,0x60,0x60,0x60,0x60,0x55,0x44,0x30,0x1c,0x00, 0x00,0x03,0x1b,0x33,0x49,0x62,0x79,0x91,0xa0,0x89,0x71,0x59,0x42,0x2a,0x12, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1c,0x29, 0x35,0x3f,0x48,0x4f,0x56,0x5b,0x6f,0x89,0xa0,0x98,0x81,0x68,0x54,0x4c,0x42, 0x37,0x2a,0x1c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x2d,0x42,0x56,0x6a, 0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x08,0x1f,0x36,0x4b, 0x5e,0x68,0x64,0x62,0x6d,0x84,0x99,0xaf,0xac,0x95,0x7c,0x66,0x50,0x39,0x22, 0x0a,0x00,0x00,0x04,0x18,0x2d,0x42,0x57,0x6c,0x82,0x98,0xa5,0x90,0x79,0x64, 0x4f,0x39,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x27,0x3d,0x51,0x67, 0x7c,0x93,0xa7,0x94,0x81,0x69,0x54,0x3f,0x2a,0x16,0x02,0x00,0x09,0x20,0x39, 0x50,0x66,0x77,0x77,0x79,0x88,0x99,0xad,0x99,0x84,0x6c,0x55,0x3e,0x27,0x10, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2a,0x41,0x58,0x6f,0x87,0x9c, 0xab,0x95,0x84,0x79,0x77,0x75,0x62,0x4b,0x34,0x1b,0x00,0x11,0x25,0x3c,0x53, 0x69,0x77,0x77,0x77,0x77,0x77,0x81,0x98,0xaa,0x93,0x79,0x63,0x4c,0x37,0x21, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x31,0x46,0x5c, 0x72,0x89,0x9f,0x96,0x81,0x69,0x53,0x3d,0x27,0x11,0x00,0x0c,0x23,0x3a,0x51, 0x65,0x7c,0x95,0xac,0x95,0x7c,0x77,0x77,0x77,0x77,0x75,0x64,0x4e,0x37,0x20, 0x00,0x00,0x09,0x21,0x39,0x50,0x67,0x81,0x98,0x9b,0x84,0x6a,0x53,0x3c,0x24, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x14,0x1e,0x28,0x31,0x38,0x42,0x58,0x6f,0x89,0xa0,0x98,0x81,0x68,0x51,0x3a, 0x2c,0x22,0x15,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x2d,0x42,0x56, 0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x0e,0x25,0x3c, 0x53,0x69,0x81,0x7c,0x79,0x81,0x90,0xa3,0xb7,0xa4,0x8e,0x77,0x61,0x4b,0x35, 0x1d,0x06,0x00,0x00,0x0f,0x24,0x38,0x4c,0x61,0x75,0x8c,0xa1,0x9a,0x86,0x70, 0x5a,0x45,0x30,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x33,0x48, 0x5d,0x72,0x89,0x9d,0x9e,0x89,0x73,0x5f,0x4a,0x36,0x21,0x0d,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x93,0x93,0x9b,0xa8,0x9f,0x8d,0x79,0x63,0x4d,0x37,0x21, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24,0x3b,0x51,0x67,0x7b, 0x90,0xa1,0xa6,0x9a,0x93,0x93,0x79,0x63,0x4c,0x35,0x1b,0x00,0x11,0x26,0x3c, 0x53,0x6a,0x81,0x93,0x93,0x93,0x93,0x93,0x9f,0xaa,0x93,0x79,0x63,0x4c,0x37, 0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2a,0x40, 0x56,0x6b,0x84,0x98,0x9b,0x86,0x6f,0x59,0x43,0x2d,0x18,0x00,0x0c,0x23,0x3a, 0x51,0x65,0x7c,0x95,0xac,0x9d,0x93,0x93,0x93,0x93,0x93,0x79,0x65,0x4e,0x37, 0x21,0x00,0x00,0x10,0x27,0x3f,0x56,0x6d,0x87,0x9e,0x94,0x7c,0x65,0x4d,0x35, 0x1d,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x12,0x19,0x2b,0x42,0x58,0x6f,0x89,0x95,0x95,0x81,0x68,0x51, 0x3a,0x23,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x2d,0x42, 0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x14,0x2b, 0x42,0x59,0x6f,0x86,0x95,0x93,0x98,0xa2,0xb1,0xab,0x98,0x84,0x6e,0x5a,0x43, 0x2d,0x17,0x01,0x00,0x04,0x1a,0x2f,0x43,0x58,0x6c,0x82,0x96,0xa4,0x90,0x79, 0x64,0x50,0x3b,0x27,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x29, 0x3e,0x52,0x68,0x7c,0x92,0xa7,0x93,0x81,0x6a,0x56,0x41,0x2d,0x18,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x90,0x8a,0x7b,0x6b,0x58,0x45,0x2f, 0x19,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1c,0x31,0x47,0x5b, 0x6d,0x7c,0x8b,0x92,0x95,0x95,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x11,0x26, 0x3c,0x53,0x6a,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x79,0x63,0x4c, 0x37,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24, 0x39,0x50,0x65,0x7b,0x92,0x95,0x8c,0x74,0x60,0x49,0x33,0x1d,0x00,0x0c,0x23, 0x3a,0x51,0x65,0x7c,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x79,0x65,0x4e, 0x37,0x21,0x00,0x00,0x15,0x2d,0x45,0x5d,0x74,0x8d,0x95,0x8e,0x75,0x5e,0x46, 0x2f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x41,0x58,0x6e,0x79,0x79,0x79,0x79,0x67, 0x50,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x2d, 0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x04,0x1b, 0x31,0x48,0x5e,0x74,0x8c,0xa3,0xac,0xaf,0xaa,0xa4,0x98,0x89,0x75,0x62,0x4f, 0x3a,0x25,0x0f,0x00,0x00,0x09,0x20,0x37,0x4d,0x63,0x77,0x8d,0xa0,0x99,0x84, 0x6e,0x5a,0x46,0x30,0x1c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09, 0x1f,0x33,0x48,0x5c,0x72,0x87,0x9b,0x9e,0x8b,0x75,0x61,0x4b,0x34,0x1d,0x00, 0x0a,0x20,0x3a,0x50,0x67,0x79,0x79,0x79,0x79,0x77,0x72,0x69,0x5a,0x4a,0x37, 0x23,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x39, 0x4c,0x5c,0x6a,0x74,0x77,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1b,0x00,0x11, 0x25,0x3c,0x53,0x6a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x62, 0x4b,0x37,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x1e,0x33,0x49,0x5f,0x73,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1e,0x00,0x0c, 0x23,0x3a,0x50,0x65,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x65, 0x4e,0x37,0x20,0x00,0x00,0x16,0x30,0x46,0x60,0x75,0x79,0x79,0x79,0x6e,0x58, 0x40,0x29,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x26,0x3b,0x4f,0x5f,0x63,0x63,0x63,0x63, 0x5a,0x49,0x34,0x1f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19, 0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x07, 0x1e,0x35,0x4e,0x65,0x79,0x90,0x93,0x95,0x95,0x93,0x8d,0x84,0x75,0x65,0x55, 0x42,0x2e,0x1a,0x05,0x00,0x00,0x09,0x20,0x37,0x4d,0x63,0x75,0x81,0x89,0x8c, 0x77,0x63,0x4f,0x3a,0x26,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x14,0x28,0x3e,0x51,0x65,0x79,0x8f,0x89,0x7c,0x74,0x61,0x4b,0x34,0x1d, 0x00,0x06,0x1c,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x60,0x5c,0x53,0x48,0x38, 0x28,0x16,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18, 0x2a,0x3a,0x49,0x54,0x5d,0x60,0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x18,0x00, 0x0e,0x21,0x37,0x4b,0x5c,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62, 0x57,0x45,0x31,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x17,0x2c,0x40,0x53,0x61,0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x1a,0x00, 0x09,0x1f,0x33,0x48,0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62, 0x59,0x47,0x32,0x1c,0x00,0x00,0x13,0x29,0x40,0x55,0x62,0x63,0x63,0x63,0x5f, 0x4e,0x38,0x22,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1b,0x2d,0x3d,0x47,0x49,0x49,0x49, 0x49,0x44,0x38,0x28,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00, 0x06,0x1d,0x33,0x4c,0x61,0x70,0x76,0x79,0x79,0x79,0x79,0x74,0x6d,0x62,0x53, 0x45,0x33,0x21,0x0e,0x00,0x00,0x00,0x04,0x1a,0x30,0x44,0x55,0x5f,0x69,0x72, 0x79,0x6b,0x57,0x43,0x2f,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x1d,0x31,0x45,0x59,0x6d,0x79,0x71,0x68,0x5e,0x53,0x42,0x2d, 0x18,0x00,0x00,0x12,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x44,0x3d,0x32, 0x26,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x19,0x28,0x35,0x3e,0x45,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x24,0x0e, 0x00,0x05,0x17,0x2a,0x3a,0x45,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x42,0x35,0x26,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0d,0x20,0x31,0x40,0x48,0x49,0x49,0x49,0x49,0x42,0x35,0x24,0x10, 0x00,0x00,0x15,0x28,0x38,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x43,0x37,0x26,0x12,0x00,0x00,0x09,0x1f,0x31,0x41,0x49,0x49,0x49,0x49, 0x47,0x3b,0x2c,0x17,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1b,0x27,0x2e,0x30,0x30, 0x30,0x30,0x2d,0x23,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0x95,0x90,0x79,0x65,0x51,0x3c,0x28, 0x00,0x00,0x16,0x2c,0x3f,0x4f,0x59,0x5e,0x62,0x63,0x63,0x62,0x5d,0x57,0x4c, 0x40,0x33,0x23,0x12,0x00,0x00,0x00,0x00,0x00,0x10,0x22,0x33,0x40,0x49,0x52, 0x5c,0x63,0x5c,0x4a,0x37,0x22,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x11,0x25,0x39,0x4d,0x5d,0x62,0x5a,0x51,0x48,0x3e,0x31, 0x20,0x0e,0x00,0x00,0x06,0x18,0x26,0x2f,0x32,0x32,0x32,0x32,0x30,0x2c,0x26, 0x1d,0x12,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x06,0x13,0x1e,0x28,0x2d,0x30,0x32,0x32,0x32,0x32,0x2d,0x23,0x15, 0x02,0x00,0x00,0x09,0x1a,0x27,0x30,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x2d,0x23,0x15,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x11,0x20,0x2b,0x32,0x32,0x32,0x32,0x32,0x2d,0x23,0x15, 0x04,0x00,0x00,0x07,0x16,0x24,0x2e,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x2e,0x24,0x16,0x06,0x00,0x00,0x00,0x0f,0x20,0x2c,0x32,0x32,0x32, 0x32,0x30,0x28,0x1a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x12,0x18,0x19, 0x19,0x19,0x19,0x16,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x19,0x2d,0x41,0x56,0x6a,0x79,0x79,0x79,0x79,0x77,0x65,0x50,0x3c, 0x28,0x00,0x00,0x0b,0x1d,0x2f,0x3a,0x41,0x47,0x49,0x49,0x49,0x49,0x46,0x40, 0x37,0x2d,0x1f,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x20,0x29,0x33, 0x3d,0x45,0x49,0x45,0x3a,0x2a,0x17,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x19,0x2c,0x3b,0x46,0x49,0x44,0x3b,0x32,0x29, 0x1d,0x0f,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x15, 0x10,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x15,0x19,0x19,0x19,0x19,0x19,0x15,0x0d, 0x01,0x00,0x00,0x00,0x00,0x05,0x10,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x15,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x14,0x18,0x19,0x19,0x19,0x19,0x15,0x0d, 0x01,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x16,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x0b,0x14,0x19,0x19, 0x19,0x19,0x18,0x11,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x14,0x28,0x3a,0x4c,0x5a,0x60,0x60,0x60,0x60,0x60,0x57,0x48, 0x36,0x23,0x00,0x00,0x00,0x0b,0x19,0x23,0x29,0x2f,0x32,0x32,0x32,0x32,0x2e, 0x29,0x21,0x17,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x13, 0x1d,0x26,0x2f,0x32,0x30,0x26,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x27,0x30,0x32,0x2e,0x25,0x1c, 0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0b,0x1c,0x2c,0x39,0x43,0x47,0x47,0x47,0x47,0x46,0x41, 0x36,0x28,0x18,0x00,0x00,0x00,0x00,0x04,0x0c,0x13,0x17,0x19,0x19,0x19,0x19, 0x17,0x11,0x0a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x10,0x17,0x19,0x17,0x10,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x11,0x17,0x19,0x16,0x0f, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x19,0x24,0x2b,0x2d,0x2d,0x2d,0x2d,0x2d, 0x29,0x21,0x16,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0c,0x12,0x14,0x14,0x14,0x14, 0x14,0x11,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x05,0x03,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x11,0x16,0x19,0x1b,0x1b,0x1b,0x19,0x15, 0x10,0x0a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0x09,0x10,0x14,0x18,0x1b,0x1c,0x1e,0x1b,0x1a,0x17,0x13,0x0d,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0b,0x15,0x1c,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1c,0x16,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0e,0x14,0x18, 0x1a,0x1b,0x1a,0x17,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x09,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x11,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x10, 0x04,0x00,0x00,0x00,0x00,0x07,0x14,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x19, 0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x0f,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18, 0x0f,0x03,0x00,0x00,0x00,0x00,0x0e,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0d, 0x13,0x18,0x1b,0x1b,0x19,0x16,0x11,0x0a,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b, 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x10,0x1a,0x22,0x29,0x2e,0x32,0x34,0x35,0x33,0x31, 0x2d,0x28,0x21,0x19,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x12,0x1a,0x21,0x27,0x2d,0x30,0x32,0x35,0x37,0x33,0x32,0x2f,0x2b,0x25, 0x1e,0x16,0x0d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0f,0x1f,0x2b,0x35,0x37,0x37,0x37,0x37,0x37,0x37,0x35,0x2d,0x21,0x11,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x15,0x1e,0x25,0x2b, 0x30,0x32,0x32,0x32,0x2f,0x2b,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x27,0x20, 0x15,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x18,0x27,0x32,0x37,0x37,0x37,0x37,0x37,0x37,0x31, 0x26,0x16,0x02,0x00,0x00,0x09,0x1a,0x2a,0x34,0x37,0x37,0x37,0x37,0x37,0x37, 0x31,0x26,0x14,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x15,0x25,0x30,0x35,0x35,0x35,0x35,0x35,0x35, 0x30,0x25,0x15,0x04,0x00,0x01,0x13,0x24,0x2f,0x34,0x35,0x35,0x35,0x35,0x35, 0x2f,0x24,0x13,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x10,0x1b, 0x24,0x2b,0x30,0x32,0x32,0x32,0x2e,0x29,0x21,0x22,0x26,0x26,0x26,0x26,0x25, 0x21,0x17,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x0e,0x1c,0x27,0x31,0x39,0x41,0x46,0x49,0x4d,0x4e,0x4c, 0x49,0x46,0x40,0x39,0x30,0x25,0x1a,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a, 0x15,0x1f,0x29,0x31,0x39,0x3f,0x45,0x49,0x4c,0x4c,0x4e,0x4c,0x4b,0x48,0x43, 0x3d,0x35,0x2e,0x24,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x1c,0x2f,0x3e,0x4a,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4b,0x3f,0x31,0x1e, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x12,0x1f,0x2a,0x35,0x3d, 0x43,0x49,0x4b,0x4c,0x4b,0x48,0x43,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3e, 0x36,0x26,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x38,0x48,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, 0x47,0x37,0x24,0x0f,0x00,0x00,0x15,0x29,0x3c,0x49,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x45,0x37,0x22,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x37,0x45,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x46,0x37,0x25,0x11,0x00,0x0e,0x23,0x35,0x43,0x4b,0x4c,0x4c,0x4c,0x4c, 0x4b,0x43,0x35,0x23,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x19,0x26, 0x31,0x3b,0x43,0x49,0x4c,0x4c,0x4b,0x46,0x41,0x37,0x3a,0x3f,0x3f,0x3f,0x3f, 0x3f,0x39,0x2c,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x15,0x24,0x31,0x3d,0x48,0x51,0x59,0x5f,0x63,0x65,0x68, 0x65,0x62,0x5d,0x58,0x50,0x47,0x3b,0x2f,0x21,0x13,0x03,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x12, 0x1f,0x2a,0x35,0x40,0x48,0x50,0x56,0x5d,0x60,0x63,0x65,0x67,0x65,0x63,0x60, 0x5b,0x55,0x4d,0x43,0x39,0x2e,0x21,0x13,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0f,0x25,0x3b,0x4e,0x60,0x68,0x68,0x68,0x68,0x68,0x68,0x62,0x50,0x3d, 0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x26,0x34,0x40,0x4b, 0x54,0x5b,0x60,0x63,0x63,0x63,0x5f,0x5a,0x58,0x58,0x58,0x58,0x58,0x58,0x58, 0x56,0x49,0x37,0x22,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x1a,0x31,0x47,0x5b,0x67,0x68,0x68,0x68,0x68, 0x67,0x59,0x44,0x2f,0x18,0x00,0x05,0x1e,0x34,0x4b,0x5e,0x68,0x68,0x68,0x68, 0x68,0x66,0x58,0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2e,0x46,0x59,0x65,0x65,0x65,0x65, 0x65,0x65,0x59,0x47,0x30,0x1a,0x04,0x17,0x2d,0x43,0x57,0x65,0x65,0x65,0x65, 0x65,0x65,0x57,0x43,0x2c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1e,0x2d, 0x3b,0x47,0x51,0x5a,0x60,0x63,0x63,0x62,0x5d,0x57,0x4c,0x51,0x58,0x58,0x58, 0x58,0x58,0x4e,0x3d,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x16,0x28,0x38,0x46,0x53,0x5f,0x69,0x71,0x77,0x7b,0x81, 0x81,0x7c,0x79,0x76,0x70,0x67,0x5c,0x51,0x44,0x35,0x26,0x15,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x19, 0x27,0x34,0x40,0x4b,0x56,0x5f,0x68,0x6e,0x74,0x79,0x7c,0x7c,0x81,0x7c,0x7b, 0x77,0x72,0x6c,0x64,0x5a,0x4f,0x43,0x36,0x27,0x17,0x06,0x00,0x00,0x00,0x00, 0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x81,0x81,0x81,0x81,0x81,0x6d,0x56, 0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x16,0x26,0x37,0x47,0x55, 0x61,0x6b,0x72,0x77,0x79,0x7c,0x7b,0x77,0x72,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f, 0x6f,0x6b,0x58,0x40,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x81,0x81,0x81, 0x81,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x81,0x81, 0x81,0x81,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x62,0x7b,0x7c,0x7c, 0x7c,0x7c,0x7b,0x66,0x50,0x39,0x22,0x0c,0x1e,0x35,0x4c,0x62,0x79,0x7c,0x7c, 0x7c,0x7c,0x79,0x60,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f,0x2f, 0x40,0x4f,0x5c,0x68,0x71,0x77,0x7c,0x7c,0x79,0x75,0x6d,0x63,0x61,0x6f,0x6f, 0x6f,0x6f,0x6e,0x5f,0x47,0x31,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x17,0x28,0x3a,0x4a,0x5a,0x68,0x74,0x81,0x8a,0x90,0x95, 0x98,0x9a,0x98,0x95,0x90,0x89,0x81,0x73,0x67,0x58,0x49,0x38,0x26,0x15,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d, 0x2d,0x3b,0x49,0x56,0x62,0x6c,0x76,0x81,0x88,0x8e,0x93,0x96,0x98,0x98,0x98, 0x95,0x91,0x8b,0x84,0x79,0x71,0x64,0x58,0x49,0x3a,0x29,0x18,0x06,0x00,0x00, 0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0x9a,0x9a,0x9a,0x86,0x6d, 0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x24,0x37,0x49,0x59, 0x69,0x76,0x84,0x8b,0x90,0x95,0x97,0x95,0x90,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b, 0x8b,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0x9a, 0x9a,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0x9a,0x9a,0x93,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x19,0x31,0x48,0x5e,0x74,0x8c, 0x98,0x98,0x98,0x86,0x6e,0x58,0x41,0x2a,0x14,0x25,0x3c,0x53,0x6a,0x82,0x98, 0x98,0x98,0x8b,0x73,0x5c,0x45,0x2e,0x17,0x00,0x00,0x00,0x00,0x0a,0x1d,0x2f, 0x41,0x52,0x62,0x71,0x7c,0x89,0x90,0x95,0x97,0x94,0x8e,0x84,0x77,0x6a,0x81, 0x8b,0x8b,0x8b,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x13,0x26,0x3a,0x4c,0x5c,0x6d,0x7c,0x8b,0x98,0xa1,0xa8, 0xae,0xb1,0xb3,0xb1,0xad,0xa8,0xa0,0x95,0x89,0x7b,0x6b,0x5b,0x49,0x37,0x24, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1e, 0x2f,0x40,0x4f,0x5d,0x6a,0x76,0x84,0x8d,0x96,0x9f,0xa1,0x9c,0x98,0x98,0x98, 0x98,0x9b,0xa0,0xa3,0x9b,0x92,0x87,0x79,0x6b,0x5c,0x4c,0x3a,0x29,0x16,0x04, 0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86, 0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x08,0x1d,0x32,0x45,0x59, 0x6b,0x7b,0x8b,0x98,0xa2,0xa8,0xa2,0xa0,0xa2,0xa7,0xa5,0xa5,0xa5,0xa5,0xa5, 0xa5,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x29,0x3f,0x55,0x6c, 0x84,0x99,0xaf,0xa4,0x8e,0x76,0x60,0x49,0x32,0x1c,0x2c,0x43,0x5a,0x71,0x89, 0xa0,0xaf,0x99,0x84,0x6b,0x55,0x3d,0x27,0x10,0x00,0x00,0x00,0x02,0x16,0x2b, 0x3e,0x51,0x63,0x74,0x86,0x93,0xa0,0xa8,0xad,0xaf,0xac,0xa4,0x9a,0x8d,0x7c, 0x86,0x9d,0xa5,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x21,0x35,0x49,0x5c,0x6e,0x82,0x91,0xa0,0xad,0xb1, 0xa6,0x9f,0x9a,0x9a,0x9b,0xa0,0xa7,0xb2,0xac,0x9e,0x8f,0x7c,0x6d,0x5a,0x47, 0x33,0x1f,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e, 0x2f,0x41,0x52,0x62,0x71,0x81,0x8d,0x9a,0xa4,0x99,0x90,0x89,0x84,0x81,0x7c, 0x7c,0x81,0x84,0x88,0x8e,0x96,0xa2,0x9c,0x8f,0x81,0x6e,0x5e,0x4c,0x39,0x26, 0x12,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a, 0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x12,0x28,0x3e,0x52, 0x67,0x7b,0x8f,0x9f,0xad,0x9e,0x92,0x89,0x89,0x8a,0x93,0xa0,0xb1,0xb2,0xa1, 0x9a,0x9a,0x9a,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c, 0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x20,0x36,0x4d, 0x63,0x79,0x91,0xa6,0xac,0x96,0x81,0x68,0x51,0x3a,0x24,0x33,0x49,0x61,0x77, 0x90,0xa7,0xa8,0x91,0x79,0x63,0x4d,0x35,0x1f,0x08,0x00,0x00,0x00,0x0e,0x22, 0x38,0x4c,0x60,0x74,0x88,0x98,0xa7,0xb5,0xa7,0x9e,0x98,0x98,0x9a,0xa0,0xa1, 0x91,0x91,0xa3,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x18,0x2e,0x43,0x57,0x6b,0x81,0x92,0xa4,0xb4,0xa9, 0x9b,0x90,0x87,0x82,0x81,0x84,0x89,0x91,0x9c,0xab,0xb1,0xa2,0x90,0x7c,0x69, 0x55,0x40,0x2c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1c, 0x2e,0x41,0x53,0x63,0x74,0x86,0x94,0xa3,0x9a,0x8d,0x84,0x79,0x71,0x6a,0x66, 0x65,0x65,0x65,0x69,0x6e,0x75,0x81,0x8c,0x99,0xa2,0x92,0x82,0x6e,0x5c,0x48, 0x34,0x1f,0x0b,0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1, 0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x03,0x1a,0x31,0x47, 0x5d,0x72,0x89,0x9d,0xb0,0x9e,0x8d,0x7b,0x72,0x6d,0x72,0x7c,0x8f,0xa1,0xaa, 0x93,0x81,0x81,0x81,0x81,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0b,0x0f,0x11,0x11,0x1e,0x35,0x4c,0x65, 0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x11,0x11,0x11,0x0e, 0x09,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2d, 0x44,0x5a,0x70,0x88,0x9d,0xb4,0x9e,0x88,0x70,0x59,0x42,0x2c,0x3a,0x51,0x68, 0x81,0x97,0xad,0xa0,0x8a,0x72,0x5b,0x45,0x2d,0x18,0x00,0x00,0x00,0x01,0x18, 0x2e,0x43,0x58,0x6d,0x84,0x96,0xa9,0xb4,0xa2,0x94,0x88,0x81,0x7c,0x82,0x89, 0x93,0x9f,0xa6,0xb3,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x22,0x38,0x4f,0x64,0x79,0x8f,0xa2,0xb5,0xa8, 0x96,0x86,0x77,0x6d,0x68,0x65,0x68,0x6f,0x79,0x89,0x9a,0xaa,0xb3,0xa0,0x8c, 0x76,0x62,0x4c,0x37,0x20,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x16, 0x2b,0x3e,0x51,0x63,0x75,0x88,0x98,0xa2,0x94,0x86,0x77,0x6c,0x62,0x5a,0x53, 0x4e,0x4c,0x4c,0x4e,0x51,0x57,0x5f,0x6a,0x76,0x86,0x96,0xa4,0x92,0x81,0x6a, 0x56,0x41,0x2c,0x16,0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf, 0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x09,0x20,0x37, 0x4e,0x65,0x7c,0x93,0xa9,0xa8,0x92,0x7b,0x69,0x5a,0x56,0x5b,0x6b,0x7c,0x94, 0xaa,0x9a,0x86,0x6e,0x68,0x68,0x64,0x53,0x3d,0x28,0x11,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x13,0x1c,0x23,0x28,0x2b,0x2b,0x2a,0x35,0x4c, 0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x28,0x2b,0x2b,0x29, 0x26,0x20,0x19,0x0f,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x24,0x3b,0x51,0x67,0x7c,0x94,0xac,0xa6,0x90,0x77,0x61,0x4a,0x34,0x41,0x58, 0x6f,0x87,0x9e,0xaf,0x98,0x82,0x6a,0x53,0x3d,0x26,0x10,0x00,0x00,0x00,0x0a, 0x21,0x37,0x4d,0x63,0x79,0x90,0xa3,0xb8,0xa4,0x92,0x81,0x71,0x68,0x65,0x6a, 0x71,0x7c,0x8c,0x9c,0xb2,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2c,0x43,0x59,0x70,0x87,0x9c,0xb1,0xac, 0x98,0x86,0x72,0x62,0x57,0x50,0x4d,0x50,0x58,0x64,0x74,0x88,0x9b,0xaf,0xae, 0x9a,0x84,0x6d,0x58,0x41,0x2a,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0x24,0x39,0x4c,0x60,0x74,0x88,0x9a,0xa1,0x90,0x81,0x70,0x62,0x56,0x4b,0x42, 0x3b,0x36,0x33,0x32,0x35,0x39,0x40,0x49,0x54,0x62,0x71,0x84,0x96,0xa2,0x8d, 0x77,0x63,0x4d,0x37,0x21,0x0a,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98, 0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x0c,0x23, 0x3b,0x53,0x6a,0x84,0x9a,0xb1,0xa2,0x8b,0x72,0x5b,0x47,0x3c,0x49,0x5d,0x74, 0x8c,0xa3,0xa5,0x8e,0x76,0x60,0x4e,0x4d,0x43,0x31,0x1e,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x12,0x1e,0x29,0x32,0x3a,0x3f,0x42,0x42,0x41,0x3d, 0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x3a,0x3f,0x42,0x42, 0x41,0x3d,0x37,0x2f,0x25,0x19,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x32,0x48,0x5e,0x74,0x8c,0xa3,0xae,0x98,0x81,0x69,0x52,0x3c,0x48, 0x5f,0x76,0x8e,0xa5,0xa7,0x90,0x79,0x62,0x4b,0x35,0x1e,0x08,0x00,0x00,0x00, 0x11,0x29,0x3f,0x56,0x6d,0x84,0x9a,0xaf,0xac,0x98,0x84,0x6e,0x5c,0x51,0x4d, 0x51,0x5b,0x69,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1d,0x35,0x4c,0x62,0x79,0x91,0xa7,0xb5, 0xa0,0x8a,0x74,0x61,0x4f,0x40,0x37,0x35,0x38,0x42,0x52,0x63,0x77,0x8d,0xa3, 0xb8,0xa5,0x90,0x77,0x61,0x49,0x32,0x1c,0x04,0x00,0x00,0x00,0x00,0x00,0x06, 0x1c,0x31,0x46,0x5a,0x6e,0x84,0x98,0xa2,0x90,0x7c,0x6d,0x5c,0x4e,0x40,0x3a, 0x42,0x48,0x49,0x49,0x46,0x3d,0x41,0x42,0x42,0x42,0x4f,0x60,0x72,0x88,0x9b, 0x9b,0x86,0x6e,0x58,0x41,0x2a,0x14,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81, 0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x0c, 0x26,0x3c,0x53,0x6d,0x86,0x9d,0xb4,0xa0,0x88,0x6e,0x56,0x3f,0x29,0x41,0x58, 0x6f,0x8a,0xa2,0xac,0x93,0x79,0x63,0x4b,0x34,0x2d,0x1f,0x0f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x08,0x17,0x26,0x33,0x3f,0x49,0x51,0x58,0x5b,0x5b,0x5a, 0x55,0x4e,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x51,0x58,0x5b, 0x5b,0x59,0x55,0x4e,0x46,0x3a,0x2d,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x12,0x29,0x3f,0x55,0x6c,0x84,0x9a,0xaf,0xa0,0x89,0x71,0x5a,0x44, 0x4f,0x65,0x7c,0x95,0xac,0x9f,0x89,0x71,0x5a,0x43,0x2d,0x16,0x00,0x00,0x00, 0x00,0x16,0x2e,0x45,0x5d,0x74,0x8b,0xa3,0xb9,0xa3,0x8d,0x75,0x61,0x4c,0x3b, 0x35,0x3a,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x24,0x3c,0x53,0x6a,0x84,0x9a,0xb1, 0xac,0x95,0x7c,0x68,0x52,0x3e,0x2c,0x1f,0x1b,0x20,0x2f,0x41,0x56,0x6b,0x82, 0x98,0xaf,0xae,0x98,0x81,0x69,0x51,0x39,0x22,0x0b,0x00,0x00,0x00,0x00,0x00, 0x11,0x27,0x3e,0x52,0x68,0x7c,0x92,0xa6,0x93,0x81,0x6d,0x5b,0x4a,0x3a,0x45, 0x50,0x5a,0x60,0x63,0x62,0x5d,0x53,0x5a,0x5b,0x5b,0x5b,0x56,0x50,0x64,0x79, 0x90,0xa5,0x90,0x77,0x61,0x4a,0x33,0x1c,0x04,0x00,0x11,0x28,0x3f,0x53,0x6a, 0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00, 0x0c,0x25,0x3c,0x53,0x6b,0x86,0x9d,0xb4,0xa0,0x89,0x6f,0x58,0x40,0x2b,0x42, 0x5a,0x70,0x8b,0xa2,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x18,0x28,0x38,0x47,0x54,0x5f,0x68,0x6f,0x72,0x72, 0x71,0x6c,0x64,0x65,0x7c,0x95,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x60,0x69,0x6f, 0x72,0x72,0x71,0x6c,0x64,0x5a,0x4f,0x41,0x31,0x21,0x0f,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x09,0x20,0x36,0x4c,0x63,0x79,0x91,0xa6,0xa7,0x91,0x79,0x62, 0x4c,0x56,0x6d,0x86,0x9b,0xad,0x98,0x81,0x69,0x52,0x3b,0x24,0x0e,0x00,0x00, 0x00,0x03,0x1b,0x32,0x49,0x62,0x79,0x91,0xa9,0xb5,0x9d,0x86,0x6d,0x57,0x41, 0x2b,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x2a,0x42,0x5a,0x72,0x8a,0xa1, 0xb9,0xa4,0x8c,0x74,0x5d,0x47,0x31,0x1c,0x0a,0x02,0x0c,0x1f,0x35,0x4a,0x61, 0x77,0x90,0xa8,0xb6,0xa0,0x88,0x6f,0x58,0x3f,0x28,0x0f,0x00,0x00,0x00,0x00, 0x05,0x1c,0x31,0x48,0x5f,0x74,0x8a,0xa0,0x99,0x84,0x70,0x5c,0x4a,0x3c,0x4c, 0x5a,0x67,0x71,0x77,0x79,0x79,0x74,0x69,0x70,0x72,0x72,0x72,0x67,0x51,0x58, 0x6d,0x86,0x9c,0x98,0x82,0x69,0x51,0x3a,0x23,0x0a,0x00,0x11,0x28,0x3f,0x53, 0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00, 0x00,0x0b,0x22,0x39,0x51,0x68,0x81,0x98,0xae,0xa3,0x8b,0x74,0x5f,0x4b,0x43, 0x4c,0x61,0x75,0x8e,0xa5,0xa7,0x90,0x77,0x60,0x49,0x32,0x1b,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x17,0x29,0x3a,0x4c,0x5b,0x69,0x75,0x81,0x88,0x8b, 0x8e,0x8b,0x86,0x79,0x6d,0x7c,0x95,0xac,0xac,0x95,0x79,0x63,0x49,0x32,0x1b, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x90,0x77,0x69,0x75,0x81, 0x88,0x8c,0x8e,0x8b,0x86,0x7b,0x70,0x63,0x53,0x43,0x31,0x1e,0x0a,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x17,0x2d,0x43,0x5a,0x70,0x88,0x9d,0xb0,0x99,0x82, 0x6a,0x54,0x5d,0x74,0x8c,0xa3,0xa5,0x90,0x77,0x61,0x4a,0x33,0x1d,0x06,0x00, 0x00,0x00,0x05,0x1d,0x35,0x4d,0x65,0x7c,0x95,0xad,0xb1,0x98,0x81,0x69,0x51, 0x3a,0x22,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32, 0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2e,0x46,0x5d,0x76,0x90, 0xa7,0xb5,0x9e,0x86,0x6d,0x56,0x3e,0x27,0x10,0x00,0x00,0x00,0x14,0x2b,0x42, 0x59,0x71,0x8a,0xa1,0xb9,0xa5,0x8d,0x74,0x5c,0x44,0x2d,0x14,0x00,0x00,0x00, 0x00,0x0e,0x25,0x3c,0x52,0x69,0x81,0x96,0xa1,0x8c,0x75,0x61,0x4d,0x3c,0x4e, 0x5e,0x6e,0x7b,0x89,0x90,0x95,0x93,0x8b,0x7b,0x7c,0x8e,0x8e,0x84,0x6a,0x52, 0x4d,0x64,0x7b,0x94,0xa0,0x89,0x6f,0x58,0x40,0x28,0x0f,0x00,0x11,0x28,0x3f, 0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00, 0x00,0x00,0x07,0x1e,0x35,0x4c,0x62,0x77,0x90,0xa4,0xab,0x94,0x81,0x6d,0x60, 0x5b,0x61,0x6e,0x82,0x96,0xac,0xa0,0x89,0x72,0x5b,0x44,0x2d,0x16,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x38,0x4a,0x5c,0x6d,0x7c,0x8b,0x96,0x9e, 0xa3,0xa5,0xa2,0x9b,0x90,0x84,0x79,0x93,0xac,0xac,0x95,0x79,0x63,0x49,0x32, 0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x90,0x77,0x81,0x8b, 0x96,0x9f,0xa3,0xa5,0xa2,0x9b,0x92,0x86,0x75,0x63,0x53,0x40,0x2c,0x17,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24,0x3a,0x51,0x67,0x7c,0x94,0xac,0xa1, 0x8a,0x73,0x5c,0x65,0x7b,0x93,0xaa,0x9d,0x88,0x6f,0x59,0x42,0x2c,0x15,0x00, 0x00,0x00,0x00,0x07,0x20,0x37,0x50,0x67,0x81,0x98,0xaf,0xaf,0x98,0x81,0x65, 0x4e,0x37,0x1e,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49, 0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x31,0x49,0x62,0x79, 0x93,0xac,0xb2,0x9a,0x82,0x68,0x51,0x38,0x21,0x09,0x00,0x00,0x00,0x0c,0x24, 0x3c,0x53,0x6d,0x86,0x9d,0xb5,0xaa,0x90,0x77,0x60,0x47,0x2f,0x16,0x00,0x00, 0x00,0x00,0x16,0x2d,0x44,0x5c,0x73,0x8a,0xa1,0x96,0x81,0x6a,0x54,0x3f,0x4b, 0x5e,0x70,0x82,0x91,0x9e,0xa3,0xa0,0x9e,0x9f,0x8b,0x84,0x9b,0x96,0x7c,0x65, 0x4d,0x45,0x5d,0x74,0x8e,0xa5,0x8e,0x74,0x5d,0x44,0x2c,0x14,0x00,0x11,0x28, 0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00, 0x00,0x00,0x00,0x00,0x17,0x2d,0x43,0x59,0x6d,0x84,0x96,0xa8,0xa2,0x90,0x82, 0x77,0x73,0x77,0x84,0x92,0xa4,0xa5,0x93,0x7c,0x68,0x53,0x3d,0x27,0x10,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x1e,0x32,0x47,0x5a,0x6d,0x81,0x90,0x9f,0xac, 0xb1,0xa8,0xa2,0xa2,0xa3,0xa5,0x96,0x89,0x95,0xad,0xac,0x95,0x79,0x63,0x49, 0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x91,0x84,0x92, 0xa1,0xa5,0xa2,0xa2,0xa5,0xad,0xb2,0xa7,0x9a,0x88,0x74,0x61,0x4d,0x38,0x22, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x48,0x5e,0x74,0x8c,0xa3, 0xa9,0x92,0x79,0x63,0x6b,0x84,0x9b,0xac,0x96,0x81,0x67,0x51,0x3a,0x24,0x0d, 0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaf,0x98,0x81, 0x65,0x4e,0x36,0x1e,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63, 0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x63, 0x7c,0x96,0xaf,0xaf,0x98,0x7c,0x65,0x4e,0x35,0x1d,0x05,0x00,0x00,0x00,0x08, 0x20,0x39,0x51,0x69,0x84,0x9a,0xb4,0xac,0x93,0x79,0x62,0x49,0x31,0x19,0x00, 0x00,0x00,0x05,0x1e,0x35,0x4d,0x64,0x7b,0x93,0xa3,0x8c,0x74,0x5f,0x48,0x45, 0x59,0x6d,0x82,0x94,0xa5,0x9a,0x8c,0x86,0x86,0x8d,0x9b,0x97,0xa6,0x92,0x77, 0x60,0x49,0x40,0x58,0x6f,0x89,0xa2,0x93,0x77,0x60,0x47,0x2f,0x16,0x00,0x11, 0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16, 0x00,0x00,0x00,0x00,0x00,0x0e,0x23,0x38,0x4c,0x60,0x72,0x86,0x96,0xa9,0xa3, 0x96,0x90,0x8e,0x90,0x98,0xa4,0xa1,0x94,0x84,0x70,0x5c,0x48,0x32,0x1e,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x29,0x3f,0x53,0x68,0x7b,0x90,0xa2,0xb3, 0xaa,0x9c,0x92,0x8b,0x89,0x8b,0x92,0x9c,0xa0,0xa7,0xb8,0xac,0x95,0x79,0x63, 0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb2,0xa0,0x9b, 0xa1,0x96,0x8e,0x8b,0x8b,0x8f,0x98,0xa5,0xb6,0xaa,0x96,0x84,0x6d,0x59,0x43, 0x2d,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x29,0x3f,0x55,0x6c,0x84, 0x9a,0xaf,0x99,0x84,0x6a,0x72,0x8a,0xa1,0xa4,0x8e,0x76,0x5f,0x49,0x32,0x1c, 0x05,0x00,0x00,0x00,0x00,0x07,0x20,0x37,0x4e,0x66,0x81,0x98,0xaf,0xb1,0x98, 0x81,0x67,0x4f,0x38,0x20,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79, 0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1b,0x34,0x4c, 0x65,0x7c,0x98,0xaf,0xaf,0x98,0x7c,0x63,0x4c,0x32,0x1b,0x02,0x00,0x00,0x00, 0x06,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb2,0xae,0x95,0x79,0x63,0x49,0x32,0x19, 0x02,0x00,0x00,0x0b,0x23,0x3b,0x53,0x6a,0x84,0x9b,0x9b,0x84,0x6c,0x55,0x3e, 0x51,0x65,0x7b,0x91,0xa4,0x98,0x88,0x76,0x6d,0x6d,0x79,0x8c,0xa1,0xa5,0x8d, 0x73,0x5b,0x44,0x3c,0x53,0x6d,0x86,0xa0,0x95,0x79,0x60,0x49,0x30,0x17,0x00, 0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b, 0x16,0x00,0x00,0x00,0x00,0x00,0x07,0x1d,0x32,0x45,0x57,0x69,0x79,0x8e,0xa1, 0x96,0x9a,0xa0,0xa2,0xa0,0x9b,0x95,0x8c,0x81,0x70,0x60,0x4e,0x3b,0x28,0x13, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1d,0x33,0x49,0x5f,0x74,0x8a,0x9e,0xb1, 0xaa,0x9a,0x88,0x79,0x72,0x6f,0x73,0x79,0x87,0x94,0xa2,0xb6,0xac,0x95,0x79, 0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xbc,0xaa, 0x9b,0x8d,0x81,0x75,0x70,0x71,0x77,0x84,0x94,0xa6,0xb8,0xa4,0x90,0x77,0x62, 0x4c,0x35,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x20,0x36,0x4c,0x63, 0x79,0x91,0xa7,0xa0,0x89,0x72,0x77,0x90,0xa8,0x9d,0x86,0x6e,0x57,0x41,0x2a, 0x14,0x00,0x00,0x00,0x00,0x00,0x05,0x1c,0x35,0x4c,0x64,0x7c,0x95,0xac,0xb2, 0x9b,0x84,0x6a,0x53,0x3c,0x24,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95, 0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1b,0x35, 0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x98,0x7c,0x63,0x4c,0x32,0x1b,0x02,0x00,0x00, 0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xaf,0x95,0x7c,0x63,0x49,0x32, 0x19,0x02,0x00,0x00,0x10,0x29,0x41,0x58,0x71,0x8a,0xa1,0x95,0x7b,0x64,0x4d, 0x45,0x5b,0x71,0x89,0x9e,0x9e,0x89,0x74,0x63,0x55,0x57,0x6a,0x84,0x9d,0xa0, 0x89,0x6e,0x56,0x3f,0x3a,0x53,0x6a,0x86,0x9d,0x95,0x79,0x63,0x49,0x30,0x19, 0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42, 0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x10,0x27,0x3d,0x52,0x67,0x79,0x8d,0x9c, 0x90,0x81,0x84,0x89,0x89,0x89,0x84,0x7c,0x74,0x6b,0x5d,0x4e,0x3e,0x2d,0x1a, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x25,0x3c,0x52,0x69,0x81,0x95,0xab, 0xb2,0x9d,0x89,0x75,0x65,0x5b,0x58,0x5c,0x64,0x72,0x82,0x98,0xaf,0xac,0x95, 0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaf, 0x9a,0x89,0x77,0x6b,0x5f,0x58,0x59,0x62,0x71,0x86,0x9b,0xaf,0xaf,0x99,0x82, 0x6a,0x54,0x3d,0x26,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x17,0x2d,0x43, 0x5a,0x70,0x88,0x9e,0xa7,0x90,0x79,0x81,0x96,0xab,0x95,0x7c,0x66,0x50,0x39, 0x22,0x0c,0x00,0x00,0x00,0x00,0x00,0x02,0x1a,0x32,0x49,0x60,0x77,0x90,0xa8, 0xb7,0x9f,0x89,0x71,0x5a,0x43,0x30,0x2d,0x39,0x4c,0x65,0x7c,0x98,0xaf,0xac, 0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1b, 0x32,0x4c,0x65,0x7c,0x97,0xaf,0xaf,0x98,0x7c,0x65,0x4d,0x35,0x1d,0x04,0x00, 0x00,0x00,0x07,0x20,0x38,0x50,0x68,0x84,0x9a,0xb4,0xac,0x93,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x00,0x14,0x2d,0x45,0x5d,0x74,0x90,0xa7,0x8f,0x75,0x5e, 0x46,0x4d,0x64,0x7b,0x93,0xaa,0x93,0x7c,0x67,0x53,0x40,0x57,0x6f,0x89,0xa0, 0x9b,0x84,0x6a,0x52,0x3a,0x3a,0x53,0x6a,0x86,0x9d,0x95,0x79,0x62,0x49,0x30, 0x19,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56, 0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x17,0x2e,0x45,0x5c,0x72,0x89,0x9c, 0x9b,0x84,0x6e,0x6a,0x6d,0x6f,0x6d,0x6b,0x65,0x5e,0x54,0x49,0x3b,0x2e,0x27, 0x1e,0x13,0x06,0x00,0x00,0x00,0x00,0x00,0x14,0x2c,0x43,0x5a,0x71,0x89,0xa0, 0xb5,0xa8,0x91,0x7b,0x67,0x53,0x45,0x3f,0x45,0x50,0x65,0x7c,0x98,0xaf,0xac, 0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x65,0x56,0x4a,0x41,0x41,0x50,0x63,0x79,0x90,0xa7,0xb7,0xa0, 0x89,0x71,0x5a,0x42,0x2b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x25, 0x3a,0x51,0x67,0x7c,0x95,0xac,0x98,0x81,0x86,0x9c,0xa3,0x8d,0x74,0x5e,0x48, 0x31,0x1a,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2d,0x45,0x5c,0x72,0x8b, 0xa2,0xb8,0xa6,0x90,0x79,0x64,0x52,0x45,0x44,0x4c,0x5a,0x6b,0x7c,0x98,0xaf, 0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x19,0x32,0x4a,0x63,0x79,0x95,0xac,0xb1,0x9a,0x81,0x68,0x50,0x38,0x20,0x08, 0x00,0x00,0x00,0x0b,0x23,0x3c,0x53,0x6b,0x84,0x9d,0xb5,0xaa,0x92,0x77,0x60, 0x47,0x30,0x16,0x00,0x00,0x00,0x16,0x30,0x49,0x60,0x79,0x93,0xa5,0x8b,0x72, 0x5a,0x41,0x53,0x6a,0x84,0x9b,0xa2,0x8b,0x72,0x5b,0x46,0x43,0x5b,0x73,0x8d, 0xa5,0x97,0x7c,0x65,0x4d,0x35,0x3d,0x56,0x6d,0x88,0xa0,0x93,0x79,0x60,0x49, 0x30,0x16,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d, 0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x49,0x61,0x79,0x92, 0xa8,0x9a,0x82,0x6a,0x59,0x56,0x56,0x56,0x53,0x53,0x53,0x53,0x50,0x4c,0x46, 0x3e,0x33,0x28,0x1a,0x0a,0x00,0x00,0x00,0x01,0x19,0x31,0x48,0x60,0x77,0x90, 0xa7,0xb7,0xa0,0x89,0x72,0x5b,0x46,0x31,0x28,0x35,0x4c,0x65,0x7c,0x98,0xaf, 0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x49,0x35,0x29,0x2e,0x45,0x5b,0x72,0x8a,0xa1,0xb9, 0xa5,0x8e,0x74,0x5d,0x46,0x2f,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1c,0x31,0x48,0x5e,0x74,0x8c,0xa3,0x9f,0x89,0x8d,0xa3,0x9b,0x86,0x6d,0x56, 0x40,0x29,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x3e,0x55,0x6c, 0x84,0x9a,0xaf,0xb0,0x9b,0x88,0x74,0x65,0x5d,0x5d,0x63,0x6e,0x7b,0x8f,0x9f, 0xb4,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x17,0x2f,0x47,0x5f,0x77,0x90,0xa8,0xb4,0x9d,0x86,0x6d,0x55,0x3d,0x25, 0x0e,0x00,0x00,0x00,0x11,0x29,0x40,0x58,0x6f,0x89,0xa0,0xb8,0xa6,0x8e,0x74, 0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x19,0x31,0x49,0x63,0x79,0x95,0xa2,0x89, 0x6f,0x56,0x3f,0x58,0x70,0x89,0xa1,0x9c,0x86,0x6b,0x53,0x3c,0x47,0x60,0x77, 0x90,0xaa,0x92,0x77,0x60,0x48,0x30,0x43,0x5b,0x72,0x8b,0xa3,0x8f,0x74,0x5d, 0x45,0x2d,0x14,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86, 0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x49,0x63,0x79, 0x93,0xaa,0xa0,0x8a,0x77,0x6f,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6a,0x68,0x63, 0x5d,0x53,0x49,0x3b,0x2c,0x1a,0x09,0x00,0x00,0x04,0x1c,0x34,0x4c,0x63,0x79, 0x93,0xac,0xb2,0x9b,0x84,0x6a,0x53,0x3c,0x25,0x1e,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x26,0x3f,0x56,0x6d,0x86,0x9d, 0xb5,0xaa,0x91,0x77,0x60,0x49,0x31,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x13,0x29,0x40,0x55,0x6c,0x84,0x9a,0xab,0x9f,0xa0,0xaa,0x93,0x7c,0x65, 0x4f,0x38,0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x37,0x4d, 0x63,0x79,0x90,0xa4,0xb8,0xaa,0x98,0x88,0x7c,0x74,0x74,0x79,0x84,0x91,0x9f, 0xb1,0xc1,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x13,0x2b,0x44,0x5b,0x72,0x8b,0xa3,0xba,0xa2,0x8b,0x72,0x5b,0x44, 0x2e,0x17,0x02,0x00,0x05,0x19,0x31,0x47,0x5e,0x75,0x8e,0xa5,0xb7,0xa0,0x89, 0x6f,0x58,0x40,0x29,0x10,0x00,0x00,0x02,0x19,0x32,0x4b,0x63,0x7c,0x96,0xa2, 0x89,0x6d,0x56,0x42,0x5b,0x72,0x8d,0xa5,0x9a,0x81,0x67,0x4e,0x37,0x4b,0x64, 0x7c,0x95,0xa4,0x8c,0x74,0x5b,0x44,0x36,0x4c,0x62,0x79,0x91,0xa0,0x89,0x70, 0x58,0x41,0x28,0x10,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1,0x9a, 0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x02,0x19,0x30,0x48,0x60, 0x76,0x8e,0xa3,0xac,0x9b,0x90,0x89,0x89,0x86,0x86,0x86,0x86,0x86,0x86,0x81, 0x7b,0x74,0x6a,0x5d,0x4e,0x3d,0x2a,0x16,0x02,0x00,0x07,0x1f,0x37,0x4e,0x65, 0x7c,0x97,0xaf,0xb1,0x98,0x81,0x68,0x4f,0x38,0x20,0x1e,0x35,0x4c,0x65,0x7c, 0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x23,0x3b,0x53,0x6a,0x84, 0x9d,0xb4,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0a,0x20,0x37,0x4c,0x63,0x79,0x91,0xa7,0xb7,0xb8,0xa3,0x8b,0x74, 0x5d,0x47,0x30,0x19,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2d, 0x43,0x58,0x6d,0x82,0x96,0xa8,0xb7,0xaa,0x9c,0x93,0x90,0x8e,0x91,0x9a,0xa1, 0x96,0x9f,0xb2,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0e,0x26,0x3e,0x55,0x6d,0x86,0x9c,0xb4,0xa9,0x92,0x79,0x64, 0x4e,0x39,0x24,0x13,0x0c,0x15,0x26,0x3b,0x51,0x67,0x7c,0x95,0xac,0xb0,0x99, 0x82,0x6a,0x52,0x3b,0x23,0x0b,0x00,0x00,0x02,0x19,0x32,0x4c,0x63,0x7c,0x98, 0xa0,0x89,0x6d,0x56,0x42,0x5b,0x74,0x8e,0xa7,0x98,0x81,0x65,0x4e,0x40,0x52, 0x68,0x81,0x99,0xa0,0x89,0x6e,0x56,0x3e,0x43,0x58,0x6d,0x84,0x9a,0x98,0x81, 0x69,0x51,0x3a,0x23,0x0b,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf,0xb1, 0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x41, 0x58,0x6c,0x82,0x93,0xa2,0xaf,0xa6,0xa1,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x9d, 0x98,0x93,0x8b,0x81,0x70,0x5e,0x4b,0x36,0x21,0x0b,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xaf,0x98,0x7c,0x65,0x4e,0x36,0x1e,0x1e,0x35,0x4c,0x65, 0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x22,0x3a,0x51,0x6a, 0x84,0x9a,0xb4,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x17,0x2e,0x43,0x5a,0x70,0x88,0x9e,0xb4,0xb1,0x9b,0x84, 0x6c,0x55,0x3f,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x22,0x38,0x4c,0x60,0x72,0x86,0x95,0xa3,0xad,0xb3,0xab,0xa7,0xa7,0xa8,0x9c, 0x8f,0x7c,0x93,0xac,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x08,0x20,0x37,0x4e,0x65,0x7c,0x93,0xaa,0xb2,0x9c,0x86, 0x6e,0x5a,0x47,0x35,0x29,0x26,0x2a,0x37,0x49,0x5d,0x72,0x89,0x9e,0xb5,0xa7, 0x91,0x79,0x62,0x4b,0x34,0x1c,0x05,0x00,0x00,0x00,0x19,0x32,0x4a,0x63,0x7c, 0x95,0xa2,0x89,0x6f,0x56,0x42,0x5b,0x72,0x8e,0xa5,0x9b,0x84,0x6a,0x53,0x54, 0x62,0x74,0x88,0x9e,0xa0,0x86,0x6c,0x53,0x49,0x55,0x67,0x79,0x90,0xa3,0x8d, 0x76,0x60,0x49,0x33,0x1b,0x04,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98,0xaf, 0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x00,0x15,0x28, 0x3b,0x4c,0x5e,0x70,0x81,0x98,0xa2,0x9d,0xa0,0xa2,0xa5,0xa5,0xa5,0xa5,0xa5, 0xa9,0xb1,0xab,0xa1,0x94,0x82,0x6c,0x57,0x41,0x2a,0x13,0x00,0x07,0x20,0x37, 0x50,0x68,0x81,0x98,0xb0,0xaf,0x98,0x81,0x65,0x4e,0x37,0x1e,0x1e,0x35,0x4c, 0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x23,0x3b,0x53, 0x6a,0x84,0x9d,0xb4,0xaa,0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x0a,0x0e,0x25,0x3a,0x51,0x67,0x7c,0x96,0xad,0xa9,0x93, 0x79,0x64,0x4d,0x37,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x17,0x2b,0x3e,0x50,0x62,0x72,0x82,0x8d,0x97,0x9d,0xa0,0xa0,0x9b,0x93, 0x88,0x79,0x79,0x94,0xac,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2f,0x46,0x5c,0x72,0x89,0xa0,0xb4,0xa6, 0x92,0x7c,0x69,0x58,0x4a,0x41,0x3e,0x41,0x4c,0x5a,0x6c,0x81,0x94,0xaa,0xb2, 0x9c,0x87,0x70,0x5a,0x43,0x2c,0x15,0x00,0x00,0x00,0x00,0x18,0x30,0x49,0x61, 0x79,0x93,0xa5,0x8b,0x72,0x5a,0x41,0x57,0x6f,0x89,0xa0,0xa2,0x8c,0x76,0x6a, 0x6a,0x75,0x87,0x98,0x9f,0xa0,0x89,0x71,0x61,0x60,0x69,0x77,0x8b,0x9d,0x96, 0x82,0x6b,0x56,0x3f,0x29,0x13,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81,0x98, 0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x0c,0x20, 0x36,0x4a,0x5c,0x6e,0x81,0x8f,0x9e,0x8f,0x84,0x89,0x8b,0x8b,0x8b,0x8b,0x8b, 0x8e,0x92,0x9b,0xab,0xb5,0xa3,0x8c,0x74,0x5e,0x47,0x30,0x18,0x00,0x06,0x1e, 0x36,0x4d,0x65,0x7c,0x95,0xaf,0xb1,0x98,0x81,0x68,0x51,0x3a,0x22,0x1e,0x35, 0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x27,0x3f, 0x56,0x6d,0x87,0x9e,0xb6,0xa8,0x90,0x77,0x60,0x47,0x30,0x18,0x00,0x00,0x00, 0x00,0x00,0x06,0x15,0x1e,0x23,0x22,0x26,0x3b,0x52,0x69,0x81,0x98,0xaf,0xa1, 0x8b,0x72,0x5c,0x45,0x2f,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x1c,0x2e,0x40,0x50,0x5f,0x6b,0x76,0x81,0x84,0x88,0x86,0x84, 0x7b,0x71,0x65,0x7c,0x95,0xad,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x26,0x3b,0x51,0x67,0x7c,0x92,0xa6, 0xb3,0xa0,0x8d,0x7b,0x6c,0x60,0x59,0x56,0x5a,0x62,0x6d,0x7c,0x90,0xa3,0xb6, 0xa4,0x90,0x79,0x64,0x4f,0x39,0x23,0x0c,0x00,0x00,0x00,0x00,0x15,0x2d,0x46, 0x5d,0x77,0x90,0xa8,0x90,0x76,0x5f,0x47,0x51,0x68,0x81,0x96,0xab,0x9b,0x8b, 0x84,0x84,0x8c,0x9a,0x8b,0x8a,0xa1,0x94,0x82,0x77,0x77,0x81,0x8c,0x9b,0x9a, 0x88,0x73,0x5f,0x4a,0x34,0x1f,0x08,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a,0x81, 0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x16,0x00,0x00,0x00,0x00,0x14, 0x2a,0x41,0x57,0x6b,0x81,0x92,0xa2,0x90,0x7b,0x6c,0x6f,0x6f,0x6f,0x6f,0x6f, 0x72,0x74,0x79,0x89,0x9c,0xb2,0xaa,0x93,0x79,0x63,0x49,0x32,0x1b,0x00,0x04, 0x1b,0x34,0x4b,0x63,0x79,0x93,0xaa,0xb4,0x9d,0x86,0x6d,0x56,0x3f,0x28,0x21, 0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x1f,0x30, 0x46,0x5c,0x73,0x8b,0xa2,0xba,0xa3,0x8b,0x73,0x5c,0x44,0x2d,0x15,0x00,0x00, 0x00,0x00,0x04,0x18,0x28,0x34,0x3a,0x39,0x36,0x47,0x5b,0x71,0x89,0x9f,0xae, 0x98,0x82,0x6a,0x54,0x3d,0x27,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x1e,0x2e,0x3d,0x4a,0x56,0x5f,0x66,0x6a,0x6d,0x6d, 0x6a,0x64,0x5b,0x65,0x7c,0x96,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x30,0x46,0x5a,0x6e,0x84, 0x96,0xaa,0xb1,0x9f,0x8f,0x82,0x77,0x72,0x6f,0x72,0x79,0x84,0x92,0xa1,0xb3, 0xa8,0x96,0x82,0x6d,0x58,0x43,0x2e,0x18,0x03,0x00,0x00,0x00,0x00,0x12,0x2a, 0x42,0x5a,0x72,0x8b,0xa2,0x96,0x7c,0x66,0x4f,0x48,0x5f,0x73,0x89,0x9a,0xa6, 0xa2,0x9d,0x9d,0x9a,0x8b,0x79,0x82,0x98,0xa5,0x99,0x93,0x93,0x97,0xa1,0x96, 0x88,0x75,0x63,0x51,0x3c,0x28,0x13,0x00,0x00,0x00,0x11,0x28,0x3f,0x53,0x6a, 0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x42,0x2b,0x1f,0x0f,0x00,0x00,0x03, 0x1a,0x31,0x48,0x5f,0x75,0x8c,0xa1,0x9d,0x86,0x6e,0x5a,0x56,0x58,0x58,0x58, 0x58,0x58,0x5b,0x65,0x7c,0x95,0xac,0xac,0x93,0x79,0x63,0x49,0x32,0x1b,0x00, 0x00,0x18,0x30,0x47,0x5f,0x75,0x8e,0xa5,0xba,0xa2,0x8b,0x74,0x5e,0x49,0x39, 0x37,0x42,0x50,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x3b,0x37, 0x40,0x51,0x65,0x7b,0x93,0xa9,0xb3,0x9c,0x86,0x6d,0x56,0x40,0x28,0x10,0x00, 0x00,0x00,0x00,0x10,0x26,0x3a,0x4a,0x53,0x51,0x4e,0x57,0x69,0x7c,0x92,0xa7, 0xa4,0x8f,0x77,0x61,0x4b,0x35,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1b,0x29,0x36,0x40,0x49,0x4f,0x53,0x55, 0x55,0x53,0x4d,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x1b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x24,0x39,0x4d,0x60, 0x73,0x86,0x98,0xa6,0xb2,0xa4,0x99,0x90,0x8b,0x8b,0x8c,0x92,0x9a,0xa6,0xb3, 0xa4,0x96,0x84,0x71,0x5e,0x4a,0x37,0x22,0x0d,0x00,0x00,0x00,0x00,0x00,0x0c, 0x24,0x3d,0x54,0x6c,0x86,0x9b,0x9d,0x87,0x6e,0x59,0x43,0x51,0x65,0x75,0x86, 0x90,0x95,0x95,0x90,0x86,0x77,0x67,0x74,0x88,0x94,0x9b,0xa0,0x9d,0x97,0x8f, 0x82,0x74,0x63,0x53,0x41,0x2e,0x1a,0x06,0x00,0x00,0x00,0x11,0x28,0x3f,0x53, 0x6a,0x81,0x98,0xaf,0xb1,0x9a,0x86,0x6d,0x56,0x4b,0x3f,0x31,0x1e,0x0b,0x00, 0x05,0x1e,0x35,0x4c,0x65,0x7c,0x94,0xac,0x9a,0x84,0x6a,0x53,0x43,0x3f,0x3f, 0x3f,0x3f,0x46,0x53,0x66,0x7c,0x95,0xac,0xa6,0x8f,0x77,0x60,0x49,0x31,0x1a, 0x00,0x00,0x13,0x2b,0x41,0x59,0x70,0x88,0x9f,0xb4,0xaa,0x95,0x81,0x6b,0x5a, 0x51,0x50,0x57,0x63,0x72,0x86,0x99,0xb0,0xac,0x95,0x79,0x63,0x49,0x32,0x1b, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x68,0x5b,0x53, 0x4e,0x54,0x62,0x72,0x88,0x9c,0xb2,0xaa,0x93,0x7c,0x66,0x50,0x39,0x22,0x0b, 0x00,0x00,0x00,0x01,0x18,0x30,0x46,0x5c,0x6a,0x67,0x65,0x6b,0x79,0x8b,0x9f, 0xae,0x9a,0x84,0x6d,0x58,0x42,0x2c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x15,0x1f,0x29,0x31,0x37,0x3a, 0x3c,0x3c,0x3a,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x32, 0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x16,0x2b,0x3e, 0x50,0x62,0x72,0x84,0x92,0x9e,0xa9,0xb0,0xa8,0xa5,0xa5,0xa5,0xa9,0xb0,0xa8, 0x9d,0x90,0x82,0x70,0x60,0x4e,0x3c,0x29,0x15,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x1f,0x36,0x4d,0x64,0x7b,0x93,0xa7,0x91,0x79,0x64,0x4f,0x41,0x53,0x63, 0x6e,0x77,0x7c,0x7c,0x77,0x6e,0x63,0x55,0x63,0x72,0x7c,0x84,0x86,0x86,0x81, 0x76,0x6c,0x5f,0x52,0x41,0x2f,0x1f,0x0b,0x00,0x00,0x00,0x00,0x11,0x28,0x3e, 0x53,0x69,0x81,0x95,0xac,0xb1,0x9b,0x86,0x6f,0x65,0x62,0x4f,0x3c,0x28,0x13, 0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x95,0xad,0x9f,0x89,0x72,0x63,0x5a,0x56, 0x53,0x53,0x56,0x5c,0x65,0x74,0x88,0x9c,0xaf,0x9b,0x87,0x70,0x5a,0x43,0x2d, 0x15,0x00,0x00,0x0d,0x24,0x3b,0x51,0x68,0x81,0x95,0xaa,0xb5,0xa1,0x8f,0x7b, 0x6f,0x68,0x68,0x6d,0x77,0x86,0x96,0xa6,0xb9,0xac,0x95,0x79,0x63,0x49,0x32, 0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb0,0x9a,0x8b,0x7b,0x71, 0x6a,0x66,0x6a,0x75,0x84,0x96,0xa9,0xb3,0x9e,0x8a,0x73,0x5d,0x47,0x31,0x1b, 0x04,0x00,0x00,0x00,0x07,0x1e,0x36,0x4d,0x64,0x7b,0x81,0x81,0x84,0x8d,0x9d, 0xad,0xa1,0x8c,0x76,0x62,0x4c,0x38,0x21,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x12,0x19,0x1f, 0x23,0x23,0x23,0x22,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x49, 0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1b, 0x2e,0x40,0x50,0x60,0x6e,0x7c,0x89,0x92,0x99,0x9f,0xab,0xbb,0xb4,0xa3,0x98, 0x91,0x88,0x79,0x6d,0x5e,0x4e,0x3e,0x2c,0x23,0x20,0x16,0x09,0x00,0x00,0x00, 0x00,0x00,0x17,0x2e,0x45,0x5b,0x72,0x89,0x9e,0x9c,0x88,0x72,0x5e,0x4c,0x40, 0x4e,0x59,0x60,0x63,0x63,0x60,0x58,0x4e,0x41,0x50,0x5c,0x65,0x6a,0x6d,0x6a, 0x67,0x60,0x56,0x4b,0x3e,0x2f,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x25, 0x3a,0x50,0x65,0x7b,0x93,0xa7,0xb6,0xa2,0x8f,0x81,0x81,0x6d,0x58,0x43,0x2d, 0x18,0x00,0x04,0x1b,0x33,0x49,0x62,0x77,0x90,0xa5,0xa9,0x96,0x86,0x79,0x72, 0x6d,0x6a,0x6b,0x6e,0x73,0x7c,0x89,0x98,0xaa,0x9f,0x8d,0x79,0x64,0x50,0x3a, 0x24,0x0e,0x00,0x00,0x06,0x1c,0x32,0x49,0x5f,0x74,0x8a,0x9e,0xb1,0xb1,0x9f, 0x91,0x88,0x82,0x81,0x86,0x8e,0x9a,0x9e,0xa0,0xad,0xac,0x95,0x79,0x63,0x49, 0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xab,0xa0,0x9e,0x92, 0x89,0x84,0x81,0x84,0x8b,0x98,0xa6,0xb5,0xa4,0x90,0x7c,0x68,0x52,0x3d,0x27, 0x12,0x00,0x00,0x00,0x00,0x0c,0x23,0x3b,0x52,0x6a,0x82,0x98,0x98,0x9b,0xa3, 0xaf,0xa2,0x90,0x7c,0x6a,0x56,0x42,0x2d,0x17,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x07,0x0a,0x0c,0x0c,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63, 0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0b,0x1c,0x2e,0x3e,0x4c,0x5a,0x67,0x71,0x79,0x81,0x89,0x9e,0xb3,0xac,0x96, 0x81,0x77,0x70,0x64,0x58,0x4b,0x3c,0x33,0x39,0x3c,0x38,0x2b,0x1c,0x08,0x00, 0x00,0x00,0x00,0x0e,0x25,0x3a,0x51,0x67,0x7c,0x92,0xa7,0x95,0x82,0x6e,0x5e, 0x4f,0x41,0x41,0x48,0x4c,0x4c,0x48,0x41,0x38,0x2d,0x3b,0x46,0x4e,0x53,0x53, 0x53,0x4f,0x49,0x40,0x35,0x29,0x1b,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0b, 0x21,0x36,0x4c,0x61,0x75,0x8b,0xa0,0xb4,0xaf,0xa1,0x98,0x89,0x72,0x5c,0x47, 0x31,0x1c,0x00,0x00,0x16,0x2d,0x43,0x59,0x6e,0x84,0x96,0xa4,0xa8,0x9a,0x91, 0x8b,0x86,0x86,0x86,0x87,0x8b,0x93,0x9d,0xa6,0x9a,0x8d,0x7b,0x6b,0x58,0x44, 0x2f,0x1b,0x05,0x00,0x00,0x00,0x14,0x29,0x3e,0x53,0x68,0x7b,0x8f,0xa0,0xae, 0xb2,0xa6,0x9e,0x9a,0x98,0x9c,0xa4,0x98,0x89,0x8d,0xa3,0xac,0x95,0x79,0x63, 0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0x9e,0x8a,0x90, 0x9f,0xa0,0x9a,0x98,0x9a,0xa1,0xac,0xb1,0xa3,0x94,0x82,0x6e,0x5b,0x47,0x32, 0x1d,0x07,0x00,0x00,0x00,0x00,0x12,0x29,0x40,0x58,0x6f,0x88,0x9f,0xac,0xaa, 0xa6,0x9c,0x8f,0x81,0x6d,0x5b,0x49,0x34,0x21,0x0c,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xac,0xac,0x95,0x79, 0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0a,0x1a,0x2a,0x38,0x45,0x50,0x5a,0x62,0x67,0x7b,0x92,0xa6,0xb1, 0x9b,0x88,0x74,0x65,0x5a,0x51,0x4d,0x4b,0x4c,0x51,0x53,0x4f,0x3e,0x2a,0x15, 0x00,0x00,0x00,0x00,0x04,0x19,0x30,0x45,0x5a,0x6e,0x84,0x98,0xa4,0x92,0x81, 0x70,0x62,0x57,0x4c,0x44,0x3e,0x3a,0x37,0x39,0x3b,0x40,0x48,0x50,0x5a,0x60, 0x55,0x42,0x37,0x31,0x29,0x1f,0x14,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x1b,0x30,0x45,0x59,0x6d,0x82,0x94,0xa3,0xab,0xad,0xa2,0x8d,0x75,0x60, 0x4b,0x35,0x20,0x00,0x00,0x0f,0x24,0x39,0x4e,0x60,0x72,0x82,0x90,0x9a,0xa1, 0xa7,0xa2,0xa0,0x9d,0x9d,0xa0,0xa3,0xa0,0x99,0x90,0x86,0x77,0x69,0x59,0x48, 0x36,0x23,0x0f,0x00,0x00,0x00,0x00,0x09,0x1e,0x32,0x46,0x59,0x6b,0x7c,0x8d, 0x9a,0xa3,0xaa,0xad,0xac,0xa8,0x9e,0x92,0x86,0x75,0x88,0xa0,0xa2,0x95,0x79, 0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xa2,0x98,0x81, 0x7c,0x8c,0x99,0xa3,0xaa,0xae,0xab,0xa5,0x9c,0x90,0x82,0x70,0x5e,0x4c,0x39, 0x26,0x11,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5d,0x74,0x8d,0x93,0x95, 0x93,0x8f,0x87,0x79,0x6d,0x5c,0x4c,0x3a,0x27,0x13,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x95,0x95,0x95,0x95, 0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x15,0x22,0x2f,0x39,0x42,0x49,0x5a,0x70,0x84,0x98, 0xab,0xab,0x9a,0x89,0x7b,0x71,0x6a,0x65,0x64,0x65,0x69,0x6d,0x60,0x4b,0x35, 0x1c,0x05,0x00,0x00,0x00,0x00,0x0f,0x23,0x39,0x4d,0x61,0x74,0x89,0x9a,0xa4, 0x94,0x86,0x77,0x6c,0x63,0x5c,0x56,0x53,0x51,0x51,0x53,0x58,0x5f,0x67,0x71, 0x76,0x63,0x4c,0x36,0x1f,0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x13,0x27,0x3b,0x4f,0x62,0x72,0x84,0x8d,0x93,0x95,0x95,0x90,0x79, 0x65,0x4e,0x39,0x23,0x00,0x00,0x04,0x18,0x2c,0x3e,0x50,0x60,0x6e,0x79,0x84, 0x8b,0x90,0x93,0x94,0x95,0x93,0x92,0x8e,0x89,0x82,0x79,0x6e,0x63,0x56,0x48, 0x37,0x26,0x14,0x02,0x00,0x00,0x00,0x00,0x00,0x11,0x25,0x38,0x49,0x5b,0x6b, 0x77,0x84,0x8d,0x93,0x95,0x95,0x90,0x89,0x7c,0x70,0x6b,0x84,0x8b,0x8b,0x8b, 0x79,0x63,0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x8b,0x8b,0x8b, 0x7b,0x69,0x76,0x84,0x8d,0x93,0x95,0x93,0x8e,0x86,0x79,0x6d,0x5e,0x4e,0x3c, 0x2b,0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x15,0x2c,0x45,0x5b,0x6e,0x75,0x79, 0x79,0x79,0x75,0x6f,0x64,0x59,0x4a,0x3a,0x2a,0x18,0x06,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1e,0x35,0x4b,0x65,0x79,0x79,0x79,0x79, 0x79,0x77,0x62,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x18,0x22,0x2a,0x39,0x4d,0x61,0x74, 0x88,0x9a,0xaa,0xab,0x9d,0x92,0x8a,0x84,0x81,0x7c,0x81,0x84,0x84,0x6a,0x51, 0x3a,0x22,0x0b,0x00,0x00,0x00,0x00,0x02,0x17,0x2b,0x3e,0x52,0x63,0x75,0x88, 0x98,0xa6,0x9a,0x8f,0x84,0x79,0x73,0x6d,0x6a,0x68,0x6a,0x6b,0x6f,0x75,0x7c, 0x88,0x84,0x6c,0x56,0x40,0x29,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x09,0x1c,0x30,0x41,0x52,0x62,0x6d,0x74,0x79,0x79,0x79,0x77, 0x72,0x62,0x4d,0x39,0x22,0x00,0x00,0x00,0x0b,0x1c,0x2e,0x3e,0x4c,0x59,0x63, 0x6b,0x72,0x75,0x79,0x79,0x79,0x79,0x77,0x74,0x70,0x6a,0x62,0x59,0x4e,0x42, 0x35,0x26,0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x16,0x28,0x38,0x48, 0x56,0x62,0x6d,0x74,0x79,0x79,0x79,0x77,0x72,0x68,0x5c,0x65,0x6f,0x6f,0x6f, 0x6f,0x6e,0x5f,0x47,0x31,0x1a,0x00,0x06,0x1f,0x36,0x4e,0x63,0x6f,0x6f,0x6f, 0x6f,0x6e,0x5d,0x62,0x6c,0x74,0x79,0x79,0x79,0x75,0x6e,0x64,0x59,0x4c,0x3c, 0x2c,0x1a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x39,0x4c,0x58,0x5e, 0x62,0x63,0x61,0x5e,0x58,0x4f,0x43,0x37,0x28,0x18,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x2f,0x45,0x57,0x62,0x63,0x63, 0x63,0x63,0x62,0x55,0x42,0x2c,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0b,0x17,0x2b,0x3e,0x52, 0x63,0x75,0x88,0x96,0xa3,0xaf,0xa9,0xa1,0x9b,0x98,0x98,0x98,0x9b,0x89,0x6f, 0x58,0x40,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x2f,0x41,0x53,0x64, 0x74,0x84,0x92,0x9d,0xa4,0x9b,0x93,0x8c,0x88,0x84,0x84,0x84,0x86,0x89,0x8e, 0x96,0x9e,0x8e,0x75,0x60,0x49,0x31,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x10,0x21,0x31,0x41,0x4c,0x58,0x5d,0x62,0x63,0x63, 0x60,0x5b,0x51,0x43,0x30,0x1b,0x00,0x00,0x00,0x00,0x0c,0x1c,0x2b,0x38,0x42, 0x4c,0x54,0x5a,0x5d,0x60,0x62,0x63,0x60,0x60,0x5d,0x58,0x52,0x4b,0x42,0x38, 0x2d,0x21,0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x16,0x26, 0x35,0x42,0x4c,0x56,0x5d,0x61,0x63,0x63,0x60,0x5a,0x52,0x47,0x51,0x56,0x56, 0x56,0x56,0x56,0x4d,0x3b,0x28,0x13,0x00,0x00,0x18,0x2d,0x41,0x50,0x56,0x56, 0x56,0x56,0x56,0x4c,0x4c,0x56,0x5d,0x62,0x63,0x63,0x5e,0x58,0x4f,0x45,0x38, 0x2a,0x1a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x19,0x2a,0x39,0x41, 0x48,0x49,0x49,0x49,0x46,0x41,0x39,0x2f,0x23,0x16,0x06,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x24,0x35,0x43,0x49,0x49, 0x49,0x49,0x49,0x49,0x42,0x33,0x21,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x2f, 0x41,0x52,0x63,0x72,0x82,0x8f,0x99,0xa1,0xa7,0xac,0xac,0xad,0xac,0xa5,0x8e, 0x74,0x5d,0x46,0x2e,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f,0x2f,0x41, 0x52,0x61,0x6e,0x7b,0x88,0x91,0x99,0xa0,0xa4,0xa0,0x9d,0x9d,0x9d,0x9d,0xa2, 0xa0,0x98,0x90,0x86,0x79,0x62,0x4b,0x32,0x19,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x1f,0x2d,0x38,0x41,0x47,0x49,0x49, 0x49,0x49,0x45,0x3d,0x31,0x23,0x11,0x00,0x00,0x00,0x00,0x00,0x09,0x17,0x22, 0x2d,0x36,0x3d,0x42,0x46,0x49,0x49,0x49,0x49,0x47,0x45,0x41,0x3b,0x35,0x2c, 0x22,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x13,0x21,0x2d,0x37,0x40,0x46,0x49,0x49,0x49,0x49,0x43,0x3c,0x31,0x3c,0x3f, 0x3f,0x3f,0x3f,0x3f,0x39,0x2c,0x1b,0x07,0x00,0x00,0x0d,0x1f,0x30,0x3b,0x3f, 0x3f,0x3f,0x3f,0x3f,0x38,0x37,0x40,0x46,0x49,0x49,0x49,0x46,0x41,0x39,0x2f, 0x23,0x16,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x16,0x22, 0x29,0x2f,0x30,0x32,0x30,0x2f,0x29,0x22,0x19,0x0e,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x21,0x2c,0x30, 0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d, 0x1e,0x2f,0x40,0x50,0x5f,0x6b,0x77,0x81,0x89,0x8e,0x93,0x93,0x95,0x93,0x90, 0x8a,0x79,0x63,0x49,0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f, 0x2f,0x3f,0x4c,0x5a,0x65,0x71,0x79,0x84,0x89,0x8e,0x92,0x94,0x95,0x93,0x92, 0x8e,0x89,0x81,0x79,0x6e,0x63,0x57,0x43,0x2c,0x15,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x22,0x29,0x2f,0x32, 0x32,0x32,0x30,0x2d,0x26,0x1c,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x0d,0x17,0x1e,0x25,0x2a,0x2d,0x30,0x30,0x30,0x30,0x2f,0x2d,0x29,0x23,0x1c, 0x15,0x0c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x17,0x21,0x28,0x2e,0x32,0x32,0x32,0x31,0x2c,0x24,0x1c,0x23, 0x26,0x26,0x26,0x26,0x25,0x21,0x17,0x09,0x00,0x00,0x00,0x00,0x0d,0x1b,0x23, 0x26,0x26,0x26,0x26,0x25,0x21,0x20,0x28,0x2e,0x32,0x32,0x32,0x2f,0x29,0x22, 0x19,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, 0x0c,0x13,0x17,0x19,0x19,0x19,0x17,0x12,0x0c,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x15, 0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0d,0x1e,0x2d,0x3c,0x49,0x56,0x60,0x69,0x6f,0x74,0x77,0x79,0x79,0x79, 0x74,0x70,0x69,0x5a,0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0d,0x1c,0x2b,0x38,0x45,0x50,0x5a,0x62,0x6a,0x6f,0x74,0x77,0x79,0x79,0x79, 0x77,0x74,0x6f,0x69,0x61,0x58,0x4e,0x42,0x35,0x21,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x12,0x18, 0x19,0x19,0x19,0x19,0x15,0x10,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x0e,0x12,0x16,0x17,0x19,0x19,0x19,0x16,0x15,0x11,0x0c, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x0a,0x11,0x16,0x19,0x19,0x19,0x19,0x14,0x0e,0x06, 0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x06, 0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x0a,0x11,0x17,0x19,0x19,0x19,0x17,0x13, 0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0a,0x1a,0x27,0x33,0x3f,0x49,0x51,0x57,0x5c,0x5e,0x60,0x60, 0x60,0x5d,0x58,0x51,0x48,0x37,0x22,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x16,0x23,0x2f,0x39,0x43,0x4b,0x52,0x58,0x5c,0x5f,0x60,0x60, 0x60,0x5f,0x5c,0x57,0x51,0x49,0x42,0x37,0x2d,0x21,0x11,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x12,0x1e,0x29,0x31,0x39,0x3f,0x44,0x46,0x47, 0x47,0x47,0x44,0x40,0x39,0x31,0x24,0x14,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x0e,0x19,0x23,0x2d,0x34,0x3b,0x40,0x44,0x47,0x49, 0x49,0x49,0x47,0x44,0x40,0x3a,0x33,0x2b,0x21,0x17,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x12,0x1a,0x21,0x27,0x2b,0x2d, 0x2f,0x30,0x2d,0x2b,0x28,0x22,0x1a,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x15,0x1c,0x23,0x28,0x2c,0x2f, 0x30,0x30,0x30,0x2e,0x2c,0x27,0x23,0x1c,0x14,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x09,0x0e,0x13, 0x14,0x16,0x16,0x15,0x13,0x0f,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0b,0x10,0x14, 0x16,0x17,0x19,0x17,0x16,0x13,0x0f,0x0a,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05, 0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x05,0x05,0x05,0x05,0x05,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x04,0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x05,0x05,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0c,0x0f, 0x0f,0x0f,0x0f,0x0f,0x0c,0x05,0x0d,0x14,0x18,0x1b,0x1b,0x19,0x16,0x11,0x0a, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x1b,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1e,0x19,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e, 0x14,0x18,0x1b,0x1b,0x18,0x14,0x0d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x14,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x11,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0x16,0x19,0x19,0x19,0x18,0x13,0x0e, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x13, 0x18,0x1b,0x1b,0x1b,0x19,0x16,0x10,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0e,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x16,0x0b,0x00, 0x00,0x00,0x00,0x00,0x09,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x0e,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0f,0x14, 0x18,0x1b,0x1e,0x1e,0x1b,0x18,0x14,0x0e,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x0c,0x12,0x17,0x1b,0x1d,0x1e,0x1d,0x1a,0x16,0x11,0x0b,0x03,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1b,0x23, 0x26,0x26,0x26,0x26,0x26,0x22,0x1b,0x24,0x2b,0x30,0x32,0x32,0x32,0x2e,0x29, 0x21,0x17,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x28,0x31, 0x35,0x35,0x35,0x35,0x35,0x35,0x2f,0x24,0x15,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x1a, 0x24,0x2d,0x31,0x34,0x34,0x31,0x2c,0x24,0x19,0x0d,0x00,0x00,0x00,0x00,0x07, 0x1a,0x28,0x31,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x25,0x15,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0a,0x16,0x21,0x29,0x2e,0x32,0x32,0x32,0x30,0x2c, 0x26,0x1e,0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x18,0x22, 0x2a,0x2f,0x32,0x32,0x32,0x32,0x2d,0x28,0x21,0x17,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x13,0x24,0x30,0x35,0x35,0x35,0x35,0x35,0x34,0x2d,0x1f, 0x0d,0x00,0x00,0x00,0x0b,0x1c,0x2a,0x33,0x35,0x35,0x35,0x35,0x35,0x2f,0x22, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x15,0x1e,0x26, 0x2c,0x31,0x34,0x37,0x37,0x33,0x30,0x2b,0x25,0x1d,0x15,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x11, 0x1b,0x24,0x2a,0x2f,0x32,0x36,0x37,0x35,0x32,0x2f,0x29,0x22,0x19,0x0f,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f,0x30, 0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3a,0x31,0x3b,0x43,0x49,0x4c,0x4c,0x4a,0x46, 0x40,0x38,0x2d,0x21,0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2b,0x3c, 0x49,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x45,0x37,0x24,0x0f,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x11,0x21, 0x2e,0x3a,0x43,0x49,0x4c,0x4c,0x49,0x42,0x39,0x2d,0x1f,0x11,0x00,0x00,0x00, 0x15,0x2b,0x3c,0x49,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x38,0x25,0x10,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2c,0x37,0x41,0x46,0x4a,0x4c,0x4b,0x49, 0x44,0x3d,0x35,0x28,0x16,0x02,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x23,0x2f, 0x39,0x41,0x47,0x4c,0x4c,0x4c,0x49,0x45,0x40,0x38,0x2d,0x21,0x13,0x04,0x00, 0x00,0x00,0x00,0x00,0x0d,0x21,0x35,0x45,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x42, 0x31,0x1c,0x06,0x00,0x01,0x18,0x2d,0x3f,0x4a,0x4c,0x4c,0x4c,0x4c,0x4b,0x45, 0x35,0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x13,0x20,0x2c,0x35, 0x3d,0x45,0x49,0x4c,0x4e,0x4e,0x4c,0x49,0x43,0x3d,0x35,0x2b,0x20,0x15,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x1d, 0x28,0x32,0x3b,0x42,0x48,0x4b,0x4d,0x4e,0x4c,0x4b,0x47,0x41,0x39,0x30,0x26, 0x1a,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x2e, 0x43,0x52,0x58,0x58,0x58,0x58,0x58,0x51,0x47,0x51,0x5a,0x60,0x63,0x63,0x62, 0x5d,0x57,0x4e,0x42,0x35,0x26,0x16,0x04,0x00,0x00,0x00,0x00,0x07,0x1e,0x36, 0x4b,0x5e,0x68,0x68,0x68,0x68,0x68,0x66,0x58,0x44,0x2f,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x21, 0x31,0x41,0x4f,0x59,0x62,0x65,0x65,0x61,0x59,0x4d,0x40,0x30,0x1f,0x0e,0x00, 0x07,0x1e,0x36,0x4b,0x5e,0x68,0x68,0x68,0x68,0x68,0x67,0x5a,0x47,0x31,0x19, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f,0x21,0x33,0x41,0x4e,0x58,0x5f,0x63,0x65,0x63, 0x62,0x5d,0x55,0x4b,0x3a,0x25,0x0e,0x00,0x00,0x00,0x00,0x0b,0x1b,0x2a,0x38, 0x45,0x4f,0x58,0x5f,0x63,0x65,0x63,0x62,0x5d,0x56,0x4e,0x42,0x35,0x26,0x15, 0x04,0x00,0x00,0x00,0x00,0x15,0x2c,0x43,0x59,0x65,0x65,0x65,0x65,0x65,0x63, 0x53,0x3e,0x26,0x0e,0x00,0x09,0x22,0x39,0x4f,0x61,0x65,0x65,0x65,0x65,0x65, 0x57,0x42,0x2b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x26,0x34,0x41, 0x4b,0x54,0x5c,0x61,0x65,0x68,0x67,0x64,0x60,0x5b,0x53,0x4b,0x41,0x36,0x2a, 0x1c,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x15,0x24, 0x31,0x3e,0x48,0x51,0x5a,0x60,0x63,0x65,0x68,0x65,0x63,0x5e,0x58,0x50,0x46, 0x3b,0x2f,0x21,0x12,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1f, 0x36,0x4e,0x63,0x6f,0x6f,0x6f,0x6f,0x6f,0x61,0x5c,0x68,0x71,0x77,0x7c,0x7c, 0x79,0x75,0x6d,0x63,0x57,0x48,0x38,0x26,0x15,0x02,0x00,0x00,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x81,0x81,0x81,0x81,0x79,0x60,0x49,0x32,0x1b,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1b, 0x2e,0x40,0x52,0x62,0x6e,0x79,0x7c,0x7c,0x77,0x6d,0x60,0x50,0x3f,0x2d,0x19, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x81,0x81,0x81,0x81,0x79,0x63,0x4c,0x35, 0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x33,0x45,0x55,0x64,0x70,0x77,0x7c,0x7c, 0x7c,0x79,0x74,0x6d,0x5d,0x46,0x2e,0x15,0x00,0x00,0x00,0x0b,0x1d,0x2e,0x3d, 0x4c,0x59,0x64,0x6f,0x76,0x7b,0x7c,0x7c,0x79,0x74,0x6d,0x63,0x57,0x49,0x38, 0x26,0x14,0x00,0x00,0x00,0x00,0x19,0x30,0x49,0x62,0x7b,0x7c,0x7c,0x7c,0x7c, 0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x7c,0x7c,0x7c,0x7c, 0x79,0x62,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x2a,0x3a,0x48, 0x56,0x61,0x6b,0x73,0x79,0x7c,0x81,0x81,0x7c,0x79,0x72,0x6a,0x61,0x57,0x4b, 0x3e,0x30,0x21,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x16,0x28, 0x38,0x46,0x53,0x5f,0x69,0x71,0x77,0x7b,0x81,0x81,0x7c,0x79,0x75,0x6f,0x67, 0x5c,0x51,0x43,0x35,0x25,0x15,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x8b,0x8b,0x8b,0x81,0x67,0x71,0x7c,0x89,0x91,0x95, 0x96,0x93,0x8e,0x86,0x79,0x6b,0x5b,0x49,0x37,0x24,0x10,0x00,0x00,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0x9a,0x9a,0x93,0x79,0x60,0x49,0x32,0x1b,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0x24,0x38,0x4b,0x5f,0x71,0x84,0x90,0x98,0x98,0x90,0x82,0x70,0x5d,0x49,0x35, 0x21,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0x9a,0x9a,0x95,0x79,0x63,0x4c, 0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x18,0x2e,0x43,0x56,0x69,0x79,0x88,0x91,0x96, 0x98,0x98,0x94,0x8e,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x07,0x1b,0x2e,0x40, 0x50,0x5f,0x6d,0x7b,0x87,0x8f,0x94,0x98,0x95,0x93,0x8d,0x86,0x79,0x6b,0x5b, 0x49,0x36,0x21,0x0d,0x00,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0x98,0x98, 0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0x98,0x98, 0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x02,0x16,0x29,0x3a,0x4c, 0x5c,0x6b,0x77,0x84,0x8c,0x93,0x96,0x98,0x98,0x96,0x91,0x8b,0x84,0x77,0x6c, 0x60,0x52,0x43,0x33,0x20,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x28, 0x3a,0x4a,0x5a,0x68,0x74,0x81,0x89,0x90,0x95,0x98,0x9a,0x98,0x95,0x8f,0x88, 0x7c,0x72,0x65,0x57,0x47,0x37,0x25,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xa5,0x9b,0x84,0x77,0x88,0x93,0x9f,0xa8, 0xad,0xaf,0xac,0xa5,0x9a,0x8d,0x7c,0x6b,0x59,0x45,0x31,0x1c,0x07,0x00,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49,0x32,0x1b, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x13,0x28,0x3c,0x51,0x66,0x7b,0x90,0xa3,0xaf,0xaf,0xa1,0x8e,0x79,0x65,0x4f, 0x3a,0x26,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63, 0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x50,0x65,0x79,0x8d,0x9d,0xa8, 0xaf,0xaa,0xaa,0xa5,0x8d,0x74,0x5b,0x43,0x2b,0x13,0x00,0x00,0x12,0x28,0x3d, 0x50,0x62,0x72,0x82,0x90,0x9c,0xa6,0xac,0xaf,0xae,0xaa,0xa4,0x9b,0x8f,0x7c, 0x6b,0x58,0x43,0x2e,0x17,0x01,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xaf, 0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7, 0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x0e,0x23,0x37,0x4a, 0x5c,0x6e,0x7c,0x8d,0x99,0xa3,0xaa,0xaf,0xb2,0xb1,0xad,0xa8,0xa2,0x99,0x8f, 0x82,0x74,0x65,0x55,0x42,0x2e,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x26, 0x39,0x4a,0x5c,0x6d,0x7c,0x8b,0x96,0xa0,0xa7,0xad,0xb0,0xb2,0xaf,0xac,0xa6, 0x9e,0x94,0x88,0x79,0x69,0x59,0x47,0x35,0x22,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xa0,0x8b,0x8d,0x9b,0xa3,0x9b, 0x98,0x98,0x9b,0xa4,0xb1,0xaf,0xa1,0x8f,0x79,0x67,0x52,0x3d,0x27,0x11,0x00, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49,0x32, 0x1b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x14,0x28,0x3c,0x51,0x68,0x7c,0x93,0xa7,0xb7,0xb7,0xa5,0x90,0x79,0x65, 0x51,0x3a,0x26,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79, 0x63,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2c,0x44,0x5b,0x72,0x89,0x9d,0xb1, 0xab,0x9b,0x92,0x90,0x93,0x87,0x6d,0x55,0x3d,0x25,0x0d,0x00,0x00,0x18,0x31, 0x48,0x5f,0x72,0x86,0x96,0xa5,0xa6,0x9d,0x98,0x95,0x98,0xa0,0xac,0xb0,0xa1, 0x8f,0x79,0x64,0x4e,0x38,0x21,0x09,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98, 0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e, 0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x04,0x19,0x30,0x45, 0x58,0x6d,0x81,0x92,0xa1,0xae,0xad,0xa3,0x9d,0x9b,0x9a,0x9d,0xa2,0xa9,0xaf, 0xa4,0x96,0x89,0x77,0x63,0x4b,0x34,0x1d,0x04,0x00,0x00,0x00,0x00,0x0b,0x20, 0x34,0x48,0x5b,0x6e,0x81,0x90,0x9f,0xac,0xb1,0xa7,0xa0,0x9d,0x9a,0x9d,0xa1, 0xa9,0xb3,0xaa,0x9d,0x8d,0x7b,0x6b,0x58,0x45,0x31,0x1c,0x08,0x00,0x00,0x00, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xad,0xa0,0xa2,0x99,0x8c, 0x84,0x81,0x81,0x86,0x8f,0x9d,0xaf,0xb1,0x9d,0x89,0x72,0x5c,0x47,0x31,0x1a, 0x04,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49, 0x32,0x1b,0x02,0x00,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x00,0x00,0x00, 0x00,0x00,0x11,0x26,0x3a,0x4e,0x62,0x75,0x89,0x98,0xa0,0x9f,0x96,0x88,0x74, 0x61,0x4d,0x38,0x24,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95, 0x79,0x63,0x4c,0x35,0x1b,0x12,0x14,0x14,0x12,0x0f,0x09,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x32,0x4b,0x62,0x79,0x93,0xaa, 0xaf,0x9a,0x88,0x79,0x75,0x79,0x81,0x67,0x4f,0x37,0x1f,0x07,0x00,0x00,0x19, 0x32,0x49,0x62,0x77,0x89,0x9a,0xa0,0x92,0x87,0x81,0x7c,0x81,0x8b,0x9a,0xab, 0xb1,0x9c,0x86,0x6e,0x57,0x40,0x28,0x10,0x00,0x00,0x19,0x30,0x49,0x63,0x7c, 0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72, 0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x0c,0x23,0x39, 0x50,0x64,0x79,0x8f,0xa2,0xb4,0xa6,0x98,0x8c,0x86,0x84,0x84,0x86,0x8b,0x93, 0x9d,0xa9,0x9b,0x89,0x74,0x61,0x4a,0x33,0x1b,0x04,0x00,0x00,0x00,0x00,0x17, 0x2d,0x42,0x56,0x6b,0x7c,0x92,0xa2,0xb3,0xaa,0x9b,0x91,0x89,0x84,0x84,0x84, 0x8a,0x93,0x9e,0xad,0xaf,0xa1,0x8f,0x79,0x67,0x53,0x3e,0x29,0x14,0x00,0x00, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb5,0xa2,0x93,0x84, 0x75,0x6c,0x65,0x66,0x6d,0x79,0x8d,0xa1,0xb6,0xa9,0x93,0x7c,0x66,0x4f,0x39, 0x22,0x0b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60, 0x49,0x32,0x1b,0x0c,0x17,0x1f,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,0x16,0x09, 0x00,0x00,0x00,0x0b,0x1f,0x32,0x45,0x58,0x67,0x75,0x82,0x87,0x86,0x81,0x75, 0x65,0x56,0x43,0x30,0x1d,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x95,0x79,0x63,0x4c,0x35,0x27,0x2b,0x2b,0x2b,0x2a,0x26,0x21,0x18,0x0e,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x37,0x50,0x68,0x81,0x9a, 0xb2,0xa7,0x8f,0x76,0x63,0x5d,0x62,0x68,0x5c,0x47,0x31,0x18,0x01,0x00,0x00, 0x14,0x2b,0x41,0x53,0x65,0x75,0x88,0x8d,0x7c,0x6f,0x66,0x65,0x69,0x75,0x89, 0x9e,0xb4,0xa5,0x8e,0x74,0x5d,0x46,0x2d,0x14,0x00,0x00,0x19,0x30,0x49,0x63, 0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58, 0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x13,0x2a, 0x41,0x58,0x6e,0x87,0x9b,0xb1,0xa9,0x95,0x84,0x75,0x6d,0x69,0x68,0x6c,0x72, 0x7c,0x88,0x94,0x8b,0x77,0x65,0x53,0x40,0x2c,0x15,0x00,0x00,0x00,0x00,0x0b, 0x21,0x37,0x4e,0x63,0x77,0x8d,0xa1,0xb4,0xa8,0x98,0x88,0x79,0x70,0x6a,0x68, 0x6a,0x72,0x7c,0x8b,0x9b,0xad,0xb1,0x9d,0x8a,0x74,0x60,0x4a,0x33,0x1e,0x08, 0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xad,0x93,0x81, 0x70,0x62,0x55,0x4e,0x4e,0x58,0x6a,0x81,0x95,0xac,0xb3,0x9c,0x86,0x6d,0x56, 0x3f,0x28,0x10,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79, 0x60,0x49,0x32,0x1b,0x1f,0x2d,0x35,0x37,0x37,0x37,0x37,0x37,0x37,0x34,0x2a, 0x1a,0x09,0x00,0x00,0x02,0x15,0x26,0x38,0x47,0x56,0x61,0x6a,0x6d,0x6d,0x6a, 0x61,0x55,0x47,0x36,0x25,0x13,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x79,0x63,0x4c,0x39,0x3f,0x43,0x44,0x44,0x43,0x3e,0x38,0x2e,0x23, 0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1b,0x26,0x39,0x51,0x6a,0x86, 0x9e,0xb6,0xa2,0x89,0x6f,0x56,0x44,0x4a,0x4e,0x48,0x38,0x25,0x0f,0x00,0x00, 0x00,0x0b,0x20,0x31,0x43,0x53,0x63,0x74,0x7b,0x69,0x5b,0x50,0x4c,0x53,0x67, 0x7c,0x96,0xad,0xaa,0x93,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x19,0x30,0x49, 0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f, 0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x18, 0x2f,0x47,0x5d,0x74,0x8e,0xa4,0xb5,0xa0,0x89,0x72,0x60,0x55,0x51,0x51,0x54, 0x5b,0x65,0x72,0x81,0x7b,0x69,0x56,0x43,0x31,0x1e,0x0b,0x00,0x00,0x00,0x00, 0x14,0x2b,0x42,0x58,0x6e,0x86,0x9b,0xaf,0xad,0x99,0x86,0x74,0x64,0x59,0x52, 0x50,0x53,0x5b,0x67,0x77,0x8b,0x9d,0xb2,0xac,0x98,0x82,0x6b,0x54,0x3e,0x28, 0x10,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x60,0x4e,0x40,0x36,0x37,0x49,0x5f,0x75,0x8e,0xa4,0xba,0xa3,0x8b,0x72, 0x5b,0x44,0x2d,0x15,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93, 0x79,0x60,0x49,0x32,0x1d,0x30,0x41,0x4d,0x51,0x51,0x51,0x51,0x51,0x51,0x4b, 0x3e,0x2a,0x16,0x01,0x00,0x00,0x10,0x22,0x33,0x43,0x4c,0x4e,0x51,0x53,0x53, 0x51,0x4e,0x4b,0x41,0x31,0x20,0x0e,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x79,0x63,0x4c,0x50,0x57,0x5b,0x5d,0x5d,0x5b,0x56,0x4f,0x45, 0x38,0x28,0x18,0x07,0x00,0x00,0x00,0x00,0x08,0x1d,0x2d,0x3b,0x44,0x53,0x6d, 0x86,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x47,0x47,0x43,0x36,0x25,0x15,0x03,0x00, 0x00,0x00,0x00,0x0f,0x20,0x31,0x41,0x52,0x61,0x66,0x57,0x47,0x39,0x34,0x47, 0x60,0x77,0x93,0xaa,0xac,0x94,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x19,0x30, 0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26, 0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x02, 0x19,0x30,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9a,0x84,0x6a,0x53,0x3f,0x38,0x38, 0x3d,0x45,0x50,0x5e,0x6b,0x6b,0x5a,0x47,0x34,0x21,0x0f,0x00,0x00,0x00,0x00, 0x05,0x1c,0x34,0x4a,0x62,0x79,0x90,0xa6,0xb6,0xa1,0x8b,0x75,0x62,0x51,0x43, 0x3a,0x37,0x3b,0x45,0x55,0x67,0x7b,0x90,0xa5,0xb8,0xa3,0x8c,0x74,0x5d,0x47, 0x31,0x18,0x01,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x60,0x49,0x30,0x1f,0x2a,0x41,0x58,0x6f,0x89,0xa0,0xb7,0xa7,0x90, 0x77,0x60,0x47,0x30,0x18,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa, 0x93,0x79,0x60,0x49,0x32,0x2d,0x40,0x52,0x63,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a, 0x60,0x4c,0x35,0x1e,0x08,0x00,0x04,0x19,0x2d,0x40,0x54,0x63,0x68,0x68,0x68, 0x68,0x68,0x68,0x62,0x51,0x3d,0x2a,0x16,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x5c,0x67,0x6e,0x74,0x75,0x75,0x73,0x6e,0x65, 0x59,0x4a,0x3a,0x29,0x16,0x02,0x00,0x00,0x00,0x13,0x2a,0x3e,0x51,0x5d,0x5d, 0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x60,0x60,0x60,0x5a,0x48,0x31,0x19,0x01, 0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2f,0x3f,0x4c,0x4e,0x45,0x35,0x25,0x37, 0x4b,0x62,0x79,0x93,0xac,0xa8,0x92,0x77,0x60,0x47,0x2f,0x16,0x00,0x00,0x19, 0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c, 0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00, 0x02,0x19,0x30,0x49,0x60,0x77,0x93,0xaa,0xb4,0x9c,0x84,0x6c,0x58,0x48,0x3d, 0x34,0x2a,0x30,0x3c,0x4a,0x55,0x55,0x48,0x38,0x25,0x12,0x00,0x00,0x00,0x00, 0x00,0x0c,0x23,0x3b,0x52,0x6a,0x82,0x99,0xb0,0xac,0x96,0x81,0x69,0x54,0x40, 0x2f,0x23,0x20,0x24,0x32,0x45,0x59,0x6d,0x84,0x9b,0xb2,0xac,0x95,0x7c,0x65, 0x4e,0x37,0x20,0x08,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x25,0x3c,0x53,0x6b,0x86,0x9d,0xb4,0xaa, 0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xaa,0x93,0x79,0x60,0x49,0x32,0x3c,0x4f,0x62,0x74,0x86,0x86,0x86,0x86,0x86, 0x7c,0x67,0x51,0x37,0x20,0x0a,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x84,0x84, 0x84,0x84,0x84,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xaa,0x93,0x79,0x63,0x71,0x7c,0x87,0x8d,0x90,0x90,0x8c,0x86, 0x7b,0x6d,0x5c,0x4a,0x37,0x23,0x0e,0x00,0x00,0x00,0x18,0x32,0x48,0x61,0x74, 0x77,0x79,0x89,0xa0,0xb9,0xa2,0x89,0x79,0x79,0x79,0x79,0x6a,0x50,0x37,0x1e, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d,0x2c,0x33,0x37,0x2f,0x24,0x31, 0x45,0x58,0x6d,0x84,0x9a,0xb1,0xa1,0x8b,0x72,0x5a,0x43,0x2b,0x13,0x00,0x00, 0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x00, 0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00, 0x00,0x00,0x18,0x30,0x47,0x5e,0x76,0x8f,0xa5,0xb9,0xa3,0x8d,0x79,0x6a,0x5d, 0x54,0x4a,0x41,0x38,0x2f,0x35,0x3c,0x3c,0x33,0x26,0x16,0x03,0x00,0x00,0x00, 0x00,0x00,0x11,0x29,0x41,0x58,0x70,0x89,0xa0,0xb8,0xa5,0x8e,0x74,0x5f,0x48, 0x32,0x1e,0x0c,0x07,0x0f,0x23,0x37,0x4d,0x63,0x79,0x93,0xaa,0xb4,0x9c,0x86, 0x6d,0x55,0x3d,0x25,0x0d,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x23,0x3a,0x51,0x6a,0x84,0x9b,0xb4, 0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xaa,0x93,0x79,0x60,0x49,0x39,0x4c,0x5e,0x70,0x84,0x96,0x9d,0x9d,0x92, 0x81,0x6d,0x5c,0x49,0x33,0x1c,0x06,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86, 0x9d,0x9d,0x9d,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x77,0x87,0x93,0x9e,0xa5,0xaa,0xa8,0xa5, 0x9d,0x90,0x81,0x6c,0x58,0x43,0x2f,0x19,0x04,0x00,0x00,0x19,0x32,0x49,0x63, 0x7c,0x92,0x93,0x98,0xa7,0xbd,0xa9,0x98,0x95,0x95,0x95,0x86,0x6a,0x51,0x37, 0x1e,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x16,0x1d,0x1e,0x1a,0x2d, 0x40,0x53,0x65,0x79,0x90,0xa4,0xaa,0x95,0x81,0x69,0x52,0x3c,0x24,0x0c,0x00, 0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11, 0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16, 0x00,0x00,0x00,0x14,0x2b,0x43,0x5a,0x70,0x89,0x9d,0xb3,0xaf,0x9d,0x8d,0x81, 0x73,0x6a,0x61,0x58,0x4f,0x46,0x3c,0x32,0x28,0x1f,0x13,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x15,0x2d,0x46,0x5d,0x74,0x8f,0xa6,0xb7,0x9f,0x88,0x6d,0x57, 0x3f,0x28,0x11,0x00,0x00,0x00,0x17,0x2d,0x45,0x5c,0x72,0x8c,0xa3,0xbb,0xa2, 0x8b,0x72,0x5a,0x42,0x2a,0x12,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x23,0x3a,0x53,0x6a,0x84,0x9b, 0xb4,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49,0x49,0x5b,0x6d,0x81,0x93,0xa6,0xa7,0x95, 0x84,0x70,0x5e,0x4c,0x3a,0x27,0x14,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f, 0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xa7,0x90,0x7b,0x8d,0x9b,0xa5,0xa2,0xa2,0xa3,0xab, 0xb7,0xb2,0xa2,0x8f,0x79,0x64,0x4f,0x39,0x22,0x0c,0x00,0x00,0x19,0x32,0x49, 0x63,0x7c,0x98,0xac,0xad,0xb8,0xca,0xb8,0xad,0xac,0xac,0x9d,0x86,0x6a,0x51, 0x37,0x1e,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x2a, 0x3d,0x50,0x62,0x75,0x89,0x9d,0xaf,0x9b,0x88,0x72,0x5d,0x48,0x32,0x1c,0x05, 0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44,0x2b, 0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30, 0x16,0x00,0x00,0x00,0x0e,0x24,0x3c,0x52,0x67,0x7c,0x92,0xa5,0xb6,0xaf,0xa1, 0x95,0x8b,0x82,0x77,0x6e,0x65,0x5c,0x53,0x49,0x3e,0x32,0x24,0x16,0x06,0x00, 0x00,0x00,0x00,0x00,0x19,0x30,0x49,0x60,0x79,0x93,0xaa,0xb2,0x9a,0x84,0x69, 0x51,0x39,0x21,0x0a,0x00,0x00,0x00,0x0f,0x26,0x3e,0x56,0x6d,0x88,0xa0,0xb7, 0xa7,0x90,0x74,0x5d,0x45,0x2d,0x14,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x25,0x3d,0x55,0x6c,0x86, 0x9d,0xb5,0xaa,0x92,0x79,0x60,0x49,0x32,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49,0x58,0x6b,0x7c,0x90,0xa2,0xaa,0x98, 0x86,0x72,0x60,0x4e,0x3c,0x2a,0x18,0x06,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b, 0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x9a,0x93,0x9f,0x98,0x8f,0x89,0x89,0x8c, 0x96,0xa4,0xb6,0xaf,0x9a,0x84,0x6d,0x57,0x40,0x29,0x13,0x00,0x00,0x19,0x32, 0x49,0x63,0x7c,0x95,0x95,0x98,0xa7,0xbd,0xa9,0x98,0x95,0x95,0x95,0x86,0x6a, 0x51,0x37,0x1e,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24, 0x38,0x4c,0x5f,0x72,0x86,0x9a,0xab,0x9f,0x8d,0x77,0x65,0x51,0x3c,0x27,0x11, 0x00,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d,0x44, 0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49, 0x30,0x16,0x00,0x00,0x00,0x07,0x1c,0x31,0x47,0x5b,0x6e,0x84,0x94,0xa4,0xb2, 0xb6,0xab,0xa2,0x99,0x90,0x87,0x7c,0x73,0x69,0x5f,0x53,0x47,0x38,0x28,0x16, 0x06,0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x63,0x7c,0x95,0xad,0xaf,0x98,0x81, 0x65,0x4e,0x35,0x1d,0x05,0x00,0x00,0x00,0x0a,0x22,0x3a,0x53,0x6a,0x84,0x9d, 0xb4,0xaa,0x93,0x77,0x60,0x47,0x30,0x16,0x00,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x2b,0x42,0x59,0x6f, 0x89,0xa0,0xb8,0xa5,0x8e,0x75,0x5d,0x46,0x2f,0x16,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x55,0x67,0x79,0x8d,0xa0,0xab,0x9a, 0x88,0x74,0x62,0x50,0x3e,0x2c,0x1a,0x08,0x00,0x00,0x00,0x07,0x1b,0x30,0x44, 0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xba,0xad,0x9f,0x90,0x82,0x76,0x6f,0x6f, 0x74,0x82,0x94,0xa9,0xb9,0xa2,0x8b,0x74,0x5d,0x46,0x2e,0x18,0x00,0x00,0x19, 0x32,0x49,0x62,0x79,0x79,0x79,0x89,0xa0,0xb9,0xa2,0x89,0x79,0x79,0x79,0x79, 0x69,0x50,0x37,0x1e,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x19, 0x30,0x45,0x5a,0x6e,0x82,0x96,0xa8,0xa1,0x8f,0x7b,0x69,0x56,0x43,0x2f,0x1a, 0x06,0x00,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74,0x5d, 0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63, 0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x10,0x26,0x3a,0x4d,0x60,0x70,0x82,0x90, 0x9d,0xa7,0xb2,0xb8,0xaf,0xa5,0x9c,0x93,0x8a,0x81,0x74,0x68,0x5a,0x4a,0x38, 0x28,0x15,0x02,0x00,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x96, 0x7c,0x63,0x4c,0x32,0x1b,0x02,0x00,0x00,0x00,0x07,0x20,0x37,0x51,0x68,0x84, 0x9a,0xb4,0xac,0x93,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x31,0x2b,0x37,0x4b,0x61, 0x77,0x8f,0xa5,0xb7,0xa0,0x89,0x71,0x5a,0x42,0x2b,0x13,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x60,0x65,0x77,0x8b,0x9d,0xad,0x9b, 0x89,0x75,0x63,0x52,0x40,0x2e,0x1c,0x0b,0x00,0x00,0x00,0x00,0x07,0x1b,0x30, 0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb1,0x9d,0x8d,0x7b,0x6d,0x60,0x58, 0x56,0x5f,0x72,0x89,0xa0,0xb6,0xa7,0x90,0x77,0x60,0x49,0x32,0x1b,0x00,0x00, 0x14,0x2b,0x41,0x55,0x60,0x60,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x60,0x60, 0x60,0x5a,0x48,0x31,0x19,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x24,0x3a,0x51,0x67,0x7b,0x91,0xa4,0xa6,0x92,0x81,0x6b,0x59,0x47,0x34,0x20, 0x0d,0x00,0x00,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90,0x74, 0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95,0x79, 0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x05,0x18,0x2b,0x3e,0x4e,0x5e,0x6d, 0x7b,0x88,0x92,0x9b,0xa4,0xae,0xb7,0xb3,0xaa,0xa1,0x96,0x8b,0x7b,0x6d,0x5b, 0x4a,0x37,0x23,0x0f,0x00,0x00,0x02,0x1b,0x35,0x4c,0x65,0x7c,0x98,0xb0,0xaf, 0x95,0x7c,0x63,0x4c,0x32,0x19,0x02,0x00,0x00,0x00,0x07,0x1e,0x37,0x50,0x68, 0x84,0x9a,0xb4,0xac,0x95,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x51,0x48,0x44,0x4a,0x59, 0x6c,0x82,0x97,0xad,0xae,0x98,0x82,0x6a,0x53,0x3c,0x25,0x0e,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x62,0x74,0x88,0x9a,0xac,0x9e, 0x8c,0x79,0x67,0x55,0x43,0x31,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00,0x07,0x1b, 0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7b,0x69,0x5b,0x4c, 0x40,0x3f,0x54,0x6a,0x84,0x9a,0xb1,0xab,0x93,0x79,0x63,0x4c,0x34,0x1b,0x00, 0x00,0x0b,0x1e,0x31,0x40,0x47,0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53, 0x47,0x47,0x43,0x36,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x15,0x2d,0x44,0x5b,0x71,0x89,0x9e,0xaf,0x9a,0x84,0x70,0x5c,0x49,0x37,0x24, 0x11,0x00,0x00,0x00,0x00,0x00,0x19,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa,0x90, 0x74,0x5d,0x44,0x2b,0x11,0x00,0x0c,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf,0x95, 0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x2c,0x3c,0x4c, 0x59,0x65,0x70,0x79,0x84,0x8e,0x98,0xa1,0xaa,0xb4,0xb7,0xac,0x9f,0x90,0x7c, 0x6b,0x58,0x45,0x2f,0x1a,0x04,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x98,0xaf, 0xaf,0x98,0x7c,0x65,0x4c,0x34,0x1b,0x04,0x00,0x00,0x00,0x08,0x20,0x38,0x51, 0x68,0x84,0x9b,0xb4,0xac,0x93,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xad,0x94,0x82,0x72,0x67,0x5f,0x5b,0x61, 0x6c,0x7b,0x8f,0xa3,0xb7,0xa4,0x8f,0x77,0x62,0x4b,0x35,0x1e,0x07,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x71,0x84,0x96,0xa9,0xa0, 0x8f,0x7b,0x69,0x57,0x45,0x33,0x21,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d, 0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c, 0x38,0x2a,0x39,0x50,0x68,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b, 0x00,0x00,0x00,0x0f,0x1d,0x29,0x3a,0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d, 0x53,0x3a,0x2d,0x2b,0x21,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x1c,0x33,0x4b,0x63,0x79,0x92,0xa9,0xa5,0x8f,0x77,0x62,0x4d,0x39,0x26, 0x14,0x02,0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x49,0x63,0x7c,0x98,0xb1,0xaa, 0x90,0x76,0x5d,0x44,0x2b,0x11,0x00,0x0e,0x26,0x3f,0x58,0x72,0x8e,0xa7,0xaf, 0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x2a, 0x38,0x45,0x50,0x5a,0x64,0x6d,0x76,0x81,0x8b,0x94,0x9e,0xaa,0xb8,0xb2,0xa1, 0x8f,0x79,0x64,0x4f,0x39,0x24,0x0c,0x00,0x02,0x1a,0x32,0x4b,0x63,0x7b,0x95, 0xac,0xb1,0x98,0x81,0x67,0x4e,0x37,0x1e,0x06,0x00,0x00,0x00,0x0b,0x23,0x3c, 0x53,0x6b,0x86,0x9d,0xb6,0xaa,0x90,0x77,0x5f,0x47,0x2e,0x16,0x00,0x00,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb5,0xa4,0x95,0x89,0x7c,0x77,0x74, 0x77,0x81,0x8f,0x9f,0xb1,0xab,0x98,0x84,0x6d,0x58,0x42,0x2c,0x16,0x00,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x79,0x82,0x94,0xa6,0xaf, 0x95,0x7c,0x6b,0x59,0x47,0x35,0x23,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42, 0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63, 0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35, 0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89, 0x6d,0x53,0x3a,0x23,0x12,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x1f,0x37,0x50,0x68,0x81,0x9a,0xb1,0x9c,0x84,0x6d,0x57,0x41,0x2c, 0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x30,0x49,0x63,0x7c,0x97,0xaf, 0xaa,0x91,0x77,0x5d,0x44,0x2c,0x13,0x00,0x0f,0x28,0x42,0x5b,0x72,0x8e,0xa7, 0xaf,0x95,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x17, 0x1f,0x23,0x2f,0x39,0x43,0x4d,0x57,0x60,0x6a,0x73,0x7c,0x89,0x96,0xa6,0xb6, 0xb0,0x9c,0x86,0x6e,0x59,0x41,0x2b,0x13,0x00,0x00,0x18,0x30,0x49,0x60,0x79, 0x92,0xaa,0xb4,0x9c,0x84,0x6a,0x53,0x3b,0x23,0x0c,0x00,0x00,0x00,0x11,0x28, 0x40,0x58,0x6f,0x89,0xa0,0xb9,0xa5,0x8e,0x74,0x5d,0x44,0x2c,0x14,0x00,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb1,0xa2,0x9d,0x9e,0x96,0x90, 0x8e,0x90,0x98,0xa3,0xb1,0xab,0x9b,0x89,0x75,0x61,0x4c,0x38,0x22,0x0d,0x00, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93,0x7c,0x90,0xa3,0xb5, 0xb4,0x9e,0x8b,0x76,0x62,0x4f,0x3b,0x27,0x13,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58, 0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79, 0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c, 0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d,0x89,0xa0,0xb9,0xa2, 0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x21,0x3a,0x51,0x6a,0x84,0x9d,0xa2,0x98,0x81,0x65,0x4e,0x36, 0x20,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2f,0x48,0x60,0x79,0x95, 0xad,0xac,0x93,0x79,0x60,0x47,0x2f,0x16,0x00,0x12,0x2b,0x44,0x5d,0x74,0x90, 0xa8,0xac,0x93,0x79,0x60,0x47,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f, 0x2d,0x37,0x3a,0x35,0x29,0x2d,0x37,0x40,0x49,0x53,0x5c,0x67,0x73,0x84,0x94, 0xa9,0xbb,0xa5,0x8e,0x75,0x5f,0x48,0x30,0x18,0x00,0x00,0x14,0x2c,0x44,0x5c, 0x74,0x8e,0xa5,0xb8,0xa1,0x89,0x71,0x5a,0x42,0x2b,0x15,0x00,0x00,0x04,0x19, 0x30,0x47,0x5e,0x74,0x8e,0xa5,0xb9,0xa1,0x8a,0x70,0x58,0x41,0x28,0x10,0x00, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xa8,0x91,0x86,0x94,0xa2, 0xa8,0xa7,0xa8,0xaf,0xaf,0xa5,0x98,0x89,0x77,0x67,0x53,0x40,0x2c,0x17,0x02, 0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb1,0x9d,0x96,0xa1,0xa8, 0xa0,0xa5,0xac,0x98,0x84,0x70,0x5b,0x48,0x34,0x20,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d, 0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95, 0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63, 0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d,0x89,0xa0,0xb9, 0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x6a,0x84,0x8b,0x8b,0x8b,0x7c,0x65,0x4c, 0x32,0x1b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2d,0x46,0x5d,0x77, 0x91,0xaa,0xaf,0x96,0x7c,0x65,0x4c,0x34,0x1c,0x0c,0x19,0x31,0x49,0x62,0x79, 0x93,0xac,0xa9,0x90,0x75,0x5d,0x44,0x2b,0x13,0x00,0x00,0x00,0x00,0x0b,0x1e, 0x2f,0x41,0x4f,0x53,0x4b,0x3c,0x2d,0x20,0x2a,0x33,0x3d,0x47,0x52,0x60,0x72, 0x89,0x9f,0xb6,0xaa,0x93,0x79,0x62,0x49,0x32,0x1a,0x00,0x00,0x10,0x27,0x40, 0x57,0x6e,0x88,0x9e,0xb6,0xa8,0x90,0x77,0x62,0x4b,0x36,0x21,0x10,0x0a,0x13, 0x26,0x3a,0x50,0x66,0x7c,0x95,0xac,0xb2,0x9b,0x84,0x6a,0x53,0x3c,0x24,0x0c, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x90,0x77,0x81, 0x8c,0x96,0x9d,0xa0,0x9d,0x98,0x90,0x84,0x75,0x67,0x55,0x45,0x32,0x1f,0x0b, 0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xbf,0xb3,0xaf,0xa8, 0x96,0x87,0x93,0xa8,0xa5,0x92,0x7c,0x69,0x55,0x41,0x2d,0x19,0x06,0x00,0x00, 0x00,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98,0x84, 0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79, 0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d,0x89,0xa0, 0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x1e,0x36,0x4e,0x63,0x6f,0x6f,0x6f,0x6f,0x6f,0x61, 0x49,0x33,0x1a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x29,0x41,0x5b, 0x73,0x8d,0xa5,0xb4,0x9b,0x84,0x6b,0x53,0x3d,0x2a,0x25,0x29,0x3b,0x51,0x68, 0x81,0x98,0xb0,0xa4,0x8b,0x72,0x5a,0x41,0x28,0x0f,0x00,0x00,0x00,0x0a,0x1b, 0x2e,0x40,0x52,0x63,0x6a,0x5e,0x50,0x42,0x36,0x2c,0x25,0x26,0x30,0x3e,0x53, 0x6a,0x84,0x9b,0xb4,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x0a,0x21, 0x39,0x50,0x68,0x81,0x96,0xad,0xb0,0x9a,0x84,0x6c,0x58,0x43,0x33,0x26,0x23, 0x28,0x36,0x48,0x5c,0x71,0x88,0x9e,0xb4,0xaa,0x93,0x7b,0x64,0x4d,0x35,0x1e, 0x06,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x90,0x77, 0x6a,0x75,0x7c,0x86,0x89,0x86,0x81,0x77,0x6d,0x62,0x53,0x45,0x33,0x23,0x10, 0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xc8,0xbb,0xaa, 0x98,0x86,0x73,0x88,0x9b,0xaf,0x9f,0x8b,0x75,0x62,0x4f,0x3a,0x26,0x13,0x00, 0x00,0x00,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf,0x98, 0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95, 0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d,0x89, 0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2d,0x41,0x52,0x58,0x59,0x5b,0x58,0x58, 0x4f,0x3f,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x24,0x3d, 0x55,0x6d,0x88,0x9f,0xb7,0xa3,0x8c,0x74,0x5f,0x4c,0x41,0x3c,0x40,0x4a,0x5d, 0x72,0x8a,0xa1,0xb6,0x9e,0x86,0x6d,0x54,0x3c,0x23,0x0b,0x00,0x00,0x07,0x19, 0x2b,0x3d,0x50,0x62,0x74,0x82,0x72,0x63,0x57,0x4b,0x43,0x3d,0x3a,0x3d,0x44, 0x56,0x6c,0x84,0x9c,0xb4,0xaa,0x93,0x79,0x62,0x49,0x32,0x1b,0x00,0x00,0x03, 0x1a,0x31,0x48,0x5f,0x76,0x8d,0xa3,0xb9,0xa4,0x8f,0x79,0x65,0x55,0x47,0x3d, 0x3a,0x3e,0x49,0x58,0x6a,0x7c,0x93,0xa9,0xb5,0xa0,0x8a,0x72,0x5b,0x45,0x2e, 0x17,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xaa,0x93, 0x79,0x60,0x5f,0x66,0x6a,0x6d,0x6d,0x67,0x61,0x58,0x4c,0x40,0x31,0x22,0x11, 0x01,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xbc,0xab, 0x9a,0x88,0x74,0x65,0x79,0x8f,0xa3,0xac,0x98,0x84,0x70,0x5c,0x48,0x34,0x20, 0x0c,0x00,0x00,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1,0xaf, 0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac, 0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53,0x6d, 0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x34,0x47,0x59,0x67,0x70,0x72,0x70, 0x65,0x57,0x46,0x32,0x1e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1e, 0x37,0x4f,0x66,0x81,0x96,0xad,0xad,0x98,0x82,0x6e,0x60,0x58,0x56,0x58,0x60, 0x6e,0x81,0x95,0xab,0xac,0x96,0x7c,0x65,0x4d,0x35,0x1e,0x05,0x00,0x00,0x13, 0x28,0x3b,0x4d,0x5f,0x71,0x86,0x94,0x86,0x77,0x6c,0x62,0x5a,0x55,0x53,0x55, 0x5a,0x65,0x76,0x8c,0xa2,0xb9,0xa3,0x8c,0x74,0x5d,0x46,0x2f,0x17,0x00,0x00, 0x00,0x12,0x29,0x3f,0x56,0x6b,0x82,0x98,0xac,0xb1,0x9d,0x89,0x77,0x68,0x5c, 0x55,0x53,0x56,0x5e,0x6b,0x7b,0x8d,0xa1,0xb5,0xa9,0x94,0x7c,0x68,0x52,0x3b, 0x25,0x0e,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x60,0x49,0x4f,0x53,0x56,0x53,0x50,0x4a,0x42,0x38,0x2c,0x1e,0x10, 0x01,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xae, 0x9b,0x89,0x75,0x63,0x59,0x6d,0x82,0x96,0xab,0xa5,0x91,0x7c,0x69,0x55,0x41, 0x2d,0x1a,0x05,0x00,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d,0xb1, 0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a,0x53, 0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2a,0x40,0x56,0x6a,0x7b,0x89,0x8e, 0x89,0x79,0x69,0x54,0x3f,0x28,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x17,0x2f,0x46,0x5d,0x74,0x8c,0xa2,0xb6,0xa6,0x94,0x84,0x75,0x6f,0x6d,0x6f, 0x75,0x82,0x92,0xa4,0xb6,0xa1,0x8b,0x73,0x5c,0x45,0x2e,0x16,0x00,0x00,0x03, 0x1b,0x32,0x49,0x5c,0x6e,0x82,0x94,0xa6,0x9a,0x8f,0x84,0x79,0x72,0x6d,0x6a, 0x6d,0x72,0x79,0x89,0x9a,0xad,0xad,0x99,0x84,0x6d,0x57,0x40,0x29,0x12,0x00, 0x00,0x00,0x08,0x1f,0x35,0x4a,0x60,0x74,0x8b,0x9e,0xb1,0xad,0x9b,0x8b,0x7c, 0x73,0x6d,0x6a,0x6e,0x74,0x81,0x8f,0x9f,0xb1,0xad,0x9a,0x88,0x71,0x5c,0x47, 0x31,0x1c,0x05,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x60,0x49,0x38,0x3a,0x3c,0x3c,0x38,0x33,0x2b,0x21,0x16,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xaa,0x93,0x79,0x65,0x53,0x4c,0x61,0x75,0x8a,0x9e,0xb3,0x9e,0x8b,0x75,0x62, 0x4e,0x3a,0x26,0x13,0x00,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86,0x9d, 0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98, 0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21,0x3a, 0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x31,0x49,0x61,0x77,0x8d,0x9e, 0xa5,0x9d,0x8b,0x75,0x5f,0x48,0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0f,0x26,0x3d,0x53,0x69,0x81,0x94,0xa8,0xb6,0xa5,0x98,0x8e,0x89,0x86, 0x89,0x8e,0x98,0xa4,0xb4,0xa7,0x94,0x7c,0x69,0x52,0x3b,0x25,0x0e,0x00,0x00, 0x05,0x1e,0x35,0x4c,0x65,0x7c,0x8f,0x9e,0xac,0xaf,0xa4,0x99,0x90,0x8b,0x86, 0x86,0x86,0x8a,0x91,0x9c,0xab,0xaf,0x9e,0x8c,0x76,0x62,0x4c,0x37,0x21,0x0b, 0x00,0x00,0x00,0x00,0x14,0x29,0x3e,0x53,0x67,0x7b,0x8f,0xa1,0xaf,0xad,0xa0, 0x94,0x8b,0x86,0x86,0x88,0x8d,0x96,0xa2,0xb1,0xad,0x9d,0x8b,0x77,0x63,0x50, 0x3b,0x26,0x10,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x23,0x23,0x23,0x20,0x1b,0x14,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xaa,0x93,0x79,0x60,0x49,0x40,0x54,0x69,0x7c,0x92,0xa6,0xac,0x98,0x84, 0x6e,0x5b,0x48,0x34,0x20,0x0c,0x00,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f,0x86, 0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81, 0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07,0x21, 0x3a,0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1d,0x35,0x4e,0x65,0x81,0x98, 0xaf,0xbd,0xad,0x96,0x7c,0x65,0x4c,0x34,0x1b,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1b,0x31,0x47,0x5c,0x70,0x86,0x96,0xa5,0xb2,0xad,0xa5,0xa0, 0xa0,0xa0,0xa5,0xac,0xb2,0xa5,0x96,0x84,0x70,0x5c,0x47,0x31,0x1b,0x04,0x00, 0x00,0x04,0x1b,0x31,0x48,0x5b,0x6b,0x7b,0x8b,0x98,0xa4,0xae,0xb0,0xa8,0xa2, 0xa0,0x9d,0xa0,0xa2,0xa8,0xb2,0xaa,0x9c,0x8d,0x7b,0x69,0x56,0x42,0x2d,0x17, 0x02,0x00,0x00,0x00,0x00,0x08,0x1c,0x32,0x45,0x58,0x6b,0x7c,0x8d,0x9c,0xaa, 0xb4,0xaa,0xa3,0xa0,0x9d,0xa0,0xa4,0xac,0xb3,0xa7,0x9a,0x8a,0x79,0x67,0x55, 0x41,0x2d,0x19,0x05,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x0c,0x0b,0x08,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xaa,0x93,0x79,0x60,0x49,0x33,0x48,0x5c,0x70,0x86,0x9a,0xae,0xa5, 0x92,0x7c,0x69,0x55,0x41,0x2d,0x19,0x05,0x00,0x07,0x1b,0x30,0x44,0x5b,0x6f, 0x86,0x9d,0xb1,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65, 0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x07, 0x21,0x3a,0x53,0x6d,0x89,0xa0,0xb9,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x67,0x81, 0x99,0xb1,0xc6,0xb0,0x98,0x81,0x65,0x4e,0x35,0x1b,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0f,0x25,0x3a,0x4e,0x60,0x72,0x84,0x91,0x9c,0xa4,0xaa, 0xac,0xac,0xac,0xaa,0xa3,0x9c,0x90,0x82,0x72,0x60,0x4c,0x39,0x24,0x0f,0x00, 0x00,0x00,0x00,0x11,0x26,0x38,0x4a,0x59,0x67,0x75,0x82,0x8d,0x98,0x9f,0xa5, 0xaa,0xad,0xaf,0xad,0xaa,0xa5,0x9d,0x93,0x88,0x79,0x69,0x59,0x47,0x34,0x20, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x22,0x36,0x47,0x59,0x69,0x79,0x88, 0x93,0x9d,0xa5,0xaa,0xad,0xaf,0xac,0xa9,0xa3,0x9b,0x91,0x86,0x75,0x67,0x55, 0x44,0x32,0x1f,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xac,0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xaf,0xaa,0x93,0x79,0x60,0x49,0x32,0x3b,0x4f,0x63,0x77,0x8d,0xa1, 0xaf,0x9e,0x8b,0x75,0x62,0x4e,0x3a,0x26,0x11,0x00,0x07,0x1b,0x30,0x44,0x5b, 0x6f,0x86,0x9d,0xaf,0xaf,0x98,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e, 0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00, 0x07,0x21,0x3a,0x53,0x6d,0x89,0xa0,0xaf,0xa2,0x89,0x6d,0x53,0x3a,0x23,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1b,0x34,0x4b,0x63, 0x7b,0x92,0xa5,0xad,0xa4,0x91,0x79,0x62,0x4a,0x32,0x1a,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x17,0x2b,0x3e,0x50,0x5f,0x6e,0x7b,0x86,0x8d, 0x92,0x95,0x95,0x95,0x92,0x8d,0x86,0x79,0x6d,0x5f,0x4e,0x3c,0x2a,0x16,0x02, 0x00,0x00,0x00,0x00,0x05,0x16,0x28,0x37,0x46,0x54,0x61,0x6c,0x76,0x81,0x89, 0x8e,0x93,0x95,0x95,0x95,0x93,0x8e,0x87,0x7c,0x72,0x65,0x57,0x47,0x37,0x25, 0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x25,0x37,0x47,0x57,0x65, 0x72,0x7c,0x87,0x8e,0x93,0x95,0x95,0x95,0x92,0x8c,0x86,0x7b,0x70,0x62,0x53, 0x45,0x33,0x21,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x95,0x95,0x95,0x93,0x79,0x60,0x49,0x30,0x19,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x95,0x95,0x95,0x93,0x79,0x60,0x49,0x32,0x2f,0x43,0x57,0x6b,0x81, 0x95,0x95,0x95,0x95,0x84,0x6e,0x5b,0x45,0x30,0x19,0x00,0x07,0x1b,0x30,0x44, 0x5b,0x6f,0x86,0x95,0x95,0x95,0x95,0x84,0x6d,0x58,0x42,0x2d,0x19,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x95,0x79,0x63,0x4c,0x35,0x21,0x37, 0x4e,0x65,0x81,0x95,0x95,0x95,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00, 0x00,0x07,0x21,0x3a,0x53,0x6d,0x89,0x95,0x95,0x95,0x89,0x6d,0x53,0x3a,0x23, 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x43, 0x5a,0x6e,0x84,0x91,0x95,0x90,0x82,0x6d,0x59,0x42,0x2c,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1a,0x2c,0x3d,0x4c,0x5a,0x65,0x6d, 0x74,0x77,0x79,0x79,0x79,0x77,0x74,0x6d,0x64,0x59,0x4c,0x3d,0x2c,0x1a,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x15,0x24,0x32,0x3f,0x4b,0x56,0x60,0x68, 0x6f,0x74,0x79,0x79,0x79,0x79,0x79,0x74,0x6e,0x66,0x5c,0x51,0x44,0x35,0x25, 0x15,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x15,0x25,0x35,0x43, 0x50,0x5b,0x65,0x6e,0x74,0x77,0x79,0x79,0x79,0x77,0x73,0x6d,0x64,0x59,0x4e, 0x40,0x31,0x21,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x20,0x37, 0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x60,0x49,0x30,0x19,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x20,0x3a, 0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x60,0x49,0x32,0x22,0x37,0x4a,0x5f, 0x73,0x79,0x79,0x79,0x79,0x79,0x75,0x60,0x49,0x32,0x19,0x00,0x07,0x1b,0x30, 0x44,0x5b,0x6e,0x79,0x79,0x79,0x79,0x79,0x79,0x6c,0x58,0x41,0x2d,0x19,0x00, 0x0a,0x20,0x3a,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x20, 0x37,0x4e,0x65,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1b,0x00,0x00, 0x00,0x00,0x07,0x20,0x3a,0x53,0x6c,0x79,0x79,0x79,0x79,0x79,0x6c,0x53,0x3a, 0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x24, 0x39,0x4d,0x60,0x6e,0x79,0x79,0x77,0x6d,0x5e,0x4c,0x37,0x21,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1b,0x2a,0x38,0x45,0x4f, 0x56,0x5d,0x60,0x63,0x63,0x63,0x60,0x5d,0x56,0x4e,0x43,0x38,0x2a,0x1a,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x1e,0x2a,0x36,0x40,0x49, 0x51,0x58,0x5d,0x60,0x63,0x63,0x63,0x60,0x5d,0x57,0x4f,0x46,0x3b,0x2f,0x22, 0x13,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x21, 0x2e,0x3a,0x46,0x4f,0x56,0x5d,0x60,0x63,0x63,0x63,0x60,0x5b,0x55,0x4d,0x43, 0x38,0x2c,0x1e,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1c, 0x31,0x48,0x58,0x62,0x63,0x63,0x63,0x63,0x61,0x53,0x41,0x2a,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1c, 0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x55,0x42,0x2d,0x18,0x2a,0x3e, 0x51,0x60,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2d,0x18,0x00,0x04,0x18, 0x2b,0x3e,0x51,0x5f,0x63,0x63,0x63,0x63,0x63,0x63,0x5d,0x4f,0x3b,0x29,0x15, 0x00,0x06,0x1c,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x30, 0x1c,0x32,0x47,0x59,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x18,0x00, 0x00,0x00,0x00,0x04,0x1c,0x34,0x4b,0x5d,0x63,0x63,0x63,0x63,0x63,0x5d,0x4b, 0x34,0x1f,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x17,0x2b,0x3c,0x4c,0x59,0x62,0x63,0x61,0x58,0x4c,0x3a,0x29,0x15,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x23,0x2f, 0x39,0x40,0x45,0x49,0x49,0x49,0x49,0x49,0x45,0x3f,0x38,0x2e,0x23,0x16,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x15,0x20,0x29, 0x32,0x3a,0x40,0x45,0x49,0x49,0x49,0x49,0x49,0x45,0x40,0x39,0x30,0x26,0x1b, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0d,0x1a,0x25,0x30,0x39,0x3f,0x45,0x49,0x49,0x49,0x49,0x48,0x44,0x3e,0x37, 0x2e,0x22,0x18,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x12,0x26,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x1f,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x12,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x21,0x0e,0x1d, 0x2f,0x3e,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x21,0x0e,0x00,0x00, 0x0e,0x1f,0x2f,0x3e,0x47,0x49,0x49,0x49,0x49,0x49,0x49,0x46,0x3d,0x2d,0x1d, 0x0c,0x00,0x00,0x12,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35, 0x24,0x12,0x26,0x37,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x24,0x0e, 0x00,0x00,0x00,0x00,0x00,0x12,0x28,0x3a,0x46,0x49,0x49,0x49,0x49,0x49,0x46, 0x3a,0x28,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x08,0x1a,0x2b,0x38,0x43,0x49,0x49,0x49,0x42,0x37,0x2a,0x18,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0e, 0x18,0x21,0x28,0x2d,0x31,0x32,0x32,0x32,0x31,0x2d,0x28,0x21,0x18,0x0e,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09, 0x13,0x1b,0x22,0x28,0x2d,0x30,0x32,0x32,0x32,0x30,0x2d,0x28,0x21,0x19,0x0f, 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x0f,0x18,0x21,0x27,0x2d,0x30,0x32,0x32,0x31,0x2f,0x2c,0x26, 0x20,0x17,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x2a,0x1f,0x0f,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x16,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x2a,0x1f,0x11,0x00, 0x0d,0x1c,0x28,0x2f,0x30,0x30,0x30,0x30,0x30,0x2f,0x2a,0x1f,0x11,0x00,0x00, 0x00,0x00,0x0f,0x1c,0x28,0x2e,0x30,0x30,0x30,0x30,0x30,0x30,0x2e,0x27,0x1b, 0x0d,0x00,0x00,0x00,0x04,0x16,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x2b, 0x21,0x13,0x04,0x14,0x22,0x2c,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21,0x13, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x25,0x2e,0x30,0x30,0x30,0x30,0x30, 0x2e,0x25,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x17,0x22,0x2c,0x32,0x32,0x31,0x2b,0x21,0x15,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x0a,0x11,0x16,0x19,0x19,0x19,0x19,0x19,0x16,0x11,0x0a,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x0b,0x10,0x14,0x18,0x19,0x19,0x19,0x17,0x14,0x10,0x09,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x09,0x10,0x14,0x18,0x19,0x19,0x19,0x17,0x13, 0x0e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0c,0x00, 0x00,0x00,0x09,0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x09,0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x12, 0x08,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19, 0x15,0x0d,0x01,0x00,0x02,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0e,0x15,0x16,0x16,0x16,0x16, 0x16,0x15,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x0d,0x15,0x19,0x19,0x19,0x14,0x0c,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x04,0x05,0x05,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x04,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05, 0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x11,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x0f,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x0c,0x12,0x16,0x1a,0x1c,0x1e,0x1d,0x1b,0x17,0x13,0x0c,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x0e,0x14,0x18,0x1b,0x1e,0x1e,0x1b,0x18,0x14,0x0d,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0f,0x15, 0x1a,0x1b,0x1b,0x1a,0x15,0x0f,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x14,0x19,0x1d,0x1e,0x1c,0x18, 0x13,0x0b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x10,0x16,0x1b,0x1e,0x1e, 0x1a,0x15,0x0e,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x14,0x1c,0x1e, 0x1e,0x1e,0x1d,0x18,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0a,0x13,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x12,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x14,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0b, 0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x1e,0x21,0x21,0x21,0x21,0x21,0x20,0x1c, 0x14,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x18,0x28,0x31,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x25, 0x15,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x13, 0x1c,0x24,0x29,0x2f,0x32,0x35,0x37,0x37,0x32,0x2f,0x2a,0x23,0x1b,0x11,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x16,0x1e,0x26,0x2c,0x30,0x33,0x37,0x37,0x33,0x30,0x2c,0x24,0x1c, 0x11,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0f,0x1a,0x25, 0x2d,0x32,0x34,0x34,0x31,0x2d,0x24,0x1a,0x0f,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x23,0x2b,0x31,0x36,0x37,0x35, 0x31,0x2b,0x22,0x17,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x11,0x1d,0x26,0x2e,0x33,0x37, 0x37,0x32,0x2d,0x25,0x1b,0x0e,0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x2a,0x35, 0x37,0x37,0x37,0x37,0x2f,0x22,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0f,0x1d,0x2a,0x33,0x35,0x35,0x35,0x35,0x35,0x35,0x31,0x29, 0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x20,0x2c,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2c, 0x20,0x11,0x00,0x00,0x00,0x09,0x1a,0x2a,0x34,0x37,0x37,0x37,0x37,0x37,0x37, 0x32,0x27,0x16,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x16,0x29,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x45, 0x37,0x25,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x13,0x1f, 0x29,0x33,0x3b,0x41,0x47,0x4b,0x4c,0x4e,0x4e,0x4b,0x48,0x42,0x3b,0x31,0x27, 0x1c,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x16,0x21,0x2d,0x36,0x3e,0x44,0x49,0x4c,0x4e,0x4e,0x4c,0x49,0x43,0x3c, 0x32,0x28,0x1c,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x21,0x2f, 0x3a,0x43,0x49,0x4c,0x4c,0x49,0x43,0x3a,0x2f,0x21,0x13,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x21,0x2e,0x3a,0x43,0x49,0x4d,0x4e, 0x4c,0x49,0x42,0x38,0x2d,0x1e,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x25,0x32,0x3d,0x46,0x4b, 0x4e,0x4e,0x4b,0x45,0x3b,0x30,0x22,0x13,0x01,0x00,0x00,0x00,0x15,0x29,0x3c, 0x4a,0x4e,0x4e,0x4e,0x4d,0x43,0x33,0x1e,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0b,0x1c,0x2f,0x3d,0x49,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x48, 0x3c,0x2d,0x1a,0x08,0x00,0x00,0x00,0x08,0x1f,0x31,0x42,0x4b,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b, 0x43,0x33,0x21,0x0b,0x00,0x00,0x15,0x29,0x3c,0x49,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x47,0x38,0x24,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x09,0x1f,0x34,0x4a,0x5c,0x65,0x65,0x65,0x65,0x65,0x65, 0x59,0x46,0x30,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1a,0x28, 0x34,0x40,0x49,0x51,0x5a,0x5f,0x63,0x65,0x68,0x65,0x63,0x60,0x59,0x51,0x48, 0x3d,0x31,0x24,0x15,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0e,0x1d,0x2b,0x37,0x42,0x4c,0x55,0x5b,0x60,0x64,0x67,0x68,0x65,0x60,0x5a, 0x52,0x48,0x3d,0x30,0x23,0x14,0x04,0x00,0x00,0x00,0x00,0x00,0x12,0x23,0x33, 0x41,0x4f,0x59,0x61,0x65,0x65,0x61,0x59,0x4e,0x40,0x31,0x22,0x11,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x13,0x25,0x35,0x43,0x4f,0x5a,0x61,0x65, 0x68,0x65,0x60,0x59,0x4e,0x41,0x31,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x28,0x38,0x47,0x53,0x5d, 0x63,0x68,0x67,0x62,0x5b,0x51,0x44,0x35,0x25,0x13,0x00,0x00,0x0b,0x20,0x36, 0x4b,0x60,0x68,0x68,0x68,0x65,0x54,0x40,0x28,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x13,0x27,0x3c,0x4f,0x5f,0x65,0x65,0x65,0x65,0x65,0x65, 0x5e,0x4c,0x3a,0x24,0x10,0x00,0x00,0x00,0x10,0x29,0x40,0x55,0x62,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x62,0x55,0x40,0x2b,0x13,0x00,0x05,0x1e,0x34,0x4b,0x5e,0x68,0x68,0x68,0x68, 0x68,0x67,0x5a,0x47,0x2f,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x7c, 0x79,0x62,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2e, 0x3d,0x4a,0x56,0x60,0x69,0x71,0x77,0x79,0x7c,0x81,0x81,0x7c,0x77,0x71,0x68, 0x5d,0x52,0x45,0x37,0x28,0x18,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x11,0x21,0x31,0x3f,0x4c,0x58,0x63,0x6c,0x73,0x79,0x7c,0x81,0x81,0x7c,0x79, 0x72,0x69,0x5e,0x52,0x45,0x36,0x26,0x16,0x04,0x00,0x00,0x00,0x0b,0x1e,0x30, 0x42,0x52,0x62,0x6e,0x77,0x7c,0x7c,0x77,0x6d,0x60,0x51,0x40,0x2f,0x1d,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x37,0x48,0x57,0x64,0x71,0x79, 0x7c,0x81,0x7c,0x77,0x70,0x63,0x54,0x43,0x30,0x1c,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x26,0x38,0x4a,0x5b,0x69, 0x74,0x7b,0x81,0x81,0x79,0x72,0x67,0x58,0x47,0x35,0x22,0x0e,0x00,0x16,0x2c, 0x41,0x57,0x6d,0x81,0x81,0x81,0x74,0x5b,0x42,0x2b,0x11,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x16,0x2b,0x42,0x58,0x6d,0x81,0x81,0x81,0x81,0x81, 0x81,0x6a,0x53,0x3f,0x28,0x14,0x00,0x00,0x00,0x14,0x2d,0x47,0x60,0x76,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x79,0x60,0x47,0x30,0x16,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x81,0x81, 0x81,0x81,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x98,0x98,0x98, 0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x31, 0x41,0x50,0x5f,0x6b,0x76,0x81,0x89,0x90,0x95,0x98,0x9a,0x98,0x95,0x90,0x89, 0x81,0x73,0x67,0x59,0x4a,0x3a,0x28,0x16,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x10,0x21,0x33,0x43,0x53,0x61,0x6d,0x79,0x84,0x8c,0x92,0x96,0x98,0x98,0x96, 0x91,0x8a,0x81,0x73,0x67,0x59,0x49,0x38,0x28,0x14,0x00,0x00,0x00,0x13,0x27, 0x3a,0x4e,0x60,0x71,0x82,0x8f,0x96,0x96,0x8f,0x82,0x70,0x5f,0x4c,0x39,0x25, 0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x33,0x47,0x59,0x6b,0x79,0x88, 0x92,0x98,0x9a,0x98,0x91,0x87,0x77,0x65,0x53,0x3e,0x28,0x13,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x34,0x49,0x5c,0x6d, 0x7c,0x8b,0x94,0x98,0x98,0x93,0x89,0x79,0x69,0x58,0x45,0x30,0x1c,0x0b,0x21, 0x37,0x4c,0x62,0x79,0x90,0x98,0x82,0x6a,0x54,0x3f,0x27,0x0e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2b,0x42,0x56,0x6d,0x86,0x98,0x98,0x98, 0x98,0x81,0x6a,0x53,0x3f,0x28,0x13,0x00,0x00,0x00,0x14,0x2d,0x47,0x60,0x77, 0x93,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x95,0x79,0x60,0x47,0x30,0x16,0x00,0x07,0x20,0x37,0x50,0x68,0x81,0x98, 0x98,0x98,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e,0x31, 0x41,0x53,0x63,0x72,0x81,0x8d,0x98,0xa0,0xa7,0xac,0xaf,0xb2,0xb0,0xad,0xa7, 0x9f,0x95,0x89,0x7b,0x6d,0x5c,0x4a,0x37,0x21,0x0a,0x00,0x00,0x00,0x00,0x00, 0x0c,0x1f,0x32,0x43,0x55,0x65,0x74,0x84,0x90,0x9a,0xa3,0xa9,0xae,0xb1,0xb1, 0xae,0xa8,0xa0,0x95,0x89,0x79,0x6b,0x5b,0x4a,0x35,0x1e,0x08,0x00,0x04,0x18, 0x2d,0x41,0x55,0x69,0x7c,0x91,0xa2,0xad,0xad,0xa1,0x8f,0x7b,0x67,0x54,0x40, 0x2c,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x40,0x56,0x69,0x7c,0x8f, 0x9d,0xa7,0x9f,0x9d,0xa0,0xa7,0x9b,0x8a,0x75,0x61,0x4a,0x33,0x1c,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2c,0x41,0x57,0x6b, 0x81,0x92,0xa1,0x99,0x93,0x93,0x9b,0x9e,0x8f,0x7b,0x67,0x52,0x3d,0x27,0x16, 0x2d,0x42,0x58,0x6d,0x86,0x9b,0x8c,0x75,0x5f,0x49,0x33,0x1d,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2b,0x42,0x56,0x6d,0x84,0x9a,0xaf, 0xac,0x95,0x81,0x68,0x53,0x3c,0x28,0x11,0x00,0x00,0x00,0x14,0x2d,0x47,0x60, 0x77,0x93,0xac,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xac,0x95,0x79,0x60,0x47,0x30,0x16,0x00,0x06,0x1e,0x35,0x4e,0x65,0x7c, 0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a, 0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x05,0x1a,0x2d, 0x40,0x53,0x63,0x75,0x87,0x95,0xa2,0xae,0xb1,0xa7,0xa0,0x9d,0x9a,0x9b,0x9d, 0xa3,0xac,0xab,0x9e,0x90,0x81,0x6c,0x55,0x3f,0x28,0x0e,0x00,0x00,0x00,0x00, 0x06,0x1a,0x2e,0x41,0x54,0x67,0x77,0x89,0x98,0xa5,0xb1,0xad,0xa4,0x9e,0x9b, 0x9a,0x9d,0xa3,0xac,0xab,0x9e,0x8f,0x7c,0x6b,0x55,0x3c,0x25,0x0c,0x00,0x05, 0x19,0x30,0x44,0x58,0x6d,0x84,0x98,0xac,0xbf,0xbe,0xaa,0x95,0x81,0x6a,0x56, 0x42,0x2d,0x19,0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x34,0x4b,0x61,0x77,0x8d, 0xa1,0xa4,0x92,0x88,0x84,0x88,0x96,0xa8,0x9a,0x84,0x6b,0x54,0x3c,0x24,0x0c, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4c,0x63, 0x79,0x8f,0xa2,0x94,0x84,0x77,0x79,0x88,0x98,0x9e,0x8b,0x74,0x5d,0x48,0x31, 0x21,0x38,0x4e,0x63,0x79,0x91,0x96,0x81,0x6a,0x53,0x3e,0x28,0x11,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x41,0x56,0x6d,0x84,0x9a, 0xaf,0xac,0x95,0x81,0x68,0x51,0x3c,0x26,0x11,0x00,0x00,0x00,0x14,0x2d,0x47, 0x60,0x77,0x93,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9b,0xa6, 0xbb,0xb8,0xa4,0x90,0x79,0x60,0x47,0x30,0x16,0x00,0x05,0x1d,0x35,0x4c,0x65, 0x7c,0x95,0xaf,0xac,0x95,0x79,0x63,0x4a,0x32,0x1b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84, 0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x11,0x27, 0x3b,0x4f,0x62,0x74,0x88,0x9a,0xa8,0xb4,0xa6,0x9a,0x90,0x89,0x84,0x84,0x84, 0x86,0x8c,0x96,0xa2,0xa1,0x8f,0x7b,0x69,0x54,0x3d,0x27,0x0e,0x00,0x00,0x00, 0x00,0x13,0x27,0x3c,0x50,0x63,0x76,0x8b,0x9b,0xab,0xb1,0xa3,0x96,0x8d,0x86, 0x84,0x84,0x86,0x8b,0x96,0xa2,0xa1,0x8f,0x7b,0x69,0x53,0x3b,0x24,0x0b,0x00, 0x05,0x19,0x2f,0x43,0x58,0x6c,0x81,0x95,0xa8,0xba,0xb8,0xa7,0x93,0x81,0x6a, 0x56,0x42,0x2d,0x19,0x00,0x00,0x00,0x00,0x00,0x0b,0x23,0x3b,0x53,0x6b,0x84, 0x9a,0xab,0x94,0x81,0x70,0x6a,0x71,0x86,0x9c,0xa4,0x8c,0x72,0x5a,0x41,0x29, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x26,0x3d,0x55, 0x6c,0x84,0x9b,0x9c,0x86,0x70,0x61,0x63,0x74,0x8b,0xa1,0x96,0x81,0x67,0x50, 0x39,0x2d,0x43,0x59,0x6e,0x86,0x9c,0x8b,0x74,0x5f,0x48,0x32,0x1d,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x3f,0x56,0x6a,0x84, 0x98,0xaf,0xaa,0x95,0x7c,0x68,0x51,0x3c,0x26,0x11,0x00,0x00,0x00,0x14,0x2d, 0x47,0x60,0x77,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x84, 0x9b,0xb4,0xab,0x96,0x82,0x6c,0x57,0x41,0x2b,0x13,0x00,0x05,0x1b,0x35,0x4c, 0x63,0x7c,0x95,0xad,0xac,0x93,0x79,0x63,0x49,0x32,0x1b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68, 0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x08,0x1d, 0x32,0x48,0x5c,0x70,0x86,0x98,0xaa,0xb3,0xa2,0x92,0x86,0x79,0x71,0x6a,0x68, 0x6a,0x6d,0x74,0x81,0x8d,0x90,0x7c,0x6b,0x59,0x48,0x34,0x1f,0x08,0x00,0x00, 0x00,0x08,0x1e,0x33,0x48,0x5d,0x72,0x88,0x9a,0xad,0xb0,0x9f,0x8f,0x82,0x75, 0x6d,0x6a,0x68,0x6d,0x74,0x81,0x8f,0x90,0x7c,0x6b,0x59,0x47,0x32,0x1c,0x06, 0x00,0x02,0x16,0x2b,0x3e,0x52,0x65,0x77,0x8b,0x9a,0xa2,0xa2,0x9a,0x89,0x76, 0x64,0x51,0x3d,0x29,0x15,0x00,0x00,0x00,0x00,0x00,0x0e,0x28,0x41,0x5a,0x72, 0x8b,0xa3,0xa2,0x8a,0x72,0x5c,0x51,0x65,0x7c,0x96,0xaa,0x90,0x76,0x5d,0x44, 0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2b,0x43, 0x5b,0x73,0x8c,0xa3,0x93,0x79,0x63,0x4e,0x52,0x68,0x81,0x98,0xa0,0x88,0x6e, 0x56,0x3f,0x38,0x4e,0x64,0x79,0x91,0x95,0x81,0x69,0x53,0x3d,0x27,0x11,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x28,0x3f,0x54,0x6a, 0x82,0x98,0xad,0xaa,0x93,0x7c,0x65,0x51,0x3a,0x25,0x0f,0x00,0x00,0x00,0x11, 0x29,0x41,0x57,0x65,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x76, 0x8d,0xa1,0xb3,0x9e,0x89,0x74,0x5f,0x4a,0x35,0x21,0x0b,0x00,0x04,0x1b,0x33, 0x4c,0x63,0x79,0x93,0xac,0xaa,0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51, 0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x11, 0x27,0x3e,0x53,0x68,0x7c,0x92,0xa7,0xb5,0xa2,0x90,0x81,0x70,0x63,0x59,0x53, 0x50,0x51,0x55,0x5f,0x6b,0x79,0x81,0x6d,0x5b,0x49,0x37,0x25,0x13,0x00,0x00, 0x00,0x00,0x11,0x28,0x3e,0x53,0x69,0x81,0x94,0xa8,0xb3,0xa0,0x8d,0x7b,0x6c, 0x5f,0x56,0x51,0x51,0x55,0x5f,0x6b,0x79,0x7c,0x6b,0x5a,0x48,0x36,0x24,0x11, 0x00,0x00,0x00,0x10,0x23,0x36,0x48,0x5a,0x6b,0x79,0x86,0x8b,0x8b,0x84,0x77, 0x69,0x59,0x47,0x35,0x22,0x0e,0x00,0x00,0x00,0x00,0x00,0x11,0x2a,0x43,0x5b, 0x74,0x90,0xa7,0x9d,0x86,0x6a,0x52,0x49,0x63,0x7b,0x95,0xaa,0x92,0x77,0x5d, 0x44,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2f, 0x47,0x60,0x77,0x93,0xa7,0x8e,0x74,0x5c,0x45,0x49,0x61,0x79,0x93,0xa5,0x8e, 0x73,0x5b,0x43,0x43,0x5a,0x70,0x87,0x9c,0x8a,0x73,0x5d,0x48,0x31,0x1c,0x06, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x28,0x3e,0x53, 0x6a,0x81,0x96,0xac,0xa7,0x93,0x79,0x65,0x4e,0x3a,0x23,0x0f,0x00,0x00,0x00, 0x09,0x20,0x35,0x44,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x5a,0x70, 0x86,0x9a,0xae,0xa5,0x90,0x7b,0x67,0x51,0x3c,0x28,0x13,0x00,0x00,0x02,0x19, 0x32,0x49,0x60,0x77,0x90,0xa9,0xa7,0x90,0x77,0x5f,0x47,0x30,0x18,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a, 0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x04, 0x1a,0x31,0x47,0x5d,0x73,0x8a,0x9e,0xb4,0xa9,0x94,0x81,0x6d,0x5c,0x4e,0x42, 0x3b,0x37,0x39,0x3e,0x4a,0x57,0x67,0x6b,0x5c,0x4a,0x38,0x27,0x15,0x04,0x00, 0x00,0x00,0x04,0x1a,0x31,0x48,0x5d,0x74,0x8b,0xa1,0xb6,0xa6,0x92,0x7c,0x69, 0x59,0x4a,0x3f,0x39,0x38,0x3e,0x4a,0x57,0x67,0x6b,0x5b,0x4a,0x38,0x26,0x14, 0x02,0x00,0x00,0x00,0x06,0x18,0x2b,0x3b,0x4a,0x59,0x64,0x6d,0x72,0x72,0x6d, 0x64,0x58,0x4a,0x3a,0x29,0x17,0x05,0x00,0x00,0x00,0x00,0x00,0x11,0x2b,0x44, 0x5d,0x74,0x90,0xaa,0x9d,0x84,0x6a,0x51,0x54,0x69,0x81,0x99,0xa6,0x8e,0x74, 0x5b,0x43,0x2a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19, 0x32,0x49,0x63,0x79,0x95,0xa5,0x8b,0x72,0x58,0x41,0x45,0x5d,0x76,0x90,0xa9, 0x90,0x76,0x5d,0x46,0x4f,0x64,0x7b,0x92,0x95,0x7c,0x68,0x52,0x3d,0x26,0x1e, 0x1d,0x19,0x11,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3c, 0x53,0x68,0x81,0x95,0xac,0xa7,0x90,0x79,0x63,0x4e,0x38,0x23,0x0c,0x00,0x00, 0x00,0x00,0x11,0x22,0x2e,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x3f,0x53,0x68, 0x7c,0x92,0xa7,0xac,0x98,0x84,0x6d,0x59,0x44,0x2f,0x1a,0x06,0x00,0x00,0x00, 0x16,0x2f,0x46,0x5d,0x74,0x8e,0xa7,0xa5,0x8c,0x74,0x5c,0x44,0x2d,0x15,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23, 0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00, 0x0b,0x22,0x39,0x50,0x66,0x7c,0x93,0xa9,0xb3,0x9d,0x88,0x72,0x5e,0x4a,0x3a, 0x2d,0x23,0x20,0x21,0x29,0x35,0x45,0x51,0x53,0x4b,0x3a,0x28,0x17,0x05,0x00, 0x00,0x00,0x00,0x0b,0x21,0x39,0x50,0x67,0x7c,0x95,0xab,0xb1,0x9b,0x86,0x6e, 0x5b,0x47,0x37,0x29,0x21,0x20,0x28,0x35,0x45,0x51,0x53,0x4a,0x38,0x27,0x15, 0x04,0x00,0x00,0x00,0x00,0x00,0x0c,0x1c,0x2c,0x3a,0x45,0x50,0x56,0x58,0x58, 0x56,0x4f,0x45,0x38,0x2a,0x1b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28, 0x42,0x5b,0x74,0x8e,0xa6,0xa0,0x88,0x6d,0x55,0x65,0x77,0x8c,0xa2,0x9d,0x87, 0x6d,0x55,0x3d,0x26,0x0f,0x0f,0x0f,0x0f,0x0e,0x09,0x00,0x00,0x00,0x00,0x00, 0x19,0x32,0x4b,0x63,0x7c,0x98,0xa3,0x8b,0x6f,0x56,0x3f,0x43,0x5b,0x74,0x90, 0xa7,0x93,0x77,0x5d,0x47,0x5a,0x70,0x88,0x9d,0x8a,0x72,0x5c,0x47,0x35,0x37, 0x37,0x35,0x30,0x28,0x1e,0x12,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26, 0x3c,0x51,0x68,0x7c,0x95,0xaa,0xa7,0x90,0x79,0x63,0x4c,0x37,0x21,0x0c,0x00, 0x00,0x00,0x00,0x00,0x0e,0x18,0x1d,0x1e,0x1e,0x1e,0x1e,0x22,0x37,0x4c,0x61, 0x75,0x8b,0xa0,0xb4,0xa0,0x8b,0x74,0x60,0x4c,0x37,0x22,0x0d,0x00,0x00,0x00, 0x00,0x14,0x2c,0x44,0x5b,0x72,0x8b,0xa3,0xa2,0x89,0x71,0x59,0x41,0x2a,0x12, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00, 0x00,0x11,0x29,0x40,0x57,0x6d,0x86,0x9c,0xb3,0xaa,0x93,0x7c,0x67,0x51,0x3d, 0x29,0x1b,0x20,0x21,0x21,0x21,0x23,0x31,0x38,0x3a,0x36,0x28,0x20,0x1c,0x12, 0x06,0x00,0x00,0x00,0x10,0x28,0x40,0x57,0x6e,0x86,0x9d,0xb4,0xa8,0x91,0x79, 0x63,0x4e,0x39,0x26,0x14,0x09,0x08,0x13,0x23,0x30,0x3b,0x3a,0x35,0x28,0x16, 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1a,0x26,0x30,0x39,0x3e,0x42, 0x41,0x3e,0x39,0x30,0x25,0x18,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d, 0x26,0x3e,0x57,0x6f,0x89,0xa0,0xa5,0x8d,0x74,0x69,0x79,0x8a,0x9b,0xa4,0x90, 0x79,0x63,0x4e,0x36,0x25,0x26,0x26,0x26,0x26,0x25,0x1f,0x13,0x03,0x00,0x00, 0x00,0x19,0x32,0x4b,0x63,0x7c,0x98,0xa3,0x8b,0x6f,0x56,0x3f,0x42,0x5b,0x74, 0x90,0xa7,0x93,0x77,0x5d,0x4f,0x65,0x7b,0x92,0x94,0x7c,0x67,0x51,0x47,0x4e, 0x51,0x51,0x4e,0x48,0x3f,0x33,0x26,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x0f, 0x25,0x3a,0x51,0x65,0x7c,0x93,0xaa,0xa5,0x8f,0x77,0x62,0x4c,0x37,0x21,0x0b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x07,0x1b,0x30,0x45,0x59, 0x6e,0x84,0x98,0xad,0xa7,0x92,0x7c,0x67,0x53,0x3e,0x29,0x15,0x00,0x00,0x00, 0x00,0x00,0x11,0x29,0x41,0x58,0x6f,0x89,0xa0,0xa0,0x87,0x6d,0x56,0x3f,0x28, 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e, 0x00,0x00,0x16,0x2e,0x45,0x5d,0x73,0x8b,0xa3,0xba,0xa3,0x8c,0x74,0x5d,0x47, 0x31,0x26,0x31,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x32, 0x26,0x16,0x02,0x00,0x00,0x15,0x2d,0x45,0x5c,0x74,0x8d,0xa4,0xb8,0xa1,0x8a, 0x72,0x5a,0x44,0x2e,0x18,0x03,0x00,0x00,0x01,0x0f,0x1b,0x22,0x23,0x1e,0x13, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x11,0x1b,0x22,0x27, 0x28,0x28,0x27,0x22,0x1b,0x11,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x20,0x39,0x51,0x69,0x81,0x99,0xad,0x95,0x7c,0x7c,0x8d,0x9d,0xa5,0x94, 0x82,0x6d,0x58,0x42,0x36,0x3e,0x3f,0x3f,0x3f,0x3f,0x3e,0x36,0x26,0x13,0x00, 0x00,0x00,0x19,0x32,0x49,0x62,0x79,0x95,0xa5,0x8b,0x72,0x58,0x41,0x45,0x5d, 0x76,0x90,0xa9,0x90,0x76,0x5d,0x5a,0x71,0x88,0x9e,0x89,0x72,0x5c,0x54,0x5e, 0x65,0x68,0x68,0x65,0x5f,0x54,0x48,0x39,0x28,0x16,0x04,0x00,0x00,0x00,0x00, 0x0f,0x23,0x3a,0x4e,0x65,0x79,0x93,0xa7,0xa5,0x8e,0x77,0x60,0x4b,0x35,0x1f, 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x29,0x3d,0x52, 0x67,0x7b,0x91,0xa6,0xae,0x9a,0x84,0x6e,0x5a,0x45,0x31,0x1c,0x07,0x00,0x00, 0x00,0x00,0x00,0x0e,0x26,0x3e,0x56,0x6d,0x86,0x9e,0x9c,0x84,0x6a,0x53,0x3c, 0x25,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35, 0x1e,0x00,0x02,0x19,0x32,0x49,0x60,0x77,0x90,0xa8,0xb5,0x9d,0x86,0x6d,0x56, 0x40,0x29,0x37,0x48,0x50,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x50, 0x49,0x38,0x26,0x0f,0x00,0x00,0x19,0x30,0x49,0x60,0x77,0x92,0xa9,0xb4,0x9d, 0x84,0x6c,0x54,0x3d,0x25,0x0e,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x0a,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x15,0x1e,0x25, 0x2b,0x2d,0x2d,0x2d,0x28,0x21,0x18,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x1a,0x31,0x49,0x61,0x77,0x90,0xa6,0xa0,0x8c,0x92,0xa1,0xa2,0x92, 0x82,0x70,0x5e,0x4a,0x37,0x4a,0x56,0x58,0x58,0x58,0x58,0x57,0x4a,0x37,0x20, 0x08,0x00,0x00,0x16,0x2f,0x47,0x60,0x77,0x92,0xa7,0x8f,0x74,0x5d,0x45,0x49, 0x62,0x79,0x93,0xa5,0x8d,0x72,0x5b,0x65,0x7c,0x93,0x94,0x7c,0x67,0x5b,0x69, 0x74,0x7c,0x84,0x84,0x7c,0x75,0x6a,0x5c,0x4a,0x39,0x26,0x13,0x00,0x00,0x00, 0x00,0x0c,0x23,0x38,0x4e,0x63,0x79,0x90,0xa7,0xa2,0x8e,0x74,0x60,0x49,0x35, 0x1e,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x21,0x36,0x4a, 0x5f,0x74,0x8a,0x9e,0xb3,0xa1,0x8c,0x76,0x62,0x4c,0x38,0x24,0x0e,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x24,0x3b,0x53,0x6a,0x84,0x9b,0x99,0x81,0x68,0x51, 0x39,0x22,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c, 0x35,0x1e,0x00,0x05,0x1b,0x35,0x4c,0x63,0x7b,0x94,0xac,0xb2,0x9a,0x84,0x6a, 0x52,0x3b,0x2d,0x44,0x58,0x69,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a, 0x6a,0x5a,0x45,0x2f,0x17,0x00,0x02,0x1b,0x32,0x4b,0x63,0x7b,0x95,0xac,0xb1, 0x9a,0x81,0x68,0x50,0x38,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1c,0x29,0x33, 0x3c,0x43,0x46,0x46,0x44,0x3f,0x37,0x2d,0x20,0x13,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x13,0x25,0x35,0x45,0x57,0x6d,0x86,0x9c,0xaf,0xa5,0xa8,0x9d,0x8f, 0x81,0x6e,0x5e,0x4c,0x3a,0x41,0x59,0x6c,0x6f,0x6f,0x6f,0x6f,0x6c,0x58,0x40, 0x27,0x0e,0x00,0x00,0x12,0x2b,0x43,0x5b,0x72,0x8c,0xa3,0x93,0x79,0x63,0x4e, 0x52,0x69,0x81,0x98,0x9f,0x88,0x6e,0x5b,0x71,0x89,0x9e,0x89,0x71,0x5b,0x6d, 0x7c,0x8c,0x96,0x9a,0x9a,0x96,0x8d,0x81,0x6e,0x5c,0x49,0x34,0x1f,0x0b,0x00, 0x00,0x00,0x0c,0x21,0x37,0x4c,0x63,0x79,0x90,0xa7,0xa2,0x8b,0x74,0x5d,0x49, 0x32,0x1e,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1a,0x2f,0x43, 0x58,0x6d,0x82,0x98,0xac,0xa8,0x93,0x7c,0x69,0x54,0x3f,0x2b,0x16,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x38,0x51,0x68,0x81,0x93,0x93,0x7c,0x65, 0x4e,0x36,0x1f,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79,0x63, 0x4c,0x35,0x1e,0x00,0x05,0x1d,0x35,0x4c,0x65,0x7c,0x95,0xaf,0xb1,0x98,0x81, 0x68,0x4f,0x37,0x30,0x49,0x60,0x77,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, 0x84,0x79,0x63,0x49,0x32,0x19,0x00,0x04,0x1b,0x35,0x4c,0x65,0x7c,0x98,0xaf, 0xaf,0x98,0x7c,0x65,0x4e,0x35,0x1d,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x1f,0x2e,0x3c, 0x48,0x52,0x5a,0x5d,0x5d,0x5c,0x55,0x4c,0x40,0x31,0x23,0x13,0x02,0x00,0x00, 0x00,0x00,0x0f,0x23,0x35,0x47,0x57,0x67,0x75,0x87,0x9b,0xb4,0xb5,0x9d,0x8a, 0x79,0x6b,0x5c,0x4c,0x3a,0x31,0x49,0x61,0x79,0x8b,0x8b,0x8b,0x8b,0x72,0x5a, 0x41,0x28,0x0f,0x00,0x00,0x0d,0x25,0x3d,0x54,0x6c,0x84,0x9b,0x9c,0x86,0x70, 0x61,0x63,0x74,0x8b,0xa1,0x96,0x81,0x67,0x67,0x7c,0x94,0x93,0x7c,0x67,0x6a, 0x7c,0x91,0xa1,0x98,0x90,0x90,0x98,0xa2,0x92,0x81,0x6b,0x57,0x41,0x2a,0x15, 0x00,0x00,0x00,0x0b,0x21,0x37,0x4c,0x62,0x77,0x8f,0xa5,0xa0,0x8b,0x72,0x5d, 0x47,0x32,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x27,0x3c, 0x51,0x65,0x79,0x90,0xa5,0xaf,0x9b,0x86,0x70,0x5c,0x47,0x32,0x1d,0x09,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1e,0x36,0x4e,0x65,0x79,0x79,0x79,0x77, 0x62,0x4b,0x33,0x1c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95,0x79, 0x63,0x4c,0x35,0x1e,0x00,0x05,0x1e,0x35,0x4e,0x65,0x7c,0x98,0xaf,0xb1,0x98, 0x81,0x65,0x4e,0x37,0x30,0x49,0x60,0x77,0x93,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d, 0x9d,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xaf,0x98,0x7c,0x65,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1b,0x2d,0x3d, 0x4e,0x5c,0x68,0x71,0x74,0x77,0x73,0x6b,0x60,0x52,0x42,0x32,0x20,0x0e,0x00, 0x00,0x00,0x08,0x1d,0x32,0x45,0x59,0x6a,0x7b,0x8b,0x9a,0xaa,0xaf,0xb5,0x9c, 0x88,0x72,0x5e,0x4a,0x39,0x29,0x39,0x51,0x68,0x81,0x98,0xa5,0x9b,0x84,0x6a, 0x52,0x3a,0x23,0x0b,0x00,0x00,0x06,0x1e,0x35,0x4b,0x62,0x77,0x8f,0xa2,0x94, 0x84,0x79,0x79,0x88,0x99,0x9e,0x8a,0x73,0x5d,0x72,0x89,0x9d,0x88,0x71,0x61, 0x76,0x8d,0xa2,0x95,0x84,0x76,0x75,0x82,0x94,0xa2,0x8f,0x79,0x62,0x4b,0x35, 0x1d,0x06,0x00,0x00,0x0a,0x1f,0x35,0x4b,0x60,0x77,0x8e,0xa5,0xa0,0x89,0x72, 0x5c,0x47,0x31,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x34, 0x49,0x5e,0x72,0x89,0x9d,0xb2,0xa2,0x8d,0x77,0x63,0x4f,0x39,0x25,0x10,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1a,0x30,0x45,0x59,0x62,0x63,0x63, 0x62,0x57,0x43,0x2d,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x95, 0x79,0x63,0x4c,0x35,0x1e,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x96,0xaf,0xb1, 0x98,0x81,0x68,0x50,0x38,0x30,0x49,0x60,0x77,0x93,0xaa,0xaa,0xaa,0xaa,0xac, 0xb6,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c, 0x98,0xaf,0xaf,0x98,0x7c,0x65,0x4e,0x35,0x1e,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x38, 0x4a,0x5c,0x6d,0x7b,0x88,0x8f,0x90,0x8b,0x81,0x70,0x61,0x50,0x3e,0x2b,0x18, 0x00,0x00,0x00,0x15,0x2a,0x40,0x55,0x69,0x7b,0x8f,0x9f,0xad,0x9f,0x95,0xa1, 0xaa,0x96,0x82,0x6e,0x5b,0x49,0x37,0x42,0x5a,0x71,0x89,0xa0,0xaa,0x93,0x79, 0x62,0x4a,0x33,0x1b,0x04,0x00,0x00,0x00,0x15,0x2a,0x41,0x57,0x6b,0x81,0x91, 0xa1,0x99,0x93,0x93,0x9b,0x9d,0x8f,0x7b,0x67,0x68,0x7c,0x94,0x92,0x7b,0x65, 0x6a,0x82,0x99,0x9d,0x88,0x72,0x60,0x5f,0x70,0x87,0x9c,0x9b,0x84,0x6b,0x54, 0x3d,0x24,0x0c,0x00,0x00,0x09,0x1e,0x35,0x49,0x60,0x74,0x8e,0xa2,0xa0,0x89, 0x72,0x5b,0x45,0x30,0x19,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x18,0x2d, 0x42,0x57,0x6b,0x81,0x95,0xaa,0xa9,0x94,0x81,0x6a,0x56,0x41,0x2c,0x17,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x25,0x37,0x46,0x4c,0x4c, 0x4c,0x4b,0x45,0x35,0x23,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0x07,0x06,0x02,0x00,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac, 0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x05,0x1b,0x35,0x4c,0x64,0x7c,0x95,0xac, 0xb2,0x9a,0x84,0x6a,0x52,0x3b,0x30,0x49,0x60,0x77,0x93,0x93,0x93,0x93,0x93, 0x96,0xaa,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x02,0x1b,0x32,0x4c,0x63, 0x7c,0x95,0xac,0xb1,0x9a,0x81,0x68,0x50,0x39,0x20,0x09,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x16,0x2b, 0x3f,0x53,0x66,0x79,0x8d,0x9d,0xa7,0xa7,0xa1,0x92,0x81,0x6d,0x5a,0x47,0x33, 0x20,0x00,0x00,0x08,0x1f,0x36,0x4c,0x62,0x77,0x8d,0x9f,0xb1,0x9d,0x8d,0x7c, 0x92,0xa6,0xa5,0x92,0x81,0x6c,0x5b,0x49,0x4e,0x63,0x79,0x93,0xaa,0xa0,0x89, 0x71,0x5a,0x42,0x2b,0x13,0x00,0x00,0x00,0x00,0x09,0x1f,0x34,0x49,0x5c,0x6d, 0x7c,0x8b,0x93,0x98,0x98,0x93,0x89,0x79,0x69,0x5d,0x73,0x8a,0x9d,0x87,0x70, 0x5a,0x70,0x8a,0xa2,0x96,0x7c,0x65,0x4f,0x4e,0x64,0x7b,0x94,0xa3,0x8b,0x72, 0x5a,0x43,0x2a,0x12,0x00,0x00,0x07,0x1e,0x32,0x49,0x5d,0x74,0x8b,0xa2,0x9d, 0x88,0x6f,0x5b,0x44,0x2f,0x19,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26, 0x3a,0x4f,0x64,0x79,0x8f,0xa3,0xb1,0x9c,0x88,0x72,0x5c,0x48,0x34,0x1f,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x25,0x30,0x35, 0x35,0x35,0x35,0x30,0x24,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x11,0x1b,0x20,0x20,0x1a,0x10,0x0c,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1, 0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x02,0x1a,0x32,0x49,0x61,0x79,0x92, 0xa9,0xb6,0x9d,0x86,0x6d,0x56,0x40,0x2f,0x49,0x5f,0x74,0x77,0x77,0x77,0x77, 0x77,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x01,0x19,0x31,0x49, 0x60,0x79,0x92,0xaa,0xb4,0x9d,0x84,0x6c,0x54,0x3d,0x25,0x0e,0x00,0x00,0x00, 0x00,0x00,0x0c,0x15,0x19,0x17,0x10,0x05,0x00,0x00,0x00,0x00,0x00,0x02,0x19, 0x2d,0x42,0x56,0x6a,0x81,0x95,0xa9,0xbc,0xbf,0xaf,0x9d,0x8a,0x75,0x62,0x4e, 0x39,0x25,0x00,0x00,0x0f,0x27,0x3f,0x57,0x6d,0x86,0x9b,0xaf,0xa1,0x8d,0x79, 0x6e,0x84,0x98,0xaa,0xa2,0x90,0x7c,0x6d,0x5b,0x59,0x6e,0x87,0x9c,0xac,0x96, 0x7c,0x67,0x50,0x39,0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x12,0x26,0x38,0x4a, 0x5b,0x69,0x73,0x7b,0x81,0x7c,0x79,0x72,0x67,0x57,0x69,0x81,0x95,0x92,0x79, 0x64,0x5d,0x74,0x8f,0xa7,0x91,0x77,0x5f,0x47,0x45,0x5d,0x74,0x90,0xa7,0x90, 0x77,0x5e,0x46,0x2e,0x16,0x00,0x00,0x07,0x1b,0x32,0x47,0x5d,0x72,0x8b,0xa0, 0x9d,0x86,0x6f,0x58,0x44,0x2d,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x0a,0x1f, 0x33,0x48,0x5c,0x71,0x88,0x9b,0xb1,0xa3,0x8f,0x79,0x64,0x4f,0x3b,0x26,0x11, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x10,0x18, 0x1b,0x1b,0x1b,0x1b,0x18,0x0f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0a,0x18,0x26,0x31,0x37,0x36,0x2f,0x22,0x13,0x23,0x3a,0x51,0x68,0x84,0x9a, 0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x17,0x2e,0x46,0x5d,0x74, 0x8d,0xa4,0xba,0xa3,0x8b,0x74,0x5d,0x47,0x30,0x40,0x52,0x5d,0x5d,0x5d,0x5d, 0x5d,0x72,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x16,0x2d, 0x45,0x5d,0x74,0x8e,0xa5,0xb9,0xa2,0x8a,0x72,0x5a,0x44,0x2d,0x17,0x02,0x00, 0x00,0x01,0x11,0x21,0x2b,0x30,0x2e,0x26,0x18,0x08,0x00,0x00,0x00,0x00,0x02, 0x18,0x2d,0x41,0x56,0x6a,0x7c,0x93,0xa5,0xb2,0xb4,0xb7,0xa3,0x90,0x79,0x65, 0x51,0x3c,0x28,0x00,0x00,0x15,0x2d,0x46,0x5d,0x76,0x90,0xa6,0xab,0x94,0x7c, 0x69,0x5f,0x73,0x88,0x9a,0xad,0xa1,0x90,0x81,0x6e,0x65,0x7b,0x92,0xa7,0xa0, 0x8a,0x73,0x5c,0x46,0x2f,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x28, 0x38,0x47,0x53,0x5d,0x63,0x65,0x65,0x62,0x5b,0x51,0x5d,0x74,0x8b,0x9c,0x87, 0x6e,0x59,0x60,0x77,0x93,0xa7,0x8e,0x74,0x5b,0x43,0x41,0x5a,0x72,0x8e,0xa5, 0x95,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x05,0x1b,0x31,0x47,0x5c,0x72,0x89, 0x8e,0x8e,0x86,0x6d,0x58,0x42,0x2d,0x16,0x02,0x00,0x00,0x00,0x00,0x02,0x17, 0x2c,0x40,0x55,0x6a,0x81,0x94,0xa9,0xab,0x96,0x81,0x6b,0x57,0x42,0x2d,0x19, 0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x0f,0x1d,0x2b,0x39,0x46,0x50,0x4f,0x45,0x34,0x21,0x23,0x3c,0x53,0x6a,0x84, 0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x12,0x29,0x41,0x58, 0x6f,0x87,0x9d,0xb4,0xaa,0x93,0x7c,0x65,0x51,0x3b,0x2f,0x3f,0x46,0x47,0x47, 0x47,0x5b,0x72,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x11, 0x28,0x40,0x58,0x6f,0x87,0x9e,0xb5,0xa8,0x91,0x79,0x63,0x4e,0x38,0x24,0x13, 0x0a,0x0b,0x14,0x23,0x33,0x42,0x49,0x46,0x3a,0x2a,0x18,0x06,0x00,0x00,0x00, 0x00,0x14,0x28,0x3c,0x50,0x63,0x75,0x88,0x94,0x9b,0x9d,0xa5,0xa6,0x92,0x79, 0x65,0x51,0x3c,0x28,0x00,0x00,0x19,0x31,0x49,0x63,0x7c,0x96,0xae,0xa5,0x8c, 0x73,0x5c,0x50,0x63,0x75,0x8b,0x9b,0xad,0xa2,0x92,0x82,0x73,0x89,0x9e,0xaa, 0x94,0x7c,0x68,0x51,0x3b,0x25,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x16,0x25,0x32,0x3d,0x45,0x4b,0x4e,0x4d,0x4b,0x45,0x53,0x69,0x81,0x96,0x91, 0x79,0x63,0x4e,0x60,0x79,0x93,0xa7,0x8e,0x74,0x5b,0x42,0x3f,0x58,0x72,0x8b, 0xa5,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x04,0x18,0x2f,0x45,0x5a,0x6d, 0x74,0x74,0x74,0x74,0x69,0x55,0x40,0x2a,0x16,0x00,0x00,0x00,0x00,0x00,0x10, 0x24,0x39,0x4e,0x62,0x77,0x8d,0xa2,0xb2,0x9e,0x89,0x73,0x5e,0x4a,0x34,0x20, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x14,0x23,0x31,0x3e,0x4c,0x5a,0x66,0x64,0x55,0x42,0x2f,0x27,0x3e,0x56,0x6c, 0x84,0x9b,0xb2,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1d,0x00,0x00,0x0c,0x23,0x3a, 0x51,0x67,0x81,0x95,0xab,0xb2,0x9c,0x88,0x71,0x5d,0x4a,0x3a,0x2d,0x2d,0x2d, 0x2d,0x42,0x5b,0x72,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00, 0x0b,0x22,0x39,0x51,0x67,0x81,0x96,0xac,0xb1,0x9a,0x84,0x6d,0x5a,0x47,0x36, 0x29,0x23,0x23,0x29,0x36,0x45,0x57,0x62,0x5d,0x4c,0x3a,0x28,0x16,0x04,0x00, 0x00,0x00,0x0d,0x21,0x33,0x46,0x57,0x65,0x73,0x7c,0x84,0x84,0x96,0xa5,0x90, 0x79,0x65,0x51,0x3c,0x28,0x00,0x02,0x1b,0x35,0x4e,0x66,0x81,0x98,0xb1,0xa2, 0x89,0x6f,0x56,0x40,0x53,0x65,0x77,0x8b,0x9b,0xad,0xa5,0x95,0x89,0x98,0xac, 0x9b,0x88,0x72,0x5b,0x46,0x30,0x19,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x10,0x1c,0x26,0x2e,0x32,0x35,0x35,0x32,0x49,0x5f,0x74,0x8b,0x9b, 0x86,0x6e,0x58,0x47,0x60,0x79,0x93,0xa7,0x8e,0x74,0x5b,0x42,0x3f,0x58,0x72, 0x8b,0xa5,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x00,0x05,0x16,0x28,0x3b,0x4c, 0x59,0x5b,0x5b,0x5b,0x5b,0x57,0x48,0x38,0x23,0x12,0x01,0x00,0x00,0x00,0x08, 0x1d,0x32,0x47,0x5b,0x70,0x86,0x9a,0xaf,0xa5,0x90,0x79,0x65,0x51,0x3c,0x35, 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x24,0x13,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x10,0x24,0x35,0x44,0x52,0x5f,0x6d,0x7b,0x75,0x62,0x50,0x42,0x3d,0x46,0x5b, 0x71,0x89,0x9f,0xb6,0xa6,0x90,0x77,0x61,0x49,0x32,0x1b,0x00,0x00,0x05,0x1c, 0x32,0x49,0x5f,0x74,0x8c,0xa1,0xb6,0xa7,0x93,0x81,0x6d,0x5c,0x4e,0x44,0x3e, 0x3a,0x3b,0x42,0x5b,0x72,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00, 0x00,0x04,0x1b,0x32,0x49,0x5f,0x75,0x8c,0xa2,0xb7,0xa5,0x90,0x7b,0x69,0x57, 0x4a,0x40,0x3b,0x3b,0x40,0x4a,0x58,0x67,0x79,0x6e,0x5c,0x4a,0x38,0x26,0x15, 0x02,0x00,0x00,0x04,0x16,0x27,0x37,0x47,0x54,0x5f,0x66,0x6d,0x81,0x96,0xa0, 0x8d,0x77,0x64,0x50,0x3c,0x27,0x00,0x02,0x1b,0x34,0x4d,0x65,0x81,0x98,0xb1, 0xa5,0x8b,0x72,0x5a,0x43,0x43,0x53,0x65,0x77,0x89,0x9b,0xab,0xa8,0xa0,0xa8, 0xa3,0x8f,0x79,0x63,0x4f,0x3d,0x35,0x2e,0x20,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x0f,0x16,0x1b,0x1b,0x28,0x3e,0x54,0x6a,0x81,0x96, 0x90,0x79,0x63,0x4d,0x47,0x5e,0x77,0x91,0xa7,0x90,0x74,0x5d,0x44,0x42,0x5b, 0x72,0x8e,0xa5,0x93,0x79,0x60,0x49,0x30,0x16,0x00,0x00,0x11,0x24,0x36,0x47, 0x56,0x62,0x6c,0x6f,0x6f,0x6a,0x61,0x53,0x43,0x33,0x20,0x0e,0x00,0x00,0x01, 0x16,0x2b,0x3f,0x54,0x69,0x7c,0x93,0xa7,0xac,0x98,0x84,0x6d,0x58,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x37,0x22,0x0e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x19,0x31,0x45,0x57,0x65,0x73,0x82,0x90,0x84,0x72,0x63,0x59,0x56,0x5a, 0x67,0x79,0x90,0xa5,0xb8,0xa1,0x8b,0x72,0x5d,0x46,0x2f,0x17,0x00,0x00,0x00, 0x14,0x29,0x40,0x56,0x6a,0x81,0x95,0xa9,0xb5,0xa1,0x8f,0x7c,0x70,0x63,0x5b, 0x56,0x53,0x53,0x57,0x5f,0x72,0x8b,0xa5,0xac,0x93,0x79,0x63,0x49,0x32,0x19, 0x00,0x00,0x00,0x12,0x29,0x3f,0x56,0x6b,0x81,0x96,0xaa,0xb2,0x9f,0x8c,0x79, 0x6b,0x5f,0x57,0x53,0x53,0x57,0x60,0x6c,0x79,0x8b,0x81,0x6d,0x5b,0x49,0x37, 0x24,0x0e,0x00,0x00,0x0a,0x19,0x25,0x2e,0x38,0x44,0x52,0x63,0x74,0x89,0x9b, 0x9a,0x88,0x72,0x5e,0x4b,0x36,0x22,0x00,0x00,0x18,0x30,0x49,0x62,0x79,0x94, 0xad,0xaa,0x92,0x7b,0x65,0x55,0x4a,0x47,0x55,0x65,0x75,0x88,0x9a,0xb1,0xb9, 0xb6,0x9d,0x84,0x75,0x69,0x5d,0x54,0x4d,0x43,0x33,0x1f,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x33,0x49,0x60,0x75,0x8c, 0x9b,0x84,0x6d,0x58,0x42,0x44,0x5b,0x74,0x8e,0xa6,0x93,0x79,0x61,0x48,0x47, 0x5e,0x77,0x90,0xa7,0x90,0x76,0x5d,0x46,0x2d,0x14,0x00,0x07,0x1c,0x30,0x43, 0x56,0x67,0x76,0x84,0x8b,0x8a,0x82,0x74,0x64,0x52,0x40,0x2c,0x18,0x00,0x00, 0x0d,0x23,0x38,0x4c,0x62,0x75,0x8b,0xa1,0xb5,0x9e,0x8a,0x74,0x68,0x68,0x68, 0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x67,0x5a,0x44,0x2d,0x16,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x1e,0x35,0x4e,0x64,0x79,0x88,0x95,0xa3,0x96,0x86,0x77,0x6f,0x6d, 0x71,0x79,0x89,0x9b,0xaf,0xaf,0x9a,0x84,0x6d,0x57,0x41,0x2a,0x13,0x00,0x00, 0x00,0x0a,0x1f,0x35,0x4a,0x5f,0x72,0x88,0x9a,0xac,0xb3,0xa1,0x92,0x86,0x79, 0x72,0x6d,0x6b,0x6d,0x6f,0x76,0x82,0x90,0xa7,0xac,0x93,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x00,0x09,0x1f,0x35,0x4a,0x5f,0x73,0x89,0x9b,0xae,0xaf,0x9d, 0x8f,0x81,0x76,0x6f,0x6d,0x6d,0x6f,0x76,0x82,0x8f,0x9e,0x90,0x7c,0x6c,0x5a, 0x44,0x2e,0x16,0x00,0x06,0x1a,0x2a,0x38,0x43,0x4c,0x57,0x63,0x72,0x84,0x94, 0xa3,0x91,0x7c,0x6a,0x57,0x44,0x31,0x1d,0x00,0x00,0x14,0x2c,0x45,0x5d,0x74, 0x8d,0xa4,0xb3,0x9e,0x8b,0x77,0x6a,0x62,0x60,0x63,0x6b,0x75,0x84,0x97,0xaf, 0xb2,0xb4,0xa8,0x98,0x8b,0x81,0x74,0x6b,0x65,0x57,0x41,0x29,0x13,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x3f,0x54,0x6b,0x82, 0x98,0x90,0x77,0x62,0x4c,0x37,0x3f,0x57,0x6f,0x89,0xa0,0x98,0x81,0x68,0x52, 0x51,0x67,0x7c,0x96,0xa1,0x8a,0x71,0x59,0x41,0x29,0x10,0x00,0x0e,0x23,0x38, 0x4d,0x62,0x75,0x89,0x99,0xa2,0xa1,0x96,0x86,0x71,0x5d,0x49,0x34,0x1f,0x00, 0x00,0x16,0x2e,0x45,0x5a,0x6e,0x84,0x99,0xae,0xb1,0x98,0x82,0x81,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x63,0x49,0x30,0x19,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x06,0x1d,0x35,0x4c,0x61,0x74,0x89,0x9b,0xad,0xa6,0x99,0x8f,0x89, 0x86,0x89,0x90,0x9b,0xab,0xb5,0xa3,0x8f,0x79,0x64,0x4f,0x39,0x23,0x0c,0x00, 0x00,0x00,0x00,0x14,0x29,0x3d,0x51,0x65,0x77,0x8b,0x9b,0xaa,0xb3,0xa6,0x9b, 0x92,0x8b,0x88,0x86,0x86,0x89,0x8e,0x96,0xa3,0xb3,0xa9,0x93,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x00,0x00,0x14,0x29,0x3e,0x51,0x65,0x77,0x8c,0x9d,0xac, 0xb0,0xa2,0x96,0x8e,0x89,0x86,0x86,0x89,0x8e,0x98,0xa3,0xb1,0xa1,0x90,0x79, 0x63,0x49,0x32,0x19,0x00,0x10,0x25,0x38,0x4a,0x58,0x62,0x6b,0x75,0x84,0x92, 0xa2,0x95,0x84,0x72,0x60,0x4e,0x3b,0x28,0x15,0x00,0x00,0x0d,0x25,0x3d,0x54, 0x6b,0x82,0x98,0xab,0xad,0x9b,0x8c,0x81,0x79,0x77,0x79,0x82,0x8c,0x99,0xa6, 0xa7,0x9b,0x9e,0xaa,0xad,0xa1,0x95,0x8b,0x84,0x79,0x60,0x47,0x2d,0x16,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x34,0x4a,0x60,0x76, 0x8d,0x9a,0x84,0x6c,0x57,0x41,0x2b,0x39,0x50,0x67,0x81,0x96,0xa0,0x8a,0x74, 0x65,0x64,0x74,0x89,0xa0,0x98,0x81,0x6a,0x51,0x3a,0x23,0x0b,0x00,0x13,0x28, 0x3e,0x53,0x68,0x7c,0x93,0xa8,0xb9,0xb7,0xa4,0x90,0x79,0x63,0x4e,0x37,0x23, 0x00,0x00,0x19,0x32,0x4c,0x63,0x7c,0x92,0xa6,0xbb,0xb8,0xa4,0x9a,0x9a,0x9a, 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x95,0x79,0x63,0x49,0x30,0x19, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x17,0x2c,0x40,0x54,0x67,0x79,0x8d,0x9b,0xaa,0xae,0xa5, 0xa0,0xa0,0xa0,0xa6,0xb0,0xb1,0xa3,0x94,0x82,0x6d,0x59,0x45,0x30,0x1b,0x05, 0x00,0x00,0x00,0x00,0x08,0x1c,0x30,0x43,0x55,0x67,0x77,0x89,0x96,0xa3,0xae, 0xb1,0xa9,0xa3,0xa0,0x9e,0x9f,0xa0,0xa5,0xad,0xad,0xa2,0x95,0x88,0x75,0x62, 0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x08,0x1c,0x30,0x43,0x56,0x67,0x79,0x8b, 0x9a,0xa6,0xb1,0xad,0xa5,0xa0,0x9e,0x9f,0xa0,0xa5,0xae,0xaa,0x9d,0x8f,0x7c, 0x6b,0x5a,0x44,0x2f,0x16,0x00,0x14,0x2a,0x3f,0x53,0x66,0x77,0x82,0x8c,0x98, 0xa2,0x94,0x86,0x75,0x65,0x53,0x42,0x31,0x1e,0x0c,0x00,0x00,0x06,0x1d,0x32, 0x49,0x5f,0x74,0x88,0x9a,0xa8,0xae,0xa2,0x98,0x93,0x93,0x93,0x9a,0xa3,0xad, 0xa1,0x94,0x84,0x89,0x95,0xa2,0xac,0xac,0xa3,0x8e,0x74,0x5d,0x45,0x2c,0x14, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x29,0x40,0x56,0x6b, 0x84,0x99,0x8f,0x77,0x61,0x4b,0x36,0x20,0x31,0x48,0x5d,0x74,0x8b,0x9e,0x9a, 0x88,0x7c,0x7c,0x88,0x98,0x9f,0x8b,0x75,0x60,0x49,0x32,0x1c,0x04,0x00,0x14, 0x28,0x3f,0x53,0x6a,0x81,0x96,0xab,0xc0,0xbc,0xa7,0x92,0x79,0x65,0x4e,0x37, 0x23,0x00,0x00,0x19,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0x95,0x79,0x63,0x49,0x30, 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x20,0x34,0x46,0x58,0x69,0x79,0x89,0x95,0xa0, 0xa7,0xab,0xac,0xac,0xaa,0xa5,0x9c,0x90,0x82,0x70,0x5f,0x4c,0x39,0x25,0x10, 0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x21,0x33,0x45,0x55,0x65,0x74,0x82,0x8e, 0x98,0xa0,0xa6,0xaa,0xad,0xaf,0xac,0xaa,0xa5,0x9f,0x96,0x8c,0x81,0x72,0x63, 0x53,0x41,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x0e,0x21,0x34,0x45,0x57,0x67, 0x75,0x84,0x90,0x9a,0xa2,0xa8,0xac,0xaf,0xad,0xaa,0xa5,0x9e,0x94,0x89,0x79, 0x6b,0x5b,0x49,0x38,0x24,0x0e,0x00,0x13,0x29,0x3d,0x51,0x64,0x76,0x8b,0x9e, 0x9a,0x8f,0x82,0x74,0x65,0x55,0x46,0x35,0x24,0x13,0x00,0x00,0x00,0x00,0x11, 0x27,0x3c,0x50,0x63,0x75,0x86,0x94,0x9e,0xa7,0xac,0xac,0xaa,0xab,0xa7,0xa0, 0x96,0x8b,0x7c,0x70,0x72,0x81,0x8b,0x96,0x9f,0x9f,0x87,0x6d,0x55,0x3d,0x25, 0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1f,0x35,0x4a,0x61, 0x76,0x8f,0x99,0x84,0x6c,0x56,0x40,0x2a,0x15,0x27,0x3d,0x52,0x67,0x79,0x8d, 0x9c,0x9d,0x95,0x95,0x9c,0x9d,0x8f,0x7b,0x68,0x53,0x3e,0x28,0x12,0x00,0x00, 0x11,0x26,0x3b,0x50,0x65,0x79,0x8f,0xa1,0xad,0xac,0x9e,0x8b,0x75,0x61,0x4c, 0x36,0x22,0x00,0x00,0x19,0x32,0x4c,0x63,0x7c,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x79,0x63,0x49, 0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x25,0x37,0x47,0x57,0x67,0x74,0x81, 0x89,0x90,0x93,0x95,0x95,0x93,0x8e,0x86,0x7b,0x6e,0x5f,0x50,0x3e,0x2c,0x18, 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x23,0x33,0x43,0x52,0x60,0x6c, 0x76,0x81,0x89,0x8f,0x93,0x95,0x95,0x95,0x93,0x8e,0x89,0x81,0x75,0x6a,0x5e, 0x51,0x41,0x31,0x20,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x23,0x35,0x45, 0x53,0x62,0x6e,0x79,0x84,0x8b,0x90,0x93,0x95,0x95,0x93,0x8f,0x88,0x7c,0x72, 0x65,0x58,0x49,0x38,0x26,0x15,0x02,0x00,0x0e,0x21,0x35,0x48,0x5b,0x6e,0x82, 0x8d,0x84,0x79,0x6e,0x62,0x53,0x45,0x37,0x26,0x17,0x05,0x00,0x00,0x00,0x00, 0x05,0x1a,0x2e,0x40,0x52,0x62,0x71,0x7c,0x89,0x90,0x93,0x95,0x95,0x93,0x8f, 0x89,0x81,0x74,0x69,0x5c,0x5d,0x69,0x74,0x81,0x89,0x90,0x81,0x66,0x4e,0x36, 0x1e,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x26,0x3f,0x56, 0x6c,0x84,0x95,0x8d,0x76,0x61,0x4a,0x35,0x1f,0x09,0x1c,0x30,0x45,0x57,0x69, 0x79,0x88,0x90,0x95,0x95,0x91,0x89,0x79,0x6a,0x59,0x45,0x31,0x1c,0x07,0x00, 0x00,0x0b,0x20,0x34,0x48,0x5b,0x6e,0x81,0x8f,0x95,0x94,0x8c,0x7c,0x6b,0x58, 0x44,0x30,0x1c,0x00,0x00,0x19,0x32,0x4b,0x62,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x62, 0x49,0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x26,0x36,0x45,0x53,0x5f, 0x69,0x71,0x76,0x79,0x79,0x79,0x79,0x74,0x6e,0x65,0x5a,0x4c,0x3e,0x2e,0x1d, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x21,0x30,0x3e,0x4b, 0x57,0x61,0x69,0x70,0x75,0x79,0x79,0x79,0x79,0x77,0x74,0x6f,0x68,0x5f,0x54, 0x49,0x3c,0x2f,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x23, 0x32,0x40,0x4d,0x59,0x63,0x6b,0x72,0x77,0x79,0x79,0x79,0x79,0x75,0x6f,0x67, 0x5c,0x51,0x44,0x36,0x26,0x16,0x04,0x00,0x00,0x05,0x18,0x2c,0x3f,0x52,0x65, 0x77,0x75,0x6d,0x64,0x5a,0x4e,0x41,0x35,0x26,0x17,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x0b,0x1e,0x2f,0x40,0x4f,0x5b,0x67,0x70,0x76,0x79,0x79,0x79,0x79, 0x75,0x70,0x68,0x5f,0x53,0x47,0x48,0x53,0x5f,0x68,0x70,0x77,0x75,0x5f,0x47, 0x2f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28,0x41, 0x5b,0x71,0x79,0x79,0x79,0x6b,0x56,0x3f,0x29,0x14,0x00,0x0e,0x22,0x35,0x47, 0x57,0x64,0x70,0x77,0x79,0x79,0x77,0x71,0x65,0x58,0x47,0x35,0x23,0x0f,0x00, 0x00,0x00,0x02,0x17,0x29,0x3d,0x4e,0x5e,0x6c,0x76,0x79,0x79,0x75,0x6a,0x5b, 0x4b,0x39,0x26,0x13,0x00,0x00,0x15,0x2d,0x45,0x57,0x62,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62, 0x57,0x42,0x2b,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x24,0x32,0x3f, 0x49,0x52,0x5a,0x5e,0x63,0x63,0x63,0x62,0x5d,0x58,0x50,0x45,0x39,0x2c,0x1c, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x1c,0x29, 0x36,0x40,0x4a,0x51,0x58,0x5d,0x60,0x63,0x63,0x63,0x60,0x5d,0x58,0x51,0x49, 0x3f,0x33,0x28,0x1b,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x0f,0x1e,0x2b,0x38,0x42,0x4c,0x54,0x5a,0x5e,0x62,0x63,0x63,0x60,0x5d,0x58, 0x50,0x47,0x3b,0x30,0x21,0x13,0x04,0x00,0x00,0x00,0x00,0x10,0x23,0x36,0x48, 0x57,0x60,0x5f,0x57,0x4f,0x45,0x3a,0x2f,0x21,0x15,0x06,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x1d,0x2c,0x3a,0x46,0x50,0x58,0x5d,0x62,0x63,0x63, 0x61,0x5d,0x58,0x51,0x48,0x3e,0x32,0x32,0x3d,0x48,0x51,0x59,0x60,0x62,0x53, 0x3e,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24, 0x3b,0x51,0x61,0x63,0x63,0x63,0x5c,0x4a,0x34,0x1e,0x08,0x00,0x00,0x12,0x23, 0x34,0x43,0x4f,0x59,0x60,0x63,0x63,0x60,0x5a,0x50,0x44,0x35,0x25,0x13,0x00, 0x00,0x00,0x00,0x00,0x0b,0x1d,0x2e,0x3e,0x4c,0x57,0x5f,0x63,0x63,0x5d,0x55, 0x49,0x3a,0x2a,0x19,0x07,0x00,0x00,0x0c,0x21,0x35,0x42,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x42,0x33,0x1f,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x11,0x1e, 0x29,0x33,0x3c,0x43,0x47,0x49,0x49,0x49,0x49,0x46,0x41,0x39,0x30,0x25,0x18, 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, 0x15,0x20,0x2a,0x33,0x3b,0x41,0x46,0x49,0x49,0x49,0x49,0x49,0x45,0x40,0x3a, 0x32,0x29,0x1e,0x13,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0a,0x17,0x22,0x2d,0x35,0x3d,0x43,0x47,0x49,0x49,0x49,0x49,0x46, 0x40,0x39,0x31,0x27,0x1b,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x18,0x2a, 0x38,0x43,0x49,0x48,0x41,0x39,0x30,0x26,0x1b,0x0f,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x18,0x25,0x30,0x3a,0x41,0x46,0x49,0x49, 0x49,0x49,0x46,0x41,0x3a,0x32,0x28,0x1d,0x1d,0x27,0x31,0x3a,0x41,0x48,0x49, 0x40,0x2f,0x1c,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x19,0x2d,0x3e,0x48,0x49,0x49,0x49,0x45,0x38,0x28,0x12,0x00,0x00,0x00,0x01, 0x11,0x21,0x2e,0x39,0x42,0x48,0x49,0x49,0x49,0x43,0x3a,0x2f,0x21,0x12,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d,0x2b,0x37,0x41,0x48,0x49,0x49,0x46, 0x3f,0x35,0x28,0x1a,0x0a,0x00,0x00,0x00,0x00,0x11,0x21,0x2b,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x2b,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x14,0x1d,0x24,0x2b,0x2f,0x32,0x32,0x32,0x32,0x2f,0x29,0x23,0x1a,0x0f, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x13,0x1c,0x23,0x29,0x2d,0x30,0x32,0x32,0x32,0x30,0x2d,0x28, 0x22,0x1b,0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x0c,0x16,0x1e,0x25,0x2b,0x2e,0x30,0x32,0x32,0x30, 0x2d,0x28,0x22,0x1a,0x10,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a, 0x18,0x23,0x2c,0x30,0x2f,0x2a,0x22,0x1b,0x11,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0f,0x19,0x22,0x29,0x2e,0x30, 0x32,0x32,0x30,0x2d,0x29,0x22,0x1b,0x11,0x06,0x06,0x11,0x1a,0x23,0x2a,0x30, 0x32,0x2b,0x1e,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0d,0x1d,0x2a,0x32,0x32,0x32,0x32,0x30,0x26,0x16,0x04,0x00,0x00,0x00, 0x00,0x00,0x0c,0x18,0x22,0x2a,0x2f,0x32,0x32,0x30,0x2b,0x23,0x19,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x17,0x21,0x29,0x2f,0x30,0x30, 0x2e,0x29,0x1f,0x15,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x15,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x0e,0x13,0x17,0x19,0x19,0x19,0x19,0x17,0x12,0x0c,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x0b,0x11,0x15,0x18,0x19,0x19,0x19,0x18,0x14, 0x10,0x0b,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0d,0x12,0x16,0x19,0x19,0x19, 0x19,0x15,0x11,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x0f,0x16,0x19,0x18,0x14,0x0d,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x11,0x16, 0x19,0x19,0x19,0x18,0x15,0x11,0x0b,0x04,0x00,0x00,0x00,0x00,0x03,0x0b,0x12, 0x18,0x19,0x14,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x13,0x18,0x19,0x19,0x19,0x17,0x0f,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x0c,0x13,0x17,0x19,0x19,0x18,0x13,0x0c,0x03,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x12,0x16,0x19, 0x19,0x16,0x10,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, 0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x11,0x07,0x00,0x00,0x00, 0x00,0x00,0x07,0x11,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d,0x01,0x00, 0x00,0x00,0x00,0x00,0x08,0x12,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x0e, 0x02,0x00,0x00,0x00,0x01,0x0d,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x10, 0x05,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19, 0x16,0x0d,0x01,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x17,0x10, 0x04,0x00,0x00,0x00,0x0b,0x14,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00, 0x00,0x00,0x00,0x00,0x01,0x0d,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x10, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19, 0x19,0x15,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x16,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x12,0x0d,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x16,0x11,0x0d,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x15, 0x1a,0x1b,0x1b,0x1a,0x14,0x0d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x16,0x24,0x2e,0x32,0x32,0x32,0x32,0x32,0x32,0x31,0x28,0x1b,0x0b,0x00, 0x00,0x00,0x0a,0x1b,0x28,0x30,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x23,0x15, 0x04,0x00,0x00,0x00,0x0d,0x1d,0x29,0x31,0x32,0x32,0x32,0x32,0x32,0x32,0x2e, 0x24,0x15,0x04,0x00,0x02,0x15,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x30, 0x28,0x1a,0x09,0x00,0x00,0x00,0x04,0x16,0x24,0x2f,0x32,0x32,0x32,0x32,0x32, 0x32,0x2e,0x23,0x15,0x02,0x04,0x15,0x24,0x2e,0x32,0x32,0x32,0x32,0x32,0x30, 0x27,0x18,0x07,0x00,0x11,0x20,0x2c,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21, 0x13,0x00,0x00,0x00,0x04,0x15,0x23,0x2e,0x32,0x32,0x32,0x32,0x32,0x32,0x30, 0x26,0x18,0x07,0x00,0x00,0x00,0x00,0x06,0x16,0x26,0x2f,0x32,0x32,0x32,0x32, 0x32,0x32,0x2d,0x23,0x13,0x02,0x00,0x00,0x02,0x13,0x23,0x2e,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x2d,0x21,0x11,0x00,0x00,0x00,0x04,0x15,0x24,0x2f,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x30,0x2e,0x2a,0x25,0x1f,0x16, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x15,0x24,0x2f,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x30,0x2e,0x2a,0x25,0x1e, 0x16,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x19,0x24, 0x2d,0x32,0x35,0x35,0x31,0x2b,0x22,0x17,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x11,0x25,0x37,0x46,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x49,0x3d,0x2d,0x1a, 0x06,0x00,0x05,0x19,0x2c,0x3d,0x49,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x37, 0x25,0x0f,0x00,0x00,0x06,0x1a,0x2f,0x3f,0x4a,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x46,0x37,0x26,0x11,0x00,0x10,0x24,0x37,0x45,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x49,0x3c,0x2b,0x18,0x01,0x00,0x00,0x11,0x25,0x38,0x46,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4c,0x45,0x37,0x24,0x0f,0x11,0x25,0x38,0x46,0x4c,0x4c,0x4c,0x4c,0x4c, 0x48,0x3c,0x29,0x16,0x0b,0x1f,0x33,0x42,0x4b,0x4c,0x4c,0x4c,0x4c,0x4b,0x45, 0x35,0x23,0x0d,0x00,0x00,0x0f,0x25,0x37,0x46,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x48,0x3a,0x29,0x15,0x00,0x00,0x00,0x00,0x14,0x27,0x38,0x47,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4b,0x45,0x35,0x23,0x0f,0x00,0x00,0x0e,0x23,0x37,0x46,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4b,0x45,0x35,0x21,0x0b,0x00,0x00,0x11,0x25,0x38,0x47,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x49,0x47,0x43,0x3d,0x36, 0x2d,0x21,0x15,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x38,0x47, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x49,0x46,0x42,0x3d, 0x35,0x2c,0x21,0x14,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2d, 0x39,0x43,0x49,0x4c,0x4c,0x49,0x41,0x37,0x2a,0x1c,0x0b,0x00,0x00,0x00,0x00, 0x00,0x04,0x1a,0x30,0x47,0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x5f,0x4e,0x3a, 0x25,0x10,0x00,0x0f,0x24,0x39,0x4d,0x5d,0x63,0x63,0x63,0x63,0x63,0x62,0x57, 0x45,0x30,0x18,0x00,0x00,0x0e,0x24,0x3b,0x4f,0x60,0x63,0x63,0x63,0x63,0x63, 0x63,0x59,0x47,0x32,0x1c,0x07,0x1b,0x30,0x45,0x59,0x62,0x63,0x63,0x63,0x63, 0x63,0x5d,0x4b,0x37,0x21,0x09,0x00,0x01,0x1a,0x30,0x47,0x59,0x63,0x63,0x63, 0x63,0x63,0x62,0x59,0x45,0x30,0x18,0x1a,0x31,0x47,0x59,0x63,0x63,0x63,0x63, 0x63,0x5c,0x4b,0x36,0x1f,0x13,0x2b,0x40,0x55,0x62,0x63,0x63,0x63,0x63,0x62, 0x57,0x42,0x2d,0x15,0x00,0x01,0x18,0x30,0x45,0x59,0x62,0x63,0x63,0x63,0x63, 0x63,0x5c,0x4b,0x35,0x1f,0x08,0x00,0x00,0x06,0x1c,0x33,0x49,0x5a,0x63,0x63, 0x63,0x63,0x63,0x62,0x57,0x45,0x2d,0x18,0x00,0x00,0x18,0x2d,0x45,0x59,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x13,0x00,0x01,0x1a,0x30,0x47,0x5a, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x5e,0x5b,0x55, 0x4d,0x42,0x37,0x29,0x1a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x47, 0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x61,0x5d,0x5a, 0x54,0x4c,0x42,0x36,0x29,0x19,0x08,0x00,0x00,0x00,0x00,0x00,0x0b,0x1e,0x2f, 0x3e,0x4d,0x59,0x61,0x65,0x65,0x60,0x57,0x4a,0x3c,0x2c,0x1a,0x08,0x00,0x00, 0x00,0x00,0x07,0x1e,0x37,0x4e,0x65,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x70,0x5a, 0x44,0x2f,0x19,0x04,0x18,0x2e,0x43,0x59,0x6e,0x7c,0x7c,0x7c,0x7c,0x7c,0x79, 0x62,0x4c,0x35,0x1e,0x00,0x00,0x11,0x2b,0x41,0x58,0x72,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7b,0x67,0x52,0x3d,0x27,0x11,0x25,0x3b,0x50,0x65,0x7b,0x7c,0x7c,0x7c, 0x7c,0x7c,0x6d,0x56,0x3c,0x26,0x0c,0x00,0x07,0x1e,0x37,0x4e,0x67,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7b,0x65,0x4d,0x35,0x1d,0x20,0x38,0x4f,0x66,0x7c,0x7c,0x7c, 0x7c,0x7c,0x6b,0x54,0x3d,0x25,0x18,0x30,0x48,0x60,0x76,0x7c,0x7c,0x7c,0x7c, 0x79,0x62,0x49,0x32,0x19,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7b,0x7c,0x7c,0x7c, 0x7c,0x7c,0x6a,0x54,0x3d,0x25,0x0f,0x00,0x00,0x0c,0x23,0x3b,0x52,0x69,0x7c, 0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x4c,0x32,0x1b,0x00,0x02,0x1b,0x32,0x4c,0x65, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x30,0x16,0x00,0x05,0x1e,0x35,0x4e, 0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x77,0x72, 0x6c,0x63,0x59,0x4c,0x3d,0x2c,0x1c,0x09,0x00,0x00,0x00,0x00,0x02,0x1b,0x35, 0x4e,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x76, 0x72,0x6c,0x63,0x58,0x4b,0x3c,0x2a,0x19,0x06,0x00,0x00,0x00,0x02,0x17,0x2a, 0x3e,0x4f,0x60,0x6d,0x77,0x7c,0x7c,0x76,0x6b,0x5c,0x4c,0x3a,0x27,0x14,0x00, 0x00,0x00,0x00,0x05,0x1c,0x33,0x4a,0x5f,0x74,0x8a,0x98,0x98,0x98,0x90,0x79, 0x63,0x4e,0x38,0x23,0x0d,0x22,0x37,0x4c,0x62,0x77,0x8f,0x98,0x98,0x98,0x89, 0x72,0x5d,0x48,0x31,0x1a,0x00,0x00,0x0f,0x26,0x3e,0x53,0x69,0x7c,0x94,0x98, 0x98,0x98,0x89,0x72,0x5c,0x48,0x32,0x1d,0x30,0x46,0x5a,0x70,0x87,0x98,0x98, 0x98,0x90,0x79,0x64,0x50,0x39,0x23,0x0b,0x00,0x04,0x1c,0x33,0x4b,0x63,0x79, 0x93,0x98,0x98,0x98,0x82,0x69,0x51,0x39,0x22,0x26,0x3d,0x55,0x6d,0x86,0x98, 0x98,0x98,0x8a,0x72,0x5a,0x42,0x2b,0x1d,0x34,0x4c,0x64,0x7c,0x95,0x98,0x98, 0x90,0x77,0x60,0x48,0x31,0x18,0x00,0x03,0x1a,0x33,0x49,0x61,0x77,0x8f,0x98, 0x98,0x98,0x8a,0x72,0x5a,0x43,0x2c,0x15,0x00,0x00,0x13,0x2a,0x41,0x58,0x6f, 0x88,0x98,0x98,0x98,0x8d,0x75,0x5e,0x48,0x31,0x19,0x00,0x02,0x1b,0x32,0x4c, 0x65,0x81,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x98,0x98,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x35, 0x4e,0x68,0x81,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x94,0x90, 0x8b,0x84,0x79,0x6d,0x60,0x50,0x3e,0x2b,0x17,0x03,0x00,0x00,0x00,0x02,0x1b, 0x35,0x4e,0x68,0x81,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x93, 0x90,0x8b,0x84,0x79,0x6d,0x5e,0x4e,0x3c,0x29,0x15,0x00,0x00,0x00,0x0b,0x20, 0x34,0x49,0x5c,0x6e,0x82,0x8f,0x95,0x95,0x8c,0x7c,0x6b,0x58,0x45,0x31,0x1c, 0x00,0x00,0x00,0x00,0x00,0x15,0x2a,0x3f,0x54,0x6a,0x81,0x95,0xab,0xae,0x99, 0x84,0x6d,0x57,0x42,0x2d,0x17,0x2b,0x41,0x56,0x6c,0x84,0x98,0xad,0xa9,0x93, 0x7c,0x68,0x53,0x3e,0x28,0x13,0x00,0x00,0x09,0x1e,0x33,0x48,0x5c,0x72,0x88, 0x9c,0xaf,0xa9,0x93,0x7c,0x68,0x52,0x3d,0x28,0x3a,0x50,0x65,0x7b,0x92,0xa6, 0xae,0x99,0x84,0x6e,0x59,0x45,0x2f,0x1b,0x04,0x00,0x00,0x17,0x2f,0x46,0x5d, 0x75,0x8e,0xa6,0xaf,0x9d,0x86,0x6d,0x56,0x3e,0x26,0x2c,0x43,0x5b,0x72,0x8b, 0xa2,0xaf,0xa7,0x90,0x77,0x60,0x48,0x31,0x21,0x39,0x50,0x68,0x81,0x98,0xaf, 0xa3,0x8b,0x72,0x5b,0x44,0x2c,0x14,0x00,0x00,0x14,0x2c,0x42,0x5a,0x70,0x89, 0x9f,0xaf,0xa7,0x90,0x77,0x61,0x4a,0x33,0x1c,0x04,0x02,0x19,0x30,0x48,0x5f, 0x75,0x8e,0xa5,0xaf,0x9d,0x86,0x6e,0x57,0x40,0x29,0x13,0x00,0x02,0x1b,0x32, 0x4c,0x65,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e, 0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xac, 0xa8,0xa3,0x9b,0x90,0x84,0x72,0x60,0x4e,0x39,0x24,0x0f,0x00,0x00,0x00,0x02, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xac,0xa7,0xa2,0x9b,0x90,0x82,0x70,0x5f,0x4c,0x37,0x22,0x0d,0x00,0x00,0x11, 0x25,0x3b,0x50,0x65,0x79,0x8f,0xa1,0xad,0xac,0x9e,0x8b,0x76,0x61,0x4c,0x37, 0x22,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x35,0x4a,0x5f,0x74,0x8a,0xa0,0xb5, 0xa3,0x8d,0x76,0x61,0x4b,0x36,0x20,0x35,0x4a,0x60,0x75,0x8c,0xa2,0xb3,0x9e, 0x89,0x72,0x5d,0x48,0x33,0x1e,0x08,0x00,0x00,0x00,0x13,0x27,0x3d,0x51,0x65, 0x7b,0x91,0xa5,0xb4,0x9e,0x89,0x72,0x5d,0x48,0x32,0x45,0x5a,0x70,0x87,0x9c, 0xb2,0xa3,0x8d,0x77,0x62,0x4e,0x39,0x24,0x0f,0x00,0x00,0x00,0x12,0x2a,0x41, 0x5a,0x71,0x8a,0xa1,0xb9,0xa2,0x8b,0x72,0x5a,0x41,0x2a,0x31,0x49,0x60,0x77, 0x90,0xa7,0xbf,0xac,0x95,0x7c,0x65,0x4e,0x36,0x25,0x3d,0x55,0x6d,0x86,0x9d, 0xb4,0x9f,0x87,0x6e,0x56,0x3f,0x27,0x10,0x00,0x00,0x0d,0x24,0x3b,0x52,0x69, 0x81,0x98,0xae,0xad,0x97,0x81,0x67,0x51,0x39,0x23,0x0b,0x09,0x20,0x37,0x4e, 0x65,0x7c,0x94,0xab,0xac,0x96,0x7c,0x67,0x50,0x39,0x23,0x0b,0x00,0x02,0x1b, 0x32,0x4c,0x65,0x81,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9c,0xac,0xbf,0xaa, 0x9c,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05, 0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaf,0x9b,0x95,0x95,0x95,0x95,0x95,0x96, 0x9a,0xa0,0xaa,0xb2,0xa5,0x96,0x86,0x70,0x5b,0x46,0x30,0x19,0x02,0x00,0x00, 0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaf,0x9b,0x95,0x95,0x95,0x95,0x95, 0x96,0x9a,0xa0,0xaa,0xb2,0xa5,0x96,0x84,0x6e,0x5a,0x44,0x2e,0x17,0x00,0x00, 0x14,0x28,0x3f,0x53,0x6a,0x81,0x96,0xab,0xc0,0xbc,0xa7,0x92,0x79,0x65,0x4e, 0x37,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2a,0x40,0x54,0x6a,0x81,0x95, 0xab,0xac,0x97,0x81,0x6a,0x55,0x40,0x2a,0x3f,0x54,0x69,0x81,0x96,0xab,0xa9, 0x93,0x7c,0x68,0x52,0x3e,0x28,0x13,0x00,0x00,0x00,0x00,0x07,0x1c,0x31,0x46, 0x5a,0x70,0x86,0x9a,0xae,0xaa,0x94,0x7c,0x68,0x52,0x3e,0x4f,0x65,0x79,0x91, 0xa6,0xac,0x96,0x82,0x6c,0x57,0x42,0x2d,0x18,0x03,0x00,0x00,0x00,0x0e,0x25, 0x3d,0x55,0x6d,0x86,0x9d,0xb4,0xa6,0x8e,0x74,0x5d,0x46,0x2e,0x37,0x4e,0x65, 0x7c,0x96,0xad,0xbe,0xb2,0x9b,0x84,0x6a,0x53,0x3c,0x29,0x41,0x58,0x70,0x89, 0xa1,0xb2,0x9a,0x84,0x6a,0x52,0x3a,0x23,0x0b,0x00,0x00,0x06,0x1d,0x34,0x4b, 0x62,0x77,0x90,0xa7,0xb4,0x9d,0x86,0x6e,0x57,0x40,0x29,0x11,0x0f,0x26,0x3d, 0x55,0x6c,0x84,0x9b,0xb2,0xa5,0x8f,0x76,0x60,0x49,0x32,0x1b,0x04,0x00,0x02, 0x1b,0x32,0x4c,0x65,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x8a,0xa2,0xb9, 0xa0,0x89,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x63,0x49,0x30,0x16,0x00, 0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x79,0x79,0x79,0x79,0x79, 0x7c,0x81,0x89,0x93,0xa2,0xb3,0xa7,0x93,0x7c,0x67,0x50,0x39,0x22,0x0b,0x00, 0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x79,0x79,0x79,0x79, 0x79,0x7c,0x81,0x89,0x93,0xa2,0xb3,0xa6,0x92,0x7c,0x65,0x4f,0x38,0x21,0x08, 0x00,0x13,0x28,0x3e,0x53,0x68,0x7c,0x93,0xa8,0xba,0xb8,0xa4,0x90,0x79,0x63, 0x4e,0x37,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x35,0x4a,0x5f,0x74, 0x8b,0xa0,0xb5,0xa1,0x8b,0x74,0x5f,0x49,0x33,0x48,0x5d,0x73,0x8a,0xa0,0xb3, 0x9d,0x89,0x72,0x5c,0x48,0x33,0x1e,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x25, 0x39,0x4f,0x63,0x77,0x8f,0xa3,0xb4,0x9e,0x89,0x73,0x5d,0x49,0x5a,0x70,0x86, 0x9b,0xb1,0xa1,0x8b,0x75,0x60,0x4b,0x37,0x21,0x0c,0x00,0x00,0x00,0x00,0x09, 0x21,0x38,0x50,0x67,0x81,0x98,0xaf,0xaa,0x93,0x79,0x62,0x4a,0x32,0x3d,0x55, 0x6c,0x84,0x9b,0xad,0xa7,0xae,0xa0,0x89,0x71,0x5a,0x41,0x2d,0x45,0x5d,0x74, 0x8e,0xa5,0xad,0x96,0x7c,0x65,0x4e,0x36,0x1e,0x06,0x00,0x00,0x00,0x16,0x2d, 0x44,0x5a,0x72,0x89,0xa0,0xb7,0xa3,0x8c,0x74,0x5d,0x46,0x30,0x18,0x16,0x2d, 0x44,0x5b,0x72,0x8a,0xa1,0xb5,0x9e,0x88,0x6f,0x59,0x41,0x2b,0x14,0x00,0x00, 0x00,0x18,0x2e,0x46,0x5b,0x67,0x68,0x68,0x68,0x68,0x68,0x68,0x6d,0x89,0xa2, 0xb9,0xa0,0x89,0x6d,0x68,0x68,0x68,0x68,0x68,0x68,0x67,0x59,0x43,0x2c,0x13, 0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x63,0x63,0x63, 0x63,0x65,0x6a,0x71,0x81,0x91,0xa5,0xb5,0x9e,0x88,0x70,0x58,0x40,0x29,0x11, 0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x63,0x63, 0x63,0x63,0x65,0x6a,0x71,0x7c,0x90,0xa5,0xb4,0x9e,0x88,0x6f,0x57,0x3f,0x27, 0x0f,0x00,0x0e,0x23,0x38,0x4d,0x62,0x75,0x8a,0x9a,0xa3,0xa3,0x98,0x87,0x72, 0x5e,0x49,0x35,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2a,0x40,0x54, 0x6a,0x81,0x95,0xab,0xaa,0x94,0x7c,0x68,0x53,0x3d,0x52,0x67,0x7c,0x93,0xa9, 0xa8,0x93,0x7c,0x68,0x52,0x3e,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x19,0x2e,0x42,0x58,0x6c,0x82,0x98,0xac,0xaa,0x94,0x81,0x69,0x53,0x64,0x79, 0x91,0xa6,0xaa,0x94,0x81,0x69,0x54,0x40,0x2a,0x16,0x00,0x00,0x00,0x00,0x00, 0x04,0x1c,0x34,0x4b,0x63,0x79,0x93,0xaa,0xae,0x96,0x7c,0x65,0x4e,0x37,0x43, 0x5a,0x72,0x8a,0xa1,0x9a,0x8e,0x9b,0xa6,0x8f,0x76,0x5f,0x48,0x32,0x49,0x61, 0x79,0x91,0xa9,0xa8,0x90,0x77,0x60,0x49,0x31,0x19,0x02,0x00,0x00,0x00,0x0f, 0x25,0x3d,0x53,0x6a,0x82,0x98,0xb0,0xaa,0x93,0x7b,0x64,0x4d,0x36,0x1f,0x1c, 0x33,0x4a,0x62,0x79,0x90,0xa8,0xae,0x97,0x81,0x68,0x51,0x3b,0x24,0x0d,0x00, 0x00,0x00,0x0f,0x24,0x38,0x48,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x56,0x6d,0x89, 0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x37,0x22, 0x0c,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x49, 0x49,0x49,0x4c,0x51,0x5c,0x6d,0x84,0x9b,0xb3,0xa7,0x8f,0x76,0x5d,0x45,0x2d, 0x15,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b, 0x49,0x49,0x49,0x4c,0x51,0x5b,0x6c,0x84,0x9a,0xb2,0xa7,0x90,0x75,0x5d,0x44, 0x2c,0x14,0x00,0x08,0x1c,0x30,0x45,0x58,0x69,0x77,0x86,0x8b,0x8b,0x84,0x75, 0x65,0x53,0x41,0x2d,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x35, 0x4a,0x5f,0x74,0x8b,0xa0,0xb4,0x9e,0x89,0x72,0x5c,0x46,0x5b,0x71,0x88,0x9c, 0xb3,0x9d,0x89,0x72,0x5d,0x48,0x32,0x1e,0x08,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0d,0x22,0x37,0x4c,0x61,0x75,0x8b,0xa1,0xb4,0xa0,0x8a,0x73,0x5f,0x6e, 0x86,0x9b,0xb1,0x9e,0x89,0x73,0x5d,0x49,0x34,0x1f,0x0b,0x00,0x00,0x00,0x00, 0x00,0x00,0x17,0x2f,0x46,0x5d,0x75,0x8e,0xa6,0xb2,0x9a,0x84,0x6a,0x52,0x3b, 0x48,0x60,0x77,0x90,0xa7,0x92,0x7b,0x94,0xac,0x94,0x7c,0x65,0x4d,0x36,0x4d, 0x65,0x7c,0x95,0xad,0xa4,0x8c,0x74,0x5c,0x44,0x2d,0x15,0x00,0x00,0x00,0x00, 0x08,0x1e,0x35,0x4c,0x62,0x79,0x91,0xa8,0xb1,0x9a,0x84,0x6a,0x53,0x3d,0x25, 0x23,0x3a,0x51,0x68,0x81,0x97,0xae,0xa7,0x90,0x77,0x61,0x4a,0x33,0x1c,0x06, 0x00,0x00,0x00,0x02,0x15,0x25,0x31,0x35,0x35,0x35,0x35,0x35,0x3c,0x56,0x6d, 0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x35,0x35,0x35,0x35,0x35,0x30,0x24, 0x13,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d, 0x44,0x30,0x31,0x34,0x3a,0x4d,0x64,0x7c,0x95,0xaf,0xab,0x93,0x79,0x60,0x47, 0x30,0x16,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5b,0x42,0x30,0x31,0x34,0x3a,0x4a,0x62,0x79,0x93,0xac,0xac,0x93,0x79,0x60, 0x47,0x2f,0x16,0x00,0x00,0x13,0x26,0x38,0x49,0x58,0x65,0x6e,0x72,0x72,0x6d, 0x63,0x55,0x45,0x34,0x22,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16, 0x2a,0x40,0x54,0x6a,0x81,0x95,0xab,0xa7,0x91,0x79,0x65,0x4f,0x64,0x79,0x90, 0xa6,0xa8,0x93,0x7c,0x68,0x52,0x3d,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x16,0x2b,0x40,0x54,0x6a,0x81,0x94,0xaa,0xaa,0x95,0x81,0x69, 0x79,0x90,0xa5,0xa7,0x92,0x7c,0x67,0x52,0x3e,0x28,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x12,0x2a,0x41,0x5a,0x71,0x8a,0xa2,0xb6,0x9f,0x87,0x6d,0x56, 0x3f,0x4e,0x65,0x7c,0x95,0xa5,0x8e,0x77,0x90,0xa7,0x9a,0x84,0x6a,0x53,0x3b, 0x51,0x69,0x82,0x9a,0xb1,0xa0,0x89,0x6f,0x58,0x40,0x28,0x10,0x00,0x00,0x00, 0x00,0x00,0x17,0x2e,0x45,0x5c,0x72,0x8b,0xa1,0xb8,0xa0,0x89,0x72,0x5a,0x43, 0x2c,0x29,0x40,0x57,0x6e,0x87,0x9d,0xb5,0xa0,0x89,0x71,0x5a,0x43,0x2c,0x15, 0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x1a,0x1e,0x1e,0x1e,0x1e,0x23,0x3c,0x56, 0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x1e,0x1e,0x1e,0x1e,0x19, 0x0f,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77, 0x5d,0x44,0x2b,0x19,0x1c,0x30,0x49,0x60,0x79,0x95,0xac,0xac,0x95,0x79,0x60, 0x49,0x30,0x16,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x5b,0x42,0x28,0x19,0x1c,0x2d,0x45,0x5d,0x77,0x93,0xaa,0xaf,0x95,0x79, 0x62,0x49,0x30,0x16,0x00,0x00,0x07,0x18,0x28,0x38,0x45,0x50,0x57,0x5b,0x5b, 0x56,0x4e,0x43,0x35,0x25,0x14,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0b,0x20,0x35,0x4a,0x60,0x74,0x8b,0xa0,0xb0,0x9a,0x84,0x6d,0x58,0x6d,0x84, 0x99,0xaf,0x9d,0x89,0x72,0x5d,0x48,0x32,0x1e,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0b,0x1f,0x35,0x49,0x5d,0x73,0x89,0x9e,0xb3,0xa0,0x8a, 0x74,0x84,0x9a,0xaf,0x9c,0x87,0x71,0x5b,0x47,0x32,0x1d,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0e,0x25,0x3d,0x55,0x6d,0x86,0x9d,0xb4,0xa2,0x8b,0x72, 0x5b,0x43,0x54,0x6b,0x84,0x9b,0xa0,0x89,0x72,0x8b,0xa3,0xa0,0x89,0x70,0x59, 0x41,0x56,0x6d,0x86,0x9d,0xb2,0x9b,0x84,0x6a,0x53,0x3b,0x23,0x0c,0x00,0x00, 0x00,0x00,0x00,0x10,0x27,0x3d,0x55,0x6b,0x84,0x9b,0xb0,0xa7,0x90,0x77,0x61, 0x4a,0x33,0x30,0x47,0x5d,0x74,0x8d,0xa3,0xaf,0x98,0x81,0x6a,0x52,0x3c,0x25, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x0a,0x23,0x3c, 0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x05,0x05,0x04, 0x01,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x77,0x5d,0x44,0x2b,0x26,0x29,0x36,0x4c,0x63,0x7c,0x95,0xae,0xac,0x93,0x79, 0x60,0x47,0x30,0x16,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x74,0x5b,0x42,0x28,0x16,0x1b,0x2d,0x46,0x5e,0x77,0x93,0xaa,0xaf,0x95, 0x79,0x62,0x49,0x30,0x16,0x00,0x00,0x00,0x08,0x18,0x25,0x30,0x3a,0x40,0x42, 0x42,0x40,0x39,0x2f,0x22,0x15,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x16,0x2a,0x40,0x56,0x6a,0x81,0x95,0xab,0xa3,0x8d,0x76,0x61,0x76, 0x8d,0xa3,0xa8,0x93,0x7c,0x68,0x52,0x3d,0x28,0x13,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x29,0x3e,0x52,0x67,0x7b,0x92,0xa6,0xab, 0x95,0x81,0x8d,0xa3,0xa5,0x90,0x79,0x65,0x50,0x3b,0x26,0x11,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x38,0x50,0x68,0x81,0x98,0xaf,0xa7,0x90, 0x76,0x5e,0x47,0x5a,0x71,0x89,0xa0,0x9b,0x84,0x6f,0x88,0x9f,0xa5,0x8e,0x75, 0x5e,0x47,0x5a,0x72,0x8b,0xa2,0xae,0x96,0x7c,0x65,0x4e,0x37,0x1f,0x07,0x00, 0x00,0x00,0x00,0x00,0x08,0x20,0x36,0x4d,0x64,0x79,0x93,0xaa,0xad,0x97,0x81, 0x67,0x51,0x39,0x36,0x4d,0x64,0x7b,0x93,0xaa,0xa8,0x91,0x79,0x62,0x4b,0x35, 0x1e,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23, 0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x77,0x5d,0x44,0x3c,0x3f,0x41,0x49,0x57,0x6c,0x84,0x9b,0xb2,0xa7,0x8f, 0x75,0x5d,0x45,0x2d,0x15,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x74,0x5b,0x42,0x2d,0x30,0x33,0x3b,0x4e,0x65,0x7c,0x96,0xad,0xab, 0x93,0x77,0x60,0x47,0x2e,0x16,0x00,0x00,0x00,0x00,0x05,0x11,0x1b,0x23,0x28, 0x2b,0x2b,0x28,0x21,0x19,0x0f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0b,0x20,0x35,0x4a,0x60,0x74,0x8b,0xa1,0xac,0x97,0x81,0x6b, 0x82,0x97,0xac,0x9d,0x88,0x72,0x5d,0x48,0x32,0x1d,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1d,0x31,0x47,0x5b,0x70,0x87,0x9b, 0xaf,0xa2,0x96,0x9b,0xad,0x9a,0x84,0x6e,0x5a,0x45,0x30,0x1b,0x06,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x34,0x4b,0x63,0x79,0x93,0xab,0xab, 0x93,0x79,0x63,0x4b,0x5f,0x76,0x8f,0xa6,0x97,0x7c,0x6a,0x84,0x9a,0xab,0x93, 0x7b,0x64,0x4d,0x5d,0x74,0x8e,0xa6,0xaa,0x92,0x79,0x62,0x49,0x32,0x1a,0x02, 0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2f,0x46,0x5d,0x74,0x8b,0xa2,0xb4,0x9d, 0x86,0x6d,0x57,0x40,0x3d,0x54,0x6a,0x84,0x9a,0xb0,0xa0,0x8a,0x72,0x5b,0x44, 0x2d,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a, 0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x77,0x5d,0x56,0x56,0x56,0x59,0x60,0x6b,0x7b,0x8f,0xa4,0xb6,0xa0, 0x89,0x71,0x58,0x40,0x29,0x10,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x74,0x5b,0x47,0x47,0x47,0x4b,0x51,0x5d,0x70,0x87,0x9d,0xb4, 0xa4,0x8d,0x73,0x5b,0x43,0x2b,0x12,0x00,0x00,0x00,0x00,0x06,0x12,0x1c,0x24, 0x2a,0x2b,0x2b,0x29,0x23,0x1b,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x16,0x2a,0x40,0x56,0x6a,0x81,0x96,0xab,0xa0,0x8b, 0x74,0x8b,0xa1,0xa8,0x93,0x7c,0x68,0x52,0x3e,0x28,0x13,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x3a,0x50,0x64,0x79, 0x90,0xa4,0xb6,0xaf,0xb2,0xa3,0x8d,0x77,0x62,0x4e,0x39,0x24,0x0f,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2f,0x46,0x5e,0x75,0x8f,0xa6, 0xaf,0x98,0x81,0x67,0x4f,0x65,0x7c,0x95,0xaa,0x92,0x79,0x65,0x7c,0x95,0xac, 0x9a,0x84,0x6a,0x52,0x62,0x79,0x93,0xaa,0xa5,0x8e,0x74,0x5d,0x45,0x2d,0x16, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x56,0x6d,0x86,0x9b,0xb2, 0xa3,0x8c,0x74,0x5d,0x46,0x43,0x5a,0x71,0x89,0xa0,0xb0,0x99,0x84,0x6a,0x54, 0x3d,0x26,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x77,0x6d,0x6d,0x6d,0x6f,0x72,0x76,0x81,0x8d,0x9f,0xb1,0xa9, 0x94,0x81,0x68,0x51,0x39,0x23,0x0b,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x90,0x74,0x5d,0x5d,0x5d,0x60,0x62,0x68,0x72,0x82,0x94,0xa9, 0xb1,0x9b,0x84,0x6c,0x55,0x3d,0x25,0x0d,0x00,0x00,0x00,0x0a,0x18,0x26,0x32, 0x3b,0x41,0x44,0x44,0x41,0x3a,0x30,0x24,0x16,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x36,0x4a,0x60,0x74,0x8b,0xa1,0xaa, 0x94,0x84,0x95,0xaa,0x9d,0x89,0x72,0x5c,0x48,0x32,0x1e,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1a,0x2f,0x43,0x58, 0x6d,0x84,0x9b,0xb4,0xc6,0xaf,0x98,0x82,0x6c,0x57,0x42,0x2d,0x18,0x04,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2a,0x42,0x5a,0x72,0x8a, 0xa2,0xb4,0x9b,0x84,0x6a,0x53,0x6a,0x84,0x9b,0xa3,0x8c,0x74,0x60,0x77,0x90, 0xa7,0xa0,0x89,0x6f,0x58,0x65,0x7c,0x97,0xaf,0xa0,0x89,0x6f,0x58,0x41,0x29, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x38,0x4e,0x65,0x7c,0x94, 0xab,0xaa,0x93,0x7b,0x64,0x4d,0x4a,0x61,0x77,0x90,0xa7,0xa9,0x92,0x79,0x63, 0x4d,0x35,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xab,0x93,0x89,0x89,0x89,0x89,0x89,0x8b,0x90,0x98,0xa3,0xb1,0xa9, 0x99,0x86,0x71,0x5c,0x47,0x31,0x1a,0x03,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xaa,0x90,0x77,0x77,0x77,0x77,0x79,0x79,0x81,0x89,0x95,0xa4, 0xb4,0xa2,0x8f,0x77,0x62,0x4b,0x34,0x1d,0x06,0x00,0x00,0x07,0x19,0x2a,0x38, 0x46,0x51,0x58,0x5b,0x5b,0x58,0x4f,0x44,0x35,0x26,0x15,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2c,0x40,0x56,0x6a,0x81,0x96, 0xab,0xa5,0x9d,0xa5,0xa7,0x93,0x7c,0x67,0x52,0x3d,0x28,0x13,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x24,0x38,0x4e, 0x62,0x76,0x8d,0xa2,0xb8,0xb7,0xb1,0x9b,0x87,0x71,0x5b,0x47,0x32,0x1d,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x26,0x3d,0x55,0x6d, 0x86,0x9d,0xb4,0xa0,0x89,0x6f,0x59,0x71,0x89,0xa0,0x9e,0x87,0x6e,0x5a,0x72, 0x8a,0xa1,0xa5,0x8e,0x75,0x5e,0x6a,0x84,0x9b,0xb2,0x9b,0x84,0x6b,0x53,0x3c, 0x24,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x19,0x31,0x48,0x5e,0x74, 0x8d,0xa4,0xb0,0x9a,0x84,0x6b,0x54,0x51,0x68,0x81,0x98,0xad,0xa2,0x8b,0x73, 0x5c,0x45,0x2e,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a, 0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xb6,0xa6,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa7,0xae,0xab,0xa2, 0x95,0x87,0x74,0x62,0x4f,0x3a,0x26,0x10,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xae,0x9a,0x93,0x93,0x93,0x93,0x93,0x93,0x98,0xa0,0xaa, 0xae,0xa1,0x90,0x7c,0x6b,0x56,0x40,0x2a,0x14,0x00,0x00,0x00,0x14,0x26,0x39, 0x4a,0x59,0x67,0x70,0x74,0x74,0x6e,0x64,0x57,0x47,0x35,0x22,0x0f,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x21,0x36,0x4a,0x60,0x75, 0x8b,0xa1,0xb5,0xb4,0xb2,0x9d,0x89,0x72,0x5c,0x48,0x32,0x1e,0x08,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1b,0x2f,0x45, 0x59,0x6d,0x84,0x99,0xad,0xa1,0x9e,0xaa,0xa7,0x92,0x7c,0x68,0x53,0x3e,0x29, 0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x39,0x50, 0x68,0x81,0x98,0xaf,0xa4,0x8c,0x72,0x5d,0x75,0x8e,0xa6,0x99,0x81,0x69,0x54, 0x6c,0x84,0x9b,0xab,0x93,0x79,0x63,0x6d,0x88,0xa0,0xaf,0x98,0x81,0x66,0x4f, 0x37,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x29,0x40,0x57, 0x6e,0x86,0x9d,0xb4,0xa0,0x89,0x72,0x5a,0x57,0x6e,0x86,0x9d,0xb1,0x9b,0x84, 0x6c,0x55,0x3e,0x27,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53, 0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xb6,0xa6,0xa2,0xa2,0xa2,0xa2,0xa2,0xad,0xbf,0xab,0x96, 0x8b,0x81,0x72,0x62,0x52,0x40,0x2d,0x18,0x04,0x00,0x00,0x00,0x02,0x1b,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xbc,0xad,0xaa,0xaa,0xaa,0xaa,0xac,0xac,0xae,0xa9, 0xa2,0x99,0x8d,0x7c,0x6d,0x5b,0x48,0x33,0x1e,0x08,0x00,0x00,0x08,0x1d,0x31, 0x45,0x58,0x69,0x79,0x87,0x8e,0x8d,0x86,0x77,0x67,0x54,0x41,0x2d,0x19,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2c,0x40,0x56, 0x6b,0x81,0x96,0xab,0xbd,0xa7,0x93,0x7c,0x68,0x52,0x3d,0x28,0x13,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x27,0x3b, 0x50,0x65,0x79,0x90,0xa4,0xa3,0x8d,0x88,0x9d,0xb3,0x9e,0x8a,0x73,0x5f,0x4a, 0x35,0x21,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1c,0x34, 0x4b,0x63,0x79,0x93,0xab,0xa7,0x90,0x77,0x63,0x79,0x93,0xab,0x93,0x79,0x63, 0x4e,0x65,0x7c,0x96,0xad,0x98,0x81,0x68,0x72,0x8b,0xa2,0xaa,0x93,0x79,0x62, 0x4b,0x33,0x1b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x22,0x39, 0x50,0x67,0x7c,0x96,0xac,0xa7,0x90,0x77,0x60,0x5d,0x74,0x8c,0xa3,0xaa,0x93, 0x7b,0x65,0x4d,0x37,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d, 0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xac,0x94,0x89,0x89,0x89,0x89,0x8b,0x9e,0xb3,0xa7, 0x8f,0x77,0x69,0x5d,0x50,0x40,0x2f,0x1d,0x0a,0x00,0x00,0x00,0x00,0x02,0x1b, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xb2,0xa0,0x9a,0x9a,0x9a,0x9a,0x9a,0x98,0x95, 0x91,0x8b,0x82,0x76,0x69,0x5b,0x49,0x37,0x24,0x11,0x00,0x00,0x00,0x0e,0x24, 0x39,0x4e,0x62,0x76,0x8b,0x9b,0xa5,0xa4,0x99,0x88,0x73,0x5e,0x4a,0x35,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x21,0x36, 0x4b,0x60,0x75,0x8e,0xa5,0xb9,0xa2,0x8b,0x72,0x5c,0x48,0x32,0x1e,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1e,0x32, 0x47,0x5c,0x71,0x87,0x9b,0xae,0x99,0x84,0x7b,0x92,0xa7,0xaa,0x95,0x81,0x6b, 0x56,0x41,0x2d,0x18,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17, 0x2f,0x46,0x5e,0x75,0x8f,0xa7,0xac,0x93,0x79,0x68,0x81,0x98,0xa5,0x8e,0x74, 0x5d,0x49,0x60,0x77,0x90,0xa8,0x9d,0x86,0x6d,0x74,0x8e,0xa7,0xa5,0x8e,0x74, 0x5d,0x46,0x2e,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b, 0x32,0x49,0x60,0x76,0x8f,0xa5,0xad,0x96,0x7c,0x66,0x63,0x79,0x93,0xaa,0xa3, 0x8c,0x74,0x5d,0x46,0x30,0x19,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89, 0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x6f,0x6f,0x6f,0x7b,0x92,0xa7, 0xaf,0x9a,0x84,0x6e,0x59,0x43,0x2e,0x1d,0x0c,0x00,0x00,0x00,0x00,0x00,0x02, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x81,0x81,0x81,0x81,0x81,0x81, 0x7c,0x79,0x72,0x6b,0x61,0x55,0x47,0x38,0x26,0x15,0x02,0x00,0x00,0x00,0x13, 0x28,0x3e,0x53,0x68,0x7c,0x94,0xa8,0xbb,0xb8,0xa5,0x90,0x79,0x63,0x4e,0x37, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x16, 0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f,0x58,0x42,0x2b,0x13,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x29, 0x3e,0x53,0x68,0x7c,0x92,0xa7,0xa4,0x8f,0x77,0x71,0x88,0x9d,0xb2,0xa2,0x8c, 0x76,0x62,0x4d,0x39,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x13,0x2a,0x42,0x5a,0x72,0x8b,0xa2,0xaf,0x98,0x81,0x6d,0x86,0x9d,0xa0,0x89, 0x70,0x58,0x43,0x5b,0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x79,0x93,0xaa,0xa1,0x89, 0x70,0x59,0x41,0x2a,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x14,0x2b,0x41,0x59,0x6f,0x88,0x9e,0xb3,0x9b,0x86,0x6d,0x6a,0x82,0x98,0xb0, 0x9b,0x86,0x6d,0x56,0x3f,0x29,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9,0xa0, 0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x56,0x5a,0x70,0x87, 0x9c,0xb1,0xa6,0x91,0x79,0x65,0x4f,0x3a,0x25,0x0f,0x00,0x00,0x00,0x00,0x00, 0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x68,0x68,0x68,0x67, 0x65,0x64,0x60,0x5b,0x54,0x4a,0x3f,0x33,0x24,0x15,0x03,0x00,0x00,0x00,0x00, 0x14,0x28,0x3f,0x53,0x6a,0x81,0x96,0xaa,0xc0,0xbc,0xa7,0x92,0x79,0x65,0x4e, 0x37,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f,0x58,0x42,0x2b,0x11, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x20, 0x35,0x4a,0x5f,0x73,0x8a,0x9e,0xb0,0x9a,0x84,0x6d,0x67,0x7b,0x92,0xa7,0xad, 0x99,0x84,0x6d,0x59,0x45,0x30,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0e,0x26,0x3e,0x55,0x6d,0x86,0x9d,0xb2,0x9b,0x84,0x72,0x8b,0xa2,0x9b, 0x84,0x6a,0x53,0x3e,0x55,0x6d,0x86,0x9d,0xa7,0x90,0x77,0x7c,0x96,0xad,0x9c, 0x86,0x6c,0x54,0x3d,0x25,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x23,0x3a,0x51,0x68,0x81,0x97,0xad,0xa2,0x8b,0x72,0x6f,0x89,0xa0, 0xac,0x94,0x7c,0x65,0x4f,0x38,0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2,0xb9, 0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x4e,0x63, 0x79,0x90,0xa5,0xb2,0x9d,0x88,0x71,0x5b,0x46,0x31,0x1c,0x06,0x00,0x00,0x00, 0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x4e,0x4e, 0x4e,0x4e,0x4c,0x48,0x43,0x3c,0x33,0x29,0x1e,0x11,0x02,0x00,0x00,0x00,0x00, 0x00,0x10,0x25,0x3b,0x50,0x65,0x79,0x8f,0xa1,0xac,0xab,0x9d,0x8b,0x75,0x61, 0x4c,0x36,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f,0x58,0x42,0x2b, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x18, 0x2d,0x41,0x56,0x6b,0x81,0x95,0xaa,0xa5,0x90,0x79,0x63,0x5b,0x70,0x87,0x9c, 0xb1,0xa4,0x90,0x79,0x65,0x51,0x3b,0x27,0x12,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x21,0x39,0x50,0x68,0x81,0x98,0xb0,0x9f,0x87,0x77,0x90,0xa7, 0x95,0x7c,0x65,0x4e,0x38,0x50,0x67,0x81,0x98,0xad,0x95,0x7c,0x81,0x99,0xaf, 0x98,0x81,0x67,0x50,0x38,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1c,0x33,0x4a,0x61,0x77,0x90,0xa6,0xa8,0x92,0x79,0x75,0x8e, 0xa5,0xa4,0x8e,0x75,0x5e,0x48,0x31,0x1a,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89,0xa2, 0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x42, 0x58,0x6d,0x84,0x9a,0xaf,0xa9,0x94,0x7c,0x68,0x52,0x3e,0x28,0x12,0x00,0x00, 0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42, 0x35,0x35,0x35,0x33,0x30,0x2b,0x25,0x1d,0x14,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0a,0x20,0x34,0x48,0x5b,0x6e,0x81,0x8d,0x95,0x93,0x8b,0x7b,0x6b, 0x58,0x44,0x30,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f,0x58,0x42, 0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x24,0x38,0x4c,0x62,0x76,0x8c,0xa2,0xb1,0x9b,0x86,0x70,0x5a,0x50,0x65,0x79, 0x91,0xa5,0xb1,0x9c,0x87,0x71,0x5c,0x47,0x32,0x1e,0x09,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1c,0x34,0x4b,0x63,0x79,0x93,0xab,0xa2,0x8b,0x7c,0x94, 0xa7,0x90,0x77,0x60,0x48,0x33,0x4a,0x62,0x79,0x91,0xa9,0x9a,0x84,0x86,0x9d, 0xaa,0x93,0x79,0x63,0x4b,0x34,0x1c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x15,0x2c,0x43,0x5a,0x71,0x89,0x9f,0xaf,0x98,0x81,0x7c, 0x95,0xac,0x9d,0x86,0x6e,0x57,0x41,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d,0x89, 0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44, 0x37,0x4c,0x62,0x77,0x8f,0xa3,0xb5,0xa0,0x8b,0x74,0x5f,0x49,0x34,0x1e,0x09, 0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b, 0x42,0x28,0x1e,0x1b,0x1b,0x18,0x13,0x0d,0x06,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x16,0x29,0x3d,0x4e,0x5e,0x6c,0x76,0x79,0x79,0x75,0x6b, 0x5b,0x4b,0x39,0x26,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f,0x58, 0x42,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06, 0x1b,0x2f,0x44,0x59,0x6d,0x84,0x99,0xad,0xa5,0x90,0x79,0x64,0x4f,0x45,0x5a, 0x6e,0x86,0x9a,0xaf,0xa7,0x93,0x7c,0x68,0x53,0x3f,0x2a,0x15,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x18,0x2f,0x47,0x5e,0x76,0x8f,0xa7,0xa6,0x8e,0x82, 0x99,0xa2,0x8a,0x72,0x5a,0x43,0x2d,0x45,0x5c,0x73,0x8b,0xa3,0x9f,0x88,0x89, 0xa0,0xa6,0x8f,0x75,0x5d,0x46,0x2f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0e,0x24,0x3c,0x52,0x6a,0x81,0x98,0xaf,0xa0,0x89, 0x84,0x9b,0xad,0x96,0x7c,0x67,0x50,0x39,0x22,0x0c,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56,0x6d, 0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d, 0x44,0x2b,0x40,0x56,0x6b,0x82,0x98,0xad,0xac,0x96,0x81,0x6b,0x56,0x40,0x2a, 0x15,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5b,0x42,0x28,0x0f,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0b,0x1d,0x2e,0x3e,0x4c,0x58,0x60,0x63,0x63,0x5e, 0x56,0x4a,0x3a,0x2b,0x1a,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b,0x6f, 0x58,0x42,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x11,0x26,0x3b,0x50,0x64,0x79,0x90,0xa4,0xaf,0x9a,0x84,0x6e,0x59,0x43,0x39, 0x4f,0x64,0x79,0x90,0xa4,0xb3,0x9e,0x8a,0x74,0x5f,0x4a,0x36,0x21,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2b,0x42,0x5a,0x72,0x8b,0xa2,0xad,0x9a, 0x93,0xa1,0x9c,0x84,0x6c,0x55,0x3d,0x28,0x3f,0x56,0x6d,0x86,0x9d,0xa7,0x95, 0x96,0xa7,0xa2,0x8a,0x72,0x5a,0x42,0x2a,0x13,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1d,0x35,0x4b,0x62,0x79,0x90,0xa8,0xa7, 0x94,0x92,0xa4,0xa6,0x8f,0x77,0x60,0x49,0x32,0x1b,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c,0x56, 0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77, 0x5d,0x44,0x2b,0x35,0x4a,0x60,0x75,0x8c,0xa2,0xb7,0xa3,0x8d,0x76,0x62,0x4c, 0x37,0x21,0x0c,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x5b,0x42,0x28,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1e,0x2c,0x38,0x42,0x48,0x4c,0x4b, 0x48,0x40,0x36,0x2a,0x1a,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xb9,0xa2,0x8b, 0x6f,0x58,0x42,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x1e,0x32,0x47,0x5b,0x70,0x87,0x9b,0xb0,0xa4,0x90,0x79,0x63,0x4e,0x38, 0x2e,0x43,0x59,0x6d,0x84,0x99,0xae,0xab,0x95,0x81,0x6b,0x57,0x42,0x2d,0x18, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x26,0x3e,0x55,0x6d,0x86,0x9d,0xb4, 0xb0,0xad,0xae,0x97,0x81,0x66,0x4f,0x38,0x22,0x39,0x51,0x68,0x81,0x98,0xaf, 0xad,0xad,0xb4,0x9d,0x86,0x6d,0x55,0x3d,0x26,0x0e,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x72,0x89,0xa0, 0xb6,0xac,0xaa,0xb5,0x9f,0x88,0x6f,0x59,0x41,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23,0x3c, 0x56,0x6d,0x89,0xa2,0xb9,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x77,0x5d,0x44,0x2b,0x29,0x3f,0x54,0x69,0x81,0x96,0xac,0xaf,0x9a,0x84,0x6d, 0x58,0x43,0x2e,0x18,0x03,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x74,0x5b,0x42,0x28,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x18,0x22,0x2b,0x31,0x32, 0x32,0x30,0x2a,0x21,0x16,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0xa5,0xaf,0xa2, 0x8b,0x6f,0x58,0x42,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x14,0x29,0x3e,0x53,0x68,0x7c,0x92,0xa7,0xae,0x99,0x84,0x6d,0x58,0x43, 0x2e,0x22,0x38,0x4e,0x62,0x77,0x8d,0xa3,0xaf,0xa2,0x8d,0x76,0x62,0x4e,0x39, 0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x39,0x50,0x68,0x81,0x98, 0xaf,0xaf,0xaf,0xa8,0x91,0x79,0x61,0x49,0x32,0x1c,0x34,0x4b,0x62,0x79,0x93, 0xaa,0xaf,0xaf,0xaf,0x98,0x81,0x68,0x50,0x39,0x21,0x09,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x26,0x3d,0x54,0x6a,0x84, 0x99,0xaf,0xaf,0xaf,0xae,0x98,0x81,0x68,0x51,0x3b,0x24,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x23, 0x3c,0x56,0x6d,0x89,0xa2,0xaf,0xa0,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaa, 0x90,0x77,0x5d,0x44,0x2b,0x1d,0x32,0x48,0x5d,0x73,0x8a,0xa0,0xaf,0xa5,0x90, 0x79,0x64,0x4f,0x3a,0x25,0x0e,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf, 0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0d,0x14,0x19, 0x1b,0x1b,0x18,0x13,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x74,0x8e,0x95,0x95, 0x95,0x8b,0x6f,0x58,0x42,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0x1c,0x33,0x49,0x5f,0x73,0x89,0x95,0x95,0x95,0x8f,0x77,0x62,0x4c, 0x38,0x22,0x18,0x2d,0x42,0x57,0x6c,0x84,0x95,0x95,0x95,0x95,0x84,0x6e,0x5a, 0x44,0x2d,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1c,0x34,0x4c,0x63,0x7b, 0x93,0x95,0x95,0x95,0x95,0x8b,0x73,0x5b,0x44,0x2d,0x17,0x2e,0x46,0x5d,0x74, 0x8d,0x95,0x95,0x95,0x95,0x93,0x7b,0x63,0x4c,0x34,0x1c,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1f,0x35,0x4d,0x63, 0x79,0x92,0x95,0x95,0x95,0x95,0x90,0x77,0x62,0x4a,0x33,0x1c,0x05,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a, 0x23,0x3c,0x56,0x6d,0x89,0x95,0x95,0x95,0x89,0x6d,0x53,0x3a,0x21,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x95,0x95, 0x95,0x90,0x77,0x5d,0x44,0x2b,0x14,0x27,0x3d,0x52,0x68,0x7c,0x94,0x95,0x95, 0x95,0x88,0x71,0x5b,0x45,0x2d,0x15,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x95, 0x95,0x95,0x90,0x74,0x5b,0x42,0x28,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x44,0x5b,0x73,0x79,0x79, 0x79,0x79,0x79,0x6e,0x58,0x41,0x2b,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x1e,0x35,0x4b,0x65,0x79,0x79,0x79,0x79,0x79,0x79,0x6c,0x57, 0x42,0x2d,0x17,0x0d,0x21,0x37,0x4b,0x61,0x75,0x79,0x79,0x79,0x79,0x79,0x75, 0x5d,0x46,0x30,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x2f,0x47,0x5f, 0x75,0x79,0x79,0x79,0x79,0x79,0x79,0x6d,0x56,0x3f,0x27,0x11,0x29,0x40,0x58, 0x6e,0x79,0x79,0x79,0x79,0x79,0x79,0x75,0x5f,0x47,0x30,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x2e,0x45, 0x5c,0x72,0x79,0x79,0x79,0x79,0x79,0x79,0x71,0x5a,0x43,0x2c,0x16,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0a,0x23,0x3c,0x56,0x6c,0x79,0x79,0x79,0x79,0x79,0x6c,0x53,0x3a,0x20,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1e,0x35,0x4e,0x67,0x79,0x79, 0x79,0x79,0x79,0x75,0x5d,0x44,0x2b,0x14,0x1b,0x31,0x46,0x5c,0x72,0x79,0x79, 0x79,0x79,0x79,0x77,0x60,0x49,0x30,0x16,0x00,0x02,0x1b,0x35,0x4e,0x67,0x79, 0x79,0x79,0x79,0x79,0x73,0x5b,0x41,0x28,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x3e,0x51,0x61,0x63, 0x63,0x63,0x63,0x63,0x5f,0x4f,0x3b,0x26,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x1a,0x30,0x47,0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x5d, 0x4c,0x37,0x22,0x0d,0x02,0x16,0x2c,0x40,0x53,0x62,0x63,0x63,0x63,0x63,0x63, 0x62,0x55,0x40,0x2b,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x40, 0x53,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x5d,0x4d,0x37,0x21,0x0b,0x22,0x39, 0x4d,0x5f,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x53,0x40,0x29,0x13,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x27, 0x3d,0x51,0x60,0x63,0x63,0x63,0x63,0x63,0x63,0x5f,0x4f,0x3b,0x24,0x0e,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x1f,0x37,0x4d,0x5d,0x63,0x63,0x63,0x63,0x63,0x5d,0x4b,0x34,0x1c, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x1a,0x30,0x47,0x5a,0x63, 0x63,0x63,0x63,0x63,0x62,0x53,0x3e,0x26,0x10,0x0f,0x25,0x3a,0x4f,0x60,0x63, 0x63,0x63,0x63,0x63,0x62,0x55,0x42,0x2b,0x13,0x00,0x00,0x18,0x30,0x47,0x5a, 0x63,0x63,0x63,0x63,0x63,0x61,0x51,0x3b,0x24,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1d,0x2f,0x3e,0x48, 0x49,0x49,0x49,0x49,0x49,0x47,0x3d,0x2d,0x1b,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x35,0x43,0x49,0x49,0x49,0x49,0x49,0x49, 0x46,0x3a,0x2a,0x17,0x02,0x00,0x0b,0x1f,0x31,0x40,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x41,0x31,0x1f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1d, 0x31,0x40,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x46,0x3b,0x2a,0x17,0x03,0x17, 0x2c,0x3b,0x47,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x40,0x31,0x1e,0x09,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x1b,0x2f,0x3e,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x48,0x3d,0x2d,0x1a,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x15,0x2a,0x3b,0x46,0x49,0x49,0x49,0x49,0x49,0x46,0x3a,0x28, 0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x37,0x44, 0x49,0x49,0x49,0x49,0x49,0x49,0x40,0x2f,0x1b,0x07,0x04,0x19,0x2c,0x3d,0x48, 0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x1f,0x09,0x00,0x00,0x0e,0x24,0x37, 0x44,0x49,0x49,0x49,0x49,0x49,0x48,0x3e,0x2d,0x19,0x03,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1c,0x28, 0x2f,0x30,0x30,0x30,0x30,0x30,0x2e,0x27,0x1b,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x21,0x2c,0x30,0x30,0x30,0x30,0x30, 0x30,0x2e,0x25,0x18,0x08,0x00,0x00,0x00,0x0f,0x1e,0x2a,0x2f,0x30,0x30,0x30, 0x30,0x30,0x2f,0x29,0x1e,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0d,0x1e,0x29,0x2f,0x30,0x30,0x30,0x30,0x30,0x30,0x2e,0x26,0x18,0x08,0x00, 0x08,0x19,0x26,0x2e,0x30,0x30,0x30,0x30,0x30,0x30,0x2f,0x29,0x1e,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0b,0x1c,0x28,0x2f,0x30,0x30,0x30,0x30,0x30,0x30,0x2f,0x27,0x1b,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x06,0x18,0x26,0x2e,0x30,0x30,0x30,0x30,0x30,0x2e,0x25, 0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x22, 0x2d,0x30,0x30,0x30,0x30,0x30,0x2f,0x29,0x1c,0x0b,0x00,0x00,0x0a,0x1b,0x27, 0x2f,0x30,0x30,0x30,0x30,0x30,0x30,0x2a,0x1f,0x0f,0x00,0x00,0x00,0x00,0x13, 0x22,0x2d,0x30,0x30,0x30,0x30,0x30,0x2f,0x28,0x1b,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09, 0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x12,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19, 0x19,0x19,0x17,0x10,0x05,0x00,0x00,0x00,0x00,0x00,0x0b,0x14,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x14,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0b,0x14,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x11,0x05,0x00, 0x00,0x00,0x07,0x11,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x12,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x17,0x19,0x19,0x19,0x19,0x19,0x17, 0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x09,0x00,0x00,0x00,0x00,0x07, 0x12,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0c,0x00,0x00,0x00,0x00,0x00, 0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x18,0x13,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02, 0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, 0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02, 0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19, 0x19,0x19,0x14,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x13,0x18,0x19,0x19,0x19, 0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x02,0x0e,0x16,0x19,0x19,0x19, 0x19,0x19,0x19,0x17,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x12, 0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x01, 0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x09,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19, 0x19,0x19,0x19,0x19,0x18,0x14,0x09,0x00,0x00,0x00,0x00,0x0b,0x14,0x19,0x19, 0x19,0x19,0x19,0x19,0x18,0x12,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0f, 0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x01, 0x0d,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d,0x00,0x00,0x00,0x00,0x00, 0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x02,0x0f, 0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x18,0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x12,0x0d,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x15,0x24,0x2f,0x32,0x32,0x32, 0x32,0x32,0x32,0x2c,0x21,0x11,0x00,0x00,0x00,0x0b,0x1d,0x2a,0x31,0x32,0x32, 0x32,0x32,0x32,0x2d,0x21,0x11,0x00,0x00,0x00,0x04,0x16,0x24,0x2f,0x32,0x32, 0x32,0x32,0x32,0x32,0x30,0x27,0x18,0x06,0x00,0x00,0x00,0x00,0x00,0x09,0x1b, 0x29,0x31,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x11,0x00,0x00,0x00,0x04, 0x15,0x24,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x2b,0x1e,0x0f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x15,0x24,0x2f, 0x32,0x32,0x32,0x32,0x32,0x32,0x2b,0x1e,0x0d,0x00,0x00,0x0f,0x20,0x2b,0x32, 0x32,0x32,0x32,0x32,0x32,0x31,0x29,0x1b,0x09,0x00,0x00,0x00,0x00,0x06,0x16, 0x26,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x13,0x00,0x00,0x00,0x04, 0x15,0x23,0x2e,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x23,0x13,0x02,0x00,0x00, 0x06,0x18,0x26,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x13,0x02,0x00,0x00,0x06,0x16, 0x26,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x31,0x29,0x1d,0x0b,0x00,0x00,0x00,0x02,0x15,0x24,0x2f, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2f,0x2b,0x26,0x1f,0x17, 0x0e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x38,0x47,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4b,0x43,0x33,0x20,0x0b,0x00,0x04,0x1a,0x2f,0x3f,0x4a,0x4c, 0x4c,0x4c,0x4c,0x4b,0x45,0x35,0x21,0x0b,0x00,0x00,0x11,0x27,0x38,0x47,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x48,0x3a,0x29,0x15,0x00,0x00,0x00,0x00,0x03,0x18, 0x2d,0x3d,0x49,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x43,0x35,0x21,0x0c,0x00,0x00, 0x11,0x25,0x38,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x42,0x31,0x1d,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x38, 0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x40,0x31,0x1c,0x06,0x0c,0x1f,0x31,0x42, 0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x49,0x3f,0x2d,0x18,0x01,0x00,0x00,0x00,0x14, 0x27,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x43,0x35,0x21,0x0d,0x00,0x00, 0x10,0x25,0x37,0x45,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x37,0x23,0x0f,0x00, 0x00,0x14,0x29,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x35,0x23,0x0f,0x00,0x00,0x14, 0x27,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4a,0x3f,0x2f,0x1a,0x06,0x00,0x00,0x0f,0x25,0x38, 0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x49,0x47,0x43,0x3d,0x36, 0x2e,0x25,0x19,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x30,0x47,0x5a,0x63, 0x63,0x63,0x63,0x63,0x62,0x55,0x42,0x2d,0x17,0x01,0x0b,0x24,0x3b,0x51,0x60, 0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x13,0x00,0x01,0x1a,0x32,0x47,0x5a, 0x63,0x63,0x63,0x63,0x63,0x63,0x5c,0x4b,0x36,0x1f,0x08,0x00,0x00,0x00,0x0c, 0x23,0x39,0x4f,0x5f,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x15,0x00, 0x01,0x1a,0x30,0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x53,0x3e,0x29,0x10, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x30, 0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x61,0x53,0x3e,0x26,0x0e,0x1b,0x2e,0x41, 0x55,0x62,0x63,0x63,0x63,0x63,0x63,0x5f,0x4f,0x39,0x21,0x09,0x00,0x00,0x04, 0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2d,0x15,0x00, 0x01,0x1a,0x30,0x45,0x59,0x62,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x2d,0x18, 0x00,0x06,0x1c,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2d,0x18,0x00,0x04, 0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x60,0x4f,0x3b,0x24,0x0e,0x00,0x00,0x18,0x30, 0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x5f,0x5b,0x55, 0x4d,0x44,0x3a,0x2e,0x21,0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x67, 0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x63,0x4e,0x38,0x22,0x0d,0x0f,0x28,0x41,0x5b, 0x72,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e, 0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x6c,0x55,0x3e,0x27,0x10,0x00,0x00,0x00, 0x14,0x2b,0x42,0x5a,0x70,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x30,0x19, 0x00,0x05,0x1e,0x35,0x4e,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x76,0x5d,0x44,0x2d, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x35,0x4e,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x74,0x5d,0x44,0x2b,0x16,0x2a,0x3d, 0x51,0x64,0x77,0x7c,0x7c,0x7c,0x7c,0x7c,0x72,0x58,0x3f,0x26,0x0f,0x00,0x00, 0x07,0x20,0x37,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x32,0x19, 0x02,0x05,0x1e,0x35,0x4c,0x65,0x7b,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x4c,0x32, 0x1b,0x00,0x0a,0x20,0x3a,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x32,0x1b,0x00, 0x07,0x20,0x37,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x72,0x58,0x41,0x28,0x11,0x00,0x02,0x1b, 0x35,0x4e,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x77,0x72, 0x6d,0x65,0x5b,0x50,0x43,0x36,0x26,0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e, 0x68,0x81,0x98,0x98,0x98,0x98,0x87,0x70,0x5a,0x45,0x2e,0x19,0x0f,0x28,0x42, 0x5b,0x72,0x8e,0x98,0x98,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37, 0x4e,0x68,0x81,0x98,0x98,0x98,0x98,0x8d,0x74,0x5d,0x47,0x30,0x19,0x02,0x00, 0x05,0x1c,0x33,0x4a,0x62,0x77,0x90,0x98,0x98,0x98,0x95,0x79,0x63,0x49,0x30, 0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x98,0x98,0x98,0x90,0x77,0x5d,0x44, 0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1b,0x35,0x4e,0x68,0x81,0x98,0x98,0x98,0x90,0x74,0x5d,0x44,0x2b,0x26,0x39, 0x4c,0x60,0x74,0x88,0x98,0x98,0x98,0x8f,0x79,0x67,0x52,0x3b,0x23,0x0a,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x98,0x98,0x98,0x93,0x79,0x63,0x49,0x32, 0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0x98,0x98,0x95,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x93,0x79,0x63,0x49,0x32,0x1b, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x8b,0x72,0x58,0x42,0x28,0x11,0x00,0x02, 0x1b,0x35,0x4e,0x68,0x81,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x94,0x90, 0x8c,0x86,0x7b,0x72,0x65,0x58,0x49,0x38,0x28,0x16,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35, 0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xa7,0x92,0x7b,0x65,0x50,0x3a,0x25,0x0f,0x28, 0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xac,0x95,0x7c,0x66,0x4f,0x38,0x21,0x0a, 0x00,0x0d,0x25,0x3b,0x52,0x6a,0x82,0x99,0xaf,0xaf,0xac,0x95,0x79,0x63,0x49, 0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaa,0x90,0x77,0x5d, 0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x34, 0x48,0x5b,0x6e,0x84,0x98,0xaa,0xa6,0x93,0x81,0x6b,0x58,0x44,0x30,0x1b,0x04, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xaf,0xac,0x93,0x79,0x63,0x49, 0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xac,0x93,0x79,0x63,0x49,0x32, 0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xa5,0x8b,0x72,0x58,0x42,0x28,0x11,0x00, 0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xac, 0xa8,0xa3,0x9c,0x93,0x88,0x79,0x6c,0x5c,0x4a,0x38,0x26,0x12,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xc8,0xb4,0x9e,0x89,0x72,0x5c,0x46,0x30,0x1b, 0x28,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05, 0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xc8,0xb4,0x9e,0x87,0x6e,0x58,0x41,0x2a, 0x13,0x00,0x16,0x2d,0x44,0x5b,0x72,0x8a,0xa1,0xb8,0xc6,0xac,0x95,0x79,0x63, 0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77, 0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5d,0x44,0x30, 0x43,0x57,0x6b,0x7c,0x92,0xa6,0xab,0x98,0x84,0x6e,0x5c,0x48,0x35,0x21,0x0e, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63, 0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79, 0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb4,0xa3, 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x93,0x79,0x63,0x49, 0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb4,0xa1,0x9a,0x9a, 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x8b,0x72,0x58,0x42,0x28,0x11, 0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaf,0x9b,0x95,0x95,0x95,0x98, 0x9a,0xa0,0xa8,0xb2,0xaa,0x9e,0x90,0x81,0x6e,0x5c,0x48,0x34,0x20,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xb9,0xb4,0xaa,0x94,0x7c,0x68,0x52,0x3d, 0x27,0x28,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00, 0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xb8,0xb4,0xa6,0x8f,0x77,0x60,0x49, 0x32,0x1b,0x07,0x1e,0x35,0x4c,0x63,0x79,0x92,0xa9,0xb4,0xba,0xac,0x95,0x79, 0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5d,0x44, 0x3f,0x53,0x65,0x79,0x8f,0xa2,0xaf,0x9b,0x88,0x74,0x60,0x4c,0x39,0x26,0x12, 0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79, 0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95, 0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x96,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x63, 0x49,0x32,0x1b,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x72,0x58,0x42,0x28, 0x11,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x79,0x79,0x7c, 0x7c,0x82,0x89,0x91,0x9c,0xaa,0xb2,0xa2,0x92,0x81,0x6b,0x57,0x42,0x2d,0x16, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa3,0x9a,0xa4,0xa0,0x8b,0x73,0x5d, 0x48,0x32,0x28,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16, 0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa1,0x9b,0xa6,0x98,0x81,0x69, 0x51,0x3b,0x24,0x10,0x26,0x3d,0x54,0x6b,0x84,0x9a,0xa1,0x9b,0xa4,0xac,0x95, 0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5d, 0x44,0x4e,0x62,0x75,0x89,0x9d,0xb1,0xa0,0x8d,0x77,0x64,0x51,0x3e,0x2a,0x17, 0x03,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac, 0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x7c,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x67, 0x59,0x44,0x2f,0x18,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x63,0x51,0x3c, 0x24,0x0e,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x63, 0x63,0x65,0x6a,0x70,0x79,0x88,0x96,0xa8,0xb5,0xa2,0x8f,0x79,0x64,0x4e,0x38, 0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0x96,0x81,0x96,0xac,0x96,0x81, 0x6a,0x54,0x3f,0x29,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49,0x30, 0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xac,0x93,0x84,0x98,0xa0,0x89, 0x71,0x5a,0x43,0x2c,0x18,0x2e,0x46,0x5c,0x73,0x8b,0xa3,0x93,0x82,0x98,0xac, 0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5d,0x4a,0x5d,0x70,0x86,0x99,0xac,0xa4,0x90,0x7c,0x69,0x55,0x41,0x2e,0x1b, 0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x63,0x49,0x32,0x19,0x07,0x07,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x7c,0x63,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x47,0x37,0x24,0x10,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x60,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d,0x41, 0x31,0x1c,0x07,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5b,0x4a,0x4d,0x51,0x59,0x64,0x72,0x84,0x98,0xac,0xb1,0x9d,0x88,0x70,0x59, 0x41,0x2a,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0x97,0x7c,0x8b,0xa2,0xa2, 0x8c,0x75,0x60,0x4a,0x35,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63,0x49, 0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xac,0x93,0x79,0x90,0xa8, 0x92,0x79,0x62,0x4c,0x35,0x20,0x37,0x4e,0x65,0x7c,0x94,0xa2,0x8b,0x81,0x9a, 0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x5d,0x59,0x6d,0x81,0x94,0xa8,0xa8,0x95,0x82,0x6d,0x5a,0x46,0x33,0x1f, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x63,0x49,0x32,0x1e,0x1e,0x1e,0x1e,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35, 0x35,0x35,0x30,0x24,0x15,0x03,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x60,0x49,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x34, 0x2c,0x1f,0x0d,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x5b,0x42,0x34,0x39,0x42,0x50,0x60,0x73,0x89,0x9e,0xb5,0xa9,0x92,0x79, 0x62,0x4a,0x32,0x1b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb1,0x98,0x81,0x81,0x96, 0xad,0x98,0x82,0x6c,0x56,0x40,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79,0x63, 0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xaf,0x95,0x7c,0x89, 0xa0,0x9a,0x84,0x6b,0x54,0x3d,0x28,0x3f,0x56,0x6d,0x86,0x9c,0x9a,0x84,0x84, 0x9d,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x74,0x5d,0x68,0x7b,0x90,0xa3,0xad,0x9a,0x86,0x71,0x5e,0x4a,0x37,0x24, 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x63,0x49,0x37,0x37,0x37,0x37,0x37,0x37,0x4c,0x65,0x7c, 0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x23,0x23,0x23,0x23,0x23,0x23, 0x23,0x20,0x1e,0x19,0x10,0x04,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x49,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x34,0x2e, 0x22,0x16,0x0b,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x74,0x5b,0x42,0x28,0x22,0x2d,0x3d,0x51,0x65,0x7c,0x94,0xac,0xb2,0x9b, 0x84,0x6a,0x51,0x39,0x21,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0x9a,0x81,0x75, 0x8c,0xa2,0xa4,0x8f,0x77,0x62,0x4c,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95,0x79, 0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xaf,0x98,0x7c, 0x81,0x98,0xa3,0x8b,0x73,0x5d,0x45,0x31,0x47,0x5e,0x74,0x8d,0xa4,0x92,0x79, 0x86,0x9f,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x74,0x63,0x76,0x8b,0x9f,0xb1,0x9e,0x8b,0x75,0x62,0x4f,0x3b,0x28, 0x14,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x65, 0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, 0x3c,0x3c,0x39,0x2d,0x1e,0x0c,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d, 0x44,0x35,0x20,0x0c,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x1a,0x2e,0x45,0x5b,0x73,0x8b,0xa3,0xb9, 0xa1,0x89,0x6f,0x57,0x3e,0x26,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0x9d,0x84, 0x6a,0x82,0x98,0xae,0x9a,0x84,0x6e,0x58,0x42,0x5b,0x72,0x8e,0xa7,0xaf,0x95, 0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb2,0x9a, 0x81,0x77,0x90,0xa7,0x93,0x7b,0x65,0x4e,0x39,0x4f,0x67,0x7c,0x95,0xa0,0x8a, 0x71,0x89,0xa0,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x74,0x72,0x88,0x9b,0xae,0xa4,0x8f,0x79,0x67,0x53,0x40,0x2c, 0x18,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68, 0x68,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x63,0x53,0x53,0x53,0x53,0x53,0x53, 0x53,0x53,0x53,0x4e,0x40,0x2d,0x17,0x02,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68, 0x65,0x55,0x41,0x29,0x13,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x0d,0x24,0x3c,0x54,0x6d,0x86,0x9e, 0xb7,0xa7,0x8e,0x74,0x5b,0x43,0x2a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa0, 0x86,0x6a,0x75,0x8d,0xa4,0xa6,0x91,0x79,0x64,0x4f,0x5b,0x72,0x8e,0xa7,0xaf, 0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4, 0x9b,0x84,0x6f,0x88,0x9f,0x9c,0x86,0x6d,0x56,0x41,0x58,0x6f,0x87,0x9e,0x98, 0x81,0x71,0x8b,0xa2,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x90,0x74,0x84,0x96,0xaa,0xbc,0xa3,0x8d,0x76,0x61,0x4b,0x36, 0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xad,0x94,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, 0x84,0x84,0x84,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d, 0x6d,0x6d,0x6d,0x6d,0x62,0x4d,0x37,0x1f,0x08,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, 0x81,0x77,0x5d,0x47,0x2d,0x16,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x05,0x1d,0x36,0x4f,0x68,0x82, 0x9a,0xb4,0xaa,0x91,0x77,0x5d,0x45,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xa0,0x89,0x6d,0x6b,0x82,0x98,0xad,0x9c,0x87,0x70,0x5a,0x5b,0x72,0x8e,0xa7, 0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a, 0xb4,0x9d,0x86,0x6a,0x81,0x96,0xa4,0x8d,0x75,0x5f,0x49,0x60,0x77,0x8f,0xa6, 0x90,0x77,0x72,0x8d,0xa5,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xaa,0x90,0x7c,0x92,0xa5,0xb8,0xba,0xae,0x99,0x84,0x6d,0x58, 0x43,0x2d,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xb5,0xa3,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d, 0x9d,0x9d,0x9d,0x9d,0xa6,0xb8,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xad,0x98,0x89,0x89,0x89,0x89,0x89,0x89, 0x89,0x89,0x89,0x89,0x81,0x68,0x51,0x3a,0x21,0x0a,0x00,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x9a,0xb1,0xb4,0xa1,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a, 0x9a,0x90,0x77,0x5d,0x47,0x2d,0x16,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x02,0x1a,0x32,0x4c,0x65, 0x81,0x98,0xb1,0xac,0x93,0x79,0x60,0x47,0x2d,0x15,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xa2,0x8a,0x6f,0x5f,0x74,0x8c,0xa2,0xa8,0x93,0x7b,0x65,0x5b,0x72,0x8e, 0xa7,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81, 0x9a,0xb4,0xa0,0x86,0x6d,0x75,0x8d,0xa4,0x96,0x81,0x67,0x52,0x69,0x81,0x97, 0x9e,0x87,0x6f,0x74,0x8e,0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05, 0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xae,0x9a,0x93,0xa1,0xb1,0xa2,0xa2,0xb1,0xa5,0x90,0x79, 0x64,0x4f,0x39,0x24,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xc3,0xb6,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb7,0xc5,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb8,0xa7,0xa0,0xa0,0xa0,0xa0,0xa0, 0xa0,0xa0,0xa0,0xa0,0x9a,0x81,0x68,0x51,0x3a,0x21,0x0a,0x00,0x00,0x07,0x21, 0x37,0x51,0x68,0x81,0x9a,0xb1,0xc3,0xb4,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaa,0x90,0x77,0x5d,0x47,0x2d,0x16,0x00,0x00,0x00,0x02,0x1b,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x00,0x19,0x32,0x49, 0x63,0x7c,0x98,0xb1,0xaf,0x95,0x79,0x60,0x47,0x2d,0x16,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xa5,0x8b,0x6f,0x56,0x69,0x81,0x95,0xab,0x9e,0x89,0x72,0x5c,0x72, 0x8e,0xa5,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68, 0x81,0x9a,0xb4,0xa0,0x89,0x6d,0x6d,0x86,0x9b,0x9e,0x88,0x6f,0x5a,0x71,0x8a, 0xa0,0x95,0x7c,0x66,0x74,0x8e,0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00, 0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x14, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xbc,0xad,0xaa,0xb3,0xa1,0x8d,0x8f,0xa3,0xb2,0x9c, 0x87,0x70,0x5b,0x46,0x30,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb3,0xa1,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x98,0x98,0x98,0xa2,0xb6,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xbd,0xaf,0xaa,0xaa,0xaa,0xaa, 0xaa,0xaa,0xaa,0xaa,0xaa,0x9a,0x81,0x68,0x51,0x3a,0x21,0x0a,0x00,0x00,0x07, 0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xb3,0x9f,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x90,0x77,0x5d,0x47,0x2d,0x16,0x00,0x00,0x00,0x02,0x1b,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x00,0x19,0x32, 0x4a,0x63,0x7c,0x98,0xb1,0xaf,0x95,0x79,0x60,0x47,0x2d,0x16,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x5d,0x73,0x8a,0xa0,0xaa,0x94,0x7c,0x69, 0x6f,0x8b,0xa5,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e, 0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x65,0x7b,0x93,0xa6,0x90,0x77,0x62,0x79, 0x91,0xa3,0x8c,0x74,0x5d,0x74,0x90,0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19, 0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xcd,0xc5,0xb8,0xa4,0x91,0x7c,0x81,0x96,0xac, 0xa9,0x93,0x7c,0x68,0x52,0x3d,0x27,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x81,0x81,0x81,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb1,0x9b,0x90,0x90,0x90, 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x81,0x68,0x51,0x3a,0x21,0x0a,0x00,0x00, 0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x76,0x5d,0x47,0x2d,0x16,0x00,0x00,0x00,0x02,0x1b, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x02,0x1b, 0x33,0x4c,0x65,0x81,0x98,0xb1,0xac,0x93,0x79,0x60,0x47,0x2d,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e, 0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x51,0x67,0x7c,0x93,0xa9,0xa1,0x8a, 0x73,0x6f,0x89,0xa2,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37, 0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x5c,0x72,0x8b,0xa2,0x98,0x81,0x6a, 0x82,0x99,0x9b,0x84,0x6c,0x5b,0x74,0x90,0xa7,0xac,0x95,0x79,0x63,0x49,0x30, 0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44, 0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xcd,0xbc,0xa8,0x95,0x82,0x6d,0x74,0x8a, 0xa0,0xb5,0xa0,0x8a,0x74,0x5f,0x49,0x34,0x1f,0x09,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x77, 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x66,0x50,0x39,0x20,0x09,0x00, 0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x53,0x40,0x29,0x13,0x00,0x00,0x00,0x02, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f,0x06, 0x1e,0x37,0x50,0x68,0x84,0x9b,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2c,0x13,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35, 0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x46,0x5b,0x71,0x88,0x9d,0xac, 0x95,0x7c,0x6d,0x88,0xa0,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56,0x6a,0x82,0x99,0xa0,0x89, 0x72,0x8a,0xa1,0x92,0x79,0x63,0x5b,0x74,0x90,0xa7,0xac,0x95,0x79,0x63,0x49, 0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d, 0x44,0x2d,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xc0,0xac,0x9a,0x86,0x72,0x5e,0x68, 0x7c,0x93,0xa9,0xac,0x96,0x82,0x6b,0x56,0x40,0x2b,0x16,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c, 0x63,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x56,0x46,0x31,0x1b,0x05, 0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x42,0x31,0x1f,0x09,0x00,0x00,0x00, 0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28,0x0f, 0x0e,0x25,0x3d,0x55,0x6d,0x87,0xa0,0xb7,0xa5,0x8d,0x72,0x5a,0x41,0x29,0x11, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x3f,0x4f,0x65,0x7b,0x91, 0xa7,0xa0,0x8a,0x72,0x86,0x9d,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05, 0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56,0x62,0x77,0x90,0xa7, 0x90,0x79,0x91,0xa0,0x8a,0x72,0x5a,0x5b,0x74,0x90,0xa7,0xac,0x95,0x79,0x63, 0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77, 0x5d,0x44,0x2d,0x14,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00, 0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xb1,0x9d,0x89,0x75,0x62,0x4f, 0x5b,0x71,0x88,0x9d,0xb3,0xa3,0x8f,0x77,0x62,0x4c,0x37,0x22,0x0d,0x00,0x00, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x63, 0x49,0x35,0x35,0x35,0x35,0x35,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95,0x79, 0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95, 0x7c,0x63,0x4c,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x40,0x34,0x24,0x10, 0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60, 0x49,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2b,0x20,0x0f,0x00,0x00,0x00, 0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42,0x28, 0x0f,0x1c,0x30,0x46,0x5d,0x74,0x8d,0xa5,0xb7,0xa0,0x88,0x6d,0x56,0x3d,0x24, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x3f,0x43,0x59,0x6e, 0x86,0x9b,0xaa,0x94,0x7c,0x84,0x9b,0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00, 0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56,0x59,0x70,0x88, 0x9e,0x9b,0x90,0x9b,0x98,0x81,0x69,0x52,0x5b,0x74,0x90,0xa7,0xac,0x95,0x79, 0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x77,0x5d,0x44,0x2d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x19,0x0f,0x02, 0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x79,0x65,0x53, 0x3f,0x4f,0x64,0x79,0x91,0xa6,0xaf,0x9a,0x86,0x6e,0x59,0x44,0x2f,0x19,0x04, 0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79, 0x63,0x49,0x32,0x1b,0x1b,0x1b,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x95, 0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x95,0x7c,0x63,0x4c,0x35,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2a,0x20,0x12, 0x02,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79, 0x60,0x49,0x30,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x10,0x04, 0x00,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b,0x42, 0x28,0x23,0x2f,0x3f,0x52,0x68,0x7c,0x95,0xad,0xaf,0x98,0x81,0x67,0x4f,0x37, 0x1f,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x3f,0x38,0x4e, 0x63,0x79,0x90,0xa5,0x9e,0x89,0x81,0x9a,0xaf,0x95,0x79,0x63,0x49,0x30,0x16, 0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56,0x50,0x67, 0x81,0x95,0xac,0xa7,0xa6,0x8f,0x77,0x60,0x49,0x5b,0x74,0x90,0xa7,0xac,0x95, 0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x77,0x5d,0x44,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x24, 0x13,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5d, 0x44,0x30,0x43,0x58,0x6d,0x84,0x9a,0xaf,0xa7,0x92,0x7b,0x65,0x50,0x3b,0x26, 0x10,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xac, 0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x14,0x14,0x14,0x14,0x14,0x14,0x11,0x0a, 0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x60,0x49,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x25, 0x15,0x03,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74,0x5b, 0x42,0x35,0x3a,0x43,0x51,0x62,0x75,0x8b,0xa1,0xb6,0xa5,0x90,0x76,0x5f,0x48, 0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x3f,0x2c, 0x42,0x57,0x6c,0x84,0x9a,0xaa,0x93,0x82,0x98,0xaf,0x95,0x79,0x63,0x49,0x30, 0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56,0x47, 0x5e,0x75,0x8d,0xa4,0xb4,0x9d,0x86,0x6e,0x58,0x44,0x5b,0x74,0x90,0xa7,0xac, 0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x77,0x5d,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47, 0x37,0x22,0x0c,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5d,0x44,0x2b,0x37,0x4c,0x62,0x77,0x8f,0xa3,0xb3,0x9e,0x89,0x72,0x5c,0x48, 0x32,0x1c,0x07,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x60,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47, 0x38,0x24,0x10,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x74, 0x5b,0x4c,0x4d,0x51,0x5a,0x65,0x74,0x86,0x9a,0xad,0xaf,0x9a,0x84,0x6d,0x56, 0x3f,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58,0x3f, 0x26,0x36,0x4b,0x61,0x76,0x8d,0xa3,0xa3,0x9b,0xa4,0xaf,0x95,0x79,0x63,0x49, 0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d,0x56, 0x3f,0x56,0x6d,0x84,0x9b,0xac,0x94,0x7c,0x66,0x4f,0x44,0x5b,0x74,0x90,0xa7, 0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x77,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x67, 0x59,0x43,0x2d,0x14,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x5d,0x44,0x2b,0x2b,0x40,0x56,0x6b,0x82,0x98,0xac,0xaa,0x94,0x81,0x69, 0x53,0x3e,0x29,0x14,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x67, 0x5a,0x46,0x2f,0x18,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x74,0x63,0x63,0x65,0x6a,0x71,0x7b,0x89,0x98,0xaa,0xb3,0xa1,0x8d,0x76,0x62, 0x4b,0x35,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f,0x58, 0x3f,0x26,0x2a,0x40,0x55,0x6b,0x82,0x98,0xad,0xb4,0xba,0xaf,0x95,0x79,0x63, 0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89,0x6d, 0x56,0x3c,0x4d,0x64,0x79,0x93,0xa3,0x8c,0x74,0x5d,0x46,0x44,0x5b,0x74,0x90, 0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x91,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, 0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x74,0x5d,0x44,0x2b,0x1f,0x34,0x49,0x5f,0x74,0x8b,0xa1,0xb6,0xa1,0x8b, 0x75,0x60,0x4a,0x35,0x20,0x0b,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65,0x7c, 0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, 0x79,0x63,0x4c,0x32,0x1b,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x7c,0x7c,0x7c,0x7c,0x84,0x89,0x92,0x9d,0xab,0xb1,0xa2,0x90,0x7c,0x69, 0x55,0x40,0x29,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4,0xa5,0x8b,0x6f, 0x58,0x3f,0x26,0x1e,0x33,0x49,0x5f,0x74,0x8b,0xa1,0xb6,0xc6,0xaf,0x95,0x79, 0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x89, 0x6d,0x56,0x3c,0x45,0x5b,0x72,0x8a,0x8b,0x84,0x6b,0x55,0x3e,0x44,0x5b,0x74, 0x90,0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e,0x68, 0x81,0x9a,0xb4,0xb2,0xa0,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a, 0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x74,0x5d,0x44,0x2b,0x13,0x28,0x3d,0x53,0x69,0x7c,0x94,0xaa,0xad, 0x98,0x84,0x6c,0x57,0x41,0x2d,0x17,0x02,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c,0x65, 0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68,0x81, 0x9a,0xb1,0xb4,0xa1,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a, 0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xb4, 0xaf,0x9b,0x95,0x95,0x96,0x98,0x9b,0xa0,0xa8,0xb3,0xa9,0x9d,0x8f,0x7c,0x6d, 0x59,0x47,0x32,0x1d,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a,0xaf,0xa5,0x8b, 0x6f,0x58,0x3f,0x26,0x12,0x28,0x3e,0x53,0x69,0x81,0x95,0xab,0xaf,0xaf,0x95, 0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xaf,0xa2, 0x89,0x6d,0x56,0x3c,0x3c,0x52,0x67,0x6f,0x6f,0x6f,0x62,0x4c,0x35,0x44,0x5b, 0x74,0x90,0xa7,0xac,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35,0x4e, 0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xaf,0xaa,0x90,0x74,0x5d,0x44,0x2b,0x11,0x1c,0x31,0x47,0x5c,0x72,0x88,0x9d, 0xaf,0xa4,0x90,0x79,0x63,0x4e,0x39,0x23,0x0d,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xaf,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35,0x4c, 0x65,0x7c,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xaf,0xac,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51,0x68, 0x81,0x9a,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81,0x9a, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xac,0xa8,0xa3,0x9c,0x93,0x88,0x79,0x6b, 0x5b,0x49,0x37,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81,0x95,0x95,0x95, 0x8b,0x6f,0x58,0x3f,0x26,0x0c,0x1c,0x31,0x47,0x5d,0x72,0x89,0x95,0x95,0x95, 0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x95,0x95, 0x95,0x89,0x6d,0x56,0x3c,0x31,0x45,0x53,0x58,0x58,0x58,0x51,0x3f,0x2c,0x44, 0x5b,0x74,0x90,0x95,0x95,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x05,0x1e,0x35, 0x4e,0x68,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x79,0x63,0x49,0x30,0x16,0x00,0x05,0x1b,0x35,0x4e,0x68,0x81, 0x95,0x95,0x95,0x90,0x74,0x5d,0x44,0x2b,0x11,0x0f,0x25,0x3a,0x50,0x65,0x7b, 0x92,0x95,0x95,0x95,0x87,0x70,0x5a,0x44,0x2b,0x14,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x95,0x95,0x95,0x93,0x79,0x63,0x49,0x32,0x19,0x02,0x05,0x1e,0x35, 0x4c,0x65,0x7c,0x95,0x95,0x95,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x95,0x7c,0x63,0x4c,0x35,0x1b,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x02,0x1b,0x35,0x4e,0x68,0x81, 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x91,0x8b,0x86,0x7b,0x71,0x65, 0x57,0x48,0x37,0x26,0x14,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x35,0x4e,0x67,0x79,0x79,0x79, 0x79,0x79,0x6e,0x58,0x3f,0x25,0x0c,0x10,0x26,0x3b,0x51,0x67,0x79,0x79,0x79, 0x79,0x79,0x77,0x62,0x49,0x30,0x16,0x00,0x04,0x1e,0x37,0x4e,0x67,0x79,0x79, 0x79,0x79,0x79,0x6c,0x56,0x3c,0x25,0x32,0x3d,0x3f,0x3f,0x3f,0x3a,0x2d,0x2b, 0x44,0x5b,0x73,0x79,0x79,0x79,0x79,0x77,0x62,0x49,0x30,0x19,0x00,0x04,0x1e, 0x35,0x4e,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x77,0x62,0x49,0x30,0x16,0x00,0x04,0x1b,0x35,0x4e,0x67, 0x79,0x79,0x79,0x79,0x79,0x73,0x5d,0x44,0x2b,0x11,0x04,0x18,0x2e,0x44,0x59, 0x6e,0x79,0x79,0x79,0x79,0x79,0x75,0x60,0x46,0x2d,0x14,0x00,0x07,0x20,0x37, 0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x49,0x32,0x19,0x02,0x04,0x1e, 0x35,0x4b,0x65,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x32,0x1b,0x00,0x0a, 0x20,0x3a,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x62,0x4b,0x35,0x1b,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x20,0x37, 0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x32,0x1b,0x00,0x02,0x1b,0x35,0x4e,0x67, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x72,0x6d,0x64,0x5b, 0x4f,0x43,0x34,0x25,0x15,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x30,0x47,0x5a,0x63,0x63, 0x63,0x63,0x63,0x5f,0x4f,0x39,0x21,0x09,0x04,0x19,0x30,0x45,0x59,0x62,0x63, 0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x13,0x00,0x01,0x1a,0x32,0x47,0x5a,0x63, 0x63,0x63,0x63,0x63,0x5d,0x4d,0x37,0x21,0x1c,0x24,0x26,0x26,0x26,0x22,0x19, 0x26,0x3e,0x51,0x61,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x15,0x00,0x01, 0x1a,0x30,0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x13,0x00,0x01,0x18,0x30,0x47, 0x5a,0x63,0x63,0x63,0x63,0x63,0x61,0x53,0x3e,0x26,0x0e,0x00,0x0d,0x22,0x38, 0x4d,0x5d,0x63,0x63,0x63,0x63,0x63,0x62,0x55,0x40,0x2b,0x13,0x00,0x04,0x1c, 0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2d,0x15,0x00,0x01, 0x1a,0x30,0x45,0x59,0x62,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x2d,0x18,0x00, 0x06,0x1c,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x18, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1c, 0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x2d,0x18,0x00,0x00,0x18,0x30,0x47, 0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x5f,0x5b,0x55,0x4d, 0x44,0x39,0x2e,0x20,0x12,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x24,0x37,0x44,0x49, 0x49,0x49,0x49,0x49,0x47,0x3d,0x2c,0x17,0x00,0x00,0x0e,0x22,0x35,0x43,0x49, 0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x1f,0x09,0x00,0x00,0x10,0x26,0x37,0x44, 0x49,0x49,0x49,0x49,0x49,0x46,0x3b,0x2a,0x17,0x06,0x0d,0x0f,0x0f,0x0f,0x0c, 0x05,0x1b,0x2f,0x3e,0x48,0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x1f,0x0c,0x00, 0x00,0x10,0x24,0x37,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x1f,0x09,0x00,0x00,0x0e,0x24, 0x37,0x44,0x49,0x49,0x49,0x49,0x49,0x48,0x40,0x2f,0x1b,0x05,0x00,0x00,0x15, 0x2a,0x3b,0x47,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x31,0x1d,0x09,0x00,0x00, 0x12,0x26,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x21,0x0c,0x00, 0x00,0x10,0x24,0x35,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x21,0x0e, 0x00,0x00,0x12,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x24, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x12,0x26,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x21,0x0e,0x00,0x00,0x0e,0x24, 0x37,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x47,0x43,0x3e, 0x36,0x2e,0x24,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x22,0x2d, 0x30,0x30,0x30,0x30,0x30,0x2e,0x27,0x19,0x08,0x00,0x00,0x00,0x13,0x21,0x2c, 0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x0f,0x00,0x00,0x00,0x02,0x14,0x22, 0x2d,0x30,0x30,0x30,0x30,0x30,0x2e,0x26,0x18,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0b,0x1c,0x28,0x2f,0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x0f,0x00, 0x00,0x00,0x02,0x13,0x22,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x0f,0x00,0x00,0x00,0x00, 0x13,0x22,0x2d,0x30,0x30,0x30,0x30,0x30,0x2f,0x29,0x1c,0x0b,0x00,0x00,0x00, 0x06,0x18,0x26,0x2e,0x30,0x30,0x30,0x30,0x30,0x2f,0x2a,0x1e,0x0d,0x00,0x00, 0x00,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x11,0x00, 0x00,0x00,0x02,0x13,0x21,0x2c,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21,0x11, 0x00,0x00,0x00,0x04,0x16,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21, 0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21,0x11,0x00,0x00,0x00,0x00, 0x13,0x22,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2f,0x2b, 0x26,0x1f,0x17,0x0d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e, 0x16,0x19,0x19,0x19,0x19,0x19,0x18,0x12,0x07,0x00,0x00,0x00,0x00,0x00,0x0d, 0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x02, 0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x17,0x11,0x05,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x09,0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00, 0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00, 0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x18,0x14,0x09,0x00,0x00,0x00, 0x00,0x00,0x05,0x11,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0b,0x00,0x00, 0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00, 0x00,0x00,0x00,0x00,0x01,0x0d,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d, 0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15, 0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d,0x00,0x00,0x00,0x00, 0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16, 0x12,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x04,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x07,0x07,0x07,0x07,0x07, 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x05,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x18,0x15,0x11,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a, 0x11,0x16,0x19,0x1e,0x1d,0x19,0x15,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0e, 0x13,0x18,0x1a,0x1e,0x1c,0x19,0x14,0x0f,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0b, 0x11,0x16,0x19,0x1d,0x1d,0x19,0x16,0x11,0x0b,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x13,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x18,0x0e,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0f,0x15,0x18, 0x1b,0x1e,0x1c,0x19,0x16,0x11,0x0c,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0c,0x13,0x18, 0x1b,0x1e,0x1b,0x18,0x13,0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x16,0x24,0x2f,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x30,0x2d,0x2a,0x25,0x1f,0x17,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x24,0x2e, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x13,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x18, 0x21,0x29,0x2f,0x32,0x35,0x35,0x32,0x2e,0x28,0x1f,0x16,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x1d, 0x26,0x2c,0x31,0x32,0x35,0x34,0x32,0x2d,0x27,0x1f,0x15,0x09,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x19, 0x22,0x29,0x2f,0x32,0x35,0x35,0x32,0x2f,0x29,0x22,0x19,0x0e,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x29,0x33,0x37,0x37,0x37,0x37, 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x30,0x22,0x12, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x17,0x20,0x27,0x2d, 0x31,0x33,0x35,0x34,0x32,0x2f,0x2a,0x24,0x1c,0x13,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x1b,0x24,0x2c, 0x31,0x33,0x35,0x33,0x30,0x2b,0x24,0x1b,0x10,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x11,0x27,0x38,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4b,0x49,0x46,0x42,0x3d,0x36,0x2e,0x23,0x18,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x25,0x37, 0x46,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x35,0x23,0x0f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x23, 0x2f,0x39,0x41,0x47,0x4b,0x4e,0x4d,0x4a,0x45,0x3f,0x36,0x2c,0x20,0x13,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0f,0x1d,0x29, 0x33,0x3d,0x43,0x49,0x4c,0x4e,0x4c,0x49,0x45,0x3e,0x35,0x2a,0x1f,0x11,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x18,0x25, 0x30,0x39,0x41,0x47,0x4b,0x4e,0x4d,0x4b,0x47,0x41,0x39,0x2f,0x24,0x17,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x29,0x3a,0x48,0x4e,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d,0x44,0x33, 0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x17,0x22,0x2d,0x37,0x3f, 0x45,0x49,0x4c,0x4e,0x4c,0x4a,0x47,0x42,0x3c,0x33,0x29,0x1e,0x10,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x18,0x26,0x31,0x3b, 0x43,0x49,0x4c,0x4e,0x4c,0x49,0x43,0x3b,0x31,0x25,0x18,0x09,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x1a,0x32,0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x61,0x5d,0x5a,0x55,0x4d,0x43,0x38,0x2c,0x1d,0x0d,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x31, 0x47,0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x2f,0x18,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1a,0x2a, 0x38,0x45,0x4f,0x58,0x5f,0x63,0x66,0x65,0x62,0x5d,0x56,0x4c,0x41,0x34,0x26, 0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x13,0x23,0x31, 0x3f,0x4a,0x54,0x5b,0x61,0x63,0x67,0x65,0x62,0x5d,0x55,0x4b,0x40,0x33,0x23, 0x13,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d,0x2d, 0x3a,0x46,0x50,0x59,0x5f,0x63,0x66,0x65,0x63,0x5f,0x59,0x50,0x45,0x39,0x2b, 0x1d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1c,0x34,0x49,0x5c,0x67,0x68, 0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x65,0x56, 0x40,0x2a,0x14,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x1e,0x2b,0x38,0x43,0x4d, 0x55,0x5d,0x62,0x65,0x67,0x65,0x63,0x5f,0x5a,0x53,0x49,0x3f,0x32,0x24,0x14, 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c,0x2c,0x3a,0x47, 0x52,0x5b,0x61,0x65,0x68,0x65,0x60,0x5a,0x51,0x47,0x3a,0x2b,0x1c,0x0a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x79,0x76,0x72,0x6c,0x64,0x5a,0x4e,0x40,0x2f,0x1f,0x0d, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23, 0x39,0x4f,0x66,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x64,0x4d,0x36,0x21,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1a,0x2c, 0x3c,0x4c,0x5a,0x65,0x6f,0x77,0x7c,0x81,0x7c,0x79,0x74,0x6d,0x62,0x56,0x48, 0x38,0x28,0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x23,0x35, 0x45,0x53,0x61,0x6b,0x73,0x79,0x7c,0x81,0x7c,0x79,0x74,0x6c,0x62,0x55,0x46, 0x35,0x25,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1f,0x30, 0x40,0x4f,0x5c,0x67,0x70,0x77,0x7c,0x81,0x7c,0x7c,0x77,0x70,0x67,0x5b,0x4e, 0x40,0x2f,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00,0x08,0x20,0x37,0x4e,0x65,0x7c, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x74, 0x5d,0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x04,0x15,0x24,0x32,0x40,0x4d,0x59, 0x63,0x6d,0x74,0x79,0x7c,0x81,0x7c,0x7c,0x77,0x72,0x6a,0x60,0x53,0x46,0x37, 0x25,0x14,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x2e,0x3e,0x4e, 0x5c,0x69,0x72,0x79,0x7c,0x81,0x7c,0x79,0x72,0x68,0x5c,0x4e,0x3e,0x2c,0x1b, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x98,0x98,0x98,0x98,0x98, 0x98,0x98,0x98,0x98,0x95,0x93,0x90,0x8b,0x86,0x7b,0x70,0x62,0x52,0x41,0x2f, 0x1a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14, 0x2a,0x41,0x57,0x6d,0x86,0x98,0x98,0x98,0x98,0x98,0x84,0x6b,0x55,0x3e,0x28, 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x16,0x2a, 0x3c,0x4e,0x5f,0x6e,0x7b,0x88,0x90,0x96,0x98,0x98,0x94,0x8e,0x86,0x79,0x6b, 0x5c,0x4a,0x38,0x26,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x34, 0x45,0x57,0x68,0x75,0x84,0x8c,0x93,0x98,0x98,0x98,0x93,0x8d,0x84,0x77,0x69, 0x59,0x47,0x34,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1e,0x30, 0x41,0x53,0x63,0x71,0x7c,0x89,0x90,0x95,0x98,0x98,0x95,0x90,0x89,0x7c,0x70, 0x62,0x53,0x41,0x30,0x1b,0x06,0x00,0x00,0x00,0x00,0x0a,0x21,0x38,0x50,0x68, 0x81,0x98,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x8e, 0x74,0x5d,0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x11,0x26,0x37,0x46,0x54,0x62, 0x6e,0x79,0x86,0x8e,0x93,0x98,0x98,0x98,0x95,0x90,0x8b,0x82,0x75,0x68,0x59, 0x47,0x36,0x23,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x2b,0x3e,0x50, 0x62,0x70,0x81,0x8b,0x93,0x98,0x98,0x98,0x92,0x8a,0x7c,0x70,0x60,0x50,0x3e, 0x2b,0x17,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xae, 0xaa,0xaa,0xaa,0xaa,0xac,0xac,0xac,0xa7,0xa2,0x9b,0x91,0x86,0x74,0x63,0x50, 0x3b,0x27,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x1b,0x31,0x48,0x5e,0x75,0x8d,0xa3,0xae,0xaa,0xaf,0xa0,0x8a,0x73,0x5c,0x45, 0x2f,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x23, 0x38,0x4c,0x5e,0x70,0x84,0x92,0x9e,0xa7,0xaa,0xa7,0xa7,0xac,0xa4,0x9b,0x8f, 0x81,0x6d,0x5b,0x49,0x35,0x21,0x0c,0x00,0x00,0x00,0x00,0x00,0x02,0x17,0x2d, 0x41,0x56,0x69,0x79,0x8b,0x99,0xa3,0xa9,0xa2,0xa0,0xa2,0xa8,0xa4,0x9a,0x8d, 0x7b,0x69,0x56,0x42,0x2d,0x17,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x19,0x2d, 0x40,0x53,0x65,0x75,0x87,0x94,0xa0,0xa8,0xad,0xad,0xac,0xad,0xa8,0x9e,0x92, 0x86,0x75,0x65,0x51,0x3b,0x23,0x0c,0x00,0x00,0x00,0x00,0x0b,0x23,0x3a,0x51, 0x68,0x84,0x9a,0xb1,0xb4,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa5, 0x8e,0x74,0x5d,0x44,0x2d,0x16,0x00,0x00,0x00,0x06,0x1c,0x31,0x45,0x59,0x67, 0x75,0x84,0x91,0x9c,0xa4,0xac,0xaa,0xaa,0xaa,0xad,0xa8,0xa2,0x98,0x8b,0x7b, 0x69,0x57,0x44,0x30,0x1b,0x06,0x00,0x00,0x00,0x00,0x00,0x10,0x25,0x39,0x4e, 0x61,0x72,0x86,0x94,0xa1,0xaa,0xaa,0xaa,0xab,0xa9,0xa1,0x94,0x84,0x72,0x60, 0x4d,0x39,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xb1, 0x9b,0x93,0x93,0x93,0x93,0x93,0x93,0x98,0x9e,0xa9,0xb2,0xa7,0x98,0x88,0x72, 0x5c,0x47,0x31,0x1b,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x22,0x39,0x50,0x66,0x7c,0x94,0xab,0x9a,0x93,0x9f,0xa8,0x92,0x79,0x63, 0x4d,0x37,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x18, 0x2f,0x44,0x59,0x6d,0x82,0x94,0xa5,0xaa,0x9d,0x93,0x8e,0x8f,0x94,0x9e,0xab, 0xa2,0x91,0x81,0x6b,0x58,0x43,0x2e,0x18,0x02,0x00,0x00,0x00,0x00,0x0b,0x21, 0x38,0x4e,0x63,0x77,0x8d,0x9e,0xad,0x9e,0x92,0x8a,0x89,0x89,0x91,0x9c,0xac, 0x9f,0x8d,0x77,0x63,0x4e,0x37,0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x10,0x25, 0x3a,0x4f,0x62,0x75,0x89,0x9a,0xa8,0xab,0xa0,0x99,0x95,0x94,0x98,0x9e,0xa9, 0xa7,0x99,0x87,0x6f,0x58,0x3f,0x26,0x0f,0x00,0x00,0x00,0x00,0x0c,0x24,0x3c, 0x53,0x6a,0x84,0x9a,0xb1,0xa8,0x99,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x8e,0x74,0x5d,0x44,0x2d,0x16,0x00,0x00,0x00,0x09,0x20,0x37,0x4e,0x66, 0x7b,0x8b,0x99,0xa5,0xa9,0x9e,0x96,0x93,0x90,0x93,0x98,0xa2,0xaf,0xac,0x9d, 0x8d,0x79,0x64,0x50,0x3b,0x25,0x0f,0x00,0x00,0x00,0x00,0x05,0x1c,0x31,0x47, 0x5b,0x70,0x84,0x98,0xa8,0xa7,0x9b,0x93,0x90,0x93,0x9c,0xa8,0xa7,0x96,0x84, 0x6e,0x5a,0x46,0x30,0x1b,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x77,0x77,0x77,0x77,0x79,0x81,0x88,0x93,0xa2,0xb5,0xa9,0x94, 0x7c,0x67,0x50,0x39,0x22,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x14,0x2a,0x41,0x57,0x6d,0x86,0x9b,0xa6,0x8f,0x7c,0x96,0xad,0x99,0x84, 0x6b,0x55,0x3e,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b, 0x21,0x39,0x4f,0x65,0x7b,0x90,0xa5,0xab,0x98,0x88,0x79,0x74,0x74,0x7c,0x89, 0x9a,0xaa,0xa1,0x8f,0x79,0x64,0x4f,0x39,0x22,0x0d,0x00,0x00,0x00,0x00,0x11, 0x29,0x41,0x58,0x6e,0x86,0x9a,0xae,0x9d,0x8b,0x7b,0x71,0x6d,0x70,0x79,0x89, 0x9b,0xaf,0x9b,0x86,0x6d,0x57,0x40,0x29,0x11,0x00,0x00,0x00,0x00,0x05,0x1b, 0x31,0x47,0x5b,0x71,0x86,0x9a,0xab,0xa6,0x96,0x8a,0x81,0x79,0x79,0x7c,0x88, 0x93,0x9b,0x88,0x75,0x62,0x50,0x3a,0x22,0x0c,0x00,0x00,0x00,0x00,0x0e,0x26, 0x3c,0x53,0x6c,0x86,0x9d,0xb4,0x9d,0x87,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c, 0x7c,0x7c,0x7c,0x74,0x5d,0x44,0x2d,0x16,0x00,0x00,0x00,0x08,0x1f,0x35,0x4d, 0x62,0x74,0x88,0x9a,0xa0,0x93,0x88,0x7c,0x77,0x76,0x79,0x81,0x8d,0x9d,0xaf, 0xae,0x9b,0x87,0x6f,0x5a,0x44,0x2d,0x16,0x00,0x00,0x00,0x00,0x0f,0x26,0x3b, 0x52,0x68,0x7c,0x93,0xa6,0xa7,0x94,0x86,0x79,0x74,0x79,0x86,0x96,0xa8,0xa6, 0x92,0x7c,0x67,0x51,0x3a,0x25,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x5d,0x5d,0x60,0x62,0x67,0x71,0x81,0x94,0xaa,0xb4, 0x9d,0x86,0x6d,0x56,0x3e,0x26,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x1b,0x31,0x49,0x5e,0x74,0x8d,0xa3,0xa0,0x89,0x77,0x90,0xa7,0xa1, 0x8b,0x72,0x5c,0x46,0x2f,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x12,0x29,0x41,0x58,0x6e,0x87,0x9c,0xb2,0x9d,0x89,0x74,0x64,0x5b,0x5c,0x65, 0x75,0x88,0x9b,0xb0,0x9b,0x87,0x6f,0x59,0x43,0x2c,0x15,0x00,0x00,0x00,0x00, 0x16,0x2f,0x46,0x5e,0x75,0x8e,0xa5,0xa8,0x91,0x7b,0x67,0x59,0x53,0x58,0x65, 0x77,0x8f,0xa4,0xa5,0x8e,0x74,0x5d,0x46,0x2e,0x16,0x00,0x00,0x00,0x00,0x0f, 0x25,0x3b,0x51,0x68,0x7c,0x93,0xa7,0xa8,0x96,0x84,0x73,0x69,0x63,0x60,0x66, 0x70,0x7c,0x8b,0x76,0x64,0x52,0x40,0x2d,0x19,0x04,0x00,0x00,0x00,0x00,0x0f, 0x27,0x3f,0x56,0x6d,0x86,0x9d,0xb4,0x9b,0x84,0x6b,0x65,0x65,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x62,0x53,0x3f,0x29,0x13,0x00,0x00,0x00,0x02,0x17,0x2d, 0x3f,0x52,0x63,0x75,0x89,0x8d,0x7c,0x71,0x65,0x60,0x5d,0x61,0x6a,0x79,0x8d, 0xa3,0xb8,0xa5,0x90,0x77,0x60,0x49,0x32,0x1b,0x04,0x00,0x00,0x00,0x17,0x2f, 0x45,0x5c,0x73,0x8a,0xa0,0xaf,0x9a,0x84,0x70,0x62,0x5d,0x63,0x72,0x86,0x9b, 0xb1,0x9f,0x89,0x72,0x5b,0x44,0x2e,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x47,0x47,0x49,0x50,0x5d,0x72,0x8a,0xa1, 0xb9,0xa2,0x8b,0x70,0x58,0x41,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x23,0x39,0x50,0x66,0x7c,0x94,0xab,0x9b,0x84,0x72,0x89,0xa0, 0xa8,0x92,0x79,0x64,0x4d,0x36,0x20,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x18,0x2f,0x47,0x5e,0x75,0x8f,0xa5,0xaa,0x93,0x7b,0x65,0x52,0x44,0x45, 0x52,0x65,0x79,0x90,0xa6,0xa6,0x90,0x79,0x62,0x4b,0x34,0x1c,0x06,0x00,0x00, 0x02,0x19,0x32,0x49,0x62,0x79,0x93,0xac,0xa2,0x8b,0x72,0x5a,0x45,0x3c,0x43, 0x57,0x6d,0x86,0x9d,0xab,0x93,0x79,0x61,0x49,0x31,0x19,0x01,0x00,0x00,0x00, 0x17,0x2e,0x45,0x5b,0x72,0x89,0xa0,0xb1,0x9b,0x87,0x72,0x60,0x51,0x49,0x49, 0x50,0x5b,0x6b,0x76,0x67,0x54,0x41,0x2f,0x1e,0x0b,0x00,0x00,0x00,0x00,0x00, 0x11,0x28,0x3f,0x56,0x6f,0x89,0xa0,0xb1,0x9a,0x84,0x6a,0x53,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x42,0x31,0x1f,0x0b,0x00,0x00,0x00,0x00,0x0c, 0x1e,0x30,0x42,0x53,0x65,0x77,0x77,0x69,0x5c,0x50,0x48,0x44,0x49,0x58,0x6c, 0x84,0x9b,0xb2,0xac,0x94,0x7c,0x65,0x4c,0x35,0x1e,0x07,0x00,0x00,0x07,0x1e, 0x36,0x4d,0x65,0x7c,0x93,0xab,0xa6,0x90,0x77,0x62,0x4e,0x44,0x4f,0x63,0x77, 0x90,0xa7,0xa9,0x92,0x79,0x64,0x4c,0x35,0x1d,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x2e,0x31,0x3d,0x56,0x6d,0x86, 0xa0,0xb6,0xa2,0x8b,0x72,0x58,0x41,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x14,0x2a,0x41,0x57,0x6d,0x86,0x9c,0xab,0x94,0x7c,0x6c,0x84, 0x9b,0xb0,0x99,0x84,0x6b,0x55,0x3e,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x1b,0x32,0x4b,0x63,0x79,0x94,0xac,0xa5,0x8e,0x74,0x5d,0x45,0x30, 0x30,0x43,0x58,0x6e,0x86,0x9d,0xb0,0x99,0x82,0x6a,0x52,0x3b,0x23,0x0c,0x00, 0x00,0x02,0x19,0x32,0x49,0x63,0x7b,0x95,0xad,0xa2,0x89,0x6f,0x58,0x3f,0x28, 0x38,0x50,0x68,0x81,0x9a,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x02,0x00,0x00, 0x08,0x1e,0x36,0x4d,0x64,0x7b,0x93,0xaa,0xa6,0x90,0x79,0x63,0x50,0x3d,0x32, 0x30,0x3a,0x48,0x58,0x5d,0x55,0x43,0x31,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00, 0x00,0x11,0x2a,0x42,0x58,0x6f,0x89,0xa0,0xaf,0x98,0x81,0x68,0x51,0x3f,0x3f, 0x3f,0x3b,0x35,0x35,0x35,0x35,0x34,0x2d,0x20,0x11,0x00,0x00,0x00,0x00,0x00, 0x00,0x0e,0x20,0x33,0x45,0x57,0x65,0x64,0x56,0x47,0x3b,0x30,0x2d,0x39,0x50, 0x68,0x81,0x98,0xaf,0xac,0x95,0x7c,0x65,0x4e,0x35,0x1e,0x07,0x00,0x00,0x0c, 0x24,0x3d,0x54,0x6b,0x84,0x9b,0xb3,0x9f,0x87,0x6e,0x58,0x41,0x2d,0x42,0x59, 0x6f,0x89,0xa0,0xb2,0x9b,0x84,0x6a,0x53,0x3b,0x23,0x0b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x30,0x34,0x41,0x57,0x6e, 0x89,0xa0,0xb5,0x9e,0x87,0x6e,0x57,0x3f,0x28,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x1b,0x31,0x48,0x5f,0x75,0x8c,0xa3,0xa5,0x8e,0x75,0x65, 0x7c,0x94,0xab,0xa1,0x8a,0x72,0x5d,0x45,0x2f,0x18,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x1b,0x34,0x4c,0x65,0x7c,0x98,0xaf,0xa2,0x8b,0x6f,0x58,0x40, 0x28,0x22,0x38,0x4f,0x67,0x7c,0x97,0xad,0xa0,0x89,0x70,0x58,0x41,0x29,0x11, 0x00,0x00,0x01,0x19,0x31,0x49,0x61,0x79,0x93,0xaa,0xa5,0x8c,0x74,0x5e,0x4a, 0x3b,0x3a,0x51,0x6a,0x82,0x9a,0xa9,0x91,0x79,0x60,0x49,0x30,0x18,0x00,0x00, 0x00,0x0e,0x24,0x3d,0x54,0x6b,0x84,0x9b,0xb2,0x9e,0x87,0x6f,0x59,0x42,0x41, 0x44,0x43,0x41,0x3c,0x41,0x44,0x3f,0x33,0x21,0x0f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x14,0x2b,0x42,0x5a,0x72,0x8b,0xa2,0xad,0x95,0x7c,0x65,0x56,0x58, 0x58,0x56,0x52,0x4d,0x45,0x3b,0x30,0x23,0x16,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x11,0x23,0x35,0x44,0x4d,0x4d,0x43,0x34,0x2d,0x2f,0x35,0x40, 0x54,0x6a,0x82,0x9a,0xb1,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1d,0x05,0x00,0x00, 0x11,0x29,0x41,0x58,0x71,0x8b,0xa2,0xb0,0x99,0x81,0x68,0x51,0x39,0x22,0x39, 0x51,0x69,0x82,0x9a,0xb2,0xa0,0x89,0x6f,0x58,0x40,0x28,0x10,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37, 0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x47,0x49,0x4c,0x53,0x62, 0x76,0x8e,0xa4,0xaa,0x95,0x81,0x68,0x51,0x3a,0x22,0x0b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x23,0x39,0x50,0x66,0x7c,0x94,0xab,0x9e,0x88,0x6f, 0x5f,0x75,0x8e,0xa4,0xa8,0x92,0x79,0x64,0x4d,0x37,0x21,0x09,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x98,0xaf,0xa2,0x8b,0x6f,0x58, 0x40,0x28,0x1d,0x31,0x49,0x61,0x79,0x93,0xaa,0xa5,0x8e,0x74,0x5d,0x45,0x2d, 0x16,0x00,0x00,0x00,0x15,0x2d,0x45,0x5d,0x74,0x8b,0xa3,0xac,0x95,0x81,0x6d, 0x5d,0x51,0x46,0x5a,0x71,0x88,0xa0,0xa1,0x8a,0x72,0x5b,0x44,0x2d,0x14,0x00, 0x00,0x00,0x12,0x2a,0x42,0x5a,0x72,0x8a,0xa1,0xae,0x98,0x7c,0x67,0x50,0x55, 0x5a,0x5b,0x5b,0x59,0x54,0x4d,0x45,0x39,0x2c,0x1d,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x15,0x2d,0x44,0x5b,0x72,0x8b,0xa3,0xac,0x93,0x79,0x69,0x6e, 0x6f,0x6f,0x6d,0x6a,0x64,0x5b,0x51,0x45,0x36,0x26,0x16,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x13,0x22,0x2e,0x34,0x34,0x40,0x44,0x46,0x48,0x4d, 0x55,0x62,0x74,0x8a,0xa0,0xb4,0xa1,0x8b,0x74,0x5d,0x48,0x30,0x19,0x02,0x00, 0x00,0x15,0x2d,0x45,0x5d,0x74,0x8f,0xa6,0xac,0x95,0x7b,0x63,0x4b,0x33,0x1c, 0x34,0x4d,0x64,0x7c,0x95,0xad,0xa5,0x8e,0x74,0x5c,0x44,0x2c,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x60,0x60,0x62,0x65,0x6a, 0x75,0x86,0x99,0xab,0x9b,0x89,0x73,0x5f,0x48,0x32,0x1c,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x14,0x2a,0x41,0x57,0x6d,0x86,0x9b,0xae,0x98,0x81, 0x69,0x58,0x6e,0x87,0x9d,0xb0,0x99,0x84,0x6b,0x55,0x3e,0x28,0x11,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x4b,0x63,0x79,0x95,0xac,0xa5,0x8e,0x74, 0x5d,0x46,0x33,0x33,0x3e,0x4e,0x62,0x74,0x90,0xa7,0xaa,0x93,0x77,0x60,0x48, 0x30,0x18,0x00,0x00,0x00,0x10,0x27,0x3e,0x55,0x6b,0x81,0x96,0xa9,0xa3,0x90, 0x81,0x72,0x65,0x5b,0x67,0x7c,0x92,0xa8,0x95,0x81,0x69,0x53,0x3c,0x26,0x0e, 0x00,0x00,0x00,0x16,0x2e,0x46,0x5d,0x75,0x8f,0xa7,0xaa,0x93,0x79,0x62,0x62, 0x6b,0x72,0x74,0x74,0x72,0x6c,0x64,0x5a,0x4e,0x3f,0x2e,0x1d,0x0b,0x00,0x00, 0x00,0x00,0x00,0x00,0x16,0x2d,0x45,0x5d,0x74,0x8e,0xa5,0xaa,0x93,0x79,0x81, 0x88,0x8b,0x8a,0x89,0x84,0x79,0x71,0x65,0x58,0x49,0x38,0x26,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x1c,0x31,0x46,0x56,0x5d,0x5d,0x60, 0x64,0x6b,0x75,0x86,0x96,0xaa,0xa4,0x93,0x81,0x6a,0x55,0x40,0x2a,0x13,0x00, 0x00,0x00,0x18,0x30,0x49,0x60,0x77,0x93,0xaa,0xaa,0x93,0x77,0x60,0x48,0x2f, 0x18,0x30,0x49,0x60,0x79,0x93,0xaa,0xa9,0x91,0x77,0x60,0x47,0x2f,0x16,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x79,0x79,0x79,0x79,0x7c, 0x84,0x8b,0x98,0xa0,0x96,0x89,0x77,0x65,0x52,0x3d,0x28,0x12,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x32,0x48,0x5e,0x75,0x8d,0xa3,0xa8,0x91, 0x79,0x62,0x51,0x68,0x81,0x97,0xad,0xa0,0x8b,0x73,0x5c,0x45,0x2f,0x18,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x2f,0x48,0x60,0x77,0x90,0xa7,0xaa,0x93, 0x7c,0x67,0x54,0x4b,0x4b,0x53,0x60,0x71,0x84,0x98,0xac,0xac,0x95,0x79,0x63, 0x49,0x32,0x19,0x00,0x00,0x00,0x08,0x1f,0x35,0x4a,0x5f,0x72,0x88,0x98,0xa9, 0xa2,0x94,0x89,0x7c,0x72,0x75,0x8a,0x9e,0x9a,0x88,0x72,0x5d,0x48,0x32,0x1d, 0x06,0x00,0x00,0x00,0x19,0x30,0x49,0x60,0x79,0x93,0xaa,0xa7,0x8f,0x74,0x6b, 0x79,0x84,0x8b,0x90,0x8e,0x8b,0x86,0x7b,0x70,0x62,0x52,0x40,0x2d,0x1a,0x05, 0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x47,0x5d,0x74,0x90,0xa7,0xad,0x9a,0x90, 0x98,0x9f,0xa2,0xa2,0xa0,0x9a,0x92,0x88,0x79,0x6b,0x59,0x48,0x35,0x21,0x0d, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x22,0x39,0x50,0x68,0x74,0x76, 0x77,0x7c,0x84,0x8c,0x98,0xa8,0x9e,0x92,0x82,0x70,0x5d,0x4a,0x36,0x20,0x0b, 0x00,0x00,0x01,0x19,0x32,0x49,0x63,0x79,0x95,0xac,0xa7,0x90,0x74,0x5d,0x45, 0x2d,0x16,0x2d,0x47,0x5d,0x77,0x90,0xaa,0xac,0x93,0x79,0x60,0x49,0x30,0x19, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xb1,0x9b,0x93,0x93,0x93,0x93,0x95, 0x96,0x9b,0xa2,0x96,0x89,0x81,0x74,0x65,0x55,0x43,0x30,0x1f,0x0f,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x22,0x39,0x50,0x66,0x7c,0x94,0xab,0xa1, 0x8b,0x72,0x5c,0x4b,0x61,0x77,0x90,0xa6,0xa8,0x92,0x79,0x63,0x4d,0x37,0x20, 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2b,0x43,0x5a,0x71,0x89,0xa0,0xb3, 0x9e,0x89,0x77,0x6a,0x63,0x63,0x6a,0x75,0x84,0x96,0xa7,0xb6,0xad,0x95,0x79, 0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x14,0x29,0x3d,0x50,0x62,0x74,0x86, 0x95,0xa6,0xaa,0x9e,0x94,0x8b,0x88,0x9a,0x96,0x88,0x75,0x62,0x50,0x3c,0x27, 0x12,0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x63,0x7c,0x95,0xad,0xa5,0x8d,0x72, 0x81,0x8f,0x9b,0xa3,0xa7,0xa7,0xa3,0x9d,0x93,0x86,0x74,0x62,0x4f,0x3b,0x26, 0x10,0x00,0x00,0x00,0x00,0x02,0x19,0x31,0x49,0x60,0x77,0x90,0xa7,0xad,0xa4, 0x9c,0x98,0x98,0x98,0x9d,0xa5,0xb1,0xa9,0x9c,0x8d,0x7b,0x69,0x56,0x42,0x2d, 0x18,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x6a,0x84, 0x90,0x93,0x96,0x9b,0xa3,0xa3,0x93,0x89,0x7c,0x6e,0x5e,0x4e,0x3c,0x29,0x15, 0x00,0x00,0x00,0x02,0x1a,0x32,0x4c,0x63,0x7c,0x95,0xaf,0xa7,0x8e,0x74,0x5b, 0x44,0x2b,0x14,0x2c,0x44,0x5d,0x74,0x90,0xa7,0xad,0x95,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xbc,0xac,0xa7,0xa7,0xa7,0xa7, 0xa7,0xa7,0xaa,0xad,0x95,0x86,0x81,0x77,0x6d,0x62,0x53,0x43,0x31,0x1e,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2a,0x41,0x57,0x6d,0x86,0x9b,0xb1, 0x9a,0x84,0x6c,0x55,0x44,0x5a,0x72,0x89,0xa0,0xb0,0x99,0x84,0x6b,0x55,0x3e, 0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x24,0x3b,0x51,0x68,0x7c,0x94, 0xa7,0xac,0x9b,0x8c,0x84,0x7c,0x7c,0x82,0x8c,0x98,0x91,0x92,0xa8,0xaf,0x95, 0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x12,0x25,0x37,0x47,0x57,0x65, 0x72,0x86,0x9d,0xa5,0xa8,0xab,0xa2,0xa0,0xa0,0x89,0x73,0x65,0x58,0x48,0x37, 0x25,0x13,0x00,0x00,0x00,0x02,0x1b,0x33,0x4c,0x65,0x7c,0x98,0xaf,0xa2,0x8b, 0x82,0x94,0xa0,0x97,0x93,0x93,0x98,0xa1,0xac,0xa7,0x98,0x86,0x72,0x5c,0x47, 0x31,0x1b,0x05,0x00,0x00,0x00,0x02,0x19,0x32,0x49,0x60,0x77,0x8a,0x96,0x99, 0x8f,0x86,0x81,0x7c,0x81,0x87,0x91,0x9d,0xad,0xaf,0x9e,0x8b,0x76,0x62,0x4d, 0x38,0x21,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51,0x6a, 0x84,0x9a,0xac,0xae,0xb2,0xb4,0x9d,0x84,0x79,0x70,0x65,0x58,0x4a,0x3a,0x28, 0x16,0x04,0x00,0x00,0x02,0x1b,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xa7,0x8e,0x74, 0x5b,0x44,0x2b,0x14,0x2b,0x44,0x5b,0x74,0x90,0xa7,0xaf,0x95,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xaf,0x98,0x8e,0x8e,0x8e, 0x8e,0x8e,0x90,0x92,0x96,0x9d,0x9d,0x98,0x90,0x84,0x74,0x65,0x53,0x40,0x2c, 0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x31,0x49,0x5f,0x74,0x8d,0xa3, 0xaa,0x93,0x7c,0x65,0x4e,0x4e,0x53,0x6a,0x84,0x98,0xb0,0xa1,0x8b,0x72,0x5c, 0x46,0x2f,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x31,0x47,0x5c,0x71, 0x86,0x98,0xa5,0xae,0xa2,0x9a,0x95,0x95,0x99,0xa1,0x90,0x81,0x8b,0xa5,0xac, 0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x0d,0x21,0x35,0x47,0x59,0x69, 0x79,0x89,0x94,0x98,0x8b,0x92,0x9b,0xa4,0xaf,0xa7,0x96,0x89,0x79,0x6b,0x5b, 0x48,0x35,0x21,0x0c,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xa7, 0x94,0x94,0x95,0x89,0x81,0x79,0x79,0x81,0x8b,0x9a,0xac,0xa8,0x94,0x7c,0x68, 0x51,0x3b,0x23,0x0c,0x00,0x00,0x00,0x00,0x16,0x2e,0x43,0x58,0x67,0x74,0x82, 0x84,0x76,0x6d,0x67,0x65,0x67,0x6e,0x7b,0x8b,0x9d,0xb1,0xac,0x99,0x84,0x6c, 0x56,0x40,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x51, 0x6a,0x84,0x93,0x95,0x98,0x9b,0xa0,0xa6,0x99,0x91,0x88,0x79,0x6b,0x5b,0x4a, 0x38,0x25,0x11,0x00,0x00,0x02,0x1b,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xa7,0x8e, 0x74,0x5b,0x44,0x2b,0x14,0x2b,0x44,0x5b,0x74,0x90,0xa7,0xaf,0x95,0x79,0x63, 0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x74, 0x74,0x74,0x74,0x74,0x77,0x7c,0x87,0x92,0xa1,0xa5,0x98,0x89,0x75,0x62,0x4c, 0x37,0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x39,0x50,0x66,0x7c,0x94, 0xab,0xa3,0x8c,0x74,0x68,0x68,0x68,0x68,0x68,0x79,0x92,0xa9,0xa8,0x92,0x79, 0x64,0x4d,0x36,0x20,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x26,0x3b,0x4f, 0x62,0x74,0x84,0x91,0x9a,0xa0,0xa3,0xa5,0xa0,0x98,0x8c,0x7c,0x74,0x8e,0xa5, 0xab,0x93,0x79,0x61,0x49,0x31,0x19,0x00,0x00,0x03,0x18,0x2f,0x43,0x57,0x69, 0x7b,0x8f,0x9c,0x96,0x86,0x74,0x79,0x84,0x8f,0x99,0xa5,0xab,0x9d,0x8f,0x7c, 0x6b,0x57,0x43,0x2e,0x18,0x02,0x00,0x04,0x1b,0x35,0x4c,0x65,0x7c,0x98,0xaf, 0xb6,0xa4,0x92,0x82,0x72,0x67,0x60,0x61,0x69,0x75,0x89,0x9e,0xb4,0x9f,0x89, 0x70,0x5a,0x42,0x2a,0x13,0x00,0x00,0x00,0x00,0x0e,0x24,0x37,0x46,0x53,0x60, 0x6c,0x6d,0x62,0x57,0x50,0x4e,0x51,0x59,0x68,0x79,0x91,0xa5,0xb8,0xa2,0x8b, 0x74,0x5d,0x46,0x2f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x39, 0x50,0x69,0x77,0x79,0x79,0x7c,0x84,0x89,0x92,0x9e,0xa7,0x9c,0x8f,0x7c,0x6d, 0x5a,0x47,0x31,0x1c,0x07,0x00,0x02,0x19,0x32,0x4c,0x63,0x7c,0x95,0xae,0xa7, 0x90,0x74,0x5b,0x44,0x2b,0x14,0x2d,0x44,0x5d,0x74,0x90,0xa7,0xac,0x95,0x79, 0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93,0x79, 0x60,0x5b,0x5b,0x5b,0x5c,0x60,0x65,0x6e,0x7c,0x90,0xa3,0xab,0x98,0x84,0x6d, 0x57,0x40,0x29,0x11,0x00,0x00,0x00,0x00,0x00,0x14,0x2a,0x41,0x58,0x6d,0x86, 0x9c,0xb2,0xa0,0x89,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x8f,0xa7,0xb0,0x9a, 0x84,0x6b,0x55,0x3e,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x19,0x2d, 0x3f,0x50,0x60,0x6d,0x79,0x82,0x89,0x8b,0x8b,0x89,0x81,0x75,0x69,0x76,0x90, 0xa7,0xa8,0x90,0x77,0x5f,0x47,0x2f,0x16,0x00,0x00,0x0d,0x24,0x39,0x4f,0x65, 0x79,0x8d,0xa1,0x9b,0x88,0x73,0x62,0x62,0x6c,0x76,0x84,0x90,0xa0,0xb1,0xa1, 0x8f,0x79,0x64,0x4e,0x38,0x22,0x0c,0x00,0x02,0x1b,0x32,0x4c,0x64,0x7c,0x95, 0xae,0xab,0x96,0x82,0x6e,0x5e,0x51,0x48,0x49,0x53,0x67,0x7c,0x94,0xab,0xa7, 0x90,0x77,0x5f,0x47,0x2f,0x18,0x00,0x00,0x00,0x00,0x02,0x15,0x24,0x32,0x3e, 0x4b,0x56,0x57,0x4c,0x41,0x38,0x35,0x39,0x47,0x5a,0x6f,0x87,0x9d,0xb4,0xa8, 0x91,0x79,0x62,0x4b,0x33,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0f,0x1d, 0x32,0x46,0x58,0x5d,0x60,0x61,0x65,0x6a,0x70,0x7b,0x8a,0x9b,0xae,0xa1,0x8f, 0x7b,0x67,0x52,0x3c,0x26,0x10,0x00,0x00,0x19,0x30,0x49,0x61,0x79,0x93,0xac, 0xa7,0x90,0x77,0x5d,0x46,0x2d,0x16,0x2e,0x47,0x5d,0x77,0x90,0xaa,0xab,0x93, 0x79,0x60,0x49,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac,0x93, 0x79,0x60,0x49,0x42,0x44,0x44,0x48,0x4f,0x5b,0x6d,0x84,0x9a,0xb0,0xa4,0x8e, 0x74,0x5d,0x46,0x2f,0x17,0x00,0x00,0x00,0x00,0x04,0x1c,0x31,0x48,0x5f,0x75, 0x8d,0xa3,0xba,0xaa,0x9c,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9e,0xb0,0xb8, 0xa1,0x8a,0x73,0x5d,0x45,0x2f,0x19,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0a, 0x1d,0x2e,0x3e,0x4c,0x58,0x62,0x69,0x6e,0x6f,0x72,0x6e,0x68,0x5f,0x63,0x79, 0x93,0xac,0xa4,0x8d,0x73,0x5b,0x44,0x2c,0x14,0x00,0x00,0x14,0x2c,0x43,0x5a, 0x70,0x87,0x9b,0xa5,0x90,0x77,0x63,0x51,0x4c,0x56,0x60,0x6d,0x7c,0x8f,0xa1, 0xb0,0x9b,0x86,0x6e,0x58,0x41,0x29,0x12,0x00,0x01,0x19,0x32,0x49,0x62,0x79, 0x93,0xac,0xa7,0x8e,0x74,0x5f,0x4c,0x3c,0x30,0x31,0x46,0x5d,0x74,0x8f,0xa6, 0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2a, 0x2f,0x37,0x3e,0x3f,0x38,0x2c,0x21,0x1d,0x25,0x3b,0x52,0x69,0x84,0x9a,0xb1, 0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x00,0x0d,0x1c,0x27, 0x2a,0x2c,0x36,0x42,0x47,0x47,0x49,0x4c,0x51,0x5a,0x67,0x77,0x8d,0xa3,0xb1, 0x9d,0x88,0x71,0x5b,0x43,0x2d,0x16,0x00,0x00,0x16,0x2f,0x47,0x60,0x77,0x90, 0xa9,0xaa,0x93,0x79,0x60,0x49,0x30,0x19,0x31,0x49,0x61,0x79,0x93,0xab,0xa7, 0x90,0x77,0x5d,0x47,0x2e,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1,0xac, 0x93,0x79,0x60,0x49,0x30,0x2b,0x2c,0x30,0x39,0x4d,0x63,0x79,0x95,0xac,0xab, 0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x0c,0x23,0x39,0x50,0x66, 0x7c,0x94,0xab,0xb2,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xac, 0xb6,0xa8,0x92,0x79,0x64,0x4d,0x37,0x21,0x09,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x1c,0x2a,0x37,0x42,0x4b,0x51,0x56,0x58,0x58,0x56,0x51,0x52,0x6a, 0x81,0x99,0xb0,0x9f,0x88,0x6f,0x57,0x40,0x28,0x10,0x00,0x01,0x1a,0x31,0x49, 0x61,0x77,0x91,0xa7,0x9f,0x89,0x6e,0x58,0x42,0x36,0x40,0x4c,0x5a,0x6b,0x81, 0x95,0xac,0xa6,0x8f,0x76,0x5e,0x47,0x2f,0x18,0x00,0x00,0x17,0x2f,0x47,0x5e, 0x77,0x90,0xa7,0xaa,0x92,0x77,0x60,0x49,0x31,0x1a,0x2b,0x42,0x5b,0x72,0x8e, 0xa5,0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x0e,0x20,0x31, 0x3f,0x46,0x45,0x3b,0x2d,0x21,0x17,0x0b,0x0a,0x21,0x39,0x50,0x68,0x81,0x98, 0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x00,0x0b,0x1d,0x2e, 0x3d,0x44,0x43,0x3a,0x2c,0x2d,0x2f,0x31,0x34,0x3a,0x45,0x58,0x6d,0x86,0x9d, 0xb4,0xa5,0x8f,0x77,0x60,0x49,0x32,0x1a,0x00,0x00,0x14,0x2c,0x44,0x5c,0x74, 0x8e,0xa5,0xad,0x95,0x7c,0x65,0x4d,0x35,0x1e,0x35,0x4e,0x65,0x7c,0x96,0xaf, 0xa4,0x8c,0x73,0x5b,0x44,0x2b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb1, 0xac,0x93,0x79,0x60,0x49,0x30,0x19,0x18,0x1d,0x32,0x49,0x62,0x79,0x93,0xac, 0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x14,0x2a,0x41,0x57, 0x6e,0x86,0x9b,0xb3,0xa0,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, 0x94,0xa6,0xb0,0x99,0x84,0x6b,0x55,0x3e,0x28,0x11,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x12,0x25,0x35,0x42,0x47,0x43,0x39,0x3d,0x3f,0x3f,0x3e,0x45,0x5a, 0x71,0x89,0xa0,0xaf,0x98,0x81,0x69,0x51,0x3a,0x22,0x0b,0x00,0x04,0x1c,0x34, 0x4c,0x65,0x7c,0x97,0xaf,0x9d,0x84,0x6a,0x53,0x3a,0x23,0x2a,0x37,0x49,0x5e, 0x74,0x8f,0xa7,0xac,0x94,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x13,0x2a,0x43, 0x5a,0x72,0x8b,0xa2,0xad,0x96,0x7c,0x66,0x4e,0x38,0x21,0x2b,0x42,0x5b,0x72, 0x8e,0xa5,0xae,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x08,0x1b,0x2f, 0x42,0x53,0x5f,0x5c,0x4e,0x3f,0x32,0x25,0x1e,0x1e,0x28,0x3d,0x53,0x6a,0x84, 0x9a,0xb1,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1b,0x00,0x00,0x00,0x07,0x19,0x2d, 0x3f,0x52,0x5d,0x5b,0x4e,0x3e,0x30,0x23,0x1b,0x1c,0x24,0x3b,0x52,0x6a,0x84, 0x9a,0xb1,0xaa,0x93,0x79,0x63,0x4b,0x32,0x1b,0x00,0x00,0x10,0x28,0x40,0x58, 0x6f,0x89,0xa0,0xb2,0x9a,0x84,0x6a,0x52,0x3a,0x24,0x3b,0x53,0x6a,0x84,0x9b, 0xb2,0x9f,0x89,0x6f,0x56,0x3f,0x27,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81,0x9a, 0xb1,0xac,0x93,0x79,0x60,0x49,0x30,0x2d,0x30,0x35,0x3e,0x50,0x66,0x7c,0x96, 0xad,0xac,0x93,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x04,0x1b,0x32,0x49, 0x5e,0x75,0x8d,0xa3,0xae,0x98,0x81,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74, 0x74,0x88,0x9e,0xb4,0xa0,0x8b,0x73,0x5c,0x45,0x30,0x18,0x02,0x00,0x00,0x00, 0x00,0x00,0x11,0x23,0x35,0x47,0x58,0x60,0x58,0x49,0x3a,0x33,0x35,0x40,0x52, 0x65,0x7b,0x92,0xa8,0xa6,0x90,0x77,0x62,0x4a,0x33,0x1c,0x04,0x00,0x05,0x1e, 0x35,0x4e,0x65,0x81,0x98,0xaf,0x9d,0x86,0x6b,0x55,0x3e,0x2c,0x26,0x2d,0x44, 0x5c,0x74,0x8e,0xa5,0xae,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x0e,0x25, 0x3d,0x55,0x6c,0x84,0x9b,0xb2,0x9c,0x86,0x6e,0x58,0x43,0x30,0x33,0x48,0x5f, 0x76,0x90,0xa7,0xaa,0x93,0x79,0x61,0x49,0x31,0x19,0x00,0x00,0x03,0x16,0x2a, 0x3d,0x50,0x63,0x75,0x70,0x60,0x53,0x46,0x3b,0x36,0x35,0x3b,0x49,0x5c,0x71, 0x89,0x9f,0xb5,0xa5,0x8f,0x77,0x60,0x49,0x32,0x1b,0x00,0x00,0x02,0x15,0x28, 0x3b,0x4e,0x61,0x74,0x70,0x60,0x52,0x45,0x39,0x34,0x32,0x36,0x41,0x55,0x6c, 0x84,0x9b,0xb2,0xaa,0x93,0x79,0x63,0x4b,0x32,0x1b,0x00,0x00,0x0b,0x23,0x3b, 0x51,0x6a,0x82,0x99,0xb1,0xa0,0x89,0x71,0x5a,0x43,0x2f,0x44,0x5b,0x72,0x8a, 0xa1,0xb0,0x98,0x81,0x69,0x51,0x3a,0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68,0x81, 0x9a,0xb1,0xac,0x93,0x79,0x60,0x49,0x47,0x47,0x48,0x4c,0x53,0x60,0x72,0x88, 0x9d,0xb4,0xa7,0x90,0x77,0x60,0x48,0x30,0x18,0x00,0x00,0x00,0x0c,0x23,0x39, 0x50,0x66,0x7c,0x94,0xab,0xa7,0x90,0x79,0x62,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, 0x5d,0x68,0x81,0x97,0xad,0xa8,0x92,0x79,0x64,0x4d,0x37,0x20,0x0a,0x00,0x00, 0x00,0x00,0x0f,0x21,0x33,0x45,0x57,0x69,0x79,0x6b,0x5c,0x51,0x4c,0x4d,0x54, 0x62,0x74,0x89,0x9c,0xb2,0x9c,0x87,0x6f,0x59,0x42,0x2c,0x14,0x00,0x00,0x04, 0x1b,0x34,0x4c,0x63,0x7c,0x95,0xac,0xa2,0x8b,0x73,0x5f,0x4e,0x43,0x3f,0x42, 0x4e,0x63,0x79,0x91,0xa8,0xaa,0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x08, 0x1f,0x36,0x4d,0x64,0x79,0x92,0xa8,0xa5,0x8f,0x79,0x64,0x52,0x47,0x47,0x55, 0x69,0x81,0x96,0xac,0xa3,0x8d,0x74,0x5d,0x46,0x2e,0x16,0x00,0x00,0x10,0x24, 0x38,0x4b,0x5e,0x71,0x86,0x84,0x74,0x67,0x5b,0x53,0x4e,0x4e,0x52,0x5c,0x6b, 0x7c,0x92,0xa7,0xb3,0x9e,0x88,0x71,0x5b,0x44,0x2d,0x16,0x00,0x00,0x10,0x24, 0x37,0x4a,0x5c,0x70,0x84,0x84,0x73,0x67,0x5a,0x51,0x4c,0x4b,0x4e,0x56,0x63, 0x75,0x8c,0xa1,0xb8,0xa5,0x8f,0x77,0x60,0x49,0x31,0x1a,0x00,0x00,0x05,0x1c, 0x34,0x4b,0x62,0x79,0x91,0xa8,0xa8,0x92,0x79,0x64,0x50,0x47,0x52,0x65,0x7b, 0x92,0xa9,0xa7,0x90,0x79,0x62,0x4a,0x33,0x1b,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e,0x68, 0x81,0x9a,0xb1,0xac,0x93,0x79,0x60,0x60,0x60,0x60,0x60,0x65,0x6b,0x74,0x84, 0x94,0xa9,0xb2,0x9d,0x88,0x70,0x5a,0x42,0x2b,0x13,0x00,0x00,0x00,0x14,0x2a, 0x41,0x57,0x6d,0x86,0x9c,0xb2,0xa0,0x8a,0x72,0x5b,0x45,0x44,0x44,0x44,0x44, 0x44,0x4b,0x62,0x79,0x90,0xa7,0xb0,0x99,0x84,0x6b,0x55,0x3e,0x28,0x11,0x00, 0x00,0x00,0x07,0x1c,0x31,0x43,0x55,0x67,0x79,0x8d,0x7c,0x71,0x68,0x63,0x65, 0x6b,0x75,0x86,0x98,0xaa,0xa5,0x91,0x79,0x65,0x4f,0x39,0x22,0x0c,0x00,0x00, 0x00,0x18,0x30,0x48,0x5e,0x75,0x8d,0xa3,0xab,0x96,0x82,0x70,0x62,0x5a,0x56, 0x5a,0x62,0x71,0x86,0x9a,0xb0,0xa2,0x8b,0x73,0x5c,0x45,0x2d,0x16,0x00,0x00, 0x00,0x17,0x2e,0x44,0x5a,0x71,0x88,0x9c,0xb0,0x9b,0x88,0x74,0x67,0x5d,0x5d, 0x68,0x77,0x8b,0xa0,0xaf,0x9a,0x84,0x6d,0x56,0x3f,0x28,0x11,0x00,0x03,0x1a, 0x30,0x45,0x59,0x6c,0x81,0x93,0x96,0x89,0x7b,0x71,0x6a,0x65,0x65,0x6a,0x71, 0x7c,0x8f,0xa0,0xb2,0xa7,0x93,0x7c,0x68,0x52,0x3c,0x26,0x10,0x00,0x03,0x19, 0x30,0x45,0x59,0x6b,0x81,0x92,0x96,0x89,0x7b,0x70,0x68,0x64,0x63,0x65,0x6c, 0x76,0x88,0x98,0xac,0xb1,0x9c,0x87,0x70,0x5a,0x43,0x2d,0x16,0x00,0x00,0x00, 0x15,0x2c,0x43,0x5a,0x70,0x88,0x9d,0xb2,0x9c,0x88,0x74,0x65,0x60,0x65,0x74, 0x88,0x9d,0xb1,0x9c,0x87,0x70,0x59,0x42,0x2c,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37,0x4e, 0x68,0x81,0x9a,0xb1,0xac,0x93,0x79,0x77,0x77,0x77,0x77,0x79,0x7c,0x84,0x8b, 0x96,0xa6,0xb3,0xa2,0x90,0x7b,0x65,0x50,0x3a,0x24,0x0d,0x00,0x00,0x05,0x1b, 0x31,0x49,0x5f,0x74,0x8d,0xa3,0xb0,0x9a,0x84,0x6b,0x55,0x3e,0x2b,0x2b,0x2b, 0x2b,0x2e,0x44,0x5b,0x72,0x89,0xa0,0xb7,0xa1,0x8b,0x72,0x5d,0x46,0x2f,0x18, 0x02,0x00,0x00,0x0f,0x25,0x3d,0x52,0x65,0x77,0x8b,0x9d,0x94,0x89,0x81,0x7c, 0x7c,0x84,0x8c,0x99,0xa8,0xa8,0x96,0x84,0x6d,0x59,0x44,0x2e,0x18,0x02,0x00, 0x00,0x00,0x12,0x29,0x40,0x56,0x6c,0x82,0x96,0xaa,0xa5,0x94,0x86,0x79,0x72, 0x6f,0x72,0x79,0x86,0x96,0xa7,0xa9,0x95,0x81,0x6a,0x54,0x3e,0x27,0x10,0x00, 0x00,0x00,0x0e,0x24,0x3a,0x50,0x65,0x79,0x8f,0xa2,0xaa,0x9a,0x8a,0x7c,0x77, 0x77,0x7c,0x8b,0x9b,0xae,0xa2,0x8f,0x79,0x63,0x4c,0x37,0x20,0x09,0x00,0x07, 0x1e,0x35,0x4c,0x65,0x79,0x8f,0xa1,0xaa,0x9e,0x92,0x89,0x84,0x81,0x81,0x84, 0x89,0x93,0xa1,0xb1,0xab,0x9a,0x87,0x72,0x5d,0x48,0x33,0x1d,0x08,0x00,0x07, 0x1e,0x35,0x4e,0x65,0x79,0x8f,0xa1,0xaa,0x9e,0x92,0x89,0x81,0x7c,0x7c,0x7c, 0x84,0x8d,0x9a,0xaa,0xb3,0xa2,0x90,0x7b,0x65,0x51,0x3b,0x25,0x0f,0x00,0x00, 0x00,0x0c,0x23,0x39,0x50,0x65,0x79,0x90,0xa4,0xaa,0x98,0x88,0x7b,0x77,0x7c, 0x88,0x98,0xaa,0xa3,0x90,0x79,0x64,0x4f,0x38,0x22,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x37, 0x4e,0x68,0x81,0x9a,0xb1,0xb1,0x9b,0x93,0x93,0x93,0x93,0x93,0x93,0x96,0x9a, 0xa2,0xac,0xac,0xa0,0x91,0x81,0x6d,0x5a,0x45,0x30,0x1a,0x04,0x00,0x00,0x0c, 0x23,0x39,0x50,0x66,0x7c,0x94,0xab,0xaa,0x93,0x7b,0x65,0x4d,0x37,0x21,0x14, 0x14,0x14,0x27,0x3d,0x54,0x6b,0x84,0x99,0xb0,0xa8,0x92,0x79,0x64,0x4d,0x36, 0x21,0x0a,0x00,0x00,0x11,0x28,0x42,0x58,0x72,0x89,0x98,0xa6,0xa9,0xa0,0x99, 0x98,0x98,0x9b,0xa3,0xae,0xa5,0x96,0x86,0x72,0x5f,0x4c,0x38,0x22,0x0e,0x00, 0x00,0x00,0x00,0x09,0x20,0x36,0x4b,0x5f,0x73,0x88,0x98,0xa6,0xa7,0x9b,0x91, 0x8b,0x8b,0x8b,0x91,0x9b,0xa8,0xa6,0x98,0x86,0x72,0x5e,0x49,0x33,0x1e,0x08, 0x00,0x00,0x00,0x04,0x19,0x2f,0x43,0x58,0x6b,0x81,0x92,0xa1,0xac,0x9e,0x96, 0x90,0x90,0x96,0xa0,0xad,0xa2,0x92,0x81,0x6b,0x57,0x42,0x2d,0x16,0x00,0x00, 0x06,0x1c,0x33,0x49,0x5f,0x70,0x82,0x90,0x9d,0xa9,0xa7,0xa0,0x9a,0x98,0x98, 0x9a,0xa0,0xa9,0xb3,0xa7,0x99,0x89,0x76,0x63,0x51,0x3d,0x28,0x13,0x00,0x00, 0x06,0x1c,0x33,0x49,0x5f,0x70,0x82,0x91,0x9e,0xab,0xa8,0xa0,0x9a,0x98,0x96, 0x98,0x9c,0xa4,0xae,0xad,0xa1,0x92,0x81,0x6d,0x5a,0x46,0x31,0x1c,0x06,0x00, 0x00,0x00,0x03,0x19,0x2f,0x44,0x59,0x6d,0x82,0x94,0xa5,0xaa,0x9d,0x95,0x93, 0x96,0x9e,0xaa,0xa4,0x94,0x81,0x6d,0x58,0x43,0x2e,0x18,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xaf,0xaf,0xaf,0xac,0xac,0xac,0xac,0xac,0xac,0xac, 0xaa,0xa5,0xa0,0x96,0x8b,0x7c,0x6d,0x5c,0x4a,0x38,0x24,0x0f,0x00,0x00,0x00, 0x14,0x2a,0x41,0x58,0x6d,0x86,0x9c,0xaf,0xa3,0x8c,0x74,0x5d,0x47,0x30,0x19, 0x03,0x00,0x09,0x20,0x36,0x4d,0x65,0x79,0x93,0xaa,0xaf,0x9a,0x84,0x6b,0x55, 0x3e,0x28,0x11,0x00,0x00,0x0e,0x25,0x3c,0x52,0x63,0x74,0x84,0x92,0x9d,0xa6, 0xac,0xaf,0xaf,0xab,0xa5,0x9c,0x91,0x84,0x72,0x62,0x50,0x3d,0x2a,0x16,0x01, 0x00,0x00,0x00,0x00,0x00,0x15,0x2a,0x3e,0x51,0x63,0x74,0x84,0x92,0x9c,0xa4, 0xa9,0xa5,0xa2,0xa5,0xa8,0xa4,0x9c,0x92,0x84,0x74,0x62,0x50,0x3c,0x28,0x13, 0x00,0x00,0x00,0x00,0x00,0x0d,0x22,0x36,0x4a,0x5c,0x6d,0x7c,0x8d,0x9a,0xa3, 0xaa,0xaa,0xaa,0xab,0xa4,0x9b,0x8f,0x81,0x6e,0x5c,0x49,0x35,0x21,0x0b,0x00, 0x00,0x00,0x16,0x2a,0x3e,0x4e,0x5e,0x6d,0x7b,0x89,0x94,0x9d,0xa4,0xa9,0xac, 0xad,0xad,0xaa,0xa4,0x9c,0x92,0x86,0x75,0x65,0x55,0x43,0x30,0x1c,0x08,0x00, 0x00,0x00,0x15,0x2a,0x3d,0x4e,0x5e,0x6e,0x7b,0x8a,0x95,0x9e,0xa5,0xaa,0xad, 0xaf,0xad,0xac,0xa7,0xa0,0x98,0x8c,0x7c,0x6e,0x5c,0x4c,0x39,0x25,0x10,0x00, 0x00,0x00,0x00,0x00,0x0e,0x22,0x37,0x4b,0x5e,0x70,0x82,0x92,0x9e,0xa7,0xad, 0xac,0xad,0xa7,0x9e,0x91,0x82,0x70,0x5e,0x4a,0x37,0x21,0x0d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x1e,0x37,0x4e,0x68,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x92,0x8e,0x89,0x81,0x74,0x69,0x5b,0x4a,0x3a,0x28,0x16,0x02,0x00,0x00, 0x03,0x1a,0x32,0x48,0x5f,0x75,0x8d,0x95,0x95,0x95,0x86,0x6d,0x57,0x40,0x29, 0x13,0x00,0x00,0x02,0x19,0x30,0x46,0x5d,0x74,0x8b,0x95,0x95,0x95,0x8a,0x73, 0x5d,0x45,0x2f,0x18,0x00,0x00,0x06,0x1c,0x31,0x41,0x52,0x62,0x6e,0x7b,0x87, 0x8e,0x93,0x95,0x95,0x93,0x8e,0x86,0x79,0x6e,0x60,0x50,0x40,0x2e,0x1b,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1c,0x2f,0x40,0x52,0x62,0x6e,0x79,0x86, 0x8d,0x93,0x95,0x95,0x95,0x93,0x8d,0x86,0x7b,0x6e,0x61,0x52,0x40,0x2d,0x1a, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x28,0x39,0x4a,0x5b,0x6b,0x77,0x84, 0x8d,0x93,0x95,0x95,0x93,0x8d,0x84,0x77,0x6b,0x5c,0x4a,0x3a,0x27,0x13,0x00, 0x00,0x00,0x00,0x0a,0x1c,0x2d,0x3d,0x4c,0x5a,0x67,0x72,0x7c,0x87,0x8d,0x91, 0x95,0x95,0x95,0x93,0x8d,0x87,0x7b,0x70,0x63,0x54,0x43,0x33,0x21,0x0f,0x00, 0x00,0x00,0x00,0x0a,0x1c,0x2c,0x3d,0x4c,0x5a,0x68,0x73,0x7c,0x88,0x8e,0x93, 0x95,0x95,0x95,0x93,0x8f,0x89,0x81,0x75,0x69,0x5c,0x4c,0x3c,0x2a,0x17,0x04, 0x00,0x00,0x00,0x00,0x00,0x01,0x15,0x29,0x3c,0x4e,0x5e,0x6e,0x7b,0x88,0x90, 0x95,0x95,0x95,0x90,0x88,0x7b,0x6d,0x5e,0x4c,0x3b,0x28,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x1e,0x37,0x4e,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x77,0x74,0x6f,0x68,0x5f,0x53,0x47,0x38,0x28,0x18,0x06,0x00,0x00, 0x00,0x04,0x1b,0x32,0x4b,0x62,0x77,0x79,0x79,0x79,0x79,0x79,0x67,0x50,0x39, 0x23,0x0c,0x00,0x00,0x00,0x13,0x29,0x40,0x57,0x6c,0x79,0x79,0x79,0x79,0x79, 0x75,0x60,0x49,0x30,0x19,0x00,0x00,0x00,0x0d,0x1f,0x2f,0x3f,0x4c,0x59,0x64, 0x6e,0x74,0x79,0x79,0x79,0x79,0x74,0x6d,0x64,0x59,0x4c,0x3e,0x2e,0x1c,0x0b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e,0x2f,0x3f,0x4d,0x59,0x64, 0x6d,0x74,0x77,0x79,0x79,0x79,0x77,0x74,0x6d,0x64,0x59,0x4d,0x3f,0x2e,0x1e, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x28,0x38,0x48,0x56,0x62, 0x6c,0x73,0x79,0x79,0x79,0x79,0x74,0x6c,0x62,0x57,0x48,0x39,0x28,0x16,0x05, 0x00,0x00,0x00,0x00,0x00,0x0c,0x1c,0x2a,0x38,0x45,0x51,0x5c,0x66,0x6e,0x74, 0x77,0x79,0x79,0x79,0x79,0x74,0x6e,0x65,0x5b,0x4f,0x41,0x33,0x23,0x11,0x00, 0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x2a,0x39,0x46,0x52,0x5d,0x67,0x6f,0x74, 0x77,0x79,0x79,0x79,0x79,0x74,0x70,0x69,0x5f,0x54,0x48,0x39,0x2a,0x1a,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x18,0x2a,0x3c,0x4c,0x5a,0x65,0x70, 0x77,0x79,0x79,0x79,0x76,0x6f,0x65,0x59,0x4b,0x3a,0x2a,0x18,0x06,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x1a,0x32,0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x62,0x60,0x5c,0x58,0x51,0x48,0x3e,0x32,0x25,0x16,0x06,0x00,0x00, 0x00,0x00,0x01,0x18,0x30,0x45,0x57,0x62,0x63,0x63,0x63,0x63,0x63,0x59,0x47, 0x32,0x1c,0x05,0x00,0x00,0x00,0x0c,0x22,0x38,0x4d,0x5d,0x63,0x63,0x63,0x63, 0x63,0x62,0x55,0x42,0x2d,0x15,0x00,0x00,0x00,0x00,0x0d,0x1c,0x2b,0x38,0x43, 0x4e,0x57,0x5d,0x60,0x63,0x63,0x60,0x5d,0x55,0x4d,0x42,0x37,0x2a,0x1b,0x0b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1c,0x2b,0x38,0x43, 0x4d,0x55,0x5b,0x60,0x63,0x63,0x63,0x60,0x5b,0x55,0x4d,0x43,0x38,0x2b,0x1c, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x26,0x34,0x40, 0x4b,0x55,0x5b,0x60,0x63,0x63,0x60,0x5c,0x55,0x4c,0x41,0x34,0x26,0x16,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x17,0x24,0x31,0x3d,0x47,0x50,0x57, 0x5d,0x60,0x63,0x63,0x63,0x60,0x5d,0x57,0x4f,0x46,0x3a,0x2d,0x20,0x11,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x17,0x24,0x31,0x3d,0x47,0x50,0x56, 0x5d,0x60,0x62,0x63,0x63,0x60,0x5d,0x58,0x51,0x49,0x3f,0x33,0x26,0x17,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1a,0x29,0x38,0x45,0x4f, 0x58,0x5d,0x62,0x63,0x62,0x5d,0x58,0x4f,0x44,0x37,0x28,0x18,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x10,0x26,0x37,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x44,0x40,0x39,0x31,0x28,0x1d,0x11,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x0e,0x24,0x35,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x43, 0x37,0x26,0x11,0x00,0x00,0x00,0x00,0x03,0x17,0x2a,0x3b,0x46,0x49,0x49,0x49, 0x49,0x49,0x49,0x41,0x33,0x1f,0x0c,0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x22, 0x2e,0x38,0x3f,0x45,0x49,0x49,0x49,0x49,0x45,0x3e,0x36,0x2d,0x21,0x15,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x22, 0x2d,0x36,0x3e,0x44,0x47,0x49,0x49,0x49,0x47,0x44,0x3e,0x36,0x2d,0x22,0x16, 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x12,0x1f, 0x2a,0x35,0x3d,0x44,0x48,0x49,0x49,0x49,0x45,0x3e,0x36,0x2c,0x20,0x13,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x10,0x1c,0x27,0x31,0x39, 0x40,0x45,0x49,0x49,0x49,0x49,0x49,0x46,0x40,0x39,0x30,0x25,0x1a,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x1c,0x27,0x30,0x39, 0x3f,0x44,0x47,0x49,0x49,0x49,0x48,0x45,0x40,0x3a,0x32,0x28,0x1e,0x11,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x15,0x23,0x2f, 0x39,0x41,0x46,0x49,0x49,0x49,0x46,0x41,0x39,0x2e,0x22,0x15,0x06,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x14,0x22,0x2d,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x2c,0x28,0x22,0x1b,0x11,0x07,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x21,0x2b,0x30,0x30,0x30,0x30,0x30,0x30, 0x2d,0x22,0x14,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x26,0x2e,0x30,0x30, 0x30,0x30,0x30,0x2f,0x2a,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x0d,0x18,0x21,0x28,0x2d,0x30,0x30,0x30,0x30,0x2c,0x27,0x20,0x17,0x0c,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x0d,0x17,0x1f,0x26,0x2b,0x2f,0x30,0x30,0x30,0x2f,0x2b,0x26,0x1f,0x17,0x0d, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0a,0x15,0x1e,0x26,0x2c,0x30,0x30,0x30,0x30,0x2c,0x27,0x1f,0x15,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x11,0x1a, 0x22,0x28,0x2d,0x30,0x32,0x32,0x32,0x31,0x2d,0x28,0x21,0x19,0x0f,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x10,0x19, 0x21,0x27,0x2c,0x2f,0x30,0x30,0x30,0x30,0x2d,0x28,0x23,0x1b,0x13,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e, 0x18,0x22,0x29,0x2e,0x30,0x30,0x30,0x2e,0x29,0x21,0x18,0x0e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0e,0x16,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x13,0x0f,0x0a,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x15,0x19,0x19,0x19,0x19,0x19, 0x19,0x16,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x17,0x19, 0x19,0x19,0x19,0x19,0x19,0x14,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x10,0x14,0x16,0x19,0x19,0x16,0x13,0x0e,0x08,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08,0x0e,0x13,0x16,0x19,0x19,0x19,0x16,0x13,0x0e,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x0e,0x13,0x16,0x19,0x19,0x17,0x14,0x0e,0x08,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x0b,0x11,0x15,0x18,0x19,0x19,0x19,0x19,0x16,0x11,0x0b,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x09,0x0f,0x13,0x16,0x18,0x19,0x19,0x16,0x14,0x10,0x0b,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x0a,0x11,0x15,0x18,0x19,0x18,0x15,0x11,0x0a,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05, 0x05,0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x05,0x04,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x10, 0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x0f,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x11,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x10,0x04,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b, 0x16,0x1c,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x18,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0b,0x11,0x16,0x18, 0x1b,0x1a,0x17,0x14,0x0e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x18,0x1d,0x1e, 0x1e,0x1e,0x1e,0x1d,0x17,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x17,0x19,0x19,0x19,0x18,0x12, 0x08,0x12,0x18,0x19,0x19,0x19,0x17,0x11,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x14,0x19,0x1b,0x1d,0x1e,0x1b, 0x19,0x14,0x0e,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x11,0x17,0x1b,0x1d,0x1e,0x1c,0x1a,0x16, 0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x05,0x0d,0x14,0x18,0x1b,0x1b,0x1a, 0x16,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x18, 0x26,0x2f,0x32,0x32,0x32,0x32,0x32,0x2e,0x23,0x15,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x16,0x25,0x31,0x35,0x35,0x35,0x35,0x35,0x35,0x35, 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x24,0x15, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b, 0x1d,0x2a,0x33,0x35,0x35,0x35,0x35,0x35,0x35,0x34,0x2d,0x1f,0x0f,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x10,0x1b,0x23,0x2a,0x2e, 0x31,0x34,0x33,0x30,0x2d,0x27,0x20,0x16,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x0f,0x18,0x22,0x2d,0x34, 0x35,0x35,0x35,0x35,0x33,0x2c,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1a,0x28,0x30,0x32,0x32,0x32,0x31, 0x29,0x1d,0x29,0x31,0x32,0x32,0x32,0x30,0x28,0x1a,0x09,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x1b,0x24,0x2b,0x30,0x33,0x35,0x35, 0x34,0x31,0x2c,0x25,0x1c,0x11,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x16,0x20,0x28,0x2e,0x32,0x35,0x35,0x35,0x32, 0x2d,0x26,0x1e,0x15,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x10,0x1d,0x25,0x28,0x28,0x28,0x28,0x28,0x24,0x1c,0x23,0x2b,0x31,0x32,0x32, 0x32,0x2d,0x26,0x1b,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14, 0x28,0x3a,0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x46,0x37,0x25,0x11,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x10,0x26,0x38,0x48,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x37, 0x24,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06, 0x1a,0x2f,0x3f,0x4b,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d,0x43,0x31,0x1e,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x1b,0x27,0x32,0x3b,0x42, 0x47,0x49,0x4e,0x4c,0x49,0x45,0x3f,0x37,0x2d,0x21,0x13,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x15,0x1b,0x20,0x26,0x2f,0x38,0x43, 0x4d,0x4e,0x4e,0x4e,0x4e,0x4c,0x41,0x31,0x1e,0x09,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x2c,0x3d,0x49,0x4c,0x4c,0x4c, 0x49,0x3f,0x2f,0x3f,0x49,0x4c,0x4c,0x4c,0x49,0x3c,0x2c,0x18,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x18,0x25,0x30,0x3a,0x42,0x47,0x4b,0x4c, 0x4c,0x4b,0x48,0x43,0x3b,0x31,0x27,0x1c,0x10,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x14,0x21,0x2c,0x36,0x3e,0x45,0x49,0x4c,0x4c,0x4c, 0x49,0x43,0x3c,0x33,0x29,0x1e,0x11,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0d,0x21,0x30,0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3a,0x2f,0x39,0x42,0x49,0x4c, 0x4c,0x49,0x45,0x3d,0x2e,0x1d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x1d,0x34,0x4a,0x5c,0x65,0x65,0x65,0x65,0x65,0x59,0x46,0x31,0x1a,0x02,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x19,0x31,0x47,0x5c,0x67,0x68,0x68,0x68,0x68, 0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x67,0x5a, 0x44,0x2f,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x13,0x28,0x3b,0x50,0x62,0x68,0x68,0x68,0x68,0x68,0x68,0x64,0x54,0x3d,0x28, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x22,0x30,0x3e,0x49,0x53, 0x5a,0x60,0x63,0x66,0x65,0x63,0x5d,0x57,0x4e,0x43,0x36,0x28,0x16,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x23,0x2d,0x33,0x38,0x3e,0x45,0x4e, 0x58,0x64,0x68,0x68,0x68,0x68,0x63,0x52,0x3d,0x28,0x11,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x22,0x39,0x4f,0x5f,0x65,0x65, 0x65,0x61,0x51,0x3c,0x51,0x61,0x65,0x65,0x65,0x5f,0x4d,0x39,0x21,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x2b,0x39,0x46,0x50,0x59,0x5e,0x63, 0x65,0x65,0x63,0x60,0x5a,0x51,0x47,0x3d,0x31,0x24,0x16,0x06,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0a,0x1a,0x28,0x35,0x41,0x4b,0x55,0x5c,0x61,0x65,0x65, 0x63,0x60,0x5b,0x53,0x49,0x3f,0x33,0x25,0x16,0x06,0x00,0x00,0x00,0x00,0x00, 0x04,0x19,0x30,0x43,0x52,0x58,0x58,0x58,0x58,0x58,0x51,0x43,0x4f,0x59,0x60, 0x63,0x63,0x62,0x5b,0x50,0x3e,0x2a,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0b,0x23,0x3a,0x51,0x69,0x81,0x81,0x81,0x81,0x7c,0x65,0x4c,0x35,0x1e,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x81,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79, 0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0d,0x21,0x35,0x49,0x5c,0x71,0x81,0x81,0x81,0x81,0x81,0x81,0x72,0x5b,0x42, 0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x26,0x36,0x45,0x53,0x60, 0x6a,0x72,0x79,0x7c,0x81,0x7c,0x7b,0x76,0x6e,0x64,0x59,0x4a,0x3a,0x28,0x17, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x26,0x37,0x45,0x4b,0x50,0x56,0x5d, 0x65,0x6d,0x79,0x81,0x81,0x81,0x81,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28,0x3f,0x57,0x6f,0x81, 0x81,0x81,0x72,0x58,0x42,0x5a,0x72,0x81,0x81,0x81,0x6d,0x56,0x3f,0x26,0x0f, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1a,0x2b,0x3c,0x4c,0x5a,0x65,0x6f,0x75, 0x79,0x7c,0x7c,0x79,0x76,0x70,0x67,0x5c,0x51,0x45,0x37,0x26,0x15,0x00,0x00, 0x00,0x00,0x00,0x00,0x0a,0x1a,0x2b,0x3b,0x49,0x56,0x61,0x6b,0x72,0x77,0x7c, 0x7c,0x7b,0x77,0x71,0x69,0x5f,0x53,0x46,0x38,0x28,0x16,0x06,0x00,0x00,0x00, 0x00,0x09,0x1f,0x38,0x4e,0x63,0x6f,0x6f,0x6f,0x6f,0x6f,0x61,0x57,0x64,0x70, 0x77,0x7c,0x7c,0x79,0x72,0x60,0x48,0x31,0x1b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0e,0x25,0x3c,0x54,0x6b,0x86,0x9a,0x9a,0x95,0x7c,0x65,0x4c,0x35,0x1e, 0x0f,0x0d,0x07,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x98,0x9a, 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x95, 0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x1a,0x2e,0x42,0x56,0x6a,0x81,0x93,0x9a,0x9a,0x9a,0x9a,0x8b,0x72,0x5b, 0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x03,0x16,0x28,0x38,0x4a,0x59,0x68, 0x75,0x82,0x8c,0x93,0x98,0x98,0x98,0x95,0x90,0x88,0x7b,0x6d,0x5e,0x4c,0x3a, 0x26,0x12,0x00,0x00,0x00,0x00,0x00,0x06,0x1c,0x32,0x47,0x59,0x64,0x68,0x6d, 0x74,0x7c,0x86,0x90,0x9a,0x9a,0x9a,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2b,0x42,0x5b,0x72, 0x8b,0x9a,0x89,0x6f,0x58,0x45,0x5d,0x74,0x8e,0x9a,0x86,0x6d,0x54,0x3c,0x25, 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x27,0x3b,0x4c,0x5e,0x6d,0x7b,0x86, 0x8e,0x93,0x95,0x95,0x93,0x8e,0x88,0x7c,0x71,0x65,0x58,0x49,0x36,0x20,0x09, 0x00,0x00,0x00,0x00,0x06,0x19,0x2b,0x3c,0x4c,0x5c,0x6a,0x75,0x82,0x8a,0x90, 0x95,0x95,0x93,0x90,0x89,0x81,0x74,0x67,0x59,0x49,0x38,0x26,0x15,0x02,0x00, 0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x8b,0x8b,0x8b,0x81,0x68,0x6a,0x79, 0x87,0x90,0x95,0x96,0x90,0x77,0x62,0x49,0x32,0x1b,0x00,0x00,0x00,0x00,0x00, 0x09,0x16,0x1f,0x28,0x3f,0x56,0x6d,0x88,0xa0,0xaf,0x95,0x7c,0x65,0x4c,0x35, 0x28,0x28,0x26,0x1e,0x12,0x01,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x98, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb0,0xb4,0xb4,0xac, 0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x13,0x27,0x3b,0x4f,0x63,0x77,0x8c,0xa1,0xb4,0xb4,0xb4,0xa5,0x8b,0x72, 0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x10,0x26,0x3a,0x4a,0x5c,0x6d, 0x7c,0x8c,0x99,0xa3,0xab,0xaa,0xaa,0xaa,0xae,0xa8,0x9e,0x91,0x82,0x6e,0x5c, 0x4a,0x34,0x1f,0x09,0x00,0x00,0x00,0x00,0x0a,0x20,0x37,0x4e,0x65,0x79,0x81, 0x86,0x8c,0x93,0x9c,0xa5,0xb0,0xb4,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x45,0x5d, 0x74,0x8e,0x9d,0x86,0x6d,0x55,0x49,0x60,0x77,0x91,0x9a,0x84,0x6a,0x51,0x3a, 0x22,0x0a,0x00,0x00,0x00,0x00,0x00,0x09,0x1e,0x33,0x48,0x5c,0x6e,0x82,0x90, 0x9c,0xa5,0xaa,0xaa,0xaa,0xab,0xa6,0x9d,0x93,0x88,0x79,0x6b,0x56,0x3e,0x27, 0x0e,0x00,0x00,0x00,0x00,0x13,0x27,0x3a,0x4c,0x5e,0x6e,0x7c,0x8c,0x98,0xa1, 0xa8,0xac,0xaf,0xac,0xa7,0x9f,0x95,0x89,0x7b,0x6b,0x5b,0x49,0x36,0x23,0x0f, 0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xa2,0x9a,0x84,0x6a,0x7b, 0x8d,0x9b,0xa6,0xad,0xa3,0x8b,0x73,0x5d,0x45,0x2e,0x17,0x00,0x00,0x00,0x00, 0x08,0x1c,0x2b,0x37,0x3c,0x42,0x59,0x70,0x8a,0xa2,0xaf,0x95,0x7c,0x65,0x4c, 0x42,0x42,0x42,0x3e,0x34,0x23,0x11,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c, 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x9a,0xaa,0xb3, 0xa0,0x8d,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x20,0x34,0x48,0x5c,0x71,0x86,0x9a,0xa9,0xa2,0xa9,0xb8,0xa5,0x8b, 0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x19,0x30,0x48,0x5c,0x6e, 0x81,0x90,0xa1,0xaa,0x9e,0x95,0x90,0x90,0x92,0x99,0xa4,0xb3,0xa5,0x94,0x81, 0x6b,0x56,0x40,0x29,0x13,0x00,0x00,0x00,0x00,0x0a,0x21,0x37,0x4e,0x65,0x7c, 0x95,0x9e,0xa4,0xab,0xb1,0xb4,0xc0,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x31,0x49, 0x60,0x77,0x91,0x9b,0x84,0x6a,0x51,0x4c,0x63,0x7b,0x95,0x98,0x7c,0x65,0x4e, 0x37,0x1f,0x0c,0x00,0x00,0x00,0x00,0x00,0x10,0x27,0x3e,0x53,0x69,0x7c,0x92, 0xa2,0xaf,0xa0,0x97,0x93,0x93,0x94,0x9b,0xa4,0xa7,0x94,0x82,0x6d,0x57,0x3f, 0x28,0x0e,0x00,0x00,0x00,0x0b,0x1f,0x34,0x48,0x5b,0x6e,0x81,0x90,0x9f,0xac, 0xa9,0xa0,0x9a,0x98,0x9a,0xa1,0xab,0xaa,0x9d,0x8d,0x7b,0x6a,0x57,0x44,0x30, 0x1b,0x06,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0x9d,0x86,0x79, 0x8d,0x9f,0xa6,0xa0,0xa0,0x9f,0x87,0x6f,0x58,0x41,0x29,0x12,0x00,0x00,0x00, 0x00,0x15,0x29,0x3c,0x4c,0x55,0x56,0x5b,0x72,0x8c,0xa5,0xaf,0x95,0x7c,0x65, 0x58,0x58,0x58,0x58,0x54,0x45,0x32,0x1e,0x06,0x00,0x04,0x1b,0x35,0x4c,0x65, 0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x8b,0xa2, 0xa4,0x91,0x7c,0x69,0x57,0x42,0x2c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x1a,0x2d,0x42,0x56,0x6a,0x7c,0x93,0xa7,0x96,0x89,0x98,0xad,0xa5, 0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x65, 0x7c,0x90,0xa1,0xa5,0x96,0x88,0x7c,0x75,0x74,0x77,0x82,0x90,0xa1,0xb5,0xa3, 0x8f,0x77,0x61,0x4a,0x33,0x1c,0x04,0x00,0x00,0x00,0x0a,0x21,0x37,0x4e,0x65, 0x7c,0x95,0x98,0x98,0x98,0x98,0x9e,0xae,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x16,0x26,0x2f,0x32,0x34, 0x4c,0x63,0x79,0x95,0x98,0x81,0x67,0x4e,0x4e,0x67,0x81,0x98,0x95,0x79,0x63, 0x4c,0x34,0x2d,0x21,0x13,0x00,0x00,0x00,0x00,0x17,0x2e,0x45,0x5c,0x72,0x8b, 0x9f,0xb3,0x9f,0x8d,0x81,0x79,0x79,0x7c,0x86,0x8f,0x9a,0x87,0x72,0x5f,0x4c, 0x37,0x22,0x0b,0x00,0x00,0x00,0x15,0x2a,0x40,0x54,0x69,0x7c,0x90,0xa2,0xb3, 0xa2,0x94,0x89,0x84,0x81,0x84,0x8b,0x98,0xa6,0xaf,0x9f,0x8d,0x77,0x64,0x50, 0x3b,0x26,0x10,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0x9e,0x87, 0x87,0x9b,0x9b,0x90,0x89,0x86,0x89,0x84,0x6a,0x53,0x3c,0x25,0x0e,0x00,0x00, 0x00,0x03,0x1c,0x33,0x49,0x5f,0x6d,0x6f,0x72,0x74,0x8f,0xa7,0xaf,0x95,0x7c, 0x72,0x72,0x72,0x72,0x72,0x69,0x51,0x3b,0x25,0x0b,0x00,0x01,0x18,0x30,0x45, 0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x6d,0x82,0x96, 0xaa,0x96,0x82,0x6e,0x5a,0x48,0x35,0x21,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x13,0x27,0x3b,0x4f,0x63,0x76,0x8c,0xa0,0xa1,0x8c,0x7c,0x95,0xac, 0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x18,0x2e,0x46, 0x59,0x6b,0x7c,0x8f,0x92,0x82,0x72,0x65,0x5d,0x5b,0x60,0x6c,0x7c,0x92,0xa8, 0xaf,0x99,0x82,0x6a,0x52,0x3a,0x23,0x0a,0x00,0x00,0x00,0x0a,0x20,0x37,0x4e, 0x65,0x7b,0x81,0x81,0x81,0x81,0x81,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42, 0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x27,0x3a,0x47,0x4c, 0x4c,0x4e,0x66,0x81,0x98,0x95,0x7c,0x64,0x4c,0x52,0x6a,0x84,0x9b,0x92,0x77, 0x60,0x4c,0x4b,0x45,0x35,0x23,0x0d,0x00,0x00,0x02,0x1b,0x32,0x49,0x62,0x79, 0x92,0xa8,0xaa,0x93,0x7c,0x6a,0x62,0x60,0x65,0x6d,0x77,0x87,0x77,0x63,0x51, 0x3e,0x2b,0x18,0x02,0x00,0x00,0x08,0x1e,0x34,0x4a,0x60,0x74,0x8b,0x9e,0xb2, 0xa5,0x92,0x82,0x72,0x6a,0x68,0x6b,0x75,0x86,0x96,0xa9,0xad,0x9a,0x87,0x70, 0x5b,0x46,0x2f,0x19,0x04,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xa7, 0x98,0x98,0x96,0x88,0x79,0x70,0x6d,0x6f,0x74,0x64,0x4e,0x37,0x20,0x09,0x00, 0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x89,0x8b,0x8e,0x96,0xab,0xb1,0x9b, 0x8e,0x8e,0x8e,0x8e,0x8e,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x0e,0x24, 0x35,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x52,0x67,0x7b,0x90, 0xa4,0x9d,0x89,0x73,0x5f,0x4c,0x38,0x26,0x12,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x20,0x34,0x48,0x5c,0x70,0x86,0x9a,0xab,0x95,0x81,0x7c,0x98, 0xaf,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x0e,0x23, 0x37,0x47,0x59,0x6b,0x7b,0x81,0x6e,0x5e,0x4f,0x45,0x42,0x49,0x5b,0x70,0x88, 0x9f,0xb6,0xa0,0x89,0x6f,0x58,0x3f,0x27,0x0e,0x00,0x00,0x00,0x06,0x1c,0x32, 0x47,0x59,0x65,0x65,0x65,0x65,0x65,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58, 0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1d,0x33,0x49,0x5c, 0x65,0x65,0x65,0x6a,0x84,0x9a,0x93,0x77,0x65,0x65,0x65,0x6d,0x86,0x9f,0x8e, 0x74,0x65,0x65,0x65,0x57,0x43,0x2e,0x16,0x00,0x00,0x04,0x1b,0x34,0x4c,0x63, 0x7c,0x95,0xac,0xa7,0x90,0x74,0x5d,0x4b,0x49,0x4f,0x59,0x64,0x71,0x69,0x56, 0x43,0x30,0x1c,0x0a,0x00,0x00,0x00,0x10,0x26,0x3c,0x53,0x69,0x81,0x96,0xab, 0xae,0x99,0x84,0x70,0x5f,0x53,0x50,0x55,0x62,0x74,0x89,0x9d,0xb3,0xa6,0x91, 0x79,0x64,0x4e,0x38,0x21,0x0b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xb7,0xad,0x99,0x86,0x74,0x64,0x59,0x53,0x58,0x5b,0x53,0x43,0x2f,0x19,0x04, 0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x95,0xa5,0xa5,0xab,0xba,0xbe, 0xae,0xa7,0xa7,0xa7,0xa7,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x02, 0x13,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x35,0x4a,0x5f,0x73,0x89, 0x9e,0xa4,0x90,0x79,0x65,0x51,0x3e,0x2a,0x16,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x19,0x2d,0x41,0x56,0x69,0x7c,0x92,0xa7,0x9f,0x8a,0x74,0x81, 0x98,0xaf,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00, 0x13,0x25,0x37,0x47,0x59,0x6a,0x6c,0x5c,0x4a,0x3b,0x2d,0x2a,0x39,0x50,0x67, 0x81,0x9a,0xb1,0xa5,0x8d,0x72,0x5b,0x42,0x28,0x11,0x00,0x00,0x00,0x00,0x14, 0x27,0x38,0x46,0x4c,0x4c,0x4c,0x4c,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f, 0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37,0x51, 0x68,0x81,0x81,0x81,0x81,0x87,0x9d,0x90,0x81,0x81,0x81,0x81,0x81,0x8a,0xa2, 0x8e,0x81,0x81,0x81,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x04,0x1b,0x33,0x4c, 0x63,0x7b,0x95,0xac,0xaa,0x93,0x7c,0x6b,0x60,0x56,0x4e,0x46,0x51,0x58,0x54, 0x47,0x34,0x21,0x0e,0x00,0x00,0x00,0x00,0x15,0x2c,0x43,0x5a,0x71,0x89,0xa0, 0xb5,0xa5,0x8f,0x77,0x63,0x4f,0x3e,0x38,0x41,0x53,0x67,0x7c,0x93,0xaa,0xb0, 0x9b,0x84,0x6d,0x56,0x3e,0x28,0x11,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xb6,0xa1,0x8c,0x76,0x63,0x52,0x43,0x3c,0x40,0x42,0x3d,0x31,0x21,0x0e, 0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x95,0x9d,0x9d,0xa6,0xb8, 0xb8,0xa5,0x9d,0x9d,0x9d,0x9d,0x9d,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00, 0x00,0x00,0x0d,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x2a,0x40,0x56,0x6b,0x81, 0x95,0xaa,0x99,0x84,0x6d,0x58,0x44,0x30,0x1c,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x13,0x26,0x3b,0x4f,0x62,0x76,0x8b,0xa0,0xa7,0x93,0x7c,0x68, 0x81,0x98,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x13,0x25,0x35,0x47,0x54,0x55,0x4a,0x38,0x28,0x18,0x1b,0x34,0x4c, 0x65,0x7c,0x98,0xb1,0xa6,0x8e,0x74,0x5b,0x42,0x2b,0x11,0x00,0x00,0x00,0x00, 0x06,0x16,0x24,0x2e,0x32,0x32,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89, 0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37, 0x51,0x68,0x84,0x9a,0x9a,0x9a,0x9b,0xaa,0xa0,0x9a,0x9a,0x9a,0x9a,0x9a,0x9d, 0xac,0x9e,0x9a,0x9a,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x01,0x19,0x31, 0x48,0x60,0x76,0x8f,0xa3,0xb3,0x9f,0x8f,0x81,0x75,0x6c,0x64,0x5b,0x52,0x49, 0x3f,0x34,0x25,0x15,0x03,0x00,0x00,0x00,0x02,0x1a,0x31,0x48,0x60,0x77,0x8f, 0xa7,0xb6,0x9f,0x88,0x70,0x5a,0x43,0x2e,0x21,0x32,0x47,0x5d,0x74,0x8b,0xa2, 0xb8,0xa2,0x8b,0x72,0x5c,0x44,0x2d,0x16,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xad,0x97,0x81,0x6a,0x56,0x42,0x2f,0x23,0x28,0x2b,0x27,0x1e,0x11, 0x00,0x00,0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x84,0x84,0x84,0x98, 0xaf,0xaf,0x96,0x84,0x84,0x84,0x84,0x84,0x84,0x6d,0x53,0x3c,0x26,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x35,0x4b,0x61,0x76, 0x8d,0xa2,0xa3,0x8d,0x76,0x61,0x4c,0x37,0x22,0x0e,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0c,0x20,0x34,0x48,0x5c,0x70,0x86,0x99,0xad,0x9a,0x86,0x70, 0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x13,0x23,0x32,0x3b,0x3c,0x35,0x26,0x16,0x0b,0x21,0x39, 0x50,0x68,0x81,0x9a,0xb1,0xa2,0x8b,0x72,0x58,0x41,0x28,0x10,0x00,0x00,0x00, 0x00,0x00,0x03,0x0f,0x18,0x1b,0x1b,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0, 0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21, 0x37,0x51,0x68,0x84,0x98,0x98,0x98,0x9f,0xa6,0x99,0x98,0x98,0x98,0x98,0x98, 0x9f,0xa4,0x98,0x98,0x98,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x14, 0x2b,0x41,0x58,0x6d,0x82,0x95,0xa6,0xaf,0xa1,0x95,0x8c,0x84,0x79,0x71,0x68, 0x5d,0x52,0x45,0x35,0x25,0x13,0x01,0x00,0x00,0x05,0x1d,0x35,0x4c,0x63,0x79, 0x93,0xac,0xb2,0x9a,0x84,0x6a,0x53,0x3c,0x25,0x13,0x29,0x40,0x58,0x6f,0x87, 0x9f,0xb6,0xa7,0x90,0x77,0x60,0x47,0x30,0x19,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x36,0x21,0x0e,0x11,0x11,0x0f,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1b,0x31,0x47,0x5c,0x67,0x68,0x68,0x7c, 0x98,0xaf,0xaf,0x95,0x7c,0x68,0x68,0x68,0x68,0x68,0x62,0x4e,0x39,0x23,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2a,0x40,0x56,0x6b, 0x82,0x98,0xad,0x99,0x84,0x6b,0x56,0x40,0x2b,0x16,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x19,0x2d,0x41,0x55,0x69,0x7c,0x92,0xa6,0xa0,0x8b,0x76, 0x63,0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x1b,0x22,0x23,0x1d,0x12,0x04,0x17,0x2c, 0x42,0x58,0x6e,0x88,0x9f,0xb4,0x9c,0x86,0x6d,0x55,0x3d,0x25,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6, 0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0x20,0x37,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x90,0x9d,0x86,0x7c,0x7c,0x7c,0x7c, 0x7c,0x93,0x9a,0x84,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x32,0x19,0x00,0x00,0x00, 0x0d,0x22,0x38,0x4c,0x5f,0x72,0x84,0x93,0xa0,0xaa,0xac,0xa2,0x9a,0x92,0x89, 0x81,0x73,0x65,0x57,0x47,0x35,0x22,0x0e,0x00,0x00,0x07,0x1e,0x36,0x4e,0x65, 0x7c,0x96,0xaf,0xb0,0x98,0x81,0x68,0x50,0x38,0x21,0x0d,0x25,0x3c,0x53,0x6a, 0x84,0x9d,0xb4,0xaa,0x93,0x79,0x61,0x49,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x26,0x38,0x48,0x4e,0x4e,0x65, 0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4e,0x4e,0x4e,0x4e,0x4b,0x3e,0x2d,0x19, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1d,0x33,0x4a,0x60, 0x75,0x8d,0xa3,0xa5,0x8f,0x77,0x61,0x4b,0x35,0x1f,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x12,0x26,0x3a,0x4e,0x62,0x75,0x8b,0xa0,0xa6,0x92,0x7c, 0x69,0x56,0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x09,0x05,0x00,0x11,0x25, 0x39,0x4e,0x63,0x79,0x90,0xa7,0xaa,0x93,0x7b,0x65,0x4d,0x36,0x1f,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x90,0xa7, 0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x79,0x93,0x99,0x81,0x68,0x63,0x63, 0x65,0x7c,0x95,0x97,0x7c,0x65,0x63,0x63,0x62,0x57,0x42,0x2d,0x15,0x00,0x00, 0x00,0x03,0x17,0x2b,0x3e,0x50,0x62,0x70,0x81,0x8b,0x94,0x9e,0xa7,0xb0,0xa7, 0x9e,0x94,0x89,0x79,0x69,0x57,0x43,0x2f,0x1b,0x05,0x00,0x07,0x21,0x37,0x4e, 0x68,0x81,0x98,0xaf,0xaf,0x98,0x7c,0x65,0x4e,0x37,0x1f,0x0c,0x23,0x3a,0x53, 0x6a,0x84,0x9d,0xb4,0xac,0x93,0x79,0x63,0x49,0x32,0x1b,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x05,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x27,0x32,0x37,0x4c, 0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x37,0x37,0x37,0x35,0x2b,0x1c, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x3c,0x52, 0x69,0x81,0x98,0xad,0x9c,0x86,0x6e,0x58,0x41,0x2b,0x15,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x1f,0x34,0x48,0x5b,0x70,0x84,0x99,0xac,0x99,0x84, 0x70,0x5c,0x51,0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x1f,0x16, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x20, 0x34,0x48,0x5b,0x70,0x86,0x9b,0xb2,0x9e,0x89,0x72,0x5b,0x45,0x2e,0x17,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77,0x90, 0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x12,0x26,0x38,0x44,0x49,0x4e,0x65,0x7c,0x96,0x96,0x7c,0x65,0x4e, 0x51,0x68,0x81,0x98,0x93,0x79,0x63,0x4b,0x49,0x49,0x42,0x33,0x21,0x0c,0x00, 0x00,0x00,0x00,0x0a,0x1d,0x2e,0x40,0x50,0x5e,0x6a,0x74,0x7c,0x89,0x92,0x9b, 0xa4,0xb0,0xa9,0x9b,0x8b,0x79,0x64,0x50,0x3a,0x25,0x0e,0x00,0x07,0x1e,0x36, 0x4e,0x65,0x7c,0x96,0xaf,0xb0,0x98,0x81,0x68,0x4f,0x38,0x21,0x0d,0x25,0x3c, 0x53,0x6a,0x84,0x9d,0xb4,0xaa,0x93,0x79,0x62,0x49,0x32,0x1b,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x1e,0x35, 0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x35,0x1e,0x1e,0x1c,0x15, 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2e,0x45, 0x5b,0x72,0x89,0xa0,0xac,0x95,0x7c,0x66,0x4f,0x39,0x22,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x18,0x2d,0x41,0x55,0x69,0x7c,0x92,0xa5,0x9e,0x8b, 0x75,0x62,0x4f,0x51,0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x3c,0x37, 0x2b,0x1a,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e, 0x31,0x43,0x57,0x6a,0x81,0x93,0xa8,0xa7,0x92,0x7c,0x67,0x51,0x3a,0x24,0x0e, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60,0x77, 0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0d,0x22,0x33,0x40,0x47,0x47,0x51,0x68,0x82,0x99,0x93,0x79,0x62, 0x4b,0x53,0x6a,0x84,0x9c,0x90,0x77,0x60,0x48,0x47,0x41,0x35,0x22,0x11,0x00, 0x00,0x00,0x00,0x00,0x02,0x15,0x26,0x31,0x3c,0x49,0x54,0x5e,0x68,0x71,0x79, 0x84,0x90,0x9c,0xac,0xad,0x9b,0x86,0x70,0x5a,0x43,0x2c,0x14,0x00,0x05,0x1d, 0x35,0x4c,0x63,0x79,0x93,0xac,0xb2,0x9a,0x84,0x6a,0x53,0x3c,0x25,0x13,0x29, 0x40,0x58,0x6f,0x87,0x9f,0xb6,0xa7,0x90,0x77,0x60,0x48,0x30,0x19,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1e, 0x35,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x35,0x1e,0x05,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1e,0x35, 0x4c,0x63,0x79,0x92,0xa8,0xa5,0x8e,0x75,0x5e,0x48,0x31,0x1a,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x12,0x26,0x39,0x4e,0x62,0x75,0x8b,0x9f,0xa5,0x91, 0x7c,0x69,0x56,0x56,0x56,0x68,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x56,0x56, 0x4d,0x3d,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c, 0x2e,0x41,0x53,0x65,0x79,0x8f,0xa1,0xad,0x99,0x86,0x6e,0x5a,0x45,0x2f,0x19, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49,0x60, 0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x17,0x2f,0x43,0x55,0x60,0x60,0x60,0x6b,0x86,0x9d,0x90,0x77, 0x60,0x60,0x60,0x6d,0x89,0xa0,0x8e,0x74,0x60,0x60,0x60,0x57,0x45,0x2f,0x19, 0x01,0x00,0x00,0x00,0x00,0x11,0x24,0x37,0x45,0x4e,0x4d,0x41,0x49,0x52,0x5b, 0x65,0x6e,0x79,0x8b,0x9c,0xb2,0xa6,0x90,0x77,0x60,0x49,0x31,0x19,0x00,0x02, 0x1a,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0x9f,0x88,0x70,0x5a,0x42,0x2e,0x21, 0x32,0x47,0x5d,0x74,0x8b,0xa2,0xb8,0xa2,0x8b,0x72,0x5c,0x44,0x2d,0x16,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b, 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x35,0x1e,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x24, 0x3b,0x53,0x6a,0x82,0x99,0xb0,0xa0,0x89,0x6f,0x58,0x41,0x29,0x12,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x06,0x1c,0x32,0x49,0x5b,0x6e,0x84,0x99,0xac,0x98, 0x84,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x6f,0x6f, 0x6e,0x5f,0x49,0x31,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c, 0x2e,0x3f,0x52,0x63,0x75,0x8b,0x9d,0xb1,0x9e,0x8a,0x75,0x62,0x4c,0x38,0x23, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32,0x49, 0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x1b,0x35,0x4b,0x64,0x79,0x79,0x79,0x79,0x89,0xa0,0x8e, 0x79,0x79,0x79,0x79,0x79,0x8b,0xa2,0x8b,0x79,0x79,0x79,0x79,0x65,0x4e,0x35, 0x1e,0x04,0x00,0x00,0x00,0x0c,0x1f,0x32,0x45,0x59,0x66,0x63,0x55,0x48,0x3c, 0x46,0x4f,0x59,0x67,0x7b,0x93,0xaa,0xac,0x94,0x79,0x63,0x4b,0x32,0x1b,0x00, 0x00,0x15,0x2d,0x43,0x5b,0x71,0x89,0xa0,0xb5,0xa5,0x8f,0x77,0x63,0x4e,0x3e, 0x39,0x41,0x52,0x67,0x7c,0x93,0xaa,0xb0,0x9b,0x84,0x6d,0x56,0x3f,0x28,0x11, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32, 0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x35,0x1e, 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13, 0x2a,0x41,0x59,0x70,0x89,0xa0,0xb2,0x9a,0x84,0x6a,0x52,0x3b,0x23,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x20,0x37,0x50,0x67,0x7c,0x91,0xa5,0xad, 0x98,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x8a,0x9c,0xb2,0xa6,0x90,0x89,0x89, 0x89,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c, 0x2e,0x3e,0x50,0x62,0x74,0x88,0x9b,0xad,0xa2,0x8f,0x79,0x67,0x53,0x3f,0x2b, 0x16,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x32, 0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x95,0x95,0x95,0x98,0xa8, 0x9a,0x95,0x95,0x95,0x95,0x95,0x99,0xaa,0x99,0x95,0x95,0x95,0x81,0x65,0x4e, 0x35,0x1e,0x05,0x00,0x00,0x06,0x19,0x2d,0x40,0x53,0x67,0x79,0x75,0x69,0x5c, 0x51,0x4c,0x49,0x4c,0x60,0x77,0x90,0xaa,0xab,0x93,0x79,0x63,0x4a,0x32,0x1b, 0x00,0x00,0x10,0x26,0x3d,0x53,0x69,0x81,0x96,0xab,0xae,0x99,0x84,0x70,0x5f, 0x54,0x51,0x56,0x62,0x74,0x89,0x9d,0xb3,0xa6,0x91,0x79,0x64,0x4e,0x38,0x21, 0x0b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c, 0x32,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c,0x35, 0x1e,0x07,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x17,0x2f,0x47,0x5e,0x76,0x8f,0xa6,0xad,0x95,0x7c,0x65,0x4d,0x35,0x1e,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x37,0x51,0x68,0x81,0x9a,0xb1, 0xb6,0xa9,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xac,0xbd,0xb3,0xa5,0xa2, 0xa2,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c, 0x2e,0x3e,0x50,0x62,0x74,0x88,0x9a,0xab,0xa4,0x92,0x7c,0x6b,0x57,0x43,0x30, 0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1b, 0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x14,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x98,0x9d,0x9d,0xa3, 0xaa,0x9e,0x9d,0x9d,0x9d,0x9d,0x9d,0xa5,0xa8,0x9d,0x9d,0x9d,0x98,0x81,0x65, 0x4e,0x35,0x1e,0x05,0x00,0x00,0x11,0x27,0x3a,0x4e,0x62,0x74,0x89,0x8b,0x7c, 0x71,0x68,0x63,0x60,0x63,0x6d,0x81,0x95,0xac,0xa5,0x8f,0x77,0x60,0x48,0x30, 0x18,0x00,0x00,0x08,0x1f,0x34,0x4a,0x60,0x74,0x8b,0x9f,0xb2,0xa5,0x92,0x82, 0x72,0x6a,0x68,0x6c,0x75,0x86,0x96,0xa9,0xae,0x9a,0x87,0x70,0x5b,0x46,0x30, 0x1a,0x04,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63, 0x4c,0x32,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x98,0xaf,0xaf,0x95,0x7c,0x65,0x4c, 0x35,0x1e,0x21,0x1e,0x15,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x1c,0x34,0x4b,0x63,0x79,0x93,0xab,0xa9,0x91,0x77,0x60,0x49,0x31,0x19, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x37,0x51,0x68,0x81,0x9a, 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xaa,0xbb,0xb1,0xa2, 0xa0,0xa0,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x0c,0x1c, 0x2e,0x3e,0x50,0x62,0x74,0x86,0x98,0xaa,0xa6,0x94,0x82,0x6d,0x5b,0x48,0x34, 0x21,0x19,0x19,0x14,0x0b,0x00,0x00,0x00,0x00,0x00,0x02,0x0d,0x14,0x16,0x16, 0x1b,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x2b,0x16, 0x16,0x13,0x0b,0x00,0x00,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x84,0x84,0x84, 0x93,0x9d,0x88,0x84,0x84,0x84,0x84,0x84,0x96,0x9a,0x84,0x84,0x84,0x84,0x81, 0x65,0x4e,0x35,0x1e,0x05,0x00,0x02,0x19,0x31,0x47,0x5c,0x70,0x84,0x98,0x9e, 0x93,0x88,0x81,0x79,0x77,0x79,0x82,0x90,0xa1,0xaf,0x9b,0x87,0x6f,0x59,0x41, 0x2c,0x14,0x00,0x00,0x00,0x15,0x2a,0x40,0x54,0x69,0x7c,0x90,0xa2,0xb3,0xa3, 0x95,0x8a,0x84,0x81,0x84,0x8b,0x98,0xa6,0xaf,0x9f,0x8d,0x79,0x64,0x50,0x3b, 0x26,0x10,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79, 0x63,0x4c,0x32,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x1e,0x35,0x4c,0x65,0x7c,0x95,0xaf,0xaf,0x96,0x7c,0x65, 0x4e,0x36,0x35,0x3a,0x36,0x2a,0x1c,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x09,0x20,0x38,0x50,0x68,0x81,0x98,0xaf,0xa5,0x8e,0x74,0x5d,0x45,0x2d, 0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x21,0x37,0x51,0x68,0x81, 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x9b,0xb2,0xa5, 0x8d,0x86,0x86,0x86,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x0c,0x1d, 0x2e,0x40,0x50,0x62,0x74,0x86,0x98,0xaa,0xa8,0x95,0x82,0x6e,0x5c,0x4a,0x38, 0x32,0x32,0x32,0x32,0x2c,0x20,0x11,0x00,0x00,0x00,0x06,0x16,0x23,0x2d,0x30, 0x30,0x30,0x32,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x42,0x30, 0x30,0x30,0x2b,0x21,0x13,0x02,0x00,0x02,0x19,0x31,0x47,0x5b,0x67,0x68,0x68, 0x79,0x93,0x9a,0x81,0x69,0x68,0x68,0x68,0x7c,0x97,0x96,0x7c,0x68,0x68,0x68, 0x67,0x5c,0x49,0x31,0x1b,0x02,0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x8f,0x9b, 0xa6,0xa7,0x9e,0x98,0x93,0x93,0x93,0x98,0xa3,0xac,0x9f,0x8d,0x79,0x64,0x50, 0x3a,0x24,0x0c,0x00,0x00,0x00,0x0b,0x1f,0x34,0x48,0x5b,0x6e,0x81,0x90,0xa0, 0xac,0xaa,0xa0,0x9a,0x9a,0x9b,0xa2,0xac,0xaa,0x9d,0x8f,0x7b,0x6b,0x57,0x44, 0x30,0x1b,0x06,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xaf,0xac,0x95, 0x79,0x63,0x4c,0x32,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x05,0x1d,0x35,0x4c,0x64,0x7c,0x95,0xac,0xb0,0x98,0x81, 0x6a,0x52,0x49,0x4d,0x51,0x4b,0x3e,0x2a,0x16,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0c,0x24,0x3c,0x53,0x6b,0x86,0x9d,0xb4,0xa3,0x8b,0x72,0x5a,0x42, 0x2a,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x35,0x4c,0x60, 0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x81,0x9a,0xb1, 0xa5,0x8b,0x72,0x6a,0x6a,0x6a,0x5c,0x48,0x30,0x19,0x00,0x00,0x00,0x0c,0x1e, 0x2f,0x40,0x52,0x62,0x74,0x88,0x98,0xaa,0xa8,0x96,0x84,0x70,0x5e,0x4c,0x49, 0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x1f,0x09,0x00,0x00,0x13,0x26,0x37,0x43, 0x49,0x49,0x49,0x49,0x49,0x60,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x58,0x49, 0x49,0x49,0x49,0x42,0x35,0x24,0x10,0x00,0x00,0x10,0x26,0x38,0x47,0x4e,0x4e, 0x65,0x7c,0x96,0x97,0x7c,0x65,0x4e,0x50,0x68,0x81,0x9a,0x93,0x79,0x63,0x4e, 0x4e,0x4e,0x48,0x3a,0x26,0x13,0x00,0x00,0x02,0x19,0x31,0x47,0x5c,0x6b,0x79, 0x87,0x92,0x9b,0xa3,0xa8,0xaa,0xaa,0xaa,0xa7,0xa1,0x98,0x8c,0x7b,0x6b,0x58, 0x44,0x2f,0x1b,0x05,0x00,0x00,0x00,0x00,0x13,0x27,0x3a,0x4c,0x5e,0x6e,0x7c, 0x8c,0x98,0xa1,0xa7,0xac,0xac,0xab,0xa6,0x9f,0x95,0x8a,0x7b,0x6b,0x5b,0x49, 0x36,0x23,0x0f,0x00,0x00,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x95,0x95,0x95, 0x95,0x79,0x63,0x4c,0x32,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x1b,0x32,0x49,0x61,0x77,0x90,0xa8,0xb5,0x9f, 0x89,0x74,0x65,0x60,0x65,0x6a,0x60,0x4c,0x35,0x1f,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0f,0x28,0x3f,0x57,0x6f,0x89,0xa0,0xb7,0xa2,0x89,0x6f,0x58, 0x3f,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x16,0x2a,0x3e, 0x4b,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x68,0x81,0x9a, 0xb1,0xa5,0x8b,0x72,0x5b,0x53,0x53,0x4a,0x3a,0x27,0x11,0x00,0x00,0x08,0x1c, 0x2f,0x41,0x52,0x63,0x74,0x88,0x9a,0xaa,0xaa,0x98,0x86,0x72,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x62,0x55,0x42,0x2b,0x13,0x00,0x08,0x1e,0x33,0x48, 0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x77,0x90,0xa7,0xb6,0xa0,0x89,0x6f,0x63, 0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x1a,0x00,0x00,0x03,0x16,0x25,0x30,0x38, 0x50,0x68,0x81,0x99,0x93,0x79,0x63,0x4b,0x53,0x6b,0x84,0x9d,0x90,0x77,0x60, 0x47,0x35,0x35,0x31,0x26,0x16,0x05,0x00,0x00,0x00,0x11,0x26,0x3a,0x4a,0x58, 0x65,0x70,0x79,0x84,0x8b,0x90,0x94,0x95,0x93,0x90,0x8b,0x82,0x76,0x69,0x59, 0x49,0x37,0x23,0x0f,0x00,0x00,0x00,0x00,0x00,0x06,0x19,0x2b,0x3c,0x4c,0x5c, 0x6a,0x76,0x82,0x8a,0x90,0x93,0x95,0x93,0x8f,0x89,0x81,0x74,0x67,0x59,0x49, 0x38,0x27,0x15,0x02,0x00,0x00,0x00,0x0a,0x20,0x3a,0x50,0x67,0x79,0x79,0x79, 0x79,0x79,0x77,0x62,0x4b,0x32,0x1b,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x2e,0x45,0x5d,0x73,0x8a,0xa0,0xb5, 0xaa,0x98,0x88,0x7c,0x79,0x7c,0x82,0x6a,0x53,0x3b,0x24,0x0d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x12,0x2a,0x42,0x5a,0x72,0x8b,0xa2,0xb7,0xa0,0x88,0x6d, 0x56,0x3e,0x26,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1c, 0x2c,0x36,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x3a,0x34,0x29,0x18,0x06,0x00,0x00,0x12, 0x29,0x40,0x53,0x63,0x75,0x88,0x9a,0xaa,0xb7,0x9d,0x86,0x77,0x79,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x60,0x49,0x30,0x16,0x00,0x0c,0x23,0x3a, 0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x90,0xa7,0xb6,0xa0,0x89,0x79, 0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1e,0x00,0x00,0x00,0x03,0x0f,0x24, 0x3c,0x53,0x6a,0x84,0x9d,0x90,0x77,0x60,0x47,0x56,0x6e,0x88,0xa0,0x8e,0x74, 0x5d,0x44,0x2d,0x1b,0x18,0x10,0x03,0x00,0x00,0x00,0x00,0x06,0x18,0x28,0x37, 0x44,0x50,0x5b,0x65,0x6d,0x74,0x77,0x79,0x79,0x79,0x77,0x72,0x6b,0x61,0x56, 0x48,0x38,0x26,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x2c,0x3b, 0x49,0x56,0x61,0x6b,0x72,0x77,0x79,0x79,0x79,0x77,0x71,0x69,0x5f,0x53,0x47, 0x38,0x28,0x16,0x06,0x00,0x00,0x00,0x00,0x06,0x1c,0x34,0x49,0x5a,0x63,0x63, 0x63,0x63,0x63,0x62,0x57,0x45,0x2d,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3d,0x54,0x6a,0x81,0x95, 0xa8,0xb8,0xaa,0x9d,0x96,0x95,0x97,0x88,0x6f,0x58,0x41,0x2a,0x13,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x14,0x2d,0x44,0x5c,0x74,0x8e,0xa5,0xb6,0x9d,0x86, 0x6c,0x53,0x3c,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x16,0x1e,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x37,0x51,0x68, 0x81,0x9a,0xb1,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x1c,0x14,0x06,0x00,0x00,0x00, 0x16,0x2f,0x49,0x5f,0x75,0x89,0x9a,0xab,0xbc,0xba,0xa2,0x93,0x93,0x95,0x96, 0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x79,0x60,0x49,0x30,0x16,0x00,0x0c,0x23, 0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x9b,0xad,0xbb,0xa7,0x98, 0x95,0x95,0x95,0x95,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00,0x0f, 0x27,0x3f,0x56,0x6e,0x88,0xa0,0x8e,0x74,0x5d,0x44,0x58,0x72,0x8b,0xa2,0x8b, 0x72,0x5a,0x41,0x2a,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x16, 0x23,0x30,0x3b,0x46,0x4f,0x57,0x5d,0x61,0x63,0x63,0x63,0x60,0x5c,0x55,0x4c, 0x41,0x35,0x26,0x16,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a, 0x28,0x36,0x41,0x4c,0x55,0x5c,0x60,0x63,0x63,0x63,0x60,0x5a,0x53,0x4a,0x3f, 0x33,0x25,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x28,0x38,0x44,0x49, 0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x21,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x35,0x4a,0x5f,0x72, 0x88,0x96,0xa3,0xaa,0xaf,0xaf,0xac,0xa4,0x8d,0x74,0x5e,0x46,0x30,0x19,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x47,0x5d,0x76,0x90,0xa7,0xaf,0x9d, 0x84,0x6a,0x53,0x3a,0x23,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x21,0x37,0x51, 0x68,0x81,0x9a,0xaf,0xa5,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00,0x00, 0x00,0x16,0x30,0x49,0x60,0x79,0x95,0xab,0xaf,0xaf,0xaf,0xaf,0xaa,0xac,0xad, 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xac,0x95,0x79,0x60,0x49,0x30,0x16,0x00,0x0c, 0x23,0x3a,0x51,0x68,0x81,0x98,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf, 0xaf,0xaf,0xaf,0xaf,0xaa,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00,0x00, 0x12,0x2a,0x42,0x59,0x72,0x8b,0xa2,0x8b,0x72,0x5a,0x44,0x5c,0x74,0x8e,0xa0, 0x89,0x6d,0x56,0x3f,0x27,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x0f,0x1b,0x26,0x30,0x39,0x40,0x45,0x49,0x4c,0x4c,0x4c,0x49,0x45,0x3e, 0x36,0x2c,0x21,0x13,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0x14,0x21,0x2c,0x36,0x3e,0x45,0x49,0x4c,0x4c,0x4b,0x48,0x43,0x3c,0x33, 0x29,0x1f,0x12,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x18,0x26,0x2f, 0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x23,0x13,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x29,0x3e,0x51, 0x63,0x73,0x82,0x8c,0x93,0x95,0x95,0x94,0x90,0x8a,0x79,0x63,0x4c,0x32,0x1b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x30,0x47,0x60,0x77,0x92,0x95,0x95, 0x95,0x84,0x68,0x51,0x39,0x21,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x21,0x37, 0x51,0x68,0x81,0x95,0x95,0x95,0x8b,0x72,0x5b,0x42,0x2b,0x14,0x00,0x00,0x00, 0x00,0x00,0x16,0x30,0x49,0x60,0x79,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x79,0x60,0x49,0x30,0x16,0x00, 0x0c,0x23,0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x79,0x63,0x4c,0x35,0x1e,0x00,0x00,0x00, 0x00,0x15,0x2d,0x44,0x5d,0x74,0x8e,0x95,0x89,0x6d,0x56,0x47,0x5f,0x77,0x90, 0x95,0x86,0x6a,0x53,0x3c,0x24,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x10,0x1a,0x22,0x29,0x2e,0x32,0x32,0x32,0x32,0x32,0x2d, 0x28,0x20,0x17,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0d,0x17,0x20,0x28,0x2e,0x32,0x32,0x32,0x32,0x31,0x2d,0x26, 0x1e,0x15,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0f, 0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x2f, 0x40,0x51,0x5f,0x6a,0x73,0x79,0x79,0x79,0x79,0x77,0x72,0x6a,0x5c,0x48,0x30, 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x30,0x49,0x60,0x77,0x79,0x79, 0x79,0x79,0x79,0x67,0x50,0x37,0x20,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x20, 0x37,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x71,0x5b,0x41,0x2b,0x14,0x00,0x00, 0x00,0x00,0x00,0x16,0x30,0x49,0x60,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x60,0x49,0x30,0x16, 0x00,0x0c,0x23,0x3a,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1e,0x00,0x00, 0x00,0x00,0x16,0x2d,0x46,0x5d,0x75,0x79,0x79,0x79,0x6a,0x53,0x49,0x60,0x77, 0x79,0x79,0x79,0x67,0x50,0x39,0x21,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0c,0x12,0x17,0x1b,0x1b,0x1b,0x1b,0x1a, 0x16,0x11,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x11,0x16,0x1a,0x1b,0x1b,0x1b,0x19,0x15, 0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d, 0x1e,0x2e,0x3d,0x49,0x54,0x5b,0x60,0x63,0x63,0x62,0x5d,0x59,0x52,0x49,0x3a, 0x26,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2b,0x42,0x55,0x62,0x63, 0x63,0x63,0x63,0x63,0x5a,0x47,0x32,0x1b,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x1c,0x32,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x60,0x51,0x3b,0x26,0x10,0x00, 0x00,0x00,0x00,0x00,0x13,0x2b,0x42,0x55,0x62,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x55,0x42,0x2b, 0x13,0x00,0x09,0x1f,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x30,0x1a,0x00, 0x00,0x00,0x00,0x13,0x29,0x40,0x53,0x62,0x63,0x63,0x63,0x5c,0x4b,0x42,0x55, 0x62,0x63,0x63,0x63,0x5a,0x49,0x32,0x1c,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x1b,0x29,0x33,0x3d,0x43,0x48,0x49,0x49,0x49,0x46,0x41,0x3b,0x33, 0x27,0x16,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1f,0x33,0x41,0x49, 0x49,0x49,0x49,0x49,0x49,0x44,0x37,0x26,0x10,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x12,0x26,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x48,0x3e,0x2d,0x1b,0x07, 0x00,0x00,0x00,0x00,0x00,0x09,0x1f,0x33,0x41,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33, 0x1f,0x09,0x00,0x00,0x15,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x24,0x10, 0x00,0x00,0x00,0x00,0x09,0x1d,0x31,0x40,0x49,0x49,0x49,0x49,0x45,0x3a,0x33, 0x41,0x49,0x49,0x49,0x49,0x44,0x38,0x26,0x12,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x13,0x1e,0x25,0x2c,0x30,0x30,0x30,0x30,0x2e,0x29,0x23, 0x1c,0x12,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2a, 0x30,0x30,0x30,0x30,0x30,0x30,0x2d,0x22,0x14,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x2f,0x28,0x1b,0x0b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f,0x2a,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2a, 0x1f,0x0f,0x00,0x00,0x00,0x06,0x16,0x23,0x2d,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21,0x13, 0x02,0x00,0x00,0x00,0x00,0x00,0x0d,0x1e,0x29,0x2f,0x30,0x30,0x30,0x2d,0x25, 0x1f,0x2a,0x30,0x30,0x30,0x30,0x2d,0x23,0x14,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0e,0x13,0x16,0x16,0x16,0x16,0x15,0x11, 0x0b,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x14,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x0e,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x0f,0x16,0x19,0x19,0x19,0x19,0x19,0x18,0x13,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x12,0x16,0x16,0x16,0x16, 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, 0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0d, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x11,0x16,0x16,0x16,0x16,0x14, 0x0e,0x09,0x12,0x16,0x16,0x16,0x16,0x14,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x05,0x04, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x05,0x04, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, 0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02, 0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x13,0x18,0x1b,0x1e,0x1e, 0x1b,0x18,0x13,0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0f,0x14,0x19,0x1b,0x1e,0x1e, 0x1b,0x18,0x13,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x0c,0x12,0x17,0x1b,0x1c,0x1e,0x1e,0x1b,0x18,0x13, 0x0b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x11,0x19,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x0f,0x03,0x00,0x06,0x11,0x19,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x18,0x0f,0x02,0x00,0x00,0x00,0x00,0x00,0x06,0x0c,0x0f,0x0f, 0x0f,0x0f,0x0f,0x0c,0x05,0x0a,0x11,0x16,0x1a,0x1b,0x1b,0x1a,0x16,0x10,0x08, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0c,0x0f,0x0f,0x0f, 0x0f,0x0f,0x0b,0x06,0x0e,0x15,0x19,0x1b,0x1b,0x19,0x16,0x10,0x08,0x00,0x00, 0x04,0x0c,0x14,0x18,0x1b,0x1b,0x1a,0x17,0x11,0x09,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x12,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x12,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x13,0x09,0x00,0x00, 0x08,0x12,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x11,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x18,0x21,0x29,0x2f,0x34,0x35, 0x35,0x34,0x30,0x2b,0x23,0x19,0x0f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x14,0x1d,0x25,0x2c,0x31,0x34,0x35, 0x35,0x34,0x30,0x2a,0x22,0x18,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x10,0x1a,0x22,0x29,0x2e,0x32,0x35,0x35,0x35,0x33,0x2f, 0x29,0x21,0x17,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1a,0x28,0x31, 0x35,0x35,0x35,0x35,0x35,0x35,0x30,0x25,0x15,0x07,0x18,0x26,0x31,0x35,0x35, 0x35,0x35,0x35,0x35,0x2f,0x24,0x15,0x03,0x00,0x00,0x00,0x10,0x1d,0x25,0x28, 0x28,0x28,0x28,0x28,0x24,0x1c,0x20,0x28,0x2e,0x32,0x32,0x32,0x32,0x2d,0x27, 0x1f,0x14,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1c,0x25,0x28,0x28, 0x28,0x28,0x28,0x23,0x1b,0x24,0x2c,0x31,0x32,0x32,0x32,0x2d,0x27,0x1e,0x12, 0x0e,0x19,0x23,0x2b,0x30,0x32,0x32,0x32,0x2e,0x28,0x1f,0x14,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x21,0x2d,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x31,0x29,0x1d,0x0b,0x00,0x00, 0x00,0x00,0x0b,0x1d,0x29,0x31,0x32,0x32,0x32,0x32,0x32,0x32,0x2a,0x1e,0x0d, 0x0b,0x1d,0x29,0x31,0x32,0x32,0x32,0x32,0x32,0x31,0x28,0x1b,0x09,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x15,0x22,0x2d,0x38,0x40,0x46,0x4b, 0x4c,0x4c,0x4b,0x47,0x41,0x39,0x2f,0x23,0x15,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x11,0x1e,0x29,0x33,0x3b,0x43,0x48,0x4b, 0x4c,0x4c,0x4b,0x47,0x41,0x38,0x2d,0x21,0x15,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x11,0x1d,0x26,0x30,0x39,0x40,0x45,0x49,0x4c,0x4c,0x4c,0x4a, 0x46,0x40,0x37,0x2d,0x1f,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x16,0x29,0x3a, 0x47,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x45,0x37,0x25,0x16,0x29,0x3a,0x47,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x37,0x23,0x0f,0x00,0x00,0x0d,0x21,0x30,0x3b, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3b,0x2f,0x37,0x3f,0x46,0x4a,0x4c,0x4c,0x49,0x45, 0x3e,0x35,0x29,0x1b,0x0c,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x2f,0x3b,0x3f, 0x3f,0x3f,0x3f,0x3f,0x39,0x31,0x3b,0x44,0x49,0x4c,0x4c,0x4a,0x46,0x3e,0x33, 0x27,0x22,0x2f,0x3a,0x43,0x49,0x4c,0x4c,0x4a,0x46,0x3f,0x35,0x29,0x1b,0x0a, 0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x21,0x35,0x45,0x4b,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4a,0x3f,0x2d,0x1a,0x05, 0x00,0x00,0x06,0x1a,0x2f,0x3f,0x4a,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x40,0x31, 0x1d,0x1b,0x2f,0x3f,0x4a,0x4c,0x4c,0x4c,0x4c,0x4c,0x49,0x3d,0x2d,0x18,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1a,0x29,0x37,0x42,0x4e,0x57,0x5d, 0x63,0x65,0x65,0x63,0x5e,0x58,0x4f,0x44,0x37,0x28,0x18,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x16,0x25,0x32,0x3e,0x49,0x52,0x5a,0x60, 0x63,0x65,0x65,0x63,0x5e,0x57,0x4e,0x42,0x37,0x28,0x1a,0x0a,0x00,0x00,0x00, 0x00,0x00,0x0d,0x1a,0x26,0x31,0x3c,0x46,0x4f,0x57,0x5d,0x61,0x63,0x65,0x65, 0x63,0x5d,0x56,0x4c,0x41,0x33,0x23,0x12,0x00,0x00,0x00,0x00,0x07,0x20,0x35, 0x4a,0x5c,0x65,0x65,0x65,0x65,0x65,0x65,0x59,0x46,0x31,0x1f,0x34,0x4a,0x5c, 0x65,0x65,0x65,0x65,0x65,0x65,0x59,0x45,0x2e,0x18,0x00,0x04,0x19,0x30,0x43, 0x52,0x58,0x58,0x58,0x58,0x58,0x51,0x41,0x4c,0x56,0x5d,0x62,0x63,0x63,0x62, 0x5d,0x54,0x4a,0x3d,0x2e,0x1d,0x0b,0x00,0x00,0x00,0x00,0x17,0x2e,0x41,0x52, 0x58,0x58,0x58,0x58,0x58,0x4e,0x46,0x51,0x5a,0x60,0x63,0x63,0x62,0x5d,0x54, 0x49,0x3a,0x36,0x44,0x50,0x5a,0x60,0x63,0x63,0x62,0x5d,0x55,0x4a,0x3d,0x2c, 0x1c,0x09,0x00,0x00,0x00,0x00,0x00,0x16,0x2d,0x43,0x59,0x65,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x62,0x51,0x3b,0x24, 0x0e,0x00,0x00,0x0e,0x24,0x3b,0x51,0x61,0x65,0x65,0x65,0x65,0x65,0x62,0x53, 0x3f,0x2a,0x27,0x3d,0x51,0x61,0x65,0x65,0x65,0x65,0x65,0x5f,0x4f,0x39,0x22, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1a,0x2c,0x3b,0x4a,0x57,0x63,0x6d, 0x74,0x79,0x7c,0x7c,0x79,0x74,0x6e,0x64,0x58,0x4a,0x3a,0x28,0x17,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x18,0x28,0x38,0x46,0x53,0x5f,0x68,0x70, 0x76,0x79,0x7c,0x7c,0x79,0x74,0x6d,0x62,0x57,0x4a,0x3b,0x2a,0x18,0x05,0x00, 0x00,0x00,0x0a,0x1d,0x2e,0x3a,0x47,0x52,0x5b,0x65,0x6d,0x74,0x77,0x7c,0x7c, 0x7c,0x79,0x74,0x6c,0x62,0x55,0x45,0x33,0x22,0x0f,0x00,0x00,0x00,0x0a,0x23, 0x3a,0x51,0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x65,0x4c,0x35,0x23,0x3a,0x51, 0x67,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x4c,0x32,0x1b,0x00,0x09,0x1f,0x38, 0x4e,0x63,0x6f,0x6f,0x6f,0x6f,0x6f,0x63,0x55,0x62,0x6c,0x74,0x79,0x7c,0x7c, 0x79,0x74,0x6b,0x5f,0x50,0x3f,0x2d,0x1a,0x06,0x00,0x00,0x04,0x1d,0x36,0x4c, 0x63,0x6f,0x6f,0x6f,0x6f,0x6e,0x5f,0x5a,0x67,0x72,0x79,0x7c,0x7c,0x79,0x74, 0x6a,0x5c,0x4c,0x49,0x58,0x65,0x70,0x77,0x7c,0x7c,0x79,0x74,0x6b,0x5f,0x50, 0x3e,0x2b,0x18,0x02,0x00,0x00,0x00,0x02,0x19,0x32,0x49,0x62,0x7b,0x7c,0x7c, 0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x72,0x58,0x41, 0x28,0x11,0x00,0x00,0x11,0x28,0x41,0x58,0x72,0x7c,0x7c,0x7c,0x7c,0x7c,0x75, 0x61,0x4c,0x37,0x32,0x48,0x5d,0x73,0x7c,0x7c,0x7c,0x7c,0x7c,0x6f,0x56,0x3f, 0x26,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x2b,0x3c,0x4c,0x5c,0x6b,0x77, 0x84,0x8c,0x93,0x95,0x95,0x93,0x8d,0x86,0x79,0x6b,0x5c,0x4a,0x38,0x26,0x12, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x16,0x28,0x38,0x4a,0x59,0x67,0x73,0x7c, 0x88,0x8e,0x93,0x95,0x95,0x93,0x8c,0x84,0x76,0x6b,0x5c,0x4c,0x39,0x23,0x0e, 0x00,0x00,0x00,0x16,0x2b,0x3f,0x4f,0x5b,0x67,0x71,0x7b,0x86,0x8b,0x90,0x94, 0x95,0x95,0x92,0x8c,0x84,0x75,0x67,0x55,0x43,0x30,0x1c,0x07,0x00,0x00,0x0a, 0x23,0x3a,0x51,0x68,0x81,0x98,0x98,0x98,0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a, 0x51,0x68,0x84,0x98,0x98,0x98,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x8b,0x8b,0x8b,0x81,0x68,0x69,0x76,0x84,0x8d,0x93,0x95, 0x95,0x93,0x8c,0x81,0x72,0x60,0x4e,0x3b,0x26,0x11,0x00,0x00,0x05,0x1e,0x37, 0x4e,0x68,0x81,0x8b,0x8b,0x8b,0x7c,0x63,0x6e,0x7c,0x89,0x92,0x95,0x95,0x93, 0x8b,0x81,0x70,0x5e,0x5c,0x6b,0x79,0x88,0x90,0x95,0x96,0x93,0x8c,0x82,0x72, 0x60,0x4e,0x39,0x24,0x0e,0x00,0x00,0x00,0x02,0x19,0x32,0x49,0x63,0x7c,0x95, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x8e,0x72,0x58, 0x42,0x28,0x11,0x00,0x00,0x0f,0x26,0x3d,0x53,0x69,0x7c,0x92,0x98,0x98,0x98, 0x84,0x6d,0x59,0x43,0x3e,0x53,0x69,0x81,0x95,0x98,0x98,0x91,0x7b,0x67,0x51, 0x3b,0x23,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x26,0x3a,0x4c,0x5e,0x6e,0x81, 0x8d,0x9a,0xa3,0xaa,0xac,0xac,0xaa,0xa4,0x9b,0x8f,0x7c,0x6d,0x5b,0x48,0x33, 0x1f,0x09,0x00,0x00,0x00,0x00,0x00,0x11,0x25,0x38,0x4a,0x5b,0x6b,0x79,0x89, 0x95,0x9e,0xa5,0xaa,0xae,0xad,0xaa,0xa3,0x99,0x8d,0x7c,0x6e,0x5a,0x41,0x2a, 0x11,0x00,0x00,0x06,0x1c,0x35,0x4b,0x62,0x70,0x7c,0x89,0x92,0x9b,0xa3,0xa8, 0xac,0xaf,0xad,0xaa,0xa3,0x98,0x8a,0x77,0x65,0x52,0x3d,0x27,0x11,0x00,0x00, 0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xaf,0xac,0x95,0x7c,0x65,0x4c,0x35,0x23, 0x3a,0x51,0x68,0x84,0x9a,0xaf,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xa2,0x9b,0x84,0x6d,0x7c,0x8b,0x99,0xa3,0xaa, 0xaf,0xae,0xaa,0xa2,0x94,0x84,0x6e,0x5b,0x47,0x31,0x1b,0x06,0x00,0x05,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xa2,0x98,0x81,0x70,0x82,0x91,0x9e,0xa8,0xae,0xaf, 0xaa,0xa1,0x93,0x82,0x6d,0x6e,0x81,0x8f,0x9c,0xa7,0xad,0xaf,0xab,0xa3,0x95, 0x84,0x70,0x5a,0x45,0x2f,0x18,0x01,0x00,0x00,0x02,0x19,0x32,0x49,0x63,0x7c, 0x95,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xac,0xb1,0xb1,0xb1,0xa5,0x8e,0x72, 0x58,0x42,0x28,0x11,0x00,0x00,0x07,0x1d,0x32,0x47,0x5b,0x70,0x86,0x9a,0xae, 0xa5,0x90,0x79,0x65,0x50,0x48,0x5f,0x73,0x8b,0xa0,0xae,0x9a,0x86,0x6e,0x5a, 0x45,0x30,0x1b,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x1e,0x33,0x48,0x5b,0x6e,0x82, 0x92,0xa1,0xad,0xa2,0x98,0x94,0x93,0x97,0x9e,0xab,0xa1,0x90,0x7c,0x69,0x54, 0x3f,0x29,0x14,0x00,0x00,0x00,0x00,0x09,0x1e,0x32,0x46,0x59,0x6b,0x7c,0x8f, 0x9c,0xaa,0xaf,0xa4,0x9d,0x9a,0x98,0x9b,0xa3,0xa8,0x95,0x82,0x6e,0x59,0x41, 0x2a,0x13,0x00,0x00,0x07,0x1e,0x37,0x50,0x67,0x81,0x92,0x9d,0xa7,0xa6,0x9e, 0x9a,0x98,0x98,0x9c,0xa5,0xb3,0xab,0x9b,0x88,0x72,0x5d,0x48,0x31,0x1b,0x04, 0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x65,0x4c,0x35, 0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0x9d,0x87,0x81,0x90,0xa0,0xa0,0x9d, 0x9d,0x9f,0xa6,0xb3,0xb6,0xa5,0x92,0x7b,0x66,0x51,0x3a,0x24,0x0e,0x00,0x05, 0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0x9b,0x84,0x84,0x96,0xa4,0x9d,0x9d,0x9d, 0xa5,0xb2,0xb5,0xa4,0x90,0x79,0x82,0x92,0xa2,0x9e,0x9d,0x9d,0xa4,0xb1,0xb8, 0xa6,0x92,0x7c,0x65,0x4f,0x39,0x21,0x09,0x00,0x00,0x02,0x19,0x32,0x49,0x63, 0x7c,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x96,0xa9,0xbf,0xab,0x98,0x84, 0x6d,0x57,0x40,0x28,0x10,0x00,0x00,0x00,0x11,0x25,0x39,0x4f,0x63,0x77,0x8d, 0xa1,0xb1,0x9c,0x88,0x72,0x5c,0x53,0x69,0x81,0x96,0xab,0xa2,0x8d,0x77,0x62, 0x4e,0x39,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x29,0x3f,0x54,0x69,0x7c, 0x91,0xa4,0xaa,0x9a,0x8c,0x82,0x7b,0x79,0x81,0x8a,0x9a,0xaa,0x9f,0x8b,0x75, 0x60,0x49,0x33,0x1c,0x06,0x00,0x00,0x00,0x14,0x29,0x3e,0x53,0x67,0x79,0x8f, 0x9f,0xaf,0xaa,0x9b,0x8f,0x86,0x82,0x81,0x86,0x8f,0x9a,0x88,0x72,0x60,0x4d, 0x39,0x23,0x0e,0x00,0x00,0x04,0x1b,0x32,0x48,0x5d,0x73,0x89,0x9e,0x9a,0x90, 0x88,0x84,0x81,0x81,0x86,0x91,0xa1,0xb3,0xaa,0x94,0x7c,0x67,0x51,0x39,0x22, 0x0c,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x65,0x4c, 0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xa4,0x93,0x94,0xa0,0x93,0x8a, 0x84,0x84,0x88,0x92,0xa1,0xb3,0xb2,0x9c,0x86,0x6e,0x58,0x41,0x2a,0x14,0x00, 0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xa2,0x91,0x96,0x9b,0x90,0x87,0x84, 0x87,0x90,0xa1,0xb3,0xb2,0x9b,0x89,0x92,0x9d,0x91,0x88,0x84,0x86,0x90,0x9f, 0xb1,0xb4,0x9d,0x87,0x6e,0x56,0x40,0x27,0x0f,0x00,0x00,0x02,0x19,0x32,0x49, 0x62,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x8c,0xa5,0xb1,0x9e,0x89, 0x74,0x60,0x4c,0x37,0x21,0x0a,0x00,0x00,0x00,0x04,0x18,0x2d,0x41,0x56,0x6a, 0x81,0x94,0xa9,0xa9,0x94,0x81,0x69,0x5e,0x74,0x8b,0xa1,0xab,0x95,0x81,0x6b, 0x56,0x41,0x2c,0x17,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1d,0x33,0x49,0x5f,0x74, 0x8b,0x9f,0xae,0x9b,0x88,0x77,0x6a,0x63,0x63,0x68,0x75,0x88,0x9c,0xac,0x96, 0x81,0x69,0x52,0x3b,0x24,0x0d,0x00,0x00,0x07,0x1d,0x33,0x49,0x5e,0x73,0x89, 0x9c,0xaf,0xaa,0x9a,0x88,0x79,0x6e,0x68,0x68,0x6d,0x77,0x87,0x77,0x64,0x52, 0x3f,0x2c,0x18,0x04,0x00,0x00,0x00,0x13,0x28,0x3d,0x52,0x68,0x7c,0x90,0x84, 0x79,0x70,0x6a,0x65,0x68,0x6e,0x81,0x92,0xa6,0xb4,0x9e,0x87,0x6f,0x58,0x40, 0x28,0x11,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c,0x65, 0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb5,0xab,0x9b,0x8d,0x7c, 0x72,0x6a,0x6a,0x70,0x7c,0x92,0xa6,0xba,0xa3,0x8c,0x74,0x5d,0x46,0x2f,0x18, 0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xb3,0xa8,0x98,0x88,0x79,0x6e, 0x6a,0x6e,0x7b,0x91,0xa6,0xbc,0xaa,0xa2,0x9a,0x89,0x79,0x6f,0x6a,0x6d,0x7b, 0x90,0xa4,0xbb,0xa5,0x8e,0x74,0x5d,0x45,0x2c,0x14,0x00,0x00,0x00,0x14,0x2b, 0x40,0x53,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x70,0x86,0x9a,0xae,0xa3,0x90, 0x79,0x67,0x52,0x3e,0x29,0x15,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x34,0x49, 0x5d,0x72,0x88,0x9c,0xb0,0xa0,0x8b,0x74,0x68,0x81,0x95,0xac,0x9e,0x89,0x73, 0x5f,0x4a,0x35,0x20,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x24,0x3b,0x52,0x69, 0x81,0x96,0xab,0xa3,0x8d,0x77,0x65,0x56,0x4d,0x4c,0x53,0x65,0x7b,0x92,0xa8, 0xa0,0x89,0x70,0x59,0x41,0x2a,0x13,0x00,0x00,0x0f,0x25,0x3c,0x52,0x68,0x7c, 0x94,0xa9,0xb2,0x9d,0x8a,0x75,0x65,0x58,0x51,0x51,0x58,0x64,0x72,0x69,0x56, 0x43,0x31,0x1d,0x0b,0x00,0x00,0x00,0x00,0x07,0x1d,0x32,0x47,0x5c,0x72,0x79, 0x6e,0x63,0x5a,0x53,0x4e,0x51,0x5c,0x70,0x87,0x9d,0xb4,0xa5,0x8e,0x74,0x5d, 0x45,0x2d,0x15,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x7c, 0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xb0,0x9a,0x89,0x79, 0x6a,0x5c,0x53,0x51,0x5c,0x70,0x89,0x9f,0xb5,0xa8,0x90,0x79,0x62,0x49,0x32, 0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xac,0x98,0x86,0x74,0x64, 0x58,0x51,0x59,0x6e,0x87,0x9e,0xb5,0xb0,0x9a,0x88,0x75,0x67,0x59,0x51,0x59, 0x6d,0x86,0x9c,0xb4,0xaa,0x93,0x77,0x60,0x48,0x30,0x16,0x00,0x00,0x00,0x09, 0x1e,0x2f,0x3e,0x44,0x44,0x44,0x44,0x44,0x56,0x6a,0x81,0x93,0xa7,0xaa,0x96, 0x82,0x6c,0x58,0x44,0x30,0x1c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x27, 0x3b,0x50,0x64,0x79,0x8f,0xa3,0xac,0x96,0x81,0x73,0x8a,0xa0,0xa6,0x92,0x7b, 0x67,0x52,0x3d,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x2b,0x43,0x5a, 0x71,0x89,0xa0,0xb0,0x9a,0x84,0x6b,0x57,0x4c,0x4c,0x4c,0x4c,0x5b,0x72,0x8b, 0xa2,0xa6,0x8f,0x75,0x5d,0x46,0x2f,0x17,0x00,0x00,0x15,0x2c,0x43,0x5a,0x70, 0x88,0x9e,0xb4,0xa8,0x92,0x7b,0x68,0x54,0x44,0x3a,0x39,0x43,0x51,0x5b,0x57, 0x47,0x35,0x22,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x27,0x3b,0x51,0x61, 0x64,0x59,0x4e,0x4b,0x50,0x56,0x5b,0x5d,0x67,0x81,0x98,0xaf,0xa9,0x91,0x77, 0x60,0x48,0x30,0x18,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95, 0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79, 0x65,0x57,0x48,0x3c,0x3d,0x53,0x6a,0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c, 0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x62, 0x52,0x43,0x3a,0x50,0x67,0x81,0x99,0xb1,0xac,0x93,0x79,0x63,0x53,0x44,0x39, 0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x49,0x31,0x19,0x00,0x00,0x00, 0x00,0x0d,0x1b,0x26,0x2b,0x2b,0x2b,0x3b,0x50,0x63,0x77,0x8d,0xa1,0xb0,0x9b, 0x88,0x72,0x5e,0x4a,0x36,0x21,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1a,0x2e,0x43,0x58,0x6c,0x82,0x96,0xab,0xa3,0x8d,0x7c,0x94,0xaa,0x9a,0x86, 0x6e,0x5a,0x45,0x30,0x1c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x48, 0x5f,0x77,0x90,0xa7,0xaa,0x93,0x79,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x6d, 0x86,0xa0,0xaa,0x93,0x79,0x62,0x49,0x32,0x19,0x00,0x02,0x1a,0x31,0x48,0x60, 0x76,0x8e,0xa6,0xb7,0xa0,0x89,0x72,0x5c,0x47,0x33,0x24,0x23,0x30,0x3c,0x41, 0x3f,0x35,0x25,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1b,0x2f,0x41, 0x4c,0x4e,0x52,0x5a,0x62,0x67,0x6d,0x72,0x74,0x79,0x7c,0x95,0xaf,0xac,0x93, 0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93,0x79, 0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95, 0x79,0x63,0x4c,0x35,0x27,0x38,0x50,0x68,0x81,0x98,0xaf,0xac,0x95,0x79,0x63, 0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77, 0x5d,0x44,0x2f,0x34,0x4c,0x65,0x7c,0x98,0xaf,0xac,0x93,0x79,0x60,0x47,0x31, 0x32,0x49,0x63,0x7c,0x95,0xaf,0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00, 0x00,0x00,0x00,0x05,0x0e,0x11,0x21,0x35,0x4a,0x5d,0x72,0x88,0x9b,0xaf,0xa2, 0x8f,0x79,0x64,0x50,0x3c,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0d,0x21,0x36,0x4a,0x5f,0x73,0x89,0x9e,0xae,0x9b,0x96,0xa1,0xa3,0x8d, 0x77,0x62,0x4e,0x39,0x24,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x33, 0x4b,0x63,0x79,0x94,0xac,0xa7,0x90,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x86,0x9d,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x05,0x1d,0x34,0x4c, 0x63,0x79,0x93,0xab,0xb2,0x9b,0x84,0x6c,0x55,0x3d,0x27,0x12,0x0f,0x1c,0x26, 0x2b,0x29,0x21,0x14,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x25,0x35, 0x44,0x51,0x5d,0x68,0x70,0x77,0x81,0x86,0x8a,0x8e,0x92,0x95,0xa1,0xb4,0xac, 0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac,0x93, 0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac, 0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79, 0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90, 0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xac,0x93,0x79,0x60,0x47, 0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1b,0x2f,0x43,0x58,0x6b,0x81,0x94,0xa9,0xa8, 0x94,0x81,0x6b,0x57,0x43,0x2e,0x1a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x14,0x29,0x3e,0x52,0x67,0x7b,0x91,0xa7,0xb1,0xac,0xab,0x96, 0x81,0x6b,0x56,0x41,0x2d,0x18,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1d, 0x35,0x4c,0x65,0x7c,0x98,0xaf,0xad,0x9b,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x97,0xa5,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x07,0x1e,0x35, 0x4e,0x65,0x7c,0x96,0xaf,0xb1,0x98,0x81,0x68,0x50,0x38,0x21,0x0a,0x00,0x07, 0x0e,0x14,0x10,0x0b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x21,0x35, 0x47,0x57,0x65,0x72,0x7c,0x88,0x90,0x97,0x9c,0xa2,0xa1,0x9d,0x9a,0xa4,0xb6, 0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1,0xac, 0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1, 0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95, 0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa, 0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xac,0x93,0x79,0x60, 0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79,0x63,0x49,0x32,0x19, 0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x29,0x3d,0x51,0x65,0x79,0x8f,0xa3,0xae, 0x9a,0x87,0x71,0x5c,0x49,0x34,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x11,0x26,0x3b,0x4f,0x64,0x79,0x8f,0xa5,0xbc,0xbb,0xa2, 0x8b,0x73,0x5f,0x4a,0x35,0x20,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, 0x1e,0x35,0x4e,0x65,0x81,0x98,0xb0,0xb1,0xa2,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d, 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x07,0x1e, 0x37,0x4e,0x68,0x81,0x98,0xaf,0xaf,0x98,0x7c,0x65,0x4e,0x37,0x1f,0x07,0x00, 0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x19,0x2f, 0x43,0x56,0x67,0x77,0x88,0x94,0x9e,0xa6,0x9e,0x96,0x90,0x8a,0x86,0x84,0x96, 0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a,0xb1, 0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a, 0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac, 0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4, 0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xac,0x93,0x79, 0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x00,0x00,0x00,0x0e,0x23,0x37,0x4b,0x5f,0x74,0x89,0x9d,0xb1, 0xa1,0x8c,0x77,0x63,0x4f,0x3b,0x26,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0a,0x1f,0x33,0x48,0x5c,0x71,0x87,0x9b,0xac,0xa5,0xaa, 0xa7,0x94,0x81,0x6a,0x56,0x41,0x2d,0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x1d,0x35,0x4d,0x65,0x7c,0x98,0xaf,0xa8,0x92,0x86,0x86,0x86,0x86,0x86, 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x79,0x61,0x49,0x32,0x19,0x00,0x07, 0x1e,0x36,0x4e,0x65,0x7c,0x97,0xaf,0xb0,0x98,0x81,0x68,0x50,0x38,0x21,0x09, 0x00,0x06,0x11,0x17,0x19,0x16,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x0d,0x23, 0x39,0x4f,0x64,0x77,0x8b,0x9b,0xa9,0xa1,0x93,0x88,0x81,0x77,0x72,0x6d,0x7c, 0x95,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x7c,0x65,0x4c,0x35,0x23,0x3a,0x51,0x68,0x84,0x9a, 0xb1,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81, 0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98,0xaf, 0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a, 0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xac,0x93, 0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x00,0x00,0x09,0x1c,0x31,0x45,0x59,0x6d,0x84,0x96,0xab, 0xa7,0x92,0x7c,0x69,0x55,0x41,0x2d,0x18,0x14,0x14,0x10,0x07,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x17,0x2b,0x40,0x55,0x69,0x81,0x94,0xa9,0x9a,0x8b, 0x98,0xac,0xa1,0x8d,0x77,0x63,0x4f,0x3a,0x26,0x11,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x1b,0x34,0x4c,0x63,0x7b,0x95,0xac,0xaa,0x93,0x79,0x6a,0x6a,0x6a, 0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x5a,0x43,0x2d,0x16,0x00, 0x05,0x1d,0x35,0x4c,0x64,0x7b,0x93,0xac,0xb2,0x9b,0x84,0x6b,0x55,0x3d,0x27, 0x11,0x0d,0x1a,0x27,0x30,0x32,0x2d,0x23,0x13,0x02,0x00,0x00,0x00,0x00,0x14, 0x2b,0x42,0x5a,0x70,0x87,0x9b,0xad,0xa2,0x8f,0x7c,0x71,0x68,0x60,0x5a,0x63, 0x7c,0x95,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x0a,0x23,0x3a,0x51, 0x68,0x81,0x99,0xb0,0xac,0x95,0x7c,0x65,0x4e,0x36,0x2a,0x3a,0x51,0x68,0x84, 0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68, 0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81,0x98, 0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68,0x81, 0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf,0xac, 0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79,0x63, 0x49,0x32,0x19,0x00,0x00,0x00,0x02,0x17,0x2b,0x3f,0x53,0x67,0x7b,0x90,0xa5, 0xad,0x99,0x86,0x70,0x5b,0x47,0x33,0x2d,0x2d,0x2d,0x2d,0x28,0x1d,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f,0x23,0x38,0x4c,0x62,0x75,0x8c,0xa1,0xa4,0x8f, 0x77,0x8a,0xa0,0xae,0x9a,0x86,0x70,0x5c,0x48,0x33,0x1f,0x0a,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x18,0x31,0x48,0x60,0x77,0x90,0xa7,0xae,0x98,0x81,0x69,0x53, 0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x48,0x38,0x23,0x0e, 0x00,0x02,0x1b,0x32,0x49,0x60,0x77,0x90,0xa7,0xb7,0xa0,0x89,0x72,0x5c,0x46, 0x32,0x24,0x22,0x2d,0x3b,0x46,0x49,0x42,0x35,0x24,0x10,0x00,0x00,0x00,0x01, 0x19,0x31,0x49,0x60,0x77,0x90,0xa6,0xad,0x97,0x81,0x6c,0x5c,0x51,0x49,0x4c, 0x63,0x7c,0x95,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x09,0x21,0x38, 0x4e,0x65,0x7c,0x96,0xaf,0xaf,0x98,0x81,0x68,0x51,0x3a,0x3e,0x4c,0x5c,0x6e, 0x84,0x9a,0xb1,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51, 0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65,0x81, 0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e,0x68, 0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98,0xaf, 0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95,0x79, 0x63,0x49,0x32,0x19,0x00,0x00,0x00,0x11,0x25,0x39,0x4d,0x62,0x75,0x8b,0x9e, 0xb3,0x9f,0x8b,0x75,0x62,0x4e,0x47,0x47,0x47,0x47,0x47,0x46,0x3f,0x31,0x1e, 0x09,0x00,0x00,0x00,0x00,0x07,0x1c,0x30,0x45,0x5a,0x6e,0x84,0x99,0xad,0x99, 0x84,0x6c,0x7c,0x93,0xa7,0xa7,0x93,0x7c,0x69,0x55,0x40,0x2c,0x18,0x04,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x14,0x2c,0x43,0x5b,0x72,0x8a,0xa0,0xb6,0x9f,0x89,0x72, 0x5e,0x4b,0x3d,0x3c,0x3c,0x3c,0x40,0x4a,0x55,0x54,0x48,0x3c,0x35,0x28,0x16, 0x03,0x00,0x00,0x16,0x2d,0x44,0x5b,0x72,0x89,0xa0,0xb6,0xa8,0x92,0x7b,0x67, 0x53,0x44,0x3a,0x3a,0x41,0x4e,0x5b,0x60,0x57,0x45,0x31,0x1d,0x09,0x00,0x00, 0x03,0x1b,0x33,0x4c,0x63,0x7c,0x95,0xad,0xaa,0x91,0x77,0x60,0x4a,0x3d,0x40, 0x4e,0x63,0x7c,0x95,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x07,0x1e, 0x35,0x4e,0x65,0x7b,0x93,0xaa,0xb2,0x9c,0x86,0x6e,0x5b,0x53,0x55,0x5f,0x6e, 0x81,0x90,0xa3,0xb7,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a, 0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e,0x65, 0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37,0x4e, 0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c,0x98, 0xaf,0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf,0x95, 0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x0a,0x1f,0x33,0x47,0x5b,0x70,0x84,0x99, 0xac,0xa5,0x91,0x7c,0x68,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x53,0x40, 0x2a,0x14,0x00,0x00,0x00,0x00,0x14,0x29,0x3e,0x52,0x67,0x7b,0x91,0xa6,0xa4, 0x8e,0x77,0x61,0x70,0x87,0x9b,0xb1,0xa1,0x8c,0x76,0x62,0x4e,0x39,0x25,0x11, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f,0x25,0x3d,0x54,0x6a,0x81,0x98,0xac,0xaa,0x94, 0x81,0x6d,0x5e,0x53,0x4d,0x4c,0x4f,0x56,0x60,0x6b,0x6b,0x58,0x42,0x2d,0x18, 0x06,0x00,0x00,0x00,0x10,0x27,0x3d,0x54,0x6a,0x81,0x98,0xac,0xb2,0x9c,0x89, 0x75,0x64,0x58,0x51,0x51,0x57,0x62,0x6e,0x79,0x65,0x52,0x3e,0x2a,0x16,0x02, 0x00,0x05,0x1b,0x35,0x4c,0x65,0x7c,0x97,0xaf,0xaa,0x90,0x77,0x60,0x4e,0x4d, 0x54,0x62,0x70,0x82,0x96,0xaf,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x04, 0x1b,0x32,0x49,0x60,0x77,0x90,0xa6,0xba,0xa4,0x90,0x7c,0x6f,0x6a,0x6d,0x74, 0x82,0x90,0xa1,0xa5,0xb4,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21, 0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37,0x4e, 0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e,0x37, 0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63,0x7c, 0x98,0xaf,0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac,0xaf, 0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x00,0x15,0x2c,0x41,0x55,0x69,0x7c,0x92, 0xa7,0xb4,0x9b,0x84,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x61, 0x49,0x2f,0x19,0x00,0x00,0x00,0x0c,0x21,0x36,0x4a,0x5f,0x73,0x89,0x9e,0xae, 0x99,0x84,0x6c,0x57,0x64,0x79,0x8f,0xa3,0xae,0x9a,0x86,0x70,0x5b,0x47,0x32, 0x1f,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x35,0x4a,0x61,0x75,0x8b,0xa0,0xb3, 0xa2,0x90,0x81,0x72,0x69,0x65,0x63,0x65,0x6b,0x74,0x81,0x77,0x63,0x4e,0x38, 0x23,0x0e,0x00,0x00,0x00,0x09,0x20,0x35,0x4b,0x61,0x75,0x8c,0xa1,0xb3,0xaa, 0x98,0x88,0x79,0x6e,0x69,0x68,0x6d,0x76,0x84,0x88,0x72,0x5f,0x4b,0x37,0x23, 0x0e,0x00,0x02,0x1b,0x32,0x4b,0x63,0x7b,0x94,0xac,0xad,0x97,0x81,0x6e,0x65, 0x65,0x6a,0x75,0x84,0x93,0xa4,0xb6,0xac,0x95,0x79,0x63,0x49,0x32,0x19,0x00, 0x00,0x17,0x2e,0x45,0x5b,0x71,0x89,0x9e,0xb4,0xb1,0x9f,0x91,0x88,0x84,0x86, 0x8b,0x96,0x9d,0x8c,0x92,0xa7,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a, 0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21,0x37, 0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05,0x1e, 0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c,0x63, 0x7c,0x98,0xaf,0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95,0xac, 0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x02,0x1b,0x33,0x4b,0x62,0x77,0x8c, 0xa1,0xb5,0xb8,0xa3,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x79, 0x63,0x49,0x30,0x19,0x00,0x00,0x05,0x19,0x2e,0x42,0x57,0x6b,0x82,0x96,0xab, 0xa2,0x8d,0x76,0x61,0x4b,0x58,0x6c,0x82,0x96,0xab,0xa7,0x92,0x7c,0x69,0x54, 0x40,0x2c,0x18,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2a,0x40,0x55,0x69,0x7c,0x91, 0xa2,0xb3,0xa2,0x94,0x89,0x81,0x7c,0x79,0x7c,0x84,0x8c,0x96,0x84,0x6d,0x59, 0x43,0x2e,0x18,0x01,0x00,0x00,0x00,0x16,0x2c,0x41,0x56,0x6b,0x81,0x92,0xa4, 0xb4,0xaa,0x9a,0x8f,0x86,0x84,0x84,0x86,0x8d,0x98,0x94,0x81,0x6c,0x58,0x43, 0x2d,0x18,0x00,0x00,0x18,0x30,0x47,0x5e,0x75,0x8e,0xa4,0xb6,0xa3,0x90,0x84, 0x7c,0x7c,0x82,0x8b,0x98,0x9c,0x9d,0xac,0xac,0x95,0x79,0x63,0x49,0x32,0x19, 0x00,0x00,0x10,0x26,0x3d,0x53,0x69,0x7c,0x93,0xa7,0xb8,0xb1,0xa6,0x9f,0x9d, 0x9d,0xa2,0x9b,0x8b,0x79,0x8b,0xa2,0xac,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00, 0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x35,0x21, 0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00,0x05, 0x1e,0x37,0x4e,0x68,0x81,0x9a,0xb4,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32,0x4c, 0x63,0x7c,0x98,0xaf,0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79,0x95, 0xac,0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x02,0x1b,0x35,0x4c,0x65,0x7c, 0x98,0xae,0xaf,0xaf,0xaf,0xad,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0x95, 0x79,0x63,0x49,0x30,0x19,0x00,0x00,0x10,0x26,0x3a,0x4f,0x63,0x79,0x8f,0xa3, 0xac,0x96,0x82,0x6b,0x56,0x40,0x4a,0x5f,0x74,0x89,0x9e,0xaf,0xa0,0x8b,0x75, 0x62,0x4e,0x39,0x25,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1f,0x34,0x48,0x5c,0x6e, 0x82,0x92,0xa0,0xac,0xa9,0x9f,0x98,0x95,0x95,0x95,0x9b,0xa2,0xa5,0x90,0x79, 0x64,0x4e,0x36,0x1f,0x06,0x00,0x00,0x00,0x0c,0x21,0x36,0x4a,0x5c,0x70,0x82, 0x92,0xa1,0xae,0xae,0xa4,0x9d,0x9a,0x9a,0x9d,0xa3,0xac,0x9f,0x8d,0x79,0x62, 0x49,0x32,0x1b,0x00,0x00,0x12,0x29,0x41,0x57,0x6d,0x84,0x98,0xaa,0xb3,0xa4, 0x9b,0x95,0x95,0x98,0xa0,0x96,0x88,0x8a,0xa1,0xac,0x95,0x79,0x63,0x49,0x32, 0x19,0x00,0x00,0x08,0x1f,0x35,0x49,0x5d,0x72,0x86,0x96,0xa3,0xaa,0xad,0xac, 0xa9,0xa2,0x96,0x89,0x79,0x6f,0x89,0xa0,0xa2,0x93,0x79,0x63,0x4c,0x32,0x1b, 0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x9a,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35, 0x21,0x37,0x4e,0x65,0x81,0x98,0xaf,0xac,0x95,0x79,0x63,0x4c,0x35,0x1b,0x00, 0x05,0x1e,0x37,0x4e,0x68,0x81,0x9a,0xaf,0xaa,0x90,0x77,0x5d,0x44,0x2d,0x32, 0x4c,0x63,0x7c,0x98,0xaf,0xac,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63,0x79, 0x95,0xac,0xaf,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x02,0x1b,0x35,0x4c,0x65, 0x7c,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, 0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x00,0x17,0x30,0x46,0x5c,0x71,0x87,0x95, 0x95,0x95,0x8b,0x74,0x5f,0x4a,0x35,0x3e,0x52,0x67,0x7b,0x91,0x95,0x95,0x95, 0x84,0x6e,0x5b,0x45,0x2d,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x26,0x3a,0x4c, 0x5e,0x6e,0x7c,0x8c,0x98,0xa1,0xa7,0xac,0xac,0xac,0xa8,0xa3,0x9a,0x91,0x87, 0x79,0x66,0x4e,0x37,0x1e,0x07,0x00,0x00,0x00,0x00,0x15,0x29,0x3c,0x4e,0x60, 0x70,0x81,0x8d,0x99,0xa1,0xa7,0xac,0xac,0xac,0xa7,0xa0,0x96,0x8b,0x7c,0x6e, 0x5d,0x47,0x30,0x1a,0x00,0x00,0x0b,0x21,0x37,0x4c,0x62,0x75,0x89,0x98,0xa3, 0xaa,0xac,0xab,0xa5,0x9c,0x90,0x84,0x74,0x86,0x9d,0xa2,0x95,0x79,0x63,0x49, 0x32,0x19,0x00,0x00,0x00,0x14,0x29,0x3e,0x51,0x63,0x74,0x82,0x8c,0x93,0x95, 0x95,0x92,0x8b,0x81,0x74,0x65,0x6d,0x86,0x8b,0x8b,0x8b,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x95,0x95,0x95,0x95,0x79,0x63,0x4c, 0x35,0x21,0x37,0x4e,0x65,0x81,0x95,0x95,0x95,0x95,0x79,0x63,0x4c,0x35,0x1b, 0x00,0x05,0x1e,0x37,0x4e,0x68,0x81,0x95,0x95,0x95,0x90,0x77,0x5d,0x44,0x2d, 0x32,0x4c,0x63,0x7c,0x95,0x95,0x95,0x93,0x79,0x60,0x47,0x30,0x30,0x49,0x63, 0x79,0x95,0x95,0x95,0x95,0x79,0x63,0x49,0x32,0x19,0x00,0x02,0x1b,0x35,0x4b, 0x65,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x77,0x62,0x49,0x30,0x19,0x00,0x00,0x19,0x30,0x49,0x62,0x77,0x79, 0x79,0x79,0x79,0x79,0x69,0x53,0x3e,0x28,0x30,0x45,0x5a,0x6e,0x79,0x79,0x79, 0x79,0x79,0x77,0x60,0x49,0x30,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x2a, 0x3c,0x4c,0x5c,0x6a,0x76,0x82,0x8a,0x90,0x93,0x95,0x94,0x90,0x8b,0x84,0x79, 0x70,0x64,0x57,0x45,0x30,0x19,0x03,0x00,0x00,0x00,0x00,0x07,0x1a,0x2c,0x3e, 0x4e,0x5d,0x6b,0x77,0x84,0x8b,0x90,0x93,0x95,0x93,0x90,0x89,0x81,0x75,0x69, 0x5c,0x4d,0x3b,0x28,0x12,0x00,0x00,0x02,0x17,0x2d,0x40,0x53,0x65,0x74,0x84, 0x8d,0x93,0x95,0x93,0x8f,0x87,0x79,0x6e,0x68,0x82,0x89,0x89,0x89,0x79,0x63, 0x49,0x32,0x19,0x00,0x00,0x00,0x08,0x1c,0x2f,0x41,0x52,0x60,0x6b,0x74,0x79, 0x79,0x79,0x79,0x73,0x6a,0x5f,0x53,0x65,0x6f,0x6f,0x6f,0x6f,0x6e,0x5f,0x49, 0x31,0x1a,0x00,0x0a,0x20,0x3a,0x50,0x67,0x79,0x79,0x79,0x79,0x79,0x77,0x62, 0x4b,0x35,0x20,0x37,0x4e,0x65,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35, 0x1b,0x00,0x04,0x1e,0x37,0x4e,0x67,0x79,0x79,0x79,0x79,0x79,0x75,0x5d,0x44, 0x2d,0x32,0x4b,0x62,0x79,0x79,0x79,0x79,0x79,0x77,0x60,0x46,0x30,0x30,0x49, 0x62,0x77,0x79,0x79,0x79,0x79,0x77,0x62,0x49,0x32,0x19,0x00,0x00,0x18,0x30, 0x45,0x59,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x15,0x00,0x00,0x18,0x2d,0x45,0x57,0x62, 0x63,0x63,0x63,0x63,0x63,0x5a,0x48,0x32,0x1d,0x23,0x38,0x4c,0x5d,0x63,0x63, 0x63,0x63,0x63,0x62,0x57,0x42,0x2b,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09, 0x1a,0x2a,0x3a,0x49,0x56,0x61,0x6b,0x72,0x77,0x79,0x79,0x79,0x77,0x74,0x6d, 0x64,0x5b,0x50,0x43,0x36,0x24,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x1c, 0x2c,0x3c,0x4a,0x57,0x62,0x6b,0x72,0x77,0x79,0x79,0x79,0x77,0x72,0x6a,0x61, 0x56,0x49,0x3b,0x2c,0x1b,0x07,0x00,0x00,0x00,0x0b,0x1f,0x31,0x43,0x53,0x62, 0x6c,0x74,0x79,0x79,0x79,0x77,0x70,0x65,0x5a,0x62,0x6f,0x6f,0x6f,0x6f,0x6e, 0x5f,0x47,0x31,0x18,0x00,0x00,0x00,0x00,0x0e,0x1f,0x2f,0x3e,0x4b,0x55,0x5d, 0x61,0x63,0x63,0x60,0x5c,0x54,0x4a,0x43,0x51,0x56,0x56,0x56,0x56,0x56,0x4d, 0x3d,0x28,0x13,0x00,0x06,0x1c,0x34,0x49,0x5a,0x63,0x63,0x63,0x63,0x63,0x62, 0x57,0x45,0x30,0x1c,0x32,0x47,0x59,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45, 0x30,0x18,0x00,0x01,0x1a,0x32,0x47,0x5a,0x63,0x63,0x63,0x63,0x63,0x62,0x53, 0x3e,0x29,0x2d,0x45,0x57,0x62,0x63,0x63,0x63,0x63,0x62,0x55,0x40,0x2b,0x2b, 0x42,0x57,0x62,0x63,0x63,0x63,0x63,0x62,0x57,0x42,0x2d,0x15,0x00,0x00,0x0e, 0x24,0x35,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x1f,0x0c,0x00,0x00,0x0c,0x21,0x33,0x42, 0x49,0x49,0x49,0x49,0x49,0x49,0x44,0x37,0x26,0x11,0x16,0x2a,0x3a,0x46,0x49, 0x49,0x49,0x49,0x49,0x49,0x41,0x33,0x1f,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x09,0x19,0x28,0x35,0x41,0x4b,0x55,0x5b,0x60,0x63,0x63,0x63,0x61,0x5d, 0x56,0x4e,0x45,0x3b,0x2f,0x23,0x14,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x1b,0x2a,0x37,0x42,0x4c,0x55,0x5c,0x60,0x63,0x63,0x63,0x60,0x5b,0x54, 0x4b,0x40,0x35,0x28,0x1a,0x0a,0x00,0x00,0x00,0x00,0x00,0x10,0x21,0x32,0x40, 0x4c,0x57,0x5e,0x63,0x63,0x63,0x60,0x5a,0x50,0x45,0x51,0x58,0x58,0x58,0x58, 0x58,0x4e,0x3d,0x28,0x12,0x00,0x00,0x00,0x00,0x00,0x0e,0x1d,0x2b,0x36,0x3f, 0x45,0x49,0x49,0x49,0x49,0x45,0x3d,0x35,0x32,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f, 0x39,0x2d,0x1b,0x09,0x00,0x00,0x12,0x28,0x38,0x44,0x49,0x49,0x49,0x49,0x49, 0x49,0x42,0x35,0x24,0x12,0x26,0x37,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x42, 0x35,0x24,0x0e,0x00,0x00,0x10,0x26,0x37,0x44,0x49,0x49,0x49,0x49,0x49,0x49, 0x40,0x2f,0x1d,0x21,0x35,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x31,0x1f, 0x1f,0x33,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x21,0x0c,0x00,0x00, 0x00,0x13,0x21,0x2c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x1f,0x0f,0x00,0x00,0x00,0x00,0x11,0x1f, 0x2b,0x30,0x30,0x30,0x30,0x30,0x30,0x2d,0x22,0x14,0x02,0x08,0x18,0x26,0x2e, 0x30,0x30,0x30,0x30,0x30,0x30,0x2a,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x14,0x20,0x2c,0x36,0x3d,0x44,0x49,0x4c,0x4c,0x4c,0x49, 0x45,0x3f,0x38,0x2f,0x26,0x1b,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x15,0x22,0x2d,0x37,0x3e,0x45,0x49,0x4c,0x4c,0x4c,0x49,0x44, 0x3d,0x35,0x2b,0x20,0x14,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1f, 0x2d,0x37,0x41,0x47,0x4a,0x4c,0x4c,0x48,0x42,0x3a,0x30,0x3a,0x3f,0x3f,0x3f, 0x3f,0x3f,0x39,0x2c,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x15,0x1f, 0x28,0x2d,0x31,0x32,0x32,0x30,0x2d,0x26,0x1f,0x1c,0x23,0x26,0x26,0x26,0x26, 0x25,0x21,0x18,0x09,0x00,0x00,0x00,0x06,0x18,0x26,0x2f,0x32,0x32,0x32,0x32, 0x32,0x32,0x2d,0x23,0x15,0x06,0x16,0x24,0x2e,0x32,0x32,0x32,0x32,0x32,0x32, 0x2d,0x23,0x15,0x02,0x00,0x00,0x04,0x16,0x24,0x2f,0x32,0x32,0x32,0x32,0x32, 0x32,0x2b,0x1e,0x0f,0x13,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x2c,0x20, 0x11,0x11,0x21,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x13,0x00,0x00, 0x00,0x00,0x00,0x0b,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x09,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x14,0x0c,0x00,0x00,0x00,0x03,0x0f, 0x15,0x16,0x16,0x16,0x16,0x16,0x16,0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x17,0x20,0x28,0x2d,0x32,0x32,0x32,0x32, 0x32,0x2e,0x29,0x21,0x19,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x0d,0x18,0x21,0x28,0x2e,0x32,0x32,0x32,0x32,0x32, 0x2d,0x27,0x1f,0x16,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x17,0x22,0x2a,0x30,0x32,0x32,0x32,0x31,0x2c,0x24,0x1c,0x24,0x28,0x28, 0x28,0x28,0x28,0x24,0x19,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x09,0x10,0x16,0x19,0x19,0x19,0x19,0x15,0x10,0x08,0x07,0x0d,0x0f,0x0f,0x0f, 0x0f,0x0f,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x16,0x19,0x19,0x19, 0x19,0x19,0x19,0x15,0x0d,0x01,0x00,0x02,0x0e,0x16,0x19,0x19,0x19,0x19,0x19, 0x19,0x15,0x0d,0x01,0x00,0x00,0x00,0x00,0x02,0x0e,0x16,0x19,0x19,0x19,0x19, 0x19,0x19,0x14,0x09,0x00,0x00,0x0d,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x14, 0x0b,0x00,0x00,0x0c,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x10,0x16,0x1a,0x1b,0x1b, 0x1b,0x1b,0x17,0x11,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0a,0x11,0x16,0x1a,0x1b,0x1b,0x1b, 0x1a,0x16,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x0c,0x13,0x18,0x1b,0x1b,0x1b,0x19,0x15,0x0e,0x06,0x0e,0x11, 0x11,0x11,0x11,0x11,0x0d,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x07,0x07,0x07,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x05,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x04, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09, 0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x11,0x09,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0d,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0b, 0x00,0x00,0x08,0x13,0x18,0x19,0x19,0x19,0x19,0x19,0x14,0x0b,0x00,0x00,0x08, 0x12,0x18,0x19,0x19,0x19,0x19,0x19,0x15,0x0c,0x00,0x00,0x00,0x00,0x00,0x01, 0x0d,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x0d,0x01,0x00,0x00,0x00,0x00, 0x0c,0x14,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x0c,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x16,0x1d,0x1e,0x1e,0x1e,0x1e, 0x1c,0x15,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x10,0x18,0x1b,0x1a,0x13,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x0b,0x14,0x1a,0x1b,0x18,0x0f,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x13,0x18,0x19,0x19,0x19,0x19,0x18, 0x12,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x0f,0x16,0x1b,0x1e,0x1e,0x1c,0x18,0x12,0x09,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x10,0x18,0x1b,0x1b,0x1b, 0x1b,0x17,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11, 0x1e,0x27,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x27,0x1e,0x11,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x13,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x2c, 0x20,0x11,0x0d,0x1d,0x2a,0x31,0x32,0x32,0x32,0x32,0x32,0x2c,0x20,0x0f,0x0b, 0x1d,0x29,0x31,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x13,0x00,0x00,0x00,0x02, 0x13,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x23,0x15,0x02,0x00,0x00, 0x11,0x21,0x2c,0x32,0x32,0x32,0x32,0x32,0x32,0x2c,0x21,0x11,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d,0x2a,0x33,0x35,0x35,0x35, 0x35,0x33,0x29,0x1c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x15,0x24,0x2e,0x32,0x31,0x29,0x21,0x18,0x0f,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x10,0x18,0x21,0x2a,0x31,0x32,0x2d,0x23,0x13,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x1d,0x2a,0x32,0x32,0x32,0x32,0x32, 0x31,0x29,0x1b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x10,0x1b,0x25,0x2d,0x33,0x35,0x35,0x34,0x2f,0x28,0x1f,0x13,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x26,0x31,0x35,0x35, 0x35,0x34,0x2f,0x24,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d, 0x1f,0x2f,0x3a,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3a,0x2f,0x1f,0x0d,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0e,0x23,0x37,0x45,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b, 0x43,0x33,0x21,0x1b,0x2f,0x40,0x4a,0x4c,0x4c,0x4c,0x4c,0x4b,0x42,0x33,0x1f, 0x1a,0x2d,0x3f,0x4a,0x4c,0x4c,0x4c,0x4c,0x4b,0x45,0x35,0x23,0x0d,0x00,0x00, 0x0f,0x24,0x37,0x45,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x45,0x37,0x24,0x10,0x00, 0x0d,0x21,0x35,0x43,0x4b,0x4c,0x4c,0x4c,0x4c,0x4b,0x43,0x35,0x21,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1a,0x2f,0x3f,0x4b,0x4e,0x4e, 0x4e,0x4e,0x4a,0x3e,0x2d,0x18,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x11,0x25,0x38,0x46,0x4c,0x49,0x40,0x37,0x2f,0x26,0x1d,0x15,0x0c,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x0d,0x16,0x1e,0x27,0x30,0x38,0x41,0x49,0x4b,0x45,0x37,0x23,0x0f,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1c,0x2f,0x40,0x4a,0x4c,0x4c,0x4c, 0x4c,0x49,0x3f,0x2d,0x19,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x13,0x21,0x2f,0x3a,0x43,0x49,0x4c,0x4c,0x4b,0x45,0x3e,0x32,0x26,0x16, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x27,0x38,0x46,0x4c, 0x4c,0x4c,0x4b,0x43,0x35,0x23,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, 0x18,0x2d,0x3f,0x4f,0x56,0x56,0x56,0x56,0x56,0x56,0x4f,0x3f,0x2d,0x18,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x2e,0x45,0x59,0x65,0x65,0x65,0x65,0x65, 0x64,0x55,0x42,0x2b,0x26,0x3d,0x52,0x62,0x65,0x65,0x65,0x65,0x63,0x55,0x40, 0x2b,0x24,0x3b,0x51,0x61,0x65,0x65,0x65,0x65,0x65,0x57,0x43,0x2d,0x15,0x00, 0x01,0x18,0x30,0x46,0x59,0x65,0x65,0x65,0x65,0x65,0x65,0x59,0x47,0x30,0x1a, 0x03,0x17,0x2d,0x43,0x57,0x64,0x65,0x65,0x65,0x65,0x64,0x57,0x42,0x2d,0x15, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x24,0x3a,0x4f,0x61,0x65, 0x65,0x65,0x65,0x5f,0x4c,0x38,0x22,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x1a,0x31,0x47,0x59,0x65,0x5f,0x56,0x4e,0x45,0x3c,0x34,0x2b,0x22, 0x1a,0x11,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09, 0x12,0x1b,0x23,0x2c,0x35,0x3d,0x46,0x4f,0x57,0x60,0x65,0x57,0x45,0x2e,0x18, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3e,0x53,0x62,0x65,0x65, 0x65,0x65,0x61,0x4f,0x3a,0x25,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x12,0x23,0x33,0x41,0x4e,0x59,0x61,0x65,0x65,0x62,0x5c,0x52,0x45,0x37, 0x28,0x16,0x05,0x00,0x00,0x00,0x00,0x00,0x04,0x0a,0x0c,0x1c,0x33,0x48,0x5b, 0x65,0x65,0x65,0x64,0x57,0x42,0x2d,0x18,0x0c,0x09,0x02,0x00,0x00,0x00,0x00, 0x08,0x1e,0x35,0x4a,0x5e,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x5e,0x4b,0x37,0x24, 0x10,0x00,0x00,0x00,0x00,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7b,0x7c,0x7c,0x7c, 0x7c,0x79,0x62,0x4a,0x32,0x2d,0x45,0x5d,0x74,0x7c,0x7c,0x7c,0x7c,0x76,0x60, 0x48,0x31,0x2b,0x43,0x5b,0x72,0x7c,0x7c,0x7c,0x7c,0x79,0x62,0x49,0x32,0x19, 0x00,0x05,0x1b,0x35,0x4c,0x65,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x65,0x4f,0x38, 0x21,0x0a,0x1e,0x35,0x4c,0x62,0x79,0x7c,0x7c,0x7c,0x7c,0x79,0x60,0x49,0x32, 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28,0x3f,0x56,0x6f, 0x7c,0x7c,0x7c,0x7c,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7b,0x75,0x6d,0x64,0x5c,0x53,0x4a,0x42, 0x39,0x31,0x28,0x20,0x17,0x0e,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0f,0x18, 0x20,0x29,0x31,0x3a,0x43,0x4b,0x54,0x5d,0x65,0x6d,0x76,0x79,0x62,0x4c,0x32, 0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1a,0x31,0x47,0x5e,0x74,0x81, 0x81,0x81,0x81,0x71,0x5b,0x44,0x2e,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0a,0x1e,0x30,0x42,0x52,0x60,0x6d,0x76,0x7c,0x7c,0x79,0x71,0x65,0x55, 0x46,0x35,0x23,0x10,0x00,0x00,0x00,0x00,0x0e,0x19,0x21,0x23,0x21,0x38,0x50, 0x67,0x7c,0x7c,0x7c,0x76,0x61,0x49,0x32,0x21,0x23,0x20,0x18,0x0c,0x00,0x00, 0x00,0x0a,0x21,0x37,0x4e,0x65,0x7c,0x81,0x81,0x81,0x81,0x7c,0x6a,0x56,0x43, 0x2f,0x1c,0x08,0x00,0x00,0x00,0x00,0x01,0x19,0x31,0x49,0x60,0x77,0x90,0x98, 0x98,0x98,0x81,0x67,0x50,0x38,0x33,0x4b,0x62,0x79,0x93,0x98,0x98,0x97,0x7c, 0x66,0x4e,0x37,0x31,0x49,0x60,0x77,0x90,0x98,0x98,0x90,0x77,0x5f,0x48,0x30, 0x18,0x00,0x02,0x19,0x31,0x48,0x5f,0x75,0x8d,0x98,0x98,0x98,0x86,0x6d,0x56, 0x3f,0x29,0x11,0x25,0x3c,0x53,0x6a,0x82,0x98,0x98,0x98,0x8b,0x73,0x5c,0x45, 0x2e,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28,0x3f,0x56, 0x6f,0x89,0x95,0x95,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8d,0x84,0x7b,0x72,0x6a,0x61, 0x59,0x50,0x47,0x3f,0x36,0x2d,0x25,0x1c,0x14,0x0b,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x14,0x1d,0x26, 0x2e,0x37,0x40,0x48,0x51,0x5a,0x62,0x6a,0x73,0x7c,0x86,0x8f,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x23,0x3a,0x51,0x67,0x7c, 0x95,0x9a,0x9a,0x92,0x79,0x64,0x4d,0x37,0x20,0x0a,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x13,0x26,0x3a,0x4c,0x5f,0x70,0x82,0x8d,0x94,0x95,0x90,0x86,0x75, 0x64,0x52,0x40,0x2d,0x1a,0x00,0x00,0x00,0x0f,0x21,0x2f,0x38,0x3a,0x38,0x3a, 0x51,0x68,0x81,0x98,0x93,0x79,0x63,0x4c,0x35,0x39,0x3a,0x36,0x2c,0x1e,0x0c, 0x00,0x00,0x07,0x1e,0x35,0x4a,0x5e,0x70,0x84,0x95,0x98,0x98,0x8a,0x75,0x62, 0x4e,0x3a,0x26,0x13,0x00,0x00,0x00,0x00,0x00,0x13,0x2b,0x42,0x5a,0x72,0x8a, 0xa1,0xb1,0x9d,0x86,0x6d,0x55,0x3d,0x39,0x51,0x69,0x81,0x98,0xb0,0xb1,0x9d, 0x86,0x6d,0x55,0x3d,0x36,0x4e,0x65,0x7c,0x96,0xae,0xa0,0x89,0x71,0x59,0x41, 0x29,0x12,0x00,0x00,0x12,0x29,0x40,0x56,0x6d,0x86,0x9b,0xb1,0xa3,0x8c,0x74, 0x5d,0x46,0x30,0x18,0x2d,0x43,0x5a,0x71,0x89,0xa0,0xb0,0x9a,0x84,0x6b,0x55, 0x3d,0x27,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28,0x3f, 0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98,0x9b,0x93,0x8a,0x81, 0x77,0x6f,0x66,0x5d,0x55,0x4c,0x44,0x3b,0x32,0x2a,0x21,0x18,0x10,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x11,0x19,0x22,0x2b,0x33, 0x3c,0x45,0x4d,0x56,0x5f,0x67,0x70,0x79,0x82,0x8b,0x93,0x9c,0x95,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x2c,0x43,0x5a,0x70, 0x88,0x9e,0xb1,0xb1,0x9b,0x84,0x6d,0x56,0x40,0x29,0x13,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x17,0x2c,0x40,0x55,0x68,0x7c,0x90,0xa1,0xac,0xad,0xa4,0x94, 0x84,0x6f,0x5c,0x49,0x35,0x21,0x00,0x00,0x07,0x1c,0x30,0x41,0x4f,0x53,0x4f, 0x4a,0x53,0x6a,0x84,0x9a,0x95,0x7c,0x65,0x4e,0x4b,0x50,0x53,0x4e,0x40,0x2d, 0x18,0x02,0x00,0x02,0x17,0x2c,0x3f,0x51,0x63,0x74,0x88,0x9a,0xa9,0x95,0x82, 0x6d,0x59,0x45,0x32,0x1e,0x0b,0x00,0x00,0x00,0x00,0x0c,0x24,0x3c,0x53,0x6b, 0x84,0x9b,0xb3,0xa2,0x8b,0x72,0x5b,0x43,0x40,0x57,0x6f,0x88,0x9f,0xb0,0xb0, 0xa3,0x8b,0x72,0x5b,0x43,0x3c,0x54,0x6b,0x84,0x9c,0xb2,0x9b,0x84,0x6a,0x53, 0x3b,0x23,0x0c,0x00,0x00,0x0a,0x21,0x38,0x4e,0x65,0x7c,0x93,0xaa,0xaa,0x93, 0x7b,0x65,0x4d,0x37,0x20,0x34,0x4a,0x62,0x77,0x90,0xa7,0xa8,0x92,0x79,0x63, 0x4d,0x35,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x0f,0x28, 0x3f,0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x05,0x05,0x04, 0x01,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98,0xa6,0xa9,0xa1, 0x98,0x90,0x87,0x7c,0x74,0x6c,0x63,0x5b,0x52,0x49,0x41,0x38,0x30,0x27,0x1e, 0x16,0x0c,0x00,0x00,0x00,0x00,0x00,0x01,0x0d,0x17,0x1f,0x28,0x31,0x39,0x41, 0x4a,0x53,0x5b,0x64,0x6d,0x75,0x81,0x88,0x90,0x99,0xa2,0xaa,0xa5,0x95,0x79, 0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1f,0x35,0x4c,0x62, 0x79,0x90,0xa7,0xa1,0xa2,0xa4,0x8d,0x76,0x5f,0x49,0x32,0x1c,0x05,0x00,0x00, 0x00,0x00,0x00,0x02,0x19,0x2d,0x42,0x56,0x6a,0x81,0x95,0xaa,0xbe,0xc4,0xb2, 0x9f,0x8b,0x77,0x62,0x4e,0x3a,0x26,0x00,0x00,0x0f,0x25,0x3b,0x51,0x63,0x6a, 0x66,0x61,0x5c,0x6d,0x86,0x9d,0x98,0x81,0x68,0x5d,0x62,0x67,0x6a,0x60,0x4c, 0x37,0x21,0x0b,0x00,0x00,0x0d,0x1f,0x31,0x43,0x55,0x67,0x79,0x8d,0x9f,0xa1, 0x8d,0x77,0x64,0x51,0x3d,0x29,0x15,0x02,0x00,0x00,0x00,0x06,0x1e,0x36,0x4d, 0x65,0x7c,0x95,0xac,0xa8,0x90,0x77,0x60,0x48,0x45,0x5d,0x74,0x8d,0xa5,0x98, 0x99,0xa9,0x91,0x79,0x61,0x49,0x41,0x5a,0x71,0x8a,0xa2,0xac,0x94,0x7c,0x65, 0x4d,0x35,0x1d,0x06,0x00,0x00,0x02,0x19,0x30,0x46,0x5d,0x73,0x8b,0xa2,0xb1, 0x9b,0x84,0x6c,0x55,0x3e,0x27,0x3b,0x51,0x69,0x81,0x98,0xae,0xa0,0x8a,0x72, 0x5b,0x45,0x2d,0x17,0x00,0x00,0x00,0x00,0x03,0x10,0x18,0x1b,0x1b,0x1b,0x1b, 0x28,0x3f,0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x1b,0x1b,0x1b, 0x1b,0x18,0x0f,0x02,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x88,0x90,0x98, 0xa0,0xa8,0xa6,0x9d,0x94,0x8c,0x84,0x79,0x71,0x68,0x60,0x57,0x4e,0x46,0x3d, 0x35,0x2c,0x21,0x11,0x00,0x00,0x00,0x02,0x13,0x22,0x2d,0x35,0x3e,0x47,0x4f, 0x58,0x61,0x69,0x72,0x79,0x84,0x8c,0x95,0x9e,0xa6,0xa7,0x9f,0x97,0x8f,0x87, 0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x28,0x3f,0x55, 0x6b,0x84,0x9a,0xa0,0x8b,0x8d,0xa3,0x96,0x81,0x68,0x52,0x3b,0x25,0x0e,0x00, 0x00,0x00,0x00,0x00,0x02,0x17,0x2c,0x41,0x55,0x69,0x7c,0x91,0xa3,0xae,0xb1, 0xb6,0xa4,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x00,0x16,0x2d,0x42,0x59,0x6e, 0x84,0x7c,0x79,0x73,0x6f,0x89,0xa0,0x9a,0x84,0x6f,0x74,0x79,0x81,0x81,0x6a, 0x54,0x3e,0x28,0x12,0x00,0x00,0x00,0x12,0x24,0x36,0x48,0x5a,0x6c,0x7c,0x91, 0xa3,0x98,0x84,0x70,0x5c,0x48,0x35,0x21,0x0d,0x00,0x00,0x00,0x00,0x18,0x30, 0x46,0x5e,0x76,0x8e,0xa6,0xad,0x96,0x7c,0x65,0x4e,0x4b,0x62,0x79,0x93,0xa0, 0x87,0x8a,0xa2,0x98,0x81,0x67,0x50,0x47,0x5f,0x76,0x90,0xa7,0xa6,0x8e,0x76, 0x5e,0x46,0x2f,0x17,0x00,0x00,0x00,0x00,0x11,0x28,0x3e,0x55,0x6b,0x84,0x9a, 0xb0,0xa2,0x8b,0x73,0x5c,0x45,0x2e,0x42,0x59,0x70,0x88,0x9f,0xb0,0x98,0x82, 0x6a,0x53,0x3d,0x25,0x0f,0x00,0x00,0x00,0x04,0x15,0x24,0x2e,0x32,0x32,0x32, 0x32,0x32,0x3f,0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x32,0x32,0x32, 0x32,0x32,0x2d,0x23,0x13,0x02,0x00,0x04,0x1b,0x31,0x48,0x5b,0x68,0x6f,0x77, 0x81,0x89,0x90,0x98,0xa0,0xa8,0xa3,0x9a,0x92,0x89,0x81,0x76,0x6e,0x65,0x5d, 0x54,0x4b,0x42,0x33,0x21,0x0e,0x00,0x00,0x10,0x24,0x35,0x43,0x4c,0x55,0x5d, 0x66,0x6e,0x77,0x81,0x8a,0x93,0x9b,0xa3,0xa7,0x9f,0x98,0x90,0x88,0x81,0x76, 0x6e,0x67,0x59,0x46,0x2e,0x18,0x00,0x00,0x00,0x00,0x00,0x04,0x1a,0x31,0x48, 0x5e,0x74,0x8c,0xa3,0x98,0x81,0x84,0x9b,0xa0,0x89,0x72,0x5b,0x44,0x2e,0x18, 0x01,0x00,0x00,0x00,0x00,0x00,0x13,0x27,0x3b,0x4e,0x61,0x73,0x84,0x90,0x97, 0x98,0xa1,0xa7,0x93,0x79,0x65,0x51,0x3c,0x28,0x00,0x06,0x1d,0x34,0x49,0x60, 0x75,0x8c,0x96,0x90,0x8b,0x86,0x8c,0xa2,0x9b,0x88,0x88,0x8d,0x92,0x97,0x89, 0x72,0x5b,0x45,0x2f,0x19,0x00,0x00,0x00,0x05,0x17,0x29,0x3a,0x4c,0x5e,0x70, 0x84,0x96,0xa3,0x90,0x7b,0x67,0x53,0x40,0x2c,0x15,0x00,0x00,0x00,0x00,0x11, 0x29,0x40,0x58,0x6f,0x89,0xa0,0xb4,0x9b,0x84,0x6b,0x53,0x51,0x69,0x82,0x99, 0x9a,0x84,0x86,0x9d,0x9d,0x86,0x6d,0x56,0x4d,0x65,0x7c,0x95,0xad,0xa0,0x89, 0x70,0x58,0x40,0x29,0x11,0x00,0x00,0x00,0x00,0x09,0x1f,0x36,0x4d,0x63,0x79, 0x91,0xa8,0xa9,0x92,0x79,0x63,0x4d,0x35,0x49,0x60,0x77,0x8f,0xa6,0xa8,0x90, 0x79,0x62,0x4b,0x35,0x1d,0x07,0x00,0x00,0x00,0x10,0x24,0x37,0x43,0x49,0x49, 0x49,0x49,0x49,0x49,0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x49,0x49,0x49, 0x49,0x49,0x49,0x42,0x35,0x21,0x0e,0x00,0x00,0x13,0x26,0x38,0x48,0x51,0x59, 0x61,0x69,0x71,0x79,0x82,0x89,0x91,0x99,0xa1,0xa8,0xa0,0x96,0x8e,0x86,0x7b, 0x73,0x6a,0x62,0x55,0x43,0x2c,0x17,0x00,0x03,0x19,0x2f,0x45,0x57,0x62,0x6b, 0x74,0x7c,0x86,0x8f,0x98,0xa0,0xa8,0xa0,0x98,0x90,0x89,0x81,0x77,0x70,0x68, 0x60,0x58,0x51,0x47,0x37,0x24,0x10,0x00,0x00,0x00,0x00,0x00,0x0d,0x24,0x3a, 0x51,0x67,0x7c,0x95,0xa7,0x90,0x77,0x7b,0x93,0xa8,0x92,0x79,0x64,0x4d,0x37, 0x21,0x0a,0x00,0x00,0x00,0x00,0x00,0x0c,0x1f,0x31,0x43,0x55,0x63,0x70,0x79, 0x81,0x82,0x96,0xa5,0x90,0x79,0x65,0x51,0x3c,0x28,0x00,0x0a,0x20,0x37,0x4e, 0x65,0x7c,0x8f,0x98,0xa2,0xa3,0x9e,0xa0,0xad,0xaa,0x9e,0xa0,0xa4,0xa0,0x96, 0x8d,0x79,0x62,0x4b,0x32,0x1b,0x00,0x00,0x00,0x00,0x09,0x1b,0x2d,0x3f,0x51, 0x63,0x75,0x89,0x90,0x90,0x87,0x72,0x5f,0x49,0x31,0x1b,0x00,0x00,0x00,0x00, 0x0b,0x23,0x3a,0x51,0x6a,0x82,0x9a,0xb1,0xa1,0x89,0x71,0x59,0x58,0x6f,0x89, 0xa0,0x96,0x7c,0x81,0x98,0xa3,0x8c,0x73,0x5c,0x52,0x6a,0x84,0x9b,0xb2,0x9b, 0x84,0x6a,0x52,0x3a,0x23,0x0b,0x00,0x00,0x00,0x00,0x00,0x17,0x2e,0x45,0x5b, 0x72,0x89,0xa0,0xb0,0x99,0x84,0x6a,0x53,0x3d,0x51,0x67,0x81,0x96,0xad,0xa0, 0x89,0x71,0x5a,0x43,0x2d,0x16,0x00,0x00,0x00,0x03,0x1a,0x30,0x45,0x59,0x62, 0x63,0x63,0x63,0x63,0x63,0x63,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x63,0x63,0x63, 0x63,0x63,0x63,0x62,0x57,0x43,0x2d,0x18,0x00,0x00,0x05,0x16,0x26,0x32,0x3a, 0x42,0x49,0x51,0x5a,0x62,0x6a,0x72,0x79,0x82,0x8a,0x92,0x9a,0xa2,0xa5,0x9c, 0x93,0x8b,0x82,0x77,0x62,0x4b,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e,0x65,0x79, 0x84,0x8b,0x94,0x9d,0xa5,0xa1,0x99,0x91,0x89,0x81,0x77,0x71,0x69,0x61,0x59, 0x51,0x49,0x41,0x39,0x31,0x26,0x15,0x03,0x00,0x00,0x00,0x00,0x00,0x16,0x2d, 0x43,0x5a,0x71,0x88,0x9e,0x9e,0x88,0x70,0x72,0x8a,0xa1,0x9b,0x84,0x6d,0x57, 0x40,0x29,0x13,0x00,0x00,0x00,0x00,0x00,0x02,0x14,0x26,0x35,0x43,0x51,0x5b, 0x63,0x6d,0x84,0x96,0xa0,0x8c,0x77,0x63,0x4f,0x3b,0x26,0x00,0x08,0x1f,0x35, 0x4d,0x62,0x6e,0x77,0x82,0x8b,0x95,0x9e,0xb0,0xbf,0xbc,0xaa,0x9c,0x93,0x8a, 0x81,0x75,0x6c,0x5d,0x49,0x33,0x1a,0x00,0x00,0x00,0x00,0x00,0x0e,0x1f,0x32, 0x43,0x55,0x67,0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x35,0x1e,0x00,0x00,0x00, 0x00,0x04,0x1c,0x34,0x4b,0x63,0x79,0x93,0xaa,0xa7,0x8f,0x76,0x5e,0x5d,0x74, 0x8e,0xa5,0x90,0x77,0x79,0x93,0xaa,0x93,0x79,0x62,0x58,0x6f,0x89,0xa0,0xac, 0x94,0x7b,0x64,0x4c,0x34,0x1c,0x04,0x00,0x00,0x00,0x00,0x00,0x0f,0x26,0x3d, 0x53,0x6a,0x81,0x98,0xae,0xa0,0x8a,0x72,0x5b,0x44,0x58,0x6e,0x87,0x9d,0xae, 0x98,0x81,0x69,0x52,0x3b,0x24,0x0e,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x89,0xa2,0xa0,0x86,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x77,0x62,0x4b,0x32,0x1b,0x00,0x00,0x00,0x05,0x11,0x1c, 0x23,0x2b,0x33,0x3b,0x43,0x4b,0x53,0x5a,0x62,0x6a,0x72,0x79,0x84,0x8b,0x93, 0xa1,0xaa,0xa1,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e,0x65, 0x7c,0x98,0xa2,0xab,0x9f,0x93,0x8b,0x84,0x79,0x72,0x6a,0x62,0x5a,0x52,0x4a, 0x42,0x3a,0x32,0x2a,0x22,0x1b,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x09,0x1f, 0x36,0x4c,0x63,0x79,0x91,0xa8,0x96,0x7c,0x68,0x6a,0x82,0x99,0xa4,0x8d,0x76, 0x60,0x49,0x32,0x1c,0x06,0x00,0x00,0x00,0x00,0x0d,0x1b,0x27,0x30,0x3a,0x46, 0x54,0x64,0x75,0x8a,0x9c,0x99,0x87,0x72,0x5d,0x4a,0x36,0x22,0x00,0x02,0x18, 0x2d,0x3f,0x4f,0x59,0x62,0x6b,0x74,0x81,0x91,0xa7,0xb7,0xb8,0xa0,0x8a,0x7c, 0x73,0x6a,0x60,0x57,0x4c,0x3c,0x28,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x12, 0x24,0x36,0x48,0x59,0x65,0x65,0x65,0x65,0x65,0x57,0x43,0x2e,0x18,0x00,0x00, 0x00,0x00,0x00,0x16,0x2d,0x45,0x5d,0x74,0x8d,0xa4,0xac,0x94,0x7c,0x64,0x63, 0x79,0x93,0xa3,0x8b,0x72,0x74,0x8e,0xa5,0x98,0x81,0x68,0x5d,0x74,0x8e,0xa5, 0xa5,0x8e,0x74,0x5d,0x46,0x2e,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1d, 0x34,0x4b,0x62,0x77,0x90,0xa6,0xa8,0x91,0x79,0x62,0x4b,0x5f,0x75,0x8e,0xa4, 0xa6,0x90,0x77,0x61,0x4a,0x33,0x1c,0x06,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e, 0x65,0x7c,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x95,0xa7,0xa5,0x94,0x93,0x93, 0x93,0x93,0x93,0x93,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x00,0x00, 0x07,0x0f,0x17,0x1f,0x27,0x2f,0x36,0x3e,0x46,0x4e,0x56,0x5e,0x66,0x6e,0x76, 0x81,0x9a,0xb1,0xac,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4e, 0x65,0x7c,0x98,0xaf,0xaf,0x98,0x7c,0x75,0x6d,0x65,0x5d,0x55,0x4d,0x45,0x3d, 0x36,0x2e,0x26,0x1e,0x16,0x0e,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12, 0x28,0x3f,0x55,0x6c,0x84,0x9a,0xa4,0x8e,0x75,0x5f,0x62,0x79,0x91,0xa7,0x97, 0x81,0x69,0x52,0x3c,0x25,0x0f,0x00,0x00,0x00,0x07,0x1b,0x2c,0x3a,0x46,0x4e, 0x58,0x65,0x74,0x84,0x95,0xa1,0x90,0x7c,0x69,0x56,0x43,0x30,0x1c,0x00,0x00, 0x0c,0x1d,0x2e,0x39,0x42,0x4c,0x58,0x6c,0x81,0x95,0xaa,0x9e,0xa0,0xa5,0x91, 0x7b,0x67,0x53,0x4a,0x41,0x37,0x2b,0x1a,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x05,0x17,0x29,0x3a,0x48,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x38,0x26,0x10,0x00, 0x00,0x00,0x00,0x00,0x10,0x27,0x3f,0x56,0x6d,0x87,0x9e,0xb2,0x9a,0x84,0x6a, 0x6a,0x82,0x9a,0x9f,0x87,0x6d,0x6f,0x89,0xa0,0x9f,0x87,0x6e,0x62,0x79,0x93, 0xab,0xa0,0x89,0x6f,0x58,0x40,0x28,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x15,0x2c,0x42,0x5a,0x70,0x88,0x9e,0xaf,0x98,0x81,0x69,0x52,0x66,0x7c,0x95, 0xac,0x9e,0x88,0x6f,0x59,0x42,0x2c,0x14,0x00,0x00,0x00,0x00,0x07,0x1e,0x35, 0x4e,0x65,0x7c,0x98,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xb6,0xb5,0xaa,0xaa, 0xaa,0xaa,0xaa,0xaa,0xaa,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x00,0x07, 0x14,0x1e,0x26,0x2e,0x36,0x3d,0x45,0x4d,0x55,0x5d,0x65,0x6d,0x74,0x7c,0x86, 0x8e,0x96,0xa4,0xa7,0x9f,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35, 0x4e,0x65,0x7c,0x98,0xa0,0xa8,0xa2,0x95,0x8d,0x86,0x7c,0x74,0x6c,0x64,0x5d, 0x55,0x4d,0x45,0x3d,0x35,0x2d,0x25,0x1d,0x13,0x06,0x00,0x00,0x00,0x00,0x04, 0x1b,0x31,0x48,0x5e,0x74,0x8c,0xa3,0x9c,0x86,0x6d,0x57,0x5a,0x70,0x88,0x9e, 0xa0,0x89,0x72,0x5b,0x45,0x2e,0x18,0x01,0x00,0x00,0x10,0x25,0x38,0x4a,0x5a, 0x64,0x6d,0x77,0x86,0x94,0xa3,0x94,0x84,0x71,0x5f,0x4d,0x3a,0x27,0x14,0x00, 0x00,0x00,0x0d,0x19,0x29,0x3d,0x50,0x64,0x77,0x8d,0xa1,0x9b,0x89,0x8d,0x9f, 0x9c,0x89,0x73,0x5f,0x4b,0x38,0x24,0x17,0x09,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x1a,0x29,0x34,0x3a,0x3a,0x3a,0x3a,0x3a,0x34,0x29,0x18,0x06, 0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x38,0x50,0x67,0x81,0x98,0xaf,0xa0,0x89, 0x6e,0x6f,0x89,0xa0,0x98,0x81,0x68,0x6a,0x84,0x9b,0xa5,0x8d,0x74,0x68,0x81, 0x98,0xb0,0x99,0x82,0x69,0x51,0x39,0x21,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0d,0x24,0x3a,0x51,0x68,0x81,0x96,0xad,0xa0,0x89,0x71,0x5a,0x6d,0x86, 0x9d,0xad,0x96,0x81,0x67,0x51,0x3a,0x24,0x0d,0x00,0x00,0x00,0x00,0x07,0x1e, 0x35,0x4e,0x65,0x7c,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x95,0xa7,0xa5,0x94, 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x79,0x63,0x4c,0x32,0x1b,0x00,0x00,0x07, 0x18,0x29,0x34,0x3d,0x45,0x4d,0x54,0x5c,0x64,0x6c,0x74,0x7c,0x86,0x8d,0x95, 0x9c,0xa4,0xa2,0x9a,0x91,0x89,0x81,0x75,0x62,0x4b,0x32,0x1b,0x00,0x07,0x1e, 0x34,0x4d,0x64,0x76,0x81,0x89,0x92,0x9b,0xa3,0xa3,0x9c,0x94,0x8c,0x84,0x7b, 0x73,0x6b,0x63,0x5b,0x53,0x4c,0x44,0x3c,0x33,0x28,0x16,0x05,0x00,0x00,0x00, 0x0d,0x24,0x3a,0x51,0x68,0x7c,0x96,0xab,0x93,0x7c,0x65,0x4f,0x51,0x67,0x81, 0x96,0xa9,0x93,0x79,0x64,0x4e,0x37,0x21,0x0a,0x00,0x00,0x14,0x2b,0x3f,0x53, 0x67,0x79,0x84,0x8d,0x98,0xa1,0x94,0x86,0x74,0x63,0x53,0x41,0x30,0x1e,0x0b, 0x00,0x00,0x00,0x08,0x1e,0x34,0x49,0x5c,0x70,0x86,0x9a,0x9d,0x8b,0x77,0x7b, 0x8f,0xa1,0x94,0x81,0x6b,0x58,0x43,0x2f,0x19,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0b,0x17,0x20,0x23,0x23,0x23,0x23,0x23,0x1f,0x16,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1a,0x32,0x49,0x61,0x79,0x91,0xa8,0xa4, 0x8c,0x72,0x75,0x8e,0xa6,0x93,0x79,0x62,0x64,0x7c,0x95,0xaa,0x93,0x79,0x6d, 0x86,0x9d,0xaa,0x93,0x79,0x62,0x4b,0x33,0x1c,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x05,0x1c,0x32,0x49,0x60,0x76,0x8e,0xa5,0xa7,0x8f,0x77,0x60,0x74, 0x8c,0xa3,0xa5,0x8e,0x76,0x60,0x49,0x32,0x1c,0x05,0x00,0x00,0x00,0x00,0x07, 0x1e,0x34,0x4e,0x64,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x89,0xa2,0xa0, 0x86,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x62,0x4b,0x32,0x1b,0x00,0x00, 0x14,0x28,0x3a,0x4a,0x54,0x5c,0x64,0x6b,0x73,0x7b,0x84,0x8c,0x94,0x9c,0xa4, 0xa5,0x9c,0x94,0x8b,0x84,0x79,0x71,0x68,0x5f,0x53,0x42,0x2b,0x16,0x00,0x02, 0x18,0x2e,0x44,0x55,0x60,0x69,0x72,0x79,0x84,0x8c,0x95,0x9d,0xa6,0xa3,0x9b, 0x93,0x8b,0x84,0x79,0x72,0x6a,0x63,0x5b,0x53,0x49,0x3a,0x26,0x11,0x00,0x00, 0x00,0x16,0x2d,0x43,0x5a,0x71,0x88,0x9f,0xa2,0x8b,0x74,0x5d,0x46,0x49,0x5f, 0x75,0x8d,0xa4,0x9b,0x86,0x6d,0x57,0x40,0x2a,0x13,0x00,0x00,0x13,0x29,0x3d, 0x51,0x63,0x76,0x8b,0x9e,0x99,0x8f,0x82,0x73,0x64,0x55,0x45,0x34,0x24,0x12, 0x00,0x00,0x00,0x00,0x0c,0x23,0x3a,0x50,0x67,0x7c,0x92,0x9f,0x8d,0x79,0x69, 0x6d,0x7c,0x90,0x9f,0x8d,0x77,0x62,0x4b,0x35,0x1e,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2c,0x43,0x5b,0x72,0x8b,0xa2, 0xa8,0x90,0x77,0x7b,0x93,0xa4,0x8d,0x74,0x5c,0x5d,0x75,0x8f,0xa6,0x98,0x81, 0x71,0x8b,0xa2,0xa4,0x8d,0x74,0x5d,0x45,0x2d,0x16,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x14,0x2a,0x41,0x57,0x6e,0x86,0x9d,0xad,0x96,0x7c,0x66, 0x7b,0x93,0xaa,0x9d,0x86,0x6e,0x58,0x41,0x2a,0x14,0x00,0x00,0x00,0x00,0x00, 0x03,0x19,0x2f,0x45,0x57,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x6f,0x89,0xa2, 0xa0,0x86,0x6d,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x55,0x43,0x2c,0x17,0x00, 0x05,0x1b,0x32,0x49,0x5c,0x6a,0x72,0x79,0x84,0x8b,0x93,0x9b,0xa3,0xa9,0xa0, 0x98,0x90,0x87,0x7c,0x74,0x6b,0x63,0x5a,0x51,0x49,0x40,0x31,0x20,0x0d,0x00, 0x00,0x0f,0x22,0x33,0x41,0x4a,0x52,0x5b,0x64,0x6c,0x75,0x7c,0x88,0x90,0x99, 0xa1,0xaa,0xa2,0x9a,0x92,0x8a,0x82,0x79,0x72,0x6a,0x5a,0x47,0x30,0x19,0x00, 0x00,0x09,0x20,0x36,0x4c,0x63,0x79,0x91,0xa8,0x9a,0x84,0x6b,0x54,0x3e,0x40, 0x56,0x6d,0x86,0x9c,0xa4,0x8e,0x76,0x60,0x49,0x33,0x1c,0x06,0x00,0x0e,0x21, 0x35,0x48,0x5b,0x6d,0x82,0x8c,0x84,0x79,0x6d,0x61,0x53,0x45,0x36,0x26,0x16, 0x05,0x00,0x00,0x00,0x00,0x0b,0x21,0x38,0x4e,0x63,0x72,0x81,0x8f,0x7b,0x6b, 0x59,0x5c,0x6e,0x81,0x8b,0x7c,0x6e,0x5f,0x49,0x33,0x1c,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x25,0x3d,0x55,0x6d,0x86, 0x9c,0xad,0x95,0x7c,0x81,0x99,0x9e,0x87,0x6e,0x56,0x58,0x70,0x89,0xa0,0x9e, 0x87,0x74,0x8f,0xa6,0x9e,0x87,0x6e,0x56,0x3f,0x27,0x10,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0c,0x22,0x39,0x4f,0x66,0x7c,0x94,0xab,0x9c,0x86, 0x6d,0x84,0x9a,0xac,0x95,0x7c,0x67,0x50,0x39,0x22,0x0c,0x00,0x00,0x00,0x00, 0x00,0x00,0x10,0x24,0x35,0x43,0x49,0x49,0x49,0x49,0x49,0x49,0x56,0x6f,0x89, 0xa2,0xa0,0x86,0x6d,0x53,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x33,0x21,0x0e, 0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8b,0x92,0x9a,0xa2,0xaa,0xa3,0x9b,0x92, 0x89,0x81,0x77,0x6e,0x65,0x5d,0x55,0x4c,0x43,0x3b,0x32,0x29,0x1f,0x0f,0x00, 0x00,0x00,0x00,0x11,0x20,0x2a,0x33,0x3c,0x44,0x4d,0x55,0x5e,0x67,0x6f,0x77, 0x82,0x8a,0x93,0x9b,0xa4,0xa9,0xa1,0x99,0x92,0x8a,0x79,0x63,0x4c,0x32,0x1b, 0x00,0x00,0x12,0x29,0x3f,0x55,0x6c,0x84,0x9a,0xa8,0x91,0x79,0x63,0x4c,0x35, 0x38,0x4e,0x65,0x7b,0x93,0xaa,0x97,0x81,0x69,0x52,0x3c,0x25,0x0f,0x00,0x05, 0x18,0x2c,0x3f,0x52,0x65,0x77,0x75,0x6d,0x64,0x5a,0x4e,0x41,0x35,0x26,0x17, 0x08,0x00,0x00,0x00,0x00,0x00,0x05,0x1a,0x2f,0x41,0x51,0x5f,0x6d,0x79,0x6d, 0x5b,0x49,0x4d,0x5e,0x70,0x77,0x69,0x5c,0x4e,0x3d,0x2a,0x16,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1f,0x37,0x4e,0x65, 0x7c,0x96,0xad,0x9a,0x82,0x86,0x9e,0x98,0x81,0x68,0x50,0x52,0x6a,0x84,0x9b, 0xa3,0x8c,0x79,0x93,0xaa,0x98,0x81,0x68,0x50,0x39,0x21,0x09,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1a,0x31,0x47,0x5e,0x74,0x8c,0xa3,0xa3, 0x8c,0x74,0x8a,0xa0,0xa3,0x8d,0x74,0x5f,0x48,0x31,0x1a,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x15,0x23,0x2d,0x32,0x32,0x32,0x32,0x32,0x3f,0x56,0x6f, 0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x32,0x32,0x32,0x32,0x32,0x2c,0x21,0x13, 0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98,0xa9,0xa7,0x9e,0x96,0x8d,0x84, 0x7b,0x72,0x6a,0x61,0x58,0x50,0x47,0x3e,0x36,0x2d,0x24,0x1c,0x13,0x09,0x00, 0x00,0x00,0x00,0x00,0x00,0x0b,0x14,0x1d,0x25,0x2e,0x37,0x3f,0x48,0x51,0x59, 0x62,0x6a,0x73,0x7b,0x86,0x8e,0x96,0xa0,0xa8,0xa8,0x95,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x01,0x19,0x30,0x48,0x5f,0x75,0x8d,0x95,0x95,0x89,0x71,0x5a,0x43, 0x2d,0x2f,0x45,0x5d,0x73,0x8b,0x95,0x95,0x8a,0x72,0x5b,0x45,0x2e,0x15,0x00, 0x00,0x10,0x23,0x36,0x48,0x59,0x62,0x60,0x58,0x50,0x45,0x3b,0x2f,0x22,0x15, 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x21,0x31,0x3e,0x4c,0x59,0x60, 0x5a,0x4a,0x3a,0x3e,0x4e,0x5d,0x60,0x56,0x48,0x3b,0x2d,0x1d,0x0a,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19,0x30,0x48, 0x60,0x77,0x90,0xa7,0x9e,0x86,0x8b,0xa2,0x93,0x79,0x62,0x4b,0x4d,0x65,0x7c, 0x94,0xa9,0x92,0x81,0x98,0xaa,0x93,0x79,0x62,0x4a,0x33,0x1b,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x29,0x3f,0x56,0x6c,0x84,0x9b, 0xaa,0x93,0x79,0x90,0xa7,0x9b,0x86,0x6d,0x57,0x40,0x29,0x12,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19,0x19,0x19,0x19,0x28,0x3f,0x56, 0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x19,0x19,0x19,0x19,0x15,0x0d, 0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98,0x99,0x90,0x88,0x7c,0x75, 0x6c,0x64,0x5b,0x52,0x4a,0x41,0x39,0x30,0x28,0x1f,0x16,0x0e,0x05,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0f,0x17,0x20,0x29,0x31,0x39, 0x42,0x4b,0x53,0x5c,0x65,0x6d,0x76,0x81,0x89,0x91,0x9a,0x95,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x02,0x1b,0x32,0x4b,0x62,0x79,0x79,0x79,0x79,0x79,0x68,0x52, 0x3b,0x24,0x27,0x3d,0x54,0x6a,0x79,0x79,0x79,0x79,0x75,0x60,0x46,0x30,0x16, 0x00,0x00,0x06,0x19,0x2a,0x38,0x43,0x49,0x48,0x41,0x39,0x31,0x26,0x1b,0x0f, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x1d,0x2b,0x38,0x44, 0x49,0x45,0x3a,0x2a,0x2e,0x3d,0x47,0x49,0x42,0x35,0x27,0x1a,0x0b,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x2a, 0x41,0x5a,0x71,0x89,0xa1,0xa8,0x98,0x9b,0xa5,0x8d,0x74,0x5d,0x45,0x46,0x5e, 0x76,0x8f,0xa7,0x9f,0x96,0xa2,0xa4,0x8c,0x73,0x5c,0x44,0x2d,0x15,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x21,0x37,0x4e,0x64,0x7b, 0x93,0xa9,0x9b,0x90,0x9a,0xab,0x93,0x7c,0x65,0x4f,0x38,0x21,0x0b,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x0f,0x28,0x3f, 0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x02,0x02,0x02,0x00, 0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8b,0x82,0x79,0x70,0x67, 0x5f,0x56,0x4d,0x45,0x3c,0x34,0x2b,0x22,0x1a,0x11,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x12,0x1b, 0x23,0x2c,0x35,0x3d,0x46,0x4e,0x57,0x60,0x68,0x71,0x79,0x84,0x8b,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x00,0x17,0x2c,0x43,0x55,0x60,0x60,0x60,0x60,0x60,0x58, 0x48,0x31,0x1c,0x1e,0x33,0x4a,0x5a,0x60,0x60,0x60,0x60,0x5f,0x53,0x3f,0x2a, 0x12,0x00,0x00,0x00,0x0a,0x1a,0x26,0x2e,0x32,0x31,0x2c,0x24,0x1c,0x12,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x17,0x24, 0x2e,0x32,0x30,0x27,0x1a,0x1d,0x29,0x31,0x32,0x2c,0x21,0x14,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x24,0x3b,0x53,0x6a,0x84,0x9b,0xaf,0xaf,0xaf,0x9f,0x87,0x6e,0x56,0x3f,0x41, 0x58,0x70,0x89,0xa0,0xaf,0xaf,0xaf,0x9e,0x86,0x6d,0x56,0x3e,0x26,0x0f,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x2f,0x45,0x5c, 0x73,0x8b,0xa1,0xae,0xaa,0xad,0xa3,0x8b,0x74,0x5d,0x47,0x30,0x19,0x03,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x28, 0x3f,0x56,0x6f,0x89,0xa2,0xa0,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x79,0x73,0x6a,0x62,0x5a, 0x51,0x48,0x40,0x37,0x2e,0x26,0x1d,0x14,0x0c,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x0d,0x15,0x1e,0x27,0x2f,0x38,0x41,0x49,0x51,0x5a,0x63,0x6b,0x74,0x77, 0x62,0x4b,0x32,0x1b,0x00,0x00,0x0d,0x20,0x33,0x40,0x47,0x47,0x47,0x47,0x47, 0x42,0x36,0x24,0x11,0x13,0x26,0x38,0x43,0x47,0x47,0x47,0x47,0x46,0x3f,0x2f, 0x1e,0x08,0x00,0x00,0x00,0x00,0x06,0x10,0x18,0x1b,0x1b,0x16,0x0e,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, 0x0f,0x16,0x19,0x17,0x10,0x05,0x08,0x12,0x18,0x19,0x15,0x0d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x1d,0x35,0x4d,0x64,0x7b,0x94,0x95,0x95,0x95,0x95,0x81,0x68,0x51,0x39, 0x3b,0x53,0x6a,0x84,0x95,0x95,0x95,0x95,0x95,0x81,0x67,0x50,0x38,0x20,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x27,0x3d, 0x54,0x6b,0x82,0x95,0x95,0x95,0x95,0x95,0x84,0x6d,0x55,0x3f,0x28,0x11,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0x28,0x3f,0x56,0x6f,0x89,0x95,0x95,0x86,0x6d,0x53,0x3c,0x26,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x19,0x30,0x45,0x57,0x62,0x5c,0x54,0x4b, 0x43,0x3a,0x31,0x29,0x20,0x18,0x0f,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x10,0x18,0x21,0x29,0x32,0x3b,0x43,0x4c,0x55,0x5d, 0x62,0x55,0x43,0x2d,0x17,0x00,0x00,0x00,0x0f,0x1f,0x2b,0x30,0x30,0x30,0x30, 0x30,0x2c,0x22,0x13,0x02,0x04,0x14,0x23,0x2d,0x30,0x30,0x30,0x30,0x2f,0x29, 0x1e,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x17,0x2e,0x46,0x5d,0x74,0x79,0x79,0x79,0x79,0x79,0x77,0x62,0x4b, 0x33,0x35,0x4d,0x65,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x61,0x49,0x31,0x1a, 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e, 0x35,0x4c,0x63,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x65,0x4d,0x37,0x20,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0f,0x28,0x3f,0x56,0x6e,0x79,0x79,0x79,0x79,0x6c,0x53,0x3c,0x25,0x0c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x24,0x37,0x43,0x49,0x46,0x3d, 0x35,0x2c,0x24,0x1b,0x12,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0b,0x13,0x1c,0x24,0x2d,0x36,0x3e, 0x47,0x49,0x42,0x35,0x21,0x0e,0x00,0x00,0x00,0x00,0x0b,0x13,0x16,0x16,0x16, 0x16,0x16,0x14,0x0d,0x00,0x00,0x00,0x02,0x0d,0x14,0x16,0x16,0x16,0x16,0x16, 0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x10,0x28,0x3e,0x53,0x61,0x63,0x63,0x63,0x63,0x63,0x62,0x57, 0x42,0x2c,0x2e,0x45,0x57,0x62,0x63,0x63,0x63,0x63,0x63,0x62,0x55,0x41,0x2b, 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x16,0x2d,0x42,0x57,0x62,0x63,0x63,0x63,0x63,0x63,0x62,0x57,0x45,0x2f,0x18, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0b,0x24,0x39,0x4d,0x5f,0x63,0x63,0x63,0x63,0x5d,0x4b,0x37,0x21,0x09, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x22,0x2c,0x30,0x2e, 0x27,0x1e,0x15,0x0d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x16,0x1f, 0x28,0x2e,0x30,0x2b,0x21,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x1c,0x2f,0x40,0x48,0x49,0x49,0x49,0x49,0x49,0x49, 0x42,0x33,0x20,0x21,0x35,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33, 0x1f,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0c,0x21,0x33,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x42,0x35,0x22, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x19,0x2d,0x3d,0x49,0x4c,0x4c,0x4c,0x4c,0x49,0x3c,0x2b,0x18, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0e,0x16,0x19, 0x17,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x11,0x17,0x19,0x15,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1c,0x29,0x2f,0x30,0x30,0x30,0x30,0x30, 0x30,0x2b,0x1f,0x0f,0x11,0x21,0x2c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2a, 0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x11,0x1f,0x2b,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x21, 0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0b,0x1d,0x2a,0x33,0x35,0x35,0x35,0x35,0x32,0x29,0x1c, 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x11,0x16,0x16,0x16,0x16,0x16, 0x16,0x16,0x13,0x09,0x00,0x00,0x0b,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x16, 0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13, 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x13,0x1a,0x1b,0x1b,0x1b,0x1b,0x1a,0x12, 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x01, 0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x0c,0x12,0x16,0x16,0x15,0x11,0x0a,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x09,0x0a,0x0a,0x08,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x09,0x18,0x21,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x25,0x21,0x17,0x08,0x00, 0x00,0x00,0x00,0x00,0x0a,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, 0x14,0x14,0x14,0x11,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x1b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x10, 0x04,0x00,0x00,0x00,0x00,0x0a,0x16,0x1e,0x21,0x21,0x21,0x21,0x21,0x20,0x1d, 0x16,0x1e,0x21,0x21,0x21,0x21,0x21,0x20,0x1c,0x12,0x06,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x17,0x20,0x26,0x2a,0x2b,0x2a,0x25,0x1d,0x14,0x08, 0x00,0x00,0x06,0x0f,0x14,0x13,0x0d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x12,0x1a,0x1f,0x21,0x21,0x1f,0x19,0x11,0x07,0x00,0x00,0x00, 0x00,0x00,0x05,0x16,0x27,0x32,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37, 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x31,0x26,0x14, 0x01,0x00,0x00,0x01,0x10,0x1d,0x24,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, 0x28,0x28,0x28,0x28,0x24,0x1c,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x05,0x16,0x26,0x31,0x35,0x35,0x35,0x35,0x35,0x35, 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x30, 0x25,0x15,0x03,0x00,0x00,0x09,0x1c,0x2a,0x34,0x37,0x37,0x37,0x37,0x37,0x37, 0x33,0x2a,0x35,0x37,0x37,0x37,0x37,0x37,0x37,0x32,0x26,0x16,0x05,0x00,0x00, 0x00,0x00,0x00,0x02,0x11,0x1e,0x29,0x33,0x3a,0x40,0x42,0x3e,0x39,0x31,0x26, 0x1b,0x0e,0x0a,0x18,0x22,0x28,0x27,0x21,0x15,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x0f,0x1c,0x27,0x30,0x36,0x37,0x37,0x35,0x2f,0x26,0x1a,0x0d,0x00, 0x00,0x00,0x00,0x0e,0x21,0x35,0x42,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x41,0x33, 0x1f,0x0b,0x00,0x00,0x0f,0x21,0x30,0x3a,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3a,0x2f,0x1f,0x0d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x26,0x38,0x48,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, 0x47,0x37,0x24,0x0f,0x00,0x00,0x15,0x2b,0x3c,0x49,0x4e,0x4e,0x4e,0x4e,0x4e, 0x4e,0x48,0x3e,0x4a,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x47,0x38,0x24,0x10,0x00, 0x00,0x00,0x00,0x01,0x13,0x22,0x30,0x3c,0x47,0x4e,0x53,0x56,0x53,0x4d,0x43, 0x39,0x2d,0x1f,0x18,0x28,0x37,0x3c,0x3d,0x33,0x26,0x18,0x09,0x00,0x00,0x00, 0x00,0x00,0x11,0x1f,0x2f,0x3b,0x45,0x4c,0x4e,0x4e,0x4b,0x43,0x39,0x2c,0x1e, 0x0d,0x00,0x00,0x00,0x15,0x2a,0x40,0x51,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b, 0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x50, 0x3e,0x28,0x12,0x00,0x07,0x19,0x2d,0x40,0x4c,0x53,0x53,0x53,0x53,0x53,0x53, 0x53,0x53,0x53,0x53,0x53,0x53,0x4c,0x3e,0x2b,0x17,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1b,0x31,0x47,0x5b,0x65,0x65,0x65,0x65, 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65, 0x65,0x59,0x46,0x2e,0x18,0x00,0x07,0x1e,0x35,0x4b,0x5e,0x68,0x68,0x68,0x68, 0x68,0x67,0x5c,0x4c,0x5e,0x68,0x68,0x68,0x68,0x68,0x67,0x59,0x46,0x2f,0x18, 0x00,0x00,0x00,0x00,0x11,0x21,0x31,0x41,0x4f,0x5a,0x63,0x68,0x6a,0x67,0x61, 0x57,0x4b,0x3e,0x31,0x24,0x38,0x48,0x53,0x51,0x45,0x37,0x29,0x1a,0x0a,0x00, 0x00,0x00,0x0d,0x1e,0x2f,0x40,0x4e,0x5a,0x62,0x65,0x65,0x61,0x58,0x4c,0x3c, 0x2d,0x1b,0x09,0x00,0x01,0x1a,0x30,0x49,0x5e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d, 0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c, 0x5c,0x46,0x2e,0x17,0x00,0x0d,0x21,0x37,0x4c,0x5e,0x6a,0x6a,0x6a,0x6a,0x6a, 0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x5e,0x4a,0x35,0x1e,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, 0x81,0x79,0x62,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x3a,0x51,0x68,0x81,0x81,0x81, 0x81,0x81,0x7c,0x65,0x53,0x6a,0x81,0x81,0x81,0x81,0x81,0x79,0x62,0x4c,0x32, 0x1b,0x00,0x00,0x00,0x0c,0x1e,0x2f,0x41,0x52,0x60,0x6c,0x76,0x7c,0x81,0x7c, 0x74,0x69,0x5c,0x4f,0x41,0x33,0x43,0x57,0x66,0x64,0x56,0x48,0x39,0x2a,0x1a, 0x06,0x00,0x02,0x17,0x2a,0x3e,0x4f,0x60,0x6d,0x77,0x7c,0x7c,0x76,0x6b,0x5c, 0x4c,0x3a,0x26,0x14,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x81,0x81,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, 0x79,0x62,0x49,0x30,0x19,0x00,0x0f,0x23,0x3a,0x51,0x65,0x7c,0x81,0x81,0x81, 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x79,0x65,0x4e,0x37,0x21,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, 0x98,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x0a,0x21,0x39,0x50,0x68,0x81,0x98, 0x98,0x98,0x98,0x7c,0x65,0x51,0x6a,0x84,0x98,0x98,0x98,0x93,0x79,0x63,0x4b, 0x32,0x1b,0x00,0x00,0x04,0x18,0x2b,0x3e,0x50,0x60,0x70,0x81,0x8b,0x92,0x96, 0x91,0x88,0x7b,0x6e,0x60,0x52,0x45,0x50,0x62,0x76,0x75,0x67,0x58,0x4a,0x38, 0x26,0x10,0x00,0x0a,0x20,0x34,0x48,0x5b,0x6e,0x81,0x8d,0x95,0x93,0x8b,0x7c, 0x6b,0x58,0x44,0x30,0x1c,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x93,0x93,0x93, 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, 0x93,0x79,0x63,0x49,0x30,0x19,0x00,0x0f,0x23,0x3a,0x51,0x65,0x7c,0x95,0x98, 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x93,0x79,0x65,0x4e,0x37,0x21,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c, 0x98,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, 0xa5,0xa5,0x95,0x79,0x63,0x4c,0x32,0x1b,0x00,0x07,0x1f,0x37,0x4e,0x65,0x7c, 0x96,0xaf,0xad,0x95,0x7c,0x65,0x51,0x68,0x84,0x9a,0xaf,0xaa,0x93,0x79,0x63, 0x49,0x32,0x1b,0x00,0x00,0x0e,0x24,0x37,0x4a,0x5d,0x70,0x82,0x91,0x9d,0xa7, 0xaa,0xa5,0x9a,0x8d,0x81,0x71,0x63,0x59,0x5f,0x6e,0x84,0x88,0x77,0x69,0x59, 0x43,0x2e,0x18,0x00,0x10,0x25,0x3a,0x50,0x65,0x79,0x8e,0x9f,0xab,0xaa,0x9c, 0x8a,0x75,0x60,0x4b,0x36,0x21,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x98,0xa0, 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0, 0xa0,0x95,0x79,0x63,0x49,0x30,0x19,0x00,0x0f,0x23,0x3a,0x51,0x65,0x7c,0x95, 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0x93,0x79,0x65,0x4e,0x37,0x21,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65, 0x7c,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b, 0x8b,0x8b,0x8b,0x8b,0x79,0x63,0x4c,0x32,0x1b,0x00,0x07,0x1e,0x35,0x4d,0x65, 0x7c,0x95,0xae,0xac,0x95,0x7c,0x65,0x51,0x68,0x81,0x99,0xb1,0xaa,0x93,0x79, 0x61,0x49,0x32,0x1b,0x00,0x00,0x17,0x2e,0x42,0x57,0x6b,0x7c,0x90,0xa2,0x9e, 0x96,0x95,0x99,0xa4,0x9f,0x91,0x84,0x75,0x6e,0x71,0x7c,0x90,0x98,0x89,0x79, 0x62,0x4b,0x32,0x1b,0x00,0x14,0x28,0x3f,0x53,0x6a,0x81,0x95,0xaa,0xbf,0xbc, 0xa6,0x91,0x79,0x64,0x4e,0x37,0x23,0x00,0x02,0x1b,0x32,0x4c,0x65,0x7c,0x8e, 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e, 0x8e,0x8e,0x8e,0x79,0x63,0x49,0x30,0x19,0x00,0x0f,0x23,0x3a,0x51,0x65,0x7c, 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x79,0x65,0x4e,0x37,0x21, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1d,0x34,0x4d, 0x62,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72, 0x72,0x72,0x72,0x72,0x72,0x71,0x60,0x4a,0x31,0x1b,0x00,0x06,0x1e,0x35,0x4c, 0x65,0x7c,0x95,0xac,0xac,0x95,0x7c,0x63,0x50,0x68,0x81,0x98,0xaf,0xaa,0x93, 0x77,0x60,0x49,0x32,0x19,0x00,0x04,0x1b,0x34,0x4b,0x62,0x75,0x8b,0x9e,0x9d, 0x8d,0x82,0x81,0x87,0x92,0xa0,0xa2,0x94,0x89,0x84,0x86,0x90,0x9f,0x9b,0x89, 0x74,0x60,0x49,0x31,0x1a,0x00,0x14,0x28,0x3f,0x53,0x6a,0x81,0x95,0xaa,0xbe, 0xbb,0xa6,0x90,0x79,0x64,0x4e,0x37,0x23,0x00,0x02,0x1b,0x32,0x4b,0x65,0x79, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x77,0x62,0x49,0x30,0x19,0x00,0x0f,0x23,0x3a,0x50,0x65, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x65,0x4e,0x37, 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x17,0x2d, 0x41,0x51,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b, 0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x50,0x3f,0x2a,0x14,0x00,0x05,0x1d,0x35, 0x4c,0x63,0x79,0x93,0xab,0xaa,0x93,0x79,0x63,0x4e,0x65,0x81,0x97,0xae,0xa7, 0x90,0x77,0x60,0x49,0x30,0x19,0x00,0x04,0x1b,0x34,0x4b,0x62,0x77,0x88,0x95, 0x8f,0x7b,0x6d,0x6a,0x73,0x81,0x8f,0x9c,0xa6,0x9c,0x98,0x9a,0xa2,0x9f,0x8f, 0x7b,0x68,0x54,0x40,0x2b,0x15,0x00,0x10,0x25,0x3a,0x4f,0x64,0x79,0x8d,0x9f, 0xa9,0xa8,0x9b,0x8a,0x74,0x60,0x4b,0x36,0x21,0x00,0x00,0x19,0x2f,0x47,0x5c, 0x67,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68, 0x68,0x68,0x68,0x68,0x68,0x67,0x5a,0x44,0x2d,0x16,0x00,0x0b,0x20,0x35,0x49, 0x5b,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x59,0x47, 0x33,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, 0x1f,0x31,0x3c,0x41,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x41,0x3b,0x2f,0x1d,0x0a,0x00,0x04,0x1b, 0x32,0x49,0x60,0x77,0x90,0xa8,0xa7,0x90,0x77,0x60,0x4c,0x63,0x7b,0x94,0xab, 0xa5,0x8e,0x74,0x5d,0x46,0x2f,0x18,0x00,0x01,0x18,0x2f,0x45,0x57,0x67,0x74, 0x84,0x81,0x6d,0x5c,0x56,0x61,0x6e,0x7c,0x8b,0x98,0xa1,0xa5,0xa3,0x9b,0x8f, 0x7c,0x6d,0x5b,0x48,0x34,0x21,0x0d,0x00,0x0a,0x1f,0x33,0x48,0x5b,0x6d,0x81, 0x8c,0x93,0x93,0x8a,0x7b,0x6a,0x57,0x43,0x30,0x1b,0x00,0x00,0x13,0x28,0x3d, 0x4f,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56, 0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x4d,0x3b,0x26,0x11,0x00,0x05,0x17,0x2b, 0x3c,0x48,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x48, 0x3a,0x29,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0e,0x20,0x33,0x3f,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x3e,0x31,0x1e,0x0b,0x00,0x01, 0x18,0x2f,0x47,0x5d,0x74,0x8e,0xa5,0xa5,0x8e,0x74,0x5d,0x49,0x60,0x79,0x91, 0xa8,0xa2,0x8b,0x72,0x5b,0x43,0x2c,0x15,0x00,0x00,0x10,0x25,0x38,0x48,0x56, 0x63,0x72,0x75,0x60,0x4d,0x42,0x4f,0x5d,0x6b,0x77,0x86,0x8d,0x90,0x8e,0x88, 0x7b,0x6d,0x5e,0x4c,0x3b,0x28,0x15,0x01,0x00,0x02,0x16,0x29,0x3d,0x4e,0x5e, 0x6c,0x76,0x79,0x79,0x75,0x6b,0x5b,0x4b,0x39,0x26,0x13,0x00,0x00,0x0b,0x1e, 0x31,0x3f,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x3e,0x2f,0x1c,0x09,0x00,0x00,0x0c, 0x1e,0x2b,0x35,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a, 0x34,0x29,0x1c,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x18,0x2e,0x43,0x53,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, 0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x52,0x40,0x2b,0x15,0x00, 0x00,0x16,0x2d,0x44,0x5b,0x72,0x8b,0xa2,0xa2,0x8b,0x72,0x5b,0x47,0x5d,0x75, 0x8e,0xa5,0xa0,0x89,0x6f,0x58,0x40,0x29,0x12,0x00,0x00,0x05,0x18,0x28,0x37, 0x45,0x53,0x61,0x62,0x55,0x41,0x31,0x3e,0x4c,0x5a,0x67,0x71,0x77,0x79,0x79, 0x73,0x69,0x5d,0x4e,0x3e,0x2e,0x1b,0x09,0x00,0x00,0x00,0x0b,0x1e,0x2f,0x3e, 0x4d,0x58,0x61,0x63,0x63,0x60,0x57,0x4a,0x3c,0x2c,0x1a,0x08,0x00,0x00,0x02, 0x13,0x23,0x2e,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x2d,0x21,0x11,0x00,0x00,0x00, 0x00,0x0c,0x18,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, 0x23,0x20,0x17,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x1d,0x34,0x4d,0x63,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74, 0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x61,0x4b,0x32,0x1b, 0x00,0x00,0x13,0x2a,0x41,0x58,0x6f,0x89,0xa0,0xa0,0x89,0x6f,0x58,0x44,0x5b, 0x72,0x8b,0xa2,0x9d,0x86,0x6d,0x56,0x3d,0x26,0x0f,0x00,0x00,0x00,0x09,0x18, 0x26,0x34,0x43,0x4d,0x4e,0x44,0x35,0x22,0x2d,0x3b,0x48,0x54,0x5d,0x63,0x65, 0x65,0x5f,0x57,0x4b,0x3e,0x2f,0x1e,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x1f, 0x2d,0x3a,0x43,0x4b,0x4c,0x4c,0x4a,0x42,0x38,0x2b,0x1c,0x0d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e, 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x79,0x63,0x4c,0x32, 0x1b,0x00,0x00,0x10,0x27,0x3f,0x56,0x6d,0x86,0x9d,0x9d,0x86,0x6d,0x55,0x42, 0x58,0x70,0x89,0xa0,0x9a,0x82,0x6a,0x53,0x3a,0x23,0x0c,0x00,0x00,0x00,0x00, 0x07,0x15,0x24,0x30,0x39,0x39,0x32,0x26,0x15,0x1c,0x2a,0x36,0x41,0x49,0x4e, 0x51,0x50,0x4b,0x43,0x39,0x2d,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0e,0x1b,0x26,0x2e,0x34,0x35,0x35,0x34,0x2d,0x25,0x19,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x98,0xa7,0xa7,0xa7,0xa7,0xa7, 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0x95,0x79,0x63,0x4c, 0x32,0x1b,0x00,0x00,0x0d,0x24,0x3c,0x53,0x6a,0x84,0x9a,0x9a,0x84,0x6a,0x52, 0x3f,0x56,0x6d,0x86,0x9d,0x98,0x7c,0x67,0x50,0x37,0x20,0x09,0x00,0x00,0x00, 0x00,0x00,0x05,0x12,0x1e,0x24,0x25,0x20,0x15,0x06,0x0b,0x18,0x24,0x2d,0x35, 0x3a,0x3a,0x3a,0x36,0x30,0x26,0x1b,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0x11,0x18,0x1d,0x1e,0x1e,0x1d,0x18,0x10,0x06,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x7c,0x95,0x95,0x95,0x95,0x95, 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x79,0x63, 0x4c,0x32,0x1b,0x00,0x00,0x0a,0x22,0x39,0x51,0x68,0x81,0x93,0x93,0x81,0x67, 0x50,0x3c,0x53,0x6a,0x84,0x93,0x93,0x79,0x64,0x4d,0x35,0x1e,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x09,0x10,0x0e,0x0c,0x04,0x00,0x00,0x06,0x11,0x1a, 0x21,0x25,0x26,0x26,0x22,0x1c,0x13,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x1e,0x35,0x4e,0x65,0x79,0x79,0x79,0x79,0x79, 0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77, 0x62,0x4b,0x32,0x1b,0x00,0x00,0x08,0x1f,0x37,0x4e,0x65,0x79,0x79,0x79,0x79, 0x65,0x4d,0x3a,0x50,0x67,0x79,0x79,0x79,0x75,0x61,0x49,0x32,0x1b,0x04,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1a,0x30,0x45,0x59,0x62,0x63,0x63,0x63, 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x62,0x57,0x45,0x2d,0x18,0x00,0x00,0x04,0x1a,0x30,0x47,0x59,0x62,0x63,0x63, 0x62,0x57,0x45,0x33,0x49,0x5a,0x63,0x63,0x63,0x62,0x55,0x42,0x2c,0x16,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x25,0x37,0x46,0x4c,0x4c,0x4c, 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, 0x4c,0x4b,0x45,0x35,0x23,0x0e,0x00,0x00,0x00,0x11,0x25,0x37,0x46,0x4c,0x4c, 0x4c,0x4c,0x45,0x37,0x28,0x38,0x47,0x4c,0x4c,0x4c,0x4b,0x43,0x35,0x21,0x0d, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x24,0x2e,0x32,0x32, 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32, 0x32,0x32,0x32,0x2d,0x23,0x13,0x02,0x00,0x00,0x00,0x04,0x16,0x25,0x30,0x35, 0x35,0x35,0x35,0x30,0x25,0x18,0x26,0x31,0x35,0x35,0x35,0x34,0x2f,0x22,0x13, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0f,0x18,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x18,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x10,0x18, 0x1b,0x1b,0x1b,0x1b,0x18,0x0f,0x06,0x11,0x19,0x1b,0x1b,0x1b,0x1b,0x17,0x0e, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; static signed short stb__SourceSansProSemiBold_x[95]={ 0,3,3,1,1,1,1,3,3,1,1,1,1,1, 2,0,1,2,1,0,0,0,1,1,1,1,2,1,1,1,1,1,1,-1,3,1,3,3,3,1,3,3,0,3, 3,3,3,1,3,1,3,1,1,3,-1,0,0,-1,1,3,0,1,2,0,5,2,2,1,1,1,1,1,2,2, -2,2,2,2,2,1,2,1,2,0,0,2,0,0,0,0,1,1,3,1,1, }; static signed short stb__SourceSansProSemiBold_y[95]={ 39,12,11,13,9,12,12,11,9,9,10,16,33,27, 33,10,13,13,13,13,13,13,13,13,13,13,19,19,17,19,17,11,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,12,41,10,18,10,18,10,18,10,18,10,10, 10,10,10,18,18,18,18,18,18,18,14,19,19,19,19,19,19,10,9,10,22, }; static unsigned short stb__SourceSansProSemiBold_w[95]={ 0,17,24,29,28,42,34,15,19,19,25,29,19,21, 17,23,28,27,28,29,30,29,28,28,28,28,17,19,29,29,29,25,42,34,30,31,30,27,27,32,31,15,27,31, 26,34,30,34,29,35,30,30,30,30,33,42,32,32,29,19,24,19,27,30,19,27,29,27,29,28,23,30,28,17, 21,29,18,39,28,30,29,29,23,26,24,28,30,39,29,30,26,21,14,21,29, }; static unsigned short stb__SourceSansProSemiBold_h[95]={ 0,38,23,36,45,38,38,23,48,48,24,30,24,14, 17,46,37,36,36,37,36,37,37,36,37,37,31,38,28,23,28,39,44,37,37,38,37,37,37,38,37,37,38,37, 37,37,37,38,37,44,37,38,37,38,37,37,37,37,37,46,46,46,26,14,17,32,40,32,40,32,39,40,39,39, 48,39,40,31,31,32,39,39,31,32,36,31,30,30,30,39,30,46,50,46,18, }; static unsigned short stb__SourceSansProSemiBold_s[95]={ 240,192,31,143,211,149,114,240,58,38,210, 72,190,135,86,187,214,115,86,184,55,154,125,26,96,67,236,94,132,1,102, 132,37,32,1,62,214,186,158,29,126,240,1,94,67,32,1,220,206,1,175, 189,144,158,110,67,34,1,210,167,142,122,162,104,236,58,160,30,130,1,108, 99,79,61,16,31,80,144,115,200,1,221,231,173,1,86,41,1,211,190,184, 100,1,78,56, }; static unsigned short stb__SourceSansProSemiBold_t[95]={ 39,137,391,290,1,137,137,137,1,1,360, 360,360,391,391,1,252,290,290,252,290,252,252,290,252,252,176,137,360,391,360, 97,52,252,252,137,214,214,214,137,214,1,137,214,214,214,214,97,176,52,176, 97,176,97,176,176,176,176,137,1,1,1,360,391,360,327,52,327,52,327,97, 52,97,97,1,97,52,327,327,290,97,52,290,290,290,327,360,360,327,52,327, 1,1,1,391, }; static unsigned short stb__SourceSansProSemiBold_a[95]={ 130,200,307,326,326,535,407,175, 206,206,279,326,175,205,175,219,326,326,326,326,326,326,326,326, 326,326,175,175,326,326,326,283,557,355,380,367,398,342,325,400, 422,179,314,380,319,474,418,429,377,429,381,347,347,417,341,509, 344,319,344,206,219,206,326,318,349,333,359,294,359,323,202,331, 355,167,167,332,172,537,356,349,359,357,237,274,230,354,315,476, 306,315,282,206,162,206,326, }; // Call this function with // font: NULL or array length // data: NULL or specified size // height: STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT or STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT_POW2 // return value: spacing between lines static void stb_font_SourceSansProSemiBold(stb_fontchar font[STB_FONT_SourceSansProSemiBold_NUM_CHARS], unsigned char data[STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT][STB_FONT_SourceSansProSemiBold_BITMAP_WIDTH], int height) { int i; if (data != 0) { for (i=0; i < STB_FONT_SourceSansProSemiBold_BITMAP_WIDTH*height; ++i) data[0][i] = 0; // zero entire bitmap memcpy(data, stb__SourceSansProSemiBold_pixels, sizeof(stb__SourceSansProSemiBold_pixels)); } // build font description if (font != 0) { float recip_width = 1.0f / STB_FONT_SourceSansProSemiBold_BITMAP_WIDTH; float recip_height = 1.0f / height; for (i=0; i < STB_FONT_SourceSansProSemiBold_NUM_CHARS; ++i) { // pad characters so they bilerp from empty space around each character font[i].s0 = (stb__SourceSansProSemiBold_s[i]) * recip_width; font[i].t0 = (stb__SourceSansProSemiBold_t[i]) * recip_height; font[i].s1 = (stb__SourceSansProSemiBold_s[i] + stb__SourceSansProSemiBold_w[i]) * recip_width; font[i].t1 = (stb__SourceSansProSemiBold_t[i] + stb__SourceSansProSemiBold_h[i]) * recip_height; font[i].x0 = stb__SourceSansProSemiBold_x[i]; font[i].y0 = stb__SourceSansProSemiBold_y[i]; font[i].x1 = stb__SourceSansProSemiBold_x[i] + stb__SourceSansProSemiBold_w[i]; font[i].y1 = stb__SourceSansProSemiBold_y[i] + stb__SourceSansProSemiBold_h[i]; font[i].advance_int = (stb__SourceSansProSemiBold_a[i]+8)>>4; font[i].s0f = (stb__SourceSansProSemiBold_s[i] - 0.5f) * recip_width; font[i].t0f = (stb__SourceSansProSemiBold_t[i] - 0.5f) * recip_height; font[i].s1f = (stb__SourceSansProSemiBold_s[i] + stb__SourceSansProSemiBold_w[i] + 0.5f) * recip_width; font[i].t1f = (stb__SourceSansProSemiBold_t[i] + stb__SourceSansProSemiBold_h[i] + 0.5f) * recip_height; font[i].x0f = stb__SourceSansProSemiBold_x[i] - 0.5f; font[i].y0f = stb__SourceSansProSemiBold_y[i] - 0.5f; font[i].x1f = stb__SourceSansProSemiBold_x[i] + stb__SourceSansProSemiBold_w[i] + 0.5f; font[i].y1f = stb__SourceSansProSemiBold_y[i] + stb__SourceSansProSemiBold_h[i] + 0.5f; font[i].advance = stb__SourceSansProSemiBold_a[i]/16.0f; } } } #ifndef STB_SOMEFONT_CREATE #define STB_SOMEFONT_CREATE stb_font_SourceSansProSemiBold #define STB_SOMEFONT_BITMAP_WIDTH STB_FONT_SourceSansProSemiBold_BITMAP_WIDTH #define STB_SOMEFONT_BITMAP_HEIGHT STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT #define STB_SOMEFONT_BITMAP_HEIGHT_POW2 STB_FONT_SourceSansProSemiBold_BITMAP_HEIGHT_POW2 #define STB_SOMEFONT_FIRST_CHAR STB_FONT_SourceSansProSemiBold_FIRST_CHAR #define STB_SOMEFONT_NUM_CHARS STB_FONT_SourceSansProSemiBold_NUM_CHARS #define STB_SOMEFONT_LINE_SPACING STB_FONT_SourceSansProSemiBold_LINE_SPACING #endif chromono-1.1.1/src/renderer/texture.cpp000066400000000000000000000110161410712601600201340ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "texture.h" #include #include std::stack Texture::bindings; Texture::Texture() : m_texture_id(-1), m_subwidth(1.), m_subheight(1.) { glGenTextures(1, &m_texture_id); bind(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); /* http://stackoverflow.com/questions/4760174/ */ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); unbind(); } Texture::~Texture() { glDeleteTextures(1, &m_texture_id); } void Texture::set_nearest_filter() { bind(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); unbind(); } void Texture::resize(int width, int height) { m_width = width; m_height = height; unsigned char *data = new unsigned char[m_width*m_height*4]; memset(data, 0x00, m_width*m_height*4); teximage(GL_RGBA, data); delete [] data; } void Texture::teximage(GLint format, const unsigned char *data) { int w = 2; int h = 2; while (m_width > 0 && w < m_width) w *= 2; while (m_height > 0 && h < m_height) h *= 2; m_subwidth = (float)m_width / (float)w; m_subheight = (float)m_height / (float)h; bind(); glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, format, GL_UNSIGNED_BYTE, NULL); if (data != NULL) { glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_width, m_height, format, GL_UNSIGNED_BYTE, data); } unbind(); } void Texture::bind(int unit) { if (unit != 0) { glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_texture_id); glActiveTexture(GL_TEXTURE0); return; } glBindTexture(GL_TEXTURE_2D, m_texture_id); bindings.push(this); } void Texture::unbind(int unit) { if (unit != 0) { glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, 0); glActiveTexture(GL_TEXTURE0); return; } bindings.pop(); glBindTexture(GL_TEXTURE_2D, 0); if (!bindings.empty()) { glBindTexture(GL_TEXTURE_2D, bindings.top()->m_texture_id); } } void Texture::save(const char *filename) { bind(); int width = 0; int height = 0; glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); int sub_width = width * m_subwidth; int sub_height = height * m_subheight; glPixelStorei(GL_PACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_LSB_FIRST, GL_TRUE); char *texdata = new char[3 * width * height]; glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, texdata); unbind(); /** * What we get in texdata is the screenshot, vertically flipped * and in texture size (not in framebuffer size). * * +------------------------+ * | | | * | | | * +-----------------+ <- (sub_width, sub_height) * | | * +------------------------+ <- (width, height) **/ int scanline_fb = sub_width * 3; int scanline_tx = width * 3; char *data = new char[3 * sub_width * sub_height]; for (int y=0; y * * 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. **/ #ifndef QW_TEXTURE_H #define QW_TEXTURE_H #include "shadypostproc.h" #include "chromono_opengl.h" #include class Texture { public: Texture(); ~Texture(); void resize(int width, int height); void bind(int unit=0); void unbind(int unit=0); void set_nearest_filter(); GLuint id() { return m_texture_id; } void save(const char *filename); void setalpha(int w, int h, const unsigned char *data) { resize(w, h); teximage(GL_ALPHA, data); } void setrgb(int w, int h, const unsigned char *data) { resize(w, h); teximage(GL_RGB, data); } private: void teximage(GLint format, const unsigned char *data); static std::stack bindings; GLuint m_texture_id; int m_width; int m_height; public: float m_subwidth; float m_subheight; }; #endif /* QW_TEXTURE_H */ chromono-1.1.1/src/renderer/vertexaccumulator.cpp000066400000000000000000000056141410712601600222200ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "vertexaccumulator.h" #define VERTEX_ACCUMULATOR_DEFAULT_SIZE (64*1024) VertexAccumulator::VertexAccumulator() : m_attributes() , m_buffer_size(VERTEX_ACCUMULATOR_DEFAULT_SIZE) , m_buffer((float*)malloc(m_buffer_size * sizeof(float))) , m_buffer_offset(0) , m_stride(0) { } VertexAccumulator::~VertexAccumulator() { free(m_buffer); } void VertexAccumulator::add_attrib(GLint location, size_t count) { m_attributes.push_back(std::pair(location, count)); m_stride += count; } void VertexAccumulator::enable_arrays() { std::list< std::pair >::iterator it; int offset = 0; for (it=m_attributes.begin(); it != m_attributes.end(); ++it) { GLint location = (*it).first; size_t count = (*it).second; glEnableVertexAttribArray(location); glVertexAttribPointer(location, count, GL_FLOAT, GL_FALSE, m_stride * sizeof(float), (void*)(offset * sizeof(float))); offset += count; } } void VertexAccumulator::disable_arrays() { std::list< std::pair >::iterator it; for (it=m_attributes.begin(); it != m_attributes.end(); ++it) { GLint location = (*it).first; glDisableVertexAttribArray(location); } } void VertexAccumulator::clear() { m_buffer_offset = 0; } void VertexAccumulator::append(float *data, size_t count) { count *= m_stride; if (m_buffer_size < m_buffer_offset + count) { while (m_buffer_size < m_buffer_offset + count) { m_buffer_size *= 2; } m_buffer = (float*)realloc(m_buffer, m_buffer_size * sizeof(float)); } memcpy(m_buffer + m_buffer_offset, data, count * sizeof(float)); m_buffer_offset += count; } void VertexAccumulator::append_triangle_strip(float *data, size_t count) { for (size_t i=0; idata(m_buffer, sizeof(float) * m_buffer_offset); return m_buffer_offset / m_stride; } chromono-1.1.1/src/renderer/vertexaccumulator.h000066400000000000000000000036331410712601600216640ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_VERTEXACCUMULATOR_H #define SHADYPOSTPROC_VERTEXACCUMULATOR_H #include "shadypostproc.h" #include "chromono_opengl.h" #include "vertexbuffer.h" #include class VertexAccumulator { public: VertexAccumulator(); ~VertexAccumulator(); // Setup void add_attrib(GLint location, size_t count); // Binding and unbinding helper void enable_arrays(); void disable_arrays(); void clear(); // count = number of vertices that are appended void append(float *data, size_t count=1); // Same as append, but generate triangle strips void append_triangle_strip(float *data, size_t count); // Returns number of elements to draw int upload(VertexBuffer *vertex_buffer); size_t stride() { return m_stride; } private: std::list< std::pair > m_attributes; size_t m_buffer_size; float *m_buffer; size_t m_buffer_offset; size_t m_stride; }; #endif /* SHADYPOSTPROC_VERTEXACCUMULATOR_H */ chromono-1.1.1/src/renderer/vertexbuffer.cpp000066400000000000000000000031501410712601600211430ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "vertexbuffer.h" VertexBuffer * VertexBuffer::active = NULL; VertexBuffer::VertexBuffer() : m_id(0) { glGenBuffers(1, &m_id); } VertexBuffer::~VertexBuffer() { glDeleteBuffers(1, &m_id); } void VertexBuffer::bind() { if (active != this) { glBindBuffer(GL_ARRAY_BUFFER, m_id); active = this; } } void VertexBuffer::unbind() { glBindBuffer(GL_ARRAY_BUFFER, 0); active = NULL; } void VertexBuffer::data(float *data, size_t size, bool is_static) { VertexBuffer *old_active = active; bind(); glBufferData(GL_ARRAY_BUFFER, size, data, is_static?GL_STATIC_DRAW:GL_STREAM_DRAW); if (old_active == NULL) { unbind(); } else if (old_active != this) { old_active->bind(); } } chromono-1.1.1/src/renderer/vertexbuffer.h000066400000000000000000000024431410712601600206140ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_VERTEXBUFFER_H #define SHADYPOSTPROC_VERTEXBUFFER_H #include "shadypostproc.h" #include "chromono_opengl.h" class VertexBuffer { public: VertexBuffer(); virtual ~VertexBuffer(); void bind(); void unbind(); void data(float *data, size_t size, bool is_static=false); private: GLuint m_id; static VertexBuffer *active; }; #endif /* SHADYPOSTPROC_VERTEXBUFFER_H */ chromono-1.1.1/src/resources_util.cpp000066400000000000000000000031061410712601600176760ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "resources_util.h" #include "util.h" #include ResourceAccess::ResourceAccess(Resource *resource) : m_resource(resource) , m_buffer(0) , m_length(0) { m_length = resource->uncompressed_size; m_buffer = (unsigned char *)malloc(m_length); uLongf destLen = m_length; int result = uncompress(m_buffer, &destLen, resource->data, resource->compressed_size); SHADY_ASSERT(result == Z_OK); SHADY_ASSERT(destLen == resource->uncompressed_size); } ResourceAccess::~ResourceAccess() { free(m_buffer); } const char * ResourceAccess::name() { return m_resource->name; } unsigned char * ResourceAccess::data() { return m_buffer; } size_t ResourceAccess::size() { return m_length; } chromono-1.1.1/src/resources_util.h000066400000000000000000000027151410712601600173500ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_RESOURCES_UTIL_H #define SHADYPOSTPROC_RESOURCES_UTIL_H #include "shadypostproc.h" #include #define RESOURCE(x) (&(x)) struct Resource { const char *name; const unsigned char *data; size_t compressed_size; size_t uncompressed_size; }; class ResourceAccess { public: ResourceAccess(Resource *resource); ~ResourceAccess(); const char *name(); unsigned char *data(); size_t size(); private: Resource *m_resource; unsigned char *m_buffer; size_t m_length; }; #endif /* SHADYPOSTPROC_RESOURCES_UTIL_H */ chromono-1.1.1/src/resultsscreen.cpp000066400000000000000000000127561410712601600175430ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "resultsscreen.h" #include "game.h" #include "colors.h" #include "constants.h" #include "util.h" static void action_restart_level(Game *g) { g->restart_level(); } static void action_to_selector(Game *g) { g->to_selector(false); } static void action_to_next_level(Game *g) { g->to_next_level(); } static ChoiceScreenButton buttons[] = { ChoiceScreenButton("Restart", Icons::RESTART, action_restart_level), ChoiceScreenButton("To Menu", Icons::GRID, action_to_selector), ChoiceScreenButton("Next Level", Icons::PLAY, action_to_next_level), }; ResultsScreen::ResultsScreen(Game *game, LevelManager *level_manager, ScoreManager *score_manager) : ChoiceScreen(game, buttons, ARRAY_LENGTH(buttons)) , m_level_manager(level_manager) , m_score_manager(score_manager) , m_level(-1) , m_score(-1) , m_new_highscore(-1) , m_played_stars_sound(false) , m_background_render_cache_data(game) { } ResultsScreen::~ResultsScreen() { } void ResultsScreen::render(OpenGLRenderer *renderer) { renderer->draw_cached(&m_background_render_cache_data, sizeof(m_background_render_cache_data)); float x, y; LevelInfo *info = m_level_manager->get(m_level); int stars_count = m_score_manager->get_stars_for(m_level, m_score); int stars_size = 180; float stars_rotation = 0.f; float stars_factor = 1.f; if (m_time < 20) { stars_factor = (float)m_time / 20.f; stars_size += 600 * (1.f - stars_factor); stars_rotation = M_PI / 4. * (1.f - stars_factor); } if (!m_played_stars_sound) { switch (stars_count) { case 0: Platform::play(Sound::LEVEL_COMPLETE_NO_STARS); break; case 1: Platform::play(Sound::LEVEL_COMPLETE_1_STAR); break; case 2: Platform::play(Sound::LEVEL_COMPLETE_2_STARS); break; case 3: Platform::play(Sound::LEVEL_COMPLETE_3_STARS); break; default: SHADY_ASSERT(!"unreachable"); break; } m_played_stars_sound = true; } int stars_y = 130; y = stars_y - stars_size / 2; for (int i=0; i<3; i++) { x = (Constants::WORLD_WIDTH - stars_size*3) / 2 + stars_size * i; float opacity = stars_factor; RGB color; if (stars_count > i) { // star color float phase = std::min(1., m_time / (20.0 + 1. * (i+1))); color = RGB::mix(color, Colors::STAR, 1.f - phase); opacity *= 0.9; } else { opacity *= 0.2; } renderer->icon(Icons::STAR, x, y, stars_size, stars_size, color, opacity, stars_rotation); } y = 220; float text_spacing = -4.0; char tmp[1024+44]; char score_time_str[1024]; sprintf(tmp, "Level %d complete", (m_level + 1)); render_text_center(renderer, tmp, FONT_MEDIUM, &y); y += text_spacing; Util::format_score_time(m_score, score_time_str, sizeof(score_time_str)); sprintf(tmp, "Time taken: %s", score_time_str); render_text_center(renderer, tmp, FONT_MEDIUM, &y); y += text_spacing; if (stars_count < 3) { // Show requirement for next better star count Util::format_score_time(info->stars_time[stars_count], score_time_str, sizeof(score_time_str)); sprintf(tmp, "Time needed for %d %s: %s", stars_count + 1, ((stars_count + 1) == 1) ? "star" : "stars", score_time_str); render_text_center(renderer, tmp, FONT_MEDIUM, &y); y += text_spacing; } if (m_new_highscore && stars_count == 3) { sprintf(tmp, "New highscore!"); render_text_center(renderer, tmp, FONT_MEDIUM, &y); y += text_spacing; } // Set visibility of "next level" button buttons[2].visible = game->can_proceed(); ChoiceScreen::render(renderer); } bool ResultsScreen::on_back_button() { game->to_selector(false); return true; } void render_scene_with_overlay_callback(OpenGLRenderer *renderer, void *prepared, void *user_data) { BackgroundRenderCacheData *data = (BackgroundRenderCacheData*)prepared; data->game->get_scene()->render(renderer); renderer->overlay(); } void ResultsScreen::before_render(OpenGLRenderer *renderer) { renderer->prepare_cached(&m_background_render_cache_data, sizeof(m_background_render_cache_data), render_scene_with_overlay_callback, NULL); } void ResultsScreen::on_exposed() { // Invalidate sequence, so background render cache is redrawn m_background_render_cache_data.seq++; } chromono-1.1.1/src/resultsscreen.h000066400000000000000000000041571410712601600172040ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_RESULTSSCREEN_H #define SHADYPOSTPROC_RESULTSSCREEN_H #include "shadypostproc.h" #include "choicescreen.h" #include "levelmanager.h" #include "scoremanager.h" struct BackgroundRenderCacheData { Game *game; int seq; BackgroundRenderCacheData(Game *game) : game(game) , seq(0) {} }; class ResultsScreen : public ChoiceScreen { public: ResultsScreen(Game *game, LevelManager *level_manager, ScoreManager *score_manager); virtual ~ResultsScreen(); virtual void render(OpenGLRenderer *renderer); virtual bool on_back_button(); virtual void before_render(OpenGLRenderer *renderer); virtual void on_exposed(); void set_results(int level, long score, bool new_highscore) { m_time = 0; m_level = level; m_score = score; m_new_highscore = new_highscore; m_played_stars_sound = false; } private: LevelManager *m_level_manager; ScoreManager *m_score_manager; int m_level; long m_score; bool m_new_highscore; bool m_played_stars_sound; BackgroundRenderCacheData m_background_render_cache_data; }; #endif /* SHADYPOSTPROC_RESULTSSCREEN_H */ chromono-1.1.1/src/scoremanager.cpp000066400000000000000000000053021410712601600172750ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "scoremanager.h" #include "platform.h" #include static bool on_scores_load(void *buffer, void *user_data) { ScoreManager *score_manager = (ScoreManager*)user_data; score_manager->recalculate(); // Assume always true for now return true; } ScoreManager::ScoreManager(LevelManager *level_manager, StorageManager *storage_manager) : m_level_manager(level_manager) , m_best_times(new long[level_manager->count()]) , m_stars(-1) , m_any_played(false) , m_storable(NULL) { for (int i=0; icount(); i++) { m_best_times[i] = -1; } m_storable = new StorableStruct(storage_manager, m_best_times, sizeof(long)*level_manager->count(), on_scores_load, this); recalculate(); } ScoreManager::~ScoreManager() { delete m_storable; delete [] m_best_times; } bool ScoreManager::register_score(int level, long ticks) { long current = m_best_times[level]; if (current == -1 || ticks < current) { m_best_times[level] = ticks; m_storable->save_data(); recalculate(); return true; } return false; } int ScoreManager::get_stars(int level) { return get_stars_for(level, m_best_times[level]); } long ScoreManager::get_score(int level) { return m_best_times[level]; } int ScoreManager::get_stars_for(int level, long ticks) { int stars = 0; LevelInfo *info = m_level_manager->get(level); for (int i=0; i<3; i++) { if (ticks != -1 && ticks <= info->stars_time[i]) { stars++; } } return stars; } void ScoreManager::recalculate() { m_stars = 0; m_any_played = false; for (int i=0; icount(); i++) { long score = get_score(i); if (score != -1) { m_any_played = true; } m_stars += get_stars(i); } } chromono-1.1.1/src/scoremanager.h000066400000000000000000000040441410712601600167440ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SCOREMANAGER_H #define SHADYPOSTPROC_SCOREMANAGER_H #include "levelmanager.h" #include "storagemanager.h" class ScoreManager { public: ScoreManager(LevelManager *level_manager, StorageManager *storage_manager); virtual ~ScoreManager(); // Game registers score after level is finished // returns true if this is a new high score, false otherwise bool register_score(int level, long ticks); // Return number of earned stars (0-3) for a given level int get_stars(int level); // Return the raw best score for a level long get_score(int level); // Get the amount of stars the user gets for a given score int get_stars_for(int level, long ticks); int stars() { return m_stars; } bool any_played() { return m_any_played; } // Recalculate stars counts based on scores (consider private) void recalculate(); private: LevelManager *m_level_manager; long *m_best_times; /* Cached values */ int m_stars; bool m_any_played; /* Storage handle */ StorableStruct *m_storable; }; #endif /* SHADYPOSTPROC_SCOREMANAGER_H */ chromono-1.1.1/src/shadypostproc.h000066400000000000000000000027301410712601600172000ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SHADYPOSTPROC_H #define SHADYPOSTPROC_SHADYPOSTPROC_H #include #include #include #include #include #define USE_DEBUG_PRINTF #if defined(USE_DEBUG_PRINTF) # define SHADY_DEBUG_PRINTF(...) printf(__VA_ARGS__) # define SHADY_ASSERT(x) do { if (!(x)) { SHADY_DEBUG_PRINTF("assertion failed: %s\n", #x); exit(1); } } while(0) #else # define SHADY_DEBUG_PRINTF(...) # define SHADY_ASSERT(x) (void)(x) #endif #define ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0])) class Game; typedef void (*game_lambda_t)(Game *); #endif /* SHADYPOSTPROC_SHADYPOSTPROC_H */ chromono-1.1.1/src/sounds.h000066400000000000000000000035721410712601600156160ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_SOUNDS_H #define SHADYPOSTPROC_SOUNDS_H namespace Sound { enum Effect { BUTTON_PRESS, BUTTON_RELEASE, TOGGLE_SWITCH_ON, TOGGLE_SWITCH_OFF, MOVABLE_SPHERE_PRESS, MOVABLE_SPHERE_RELEASE, MAIN_MENU_STREAM_SPEEDUP, //MAIN_MENU_STREAM_RUNNING, MAIN_MENU_STREAM_SLOWDOWN, LEVEL_COMPLETE_NO_STARS, LEVEL_COMPLETE_1_STAR, LEVEL_COMPLETE_2_STARS, LEVEL_COMPLETE_3_STARS, //LEVEL_COMPLETE_NEW_HIGHSCORE, PAGE_TRANSITION, GAMEPLAY_PAUSED, GAMEPLAY_RESUMED, UNLOCK_LEVEL, LEVEL_LOCKED_MESSAGE_BOX, //SPHERE_HITS_SPHERE, SPHERE_HITS_WALL, COLOR_CHANGES_TO_WRONG, COLOR_CHANGES_TO_RIGHT, CHAIN_BREAKS, MUSIC_ALVEG, MUSIC_KASA90, MUSIC_SNAPPER, MUSIC_SUBD, NO_SOUND, // will never be a valid sound COUNT, // last element = number of sounds }; }; #endif /* SHADYPOSTPROC_SOUNDS_H */ chromono-1.1.1/src/storagemanager.cpp000066400000000000000000000050741410712601600176340ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "storagemanager.h" StorageManager::StorageManager(char *filename) : m_storables() , m_filename(filename) { } StorageManager::~StorageManager() { free(m_filename); } void StorageManager::register_storable(Storable *storable) { m_storables.push_back(storable); } void StorageManager::load_data() { FILE *fp = fopen(m_filename, "rb"); if (fp) { std::list::iterator it; for (it=m_storables.begin(); it != m_storables.end(); ++it) { size_t len = (*it)->storage_requirement(); void *buffer = malloc(len); if (fread(buffer, len, 1, fp) == 1) { if (((*it)->read_from(buffer))) { free(buffer); continue; } } SHADY_DEBUG_PRINTF("Cannot read from %s\n", m_filename); read_defaults(); free(buffer); break; } fclose(fp); } else { read_defaults(); } } void StorageManager::read_defaults() { std::list::iterator it; for (it=m_storables.begin(); it != m_storables.end(); ++it) { (*it)->read_defaults(); } } void StorageManager::save_data() { FILE *fp = fopen(m_filename, "wb"); if (fp != NULL) { std::list::iterator it; for (it=m_storables.begin(); it != m_storables.end(); ++it) { size_t len = (*it)->storage_requirement(); void *buffer = malloc(len); (*it)->write_to(buffer); if (fwrite(buffer, len, 1, fp) != 1) { SHADY_DEBUG_PRINTF("Cannot write to %s\n", m_filename); break; } free(buffer); } fclose(fp); } } chromono-1.1.1/src/storagemanager.h000066400000000000000000000107231410712601600172760ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_STORAGEMANAGER_H #define SHADYPOSTPROC_STORAGEMANAGER_H #include "shadypostproc.h" #include #include class Storable; class StorageManager { public: StorageManager(char *filename); ~StorageManager(); // Add new storable to list of storables void register_storable(Storable *storable); // Load data from disk and send to storables void load_data(); // Save data to disk and read from storables void save_data(); private: // On error, read defaults void read_defaults(); std::list m_storables; char *m_filename; }; class Storable { public: Storable(StorageManager *storage_manager) : storage_manager(storage_manager) { storage_manager->register_storable(this); } // Amount (in bytes) this storable needs to store virtual size_t storage_requirement() = 0; // Read storage_requirement() bytes from buffer on load // Return true if reading was successful, false if data is invalid virtual bool read_from(void *buffer) = 0; // Read defaults (e.g. when storage is damaged or newly created) virtual void read_defaults() = 0; // Write storage_requirement() bytes to buffer on save virtual void write_to(void *buffer) = 0; // Helper function that requests saving from the storage manager void save_data() { storage_manager->save_data(); } protected: StorageManager *storage_manager; }; /* Lambda function for validating the contents of an arbitrary buffer */ typedef bool (*validate_struct_func_t)(void *buffer, void *user_data); class StorableStruct : public Storable { public: /** * Helper class that eases storing of arbitrary structs in a storage * manager. The default values from the struct are taken from the * contents of the buffer at construction-time. An optional validation * function can be used to validate data read in from the file. **/ StorableStruct(StorageManager *storage_manager, void *buffer, size_t len, validate_struct_func_t validate_struct_func=NULL, void *validate_struct_func_user_data=NULL) : Storable(storage_manager) , buffer(buffer) , len(len) , validate_struct_func(validate_struct_func) , validate_struct_func_user_data(validate_struct_func_user_data) , defaults(malloc(len)) { // Defaults are the initial buffer contents memcpy(defaults, buffer, len); } virtual ~StorableStruct() { free(defaults); } virtual size_t storage_requirement() { return len; } virtual bool read_from(void *buffer) { memcpy(this->buffer, buffer, len); if (validate_struct_func != NULL) { return validate_struct_func(this->buffer, validate_struct_func_user_data); } return true; } virtual void read_defaults() { memcpy(buffer, defaults, len); } virtual void write_to(void *buffer) { memcpy(buffer, this->buffer, len); } private: void *buffer; size_t len; validate_struct_func_t validate_struct_func; void *validate_struct_func_user_data; void *defaults; }; #endif /* SHADYPOSTPROC_STORAGEMANAGER_H */ chromono-1.1.1/src/transition.cpp000066400000000000000000000032011410712601600170150ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "transition.h" #include "util.h" Transition::Transition() : m_started(0) , m_duration(0) , m_listener(NULL) , m_running(false) { } Transition::~Transition() { } void Transition::handle(Circle1DEvent *event) { if (!m_running) { return; } if (event->type == Circle1DEvent::TICK) { Circle1DTime now = Util::ticks(); float value = (float)(now - m_started) / (float)m_duration; if (value >= 1.0) { m_running = false; m_listener->on_finished(); } else { m_listener->on_update(value); } } } void Transition::start(Circle1DTime duration, TransitionListener *listener) { m_started = Util::ticks(); m_duration = duration; m_listener = listener; m_running = true; } chromono-1.1.1/src/transition.h000066400000000000000000000030541410712601600164700ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_TRANSITION_H #define SHADYPOSTPROC_TRANSITION_H #include "shadypostproc.h" #include "circle1d.h" class TransitionListener { public: virtual void on_update(float value) = 0; virtual void on_finished() = 0; }; class Transition : public Circle1DEventHandler { public: Transition(); virtual ~Transition(); bool running() { return m_running; } void handle(Circle1DEvent *event); void start(Circle1DTime duration, TransitionListener *listener); private: Circle1DTime m_started; Circle1DTime m_duration; TransitionListener *m_listener; bool m_running; }; #endif /* SHADYPOSTPROC_TRANSITION_H */ chromono-1.1.1/src/util.cpp000066400000000000000000000026311410712601600156060ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #include "util.h" #include #include #include "constants.h" void Util::format_score_time(long score, char *string, size_t size) { long ms = score * Constants::TICK_MS; snprintf(string, size, "%02ld:%02ld.%03ld", (ms / 1000) / 60, (ms / 1000) % 60, ms % 1000); } std::string Util::format(const char *fmt, ...) { va_list ap; va_start(ap, fmt); std::string result; char *tmp; if (vasprintf(&tmp, fmt, ap) != -1) { result = tmp; free(tmp); } return result; } chromono-1.1.1/src/util.h000066400000000000000000000032201410712601600152460ustar00rootroot00000000000000/** * chro.mono: A very circular color puzzle game * https://thp.io/2013/chromono/ * Copyright (C) 2013-2021 Thomas Perl * * 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. **/ #ifndef SHADYPOSTPROC_UTIL_H #define SHADYPOSTPROC_UTIL_H #include "shadypostproc.h" #include class Util { public: /* Number of milliseconds since program start */ static long ticks(); static void format_score_time(long score, char *string, size_t size); /* allocating sprintf */ static std::string format(const char *fmt, ...); }; class Random { /* http://en.wikipedia.org/wiki/Random_number_generation */ public: Random(int w, int z) : w(w), z(z) { } unsigned int next() { z = 36969 * (z & 65535) + (z >> 16); w = 18000 * (w & 65535) + (w >> 16); return (z << 16) + w; /* 32-bit result */ } private: int w; int z; }; #endif /* SHADYPOSTPROC_UTIL_H */